Defined in: packages/ai/src/activities/chat/middleware/types.ts:412
Config passed to onStructuredOutputConfig.
Mirrors ChatMiddlewareConfig minus tools and toolChoice (the final structured-output call is a single typed-response request, not an agentic loop — tools cannot be forwarded to it), plus the outputSchema being sent to the provider. Middleware may transform the schema (e.g., inject $defs, strip vendor-incompatible keywords) by returning a partial that includes outputSchema.
optional activities?: ActivityRecord[];Defined in: packages/ai/src/activities/chat/middleware/types.ts:344
Frontend-only AG-UI activity sidecar. Persistence loads and saves this when an ActivityStore is configured. Never model input.
ChatMiddlewareConfig.activities
messages: ModelMessage<
| string
| ContentPart<unknown, unknown, unknown, unknown, unknown>[]
| null>[];Defined in: packages/ai/src/activities/chat/middleware/types.ts:339
Canonical conversation history. Middleware and persistence read this.
optional metadata?: Record<string, unknown>;Defined in: packages/ai/src/activities/chat/middleware/types.ts:351
optional modelOptions?: Record<string, unknown>;Defined in: packages/ai/src/activities/chat/middleware/types.ts:352
ChatMiddlewareConfig.modelOptions
outputSchema: JSONSchema;Defined in: packages/ai/src/activities/chat/middleware/types.ts:417
JSON Schema being sent to the provider for structured output.
optional promptCache?: ResolvedPromptCache;Defined in: packages/ai/src/activities/chat/middleware/types.ts:365
The prompt cache of the next model call. A returned value stays until a middleware changes it.
ChatMiddlewareConfig.promptCache
optional providerMessages?: ModelMessage<
| string
| ContentPart<unknown, unknown, unknown, unknown, unknown>[]
| null>[];Defined in: packages/ai/src/activities/chat/middleware/types.ts:346
Provider-only context. Defaults to messages when it is not set.
ChatMiddlewareConfig.providerMessages
optional reasoning?: ReasoningRequest;Defined in: packages/ai/src/activities/chat/middleware/types.ts:354
How hard the model thinks at this call. A middleware can set or change it.
ChatMiddlewareConfig.reasoning
optional resume?: RunAgentResumeItem[];Defined in: packages/ai/src/activities/chat/middleware/types.ts:349
optional resumeToolState?: ChatResumeToolState;Defined in: packages/ai/src/activities/chat/middleware/types.ts:350
ChatMiddlewareConfig.resumeToolState
systemPrompts: SystemPrompt[];Defined in: packages/ai/src/activities/chat/middleware/types.ts:347
ChatMiddlewareConfig.systemPrompts
optional wrapFetch?: FetchWrapper;Defined in: packages/ai/src/activities/chat/middleware/types.ts:371
Wraps the fetch of the next model call. A returned wrapper chains inside the wrappers before it, so it does not replace them. It applies to that call only. The next call starts again from the chat() option.