@clinebot/llms 0.0.29 → 0.0.30

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.js CHANGED
@@ -82,5 +82,5 @@ ${ln(u,n,o)}`.trim();return R}return(t==="yolo"?un:mn).replace("{{PLATFORM_NAME}
82
82
 
83
83
  `)}return a}function rc(e,a){let t=new TextEncoder,i=0;return new ReadableStream({async pull(n){if(i>=e.length){n.close();return}if(i>0&&a>0)await new Promise((o)=>setTimeout(o,a));n.enqueue(t.encode(e[i])),i+=1}})}function cc(e,a){if(!Er(e))process.stderr.write(`[VCR] Cassette file not found: ${e}
84
84
  `),process.exit(1);let t=JSON.parse($r(e,"utf-8")),i=Number.parseInt(process.env.CLINE_VCR_SSE_DELAY??"100",10),n=Array(t.length).fill(!1),o=globalThis.fetch;globalThis.fetch=Object.assign(async(p,d)=>{let u=Yn(p),x=Zn(p,d),{path:P}=$n(u),R=pt(P);if(a&&!P.includes(a))return o(p,d);let C=t.findIndex((y,E)=>{if(n[E])return!1;let v=pt(y.path);return y.method.toUpperCase()===x&&v===R});if(C>=0){n[C]=!0;let y=t[C],E=typeof y.response==="string"?y.response:JSON.stringify(y.response),v=new Headers;if(y.contentType)v.set("content-type",y.contentType);else if(typeof y.response==="string"&&y.response.trimStart().startsWith("data:"))v.set("content-type","text/event-stream");else if(typeof y.response==="object")v.set("content-type","application/json");let J=v.get("content-type")?.includes("text/event-stream")??!1;if(J)v.set("cache-control","no-cache"),v.set("connection","keep-alive");if(J&&typeof y.response==="string"){let Q=oc(y.response);if(Q.length>1){let ne=rc(Q,i);return new Response(ne,{status:y.status,headers:v})}}return new Response(E,{status:y.status,headers:v})}if(!a)throw Error(`[VCR] No matching recording for ${x} ${u} (path: ${R}). ${t.length} recording(s) loaded from ${e}.`);return o(p,d)},{preconnect:(p)=>{}});let r=a?`(only paths matching "*${a}*", all other requests go through normally)`:"(all requests intercepted)";process.stderr.write(`[VCR] Playing back ${t.length} recorded HTTP interaction(s) from ${e} ${r}
85
- `)}function Xn(e){let a=ic(e);if(!a)return;if(a.mode==="record")nc(a.cassettePath,a.filter);else cc(a.cassettePath,a.filter)}var Jr,Ur,zr,ac;var Jn=w(()=>{Ra();Jr=new Set(["accesskeyid","secretaccesskey","idtoken","refreshtoken","accessToken","access_token","refresh_token","apikey","api_key","authorization","password","secret","token","email","displayname","display_name","userInfo"]),Ur=["id","balance","cost","secret"];zr=[{pattern:/AKIA[A-Z0-9]{16}/g,replacement:"AKIA_REDACTED"},{pattern:/\/Users\/[A-Za-z0-9._-]+/g,replacement:"/Users/REDACTED_USER"},{pattern:/\/home\/[A-Za-z0-9._-]+/g,replacement:"/home/REDACTED_USER"}];ac=[{pattern:/tasks\/[A-Za-z0-9._-]+\/[A-Za-z0-9._-]+\/api_conversation_history/g,replacement:"tasks/usr-test/taskid/api_conversation_history"},{pattern:/\/(org|usr|mbr|ses|gen|req|msg|tsk|sch|exe|srv|cli|wkr|evt|sub|tkn)-[A-Za-z0-9]{10,}(?=[/?#]|$)/g,replacement:"/$1-REDACTED"}]});var Un={};L(Un,{zodToJsonSchema:()=>$e,xmlTagsRemoval:()=>Pa,withResolvedClineBuildEnv:()=>Rn,validateWithZod:()=>pn,upsertWorkspaceInfo:()=>Wr,truncateStr:()=>on,toAiSdkToolResultOutput:()=>Ga,serializeAbortReason:()=>_i,sanitizeFileName:()=>nn,safeJsonStringify:()=>ji,safeJsonParse:()=>zi,resolveRootSessionId:()=>qn,resolveReasoningEffortRatio:()=>qa,resolveReasoningBudgetFromRatio:()=>Ai,resolveProviderModelCatalogKeys:()=>ce,resolveHookSessionContext:()=>Gn,resolveHookLogPath:()=>Cn,resolveEffectiveReasoningEffort:()=>Bi,resolveClineBuildEnv:()=>Xe,registerDisposable:()=>Ke,processWorkspaceInfo:()=>dn,parseJsonStream:()=>Ui,normalizeUserInput:()=>Mi,noopBasicLogger:()=>Fi,maskSecret:()=>rn,isOAuthProviderId:()=>ba,isLikelyAuthError:()=>li,initVcr:()=>Xn,getShellArgs:()=>tn,getDefaultShell:()=>an,formatUserInputBlock:()=>vi,formatMessagesForAiSdk:()=>Oe,formatHumanReadableDate:()=>cn,formatFileContentBlock:()=>Ne,emptyWorkspaceManifest:()=>wr,disposeAll:()=>ki,createTool:()=>En,createSessionId:()=>Bn,createContributionRegistry:()=>fi,createClineTelemetryServiceMetadata:()=>st,createClineTelemetryServiceConfig:()=>Pn,buildClineSystemPrompt:()=>gn,augmentNodeCommandForDebug:()=>vn,WorkspaceManifestSchema:()=>Ln,WorkspaceInfoSchema:()=>_n,VertexSettingsSchema:()=>Ua,VertexModelSchema:()=>Ja,ToolContextSchema:()=>ri,ToolCallRecordSchema:()=>Fe,ThinkingConfigSchema:()=>xa,TeamTaskInputSchema:()=>Mr,TeamStatusInputSchema:()=>Dr,TeamSpawnTeammateInputSchema:()=>Tr,TeamShutdownTeammateInputSchema:()=>yr,TeamSendMessageInputSchema:()=>Ar,TeamRunTaskInputSchema:()=>Pr,TeamReviewOutcomeFragmentInputSchema:()=>Ir,TeamReadMailboxInputSchema:()=>Qr,TeamMessageType:()=>Nn,TeamLogUpdateInputSchema:()=>_r,TeamListRunsInputSchema:()=>Gr,TeamListOutcomesInputSchema:()=>Or,TeamFinalizeOutcomeInputSchema:()=>Nr,TeamCreateOutcomeInputSchema:()=>Fr,TeamCleanupInputSchema:()=>Lr,TeamCancelRunInputSchema:()=>qr,TeamBroadcastInputSchema:()=>Sr,TeamAwaitRunInputSchema:()=>Cr,TeamAwaitAllRunsInputSchema:()=>Br,TeamAttachOutcomeFragmentInputSchema:()=>Kr,TEAM_RUN_TEXT_PREVIEW_LIMIT:()=>fr,TEAM_RUN_MESSAGE_PREVIEW_LIMIT:()=>br,TEAM_AWAIT_TIMEOUT_MS:()=>kr,SESSION_STATUS_VALUES:()=>Sn,S3AccessKeySettingsSchema:()=>Ze,RemoteMCPServerSchema:()=>it,RemoteConfigSchema:()=>wn,ReasoningEffortSchema:()=>pi,RPC_TEAM_PROGRESS_EVENT_TYPE:()=>Tn,RPC_TEAM_LIFECYCLE_EVENT_TYPE:()=>yn,REMOTE_URI_SCHEME:()=>xn,REASONING_EFFORT_RATIOS:()=>se,PromptUploadingSchema:()=>nt,PLUGIN_FILE_EXTENSIONS:()=>yi,OpenAiCompatibleSchema:()=>Ea,OpenAiCompatibleModelSchema:()=>Ha,OAUTH_PROVIDER_IDS:()=>ka,ModelStatusSchema:()=>ga,ModelPricingSchema:()=>ha,ModelInfoSchema:()=>Te,ModelCapabilitySchema:()=>da,MODELS_DEV_PROVIDER_KEY_MAP:()=>Ee,MODELS_DEV_PROVIDER_KEY_ENTRIES:()=>He,LiteLLMSchema:()=>za,LiteLLMModelSchema:()=>ja,HookEngine:()=>Ma,GlobalInstructionsFileSchema:()=>Ye,EnterpriseTelemetrySchema:()=>ot,DEFAULT_REQUEST_HEADERS:()=>Qi,DEFAULT_REASONING_EFFORT:()=>Ci,DEFAULT_OUTCOME_REQUIRED_SECTIONS:()=>Kn,ContributionRegistry:()=>Ie,ConnectorHookEventSchema:()=>xi,ConnectorHookEventNameSchema:()=>Ta,ConnectorEventContextSchema:()=>Da,ConnectorEventActorSchema:()=>ya,ConnectorAuthorizationRequestSchema:()=>gi,ConnectorAuthorizationDecisionSchema:()=>hi,ClineSettingsSchema:()=>Xa,ClineModelSchema:()=>Za,CLINE_DEFAULT_RPC_PORT:()=>bn,CLINE_DEFAULT_RPC_ADDRESS:()=>fn,CLINE_DEBUG_PORT_BASE_ENV:()=>ct,CLINE_DEBUG_HOST_ENV:()=>rt,CLINE_BUILD_ENV_ENV:()=>Re,AwsBedrockSettingsSchema:()=>Ya,AwsBedrockModelSchema:()=>Va,AwsBedrockCustomModelSchema:()=>$a,ApiFormatSchema:()=>la,ApiFormat:()=>oi,AnthropicSchema:()=>at,AnthropicModelSchema:()=>et,AllowedMCPServerSchema:()=>tt,AgentUsageSchema:()=>si,AgentResultSchema:()=>L0,AgentFinishReasonSchema:()=>ci,AgentConfigSchema:()=>F0,AUTH_ERROR_PATTERNS:()=>fa,APIKeySchema:()=>Wn});var ve=w(()=>{di();wi();Ra();Ti();Di();Ri();Pi();qi();wa();Si();Li();Wa();Ki();en();Na();hn();kn();Mn();An();Qn();Vn();Jn();ui();Fn();Hn()});function q(e){let a=e.trim();return Bc[a]??a}var je,Bc,Me;var Pe=w(()=>{((h)=>{h.ANTHROPIC="anthropic";h.CLAUDE_CODE="claude-code";h.CLINE="cline";h.OPENAI_NATIVE="openai-native";h.OPENAI_CODEX="openai-codex";h.OPENCODE="opencode";h.BEDROCK="bedrock";h.VERTEX="vertex";h.GEMINI="gemini";h.OLLAMA="ollama";h.LMSTUDIO="lmstudio";h.DEEPSEEK="deepseek";h.XAI="xai";h.TOGETHER="together";h.FIREWORKS="fireworks";h.GROQ="groq";h.CEREBRAS="cerebras";h.SAMBANOVA="sambanova";h.NEBIUS="nebius";h.BASETEN="baseten";h.REQUESTY="requesty";h.LITELLM="litellm";h.HUGGINGFACE="huggingface";h.VERCEL_AI_GATEWAY="vercel-ai-gateway";h.AIHUBMIX="aihubmix";h.HICAP="hicap";h.NOUS_RESEARCH="nousResearch";h.HUAWEI_CLOUD_MAAS="huawei-cloud-maas";h.WANDB="wandb";h.XIAOMI="xiaomi";h.KILO="kilo";h.QWEN="qwen";h.QWEN_CODE="qwen-code";h.DOUBAO="doubao";h.MISTRAL="mistral";h.MOONSHOT="moonshot";h.ASKSAGE="asksage";h.ZAI="zai";h.MINIMAX="minimax";h.DIFY="dify";h.OCA="oca";h.SAPAICORE="sapaicore";h.OPENROUTER="openrouter"})(je||={});Bc={openai:"openai-native",togetherai:"together","sap-ai-core":"sapaicore"},Me=Object.values(je)});var bo={};L(bo,{resetLangfuseTelemetryForTests:()=>Kc,hasLangfuseTelemetryConfig:()=>ko,ensureLangfuseTelemetry:()=>Qc,disposeLangfuseTelemetry:()=>Wt,debugLangfuse:()=>O});function Wo(){let e=process?.env,a=e?.LANGFUSE_BASE_URL?.trim(),t=e?.LANGFUSE_PUBLIC_KEY?.trim(),i=e?.LANGFUSE_SECRET_KEY?.trim();if(!a||!t||!i)return;return{baseUrl:a,publicKey:t,secretKey:i}}function ko(){return Wo()!==void 0}async function Qc(e){if(!ko())return!1;if(te!==void 0)return O(`cached readiness=${String(te)}`),te;if(!aa)aa=_c();return te=await aa,O(`initialized readiness=${String(te)}`),te}async function _c(){let{registerDisposable:e}=await Promise.resolve().then(() => (ve(),Un));e(Wt);let a=Wo();if(!a)return!1;try{let[{LangfuseSpanProcessor:t},{trace:i},{NodeTracerProvider:n}]=await Promise.all([import("@langfuse/otel"),import("@opentelemetry/api"),import("@opentelemetry/sdk-trace-node")]),o=new t({baseUrl:a.baseUrl,publicKey:a.publicKey,secretKey:a.secretKey});O(`creating span processor baseUrl=${a.baseUrl}`);let r=i.getTracerProvider();if(typeof r?.addSpanProcessor==="function"){r.addSpanProcessor(o);let x=wo(i);return O(`attached processor to existing tracer provider delegateReady=${String(x)}`),x}let p=r?.constructor?.name;if(p&&p!=="ProxyTracerProvider"&&p!=="NoopTracerProvider")return!1;new n({spanProcessors:[o]}).register();let u=wo(i);return O(`registered NodeTracerProvider delegateReady=${String(u)}`),u}catch(t){return O(`initialization failed error=${t instanceof Error?t.message:String(t)}`),!1}}function wo(e){let i=e.getTracerProvider().getDelegate?.()?.constructor?.name;return Boolean(i&&i!=="NoopTracerProvider")}async function Lc(){try{let{trace:e}=await import("@opentelemetry/api");await e.getTracerProvider().getDelegate?.()?.forceFlush?.(),O("forceFlush completed")}catch(e){O(`forceFlush failed error=${e instanceof Error?e.message:String(e)}`)}}async function Wt(){try{await Lc();let{trace:e}=await import("@opentelemetry/api");await e.getTracerProvider().getDelegate?.()?.shutdown?.(),O("shutdown completed")}catch(e){O(`shutdown failed error=${e instanceof Error?e.message:String(e)}`)}}function O(e){if(!Fc())return;console.warn(`[langfuse-debug] ${e}`)}function Fc(){let e=process.env.CLINE_DEBUG_LANGFUSE;if(!e)return!1;let a=e.trim().toLowerCase();return a==="1"||a==="true"||a==="yes"}function Kc(){te=void 0,aa=void 0}var te,aa;async function S(e){let a=e.apiKey?.trim();if(a)return a;let i=(await e.apiKeyResolver?.())?.trim();if(i)return i;for(let n of e.apiKeyEnv??[]){let o=Nc(n);if(o)return o}return}function fo(e,a){let t=q(e),i=a?.filter((o)=>o.trim().length>0)??[],n=i.length>0?i.join(", "):"provider-specific API key env var";return`Missing API key for provider "${t}". Set apiKey explicitly or one of: ${n}.`}function Ic(e){if(!e)return!1;for(let[a,t]of Object.entries(e))if(a.toLowerCase()==="authorization"&&String(t).trim())return!0;return!1}function To(e,a){if(Ic(a.headers))return!0;return q(e)==="lmstudio"}function Nc(e){let a=globalThis.process?.env;if(!a)return;let t=a[e];if(typeof t!=="string")return;let i=t.trim();return i.length>0?i:void 0}var $=w(()=>{Pe()});var yo={};L(yo,{createOpenAIProviderModule:()=>Hc});import{createOpenAI as Oc}from"@ai-sdk/openai";async function Hc(e,a){let t=await S(e),i=Oc({apiKey:t,headers:e.headers,fetch:e.fetch,name:a.provider.id});return{model:(n)=>i.responses(n)}}var Do=w(()=>{$()});var Ro={};L(Ro,{createOpenAICompatibleProviderModule:()=>Vc});import{createOpenAICompatible as Ec}from"@ai-sdk/openai-compatible";async function Vc(e,a){let t=await S(e);if(!t&&!To(a.provider.id,e))throw Error(fo(a.provider.id,a.provider.apiKeyEnv));let i=Ec({name:a.provider.id,apiKey:t,...e.baseUrl?{baseURL:e.baseUrl}:{},...e.headers?{headers:e.headers}:{},...e.fetch?{fetch:e.fetch}:{},includeUsage:!0});return{model:(n)=>i(n)}}var vo=w(()=>{$()});var Mo={};L(Mo,{createAnthropicProviderModule:()=>Yc});import{createAnthropic as $c}from"@ai-sdk/anthropic";async function Yc(e,a){let t=await S(e),i=$c({apiKey:t,headers:e.headers,fetch:e.fetch,name:a.provider.id});return{model:(n)=>i(n)}}var Po=w(()=>{$()});var Go={};L(Go,{createGoogleProviderModule:()=>Xc});import{createGoogleGenerativeAI as Zc}from"@ai-sdk/google";async function Xc(e,a){let t=await S(e),i=Zc({apiKey:t,headers:e.headers,fetch:e.fetch,name:a.provider.id});return{model:(n)=>i(n)}}var qo=w(()=>{$()});var Co={};L(Co,{createVertexProviderModule:()=>jc});import{createVertex as Jc}from"@ai-sdk/google-vertex";import{createVertexAnthropic as Uc}from"@ai-sdk/google-vertex/anthropic";async function jc(e,a){let t=String(e.options?.project??e.options?.projectId??""),i=String(e.options?.location??e.options?.region??"us-central1");if(a.model.id.toLowerCase().includes("claude")){let o=Uc({project:t,location:i,baseURL:e.baseUrl,headers:e.headers,fetch:e.fetch});return{model:(r)=>o(r)}}let n=Jc({project:t,location:i,apiKey:await S(e),baseURL:e.baseUrl,headers:e.headers,fetch:e.fetch});return{model:(o)=>n(o)}}var Bo=w(()=>{$()});var Ao={};L(Ao,{createBedrockProviderModule:()=>es});import{createAmazonBedrock as zc}from"@ai-sdk/amazon-bedrock";async function es(e){let a=typeof e.options?.credentialProvider==="function"?e.options.credentialProvider:void 0,t=zc({region:e.options?.region,apiKey:await S(e),accessKeyId:e.options?.accessKeyId,secretAccessKey:e.options?.secretAccessKey,sessionToken:e.options?.sessionToken,baseURL:e.baseUrl,headers:e.headers,fetch:e.fetch,credentialProvider:a});return{model:(i)=>t(i)}}var So=w(()=>{$()});var Qo={};L(Qo,{createMistralProviderModule:()=>ts});import{createMistral as as}from"@ai-sdk/mistral";async function ts(e){let a=as({apiKey:await S(e),baseURL:e.baseUrl,headers:e.headers,fetch:e.fetch});return{model:(t)=>a(t)}}var _o=w(()=>{$()});var Ge={};L(Ge,{createOpenCodeProviderModule:()=>ps,createOpenAICodexProviderModule:()=>ss,createDifyProviderModule:()=>ms,createClaudeCodeProviderModule:()=>cs});import{createClaudeCode as is}from"ai-sdk-provider-claude-code";import{createCodexExec as ns}from"ai-sdk-provider-codex-cli";import{createOpencode as os}from"ai-sdk-provider-opencode-sdk";import{createDifyProvider as rs}from"dify-ai-provider";function ta(e){return e.options??{}}async function cs(e){let a=is(ta(e));return{model:(t)=>a(t)}}async function ss(e){let a=ns(ta(e));return{model:(t)=>a(t)}}async function ps(e){let a=os(ta(e));return{model:(t)=>a(t)}}async function ms(e){let a=await S(e),t=rs({baseURL:e.baseUrl,headers:e.headers,fetch:e.fetch,...ta(e)});return{model:(i)=>t(i,{apiKey:a})}}var qe=w(()=>{$()});var I={};L(I,{createVertexProvider:()=>Dt,createOpenCodeProvider:()=>Gt,createOpenAIProvider:()=>bt,createOpenAICompatibleProvider:()=>ft,createOpenAICodexProvider:()=>Pt,createMistralProvider:()=>vt,createGoogleProvider:()=>yt,createDifyProvider:()=>qt,createClaudeCodeProvider:()=>Mt,createBedrockProvider:()=>Rt,createAnthropicProvider:()=>Tt});import{streamText as us}from"ai";import{nanoid as ls}from"nanoid";import{z as ds}from"zod";function ie(e){let a=e.model.metadata?.family;return typeof a==="string"?a:void 0}function le(e){if(typeof e.family==="string")return e.family.toLowerCase().includes("claude");return gs(e.modelId)}function gs(e){if(!e)return!1;let a=e.toLowerCase();return a.startsWith("anthropic/")||a.startsWith("claude-")||a.includes("/claude-")}function No(e){return e.replace(/-([a-z0-9])/gi,(a,t)=>t.toUpperCase())}function ue(){return{cache_control:{type:"ephemeral"}}}function Lo(e,a){let t={openaiCompatible:ue(),[e]:ue()},i=No(e);if(i!==e)t[i]=ue();if(a)t.anthropic=ue();return t}function hs(e,a,t){if(!e)return;let i=e.content;if(typeof i==="string"){e.content=[{type:"text",text:i,providerOptions:Lo(a,t)}];return}if(!Array.isArray(i))return;for(let n=i.length-1;n>=0;n--){let o=i[n];if(o&&typeof o==="object"&&o.type==="text"){i[n]={...o,providerOptions:Lo(a,t)};return}}}function xs(e,a,t){let i=Ho(e.messages,t),n=le({modelId:e.modelId,family:ie(a)});for(let o=i.length-1;o>=0;o--)if(i[o]?.role==="user"){hs(i[o],e.providerId,n);break}return i}function ws(e,a){return le({modelId:e.modelId,family:ie(a)})}function Oo(e){if(typeof e.explicitBudgetTokens==="number"&&e.explicitBudgetTokens>0)return e.explicitBudgetTokens;if(!e.modelId&&!e.family||!le({modelId:e.modelId,family:e.family})||!e.effort||typeof e.maxTokens!=="number"||e.maxTokens<=1024)return;let t={low:0.2,medium:0.5,high:0.8}[e.effort];if(!t)return;let i=Math.min(e.maxTokens-1,128000);return Math.max(1024,Math.floor(i*t))}function Ws(e,a){if(!le({modelId:e.modelId,family:ie(a)})||!e.reasoning?.enabled&&!e.reasoning?.effort&&typeof e.reasoning?.budgetTokens!=="number")return;let t=Oo({modelId:e.modelId,family:ie(a),effort:e.reasoning?.effort,maxTokens:e.maxTokens,explicitBudgetTokens:e.reasoning?.budgetTokens}),i={};if(e.reasoning?.enabled===!0)i.enabled=!0;if(typeof t==="number"&&t>=0)i.max_tokens=t;else if(e.reasoning?.effort)i.effort=e.reasoning.effort;else if(e.reasoning?.budgetTokens===0)i.max_tokens=0;return Object.keys(i).length>0?i:void 0}function ks(e,a){if(!e.reasoning?.enabled&&!e.reasoning?.effort&&typeof e.reasoning?.budgetTokens!=="number")return;let t=le({modelId:e.modelId,family:ie(a)})?Oo({modelId:e.modelId,family:ie(a),effort:e.reasoning?.effort,maxTokens:e.maxTokens,explicitBudgetTokens:e.reasoning?.budgetTokens}):e.reasoning?.budgetTokens,i={...e.reasoning?.enabled===!0||e.reasoning?.effort?{enabled:!0}:{},...e.reasoning?.effort?{effort:e.reasoning.effort}:{}};if(typeof t==="number"&&t>=0)i.max_tokens=t;return Object.keys(i).length>0?i:void 0}async function bs(e){try{return(await Promise.resolve().then(() => bo)).ensureLangfuseTelemetry(e)}catch{return!1}}function Ho(e,a){let t=[];for(let i of e){let n=[];for(let o of i.content){if(o.type==="text"){n.push({type:"text",text:o.text});continue}if(o.type==="reasoning"){let r=o.metadata?.signature,p=o.metadata?.redactedData;n.push({type:"reasoning",text:o.text,...typeof r==="string"||typeof p==="string"?{providerOptions:{anthropic:{...typeof r==="string"?{signature:r}:{},...typeof p==="string"?{redactedData:p}:{}}}}:{}});continue}if(o.type==="file"){n.push({type:"file",path:o.path,content:o.content});continue}if(o.type==="tool-call"){let r=o.metadata?.thoughtSignature??o.metadata?.thought_signature;n.push({type:"tool-call",toolCallId:o.toolCallId,toolName:o.toolName,input:o.input,...typeof r==="string"?{providerOptions:{google:{thoughtSignature:r}}}:{}});continue}if(o.type==="tool-result")n.push({type:"tool-result",toolCallId:o.toolCallId,toolName:o.toolName,output:o.output,isError:o.isError??!1})}if(n.length>0)t.push({role:i.role,content:n});else if(i.role==="user"||i.role==="assistant")t.push({role:i.role,content:""})}return Oe(a,t,{assistantToolCallArgKey:"input"})}function fs(e){if(!e.tools?.length)return;return Object.fromEntries(e.tools.map((a)=>[a.name,{description:a.description,inputSchema:ds.fromJSONSchema(a.inputSchema)}]))}function Ts(e,a){let t=No(e.providerId),i=le({modelId:e.modelId,family:ie(a)}),n=Ws(e,a),o=ks(e,a),p={...e.reasoning?.enabled===!0||typeof e.reasoning?.effort==="string"?{thinking:{type:"adaptive"}}:{},...e.reasoning?.effort?{effort:e.reasoning.effort}:{},...ue()},d={...e.reasoning?.enabled===!0?{thinking:{type:"adaptive"}}:{},...e.reasoning?.effort?{effort:e.reasoning.effort}:{},...e.reasoning?.effort?{reasoningEffort:e.reasoning.effort}:{},...e.reasoning?.effort&&!i?{reasoningSummary:"auto"}:{},...n?{reasoning:n}:{},...ue()},u=e.reasoning?.effort?{thinkingConfig:{thinkingLevel:e.reasoning.effort,includeThoughts:!0}}:void 0,x={anthropic:p,openaiCompatible:d};if(e.providerId!=="anthropic")x[e.providerId]={...d,...e.providerId==="cline"&&o?{reasoning:o}:{}};if(e.providerId==="google"||e.providerId==="gemini")x.google=u;if(t!==e.providerId&&t!=="anthropic")x[t]=d;return x}function ys(e,a){if(e==="tool-calls"||e==="tool_calls"||a)return"tool-calls";if(e==="length"||e==="max_tokens")return"max-tokens";if(e==="error")return"error";return"stop"}function me(e,...a){for(let t of a){let i=e[t];if(typeof i==="number"&&Number.isFinite(i))return i;if(typeof i==="string"&&i.trim().length>0&&Number.isFinite(Number(i)))return Number(i)}return 0}function kt(e,...a){return a.some((t)=>K(e[t])!==void 0)}function K(e){if(typeof e==="number"&&Number.isFinite(e))return e;if(typeof e==="string"&&e.trim().length>0&&Number.isFinite(Number(e)))return Number(e);return}function Fo(e,...a){let t=e;for(let i of a){if(!t||typeof t!=="object")return 0;t=t[i]}return typeof t==="number"&&Number.isFinite(t)?t:0}function Ds(e){if(!e||typeof e!=="object")return;let a=e;for(let t of Object.values(a)){if(!t||typeof t!=="object")continue;let i=t;if(i.usage&&typeof i.usage==="object")return i.usage}return}function Rs(e,a){if(!a||typeof a!=="object")return;let t=a,i=K(t.input),n=K(t.output);if(i===void 0||n===void 0)return;let o=K(t.cacheRead)??0,r=K(t.cacheWrite)??i*1.25;return Math.max(0,e.inputTokens-e.cacheReadTokens-e.cacheWriteTokens)/1e6*i+e.outputTokens/1e6*n+e.cacheReadTokens/1e6*o+e.cacheWriteTokens/1e6*r}function Ko(e,a,t){let i=e&&typeof e==="object"?e:{},n=Ds(a),o=a&&typeof a==="object"?a:{},r=o.gateway&&typeof o.gateway==="object"?o.gateway:{},p=K(i.cost_details?.upstream_inference_cost),d=kt(i,"market_cost","marketCost","cost")||kt(r,"marketCost","cost")||p!==void 0||kt(i,"upstream_inference_cost"),u=K(i.market_cost)??K(i.marketCost)??K(r.marketCost)??K(i.cost)??K(r.cost)??p??K(i.upstream_inference_cost),x={inputTokens:me(i,"inputTokens","input_tokens","prompt_tokens"),outputTokens:me(i,"outputTokens","output_tokens","completion_tokens"),cacheReadTokens:Fo(i,"inputTokenDetails","cacheReadTokens")||me(i,"cachedInputTokens","cacheReadTokens","cache_read_tokens","cache_read_input_tokens")||Fo(i,"prompt_tokens_details","cached_tokens")||me(n??{},"cachedInputTokens","cacheReadTokens","cache_read_tokens","cache_read_input_tokens"),cacheWriteTokens:me(i,"cacheWriteTokens","cache_write_tokens","cache_creation_input_tokens")||me(n??{},"cacheWriteTokens","cache_write_tokens","cache_creation_input_tokens")},P=u!==void 0?u:d?void 0:Rs(x,t);return{...x,...typeof P==="number"?{totalCost:P}:{}}}function vs(e){if(!e)return;let a=()=>{};if(e.usage&&typeof e.usage.catch==="function")e.usage.catch(a);if(e.text&&typeof e.text.catch==="function")e.text.catch(a);for(let t of Object.keys(e)){let i=e[t];if(i&&typeof i==="object"&&typeof i.catch==="function")i.catch(a)}}function Eo(e){if(e instanceof Error){if(e.name==="AI_MissingToolResultsError"||e.message.includes("Tool result is missing for tool call"))return"A previous turn left an unfinished tool call in the conversation history. The runtime will need to resume from a repaired history state before sending more user content.";if(e.name==="AI_NoOutputGeneratedError"||e.message.includes("No output generated. Check the stream for errors."))return"The model stream ended without producing output. This usually means an earlier tool-call or prompt-formatting error interrupted the turn."}if(e&&typeof e==="object"&&"statusCode"in e&&"responseBody"in e){let a=e,t=typeof a.statusCode==="number"?a.statusCode:void 0;if(typeof a.responseBody==="string")try{let i=JSON.parse(a.responseBody),n=typeof i.error==="string"?i.error:typeof i.error?.message==="string"?i.error.message:void 0;if(n)return t?`${t} ${n}`:n}catch{}if(typeof a.message==="string"&&a.message.trim())return t?`${t} ${a.message}`:a.message}if(e&&typeof e==="object"&&"cause"in e&&e.cause)return Eo(e.cause);if(e instanceof Error&&e.message.trim())return e.message;return String(e)}function Io(e){let a={};if(typeof e.thoughtSignature==="string")a.thoughtSignature=e.thoughtSignature;if(typeof e.thought_signature==="string")a.thought_signature=e.thought_signature;let t=e.providerMetadata&&typeof e.providerMetadata==="object"?e.providerMetadata:void 0,i=t?.google&&typeof t.google==="object"?t.google:void 0;if(typeof a.thoughtSignature!=="string"&&typeof i?.thoughtSignature==="string")a.thoughtSignature=i.thoughtSignature;if(typeof a.thought_signature!=="string"&&typeof i?.thought_signature==="string")a.thought_signature=i.thought_signature;return Object.keys(a).length>0?a:void 0}async function*Ms(e,a){let t=!1,i;if(e.fullStream)for await(let n of e.fullStream){if(n.type==="text-delta"){let o=n.textDelta??n.text??n.delta;if(o)yield{type:"text-delta",text:o};continue}if(n.type==="reasoning-delta"||n.type==="reasoning"){let o=n.textDelta??n.text??n.reasoning;if(o)yield{type:"reasoning-delta",text:o,metadata:Io(n)};continue}if(n.type==="tool-call"){t=!0;let o=n.input??n.args??{},r=typeof o==="string"?o:JSON.stringify(o);yield{type:"tool-call-delta",toolCallId:n.toolCallId??n.id??`tool_${ls()}`,toolName:n.toolName??n.name??"tool",input:typeof o==="string"?void 0:o,inputText:r,metadata:Io(n)};continue}if(n.type==="finish")yield{type:"usage",usage:Ko(n.usage??n.totalUsage??{},n.providerMetadata,a)},i=n.finishReason??n.reason}else if(e.textStream)for await(let n of e.textStream)yield{type:"text-delta",text:n};if(e.usage){let n=await e.usage;yield{type:"usage",usage:Ko(n,void 0,a)}}yield{type:"finish",reason:ys(i,t)}}async function Ps(e,a,t){switch(e){case"openai":{let{createOpenAIProviderModule:i}=await Promise.resolve().then(() => (Do(),yo));return i(a,t)}case"openai-compatible":{let{createOpenAICompatibleProviderModule:i}=await Promise.resolve().then(() => (vo(),Ro));return i(a,t)}case"anthropic":{let{createAnthropicProviderModule:i}=await Promise.resolve().then(() => (Po(),Mo));return i(a,t)}case"google":{let{createGoogleProviderModule:i}=await Promise.resolve().then(() => (qo(),Go));return i(a,t)}case"vertex":{let{createVertexProviderModule:i}=await Promise.resolve().then(() => (Bo(),Co));return i(a,t)}case"bedrock":{let{createBedrockProviderModule:i}=await Promise.resolve().then(() => (So(),Ao));return i(a)}case"mistral":{let{createMistralProviderModule:i}=await Promise.resolve().then(() => (_o(),Qo));return i(a)}case"claude-code":{let{createClaudeCodeProviderModule:i}=await Promise.resolve().then(() => (qe(),Ge));return i(a)}case"openai-codex":{let{createOpenAICodexProviderModule:i}=await Promise.resolve().then(() => (qe(),Ge));return i(a)}case"opencode":{let{createOpenCodeProviderModule:i}=await Promise.resolve().then(() => (qe(),Ge));return i(a)}case"dify":{let{createDifyProviderModule:i}=await Promise.resolve().then(() => (qe(),Ge));return i(a)}}}function H(e){return async(a)=>({async*stream(t,i){let n;try{let o=await Ps(e,a,i),r=await bs(a.providerId);n=us({model:o.model(i.model.id),messages:ws(t,i)?xs(t,i,t.systemPrompt):Ho(t.messages,t.systemPrompt),tools:fs(t),temperature:t.temperature,maxOutputTokens:t.maxTokens,abortSignal:t.signal,experimental_telemetry:{isEnabled:r},providerOptions:Ts(t,i),onError:()=>{}}),yield*Ms(n,i.model.metadata?.pricing)}catch(o){vs(n),yield{type:"finish",reason:"error",error:Eo(o)}}}})}var bt,ft,Tt,yt,Dt,Rt,vt,Mt,Pt,Gt,qt;var _=w(()=>{ve();bt=H("openai"),ft=H("openai-compatible"),Tt=H("anthropic"),yt=H("google"),Dt=H("vertex"),Rt=H("bedrock"),vt=H("mistral"),Mt=H("claude-code"),Pt=H("openai-codex"),Gt=H("opencode"),qt=H("dify")});we();var Jt="https://code-internal.aiservice.us-chicago-1.oci.oraclecloud.com/20250206/app/litellm",sa="https://code.aiservice.us-chicago-1.oci.oraclecloud.com/20250206/app/litellm";function v0(e){return Object.fromEntries(Object.entries(e).map(([a,t])=>[a,{...t}]))}function pa(e){return v0(j(e))}function ca(e){let a=Object.entries(pa("anthropic")).find(([t])=>e(t));if(a)return a[1];return{id:"sonnet",name:"Claude Sonnet",capabilities:["streaming","reasoning"]}}function M0(){function e(a){return{...a==="opus"?ca((i)=>i.includes("opus")):a==="haiku"?ca((i)=>i.includes("haiku")):ca((i)=>i.includes("sonnet")),id:a,name:`Claude ${a.charAt(0).toUpperCase()}${a.slice(1)}`}}return{opus:e("opus"),sonnet:e("sonnet"),haiku:e("haiku")}}function P0(e){if(!e.capabilities?.includes("tools"))return e;return{...e,capabilities:e.capabilities.filter((a)=>a!=="tools")}}function G0(){return Object.fromEntries(Object.entries(pa("openai")).map(([e,a])=>[e,P0(a)]))}function q0(e,a){let t=new Set(["text"]);for(let n of a.capabilities??[])switch(n){case"tools":t.add("tools");break;case"reasoning":t.add("reasoning");break;case"images":t.add("images");break;case"structured_output":t.add("structured-output");break}let i={};if(a.family)i.family=a.family;if(a.pricing)i.pricing=a.pricing;if(a.status)i.status=a.status;if(a.releaseDate)i.releaseDate=a.releaseDate;return{id:a.id,name:a.name??a.id,providerId:e,description:a.description,contextWindow:a.contextWindow,maxOutputTokens:a.maxTokens,capabilities:[...t],metadata:Object.keys(i).length>0?i:void 0}}function C0(e){switch(e.family){case"openai":return"openai-responses";case"anthropic":case"bedrock":return"anthropic";case"google":case"vertex":return"gemini";default:return"openai-chat"}}function B0(e){switch(e.family){case"openai":return"openai";case"anthropic":return"anthropic";case"google":return"gemini";case"vertex":return"vertex";case"bedrock":return"bedrock";case"mistral":case"claude-code":case"openai-codex":case"opencode":case"dify":return"ai-sdk-community";default:return"openai-compatible"}}var A0=[{id:"cline",name:"Cline",description:"Cline API endpoint",family:"openai-compatible",capabilities:["reasoning","prompt-cache","tools","oauth"],modelsProviderId:"vercel-ai-gateway",defaultModelId:"anthropic/claude-sonnet-4.6",apiKeyEnv:["CLINE_API_KEY"],defaults:{baseUrl:"https://api.cline.bot/api/v1"}},{id:"deepseek",name:"DeepSeek",description:"Advanced AI models with reasoning capabilities",family:"openai-compatible",capabilities:["reasoning","prompt-cache"],defaultModelId:"deepseek-chat",apiKeyEnv:["DEEPSEEK_API_KEY"],defaults:{baseUrl:"https://api.deepseek.com/v1"}},{id:"xai",name:"xAI",description:"Creator of Grok AI assistant",family:"openai-compatible",capabilities:["reasoning"],defaultModelId:"grok-4.20-0309-non-reasoning",apiKeyEnv:["XAI_API_KEY"],defaults:{baseUrl:"https://api.x.ai/v1"}},{id:"together",name:"Together AI",description:"Fast inference for open-source models",family:"openai-compatible",capabilities:["reasoning"],defaultModelId:"Qwen/Qwen3.5-397B-A17B",apiKeyEnv:["TOGETHER_API_KEY"],defaults:{baseUrl:"https://api.together.xyz/v1"}},{id:"fireworks",name:"Fireworks AI",description:"High-performance inference platform",family:"openai-compatible",defaultModelId:"accounts/fireworks/models/minimax-m2p5",apiKeyEnv:["FIREWORKS_API_KEY"],defaults:{baseUrl:"https://api.fireworks.ai/inference/v1"}},{id:"groq",name:"Groq",description:"Ultra-fast LPU inference",family:"openai-compatible",defaultModelId:"moonshotai/kimi-k2-instruct-0905",apiKeyEnv:["GROQ_API_KEY"],defaults:{baseUrl:"https://api.groq.com/openai/v1"}},{id:"cerebras",name:"Cerebras",description:"Fast inference on Cerebras wafer-scale chips",family:"openai-compatible",defaultModelId:"zai-glm-4.7",apiKeyEnv:["CEREBRAS_API_KEY"],defaults:{baseUrl:"https://api.cerebras.ai/v1"}},{id:"sambanova",name:"SambaNova",description:"High-performance AI inference",family:"openai-compatible",apiKeyEnv:["SAMBANOVA_API_KEY"],modelsProviderId:"sambanova",defaults:{baseUrl:"https://api.sambanova.ai/v1"}},{id:"nebius",name:"Nebius",description:"European cloud AI infrastructure",family:"openai-compatible",defaultModelId:"nvidia/nemotron-3-super-120b-a12b",apiKeyEnv:["NEBIUS_API_KEY"],defaults:{baseUrl:"https://api.studio.nebius.ai/v1"}},{id:"baseten",name:"Baseten",description:"ML inference platform",family:"openai-compatible",apiKeyEnv:["BASETEN_API_KEY"],modelsProviderId:"baseten",defaults:{baseUrl:"https://model-api.baseten.co/v1"}},{id:"requesty",name:"Requesty",description:"AI router with multiple provider support",family:"openai-compatible",capabilities:["reasoning"],defaultModelId:"openai/gpt-5.4",apiKeyEnv:["REQUESTY_API_KEY"],modelsProviderId:"requesty",defaults:{baseUrl:"https://router.requesty.ai/v1"}},{id:"litellm",name:"LiteLLM",description:"Self-hosted LLM proxy",family:"openai-compatible",protocol:"openai-responses",capabilities:["prompt-cache"],defaultModelId:"gpt-5.4",apiKeyEnv:["LITELLM_API_KEY"],defaults:{baseUrl:"http://localhost:4000/v1"}},{id:"huggingface",name:"Hugging Face",description:"Hugging Face inference API",family:"openai-compatible",defaultModelId:"MiniMaxAI/MiniMax-M2.5",apiKeyEnv:["HF_TOKEN"],modelsProviderId:"huggingface",defaults:{baseUrl:"https://api-inference.huggingface.co/v1"}},{id:"vercel-ai-gateway",name:"Vercel AI Gateway",description:"Vercel's AI gateway service",family:"openai-compatible",capabilities:["reasoning"],defaultModelId:"alibaba/qwen3.6-plus",apiKeyEnv:["AI_GATEWAY_API_KEY"],modelsProviderId:"vercel-ai-gateway",defaults:{baseUrl:"https://ai-gateway.vercel.sh/v1"}},{id:"aihubmix",name:"AI Hub Mix",description:"AI model aggregator",family:"openai-compatible",defaultModelId:"gpt-4o",apiKeyEnv:["AIHUBMIX_API_KEY"],modelsProviderId:"aihubmix",defaults:{baseUrl:"https://api.aihubmix.com/v1"}},{id:"hicap",name:"HiCap",description:"HiCap AI platform",family:"openai-compatible",defaultModelId:"hicap-pro",apiKeyEnv:["HICAP_API_KEY"],defaults:{baseUrl:"https://api.hicap.ai/v1"}},{id:"nousResearch",name:"Nous Research",description:"Open-source AI research lab",family:"openai-compatible",defaultModelId:"DeepHermes-3-Llama-3-3-70B-Preview",apiKeyEnv:["NOUS_RESEARCH_API_KEY","NOUSRESEARCH_API_KEY"],modelsProviderId:"nousResearch",defaults:{baseUrl:"https://inference-api.nousresearch.com/v1"}},{id:"huawei-cloud-maas",name:"Huawei Cloud MaaS",description:"Huawei's model-as-a-service platform",family:"openai-compatible",defaultModelId:"DeepSeek-R1",apiKeyEnv:["HUAWEI_CLOUD_MAAS_API_KEY"],defaults:{baseUrl:"https://infer-modelarts.cn-southwest-2.myhuaweicloud.com/v1"}},{id:"qwen",name:"Qwen Plus Latest",description:"Alibaba Qwen platform models",family:"openai-compatible",capabilities:["tools","reasoning"],defaultModelId:"qwen-plus-latest",apiKeyEnv:["QWEN_API_KEY"],modelsProviderId:"qwen",defaults:{baseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1"}},{id:"qwen-code",name:"Qwen3 Coder Plus",description:"Qwen OAuth coding models",family:"openai-compatible",capabilities:["tools","reasoning"],defaultModelId:"qwen3-coder-plus",modelsProviderId:"qwen-code",defaults:{baseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1"}},{id:"doubao",name:"Doubao 1.5 Pro 256k",description:"Volcengine Ark platform models",family:"openai-compatible",capabilities:["tools"],defaultModelId:"doubao-1-5-pro-256k-250115",apiKeyEnv:["DOUBAO_API_KEY"],modelsProviderId:"doubao",defaults:{baseUrl:"https://ark.cn-beijing.volces.com/api/v3"}},{id:"zai",name:"Z.AI",description:"Z.AI's family of LLMs",family:"openai-compatible",capabilities:["reasoning"],defaultModelId:"glm-5v-turbo",apiKeyEnv:["ZHIPU_API_KEY"],modelsProviderId:"zai",defaults:{baseUrl:"https://api.z.ai/api/paas/v4"}},{id:"moonshot",name:"Kimi K2 Preview",description:"Moonshot AI Studio models",family:"openai-compatible",capabilities:["tools","reasoning"],defaultModelId:"kimi-k2-0905-preview",apiKeyEnv:["MOONSHOT_API_KEY"],modelsProviderId:"moonshot",defaults:{baseUrl:"https://api.moonshot.ai/v1"}},{id:"wandb",name:"W&B by CoreWeave",description:"Weights & Biases",family:"openai-compatible",capabilities:["reasoning","prompt-cache","tools"],defaultModelId:"nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8",apiKeyEnv:["WANDB_API_KEY"],modelsProviderId:"wandb",defaults:{baseUrl:"https://api.inference.wandb.ai/v1"}},{id:"xiaomi",name:"Xiaomi",description:"Xiaomi",family:"openai-compatible",protocol:"openai-responses",capabilities:["prompt-cache","tools","reasoning"],defaultModelId:"mimo-v2-omni",apiKeyEnv:["XIAOMI_API_KEY"],modelsProviderId:"xiaomi",defaults:{baseUrl:"https://api.xiaomimimo.com/v1"}},{id:"kilo",name:"Kilo Gateway",description:"Kilo Gateway",family:"openai-compatible",protocol:"openai-responses",capabilities:["prompt-cache","reasoning","tools"],defaultModelId:"gpt-4o",apiKeyEnv:["KILO_GATEWAY_API_KEY"],modelsProviderId:"kilo",defaults:{baseUrl:"https://api.kilo.ai/api/gateway"}},{id:"openrouter",name:"OpenRouter",description:"OpenRouter AI platform",family:"openai-compatible",capabilities:["reasoning","prompt-cache"],defaultModelId:"anthropic/claude-sonnet-4.6",apiKeyEnv:["OPENROUTER_API_KEY"],modelsProviderId:"openrouter",docsUrl:"https://openrouter.ai/models",defaults:{baseUrl:"https://openrouter.ai/api/v1"}},{id:"ollama",name:"Ollama",description:"Ollama Cloud and local LLM hosting",family:"openai-compatible",defaultModelId:"",apiKeyEnv:["OLLAMA_API_KEY"],defaults:{baseUrl:"http://localhost:11434/v1"}},{id:"lmstudio",name:"LM Studio",description:"Local model inference with LM Studio",family:"openai-compatible",defaultModelId:"",apiKeyEnv:["LMSTUDIO_API_KEY"],modelsProviderId:"lmstudio",defaults:{baseUrl:"http://localhost:1234/v1"}},{id:"oca",name:"Oracle Code Assist",description:"Oracle Code Assist (OCA) LiteLLM gateway",family:"openai-compatible",capabilities:["reasoning","prompt-cache","tools"],defaultModelId:"anthropic/claude-3-7-sonnet-20250219",apiKeyEnv:["OCA_API_KEY"],modelsProviderId:"oca",defaults:{baseUrl:sa}},{id:"asksage",name:"AskSage",description:"AskSage platform",family:"openai-compatible",client:"fetch",capabilities:["tools"],defaultModelId:"gpt-4o",apiKeyEnv:["ASKSAGE_API_KEY"],modelsFactory:()=>({}),defaults:{baseUrl:"https://api.asksage.ai/server"}},{id:"sapaicore",name:"Claude 3.5 Sonnet (SAP AI Core)",description:"SAP AI Core inference and orchestration platform",family:"openai-compatible",client:"ai-sdk-community",capabilities:["tools","reasoning","prompt-cache"],defaultModelId:"anthropic--claude-3.5-sonnet",apiKeyEnv:["AICORE_SERVICE_KEY","VCAP_SERVICES"],modelsProviderId:"sapaicore"}],ma=[{id:"openai-native",name:"OpenAI",description:"Creator of GPT and ChatGPT",family:"openai",capabilities:["reasoning"],modelsProviderId:"openai",defaultModelId:"gpt-5.4-mini",apiKeyEnv:["OPENAI_API_KEY"],defaults:{baseUrl:"https://api.openai.com/v1"}},{id:"openai-codex",name:"OpenAI Codex",description:"OpenAI Codex via the local Codex CLI provider",family:"openai-codex",capabilities:["reasoning","oauth"],defaultModelId:"gpt-5.4-mini",modelsFactory:G0,defaults:{baseUrl:"https://chatgpt.com/backend-api/codex"}},{id:"anthropic",name:"Anthropic",description:"Creator of Claude, the AI assistant",family:"anthropic",capabilities:["reasoning","prompt-cache"],defaultModelId:"claude-sonnet-4-6",apiKeyEnv:["ANTHROPIC_API_KEY"],modelsProviderId:"anthropic",defaults:{baseUrl:"https://api.anthropic.com/v1"}},{id:"claude-code",name:"Claude Code",description:"Use Claude Code SDK with Claude Pro/Max subscription",family:"claude-code",capabilities:["reasoning"],defaultModelId:"sonnet",modelsFactory:M0,defaults:{baseUrl:""}},{id:"gemini",name:"Google Gemini",description:"Google Gemini API",family:"google",capabilities:["reasoning","prompt-cache"],defaultModelId:"gemma-4-26b",apiKeyEnv:["GOOGLE_GENERATIVE_AI_API_KEY","GEMINI_API_KEY"],modelsProviderId:"gemini",defaults:{baseUrl:"https://generativelanguage.googleapis.com/v1beta"}},{id:"vertex",name:"Google Vertex AI",description:"Google Cloud Vertex AI (Gemini and partner models)",family:"vertex",capabilities:["reasoning","prompt-cache"],defaultModelId:"claude-sonnet-4-6@default",apiKeyEnv:["GCP_PROJECT_ID","GOOGLE_CLOUD_PROJECT","GOOGLE_APPLICATION_CREDENTIALS","GEMINI_API_KEY","GOOGLE_API_KEY"],modelsProviderId:"vertex"},{id:"bedrock",name:"AWS Bedrock",description:"Amazon Bedrock managed foundation models",family:"bedrock",capabilities:["reasoning","prompt-cache"],defaultModelId:"minimax.minimax-m2.5",apiKeyEnv:["AWS_REGION","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN"],modelsProviderId:"bedrock"},{id:"mistral",name:"Mistral",description:"Mistral AI models via AI SDK provider",family:"mistral",capabilities:["reasoning"],defaultModelId:"mistral-medium-latest",apiKeyEnv:["MISTRAL_API_KEY"],modelsFactory:()=>({}),defaults:{baseUrl:"https://api.mistral.ai/v1"}},{id:"minimax",name:"MiniMax M2.5",description:"MiniMax models via Anthropic-compatible API",family:"anthropic",capabilities:["tools","reasoning","prompt-cache"],defaultModelId:"MiniMax-M2.5",apiKeyEnv:["MINIMAX_API_KEY"],modelsProviderId:"minimax",defaults:{baseUrl:"https://api.minimax.io/anthropic"}},{id:"opencode",name:"OpenCode",description:"OpenCode SDK multi-provider runtime",family:"opencode",capabilities:["reasoning","oauth"],defaultModelId:"openai/gpt-5.3-codex",modelsProviderId:"opencode",defaults:{baseUrl:""}},{id:"dify",name:"Dify",description:"Dify workflow/application provider via AI SDK",family:"dify",defaultModelId:"default",apiKeyEnv:["DIFY_API_KEY"],modelsFactory:()=>({})},...A0];function S0(e){if(e.modelsFactory)return e.modelsFactory();if(e.modelsProviderId)return pa(e.modelsProviderId);return{}}function Ut(e){let a=S0(e),t=Object.keys(a).length>0?a:e.defaultModelId?{[e.defaultModelId]:{id:e.defaultModelId,name:e.defaultModelId}}:{},i=Object.keys(t),n=e.defaultModelId||i[0]||"default";return{provider:{id:e.id,name:e.name,description:e.description,protocol:e.protocol??C0(e),baseUrl:e.defaults?.baseUrl,defaultModelId:n,capabilities:e.capabilities,env:e.apiKeyEnv?[...e.apiKeyEnv]:void 0,client:e.client??B0(e)},models:t}}function jt(e){let a=Ut(e),t=Object.values(a.models).map((n)=>q0(e.id,n)),i=t.length>0?t:[{id:a.provider.defaultModelId||"default",name:a.provider.defaultModelId||"Default",providerId:e.id,capabilities:["text"]}];return{id:e.id,name:e.name,description:e.description,defaultModelId:a.provider.defaultModelId||i[0]?.id||"default",models:i,env:e.env??["browser","node"],api:e.defaults?.baseUrl,apiKeyEnv:e.apiKeyEnv,docsUrl:e.docsUrl}}var We=ma.map(Ut),Q0=Object.fromEntries(We.map((e)=>[e.provider.id,e])),zs=Q0["openai-codex"];function _0(){let e=new Map;for(let a of We)e.set(a.provider.id,{provider:{...a.provider},models:Object.fromEntries(Object.entries(a.models).map(([t,i])=>[t,{...i}]))});return e}var ke=_0(),re=new Map,ee=new Map;function z(e){return ee.get(e)??ke.get(e)}function _e(){let e=Array.from(ke.keys()),a=Array.from(ee.keys()).filter((t)=>!ke.has(t));return[...e,...a]}function be(e){return ke.has(e)||ee.has(e)}async function zt(e){return z(e)?.provider}function ua(e){return z(e)}async function ae(e){return z(e)}async function ei(e){let t=z(e)?.models??{},i=re.get(e);if(i)return{...t,...Object.fromEntries(i)};return t}async function ai(){return _e().map((e)=>z(e)?.provider).filter((e)=>e!==void 0)}function fe(e){ee.set(e.provider.id,e)}function Le(e,a,t){if(!re.has(e))re.set(e,new Map);re.get(e)?.set(a,{...t,id:a})}function ti(e){return re.delete(e),ee.delete(e)}function ii(){re.clear(),ee.clear()}var ni=new Proxy({},{get(e,a){return z(a)},has(e,a){return ke.has(a)||ee.has(a)},ownKeys(){return _e()},getOwnPropertyDescriptor(e,a){let t=z(a);if(t===void 0)return;return{configurable:!0,enumerable:!0,value:t}}});we();ve();function sc(e){return Object.fromEntries(Object.entries(e).map(([a,t])=>[a,{...t}]))}function pc(e){if(e.baseUrl.length===0)return!1;switch(e.client){case"openai-compatible":case"openai":case"openai-r1":case"fetch":return!0;default:return e.protocol==="openai-chat"}}var mc=We.map((e)=>({id:e.provider.id,baseUrl:e.provider.baseUrl??"",modelId:e.provider.defaultModelId,knownModels:sc(e.models),capabilities:e.provider.capabilities?[...e.provider.capabilities]:void 0,env:e.provider.env?[...e.provider.env]:void 0,client:e.provider.client,protocol:e.provider.protocol})),ao=Object.fromEntries(mc.map((e)=>[e.id,e]));function uc(e){return ao[e]}function lc(){return Object.fromEntries(Object.entries(ao).filter(([,e])=>pc(e)))}function to(e=[]){let a=e.flatMap((t)=>{switch(t){case"reasoning":case"prompt-cache":case"tools":case"oauth":return[t];default:return[]}});return a.length>0?a:void 0}var dc="https://models.dev/api.json",gc=600000,hc=300000,xc=5000,jn=new Map,mt=new Map,zn=new Map,ut=new Map,eo;async function wc(){return eo??=Promise.resolve().then(() => (we(),Xt)).then(({getGeneratedProviderModels:e})=>e()),eo}async function Wc(e,a={},t={},i={},n={}){let o=await wc(),r=ce(e),p=Object.assign({},...r.map((d)=>o[d]??{}));return oe({...p,...a,...t,...i,...n})}function io(e){let a=e?.trim();return a&&a.length>0?a:""}function dt(e){let a=e.apiKey?.trim()||e.accessToken?.trim();return a&&a.length>0?a:void 0}function kc(e){let a=2166136261;for(let t=0;t<e.length;t+=1)a^=e.charCodeAt(t),a+=(a<<1)+(a<<4)+(a<<7)+(a<<8)+(a<<24);return(a>>>0).toString(16)}function bc(e,a){return`${e}:${io(a.baseUrl)}:${kc(dt(a)??"")}`}async function gt(e,a,t=xc){let i=new AbortController,n=setTimeout(()=>i.abort(),t);try{return await fetch(e,{...a,signal:i.signal})}finally{clearTimeout(n)}}function lt(e,a,t){if(t&&!e.includes(a))e.push(a)}function ht(e,a){let t=["streaming","tools"];return lt(t,"images",Boolean(a.supportsImages)),lt(t,"prompt-cache",Boolean(a.supportsPromptCache)),lt(t,"reasoning",Boolean(a.supportsReasoning)),{id:e,name:a.name??e,contextWindow:a.contextWindow,maxTokens:a.maxTokens,capabilities:t,releaseDate:a.releaseDate,status:"active"}}async function fc(e,a){let t=await gt("https://inference.baseten.co/v1/models",{method:"GET",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"}});if(!t.ok)throw Error(`Baseten model refresh failed: HTTP ${t.status}`);let n=(await t.json())?.data??[],o={};for(let r of n){let p=r.id?.trim();if(!p)continue;if(p.includes("whisper")||p.includes("tts")||p.includes("embedding"))continue;let d=r.supported_features??[];o[p]=ht(p,{name:p,contextWindow:r.context_length,maxTokens:r.max_completion_tokens,supportsReasoning:d.includes("reasoning")||d.includes("reasoning_effort"),supportsImages:!1})}return o}async function Tc(e,a){let t=await gt("https://api.hicap.ai/v2/openai/models",{method:"GET",headers:{"api-key":a}});if(!t.ok)throw Error(`Hicap model refresh failed: HTTP ${t.status}`);let n=(await t.json())?.data??[],o={};for(let r of n){let p=r.id?.trim();if(!p)continue;o[p]=ht(p,{name:p,contextWindow:128000,supportsImages:!0,supportsPromptCache:!0})}return o}function yc(e){let a=io(e);if(!a)return"http://localhost:4000";return a.endsWith("/v1")?a.slice(0,-3):a}async function Dc(e,a){let i=`${yc(e.baseUrl)}/v1/model/info`,n=async(u)=>gt(i,{method:"GET",headers:{accept:"application/json",...u}}),o=await n({"x-litellm-api-key":a});if(!o.ok)o=await n({Authorization:`Bearer ${a}`});if(!o.ok)throw Error(`LiteLLM model refresh failed: HTTP ${o.status}`);let p=(await o.json())?.data??[],d={};for(let u of p){let x=u.model_name?.trim(),R=u.litellm_params?.model?.trim()||x;if(!R)continue;let C=u.model_info,y=ht(R,{name:x??R,maxTokens:C?.max_output_tokens??C?.max_tokens,contextWindow:C?.max_input_tokens??C?.max_tokens,supportsImages:C?.supports_vision,supportsPromptCache:C?.supports_prompt_caching,supportsReasoning:C?.supports_reasoning});if(d[R]=y,x)d[x]={...y,id:x,name:x}}return d}async function Rc(e,a){let t=dt(a);if(!t)return{};let i=no[e];if(!i)return{};return i(a,t)}var no={baseten:fc,hicap:Tc,litellm:Dc};function vc(e,a,t){if(!t)return!1;if(!no[e])return!1;if(a?.loadPrivateOnAuth===!1)return!1;return Boolean(dt(t))}async function Mc(e,a,t){let i=a?.cacheTtlMs??hc,n=bc(e,t),o=Date.now(),r=zn.get(n);if(r&&r.expiresAt>o)return r.data;let p=ut.get(n);if(p)return p;let d=Rc(e,t).then((u)=>{return zn.set(n,{data:u,expiresAt:o+i}),u}).finally(()=>{ut.delete(n)});return ut.set(n,d),d}async function Pc(e){return $t(e,Ee)}async function Gc(e={}){let a=e.url??dc,t=e.cacheTtlMs??gc,i=Date.now(),n=jn.get(a);if(n&&n.expiresAt>i)return n.data;let o=mt.get(a);if(o)return o;let r=Pc(a).then((p)=>{return jn.set(a,{data:p,expiresAt:i+t}),p}).finally(()=>{mt.delete(a)});return mt.set(a,r),r}function qc(e){return Object.fromEntries(Object.entries(e).map(([a,t])=>[a,{baseUrl:t.baseUrl,modelId:t.modelId,capabilities:to(t.capabilities)}]))}var oo=qc(lc());function Cc(e){let a=uc(e);if(!a||!a.baseUrl)return;return{baseUrl:a.baseUrl,modelId:a.modelId,knownModels:a.knownModels,capabilities:to(a.capabilities)}}async function ro(e,a,t){let i=Cc(e);if(!i)return;try{let o=(a?.loadLatestOnInit?await Gc(a):void 0)?.[e]??{},r=t&&vc(e,a,t)?await Mc(e,a,t):{},p=await Wc(e,i.knownModels,o,r,t?.knownModels);return{...i,knownModels:p}}catch(n){if(a?.failOnError)throw n;return i}}Pe();function ze(e){return q(e.routingProviderId??e.providerId)}ve();import{z as l}from"zod";we();Pe();var co=l.string().min(1).regex(/^[a-z0-9][a-z0-9-]*$/i),so=l.object({apiKey:l.string().optional(),accessToken:l.string().optional(),refreshToken:l.string().optional(),expiresAt:l.number().int().positive().optional(),accountId:l.string().optional()}),Sc=l.enum(["none","low","medium","high","xhigh"]),po=l.object({enabled:l.boolean().optional(),effort:Sc.optional(),budgetTokens:l.number().int().positive().optional()}),mo=l.object({accessKey:l.string().optional(),secretKey:l.string().optional(),sessionToken:l.string().optional(),region:l.string().optional(),profile:l.string().optional(),authentication:l.enum(["iam","api-key","profile"]).optional(),usePromptCache:l.boolean().optional(),useCrossRegionInference:l.boolean().optional(),useGlobalInference:l.boolean().optional(),endpoint:l.string().url().optional(),customModelBaseId:l.string().optional()}),uo=l.object({projectId:l.string().optional(),region:l.string().optional()}),lo=l.object({apiVersion:l.string().optional(),useIdentity:l.boolean().optional()}),go=l.object({clientId:l.string().optional(),clientSecret:l.string().optional(),tokenUrl:l.string().url().optional(),resourceGroup:l.string().optional(),deploymentId:l.string().optional(),useOrchestrationMode:l.boolean().optional(),api:l.enum(["orchestration","foundation-models"]).optional(),defaultSettings:l.record(l.string(),l.unknown()).optional()}),ho=l.object({mode:l.enum(["internal","external"]).optional(),usePromptCache:l.boolean().optional()}),xo=l.object({loadLatestOnInit:l.boolean().optional(),loadPrivateOnAuth:l.boolean().optional(),url:l.string().url().optional(),cacheTtlMs:l.number().int().positive().optional(),failOnError:l.boolean().optional()}),ea=l.object({provider:co,apiKey:l.string().optional(),auth:so.optional(),model:l.string().optional(),maxTokens:l.number().int().positive().optional(),contextWindow:l.number().int().positive().optional(),baseUrl:l.string().url().optional(),headers:l.record(l.string(),l.string()).optional(),timeout:l.number().int().positive().optional(),reasoning:po.optional(),aws:mo.optional(),gcp:uo.optional(),azure:lo.optional(),sap:go.optional(),oca:ho.optional(),region:l.string().optional(),apiLine:l.enum(["china","international"]).optional(),capabilities:l.array(l.enum(["reasoning","prompt-cache","streaming","tools","vision","computer-use","oauth"])).optional(),modelCatalog:xo.optional()});function xt(e){return ea.parse(e)}function wt(e){let a=e.provider,t=q(a),i=e.reasoning?.effort,n=i&&i!=="none"?i:void 0,o=oo[t],r=Object.assign({},...ce(t).map((x)=>j(x))),p=e.auth?.accessToken??e.apiKey??e.auth?.apiKey,d=e.baseUrl??(t==="oca"?e.oca?.mode==="internal"?Jt:sa:o?.baseUrl),u={providerId:a,modelId:e.model??o?.modelId??"default",knownModels:o?.knownModels??(Object.keys(r).length>0?r:void 0),apiKey:p,accessToken:e.auth?.accessToken,refreshToken:e.auth?.refreshToken,accountId:e.auth?.accountId,baseUrl:d,headers:e.headers,timeoutMs:e.timeout,maxOutputTokens:e.maxTokens,maxContextTokens:e.contextWindow,thinking:e.reasoning?.enabled,reasoningEffort:n,thinkingBudgetTokens:e.reasoning?.budgetTokens,region:e.region??e.aws?.region??e.gcp?.region,apiLine:e.apiLine,useCrossRegionInference:e.aws?.useCrossRegionInference,useGlobalInference:e.aws?.useGlobalInference,aws:e.aws?{accessKey:e.aws.accessKey,secretKey:e.aws.secretKey,sessionToken:e.aws.sessionToken,authentication:e.aws.authentication,profile:e.aws.profile,usePromptCache:e.aws.usePromptCache,endpoint:e.aws.endpoint,customModelBaseId:e.aws.customModelBaseId}:void 0,gcp:e.gcp?{projectId:e.gcp.projectId,region:e.gcp.region}:void 0,azure:e.azure,sap:e.sap,oca:e.oca,capabilities:e.capabilities??o?.capabilities,modelCatalog:e.modelCatalog?{loadLatestOnInit:e.modelCatalog.loadLatestOnInit,loadPrivateOnAuth:e.modelCatalog.loadPrivateOnAuth,url:e.modelCatalog.url,cacheTtlMs:e.modelCatalog.cacheTtlMs,failOnError:e.modelCatalog.failOnError}:void 0};return Object.fromEntries(Object.entries(u).filter(([x,P])=>P!==void 0))}import{nanoid as Xo}from"nanoid";_();var Vo=new Map;async function Gs(e){let a=Vo.get(e);if(a)return a;let t=(async()=>{switch(e){case"openai":return(await Promise.resolve().then(() => (_(),I))).createOpenAIProvider;case"openai-compatible":return(await Promise.resolve().then(() => (_(),I))).createOpenAICompatibleProvider;case"anthropic":return(await Promise.resolve().then(() => (_(),I))).createAnthropicProvider;case"google":return(await Promise.resolve().then(() => (_(),I))).createGoogleProvider;case"vertex":return(await Promise.resolve().then(() => (_(),I))).createVertexProvider;case"bedrock":return(await Promise.resolve().then(() => (_(),I))).createBedrockProvider;case"mistral":return(await Promise.resolve().then(() => (_(),I))).createMistralProvider;case"claude-code":return(await Promise.resolve().then(() => (_(),I))).createClaudeCodeProvider;case"openai-codex":return(await Promise.resolve().then(() => (_(),I))).createOpenAICodexProvider;case"opencode":return(await Promise.resolve().then(() => (_(),I))).createOpenCodeProvider;case"dify":return(await Promise.resolve().then(() => (_(),I))).createDifyProvider}})();return Vo.set(e,t),t}var Ce=ma.map((e)=>({manifest:jt(e),defaults:{...e.defaults,apiKeyEnv:e.apiKeyEnv,baseUrl:e.defaults?.baseUrl},loadProvider:async()=>({createProvider:await Gs(e.family)})}));async function*$o(e){for await(let a of e)yield a}function Yo(e){return{...e,models:e.models.map((a)=>({...a})),env:e.env?[...e.env]:void 0,api:e.api,apiKeyEnv:e.apiKeyEnv?[...e.apiKeyEnv]:void 0,docsUrl:e.docsUrl,metadata:e.metadata?{...e.metadata}:void 0}}function qs(e,a){let t=new Map;for(let i of e.models)t.set(i.id,{...i});for(let i of a?.models??[])t.set(i.id,{...i,providerId:e.id});return Array.from(t.values())}function Cs(e,a){return{id:a,name:a,providerId:e.id}}class Ct{providers=new Map;providerConfigs=new Map;fallbackFetch;constructor(e){this.fallbackFetch=e}registerProvider(e){if(!e.createProvider&&!e.loadProvider)throw Error(`Provider "${e.manifest.id}" must include createProvider or loadProvider.`);this.providers.set(e.manifest.id,{manifest:Yo(e.manifest),defaults:e.defaults?{providerId:e.manifest.id,apiKey:e.defaults.apiKey,apiKeyResolver:e.defaults.apiKeyResolver,apiKeyEnv:e.defaults.apiKeyEnv,baseUrl:e.defaults.baseUrl,headers:e.defaults.headers?{...e.defaults.headers}:void 0,timeoutMs:e.defaults.timeoutMs,fetch:e.defaults.fetch,options:e.defaults.options?{...e.defaults.options}:void 0}:void 0,createProvider:e.createProvider,loadProvider:e.loadProvider})}configureProvider(e){this.providerConfigs.set(e.providerId,{providerId:e.providerId,apiKey:e.apiKey,apiKeyResolver:e.apiKeyResolver,apiKeyEnv:e.apiKeyEnv,baseUrl:e.baseUrl,headers:e.headers?{...e.headers}:void 0,timeoutMs:e.timeoutMs,fetch:e.fetch,options:e.options?{...e.options}:void 0,enabled:e.enabled??!0,defaultModelId:e.defaultModelId,models:e.models?.map((a)=>({...a}))})}listProviders(){return Array.from(this.providers.values()).map((e)=>this.getManifest(e.manifest.id)).filter((e)=>e!==void 0)}listModels(e){if(e)return[...this.getManifest(e)?.models??[]];return this.listProviders().flatMap((a)=>a.models.map((t)=>({...t})))}getManifest(e){let a=this.providers.get(e);if(!a)return;let t=this.providerConfigs.get(e);if(t&&!t.enabled)return;let i=qs(a.manifest,t),n=t?.defaultModelId??a.manifest.defaultModelId??i[0]?.id;if(!n)return;return{...Yo(a.manifest),defaultModelId:n,models:i}}resolveModel(e){let a=this.getManifest(e.providerId);if(!a)throw Error(`Unknown or disabled provider "${e.providerId}".`);let t=e.modelId??a.defaultModelId,i=a.models.find((n)=>n.id===t)??Cs(a,t);return{provider:a,model:i}}async createProvider(e){let a=this.providers.get(e);if(!a)throw Error(`Unknown provider "${e}".`);if(!a.createProvider){let n=await a.loadProvider?.();if(!n?.createProvider)throw Error(`Provider "${e}" could not be loaded.`);a.createProvider=n.createProvider}let t=this.getManifest(e);if(!t)throw Error(`Provider "${e}" is disabled.`);let i=this.providerConfigs.get(e);return{manifest:t,config:{providerId:e,apiKey:i?.apiKey??a.defaults?.apiKey,apiKeyResolver:i?.apiKeyResolver??a.defaults?.apiKeyResolver,apiKeyEnv:i?.apiKeyEnv??a.defaults?.apiKeyEnv,baseUrl:i?.baseUrl??a.defaults?.baseUrl,headers:{...a.defaults?.headers??{},...i?.headers??{}},timeoutMs:i?.timeoutMs??a.defaults?.timeoutMs,fetch:i?.fetch??a.defaults?.fetch??this.fallbackFetch,options:{...a.defaults?.options??{},...i?.options??{}}},createProvider:a.createProvider}}}class Zo{gateway;selection;defaults;constructor(e,a,t){this.gateway=e;this.selection=a;this.defaults=t}stream(e){return this.gateway.stream({providerId:this.selection.providerId,modelId:this.selection.modelId??"",systemPrompt:e.systemPrompt,messages:e.messages,tools:this.defaults?.tools??e.tools,temperature:e.options?.temperature??this.defaults?.temperature,maxTokens:e.options?.maxTokens??this.defaults?.maxTokens,metadata:e.options?.metadata??this.defaults?.metadata,reasoning:e.options?.reasoning??this.defaults?.reasoning,signal:e.signal??this.defaults?.signal})}}class Bt{registry;constructor(e={}){if(this.registry=new Ct(e.fetch),e.builtins!==!1){let a=new Set(e.builtins??Ce.map((t)=>t.manifest.id));for(let t of Ce)if(a.has(t.manifest.id))this.registry.registerProvider(t)}for(let a of e.providers??[])this.registry.registerProvider(a);for(let a of e.providerConfigs??[])this.registry.configureProvider(a)}registerProvider(e){return this.registry.registerProvider(e),this}configureProvider(e){return this.registry.configureProvider(e),this}listProviders(){return this.registry.listProviders()}listModels(e){return this.registry.listModels(e)}createAgentModel(e,a){return new Zo(this,e,a)}async stream(e){let a=this.registry.resolveModel({providerId:e.providerId,modelId:e.modelId||void 0}),t=await this.registry.createProvider(e.providerId),n=await(await t.createProvider(t.config)).stream({...e,modelId:a.model.id,providerId:a.provider.id},{provider:a.provider,model:a.model,config:t.config,signal:e.signal});return $o(n)}}function ia(e){return new Bt(e)}var de=new Map(Ce.map((e)=>[e.manifest.id,e]));function Bs(e){if(!e?.length)return;let a=new Set;for(let t of e)switch(t){case"tools":case"reasoning":case"images":case"audio":a.add(t);break;case"files":case"streaming":case"temperature":case"prompt-cache":case"reasoning-effort":case"computer-use":case"global-endpoint":a.add("text");break;case"structured_output":a.add("structured-output");break;default:a.add("text")}return a.add("text"),[...a]}function St(e,a){return{id:a.id,name:a.name??a.id,description:a.description,providerId:e,contextWindow:a.contextWindow,maxOutputTokens:a.maxTokens,capabilities:Bs(a.capabilities),metadata:{family:a.family,pricing:a.pricing,status:a.status,releaseDate:a.releaseDate}}}function Jo(e){switch(q(e)){case"openai-native":return bt;case"anthropic":case"minimax":return Tt;case"gemini":return yt;case"vertex":return Dt;case"bedrock":return Rt;case"mistral":return vt;case"claude-code":return Mt;case"openai-codex":return Pt;case"opencode":return Gt;case"dify":return qt;default:return ft}}async function As(e){let a=q(e.providerId),t=q(ze(e));if(de.get(a)&&a===t)return;let n=await ae(a)??(a!==t?await ae(t):void 0);if(!n){let r=de.get(t);if(!r||a===t)return;return{manifest:{...r.manifest,id:a,name:r.manifest.name,models:r.manifest.models.map((p)=>({...p,providerId:a}))},defaults:r.defaults,createProvider:r.createProvider,loadProvider:r.loadProvider}}let o=de.get(t);return{manifest:{id:a,name:n.provider.name,description:n.provider.description,defaultModelId:n.provider.defaultModelId,models:Object.values(n.models).map((r)=>St(a,r)),api:n.provider.baseUrl,apiKeyEnv:n.provider.env},defaults:{...o?.defaults??{},baseUrl:n.provider.baseUrl??o?.defaults?.baseUrl,apiKeyEnv:n.provider.env??o?.defaults?.apiKeyEnv},createProvider:o?.createProvider??Jo(t),loadProvider:o?.loadProvider}}function Ss(e){let a=q(e.providerId),t=q(ze(e));if(de.get(a)&&a===t)return;let n=ua(a)??(a!==t?ua(t):void 0);if(!n){let r=de.get(t);if(!r||a===t)return;return{manifest:{...r.manifest,id:a,models:r.manifest.models.map((p)=>({...p,providerId:a}))},defaults:r.defaults,createProvider:r.createProvider,loadProvider:r.loadProvider}}let o=de.get(t);return{manifest:{id:a,name:n.provider.name,description:n.provider.description,defaultModelId:n.provider.defaultModelId,models:Object.values(n.models).map((r)=>St(a,r)),api:n.provider.baseUrl,apiKeyEnv:n.provider.env},defaults:{...o?.defaults??{},baseUrl:n.provider.baseUrl??o?.defaults?.baseUrl,apiKeyEnv:n.provider.env??o?.defaults?.apiKeyEnv},createProvider:o?.createProvider??Jo(t),loadProvider:o?.loadProvider}}function Qs(e){let a=new Map;for(let t of e){if(!Array.isArray(t.content))continue;for(let i of t.content)if(i.type==="tool_use"){if(a.set(i.id,i.name),i.call_id)a.set(i.call_id,i.name)}}return e.map((t)=>{let i=typeof t.content==="string"?[{type:"text",text:t.content}]:t.content.flatMap((n)=>{switch(n.type){case"text":return[{type:"text",text:n.text}];case"thinking":return[{type:"reasoning",text:n.thinking,metadata:n.signature||n.call_id?{signature:n.signature,callId:n.call_id,details:n.details}:void 0}];case"tool_use":return[{type:"tool-call",toolCallId:n.call_id??n.id,toolName:n.name,input:n.input,metadata:n.signature?{thoughtSignature:n.signature}:void 0}];case"tool_result":return[{type:"tool-result",toolCallId:n.tool_use_id,toolName:a.get(n.tool_use_id)??"tool",output:typeof n.content==="string"?n.content:n.content.map((o)=>o.type==="text"?o.text:o.type==="file"?o.content:"").join(`
85
+ `)}function Xn(e){let a=ic(e);if(!a)return;if(a.mode==="record")nc(a.cassettePath,a.filter);else cc(a.cassettePath,a.filter)}var Jr,Ur,zr,ac;var Jn=w(()=>{Ra();Jr=new Set(["accesskeyid","secretaccesskey","idtoken","refreshtoken","accessToken","access_token","refresh_token","apikey","api_key","authorization","password","secret","token","email","displayname","display_name","userInfo"]),Ur=["id","balance","cost","secret"];zr=[{pattern:/AKIA[A-Z0-9]{16}/g,replacement:"AKIA_REDACTED"},{pattern:/\/Users\/[A-Za-z0-9._-]+/g,replacement:"/Users/REDACTED_USER"},{pattern:/\/home\/[A-Za-z0-9._-]+/g,replacement:"/home/REDACTED_USER"}];ac=[{pattern:/tasks\/[A-Za-z0-9._-]+\/[A-Za-z0-9._-]+\/api_conversation_history/g,replacement:"tasks/usr-test/taskid/api_conversation_history"},{pattern:/\/(org|usr|mbr|ses|gen|req|msg|tsk|sch|exe|srv|cli|wkr|evt|sub|tkn)-[A-Za-z0-9]{10,}(?=[/?#]|$)/g,replacement:"/$1-REDACTED"}]});var Un={};L(Un,{zodToJsonSchema:()=>$e,xmlTagsRemoval:()=>Pa,withResolvedClineBuildEnv:()=>Rn,validateWithZod:()=>pn,upsertWorkspaceInfo:()=>Wr,truncateStr:()=>on,toAiSdkToolResultOutput:()=>Ga,serializeAbortReason:()=>_i,sanitizeFileName:()=>nn,safeJsonStringify:()=>ji,safeJsonParse:()=>zi,resolveRootSessionId:()=>qn,resolveReasoningEffortRatio:()=>qa,resolveReasoningBudgetFromRatio:()=>Ai,resolveProviderModelCatalogKeys:()=>ce,resolveHookSessionContext:()=>Gn,resolveHookLogPath:()=>Cn,resolveEffectiveReasoningEffort:()=>Bi,resolveClineBuildEnv:()=>Xe,registerDisposable:()=>Ke,processWorkspaceInfo:()=>dn,parseJsonStream:()=>Ui,normalizeUserInput:()=>Mi,noopBasicLogger:()=>Fi,maskSecret:()=>rn,isOAuthProviderId:()=>ba,isLikelyAuthError:()=>li,initVcr:()=>Xn,getShellArgs:()=>tn,getDefaultShell:()=>an,formatUserInputBlock:()=>vi,formatMessagesForAiSdk:()=>Oe,formatHumanReadableDate:()=>cn,formatFileContentBlock:()=>Ne,emptyWorkspaceManifest:()=>wr,disposeAll:()=>ki,createTool:()=>En,createSessionId:()=>Bn,createContributionRegistry:()=>fi,createClineTelemetryServiceMetadata:()=>st,createClineTelemetryServiceConfig:()=>Pn,buildClineSystemPrompt:()=>gn,augmentNodeCommandForDebug:()=>vn,WorkspaceManifestSchema:()=>Ln,WorkspaceInfoSchema:()=>_n,VertexSettingsSchema:()=>Ua,VertexModelSchema:()=>Ja,ToolContextSchema:()=>ri,ToolCallRecordSchema:()=>Fe,ThinkingConfigSchema:()=>xa,TeamTaskInputSchema:()=>Mr,TeamStatusInputSchema:()=>Dr,TeamSpawnTeammateInputSchema:()=>Tr,TeamShutdownTeammateInputSchema:()=>yr,TeamSendMessageInputSchema:()=>Ar,TeamRunTaskInputSchema:()=>Pr,TeamReviewOutcomeFragmentInputSchema:()=>Ir,TeamReadMailboxInputSchema:()=>Qr,TeamMessageType:()=>Nn,TeamLogUpdateInputSchema:()=>_r,TeamListRunsInputSchema:()=>Gr,TeamListOutcomesInputSchema:()=>Or,TeamFinalizeOutcomeInputSchema:()=>Nr,TeamCreateOutcomeInputSchema:()=>Fr,TeamCleanupInputSchema:()=>Lr,TeamCancelRunInputSchema:()=>qr,TeamBroadcastInputSchema:()=>Sr,TeamAwaitRunInputSchema:()=>Cr,TeamAwaitAllRunsInputSchema:()=>Br,TeamAttachOutcomeFragmentInputSchema:()=>Kr,TEAM_RUN_TEXT_PREVIEW_LIMIT:()=>fr,TEAM_RUN_MESSAGE_PREVIEW_LIMIT:()=>br,TEAM_AWAIT_TIMEOUT_MS:()=>kr,SESSION_STATUS_VALUES:()=>Sn,S3AccessKeySettingsSchema:()=>Ze,RemoteMCPServerSchema:()=>it,RemoteConfigSchema:()=>wn,ReasoningEffortSchema:()=>pi,RPC_TEAM_PROGRESS_EVENT_TYPE:()=>Tn,RPC_TEAM_LIFECYCLE_EVENT_TYPE:()=>yn,REMOTE_URI_SCHEME:()=>xn,REASONING_EFFORT_RATIOS:()=>se,PromptUploadingSchema:()=>nt,PLUGIN_FILE_EXTENSIONS:()=>yi,OpenAiCompatibleSchema:()=>Ea,OpenAiCompatibleModelSchema:()=>Ha,OAUTH_PROVIDER_IDS:()=>ka,ModelStatusSchema:()=>ga,ModelPricingSchema:()=>ha,ModelInfoSchema:()=>Te,ModelCapabilitySchema:()=>da,MODELS_DEV_PROVIDER_KEY_MAP:()=>Ee,MODELS_DEV_PROVIDER_KEY_ENTRIES:()=>He,LiteLLMSchema:()=>za,LiteLLMModelSchema:()=>ja,HookEngine:()=>Ma,GlobalInstructionsFileSchema:()=>Ye,EnterpriseTelemetrySchema:()=>ot,DEFAULT_REQUEST_HEADERS:()=>Qi,DEFAULT_REASONING_EFFORT:()=>Ci,DEFAULT_OUTCOME_REQUIRED_SECTIONS:()=>Kn,ContributionRegistry:()=>Ie,ConnectorHookEventSchema:()=>xi,ConnectorHookEventNameSchema:()=>Ta,ConnectorEventContextSchema:()=>Da,ConnectorEventActorSchema:()=>ya,ConnectorAuthorizationRequestSchema:()=>gi,ConnectorAuthorizationDecisionSchema:()=>hi,ClineSettingsSchema:()=>Xa,ClineModelSchema:()=>Za,CLINE_DEFAULT_RPC_PORT:()=>bn,CLINE_DEFAULT_RPC_ADDRESS:()=>fn,CLINE_DEBUG_PORT_BASE_ENV:()=>ct,CLINE_DEBUG_HOST_ENV:()=>rt,CLINE_BUILD_ENV_ENV:()=>Re,AwsBedrockSettingsSchema:()=>Ya,AwsBedrockModelSchema:()=>Va,AwsBedrockCustomModelSchema:()=>$a,ApiFormatSchema:()=>la,ApiFormat:()=>oi,AnthropicSchema:()=>at,AnthropicModelSchema:()=>et,AllowedMCPServerSchema:()=>tt,AgentUsageSchema:()=>si,AgentResultSchema:()=>L0,AgentFinishReasonSchema:()=>ci,AgentConfigSchema:()=>F0,AUTH_ERROR_PATTERNS:()=>fa,APIKeySchema:()=>Wn});var ve=w(()=>{di();wi();Ra();Ti();Di();Ri();Pi();qi();wa();Si();Li();Wa();Ki();en();Na();hn();kn();Mn();An();Qn();Vn();Jn();ui();Fn();Hn()});function q(e){let a=e.trim();return Bc[a]??a}var je,Bc,Me;var Pe=w(()=>{((h)=>{h.ANTHROPIC="anthropic";h.CLAUDE_CODE="claude-code";h.CLINE="cline";h.OPENAI_NATIVE="openai-native";h.OPENAI_CODEX="openai-codex";h.OPENCODE="opencode";h.BEDROCK="bedrock";h.VERTEX="vertex";h.GEMINI="gemini";h.OLLAMA="ollama";h.LMSTUDIO="lmstudio";h.DEEPSEEK="deepseek";h.XAI="xai";h.TOGETHER="together";h.FIREWORKS="fireworks";h.GROQ="groq";h.CEREBRAS="cerebras";h.SAMBANOVA="sambanova";h.NEBIUS="nebius";h.BASETEN="baseten";h.REQUESTY="requesty";h.LITELLM="litellm";h.HUGGINGFACE="huggingface";h.VERCEL_AI_GATEWAY="vercel-ai-gateway";h.AIHUBMIX="aihubmix";h.HICAP="hicap";h.NOUS_RESEARCH="nousResearch";h.HUAWEI_CLOUD_MAAS="huawei-cloud-maas";h.WANDB="wandb";h.XIAOMI="xiaomi";h.KILO="kilo";h.QWEN="qwen";h.QWEN_CODE="qwen-code";h.DOUBAO="doubao";h.MISTRAL="mistral";h.MOONSHOT="moonshot";h.ASKSAGE="asksage";h.ZAI="zai";h.MINIMAX="minimax";h.DIFY="dify";h.OCA="oca";h.SAPAICORE="sapaicore";h.OPENROUTER="openrouter"})(je||={});Bc={openai:"openai-native",togetherai:"together","sap-ai-core":"sapaicore"},Me=Object.values(je)});var bo={};L(bo,{resetLangfuseTelemetryForTests:()=>Kc,hasLangfuseTelemetryConfig:()=>ko,ensureLangfuseTelemetry:()=>Qc,disposeLangfuseTelemetry:()=>Wt,debugLangfuse:()=>O});function Wo(){let e=process?.env,a=e?.LANGFUSE_BASE_URL?.trim(),t=e?.LANGFUSE_PUBLIC_KEY?.trim(),i=e?.LANGFUSE_SECRET_KEY?.trim();if(!a||!t||!i)return;return{baseUrl:a,publicKey:t,secretKey:i}}function ko(){return Wo()!==void 0}async function Qc(e){if(!ko())return!1;if(te!==void 0)return O(`cached readiness=${String(te)}`),te;if(!aa)aa=_c();return te=await aa,O(`initialized readiness=${String(te)}`),te}async function _c(){let{registerDisposable:e}=await Promise.resolve().then(() => (ve(),Un));e(Wt);let a=Wo();if(!a)return!1;try{let[{LangfuseSpanProcessor:t},{trace:i},{NodeTracerProvider:n}]=await Promise.all([import("@langfuse/otel"),import("@opentelemetry/api"),import("@opentelemetry/sdk-trace-node")]),o=new t({baseUrl:a.baseUrl,publicKey:a.publicKey,secretKey:a.secretKey});O(`creating span processor baseUrl=${a.baseUrl}`);let r=i.getTracerProvider();if(typeof r?.addSpanProcessor==="function"){r.addSpanProcessor(o);let x=wo(i);return O(`attached processor to existing tracer provider delegateReady=${String(x)}`),x}let p=r?.constructor?.name;if(p&&p!=="ProxyTracerProvider"&&p!=="NoopTracerProvider")return!1;new n({spanProcessors:[o]}).register();let u=wo(i);return O(`registered NodeTracerProvider delegateReady=${String(u)}`),u}catch(t){return O(`initialization failed error=${t instanceof Error?t.message:String(t)}`),!1}}function wo(e){let i=e.getTracerProvider().getDelegate?.()?.constructor?.name;return Boolean(i&&i!=="NoopTracerProvider")}async function Lc(){try{let{trace:e}=await import("@opentelemetry/api");await e.getTracerProvider().getDelegate?.()?.forceFlush?.(),O("forceFlush completed")}catch(e){O(`forceFlush failed error=${e instanceof Error?e.message:String(e)}`)}}async function Wt(){try{await Lc();let{trace:e}=await import("@opentelemetry/api");await e.getTracerProvider().getDelegate?.()?.shutdown?.(),O("shutdown completed")}catch(e){O(`shutdown failed error=${e instanceof Error?e.message:String(e)}`)}}function O(e){if(!Fc())return;console.warn(`[langfuse-debug] ${e}`)}function Fc(){let e=process.env.CLINE_DEBUG_LANGFUSE;if(!e)return!1;let a=e.trim().toLowerCase();return a==="1"||a==="true"||a==="yes"}function Kc(){te=void 0,aa=void 0}var te,aa;async function S(e){let a=e.apiKey?.trim();if(a)return a;let i=(await e.apiKeyResolver?.())?.trim();if(i)return i;for(let n of e.apiKeyEnv??[]){let o=Nc(n);if(o)return o}return}function fo(e,a){let t=q(e),i=a?.filter((o)=>o.trim().length>0)??[],n=i.length>0?i.join(", "):"provider-specific API key env var";return`Missing API key for provider "${t}". Set apiKey explicitly or one of: ${n}.`}function Ic(e){if(!e)return!1;for(let[a,t]of Object.entries(e))if(a.toLowerCase()==="authorization"&&String(t).trim())return!0;return!1}function To(e,a){if(Ic(a.headers))return!0;return q(e)==="lmstudio"}function Nc(e){let a=globalThis.process?.env;if(!a)return;let t=a[e];if(typeof t!=="string")return;let i=t.trim();return i.length>0?i:void 0}var $=w(()=>{Pe()});var yo={};L(yo,{createOpenAIProviderModule:()=>Hc});import{createOpenAI as Oc}from"@ai-sdk/openai";async function Hc(e,a){let t=await S(e),i=Oc({apiKey:t,headers:e.headers,fetch:e.fetch,name:a.provider.id});return{model:(n)=>i.responses(n)}}var Do=w(()=>{$()});var Ro={};L(Ro,{createOpenAICompatibleProviderModule:()=>Vc});import{createOpenAICompatible as Ec}from"@ai-sdk/openai-compatible";async function Vc(e,a){let t=await S(e);if(!t&&!To(a.provider.id,e))throw Error(fo(a.provider.id,a.provider.apiKeyEnv));let i=Ec({name:a.provider.id,apiKey:t,...e.baseUrl?{baseURL:e.baseUrl}:{},...e.headers?{headers:e.headers}:{},...e.fetch?{fetch:e.fetch}:{},includeUsage:!0});return{model:(n)=>i(n)}}var vo=w(()=>{$()});var Mo={};L(Mo,{createAnthropicProviderModule:()=>Yc});import{createAnthropic as $c}from"@ai-sdk/anthropic";async function Yc(e,a){let t=await S(e),i=$c({apiKey:t,headers:e.headers,fetch:e.fetch,name:a.provider.id});return{model:(n)=>i(n)}}var Po=w(()=>{$()});var Go={};L(Go,{createGoogleProviderModule:()=>Xc});import{createGoogleGenerativeAI as Zc}from"@ai-sdk/google";async function Xc(e,a){let t=await S(e),i=Zc({apiKey:t,headers:e.headers,fetch:e.fetch,name:a.provider.id});return{model:(n)=>i(n)}}var qo=w(()=>{$()});var Co={};L(Co,{createVertexProviderModule:()=>jc});import{createVertex as Jc}from"@ai-sdk/google-vertex";import{createVertexAnthropic as Uc}from"@ai-sdk/google-vertex/anthropic";async function jc(e,a){let t=String(e.options?.project??e.options?.projectId??""),i=String(e.options?.location??e.options?.region??"us-central1");if(a.model.id.toLowerCase().includes("claude")){let o=Uc({project:t,location:i,baseURL:e.baseUrl,headers:e.headers,fetch:e.fetch});return{model:(r)=>o(r)}}let n=Jc({project:t,location:i,apiKey:await S(e),baseURL:e.baseUrl,headers:e.headers,fetch:e.fetch});return{model:(o)=>n(o)}}var Bo=w(()=>{$()});var Ao={};L(Ao,{createBedrockProviderModule:()=>es});import{createAmazonBedrock as zc}from"@ai-sdk/amazon-bedrock";async function es(e){let a=typeof e.options?.credentialProvider==="function"?e.options.credentialProvider:void 0,t=zc({region:e.options?.region,apiKey:await S(e),accessKeyId:e.options?.accessKeyId,secretAccessKey:e.options?.secretAccessKey,sessionToken:e.options?.sessionToken,baseURL:e.baseUrl,headers:e.headers,fetch:e.fetch,credentialProvider:a});return{model:(i)=>t(i)}}var So=w(()=>{$()});var Qo={};L(Qo,{createMistralProviderModule:()=>ts});import{createMistral as as}from"@ai-sdk/mistral";async function ts(e){let a=as({apiKey:await S(e),baseURL:e.baseUrl,headers:e.headers,fetch:e.fetch});return{model:(t)=>a(t)}}var _o=w(()=>{$()});var Ge={};L(Ge,{createOpenCodeProviderModule:()=>ps,createOpenAICodexProviderModule:()=>ss,createDifyProviderModule:()=>ms,createClaudeCodeProviderModule:()=>cs});import{createClaudeCode as is}from"ai-sdk-provider-claude-code";import{createCodexExec as ns}from"ai-sdk-provider-codex-cli";import{createOpencode as os}from"ai-sdk-provider-opencode-sdk";import{createDifyProvider as rs}from"dify-ai-provider";function ta(e){return e.options??{}}async function cs(e){let a=is(ta(e));return{model:(t)=>a(t)}}async function ss(e){let a=ns(ta(e));return{model:(t)=>a(t)}}async function ps(e){let a=os(ta(e));return{model:(t)=>a(t)}}async function ms(e){let a=await S(e),t=rs({baseURL:e.baseUrl,headers:e.headers,fetch:e.fetch,...ta(e)});return{model:(i)=>t(i,{apiKey:a})}}var qe=w(()=>{$()});var I={};L(I,{createVertexProvider:()=>Dt,createOpenCodeProvider:()=>Gt,createOpenAIProvider:()=>bt,createOpenAICompatibleProvider:()=>ft,createOpenAICodexProvider:()=>Pt,createMistralProvider:()=>vt,createGoogleProvider:()=>yt,createDifyProvider:()=>qt,createClaudeCodeProvider:()=>Mt,createBedrockProvider:()=>Rt,createAnthropicProvider:()=>Tt});import{streamText as us}from"ai";import{nanoid as ls}from"nanoid";import{z as ds}from"zod";function ie(e){let a=e.model.metadata?.family;return typeof a==="string"?a:void 0}function le(e){if(typeof e.family==="string")return e.family.toLowerCase().includes("claude");return gs(e.modelId)}function gs(e){if(!e)return!1;let a=e.toLowerCase();return a.startsWith("anthropic/")||a.startsWith("claude-")||a.includes("/claude-")}function No(e){return e.replace(/-([a-z0-9])/gi,(a,t)=>t.toUpperCase())}function ue(){return{cache_control:{type:"ephemeral"}}}function Lo(e,a){let t={openaiCompatible:ue(),[e]:ue()},i=No(e);if(i!==e)t[i]=ue();if(a)t.anthropic=ue();return t}function hs(e,a,t){if(!e)return;let i=e.content;if(typeof i==="string"){e.content=[{type:"text",text:i,providerOptions:Lo(a,t)}];return}if(!Array.isArray(i))return;for(let n=i.length-1;n>=0;n--){let o=i[n];if(o&&typeof o==="object"&&o.type==="text"){i[n]={...o,providerOptions:Lo(a,t)};return}}}function xs(e,a,t){let i=Ho(e.messages,t),n=le({modelId:e.modelId,family:ie(a)});for(let o=i.length-1;o>=0;o--)if(i[o]?.role==="user"){hs(i[o],e.providerId,n);break}return i}function ws(e,a){return le({modelId:e.modelId,family:ie(a)})}function Oo(e){if(typeof e.explicitBudgetTokens==="number"&&e.explicitBudgetTokens>0)return e.explicitBudgetTokens;if(!e.modelId&&!e.family||!le({modelId:e.modelId,family:e.family})||!e.effort||typeof e.maxTokens!=="number"||e.maxTokens<=1024)return;let t={low:0.2,medium:0.5,high:0.8}[e.effort];if(!t)return;let i=Math.min(e.maxTokens-1,128000);return Math.max(1024,Math.floor(i*t))}function Ws(e,a){if(!le({modelId:e.modelId,family:ie(a)})||!e.reasoning?.enabled&&!e.reasoning?.effort&&typeof e.reasoning?.budgetTokens!=="number")return;let t=Oo({modelId:e.modelId,family:ie(a),effort:e.reasoning?.effort,maxTokens:e.maxTokens,explicitBudgetTokens:e.reasoning?.budgetTokens}),i={};if(e.reasoning?.enabled===!0)i.enabled=!0;if(typeof t==="number"&&t>=0)i.max_tokens=t;else if(e.reasoning?.effort)i.effort=e.reasoning.effort;else if(e.reasoning?.budgetTokens===0)i.max_tokens=0;return Object.keys(i).length>0?i:void 0}function ks(e,a){if(!e.reasoning?.enabled&&!e.reasoning?.effort&&typeof e.reasoning?.budgetTokens!=="number")return;let t=le({modelId:e.modelId,family:ie(a)})?Oo({modelId:e.modelId,family:ie(a),effort:e.reasoning?.effort,maxTokens:e.maxTokens,explicitBudgetTokens:e.reasoning?.budgetTokens}):e.reasoning?.budgetTokens,i={...e.reasoning?.enabled===!0||e.reasoning?.effort?{enabled:!0}:{},...e.reasoning?.effort?{effort:e.reasoning.effort}:{}};if(typeof t==="number"&&t>=0)i.max_tokens=t;return Object.keys(i).length>0?i:void 0}async function bs(e){try{return(await Promise.resolve().then(() => bo)).ensureLangfuseTelemetry(e)}catch{return!1}}function Ho(e,a){let t=[];for(let i of e){let n=[];for(let o of i.content){if(o.type==="text"){n.push({type:"text",text:o.text});continue}if(o.type==="reasoning"){let r=o.metadata?.signature,p=o.metadata?.redactedData;n.push({type:"reasoning",text:o.text,...typeof r==="string"||typeof p==="string"?{providerOptions:{anthropic:{...typeof r==="string"?{signature:r}:{},...typeof p==="string"?{redactedData:p}:{}}}}:{}});continue}if(o.type==="file"){n.push({type:"file",path:o.path,content:o.content});continue}if(o.type==="tool-call"){let r=o.metadata?.thoughtSignature??o.metadata?.thought_signature;n.push({type:"tool-call",toolCallId:o.toolCallId,toolName:o.toolName,input:o.input,...typeof r==="string"?{providerOptions:{google:{thoughtSignature:r}}}:{}});continue}if(o.type==="tool-result")n.push({type:"tool-result",toolCallId:o.toolCallId,toolName:o.toolName,output:o.output,isError:o.isError??!1})}if(n.length>0)t.push({role:i.role,content:n});else if(i.role==="user"||i.role==="assistant")t.push({role:i.role,content:""})}return Oe(a,t,{assistantToolCallArgKey:"input"})}function fs(e){if(!e.tools?.length)return;return Object.fromEntries(e.tools.map((a)=>[a.name,{description:a.description,inputSchema:ds.fromJSONSchema(a.inputSchema)}]))}function Ts(e,a){let t=No(e.providerId),i=le({modelId:e.modelId,family:ie(a)}),n=Ws(e,a),o=ks(e,a),p={...e.reasoning?.enabled===!0||typeof e.reasoning?.effort==="string"?{thinking:{type:"adaptive"}}:{},...e.reasoning?.effort?{effort:e.reasoning.effort}:{},...ue()},d={...e.reasoning?.enabled===!0?{thinking:{type:"adaptive"}}:{},...e.reasoning?.effort?{effort:e.reasoning.effort}:{},...e.reasoning?.effort?{reasoningEffort:e.reasoning.effort}:{},...e.reasoning?.effort&&!i?{reasoningSummary:"auto"}:{},...n?{reasoning:n}:{},...ue()},u=e.reasoning?.effort?{thinkingConfig:{thinkingLevel:e.reasoning.effort,includeThoughts:!0}}:void 0,x={anthropic:p,openaiCompatible:d};if(e.providerId!=="anthropic")x[e.providerId]={...d,...e.providerId==="cline"&&o?{reasoning:o}:{}};if(e.providerId==="google"||e.providerId==="gemini")x.google=u;if(t!==e.providerId&&t!=="anthropic")x[t]=d;return x}function ys(e,a){if(e==="tool-calls"||e==="tool_calls"||a)return"tool-calls";if(e==="length"||e==="max_tokens")return"max-tokens";if(e==="error")return"error";return"stop"}function me(e,...a){for(let t of a){let i=e[t];if(typeof i==="number"&&Number.isFinite(i))return i;if(typeof i==="string"&&i.trim().length>0&&Number.isFinite(Number(i)))return Number(i)}return 0}function kt(e,...a){return a.some((t)=>K(e[t])!==void 0)}function K(e){if(typeof e==="number"&&Number.isFinite(e))return e;if(typeof e==="string"&&e.trim().length>0&&Number.isFinite(Number(e)))return Number(e);return}function Fo(e,...a){let t=e;for(let i of a){if(!t||typeof t!=="object")return 0;t=t[i]}return typeof t==="number"&&Number.isFinite(t)?t:0}function Ds(e){if(!e||typeof e!=="object")return;let a=e;for(let t of Object.values(a)){if(!t||typeof t!=="object")continue;let i=t;if(i.usage&&typeof i.usage==="object")return i.usage}return}function Rs(e,a){if(!a||typeof a!=="object")return;let t=a,i=K(t.input),n=K(t.output);if(i===void 0||n===void 0)return;let o=K(t.cacheRead)??0,r=K(t.cacheWrite)??i*1.25;return Math.max(0,e.inputTokens-e.cacheReadTokens-e.cacheWriteTokens)/1e6*i+e.outputTokens/1e6*n+e.cacheReadTokens/1e6*o+e.cacheWriteTokens/1e6*r}function Ko(e,a,t){let i=e&&typeof e==="object"?e:{},n=Ds(a),o=a&&typeof a==="object"?a:{},r=o.gateway&&typeof o.gateway==="object"?o.gateway:{},p=K(i.cost_details?.upstream_inference_cost),d=kt(i,"market_cost","marketCost","cost")||kt(r,"marketCost","cost")||p!==void 0||kt(i,"upstream_inference_cost"),u=K(i.market_cost)??K(i.marketCost)??K(r.marketCost)??K(i.cost)??K(r.cost)??p??K(i.upstream_inference_cost),x={inputTokens:me(i,"inputTokens","input_tokens","prompt_tokens"),outputTokens:me(i,"outputTokens","output_tokens","completion_tokens"),cacheReadTokens:Fo(i,"inputTokenDetails","cacheReadTokens")||me(i,"cachedInputTokens","cacheReadTokens","cache_read_tokens","cache_read_input_tokens")||Fo(i,"prompt_tokens_details","cached_tokens")||me(n??{},"cachedInputTokens","cacheReadTokens","cache_read_tokens","cache_read_input_tokens"),cacheWriteTokens:me(i,"cacheWriteTokens","cache_write_tokens","cache_creation_input_tokens")||me(n??{},"cacheWriteTokens","cache_write_tokens","cache_creation_input_tokens")},P=u!==void 0?u:d?void 0:Rs(x,t);return{...x,...typeof P==="number"?{totalCost:P}:{}}}function vs(e){if(!e)return;let a=()=>{};if(e.usage&&typeof e.usage.catch==="function")e.usage.catch(a);if(e.text&&typeof e.text.catch==="function")e.text.catch(a);for(let t of Object.keys(e)){let i=e[t];if(i&&typeof i==="object"&&typeof i.catch==="function")i.catch(a)}}function Eo(e){if(e instanceof Error){if(e.name==="AI_MissingToolResultsError"||e.message.includes("Tool result is missing for tool call"))return"A previous turn left an unfinished tool call in the conversation history. The runtime will need to resume from a repaired history state before sending more user content.";if(e.name==="AI_NoOutputGeneratedError"||e.message.includes("No output generated. Check the stream for errors."))return"The model stream ended without producing output. This usually means an earlier tool-call or prompt-formatting error interrupted the turn."}if(e&&typeof e==="object"&&"statusCode"in e&&"responseBody"in e){let a=e,t=typeof a.statusCode==="number"?a.statusCode:void 0;if(typeof a.responseBody==="string")try{let i=JSON.parse(a.responseBody),n=typeof i.error==="string"?i.error:typeof i.error?.message==="string"?i.error.message:void 0;if(n)return t?`${t} ${n}`:n}catch{}if(typeof a.message==="string"&&a.message.trim())return t?`${t} ${a.message}`:a.message}if(e&&typeof e==="object"&&"cause"in e&&e.cause)return Eo(e.cause);if(e instanceof Error&&e.message.trim())return e.message;return String(e)}function Io(e){let a={};if(typeof e.thoughtSignature==="string")a.thoughtSignature=e.thoughtSignature;if(typeof e.thought_signature==="string")a.thought_signature=e.thought_signature;let t=e.providerMetadata&&typeof e.providerMetadata==="object"?e.providerMetadata:void 0,i=t?.google&&typeof t.google==="object"?t.google:void 0;if(typeof a.thoughtSignature!=="string"&&typeof i?.thoughtSignature==="string")a.thoughtSignature=i.thoughtSignature;if(typeof a.thought_signature!=="string"&&typeof i?.thought_signature==="string")a.thought_signature=i.thought_signature;return Object.keys(a).length>0?a:void 0}async function*Ms(e,a){let t=!1,i;if(e.fullStream)for await(let n of e.fullStream){if(n.type==="text-delta"){let o=n.textDelta??n.text??n.delta;if(o)yield{type:"text-delta",text:o};continue}if(n.type==="reasoning-delta"||n.type==="reasoning"){let o=n.textDelta??n.text??n.reasoning;if(o)yield{type:"reasoning-delta",text:o,metadata:Io(n)};continue}if(n.type==="tool-call"){t=!0;let o=n.input??n.args??{},r=typeof o==="string"?o:JSON.stringify(o);yield{type:"tool-call-delta",toolCallId:n.toolCallId??n.id??`tool_${ls()}`,toolName:n.toolName??n.name??"tool",input:typeof o==="string"?void 0:o,inputText:r,metadata:Io(n)};continue}if(n.type==="finish")yield{type:"usage",usage:Ko(n.usage??n.totalUsage??{},n.providerMetadata,a)},i=n.finishReason??n.reason}else if(e.textStream)for await(let n of e.textStream)yield{type:"text-delta",text:n};if(e.usage){let n=await e.usage;yield{type:"usage",usage:Ko(n,void 0,a)}}yield{type:"finish",reason:ys(i,t)}}async function Ps(e,a,t){switch(e){case"openai":{let{createOpenAIProviderModule:i}=await Promise.resolve().then(() => (Do(),yo));return i(a,t)}case"openai-compatible":{let{createOpenAICompatibleProviderModule:i}=await Promise.resolve().then(() => (vo(),Ro));return i(a,t)}case"anthropic":{let{createAnthropicProviderModule:i}=await Promise.resolve().then(() => (Po(),Mo));return i(a,t)}case"google":{let{createGoogleProviderModule:i}=await Promise.resolve().then(() => (qo(),Go));return i(a,t)}case"vertex":{let{createVertexProviderModule:i}=await Promise.resolve().then(() => (Bo(),Co));return i(a,t)}case"bedrock":{let{createBedrockProviderModule:i}=await Promise.resolve().then(() => (So(),Ao));return i(a)}case"mistral":{let{createMistralProviderModule:i}=await Promise.resolve().then(() => (_o(),Qo));return i(a)}case"claude-code":{let{createClaudeCodeProviderModule:i}=await Promise.resolve().then(() => (qe(),Ge));return i(a)}case"openai-codex":{let{createOpenAICodexProviderModule:i}=await Promise.resolve().then(() => (qe(),Ge));return i(a)}case"opencode":{let{createOpenCodeProviderModule:i}=await Promise.resolve().then(() => (qe(),Ge));return i(a)}case"dify":{let{createDifyProviderModule:i}=await Promise.resolve().then(() => (qe(),Ge));return i(a)}}}function H(e){return async(a)=>({async*stream(t,i){let n;try{let o=await Ps(e,a,i),r=await bs(a.providerId);n=us({model:o.model(i.model.id),messages:ws(t,i)?xs(t,i,t.systemPrompt):Ho(t.messages,t.systemPrompt),tools:fs(t),temperature:t.temperature,maxOutputTokens:t.maxTokens,abortSignal:t.signal,experimental_telemetry:{isEnabled:r},providerOptions:Ts(t,i),onError:()=>{}}),yield*Ms(n,i.model.metadata?.pricing)}catch(o){vs(n),yield{type:"finish",reason:"error",error:Eo(o)}}}})}var bt,ft,Tt,yt,Dt,Rt,vt,Mt,Pt,Gt,qt;var _=w(()=>{ve();bt=H("openai"),ft=H("openai-compatible"),Tt=H("anthropic"),yt=H("google"),Dt=H("vertex"),Rt=H("bedrock"),vt=H("mistral"),Mt=H("claude-code"),Pt=H("openai-codex"),Gt=H("opencode"),qt=H("dify")});we();var Jt="https://code-internal.aiservice.us-chicago-1.oci.oraclecloud.com/20250206/app/litellm",sa="https://code.aiservice.us-chicago-1.oci.oraclecloud.com/20250206/app/litellm";function v0(e){return Object.fromEntries(Object.entries(e).map(([a,t])=>[a,{...t}]))}function pa(e){return v0(j(e))}function ca(e){let a=Object.entries(pa("anthropic")).find(([t])=>e(t));if(a)return a[1];return{id:"sonnet",name:"Claude Sonnet",capabilities:["streaming","reasoning"]}}function M0(){function e(a){return{...a==="opus"?ca((i)=>i.includes("opus")):a==="haiku"?ca((i)=>i.includes("haiku")):ca((i)=>i.includes("sonnet")),id:a,name:`Claude ${a.charAt(0).toUpperCase()}${a.slice(1)}`}}return{opus:e("opus"),sonnet:e("sonnet"),haiku:e("haiku")}}function P0(e){if(!e.capabilities?.includes("tools"))return e;return{...e,capabilities:e.capabilities.filter((a)=>a!=="tools")}}function G0(){return Object.fromEntries(Object.entries(pa("openai")).map(([e,a])=>[e,P0(a)]))}function q0(e,a){let t=new Set(["text"]);for(let n of a.capabilities??[])switch(n){case"tools":t.add("tools");break;case"reasoning":t.add("reasoning");break;case"images":t.add("images");break;case"structured_output":t.add("structured-output");break}let i={};if(a.family)i.family=a.family;if(a.pricing)i.pricing=a.pricing;if(a.status)i.status=a.status;if(a.releaseDate)i.releaseDate=a.releaseDate;return{id:a.id,name:a.name??a.id,providerId:e,description:a.description,contextWindow:a.contextWindow,maxOutputTokens:a.maxTokens,capabilities:[...t],metadata:Object.keys(i).length>0?i:void 0}}function C0(e){switch(e.family){case"openai":return"openai-responses";case"anthropic":case"bedrock":return"anthropic";case"google":case"vertex":return"gemini";default:return"openai-chat"}}function B0(e){switch(e.family){case"openai":return"openai";case"anthropic":return"anthropic";case"google":return"gemini";case"vertex":return"vertex";case"bedrock":return"bedrock";case"mistral":case"claude-code":case"openai-codex":case"opencode":case"dify":return"ai-sdk-community";default:return"openai-compatible"}}var A0=[{id:"cline",name:"Cline",description:"Cline API endpoint",family:"openai-compatible",capabilities:["reasoning","prompt-cache","tools","oauth"],modelsProviderId:"vercel-ai-gateway",defaultModelId:"anthropic/claude-sonnet-4.6",apiKeyEnv:["CLINE_API_KEY"],defaults:{baseUrl:"https://api.cline.bot/api/v1"}},{id:"deepseek",name:"DeepSeek",description:"Advanced AI models with reasoning capabilities",family:"openai-compatible",capabilities:["reasoning","prompt-cache"],defaultModelId:"deepseek-chat",apiKeyEnv:["DEEPSEEK_API_KEY"],defaults:{baseUrl:"https://api.deepseek.com/v1"}},{id:"xai",name:"xAI",description:"Creator of Grok AI assistant",family:"openai-compatible",capabilities:["reasoning"],defaultModelId:"grok-4.20-0309-non-reasoning",apiKeyEnv:["XAI_API_KEY"],defaults:{baseUrl:"https://api.x.ai/v1"}},{id:"together",name:"Together AI",description:"Fast inference for open-source models",family:"openai-compatible",capabilities:["reasoning"],defaultModelId:"Qwen/Qwen3.5-397B-A17B",apiKeyEnv:["TOGETHER_API_KEY"],defaults:{baseUrl:"https://api.together.xyz/v1"}},{id:"fireworks",name:"Fireworks AI",description:"High-performance inference platform",family:"openai-compatible",defaultModelId:"accounts/fireworks/models/minimax-m2p5",apiKeyEnv:["FIREWORKS_API_KEY"],defaults:{baseUrl:"https://api.fireworks.ai/inference/v1"}},{id:"groq",name:"Groq",description:"Ultra-fast LPU inference",family:"openai-compatible",defaultModelId:"moonshotai/kimi-k2-instruct-0905",apiKeyEnv:["GROQ_API_KEY"],defaults:{baseUrl:"https://api.groq.com/openai/v1"}},{id:"cerebras",name:"Cerebras",description:"Fast inference on Cerebras wafer-scale chips",family:"openai-compatible",defaultModelId:"zai-glm-4.7",apiKeyEnv:["CEREBRAS_API_KEY"],defaults:{baseUrl:"https://api.cerebras.ai/v1"}},{id:"sambanova",name:"SambaNova",description:"High-performance AI inference",family:"openai-compatible",apiKeyEnv:["SAMBANOVA_API_KEY"],modelsProviderId:"sambanova",defaults:{baseUrl:"https://api.sambanova.ai/v1"}},{id:"nebius",name:"Nebius",description:"European cloud AI infrastructure",family:"openai-compatible",defaultModelId:"nvidia/nemotron-3-super-120b-a12b",apiKeyEnv:["NEBIUS_API_KEY"],defaults:{baseUrl:"https://api.studio.nebius.ai/v1"}},{id:"baseten",name:"Baseten",description:"ML inference platform",family:"openai-compatible",apiKeyEnv:["BASETEN_API_KEY"],modelsProviderId:"baseten",defaults:{baseUrl:"https://model-api.baseten.co/v1"}},{id:"requesty",name:"Requesty",description:"AI router with multiple provider support",family:"openai-compatible",capabilities:["reasoning"],defaultModelId:"openai/gpt-5.4",apiKeyEnv:["REQUESTY_API_KEY"],modelsProviderId:"requesty",defaults:{baseUrl:"https://router.requesty.ai/v1"}},{id:"litellm",name:"LiteLLM",description:"Self-hosted LLM proxy",family:"openai-compatible",protocol:"openai-responses",capabilities:["prompt-cache"],defaultModelId:"gpt-5.4",apiKeyEnv:["LITELLM_API_KEY"],defaults:{baseUrl:"http://localhost:4000/v1"}},{id:"huggingface",name:"Hugging Face",description:"Hugging Face inference API",family:"openai-compatible",defaultModelId:"MiniMaxAI/MiniMax-M2.5",apiKeyEnv:["HF_TOKEN"],modelsProviderId:"huggingface",defaults:{baseUrl:"https://api-inference.huggingface.co/v1"}},{id:"vercel-ai-gateway",name:"Vercel AI Gateway",description:"Vercel's AI gateway service",family:"openai-compatible",capabilities:["reasoning"],defaultModelId:"alibaba/qwen3.6-plus",apiKeyEnv:["AI_GATEWAY_API_KEY"],modelsProviderId:"vercel-ai-gateway",defaults:{baseUrl:"https://ai-gateway.vercel.sh/v1"}},{id:"aihubmix",name:"AI Hub Mix",description:"AI model aggregator",family:"openai-compatible",defaultModelId:"gpt-4o",apiKeyEnv:["AIHUBMIX_API_KEY"],modelsProviderId:"aihubmix",defaults:{baseUrl:"https://api.aihubmix.com/v1"}},{id:"hicap",name:"HiCap",description:"HiCap AI platform",family:"openai-compatible",defaultModelId:"hicap-pro",apiKeyEnv:["HICAP_API_KEY"],defaults:{baseUrl:"https://api.hicap.ai/v1"}},{id:"nousResearch",name:"Nous Research",description:"Open-source AI research lab",family:"openai-compatible",defaultModelId:"DeepHermes-3-Llama-3-3-70B-Preview",apiKeyEnv:["NOUS_RESEARCH_API_KEY","NOUSRESEARCH_API_KEY"],modelsProviderId:"nousResearch",defaults:{baseUrl:"https://inference-api.nousresearch.com/v1"}},{id:"huawei-cloud-maas",name:"Huawei Cloud MaaS",description:"Huawei's model-as-a-service platform",family:"openai-compatible",defaultModelId:"DeepSeek-R1",apiKeyEnv:["HUAWEI_CLOUD_MAAS_API_KEY"],defaults:{baseUrl:"https://infer-modelarts.cn-southwest-2.myhuaweicloud.com/v1"}},{id:"qwen",name:"Qwen Plus Latest",description:"Alibaba Qwen platform models",family:"openai-compatible",capabilities:["tools","reasoning"],defaultModelId:"qwen-plus-latest",apiKeyEnv:["QWEN_API_KEY"],modelsProviderId:"qwen",defaults:{baseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1"}},{id:"qwen-code",name:"Qwen3 Coder Plus",description:"Qwen OAuth coding models",family:"openai-compatible",capabilities:["tools","reasoning"],defaultModelId:"qwen3-coder-plus",modelsProviderId:"qwen-code",defaults:{baseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1"}},{id:"doubao",name:"Doubao",description:"Volcengine Ark platform models",family:"openai-compatible",capabilities:["tools"],defaultModelId:"doubao-1-5-pro-256k-250115",apiKeyEnv:["DOUBAO_API_KEY"],modelsProviderId:"doubao",defaults:{baseUrl:"https://ark.cn-beijing.volces.com/api/v3"}},{id:"zai",name:"Z.AI",description:"Z.AI's family of LLMs",family:"openai-compatible",capabilities:["reasoning"],defaultModelId:"glm-5v-turbo",apiKeyEnv:["ZHIPU_API_KEY"],modelsProviderId:"zai",defaults:{baseUrl:"https://api.z.ai/api/paas/v4"}},{id:"moonshot",name:"Moonshot",description:"Moonshot AI Studio models",family:"openai-compatible",capabilities:["tools","reasoning"],defaultModelId:"kimi-k2-0905-preview",apiKeyEnv:["MOONSHOT_API_KEY"],modelsProviderId:"moonshot",defaults:{baseUrl:"https://api.moonshot.ai/v1"}},{id:"wandb",name:"W&B by CoreWeave",description:"Weights & Biases",family:"openai-compatible",capabilities:["reasoning","prompt-cache","tools"],defaultModelId:"nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8",apiKeyEnv:["WANDB_API_KEY"],modelsProviderId:"wandb",defaults:{baseUrl:"https://api.inference.wandb.ai/v1"}},{id:"xiaomi",name:"Xiaomi",description:"Xiaomi",family:"openai-compatible",protocol:"openai-responses",capabilities:["prompt-cache","tools","reasoning"],defaultModelId:"mimo-v2-omni",apiKeyEnv:["XIAOMI_API_KEY"],modelsProviderId:"xiaomi",defaults:{baseUrl:"https://api.xiaomimimo.com/v1"}},{id:"kilo",name:"Kilo Gateway",description:"Kilo Gateway",family:"openai-compatible",protocol:"openai-responses",capabilities:["prompt-cache","reasoning","tools"],defaultModelId:"gpt-4o",apiKeyEnv:["KILO_GATEWAY_API_KEY"],modelsProviderId:"kilo",defaults:{baseUrl:"https://api.kilo.ai/api/gateway"}},{id:"openrouter",name:"OpenRouter",description:"OpenRouter AI platform",family:"openai-compatible",capabilities:["reasoning","prompt-cache"],defaultModelId:"anthropic/claude-sonnet-4.6",apiKeyEnv:["OPENROUTER_API_KEY"],modelsProviderId:"openrouter",docsUrl:"https://openrouter.ai/models",defaults:{baseUrl:"https://openrouter.ai/api/v1"}},{id:"ollama",name:"Ollama",description:"Ollama Cloud and local LLM hosting",family:"openai-compatible",defaultModelId:"",apiKeyEnv:["OLLAMA_API_KEY"],defaults:{baseUrl:"http://localhost:11434/v1"}},{id:"lmstudio",name:"LM Studio",description:"Local model inference with LM Studio",family:"openai-compatible",defaultModelId:"",apiKeyEnv:["LMSTUDIO_API_KEY"],modelsProviderId:"lmstudio",defaults:{baseUrl:"http://localhost:1234/v1"}},{id:"oca",name:"Oracle Code Assist",description:"Oracle Code Assist (OCA) LiteLLM gateway",family:"openai-compatible",capabilities:["reasoning","prompt-cache","tools"],defaultModelId:"anthropic/claude-3-7-sonnet-20250219",apiKeyEnv:["OCA_API_KEY"],modelsProviderId:"oca",defaults:{baseUrl:sa}},{id:"asksage",name:"AskSage",description:"AskSage platform",family:"openai-compatible",client:"fetch",capabilities:["tools"],defaultModelId:"gpt-4o",apiKeyEnv:["ASKSAGE_API_KEY"],modelsFactory:()=>({}),defaults:{baseUrl:"https://api.asksage.ai/server"}},{id:"sapaicore",name:"SAP AI Core",description:"SAP AI Core inference and orchestration platform",family:"openai-compatible",client:"ai-sdk-community",capabilities:["tools","reasoning","prompt-cache"],defaultModelId:"anthropic--claude-3.5-sonnet",apiKeyEnv:["AICORE_SERVICE_KEY","VCAP_SERVICES"],modelsProviderId:"sapaicore"}],ma=[{id:"openai-native",name:"OpenAI",description:"Creator of GPT and ChatGPT",family:"openai",capabilities:["reasoning"],modelsProviderId:"openai",defaultModelId:"gpt-5.4-mini",apiKeyEnv:["OPENAI_API_KEY"],defaults:{baseUrl:"https://api.openai.com/v1"}},{id:"openai-codex",name:"OpenAI Codex",description:"OpenAI Codex via the local Codex CLI provider",family:"openai-codex",capabilities:["reasoning","oauth"],defaultModelId:"gpt-5.4-mini",modelsFactory:G0,defaults:{baseUrl:"https://chatgpt.com/backend-api/codex"}},{id:"anthropic",name:"Anthropic",description:"Creator of Claude, the AI assistant",family:"anthropic",capabilities:["reasoning","prompt-cache"],defaultModelId:"claude-sonnet-4-6",apiKeyEnv:["ANTHROPIC_API_KEY"],modelsProviderId:"anthropic",defaults:{baseUrl:"https://api.anthropic.com/v1"}},{id:"claude-code",name:"Claude Code",description:"Use Claude Code SDK with Claude Pro/Max subscription",family:"claude-code",capabilities:["reasoning"],defaultModelId:"sonnet",modelsFactory:M0,defaults:{baseUrl:""}},{id:"gemini",name:"Google Gemini",description:"Google Gemini API",family:"google",capabilities:["reasoning","prompt-cache"],defaultModelId:"gemma-4-26b",apiKeyEnv:["GOOGLE_GENERATIVE_AI_API_KEY","GEMINI_API_KEY"],modelsProviderId:"gemini",defaults:{baseUrl:"https://generativelanguage.googleapis.com/v1beta"}},{id:"vertex",name:"Google Vertex AI",description:"Google Cloud Vertex AI (Gemini and partner models)",family:"vertex",capabilities:["reasoning","prompt-cache"],defaultModelId:"claude-sonnet-4-6@default",apiKeyEnv:["GCP_PROJECT_ID","GOOGLE_CLOUD_PROJECT","GOOGLE_APPLICATION_CREDENTIALS","GEMINI_API_KEY","GOOGLE_API_KEY"],modelsProviderId:"vertex"},{id:"bedrock",name:"AWS Bedrock",description:"Amazon Bedrock managed foundation models",family:"bedrock",capabilities:["reasoning","prompt-cache"],defaultModelId:"minimax.minimax-m2.5",apiKeyEnv:["AWS_REGION","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN"],modelsProviderId:"bedrock"},{id:"mistral",name:"Mistral",description:"Mistral AI models via AI SDK provider",family:"mistral",capabilities:["reasoning"],defaultModelId:"mistral-medium-latest",apiKeyEnv:["MISTRAL_API_KEY"],modelsFactory:()=>({}),defaults:{baseUrl:"https://api.mistral.ai/v1"}},{id:"minimax",name:"MiniMax",description:"MiniMax models via Anthropic-compatible API",family:"anthropic",capabilities:["tools","reasoning","prompt-cache"],defaultModelId:"MiniMax-M2.5",apiKeyEnv:["MINIMAX_API_KEY"],modelsProviderId:"minimax",defaults:{baseUrl:"https://api.minimax.io/anthropic"}},{id:"opencode",name:"OpenCode",description:"OpenCode SDK multi-provider runtime",family:"opencode",capabilities:["reasoning","oauth"],defaultModelId:"openai/gpt-5.3-codex",modelsProviderId:"opencode",defaults:{baseUrl:""}},{id:"dify",name:"Dify",description:"Dify workflow/application provider via AI SDK",family:"dify",defaultModelId:"default",apiKeyEnv:["DIFY_API_KEY"],modelsFactory:()=>({})},...A0];function S0(e){if(e.modelsFactory)return e.modelsFactory();if(e.modelsProviderId)return pa(e.modelsProviderId);return{}}function Ut(e){let a=S0(e),t=Object.keys(a).length>0?a:e.defaultModelId?{[e.defaultModelId]:{id:e.defaultModelId,name:e.defaultModelId}}:{},i=Object.keys(t),n=e.defaultModelId||i[0]||"default";return{provider:{id:e.id,name:e.name,description:e.description,protocol:e.protocol??C0(e),baseUrl:e.defaults?.baseUrl,defaultModelId:n,capabilities:e.capabilities,env:e.apiKeyEnv?[...e.apiKeyEnv]:void 0,client:e.client??B0(e)},models:t}}function jt(e){let a=Ut(e),t=Object.values(a.models).map((n)=>q0(e.id,n)),i=t.length>0?t:[{id:a.provider.defaultModelId||"default",name:a.provider.defaultModelId||"Default",providerId:e.id,capabilities:["text"]}];return{id:e.id,name:e.name,description:e.description,defaultModelId:a.provider.defaultModelId||i[0]?.id||"default",models:i,env:e.env??["browser","node"],api:e.defaults?.baseUrl,apiKeyEnv:e.apiKeyEnv,docsUrl:e.docsUrl}}var We=ma.map(Ut),Q0=Object.fromEntries(We.map((e)=>[e.provider.id,e])),zs=Q0["openai-codex"];function _0(){let e=new Map;for(let a of We)e.set(a.provider.id,{provider:{...a.provider},models:Object.fromEntries(Object.entries(a.models).map(([t,i])=>[t,{...i}]))});return e}var ke=_0(),re=new Map,ee=new Map;function z(e){return ee.get(e)??ke.get(e)}function _e(){let e=Array.from(ke.keys()),a=Array.from(ee.keys()).filter((t)=>!ke.has(t));return[...e,...a]}function be(e){return ke.has(e)||ee.has(e)}async function zt(e){return z(e)?.provider}function ua(e){return z(e)}async function ae(e){return z(e)}async function ei(e){let t=z(e)?.models??{},i=re.get(e);if(i)return{...t,...Object.fromEntries(i)};return t}async function ai(){return _e().map((e)=>z(e)?.provider).filter((e)=>e!==void 0)}function fe(e){ee.set(e.provider.id,e)}function Le(e,a,t){if(!re.has(e))re.set(e,new Map);re.get(e)?.set(a,{...t,id:a})}function ti(e){return re.delete(e),ee.delete(e)}function ii(){re.clear(),ee.clear()}var ni=new Proxy({},{get(e,a){return z(a)},has(e,a){return ke.has(a)||ee.has(a)},ownKeys(){return _e()},getOwnPropertyDescriptor(e,a){let t=z(a);if(t===void 0)return;return{configurable:!0,enumerable:!0,value:t}}});we();ve();function sc(e){return Object.fromEntries(Object.entries(e).map(([a,t])=>[a,{...t}]))}function pc(e){if(e.baseUrl.length===0)return!1;switch(e.client){case"openai-compatible":case"openai":case"openai-r1":case"fetch":return!0;default:return e.protocol==="openai-chat"}}var mc=We.map((e)=>({id:e.provider.id,baseUrl:e.provider.baseUrl??"",modelId:e.provider.defaultModelId,knownModels:sc(e.models),capabilities:e.provider.capabilities?[...e.provider.capabilities]:void 0,env:e.provider.env?[...e.provider.env]:void 0,client:e.provider.client,protocol:e.provider.protocol})),ao=Object.fromEntries(mc.map((e)=>[e.id,e]));function uc(e){return ao[e]}function lc(){return Object.fromEntries(Object.entries(ao).filter(([,e])=>pc(e)))}function to(e=[]){let a=e.flatMap((t)=>{switch(t){case"reasoning":case"prompt-cache":case"tools":case"oauth":return[t];default:return[]}});return a.length>0?a:void 0}var dc="https://models.dev/api.json",gc=600000,hc=300000,xc=5000,jn=new Map,mt=new Map,zn=new Map,ut=new Map,eo;async function wc(){return eo??=Promise.resolve().then(() => (we(),Xt)).then(({getGeneratedProviderModels:e})=>e()),eo}async function Wc(e,a={},t={},i={},n={}){let o=await wc(),r=ce(e),p=Object.assign({},...r.map((d)=>o[d]??{}));return oe({...p,...a,...t,...i,...n})}function io(e){let a=e?.trim();return a&&a.length>0?a:""}function dt(e){let a=e.apiKey?.trim()||e.accessToken?.trim();return a&&a.length>0?a:void 0}function kc(e){let a=2166136261;for(let t=0;t<e.length;t+=1)a^=e.charCodeAt(t),a+=(a<<1)+(a<<4)+(a<<7)+(a<<8)+(a<<24);return(a>>>0).toString(16)}function bc(e,a){return`${e}:${io(a.baseUrl)}:${kc(dt(a)??"")}`}async function gt(e,a,t=xc){let i=new AbortController,n=setTimeout(()=>i.abort(),t);try{return await fetch(e,{...a,signal:i.signal})}finally{clearTimeout(n)}}function lt(e,a,t){if(t&&!e.includes(a))e.push(a)}function ht(e,a){let t=["streaming","tools"];return lt(t,"images",Boolean(a.supportsImages)),lt(t,"prompt-cache",Boolean(a.supportsPromptCache)),lt(t,"reasoning",Boolean(a.supportsReasoning)),{id:e,name:a.name??e,contextWindow:a.contextWindow,maxTokens:a.maxTokens,capabilities:t,releaseDate:a.releaseDate,status:"active"}}async function fc(e,a){let t=await gt("https://inference.baseten.co/v1/models",{method:"GET",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"}});if(!t.ok)throw Error(`Baseten model refresh failed: HTTP ${t.status}`);let n=(await t.json())?.data??[],o={};for(let r of n){let p=r.id?.trim();if(!p)continue;if(p.includes("whisper")||p.includes("tts")||p.includes("embedding"))continue;let d=r.supported_features??[];o[p]=ht(p,{name:p,contextWindow:r.context_length,maxTokens:r.max_completion_tokens,supportsReasoning:d.includes("reasoning")||d.includes("reasoning_effort"),supportsImages:!1})}return o}async function Tc(e,a){let t=await gt("https://api.hicap.ai/v2/openai/models",{method:"GET",headers:{"api-key":a}});if(!t.ok)throw Error(`Hicap model refresh failed: HTTP ${t.status}`);let n=(await t.json())?.data??[],o={};for(let r of n){let p=r.id?.trim();if(!p)continue;o[p]=ht(p,{name:p,contextWindow:128000,supportsImages:!0,supportsPromptCache:!0})}return o}function yc(e){let a=io(e);if(!a)return"http://localhost:4000";return a.endsWith("/v1")?a.slice(0,-3):a}async function Dc(e,a){let i=`${yc(e.baseUrl)}/v1/model/info`,n=async(u)=>gt(i,{method:"GET",headers:{accept:"application/json",...u}}),o=await n({"x-litellm-api-key":a});if(!o.ok)o=await n({Authorization:`Bearer ${a}`});if(!o.ok)throw Error(`LiteLLM model refresh failed: HTTP ${o.status}`);let p=(await o.json())?.data??[],d={};for(let u of p){let x=u.model_name?.trim(),R=u.litellm_params?.model?.trim()||x;if(!R)continue;let C=u.model_info,y=ht(R,{name:x??R,maxTokens:C?.max_output_tokens??C?.max_tokens,contextWindow:C?.max_input_tokens??C?.max_tokens,supportsImages:C?.supports_vision,supportsPromptCache:C?.supports_prompt_caching,supportsReasoning:C?.supports_reasoning});if(d[R]=y,x)d[x]={...y,id:x,name:x}}return d}async function Rc(e,a){let t=dt(a);if(!t)return{};let i=no[e];if(!i)return{};return i(a,t)}var no={baseten:fc,hicap:Tc,litellm:Dc};function vc(e,a,t){if(!t)return!1;if(!no[e])return!1;if(a?.loadPrivateOnAuth===!1)return!1;return Boolean(dt(t))}async function Mc(e,a,t){let i=a?.cacheTtlMs??hc,n=bc(e,t),o=Date.now(),r=zn.get(n);if(r&&r.expiresAt>o)return r.data;let p=ut.get(n);if(p)return p;let d=Rc(e,t).then((u)=>{return zn.set(n,{data:u,expiresAt:o+i}),u}).finally(()=>{ut.delete(n)});return ut.set(n,d),d}async function Pc(e){return $t(e,Ee)}async function Gc(e={}){let a=e.url??dc,t=e.cacheTtlMs??gc,i=Date.now(),n=jn.get(a);if(n&&n.expiresAt>i)return n.data;let o=mt.get(a);if(o)return o;let r=Pc(a).then((p)=>{return jn.set(a,{data:p,expiresAt:i+t}),p}).finally(()=>{mt.delete(a)});return mt.set(a,r),r}function qc(e){return Object.fromEntries(Object.entries(e).map(([a,t])=>[a,{baseUrl:t.baseUrl,modelId:t.modelId,capabilities:to(t.capabilities)}]))}var oo=qc(lc());function Cc(e){let a=uc(e);if(!a||!a.baseUrl)return;return{baseUrl:a.baseUrl,modelId:a.modelId,knownModels:a.knownModels,capabilities:to(a.capabilities)}}async function ro(e,a,t){let i=Cc(e);if(!i)return;try{let o=(a?.loadLatestOnInit?await Gc(a):void 0)?.[e]??{},r=t&&vc(e,a,t)?await Mc(e,a,t):{},p=await Wc(e,i.knownModels,o,r,t?.knownModels);return{...i,knownModels:p}}catch(n){if(a?.failOnError)throw n;return i}}Pe();function ze(e){return q(e.routingProviderId??e.providerId)}ve();import{z as l}from"zod";we();Pe();var co=l.string().min(1).regex(/^[a-z0-9][a-z0-9-]*$/i),so=l.object({apiKey:l.string().optional(),accessToken:l.string().optional(),refreshToken:l.string().optional(),expiresAt:l.number().int().positive().optional(),accountId:l.string().optional()}),Sc=l.enum(["none","low","medium","high","xhigh"]),po=l.object({enabled:l.boolean().optional(),effort:Sc.optional(),budgetTokens:l.number().int().positive().optional()}),mo=l.object({accessKey:l.string().optional(),secretKey:l.string().optional(),sessionToken:l.string().optional(),region:l.string().optional(),profile:l.string().optional(),authentication:l.enum(["iam","api-key","profile"]).optional(),usePromptCache:l.boolean().optional(),useCrossRegionInference:l.boolean().optional(),useGlobalInference:l.boolean().optional(),endpoint:l.string().url().optional(),customModelBaseId:l.string().optional()}),uo=l.object({projectId:l.string().optional(),region:l.string().optional()}),lo=l.object({apiVersion:l.string().optional(),useIdentity:l.boolean().optional()}),go=l.object({clientId:l.string().optional(),clientSecret:l.string().optional(),tokenUrl:l.string().url().optional(),resourceGroup:l.string().optional(),deploymentId:l.string().optional(),useOrchestrationMode:l.boolean().optional(),api:l.enum(["orchestration","foundation-models"]).optional(),defaultSettings:l.record(l.string(),l.unknown()).optional()}),ho=l.object({mode:l.enum(["internal","external"]).optional(),usePromptCache:l.boolean().optional()}),xo=l.object({loadLatestOnInit:l.boolean().optional(),loadPrivateOnAuth:l.boolean().optional(),url:l.string().url().optional(),cacheTtlMs:l.number().int().positive().optional(),failOnError:l.boolean().optional()}),ea=l.object({provider:co,apiKey:l.string().optional(),auth:so.optional(),model:l.string().optional(),maxTokens:l.number().int().positive().optional(),contextWindow:l.number().int().positive().optional(),baseUrl:l.string().url().optional(),headers:l.record(l.string(),l.string()).optional(),timeout:l.number().int().positive().optional(),reasoning:po.optional(),aws:mo.optional(),gcp:uo.optional(),azure:lo.optional(),sap:go.optional(),oca:ho.optional(),region:l.string().optional(),apiLine:l.enum(["china","international"]).optional(),capabilities:l.array(l.enum(["reasoning","prompt-cache","streaming","tools","vision","computer-use","oauth"])).optional(),modelCatalog:xo.optional()});function xt(e){return ea.parse(e)}function wt(e){let a=e.provider,t=q(a),i=e.reasoning?.effort,n=i&&i!=="none"?i:void 0,o=oo[t],r=Object.assign({},...ce(t).map((x)=>j(x))),p=e.auth?.accessToken??e.apiKey??e.auth?.apiKey,d=e.baseUrl??(t==="oca"?e.oca?.mode==="internal"?Jt:sa:o?.baseUrl),u={providerId:a,modelId:e.model??o?.modelId??"default",knownModels:o?.knownModels??(Object.keys(r).length>0?r:void 0),apiKey:p,accessToken:e.auth?.accessToken,refreshToken:e.auth?.refreshToken,accountId:e.auth?.accountId,baseUrl:d,headers:e.headers,timeoutMs:e.timeout,maxOutputTokens:e.maxTokens,maxContextTokens:e.contextWindow,thinking:e.reasoning?.enabled,reasoningEffort:n,thinkingBudgetTokens:e.reasoning?.budgetTokens,region:e.region??e.aws?.region??e.gcp?.region,apiLine:e.apiLine,useCrossRegionInference:e.aws?.useCrossRegionInference,useGlobalInference:e.aws?.useGlobalInference,aws:e.aws?{accessKey:e.aws.accessKey,secretKey:e.aws.secretKey,sessionToken:e.aws.sessionToken,authentication:e.aws.authentication,profile:e.aws.profile,usePromptCache:e.aws.usePromptCache,endpoint:e.aws.endpoint,customModelBaseId:e.aws.customModelBaseId}:void 0,gcp:e.gcp?{projectId:e.gcp.projectId,region:e.gcp.region}:void 0,azure:e.azure,sap:e.sap,oca:e.oca,capabilities:e.capabilities??o?.capabilities,modelCatalog:e.modelCatalog?{loadLatestOnInit:e.modelCatalog.loadLatestOnInit,loadPrivateOnAuth:e.modelCatalog.loadPrivateOnAuth,url:e.modelCatalog.url,cacheTtlMs:e.modelCatalog.cacheTtlMs,failOnError:e.modelCatalog.failOnError}:void 0};return Object.fromEntries(Object.entries(u).filter(([x,P])=>P!==void 0))}import{nanoid as Xo}from"nanoid";_();var Vo=new Map;async function Gs(e){let a=Vo.get(e);if(a)return a;let t=(async()=>{switch(e){case"openai":return(await Promise.resolve().then(() => (_(),I))).createOpenAIProvider;case"openai-compatible":return(await Promise.resolve().then(() => (_(),I))).createOpenAICompatibleProvider;case"anthropic":return(await Promise.resolve().then(() => (_(),I))).createAnthropicProvider;case"google":return(await Promise.resolve().then(() => (_(),I))).createGoogleProvider;case"vertex":return(await Promise.resolve().then(() => (_(),I))).createVertexProvider;case"bedrock":return(await Promise.resolve().then(() => (_(),I))).createBedrockProvider;case"mistral":return(await Promise.resolve().then(() => (_(),I))).createMistralProvider;case"claude-code":return(await Promise.resolve().then(() => (_(),I))).createClaudeCodeProvider;case"openai-codex":return(await Promise.resolve().then(() => (_(),I))).createOpenAICodexProvider;case"opencode":return(await Promise.resolve().then(() => (_(),I))).createOpenCodeProvider;case"dify":return(await Promise.resolve().then(() => (_(),I))).createDifyProvider}})();return Vo.set(e,t),t}var Ce=ma.map((e)=>({manifest:jt(e),defaults:{...e.defaults,apiKeyEnv:e.apiKeyEnv,baseUrl:e.defaults?.baseUrl},loadProvider:async()=>({createProvider:await Gs(e.family)})}));async function*$o(e){for await(let a of e)yield a}function Yo(e){return{...e,models:e.models.map((a)=>({...a})),env:e.env?[...e.env]:void 0,api:e.api,apiKeyEnv:e.apiKeyEnv?[...e.apiKeyEnv]:void 0,docsUrl:e.docsUrl,metadata:e.metadata?{...e.metadata}:void 0}}function qs(e,a){let t=new Map;for(let i of e.models)t.set(i.id,{...i});for(let i of a?.models??[])t.set(i.id,{...i,providerId:e.id});return Array.from(t.values())}function Cs(e,a){return{id:a,name:a,providerId:e.id}}class Ct{providers=new Map;providerConfigs=new Map;fallbackFetch;constructor(e){this.fallbackFetch=e}registerProvider(e){if(!e.createProvider&&!e.loadProvider)throw Error(`Provider "${e.manifest.id}" must include createProvider or loadProvider.`);this.providers.set(e.manifest.id,{manifest:Yo(e.manifest),defaults:e.defaults?{providerId:e.manifest.id,apiKey:e.defaults.apiKey,apiKeyResolver:e.defaults.apiKeyResolver,apiKeyEnv:e.defaults.apiKeyEnv,baseUrl:e.defaults.baseUrl,headers:e.defaults.headers?{...e.defaults.headers}:void 0,timeoutMs:e.defaults.timeoutMs,fetch:e.defaults.fetch,options:e.defaults.options?{...e.defaults.options}:void 0}:void 0,createProvider:e.createProvider,loadProvider:e.loadProvider})}configureProvider(e){this.providerConfigs.set(e.providerId,{providerId:e.providerId,apiKey:e.apiKey,apiKeyResolver:e.apiKeyResolver,apiKeyEnv:e.apiKeyEnv,baseUrl:e.baseUrl,headers:e.headers?{...e.headers}:void 0,timeoutMs:e.timeoutMs,fetch:e.fetch,options:e.options?{...e.options}:void 0,enabled:e.enabled??!0,defaultModelId:e.defaultModelId,models:e.models?.map((a)=>({...a}))})}listProviders(){return Array.from(this.providers.values()).map((e)=>this.getManifest(e.manifest.id)).filter((e)=>e!==void 0)}listModels(e){if(e)return[...this.getManifest(e)?.models??[]];return this.listProviders().flatMap((a)=>a.models.map((t)=>({...t})))}getManifest(e){let a=this.providers.get(e);if(!a)return;let t=this.providerConfigs.get(e);if(t&&!t.enabled)return;let i=qs(a.manifest,t),n=t?.defaultModelId??a.manifest.defaultModelId??i[0]?.id;if(!n)return;return{...Yo(a.manifest),defaultModelId:n,models:i}}resolveModel(e){let a=this.getManifest(e.providerId);if(!a)throw Error(`Unknown or disabled provider "${e.providerId}".`);let t=e.modelId??a.defaultModelId,i=a.models.find((n)=>n.id===t)??Cs(a,t);return{provider:a,model:i}}async createProvider(e){let a=this.providers.get(e);if(!a)throw Error(`Unknown provider "${e}".`);if(!a.createProvider){let n=await a.loadProvider?.();if(!n?.createProvider)throw Error(`Provider "${e}" could not be loaded.`);a.createProvider=n.createProvider}let t=this.getManifest(e);if(!t)throw Error(`Provider "${e}" is disabled.`);let i=this.providerConfigs.get(e);return{manifest:t,config:{providerId:e,apiKey:i?.apiKey??a.defaults?.apiKey,apiKeyResolver:i?.apiKeyResolver??a.defaults?.apiKeyResolver,apiKeyEnv:i?.apiKeyEnv??a.defaults?.apiKeyEnv,baseUrl:i?.baseUrl??a.defaults?.baseUrl,headers:{...a.defaults?.headers??{},...i?.headers??{}},timeoutMs:i?.timeoutMs??a.defaults?.timeoutMs,fetch:i?.fetch??a.defaults?.fetch??this.fallbackFetch,options:{...a.defaults?.options??{},...i?.options??{}}},createProvider:a.createProvider}}}class Zo{gateway;selection;defaults;constructor(e,a,t){this.gateway=e;this.selection=a;this.defaults=t}stream(e){return this.gateway.stream({providerId:this.selection.providerId,modelId:this.selection.modelId??"",systemPrompt:e.systemPrompt,messages:e.messages,tools:this.defaults?.tools??e.tools,temperature:e.options?.temperature??this.defaults?.temperature,maxTokens:e.options?.maxTokens??this.defaults?.maxTokens,metadata:e.options?.metadata??this.defaults?.metadata,reasoning:e.options?.reasoning??this.defaults?.reasoning,signal:e.signal??this.defaults?.signal})}}class Bt{registry;constructor(e={}){if(this.registry=new Ct(e.fetch),e.builtins!==!1){let a=new Set(e.builtins??Ce.map((t)=>t.manifest.id));for(let t of Ce)if(a.has(t.manifest.id))this.registry.registerProvider(t)}for(let a of e.providers??[])this.registry.registerProvider(a);for(let a of e.providerConfigs??[])this.registry.configureProvider(a)}registerProvider(e){return this.registry.registerProvider(e),this}configureProvider(e){return this.registry.configureProvider(e),this}listProviders(){return this.registry.listProviders()}listModels(e){return this.registry.listModels(e)}createAgentModel(e,a){return new Zo(this,e,a)}async stream(e){let a=this.registry.resolveModel({providerId:e.providerId,modelId:e.modelId||void 0}),t=await this.registry.createProvider(e.providerId),n=await(await t.createProvider(t.config)).stream({...e,modelId:a.model.id,providerId:a.provider.id},{provider:a.provider,model:a.model,config:t.config,signal:e.signal});return $o(n)}}function ia(e){return new Bt(e)}var de=new Map(Ce.map((e)=>[e.manifest.id,e]));function Bs(e){if(!e?.length)return;let a=new Set;for(let t of e)switch(t){case"tools":case"reasoning":case"images":case"audio":a.add(t);break;case"files":case"streaming":case"temperature":case"prompt-cache":case"reasoning-effort":case"computer-use":case"global-endpoint":a.add("text");break;case"structured_output":a.add("structured-output");break;default:a.add("text")}return a.add("text"),[...a]}function St(e,a){return{id:a.id,name:a.name??a.id,description:a.description,providerId:e,contextWindow:a.contextWindow,maxOutputTokens:a.maxTokens,capabilities:Bs(a.capabilities),metadata:{family:a.family,pricing:a.pricing,status:a.status,releaseDate:a.releaseDate}}}function Jo(e){switch(q(e)){case"openai-native":return bt;case"anthropic":case"minimax":return Tt;case"gemini":return yt;case"vertex":return Dt;case"bedrock":return Rt;case"mistral":return vt;case"claude-code":return Mt;case"openai-codex":return Pt;case"opencode":return Gt;case"dify":return qt;default:return ft}}async function As(e){let a=q(e.providerId),t=q(ze(e));if(de.get(a)&&a===t)return;let n=await ae(a)??(a!==t?await ae(t):void 0);if(!n){let r=de.get(t);if(!r||a===t)return;return{manifest:{...r.manifest,id:a,name:r.manifest.name,models:r.manifest.models.map((p)=>({...p,providerId:a}))},defaults:r.defaults,createProvider:r.createProvider,loadProvider:r.loadProvider}}let o=de.get(t);return{manifest:{id:a,name:n.provider.name,description:n.provider.description,defaultModelId:n.provider.defaultModelId,models:Object.values(n.models).map((r)=>St(a,r)),api:n.provider.baseUrl,apiKeyEnv:n.provider.env},defaults:{...o?.defaults??{},baseUrl:n.provider.baseUrl??o?.defaults?.baseUrl,apiKeyEnv:n.provider.env??o?.defaults?.apiKeyEnv},createProvider:o?.createProvider??Jo(t),loadProvider:o?.loadProvider}}function Ss(e){let a=q(e.providerId),t=q(ze(e));if(de.get(a)&&a===t)return;let n=ua(a)??(a!==t?ua(t):void 0);if(!n){let r=de.get(t);if(!r||a===t)return;return{manifest:{...r.manifest,id:a,models:r.manifest.models.map((p)=>({...p,providerId:a}))},defaults:r.defaults,createProvider:r.createProvider,loadProvider:r.loadProvider}}let o=de.get(t);return{manifest:{id:a,name:n.provider.name,description:n.provider.description,defaultModelId:n.provider.defaultModelId,models:Object.values(n.models).map((r)=>St(a,r)),api:n.provider.baseUrl,apiKeyEnv:n.provider.env},defaults:{...o?.defaults??{},baseUrl:n.provider.baseUrl??o?.defaults?.baseUrl,apiKeyEnv:n.provider.env??o?.defaults?.apiKeyEnv},createProvider:o?.createProvider??Jo(t),loadProvider:o?.loadProvider}}function Qs(e){let a=new Map;for(let t of e){if(!Array.isArray(t.content))continue;for(let i of t.content)if(i.type==="tool_use"){if(a.set(i.id,i.name),i.call_id)a.set(i.call_id,i.name)}}return e.map((t)=>{let i=typeof t.content==="string"?[{type:"text",text:t.content}]:t.content.flatMap((n)=>{switch(n.type){case"text":return[{type:"text",text:n.text}];case"thinking":return[{type:"reasoning",text:n.thinking,metadata:n.signature||n.call_id?{signature:n.signature,callId:n.call_id,details:n.details}:void 0}];case"tool_use":return[{type:"tool-call",toolCallId:n.call_id??n.id,toolName:n.name,input:n.input,metadata:n.signature?{thoughtSignature:n.signature}:void 0}];case"tool_result":return[{type:"tool-result",toolCallId:n.tool_use_id,toolName:a.get(n.tool_use_id)??"tool",output:typeof n.content==="string"?n.content:n.content.map((o)=>o.type==="text"?o.text:o.type==="file"?o.content:"").join(`
86
86
  `),isError:n.is_error??!1}];case"image":return[{type:"image",image:`data:${n.mediaType};base64,${n.data}`,mediaType:n.mediaType}];case"file":return[{type:"text",text:n.content}];case"redacted_thinking":return[];default:return[]}});return{role:t.role,content:i}})}function _s(e){return e?.map((a)=>({name:a.name,description:a.description,inputSchema:a.inputSchema}))}function At(e,a,t,i,n){return{providerId:q(e.providerId),modelId:e.modelId,systemPrompt:a,messages:Qs(t),tools:_s(i),maxTokens:e.maxOutputTokens,reasoning:e.thinking||e.reasoningEffort||e.thinkingBudgetTokens?{enabled:e.thinking,effort:e.reasoningEffort==="xhigh"?"high":e.reasoningEffort==="low"||e.reasoningEffort==="medium"||e.reasoningEffort==="high"?e.reasoningEffort:void 0,budgetTokens:e.thinkingBudgetTokens}:void 0,signal:n}}function Uo(e){let a=q(e.providerId);return{providerId:a,apiKey:e.apiKey??e.accessToken,baseUrl:e.baseUrl,headers:e.headers,timeoutMs:e.timeoutMs,defaultModelId:e.modelId,models:e.knownModels?Object.values(e.knownModels).map((t)=>{let i=St(a,t),{providerId:n,...o}=i;return o}):void 0,options:{region:e.region??e.gcp?.region,project:e.gcp?.projectId,projectId:e.gcp?.projectId,location:e.region??e.gcp?.region,accessKeyId:e.aws?.accessKey,secretAccessKey:e.aws?.secretKey,sessionToken:e.aws?.sessionToken,credentialProvider:e.aws?.profile,authentication:e.aws?.authentication,endpoint:e.aws?.endpoint,customModelBaseId:e.aws?.customModelBaseId,apiVersion:e.azure?.apiVersion,useIdentity:e.azure?.useIdentity,mode:e.oca?.mode,usePromptCache:e.aws?.usePromptCache??e.oca?.usePromptCache,...e.codex,...e.claudeCode,...e.opencode,...e.sap}}}function jo(e,a){switch(a.type){case"text-delta":return{type:"text",id:e,text:a.text};case"reasoning-delta":return{type:"reasoning",id:e,reasoning:a.text,signature:typeof a.metadata?.thoughtSignature==="string"?a.metadata.thoughtSignature:typeof a.metadata?.signature==="string"?a.metadata.signature:void 0,details:a.metadata?.details};case"tool-call-delta":{let t=typeof a.inputText==="string"||a.input===void 0?a.inputText:a.input;return{type:"tool_calls",id:e,signature:typeof a.metadata?.thoughtSignature==="string"?a.metadata.thoughtSignature:void 0,tool_call:{call_id:a.toolCallId,function:{id:a.toolCallId,name:a.toolName,arguments:t}}}}case"usage":return{type:"usage",id:e,inputTokens:a.usage.inputTokens,outputTokens:a.usage.outputTokens,cacheReadTokens:a.usage.cacheReadTokens,cacheWriteTokens:a.usage.cacheWriteTokens,totalCost:a.usage.totalCost};case"finish":return{type:"done",id:e,success:a.reason!=="error",error:a.error,incompleteReason:a.reason==="max-tokens"?"max_tokens":void 0}}}function Ls(e){return e.modelInfo??(e.modelId?e.knownModels?.[e.modelId]:void 0)??{id:e.modelId,name:e.modelId,capabilities:["streaming"]}}class Qt{config;abortSignal;constructor(e){this.config=e;this.abortSignal=e.abortSignal}getMessages(e,a){return At(this.config,e,a,void 0,this.abortSignal)}createMessage(e,a,t){let i=ia({providerConfigs:[Uo(this.config)]}),n=Ss(this.config);if(n)i.registerProvider(n);let o=At(this.config,e,a,t,this.abortSignal),r=`gw_${Xo(10)}`,p=async function*(){for await(let d of await i.stream(o))yield jo(r,d)}();return p.id=r,p}getModel(){return{id:this.config.modelId,info:Ls(this.config)}}abort(){}setAbortSignal(e){this.abortSignal=e}}function zo(e){return new Qt(e)}async function e0(e){let a=ia({providerConfigs:[Uo(e)]}),t=await As(e);if(t)a.registerProvider(t);return new class extends Qt{createMessage(i,n,o){let r=At(e,i,n,o,e.abortSignal),p=`gw_${Xo(10)}`,d=async function*(){for await(let u of await a.stream(r))yield jo(p,u)}();return d.id=p,d}}(e)}var ge=new Map;function a0(e,a){ge.set(e,{factory:a,isAsync:!1})}function t0(e,a){ge.set(e,{factory:a,isAsync:!0})}function _t(e){return ge.has(e)}function i0(e,a){let t=ge.get(e);if(!t)return;if(t.isAsync)throw Error(`Handler for "${e}" is registered as async. Use getRegisteredHandlerAsync() or createHandlerAsync() instead.`);return t.factory(a)}async function n0(e,a){let t=ge.get(e);if(!t)return;if(t.isAsync)return t.factory(a);return t.factory(a)}function o0(e){return ge.get(e)?.isAsync??!1}function r0(e){let a=q(e.providerId),t=e.routingProviderId?q(e.routingProviderId):void 0;if(a===e.providerId&&t===e.routingProviderId)return e;return{...e,providerId:a,routingProviderId:t}}function Lt(e){let a=r0(e),{providerId:t}=a;if(_t(t)){if(o0(t))throw Error(`Handler for "${t}" is registered as async. Use createHandlerAsync() instead.`);let i=i0(t,a);if(i)return i}return zo(a)}async function Ft(e){let a=r0(e),{providerId:t}=a;if(_t(t)){let i=await n0(t,a);if(i)return i}return e0(a)}import{readFile as Fs}from"node:fs/promises";import Ks from"node:path";function Is(e){return e}async function Ns(e){let a=Ks.resolve(e),t=await Fs(a,"utf8"),i;try{i=JSON.parse(t)}catch(n){let o=n instanceof Error?n.message:String(n);throw Error(`Failed to parse JSON config at "${a}": ${o}`)}return Os(i,a)}function Os(e,a){if(!e||typeof e!=="object")throw Error(`Invalid llms config in "${a}": expected an object.`);let i=e.providers;if(!Array.isArray(i))throw Error(`Invalid llms config in "${a}": "providers" must be an array.`);if(!i.length)throw Error(`Invalid llms config in "${a}": "providers" cannot be empty.`);return e}Pe();function c0(e){return e?{...e}:{}}function Hs(e,a){if(e)return e;if(!a)return;let t=globalThis.process;if(!t?.env)return;return t.env[a]}function Es(e,a){if(!a.length)throw Error(`Provider "${e}" must include at least one model.`)}function s0(e){let a=Object.keys(e.collection.models);return{id:e.collection.provider.id,name:e.collection.provider.name,description:e.collection.provider.description,protocol:e.collection.provider.protocol,baseUrl:e.collection.provider.baseUrl,capabilities:e.collection.provider.capabilities,env:e.collection.provider.env,models:a,defaultModel:e.collection.provider.defaultModelId,modelCount:a.length}}class Kt{providers=new Map;register(e){Es(e.id,e.models);let a=e.defaultModel??e.models[0];if(!a)throw Error(`Provider "${e.id}" must define a default model.`);if(!e.models.includes(a))throw Error(`Default model "${a}" is not included in configured models for "${e.id}".`);let t=this.providers.get(e.id);this.providers.set(e.id,{id:e.id,models:new Set([...t?.models??[],...e.models]),defaultModel:a,defaults:{...t?.defaults??{},...c0(e.defaults)}})}registerSelectionConfig(e){this.register({id:e.id,models:e.models,defaultModel:e.defaultModel,defaults:{apiKey:Hs(e.apiKey,e.apiKeyEnv),routingProviderId:e.builtinProviderId,baseUrl:e.baseUrl,headers:e.headers,timeoutMs:e.timeoutMs,capabilities:e.capabilities,...c0(e.settings)}})}registerModel(e,a){let t=this.providers.get(e);if(!t){this.providers.set(e,{id:e,models:new Set([a]),defaultModel:a,defaults:{}});return}t.models.add(a)}createHandlerConfig(e){let a=this.require(e.providerId),t=e.modelId??a.defaultModel;if(!a.models.has(t))throw Error(`Model "${t}" is not configured for provider "${e.providerId}".`);return{providerId:e.providerId,modelId:t,...a.defaults,...e.overrides}}list(){return Array.from(this.providers.values()).map((e)=>({id:e.id,models:Array.from(e.models),defaultModel:e.defaultModel}))}getModels(e){return Array.from(this.require(e).models)}hasProvider(e){return this.providers.has(e)}hasModel(e,a){return this.providers.get(e)?.models.has(a)??!1}require(e){let a=this.providers.get(e);if(!a)throw Error(`Provider "${e}" is not configured in this SDK instance.`);return a}}class It{configuredProviders=new Kt;constructor(e){this.applyConfig(e)}createHandler(e){return Lt(this.configuredProviders.createHandlerConfig(e))}async createHandlerAsync(e){return Ft(this.configuredProviders.createHandlerConfig(e))}registerProvider(e){if(fe(e.collection),e.handlerFactory&&e.asyncHandlerFactory)throw Error(`Provider "${e.collection.provider.id}" cannot register both sync and async handlers.`);if(e.handlerFactory)a0(e.collection.provider.id,e.handlerFactory);if(e.asyncHandlerFactory)t0(e.collection.provider.id,e.asyncHandlerFactory);this.configuredProviders.register({id:e.collection.provider.id,models:e.exposeModels??Object.keys(e.collection.models),defaultModel:e.defaultModel??e.collection.provider.defaultModelId,defaults:e.defaults})}registerBuiltinProvider(e){let a=e.exposeModels??Object.keys(e.models),t=e.defaultModel??a[0];if(!t)throw Error(`Provider "${e.id}" must define a default model.`);fe({provider:{id:e.id,name:e.name??e.id,description:e.description,protocol:e.protocol,baseUrl:e.baseUrl,defaultModelId:t,client:e.client??"openai-compatible",capabilities:e.capabilities,env:e.env},models:e.models}),this.configuredProviders.register({id:e.id,models:a,defaultModel:t,defaults:{routingProviderId:e.builtinProviderId,...e.defaults??{}}})}registerModel(e){Le(e.providerId,e.modelId,e.info),this.configuredProviders.registerModel(e.providerId,e.modelId)}getProviders(){return this.configuredProviders.list()}getBuiltInProviderIds(){return[...Me]}async getBuiltInProviders(){return(await Promise.all(Me.map((a)=>ae(a)))).filter((a)=>a!==void 0).map((a)=>s0({collection:a}))}getModels(e){return this.configuredProviders.getModels(e)}isProviderConfigured(e){return this.configuredProviders.hasProvider(e)}isModelConfigured(e,a){return this.configuredProviders.hasModel(e,a)}applyConfig(e){for(let a of e.providers)this.configuredProviders.registerSelectionConfig(a);for(let a of e.models??[])this.registerModel(a);for(let a of e.customProviders??[])this.registerProvider(a);for(let a of this.configuredProviders.list()){let t=be(a.id),i=this.configuredProviders.createHandlerConfig({providerId:a.id,modelId:a.defaultModel}).routingProviderId,n=typeof i==="string"&&be(i);if(!t&&!n)throw Error(`Provider "${a.id}" is not known. Register it through customProviders/registerProvider, registerBuiltinProvider, or use a built-in provider ID.`)}}}function Vs(e){return new It(e)}export{ti as unregisterProvider,wt as toProviderConfig,ro as resolveProviderConfig,ii as resetRegistry,fe as registerProvider,Le as registerModel,xt as parseSettings,q as normalizeProviderId,Ns as loadLlmsConfigFromFile,be as hasProvider,_e as getProviderIds,ae as getProviderCollection,zt as getProvider,ei as getModelsForProvider,j as getGeneratedModelsForProvider,ai as getAllProviders,Wt as disposeLangfuseTelemetry,Is as defineLlmsConfig,Vs as createLlmsSdk,Ft as createHandlerAsync,Lt as createHandler,ia as createGateway,ea as ProviderSettingsSchema,ni as MODEL_COLLECTIONS_BY_PROVIDER_ID,It as DefaultLlmsSdk,Bt as DefaultGateway};