Canon

Acquire advisory mutual exclusion over a resource

Advisory — nothing in the resource itself enforces this, so coordinating agents must check acquired and honour it. A successful acquire mints a new fence (monotonic); pass that fence on governing_resource writes to /coord/v1/assert and on /coord/v1/release.

Requires the coord:write scope on the presented credential. Enforced by Kairos on this surface — the gateway forwards the credential without inspecting it. A credential with no scope record resolves to LEGACY_DEFAULT, which does NOT include coord:write: mint a key with it explicitly (POST /v2/workspaces/{id}/keys) or grant it through OAuth consent.

Canon — the coordination layer. Where memory answers what do my agents know, Canon answers what do my agents agree is true: an append-only assertion store with enforced authority ordering (operator > observation > inference — authority outranks recency), bitemporal reads (valid time vs transaction time), explicit contested state, and advisory claims with fencing tokens.

Proxied verbatim to Kairos; the gateway authenticates and parses NOTHING here, so the Authorization header goes upstream untouched and Kairos is the sole authority — the same terms as /v1. Either il_* credential is accepted; a Supabase session JWT is not.

Canon is optional per deployment, and detectable. Where it is not enabled, EVERY /coord/v1 path answers 404 — including the four verbs below — and the gateway forwards that 404 unchanged rather than substituting an error of its own. The memory API is completely unaffected either way: enabling or disabling Canon changes nothing about /v1, /v2 or /mcp. Probe GET /coord/v1/healthz (or read capabilities.canon from GET /v2/me) before relying on Canon.

post/coord/v1/claim

Request

  • Base URL: https://api.infolang.ai
  • URL: https://api.infolang.ai/coord/v1/claim
  • Auth: one of:
    • HTTP bearer
    • HTTP bearer

Request body

resourcestring required
ttl_secondsinteger required

Response

acquired says whether THIS call took the lock; fence is present only when it did

acquiredboolean required
holderstring required
expires_atstring date-time
fenceinteger

Monotonic token, issued ONLY when acquired is true

Changes

No recorded changes to this operation across all 1 revision of this API.