11import Anthropic from "@anthropic-ai/sdk" ;
22import { Provider } from "./provider.js" ;
3- import type { StreamResult , NormalizedChunk , NormalizedChunkAnthropic } from "../chunks/types.js" ;
3+ import type {
4+ StreamResult ,
5+ NormalizedChunk ,
6+ NormalizedChunkAnthropic ,
7+ } from "../chunks/types.js" ;
48import type { McpServer } from "../index.js" ;
59import type { ProviderConfig } from "./types.js" ;
6- import type { BetaRawContentBlockDeltaEvent , BetaRawContentBlockStartEvent , BetaRawContentBlockStopEvent } from "@anthropic-ai/sdk/resources/beta.js" ;
10+ import type {
11+ BetaRawContentBlockDeltaEvent ,
12+ BetaRawContentBlockStartEvent ,
13+ BetaRawContentBlockStopEvent ,
14+ } from "@anthropic-ai/sdk/resources/beta.js" ;
715import type { BetaRateLimitError } from "@anthropic-ai/sdk/resources" ;
816
9- type AnthropicChunk = BetaRawContentBlockDeltaEvent | BetaRawContentBlockStartEvent | BetaRawContentBlockStopEvent | BetaRateLimitError ;
17+ type AnthropicChunk =
18+ | BetaRawContentBlockDeltaEvent
19+ | BetaRawContentBlockStartEvent
20+ | BetaRawContentBlockStopEvent
21+ | BetaRateLimitError ;
1022/**
1123 * Type alias for Anthropic model names.
1224 *
@@ -18,7 +30,14 @@ type AnthropicChunk = BetaRawContentBlockDeltaEvent | BetaRawContentBlockStartEv
1830 * const model: AnthropicModel = "claude-3-haiku-20240307";
1931 * ```
2032 */
21- export type AnthropicModel = Anthropic . Model ;
33+
34+ type OnlyLiteralStrings < T > = T extends string
35+ ? string extends T
36+ ? never
37+ : T
38+ : never ;
39+
40+ export type AnthropicModel = OnlyLiteralStrings < Anthropic . Model > ;
2241
2342/**
2443 * Provider for Anthropic Claude models.
@@ -129,7 +148,9 @@ export class AnthropicProvider extends Provider {
129148 url : this . mcpServer . url ,
130149 name : this . mcpServer . name ,
131150 type : "url" ,
132- ...( this . mcpServer . authorizationToken && { authorization_token : this . mcpServer . authorizationToken } ) ,
151+ ...( this . mcpServer . authorizationToken && {
152+ authorization_token : this . mcpServer . authorizationToken ,
153+ } ) ,
133154 } ,
134155 ] ,
135156 betas : [ "mcp-client-2025-04-04" ] ,
@@ -194,7 +215,6 @@ export class AnthropicProvider extends Provider {
194215 } ;
195216 }
196217
197-
198218 /**
199219 * Normalizes Anthropic-specific chunks into the unified NormalizedChunk format.
200220 *
@@ -227,16 +247,20 @@ export class AnthropicProvider extends Provider {
227247 } ;
228248 }
229249
230- const baseChunk : Pick < NormalizedChunkAnthropic , "provider" | "timestamp" | "index" | "originalChunk" > = {
250+ const baseChunk : Pick <
251+ NormalizedChunkAnthropic ,
252+ "provider" | "timestamp" | "index" | "originalChunk"
253+ > = {
231254 provider : "anthropic" ,
232255 timestamp,
233256 index : chunk . index ,
234257 originalChunk : chunk ,
235258 } ;
236259
237-
238-
239- if ( chunk . type === "content_block_start" && chunk . content_block . type === "text" ) {
260+ if (
261+ chunk . type === "content_block_start" &&
262+ chunk . content_block . type === "text"
263+ ) {
240264 return {
241265 ...baseChunk ,
242266 type : "text_start" ,
@@ -246,7 +270,10 @@ export class AnthropicProvider extends Provider {
246270 } ;
247271 }
248272
249- if ( chunk . type === "content_block_delta" && chunk . delta . type === "text_delta" ) {
273+ if (
274+ chunk . type === "content_block_delta" &&
275+ chunk . delta . type === "text_delta"
276+ ) {
250277 if ( ! this . config . silent ) {
251278 process . stdout . write (
252279 JSON . stringify ( {
@@ -260,7 +287,7 @@ export class AnthropicProvider extends Provider {
260287 ...baseChunk ,
261288 type : "text_delta" ,
262289 data : { textDelta : chunk . delta . text } ,
263- }
290+ } ;
264291 }
265292
266293 if (
@@ -287,7 +314,10 @@ export class AnthropicProvider extends Provider {
287314 } ;
288315 }
289316
290- if ( chunk . type === "content_block_delta" && chunk . delta . type === "input_json_delta" ) {
317+ if (
318+ chunk . type === "content_block_delta" &&
319+ chunk . delta . type === "input_json_delta"
320+ ) {
291321 return {
292322 ...baseChunk ,
293323 type : "tool_call_delta" ,
@@ -297,7 +327,10 @@ export class AnthropicProvider extends Provider {
297327 } ;
298328 }
299329
300- if ( chunk . type === "content_block_start" && chunk . content_block . type === "mcp_tool_result" ) {
330+ if (
331+ chunk . type === "content_block_start" &&
332+ chunk . content_block . type === "mcp_tool_result"
333+ ) {
301334 return {
302335 ...baseChunk ,
303336 type : "tool_result" ,
@@ -306,12 +339,10 @@ export class AnthropicProvider extends Provider {
306339 isError : chunk . content_block . is_error ,
307340 toolResult : chunk . content_block . content ,
308341 } ,
309- }
342+ } ;
310343 }
311344
312- if (
313- chunk . type === "content_block_stop"
314- ) {
345+ if ( chunk . type === "content_block_stop" ) {
315346 if ( ! this . config . silent ) {
316347 process . stdout . write (
317348 JSON . stringify ( {
0 commit comments