sliccy 3.34.0 → 3.35.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 (115) hide show
  1. package/dist/ui/assets/{adobe-C_KbKd0n.js → adobe-BRQEfz1I.js} +2 -2
  2. package/dist/ui/assets/adobe-DqEEV7K5.js +1 -0
  3. package/dist/ui/assets/{agent-bridge-FF6kv2fb.js → agent-bridge--aoB7za4.js} +1 -1
  4. package/dist/ui/assets/{agent-message-to-chat-DkR9NV9t.js → agent-message-to-chat-Cf-PA3PL.js} +1 -1
  5. package/dist/ui/assets/{anthropic-DfZXQaUp.js → anthropic-CP-ouum5.js} +6 -6
  6. package/dist/ui/assets/anthropic-oHjoP5Qp.js +39 -0
  7. package/dist/ui/assets/{apps-BxS_QnGn.js → apps-P8w2nNUB.js} +2 -2
  8. package/dist/ui/assets/{azure-openai-Vm01DpT_.js → azure-openai-BDajo6ba.js} +1 -1
  9. package/dist/ui/assets/azure-openai-Dgh02LJw.js +1 -0
  10. package/dist/ui/assets/azure-openai-responses-BhEyP5io.js +1 -0
  11. package/dist/ui/assets/azure-openai-responses-D_Emnwqm.js +1 -0
  12. package/dist/ui/assets/{biome_wasm-CvSAK_uf.js → biome_wasm-Cj2t2Sqp.js} +1 -1
  13. package/dist/ui/assets/{bsh-watchdog-Du7KRjWw.js → bsh-watchdog-BHM3lIIW.js} +1 -1
  14. package/dist/ui/assets/{cdp-BMZH9kfw.js → cdp-DzsLEquc.js} +3 -3
  15. package/dist/ui/assets/{cdp-ws-page-bridge-DYY56Jqj.js → cdp-ws-page-bridge-Cq3dnPCj.js} +1 -1
  16. package/dist/ui/assets/{common-BG1B2pGi.js → common-Bes6Rp5g.js} +1 -1
  17. package/dist/ui/assets/{connect-surface-0lxpf-5t.js → connect-surface-6MDb65af.js} +1 -1
  18. package/dist/ui/assets/cost-command-BJFKPD-9.js +1 -0
  19. package/dist/ui/assets/{dist-JjJ6duRw.js → dist-BR9SH6f-.js} +1 -1
  20. package/dist/ui/assets/{dist-CfHbsibs.js → dist-B_L1hx85.js} +1 -1
  21. package/dist/ui/assets/{dist-Yxhff45Z.js → dist-BvikTLzU.js} +1 -1
  22. package/dist/ui/assets/{dist-BanEKbJr.js → dist-iTrcpjMt.js} +4 -4
  23. package/dist/ui/assets/{es-CMFNtJSL.js → es-CcN0if_N.js} +4 -4
  24. package/dist/ui/assets/{follower-sprinkle-bridge-CszKWKEN.js → follower-sprinkle-bridge-BnXbVmXR.js} +1 -1
  25. package/dist/ui/assets/{github-lQAdGX0Z.js → github-BVkjHtni.js} +2 -2
  26. package/dist/ui/assets/{github-copilot-Hxxj6MFv.js → github-copilot-O8gRRubZ.js} +2 -2
  27. package/dist/ui/assets/github-copilot-r5E168qG.js +1 -0
  28. package/dist/ui/assets/{github-D5chbBco.js → github-kxRKas0e.js} +1 -1
  29. package/dist/ui/assets/google-C4UaifIA.js +1 -0
  30. package/dist/ui/assets/{google-6xMZvOez.js → google-DhgTyv3k.js} +1 -1
  31. package/dist/ui/assets/google-shared-CfTcRL_l.js +11 -0
  32. package/dist/ui/assets/google-shared-cbPEawjU.js +371 -0
  33. package/dist/ui/assets/{google-vertex-Dpr6tNZD.js → google-vertex-DCwY7SpP.js} +1 -1
  34. package/dist/ui/assets/{google-vertex-BHOYutHi.js → google-vertex-DrVy9tT-.js} +1 -1
  35. package/dist/ui/assets/{hosted-config-apply-LNWPnWio.js → hosted-config-apply-6JWS8OfU.js} +1 -1
  36. package/dist/ui/assets/{intercepted-oauth-D41iguEu.js → intercepted-oauth-BeA89evx.js} +1 -1
  37. package/dist/ui/assets/{kernel-worker-ApBe2nsN.js → kernel-worker-CsVAcCa0.js} +960 -960
  38. package/dist/ui/assets/lick-ws-bridge-BeO_NfAN.js +1 -0
  39. package/dist/ui/assets/{local-llm-BUHqKQIs.js → local-llm-BExlcRTe.js} +1 -1
  40. package/dist/ui/assets/{magick-wasm-WfPf-mzW.js → magick-wasm-52jtVvFN.js} +1 -1
  41. package/dist/ui/assets/{main-cherry-CvuKVZgJ.js → main-cherry-DDFIq_gA.js} +1 -1
  42. package/dist/ui/assets/{main-CiPLuc4Y.js → main-lrS_5wG0.js} +176 -176
  43. package/dist/ui/assets/{migration-run-CjK_K6H_.js → migration-run-Blb3KPMp.js} +1 -1
  44. package/dist/ui/assets/mistral-Bml5xQsA.js +46 -0
  45. package/dist/ui/assets/mistral-anetp8MW.js +46 -0
  46. package/dist/ui/assets/{nodejs-BOWNwnaN.js → nodejs-TWe3ARKT.js} +1 -1
  47. package/dist/ui/assets/{nuke-command-D8Fh0gbL.js → nuke-command-Be-RNfyH.js} +1 -1
  48. package/dist/ui/assets/{oauth-DLszIWW7.js → oauth-B68JgGW1.js} +1 -1
  49. package/dist/ui/assets/{oauth-bootstrap-Bkf6-I68.js → oauth-bootstrap-hbzMsWI8.js} +2 -2
  50. package/dist/ui/assets/{oauth-service-DclCNOyC.js → oauth-service-DUrh0AYU.js} +1 -1
  51. package/dist/ui/assets/{oauth-service-IRbgSoZf.js → oauth-service-DbPObLKr.js} +1 -1
  52. package/dist/ui/assets/{offscreen-client-WfjjyTww.js → offscreen-client-BujqsTo-.js} +1 -1
  53. package/dist/ui/assets/{onboarding-orchestrator-Cj4wwL1r.js → onboarding-orchestrator-BD4FQQVL.js} +1 -1
  54. package/dist/ui/assets/{openai-codex-o1t-m8rL.js → openai-codex-Cbrr6rGT.js} +1 -1
  55. package/dist/ui/assets/{openai-codex-DQpjVOFB.js → openai-codex-CxjIoboc.js} +1 -1
  56. package/dist/ui/assets/openai-codex-responses-C9vLfgL2.js +7 -0
  57. package/dist/ui/assets/openai-codex-responses-Ck2q17sa.js +7 -0
  58. package/dist/ui/assets/openai-completions-wICCJVuW.js +5 -0
  59. package/dist/ui/assets/openai-prompt-cache-DXo9f3w5.js +1 -0
  60. package/dist/ui/assets/openai-responses-Bjsbtb8-.js +1 -0
  61. package/dist/ui/assets/openai-responses-DxgM2J96.js +1 -0
  62. package/dist/ui/assets/{openai-responses-shared-S3zguGjk.js → openai-responses-shared-COkNR-Pr.js} +1 -1
  63. package/dist/ui/assets/{openai-responses-shared-yJFA8VNU.js → openai-responses-shared-DfPgySbe.js} +3 -3
  64. package/dist/ui/assets/openrouter-DJdg9hUw.js +1 -0
  65. package/dist/ui/assets/openrouter-DJeU4Mbk.js +1 -0
  66. package/dist/ui/assets/{panel-rpc-handlers-CkCiX7Tp.js → panel-rpc-handlers-CYxO9OxE.js} +1 -1
  67. package/dist/ui/assets/{provider-Cs2-iVKM.js → provider-D1Ft0Nb8.js} +2 -2
  68. package/dist/ui/assets/provider-p23r1B9g.js +1 -0
  69. package/dist/ui/assets/provider-store-access-BIempBYx.js +1 -0
  70. package/dist/ui/assets/provider-store-access-D-VyHV75.js +1 -0
  71. package/dist/ui/assets/{proxied-fetch-B31wB0pw.js → proxied-fetch-KHVJs3Kj.js} +1 -1
  72. package/dist/ui/assets/{pyodide-BXKIZesR.js → pyodide-BJTshnbo.js} +2 -2
  73. package/dist/ui/assets/{remote-terminal-view-D8Lym4ke.js → remote-terminal-view-D53aNTEz.js} +1 -1
  74. package/dist/ui/assets/{remote-vfs-client-CX-U7Vpk.js → remote-vfs-client-Cm2KnQKl.js} +1 -1
  75. package/dist/ui/assets/{secret-env-We7YhnkP.js → secret-env-ChcPNQmy.js} +1 -1
  76. package/dist/ui/assets/{slicc-editor-D1shQp3f.js → slicc-editor-CjKFECEG.js} +1 -1
  77. package/dist/ui/assets/{spawn-BROIpDuE.js → spawn-BQcHMJGU.js} +1 -1
  78. package/dist/ui/assets/{sql-wasm-BKOzFTaN.js → sql-wasm-C9SZBPLh.js} +2 -2
  79. package/dist/ui/assets/{src-LhD223BJ.js → src-Duh03CdO.js} +2 -2
  80. package/dist/ui/assets/{store-DcwzvMDt.js → store-gTLi8tdo.js} +1 -1
  81. package/dist/ui/assets/{tray-leave-runtime-D0wlJrCA.js → tray-leave-runtime-COlsOS8N.js} +1 -1
  82. package/dist/ui/assets/{typescript-BegR4udl.js → typescript-rk7H1_FE.js} +9 -9
  83. package/dist/ui/assets/upgrade-detection--HvC0q7X.js +1 -0
  84. package/dist/ui/assets/{web-VQMyUYjU.js → web-SsRbZ_tV.js} +1 -1
  85. package/dist/ui/assets/{writable-vfs-client-C-OKNpFf.js → writable-vfs-client-CmIlnwCv.js} +1 -1
  86. package/dist/ui/assets/{ws-subscribers-CWuwl3YA.js → ws-subscribers-CVS-pepL.js} +1 -1
  87. package/dist/ui/assets/{xai-grok-g5ns0DU5.js → xai-grok-BR7eM-uM.js} +1 -1
  88. package/dist/ui/assets/{xai-grok-DEMNJsqQ.js → xai-grok-C0k59tLJ.js} +1 -1
  89. package/dist/ui/index.html +1 -1
  90. package/dist/ui/packages/webapp/index.html +1 -1
  91. package/package.json +8 -6
  92. package/dist/ui/assets/adobe-BkTvvNWq.js +0 -1
  93. package/dist/ui/assets/anthropic-HYC-Omg5.js +0 -39
  94. package/dist/ui/assets/azure-openai-CLWQP72f.js +0 -1
  95. package/dist/ui/assets/azure-openai-responses-33r3NvaZ.js +0 -1
  96. package/dist/ui/assets/azure-openai-responses-DUgZZ6eN.js +0 -1
  97. package/dist/ui/assets/cost-command-DNDC9f5s.js +0 -1
  98. package/dist/ui/assets/github-copilot-DB_-fjnz.js +0 -1
  99. package/dist/ui/assets/google-CbHlbByo.js +0 -1
  100. package/dist/ui/assets/google-shared-CR-aIyZa.js +0 -11
  101. package/dist/ui/assets/google-shared-DX0yj3UK.js +0 -364
  102. package/dist/ui/assets/lick-ws-bridge-DLkh-q6E.js +0 -1
  103. package/dist/ui/assets/mistral-3BOt-kpO.js +0 -46
  104. package/dist/ui/assets/mistral-7zIzaf30.js +0 -46
  105. package/dist/ui/assets/openai-codex-responses-DGMmjslY.js +0 -7
  106. package/dist/ui/assets/openai-codex-responses-DhoTOdH3.js +0 -7
  107. package/dist/ui/assets/openai-completions-CTH4LB2F.js +0 -5
  108. package/dist/ui/assets/openai-responses-D68JIQf1.js +0 -1
  109. package/dist/ui/assets/openai-responses-Hs-gRUiN.js +0 -1
  110. package/dist/ui/assets/openrouter-B2BsIHza.js +0 -1
  111. package/dist/ui/assets/openrouter-UArPIjqO.js +0 -1
  112. package/dist/ui/assets/provider-BYq4p5If.js +0 -1
  113. package/dist/ui/assets/provider-store-access-G9HYvkSk.js +0 -1
  114. package/dist/ui/assets/provider-store-access-Mcnc2eQL.js +0 -1
  115. package/dist/ui/assets/upgrade-detection-fcwNs12W.js +0 -1
@@ -1,7 +0,0 @@
1
- import{B as e,H as t,V as n,Z as r,at as i,et as a,it as o,y as s,z as c}from"./main-CiPLuc4Y.js";import{t as l}from"./headers-DO1UzNKu.js";import{n as u,r as d,t as f}from"./openai-responses-shared-S3zguGjk.js";var p=null,m=e=>i(()=>import(e),[]);typeof process<`u`&&(process.versions?.node||process.versions?.bun)&&m(`node:os`).then(e=>{p=e});var h=`https://chatgpt.com/backend-api`,g=`https://api.openai.com/auth`,_=3,v=1e3,y=new Set([`openai`,`openai-codex`,`opencode`]),b=1009,x=new Set([`completed`,`incomplete`,`failed`,`cancelled`,`queued`,`in_progress`]);function ee(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 S(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 C=(t,n,i)=>{let a=new r;return(async()=>{let r={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:`stop`,timestamp:Date.now()};try{let s=i?.apiKey||o(t.provider)||``;if(!s)throw Error(`No API key for provider: ${t.provider}`);let u=ye(s),d=w(t,n,i),f=await i?.onPayload?.(d,t);f!==void 0&&(d=f);let p=i?.sessionId||be(),m=xe(t.headers,i?.headers,u,s,i?.sessionId),h=Se(t.headers,i?.headers,u,s,p),g=JSON.stringify(d),y=i?.transport||`auto`,b=y!==`sse`&&z(i?.sessionId);if(b&&B(i?.sessionId),y!==`sse`&&!b){let n=!1;try{if(await _e(re(t.baseUrl),d,h,r,a,t,()=>{n=!0},i),i?.signal?.aborted)throw Error(`Request was aborted`);a.push({type:`done`,reason:r.stopReason,message:r}),a.end();return}catch(t){if(i?.signal?.aborted||A(t)||(c(r,e(`provider_transport_failure`,t,{configuredTransport:y,fallbackTransport:n?void 0:`sse`,eventsEmitted:n,phase:n?`after_message_stream_start`:`before_message_stream_start`,requestBytes:new TextEncoder().encode(g).byteLength})),V(i?.sessionId,t),n))throw t;B(i?.sessionId)}}let x,C;for(let e=0;e<=_;e++){if(i?.signal?.aborted)throw Error(`Request was aborted`);try{if(x=await fetch(D(t.baseUrl),{method:`POST`,headers:m,body:g,signal:i?.signal}),await i?.onResponse?.({status:x.status,headers:l(x.headers)},t),x.ok)break;let n=await x.text();if(e<_&&ee(x.status,n)){let t=v*2**e,n=x.headers.get(`retry-after-ms`);if(n!==null){let e=Number(n);Number.isFinite(e)&&(t=Math.max(0,e))}else{let e=x.headers.get(`retry-after`);if(e){let n=Number(e);if(Number.isFinite(n))t=Math.max(0,n*1e3);else{let n=Date.parse(e);Number.isNaN(n)||(t=Math.max(0,n-Date.now()))}}}await S(t,i?.signal);continue}let r=await ve(new Response(n,{status:x.status,statusText:x.statusText}));throw Error(r.friendlyMessage||r.message)}catch(t){if(t instanceof Error&&(t.name===`AbortError`||t.message===`Request was aborted`))throw Error(`Request was aborted`);if(C=t instanceof Error?t:Error(String(t)),e<_&&!C.message.includes(`usage limit`)){await S(v*2**e,i?.signal);continue}throw C}}if(!x?.ok)throw C??Error(`Failed after retries`);if(!x.body)throw Error(`No response body`);if(a.push({type:`start`,partial:r}),await ie(x,r,a,t,i),i?.signal?.aborted)throw Error(`Request was aborted`);a.push({type:`done`,reason:r.stopReason,message:r}),a.end()}catch(e){for(let e of r.content)delete e.partialJson;r.stopReason=i?.signal?.aborted?`aborted`:`error`,r.errorMessage=e instanceof Error?e.message:String(e),a.push({type:`error`,reason:r.stopReason,error:r}),a.end()}})(),a},te=(e,t,n)=>{let r=n?.apiKey||o(e.provider);if(!r)throw Error(`No API key for provider: ${e.provider}`);let i=s(e,n,r),c=n?.reasoning?a(e,n.reasoning):void 0,l=c===`off`?void 0:c;return C(e,t,{...i,reasoningEffort:l})};function w(e,t,n){let r=f(e,t,y,{includeSystemPrompt:!1}),i={model:e.id,store:!1,stream:!0,instructions:t.systemPrompt||`You are a helpful assistant.`,input:r,text:{verbosity:n?.textVerbosity||`low`},include:[`reasoning.encrypted_content`],prompt_cache_key:n?.sessionId,tool_choice:`auto`,parallel_tool_calls:!0};if(n?.temperature!==void 0&&(i.temperature=n.temperature),n?.serviceTier!==void 0&&(i.service_tier=n.serviceTier),t.tools&&t.tools.length>0&&(i.tools=u(t.tools,{strict:null})),n?.reasoningEffort!==void 0){let t=n.reasoningEffort===`none`?e.thinkingLevelMap?.off??`none`:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;t!==null&&(i.reasoning={effort:t,summary:n.reasoningSummary??`auto`})}return i}function ne(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function T(e,t,n){let r=ne(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 E(e,t){return e===`default`&&(t===`flex`||t===`priority`)?t:e??t}function D(e){let t=(e&&e.trim().length>0?e:h).replace(/\/+$/,``);return t.endsWith(`/codex/responses`)?t:t.endsWith(`/codex`)?`${t}/responses`:`${t}/codex/responses`}function re(e){let t=new URL(D(e));return t.protocol===`https:`&&(t.protocol=`wss:`),t.protocol===`http:`&&(t.protocol=`ws:`),t.toString()}async function ie(e,t,n,r,i){await d(j(oe(e)),t,n,r,{serviceTier:i?.serviceTier,resolveServiceTier:E,applyServiceTierPricing:(e,t)=>T(e,t,r)})}var O=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}},k=class extends Error{payload;constructor(e,t){super(e),this.name=`CodexProtocolError`,this.payload=t?.payload,this.cause=t?.cause}};function A(e){return e instanceof O||e instanceof k}async function*j(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||``;throw new O(`Codex error: ${t.message||e||JSON.stringify(t)}`,{code:e||void 0,payload:t})}if(e===`response.failed`){let e=t.response,n=e?.error?.code,r=e?.error?.message;throw new O(r||`Codex response failed`,{code:n,payload:t})}if(e===`response.done`||e===`response.completed`||e===`response.incomplete`){let e=t.response,n=e&&{...e,status:ae(e.status)};yield{...t,type:`response.completed`,response:n};return}yield t}}}function ae(e){if(typeof e==`string`)return x.has(e)?e:void 0}async function*oe(e){if(!e.body)return;let t=e.body.getReader(),r=new TextDecoder,i=``;try{for(;;){let{done:e,value:a}=await t.read();if(e)break;i+=r.decode(a,{stream:!0});let o=i.indexOf(`
2
-
3
- `);for(;o!==-1;){let e=i.slice(0,o);i=i.slice(o+2);let t=e.split(`
4
- `).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trim());if(t.length>0){let e=t.join(`
5
- `).trim();if(e&&e!==`[DONE]`)try{yield JSON.parse(e)}catch(t){throw new k(`Invalid Codex SSE JSON: ${n(t)}`,{cause:t,payload:e})}}o=i.indexOf(`
6
-
7
- `)}}}finally{try{await t.cancel()}catch{}try{t.releaseLock()}catch{}}}var M=`responses_websockets=2026-02-06`,N=300*1e3,P=new Map,F=new Map,I=new Set;function L(e){let t=F.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},F.set(e,t)),t}function se(e){let t=F.get(e);return t?{...t}:void 0}function ce(e){if(e){F.delete(e),I.delete(e);return}F.clear(),I.clear()}function R(e){let t=e=>{e.idleTimer&&clearTimeout(e.idleTimer),q(e.socket,1e3,`debug_close`)};if(e){let n=P.get(e);n&&t(n),P.delete(e);return}for(let e of P.values())t(e);P.clear()}t(R);function z(e){return e?I.has(e):!1}function B(e){if(!e)return;let t=L(e);t.sseFallbacks++,t.websocketFallbackActive=z(e)}function V(e,t){if(!e)return;I.add(e);let r=L(e);r.websocketFailures++,r.lastWebSocketError=n(t),r.websocketFallbackActive=!0}var H=null;async function U(){if(H)return H;if(process?.versions?.bun&&({}.HTTP_PROXY||{}.HTTPS_PROXY||{}.http_proxy||{}.https_proxy)){let e=(await m(`proxy-from-env`)).getProxyForUrl;return H=class extends WebSocket{constructor(t,n){let r={};r=Array.isArray(n)||typeof n==`string`?{protocols:n}:{...n};let i=e(t.toString().replace(/^wss:/,`https:`).replace(/^ws:/,`http:`));super(t,{...r,...i?{proxy:i}:{}})}},H}let e=globalThis.WebSocket;return typeof e==`function`?e:null}var W=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 G(e){let t=e.readyState;return typeof t==`number`?t:void 0}function K(e){let t=G(e);return t===void 0||t===1}function q(e,t=1e3,n=`done`){try{e.close(t,n)}catch{}}function J(e,t){t.idleTimer&&clearTimeout(t.idleTimer),t.idleTimer=setTimeout(()=>{t.busy||(q(t.socket,1e3,`idle_timeout`),P.delete(e))},N)}async function Y(e,t,n){let r=await U();if(!r)throw Error(`WebSocket transport is not available in this runtime`);let i=l(t);return delete i[`OpenAI-Beta`],new Promise((t,a)=>{let o=!1,s;try{s=new r(e,{headers:i})}catch(e){a(e instanceof Error?e:Error(String(e)));return}let c=()=>{o||(o=!0,f(),t(s))},l=e=>{let t=X(e);o||(o=!0,f(),a(t))},u=e=>{let t=Z(e);o||(o=!0,f(),a(t))},d=()=>{o||(o=!0,f(),s.close(1e3,`aborted`),a(Error(`Request was aborted`)))},f=()=>{s.removeEventListener(`open`,c),s.removeEventListener(`error`,l),s.removeEventListener(`close`,u),n?.removeEventListener(`abort`,d)};s.addEventListener(`open`,c),s.addEventListener(`error`,l),s.addEventListener(`close`,u),n?.addEventListener(`abort`,d)})}async function le(e,t,n,r){if(!n){let n=await Y(e,t,r);return{socket:n,reused:!1,release:({keep:e}={})=>{if(e===!1){q(n);return}q(n)}}}let i=P.get(n);if(i){if(i.idleTimer&&=(clearTimeout(i.idleTimer),void 0),!i.busy&&K(i.socket))return i.busy=!0,{socket:i.socket,entry:i,reused:!0,release:({keep:e}={})=>{if(!e||!K(i.socket)){q(i.socket),P.delete(n);return}i.busy=!1,J(n,i)}};if(i.busy){let n=await Y(e,t,r);return{socket:n,reused:!1,release:()=>{q(n)}}}K(i.socket)||(q(i.socket),P.delete(n))}let a=await Y(e,t,r),o={socket:a,busy:!0};return P.set(n,o),{socket:a,entry:o,reused:!1,release:({keep:e}={})=>{if(!e||!K(o.socket)){q(o.socket),o.idleTimer&&clearTimeout(o.idleTimer),P.get(n)===o&&P.delete(n);return}o.busy=!1,J(n,o)}}}function X(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 Z(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===b&&(a=` message too big`),new W(`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 ue(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*de(e,t){let r=[],i=null,a=!1,o=null,s=!1,c=()=>{if(!i)return;let e=i;i=null,e()},l=e=>{(async()=>{let t=null;try{if(!e||typeof e!=`object`||!(`data`in e)||(t=await ue(e.data),!t))return;let n=JSON.parse(t),i=typeof n.type==`string`?n.type:``;(i===`response.completed`||i===`response.done`||i===`response.incomplete`)&&(s=!0,a=!0),r.push(n),c()}catch(e){o=new k(`Invalid Codex WebSocket JSON: ${n(e)}`,{cause:e,payload:t}),a=!0,c()}})()},u=e=>{o=X(e),a=!0,c()},d=e=>{if(s){a=!0,c();return}o||=Z(e),a=!0,c()},f=()=>{o=Error(`Request was aborted`),a=!0,c()};e.addEventListener(`message`,l),e.addEventListener(`error`,u),e.addEventListener(`close`,d),t?.addEventListener(`abort`,f);try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);if(r.length>0){yield r.shift();continue}if(a)break;await new Promise(e=>{i=e})}if(o)throw o;if(!s)throw Error(`WebSocket stream closed before response.completed`)}finally{e.removeEventListener(`message`,l),e.removeEventListener(`error`,u),e.removeEventListener(`close`,d),t?.removeEventListener(`abort`,f)}}function Q(e){let{input:t,previous_response_id:n,...r}=e;return r}function fe(e,t){return JSON.stringify(e??[])===JSON.stringify(t??[])}function pe(e,t){return JSON.stringify(Q(e))===JSON.stringify(Q(t))}function me(e,t){if(!pe(e,t.lastRequestBody))return;let n=e.input??[],r=[...t.lastRequestBody.input??[],...t.lastResponseItems];if(!(n.length<r.length)&&fe(n.slice(0,r.length),r))return n.slice(r.length)}function he(e,t){let n=e.continuation;if(!n)return t;let r=me(t,n);return!r||!n.lastResponseId?(e.continuation=void 0,t):{...t,previous_response_id:n.lastResponseId,input:r}}async function*ge(e,t,n,r){let i=!1;for await(let a of e)i||(i=!0,r(),n.push({type:`start`,partial:t})),yield a}async function _e(e,t,n,r,i,a,o,s){let{socket:c,entry:l,reused:u,release:p}=await le(e,n,s?.sessionId,s?.signal),m=!0,h=s?.transport===`websocket-cached`||s?.transport===`auto`,g=t,_=h&&l?he(l,g):g,v=s?.sessionId?L(s.sessionId):void 0;v&&(v.requests++,u?v.connectionsReused++:v.connectionsCreated++,h&&v.cachedContextRequests++,_.store===!0&&v.storeTrueRequests++,v.lastInputItems=_.input?.length??0,_.previous_response_id?(v.deltaRequests++,v.lastDeltaInputItems=_.input?.length??0,v.lastPreviousResponseId=_.previous_response_id):(v.fullContextRequests++,v.lastDeltaInputItems=void 0,v.lastPreviousResponseId=void 0));try{if(c.send(JSON.stringify({type:`response.create`,..._})),await d(ge(j(de(c,s?.signal)),r,i,o),r,i,a,{serviceTier:s?.serviceTier,resolveServiceTier:E,applyServiceTierPricing:(e,t)=>T(e,t,a)}),s?.signal?.aborted)m=!1;else if(h&&l&&r.responseId){let e=f(a,{messages:[r]},y,{includeSystemPrompt:!1}).filter(e=>e.type!==`function_call_output`);l.continuation={lastRequestBody:g,lastResponseId:r.responseId,lastResponseItems:e}}}catch(e){throw l&&(l.continuation=void 0),m=!1,e}finally{p({keep:m})}}async function ve(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 ye(e){try{let t=e.split(`.`);if(t.length!==3)throw Error(`Invalid token`);let n=JSON.parse(atob(t[1]))?.[g]?.chatgpt_account_id;if(!n)throw Error(`No account ID in token`);return n}catch{throw Error(`Failed to extract accountId from token`)}}function be(){return typeof globalThis.crypto?.randomUUID==`function`?globalThis.crypto.randomUUID():`codex_${Date.now()}_${Math.random().toString(36).slice(2,10)}`}function $(e,t,n,r){let i=new Headers(e);for(let[e,n]of Object.entries(t||{}))i.set(e,n);i.set(`Authorization`,`Bearer ${r}`),i.set(`chatgpt-account-id`,n),i.set(`originator`,`pi`);let a=p?`pi (${p.platform()} ${p.release()}; ${p.arch()})`:`pi (browser)`;return i.set(`User-Agent`,a),i}function xe(e,t,n,r,i){let a=$(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 Se(e,t,n,r,i){let a=$(e,t,n,r);return a.delete(`accept`),a.delete(`content-type`),a.delete(`OpenAI-Beta`),a.delete(`openai-beta`),a.set(`OpenAI-Beta`,M),a.set(`x-client-request-id`,i),a.set(`session_id`,i),a}export{R as closeOpenAICodexWebSocketSessions,se as getOpenAICodexWebSocketDebugStats,ce as resetOpenAICodexWebSocketDebugStats,C as streamOpenAICodexResponses,te as streamSimpleOpenAICodexResponses};
@@ -1,7 +0,0 @@
1
- import{I as e,J as t,L as n,N as r,R as i,Z as a,tt as o,u as s,z as c}from"./kernel-worker-ApBe2nsN.js";import{n as l,r as u,t as d}from"./openai-responses-shared-yJFA8VNU.js";let f=null;const p=e=>import(e);typeof process<`u`&&(process.versions?.node||process.versions?.bun)&&p(`node:os`).then(e=>{f=e});const m=1e3,h=new Set([`openai`,`openai-codex`,`opencode`]),g=new Set([`completed`,`incomplete`,`failed`,`cancelled`,`queued`,`in_progress`]);function _(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 v(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`))})})}const y=(r,i,a)=>{let c=new t;return(async()=>{let t={role:`assistant`,content:[],api:`openai-codex-responses`,provider:r.provider,model:r.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 l=a?.apiKey||o(r.provider)||``;if(!l)throw Error(`No API key for provider: ${r.provider}`);let u=fe(l),d=ee(r,i,a),f=await a?.onPayload?.(d,r);f!==void 0&&(d=f);let p=a?.sessionId||pe(),h=me(r.headers,a?.headers,u,l,a?.sessionId),g=he(r.headers,a?.headers,u,l,p),y=JSON.stringify(d),b=a?.transport||`auto`,x=b!==`sse`&&R(a?.sessionId);if(x&&z(a?.sessionId),b!==`sse`&&!x){let i=!1;try{if(await ue(te(r.baseUrl),d,g,t,c,r,()=>{i=!0},a),a?.signal?.aborted)throw Error(`Request was aborted`);c.push({type:`done`,reason:t.stopReason,message:t}),c.end();return}catch(r){if(a?.signal?.aborted||O(r)||(e(t,n(`provider_transport_failure`,r,{configuredTransport:b,fallbackTransport:i?void 0:`sse`,eventsEmitted:i,phase:i?`after_message_stream_start`:`before_message_stream_start`,requestBytes:new TextEncoder().encode(y).byteLength})),re(a?.sessionId,r),i))throw r;z(a?.sessionId)}}let S,C;for(let e=0;e<=3;e++){if(a?.signal?.aborted)throw Error(`Request was aborted`);try{if(S=await fetch(w(r.baseUrl),{method:`POST`,headers:h,body:y,signal:a?.signal}),await a?.onResponse?.({status:S.status,headers:s(S.headers)},r),S.ok)break;let t=await S.text();if(e<3&&_(S.status,t)){let t=m*2**e,n=S.headers.get(`retry-after-ms`);if(n!==null){let e=Number(n);Number.isFinite(e)&&(t=Math.max(0,e))}else{let e=S.headers.get(`retry-after`);if(e){let n=Number(e);if(Number.isFinite(n))t=Math.max(0,n*1e3);else{let n=Date.parse(e);Number.isNaN(n)||(t=Math.max(0,n-Date.now()))}}}await v(t,a?.signal);continue}let n=await de(new Response(t,{status:S.status,statusText:S.statusText}));throw Error(n.friendlyMessage||n.message)}catch(t){if(t instanceof Error&&(t.name===`AbortError`||t.message===`Request was aborted`))throw Error(`Request was aborted`);if(C=t instanceof Error?t:Error(String(t)),e<3&&!C.message.includes(`usage limit`)){await v(m*2**e,a?.signal);continue}throw C}}if(!S?.ok)throw C??Error(`Failed after retries`);if(!S.body)throw Error(`No response body`);if(c.push({type:`start`,partial:t}),await T(S,t,c,r,a),a?.signal?.aborted)throw Error(`Request was aborted`);c.push({type:`done`,reason:t.stopReason,message:t}),c.end()}catch(e){for(let e of t.content)delete e.partialJson;t.stopReason=a?.signal?.aborted?`aborted`:`error`,t.errorMessage=e instanceof Error?e.message:String(e),c.push({type:`error`,reason:t.stopReason,error:t}),c.end()}})(),c},b=(e,t,n)=>{let i=n?.apiKey||o(e.provider);if(!i)throw Error(`No API key for provider: ${e.provider}`);let s=r(e,n,i),c=n?.reasoning?a(e,n.reasoning):void 0,l=c===`off`?void 0:c;return y(e,t,{...s,reasoningEffort:l})};function ee(e,t,n){let r=d(e,t,h,{includeSystemPrompt:!1}),i={model:e.id,store:!1,stream:!0,instructions:t.systemPrompt||`You are a helpful assistant.`,input:r,text:{verbosity:n?.textVerbosity||`low`},include:[`reasoning.encrypted_content`],prompt_cache_key:n?.sessionId,tool_choice:`auto`,parallel_tool_calls:!0};if(n?.temperature!==void 0&&(i.temperature=n.temperature),n?.serviceTier!==void 0&&(i.service_tier=n.serviceTier),t.tools&&t.tools.length>0&&(i.tools=l(t.tools,{strict:null})),n?.reasoningEffort!==void 0){let t=n.reasoningEffort===`none`?e.thinkingLevelMap?.off??`none`:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;t!==null&&(i.reasoning={effort:t,summary:n.reasoningSummary??`auto`})}return i}function x(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function S(e,t,n){let r=x(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 C(e,t){return e===`default`&&(t===`flex`||t===`priority`)?t:e??t}function w(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 te(e){let t=new URL(w(e));return t.protocol===`https:`&&(t.protocol=`wss:`),t.protocol===`http:`&&(t.protocol=`ws:`),t.toString()}async function T(e,t,n,r,i){await u(k(ne(e)),t,n,r,{serviceTier:i?.serviceTier,resolveServiceTier:C,applyServiceTierPricing:(e,t)=>S(e,t,r)})}var E=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}},D=class extends Error{payload;constructor(e,t){super(e),this.name=`CodexProtocolError`,this.payload=t?.payload,this.cause=t?.cause}};function O(e){return e instanceof E||e instanceof D}async function*k(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||``;throw new E(`Codex error: ${t.message||e||JSON.stringify(t)}`,{code:e||void 0,payload:t})}if(e===`response.failed`){let e=t.response,n=e?.error?.code,r=e?.error?.message;throw new E(r||`Codex response failed`,{code:n,payload:t})}if(e===`response.done`||e===`response.completed`||e===`response.incomplete`){let e=t.response,n=e&&{...e,status:A(e.status)};yield{...t,type:`response.completed`,response:n};return}yield t}}}function A(e){if(typeof e==`string`)return g.has(e)?e:void 0}async function*ne(e){if(!e.body)return;let t=e.body.getReader(),n=new TextDecoder,r=``;try{for(;;){let{done:e,value:a}=await t.read();if(e)break;r+=n.decode(a,{stream:!0});let o=r.indexOf(`
2
-
3
- `);for(;o!==-1;){let e=r.slice(0,o);r=r.slice(o+2);let t=e.split(`
4
- `).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trim());if(t.length>0){let e=t.join(`
5
- `).trim();if(e&&e!==`[DONE]`)try{yield JSON.parse(e)}catch(t){throw new D(`Invalid Codex SSE JSON: ${i(t)}`,{cause:t,payload:e})}}o=r.indexOf(`
6
-
7
- `)}}}finally{try{await t.cancel()}catch{}try{t.releaseLock()}catch{}}}const j=new Map,M=new Map,N=new Set;function P(e){let t=M.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},M.set(e,t)),t}function F(e){let t=M.get(e);return t?{...t}:void 0}function I(e){if(e){M.delete(e),N.delete(e);return}M.clear(),N.clear()}function L(e){let t=e=>{e.idleTimer&&clearTimeout(e.idleTimer),G(e.socket,1e3,`debug_close`)};if(e){let n=j.get(e);n&&t(n),j.delete(e);return}for(let e of j.values())t(e);j.clear()}c(L);function R(e){return e?N.has(e):!1}function z(e){if(!e)return;let t=P(e);t.sseFallbacks++,t.websocketFallbackActive=R(e)}function re(e,t){if(!e)return;N.add(e);let n=P(e);n.websocketFailures++,n.lastWebSocketError=i(t),n.websocketFallbackActive=!0}let B=null;async function V(){if(B)return B;if(process?.versions?.bun&&({}.HTTP_PROXY||{}.HTTPS_PROXY||{}.http_proxy||{}.https_proxy)){let e=(await p(`proxy-from-env`)).getProxyForUrl;return B=class extends WebSocket{constructor(t,n){let r={};r=Array.isArray(n)||typeof n==`string`?{protocols:n}:{...n};let i=e(t.toString().replace(/^wss:/,`https:`).replace(/^ws:/,`http:`));super(t,{...r,...i?{proxy:i}:{}})}},B}let e=globalThis.WebSocket;return typeof e==`function`?e:null}var H=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 U(e){let t=e.readyState;return typeof t==`number`?t:void 0}function W(e){let t=U(e);return t===void 0||t===1}function G(e,t=1e3,n=`done`){try{e.close(t,n)}catch{}}function K(e,t){t.idleTimer&&clearTimeout(t.idleTimer),t.idleTimer=setTimeout(()=>{t.busy||(G(t.socket,1e3,`idle_timeout`),j.delete(e))},3e5)}async function q(e,t,n){let r=await V();if(!r)throw Error(`WebSocket transport is not available in this runtime`);let i=s(t);return delete i[`OpenAI-Beta`],new Promise((t,a)=>{let o=!1,s;try{s=new r(e,{headers:i})}catch(e){a(e instanceof Error?e:Error(String(e)));return}let c=()=>{o||(o=!0,f(),t(s))},l=e=>{let t=Y(e);o||(o=!0,f(),a(t))},u=e=>{let t=X(e);o||(o=!0,f(),a(t))},d=()=>{o||(o=!0,f(),s.close(1e3,`aborted`),a(Error(`Request was aborted`)))},f=()=>{s.removeEventListener(`open`,c),s.removeEventListener(`error`,l),s.removeEventListener(`close`,u),n?.removeEventListener(`abort`,d)};s.addEventListener(`open`,c),s.addEventListener(`error`,l),s.addEventListener(`close`,u),n?.addEventListener(`abort`,d)})}async function J(e,t,n,r){if(!n){let n=await q(e,t,r);return{socket:n,reused:!1,release:({keep:e}={})=>{if(e===!1){G(n);return}G(n)}}}let i=j.get(n);if(i){if(i.idleTimer&&=(clearTimeout(i.idleTimer),void 0),!i.busy&&W(i.socket))return i.busy=!0,{socket:i.socket,entry:i,reused:!0,release:({keep:e}={})=>{if(!e||!W(i.socket)){G(i.socket),j.delete(n);return}i.busy=!1,K(n,i)}};if(i.busy){let n=await q(e,t,r);return{socket:n,reused:!1,release:()=>{G(n)}}}W(i.socket)||(G(i.socket),j.delete(n))}let a=await q(e,t,r),o={socket:a,busy:!0};return j.set(n,o),{socket:a,entry:o,reused:!1,release:({keep:e}={})=>{if(!e||!W(o.socket)){G(o.socket),o.idleTimer&&clearTimeout(o.idleTimer),j.get(n)===o&&j.delete(n);return}o.busy=!1,K(n,o)}}}function Y(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 X(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 H(`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 ie(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*ae(e,t){let n=[],r=null,a=!1,o=null,s=!1,c=()=>{if(!r)return;let e=r;r=null,e()},l=e=>{(async()=>{let t=null;try{if(!e||typeof e!=`object`||!(`data`in e)||(t=await ie(e.data),!t))return;let r=JSON.parse(t),i=typeof r.type==`string`?r.type:``;(i===`response.completed`||i===`response.done`||i===`response.incomplete`)&&(s=!0,a=!0),n.push(r),c()}catch(e){o=new D(`Invalid Codex WebSocket JSON: ${i(e)}`,{cause:e,payload:t}),a=!0,c()}})()},u=e=>{o=Y(e),a=!0,c()},d=e=>{if(s){a=!0,c();return}o||=X(e),a=!0,c()},f=()=>{o=Error(`Request was aborted`),a=!0,c()};e.addEventListener(`message`,l),e.addEventListener(`error`,u),e.addEventListener(`close`,d),t?.addEventListener(`abort`,f);try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);if(n.length>0){yield n.shift();continue}if(a)break;await new Promise(e=>{r=e})}if(o)throw o;if(!s)throw Error(`WebSocket stream closed before response.completed`)}finally{e.removeEventListener(`message`,l),e.removeEventListener(`error`,u),e.removeEventListener(`close`,d),t?.removeEventListener(`abort`,f)}}function Z(e){let{input:t,previous_response_id:n,...r}=e;return r}function oe(e,t){return JSON.stringify(e??[])===JSON.stringify(t??[])}function se(e,t){return JSON.stringify(Z(e))===JSON.stringify(Z(t))}function Q(e,t){if(!se(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 ce(e,t){let n=e.continuation;if(!n)return t;let r=Q(t,n);return!r||!n.lastResponseId?(e.continuation=void 0,t):{...t,previous_response_id:n.lastResponseId,input:r}}async function*le(e,t,n,r){let i=!1;for await(let a of e)i||(i=!0,r(),n.push({type:`start`,partial:t})),yield a}async function ue(e,t,n,r,i,a,o,s){let{socket:c,entry:l,reused:f,release:p}=await J(e,n,s?.sessionId,s?.signal),m=!0,g=s?.transport===`websocket-cached`||s?.transport===`auto`,_=t,v=g&&l?ce(l,_):_,y=s?.sessionId?P(s.sessionId):void 0;y&&(y.requests++,f?y.connectionsReused++:y.connectionsCreated++,g&&y.cachedContextRequests++,v.store===!0&&y.storeTrueRequests++,y.lastInputItems=v.input?.length??0,v.previous_response_id?(y.deltaRequests++,y.lastDeltaInputItems=v.input?.length??0,y.lastPreviousResponseId=v.previous_response_id):(y.fullContextRequests++,y.lastDeltaInputItems=void 0,y.lastPreviousResponseId=void 0));try{if(c.send(JSON.stringify({type:`response.create`,...v})),await u(le(k(ae(c,s?.signal)),r,i,o),r,i,a,{serviceTier:s?.serviceTier,resolveServiceTier:C,applyServiceTierPricing:(e,t)=>S(e,t,a)}),s?.signal?.aborted)m=!1;else if(g&&l&&r.responseId){let e=d(a,{messages:[r]},h,{includeSystemPrompt:!1}).filter(e=>e.type!==`function_call_output`);l.continuation={lastRequestBody:_,lastResponseId:r.responseId,lastResponseItems:e}}}catch(e){throw l&&(l.continuation=void 0),m=!1,e}finally{p({keep:m})}}async function de(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 pe(){return typeof globalThis.crypto?.randomUUID==`function`?globalThis.crypto.randomUUID():`codex_${Date.now()}_${Math.random().toString(36).slice(2,10)}`}function $(e,t,n,r){let i=new Headers(e);for(let[e,n]of Object.entries(t||{}))i.set(e,n);i.set(`Authorization`,`Bearer ${r}`),i.set(`chatgpt-account-id`,n),i.set(`originator`,`pi`);let a=f?`pi (${f.platform()} ${f.release()}; ${f.arch()})`:`pi (browser)`;return i.set(`User-Agent`,a),i}function me(e,t,n,r,i){let a=$(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 he(e,t,n,r,i){let a=$(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{L as closeOpenAICodexWebSocketSessions,F as getOpenAICodexWebSocketDebugStats,I as resetOpenAICodexWebSocketDebugStats,y as streamOpenAICodexResponses,b as streamSimpleOpenAICodexResponses};
@@ -1,5 +0,0 @@
1
- import{$ as e,R as t,Z as n,_ as r,et as i,it as a,y as o}from"./main-CiPLuc4Y.js";import{t as s}from"./headers-DO1UzNKu.js";import{t as c}from"./sanitize-unicode-DmIE6hZJ.js";import{i as l,n as u,r as d,t as f}from"./github-copilot-headers-DZtWWv8W.js";import{n as p}from"./openai-Cn5LRPCm.js";function m(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 h(e){return e.type===`text`}function g(e){return e.type===`thinking`}function _(e){return e.type===`toolCall`}function v(e){return e.type===`image`}function y(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}var b=(e,r,i)=>{let o=new n;return(async()=>{let n={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:`stop`,timestamp:Date.now()};try{let c=i?.apiKey||a(e.provider)||``,l=L(e),u=y(i?.cacheRetention),d=u===`none`?void 0:i?.sessionId,f=S(e,r,c,i?.headers,d,l),p=C(e,r,i,l,u),m=await i?.onPayload?.(p,e);m!==void 0&&(p=m);let h={...i?.signal?{signal:i.signal}:{},...i?.timeoutMs===void 0?{}:{timeout:i.timeoutMs},...i?.maxRetries===void 0?{}:{maxRetries:i.maxRetries}},{data:g,response:_}=await f.chat.completions.create(p,h).withResponse();await i?.onResponse?.({status:_.status,headers:s(_.headers)},e),o.push({type:`start`,partial:n});let v=null,b=null,x=!1,w=new Map,T=new Map,E=n.content,D=e=>E.indexOf(e),O=e=>{let r=D(e);r!==-1&&(e.type===`text`?o.push({type:`text_end`,contentIndex:r,content:e.text,partial:n}):e.type===`thinking`?o.push({type:`thinking_end`,contentIndex:r,content:e.thinking,partial:n}):e.type===`toolCall`&&(e.arguments=t(e.partialArgs),delete e.partialArgs,delete e.streamIndex,o.push({type:`toolcall_end`,contentIndex:r,toolCall:e,partial:n})))},k=()=>(v||(v={type:`text`,text:``},E.push(v),o.push({type:`text_start`,contentIndex:D(v),partial:n})),v),A=e=>(b||(b={type:`thinking`,thinking:``,thinkingSignature:e},E.push(b),o.push({type:`thinking_start`,contentIndex:D(b),partial:n})),b),j=e=>{let t=typeof e.index==`number`?e.index:void 0,r=t===void 0?void 0:w.get(t);return!r&&e.id&&(r=T.get(e.id)),r||(r={type:`toolCall`,id:e.id||``,name:e.function?.name||``,arguments:{},partialArgs:``,streamIndex:t},t!==void 0&&w.set(t,r),e.id&&T.set(e.id,r),E.push(r),o.push({type:`toolcall_start`,contentIndex:D(r),partial:n})),t!==void 0&&r.streamIndex===void 0&&(r.streamIndex=t,w.set(t,r)),e.id&&T.set(e.id,r),r};for await(let r of g){if(!r||typeof r!=`object`)continue;n.responseId||=r.id,typeof r.model==`string`&&r.model.length>0&&r.model!==e.id&&(n.responseModel||=r.model),r.usage&&(n.usage=P(r.usage,e));let i=Array.isArray(r.choices)?r.choices[0]:void 0;if(i){if(!r.usage&&i.usage&&(n.usage=P(i.usage,e)),i.finish_reason){let e=F(i.finish_reason);n.stopReason=e.stopReason,e.errorMessage&&(n.errorMessage=e.errorMessage),x=!0}if(i.delta){if(i.delta.content!==null&&i.delta.content!==void 0&&i.delta.content.length>0){let e=k();e.text+=i.delta.content,o.push({type:`text_delta`,contentIndex:D(e),delta:i.delta.content,partial:n})}let r=[`reasoning_content`,`reasoning`,`reasoning_text`],a=i.delta,s=null;for(let e of r){let t=a[e];if(typeof t==`string`&&t.length>0){s=e;break}}if(s){let t=a[s];if(typeof t==`string`&&t.length>0){let r=A(e.provider===`opencode-go`&&s===`reasoning`?`reasoning_content`:s);r.thinking+=t,o.push({type:`thinking_delta`,contentIndex:D(r),delta:t,partial:n})}}if(i?.delta?.tool_calls)for(let e of i.delta.tool_calls){let r=j(e);!r.id&&e.id&&(r.id=e.id,T.set(e.id,r)),!r.name&&e.function?.name&&(r.name=e.function.name);let i=``;e.function?.arguments&&(i=e.function.arguments,r.partialArgs=(r.partialArgs??``)+e.function.arguments,r.arguments=t(r.partialArgs)),o.push({type:`toolcall_delta`,contentIndex:D(r),delta:i,partial:n})}let c=i.delta.reasoning_details;if(c&&Array.isArray(c)){for(let e of c)if(e.type===`reasoning.encrypted`&&e.id&&e.data){let t=n.content.find(t=>t.type===`toolCall`&&t.id===e.id);t&&(t.thoughtSignature=JSON.stringify(e))}}}}}for(let e of E)O(e);if(i?.signal?.aborted||n.stopReason===`aborted`)throw Error(`Request was aborted`);if(n.stopReason===`error`)throw Error(n.errorMessage||`Provider returned an error stop reason`);if(!x)throw Error(`Stream ended without finish_reason`);o.push({type:`done`,reason:n.stopReason,message:n}),o.end()}catch(e){for(let e of n.content)delete e.index,delete e.partialArgs,delete e.streamIndex;n.stopReason=i?.signal?.aborted?`aborted`:`error`,n.errorMessage=e instanceof Error?e.message:JSON.stringify(e);let t=e?.error?.metadata?.raw;t&&(n.errorMessage+=`\n${t}`),o.push({type:`error`,reason:n.stopReason,error:n}),o.end()}})(),o},x=(e,t,n)=>{let r=n?.apiKey||a(e.provider);if(!r)throw Error(`No API key for provider: ${e.provider}`);let s=o(e,n,r),c=n?.reasoning?i(e,n.reasoning):void 0,l=c===`off`?void 0:c,u=n?.toolChoice;return b(e,t,{...s,reasoningEffort:l,toolChoice:u})};function S(e,t,n,r,i,a=L(e)){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 o={...e.headers};if(e.provider===`github-copilot`){let e=u(t.messages),n=f({messages:t.messages,hasImages:e});Object.assign(o,n)}i&&a.sendSessionAffinityHeaders&&(o.session_id=i,o[`x-client-request-id`]=i,o[`x-session-affinity`]=i),r&&Object.assign(o,r);let s=e.provider===`cloudflare-ai-gateway`?{...o,Authorization:o.Authorization??null,"cf-aig-authorization":`Bearer ${n}`}:o;return new p({apiKey:n,baseURL:d(e.provider)?l(e):e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:s})}function C(e,t,n,r=L(e),i=y(n?.cacheRetention)){let a=M(e,t,r),o=w(r,i),s={model:e.id,messages:a,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&i!==`none`||i===`long`&&r.supportsLongCacheRetention?n?.sessionId:void 0,prompt_cache_retention:i===`long`&&r.supportsLongCacheRetention?`24h`:void 0};if(r.supportsUsageInStreaming!==!1&&(s.stream_options={include_usage:!0}),r.supportsStore&&(s.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?s.max_tokens=n.maxTokens:s.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(s.temperature=n.temperature),t.tools&&t.tools.length>0?(s.tools=N(t.tools,r),r.zaiToolStream&&(s.tool_stream=!0)):m(t.messages)&&(s.tools=[]),o&&T(a,s.tools,o),n?.toolChoice&&(s.tool_choice=n.toolChoice),r.thinkingFormat===`zai`&&e.reasoning)s.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen`&&e.reasoning)s.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)s.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort,preserve_thinking:!0};else if(r.thinkingFormat===`deepseek`&&e.reasoning)s.thinking={type:n?.reasoningEffort?`enabled`:`disabled`},n?.reasoningEffort&&(s.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort);else if(r.thinkingFormat===`openrouter`&&e.reasoning){let t=s;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===`together`&&e.reasoning){let t=s;t.reasoning={enabled:!!n?.reasoningEffort},n?.reasoningEffort&&r.supportsReasoningEffort&&(t.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort)}else if(n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort)s.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;else if(!n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.off;typeof t==`string`&&(s.reasoning_effort=t)}if(e.baseUrl.includes(`openrouter.ai`)&&e.compat?.openRouterRouting&&(s.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),s.providerOptions={gateway:e}}}return s}function w(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 T(e,t,n){E(e,n),O(t,n),D(e,n)}function E(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){k(n,t);return}}function D(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`)&&A(r,t))return}}function O(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function k(e,t){return j(e,t)}function A(e,t){return e.role===`user`||e.role===`assistant`?j(e,t):!1}function j(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 M(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 e=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}`}});if(e.length===0)continue;i.push({role:`user`,content:e})}else if(r.role===`assistant`){let t={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},a=r.content.filter(h).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:c(e.text)})),o=a.map(e=>e.text).join(``),s=r.content.filter(g).filter(e=>e.thinking.trim().length>0);if(s.length>0)if(n.requiresThinkingAsText)t.content=[{type:`text`,text:s.map(e=>c(e.thinking)).join(`
2
-
3
- `)},...a];else{o.length>0&&(t.content=o);let n=s[0].thinkingSignature;e.provider===`opencode-go`&&n===`reasoning`&&(n=`reasoning_content`),n&&n.length>0&&(t[n]=s.map(e=>e.thinking).join(`
4
- `))}else o.length>0&&(t.content=o);let l=r.content.filter(_);if(l.length>0){t.tool_calls=l.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments)}}));let e=l.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 u=t.content;if(!(u!=null&&u.length>0)&&!t.tool_calls)continue;i.push(t)}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(h).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)v(e)&&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 N(e,t){return e.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.parameters,...t.supportsStrictMode!==!1&&{strict:!1}}}))}function P(t,n){let r=t.prompt_tokens||0,i=t.prompt_tokens_details?.cached_tokens??t.prompt_cache_hit_tokens??0,a=t.prompt_tokens_details?.cache_write_tokens||0,o=Math.max(0,r-i-a),s=t.completion_tokens||0,c={input:o,output:s,cacheRead:i,cacheWrite:a,totalTokens:o+s+i+a,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};return e(n,c),c}function F(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 I(e){let t=e.provider,n=e.baseUrl,r=t===`zai`||n.includes(`api.z.ai`),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===`cloudflare-workers-ai`||n.includes(`api.cloudflare.com`),s=t===`cloudflare-ai-gateway`||n.includes(`gateway.ai.cloudflare.com`),c=t===`cerebras`||n.includes(`cerebras.ai`)||t===`xai`||n.includes(`api.x.ai`)||i||n.includes(`chutes.ai`)||n.includes(`deepseek.com`)||r||a||t===`opencode`||n.includes(`opencode.ai`)||o||s,l=n.includes(`chutes.ai`)||a||s||i,u=t===`xai`||n.includes(`api.x.ai`),d=t===`deepseek`||n.includes(`deepseek.com`),f=t===`openrouter`&&e.id.startsWith(`anthropic/`)?`anthropic`:void 0;return{supportsStore:!c,supportsDeveloperRole:!c,supportsReasoningEffort:!u&&!r&&!a&&!i&&!s,supportsUsageInStreaming:!0,maxTokensField:l?`max_tokens`:`max_completion_tokens`,requiresToolResultName:!1,requiresAssistantAfterToolResult:!1,requiresThinkingAsText:!1,requiresReasoningContentOnAssistantMessages:d,thinkingFormat:d?`deepseek`:r?`zai`:i?`together`:t===`openrouter`||n.includes(`openrouter.ai`)?`openrouter`:`openai`,openRouterRouting:{},vercelGatewayRouting:{},zaiToolStream:!1,supportsStrictMode:!a&&!i&&!s,cacheControlFormat:f,sendSessionAffinityHeaders:!1,supportsLongCacheRetention:!(i||o||s)}}function L(e){let t=I(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,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,zaiToolStream:e.compat.zaiToolStream??t.zaiToolStream,supportsStrictMode:e.compat.supportsStrictMode??t.supportsStrictMode,cacheControlFormat:e.compat.cacheControlFormat??t.cacheControlFormat,sendSessionAffinityHeaders:e.compat.sendSessionAffinityHeaders??t.sendSessionAffinityHeaders,supportsLongCacheRetention:e.compat.supportsLongCacheRetention??t.supportsLongCacheRetention}:t}export{M as convertMessages,b as streamOpenAICompletions,x as streamSimpleOpenAICompletions};
@@ -1 +0,0 @@
1
- import{J as e,N as t,Z as n,a as r,c as i,f as a,o,s,tt as c,u as l}from"./kernel-worker-ApBe2nsN.js";import{n as u,r as d,t as f}from"./openai-responses-shared-yJFA8VNU.js";const p=new Set([`openai`,`openai-codex`,`opencode`]);function m(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}function h(e){return{sendSessionIdHeader:e.compat?.sendSessionIdHeader??!0,supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0}}function g(e,t){return t===`long`&&e.supportsLongCacheRetention?`24h`:void 0}function _(e){if(e instanceof Error){let t=e.status,n=typeof t==`number`?t:void 0;return n===void 0?e.message:`OpenAI API error (${n}): ${e.message}`}try{return JSON.stringify(e)}catch{return String(e)}}const v=(t,n,r)=>{let i=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:`stop`,timestamp:Date.now()};try{let a=r?.apiKey||c(t.provider)||``,o=m(r?.cacheRetention)===`none`?void 0:r?.sessionId,s=b(t,n,a,r?.headers,o),u=x(t,n,r),f=await r?.onPayload?.(u,t);f!==void 0&&(u=f);let p={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},...r?.maxRetries===void 0?{}:{maxRetries:r.maxRetries}},{data:h,response:g}=await s.responses.create(u,p).withResponse();if(await r?.onResponse?.({status:g.status,headers:l(g.headers)},t),i.push({type:`start`,partial:e}),await d(h,e,i,t,{serviceTier:r?.serviceTier,applyServiceTierPricing:(e,n)=>C(e,n,t)}),r?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(`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.index,delete t.partialJson;e.stopReason=r?.signal?.aborted?`aborted`:`error`,e.errorMessage=_(t),i.push({type:`error`,reason:e.stopReason,error:e}),i.end()}})(),i},y=(e,r,i)=>{let a=i?.apiKey||c(e.provider);if(!a)throw Error(`No API key for provider: ${e.provider}`);let o=t(e,i,a),s=i?.reasoning?n(e,i.reasoning):void 0,l=s===`off`?void 0:s;return v(e,r,{...o,reasoningEffort:l})};function b(e,t,n,c,l){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 u=h(e),d={...e.headers};if(e.provider===`github-copilot`){let e=o(t.messages),n=r({messages:t.messages,hasImages:e});Object.assign(d,n)}l&&(u.sendSessionIdHeader&&(d.session_id=l),d[`x-client-request-id`]=l),c&&Object.assign(d,c);let f=e.provider===`cloudflare-ai-gateway`?{...d,Authorization:d.Authorization??null,"cf-aig-authorization":`Bearer ${n}`}:d;return new a({apiKey:n,baseURL:s(e.provider)?i(e):e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:f})}function x(e,t,n){let r=f(e,t,p),i=m(n?.cacheRetention),a=h(e),o={model:e.id,input:r,stream:!0,prompt_cache_key:i===`none`?void 0:n?.sessionId,prompt_cache_retention:g(a,i),store:!1};return n?.maxTokens&&(o.max_output_tokens=n?.maxTokens),n?.temperature!==void 0&&(o.temperature=n?.temperature),n?.serviceTier!==void 0&&(o.service_tier=n.serviceTier),t.tools&&t.tools.length>0&&(o.tools=u(t.tools)),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(o.reasoning={effort:n?.reasoningEffort?e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:`medium`,summary:n?.reasoningSummary||`auto`},o.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&e.thinkingLevelMap?.off!==null&&(o.reasoning={effort:e.thinkingLevelMap?.off??`none`})),o}function S(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function C(e,t,n){let r=S(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{v as streamOpenAIResponses,y as streamSimpleOpenAIResponses};
@@ -1 +0,0 @@
1
- import{Z as e,et as t,it as n,y as r}from"./main-CiPLuc4Y.js";import{t as i}from"./headers-DO1UzNKu.js";import{i as a,n as o,r as s,t as c}from"./github-copilot-headers-DZtWWv8W.js";import{n as l}from"./openai-Cn5LRPCm.js";import{n as u,r as d,t as f}from"./openai-responses-shared-S3zguGjk.js";var p=new Set([`openai`,`openai-codex`,`opencode`]);function m(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}function h(e){return{sendSessionIdHeader:e.compat?.sendSessionIdHeader??!0,supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0}}function g(e,t){return t===`long`&&e.supportsLongCacheRetention?`24h`:void 0}function _(e){if(e instanceof Error){let t=e.status,n=typeof t==`number`?t:void 0;return n===void 0?e.message:`OpenAI API error (${n}): ${e.message}`}try{return JSON.stringify(e)}catch{return String(e)}}var v=(t,r,a)=>{let o=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:`stop`,timestamp:Date.now()};try{let s=a?.apiKey||n(t.provider)||``,c=m(a?.cacheRetention)===`none`?void 0:a?.sessionId,l=b(t,r,s,a?.headers,c),u=x(t,r,a),f=await a?.onPayload?.(u,t);f!==void 0&&(u=f);let p={...a?.signal?{signal:a.signal}:{},...a?.timeoutMs===void 0?{}:{timeout:a.timeoutMs},...a?.maxRetries===void 0?{}:{maxRetries:a.maxRetries}},{data:h,response:g}=await l.responses.create(u,p).withResponse();if(await a?.onResponse?.({status:g.status,headers:i(g.headers)},t),o.push({type:`start`,partial:e}),await d(h,e,o,t,{serviceTier:a?.serviceTier,applyServiceTierPricing:(e,n)=>C(e,n,t)}),a?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(`An unknown error occurred`);o.push({type:`done`,reason:e.stopReason,message:e}),o.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialJson;e.stopReason=a?.signal?.aborted?`aborted`:`error`,e.errorMessage=_(t),o.push({type:`error`,reason:e.stopReason,error:e}),o.end()}})(),o},y=(e,i,a)=>{let o=a?.apiKey||n(e.provider);if(!o)throw Error(`No API key for provider: ${e.provider}`);let s=r(e,a,o),c=a?.reasoning?t(e,a.reasoning):void 0,l=c===`off`?void 0:c;return v(e,i,{...s,reasoningEffort:l})};function b(e,t,n,r,i){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 u=h(e),d={...e.headers};if(e.provider===`github-copilot`){let e=o(t.messages),n=c({messages:t.messages,hasImages:e});Object.assign(d,n)}i&&(u.sendSessionIdHeader&&(d.session_id=i),d[`x-client-request-id`]=i),r&&Object.assign(d,r);let f=e.provider===`cloudflare-ai-gateway`?{...d,Authorization:d.Authorization??null,"cf-aig-authorization":`Bearer ${n}`}:d;return new l({apiKey:n,baseURL:s(e.provider)?a(e):e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:f})}function x(e,t,n){let r=f(e,t,p),i=m(n?.cacheRetention),a=h(e),o={model:e.id,input:r,stream:!0,prompt_cache_key:i===`none`?void 0:n?.sessionId,prompt_cache_retention:g(a,i),store:!1};return n?.maxTokens&&(o.max_output_tokens=n?.maxTokens),n?.temperature!==void 0&&(o.temperature=n?.temperature),n?.serviceTier!==void 0&&(o.service_tier=n.serviceTier),t.tools&&t.tools.length>0&&(o.tools=u(t.tools)),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(o.reasoning={effort:n?.reasoningEffort?e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:`medium`,summary:n?.reasoningSummary||`auto`},o.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&e.thinkingLevelMap?.off!==null&&(o.reasoning={effort:e.thinkingLevelMap?.off??`none`})),o}function S(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function C(e,t,n){let r=S(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{v as streamOpenAIResponses,y as streamSimpleOpenAIResponses};
@@ -1 +0,0 @@
1
- import{it as e}from"./main-CiPLuc4Y.js";import{t}from"./headers-DO1UzNKu.js";import{t as n}from"./sanitize-unicode-DmIE6hZJ.js";import{n as r}from"./openai-Cn5LRPCm.js";var i=async(n,r,i)=>{let c={api:n.api,provider:n.provider,model:n.id,output:[],stopReason:`stop`,timestamp:Date.now()};try{let l=i?.apiKey||e(n.provider);if(!l)throw Error(`No API key available for provider: ${n.provider}`);let u=a(n,l,i?.headers),d=o(n,r),f=await i?.onPayload?.(d,n);f!==void 0&&(d=f);let p={...i?.signal?{signal:i.signal}:{},...i?.timeoutMs===void 0?{}:{timeout:i.timeoutMs},...i?.maxRetries===void 0?{}:{maxRetries:i.maxRetries}},{data:m,response:h}=await u.chat.completions.create(d,p).withResponse();await i?.onResponse?.({status:h.status,headers:t(h.headers)},n);let g=m;c.responseId=g.id,g.usage&&(c.usage=s(g.usage,n));let _=g.choices[0];if(_){let e=_.message.content;typeof e==`string`&&e.length>0&&c.output.push({type:`text`,text:e});for(let e of _.message.images??[]){let t=typeof e.image_url==`string`?e.image_url:e.image_url?.url;if(!t?.startsWith(`data:`))continue;let n=t.match(/^data:([^;]+);base64,(.+)$/);n&&c.output.push({type:`image`,mimeType:n[1],data:n[2]})}}return c}catch(e){return c.stopReason=i?.signal?.aborted?`aborted`:`error`,c.errorMessage=e instanceof Error?e.message:JSON.stringify(e),c}};function a(e,t,n){return new r({apiKey:t,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:{...e.headers,...n}})}function o(e,t){let r=t.input.map(e=>e.type===`text`?{type:`text`,text:n(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});return{model:e.id,messages:[{role:`user`,content:r}],stream:!1,modalities:e.output.includes(`text`)?[`image`,`text`]:[`image`]}}function s(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=i>0?Math.max(0,r-i):r,o=Math.max(0,n-a-i),s=e.completion_tokens||0,c={input:o,output:s,cacheRead:a,cacheWrite:i,totalTokens:o+s+a+i,cost:{input:t.cost.input/1e6*o,output:t.cost.output/1e6*s,cacheRead:t.cost.cacheRead/1e6*a,cacheWrite:t.cost.cacheWrite/1e6*i,total:0}};return c.cost.total=c.cost.input+c.cost.output+c.cost.cacheRead+c.cost.cacheWrite,c}export{i as generateImagesOpenRouter};
@@ -1 +0,0 @@
1
- import{f as e,l as t,tt as n,u as r}from"./kernel-worker-ApBe2nsN.js";const i=async(e,t,i)=>{let c={api:e.api,provider:e.provider,model:e.id,output:[],stopReason:`stop`,timestamp:Date.now()};try{let l=i?.apiKey||n(e.provider);if(!l)throw Error(`No API key available for provider: ${e.provider}`);let u=a(e,l,i?.headers),d=o(e,t),f=await i?.onPayload?.(d,e);f!==void 0&&(d=f);let p={...i?.signal?{signal:i.signal}:{},...i?.timeoutMs===void 0?{}:{timeout:i.timeoutMs},...i?.maxRetries===void 0?{}:{maxRetries:i.maxRetries}},{data:m,response:h}=await u.chat.completions.create(d,p).withResponse();await i?.onResponse?.({status:h.status,headers:r(h.headers)},e);let g=m;c.responseId=g.id,g.usage&&(c.usage=s(g.usage,e));let _=g.choices[0];if(_){let e=_.message.content;typeof e==`string`&&e.length>0&&c.output.push({type:`text`,text:e});for(let e of _.message.images??[]){let t=typeof e.image_url==`string`?e.image_url:e.image_url?.url;if(!t?.startsWith(`data:`))continue;let n=t.match(/^data:([^;]+);base64,(.+)$/);n&&c.output.push({type:`image`,mimeType:n[1],data:n[2]})}}return c}catch(e){return c.stopReason=i?.signal?.aborted?`aborted`:`error`,c.errorMessage=e instanceof Error?e.message:JSON.stringify(e),c}};function a(t,n,r){return new e({apiKey:n,baseURL:t.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:{...t.headers,...r}})}function o(e,n){let r=n.input.map(e=>e.type===`text`?{type:`text`,text:t(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});return{model:e.id,messages:[{role:`user`,content:r}],stream:!1,modalities:e.output.includes(`text`)?[`image`,`text`]:[`image`]}}function s(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=i>0?Math.max(0,r-i):r,o=Math.max(0,n-a-i),s=e.completion_tokens||0,c={input:o,output:s,cacheRead:a,cacheWrite:i,totalTokens:o+s+a+i,cost:{input:t.cost.input/1e6*o,output:t.cost.output/1e6*s,cacheRead:t.cost.cacheRead/1e6*a,cacheWrite:t.cost.cacheWrite/1e6*i,total:0}};return c.cost.total=c.cost.input+c.cost.output+c.cost.cacheRead+c.cost.cacheWrite,c}export{i as generateImagesOpenRouter};
@@ -1 +0,0 @@
1
- import{C as e,D as t,O as n,at as r,gt as i,ot as a,st as o}from"./kernel-worker-ApBe2nsN.js";import{discoverAuth as s,refreshAccessToken as c,runAuthFlow as l}from"./oauth-DLszIWW7.js";import{n as u}from"./store-DcwzvMDt.js";const d=i(`mcp-provider`);function f(){return typeof globalThis<`u`&&globalThis.indexedDB!==void 0}function p(e){return`mcp:${e}`}const m=new Map,h=new Set;async function g(){let e=typeof chrome<`u`?chrome:void 0;if(e?.runtime?.id)return e.identity?.getRedirectURL?.(`mcp-callback`)??`https://${e.runtime.id}.chromiumapp.org/mcp-callback`;let{getOAuthPageOrigin:t}=await import(`./oauth-service-DclCNOyC.js`),{origin:n}=await t();return`${n}/auth/callback`}async function _(e){if(e)return e;let{createProxiedFetch:t}=await import(`./kernel-worker-ApBe2nsN.js`).then(e=>e.x),n=t();return async(e,t)=>{let r=await n(e,{method:t?.method,headers:t?.headers,body:t?.body}),i=new TextDecoder().decode(r.body);return{ok:r.status>=200&&r.status<300,status:r.status,statusText:r.statusText,text:async()=>i,json:async()=>JSON.parse(i),headers:{get:e=>r.headers[e.toLowerCase()]??null}}}}async function v(e){let t=m.get(p(e.name));if(t)return t;let n=await _(e.fetchImpl),r=await s(e.serverUrl,void 0,n);return m.set(p(e.name),r),r}function y(r){let i=p(r.name),a=(()=>{try{return new URL(r.serverUrl).host}catch{return``}})();return{id:i,name:`MCP: ${r.name}`,description:`MCP server at ${r.serverUrl}`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,oauthTokenDomains:a?[a]:[],getModelIds:()=>[],onOAuthLogin:async(e,t)=>{let a=r.launcher??e,o=await _(r.fetchImpl),s=await l({asMetadata:await v(r),clientId:r.auth.clientId,scope:r.auth.scope,redirectUri:await g(),launcher:a,fetchImpl:o});await n({providerId:i,accessToken:s.accessToken,refreshToken:s.refreshToken,tokenExpiresAt:s.expiresAt}),t()},onSilentRenew:async()=>{if(!t(i))return null;let a=e().find(e=>e.providerId===i)?.refreshToken;if(!a)return d.info(`No refresh token for MCP provider, skipping silent renewal`,{id:i}),null;try{let e=await v(r),t=e.grantTypes??[];if(t.length>0&&!t.includes(`refresh_token`))return d.info(`AS does not advertise refresh_token grant; skipping silent renewal`,{id:i}),null;let o=await _(r.fetchImpl),s=await c({tokenEndpoint:e.tokenEndpoint,clientId:r.auth.clientId,refreshToken:a,scope:r.auth.scope,fetchImpl:o});return await n({providerId:i,accessToken:s.accessToken,refreshToken:s.refreshToken??a,tokenExpiresAt:s.expiresAt}),s.accessToken}catch(e){return d.warn(`MCP silent renewal failed`,{id:i,error:e instanceof Error?e.message:String(e)}),null}}}}function b(e){let t=p(e.name);h.has(t)||(a(y(e)),h.add(t),d.debug(`Registered MCP provider`,{id:t}))}async function x(e){let t=p(e);if(h.has(t)&&r(t))return!0;if(!f())return!1;let n=await u(e);return n?(b({name:e,serverUrl:n.serverUrl,auth:n.auth}),!0):!1}async function S(){if(!f())return[];let{readMcpAuthEntries:e}=await import(`./provider-store-access-G9HYvkSk.js`),t=await e(),n=[];for(let e of t)b({name:e.name,serverUrl:e.serverUrl,auth:e.auth}),n.push(p(e.name));return n}function C(e){let t=p(e);return h.delete(t),m.delete(t),o(t)}export{S as ensureAllMcpProvidersRegistered,x as ensureMcpProviderRegistered,b as registerMcpProvider,C as removeMcpProvider};
@@ -1 +0,0 @@
1
- import{t as e}from"./store-DcwzvMDt.js";import"./provider-BYq4p5If.js";export{e as readMcpAuthEntries};
@@ -1 +0,0 @@
1
- import{t as e}from"./provider-Cs2-iVKM.js";export{e as readMcpAuthEntries};
@@ -1 +0,0 @@
1
- import{ft as e,pt as t}from"./kernel-worker-ApBe2nsN.js";const n=`slicc:last-seen-version`;function r(){return{version:`3.34.0`,releasedAt:`2026-06-05T14:57:12Z`}}async function i(){let t=await e(n);return t&&t.length>0?t:null}async function a(e){await t(n,e)}async function o(){let e=r(),t=await i();return t===null?(await a(e.version),{bundled:e,lastSeen:null,isUpgrade:!1}):t===e.version?{bundled:e,lastSeen:t,isUpgrade:!1}:{bundled:e,lastSeen:t,isUpgrade:!0}}async function s(e){await a(e)}export{o as detectUpgrade,s as recordVersionSeen};