Class References
Function References
- text
- textOptions
- combineStrategies
- convertMessagesToModelMessages
- convertZodToJsonSchema
- createReplayStream
- embedding
- generateMessageId
- maxIterations
- messages
- modelMessageToUIMessage
- modelMessagesToUIMessages
- normalizeToUIMessage
- parsePartialJSON
- summarize
- toServerSentEventsStream
- toServerSentEventsResponse
- toolDefinition
- uiMessageToModelMessages
- realtimeToken
- untilFinishReason
Interface References
- AIAdapter
- AIAdapterConfig
- AgentLoopState
- AudioPart
- AudioVisualization
- BaseStreamChunk
- TextCompletionChunk
- TextOptions
- ChunkRecording
- ChunkStrategy
- ClientTool
- ContentPartSource
- ContentStreamChunk
- DefaultMessageMetadataByModality
- DocumentPart
- DoneStreamChunk
- EmbeddingOptions
- EmbeddingResult
- ErrorStreamChunk
- ImagePart
- InternalToolCallState
- JSONParser
- ModelMessage
- ProcessorResult
- ProcessorState
- RealtimeAdapter
- RealtimeClientOptions
- RealtimeConnection
- RealtimeMessage
- RealtimeSessionConfig
- RealtimeToken
- RealtimeTokenAdapter
- RealtimeTokenOptions
- ResponseFormat
- ServerTool
- StreamProcessorEvents
- StreamProcessorHandlers
- StreamProcessorOptions
- SummarizationOptions
- SummarizationResult
- TextPart
- ThinkingPart
- ThinkingStreamChunk
- Tool
- ToolCall
- ToolCallPart
- ToolCallStreamChunk
- ToolConfig
- ToolDefinition
- ToolDefinitionConfig
- ToolDefinitionInstance
- ToolInputAvailableStreamChunk
- ToolResultPart
- ToolResultStreamChunk
- UIMessage
- VideoPart
Type Alias References
- AgentLoopStrategy
- AnyClientTool
- TextStreamOptionsForModel
- TextStreamOptionsUnion
- ConstrainedContent
- ConstrainedModelMessage
- ContentPart
- ContentPartForModalities
- ExtractModalitiesForModel
- ExtractModelsFromAdapter
- InferToolInput
- InferToolName
- InferToolOutput
- MessagePart
- RealtimeEvent
- RealtimeMessagePart
- RealtimeMode
- RealtimeStatus
- ModalitiesArrayToUnion
- Modality
- StreamChunk
- ToolCallState
- ToolResultState
Variable References
ChatMiddlewareContext
Defined in: packages/ai/src/activities/chat/middleware/types.ts:194
Stable context object passed to all middleware hooks. Created once per chat() invocation and shared across all hooks.
Type Parameters#
TContext#
TContext = unknown
Properties#
abort#
abort: (reason?) => void;Defined in: packages/ai/src/activities/chat/middleware/types.ts:240
Abort the chat run with a reason
Parameters#
reason?#
string
Returns#
void
accumulatedContent#
accumulatedContent: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:307
Accumulated text content for the current iteration
activities?#
optional activities?: readonly ActivityRecord[];Defined in: packages/ai/src/activities/chat/middleware/types.ts:318
Frontend-only AG-UI activity sidecar. Never model input. Persistence writes this when an ActivityStore is configured. Optional so code that builds its own context keeps working; the engine always sets it.
activity#
activity: "chat";Defined in: packages/ai/src/activities/chat/middleware/types.ts:274
Which activity this context describes — always 'chat'. Present so the chat context structurally satisfies the base GenerationMiddlewareContext, letting an observe-only middleware authored against the base (e.g. otelMiddleware) run on both chat and media activities.
callMetadata#
callMetadata: Readonly<TanStackMessageMetadata>;Defined in: packages/ai/src/activities/chat/middleware/types.ts:236
The metadata.tanstack of the current model call: source, stop reason, response id, and so on. It changes as chunks arrive. Each assistant message of the call gets a copy of it.
capabilities#
capabilities: CapabilityRegistry;Defined in: packages/ai/src/activities/chat/middleware/types.ts:327
Capability bookkeeping for this request. Populated by middleware setup hooks (via provide accessors) and read by later middleware (via get accessors). Prefer the accessors returned by createCapability over using this directly. Orthogonal to context (the user runtime context).
childResumeIds?#
optional childResumeIds?: ReadonlySet<string>;Defined in: packages/ai/src/activities/chat/middleware/types.ts:218
Interrupt ids in resume that a subagent tool call of this run answers. This run does not answer them itself. They come from the subagent cards in the messages the client sent. undefined when no child is resumed, and for a router turn.
chunkIndex#
chunkIndex: number;Defined in: packages/ai/src/activities/chat/middleware/types.ts:230
Running count of chunks yielded so far
context#
context: TContext;Defined in: packages/ai/src/activities/chat/middleware/types.ts:258
Runtime context provided by chat() options
createId#
createId: (prefix) => string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:320
Generate a unique ID with the given prefix
Parameters#
prefix#
string
Returns#
string
currentMessageId#
currentMessageId: string | null;Defined in: packages/ai/src/activities/chat/middleware/types.ts:305
Current assistant message ID (changes per iteration)
defer#
defer: (promise) => void;Defined in: packages/ai/src/activities/chat/middleware/types.ts:264
Defer a non-blocking side-effect promise. Deferred promises do not block streaming and are awaited after the terminal hook (onFinish/onAbort/onError).
Parameters#
promise#
Promise<unknown>
Returns#
void
emitCustomEvent#
emitCustomEvent: (name, value, options?) => void;Defined in: packages/ai/src/activities/chat/middleware/types.ts:252
Push a CUSTOM chunk onto the chat stream immediately. The engine yields it as soon as it can (including while onConfig is still awaiting work such as a summarize call). Durability then flushes the event on its own, unless you pass { batch: true }.
Parameters#
name#
string
value#
Record<string, any>
options?#
Returns#
void
get#
get: <TValue>(capability) => TValue;Defined in: packages/ai/src/activities/chat/middleware/types.ts:332
Read a provided capability by its handle. Equivalent to the handle's own get accessor (getX(ctx)); throws if the capability was never provided.
Type Parameters#
TValue#
TValue
Parameters#
capability#
Capability<TValue>
Returns#
TValue
getOptional#
getOptional: <TValue>(capability) => TValue | undefined;Defined in: packages/ai/src/activities/chat/middleware/types.ts:337
Read a capability by its handle, returning undefined if it was never provided (never throws).
Type Parameters#
TValue#
TValue
Parameters#
capability#
Capability<TValue>
Returns#
TValue | undefined
hasTools#
hasTools: boolean;Defined in: packages/ai/src/activities/chat/middleware/types.ts:300
Whether tools are configured
iteration#
iteration: number;Defined in: packages/ai/src/activities/chat/middleware/types.ts:228
Current agent loop iteration (0-indexed)
messageCount#
messageCount: number;Defined in: packages/ai/src/activities/chat/middleware/types.ts:298
Number of messages at the start of the request
messages#
messages: readonly ModelMessage<
| string
| ContentPart<unknown, unknown, unknown, unknown, unknown>[]
| null>[];Defined in: packages/ai/src/activities/chat/middleware/types.ts:312
Current messages array (read-only view)
model#
model: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:278
Model identifier (e.g., 'gpt-5.5')
modelOptions?#
optional modelOptions?: Record<string, unknown>;Defined in: packages/ai/src/activities/chat/middleware/types.ts:293
Provider-specific model options
options?#
optional options?: Record<string, unknown>;Defined in: packages/ai/src/activities/chat/middleware/types.ts:291
Flattened generation options (metadata)
parentRunId?#
optional parentRunId?: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:202
Interrupted or parent run correlated with this continuation.
parentSubagentRunId?#
optional parentSubagentRunId?: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:211
The subagentRunId of the child that started this one, for a nested child.
phase#
phase: ChatMiddlewarePhase;Defined in: packages/ai/src/activities/chat/middleware/types.ts:226
Current lifecycle phase
provide#
provide: <TValue>(capability, value) => void;Defined in: packages/ai/src/activities/chat/middleware/types.ts:342
Provide a capability value. Equivalent to the handle's own provide accessor (provideX(ctx, value)). Typically called from setup.
Type Parameters#
TValue#
TValue
Parameters#
capability#
Capability<TValue>
value#
TValue
Returns#
void
provider#
provider: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:276
Provider name (e.g., 'openai', 'anthropic')
requestId#
requestId: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:196
Unique identifier for this chat request
retry#
retry: () => void;Defined in: packages/ai/src/activities/chat/middleware/types.ts:245
Call the model again. Works only in onModelError, and throws in any other hook. onConfig runs again before the new call.
Returns#
void
runId#
runId: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:200
AG-UI run identifier for correlating client and server events
signal?#
optional signal?: AbortSignal;Defined in: packages/ai/src/activities/chat/middleware/types.ts:238
Abort signal from the chat request
source#
source: "server" | "client";Defined in: packages/ai/src/activities/chat/middleware/types.ts:280
Source of the chat invocation — always 'server' for server-side chat
streamId#
streamId: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:198
Unique identifier for this stream
streaming#
streaming: boolean;Defined in: packages/ai/src/activities/chat/middleware/types.ts:282
Whether the chat is streaming
subagentName?#
optional subagentName?: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:209
The agent name when this run is a subagent.
subagentRunId?#
optional subagentRunId?: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:207
Set when this run is a subagent. The id on the child's SUBAGENT_STARTED and on every chunk it streams. Absent on a top-level run.
systemPrompts#
systemPrompts: SystemPrompt[];Defined in: packages/ai/src/activities/chat/middleware/types.ts:287
System prompts configured for this chat
threadId#
threadId: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:224
AG-UI thread identifier — a stable per-conversation ID used to correlate client and server devtools events. It is the caller's threadId.
toolNames?#
optional toolNames?: string[];Defined in: packages/ai/src/activities/chat/middleware/types.ts:289
Names of configured tools, if any