@absolutejs/ai 0.0.55 → 0.0.56

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.
@@ -1000,5 +1000,5 @@ export {
1000
1000
  anthropic
1001
1001
  };
1002
1002
 
1003
- //# debugId=DE3019B1F73ED94664756E2164756E21
1003
+ //# debugId=D444886C7BD8E59964756E2164756E21
1004
1004
  //# sourceMappingURL=anthropic.js.map
@@ -9,6 +9,6 @@
9
9
  "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 { 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 = params.reasoning ? anthropicReasoningMode(params.model) : \"none\";\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 return instrumentAIProvider(\n {\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"
10
10
  ],
11
11
  "mappings": "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",
12
- "debugId": "DE3019B1F73ED94664756E2164756E21",
12
+ "debugId": "D444886C7BD8E59964756E2164756E21",
13
13
  "names": []
14
14
  }
@@ -612,5 +612,5 @@ export {
612
612
  gemini
613
613
  };
614
614
 
615
- //# debugId=D091FA3C26D2565264756E2164756E21
615
+ //# debugId=3A4744B2F183C22564756E2164756E21
616
616
  //# sourceMappingURL=gemini.js.map
@@ -8,6 +8,6 @@
8
8
  "import type {\n AIProviderConfig,\n AIProviderContentBlock,\n AIProviderMessage,\n AIProviderStreamParams,\n AIProviderToolDefinition,\n AIUsage,\n} from \"../../../types/ai\";\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};\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 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) {\n const url = `${baseUrl}/v1beta/models/${model}:streamGenerateContent?alt=sse&key=${apiKey}`;\n\n const response = await fetch(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 return instrumentAIProvider(\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 );\n },\n },\n \"gemini\",\n );\n};\n"
9
9
  ],
10
10
  "mappings": "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",
11
- "debugId": "D091FA3C26D2565264756E2164756E21",
11
+ "debugId": "3A4744B2F183C22564756E2164756E21",
12
12
  "names": []
13
13
  }
@@ -529,5 +529,5 @@ export {
529
529
  ollama
530
530
  };
531
531
 
532
- //# debugId=88E6FD3020B52D1664756E2164756E21
532
+ //# debugId=BCFEA762FF3D4C7A64756E2164756E21
533
533
  //# sourceMappingURL=ollama.js.map
@@ -8,6 +8,6 @@
8
8
  "import type {\n AIChunk,\n AIDoneChunk,\n AIProviderConfig,\n AIProviderStreamParams,\n AIProviderToolDefinition,\n} from \"../../../types/ai\";\nimport { instrumentAIProvider } from \"./instrumentation\";\n\ntype OllamaConfig = {\n baseUrl?: string;\n};\n\ntype OllamaMessage = {\n content: string;\n role: \"assistant\" | \"system\" | \"tool\" | \"user\";\n tool_calls?: Array<{\n function: { arguments: Record<string, unknown>; name: string };\n }>;\n};\n\nconst DEFAULT_BASE_URL = \"http://localhost:11434\";\nconst ZERO_TOKENS = 0;\n\nconst DONE_CHUNK: AIChunk = { type: \"done\" };\n\nconst mapToolDefinitions = (tools: AIProviderToolDefinition[]) =>\n tools.map((tool) => ({\n function: {\n description: tool.description,\n name: tool.name,\n parameters: tool.input_schema,\n },\n type: \"function\",\n }));\n\nconst convertMessage = (msg: AIProviderStreamParams[\"messages\"][number]) => {\n if (typeof msg.content === \"string\") {\n return [{ content: msg.content, role: msg.role }];\n }\n\n const results: OllamaMessage[] = [];\n const toolUseBlocks = msg.content.filter(\n (block) => block.type === \"tool_use\",\n );\n const toolResultBlocks = msg.content.filter(\n (block) => block.type === \"tool_result\",\n );\n\n if (toolUseBlocks.length > 0) {\n results.push({\n content: \"\",\n role: \"assistant\",\n tool_calls: toolUseBlocks.map((block) => ({\n function: {\n arguments:\n typeof block.input === \"object\" && block.input !== null\n ? { ...block.input }\n : {},\n name: block.name,\n },\n })),\n });\n }\n\n for (const block of toolResultBlocks) {\n results.push({\n content: typeof block.content === \"string\" ? block.content : \"\",\n role: \"tool\",\n });\n }\n\n return results;\n};\n\nconst buildRequestBody = (params: AIProviderStreamParams) => {\n const messages: OllamaMessage[] = params.messages.flatMap(convertMessage);\n\n if (params.systemPrompt) {\n messages.unshift({ content: params.systemPrompt, role: \"system\" });\n }\n\n const body: Record<string, unknown> = {\n messages,\n model: params.model,\n stream: true,\n };\n\n if (params.tools && params.tools.length > 0) {\n body.tools = mapToolDefinitions(params.tools);\n }\n\n const options: Record<string, unknown> = {};\n if (typeof params.temperature === \"number\")\n options.temperature = params.temperature;\n if (typeof params.topP === \"number\") options.top_p = params.topP;\n if (typeof params.maxTokens === \"number\")\n options.num_predict = params.maxTokens;\n if (params.stopSequences && params.stopSequences.length > 0)\n options.stop = params.stopSequences;\n if (typeof params.seed === \"number\") options.seed = params.seed;\n if (typeof params.frequencyPenalty === \"number\")\n options.frequency_penalty = params.frequencyPenalty;\n if (typeof params.presencePenalty === \"number\")\n options.presence_penalty = params.presencePenalty;\n if (Object.keys(options).length > 0) {\n body.options = options;\n }\n\n if (params.responseFormat?.type === \"json_object\") {\n body.format = \"json\";\n } else if (params.responseFormat?.type === \"json_schema\") {\n body.format = params.responseFormat.schema;\n }\n\n return body;\n};\n\nconst isRecord = (val: unknown): val is Record<string, unknown> =>\n val !== null && typeof val === \"object\" && !Array.isArray(val);\n\nconst tryParseJSON = (text: string) => {\n try {\n const result: unknown = JSON.parse(text);\n if (isRecord(result)) {\n return result;\n }\n\n return null;\n } catch {\n return null;\n }\n};\n\nconst buildDoneChunk = (parsed: Record<string, unknown>): AIDoneChunk => {\n const promptEvalCount =\n typeof parsed.prompt_eval_count === \"number\"\n ? parsed.prompt_eval_count\n : undefined;\n const evalCount =\n typeof parsed.eval_count === \"number\" ? parsed.eval_count : undefined;\n const totalDuration =\n typeof parsed.total_duration === \"number\"\n ? parsed.total_duration\n : undefined;\n\n const hasTokenCounts =\n promptEvalCount !== undefined || evalCount !== undefined;\n if (hasTokenCounts) {\n return {\n type: \"done\",\n usage: {\n inputTokens: promptEvalCount ?? ZERO_TOKENS,\n outputTokens: evalCount ?? ZERO_TOKENS,\n },\n };\n }\n\n if (totalDuration !== undefined) {\n return {\n type: \"done\",\n usage: { inputTokens: ZERO_TOKENS, outputTokens: ZERO_TOKENS },\n };\n }\n\n return { type: \"done\" };\n};\n\nconst buildTextChunk = (content: string): AIChunk => ({\n content,\n type: \"text\",\n});\n\nconst extractToolCalls = (message: Record<string, unknown>) => {\n const toolCalls = message.tool_calls;\n\n if (!Array.isArray(toolCalls) || toolCalls.length === 0) {\n return [];\n }\n\n return toolCalls\n .filter(isRecord)\n .filter((call) => isRecord(call.function))\n .map((call) => {\n const func = call.function;\n\n if (!isRecord(func)) {\n return {\n id: crypto.randomUUID(),\n input: {},\n name: \"\",\n type: \"tool_use\" as const,\n };\n }\n\n return {\n id: crypto.randomUUID(),\n input: func.arguments ?? {},\n name: typeof func.name === \"string\" ? func.name : \"\",\n type: \"tool_use\" as const,\n };\n });\n};\n\nconst extractChunks = (parsed: Record<string, unknown>) => {\n const { message } = parsed;\n\n if (!isRecord(message)) {\n return [];\n }\n\n const toolChunks = extractToolCalls(message);\n\n if (toolChunks.length > 0) {\n return toolChunks;\n }\n\n const { content } = message;\n\n if (typeof content !== \"string\" || !content) {\n return [];\n }\n\n return [buildTextChunk(content)];\n};\n\nconst processLine = (line: string) => {\n const trimmed = line.trim();\n\n if (!trimmed) {\n return [];\n }\n\n const parsed = tryParseJSON(trimmed);\n\n if (!parsed) {\n return [];\n }\n\n if (parsed.done === true) {\n return [buildDoneChunk(parsed)];\n }\n\n return extractChunks(parsed);\n};\n\nconst processBufferedLines = (lines: string[]) => lines.flatMap(processLine);\n\nconst readStreamChunks = async (\n reader: ReadableStreamDefaultReader<Uint8Array>,\n decoder: TextDecoder,\n buffer: string,\n signal?: AbortSignal,\n) => {\n const emptyChunks: AIChunk[] = [];\n\n if (signal?.aborted) {\n return {\n allChunks: emptyChunks,\n currentBuffer: buffer,\n finished: true,\n };\n }\n\n const result = await reader.read();\n const { done, value } = result;\n\n if (done) {\n return {\n allChunks: emptyChunks,\n currentBuffer: buffer,\n finished: true,\n };\n }\n\n const currentBuffer = buffer + decoder.decode(value, { stream: true });\n const lines = currentBuffer.split(\"\\n\");\n const remainder = lines.pop() ?? \"\";\n const allChunks = processBufferedLines(lines);\n const finished = allChunks.some((c) => c.type === \"done\");\n\n return { allChunks, currentBuffer: remainder, finished };\n};\n\nconst parseNDJSONStream = async function* (\n body: ReadableStream<Uint8Array>,\n signal?: AbortSignal,\n) {\n const reader = body.getReader();\n\n try {\n yield* parseNDJSONStreamInner(reader, signal);\n } finally {\n reader.releaseLock();\n }\n};\n\nconst parseNDJSONStreamInner = async function* (\n reader: ReadableStreamDefaultReader<Uint8Array>,\n signal?: AbortSignal,\n) {\n const decoder = new TextDecoder();\n let buffer = \"\";\n let done = false;\n\n while (!done) {\n // eslint-disable-next-line no-await-in-loop\n const result = await readStreamChunks(reader, decoder, buffer, signal);\n buffer = result.currentBuffer;\n done = result.finished;\n\n yield* result.allChunks;\n }\n\n yield DONE_CHUNK;\n};\n\nconst fetchAndStream = async function* (\n baseUrl: string,\n params: AIProviderStreamParams,\n) {\n const requestBody = buildRequestBody(params);\n\n const response = await fetch(`${baseUrl}/api/chat`, {\n body: JSON.stringify(requestBody),\n headers: { \"Content-Type\": \"application/json\" },\n method: \"POST\",\n signal: params.signal,\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n throw new Error(`Ollama API error ${response.status}: ${errorText}`);\n }\n\n if (!response.body) {\n throw new Error(\"Ollama API returned no response body\");\n }\n\n yield* parseNDJSONStream(response.body, params.signal);\n};\n\nexport const ollama = (config: OllamaConfig = {}): AIProviderConfig => {\n const baseUrl = config.baseUrl ?? DEFAULT_BASE_URL;\n\n return instrumentAIProvider(\n {\n stream: (params: AIProviderStreamParams) =>\n fetchAndStream(baseUrl, params),\n },\n \"ollama\",\n );\n};\n"
9
9
  ],
10
10
  "mappings": "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",
11
- "debugId": "88E6FD3020B52D1664756E2164756E21",
11
+ "debugId": "BCFEA762FF3D4C7A64756E2164756E21",
12
12
  "names": []
13
13
  }
@@ -921,5 +921,5 @@ export {
921
921
  openai
922
922
  };
923
923
 
924
- //# debugId=89626FDD4663206064756E2164756E21
924
+ //# debugId=1D64B900E136A1C764756E2164756E21
925
925
  //# sourceMappingURL=openai.js.map
@@ -9,6 +9,6 @@
9
9
  "import type {\n AIProviderConfig,\n AIProviderContentBlock,\n AIProviderMessage,\n AIProviderStreamParams,\n AIProviderToolDefinition,\n AIResponseMetadata,\n AIUsage,\n} from \"../../../types/ai\";\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.\nimport { instrumentAIProvider } from \"./instrumentation\";\nimport { ProviderError } from \"../errors/providerError\";\nimport { isOpenAIReasoningModel, openaiEffortValue } from \"./reasoning\";\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\nexport type OpenAIConfig = {\n apiKey?: string;\n baseUrl?: string;\n fetch?: typeof globalThis.fetch;\n headers?:\n | HeadersInit\n | ((params: AIProviderStreamParams) => HeadersInit | Promise<HeadersInit>);\n modelForCapabilities?: (model: string) => string;\n providerName?: string;\n tokenSource?: () => Promise<string> | string;\n transformRequestBody?: (\n body: Record<string, unknown>,\n params: AIProviderStreamParams,\n ) => Record<string, unknown>;\n};\n\ntype OpenAIMessage = {\n content: string | Array<Record<string, unknown>> | null;\n role: \"user\" | \"assistant\" | \"system\" | \"tool\";\n tool_call_id?: string;\n tool_calls?: Array<{\n function: { arguments: string; name: string };\n id: string;\n type: \"function\";\n }>;\n};\n\ntype PendingToolCall = {\n arguments: string;\n id: string;\n name: string;\n};\n\ntype UsageRef = {\n current: AIUsage | undefined;\n};\n\ntype MetadataRef = {\n current: AIResponseMetadata | undefined;\n};\n\ntype StreamState = {\n buffer: string;\n metadataRef: MetadataRef;\n pendingToolCalls: Map<number, PendingToolCall>;\n providerName: string;\n usageRef: UsageRef;\n};\n\nconst DEFAULT_BASE_URL = \"https://api.openai.com\";\nconst SSE_DATA_PREFIX_LENGTH = 6;\nconst DONE_SENTINEL = \"[DONE]\";\nconst NOT_FOUND = -1;\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\nconst hasArrayContent = (\n msg: AIProviderMessage,\n): msg is AIProviderMessage & { content: AIProviderContentBlock[] } =>\n typeof msg.content !== \"string\" && Array.isArray(msg.content);\n\nconst buildToolMessages = (blocks: AIProviderContentBlock[]) => {\n const toolUseBlocks = blocks.filter((block) => block.type === \"tool_use\");\n const toolResultBlocks = blocks.filter(\n (block) => block.type === \"tool_result\",\n );\n const messages: OpenAIMessage[] = [];\n\n if (toolUseBlocks.length > 0) {\n messages.push({\n content: null,\n role: \"assistant\",\n tool_calls: toolUseBlocks.map((block) => ({\n function: {\n arguments:\n typeof block.input === \"string\"\n ? block.input\n : JSON.stringify(block.input),\n name: block.name,\n },\n id: block.id,\n type: \"function\" as const,\n })),\n });\n }\n\n for (const result of toolResultBlocks) {\n messages.push({\n content: typeof result.content === \"string\" ? result.content : \"\",\n role: \"tool\",\n tool_call_id: result.tool_use_id,\n });\n }\n\n return messages;\n};\n\nconst processMessageAtIndex = (\n result: OpenAIMessage[],\n msg: AIProviderMessage,\n idx: number,\n) => {\n if (!hasArrayContent(msg)) {\n return;\n }\n\n const hasToolBlocks = msg.content.some(\n (block) => block.type === \"tool_use\" || block.type === \"tool_result\",\n );\n\n if (!hasToolBlocks) {\n return;\n }\n\n const toolMessages = buildToolMessages(msg.content);\n result.splice(idx, 1, ...toolMessages);\n};\n\nconst convertSingleMessage = (\n result: OpenAIMessage[],\n msg: AIProviderMessage | undefined,\n idx: number,\n) => {\n if (!msg) {\n return;\n }\n\n processMessageAtIndex(result, msg, idx);\n};\n\nconst convertToolResultMessages = (\n messages: OpenAIMessage[],\n params: AIProviderStreamParams,\n) => {\n const result = [...messages];\n\n for (let idx = 0; idx < params.messages.length; idx++) {\n convertSingleMessage(result, params.messages[idx], idx);\n }\n\n return result;\n};\n\nconst mapToolDefinitions = (tools: AIProviderToolDefinition[]) =>\n tools.map((tool) => ({\n function: {\n description: tool.description,\n name: tool.name,\n parameters: tool.input_schema,\n },\n type: \"function\",\n }));\n\nconst mapContentBlockToOpenAI = (block: AIProviderContentBlock) => {\n if (block.type === \"image\") {\n return {\n image_url: {\n url:\n block.source.type === \"url\"\n ? block.source.url\n : `data:${block.source.media_type};base64,${block.source.data}`,\n },\n type: \"image_url\",\n };\n }\n\n if (block.type === \"document\") {\n return {\n file: {\n file_data:\n block.source.type === \"url\"\n ? block.source.url\n : `data:${block.source.media_type};base64,${block.source.data}`,\n filename: block.name ?? \"document.pdf\",\n },\n type: \"file\",\n };\n }\n\n if (block.type === \"audio\") {\n return {\n input_audio: { data: block.source.data, format: block.source.format },\n type: \"input_audio\",\n };\n }\n\n if (block.type === \"video\") {\n return {\n type: \"video_url\",\n video_url: {\n url:\n block.source.type === \"url\"\n ? block.source.url\n : `data:${block.source.media_type};base64,${block.source.data}`,\n },\n };\n }\n\n if (block.type === \"text\") {\n return { text: block.content, type: \"text\" };\n }\n\n return null;\n};\n\nconst mapOpenAIContent = (msg: AIProviderStreamParams[\"messages\"][number]) => {\n if (typeof msg.content === \"string\") {\n return msg.content;\n }\n\n const hasMedia = msg.content.some(\n (block) =>\n block.type === \"image\" ||\n block.type === \"document\" ||\n block.type === \"audio\" ||\n block.type === \"video\",\n );\n\n if (!hasMedia) {\n return null;\n }\n\n return msg.content\n .map(mapContentBlockToOpenAI)\n .filter((mapped) => mapped !== null);\n};\n\nconst buildRequestBody = (\n params: AIProviderStreamParams,\n capabilityModel = params.model,\n) => {\n const messages = convertToolResultMessages(\n params.messages.map((msg) => ({\n content: mapOpenAIContent(msg),\n role: msg.role,\n })),\n params,\n );\n\n if (params.systemPrompt) {\n messages.unshift({ content: params.systemPrompt, role: \"system\" });\n }\n\n const body: Record<string, unknown> = {\n messages,\n model: params.model,\n stream: true,\n stream_options: { include_usage: true },\n };\n\n if (params.tools && params.tools.length > 0) {\n body.tools = mapToolDefinitions(params.tools);\n if (\n params.toolChoice === \"auto\" ||\n params.toolChoice === \"none\" ||\n params.toolChoice === \"required\"\n ) {\n body.tool_choice = params.toolChoice;\n } else if (params.toolChoice && typeof params.toolChoice === \"object\") {\n body.tool_choice = {\n function: { name: params.toolChoice.name },\n type: \"function\",\n };\n }\n if (typeof params.parallelToolCalls === \"boolean\") {\n body.parallel_tool_calls = params.parallelToolCalls;\n }\n }\n\n // Reasoning models (o-series, GPT-5) reject temperature/top_p and use\n // `max_completion_tokens`; they take a `reasoning_effort` dial instead. Other\n // models take the usual sampling params and ignore reasoning.\n if (isOpenAIReasoningModel(capabilityModel)) {\n if (typeof params.maxTokens === \"number\") {\n body.max_completion_tokens = params.maxTokens;\n }\n if (params.reasoning) {\n const effort = openaiEffortValue(capabilityModel, params.reasoning);\n if (effort) body.reasoning_effort = effort;\n }\n } else {\n if (typeof params.temperature === \"number\") {\n body.temperature = params.temperature;\n }\n if (typeof params.topP === \"number\") body.top_p = params.topP;\n if (typeof params.maxTokens === \"number\")\n body.max_tokens = params.maxTokens;\n }\n if (params.stopSequences && params.stopSequences.length > 0)\n body.stop = params.stopSequences;\n if (typeof params.seed === \"number\") body.seed = params.seed;\n if (typeof params.frequencyPenalty === \"number\")\n body.frequency_penalty = params.frequencyPenalty;\n if (typeof params.presencePenalty === \"number\")\n body.presence_penalty = params.presencePenalty;\n\n if (params.responseFormat) {\n if (\n params.responseFormat.type === \"text\" ||\n params.responseFormat.type === \"json_object\"\n ) {\n body.response_format = { type: params.responseFormat.type };\n } else if (params.responseFormat.type === \"json_schema\") {\n body.response_format = {\n json_schema: {\n name: params.responseFormat.name,\n schema: params.responseFormat.schema,\n strict: params.responseFormat.strict ?? true,\n },\n type: \"json_schema\",\n };\n }\n }\n\n return body;\n};\n\nconst parseToolInput = (rawArguments: string) => {\n try {\n return JSON.parse(rawArguments);\n } catch {\n return rawArguments;\n }\n};\n\nconst flushPendingToolCalls = function* (\n pendingToolCalls: Map<number, PendingToolCall>,\n) {\n for (const [, tool] of pendingToolCalls) {\n const input = parseToolInput(tool.arguments);\n yield {\n id: tool.id,\n input,\n name: tool.name,\n type: \"tool_use\" as const,\n };\n }\n\n pendingToolCalls.clear();\n};\n\nconst extractUsage = (\n parsedUsage: Partial<Record<string, number>>,\n): AIUsage => {\n const prompt = parsedUsage.prompt_tokens ?? 0;\n const cached = parsedUsage.cached_tokens ?? 0;\n\n // OpenAI's prompt_tokens INCLUDES cached input tokens. Split the cached\n // portion out (as cacheReadInputTokens) and report only the uncached part as\n // inputTokens — mirroring Anthropic, where input_tokens excludes cache. This\n // lets a cache-aware consumer discount cached input (~10% of full price)\n // instead of billing it at the full input rate.\n return {\n cacheReadInputTokens: cached,\n cacheWriteInputTokens: parsedUsage.cache_write_tokens || undefined,\n costCredits: parsedUsage.cost,\n inputTokens: Math.max(0, prompt - cached),\n outputTokens: parsedUsage.completion_tokens ?? 0,\n reasoningTokens: parsedUsage.reasoning_tokens || undefined,\n upstreamInferenceCostCredits:\n parsedUsage.upstream_inference_cost || undefined,\n };\n};\n\nconst resolveToolCallIndex = (toolCall: Record<string, unknown>) => {\n const raw = typeof toolCall.index === \"number\" ? toolCall.index : NOT_FOUND;\n\n return raw < 0 ? undefined : raw;\n};\n\nconst initPendingToolCall = (\n toolCall: Record<string, unknown>,\n func: Record<string, unknown> | null,\n index: number,\n pendingToolCalls: Map<number, PendingToolCall>,\n) => {\n if (pendingToolCalls.has(index)) {\n return;\n }\n\n const toolId = typeof toolCall.id === \"string\" ? toolCall.id : \"\";\n const toolName = func && typeof func.name === \"string\" ? func.name : \"\";\n\n pendingToolCalls.set(index, {\n arguments: \"\",\n id: toolId,\n name: toolName,\n });\n};\n\nconst updatePendingToolCall = (\n toolCall: Record<string, unknown>,\n func: Record<string, unknown> | null,\n pending: PendingToolCall,\n) => {\n if (typeof toolCall.id === \"string\") {\n pending.id = toolCall.id;\n }\n\n if (func && typeof func.name === \"string\") {\n pending.name = func.name;\n }\n\n if (func && typeof func.arguments === \"string\") {\n pending.arguments += func.arguments;\n }\n};\n\nconst processToolCallDelta = (\n toolCall: Record<string, unknown>,\n pendingToolCalls: Map<number, PendingToolCall>,\n) => {\n const index = resolveToolCallIndex(toolCall);\n if (index === undefined) {\n return;\n }\n\n const func = isRecord(toolCall.function) ? toolCall.function : null;\n initPendingToolCall(toolCall, func, index, pendingToolCalls);\n\n const pending = pendingToolCalls.get(index);\n if (!pending) {\n return;\n }\n\n updatePendingToolCall(toolCall, func, pending);\n};\n\nconst processToolCallDeltas = (\n toolCalls: Array<Record<string, unknown>>,\n pendingToolCalls: Map<number, PendingToolCall>,\n) => {\n for (const toolCall of toolCalls) {\n processToolCallDelta(toolCall, pendingToolCalls);\n }\n};\n\nconst processDelta = function* (\n delta: Record<string, unknown>,\n pendingToolCalls: Map<number, PendingToolCall>,\n) {\n if (typeof delta.content === \"string\") {\n yield { content: delta.content, type: \"text\" as const };\n }\n\n if (isRecord(delta.audio)) {\n const audio = delta.audio;\n if (\n typeof audio.data === \"string\" ||\n typeof audio.transcript === \"string\"\n ) {\n yield {\n audioId: typeof audio.id === \"string\" ? audio.id : undefined,\n data: typeof audio.data === \"string\" ? audio.data : \"\",\n format: typeof audio.format === \"string\" ? audio.format : \"pcm16\",\n transcript:\n typeof audio.transcript === \"string\" ? audio.transcript : undefined,\n type: \"audio\" as const,\n };\n }\n }\n\n if (isRecordArray(delta.tool_calls)) {\n processToolCallDeltas(delta.tool_calls, pendingToolCalls);\n }\n\n if (Array.isArray(delta.annotations)) {\n for (const annotation of delta.annotations) {\n if (!isRecord(annotation) || annotation.type !== \"url_citation\") continue;\n const citation = isRecord(annotation.url_citation)\n ? annotation.url_citation\n : annotation;\n if (typeof citation.url !== \"string\") continue;\n yield {\n content:\n typeof citation.content === \"string\" ? citation.content : undefined,\n endIndex:\n typeof citation.end_index === \"number\"\n ? citation.end_index\n : undefined,\n startIndex:\n typeof citation.start_index === \"number\"\n ? citation.start_index\n : undefined,\n title: typeof citation.title === \"string\" ? citation.title : undefined,\n type: \"citation\" as const,\n url: citation.url,\n };\n }\n }\n};\n\nconst narrowResponseMetadata = (\n parsed: Record<string, unknown>,\n): AIResponseMetadata | undefined => {\n const providerMetadata = isRecord(parsed.openrouter_metadata)\n ? parsed.openrouter_metadata\n : undefined;\n const generationId = typeof parsed.id === \"string\" ? parsed.id : undefined;\n const model = typeof parsed.model === \"string\" ? parsed.model : undefined;\n const serviceTier =\n typeof parsed.service_tier === \"string\" ? parsed.service_tier : undefined;\n const selected =\n providerMetadata && isRecord(providerMetadata.endpoints)\n ? providerMetadata.endpoints.available\n : undefined;\n const selectedEndpoint = Array.isArray(selected)\n ? selected.find((entry) => isRecord(entry) && entry.selected === true)\n : undefined;\n const provider =\n isRecord(selectedEndpoint) && typeof selectedEndpoint.provider === \"string\"\n ? selectedEndpoint.provider\n : undefined;\n if (!providerMetadata && !generationId && !model && !serviceTier) return;\n\n return { generationId, model, provider, providerMetadata, serviceTier };\n};\n\nconst processChoice = function* (\n choice: Record<string, unknown>,\n pendingToolCalls: Map<number, PendingToolCall>,\n) {\n const delta = isRecord(choice.delta) ? choice.delta : null;\n if (delta) {\n yield* processDelta(delta, pendingToolCalls);\n }\n\n if (choice.finish_reason === \"tool_calls\") {\n yield* flushPendingToolCalls(pendingToolCalls);\n }\n};\n\nconst narrowUsageRecord = (parsed: Record<string, unknown>) => {\n if (!isRecord(parsed.usage)) {\n return undefined;\n }\n\n const { usage } = parsed;\n const promptTokens =\n typeof usage.prompt_tokens === \"number\" ? usage.prompt_tokens : 0;\n const completionTokens =\n typeof usage.completion_tokens === \"number\" ? usage.completion_tokens : 0;\n const cachedTokens =\n isRecord(usage.prompt_tokens_details) &&\n typeof usage.prompt_tokens_details.cached_tokens === \"number\"\n ? usage.prompt_tokens_details.cached_tokens\n : 0;\n const cacheWriteTokens =\n isRecord(usage.prompt_tokens_details) &&\n typeof usage.prompt_tokens_details.cache_write_tokens === \"number\"\n ? usage.prompt_tokens_details.cache_write_tokens\n : 0;\n const reasoningTokens =\n isRecord(usage.completion_tokens_details) &&\n typeof usage.completion_tokens_details.reasoning_tokens === \"number\"\n ? usage.completion_tokens_details.reasoning_tokens\n : 0;\n const cost = typeof usage.cost === \"number\" ? usage.cost : undefined;\n const upstreamInferenceCost =\n isRecord(usage.cost_details) &&\n typeof usage.cost_details.upstream_inference_cost === \"number\"\n ? usage.cost_details.upstream_inference_cost\n : undefined;\n\n const normalized = extractUsage({\n cache_write_tokens: cacheWriteTokens,\n cached_tokens: cachedTokens,\n completion_tokens: completionTokens,\n cost,\n prompt_tokens: promptTokens,\n reasoning_tokens: reasoningTokens,\n upstream_inference_cost: upstreamInferenceCost,\n });\n if (isRecord(usage.server_tool_use)) {\n normalized.serverToolUse = Object.fromEntries(\n Object.entries(usage.server_tool_use).filter(\n (entry): entry is [string, number] => typeof entry[1] === \"number\",\n ),\n );\n }\n\n return normalized;\n};\n\nconst processSSELine = function* (\n line: string,\n pendingToolCalls: Map<number, PendingToolCall>,\n providerName: string,\n) {\n const trimmed = line.trim();\n if (!trimmed || !trimmed.startsWith(\"data: \")) {\n return;\n }\n\n const data = trimmed.slice(SSE_DATA_PREFIX_LENGTH);\n if (data === DONE_SENTINEL) {\n yield* flushPendingToolCalls(pendingToolCalls);\n\n return;\n }\n\n let parsed: Record<string, unknown>;\n try {\n parsed = JSON.parse(data);\n } catch {\n return;\n }\n\n if (isRecord(parsed.error)) {\n const error = parsed.error;\n const metadata = isRecord(error.metadata) ? error.metadata : undefined;\n const status = typeof error.code === \"number\" ? error.code : null;\n const type =\n metadata && typeof metadata.error_type === \"string\"\n ? metadata.error_type\n : typeof error.error_type === \"string\"\n ? error.error_type\n : null;\n throw new ProviderError({\n message:\n typeof error.message === \"string\"\n ? error.message\n : \"OpenRouter stream failed\",\n metadata,\n provider: providerName,\n retryable:\n status === 408 ||\n status === 409 ||\n status === 425 ||\n status === 429 ||\n (status !== null && status >= 500),\n status,\n type,\n });\n }\n\n const usageUpdate = narrowUsageRecord(parsed);\n if (usageUpdate) {\n yield { type: \"usage_update\" as const, usage: usageUpdate };\n }\n\n const metadata = narrowResponseMetadata(parsed);\n if (metadata) {\n yield { metadata, type: \"response_metadata\" as const };\n }\n\n const { choices } = parsed;\n if (!isRecordArray(choices)) {\n return;\n }\n\n const [firstChoice] = choices;\n if (!firstChoice) {\n return;\n }\n\n if (isRecord(firstChoice.error)) {\n const error = firstChoice.error;\n const metadata = isRecord(error.metadata) ? error.metadata : undefined;\n const status = typeof error.code === \"number\" ? error.code : null;\n throw new ProviderError({\n message:\n typeof error.message === \"string\"\n ? error.message\n : \"OpenRouter stream failed\",\n metadata,\n provider: providerName,\n retryable: status === 429 || (status !== null && status >= 500),\n status,\n type:\n metadata && typeof metadata.error_type === \"string\"\n ? metadata.error_type\n : null,\n });\n }\n\n yield* processChoice(firstChoice, pendingToolCalls);\n};\n\nconst isUsageUpdate = (chunk: {\n type: string;\n usage?: AIUsage;\n}): chunk is { type: \"usage_update\"; usage: AIUsage } =>\n chunk.type === \"usage_update\";\n\nconst collectYieldableChunks = (\n line: string,\n pendingToolCalls: Map<number, PendingToolCall>,\n usageRef: UsageRef,\n metadataRef: MetadataRef,\n providerName: string,\n) => {\n const allChunks = Array.from(\n processSSELine(line, pendingToolCalls, providerName),\n );\n const usageChunks = allChunks.filter(isUsageUpdate);\n const lastUsage = usageChunks.at(NOT_FOUND);\n\n if (lastUsage) {\n usageRef.current = lastUsage.usage;\n }\n\n const metadataChunks = allChunks.filter(\n (chunk) => chunk.type === \"response_metadata\",\n );\n const lastMetadata = metadataChunks.at(NOT_FOUND);\n if (lastMetadata && \"metadata\" in lastMetadata) {\n metadataRef.current = {\n ...metadataRef.current,\n ...lastMetadata.metadata,\n providerMetadata: {\n ...metadataRef.current?.providerMetadata,\n ...lastMetadata.metadata.providerMetadata,\n },\n };\n }\n\n return allChunks.filter(\n (chunk) => !isUsageUpdate(chunk) && chunk.type !== \"response_metadata\",\n );\n};\n\nconst processSSELines = function* (\n lines: string[],\n pendingToolCalls: Map<number, PendingToolCall>,\n usageRef: UsageRef,\n metadataRef: MetadataRef,\n providerName: string,\n) {\n for (const line of lines) {\n yield* collectYieldableChunks(\n line,\n pendingToolCalls,\n usageRef,\n metadataRef,\n providerName,\n );\n }\n};\n\nconst processStreamValue = (\n value: Uint8Array,\n decoder: TextDecoder,\n state: StreamState,\n) => {\n state.buffer += decoder.decode(value, { stream: true });\n const lines = state.buffer.split(\"\\n\");\n state.buffer = lines.pop() ?? \"\";\n\n return lines;\n};\n\nconst drainReader = async function* (\n reader: ReadableStreamDefaultReader<Uint8Array>,\n decoder: TextDecoder,\n state: StreamState,\n signal?: AbortSignal,\n) {\n /* eslint-disable no-await-in-loop */\n for (\n let result = await reader.read();\n !result.done && !signal?.aborted;\n result = await reader.read()\n ) {\n /* eslint-enable no-await-in-loop */\n const lines = processStreamValue(result.value, decoder, state);\n yield* processSSELines(\n lines,\n state.pendingToolCalls,\n state.usageRef,\n state.metadataRef,\n state.providerName,\n );\n }\n};\n\nconst parseSSEStream = async function* (\n body: ReadableStream<Uint8Array>,\n initialMetadata?: AIResponseMetadata,\n providerName = \"openai\",\n signal?: AbortSignal,\n) {\n const reader = body.getReader();\n const decoder = new TextDecoder();\n const state: StreamState = {\n buffer: \"\",\n metadataRef: { current: initialMetadata },\n pendingToolCalls: new Map<number, PendingToolCall>(),\n providerName,\n usageRef: { current: undefined },\n };\n\n try {\n yield* drainReader(reader, decoder, state, signal);\n yield {\n metadata: state.metadataRef.current,\n type: \"done\" as const,\n usage: state.usageRef.current,\n };\n } finally {\n reader.releaseLock();\n }\n};\n\nconst fetchOpenAIStream = async function* (\n baseUrl: string,\n apiKey: string,\n body: Record<string, unknown>,\n fetchImpl: typeof globalThis.fetch,\n headers: HeadersInit,\n providerName: string,\n signal?: AbortSignal,\n) {\n const target = `${baseUrl}/v1/chat/completions`;\n const requestHeaders = new Headers(headers);\n requestHeaders.set(\"Authorization\", `Bearer ${apiKey}`);\n requestHeaders.set(\"Content-Type\", \"application/json\");\n const response = await fetchImpl(target, {\n ...h2IfHttps(target),\n body: JSON.stringify(body),\n headers: requestHeaders,\n method: \"POST\",\n signal,\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n throw ProviderError.fromResponse(providerName, response.status, errorText);\n }\n\n if (!response.body) {\n throw new ProviderError({\n message: `${providerName} API returned no response body`,\n provider: providerName,\n retryable: true,\n });\n }\n\n yield* parseSSEStream(\n response.body,\n {\n generationId: response.headers.get(\"X-Generation-Id\") ?? undefined,\n providerMetadata: {\n cacheAge: response.headers.get(\"X-OpenRouter-Cache-Age\") ?? undefined,\n cacheSourceId:\n response.headers.get(\"X-OpenRouter-Cache-Source-Id\") ?? undefined,\n cacheStatus:\n response.headers.get(\"X-OpenRouter-Cache-Status\") ?? undefined,\n cacheTtl: response.headers.get(\"X-OpenRouter-Cache-TTL\") ?? undefined,\n },\n },\n providerName,\n signal,\n );\n};\n\nexport const openai = (config: OpenAIConfig): AIProviderConfig => {\n const baseUrl = config.baseUrl ?? DEFAULT_BASE_URL;\n const fetchImpl = config.fetch ?? globalThis.fetch;\n const providerName = config.providerName ?? \"openai\";\n if (!config.apiKey && !config.tokenSource) {\n throw new Error(\"openai() requires either apiKey or tokenSource\");\n }\n const resolveKey = async () => {\n if (config.tokenSource) {\n return await Promise.resolve(config.tokenSource());\n }\n return config.apiKey!;\n };\n const resolveHeaders = async (params: AIProviderStreamParams) =>\n typeof config.headers === \"function\"\n ? await config.headers(params)\n : (config.headers ?? {});\n\n return instrumentAIProvider(\n {\n stream: (params: AIProviderStreamParams) => {\n const openaiBody = buildRequestBody(\n params,\n config.modelForCapabilities?.(params.model) ?? params.model,\n );\n const body = config.transformRequestBody\n ? config.transformRequestBody(openaiBody, params)\n : openaiBody;\n return (async function* () {\n const [apiKey, headers] = await Promise.all([\n resolveKey(),\n resolveHeaders(params),\n ]);\n yield* fetchOpenAIStream(\n baseUrl,\n apiKey,\n body,\n fetchImpl,\n headers,\n providerName,\n params.signal,\n );\n })();\n },\n },\n providerName,\n );\n};\n"
10
10
  ],
11
11
  "mappings": "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",
12
- "debugId": "89626FDD4663206064756E2164756E21",
12
+ "debugId": "1D64B900E136A1C764756E2164756E21",
13
13
  "names": []
14
14
  }
@@ -953,15 +953,15 @@ var xai = (config2) => openaiCompatible({
953
953
  baseUrl: "https://api.x.ai"
954
954
  });
955
955
  export {
956
- xai,
957
- openaiCompatible,
958
- moonshot,
959
- mistralai,
960
- meta,
961
- google,
956
+ alibaba,
962
957
  deepseek,
963
- alibaba
958
+ google,
959
+ meta,
960
+ mistralai,
961
+ moonshot,
962
+ openaiCompatible,
963
+ xai
964
964
  };
965
965
 
966
- //# debugId=358C7591263F968764756E2164756E21
966
+ //# debugId=D136FBED12C5F66B64756E2164756E21
967
967
  //# sourceMappingURL=openaiCompatible.js.map
@@ -10,6 +10,6 @@
10
10
  "import { openai } from \"./openai\";\n\n/**\n * Creates a provider for any OpenAI-compatible API.\n * Many providers (Google, xAI, DeepSeek, Mistral, etc.)\n * expose OpenAI-compatible chat completion endpoints.\n */\nexport const alibaba = (config: { apiKey: string }) =>\n openaiCompatible({\n apiKey: config.apiKey,\n baseUrl: \"https://dashscope-intl.aliyuncs.com/compatible-mode\",\n });\nexport const deepseek = (config: { apiKey: string }) =>\n openaiCompatible({\n apiKey: config.apiKey,\n baseUrl: \"https://api.deepseek.com\",\n });\nexport const google = (config: { apiKey: string }) =>\n openaiCompatible({\n apiKey: config.apiKey,\n baseUrl: \"https://generativelanguage.googleapis.com/v1beta/openai\",\n });\nexport const meta = (config: { apiKey: string }) =>\n openaiCompatible({\n apiKey: config.apiKey,\n baseUrl: \"https://api.llama.com/compat/v1\",\n });\nexport const mistralai = (config: { apiKey: string }) =>\n openaiCompatible({\n apiKey: config.apiKey,\n baseUrl: \"https://api.mistral.ai\",\n });\nexport const moonshot = (config: { apiKey: string }) =>\n openaiCompatible({\n apiKey: config.apiKey,\n baseUrl: \"https://api.moonshot.ai\",\n });\nexport const openaiCompatible = (config: {\n apiKey?: string;\n baseUrl: string;\n tokenSource?: () => Promise<string> | string;\n}) =>\n openai({\n apiKey: config.apiKey,\n baseUrl: config.baseUrl,\n tokenSource: config.tokenSource,\n });\nexport const xai = (config: { apiKey: string }) =>\n openaiCompatible({\n apiKey: config.apiKey,\n baseUrl: \"https://api.x.ai\",\n });\n"
11
11
  ],
12
12
  "mappings": "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",
13
- "debugId": "358C7591263F968764756E2164756E21",
13
+ "debugId": "D136FBED12C5F66B64756E2164756E21",
14
14
  "names": []
15
15
  }
@@ -924,5 +924,5 @@ export {
924
924
  openaiResponses
925
925
  };
926
926
 
927
- //# debugId=6FB19A09EAF4F0BB64756E2164756E21
927
+ //# debugId=6C012FE2A677780E64756E2164756E21
928
928
  //# sourceMappingURL=openaiResponses.js.map