Defined in: packages/ai/src/activities/chat/middleware/types.ts:192
Stable context object passed to all middleware hooks. Created once per chat() invocation and shared across all hooks.
TContext = unknown
abort: (reason?) => void;Defined in: packages/ai/src/activities/chat/middleware/types.ts:228
Abort the chat run with a reason
string
void
accumulatedContent: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:290
Accumulated text content for the current iteration
optional activities?: readonly ActivityRecord[];Defined in: packages/ai/src/activities/chat/middleware/types.ts:301
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: "chat";Defined in: packages/ai/src/activities/chat/middleware/types.ts:257
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.
capabilities: CapabilityRegistry;Defined in: packages/ai/src/activities/chat/middleware/types.ts:310
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).
chunkIndex: number;Defined in: packages/ai/src/activities/chat/middleware/types.ts:224
Running count of chunks yielded so far
context: TContext;Defined in: packages/ai/src/activities/chat/middleware/types.ts:241
Runtime context provided by chat() options
optional conversationId?: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:218
Use threadId instead. Retained as an alias of threadId so middleware written before the AG-UI rename keeps working unchanged. Will be removed in a future major release.
createId: (prefix) => string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:303
Generate a unique ID with the given prefix
string
string
currentMessageId: string | null;Defined in: packages/ai/src/activities/chat/middleware/types.ts:288
Current assistant message ID (changes per iteration)
defer: (promise) => void;Defined in: packages/ai/src/activities/chat/middleware/types.ts:247
Defer a non-blocking side-effect promise. Deferred promises do not block streaming and are awaited after the terminal hook (onFinish/onAbort/onError).
Promise<unknown>
void
emitCustomEvent: (name, value, options?) => void;Defined in: packages/ai/src/activities/chat/middleware/types.ts:235
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 }.
string
Record<string, any>
void
get: <TValue>(capability) => TValue;Defined in: packages/ai/src/activities/chat/middleware/types.ts:315
Read a provided capability by its handle. Equivalent to the handle's own get accessor (getX(ctx)); throws if the capability was never provided.
TValue
Capability<TValue>
TValue
getOptional: <TValue>(capability) => TValue | undefined;Defined in: packages/ai/src/activities/chat/middleware/types.ts:320
Read a capability by its handle, returning undefined if it was never provided (never throws).
TValue
Capability<TValue>
TValue | undefined
hasTools: boolean;Defined in: packages/ai/src/activities/chat/middleware/types.ts:283
Whether tools are configured
iteration: number;Defined in: packages/ai/src/activities/chat/middleware/types.ts:222
Current agent loop iteration (0-indexed)
messageCount: number;Defined in: packages/ai/src/activities/chat/middleware/types.ts:281
Number of messages at the start of the request
messages: readonly ModelMessage<
| string
| ContentPart<unknown, unknown, unknown, unknown, unknown>[]
| null>[];Defined in: packages/ai/src/activities/chat/middleware/types.ts:295
Current messages array (read-only view)
model: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:261
Model identifier (e.g., 'gpt-5.5')
optional modelOptions?: Record<string, unknown>;Defined in: packages/ai/src/activities/chat/middleware/types.ts:276
Provider-specific model options
optional options?: Record<string, unknown>;Defined in: packages/ai/src/activities/chat/middleware/types.ts:274
Flattened generation options (metadata)
optional parentRunId?: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:200
Interrupted or parent run correlated with this continuation.
phase: ChatMiddlewarePhase;Defined in: packages/ai/src/activities/chat/middleware/types.ts:220
Current lifecycle phase
provide: <TValue>(capability, value) => void;Defined in: packages/ai/src/activities/chat/middleware/types.ts:325
Provide a capability value. Equivalent to the handle's own provide accessor (provideX(ctx, value)). Typically called from setup.
TValue
Capability<TValue>
TValue
void
provider: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:259
Provider name (e.g., 'openai', 'anthropic')
requestId: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:194
Unique identifier for this chat request
runId: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:198
AG-UI run identifier for correlating client and server events
optional signal?: AbortSignal;Defined in: packages/ai/src/activities/chat/middleware/types.ts:226
Abort signal from the chat request
source: "server" | "client";Defined in: packages/ai/src/activities/chat/middleware/types.ts:263
Source of the chat invocation — always 'server' for server-side chat
streamId: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:196
Unique identifier for this stream
streaming: boolean;Defined in: packages/ai/src/activities/chat/middleware/types.ts:265
Whether the chat is streaming
optional subagentRunId?: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:205
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: SystemPrompt[];Defined in: packages/ai/src/activities/chat/middleware/types.ts:270
System prompts configured for this chat
threadId: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:212
AG-UI thread identifier — a stable per-conversation ID used to correlate client and server devtools events. Resolves to the caller-provided threadId (or legacy conversationId), or an auto-generated value when neither is supplied.
optional toolNames?: string[];Defined in: packages/ai/src/activities/chat/middleware/types.ts:272
Names of configured tools, if any