@fifthrevision/axle 0.26.1 → 0.27.1
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/index.d.ts +3 -108
- package/dist/index.js +18 -18
- package/dist/models.d.ts +126 -0
- package/dist/models.js +1 -0
- package/package.json +3 -3
- package/dist/models-CPMQlthm.js +0 -1
- package/dist/models-DQDDU0Md.d.ts +0 -118
- package/dist/providers/models.d.ts +0 -2
- package/dist/providers/models.js +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -383,6 +383,7 @@ type GenerateResult<TResponse = AxleAssistantMessage> = {
|
|
|
383
383
|
response: TResponse;
|
|
384
384
|
messages: AxleMessage[];
|
|
385
385
|
final: AxleAssistantMessage;
|
|
386
|
+
error?: undefined;
|
|
386
387
|
usage?: Stats;
|
|
387
388
|
/**
|
|
388
389
|
* Present when a configured limit ended the tool loop at a request
|
|
@@ -584,6 +585,7 @@ interface SavedAgent<TAnnotation extends Annotation = Annotation> {
|
|
|
584
585
|
interface AgentResult<T = string> {
|
|
585
586
|
ok: true;
|
|
586
587
|
response: T;
|
|
588
|
+
error?: undefined;
|
|
587
589
|
turn: Turn;
|
|
588
590
|
usage: Stats;
|
|
589
591
|
}
|
|
@@ -783,31 +785,6 @@ declare class TaskError extends AxleError {
|
|
|
783
785
|
//#region src/providers/anthropic/provider.d.ts
|
|
784
786
|
declare function anthropic(apiKey: string, options?: ProviderClientOptions): AIProvider;
|
|
785
787
|
//#endregion
|
|
786
|
-
//#region src/providers/anthropic/index.d.ts
|
|
787
|
-
declare const Anthropic: {
|
|
788
|
-
readonly Models: {
|
|
789
|
-
readonly CLAUDE_SONNET_5: "claude-sonnet-5";
|
|
790
|
-
readonly CLAUDE_FABLE_5: "claude-fable-5";
|
|
791
|
-
readonly CLAUDE_OPUS_4_8: "claude-opus-4-8";
|
|
792
|
-
readonly CLAUDE_OPUS_4_7: "claude-opus-4-7";
|
|
793
|
-
readonly CLAUDE_SONNET_4_6: "claude-sonnet-4-6";
|
|
794
|
-
readonly CLAUDE_OPUS_4_6: "claude-opus-4-6";
|
|
795
|
-
readonly CLAUDE_OPUS_4_5_20251101: "claude-opus-4-5-20251101";
|
|
796
|
-
readonly CLAUDE_OPUS_4_5: "claude-opus-4-5-20251101";
|
|
797
|
-
readonly CLAUDE_SONNET_4_5_20250929: "claude-sonnet-4-5-20250929";
|
|
798
|
-
readonly CLAUDE_SONNET_4_5: "claude-sonnet-4-5-20250929";
|
|
799
|
-
readonly CLAUDE_HAIKU_4_5_20251001: "claude-haiku-4-5-20251001";
|
|
800
|
-
readonly CLAUDE_HAIKU_4_5: "claude-haiku-4-5-20251001";
|
|
801
|
-
readonly CLAUDE_OPUS_4_1_20250805: "claude-opus-4-1-20250805";
|
|
802
|
-
readonly CLAUDE_OPUS_4_1: "claude-opus-4-1-20250805";
|
|
803
|
-
readonly CLAUDE_OPUS_4_20250514: "claude-opus-4-20250514";
|
|
804
|
-
readonly CLAUDE_OPUS_4: "claude-opus-4-20250514";
|
|
805
|
-
readonly CLAUDE_SONNET_4_20250514: "claude-sonnet-4-20250514";
|
|
806
|
-
readonly CLAUDE_SONNET_4: "claude-sonnet-4-20250514";
|
|
807
|
-
};
|
|
808
|
-
readonly DefaultModel: "claude-haiku-4-5-20251001";
|
|
809
|
-
};
|
|
810
|
-
//#endregion
|
|
811
788
|
//#region src/providers/chatcompletions/utils.d.ts
|
|
812
789
|
type ChatCompletionsVendor = "openrouter" | "together";
|
|
813
790
|
//#endregion
|
|
@@ -834,33 +811,6 @@ declare function estimateContextUsage(input: ContextEstimateInput): ContextUsage
|
|
|
834
811
|
//#region src/providers/gemini/provider.d.ts
|
|
835
812
|
declare function gemini(apiKey: string, options?: ProviderClientOptions): AIProvider;
|
|
836
813
|
//#endregion
|
|
837
|
-
//#region src/providers/gemini/index.d.ts
|
|
838
|
-
declare const Gemini: {
|
|
839
|
-
readonly Models: {
|
|
840
|
-
readonly GEMINI_3_5_FLASH: "gemini-3.5-flash";
|
|
841
|
-
readonly GEMINI_3_1_PRO_PREVIEW: "gemini-3.1-pro-preview";
|
|
842
|
-
readonly GEMINI_3_1_PRO: "gemini-3.1-pro-preview";
|
|
843
|
-
readonly GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS: "gemini-3.1-pro-preview-customtools";
|
|
844
|
-
readonly GEMINI_3_1_FLASH_LITE_PREVIEW: "gemini-3.1-flash-lite-preview";
|
|
845
|
-
readonly GEMINI_3_1_FLASH_LITE: "gemini-3.1-flash-lite-preview";
|
|
846
|
-
readonly GEMINI_3_PRO_PREVIEW: "gemini-3-pro-preview";
|
|
847
|
-
readonly GEMINI_3_PRO: "gemini-3-pro-preview";
|
|
848
|
-
readonly GEMINI_3_FLASH_PREVIEW: "gemini-3-flash-preview";
|
|
849
|
-
readonly GEMINI_3_FLASH: "gemini-3-flash-preview";
|
|
850
|
-
readonly GEMINI_2_5_PRO: "gemini-2.5-pro";
|
|
851
|
-
readonly GEMINI_2_5_FLASH: "gemini-2.5-flash";
|
|
852
|
-
readonly GEMINI_2_5_FLASH_LITE: "gemini-2.5-flash-lite";
|
|
853
|
-
readonly GEMINI_2_0_FLASH: "gemini-2.0-flash";
|
|
854
|
-
readonly GEMINI_2_0_FLASH_001: "gemini-2.0-flash-001";
|
|
855
|
-
readonly GEMINI_2_0_FLASH_LITE: "gemini-2.0-flash-lite";
|
|
856
|
-
readonly GEMINI_2_0_FLASH_LITE_001: "gemini-2.0-flash-lite-001";
|
|
857
|
-
readonly GEMINI_FLASH_LATEST: "gemini-flash-latest";
|
|
858
|
-
readonly GEMINI_FLASH_LITE_LATEST: "gemini-flash-lite-latest";
|
|
859
|
-
readonly GEMINI_PRO_LATEST: "gemini-pro-latest";
|
|
860
|
-
};
|
|
861
|
-
readonly DefaultModel: "gemini-3.5-flash";
|
|
862
|
-
};
|
|
863
|
-
//#endregion
|
|
864
814
|
//#region src/providers/generate.d.ts
|
|
865
815
|
interface GenerateParams extends AxleModelRequestOptions {
|
|
866
816
|
provider: AIProvider;
|
|
@@ -1046,61 +996,6 @@ declare function stream(options: StreamParams): StreamHandle;
|
|
|
1046
996
|
//#region src/providers/openai/provider.d.ts
|
|
1047
997
|
declare function openai(apiKey: string, options?: ProviderClientOptions): AIProvider;
|
|
1048
998
|
//#endregion
|
|
1049
|
-
//#region src/providers/openai/index.d.ts
|
|
1050
|
-
declare const OpenAI: {
|
|
1051
|
-
readonly Models: {
|
|
1052
|
-
readonly GPT_5_5_2026_04_23: "gpt-5.5-2026-04-23";
|
|
1053
|
-
readonly GPT_5_5: "gpt-5.5";
|
|
1054
|
-
readonly GPT_5_5_PRO_2026_04_23: "gpt-5.5-pro-2026-04-23";
|
|
1055
|
-
readonly GPT_5_5_PRO: "gpt-5.5-pro";
|
|
1056
|
-
readonly GPT_5_4_2026_03_05: "gpt-5.4-2026-03-05";
|
|
1057
|
-
readonly GPT_5_4: "gpt-5.4";
|
|
1058
|
-
readonly GPT_5_4_PRO_2026_03_05: "gpt-5.4-pro-2026-03-05";
|
|
1059
|
-
readonly GPT_5_4_PRO: "gpt-5.4-pro";
|
|
1060
|
-
readonly GPT_5_4_MINI_2026_03_17: "gpt-5.4-mini-2026-03-17";
|
|
1061
|
-
readonly GPT_5_4_MINI: "gpt-5.4-mini";
|
|
1062
|
-
readonly GPT_5_4_NANO_2026_03_17: "gpt-5.4-nano-2026-03-17";
|
|
1063
|
-
readonly GPT_5_4_NANO: "gpt-5.4-nano";
|
|
1064
|
-
readonly GPT_5_3_CHAT_LATEST: "gpt-5.3-chat-latest";
|
|
1065
|
-
readonly GPT_5_2_2025_12_11: "gpt-5.2-2025-12-11";
|
|
1066
|
-
readonly GPT_5_2: "gpt-5.2";
|
|
1067
|
-
readonly GPT_5_2_CHAT_LATEST: "gpt-5.2-chat-latest";
|
|
1068
|
-
readonly GPT_5_2_PRO_2025_12_11: "gpt-5.2-pro-2025-12-11";
|
|
1069
|
-
readonly GPT_5_2_PRO: "gpt-5.2-pro";
|
|
1070
|
-
readonly GPT_5_1_2025_11_13: "gpt-5.1-2025-11-13";
|
|
1071
|
-
readonly GPT_5_1: "gpt-5.1";
|
|
1072
|
-
readonly GPT_5_1_CHAT_LATEST: "gpt-5.1-chat-latest";
|
|
1073
|
-
readonly GPT_5_2025_08_07: "gpt-5-2025-08-07";
|
|
1074
|
-
readonly GPT_5: "gpt-5";
|
|
1075
|
-
readonly GPT_5_CHAT_LATEST: "gpt-5-chat-latest";
|
|
1076
|
-
readonly GPT_5_PRO_2025_10_06: "gpt-5-pro-2025-10-06";
|
|
1077
|
-
readonly GPT_5_PRO: "gpt-5-pro";
|
|
1078
|
-
readonly GPT_5_MINI_2025_08_07: "gpt-5-mini-2025-08-07";
|
|
1079
|
-
readonly GPT_5_MINI: "gpt-5-mini";
|
|
1080
|
-
readonly GPT_5_NANO_2025_08_07: "gpt-5-nano-2025-08-07";
|
|
1081
|
-
readonly GPT_5_NANO: "gpt-5-nano";
|
|
1082
|
-
readonly GPT_4_1_2025_04_14: "gpt-4.1-2025-04-14";
|
|
1083
|
-
readonly GPT_4_1: "gpt-4.1";
|
|
1084
|
-
readonly GPT_4_1_MINI_2025_04_14: "gpt-4.1-mini-2025-04-14";
|
|
1085
|
-
readonly GPT_4_1_MINI: "gpt-4.1-mini";
|
|
1086
|
-
readonly GPT_4_1_NANO_2025_04_14: "gpt-4.1-nano-2025-04-14";
|
|
1087
|
-
readonly GPT_4_1_NANO: "gpt-4.1-nano";
|
|
1088
|
-
readonly GPT_4O_2024_11_20: "gpt-4o-2024-11-20";
|
|
1089
|
-
readonly GPT_4O: "gpt-4o";
|
|
1090
|
-
readonly GPT_4O_MINI_2024_07_18: "gpt-4o-mini-2024-07-18";
|
|
1091
|
-
readonly GPT_4O_MINI: "gpt-4o-mini";
|
|
1092
|
-
readonly O4_MINI_2025_04_16: "o4-mini-2025-04-16";
|
|
1093
|
-
readonly O4_MINI: "o4-mini";
|
|
1094
|
-
readonly O3_2025_04_16: "o3-2025-04-16";
|
|
1095
|
-
readonly O3: "o3";
|
|
1096
|
-
readonly O3_PRO_2025_06_10: "o3-pro-2025-06-10";
|
|
1097
|
-
readonly O3_PRO: "o3-pro";
|
|
1098
|
-
readonly O3_MINI_2025_01_31: "o3-mini-2025-01-31";
|
|
1099
|
-
readonly O3_MINI: "o3-mini";
|
|
1100
|
-
};
|
|
1101
|
-
readonly DefaultModel: "gpt-5.4-mini";
|
|
1102
|
-
};
|
|
1103
|
-
//#endregion
|
|
1104
999
|
//#region src/tools/agentTool.d.ts
|
|
1105
1000
|
interface CreateAgentToolOptions<TSchema extends ZodObject<any>> {
|
|
1106
1001
|
name: string;
|
|
@@ -1243,4 +1138,4 @@ declare function createStats(): Stats;
|
|
|
1243
1138
|
declare function addStats(total: Stats, usage?: Stats): void;
|
|
1244
1139
|
declare function mergeStats(...usages: Array<Stats | undefined>): Stats;
|
|
1245
1140
|
//#endregion
|
|
1246
|
-
export { type AIProvider, type AccumulatableEvent, type ActionPart, type ActionResult, Agent, type AgentConfig, type AgentDefinition, type AgentDefinitionRequestOptions, type AgentDefinitionResolver, type AgentErrorResult, type AgentHandle, type AgentMemory, type AgentResult, type AgentSession, type Annotation, type AnnotationEvent, type AnnotationPlacement, type AnnotationStatus, type AnnotationTarget,
|
|
1141
|
+
export { type AIProvider, type AccumulatableEvent, type ActionPart, type ActionResult, Agent, type AgentConfig, type AgentDefinition, type AgentDefinitionRequestOptions, type AgentDefinitionResolver, type AgentErrorResult, type AgentHandle, type AgentMemory, type AgentResult, type AgentSession, type Annotation, type AnnotationEvent, type AnnotationPlacement, type AnnotationStatus, type AnnotationTarget, AxleAbortError, AxleAgentAbortError, type AxleAssistantMessage, type AxleConfiguration, AxleError, type AxleFailure, type AxleMessage, type AxleModelRequestOptions, AxleStopReason, type AxleToolCallMessage, type AxleToolCallResult, AxleToolFatalError, type AxleUserMessage, type BraveWebSearchOptions, type ChatCompletionsOptions, type ChatCompletionsVendor, type Citation, type CitationOutputSpan, type CitationPart, type CitationSource, type CompactionCallback, type CompactionPart, type CompactionRecord, type ContentPart, type ContentPartCitation, type ContentPartFile, type ContentPartProviderTool, type ContentPartText, type ContentPartThinking, type ContentPartToolCall, type ContextUsage, type CreateAgentToolOptions, type DeferredFileInfo, type DocumentLocator, type EventLevel, type ExecutableTool, type FileInfo, type FileKind, type FilePart, type FileProviderId, type FileResolveFormat, type FileResolveRequest, type FileResolver, type FileStore, type GenerateError, type GenerateInstructParams, type GenerateInstructResult, type GenerateParams, type GenerateResult, type Handle, History, Instruct, type InstructContextSection, type InstructInputs, type InstructOptions, type InstructResponse, InstructVariableError, type InstructVarsMode, type LLMRequest, type LLMResponse, type LLMResult, type LogEntry, type LogFn, LogWriter, MCP, type MCPConfig, type MCPHttpConfig, type MCPStdioConfig, type MaybePromise, type MemoryContext, type MessageMetadata, type ObservabilityOptions, type OutputSchema, type ParallelToolResult, type ParallelizeOptions, type ParsedSchema, type ProviderClientOptions, type ProviderDefinition, type ProviderOptions, type ProviderTool, type ProviderToolAction, type ProviderToolDefinitionRef, type RecallResult, type ResolvedAgentDefinition, type ResolvedFileSource, type SavedAgent, type SendMessageOptions, SimpleWriter, type SimpleWriterOptions, type Span, type SpanData, type SpanEvent, type SpanOptions, type SpanResult, type SpanStatus, type SpanType, type Stats, type StreamEvent, type StreamEventCallback, type StreamHandle, type StreamInstructHandle, type StreamInstructParams, type StreamInstructResult, type StreamParams, type StreamResult, type SubagentAction, TaskError, type TextPart, type ThinkingContinuity, type ThinkingPart, type TokenStats, type TokenUsage, type ToolAction, type ToolChoice, type ToolContext, type ToolDefinition, type ToolDefinitionRef, type ToolProgressChunk, ToolRegistry, type ToolResult, type ToolResultPart, type TraceWriter, Tracer, type TracerOptions, type Turn, TurnAccumulator, type TurnAccumulatorResult, type TurnAccumulatorState, type TurnEvent, TurnEventBuilder, type TurnEventCallback, type TurnMetadata, type TurnPart, type TurnStatus, type UsageEntry, type WebSearchBackend, type WebSearchBackendContext, type WebSearchRequest, type WebSearchResponse, type WebSearchResult, addStats, anthropic, braveWebSearch, chatCompletions, configureAxle, createAgentConfig, createAgentTool, createStats, estimateContextUsage, gemini, generate, generateTurn, loadFileContent, mergeStats, openai, parallelize, parseResponse, stream, validateCompactedMessages };
|
package/dist/index.js
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import{t as e}from"./accumulator-BQuyGJN_.js";import{
|
|
1
|
+
import{t as e}from"./accumulator-BQuyGJN_.js";import{ModelInfo as t}from"./models.js";import*as n from"zod";import r,{z as i}from"zod";import{Client as a}from"@modelcontextprotocol/sdk/client/index.js";import{StdioClientTransport as o}from"@modelcontextprotocol/sdk/client/stdio.js";import{StreamableHTTPClientTransport as s}from"@modelcontextprotocol/sdk/client/streamableHttp.js";import c from"@anthropic-ai/sdk";import"glob";import l from"mime";import{access as u,readFile as d,stat as f}from"node:fs/promises";import{extname as p,resolve as m}from"node:path";import{FinishReason as h,FunctionCallingConfigMode as g,GoogleGenAI as _}from"@google/genai";import v from"openai";import y from"chalk";import{marked as b}from"marked";let x={};function S(e){x={...x,...e}}function C(){return{...x}}var w=class e extends Error{code;id;details;constructor(t,n){super(t,{cause:n?.cause}),this.name=this.constructor.name,this.code=n?.code||`AXLE_ERROR`,this.id=n?.id,this.details=n?.details,Object.setPrototypeOf(this,e.prototype)}toJSON(){return{name:this.name,message:this.message,code:this.code,...this.id?{id:this.id}:{},...this.details?{details:this.details}:{},...this.cause?{cause:T(this.cause)}:{}}}};function T(e){return e instanceof Error?{name:e.name,message:e.message,...e.stack?{stack:e.stack}:{},...`cause`in e&&e.cause?{cause:T(e.cause)}:{}}:e}var E=class e extends w{reason;messages;partial;usage;constructor(t=`Operation aborted`,n){super(t,{code:`ABORTED`,details:{reason:n?.reason,usage:n?.usage}}),this.name=`AbortError`,this.reason=n?.reason,this.messages=n?.messages,this.partial=n?.partial,this.usage=n?.usage,Object.setPrototypeOf(this,e.prototype)}toJSON(){return{...super.toJSON(),reason:this.reason,...this.messages?{messages:this.messages}:{},...this.partial?{partial:this.partial}:{},...this.usage?{usage:this.usage}:{}}}},D=class e extends E{turn;constructor(t=`Agent send aborted`,n){super(t,n),this.turn=n?.turn,Object.setPrototypeOf(this,e.prototype)}toJSON(){return{...super.toJSON(),...this.turn?{turn:this.turn}:{}}}},O=class e extends w{toolName;messages;partial;usage;constructor(t=`Fatal tool error`,n){super(t,{code:`TOOL_FATAL_ERROR`,details:{toolName:n?.toolName,usage:n?.usage},cause:n?.cause}),this.toolName=n?.toolName,this.messages=n?.messages,this.partial=n?.partial,this.usage=n?.usage,Object.setPrototypeOf(this,e.prototype)}toJSON(){return{...super.toJSON(),...this.toolName?{toolName:this.toolName}:{},...this.messages?{messages:this.messages}:{},...this.partial?{partial:this.partial}:{},...this.usage?{usage:this.usage}:{}}}};function k(e){let t=(e,t)=>{throw new w(e,{code:`COMPACTION_INVALID_MESSAGES`,details:t})},n=new Set;for(let r=0;r<e.length;r++){let i=e[r];switch(n.size>0&&i.role!==`tool`&&t(`Compacted messages interleave a "${i.role}" message before tool calls are answered: ${[...n].join(`, `)}`,{messageIndex:r,toolCallIds:[...n]}),i.role){case`user`:break;case`assistant`:for(let e of i.content)e.type===`tool-call`&&(n.has(e.id)&&t(`Compacted messages repeat unanswered tool call id "${e.id}"`,{messageIndex:r,toolCallId:e.id}),n.add(e.id));break;case`tool`:for(let e of i.content)n.has(e.id)||t(`Compacted messages have a tool result for id "${e.id}" with no preceding tool call`,{messageIndex:r,toolCallId:e.id}),n.delete(e.id);break;default:t(`Compacted messages include a message with unknown role "${i.role}"`,{messageIndex:r})}}n.size>0&&t(`Compacted messages end with unanswered tool calls: ${[...n].join(`, `)}`,{toolCallIds:[...n]})}function A(e){let{text:t,files:n}=e,r=[];if(t&&r.push({type:`text`,text:t}),n)for(let e of n)r.push({type:`file`,file:e});return r}function j(e){return typeof e==`string`?e:e.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
2
2
|
|
|
3
|
-
`)}function
|
|
3
|
+
`)}function M(e){return e.filter(e=>e.type===`thinking`).map(e=>e.text??``).join(`
|
|
4
4
|
|
|
5
|
-
`)}function te(e){return e.filter(e=>e.type===`tool-call`)}function ne(e){return e.filter(e=>e.type===`provider-tool`)}function re(e){let t=[];for(let n of e)(n.type===`text`&&n.citations||n.type===`citation`)&&t.push(...n.citations);return t}function ie(e,t=500){return e.length>t?`${e.slice(0,t)}… (${e.length} chars)`:e}function ae(e,t=600){if(e.length<=t)return e;let n=Math.floor(t/2);return`${e.slice(0,n)}…[${e.length} chars]…${e.slice(-n)}`}var oe=class{log;constructor(e){this.log=e}onSpanStart(){}onSpanEnd(e){let t=e.status===`error`?`error`:e.type===`tool`||e.type===`workflow`?`info`:`debug`;this.log({level:t,message:e.name,fields:{...e.attributes,type:e.type,status:e.status,traceId:e.traceId,spanId:e.spanId,...e.parentSpanId?{parentSpanId:e.parentSpanId}:{},...e.endTime===void 0?{}:{durationMs:Math.round(e.endTime-e.startTime)}}})}onEvent(e,t){this.log({level:t.level,message:t.name,fields:{traceId:e.traceId,spanId:e.spanId,name:e.name,...t.attributes}})}};function se(e,t,n){if(!n)return;let r=ie(n);e?.info(t,{text:r}),r!==n&&e?.debug(t,{text:n})}function ce(e){let t=z(e.system??``),n=me(e.tools),r=me(e.mcpTools),i=he(e.providerTools),a=e.messages.reduce((e,t)=>e+le(t),0),o=t+n+r+i+a;return{total:o,system:t,tools:n,mcpTools:r,providerTools:i,messages:a,...e.limit===void 0?{}:{limit:e.limit,free:Math.max(0,e.limit-o)}}}function le(e){switch(e.role){case`user`:return ue(e.content);case`assistant`:return ue(e.content);case`tool`:return e.content.reduce((e,t)=>e+fe(t),0)}}function ue(e){return typeof e==`string`?z(e):e.reduce((e,t)=>e+de(t),0)}function de(e){switch(e.type){case`text`:return z(e.text);case`thinking`:return z(e.summary??e.text??``);case`tool-call`:return z(e.name)+R(e.parameters);case`provider-tool`:return z(e.name)+R(e.input)+R(e.output);case`citation`:return R(e.citations);case`file`:return R(e.file)}}function fe(e){return z(e.name)+pe(e.content)}function pe(e){return typeof e==`string`?z(e):e.reduce((e,t)=>t.type===`text`?e+z(t.text):e+R(t.file),0)}function me(e){let t=e?.map(ge)??[];return t.length===0?0:R({tools:t})}function he(e){return!e||e.length===0?0:R({providerTools:e})}function ge(e){try{return{name:e.name,description:e.description,parameters:l.toJSONSchema(e.schema)}}catch{return{name:e.name,description:e.description}}}function R(e){return e==null?0:z(JSON.stringify(e))}function z(e){return e?Math.ceil(e.length/3):0}function B(e){if(e instanceof c.ZodString)return[`string`,`Your answer`];if(e instanceof c.ZodNumber)return[`number`,42];if(e instanceof c.ZodBoolean)return[`boolean`,!0];if(e instanceof c.ZodEnum){let t=e.options;return[t.map(ve).join(` | `),t[0]]}if(e instanceof c.ZodLiteral){let t=e.value;return[ve(t),t]}if(e instanceof c.ZodArray){let t=e.element;if(t instanceof c.ZodString)return[`string array`,[`answer 1`,`answer 2`,`third answer`]];if(t instanceof c.ZodNumber)return[`number array`,[42,59,3.14]];if(t instanceof c.ZodBoolean)return[`boolean array`,[!0,!1,!1]];if(t instanceof c.ZodObject){let[,e]=B(t);return[`object array`,[e,e]]}else if(t instanceof c.ZodEnum||t instanceof c.ZodLiteral){let[e,n]=B(t);return[`${e} array`,[n]]}return[`array`,[]]}if(e instanceof c.ZodObject){let t=e.shape,n={};for(let[e,r]of Object.entries(t)){let[,t]=B(r);n[e]=t}return[`JSON object`,n]}if(e instanceof c.ZodOptional){let[t,n]=B(e.unwrap());return[`${t} | undefined`,n]}throw Error(`Unsupported Zod schema: ${e.constructor.name}`)}function _e(e){if(e instanceof c.ZodObject)return Object.entries(e.shape).map(([e,t])=>{let[n]=B(t);return[e,n]});let[t]=B(e);return[[`response`,t]]}function ve(e){return typeof e==`string`?JSON.stringify(e):String(e)}function ye(e,t){if(!t)return e;let n=be(e);try{return t.parse(n)}catch(e){if(e&&typeof e==`object`&&`issues`in e){let t=e.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`, `);throw Error(`Validation failed: ${t}`)}throw e}}function be(e){let t=e.trim(),n=t.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i),r=n?n[1].trim():t;try{return JSON.parse(r)}catch(e){throw Error(`Cannot parse response as JSON: ${e.message}`)}}function xe(e,t={}){if(typeof e==`string`)return{message:{role:`user`,id:crypto.randomUUID(),content:[{type:`text`,text:e}],...t.metadata?{metadata:t.metadata}:{}},parse:e=>Se(e,void 0)};let n=e.render(),r=e.files,i=e.schema,a=t.metadata??e.metadata;return{message:{role:`user`,id:crypto.randomUUID(),content:ee({text:n,files:r}),...a?{metadata:a}:{}},parse:e=>Se(e,i)}}function Se(e,t){return e?ye(I(e.content),t):null}function V(){return{in:0,out:0}}function H(e,t){t&&(e.in+=t.in??0,e.out+=t.out??0,G(e,`cachedIn`,t.cachedIn),G(e,`cacheWriteIn`,t.cacheWriteIn),G(e,`reasoningOut`,t.reasoningOut),t.breakdown?.length&&(e.breakdown=we(e.breakdown,t.breakdown)))}function U(...e){let t=V();for(let n of e)H(t,n);return t}function Ce(e,t){return{...e,breakdown:[{provider:t.provider,model:t.model,in:e.in,out:e.out,...e.cachedIn===void 0?{}:{cachedIn:e.cachedIn},...e.cacheWriteIn===void 0?{}:{cacheWriteIn:e.cacheWriteIn},...e.reasoningOut===void 0?{}:{reasoningOut:e.reasoningOut}}]}}function we(e,t){let n=e?[...e]:[];for(let e of t){let t=n.find(t=>t.provider===e.provider&&t.model===e.model);if(!t){n.push({...e});continue}t.in+=e.in,t.out+=e.out,G(t,`cachedIn`,e.cachedIn),G(t,`cacheWriteIn`,e.cacheWriteIn),G(t,`reasoningOut`,e.reasoningOut)}return n}function W(e,t){return{...e,...Ee(`cachedIn`,t.cachedIn),...Ee(`cacheWriteIn`,t.cacheWriteIn),...Ee(`reasoningOut`,t.reasoningOut)}}function Te(e){if(e)return{inputTokens:e.in,outputTokens:e.out,...e.cachedIn===void 0?{}:{cachedInputTokens:e.cachedIn},...e.cacheWriteIn===void 0?{}:{cacheWriteInputTokens:e.cacheWriteIn},...e.reasoningOut===void 0?{}:{reasoningOutputTokens:e.reasoningOut}}}function G(e,t,n){n!==void 0&&(e[t]=(e[t]??0)+n)}function Ee(e,t){return typeof t==`number`?{[e]:t}:{}}var De=class{tools=new Map;mcpTools=new Map;providerTools=new Map;constructor(e){e?.tools&&this.add(e.tools),e?.providerTools&&this.addProvider(e.providerTools)}add(e){let t=Array.isArray(e)?e:[e];for(let e of t){if(this.has(e.name))throw new A(`Tool already registered: ${e.name}`,{code:`TOOL_REGISTRY_DUPLICATE`,details:{name:e.name}});this.tools.set(e.name,e)}}addMcp(e){let t=Array.isArray(e)?e:[e];for(let e of t){if(this.has(e.name))throw new A(`Tool already registered: ${e.name}`,{code:`TOOL_REGISTRY_DUPLICATE`,details:{name:e.name}});this.mcpTools.set(e.name,e)}}addProvider(e){let t=Array.isArray(e)?e:[e];for(let e of t){if(this.has(e.name))throw new A(`Tool already registered: ${e.name}`,{code:`TOOL_REGISTRY_DUPLICATE`,details:{name:e.name}});this.providerTools.set(e.name,e)}}remove(e){let t=this.tools.delete(e),n=this.mcpTools.delete(e),r=this.providerTools.delete(e);return t||n||r}has(e){return this.tools.has(e)||this.mcpTools.has(e)||this.providerTools.has(e)}get(e){return this.tools.get(e)??this.mcpTools.get(e)}getProvider(e){return this.providerTools.get(e)}executable(){return[...this.tools.values(),...this.mcpTools.values()]}local(){return[...this.tools.values()]}mcp(){return[...this.mcpTools.values()]}provider(){return[...this.providerTools.values()]}get size(){return this.tools.size+this.mcpTools.size+this.providerTools.size}};const Oe=c.object({query:c.string().trim().min(1).max(400)});function ke(e){return{name:`web_search`,description:`Search the public web for current information. Returns source titles, URLs, and relevant extracted passages.`,schema:Oe,async execute(t,n){n.span?.setAttribute(`webSearchBackend`,e.name);let r=await e.search({query:t.query},{signal:n.signal,span:n.span});return n.span?.setAttribute(`webSearchResultCount`,r.results.length),JSON.stringify({query:t.query,results:r.results})},summarize(e){return`Search the web for "${e.query}"`}}}function Ae(e){let t=e.apiKey.trim();if(!t)throw Error(`Brave Search apiKey is required`);let n=e.endpoint??`https://api.search.brave.com/res/v1/llm/context`,r=K(e.maxResults??5,`maxResults`,1,50),i=e.candidateCount===void 0?void 0:K(e.candidateCount,`candidateCount`,1,50),a=K(e.maxTokens??4096,`maxTokens`,1,32768),o=e.maxSnippets===void 0?void 0:K(e.maxSnippets,`maxSnippets`,1,256),s=e.maxTokensPerUrl===void 0?void 0:K(e.maxTokensPerUrl,`maxTokensPerUrl`,1,8192),c=e.maxSnippetsPerUrl===void 0?void 0:K(e.maxSnippetsPerUrl,`maxSnippetsPerUrl`,1,100),l=e.timeoutMs===void 0?void 0:K(e.timeoutMs,`timeoutMs`,1);return{name:`brave`,async search(u,d){let f=new URL(n);f.searchParams.set(`q`,u.query),f.searchParams.set(`maximum_number_of_urls`,String(r)),i!==void 0&&f.searchParams.set(`count`,String(i)),f.searchParams.set(`maximum_number_of_tokens`,String(a)),o!==void 0&&f.searchParams.set(`maximum_number_of_snippets`,String(o)),s!==void 0&&f.searchParams.set(`maximum_number_of_tokens_per_url`,String(s)),c!==void 0&&f.searchParams.set(`maximum_number_of_snippets_per_url`,String(c)),e.contextThresholdMode&&f.searchParams.set(`context_threshold_mode`,e.contextThresholdMode),e.country&&f.searchParams.set(`country`,e.country),e.searchLanguage&&f.searchParams.set(`search_lang`,e.searchLanguage),e.freshness&&f.searchParams.set(`freshness`,e.freshness);let p=l===void 0?void 0:AbortSignal.timeout(l),m=p?AbortSignal.any([d.signal,p]):d.signal,h=await fetch(f,{method:`GET`,headers:{Accept:`application/json`,"X-Subscription-Token":t},signal:m});if(!h.ok){let e=(await h.text().catch(()=>``)).replaceAll(t,`[REDACTED]`);throw Error(`Brave Search request failed with status ${h.status}${e?`: ${e}`:``}`)}let g=await h.json(),_=[],v=[...g.grounding?.generic??[],...g.grounding?.poi?[g.grounding.poi]:[],...g.grounding?.map??[]];for(let e of v){if(_.length>=r)break;!e.title||!e.url||!e.snippets?.length||_.push({title:e.title,url:e.url,snippets:e.snippets})}return{results:_}}}}function K(e,t,n,r){if(!Number.isInteger(e))throw Error(`${t} must be an integer`);if(e<n)throw Error(`${t} must be greater than or equal to ${n}`);if(r!==void 0&&e>r)throw Error(`${t} must be less than or equal to ${r}`);return e}function je(e){if(e.maxIterations!==void 0&&e.maxIterations<1)throw new A(`maxIterations must be at least 1 (got ${e.maxIterations})`,{code:`INVALID_OPTIONS`});if(e.maxContextTokens!==void 0&&e.maxContextTokens<1)throw new A(`maxContextTokens must be at least 1 (got ${e.maxContextTokens})`,{code:`INVALID_OPTIONS`})}function Me(e,t,n){if(n.maxIterations!==void 0&&e>=n.maxIterations)return`max-iterations`;let r=t?t.in+t.out:0;if(n.maxContextTokens!==void 0&&r>=n.maxContextTokens)return`token-limit`}function Ne(e,t,n){t.usage&&H(e,n?Ce(t.usage,n):t.usage)}function Pe(e,t){if(!e)return;se(e,`text`,I(t));let n=L(t);n&&e.debug(`thinking`,{thinking:n});for(let n of ne(t))e.info(n.name,{type:`provider-tool`,input:n.input}),n.output!==void 0&&e.trace(n.name,{type:`provider-tool`,output:n.output});Fe(e,re(t))}function Fe(e,t){if(t.length===0)return;let n=Ie(t);e.info(`citations`,{count:t.length,sources:n.slice(0,8),...n.length>8?{more:n.length-8}:{}}),n.length>8&&e.debug(`citations`,{sources:n}),e.setAttribute(`citationCount`,t.length)}function Ie(e){let t=new Set,n=[];for(let{source:r}of e){let e=Le(r),i=`title`in r?r.title:void 0,a=e??i??r.type;t.has(a)||(t.add(a),n.push({type:r.type,...i?{title:i}:{},...e?{url:e}:{}}))}return n}function Le(e){switch(e.type){case`web`:case`search-result`:return e.url;case`retrieved-context`:return e.uri;case`document`:return e.fileId;default:return}}function Re(e){return JSON.stringify({error:e})}function ze(e){let t=e.tools!==void 0||e.providerTools!==void 0;if(e.registry&&t)throw new A("Cannot specify both `registry` and `tools` / `providerTools`. Use one or the other.",{code:`TOOL_OPTIONS_CONFLICT`});return e.registry??new De({tools:e.tools,providerTools:e.providerTools})}function Be(e,t){let n=e.getProvider(`web_search`),r=t.provider.resolveProviderToolName?.bind(t.provider);if(!r)return{registry:e,executable:()=>e.executable(),provider:()=>e.provider(),get:t=>e.get(t)};let i=()=>e.provider().map(e=>{let n=r(e.name,t.model);return n===void 0?e:{...e,nativeName:n}});if(!n||r(`web_search`,t.model)!==void 0)return{registry:e,executable:()=>e.executable(),provider:i,get:t=>e.get(t)};let a=t.configuration.webSearchFallback;if(!a)throw new A(`Provider ${t.provider.name} does not support native web_search and no Axle webSearchFallback is configured`,{code:`WEB_SEARCH_FALLBACK_NOT_CONFIGURED`,details:{provider:t.provider.name,model:t.model}});n.config&&t.span?.warn(`web_search provider config ignored by fallback backend`,{provider:t.provider.name,model:t.model,backend:a.name}),t.span?.info(`Using web search fallback backend`,{provider:t.provider.name,model:t.model,backend:a.name});let o=ke(a);return{registry:e,executable:()=>[...e.executable().filter(e=>e.name!==`web_search`),o],provider:()=>i().filter(e=>e.name!==`web_search`),get:t=>t===`web_search`?o:e.get(t)}}async function Ve(e,t=async()=>null,n,r,i,a){let o=[],s=V(),c=!1;for(let l of e){let e;try{e=await Ue(l,t,n,r,i,a)}catch(e){throw c?He(e,s):e}o.push(e.result),e.usage&&(H(s,e.usage),c=!0)}return{results:o,...c?{usage:s}:{}}}function He(e,t){return e instanceof P?new P(e.message,{toolName:e.toolName,messages:e.messages,partial:e.partial,usage:U(t,e.usage),cause:e.cause}):e instanceof M?new M(e.message,{reason:e.reason,messages:e.messages,partial:e.partial,usage:U(t,e.usage)}):e}async function Ue(e,t,n,r,i,a){if(n.aborted)throw new M(`Operation aborted`,{reason:n.reason});let o=r instanceof De?r:r.registry,s=r.get(e.name),c=i?.startSpan(e.name,{type:`tool`}),l,u={signal:n,span:c,registry:o,emit:t=>a?.onDelta?.(e,t),reportUsage:e=>{l??=V(),H(l,e)}};a?.onStart?.(e);let d,f=`exception`;try{if(d=await t(e.name,e.parameters,u),d==null&&s&&(f=`execution`,d={type:`success`,content:await s.execute(e.parameters,u)}),n.aborted)throw new M(`Operation aborted`,{reason:n.reason})}catch(t){let r=We(t,n);if(r){c?.setResult({kind:`tool`,name:e.name,input:e.parameters,output:{type:r instanceof P?`fatal`:`aborted`,message:r.message}}),c?.end(r instanceof P?`error`:`ok`);let t=l?He(r,l):r;throw a?.onError?.(e,t),t}d={type:`error`,error:{type:f,message:t instanceof Error?t.message:String(t)}}}d??={type:`error`,error:{type:`not-found`,message:`Tool not found: ${e.name}`}};let p={result:d,...l?{usage:l}:{}};a?.onComplete?.(e,p);let m=d.type===`success`?d.content:Re(d.error);return c?.setResult({kind:`tool`,name:e.name,input:e.parameters,output:d.type===`success`?d.content:d.error}),c?.end(d.type===`success`?`ok`:`error`),{result:{id:e.id,name:e.name,content:m,...d.type===`error`?{isError:!0}:{}},...l?{usage:l}:{}}}function We(e,t){if(e instanceof P||e instanceof M)return e;if(t.aborted)return new M(`Operation aborted`,{reason:t.reason})}let Ge=function(e){return e.Stop=`stop`,e.Length=`length`,e.FunctionCall=`function_call`,e.Error=`error`,e.Custom=`custom`,e.Cancelled=`cancelled`,e}({});async function Ke(e,t){let n=[],r=``,i=``,a=null,o=V(),s=null,c=``,l=new Map,u=new Map,d=new Set,f=(e,n)=>{t.emit({type:`tool:request`,id:e,name:n,kind:t.tools.get(n)?.kind??`tool`})},p=-1,m=()=>{if(s!==null){let e=s===`text`?`text:end`:`thinking:end`;t.emit({type:e,final:c}),s=null,c=``}};for await(let h of e){switch(h.type){case`start`:r=h.id,i=h.data.model,t.emit({type:`turn:start`,id:r,model:i});break;case`text-start`:m(),n.push({type:`text`,text:``}),p=n.length-1,u.set(h.data.index,p),s=`text`,c=``,t.emit({type:`text:start`});break;case`text-delta`:{let e=n[p];e.text+=h.data.text,c=e.text,t.emit({type:`text:delta`,delta:h.data.text,accumulated:c});break}case`text-citation`:{let e=n[u.get(h.data.index)??p];if(!e||e.type!==`text`)break;e.citations=[...e.citations??[],h.data.citation],t.emit({type:`text:citation`,citation:h.data.citation,citations:e.citations});break}case`citation`:m(),n.push({type:`citation`,citations:h.data.citations,...h.data.providerMetadata?{providerMetadata:h.data.providerMetadata}:{}}),p=n.length-1,u.set(h.data.index,p),t.emit({type:`citation`,citations:h.data.citations,providerMetadata:h.data.providerMetadata});break;case`text-complete`:m();break;case`thinking-start`:m(),n.push({type:`thinking`,text:``,...h.data.id?{id:h.data.id}:{},...h.data.redacted===void 0?{}:{redacted:h.data.redacted},...h.data.continuity?{continuity:h.data.continuity}:{},...h.data.providerMetadata?{providerMetadata:h.data.providerMetadata}:{}}),p=n.length-1,u.set(h.data.index,p),s=`thinking`,c=``,t.emit({type:`thinking:start`,redacted:h.data.redacted,continuity:h.data.continuity,providerMetadata:h.data.providerMetadata});break;case`thinking-delta`:{let e=n[p];e.text=(e.text??``)+h.data.text,c=e.text,t.emit({type:`thinking:delta`,delta:h.data.text,accumulated:c});break}case`thinking-summary-delta`:{let e=n[p];e.summary=(e.summary??``)+h.data.text,c=e.summary,t.emit({type:`thinking:summary-delta`,delta:h.data.text,accumulated:c});break}case`thinking-metadata`:{let e=n[u.get(h.data.index)??p];if(!e||e.type!==`thinking`)break;h.data.redacted!==void 0&&(e.redacted=h.data.redacted),h.data.continuity&&(e.continuity=h.data.continuity),h.data.providerMetadata&&(e.providerMetadata=h.data.providerMetadata),t.emit({type:`thinking:update`,redacted:h.data.redacted,continuity:h.data.continuity,providerMetadata:h.data.providerMetadata});break}case`thinking-complete`:m();break;case`tool-call-start`:m(),n.push({type:`tool-call`,id:h.data.id,name:h.data.name,parameters:{}}),p=n.length-1,u.set(h.data.index,p),h.data.name?f(h.data.id,h.data.name):d.add(h.data.id);break;case`tool-call-args-delta`:d.has(h.data.id)&&h.data.name&&(d.delete(h.data.id),f(h.data.id,h.data.name)),t.emit({type:`tool:args-delta`,id:h.data.id,name:h.data.name,delta:h.data.delta,accumulated:h.data.accumulated});break;case`tool-call-complete`:{let e=n[u.get(h.data.index)??p];if(!e||e.type!==`tool-call`)break;h.data.id&&(e.id=h.data.id),h.data.name&&(e.name=h.data.name),e.parameters=h.data.arguments,h.data.providerMetadata&&(e.providerMetadata=h.data.providerMetadata),h.data.error&&l.set(e.id,h.data.error),d.has(e.id)&&e.name&&(d.delete(e.id),f(e.id,e.name));break}case`provider-tool-start`:m(),n.push({type:`provider-tool`,id:h.data.id,name:h.data.name}),p=n.length-1,u.set(h.data.index,p),t.emit({type:`provider-tool:start`,id:h.data.id,name:h.data.name});break;case`provider-tool-complete`:{let e=n[u.get(h.data.index)??p];e&&e.type===`provider-tool`&&h.data.output!=null&&(e.output=h.data.output),t.emit({type:`provider-tool:complete`,id:h.data.id,name:h.data.name,output:h.data.output});break}case`complete`:m(),a=h.data.finishReason,o=h.data.usage;break;case`error`:return m(),{kind:`provider-error`,errorType:h.data.type,message:h.data.message,usage:h.data.usage,model:i};default:console.warn(`[WARN] Unhandled chunk type. Should never happen`)}if(t.signal.aborted)break}return t.signal.aborted?(m(),{kind:`aborted`,partial:n.length?{role:`assistant`,id:r,model:i,content:n,finishReason:`cancelled`}:void 0}):a===null?(m(),{kind:`incomplete`}):{kind:`complete`,id:r,model:i,parts:n,finishReason:a,usage:o,toolCallArgumentErrors:l}}function qe(e){let t=e.raw?`${e.message}\nRaw buffer: ${e.raw}`:e.message;return{type:`error`,error:{type:e.type,message:t}}}async function Je(e,t,n,r){let{toolCallArgumentErrors:i}=t,{emit:a,signal:o,resolvedTools:s,span:c,onToolCall:l,newMessages:u,usage:d,addMessage:f}=r,p=crypto.randomUUID();a({type:`tool-results:start`,id:p});let m=[],h=new Map;for(let t of e){let e=i.get(t.id);if(!e){m.push(t);continue}let n=qe(e);h.set(t.id,{id:t.id,name:t.name,content:Re(n.error),isError:!0}),a({type:`tool:exec-complete`,id:t.id,name:t.name,result:n})}let g={onStart(e){a({type:`tool:exec-start`,id:e.id,name:e.name,parameters:e.parameters})},onDelta(e,t){a({type:`tool:exec-delta`,id:e.id,name:e.name,chunk:t})},onComplete(e,t){a({type:`tool:exec-complete`,id:e.id,name:e.name,result:t.result,usage:t.usage})},onError(e,t){a({type:`tool:exec-error`,id:e.id,name:e.name,error:{type:t instanceof P?`fatal`:`aborted`,message:t.message},usage:t.usage})}},_=[],v;try{m.length>0&&({results:_,usage:v}=await Ve(m,l,o,s,c,g))}catch(e){throw e instanceof P?(c?.end(`error`),new P(e.message,{toolName:e.toolName,messages:e.messages??u,partial:e.partial??n,usage:U(d,e.usage),cause:e.cause})):e instanceof M?(c?.end(`ok`),new M(`Stream aborted`,{reason:e.reason,messages:e.messages??u,partial:e.partial,usage:U(d,e.usage)})):e}H(d,v);let y=new Map(_.map(e=>[e.id,e])),b=e.flatMap(e=>{let t=h.get(e.id);if(t)return[t];let n=y.get(e.id);return n?[n]:[]});if(b.length>0){let e={role:`tool`,id:p,content:b};f(e),a({type:`tool-results:complete`,message:e})}}function Ye(e,t){for(let n of e)n(t)}function Xe(e){return{name:e.name,description:e.description,schema:e.schema}}function Ze(e){let t=[],n,r;if(`instruct`in e){let{instruct:t,messages:i,...a}=e,o=xe(t);r=o.parse,n={...a,messages:[...i??[],o.message]}}else n=e;je(n);let i=new AbortController,a=n.signal?AbortSignal.any([i.signal,n.signal]):i.signal,{promise:o,resolve:s,reject:c}=Promise.withResolvers(),l=k();return Promise.resolve().then(()=>Qe(n,a,t,l).then(e=>{if(r&&e.ok){try{s({...e,response:r(e.final)})}catch(t){s({ok:!1,messages:e.messages,final:e.final,usage:e.usage,...e.stopped?{stopped:e.stopped}:{},error:{kind:`parse`,error:t,message:t instanceof Error?t.message:String(t)}})}return}s(e)},c)),{on(e){t.push(e)},cancel(e){i.abort(e)},get final(){return o}}}async function Qe(e,t,n,r){let{provider:i,model:a,messages:o,system:s,onToolCall:c,maxIterations:l,maxContextTokens:u,span:d,fileResolver:f,reasoning:p,maxOutputTokens:m,temperature:h,topP:g,stop:_,toolChoice:v,parallelToolCalls:y,providerOptions:b}=e,x=Be(ze(e),{provider:i,model:a,span:d,configuration:r}),S=[...o],C=[],w=V(),T=0,E=e=>{S.push(e),C.push(e)},D={emit:e=>Ye(n,e),signal:t,resolvedTools:x,span:d,onToolCall:c,newMessages:C,usage:w,addMessage:E},O=e=>{e.ok||Ye(n,{type:`error`,error:e.error});let t=e.ok?e.final.content:null,r=e.ok?e.final.finishReason:void 0;return d?.setResult({kind:`llm`,model:a,request:{messages:o},response:{content:t??null},usage:Te(e.usage),finishReason:r}),d?.end(e.ok?`ok`:`error`),e};for(;;){if(t.aborted)throw d?.end(`ok`),new M(`Stream aborted`,{reason:t.reason,messages:C,usage:w});T+=1;let e=d?.startSpan(`turn-${T}`,{type:`llm`}),r=x.executable(),o=r.length>0?r.map(Xe):void 0,c=x.provider(),k=await Ke(i.createStreamingRequest(a,{messages:S,system:s,tools:o,providerTools:c.length>0?c:void 0,runtime:{span:e,fileResolver:f},signal:t,reasoning:p,maxOutputTokens:m,temperature:h,topP:g,stop:_,toolChoice:v,parallelToolCalls:y,providerOptions:b}),{emit:e=>Ye(n,e),tools:x,signal:t});if(k.kind===`aborted`)throw e?.end(`ok`),k.partial&&E(k.partial),d?.end(`ok`),new M(`Stream aborted`,{reason:t.reason,messages:C,partial:k.partial,usage:w});if(k.kind===`provider-error`)return k.usage&&H(w,Ce(k.usage,{provider:i.name,model:k.model||a})),e?.end(`error`),O({ok:!1,messages:C,error:{kind:`model`,message:k.message,error:{type:`error`,error:{type:k.errorType,message:k.message}}},usage:w});if(k.kind===`incomplete`)return e?.end(`error`),O({ok:!1,messages:C,error:{kind:`model`,message:`Stream ended without a completion signal`,error:{type:`error`,error:{type:`IncompleteStream`,message:`Stream ended without a completion signal`}}},usage:w});let{id:A,model:j,parts:N,finishReason:P,usage:F}=k,ee=Ce(F,{provider:i.name,model:j||a});H(w,ee);let I={kind:`llm`,model:j,request:{messages:S},response:{content:N},usage:Te(F),finishReason:P};Pe(e,N),e?.setResult(I),e?.end();let L={role:`assistant`,id:A,model:j,content:N,finishReason:P};if(E(L),Ye(n,{type:`turn:complete`,message:L,usage:ee}),P!==`function_call`)return O({ok:!0,response:L,messages:C,final:L,usage:w});let te=N.filter(e=>e.type===`tool-call`);if(te.length===0)return O({ok:!0,response:L,messages:C,final:L,usage:w});if(t.aborted)throw d?.end(`ok`),new M(`Stream aborted`,{reason:t.reason,messages:C,usage:w});await Je(te,k,L,D);let ne=Me(T,F,{maxIterations:l,maxContextTokens:u});if(ne)return O({ok:!0,response:L,messages:C,final:L,usage:w,stopped:ne})}}function q(e=new Date){return{start:e.toISOString()}}function J(e,t=new Date){let n=t.toISOString();return e?{...e,end:n}:{start:n,end:n}}var $e=class{currentTurnId=null;currentTurnTiming;currentTextPart=null;currentThinkingPart=null;toolIdMap=new Map;accumulatedUsage=V();createUserTurn(e){let t=e.id??crypto.randomUUID(),n=[],r=new Date,i=J(q(r),r),a=()=>({...i});if(typeof e.content==`string`)n.push({id:crypto.randomUUID(),type:`text`,text:e.content,timing:a()});else for(let t of e.content)t.type===`text`?n.push({id:crypto.randomUUID(),type:`text`,text:t.text,...t.citations?{citations:t.citations}:{},...t.providerMetadata?{providerMetadata:t.providerMetadata}:{},timing:a()}):t.type===`file`&&n.push({id:crypto.randomUUID(),type:`file`,file:t.file,timing:a()});return[{type:`turn:user`,turn:{id:t,owner:`user`,parts:n,status:`complete`,timing:i,...e.metadata?{metadata:e.metadata}:{}}}]}startAgentTurn(){let e=crypto.randomUUID();return this.currentTurnId=e,this.currentTurnTiming=q(),this.currentTextPart=null,this.currentThinkingPart=null,this.toolIdMap.clear(),this.accumulatedUsage=V(),{type:`turn:start`,turnId:e,timing:this.currentTurnTiming}}handleStreamEvent(e){let t=this.currentTurnId;if(!t)return[];let n=[];switch(e.type){case`turn:start`:break;case`text:start`:{this.closeOpenParts(n);let e=crypto.randomUUID(),r={id:e,type:`text`,text:``,timing:q()};this.currentTextPart={id:e,timing:r.timing},n.push({type:`part:start`,turnId:t,part:r});break}case`text:delta`:this.currentTextPart&&n.push({type:`text:delta`,turnId:t,partId:this.currentTextPart.id,delta:e.delta});break;case`text:end`:if(this.currentTextPart){let e=J(this.currentTextPart.timing);n.push({type:`part:end`,turnId:t,partId:this.currentTextPart.id,timing:e}),this.currentTextPart=null}break;case`citation`:{this.closeOpenParts(n);let r=J(q()),i={id:crypto.randomUUID(),type:`citation`,citations:e.citations,...e.providerMetadata?{providerMetadata:e.providerMetadata}:{},timing:r};n.push({type:`part:start`,turnId:t,part:i}),n.push({type:`part:end`,turnId:t,partId:i.id,timing:r});break}case`thinking:start`:{this.closeOpenParts(n);let r=crypto.randomUUID(),i={id:r,type:`thinking`,text:``,timing:q(),...e.redacted===void 0?{}:{redacted:e.redacted},...e.continuity?{continuity:e.continuity}:{},...e.providerMetadata?{providerMetadata:e.providerMetadata}:{}};this.currentThinkingPart={id:r,timing:i.timing},n.push({type:`part:start`,turnId:t,part:i});break}case`thinking:delta`:this.currentThinkingPart&&n.push({type:`thinking:delta`,turnId:t,partId:this.currentThinkingPart.id,delta:e.delta});break;case`text:citation`:this.currentTextPart&&n.push({type:`text:citation`,turnId:t,partId:this.currentTextPart.id,citation:e.citation});break;case`thinking:summary-delta`:this.currentThinkingPart&&n.push({type:`thinking:summary-delta`,turnId:t,partId:this.currentThinkingPart.id,delta:e.delta});break;case`thinking:update`:this.currentThinkingPart&&n.push({type:`thinking:update`,turnId:t,partId:this.currentThinkingPart.id,redacted:e.redacted,continuity:e.continuity,providerMetadata:e.providerMetadata});break;case`thinking:end`:if(this.currentThinkingPart){let e=J(this.currentThinkingPart.timing);n.push({type:`part:end`,turnId:t,partId:this.currentThinkingPart.id,timing:e}),this.currentThinkingPart=null}break;case`tool:request`:{this.closeOpenParts(n);let r=crypto.randomUUID(),i=q(),a=e.kind===`agent`?{id:r,type:`action`,kind:`agent`,status:`pending`,timing:i,detail:{name:e.name,children:[]}}:{id:r,type:`action`,kind:`tool`,status:`pending`,timing:i,detail:{name:e.name,parameters:{}}};this.toolIdMap.set(e.id,{partId:r,turnId:t,timing:i,name:e.name,kind:e.kind}),n.push({type:`part:start`,turnId:t,part:a});break}case`tool:args-delta`:{let r=this.toolIdMap.get(e.id);r&&n.push({type:`action:args-delta`,turnId:t,partId:r.partId,delta:e.delta,accumulated:e.accumulated});break}case`tool:exec-start`:{let r=this.toolIdMap.get(e.id);r&&n.push({type:`action:running`,turnId:t,partId:r.partId,parameters:e.parameters});break}case`tool:exec-delta`:{let r=this.toolIdMap.get(e.id);r&&(typeof e.chunk==`string`?n.push({type:`action:progress`,turnId:t,partId:r.partId,chunk:e.chunk}):e.chunk.type===`turn-event`&&n.push({type:`action:child-event`,turnId:t,partId:r.partId,event:e.chunk.event}));break}case`tool:exec-complete`:{let r=this.toolIdMap.get(e.id);if(r){H(this.accumulatedUsage,e.usage);let i=J(r.timing);r.timing=i,e.result.type===`success`?n.push({type:`action:complete`,turnId:t,partId:r.partId,result:{type:`success`,content:e.result.content},timing:i}):n.push({type:`action:error`,turnId:t,partId:r.partId,error:e.result.error,timing:i})}break}case`tool:exec-error`:{let r=this.toolIdMap.get(e.id);if(r){H(this.accumulatedUsage,e.usage);let i=J(r.timing);r.timing=i,n.push({type:`action:error`,turnId:t,partId:r.partId,error:e.error,timing:i})}break}case`provider-tool:start`:{this.closeOpenParts(n);let r=crypto.randomUUID(),i=q(),a={id:r,type:`action`,kind:`provider-tool`,status:`running`,timing:i,detail:{name:e.name}};this.toolIdMap.set(e.id,{partId:r,turnId:t,timing:i}),n.push({type:`part:start`,turnId:t,part:a}),n.push({type:`action:running`,turnId:t,partId:r});break}case`provider-tool:complete`:{let r=this.toolIdMap.get(e.id);if(r){let i=J(r.timing);r.timing=i,n.push({type:`action:complete`,turnId:t,partId:r.partId,result:{type:`success`,content:e.output},timing:i})}break}case`turn:complete`:this.closeOpenParts(n),H(this.accumulatedUsage,e.usage);break;case`tool-results:start`:case`tool-results:complete`:break;case`error`:{let r=e.error;n.push({type:`error`,turnId:t,error:{type:r.kind,message:r.message}});break}}return n}finalizeTurn(e=`complete`){let t=this.currentTurnId;if(!t)return[];let n=[];this.closeOpenParts(n);let r=J(this.currentTurnTiming);return n.push({type:`turn:end`,turnId:t,status:e,usage:{...this.accumulatedUsage},timing:r}),this.currentTurnId=null,this.currentTurnTiming=void 0,n}closeOpenParts(e){let t=this.currentTurnId;t&&(this.currentTextPart&&=(e.push({type:`part:end`,turnId:t,partId:this.currentTextPart.id,timing:J(this.currentTextPart.timing)}),null),this.currentThinkingPart&&=(e.push({type:`part:end`,turnId:t,partId:this.currentThinkingPart.id,timing:J(this.currentThinkingPart.timing)}),null))}},et=class{_turns;_messages;_archive;_compactions;_sessionAnnotations;constructor(e){this._turns=[...e?.turns??[]],this._messages=[...e?.messages??[]],this._archive=[...e?.archive??e?.messages??[]],this._compactions=[...e?.compactions??[]],this._sessionAnnotations=[...e?.sessionAnnotations??[]]}get turns(){return[...this._turns]}get messages(){return[...this._messages]}get archive(){return[...this._archive]}get compactions(){return[...this._compactions]}get sessionAnnotations(){return[...this._sessionAnnotations]}append(e){let t=Array.isArray(e)?e:[e];this._messages.push(...t),this._archive.push(...t)}replaceTurns(e,t){this._turns=e,this._sessionAnnotations=t}compact(e,t){this._messages=[...e],this._compactions.push(t)}};const tt={trace:0,debug:1,info:2,warn:3,error:4},nt=()=>performance.timeOrigin+performance.now();var rt=class{writers=[];minLevel=`info`;addWriter(e){this.writers.includes(e)||this.writers.push(e)}removeWriter(e){let t=this.writers.indexOf(e);t!==-1&&this.writers.splice(t,1)}shouldLog(e){return tt[e]>=tt[this.minLevel]}spanStart(e){for(let t of this.writers)t.onSpanStart(e)}spanEnd(e){for(let t of this.writers)t.onSpanEnd(e)}spanUpdate(e){for(let t of this.writers)t.onSpanUpdate?.(e)}event(e,t){for(let n of this.writers)n.onEvent?.(e,t)}async flush(){for(let e of this.writers)e.flush&&await e.flush()}},it=class{rec=new rt;constructor(e){e?.minLevel&&(this.rec.minLevel=e.minLevel);for(let t of e?.writers??[])this.rec.addWriter(t)}get minLevel(){return this.rec.minLevel}set minLevel(e){this.rec.minLevel=e}addWriter(e){this.rec.addWriter(e)}removeWriter(e){this.rec.removeWriter(e)}startSpan(e,t){let n={traceId:crypto.randomUUID(),spanId:crypto.randomUUID(),name:e,type:t?.type,startTime:nt(),status:`ok`,attributes:{...t?.attributes??{}},events:[]};return this.rec.spanStart(n),new at(n,this.rec)}flush(){return this.rec.flush()}},at=class e{data;rec;ended=!1;constructor(e,t){this.data=e,this.rec=t}startSpan(t,n){let r={traceId:this.data.traceId,spanId:crypto.randomUUID(),parentSpanId:this.data.spanId,name:t,type:n?.type,startTime:nt(),status:`ok`,attributes:{...n?.attributes??{}},events:[]};return this.rec.spanStart(r),new e(r,this.rec)}end(e=`ok`){this.ended||(this.ended=!0,this.data.endTime=nt(),this.data.status=e,this.rec.spanEnd(this.data))}addEvent(e,t,n){if(this.ended||!this.rec.shouldLog(t))return;let r={name:e,timestamp:nt(),level:t,attributes:n};this.data.events.push(r),this.rec.event(this.data,r)}trace(e,t){this.addEvent(e,`trace`,t)}debug(e,t){this.addEvent(e,`debug`,t)}info(e,t){this.addEvent(e,`info`,t)}warn(e,t){this.addEvent(e,`warn`,t)}error(e,t){this.addEvent(e,`error`,t)}setAttribute(e,t){this.ended||(this.data.attributes[e]=t,this.rec.spanUpdate(this.data))}setAttributes(e){this.ended||(Object.assign(this.data.attributes,e),this.rec.spanUpdate(this.data))}setResult(e){this.ended||(this.data.result=e,this.rec.spanUpdate(this.data))}};function ot(e){if(!e)return{};let{trace:t,log:n,level:r}=e;if(t)return n&&console.warn(`[axle] observability.log is ignored when observability.trace is set; add a LogWriter to your tracer's writers instead`),{parent:t};if(n){let e=new it({minLevel:r,writers:[new oe(n)]});return{parent:e,owned:e}}return{}}function st(e){return ct(e)?`cancelled`:`error`}function ct(e){return e instanceof M||e instanceof N||e instanceof Error&&e.name===`AbortError`}function lt(e,t){return{...e,...t,providerOptions:e?.providerOptions||t?.providerOptions?{...e?.providerOptions,...t?.providerOptions}:void 0}}var ut=class{provider;model;history;name;fileResolver;requestOptions;registry;sessionId;system;mcps=[];resolvedMcps=new WeakSet;memory;spanParent;ownedTracer;eventCallbacks=[];compactionCallback;workQueue=Promise.resolve();accumulator;constructor(t,n){if(n&&n.version!==1)throw new A(`Unsupported agent session version: ${n.version}`);this.provider=t.provider,this.model=t.model,this.sessionId=n?.sessionId??t.sessionId??crypto.randomUUID(),this.history=new et(n?{turns:n.turns,messages:n.messages,archive:n.archive,compactions:n.compactions,sessionAnnotations:n.sessionAnnotations}:void 0),this.accumulator=new e({turns:this.history.turns,sessionAnnotations:this.history.sessionAnnotations});let r=ot(t.observability);if(this.spanParent=r.parent,this.ownedTracer=r.owned,this.system=t.system,this.name=t.name,this.fileResolver=t.fileResolver,this.requestOptions={reasoning:t.reasoning,maxOutputTokens:t.maxOutputTokens,temperature:t.temperature,topP:t.topP,stop:t.stop,toolChoice:t.toolChoice,parallelToolCalls:t.parallelToolCalls,providerOptions:t.providerOptions},this.registry=new De({tools:t.tools,providerTools:t.providerTools}),t.mcps&&(this.mcps=[...t.mcps]),t.memory){this.memory=t.memory;let e=t.memory.tools?.();e&&this.registry.add(e)}}addMcp(e){this.mcps.push(e)}addMcps(e){this.mcps.push(...e)}hasTools(){return this.registry.size>0||this.mcps.length>0}on(e){return this.eventCallbacks.push(e),()=>{let t=this.eventCallbacks.indexOf(e);t>=0&&this.eventCallbacks.splice(t,1)}}context(){return this.estimateContext(this.history.messages)}estimateContext(e){return ce({system:this.system,messages:e,tools:this.toToolDefinitions(this.registry.local()),providerTools:this.registry.provider(),mcpTools:this.toToolDefinitions(this.registry.mcp())})}onCompaction(e){this.compactionCallback=e}compact(e){let t=this.compactionCallback;return t?this.queue(async e=>{if(e.aborted)return null;let n=this.spanParent?.startSpan(`agent.compact`,{type:`workflow`,attributes:{sessionId:this.sessionId,...this.name?{agentName:this.name}:{}}}),r=`ok`,i=crypto.randomUUID(),a=new Date().toISOString();this.emitEvent({type:`compaction:start`,id:i,timing:{start:a}});let o=(e,t)=>{n?.setAttribute(`outcome`,e),this.emitEvent({type:`compaction:end`,id:i,outcome:e,record:t,timing:{start:a,end:new Date().toISOString()}})};try{let r=this.context(),s=await t({messages:this.history.messages},{usage:r,signal:e});if(e.aborted||s==null)return o(`skipped`),null;F(s);let c={id:i,at:a};return this.history.compact(s,c),n&&n.setAttributes({beforeTokens:r.total,afterTokens:this.context().total}),o(`complete`,c),c}catch(t){if(e.aborted)return o(`skipped`),null;throw r=st(t),n?.error(t instanceof Error?t.message:String(t)),o(`error`),t}finally{n?.end(r),await this.ownedTracer?.flush()}},e?.signal).final:Promise.resolve(null)}snapshot(){return this.queue(async()=>{let{messages:e,archive:t,compactions:n,turns:r,sessionAnnotations:i}=this.history;return{version:1,sessionId:this.sessionId,messages:e,archive:t,compactions:n,turns:r,sessionAnnotations:i}}).final}send(e,t){let{fileResolver:n,metadata:r,...i}=t??{},a=xe(e,{metadata:r}),o=lt(this.requestOptions,i);return this.queue(async e=>{let t=this.spanParent?.startSpan(`agent.send`,{type:`workflow`,attributes:{sessionId:this.sessionId,...this.name?{agentName:this.name}:{}}});se(t,`message`,I(a.message.content));let r=`ok`;try{let i=await this.run(a,{signal:e,fileResolver:n,requestOptions:o,span:t});return i.ok||(r=`error`),t?.setAttributes({inputTokens:i.usage.in,outputTokens:i.usage.out}),i}catch(e){throw r=st(e),t?.error(e instanceof Error?e.message:String(e)),e}finally{t?.end(r),await this.ownedTracer?.flush()}},i.signal)}queue(e,t){let n=new AbortController,r=t?AbortSignal.any([t,n.signal]):n.signal,i=this.workQueue.then(()=>e(r));return this.workQueue=i.then(()=>{},()=>{}),{cancel:e=>n.abort(e),final:i}}async resolveMcpTools(e,t){for(let n of this.mcps){if(this.resolvedMcps.has(n))continue;let r=await n.listTools({prefix:n.name,span:t,signal:e});this.registry.addMcp(r),this.resolvedMcps.add(n)}}emitEvent(e){let t=this.accumulator.apply(e);t.handled&&this.history.replaceTurns(t.state.turns,t.state.sessionAnnotations??[]);for(let t of this.eventCallbacks)t(e)}toToolDefinitions(e){return e.map(e=>({name:e.name,description:e.description,schema:e.schema}))}async run(e,t){let{signal:n,fileResolver:r,requestOptions:i}=t,a=t.span,o=new $e,s,c=()=>s?this.accumulator.state.turns.find(e=>e.id===s):void 0,l=V();if(n.aborted)throw new N(`Agent send aborted`,{reason:n.reason,usage:l});try{await this.resolveMcpTools(n,a)}catch(e){throw n.aborted||e instanceof M||e instanceof Error&&e.name===`AbortError`?new N(`Agent send aborted`,{reason:e instanceof M?e.reason:n.reason,usage:l}):e}let u=this.system,d=[...this.history.messages,e.message];if(this.memory){let e=await this.memory.recall({agentName:this.name,sessionId:this.sessionId,system:this.system,messages:d,span:a});e.systemSuffix&&(u=(u??``)+`
|
|
5
|
+
`)}function N(e){return e.filter(e=>e.type===`tool-call`)}function P(e){return e.filter(e=>e.type===`provider-tool`)}function ee(e){let t=[];for(let n of e)(n.type===`text`&&n.citations||n.type===`citation`)&&t.push(...n.citations);return t}function te(e,t=500){return e.length>t?`${e.slice(0,t)}… (${e.length} chars)`:e}function ne(e,t=600){if(e.length<=t)return e;let n=Math.floor(t/2);return`${e.slice(0,n)}…[${e.length} chars]…${e.slice(-n)}`}var F=class{log;constructor(e){this.log=e}onSpanStart(){}onSpanEnd(e){let t=e.status===`error`?`error`:e.type===`tool`||e.type===`workflow`?`info`:`debug`;this.log({level:t,message:e.name,fields:{...e.attributes,type:e.type,status:e.status,traceId:e.traceId,spanId:e.spanId,...e.parentSpanId?{parentSpanId:e.parentSpanId}:{},...e.endTime===void 0?{}:{durationMs:Math.round(e.endTime-e.startTime)}}})}onEvent(e,t){this.log({level:t.level,message:t.name,fields:{traceId:e.traceId,spanId:e.spanId,name:e.name,...t.attributes}})}};function re(e,t,n){if(!n)return;let r=te(n);e?.info(t,{text:r}),r!==n&&e?.debug(t,{text:n})}function ie(e){let t=L(e.system??``),n=ue(e.tools),r=ue(e.mcpTools),i=de(e.providerTools),a=e.messages.reduce((e,t)=>e+ae(t),0),o=t+n+r+i+a;return{total:o,system:t,tools:n,mcpTools:r,providerTools:i,messages:a,...e.limit===void 0?{}:{limit:e.limit,free:Math.max(0,e.limit-o)}}}function ae(e){switch(e.role){case`user`:return oe(e.content);case`assistant`:return oe(e.content);case`tool`:return e.content.reduce((e,t)=>e+ce(t),0)}}function oe(e){return typeof e==`string`?L(e):e.reduce((e,t)=>e+se(t),0)}function se(e){switch(e.type){case`text`:return L(e.text);case`thinking`:return L(e.summary??e.text??``);case`tool-call`:return L(e.name)+I(e.parameters);case`provider-tool`:return L(e.name)+I(e.input)+I(e.output);case`citation`:return I(e.citations);case`file`:return I(e.file)}}function ce(e){return L(e.name)+le(e.content)}function le(e){return typeof e==`string`?L(e):e.reduce((e,t)=>t.type===`text`?e+L(t.text):e+I(t.file),0)}function ue(e){let t=e?.map(fe)??[];return t.length===0?0:I({tools:t})}function de(e){return!e||e.length===0?0:I({providerTools:e})}function fe(e){try{return{name:e.name,description:e.description,parameters:r.toJSONSchema(e.schema)}}catch{return{name:e.name,description:e.description}}}function I(e){return e==null?0:L(JSON.stringify(e))}function L(e){return e?Math.ceil(e.length/3):0}function R(e){if(e instanceof n.ZodString)return[`string`,`Your answer`];if(e instanceof n.ZodNumber)return[`number`,42];if(e instanceof n.ZodBoolean)return[`boolean`,!0];if(e instanceof n.ZodEnum){let t=e.options;return[t.map(me).join(` | `),t[0]]}if(e instanceof n.ZodLiteral){let t=e.value;return[me(t),t]}if(e instanceof n.ZodArray){let t=e.element;if(t instanceof n.ZodString)return[`string array`,[`answer 1`,`answer 2`,`third answer`]];if(t instanceof n.ZodNumber)return[`number array`,[42,59,3.14]];if(t instanceof n.ZodBoolean)return[`boolean array`,[!0,!1,!1]];if(t instanceof n.ZodObject){let[,e]=R(t);return[`object array`,[e,e]]}else if(t instanceof n.ZodEnum||t instanceof n.ZodLiteral){let[e,n]=R(t);return[`${e} array`,[n]]}return[`array`,[]]}if(e instanceof n.ZodObject){let t=e.shape,n={};for(let[e,r]of Object.entries(t)){let[,t]=R(r);n[e]=t}return[`JSON object`,n]}if(e instanceof n.ZodOptional){let[t,n]=R(e.unwrap());return[`${t} | undefined`,n]}throw Error(`Unsupported Zod schema: ${e.constructor.name}`)}function pe(e){if(e instanceof n.ZodObject)return Object.entries(e.shape).map(([e,t])=>{let[n]=R(t);return[e,n]});let[t]=R(e);return[[`response`,t]]}function me(e){return typeof e==`string`?JSON.stringify(e):String(e)}function he(e,t){if(!t)return e;let n=ge(e);try{return t.parse(n)}catch(e){if(e&&typeof e==`object`&&`issues`in e){let t=e.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`, `);throw Error(`Validation failed: ${t}`)}throw e}}function ge(e){let t=e.trim(),n=t.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i),r=n?n[1].trim():t;try{return JSON.parse(r)}catch(e){throw Error(`Cannot parse response as JSON: ${e.message}`)}}function _e(e,t={}){if(typeof e==`string`)return{message:{role:`user`,id:crypto.randomUUID(),content:[{type:`text`,text:e}],...t.metadata?{metadata:t.metadata}:{}},parse:e=>ve(e,void 0)};let n=e.render(),r=e.files,i=e.schema,a=t.metadata??e.metadata;return{message:{role:`user`,id:crypto.randomUUID(),content:A({text:n,files:r}),...a?{metadata:a}:{}},parse:e=>ve(e,i)}}function ve(e,t){return e?he(j(e.content),t):null}function z(){return{in:0,out:0}}function B(e,t){t&&(e.in+=t.in??0,e.out+=t.out??0,U(e,`cachedIn`,t.cachedIn),U(e,`cacheWriteIn`,t.cacheWriteIn),U(e,`reasoningOut`,t.reasoningOut),t.breakdown?.length&&(e.breakdown=be(e.breakdown,t.breakdown)))}function V(...e){let t=z();for(let n of e)B(t,n);return t}function ye(e,t){return{...e,breakdown:[{provider:t.provider,model:t.model,in:e.in,out:e.out,...e.cachedIn===void 0?{}:{cachedIn:e.cachedIn},...e.cacheWriteIn===void 0?{}:{cacheWriteIn:e.cacheWriteIn},...e.reasoningOut===void 0?{}:{reasoningOut:e.reasoningOut}}]}}function be(e,t){let n=e?[...e]:[];for(let e of t){let t=n.find(t=>t.provider===e.provider&&t.model===e.model);if(!t){n.push({...e});continue}t.in+=e.in,t.out+=e.out,U(t,`cachedIn`,e.cachedIn),U(t,`cacheWriteIn`,e.cacheWriteIn),U(t,`reasoningOut`,e.reasoningOut)}return n}function H(e,t){return{...e,...Se(`cachedIn`,t.cachedIn),...Se(`cacheWriteIn`,t.cacheWriteIn),...Se(`reasoningOut`,t.reasoningOut)}}function xe(e){if(e)return{inputTokens:e.in,outputTokens:e.out,...e.cachedIn===void 0?{}:{cachedInputTokens:e.cachedIn},...e.cacheWriteIn===void 0?{}:{cacheWriteInputTokens:e.cacheWriteIn},...e.reasoningOut===void 0?{}:{reasoningOutputTokens:e.reasoningOut}}}function U(e,t,n){n!==void 0&&(e[t]=(e[t]??0)+n)}function Se(e,t){return typeof t==`number`?{[e]:t}:{}}var Ce=class{tools=new Map;mcpTools=new Map;providerTools=new Map;constructor(e){e?.tools&&this.add(e.tools),e?.providerTools&&this.addProvider(e.providerTools)}add(e){let t=Array.isArray(e)?e:[e];for(let e of t){if(this.has(e.name))throw new w(`Tool already registered: ${e.name}`,{code:`TOOL_REGISTRY_DUPLICATE`,details:{name:e.name}});this.tools.set(e.name,e)}}addMcp(e){let t=Array.isArray(e)?e:[e];for(let e of t){if(this.has(e.name))throw new w(`Tool already registered: ${e.name}`,{code:`TOOL_REGISTRY_DUPLICATE`,details:{name:e.name}});this.mcpTools.set(e.name,e)}}addProvider(e){let t=Array.isArray(e)?e:[e];for(let e of t){if(this.has(e.name))throw new w(`Tool already registered: ${e.name}`,{code:`TOOL_REGISTRY_DUPLICATE`,details:{name:e.name}});this.providerTools.set(e.name,e)}}remove(e){let t=this.tools.delete(e),n=this.mcpTools.delete(e),r=this.providerTools.delete(e);return t||n||r}has(e){return this.tools.has(e)||this.mcpTools.has(e)||this.providerTools.has(e)}get(e){return this.tools.get(e)??this.mcpTools.get(e)}getProvider(e){return this.providerTools.get(e)}executable(){return[...this.tools.values(),...this.mcpTools.values()]}local(){return[...this.tools.values()]}mcp(){return[...this.mcpTools.values()]}provider(){return[...this.providerTools.values()]}get size(){return this.tools.size+this.mcpTools.size+this.providerTools.size}};const we=n.object({query:n.string().trim().min(1).max(400)});function Te(e){return{name:`web_search`,description:`Search the public web for current information. Returns source titles, URLs, and relevant extracted passages.`,schema:we,async execute(t,n){n.span?.setAttribute(`webSearchBackend`,e.name);let r=await e.search({query:t.query},{signal:n.signal,span:n.span});return n.span?.setAttribute(`webSearchResultCount`,r.results.length),JSON.stringify({query:t.query,results:r.results})},summarize(e){return`Search the web for "${e.query}"`}}}function Ee(e){let t=e.apiKey.trim();if(!t)throw Error(`Brave Search apiKey is required`);let n=e.endpoint??`https://api.search.brave.com/res/v1/llm/context`,r=W(e.maxResults??5,`maxResults`,1,50),i=e.candidateCount===void 0?void 0:W(e.candidateCount,`candidateCount`,1,50),a=W(e.maxTokens??4096,`maxTokens`,1,32768),o=e.maxSnippets===void 0?void 0:W(e.maxSnippets,`maxSnippets`,1,256),s=e.maxTokensPerUrl===void 0?void 0:W(e.maxTokensPerUrl,`maxTokensPerUrl`,1,8192),c=e.maxSnippetsPerUrl===void 0?void 0:W(e.maxSnippetsPerUrl,`maxSnippetsPerUrl`,1,100),l=e.timeoutMs===void 0?void 0:W(e.timeoutMs,`timeoutMs`,1);return{name:`brave`,async search(u,d){let f=new URL(n);f.searchParams.set(`q`,u.query),f.searchParams.set(`maximum_number_of_urls`,String(r)),i!==void 0&&f.searchParams.set(`count`,String(i)),f.searchParams.set(`maximum_number_of_tokens`,String(a)),o!==void 0&&f.searchParams.set(`maximum_number_of_snippets`,String(o)),s!==void 0&&f.searchParams.set(`maximum_number_of_tokens_per_url`,String(s)),c!==void 0&&f.searchParams.set(`maximum_number_of_snippets_per_url`,String(c)),e.contextThresholdMode&&f.searchParams.set(`context_threshold_mode`,e.contextThresholdMode),e.country&&f.searchParams.set(`country`,e.country),e.searchLanguage&&f.searchParams.set(`search_lang`,e.searchLanguage),e.freshness&&f.searchParams.set(`freshness`,e.freshness);let p=l===void 0?void 0:AbortSignal.timeout(l),m=p?AbortSignal.any([d.signal,p]):d.signal,h=await fetch(f,{method:`GET`,headers:{Accept:`application/json`,"X-Subscription-Token":t},signal:m});if(!h.ok){let e=(await h.text().catch(()=>``)).replaceAll(t,`[REDACTED]`);throw Error(`Brave Search request failed with status ${h.status}${e?`: ${e}`:``}`)}let g=await h.json(),_=[],v=[...g.grounding?.generic??[],...g.grounding?.poi?[g.grounding.poi]:[],...g.grounding?.map??[]];for(let e of v){if(_.length>=r)break;!e.title||!e.url||!e.snippets?.length||_.push({title:e.title,url:e.url,snippets:e.snippets})}return{results:_}}}}function W(e,t,n,r){if(!Number.isInteger(e))throw Error(`${t} must be an integer`);if(e<n)throw Error(`${t} must be greater than or equal to ${n}`);if(r!==void 0&&e>r)throw Error(`${t} must be less than or equal to ${r}`);return e}function De(e){if(e.maxIterations!==void 0&&e.maxIterations<1)throw new w(`maxIterations must be at least 1 (got ${e.maxIterations})`,{code:`INVALID_OPTIONS`});if(e.maxContextTokens!==void 0&&e.maxContextTokens<1)throw new w(`maxContextTokens must be at least 1 (got ${e.maxContextTokens})`,{code:`INVALID_OPTIONS`})}function Oe(e,t,n){if(n.maxIterations!==void 0&&e>=n.maxIterations)return`max-iterations`;let r=t?t.in+t.out:0;if(n.maxContextTokens!==void 0&&r>=n.maxContextTokens)return`token-limit`}function ke(e,t,n){t.usage&&B(e,n?ye(t.usage,n):t.usage)}function Ae(e,t){if(!e)return;re(e,`text`,j(t));let n=M(t);n&&e.debug(`thinking`,{thinking:n});for(let n of P(t))e.info(n.name,{type:`provider-tool`,input:n.input}),n.output!==void 0&&e.trace(n.name,{type:`provider-tool`,output:n.output});je(e,ee(t))}function je(e,t){if(t.length===0)return;let n=Me(t);e.info(`citations`,{count:t.length,sources:n.slice(0,8),...n.length>8?{more:n.length-8}:{}}),n.length>8&&e.debug(`citations`,{sources:n}),e.setAttribute(`citationCount`,t.length)}function Me(e){let t=new Set,n=[];for(let{source:r}of e){let e=Ne(r),i=`title`in r?r.title:void 0,a=e??i??r.type;t.has(a)||(t.add(a),n.push({type:r.type,...i?{title:i}:{},...e?{url:e}:{}}))}return n}function Ne(e){switch(e.type){case`web`:case`search-result`:return e.url;case`retrieved-context`:return e.uri;case`document`:return e.fileId;default:return}}function Pe(e){return JSON.stringify({error:e})}function Fe(e){let t=e.tools!==void 0||e.providerTools!==void 0;if(e.registry&&t)throw new w("Cannot specify both `registry` and `tools` / `providerTools`. Use one or the other.",{code:`TOOL_OPTIONS_CONFLICT`});return e.registry??new Ce({tools:e.tools,providerTools:e.providerTools})}function Ie(e,t){let n=e.getProvider(`web_search`),r=t.provider.resolveProviderToolName?.bind(t.provider);if(!r)return{registry:e,executable:()=>e.executable(),provider:()=>e.provider(),get:t=>e.get(t)};let i=()=>e.provider().map(e=>{let n=r(e.name,t.model);return n===void 0?e:{...e,nativeName:n}});if(!n||r(`web_search`,t.model)!==void 0)return{registry:e,executable:()=>e.executable(),provider:i,get:t=>e.get(t)};let a=t.configuration.webSearchFallback;if(!a)throw new w(`Provider ${t.provider.name} does not support native web_search and no Axle webSearchFallback is configured`,{code:`WEB_SEARCH_FALLBACK_NOT_CONFIGURED`,details:{provider:t.provider.name,model:t.model}});n.config&&t.span?.warn(`web_search provider config ignored by fallback backend`,{provider:t.provider.name,model:t.model,backend:a.name}),t.span?.info(`Using web search fallback backend`,{provider:t.provider.name,model:t.model,backend:a.name});let o=Te(a);return{registry:e,executable:()=>[...e.executable().filter(e=>e.name!==`web_search`),o],provider:()=>i().filter(e=>e.name!==`web_search`),get:t=>t===`web_search`?o:e.get(t)}}async function Le(e,t=async()=>null,n,r,i,a){let o=[],s=z(),c=!1;for(let l of e){let e;try{e=await ze(l,t,n,r,i,a)}catch(e){throw c?Re(e,s):e}o.push(e.result),e.usage&&(B(s,e.usage),c=!0)}return{results:o,...c?{usage:s}:{}}}function Re(e,t){return e instanceof O?new O(e.message,{toolName:e.toolName,messages:e.messages,partial:e.partial,usage:V(t,e.usage),cause:e.cause}):e instanceof E?new E(e.message,{reason:e.reason,messages:e.messages,partial:e.partial,usage:V(t,e.usage)}):e}async function ze(e,t,n,r,i,a){if(n.aborted)throw new E(`Operation aborted`,{reason:n.reason});let o=r instanceof Ce?r:r.registry,s=r.get(e.name),c=i?.startSpan(e.name,{type:`tool`}),l,u={signal:n,span:c,registry:o,emit:t=>a?.onDelta?.(e,t),reportUsage:e=>{l??=z(),B(l,e)}};a?.onStart?.(e);let d,f=`exception`;try{if(d=await t(e.name,e.parameters,u),d==null&&s&&(f=`execution`,d={type:`success`,content:await s.execute(e.parameters,u)}),n.aborted)throw new E(`Operation aborted`,{reason:n.reason})}catch(t){let r=Be(t,n);if(r){c?.setResult({kind:`tool`,name:e.name,input:e.parameters,output:{type:r instanceof O?`fatal`:`aborted`,message:r.message}}),c?.end(r instanceof O?`error`:`ok`);let t=l?Re(r,l):r;throw a?.onError?.(e,t),t}d={type:`error`,error:{type:f,message:t instanceof Error?t.message:String(t)}}}d??={type:`error`,error:{type:`not-found`,message:`Tool not found: ${e.name}`}};let p={result:d,...l?{usage:l}:{}};a?.onComplete?.(e,p);let m=d.type===`success`?d.content:Pe(d.error);return c?.setResult({kind:`tool`,name:e.name,input:e.parameters,output:d.type===`success`?d.content:d.error}),c?.end(d.type===`success`?`ok`:`error`),{result:{id:e.id,name:e.name,content:m,...d.type===`error`?{isError:!0}:{}},...l?{usage:l}:{}}}function Be(e,t){if(e instanceof O||e instanceof E)return e;if(t.aborted)return new E(`Operation aborted`,{reason:t.reason})}let Ve=function(e){return e.Stop=`stop`,e.Length=`length`,e.FunctionCall=`function_call`,e.Error=`error`,e.Custom=`custom`,e.Cancelled=`cancelled`,e}({});async function He(e,t){let n=[],r=``,i=``,a=null,o=z(),s=null,c=``,l=new Map,u=new Map,d=new Set,f=(e,n)=>{t.emit({type:`tool:request`,id:e,name:n,kind:t.tools.get(n)?.kind??`tool`})},p=-1,m=()=>{if(s!==null){let e=s===`text`?`text:end`:`thinking:end`;t.emit({type:e,final:c}),s=null,c=``}};for await(let h of e){switch(h.type){case`start`:r=h.id,i=h.data.model,t.emit({type:`turn:start`,id:r,model:i});break;case`text-start`:m(),n.push({type:`text`,text:``}),p=n.length-1,u.set(h.data.index,p),s=`text`,c=``,t.emit({type:`text:start`});break;case`text-delta`:{let e=n[p];e.text+=h.data.text,c=e.text,t.emit({type:`text:delta`,delta:h.data.text,accumulated:c});break}case`text-citation`:{let e=n[u.get(h.data.index)??p];if(!e||e.type!==`text`)break;e.citations=[...e.citations??[],h.data.citation],t.emit({type:`text:citation`,citation:h.data.citation,citations:e.citations});break}case`citation`:m(),n.push({type:`citation`,citations:h.data.citations,...h.data.providerMetadata?{providerMetadata:h.data.providerMetadata}:{}}),p=n.length-1,u.set(h.data.index,p),t.emit({type:`citation`,citations:h.data.citations,providerMetadata:h.data.providerMetadata});break;case`text-complete`:m();break;case`thinking-start`:m(),n.push({type:`thinking`,text:``,...h.data.id?{id:h.data.id}:{},...h.data.redacted===void 0?{}:{redacted:h.data.redacted},...h.data.continuity?{continuity:h.data.continuity}:{},...h.data.providerMetadata?{providerMetadata:h.data.providerMetadata}:{}}),p=n.length-1,u.set(h.data.index,p),s=`thinking`,c=``,t.emit({type:`thinking:start`,redacted:h.data.redacted,continuity:h.data.continuity,providerMetadata:h.data.providerMetadata});break;case`thinking-delta`:{let e=n[p];e.text=(e.text??``)+h.data.text,c=e.text,t.emit({type:`thinking:delta`,delta:h.data.text,accumulated:c});break}case`thinking-summary-delta`:{let e=n[p];e.summary=(e.summary??``)+h.data.text,c=e.summary,t.emit({type:`thinking:summary-delta`,delta:h.data.text,accumulated:c});break}case`thinking-metadata`:{let e=n[u.get(h.data.index)??p];if(!e||e.type!==`thinking`)break;h.data.redacted!==void 0&&(e.redacted=h.data.redacted),h.data.continuity&&(e.continuity=h.data.continuity),h.data.providerMetadata&&(e.providerMetadata=h.data.providerMetadata),t.emit({type:`thinking:update`,redacted:h.data.redacted,continuity:h.data.continuity,providerMetadata:h.data.providerMetadata});break}case`thinking-complete`:m();break;case`tool-call-start`:m(),n.push({type:`tool-call`,id:h.data.id,name:h.data.name,parameters:{}}),p=n.length-1,u.set(h.data.index,p),h.data.name?f(h.data.id,h.data.name):d.add(h.data.id);break;case`tool-call-args-delta`:d.has(h.data.id)&&h.data.name&&(d.delete(h.data.id),f(h.data.id,h.data.name)),t.emit({type:`tool:args-delta`,id:h.data.id,name:h.data.name,delta:h.data.delta,accumulated:h.data.accumulated});break;case`tool-call-complete`:{let e=n[u.get(h.data.index)??p];if(!e||e.type!==`tool-call`)break;h.data.id&&(e.id=h.data.id),h.data.name&&(e.name=h.data.name),e.parameters=h.data.arguments,h.data.providerMetadata&&(e.providerMetadata=h.data.providerMetadata),h.data.error&&l.set(e.id,h.data.error),d.has(e.id)&&e.name&&(d.delete(e.id),f(e.id,e.name));break}case`provider-tool-start`:m(),n.push({type:`provider-tool`,id:h.data.id,name:h.data.name}),p=n.length-1,u.set(h.data.index,p),t.emit({type:`provider-tool:start`,id:h.data.id,name:h.data.name});break;case`provider-tool-complete`:{let e=n[u.get(h.data.index)??p];e&&e.type===`provider-tool`&&h.data.output!=null&&(e.output=h.data.output),t.emit({type:`provider-tool:complete`,id:h.data.id,name:h.data.name,output:h.data.output});break}case`complete`:m(),a=h.data.finishReason,o=h.data.usage;break;case`error`:return m(),{kind:`provider-error`,errorType:h.data.type,message:h.data.message,usage:h.data.usage,model:i};default:console.warn(`[WARN] Unhandled chunk type. Should never happen`)}if(t.signal.aborted)break}return t.signal.aborted?(m(),{kind:`aborted`,partial:n.length?{role:`assistant`,id:r,model:i,content:n,finishReason:`cancelled`}:void 0}):a===null?(m(),{kind:`incomplete`}):{kind:`complete`,id:r,model:i,parts:n,finishReason:a,usage:o,toolCallArgumentErrors:l}}function Ue(e){let t=e.raw?`${e.message}\nRaw buffer: ${e.raw}`:e.message;return{type:`error`,error:{type:e.type,message:t}}}async function We(e,t,n,r){let{toolCallArgumentErrors:i}=t,{emit:a,signal:o,resolvedTools:s,span:c,onToolCall:l,newMessages:u,usage:d,addMessage:f}=r,p=crypto.randomUUID();a({type:`tool-results:start`,id:p});let m=[],h=new Map;for(let t of e){let e=i.get(t.id);if(!e){m.push(t);continue}let n=Ue(e);h.set(t.id,{id:t.id,name:t.name,content:Pe(n.error),isError:!0}),a({type:`tool:exec-complete`,id:t.id,name:t.name,result:n})}let g={onStart(e){a({type:`tool:exec-start`,id:e.id,name:e.name,parameters:e.parameters})},onDelta(e,t){a({type:`tool:exec-delta`,id:e.id,name:e.name,chunk:t})},onComplete(e,t){a({type:`tool:exec-complete`,id:e.id,name:e.name,result:t.result,usage:t.usage})},onError(e,t){a({type:`tool:exec-error`,id:e.id,name:e.name,error:{type:t instanceof O?`fatal`:`aborted`,message:t.message},usage:t.usage})}},_=[],v;try{m.length>0&&({results:_,usage:v}=await Le(m,l,o,s,c,g))}catch(e){throw e instanceof O?(c?.end(`error`),new O(e.message,{toolName:e.toolName,messages:e.messages??u,partial:e.partial??n,usage:V(d,e.usage),cause:e.cause})):e instanceof E?(c?.end(`ok`),new E(`Stream aborted`,{reason:e.reason,messages:e.messages??u,partial:e.partial,usage:V(d,e.usage)})):e}B(d,v);let y=new Map(_.map(e=>[e.id,e])),b=e.flatMap(e=>{let t=h.get(e.id);if(t)return[t];let n=y.get(e.id);return n?[n]:[]});if(b.length>0){let e={role:`tool`,id:p,content:b};f(e),a({type:`tool-results:complete`,message:e})}}function Ge(e,t){for(let n of e)n(t)}function Ke(e){return{name:e.name,description:e.description,schema:e.schema}}function qe(e){let t=[],n,r;if(`instruct`in e){let{instruct:t,messages:i,...a}=e,o=_e(t);r=o.parse,n={...a,messages:[...i??[],o.message]}}else n=e;De(n);let i=new AbortController,a=n.signal?AbortSignal.any([i.signal,n.signal]):i.signal,{promise:o,resolve:s,reject:c}=Promise.withResolvers(),l=C();return Promise.resolve().then(()=>Je(n,a,t,l).then(e=>{if(r&&e.ok){try{s({...e,response:r(e.final)})}catch(t){s({ok:!1,messages:e.messages,final:e.final,usage:e.usage,...e.stopped?{stopped:e.stopped}:{},error:{kind:`parse`,error:t,message:t instanceof Error?t.message:String(t)}})}return}s(e)},c)),{on(e){t.push(e)},cancel(e){i.abort(e)},get final(){return o}}}async function Je(e,t,n,r){let{provider:i,model:a,messages:o,system:s,onToolCall:c,maxIterations:l,maxContextTokens:u,span:d,fileResolver:f,reasoning:p,maxOutputTokens:m,temperature:h,topP:g,stop:_,toolChoice:v,parallelToolCalls:y,providerOptions:b}=e,x=Ie(Fe(e),{provider:i,model:a,span:d,configuration:r}),S=[...o],C=[],w=z(),T=0,D=e=>{S.push(e),C.push(e)},O={emit:e=>Ge(n,e),signal:t,resolvedTools:x,span:d,onToolCall:c,newMessages:C,usage:w,addMessage:D},k=e=>{e.ok||Ge(n,{type:`error`,error:e.error});let t=e.ok?e.final.content:null,r=e.ok?e.final.finishReason:void 0;return d?.setResult({kind:`llm`,model:a,request:{messages:o},response:{content:t??null},usage:xe(e.usage),finishReason:r}),d?.end(e.ok?`ok`:`error`),e};for(;;){if(t.aborted)throw d?.end(`ok`),new E(`Stream aborted`,{reason:t.reason,messages:C,usage:w});T+=1;let e=d?.startSpan(`turn-${T}`,{type:`llm`}),r=x.executable(),o=r.length>0?r.map(Ke):void 0,c=x.provider(),A=await He(i.createStreamingRequest(a,{messages:S,system:s,tools:o,providerTools:c.length>0?c:void 0,runtime:{span:e,fileResolver:f},signal:t,reasoning:p,maxOutputTokens:m,temperature:h,topP:g,stop:_,toolChoice:v,parallelToolCalls:y,providerOptions:b}),{emit:e=>Ge(n,e),tools:x,signal:t});if(A.kind===`aborted`)throw e?.end(`ok`),A.partial&&D(A.partial),d?.end(`ok`),new E(`Stream aborted`,{reason:t.reason,messages:C,partial:A.partial,usage:w});if(A.kind===`provider-error`)return A.usage&&B(w,ye(A.usage,{provider:i.name,model:A.model||a})),e?.end(`error`),k({ok:!1,messages:C,error:{kind:`model`,message:A.message,error:{type:`error`,error:{type:A.errorType,message:A.message}}},usage:w});if(A.kind===`incomplete`)return e?.end(`error`),k({ok:!1,messages:C,error:{kind:`model`,message:`Stream ended without a completion signal`,error:{type:`error`,error:{type:`IncompleteStream`,message:`Stream ended without a completion signal`}}},usage:w});let{id:j,model:M,parts:N,finishReason:P,usage:ee}=A,te=ye(ee,{provider:i.name,model:M||a});B(w,te);let ne={kind:`llm`,model:M,request:{messages:S},response:{content:N},usage:xe(ee),finishReason:P};Ae(e,N),e?.setResult(ne),e?.end();let F={role:`assistant`,id:j,model:M,content:N,finishReason:P};if(D(F),Ge(n,{type:`turn:complete`,message:F,usage:te}),P!==`function_call`)return k({ok:!0,response:F,messages:C,final:F,usage:w});let re=N.filter(e=>e.type===`tool-call`);if(re.length===0)return k({ok:!0,response:F,messages:C,final:F,usage:w});if(t.aborted)throw d?.end(`ok`),new E(`Stream aborted`,{reason:t.reason,messages:C,usage:w});await We(re,A,F,O);let ie=Oe(T,ee,{maxIterations:l,maxContextTokens:u});if(ie)return k({ok:!0,response:F,messages:C,final:F,usage:w,stopped:ie})}}function G(e=new Date){return{start:e.toISOString()}}function K(e,t=new Date){let n=t.toISOString();return e?{...e,end:n}:{start:n,end:n}}var Ye=class{currentTurnId=null;currentTurnTiming;currentTextPart=null;currentThinkingPart=null;toolIdMap=new Map;accumulatedUsage=z();createUserTurn(e){let t=e.id??crypto.randomUUID(),n=[],r=new Date,i=K(G(r),r),a=()=>({...i});if(typeof e.content==`string`)n.push({id:crypto.randomUUID(),type:`text`,text:e.content,timing:a()});else for(let t of e.content)t.type===`text`?n.push({id:crypto.randomUUID(),type:`text`,text:t.text,...t.citations?{citations:t.citations}:{},...t.providerMetadata?{providerMetadata:t.providerMetadata}:{},timing:a()}):t.type===`file`&&n.push({id:crypto.randomUUID(),type:`file`,file:t.file,timing:a()});return[{type:`turn:user`,turn:{id:t,owner:`user`,parts:n,status:`complete`,timing:i,...e.metadata?{metadata:e.metadata}:{}}}]}startAgentTurn(){let e=crypto.randomUUID();return this.currentTurnId=e,this.currentTurnTiming=G(),this.currentTextPart=null,this.currentThinkingPart=null,this.toolIdMap.clear(),this.accumulatedUsage=z(),{type:`turn:start`,turnId:e,timing:this.currentTurnTiming}}handleStreamEvent(e){let t=this.currentTurnId;if(!t)return[];let n=[];switch(e.type){case`turn:start`:break;case`text:start`:{this.closeOpenParts(n);let e=crypto.randomUUID(),r={id:e,type:`text`,text:``,timing:G()};this.currentTextPart={id:e,timing:r.timing},n.push({type:`part:start`,turnId:t,part:r});break}case`text:delta`:this.currentTextPart&&n.push({type:`text:delta`,turnId:t,partId:this.currentTextPart.id,delta:e.delta});break;case`text:end`:if(this.currentTextPart){let e=K(this.currentTextPart.timing);n.push({type:`part:end`,turnId:t,partId:this.currentTextPart.id,timing:e}),this.currentTextPart=null}break;case`citation`:{this.closeOpenParts(n);let r=K(G()),i={id:crypto.randomUUID(),type:`citation`,citations:e.citations,...e.providerMetadata?{providerMetadata:e.providerMetadata}:{},timing:r};n.push({type:`part:start`,turnId:t,part:i}),n.push({type:`part:end`,turnId:t,partId:i.id,timing:r});break}case`thinking:start`:{this.closeOpenParts(n);let r=crypto.randomUUID(),i={id:r,type:`thinking`,text:``,timing:G(),...e.redacted===void 0?{}:{redacted:e.redacted},...e.continuity?{continuity:e.continuity}:{},...e.providerMetadata?{providerMetadata:e.providerMetadata}:{}};this.currentThinkingPart={id:r,timing:i.timing},n.push({type:`part:start`,turnId:t,part:i});break}case`thinking:delta`:this.currentThinkingPart&&n.push({type:`thinking:delta`,turnId:t,partId:this.currentThinkingPart.id,delta:e.delta});break;case`text:citation`:this.currentTextPart&&n.push({type:`text:citation`,turnId:t,partId:this.currentTextPart.id,citation:e.citation});break;case`thinking:summary-delta`:this.currentThinkingPart&&n.push({type:`thinking:summary-delta`,turnId:t,partId:this.currentThinkingPart.id,delta:e.delta});break;case`thinking:update`:this.currentThinkingPart&&n.push({type:`thinking:update`,turnId:t,partId:this.currentThinkingPart.id,redacted:e.redacted,continuity:e.continuity,providerMetadata:e.providerMetadata});break;case`thinking:end`:if(this.currentThinkingPart){let e=K(this.currentThinkingPart.timing);n.push({type:`part:end`,turnId:t,partId:this.currentThinkingPart.id,timing:e}),this.currentThinkingPart=null}break;case`tool:request`:{this.closeOpenParts(n);let r=crypto.randomUUID(),i=G(),a=e.kind===`agent`?{id:r,type:`action`,kind:`agent`,status:`pending`,timing:i,detail:{name:e.name,children:[]}}:{id:r,type:`action`,kind:`tool`,status:`pending`,timing:i,detail:{name:e.name,parameters:{}}};this.toolIdMap.set(e.id,{partId:r,turnId:t,timing:i,name:e.name,kind:e.kind}),n.push({type:`part:start`,turnId:t,part:a});break}case`tool:args-delta`:{let r=this.toolIdMap.get(e.id);r&&n.push({type:`action:args-delta`,turnId:t,partId:r.partId,delta:e.delta,accumulated:e.accumulated});break}case`tool:exec-start`:{let r=this.toolIdMap.get(e.id);r&&n.push({type:`action:running`,turnId:t,partId:r.partId,parameters:e.parameters});break}case`tool:exec-delta`:{let r=this.toolIdMap.get(e.id);r&&(typeof e.chunk==`string`?n.push({type:`action:progress`,turnId:t,partId:r.partId,chunk:e.chunk}):e.chunk.type===`turn-event`&&n.push({type:`action:child-event`,turnId:t,partId:r.partId,event:e.chunk.event}));break}case`tool:exec-complete`:{let r=this.toolIdMap.get(e.id);if(r){B(this.accumulatedUsage,e.usage);let i=K(r.timing);r.timing=i,e.result.type===`success`?n.push({type:`action:complete`,turnId:t,partId:r.partId,result:{type:`success`,content:e.result.content},timing:i}):n.push({type:`action:error`,turnId:t,partId:r.partId,error:e.result.error,timing:i})}break}case`tool:exec-error`:{let r=this.toolIdMap.get(e.id);if(r){B(this.accumulatedUsage,e.usage);let i=K(r.timing);r.timing=i,n.push({type:`action:error`,turnId:t,partId:r.partId,error:e.error,timing:i})}break}case`provider-tool:start`:{this.closeOpenParts(n);let r=crypto.randomUUID(),i=G(),a={id:r,type:`action`,kind:`provider-tool`,status:`running`,timing:i,detail:{name:e.name}};this.toolIdMap.set(e.id,{partId:r,turnId:t,timing:i}),n.push({type:`part:start`,turnId:t,part:a}),n.push({type:`action:running`,turnId:t,partId:r});break}case`provider-tool:complete`:{let r=this.toolIdMap.get(e.id);if(r){let i=K(r.timing);r.timing=i,n.push({type:`action:complete`,turnId:t,partId:r.partId,result:{type:`success`,content:e.output},timing:i})}break}case`turn:complete`:this.closeOpenParts(n),B(this.accumulatedUsage,e.usage);break;case`tool-results:start`:case`tool-results:complete`:break;case`error`:{let r=e.error;n.push({type:`error`,turnId:t,error:{type:r.kind,message:r.message}});break}}return n}finalizeTurn(e=`complete`){let t=this.currentTurnId;if(!t)return[];let n=[];this.closeOpenParts(n);let r=K(this.currentTurnTiming);return n.push({type:`turn:end`,turnId:t,status:e,usage:{...this.accumulatedUsage},timing:r}),this.currentTurnId=null,this.currentTurnTiming=void 0,n}closeOpenParts(e){let t=this.currentTurnId;t&&(this.currentTextPart&&=(e.push({type:`part:end`,turnId:t,partId:this.currentTextPart.id,timing:K(this.currentTextPart.timing)}),null),this.currentThinkingPart&&=(e.push({type:`part:end`,turnId:t,partId:this.currentThinkingPart.id,timing:K(this.currentThinkingPart.timing)}),null))}},Xe=class{_turns;_messages;_archive;_compactions;_sessionAnnotations;constructor(e){this._turns=[...e?.turns??[]],this._messages=[...e?.messages??[]],this._archive=[...e?.archive??e?.messages??[]],this._compactions=[...e?.compactions??[]],this._sessionAnnotations=[...e?.sessionAnnotations??[]]}get turns(){return[...this._turns]}get messages(){return[...this._messages]}get archive(){return[...this._archive]}get compactions(){return[...this._compactions]}get sessionAnnotations(){return[...this._sessionAnnotations]}append(e){let t=Array.isArray(e)?e:[e];this._messages.push(...t),this._archive.push(...t)}replaceTurns(e,t){this._turns=e,this._sessionAnnotations=t}compact(e,t){this._messages=[...e],this._compactions.push(t)}};const Ze={trace:0,debug:1,info:2,warn:3,error:4},Qe=()=>performance.timeOrigin+performance.now();var $e=class{writers=[];minLevel=`info`;addWriter(e){this.writers.includes(e)||this.writers.push(e)}removeWriter(e){let t=this.writers.indexOf(e);t!==-1&&this.writers.splice(t,1)}shouldLog(e){return Ze[e]>=Ze[this.minLevel]}spanStart(e){for(let t of this.writers)t.onSpanStart(e)}spanEnd(e){for(let t of this.writers)t.onSpanEnd(e)}spanUpdate(e){for(let t of this.writers)t.onSpanUpdate?.(e)}event(e,t){for(let n of this.writers)n.onEvent?.(e,t)}async flush(){for(let e of this.writers)e.flush&&await e.flush()}},et=class{rec=new $e;constructor(e){e?.minLevel&&(this.rec.minLevel=e.minLevel);for(let t of e?.writers??[])this.rec.addWriter(t)}get minLevel(){return this.rec.minLevel}set minLevel(e){this.rec.minLevel=e}addWriter(e){this.rec.addWriter(e)}removeWriter(e){this.rec.removeWriter(e)}startSpan(e,t){let n={traceId:crypto.randomUUID(),spanId:crypto.randomUUID(),name:e,type:t?.type,startTime:Qe(),status:`ok`,attributes:{...t?.attributes??{}},events:[]};return this.rec.spanStart(n),new tt(n,this.rec)}flush(){return this.rec.flush()}},tt=class e{data;rec;ended=!1;constructor(e,t){this.data=e,this.rec=t}startSpan(t,n){let r={traceId:this.data.traceId,spanId:crypto.randomUUID(),parentSpanId:this.data.spanId,name:t,type:n?.type,startTime:Qe(),status:`ok`,attributes:{...n?.attributes??{}},events:[]};return this.rec.spanStart(r),new e(r,this.rec)}end(e=`ok`){this.ended||(this.ended=!0,this.data.endTime=Qe(),this.data.status=e,this.rec.spanEnd(this.data))}addEvent(e,t,n){if(this.ended||!this.rec.shouldLog(t))return;let r={name:e,timestamp:Qe(),level:t,attributes:n};this.data.events.push(r),this.rec.event(this.data,r)}trace(e,t){this.addEvent(e,`trace`,t)}debug(e,t){this.addEvent(e,`debug`,t)}info(e,t){this.addEvent(e,`info`,t)}warn(e,t){this.addEvent(e,`warn`,t)}error(e,t){this.addEvent(e,`error`,t)}setAttribute(e,t){this.ended||(this.data.attributes[e]=t,this.rec.spanUpdate(this.data))}setAttributes(e){this.ended||(Object.assign(this.data.attributes,e),this.rec.spanUpdate(this.data))}setResult(e){this.ended||(this.data.result=e,this.rec.spanUpdate(this.data))}};function nt(e){if(!e)return{};let{trace:t,log:n,level:r}=e;if(t)return n&&console.warn(`[axle] observability.log is ignored when observability.trace is set; add a LogWriter to your tracer's writers instead`),{parent:t};if(n){let e=new et({minLevel:r,writers:[new F(n)]});return{parent:e,owned:e}}return{}}function rt(e){return it(e)?`cancelled`:`error`}function it(e){return e instanceof E||e instanceof D||e instanceof Error&&e.name===`AbortError`}function at(e,t){return{...e,...t,providerOptions:e?.providerOptions||t?.providerOptions?{...e?.providerOptions,...t?.providerOptions}:void 0}}var ot=class{provider;model;history;name;fileResolver;requestOptions;registry;sessionId;system;mcps=[];resolvedMcps=new WeakSet;memory;spanParent;ownedTracer;eventCallbacks=[];compactionCallback;workQueue=Promise.resolve();accumulator;constructor(t,n){if(n&&n.version!==1)throw new w(`Unsupported agent session version: ${n.version}`);this.provider=t.provider,this.model=t.model,this.sessionId=n?.sessionId??t.sessionId??crypto.randomUUID(),this.history=new Xe(n?{turns:n.turns,messages:n.messages,archive:n.archive,compactions:n.compactions,sessionAnnotations:n.sessionAnnotations}:void 0),this.accumulator=new e({turns:this.history.turns,sessionAnnotations:this.history.sessionAnnotations});let r=nt(t.observability);if(this.spanParent=r.parent,this.ownedTracer=r.owned,this.system=t.system,this.name=t.name,this.fileResolver=t.fileResolver,this.requestOptions={reasoning:t.reasoning,maxOutputTokens:t.maxOutputTokens,temperature:t.temperature,topP:t.topP,stop:t.stop,toolChoice:t.toolChoice,parallelToolCalls:t.parallelToolCalls,providerOptions:t.providerOptions},this.registry=new Ce({tools:t.tools,providerTools:t.providerTools}),t.mcps&&(this.mcps=[...t.mcps]),t.memory){this.memory=t.memory;let e=t.memory.tools?.();e&&this.registry.add(e)}}addMcp(e){this.mcps.push(e)}addMcps(e){this.mcps.push(...e)}hasTools(){return this.registry.size>0||this.mcps.length>0}on(e){return this.eventCallbacks.push(e),()=>{let t=this.eventCallbacks.indexOf(e);t>=0&&this.eventCallbacks.splice(t,1)}}context(){return this.estimateContext(this.history.messages)}estimateContext(e){return ie({system:this.system,messages:e,tools:this.toToolDefinitions(this.registry.local()),providerTools:this.registry.provider(),mcpTools:this.toToolDefinitions(this.registry.mcp())})}onCompaction(e){this.compactionCallback=e}compact(e){let t=this.compactionCallback;return t?this.queue(async e=>{if(e.aborted)return null;let n=this.spanParent?.startSpan(`agent.compact`,{type:`workflow`,attributes:{sessionId:this.sessionId,...this.name?{agentName:this.name}:{}}}),r=`ok`,i=crypto.randomUUID(),a=new Date().toISOString();this.emitEvent({type:`compaction:start`,id:i,timing:{start:a}});let o=(e,t)=>{n?.setAttribute(`outcome`,e),this.emitEvent({type:`compaction:end`,id:i,outcome:e,record:t,timing:{start:a,end:new Date().toISOString()}})};try{let r=this.context(),s=await t({messages:this.history.messages},{usage:r,signal:e});if(e.aborted||s==null)return o(`skipped`),null;k(s);let c={id:i,at:a};return this.history.compact(s,c),n&&n.setAttributes({beforeTokens:r.total,afterTokens:this.context().total}),o(`complete`,c),c}catch(t){if(e.aborted)return o(`skipped`),null;throw r=rt(t),n?.error(t instanceof Error?t.message:String(t)),o(`error`),t}finally{n?.end(r),await this.ownedTracer?.flush()}},e?.signal).final:Promise.resolve(null)}snapshot(){return this.queue(async()=>{let{messages:e,archive:t,compactions:n,turns:r,sessionAnnotations:i}=this.history;return{version:1,sessionId:this.sessionId,messages:e,archive:t,compactions:n,turns:r,sessionAnnotations:i}}).final}send(e,t){let{fileResolver:n,metadata:r,...i}=t??{},a=_e(e,{metadata:r}),o=at(this.requestOptions,i);return this.queue(async e=>{let t=this.spanParent?.startSpan(`agent.send`,{type:`workflow`,attributes:{sessionId:this.sessionId,...this.name?{agentName:this.name}:{}}});re(t,`message`,j(a.message.content));let r=`ok`;try{let i=await this.run(a,{signal:e,fileResolver:n,requestOptions:o,span:t});return i.ok||(r=`error`),t?.setAttributes({inputTokens:i.usage.in,outputTokens:i.usage.out}),i}catch(e){throw r=rt(e),t?.error(e instanceof Error?e.message:String(e)),e}finally{t?.end(r),await this.ownedTracer?.flush()}},i.signal)}queue(e,t){let n=new AbortController,r=t?AbortSignal.any([t,n.signal]):n.signal,i=this.workQueue.then(()=>e(r));return this.workQueue=i.then(()=>{},()=>{}),{cancel:e=>n.abort(e),final:i}}async resolveMcpTools(e,t){for(let n of this.mcps){if(this.resolvedMcps.has(n))continue;let r=await n.listTools({prefix:n.name,span:t,signal:e});this.registry.addMcp(r),this.resolvedMcps.add(n)}}emitEvent(e){let t=this.accumulator.apply(e);t.handled&&this.history.replaceTurns(t.state.turns,t.state.sessionAnnotations??[]);for(let t of this.eventCallbacks)t(e)}toToolDefinitions(e){return e.map(e=>({name:e.name,description:e.description,schema:e.schema}))}async run(e,t){let{signal:n,fileResolver:r,requestOptions:i}=t,a=t.span,o=new Ye,s,c=()=>s?this.accumulator.state.turns.find(e=>e.id===s):void 0,l=z();if(n.aborted)throw new D(`Agent send aborted`,{reason:n.reason,usage:l});try{await this.resolveMcpTools(n,a)}catch(e){throw n.aborted||e instanceof E||e instanceof Error&&e.name===`AbortError`?new D(`Agent send aborted`,{reason:e instanceof E?e.reason:n.reason,usage:l}):e}let u=this.system,d=[...this.history.messages,e.message];if(this.memory){let e=await this.memory.recall({agentName:this.name,sessionId:this.sessionId,system:this.system,messages:d,span:a});e.systemSuffix&&(u=(u??``)+`
|
|
6
6
|
|
|
7
|
-
`+e.systemSuffix)}if(n.aborted)throw new
|
|
8
|
-
`)}function
|
|
9
|
-
`)||`MCP tool execution error`}var
|
|
7
|
+
`+e.systemSuffix)}if(n.aborted)throw new D(`Agent send aborted`,{reason:n.reason,usage:l});this.history.append(e.message);for(let t of o.createUserTurn(e.message))this.emitEvent(t);let f=o.startAgentTurn();s=f.turnId,this.emitEvent(f);let p=a?.startSpan(`stream`,{type:`internal`})??void 0,{signal:m,...h}=i??{},g=qe({provider:this.provider,model:this.model,messages:d,system:u,registry:this.registry,span:p,fileResolver:r??this.fileResolver,...h,signal:n});g.on(e=>{let t=o.handleStreamEvent(e);for(let e of t)this.emitEvent(e)});let _,v=`ok`;try{_=await g.final,_.ok||(v=`error`)}catch(e){if(v=rt(e),e instanceof O){e.messages&&e.messages.length>0&&this.history.append(e.messages);let t=o.finalizeTurn(`error`);for(let e of t)this.emitEvent(e);throw new O(e.message,{toolName:e.toolName,messages:e.messages,partial:e.partial,usage:e.usage??l,cause:e.cause})}if(e instanceof E){e.messages&&e.messages.length>0&&this.history.append(e.messages);let t=o.finalizeTurn(`cancelled`);for(let e of t)this.emitEvent(e);throw new D(`Agent send aborted`,{reason:e.reason,messages:e.messages,partial:e.partial,turn:c(),usage:e.usage??l})}throw e}finally{p?.end(v)}let y=_.ok?`complete`:`error`;_.ok&&_.final?.finishReason&&a?.setAttribute(`finishReason`,_.final.finishReason),_.messages.length>0&&this.history.append(_.messages);let b=o.finalizeTurn(y);for(let e of b)this.emitEvent(e);let x=_.usage??l,S=c();if(!_.ok)return{ok:!1,error:_.error,turn:S,usage:x};let C;try{C=e.parse(_.final)}catch(e){return{ok:!1,error:{kind:`parse`,error:e,message:e instanceof Error?e.message:String(e)},turn:S,usage:x}}if(!S)throw new w(`Agent turn missing after send`);if(this.memory)try{await this.memory.record({agentName:this.name,sessionId:this.sessionId,system:this.system,messages:this.history.messages,newMessages:_.messages,span:a})}catch(e){a?.warn(`memory record failed`,{error:e instanceof Error?e.message:String(e)})}return{ok:!0,response:C,turn:S,usage:x}}};function st(e){try{let t=r.fromJSONSchema(e);return t instanceof r.ZodObject?t.strict():r.object({}).passthrough()}catch{return r.object({}).passthrough()}}function ct(e,t,n){return e.map(e=>ut(e,t,n))}function lt(e,t){return e.map(e=>{let n=t?`${t}_${e.name}`:e.name,r=st(e.inputSchema);return{name:n,description:e.description??``,schema:r}})}function ut(e,t,n){let r=n?`${n}_${e.name}`:e.name,i=st(e.inputSchema);return{name:r,description:e.description??``,schema:i,async execute(n,i){let a;try{a=await t.callTool({name:e.name,arguments:n},void 0,{signal:i.signal})}catch(t){throw i.signal.aborted||t instanceof Error&&t.name===`AbortError`?t:new O(`MCP tool call failed: ${e.name}`,{toolName:r,cause:t})}if(`isError`in a&&a.isError)throw Error(ft(a.content));return dt(a.content)}}}function dt(e){return e.some(e=>e.type===`image`)?e.filter(e=>e.type===`text`||e.type===`image`).map(e=>{if(e.type===`text`)return{type:`text`,text:e.text};let t=e;return{type:`file`,file:{kind:`image`,mimeType:t.mimeType,name:`mcp-image`,source:{type:`base64`,data:t.data}}}}):e.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
8
|
+
`)}function ft(e){return e.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
9
|
+
`)||`MCP tool execution error`}var pt=class{config;client;transport;cachedMcpTools;_connected=!1;constructor(e){this.config=e}get name(){return this.config.name??this.client?.getServerVersion()?.name}get connected(){return this._connected}async connect(e){if(this._connected)return;let t=e?.span?.startSpan(`mcp:connect`,{type:`internal`});this.client=new a({name:`axle`,version:`1.0.0`}),this.config.transport===`stdio`?this.transport=new o({command:this.config.command,args:this.config.args,env:this.config.env}):this.transport=new s(new URL(this.config.url),{requestInit:this.config.headers?{headers:this.config.headers}:void 0});try{await this.client.connect(this.transport,{signal:e?.signal}),this._connected=!0,t?.end(`ok`)}catch(e){throw t?.end(`error`),e}}async listTools(e){let t=this.assertConnected();return ct(await this.fetchTools(t,e?.span,e?.signal),t,e?.prefix)}async listToolDefinitions(e){let t=this.assertConnected();return lt(await this.fetchTools(t,e?.span,e?.signal),e?.prefix)}async refreshTools(){return this.assertConnected(),this.cachedMcpTools=void 0,this.listTools()}async close(e){this._connected&&(e?.span?.debug(`mcp:close`),await this.client?.close(),this._connected=!1,this.client=void 0,this.transport=void 0,this.cachedMcpTools=void 0)}async fetchTools(e,t,n){if(this.cachedMcpTools)return this.cachedMcpTools;t?.debug(`mcp:listTools`);let r=await e.listTools(void 0,{signal:n});return this.cachedMcpTools=r.tools.map(e=>({name:e.name,description:e.description,inputSchema:e.inputSchema})),this.cachedMcpTools}assertConnected(){if(!this._connected||!this.client)throw Error(`MCP not connected. Call connect() first.`);return this.client}};function mt(e){return e?.map(e=>({type:`provider`,name:e.name,config:e.config}))}async function ht(e,t){if(e.version!==1)throw new w(`Unsupported agent definition version: ${e.version}`);let n=await t(e),r=e.model??n.model;if(!r)throw new w(`AgentDefinition requires a model or model resolver`);if(e.tools?.length&&!n.tools)throw new w(`AgentDefinition includes tools but resolver did not return tools`);return{provider:n.provider,model:r,system:e.system,name:e.name,tools:n.tools,providerTools:n.providerTools??mt(e.providerTools),mcps:n.mcps??e.mcps?.map(e=>new pt(e)),reasoning:e.request?.reasoning,maxOutputTokens:e.request?.maxOutputTokens,temperature:e.request?.temperature,topP:e.request?.topP,stop:e.request?.stop,toolChoice:e.request?.toolChoice,parallelToolCalls:e.request?.parallelToolCalls,providerOptions:e.request?.providerOptions}}var gt=class e extends w{missingVariables;constructor(t){super(_t(t),{code:`INSTRUCT_VARIABLE_ERROR`,details:{missingVariables:t}}),this.missingVariables=t,Object.setPrototypeOf(this,e.prototype)}toJSON(){return{...super.toJSON(),missingVariables:this.missingVariables}}};function _t(e){return`Missing variable${e.length>1?`s`:``}: ${e.join(`, `)}`}var vt=class e extends Error{missingVariables;constructor(t){super(bt(t)),this.name=`MissingVariablesError`,this.missingVariables=t,Object.setPrototypeOf(this,e.prototype)}};function yt(e,t,n={}){let{placeholderStyle:r=`{{}}`,strict:i=!0}=n,a=r===`{{}}`?/\{\{(.*?)\}\}/g:/\{(.*?)\}/g,o=[];if(e=e.replace(a,(e,n)=>{if(n=n.trim(),Object.prototype.hasOwnProperty.call(t,n)){let e=t[n];return e==null?``:String(e)}return o.push(n),e}),o.length>0){let e=[...new Set(o)];if(i)throw new vt(e)}return e}function bt(e){return`Missing variable${e.length>1?`s`:``}: ${e.join(`, `)}`}var xt=class e{prompt;inputs={};files=[];textReferences=[];contextSections=[];vars;metadata;schema;constructor(e){this.prompt=e.prompt,this.schema=e.schema,this.vars=e.vars??`required`,this.metadata=e.metadata}clone(){let t=new e({prompt:this.prompt,schema:this.schema,vars:this.vars,metadata:this.metadata});return t.inputs={...this.inputs},t.files=[...this.files],t.textReferences=this.textReferences.map(e=>({...e})),t.contextSections=this.contextSections.map(e=>({...e})),t}withInputs(e){let t=this.clone();return t.inputs={...t.inputs,...e},t}withInput(e,t){return this.withInputs({[e]:t})}setInputs(e){this.inputs={...e}}addInput(e,t){this.inputs[e]=t}addFile(e,t){if(typeof e==`string`){this.textReferences.push({content:e,name:t?.name});return}if(e.kind===`text`&&e.source.type===`text`){this.textReferences.push({content:e.source.content,name:t?.name??e.name});return}this.files.push(t?.name?{...e,name:t.name}:e)}addContext(e,t){return this.contextSections.push({content:e,...t?.title?{title:t.title}:{}}),this}hasFiles(){return this.files.length>0}render(e={}){let t;try{t=yt(this.prompt,this.inputs,{strict:(e.vars??this.vars)===`required`})}catch(e){throw e instanceof vt?new gt(e.missingVariables):e}if(this.textReferences.length>0)for(let[e,n]of this.textReferences.entries()){let r=n.name?`: ${n.name}`:``,i=St(n.content);t+=`\n\n## Reference ${e+1}${r}\n\n${i}\n${n.content}\n${i}`}for(let[e,n]of this.contextSections.entries()){let r=n.title?`: ${n.title}`:``,i=St(n.content);t+=`\n\n## Context ${e+1}${r}\n\n${i}\n${n.content}\n${i}`}if(!this.schema)return t;let n=`# Output Format Instructions
|
|
10
10
|
|
|
11
11
|
Return only valid JSON matching this schema. Do not wrap it in markdown. Do not include prose before or after the JSON.
|
|
12
|
-
`,[,r]=B(this.schema);for(let[e,t]of _e(this.schema))n+=`\n- ${e}: ${t}`;return n+=`\n\nExample:\n${JSON.stringify(r,null,2)}\n\n`,n+t}};function Et(e){let t=Math.max(0,...Array.from(e.matchAll(/`+/g),e=>e[0].length));return"`".repeat(Math.max(3,t+1))}var Dt=class e extends A{constructor(t,n){super(t,{code:`TASK_ERROR`,id:n?.id,details:{taskType:n?.taskType,taskIndex:n?.taskIndex,...n?.details},cause:n?.cause}),Object.setPrototypeOf(this,e.prototype)}};function Y(e,t,n={}){if(!Number.isInteger(e))throw Error(`${t} must be an integer`);if(n.min!==void 0&&e<n.min)throw Error(`${t} must be an integer greater than or equal to ${n.min}`);return e}function Ot(e){if(e==null)return{type:`error`,error:{type:`Undetermined`,message:`Unknown error occurred`},usage:{in:0,out:0},raw:e};if(e instanceof Error)return{type:`error`,error:{type:e.name||`Error`,message:e.message||`Unexpected error`},usage:{in:0,out:0},raw:e};if(typeof e==`object`){let t=e,n=t?.error?.error?.type||t?.error?.type||t?.type||t?.code||t?.status||`Undetermined`,r=t?.error?.error?.message||t?.error?.message||t?.message||t?.error||`Unexpected error`;return{type:`error`,error:{type:String(n),message:String(r)},usage:{in:0,out:0},raw:e}}return{type:`error`,error:{type:`Undetermined`,message:String(e)},usage:{in:0,out:0},raw:e}}function X(e,t=`Operation aborted`){if(e?.aborted)throw new M(t,{reason:e.reason})}function kt(e,t,n=`Operation aborted`){return t?t.aborted?Promise.reject(new M(n,{reason:t.reason})):new Promise((r,i)=>{let a=()=>{t.removeEventListener(`abort`,a),i(new M(n,{reason:t.reason}))};t.addEventListener(`abort`,a,{once:!0}),e.then(e=>{t.removeEventListener(`abort`,a),r(e)},e=>{t.removeEventListener(`abort`,a),i(e)})}):e}function At(e,t,n=`[redacted]`){return jt(e,null,t,n)}function jt(e,t,n,r){if(typeof e!=`object`||!e)return typeof e==`string`&&t&&n.has(t)?r:e;if(Array.isArray(e))return e.map(e=>jt(e,t,n,r));let i={};for(let[t,a]of Object.entries(e))i[t]=jt(a,t,n,r);return i}const Mt=new Set([`data`,`file_data`,`file_url`,`image_url`,`url`,`uri`,`fileUri`]);function Z(e){return At(e,Mt,`[redacted-file-value]`)}function Nt(e){return Array.isArray(e)?e:[e]}const Pt=20*1024*1024;async function Q(e,t){if(t.signal?.aborted)throw new DOMException(`File resolution aborted`,`AbortError`);let{source:n}=e;if(n.type===`base64`)return Ft({type:`base64`,data:n.data},e,t);if(n.type===`text`)return Ft({type:`text`,content:n.content},e,t);if(n.type===`url`)return Ft({type:`url`,url:n.url},e,t);if(!t.resolver)throw Error(`No fileResolver configured for deferred file: ${e.name}`);return Ft(await t.resolver({file:e,ref:n.ref,provider:t.provider,model:t.model,accepted:t.accepted,signal:t.signal}),e,t)}function Ft(e,t,n){if(n.accepted.includes(e.type))return{...e,mimeType:e.mimeType??t.mimeType,name:e.name??t.name};throw Error(`File source '${e.type}' is not supported for ${n.provider} ${t.kind} file '${t.name}'. Accepted: ${n.accepted.join(`, `)}`)}const It=new Set([`application/json`,`application/xml`,`application/yaml`,`application/x-yaml`,`application/toml`]);function Lt(e){return e.startsWith(`text/`)||It.has(e)}function Rt(e){let t=h.getType(e);if(!t){let t=y(e).toLowerCase();throw Error(`Unsupported file type: ${t||`(no extension)`}`)}if(t.startsWith(`image/`))return{kind:`image`,mimeType:t};if(t===`application/pdf`)return{kind:`document`,mimeType:t};if(Lt(t))return{kind:`text`,mimeType:t};{let n=y(e).toLowerCase();throw Error(`Unsupported file type: ${n} (${t})`)}}async function zt(e,t){let n=b(e);try{await g(n)}catch{throw Error(`File not found: ${e}`)}let r=await v(n);if(r.size>Pt)throw Error(`File too large: ${r.size} bytes. Maximum allowed: ${Pt} bytes`);let i=n.split(`/`).pop()||``,a=Rt(n);if((t||(a.kind===`text`?`utf-8`:`base64`))===`utf-8`){if(a.kind!==`text`)throw Error(`Cannot read ${a.kind} file as text: ${e}`);let t=await _(n,`utf-8`);return{kind:`text`,mimeType:a.mimeType,size:r.size,name:i,source:{type:`text`,content:t}}}else{if(a.kind===`text`)throw Error(`Cannot read text file as binary: ${e}`);let t=(await _(n)).toString(`base64`);return{kind:a.kind,mimeType:a.mimeType,size:r.size,name:i,source:{type:`base64`,data:t}}}}async function Bt(e,t={model:``}){return Promise.all(e.map(e=>Vt(e,t)))}async function Vt(e,t){if(e.role===`assistant`){let t=[];for(let n of e.content)if(n.type===`text`)t.push({type:`text`,text:n.text});else if(n.type===`thinking`){let e=n.continuity?.provider===`anthropic`?n.continuity:void 0;n.redacted?t.push({type:`redacted_thinking`,data:e?.redactedData??n.text??``}):e?.signature&&t.push({type:`thinking`,thinking:n.text??``,signature:e.signature})}else n.type===`tool-call`?t.push({type:`tool_use`,id:n.id,name:n.name,input:n.parameters}):n.type===`provider-tool`&&(t.push({type:`server_tool_use`,id:n.id,name:n.name,input:n.input??{}}),n.output!=null&&t.push({type:`web_search_tool_result`,tool_use_id:n.id,content:n.output}));return{role:`assistant`,content:t}}if(e.role===`tool`)return{role:`user`,content:await Promise.all(e.content.map(async e=>({type:`tool_result`,tool_use_id:e.id,content:typeof e.content==`string`?e.content:await rn(e.content,t),...e.isError?{is_error:!0}:{}})))};if(typeof e.content==`string`)return{role:`user`,content:e.content};{let n=[];for(let r of e.content)r.type===`text`?n.push({type:`text`,text:r.text}):r.type===`file`&&n.push(await Ht(r.file,t,`user-message`));return{role:`user`,content:n}}}async function Ht(e,t,n){if(e.kind===`image`)return{type:`image`,source:Wt(await Q(e,{provider:`anthropic`,model:t.model,accepted:[`url`,`base64`],purpose:n,resolver:t.fileResolver,signal:t.signal}),e)};if(e.kind===`document`){if(e.mimeType!==`application/pdf`)throw Error(`Anthropic only supports PDF document files. Received ${e.mimeType}`);let r=await Q(e,{provider:`anthropic`,model:t.model,accepted:[`url`,`base64`],purpose:n,resolver:t.fileResolver,signal:t.signal});return{type:`document`,source:Gt(r),title:r.name??e.name,citations:{enabled:!0}}}let r=await Q(e,{provider:`anthropic`,model:t.model,accepted:[`text`],purpose:n,resolver:t.fileResolver,signal:t.signal});if(r.type!==`text`)throw Error(`Unsupported Anthropic text source: ${r.type}`);return n===`tool-result`?{type:`text`,text:r.content}:{type:`document`,source:{type:`text`,media_type:`text/plain`,data:r.content},title:r.name??e.name,citations:{enabled:!0}}}function Ut(e){if(e===`image/jpeg`||e===`image/png`||e===`image/gif`||e===`image/webp`)return e;throw Error(`Anthropic does not support image MIME type: ${e}. Supported types: image/jpeg, image/png, image/gif, image/webp.`)}function Wt(e,t){if(e.type===`url`)return{type:`url`,url:e.url};if(e.type===`base64`)return{type:`base64`,media_type:Ut(e.mimeType??t.mimeType),data:e.data};throw Error(`Unsupported Anthropic image source: ${e.type}`)}function Gt(e){if(e.type===`url`)return{type:`url`,url:e.url};if(e.type===`base64`)return{type:`base64`,media_type:`application/pdf`,data:e.data};throw Error(`Unsupported Anthropic PDF source: ${e.type}`)}function Kt(e,t=``){return e===!0?qt(t)?{thinking:{type:`adaptive`},output_config:{effort:`high`}}:{thinking:{type:`enabled`,budget_tokens:8192}}:{}}function qt(e){let t=e.toLowerCase().match(/claude-(opus|sonnet)-(\d+)-(\d+)/);if(!t)return!1;let[,n,r,i]=t,a=Number(r),o=Number(i);return!Number.isFinite(a)||!Number.isFinite(o)?!1:n===`opus`||n===`sonnet`?a>4||a===4&&o>=6:!1}function Jt(e){return e.map(e=>{let t=l.toJSONSchema(e.schema);if(!nn(t))throw Error(`Schema for tool ${e.name} must be an object type`);return{name:e.name,description:e.description,input_schema:t}})}const Yt={web_search:`web_search_20250305`};function Xt(e){return Yt[e]??e}function Zt(e){return(e??[]).map(e=>({type:e.nativeName??Xt(e.name),name:e.name,...e.config}))}function Qt(e,t,n,r){if(e===void 0&&t!==!1)return{};let i=t===!1?{disable_parallel_tool_use:!0}:{};if(e===void 0||e===`auto`)return{tool_choice:{type:`auto`,...i}};if(e===`required`)return{tool_choice:{type:`any`,...i}};if(e===`none`)return{tool_choice:{type:`none`}};if(!(n?.some(t=>t.name===e.name)||r?.some(t=>t.name===e.name)))throw Error(`Tool choice references an unavailable tool: ${e.name}`);return{tool_choice:{type:`tool`,name:e.name,...i}}}function $t(e){let t=[];for(let n of e)if(n.type===`text`){let e=n.citations?.map(en);t.push({type:`text`,text:n.text,...e&&e.length>0?{citations:e}:{}})}else if(n.type===`thinking`){let e=n.thinking.length===0&&!!n.signature;t.push({type:`thinking`,...n.thinking?{text:n.thinking}:{},redacted:e,continuity:{provider:`anthropic`,signature:n.signature}})}else if(n.type===`redacted_thinking`)t.push({type:`thinking`,redacted:!0,continuity:{provider:`anthropic`,redactedData:n.data}});else if(n.type===`tool_use`){if(typeof n.input!=`object`||n.input===null||Array.isArray(n.input))throw Error(`Invalid tool call input for ${n.name}: expected object, got ${typeof n.input}`);t.push({type:`tool-call`,id:n.id,name:n.name,parameters:n.input})}return t}function en(e){switch(e.type){case`char_location`:return{source:{type:`document`,title:e.document_title??void 0,fileId:e.file_id??void 0,citedText:e.cited_text,locator:{type:`char`,start:e.start_char_index,end:e.end_char_index}},providerMetadata:{type:e.type,documentIndex:e.document_index}};case`page_location`:return{source:{type:`document`,title:e.document_title??void 0,fileId:e.file_id??void 0,citedText:e.cited_text,locator:{type:`page`,start:e.start_page_number,end:e.end_page_number}},providerMetadata:{type:e.type,documentIndex:e.document_index}};case`content_block_location`:return{source:{type:`document`,title:e.document_title??void 0,fileId:e.file_id??void 0,citedText:e.cited_text,locator:{type:`block`,start:e.start_block_index,end:e.end_block_index}},providerMetadata:{type:e.type,documentIndex:e.document_index}};case`web_search_result_location`:return{source:{type:`web`,title:e.title??void 0,url:e.url,citedText:e.cited_text},providerMetadata:{type:e.type,encryptedIndex:e.encrypted_index}};case`search_result_location`:return{source:{type:`search-result`,title:e.title??void 0,url:e.source,citedText:e.cited_text,locator:{type:`block`,start:e.start_block_index,end:e.end_block_index}},providerMetadata:{type:e.type,searchResultIndex:e.search_result_index}}}}function tn(e){switch(e){case`max_tokens`:return`length`;case`end_turn`:return`stop`;case`stop_sequence`:return`stop`;case`tool_use`:return`function_call`;default:return`error`}}function nn(e){return e&&typeof e==`object`&&e.type===`object`}async function rn(e,t){return Promise.all(e.map(async e=>e.type===`text`?{type:`text`,text:e.text}:Ht(e.file,t,`tool-result`)))}async function an(e){let{client:t,model:n,messages:r,system:i,tools:a,providerTools:o,runtime:s,reasoning:c,maxOutputTokens:l,temperature:u,topP:d,stop:f,toolChoice:p,parallelToolCalls:m,providerOptions:h,signal:g}=e,_=s?.span,v;try{X(g,`Generate aborted`);let e=await Bt(r,{model:n,fileResolver:s?.fileResolver,signal:g}),y={model:n,max_tokens:l??16e3,messages:e,...i&&{system:i},...f&&{stop_sequences:Nt(f)},...(a||o)&&{tools:[...a?Jt(a):[],...Zt(o)]},...Kt(c,n),...u===void 0?{}:{temperature:u},...d===void 0?{}:{top_p:d},...Qt(p,m,a,o),...h};_?.debug(`Anthropic request`,{request:Z(y)});let b=await kt(t.messages.create(y,...g?[{signal:g}]:[]),g,`Generate aborted`);X(g,`Generate aborted`),v=on(b)}catch(e){X(g,`Generate aborted`),v=Ot(e)}return _?.debug(`Anthropic response`,{result:v}),v}function on(e){let t=tn(e.stop_reason);if(t===`error`)return{type:`error`,error:{type:`Uncaught error`,message:`Stop reason is not recognized or unhandled: ${e.stop_reason}`},usage:cn(e.usage),raw:e};if(t===`function_call`){let t=$t(e.content);return{type:`success`,id:e.id,model:e.model,role:e.role,finishReason:`function_call`,content:t,text:I(t),usage:cn(e.usage),raw:e}}if(e.type==`message`){let n=$t(e.content);return{type:`success`,id:e.id,model:e.model,role:`assistant`,finishReason:t,content:n,text:I(n),usage:cn(e.usage),raw:e}}return{type:`error`,error:{type:`InvalidResponse`,message:`Unsupported completion type: ${e.type}`},usage:cn(e.usage),raw:e}}function sn(e){return e.input_tokens+(e.cache_creation_input_tokens??0)+(e.cache_read_input_tokens??0)}function cn(e){return W({in:sn(e),out:e.output_tokens},{cachedIn:e.cache_read_input_tokens??void 0,cacheWriteIn:e.cache_creation_input_tokens??void 0})}function ln(){let e=new Map,t=new Map,n=0,r=0,i=0,a=0,o=new Map;function s(s){let c=[];switch(s.type){case`message_start`:n=(s.message.usage?.input_tokens??0)+(s.message.usage?.cache_creation_input_tokens??0)+(s.message.usage?.cache_read_input_tokens??0),a=s.message.usage?.cache_creation_input_tokens??0,i=s.message.usage?.cache_read_input_tokens??0,c.push({type:`start`,id:s.message.id,data:{model:s.message.model,timestamp:Date.now()}});break;case`message_delta`:s.usage&&(r=s.usage.output_tokens??r,s.usage.input_tokens!=null&&(n=s.usage.input_tokens+(s.usage.cache_creation_input_tokens??a)+(s.usage.cache_read_input_tokens??i)),a=s.usage.cache_creation_input_tokens??a,i=s.usage.cache_read_input_tokens??i),s.delta.stop_reason&&c.push({type:`complete`,data:{finishReason:tn(s.delta.stop_reason),usage:W({in:n,out:r},{cachedIn:i,cacheWriteIn:a})}});case`message_stop`:break;case`content_block_start`:if(s.content_block.type===`text`)e.set(s.index,`text`),c.push({type:`text-start`,data:{index:s.index}});else if(s.content_block.type===`tool_use`){e.set(s.index,`tool`);let t=s.content_block;o.set(s.index,{id:t.id,name:t.name,argumentsBuffer:``}),c.push({type:`tool-call-start`,data:{index:s.index,id:t.id,name:t.name}})}else if(s.content_block.type===`thinking`){e.set(s.index,`thinking`);let t=s.content_block.thinking.length===0&&!!s.content_block.signature;c.push({type:`thinking-start`,data:{index:s.index,redacted:t,continuity:{provider:`anthropic`,signature:s.content_block.signature}}})}else if(s.content_block.type===`redacted_thinking`)e.set(s.index,`thinking`),c.push({type:`thinking-start`,data:{index:s.index,redacted:!0,continuity:{provider:`anthropic`,redactedData:s.content_block.data}}});else if(s.content_block.type===`server_tool_use`){e.set(s.index,`provider-tool`);let n=s.content_block;t.set(n.id,{index:s.index,name:n.name}),c.push({type:`provider-tool-start`,data:{index:s.index,id:n.id,name:n.name}})}else if(s.content_block.type===`web_search_tool_result`){let e=s.content_block,n=t.get(e.tool_use_id);n&&(c.push({type:`provider-tool-complete`,data:{index:n.index,id:e.tool_use_id,name:n.name,output:e.content}}),t.delete(e.tool_use_id))}break;case`content_block_delta`:if(s.delta.type===`text_delta`)c.push({type:`text-delta`,data:{text:s.delta.text,index:s.index}});else if(s.delta.type===`input_json_delta`){let e=o.get(s.index);e&&(e.argumentsBuffer+=s.delta.partial_json,c.push({type:`tool-call-args-delta`,data:{index:s.index,id:e.id,name:e.name,delta:s.delta.partial_json,accumulated:e.argumentsBuffer}}))}else s.delta.type===`thinking_delta`?c.push({type:`thinking-delta`,data:{text:s.delta.thinking,index:s.index}}):s.delta.type===`signature_delta`?c.push({type:`thinking-metadata`,data:{index:s.index,continuity:{provider:`anthropic`,signature:s.delta.signature}}}):s.delta.type===`citations_delta`&&(e.get(s.index)!==`text`&&console.warn(`[Anthropic] received citation delta outside a text block`,{index:s.index,blockType:e.get(s.index)}),c.push({type:`text-citation`,data:{index:s.index,citation:en(s.delta.citation)}}));break;case`content_block_stop`:{let t=e.get(s.index);if(t===`text`)c.push({type:`text-complete`,data:{index:s.index}});else if(t===`thinking`)c.push({type:`thinking-complete`,data:{index:s.index}});else if(t!==`provider-tool`&&t===`tool`){let e=o.get(s.index);if(e){try{let t=e.argumentsBuffer?JSON.parse(e.argumentsBuffer):{};c.push({type:`tool-call-complete`,data:{index:s.index,id:e.id,name:e.name,arguments:t}})}catch(t){throw Error(`Failed to parse tool call arguments for ${e.name}: ${t instanceof Error?t.message:String(t)}\nRaw buffer: ${ae(e.argumentsBuffer)}`)}o.delete(s.index)}}e.delete(s.index);break}}return c}return{handleEvent:s}}async function*un(e){let{client:t,model:n,messages:r,system:i,tools:a,providerTools:o,runtime:s,signal:c,reasoning:l,maxOutputTokens:u,temperature:d,topP:f,stop:p,toolChoice:m,parallelToolCalls:h,providerOptions:g}=e,_=s?.span,v=[...a?Jt(a):[],...Zt(o)],y=ln();try{let e=await Bt(r,{model:n,fileResolver:s?.fileResolver,signal:c}),b={model:n,max_tokens:u??dn(n),messages:e,...i&&{system:i},...p&&{stop_sequences:Nt(p)},...v.length>0&&{tools:v},...Kt(l,n),...d===void 0?{}:{temperature:d},...f===void 0?{}:{top_p:f},...Qt(m,h,a,o),...g};_?.debug(`Anthropic streaming request`,{request:Z(b)});let x=await t.messages.create({...b,stream:!0},{signal:c});for await(let e of x){let t=y.handleEvent(e);for(let e of t)yield e}}catch(e){if(c?.aborted)return;yield{type:`error`,data:{type:`STREAMING_ERROR`,message:e instanceof Error?e.message:String(e),raw:e}}}}function dn(e){return e in t?t[e]:e.includes(`opus`)?e.match(/opus-4-[6-9]|opus-[5-9]/)?128e3:64e3:e.includes(`sonnet`)||e.includes(`haiku`)?e.match(/claude-3-[0-5]-/)?8192:64e3:16384}function fn(e,t={}){let n=new m({apiKey:e,maxRetries:Y(t.maxRetries??2,`maxRetries`,{min:0}),...t.timeoutMs===void 0?{}:{timeout:Y(t.timeoutMs,`timeoutMs`,{min:1})}});return{name:`anthropic`,resolveProviderToolName(e){return Xt(e)},async createGenerationRequest(e,t){return await an({client:n,model:e,...t})},createStreamingRequest(e,t){return un({client:n,model:e,...t})}}}const pn={Models:i,DefaultModel:s};async function mn(e,t={}){let n=Y(t.maxRetries??2,`maxRetries`,{min:0}),r=t.timeoutMs===void 0?void 0:Y(t.timeoutMs,`timeoutMs`,{min:1}),i=0;for(;;){X(t.signal,`Request aborted`);let a=hn(t.signal,r);try{let r=await kt(e({signal:a.signal}),a.signal,`Request aborted`);if(!gn(r.status)||i>=n)return r;let o=_n(r,i);t.onRetry?.({attempt:i+1,delayMs:o,status:r.status}),await yn(o,t.signal),i+=1}catch(e){if(X(t.signal,`Request aborted`),i>=n)throw e;let r=_n(void 0,i);t.onRetry?.({attempt:i+1,delayMs:r,error:e}),await yn(r,t.signal),i+=1}finally{a.cleanup()}}}function hn(e,t){if(t===void 0)return{signal:e,cleanup:()=>{}};let n=new AbortController,r=setTimeout(()=>{n.abort(new DOMException(`Request timed out after ${t}ms`,`TimeoutError`))},t),i=()=>{n.abort(e?.reason)};return e?.aborted?i():e?.addEventListener(`abort`,i,{once:!0}),{signal:n.signal,cleanup:()=>{clearTimeout(r),e?.removeEventListener(`abort`,i)}}}function gn(e){return e===408||e===409||e===429||e>=500}function _n(e,t){let n=vn(e);if(n!==void 0)return n;let r=Math.min(500*2**t,8e3);return r+Math.floor(Math.random()*r*.25)}function vn(e){let t=e?.headers.get(`retry-after-ms`);if(t){let e=Number.parseFloat(t);if(Number.isFinite(e)&&e>=0)return e}let n=e?.headers.get(`retry-after`);if(!n)return;let r=Number.parseFloat(n);if(Number.isFinite(r)&&r>=0)return r*1e3;let i=Date.parse(n);if(Number.isFinite(i))return Math.max(i-Date.now(),0)}async function yn(e,t){if(e<=0){X(t,`Request aborted`);return}await new Promise((n,r)=>{let i,a=()=>{clearTimeout(i),t?.removeEventListener(`abort`,o)},o=()=>{a(),r(new DOMException(`Request aborted`,`AbortError`))},s=()=>{a(),n()};if(t?.aborted){o();return}i=setTimeout(s,e),t?.addEventListener(`abort`,o,{once:!0})}),X(t,`Request aborted`)}const bn={web_search:`openrouter:web_search`};function xn(e){return bn[e]}function Sn(e,t){let n=[];for(let r of e){let e=r.nativeName??xn(r.name);if(!e){t?.(`providerTool not supported by ChatCompletions provider vendor`,{vendor:`openrouter`,name:r.name});continue}n.push({type:e,...r.config?{parameters:r.config}:{}})}return n.length>0?n:void 0}function Cn(e){switch(e.type){case`url_citation`:{let t=e.url_citation;return t?.url?{source:{type:`web`,title:t.title,url:t.url,citedText:t.content},outputSpan:{start:t.start_index,end:t.end_index},providerMetadata:{type:e.type}}:null}default:return null}}function wn(e){let t=e.outputSpan;return!t||t.start===void 0&&t.end===void 0?!1:t.start!==0||t.end!==0}function Tn(e){return e===!0?{reasoning:{enabled:!0}}:e===!1?{reasoning:{enabled:!1}}:{}}function En(e){if(e.kind===`document`)throw Error(`Together Chat Completions does not support PDF file parts`)}function Dn(e,t){switch(t){case`openrouter`:return xn(e);default:return}}async function On(e,t,n={model:``}){let r=(await Promise.all(e.map(e=>In(e,n)))).flat(1);return t?[{role:`system`,content:t},...r]:r}function kn(e,t){return t===`together`?Tn(e):An(e)}function An(e){return e===!0?{reasoning_effort:`high`}:e===!1?{reasoning_effort:`none`}:{}}function jn(e){return W({in:e?.prompt_tokens||0,out:e?.completion_tokens||0},{cachedIn:e?.prompt_tokens_details?.cached_tokens??e?.input_tokens_details?.cached_tokens,cacheWriteIn:e?.prompt_tokens_details?.cache_write_tokens??e?.prompt_tokens_details?.cache_creation_tokens??e?.input_tokens_details?.cache_write_tokens??e?.input_tokens_details?.cache_creation_tokens,reasoningOut:e?.completion_tokens_details?.reasoning_tokens??e?.output_tokens_details?.reasoning_tokens})}function Mn(e){if(e&&e.length>0)return e.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:l.toJSONSchema(e.schema)}}))}function Nn(e,t,n){if(!(!e||e.length===0)){if(!t){n?.(`providerTools not supported by ChatCompletions provider`);return}switch(t){case`openrouter`:return Sn(e,n)}}}function Pn(e,t,n){if(e===void 0)return{};if(e===`auto`||e===`none`||e===`required`)return{tool_choice:e};if(t?.some(t=>t.name===e.name))return{tool_choice:{type:`function`,function:{name:e.name}}};throw n?.some(t=>t.name===e.name)?Error(`ChatCompletions does not support provider tool choice: ${e.name}`):Error(`Tool choice references an unavailable tool: ${e.name}`)}function Fn(e){switch(e){case`stop`:return`stop`;case`length`:return`length`;case`tool_calls`:case`function_call`:return`function_call`;case`content_filter`:case`error`:return`error`;default:return`stop`}}async function In(e,t){switch(e.role){case`tool`:return Ln(e,t);case`assistant`:return Rn(e);default:return zn(e,t)}}async function Ln(e,t){return Promise.all(e.content.map(async e=>({role:`tool`,content:typeof e.content==`string`?e.content:await Vn(e.content,t),tool_call_id:e.id})))}function Rn(e){let t=e.content.filter(e=>e.type===`tool-call`),n=e.content.filter(e=>e.type===`text`),r=t.length>0?t.map(e=>({type:`function`,id:e.id,function:{name:e.name,arguments:JSON.stringify(e.parameters)}})):void 0;return{role:`assistant`,content:n.map(e=>e.text).join(``),...r&&{tool_calls:r}}}async function zn(e,t){if(typeof e.content==`string`)return{role:`user`,content:e.content};let n=(await Promise.all(e.content.map(e=>Bn(e,t)))).filter(e=>e!==null);return n.every(e=>e.type===`text`)?{role:`user`,content:n.map(e=>e.text).join(``)}:{role:`user`,content:n}}async function Bn(e,t){return e.type===`text`?{type:`text`,text:e.text}:e.type===`file`?Hn(e.file,t,`user-message`):null}async function Vn(e,t){let n=[];for(let r of e){if(r.type===`text`){n.push(r.text);continue}if(r.file.kind===`text`){let e=await Q(r.file,{provider:`chatcompletions`,model:t.model,accepted:[`text`],purpose:`tool-result`,resolver:t.fileResolver,signal:t.signal});if(e.type!==`text`)throw Error(`Unsupported ChatCompletions text source: ${e.type}`);n.push(Gn(r.file,e.content,e.name,e.mimeType));continue}t.warn?.(`ChatCompletions omitted unsupported tool-result file`,{model:t.model,kind:r.file.kind,name:r.file.name,mimeType:r.file.mimeType}),n.push(Kn(r.file))}return n.join(`
|
|
13
|
-
`)}async function
|
|
14
|
-
`)}async function
|
|
15
|
-
`);j=n.pop()||``;for(let e of n){let t=e.trim();if(!t||t.startsWith(`:`)||!t.startsWith(`data: `))continue;let n=t.slice(6);if(n===`[DONE]`)continue;let r;try{r=JSON.parse(n)}catch(e){x?.error(`Error parsing ChatCompletions stream chunk`,{error:e instanceof Error?e.message:String(e),line:t});continue}if(r.error){let e=
|
|
16
|
-
`),r={functionResponse:{id:e.id??void 0,name:e.name,response:{output:n}}};return typeof e.content==`string`?[r]:[r,...await Promise.all(e.content.filter(e=>e.type===`file`).map(e=>pr(e.file,t,`tool-result`)))]}))).flat(1)}}function ur(e){let t=[],n=e.content.filter(e=>e.type===`text`);if(n.length>0)for(let e of n){let n=e.text;if(!n)continue;let r={text:n};e.providerMetadata?.thoughtSignature&&(r.thoughtSignature=e.providerMetadata.thoughtSignature),t.push(r)}let r=e.content.filter(e=>e.type===`tool-call`);return r.length>0&&t.push(...r.map(e=>{let t={functionCall:{id:e.id??void 0,name:e.name,args:e.parameters}};return e.providerMetadata?.thoughtSignature&&(t.thoughtSignature=e.providerMetadata.thoughtSignature),t})),{role:`model`,parts:t}}async function dr(e,t){return typeof e.content==`string`?{role:`user`,parts:[{text:e.content}]}:{role:`user`,parts:(await Promise.all(e.content.map(e=>fr(e,t)))).filter(e=>e!==null)}}async function fr(e,t){return e.type===`text`?{text:e.text}:e.type===`file`?pr(e.file,t,`user-message`):null}async function pr(e,t,n){if(e.kind===`text`){let r=await Q(e,{provider:`gemini`,model:t.model,accepted:[`text`],purpose:n,resolver:t.fileResolver,signal:t.signal});if(r.type!==`text`)throw Error(`Unsupported Gemini text source: ${r.type}`);return{text:hr(e,r.content,r.name,r.mimeType)}}if(e.kind===`document`&&e.mimeType!==`application/pdf`)throw Error(`Gemini document file support is limited to PDFs. Received ${e.mimeType}`);return mr(await Q(e,{provider:`gemini`,model:t.model,accepted:[`gemini-file-uri`,`url`,`base64`],purpose:n,resolver:t.fileResolver,signal:t.signal}),e)}function mr(e,t){if(e.type===`base64`)return{inlineData:{mimeType:e.mimeType??t.mimeType,data:e.data}};if(e.type===`url`)return{fileData:{mimeType:e.mimeType??t.mimeType,fileUri:e.url}};if(e.type===`gemini-file-uri`)return{fileData:{mimeType:e.mimeType??t.mimeType,fileUri:e.uri}};throw Error(`Unsupported Gemini file source: ${e.type}`)}function hr(e,t,n,r){return`File: ${n??e.name}\nMIME type: ${r??e.mimeType}\n\n${t}`}function gr(e){switch(e){case x.STOP:return[!0,`stop`];case x.MAX_TOKENS:return[!0,`length`];case x.FINISH_REASON_UNSPECIFIED:case x.SAFETY:case x.RECITATION:case x.LANGUAGE:case x.OTHER:case x.BLOCKLIST:case x.PROHIBITED_CONTENT:case x.SPII:case x.MALFORMED_FUNCTION_CALL:case x.IMAGE_SAFETY:return[!1,`error`]}return[!1,`error`]}async function _r(e){let{client:t,model:n,messages:r,system:i,tools:a,providerTools:o,runtime:s,reasoning:c,maxOutputTokens:l,temperature:u,topP:d,stop:f,toolChoice:p,parallelToolCalls:m,providerOptions:h,signal:g}=e,_=s?.span,v={...or(c),...l===void 0?{}:{maxOutputTokens:l},...u===void 0?{}:{temperature:u},...d===void 0?{}:{topP:d},...f===void 0?{}:{stopSequences:Array.isArray(f)?f:[f]},...ar(p,m,a,o),...h},y;try{X(g,`Generate aborted`);let e=await sr(r,{model:n,fileResolver:s?.fileResolver,signal:g}),c=tr(a,i,v);p!==`none`&&ir(c,o);let l={contents:e,config:c};_?.debug(`Gemini request`,{request:Z(l)});let u=await kt(t.models.generateContent({model:n,...l}),g,`Generate aborted`);X(g,`Generate aborted`),y=vr(u,{span:_})}catch(e){X(g,`Generate aborted`),_?.error(e instanceof Error?e.message:String(e)),y=Ot(e)}return _?.debug(`Gemini response`,{result:y}),y}function vr(e,t){let{span:n}=t,r=e.usageMetadata?.promptTokenCount??0,i=W({in:r,out:(e.usageMetadata?.totalTokenCount??r)-r},{cachedIn:e.usageMetadata?.cachedContentTokenCount,reasoningOut:e.usageMetadata?.thoughtsTokenCount});if(!e)return{type:`error`,error:{type:`InvalidResponse`,message:`Invalid or empty response from Google AI`},usage:{in:0,out:0},raw:e};if(e.promptFeedback&&e.promptFeedback.blockReason)return{type:`error`,error:{type:`Blocked`,message:`Response blocked by Google AI: ${e.promptFeedback.blockReason}, ${e.promptFeedback.blockReasonMessage}`},usage:i,raw:e};if(!e.candidates||e.candidates.length===0)return{type:`error`,error:{type:`InvalidResponse`,message:`Invalid or empty response from Google AI`},usage:{in:0,out:0},raw:e};e.candidates.length>1&&n?.warn(`We received ${e.candidates.length} response candidates`);let a=e.candidates[0],o=a.content?.parts||[],[s,c]=gr(a.finishReason);if(s){let t=[];for(let e=0;e<o.length;e++){let n=o[e];if(n.text)if(n.thought)t.push({type:`thinking`,summary:n.text,...n.thoughtSignature?{continuity:{provider:`gemini`,thoughtSignature:n.thoughtSignature}}:{}});else{let r=br(a,e);yr(t,{type:`text`,text:n.text,...r.length>0?{citations:r}:{},...n.thoughtSignature?{providerMetadata:{thoughtSignature:n.thoughtSignature}}:{}})}}let n=o.filter(e=>e.functionCall),r=n.length>0?n.map(e=>({call:e.functionCall,thoughtSignature:e.thoughtSignature})):(e.functionCalls??[]).map(e=>({call:e,thoughtSignature:void 0}));if(r.length>0)for(let{call:e,thoughtSignature:n}of r)if(e.args==null)t.push({type:`tool-call`,id:e.id??``,name:e.name??``,parameters:{},...n?{providerMetadata:{thoughtSignature:n}}:{}});else if(typeof e.args!=`object`||Array.isArray(e.args))throw Error(`Invalid tool call arguments for ${e.name}: expected object, got ${typeof e.args}`);else t.push({type:`tool-call`,id:e.id??``,name:e.name??``,parameters:e.args,...n?{providerMetadata:{thoughtSignature:n}}:{}});return{type:`success`,id:e.responseId??``,model:e.modelVersion??``,role:`assistant`,finishReason:r.length>0?`function_call`:c,content:t,text:I(t),usage:i,raw:e}}else return{type:`error`,error:{type:`Undetermined`,message:`Unexpected stop reason: ${c}`},usage:i,raw:e}}function yr(e,t){let n=e[e.length-1];if(n?.type===`text`&&!n.citations?.length&&!n.providerMetadata&&!t.citations?.length&&!t.providerMetadata){n.text+=t.text;return}e.push(t)}function br(e,t){let n=[],r=e.groundingMetadata,i=r?.groundingChunks??[];for(let e of r?.groundingSupports??[])if(!(e.segment?.partIndex!==void 0&&e.segment.partIndex!==t))for(let t of e.groundingChunkIndices??[]){let r=i[t];r&&n.push(xr(r,e))}for(let t of e.citationMetadata?.citations??[])n.push({source:t.uri?{type:`web`,title:t.title,url:t.uri}:{type:`unknown`},outputSpan:{start:t.startIndex,end:t.endIndex},providerMetadata:{license:t.license,publicationDate:t.publicationDate}});return n}function xr(e,t){let n=t.segment;return e.web?{source:{type:`web`,title:e.web.title,url:e.web.uri},outputSpan:{start:n?.startIndex,end:n?.endIndex},providerMetadata:{outputText:n?.text,confidenceScores:t.confidenceScores}}:e.retrievedContext?{source:{type:`retrieved-context`,title:e.retrievedContext.title,uri:e.retrievedContext.uri,citedText:e.retrievedContext.text,locator:{type:`page`,start:e.retrievedContext.pageNumber,end:e.retrievedContext.pageNumber}},outputSpan:{start:n?.startIndex,end:n?.endIndex},providerMetadata:{documentName:e.retrievedContext.documentName,outputText:n?.text,confidenceScores:t.confidenceScores}}:e.maps?{source:{type:`web`,title:e.maps.title,url:e.maps.uri,citedText:e.maps.text},outputSpan:{start:n?.startIndex,end:n?.endIndex},providerMetadata:{placeId:e.maps.placeId,outputText:n?.text,confidenceScores:t.confidenceScores}}:{source:{type:`unknown`},outputSpan:{start:n?.startIndex,end:n?.endIndex},providerMetadata:{chunk:e,outputText:n?.text,confidenceScores:t.confidenceScores}}}function Sr(){let e=0,t=-1,n=!1,r=``,i=``,a=0,o=0,s=0,c=0,l=null,u=new Map;function d(e){t<0||(l===`text`?e.push({type:`text-complete`,data:{index:t}}):l===`thinking`&&e.push({type:`thinking-complete`,data:{index:t}}),l=null,t=-1)}function f(f){let p=[];r||(r=f.responseId||`gemini-${Date.now()}`,i=f.modelVersion||`gemini`,p.push({type:`start`,id:r,data:{model:i,timestamp:Date.now()}})),f.usageMetadata&&(a=f.usageMetadata.promptTokenCount||0,o=(f.usageMetadata.totalTokenCount||0)-a,s=f.usageMetadata.cachedContentTokenCount||0,c=f.usageMetadata.thoughtsTokenCount||0);let m=f.candidates?.[0];if(!m)return p;let h=m.content?.parts||[];for(let r=0;r<h.length;r++){let i=h[r],a=`thought`in i&&i.thought===!0,o=Object.keys(i),s=o.length===1&&`text`in i&&!i.text;if(!(`thoughtSignature`in i&&!i.text&&!i.functionCall||o.length===2&&`text`in i&&`thoughtSignature`in i&&!i.text||s)&&(a&&i.text?(l!==`thinking`&&(d(p),t=e++,l=`thinking`,p.push({type:`thinking-start`,data:{index:t,...i.thoughtSignature?{continuity:{provider:`gemini`,thoughtSignature:i.thoughtSignature}}:{}}})),p.push({type:`thinking-summary-delta`,data:{index:t,text:i.text}})):i.text&&!a?(l!==`text`&&(d(p),t=e++,l=`text`,p.push({type:`text-start`,data:{index:t}})),u.set(r,t),p.push({type:`text-delta`,data:{text:i.text,index:t}})):i.functionCall||console.log(`[gemini] unhandled part type: ${JSON.stringify(Object.keys(i))}`),i.functionCall)){d(p),n=!0;let t=e++,r=i.functionCall.id||`tool-${t}`,a=i.functionCall.name??``;p.push({type:`tool-call-start`,data:{index:t,id:r,name:a}});let o=i.functionCall.args??{},s=JSON.stringify(o);p.push({type:`tool-call-args-delta`,data:{index:t,id:r,name:a,delta:s,accumulated:s}});let c={index:t,id:r,name:a,arguments:o},l=i;l.thoughtSignature&&(c.providerMetadata={thoughtSignature:l.thoughtSignature}),p.push({type:`tool-call-complete`,data:c})}}for(let{partIndex:e,citation:n}of Cr(m)){let r=e===void 0?t:u.get(e);if(r===void 0||r<0){console.warn(`[Gemini] received citation without a resolvable text part`,{citation:n});continue}p.push({type:`text-citation`,data:{index:r,citation:n}})}if(m.finishReason&&m.finishReason!==x.FINISH_REASON_UNSPECIFIED){d(p);let[e,t]=gr(m.finishReason),r=n?`function_call`:t;!e&&!n?p.push({type:`error`,data:{type:`FinishReasonError`,message:`Unexpected finish reason: ${m.finishReason}`,usage:W({in:a,out:o},{cachedIn:s,reasoningOut:c}),raw:f}}):p.push({type:`complete`,data:{finishReason:r,usage:W({in:a,out:o},{cachedIn:s,reasoningOut:c})}})}return p}return{handleChunk:f}}function Cr(e){let t=[],n=e.groundingMetadata,r=n?.groundingChunks??[];for(let e of n?.groundingSupports??[])for(let n of e.groundingChunkIndices??[]){let i=r[n];i&&t.push({partIndex:e.segment?.partIndex,citation:wr(i,e)})}for(let n of e.citationMetadata?.citations??[])t.push({citation:{source:n.uri?{type:`web`,title:n.title,url:n.uri}:{type:`unknown`},outputSpan:{start:n.startIndex,end:n.endIndex},providerMetadata:{license:n.license,publicationDate:n.publicationDate}}});return t}function wr(e,t){let n=t.segment;return e.web?{source:{type:`web`,title:e.web.title,url:e.web.uri},outputSpan:{start:n?.startIndex,end:n?.endIndex},providerMetadata:{outputText:n?.text,confidenceScores:t.confidenceScores}}:e.retrievedContext?{source:{type:`retrieved-context`,title:e.retrievedContext.title,uri:e.retrievedContext.uri,citedText:e.retrievedContext.text,locator:{type:`page`,start:e.retrievedContext.pageNumber,end:e.retrievedContext.pageNumber}},outputSpan:{start:n?.startIndex,end:n?.endIndex},providerMetadata:{documentName:e.retrievedContext.documentName,outputText:n?.text,confidenceScores:t.confidenceScores}}:{source:{type:`unknown`},outputSpan:{start:n?.startIndex,end:n?.endIndex},providerMetadata:{chunk:e,outputText:n?.text,confidenceScores:t.confidenceScores}}}async function*Tr(e){let{client:t,model:n,messages:r,system:i,tools:a,providerTools:o,runtime:s,signal:c,reasoning:l,maxOutputTokens:u,temperature:d,topP:f,stop:p,toolChoice:m,parallelToolCalls:h,providerOptions:g}=e,_=s?.span,v=tr(a,i,{...or(l),...u===void 0?{}:{maxOutputTokens:u},...d===void 0?{}:{temperature:d},...f===void 0?{}:{topP:f},...p===void 0?{}:{stopSequences:Array.isArray(p)?p:[p]},...ar(m,h,a,o),...g});m!==`none`&&ir(v,o);let y=Sr();try{let e={contents:await sr(r,{model:n,fileResolver:s?.fileResolver,signal:c}),config:v};_?.debug(`Gemini streaming request`,{request:Z(e)});let i=await t.models.generateContentStream({model:n,...e});for await(let e of i){let t=y.handleChunk(e);for(let e of t)yield e}}catch(e){if(c?.aborted)return;_?.error(e instanceof Error?e.message:String(e)),yield{type:`error`,data:{type:`STREAMING_ERROR`,message:e instanceof Error?e.message:String(e),raw:e}}}}function Er(e,t={}){let n=new C({apiKey:e,httpOptions:{retryOptions:{attempts:Dr(t.maxRetries)},...t.timeoutMs===void 0?{}:{timeout:Y(t.timeoutMs,`timeoutMs`,{min:1})}}});return{name:`Gemini`,resolveProviderToolName(e){return rr(e)},async createGenerationRequest(e,t){return await _r({client:n,model:e,...t})},createStreamingRequest(e,t){return Tr({client:n,model:e,...t})}}}function Dr(e=2){return Y(e,`maxRetries`,{min:0})+1}const Or={Models:r,DefaultModel:n};async function kr(e){let{provider:t,model:n,messages:r,system:i,tools:a,providerTools:o,span:s,fileResolver:c,...l}=e;return t.createGenerationRequest(n,{messages:r,system:i,tools:a,providerTools:o,runtime:{span:s,fileResolver:c},...l})}async function Ar(e){if(je(e),`instruct`in e){let{instruct:t,messages:n,...r}=e,i=xe(t),a=await jr({...r,messages:[...n??[],i.message]},k());if(!a.ok)return a;try{return{...a,response:i.parse(a.final)}}catch(e){return{ok:!1,messages:a.messages,final:a.final,usage:a.usage,...a.stopped?{stopped:a.stopped}:{},error:{kind:`parse`,error:e,message:e instanceof Error?e.message:String(e)}}}}return jr(e,k())}async function jr(e,t){let{provider:n,model:r,messages:i,system:a,onToolCall:o,maxIterations:s,maxContextTokens:c,span:l,fileResolver:u,reasoning:d,maxOutputTokens:f,temperature:p,topP:m,stop:h,toolChoice:g,parallelToolCalls:_,providerOptions:v,signal:y=new AbortController().signal}=e,b=Be(ze(e),{provider:n,model:r,span:l,configuration:t}),x=[...i],S=[],C=V(),w=0,T,E=e=>{x.push(e),S.push(e)},D=e=>(l?.setResult({kind:`llm`,model:r,request:{messages:i},response:{content:e.ok?e.final.content:null},usage:Te(e.usage),finishReason:e.ok?e.final.finishReason:void 0}),l?.end(e.ok?`ok`:`error`),e),O=(e,t)=>{if(!e||t.type===`error`){e?.end(`error`);return}e.setResult({kind:`llm`,model:t.model??r,request:{messages:x},response:{content:t.content},usage:Te(t.usage),finishReason:t.finishReason}),e.end()};try{for(;;){X(y,`Generate aborted`),w+=1;let e=l?.startSpan(`turn-${w}`,{type:`llm`}),t=b.executable(),i=t.length>0?t.map(e=>({name:e.name,description:e.description,schema:e.schema})):void 0,k=b.provider(),A;try{A=await kr({provider:n,model:r,messages:x,system:a,tools:i,providerTools:k.length>0?k:void 0,span:e,fileResolver:u,reasoning:d,maxOutputTokens:f,temperature:p,topP:m,stop:h,toolChoice:g,parallelToolCalls:_,providerOptions:v,signal:y}),X(y,`Generate aborted`)}catch(t){throw t instanceof Error&&t.name===`AbortError`&&e?.end(`ok`),t}if(Ne(C,A,{provider:n.name,model:A.type===`error`?r:A.model??r}),A.type!==`error`&&Pe(e,A.content),O(e,A),A.type===`error`)return D({ok:!1,messages:S,error:{kind:`model`,error:A,message:A.error.message},usage:C});let j={role:`assistant`,id:A.id,model:A.model,content:A.content,finishReason:A.finishReason};if(E(j),T=j,A.finishReason!==`function_call`)return D({ok:!0,response:T,messages:S,final:T,usage:C});let M=te(A.content);if(M.length===0)return D({ok:!0,response:T,messages:S,final:T,usage:C});let{results:N,usage:P}=await Ve(M,o,y,b,l);H(C,P),X(y,`Generate aborted`),N.length>0&&E({role:`tool`,id:crypto.randomUUID(),content:N});let F=Me(w,A.usage,{maxIterations:s,maxContextTokens:c});if(F)return D({ok:!0,response:j,messages:S,final:j,usage:C,stopped:F})}}catch(e){throw e instanceof P?(l?.end(`error`),new P(e.message,{toolName:e.toolName,messages:e.messages??S,partial:e.partial??T,usage:U(C,e.usage),cause:e.cause})):e instanceof M?(l?.end(`ok`),new M(`Generate aborted`,{reason:e.reason,messages:e.messages??S,partial:e.partial,usage:U(C,e.usage)})):e instanceof Error&&e.name===`AbortError`?(l?.end(`ok`),new M(`Generate aborted`,{reason:y.reason,messages:S,usage:C})):e}}function Mr(e){if(e&&e.length>0)return e.map(e=>{let t=l.toJSONSchema(e.schema);return{type:`function`,strict:Nr(t),name:e.name,description:e.description,parameters:t}})}function Nr(e){if(!e||typeof e!=`object`)return!0;if(Array.isArray(e))return e.every(Nr);let t=e;if(t.properties&&typeof t.properties==`object`&&!Array.isArray(t.properties)){if(t.additionalProperties!==!1)return!1;let e=Object.keys(t.properties),n=new Set(Array.isArray(t.required)?t.required:[]);if(e.some(e=>!n.has(e))||!Object.values(t.properties).every(Nr))return!1}return[`items`,`prefixItems`,`anyOf`,`oneOf`,`allOf`,`$defs`,`definitions`].every(e=>Nr(t[e]))}const Pr={web_search:`web_search_preview`,code_execution:`code_interpreter`};function Fr(e){return Pr[e]??e}function Ir(e){return e?.map(e=>({type:e.nativeName??Fr(e.name),...e.config}))}function Lr(e,t,n){if(e===void 0)return{};if(e===`auto`||e===`none`||e===`required`)return{tool_choice:e};if(t?.some(t=>t.name===e.name))return{tool_choice:{type:`function`,name:e.name}};let r=n?.find(t=>t.name===e.name);if(r)return{tool_choice:{type:r.nativeName??Fr(r.name)}};throw Error(`Tool choice references an unavailable tool: ${e.name}`)}function Rr(e){return e===!0?{reasoning:{effort:`high`}}:e===!1?{reasoning:{effort:`none`}}:{}}async function zr(e,t={model:``}){return(await Promise.all(e.map(e=>Br(e,t)))).flat(1)}async function Br(e,t){switch(e.role){case`tool`:return Vr(e,t);case`assistant`:return Hr(e);default:return Ur(e,t)}}async function Vr(e,t){return Promise.all(e.content.map(async e=>({type:`function_call_output`,call_id:e.id,output:typeof e.content==`string`?e.content:await Promise.all(e.content.map(e=>e.type===`text`?Promise.resolve({type:`input_text`,text:e.text}):Gr(e.file,t,`tool-result`)))})))}function Hr(e){let t=[],n=I(e.content);n&&t.push({role:e.role,content:n});let r=e.content.filter(e=>e.type===`thinking`);for(let e of r)e.continuity?.provider===`openai`&&t.push({type:`reasoning`,id:e.id,summary:e.summary?[{type:`summary_text`,text:e.summary}]:[],...e.text?{content:[{type:`reasoning_text`,text:e.text}]}:{},encrypted_content:e.continuity.encrypted});let i=e.content.filter(e=>e.type===`tool-call`);for(let e of i)t.push({type:`function_call`,call_id:e.id,name:e.name,arguments:JSON.stringify(e.parameters)});let a=e.content.filter(e=>e.type===`provider-tool`);for(let e of a)e.output!=null&&t.push(e.output);return t}async function Ur(e,t){if(typeof e.content==`string`)return{role:e.role,content:e.content};{let n=(await Promise.all(e.content.map(e=>Wr(e,t)))).filter(e=>e!==null);return{role:e.role,content:n}}}async function Wr(e,t){return e.type===`text`?{type:`input_text`,text:e.text}:e.type===`file`?Gr(e.file,t,`user-message`):(e.type,null)}async function Gr(e,t,n){if(e.kind===`image`)return{type:`input_image`,image_url:Kr(await Q(e,{provider:`openai`,model:t.model,accepted:[`url`,`base64`],purpose:n,resolver:t.fileResolver,signal:t.signal}),e),detail:`auto`};if(e.kind===`document`){if(e.mimeType!==`application/pdf`)throw Error(`OpenAI file inputs currently support PDF documents. Received ${e.mimeType}`);return qr(await Q(e,{provider:`openai`,model:t.model,accepted:[`url`,`base64`],purpose:n,resolver:t.fileResolver,signal:t.signal}),e)}let r=await Q(e,{provider:`openai`,model:t.model,accepted:[`text`,`url`,`base64`],purpose:n,resolver:t.fileResolver,signal:t.signal});return r.type===`text`?{type:`input_text`,text:r.content}:qr(r,e)}function Kr(e,t){if(e.type===`url`)return e.url;if(e.type===`base64`)return`data:${e.mimeType??t.mimeType};base64,${e.data}`;throw Error(`Unsupported OpenAI image source: ${e.type}`)}function qr(e,t){if(e.type===`url`)return{type:`input_file`,file_url:e.url};if(e.type===`base64`)return{type:`input_file`,filename:e.name??t.name,file_data:`data:${e.mimeType??t.mimeType};base64,${e.data}`};throw Error(`Unsupported OpenAI file source: ${e.type}`)}async function Jr(e){let{client:t,model:n,messages:r,system:i,tools:a,providerTools:o,runtime:s,reasoning:c,maxOutputTokens:l,temperature:u,topP:d,stop:f,toolChoice:p,parallelToolCalls:m,providerOptions:h,signal:g}=e,_=s?.span,v;try{if(X(g,`Generate aborted`),f!==void 0)throw Error(`OpenAI Responses does not support normalized stop sequences`);let e=[...Mr(a)??[],...Ir(o)??[]],y={model:n,input:await zr(r,{model:n,fileResolver:s?.fileResolver,signal:g}),...i&&{instructions:i},...e.length>0?{tools:e}:{},...Rr(c),...l===void 0?{}:{max_output_tokens:l},...u===void 0?{}:{temperature:u},...d===void 0?{}:{top_p:d},...Lr(p,a,o),...m===void 0?{}:{parallel_tool_calls:m},...h};_?.debug(`OpenAI ResponsesAPI request`,{request:Z(y)});let b=await kt(t.responses.create(y,...g?[{signal:g}]:[]),g,`Generate aborted`);X(g,`Generate aborted`),v=Yr(b)}catch(e){X(g,`Generate aborted`),_?.error(e instanceof Error?e.message:String(e)),v=Ot(e)}return _?.debug(`OpenAI ResponsesAPI response`,{result:v}),v}function Yr(e){if(e.error)return{type:`error`,error:{type:e.error.code||`undetermined`,message:e.error.message||`Response generation failed`},usage:Qr(e.usage),raw:e};let t=e.output?.filter(e=>e.type===`reasoning`)?.map(e=>e),n=[];if(t&&t.length>0)for(let e of t)(e.summary?.[0]?.text||e.content?.[0]?.text||e.encrypted_content)&&n.push({type:`thinking`,id:e.id,...e.content?.[0]?.text?{text:e.content[0].text}:{},...e.summary?.[0]?.text?{summary:e.summary[0].text}:{},...e.encrypted_content?{continuity:{provider:`openai`,encrypted:e.encrypted_content}}:{}});let r=Xr(e);r.length>0?n.push(...r):e.output_text&&n.push({type:`text`,text:e.output_text});let i=e.output?.filter(e=>e.type===`function_call`);if(i&&i.length>0)for(let e of i){let t=e;try{n.push({type:`tool-call`,id:t.call_id||t.id||``,name:t.name||``,parameters:t.arguments?JSON.parse(t.arguments):{}})}catch(e){throw Error(`Failed to parse tool call arguments for ${t.name}: ${e instanceof Error?e.message:String(e)}\nRaw value: ${t.arguments}`)}}return{type:`success`,id:e.id,model:e.model||``,role:`assistant`,finishReason:e.incomplete_details?`error`:i&&i.length>0?`function_call`:`stop`,content:n,text:I(n),usage:Qr(e.usage),raw:e}}function Xr(e){let t=[];for(let n of e.output??[])if(n.type===`message`)for(let e of n.content??[]){if(e.type!==`output_text`)continue;let n=(e.annotations??[]).map(Zr).filter(e=>e!==null);t.push({type:`text`,text:e.text,...n.length>0?{citations:n}:{}})}return t}function Zr(e){if(!e||typeof e!=`object`)return null;let t=e;switch(t.type){case`url_citation`:return{source:{type:`web`,title:t.title,url:t.url},outputSpan:{start:t.start_index,end:t.end_index},providerMetadata:{type:t.type}};case`file_citation`:return{source:{type:`document`,title:t.filename,fileId:t.file_id},providerMetadata:{type:t.type,index:t.index}};case`container_file_citation`:return{source:{type:`document`,title:t.filename,fileId:t.file_id},outputSpan:{start:t.start_index,end:t.end_index},providerMetadata:{type:t.type,containerId:t.container_id}};case`file_path`:return{source:{type:`document`,fileId:t.file_id},providerMetadata:{type:t.type,index:t.index}};default:return{source:{type:`unknown`},providerMetadata:t}}}function Qr(e){return W({in:e?.input_tokens??0,out:e?.output_tokens??0},{cachedIn:e?.input_tokens_details?.cached_tokens,reasoningOut:e?.output_tokens_details?.reasoning_tokens})}function $r(){let e=``,t=``,n=0,r=-1,i=!1,a=new Map,o=new Map,s=new Map,c=new Set([`web_search_call`,`file_search_call`,`code_interpreter_call`]),l=new Map;function u(u){let d=[];switch(u.type){case`response.created`:e=u.response.id||`openai-${Date.now()}`,t=u.response.model,d.push({type:`start`,id:e,data:{model:t,timestamp:Date.now()}});break;case`response.output_text.delta`:{let e=ei(u.item_id,u.content_index);r===-1&&(r=n++,a.set(e,r),d.push({type:`text-start`,data:{index:r}})),d.push({type:`text-delta`,data:{text:u.delta,index:r}});break}case`response.output_text.done`:{let e=ei(u.item_id,u.content_index);a.set(e,r),r>=0&&(d.push({type:`text-complete`,data:{index:r}}),r=-1);break}case`response.output_text.annotation.added`:{let e=ti(u.annotation);if(!e)break;let t=a.get(ei(u.item_id,u.content_index));t===void 0&&console.warn(`[OpenAI] received text annotation without a resolved text part; falling back to current part`,{itemId:u.item_id,contentIndex:u.content_index}),d.push({type:`text-citation`,data:{index:t??r,citation:e}});break}case`response.function_call_arguments.delta`:{let e=u.item_id;if(!l.has(e)){let t=o.get(e),r=t?.name||``,i=t?.callId||e,a=n++;l.set(e,{id:e,callId:i,name:r,argumentsBuffer:``,partIdx:a}),d.push({type:`tool-call-start`,data:{index:a,id:i,name:r}})}let t=l.get(e);t.argumentsBuffer+=u.delta,d.push({type:`tool-call-args-delta`,data:{index:t.partIdx,id:t.callId,name:t.name,delta:u.delta,accumulated:t.argumentsBuffer}});break}case`response.function_call_arguments.done`:{i=!0;let e=u.item_id,t=l.get(e),n=u.name||t?.name||``;if(t){try{let e=u.arguments?JSON.parse(u.arguments):{};d.push({type:`tool-call-complete`,data:{index:t.partIdx,id:t.callId,name:n,arguments:e}})}catch(e){throw Error(`Failed to parse function call arguments for ${n}: ${e instanceof Error?e.message:String(e)}\nRaw value: ${u.arguments}`)}l.delete(e)}break}case`response.completed`:{let e=u.response.usage;d.push({type:`complete`,data:{finishReason:u.response.incomplete_details?`error`:i?`function_call`:`stop`,usage:W({in:e?.input_tokens||0,out:e?.output_tokens||0},{cachedIn:e?.input_tokens_details?.cached_tokens,reasoningOut:e?.output_tokens_details?.reasoning_tokens})}});break}case`response.failed`:d.push({type:`error`,data:{type:`RESPONSES_API_ERROR`,message:`Response failed: ${u.response.status}`,raw:u}});break;case`response.output_item.added`:if(u.item?.type===`reasoning`){let e=u.item;r=n++,d.push({type:`thinking-start`,data:{index:r,id:e.id,...e.encrypted_content?{continuity:{provider:`openai`,encrypted:e.encrypted_content}}:{}}})}else if(u.item?.type===`function_call`){let e=u.item,t=e.id||e.call_id;t&&o.set(t,{name:e.name||``,callId:e.call_id||t})}else if(u.item&&c.has(u.item.type)){let e=u.item,t=n++;s.set(e.id,t),d.push({type:`provider-tool-start`,data:{index:t,id:e.id,name:e.type}})}break;case`response.output_item.done`:if(u.item?.type===`reasoning`&&r>=0)d.push({type:`thinking-complete`,data:{index:r}}),r=-1;else if(u.item&&c.has(u.item.type)){let e=u.item,t=s.get(e.id);t!==void 0&&(d.push({type:`provider-tool-complete`,data:{index:t,id:e.id,name:e.type,output:u.item}}),s.delete(e.id))}break;case`response.reasoning_text.delta`:u.delta&&d.push({type:`thinking-delta`,data:{index:r,text:u.delta}});break;case`response.reasoning_summary_text.delta`:u.delta&&d.push({type:`thinking-summary-delta`,data:{index:r,text:u.delta}});break;case`response.in_progress`:case`response.content_part.added`:case`response.content_part.done`:case`response.reasoning_summary_part.added`:case`response.reasoning_summary_part.done`:case`response.reasoning_summary_text.done`:case`response.reasoning_text.done`:case`response.web_search_call.in_progress`:case`response.web_search_call.searching`:case`response.web_search_call.completed`:break;default:console.log(`[OpenAI] unhandled stream event: ${u.type}`)}return d}return{handleEvent:u}}function ei(e,t){return`${e}:${t}`}function ti(e){if(!e||typeof e!=`object`)return null;let t=e;switch(t.type){case`url_citation`:return{source:{type:`web`,title:t.title,url:t.url},outputSpan:{start:t.start_index,end:t.end_index},providerMetadata:{type:t.type}};case`file_citation`:return{source:{type:`document`,title:t.filename,fileId:t.file_id},providerMetadata:{type:t.type,index:t.index}};case`container_file_citation`:return{source:{type:`document`,title:t.filename,fileId:t.file_id},outputSpan:{start:t.start_index,end:t.end_index},providerMetadata:{type:t.type,containerId:t.container_id}};case`file_path`:return{source:{type:`document`,fileId:t.file_id},providerMetadata:{type:t.type,index:t.index}};default:return{source:{type:`unknown`},providerMetadata:t}}}async function*ni(e){let{client:t,model:n,messages:r,system:i,tools:a,providerTools:o,runtime:s,signal:c,reasoning:l,maxOutputTokens:u,temperature:d,topP:f,stop:p,toolChoice:m,parallelToolCalls:h,providerOptions:g}=e,_=s?.span;if(p!==void 0)throw Error(`OpenAI Responses does not support normalized stop sequences`);let v=[...Mr(a)??[],...Ir(o)??[]],y=$r();try{let e={model:n,input:await zr(r,{model:n,fileResolver:s?.fileResolver,signal:c}),...i&&{instructions:i},stream:!0,...v.length>0?{tools:v}:{},...Rr(l),...u===void 0?{}:{max_output_tokens:u},...d===void 0?{}:{temperature:d},...f===void 0?{}:{top_p:f},...Lr(m,a,o),...h===void 0?{}:{parallel_tool_calls:h},...g};_?.debug(`OpenAI ResponsesAPI streaming request`,{request:Z(e)});let p=t.responses.stream(e,...c?[{signal:c}]:[]);for await(let e of p){let t=y.handleEvent(e);for(let e of t)yield e}}catch(e){if(c?.aborted)return;_?.error(e instanceof Error?e.message:String(e)),yield{type:`error`,data:{type:`STREAMING_ERROR`,message:e instanceof Error?e.message:String(e),raw:e}}}}function ri(e,t={}){let n=new w({apiKey:e,maxRetries:Y(t.maxRetries??2,`maxRetries`,{min:0}),...t.timeoutMs===void 0?{}:{timeout:Y(t.timeoutMs,`timeoutMs`,{min:1})}});return{name:`OpenAI`,resolveProviderToolName(e){return Fr(e)},async createGenerationRequest(e,t){return await Jr({client:n,model:e,...t})},createStreamingRequest(e,t){return ni({client:n,model:e,...t})}}}const ii={Models:a,DefaultModel:o};function ai(e){return{kind:`agent`,name:e.name,description:e.description,schema:e.schema,async execute(t,n){let r=await e.createAgent(t,n),i=oi(e.prompt,t),a=r.on(e=>n.emit({type:`turn-event`,event:e})),o;try{o=await r.send(i,{...e.request,signal:n.signal}).final}catch(t){throw si(t,e.name)}finally{a()}if(o.usage&&n.reportUsage?.(o.usage),!o.ok)throw Error(`Subagent failed: ${JSON.stringify(o.error)}`);let s=o.response;return typeof s==`string`?s:JSON.stringify(s)}}}function oi(e,t){return typeof e==`function`?e(t):typeof e==`string`?e:`Complete this delegated task. Input: ${JSON.stringify(t)}`}function si(e,t){return e instanceof P?new P(e.message,{toolName:t,usage:e.usage,cause:e}):e instanceof M?new M(e.message,{reason:e.reason,usage:e.usage}):e}const ci=new TextEncoder;function li(e,t={}){let n=t.maxItems??50,r=Math.max(1,t.maxConcurrency??8),i=Math.max(0,t.maxResultBytes??20971520),a=u.object({items:u.array(e.schema).min(1).max(n).describe(`Inputs to run through ${e.name}. Results are returned in the same order.`)});return{...e.kind?{kind:e.kind}:{},name:t.name??`${e.name}_batch`,description:t.description??`Run ${e.name} for multiple inputs concurrently and return ordered per-item results.`,schema:a,async execute(t,n){return ui(await _i(t.items,r,n.signal,async(t,r)=>{try{return{index:r,input:t,ok:!0,output:await e.execute(t,n)}}catch(e){if(e instanceof P||e instanceof M)throw e;return{index:r,input:t,ok:!1,error:{type:`execution`,message:e instanceof Error?e.message:String(e)}}}}),i)}}}function ui(e,t){let n=[],r=t;for(let i of e){let e=i.ok?{index:i.index,ok:!0}:{index:i.index,ok:!1,error:i.error},a=`<<result ${JSON.stringify(e)}>>\n`,o=pi({type:`text`,text:a});if(o>r){di(n,mi({result:i,reason:`header`,attemptedBytes:o,remainingBytes:r,maxBytes:t}),1/0);continue}if(di(n,a,r),r-=o,!i.ok||i.output==null)continue;let s=fi(i.output);if(s>r){di(n,mi({result:i,reason:`output`,attemptedBytes:s,remainingBytes:r,maxBytes:t}),1/0);continue}if(typeof i.output==`string`){di(n,i.output,r),r-=pi(n[n.length-1]);continue}for(let e of i.output)n.push(e),r-=pi(e)}return n}function di(e,t,n){return ci.encode(t).length>n?!1:(e.push({type:`text`,text:t}),!0)}function fi(e){return typeof e==`string`?pi({type:`text`,text:e}):e.reduce((e,t)=>e+pi(t),0)}function pi(e){if(e.type===`text`)return ci.encode(e.text).length;let t=e.file.source;switch(t.type){case`text`:return ci.encode(t.content).length;case`base64`:return ci.encode(t.data).length;case`url`:return ci.encode(t.url).length;case`ref`:return e.file.size??ci.encode(`${e.file.name}:${e.file.mimeType}`).length}}function mi({result:e,reason:t,attemptedBytes:n,remainingBytes:r,maxBytes:i}){return`<<result ${e.index} omitted: ${t} ${hi(n)} exceeds remaining budget ${hi(r)} of ${hi(i)}; input ${gi(e.input)}>>`}function hi(e){return e===1?`1 byte`:`${e} bytes`}function gi(e){try{return JSON.stringify(e)}catch{return String(e)}}async function _i(e,t,n,r){let i=Array(e.length),a=0,o=!1,s=Math.max(1,Math.min(t,e.length));return await Promise.all(Array.from({length:s},async()=>{for(;!o&&a<e.length;){if(n.aborted)throw o=!0,new M(`Operation aborted`,{reason:n.reason});let t=a++;try{i[t]=await r(e[t],t)}catch(e){throw o=!0,e}}})),i}const vi={trace:0,debug:1,info:2,warn:3,error:4};var yi=class{minLevel;showInternal;showTimestamp;showDuration;markdown;output;spans=new Map;visibleDepths=new Map;constructor(e={}){this.minLevel=e.minLevel??`info`,this.showInternal=e.showInternal??!1,this.showTimestamp=e.showTimestamp??!0,this.showDuration=e.showDuration??!0,this.markdown=e.markdown??!1,this.output=e.output??console.log}shouldShowEvent(e){return vi[e]>=vi[this.minLevel]}isSpanVisible(e){return!(e.type===`internal`&&!this.showInternal)}findVisibleAncestor(e){let t=e.parentSpanId;for(;t;){let e=this.spans.get(t);if(!e)break;if(this.isSpanVisible(e))return e;t=e.parentSpanId}return null}calculateVisibleDepth(e){if(!this.isSpanVisible(e))return-1;let t=this.findVisibleAncestor(e);return t?(this.visibleDepths.get(t.spanId)??0)+1:0}formatTimestamp(){if(!this.showTimestamp)return``;let e=new Date;return`[${e.toTimeString().slice(0,8)}.${e.getMilliseconds().toString().padStart(3,`0`)}] `}formatDuration(e){if(!this.showDuration||!e.endTime)return``;let t=e.endTime-e.startTime;return t<1e3?` (${Math.round(t)}ms)`:` (${(t/1e3).toFixed(2)}s)`}formatIndent(e){return` `.repeat(e)}formatSpanName(e){return e.type?`[${e.type}] ${e.name}`:e.name}renderMarkdown(e){return bi(e).trimEnd()}onSpanStart(e){if(this.spans.set(e.spanId,e),!this.isSpanVisible(e))return;let t=this.calculateVisibleDepth(e);this.visibleDepths.set(e.spanId,t);let n=this.formatIndent(t),r=this.formatTimestamp(),i=this.formatSpanName(e);this.output(`${r}${n}START ${i}`)}onSpanEnd(e){if(this.spans.set(e.spanId,e),!this.isSpanVisible(e))return;let t=this.visibleDepths.get(e.spanId)??0,n=this.formatIndent(t),r=this.formatTimestamp(),i=this.formatDuration(e),a=this.formatSpanName(e),o=e.status===`error`?` [ERROR]`:``;if(this.output(`${r}${n}END ${a}${i}${o}`),e.result?.kind===`llm`){let t=e.result,i=[`model=${t.model}`];if(t.finishReason&&i.push(`finishReason=${t.finishReason}`),t.usage&&(t.usage.inputTokens!==void 0&&i.push(`inputTokens=${t.usage.inputTokens}`),t.usage.outputTokens!==void 0&&i.push(`outputTokens=${t.usage.outputTokens}`),t.usage.cachedInputTokens!==void 0&&i.push(`cachedInputTokens=${t.usage.cachedInputTokens}`),t.usage.cacheWriteInputTokens!==void 0&&i.push(`cacheWriteInputTokens=${t.usage.cacheWriteInputTokens}`),t.usage.reasoningOutputTokens!==void 0&&i.push(`reasoningOutputTokens=${t.usage.reasoningOutputTokens}`)),this.output(`${r}${n} INFO LLM complete ${i.join(` `)}`),this.shouldShowEvent(`debug`)&&t.response.content){let e=(typeof t.response.content==`string`?t.response.content:JSON.stringify(t.response.content,null,2)).split(`
|
|
17
|
-
`);for(let t of e)this.output(`${r}${n} DEBUG ${t}`)}}}onSpanUpdate(e){this.spans.set(e.spanId,e)}onEvent(e,t){if(!this.shouldShowEvent(t.level))return;this.spans.set(e.spanId,e);let n;if(this.isSpanVisible(e))n=this.visibleDepths.get(e.spanId)??0;else{let t=this.findVisibleAncestor(e);n=t?this.visibleDepths.get(t.spanId)??0:0}let r=this.formatIndent(n+1),i=this.formatTimestamp(),a=t.level.toUpperCase().padEnd(5),o=this.markdown&&t.attributes?.markdown===!0,s=t.attributes?Object.entries(t.attributes).filter(([e])=>e!==`markdown`):[],c=t.name;o&&(c=this.renderMarkdown(c));let l=`${i}${r}${a} ${c}`;if(s.length>0){let e=s.map(([e,t])=>`${e}=${JSON.stringify(t)}`).join(` `);l+=` ${e}`}this.output(l)}};function
|
|
18
|
-
`)}function
|
|
19
|
-
`;case`html`:return e.text;default:return`tokens`in e&&e.tokens?$(e.tokens):e.raw}}function
|
|
20
|
-
`)}function
|
|
21
|
-
`)}function
|
|
12
|
+
`,[,r]=R(this.schema);for(let[e,t]of pe(this.schema))n+=`\n- ${e}: ${t}`;return n+=`\n\nExample:\n${JSON.stringify(r,null,2)}\n\n`,n+t}};function St(e){let t=Math.max(0,...Array.from(e.matchAll(/`+/g),e=>e[0].length));return"`".repeat(Math.max(3,t+1))}var Ct=class e extends w{constructor(t,n){super(t,{code:`TASK_ERROR`,id:n?.id,details:{taskType:n?.taskType,taskIndex:n?.taskIndex,...n?.details},cause:n?.cause}),Object.setPrototypeOf(this,e.prototype)}};function q(e,t,n={}){if(!Number.isInteger(e))throw Error(`${t} must be an integer`);if(n.min!==void 0&&e<n.min)throw Error(`${t} must be an integer greater than or equal to ${n.min}`);return e}function wt(e){if(e==null)return{type:`error`,error:{type:`Undetermined`,message:`Unknown error occurred`},usage:{in:0,out:0},raw:e};if(e instanceof Error)return{type:`error`,error:{type:e.name||`Error`,message:e.message||`Unexpected error`},usage:{in:0,out:0},raw:e};if(typeof e==`object`){let t=e,n=t?.error?.error?.type||t?.error?.type||t?.type||t?.code||t?.status||`Undetermined`,r=t?.error?.error?.message||t?.error?.message||t?.message||t?.error||`Unexpected error`;return{type:`error`,error:{type:String(n),message:String(r)},usage:{in:0,out:0},raw:e}}return{type:`error`,error:{type:`Undetermined`,message:String(e)},usage:{in:0,out:0},raw:e}}function J(e,t){let n=e.indexOf(`/`);if(n===-1)return e;let r=e.slice(0,n).toLowerCase(),i=e.slice(n+1);if(!t.includes(r))throw Error(`Model ${JSON.stringify(e)} is not available from ${t[0]}`);if(!i)throw Error(`Model ${JSON.stringify(e)} is missing a model ID`);return i}function Y(e,t=`Operation aborted`){if(e?.aborted)throw new E(t,{reason:e.reason})}function Tt(e,t,n=`Operation aborted`){return t?t.aborted?Promise.reject(new E(n,{reason:t.reason})):new Promise((r,i)=>{let a=()=>{t.removeEventListener(`abort`,a),i(new E(n,{reason:t.reason}))};t.addEventListener(`abort`,a,{once:!0}),e.then(e=>{t.removeEventListener(`abort`,a),r(e)},e=>{t.removeEventListener(`abort`,a),i(e)})}):e}function Et(e,t,n=`[redacted]`){return Dt(e,null,t,n)}function Dt(e,t,n,r){if(typeof e!=`object`||!e)return typeof e==`string`&&t&&n.has(t)?r:e;if(Array.isArray(e))return e.map(e=>Dt(e,t,n,r));let i={};for(let[t,a]of Object.entries(e))i[t]=Dt(a,t,n,r);return i}const Ot=new Set([`data`,`file_data`,`file_url`,`image_url`,`url`,`uri`,`fileUri`]);function X(e){return Et(e,Ot,`[redacted-file-value]`)}function kt(e){return Array.isArray(e)?e:[e]}const At=20*1024*1024;async function Z(e,t){if(t.signal?.aborted)throw new DOMException(`File resolution aborted`,`AbortError`);let{source:n}=e;if(n.type===`base64`)return jt({type:`base64`,data:n.data},e,t);if(n.type===`text`)return jt({type:`text`,content:n.content},e,t);if(n.type===`url`)return jt({type:`url`,url:n.url},e,t);if(!t.resolver)throw Error(`No fileResolver configured for deferred file: ${e.name}`);return jt(await t.resolver({file:e,ref:n.ref,provider:t.provider,model:t.model,accepted:t.accepted,signal:t.signal}),e,t)}function jt(e,t,n){if(n.accepted.includes(e.type))return{...e,mimeType:e.mimeType??t.mimeType,name:e.name??t.name};throw Error(`File source '${e.type}' is not supported for ${n.provider} ${t.kind} file '${t.name}'. Accepted: ${n.accepted.join(`, `)}`)}const Mt=new Set([`application/json`,`application/xml`,`application/yaml`,`application/x-yaml`,`application/toml`]);function Nt(e){return e.startsWith(`text/`)||Mt.has(e)}function Pt(e){let t=l.getType(e);if(!t){let t=p(e).toLowerCase();throw Error(`Unsupported file type: ${t||`(no extension)`}`)}if(t.startsWith(`image/`))return{kind:`image`,mimeType:t};if(t===`application/pdf`)return{kind:`document`,mimeType:t};if(Nt(t))return{kind:`text`,mimeType:t};{let n=p(e).toLowerCase();throw Error(`Unsupported file type: ${n} (${t})`)}}async function Ft(e,t){let n=m(e);try{await u(n)}catch{throw Error(`File not found: ${e}`)}let r=await f(n);if(r.size>At)throw Error(`File too large: ${r.size} bytes. Maximum allowed: ${At} bytes`);let i=n.split(`/`).pop()||``,a=Pt(n);if((t||(a.kind===`text`?`utf-8`:`base64`))===`utf-8`){if(a.kind!==`text`)throw Error(`Cannot read ${a.kind} file as text: ${e}`);let t=await d(n,`utf-8`);return{kind:`text`,mimeType:a.mimeType,size:r.size,name:i,source:{type:`text`,content:t}}}else{if(a.kind===`text`)throw Error(`Cannot read text file as binary: ${e}`);let t=(await d(n)).toString(`base64`);return{kind:a.kind,mimeType:a.mimeType,size:r.size,name:i,source:{type:`base64`,data:t}}}}async function It(e,t={model:``}){return Promise.all(e.map(e=>Lt(e,t)))}async function Lt(e,t){if(e.role===`assistant`){let t=[];for(let n of e.content)if(n.type===`text`)t.push({type:`text`,text:n.text});else if(n.type===`thinking`){let e=n.continuity?.provider===`anthropic`?n.continuity:void 0;n.redacted?t.push({type:`redacted_thinking`,data:e?.redactedData??n.text??``}):e?.signature&&t.push({type:`thinking`,thinking:n.text??``,signature:e.signature})}else n.type===`tool-call`?t.push({type:`tool_use`,id:n.id,name:n.name,input:n.parameters}):n.type===`provider-tool`&&(t.push({type:`server_tool_use`,id:n.id,name:n.name,input:n.input??{}}),n.output!=null&&t.push({type:`web_search_tool_result`,tool_use_id:n.id,content:n.output}));return{role:`assistant`,content:t}}if(e.role===`tool`)return{role:`user`,content:await Promise.all(e.content.map(async e=>({type:`tool_result`,tool_use_id:e.id,content:typeof e.content==`string`?e.content:await $t(e.content,t),...e.isError?{is_error:!0}:{}})))};if(typeof e.content==`string`)return{role:`user`,content:e.content};{let n=[];for(let r of e.content)r.type===`text`?n.push({type:`text`,text:r.text}):r.type===`file`&&n.push(await Rt(r.file,t,`user-message`));return{role:`user`,content:n}}}async function Rt(e,t,n){if(e.kind===`image`)return{type:`image`,source:Bt(await Z(e,{provider:`anthropic`,model:t.model,accepted:[`url`,`base64`],purpose:n,resolver:t.fileResolver,signal:t.signal}),e)};if(e.kind===`document`){if(e.mimeType!==`application/pdf`)throw Error(`Anthropic only supports PDF document files. Received ${e.mimeType}`);let r=await Z(e,{provider:`anthropic`,model:t.model,accepted:[`url`,`base64`],purpose:n,resolver:t.fileResolver,signal:t.signal});return{type:`document`,source:Vt(r),title:r.name??e.name,citations:{enabled:!0}}}let r=await Z(e,{provider:`anthropic`,model:t.model,accepted:[`text`],purpose:n,resolver:t.fileResolver,signal:t.signal});if(r.type!==`text`)throw Error(`Unsupported Anthropic text source: ${r.type}`);return n===`tool-result`?{type:`text`,text:r.content}:{type:`document`,source:{type:`text`,media_type:`text/plain`,data:r.content},title:r.name??e.name,citations:{enabled:!0}}}function zt(e){if(e===`image/jpeg`||e===`image/png`||e===`image/gif`||e===`image/webp`)return e;throw Error(`Anthropic does not support image MIME type: ${e}. Supported types: image/jpeg, image/png, image/gif, image/webp.`)}function Bt(e,t){if(e.type===`url`)return{type:`url`,url:e.url};if(e.type===`base64`)return{type:`base64`,media_type:zt(e.mimeType??t.mimeType),data:e.data};throw Error(`Unsupported Anthropic image source: ${e.type}`)}function Vt(e){if(e.type===`url`)return{type:`url`,url:e.url};if(e.type===`base64`)return{type:`base64`,media_type:`application/pdf`,data:e.data};throw Error(`Unsupported Anthropic PDF source: ${e.type}`)}function Ht(e,t=``){return e===!0?Ut(t)?{thinking:{type:`adaptive`},output_config:{effort:`high`}}:{thinking:{type:`enabled`,budget_tokens:8192}}:{}}function Ut(e){let t=e.toLowerCase().match(/claude-(opus|sonnet)-(\d+)-(\d+)/);if(!t)return!1;let[,n,r,i]=t,a=Number(r),o=Number(i);return!Number.isFinite(a)||!Number.isFinite(o)?!1:n===`opus`||n===`sonnet`?a>4||a===4&&o>=6:!1}function Wt(e){return e.map(e=>{let t=r.toJSONSchema(e.schema);if(!Qt(t))throw Error(`Schema for tool ${e.name} must be an object type`);return{name:e.name,description:e.description,input_schema:t}})}const Gt={web_search:`web_search_20250305`};function Kt(e){return Gt[e]??e}function qt(e){return(e??[]).map(e=>({type:e.nativeName??Kt(e.name),name:e.name,...e.config}))}function Jt(e,t,n,r){if(e===void 0&&t!==!1)return{};let i=t===!1?{disable_parallel_tool_use:!0}:{};if(e===void 0||e===`auto`)return{tool_choice:{type:`auto`,...i}};if(e===`required`)return{tool_choice:{type:`any`,...i}};if(e===`none`)return{tool_choice:{type:`none`}};if(!(n?.some(t=>t.name===e.name)||r?.some(t=>t.name===e.name)))throw Error(`Tool choice references an unavailable tool: ${e.name}`);return{tool_choice:{type:`tool`,name:e.name,...i}}}function Yt(e){let t=[];for(let n of e)if(n.type===`text`){let e=n.citations?.map(Xt);t.push({type:`text`,text:n.text,...e&&e.length>0?{citations:e}:{}})}else if(n.type===`thinking`){let e=n.thinking.length===0&&!!n.signature;t.push({type:`thinking`,...n.thinking?{text:n.thinking}:{},redacted:e,continuity:{provider:`anthropic`,signature:n.signature}})}else if(n.type===`redacted_thinking`)t.push({type:`thinking`,redacted:!0,continuity:{provider:`anthropic`,redactedData:n.data}});else if(n.type===`tool_use`){if(typeof n.input!=`object`||n.input===null||Array.isArray(n.input))throw Error(`Invalid tool call input for ${n.name}: expected object, got ${typeof n.input}`);t.push({type:`tool-call`,id:n.id,name:n.name,parameters:n.input})}return t}function Xt(e){switch(e.type){case`char_location`:return{source:{type:`document`,title:e.document_title??void 0,fileId:e.file_id??void 0,citedText:e.cited_text,locator:{type:`char`,start:e.start_char_index,end:e.end_char_index}},providerMetadata:{type:e.type,documentIndex:e.document_index}};case`page_location`:return{source:{type:`document`,title:e.document_title??void 0,fileId:e.file_id??void 0,citedText:e.cited_text,locator:{type:`page`,start:e.start_page_number,end:e.end_page_number}},providerMetadata:{type:e.type,documentIndex:e.document_index}};case`content_block_location`:return{source:{type:`document`,title:e.document_title??void 0,fileId:e.file_id??void 0,citedText:e.cited_text,locator:{type:`block`,start:e.start_block_index,end:e.end_block_index}},providerMetadata:{type:e.type,documentIndex:e.document_index}};case`web_search_result_location`:return{source:{type:`web`,title:e.title??void 0,url:e.url,citedText:e.cited_text},providerMetadata:{type:e.type,encryptedIndex:e.encrypted_index}};case`search_result_location`:return{source:{type:`search-result`,title:e.title??void 0,url:e.source,citedText:e.cited_text,locator:{type:`block`,start:e.start_block_index,end:e.end_block_index}},providerMetadata:{type:e.type,searchResultIndex:e.search_result_index}}}}function Zt(e){switch(e){case`max_tokens`:return`length`;case`end_turn`:return`stop`;case`stop_sequence`:return`stop`;case`tool_use`:return`function_call`;default:return`error`}}function Qt(e){return e&&typeof e==`object`&&e.type===`object`}async function $t(e,t){return Promise.all(e.map(async e=>e.type===`text`?{type:`text`,text:e.text}:Rt(e.file,t,`tool-result`)))}async function en(e){let{client:t,model:n,messages:r,system:i,tools:a,providerTools:o,runtime:s,reasoning:c,maxOutputTokens:l,temperature:u,topP:d,stop:f,toolChoice:p,parallelToolCalls:m,providerOptions:h,signal:g}=e,_=s?.span,v;try{Y(g,`Generate aborted`);let e=await It(r,{model:n,fileResolver:s?.fileResolver,signal:g}),y={model:n,max_tokens:l??16e3,messages:e,...i&&{system:i},...f&&{stop_sequences:kt(f)},...(a||o)&&{tools:[...a?Wt(a):[],...qt(o)]},...Ht(c,n),...u===void 0?{}:{temperature:u},...d===void 0?{}:{top_p:d},...Jt(p,m,a,o),...h};_?.debug(`Anthropic request`,{request:X(y)});let b=await Tt(t.messages.create(y,...g?[{signal:g}]:[]),g,`Generate aborted`);Y(g,`Generate aborted`),v=tn(b)}catch(e){Y(g,`Generate aborted`),v=wt(e)}return _?.debug(`Anthropic response`,{result:v}),v}function tn(e){let t=Zt(e.stop_reason);if(t===`error`)return{type:`error`,error:{type:`Uncaught error`,message:`Stop reason is not recognized or unhandled: ${e.stop_reason}`},usage:rn(e.usage),raw:e};if(t===`function_call`){let t=Yt(e.content);return{type:`success`,id:e.id,model:e.model,role:e.role,finishReason:`function_call`,content:t,text:j(t),usage:rn(e.usage),raw:e}}if(e.type==`message`){let n=Yt(e.content);return{type:`success`,id:e.id,model:e.model,role:`assistant`,finishReason:t,content:n,text:j(n),usage:rn(e.usage),raw:e}}return{type:`error`,error:{type:`InvalidResponse`,message:`Unsupported completion type: ${e.type}`},usage:rn(e.usage),raw:e}}function nn(e){return e.input_tokens+(e.cache_creation_input_tokens??0)+(e.cache_read_input_tokens??0)}function rn(e){return H({in:nn(e),out:e.output_tokens},{cachedIn:e.cache_read_input_tokens??void 0,cacheWriteIn:e.cache_creation_input_tokens??void 0})}function an(){let e=new Map,t=new Map,n=0,r=0,i=0,a=0,o=new Map;function s(s){let c=[];switch(s.type){case`message_start`:n=(s.message.usage?.input_tokens??0)+(s.message.usage?.cache_creation_input_tokens??0)+(s.message.usage?.cache_read_input_tokens??0),a=s.message.usage?.cache_creation_input_tokens??0,i=s.message.usage?.cache_read_input_tokens??0,c.push({type:`start`,id:s.message.id,data:{model:s.message.model,timestamp:Date.now()}});break;case`message_delta`:s.usage&&(r=s.usage.output_tokens??r,s.usage.input_tokens!=null&&(n=s.usage.input_tokens+(s.usage.cache_creation_input_tokens??a)+(s.usage.cache_read_input_tokens??i)),a=s.usage.cache_creation_input_tokens??a,i=s.usage.cache_read_input_tokens??i),s.delta.stop_reason&&c.push({type:`complete`,data:{finishReason:Zt(s.delta.stop_reason),usage:H({in:n,out:r},{cachedIn:i,cacheWriteIn:a})}});case`message_stop`:break;case`content_block_start`:if(s.content_block.type===`text`)e.set(s.index,`text`),c.push({type:`text-start`,data:{index:s.index}});else if(s.content_block.type===`tool_use`){e.set(s.index,`tool`);let t=s.content_block;o.set(s.index,{id:t.id,name:t.name,argumentsBuffer:``}),c.push({type:`tool-call-start`,data:{index:s.index,id:t.id,name:t.name}})}else if(s.content_block.type===`thinking`){e.set(s.index,`thinking`);let t=s.content_block.thinking.length===0&&!!s.content_block.signature;c.push({type:`thinking-start`,data:{index:s.index,redacted:t,continuity:{provider:`anthropic`,signature:s.content_block.signature}}})}else if(s.content_block.type===`redacted_thinking`)e.set(s.index,`thinking`),c.push({type:`thinking-start`,data:{index:s.index,redacted:!0,continuity:{provider:`anthropic`,redactedData:s.content_block.data}}});else if(s.content_block.type===`server_tool_use`){e.set(s.index,`provider-tool`);let n=s.content_block;t.set(n.id,{index:s.index,name:n.name}),c.push({type:`provider-tool-start`,data:{index:s.index,id:n.id,name:n.name}})}else if(s.content_block.type===`web_search_tool_result`){let e=s.content_block,n=t.get(e.tool_use_id);n&&(c.push({type:`provider-tool-complete`,data:{index:n.index,id:e.tool_use_id,name:n.name,output:e.content}}),t.delete(e.tool_use_id))}break;case`content_block_delta`:if(s.delta.type===`text_delta`)c.push({type:`text-delta`,data:{text:s.delta.text,index:s.index}});else if(s.delta.type===`input_json_delta`){let e=o.get(s.index);e&&(e.argumentsBuffer+=s.delta.partial_json,c.push({type:`tool-call-args-delta`,data:{index:s.index,id:e.id,name:e.name,delta:s.delta.partial_json,accumulated:e.argumentsBuffer}}))}else s.delta.type===`thinking_delta`?c.push({type:`thinking-delta`,data:{text:s.delta.thinking,index:s.index}}):s.delta.type===`signature_delta`?c.push({type:`thinking-metadata`,data:{index:s.index,continuity:{provider:`anthropic`,signature:s.delta.signature}}}):s.delta.type===`citations_delta`&&(e.get(s.index)!==`text`&&console.warn(`[Anthropic] received citation delta outside a text block`,{index:s.index,blockType:e.get(s.index)}),c.push({type:`text-citation`,data:{index:s.index,citation:Xt(s.delta.citation)}}));break;case`content_block_stop`:{let t=e.get(s.index);if(t===`text`)c.push({type:`text-complete`,data:{index:s.index}});else if(t===`thinking`)c.push({type:`thinking-complete`,data:{index:s.index}});else if(t!==`provider-tool`&&t===`tool`){let e=o.get(s.index);if(e){try{let t=e.argumentsBuffer?JSON.parse(e.argumentsBuffer):{};c.push({type:`tool-call-complete`,data:{index:s.index,id:e.id,name:e.name,arguments:t}})}catch(t){throw Error(`Failed to parse tool call arguments for ${e.name}: ${t instanceof Error?t.message:String(t)}\nRaw buffer: ${ne(e.argumentsBuffer)}`)}o.delete(s.index)}}e.delete(s.index);break}}return c}return{handleEvent:s}}async function*on(e){let{client:t,model:n,messages:r,system:i,tools:a,providerTools:o,runtime:s,signal:c,reasoning:l,maxOutputTokens:u,temperature:d,topP:f,stop:p,toolChoice:m,parallelToolCalls:h,providerOptions:g}=e,_=s?.span,v=[...a?Wt(a):[],...qt(o)],y=an();try{let e=await It(r,{model:n,fileResolver:s?.fileResolver,signal:c}),b={model:n,max_tokens:u??sn(n),messages:e,...i&&{system:i},...p&&{stop_sequences:kt(p)},...v.length>0&&{tools:v},...Ht(l,n),...d===void 0?{}:{temperature:d},...f===void 0?{}:{top_p:f},...Jt(m,h,a,o),...g};_?.debug(`Anthropic streaming request`,{request:X(b)});let x=await t.messages.create({...b,stream:!0},{signal:c});for await(let e of x){let t=y.handleEvent(e);for(let e of t)yield e}}catch(e){if(c?.aborted)return;yield{type:`error`,data:{type:`STREAMING_ERROR`,message:e instanceof Error?e.message:String(e),raw:e}}}}function sn(e){let n=t[e]?.maxOutputTokens;return n===void 0?e.includes(`opus`)?e.match(/opus-4-[6-9]|opus-[5-9]/)?128e3:64e3:e.includes(`sonnet`)||e.includes(`haiku`)?e.match(/claude-3-[0-5]-/)?8192:64e3:16384:n}function cn(e,t={}){let n=new c({apiKey:e,maxRetries:q(t.maxRetries??2,`maxRetries`,{min:0}),...t.timeoutMs===void 0?{}:{timeout:q(t.timeoutMs,`timeoutMs`,{min:1})}});return{name:`anthropic`,resolveProviderToolName(e){return Kt(e)},async createGenerationRequest(e,t){return await en({client:n,model:J(e,[`anthropic`]),...t})},createStreamingRequest(e,t){return on({client:n,model:J(e,[`anthropic`]),...t})}}}async function ln(e,t={}){let n=q(t.maxRetries??2,`maxRetries`,{min:0}),r=t.timeoutMs===void 0?void 0:q(t.timeoutMs,`timeoutMs`,{min:1}),i=0;for(;;){Y(t.signal,`Request aborted`);let a=un(t.signal,r);try{let r=await Tt(e({signal:a.signal}),a.signal,`Request aborted`);if(!dn(r.status)||i>=n)return r;let o=fn(r,i);t.onRetry?.({attempt:i+1,delayMs:o,status:r.status}),await mn(o,t.signal),i+=1}catch(e){if(Y(t.signal,`Request aborted`),i>=n)throw e;let r=fn(void 0,i);t.onRetry?.({attempt:i+1,delayMs:r,error:e}),await mn(r,t.signal),i+=1}finally{a.cleanup()}}}function un(e,t){if(t===void 0)return{signal:e,cleanup:()=>{}};let n=new AbortController,r=setTimeout(()=>{n.abort(new DOMException(`Request timed out after ${t}ms`,`TimeoutError`))},t),i=()=>{n.abort(e?.reason)};return e?.aborted?i():e?.addEventListener(`abort`,i,{once:!0}),{signal:n.signal,cleanup:()=>{clearTimeout(r),e?.removeEventListener(`abort`,i)}}}function dn(e){return e===408||e===409||e===429||e>=500}function fn(e,t){let n=pn(e);if(n!==void 0)return n;let r=Math.min(500*2**t,8e3);return r+Math.floor(Math.random()*r*.25)}function pn(e){let t=e?.headers.get(`retry-after-ms`);if(t){let e=Number.parseFloat(t);if(Number.isFinite(e)&&e>=0)return e}let n=e?.headers.get(`retry-after`);if(!n)return;let r=Number.parseFloat(n);if(Number.isFinite(r)&&r>=0)return r*1e3;let i=Date.parse(n);if(Number.isFinite(i))return Math.max(i-Date.now(),0)}async function mn(e,t){if(e<=0){Y(t,`Request aborted`);return}await new Promise((n,r)=>{let i,a=()=>{clearTimeout(i),t?.removeEventListener(`abort`,o)},o=()=>{a(),r(new DOMException(`Request aborted`,`AbortError`))},s=()=>{a(),n()};if(t?.aborted){o();return}i=setTimeout(s,e),t?.addEventListener(`abort`,o,{once:!0})}),Y(t,`Request aborted`)}const hn={"minimax/MiniMax-M2.7":`minimax/minimax-m2.7`,"minimax/MiniMax-M3":`minimax/minimax-m3`,"zai/glm-5.1":`z-ai/glm-5.1`,"zai/glm-5.2":`z-ai/glm-5.2`},gn={web_search:`openrouter:web_search`};function _n(e){return gn[e]}function vn(e){return hn[e]??e}function yn(e,t){let n=[];for(let r of e){let e=r.nativeName??_n(r.name);if(!e){t?.(`providerTool not supported by ChatCompletions provider vendor`,{vendor:`openrouter`,name:r.name});continue}n.push({type:e,...r.config?{parameters:r.config}:{}})}return n.length>0?n:void 0}function bn(e){switch(e.type){case`url_citation`:{let t=e.url_citation;return t?.url?{source:{type:`web`,title:t.title,url:t.url,citedText:t.content},outputSpan:{start:t.start_index,end:t.end_index},providerMetadata:{type:e.type}}:null}default:return null}}function xn(e){let t=e.outputSpan;return!t||t.start===void 0&&t.end===void 0?!1:t.start!==0||t.end!==0}function Sn(e){return e===!0?{reasoning:{enabled:!0}}:e===!1?{reasoning:{enabled:!1}}:{}}function Cn(e){if(e.kind===`document`)throw Error(`Together Chat Completions does not support PDF file parts`)}function wn(e,t){switch(t){case`openrouter`:return _n(e);default:return}}function Tn(e,t){switch(t){case`openrouter`:return vn(e);default:return e}}async function En(e,t,n={model:``}){let r=(await Promise.all(e.map(e=>Pn(e,n)))).flat(1);return t?[{role:`system`,content:t},...r]:r}function Dn(e,t){return t===`together`?Sn(e):On(e)}function On(e){return e===!0?{reasoning_effort:`high`}:e===!1?{reasoning_effort:`none`}:{}}function kn(e){return H({in:e?.prompt_tokens||0,out:e?.completion_tokens||0},{cachedIn:e?.prompt_tokens_details?.cached_tokens??e?.input_tokens_details?.cached_tokens,cacheWriteIn:e?.prompt_tokens_details?.cache_write_tokens??e?.prompt_tokens_details?.cache_creation_tokens??e?.input_tokens_details?.cache_write_tokens??e?.input_tokens_details?.cache_creation_tokens,reasoningOut:e?.completion_tokens_details?.reasoning_tokens??e?.output_tokens_details?.reasoning_tokens})}function An(e){if(e&&e.length>0)return e.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:r.toJSONSchema(e.schema)}}))}function jn(e,t,n){if(!(!e||e.length===0)){if(!t){n?.(`providerTools not supported by ChatCompletions provider`);return}switch(t){case`openrouter`:return yn(e,n)}}}function Mn(e,t,n){if(e===void 0)return{};if(e===`auto`||e===`none`||e===`required`)return{tool_choice:e};if(t?.some(t=>t.name===e.name))return{tool_choice:{type:`function`,function:{name:e.name}}};throw n?.some(t=>t.name===e.name)?Error(`ChatCompletions does not support provider tool choice: ${e.name}`):Error(`Tool choice references an unavailable tool: ${e.name}`)}function Nn(e){switch(e){case`stop`:return`stop`;case`length`:return`length`;case`tool_calls`:case`function_call`:return`function_call`;case`content_filter`:case`error`:return`error`;default:return`stop`}}async function Pn(e,t){switch(e.role){case`tool`:return Fn(e,t);case`assistant`:return In(e);default:return Ln(e,t)}}async function Fn(e,t){return Promise.all(e.content.map(async e=>({role:`tool`,content:typeof e.content==`string`?e.content:await zn(e.content,t),tool_call_id:e.id})))}function In(e){let t=e.content.filter(e=>e.type===`tool-call`),n=e.content.filter(e=>e.type===`text`),r=t.length>0?t.map(e=>({type:`function`,id:e.id,function:{name:e.name,arguments:JSON.stringify(e.parameters)}})):void 0;return{role:`assistant`,content:n.map(e=>e.text).join(``),...r&&{tool_calls:r}}}async function Ln(e,t){if(typeof e.content==`string`)return{role:`user`,content:e.content};let n=(await Promise.all(e.content.map(e=>Rn(e,t)))).filter(e=>e!==null);return n.every(e=>e.type===`text`)?{role:`user`,content:n.map(e=>e.text).join(``)}:{role:`user`,content:n}}async function Rn(e,t){return e.type===`text`?{type:`text`,text:e.text}:e.type===`file`?Bn(e.file,t,`user-message`):null}async function zn(e,t){let n=[];for(let r of e){if(r.type===`text`){n.push(r.text);continue}if(r.file.kind===`text`){let e=await Z(r.file,{provider:`chatcompletions`,model:t.model,accepted:[`text`],purpose:`tool-result`,resolver:t.fileResolver,signal:t.signal});if(e.type!==`text`)throw Error(`Unsupported ChatCompletions text source: ${e.type}`);n.push(Un(r.file,e.content,e.name,e.mimeType));continue}t.warn?.(`ChatCompletions omitted unsupported tool-result file`,{model:t.model,kind:r.file.kind,name:r.file.name,mimeType:r.file.mimeType}),n.push(Wn(r.file))}return n.join(`
|
|
13
|
+
`)}async function Bn(e,t,n){if(t.vendor===`together`&&Cn(e),e.kind===`text`){let r=await Z(e,{provider:`chatcompletions`,model:t.model,accepted:[`text`],purpose:n,resolver:t.fileResolver,signal:t.signal});if(r.type!==`text`)throw Error(`Unsupported ChatCompletions text source: ${r.type}`);return{type:`text`,text:Un(e,r.content,r.name,r.mimeType)}}if(e.kind===`document`){if(e.mimeType!==`application/pdf`)throw Error(`ChatCompletions document file inputs currently support PDF only. Received ${e.mimeType}`);let r=await Z(e,{provider:`chatcompletions`,model:t.model,accepted:[`url`,`base64`],purpose:n,resolver:t.fileResolver,signal:t.signal});return{type:`file`,file:{filename:r.name??e.name,file_data:Hn(r,e)}}}return{type:`image_url`,image_url:{url:Vn(await Z(e,{provider:`chatcompletions`,model:t.model,accepted:[`url`,`base64`],purpose:n,resolver:t.fileResolver,signal:t.signal}),e)}}}function Vn(e,t){if(e.type===`url`)return e.url;if(e.type===`base64`)return`data:${e.mimeType??t.mimeType};base64,${e.data}`;throw Error(`Unsupported ChatCompletions image source: ${e.type}`)}function Hn(e,t){if(e.type===`url`)return e.url;if(e.type===`base64`)return`data:${e.mimeType??t.mimeType};base64,${e.data}`;throw Error(`Unsupported ChatCompletions file source: ${e.type}`)}function Un(e,t,n,r){return`File: ${n??e.name}\nMIME type: ${r??e.mimeType}\n\n${t}`}function Wn(e){return[`Tool result attachment unavailable.`,`File: ${e.name}`,`MIME type: ${e.mimeType}`,``,`This tool returned a file of kind "${e.kind}", but Chat Completions tool-result messages support text only. The file content was not included. Continue without the file or ask for it to be attached in a user message.`].join(`
|
|
14
|
+
`)}async function Gn(e){let{baseUrl:t,model:n,messages:r,system:i,tools:a,providerTools:o,runtime:s,apiKey:c,vendor:l,maxRetries:u,timeoutMs:d,reasoning:f,maxOutputTokens:p,temperature:m,topP:h,stop:g,toolChoice:_,parallelToolCalls:v,providerOptions:y,signal:b}=e,x=s?.span,S;try{Y(b,`Generate aborted`);let e=await En(r,i,{model:n,vendor:l,fileResolver:s?.fileResolver,signal:b,warn:x?.warn.bind(x)}),C=An(a),w=jn(o,l,x?.warn.bind(x)),T=[...C??[],...w??[]],E={model:n,messages:e,...T.length>0?{tools:T}:{},...Dn(f,l),...p===void 0?{}:{max_tokens:p},...m===void 0?{}:{temperature:m},...h===void 0?{}:{top_p:h},...g===void 0?{}:{stop:g},...Mn(_,a,o),...v===void 0?{}:{parallel_tool_calls:v},...y};x?.debug(`ChatCompletions request`,{model:E.model,messages:E.messages.length,tools:E.tools?.length??0}),x?.trace(`ChatCompletions request body`,{request:X(E)});let D={"Content-Type":`application/json`};c&&(D.Authorization=`Bearer ${c}`);let O=await ln(({signal:e})=>fetch(`${t}/chat/completions`,{method:`POST`,headers:D,body:JSON.stringify(E),signal:e}),{maxRetries:u,timeoutMs:d,signal:b,onRetry:e=>x?.warn(`ChatCompletions request retry`,{attempt:e.attempt,maxRetries:u,timeoutMs:d,delayMs:e.delayMs,status:e.status,error:e.error instanceof Error?e.error.message:void 0})});if(!O.ok){let e=await O.text().catch(()=>``);throw Error(`HTTP error! status: ${O.status}${e?` - ${e}`:``}`)}let k=await Tt(O.json(),b,`Generate aborted`);Y(b,`Generate aborted`),S=Kn(k)}catch(e){Y(b,`Generate aborted`),x?.error(`Error fetching ChatCompletions response`,{error:e instanceof Error?e.message:String(e)}),S=wt(e)}return x?.trace(`ChatCompletions response`,{result:S}),S}function Kn(e){let t=e.choices?.[0];if(!t)return{type:`error`,error:{type:`ChatCompletionsError`,message:`No choices in response`},usage:{in:0,out:0},raw:e};let n=[],r=t.message.reasoning_content??t.message.reasoning;r&&n.push({type:`thinking`,text:r});let i=(t.message.annotations??[]).map(bn).filter(e=>e!==null),a=i.filter(xn),o=i.filter(e=>!xn(e));if(t.message.content&&n.push({type:`text`,text:t.message.content,...a.length>0?{citations:a}:{}}),o.length>0&&n.push({type:`citation`,citations:o}),t.message.tool_calls)for(let e of t.message.tool_calls){let t;try{t=JSON.parse(e.function.arguments)}catch(t){throw Error(`Invalid tool call arguments for ${e.function.name}: ${t instanceof Error?t.message:String(t)}`)}if(typeof t!=`object`||!t||Array.isArray(t))throw Error(`Invalid tool call arguments for ${e.function.name}: expected object, got ${typeof t}`);n.push({type:`tool-call`,id:e.id,name:e.function.name,parameters:t})}let s=n.some(e=>e.type===`tool-call`)?Nn(`tool_calls`):Nn(t.finish_reason);return{type:`success`,id:e.id,model:e.model,role:`assistant`,finishReason:s,content:n,text:j(n),usage:kn(e.usage),raw:e}}function qn(){let e=new Map,t=0,n=-1,r=``,i=``,a=null,o,s;function c(e){n<0||(a===`text`?e.push({type:`text-complete`,data:{index:n}}):a===`thinking`&&e.push({type:`thinking-complete`,data:{index:n}}),a=null,n=-1)}function l(l){let u=[];l.usage&&(s=kn(l.usage));let d=l.choices?.[0];if(!d)return u;r||(r=l.id,i=l.model,u.push({type:`start`,id:r,data:{model:i,timestamp:Date.now()}}));let f=d.delta,p=f.reasoning_content??f.reasoning;if(p&&(a!==`thinking`&&(c(u),n=t++,a=`thinking`,u.push({type:`thinking-start`,data:{index:n}})),u.push({type:`thinking-delta`,data:{index:n,text:p}})),f.content&&(a!==`text`&&(c(u),n=t++,a=`text`,u.push({type:`text-start`,data:{index:n}})),u.push({type:`text-delta`,data:{text:f.content,index:n}})),f.annotations){let e=f.annotations.map(bn).filter(e=>e!==null),r=a===`text`?e.filter(xn):[];for(let e of r)u.push({type:`text-citation`,data:{index:n,citation:e}});let i=e.filter(e=>!r.includes(e));i.length>0&&(c(u),u.push({type:`citation`,data:{index:t++,citations:i}}))}if(f.tool_calls){c(u);for(let n of f.tool_calls){let r=n.index;if(!e.has(r)){let i=t++,a=n.id||`tool-${i}`;e.set(r,{id:a,name:n.function?.name||``,argumentsBuffer:``,partIdx:i}),u.push({type:`tool-call-start`,data:{index:i,id:a,name:n.function?.name||``}})}let i=e.get(r);n.id&&(i.id=n.id),n.function?.name&&(i.name=n.function.name),n.function?.arguments&&(i.argumentsBuffer+=n.function.arguments,u.push({type:`tool-call-args-delta`,data:{index:i.partIdx,id:i.id,name:i.name,delta:n.function.arguments,accumulated:i.argumentsBuffer}}))}}if(d.finish_reason&&o===void 0){c(u);for(let[,t]of e)try{let e=t.argumentsBuffer?JSON.parse(t.argumentsBuffer):{};u.push({type:`tool-call-complete`,data:{index:t.partIdx,id:t.id,name:t.name,arguments:e}})}catch(e){let n=e instanceof Error?e.message:String(e);u.push({type:`tool-call-complete`,data:{index:t.partIdx,id:t.id,name:t.name,arguments:{},error:{type:`invalid-arguments`,message:`Failed to parse tool call arguments for ${t.name}: ${n}`,raw:ne(t.argumentsBuffer)}}})}e.clear(),o=Nn(d.finish_reason)}return u}function u(){return o===void 0?e.size===0?[]:[{type:`error`,data:{type:`IncompleteStream`,message:`Stream ended without a completion signal while tool call arguments were still buffering for ${[...e.values()].map(e=>`${e.name||`unknown tool`} (${e.id})`).join(`, `)}; arguments were likely truncated or incomplete.`}}]:[{type:`complete`,data:{finishReason:o,usage:s??{in:0,out:0}}}]}return{handleChunk:l,finalize:u}}async function*Jn(e){let{baseUrl:t,model:n,messages:r,system:i,tools:a,providerTools:o,runtime:s,signal:c,apiKey:l,vendor:u,maxRetries:d,timeoutMs:f,reasoning:p,maxOutputTokens:m,temperature:h,topP:g,stop:_,toolChoice:v,parallelToolCalls:y,providerOptions:b}=e,x=s?.span,S=qn();try{let e=await En(r,i,{model:n,vendor:u,fileResolver:s?.fileResolver,signal:c,warn:x?.warn.bind(x)}),C=An(a),w=jn(o,u,x?.warn.bind(x)),T=[...C??[],...w??[]],E={model:n,messages:e,stream:!0,stream_options:{include_usage:!0},...T.length>0?{tools:T}:{},...Dn(p,u),...m===void 0?{}:{max_tokens:m},...h===void 0?{}:{temperature:h},...g===void 0?{}:{top_p:g},..._===void 0?{}:{stop:_},...Mn(v,a,o),...y===void 0?{}:{parallel_tool_calls:y},...b};x?.debug(`ChatCompletions request`,{model:E.model,messages:E.messages.length,tools:E.tools?.length??0,stream:!0}),x?.trace(`ChatCompletions request body`,{request:X(E)});let D={"Content-Type":`application/json`};l&&(D.Authorization=`Bearer ${l}`);let O=await ln(({signal:e})=>fetch(`${t}/chat/completions`,{method:`POST`,headers:D,body:JSON.stringify(E),signal:e}),{maxRetries:d,timeoutMs:f,signal:c,onRetry:e=>x?.warn(`ChatCompletions streaming request retry`,{attempt:e.attempt,maxRetries:d,timeoutMs:f,delayMs:e.delayMs,status:e.status,error:e.error instanceof Error?e.error.message:void 0})});if(!O.ok){let e=await O.text().catch(()=>``);throw Error(`HTTP error! status: ${O.status}${e?` - ${e}`:``}`)}if(!O.body)throw Error(`Response body is null`);let k=O.body.getReader(),A=new TextDecoder,j=``;for(;;){let{done:e,value:t}=await k.read();if(e)break;j+=A.decode(t,{stream:!0});let n=j.split(`
|
|
15
|
+
`);j=n.pop()||``;for(let e of n){let t=e.trim();if(!t||t.startsWith(`:`)||!t.startsWith(`data: `))continue;let n=t.slice(6);if(n===`[DONE]`)continue;let r;try{r=JSON.parse(n)}catch(e){x?.error(`Error parsing ChatCompletions stream chunk`,{error:e instanceof Error?e.message:String(e),line:t});continue}if(r.error){let e=Yn(r.error);yield{type:`error`,data:{type:e.type,message:e.message,raw:r.error}};return}let i=S.handleChunk(r);for(let e of i)yield e}}for(let e of S.finalize())yield e}catch(e){if(c?.aborted)return;x?.error(`Error in ChatCompletions streaming request`,{error:e instanceof Error?e.message:String(e)}),yield{type:`error`,data:{type:`STREAMING_ERROR`,message:e instanceof Error?e.message:String(e),raw:e}}}}function Yn(e){if(typeof e==`string`)return{type:`UPSTREAM_STREAM_ERROR`,message:e};let t=e.type??(e.code===void 0?void 0:String(e.code))??`UPSTREAM_STREAM_ERROR`;return{type:t,message:e.message??t}}const Xn={"api.openrouter.ai":`openrouter`,"api.together.ai":`together`,"api.together.xyz":`together`,"openrouter.ai":`openrouter`};function Zn(e,t,n){let r=typeof t==`string`?t:t?.apiKey,i=typeof t==`string`?n:t,a=q(i?.maxRetries??2,`maxRetries`,{min:0}),o=i?.timeoutMs===void 0?void 0:q(i.timeoutMs,`timeoutMs`,{min:1}),s=i?.vendor??Qn(e);return{name:`ChatCompletions`,resolveProviderToolName(e){return wn(e,s)},async createGenerationRequest(t,n){return await Gn({baseUrl:e,model:Tn(t,s),apiKey:r,maxRetries:a,timeoutMs:o,vendor:s,...n})},createStreamingRequest(t,n){return Jn({baseUrl:e,model:Tn(t,s),apiKey:r,maxRetries:a,timeoutMs:o,vendor:s,...n})}}}function Qn(e){try{return Xn[new URL(e).hostname.toLowerCase()]}catch{return}}function $n(e,t,n){let i={};return t&&(i.systemInstruction=t),e&&e.length>0&&(i.tools=e.map(e=>({functionDeclarations:[{name:e.name,description:e.description,parametersJsonSchema:r.toJSONSchema(e.schema)}]}))),n&&Object.assign(i,n),i}const er={web_search:`googleSearch`,code_execution:`codeExecution`};function tr(e){return er[e]??e}function nr(e,t){if(!(!t||t.length===0)){e.tools||=[];for(let n of t){let t=n.nativeName??tr(n.name);e.tools.push({[t]:n.config??{}})}}}function rr(e,t,n,r){if(t===!1)throw Error(`Gemini does not support disabling parallel tool calls`);if(e===void 0)return{};if(e===`auto`)return{toolConfig:{functionCallingConfig:{mode:g.AUTO}}};if(e===`none`)return{toolConfig:{functionCallingConfig:{mode:g.NONE}}};if(e===`required`){if(!n||n.length===0)throw Error(`Gemini requires function tools for required tool choice`);return{toolConfig:{functionCallingConfig:{mode:g.ANY}}}}if(n?.some(t=>t.name===e.name))return{toolConfig:{functionCallingConfig:{mode:g.ANY,allowedFunctionNames:[e.name]}}};throw r?.some(t=>t.name===e.name)?Error(`Gemini does not support provider tool choice: ${e.name}`):Error(`Tool choice references an unavailable tool: ${e.name}`)}function ir(e){return e===!0?{thinkingConfig:{thinkingBudget:8192,includeThoughts:!0}}:e===!1?{thinkingConfig:{thinkingBudget:0}}:{}}async function ar(e,t={model:``}){return(await Promise.all(e.map(e=>or(e,t)))).filter(e=>e!==void 0)}async function or(e,t){switch(e.role){case`tool`:return sr(e,t);case`assistant`:return cr(e);case`user`:return lr(e,t)}}async function sr(e,t){return{role:`user`,parts:(await Promise.all(e.content.map(async e=>{let n=typeof e.content==`string`?e.content:e.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
16
|
+
`),r={functionResponse:{id:e.id??void 0,name:e.name,response:{output:n}}};return typeof e.content==`string`?[r]:[r,...await Promise.all(e.content.filter(e=>e.type===`file`).map(e=>dr(e.file,t,`tool-result`)))]}))).flat(1)}}function cr(e){let t=[],n=e.content.filter(e=>e.type===`text`);if(n.length>0)for(let e of n){let n=e.text;if(!n)continue;let r={text:n};e.providerMetadata?.thoughtSignature&&(r.thoughtSignature=e.providerMetadata.thoughtSignature),t.push(r)}let r=e.content.filter(e=>e.type===`tool-call`);return r.length>0&&t.push(...r.map(e=>{let t={functionCall:{id:e.id??void 0,name:e.name,args:e.parameters}};return e.providerMetadata?.thoughtSignature&&(t.thoughtSignature=e.providerMetadata.thoughtSignature),t})),{role:`model`,parts:t}}async function lr(e,t){return typeof e.content==`string`?{role:`user`,parts:[{text:e.content}]}:{role:`user`,parts:(await Promise.all(e.content.map(e=>ur(e,t)))).filter(e=>e!==null)}}async function ur(e,t){return e.type===`text`?{text:e.text}:e.type===`file`?dr(e.file,t,`user-message`):null}async function dr(e,t,n){if(e.kind===`text`){let r=await Z(e,{provider:`gemini`,model:t.model,accepted:[`text`],purpose:n,resolver:t.fileResolver,signal:t.signal});if(r.type!==`text`)throw Error(`Unsupported Gemini text source: ${r.type}`);return{text:pr(e,r.content,r.name,r.mimeType)}}if(e.kind===`document`&&e.mimeType!==`application/pdf`)throw Error(`Gemini document file support is limited to PDFs. Received ${e.mimeType}`);return fr(await Z(e,{provider:`gemini`,model:t.model,accepted:[`gemini-file-uri`,`url`,`base64`],purpose:n,resolver:t.fileResolver,signal:t.signal}),e)}function fr(e,t){if(e.type===`base64`)return{inlineData:{mimeType:e.mimeType??t.mimeType,data:e.data}};if(e.type===`url`)return{fileData:{mimeType:e.mimeType??t.mimeType,fileUri:e.url}};if(e.type===`gemini-file-uri`)return{fileData:{mimeType:e.mimeType??t.mimeType,fileUri:e.uri}};throw Error(`Unsupported Gemini file source: ${e.type}`)}function pr(e,t,n,r){return`File: ${n??e.name}\nMIME type: ${r??e.mimeType}\n\n${t}`}function mr(e){switch(e){case h.STOP:return[!0,`stop`];case h.MAX_TOKENS:return[!0,`length`];case h.FINISH_REASON_UNSPECIFIED:case h.SAFETY:case h.RECITATION:case h.LANGUAGE:case h.OTHER:case h.BLOCKLIST:case h.PROHIBITED_CONTENT:case h.SPII:case h.MALFORMED_FUNCTION_CALL:case h.IMAGE_SAFETY:return[!1,`error`]}return[!1,`error`]}async function hr(e){let{client:t,model:n,messages:r,system:i,tools:a,providerTools:o,runtime:s,reasoning:c,maxOutputTokens:l,temperature:u,topP:d,stop:f,toolChoice:p,parallelToolCalls:m,providerOptions:h,signal:g}=e,_=s?.span,v={...ir(c),...l===void 0?{}:{maxOutputTokens:l},...u===void 0?{}:{temperature:u},...d===void 0?{}:{topP:d},...f===void 0?{}:{stopSequences:Array.isArray(f)?f:[f]},...rr(p,m,a,o),...h},y;try{Y(g,`Generate aborted`);let e=await ar(r,{model:n,fileResolver:s?.fileResolver,signal:g}),c=$n(a,i,v);p!==`none`&&nr(c,o);let l={contents:e,config:c};_?.debug(`Gemini request`,{request:X(l)});let u=await Tt(t.models.generateContent({model:n,...l}),g,`Generate aborted`);Y(g,`Generate aborted`),y=gr(u,{span:_})}catch(e){Y(g,`Generate aborted`),_?.error(e instanceof Error?e.message:String(e)),y=wt(e)}return _?.debug(`Gemini response`,{result:y}),y}function gr(e,t){let{span:n}=t,r=e.usageMetadata?.promptTokenCount??0,i=H({in:r,out:(e.usageMetadata?.totalTokenCount??r)-r},{cachedIn:e.usageMetadata?.cachedContentTokenCount,reasoningOut:e.usageMetadata?.thoughtsTokenCount});if(!e)return{type:`error`,error:{type:`InvalidResponse`,message:`Invalid or empty response from Google AI`},usage:{in:0,out:0},raw:e};if(e.promptFeedback&&e.promptFeedback.blockReason)return{type:`error`,error:{type:`Blocked`,message:`Response blocked by Google AI: ${e.promptFeedback.blockReason}, ${e.promptFeedback.blockReasonMessage}`},usage:i,raw:e};if(!e.candidates||e.candidates.length===0)return{type:`error`,error:{type:`InvalidResponse`,message:`Invalid or empty response from Google AI`},usage:{in:0,out:0},raw:e};e.candidates.length>1&&n?.warn(`We received ${e.candidates.length} response candidates`);let a=e.candidates[0],o=a.content?.parts||[],[s,c]=mr(a.finishReason);if(s){let t=[];for(let e=0;e<o.length;e++){let n=o[e];if(n.text)if(n.thought)t.push({type:`thinking`,summary:n.text,...n.thoughtSignature?{continuity:{provider:`gemini`,thoughtSignature:n.thoughtSignature}}:{}});else{let r=vr(a,e);_r(t,{type:`text`,text:n.text,...r.length>0?{citations:r}:{},...n.thoughtSignature?{providerMetadata:{thoughtSignature:n.thoughtSignature}}:{}})}}let n=o.filter(e=>e.functionCall),r=n.length>0?n.map(e=>({call:e.functionCall,thoughtSignature:e.thoughtSignature})):(e.functionCalls??[]).map(e=>({call:e,thoughtSignature:void 0}));if(r.length>0)for(let{call:e,thoughtSignature:n}of r)if(e.args==null)t.push({type:`tool-call`,id:e.id??``,name:e.name??``,parameters:{},...n?{providerMetadata:{thoughtSignature:n}}:{}});else if(typeof e.args!=`object`||Array.isArray(e.args))throw Error(`Invalid tool call arguments for ${e.name}: expected object, got ${typeof e.args}`);else t.push({type:`tool-call`,id:e.id??``,name:e.name??``,parameters:e.args,...n?{providerMetadata:{thoughtSignature:n}}:{}});return{type:`success`,id:e.responseId??``,model:e.modelVersion??``,role:`assistant`,finishReason:r.length>0?`function_call`:c,content:t,text:j(t),usage:i,raw:e}}else return{type:`error`,error:{type:`Undetermined`,message:`Unexpected stop reason: ${c}`},usage:i,raw:e}}function _r(e,t){let n=e[e.length-1];if(n?.type===`text`&&!n.citations?.length&&!n.providerMetadata&&!t.citations?.length&&!t.providerMetadata){n.text+=t.text;return}e.push(t)}function vr(e,t){let n=[],r=e.groundingMetadata,i=r?.groundingChunks??[];for(let e of r?.groundingSupports??[])if(!(e.segment?.partIndex!==void 0&&e.segment.partIndex!==t))for(let t of e.groundingChunkIndices??[]){let r=i[t];r&&n.push(yr(r,e))}for(let t of e.citationMetadata?.citations??[])n.push({source:t.uri?{type:`web`,title:t.title,url:t.uri}:{type:`unknown`},outputSpan:{start:t.startIndex,end:t.endIndex},providerMetadata:{license:t.license,publicationDate:t.publicationDate}});return n}function yr(e,t){let n=t.segment;return e.web?{source:{type:`web`,title:e.web.title,url:e.web.uri},outputSpan:{start:n?.startIndex,end:n?.endIndex},providerMetadata:{outputText:n?.text,confidenceScores:t.confidenceScores}}:e.retrievedContext?{source:{type:`retrieved-context`,title:e.retrievedContext.title,uri:e.retrievedContext.uri,citedText:e.retrievedContext.text,locator:{type:`page`,start:e.retrievedContext.pageNumber,end:e.retrievedContext.pageNumber}},outputSpan:{start:n?.startIndex,end:n?.endIndex},providerMetadata:{documentName:e.retrievedContext.documentName,outputText:n?.text,confidenceScores:t.confidenceScores}}:e.maps?{source:{type:`web`,title:e.maps.title,url:e.maps.uri,citedText:e.maps.text},outputSpan:{start:n?.startIndex,end:n?.endIndex},providerMetadata:{placeId:e.maps.placeId,outputText:n?.text,confidenceScores:t.confidenceScores}}:{source:{type:`unknown`},outputSpan:{start:n?.startIndex,end:n?.endIndex},providerMetadata:{chunk:e,outputText:n?.text,confidenceScores:t.confidenceScores}}}function br(){let e=0,t=-1,n=!1,r=``,i=``,a=0,o=0,s=0,c=0,l=null,u=new Map;function d(e){t<0||(l===`text`?e.push({type:`text-complete`,data:{index:t}}):l===`thinking`&&e.push({type:`thinking-complete`,data:{index:t}}),l=null,t=-1)}function f(f){let p=[];r||(r=f.responseId||`gemini-${Date.now()}`,i=f.modelVersion||`gemini`,p.push({type:`start`,id:r,data:{model:i,timestamp:Date.now()}})),f.usageMetadata&&(a=f.usageMetadata.promptTokenCount||0,o=(f.usageMetadata.totalTokenCount||0)-a,s=f.usageMetadata.cachedContentTokenCount||0,c=f.usageMetadata.thoughtsTokenCount||0);let m=f.candidates?.[0];if(!m)return p;let g=m.content?.parts||[];for(let r=0;r<g.length;r++){let i=g[r],a=`thought`in i&&i.thought===!0,o=Object.keys(i),s=o.length===1&&`text`in i&&!i.text;if(!(`thoughtSignature`in i&&!i.text&&!i.functionCall||o.length===2&&`text`in i&&`thoughtSignature`in i&&!i.text||s)&&(a&&i.text?(l!==`thinking`&&(d(p),t=e++,l=`thinking`,p.push({type:`thinking-start`,data:{index:t,...i.thoughtSignature?{continuity:{provider:`gemini`,thoughtSignature:i.thoughtSignature}}:{}}})),p.push({type:`thinking-summary-delta`,data:{index:t,text:i.text}})):i.text&&!a?(l!==`text`&&(d(p),t=e++,l=`text`,p.push({type:`text-start`,data:{index:t}})),u.set(r,t),p.push({type:`text-delta`,data:{text:i.text,index:t}})):i.functionCall||console.log(`[gemini] unhandled part type: ${JSON.stringify(Object.keys(i))}`),i.functionCall)){d(p),n=!0;let t=e++,r=i.functionCall.id||`tool-${t}`,a=i.functionCall.name??``;p.push({type:`tool-call-start`,data:{index:t,id:r,name:a}});let o=i.functionCall.args??{},s=JSON.stringify(o);p.push({type:`tool-call-args-delta`,data:{index:t,id:r,name:a,delta:s,accumulated:s}});let c={index:t,id:r,name:a,arguments:o},l=i;l.thoughtSignature&&(c.providerMetadata={thoughtSignature:l.thoughtSignature}),p.push({type:`tool-call-complete`,data:c})}}for(let{partIndex:e,citation:n}of xr(m)){let r=e===void 0?t:u.get(e);if(r===void 0||r<0){console.warn(`[Gemini] received citation without a resolvable text part`,{citation:n});continue}p.push({type:`text-citation`,data:{index:r,citation:n}})}if(m.finishReason&&m.finishReason!==h.FINISH_REASON_UNSPECIFIED){d(p);let[e,t]=mr(m.finishReason),r=n?`function_call`:t;!e&&!n?p.push({type:`error`,data:{type:`FinishReasonError`,message:`Unexpected finish reason: ${m.finishReason}`,usage:H({in:a,out:o},{cachedIn:s,reasoningOut:c}),raw:f}}):p.push({type:`complete`,data:{finishReason:r,usage:H({in:a,out:o},{cachedIn:s,reasoningOut:c})}})}return p}return{handleChunk:f}}function xr(e){let t=[],n=e.groundingMetadata,r=n?.groundingChunks??[];for(let e of n?.groundingSupports??[])for(let n of e.groundingChunkIndices??[]){let i=r[n];i&&t.push({partIndex:e.segment?.partIndex,citation:Sr(i,e)})}for(let n of e.citationMetadata?.citations??[])t.push({citation:{source:n.uri?{type:`web`,title:n.title,url:n.uri}:{type:`unknown`},outputSpan:{start:n.startIndex,end:n.endIndex},providerMetadata:{license:n.license,publicationDate:n.publicationDate}}});return t}function Sr(e,t){let n=t.segment;return e.web?{source:{type:`web`,title:e.web.title,url:e.web.uri},outputSpan:{start:n?.startIndex,end:n?.endIndex},providerMetadata:{outputText:n?.text,confidenceScores:t.confidenceScores}}:e.retrievedContext?{source:{type:`retrieved-context`,title:e.retrievedContext.title,uri:e.retrievedContext.uri,citedText:e.retrievedContext.text,locator:{type:`page`,start:e.retrievedContext.pageNumber,end:e.retrievedContext.pageNumber}},outputSpan:{start:n?.startIndex,end:n?.endIndex},providerMetadata:{documentName:e.retrievedContext.documentName,outputText:n?.text,confidenceScores:t.confidenceScores}}:{source:{type:`unknown`},outputSpan:{start:n?.startIndex,end:n?.endIndex},providerMetadata:{chunk:e,outputText:n?.text,confidenceScores:t.confidenceScores}}}async function*Cr(e){let{client:t,model:n,messages:r,system:i,tools:a,providerTools:o,runtime:s,signal:c,reasoning:l,maxOutputTokens:u,temperature:d,topP:f,stop:p,toolChoice:m,parallelToolCalls:h,providerOptions:g}=e,_=s?.span,v=$n(a,i,{...ir(l),...u===void 0?{}:{maxOutputTokens:u},...d===void 0?{}:{temperature:d},...f===void 0?{}:{topP:f},...p===void 0?{}:{stopSequences:Array.isArray(p)?p:[p]},...rr(m,h,a,o),...g});m!==`none`&&nr(v,o);let y=br();try{let e={contents:await ar(r,{model:n,fileResolver:s?.fileResolver,signal:c}),config:v};_?.debug(`Gemini streaming request`,{request:X(e)});let i=await t.models.generateContentStream({model:n,...e});for await(let e of i){let t=y.handleChunk(e);for(let e of t)yield e}}catch(e){if(c?.aborted)return;_?.error(e instanceof Error?e.message:String(e)),yield{type:`error`,data:{type:`STREAMING_ERROR`,message:e instanceof Error?e.message:String(e),raw:e}}}}function wr(e,t={}){let n=new _({apiKey:e,httpOptions:{retryOptions:{attempts:Tr(t.maxRetries)},...t.timeoutMs===void 0?{}:{timeout:q(t.timeoutMs,`timeoutMs`,{min:1})}}});return{name:`Gemini`,resolveProviderToolName(e){return tr(e)},async createGenerationRequest(e,t){return await hr({client:n,model:J(e,[`gemini`,`google`]),...t})},createStreamingRequest(e,t){return Cr({client:n,model:J(e,[`gemini`,`google`]),...t})}}}function Tr(e=2){return q(e,`maxRetries`,{min:0})+1}async function Er(e){let{provider:t,model:n,messages:r,system:i,tools:a,providerTools:o,span:s,fileResolver:c,...l}=e;return t.createGenerationRequest(n,{messages:r,system:i,tools:a,providerTools:o,runtime:{span:s,fileResolver:c},...l})}async function Dr(e){if(De(e),`instruct`in e){let{instruct:t,messages:n,...r}=e,i=_e(t),a=await Or({...r,messages:[...n??[],i.message]},C());if(!a.ok)return a;try{return{...a,response:i.parse(a.final)}}catch(e){return{ok:!1,messages:a.messages,final:a.final,usage:a.usage,...a.stopped?{stopped:a.stopped}:{},error:{kind:`parse`,error:e,message:e instanceof Error?e.message:String(e)}}}}return Or(e,C())}async function Or(e,t){let{provider:n,model:r,messages:i,system:a,onToolCall:o,maxIterations:s,maxContextTokens:c,span:l,fileResolver:u,reasoning:d,maxOutputTokens:f,temperature:p,topP:m,stop:h,toolChoice:g,parallelToolCalls:_,providerOptions:v,signal:y=new AbortController().signal}=e,b=Ie(Fe(e),{provider:n,model:r,span:l,configuration:t}),x=[...i],S=[],C=z(),w=0,T,D=e=>{x.push(e),S.push(e)},k=e=>(l?.setResult({kind:`llm`,model:r,request:{messages:i},response:{content:e.ok?e.final.content:null},usage:xe(e.usage),finishReason:e.ok?e.final.finishReason:void 0}),l?.end(e.ok?`ok`:`error`),e),A=(e,t)=>{if(!e||t.type===`error`){e?.end(`error`);return}e.setResult({kind:`llm`,model:t.model??r,request:{messages:x},response:{content:t.content},usage:xe(t.usage),finishReason:t.finishReason}),e.end()};try{for(;;){Y(y,`Generate aborted`),w+=1;let e=l?.startSpan(`turn-${w}`,{type:`llm`}),t=b.executable(),i=t.length>0?t.map(e=>({name:e.name,description:e.description,schema:e.schema})):void 0,E=b.provider(),O;try{O=await Er({provider:n,model:r,messages:x,system:a,tools:i,providerTools:E.length>0?E:void 0,span:e,fileResolver:u,reasoning:d,maxOutputTokens:f,temperature:p,topP:m,stop:h,toolChoice:g,parallelToolCalls:_,providerOptions:v,signal:y}),Y(y,`Generate aborted`)}catch(t){throw t instanceof Error&&t.name===`AbortError`&&e?.end(`ok`),t}if(ke(C,O,{provider:n.name,model:O.type===`error`?r:O.model??r}),O.type!==`error`&&Ae(e,O.content),A(e,O),O.type===`error`)return k({ok:!1,messages:S,error:{kind:`model`,error:O,message:O.error.message},usage:C});let j={role:`assistant`,id:O.id,model:O.model,content:O.content,finishReason:O.finishReason};if(D(j),T=j,O.finishReason!==`function_call`)return k({ok:!0,response:T,messages:S,final:T,usage:C});let M=N(O.content);if(M.length===0)return k({ok:!0,response:T,messages:S,final:T,usage:C});let{results:P,usage:ee}=await Le(M,o,y,b,l);B(C,ee),Y(y,`Generate aborted`),P.length>0&&D({role:`tool`,id:crypto.randomUUID(),content:P});let te=Oe(w,O.usage,{maxIterations:s,maxContextTokens:c});if(te)return k({ok:!0,response:j,messages:S,final:j,usage:C,stopped:te})}}catch(e){throw e instanceof O?(l?.end(`error`),new O(e.message,{toolName:e.toolName,messages:e.messages??S,partial:e.partial??T,usage:V(C,e.usage),cause:e.cause})):e instanceof E?(l?.end(`ok`),new E(`Generate aborted`,{reason:e.reason,messages:e.messages??S,partial:e.partial,usage:V(C,e.usage)})):e instanceof Error&&e.name===`AbortError`?(l?.end(`ok`),new E(`Generate aborted`,{reason:y.reason,messages:S,usage:C})):e}}function kr(e){if(e&&e.length>0)return e.map(e=>{let t=r.toJSONSchema(e.schema);return{type:`function`,strict:Ar(t),name:e.name,description:e.description,parameters:t}})}function Ar(e){if(!e||typeof e!=`object`)return!0;if(Array.isArray(e))return e.every(Ar);let t=e;if(t.properties&&typeof t.properties==`object`&&!Array.isArray(t.properties)){if(t.additionalProperties!==!1)return!1;let e=Object.keys(t.properties),n=new Set(Array.isArray(t.required)?t.required:[]);if(e.some(e=>!n.has(e))||!Object.values(t.properties).every(Ar))return!1}return[`items`,`prefixItems`,`anyOf`,`oneOf`,`allOf`,`$defs`,`definitions`].every(e=>Ar(t[e]))}const jr={web_search:`web_search_preview`,code_execution:`code_interpreter`};function Mr(e){return jr[e]??e}function Nr(e){return e?.map(e=>({type:e.nativeName??Mr(e.name),...e.config}))}function Pr(e,t,n){if(e===void 0)return{};if(e===`auto`||e===`none`||e===`required`)return{tool_choice:e};if(t?.some(t=>t.name===e.name))return{tool_choice:{type:`function`,name:e.name}};let r=n?.find(t=>t.name===e.name);if(r)return{tool_choice:{type:r.nativeName??Mr(r.name)}};throw Error(`Tool choice references an unavailable tool: ${e.name}`)}function Fr(e){return e===!0?{reasoning:{effort:`high`}}:e===!1?{reasoning:{effort:`none`}}:{}}async function Ir(e,t={model:``}){return(await Promise.all(e.map(e=>Lr(e,t)))).flat(1)}async function Lr(e,t){switch(e.role){case`tool`:return Rr(e,t);case`assistant`:return zr(e);default:return Br(e,t)}}async function Rr(e,t){return Promise.all(e.content.map(async e=>({type:`function_call_output`,call_id:e.id,output:typeof e.content==`string`?e.content:await Promise.all(e.content.map(e=>e.type===`text`?Promise.resolve({type:`input_text`,text:e.text}):Hr(e.file,t,`tool-result`)))})))}function zr(e){let t=[],n=j(e.content);n&&t.push({role:e.role,content:n});let r=e.content.filter(e=>e.type===`thinking`);for(let e of r)e.continuity?.provider===`openai`&&t.push({type:`reasoning`,id:e.id,summary:e.summary?[{type:`summary_text`,text:e.summary}]:[],...e.text?{content:[{type:`reasoning_text`,text:e.text}]}:{},encrypted_content:e.continuity.encrypted});let i=e.content.filter(e=>e.type===`tool-call`);for(let e of i)t.push({type:`function_call`,call_id:e.id,name:e.name,arguments:JSON.stringify(e.parameters)});let a=e.content.filter(e=>e.type===`provider-tool`);for(let e of a)e.output!=null&&t.push(e.output);return t}async function Br(e,t){if(typeof e.content==`string`)return{role:e.role,content:e.content};{let n=(await Promise.all(e.content.map(e=>Vr(e,t)))).filter(e=>e!==null);return{role:e.role,content:n}}}async function Vr(e,t){return e.type===`text`?{type:`input_text`,text:e.text}:e.type===`file`?Hr(e.file,t,`user-message`):(e.type,null)}async function Hr(e,t,n){if(e.kind===`image`)return{type:`input_image`,image_url:Ur(await Z(e,{provider:`openai`,model:t.model,accepted:[`url`,`base64`],purpose:n,resolver:t.fileResolver,signal:t.signal}),e),detail:`auto`};if(e.kind===`document`){if(e.mimeType!==`application/pdf`)throw Error(`OpenAI file inputs currently support PDF documents. Received ${e.mimeType}`);return Wr(await Z(e,{provider:`openai`,model:t.model,accepted:[`url`,`base64`],purpose:n,resolver:t.fileResolver,signal:t.signal}),e)}let r=await Z(e,{provider:`openai`,model:t.model,accepted:[`text`,`url`,`base64`],purpose:n,resolver:t.fileResolver,signal:t.signal});return r.type===`text`?{type:`input_text`,text:r.content}:Wr(r,e)}function Ur(e,t){if(e.type===`url`)return e.url;if(e.type===`base64`)return`data:${e.mimeType??t.mimeType};base64,${e.data}`;throw Error(`Unsupported OpenAI image source: ${e.type}`)}function Wr(e,t){if(e.type===`url`)return{type:`input_file`,file_url:e.url};if(e.type===`base64`)return{type:`input_file`,filename:e.name??t.name,file_data:`data:${e.mimeType??t.mimeType};base64,${e.data}`};throw Error(`Unsupported OpenAI file source: ${e.type}`)}async function Gr(e){let{client:t,model:n,messages:r,system:i,tools:a,providerTools:o,runtime:s,reasoning:c,maxOutputTokens:l,temperature:u,topP:d,stop:f,toolChoice:p,parallelToolCalls:m,providerOptions:h,signal:g}=e,_=s?.span,v;try{if(Y(g,`Generate aborted`),f!==void 0)throw Error(`OpenAI Responses does not support normalized stop sequences`);let e=[...kr(a)??[],...Nr(o)??[]],y={model:n,input:await Ir(r,{model:n,fileResolver:s?.fileResolver,signal:g}),...i&&{instructions:i},...e.length>0?{tools:e}:{},...Fr(c),...l===void 0?{}:{max_output_tokens:l},...u===void 0?{}:{temperature:u},...d===void 0?{}:{top_p:d},...Pr(p,a,o),...m===void 0?{}:{parallel_tool_calls:m},...h};_?.debug(`OpenAI ResponsesAPI request`,{request:X(y)});let b=await Tt(t.responses.create(y,...g?[{signal:g}]:[]),g,`Generate aborted`);Y(g,`Generate aborted`),v=Kr(b)}catch(e){Y(g,`Generate aborted`),_?.error(e instanceof Error?e.message:String(e)),v=wt(e)}return _?.debug(`OpenAI ResponsesAPI response`,{result:v}),v}function Kr(e){if(e.error)return{type:`error`,error:{type:e.error.code||`undetermined`,message:e.error.message||`Response generation failed`},usage:Yr(e.usage),raw:e};let t=e.output?.filter(e=>e.type===`reasoning`)?.map(e=>e),n=[];if(t&&t.length>0)for(let e of t)(e.summary?.[0]?.text||e.content?.[0]?.text||e.encrypted_content)&&n.push({type:`thinking`,id:e.id,...e.content?.[0]?.text?{text:e.content[0].text}:{},...e.summary?.[0]?.text?{summary:e.summary[0].text}:{},...e.encrypted_content?{continuity:{provider:`openai`,encrypted:e.encrypted_content}}:{}});let r=qr(e);r.length>0?n.push(...r):e.output_text&&n.push({type:`text`,text:e.output_text});let i=e.output?.filter(e=>e.type===`function_call`);if(i&&i.length>0)for(let e of i){let t=e;try{n.push({type:`tool-call`,id:t.call_id||t.id||``,name:t.name||``,parameters:t.arguments?JSON.parse(t.arguments):{}})}catch(e){throw Error(`Failed to parse tool call arguments for ${t.name}: ${e instanceof Error?e.message:String(e)}\nRaw value: ${t.arguments}`)}}return{type:`success`,id:e.id,model:e.model||``,role:`assistant`,finishReason:e.incomplete_details?`error`:i&&i.length>0?`function_call`:`stop`,content:n,text:j(n),usage:Yr(e.usage),raw:e}}function qr(e){let t=[];for(let n of e.output??[])if(n.type===`message`)for(let e of n.content??[]){if(e.type!==`output_text`)continue;let n=(e.annotations??[]).map(Jr).filter(e=>e!==null);t.push({type:`text`,text:e.text,...n.length>0?{citations:n}:{}})}return t}function Jr(e){if(!e||typeof e!=`object`)return null;let t=e;switch(t.type){case`url_citation`:return{source:{type:`web`,title:t.title,url:t.url},outputSpan:{start:t.start_index,end:t.end_index},providerMetadata:{type:t.type}};case`file_citation`:return{source:{type:`document`,title:t.filename,fileId:t.file_id},providerMetadata:{type:t.type,index:t.index}};case`container_file_citation`:return{source:{type:`document`,title:t.filename,fileId:t.file_id},outputSpan:{start:t.start_index,end:t.end_index},providerMetadata:{type:t.type,containerId:t.container_id}};case`file_path`:return{source:{type:`document`,fileId:t.file_id},providerMetadata:{type:t.type,index:t.index}};default:return{source:{type:`unknown`},providerMetadata:t}}}function Yr(e){return H({in:e?.input_tokens??0,out:e?.output_tokens??0},{cachedIn:e?.input_tokens_details?.cached_tokens,reasoningOut:e?.output_tokens_details?.reasoning_tokens})}function Xr(){let e=``,t=``,n=0,r=-1,i=!1,a=new Map,o=new Map,s=new Map,c=new Set([`web_search_call`,`file_search_call`,`code_interpreter_call`]),l=new Map;function u(u){let d=[];switch(u.type){case`response.created`:e=u.response.id||`openai-${Date.now()}`,t=u.response.model,d.push({type:`start`,id:e,data:{model:t,timestamp:Date.now()}});break;case`response.output_text.delta`:{let e=Zr(u.item_id,u.content_index);r===-1&&(r=n++,a.set(e,r),d.push({type:`text-start`,data:{index:r}})),d.push({type:`text-delta`,data:{text:u.delta,index:r}});break}case`response.output_text.done`:{let e=Zr(u.item_id,u.content_index);a.set(e,r),r>=0&&(d.push({type:`text-complete`,data:{index:r}}),r=-1);break}case`response.output_text.annotation.added`:{let e=Qr(u.annotation);if(!e)break;let t=a.get(Zr(u.item_id,u.content_index));t===void 0&&console.warn(`[OpenAI] received text annotation without a resolved text part; falling back to current part`,{itemId:u.item_id,contentIndex:u.content_index}),d.push({type:`text-citation`,data:{index:t??r,citation:e}});break}case`response.function_call_arguments.delta`:{let e=u.item_id;if(!l.has(e)){let t=o.get(e),r=t?.name||``,i=t?.callId||e,a=n++;l.set(e,{id:e,callId:i,name:r,argumentsBuffer:``,partIdx:a}),d.push({type:`tool-call-start`,data:{index:a,id:i,name:r}})}let t=l.get(e);t.argumentsBuffer+=u.delta,d.push({type:`tool-call-args-delta`,data:{index:t.partIdx,id:t.callId,name:t.name,delta:u.delta,accumulated:t.argumentsBuffer}});break}case`response.function_call_arguments.done`:{i=!0;let e=u.item_id,t=l.get(e),n=u.name||t?.name||``;if(t){try{let e=u.arguments?JSON.parse(u.arguments):{};d.push({type:`tool-call-complete`,data:{index:t.partIdx,id:t.callId,name:n,arguments:e}})}catch(e){throw Error(`Failed to parse function call arguments for ${n}: ${e instanceof Error?e.message:String(e)}\nRaw value: ${u.arguments}`)}l.delete(e)}break}case`response.completed`:{let e=u.response.usage;d.push({type:`complete`,data:{finishReason:u.response.incomplete_details?`error`:i?`function_call`:`stop`,usage:H({in:e?.input_tokens||0,out:e?.output_tokens||0},{cachedIn:e?.input_tokens_details?.cached_tokens,reasoningOut:e?.output_tokens_details?.reasoning_tokens})}});break}case`response.failed`:d.push({type:`error`,data:{type:`RESPONSES_API_ERROR`,message:`Response failed: ${u.response.status}`,raw:u}});break;case`response.output_item.added`:if(u.item?.type===`reasoning`){let e=u.item;r=n++,d.push({type:`thinking-start`,data:{index:r,id:e.id,...e.encrypted_content?{continuity:{provider:`openai`,encrypted:e.encrypted_content}}:{}}})}else if(u.item?.type===`function_call`){let e=u.item,t=e.id||e.call_id;t&&o.set(t,{name:e.name||``,callId:e.call_id||t})}else if(u.item&&c.has(u.item.type)){let e=u.item,t=n++;s.set(e.id,t),d.push({type:`provider-tool-start`,data:{index:t,id:e.id,name:e.type}})}break;case`response.output_item.done`:if(u.item?.type===`reasoning`&&r>=0)d.push({type:`thinking-complete`,data:{index:r}}),r=-1;else if(u.item&&c.has(u.item.type)){let e=u.item,t=s.get(e.id);t!==void 0&&(d.push({type:`provider-tool-complete`,data:{index:t,id:e.id,name:e.type,output:u.item}}),s.delete(e.id))}break;case`response.reasoning_text.delta`:u.delta&&d.push({type:`thinking-delta`,data:{index:r,text:u.delta}});break;case`response.reasoning_summary_text.delta`:u.delta&&d.push({type:`thinking-summary-delta`,data:{index:r,text:u.delta}});break;case`response.in_progress`:case`response.content_part.added`:case`response.content_part.done`:case`response.reasoning_summary_part.added`:case`response.reasoning_summary_part.done`:case`response.reasoning_summary_text.done`:case`response.reasoning_text.done`:case`response.web_search_call.in_progress`:case`response.web_search_call.searching`:case`response.web_search_call.completed`:break;default:console.log(`[OpenAI] unhandled stream event: ${u.type}`)}return d}return{handleEvent:u}}function Zr(e,t){return`${e}:${t}`}function Qr(e){if(!e||typeof e!=`object`)return null;let t=e;switch(t.type){case`url_citation`:return{source:{type:`web`,title:t.title,url:t.url},outputSpan:{start:t.start_index,end:t.end_index},providerMetadata:{type:t.type}};case`file_citation`:return{source:{type:`document`,title:t.filename,fileId:t.file_id},providerMetadata:{type:t.type,index:t.index}};case`container_file_citation`:return{source:{type:`document`,title:t.filename,fileId:t.file_id},outputSpan:{start:t.start_index,end:t.end_index},providerMetadata:{type:t.type,containerId:t.container_id}};case`file_path`:return{source:{type:`document`,fileId:t.file_id},providerMetadata:{type:t.type,index:t.index}};default:return{source:{type:`unknown`},providerMetadata:t}}}async function*$r(e){let{client:t,model:n,messages:r,system:i,tools:a,providerTools:o,runtime:s,signal:c,reasoning:l,maxOutputTokens:u,temperature:d,topP:f,stop:p,toolChoice:m,parallelToolCalls:h,providerOptions:g}=e,_=s?.span;if(p!==void 0)throw Error(`OpenAI Responses does not support normalized stop sequences`);let v=[...kr(a)??[],...Nr(o)??[]],y=Xr();try{let e={model:n,input:await Ir(r,{model:n,fileResolver:s?.fileResolver,signal:c}),...i&&{instructions:i},stream:!0,...v.length>0?{tools:v}:{},...Fr(l),...u===void 0?{}:{max_output_tokens:u},...d===void 0?{}:{temperature:d},...f===void 0?{}:{top_p:f},...Pr(m,a,o),...h===void 0?{}:{parallel_tool_calls:h},...g};_?.debug(`OpenAI ResponsesAPI streaming request`,{request:X(e)});let p=t.responses.stream(e,...c?[{signal:c}]:[]);for await(let e of p){let t=y.handleEvent(e);for(let e of t)yield e}}catch(e){if(c?.aborted)return;_?.error(e instanceof Error?e.message:String(e)),yield{type:`error`,data:{type:`STREAMING_ERROR`,message:e instanceof Error?e.message:String(e),raw:e}}}}function ei(e,t={}){let n=new v({apiKey:e,maxRetries:q(t.maxRetries??2,`maxRetries`,{min:0}),...t.timeoutMs===void 0?{}:{timeout:q(t.timeoutMs,`timeoutMs`,{min:1})}});return{name:`OpenAI`,resolveProviderToolName(e){return Mr(e)},async createGenerationRequest(e,t){return await Gr({client:n,model:J(e,[`openai`]),...t})},createStreamingRequest(e,t){return $r({client:n,model:J(e,[`openai`]),...t})}}}function ti(e){return{kind:`agent`,name:e.name,description:e.description,schema:e.schema,async execute(t,n){let r=await e.createAgent(t,n),i=ni(e.prompt,t),a=r.on(e=>n.emit({type:`turn-event`,event:e})),o;try{o=await r.send(i,{...e.request,signal:n.signal}).final}catch(t){throw ri(t,e.name)}finally{a()}if(o.usage&&n.reportUsage?.(o.usage),!o.ok)throw Error(`Subagent failed: ${JSON.stringify(o.error)}`);let s=o.response;return typeof s==`string`?s:JSON.stringify(s)}}}function ni(e,t){return typeof e==`function`?e(t):typeof e==`string`?e:`Complete this delegated task. Input: ${JSON.stringify(t)}`}function ri(e,t){return e instanceof O?new O(e.message,{toolName:t,usage:e.usage,cause:e}):e instanceof E?new E(e.message,{reason:e.reason,usage:e.usage}):e}const Q=new TextEncoder;function ii(e,t={}){let n=t.maxItems??50,r=Math.max(1,t.maxConcurrency??8),a=Math.max(0,t.maxResultBytes??20971520),o=i.object({items:i.array(e.schema).min(1).max(n).describe(`Inputs to run through ${e.name}. Results are returned in the same order.`)});return{...e.kind?{kind:e.kind}:{},name:t.name??`${e.name}_batch`,description:t.description??`Run ${e.name} for multiple inputs concurrently and return ordered per-item results.`,schema:o,async execute(t,n){return ai(await fi(t.items,r,n.signal,async(t,r)=>{try{return{index:r,input:t,ok:!0,output:await e.execute(t,n)}}catch(e){if(e instanceof O||e instanceof E)throw e;return{index:r,input:t,ok:!1,error:{type:`execution`,message:e instanceof Error?e.message:String(e)}}}}),a)}}}function ai(e,t){let n=[],r=t;for(let i of e){let e=i.ok?{index:i.index,ok:!0}:{index:i.index,ok:!1,error:i.error},a=`<<result ${JSON.stringify(e)}>>\n`,o=ci({type:`text`,text:a});if(o>r){oi(n,li({result:i,reason:`header`,attemptedBytes:o,remainingBytes:r,maxBytes:t}),1/0);continue}if(oi(n,a,r),r-=o,!i.ok||i.output==null)continue;let s=si(i.output);if(s>r){oi(n,li({result:i,reason:`output`,attemptedBytes:s,remainingBytes:r,maxBytes:t}),1/0);continue}if(typeof i.output==`string`){oi(n,i.output,r),r-=ci(n[n.length-1]);continue}for(let e of i.output)n.push(e),r-=ci(e)}return n}function oi(e,t,n){return Q.encode(t).length>n?!1:(e.push({type:`text`,text:t}),!0)}function si(e){return typeof e==`string`?ci({type:`text`,text:e}):e.reduce((e,t)=>e+ci(t),0)}function ci(e){if(e.type===`text`)return Q.encode(e.text).length;let t=e.file.source;switch(t.type){case`text`:return Q.encode(t.content).length;case`base64`:return Q.encode(t.data).length;case`url`:return Q.encode(t.url).length;case`ref`:return e.file.size??Q.encode(`${e.file.name}:${e.file.mimeType}`).length}}function li({result:e,reason:t,attemptedBytes:n,remainingBytes:r,maxBytes:i}){return`<<result ${e.index} omitted: ${t} ${ui(n)} exceeds remaining budget ${ui(r)} of ${ui(i)}; input ${di(e.input)}>>`}function ui(e){return e===1?`1 byte`:`${e} bytes`}function di(e){try{return JSON.stringify(e)}catch{return String(e)}}async function fi(e,t,n,r){let i=Array(e.length),a=0,o=!1,s=Math.max(1,Math.min(t,e.length));return await Promise.all(Array.from({length:s},async()=>{for(;!o&&a<e.length;){if(n.aborted)throw o=!0,new E(`Operation aborted`,{reason:n.reason});let t=a++;try{i[t]=await r(e[t],t)}catch(e){throw o=!0,e}}})),i}const pi={trace:0,debug:1,info:2,warn:3,error:4};var mi=class{minLevel;showInternal;showTimestamp;showDuration;markdown;output;spans=new Map;visibleDepths=new Map;constructor(e={}){this.minLevel=e.minLevel??`info`,this.showInternal=e.showInternal??!1,this.showTimestamp=e.showTimestamp??!0,this.showDuration=e.showDuration??!0,this.markdown=e.markdown??!1,this.output=e.output??console.log}shouldShowEvent(e){return pi[e]>=pi[this.minLevel]}isSpanVisible(e){return!(e.type===`internal`&&!this.showInternal)}findVisibleAncestor(e){let t=e.parentSpanId;for(;t;){let e=this.spans.get(t);if(!e)break;if(this.isSpanVisible(e))return e;t=e.parentSpanId}return null}calculateVisibleDepth(e){if(!this.isSpanVisible(e))return-1;let t=this.findVisibleAncestor(e);return t?(this.visibleDepths.get(t.spanId)??0)+1:0}formatTimestamp(){if(!this.showTimestamp)return``;let e=new Date;return`[${e.toTimeString().slice(0,8)}.${e.getMilliseconds().toString().padStart(3,`0`)}] `}formatDuration(e){if(!this.showDuration||!e.endTime)return``;let t=e.endTime-e.startTime;return t<1e3?` (${Math.round(t)}ms)`:` (${(t/1e3).toFixed(2)}s)`}formatIndent(e){return` `.repeat(e)}formatSpanName(e){return e.type?`[${e.type}] ${e.name}`:e.name}renderMarkdown(e){return hi(e).trimEnd()}onSpanStart(e){if(this.spans.set(e.spanId,e),!this.isSpanVisible(e))return;let t=this.calculateVisibleDepth(e);this.visibleDepths.set(e.spanId,t);let n=this.formatIndent(t),r=this.formatTimestamp(),i=this.formatSpanName(e);this.output(`${r}${n}START ${i}`)}onSpanEnd(e){if(this.spans.set(e.spanId,e),!this.isSpanVisible(e))return;let t=this.visibleDepths.get(e.spanId)??0,n=this.formatIndent(t),r=this.formatTimestamp(),i=this.formatDuration(e),a=this.formatSpanName(e),o=e.status===`error`?` [ERROR]`:``;if(this.output(`${r}${n}END ${a}${i}${o}`),e.result?.kind===`llm`){let t=e.result,i=[`model=${t.model}`];if(t.finishReason&&i.push(`finishReason=${t.finishReason}`),t.usage&&(t.usage.inputTokens!==void 0&&i.push(`inputTokens=${t.usage.inputTokens}`),t.usage.outputTokens!==void 0&&i.push(`outputTokens=${t.usage.outputTokens}`),t.usage.cachedInputTokens!==void 0&&i.push(`cachedInputTokens=${t.usage.cachedInputTokens}`),t.usage.cacheWriteInputTokens!==void 0&&i.push(`cacheWriteInputTokens=${t.usage.cacheWriteInputTokens}`),t.usage.reasoningOutputTokens!==void 0&&i.push(`reasoningOutputTokens=${t.usage.reasoningOutputTokens}`)),this.output(`${r}${n} INFO LLM complete ${i.join(` `)}`),this.shouldShowEvent(`debug`)&&t.response.content){let e=(typeof t.response.content==`string`?t.response.content:JSON.stringify(t.response.content,null,2)).split(`
|
|
17
|
+
`);for(let t of e)this.output(`${r}${n} DEBUG ${t}`)}}}onSpanUpdate(e){this.spans.set(e.spanId,e)}onEvent(e,t){if(!this.shouldShowEvent(t.level))return;this.spans.set(e.spanId,e);let n;if(this.isSpanVisible(e))n=this.visibleDepths.get(e.spanId)??0;else{let t=this.findVisibleAncestor(e);n=t?this.visibleDepths.get(t.spanId)??0:0}let r=this.formatIndent(n+1),i=this.formatTimestamp(),a=t.level.toUpperCase().padEnd(5),o=this.markdown&&t.attributes?.markdown===!0,s=t.attributes?Object.entries(t.attributes).filter(([e])=>e!==`markdown`):[],c=t.name;o&&(c=this.renderMarkdown(c));let l=`${i}${r}${a} ${c}`;if(s.length>0){let e=s.map(([e,t])=>`${e}=${JSON.stringify(t)}`).join(` `);l+=` ${e}`}this.output(l)}};function hi(e){return gi(b.lexer(e))}function gi(e=[]){return e.map(e=>_i(e)).filter(e=>e.length>0).join(`
|
|
18
|
+
`)}function _i(e){switch(e.type){case`space`:return``;case`heading`:return y.bold($(e.tokens));case`paragraph`:return $(e.tokens);case`blockquote`:return Ci(gi(e.tokens),`> `);case`code`:return(e.lang?y.dim(`${e.lang}\n`):``)+y.yellow(e.text);case`list`:return yi(e)?xi(e):e.raw;case`hr`:return y.dim(`-`.repeat(40));case`table`:return bi(e)?Si(e):e.raw;case`html`:return e.text;case`text`:return e.tokens?$(e.tokens):Ti(e.text);default:return`tokens`in e&&e.tokens?$(e.tokens):e.raw}}function $(e=[]){return e.map(e=>vi(e)).join(``)}function vi(e){switch(e.type){case`text`:case`escape`:return Ti(e.text);case`strong`:return y.bold($(e.tokens));case`em`:return y.italic($(e.tokens));case`codespan`:return y.yellow(e.text);case`del`:return y.strikethrough($(e.tokens));case`link`:{let t=$(e.tokens);return e.href&&e.href!==e.text?`${y.blue.underline(t)} ${y.dim(`(${e.href})`)}`:y.blue.underline(t)}case`image`:return e.text?`${e.text} (${e.href})`:e.href;case`br`:return`
|
|
19
|
+
`;case`html`:return e.text;default:return`tokens`in e&&e.tokens?$(e.tokens):e.raw}}function yi(e){return e.type===`list`&&`items`in e&&Array.isArray(e.items)}function bi(e){return e.type===`table`&&`header`in e&&`rows`in e}function xi(e){return e.items.map((t,n)=>{let r=e.ordered?`${Number(e.start||1)+n}. `:`- `,i=t.task?`[${t.checked?`x`:` `}] `:``,a=gi(t.tokens).trimEnd();return r+i+wi(a,r.length+i.length)}).join(`
|
|
20
|
+
`)}function Si(e){let t=e.header.map(e=>$(e.tokens)).join(` | `),n=e.rows.map(e=>e.map(e=>$(e.tokens)).join(` | `));return[y.bold(t),...n].join(`
|
|
21
|
+
`)}function Ci(e,t){return e.split(`
|
|
22
22
|
`).map(e=>t+e).join(`
|
|
23
|
-
`)}function
|
|
23
|
+
`)}function wi(e,t){let[n=``,...r]=e.split(`
|
|
24
24
|
`);if(r.length===0)return n;let i=` `.repeat(t);return[n,...r.map(e=>i+e)].join(`
|
|
25
|
-
`)}function
|
|
25
|
+
`)}function Ti(e){return e.replace(/"/g,`"`).replace(/'/g,`'`).replace(/</g,`<`).replace(/>/g,`>`).replace(/&/g,`&`)}export{ot as Agent,E as AxleAbortError,D as AxleAgentAbortError,w as AxleError,Ve as AxleStopReason,O as AxleToolFatalError,Xe as History,xt as Instruct,gt as InstructVariableError,F as LogWriter,pt as MCP,mi as SimpleWriter,Ct as TaskError,Ce as ToolRegistry,et as Tracer,e as TurnAccumulator,Ye as TurnEventBuilder,B as addStats,cn as anthropic,Ee as braveWebSearch,Zn as chatCompletions,S as configureAxle,ht as createAgentConfig,ti as createAgentTool,z as createStats,ie as estimateContextUsage,wr as gemini,Dr as generate,Er as generateTurn,Ft as loadFileContent,V as mergeStats,ei as openai,ii as parallelize,he as parseResponse,qe as stream,k as validateCompactedMessages};
|
package/dist/models.d.ts
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
//#region src/models.d.ts
|
|
2
|
+
interface ModelMetadata {
|
|
3
|
+
contextWindow?: number;
|
|
4
|
+
maxOutputTokens?: number;
|
|
5
|
+
multimodal: boolean;
|
|
6
|
+
}
|
|
7
|
+
declare const Models: {
|
|
8
|
+
readonly Anthropic: {
|
|
9
|
+
readonly CLAUDE_FABLE_5: "anthropic/claude-fable-5";
|
|
10
|
+
readonly CLAUDE_HAIKU_4_5: "anthropic/claude-haiku-4-5";
|
|
11
|
+
readonly CLAUDE_HAIKU_4_5_20251001: "anthropic/claude-haiku-4-5-20251001";
|
|
12
|
+
readonly CLAUDE_OPUS_4_5: "anthropic/claude-opus-4-5";
|
|
13
|
+
readonly CLAUDE_OPUS_4_5_20251101: "anthropic/claude-opus-4-5-20251101";
|
|
14
|
+
readonly CLAUDE_OPUS_4_6: "anthropic/claude-opus-4-6";
|
|
15
|
+
readonly CLAUDE_OPUS_4_7: "anthropic/claude-opus-4-7";
|
|
16
|
+
readonly CLAUDE_OPUS_4_8: "anthropic/claude-opus-4-8";
|
|
17
|
+
readonly CLAUDE_SONNET_4_5: "anthropic/claude-sonnet-4-5";
|
|
18
|
+
readonly CLAUDE_SONNET_4_5_20250929: "anthropic/claude-sonnet-4-5-20250929";
|
|
19
|
+
readonly CLAUDE_SONNET_4_6: "anthropic/claude-sonnet-4-6";
|
|
20
|
+
readonly CLAUDE_SONNET_5: "anthropic/claude-sonnet-5";
|
|
21
|
+
};
|
|
22
|
+
readonly DeepSeek: {
|
|
23
|
+
readonly DEEPSEEK_V4_FLASH: "deepseek/deepseek-v4-flash";
|
|
24
|
+
readonly DEEPSEEK_V4_PRO: "deepseek/deepseek-v4-pro";
|
|
25
|
+
};
|
|
26
|
+
readonly Google: {
|
|
27
|
+
readonly GEMINI_2_5_FLASH: "google/gemini-2.5-flash";
|
|
28
|
+
readonly GEMINI_2_5_FLASH_LITE: "google/gemini-2.5-flash-lite";
|
|
29
|
+
readonly GEMINI_2_5_PRO: "google/gemini-2.5-pro";
|
|
30
|
+
readonly GEMINI_3_FLASH_PREVIEW: "google/gemini-3-flash-preview";
|
|
31
|
+
readonly GEMINI_3_1_FLASH_LITE: "google/gemini-3.1-flash-lite";
|
|
32
|
+
readonly GEMINI_3_1_PRO_PREVIEW: "google/gemini-3.1-pro-preview";
|
|
33
|
+
readonly GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS: "google/gemini-3.1-pro-preview-customtools";
|
|
34
|
+
readonly GEMINI_3_5_FLASH: "google/gemini-3.5-flash";
|
|
35
|
+
readonly GEMINI_FLASH_LATEST: "google/gemini-flash-latest";
|
|
36
|
+
readonly GEMINI_FLASH_LITE_LATEST: "google/gemini-flash-lite-latest";
|
|
37
|
+
readonly GEMMA_4_26B_A4B_IT: "google/gemma-4-26b-a4b-it";
|
|
38
|
+
readonly GEMMA_4_31B_IT: "google/gemma-4-31b-it";
|
|
39
|
+
};
|
|
40
|
+
readonly MiniMax: {
|
|
41
|
+
readonly MINIMAX_M2_7: "minimax/MiniMax-M2.7";
|
|
42
|
+
readonly MINIMAX_M2_7_HIGHSPEED: "minimax/MiniMax-M2.7-highspeed";
|
|
43
|
+
readonly MINIMAX_M3: "minimax/MiniMax-M3";
|
|
44
|
+
};
|
|
45
|
+
readonly Mistral: {
|
|
46
|
+
readonly MAGISTRAL_MEDIUM_LATEST: "mistral/magistral-medium-latest";
|
|
47
|
+
readonly MAGISTRAL_SMALL: "mistral/magistral-small";
|
|
48
|
+
readonly MINISTRAL_3B_LATEST: "mistral/ministral-3b-latest";
|
|
49
|
+
readonly MINISTRAL_8B_LATEST: "mistral/ministral-8b-latest";
|
|
50
|
+
readonly MISTRAL_LARGE_LATEST: "mistral/mistral-large-latest";
|
|
51
|
+
readonly MISTRAL_MEDIUM_LATEST: "mistral/mistral-medium-latest";
|
|
52
|
+
readonly MISTRAL_SMALL_LATEST: "mistral/mistral-small-latest";
|
|
53
|
+
};
|
|
54
|
+
readonly Moonshot: {
|
|
55
|
+
readonly KIMI_K2_6: "moonshotai/kimi-k2.6";
|
|
56
|
+
readonly KIMI_K2_7_CODE: "moonshotai/kimi-k2.7-code";
|
|
57
|
+
readonly KIMI_K2_7_CODE_HIGHSPEED: "moonshotai/kimi-k2.7-code-highspeed";
|
|
58
|
+
readonly KIMI_K3: "moonshotai/kimi-k3";
|
|
59
|
+
};
|
|
60
|
+
readonly OpenAI: {
|
|
61
|
+
readonly GPT_4_1: "openai/gpt-4.1";
|
|
62
|
+
readonly GPT_4_1_MINI: "openai/gpt-4.1-mini";
|
|
63
|
+
readonly GPT_4_1_NANO: "openai/gpt-4.1-nano";
|
|
64
|
+
readonly GPT_4O_2024_08_06: "openai/gpt-4o-2024-08-06";
|
|
65
|
+
readonly GPT_4O_2024_11_20: "openai/gpt-4o-2024-11-20";
|
|
66
|
+
readonly GPT_4O_MINI: "openai/gpt-4o-mini";
|
|
67
|
+
readonly GPT_5: "openai/gpt-5";
|
|
68
|
+
readonly GPT_5_CHAT_LATEST: "openai/gpt-5-chat-latest";
|
|
69
|
+
readonly GPT_5_CODEX: "openai/gpt-5-codex";
|
|
70
|
+
readonly GPT_5_MINI: "openai/gpt-5-mini";
|
|
71
|
+
readonly GPT_5_NANO: "openai/gpt-5-nano";
|
|
72
|
+
readonly GPT_5_PRO: "openai/gpt-5-pro";
|
|
73
|
+
readonly GPT_5_1: "openai/gpt-5.1";
|
|
74
|
+
readonly GPT_5_1_CHAT_LATEST: "openai/gpt-5.1-chat-latest";
|
|
75
|
+
readonly GPT_5_1_CODEX: "openai/gpt-5.1-codex";
|
|
76
|
+
readonly GPT_5_1_CODEX_MAX: "openai/gpt-5.1-codex-max";
|
|
77
|
+
readonly GPT_5_1_CODEX_MINI: "openai/gpt-5.1-codex-mini";
|
|
78
|
+
readonly GPT_5_2: "openai/gpt-5.2";
|
|
79
|
+
readonly GPT_5_2_CHAT_LATEST: "openai/gpt-5.2-chat-latest";
|
|
80
|
+
readonly GPT_5_2_CODEX: "openai/gpt-5.2-codex";
|
|
81
|
+
readonly GPT_5_2_PRO: "openai/gpt-5.2-pro";
|
|
82
|
+
readonly GPT_5_3_CHAT_LATEST: "openai/gpt-5.3-chat-latest";
|
|
83
|
+
readonly GPT_5_3_CODEX: "openai/gpt-5.3-codex";
|
|
84
|
+
readonly GPT_5_3_CODEX_SPARK: "openai/gpt-5.3-codex-spark";
|
|
85
|
+
readonly GPT_5_4: "openai/gpt-5.4";
|
|
86
|
+
readonly GPT_5_4_MINI: "openai/gpt-5.4-mini";
|
|
87
|
+
readonly GPT_5_4_NANO: "openai/gpt-5.4-nano";
|
|
88
|
+
readonly GPT_5_4_PRO: "openai/gpt-5.4-pro";
|
|
89
|
+
readonly GPT_5_5: "openai/gpt-5.5";
|
|
90
|
+
readonly GPT_5_5_PRO: "openai/gpt-5.5-pro";
|
|
91
|
+
readonly GPT_5_6: "openai/gpt-5.6";
|
|
92
|
+
readonly GPT_5_6_LUNA: "openai/gpt-5.6-luna";
|
|
93
|
+
readonly GPT_5_6_SOL: "openai/gpt-5.6-sol";
|
|
94
|
+
readonly GPT_5_6_TERRA: "openai/gpt-5.6-terra";
|
|
95
|
+
readonly O1: "openai/o1";
|
|
96
|
+
readonly O1_PRO: "openai/o1-pro";
|
|
97
|
+
readonly O3: "openai/o3";
|
|
98
|
+
readonly O3_MINI: "openai/o3-mini";
|
|
99
|
+
readonly O3_PRO: "openai/o3-pro";
|
|
100
|
+
readonly O4_MINI: "openai/o4-mini";
|
|
101
|
+
};
|
|
102
|
+
readonly Qwen: {
|
|
103
|
+
readonly QWEN3_5_122B_A10B: "qwen/qwen3.5-122b-a10b";
|
|
104
|
+
readonly QWEN3_5_27B: "qwen/qwen3.5-27b";
|
|
105
|
+
readonly QWEN3_5_35B_A3B: "qwen/qwen3.5-35b-a3b";
|
|
106
|
+
readonly QWEN3_5_397B_A17B: "qwen/qwen3.5-397b-a17b";
|
|
107
|
+
readonly QWEN3_5_9B: "qwen/qwen3.5-9b";
|
|
108
|
+
readonly QWEN3_5_FLASH_02_23: "qwen/qwen3.5-flash-02-23";
|
|
109
|
+
readonly QWEN3_5_PLUS_02_15: "qwen/qwen3.5-plus-02-15";
|
|
110
|
+
readonly QWEN3_5_PLUS_20260420: "qwen/qwen3.5-plus-20260420";
|
|
111
|
+
readonly QWEN3_6_27B: "qwen/qwen3.6-27b";
|
|
112
|
+
readonly QWEN3_6_35B_A3B: "qwen/qwen3.6-35b-a3b";
|
|
113
|
+
readonly QWEN3_6_FLASH: "qwen/qwen3.6-flash";
|
|
114
|
+
readonly QWEN3_6_MAX_PREVIEW: "qwen/qwen3.6-max-preview";
|
|
115
|
+
readonly QWEN3_6_PLUS: "qwen/qwen3.6-plus";
|
|
116
|
+
readonly QWEN3_7_MAX: "qwen/qwen3.7-max";
|
|
117
|
+
readonly QWEN3_7_PLUS: "qwen/qwen3.7-plus";
|
|
118
|
+
};
|
|
119
|
+
readonly ZAI: {
|
|
120
|
+
readonly GLM_5_1: "zai/glm-5.1";
|
|
121
|
+
readonly GLM_5_2: "zai/glm-5.2";
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
declare const ModelInfo: Readonly<Record<string, ModelMetadata>>;
|
|
125
|
+
//#endregion
|
|
126
|
+
export { ModelInfo, ModelMetadata, Models };
|
package/dist/models.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e={Anthropic:{CLAUDE_FABLE_5:`anthropic/claude-fable-5`,CLAUDE_HAIKU_4_5:`anthropic/claude-haiku-4-5`,CLAUDE_HAIKU_4_5_20251001:`anthropic/claude-haiku-4-5-20251001`,CLAUDE_OPUS_4_5:`anthropic/claude-opus-4-5`,CLAUDE_OPUS_4_5_20251101:`anthropic/claude-opus-4-5-20251101`,CLAUDE_OPUS_4_6:`anthropic/claude-opus-4-6`,CLAUDE_OPUS_4_7:`anthropic/claude-opus-4-7`,CLAUDE_OPUS_4_8:`anthropic/claude-opus-4-8`,CLAUDE_SONNET_4_5:`anthropic/claude-sonnet-4-5`,CLAUDE_SONNET_4_5_20250929:`anthropic/claude-sonnet-4-5-20250929`,CLAUDE_SONNET_4_6:`anthropic/claude-sonnet-4-6`,CLAUDE_SONNET_5:`anthropic/claude-sonnet-5`},DeepSeek:{DEEPSEEK_V4_FLASH:`deepseek/deepseek-v4-flash`,DEEPSEEK_V4_PRO:`deepseek/deepseek-v4-pro`},Google:{GEMINI_2_5_FLASH:`google/gemini-2.5-flash`,GEMINI_2_5_FLASH_LITE:`google/gemini-2.5-flash-lite`,GEMINI_2_5_PRO:`google/gemini-2.5-pro`,GEMINI_3_FLASH_PREVIEW:`google/gemini-3-flash-preview`,GEMINI_3_1_FLASH_LITE:`google/gemini-3.1-flash-lite`,GEMINI_3_1_PRO_PREVIEW:`google/gemini-3.1-pro-preview`,GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS:`google/gemini-3.1-pro-preview-customtools`,GEMINI_3_5_FLASH:`google/gemini-3.5-flash`,GEMINI_FLASH_LATEST:`google/gemini-flash-latest`,GEMINI_FLASH_LITE_LATEST:`google/gemini-flash-lite-latest`,GEMMA_4_26B_A4B_IT:`google/gemma-4-26b-a4b-it`,GEMMA_4_31B_IT:`google/gemma-4-31b-it`},MiniMax:{MINIMAX_M2_7:`minimax/MiniMax-M2.7`,MINIMAX_M2_7_HIGHSPEED:`minimax/MiniMax-M2.7-highspeed`,MINIMAX_M3:`minimax/MiniMax-M3`},Mistral:{MAGISTRAL_MEDIUM_LATEST:`mistral/magistral-medium-latest`,MAGISTRAL_SMALL:`mistral/magistral-small`,MINISTRAL_3B_LATEST:`mistral/ministral-3b-latest`,MINISTRAL_8B_LATEST:`mistral/ministral-8b-latest`,MISTRAL_LARGE_LATEST:`mistral/mistral-large-latest`,MISTRAL_MEDIUM_LATEST:`mistral/mistral-medium-latest`,MISTRAL_SMALL_LATEST:`mistral/mistral-small-latest`},Moonshot:{KIMI_K2_6:`moonshotai/kimi-k2.6`,KIMI_K2_7_CODE:`moonshotai/kimi-k2.7-code`,KIMI_K2_7_CODE_HIGHSPEED:`moonshotai/kimi-k2.7-code-highspeed`,KIMI_K3:`moonshotai/kimi-k3`},OpenAI:{GPT_4_1:`openai/gpt-4.1`,GPT_4_1_MINI:`openai/gpt-4.1-mini`,GPT_4_1_NANO:`openai/gpt-4.1-nano`,GPT_4O_2024_08_06:`openai/gpt-4o-2024-08-06`,GPT_4O_2024_11_20:`openai/gpt-4o-2024-11-20`,GPT_4O_MINI:`openai/gpt-4o-mini`,GPT_5:`openai/gpt-5`,GPT_5_CHAT_LATEST:`openai/gpt-5-chat-latest`,GPT_5_CODEX:`openai/gpt-5-codex`,GPT_5_MINI:`openai/gpt-5-mini`,GPT_5_NANO:`openai/gpt-5-nano`,GPT_5_PRO:`openai/gpt-5-pro`,GPT_5_1:`openai/gpt-5.1`,GPT_5_1_CHAT_LATEST:`openai/gpt-5.1-chat-latest`,GPT_5_1_CODEX:`openai/gpt-5.1-codex`,GPT_5_1_CODEX_MAX:`openai/gpt-5.1-codex-max`,GPT_5_1_CODEX_MINI:`openai/gpt-5.1-codex-mini`,GPT_5_2:`openai/gpt-5.2`,GPT_5_2_CHAT_LATEST:`openai/gpt-5.2-chat-latest`,GPT_5_2_CODEX:`openai/gpt-5.2-codex`,GPT_5_2_PRO:`openai/gpt-5.2-pro`,GPT_5_3_CHAT_LATEST:`openai/gpt-5.3-chat-latest`,GPT_5_3_CODEX:`openai/gpt-5.3-codex`,GPT_5_3_CODEX_SPARK:`openai/gpt-5.3-codex-spark`,GPT_5_4:`openai/gpt-5.4`,GPT_5_4_MINI:`openai/gpt-5.4-mini`,GPT_5_4_NANO:`openai/gpt-5.4-nano`,GPT_5_4_PRO:`openai/gpt-5.4-pro`,GPT_5_5:`openai/gpt-5.5`,GPT_5_5_PRO:`openai/gpt-5.5-pro`,GPT_5_6:`openai/gpt-5.6`,GPT_5_6_LUNA:`openai/gpt-5.6-luna`,GPT_5_6_SOL:`openai/gpt-5.6-sol`,GPT_5_6_TERRA:`openai/gpt-5.6-terra`,O1:`openai/o1`,O1_PRO:`openai/o1-pro`,O3:`openai/o3`,O3_MINI:`openai/o3-mini`,O3_PRO:`openai/o3-pro`,O4_MINI:`openai/o4-mini`},Qwen:{QWEN3_5_122B_A10B:`qwen/qwen3.5-122b-a10b`,QWEN3_5_27B:`qwen/qwen3.5-27b`,QWEN3_5_35B_A3B:`qwen/qwen3.5-35b-a3b`,QWEN3_5_397B_A17B:`qwen/qwen3.5-397b-a17b`,QWEN3_5_9B:`qwen/qwen3.5-9b`,QWEN3_5_FLASH_02_23:`qwen/qwen3.5-flash-02-23`,QWEN3_5_PLUS_02_15:`qwen/qwen3.5-plus-02-15`,QWEN3_5_PLUS_20260420:`qwen/qwen3.5-plus-20260420`,QWEN3_6_27B:`qwen/qwen3.6-27b`,QWEN3_6_35B_A3B:`qwen/qwen3.6-35b-a3b`,QWEN3_6_FLASH:`qwen/qwen3.6-flash`,QWEN3_6_MAX_PREVIEW:`qwen/qwen3.6-max-preview`,QWEN3_6_PLUS:`qwen/qwen3.6-plus`,QWEN3_7_MAX:`qwen/qwen3.7-max`,QWEN3_7_PLUS:`qwen/qwen3.7-plus`},ZAI:{GLM_5_1:`zai/glm-5.1`,GLM_5_2:`zai/glm-5.2`}},t={[e.Anthropic.CLAUDE_FABLE_5]:{contextWindow:1e6,maxOutputTokens:128e3,multimodal:!0},[e.Anthropic.CLAUDE_HAIKU_4_5]:{contextWindow:2e5,maxOutputTokens:64e3,multimodal:!0},[e.Anthropic.CLAUDE_HAIKU_4_5_20251001]:{contextWindow:2e5,maxOutputTokens:64e3,multimodal:!0},[e.Anthropic.CLAUDE_OPUS_4_5]:{contextWindow:2e5,maxOutputTokens:64e3,multimodal:!0},[e.Anthropic.CLAUDE_OPUS_4_5_20251101]:{contextWindow:2e5,maxOutputTokens:64e3,multimodal:!0},[e.Anthropic.CLAUDE_OPUS_4_6]:{contextWindow:1e6,maxOutputTokens:128e3,multimodal:!0},[e.Anthropic.CLAUDE_OPUS_4_7]:{contextWindow:1e6,maxOutputTokens:128e3,multimodal:!0},[e.Anthropic.CLAUDE_OPUS_4_8]:{contextWindow:1e6,maxOutputTokens:128e3,multimodal:!0},[e.Anthropic.CLAUDE_SONNET_4_5]:{contextWindow:1e6,maxOutputTokens:64e3,multimodal:!0},[e.Anthropic.CLAUDE_SONNET_4_5_20250929]:{contextWindow:1e6,maxOutputTokens:64e3,multimodal:!0},[e.Anthropic.CLAUDE_SONNET_4_6]:{contextWindow:1e6,maxOutputTokens:128e3,multimodal:!0},[e.Anthropic.CLAUDE_SONNET_5]:{contextWindow:1e6,maxOutputTokens:128e3,multimodal:!0},[e.DeepSeek.DEEPSEEK_V4_FLASH]:{contextWindow:1e6,maxOutputTokens:384e3,multimodal:!1},[e.DeepSeek.DEEPSEEK_V4_PRO]:{contextWindow:1e6,maxOutputTokens:384e3,multimodal:!1},[e.Google.GEMINI_2_5_FLASH]:{contextWindow:1048576,maxOutputTokens:65536,multimodal:!0},[e.Google.GEMINI_2_5_FLASH_LITE]:{contextWindow:1048576,maxOutputTokens:65536,multimodal:!0},[e.Google.GEMINI_2_5_PRO]:{contextWindow:1048576,maxOutputTokens:65536,multimodal:!0},[e.Google.GEMINI_3_FLASH_PREVIEW]:{contextWindow:1048576,maxOutputTokens:65536,multimodal:!0},[e.Google.GEMINI_3_1_FLASH_LITE]:{contextWindow:1048576,maxOutputTokens:65536,multimodal:!0},[e.Google.GEMINI_3_1_PRO_PREVIEW]:{contextWindow:1048576,maxOutputTokens:65536,multimodal:!0},[e.Google.GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS]:{contextWindow:1048576,maxOutputTokens:65536,multimodal:!0},[e.Google.GEMINI_3_5_FLASH]:{contextWindow:1048576,maxOutputTokens:65536,multimodal:!0},[e.Google.GEMINI_FLASH_LATEST]:{contextWindow:1048576,maxOutputTokens:65536,multimodal:!0},[e.Google.GEMINI_FLASH_LITE_LATEST]:{contextWindow:1048576,maxOutputTokens:65536,multimodal:!0},[e.Google.GEMMA_4_26B_A4B_IT]:{contextWindow:262144,maxOutputTokens:32768,multimodal:!0},[e.Google.GEMMA_4_31B_IT]:{contextWindow:262144,maxOutputTokens:32768,multimodal:!0},[e.MiniMax.MINIMAX_M2_7]:{contextWindow:204800,maxOutputTokens:131072,multimodal:!1},[e.MiniMax.MINIMAX_M2_7_HIGHSPEED]:{contextWindow:204800,maxOutputTokens:131072,multimodal:!1},[e.MiniMax.MINIMAX_M3]:{contextWindow:1e6,maxOutputTokens:128e3,multimodal:!0},[e.Mistral.MAGISTRAL_MEDIUM_LATEST]:{contextWindow:128e3,maxOutputTokens:16384,multimodal:!1},[e.Mistral.MAGISTRAL_SMALL]:{contextWindow:128e3,maxOutputTokens:128e3,multimodal:!1},[e.Mistral.MINISTRAL_3B_LATEST]:{contextWindow:128e3,maxOutputTokens:128e3,multimodal:!1},[e.Mistral.MINISTRAL_8B_LATEST]:{contextWindow:128e3,maxOutputTokens:128e3,multimodal:!1},[e.Mistral.MISTRAL_LARGE_LATEST]:{contextWindow:262144,maxOutputTokens:262144,multimodal:!0},[e.Mistral.MISTRAL_MEDIUM_LATEST]:{contextWindow:262144,maxOutputTokens:262144,multimodal:!0},[e.Mistral.MISTRAL_SMALL_LATEST]:{contextWindow:256e3,maxOutputTokens:256e3,multimodal:!0},[e.Moonshot.KIMI_K2_6]:{contextWindow:262144,maxOutputTokens:262144,multimodal:!0},[e.Moonshot.KIMI_K2_7_CODE]:{contextWindow:262144,maxOutputTokens:262144,multimodal:!0},[e.Moonshot.KIMI_K2_7_CODE_HIGHSPEED]:{contextWindow:262144,maxOutputTokens:262144,multimodal:!0},[e.Moonshot.KIMI_K3]:{contextWindow:1048576,maxOutputTokens:131072,multimodal:!0},[e.OpenAI.GPT_4_1]:{contextWindow:1047576,maxOutputTokens:32768,multimodal:!0},[e.OpenAI.GPT_4_1_MINI]:{contextWindow:1047576,maxOutputTokens:32768,multimodal:!0},[e.OpenAI.GPT_4_1_NANO]:{contextWindow:1047576,maxOutputTokens:32768,multimodal:!0},[e.OpenAI.GPT_4O_2024_08_06]:{contextWindow:128e3,maxOutputTokens:16384,multimodal:!0},[e.OpenAI.GPT_4O_2024_11_20]:{contextWindow:128e3,maxOutputTokens:16384,multimodal:!0},[e.OpenAI.GPT_4O_MINI]:{contextWindow:128e3,maxOutputTokens:16384,multimodal:!0},[e.OpenAI.GPT_5]:{contextWindow:4e5,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_CHAT_LATEST]:{contextWindow:4e5,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_CODEX]:{contextWindow:4e5,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_MINI]:{contextWindow:4e5,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_NANO]:{contextWindow:4e5,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_PRO]:{contextWindow:4e5,maxOutputTokens:272e3,multimodal:!0},[e.OpenAI.GPT_5_1]:{contextWindow:4e5,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_1_CHAT_LATEST]:{contextWindow:128e3,maxOutputTokens:16384,multimodal:!0},[e.OpenAI.GPT_5_1_CODEX]:{contextWindow:4e5,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_1_CODEX_MAX]:{contextWindow:4e5,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_1_CODEX_MINI]:{contextWindow:4e5,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_2]:{contextWindow:4e5,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_2_CHAT_LATEST]:{contextWindow:128e3,maxOutputTokens:16384,multimodal:!0},[e.OpenAI.GPT_5_2_CODEX]:{contextWindow:4e5,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_2_PRO]:{contextWindow:4e5,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_3_CHAT_LATEST]:{contextWindow:128e3,maxOutputTokens:16384,multimodal:!0},[e.OpenAI.GPT_5_3_CODEX]:{contextWindow:4e5,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_3_CODEX_SPARK]:{contextWindow:128e3,maxOutputTokens:32e3,multimodal:!0},[e.OpenAI.GPT_5_4]:{contextWindow:105e4,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_4_MINI]:{contextWindow:4e5,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_4_NANO]:{contextWindow:4e5,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_4_PRO]:{contextWindow:105e4,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_5]:{contextWindow:105e4,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_5_PRO]:{contextWindow:105e4,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_6]:{contextWindow:105e4,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_6_LUNA]:{contextWindow:105e4,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_6_SOL]:{contextWindow:105e4,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.GPT_5_6_TERRA]:{contextWindow:105e4,maxOutputTokens:128e3,multimodal:!0},[e.OpenAI.O1]:{contextWindow:2e5,maxOutputTokens:1e5,multimodal:!0},[e.OpenAI.O1_PRO]:{contextWindow:2e5,maxOutputTokens:1e5,multimodal:!0},[e.OpenAI.O3]:{contextWindow:2e5,maxOutputTokens:1e5,multimodal:!0},[e.OpenAI.O3_MINI]:{contextWindow:2e5,maxOutputTokens:1e5,multimodal:!1},[e.OpenAI.O3_PRO]:{contextWindow:2e5,maxOutputTokens:1e5,multimodal:!0},[e.OpenAI.O4_MINI]:{contextWindow:2e5,maxOutputTokens:1e5,multimodal:!0},[e.Qwen.QWEN3_5_122B_A10B]:{contextWindow:262144,maxOutputTokens:65536,multimodal:!0},[e.Qwen.QWEN3_5_27B]:{contextWindow:262144,maxOutputTokens:65536,multimodal:!0},[e.Qwen.QWEN3_5_35B_A3B]:{contextWindow:262144,maxOutputTokens:262144,multimodal:!0},[e.Qwen.QWEN3_5_397B_A17B]:{contextWindow:262144,maxOutputTokens:65536,multimodal:!0},[e.Qwen.QWEN3_5_9B]:{contextWindow:262144,maxOutputTokens:262144,multimodal:!0},[e.Qwen.QWEN3_5_FLASH_02_23]:{contextWindow:1e6,maxOutputTokens:65536,multimodal:!0},[e.Qwen.QWEN3_5_PLUS_02_15]:{contextWindow:1e6,maxOutputTokens:65536,multimodal:!0},[e.Qwen.QWEN3_5_PLUS_20260420]:{contextWindow:1e6,maxOutputTokens:65536,multimodal:!0},[e.Qwen.QWEN3_6_27B]:{contextWindow:262144,maxOutputTokens:65536,multimodal:!0},[e.Qwen.QWEN3_6_35B_A3B]:{contextWindow:262144,maxOutputTokens:262144,multimodal:!0},[e.Qwen.QWEN3_6_FLASH]:{contextWindow:1e6,maxOutputTokens:65536,multimodal:!0},[e.Qwen.QWEN3_6_MAX_PREVIEW]:{contextWindow:262144,maxOutputTokens:65536,multimodal:!1},[e.Qwen.QWEN3_6_PLUS]:{contextWindow:1e6,maxOutputTokens:65536,multimodal:!0},[e.Qwen.QWEN3_7_MAX]:{contextWindow:1e6,maxOutputTokens:65536,multimodal:!1},[e.Qwen.QWEN3_7_PLUS]:{contextWindow:1e6,maxOutputTokens:65536,multimodal:!0},[e.ZAI.GLM_5_1]:{contextWindow:2e5,maxOutputTokens:131072,multimodal:!1},[e.ZAI.GLM_5_2]:{contextWindow:1e6,maxOutputTokens:131072,multimodal:!1}};export{t as ModelInfo,e as Models};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fifthrevision/axle",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.27.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/johncch/axle.git"
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
"import": "./dist/ui.js"
|
|
18
18
|
},
|
|
19
19
|
"./models": {
|
|
20
|
-
"types": "./dist/
|
|
21
|
-
"import": "./dist/
|
|
20
|
+
"types": "./dist/models.d.ts",
|
|
21
|
+
"import": "./dist/models.js"
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"files": [
|
package/dist/models-CPMQlthm.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e={CLAUDE_SONNET_5:`claude-sonnet-5`,CLAUDE_FABLE_5:`claude-fable-5`,CLAUDE_OPUS_4_8:`claude-opus-4-8`,CLAUDE_OPUS_4_7:`claude-opus-4-7`,CLAUDE_SONNET_4_6:`claude-sonnet-4-6`,CLAUDE_OPUS_4_6:`claude-opus-4-6`,CLAUDE_OPUS_4_5_20251101:`claude-opus-4-5-20251101`,CLAUDE_OPUS_4_5:`claude-opus-4-5-20251101`,CLAUDE_SONNET_4_5_20250929:`claude-sonnet-4-5-20250929`,CLAUDE_SONNET_4_5:`claude-sonnet-4-5-20250929`,CLAUDE_HAIKU_4_5_20251001:`claude-haiku-4-5-20251001`,CLAUDE_HAIKU_4_5:`claude-haiku-4-5-20251001`,CLAUDE_OPUS_4_1_20250805:`claude-opus-4-1-20250805`,CLAUDE_OPUS_4_1:`claude-opus-4-1-20250805`,CLAUDE_OPUS_4_20250514:`claude-opus-4-20250514`,CLAUDE_OPUS_4:`claude-opus-4-20250514`,CLAUDE_SONNET_4_20250514:`claude-sonnet-4-20250514`,CLAUDE_SONNET_4:`claude-sonnet-4-20250514`},t=[e.CLAUDE_SONNET_5,e.CLAUDE_FABLE_5,e.CLAUDE_OPUS_4_8,e.CLAUDE_OPUS_4_7,e.CLAUDE_SONNET_4_6,e.CLAUDE_OPUS_4_6,e.CLAUDE_OPUS_4_5,e.CLAUDE_SONNET_4_5,e.CLAUDE_HAIKU_4_5,e.CLAUDE_OPUS_4_1,e.CLAUDE_OPUS_4,e.CLAUDE_SONNET_4],n={[e.CLAUDE_SONNET_5]:128e3,[e.CLAUDE_FABLE_5]:128e3,[e.CLAUDE_OPUS_4_8]:128e3,[e.CLAUDE_OPUS_4_7]:128e3,[e.CLAUDE_OPUS_4_6]:128e3,[e.CLAUDE_SONNET_4_6]:64e3,[e.CLAUDE_OPUS_4_5]:64e3,[e.CLAUDE_SONNET_4_5]:64e3,[e.CLAUDE_HAIKU_4_5]:64e3,[e.CLAUDE_SONNET_4]:64e3,[e.CLAUDE_OPUS_4_1]:32e3,[e.CLAUDE_OPUS_4]:32e3},r=e.CLAUDE_HAIKU_4_5,i={QWEN_3_6_35B_A3B:`qwen/qwen3.6-35b-a3b`,QWEN_3_6_PLUS:`qwen/qwen3.6-plus`,GEMMA_4_26B_A4B_IT:`google/gemma-4-26b-a4b-it`,MINISTRAL_3_8B:`mistralai/ministral-8b-2512`,MISTRAL_SMALL_4:`mistralai/mistral-small-2603`,DEEPSEEK_V4_FLASH:`deepseek/deepseek-v4-flash`,MINIMAX_M2:`minimax/minimax-m2`},a=[i.QWEN_3_6_35B_A3B,i.GEMMA_4_26B_A4B_IT,i.MINISTRAL_3_8B,i.MISTRAL_SMALL_4,i.DEEPSEEK_V4_FLASH,i.MINIMAX_M2],o=i.QWEN_3_6_35B_A3B,s={GEMINI_3_5_FLASH:`gemini-3.5-flash`,GEMINI_3_1_PRO_PREVIEW:`gemini-3.1-pro-preview`,GEMINI_3_1_PRO:`gemini-3.1-pro-preview`,GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS:`gemini-3.1-pro-preview-customtools`,GEMINI_3_1_FLASH_LITE_PREVIEW:`gemini-3.1-flash-lite-preview`,GEMINI_3_1_FLASH_LITE:`gemini-3.1-flash-lite-preview`,GEMINI_3_PRO_PREVIEW:`gemini-3-pro-preview`,GEMINI_3_PRO:`gemini-3-pro-preview`,GEMINI_3_FLASH_PREVIEW:`gemini-3-flash-preview`,GEMINI_3_FLASH:`gemini-3-flash-preview`,GEMINI_2_5_PRO:`gemini-2.5-pro`,GEMINI_2_5_FLASH:`gemini-2.5-flash`,GEMINI_2_5_FLASH_LITE:`gemini-2.5-flash-lite`,GEMINI_2_0_FLASH:`gemini-2.0-flash`,GEMINI_2_0_FLASH_001:`gemini-2.0-flash-001`,GEMINI_2_0_FLASH_LITE:`gemini-2.0-flash-lite`,GEMINI_2_0_FLASH_LITE_001:`gemini-2.0-flash-lite-001`,GEMINI_FLASH_LATEST:`gemini-flash-latest`,GEMINI_FLASH_LITE_LATEST:`gemini-flash-lite-latest`,GEMINI_PRO_LATEST:`gemini-pro-latest`},c=[s.GEMINI_3_5_FLASH,s.GEMINI_3_1_PRO,s.GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS,s.GEMINI_3_1_FLASH_LITE,s.GEMINI_3_PRO,s.GEMINI_3_FLASH,s.GEMINI_2_5_PRO,s.GEMINI_2_5_FLASH,s.GEMINI_2_5_FLASH_LITE,s.GEMINI_2_0_FLASH,s.GEMINI_2_0_FLASH_LITE,s.GEMINI_FLASH_LATEST,s.GEMINI_FLASH_LITE_LATEST,s.GEMINI_PRO_LATEST],l=s.GEMINI_3_5_FLASH,u={GPT_5_5_2026_04_23:`gpt-5.5-2026-04-23`,GPT_5_5:`gpt-5.5`,GPT_5_5_PRO_2026_04_23:`gpt-5.5-pro-2026-04-23`,GPT_5_5_PRO:`gpt-5.5-pro`,GPT_5_4_2026_03_05:`gpt-5.4-2026-03-05`,GPT_5_4:`gpt-5.4`,GPT_5_4_PRO_2026_03_05:`gpt-5.4-pro-2026-03-05`,GPT_5_4_PRO:`gpt-5.4-pro`,GPT_5_4_MINI_2026_03_17:`gpt-5.4-mini-2026-03-17`,GPT_5_4_MINI:`gpt-5.4-mini`,GPT_5_4_NANO_2026_03_17:`gpt-5.4-nano-2026-03-17`,GPT_5_4_NANO:`gpt-5.4-nano`,GPT_5_3_CHAT_LATEST:`gpt-5.3-chat-latest`,GPT_5_2_2025_12_11:`gpt-5.2-2025-12-11`,GPT_5_2:`gpt-5.2`,GPT_5_2_CHAT_LATEST:`gpt-5.2-chat-latest`,GPT_5_2_PRO_2025_12_11:`gpt-5.2-pro-2025-12-11`,GPT_5_2_PRO:`gpt-5.2-pro`,GPT_5_1_2025_11_13:`gpt-5.1-2025-11-13`,GPT_5_1:`gpt-5.1`,GPT_5_1_CHAT_LATEST:`gpt-5.1-chat-latest`,GPT_5_2025_08_07:`gpt-5-2025-08-07`,GPT_5:`gpt-5`,GPT_5_CHAT_LATEST:`gpt-5-chat-latest`,GPT_5_PRO_2025_10_06:`gpt-5-pro-2025-10-06`,GPT_5_PRO:`gpt-5-pro`,GPT_5_MINI_2025_08_07:`gpt-5-mini-2025-08-07`,GPT_5_MINI:`gpt-5-mini`,GPT_5_NANO_2025_08_07:`gpt-5-nano-2025-08-07`,GPT_5_NANO:`gpt-5-nano`,GPT_4_1_2025_04_14:`gpt-4.1-2025-04-14`,GPT_4_1:`gpt-4.1`,GPT_4_1_MINI_2025_04_14:`gpt-4.1-mini-2025-04-14`,GPT_4_1_MINI:`gpt-4.1-mini`,GPT_4_1_NANO_2025_04_14:`gpt-4.1-nano-2025-04-14`,GPT_4_1_NANO:`gpt-4.1-nano`,GPT_4O_2024_11_20:`gpt-4o-2024-11-20`,GPT_4O:`gpt-4o`,GPT_4O_MINI_2024_07_18:`gpt-4o-mini-2024-07-18`,GPT_4O_MINI:`gpt-4o-mini`,O4_MINI_2025_04_16:`o4-mini-2025-04-16`,O4_MINI:`o4-mini`,O3_2025_04_16:`o3-2025-04-16`,O3:`o3`,O3_PRO_2025_06_10:`o3-pro-2025-06-10`,O3_PRO:`o3-pro`,O3_MINI_2025_01_31:`o3-mini-2025-01-31`,O3_MINI:`o3-mini`},d=[u.GPT_5_5,u.GPT_5_5_PRO,u.GPT_5_4,u.GPT_5_4_PRO,u.GPT_5_4_MINI,u.GPT_5_4_NANO,u.GPT_5_3_CHAT_LATEST,u.GPT_5_2,u.GPT_5_2_CHAT_LATEST,u.GPT_5_2_PRO,u.GPT_5_1,u.GPT_5_1_CHAT_LATEST,u.GPT_5,u.GPT_5_CHAT_LATEST,u.GPT_5_PRO,u.GPT_5_MINI,u.GPT_5_NANO,u.GPT_4_1,u.GPT_4_1_MINI,u.GPT_4_1_NANO,u.GPT_4O,u.GPT_4O_MINI,u.O4_MINI,u.O3,u.O3_PRO,u.O3_MINI],f=u.GPT_5_4_MINI;export{c as a,i as c,n as d,t as f,l as i,a as l,d as n,s as o,e as p,u as r,o as s,f as t,r as u};
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
//#region src/providers/anthropic/models.d.ts
|
|
2
|
-
declare const Models$3: {
|
|
3
|
-
readonly CLAUDE_SONNET_5: "claude-sonnet-5";
|
|
4
|
-
readonly CLAUDE_FABLE_5: "claude-fable-5";
|
|
5
|
-
readonly CLAUDE_OPUS_4_8: "claude-opus-4-8";
|
|
6
|
-
readonly CLAUDE_OPUS_4_7: "claude-opus-4-7";
|
|
7
|
-
readonly CLAUDE_SONNET_4_6: "claude-sonnet-4-6";
|
|
8
|
-
readonly CLAUDE_OPUS_4_6: "claude-opus-4-6";
|
|
9
|
-
readonly CLAUDE_OPUS_4_5_20251101: "claude-opus-4-5-20251101";
|
|
10
|
-
readonly CLAUDE_OPUS_4_5: "claude-opus-4-5-20251101";
|
|
11
|
-
readonly CLAUDE_SONNET_4_5_20250929: "claude-sonnet-4-5-20250929";
|
|
12
|
-
readonly CLAUDE_SONNET_4_5: "claude-sonnet-4-5-20250929";
|
|
13
|
-
readonly CLAUDE_HAIKU_4_5_20251001: "claude-haiku-4-5-20251001";
|
|
14
|
-
readonly CLAUDE_HAIKU_4_5: "claude-haiku-4-5-20251001";
|
|
15
|
-
readonly CLAUDE_OPUS_4_1_20250805: "claude-opus-4-1-20250805";
|
|
16
|
-
readonly CLAUDE_OPUS_4_1: "claude-opus-4-1-20250805";
|
|
17
|
-
readonly CLAUDE_OPUS_4_20250514: "claude-opus-4-20250514";
|
|
18
|
-
readonly CLAUDE_OPUS_4: "claude-opus-4-20250514";
|
|
19
|
-
readonly CLAUDE_SONNET_4_20250514: "claude-sonnet-4-20250514";
|
|
20
|
-
readonly CLAUDE_SONNET_4: "claude-sonnet-4-20250514";
|
|
21
|
-
};
|
|
22
|
-
declare const MULTIMODAL_MODELS$2: readonly ["claude-sonnet-5", "claude-fable-5", "claude-opus-4-8", "claude-opus-4-7", "claude-sonnet-4-6", "claude-opus-4-6", "claude-opus-4-5-20251101", "claude-sonnet-4-5-20250929", "claude-haiku-4-5-20251001", "claude-opus-4-1-20250805", "claude-opus-4-20250514", "claude-sonnet-4-20250514"];
|
|
23
|
-
declare const DEFAULT_MODEL$3: "claude-haiku-4-5-20251001";
|
|
24
|
-
//#endregion
|
|
25
|
-
//#region src/providers/chatcompletions/models.d.ts
|
|
26
|
-
declare const Models$2: {
|
|
27
|
-
readonly QWEN_3_6_35B_A3B: "qwen/qwen3.6-35b-a3b";
|
|
28
|
-
readonly QWEN_3_6_PLUS: "qwen/qwen3.6-plus";
|
|
29
|
-
readonly GEMMA_4_26B_A4B_IT: "google/gemma-4-26b-a4b-it";
|
|
30
|
-
readonly MINISTRAL_3_8B: "mistralai/ministral-8b-2512";
|
|
31
|
-
readonly MISTRAL_SMALL_4: "mistralai/mistral-small-2603";
|
|
32
|
-
readonly DEEPSEEK_V4_FLASH: "deepseek/deepseek-v4-flash";
|
|
33
|
-
readonly MINIMAX_M2: "minimax/minimax-m2";
|
|
34
|
-
};
|
|
35
|
-
declare const SMALL_OPEN_WEIGHT_MODELS: readonly ["qwen/qwen3.6-35b-a3b", "google/gemma-4-26b-a4b-it", "mistralai/ministral-8b-2512", "mistralai/mistral-small-2603", "deepseek/deepseek-v4-flash", "minimax/minimax-m2"];
|
|
36
|
-
declare const DEFAULT_MODEL$2: "qwen/qwen3.6-35b-a3b";
|
|
37
|
-
//#endregion
|
|
38
|
-
//#region src/providers/gemini/models.d.ts
|
|
39
|
-
declare const Models$1: {
|
|
40
|
-
readonly GEMINI_3_5_FLASH: "gemini-3.5-flash";
|
|
41
|
-
readonly GEMINI_3_1_PRO_PREVIEW: "gemini-3.1-pro-preview";
|
|
42
|
-
readonly GEMINI_3_1_PRO: "gemini-3.1-pro-preview";
|
|
43
|
-
readonly GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS: "gemini-3.1-pro-preview-customtools";
|
|
44
|
-
readonly GEMINI_3_1_FLASH_LITE_PREVIEW: "gemini-3.1-flash-lite-preview";
|
|
45
|
-
readonly GEMINI_3_1_FLASH_LITE: "gemini-3.1-flash-lite-preview";
|
|
46
|
-
readonly GEMINI_3_PRO_PREVIEW: "gemini-3-pro-preview";
|
|
47
|
-
readonly GEMINI_3_PRO: "gemini-3-pro-preview";
|
|
48
|
-
readonly GEMINI_3_FLASH_PREVIEW: "gemini-3-flash-preview";
|
|
49
|
-
readonly GEMINI_3_FLASH: "gemini-3-flash-preview";
|
|
50
|
-
readonly GEMINI_2_5_PRO: "gemini-2.5-pro";
|
|
51
|
-
readonly GEMINI_2_5_FLASH: "gemini-2.5-flash";
|
|
52
|
-
readonly GEMINI_2_5_FLASH_LITE: "gemini-2.5-flash-lite";
|
|
53
|
-
readonly GEMINI_2_0_FLASH: "gemini-2.0-flash";
|
|
54
|
-
readonly GEMINI_2_0_FLASH_001: "gemini-2.0-flash-001";
|
|
55
|
-
readonly GEMINI_2_0_FLASH_LITE: "gemini-2.0-flash-lite";
|
|
56
|
-
readonly GEMINI_2_0_FLASH_LITE_001: "gemini-2.0-flash-lite-001";
|
|
57
|
-
readonly GEMINI_FLASH_LATEST: "gemini-flash-latest";
|
|
58
|
-
readonly GEMINI_FLASH_LITE_LATEST: "gemini-flash-lite-latest";
|
|
59
|
-
readonly GEMINI_PRO_LATEST: "gemini-pro-latest";
|
|
60
|
-
};
|
|
61
|
-
declare const MULTIMODAL_MODELS$1: readonly ["gemini-3.5-flash", "gemini-3.1-pro-preview", "gemini-3.1-pro-preview-customtools", "gemini-3.1-flash-lite-preview", "gemini-3-pro-preview", "gemini-3-flash-preview", "gemini-2.5-pro", "gemini-2.5-flash", "gemini-2.5-flash-lite", "gemini-2.0-flash", "gemini-2.0-flash-lite", "gemini-flash-latest", "gemini-flash-lite-latest", "gemini-pro-latest"];
|
|
62
|
-
declare const DEFAULT_MODEL$1: "gemini-3.5-flash";
|
|
63
|
-
//#endregion
|
|
64
|
-
//#region src/providers/openai/models.d.ts
|
|
65
|
-
declare const Models: {
|
|
66
|
-
readonly GPT_5_5_2026_04_23: "gpt-5.5-2026-04-23";
|
|
67
|
-
readonly GPT_5_5: "gpt-5.5";
|
|
68
|
-
readonly GPT_5_5_PRO_2026_04_23: "gpt-5.5-pro-2026-04-23";
|
|
69
|
-
readonly GPT_5_5_PRO: "gpt-5.5-pro";
|
|
70
|
-
readonly GPT_5_4_2026_03_05: "gpt-5.4-2026-03-05";
|
|
71
|
-
readonly GPT_5_4: "gpt-5.4";
|
|
72
|
-
readonly GPT_5_4_PRO_2026_03_05: "gpt-5.4-pro-2026-03-05";
|
|
73
|
-
readonly GPT_5_4_PRO: "gpt-5.4-pro";
|
|
74
|
-
readonly GPT_5_4_MINI_2026_03_17: "gpt-5.4-mini-2026-03-17";
|
|
75
|
-
readonly GPT_5_4_MINI: "gpt-5.4-mini";
|
|
76
|
-
readonly GPT_5_4_NANO_2026_03_17: "gpt-5.4-nano-2026-03-17";
|
|
77
|
-
readonly GPT_5_4_NANO: "gpt-5.4-nano";
|
|
78
|
-
readonly GPT_5_3_CHAT_LATEST: "gpt-5.3-chat-latest";
|
|
79
|
-
readonly GPT_5_2_2025_12_11: "gpt-5.2-2025-12-11";
|
|
80
|
-
readonly GPT_5_2: "gpt-5.2";
|
|
81
|
-
readonly GPT_5_2_CHAT_LATEST: "gpt-5.2-chat-latest";
|
|
82
|
-
readonly GPT_5_2_PRO_2025_12_11: "gpt-5.2-pro-2025-12-11";
|
|
83
|
-
readonly GPT_5_2_PRO: "gpt-5.2-pro";
|
|
84
|
-
readonly GPT_5_1_2025_11_13: "gpt-5.1-2025-11-13";
|
|
85
|
-
readonly GPT_5_1: "gpt-5.1";
|
|
86
|
-
readonly GPT_5_1_CHAT_LATEST: "gpt-5.1-chat-latest";
|
|
87
|
-
readonly GPT_5_2025_08_07: "gpt-5-2025-08-07";
|
|
88
|
-
readonly GPT_5: "gpt-5";
|
|
89
|
-
readonly GPT_5_CHAT_LATEST: "gpt-5-chat-latest";
|
|
90
|
-
readonly GPT_5_PRO_2025_10_06: "gpt-5-pro-2025-10-06";
|
|
91
|
-
readonly GPT_5_PRO: "gpt-5-pro";
|
|
92
|
-
readonly GPT_5_MINI_2025_08_07: "gpt-5-mini-2025-08-07";
|
|
93
|
-
readonly GPT_5_MINI: "gpt-5-mini";
|
|
94
|
-
readonly GPT_5_NANO_2025_08_07: "gpt-5-nano-2025-08-07";
|
|
95
|
-
readonly GPT_5_NANO: "gpt-5-nano";
|
|
96
|
-
readonly GPT_4_1_2025_04_14: "gpt-4.1-2025-04-14";
|
|
97
|
-
readonly GPT_4_1: "gpt-4.1";
|
|
98
|
-
readonly GPT_4_1_MINI_2025_04_14: "gpt-4.1-mini-2025-04-14";
|
|
99
|
-
readonly GPT_4_1_MINI: "gpt-4.1-mini";
|
|
100
|
-
readonly GPT_4_1_NANO_2025_04_14: "gpt-4.1-nano-2025-04-14";
|
|
101
|
-
readonly GPT_4_1_NANO: "gpt-4.1-nano";
|
|
102
|
-
readonly GPT_4O_2024_11_20: "gpt-4o-2024-11-20";
|
|
103
|
-
readonly GPT_4O: "gpt-4o";
|
|
104
|
-
readonly GPT_4O_MINI_2024_07_18: "gpt-4o-mini-2024-07-18";
|
|
105
|
-
readonly GPT_4O_MINI: "gpt-4o-mini";
|
|
106
|
-
readonly O4_MINI_2025_04_16: "o4-mini-2025-04-16";
|
|
107
|
-
readonly O4_MINI: "o4-mini";
|
|
108
|
-
readonly O3_2025_04_16: "o3-2025-04-16";
|
|
109
|
-
readonly O3: "o3";
|
|
110
|
-
readonly O3_PRO_2025_06_10: "o3-pro-2025-06-10";
|
|
111
|
-
readonly O3_PRO: "o3-pro";
|
|
112
|
-
readonly O3_MINI_2025_01_31: "o3-mini-2025-01-31";
|
|
113
|
-
readonly O3_MINI: "o3-mini";
|
|
114
|
-
};
|
|
115
|
-
declare const MULTIMODAL_MODELS: readonly ["gpt-5.5", "gpt-5.5-pro", "gpt-5.4", "gpt-5.4-pro", "gpt-5.4-mini", "gpt-5.4-nano", "gpt-5.3-chat-latest", "gpt-5.2", "gpt-5.2-chat-latest", "gpt-5.2-pro", "gpt-5.1", "gpt-5.1-chat-latest", "gpt-5", "gpt-5-chat-latest", "gpt-5-pro", "gpt-5-mini", "gpt-5-nano", "gpt-4.1", "gpt-4.1-mini", "gpt-4.1-nano", "gpt-4o", "gpt-4o-mini", "o4-mini", "o3", "o3-pro", "o3-mini"];
|
|
116
|
-
declare const DEFAULT_MODEL: "gpt-5.4-mini";
|
|
117
|
-
//#endregion
|
|
118
|
-
export { MULTIMODAL_MODELS$1 as a, Models$2 as c, MULTIMODAL_MODELS$2 as d, Models$3 as f, DEFAULT_MODEL$1 as i, SMALL_OPEN_WEIGHT_MODELS as l, MULTIMODAL_MODELS as n, Models$1 as o, Models as r, DEFAULT_MODEL$2 as s, DEFAULT_MODEL as t, DEFAULT_MODEL$3 as u };
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { a as MULTIMODAL_MODELS$1, c as Models$1, d as MULTIMODAL_MODELS, f as Models, i as DEFAULT_MODEL$2, l as SMALL_OPEN_WEIGHT_MODELS, n as MULTIMODAL_MODELS$2, o as Models$2, r as Models$3, s as DEFAULT_MODEL$1, t as DEFAULT_MODEL$3, u as DEFAULT_MODEL } from "../models-DQDDU0Md.js";
|
|
2
|
-
export { DEFAULT_MODEL as ANTHROPIC_DEFAULT_MODEL, MULTIMODAL_MODELS as ANTHROPIC_MULTIMODAL_MODELS, Models as AnthropicModels, DEFAULT_MODEL$1 as CHAT_COMPLETIONS_DEFAULT_MODEL, SMALL_OPEN_WEIGHT_MODELS as CHAT_COMPLETIONS_SMALL_OPEN_WEIGHT_MODELS, Models$1 as ChatCompletionsModels, DEFAULT_MODEL$2 as GEMINI_DEFAULT_MODEL, MULTIMODAL_MODELS$1 as GEMINI_MULTIMODAL_MODELS, Models$2 as GeminiModels, DEFAULT_MODEL$3 as OPENAI_DEFAULT_MODEL, MULTIMODAL_MODELS$2 as OPENAI_MULTIMODAL_MODELS, Models$3 as OpenAIModels };
|
package/dist/providers/models.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,c as t,f as n,i as r,l as i,n as a,o,p as s,r as c,s as l,t as u,u as d}from"../models-CPMQlthm.js";export{d as ANTHROPIC_DEFAULT_MODEL,n as ANTHROPIC_MULTIMODAL_MODELS,s as AnthropicModels,l as CHAT_COMPLETIONS_DEFAULT_MODEL,i as CHAT_COMPLETIONS_SMALL_OPEN_WEIGHT_MODELS,t as ChatCompletionsModels,r as GEMINI_DEFAULT_MODEL,e as GEMINI_MULTIMODAL_MODELS,o as GeminiModels,u as OPENAI_DEFAULT_MODEL,a as OPENAI_MULTIMODAL_MODELS,c as OpenAIModels};
|