@absolutejs/ai 0.3.2 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +19 -0
- package/changelog.json +33 -0
- package/dist/ai/client/index.js +1 -3
- package/dist/ai/client/index.js.map +2 -2
- package/dist/ai/index.js +7818 -7753
- package/dist/ai/index.js.map +20 -20
- package/dist/ai/models/index.js +1 -71
- package/dist/ai/models/index.js.map +2 -2
- package/dist/ai/providers/anthropic.js +33 -29
- package/dist/ai/providers/anthropic.js.map +3 -3
- package/dist/ai/providers/gemini.js +11 -13
- package/dist/ai/providers/gemini.js.map +2 -2
- package/dist/ai/providers/ollama.js +3 -5
- package/dist/ai/providers/ollama.js.map +2 -2
- package/dist/ai/providers/openai.js +38 -40
- package/dist/ai/providers/openai.js.map +2 -2
- package/dist/ai/providers/openaiCompatible.js +56 -58
- package/dist/ai/providers/openaiCompatible.js.map +2 -2
- package/dist/ai/providers/openaiResponses.js +18 -20
- package/dist/ai/providers/openaiResponses.js.map +2 -2
- package/dist/ai/providers/openrouter.js +130 -126
- package/dist/ai/providers/openrouter.js.map +3 -3
- package/dist/ai/providers/openrouterSDK.js +1 -3
- package/dist/ai/providers/openrouterSDK.js.map +2 -2
- package/dist/ai/research.js +2 -4
- package/dist/ai/research.js.map +2 -2
- package/dist/ai/tools/index.js +55 -58
- package/dist/ai/tools/index.js.map +5 -5
- package/dist/ai/tools/untrusted.js +1 -3
- package/dist/ai/tools/untrusted.js.map +2 -2
- package/dist/ai/ui/index.js +83 -87
- package/dist/ai/ui/index.js.map +4 -4
- package/dist/angular/ai/index.js +1 -1
- package/dist/angular/ai/index.js.map +1 -1
- package/dist/react/ai/index.js +4 -74
- package/dist/react/ai/index.js.map +2 -2
- package/dist/src/ai/ui/catalog.d.ts +3 -0
- package/dist/src/ai/ui/index.d.ts +2 -2
- package/dist/src/ai/ui/uiCards.d.ts +9 -3
- package/dist/svelte/ai/index.js +1 -71
- package/dist/svelte/ai/index.js.map +2 -2
- package/dist/vue/ai/index.js +1 -71
- package/dist/vue/ai/index.js.map +2 -2
- package/package.json +1 -1
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"import type {\n AIChunk,\n AIProviderConfig,\n AIProviderStreamParams,\n AIUsage,\n} from \"../../../types/ai\";\nimport { withResilience } from \"../resilience\";\n\n// Every provider factory routes through here, so this is also where the\n// automatic retry + circuit-breaker layer is applied — wrapping the raw provider\n// BENEATH the usage/span tap so onUsage/onSpan fire once, for the attempt that\n// actually streamed.\nexport const instrumentAIProvider = (\n provider: AIProviderConfig,\n providerName?: string,\n): AIProviderConfig => {\n const resilient = withResilience(provider, providerName);\n\n return {\n ...provider,\n stream: (params: AIProviderStreamParams) => {\n if (!params.onUsage && !params.onSpan) {\n return resilient.stream(params);\n }\n return tapStream(resilient.stream(params), params, providerName);\n },\n };\n};\n\nasync function* tapStream(\n source: AsyncIterable<AIChunk>,\n params: AIProviderStreamParams,\n providerName?: string,\n): AsyncIterable<AIChunk> {\n const startedAt = Date.now();\n let lastUsage: AIUsage | undefined;\n try {\n for await (const chunk of source) {\n if (chunk.type === \"done\" && chunk.usage) {\n lastUsage = chunk.usage;\n }\n yield chunk;\n }\n } finally {\n if (lastUsage && params.onUsage) {\n try {\n params.onUsage({\n ...lastUsage,\n model: params.model,\n provider: providerName,\n });\n } catch {\n // operator-supplied callback errors must not affect stream consumers\n }\n }\n if (params.onSpan) {\n try {\n params.onSpan({\n durationMs: Date.now() - startedAt,\n model: params.model,\n provider: providerName,\n usage: lastUsage,\n });\n } catch {\n // same\n }\n }\n }\n}\n",
|
|
9
9
|
"import type { ReasoningEffort } from \"../../../types/ai\";\n\nexport const REASONING_EFFORTS = [\n \"none\",\n \"minimal\",\n \"low\",\n \"medium\",\n \"high\",\n \"xhigh\",\n \"max\",\n] as const;\nexport type ReasoningSelection = \"auto\" | ReasoningEffort;\nexport type ModelReasoning = {\n kind: \"effort\" | \"budget\" | \"fixed\";\n efforts: readonly ReasoningEffort[];\n description: string;\n source: string;\n};\nexport const isReasoningSelection = (\n value: unknown,\n): value is ReasoningSelection =>\n value === \"auto\" || REASONING_EFFORTS.some((effort) => effort === value);\nconst profile = (\n kind: ModelReasoning[\"kind\"],\n efforts: readonly ReasoningEffort[],\n description: string,\n source: string,\n): ModelReasoning => ({ kind, efforts, description, source });\nconst claude = profile(\n \"effort\",\n [\"low\", \"medium\", \"high\", \"xhigh\", \"max\"],\n \"More thinking for harder problems; higher settings can take longer and use more credits.\",\n \"https://platform.claude.com/docs/en/build-with-claude/effort\",\n);\nconst claude46 = {\n ...claude,\n efforts: [\"low\", \"medium\", \"high\", \"max\"] as const,\n};\nconst opus45 = { ...claude, efforts: [\"low\", \"medium\", \"high\"] as const };\nconst haiku = profile(\n \"budget\",\n [\"none\", \"low\", \"medium\", \"high\"],\n \"Thinking-token budget: Low 2,048; Medium 8,192; High 16,384. Actual usage can be lower.\",\n \"https://platform.claude.com/docs/en/build-with-claude/extended-thinking\",\n);\nconst gpt = profile(\n \"effort\",\n [\"none\", \"low\", \"medium\", \"high\", \"xhigh\", \"max\"],\n claude.description,\n \"https://developers.openai.com/api/docs/models/gpt-5.6-sol\",\n);\nconst gemini = profile(\n \"effort\",\n [\"low\", \"medium\", \"high\"],\n claude.description,\n \"https://ai.google.dev/gemini-api/docs/openai\",\n);\nconst deepseek = profile(\n \"effort\",\n [\"none\", \"low\", \"high\", \"max\"],\n claude.description,\n \"https://api-docs.deepseek.com/guides/thinking_mode/\",\n);\nconst mistral = profile(\n \"effort\",\n [\"none\", \"high\"],\n \"Minimal thinking or full reasoning. This model does not offer intermediate effort levels.\",\n \"https://docs.mistral.ai/studio/conversations/reasoning\",\n);\nconst qwen = profile(\n \"budget\",\n [\"none\", \"low\", \"medium\", \"high\"],\n haiku.description,\n \"https://help.aliyun.com/en/model-studio/deep-thinking\",\n);\n/** Exact reviewed IDs; unknown models expose only the provider default. Reviewed 2026-09-20;\n * Anthropic effort levels re-checked against the Models API 2026-09-25. */\nexport const MODEL_REASONING: Readonly<Record<string, ModelReasoning>> = {\n \"anthropic:claude-opus-5-5\": claude,\n \"anthropic:claude-fable-5-1\": claude,\n \"anthropic:claude-opus-5\": claude,\n \"anthropic:claude-sonnet-5\": claude,\n \"anthropic:claude-fable-5\": claude,\n \"anthropic:claude-opus-4-8\": claude,\n \"anthropic:claude-opus-4-7\": claude,\n \"anthropic:claude-sonnet-4-6\": claude46,\n \"anthropic:claude-opus-4-6\": claude46,\n \"anthropic:claude-opus-4-5\": opus45,\n \"anthropic:claude-haiku-4-5\": haiku,\n \"anthropic:claude-sonnet-4-5\": haiku,\n \"openai:gpt-6-astra\": {\n ...gpt,\n efforts: [\"low\", \"medium\", \"high\", \"xhigh\", \"max\"],\n source: \"https://developers.openai.com/api/docs/models/gpt-6-astra\",\n },\n \"openai:gpt-5.6-sol\": gpt,\n \"openai:gpt-5.6-terra\": gpt,\n \"openai:gpt-5.6-luna\": gpt,\n \"google:gemini-3.8-flash\": gemini,\n \"google:gemini-3.1-pro-preview\": gemini,\n \"google:gemini-2.5-flash\": profile(\n \"budget\",\n [\"none\", \"low\", \"medium\", \"high\"],\n \"Thinking-token budget: Low 1,024; Medium 8,192; High 24,576.\",\n gemini.source,\n ),\n \"xai:grok-4.6\": profile(\n \"effort\",\n [\"low\", \"medium\", \"high\", \"xhigh\"],\n \"Always reasons. Choose how much thinking it should do.\",\n \"https://docs.x.ai/developers/model-capabilities/text/reasoning\",\n ),\n \"deepseek:deepseek-flash\": deepseek,\n \"deepseek:deepseek-v4-pro\": deepseek,\n \"mistral:mistral-medium-3-5\": mistral,\n \"mistral:mistral-small-latest\": mistral,\n \"alibaba:qwen3.8-max\": qwen,\n \"alibaba:qwen3.7-plus\": qwen,\n \"moonshot:kimi-k3\": profile(\n \"effort\",\n [\"low\", \"high\", \"max\"],\n \"Always reasons. Choose how much thinking it should do.\",\n \"https://platform.kimi.ai/docs/guide/kimi-k3-quickstart\",\n ),\n \"moonshot:kimi-k2.7-code\": profile(\n \"fixed\",\n [],\n \"Thinking is always enabled; this model has no documented adjustable effort control.\",\n \"https://www.kimi.ai/resources/kimi-k2-7-code\",\n ),\n};\nexport const getModelReasoning = (\n provider: string,\n model: string,\n): ModelReasoning | undefined => MODEL_REASONING[`${provider}:${model}`];\nexport const supportsReasoningSelection = (\n provider: string,\n model: string,\n selection: ReasoningSelection,\n): boolean =>\n selection === \"auto\" ||\n Boolean(getModelReasoning(provider, model)?.efforts.includes(selection));\nexport const reasoningSelectionLabel = (\n selection: ReasoningSelection,\n provider?: string,\n): string => {\n if (selection === \"auto\") return \"Auto\";\n if (selection === \"none\") return provider === \"mistral\" ? \"Minimal\" : \"Off\";\n if (selection === \"xhigh\") return \"Extra high\";\n return selection.charAt(0).toUpperCase() + selection.slice(1);\n};\n",
|
|
10
10
|
"import type { ReasoningConfig, ReasoningEffort } from \"../../../types/ai\";\n\nimport { getModelReasoning } from \"../models/reasoning\";\n\nconst EFFORT_ORDER: ReasoningEffort[] = [\n \"none\",\n \"minimal\",\n \"low\",\n \"medium\",\n \"high\",\n \"xhigh\",\n \"max\",\n];\n\n// Anthropic models that take adaptive thinking + output_config.effort.\nconst ANTHROPIC_EFFORT = [\n /opus-4-[5-8]/,\n /sonnet-4-6/,\n /fable-5/,\n /mythos-5/,\n /opus-5/,\n /sonnet-5/,\n];\n// Anthropic models with adaptive thinking but NO effort parameter. Reserved:\n// only add a model here once it's CONFIRMED to accept adaptive thinking without\n// `output_config.effort`. Unconfirmed models fall through to \"none\" (no-op) so\n// we never risk a 400 — Haiku 4.5, for instance, rejects `effort` and is not\n// confirmed for adaptive, so it stays out.\nconst ANTHROPIC_ADAPTIVE_ONLY: RegExp[] = [];\n// Anthropic models that use legacy extended thinking (budget_tokens).\nconst ANTHROPIC_LEGACY_THINKING = [\n /haiku-4-5/,\n /sonnet-4-5/,\n /sonnet-4-0/,\n /sonnet-4-2025/,\n /opus-4-0/,\n /opus-4-1/,\n /opus-4-2025/,\n /3-7-sonnet/,\n];\n// Anthropic models that REMOVED temperature/top_p/top_k (sending them 400s).\nconst ANTHROPIC_NO_SAMPLING = [\n /opus-4-[78]/,\n /fable-5/,\n /mythos-5/,\n /opus-5/,\n /sonnet-5/,\n];\n// Anthropic models that support the `max` effort tier (others clamp max→high).\nconst ANTHROPIC_MAX_EFFORT = [\n /opus-4-[678]/,\n /sonnet-4-6/,\n /fable-5/,\n /mythos-5/,\n];\n// OpenAI reasoning models (effort-capable); everything else ignores effort.\nconst OPENAI_REASONING = [/(^|[^a-z])o[1345](-|$)/, /gpt-[56]/];\n// OpenAI reasoning models that support the `minimal` tier (others clamp →low).\nconst OPENAI_MINIMAL_EFFORT = [/gpt-5/];\n\nconst matches = (model: string, patterns: RegExp[]) =>\n patterns.some((pattern) => pattern.test(model));\n\nexport type AnthropicReasoningMode = \"effort\" | \"adaptive\" | \"legacy\" | \"none\";\n\nexport const anthropicReasoningMode = (\n model: string,\n): AnthropicReasoningMode => {\n if (matches(model, ANTHROPIC_EFFORT)) return \"effort\";\n if (matches(model, ANTHROPIC_ADAPTIVE_ONLY)) return \"adaptive\";\n if (matches(model, ANTHROPIC_LEGACY_THINKING)) return \"legacy\";\n\n return \"none\";\n};\n\n/** Modern Anthropic + Fable/Mythos reject temperature/top_p/top_k entirely. */\nexport const anthropicSupportsSampling = (model: string) =>\n !matches(model, ANTHROPIC_NO_SAMPLING);\n\nexport const isOpenAIReasoningModel = (model: string) =>\n matches(model, OPENAI_REASONING);\n\n// effort → legacy thinking budget (tokens). Kept under typical max_tokens; the\n// Anthropic provider raises max_tokens to fit when thinking is enabled.\nconst EFFORT_BUDGET: Record<ReasoningEffort, number> = {\n none: 0,\n xhigh: 24576,\n high: 16384,\n low: 2048,\n max: 32768,\n medium: 8192,\n minimal: 1024,\n};\n\n// budget tokens → nearest effort (when a caller gave only budgetTokens but the\n// target model is effort-based).\nconst budgetToEffort = (budget: number): ReasoningEffort => {\n if (budget <= 2048) return \"low\";\n if (budget <= 8192) return \"medium\";\n if (budget <= 16384) return \"high\";\n\n return \"max\";\n};\n\n/** The portable effort a config asks for, deriving from budgetTokens if needed. */\nexport const resolveEffort = (\n reasoning: ReasoningConfig,\n): ReasoningEffort | null => {\n if (reasoning.effort) return reasoning.effort;\n if (typeof reasoning.budgetTokens === \"number\") {\n return budgetToEffort(reasoning.budgetTokens);\n }\n\n return null;\n};\n\n/** The budget a config asks for, deriving from effort if needed. */\nexport const resolveBudgetTokens = (\n reasoning: ReasoningConfig,\n): number | null => {\n if (typeof reasoning.budgetTokens === \"number\") return reasoning.budgetTokens;\n if (reasoning.effort) return EFFORT_BUDGET[reasoning.effort];\n\n return null;\n};\n\nconst clampEffort = (\n effort: ReasoningEffort,\n allowed: ReasoningEffort[],\n): ReasoningEffort => {\n if (allowed.includes(effort)) return effort;\n // Walk DOWN the order to the nearest allowed tier (never silently escalate).\n const idx = EFFORT_ORDER.indexOf(effort);\n for (let lower = idx - 1; lower >= 0; lower -= 1) {\n const candidate = EFFORT_ORDER[lower];\n if (candidate && allowed.includes(candidate)) return candidate;\n }\n\n return allowed[0] ?? effort;\n};\n\n/** Anthropic `output_config.effort` value for an effort-capable model, or null. */\nexport const anthropicEffortValue = (\n model: string,\n reasoning: ReasoningConfig,\n) => {\n const effort = resolveEffort(reasoning);\n if (!effort) return null;\n const known = getModelReasoning(\"anthropic\", model);\n if (known?.kind === \"effort\") return clampEffort(effort, [...known.efforts]);\n const allowed: ReasoningEffort[] = matches(model, ANTHROPIC_MAX_EFFORT)\n ? [\"low\", \"medium\", \"high\", \"max\"]\n : [\"low\", \"medium\", \"high\"];\n\n return clampEffort(effort, allowed);\n};\n\n/** OpenAI `reasoning.effort` value for a reasoning model, or null. */\nexport const openaiEffortValue = (\n model: string,\n reasoning: ReasoningConfig,\n) => {\n if (!isOpenAIReasoningModel(model)) return null;\n const effort = resolveEffort(reasoning);\n if (!effort) return null;\n const known = getModelReasoning(\"openai\", model);\n if (known) return clampEffort(effort, [...known.efforts]);\n const allowed: ReasoningEffort[] = matches(model, OPENAI_MINIMAL_EFFORT)\n ? [\"minimal\", \"low\", \"medium\", \"high\"]\n : [\"low\", \"medium\", \"high\"];\n // OpenAI has no `max`; clamp it to `high`.\n const requested = effort === \"max\" ? \"high\" : effort;\n\n return clampEffort(requested, allowed);\n};\n\n/** Provider-specific Chat Completions controls. Never send a guessed parameter. */\nexport const compatibleReasoningBody = (\n provider: string,\n model: string,\n reasoning?: ReasoningConfig,\n): Record<string, unknown> => {\n if (!reasoning) return {};\n const known = getModelReasoning(provider, model);\n const effort = resolveEffort(reasoning);\n if (!known || !effort) return {};\n if (!known.efforts.includes(effort))\n throw new Error(\n `Unsupported reasoning effort ${effort} for ${provider}:${model}`,\n );\n if (provider === \"alibaba\")\n return effort === \"none\"\n ? { enable_thinking: false }\n : {\n enable_thinking: true,\n thinking_budget: resolveBudgetTokens(reasoning),\n };\n if (provider === \"deepseek\")\n return effort === \"none\"\n ? { thinking: { type: \"disabled\" } }\n : { thinking: { type: \"enabled\" }, reasoning_effort: effort };\n return { reasoning_effort: effort };\n};\nexport const geminiThinkingConfig = (\n model: string,\n reasoning?: ReasoningConfig,\n): Record<string, unknown> | undefined => {\n if (!reasoning) return undefined;\n const profile = getModelReasoning(\"google\", model);\n const effort = resolveEffort(reasoning);\n if (!profile || !effort) return undefined;\n if (!profile.efforts.includes(effort))\n throw new Error(`Unsupported reasoning effort ${effort} for ${model}`);\n if (profile.kind === \"effort\") return { thinkingLevel: effort };\n const budgets: Partial<Record<ReasoningEffort, number>> = {\n none: 0,\n low: 1024,\n medium: 8192,\n high: 24576,\n };\n return { thinkingBudget: reasoning.budgetTokens ?? budgets[effort] };\n};\n",
|
|
11
|
-
"import type {\n AIChunk,\n AIProviderConfig,\n AIProviderContentBlock,\n AIProviderMessage,\n AIProviderStreamParams,\n AIProviderToolDefinition,\n AIUsage,\n} from \"../../../types/ai\";\nimport type {\n AnthropicConfig,\n AnthropicMessage,\n AnthropicRequestOptions,\n AnthropicSSEState,\n AnthropicServerTool,\n} from \"../../../types/anthropic\";\n\n// Opportunistic HTTP/2 multiplexing for outbound HTTPS (Bun 1.3.14+).\n// The `protocol` option lands in @types/bun 1.3.14; widen locally for now.\n// Hard-skip on non-HTTPS — Bun's h2 client throws HTTP2Unsupported on h2c.\ntype H2Init = RequestInit & { protocol?: \"http2\" };\nconst h2IfHttps = (url: string): H2Init =>\n url.startsWith(\"https://\") ? { protocol: \"http2\" } : {};\n\nimport {\n cacheModelLimits,\n capacityJson,\n positiveTokenLimit,\n inputTokenCount,\n} from \"../inputCapacity\";\nimport { instrumentAIProvider } from \"./instrumentation\";\nimport { ProviderError } from \"../errors/providerError\";\nimport {\n anthropicEffortValue,\n anthropicReasoningMode,\n anthropicSupportsSampling,\n resolveBudgetTokens,\n} from \"./reasoning\";\n\nconst DEFAULT_BASE_URL = \"https://api.anthropic.com\";\nconst API_VERSION = \"2023-06-01\";\nconst DEFAULT_MAX_TOKENS = 32000;\nconst EVENT_PREFIX_LENGTH = 7;\nconst DATA_PREFIX_LENGTH = 6;\n\nconst EMPTY_CHUNKS: AIChunk[] = [];\n\nconst isRecord = (val: unknown): val is Record<string, unknown> =>\n typeof val === \"object\" && val !== null;\n\nconst mapContentBlock = (block: AIProviderContentBlock) => {\n if (block.type === \"thinking\") {\n return {\n signature: block.signature,\n thinking: block.thinking,\n type: \"thinking\",\n };\n }\n\n if (block.type === \"image\") {\n return {\n source: block.source,\n type: \"image\",\n };\n }\n\n if (block.type === \"document\") {\n return {\n source: block.source,\n type: \"document\",\n };\n }\n\n if (block.type === \"tool_result\") {\n return {\n content: block.content,\n tool_use_id: block.tool_use_id,\n type: \"tool_result\",\n };\n }\n\n if (block.type === \"tool_use\") {\n if (block.providerData) return { ...block.providerData };\n return {\n id: block.id,\n input: block.input,\n name: block.name,\n type: \"tool_use\",\n };\n }\n\n if (block.type === \"audio\" || block.type === \"video\") {\n throw new Error(`Anthropic does not support ${block.type} content blocks`);\n }\n\n if (block.type === \"provider_data\") {\n return { ...block.data };\n }\n\n return { text: block.content, type: \"text\" };\n};\n\nconst mapMessage = (msg: AIProviderMessage): AnthropicMessage => ({\n content:\n typeof msg.content === \"string\"\n ? msg.content\n : msg.content.map(mapContentBlock),\n role: msg.role === \"system\" ? \"user\" : msg.role,\n});\n\nconst mapToolDefinition = (tool: AIProviderToolDefinition) => ({\n description: tool.description,\n input_schema: tool.input_schema,\n name: tool.name,\n});\n\nconst requestOptionsFor = (\n params: AIProviderStreamParams,\n): AnthropicRequestOptions => {\n const raw = params.providerOptions?.anthropic;\n if (raw === undefined) return {};\n if (!isRecord(raw)) {\n throw new Error(\"providerOptions.anthropic must be an object\");\n }\n if (raw.serverTools !== undefined && !Array.isArray(raw.serverTools)) {\n throw new Error(\"Anthropic serverTools must be an array\");\n }\n\n return raw as AnthropicRequestOptions;\n};\n\nconst assertDomains = (domains: readonly string[] | undefined) => {\n for (const domain of domains ?? []) {\n if (!domain || domain.includes(\"://\")) {\n throw new Error(\n \"Anthropic web-search domains must be non-empty bare domains without a scheme\",\n );\n }\n }\n};\n\nconst mapServerTool = (tool: AnthropicServerTool) => {\n const parameters = tool.parameters ?? {};\n if (parameters.allowedDomains && parameters.blockedDomains) {\n throw new Error(\n \"Anthropic web search accepts allowedDomains or blockedDomains, not both\",\n );\n }\n assertDomains(parameters.allowedDomains);\n assertDomains(parameters.blockedDomains);\n if (\n parameters.maxUses !== undefined &&\n (!Number.isInteger(parameters.maxUses) || parameters.maxUses < 1)\n ) {\n throw new Error(\"Anthropic web-search maxUses must be a positive integer\");\n }\n if (\n parameters.responseInclusion !== undefined &&\n parameters.version !== \"web_search_20260318\"\n ) {\n throw new Error(\n \"Anthropic web-search responseInclusion requires web_search_20260318\",\n );\n }\n const location = parameters.userLocation;\n if (\n location &&\n !location.city &&\n !location.country &&\n !location.region &&\n !location.timezone\n ) {\n throw new Error(\n \"Anthropic web-search userLocation requires a city, region, country, or timezone\",\n );\n }\n\n return {\n ...(parameters.allowedCallers\n ? { allowed_callers: [...parameters.allowedCallers] }\n : {}),\n ...(parameters.allowedDomains\n ? { allowed_domains: [...parameters.allowedDomains] }\n : {}),\n ...(parameters.blockedDomains\n ? { blocked_domains: [...parameters.blockedDomains] }\n : {}),\n ...(parameters.maxUses === undefined\n ? {}\n : { max_uses: parameters.maxUses }),\n name: \"web_search\",\n ...(parameters.responseInclusion\n ? { response_inclusion: parameters.responseInclusion }\n : {}),\n type: parameters.version ?? \"web_search_20250305\",\n ...(location\n ? {\n user_location: {\n ...(location.city ? { city: location.city } : {}),\n ...(location.country ? { country: location.country } : {}),\n ...(location.region ? { region: location.region } : {}),\n ...(location.timezone ? { timezone: location.timezone } : {}),\n type: \"approximate\",\n },\n }\n : {}),\n };\n};\n\n// Attach an ephemeral cache breakpoint to the final content block of a message.\n// `content` may be a bare string (collapse to a single cached text block) or an\n// array of blocks (clone the last block and tag it). Returns a new message; the\n// input is left untouched.\nconst cacheLastContentBlock = (msg: AnthropicMessage): AnthropicMessage => {\n const cacheControl = { type: \"ephemeral\" };\n\n if (typeof msg.content === \"string\") {\n return {\n content: [\n { cache_control: cacheControl, text: msg.content, type: \"text\" },\n ],\n role: msg.role,\n };\n }\n\n if (msg.content.length === 0) return msg;\n\n const blocks = [...msg.content];\n blocks[blocks.length - 1] = {\n ...blocks[blocks.length - 1],\n cache_control: cacheControl,\n };\n\n return { content: blocks, role: msg.role };\n};\n\nconst buildRequestBody = (\n params: AIProviderStreamParams,\n configuredMax: number,\n configCaching: boolean,\n) => {\n // Per-call override wins over the provider default, so a caller can opt a\n // known one-shot out of the 1.25x cache-write (or force caching on).\n const caching = params.promptCaching ?? configCaching;\n // The system block specifically can be overridden by the legacy\n // `cacheSystemPrompt` (tri-state: true/false force it; undefined follows the\n // effective `caching`).\n const cacheSystem = params.cacheSystemPrompt ?? caching;\n const options = requestOptionsFor(params);\n\n const messages: AnthropicMessage[] = params.messages\n .filter((msg) => msg.role !== \"system\")\n .map(mapMessage);\n\n // Rolling prefix breakpoint: when there is prior history, mark the final\n // content block of the last message so the next turn reads this turn's\n // prefix from cache. Skipped on the first turn (nothing to reuse yet).\n if (caching && messages.length > 1) {\n const last = messages[messages.length - 1];\n if (last) {\n messages[messages.length - 1] = cacheLastContentBlock(last);\n }\n }\n\n // Per-call `params.maxTokens` wins over the per-provider configured default.\n const max =\n typeof params.maxTokens === \"number\" ? params.maxTokens : configuredMax;\n\n const body: Record<string, unknown> = {\n max_tokens: max,\n messages,\n model: params.model,\n stream: true,\n };\n\n if (params.systemPrompt) {\n body.system = cacheSystem\n ? [\n {\n cache_control: { type: \"ephemeral\" },\n text: params.systemPrompt,\n type: \"text\",\n },\n ]\n : params.systemPrompt;\n }\n\n const clientTools: Array<Record<string, unknown>> =\n params.tools?.map(mapToolDefinition) ?? [];\n if (clientTools.length > 0) {\n // Tool schemas are the most stable prefix — cache them whenever enabled.\n if (caching) {\n clientTools[clientTools.length - 1] = {\n ...clientTools[clientTools.length - 1],\n cache_control: { type: \"ephemeral\" },\n };\n }\n }\n const serverTools = (options.serverTools ?? []).map(mapServerTool);\n const tools = [...clientTools, ...serverTools];\n if (tools.length > 0) {\n body.tools = tools;\n if (params.toolChoice === \"auto\" || params.toolChoice === \"none\") {\n body.tool_choice = { type: params.toolChoice };\n } else if (params.toolChoice === \"required\") {\n body.tool_choice = { type: \"any\" };\n } else if (params.toolChoice && typeof params.toolChoice === \"object\") {\n body.tool_choice = { name: params.toolChoice.name, type: \"tool\" };\n }\n }\n\n if (params.stopSequences && params.stopSequences.length > 0) {\n body.stop_sequences = params.stopSequences;\n }\n\n const mode =\n params.reasoning && params.reasoning.effort !== \"none\"\n ? anthropicReasoningMode(params.model)\n : \"none\";\n if (params.reasoning?.effort === \"none\") body.thinking = { type: \"disabled\" };\n const thinkingActive = mode !== \"none\";\n\n // Sampling params (temperature/top_p) are rejected outright by Opus 4.7/4.8 and\n // Fable/Mythos, and conflict with thinking on the models that do accept them —\n // so only send them when the model allows sampling AND thinking is off.\n if (!thinkingActive && anthropicSupportsSampling(params.model)) {\n if (typeof params.temperature === \"number\") {\n body.temperature = params.temperature;\n }\n if (typeof params.topP === \"number\") body.top_p = params.topP;\n }\n\n if (mode === \"effort\" || mode === \"adaptive\") {\n body.thinking = { type: \"adaptive\" };\n if (mode === \"effort\" && params.reasoning) {\n const effort = anthropicEffortValue(params.model, params.reasoning);\n if (effort) body.output_config = { effort };\n }\n } else if (mode === \"legacy\" && params.reasoning) {\n const budget = resolveBudgetTokens(params.reasoning);\n if (budget) {\n body.thinking = { budget_tokens: budget, type: \"enabled\" };\n // Extended thinking requires headroom: budget tokens + room to answer.\n body.max_tokens = Math.max(max, budget + max);\n }\n }\n\n return body;\n};\n\nconst classifyLine = (line: string) => {\n if (line.startsWith(\"event: \")) {\n return {\n field: \"event\" as const,\n value: line.slice(EVENT_PREFIX_LENGTH),\n };\n }\n\n if (line.startsWith(\"data: \")) {\n return {\n field: \"data\" as const,\n value: line.slice(DATA_PREFIX_LENGTH),\n };\n }\n\n return undefined;\n};\n\nconst applyClassified = (\n acc: { eventData: string; eventType: string },\n classified: { field: \"event\" | \"data\"; value: string } | undefined,\n) => {\n if (!classified) {\n return acc;\n }\n\n if (classified.field === \"event\") {\n return { eventData: acc.eventData, eventType: classified.value };\n }\n\n return { eventData: classified.value, eventType: acc.eventType };\n};\n\nconst parseEventLines = (event: string) =>\n event\n .split(\"\\n\")\n .reduce((acc, line) => applyClassified(acc, classifyLine(line)), {\n eventData: \"\",\n eventType: \"\",\n });\n\nconst safeParse = (text: string) => {\n try {\n const result: unknown = JSON.parse(text);\n\n return result;\n } catch {\n return undefined;\n }\n};\n\nconst tryParseJson = (text: string) => {\n const result = safeParse(text);\n\n if (isRecord(result)) {\n return result;\n }\n\n return undefined;\n};\n\nconst getRecord = (obj: Record<string, unknown>, key: string) => {\n const val = obj[key];\n\n if (isRecord(val)) {\n return val;\n }\n\n return undefined;\n};\n\nconst getString = (obj: Record<string, unknown>, key: string) => {\n const val = obj[key];\n\n if (typeof val === \"string\") {\n return val;\n }\n\n return \"\";\n};\n\nconst getNumber = (obj: Record<string, unknown>, key: string) => {\n const val = obj[key];\n\n if (typeof val === \"number\") {\n return val;\n }\n\n return 0;\n};\n\nconst handleContentBlockStart = (\n parsed: Record<string, unknown>,\n state: AnthropicSSEState,\n) => {\n const block = getRecord(parsed, \"content_block\");\n\n if (block && block.type === \"tool_use\") {\n state.currentToolId = getString(block, \"id\");\n state.currentToolName = getString(block, \"name\");\n state.toolInputJson = \"\";\n state.isThinkingBlock = false;\n state.currentProviderBlock = undefined;\n } else if (block && block.type === \"thinking\") {\n state.isThinkingBlock = true;\n state.thinkingSignature = \"\";\n state.currentProviderBlock = undefined;\n } else {\n state.isThinkingBlock = false;\n state.currentProviderBlock =\n block && block.type !== \"text\" ? { ...block } : undefined;\n state.providerBlockInputJson = \"\";\n }\n};\n\nconst handleContentBlockDelta = (\n parsed: Record<string, unknown>,\n state: AnthropicSSEState,\n) => {\n const delta = getRecord(parsed, \"delta\");\n\n if (!delta) {\n return undefined;\n }\n\n if (delta.type === \"thinking_delta\") {\n return {\n content: getString(delta, \"thinking\"),\n type: \"thinking\",\n } satisfies AIChunk;\n }\n\n if (delta.type === \"text_delta\") {\n return {\n content: getString(delta, \"text\"),\n type: \"text\",\n } satisfies AIChunk;\n }\n\n if (delta.type === \"citations_delta\") {\n const citation = getRecord(delta, \"citation\");\n if (\n citation?.type === \"web_search_result_location\" &&\n getString(citation, \"url\")\n ) {\n return {\n content: getString(citation, \"cited_text\") || undefined,\n title: getString(citation, \"title\") || undefined,\n type: \"citation\",\n url: getString(citation, \"url\"),\n } satisfies AIChunk;\n }\n }\n\n if (delta.type === \"input_json_delta\") {\n if (state.currentProviderBlock) {\n state.providerBlockInputJson += getString(delta, \"partial_json\");\n } else {\n state.toolInputJson += getString(delta, \"partial_json\");\n }\n }\n\n if (delta.type === \"signature_delta\") {\n state.thinkingSignature += getString(delta, \"signature\");\n }\n\n return undefined;\n};\n\nconst handleContentBlockStop = (state: AnthropicSSEState) => {\n // Emit thinking signature when thinking block completes\n if (state.isThinkingBlock && state.thinkingSignature) {\n state.isThinkingBlock = false;\n const signature = state.thinkingSignature;\n state.thinkingSignature = \"\";\n\n return {\n content: \"\",\n signature,\n type: \"thinking\",\n } satisfies AIChunk;\n }\n\n if (state.currentProviderBlock) {\n const data = { ...state.currentProviderBlock };\n if (state.providerBlockInputJson) {\n data.input =\n tryParseJson(state.providerBlockInputJson) ??\n state.providerBlockInputJson;\n }\n state.currentProviderBlock = undefined;\n state.providerBlockInputJson = \"\";\n return {\n data,\n provider: state.providerName,\n type: \"provider_event\",\n } satisfies AIChunk;\n }\n\n if (!state.currentToolId) {\n return undefined;\n }\n\n const input = tryParseJson(state.toolInputJson) ?? state.toolInputJson;\n\n const chunk: AIChunk = {\n id: state.currentToolId,\n input,\n name: state.currentToolName,\n type: \"tool_use\",\n };\n\n state.currentToolId = \"\";\n state.currentToolName = \"\";\n state.toolInputJson = \"\";\n\n return chunk;\n};\n\nconst extractUsage = (\n usageRecord: Record<string, unknown> | undefined,\n existingUsage: AIUsage | undefined,\n) => {\n if (!usageRecord) {\n return existingUsage;\n }\n\n const normalized: AIUsage = {\n cacheReadInputTokens:\n getNumber(usageRecord, \"cache_read_input_tokens\") ||\n existingUsage?.cacheReadInputTokens ||\n 0,\n cacheWriteInputTokens:\n getNumber(usageRecord, \"cache_creation_input_tokens\") ||\n existingUsage?.cacheWriteInputTokens ||\n 0,\n inputTokens:\n getNumber(usageRecord, \"input_tokens\") || existingUsage?.inputTokens || 0,\n outputTokens:\n getNumber(usageRecord, \"output_tokens\") ||\n existingUsage?.outputTokens ||\n 0,\n costCredits: getNumber(usageRecord, \"cost\") || existingUsage?.costCredits,\n reasoningTokens:\n getNumber(usageRecord, \"reasoning_tokens\") ||\n existingUsage?.reasoningTokens,\n upstreamInferenceCostCredits:\n getNumber(\n getRecord(usageRecord, \"cost_details\") ?? {},\n \"upstream_inference_cost\",\n ) || existingUsage?.upstreamInferenceCostCredits,\n };\n const serverToolUse = getRecord(usageRecord, \"server_tool_use\");\n if (serverToolUse) {\n normalized.serverToolUse = Object.fromEntries(\n Object.entries(serverToolUse).filter(\n (entry): entry is [string, number] => typeof entry[1] === \"number\",\n ),\n );\n }\n\n return normalized;\n};\n\nconst mergeMetadata = (\n source: Record<string, unknown>,\n state: AnthropicSSEState,\n) => {\n const providerMetadata = getRecord(source, \"openrouter_metadata\");\n const generationId = getString(source, \"id\") || undefined;\n const model = getString(source, \"model\") || undefined;\n const provider = getString(source, \"provider\") || undefined;\n const serviceTier = getString(source, \"service_tier\") || undefined;\n if (!providerMetadata && !generationId && !model && !provider && !serviceTier)\n return;\n state.metadata = {\n ...state.metadata,\n generationId: generationId ?? state.metadata?.generationId,\n model: model ?? state.metadata?.model,\n provider: provider ?? state.metadata?.provider,\n providerMetadata: {\n ...state.metadata?.providerMetadata,\n ...providerMetadata,\n },\n serviceTier: serviceTier ?? state.metadata?.serviceTier,\n };\n};\n\nconst handleMessageDelta = (\n parsed: Record<string, unknown>,\n state: AnthropicSSEState,\n) => {\n const deltaUsage = getRecord(parsed, \"usage\");\n state.usage = extractUsage(deltaUsage, state.usage);\n\n const delta = getRecord(parsed, \"delta\");\n const stopReason = delta ? getString(delta, \"stop_reason\") : \"\";\n if (stopReason) state.stopReason = stopReason;\n};\n\nconst handleMessageStart = (\n parsed: Record<string, unknown>,\n state: AnthropicSSEState,\n) => {\n const message = getRecord(parsed, \"message\");\n\n if (!message) {\n return;\n }\n\n const startUsage = getRecord(message, \"usage\");\n state.usage = extractUsage(startUsage, state.usage);\n mergeMetadata(message, state);\n};\n\nconst handleError = (\n parsed: Record<string, unknown>,\n state: AnthropicSSEState,\n) => {\n const error = getRecord(parsed, \"error\");\n const errorMessage = error ? getString(error, \"message\") : \"\";\n const nativeErrorType = error ? getString(error, \"type\") : \"\";\n const errorType = error\n ? getString(error, \"error_type\") || nativeErrorType\n : \"\";\n\n // Mid-stream error events (e.g. \"overloaded_error\") — overloaded/rate-limit\n // types are retryable; everything else is treated as a hard failure.\n const retryable =\n errorType === \"provider_overloaded\" ||\n errorType === \"rate_limit_exceeded\" ||\n errorType === \"provider_unavailable\" ||\n errorType === \"server\" ||\n nativeErrorType === \"overloaded_error\" ||\n nativeErrorType === \"rate_limit_error\" ||\n nativeErrorType === \"api_error\";\n\n throw new ProviderError({\n message: errorMessage || \"Anthropic API error\",\n metadata: error,\n provider: state.providerName,\n retryable,\n type: errorType || null,\n });\n};\n\nconst processEvent = (\n eventType: string,\n parsed: Record<string, unknown>,\n state: AnthropicSSEState,\n) => {\n switch (eventType) {\n case \"content_block_start\": {\n handleContentBlockStart(parsed, state);\n\n return undefined;\n }\n\n case \"content_block_delta\": {\n return handleContentBlockDelta(parsed, state);\n }\n\n case \"content_block_stop\": {\n return handleContentBlockStop(state);\n }\n\n case \"message_delta\": {\n handleMessageDelta(parsed, state);\n mergeMetadata(parsed, state);\n\n return undefined;\n }\n\n case \"message_start\": {\n handleMessageStart(parsed, state);\n\n return undefined;\n }\n\n case \"message_stop\": {\n mergeMetadata(parsed, state);\n return {\n stopReason: state.stopReason,\n metadata: state.metadata,\n type: \"done\" as const,\n usage: state.usage,\n };\n }\n\n case \"error\": {\n handleError(parsed, state);\n\n return undefined;\n }\n\n default: {\n return undefined;\n }\n }\n};\n\nconst processSingleEvent = (event: string, state: AnthropicSSEState) => {\n if (!event.trim()) {\n return undefined;\n }\n\n const { eventData, eventType } = parseEventLines(event);\n\n if (!eventData) {\n return undefined;\n }\n\n const parsed = tryParseJson(eventData);\n\n if (!parsed) {\n return undefined;\n }\n\n return processEvent(eventType, parsed, state);\n};\n\nconst collectChunk = (event: string, state: AnthropicSSEState) => {\n const chunk = processSingleEvent(event, state);\n\n return chunk ? [chunk] : [];\n};\n\nconst processBufferedEvents = (\n eventsText: string,\n state: AnthropicSSEState,\n) => {\n const events = eventsText.split(\"\\n\\n\");\n state.buffer = events.pop() ?? \"\";\n\n return events.flatMap((event) => collectChunk(event, state));\n};\n\nconst readNextChunks = async (\n reader: ReadableStreamDefaultReader<Uint8Array>,\n decoder: TextDecoder,\n state: AnthropicSSEState,\n signal?: AbortSignal,\n) => {\n if (signal?.aborted) {\n return { chunks: EMPTY_CHUNKS, done: true };\n }\n\n const { done, value } = await reader.read();\n\n if (done) {\n return { chunks: EMPTY_CHUNKS, done: true };\n }\n\n const rawText = state.buffer + decoder.decode(value, { stream: true });\n const chunks = processBufferedEvents(rawText, state);\n\n return { chunks, done: false };\n};\n\nconst findDoneChunk = (chunks: AIChunk[]) =>\n chunks.findIndex((c) => c.type === \"done\");\n\nconst sseStreamLoop = async (\n reader: ReadableStreamDefaultReader<Uint8Array>,\n decoder: TextDecoder,\n state: AnthropicSSEState,\n signal?: AbortSignal,\n) => {\n const result = await readNextChunks(reader, decoder, state, signal);\n\n if (result.done) {\n return { chunks: result.chunks, finished: true };\n }\n\n const doneIdx = findDoneChunk(result.chunks);\n\n if (doneIdx >= 0) {\n return { chunks: result.chunks.slice(0, doneIdx + 1), finished: true };\n }\n\n return { chunks: result.chunks, finished: false };\n};\n\n// eslint-disable-next-line func-style\nasync function* streamChunks(\n reader: ReadableStreamDefaultReader<Uint8Array>,\n decoder: TextDecoder,\n state: AnthropicSSEState,\n signal?: AbortSignal,\n) {\n let finished = false;\n\n while (!finished) {\n // eslint-disable-next-line no-await-in-loop\n const result = await sseStreamLoop(reader, decoder, state, signal);\n ({ finished } = result);\n yield* result.chunks;\n }\n}\n\n// eslint-disable-next-line func-style\nasync function* parseSSEStream(\n body: ReadableStream<Uint8Array>,\n providerName: string,\n signal?: AbortSignal,\n) {\n const reader = body.getReader();\n const decoder = new TextDecoder();\n\n const state: AnthropicSSEState = {\n buffer: \"\",\n currentToolId: \"\",\n currentToolName: \"\",\n isThinkingBlock: false,\n stopReason: \"\",\n thinkingSignature: \"\",\n toolInputJson: \"\",\n usage: undefined,\n providerName,\n providerBlockInputJson: \"\",\n };\n\n try {\n yield* streamChunks(reader, decoder, state, signal);\n } finally {\n reader.releaseLock();\n }\n}\n\nconst fetchAndStream = async function* (\n baseUrl: string,\n config: AnthropicConfig,\n params: AIProviderStreamParams,\n configuredMax: number,\n promptCaching: boolean,\n providerName: string,\n) {\n const builtBody = buildRequestBody(params, configuredMax, promptCaching);\n const body = config.transformRequestBody\n ? config.transformRequestBody(builtBody, params)\n : builtBody;\n\n const target = `${baseUrl}/v1/messages`;\n const fetchImpl = config.fetch ?? fetch;\n const token = config.tokenSource\n ? await Promise.resolve(config.tokenSource())\n : config.apiKey!;\n const suppliedHeaders =\n typeof config.headers === \"function\"\n ? await config.headers(params)\n : (config.headers ?? {});\n const requestHeaders = new Headers(suppliedHeaders);\n requestHeaders.set(\"Content-Type\", \"application/json\");\n if (config.authStyle === \"bearer\") {\n requestHeaders.set(\"Authorization\", `Bearer ${token}`);\n } else {\n requestHeaders.set(\"anthropic-version\", API_VERSION);\n requestHeaders.set(\"x-api-key\", token);\n }\n const response = await fetchImpl(target, {\n ...h2IfHttps(target),\n body: JSON.stringify(body),\n headers: requestHeaders,\n method: \"POST\",\n signal: params.signal,\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n\n throw ProviderError.fromResponse(providerName, response.status, errorText);\n }\n\n if (!response.body) {\n throw new ProviderError({\n message: `${providerName} Messages API returned no response body`,\n provider: providerName,\n retryable: true,\n });\n }\n\n yield* parseSSEStream(response.body, providerName, params.signal);\n};\n\nexport const anthropic = (config: AnthropicConfig): AIProviderConfig => {\n if (!config.apiKey && !config.tokenSource)\n throw new Error(\"anthropic() requires either apiKey or tokenSource\");\n const baseUrl = config.baseUrl ?? DEFAULT_BASE_URL;\n const configuredMax = config.maxTokens ?? DEFAULT_MAX_TOKENS;\n const promptCaching = config.promptCaching ?? true;\n const providerName = config.providerName ?? \"anthropic\";\n\n const capacityRequest = async (\n params: AIProviderStreamParams,\n path: string,\n body?: Record<string, unknown>,\n ) => {\n const token = config.tokenSource\n ? await config.tokenSource()\n : config.apiKey!;\n const headers = new Headers(\n typeof config.headers === \"function\"\n ? await config.headers(params)\n : config.headers,\n );\n headers.set(\"Content-Type\", \"application/json\");\n if (config.authStyle === \"bearer\")\n headers.set(\"Authorization\", `Bearer ${token}`);\n else {\n headers.set(\"anthropic-version\", API_VERSION);\n headers.set(\"x-api-key\", token);\n }\n return capacityJson(\n await (config.fetch ?? fetch)(`${baseUrl}${path}`, {\n method: body ? \"POST\" : \"GET\",\n headers,\n body: body ? JSON.stringify(body) : undefined,\n signal: params.signal\n ? AbortSignal.any([params.signal, AbortSignal.timeout(15_000)])\n : AbortSignal.timeout(15_000),\n }),\n );\n };\n // Anthropic's token-counting guide excludes hosted search/fetch/code/tool-search,\n // even though the generated API schema lists them. Count the supported caller\n // payload only; generation retains the full body and validates hosted context.\n const countingRequest = (params: AIProviderStreamParams) => {\n const built = buildRequestBody(params, configuredMax, promptCaching);\n const body = config.transformRequestBody\n ? config.transformRequestBody(built, params)\n : built;\n const counted: Record<string, unknown> = {};\n for (const key of [\n \"model\",\n \"messages\",\n \"system\",\n \"tools\",\n \"tool_choice\",\n \"thinking\",\n ])\n if (body[key] !== undefined) counted[key] = body[key];\n const tools = Array.isArray(body.tools) ? body.tools : [];\n const hosted = tools.filter(\n (tool) =>\n isRecord(tool) &&\n typeof tool.type === \"string\" &&\n /^(web_search_|web_fetch_|code_execution_|bash_code_execution_|text_editor_code_execution_|tool_search_tool_)/u.test(\n tool.type,\n ),\n );\n const scope =\n hosted.length > 0 || body.mcp_servers !== undefined\n ? (\"caller-input\" as const)\n : (\"request\" as const);\n if (hosted.length > 0) {\n const clientTools = tools.filter((tool) => !hosted.includes(tool));\n if (clientTools.length) counted.tools = clientTools;\n else delete counted.tools;\n const choice = counted.tool_choice;\n if (\n !clientTools.length ||\n (isRecord(choice) &&\n choice.type === \"tool\" &&\n hosted.some((tool) => isRecord(tool) && tool.name === choice.name))\n )\n delete counted.tool_choice;\n }\n return { counted, scope };\n };\n const inputCapacity = {\n outputTokens: (params: AIProviderStreamParams) => {\n const built = buildRequestBody(params, configuredMax, promptCaching);\n const body = config.transformRequestBody\n ? config.transformRequestBody(built, params)\n : built;\n return positiveTokenLimit(body.max_tokens);\n },\n getLimits: cacheModelLimits(\n async (params) => {\n const data = await capacityRequest(\n params,\n `/v1/models/${encodeURIComponent(params.model)}`,\n );\n const context = positiveTokenLimit(data.max_input_tokens);\n return {\n maxInputTokens: context,\n contextWindowTokens: context,\n maxOutputTokens: positiveTokenLimit(data.max_tokens),\n };\n },\n config.tokenSource || typeof config.headers === \"function\" ? 0 : 300_000,\n ),\n countScope: (params: AIProviderStreamParams) =>\n countingRequest(params).scope,\n countTokens: async (params: AIProviderStreamParams) => {\n const { counted } = countingRequest(params);\n return inputTokenCount(\n (await capacityRequest(params, \"/v1/messages/count_tokens\", counted))\n .input_tokens,\n );\n },\n };\n return instrumentAIProvider(\n {\n inputCapacity,\n stream: (params: AIProviderStreamParams) =>\n fetchAndStream(\n baseUrl,\n config,\n params,\n configuredMax,\n promptCaching,\n providerName,\n ),\n },\n providerName,\n );\n};\n"
|
|
11
|
+
"import type {\n AIChunk,\n AIProviderConfig,\n AIProviderContentBlock,\n AIProviderMessage,\n AIProviderStreamParams,\n AIProviderToolDefinition,\n AIUsage,\n} from \"../../../types/ai\";\nimport type {\n AnthropicConfig,\n AnthropicMessage,\n AnthropicRequestOptions,\n AnthropicSSEState,\n AnthropicServerTool,\n} from \"../../../types/anthropic\";\n\n// Opportunistic HTTP/2 multiplexing for outbound HTTPS (Bun 1.3.14+).\n// The `protocol` option lands in @types/bun 1.3.14; widen locally for now.\n// Hard-skip on non-HTTPS — Bun's h2 client throws HTTP2Unsupported on h2c.\ntype H2Init = RequestInit & { protocol?: \"http2\" };\nconst h2IfHttps = (url: string): H2Init =>\n url.startsWith(\"https://\") ? { protocol: \"http2\" } : {};\n\nimport {\n cacheModelLimits,\n capacityJson,\n positiveTokenLimit,\n inputTokenCount,\n} from \"../inputCapacity\";\nimport { instrumentAIProvider } from \"./instrumentation\";\nimport { ProviderError } from \"../errors/providerError\";\nimport {\n anthropicEffortValue,\n anthropicReasoningMode,\n anthropicSupportsSampling,\n resolveBudgetTokens,\n} from \"./reasoning\";\n\nconst DEFAULT_BASE_URL = \"https://api.anthropic.com\";\nconst API_VERSION = \"2023-06-01\";\nconst DEFAULT_MAX_TOKENS = 32000;\nconst EVENT_PREFIX_LENGTH = 7;\nconst DATA_PREFIX_LENGTH = 6;\n\nconst EMPTY_CHUNKS: AIChunk[] = [];\n\nconst isRecord = (val: unknown): val is Record<string, unknown> =>\n typeof val === \"object\" && val !== null;\n\nconst mapContentBlock = (block: AIProviderContentBlock) => {\n if (block.type === \"thinking\") {\n return {\n signature: block.signature,\n thinking: block.thinking,\n type: \"thinking\",\n };\n }\n\n if (block.type === \"image\") {\n return {\n source: block.source,\n type: \"image\",\n };\n }\n\n if (block.type === \"document\") {\n return {\n source: block.source,\n type: \"document\",\n };\n }\n\n if (block.type === \"tool_result\") {\n return {\n content: block.content,\n tool_use_id: block.tool_use_id,\n type: \"tool_result\",\n };\n }\n\n if (block.type === \"tool_use\") {\n if (block.providerData) return { ...block.providerData };\n return {\n id: block.id,\n input: block.input,\n name: block.name,\n type: \"tool_use\",\n };\n }\n\n if (block.type === \"audio\" || block.type === \"video\") {\n throw new Error(`Anthropic does not support ${block.type} content blocks`);\n }\n\n if (block.type === \"provider_data\") {\n return { ...block.data };\n }\n\n return { text: block.content, type: \"text\" };\n};\n\nconst mapMessage = (msg: AIProviderMessage): AnthropicMessage => ({\n content:\n typeof msg.content === \"string\"\n ? msg.content\n : msg.content.map(mapContentBlock),\n role: msg.role === \"system\" ? \"user\" : msg.role,\n});\n\nconst mapToolDefinition = (tool: AIProviderToolDefinition) => ({\n description: tool.description,\n input_schema: tool.input_schema,\n name: tool.name,\n});\n\nconst requestOptionsFor = (\n params: AIProviderStreamParams,\n): AnthropicRequestOptions => {\n const raw = params.providerOptions?.anthropic;\n if (raw === undefined) return {};\n if (!isRecord(raw)) {\n throw new Error(\"providerOptions.anthropic must be an object\");\n }\n if (raw.serverTools !== undefined && !Array.isArray(raw.serverTools)) {\n throw new Error(\"Anthropic serverTools must be an array\");\n }\n\n return raw as AnthropicRequestOptions;\n};\n\nconst assertDomains = (domains: readonly string[] | undefined) => {\n for (const domain of domains ?? []) {\n if (!domain || domain.includes(\"://\")) {\n throw new Error(\n \"Anthropic web-search domains must be non-empty bare domains without a scheme\",\n );\n }\n }\n};\n\nconst mapServerTool = (tool: AnthropicServerTool) => {\n const parameters = tool.parameters ?? {};\n if (parameters.allowedDomains && parameters.blockedDomains) {\n throw new Error(\n \"Anthropic web search accepts allowedDomains or blockedDomains, not both\",\n );\n }\n assertDomains(parameters.allowedDomains);\n assertDomains(parameters.blockedDomains);\n if (\n parameters.maxUses !== undefined &&\n (!Number.isInteger(parameters.maxUses) || parameters.maxUses < 1)\n ) {\n throw new Error(\"Anthropic web-search maxUses must be a positive integer\");\n }\n if (\n parameters.responseInclusion !== undefined &&\n parameters.version !== \"web_search_20260318\"\n ) {\n throw new Error(\n \"Anthropic web-search responseInclusion requires web_search_20260318\",\n );\n }\n const location = parameters.userLocation;\n if (\n location &&\n !location.city &&\n !location.country &&\n !location.region &&\n !location.timezone\n ) {\n throw new Error(\n \"Anthropic web-search userLocation requires a city, region, country, or timezone\",\n );\n }\n\n return {\n ...(parameters.allowedCallers\n ? { allowed_callers: [...parameters.allowedCallers] }\n : {}),\n ...(parameters.allowedDomains\n ? { allowed_domains: [...parameters.allowedDomains] }\n : {}),\n ...(parameters.blockedDomains\n ? { blocked_domains: [...parameters.blockedDomains] }\n : {}),\n ...(parameters.maxUses === undefined\n ? {}\n : { max_uses: parameters.maxUses }),\n name: \"web_search\",\n ...(parameters.responseInclusion\n ? { response_inclusion: parameters.responseInclusion }\n : {}),\n type: parameters.version ?? \"web_search_20250305\",\n ...(location\n ? {\n user_location: {\n ...(location.city ? { city: location.city } : {}),\n ...(location.country ? { country: location.country } : {}),\n ...(location.region ? { region: location.region } : {}),\n ...(location.timezone ? { timezone: location.timezone } : {}),\n type: \"approximate\",\n },\n }\n : {}),\n };\n};\n\n// Attach an ephemeral cache breakpoint to the final content block of a message.\n// `content` may be a bare string (collapse to a single cached text block) or an\n// array of blocks (clone the last block and tag it). Returns a new message; the\n// input is left untouched.\nconst cacheLastContentBlock = (msg: AnthropicMessage): AnthropicMessage => {\n const cacheControl = { type: \"ephemeral\" };\n\n if (typeof msg.content === \"string\") {\n return {\n content: [\n { cache_control: cacheControl, text: msg.content, type: \"text\" },\n ],\n role: msg.role,\n };\n }\n\n if (msg.content.length === 0) return msg;\n\n const blocks = [...msg.content];\n blocks[blocks.length - 1] = {\n ...blocks[blocks.length - 1],\n cache_control: cacheControl,\n };\n\n return { content: blocks, role: msg.role };\n};\n\nconst buildRequestBody = (\n params: AIProviderStreamParams,\n configuredMax: number,\n configCaching: boolean,\n) => {\n // Per-call override wins over the provider default, so a caller can opt a\n // known one-shot out of the 1.25x cache-write (or force caching on).\n const caching = params.promptCaching ?? configCaching;\n // The system block specifically can be overridden by the legacy\n // `cacheSystemPrompt` (tri-state: true/false force it; undefined follows the\n // effective `caching`).\n const cacheSystem = params.cacheSystemPrompt ?? caching;\n const options = requestOptionsFor(params);\n\n const messages: AnthropicMessage[] = params.messages\n .filter((msg) => msg.role !== \"system\")\n .map(mapMessage);\n\n // Rolling prefix breakpoints: when there is prior history, mark the final\n // content block of the last message so the next turn reads this turn's\n // prefix from cache. Skipped on the first turn (nothing to reuse yet).\n //\n // Also mark the latest earlier user message: in an agent loop that is where\n // the previous request's breakpoint sat, so this request finds that entry\n // by exact position. Relying on the API's automatic lookback alone missed\n // it intermittently: a production Studio build re-wrote its whole history\n // (40-53k tokens) on 7 of 48 requests while the identical prefix was\n // cached, and those writes were half the build's cost. Tools, system and\n // these two keep within Anthropic's limit of four breakpoints.\n if (caching && messages.length > 1) {\n const lastIndex = messages.length - 1;\n const last = messages[lastIndex];\n if (last) {\n messages[lastIndex] = cacheLastContentBlock(last);\n }\n const previousUserIndex = messages.findLastIndex(\n (message, index) => index < lastIndex - 1 && message.role === \"user\",\n );\n const previous = messages[previousUserIndex];\n if (previous) {\n messages[previousUserIndex] = cacheLastContentBlock(previous);\n }\n }\n\n // Per-call `params.maxTokens` wins over the per-provider configured default.\n const max =\n typeof params.maxTokens === \"number\" ? params.maxTokens : configuredMax;\n\n const body: Record<string, unknown> = {\n max_tokens: max,\n messages,\n model: params.model,\n stream: true,\n };\n\n if (params.systemPrompt) {\n body.system = cacheSystem\n ? [\n {\n cache_control: { type: \"ephemeral\" },\n text: params.systemPrompt,\n type: \"text\",\n },\n ]\n : params.systemPrompt;\n }\n\n const clientTools: Array<Record<string, unknown>> =\n params.tools?.map(mapToolDefinition) ?? [];\n if (clientTools.length > 0) {\n // Tool schemas are the most stable prefix — cache them whenever enabled.\n if (caching) {\n clientTools[clientTools.length - 1] = {\n ...clientTools[clientTools.length - 1],\n cache_control: { type: \"ephemeral\" },\n };\n }\n }\n const serverTools = (options.serverTools ?? []).map(mapServerTool);\n const tools = [...clientTools, ...serverTools];\n if (tools.length > 0) {\n body.tools = tools;\n if (params.toolChoice === \"auto\" || params.toolChoice === \"none\") {\n body.tool_choice = { type: params.toolChoice };\n } else if (params.toolChoice === \"required\") {\n body.tool_choice = { type: \"any\" };\n } else if (params.toolChoice && typeof params.toolChoice === \"object\") {\n body.tool_choice = { name: params.toolChoice.name, type: \"tool\" };\n }\n }\n\n if (params.stopSequences && params.stopSequences.length > 0) {\n body.stop_sequences = params.stopSequences;\n }\n\n const mode =\n params.reasoning && params.reasoning.effort !== \"none\"\n ? anthropicReasoningMode(params.model)\n : \"none\";\n if (params.reasoning?.effort === \"none\") body.thinking = { type: \"disabled\" };\n const thinkingActive = mode !== \"none\";\n\n // Sampling params (temperature/top_p) are rejected outright by Opus 4.7/4.8 and\n // Fable/Mythos, and conflict with thinking on the models that do accept them —\n // so only send them when the model allows sampling AND thinking is off.\n if (!thinkingActive && anthropicSupportsSampling(params.model)) {\n if (typeof params.temperature === \"number\") {\n body.temperature = params.temperature;\n }\n if (typeof params.topP === \"number\") body.top_p = params.topP;\n }\n\n if (mode === \"effort\" || mode === \"adaptive\") {\n body.thinking = { type: \"adaptive\" };\n if (mode === \"effort\" && params.reasoning) {\n const effort = anthropicEffortValue(params.model, params.reasoning);\n if (effort) body.output_config = { effort };\n }\n } else if (mode === \"legacy\" && params.reasoning) {\n const budget = resolveBudgetTokens(params.reasoning);\n if (budget) {\n body.thinking = { budget_tokens: budget, type: \"enabled\" };\n // Extended thinking requires headroom: budget tokens + room to answer.\n body.max_tokens = Math.max(max, budget + max);\n }\n }\n\n return body;\n};\n\nconst classifyLine = (line: string) => {\n if (line.startsWith(\"event: \")) {\n return {\n field: \"event\" as const,\n value: line.slice(EVENT_PREFIX_LENGTH),\n };\n }\n\n if (line.startsWith(\"data: \")) {\n return {\n field: \"data\" as const,\n value: line.slice(DATA_PREFIX_LENGTH),\n };\n }\n\n return undefined;\n};\n\nconst applyClassified = (\n acc: { eventData: string; eventType: string },\n classified: { field: \"event\" | \"data\"; value: string } | undefined,\n) => {\n if (!classified) {\n return acc;\n }\n\n if (classified.field === \"event\") {\n return { eventData: acc.eventData, eventType: classified.value };\n }\n\n return { eventData: classified.value, eventType: acc.eventType };\n};\n\nconst parseEventLines = (event: string) =>\n event\n .split(\"\\n\")\n .reduce((acc, line) => applyClassified(acc, classifyLine(line)), {\n eventData: \"\",\n eventType: \"\",\n });\n\nconst safeParse = (text: string) => {\n try {\n const result: unknown = JSON.parse(text);\n\n return result;\n } catch {\n return undefined;\n }\n};\n\nconst tryParseJson = (text: string) => {\n const result = safeParse(text);\n\n if (isRecord(result)) {\n return result;\n }\n\n return undefined;\n};\n\nconst getRecord = (obj: Record<string, unknown>, key: string) => {\n const val = obj[key];\n\n if (isRecord(val)) {\n return val;\n }\n\n return undefined;\n};\n\nconst getString = (obj: Record<string, unknown>, key: string) => {\n const val = obj[key];\n\n if (typeof val === \"string\") {\n return val;\n }\n\n return \"\";\n};\n\nconst getNumber = (obj: Record<string, unknown>, key: string) => {\n const val = obj[key];\n\n if (typeof val === \"number\") {\n return val;\n }\n\n return 0;\n};\n\nconst handleContentBlockStart = (\n parsed: Record<string, unknown>,\n state: AnthropicSSEState,\n) => {\n const block = getRecord(parsed, \"content_block\");\n\n if (block && block.type === \"tool_use\") {\n state.currentToolId = getString(block, \"id\");\n state.currentToolName = getString(block, \"name\");\n state.toolInputJson = \"\";\n state.isThinkingBlock = false;\n state.currentProviderBlock = undefined;\n } else if (block && block.type === \"thinking\") {\n state.isThinkingBlock = true;\n state.thinkingSignature = \"\";\n state.currentProviderBlock = undefined;\n } else {\n state.isThinkingBlock = false;\n state.currentProviderBlock =\n block && block.type !== \"text\" ? { ...block } : undefined;\n state.providerBlockInputJson = \"\";\n }\n};\n\nconst handleContentBlockDelta = (\n parsed: Record<string, unknown>,\n state: AnthropicSSEState,\n) => {\n const delta = getRecord(parsed, \"delta\");\n\n if (!delta) {\n return undefined;\n }\n\n if (delta.type === \"thinking_delta\") {\n return {\n content: getString(delta, \"thinking\"),\n type: \"thinking\",\n } satisfies AIChunk;\n }\n\n if (delta.type === \"text_delta\") {\n return {\n content: getString(delta, \"text\"),\n type: \"text\",\n } satisfies AIChunk;\n }\n\n if (delta.type === \"citations_delta\") {\n const citation = getRecord(delta, \"citation\");\n if (\n citation?.type === \"web_search_result_location\" &&\n getString(citation, \"url\")\n ) {\n return {\n content: getString(citation, \"cited_text\") || undefined,\n title: getString(citation, \"title\") || undefined,\n type: \"citation\",\n url: getString(citation, \"url\"),\n } satisfies AIChunk;\n }\n }\n\n if (delta.type === \"input_json_delta\") {\n if (state.currentProviderBlock) {\n state.providerBlockInputJson += getString(delta, \"partial_json\");\n } else {\n state.toolInputJson += getString(delta, \"partial_json\");\n }\n }\n\n if (delta.type === \"signature_delta\") {\n state.thinkingSignature += getString(delta, \"signature\");\n }\n\n return undefined;\n};\n\nconst handleContentBlockStop = (state: AnthropicSSEState) => {\n // Emit thinking signature when thinking block completes\n if (state.isThinkingBlock && state.thinkingSignature) {\n state.isThinkingBlock = false;\n const signature = state.thinkingSignature;\n state.thinkingSignature = \"\";\n\n return {\n content: \"\",\n signature,\n type: \"thinking\",\n } satisfies AIChunk;\n }\n\n if (state.currentProviderBlock) {\n const data = { ...state.currentProviderBlock };\n if (state.providerBlockInputJson) {\n data.input =\n tryParseJson(state.providerBlockInputJson) ??\n state.providerBlockInputJson;\n }\n state.currentProviderBlock = undefined;\n state.providerBlockInputJson = \"\";\n return {\n data,\n provider: state.providerName,\n type: \"provider_event\",\n } satisfies AIChunk;\n }\n\n if (!state.currentToolId) {\n return undefined;\n }\n\n const input = tryParseJson(state.toolInputJson) ?? state.toolInputJson;\n\n const chunk: AIChunk = {\n id: state.currentToolId,\n input,\n name: state.currentToolName,\n type: \"tool_use\",\n };\n\n state.currentToolId = \"\";\n state.currentToolName = \"\";\n state.toolInputJson = \"\";\n\n return chunk;\n};\n\nconst extractUsage = (\n usageRecord: Record<string, unknown> | undefined,\n existingUsage: AIUsage | undefined,\n) => {\n if (!usageRecord) {\n return existingUsage;\n }\n\n const normalized: AIUsage = {\n cacheReadInputTokens:\n getNumber(usageRecord, \"cache_read_input_tokens\") ||\n existingUsage?.cacheReadInputTokens ||\n 0,\n cacheWriteInputTokens:\n getNumber(usageRecord, \"cache_creation_input_tokens\") ||\n existingUsage?.cacheWriteInputTokens ||\n 0,\n inputTokens:\n getNumber(usageRecord, \"input_tokens\") || existingUsage?.inputTokens || 0,\n outputTokens:\n getNumber(usageRecord, \"output_tokens\") ||\n existingUsage?.outputTokens ||\n 0,\n costCredits: getNumber(usageRecord, \"cost\") || existingUsage?.costCredits,\n reasoningTokens:\n getNumber(usageRecord, \"reasoning_tokens\") ||\n existingUsage?.reasoningTokens,\n upstreamInferenceCostCredits:\n getNumber(\n getRecord(usageRecord, \"cost_details\") ?? {},\n \"upstream_inference_cost\",\n ) || existingUsage?.upstreamInferenceCostCredits,\n };\n const serverToolUse = getRecord(usageRecord, \"server_tool_use\");\n if (serverToolUse) {\n normalized.serverToolUse = Object.fromEntries(\n Object.entries(serverToolUse).filter(\n (entry): entry is [string, number] => typeof entry[1] === \"number\",\n ),\n );\n }\n\n return normalized;\n};\n\nconst mergeMetadata = (\n source: Record<string, unknown>,\n state: AnthropicSSEState,\n) => {\n const providerMetadata = getRecord(source, \"openrouter_metadata\");\n const generationId = getString(source, \"id\") || undefined;\n const model = getString(source, \"model\") || undefined;\n const provider = getString(source, \"provider\") || undefined;\n const serviceTier = getString(source, \"service_tier\") || undefined;\n if (!providerMetadata && !generationId && !model && !provider && !serviceTier)\n return;\n state.metadata = {\n ...state.metadata,\n generationId: generationId ?? state.metadata?.generationId,\n model: model ?? state.metadata?.model,\n provider: provider ?? state.metadata?.provider,\n providerMetadata: {\n ...state.metadata?.providerMetadata,\n ...providerMetadata,\n },\n serviceTier: serviceTier ?? state.metadata?.serviceTier,\n };\n};\n\nconst handleMessageDelta = (\n parsed: Record<string, unknown>,\n state: AnthropicSSEState,\n) => {\n const deltaUsage = getRecord(parsed, \"usage\");\n state.usage = extractUsage(deltaUsage, state.usage);\n\n const delta = getRecord(parsed, \"delta\");\n const stopReason = delta ? getString(delta, \"stop_reason\") : \"\";\n if (stopReason) state.stopReason = stopReason;\n};\n\nconst handleMessageStart = (\n parsed: Record<string, unknown>,\n state: AnthropicSSEState,\n) => {\n const message = getRecord(parsed, \"message\");\n\n if (!message) {\n return;\n }\n\n const startUsage = getRecord(message, \"usage\");\n state.usage = extractUsage(startUsage, state.usage);\n mergeMetadata(message, state);\n};\n\nconst handleError = (\n parsed: Record<string, unknown>,\n state: AnthropicSSEState,\n) => {\n const error = getRecord(parsed, \"error\");\n const errorMessage = error ? getString(error, \"message\") : \"\";\n const nativeErrorType = error ? getString(error, \"type\") : \"\";\n const errorType = error\n ? getString(error, \"error_type\") || nativeErrorType\n : \"\";\n\n // Mid-stream error events (e.g. \"overloaded_error\") — overloaded/rate-limit\n // types are retryable; everything else is treated as a hard failure.\n const retryable =\n errorType === \"provider_overloaded\" ||\n errorType === \"rate_limit_exceeded\" ||\n errorType === \"provider_unavailable\" ||\n errorType === \"server\" ||\n nativeErrorType === \"overloaded_error\" ||\n nativeErrorType === \"rate_limit_error\" ||\n nativeErrorType === \"api_error\";\n\n throw new ProviderError({\n message: errorMessage || \"Anthropic API error\",\n metadata: error,\n provider: state.providerName,\n retryable,\n type: errorType || null,\n });\n};\n\nconst processEvent = (\n eventType: string,\n parsed: Record<string, unknown>,\n state: AnthropicSSEState,\n) => {\n switch (eventType) {\n case \"content_block_start\": {\n handleContentBlockStart(parsed, state);\n\n return undefined;\n }\n\n case \"content_block_delta\": {\n return handleContentBlockDelta(parsed, state);\n }\n\n case \"content_block_stop\": {\n return handleContentBlockStop(state);\n }\n\n case \"message_delta\": {\n handleMessageDelta(parsed, state);\n mergeMetadata(parsed, state);\n\n return undefined;\n }\n\n case \"message_start\": {\n handleMessageStart(parsed, state);\n\n return undefined;\n }\n\n case \"message_stop\": {\n mergeMetadata(parsed, state);\n return {\n stopReason: state.stopReason,\n metadata: state.metadata,\n type: \"done\" as const,\n usage: state.usage,\n };\n }\n\n case \"error\": {\n handleError(parsed, state);\n\n return undefined;\n }\n\n default: {\n return undefined;\n }\n }\n};\n\nconst processSingleEvent = (event: string, state: AnthropicSSEState) => {\n if (!event.trim()) {\n return undefined;\n }\n\n const { eventData, eventType } = parseEventLines(event);\n\n if (!eventData) {\n return undefined;\n }\n\n const parsed = tryParseJson(eventData);\n\n if (!parsed) {\n return undefined;\n }\n\n return processEvent(eventType, parsed, state);\n};\n\nconst collectChunk = (event: string, state: AnthropicSSEState) => {\n const chunk = processSingleEvent(event, state);\n\n return chunk ? [chunk] : [];\n};\n\nconst processBufferedEvents = (\n eventsText: string,\n state: AnthropicSSEState,\n) => {\n const events = eventsText.split(\"\\n\\n\");\n state.buffer = events.pop() ?? \"\";\n\n return events.flatMap((event) => collectChunk(event, state));\n};\n\nconst readNextChunks = async (\n reader: ReadableStreamDefaultReader<Uint8Array>,\n decoder: TextDecoder,\n state: AnthropicSSEState,\n signal?: AbortSignal,\n) => {\n if (signal?.aborted) {\n return { chunks: EMPTY_CHUNKS, done: true };\n }\n\n const { done, value } = await reader.read();\n\n if (done) {\n return { chunks: EMPTY_CHUNKS, done: true };\n }\n\n const rawText = state.buffer + decoder.decode(value, { stream: true });\n const chunks = processBufferedEvents(rawText, state);\n\n return { chunks, done: false };\n};\n\nconst findDoneChunk = (chunks: AIChunk[]) =>\n chunks.findIndex((c) => c.type === \"done\");\n\nconst sseStreamLoop = async (\n reader: ReadableStreamDefaultReader<Uint8Array>,\n decoder: TextDecoder,\n state: AnthropicSSEState,\n signal?: AbortSignal,\n) => {\n const result = await readNextChunks(reader, decoder, state, signal);\n\n if (result.done) {\n return { chunks: result.chunks, finished: true };\n }\n\n const doneIdx = findDoneChunk(result.chunks);\n\n if (doneIdx >= 0) {\n return { chunks: result.chunks.slice(0, doneIdx + 1), finished: true };\n }\n\n return { chunks: result.chunks, finished: false };\n};\n\n// eslint-disable-next-line func-style\nasync function* streamChunks(\n reader: ReadableStreamDefaultReader<Uint8Array>,\n decoder: TextDecoder,\n state: AnthropicSSEState,\n signal?: AbortSignal,\n) {\n let finished = false;\n\n while (!finished) {\n // eslint-disable-next-line no-await-in-loop\n const result = await sseStreamLoop(reader, decoder, state, signal);\n ({ finished } = result);\n yield* result.chunks;\n }\n}\n\n// eslint-disable-next-line func-style\nasync function* parseSSEStream(\n body: ReadableStream<Uint8Array>,\n providerName: string,\n signal?: AbortSignal,\n) {\n const reader = body.getReader();\n const decoder = new TextDecoder();\n\n const state: AnthropicSSEState = {\n buffer: \"\",\n currentToolId: \"\",\n currentToolName: \"\",\n isThinkingBlock: false,\n stopReason: \"\",\n thinkingSignature: \"\",\n toolInputJson: \"\",\n usage: undefined,\n providerName,\n providerBlockInputJson: \"\",\n };\n\n try {\n yield* streamChunks(reader, decoder, state, signal);\n } finally {\n reader.releaseLock();\n }\n}\n\nconst fetchAndStream = async function* (\n baseUrl: string,\n config: AnthropicConfig,\n params: AIProviderStreamParams,\n configuredMax: number,\n promptCaching: boolean,\n providerName: string,\n) {\n const builtBody = buildRequestBody(params, configuredMax, promptCaching);\n const body = config.transformRequestBody\n ? config.transformRequestBody(builtBody, params)\n : builtBody;\n\n const target = `${baseUrl}/v1/messages`;\n const fetchImpl = config.fetch ?? fetch;\n const token = config.tokenSource\n ? await Promise.resolve(config.tokenSource())\n : config.apiKey!;\n const suppliedHeaders =\n typeof config.headers === \"function\"\n ? await config.headers(params)\n : (config.headers ?? {});\n const requestHeaders = new Headers(suppliedHeaders);\n requestHeaders.set(\"Content-Type\", \"application/json\");\n if (config.authStyle === \"bearer\") {\n requestHeaders.set(\"Authorization\", `Bearer ${token}`);\n } else {\n requestHeaders.set(\"anthropic-version\", API_VERSION);\n requestHeaders.set(\"x-api-key\", token);\n }\n const response = await fetchImpl(target, {\n ...h2IfHttps(target),\n body: JSON.stringify(body),\n headers: requestHeaders,\n method: \"POST\",\n signal: params.signal,\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n\n throw ProviderError.fromResponse(providerName, response.status, errorText);\n }\n\n if (!response.body) {\n throw new ProviderError({\n message: `${providerName} Messages API returned no response body`,\n provider: providerName,\n retryable: true,\n });\n }\n\n yield* parseSSEStream(response.body, providerName, params.signal);\n};\n\nexport const anthropic = (config: AnthropicConfig): AIProviderConfig => {\n if (!config.apiKey && !config.tokenSource)\n throw new Error(\"anthropic() requires either apiKey or tokenSource\");\n const baseUrl = config.baseUrl ?? DEFAULT_BASE_URL;\n const configuredMax = config.maxTokens ?? DEFAULT_MAX_TOKENS;\n const promptCaching = config.promptCaching ?? true;\n const providerName = config.providerName ?? \"anthropic\";\n\n const capacityRequest = async (\n params: AIProviderStreamParams,\n path: string,\n body?: Record<string, unknown>,\n ) => {\n const token = config.tokenSource\n ? await config.tokenSource()\n : config.apiKey!;\n const headers = new Headers(\n typeof config.headers === \"function\"\n ? await config.headers(params)\n : config.headers,\n );\n headers.set(\"Content-Type\", \"application/json\");\n if (config.authStyle === \"bearer\")\n headers.set(\"Authorization\", `Bearer ${token}`);\n else {\n headers.set(\"anthropic-version\", API_VERSION);\n headers.set(\"x-api-key\", token);\n }\n return capacityJson(\n await (config.fetch ?? fetch)(`${baseUrl}${path}`, {\n method: body ? \"POST\" : \"GET\",\n headers,\n body: body ? JSON.stringify(body) : undefined,\n signal: params.signal\n ? AbortSignal.any([params.signal, AbortSignal.timeout(15_000)])\n : AbortSignal.timeout(15_000),\n }),\n );\n };\n // Anthropic's token-counting guide excludes hosted search/fetch/code/tool-search,\n // even though the generated API schema lists them. Count the supported caller\n // payload only; generation retains the full body and validates hosted context.\n const countingRequest = (params: AIProviderStreamParams) => {\n const built = buildRequestBody(params, configuredMax, promptCaching);\n const body = config.transformRequestBody\n ? config.transformRequestBody(built, params)\n : built;\n const counted: Record<string, unknown> = {};\n for (const key of [\n \"model\",\n \"messages\",\n \"system\",\n \"tools\",\n \"tool_choice\",\n \"thinking\",\n ])\n if (body[key] !== undefined) counted[key] = body[key];\n const tools = Array.isArray(body.tools) ? body.tools : [];\n const hosted = tools.filter(\n (tool) =>\n isRecord(tool) &&\n typeof tool.type === \"string\" &&\n /^(web_search_|web_fetch_|code_execution_|bash_code_execution_|text_editor_code_execution_|tool_search_tool_)/u.test(\n tool.type,\n ),\n );\n const scope =\n hosted.length > 0 || body.mcp_servers !== undefined\n ? (\"caller-input\" as const)\n : (\"request\" as const);\n if (hosted.length > 0) {\n const clientTools = tools.filter((tool) => !hosted.includes(tool));\n if (clientTools.length) counted.tools = clientTools;\n else delete counted.tools;\n const choice = counted.tool_choice;\n if (\n !clientTools.length ||\n (isRecord(choice) &&\n choice.type === \"tool\" &&\n hosted.some((tool) => isRecord(tool) && tool.name === choice.name))\n )\n delete counted.tool_choice;\n }\n return { counted, scope };\n };\n const inputCapacity = {\n outputTokens: (params: AIProviderStreamParams) => {\n const built = buildRequestBody(params, configuredMax, promptCaching);\n const body = config.transformRequestBody\n ? config.transformRequestBody(built, params)\n : built;\n return positiveTokenLimit(body.max_tokens);\n },\n getLimits: cacheModelLimits(\n async (params) => {\n const data = await capacityRequest(\n params,\n `/v1/models/${encodeURIComponent(params.model)}`,\n );\n const context = positiveTokenLimit(data.max_input_tokens);\n return {\n maxInputTokens: context,\n contextWindowTokens: context,\n maxOutputTokens: positiveTokenLimit(data.max_tokens),\n };\n },\n config.tokenSource || typeof config.headers === \"function\" ? 0 : 300_000,\n ),\n countScope: (params: AIProviderStreamParams) =>\n countingRequest(params).scope,\n countTokens: async (params: AIProviderStreamParams) => {\n const { counted } = countingRequest(params);\n return inputTokenCount(\n (await capacityRequest(params, \"/v1/messages/count_tokens\", counted))\n .input_tokens,\n );\n },\n };\n return instrumentAIProvider(\n {\n inputCapacity,\n stream: (params: AIProviderStreamParams) =>\n fetchAndStream(\n baseUrl,\n config,\n params,\n configuredMax,\n promptCaching,\n providerName,\n ),\n },\n providerName,\n );\n};\n"
|
|
12
12
|
],
|
|
13
|
-
"mappings": "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",
|
|
14
|
-
"debugId": "
|
|
13
|
+
"mappings": "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",
|
|
14
|
+
"debugId": "0F1301D0EAAFB06664756E2164756E21",
|
|
15
15
|
"names": []
|
|
16
16
|
}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var __require = import.meta.require;
|
|
3
|
-
|
|
4
2
|
// src/ai/models/reasoning.ts
|
|
5
3
|
var profile = (kind, efforts, description, source) => ({ kind, efforts, description, source });
|
|
6
4
|
var claude = profile("effort", ["low", "medium", "high", "xhigh", "max"], "More thinking for harder problems; higher settings can take longer and use more credits.", "https://platform.claude.com/docs/en/build-with-claude/effort");
|
|
@@ -195,13 +193,13 @@ var compatibleReasoningBody = (provider, model, reasoning) => {
|
|
|
195
193
|
var geminiThinkingConfig = (model, reasoning) => {
|
|
196
194
|
if (!reasoning)
|
|
197
195
|
return;
|
|
198
|
-
const
|
|
196
|
+
const profile = getModelReasoning("google", model);
|
|
199
197
|
const effort = resolveEffort(reasoning);
|
|
200
|
-
if (!
|
|
198
|
+
if (!profile || !effort)
|
|
201
199
|
return;
|
|
202
|
-
if (!
|
|
200
|
+
if (!profile.efforts.includes(effort))
|
|
203
201
|
throw new Error(`Unsupported reasoning effort ${effort} for ${model}`);
|
|
204
|
-
if (
|
|
202
|
+
if (profile.kind === "effort")
|
|
205
203
|
return { thinkingLevel: effort };
|
|
206
204
|
const budgets = {
|
|
207
205
|
none: 0,
|
|
@@ -904,13 +902,13 @@ var resolveImageModels = (raw) => {
|
|
|
904
902
|
}
|
|
905
903
|
return new Set(raw);
|
|
906
904
|
};
|
|
907
|
-
var gemini2 = (
|
|
908
|
-
const baseUrl =
|
|
909
|
-
const imageModels = resolveImageModels(
|
|
910
|
-
const requestCapacity = async (params, suffix, body) => capacityJson(await (
|
|
905
|
+
var gemini2 = (config) => {
|
|
906
|
+
const baseUrl = config.baseUrl ?? DEFAULT_BASE_URL;
|
|
907
|
+
const imageModels = resolveImageModels(config.imageModels);
|
|
908
|
+
const requestCapacity = async (params, suffix, body) => capacityJson(await (config.fetch ?? fetch)(`${baseUrl}/v1beta/models/${encodeURIComponent(params.model.replace(/^models\//, ""))}${suffix}`, {
|
|
911
909
|
headers: {
|
|
912
910
|
"Content-Type": "application/json",
|
|
913
|
-
"x-goog-api-key":
|
|
911
|
+
"x-goog-api-key": config.apiKey
|
|
914
912
|
},
|
|
915
913
|
method: body ? "POST" : "GET",
|
|
916
914
|
body: body ? JSON.stringify(body) : undefined,
|
|
@@ -938,7 +936,7 @@ var gemini2 = (config2) => {
|
|
|
938
936
|
stream: (params) => {
|
|
939
937
|
const isImageModel = imageModels.has(params.model);
|
|
940
938
|
const body = buildRequestBody(params, isImageModel);
|
|
941
|
-
return fetchGeminiStream(baseUrl,
|
|
939
|
+
return fetchGeminiStream(baseUrl, config.apiKey, params.model, body, params.signal, config.fetch);
|
|
942
940
|
}
|
|
943
941
|
}, "gemini");
|
|
944
942
|
};
|
|
@@ -946,5 +944,5 @@ export {
|
|
|
946
944
|
gemini2 as gemini
|
|
947
945
|
};
|
|
948
946
|
|
|
949
|
-
//# debugId=
|
|
947
|
+
//# debugId=F00D909E53CCCDF464756E2164756E21
|
|
950
948
|
//# sourceMappingURL=gemini.js.map
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"import type {\n AIChunk,\n AIProviderConfig,\n AIProviderStreamParams,\n AIUsage,\n} from \"../../../types/ai\";\nimport { withResilience } from \"../resilience\";\n\n// Every provider factory routes through here, so this is also where the\n// automatic retry + circuit-breaker layer is applied — wrapping the raw provider\n// BENEATH the usage/span tap so onUsage/onSpan fire once, for the attempt that\n// actually streamed.\nexport const instrumentAIProvider = (\n provider: AIProviderConfig,\n providerName?: string,\n): AIProviderConfig => {\n const resilient = withResilience(provider, providerName);\n\n return {\n ...provider,\n stream: (params: AIProviderStreamParams) => {\n if (!params.onUsage && !params.onSpan) {\n return resilient.stream(params);\n }\n return tapStream(resilient.stream(params), params, providerName);\n },\n };\n};\n\nasync function* tapStream(\n source: AsyncIterable<AIChunk>,\n params: AIProviderStreamParams,\n providerName?: string,\n): AsyncIterable<AIChunk> {\n const startedAt = Date.now();\n let lastUsage: AIUsage | undefined;\n try {\n for await (const chunk of source) {\n if (chunk.type === \"done\" && chunk.usage) {\n lastUsage = chunk.usage;\n }\n yield chunk;\n }\n } finally {\n if (lastUsage && params.onUsage) {\n try {\n params.onUsage({\n ...lastUsage,\n model: params.model,\n provider: providerName,\n });\n } catch {\n // operator-supplied callback errors must not affect stream consumers\n }\n }\n if (params.onSpan) {\n try {\n params.onSpan({\n durationMs: Date.now() - startedAt,\n model: params.model,\n provider: providerName,\n usage: lastUsage,\n });\n } catch {\n // same\n }\n }\n }\n}\n",
|
|
11
11
|
"import { geminiThinkingConfig } from \"./reasoning\";\nimport type {\n AIProviderConfig,\n AIProviderContentBlock,\n AIProviderMessage,\n AIProviderStreamParams,\n AIProviderToolDefinition,\n AIUsage,\n} from \"../../../types/ai\";\nimport {\n cacheModelLimits,\n capacityJson,\n positiveTokenLimit,\n inputTokenCount,\n} from \"../inputCapacity\";\nimport { instrumentAIProvider } from \"./instrumentation\";\n\n// Opportunistic HTTP/2 multiplexing for outbound HTTPS (Bun 1.3.14+).\n// The `protocol` option lands in @types/bun 1.3.14; widen locally for now.\n// Hard-skip on non-HTTPS — Bun's h2 client throws HTTP2Unsupported on h2c.\ntype H2Init = RequestInit & { protocol?: \"http2\" };\nconst h2IfHttps = (url: string): H2Init =>\n url.startsWith(\"https://\") ? { protocol: \"http2\" } : {};\n\ntype GeminiConfig = {\n apiKey: string;\n baseUrl?: string;\n imageModels?: Set<string> | string[];\n fetch?: typeof globalThis.fetch;\n};\n\ntype StreamState = {\n buffer: string;\n usage: AIUsage | undefined;\n};\n\nconst DEFAULT_BASE_URL = \"https://generativelanguage.googleapis.com\";\nconst SSE_DATA_PREFIX_LENGTH = 6;\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null;\n\nconst isRecordArray = (\n value: unknown,\n): value is Array<Record<string, unknown>> =>\n Array.isArray(value) && value.length > 0 && isRecord(value[0]);\n\n/* ─── Message conversion ─── */\n\nconst mapRole = (role: string) => {\n if (role === \"assistant\" || role === \"system\") return \"model\";\n\n return \"user\";\n};\n\nconst mapContentBlock = (block: AIProviderContentBlock) => {\n switch (block.type) {\n case \"text\":\n return { text: block.content };\n case \"image\":\n return block.source.type === \"url\"\n ? {\n fileData: {\n fileUri: block.source.url,\n mimeType: block.source.media_type,\n },\n }\n : {\n inlineData: {\n data: block.source.data,\n mimeType: block.source.media_type,\n },\n };\n case \"document\":\n return block.source.type === \"url\"\n ? {\n fileData: {\n fileUri: block.source.url,\n mimeType: block.source.media_type,\n },\n }\n : {\n inlineData: {\n data: block.source.data,\n mimeType: block.source.media_type,\n },\n };\n case \"audio\":\n return {\n inlineData: {\n data: block.source.data,\n mimeType: `audio/${block.source.format}`,\n },\n };\n case \"video\":\n return block.source.type === \"url\"\n ? {\n fileData: {\n fileUri: block.source.url,\n mimeType: block.source.media_type,\n },\n }\n : {\n inlineData: {\n data: block.source.data,\n mimeType: block.source.media_type,\n },\n };\n case \"tool_use\":\n return {\n functionCall: {\n args:\n typeof block.input === \"string\"\n ? JSON.parse(block.input)\n : block.input,\n name: block.name,\n },\n };\n case \"tool_result\":\n return {\n functionResponse: {\n name: block.tool_use_id,\n response: { result: block.content },\n },\n };\n default:\n return null;\n }\n};\n\nconst convertMessageContent = (content: string | AIProviderContentBlock[]) => {\n if (typeof content === \"string\") {\n return [{ text: content }];\n }\n\n return content.map(mapContentBlock).filter((mapped) => mapped !== null);\n};\n\nconst hasFunctionResponse = (content: AIProviderContentBlock[]) =>\n content.some((block) => block.type === \"tool_result\");\n\nconst convertSingleMessage = (msg: AIProviderMessage) => {\n if (typeof msg.content !== \"string\" && hasFunctionResponse(msg.content)) {\n return { parts: convertMessageContent(msg.content), role: \"user\" };\n }\n\n return {\n parts: convertMessageContent(msg.content),\n role: mapRole(msg.role),\n };\n};\n\nconst convertMessages = (messages: AIProviderMessage[]) =>\n messages.map(convertSingleMessage);\n\nconst mapToolDefinitions = (tools: AIProviderToolDefinition[]) =>\n tools.map((tool) => ({\n description: tool.description,\n name: tool.name,\n parameters: tool.input_schema,\n }));\n\nconst buildRequestBody = (\n params: AIProviderStreamParams,\n isImageModel: boolean,\n) => {\n const body: Record<string, unknown> = {\n contents: convertMessages(params.messages),\n };\n\n const generationConfig: Record<string, unknown> = {};\n const thinkingConfig = geminiThinkingConfig(params.model, params.reasoning);\n if (thinkingConfig) generationConfig.thinkingConfig = thinkingConfig;\n if (isImageModel) {\n generationConfig.responseModalities = [\"TEXT\", \"IMAGE\"];\n }\n if (typeof params.temperature === \"number\")\n generationConfig.temperature = params.temperature;\n if (typeof params.topP === \"number\") generationConfig.topP = params.topP;\n if (typeof params.maxTokens === \"number\")\n generationConfig.maxOutputTokens = params.maxTokens;\n if (params.stopSequences && params.stopSequences.length > 0) {\n generationConfig.stopSequences = params.stopSequences;\n }\n if (typeof params.seed === \"number\") generationConfig.seed = params.seed;\n if (params.responseFormat?.type === \"json_object\") {\n generationConfig.responseMimeType = \"application/json\";\n } else if (params.responseFormat?.type === \"json_schema\") {\n generationConfig.responseMimeType = \"application/json\";\n generationConfig.responseSchema = params.responseFormat.schema;\n }\n if (Object.keys(generationConfig).length > 0) {\n body.generationConfig = generationConfig;\n }\n\n if (params.systemPrompt) {\n body.systemInstruction = {\n parts: [{ text: params.systemPrompt }],\n };\n }\n\n if (params.tools && params.tools.length > 0) {\n body.tools = [{ functionDeclarations: mapToolDefinitions(params.tools) }];\n if (params.toolChoice) {\n const choice = params.toolChoice;\n if (choice === \"auto\" || choice === \"none\") {\n body.toolConfig = {\n functionCallingConfig: { mode: choice === \"auto\" ? \"AUTO\" : \"NONE\" },\n };\n } else if (choice === \"required\") {\n body.toolConfig = {\n functionCallingConfig: { mode: \"ANY\" },\n };\n } else if (typeof choice === \"object\") {\n body.toolConfig = {\n functionCallingConfig: {\n allowedFunctionNames: [choice.name],\n mode: \"ANY\",\n },\n };\n }\n }\n }\n\n return body;\n};\n\n/* ─── SSE parsing ─── */\n\nconst extractMimeFormat = (mimeType: unknown) => {\n if (typeof mimeType !== \"string\") {\n return \"png\";\n }\n\n if (mimeType.includes(\"jpeg\") || mimeType.includes(\"jpg\")) return \"jpeg\";\n if (mimeType.includes(\"webp\")) return \"webp\";\n\n return \"png\";\n};\n\nconst processTextPart = function* (part: Record<string, unknown>) {\n if (typeof part.text === \"string\" && part.text) {\n yield { content: part.text, type: \"text\" as const };\n }\n};\n\nconst processInlineDataPart = function* (inlineData: Record<string, unknown>) {\n const data = typeof inlineData.data === \"string\" ? inlineData.data : \"\";\n const { mimeType } = inlineData;\n\n if (!data) {\n return;\n }\n\n yield {\n data,\n format: extractMimeFormat(mimeType),\n isPartial: false,\n type: \"image\" as const,\n };\n};\n\nconst processFunctionCallPart = function* (\n functionCall: Record<string, unknown>,\n) {\n const name = typeof functionCall.name === \"string\" ? functionCall.name : \"\";\n const args = functionCall.args ?? {};\n\n yield {\n id: `gemini-${name}-${Date.now()}`,\n input: args,\n name,\n type: \"tool_use\" as const,\n };\n};\n\nconst processPart = function* (part: Record<string, unknown>) {\n if (\"text\" in part) {\n yield* processTextPart(part);\n }\n\n if (isRecord(part.inlineData)) {\n yield* processInlineDataPart(part.inlineData);\n }\n\n if (isRecord(part.functionCall)) {\n yield* processFunctionCallPart(part.functionCall);\n }\n};\n\nconst extractUsage = (parsed: Record<string, unknown>): AIUsage | undefined => {\n if (!isRecord(parsed.usageMetadata)) {\n return undefined;\n }\n\n const { usageMetadata } = parsed;\n\n return {\n inputTokens:\n typeof usageMetadata.promptTokenCount === \"number\"\n ? usageMetadata.promptTokenCount\n : 0,\n outputTokens:\n typeof usageMetadata.candidatesTokenCount === \"number\"\n ? usageMetadata.candidatesTokenCount\n : 0,\n };\n};\n\nconst processChunk = function* (\n parsed: Record<string, unknown>,\n state: StreamState,\n) {\n const usage = extractUsage(parsed);\n\n if (usage) {\n state.usage = usage;\n }\n\n if (!isRecordArray(parsed.candidates)) {\n return;\n }\n\n const [candidate] = parsed.candidates;\n\n if (!candidate || !isRecord(candidate.content)) {\n return;\n }\n\n const { content } = candidate;\n\n if (!isRecordArray(content.parts)) {\n return;\n }\n\n for (const part of content.parts) {\n yield* processPart(part);\n }\n};\n\nconst processSSELine = function* (line: string, state: StreamState) {\n const trimmed = line.trim();\n\n if (!trimmed || !trimmed.startsWith(\"data: \")) {\n return;\n }\n\n const data = trimmed.slice(SSE_DATA_PREFIX_LENGTH);\n\n let parsed: Record<string, unknown>;\n\n try {\n parsed = JSON.parse(data);\n } catch {\n return;\n }\n\n yield* processChunk(parsed, state);\n};\n\nconst processSSEBuffer = function* (lines: string[], state: StreamState) {\n for (const line of lines) {\n yield* processSSELine(line, state);\n }\n};\n\nconst drainReader = async function* (\n reader: ReadableStreamDefaultReader<Uint8Array>,\n decoder: TextDecoder,\n state: StreamState,\n signal?: AbortSignal,\n) {\n let textBuffer = \"\";\n\n for (\n let result = await reader.read();\n !result.done && !signal?.aborted;\n // eslint-disable-next-line no-await-in-loop\n result = await reader.read()\n ) {\n textBuffer += decoder.decode(result.value, { stream: true });\n const lines = textBuffer.split(\"\\n\");\n textBuffer = lines.pop() ?? \"\";\n\n yield* processSSEBuffer(lines, state);\n }\n\n if (textBuffer.trim()) {\n yield* processSSELine(textBuffer, state);\n }\n\n yield { type: \"done\" as const, usage: state.usage };\n};\n\nconst parseSSEStream = async function* (\n body: ReadableStream<Uint8Array>,\n signal?: AbortSignal,\n) {\n const reader = body.getReader();\n const decoder = new TextDecoder();\n const state: StreamState = {\n buffer: \"\",\n usage: undefined,\n };\n\n try {\n yield* drainReader(reader, decoder, state, signal);\n } finally {\n reader.releaseLock();\n }\n};\n\nconst fetchGeminiStream = async function* (\n baseUrl: string,\n apiKey: string,\n model: string,\n body: Record<string, unknown>,\n signal?: AbortSignal,\n fetchImpl: typeof fetch = fetch,\n) {\n const url = `${baseUrl}/v1beta/models/${model}:streamGenerateContent?alt=sse&key=${apiKey}`;\n\n const response = await fetchImpl(url, {\n ...h2IfHttps(url),\n body: JSON.stringify(body),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n method: \"POST\",\n signal,\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n throw new Error(`Gemini API error ${response.status}: ${errorText}`);\n }\n\n if (!response.body) {\n throw new Error(\"Gemini API returned no response body\");\n }\n\n yield* parseSSEStream(response.body, signal);\n};\n\nconst resolveImageModels = (raw: Set<string> | string[] | undefined) => {\n if (!raw) {\n return new Set<string>();\n }\n\n if (raw instanceof Set) {\n return raw;\n }\n\n return new Set(raw);\n};\n\nexport const gemini = (config: GeminiConfig): AIProviderConfig => {\n const baseUrl = config.baseUrl ?? DEFAULT_BASE_URL;\n const imageModels = resolveImageModels(config.imageModels);\n\n const requestCapacity = async (\n params: AIProviderStreamParams,\n suffix: string,\n body?: Record<string, unknown>,\n ) =>\n capacityJson(\n await (config.fetch ?? fetch)(\n `${baseUrl}/v1beta/models/${encodeURIComponent(params.model.replace(/^models\\//, \"\"))}${suffix}`,\n {\n headers: {\n \"Content-Type\": \"application/json\",\n \"x-goog-api-key\": config.apiKey,\n },\n method: body ? \"POST\" : \"GET\",\n body: body ? JSON.stringify(body) : undefined,\n signal: params.signal\n ? AbortSignal.any([params.signal, AbortSignal.timeout(15_000)])\n : AbortSignal.timeout(15_000),\n },\n ),\n );\n return instrumentAIProvider(\n {\n inputCapacity: {\n getLimits: cacheModelLimits(async (params) => {\n const data = await requestCapacity(params, \"\");\n return {\n maxInputTokens: positiveTokenLimit(data.inputTokenLimit),\n maxOutputTokens: positiveTokenLimit(data.outputTokenLimit),\n };\n }),\n countTokens: async (params) => {\n const body = buildRequestBody(params, false);\n return inputTokenCount(\n (\n await requestCapacity(params, \":countTokens\", {\n generateContentRequest: {\n ...body,\n model: `models/${params.model.replace(/^models\\//, \"\")}`,\n },\n })\n ).totalTokens,\n );\n },\n },\n stream: (params: AIProviderStreamParams) => {\n const isImageModel = imageModels.has(params.model);\n const body = buildRequestBody(params, isImageModel);\n\n return fetchGeminiStream(\n baseUrl,\n config.apiKey,\n params.model,\n body,\n params.signal,\n config.fetch,\n );\n },\n },\n \"gemini\",\n );\n};\n"
|
|
12
12
|
],
|
|
13
|
-
"mappings": "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",
|
|
14
|
-
"debugId": "
|
|
13
|
+
"mappings": "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",
|
|
14
|
+
"debugId": "F00D909E53CCCDF464756E2164756E21",
|
|
15
15
|
"names": []
|
|
16
16
|
}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var __require = import.meta.require;
|
|
3
|
-
|
|
4
2
|
// src/ai/errors/providerError.ts
|
|
5
3
|
var PROVIDER_STATUS_PAGES = {
|
|
6
4
|
anthropic: "https://status.claude.com",
|
|
@@ -529,8 +527,8 @@ var fetchAndStream = async function* (baseUrl, params) {
|
|
|
529
527
|
}
|
|
530
528
|
yield* parseNDJSONStream(response.body, params.signal);
|
|
531
529
|
};
|
|
532
|
-
var ollama = (
|
|
533
|
-
const baseUrl =
|
|
530
|
+
var ollama = (config = {}) => {
|
|
531
|
+
const baseUrl = config.baseUrl ?? DEFAULT_BASE_URL;
|
|
534
532
|
return instrumentAIProvider({
|
|
535
533
|
stream: (params) => fetchAndStream(baseUrl, params)
|
|
536
534
|
}, "ollama");
|
|
@@ -539,5 +537,5 @@ export {
|
|
|
539
537
|
ollama
|
|
540
538
|
};
|
|
541
539
|
|
|
542
|
-
//# debugId=
|
|
540
|
+
//# debugId=A5EA5B2B29A2864A64756E2164756E21
|
|
543
541
|
//# sourceMappingURL=ollama.js.map
|