import { LanguageModel, LanguageModelMessage, LanguageModelRequest, LanguageModelResponse, LanguageModelStatus, LanguageModelStreamResponse, LanguageModelTextResponse, ReasoningApi, ReasoningSupport, ServerToolDescriptor, UserRequest } from '@theia/ai-core'; import { CancellationToken } from '@theia/core'; import { Anthropic } from '@anthropic-ai/sdk'; import type { MessageParam } from '@anthropic-ai/sdk/resources'; export declare const DEFAULT_MAX_TOKENS = 4096; /** * Key under which the raw Anthropic server tool result block is stored on the server tool call's `data`, * so it can be reconstructed faithfully on replay. The human-readable `result` summary is kept separately * for rendering (see {@link buildServerToolResultPart}). */ export declare const ANTHROPIC_RESULT_BLOCK_DATA_KEY = "anthropicResultBlock"; /** * Transforms Theia language model messages to Anthropic API format * @param messages Array of LanguageModelRequestMessage to transform * @param addCacheControl whether to add prompt-cache control to the system message * @param compactionEnabled whether the request will use the beta endpoint, so compaction replay blocks may be emitted * @returns Object containing transformed messages and optional system message */ export declare function transformToAnthropicParams(messages: readonly LanguageModelMessage[], addCacheControl?: boolean, compactionEnabled?: boolean): { messages: MessageParam[]; systemMessage?: Anthropic.Messages.TextBlockParam[]; }; export declare function mergeConsecutiveSameRoleMessages(messages: MessageParam[]): MessageParam[]; /** * If possible adds a cache control to the last message in the conversation. * This is used to enable incremental caching of the conversation. * @param messages The messages to process * @returns A new messages array with the last message adapted to include cache control. If no cache control can be added, the original messages are returned. * In any case, the original messages are not modified */ export declare function addCacheControlToLastMessage(messages: Anthropic.Messages.MessageParam[]): Anthropic.Messages.MessageParam[]; export declare const AnthropicModelIdentifier: unique symbol; /** * Implements the Anthropic language model integration for Theia. Reasoning-level * translation lives in {@link anthropicReasoningFor}. */ export declare class AnthropicModel implements LanguageModel { readonly id: string; model: string; status: LanguageModelStatus; enableStreaming: boolean; useCaching: boolean; apiKey: () => string | undefined; url: string | undefined; maxTokens: number; maxRetries: number; proxy?: string | undefined; reasoningSupport?: ReasoningSupport | undefined; reasoningApi?: ReasoningApi | undefined; supportsXHighEffort?: boolean | undefined; maxInputTokens?: number | undefined; serverTools?: ServerToolDescriptor[] | undefined; serverSideCompactionSupport: boolean; serverSideCompactionEnabledByDefault: boolean; serverSideCompactionTokenThresholdByDefault?: number | undefined; /** Provider identifier, used to key per-provider settings (e.g. server tool selections) and the capabilities UI. */ readonly vendor = "anthropic"; constructor(id: string, model: string, status: LanguageModelStatus, enableStreaming: boolean, useCaching: boolean, apiKey: () => string | undefined, url: string | undefined, maxTokens?: number, maxRetries?: number, proxy?: string | undefined, reasoningSupport?: ReasoningSupport | undefined, reasoningApi?: ReasoningApi | undefined, supportsXHighEffort?: boolean | undefined, maxInputTokens?: number | undefined, serverTools?: ServerToolDescriptor[] | undefined, serverSideCompactionSupport?: boolean, serverSideCompactionEnabledByDefault?: boolean, serverSideCompactionTokenThresholdByDefault?: number | undefined); protected getSettings(request: LanguageModelRequest): Readonly>; /** Resolves whether this request will route through the Anthropic Beta Messages API for server-side compaction. */ protected useServerSideCompaction(request: LanguageModelRequest): boolean; /** * Augments the base message-create params with the beta flag and context-management edit when server-side compaction * is enabled for the given request. When disabled, the params are returned unchanged so the default (stable) path is byte-for-byte identical. */ protected applyCompactionParams(params: T, request: LanguageModelRequest): T; request(request: UserRequest, cancellationToken?: CancellationToken): Promise; protected handleStreamingRequest(anthropic: Anthropic, request: UserRequest, cancellationToken?: CancellationToken, toolMessages?: readonly Anthropic.Messages.MessageParam[]): Promise; protected createTools(request: LanguageModelRequest): Anthropic.Messages.ToolUnion[] | undefined; /** Translates the enabled server tool ids on the request into native Anthropic server tool params. */ protected createServerTools(request: LanguageModelRequest): Anthropic.Messages.ToolUnion[]; protected handleNonStreamingRequest(anthropic: Anthropic, request: UserRequest): Promise; protected initializeAnthropic(): Anthropic; } //# sourceMappingURL=anthropic-language-model.d.ts.map