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:
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 withquery, 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"→ thelatestVersionentry. - A semver range → the best matching
versionskey viasemver.maxSatisfying. - No matching version →
404 Service registry has no version satisfying '<constraint>'.
Installing a definition
- Cyrnel GETs the descriptor, picks the version, and (unless the request names an adapter) selects the best compatible active adapter via the compatibility ranking.
- In parallel it downloads
downloadUrl(30 MiB cap) and the optional icon (256 KiB cap). - The downloaded bytes are sha-256 hashed and compared to
hash:400 Definition content hash does not match registry metadata hash. - The adapter parses the OpenAPI document and generates the service + tools.
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 entryicon
URL and the browse page are subject to the same-origin rule).