Skip to main content
The definitions.v1 capability distributes service definitions. Today a definition is an OpenAPI 3.0 document; an adapter generates a service (with tools) from it. See Definition kinds and Adapter modules for what Cyrnel can ingest.

Browse page

GET <capability URL> (e.g. /definitions/v1) returns a catalog page:
Pagination is covered in Pagination.

Entry schema

An invalid entry (bad slug, missing/mis-scoped source, malformed icon) fails the whole page with a 400.

Query parameters

Cyrnel forwards the browse request with query, kind, cursor and limit. All filtering is advisory: the registry decides how to apply it, and Cyrnel never filters results client-side (that would break pagination). The runtime forwards kind (the adapter hint historically documented in the OpenAPI spec is not used at runtime).

Version descriptor

GET <entry.source>: no pagination, returns the item’s version matrix:

Version selection

  • No version / version: "latest" → the latestVersion entry.
  • A semver range → the best matching versions key via semver.maxSatisfying.
  • No matching version → 404 Service registry has no version satisfying '<constraint>'.

Installing a definition

  1. Cyrnel GETs the descriptor, picks the version, and (unless the request names an adapter) selects the best compatible active adapter via the compatibility ranking.
  2. In parallel it downloads downloadUrl (30 MiB cap) and the optional icon (256 KiB cap).
  3. The downloaded bytes are sha-256 hashed and compared to hash: 400 Definition content hash does not match registry metadata hash.
  4. The adapter parses the OpenAPI document and generates the service + tools.
If only engines changed across versions, services are unaffected - but you should still advertise hashes; without one, Cyrnel cannot detect mutable downloads.

Icons

Icons are optional, PNG/WebP only, capped at 256 KiB, and hash-verified against the entry. Serve them from the registry’s origin (the entry icon URL and the browse page are subject to the same-origin rule).
Last modified on August 25, 2026