Schema
Use this reference to inspect fields, methods, accepted values and failure outcomes. For setup and working examples, start with the API guide.
Definition: abstraction.inference.api
Service Chat [DEF-S1]
Model calls performed by the receiving runtime for the bound caller. Operations are visible only to the account and program that started them. Every request to a hosted host carries headers from abstraction.credentials applier@1 applied for the bound caller, sent once and kept out of every reply, delta, record and log. Caller exit cancels: an operation nobody observes for idle_ms is closed, because a stream nobody reads is spend. A decision point that cannot answer reads unavailable, never permission.
Wire identity: abstraction.inference/chat@1
Multiple services share this namespace. Generated ServiceName (Go) and service_name (C++/Python) validate the request envelope and version before returning its service identity for routing. The selected generated dispatcher validates the method and typed arguments; the selector does not authorize callers or interpret method payloads.
Frames carry version, service, method and typed arguments. Transport owns framing, associated exchanges, deadlines and connections. Unknown version/service/method and malformed arguments are rejected before invoking a handler. One-way WriteFrame success means local submission, not remote acceptance or persistence.
Request-response methods use ExchangeFrame. Replies carry version, service, method, ok and payload; success payload contains typed value (or an empty object for void). Error payload contains nonempty code and message, which may be empty. ServiceError preserves unknown codes. Unexpected handler failures become handler_error without private details; invalid results become invalid_result. Clients validate reply identity and result before exposing it. A malformed frame or transport failure remains a local error; the transport must associate each response with its exchange. C++ dispatchers are pure protocol bindings, not listening servers.
Admit one model call for the bound caller and begin it. In order: argument shape (invalid), guarantees and host selection through the router (no_host), host features and required extensions (unsupported_feature), the rights decision for abstraction.inference/complete on host:<name> (not_permitted, or unavailable when the decision point cannot answer), the credential's ceiling (budget_exceeded), the caller's concurrent operations (exhausted), then for a hosted host the credentials applier (not_permitted or unavailable). Nothing leaves the service before every check passes. Deltas are observed with Observe.
Start
request-response Admission
- Argument 1:
Request request (required, including zero/false/empty)
Read a bounded page of an operation's deltas from cursor. max_deltas is 1..256, max_bytes 1..65536 and wait_ms 0..30000. When no delta at cursor exists yet and the operation has not ended, wait up to wait_ms for one, then return what is there. An Observe in flight keeps the operation from idling; a caller that disconnects mid-wait stops the wait. Reconnecting with the last next resumes without loss inside retained_deltas.
Observe
request-response DeltaPage
- Argument 1:
string operation (required, including zero/false/empty)
- Argument 2:
i64 cursor (required, including zero/false/empty)
- Argument 3:
i64 max_deltas (required, including zero/false/empty)
- Argument 4:
i64 max_bytes (required, including zero/false/empty)
- Argument 5:
i64 wait_ms (required, including zero/false/empty)
Stop an operation the bound caller started and close its upstream request. Reports whether this call cancelled it or it had already ended.
Cancel
request-response Cancellation
- Argument 1:
string operation (required, including zero/false/empty)
Service ChatV2 [DEF-S1]
Typed explicit model or named service-owned model selection for a bound caller. A runtime without chat@2 refuses this service version explicitly.
Wire identity: abstraction.inference/chat@2
Multiple services share this namespace. Generated ServiceName (Go) and service_name (C++/Python) validate the request envelope and version before returning its service identity for routing. The selected generated dispatcher validates the method and typed arguments; the selector does not authorize callers or interpret method payloads.
Frames carry version, service, method and typed arguments. Transport owns framing, associated exchanges, deadlines and connections. Unknown version/service/method and malformed arguments are rejected before invoking a handler. One-way WriteFrame success means local submission, not remote acceptance or persistence.
Request-response methods use ExchangeFrame. Replies carry version, service, method, ok and payload; success payload contains typed value (or an empty object for void). Error payload contains nonempty code and message, which may be empty. ServiceError preserves unknown codes. Unexpected handler failures become handler_error without private details; invalid results become invalid_result. Clients validate reply identity and result before exposing it. A malformed frame or transport failure remains a local error; the transport must associate each response with its exchange. C++ dispatchers are pure protocol bindings, not listening servers.
Resolve the explicit target or named policy for the bound caller and admit one selected model. Each candidate must pass all chat@1 guarantees, features, rights, credential, budget and capacity checks. A later candidate is considered only after a fresh definitive preferred-route absence before admission or dispatch. A possible send, accepted operation, partial output or tool effect never retries another candidate.
Start
request-response AdmissionV2
- Argument 1:
RequestV2 request (required, including zero/false/empty)
Observe the same caller-bound operation registry and DeltaPage as chat@1, without reselecting the model.
Observe
request-response DeltaPage
- Argument 1:
string operation (required, including zero/false/empty)
- Argument 2:
i64 cursor (required, including zero/false/empty)
- Argument 3:
i64 max_deltas (required, including zero/false/empty)
- Argument 4:
i64 max_bytes (required, including zero/false/empty)
- Argument 5:
i64 wait_ms (required, including zero/false/empty)
Cancel the same caller-bound operation as chat@1, without reselecting the model.
Cancel
request-response Cancellation
- Argument 1:
string operation (required, including zero/false/empty)
Service Preloader [DEF-S1]
The first request of a conversation on a local model waits for its whole prompt to be evaluated: OpenCode's Local assistant's first answer on Qwen3.6-35B-A3B took 10.6-12 s, against 3.6 s with its fixed prefix evaluated ahead (research/live-runs/2026-10-02-demo-model-opencode.md). Preload lets an application have its own prefix evaluated before it sends that request. Only a server whose provider evaluates prefixes serves it; every other host answers unsupported_feature.
Wire identity: abstraction.inference/preload@1
Multiple services share this namespace. Generated ServiceName (Go) and service_name (C++/Python) validate the request envelope and version before returning its service identity for routing. The selected generated dispatcher validates the method and typed arguments; the selector does not authorize callers or interpret method payloads.
Frames carry version, service, method and typed arguments. Transport owns framing, associated exchanges, deadlines and connections. Unknown version/service/method and malformed arguments are rejected before invoking a handler. One-way WriteFrame success means local submission, not remote acceptance or persistence.
Request-response methods use ExchangeFrame. Replies carry version, service, method, ok and payload; success payload contains typed value (or an empty object for void). Error payload contains nonempty code and message, which may be empty. ServiceError preserves unknown codes. Unexpected handler failures become handler_error without private details; invalid results become invalid_result. Clients validate reply identity and result before exposing it. A malformed frame or transport failure remains a local error; the transport must associate each response with its exchange. C++ dispatchers are pure protocol bindings, not listening servers.
Load the model a chat request for the bound caller would reach and have its server evaluate the request's messages and tools as the prefix of the caller's next request. request is a chat@1 Request whose last message is not a user message: the caller's next request is these messages followed by its user message. Admission follows chat@1 Start's order: argument shape, guarantees and host selection, host support, the rights decision for abstraction.inference/complete on host:<name>, then the provider's model load. A preload is speculative work: it never asks another holder to yield, and its evaluation is never model use, so a yield stops the server under it and it answers unavailable, reason engine:stopped. The provider keeps nothing of the request after the call. The call returns when the server has evaluated the prefix, refused it, or the call budget ends.
Preload
request-response PreloadReply
- Argument 1:
Request request (required, including zero/false/empty)
Service Embedder [DEF-S1]
Text embeddings computed by a host the receiving runtime picks, for the bound caller. Every request to a hosted host carries headers from abstraction.credentials applier@1 applied once for the bound caller and kept out of every reply, record and log. A decision point that cannot answer reads unavailable, never permission.
Wire identity: abstraction.inference/embed@1
Multiple services share this namespace. Generated ServiceName (Go) and service_name (C++/Python) validate the request envelope and version before returning its service identity for routing. The selected generated dispatcher validates the method and typed arguments; the selector does not authorize callers or interpret method payloads.
Frames carry version, service, method and typed arguments. Transport owns framing, associated exchanges, deadlines and connections. Unknown version/service/method and malformed arguments are rejected before invoking a handler. One-way WriteFrame success means local submission, not remote acceptance or persistence.
Request-response methods use ExchangeFrame. Replies carry version, service, method, ok and payload; success payload contains typed value (or an empty object for void). Error payload contains nonempty code and message, which may be empty. ServiceError preserves unknown codes. Unexpected handler failures become handler_error without private details; invalid results become invalid_result. Clients validate reply identity and result before exposing it. A malformed frame or transport failure remains a local error; the transport must associate each response with its exchange. C++ dispatchers are pure protocol bindings, not listening servers.
Embed texts for the bound caller in one bounded call. Admission follows Chat.Start's order for profile embed, without its feature and capacity steps: argument shape (invalid), guarantees and host selection (no_host), the host's wire (unsupported_feature), the rights decision for abstraction.inference/complete on host:<name> (not_permitted, or unavailable), the credential's ceiling (budget_exceeded), then for a hosted host the credentials applier with consumer abstraction.inference/embed@1. Nothing leaves the service before every check passes. The call returns when the host replies.
Embed
request-response Embeddings
- Argument 1:
EmbedRequest request (required, including zero/false/empty)
Service Transcription [DEF-S1]
Prerecorded speech-to-text over an authorized content digest. Operations use the shared retained-delta lifecycle and are visible only through this profile to the account and program that started them.
Wire identity: abstraction.inference/transcription@1
Multiple services share this namespace. Generated ServiceName (Go) and service_name (C++/Python) validate the request envelope and version before returning its service identity for routing. The selected generated dispatcher validates the method and typed arguments; the selector does not authorize callers or interpret method payloads.
Frames carry version, service, method and typed arguments. Transport owns framing, associated exchanges, deadlines and connections. Unknown version/service/method and malformed arguments are rejected before invoking a handler. One-way WriteFrame success means local submission, not remote acceptance or persistence.
Request-response methods use ExchangeFrame. Replies carry version, service, method, ok and payload; success payload contains typed value (or an empty object for void). Error payload contains nonempty code and message, which may be empty. ServiceError preserves unknown codes. Unexpected handler failures become handler_error without private details; invalid results become invalid_result. Clients validate reply identity and result before exposing it. A malformed frame or transport failure remains a local error; the transport must associate each response with its exchange. C++ dispatchers are pure protocol bindings, not listening servers.
Admit one prerecorded transcription for the bound caller. Admission follows chat order for profile transcription: arguments, host and wire/format support, complete rights, authorized bounded content resolution and verification, ceiling, capacity, then the profile-scoped hosted credential. Nothing leaves the service before all checks pass.
Start
request-response Admission
- Argument 1:
TranscriptionRequest request (required, including zero/false/empty)
Read retained segment and terminal deltas with the shared operation cursor, page, reconnect, wait and idle semantics.
Observe
request-response DeltaPage
- Argument 1:
string operation (required, including zero/false/empty)
- Argument 2:
i64 cursor (required, including zero/false/empty)
- Argument 3:
i64 max_deltas (required, including zero/false/empty)
- Argument 4:
i64 max_bytes (required, including zero/false/empty)
- Argument 5:
i64 wait_ms (required, including zero/false/empty)
Stop a transcription operation and close its upstream request, using the shared operation cancellation outcomes.
Cancel
request-response Cancellation
- Argument 1:
string operation (required, including zero/false/empty)
Service Speech [DEF-S1]
Streaming text-to-speech with bounded audio deltas and a final storage reference. Operations are visible only through this profile to the account and program that started them.
Wire identity: abstraction.inference/speech@1
Multiple services share this namespace. Generated ServiceName (Go) and service_name (C++/Python) validate the request envelope and version before returning its service identity for routing. The selected generated dispatcher validates the method and typed arguments; the selector does not authorize callers or interpret method payloads.
Frames carry version, service, method and typed arguments. Transport owns framing, associated exchanges, deadlines and connections. Unknown version/service/method and malformed arguments are rejected before invoking a handler. One-way WriteFrame success means local submission, not remote acceptance or persistence.
Request-response methods use ExchangeFrame. Replies carry version, service, method, ok and payload; success payload contains typed value (or an empty object for void). Error payload contains nonempty code and message, which may be empty. ServiceError preserves unknown codes. Unexpected handler failures become handler_error without private details; invalid results become invalid_result. Clients validate reply identity and result before exposing it. A malformed frame or transport failure remains a local error; the transport must associate each response with its exchange. C++ dispatchers are pure protocol bindings, not listening servers.
Admit text-to-speech for the bound caller. Admission follows chat order for profile speech: arguments, host and wire/format support, complete rights, authorized output-write preflight, ceiling, capacity, then the profile-scoped hosted credential. Nothing leaves the service before every check passes.
Start
request-response Admission
- Argument 1:
SpeechRequest request (required, including zero/false/empty)
Read retained audio and terminal deltas with the shared operation cursor, page, reconnect, wait and idle semantics.
Observe
request-response DeltaPage
- Argument 1:
string operation (required, including zero/false/empty)
- Argument 2:
i64 cursor (required, including zero/false/empty)
- Argument 3:
i64 max_deltas (required, including zero/false/empty)
- Argument 4:
i64 max_bytes (required, including zero/false/empty)
- Argument 5:
i64 wait_ms (required, including zero/false/empty)
Stop a speech operation and close its upstream request, using the shared operation cancellation outcomes.
Cancel
request-response Cancellation
- Argument 1:
string operation (required, including zero/false/empty)
Service Live [DEF-S1]
Live audio through bounded native IPC calls. One session produces one final response. A new response starts a new session. Credentials and vendor WebSockets stay in the service.
Wire identity: abstraction.inference/live@1
Multiple services share this namespace. Generated ServiceName (Go) and service_name (C++/Python) validate the request envelope and version before returning its service identity for routing. The selected generated dispatcher validates the method and typed arguments; the selector does not authorize callers or interpret method payloads.
Frames carry version, service, method and typed arguments. Transport owns framing, associated exchanges, deadlines and connections. Unknown version/service/method and malformed arguments are rejected before invoking a handler. One-way WriteFrame success means local submission, not remote acceptance or persistence.
Request-response methods use ExchangeFrame. Replies carry version, service, method, ok and payload; success payload contains typed value (or an empty object for void). Error payload contains nonempty code and message, which may be empty. ServiceError preserves unknown codes. Unexpected handler failures become handler_error without private details; invalid results become invalid_result. Clients validate reply identity and result before exposing it. A malformed frame or transport failure remains a local error; the transport must associate each response with its exchange. C++ dispatchers are pure protocol bindings, not listening servers.
Admit a live session after host support, complete permission, output-write preflight, budget, shared capacity and credential checks. The service owns the upstream session. Observe reports setup failures after admission.
Start
request-response Admission
- Argument 1:
LiveRequest request (required, including zero/false/empty)
Append 1..65536 even-sized PCM bytes at the expected sequence. Bounded input and idle limits apply. Concurrent appends are serialized; only confirmed sends advance next_sequence.
Append
request-response LiveInputResult
- Argument 1:
string operation (required, including zero/false/empty)
- Argument 2:
i64 sequence (required, including zero/false/empty)
- Argument 3:
binary audio (required, including zero/false/empty)
Read retained transcript, audio and terminal deltas using shared cursor and wait semantics.
Observe
request-response DeltaPage
- Argument 1:
string operation (required, including zero/false/empty)
- Argument 2:
i64 cursor (required, including zero/false/empty)
- Argument 3:
i64 max_deltas (required, including zero/false/empty)
- Argument 4:
i64 max_bytes (required, including zero/false/empty)
- Argument 5:
i64 wait_ms (required, including zero/false/empty)
Close input and request the final response. A repeated Commit is duplicate. Observe continues until terminal delivery or failure; Commit does not wait for synthesis to finish.
Commit
request-response LiveInputResult
- Argument 1:
string operation (required, including zero/false/empty)
Immediately stop the live session and its upstream connection. Uses shared operation cancellation and ownership semantics.
Cancel
request-response Cancellation
- Argument 1:
string operation (required, including zero/false/empty)
Service Image [DEF-S1]
Image generation and edit with authorized digest inputs, bounded progress and typed result deliveries. Operations are visible only through this profile to the account and program that started them.
Wire identity: abstraction.inference/image@1
Multiple services share this namespace. Generated ServiceName (Go) and service_name (C++/Python) validate the request envelope and version before returning its service identity for routing. The selected generated dispatcher validates the method and typed arguments; the selector does not authorize callers or interpret method payloads.
Frames carry version, service, method and typed arguments. Transport owns framing, associated exchanges, deadlines and connections. Unknown version/service/method and malformed arguments are rejected before invoking a handler. One-way WriteFrame success means local submission, not remote acceptance or persistence.
Request-response methods use ExchangeFrame. Replies carry version, service, method, ok and payload; success payload contains typed value (or an empty object for void). Error payload contains nonempty code and message, which may be empty. ServiceError preserves unknown codes. Unexpected handler failures become handler_error without private details; invalid results become invalid_result. Clients validate reply identity and result before exposing it. A malformed frame or transport failure remains a local error; the transport must associate each response with its exchange. C++ dispatchers are pure protocol bindings, not listening servers.
Admit image generation or edit for the bound caller. Admission checks arguments, explicit host mode/size/count support, complete rights, authorized input and mask resolution, output-write preflight, ceiling, shared capacity and the profile-scoped credential before paid work.
Start
request-response Admission
- Argument 1:
ImageRequest request (required, including zero/false/empty)
Read retained progress, result and terminal deltas with the shared operation cursor, page, reconnect, wait and idle semantics.
Observe
request-response DeltaPage
- Argument 1:
string operation (required, including zero/false/empty)
- Argument 2:
i64 cursor (required, including zero/false/empty)
- Argument 3:
i64 max_deltas (required, including zero/false/empty)
- Argument 4:
i64 max_bytes (required, including zero/false/empty)
- Argument 5:
i64 wait_ms (required, including zero/false/empty)
Stop image work, including queue polling, and cancel the upstream job where its wire supports cancellation.
Cancel
request-response Cancellation
- Argument 1:
string operation (required, including zero/false/empty)
Service ImageV2 [DEF-S1]
Image generation and edit using the account and program scoped selection policy. Image@1 remains available for explicit model calls.
Wire identity: abstraction.inference/image@2
Multiple services share this namespace. Generated ServiceName (Go) and service_name (C++/Python) validate the request envelope and version before returning its service identity for routing. The selected generated dispatcher validates the method and typed arguments; the selector does not authorize callers or interpret method payloads.
Frames carry version, service, method and typed arguments. Transport owns framing, associated exchanges, deadlines and connections. Unknown version/service/method and malformed arguments are rejected before invoking a handler. One-way WriteFrame success means local submission, not remote acceptance or persistence.
Request-response methods use ExchangeFrame. Replies carry version, service, method, ok and payload; success payload contains typed value (or an empty object for void). Error payload contains nonempty code and message, which may be empty. ServiceError preserves unknown codes. Unexpected handler failures become handler_error without private details; invalid results become invalid_result. Clients validate reply identity and result before exposing it. A malformed frame or transport failure remains a local error; the transport must associate each response with its exchange. C++ dispatchers are pure protocol bindings, not listening servers.
Select an explicit model or a bounded named policy before image admission. A selected route runs one image@1 admission; fallback is limited to a proven unavailable route before admission.
Start
request-response AdmissionV2
- Argument 1:
ImageRequestV2 request (required, including zero/false/empty)
Observe an image@2 operation through the shared image lifecycle.
Observe
request-response DeltaPage
- Argument 1:
string operation (required, including zero/false/empty)
- Argument 2:
i64 cursor (required, including zero/false/empty)
- Argument 3:
i64 max_deltas (required, including zero/false/empty)
- Argument 4:
i64 max_bytes (required, including zero/false/empty)
- Argument 5:
i64 wait_ms (required, including zero/false/empty)
Cancel an image@2 operation through the shared image lifecycle.
Cancel
request-response Cancellation
- Argument 1:
string operation (required, including zero/false/empty)
Service Video [DEF-S1]
Video generation by a native provider for its designated runtime. Operations are visible only to the program that started them and live in the provider's memory: a provider or engine restart forgets them, and Observe then answers unknown.
Wire identity: abstraction.inference/video@1
Multiple services share this namespace. Generated ServiceName (Go) and service_name (C++/Python) validate the request envelope and version before returning its service identity for routing. The selected generated dispatcher validates the method and typed arguments; the selector does not authorize callers or interpret method payloads.
Frames carry version, service, method and typed arguments. Transport owns framing, associated exchanges, deadlines and connections. Unknown version/service/method and malformed arguments are rejected before invoking a handler. One-way WriteFrame success means local submission, not remote acceptance or persistence.
Request-response methods use ExchangeFrame. Replies carry version, service, method, ok and payload; success payload contains typed value (or an empty object for void). Error payload contains nonempty code and message, which may be empty. ServiceError preserves unknown codes. Unexpected handler failures become handler_error without private details; invalid results become invalid_result. Clients validate reply identity and result before exposing it. A malformed frame or transport failure remains a local error; the transport must associate each response with its exchange. C++ dispatchers are pure protocol bindings, not listening servers.
Admit one video for the bound designated runtime after argument, model, extension, rights and input checks, before engine work. A Start whose request_id the provider already holds from the same caller starts nothing, ignores the request's frame and returns that operation's admission again, and a runtime whose reply was lost sends the same Start again. Any other Start naming an image_digest the provider's content store does not hold is refused as invalid with reason content:unknown, and nothing is generated from the prompt alone. A provider holds each request_id until at least 24 hours after its operation ends; a provider that restarted holds none and admits the Start as new work (INF-G5, INF-G7).
Start
request-response VideoAdmission
- Argument 1:
VideoRequest request (required, including zero/false/empty)
Return the operation's current state without waiting.
Observe
request-response VideoObservation
- Argument 1:
string operation (required, including zero/false/empty)
Stop the operation and its engine job. cancelled means this call stopped it; ended carries how it had already ended; unknown means no such operation is visible.
Cancel
request-response Cancellation
- Argument 1:
string operation (required, including zero/false/empty)
Service Operator [DEF-S1]
Administer the runtime's inference hosts, the gateway window and its local keys, and read the inference audit. Each call is a rights decision for the bound operator subject; same-account identity alone grants nothing. A decision point that cannot answer reads unavailable.
Wire identity: abstraction.inference/operator@1
Multiple services share this namespace. Generated ServiceName (Go) and service_name (C++/Python) validate the request envelope and version before returning its service identity for routing. The selected generated dispatcher validates the method and typed arguments; the selector does not authorize callers or interpret method payloads.
Frames carry version, service, method and typed arguments. Transport owns framing, associated exchanges, deadlines and connections. Unknown version/service/method and malformed arguments are rejected before invoking a handler. One-way WriteFrame success means local submission, not remote acceptance or persistence.
Request-response methods use ExchangeFrame. Replies carry version, service, method, ok and payload; success payload contains typed value (or an empty object for void). Error payload contains nonempty code and message, which may be empty. ServiceError preserves unknown codes. Unexpected handler failures become handler_error without private details; invalid results become invalid_result. Clients validate reply identity and result before exposing it. A malformed frame or transport failure remains a local error; the transport must associate each response with its exchange. C++ dispatchers are pure protocol bindings, not listening servers.
Read the configured hosts, their router state and each hosted credential's spend today, from the registry's declarations of role host. Gated by abstraction.inference/host.manage on resource account.
Hosts
request-response HostList
Conditionally add one host, kept as a registry declaration of role host. Gated by host.manage. For the bound operator program and the runtime's other operator programs it also writes the permit rule abstraction.inference/complete on host:<name>, and for a hosted host with a credential it writes the runtime's own permit rule abstraction.credentials/apply on credential:<name>, which the router's listing reads need. Existing rules are left as they are.
AddHost
request-response HostChange
- Argument 1:
string expected_revision (required, including zero/false/empty)
- Argument 2:
HostEntry host (required, including zero/false/empty)
Conditionally remove one host; operations already admitted run to their end. Gated by host.manage. A host the installation or a product declared is disabled by name instead of removed. Rules are left as they are.
RemoveHost
request-response HostChange
- Argument 1:
string expected_revision (required, including zero/false/empty)
- Argument 2:
string name (required, including zero/false/empty)
Read the local keys of the receiving account. Gated by abstraction.inference/key.issue on resource account.
Keys
request-response KeyList
Mint a local key for program, an absolute executable path, and hold it in the platform store. credential, when not empty, names the hosted credential the window's requests for that program may spend under. Gated by key.issue. The key grants nothing: the window still binds the peer, requires that program, and decides abstraction.inference/complete and credentials apply for it.
IssueKey
request-response KeyIssued
- Argument 1:
string program (required, including zero/false/empty)
- Argument 2:
string credential (required, including zero/false/empty)
Destroy the active local key of program. Gated by key.issue.
RevokeKey
request-response KeyRevoked
- Argument 1:
string program (required, including zero/false/empty)
Read retained inference decisions from both routes. Gated by abstraction.inference/audit.read on resource account. cursor 0 starts at the oldest retained entry; max_entries is 1..256.
Audit
request-response AuditPage
- Argument 1:
i64 cursor (required, including zero/false/empty)
- Argument 2:
i64 max_entries (required, including zero/false/empty)
Read the gateway window setting and whether the window listens now. Gated by abstraction.inference/host.manage on resource account.
Gateway
request-response GatewayState
Conditionally write the gateway window setting to the runtime state and apply it to the running runtime: open listens on address, and closed stops the listener and every window connection. address is 127.0.0.1:<port>; empty keeps the recorded address when opening, and 127.0.0.1:8793 when none is recorded. The setting survives a restart. Gated by host.manage.
SetGateway
request-response GatewayChange
- Argument 1:
string expected_revision (required, including zero/false/empty)
- Argument 2:
bool open (required, including zero/false/empty)
- Argument 3:
string address (required, including zero/false/empty)
Service SelectionOperatorV2 [DEF-S1]
Manage policies for this program or an explicit executable in the bound account, with optional logical provider pins. Cross-program management requires selection.manage_for; the target program is a policy namespace, never requesting identity. Reads of the bound program need no grant; edits retain selection.manage.
Wire identity: abstraction.inference/selection-operator@2
Multiple services share this namespace. Generated ServiceName (Go) and service_name (C++/Python) validate the request envelope and version before returning its service identity for routing. The selected generated dispatcher validates the method and typed arguments; the selector does not authorize callers or interpret method payloads.
Frames carry version, service, method and typed arguments. Transport owns framing, associated exchanges, deadlines and connections. Unknown version/service/method and malformed arguments are rejected before invoking a handler. One-way WriteFrame success means local submission, not remote acceptance or persistence.
Request-response methods use ExchangeFrame. Replies carry version, service, method, ok and payload; success payload contains typed value (or an empty object for void). Error payload contains nonempty code and message, which may be empty. ServiceError preserves unknown codes. Unexpected handler failures become handler_error without private details; invalid results become invalid_result. Clients validate reply identity and result before exposing it. A malformed frame or transport failure remains a local error; the transport must associate each response with its exchange. C++ dispatchers are pure protocol bindings, not listening servers.
Read a policy for target_program in the bound account. Empty or the caller's own normalized executable reads self scope with no grant; another absolute canonical executable needs selection.manage_for on account. target_program names the managed scope, never the caller identity.
Read
request-response SelectionReadV2
- Argument 1:
string target_program (required, including zero/false/empty)
- Argument 2:
string name (required, including zero/false/empty)
Conditionally create or replace a policy for target_program in the shared store. Empty or self target needs selection.manage; another program needs selection.manage_for on account.
Put
request-response SelectionChange
- Argument 1:
string target_program (required, including zero/false/empty)
- Argument 2:
string expected_revision (required, including zero/false/empty)
- Argument 3:
SelectionPolicyV2 policy (required, including zero/false/empty)
Conditionally delete a policy for target_program in the shared store. Empty or self target needs selection.manage; another program needs selection.manage_for on account.
DeletePolicy
request-response SelectionChange
- Argument 1:
string target_program (required, including zero/false/empty)
- Argument 2:
string expected_revision (required, including zero/false/empty)
- Argument 3:
string name (required, including zero/false/empty)
Encoding [DEF-E1]
| setting | value | rule |
escape | minimal | [DEF-E2] |
indent | 2 | [DEF-E3] |
map_keys | utf8-bytes | [DEF-E4] |
numbers | integer-decimal | [DEF-E5] |
opaque | verbatim | [DEF-E6] |
terminator | newline | [DEF-E7] |
duplicate_keys | refuse | [DEF-E8] |
depth_limit | 64 | [DEF-E9] |
Types
| kind | types |
| built in | AuditOutcome AuditRoute CancelOutcome CandidatePlacement DeltaKind EditOutcome EmbedOutcome ImageMode KeyState ListOutcome LiveFormat LiveInputOutcome PageOutcome PartKind PreloadOutcome ReplyOutcome Role SelectionReadOutcome SelectionReason SpeechFormat StartOutcome StopReason TimestampMode TranscriptUnitKind VideoState binary bool i64 string |
| declared below | AudioChunk CeilingLimit Cost Delivery HostEntry ImageProgress ImageReply ImageRequestContent ImageResult LiveReply LiveTranscript LocalKey Message Options Part Reply RequestContent SelectionPolicyV2 SpeechReply Spend Target Temperature TranscriptSegment TranscriptionReply Usage |
| container [DEF-T3] | list<RequestGuarantee> list<string> |
| repeated record [DEF-A9] | list<AuditEntry> list<Delivery> list<Delta> list<HostState> list<LocalKey> list<Message> list<Part> list<SelectionCandidateV2> list<Tool> |
| string map [DEF-A10] | map<string,string> |
Structs [DEF-T1]
A field is required, or says when it is omitted [DEF-A4]. Each struct says on its own what it does with a field name it has never heard of [DEF-A7]. A wire name never moves; where a language must spell it differently the field says so [DEF-A2].
Part
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | kind | PartKind | required | — |
| 2 | text | string | optional · omitted when zero | — |
| 3 | digest | string | optional · omitted when zero | — |
| 4 | media_type | string | optional · omitted when zero | — |
| 5 | call_id | string | optional · omitted when zero | — |
| 6 | name | string | optional · omitted when zero | — |
| 7 | arguments | string | optional · omitted when zero | — |
Message
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | role | Role | required | — |
| 2 | parts | list<Part> | required | — |
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | name | string | required | — |
| 2 | description | string | required | — |
| 3 | parameters | string | required | — |
Temperature
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | milli | i64 | required | — |
Options
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | max_output | i64 | optional · omitted when zero | — |
| 2 | temperature | Temperature | optional · omitted when absent | — |
| 3 | stop | list<string> | optional · omitted when zero | — |
| 4 | json_schema | string | optional · omitted when zero | — |
Request
the document [DEF-A1] · unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | model | string | required | — |
| 2 | messages | list<Message> | required | — |
| 3 | tools | list<Tool> | optional · omitted when zero | — |
| 4 | options | Options | optional · omitted when absent | — |
| 5 | extensions | map<string,string> | optional · omitted when zero | — |
| 6 | required_extensions | list<string> | optional · omitted when zero | — |
| 7 | guarantees | list<RequestGuarantee> | required | — |
| 8 | credential | string | optional · omitted when zero | — |
Target
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | model | string | optional · omitted when zero | — |
| 2 | selection_policy | string | optional · omitted when zero | — |
RequestContent
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | messages | list<Message> | required | — |
| 2 | tools | list<Tool> | optional · omitted when zero | — |
| 3 | options | Options | optional · omitted when absent | — |
| 4 | extensions | map<string,string> | optional · omitted when zero | — |
| 5 | required_extensions | list<string> | optional · omitted when zero | — |
| 6 | guarantees | list<RequestGuarantee> | required | — |
| 7 | credential | string | optional · omitted when zero | — |
RequestV2
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | target | Target | required | — |
| 2 | content | RequestContent | required | — |
Usage
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | input | i64 | required | — |
| 2 | output | i64 | required | — |
| 3 | cached | i64 | required | — |
Cost
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | micros | i64 | required | — |
| 2 | currency | string | required | — |
Reply
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | ReplyOutcome | required | — |
| 2 | reason | string | required | — |
| 3 | message | Message | required | — |
| 4 | stop_reason | StopReason | required | — |
| 5 | usage | Usage | required | — |
| 6 | host | string | required | — |
| 7 | model | string | required | — |
| 8 | cost | Cost | optional · omitted when absent | — |
Delta
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | sequence | i64 | required | — |
| 2 | kind | DeltaKind | required | — |
| 3 | index | i64 | optional · omitted when zero | — |
| 4 | part | Part | optional · omitted when absent | — |
| 5 | usage | Usage | optional · omitted when absent | — |
| 6 | end | Reply | optional · omitted when absent | — |
| 7 | segment | TranscriptSegment | optional · omitted when absent | — |
| 8 | transcription_end | TranscriptionReply | optional · omitted when absent | — |
| 9 | audio | AudioChunk | optional · omitted when absent | — |
| 10 | speech_end | SpeechReply | optional · omitted when absent | — |
| 11 | transcript | LiveTranscript | optional · omitted when absent | — |
| 12 | live_end | LiveReply | optional · omitted when absent | — |
| 13 | image_progress | ImageProgress | optional · omitted when absent | — |
| 14 | image_result | ImageResult | optional · omitted when absent | — |
| 15 | image_end | ImageReply | optional · omitted when absent | — |
Admission
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | StartOutcome | required | — |
| 2 | reason | string | required | — |
| 3 | operation | string | required | — |
| 4 | host | string | required | — |
| 5 | model | string | required | — |
| 6 | retention_ms | i64 | required | — |
| 7 | idle_ms | i64 | required | — |
| 8 | retained_deltas | i64 | required | — |
AdmissionV2
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | StartOutcome | required | — |
| 2 | reason | string | required | — |
| 3 | operation | string | required | — |
| 4 | host | string | required | — |
| 5 | model | string | required | — |
| 6 | retention_ms | i64 | required | — |
| 7 | idle_ms | i64 | required | — |
| 8 | retained_deltas | i64 | required | — |
| 9 | preferred_model | string | optional · omitted when zero | — |
| 10 | selection_reason | SelectionReason | optional · omitted when absent | — |
DeltaPage
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | PageOutcome | required | — |
| 2 | deltas | list<Delta> | required | — |
| 3 | next | i64 | required | — |
| 4 | at_end | bool | required | — |
Cancellation
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | CancelOutcome | required | — |
| 2 | reply_outcome | ReplyOutcome | optional · omitted when absent | — |
PreloadReply
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | PreloadOutcome | required | — |
| 2 | reason | string | required | — |
| 3 | host | string | required | — |
| 4 | model | string | required | — |
| 5 | tokens | i64 | required | — |
EmbedRequest
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | model | string | required | — |
| 2 | inputs | list<string> | required | — |
| 3 | dimensions | i64 | optional · omitted when zero | — |
| 4 | guarantees | list<RequestGuarantee> | required | — |
| 5 | credential | string | optional · omitted when zero | — |
| 6 | extensions | map<string,string> | optional · omitted when zero | — |
Embeddings
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | EmbedOutcome | required | — |
| 2 | reason | string | required | — |
| 3 | vectors | list<string> | required | — |
| 4 | dimensions | i64 | required | — |
| 5 | usage | Usage | required | — |
| 6 | host | string | required | — |
| 7 | model | string | required | — |
| 8 | cost | Cost | optional · omitted when absent | — |
TranscriptionRequest
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | model | string | required | — |
| 2 | audio_digest | string | required | — |
| 3 | media_type | string | required | — |
| 4 | language | string | optional · omitted when zero | — |
| 5 | timestamps | TimestampMode | required | — |
| 6 | guarantees | list<RequestGuarantee> | required | — |
| 7 | credential | string | optional · omitted when zero | — |
| 8 | extensions | map<string,string> | optional · omitted when zero | — |
TranscriptSegment
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | index | i64 | required | — |
| 2 | kind | TranscriptUnitKind | required | — |
| 3 | start_ms | i64 | required | — |
| 4 | end_ms | i64 | required | — |
| 5 | text | string | required | — |
TranscriptionReply
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | ReplyOutcome | required | — |
| 2 | reason | string | required | — |
| 3 | language | string | required | — |
| 4 | duration_ms | i64 | required | — |
| 5 | usage | Usage | required | — |
| 6 | host | string | required | — |
| 7 | model | string | required | — |
| 8 | cost | Cost | optional · omitted when absent | — |
SpeechRequest
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | model | string | required | — |
| 2 | voice | string | required | — |
| 3 | text | string | required | — |
| 4 | format | SpeechFormat | required | — |
| 5 | guarantees | list<RequestGuarantee> | required | — |
| 6 | credential | string | optional · omitted when zero | — |
| 7 | extensions | map<string,string> | optional · omitted when zero | — |
AudioChunk
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | index | i64 | required | — |
| 2 | data | binary | required | — |
Delivery
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | digest | string | required | — |
| 2 | media_type | string | required | — |
| 3 | size | i64 | required | — |
| 4 | location | string | required | — |
SpeechReply
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | ReplyOutcome | required | — |
| 2 | reason | string | required | — |
| 3 | delivery | Delivery | required | — |
| 4 | characters | i64 | required | — |
| 5 | usage | Usage | required | — |
| 6 | host | string | required | — |
| 7 | model | string | required | — |
| 8 | cost | Cost | optional · omitted when absent | — |
LiveRequest
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | model | string | required | — |
| 2 | voice | string | required | — |
| 3 | format | LiveFormat | required | — |
| 4 | guarantees | list<RequestGuarantee> | required | — |
| 5 | credential | string | optional · omitted when zero | — |
| 6 | extensions | map<string,string> | optional · omitted when zero | — |
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | LiveInputOutcome | required | — |
| 2 | next_sequence | i64 | required | — |
LiveTranscript
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | text | string | required | — |
| 2 | is_final | bool | required | — |
LiveReply
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | ReplyOutcome | required | — |
| 2 | reason | string | required | — |
| 3 | delivery | Delivery | required | — |
| 4 | usage | Usage | required | — |
| 5 | input_audio_bytes | i64 | required | — |
| 6 | output_audio_bytes | i64 | required | — |
| 7 | host | string | required | — |
| 8 | model | string | required | — |
ImageRequest
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | model | string | required | — |
| 2 | mode | ImageMode | required | — |
| 3 | prompt | string | required | — |
| 4 | size | string | required | — |
| 5 | count | i64 | required | — |
| 6 | image_digest | string | optional · omitted when zero | — |
| 7 | image_media_type | string | optional · omitted when zero | — |
| 8 | mask_digest | string | optional · omitted when zero | — |
| 9 | mask_media_type | string | optional · omitted when zero | — |
| 10 | guarantees | list<RequestGuarantee> | required | — |
| 11 | credential | string | optional · omitted when zero | — |
| 12 | required_extensions | list<string> | optional · omitted when zero | — |
| 13 | extensions | map<string,string> | optional · omitted when zero | — |
ImageRequestContent
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | mode | ImageMode | required | — |
| 2 | prompt | string | required | — |
| 3 | size | string | required | — |
| 4 | count | i64 | required | — |
| 5 | image_digest | string | optional · omitted when zero | — |
| 6 | image_media_type | string | optional · omitted when zero | — |
| 7 | mask_digest | string | optional · omitted when zero | — |
| 8 | mask_media_type | string | optional · omitted when zero | — |
| 9 | guarantees | list<RequestGuarantee> | required | — |
| 10 | credential | string | optional · omitted when zero | — |
| 11 | required_extensions | list<string> | optional · omitted when zero | — |
| 12 | extensions | map<string,string> | optional · omitted when zero | — |
ImageRequestV2
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | target | Target | required | — |
| 2 | content | ImageRequestContent | required | — |
ImageProgress
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | percent | i64 | optional · omitted when zero | — |
| 2 | message | string | required | — |
ImageResult
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | index | i64 | required | — |
| 2 | delivery | Delivery | required | — |
ImageReply
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | ReplyOutcome | required | — |
| 2 | reason | string | required | — |
| 3 | deliveries | list<Delivery> | required | — |
| 4 | images | i64 | required | — |
| 5 | usage | Usage | required | — |
| 6 | host | string | required | — |
| 7 | model | string | required | — |
| 8 | cost | Cost | optional · omitted when absent | — |
VideoRequest
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | model | string | required | — |
| 2 | prompt | string | required | — |
| 3 | size | string | required | — |
| 4 | duration_ms | i64 | required | — |
| 5 | fps | i64 | optional · omitted when zero | — |
| 6 | seed | i64 | optional · omitted when zero | — |
| 7 | image_digest | string | optional · omitted when zero | — |
| 8 | image_media_type | string | optional · omitted when zero | — |
| 9 | required_extensions | list<string> | optional · omitted when zero | — |
| 10 | extensions | map<string,string> | optional · omitted when zero | — |
| 11 | request_id | string | required | — |
VideoAdmission
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | StartOutcome | required | — |
| 2 | reason | string | required | — |
| 3 | operation | string | required | — |
| 4 | retention_ms | i64 | required | — |
VideoObservation
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | status | VideoState | required | — |
| 2 | step | i64 | optional · omitted when zero | — |
| 3 | steps | i64 | optional · omitted when zero | — |
| 4 | queue_position | i64 | optional · omitted when zero | — |
| 5 | reason | string | optional · omitted when zero | — |
| 6 | delivery | Delivery | optional · omitted when absent | — |
CeilingLimit
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | tokens_per_day | i64 | optional · omitted when zero | — |
| 2 | micros_per_day | i64 | optional · omitted when zero | — |
| 3 | requests_per_day | i64 | optional · omitted when zero | — |
| 4 | images_per_day | i64 | optional · omitted when zero | — |
| 5 | audio_seconds_per_day | i64 | optional · omitted when zero | — |
| 6 | characters_per_day | i64 | optional · omitted when zero | — |
HostEntry
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | name | string | required | — |
| 2 | hosted | bool | required | — |
| 3 | kind | string | required | — |
| 4 | base | string | required | — |
| 5 | credential | string | optional · omitted when zero | — |
| 6 | ceiling | CeilingLimit | optional · omitted when absent | — |
| 7 | profiles | list<string> | optional · omitted when zero | — |
| 8 | declared_by | string | optional · omitted when zero | — |
Spend
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | day | string | required | — |
| 2 | tokens | i64 | required | — |
| 3 | micros | i64 | required | — |
| 4 | requests | i64 | optional · omitted when zero | — |
| 5 | audio_seconds | i64 | optional · omitted when zero | — |
| 6 | characters | i64 | optional · omitted when zero | — |
| 7 | images | i64 | optional · omitted when zero | — |
HostState
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | entry | HostEntry | required | — |
| 2 | up | bool | required | — |
| 3 | why | string | required | — |
| 4 | spend | Spend | optional · omitted when absent | — |
HostList
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | ListOutcome | required | — |
| 2 | revision | string | required | — |
| 3 | hosts | list<HostState> | required | — |
HostChange
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | EditOutcome | required | — |
| 2 | revision | string | required | — |
| 3 | reason | string | required | — |
LocalKey
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | program | string | required | — |
| 2 | name | string | required | — |
| 3 | credential | string | optional · omitted when zero | — |
| 4 | issued_unix_ms | i64 | required | — |
| 5 | issued_by | string | required | — |
| 6 | state | KeyState | required | — |
KeyList
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | ListOutcome | required | — |
| 2 | keys | list<LocalKey> | required | — |
KeyIssued
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | EditOutcome | required | — |
| 2 | reason | string | required | — |
| 3 | key | string | optional · omitted when zero | — |
| 4 | record | LocalKey | optional · omitted when absent | — |
KeyRevoked
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | EditOutcome | required | — |
AuditEntry
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | sequence | i64 | required | — |
| 2 | unix_ms | i64 | required | — |
| 3 | route | AuditRoute | required | — |
| 4 | rung | string | required | — |
| 5 | program | string | required | — |
| 6 | operation | string | required | — |
| 7 | host | string | required | — |
| 8 | model | string | required | — |
| 9 | credential | string | required | — |
| 10 | outcome | string | required | — |
| 11 | reason | string | required | — |
| 12 | tokens_in | i64 | required | — |
| 13 | tokens_out | i64 | required | — |
| 14 | wall_ms | i64 | required | — |
| 15 | ceiling | string | required | — |
| 16 | domain | string | optional · omitted when zero | — |
| 17 | claim | string | optional · omitted when zero | — |
| 18 | profile | string | optional · omitted when zero | — |
| 19 | audio_seconds | i64 | optional · omitted when zero | — |
| 20 | characters | i64 | optional · omitted when zero | — |
| 21 | images | i64 | optional · omitted when zero | — |
AuditPage
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | AuditOutcome | required | — |
| 2 | entries | list<AuditEntry> | required | — |
| 3 | next | i64 | required | — |
| 4 | at_end | bool | required | — |
GatewayState
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | ListOutcome | required | — |
| 2 | revision | string | required | — |
| 3 | open | bool | required | — |
| 4 | address | string | required | — |
| 5 | listening | bool | required | — |
| 6 | listening_address | string | required | — |
| 7 | why | string | required | — |
GatewayChange
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | EditOutcome | required | — |
| 2 | revision | string | required | — |
| 3 | reason | string | required | — |
SelectionChange
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | EditOutcome | required | — |
| 2 | revision | string | required | — |
| 3 | reason | string | required | — |
SelectionCandidateV2
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | model | string | required | — |
| 2 | placement | CandidatePlacement | required | — |
| 3 | credential | string | optional · omitted when zero | — |
| 4 | provider | string | optional · omitted when zero | — |
SelectionPolicyV2
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | name | string | required | — |
| 2 | candidates | list<SelectionCandidateV2> | required | — |
SelectionReadV2
unknown fields refuse
| id | field | type | presence | named elsewhere |
| 1 | outcome | SelectionReadOutcome | required | — |
| 2 | revision | string | required | — |
| 3 | policy | SelectionPolicyV2 | optional · omitted when absent | — |
Enumerations [DEF-T5]
Enum fields carry JSON strings containing exact member wire spellings, never numeric IDs. Unknown names are preserved with grant and refused as bad_enum with refuse on read and write. Optional absent fields preserve presence separately from an empty string.
An enumeration is a closed vocabulary of wire names, and each one says on its own what a reader does with a member it has never heard of [DEF-A5].
RequestGuarantee
a member this reader does not know is grant
| id | member | wire |
| 1 | local_only | abstraction.inference/local-only@1 |
| 2 | hosted_allowed | abstraction.inference/hosted-allowed@1 |
Role
a member this reader does not know is refuse
| id | member | wire |
| 1 | system | system |
| 2 | user | user |
| 3 | assistant | assistant |
| 4 | tool | tool |
PartKind
a member this reader does not know is refuse
| id | member | wire |
| 1 | text | text |
| 2 | image | image |
| 3 | tool_call | tool_call |
| 4 | tool_result | tool_result |
ReplyOutcome
a member this reader does not know is refuse
| id | member | wire |
| 1 | completed | completed |
| 2 | refused | refused |
| 3 | not_permitted | not_permitted |
| 4 | budget_exceeded | budget_exceeded |
| 5 | unsupported_feature | unsupported_feature |
| 6 | no_host | no_host |
| 7 | cancelled | cancelled |
| 8 | unavailable | unavailable |
| 9 | invalid | invalid |
| 10 | forbidden | forbidden |
| 11 | exhausted | exhausted |
StopReason
a member this reader does not know is refuse
| id | member | wire |
| 1 | no_stop | no_stop |
| 2 | end | end |
| 3 | max_output | max_output |
| 4 | stop_sequence | stop_sequence |
| 5 | tool_calls | tool_calls |
| 6 | content_filter | content_filter |
| 7 | other | other |
DeltaKind
a member this reader does not know is refuse
| id | member | wire |
| 1 | part | part |
| 2 | usage | usage |
| 3 | end | end |
| 4 | segment | segment |
| 5 | audio | audio |
| 6 | transcript | transcript |
| 7 | image_progress | image_progress |
| 8 | image_result | image_result |
StartOutcome
a member this reader does not know is refuse
| id | member | wire |
| 1 | accepted | accepted |
| 2 | not_permitted | not_permitted |
| 3 | budget_exceeded | budget_exceeded |
| 4 | unsupported_feature | unsupported_feature |
| 5 | no_host | no_host |
| 6 | unavailable | unavailable |
| 7 | invalid | invalid |
| 8 | forbidden | forbidden |
| 9 | exhausted | exhausted |
SelectionReason
a member this reader does not know is refuse
| id | member | wire |
| 1 | explicit_model | explicit_model |
| 2 | preferred | preferred |
| 3 | preferred_route_unavailable | preferred_route_unavailable |
PageOutcome
a member this reader does not know is refuse
| id | member | wire |
| 1 | page | page |
| 2 | gap | gap |
| 3 | unknown | unknown |
| 4 | invalid | invalid |
| 5 | forbidden | forbidden |
| 6 | unavailable | unavailable |
CancelOutcome
a member this reader does not know is refuse
| id | member | wire |
| 1 | cancelled | cancelled |
| 2 | ended | ended |
| 3 | unknown | unknown |
| 4 | invalid | invalid |
| 5 | forbidden | forbidden |
| 6 | unavailable | unavailable |
PreloadOutcome
a member this reader does not know is refuse
| id | member | wire |
| 1 | evaluated | evaluated |
| 2 | loaded | loaded |
| 3 | busy | busy |
| 4 | refused | refused |
| 5 | not_permitted | not_permitted |
| 6 | unsupported_feature | unsupported_feature |
| 7 | no_host | no_host |
| 8 | unavailable | unavailable |
| 9 | invalid | invalid |
| 10 | forbidden | forbidden |
EmbedOutcome
a member this reader does not know is refuse
| id | member | wire |
| 1 | completed | completed |
| 2 | refused | refused |
| 3 | not_permitted | not_permitted |
| 4 | budget_exceeded | budget_exceeded |
| 5 | unsupported_feature | unsupported_feature |
| 6 | no_host | no_host |
| 7 | unavailable | unavailable |
| 8 | invalid | invalid |
| 9 | forbidden | forbidden |
TranscriptUnitKind
a member this reader does not know is refuse
| id | member | wire |
| 1 | segment | segment |
| 2 | word | word |
TimestampMode
a member this reader does not know is refuse
| id | member | wire |
| 1 | none | none |
| 2 | segment | segment |
| 3 | word | word |
| 4 | segment_and_word | segment_and_word |
a member this reader does not know is refuse
| id | member | wire |
| 1 | mp3 | mp3 |
| 2 | opus | opus |
| 3 | aac | aac |
| 4 | flac | flac |
| 5 | wav | wav |
| 6 | pcm | pcm |
a member this reader does not know is refuse
| id | member | wire |
| 1 | pcm16_24000 | pcm16_24000 |
a member this reader does not know is refuse
| id | member | wire |
| 1 | accepted | accepted |
| 2 | duplicate | duplicate |
| 3 | out_of_order | out_of_order |
| 4 | closed | closed |
| 5 | invalid | invalid |
| 6 | unknown | unknown |
| 7 | forbidden | forbidden |
| 8 | unavailable | unavailable |
| 9 | exhausted | exhausted |
ImageMode
a member this reader does not know is refuse
| id | member | wire |
| 1 | generate | generate |
| 2 | edit | edit |
VideoState
a member this reader does not know is refuse
| id | member | wire |
| 1 | queued | queued |
| 2 | generating | generating |
| 3 | completed | completed |
| 4 | failed | failed |
| 5 | cancelled | cancelled |
| 6 | unknown | unknown |
| 7 | invalid | invalid |
| 8 | forbidden | forbidden |
| 9 | unavailable | unavailable |
ListOutcome
a member this reader does not know is refuse
| id | member | wire |
| 1 | page | page |
| 2 | invalid | invalid |
| 3 | forbidden | forbidden |
| 4 | unavailable | unavailable |
EditOutcome
a member this reader does not know is refuse
| id | member | wire |
| 1 | applied | applied |
| 2 | conflict | conflict |
| 3 | unknown | unknown |
| 4 | invalid | invalid |
| 5 | no_secure_store | no_secure_store |
| 6 | forbidden | forbidden |
| 7 | unavailable | unavailable |
KeyState
a member this reader does not know is refuse
| id | member | wire |
| 1 | active | active |
| 2 | revoked | revoked |
| 3 | lost | lost |
AuditRoute
a member this reader does not know is refuse
| id | member | wire |
| 1 | native | native |
| 2 | window | window |
| 3 | remote | remote |
AuditOutcome
a member this reader does not know is refuse
| id | member | wire |
| 1 | page | page |
| 2 | gap | gap |
| 3 | invalid | invalid |
| 4 | forbidden | forbidden |
| 5 | unavailable | unavailable |
CandidatePlacement
a member this reader does not know is refuse
| id | member | wire |
| 1 | local | local |
| 2 | hosted | hosted |
SelectionReadOutcome
a member this reader does not know is refuse
| id | member | wire |
| 1 | found | found |
| 2 | unknown | unknown |
| 3 | invalid | invalid |
| 4 | forbidden | forbidden |
| 5 | unavailable | unavailable |
Constants [DEF-A6]
| name | type | value |
features | list<string> | abstraction.inference/tools@1, abstraction.inference/json-schema@1, abstraction.inference/vision@1 |
resource_actions | list<string> | abstraction.inference/complete, abstraction.inference/host.manage, abstraction.inference/key.issue, abstraction.inference/audit.read, abstraction.inference/selection.manage, abstraction.inference/selection.manage_for |
local_key_kinds | list<string> | openabstractions/local-key@1 |
local_host_kinds | list<string> | ollama, lmstudio, lemonade, whispercpp, piper, comfyui, swarmui, docker-model-runner, foundry-local |
host_profiles | list<string> | chat, embed, transcription, speech, image, live |
host_declarers | list<string> | operator, ollama, lmstudio, docker-model-runner, foundry-local, installation, default |
credential_consumers | list<string> | abstraction.inference/chat@1, abstraction.inference/embed@1, abstraction.inference/transcription@1, abstraction.inference/speech@1, abstraction.inference/live@1 |
claim_extensions | list<string> | openabstractions/claimed-program |
Refusal words [DEF-R1]
| order | word | stage |
| 1 | malformed | grammar |
| 2 | bad_string | grammar |
| 3 | bad_binary | grammar |
| 4 | number_spelling | grammar |
| 5 | wrong_type | grammar |
| 6 | depth_exceeded | grammar |
| 7 | duplicate_key | grammar |
| 8 | duplicate_field | structure |
| 9 | unknown_field | structure |
| 10 | missing_field | structure |
| 11 | bad_enum | structure |
| 12 | trailing_bytes | document |