Skip to content
7 min read · 1,370 words

Interface: TurnContext

Defined in: src/lib/contracts/turn_runner_context.ts:330

The validated, strongly-typed context object threaded through every middleware step in a single agent turn.

Remarks

Constructed from a RawTurnContext by @nhtio/adk!TurnRunner.run. Middleware functions receive this object and use it to read and share state across pipeline steps.

Properties

PropertyModifierTypeDescriptionDefined in
abortreadonly(reason?: unknown) => voidAborts the turn's AbortController with the supplied reason. Middleware should call this when refusing the turn — the runner reads aborted between every stage and short-circuits cleanly: turnEnd still fires, no error event is emitted, and during dispatch dispatchEnd.status === 'aborted' carries the operational signal.src/lib/contracts/turn_runner_context.ts:673
abortedreadonlybooleantrue when the turn's AbortController signal has fired.src/lib/contracts/turn_runner_context.ts:664
abortSignalreadonlyAbortSignalThe AbortSignal from the turn's AbortController.src/lib/contracts/turn_runner_context.ts:666
deleteMemoryreadonly(id: string) => void | Promise<void>Removes a memory from the persistence layer by ID.src/lib/contracts/turn_runner_context.ts:715
deleteMessagereadonly(id: string) => void | Promise<void>Removes a message from the persistence layer by ID.src/lib/contracts/turn_runner_context.ts:729
deleteRetrievablereadonly(id: string) => void | Promise<void>Removes a retrievable record from the persistence layer by ID.src/lib/contracts/turn_runner_context.ts:723
deleteStandingInstructionreadonly(v: string | Tokenizable) => void | Promise<void>Removes a standing instruction from the persistence layer.src/lib/contracts/turn_runner_context.ts:709
deleteThoughtreadonly(id: string) => void | Promise<void>Removes a thought from the persistence layer by ID.src/lib/contracts/turn_runner_context.ts:735
deleteToolCallreadonly(id: string) => void | Promise<void>Removes a tool call from the persistence layer by ID.src/lib/contracts/turn_runner_context.ts:741
emitMessagereadonlyEmitMessageFnEmits a message event on the runner; may be called at any point during the turn.src/lib/contracts/turn_runner_context.ts:761
emitThoughtreadonlyEmitThoughtFnEmits a thought event on the runner; may be called at any point during the turn.src/lib/contracts/turn_runner_context.ts:763
emitToolCallreadonlyEmitToolCallFnEmits a toolCall event on the runner; may be called at any point during the turn.src/lib/contracts/turn_runner_context.ts:765
emitToolExecutionEndreadonlyEmitToolExecutionEndFnEmits a toolExecutionEnd event on the observability bus; forwarded from DispatchContext by DispatchRunner when a tool finishes executing inside a dispatch.src/lib/contracts/turn_runner_context.ts:769
emitToolExecutionStartreadonlyEmitToolExecutionStartFnEmits a toolExecutionStart event on the observability bus; forwarded from DispatchContext by DispatchRunner when a tool is invoked inside a dispatch.src/lib/contracts/turn_runner_context.ts:767
fetchMemoriesreadonly() => | Memory[] | Promise<Memory[]>Fetches memories relevant to this turn; delegates to the callback supplied at construction.src/lib/contracts/turn_runner_context.ts:691
fetchMessagesreadonly() => | Message[] | Promise<Message[]>Fetches conversation messages relevant to this turn; delegates to the callback supplied at construction.src/lib/contracts/turn_runner_context.ts:693
fetchRetrievablesreadonly() => | Retrievable[] | Promise<Retrievable[]>Fetches retrievable records relevant to this turn; delegates to the callback supplied at construction.src/lib/contracts/turn_runner_context.ts:717
fetchThoughtsreadonly() => | Thought[] | Promise<Thought[]>Fetches thought traces relevant to this turn; delegates to the callback supplied at construction.src/lib/contracts/turn_runner_context.ts:695
fetchToolCallsreadonly() => | ToolCall[] | Promise<ToolCall[]>Fetches tool call records relevant to this turn; delegates to the callback supplied at construction.src/lib/contracts/turn_runner_context.ts:697
fetchToolsreadonly() => | Tool<SpooledArtifact>[] | Promise<Tool<SpooledArtifact>[]>Fetches tools available for this turn; delegates to the callback supplied at construction.src/lib/contracts/turn_runner_context.ts:699
idreadonlystringUnique identifier for this turn, generated as a UUIDv6 at construction time.src/lib/contracts/turn_runner_context.ts:662
mutateMemoryreadonly(v: Memory) => void | Promise<void>Updates an existing memory in the persistence layer.src/lib/contracts/turn_runner_context.ts:713
mutateMessagereadonly(v: Message) => void | Promise<void>Updates an existing message in the persistence layer.src/lib/contracts/turn_runner_context.ts:727
mutateRetrievablereadonly(v: Retrievable) => void | Promise<void>Updates an existing retrievable record in the persistence layer.src/lib/contracts/turn_runner_context.ts:721
mutateStandingInstructionreadonly(v: string | Tokenizable) => void | Promise<void>Updates an existing standing instruction in the persistence layer.src/lib/contracts/turn_runner_context.ts:707
mutateThoughtreadonly(v: Thought) => void | Promise<void>Updates an existing thought in the persistence layer.src/lib/contracts/turn_runner_context.ts:733
mutateToolCallreadonly(v: ToolCall) => void | Promise<void>Updates an existing tool call in the persistence layer.src/lib/contracts/turn_runner_context.ts:739
refreshStandingInstructionsreadonly() => | (string | Tokenizable)[] | Promise<(string | Tokenizable)[]>Refreshes and returns the standing instructions; delegates to the callback supplied at construction.src/lib/contracts/turn_runner_context.ts:701
standingInstructionsreadonlySet<Tokenizable>Standing instructions applied to every turn, in insertion order.src/lib/contracts/turn_runner_context.ts:679
stashreadonlyRegistryArbitrary key-value store that middleware can read and write across pipeline steps.src/lib/contracts/turn_runner_context.ts:675
storeMediaBytesreadonly(id: string, bytes: ConduitBytes) => | MediaReader | Promise<MediaReader>Persists tool-generated media bytes into consumer storage and returns a @nhtio/adk!MediaReader. Low-level conduit — returns a value, touches no turn state; build a @nhtio/adk!Media from the reader and persist the owning primitive separately.src/lib/contracts/turn_runner_context.ts:747
storeMemoryreadonly(v: Memory) => void | Promise<void>Stores a new memory in the persistence layer.src/lib/contracts/turn_runner_context.ts:711
storeMessagereadonly(v: Message) => void | Promise<void>Stores a new message in the persistence layer.src/lib/contracts/turn_runner_context.ts:725
storeRetrievablereadonly(v: Retrievable) => void | Promise<void>Stores a new retrievable record in the persistence layer.src/lib/contracts/turn_runner_context.ts:719
storeRetrievableBytesreadonly(id: string, bytes: ConduitBytes) => | SpoolReader | Promise<SpoolReader>Persists extracted retrievable text bytes into consumer storage and returns a @nhtio/adk!SpoolReader. Wrap it in a @nhtio/adk!SpooledArtifact for Retrievable.content and persist the record via TurnContext.storeRetrievable separately.src/lib/contracts/turn_runner_context.ts:756
storeStandingInstructionreadonly(v: string | Tokenizable) => void | Promise<void>Stores a new standing instruction in the persistence layer.src/lib/contracts/turn_runner_context.ts:705
storeThoughtreadonly(v: Thought) => void | Promise<void>Stores a new thought in the persistence layer.src/lib/contracts/turn_runner_context.ts:731
storeToolCallreadonly(v: ToolCall) => void | Promise<void>Stores a new tool call in the persistence layer.src/lib/contracts/turn_runner_context.ts:737
systemPromptreadonlyTokenizableThe system prompt guiding the agent's behaviour for this turn.src/lib/contracts/turn_runner_context.ts:677
toolsreadonlyToolRegistryTurn-scoped tool registry constructed from the runner's baseline tools; middleware may trim or extend it.src/lib/contracts/turn_runner_context.ts:773
turnMemoriesreadonlySet<Memory>Memories loaded for this turn; populated by middleware after calling fetchMemories().src/lib/contracts/turn_runner_context.ts:681
turnMessagesreadonlySet<Message>Conversation messages loaded for this turn; populated by middleware after calling fetchMessages().src/lib/contracts/turn_runner_context.ts:685
turnRetrievablesreadonlySet<Retrievable>Retrievable records loaded for this turn; populated by middleware after calling fetchRetrievables().src/lib/contracts/turn_runner_context.ts:683
turnThoughtsreadonlySet<Thought>Thought traces loaded for this turn; populated by middleware after calling fetchThoughts().src/lib/contracts/turn_runner_context.ts:687
turnToolCallsreadonlySet<ToolCall>Tool call records loaded for this turn; populated by middleware after calling fetchToolCalls().src/lib/contracts/turn_runner_context.ts:689
waitForreadonlyOpenGateFnOpens a turn gate and suspends until it resolves, rejects, times out, or is aborted.src/lib/contracts/turn_runner_context.ts:771