TanStack

StructuredOutputMiddlewareConfig

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.

Extends

Properties

activities?

ts
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.

Inherited from

ChatMiddlewareConfig.activities


messages

ts
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.

Inherited from

ChatMiddlewareConfig.messages


metadata?

ts
optional metadata?: Record<string, unknown>;

Defined in: packages/ai/src/activities/chat/middleware/types.ts:351

Inherited from

ChatMiddlewareConfig.metadata


modelOptions?

ts
optional modelOptions?: Record<string, unknown>;

Defined in: packages/ai/src/activities/chat/middleware/types.ts:352

Inherited from

ChatMiddlewareConfig.modelOptions


outputSchema

ts
outputSchema: JSONSchema;

Defined in: packages/ai/src/activities/chat/middleware/types.ts:417

JSON Schema being sent to the provider for structured output.


promptCache?

ts
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.

Inherited from

ChatMiddlewareConfig.promptCache


providerMessages?

ts
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.

Inherited from

ChatMiddlewareConfig.providerMessages


reasoning?

ts
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.

Inherited from

ChatMiddlewareConfig.reasoning


resume?

ts
optional resume?: RunAgentResumeItem[];

Defined in: packages/ai/src/activities/chat/middleware/types.ts:349

Inherited from

ChatMiddlewareConfig.resume


resumeToolState?

ts
optional resumeToolState?: ChatResumeToolState;

Defined in: packages/ai/src/activities/chat/middleware/types.ts:350

Inherited from

ChatMiddlewareConfig.resumeToolState


systemPrompts

ts
systemPrompts: SystemPrompt[];

Defined in: packages/ai/src/activities/chat/middleware/types.ts:347

Inherited from

ChatMiddlewareConfig.systemPrompts


wrapFetch?

ts
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.

Inherited from

ChatMiddlewareConfig.wrapFetch