Skip to content

clyops 0.12.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 03:03
· 8 commits to main since this release
09e1a94

URL schemas fetched and checked everywhere json:SCHEMA inputs are used, schemas shown and
checked in the web and desktop runners and in clyops-doc, and OpenAPI 3.1.

Breaking

  • clyops-api serves OpenAPI 3.1 (was 3.0), whose schemas are JSON Schema 2020-12: nullable
    fields are type: [T, "null"] rather than nullable: true, binary bodies are strings
    with a contentMediaType rather than format: binary, and a json input in the query
    string is JSON text with its schema as contentSchema. A client generator that only reads
    3.0 needs a 3.1-aware version. clyops-api generates it with zod-to-openapi's 3.1
    generator, from plus-express's registry.

JSON input

  • clyops-api and clyops-mcp fetch the URL schemas json:SCHEMA inputs reference when
    they load tools, and the schemas those reference (--schema-depth, default 3), so
    those inputs are checked, not only documented (#51). On by default:
    --no-fetch-schemas turns it off, --schema-hosts limits the hosts (redirects
    included), --schema-cache (seconds, default 3600), --schema-timeout (5) and
    --schema-max-bytes (1 MiB) bound it. A schema that can't be fetched is a warning and
    leaves its input unchecked. The reserved example domains (RFC 2606) are never fetched.
    In clyops-tools: loadTools/watchTools take schemas, plus fetchSchemaRefs,
    inlineSchemaRefs, clearSchemaCache and SchemaFetchError.
  • The web and desktop runners check json and json:SCHEMA fields as you type, with ajv:
    the text is parsed, as the API does, and checked against the field's schema, and
    problems block a run while the field is enabled (#52). A JSON field is a text area with
    an "Expected JSON" view of its schema, and starts from the schema's default or first
    examples entry. clyops-schema's inputIssues does the parsing and messages with any
    ajv-shaped validator, so the package keeps no dependencies; jsonSchemaView,
    jsonSample and FormField.json go with it.
  • The desktop runner fetches the URL schemas json:SCHEMA inputs reference when a tool loads
    (from Rust: the webview's fetch is bound by CORS), with the server flags as settings: fetch
    on or off, depth, allowed hosts, cache, timeout and size limit (#51). The inlining moved
    into clyops-schema (inlineSchemaRefs, fetchSchemaRefs with a download option), so
    clyops-tools and the desktop runner share it.
  • clyops-doc prints a json:SCHEMA input's schema under it in man pages, Markdown and HTML
    (#52).
  • clyops-api's OpenAPI document gives a json:SCHEMA input's schema inline, with its #
    references pointing at where it sits in the document (#52).
  • Fixed: the desktop runner dropped every json:SCHEMA input's schema when it read a tool's
    --help-json-schema.
  • Fixed: the web runner rejected every json:SCHEMA field whose schema wasn't a string
    schema, because it checked the field's text rather than its parsed value.

Downloads

clyops runner Linux: .deb, .rpm or .AppImage (x64 amd64/x86_64, arm64 arm64/aarch64) · macOS: _universal.dmg · Windows: _x64-setup.exe or _x64_en-US.msi
clyops-dispatch clyops-dispatch-<version>-<platform>.tar.gz (Linux x64/arm64, macOS universal) or -windows-x64.zip
C libclyops-<version>-<platform>.tar.gz (static library + header) or -src.tar.gz
Bash clyops.sh
JavaScript / TypeScript clyops-<version>.tgz (pnpm add ./clyops-<version>.tgz)
Python clyops-<version>-py3-none-any.whl or the sdist
Rust clyops-<version>.crate
Ruby clyops-<version>.gem (gem install ./clyops-<version>.gem)
Java clyops-<version>.jar
Go go get github.com/wankdanker/clyops/packages/go@v<version>

SHA256SUMS lists a checksum for every file.

The runner installers are not signed with a paid certificate yet. On macOS, right-click the app
and choose Open the first time (or run xattr -dr com.apple.quarantine "/Applications/clyops-runner.app").
On Windows, choose More info → Run anyway in the SmartScreen prompt.