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

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

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

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

Observe the same caller-bound operation registry and DeltaPage as chat@1, without reselecting the model.

Observe

request-response DeltaPage

Cancel the same caller-bound operation as chat@1, without reselecting the model.

Cancel

request-response Cancellation

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

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

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

Read retained segment and terminal deltas with the shared operation cursor, page, reconnect, wait and idle semantics.

Observe

request-response DeltaPage

Stop a transcription operation and close its upstream request, using the shared operation cancellation outcomes.

Cancel

request-response Cancellation

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

Read retained audio and terminal deltas with the shared operation cursor, page, reconnect, wait and idle semantics.

Observe

request-response DeltaPage

Stop a speech operation and close its upstream request, using the shared operation cancellation outcomes.

Cancel

request-response Cancellation

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

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

Read retained transcript, audio and terminal deltas using shared cursor and wait semantics.

Observe

request-response DeltaPage

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

Immediately stop the live session and its upstream connection. Uses shared operation cancellation and ownership semantics.

Cancel

request-response Cancellation

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

Read retained progress, result and terminal deltas with the shared operation cursor, page, reconnect, wait and idle semantics.

Observe

request-response DeltaPage

Stop image work, including queue polling, and cancel the upstream job where its wire supports cancellation.

Cancel

request-response Cancellation

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

Observe an image@2 operation through the shared image lifecycle.

Observe

request-response DeltaPage

Cancel an image@2 operation through the shared image lifecycle.

Cancel

request-response Cancellation

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

Return the operation's current state without waiting.

Observe

request-response VideoObservation

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

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

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

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

Destroy the active local key of program. Gated by key.issue.

RevokeKey

request-response KeyRevoked

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

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

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

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

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

Encoding [DEF-E1]

settingvaluerule
escapeminimal[DEF-E2]
indent2[DEF-E3]
map_keysutf8-bytes[DEF-E4]
numbersinteger-decimal[DEF-E5]
opaqueverbatim[DEF-E6]
terminatornewline[DEF-E7]
duplicate_keysrefuse[DEF-E8]
depth_limit64[DEF-E9]

Types

kindtypes
built inAuditOutcome 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 belowAudioChunk 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

idfieldtypepresencenamed elsewhere
1kindPartKindrequired—
2textstringoptional · omitted when zero—
3digeststringoptional · omitted when zero—
4media_typestringoptional · omitted when zero—
5call_idstringoptional · omitted when zero—
6namestringoptional · omitted when zero—
7argumentsstringoptional · omitted when zero—

Message

unknown fields refuse

idfieldtypepresencenamed elsewhere
1roleRolerequired—
2partslist<Part>required—

Tool

unknown fields refuse

idfieldtypepresencenamed elsewhere
1namestringrequired—
2descriptionstringrequired—
3parametersstringrequired—

Temperature

unknown fields refuse

idfieldtypepresencenamed elsewhere
1millii64required—

Options

unknown fields refuse

idfieldtypepresencenamed elsewhere
1max_outputi64optional · omitted when zero—
2temperatureTemperatureoptional · omitted when absent—
3stoplist<string>optional · omitted when zero—
4json_schemastringoptional · omitted when zero—

Request

the document [DEF-A1] · unknown fields refuse

idfieldtypepresencenamed elsewhere
1modelstringrequired—
2messageslist<Message>required—
3toolslist<Tool>optional · omitted when zero—
4optionsOptionsoptional · omitted when absent—
5extensionsmap<string,string>optional · omitted when zero—
6required_extensionslist<string>optional · omitted when zero—
7guaranteeslist<RequestGuarantee>required—
8credentialstringoptional · omitted when zero—

Target

unknown fields refuse

idfieldtypepresencenamed elsewhere
1modelstringoptional · omitted when zero—
2selection_policystringoptional · omitted when zero—

RequestContent

unknown fields refuse

idfieldtypepresencenamed elsewhere
1messageslist<Message>required—
2toolslist<Tool>optional · omitted when zero—
3optionsOptionsoptional · omitted when absent—
4extensionsmap<string,string>optional · omitted when zero—
5required_extensionslist<string>optional · omitted when zero—
6guaranteeslist<RequestGuarantee>required—
7credentialstringoptional · omitted when zero—

RequestV2

unknown fields refuse

idfieldtypepresencenamed elsewhere
1targetTargetrequired—
2contentRequestContentrequired—

Usage

unknown fields refuse

idfieldtypepresencenamed elsewhere
1inputi64required—
2outputi64required—
3cachedi64required—

Cost

unknown fields refuse

idfieldtypepresencenamed elsewhere
1microsi64required—
2currencystringrequired—

Reply

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeReplyOutcomerequired—
2reasonstringrequired—
3messageMessagerequired—
4stop_reasonStopReasonrequired—
5usageUsagerequired—
6hoststringrequired—
7modelstringrequired—
8costCostoptional · omitted when absent—

Delta

unknown fields refuse

idfieldtypepresencenamed elsewhere
1sequencei64required—
2kindDeltaKindrequired—
3indexi64optional · omitted when zero—
4partPartoptional · omitted when absent—
5usageUsageoptional · omitted when absent—
6endReplyoptional · omitted when absent—
7segmentTranscriptSegmentoptional · omitted when absent—
8transcription_endTranscriptionReplyoptional · omitted when absent—
9audioAudioChunkoptional · omitted when absent—
10speech_endSpeechReplyoptional · omitted when absent—
11transcriptLiveTranscriptoptional · omitted when absent—
12live_endLiveReplyoptional · omitted when absent—
13image_progressImageProgressoptional · omitted when absent—
14image_resultImageResultoptional · omitted when absent—
15image_endImageReplyoptional · omitted when absent—

Admission

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeStartOutcomerequired—
2reasonstringrequired—
3operationstringrequired—
4hoststringrequired—
5modelstringrequired—
6retention_msi64required—
7idle_msi64required—
8retained_deltasi64required—

AdmissionV2

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeStartOutcomerequired—
2reasonstringrequired—
3operationstringrequired—
4hoststringrequired—
5modelstringrequired—
6retention_msi64required—
7idle_msi64required—
8retained_deltasi64required—
9preferred_modelstringoptional · omitted when zero—
10selection_reasonSelectionReasonoptional · omitted when absent—

DeltaPage

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomePageOutcomerequired—
2deltaslist<Delta>required—
3nexti64required—
4at_endboolrequired—

Cancellation

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeCancelOutcomerequired—
2reply_outcomeReplyOutcomeoptional · omitted when absent—

PreloadReply

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomePreloadOutcomerequired—
2reasonstringrequired—
3hoststringrequired—
4modelstringrequired—
5tokensi64required—

EmbedRequest

unknown fields refuse

idfieldtypepresencenamed elsewhere
1modelstringrequired—
2inputslist<string>required—
3dimensionsi64optional · omitted when zero—
4guaranteeslist<RequestGuarantee>required—
5credentialstringoptional · omitted when zero—
6extensionsmap<string,string>optional · omitted when zero—

Embeddings

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeEmbedOutcomerequired—
2reasonstringrequired—
3vectorslist<string>required—
4dimensionsi64required—
5usageUsagerequired—
6hoststringrequired—
7modelstringrequired—
8costCostoptional · omitted when absent—

TranscriptionRequest

unknown fields refuse

idfieldtypepresencenamed elsewhere
1modelstringrequired—
2audio_digeststringrequired—
3media_typestringrequired—
4languagestringoptional · omitted when zero—
5timestampsTimestampModerequired—
6guaranteeslist<RequestGuarantee>required—
7credentialstringoptional · omitted when zero—
8extensionsmap<string,string>optional · omitted when zero—

TranscriptSegment

unknown fields refuse

idfieldtypepresencenamed elsewhere
1indexi64required—
2kindTranscriptUnitKindrequired—
3start_msi64required—
4end_msi64required—
5textstringrequired—

TranscriptionReply

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeReplyOutcomerequired—
2reasonstringrequired—
3languagestringrequired—
4duration_msi64required—
5usageUsagerequired—
6hoststringrequired—
7modelstringrequired—
8costCostoptional · omitted when absent—

SpeechRequest

unknown fields refuse

idfieldtypepresencenamed elsewhere
1modelstringrequired—
2voicestringrequired—
3textstringrequired—
4formatSpeechFormatrequired—
5guaranteeslist<RequestGuarantee>required—
6credentialstringoptional · omitted when zero—
7extensionsmap<string,string>optional · omitted when zero—

AudioChunk

unknown fields refuse

idfieldtypepresencenamed elsewhere
1indexi64required—
2databinaryrequired—

Delivery

unknown fields refuse

idfieldtypepresencenamed elsewhere
1digeststringrequired—
2media_typestringrequired—
3sizei64required—
4locationstringrequired—

SpeechReply

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeReplyOutcomerequired—
2reasonstringrequired—
3deliveryDeliveryrequired—
4charactersi64required—
5usageUsagerequired—
6hoststringrequired—
7modelstringrequired—
8costCostoptional · omitted when absent—

LiveRequest

unknown fields refuse

idfieldtypepresencenamed elsewhere
1modelstringrequired—
2voicestringrequired—
3formatLiveFormatrequired—
4guaranteeslist<RequestGuarantee>required—
5credentialstringoptional · omitted when zero—
6extensionsmap<string,string>optional · omitted when zero—

LiveInputResult

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeLiveInputOutcomerequired—
2next_sequencei64required—

LiveTranscript

unknown fields refuse

idfieldtypepresencenamed elsewhere
1textstringrequired—
2is_finalboolrequired—

LiveReply

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeReplyOutcomerequired—
2reasonstringrequired—
3deliveryDeliveryrequired—
4usageUsagerequired—
5input_audio_bytesi64required—
6output_audio_bytesi64required—
7hoststringrequired—
8modelstringrequired—

ImageRequest

unknown fields refuse

idfieldtypepresencenamed elsewhere
1modelstringrequired—
2modeImageModerequired—
3promptstringrequired—
4sizestringrequired—
5counti64required—
6image_digeststringoptional · omitted when zero—
7image_media_typestringoptional · omitted when zero—
8mask_digeststringoptional · omitted when zero—
9mask_media_typestringoptional · omitted when zero—
10guaranteeslist<RequestGuarantee>required—
11credentialstringoptional · omitted when zero—
12required_extensionslist<string>optional · omitted when zero—
13extensionsmap<string,string>optional · omitted when zero—

ImageRequestContent

unknown fields refuse

idfieldtypepresencenamed elsewhere
1modeImageModerequired—
2promptstringrequired—
3sizestringrequired—
4counti64required—
5image_digeststringoptional · omitted when zero—
6image_media_typestringoptional · omitted when zero—
7mask_digeststringoptional · omitted when zero—
8mask_media_typestringoptional · omitted when zero—
9guaranteeslist<RequestGuarantee>required—
10credentialstringoptional · omitted when zero—
11required_extensionslist<string>optional · omitted when zero—
12extensionsmap<string,string>optional · omitted when zero—

ImageRequestV2

unknown fields refuse

idfieldtypepresencenamed elsewhere
1targetTargetrequired—
2contentImageRequestContentrequired—

ImageProgress

unknown fields refuse

idfieldtypepresencenamed elsewhere
1percenti64optional · omitted when zero—
2messagestringrequired—

ImageResult

unknown fields refuse

idfieldtypepresencenamed elsewhere
1indexi64required—
2deliveryDeliveryrequired—

ImageReply

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeReplyOutcomerequired—
2reasonstringrequired—
3deliverieslist<Delivery>required—
4imagesi64required—
5usageUsagerequired—
6hoststringrequired—
7modelstringrequired—
8costCostoptional · omitted when absent—

VideoRequest

unknown fields refuse

idfieldtypepresencenamed elsewhere
1modelstringrequired—
2promptstringrequired—
3sizestringrequired—
4duration_msi64required—
5fpsi64optional · omitted when zero—
6seedi64optional · omitted when zero—
7image_digeststringoptional · omitted when zero—
8image_media_typestringoptional · omitted when zero—
9required_extensionslist<string>optional · omitted when zero—
10extensionsmap<string,string>optional · omitted when zero—
11request_idstringrequired—

VideoAdmission

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeStartOutcomerequired—
2reasonstringrequired—
3operationstringrequired—
4retention_msi64required—

VideoObservation

unknown fields refuse

idfieldtypepresencenamed elsewhere
1statusVideoStaterequired—
2stepi64optional · omitted when zero—
3stepsi64optional · omitted when zero—
4queue_positioni64optional · omitted when zero—
5reasonstringoptional · omitted when zero—
6deliveryDeliveryoptional · omitted when absent—

CeilingLimit

unknown fields refuse

idfieldtypepresencenamed elsewhere
1tokens_per_dayi64optional · omitted when zero—
2micros_per_dayi64optional · omitted when zero—
3requests_per_dayi64optional · omitted when zero—
4images_per_dayi64optional · omitted when zero—
5audio_seconds_per_dayi64optional · omitted when zero—
6characters_per_dayi64optional · omitted when zero—

HostEntry

unknown fields refuse

idfieldtypepresencenamed elsewhere
1namestringrequired—
2hostedboolrequired—
3kindstringrequired—
4basestringrequired—
5credentialstringoptional · omitted when zero—
6ceilingCeilingLimitoptional · omitted when absent—
7profileslist<string>optional · omitted when zero—
8declared_bystringoptional · omitted when zero—

Spend

unknown fields refuse

idfieldtypepresencenamed elsewhere
1daystringrequired—
2tokensi64required—
3microsi64required—
4requestsi64optional · omitted when zero—
5audio_secondsi64optional · omitted when zero—
6charactersi64optional · omitted when zero—
7imagesi64optional · omitted when zero—

HostState

unknown fields refuse

idfieldtypepresencenamed elsewhere
1entryHostEntryrequired—
2upboolrequired—
3whystringrequired—
4spendSpendoptional · omitted when absent—

HostList

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeListOutcomerequired—
2revisionstringrequired—
3hostslist<HostState>required—

HostChange

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeEditOutcomerequired—
2revisionstringrequired—
3reasonstringrequired—

LocalKey

unknown fields refuse

idfieldtypepresencenamed elsewhere
1programstringrequired—
2namestringrequired—
3credentialstringoptional · omitted when zero—
4issued_unix_msi64required—
5issued_bystringrequired—
6stateKeyStaterequired—

KeyList

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeListOutcomerequired—
2keyslist<LocalKey>required—

KeyIssued

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeEditOutcomerequired—
2reasonstringrequired—
3keystringoptional · omitted when zero—
4recordLocalKeyoptional · omitted when absent—

KeyRevoked

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeEditOutcomerequired—

AuditEntry

unknown fields refuse

idfieldtypepresencenamed elsewhere
1sequencei64required—
2unix_msi64required—
3routeAuditRouterequired—
4rungstringrequired—
5programstringrequired—
6operationstringrequired—
7hoststringrequired—
8modelstringrequired—
9credentialstringrequired—
10outcomestringrequired—
11reasonstringrequired—
12tokens_ini64required—
13tokens_outi64required—
14wall_msi64required—
15ceilingstringrequired—
16domainstringoptional · omitted when zero—
17claimstringoptional · omitted when zero—
18profilestringoptional · omitted when zero—
19audio_secondsi64optional · omitted when zero—
20charactersi64optional · omitted when zero—
21imagesi64optional · omitted when zero—

AuditPage

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeAuditOutcomerequired—
2entrieslist<AuditEntry>required—
3nexti64required—
4at_endboolrequired—

GatewayState

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeListOutcomerequired—
2revisionstringrequired—
3openboolrequired—
4addressstringrequired—
5listeningboolrequired—
6listening_addressstringrequired—
7whystringrequired—

GatewayChange

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeEditOutcomerequired—
2revisionstringrequired—
3reasonstringrequired—

SelectionChange

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeEditOutcomerequired—
2revisionstringrequired—
3reasonstringrequired—

SelectionCandidateV2

unknown fields refuse

idfieldtypepresencenamed elsewhere
1modelstringrequired—
2placementCandidatePlacementrequired—
3credentialstringoptional · omitted when zero—
4providerstringoptional · omitted when zero—

SelectionPolicyV2

unknown fields refuse

idfieldtypepresencenamed elsewhere
1namestringrequired—
2candidateslist<SelectionCandidateV2>required—

SelectionReadV2

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeSelectionReadOutcomerequired—
2revisionstringrequired—
3policySelectionPolicyV2optional · 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

idmemberwire
1local_onlyabstraction.inference/local-only@1
2hosted_allowedabstraction.inference/hosted-allowed@1

Role

a member this reader does not know is refuse

idmemberwire
1systemsystem
2useruser
3assistantassistant
4tooltool

PartKind

a member this reader does not know is refuse

idmemberwire
1texttext
2imageimage
3tool_calltool_call
4tool_resulttool_result

ReplyOutcome

a member this reader does not know is refuse

idmemberwire
1completedcompleted
2refusedrefused
3not_permittednot_permitted
4budget_exceededbudget_exceeded
5unsupported_featureunsupported_feature
6no_hostno_host
7cancelledcancelled
8unavailableunavailable
9invalidinvalid
10forbiddenforbidden
11exhaustedexhausted

StopReason

a member this reader does not know is refuse

idmemberwire
1no_stopno_stop
2endend
3max_outputmax_output
4stop_sequencestop_sequence
5tool_callstool_calls
6content_filtercontent_filter
7otherother

DeltaKind

a member this reader does not know is refuse

idmemberwire
1partpart
2usageusage
3endend
4segmentsegment
5audioaudio
6transcripttranscript
7image_progressimage_progress
8image_resultimage_result

StartOutcome

a member this reader does not know is refuse

idmemberwire
1acceptedaccepted
2not_permittednot_permitted
3budget_exceededbudget_exceeded
4unsupported_featureunsupported_feature
5no_hostno_host
6unavailableunavailable
7invalidinvalid
8forbiddenforbidden
9exhaustedexhausted

SelectionReason

a member this reader does not know is refuse

idmemberwire
1explicit_modelexplicit_model
2preferredpreferred
3preferred_route_unavailablepreferred_route_unavailable

PageOutcome

a member this reader does not know is refuse

idmemberwire
1pagepage
2gapgap
3unknownunknown
4invalidinvalid
5forbiddenforbidden
6unavailableunavailable

CancelOutcome

a member this reader does not know is refuse

idmemberwire
1cancelledcancelled
2endedended
3unknownunknown
4invalidinvalid
5forbiddenforbidden
6unavailableunavailable

PreloadOutcome

a member this reader does not know is refuse

idmemberwire
1evaluatedevaluated
2loadedloaded
3busybusy
4refusedrefused
5not_permittednot_permitted
6unsupported_featureunsupported_feature
7no_hostno_host
8unavailableunavailable
9invalidinvalid
10forbiddenforbidden

EmbedOutcome

a member this reader does not know is refuse

idmemberwire
1completedcompleted
2refusedrefused
3not_permittednot_permitted
4budget_exceededbudget_exceeded
5unsupported_featureunsupported_feature
6no_hostno_host
7unavailableunavailable
8invalidinvalid
9forbiddenforbidden

TranscriptUnitKind

a member this reader does not know is refuse

idmemberwire
1segmentsegment
2wordword

TimestampMode

a member this reader does not know is refuse

idmemberwire
1nonenone
2segmentsegment
3wordword
4segment_and_wordsegment_and_word

SpeechFormat

a member this reader does not know is refuse

idmemberwire
1mp3mp3
2opusopus
3aacaac
4flacflac
5wavwav
6pcmpcm

LiveFormat

a member this reader does not know is refuse

idmemberwire
1pcm16_24000pcm16_24000

LiveInputOutcome

a member this reader does not know is refuse

idmemberwire
1acceptedaccepted
2duplicateduplicate
3out_of_orderout_of_order
4closedclosed
5invalidinvalid
6unknownunknown
7forbiddenforbidden
8unavailableunavailable
9exhaustedexhausted

ImageMode

a member this reader does not know is refuse

idmemberwire
1generategenerate
2editedit

VideoState

a member this reader does not know is refuse

idmemberwire
1queuedqueued
2generatinggenerating
3completedcompleted
4failedfailed
5cancelledcancelled
6unknownunknown
7invalidinvalid
8forbiddenforbidden
9unavailableunavailable

ListOutcome

a member this reader does not know is refuse

idmemberwire
1pagepage
2invalidinvalid
3forbiddenforbidden
4unavailableunavailable

EditOutcome

a member this reader does not know is refuse

idmemberwire
1appliedapplied
2conflictconflict
3unknownunknown
4invalidinvalid
5no_secure_storeno_secure_store
6forbiddenforbidden
7unavailableunavailable

KeyState

a member this reader does not know is refuse

idmemberwire
1activeactive
2revokedrevoked
3lostlost

AuditRoute

a member this reader does not know is refuse

idmemberwire
1nativenative
2windowwindow
3remoteremote

AuditOutcome

a member this reader does not know is refuse

idmemberwire
1pagepage
2gapgap
3invalidinvalid
4forbiddenforbidden
5unavailableunavailable

CandidatePlacement

a member this reader does not know is refuse

idmemberwire
1locallocal
2hostedhosted

SelectionReadOutcome

a member this reader does not know is refuse

idmemberwire
1foundfound
2unknownunknown
3invalidinvalid
4forbiddenforbidden
5unavailableunavailable

Constants [DEF-A6]

nametypevalue
featureslist<string>abstraction.inference/tools@1, abstraction.inference/json-schema@1, abstraction.inference/vision@1
resource_actionslist<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_kindslist<string>openabstractions/local-key@1
local_host_kindslist<string>ollama, lmstudio, lemonade, whispercpp, piper, comfyui, swarmui, docker-model-runner, foundry-local
host_profileslist<string>chat, embed, transcription, speech, image, live
host_declarerslist<string>operator, ollama, lmstudio, docker-model-runner, foundry-local, installation, default
credential_consumerslist<string>abstraction.inference/chat@1, abstraction.inference/embed@1, abstraction.inference/transcription@1, abstraction.inference/speech@1, abstraction.inference/live@1
claim_extensionslist<string>openabstractions/claimed-program

Refusal words [DEF-R1]

orderwordstage
1malformedgrammar
2bad_stringgrammar
3bad_binarygrammar
4number_spellinggrammar
5wrong_typegrammar
6depth_exceededgrammar
7duplicate_keygrammar
8duplicate_fieldstructure
9unknown_fieldstructure
10missing_fieldstructure
11bad_enumstructure
12trailing_bytesdocument