Defined in: packages/ai/src/activities/chat/middleware/types.ts:184
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:215
Abort the chat run with a reason
string
void
accumulatedContent: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:272
Accumulated text content for the current iteration
activity: "chat";Defined in: packages/ai/src/activities/chat/middleware/types.ts:239
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:286
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:211
Running count of chunks yielded so far
context: TContext;Defined in: packages/ai/src/activities/chat/middleware/types.ts:223
Runtime context provided by chat() options
optional conversationId?: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:205
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:279
Generate a unique ID with the given prefix
string
string
currentMessageId: string | null;Defined in: packages/ai/src/activities/chat/middleware/types.ts:270
Current assistant message ID (changes per iteration)
defer: (promise) => void;Defined in: packages/ai/src/activities/chat/middleware/types.ts:229
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) => void;Defined in: packages/ai/src/activities/chat/middleware/types.ts:221
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).
string
Record<string, any>
void
get: <TValue>(capability) => TValue;Defined in: packages/ai/src/activities/chat/middleware/types.ts:291
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:296
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:265
Whether tools are configured
iteration: number;Defined in: packages/ai/src/activities/chat/middleware/types.ts:209
Current agent loop iteration (0-indexed)
messageCount: number;Defined in: packages/ai/src/activities/chat/middleware/types.ts:263
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:277
Current messages array (read-only view)
model: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:243
Model identifier (e.g., 'gpt-5.5')
optional modelOptions?: Record<string, unknown>;Defined in: packages/ai/src/activities/chat/middleware/types.ts:258
Provider-specific model options
optional options?: Record<string, unknown>;Defined in: packages/ai/src/activities/chat/middleware/types.ts:256
Flattened generation options (metadata)
optional parentRunId?: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:192
Interrupted or parent run correlated with this continuation.
phase: ChatMiddlewarePhase;Defined in: packages/ai/src/activities/chat/middleware/types.ts:207
Current lifecycle phase
provide: <TValue>(capability, value) => void;Defined in: packages/ai/src/activities/chat/middleware/types.ts:301
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:241
Provider name (e.g., 'openai', 'anthropic')
requestId: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:186
Unique identifier for this chat request
runId: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:190
AG-UI run identifier for correlating client and server events
optional signal?: AbortSignal;Defined in: packages/ai/src/activities/chat/middleware/types.ts:213
Abort signal from the chat request
source: "server" | "client";Defined in: packages/ai/src/activities/chat/middleware/types.ts:245
Source of the chat invocation — always 'server' for server-side chat
streamId: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:188
Unique identifier for this stream
streaming: boolean;Defined in: packages/ai/src/activities/chat/middleware/types.ts:247
Whether the chat is streaming
systemPrompts: SystemPrompt[];Defined in: packages/ai/src/activities/chat/middleware/types.ts:252
System prompts configured for this chat
threadId: string;Defined in: packages/ai/src/activities/chat/middleware/types.ts:199
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:254
Names of configured tools, if any