e.g. "4.0.0-candidate".
OptionalserversOptionaltagsMap keyed by tag name (C009).
Map keyed by RFC6570 parseable-profile uriTemplate (C005).
OptionalapiDocument-level responses reusable across all operations (§5).
OptionalwebhooksIncoming operations not hosted at the API's own paths (§14, C018).
Optionalx-JOBS vendor map (C025) — non-HTTP background work (cron / queue consumers) that has NO inbound Request, so it
can't live in paths or webhooks. The first-class home C024 pre-blessed for its scheduled/queue-consumed
cost triggers. A VENDOR EXTENSION (the x-suluk-* namespace) — NOT a normative async construct (C018 scope held).
Optionalx-AGENTS vendor map (C027) — x-suluk-agents. A composition manifest layered ON TOP of the API: each SulukAgent
is an LLM-orchestrated unit of SKILLS (model-bearing instruction bundles) + deterministic ROUTES (by-name
$refs into EXISTING operations, no model) + optional sub-AGENTS (by-name refs; recursion bounded by a
REQUIRED maxDepth + a cycle-linter, never the schema). A VENDOR EXTENSION riding the C025 x-suluk-jobs
precedent EXACTLY — NOT a normative kind, NEVER read by the DOM→ADA matcher (D1 held; see
plan/facts/0agents-d1.bn + test/agents-d1-invariance.test.ts). Selection/tiering is RUNTIME-ADVISORY;
determinism is DECLARED, never enforced. Severable: a 3.1 downgrade DROPS this map whole and the routes
survive as the ordinary operations they always referenced. Originated, low ceiling (~0.52); pairs with ADR C027.
Optionalx-POLICY vendor map (C028) — x-suluk-policy, keyed by OPERATOR/fleet name (not agent name: the operator owns
it, one policy spans many third-party agents). An operator-owned governance overlay that NARROWS what an agent
self-declares (effective = INTERSECT(operatorPolicy, agentSelfDeclaration); monotone — never grants). Rides the
x-suluk-jobs/x-suluk-agents move EXACTLY: optional, additive, NO new normative kind, NEVER read by the matcher
(D1; see plan/facts/0policy-d1.bn + test/policy-d1-invariance.test.ts). Only the STATIC subset is decidable here;
the costCeiling is DECLARED, enforced by a runtime adapter (enforcedBy), never by the schema. Originated, low
ceiling (~0.52); pairs with ADR C028.
Optionalx-RESOURCES vendor map (C036) — x-suluk-resources. The loadable, on-demand CATALOG of instructions / references /
scripts an agent can ACTIVATE when a task matches (Cloudflare "Agent Skills" / loadable context-memory alignment;
this is the x-suluk-resources name C035 RESERVED, now defined by operator direction). Distinct from a skill
(model-bearing, always-on system text): a resource is content-only, lazy, and carries no model. Rides the
x-suluk-jobs/agents/policy move EXACTLY — optional, additive, NO new normative kind, NEVER read by the matcher
(D1; a new x-* sibling is invisible to buildAda — see test/resources-d1-invariance.test.ts). Content is a
PROVENANCE POINTER (the catalog/SKILL.md is GENERATED, hashed for drift), never inlined. Experimental-anchored
(CF Agent Skills + script execution are experimental) ⇒ honestly LOW ceiling (~0.5); pairs with ADR C036.
Optionalx-REACTIVE notify policy (C037) — x-suluk-notify. A document-level status→severity map that drives the CALLBACK
layer of the @suluk/sdk reactive client: which responses surface to the user, and how. CLIENT-CODEGEN ONLY —
read by NO server path, NO runtime, NO matcher; strictly weaker than every other x-suluk-* facet (those at least
feed runtime-advisory selection). Optional, additive, NO new normative kind, NO meta-schema change. Pairs with the
per-op x-suluk-store facet + ADR C037. Originated, low ceiling (~0.5).
Optionalcomponents
Top-level OpenAPI v4 document.