Docs
Cloudflare
Railway
CodeRabbit
Netlify
OpenRouter
SerpAPI
AG Grid
Clerk
WorkOS
Sentry
Electric
Prisma
Unkey
Cloudflare
Railway
CodeRabbit
Netlify
OpenRouter
SerpAPI
AG Grid
Clerk
WorkOS
Sentry
Electric
Prisma
Unkey
Class References
Function References
Interface References
Type Alias References
Variable References

TextAdapter

Interface: TextAdapter<TModel, TProviderOptions, TInputModalities, TMessageMetadataByModality, TToolCapabilities, TToolCallMetadata, TSystemPromptMetadata>

Defined in: packages/ai/src/activities/chat/adapter.ts:66

Text adapter interface with pre-resolved generics.

An adapter is created by a provider function: provider('model')adapter All type resolution happens at the provider call site, not in this interface.

Generic parameters:

  • TModel: The specific model name (e.g., 'gpt-4o')
  • TProviderOptions: Provider-specific options for this model (already resolved)
  • TInputModalities: Supported input modalities for this model (already resolved)
  • TMessageMetadata: Metadata types for content parts (already resolved)
  • TToolCapabilities: Tuple of tool-kind strings supported by this model, resolved from supports.tools
  • TToolCallMetadata: Metadata type that round-trips with tool calls (e.g. Gemini's thoughtSignature)
  • TSystemPromptMetadata: Provider-typed metadata accepted on each systemPrompts[i] entry (e.g. Anthropic cache_control). Defaults to never — adapters without per-prompt metadata reject the metadata field at the call site.

Type Parameters

TModel

TModel extends string

TProviderOptions

TProviderOptions extends Record<string, any>

TInputModalities

TInputModalities extends ReadonlyArray<Modality>

TMessageMetadataByModality

TMessageMetadataByModality extends DefaultMessageMetadataByModality

TToolCapabilities

TToolCapabilities extends ReadonlyArray<string> = ReadonlyArray<string>

TToolCallMetadata

TToolCallMetadata = unknown

TSystemPromptMetadata

TSystemPromptMetadata = never

Properties

~types

ts
~types: object;
~types: object;

Defined in: packages/ai/src/activities/chat/adapter.ts:85

Internal

Type-only properties for inference. Not assigned at runtime.

inputModalities

ts
inputModalities: TInputModalities;
inputModalities: TInputModalities;

messageMetadataByModality

ts
messageMetadataByModality: TMessageMetadataByModality;
messageMetadataByModality: TMessageMetadataByModality;

providerOptions

ts
providerOptions: TProviderOptions;
providerOptions: TProviderOptions;

systemPromptMetadata

ts
systemPromptMetadata: TSystemPromptMetadata;
systemPromptMetadata: TSystemPromptMetadata;

toolCallMetadata

ts
toolCallMetadata: TToolCallMetadata;
toolCallMetadata: TToolCallMetadata;

toolCapabilities

ts
toolCapabilities: TToolCapabilities;
toolCapabilities: TToolCapabilities;

chatStream()

ts
chatStream: (options) => AsyncIterable<AGUIEvent>;
chatStream: (options) => AsyncIterable<AGUIEvent>;

Defined in: packages/ai/src/activities/chat/adapter.ts:97

Stream text completions from the model

Parameters

options

TextOptions<TProviderOptions>

Returns

AsyncIterable<AGUIEvent>


kind

ts
readonly kind: "text";
readonly kind: "text";

Defined in: packages/ai/src/activities/chat/adapter.ts:76

Discriminator for adapter kind


model

ts
readonly model: TModel;
readonly model: TModel;

Defined in: packages/ai/src/activities/chat/adapter.ts:80

The model this adapter is configured for


name

ts
readonly name: string;
readonly name: string;

Defined in: packages/ai/src/activities/chat/adapter.ts:78

Provider name identifier (e.g., 'openai', 'anthropic')


structuredOutput()

ts
structuredOutput: (options) => Promise<StructuredOutputResult<unknown>>;
structuredOutput: (options) => Promise<StructuredOutputResult<unknown>>;

Defined in: packages/ai/src/activities/chat/adapter.ts:109

Generate structured output using the provider's native structured output API. This method uses stream: false and sends the JSON schema to the provider to ensure the response conforms to the expected structure.

Parameters

options

StructuredOutputOptions<TProviderOptions>

Structured output options containing chat options and JSON schema

Returns

Promise<StructuredOutputResult<unknown>>

Promise with the raw data (validation is done in the chat function)


structuredOutputStream()?

ts
optional structuredOutputStream: (options) => AsyncIterable<AGUIEvent>;
optional structuredOutputStream: (options) => AsyncIterable<AGUIEvent>;

Defined in: packages/ai/src/activities/chat/adapter.ts:126

Stream structured output using the provider's native streaming structured output API (stream + response_format json_schema in a single request).

Optional — adapters without native streaming JSON omit this method and the activity layer synthesizes a stream around the non-streaming structuredOutput call.

Implementations must emit standard AG-UI lifecycle events (RUN_STARTED, TEXT_MESSAGE_*, RUN_FINISHED) carrying raw JSON text deltas, plus a final CUSTOM event named structured-output.complete whose value is { object, raw, reasoning? }.

Parameters

options

StructuredOutputOptions<TProviderOptions>

Returns

AsyncIterable<AGUIEvent>


supportsCombinedToolsAndSchema()?

ts
optional supportsCombinedToolsAndSchema: (modelOptions?) => boolean;
optional supportsCombinedToolsAndSchema: (modelOptions?) => boolean;

Defined in: packages/ai/src/activities/chat/adapter.ts:149

Declares whether the adapter supports combining tools and a schema-constrained final answer in a single streaming request.

When true, the engine wires outputSchema into the regular chatStream() call and skips the separate runStructuredFinalization round-trip. The model's natural final turn carries the schema-constrained JSON text and the engine harvests it from the agent loop's accumulated content.

When false, undefined, or the method is omitted, the engine runs the agent loop without outputSchema and then issues a separate structuredOutput / structuredOutputStream call against the JSON schema for finalization (the legacy path).

The method receives the per-call modelOptions so providers whose support depends on the resolved upstream model (e.g. OpenRouter) can answer per-request. Most adapters can return a constant.

Parameters

modelOptions?

TProviderOptions

Returns

boolean