dev.cocore.inference.dispatch
Submit an inference request and stream the result back as Server-Sent Events. Authenticates the requester, runs the dispatch core, and emits typed SSE frames. Unlike `submit` (which returns URIs to poll), `dispatch` drives the full request and streams plaintext output chunks until completion. Confidentiality: by default the AppView seals the prompt to the chosen provider on the caller's behalf (`best-effort` tier) — convenient, but the AppView is in the plaintext path. A caller that needs privacy FROM the provider sets `requireConfidential` and supplies a fresh `nonce`; the AppView then runs the verified, enclave-bound ephemeral handshake and either confirms an `attested-confidential` session or fails closed with the `ConfidentialUnavailable` error. For genuine end-to-end confidentiality the prompt is sealed at the client edge (SDK/browser) and the AppView forwards ciphertext only; this method's server-side seal path is always `best-effort`. SSE events: * `meta` — { jobUri, jobCid, authUri, inputCommitment, providerDid, sessionId, tier } * `sessionKey` — { ephemeralPubKey, nonce, attestationCid, signature } (only when `requireConfidential`; the enclave-signed fresh key the requester verifies before sealing) * `chunk` — { seq, text } (plaintext, decrypted) * `complete` — { tokensIn, tokensOut, receiptUri, tier, providerCredit? } * `error` — { reason, code }
Details · procedure
| Kind | procedure |
|---|---|
| Authority | inference.cocore.dev |
| Indexed |
What's different
same NSID · two revisions from the same publisherRecords and requests that were valid against the base schema stay valid against this one.
Procedure · input
#mainoutputSchema
compatibleNew optional property.
object toolChoice
compatibleNew optional property.
string · knownValues: auto | none | required toolChoiceFunction
compatibleNew optional property.
string · maxLength: 256 tools
compatibleNew optional property.
array of object · maxLength: 128