ObservationEvent
Parameters and properties
Section titled “Parameters and properties”The fields below cover all variants; the signature specifies their allowed combinations.
kindRequired"model-route" | "subagent" | "message-usage" | "stderr" | "stopped" | "steer" | "reasoning" | "file-change" | "model-request" | "model-response" | "model-retry" | "model-error" | "hook" | "instructions-loaded" | "skills-loaded" | "tool-output" | "phase" | "summary" | "warning" | "text" | "text-delta" | "result" | "prompt" | "tool" | "tool-result" | "step" | "tool-denied" | "stop-prevented" | "compaction" | "conversation" | "usage" | "failure" | "quota" | "fallback" | "finished" | "raw" | "workspace-commits" | "workspace-commits" | "decision" | "decision-request" | "decision-response" | "operation" | "dispatch-start" | "workflow" | "dispatch-finished" | "command-output" | "candidate" | "queue"Discriminant selecting the observed payload: agent and harness events, decision summaries and verbose payloads, workflows, operations, dispatches, workspace commits, commands, candidates or queues.stepVariant-dependentnumberHarness step for which this effective model was selected.choiceVariant-dependentstringEffective candidate key after confidence and availability fallback rules.modelVariant-dependentAgentModel | stringOn model-route, the effective AgentModel and its settings. On decision, the named decision-service model, with the actual response model on success.reasonVariant-dependent"unavailable" | "selected" | "confidence" | "completion" | "idle-timeout" | "deadline" | "aborted" | "oversized-event" | "steered" | stringOn tool-denied, why the call was refused. On stopped, why Outpost ended the process: completion, idle-timeout, deadline, aborted, oversized-event or steered. On model-route, selected, confidence or unavailable explains the effective selection.confidenceVariant-dependentnumber | undefinedNative decision confidence, present only when a valid choice response was received.subagentIdVariant-dependentstring | undefinedIdentifier of the built-in child that emitted the event; absent for the root harness. Lifecycle events link that identifier to the delegating tool call.idVariant-dependentstringOperation, conversation, subagent or queued job identifier, according to kind.callIdVariant-dependentstring | string | undefined | string | string | undefined | string | stringTool call identifier linking the tool, tool-result, tool-output, tool-denied, file-change and subagent events of one call. CLI adapters copy the native identifier when the protocol has one.nameVariant-dependentstringOperation, phase, tool or delegating tool name, according to kind.statusVariant-dependent"started" | "finished" | "failed" | number | "started" | "finished" | "failed" | "started" | "finished" | "failed" | "failed" | "done" | "cancelled" | "validated" | "accepted" | "rejected" | "cleanup" | "failed" | "enqueued" | "polled" | "completed"Operation lifecycle state, dispatch outcome, candidate selection result or queue transition according to kind; agent summaries retain numeric exit status.conversationVariant-dependentstring | undefinedPersisted child conversation identifier when the child enables transcript storage.tokensVariant-dependentUsageToken counts: an increment on usage, the pass total on summary, one message’s usage on message-usage.messageIdVariant-dependentstring | undefinedClaude Code identifier of the message whose usage a message-usage event reports.parentCallIdVariant-dependentstring | undefinedParent tool call supplied by a CLI for a nested agent message or tool event.textVariant-dependentstringText of the event according to kind: agent text, streamed fragment, final answer, rendered prompt, steering instruction, reasoning, stderr line or tool output chunk.truncatedVariant-dependentboolean | undefinedOn decision, reported input truncation; absence does not prove complete input. On stderr or raw, a bounded text fragment or preview.modeVariant-dependentSteeringModeHow a steer event reached the agent: injected into the running turn, or resumed in a new turn of the same conversation.changesVariant-dependentunknownFile changes as Codex reports them, passed through unmodified.requestVariant-dependentunknownFull model or decision request, emitted only for verbose observation; decision requests contain state and declared questions.responseVariant-dependentunknownFull model or normalized decision result, emitted only for verbose observation; decision results retain native metadata.attemptVariant-dependentnumberRetry attempt explicitly reported by a model provider; Outpost does not infer hidden retries.messageVariant-dependentstring | undefined | string | string | string | string | string | stringMessage of a warning, failure, quota, fallback, model-retry or model-error event, or the message a stop hook sent back to the model on stop-prevented.phaseVariant-dependentstringHarness hook phase that completed.changedVariant-dependentbooleanWhether a hook returned a decision or changed its observable input.countVariant-dependentnumberNumber of nonempty instruction sources resolved for this harness turn.namesVariant-dependentreadonly string[]Skills newly loaded into the conversation and available to subsequent model steps.channelVariant-dependent"stdout" | "stderr"stdout or stderr stream for command-task and tool output events.agentVariant-dependentstring | undefinedName of the agent running the pass, on phase events: claude, codex, antigravity, copilot or kimi, custom for a built-in harness agent, replay for a replay agent.branchVariant-dependentstring | undefinedName of the work branch used or observed during execution.directoryVariant-dependentstring | undefinedHost workspace directory used for this execution.durationMsVariant-dependentnumber | number | undefined | number | undefinedElapsed milliseconds for the decision, operation, workflow task, candidate or dispatch indicated by kind; agent summaries aggregate all turns of the pass.inputVariant-dependentunknownRaw arguments supplied to the tool named by this tool event.isErrorVariant-dependentbooleanWhether the tool call failed or reported an error.previewVariant-dependentstringFirst 2000 characters of the tool result.charactersVariant-dependentnumberFull length of the tool result before any truncation.indexVariant-dependentnumberOne-based step number within a built-in harness turn.strategyVariant-dependentstringName of the context strategy that rewrote the history.messagesVariant-dependentnumberNumber of messages in the history after compaction.cumulativeVariant-dependentboolean | undefinedTrue when an adapter reports a running total for the native session instead of an increment. Outpost subtracts the session baseline and the usage already counted, so observers always receive usage events with increments and no cumulative flag.resetAtVariant-dependentstring | undefinedISO timestamp at which a quota or fallback event says the usage or rate limit resets; present only when reported in structured form.fromVariant-dependentFallbackCandidateCandidate that stopped in a fallback event: its position, adapter name and model name when one was selected.toVariant-dependentFallbackCandidateCandidate that takes over in a fallback event: its position, adapter name and model name when one was selected.failureVariant-dependentFallbackTriggerCategory that ended the previous candidate in a fallback event: quota or unavailable.valueVariant-dependentunknownRaw protocol line as the agent printed it; for an oversized line, only its first 2000 characters.bytesVariant-dependentnumber | undefinedObserved UTF-8 byte size of an oversized protocol line or buffered prefix before termination.baselineVariant-dependentRecordedRevision | RecordedRevision | undefinedCommit and tree the sandbox dispatch started from, for workspace-commits.commitsVariant-dependentreadonly RecordedCommit[] | readonly Commit[] | undefinedCommits of the dispatch on dispatch-finished: from the result on success, from the error’s recovery on failure.unavailableVariant-dependentstringReason the workspace commits could not be recorded for replay, for workspace-commits.providerVariant-dependentstringDecision provider name; no credentials are included.usageVariant-dependentUsage | undefined | UsageAccumulated dispatch usage, including usage observed before failure. Decision events include normalized router usage when available.codeVariant-dependentstring | undefinedOutpost fault code on a failed evaluation, when the error has one.eventVariant-dependentWorkflowEventOriginal workflow lifecycle event when kind is workflow.completedVariant-dependentbooleanWhether the dispatch satisfied its completion marker or structured response contract.errorVariant-dependent{ readonly code?: string; readonly message: string; } | undefinedCode and message of the error that failed or cancelled the dispatch, for dispatch-finished.