sliccy 1.44.0 → 1.45.0

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.
Files changed (30) hide show
  1. package/dist/node-server/index.js +3 -7
  2. package/dist/ui/assets/{anthropic-F10TpEHu.js → anthropic-vhB_nRev.js} +1 -1
  3. package/dist/ui/assets/{azure-openai-responses-spnIDGtA.js → azure-openai-responses-B2DUUrse.js} +1 -1
  4. package/dist/ui/assets/{cdp-BFtCPK7h.js → cdp-DhV8bm4P.js} +2 -2
  5. package/dist/ui/assets/{google-Br7SY0_R.js → google-0tZA5otZ.js} +1 -1
  6. package/dist/ui/assets/{google-gemini-cli-Bg1hsUqz.js → google-gemini-cli-B-X2ct3h.js} +1 -1
  7. package/dist/ui/assets/{google-shared-CvDhOvuf.js → google-shared-0epWpxpm.js} +1 -1
  8. package/dist/ui/assets/{google-vertex-L-EMtKaW.js → google-vertex-B_zga4mM.js} +1 -1
  9. package/dist/ui/assets/{index-CBlMkpWh.js → index-GgBfVMPy.js} +146 -21
  10. package/dist/ui/assets/lick-manager-Cm93KfGK.js +1 -0
  11. package/dist/ui/assets/{mistral-sevaivIe.js → mistral-DAKZEyAr.js} +1 -1
  12. package/dist/ui/assets/{openai-codex-responses-4PBcgIt-.js → openai-codex-responses-YvLLUAp0.js} +1 -1
  13. package/dist/ui/assets/{openai-completions-BOqdTdZm.js → openai-completions-BoBHDCmt.js} +2 -2
  14. package/dist/ui/assets/{openai-responses-CFigFTCk.js → openai-responses-SsUWAo5b.js} +1 -1
  15. package/dist/ui/assets/{openai-responses-shared-Wbu69Kec.js → openai-responses-shared-mHVmez9H.js} +2 -2
  16. package/dist/ui/assets/{provider-settings-C8bvxTmB.js → provider-settings-DNI-f2dL.js} +16 -16
  17. package/dist/ui/assets/provider-settings-YOjGG5m2.js +1 -0
  18. package/dist/ui/assets/providers-BkGRqgnv.js +1 -0
  19. package/dist/ui/assets/shell-o0ztF_0C.js +1 -0
  20. package/dist/ui/assets/simple-options-FPdEz6rB.js +1 -0
  21. package/dist/ui/assets/sprinkle-renderer-Dlqdvfe5.js +1 -0
  22. package/dist/ui/index.html +4 -4
  23. package/dist/ui/packages/webapp/index.html +4 -4
  24. package/package.json +1 -1
  25. package/dist/ui/assets/lick-manager-B00T6wOE.js +0 -1
  26. package/dist/ui/assets/provider-settings-xhEc8v0d.js +0 -1
  27. package/dist/ui/assets/providers-Bqkqc_BZ.js +0 -1
  28. package/dist/ui/assets/shell-BA-emQDH.js +0 -1
  29. package/dist/ui/assets/simple-options-BIewKazV.js +0 -1
  30. package/dist/ui/assets/sprinkle-renderer-Dum21_ak.js +0 -1
@@ -1,4 +1,4 @@
1
- import{t as e}from"./preload-helper-ca-nBW7U.js";import{t}from"./env-api-keys-DlVZ9FrG.js";import{a as n,d as r,n as i,r as a}from"./simple-options-BIewKazV.js";import{n as o,r as s,t as c}from"./openai-responses-shared-Wbu69Kec.js";var l=null;typeof process<`u`&&(process.versions?.node||process.versions?.bun)&&(t=>e(()=>import(t),[]))(`node:os`).then(e=>{l=e});var u=`https://chatgpt.com/backend-api`,d=`https://api.openai.com/auth`,f=3,p=1e3,m=new Set([`openai`,`openai-codex`,`opencode`]),h=new Set([`completed`,`incomplete`,`failed`,`cancelled`,`queued`,`in_progress`]);function g(e,t){return e===429||e===500||e===502||e===503||e===504?!0:/rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(t)}function _(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`))})})}var v=(e,r,i)=>{let a=new n;return(async()=>{let n={role:`assistant`,content:[],api:`openai-codex-responses`,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:`stop`,timestamp:Date.now()};try{let o=i?.apiKey||t(e.provider)||``;if(!o)throw Error(`No API key for provider: ${e.provider}`);let s=G(o),c=b(e,r,i),l=await i?.onPayload?.(c,e);l!==void 0&&(c=l);let u=i?.sessionId||K(),d=J(e.headers,i?.headers,s,o,i?.sessionId),m=Y(e.headers,i?.headers,s,o,u),h=JSON.stringify(c),v=i?.transport||`sse`;if(v!==`sse`){let t=!1;try{if(await U(C(e.baseUrl),c,m,n,a,e,()=>{t=!0},i),i?.signal?.aborted)throw Error(`Request was aborted`);a.push({type:`done`,reason:n.stopReason,message:n}),a.end();return}catch(e){if(v===`websocket`||t)throw e}}let y,x;for(let t=0;t<=f;t++){if(i?.signal?.aborted)throw Error(`Request was aborted`);try{if(y=await fetch(S(e.baseUrl),{method:`POST`,headers:d,body:h,signal:i?.signal}),y.ok)break;let n=await y.text();if(t<f&&g(y.status,n)){await _(p*2**t,i?.signal);continue}let r=await W(new Response(n,{status:y.status,statusText:y.statusText}));throw Error(r.friendlyMessage||r.message)}catch(e){if(e instanceof Error&&(e.name===`AbortError`||e.message===`Request was aborted`))throw Error(`Request was aborted`);if(x=e instanceof Error?e:Error(String(e)),t<f&&!x.message.includes(`usage limit`)){await _(p*2**t,i?.signal);continue}throw x}}if(!y?.ok)throw x??Error(`Failed after retries`);if(!y.body)throw Error(`No response body`);if(a.push({type:`start`,partial:n}),await w(y,n,a,e),i?.signal?.aborted)throw Error(`Request was aborted`);a.push({type:`done`,reason:n.stopReason,message:n}),a.end()}catch(e){n.stopReason=i?.signal?.aborted?`aborted`:`error`,n.errorMessage=e instanceof Error?e.message:String(e),a.push({type:`error`,reason:n.stopReason,error:n}),a.end()}})(),a},y=(e,n,o)=>{let s=o?.apiKey||t(e.provider);if(!s)throw Error(`No API key for provider: ${e.provider}`);let c=i(e,o,s),l=r(e)?o?.reasoning:a(o?.reasoning);return v(e,n,{...c,reasoningEffort:l})};function b(e,t,n){let r=c(e,t,m,{includeSystemPrompt:!1}),i={model:e.id,store:!1,stream:!0,instructions:t.systemPrompt,input:r,text:{verbosity:n?.textVerbosity||`medium`},include:[`reasoning.encrypted_content`],prompt_cache_key:n?.sessionId,tool_choice:`auto`,parallel_tool_calls:!0};return n?.temperature!==void 0&&(i.temperature=n.temperature),t.tools&&(i.tools=o(t.tools,{strict:null})),n?.reasoningEffort!==void 0&&(i.reasoning={effort:x(e.id,n.reasoningEffort),summary:n.reasoningSummary??`auto`}),i}function x(e,t){let n=e.includes(`/`)?e.split(`/`).pop():e;return(n.startsWith(`gpt-5.2`)||n.startsWith(`gpt-5.3`)||n.startsWith(`gpt-5.4`))&&t===`minimal`?`low`:n===`gpt-5.1`&&t===`xhigh`?`high`:n===`gpt-5.1-codex-mini`?t===`high`||t===`xhigh`?`high`:`medium`:t}function S(e){let t=(e&&e.trim().length>0?e:u).replace(/\/+$/,``);return t.endsWith(`/codex/responses`)?t:t.endsWith(`/codex`)?`${t}/responses`:`${t}/codex/responses`}function C(e){let t=new URL(S(e));return t.protocol===`https:`&&(t.protocol=`wss:`),t.protocol===`http:`&&(t.protocol=`ws:`),t.toString()}async function w(e,t,n,r){await s(T(D(e)),t,n,r)}async function*T(e){for await(let t of e){let e=typeof t.type==`string`?t.type:void 0;if(e){if(e===`error`){let e=t.code||``,n=t.message||``;throw Error(`Codex error: ${n||e||JSON.stringify(t)}`)}if(e===`response.failed`){let e=t.response?.error?.message;throw Error(e||`Codex response failed`)}if(e===`response.done`||e===`response.completed`||e===`response.incomplete`){let e=t.response,n=e&&{...e,status:E(e.status)};yield{...t,type:`response.completed`,response:n};return}yield t}}}function E(e){if(typeof e==`string`)return h.has(e)?e:void 0}async function*D(e){if(!e.body)return;let t=e.body.getReader(),n=new TextDecoder,r=``;try{for(;;){let{done:e,value:i}=await t.read();if(e)break;r+=n.decode(i,{stream:!0});let a=r.indexOf(`
1
+ import{t as e}from"./preload-helper-ca-nBW7U.js";import{t}from"./env-api-keys-DlVZ9FrG.js";import{a as n,d as r,n as i,r as a}from"./simple-options-FPdEz6rB.js";import{n as o,r as s,t as c}from"./openai-responses-shared-mHVmez9H.js";var l=null;typeof process<`u`&&(process.versions?.node||process.versions?.bun)&&(t=>e(()=>import(t),[]))(`node:os`).then(e=>{l=e});var u=`https://chatgpt.com/backend-api`,d=`https://api.openai.com/auth`,f=3,p=1e3,m=new Set([`openai`,`openai-codex`,`opencode`]),h=new Set([`completed`,`incomplete`,`failed`,`cancelled`,`queued`,`in_progress`]);function g(e,t){return e===429||e===500||e===502||e===503||e===504?!0:/rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(t)}function _(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`))})})}var v=(e,r,i)=>{let a=new n;return(async()=>{let n={role:`assistant`,content:[],api:`openai-codex-responses`,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:`stop`,timestamp:Date.now()};try{let o=i?.apiKey||t(e.provider)||``;if(!o)throw Error(`No API key for provider: ${e.provider}`);let s=G(o),c=b(e,r,i),l=await i?.onPayload?.(c,e);l!==void 0&&(c=l);let u=i?.sessionId||K(),d=J(e.headers,i?.headers,s,o,i?.sessionId),m=Y(e.headers,i?.headers,s,o,u),h=JSON.stringify(c),v=i?.transport||`sse`;if(v!==`sse`){let t=!1;try{if(await U(C(e.baseUrl),c,m,n,a,e,()=>{t=!0},i),i?.signal?.aborted)throw Error(`Request was aborted`);a.push({type:`done`,reason:n.stopReason,message:n}),a.end();return}catch(e){if(v===`websocket`||t)throw e}}let y,x;for(let t=0;t<=f;t++){if(i?.signal?.aborted)throw Error(`Request was aborted`);try{if(y=await fetch(S(e.baseUrl),{method:`POST`,headers:d,body:h,signal:i?.signal}),y.ok)break;let n=await y.text();if(t<f&&g(y.status,n)){await _(p*2**t,i?.signal);continue}let r=await W(new Response(n,{status:y.status,statusText:y.statusText}));throw Error(r.friendlyMessage||r.message)}catch(e){if(e instanceof Error&&(e.name===`AbortError`||e.message===`Request was aborted`))throw Error(`Request was aborted`);if(x=e instanceof Error?e:Error(String(e)),t<f&&!x.message.includes(`usage limit`)){await _(p*2**t,i?.signal);continue}throw x}}if(!y?.ok)throw x??Error(`Failed after retries`);if(!y.body)throw Error(`No response body`);if(a.push({type:`start`,partial:n}),await w(y,n,a,e),i?.signal?.aborted)throw Error(`Request was aborted`);a.push({type:`done`,reason:n.stopReason,message:n}),a.end()}catch(e){n.stopReason=i?.signal?.aborted?`aborted`:`error`,n.errorMessage=e instanceof Error?e.message:String(e),a.push({type:`error`,reason:n.stopReason,error:n}),a.end()}})(),a},y=(e,n,o)=>{let s=o?.apiKey||t(e.provider);if(!s)throw Error(`No API key for provider: ${e.provider}`);let c=i(e,o,s),l=r(e)?o?.reasoning:a(o?.reasoning);return v(e,n,{...c,reasoningEffort:l})};function b(e,t,n){let r=c(e,t,m,{includeSystemPrompt:!1}),i={model:e.id,store:!1,stream:!0,instructions:t.systemPrompt,input:r,text:{verbosity:n?.textVerbosity||`medium`},include:[`reasoning.encrypted_content`],prompt_cache_key:n?.sessionId,tool_choice:`auto`,parallel_tool_calls:!0};return n?.temperature!==void 0&&(i.temperature=n.temperature),t.tools&&(i.tools=o(t.tools,{strict:null})),n?.reasoningEffort!==void 0&&(i.reasoning={effort:x(e.id,n.reasoningEffort),summary:n.reasoningSummary??`auto`}),i}function x(e,t){let n=e.includes(`/`)?e.split(`/`).pop():e;return(n.startsWith(`gpt-5.2`)||n.startsWith(`gpt-5.3`)||n.startsWith(`gpt-5.4`))&&t===`minimal`?`low`:n===`gpt-5.1`&&t===`xhigh`?`high`:n===`gpt-5.1-codex-mini`?t===`high`||t===`xhigh`?`high`:`medium`:t}function S(e){let t=(e&&e.trim().length>0?e:u).replace(/\/+$/,``);return t.endsWith(`/codex/responses`)?t:t.endsWith(`/codex`)?`${t}/responses`:`${t}/codex/responses`}function C(e){let t=new URL(S(e));return t.protocol===`https:`&&(t.protocol=`wss:`),t.protocol===`http:`&&(t.protocol=`ws:`),t.toString()}async function w(e,t,n,r){await s(T(D(e)),t,n,r)}async function*T(e){for await(let t of e){let e=typeof t.type==`string`?t.type:void 0;if(e){if(e===`error`){let e=t.code||``,n=t.message||``;throw Error(`Codex error: ${n||e||JSON.stringify(t)}`)}if(e===`response.failed`){let e=t.response?.error?.message;throw Error(e||`Codex response failed`)}if(e===`response.done`||e===`response.completed`||e===`response.incomplete`){let e=t.response,n=e&&{...e,status:E(e.status)};yield{...t,type:`response.completed`,response:n};return}yield t}}}function E(e){if(typeof e==`string`)return h.has(e)?e:void 0}async function*D(e){if(!e.body)return;let t=e.body.getReader(),n=new TextDecoder,r=``;try{for(;;){let{done:e,value:i}=await t.read();if(e)break;r+=n.decode(i,{stream:!0});let a=r.indexOf(`
2
2
 
3
3
  `);for(;a!==-1;){let e=r.slice(0,a);r=r.slice(a+2);let t=e.split(`
4
4
  `).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trim());if(t.length>0){let e=t.join(`
@@ -1,5 +1,5 @@
1
- import{t as e}from"./env-api-keys-DlVZ9FrG.js";import{a as t,d as n,i as r,n as i,r as a,s as o}from"./simple-options-BIewKazV.js";import{t as s}from"./json-parse-JW3qhabb.js";import{t as c}from"./sanitize-unicode-BD2XKRoV.js";import{n as l,t as u}from"./github-copilot-headers-BuUn5v2j.js";import{n as d}from"./openai-CRGaNv9i.js";function f(e){for(let t of e)if(t.role===`toolResult`||t.role===`assistant`&&t.content.some(e=>e.type===`toolCall`))return!0;return!1}var p=(n,r,i)=>{let a=new t;return(async()=>{let t={role:`assistant`,content:[],api:n.api,provider:n.provider,model:n.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=h(n,r,i?.apiKey||e(n.provider)||``,i?.headers),c=g(n,r,i),l=await i?.onPayload?.(c,n);l!==void 0&&(c=l);let u=await o.chat.completions.create(c,{signal:i?.signal});a.push({type:`start`,partial:t});let d=null,f=t.content,p=()=>f.length-1,m=e=>{e&&(e.type===`text`?a.push({type:`text_end`,contentIndex:p(),content:e.text,partial:t}):e.type===`thinking`?a.push({type:`thinking_end`,contentIndex:p(),content:e.thinking,partial:t}):e.type===`toolCall`&&(e.arguments=s(e.partialArgs),delete e.partialArgs,a.push({type:`toolcall_end`,contentIndex:p(),toolCall:e,partial:t})))};for await(let e of u){if(!e||typeof e!=`object`)continue;t.responseId||=e.id,e.usage&&(t.usage=x(e.usage,n));let r=Array.isArray(e.choices)?e.choices[0]:void 0;if(r){if(!e.usage&&r.usage&&(t.usage=x(r.usage,n)),r.finish_reason){let e=S(r.finish_reason);t.stopReason=e.stopReason,e.errorMessage&&(t.errorMessage=e.errorMessage)}if(r.delta){r.delta.content!==null&&r.delta.content!==void 0&&r.delta.content.length>0&&((!d||d.type!==`text`)&&(m(d),d={type:`text`,text:``},t.content.push(d),a.push({type:`text_start`,contentIndex:p(),partial:t})),d.type===`text`&&(d.text+=r.delta.content,a.push({type:`text_delta`,contentIndex:p(),delta:r.delta.content,partial:t})));let e=[`reasoning_content`,`reasoning`,`reasoning_text`],n=null;for(let t of e)if(r.delta[t]!==null&&r.delta[t]!==void 0&&r.delta[t].length>0&&!n){n=t;break}if(n&&((!d||d.type!==`thinking`)&&(m(d),d={type:`thinking`,thinking:``,thinkingSignature:n},t.content.push(d),a.push({type:`thinking_start`,contentIndex:p(),partial:t})),d.type===`thinking`)){let e=r.delta[n];d.thinking+=e,a.push({type:`thinking_delta`,contentIndex:p(),delta:e,partial:t})}if(r?.delta?.tool_calls){for(let e of r.delta.tool_calls)if((!d||d.type!==`toolCall`||e.id&&d.id!==e.id)&&(m(d),d={type:`toolCall`,id:e.id||``,name:e.function?.name||``,arguments:{},partialArgs:``},t.content.push(d),a.push({type:`toolcall_start`,contentIndex:p(),partial:t})),d.type===`toolCall`){e.id&&(d.id=e.id),e.function?.name&&(d.name=e.function.name);let n=``;e.function?.arguments&&(n=e.function.arguments,d.partialArgs+=e.function.arguments,d.arguments=s(d.partialArgs)),a.push({type:`toolcall_delta`,contentIndex:p(),delta:n,partial:t})}}let i=r.delta.reasoning_details;if(i&&Array.isArray(i)){for(let e of i)if(e.type===`reasoning.encrypted`&&e.id&&e.data){let n=t.content.find(t=>t.type===`toolCall`&&t.id===e.id);n&&(n.thoughtSignature=JSON.stringify(e))}}}}}if(m(d),i?.signal?.aborted||t.stopReason===`aborted`)throw Error(`Request was aborted`);if(t.stopReason===`error`)throw Error(t.errorMessage||`Provider returned an error stop reason`);a.push({type:`done`,reason:t.stopReason,message:t}),a.end()}catch(e){for(let e of t.content)delete e.index;t.stopReason=i?.signal?.aborted?`aborted`:`error`,t.errorMessage=e instanceof Error?e.message:JSON.stringify(e);let n=e?.error?.metadata?.raw;n&&(t.errorMessage+=`\n${n}`),a.push({type:`error`,reason:t.stopReason,error:t}),a.end()}})(),a},m=(t,r,o)=>{let s=o?.apiKey||e(t.provider);if(!s)throw Error(`No API key for provider: ${t.provider}`);let c=i(t,o,s),l=n(t)?o?.reasoning:a(o?.reasoning),u=o?.toolChoice;return p(t,r,{...c,reasoningEffort:l,toolChoice:u})};function h(e,t,n,r){if(!n){if(!{}.OPENAI_API_KEY)throw Error(`OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.`);n={}.OPENAI_API_KEY}let i={...e.headers};if(e.provider===`github-copilot`){let e=l(t.messages),n=u({messages:t.messages,hasImages:e});Object.assign(i,n)}return r&&Object.assign(i,r),new d({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:i})}function g(e,t,n){let r=w(e),i=y(e,t,r);v(e,i);let a={model:e.id,messages:i,stream:!0};if(r.supportsUsageInStreaming!==!1&&(a.stream_options={include_usage:!0}),r.supportsStore&&(a.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?a.max_tokens=n.maxTokens:a.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(a.temperature=n.temperature),t.tools?a.tools=b(t.tools,r):f(t.messages)&&(a.tools=[]),n?.toolChoice&&(a.tool_choice=n.toolChoice),r.thinkingFormat===`zai`&&e.reasoning)a.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen`&&e.reasoning)a.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)a.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort};else if(r.thinkingFormat===`openrouter`&&e.reasoning){let e=a;n?.reasoningEffort?e.reasoning={effort:_(n.reasoningEffort,r.reasoningEffortMap)}:e.reasoning={effort:`none`}}else n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort&&(a.reasoning_effort=_(n.reasoningEffort,r.reasoningEffortMap));if(e.baseUrl.includes(`openrouter.ai`)&&e.compat?.openRouterRouting&&(a.provider=e.compat.openRouterRouting),e.baseUrl.includes(`ai-gateway.vercel.sh`)&&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),a.providerOptions={gateway:e}}}return a}function _(e,t){return t[e]??e}function v(e,t){if(!(e.provider!==`openrouter`||!e.id.startsWith(`anthropic/`)))for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.role!==`user`&&n.role!==`assistant`)continue;let r=n.content;if(typeof r==`string`){n.content=[Object.assign({type:`text`,text:r},{cache_control:{type:`ephemeral`}})];return}if(Array.isArray(r))for(let e=r.length-1;e>=0;e--){let t=r[e];if(t?.type===`text`){Object.assign(t,{cache_control:{type:`ephemeral`}});return}}}}function y(e,t,n){let i=[],a=t=>{if(t.includes(`|`)){let[e]=t.split(`|`);return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,40)}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},o=r(t.messages,e,e=>a(e));if(t.systemPrompt){let r=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;i.push({role:r,content:c(t.systemPrompt)})}let s=null;for(let t=0;t<o.length;t++){let r=o[t];if(n.requiresAssistantAfterToolResult&&s===`toolResult`&&r.role===`user`&&i.push({role:`assistant`,content:`I have processed the tool results.`}),r.role===`user`)if(typeof r.content==`string`)i.push({role:`user`,content:c(r.content)});else{let t=r.content.map(e=>e.type===`text`?{type:`text`,text:c(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}}),n=e.input.includes(`image`)?t:t.filter(e=>e.type!==`image_url`);if(n.length===0)continue;i.push({role:`user`,content:n})}else if(r.role===`assistant`){let e={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},t=r.content.filter(e=>e.type===`text`).filter(e=>e.text&&e.text.trim().length>0);t.length>0&&(e.content=t.map(e=>c(e.text)).join(``));let a=r.content.filter(e=>e.type===`thinking`).filter(e=>e.thinking&&e.thinking.trim().length>0);if(a.length>0)if(n.requiresThinkingAsText){let t=a.map(e=>e.thinking).join(`
1
+ import{t as e}from"./env-api-keys-DlVZ9FrG.js";import{a as t,d as n,i as r,n as i,r as a,s as o}from"./simple-options-FPdEz6rB.js";import{t as s}from"./json-parse-JW3qhabb.js";import{t as c}from"./sanitize-unicode-BD2XKRoV.js";import{n as l,t as u}from"./github-copilot-headers-BuUn5v2j.js";import{n as d}from"./openai-CRGaNv9i.js";function f(e){for(let t of e)if(t.role===`toolResult`||t.role===`assistant`&&t.content.some(e=>e.type===`toolCall`))return!0;return!1}var p=(n,r,i)=>{let a=new t;return(async()=>{let t={role:`assistant`,content:[],api:n.api,provider:n.provider,model:n.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=h(n,r,i?.apiKey||e(n.provider)||``,i?.headers),c=g(n,r,i),l=await i?.onPayload?.(c,n);l!==void 0&&(c=l);let u=await o.chat.completions.create(c,{signal:i?.signal});a.push({type:`start`,partial:t});let d=null,f=t.content,p=()=>f.length-1,m=e=>{e&&(e.type===`text`?a.push({type:`text_end`,contentIndex:p(),content:e.text,partial:t}):e.type===`thinking`?a.push({type:`thinking_end`,contentIndex:p(),content:e.thinking,partial:t}):e.type===`toolCall`&&(e.arguments=s(e.partialArgs),delete e.partialArgs,a.push({type:`toolcall_end`,contentIndex:p(),toolCall:e,partial:t})))};for await(let e of u){if(!e||typeof e!=`object`)continue;t.responseId||=e.id,e.usage&&(t.usage=x(e.usage,n));let r=Array.isArray(e.choices)?e.choices[0]:void 0;if(r){if(!e.usage&&r.usage&&(t.usage=x(r.usage,n)),r.finish_reason){let e=S(r.finish_reason);t.stopReason=e.stopReason,e.errorMessage&&(t.errorMessage=e.errorMessage)}if(r.delta){r.delta.content!==null&&r.delta.content!==void 0&&r.delta.content.length>0&&((!d||d.type!==`text`)&&(m(d),d={type:`text`,text:``},t.content.push(d),a.push({type:`text_start`,contentIndex:p(),partial:t})),d.type===`text`&&(d.text+=r.delta.content,a.push({type:`text_delta`,contentIndex:p(),delta:r.delta.content,partial:t})));let e=[`reasoning_content`,`reasoning`,`reasoning_text`],n=null;for(let t of e)if(r.delta[t]!==null&&r.delta[t]!==void 0&&r.delta[t].length>0&&!n){n=t;break}if(n&&((!d||d.type!==`thinking`)&&(m(d),d={type:`thinking`,thinking:``,thinkingSignature:n},t.content.push(d),a.push({type:`thinking_start`,contentIndex:p(),partial:t})),d.type===`thinking`)){let e=r.delta[n];d.thinking+=e,a.push({type:`thinking_delta`,contentIndex:p(),delta:e,partial:t})}if(r?.delta?.tool_calls){for(let e of r.delta.tool_calls)if((!d||d.type!==`toolCall`||e.id&&d.id!==e.id)&&(m(d),d={type:`toolCall`,id:e.id||``,name:e.function?.name||``,arguments:{},partialArgs:``},t.content.push(d),a.push({type:`toolcall_start`,contentIndex:p(),partial:t})),d.type===`toolCall`){e.id&&(d.id=e.id),e.function?.name&&(d.name=e.function.name);let n=``;e.function?.arguments&&(n=e.function.arguments,d.partialArgs+=e.function.arguments,d.arguments=s(d.partialArgs)),a.push({type:`toolcall_delta`,contentIndex:p(),delta:n,partial:t})}}let i=r.delta.reasoning_details;if(i&&Array.isArray(i)){for(let e of i)if(e.type===`reasoning.encrypted`&&e.id&&e.data){let n=t.content.find(t=>t.type===`toolCall`&&t.id===e.id);n&&(n.thoughtSignature=JSON.stringify(e))}}}}}if(m(d),i?.signal?.aborted||t.stopReason===`aborted`)throw Error(`Request was aborted`);if(t.stopReason===`error`)throw Error(t.errorMessage||`Provider returned an error stop reason`);a.push({type:`done`,reason:t.stopReason,message:t}),a.end()}catch(e){for(let e of t.content)delete e.index;t.stopReason=i?.signal?.aborted?`aborted`:`error`,t.errorMessage=e instanceof Error?e.message:JSON.stringify(e);let n=e?.error?.metadata?.raw;n&&(t.errorMessage+=`\n${n}`),a.push({type:`error`,reason:t.stopReason,error:t}),a.end()}})(),a},m=(t,r,o)=>{let s=o?.apiKey||e(t.provider);if(!s)throw Error(`No API key for provider: ${t.provider}`);let c=i(t,o,s),l=n(t)?o?.reasoning:a(o?.reasoning),u=o?.toolChoice;return p(t,r,{...c,reasoningEffort:l,toolChoice:u})};function h(e,t,n,r){if(!n){if(!{}.OPENAI_API_KEY)throw Error(`OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.`);n={}.OPENAI_API_KEY}let i={...e.headers};if(e.provider===`github-copilot`){let e=l(t.messages),n=u({messages:t.messages,hasImages:e});Object.assign(i,n)}return r&&Object.assign(i,r),new d({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:i})}function g(e,t,n){let r=w(e),i=y(e,t,r);v(e,i);let a={model:e.id,messages:i,stream:!0};if(r.supportsUsageInStreaming!==!1&&(a.stream_options={include_usage:!0}),r.supportsStore&&(a.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?a.max_tokens=n.maxTokens:a.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(a.temperature=n.temperature),t.tools?(a.tools=b(t.tools,r),r.zaiToolStream&&(a.tool_stream=!0)):f(t.messages)&&(a.tools=[]),n?.toolChoice&&(a.tool_choice=n.toolChoice),r.thinkingFormat===`zai`&&e.reasoning)a.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen`&&e.reasoning)a.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)a.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort};else if(r.thinkingFormat===`openrouter`&&e.reasoning){let e=a;n?.reasoningEffort?e.reasoning={effort:_(n.reasoningEffort,r.reasoningEffortMap)}:e.reasoning={effort:`none`}}else n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort&&(a.reasoning_effort=_(n.reasoningEffort,r.reasoningEffortMap));if(e.baseUrl.includes(`openrouter.ai`)&&e.compat?.openRouterRouting&&(a.provider=e.compat.openRouterRouting),e.baseUrl.includes(`ai-gateway.vercel.sh`)&&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),a.providerOptions={gateway:e}}}return a}function _(e,t){return t[e]??e}function v(e,t){if(!(e.provider!==`openrouter`||!e.id.startsWith(`anthropic/`)))for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.role!==`user`&&n.role!==`assistant`)continue;let r=n.content;if(typeof r==`string`){n.content=[Object.assign({type:`text`,text:r},{cache_control:{type:`ephemeral`}})];return}if(Array.isArray(r))for(let e=r.length-1;e>=0;e--){let t=r[e];if(t?.type===`text`){Object.assign(t,{cache_control:{type:`ephemeral`}});return}}}}function y(e,t,n){let i=[],a=t=>{if(t.includes(`|`)){let[e]=t.split(`|`);return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,40)}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},o=r(t.messages,e,e=>a(e));if(t.systemPrompt){let r=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;i.push({role:r,content:c(t.systemPrompt)})}let s=null;for(let t=0;t<o.length;t++){let r=o[t];if(n.requiresAssistantAfterToolResult&&s===`toolResult`&&r.role===`user`&&i.push({role:`assistant`,content:`I have processed the tool results.`}),r.role===`user`)if(typeof r.content==`string`)i.push({role:`user`,content:c(r.content)});else{let t=r.content.map(e=>e.type===`text`?{type:`text`,text:c(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}}),n=e.input.includes(`image`)?t:t.filter(e=>e.type!==`image_url`);if(n.length===0)continue;i.push({role:`user`,content:n})}else if(r.role===`assistant`){let e={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},t=r.content.filter(e=>e.type===`text`).filter(e=>e.text&&e.text.trim().length>0);t.length>0&&(e.content=t.map(e=>c(e.text)).join(``));let a=r.content.filter(e=>e.type===`thinking`).filter(e=>e.thinking&&e.thinking.trim().length>0);if(a.length>0)if(n.requiresThinkingAsText){let t=a.map(e=>e.thinking).join(`
2
2
 
3
3
  `),n=e.content;n?n.unshift({type:`text`,text:t}):e.content=[{type:`text`,text:t}]}else{let t=a[0].thinkingSignature;t&&t.length>0&&(e[t]=a.map(e=>e.thinking).join(`
4
4
  `))}let o=r.content.filter(e=>e.type===`toolCall`);if(o.length>0){e.tool_calls=o.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments)}}));let t=o.filter(e=>e.thoughtSignature).map(e=>{try{return JSON.parse(e.thoughtSignature)}catch{return null}}).filter(Boolean);t.length>0&&(e.reasoning_details=t)}let s=e.content;if(!(s!=null&&s.length>0)&&!e.tool_calls)continue;i.push(e)}else if(r.role===`toolResult`){let r=[],a=t;for(;a<o.length&&o[a].role===`toolResult`;a++){let t=o[a],s=t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
5
- `),l=t.content.some(e=>e.type===`image`),u={role:`tool`,content:c(s.length>0?s:`(see attached image)`),tool_call_id:t.toolCallId};if(n.requiresToolResultName&&t.toolName&&(u.name=t.toolName),i.push(u),l&&e.input.includes(`image`))for(let e of t.content)e.type===`image`&&r.push({type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}})}t=a-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]}),s=`user`):s=`toolResult`;continue}s=r.role}return i}function b(e,t){return e.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.parameters,...t.supportsStrictMode!==!1&&{strict:!1}}}))}function x(e,t){let n=e.prompt_tokens_details?.cached_tokens||0,r=e.completion_tokens_details?.reasoning_tokens||0,i=(e.prompt_tokens||0)-n,a=(e.completion_tokens||0)+r,s={input:i,output:a,cacheRead:n,cacheWrite:0,totalTokens:i+a+n,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};return o(t,s),s}function S(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 C(e){let t=e.provider,n=e.baseUrl,r=t===`zai`||n.includes(`api.z.ai`),i=t===`cerebras`||n.includes(`cerebras.ai`)||t===`xai`||n.includes(`api.x.ai`)||n.includes(`chutes.ai`)||n.includes(`deepseek.com`)||r||t===`opencode`||n.includes(`opencode.ai`),a=n.includes(`chutes.ai`),o=t===`xai`||n.includes(`api.x.ai`),s=(t===`groq`||n.includes(`groq.com`))&&e.id===`qwen/qwen3-32b`?{minimal:`default`,low:`default`,medium:`default`,high:`default`,xhigh:`default`}:{};return{supportsStore:!i,supportsDeveloperRole:!i,supportsReasoningEffort:!o&&!r,reasoningEffortMap:s,supportsUsageInStreaming:!0,maxTokensField:a?`max_tokens`:`max_completion_tokens`,requiresToolResultName:!1,requiresAssistantAfterToolResult:!1,requiresThinkingAsText:!1,thinkingFormat:r?`zai`:t===`openrouter`||n.includes(`openrouter.ai`)?`openrouter`:`openai`,openRouterRouting:{},vercelGatewayRouting:{},supportsStrictMode:!0}}function w(e){let t=C(e);return e.compat?{supportsStore:e.compat.supportsStore??t.supportsStore,supportsDeveloperRole:e.compat.supportsDeveloperRole??t.supportsDeveloperRole,supportsReasoningEffort:e.compat.supportsReasoningEffort??t.supportsReasoningEffort,reasoningEffortMap:e.compat.reasoningEffortMap??t.reasoningEffortMap,supportsUsageInStreaming:e.compat.supportsUsageInStreaming??t.supportsUsageInStreaming,maxTokensField:e.compat.maxTokensField??t.maxTokensField,requiresToolResultName:e.compat.requiresToolResultName??t.requiresToolResultName,requiresAssistantAfterToolResult:e.compat.requiresAssistantAfterToolResult??t.requiresAssistantAfterToolResult,requiresThinkingAsText:e.compat.requiresThinkingAsText??t.requiresThinkingAsText,thinkingFormat:e.compat.thinkingFormat??t.thinkingFormat,openRouterRouting:e.compat.openRouterRouting??{},vercelGatewayRouting:e.compat.vercelGatewayRouting??t.vercelGatewayRouting,supportsStrictMode:e.compat.supportsStrictMode??t.supportsStrictMode}:t}export{y as convertMessages,p as streamOpenAICompletions,m as streamSimpleOpenAICompletions};
5
+ `),l=t.content.some(e=>e.type===`image`),u={role:`tool`,content:c(s.length>0?s:`(see attached image)`),tool_call_id:t.toolCallId};if(n.requiresToolResultName&&t.toolName&&(u.name=t.toolName),i.push(u),l&&e.input.includes(`image`))for(let e of t.content)e.type===`image`&&r.push({type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}})}t=a-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]}),s=`user`):s=`toolResult`;continue}s=r.role}return i}function b(e,t){return e.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.parameters,...t.supportsStrictMode!==!1&&{strict:!1}}}))}function x(e,t){let n=e.prompt_tokens||0,r=e.prompt_tokens_details?.cached_tokens||0,i=e.prompt_tokens_details?.cache_write_tokens||0,a=e.completion_tokens_details?.reasoning_tokens||0,s=i>0?Math.max(0,r-i):r,c=Math.max(0,n-s-i),l=(e.completion_tokens||0)+a,u={input:c,output:l,cacheRead:s,cacheWrite:i,totalTokens:c+l+s+i,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};return o(t,u),u}function S(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 C(e){let t=e.provider,n=e.baseUrl,r=t===`zai`||n.includes(`api.z.ai`),i=t===`cerebras`||n.includes(`cerebras.ai`)||t===`xai`||n.includes(`api.x.ai`)||n.includes(`chutes.ai`)||n.includes(`deepseek.com`)||r||t===`opencode`||n.includes(`opencode.ai`),a=n.includes(`chutes.ai`),o=t===`xai`||n.includes(`api.x.ai`),s=(t===`groq`||n.includes(`groq.com`))&&e.id===`qwen/qwen3-32b`?{minimal:`default`,low:`default`,medium:`default`,high:`default`,xhigh:`default`}:{};return{supportsStore:!i,supportsDeveloperRole:!i,supportsReasoningEffort:!o&&!r,reasoningEffortMap:s,supportsUsageInStreaming:!0,maxTokensField:a?`max_tokens`:`max_completion_tokens`,requiresToolResultName:!1,requiresAssistantAfterToolResult:!1,requiresThinkingAsText:!1,thinkingFormat:r?`zai`:t===`openrouter`||n.includes(`openrouter.ai`)?`openrouter`:`openai`,openRouterRouting:{},vercelGatewayRouting:{},zaiToolStream:!1,supportsStrictMode:!0}}function w(e){let t=C(e);return e.compat?{supportsStore:e.compat.supportsStore??t.supportsStore,supportsDeveloperRole:e.compat.supportsDeveloperRole??t.supportsDeveloperRole,supportsReasoningEffort:e.compat.supportsReasoningEffort??t.supportsReasoningEffort,reasoningEffortMap:e.compat.reasoningEffortMap??t.reasoningEffortMap,supportsUsageInStreaming:e.compat.supportsUsageInStreaming??t.supportsUsageInStreaming,maxTokensField:e.compat.maxTokensField??t.maxTokensField,requiresToolResultName:e.compat.requiresToolResultName??t.requiresToolResultName,requiresAssistantAfterToolResult:e.compat.requiresAssistantAfterToolResult??t.requiresAssistantAfterToolResult,requiresThinkingAsText:e.compat.requiresThinkingAsText??t.requiresThinkingAsText,thinkingFormat:e.compat.thinkingFormat??t.thinkingFormat,openRouterRouting:e.compat.openRouterRouting??{},vercelGatewayRouting:e.compat.vercelGatewayRouting??t.vercelGatewayRouting,zaiToolStream:e.compat.zaiToolStream??t.zaiToolStream,supportsStrictMode:e.compat.supportsStrictMode??t.supportsStrictMode}:t}export{y as convertMessages,p as streamOpenAICompletions,m as streamSimpleOpenAICompletions};
@@ -1 +1 @@
1
- import{t as e}from"./env-api-keys-DlVZ9FrG.js";import{a as t,d as n,n as r,r as i}from"./simple-options-BIewKazV.js";import{n as a,t as o}from"./github-copilot-headers-BuUn5v2j.js";import{n as s}from"./openai-CRGaNv9i.js";import{n as c,r as l,t as u}from"./openai-responses-shared-Wbu69Kec.js";var d=new Set([`openai`,`openai-codex`,`opencode`]);function f(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}function p(e,t){if(t===`long`&&e.includes(`api.openai.com`))return`24h`}var m=(n,r,i)=>{let a=new t;return(async()=>{let t={role:`assistant`,content:[],api:n.api,provider:n.provider,model:n.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=g(n,r,i?.apiKey||e(n.provider)||``,i?.headers),s=_(n,r,i),c=await i?.onPayload?.(s,n);c!==void 0&&(s=c);let u=await o.responses.create(s,i?.signal?{signal:i.signal}:void 0);if(a.push({type:`start`,partial:t}),await l(u,t,a,n,{serviceTier:i?.serviceTier,applyServiceTierPricing:y}),i?.signal?.aborted)throw Error(`Request was aborted`);if(t.stopReason===`aborted`||t.stopReason===`error`)throw Error(`An unknown error occurred`);a.push({type:`done`,reason:t.stopReason,message:t}),a.end()}catch(e){for(let e of t.content)delete e.index;t.stopReason=i?.signal?.aborted?`aborted`:`error`,t.errorMessage=e instanceof Error?e.message:JSON.stringify(e),a.push({type:`error`,reason:t.stopReason,error:t}),a.end()}})(),a},h=(t,a,o)=>{let s=o?.apiKey||e(t.provider);if(!s)throw Error(`No API key for provider: ${t.provider}`);let c=r(t,o,s),l=n(t)?o?.reasoning:i(o?.reasoning);return m(t,a,{...c,reasoningEffort:l})};function g(e,t,n,r){if(!n){if(!{}.OPENAI_API_KEY)throw Error(`OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.`);n={}.OPENAI_API_KEY}let i={...e.headers};if(e.provider===`github-copilot`){let e=a(t.messages),n=o({messages:t.messages,hasImages:e});Object.assign(i,n)}return r&&Object.assign(i,r),new s({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:i})}function _(e,t,n){let r=u(e,t,d),i=f(n?.cacheRetention),a={model:e.id,input:r,stream:!0,prompt_cache_key:i===`none`?void 0:n?.sessionId,prompt_cache_retention:p(e.baseUrl,i),store:!1};return n?.maxTokens&&(a.max_output_tokens=n?.maxTokens),n?.temperature!==void 0&&(a.temperature=n?.temperature),n?.serviceTier!==void 0&&(a.service_tier=n.serviceTier),t.tools&&(a.tools=c(t.tools)),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(a.reasoning={effort:n?.reasoningEffort||`medium`,summary:n?.reasoningSummary||`auto`},a.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&(a.reasoning={effort:`none`})),a}function v(e){switch(e){case`flex`:return .5;case`priority`:return 2;default:return 1}}function y(e,t){let n=v(t);n!==1&&(e.cost.input*=n,e.cost.output*=n,e.cost.cacheRead*=n,e.cost.cacheWrite*=n,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{m as streamOpenAIResponses,h as streamSimpleOpenAIResponses};
1
+ import{t as e}from"./env-api-keys-DlVZ9FrG.js";import{a as t,d as n,n as r,r as i}from"./simple-options-FPdEz6rB.js";import{n as a,t as o}from"./github-copilot-headers-BuUn5v2j.js";import{n as s}from"./openai-CRGaNv9i.js";import{n as c,r as l,t as u}from"./openai-responses-shared-mHVmez9H.js";var d=new Set([`openai`,`openai-codex`,`opencode`]);function f(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}function p(e,t){if(t===`long`&&e.includes(`api.openai.com`))return`24h`}var m=(n,r,i)=>{let a=new t;return(async()=>{let t={role:`assistant`,content:[],api:n.api,provider:n.provider,model:n.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=g(n,r,i?.apiKey||e(n.provider)||``,i?.headers),s=_(n,r,i),c=await i?.onPayload?.(s,n);c!==void 0&&(s=c);let u=await o.responses.create(s,i?.signal?{signal:i.signal}:void 0);if(a.push({type:`start`,partial:t}),await l(u,t,a,n,{serviceTier:i?.serviceTier,applyServiceTierPricing:y}),i?.signal?.aborted)throw Error(`Request was aborted`);if(t.stopReason===`aborted`||t.stopReason===`error`)throw Error(`An unknown error occurred`);a.push({type:`done`,reason:t.stopReason,message:t}),a.end()}catch(e){for(let e of t.content)delete e.index;t.stopReason=i?.signal?.aborted?`aborted`:`error`,t.errorMessage=e instanceof Error?e.message:JSON.stringify(e),a.push({type:`error`,reason:t.stopReason,error:t}),a.end()}})(),a},h=(t,a,o)=>{let s=o?.apiKey||e(t.provider);if(!s)throw Error(`No API key for provider: ${t.provider}`);let c=r(t,o,s),l=n(t)?o?.reasoning:i(o?.reasoning);return m(t,a,{...c,reasoningEffort:l})};function g(e,t,n,r){if(!n){if(!{}.OPENAI_API_KEY)throw Error(`OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.`);n={}.OPENAI_API_KEY}let i={...e.headers};if(e.provider===`github-copilot`){let e=a(t.messages),n=o({messages:t.messages,hasImages:e});Object.assign(i,n)}return r&&Object.assign(i,r),new s({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:i})}function _(e,t,n){let r=u(e,t,d),i=f(n?.cacheRetention),a={model:e.id,input:r,stream:!0,prompt_cache_key:i===`none`?void 0:n?.sessionId,prompt_cache_retention:p(e.baseUrl,i),store:!1};return n?.maxTokens&&(a.max_output_tokens=n?.maxTokens),n?.temperature!==void 0&&(a.temperature=n?.temperature),n?.serviceTier!==void 0&&(a.service_tier=n.serviceTier),t.tools&&(a.tools=c(t.tools)),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(a.reasoning={effort:n?.reasoningEffort||`medium`,summary:n?.reasoningSummary||`auto`},a.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&(a.reasoning={effort:`none`})),a}function v(e){switch(e){case`flex`:return .5;case`priority`:return 2;default:return 1}}function y(e,t){let n=v(t);n!==1&&(e.cost.input*=n,e.cost.output*=n,e.cost.cacheRead*=n,e.cost.cacheWrite*=n,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{m as streamOpenAIResponses,h as streamSimpleOpenAIResponses};
@@ -1,10 +1,10 @@
1
- import{i as e,s as t}from"./simple-options-BIewKazV.js";import{t as n}from"./json-parse-JW3qhabb.js";import{t as r}from"./sanitize-unicode-BD2XKRoV.js";import{t as i}from"./hash-CQjDwcjR.js";function a(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function o(e){if(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);if(t.v===1&&typeof t.id==`string`)return t.phase===`commentary`||t.phase===`final_answer`?{id:t.id,phase:t.phase}:{id:t.id}}catch{}return{id:e}}}function s(t,n,a,s){let c=[],l=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},u=e=>{let t=`fc_${i(e)}`;return t.length>64?t.slice(0,64):t},d=e(n.messages,t,(e,n,r)=>{if(!a.has(t.provider)||!e.includes(`|`))return l(e);let[i,o]=e.split(`|`),s=l(i),c=r.provider!==t.provider||r.api!==t.api?u(o):l(o);return c.startsWith(`fc_`)||(c=l(`fc_${c}`)),`${s}|${c}`});if((s?.includeSystemPrompt??!0)&&n.systemPrompt){let e=t.reasoning?`developer`:`system`;c.push({role:e,content:r(n.systemPrompt)})}let f=0;for(let e of d){if(e.role===`user`)if(typeof e.content==`string`)c.push({role:`user`,content:[{type:`input_text`,text:r(e.content)}]});else{let n=e.content.map(e=>e.type===`text`?{type:`input_text`,text:r(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`}),i=t.input.includes(`image`)?n:n.filter(e=>e.type!==`input_image`);if(i.length===0)continue;c.push({role:`user`,content:i})}else if(e.role===`assistant`){let n=[],a=e,s=a.model!==t.id&&a.provider===t.provider&&a.api===t.api;for(let t of e.content)if(t.type===`thinking`){if(t.thinkingSignature){let e=JSON.parse(t.thinkingSignature);n.push(e)}}else if(t.type===`text`){let e=t,a=o(e.textSignature),s=a?.id;s?s.length>64&&(s=`msg_${i(s)}`):s=`msg_${f}`,n.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:r(e.text),annotations:[]}],status:`completed`,id:s,phase:a?.phase})}else if(t.type===`toolCall`){let e=t,[r,i]=e.id.split(`|`),a=i;s&&a?.startsWith(`fc_`)&&(a=void 0),n.push({type:`function_call`,id:a,call_id:r,name:e.name,arguments:JSON.stringify(e.arguments)})}if(n.length===0)continue;c.push(...n)}else if(e.role===`toolResult`){let n=e.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
1
+ import{i as e,s as t}from"./simple-options-FPdEz6rB.js";import{t as n}from"./json-parse-JW3qhabb.js";import{t as r}from"./sanitize-unicode-BD2XKRoV.js";import{t as i}from"./hash-CQjDwcjR.js";function a(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function o(e){if(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);if(t.v===1&&typeof t.id==`string`)return t.phase===`commentary`||t.phase===`final_answer`?{id:t.id,phase:t.phase}:{id:t.id}}catch{}return{id:e}}}function s(t,n,a,s){let c=[],l=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},u=e=>{let t=`fc_${i(e)}`;return t.length>64?t.slice(0,64):t},d=e(n.messages,t,(e,n,r)=>{if(!a.has(t.provider)||!e.includes(`|`))return l(e);let[i,o]=e.split(`|`),s=l(i),c=r.provider!==t.provider||r.api!==t.api?u(o):l(o);return c.startsWith(`fc_`)||(c=l(`fc_${c}`)),`${s}|${c}`});if((s?.includeSystemPrompt??!0)&&n.systemPrompt){let e=t.reasoning?`developer`:`system`;c.push({role:e,content:r(n.systemPrompt)})}let f=0;for(let e of d){if(e.role===`user`)if(typeof e.content==`string`)c.push({role:`user`,content:[{type:`input_text`,text:r(e.content)}]});else{let n=e.content.map(e=>e.type===`text`?{type:`input_text`,text:r(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`}),i=t.input.includes(`image`)?n:n.filter(e=>e.type!==`input_image`);if(i.length===0)continue;c.push({role:`user`,content:i})}else if(e.role===`assistant`){let n=[],a=e,s=a.model!==t.id&&a.provider===t.provider&&a.api===t.api;for(let t of e.content)if(t.type===`thinking`){if(t.thinkingSignature){let e=JSON.parse(t.thinkingSignature);n.push(e)}}else if(t.type===`text`){let e=t,a=o(e.textSignature),s=a?.id;s?s.length>64&&(s=`msg_${i(s)}`):s=`msg_${f}`,n.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:r(e.text),annotations:[]}],status:`completed`,id:s,phase:a?.phase})}else if(t.type===`toolCall`){let e=t,[r,i]=e.id.split(`|`),a=i;s&&a?.startsWith(`fc_`)&&(a=void 0),n.push({type:`function_call`,id:a,call_id:r,name:e.name,arguments:JSON.stringify(e.arguments)})}if(n.length===0)continue;c.push(...n)}else if(e.role===`toolResult`){let n=e.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
2
2
  `),i=e.content.some(e=>e.type===`image`),a=n.length>0,[o]=e.toolCallId.split(`|`),s;if(i&&t.input.includes(`image`)){let t=[];a&&t.push({type:`input_text`,text:r(n)});for(let n of e.content)n.type===`image`&&t.push({type:`input_image`,detail:`auto`,image_url:`data:${n.mimeType};base64,${n.data}`});s=t}else s=r(a?n:`(see attached image)`);c.push({type:`function_call_output`,call_id:o,output:s})}f++}return c}function c(e,t){let n=t?.strict===void 0?!1:t.strict;return e.map(e=>({type:`function`,name:e.name,description:e.description,parameters:e.parameters,strict:n}))}async function l(e,r,i,o,s){let c=null,l=null,d=r.content,f=()=>d.length-1;for await(let d of e)if(d.type===`response.created`)r.responseId=d.response.id;else if(d.type===`response.output_item.added`){let e=d.item;e.type===`reasoning`?(c=e,l={type:`thinking`,thinking:``},r.content.push(l),i.push({type:`thinking_start`,contentIndex:f(),partial:r})):e.type===`message`?(c=e,l={type:`text`,text:``},r.content.push(l),i.push({type:`text_start`,contentIndex:f(),partial:r})):e.type===`function_call`&&(c=e,l={type:`toolCall`,id:`${e.call_id}|${e.id}`,name:e.name,arguments:{},partialJson:e.arguments||``},r.content.push(l),i.push({type:`toolcall_start`,contentIndex:f(),partial:r}))}else if(d.type===`response.reasoning_summary_part.added`)c&&c.type===`reasoning`&&(c.summary=c.summary||[],c.summary.push(d.part));else if(d.type===`response.reasoning_summary_text.delta`){if(c?.type===`reasoning`&&l?.type===`thinking`){c.summary=c.summary||[];let e=c.summary[c.summary.length-1];e&&(l.thinking+=d.delta,e.text+=d.delta,i.push({type:`thinking_delta`,contentIndex:f(),delta:d.delta,partial:r}))}}else if(d.type===`response.reasoning_summary_part.done`){if(c?.type===`reasoning`&&l?.type===`thinking`){c.summary=c.summary||[];let e=c.summary[c.summary.length-1];e&&(l.thinking+=`
3
3
 
4
4
  `,e.text+=`
5
5
 
6
6
  `,i.push({type:`thinking_delta`,contentIndex:f(),delta:`
7
7
 
8
- `,partial:r}))}}else if(d.type===`response.content_part.added`)c?.type===`message`&&(c.content=c.content||[],(d.part.type===`output_text`||d.part.type===`refusal`)&&c.content.push(d.part));else if(d.type===`response.output_text.delta`){if(c?.type===`message`&&l?.type===`text`){if(!c.content||c.content.length===0)continue;let e=c.content[c.content.length-1];e?.type===`output_text`&&(l.text+=d.delta,e.text+=d.delta,i.push({type:`text_delta`,contentIndex:f(),delta:d.delta,partial:r}))}}else if(d.type===`response.refusal.delta`){if(c?.type===`message`&&l?.type===`text`){if(!c.content||c.content.length===0)continue;let e=c.content[c.content.length-1];e?.type===`refusal`&&(l.text+=d.delta,e.refusal+=d.delta,i.push({type:`text_delta`,contentIndex:f(),delta:d.delta,partial:r}))}}else if(d.type===`response.function_call_arguments.delta`)c?.type===`function_call`&&l?.type===`toolCall`&&(l.partialJson+=d.delta,l.arguments=n(l.partialJson),i.push({type:`toolcall_delta`,contentIndex:f(),delta:d.delta,partial:r}));else if(d.type===`response.function_call_arguments.done`)c?.type===`function_call`&&l?.type===`toolCall`&&(l.partialJson=d.arguments,l.arguments=n(l.partialJson));else if(d.type===`response.output_item.done`){let e=d.item;if(e.type===`reasoning`&&l?.type===`thinking`)l.thinking=e.summary?.map(e=>e.text).join(`
8
+ `,partial:r}))}}else if(d.type===`response.content_part.added`)c?.type===`message`&&(c.content=c.content||[],(d.part.type===`output_text`||d.part.type===`refusal`)&&c.content.push(d.part));else if(d.type===`response.output_text.delta`){if(c?.type===`message`&&l?.type===`text`){if(!c.content||c.content.length===0)continue;let e=c.content[c.content.length-1];e?.type===`output_text`&&(l.text+=d.delta,e.text+=d.delta,i.push({type:`text_delta`,contentIndex:f(),delta:d.delta,partial:r}))}}else if(d.type===`response.refusal.delta`){if(c?.type===`message`&&l?.type===`text`){if(!c.content||c.content.length===0)continue;let e=c.content[c.content.length-1];e?.type===`refusal`&&(l.text+=d.delta,e.refusal+=d.delta,i.push({type:`text_delta`,contentIndex:f(),delta:d.delta,partial:r}))}}else if(d.type===`response.function_call_arguments.delta`)c?.type===`function_call`&&l?.type===`toolCall`&&(l.partialJson+=d.delta,l.arguments=n(l.partialJson),i.push({type:`toolcall_delta`,contentIndex:f(),delta:d.delta,partial:r}));else if(d.type===`response.function_call_arguments.done`){if(c?.type===`function_call`&&l?.type===`toolCall`){let e=l.partialJson;if(l.partialJson=d.arguments,l.arguments=n(l.partialJson),d.arguments.startsWith(e)){let t=d.arguments.slice(e.length);t.length>0&&i.push({type:`toolcall_delta`,contentIndex:f(),delta:t,partial:r})}}}else if(d.type===`response.output_item.done`){let e=d.item;if(e.type===`reasoning`&&l?.type===`thinking`)l.thinking=e.summary?.map(e=>e.text).join(`
9
9
 
10
10
  `)||``,l.thinkingSignature=JSON.stringify(e),i.push({type:`thinking_end`,contentIndex:f(),content:l.thinking,partial:r}),l=null;else if(e.type===`message`&&l?.type===`text`)l.text=e.content.map(e=>e.type===`output_text`?e.text:e.refusal).join(``),l.textSignature=a(e.id,e.phase??void 0),i.push({type:`text_end`,contentIndex:f(),content:l.text,partial:r}),l=null;else if(e.type===`function_call`){let t=l?.type===`toolCall`&&l.partialJson?n(l.partialJson):n(e.arguments||`{}`),a={type:`toolCall`,id:`${e.call_id}|${e.id}`,name:e.name,arguments:t};l=null,i.push({type:`toolcall_end`,contentIndex:f(),toolCall:a,partial:r})}}else if(d.type===`response.completed`){let e=d.response;if(e?.id&&(r.responseId=e.id),e?.usage){let t=e.usage.input_tokens_details?.cached_tokens||0;r.usage={input:(e.usage.input_tokens||0)-t,output:e.usage.output_tokens||0,cacheRead:t,cacheWrite:0,totalTokens:e.usage.total_tokens||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}}}if(t(o,r.usage),s?.applyServiceTierPricing){let t=e?.service_tier??s.serviceTier;s.applyServiceTierPricing(r.usage,t)}r.stopReason=u(e?.status),r.content.some(e=>e.type===`toolCall`)&&r.stopReason===`stop`&&(r.stopReason=`toolUse`)}else if(d.type===`error`)throw Error(`Error Code ${d.code}: ${d.message}`||`Unknown error`);else if(d.type===`response.failed`){let e=d.response?.error,t=d.response?.incomplete_details,n=e?`${e.code||`unknown`}: ${e.message||`no message`}`:t?.reason?`incomplete: ${t.reason}`:`Unknown error (no error details in response)`;throw Error(n)}}function u(e){if(!e)return`stop`;switch(e){case`completed`:return`stop`;case`incomplete`:return`length`;case`failed`:case`cancelled`:return`error`;case`in_progress`:case`queued`:return`stop`;default:throw Error(`Unhandled stop reason: ${e}`)}}export{c as n,l as r,s as t};