Definitions#

These TypeScript definitions document server validation. check.object rejects unknown fields. Custom functions and refinements specify additional checks.

Imported definitions#

implementedRuntime#

implementedRuntime = check.choice(...implementedRuntimes)

Related definitions:

runtimeState#

runtimeState = check.choice('idle', 'working', 'waiting-approval', 'waiting-answer', 'failed', 'unavailable', 'sleeping', 'waking')

Related definitions:

nativeRuntimeSummary#

nativeRuntimeSummary = check.object({ state: check.choice('idle', 'working', 'waiting-approval', 'waiting-answer', 'failed', 'unavailable', 'sleeping', 'waking', 'stopped'), observedAt: check.integer(),
    lastActivityAt: check.nullable(check.integer()), historyAvailable: check.nullable(check.boolean) })

Related definitions:

listenerOptions#

listenerOptions = check.object({ history_mode: check.optional(check.choice('shared', 'per-room')) })

Related definitions:

option#

option = check.object({ id: check.text(255), label: check.text(1000), description: check.plainText(4000) })

Related definitions:

decisionQuestion#

decisionQuestion = check.object({ id: check.text(255), title: check.text(1000), prompt: check.plainText(16000),
    secret: check.boolean, allowText: check.boolean, options: check.list(option, 100) })

Related definitions:

decisionFields#

decisionFields = { id: check.identifier, runId: check.identifier, runtime: check.name,
    sessionId: check.text(255), requestId: check.text(255), turnId: check.text(255), itemId: check.text(255),
    kind: check.choice('permission', 'question'), action: check.text(255), review: check.refine(check.plainText(MAX_REVIEW_BYTES), value => new TextEncoder().encode(value).byteLength <= MAX_REVIEW_BYTES, 'Native review exceeds the separate UTF-8 resource bound'),
    blocking: check.boolean, expiresAt: check.nullable(check.integer()), questions: check.list(decisionQuestion, 100, 1) }

Related definitions:

decisionCreation#

decisionCreation = check.object({ ...decisionFields, runtime: implementedRuntime }) satisfies check.Parser<DecisionCreation>

Related definitions:

decisionAnswer#

decisionAnswer = check.object({ questionId: check.text(255), optionId: check.nullable(check.text(255)), text: check.nullable(check.plainText(16000)) }) satisfies check.Parser<DecisionAnswer>

Related definitions:

decisionSubmission#

decisionSubmission = check.object({ answers: check.list(decisionAnswer, 100, 1) })

Related definitions:

decisionStatus#

decisionStatus = check.choice('pending', 'answered', 'responded', 'cancelled', 'expired')

Related definitions:

decisionView#

decisionView = check.object({ ...decisionFields, agentId: check.identifier, status: decisionStatus, createdAt: check.integer() }) satisfies check.Parser<DecisionView>

Related definitions:

summaryFields#

{ review: _review, questions: _questions, ...summaryFields } = decisionFields

Related definitions:

decisionSummary#

decisionSummary = check.object({ ...summaryFields, agentId: check.identifier, status: decisionStatus, createdAt: check.integer() }) satisfies check.Parser<DecisionSummary>

Related definitions:

decisionReceipt#

decisionReceipt = check.object({ status: check.choice('responded', 'cancelled') })

Related definitions:

decisionPoll#

decisionPoll = check.object({ status: decisionStatus, answers: check.list(decisionAnswer, 100) })

Related definitions:

setting#

setting = check.object({ name: check.text(100), configured: check.nullable(check.text(1000)), effective: check.nullable(check.text(1000)) })

Related definitions:

observationFields#

observationFields = { sessionId: check.text(255), roomId: check.nullable(check.roomId), runtime: check.name, state: runtimeState,
    observedAt: check.integer(), lastActivityAt: check.nullable(check.integer()), historyAvailable: check.nullable(check.boolean),
    historyMode: check.choice('shared', 'per-room'), maxInputBytes: check.integer(1024, MAX_INPUT_BYTES),
    settings: check.list(setting, 100), errorMessage: check.nullable(check.plainText(4000)) }

Related definitions:

observation#

observation = check.object({ ...observationFields, runtime: implementedRuntime }) satisfies check.Parser<RuntimeObservation>

Related definitions:

observationView#

observationView = check.object({ runId: check.identifier, ...observationFields }) satisfies check.Parser<RuntimeObservationView>

Related definitions:

observations#

observations = check.list(observationView, 2002)

Related definitions:

failureReport#

failureReport = check.object({ episodeId: check.identifier, agentId: check.identifier, sessionId: check.nullable(check.text(255)), message: check.plainText(4000) })

Related definitions: