/** * Vercel LanguageModelV3 model provider implementation. * * This module provides integration with any Vercel v3 compatible model provider, * supporting streaming responses, tool use, and reasoning content. * * @see https://github.com/vercel/ai/tree/main/packages/provider/src/language-model/v3 */ import type { LanguageModelV3, LanguageModelV3CallOptions } from '@ai-sdk/provider'; import type { ModelStreamEvent } from './streaming.js'; import { Message } from '../types/messages.js'; import { Model, type BaseModelConfig, type StreamOptions } from './model.js'; /** * Call option fields from LanguageModelV3CallOptions that can be configured. * Excludes prompt, tools, and toolChoice which are managed by the agent loop. */ type LanguageModelCallSettings = Omit; /** * Configuration for the VercelModel adapter. * * Extends BaseModelConfig with all LanguageModelV3 call settings (temperature, topP, topK, * presencePenalty, frequencyPenalty, stopSequences, seed, etc.). When new fields are added * to the Language Model Specification, they become available here automatically. * * Note: `maxTokens` (from BaseModelConfig) maps to `maxOutputTokens` in the underlying call. * If both are set, `maxOutputTokens` takes precedence. */ export interface VercelModelConfig extends BaseModelConfig, LanguageModelCallSettings { } /** * Options for creating a VercelModel instance. */ export interface VercelModelOptions extends Partial { /** * A LanguageModelV3 instance from any Vercel provider. */ provider: LanguageModelV3; } /** * Adapter that wraps a LanguageModelV3 instance * for use as a Strands model provider. * * Implements the Model interface for any Vercel v3 compatible provider. * Supports streaming responses, tool use, and reasoning content. * * @example * ```typescript * import { Agent } from '@strands-agents/sdk' * import { VercelModel } from '@strands-agents/sdk/models/vercel' * import { bedrock } from '@ai-sdk/amazon-bedrock' * * const agent = new Agent({ * model: new VercelModel({ provider: bedrock('us.anthropic.claude-sonnet-4-20250514-v1:0') }), * }) * * for await (const event of agent.stream('Hello!')) { * if (event.type === 'modelContentBlockDeltaEvent' && event.delta.type === 'textDelta') { * process.stdout.write(event.delta.text) * } * } * ``` */ export declare class VercelModel extends Model { private _provider; private _config; /** * Creates a new VercelModel instance. * * @param options - The model and optional configuration */ constructor(options: VercelModelOptions); getConfig(): VercelModelConfig; updateConfig(config: VercelModelConfig): void; stream(messages: Message[], options?: StreamOptions): AsyncIterable; } export {}; //# sourceMappingURL=vercel.d.ts.map