@pen.dev/cli 0.3.4 → 0.3.5
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/anthropic-messages-xcJLXjiT.mjs +40 -0
- package/dist/azure-openai-responses-CoA9_5_J.mjs +2 -0
- package/dist/browserAll-8jKh1NRi.mjs +2 -0
- package/dist/dist-Dmu1Pp1Y.mjs +1580 -0
- package/dist/google-generative-ai-CFHCNDEQ.mjs +2 -0
- package/dist/{google-shared-DXgnvvDU.mjs → google-shared-DolBdAGX.mjs} +4 -4
- package/dist/google-vertex-tT_ymu8S.mjs +2 -0
- package/dist/index.mjs +2 -2
- package/dist/lib-EA7A-_Pc.mjs +9 -0
- package/dist/mistral-conversations-CsN5eF3B.mjs +5 -0
- package/dist/{multipart-parser-BdmM0fdd.mjs → multipart-parser-DX5ZDxQv.mjs} +1 -1
- package/dist/openai-codex-responses-BIh-ZL5a.mjs +8 -0
- package/dist/openai-completions-CLJSzdfY.mjs +6 -0
- package/dist/openai-responses-DKbl253t.mjs +2 -0
- package/dist/{openai-responses-shared-DKseiGAg.mjs → openai-responses-shared-Brqyk2bc.mjs} +2 -2
- package/dist/{openrouter-images-gArAwqnL.mjs → openrouter-images-C8mOFqx9.mjs} +1 -1
- package/dist/{pi-messages-CSXUHkjV.mjs → pi-messages-CucvyzBS.mjs} +2 -2
- package/dist/{src-KoDMTA_Q.mjs → src-B_lvnEtX.mjs} +1 -1
- package/dist/transform-messages-1ulTEFY1.mjs +2 -0
- package/dist/typescript-D0uAMumm.mjs +6 -0
- package/dist/webworkerAll-BD-7VH16.mjs +2 -0
- package/package.json +1 -1
- package/dist/anthropic-messages-COZrsSdY.mjs +0 -40
- package/dist/azure-openai-responses-Dmf1EaVz.mjs +0 -2
- package/dist/browserAll-BZYrVO32.mjs +0 -2
- package/dist/dist-D9ROAuw3.mjs +0 -1587
- package/dist/google-generative-ai-BMEzR_34.mjs +0 -2
- package/dist/google-vertex-In7qdx36.mjs +0 -2
- package/dist/mistral-conversations-DdYjdrRy.mjs +0 -5
- package/dist/openai-codex-responses-CD-2hfWB.mjs +0 -8
- package/dist/openai-completions-DamtYjy7.mjs +0 -6
- package/dist/openai-responses-DgeWdtm-.mjs +0 -2
- package/dist/pi-user-agent-m9a4CjJo.mjs +0 -2
- package/dist/transform-messages-BHnJzowk.mjs +0 -2
- package/dist/webworkerAll-CB00nbs9.mjs +0 -2
- /package/dist/{deferred-tools-D8j2Ra6f.mjs → deferred-tools-CozAnCQL.mjs} +0 -0
- /package/dist/{dist-D8tvRm1b.mjs → dist-BnoSGZKP.mjs} +0 -0
- /package/dist/{dist-DGrygXHh.mjs → dist-L3CkgNK3.mjs} +0 -0
- /package/dist/{emscripten-module.browser-F76W5DM6-DWhj_jYh.mjs → emscripten-module.browser-F76W5DM6-CNibWX-6.mjs} +0 -0
- /package/dist/{emscripten-module.browser-XIKQQPVU-Dmh4no3c.mjs → emscripten-module.browser-XIKQQPVU-BNfdGnMe.mjs} +0 -0
- /package/dist/{ffi-DwdyvnFx.mjs → ffi-BuJ13coi.mjs} +0 -0
- /package/dist/{ffi-BroAqW9B.mjs → ffi-C5tLdQO9.mjs} +0 -0
- /package/dist/{from-Choxbpmr.mjs → from-py2TfO8m.mjs} +0 -0
- /package/dist/{headers-BvGum5dc.mjs → headers-DlpC0ues.mjs} +0 -0
- /package/dist/{html-DEPARSNH.mjs → html-GGJ1fTRB.mjs} +0 -0
- /package/dist/{init-DwIpBeuP.mjs → init-B9LSomNH.mjs} +0 -0
- /package/dist/{module-ES6BEMUI-DUGQwtIb.mjs → module-ES6BEMUI-DwQ9nTMF.mjs} +0 -0
- /package/dist/{module-asyncify-2EFITU5U-U7fqmMTF.mjs → module-asyncify-2EFITU5U-B54Mkt6K.mjs} +0 -0
- /package/dist/{provider-retry-wOYAq0sa.mjs → provider-retry-GaV_ioT7.mjs} +0 -0
- /package/dist/{sanitize-unicode-Byz9nlLd.mjs → sanitize-unicode-D-15laVS.mjs} +0 -0
- /package/dist/{standalone-DwaYVpTH.mjs → standalone-DYT2Zg6I.mjs} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{a as e}from"./diagnostics-B0j2bfEp.mjs";import{n as t,t as n}from"./models-BBd5zwn6.mjs";import{n as r}from"./headers-BvGum5dc.mjs";import{t as i}from"./sanitize-unicode-Byz9nlLd.mjs";import{i as a}from"./transform-messages-BHnJzowk.mjs";import{n as o,t as s}from"./error-body-BBlqjbe7.mjs";import{a as c,c as l,i as u,l as d,n as f,o as p,r as m,s as h,t as g}from"./google-shared-DXgnvvDU.mjs";let _=0;const v=(t,r,i)=>{let a=new e;return(async()=>{let e={role:`assistant`,content:[],api:`google-generative-ai`,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{if(i?.fetch&&i.fetch!==globalThis.fetch)throw Error(`Custom fetch is not supported by the Google Generative AI adapter`);let o=i?.apiKey;if(!o)throw Error(`No API key for provider: ${t.provider}`);let s=b(t,o,i?.headers),c=x(t,r,i),l=await i?.onPayload?.(c,t);l!==void 0&&(c=l);let d=await h(()=>s.models.generateContentStream(c),i);a.push({type:`start`,partial:e});let f=null,g=e.content,v=()=>g.length-1;for await(let r of d){e.responseId||=r.responseId;let i=r.candidates?.[0];if(i?.content?.parts)for(let t of i.content.parts){if(t.text!==void 0){let n=m(t);(!f||n&&f.type!==`thinking`||!n&&f.type!==`text`)&&(f&&(f.type===`text`?a.push({type:`text_end`,contentIndex:g.length-1,content:f.text,partial:e}):a.push({type:`thinking_end`,contentIndex:v(),content:f.thinking,partial:e})),n?(f={type:`thinking`,thinking:``,thinkingSignature:void 0},e.content.push(f),a.push({type:`thinking_start`,contentIndex:v(),partial:e})):(f={type:`text`,text:``},e.content.push(f),a.push({type:`text_start`,contentIndex:v(),partial:e}))),f.type===`thinking`?(f.thinking+=t.text,f.thinkingSignature=p(f.thinkingSignature,t.thoughtSignature),a.push({type:`thinking_delta`,contentIndex:v(),delta:t.text,partial:e})):(f.text+=t.text,f.textSignature=p(f.textSignature,t.thoughtSignature),a.push({type:`text_delta`,contentIndex:v(),delta:t.text,partial:e}))}if(t.functionCall){f&&=(f.type===`text`?a.push({type:`text_end`,contentIndex:v(),content:f.text,partial:e}):a.push({type:`thinking_end`,contentIndex:v(),content:f.thinking,partial:e}),null);let n=t.functionCall.id,r={type:`toolCall`,id:!n||e.content.some(e=>e.type===`toolCall`&&e.id===n)?`${t.functionCall.name}_${Date.now()}_${++_}`:n,name:t.functionCall.name||``,arguments:t.functionCall.args??{},...t.thoughtSignature&&{thoughtSignature:t.thoughtSignature}};e.content.push(r),a.push({type:`toolcall_start`,contentIndex:v(),partial:e}),a.push({type:`toolcall_delta`,contentIndex:v(),delta:JSON.stringify(r.arguments),partial:e}),a.push({type:`toolcall_end`,contentIndex:v(),toolCall:r,partial:e})}}i?.finishReason&&(e.rawStopReason=i.finishReason,e.stopReason=u(i.finishReason),e.content.some(e=>e.type===`toolCall`)&&e.stopReason===`stop`&&(e.stopReason=`toolUse`)),r.usageMetadata&&(e.usage={input:(r.usageMetadata.promptTokenCount||0)-(r.usageMetadata.cachedContentTokenCount||0),output:(r.usageMetadata.candidatesTokenCount||0)+(r.usageMetadata.thoughtsTokenCount||0),cacheRead:r.usageMetadata.cachedContentTokenCount||0,cacheWrite:0,reasoning:r.usageMetadata.thoughtsTokenCount||0,totalTokens:r.usageMetadata.totalTokenCount||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},n(t,e.usage))}if(f&&(f.type===`text`?a.push({type:`text_end`,contentIndex:v(),content:f.text,partial:e}):a.push({type:`thinking_end`,contentIndex:v(),content:f.thinking,partial:e})),i?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`pending`)throw Error(`Google stream ended without a finish reason`);if(e.stopReason===`aborted`||e.stopReason===`error`){let t=e.rawStopReason?`Provider stopped with: ${e.rawStopReason}`:`An unknown error occurred`;throw Error(t)}a.push({type:`done`,reason:e.stopReason,message:e}),a.end()}catch(t){for(let t of e.content)`index`in t&&delete t.index;e.stopReason=i?.signal?.aborted?`aborted`:`error`,e.errorMessage=s(o(t)),a.push({type:`error`,reason:e.stopReason,error:e}),a.end()}})(),a},y=(e,n,r)=>{let i=r?.apiKey;if(!i)throw Error(`No API key for provider: ${e.provider}`);let o=a(e,n,r,i);if(!r?.reasoning)return v(e,n,{...o,thinking:{enabled:!1}});let s=t(e,r.reasoning),c=s===`off`?`high`:s,l=e;return C(l)||w(l)||S(l)?v(e,n,{...o,thinking:{enabled:!0,level:E(c,l)}}):v(e,n,{...o,thinking:{enabled:!0,budgetTokens:D(l,c,r.thinkingBudgets)}})};function b(e,t,n){let i={};e.baseUrl&&(i.baseUrl=e.baseUrl,i.apiVersion=``);let a=r({...e.headers,...n});return a&&(i.headers=a),new d({apiKey:t,httpOptions:Object.keys(i).length>0?i:void 0})}function x(e,t,n={}){let r=g(e,t),a={};n.temperature!==void 0&&(a.temperature=n.temperature),n.maxTokens!==void 0&&(a.maxOutputTokens=n.maxTokens);let o=l(e.id),s=t.tools?.length?c(t.tools,n.toolChoice,o):void 0,u={...Object.keys(a).length>0&&a,...t.systemPrompt&&{systemInstruction:i(t.systemPrompt)},...t.tools&&t.tools.length>0&&{tools:f(t.tools,!1,o)},...s!==void 0&&{toolConfig:{functionCallingConfig:{mode:s}}}};if(n.thinking?.enabled&&e.reasoning){let e={includeThoughts:!0};n.thinking.level===void 0?n.thinking.budgetTokens!==void 0&&(e.thinkingBudget=n.thinking.budgetTokens):e.thinkingLevel=n.thinking.level,u.thinkingConfig=e}else e.reasoning&&n.thinking&&!n.thinking.enabled&&(u.thinkingConfig=T(e));if(n.signal){if(n.signal.aborted)throw Error(`Request aborted`);u.abortSignal=n.signal}return{model:e.id,contents:r,config:u}}function S(e){return/gemma-?4/.test(e.id.toLowerCase())}function C(e){return/gemini-3(?:\.\d+)?-pro/.test(e.id.toLowerCase())}function w(e){let t=e.id.toLowerCase();return/gemini-3(?:\.\d+)?-flash/.test(t)||t===`gemini-flash-latest`||t===`gemini-flash-lite-latest`}function T(e){return C(e)?{thinkingLevel:`LOW`}:w(e)||S(e)?{thinkingLevel:`MINIMAL`}:{thinkingBudget:0}}function E(e,t){if(C(t))switch(e){case`minimal`:case`low`:return`LOW`;case`medium`:case`high`:return`HIGH`}if(S(t))switch(e){case`minimal`:case`low`:return`MINIMAL`;case`medium`:case`high`:return`HIGH`}switch(e){case`minimal`:return`MINIMAL`;case`low`:return`LOW`;case`medium`:return`MEDIUM`;case`high`:return`HIGH`}}function D(e,t,n){return n?.[t]===void 0?e.id.includes(`2.5-pro`)?{minimal:128,low:2048,medium:8192,high:32768}[t]:e.id.includes(`2.5-flash-lite`)?{minimal:512,low:2048,medium:8192,high:24576}[t]:e.id.includes(`2.5-flash`)?{minimal:128,low:2048,medium:8192,high:24576}[t]:-1:n[t]}export{v as stream,y as streamSimple};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{a as e}from"./diagnostics-B0j2bfEp.mjs";import{n as t,t as n}from"./models-BBd5zwn6.mjs";import{t as r}from"./provider-env-CL5ShLlj.mjs";import{n as i}from"./headers-BvGum5dc.mjs";import{t as a}from"./sanitize-unicode-Byz9nlLd.mjs";import{i as o}from"./transform-messages-BHnJzowk.mjs";import{n as s,t as c}from"./error-body-BBlqjbe7.mjs";import{a as l,c as u,d,i as f,l as p,n as m,o as h,r as g,s as _,t as v,u as y}from"./google-shared-DXgnvvDU.mjs";const b={THINKING_LEVEL_UNSPECIFIED:d.THINKING_LEVEL_UNSPECIFIED,MINIMAL:d.MINIMAL,LOW:d.LOW,MEDIUM:d.MEDIUM,HIGH:d.HIGH};let x=0;const S=(t,r,i)=>{let a=new e;return(async()=>{let e={role:`assistant`,content:[],api:`google-vertex`,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{if(i?.fetch&&i.fetch!==globalThis.fetch)throw Error(`Custom fetch is not supported by the Google Vertex adapter`);let o=A(i),s=o?T(t,o,i?.headers):w(t,M(i),N(i),i?.headers,i?.env),c=P(t,r,i),l=await i?.onPayload?.(c,t);l!==void 0&&(c=l);let u=await _(()=>s.models.generateContentStream(c),i);a.push({type:`start`,partial:e});let d=null,p=e.content,m=()=>p.length-1;for await(let r of u){e.responseId||=r.responseId;let i=r.candidates?.[0];if(i?.content?.parts)for(let t of i.content.parts){if(t.text!==void 0){let n=g(t);(!d||n&&d.type!==`thinking`||!n&&d.type!==`text`)&&(d&&(d.type===`text`?a.push({type:`text_end`,contentIndex:p.length-1,content:d.text,partial:e}):a.push({type:`thinking_end`,contentIndex:m(),content:d.thinking,partial:e})),n?(d={type:`thinking`,thinking:``,thinkingSignature:void 0},e.content.push(d),a.push({type:`thinking_start`,contentIndex:m(),partial:e})):(d={type:`text`,text:``},e.content.push(d),a.push({type:`text_start`,contentIndex:m(),partial:e}))),d.type===`thinking`?(d.thinking+=t.text,d.thinkingSignature=h(d.thinkingSignature,t.thoughtSignature),a.push({type:`thinking_delta`,contentIndex:m(),delta:t.text,partial:e})):(d.text+=t.text,d.textSignature=h(d.textSignature,t.thoughtSignature),a.push({type:`text_delta`,contentIndex:m(),delta:t.text,partial:e}))}if(t.functionCall){d&&=(d.type===`text`?a.push({type:`text_end`,contentIndex:m(),content:d.text,partial:e}):a.push({type:`thinking_end`,contentIndex:m(),content:d.thinking,partial:e}),null);let n=t.functionCall.id,r={type:`toolCall`,id:!n||e.content.some(e=>e.type===`toolCall`&&e.id===n)?`${t.functionCall.name}_${Date.now()}_${++x}`:n,name:t.functionCall.name||``,arguments:t.functionCall.args??{},...t.thoughtSignature&&{thoughtSignature:t.thoughtSignature}};e.content.push(r),a.push({type:`toolcall_start`,contentIndex:m(),partial:e}),a.push({type:`toolcall_delta`,contentIndex:m(),delta:JSON.stringify(r.arguments),partial:e}),a.push({type:`toolcall_end`,contentIndex:m(),toolCall:r,partial:e})}}i?.finishReason&&(e.rawStopReason=i.finishReason,e.stopReason=f(i.finishReason),e.content.some(e=>e.type===`toolCall`)&&e.stopReason===`stop`&&(e.stopReason=`toolUse`)),r.usageMetadata&&(e.usage={input:(r.usageMetadata.promptTokenCount||0)-(r.usageMetadata.cachedContentTokenCount||0),output:(r.usageMetadata.candidatesTokenCount||0)+(r.usageMetadata.thoughtsTokenCount||0),cacheRead:r.usageMetadata.cachedContentTokenCount||0,cacheWrite:0,reasoning:r.usageMetadata.thoughtsTokenCount||0,totalTokens:r.usageMetadata.totalTokenCount||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},n(t,e.usage))}if(d&&(d.type===`text`?a.push({type:`text_end`,contentIndex:m(),content:d.text,partial:e}):a.push({type:`thinking_end`,contentIndex:m(),content:d.thinking,partial:e})),i?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`pending`)throw Error(`Google Vertex stream ended without a finish reason`);if(e.stopReason===`aborted`||e.stopReason===`error`){let t=e.rawStopReason?`Provider stopped with: ${e.rawStopReason}`:`An unknown error occurred`;throw Error(t)}a.push({type:`done`,reason:e.stopReason,message:e}),a.end()}catch(t){for(let t of e.content)`index`in t&&delete t.index;e.stopReason=i?.signal?.aborted?`aborted`:`error`,e.errorMessage=c(s(t)),a.push({type:`error`,reason:e.stopReason,error:e}),a.end()}})(),a},C=(e,n,r)=>{let i=o(e,n,r,void 0);if(!r?.reasoning)return S(e,n,{...i,thinking:{enabled:!1}});let a=t(e,r.reasoning),s=a===`off`?`high`:a,c=e;return F(c)||I(c)?S(e,n,{...i,thinking:{enabled:!0,level:R(s,c)}}):S(e,n,{...i,thinking:{enabled:!0,budgetTokens:z(c,s,r.thinkingBudgets)}})};function w(e,t,n,r,i){let a=k(i);return new p({vertexai:!0,project:t,location:n,apiVersion:`v1`,...a?{googleAuthOptions:a}:{},httpOptions:E(e,r)})}function T(e,t,n){return new p({vertexai:!0,apiKey:t,apiVersion:`v1`,httpOptions:E(e,n)})}function E(e,t){let n={},r=D(e.baseUrl);r&&(n.baseUrl=r,n.baseUrlResourceScope=y.COLLECTION,O(r)&&(n.apiVersion=``));let a=i({...e.headers,...t});return a&&(n.headers=a),Object.keys(n).length>0?n:void 0}function D(e){let t=e.trim();if(!(!t||t.includes(`{location}`)))return t}function O(e){try{return new URL(e).pathname.split(`/`).some(e=>/^v\d+(?:beta\d*)?$/.test(e))}catch{return/(?:^|\/)v\d+(?:beta\d*)?(?:\/|$)/.test(e)}}function k(e){let t=r(`GOOGLE_APPLICATION_CREDENTIALS`,e);return t?{keyFilename:t}:void 0}function A(e){let t=e?.apiKey?.trim();if(!(!t||t===`gcp-vertex-credentials`||j(t)))return t}function j(e){return/^<[^>]+>$/.test(e)}function M(e){let t=e?.project||r(`GOOGLE_CLOUD_PROJECT`,e?.env)||r(`GCLOUD_PROJECT`,e?.env);if(!t)throw Error(`Vertex AI requires a project ID. Set GOOGLE_CLOUD_PROJECT/GCLOUD_PROJECT or pass project in options.`);return t}function N(e){let t=e?.location||r(`GOOGLE_CLOUD_LOCATION`,e?.env);if(!t)throw Error(`Vertex AI requires a location. Set GOOGLE_CLOUD_LOCATION or pass location in options.`);return t}function P(e,t,n={}){let r=v(e,t),i={};n.temperature!==void 0&&(i.temperature=n.temperature),n.maxTokens!==void 0&&(i.maxOutputTokens=n.maxTokens);let o=u(e.id),s=t.tools?.length?l(t.tools,n.toolChoice,o):void 0,c={...Object.keys(i).length>0&&i,...t.systemPrompt&&{systemInstruction:a(t.systemPrompt)},...t.tools&&t.tools.length>0&&{tools:m(t.tools,!1,o)},...s!==void 0&&{toolConfig:{functionCallingConfig:{mode:s}}}};if(n.thinking?.enabled&&e.reasoning){let e={includeThoughts:!0};n.thinking.level===void 0?n.thinking.budgetTokens!==void 0&&(e.thinkingBudget=n.thinking.budgetTokens):e.thinkingLevel=b[n.thinking.level],c.thinkingConfig=e}else e.reasoning&&n.thinking&&!n.thinking.enabled&&(c.thinkingConfig=L(e));if(n.signal){if(n.signal.aborted)throw Error(`Request aborted`);c.abortSignal=n.signal}return{model:e.id,contents:r,config:c}}function F(e){return/gemini-3(?:\.\d+)?-pro/.test(e.id.toLowerCase())}function I(e){let t=e.id.toLowerCase();return/gemini-3(?:\.\d+)?-flash/.test(t)||t===`gemini-flash-latest`||t===`gemini-flash-lite-latest`}function L(e){let t=e;return F(t)?{thinkingLevel:d.LOW}:I(t)?{thinkingLevel:d.MINIMAL}:{thinkingBudget:0}}function R(e,t){if(F(t))switch(e){case`minimal`:case`low`:return`LOW`;case`medium`:case`high`:return`HIGH`}switch(e){case`minimal`:return`MINIMAL`;case`low`:return`LOW`;case`medium`:return`MEDIUM`;case`high`:return`HIGH`}}function z(e,t,n){return n?.[t]===void 0?e.id.includes(`2.5-pro`)?{minimal:128,low:2048,medium:8192,high:32768}[t]:e.id.includes(`2.5-flash`)?{minimal:128,low:2048,medium:8192,high:24576}[t]:-1:n[t]}export{S as stream,C as streamSimple};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{a as e}from"./diagnostics-B0j2bfEp.mjs";import{n as t,t as n}from"./models-BBd5zwn6.mjs";import{n as r}from"./json-parse-BzRcyI3e.mjs";import{t as i}from"./headers-BvGum5dc.mjs";import{t as a}from"./sanitize-unicode-Byz9nlLd.mjs";import{f as o,i as s,t as c,u as l}from"./transform-messages-BHnJzowk.mjs";import{t as u}from"./hash-DNYCELl4.mjs";const d=(t,n,r)=>{let i=new e;return(async()=>{let e=p(t);try{let a=r?.apiKey;if(!a)throw Error(`No API key for provider: ${t.provider}`);let o=m(),s=N(t,n,c(n.messages,t,e=>o(e)),r),l=await r?.onPayload?.(s,t);l!==void 0&&(s=l);let u=await y(t,s,a,r);if(i.push({type:`start`,partial:e}),await I(t,e,i,u),r?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`pending`)throw Error(`Mistral stream ended without a finish reason`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(e.errorMessage||`An unknown error occurred`);i.push({type:`done`,reason:e.stopReason,message:e}),i.end()}catch(t){for(let t of e.content)delete t.partialArgs;e.stopReason=r?.signal?.aborted?`aborted`:`error`,e.errorMessage=g(t),i.push({type:`error`,reason:e.stopReason,error:e}),i.end()}})(),i},f=(e,n,r)=>{let i=r?.apiKey;if(!i)throw Error(`No API key for provider: ${e.provider}`);let a=s(e,n,r,i),o=r?.reasoning?t(e,r.reasoning):void 0,c=o===`off`?void 0:o,l=e.reasoning&&c!==void 0;return d(e,n,{...a,promptMode:l&&H(e)?`reasoning`:void 0,reasoningEffort:l&&V(e)?U(e,c):void 0})};function p(e){return{role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()}}function m(){let e=new Map,t=new Map;return n=>{let r=e.get(n);if(r)return r;let i=0;for(;;){let r=h(n,i),a=t.get(r);if(!a||a===n)return e.set(n,r),t.set(r,n),r;i++}}}function h(e,t){let n=e.replace(/[^a-zA-Z0-9]/g,``);if(t===0&&n.length===9)return n;let r=n||e;return u(t===0?r:`${r}:${t}`).replace(/[^a-zA-Z0-9]/g,``).slice(0,9)}function g(e){if(e instanceof Error){let t=e,n=typeof t.statusCode==`number`?t.statusCode:void 0,r=typeof t.body==`string`?t.body.trim():void 0;return n!==void 0&&r?`Mistral API error (${n}): ${_(r,4e3)}`:n===void 0?e.message:`Mistral API error (${n}): ${e.message}`}return v(e)}function _(e,t){return e.length<=t?e:`${e.slice(0,t)}... [truncated ${e.length-t} chars]`}function v(e){try{let t=JSON.stringify(e);return t===void 0?String(e):t}catch{return String(e)}}async function y(e,t,n,r){let a=new URL(e.baseUrl);a.pathname=`${a.pathname.replace(/\/+$/u,``)}/`;let o=new URL(`v1/chat/completions`,a),s=x(e,n,r),c=AbortSignal.timeout(r?.timeoutMs??6e4),l=r?.signal?AbortSignal.any([r.signal,c]):c,u=await(r?.fetch??globalThis.fetch)(o,{method:`POST`,headers:s,body:JSON.stringify(w(t)),signal:l});if(await r?.onResponse?.({status:u.status,headers:i(u.headers)},e),!u.ok){let e=await u.text();throw new b(u.status,e,u.statusText)}if(!u.body)throw Error(`Mistral response has no body`);return A(u.body,l)}var b=class extends Error{statusCode;body;constructor(e,t,n){super(n||`Request failed with status ${e}`),this.name=`MistralHttpError`,this.statusCode=e,this.body=t}};function x(e,t,n){let r=new Headers({accept:`text/event-stream`,authorization:`Bearer ${t}`,"content-type":`application/json`});S(r,e.headers),S(r,n?.headers);let i=C(e.headers,`x-affinity`)||C(n?.headers,`x-affinity`);return P(n)&&!i&&r.set(`x-affinity`,n.sessionId),r}function S(e,t){if(t)for(let[n,r]of Object.entries(t))r===null?e.delete(n):e.set(n,r)}function C(e,t){return!!e&&Object.keys(e).some(e=>e.toLowerCase()===t)}function w(e){let t={...e};for(let[e,n]of[[`topP`,`top_p`],[`maxTokens`,`max_tokens`],[`randomSeed`,`random_seed`],[`responseFormat`,`response_format`],[`toolChoice`,`tool_choice`],[`presencePenalty`,`presence_penalty`],[`frequencyPenalty`,`frequency_penalty`],[`parallelToolCalls`,`parallel_tool_calls`],[`reasoningEffort`,`reasoning_effort`],[`promptMode`,`prompt_mode`],[`promptCacheKey`,`prompt_cache_key`],[`safePrompt`,`safe_prompt`]])D(t,e,n);t.messages=e.messages.map(e=>T(e));let n=t.response_format;if(O(n)){let e={...n};D(e,`jsonSchema`,`json_schema`);let r=e.json_schema;if(O(r)){let t={...r};D(t,`schemaDefinition`,`schema`),e.json_schema=t}t.response_format=e}return t}function T(e){let t={...e};return D(t,`toolCalls`,`tool_calls`),D(t,`toolCallId`,`tool_call_id`),Array.isArray(e.content)&&(t.content=e.content.map(e=>E(e))),t}function E(e){let t={...e};for(let[e,n]of[[`imageUrl`,`image_url`],[`documentUrl`,`document_url`],[`documentName`,`document_name`],[`fileId`,`file_id`],[`referenceIds`,`reference_ids`],[`inputAudio`,`input_audio`]])D(t,e,n);return t}function D(e,t,n){t in e&&(e[n]=e[t],delete e[t])}function O(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}const k=Symbol(`mistral-stream-done`);async function*A(e,t){let n=e.getReader(),r=new TextDecoder,i=``,a=()=>{n.cancel().catch(()=>{})};t.addEventListener(`abort`,a,{once:!0});try{for(;;){if(t.aborted)throw t.reason;let{done:e,value:a}=await n.read();if(t.aborted)throw t.reason;i+=e?r.decode():r.decode(a,{stream:!0});let o=j(i);for(;o;){let e=M(i.slice(0,o.index));if(i=i.slice(o.index+o.length),e===k)return;e&&(yield e),o=j(i)}if(e)break}if(i.trim()){let e=M(i);e!==k&&e&&(yield e)}}finally{t.removeEventListener(`abort`,a);try{await n.cancel()}catch{}try{n.releaseLock()}catch{}}}function j(e){let t=/\r\n\r\n|\r\n\r|\r\n\n|\r\r\n|\n\r\n|\r\r|\n\r|\n\n/u.exec(e);return t?.index===void 0?void 0:{index:t.index,length:t[0].length}}function M(e){let t=e.split(/\r\n|\r|\n/u).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trimStart()).join(`
|
|
3
|
-
`).trim();if(!t)return;if(t===`[DONE]`)return k;let n=JSON.parse(t);if(!O(n)||!Array.isArray(n.choices))throw Error(`Invalid Mistral streaming event`);return{data:n}}function N(e,t,n,r){let i={model:e.id,stream:!0,messages:z(n,e.input.includes(`image`))};return t.tools?.length&&(i.tools=L(t.tools)),r?.temperature!==void 0&&(i.temperature=r.temperature),r?.maxTokens!==void 0&&(i.maxTokens=r.maxTokens),r?.toolChoice&&(i.toolChoice=W(r.toolChoice)),r?.promptMode&&(i.promptMode=r.promptMode),r?.reasoningEffort&&(i.reasoningEffort=r.reasoningEffort),P(r)&&(i.promptCacheKey=r.sessionId),t.systemPrompt&&i.messages.unshift({role:`system`,content:a(t.systemPrompt)}),i}function P(e){return e?.cacheRetention!==`none`&&!!e?.sessionId}function F(e,t){let n=e,r=n.promptTokensDetails?.cachedTokens??n.prompt_tokens_details?.cached_tokens??n.promptTokenDetails?.cachedTokens??n.prompt_token_details?.cached_tokens??n.numCachedTokens??n.num_cached_tokens??0,i=typeof r==`number`&&Number.isFinite(r)?r:0;return Math.min(t,Math.max(0,i))}async function I(e,t,i,o){let s=null,c=t.content,l=()=>c.length-1,u=new Map,d=e=>{if(e){if(e.type===`text`){i.push({type:`text_end`,contentIndex:l(),content:e.text,partial:t});return}e.type===`thinking`&&i.push({type:`thinking_end`,contentIndex:l(),content:e.thinking,partial:t})}};for await(let c of o){let o=c.data;if(t.responseId||=o.id,o.usage){let r=o.usage.prompt_tokens||0,i=F(o.usage,r);t.usage.input=Math.max(0,r-i),t.usage.output=o.usage.completion_tokens||0,t.usage.cacheRead=i,t.usage.cacheWrite=0,t.usage.totalTokens=o.usage.total_tokens||t.usage.input+t.usage.output+t.usage.cacheRead+t.usage.cacheWrite,n(e,t.usage)}let f=o.choices[0];if(!f)continue;if(f.finish_reason){t.rawStopReason=f.finish_reason;let e=G(f.finish_reason);t.stopReason=e.stopReason,e.errorMessage&&(t.errorMessage=e.errorMessage)}let p=f.delta;if(p.content!==null&&p.content!==void 0){let e=typeof p.content==`string`?[p.content]:p.content;for(let n of e){if(typeof n==`string`){let e=a(n);(!s||s.type!==`text`)&&(d(s),s={type:`text`,text:``},t.content.push(s),i.push({type:`text_start`,contentIndex:l(),partial:t})),s.text+=e,i.push({type:`text_delta`,contentIndex:l(),delta:e,partial:t});continue}if(n.type===`thinking`){let e=a((n.thinking??[]).map(e=>e.text??``).filter(e=>e.length>0).join(``));if(!e)continue;(!s||s.type!==`thinking`)&&(d(s),s={type:`thinking`,thinking:``},t.content.push(s),i.push({type:`thinking_start`,contentIndex:l(),partial:t})),s.thinking+=e,i.push({type:`thinking_delta`,contentIndex:l(),delta:e,partial:t});continue}if(n.type===`text`){let e=a(n.text??``);(!s||s.type!==`text`)&&(d(s),s={type:`text`,text:``},t.content.push(s),i.push({type:`text_start`,contentIndex:l(),partial:t})),s.text+=e,i.push({type:`text_delta`,contentIndex:l(),delta:e,partial:t})}}}let m=p.tool_calls||[];for(let e of m){s&&=(d(s),null);let n=e.id&&e.id!==`null`?e.id:h(`toolcall:${e.index??0}`,0),a=`${n}:${e.index||0}`,o=u.get(a),c;if(o!==void 0){let e=t.content[o];e?.type===`toolCall`&&(c=e)}c||(c={type:`toolCall`,id:n,name:e.function.name,arguments:{},partialArgs:``},t.content.push(c),u.set(a,t.content.length-1),i.push({type:`toolcall_start`,contentIndex:t.content.length-1,partial:t}));let l=typeof e.function.arguments==`string`?e.function.arguments:JSON.stringify(e.function.arguments||{});c.partialArgs=(c.partialArgs||``)+l,c.arguments=r(c.partialArgs),i.push({type:`toolcall_delta`,contentIndex:u.get(a),delta:l,partial:t})}}d(s);for(let e of u.values()){let n=t.content[e];if(n.type!==`toolCall`)continue;let a=n;a.arguments=r(a.partialArgs),delete a.partialArgs,i.push({type:`toolcall_end`,contentIndex:e,toolCall:a,partial:t})}}function L(e){return e.map(e=>{let t=o(e,!0);return{type:`function`,function:{name:e.name,description:e.description,parameters:R(l(e,t)),strict:t??!1}}})}function R(e){if(Array.isArray(e))return e.map(e=>R(e));if(e&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))t[n]=R(r);return t}return e}function z(e,t){let n=[];for(let r of e){if(r.role===`user`){if(typeof r.content==`string`){n.push({role:`user`,content:a(r.content)});continue}let e=r.content.some(e=>e.type===`image`),i=r.content.filter(e=>e.type===`text`||t).map(e=>e.type===`text`?{type:`text`,text:a(e.text)}:{type:`image_url`,imageUrl:`data:${e.mimeType};base64,${e.data}`});if(i.length>0){n.push({role:`user`,content:i});continue}e&&!t&&n.push({role:`user`,content:`(image omitted: model does not support images)`});continue}if(r.role===`assistant`){let e=[],t=[];for(let n of r.content){if(n.type===`text`){n.text.trim().length>0&&e.push({type:`text`,text:a(n.text)});continue}if(n.type===`thinking`){n.thinking.trim().length>0&&e.push({type:`thinking`,thinking:[{type:`text`,text:a(n.thinking)}]});continue}t.push({id:n.id,type:`function`,function:{name:n.name,arguments:JSON.stringify(n.arguments||{})},index:0})}let i={role:`assistant`,prefix:!1};e.length>0&&(i.content=e),t.length>0&&(i.toolCalls=t),(e.length>0||t.length>0)&&n.push(i);continue}let e=[],i=B(r.content.filter(e=>e.type===`text`).map(e=>e.type===`text`?a(e.text):``).join(`
|
|
4
|
-
`),r.content.some(e=>e.type===`image`),t,r.isError);e.push({type:`text`,text:i});for(let n of r.content)t&&n.type===`image`&&e.push({type:`image_url`,imageUrl:`data:${n.mimeType};base64,${n.data}`});n.push({role:`tool`,toolCallId:r.toolCallId,name:r.toolName,content:e})}return n}function B(e,t,n,r){let i=e.trim(),a=r?`[tool error] `:``;return i.length>0?`${a}${i}${t&&!n?`
|
|
5
|
-
[tool image omitted: model does not support images]`:``}`:t?n?r?`[tool error] (see attached image)`:`(see attached image)`:r?`[tool error] (image omitted: model does not support images)`:`(image omitted: model does not support images)`:r?`[tool error] (no tool output)`:`(no tool output)`}function V(e){return e.id===`mistral-small-2603`||e.id===`mistral-small-latest`||e.id===`mistral-medium-3.5`}function H(e){return e.reasoning&&!V(e)}function U(e,t){return e.thinkingLevelMap?.[t]??`high`}function W(e){if(e)return e===`auto`||e===`none`||e===`any`||e===`required`?e:{type:`function`,function:{name:e.function.name}}}function G(e){if(e===null)return{stopReason:`stop`};switch(e){case`stop`:return{stopReason:`stop`};case`length`:case`model_length`:return{stopReason:`length`};case`tool_calls`:return{stopReason:`toolUse`};case`error`:return{stopReason:`error`,errorMessage:`Provider stopped with: error`};default:return{stopReason:`error`,errorMessage:`Provider stopped with: ${e}`}}}export{d as stream,f as streamSimple};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{a as e,i as t,n,t as r}from"./diagnostics-B0j2bfEp.mjs";import{n as i}from"./models-BBd5zwn6.mjs";import{r as a,t as o}from"./uuid-CwuSNv96.mjs";import"./json-parse-BzRcyI3e.mjs";import{t as s}from"./provider-env-CL5ShLlj.mjs";import{t as c}from"./deferred-tools-D8j2Ra6f.mjs";import{t as l}from"./headers-BvGum5dc.mjs";import{t as u}from"./pi-user-agent-m9a4CjJo.mjs";import{c as d,i as f}from"./transform-messages-BHnJzowk.mjs";import{n as p,t as m}from"./error-body-BBlqjbe7.mjs";import{t as h}from"./openai-prompt-cache-tVHrB8oW.mjs";import{n as g,r as _,t as v}from"./openai-responses-shared-DKseiGAg.mjs";function y(e){let t=e.filter(e=>e!==void 0);if(t.length===0)return{cleanup:()=>{}};if(t.length===1)return{signal:t[0],cleanup:()=>{}};let n=new AbortController,r=[],i=e=>{n.signal.aborted||n.abort(e.reason)};for(let e of t){if(e.aborted){i(e);break}let t=()=>i(e);e.addEventListener(`abort`,t,{once:!0}),r.push({signal:e,listener:t})}return{signal:n.signal,cleanup:()=>{for(let{signal:e,listener:t}of r)e.removeEventListener(`abort`,t)}}}const b={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443};function x(e,t){let n=e.toLowerCase(),r=e.toUpperCase();return t?.[n]||t?.[r]||s(n)||s(r)||``}function S(e){if(e instanceof URL)return e;try{return new URL(e)}catch{return}}function C(e,t,n){let r=x(`no_proxy`,n).toLowerCase();return r?r===`*`?!1:r.split(/[,\s]/).every(n=>{if(!n)return!0;let r=n.match(/^(.+):(\d+)$/),i=r?r[1]:n,a=r?Number.parseInt(r[2],10):0;return a&&a!==t?!0:/^[.*]/.test(i)?(i.startsWith(`*`)&&(i=i.slice(1)),!e.endsWith(i)):e!==i}):!0}function ee(e,t){let n=S(e);if(!n?.protocol||!n.host)return``;let r=n.protocol.split(`:`,1)[0];if(!C(n.host.replace(/:\d*$/,``),Number.parseInt(n.port,10)||b[r]||0,t))return``;let i=x(`${r}_proxy`,t)||x(`all_proxy`,t);return i&&!i.includes(`://`)&&(i=`${r}://${i}`),i}function w(e,t){let n=ee(e,t);if(!n)return;let r;try{r=new URL(n)}catch(e){throw Error(`Invalid proxy URL ${JSON.stringify(n)}: ${e instanceof Error?e.message:String(e)}`)}if(r.protocol!==`http:`&&r.protocol!==`https:`)throw Error(`Unsupported proxy protocol. SOCKS and PAC proxy URLs are not supported; use an HTTP or HTTPS proxy URL. Got ${r.protocol}`);return r}const T=1e3,E=new Set([`openai`,`openai-codex`,`opencode`]),D=new Set([`completed`,`incomplete`,`failed`,`cancelled`,`queued`,`in_progress`]);function te(e){if(e.stopReason===`pending`)throw Error(`Codex stream ended without a stop reason`);if(e.stopReason===`error`||e.stopReason===`aborted`)throw Error(e.errorMessage||`An unknown error occurred`)}function O(e){return/GoUsageLimitError|FreeUsageLimitError|Monthly usage limit reached|available balance|insufficient_quota|out of budget|quota exceeded|billing/i.test(e)}function ne(e,t){return e===429&&O(t)?!1:e===429||e===500||e===502||e===503||e===504?!0:/rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(t)}function re(e){let t=e.get(`retry-after-ms`);if(t!==null){let e=Number(t);if(Number.isFinite(e))return Math.max(0,e)}let n=e.get(`retry-after`);if(!n)return;let r=Number(n);if(Number.isFinite(r))return Math.max(0,r*1e3);let i=Date.parse(n);if(!Number.isNaN(i))return Math.max(0,i-Date.now())}var k=class extends Error{};function ie(e,t){let n=t?.maxRetryDelayMs??6e4;if(n>0&&e>n)throw new k(`Server requested ${Math.ceil(e/1e3)}s retry delay (max: ${Math.ceil(n/1e3)}s)`);return e}function A(e,t){return new Promise((n,r)=>{if(t?.aborted){r(Error(`Request was aborted`));return}let i=setTimeout(n,e);t?.addEventListener(`abort`,()=>{clearTimeout(i),r(Error(`Request was aborted`))})})}function j(e){if(e!==void 0){if(!Number.isFinite(e)||e<0)throw Error(`Invalid timeoutMs: ${String(e)}`);return Math.floor(e)}}function M(){return typeof process>`u`||!(process.versions?.node||process.versions?.bun)?null:process.getBuiltinModule?.(`node:zlib`)??null}function ae(e){let t=M();if(!t||typeof t.zstdCompressSync!=`function`)return null;try{let n=t.zstdCompressSync(e,{params:{[t.constants.ZSTD_c_compressionLevel]:3}});return new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}catch{return null}}const N=(t,i,a)=>{let s=new e;return(async()=>{let e={role:`assistant`,content:[],api:`openai-codex-responses`,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let c=a?.apiKey;if(!c)throw Error(`No API key for provider: ${t.provider}`);let u=Fe(c),f=d(i.tools,t.compat?.supportsOpenAIGrammarTools??!1),p=a?.cacheRetention===`none`?void 0:a?.sessionId,m=h(p),g=oe(t,i,a,m,f),_=await a?.onPayload?.(g,t);_!==void 0&&(g=_);let v=m||o(),b=Le(t.headers,a?.headers,u,c,m),x=Re(t.headers,a?.headers,u,c,v),S=JSON.stringify(g),C=j(a?.timeoutMs),ee=j(a?.websocketConnectTimeoutMs),w=a?.transport||`auto`,E=!1,D=w!==`sse`&&q(p);if(D&&J(p),w!==`sse`&&!D){let i=!1,o=!1,c=!1;for(;;){i=!1;try{if(await Ne(se(t.baseUrl),g,x,e,s,t,()=>{i=!0,E||(E=!0,s.push({type:`start`,partial:e}))},C,ee,p,u,f,a),a?.signal?.aborted)throw Error(`Request was aborted`);te(e),s.push({type:`done`,reason:e.stopReason,message:e}),s.end();return}catch(t){let s=a?.signal?.aborted,l=!i&&ue(t),u=de(t);if(!s&&u&&!c){c=!0;continue}if(!s&&l&&!o){o=!0;continue}if(s||le(t)&&!l||(r(e,n(`provider_transport_failure`,t,{configuredTransport:w,fallbackTransport:i?void 0:`sse`,eventsEmitted:i,phase:i?`after_message_stream_start`:`before_message_stream_start`,requestBytes:new TextEncoder().encode(S).byteLength})),_e(p,t),i))throw t;J(p);break}}}let O=ae(S);O&&b.set(`content-encoding`,`zstd`);let M=O??S,N,P,F=a?.maxRetries??0;for(let e=0;e<=F;e++){if(a?.signal?.aborted)throw Error(`Request was aborted`);try{let n=C!==void 0&&C>0?AbortSignal.timeout(C):void 0,r=y([a?.signal,n]);try{N=await(a?.fetch??globalThis.fetch)(R(t.baseUrl),{method:`POST`,headers:b,body:M,signal:r.signal})}catch(e){throw n?.aborted&&!a?.signal?.aborted?Error(`Codex SSE response headers timed out after ${C}ms`):e}finally{r.cleanup()}if(await a?.onResponse?.({status:N.status,headers:l(N.headers)},t),N.ok)break;let i=await N.text();if(e<F&&ne(N.status,i)){let t=re(N.headers);await A(t===void 0?T*2**e:ie(t,a),a?.signal);continue}let o=await Pe(new Response(i,{status:N.status,statusText:N.statusText}));throw Error(o.friendlyMessage||o.message)}catch(t){if(t instanceof Error&&(t.name===`AbortError`||t.message===`Request was aborted`))throw Error(`Request was aborted`);if(P=t instanceof Error?t:Error(String(t)),e<F&&!(P instanceof k)&&!P.message.includes(`usage limit`)){await A(T*2**e,a?.signal);continue}throw P}}if(!N?.ok)throw P??Error(`Failed after retries`);if(!N.body)throw Error(`No response body`);if(E||(E=!0,s.push({type:`start`,partial:e})),await ce(N,e,s,t,f,a),a?.signal?.aborted)throw Error(`Request was aborted`);te(e),s.push({type:`done`,reason:e.stopReason,message:e}),s.end()}catch(t){for(let t of e.content)delete t.partialJson,delete t.customInput;e.stopReason=a?.signal?.aborted?`aborted`:`error`,e.errorMessage=m(p(t)),s.push({type:`error`,reason:e.stopReason,error:e}),s.end()}})(),s},P=(e,t,n)=>{let r=n?.apiKey;if(!r)throw Error(`No API key for provider: ${e.provider}`);let a=f(e,t,n,r),o=n?.reasoning?i(e,n.reasoning):void 0,s=o===`off`?void 0:o;return N(e,t,{...a,reasoningEffort:s})};function oe(e,t,n,r,i=d(t.tools,e.compat?.supportsOpenAIGrammarTools??!1)){let a=e.compat?.supportsStrictMode??!0,o=e.compat?.supportsOpenAIGrammarTools??!1,s=e.compat?.supportsAdditionalTools?`additional-tools`:e.compat?.supportsToolSearch?`tool-search`:void 0,l=c(t,s!==void 0),u=v(e,t,E,{includeSystemPrompt:!1,grammarToolInputProperties:i,deferredTools:l.deferred,deferredToolsMode:s,toolOptions:{strict:null,supportsStrictMode:a,supportsOpenAIGrammarTools:o}}),f={model:e.id,store:!1,stream:!0,instructions:t.systemPrompt||`You are a helpful assistant.`,input:u,text:{verbosity:n?.textVerbosity||`low`},include:[`reasoning.encrypted_content`],prompt_cache_key:r,tool_choice:n?.toolChoice??`auto`,parallel_tool_calls:!0};if(n?.temperature!==void 0&&(f.temperature=n.temperature),n?.serviceTier!==void 0&&(f.service_tier=n.serviceTier),l.immediate.length>0&&(f.tools=g(l.immediate,{strict:null,supportsStrictMode:a,supportsOpenAIGrammarTools:o})),n?.reasoningEffort!==void 0){let t=n.reasoningEffort===`none`?e.thinkingLevelMap?.off??`none`:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;t!==null&&(f.reasoning={effort:t,summary:n.reasoningSummary??`auto`})}return f}function F(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function I(e,t,n){let r=F(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}function L(e,t){return e===`default`&&(t===`flex`||t===`priority`)?t:e??t}function R(e){let t=(e&&e.trim().length>0?e:`https://chatgpt.com/backend-api`).replace(/\/+$/,``);return t.endsWith(`/codex/responses`)?t:t.endsWith(`/codex`)?`${t}/responses`:`${t}/codex/responses`}function se(e){let t=new URL(R(e));return t.protocol===`https:`&&(t.protocol=`wss:`),t.protocol===`http:`&&(t.protocol=`ws:`),t.toString()}async function ce(e,t,n,r,i,a){await _(V(me(e,a?.signal),t),t,n,r,{serviceTier:a?.serviceTier,grammarToolInputProperties:i,resolveServiceTier:L,applyServiceTierPricing:(e,t)=>I(e,t,r)})}var z=class extends Error{code;payload;constructor(e,t){super(e),this.name=`CodexApiError`,this.code=t?.code,this.payload=t?.payload,this.cause=t?.cause}},B=class extends Error{payload;constructor(e,t){super(e),this.name=`CodexProtocolError`,this.payload=t?.payload,this.cause=t?.cause}};function le(e){return e instanceof z||e instanceof B}function ue(e){return e instanceof z&&e.code===`websocket_connection_limit_reached`}function de(e){return e instanceof z&&e.code===`previous_response_not_found`}function fe(e){let t=e.error&&typeof e.error==`object`?e.error:void 0;return{code:typeof e.code==`string`?e.code:typeof t?.code==`string`?t.code:void 0,message:typeof e.message==`string`?e.message:typeof t?.message==`string`?t.message:void 0}}async function*V(e,t){for await(let n of e){let e=typeof n.type==`string`?n.type:void 0;if(e){if(e===`error`){let{code:e,message:t}=fe(n);throw new z(`Codex error: ${t||e||JSON.stringify(n)}`,{code:e,payload:n})}if(e===`response.failed`){let e=n.response,t=e?.error?.code,r=e?.error?.message;throw new z(r||`Codex response failed`,{code:t,payload:n})}if(e===`response.done`||e===`response.completed`||e===`response.incomplete`){let e=n.response;typeof e?.end_turn==`boolean`&&(t.endTurn=e.end_turn);let r=e&&{...e,status:pe(e.status)};yield{...n,type:`response.completed`,response:r};return}yield n}}}function pe(e){if(typeof e==`string`)return D.has(e)?e:void 0}async function*me(e,n){if(!e.body)return;let r=e.body.getReader(),i=new TextDecoder,a=``,o=()=>{r.cancel().catch(()=>{})};n?.addEventListener(`abort`,o,{once:!0});try{for(;;){if(n?.aborted)throw Error(`Request was aborted`);let{done:e,value:o}=await r.read();if(n?.aborted)throw Error(`Request was aborted`);if(e)break;a+=i.decode(o,{stream:!0});let s=a.indexOf(`
|
|
3
|
-
|
|
4
|
-
`);for(;s!==-1;){let e=a.slice(0,s);a=a.slice(s+2);let n=e.split(`
|
|
5
|
-
`).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trim());if(n.length>0){let e=n.join(`
|
|
6
|
-
`).trim();if(e&&e!==`[DONE]`)try{yield JSON.parse(e)}catch(n){throw new B(`Invalid Codex SSE JSON: ${t(n)}`,{cause:n,payload:e})}}s=a.indexOf(`
|
|
7
|
-
|
|
8
|
-
`)}}}finally{n?.removeEventListener(`abort`,o);try{await r.cancel()}catch{}try{r.releaseLock()}catch{}}}const H=new Map,U=new Map,W=new Set;function G(e){let t=U.get(e);return t||(t={requests:0,connectionsCreated:0,connectionsReused:0,cachedContextRequests:0,storeTrueRequests:0,fullContextRequests:0,deltaRequests:0,lastInputItems:0,websocketFailures:0,sseFallbacks:0},U.set(e,t)),t}function he(e){let t=U.get(e);return t?{...t}:void 0}function ge(e){if(e){U.delete(e),W.delete(e);return}U.clear(),W.clear()}function K(e){let t=e=>{e.idleTimer&&clearTimeout(e.idleTimer),Z(e.socket,1e3,`debug_close`)};if(e){for(let n of H.get(e)?.values()??[])t(n);H.delete(e);return}for(let e of H.values())for(let n of e.values())t(n);H.clear()}a(K);function q(e){return e?W.has(e):!1}function J(e){if(!e)return;let t=G(e);t.sseFallbacks++,t.websocketFallbackActive=q(e)}function _e(e,n){if(!e)return;W.add(e);let r=G(e);r.websocketFailures++,r.lastWebSocketError=t(n),r.websocketFallbackActive=!0}let Y=null;async function ve(e){if(!e&&Y)return Y;if(typeof process<`u`&&process.versions?.bun){let t=class extends WebSocket{constructor(t,n){let r={};r=Array.isArray(n)||typeof n==`string`?{protocols:n}:{...n};let i=w(t.toString().replace(/^wss:/,`https:`).replace(/^ws:/,`http:`),e);super(t,{...r,...i?{proxy:i.toString()}:{}})}};return e||(Y=t),t}let t=globalThis.WebSocket;return typeof t==`function`?t:null}var ye=class extends Error{code;reason;wasClean;constructor(e,t){super(e),this.name=`WebSocketCloseError`,this.code=t?.code,this.reason=t?.reason,this.wasClean=t?.wasClean}};function be(e){let t=e.readyState;return typeof t==`number`?t:void 0}function X(e){let t=be(e);return t===void 0||t===1}function xe(e){return Date.now()-e.createdAt>=33e5}function Z(e,t=1e3,n=`done`){try{e.close(t,n)}catch{}}function Se(e,t,n){n.idleTimer&&clearTimeout(n.idleTimer),n.idleTimer=setTimeout(()=>{if(n.busy)return;Z(n.socket,1e3,`idle_timeout`);let r=H.get(e);r?.get(t)===n&&r.delete(t),r?.size===0&&H.delete(e)},3e5)}async function Q(e,t,n,r=15e3,i){let a=await ve(i);if(!a)throw Error(`WebSocket transport is not available in this runtime`);let o=l(t);return delete o[`OpenAI-Beta`],new Promise((t,i)=>{let s=!1,c,l;try{l=new a(e,{headers:o})}catch(e){i(e instanceof Error?e:Error(String(e)));return}let u=()=>{c&&=(clearTimeout(c),void 0),l.removeEventListener(`open`,f),l.removeEventListener(`error`,p),l.removeEventListener(`close`,m),n?.removeEventListener(`abort`,h)},d=(e,t)=>{s||(s=!0,u(),t&&Z(l,1e3,t),i(e))},f=()=>{s||(s=!0,u(),t(l))},p=e=>{d($(e))},m=e=>{d(we(e))},h=()=>{d(Error(`Request was aborted`),`aborted`)};l.addEventListener(`open`,f),l.addEventListener(`error`,p),l.addEventListener(`close`,m),n?.addEventListener(`abort`,h),r>0&&(c=setTimeout(()=>{d(Error(`WebSocket connect timeout after ${r}ms`),`connect_timeout`)},r)),n?.aborted&&h()})}async function Ce(e,t,n,r,i,a,o){if(!n){let n=await Q(e,t,i,a,o);return{socket:n,reused:!1,release:()=>Z(n)}}let s=H.get(n),c=s?.get(r);if(c){if(c.idleTimer&&=(clearTimeout(c.idleTimer),void 0),!c.busy&&xe(c))Z(c.socket,1e3,`connection_age_limit`),s?.delete(r),s?.size===0&&H.delete(n);else if(!c.busy&&X(c.socket))return c.busy=!0,{socket:c.socket,entry:c,reused:!0,release:({keep:e}={})=>{if(!e||!X(c.socket)){Z(c.socket);let e=H.get(n);e?.get(r)===c&&e.delete(r),e?.size===0&&H.delete(n);return}c.busy=!1,Se(n,r,c)}};if(c.busy){let n=await Q(e,t,i,a,o);return{socket:n,reused:!1,release:()=>{Z(n)}}}X(c.socket)||(Z(c.socket),s?.delete(r),s?.size===0&&H.delete(n))}let l=await Q(e,t,i,a,o),u={socket:l,busy:!0,createdAt:Date.now()};return s=H.get(n),s||(s=new Map,H.set(n,s)),s.set(r,u),{socket:l,entry:u,reused:!1,release:({keep:e}={})=>{if(!e||!X(u.socket)){Z(u.socket),u.idleTimer&&clearTimeout(u.idleTimer);let e=H.get(n);e?.get(r)===u&&e.delete(r),e?.size===0&&H.delete(n);return}u.busy=!1,Se(n,r,u)}}}function $(e){if(e&&typeof e==`object`){let t=`message`in e?e.message:void 0;if(typeof t==`string`&&t.length>0)return Error(t);let n=`error`in e?e.error:void 0;if(n instanceof Error&&n.message.length>0)return n;if(n&&typeof n==`object`&&`message`in n){let e=n.message;if(typeof e==`string`&&e.length>0)return Error(e)}}return Error(`WebSocket error`)}function we(e){if(e&&typeof e==`object`){let t=`code`in e?e.code:void 0,n=`reason`in e?e.reason:void 0,r=`wasClean`in e?e.wasClean:void 0,i=typeof t==`number`?` ${t}`:``,a=typeof n==`string`&&n.length>0?` ${n}`:``;return!a&&t===1009&&(a=` message too big`),new ye(`WebSocket closed${i}${a}`.trim(),{code:typeof t==`number`?t:void 0,reason:typeof n==`string`&&n.length>0?n:void 0,wasClean:typeof r==`boolean`?r:void 0})}return Error(`WebSocket closed`)}async function Te(e){if(typeof e==`string`)return e;if(e instanceof ArrayBuffer)return new TextDecoder().decode(new Uint8Array(e));if(ArrayBuffer.isView(e)){let t=e;return new TextDecoder().decode(new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}if(e&&typeof e==`object`&&`arrayBuffer`in e){let t=await e.arrayBuffer();return new TextDecoder().decode(new Uint8Array(t))}return null}async function*Ee(e,n,r){let i=[],a=null,o=!1,s=null,c=!1,l=()=>{if(!a)return;let e=a;a=null,e()},u=e=>{(async()=>{let n=null;try{if(!e||typeof e!=`object`||!(`data`in e)||(n=await Te(e.data),!n))return;let t=JSON.parse(n),r=typeof t.type==`string`?t.type:``;(r===`response.completed`||r===`response.done`||r===`response.incomplete`)&&(c=!0,o=!0),i.push(t),l()}catch(e){s=new B(`Invalid Codex WebSocket JSON: ${t(e)}`,{cause:e,payload:n}),o=!0,l()}})()},d=e=>{s=$(e),o=!0,l()},f=e=>{if(c){o=!0,l();return}s||=we(e),o=!0,l()},p=()=>{s=Error(`Request was aborted`),o=!0,l()};e.addEventListener(`message`,u),e.addEventListener(`error`,d),e.addEventListener(`close`,f),n?.addEventListener(`abort`,p);try{for(;;){if(n?.aborted)throw Error(`Request was aborted`);if(i.length>0){yield i.shift();continue}if(o)break;let t;await new Promise((n,i)=>{a=n,r!==void 0&&r>0&&(t=setTimeout(()=>{let t=Error(`WebSocket idle timeout after ${r}ms`);s=t,o=!0,a=null,Z(e,1e3,`idle_timeout`),i(t)},r))}).finally(()=>{t&&clearTimeout(t)})}if(s)throw s;if(!c)throw Error(`WebSocket stream closed before response.completed`)}finally{e.removeEventListener(`message`,u),e.removeEventListener(`error`,d),e.removeEventListener(`close`,f),n?.removeEventListener(`abort`,p)}}function De(e){let{input:t,previous_response_id:n,...r}=e;return r}function Oe(e,t){return JSON.stringify(e??[])===JSON.stringify(t??[])}function ke(e,t){return JSON.stringify(De(e))===JSON.stringify(De(t))}function Ae(e,t){if(!ke(e,t.lastRequestBody))return;let n=e.input??[],r=[...t.lastRequestBody.input??[],...t.lastResponseItems];if(!(n.length<r.length)&&Oe(n.slice(0,r.length),r))return n.slice(r.length)}function je(e,t){let n=e.continuation;if(!n)return t;let r=Ae(t,n);return!r||!n.lastResponseId?(e.continuation=void 0,t):{...t,previous_response_id:n.lastResponseId,input:r}}async function*Me(e,t){let n=!1;for await(let r of e)n||(n=!0,t()),yield r}async function Ne(e,t,n,r,i,a,o,s,c,l,u,d,f){let{socket:p,entry:m,reused:h,release:g}=await Ce(e,n,l,u,f?.signal,c,f?.env),y=!0,b=f?.transport===`websocket-cached`||f?.transport===`auto`,x=t,S=b&&m?je(m,x):x,C=l?G(l):void 0;C&&(C.requests++,h?C.connectionsReused++:C.connectionsCreated++,b&&C.cachedContextRequests++,S.store===!0&&C.storeTrueRequests++,C.lastInputItems=S.input?.length??0,S.previous_response_id?(C.deltaRequests++,C.lastDeltaInputItems=S.input?.length??0,C.lastPreviousResponseId=S.previous_response_id):(C.fullContextRequests++,C.lastDeltaInputItems=void 0,C.lastPreviousResponseId=void 0));try{if(p.send(JSON.stringify({type:`response.create`,...S})),await _(Me(V(Ee(p,f?.signal,s),r),o),r,i,a,{serviceTier:f?.serviceTier,grammarToolInputProperties:d,resolveServiceTier:L,applyServiceTierPricing:(e,t)=>I(e,t,a)}),f?.signal?.aborted)y=!1;else if(b&&m&&r.responseId){let e=v(a,{messages:[r]},E,{includeSystemPrompt:!1,grammarToolInputProperties:d}).filter(e=>e.type!==`function_call_output`&&e.type!==`custom_tool_call_output`);m.continuation={lastRequestBody:x,lastResponseId:r.responseId,lastResponseItems:e}}}catch(e){throw m&&(m.continuation=void 0),y=!1,e}finally{g({keep:y})}}async function Pe(e){let t=await e.text(),n=t||e.statusText||`Request failed`,r;try{let i=JSON.parse(t)?.error;if(i){let t=i.code||i.type||``;if(/usage_limit_reached|usage_not_included|rate_limit_exceeded/i.test(t)||e.status===429){let e=i.plan_type?` (${i.plan_type.toLowerCase()} plan)`:``,t=i.resets_at?Math.max(0,Math.round((i.resets_at*1e3-Date.now())/6e4)):void 0;r=`You have hit your ChatGPT usage limit${e}.${t===void 0?``:` Try again in ~${t} min.`}`.trim()}n=i.message||r||n}}catch{}return{message:n,friendlyMessage:r}}function Fe(e){try{let t=e.split(`.`);if(t.length!==3)throw Error(`Invalid token`);let n=JSON.parse(atob(t[1]))?.[`https://api.openai.com/auth`]?.chatgpt_account_id;if(!n)throw Error(`No account ID in token`);return n}catch{throw Error(`Failed to extract accountId from token`)}}function Ie(e,t,n,r){let i=new Headers(e);for(let[e,n]of Object.entries(t||{}))n===null?i.delete(e):i.set(e,n);return i.set(`Authorization`,`Bearer ${r}`),i.set(`chatgpt-account-id`,n),i.set(`originator`,`pi`),i.set(`User-Agent`,u()),i}function Le(e,t,n,r,i){let a=Ie(e,t,n,r);return a.set(`OpenAI-Beta`,`responses=experimental`),a.set(`accept`,`text/event-stream`),a.set(`content-type`,`application/json`),i&&(a.set(`session-id`,i),a.set(`x-client-request-id`,i)),a}function Re(e,t,n,r,i){let a=Ie(e,t,n,r);return a.delete(`accept`),a.delete(`content-type`),a.delete(`OpenAI-Beta`),a.delete(`openai-beta`),a.set(`OpenAI-Beta`,`responses_websockets=2026-02-06`),a.set(`x-client-request-id`,i),a.set(`session-id`,i),a}export{K as closeOpenAICodexWebSocketSessions,he as getOpenAICodexWebSocketDebugStats,ge as resetOpenAICodexWebSocketDebugStats,N as stream,P as streamSimple};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{a as e}from"./diagnostics-B0j2bfEp.mjs";import{n as t,t as n}from"./models-BBd5zwn6.mjs";import{n as r}from"./json-parse-BzRcyI3e.mjs";import{t as i}from"./provider-env-CL5ShLlj.mjs";import{t as a}from"./headers-BvGum5dc.mjs";import{t as o}from"./provider-retry-wOYAq0sa.mjs";import{t as s}from"./sanitize-unicode-Byz9nlLd.mjs";import{c,d as l,f as u,i as d,l as f,n as p,o as m,s as h,t as g,u as _}from"./transform-messages-BHnJzowk.mjs";import{n as v,t as y}from"./github-copilot-headers-DCj7hJoC.mjs";import{n as b}from"./openai-CbFQ5q5I.mjs";import{n as x,t as S}from"./error-body-BBlqjbe7.mjs";import{t as C}from"./openai-prompt-cache-tVHrB8oW.mjs";import{t as w}from"./hash-DNYCELl4.mjs";function T(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function E(e,t,n){if(t)return t;if(T(n,`authorization`)||T(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function D(e){for(let t of e)if(t.role===`toolResult`||t.role===`assistant`&&t.content.some(e=>e.type===`toolCall`))return!0;return!1}function O(e){let t=new Set;for(let n of e)if(n.role===`toolResult`)for(let e of n.addedToolNames??[])t.add(e);return t}function k(e,t){if(!e)return[];let n=new Map(e.map(e=>[e.name,e]));return Array.from(t).map(e=>n.get(e)).filter(e=>e!==void 0)}function A(e){return e.type===`text`}function j(e){return e.type===`thinking`}function M(e){return e.type===`toolCall`}function N(e){return e.type===`image`}function P(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.type===`reasoning.encrypted`&&typeof t.id==`string`&&t.id.length>0&&typeof t.data==`string`&&t.data.length>0}function F(e,t){return e||(i(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}const I=(t,n,i)=>{let s=new e;return(async()=>{let e={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let l=E(t.provider,i?.apiKey,i?.headers),u=$(t),d=c(n.tools,u.supportsOpenAIGrammarTools),f=F(i?.cacheRetention,i?.env),p=f===`none`?void 0:i?.sessionId,m=R(t,n,l,i?.headers,i?.fetch,p,u),g=z(t,n,i,u,f,d),_=await i?.onPayload?.(g,t);_!==void 0&&(g=_);let v={...i?.signal?{signal:i.signal}:{},...i?.timeoutMs===void 0?{}:{timeout:i.timeoutMs},maxRetries:0},{data:y,response:b}=await o(()=>m.chat.completions.create(g,v).withResponse(),{maxRetries:i?.maxRetries,maxRetryDelayMs:i?.maxRetryDelayMs,signal:i?.signal});await i?.onResponse?.({status:b.status,headers:a(b.headers)},t),s.push({type:`start`,partial:e});let x=null,S=null,C=!1,w=new Map,T=new Map,D=new Map,O=e.content,k=e=>O.indexOf(e),A=e=>{let t=e.customInput?.property;if(t===void 0)return``;let n=e.arguments[t];return typeof n==`string`?n:``},j=(e,t,n)=>{let r=e.customInput;if(!r)return;let i=h(r.jsonBuffer,r.property,t,n);return e.arguments={[r.property]:t},i},M=t=>{let n=k(t);if(n!==-1){if(t.type===`text`)s.push({type:`text_end`,contentIndex:n,content:t.text,partial:e});else if(t.type===`thinking`)s.push({type:`thinking_end`,contentIndex:n,content:t.thinking,partial:e});else if(t.type===`toolCall`){if(t.customInput){let r=j(t,A(t),!0);r!==void 0&&s.push({type:`toolcall_delta`,contentIndex:n,delta:r,partial:e})}else t.arguments=r(t.partialArgs);delete t.partialArgs,delete t.customInput,delete t.streamIndex,s.push({type:`toolcall_end`,contentIndex:n,toolCall:t,partial:e})}}},N=()=>(x||(x={type:`text`,text:``},O.push(x),s.push({type:`text_start`,contentIndex:k(x),partial:e})),x),I=t=>(S||(S={type:`thinking`,thinking:``,thinkingSignature:t},O.push(S),s.push({type:`thinking_start`,contentIndex:k(S),partial:e})),S),L=e=>{if(!e.id)return;let t=D.get(e.id);t&&(e.thoughtSignature=t,D.delete(e.id))},B=t=>{let n=typeof t.index==`number`?t.index:void 0,r=t.function?.name??t.custom?.name??``,i=n===void 0?void 0:w.get(n);if(!i&&t.id&&(i=T.get(t.id)),!i){let a=t.custom&&!t.function?d.get(r)??`input`:void 0,o=a!==void 0;i={type:`toolCall`,id:t.id||``,name:r,arguments:o?{[a]:``}:{},partialArgs:o?void 0:``,customInput:o?{property:a,jsonBuffer:{input:``,started:!1,closed:!1}}:void 0,streamIndex:n},n!==void 0&&w.set(n,i),t.id&&T.set(t.id,i),O.push(i),s.push({type:`toolcall_start`,contentIndex:k(i),partial:e})}if(n!==void 0&&i.streamIndex===void 0&&(i.streamIndex=n,w.set(n,i)),t.id&&T.set(t.id,i),!i.name&&r&&(i.name=r),t.custom&&!t.function&&!i.customInput){let e=d.get(i.name)??`input`;i.arguments={[e]:``},i.customInput={property:e,jsonBuffer:{input:``,started:!1,closed:!1}},delete i.partialArgs}return L(i),i};for await(let n of y){if(!n||typeof n!=`object`)continue;e.responseId||=n.id,typeof n.model==`string`&&n.model.length>0&&n.model!==t.id&&(e.responseModel||=n.model),n.usage&&(e.usage=Q(n.usage,t));let i=Array.isArray(n.choices)?n.choices[0]:void 0;if(i){if(!n.usage&&i.usage&&(e.usage=Q(i.usage,t)),i.finish_reason){e.rawStopReason=i.finish_reason;let t=ee(i.finish_reason);e.stopReason=t.stopReason,t.errorMessage&&(e.errorMessage=t.errorMessage),C=!0}if(i.delta){if(i.delta.content!==null&&i.delta.content!==void 0&&i.delta.content.length>0){let t=N();t.text+=i.delta.content,s.push({type:`text_delta`,contentIndex:k(t),delta:i.delta.content,partial:e})}let n=[`reasoning_content`,`reasoning`,`reasoning_text`],a=i.delta,o=null;for(let e of n){let t=a[e];if(typeof t==`string`&&t.length>0){o=e;break}}if(o){let n=a[o];if(typeof n==`string`&&n.length>0){let r=I(t.provider===`opencode-go`&&o===`reasoning`?`reasoning_content`:o);r.thinking+=n,s.push({type:`thinking_delta`,contentIndex:k(r),delta:n,partial:e})}}if(i?.delta?.tool_calls)for(let t of i.delta.tool_calls){let n=B(t);!n.id&&t.id&&(n.id=t.id,T.set(t.id,n));let i=t.function?.name??t.custom?.name;!n.name&&i&&(n.name=i);let a=``;t.function?.arguments?(a=t.function.arguments,n.partialArgs=(n.partialArgs??``)+t.function.arguments,n.arguments=r(n.partialArgs)):t.custom?.input&&(a=j(n,A(n)+t.custom.input,!1)??``),s.push({type:`toolcall_delta`,contentIndex:k(n),delta:a,partial:e})}let c=i.delta.reasoning_details;if(Array.isArray(c)){for(let e of c)if(P(e)){let t=JSON.stringify(e),n=T.get(e.id);n?n.thoughtSignature=t:D.set(e.id,t)}}}}}for(let e of O)M(e);if(i?.signal?.aborted||e.stopReason===`aborted`)throw Error(`Request was aborted`);if(!C&&!u.supportsFinishReason&&(e.stopReason=e.content.some(e=>e.type===`toolCall`)?`toolUse`:`stop`),e.stopReason===`error`)throw Error(e.errorMessage||`Provider returned an error stop reason`);if(u.supportsFinishReason&&!C||e.stopReason===`pending`)throw Error(`Stream ended without finish_reason`);s.push({type:`done`,reason:e.stopReason,message:e}),s.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialArgs,delete t.customInput,delete t.streamIndex;e.stopReason=i?.signal?.aborted?`aborted`:`error`,e.errorMessage=S(x(t));let n=t?.error?.metadata?.raw;n&&!e.errorMessage.includes(String(n))&&(e.errorMessage+=`\n${n}`),s.push({type:`error`,reason:e.stopReason,error:e}),s.end()}})(),s},L=(e,n,r)=>{E(e.provider,r?.apiKey,r?.headers);let i=d(e,n,r,r?.apiKey),a=r?.reasoning?t(e,r.reasoning):void 0,o=a===`off`?void 0:a,s=r?.toolChoice;return I(e,n,{...i,reasoningEffort:o,toolChoice:s,thinkingBudgets:r?.thinkingBudgets})};function R(e,t,n,r,i,a,o=$(e)){let s={...e.headers};if(e.provider===`github-copilot`){let e=v(t.messages),n=y({messages:t.messages,hasImages:e});Object.assign(s,n)}return a&&o.sendSessionAffinityHeaders&&(o.sessionAffinityFormat===`openrouter`?s[`x-session-id`]=a:(o.sessionAffinityFormat===`openai`&&(s.session_id=a),s[`x-client-request-id`]=a,s[`x-session-affinity`]=a)),r&&Object.assign(s,r),new b({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:i,defaultHeaders:s})}function z(e,t,n,r=$(e),i=F(n?.cacheRetention,n?.env),a=c(t.tools,r.supportsOpenAIGrammarTools)){let o=X(e,t,r,{grammarToolInputProperties:a}),s=H(r,i),l={model:e.id,messages:o,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&i!==`none`||i===`long`&&r.supportsLongCacheRetention?C(n?.sessionId):void 0,prompt_cache_retention:i===`long`&&r.supportsLongCacheRetention?`24h`:void 0};r.supportsUsageInStreaming!==!1&&(l.stream_options={include_usage:!0}),r.supportsStore&&(l.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?l.max_tokens=n.maxTokens:l.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(l.temperature=n.temperature);let u=r.deferredToolsMode===`kimi`?O(t.messages):new Set,d=t.tools?.filter(e=>!u.has(e.name));if(d&&d.length>0?(l.tools=Z(d,r),r.zaiToolStream&&(l.tool_stream=!0)):D(t.messages)&&(l.tools=[]),s&&U(o,l.tools,s),n?.toolChoice&&(l.tool_choice=n.toolChoice),r.thinkingFormat===`zai`&&e.reasoning){let t=l;if(t.thinking=n?.reasoningEffort?{type:`enabled`,clear_thinking:!1}:{type:`disabled`},n?.reasoningEffort&&r.supportsReasoningEffort){let r=e.thinkingLevelMap?.[n.reasoningEffort],i=r===void 0?n.reasoningEffort:r;typeof i==`string`&&(t.reasoning_effort=i)}}else if(r.thinkingFormat===`qwen`&&e.reasoning){if(l.enable_thinking=!!n?.reasoningEffort,n?.reasoningEffort&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;typeof t==`string`&&(l.reasoning_effort=t)}}else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)l.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort,preserve_thinking:!0};else if(r.thinkingFormat===`chat-template`&&e.reasoning){let t=B(e,n,r.chatTemplateKwargs);t&&(l.chat_template_kwargs=t)}else if(r.thinkingFormat===`baseten`&&e.reasoning){let t=l,i=B(e,n,r.chatTemplateArgs);if(i&&(t.chat_template_args=i),r.supportsReasoningEffort){let r=n?.reasoningEffort,i=r?e.thinkingLevelMap?.[r]:e.thinkingLevelMap?.off,a=i===void 0?r:i;typeof a==`string`&&(t.reasoning_effort=a)}}else if(r.thinkingFormat===`deepseek`&&e.reasoning)n?.reasoningEffort?l.thinking={type:`enabled`}:e.thinkingLevelMap?.off!==null&&(l.thinking={type:`disabled`}),n?.reasoningEffort&&r.supportsReasoningEffort&&(l.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort);else if(r.thinkingFormat===`openrouter`&&e.reasoning){let t=l;n?.reasoningEffort?t.reasoning={effort:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort}:e.thinkingLevelMap?.off!==null&&(t.reasoning={effort:e.thinkingLevelMap?.off??`none`})}else if(r.thinkingFormat===`ant-ling`&&e.reasoning&&n?.reasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort];typeof t==`string`&&(l.reasoning={effort:t})}else if(r.thinkingFormat===`together`&&e.reasoning){let t=l;t.reasoning={enabled:!!n?.reasoningEffort},n?.reasoningEffort&&r.supportsReasoningEffort&&(t.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort)}else if(r.thinkingFormat===`string-thinking`&&e.reasoning){let t=l;n?.reasoningEffort?t.thinking=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:e.thinkingLevelMap?.off!==null&&(t.thinking=e.thinkingLevelMap?.off??`none`)}else if(n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort)l.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;else if(!n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.off;typeof t==`string`&&(l.reasoning_effort=t)}if(r.supportsThinkingTokenBudget&&n?.reasoningEffort&&e.reasoning){let t=m(n.reasoningEffort),r={minimal:1024,low:2048,medium:8192,high:16384,...n.thinkingBudgets},i=l.max_tokens??l.max_completion_tokens??e.maxTokens,a=Math.min(r[t],Math.max(0,i-p));a>0&&(l.thinking_token_budget=a)}if(e.compat?.openRouterRouting&&(l.provider=e.compat.openRouterRouting),e.compat?.vercelGatewayRouting){let t=e.compat.vercelGatewayRouting;if(t.only||t.order){let e={};t.only&&(e.only=t.only),t.order&&(e.order=t.order),l.providerOptions={gateway:e}}}return n?.samplingParams&&Object.assign(l,n.samplingParams),l}function B(e,t,n){let r={};for(let[i,a]of Object.entries(n)){let n=V(e,t,a);n!==void 0&&(r[i]=n)}return Object.keys(r).length>0?r:void 0}function V(e,t,n){if(typeof n!=`object`||!n)return n;let r=t?.reasoningEffort;if(!r&&n.omitWhenOff)return;if(n.$var===`thinking.enabled`)return!!r;let i=r?e.thinkingLevelMap?.[r]:e.thinkingLevelMap?.off;return i===void 0?r:typeof i==`string`?i:void 0}function H(e,t){if(e.cacheControlFormat!==`anthropic`||t===`none`)return;let n=t===`long`&&e.supportsLongCacheRetention?`1h`:void 0;return{type:`ephemeral`,...n?{ttl:n}:{}}}function U(e,t,n){W(e,n),K(t,n),G(e,n)}function W(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){q(n,t);return}}function G(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`||r.role===`tool`)&&J(r,t))return}}function K(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function q(e,t){return Y(e,t)}function J(e,t){return e.role===`user`||e.role===`assistant`||e.role===`tool`?Y(e,t):!1}function Y(e,t){let n=e.content;if(typeof n==`string`)return n.length===0?!1:(e.content=[{type:`text`,text:n,cache_control:t}],!0);if(!Array.isArray(n))return!1;for(let e=n.length-1;e>=0;e--){let r=n[e];if(r?.type===`text`){let e=r;return e.cache_control=t,!0}}return!1}function X(e,t,n,r){let i=[],a=t=>{if(t.includes(`|`)){let e=t.indexOf(`|`),n=t.slice(0,e).replace(/[^a-zA-Z0-9_-]/g,`_`),r=t.slice(e+1).replace(/[^a-zA-Z0-9_-]/g,`_`),i=r.length>0?`${n}_${r}`:n;if(i.length<=40)return i;let a=w(t).slice(0,8);return`${n.slice(0,Math.max(1,40-a.length-1))}_${a}`}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},o=g(t.messages,e,e=>a(e));if(t.systemPrompt){let r=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;i.push({role:r,content:s(t.systemPrompt)})}let c=null;for(let a=0;a<o.length;a++){let l=o[a];if(n.requiresAssistantAfterToolResult&&c===`toolResult`&&l.role===`user`&&i.push({role:`assistant`,content:`I have processed the tool results.`}),l.role===`user`)if(typeof l.content==`string`)i.push({role:`user`,content:s(l.content)});else{let e=l.content.map(e=>e.type===`text`?{type:`text`,text:s(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});if(e.length===0)continue;i.push({role:`user`,content:e})}else if(l.role===`assistant`){let t={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},a=l.content.filter(A).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:s(e.text)})),o=a.map(e=>e.text).join(``),c=l.content.filter(j).filter(e=>e.thinking.trim().length>0);if(c.length>0)if(n.requiresThinkingAsText)t.content=[{type:`text`,text:c.map(e=>s(e.thinking)).join(`
|
|
3
|
-
|
|
4
|
-
`)},...a];else{o.length>0&&(t.content=o);let n=c[0].thinkingSignature;e.provider===`opencode-go`&&n===`reasoning`&&(n=`reasoning_content`),n&&n.length>0&&(t[n]=c.map(e=>e.thinking).join(`
|
|
5
|
-
`))}else o.length>0&&(t.content=o);let u=l.content.filter(M);if(u.length>0){t.tool_calls=u.map(e=>{let t=r?.grammarToolInputProperties?.get(e.name);return t===void 0?{id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments)}}:{id:e.id,type:`custom`,custom:{name:e.name,input:s(f(e.name,e.arguments,t))}}});let e=u.filter(e=>e.thoughtSignature).map(e=>{try{return JSON.parse(e.thoughtSignature)}catch{return null}}).filter(Boolean);e.length>0&&(t.reasoning_details=e)}n.requiresReasoningContentOnAssistantMessages&&e.reasoning&&t.reasoning_content===void 0&&(t.reasoning_content=``);let d=t.content;if(!(d!=null&&d.length>0)&&!t.tool_calls)continue;i.push(t)}else if(l.role===`toolResult`){let r=[],l=new Set,u=a;for(;u<o.length&&o[u].role===`toolResult`;u++){let t=o[u],a=t.content.filter(A).map(e=>e.text).join(`
|
|
6
|
-
`),c=t.content.some(e=>e.type===`image`),d={role:`tool`,content:s(a.length>0?a:c?`(see attached image)`:`(no tool output)`),tool_call_id:t.toolCallId};if(n.requiresToolResultName&&t.toolName&&(d.name=t.toolName),i.push(d),n.deferredToolsMode===`kimi`)for(let e of t.addedToolNames??[])l.add(e);if(c&&e.input.includes(`image`))for(let e of t.content)N(e)&&r.push({type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}})}if(a=u-1,r.length>0?(n.requiresAssistantAfterToolResult&&i.push({role:`assistant`,content:`I have processed the tool results.`}),i.push({role:`user`,content:[{type:`text`,text:`Attached image(s) from tool result:`},...r]}),c=`user`):c=`toolResult`,l.size>0){let e=k(t.tools,l);if(e.length>0){let t={role:`system`,tools:Z(e,n)};i.push(t)}}continue}c=l.role}return i}function Z(e,t){return e.map(e=>{let n=l(e,t.supportsOpenAIGrammarTools);if(n)return{type:`custom`,custom:{name:e.name,description:e.description,format:{type:`grammar`,grammar:{syntax:n.format,definition:n.definition}}}};let r=u(e,t.supportsStrictMode!==!1);return{type:`function`,function:{name:e.name,description:e.description,parameters:_(e,r),...t.supportsStrictMode!==!1&&{strict:r??!1}}}})}function Q(e,t){let r=e.prompt_tokens||0,i=e.prompt_tokens_details?.cached_tokens??e.prompt_cache_hit_tokens??0,a=e.prompt_tokens_details?.cache_write_tokens||0,o=Math.max(0,r-i-a),s=e.completion_tokens||0,c={input:o,output:s,cacheRead:i,cacheWrite:a,reasoning:e.completion_tokens_details?.reasoning_tokens||0,totalTokens:o+s+i+a,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};return n(t,c),c}function ee(e){if(e===null)return{stopReason:`stop`};switch(e){case`stop`:case`end`:return{stopReason:`stop`};case`length`:return{stopReason:`length`};case`function_call`:case`tool_calls`:return{stopReason:`toolUse`};case`content_filter`:return{stopReason:`error`,errorMessage:`Provider finish_reason: content_filter`};case`network_error`:return{stopReason:`error`,errorMessage:`Provider finish_reason: network_error`};default:return{stopReason:`error`,errorMessage:`Provider finish_reason: ${e}`}}}function te(e){let t=e.provider,n=e.baseUrl,r=t===`zai`||t===`zai-coding-cn`||n.includes(`api.z.ai`)||n.includes(`open.bigmodel.cn`),i=t===`together`||n.includes(`api.together.ai`)||n.includes(`api.together.xyz`),a=t===`moonshotai`||t===`moonshotai-cn`||n.includes(`api.moonshot.`),o=t===`openrouter`||n.includes(`openrouter.ai`),s=t===`cloudflare-workers-ai`||n.includes(`api.cloudflare.com`),c=t===`cloudflare-ai-gateway`||n.includes(`gateway.ai.cloudflare.com`),l=t===`nvidia`||n.includes(`integrate.api.nvidia.com`),u=t===`ant-ling`||n.includes(`api.ant-ling.com`),d=t===`deepseek`||n.toLowerCase().includes(`deepseek.com`),f=l||t===`cerebras`||n.includes(`cerebras.ai`)||t===`xai`||n.includes(`api.x.ai`)||i||n.includes(`chutes.ai`)||d||r||a||t===`opencode`||n.includes(`opencode.ai`)||s||c||u,p=n.includes(`chutes.ai`)||d||a||c||i||l||u||r,m=t===`xai`||n.includes(`api.x.ai`),h=o&&(e.id.startsWith(`anthropic/`)||e.id.startsWith(`openai/`)),g=t===`openrouter`&&e.id.startsWith(`anthropic/`)?`anthropic`:void 0;return{supportsStore:!f,supportsDeveloperRole:h||!f&&!o,supportsReasoningEffort:!m&&!r&&!a&&!i&&!c&&!l&&!u,supportsUsageInStreaming:!0,supportsFinishReason:!0,maxTokensField:p?`max_tokens`:`max_completion_tokens`,requiresToolResultName:!1,requiresAssistantAfterToolResult:!1,requiresThinkingAsText:!1,requiresReasoningContentOnAssistantMessages:d,thinkingFormat:d?`deepseek`:r?`zai`:i?`together`:u?`ant-ling`:o?`openrouter`:`openai`,openRouterRouting:{},vercelGatewayRouting:{},chatTemplateKwargs:{},chatTemplateArgs:{},zaiToolStream:!1,supportsThinkingTokenBudget:!1,supportsStrictMode:!a&&!i&&!c&&!l,supportsOpenAIGrammarTools:!1,cacheControlFormat:g,sendSessionAffinityHeaders:!1,deferredToolsMode:void 0,sessionAffinityFormat:o?`openrouter`:`openai`,supportsLongCacheRetention:!(i||s||c||l||u)}}function $(e){let t=te(e);return e.compat?{supportsStore:e.compat.supportsStore??t.supportsStore,supportsDeveloperRole:e.compat.supportsDeveloperRole??t.supportsDeveloperRole,supportsReasoningEffort:e.compat.supportsReasoningEffort??t.supportsReasoningEffort,supportsUsageInStreaming:e.compat.supportsUsageInStreaming??t.supportsUsageInStreaming,supportsFinishReason:e.compat.supportsFinishReason??t.supportsFinishReason,maxTokensField:e.compat.maxTokensField??t.maxTokensField,requiresToolResultName:e.compat.requiresToolResultName??t.requiresToolResultName,requiresAssistantAfterToolResult:e.compat.requiresAssistantAfterToolResult??t.requiresAssistantAfterToolResult,requiresThinkingAsText:e.compat.requiresThinkingAsText??t.requiresThinkingAsText,requiresReasoningContentOnAssistantMessages:e.compat.requiresReasoningContentOnAssistantMessages??t.requiresReasoningContentOnAssistantMessages,thinkingFormat:e.compat.thinkingFormat??t.thinkingFormat,openRouterRouting:e.compat.openRouterRouting??{},vercelGatewayRouting:e.compat.vercelGatewayRouting??t.vercelGatewayRouting,chatTemplateKwargs:e.compat.chatTemplateKwargs??t.chatTemplateKwargs,chatTemplateArgs:e.compat.chatTemplateArgs??t.chatTemplateArgs,zaiToolStream:e.compat.zaiToolStream??t.zaiToolStream,supportsThinkingTokenBudget:e.compat.supportsThinkingTokenBudget??t.supportsThinkingTokenBudget,supportsStrictMode:e.compat.supportsStrictMode??t.supportsStrictMode,supportsOpenAIGrammarTools:e.compat.supportsOpenAIGrammarTools??t.supportsOpenAIGrammarTools,cacheControlFormat:e.compat.cacheControlFormat??t.cacheControlFormat,sendSessionAffinityHeaders:e.compat.sendSessionAffinityHeaders??t.sendSessionAffinityHeaders,deferredToolsMode:e.compat.deferredToolsMode??t.deferredToolsMode,sessionAffinityFormat:e.compat.sessionAffinityFormat??t.sessionAffinityFormat,supportsLongCacheRetention:e.compat.supportsLongCacheRetention??t.supportsLongCacheRetention}:t}export{X as convertMessages,I as stream,L as streamSimple};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{a as e}from"./diagnostics-B0j2bfEp.mjs";import{n as t}from"./models-BBd5zwn6.mjs";import"./json-parse-BzRcyI3e.mjs";import{t as n}from"./provider-env-CL5ShLlj.mjs";import{t as r}from"./deferred-tools-D8j2Ra6f.mjs";import{t as i}from"./headers-BvGum5dc.mjs";import{t as a}from"./provider-retry-wOYAq0sa.mjs";import{c as o,i as s}from"./transform-messages-BHnJzowk.mjs";import{n as c,t as l}from"./github-copilot-headers-DCj7hJoC.mjs";import{n as u}from"./openai-CbFQ5q5I.mjs";import{n as d,t as f}from"./error-body-BBlqjbe7.mjs";import{t as p}from"./openai-prompt-cache-tVHrB8oW.mjs";import{n as m,r as h,t as g}from"./openai-responses-shared-DKseiGAg.mjs";const _=new Set([`openai`,`openai-codex`,`opencode`]);function v(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function y(e,t,n){if(t)return t;if(v(n,`authorization`)||v(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function b(e){return e.provider===`openrouter`||e.baseUrl.includes(`openrouter.ai`)?`openrouter`:`openai`}function x(e,t){return e||(n(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}function S(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,sessionAffinityFormat:e.compat?.sessionAffinityFormat??b(e),supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0,supportsStrictMode:e.compat?.supportsStrictMode??!1,supportsOpenAIGrammarTools:e.compat?.supportsOpenAIGrammarTools??!1,supportsAdditionalTools:e.compat?.supportsAdditionalTools??!1,supportsToolSearch:e.compat?.supportsToolSearch??!1,supportsExplicitPromptCacheMode:e.compat?.supportsExplicitPromptCacheMode??!1}}function C(e,t){return t===`long`&&e.supportsLongCacheRetention?`24h`:void 0}function w(e){return f(d(e),`OpenAI API error`)}const T=(t,n,r)=>{let s=new e;return(async()=>{let e={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let c=y(t.provider,r?.apiKey,r?.headers),l=x(r?.cacheRetention,r?.env)===`none`?void 0:r?.sessionId,u=S(t),d=o(n.tools,u.supportsOpenAIGrammarTools),f=D(t,n,c,r?.headers,r?.fetch,l),p=O(t,n,r,u,d),m=await r?.onPayload?.(p,t);m!==void 0&&(p=m);let g={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:0},{data:_,response:v}=await a(()=>f.responses.create(p,g).withResponse(),{maxRetries:r?.maxRetries,maxRetryDelayMs:r?.maxRetryDelayMs,signal:r?.signal});if(await r?.onResponse?.({status:v.status,headers:i(v.headers)},t),s.push({type:`start`,partial:e}),await h(_,e,s,t,{serviceTier:r?.serviceTier,grammarToolInputProperties:d,applyServiceTierPricing:(e,n)=>A(e,n,t)}),r?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`pending`)throw Error(`OpenAI Responses stream ended without a stop reason`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(e.errorMessage||`An unknown error occurred`);s.push({type:`done`,reason:e.stopReason,message:e}),s.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialJson,delete t.customInput;e.stopReason=r?.signal?.aborted?`aborted`:`error`,e.errorMessage=w(t),s.push({type:`error`,reason:e.stopReason,error:e}),s.end()}})(),s},E=(e,n,r)=>{y(e.provider,r?.apiKey,r?.headers);let i=s(e,n,r,r?.apiKey),a=r?.reasoning?t(e,r.reasoning):void 0,o=a===`off`?void 0:a;return T(e,n,{...i,reasoningEffort:o})};function D(e,t,n,r,i,a){let o=S(e),s={...e.headers};if(e.provider===`github-copilot`){let e=c(t.messages),n=l({messages:t.messages,hasImages:e});Object.assign(s,n)}return a&&(o.sessionAffinityFormat===`openrouter`?s[`x-session-id`]=a:(o.sessionAffinityFormat===`openai`&&(s.session_id=a),s[`x-client-request-id`]=a)),r&&Object.assign(s,r),new u({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:i,defaultHeaders:s})}function O(e,t,n,i=S(e),a=o(t.tools,i.supportsOpenAIGrammarTools)){let s=i.supportsAdditionalTools?`additional-tools`:i.supportsToolSearch?`tool-search`:void 0,c=r(t,s!==void 0),l=g(e,t,_,{grammarToolInputProperties:a,deferredTools:c.deferred,deferredToolsMode:s,toolOptions:{supportsStrictMode:i.supportsStrictMode,supportsOpenAIGrammarTools:i.supportsOpenAIGrammarTools}}),u=x(n?.cacheRetention,n?.env),d=u===`none`&&i.supportsExplicitPromptCacheMode,f={model:e.id,input:l,stream:!0,prompt_cache_key:u===`none`?void 0:p(n?.sessionId),prompt_cache_retention:C(i,u),prompt_cache_options:d?{mode:`explicit`}:void 0,store:!1};return n?.maxTokens&&(f.max_output_tokens=Math.max(n.maxTokens,16)),n?.temperature!==void 0&&(f.temperature=n?.temperature),n?.serviceTier!==void 0&&(f.service_tier=n.serviceTier),c.immediate.length>0&&(f.tools=m(c.immediate,{supportsStrictMode:i.supportsStrictMode,supportsOpenAIGrammarTools:i.supportsOpenAIGrammarTools})),n?.toolChoice!==void 0&&(f.tool_choice=n.toolChoice),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(f.reasoning={effort:n?.reasoningEffort?e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:`medium`,summary:n?.reasoningSummary||`auto`},f.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&e.thinkingLevelMap?.off!==null&&(f.reasoning={effort:e.thinkingLevelMap?.off??`none`}),e.provider===`xai`&&(f.include=[`reasoning.encrypted_content`])),n?.samplingParams&&Object.assign(f,n.samplingParams),f}function k(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function A(e,t,n){let r=k(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{T as stream,E as streamSimple};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
var e=class extends Error{};const t=[`$ref`,`$defs`,`definitions`,`allOf`,`oneOf`,`patternProperties`,`dependentSchemas`,`dependencies`,`unevaluatedProperties`,`propertyNames`,`contains`,`prefixItems`,`not`,`if`,`then`,`else`];function n(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function r(e){if(!n(e))return!1;let t=typeof e.type==`string`?[e.type]:Array.isArray(e.type)?e.type:[];return t.includes(`object`)||t.includes(`array`)||e.properties!==void 0||e.items!==void 0}function i(e){return n(e)?e.type===`null`||Array.isArray(e.type)&&e.type.includes(`null`)||e.const===null||Array.isArray(e.enum)&&e.enum.includes(null)?!0:Array.isArray(e.anyOf)&&e.anyOf.some(e=>i(e)):!1}function a(o){if(!n(o))throw new e(`boolean schemas are unsupported`);for(let n of t)if(o[n]!==void 0)throw new e(`${n} schemas are unsupported`);if(o.anyOf!==void 0){if(!Array.isArray(o.anyOf)||o.anyOf.length===0)throw new e(`anyOf must contain at least one schema`);for(let t of o.anyOf){if(r(t))throw new e(`object and array unions are unsupported`);a(t)}}if(o.items!==void 0){if(Array.isArray(o.items))throw new e(`tuple schemas are unsupported`);a(o.items)}let s=o.type===`object`;if(o.properties!==void 0&&!s)throw new e(`properties require type object`);if(!s)return;if(o.additionalProperties!==void 0&&o.additionalProperties!==!1)throw new e(`schema-valued or true additionalProperties is unsupported`);if(o.properties!==void 0&&!n(o.properties))throw new e(`object properties must be a schema map`);if(o.required!==void 0&&(!Array.isArray(o.required)||o.required.some(e=>typeof e!=`string`)))throw new e(`object required must be a string array`);let c=o.properties??{},l=Object.keys(c),u=new Set(Array.isArray(o.required)?o.required:[]);if([...u].some(e=>!l.includes(e)))throw new e(`required contains an unknown property`);for(let[e,t]of Object.entries(c))a(t),!u.has(e)&&!i(t)&&(c[e]={anyOf:[t,{type:`null`}]});o.required=l,o.additionalProperties=!1}function o(t){let r=structuredClone(t);if(!n(r)||(a(r),r.type!==`object`))throw new e(`root schema must have type object`);return r}function s(e,t){return t===!0?o(e.parameters):e.parameters}function c(e,t,n){let r=t[n];if(typeof r!=`string`)throw Error(`Grammar tool call "${e}" requires argument "${n}" to be a string.`);return r}function l(e,t,n,r){if(e.closed){if(r&&n===e.input)return;throw Error(`grammar tool input for property "${t}" changed after it was closed`)}if(!n.startsWith(e.input))throw Error(`grammar tool input for property "${t}" changed non-monotonically`);let i=n.slice(e.input.length);if(!r&&i.length===0)return;let a=``;return e.started||=(a+=`{${JSON.stringify(t)}:"`,!0),a+=JSON.stringify(i).slice(1,-1),e.input=n,r&&(a+=`"}`,e.closed=!0),a}function u(e){let t=e.parameters;if(t.type!==`object`)throw Error(`grammar constrained sampling requires an object parameter schema`);if(!Array.isArray(t.required)||t.required.length!==1||typeof t.required[0]!=`string`)throw Error(`grammar constrained sampling requires exactly one required string property`);let n=t.required[0];if(!t.properties?.[n])throw Error(`grammar constrained sampling requires a properties entry for ${n}`);if(t.properties[n]?.type!==`string`)throw Error(`grammar constrained sampling property ${n} must have type string`);return n}function d(t,n){let r=t.constrainedSampling;if(!(!r||r.type!==`json_schema`)){if(n)try{return o(t.parameters),!0}catch(n){if(!(n instanceof e))throw n;if(r.strict!==`require`)return;throw Error(`Tool "${t.name}" requires JSON-schema constrained sampling, but ${n.message}.`)}if(r.strict===`require`)throw Error(`Tool "${t.name}" requires JSON-schema constrained sampling, but strict tools are unsupported.`)}}function f(e,t){let n=e.constrainedSampling;if(!n||n.type!==`grammar`||!t)return;let r=n.variants.openai_lark,i=n.variants.openai_regex,a=typeof r==`string`&&r.trim().length>0,o=typeof i==`string`&&i.trim().length>0;if(!a&&!o)throw Error(`Tool "${e.name}" cannot use grammar constrained sampling: no supported grammar variant was provided.`);try{return{format:a?`lark`:`regex`,definition:a?r:i,inputProperty:u(e)}}catch(t){let n=t instanceof Error?t.message:String(t);throw Error(`Tool "${e.name}" cannot use grammar constrained sampling: ${n}.`)}}function p(e,t){let n=new Map;for(let r of e??[]){let e=f(r,t);e&&n.set(r.name,e.inputProperty)}return n}function m(e){return e.totalTokens||e.input+e.output+e.cacheRead+e.cacheWrite}function h(e){try{return JSON.stringify(e)??`undefined`}catch{return`[unserializable]`}}function g(e){if(typeof e==`string`)return e.length;let t=0;for(let n of e)t+=n.type===`text`?n.text.length:4800;return t}function _(e){return Math.ceil(e.length/4)}function v(e){return Math.ceil(g(e)/4)}function y(e){let t=0;if(e.role===`user`||e.role===`toolResult`)return v(e.content);for(let n of e.content)n.type===`text`?t+=n.text.length:n.type===`thinking`?t+=n.thinking.length:t+=n.name.length+h(n.arguments).length;return Math.ceil(t/4)}function b(e){let t=-1/0,n;for(let r=0;r<e.length;r++){let i=e[r];if(i.role===`assistant`){let e=i;e.timestamp>=t&&e.stopReason!==`aborted`&&e.stopReason!==`error`&&m(e.usage)>0&&(n={usage:e.usage,index:r})}t=Math.max(t,i.timestamp)}return n}function x(e){let t=b(e);if(t){let n=m(t.usage),r=0;for(let n=t.index+1;n<e.length;n++)r+=y(e[n]);return{tokens:n+r,usageTokens:n,trailingTokens:r,lastUsageIndex:t.index}}let n=0;for(let t of e)n+=y(t);return{tokens:n,usageTokens:0,trailingTokens:n,lastUsageIndex:null}}function S(e){return!e||e.length===0?0:_(h(e))}function C(e){return Array.isArray(e)}function w(e){if(C(e))return x(e);let t=x(e.messages);if(t.lastUsageIndex!==null){let n=new Set(e.messages.slice(t.lastUsageIndex+1).filter(e=>e.role===`toolResult`).flatMap(e=>e.addedToolNames??[])),r=S(e.tools?.filter(e=>n.has(e.name)));return{tokens:t.tokens+r,usageTokens:t.usageTokens,trailingTokens:t.trailingTokens+r,lastUsageIndex:t.lastUsageIndex}}let n=(e.systemPrompt?_(e.systemPrompt):0)+S(e.tools);return{tokens:t.tokens+n,usageTokens:t.usageTokens,trailingTokens:t.trailingTokens+n,lastUsageIndex:t.lastUsageIndex}}function T(e,t,n){if(e.contextWindow<=0)return Math.max(1,n);let r=e.contextWindow-w(t).tokens-4096;return Math.min(n,Math.max(1,r))}function E(e,t,n,r){let i=e.samplingParams||n?.samplingParams?{...e.samplingParams,...n?.samplingParams}:void 0;return{temperature:n?.temperature,samplingParams:i,maxTokens:T(e,t,n?.maxTokens??e.maxTokens),signal:n?.signal,telemetryContext:n?.telemetryContext,apiKey:r||n?.apiKey,fetch:n?.fetch,transport:n?.transport,cacheRetention:n?.cacheRetention,sessionId:n?.sessionId,headers:n?.headers,onPayload:n?.onPayload,onResponse:n?.onResponse,timeoutMs:n?.timeoutMs,websocketConnectTimeoutMs:n?.websocketConnectTimeoutMs,maxRetries:n?.maxRetries,maxRetryDelayMs:n?.maxRetryDelayMs,metadata:n?.metadata,env:n?.env}}const D=1024;function O(e){return e===`xhigh`||e===`max`?`high`:e}function k(e,t,n,r){let i={minimal:1024,low:2048,medium:8192,high:16384,...r}[O(n)],a=e===void 0?t:Math.min(e+i,t);return a<=i&&(i=Math.max(0,a-D)),{maxTokens:a,thinkingBudget:i}}function A(e,t){let n=[],r=!1;for(let i of e){if(i.type===`image`){r||n.push({type:`text`,text:t}),r=!0;continue}n.push(i),r=i.text===t}return n}function j(e,t){return t.input.includes(`image`)?e:e.map(e=>e.role===`user`&&Array.isArray(e.content)?{...e,content:A(e.content,`(image omitted: model does not support images)`)}:e.role===`toolResult`?{...e,content:A(e.content,`(tool image omitted: model does not support images)`)}:e)}function M(e,t,n){let r=new Map,i=j(e.map(e=>e.content==null?{...e,content:[]}:e),t).map(e=>{if(e.role===`user`)return e;if(e.role===`toolResult`){let t=r.get(e.toolCallId);return t&&t!==e.toolCallId?{...e,toolCallId:t}:e}if(e.role===`assistant`){let i=e,a=i.provider===t.provider&&i.api===t.api&&i.model===t.id,o=i.content.flatMap(e=>{if(e.type===`thinking`)return e.redacted?a?e:[]:a&&e.thinkingSignature?e:!e.thinking||e.thinking.trim()===``?[]:a?e:{type:`text`,text:e.thinking};if(e.type===`text`)return a?e:{type:`text`,text:e.text};if(e.type===`toolCall`){let o=e,s=o;if(!a&&o.thoughtSignature&&(s={...o},delete s.thoughtSignature),!a&&n){let e=n(o.id,t,i);e!==o.id&&(r.set(o.id,e),s={...s,id:e})}return s}return e});return{...i,content:o}}return e}),a=[],o=[],s=new Set,c=()=>{if(o.length>0){for(let e of o)s.has(e.id)||a.push({role:`toolResult`,toolCallId:e.id,toolName:e.name,content:[{type:`text`,text:`No result provided`}],isError:!0,timestamp:Date.now()});o=[],s=new Set}};for(let e=0;e<i.length;e++){let t=i[e];if(t.role===`assistant`){c();let e=t;if(e.stopReason===`error`||e.stopReason===`aborted`)continue;let n=e.content.filter(e=>e.type===`toolCall`);n.length>0&&(o=n,s=new Set),a.push(t)}else t.role===`toolResult`?(s.add(t.toolCallId),a.push(t)):(t.role===`user`&&c(),a.push(t))}return c(),a}export{T as a,p as c,f as d,d as f,E as i,c as l,D as n,O as o,k as r,l as s,M as t,s as u};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/{module-asyncify-2EFITU5U-U7fqmMTF.mjs → module-asyncify-2EFITU5U-B54Mkt6K.mjs}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|