import type { ContentBlockParam, MessageParam, RawMessageStreamEvent, ThinkingConfigParam } from '@anthropic-ai/sdk/resources'; import type { ProviderUsage } from '../../provider.js'; import type { AnthropicToolDef, ToolDispatcher, TranslateCtx } from './types.js'; export interface RunTurnInput { client: AnthropicClientLike; messages: MessageParam[]; system: ContentBlockParam[] | string | null; tools: AnthropicToolDef[] | null; toolDispatcher: ToolDispatcher; model: string; maxTokens: number; headers: Record; signal: AbortSignal; ctx: TranslateCtx; maxToolUseIterations?: number; softDeadlineMs?: number; thinking?: ThinkingConfigParam; effort?: import('../../types/sdk-types.js').EffortLevel; temperature?: number; fastMode?: boolean; baseUrl?: string; traceWriter?: import('../../trace/index.js').TraceSink; subagentId?: string; onUsageProgress?: (usage: ProviderUsage) => void; throttleQueue?: import('./throttle-queue.js').ThrottleQueue; beforeNextRound?: () => string | undefined; } export interface AnthropicClientLike { messages: { create(params: AnthropicMessagesCreateParams, options?: { headers?: Record; signal?: AbortSignal; }): Promise> | AsyncIterable; }; } export interface WireToolDef { name: string; description?: string; input_schema: { type: 'object'; properties?: Record; required?: string[]; [k: string]: unknown; }; } export interface AnthropicMessagesCreateParams { model: string; max_tokens: number; messages: MessageParam[]; system?: ContentBlockParam[] | string; tools?: WireToolDef[]; thinking?: ThinkingConfigParam; output_config?: { effort?: import('../../types/sdk-types.js').EffortLevel; }; temperature?: number; speed?: 'fast'; stream: true; metadata?: Record; }