@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.
- package/dist/ai/client/index.js +5 -5
- package/dist/ai/client/index.js.map +1 -1
- package/dist/ai/index.js +153 -114
- package/dist/ai/index.js.map +4 -4
- package/dist/ai/providers/anthropic.js +1 -1
- package/dist/ai/providers/anthropic.js.map +1 -1
- package/dist/ai/providers/gemini.js +1 -1
- package/dist/ai/providers/gemini.js.map +1 -1
- package/dist/ai/providers/ollama.js +1 -1
- package/dist/ai/providers/ollama.js.map +1 -1
- package/dist/ai/providers/openai.js +1 -1
- package/dist/ai/providers/openai.js.map +1 -1
- package/dist/ai/providers/openaiCompatible.js +8 -8
- package/dist/ai/providers/openaiCompatible.js.map +1 -1
- package/dist/ai/providers/openaiResponses.js +1 -1
- package/dist/ai/providers/openaiResponses.js.map +1 -1
- package/dist/ai/providers/openrouter.js +12 -12
- package/dist/ai/providers/openrouter.js.map +1 -1
- package/dist/ai/providers/openrouterSDK.js +3 -3
- package/dist/ai/providers/openrouterSDK.js.map +1 -1
- package/dist/ai/tools/index.js +4 -4
- package/dist/ai/tools/index.js.map +2 -2
- package/dist/ai/tools/untrusted.js +3 -3
- package/dist/ai/tools/untrusted.js.map +2 -2
- package/dist/ai/ui/index.js +42 -42
- package/dist/ai/ui/index.js.map +2 -2
- package/dist/react/ai/index.js +3 -3
- package/dist/react/ai/index.js.map +1 -1
- package/dist/src/ai/generateAI.d.ts +4 -0
- package/dist/vue/ai/index.js +3 -3
- package/dist/vue/ai/index.js.map +1 -1
- package/package.json +199 -199
|
@@ -9,6 +9,6 @@
|
|
|
9
9
|
"import type {\n AIProviderConfig,\n AIProviderContentBlock,\n AIProviderMessage,\n AIProviderStreamParams,\n AIProviderToolDefinition,\n AIUsage,\n AIResponseMetadata,\n} from \"../../../types/ai\";\nimport { instrumentAIProvider } from \"./instrumentation\";\nimport { ProviderError } from \"../errors/providerError\";\nimport { isOpenAIReasoningModel, openaiEffortValue } from \"./reasoning\";\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\nexport type OpenAIResponsesConfig = {\n apiKey?: string;\n baseUrl?: string;\n fetch?: typeof globalThis.fetch;\n headers?:\n | HeadersInit\n | ((params: AIProviderStreamParams) => HeadersInit | Promise<HeadersInit>);\n imageModels?: Set<string> | string[];\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 PendingFunctionCall = {\n callId: string;\n name: string;\n arguments: string;\n providerData?: Record<string, unknown>;\n};\n\ntype StreamState = {\n buffer: string;\n currentEvent: string;\n pendingCalls: Map<string, PendingFunctionCall>;\n usage: AIUsage | undefined;\n providerName: string;\n};\n\nconst DEFAULT_BASE_URL = \"https://api.openai.com\";\nconst EVENT_PREFIX_LENGTH = 7;\nconst 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 mapBlockToResponsesFormat = (block: AIProviderContentBlock) => {\n if (block.type === \"text\") {\n return { text: block.content, type: \"input_text\" };\n }\n\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: \"input_image\",\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: \"input_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: \"input_video\",\n video_url:\n block.source.type === \"url\"\n ? block.source.url\n : `data:${block.source.media_type};base64,${block.source.data}`,\n };\n }\n\n return null;\n};\n\nconst mapContentToResponsesFormat = (\n content: string | AIProviderContentBlock[],\n) => {\n if (typeof content === \"string\") {\n return content;\n }\n\n const parts = content\n .map(mapBlockToResponsesFormat)\n .filter((mapped) => mapped !== null);\n\n return parts.length > 0 ? parts : \"\";\n};\n\nconst hasToolBlocks = (content: AIProviderContentBlock[]) =>\n content.some(\n (block) => block.type === \"tool_use\" || block.type === \"tool_result\",\n );\n\nconst convertToolBlock = (block: AIProviderContentBlock) => {\n if (block.type === \"provider_data\" && block.provider === \"openrouter\") {\n return { ...block.data };\n }\n\n if (block.type === \"tool_use\") {\n if (block.providerData) return { ...block.providerData };\n return {\n arguments:\n typeof block.input === \"string\"\n ? block.input\n : JSON.stringify(block.input),\n call_id: block.id,\n name: block.name,\n type: \"function_call\",\n };\n }\n\n if (block.type === \"tool_result\") {\n return {\n call_id: block.tool_use_id,\n output: typeof block.content === \"string\" ? block.content : \"\",\n type: \"function_call_output\",\n };\n }\n\n return null;\n};\n\nconst convertToolBlocks = (content: AIProviderContentBlock[]) =>\n content.map(convertToolBlock).filter((converted) => converted !== null);\n\nconst convertMessage = (msg: AIProviderMessage) => {\n if (\n typeof msg.content !== \"string\" &&\n Array.isArray(msg.content) &&\n hasToolBlocks(msg.content)\n ) {\n return convertToolBlocks(msg.content);\n }\n\n const content = mapContentToResponsesFormat(msg.content);\n\n return [\n {\n content,\n role: msg.role === \"system\" ? \"developer\" : msg.role,\n type: \"message\",\n },\n ];\n};\n\nconst buildInput = (messages: AIProviderMessage[]) => {\n const input: Array<Record<string, unknown>> = [];\n\n for (const msg of messages) {\n input.push(...convertMessage(msg));\n }\n\n return input;\n};\n\nconst mapToolDefinition = (tool: AIProviderToolDefinition) => ({\n description: tool.description,\n name: tool.name,\n parameters: tool.input_schema,\n type: \"function\",\n});\n\nconst buildTools = (\n tools: AIProviderToolDefinition[] | undefined,\n isImageModel: boolean,\n) => {\n const mapped = tools ? tools.map(mapToolDefinition) : [];\n const result: Array<Record<string, unknown>> = [...mapped];\n\n if (isImageModel) {\n result.push({ type: \"image_generation\" });\n }\n\n return result.length > 0 ? result : undefined;\n};\n\nconst buildRequestBody = (\n params: AIProviderStreamParams,\n isImageModel: boolean,\n capabilityModel = params.model,\n) => {\n const body: Record<string, unknown> = {\n input: buildInput(params.messages),\n model: params.model,\n stream: true,\n };\n\n if (params.systemPrompt) {\n body.instructions = params.systemPrompt;\n }\n\n const tools = buildTools(params.tools, isImageModel);\n\n if (tools) {\n body.tools = 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 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 if (typeof params.temperature === \"number\")\n body.temperature = params.temperature;\n if (typeof params.topP === \"number\") body.top_p = params.topP;\n if (typeof params.maxTokens === \"number\")\n body.max_output_tokens = params.maxTokens;\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.text = { format: { type: params.responseFormat.type } };\n } else if (params.responseFormat.type === \"json_schema\") {\n body.text = {\n format: {\n name: params.responseFormat.name,\n schema: params.responseFormat.schema,\n strict: params.responseFormat.strict ?? true,\n type: \"json_schema\",\n },\n };\n }\n }\n\n // Reasoning models take a `reasoning.effort` dial; non-reasoning models ignore\n // it. Effort comes from the portable `reasoning` knob, mapped per model.\n if (params.reasoning && isOpenAIReasoningModel(capabilityModel)) {\n const effort = openaiEffortValue(capabilityModel, params.reasoning);\n if (effort) {\n body.reasoning = {\n effort,\n summary: \"auto\",\n };\n }\n }\n\n return body;\n};\n\n/* ─── SSE parsing ─── */\n\nconst parseJSON = (data: string) => {\n try {\n return JSON.parse(data);\n } catch {\n return null;\n }\n};\n\nconst parseToolInput = (rawArguments: string) => {\n try {\n return JSON.parse(rawArguments);\n } catch {\n return rawArguments;\n }\n};\n\nconst extractUsage = (response: Record<string, unknown>) => {\n if (!isRecord(response.usage)) {\n return undefined;\n }\n\n const { usage } = response;\n const input = typeof usage.input_tokens === \"number\" ? usage.input_tokens : 0;\n // input_tokens INCLUDES cached input; split it out so the cached portion is\n // discounted (mirrors Anthropic) instead of billed at the full input rate.\n const cached =\n isRecord(usage.input_tokens_details) &&\n typeof usage.input_tokens_details.cached_tokens === \"number\"\n ? usage.input_tokens_details.cached_tokens\n : 0;\n\n const outputDetails = isRecord(usage.output_tokens_details)\n ? usage.output_tokens_details\n : undefined;\n const inputDetails = isRecord(usage.input_tokens_details)\n ? usage.input_tokens_details\n : undefined;\n const costDetails = isRecord(usage.cost_details)\n ? usage.cost_details\n : undefined;\n const normalized: AIUsage = {\n cacheReadInputTokens: cached,\n cacheWriteInputTokens:\n inputDetails && typeof inputDetails.cache_write_tokens === \"number\"\n ? inputDetails.cache_write_tokens\n : undefined,\n costCredits: typeof usage.cost === \"number\" ? usage.cost : undefined,\n inputTokens: Math.max(0, input - cached),\n outputTokens:\n typeof usage.output_tokens === \"number\" ? usage.output_tokens : 0,\n reasoningTokens:\n outputDetails && typeof outputDetails.reasoning_tokens === \"number\"\n ? outputDetails.reasoning_tokens\n : undefined,\n upstreamInferenceCostCredits:\n costDetails && typeof costDetails.upstream_inference_cost === \"number\"\n ? costDetails.upstream_inference_cost\n : undefined,\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 extractResponseMetadata = (\n response: Record<string, unknown>,\n): AIResponseMetadata | undefined => {\n const providerMetadata = isRecord(response.openrouter_metadata)\n ? response.openrouter_metadata\n : undefined;\n const generationId = typeof response.id === \"string\" ? response.id : undefined;\n const model = typeof response.model === \"string\" ? response.model : undefined;\n const provider =\n typeof response.provider === \"string\" ? response.provider : undefined;\n const serviceTier =\n typeof response.service_tier === \"string\"\n ? response.service_tier\n : undefined;\n if (!providerMetadata && !generationId && !model && !provider && !serviceTier)\n return;\n return { generationId, model, provider, providerMetadata, serviceTier };\n};\n\nconst extractMimeFormat = (mimeType: unknown) => {\n if (typeof mimeType !== \"string\") {\n return \"png\";\n }\n\n if (mimeType.includes(\"jpeg\")) return \"jpeg\";\n if (mimeType.includes(\"webp\")) return \"webp\";\n\n return \"png\";\n};\n\nconst processTextDelta = function* (parsed: Record<string, unknown>) {\n if (typeof parsed.delta === \"string\") {\n yield { content: parsed.delta, type: \"text\" as const };\n }\n};\n\nconst processPartialImage = function* (parsed: Record<string, unknown>) {\n const itemId =\n typeof parsed.item_id === \"string\" ? parsed.item_id : undefined;\n const b64 =\n typeof parsed.partial_image_b64 === \"string\"\n ? parsed.partial_image_b64\n : undefined;\n\n if (b64) {\n yield {\n data: b64,\n format: \"png\",\n imageId: itemId,\n isPartial: true,\n type: \"image\" as const,\n };\n }\n};\n\nconst processFunctionCallArgumentsDelta = (\n parsed: Record<string, unknown>,\n pendingCalls: Map<string, PendingFunctionCall>,\n) => {\n const itemId = typeof parsed.item_id === \"string\" ? parsed.item_id : \"\";\n const callId = typeof parsed.call_id === \"string\" ? parsed.call_id : \"\";\n const delta =\n typeof parsed.arguments_delta === \"string\" ? parsed.arguments_delta : \"\";\n\n const existing = pendingCalls.get(itemId);\n\n if (existing) {\n existing.arguments += delta;\n } else {\n pendingCalls.set(itemId, {\n arguments: delta,\n callId,\n name: \"\",\n });\n }\n};\n\nconst processFunctionCallArgumentsDone = function* (\n parsed: Record<string, unknown>,\n pendingCalls: Map<string, PendingFunctionCall>,\n) {\n const itemId = typeof parsed.item_id === \"string\" ? parsed.item_id : \"\";\n const callId = typeof parsed.call_id === \"string\" ? parsed.call_id : \"\";\n const fullArgs = typeof parsed.arguments === \"string\" ? parsed.arguments : \"\";\n\n const pending = pendingCalls.get(itemId);\n const name = pending?.name ?? \"\";\n const args = fullArgs || pending?.arguments || \"\";\n\n pendingCalls.delete(itemId);\n\n yield {\n id: callId || pending?.callId || itemId,\n input: parseToolInput(args),\n name,\n providerData: pending?.providerData\n ? { ...pending.providerData, arguments: args }\n : undefined,\n type: \"tool_use\" as const,\n };\n};\n\nconst processOutputItemAdded = (\n parsed: Record<string, unknown>,\n pendingCalls: Map<string, PendingFunctionCall>,\n) => {\n if (!isRecord(parsed.item)) {\n return;\n }\n\n const { item } = parsed;\n const itemId = typeof item.id === \"string\" ? item.id : \"\";\n const itemType = typeof item.type === \"string\" ? item.type : \"\";\n\n if (itemType !== \"function_call\") {\n return;\n }\n\n const callId = typeof item.call_id === \"string\" ? item.call_id : \"\";\n const name = typeof item.name === \"string\" ? item.name : \"\";\n\n pendingCalls.set(itemId, {\n arguments: \"\",\n callId,\n name,\n providerData: { ...item },\n });\n};\n\nconst processOutputItemDone = function* (parsed: Record<string, unknown>) {\n if (!isRecord(parsed.item) || typeof parsed.item.type !== \"string\") return;\n if (!parsed.item.type.startsWith(\"openrouter:\")) return;\n yield {\n data: { ...parsed.item },\n provider: \"openrouter\",\n type: \"provider_event\" as const,\n };\n};\n\nconst isCompletedImageGeneration = (item: Record<string, unknown>) =>\n item.type === \"image_generation_call\" &&\n item.status === \"completed\" &&\n typeof item.result === \"string\" &&\n item.result !== \"\";\n\nconst buildImageChunk = (item: Record<string, unknown>) => ({\n data: typeof item.result === \"string\" ? item.result : \"\",\n format: extractMimeFormat(item.output_format),\n imageId: typeof item.id === \"string\" ? item.id : undefined,\n isPartial: false,\n revisedPrompt:\n typeof item.revised_prompt === \"string\" ? item.revised_prompt : undefined,\n type: \"image\" as const,\n});\n\nconst extractImageFromOutput = function* (\n output: Array<Record<string, unknown>>,\n) {\n const completedImages = output.filter(isCompletedImageGeneration);\n\n for (const item of completedImages) {\n yield buildImageChunk(item);\n }\n};\n\nconst extractCitationsFromOutput = function* (\n output: Array<Record<string, unknown>>,\n) {\n for (const item of output) {\n if (!isRecordArray(item.content)) continue;\n for (const content of item.content) {\n if (!Array.isArray(content.annotations)) continue;\n for (const annotation of content.annotations) {\n if (!isRecord(annotation) || annotation.type !== \"url_citation\")\n continue;\n if (typeof annotation.url !== \"string\") continue;\n yield {\n content:\n typeof annotation.content === \"string\"\n ? annotation.content\n : undefined,\n endIndex:\n typeof annotation.end_index === \"number\"\n ? annotation.end_index\n : undefined,\n startIndex:\n typeof annotation.start_index === \"number\"\n ? annotation.start_index\n : undefined,\n title:\n typeof annotation.title === \"string\"\n ? annotation.title\n : undefined,\n type: \"citation\" as const,\n url: annotation.url,\n };\n }\n }\n }\n};\n\nconst processCompleted = function* (parsed: Record<string, unknown>) {\n if (!isRecord(parsed.response)) {\n yield { type: \"done\" as const, usage: undefined };\n\n return;\n }\n\n const { response } = parsed;\n const usage = extractUsage(response);\n const metadata = extractResponseMetadata(response);\n\n if (isRecordArray(response.output)) {\n yield* extractCitationsFromOutput(response.output);\n yield* extractImageFromOutput(response.output);\n }\n\n yield { metadata, type: \"done\" as const, usage };\n};\n\nconst responseFailure = (\n eventType: string,\n parsed: Record<string, unknown>,\n providerName: string,\n) => {\n const response = isRecord(parsed.response) ? parsed.response : parsed;\n const error = isRecord(response.error) ? response.error : undefined;\n const type =\n typeof response.error_type === \"string\"\n ? response.error_type\n : error && typeof error.code === \"string\"\n ? error.code\n : eventType;\n return new ProviderError({\n message:\n error && typeof error.message === \"string\"\n ? error.message\n : `OpenRouter Responses API: ${eventType}`,\n metadata: response,\n provider: providerName,\n retryable:\n type === \"rate_limit_exceeded\" ||\n type === \"provider_overloaded\" ||\n type === \"provider_unavailable\" ||\n type === \"server\",\n type,\n });\n};\n\nconst processSSEEvent = function* (\n eventType: string,\n parsed: Record<string, unknown>,\n pendingCalls: Map<string, PendingFunctionCall>,\n providerName: string,\n) {\n switch (eventType) {\n case \"response.reasoning_summary_text.delta\": {\n const delta = typeof parsed.delta === \"string\" ? parsed.delta : \"\";\n if (!delta) break;\n\n yield {\n content: delta,\n type: \"thinking\" as const,\n };\n\n break;\n }\n\n case \"response.output_text.delta\":\n yield* processTextDelta(parsed);\n break;\n\n case \"response.image_generation_call.partial_image\":\n yield* processPartialImage(parsed);\n break;\n\n case \"response.output_item.added\":\n processOutputItemAdded(parsed, pendingCalls);\n break;\n\n case \"response.output_item.done\":\n yield* processOutputItemDone(parsed);\n break;\n\n case \"response.function_call_arguments.delta\":\n processFunctionCallArgumentsDelta(parsed, pendingCalls);\n break;\n\n case \"response.function_call_arguments.done\":\n yield* processFunctionCallArgumentsDone(parsed, pendingCalls);\n break;\n\n case \"response.completed\":\n yield* processCompleted(parsed);\n break;\n\n case \"response.failed\":\n case \"response.incomplete\":\n case \"response.error\":\n case \"error\":\n throw responseFailure(eventType, parsed, providerName);\n }\n};\n\nconst flushSSEBuffer = function* (state: StreamState) {\n if (!state.currentEvent || !state.buffer) {\n return;\n }\n\n const parsed = parseJSON(state.buffer);\n\n if (parsed) {\n yield* processSSEEvent(\n state.currentEvent,\n parsed,\n state.pendingCalls,\n state.providerName,\n );\n }\n\n state.currentEvent = \"\";\n state.buffer = \"\";\n};\n\nconst parseSSELine = (trimmed: string, state: StreamState) => {\n if (trimmed.startsWith(\"event: \")) {\n state.currentEvent = trimmed.slice(EVENT_PREFIX_LENGTH);\n } else if (trimmed.startsWith(\"data: \")) {\n state.buffer = trimmed.slice(DATA_PREFIX_LENGTH);\n }\n};\n\nconst processSSELine = function* (line: string, state: StreamState) {\n const trimmed = line.trim();\n\n if (trimmed) {\n parseSSELine(trimmed, state);\n\n return;\n }\n\n yield* flushSSEBuffer(state);\n};\n\nconst processSSELines = 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* processSSELines(lines, state);\n }\n\n if (textBuffer.trim()) {\n yield* processSSELines([textBuffer, \"\"], state);\n }\n};\n\nconst parseSSEStream = async function* (\n body: ReadableStream<Uint8Array>,\n providerName: string,\n signal?: AbortSignal,\n) {\n const reader = body.getReader();\n const decoder = new TextDecoder();\n const state: StreamState = {\n buffer: \"\",\n currentEvent: \"\",\n pendingCalls: new Map(),\n usage: undefined,\n providerName,\n };\n\n try {\n yield* drainReader(reader, decoder, state, signal);\n yield* flushSSEBuffer(state);\n } finally {\n reader.releaseLock();\n }\n};\n\nconst fetchResponsesStream = 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/responses`;\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} Responses API returned no response body`,\n provider: providerName,\n retryable: true,\n });\n }\n\n yield* parseSSEStream(response.body, providerName, signal);\n};\n\nconst resolveImageModels = (\n imageModels: Set<string> | string[] | undefined,\n) => {\n if (!imageModels) {\n return new Set<string>();\n }\n\n if (imageModels instanceof Set) {\n return imageModels;\n }\n\n return new Set(imageModels);\n};\n\nexport const openaiResponses = (config: OpenAIResponsesConfig) => {\n if (!config.apiKey && !config.tokenSource)\n throw new Error(\"openaiResponses() requires either apiKey or tokenSource\");\n const baseUrl = config.baseUrl ?? DEFAULT_BASE_URL;\n const fetchImpl = config.fetch ?? globalThis.fetch;\n const imageModels = resolveImageModels(config.imageModels);\n const providerName = config.providerName ?? \"openai-responses\";\n const resolveKey = async () =>\n config.tokenSource\n ? await Promise.resolve(config.tokenSource())\n : config.apiKey!;\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 isImageModel = imageModels.has(params.model);\n const builtBody = buildRequestBody(\n params,\n isImageModel,\n config.modelForCapabilities?.(params.model) ?? params.model,\n );\n const body = config.transformRequestBody\n ? config.transformRequestBody(builtBody, params)\n : builtBody;\n return (async function* () {\n const [apiKey, headers] = await Promise.all([\n resolveKey(),\n resolveHeaders(params),\n ]);\n yield* fetchResponsesStream(\n baseUrl,\n apiKey,\n body,\n fetchImpl,\n headers,\n providerName,\n params.signal,\n );\n })();\n },\n } satisfies AIProviderConfig,\n providerName,\n );\n};\n"
|
|
10
10
|
],
|
|
11
11
|
"mappings": "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",
|
|
12
|
-
"debugId": "
|
|
12
|
+
"debugId": "6C012FE2A677780E64756E2164756E21",
|
|
13
13
|
"names": []
|
|
14
14
|
}
|
|
@@ -2964,19 +2964,19 @@ var openrouterMessages = (config2) => {
|
|
|
2964
2964
|
return withOpenRouterPolicy(provider, allowedModels, allowedPresets);
|
|
2965
2965
|
};
|
|
2966
2966
|
export {
|
|
2967
|
-
|
|
2968
|
-
openrouterResponses,
|
|
2969
|
-
openrouterMessages,
|
|
2970
|
-
openrouter,
|
|
2971
|
-
openRouterModelMatchesRule,
|
|
2972
|
-
generateOpenRouterPKCE,
|
|
2973
|
-
exchangeOpenRouterAuthCode,
|
|
2974
|
-
estimateOpenRouterModelCost,
|
|
2975
|
-
estimateOpenRouterCost,
|
|
2976
|
-
createOpenRouterKeyLinks,
|
|
2967
|
+
createOpenRouterAuthorizationUrl,
|
|
2977
2968
|
createOpenRouterClient,
|
|
2978
|
-
|
|
2969
|
+
createOpenRouterKeyLinks,
|
|
2970
|
+
estimateOpenRouterCost,
|
|
2971
|
+
estimateOpenRouterModelCost,
|
|
2972
|
+
exchangeOpenRouterAuthCode,
|
|
2973
|
+
generateOpenRouterPKCE,
|
|
2974
|
+
openRouterModelMatchesRule,
|
|
2975
|
+
openrouter,
|
|
2976
|
+
openrouterMessages,
|
|
2977
|
+
openrouterResponses,
|
|
2978
|
+
verifyOpenRouterWebhookSignature
|
|
2979
2979
|
};
|
|
2980
2980
|
|
|
2981
|
-
//# debugId=
|
|
2981
|
+
//# debugId=35809F9761B2091A64756E2164756E21
|
|
2982
2982
|
//# sourceMappingURL=openrouter.js.map
|
|
@@ -13,6 +13,6 @@
|
|
|
13
13
|
"import type {\n AIProviderConfig,\n AIProviderStreamParams,\n} from \"../../../types/ai\";\nimport { openai } from \"./openai\";\nimport { openaiResponses } from \"./openaiResponses\";\nimport { anthropic } from \"./anthropic\";\n\nexport type OpenRouterDataCollection = \"allow\" | \"deny\";\nexport type OpenRouterQuantization =\n | \"bf16\"\n | \"fp4\"\n | \"fp6\"\n | \"fp8\"\n | \"fp16\"\n | \"fp32\"\n | \"int4\"\n | \"int8\"\n | \"unknown\";\nexport type OpenRouterSortStrategy = \"latency\" | \"price\" | \"throughput\";\nexport type OpenRouterSort =\n | OpenRouterSortStrategy\n | {\n by: OpenRouterSortStrategy;\n partition?: \"model\" | \"none\";\n };\nexport type OpenRouterPerformancePreference =\n | number\n | {\n p50?: number;\n p75?: number;\n p90?: number;\n p99?: number;\n };\nexport type OpenRouterMaxPrice = {\n /** Maximum completion-token price in USD per million tokens. */\n completion?: number;\n /** Maximum price in USD per image. */\n image?: number;\n /** Maximum prompt-token price in USD per million tokens. */\n prompt?: number;\n /** Maximum price in USD per request. */\n request?: number;\n};\n\nexport type OpenRouterProviderRouting = {\n allowFallbacks?: boolean;\n dataCollection?: OpenRouterDataCollection;\n enforceDistillableText?: boolean;\n ignore?: readonly string[];\n maxPrice?: OpenRouterMaxPrice;\n only?: readonly string[];\n order?: readonly string[];\n preferredMaxLatency?: OpenRouterPerformancePreference;\n preferredMinThroughput?: OpenRouterPerformancePreference;\n quantizations?: readonly OpenRouterQuantization[];\n requireParameters?: boolean;\n sort?: OpenRouterSort;\n zdr?: boolean;\n};\n\nexport type OpenRouterServiceTier =\n | \"auto\"\n | \"default\"\n | \"flex\"\n | \"priority\"\n | \"fast\";\n\nexport type OpenRouterResponseCache = {\n clear?: boolean;\n enabled: boolean;\n /** OpenRouter response-cache TTL in seconds (1-86400). */\n ttlSeconds?: number;\n};\n\nexport type OpenRouterCacheControl = {\n type: \"ephemeral\";\n ttl?: \"5m\" | \"1h\";\n};\n\nexport type OpenRouterPromptCacheOptions = {\n mode: \"explicit\";\n ttl?: string;\n};\n\nexport type OpenRouterReasoning = {\n context?: \"all_turns\" | \"auto\" | \"current_turn\";\n effort?: \"minimal\" | \"low\" | \"medium\" | \"high\" | \"max\" | \"xhigh\";\n enabled?: boolean;\n exclude?: boolean;\n maxTokens?: number;\n mode?: \"pro\";\n summary?: \"auto\" | \"concise\" | \"detailed\";\n};\n\nexport type OpenRouterTrace = Record<string, unknown> & {\n generation_name?: string;\n parent_span_id?: string;\n span_name?: string;\n trace_id?: string;\n trace_name?: string;\n};\n\nexport type OpenRouterAudioOutput = {\n format: \"wav\" | \"mp3\" | \"flac\" | \"opus\" | \"pcm16\";\n voice: string;\n};\n\nexport type OpenRouterAutoRouterCostTier =\n | \"low\"\n | \"medium\"\n | \"high\"\n | \"xhigh\"\n | \"max\";\n\nexport type OpenRouterAutoRouterPlugin = {\n id: \"auto-router\";\n /** Restrict Auto Router candidates; omitted means the full catalog. */\n allowed_models?: readonly string[];\n cost_tier?: OpenRouterAutoRouterCostTier;\n /** Legacy numeric control. When present, OpenRouter prioritizes it over cost_tier. */\n cost_quality_tradeoff?: number;\n};\n\n/** @deprecated OpenRouter recommends the `openrouter:web_search` server tool. */\nexport type OpenRouterWebSearchPlugin = {\n id: \"web\";\n engine?: \"native\" | \"exa\" | \"firecrawl\" | \"parallel\" | \"perplexity\";\n exclude_domains?: readonly string[];\n include_domains?: readonly string[];\n max_results?: number;\n search_prompt?: string;\n};\n\nexport type OpenRouterFusionPlugin = {\n id: \"fusion\";\n analysis_models?: readonly string[];\n enabled?: boolean;\n max_tool_calls?: number;\n model?: string;\n preset?: string;\n};\n\nexport type OpenRouterResponseHealingPlugin = { id: \"response-healing\" };\n\nexport type OpenRouterPlugin =\n | OpenRouterAutoRouterPlugin\n | OpenRouterFusionPlugin\n | OpenRouterResponseHealingPlugin\n | OpenRouterWebSearchPlugin\n | {\n id: string;\n [option: string]: unknown;\n };\n\nexport type OpenRouterWebSearchParameters = {\n allowed_domains?: readonly string[];\n engine?: \"auto\" | \"native\" | \"exa\" | \"firecrawl\" | \"parallel\" | \"perplexity\";\n excluded_domains?: readonly string[];\n max_characters?: number;\n max_results?: number;\n max_total_results?: number;\n search_context_size?: \"low\" | \"medium\" | \"high\";\n user_location?: {\n city?: string;\n country?: string;\n region?: string;\n timezone?: string;\n type: \"approximate\";\n };\n};\n\nexport type OpenRouterWebFetchParameters = {\n allowed_domains?: readonly string[];\n blocked_domains?: readonly string[];\n engine?: \"auto\" | \"native\" | \"exa\" | \"openrouter\" | \"firecrawl\" | \"parallel\";\n max_content_tokens?: number;\n max_uses?: number;\n};\n\nexport type OpenRouterImageGenerationParameters = {\n aspect_ratio?: string;\n background?: string;\n model?: string;\n moderation?: string;\n output_compression?: number;\n output_format?: string;\n quality?: string;\n size?: string;\n};\n\nexport type OpenRouterSubagentParameters = {\n inherit_functions?: boolean;\n inherited_function_names?: readonly string[];\n instructions?: string;\n max_completion_tokens?: number;\n max_tool_calls?: number;\n model?: string;\n name?: string;\n reasoning?: {\n effort?: OpenRouterReasoning[\"effort\"];\n max_tokens?: number;\n };\n temperature?: number;\n tools?: readonly Exclude<\n OpenRouterServerTool,\n { type: \"openrouter:subagent\" }\n >[];\n};\n\nexport type OpenRouterAdvisorParameters = {\n forward_transcript?: boolean;\n instructions?: string;\n max_completion_tokens?: number;\n model?: string;\n name?: string;\n reasoning?: { effort?: string; max_tokens?: number };\n stream?: boolean;\n temperature?: number;\n};\n\nexport type OpenRouterFusionServerToolParameters = {\n analysis_models?: readonly string[];\n cache_control?: OpenRouterCacheControl;\n max_completion_tokens?: number;\n max_tool_calls?: number;\n model?: string;\n reasoning?: { effort?: string; max_tokens?: number };\n temperature?: number;\n tools?: readonly OpenRouterServerTool[];\n};\n\nexport type OpenRouterShellParameters = {\n engine?: \"auto\" | \"openrouter\";\n environment?:\n | { type: \"container_auto\" }\n | { container_id: string; type: \"container_reference\" };\n sleep_after_seconds?: number;\n};\n\nexport type OpenRouterServerTool =\n | {\n type: \"openrouter:web_search\";\n parameters?: OpenRouterWebSearchParameters;\n }\n | { type: \"openrouter:web_fetch\"; parameters?: OpenRouterWebFetchParameters }\n | { type: \"openrouter:datetime\"; parameters?: { timezone?: string } }\n | {\n type: \"openrouter:image_generation\";\n parameters?: OpenRouterImageGenerationParameters;\n }\n | {\n type: \"openrouter:apply_patch\";\n parameters?: { engine?: \"auto\" | \"native\" | \"openrouter\" };\n }\n | { type: \"openrouter:subagent\"; parameters: OpenRouterSubagentParameters }\n | {\n type: \"openrouter:advisor\";\n parameters?: OpenRouterAdvisorParameters;\n }\n | {\n type: \"openrouter:fusion\";\n parameters?: OpenRouterFusionServerToolParameters;\n }\n | { type: \"openrouter:shell\"; parameters?: OpenRouterShellParameters }\n | {\n type: \"openrouter:experimental__search_models\";\n parameters?: { max_results?: number };\n };\n\nexport type OpenRouterRequestOptions = {\n /** Stream text and synthesized audio from an audio-output chat model. */\n audioOutput?: OpenRouterAudioOutput;\n /** Automatic top-level prompt caching, including optional Anthropic TTL. */\n cacheControl?: OpenRouterCacheControl;\n /** Future OpenRouter fields. Security-sensitive routing fields are rejected. */\n extraBody?: Record<string, unknown>;\n fallbackModels?: readonly string[];\n includeReasoning?: boolean;\n maxToolCalls?: number;\n /** Native `/messages` server-tool definitions and replayable tool shapes. */\n messagesTools?: readonly Record<string, unknown>[];\n plugins?: readonly OpenRouterPlugin[];\n /** Stable cache identity used by compatible OpenAI-family models. */\n promptCacheKey?: string;\n /** OpenAI explicit-cache mode and TTL. */\n promptCacheOptions?: OpenRouterPromptCacheOptions;\n preset?: string;\n responseCache?: OpenRouterResponseCache;\n /** OpenRouter-native reasoning controls beyond the portable effort knob. */\n reasoning?: OpenRouterReasoning;\n routerMetadata?: boolean;\n routing?: OpenRouterProviderRouting;\n serverTools?: readonly OpenRouterServerTool[];\n serviceTier?: OpenRouterServiceTier;\n sessionId?: string;\n stopServerToolsWhen?: readonly Record<string, unknown>[];\n /** Metadata forwarded to configured OpenRouter Broadcast destinations. */\n trace?: OpenRouterTrace;\n transforms?: readonly string[];\n user?: string;\n verbosity?: \"low\" | \"medium\" | \"high\";\n};\n\nexport type OpenRouterConfig = {\n /**\n * Local model policy. Entries are exact model IDs or namespace wildcards such\n * as `anthropic/*`. Requests outside the list fail before network access.\n */\n allowedModels?: readonly string[];\n /** Preset slugs deliberately approved for use with this provider. */\n allowedPresets?: readonly string[];\n /**\n * Inference-provider policy sent as OpenRouter's `provider.only`. When\n * `routing.only` is also set, every entry must be allowed by this policy.\n */\n allowedProviders?: readonly string[];\n apiKey?: string;\n /** Up to two OpenRouter marketplace categories. */\n appCategories?: readonly string[];\n /** Public application name used for optional OpenRouter attribution. */\n appName?: string;\n /** Public application URL used for optional OpenRouter attribution. */\n appUrl?: string;\n baseUrl?: string;\n fetch?: typeof globalThis.fetch;\n headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);\n /** Default OpenRouter request options, overridable per call. */\n requestOptions?: OpenRouterRequestOptions;\n routing?: OpenRouterProviderRouting;\n tokenSource?: () => Promise<string> | string;\n};\n\nconst DEFAULT_BASE_URL = \"https://openrouter.ai/api\";\nconst MAX_APP_CATEGORIES = 2;\n\nconst withoutLatestPrefix = (model: string) =>\n model.startsWith(\"~\") ? model.slice(1) : model;\n\nconst modelForOpenAICapabilities = (model: string) => {\n const normalized = withoutLatestPrefix(model);\n return normalized.startsWith(\"openai/\")\n ? normalized.slice(\"openai/\".length)\n : normalized;\n};\n\nconst modelMatchesRule = (model: string, rule: string) => {\n const normalizedModel = withoutLatestPrefix(model);\n const normalizedRule = withoutLatestPrefix(rule);\n if (normalizedRule.endsWith(\"/*\")) {\n return normalizedModel.startsWith(normalizedRule.slice(0, -1));\n }\n\n return normalizedModel === normalizedRule;\n};\n\nconst providerMatchesRule = (provider: string, rule: string) =>\n provider === rule || provider.startsWith(`${rule}/`);\n\nconst assertNonEmptyPolicy = (\n label: string,\n value: readonly string[] | undefined,\n) => {\n if (value && value.length === 0) {\n throw new Error(`openrouter() ${label} must not be empty`);\n }\n};\n\nconst assertRoutingPolicy = (config: OpenRouterConfig) => {\n assertNonEmptyPolicy(\"allowedProviders\", config.allowedProviders);\n assertNonEmptyPolicy(\"routing.only\", config.routing?.only);\n assertNonEmptyPolicy(\"allowedPresets\", config.allowedPresets);\n if (\n config.appCategories &&\n config.appCategories.length > MAX_APP_CATEGORIES\n ) {\n throw new Error(\"openrouter() appCategories supports at most 2 entries\");\n }\n if (!config.allowedProviders) return;\n const selected = [\n ...(config.routing?.only ?? []),\n ...(config.routing?.order ?? []),\n ];\n const denied = selected.find(\n (provider) =>\n !config.allowedProviders!.some((rule) =>\n providerMatchesRule(provider, rule),\n ),\n );\n if (denied) {\n throw new Error(\n `openrouter() provider \"${denied}\" is outside allowedProviders`,\n );\n }\n};\n\nconst assertRequestRoutingPolicy = (\n routing: OpenRouterProviderRouting | undefined,\n allowedProviders: readonly string[] | undefined,\n) => {\n assertRoutingPolicy({\n allowedProviders,\n apiKey: \"policy-validation\",\n routing,\n });\n};\n\nconst mapRouting = (\n routing: OpenRouterProviderRouting | undefined,\n allowedProviders: readonly string[] | undefined,\n) => {\n const only = routing?.only ?? allowedProviders;\n const wire: Record<string, unknown> = {};\n if (typeof routing?.allowFallbacks === \"boolean\")\n wire.allow_fallbacks = routing.allowFallbacks;\n if (routing?.dataCollection) wire.data_collection = routing.dataCollection;\n if (typeof routing?.enforceDistillableText === \"boolean\")\n wire.enforce_distillable_text = routing.enforceDistillableText;\n if (routing?.ignore) wire.ignore = [...routing.ignore];\n if (routing?.maxPrice) wire.max_price = { ...routing.maxPrice };\n if (only) wire.only = [...only];\n if (routing?.order) wire.order = [...routing.order];\n if (routing?.preferredMaxLatency !== undefined)\n wire.preferred_max_latency = routing.preferredMaxLatency;\n if (routing?.preferredMinThroughput !== undefined)\n wire.preferred_min_throughput = routing.preferredMinThroughput;\n if (routing?.quantizations) wire.quantizations = [...routing.quantizations];\n if (typeof routing?.requireParameters === \"boolean\")\n wire.require_parameters = routing.requireParameters;\n if (routing?.sort) wire.sort = routing.sort;\n if (typeof routing?.zdr === \"boolean\") wire.zdr = routing.zdr;\n\n return wire;\n};\n\nconst requestOptionsFor = (\n params: AIProviderStreamParams,\n defaults: OpenRouterRequestOptions | undefined,\n) => {\n const supplied = params.providerOptions?.openrouter;\n if (supplied !== undefined && (typeof supplied !== \"object\" || !supplied)) {\n throw new Error(\"providerOptions.openrouter must be an object\");\n }\n\n return {\n ...defaults,\n ...(supplied as OpenRouterRequestOptions | undefined),\n };\n};\n\nconst resolveAttributionHeaders = async (\n config: OpenRouterConfig,\n params: AIProviderStreamParams,\n) => {\n const supplied =\n typeof config.headers === \"function\"\n ? await config.headers()\n : (config.headers ?? {});\n const headers = new Headers(supplied);\n if (config.appUrl) headers.set(\"HTTP-Referer\", config.appUrl);\n if (config.appName) headers.set(\"X-OpenRouter-Title\", config.appName);\n if (config.appCategories?.length) {\n headers.set(\"X-OpenRouter-Categories\", config.appCategories.join(\",\"));\n }\n const options = requestOptionsFor(params, config.requestOptions);\n if (options.routerMetadata ?? true)\n headers.set(\"X-OpenRouter-Metadata\", \"enabled\");\n if (options.sessionId) headers.set(\"X-Session-Id\", options.sessionId);\n if (options.responseCache) {\n headers.set(\n \"X-OpenRouter-Cache\",\n options.responseCache.enabled ? \"true\" : \"false\",\n );\n if (options.responseCache.ttlSeconds !== undefined)\n headers.set(\n \"X-OpenRouter-Cache-TTL\",\n String(options.responseCache.ttlSeconds),\n );\n if (options.responseCache.clear)\n headers.set(\"X-OpenRouter-Cache-Clear\", \"true\");\n }\n\n return headers;\n};\n\nconst SECURITY_SENSITIVE_EXTRA_BODY_FIELDS = new Set([\n \"messages\",\n \"model\",\n \"models\",\n \"plugins\",\n \"preset\",\n \"provider\",\n \"stream\",\n \"tools\",\n]);\n\nconst assertAllowedPreset = (\n preset: string | undefined,\n allowedPresets: readonly string[] | undefined,\n) => {\n if (!preset) return;\n if (allowedPresets?.includes(preset)) return;\n throw new Error(`OpenRouter preset \"${preset}\" is not allowed`);\n};\n\nconst assertIndirectModels = (\n value: unknown,\n allowedModels: readonly string[] | undefined,\n key = \"\",\n) => {\n if (key === \"model\" && typeof value === \"string\")\n assertAllowedModel(value, allowedModels);\n if (\n (key === \"models\" ||\n key === \"analysis_models\" ||\n key === \"allowed_models\") &&\n Array.isArray(value)\n ) {\n for (const model of value) {\n if (typeof model === \"string\") assertAllowedModel(model, allowedModels);\n }\n }\n if (Array.isArray(value)) {\n for (const item of value) assertIndirectModels(item, allowedModels);\n } else if (value && typeof value === \"object\") {\n for (const [childKey, child] of Object.entries(value))\n assertIndirectModels(child, allowedModels, childKey);\n }\n};\n\nconst assertIntegerRange = (\n label: string,\n value: number | undefined,\n minimum: number,\n maximum?: number,\n) => {\n if (value === undefined) return;\n if (\n !Number.isInteger(value) ||\n value < minimum ||\n (maximum !== undefined && value > maximum)\n )\n throw new Error(\n `OpenRouter ${label} must be an integer from ${minimum}${maximum === undefined ? \" or greater\" : ` to ${maximum}`}`,\n );\n};\n\nconst assertPluginOptions = (\n plugins: readonly OpenRouterPlugin[] | undefined,\n) => {\n for (const plugin of plugins ?? []) {\n if (plugin.id === \"response-healing\")\n throw new Error(\n \"OpenRouter response-healing requires a non-streaming request; use createOpenRouterClient().chat()\",\n );\n if (plugin.id === \"fusion\") {\n const fusion = plugin as OpenRouterFusionPlugin;\n if (\n fusion.analysis_models &&\n (fusion.analysis_models.length < 1 || fusion.analysis_models.length > 8)\n )\n throw new Error(\n \"OpenRouter Fusion analysis_models must contain 1-8 models\",\n );\n assertIntegerRange(\"Fusion max_tool_calls\", fusion.max_tool_calls, 1, 16);\n }\n if (plugin.id === \"web\") {\n const web = plugin as OpenRouterWebSearchPlugin;\n assertIntegerRange(\n \"web plugin max_results\",\n web.max_results,\n 1,\n web.engine === \"perplexity\" ? 20 : 25,\n );\n if (\n web.include_domains?.length &&\n web.exclude_domains?.length &&\n (web.engine === \"firecrawl\" ||\n web.engine === \"parallel\" ||\n web.engine === \"perplexity\")\n )\n throw new Error(\n `OpenRouter ${web.engine} web plugin cannot combine include_domains and exclude_domains`,\n );\n }\n }\n};\n\nconst assertServerToolOptions = (\n tools: readonly OpenRouterServerTool[] | undefined,\n) => {\n for (const tool of tools ?? []) {\n if (tool.type === \"openrouter:web_search\") {\n const parameters = tool.parameters;\n assertIntegerRange(\n \"web search max_results\",\n parameters?.max_results,\n 1,\n 25,\n );\n if (\n parameters?.engine === \"perplexity\" &&\n (parameters.max_results ?? 0) > 20\n )\n throw new Error(\n \"OpenRouter Perplexity web search max_results must be at most 20\",\n );\n assertIntegerRange(\n \"web search max_characters\",\n parameters?.max_characters,\n 1,\n 100_000,\n );\n assertIntegerRange(\n \"web search max_total_results\",\n parameters?.max_total_results,\n 1,\n );\n }\n if (tool.type === \"openrouter:web_fetch\") {\n assertIntegerRange(\"web fetch max_uses\", tool.parameters?.max_uses, 1);\n assertIntegerRange(\n \"web fetch max_content_tokens\",\n tool.parameters?.max_content_tokens,\n 1,\n );\n }\n if (tool.type === \"openrouter:image_generation\") {\n const compression = tool.parameters?.output_compression;\n if (\n compression !== undefined &&\n (!Number.isFinite(compression) || compression < 0 || compression > 100)\n )\n throw new Error(\n \"OpenRouter image generation output_compression must be 0-100\",\n );\n }\n if (tool.type === \"openrouter:subagent\") {\n assertIntegerRange(\n \"subagent max_completion_tokens\",\n tool.parameters.max_completion_tokens,\n 1,\n );\n assertIntegerRange(\n \"subagent max_tool_calls\",\n tool.parameters.max_tool_calls,\n 1,\n 25,\n );\n const temperature = tool.parameters.temperature;\n if (\n temperature !== undefined &&\n (!Number.isFinite(temperature) || temperature < 0 || temperature > 2)\n )\n throw new Error(\"OpenRouter subagent temperature must be 0-2\");\n assertServerToolOptions(tool.parameters.tools);\n }\n if (tool.type === \"openrouter:advisor\") {\n assertIntegerRange(\n \"advisor max_completion_tokens\",\n tool.parameters?.max_completion_tokens,\n 1,\n );\n const temperature = tool.parameters?.temperature;\n if (\n temperature !== undefined &&\n (!Number.isFinite(temperature) || temperature < 0 || temperature > 2)\n )\n throw new Error(\"OpenRouter advisor temperature must be 0-2\");\n }\n if (tool.type === \"openrouter:fusion\") {\n const analysisModels = tool.parameters?.analysis_models;\n if (\n analysisModels &&\n (analysisModels.length < 1 || analysisModels.length > 8)\n )\n throw new Error(\n \"OpenRouter Fusion server tool analysis_models must contain 1-8 models\",\n );\n assertIntegerRange(\n \"Fusion server tool max_completion_tokens\",\n tool.parameters?.max_completion_tokens,\n 1,\n );\n assertIntegerRange(\n \"Fusion server tool max_tool_calls\",\n tool.parameters?.max_tool_calls,\n 1,\n 16,\n );\n const temperature = tool.parameters?.temperature;\n if (\n temperature !== undefined &&\n (!Number.isFinite(temperature) || temperature < 0 || temperature > 2)\n )\n throw new Error(\n \"OpenRouter Fusion server tool temperature must be 0-2\",\n );\n assertServerToolOptions(tool.parameters?.tools);\n }\n if (tool.type === \"openrouter:shell\") {\n assertIntegerRange(\n \"shell sleep_after_seconds\",\n tool.parameters?.sleep_after_seconds,\n 0,\n 2_592_000,\n );\n const environment = tool.parameters?.environment;\n if (\n environment?.type === \"container_reference\" &&\n (environment.container_id.length < 1 ||\n environment.container_id.length > 20)\n )\n throw new Error(\n \"OpenRouter shell container_id must contain 1-20 characters\",\n );\n }\n if (tool.type === \"openrouter:experimental__search_models\")\n assertIntegerRange(\n \"model search max_results\",\n tool.parameters?.max_results,\n 1,\n 20,\n );\n }\n};\n\nconst assertRequestOptions = (\n options: OpenRouterRequestOptions,\n allowedModels: readonly string[] | undefined,\n allowedPresets: readonly string[] | undefined,\n allowedProviders: readonly string[] | undefined,\n) => {\n assertAllowedPreset(options.preset, allowedPresets);\n assertRequestRoutingPolicy(options.routing, allowedProviders);\n if (options.sessionId && options.sessionId.length > 256)\n throw new Error(\"OpenRouter sessionId must be at most 256 characters\");\n const ttl = options.responseCache?.ttlSeconds;\n if (ttl !== undefined && (!Number.isInteger(ttl) || ttl < 1 || ttl > 86400))\n throw new Error(\"OpenRouter response-cache TTL must be 1-86400 seconds\");\n if (options.responseCache?.clear && !options.responseCache.enabled)\n throw new Error(\"OpenRouter cache clear requires response caching enabled\");\n if (options.fallbackModels) {\n if (options.fallbackModels.length === 0)\n throw new Error(\"OpenRouter fallbackModels must not be empty\");\n for (const model of options.fallbackModels)\n assertAllowedModel(model, allowedModels);\n }\n assertIndirectModels(options.serverTools, allowedModels);\n assertIndirectModels(options.messagesTools, allowedModels);\n assertIndirectModels(options.plugins, allowedModels);\n assertPluginOptions(options.plugins);\n assertServerToolOptions(options.serverTools);\n if (options.extraBody) {\n const unsafe = Object.keys(options.extraBody).find((key) =>\n SECURITY_SENSITIVE_EXTRA_BODY_FIELDS.has(key),\n );\n if (unsafe)\n throw new Error(`OpenRouter extraBody cannot override \"${unsafe}\"`);\n }\n};\n\nconst assertAllowedModel = (\n model: string,\n allowedModels: readonly string[] | undefined,\n) => {\n if (!allowedModels) return;\n if (allowedModels.some((rule) => modelMatchesRule(model, rule))) return;\n throw new Error(`OpenRouter model \"${model}\" is not allowed`);\n};\n\nconst snapshotPolicy = (config: OpenRouterConfig) => ({\n allowedModels: config.allowedModels ? [...config.allowedModels] : undefined,\n allowedPresets: config.allowedPresets\n ? [...config.allowedPresets]\n : undefined,\n});\n\nconst transformOpenRouterRequest = (\n config: OpenRouterConfig,\n allowedModels: readonly string[] | undefined,\n allowedPresets: readonly string[] | undefined,\n body: Record<string, unknown>,\n params: AIProviderStreamParams,\n skin: \"messages\" | \"openai\" = \"openai\",\n) => {\n const options = requestOptionsFor(params, config.requestOptions);\n assertRequestOptions(\n options,\n allowedModels,\n allowedPresets,\n config.allowedProviders,\n );\n const transformed = { ...body, ...options.extraBody };\n if (options.audioOutput) {\n transformed.audio = options.audioOutput;\n transformed.modalities = [\"text\", \"audio\"];\n }\n if (skin === \"openai\") {\n const requestedReasoning: Record<string, unknown> = {};\n if (params.reasoning?.budgetTokens !== undefined) {\n requestedReasoning.max_tokens = params.reasoning.budgetTokens;\n delete transformed.reasoning_effort;\n } else if (params.reasoning?.effort) {\n requestedReasoning.effort = params.reasoning.effort;\n delete transformed.reasoning_effort;\n }\n if (options.reasoning) {\n Object.assign(requestedReasoning, options.reasoning);\n if (options.reasoning.maxTokens !== undefined) {\n requestedReasoning.max_tokens = options.reasoning.maxTokens;\n delete requestedReasoning.maxTokens;\n }\n }\n if (Object.keys(requestedReasoning).length > 0)\n transformed.reasoning = requestedReasoning;\n }\n const automaticCacheControl =\n params.promptCaching === true || params.cacheSystemPrompt === true\n ? ({ type: \"ephemeral\" } satisfies OpenRouterCacheControl)\n : undefined;\n const cacheControl = options.cacheControl ?? automaticCacheControl;\n if (cacheControl) transformed.cache_control = cacheControl;\n if (options.promptCacheKey)\n transformed.prompt_cache_key = options.promptCacheKey;\n if (options.promptCacheOptions)\n transformed.prompt_cache_options = options.promptCacheOptions;\n const routing = mapRouting(\n { ...config.routing, ...options.routing },\n config.allowedProviders,\n );\n if (Object.keys(routing).length > 0) transformed.provider = routing;\n if (options.fallbackModels) transformed.models = [...options.fallbackModels];\n if (options.includeReasoning !== undefined)\n transformed.include_reasoning = options.includeReasoning;\n if (options.maxToolCalls !== undefined)\n transformed.max_tool_calls = options.maxToolCalls;\n if (options.plugins) transformed.plugins = [...options.plugins];\n if (options.preset) transformed.preset = options.preset;\n if (options.serverTools) {\n transformed.tools = [\n ...(Array.isArray(transformed.tools) ? transformed.tools : []),\n ...options.serverTools,\n ];\n }\n if (options.messagesTools) {\n if (skin !== \"messages\")\n throw new Error(\"OpenRouter messagesTools requires openrouterMessages()\");\n transformed.tools = [\n ...(Array.isArray(transformed.tools) ? transformed.tools : []),\n ...options.messagesTools,\n ];\n }\n if (options.serviceTier) transformed.service_tier = options.serviceTier;\n if (options.sessionId) transformed.session_id = options.sessionId;\n if (options.stopServerToolsWhen)\n transformed.stop_server_tools_when = options.stopServerToolsWhen;\n if (options.trace) transformed.trace = options.trace;\n if (options.transforms) transformed.transforms = [...options.transforms];\n if (options.user) transformed.user = options.user;\n if (options.verbosity) transformed.verbosity = options.verbosity;\n\n return transformed;\n};\n\nconst withOpenRouterPolicy = (\n provider: AIProviderConfig,\n allowedModels: readonly string[] | undefined,\n allowedPresets: readonly string[] | undefined,\n): AIProviderConfig => ({\n stream: (params) => {\n if (params.model.startsWith(\"@preset/\")) {\n assertAllowedPreset(\n params.model.slice(\"@preset/\".length),\n allowedPresets,\n );\n } else {\n const presetSeparator = params.model.indexOf(\"@preset/\");\n if (presetSeparator >= 0) {\n assertAllowedModel(\n params.model.slice(0, presetSeparator),\n allowedModels,\n );\n assertAllowedPreset(\n params.model.slice(presetSeparator + \"@preset/\".length),\n allowedPresets,\n );\n } else {\n assertAllowedModel(params.model, allowedModels);\n }\n }\n return provider.stream(params);\n },\n});\n\n/**\n * OpenRouter provider for the shared AbsoluteJS AI contract.\n *\n * Uses the existing OpenAI-compatible streaming implementation while adding\n * OpenRouter attribution, typed provider routing, local model policy, provider\n * allowlists, cost metadata, and OpenRouter-specific error attribution.\n */\nexport const openrouter = (config: OpenRouterConfig): AIProviderConfig => {\n assertRoutingPolicy(config);\n // Snapshot policy at construction so later mutation of a caller-owned array\n // cannot silently broaden a long-lived provider instance.\n const { allowedModels, allowedPresets } = snapshotPolicy(config);\n const provider = openai({\n apiKey: config.apiKey,\n baseUrl: config.baseUrl ?? DEFAULT_BASE_URL,\n fetch: config.fetch,\n headers: (params) => resolveAttributionHeaders(config, params),\n modelForCapabilities: modelForOpenAICapabilities,\n providerName: \"openrouter\",\n tokenSource: config.tokenSource,\n transformRequestBody: (body, params) =>\n transformOpenRouterRequest(\n config,\n allowedModels,\n allowedPresets,\n body,\n params,\n ),\n });\n return withOpenRouterPolicy(provider, allowedModels, allowedPresets);\n};\n\n/** OpenRouter's stateless OpenAI-compatible Responses API provider skin. */\nexport const openrouterResponses = (\n config: OpenRouterConfig,\n): AIProviderConfig => {\n assertRoutingPolicy(config);\n const { allowedModels, allowedPresets } = snapshotPolicy(config);\n const provider = openaiResponses({\n apiKey: config.apiKey,\n baseUrl: config.baseUrl ?? DEFAULT_BASE_URL,\n fetch: config.fetch,\n headers: (params) => resolveAttributionHeaders(config, params),\n modelForCapabilities: modelForOpenAICapabilities,\n providerName: \"openrouter\",\n tokenSource: config.tokenSource,\n transformRequestBody: (body, params) =>\n transformOpenRouterRequest(\n config,\n allowedModels,\n allowedPresets,\n body,\n params,\n ),\n });\n return withOpenRouterPolicy(provider, allowedModels, allowedPresets);\n};\n\n/** OpenRouter provider using the native Anthropic Messages protocol skin. */\nexport const openrouterMessages = (\n config: OpenRouterConfig,\n): AIProviderConfig => {\n assertRoutingPolicy(config);\n const { allowedModels, allowedPresets } = snapshotPolicy(config);\n const provider = anthropic({\n apiKey: config.apiKey,\n authStyle: \"bearer\",\n baseUrl: config.baseUrl ?? DEFAULT_BASE_URL,\n fetch: config.fetch,\n headers: (params) => resolveAttributionHeaders(config, params),\n providerName: \"openrouter\",\n tokenSource: config.tokenSource,\n transformRequestBody: (body, params) =>\n transformOpenRouterRequest(\n config,\n allowedModels,\n allowedPresets,\n body,\n params,\n \"messages\",\n ),\n });\n return withOpenRouterPolicy(provider, allowedModels, allowedPresets);\n};\n\nexport {\n createOpenRouterAuthorizationUrl,\n createOpenRouterClient,\n createOpenRouterKeyLinks,\n estimateOpenRouterCost,\n estimateOpenRouterModelCost,\n exchangeOpenRouterAuthCode,\n generateOpenRouterPKCE,\n openRouterModelMatchesRule,\n verifyOpenRouterWebhookSignature,\n} from \"./openrouterClient\";\nexport type {\n OpenRouterActivityItem,\n OpenRouterActivityQuery,\n OpenRouterAnalyticsMeta,\n OpenRouterAnalyticsQuery,\n OpenRouterAnalyticsResponse,\n OpenRouterAuthCodeExchangeRequest,\n OpenRouterAuthCodeExchangeResponse,\n OpenRouterAuthorizationUrlOptions,\n OpenRouterBatch,\n OpenRouterBatchEndpoint,\n OpenRouterBatchRequest,\n OpenRouterBatchResult,\n OpenRouterBatchStatus,\n OpenRouterChatRequest,\n OpenRouterChatResponse,\n OpenRouterClient,\n OpenRouterClientConfig,\n OpenRouterCostEstimate,\n OpenRouterCostUnits,\n OpenRouterCreateAuthCodeRequest,\n OpenRouterCreateAuthCodeResponse,\n OpenRouterCreateBatchRequest,\n OpenRouterCreateWorkspaceRequest,\n OpenRouterEmbeddingRequest,\n OpenRouterEmbeddingResponse,\n OpenRouterFile,\n OpenRouterFileList,\n OpenRouterHttpRequestOptions,\n OpenRouterImageModelEndpoint,\n OpenRouterImageModelEndpoints,\n OpenRouterImageRequest,\n OpenRouterImageResponse,\n OpenRouterImageStreamEvent,\n OpenRouterModel,\n OpenRouterModelList,\n OpenRouterModelQuery,\n OpenRouterPreset,\n OpenRouterPresetInferenceRequest,\n OpenRouterPresetResponse,\n OpenRouterPresetVersion,\n OpenRouterPresetVersionResponse,\n OpenRouterPricing,\n OpenRouterPricingKey,\n OpenRouterPKCE,\n OpenRouterRerankRequest,\n OpenRouterRerankResponse,\n OpenRouterResponsesRequest,\n OpenRouterSpeechRequest,\n OpenRouterTranscriptionRequest,\n OpenRouterTranscriptionResponse,\n OpenRouterTaskClassifications,\n OpenRouterVideoJob,\n OpenRouterVideoRequest,\n OpenRouterVideoWebhookEvent,\n OpenRouterWorkspace,\n OpenRouterWorkspaceBudget,\n OpenRouterWorkspaceBudgetInterval,\n OpenRouterWorkspaceMember,\n OpenRouterWorkspaceOptions,\n OpenRouterZdrEndpoint,\n} from \"./openrouterClient\";\n"
|
|
14
14
|
],
|
|
15
15
|
"mappings": "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",
|
|
16
|
-
"debugId": "
|
|
16
|
+
"debugId": "35809F9761B2091A64756E2164756E21",
|
|
17
17
|
"names": []
|
|
18
18
|
}
|
|
@@ -29,9 +29,9 @@ var createOpenRouterSDK = (config = {}) => {
|
|
|
29
29
|
});
|
|
30
30
|
};
|
|
31
31
|
export {
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
OfficialOpenRouterSDK as OpenRouterSDK,
|
|
33
|
+
createOpenRouterSDK
|
|
34
34
|
};
|
|
35
35
|
|
|
36
|
-
//# debugId=
|
|
36
|
+
//# debugId=B14D664D151EA7DB64756E2164756E21
|
|
37
37
|
//# sourceMappingURL=openrouterSDK.js.map
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"import {\n OpenRouter as OfficialOpenRouterSDK,\n type SDKOptions,\n} from \"@openrouter/sdk\";\n\nexport type OpenRouterSDKConfig = Omit<\n SDKOptions,\n \"apiKey\" | \"appCategories\" | \"appTitle\" | \"httpReferer\" | \"serverURL\"\n> & {\n apiKey?: string;\n /** Comma-separated marketplace categories are produced from this list. */\n appCategories?: readonly string[];\n appName?: string;\n appUrl?: string;\n baseUrl?: string;\n tokenSource?: () => Promise<string> | string;\n};\n\n/**\n * Create OpenRouter's generated SDK with AbsoluteJS-style configuration.\n *\n * Use this for the complete REST surface: API keys, BYOK, guardrails,\n * observability, organizations, SCIM, datasets, benchmarks, and future\n * OpenAPI-generated additions. Use `openrouter()` for policy-aware inference.\n */\nexport const createOpenRouterSDK = (config: OpenRouterSDKConfig = {}) => {\n if (config.appCategories && config.appCategories.length > 2)\n throw new Error(\n \"createOpenRouterSDK() appCategories supports at most 2 entries\",\n );\n if (!config.apiKey && !config.tokenSource)\n throw new Error(\n \"createOpenRouterSDK() requires either apiKey or tokenSource\",\n );\n const {\n apiKey,\n appCategories,\n appName,\n appUrl,\n baseUrl,\n tokenSource,\n ...options\n } = config;\n return new OfficialOpenRouterSDK({\n ...options,\n apiKey: tokenSource ? async () => Promise.resolve(tokenSource()) : apiKey,\n appCategories: appCategories?.join(\",\"),\n appTitle: appName,\n httpReferer: appUrl,\n serverURL: baseUrl,\n });\n};\n\nexport { OfficialOpenRouterSDK as OpenRouterSDK };\nexport type { SDKOptions as OfficialOpenRouterSDKOptions } from \"@openrouter/sdk\";\nexport type { RequestOptions as OpenRouterSDKRequestOptions } from \"@openrouter/sdk/lib/sdks.js\";\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": ";;;;AAAA;AAAA,gBACE;AAAA;AAwBK,IAAM,sBAAsB,CAAC,SAA8B,CAAC,MAAM;AAAA,EACvE,IAAI,OAAO,iBAAiB,OAAO,cAAc,SAAS;AAAA,IACxD,MAAM,IAAI,MACR,gEACF;AAAA,EACF,IAAI,CAAC,OAAO,UAAU,CAAC,OAAO;AAAA,IAC5B,MAAM,IAAI,MACR,6DACF;AAAA,EACF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,OACG;AAAA,MACD;AAAA,EACJ,OAAO,IAAI,sBAAsB;AAAA,OAC5B;AAAA,IACH,QAAQ,cAAc,YAAY,QAAQ,QAAQ,YAAY,CAAC,IAAI;AAAA,IACnE,eAAe,eAAe,KAAK,GAAG;AAAA,IACtC,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,EACb,CAAC;AAAA;",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "B14D664D151EA7DB64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/ai/tools/index.js
CHANGED
|
@@ -361,11 +361,11 @@ var codeModeTool = (options) => {
|
|
|
361
361
|
};
|
|
362
362
|
};
|
|
363
363
|
export {
|
|
364
|
-
|
|
365
|
-
hardenUntrustedTool,
|
|
364
|
+
codeExecutionTool,
|
|
366
365
|
codeModeTool,
|
|
367
|
-
|
|
366
|
+
hardenUntrustedTool,
|
|
367
|
+
hardenUntrustedTools
|
|
368
368
|
};
|
|
369
369
|
|
|
370
|
-
//# debugId=
|
|
370
|
+
//# debugId=AA98F4C270D3A07C64756E2164756E21
|
|
371
371
|
//# sourceMappingURL=index.js.map
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"/**\n * `codeExecutionTool` — an `AIToolDefinition` that runs model-generated\n * JavaScript inside an `@absolutejs/isolated-jsc` sandbox.\n *\n * Drop into any `tools: {...}` map:\n *\n * ```ts\n * import { codeExecutionTool } from '@absolutejs/ai/tools';\n *\n * const tools = {\n * run_code: codeExecutionTool({\n * memoryLimit: 64,\n * timeout: 1000,\n * expose: {\n * lookup_user: async (id) => db.users.findById(id as string),\n * round: (n) => Math.round(n as number),\n * },\n * }),\n * };\n * ```\n *\n * The model emits `{ code: '<JS source>' }` as the tool input; the host\n * runs the code in a fresh context inside a pooled isolate and returns\n * a JSON-stringified result containing:\n *\n * - `result` — the script's return value (JSON-clonable).\n * - `log` — array of strings captured via the host-injected `log(...)`.\n * - `error` — error message + name if the script threw or timed out.\n * - `cpuMs`, `heapBytes` — per-call telemetry (Phase 3 docs / monitoring).\n *\n * Defaults to the FFI backend on macOS + Linux (with libJSC installed),\n * Worker fallback elsewhere. Per-isolate pool is created once per\n * `codeExecutionTool()` call; pool key is `'default'` (one isolate for\n * all calls). For per-tenant isolation, create one tool instance per\n * tenant.\n *\n * Constraint: when using the FFI backend, **exposed host fns must be\n * synchronous**. Async host fns (returning a Promise that doesn't settle\n * synchronously — `fetch`, `setTimeout`-resolved Promises, real I/O)\n * require `backend: 'worker'` per isolated-jsc 0.3 documented limit.\n * Set `backend: 'worker'` in the tool options if any of your `expose`d\n * fns are async-settling.\n */\n\nimport type { AIToolDefinition } from \"../../../types/ai\";\n\n/** Options for {@link codeExecutionTool}. */\nexport type CodeExecutionToolOptions = {\n /**\n * Per-isolate heap memory cap (MB). Default 64. Note that the\n * sandbox's cold-start baseline differs by backend (FFI ~300 KB vs\n * Worker ~46 MB), so the practical floor for Worker is ~64 MB.\n */\n memoryLimit?: number;\n /** Wall-clock timeout per `run_code` call (ms). Default 1000. */\n timeout?: number;\n /**\n * isolated-jsc backend. Default `\"auto\"` (FFI when reachable, Worker\n * otherwise). Set to `\"worker\"` if your `expose`d fns are async-settling\n * — the FFI backend only supports sync host fns (see Reference docs).\n */\n backend?: \"auto\" | \"ffi\" | \"worker\";\n /**\n * Host functions the model can call from inside the sandbox. Names\n * become globals; the model invokes them with `await name(...)`.\n * The function's description (`.toString()` first line, if a doc\n * comment) is included in the tool's description so the model knows\n * what's available.\n */\n expose?: Record<string, (...args: unknown[]) => unknown>;\n /**\n * Override the tool's description string. Default is auto-generated\n * from the exposed function list.\n */\n description?: string;\n /**\n * Pool size cap — max concurrent isolates across all parallel tool\n * calls. Default 8.\n */\n poolSize?: number;\n /**\n * Recycle the isolate after N successful runs to bound per-context\n * heap creep. Default 50.\n */\n recycleAfter?: number;\n};\n\ntype Run = {\n ok: boolean;\n result?: unknown;\n log: string[];\n error?: { name: string; message: string };\n cpuMs: number;\n heapBytes: number;\n};\n\nconst defaultDescription = (\n expose: Record<string, (...args: unknown[]) => unknown> | undefined,\n): string => {\n const lines = [\n \"Execute JavaScript code in a sandboxed environment.\",\n \"\",\n \"Input: `{ code: string }` — the JS source to evaluate. The script's last\",\n \"expression is the return value (vm.Script semantics).\",\n \"\",\n \"Output: JSON with `{ result, log, error?, cpuMs, heapBytes }`.\",\n \"\",\n \"Built-in: `log(...args)` captures stdout-like output into the result.log\",\n \"array.\",\n ];\n const exposed = expose ? Object.keys(expose) : [];\n if (exposed.length > 0) {\n lines.push(\"\");\n lines.push(\"Host functions available in the sandbox:\");\n for (const name of exposed) {\n lines.push(` - ${name}(...)`);\n }\n }\n return lines.join(\"\\n\");\n};\n\nexport const codeExecutionTool = (\n options: CodeExecutionToolOptions = {},\n): AIToolDefinition => {\n const memoryLimit = options.memoryLimit ?? 64;\n const timeout = options.timeout ?? 1000;\n const backend = options.backend ?? \"auto\";\n const expose = options.expose ?? {};\n const poolSize = options.poolSize ?? 8;\n const recycleAfter = options.recycleAfter ?? 50;\n const description = options.description ?? defaultDescription(expose);\n\n // Lazy import isolated-jsc so this module loads without it (consumers\n // who never call the tool don't pay the dep). The first call resolves\n // and caches the pool; later calls reuse it.\n type IsolatedJsc = typeof import(\"@absolutejs/isolated-jsc\");\n let cachedPool: {\n pool: ReturnType<IsolatedJsc[\"createIsolatePool\"]>;\n jsc: IsolatedJsc;\n } | null = null;\n let cachedPoolPromise: Promise<{\n pool: ReturnType<IsolatedJsc[\"createIsolatePool\"]>;\n jsc: IsolatedJsc;\n }> | null = null;\n\n const loadPool = async () => {\n if (cachedPool !== null) return cachedPool;\n if (cachedPoolPromise !== null) return cachedPoolPromise;\n cachedPoolPromise = (async () => {\n const jsc = (await import(\"@absolutejs/isolated-jsc\")) as IsolatedJsc;\n const pool = jsc.createIsolatePool({\n isolate: { backend, memoryLimit },\n maxSize: poolSize,\n recycleAfter,\n });\n cachedPool = { pool, jsc };\n return cachedPool;\n })();\n return cachedPoolPromise;\n };\n\n const runCode = async (code: string): Promise<Run> => {\n const log: string[] = [];\n let cpuMs = 0;\n let heapBytes = 0;\n try {\n const { pool, jsc } = await loadPool();\n return await pool.run(\"default\", async (isolate) => {\n const context = await isolate.createContext();\n try {\n // Built-in log capture. Sync host fn → works on FFI + Worker.\n await context.setGlobal(\n \"log\",\n new jsc.Reference((...args: unknown[]) => {\n log.push(\n args\n .map((a) => (typeof a === \"string\" ? a : JSON.stringify(a)))\n .join(\" \"),\n );\n }),\n );\n // Exposed host fns. Names become globals; user code calls them\n // directly (FFI sync path) or with `await` (Worker path).\n for (const [name, fn] of Object.entries(expose)) {\n await context.setGlobal(name, new jsc.Reference(fn));\n }\n // Wrap the user code so the last expression is what's returned\n // (matching the conventional script-result semantics).\n const script = await isolate.compileScript(code);\n const { result, metrics } = await script.runWithMetrics(context, {\n timeout,\n });\n cpuMs = metrics.cpuMs;\n heapBytes = metrics.heapBytes;\n return { ok: true, result, log, cpuMs, heapBytes };\n } finally {\n await context.dispose().catch(() => {\n /* dead context — fine */\n });\n }\n });\n } catch (error) {\n const name = error instanceof Error ? error.name : \"Error\";\n const message = error instanceof Error ? error.message : String(error);\n return {\n ok: false,\n log,\n error: { name, message },\n cpuMs,\n heapBytes,\n };\n }\n };\n\n return {\n description,\n input: {\n type: \"object\",\n properties: {\n code: {\n type: \"string\",\n description:\n \"JavaScript source to evaluate. The script's last expression \" +\n \"is the return value. Use `log(...)` for stdout-like output.\",\n },\n },\n required: [\"code\"],\n },\n handler: async (input: unknown) => {\n const code =\n input && typeof input === \"object\" && \"code\" in input\n ? (input as { code: unknown }).code\n : undefined;\n if (typeof code !== \"string\") {\n return JSON.stringify({\n ok: false,\n error: {\n name: \"InvalidInput\",\n message: \"expected `{ code: string }`\",\n },\n log: [],\n cpuMs: 0,\n heapBytes: 0,\n });\n }\n const run = await runCode(code);\n return JSON.stringify(run);\n },\n };\n};\n",
|
|
7
7
|
"/**\n * `codeModeTool` — Code Mode for AI agents.\n *\n * Instead of exposing N tools to the model and having it call them one\n * at a time (N round-trips per turn, N tool-call tokens, the model has\n * to track intermediate state in context), Code Mode exposes ONE tool:\n * `run_code`. The model sees the typed TypeScript signatures of all\n * underlying tools and emits a single function that chains them.\n *\n * Pattern was popularized by Cloudflare's Dynamic Workers (April 2026\n * blog post: \"100× faster than containers\"). Anthropic's programmatic\n * tool calling is the same idea — execution pauses on a sub-tool call,\n * the API yields a tool_use, you return a result, execution resumes.\n * Both vendors report ~80% token reduction on multi-tool turns.\n *\n * ```ts\n * import { codeModeTool } from '@absolutejs/ai/tools';\n *\n * const tools = {\n * run_code: codeModeTool({\n * timeout: 5000,\n * tools: {\n * search_products: {\n * description: 'Full-text search the product catalogue.',\n * tsSignature: '(query: string) => Promise<Product[]>',\n * handler: async (q) => db.products.search(q as string),\n * },\n * get_product: {\n * description: 'Fetch one product by id.',\n * tsSignature: '(id: string) => Promise<Product | null>',\n * handler: async (id) => db.products.findById(id as string),\n * },\n * },\n * types: `\n * type Product = { id: string; name: string; price: number };\n * `,\n * }),\n * };\n * ```\n *\n * The model emits a single function:\n *\n * ```js\n * const items = await search_products('hat');\n * const cheapest = items.sort((a, b) => a.price - b.price)[0];\n * const detail = await get_product(cheapest.id);\n * return { name: detail.name, price: detail.price };\n * ```\n *\n * One sandbox eval. Two host-fn calls. One returned value. The model's\n * context only ever sees the final return — intermediate tool results\n * don't enter the conversation window, so multi-step workflows are\n * dramatically cheaper.\n *\n * Each underlying tool's `handler` runs on the HOST side (not in the\n * sandbox). Async host fns work on both FFI (via the 0.4 pump) and\n * Worker backends since isolated-jsc 0.4+. Errors thrown by host\n * handlers propagate into the sandbox as JS Errors the model can\n * catch and recover from.\n */\n\nimport type { AIToolDefinition } from \"../../../types/ai\";\n\n/**\n * One callable surfaced to the sandbox. The `tsSignature` shows up in\n * the model-visible description; `handler` runs on the host when the\n * sandbox calls it.\n */\nexport type CodeModeHostTool = {\n /** One-line human description of what this tool does. */\n description: string;\n /** TypeScript signature shown to the model. Example:\n * `'(query: string, options?: { limit?: number }) => Promise<Item[]>'`.\n * The model writes JS against this signature; we don't enforce it at\n * runtime — type-check is the model's responsibility. */\n tsSignature: string;\n /** Host implementation. Receives positional args as the model passed\n * them. Return value is structure-cloned back into the sandbox. */\n handler: (...args: unknown[]) => unknown;\n};\n\n/** Options for {@link codeModeTool}. */\nexport type CodeModeToolOptions = {\n /** Map of host-tool name → {@link CodeModeHostTool}. */\n tools: Record<string, CodeModeHostTool>;\n /**\n * Optional shared TypeScript declarations stitched into the prompt\n * (type aliases, interfaces, etc.) so signatures can reference them.\n * Use raw TS source; no parsing happens host-side.\n */\n types?: string;\n /**\n * Per-isolate heap memory cap (MB). Default 64. As with the regular\n * code-execution tool, FFI's cold heap is much smaller than Worker's,\n * but per-call retention scales similarly.\n */\n memoryLimit?: number;\n /** Wall-clock timeout per `run_code` call (ms). Default 5000. */\n timeout?: number;\n /**\n * isolated-jsc backend. Defaults to `'auto'`. Since isolated-jsc 0.4\n * both backends support async host fns, so the choice is purely\n * about cold spawn (FFI wins ~6×) vs Web APIs availability (Worker\n * has `URL` / `TextEncoder` / `WebSocket`; FFI does not).\n */\n backend?: \"auto\" | \"ffi\" | \"worker\";\n /**\n * Override the auto-generated description. By default we emit the\n * model-facing prompt: a short instruction header + the host fn\n * signatures + any shared `types`.\n */\n description?: string;\n /** Pool size cap. Default 8. */\n poolSize?: number;\n /** Recycle the isolate after N successful runs. Default 50. */\n recycleAfter?: number;\n};\n\ntype RunResult = {\n ok: boolean;\n result?: unknown;\n log: string[];\n toolCalls: Array<{\n name: string;\n args: unknown[];\n durationMs: number;\n ok: boolean;\n error?: string;\n }>;\n error?: { name: string; message: string };\n cpuMs: number;\n heapBytes: number;\n};\n\nconst buildDescription = (\n tools: Record<string, CodeModeHostTool>,\n types: string | undefined,\n): string => {\n const lines: string[] = [\n \"Execute JavaScript that calls one or more host tools, returning a\",\n \"single value. Prefer this over calling individual tools when you'd\",\n \"otherwise need multiple sequential tool calls — one Code Mode call\",\n \"replaces N tool calls plus the intermediate context.\",\n \"\",\n \"Input: `{ code: string }`. The code is a function BODY (not a full\",\n \"function). It can use `await`, `const`/`let`, control flow, etc.\",\n \"Whatever you `return` becomes the tool output.\",\n \"\",\n \"Built-in: `log(...args)` captures messages for debugging. Logs are\",\n \"returned alongside the result; they don't enter the model context.\",\n \"\",\n \"Available host functions (calling these from your code is what runs\",\n \"the real work; everything else is plain JS):\",\n \"\",\n ];\n for (const [name, tool] of Object.entries(tools)) {\n lines.push(`// ${tool.description}`);\n lines.push(`declare const ${name}: ${tool.tsSignature};`);\n lines.push(\"\");\n }\n if (types !== undefined && types.trim().length > 0) {\n lines.push(\"// Shared types referenced by the signatures above:\");\n lines.push(types.trim());\n lines.push(\"\");\n }\n lines.push(\"Example:\");\n lines.push(\"```js\");\n lines.push(\"// Get the cheapest matching product and its full record.\");\n const firstTool = Object.keys(tools)[0];\n if (firstTool !== undefined) {\n lines.push(`const items = await ${firstTool}('search query');`);\n lines.push(\"const cheapest = items.sort((a, b) => a.price - b.price)[0];\");\n lines.push(\"return cheapest;\");\n } else {\n lines.push(\"return 42;\");\n }\n lines.push(\"```\");\n lines.push(\"\");\n lines.push(\n \"Output: JSON with `{ result, log, toolCalls, cpuMs, heapBytes }`.\",\n );\n return lines.join(\"\\n\");\n};\n\nexport const codeModeTool = (\n options: CodeModeToolOptions,\n): AIToolDefinition => {\n const memoryLimit = options.memoryLimit ?? 64;\n const timeout = options.timeout ?? 5000;\n const backend = options.backend ?? \"auto\";\n const poolSize = options.poolSize ?? 8;\n const recycleAfter = options.recycleAfter ?? 50;\n const tools = options.tools;\n const description =\n options.description ?? buildDescription(tools, options.types);\n\n type IsolatedJsc = typeof import(\"@absolutejs/isolated-jsc\");\n let cachedPool: {\n pool: ReturnType<IsolatedJsc[\"createIsolatePool\"]>;\n jsc: IsolatedJsc;\n } | null = null;\n let cachedPoolPromise: Promise<{\n pool: ReturnType<IsolatedJsc[\"createIsolatePool\"]>;\n jsc: IsolatedJsc;\n }> | null = null;\n\n const loadPool = async () => {\n if (cachedPool !== null) return cachedPool;\n if (cachedPoolPromise !== null) return cachedPoolPromise;\n cachedPoolPromise = (async () => {\n const jsc = (await import(\"@absolutejs/isolated-jsc\")) as IsolatedJsc;\n const pool = jsc.createIsolatePool({\n isolate: { backend, memoryLimit },\n maxSize: poolSize,\n recycleAfter,\n });\n cachedPool = { pool, jsc };\n return cachedPool;\n })();\n return cachedPoolPromise;\n };\n\n const runCode = async (code: string): Promise<RunResult> => {\n const log: string[] = [];\n const toolCalls: RunResult[\"toolCalls\"] = [];\n let cpuMs = 0;\n let heapBytes = 0;\n try {\n const { pool, jsc } = await loadPool();\n return await pool.run(\"default\", async (isolate) => {\n const context = await isolate.createContext();\n try {\n // Built-in log capture.\n await context.setGlobal(\n \"log\",\n new jsc.Reference((...args: unknown[]) => {\n log.push(\n args\n .map((a) => (typeof a === \"string\" ? a : JSON.stringify(a)))\n .join(\" \"),\n );\n }),\n );\n\n // Bind each host tool as a global Reference. Wrap so we\n // capture per-call telemetry (durationMs, error). Async\n // host fns work on both FFI (0.4+) and Worker backends.\n for (const [name, tool] of Object.entries(tools)) {\n await context.setGlobal(\n name,\n new jsc.Reference(((...args: unknown[]) => {\n const startedAt = performance.now();\n const recordSuccess = () => {\n toolCalls.push({\n args,\n durationMs: performance.now() - startedAt,\n name,\n ok: true,\n });\n };\n const recordError = (err: unknown) => {\n toolCalls.push({\n args,\n durationMs: performance.now() - startedAt,\n error: err instanceof Error ? err.message : String(err),\n name,\n ok: false,\n });\n };\n let outcome: unknown;\n try {\n outcome = tool.handler(...args);\n } catch (err) {\n recordError(err);\n throw err;\n }\n if (\n outcome !== null &&\n typeof outcome === \"object\" &&\n \"then\" in outcome &&\n typeof (outcome as { then: unknown }).then === \"function\"\n ) {\n return (outcome as Promise<unknown>).then(\n (v) => {\n recordSuccess();\n return v;\n },\n (err) => {\n recordError(err);\n throw err;\n },\n );\n }\n recordSuccess();\n return outcome;\n }) as (...args: unknown[]) => unknown),\n );\n }\n\n // Wrap the model's code as an async function body. Whatever\n // it `return`s becomes the tool output.\n const wrapped = `(async () => { ${code}\\n})()`;\n const script = await isolate.compileScript(wrapped);\n const { result, metrics } = await script.runWithMetrics(context, {\n timeout,\n });\n cpuMs = metrics.cpuMs;\n heapBytes = metrics.heapBytes;\n return { cpuMs, heapBytes, log, ok: true, result, toolCalls };\n } finally {\n await context.dispose().catch(() => {\n /* ok */\n });\n }\n });\n } catch (error) {\n const name = error instanceof Error ? error.name : \"Error\";\n const message = error instanceof Error ? error.message : String(error);\n return {\n cpuMs,\n error: { message, name },\n heapBytes,\n log,\n ok: false,\n toolCalls,\n };\n }\n };\n\n return {\n description,\n handler: async (input: unknown) => {\n const code =\n input !== null && typeof input === \"object\" && \"code\" in input\n ? (input as { code: unknown }).code\n : undefined;\n if (typeof code !== \"string\") {\n return JSON.stringify({\n cpuMs: 0,\n error: {\n message: \"expected `{ code: string }`\",\n name: \"InvalidInput\",\n },\n heapBytes: 0,\n log: [],\n ok: false,\n toolCalls: [],\n });\n }\n const run = await runCode(code);\n return JSON.stringify(run);\n },\n input: {\n properties: {\n code: {\n description:\n \"JavaScript function-body source. Use `await` to call host \" +\n \"tools; `return` the final value. Multiple tool calls in one \" +\n \"block are encouraged — that's the whole point of Code Mode.\",\n type: \"string\",\n },\n },\n required: [\"code\"],\n type: \"object\",\n },\n };\n};\n"
|
|
8
8
|
],
|
|
9
|
-
"mappings": ";;;;AA0BA,IAAM,qBAAqB;AAC3B,IAAM,2BAA2B;AACjC,IAAM,kBAAkB;AAAA;AAWxB,IAAM,mBAAmB,CAAC,aAAqB,WAA+B;AAAA,EAC5E,MAAM,SAAS,WAAW,YAAY,KAAK,SAAS;AAAA,EAEpD,OAAO,oBAAoB,
|
|
10
|
-
"debugId": "
|
|
9
|
+
"mappings": "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",
|
|
10
|
+
"debugId": "AA98F4C270D3A07C64756E2164756E21",
|
|
11
11
|
"names": []
|
|
12
12
|
}
|
|
@@ -56,9 +56,9 @@ var hardenUntrustedTools = (tools, options = {}) => {
|
|
|
56
56
|
return hardened;
|
|
57
57
|
};
|
|
58
58
|
export {
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
hardenUntrustedTool,
|
|
60
|
+
hardenUntrustedTools
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
//# debugId=
|
|
63
|
+
//# debugId=37270739CB48C44E64756E2164756E21
|
|
64
64
|
//# sourceMappingURL=untrusted.js.map
|