sliccy 5.40.0 → 5.41.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.
- package/dist/ui/assets/account-store-B6ZJJHvy.js +103 -0
- package/dist/ui/assets/{account-store-hXYe6llx.js → account-store-Cc0LlOh0.js} +1 -1
- package/dist/ui/assets/adobe-B1BRYIRE.js +1 -0
- package/dist/ui/assets/adobe-BN-bE_SL.js +2 -0
- package/dist/ui/assets/{adobe-oauth-state-DW-IwDjB.js → adobe-oauth-state-Cn7LWTPZ.js} +1 -1
- package/dist/ui/assets/{agent-message-to-chat-BDP4kUxn.js → agent-message-to-chat-DpqjbP5x.js} +1 -1
- package/dist/ui/assets/anthropic-messages-BP_xL8Mh.js +39 -0
- package/dist/ui/assets/anthropic-messages-BwBPoNP0.js +39 -0
- package/dist/ui/assets/{apps-rQgl-cpB.js → apps-CaQ1gkO4.js} +1 -1
- package/dist/ui/assets/{azure-openai-BGD2kY_f.js → azure-openai-CsaPL24q.js} +1 -1
- package/dist/ui/assets/{azure-openai-Dw-PBopQ.js → azure-openai-DZpoByWz.js} +1 -1
- package/dist/ui/assets/azure-openai-responses-BXDkTtSH.js +1 -0
- package/dist/ui/assets/azure-openai-responses-De9pJjBR.js +1 -0
- package/dist/ui/assets/bedrock-camp-CZFsedRI.js +1 -0
- package/dist/ui/assets/bedrock-camp-Czep_VHL.js +1 -0
- package/dist/ui/assets/{cerebras-DlQY_TSV.js → cerebras-CSyaZ_JD.js} +1 -1
- package/dist/ui/assets/{cerebras-kLjh5Y4m.js → cerebras-D9qOK7yO.js} +1 -1
- package/dist/ui/assets/compat-FrhC6T45.js +2 -0
- package/dist/ui/assets/{connect-surface-B9fZF0bW.js → connect-surface-BX9u-44v.js} +1 -1
- package/dist/ui/assets/{context-compaction-DaxQExZG.js → context-compaction-LYFtS2_f.js} +1 -1
- package/dist/ui/assets/dip-CjRcTAWq.js +1 -0
- package/dist/ui/assets/{dist-C4rnF_u9.js → dist-PxfR5esr.js} +1 -1
- package/dist/ui/assets/{dist-SCTbiXRc.js → dist-UblS7Ad_.js} +1 -1
- package/dist/ui/assets/{ensure-speech-assets-C8wT1Kva.js → ensure-speech-assets-c4Yyh5Hl.js} +1 -1
- package/dist/ui/assets/error-body-C0EnfbdK.js +1 -0
- package/dist/ui/assets/esp8266-DUadcjG-.js +1 -0
- package/dist/ui/assets/{esptool-operations-D0PMNTBy.js → esptool-operations-C6yQIM3h.js} +2 -2
- package/dist/ui/assets/{fs-DJdIY3mI.js → fs-Be9_eBTx.js} +2 -2
- package/dist/ui/assets/{fs-C9drMRXK.js → fs-r9jcBgqR.js} +1 -1
- package/dist/ui/assets/{github-Dr0PBLdJ.js → github-789iE9_f.js} +2 -2
- package/dist/ui/assets/{github-DRGaGMIq.js → github-CBrBpJFF.js} +1 -1
- package/dist/ui/assets/{github-copilot-DTMNK2iN.js → github-copilot-BpWUXuYW.js} +1 -1
- package/dist/ui/assets/{github-copilot-B5MsC-Mh.js → github-copilot-CHXKNa6E.js} +1 -1
- package/dist/ui/assets/google-generative-ai-C58ldv83.js +1 -0
- package/dist/ui/assets/google-generative-ai-Eq6eGS5h.js +1 -0
- package/dist/ui/assets/{google-shared-mehyRjje.js → google-shared-DQbld86Z.js} +1 -1
- package/dist/ui/assets/{google-shared-0Fg2dFO2.js → google-shared-DwCjfFnw.js} +1 -1
- package/dist/ui/assets/google-vertex-C18Xl3dV.js +1 -0
- package/dist/ui/assets/google-vertex-CkkAgSFr.js +1 -0
- package/dist/ui/assets/{hear-CtbSNbmL.js → hear-Bag-j0V7.js} +1 -1
- package/dist/ui/assets/{kernel-worker-M4OSUjLe.js → kernel-worker-DzzwltLv.js} +1081 -1081
- package/dist/ui/assets/{kokoro-engine-CHDadqXT.js → kokoro-engine-BY5-MJ4F.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-HfRG1D9a.js → lick-ws-bridge-BA7kFq6f.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-BNbPpvx4.js → lick-ws-bridge-BBONAMUp.js} +1 -1
- package/dist/ui/assets/{local-llm-DMeLZ6lb.js → local-llm-CZI41QZ8.js} +1 -1
- package/dist/ui/assets/main-BBWzFPQm.js +24 -0
- package/dist/ui/assets/{mistral-conversations-CoropYyn.js → mistral-conversations-DKqvekSA.js} +2 -2
- package/dist/ui/assets/{mistral-conversations-BD1LHG49.js → mistral-conversations-szVW8BsU.js} +2 -2
- package/dist/ui/assets/{mount-DTRYDdBi.js → mount-CB_TFmaj.js} +1 -1
- package/dist/ui/assets/{mount-DKLuOjhC.js → mount-x5DyWWmZ.js} +2 -2
- package/dist/ui/assets/{new-session-D9geKvL4.js → new-session-bNLCxDOi.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-pcB_o7_p.js → oauth-bootstrap-CbMHDv7j.js} +2 -2
- package/dist/ui/assets/{openai-codex-Bm1P7I1P.js → openai-codex-Bno6nph_.js} +1 -1
- package/dist/ui/assets/{openai-codex-B-tq0InW.js → openai-codex-DO53z_Lp.js} +1 -1
- package/dist/ui/assets/openai-codex-responses-BDYh8ojD.js +7 -0
- package/dist/ui/assets/openai-codex-responses-C7QnNmC0.js +7 -0
- package/dist/ui/assets/openai-completions-BnAjXzgN.js +5 -0
- package/dist/ui/assets/openai-completions-t-glszMQ.js +5 -0
- package/dist/ui/assets/openai-responses-BofM6cmY.js +1 -0
- package/dist/ui/assets/openai-responses-o9_kr7GP.js +1 -0
- package/dist/ui/assets/openai-responses-shared-79gch22X.js +10 -0
- package/dist/ui/assets/openai-responses-shared-DKPwc9Eh.js +10 -0
- package/dist/ui/assets/openrouter-images-D0dgD5eX.js +1 -0
- package/dist/ui/assets/openrouter-images-PT0FZmkM.js +1 -0
- package/dist/ui/assets/{page-follower-tray-CB-5guCo.js → page-follower-tray-BnjUXDPD.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-Bw3OaUZN.js → panel-rpc-handlers-B8qUvr10.js} +2 -2
- package/dist/ui/assets/{provider-CpPdfI7j.js → provider-DC8kAP4A.js} +2 -2
- package/dist/ui/assets/{provider-BLHkVFKJ.js → provider-mu81QxQG.js} +1 -1
- package/dist/ui/assets/provider-store-access-BuFw0JKG.js +1 -0
- package/dist/ui/assets/provider-store-access-C_kNLQdJ.js +1 -0
- package/dist/ui/assets/{providers-ekTC5xpd.js → providers-D8GpXQnB.js} +2 -2
- package/dist/ui/assets/{providers-BeDyVcSi.js → providers-Ddxs0W8T.js} +1 -1
- package/dist/ui/assets/{quick-llm-crEbkH6q.js → quick-llm-Quagspyf.js} +1 -1
- package/dist/ui/assets/session-freezer-ChBPlDLR.js +1 -0
- package/dist/ui/assets/{speak-BKhMmu0q.js → speak-OWEJeikh.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-DJEGpbEL.js → sprinkle-manager-BKxGmOIl.js} +1 -1
- package/dist/ui/assets/{store-SugE11kf.js → store-CHYvCaH1.js} +1 -1
- package/dist/ui/assets/{sudo-8FlHSwPf.js → sudo-D4b0hE0I.js} +1 -1
- package/dist/ui/assets/transform-messages-DwI5R8if.js +1 -0
- package/dist/ui/assets/{transform-messages-CQuDksPz.js → transform-messages-ZX8cvJiJ.js} +1 -1
- package/dist/ui/assets/{transformers-env-Dm6KYkFB.js → transformers-env-1gFISbS1.js} +1 -1
- package/dist/ui/assets/{tray-leader-BEuWSPjO.js → tray-leader-CwiLM5-x.js} +1 -1
- package/dist/ui/assets/{tray-leave-runtime-xQpmmvcJ.js → tray-leave-runtime-DQafc8zo.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-BmINZ5Oh.js → upgrade-detection-487abG_R.js} +1 -1
- package/dist/ui/assets/{voice-reply-BVSzlCQd.js → voice-reply-BWuWySTa.js} +1 -1
- package/dist/ui/assets/{wc-attach-zuw07y30.js → wc-attach-D0-Z2ZnU.js} +2 -2
- package/dist/ui/assets/{wc-extension-DkFWiXyA.js → wc-extension-DPoDkrXB.js} +2 -2
- package/dist/ui/assets/{wc-follower-BpVE8bZM.js → wc-follower-CMZy0UC8.js} +3 -3
- package/dist/ui/assets/wc-live-B6XBQ3Ph.js +258 -0
- package/dist/ui/assets/{wc-nav-D76G_K-8.js → wc-nav-Bip6J07i.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-C6hoCgyi.js → wc-onboarding-D0f-t12r.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-CCAMhCT0.js → wc-placeholder-C48kBOSX.js} +3 -3
- package/dist/ui/assets/{wc-settings-Ds_UySgO.js → wc-settings-kViiUzrv.js} +3 -3
- package/dist/ui/assets/{wc-shell-ChVfRkDg.js → wc-shell-C6CXABEp.js} +3 -3
- package/dist/ui/assets/{wc-sprinkles-ZlT4-gI3.js → wc-sprinkles-CybsDQpb.js} +2 -2
- package/dist/ui/assets/wc-tray-CkppgzxX.js +2 -0
- package/dist/ui/assets/{whisper-engine-Dq-ISOvb.js → whisper-engine-D7GZgIFR.js} +1 -1
- package/dist/ui/assets/{xai-grok-BeVMpO7i.js → xai-grok-B73mxnXH.js} +1 -1
- package/dist/ui/assets/{xai-grok-DpCU3Vf9.js → xai-grok-Bv-1jkIm.js} +1 -1
- package/dist/ui/index.html +7 -7
- package/dist/ui/packages/webapp/index.html +7 -7
- package/package.json +1 -1
- package/dist/ui/assets/account-store-CEtbM5ni.js +0 -103
- package/dist/ui/assets/adobe-DGmDeCd3.js +0 -2
- package/dist/ui/assets/adobe-cPrvHbnb.js +0 -1
- package/dist/ui/assets/anthropic-messages-DP3-Xd3J.js +0 -39
- package/dist/ui/assets/anthropic-messages-DSmP2_-Q.js +0 -39
- package/dist/ui/assets/azure-openai-responses-CEEm6_Xn.js +0 -1
- package/dist/ui/assets/azure-openai-responses-YO8iO-Ch.js +0 -1
- package/dist/ui/assets/bedrock-camp-DVKDCEuf.js +0 -1
- package/dist/ui/assets/bedrock-camp-DbZ6Mjym.js +0 -1
- package/dist/ui/assets/compat-DADQxxLV.js +0 -2
- package/dist/ui/assets/dip-DLGbA_M8.js +0 -1
- package/dist/ui/assets/esp8266-BhWeHRu0.js +0 -1
- package/dist/ui/assets/google-generative-ai-Cz3VHJVe.js +0 -1
- package/dist/ui/assets/google-generative-ai-DRLjqQHr.js +0 -1
- package/dist/ui/assets/google-vertex-C8F4Q-3-.js +0 -1
- package/dist/ui/assets/google-vertex-DI_ybVGc.js +0 -1
- package/dist/ui/assets/main-C_E1hhV6.js +0 -24
- package/dist/ui/assets/openai-codex-responses-DUWTsNB0.js +0 -7
- package/dist/ui/assets/openai-codex-responses-DcE8b3Us.js +0 -7
- package/dist/ui/assets/openai-completions-2m5htnw8.js +0 -5
- package/dist/ui/assets/openai-completions-CPxuOo6h.js +0 -5
- package/dist/ui/assets/openai-responses-BIaF8Olv.js +0 -1
- package/dist/ui/assets/openai-responses-D3YJWUR5.js +0 -1
- package/dist/ui/assets/openai-responses-shared-1KvKQf-4.js +0 -12
- package/dist/ui/assets/openai-responses-shared-CEQMR7Nx.js +0 -12
- package/dist/ui/assets/openrouter-images-CHaqAs_0.js +0 -1
- package/dist/ui/assets/openrouter-images-CIagBWVL.js +0 -1
- package/dist/ui/assets/provider-store-access-BGivQpbO.js +0 -1
- package/dist/ui/assets/provider-store-access-C4gvtXXH.js +0 -1
- package/dist/ui/assets/session-freezer-2cCjCk93.js +0 -1
- package/dist/ui/assets/transform-messages-D7OsqBmU.js +0 -1
- package/dist/ui/assets/wc-live-DsVoxwUC.js +0 -258
- package/dist/ui/assets/wc-tray-3cfbfVP2.js +0 -2
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{m as e}from"./wc-live-DsVoxwUC.js";export{e as setDipExecHandler};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./esptool-operations-D0PMNTBy.js";export{e as ESP8266ROM};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,d as t,o as n,r}from"./transform-messages-CQuDksPz.js";import{n as i}from"./headers-CbDaTl3c.js";import{t as a}from"./sanitize-unicode-DmIE6hZJ.js";import{a as o,i as s,n as c,o as l,r as u,s as d,t as f}from"./google-shared-0Fg2dFO2.js";let p=0;const m=(n,r,i)=>{let a=new t;return(async()=>{let t={role:`assistant`,content:[],api:`google-generative-ai`,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=i?.apiKey;if(!o)throw Error(`No API key for provider: ${n.provider}`);let c=g(n,o,i?.headers),d=_(n,r,i),f=await i?.onPayload?.(d,n);f!==void 0&&(d=f);let m=await c.models.generateContentStream(d);a.push({type:`start`,partial:t});let h=null,v=t.content,y=()=>v.length-1;for await(let r of m){t.responseId||=r.responseId;let i=r.candidates?.[0];if(i?.content?.parts)for(let e of i.content.parts){if(e.text!==void 0){let n=u(e);(!h||n&&h.type!==`thinking`||!n&&h.type!==`text`)&&(h&&(h.type===`text`?a.push({type:`text_end`,contentIndex:v.length-1,content:h.text,partial:t}):a.push({type:`thinking_end`,contentIndex:y(),content:h.thinking,partial:t})),n?(h={type:`thinking`,thinking:``,thinkingSignature:void 0},t.content.push(h),a.push({type:`thinking_start`,contentIndex:y(),partial:t})):(h={type:`text`,text:``},t.content.push(h),a.push({type:`text_start`,contentIndex:y(),partial:t}))),h.type===`thinking`?(h.thinking+=e.text,h.thinkingSignature=l(h.thinkingSignature,e.thoughtSignature),a.push({type:`thinking_delta`,contentIndex:y(),delta:e.text,partial:t})):(h.text+=e.text,h.textSignature=l(h.textSignature,e.thoughtSignature),a.push({type:`text_delta`,contentIndex:y(),delta:e.text,partial:t}))}if(e.functionCall){h&&=(h.type===`text`?a.push({type:`text_end`,contentIndex:y(),content:h.text,partial:t}):a.push({type:`thinking_end`,contentIndex:y(),content:h.thinking,partial:t}),null);let n=e.functionCall.id,r={type:`toolCall`,id:!n||t.content.some(e=>e.type===`toolCall`&&e.id===n)?`${e.functionCall.name}_${Date.now()}_${++p}`:n,name:e.functionCall.name||``,arguments:e.functionCall.args??{},...e.thoughtSignature&&{thoughtSignature:e.thoughtSignature}};t.content.push(r),a.push({type:`toolcall_start`,contentIndex:y(),partial:t}),a.push({type:`toolcall_delta`,contentIndex:y(),delta:JSON.stringify(r.arguments),partial:t}),a.push({type:`toolcall_end`,contentIndex:y(),toolCall:r,partial:t})}}i?.finishReason&&(t.stopReason=s(i.finishReason),t.content.some(e=>e.type===`toolCall`)&&(t.stopReason=`toolUse`)),r.usageMetadata&&(t.usage={input:(r.usageMetadata.promptTokenCount||0)-(r.usageMetadata.cachedContentTokenCount||0),output:(r.usageMetadata.candidatesTokenCount||0)+(r.usageMetadata.thoughtsTokenCount||0),cacheRead:r.usageMetadata.cachedContentTokenCount||0,cacheWrite:0,totalTokens:r.usageMetadata.totalTokenCount||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},e(n,t.usage))}if(h&&(h.type===`text`?a.push({type:`text_end`,contentIndex:y(),content:h.text,partial:t}):a.push({type:`thinking_end`,contentIndex:y(),content:h.thinking,partial:t})),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)`index`in e&&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=(e,t,i)=>{let a=i?.apiKey;if(!a)throw Error(`No API key for provider: ${e.provider}`);let o=r(e,i,a);if(!i?.reasoning)return m(e,t,{...o,thinking:{enabled:!1}});let s=n(e,i.reasoning),c=s===`off`?`high`:s,l=e;return y(l)||b(l)||v(l)?m(e,t,{...o,thinking:{enabled:!0,level:S(c,l)}}):m(e,t,{...o,thinking:{enabled:!0,budgetTokens:C(l,c,i.thinkingBudgets)}})};function g(e,t,n){let r={};e.baseUrl&&(r.baseUrl=e.baseUrl,r.apiVersion=``);let a=i({...e.headers,...n});return a&&(r.headers=a),new d({apiKey:t,httpOptions:Object.keys(r).length>0?r:void 0})}function _(e,t,n={}){let r=f(e,t),i={};n.temperature!==void 0&&(i.temperature=n.temperature),n.maxTokens!==void 0&&(i.maxOutputTokens=n.maxTokens);let s={...Object.keys(i).length>0&&i,...t.systemPrompt&&{systemInstruction:a(t.systemPrompt)},...t.tools&&t.tools.length>0&&{tools:c(t.tools)}};if(t.tools&&t.tools.length>0&&n.toolChoice?s.toolConfig={functionCallingConfig:{mode:o(n.toolChoice)}}:s.toolConfig=void 0,n.thinking?.enabled&&e.reasoning){let e={includeThoughts:!0};n.thinking.level===void 0?n.thinking.budgetTokens!==void 0&&(e.thinkingBudget=n.thinking.budgetTokens):e.thinkingLevel=n.thinking.level,s.thinkingConfig=e}else e.reasoning&&n.thinking&&!n.thinking.enabled&&(s.thinkingConfig=x(e));if(n.signal){if(n.signal.aborted)throw Error(`Request aborted`);s.abortSignal=n.signal}return{model:e.id,contents:r,config:s}}function v(e){return/gemma-?4/.test(e.id.toLowerCase())}function y(e){return/gemini-3(?:\.\d+)?-pro/.test(e.id.toLowerCase())}function b(e){let t=e.id.toLowerCase();return/gemini-3(?:\.\d+)?-flash/.test(t)||t===`gemini-flash-latest`||t===`gemini-flash-lite-latest`}function x(e){return y(e)?{thinkingLevel:`LOW`}:b(e)||v(e)?{thinkingLevel:`MINIMAL`}:{thinkingBudget:0}}function S(e,t){if(y(t))switch(e){case`minimal`:case`low`:return`LOW`;case`medium`:case`high`:return`HIGH`}if(v(t))switch(e){case`minimal`:case`low`:return`MINIMAL`;case`medium`:case`high`:return`HIGH`}switch(e){case`minimal`:return`MINIMAL`;case`low`:return`LOW`;case`medium`:return`MEDIUM`;case`high`:return`HIGH`}}function C(e,t,n){return n?.[t]===void 0?e.id.includes(`2.5-pro`)?{minimal:128,low:2048,medium:8192,high:32768}[t]:e.id.includes(`2.5-flash-lite`)?{minimal:512,low:2048,medium:8192,high:24576}[t]:e.id.includes(`2.5-flash`)?{minimal:128,low:2048,medium:8192,high:24576}[t]:-1:n[t]}export{m as stream,h as streamSimple};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t,t as n}from"./models-ByRUWfA-.js";import{r}from"./transform-messages-D7OsqBmU.js";import{n as i}from"./headers-CbDaTl3c.js";import{t as a}from"./sanitize-unicode-DmIE6hZJ.js";import{a as o,i as s,n as c,o as l,r as u,s as d,t as f}from"./google-shared-mehyRjje.js";var p=0,m=(e,r,i)=>{let a=new t;return(async()=>{let t={role:`assistant`,content:[],api:`google-generative-ai`,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;if(!o)throw Error(`No API key for provider: ${e.provider}`);let c=g(e,o,i?.headers),d=_(e,r,i),f=await i?.onPayload?.(d,e);f!==void 0&&(d=f);let m=await c.models.generateContentStream(d);a.push({type:`start`,partial:t});let h=null,v=t.content,y=()=>v.length-1;for await(let r of m){t.responseId||=r.responseId;let i=r.candidates?.[0];if(i?.content?.parts)for(let e of i.content.parts){if(e.text!==void 0){let n=u(e);(!h||n&&h.type!==`thinking`||!n&&h.type!==`text`)&&(h&&(h.type===`text`?a.push({type:`text_end`,contentIndex:v.length-1,content:h.text,partial:t}):a.push({type:`thinking_end`,contentIndex:y(),content:h.thinking,partial:t})),n?(h={type:`thinking`,thinking:``,thinkingSignature:void 0},t.content.push(h),a.push({type:`thinking_start`,contentIndex:y(),partial:t})):(h={type:`text`,text:``},t.content.push(h),a.push({type:`text_start`,contentIndex:y(),partial:t}))),h.type===`thinking`?(h.thinking+=e.text,h.thinkingSignature=l(h.thinkingSignature,e.thoughtSignature),a.push({type:`thinking_delta`,contentIndex:y(),delta:e.text,partial:t})):(h.text+=e.text,h.textSignature=l(h.textSignature,e.thoughtSignature),a.push({type:`text_delta`,contentIndex:y(),delta:e.text,partial:t}))}if(e.functionCall){h&&=(h.type===`text`?a.push({type:`text_end`,contentIndex:y(),content:h.text,partial:t}):a.push({type:`thinking_end`,contentIndex:y(),content:h.thinking,partial:t}),null);let n=e.functionCall.id,r={type:`toolCall`,id:!n||t.content.some(e=>e.type===`toolCall`&&e.id===n)?`${e.functionCall.name}_${Date.now()}_${++p}`:n,name:e.functionCall.name||``,arguments:e.functionCall.args??{},...e.thoughtSignature&&{thoughtSignature:e.thoughtSignature}};t.content.push(r),a.push({type:`toolcall_start`,contentIndex:y(),partial:t}),a.push({type:`toolcall_delta`,contentIndex:y(),delta:JSON.stringify(r.arguments),partial:t}),a.push({type:`toolcall_end`,contentIndex:y(),toolCall:r,partial:t})}}i?.finishReason&&(t.stopReason=s(i.finishReason),t.content.some(e=>e.type===`toolCall`)&&(t.stopReason=`toolUse`)),r.usageMetadata&&(t.usage={input:(r.usageMetadata.promptTokenCount||0)-(r.usageMetadata.cachedContentTokenCount||0),output:(r.usageMetadata.candidatesTokenCount||0)+(r.usageMetadata.thoughtsTokenCount||0),cacheRead:r.usageMetadata.cachedContentTokenCount||0,cacheWrite:0,totalTokens:r.usageMetadata.totalTokenCount||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},n(e,t.usage))}if(h&&(h.type===`text`?a.push({type:`text_end`,contentIndex:y(),content:h.text,partial:t}):a.push({type:`thinking_end`,contentIndex:y(),content:h.thinking,partial:t})),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)`index`in e&&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,n,i)=>{let a=i?.apiKey;if(!a)throw Error(`No API key for provider: ${t.provider}`);let o=r(t,i,a);if(!i?.reasoning)return m(t,n,{...o,thinking:{enabled:!1}});let s=e(t,i.reasoning),c=s===`off`?`high`:s,l=t;return y(l)||b(l)||v(l)?m(t,n,{...o,thinking:{enabled:!0,level:S(c,l)}}):m(t,n,{...o,thinking:{enabled:!0,budgetTokens:C(l,c,i.thinkingBudgets)}})};function g(e,t,n){let r={};e.baseUrl&&(r.baseUrl=e.baseUrl,r.apiVersion=``);let a=i({...e.headers,...n});return a&&(r.headers=a),new d({apiKey:t,httpOptions:Object.keys(r).length>0?r:void 0})}function _(e,t,n={}){let r=f(e,t),i={};n.temperature!==void 0&&(i.temperature=n.temperature),n.maxTokens!==void 0&&(i.maxOutputTokens=n.maxTokens);let s={...Object.keys(i).length>0&&i,...t.systemPrompt&&{systemInstruction:a(t.systemPrompt)},...t.tools&&t.tools.length>0&&{tools:c(t.tools)}};if(t.tools&&t.tools.length>0&&n.toolChoice?s.toolConfig={functionCallingConfig:{mode:o(n.toolChoice)}}:s.toolConfig=void 0,n.thinking?.enabled&&e.reasoning){let e={includeThoughts:!0};n.thinking.level===void 0?n.thinking.budgetTokens!==void 0&&(e.thinkingBudget=n.thinking.budgetTokens):e.thinkingLevel=n.thinking.level,s.thinkingConfig=e}else e.reasoning&&n.thinking&&!n.thinking.enabled&&(s.thinkingConfig=x(e));if(n.signal){if(n.signal.aborted)throw Error(`Request aborted`);s.abortSignal=n.signal}return{model:e.id,contents:r,config:s}}function v(e){return/gemma-?4/.test(e.id.toLowerCase())}function y(e){return/gemini-3(?:\.\d+)?-pro/.test(e.id.toLowerCase())}function b(e){let t=e.id.toLowerCase();return/gemini-3(?:\.\d+)?-flash/.test(t)||t===`gemini-flash-latest`||t===`gemini-flash-lite-latest`}function x(e){return y(e)?{thinkingLevel:`LOW`}:b(e)||v(e)?{thinkingLevel:`MINIMAL`}:{thinkingBudget:0}}function S(e,t){if(y(t))switch(e){case`minimal`:case`low`:return`LOW`;case`medium`:case`high`:return`HIGH`}if(v(t))switch(e){case`minimal`:case`low`:return`MINIMAL`;case`medium`:case`high`:return`HIGH`}switch(e){case`minimal`:return`MINIMAL`;case`low`:return`LOW`;case`medium`:return`MEDIUM`;case`high`:return`HIGH`}}function C(e,t,n){return n?.[t]===void 0?e.id.includes(`2.5-pro`)?{minimal:128,low:2048,medium:8192,high:32768}[t]:e.id.includes(`2.5-flash-lite`)?{minimal:512,low:2048,medium:8192,high:24576}[t]:e.id.includes(`2.5-flash`)?{minimal:128,low:2048,medium:8192,high:24576}[t]:-1:n[t]}export{m as stream,h as streamSimple};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,d as t,o as n,r}from"./transform-messages-CQuDksPz.js";import{t as i}from"./provider-env-DwY8YuMk.js";import{n as a}from"./headers-CbDaTl3c.js";import{t as o}from"./sanitize-unicode-DmIE6hZJ.js";import{a as s,c,i as l,l as u,n as d,o as f,r as p,s as m,t as h}from"./google-shared-0Fg2dFO2.js";const g={THINKING_LEVEL_UNSPECIFIED:u.THINKING_LEVEL_UNSPECIFIED,MINIMAL:u.MINIMAL,LOW:u.LOW,MEDIUM:u.MEDIUM,HIGH:u.HIGH};let _=0;const v=(n,r,i)=>{let a=new t;return(async()=>{let t={role:`assistant`,content:[],api:`google-vertex`,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=E(i),s=o?x(n,o,i?.headers):b(n,O(i),k(i),i?.headers,i?.env),c=A(n,r,i),u=await i?.onPayload?.(c,n);u!==void 0&&(c=u);let d=await s.models.generateContentStream(c);a.push({type:`start`,partial:t});let m=null,h=t.content,g=()=>h.length-1;for await(let r of d){t.responseId||=r.responseId;let i=r.candidates?.[0];if(i?.content?.parts)for(let e of i.content.parts){if(e.text!==void 0){let n=p(e);(!m||n&&m.type!==`thinking`||!n&&m.type!==`text`)&&(m&&(m.type===`text`?a.push({type:`text_end`,contentIndex:h.length-1,content:m.text,partial:t}):a.push({type:`thinking_end`,contentIndex:g(),content:m.thinking,partial:t})),n?(m={type:`thinking`,thinking:``,thinkingSignature:void 0},t.content.push(m),a.push({type:`thinking_start`,contentIndex:g(),partial:t})):(m={type:`text`,text:``},t.content.push(m),a.push({type:`text_start`,contentIndex:g(),partial:t}))),m.type===`thinking`?(m.thinking+=e.text,m.thinkingSignature=f(m.thinkingSignature,e.thoughtSignature),a.push({type:`thinking_delta`,contentIndex:g(),delta:e.text,partial:t})):(m.text+=e.text,m.textSignature=f(m.textSignature,e.thoughtSignature),a.push({type:`text_delta`,contentIndex:g(),delta:e.text,partial:t}))}if(e.functionCall){m&&=(m.type===`text`?a.push({type:`text_end`,contentIndex:g(),content:m.text,partial:t}):a.push({type:`thinking_end`,contentIndex:g(),content:m.thinking,partial:t}),null);let n=e.functionCall.id,r={type:`toolCall`,id:!n||t.content.some(e=>e.type===`toolCall`&&e.id===n)?`${e.functionCall.name}_${Date.now()}_${++_}`:n,name:e.functionCall.name||``,arguments:e.functionCall.args??{},...e.thoughtSignature&&{thoughtSignature:e.thoughtSignature}};t.content.push(r),a.push({type:`toolcall_start`,contentIndex:g(),partial:t}),a.push({type:`toolcall_delta`,contentIndex:g(),delta:JSON.stringify(r.arguments),partial:t}),a.push({type:`toolcall_end`,contentIndex:g(),toolCall:r,partial:t})}}i?.finishReason&&(t.stopReason=l(i.finishReason),t.content.some(e=>e.type===`toolCall`)&&(t.stopReason=`toolUse`)),r.usageMetadata&&(t.usage={input:(r.usageMetadata.promptTokenCount||0)-(r.usageMetadata.cachedContentTokenCount||0),output:(r.usageMetadata.candidatesTokenCount||0)+(r.usageMetadata.thoughtsTokenCount||0),cacheRead:r.usageMetadata.cachedContentTokenCount||0,cacheWrite:0,totalTokens:r.usageMetadata.totalTokenCount||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},e(n,t.usage))}if(m&&(m.type===`text`?a.push({type:`text_end`,contentIndex:g(),content:m.text,partial:t}):a.push({type:`thinking_end`,contentIndex:g(),content:m.thinking,partial:t})),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)`index`in e&&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},y=(e,t,i)=>{let a=r(e,i,void 0);if(!i?.reasoning)return v(e,t,{...a,thinking:{enabled:!1}});let o=n(e,i.reasoning),s=o===`off`?`high`:o,c=e;return j(c)||M(c)?v(e,t,{...a,thinking:{enabled:!0,level:P(s,c)}}):v(e,t,{...a,thinking:{enabled:!0,budgetTokens:F(c,s,i.thinkingBudgets)}})};function b(e,t,n,r,i){let a=T(i);return new m({vertexai:!0,project:t,location:n,apiVersion:`v1`,...a?{googleAuthOptions:a}:{},httpOptions:S(e,r)})}function x(e,t,n){return new m({vertexai:!0,apiKey:t,apiVersion:`v1`,httpOptions:S(e,n)})}function S(e,t){let n={},r=C(e.baseUrl);r&&(n.baseUrl=r,n.baseUrlResourceScope=c.COLLECTION,w(r)&&(n.apiVersion=``));let i=a({...e.headers,...t});return i&&(n.headers=i),Object.keys(n).length>0?n:void 0}function C(e){let t=e.trim();if(!(!t||t.includes(`{location}`)))return t}function w(e){try{return new URL(e).pathname.split(`/`).some(e=>/^v\d+(?:beta\d*)?$/.test(e))}catch{return/(?:^|\/)v\d+(?:beta\d*)?(?:\/|$)/.test(e)}}function T(e){let t=i(`GOOGLE_APPLICATION_CREDENTIALS`,e);return t?{keyFilename:t}:void 0}function E(e){let t=e?.apiKey?.trim();if(!(!t||t===`gcp-vertex-credentials`||D(t)))return t}function D(e){return/^<[^>]+>$/.test(e)}function O(e){let t=e?.project||i(`GOOGLE_CLOUD_PROJECT`,e?.env)||i(`GCLOUD_PROJECT`,e?.env);if(!t)throw Error(`Vertex AI requires a project ID. Set GOOGLE_CLOUD_PROJECT/GCLOUD_PROJECT or pass project in options.`);return t}function k(e){let t=e?.location||i(`GOOGLE_CLOUD_LOCATION`,e?.env);if(!t)throw Error(`Vertex AI requires a location. Set GOOGLE_CLOUD_LOCATION or pass location in options.`);return t}function A(e,t,n={}){let r=h(e,t),i={};n.temperature!==void 0&&(i.temperature=n.temperature),n.maxTokens!==void 0&&(i.maxOutputTokens=n.maxTokens);let a={...Object.keys(i).length>0&&i,...t.systemPrompt&&{systemInstruction:o(t.systemPrompt)},...t.tools&&t.tools.length>0&&{tools:d(t.tools)}};if(t.tools&&t.tools.length>0&&n.toolChoice?a.toolConfig={functionCallingConfig:{mode:s(n.toolChoice)}}:a.toolConfig=void 0,n.thinking?.enabled&&e.reasoning){let e={includeThoughts:!0};n.thinking.level===void 0?n.thinking.budgetTokens!==void 0&&(e.thinkingBudget=n.thinking.budgetTokens):e.thinkingLevel=g[n.thinking.level],a.thinkingConfig=e}else e.reasoning&&n.thinking&&!n.thinking.enabled&&(a.thinkingConfig=N(e));if(n.signal){if(n.signal.aborted)throw Error(`Request aborted`);a.abortSignal=n.signal}return{model:e.id,contents:r,config:a}}function j(e){return/gemini-3(?:\.\d+)?-pro/.test(e.id.toLowerCase())}function M(e){let t=e.id.toLowerCase();return/gemini-3(?:\.\d+)?-flash/.test(t)||t===`gemini-flash-latest`||t===`gemini-flash-lite-latest`}function N(e){let t=e;return j(t)?{thinkingLevel:u.LOW}:M(t)?{thinkingLevel:u.MINIMAL}:{thinkingBudget:0}}function P(e,t){if(j(t))switch(e){case`minimal`:case`low`:return`LOW`;case`medium`:case`high`:return`HIGH`}switch(e){case`minimal`:return`MINIMAL`;case`low`:return`LOW`;case`medium`:return`MEDIUM`;case`high`:return`HIGH`}}function F(e,t,n){return n?.[t]===void 0?e.id.includes(`2.5-pro`)?{minimal:128,low:2048,medium:8192,high:32768}[t]:e.id.includes(`2.5-flash`)?{minimal:128,low:2048,medium:8192,high:24576}[t]:-1:n[t]}export{v as stream,y as streamSimple};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t,t as n}from"./models-ByRUWfA-.js";import{t as r}from"./provider-env-D37PhSJu.js";import{r as i}from"./transform-messages-D7OsqBmU.js";import{n as a}from"./headers-CbDaTl3c.js";import{t as o}from"./sanitize-unicode-DmIE6hZJ.js";import{a as s,c,i as l,l as u,n as d,o as f,r as p,s as m,t as h}from"./google-shared-mehyRjje.js";var g=`v1`,_=`gcp-vertex-credentials`,v={THINKING_LEVEL_UNSPECIFIED:u.THINKING_LEVEL_UNSPECIFIED,MINIMAL:u.MINIMAL,LOW:u.LOW,MEDIUM:u.MEDIUM,HIGH:u.HIGH},y=0,b=(e,r,i)=>{let a=new t;return(async()=>{let t={role:`assistant`,content:[],api:`google-vertex`,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=O(i),s=o?C(e,o,i?.headers):S(e,A(i),j(i),i?.headers,i?.env),c=M(e,r,i),u=await i?.onPayload?.(c,e);u!==void 0&&(c=u);let d=await s.models.generateContentStream(c);a.push({type:`start`,partial:t});let m=null,h=t.content,g=()=>h.length-1;for await(let r of d){t.responseId||=r.responseId;let i=r.candidates?.[0];if(i?.content?.parts)for(let e of i.content.parts){if(e.text!==void 0){let n=p(e);(!m||n&&m.type!==`thinking`||!n&&m.type!==`text`)&&(m&&(m.type===`text`?a.push({type:`text_end`,contentIndex:h.length-1,content:m.text,partial:t}):a.push({type:`thinking_end`,contentIndex:g(),content:m.thinking,partial:t})),n?(m={type:`thinking`,thinking:``,thinkingSignature:void 0},t.content.push(m),a.push({type:`thinking_start`,contentIndex:g(),partial:t})):(m={type:`text`,text:``},t.content.push(m),a.push({type:`text_start`,contentIndex:g(),partial:t}))),m.type===`thinking`?(m.thinking+=e.text,m.thinkingSignature=f(m.thinkingSignature,e.thoughtSignature),a.push({type:`thinking_delta`,contentIndex:g(),delta:e.text,partial:t})):(m.text+=e.text,m.textSignature=f(m.textSignature,e.thoughtSignature),a.push({type:`text_delta`,contentIndex:g(),delta:e.text,partial:t}))}if(e.functionCall){m&&=(m.type===`text`?a.push({type:`text_end`,contentIndex:g(),content:m.text,partial:t}):a.push({type:`thinking_end`,contentIndex:g(),content:m.thinking,partial:t}),null);let n=e.functionCall.id,r={type:`toolCall`,id:!n||t.content.some(e=>e.type===`toolCall`&&e.id===n)?`${e.functionCall.name}_${Date.now()}_${++y}`:n,name:e.functionCall.name||``,arguments:e.functionCall.args??{},...e.thoughtSignature&&{thoughtSignature:e.thoughtSignature}};t.content.push(r),a.push({type:`toolcall_start`,contentIndex:g(),partial:t}),a.push({type:`toolcall_delta`,contentIndex:g(),delta:JSON.stringify(r.arguments),partial:t}),a.push({type:`toolcall_end`,contentIndex:g(),toolCall:r,partial:t})}}i?.finishReason&&(t.stopReason=l(i.finishReason),t.content.some(e=>e.type===`toolCall`)&&(t.stopReason=`toolUse`)),r.usageMetadata&&(t.usage={input:(r.usageMetadata.promptTokenCount||0)-(r.usageMetadata.cachedContentTokenCount||0),output:(r.usageMetadata.candidatesTokenCount||0)+(r.usageMetadata.thoughtsTokenCount||0),cacheRead:r.usageMetadata.cachedContentTokenCount||0,cacheWrite:0,totalTokens:r.usageMetadata.totalTokenCount||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},n(e,t.usage))}if(m&&(m.type===`text`?a.push({type:`text_end`,contentIndex:g(),content:m.text,partial:t}):a.push({type:`thinking_end`,contentIndex:g(),content:m.thinking,partial:t})),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)`index`in e&&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},x=(t,n,r)=>{let a=i(t,r,void 0);if(!r?.reasoning)return b(t,n,{...a,thinking:{enabled:!1}});let o=e(t,r.reasoning),s=o===`off`?`high`:o,c=t;return N(c)||P(c)?b(t,n,{...a,thinking:{enabled:!0,level:I(s,c)}}):b(t,n,{...a,thinking:{enabled:!0,budgetTokens:L(c,s,r.thinkingBudgets)}})};function S(e,t,n,r,i){let a=D(i);return new m({vertexai:!0,project:t,location:n,apiVersion:g,...a?{googleAuthOptions:a}:{},httpOptions:w(e,r)})}function C(e,t,n){return new m({vertexai:!0,apiKey:t,apiVersion:g,httpOptions:w(e,n)})}function w(e,t){let n={},r=T(e.baseUrl);r&&(n.baseUrl=r,n.baseUrlResourceScope=c.COLLECTION,E(r)&&(n.apiVersion=``));let i=a({...e.headers,...t});return i&&(n.headers=i),Object.keys(n).length>0?n:void 0}function T(e){let t=e.trim();if(!(!t||t.includes(`{location}`)))return t}function E(e){try{return new URL(e).pathname.split(`/`).some(e=>/^v\d+(?:beta\d*)?$/.test(e))}catch{return/(?:^|\/)v\d+(?:beta\d*)?(?:\/|$)/.test(e)}}function D(e){let t=r(`GOOGLE_APPLICATION_CREDENTIALS`,e);return t?{keyFilename:t}:void 0}function O(e){let t=e?.apiKey?.trim();if(!(!t||t===_||k(t)))return t}function k(e){return/^<[^>]+>$/.test(e)}function A(e){let t=e?.project||r(`GOOGLE_CLOUD_PROJECT`,e?.env)||r(`GCLOUD_PROJECT`,e?.env);if(!t)throw Error(`Vertex AI requires a project ID. Set GOOGLE_CLOUD_PROJECT/GCLOUD_PROJECT or pass project in options.`);return t}function j(e){let t=e?.location||r(`GOOGLE_CLOUD_LOCATION`,e?.env);if(!t)throw Error(`Vertex AI requires a location. Set GOOGLE_CLOUD_LOCATION or pass location in options.`);return t}function M(e,t,n={}){let r=h(e,t),i={};n.temperature!==void 0&&(i.temperature=n.temperature),n.maxTokens!==void 0&&(i.maxOutputTokens=n.maxTokens);let a={...Object.keys(i).length>0&&i,...t.systemPrompt&&{systemInstruction:o(t.systemPrompt)},...t.tools&&t.tools.length>0&&{tools:d(t.tools)}};if(t.tools&&t.tools.length>0&&n.toolChoice?a.toolConfig={functionCallingConfig:{mode:s(n.toolChoice)}}:a.toolConfig=void 0,n.thinking?.enabled&&e.reasoning){let e={includeThoughts:!0};n.thinking.level===void 0?n.thinking.budgetTokens!==void 0&&(e.thinkingBudget=n.thinking.budgetTokens):e.thinkingLevel=v[n.thinking.level],a.thinkingConfig=e}else e.reasoning&&n.thinking&&!n.thinking.enabled&&(a.thinkingConfig=F(e));if(n.signal){if(n.signal.aborted)throw Error(`Request aborted`);a.abortSignal=n.signal}return{model:e.id,contents:r,config:a}}function N(e){return/gemini-3(?:\.\d+)?-pro/.test(e.id.toLowerCase())}function P(e){let t=e.id.toLowerCase();return/gemini-3(?:\.\d+)?-flash/.test(t)||t===`gemini-flash-latest`||t===`gemini-flash-lite-latest`}function F(e){let t=e;return N(t)?{thinkingLevel:u.LOW}:P(t)?{thinkingLevel:u.MINIMAL}:{thinkingBudget:0}}function I(e,t){if(N(t))switch(e){case`minimal`:case`low`:return`LOW`;case`medium`:case`high`:return`HIGH`}switch(e){case`minimal`:return`MINIMAL`;case`low`:return`LOW`;case`medium`:return`MEDIUM`;case`high`:return`HIGH`}}function L(e,t,n){return n?.[t]===void 0?e.id.includes(`2.5-pro`)?{minimal:128,low:2048,medium:8192,high:32768}[t]:e.id.includes(`2.5-flash`)?{minimal:128,low:2048,medium:8192,high:24576}[t]:-1:n[t]}export{b as stream,x as streamSimple};
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/sudo-8FlHSwPf.js","assets/preload-helper-CZgWQFsJ.js","assets/logger-DDBAeTLF.js","assets/proxied-fetch-D_z2v-ZE.js","assets/rolldown-runtime-aKtaBQYM.js","assets/src-CAHYy5iz.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/quick-llm-crEbkH6q.js","assets/compat-DADQxxLV.js","assets/models-ByRUWfA-.js","assets/provider-env-D37PhSJu.js","assets/__vite-browser-external-SwrSgYTf.js","assets/account-store-hXYe6llx.js","assets/context-compaction-DaxQExZG.js","assets/secret-topology-C29BvT4E.js","assets/secrets-bridge-client-Br74C9hX.js","assets/port-bridge-client-BnzDL5Fz.js","assets/tool-ui-DfXu6quJ.js","assets/providers-ekTC5xpd.js","assets/panel-rpc-DmJSNs0I.js","assets/bedrock-camp-DbZ6Mjym.js","assets/transform-messages-D7OsqBmU.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-C5g936Qd.js","assets/panel-responder-BKgfV-nl.js","assets/extension-bridge-transport-B9IadbHV.js","assets/cdp-bridge-CUqQUcaF.js","assets/lick-ws-bridge-BNbPpvx4.js","assets/tray-leader-BEuWSPjO.js","assets/cdp-FrTDh4u0.js","assets/navigation-watcher-C2s0i0h4.js","assets/handoff-link-w8LYa3Ua.js","assets/remote-cdp-transport-m_T16Bkr.js","assets/main-cherry-C4cWQqKP.js","assets/synthetic-cdp-transport-DLIt5SkY.js","assets/oauth-service-R1ITtnv3.js","assets/wc-permissions-registry-Blyunq37.js","assets/wc-shell-ChVfRkDg.js","assets/speech-C5U8h4In.js","assets/soundscape-cues-5_sT5Un6.js","assets/wc-shell-WkeczD9x.css","assets/wc-follower-BpVE8bZM.js","assets/theme-engine-BEk-Upnk.js","assets/wc-attach-zuw07y30.js","assets/wc-live-DsVoxwUC.js","assets/hid-device-registry-6w-g8ZpF.js","assets/serial-port-registry-DsPZvGpT.js","assets/usb-operations-D-YdmmuG.js","assets/usb-device-registry-k6vTKonT.js","assets/shared-Cq5Q0noX.js","assets/mime-types-ugOWOUZ9.js","assets/sprinkle-renderer-Cx1zoxx1.js","assets/theme-BWT6ZRD3.js","assets/sprinkle-bridge-C0ycYX8f.js","assets/page-follower-tray-CB-5guCo.js","assets/wc-sprinkles-ZlT4-gI3.js","assets/oauth-bootstrap-pcB_o7_p.js","assets/legacy-styles-CuB1P3LZ.js","assets/connect-surface-B9fZF0bW.js","assets/wc-extension-DkFWiXyA.js","assets/wc-detached-B3WCbbZT.js","assets/messages-BD4p8GuF.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import"./modulepreload-polyfill-Dezn_h7o.js";import{t}from"./preload-helper-CZgWQFsJ.js";import{A as n,B as r,C as i,D as a,E as o,F as s,H as c,I as l,L as u,M as d,N as f,O as p,P as m,R as h,S as g,T as _,U as v,V as y,W as b,_ as x,a as S,b as C,c as ee,d as w,f as te,g as ne,h as re,i as T,j as ie,k as ae,l as oe,m as se,n as ce,o as le,p as ue,s as de,t as fe,u as pe,v as me,w as he,x as ge,y as _e,z as ve}from"./account-store-hXYe6llx.js";import{t as E}from"./logger-DDBAeTLF.js";import{c as ye,l as be,o as xe,u as Se}from"./src-CAHYy5iz.js";import{a as Ce,c as we,o as Te,s as Ee,t as De}from"./proxied-fetch-D_z2v-ZE.js";import{n as D,t as O}from"./runtime-env-DH4NDw4t.js";import{a as Oe}from"./providers-ekTC5xpd.js";import"./messages-BD4p8GuF.js";import{n as ke}from"./clipboard-DuHpK59o.js";function Ae(e){try{let t=new URL(e);return`${t.protocol===`wss:`?`https:`:`http:`}//${t.host}`}catch{return null}}function je(e){try{let t=new URL(e);return`${t.protocol}//${t.host}/licks-ws`}catch{return null}}function k(e){let t;try{t=new URLSearchParams(e)}catch{return null}let n=t.get(Se),r=t.get(be);if(!n||!r||!/^wss?:\/\//.test(n))return null;let i=t.get(xe),a=i===`leader`||i===`follower`?i:null;return{url:n,subprotocol:`${ye}${r}`,token:r,apiBaseUrl:Ae(n),lickWsUrl:je(n),role:a}}var Me=`slicc:bridge-config`,Ne=`slicc:extension-delegate-config`;function Pe(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.type===`slicc:ext-fetch`&&typeof t.extensionId==`string`&&!!t.request&&typeof t.request==`object`}var Fe=E(`boot/ext-fetch-delegate`);function Ie(){let e=globalThis.chrome?.runtime;return e&&typeof e.connect==`function`?e:null}function Le(e,t,n){let r=Ie();if(!r){try{t.postMessage({type:`response-error`,error:`extension-delegate: chrome.runtime.connect unavailable`})}catch{}t.close();return}let i=e.extensionId||n,a;try{a=r.connect(i,{name:`fetch-proxy.fetch`})}catch(e){try{t.postMessage({type:`response-error`,error:`extension-delegate: connect failed — ${e instanceof Error?e.message:String(e)}`})}catch{}t.close();return}let o=!1,s=()=>{o=!0;try{a.disconnect()}catch{}try{t.close()}catch{}};a.onMessage.addListener(e=>{if(o)return;let n=e;try{t.postMessage(n)}catch{}(n.type===`response-end`||n.type===`response-error`)&&s()}),a.onDisconnect.addListener(()=>{if(!o){try{t.postMessage({type:`response-error`,error:`extension-delegate: fetch-proxy port disconnected`})}catch{}s()}}),a.postMessage({type:`request`,...e.request})}function Re(e){typeof navigator>`u`||!navigator.serviceWorker||navigator.serviceWorker.addEventListener(`message`,t=>{if(!Pe(t.data))return;let n=t.ports?.[0];if(!n){Fe.warn(`delegated fetch envelope arrived without a response port`);return}Le(t.data,n,e)})}function ze(){if(D())return;let e=new Blob([`
|
|
3
|
-
let lastPong = Date.now();
|
|
4
|
-
let frozen = false;
|
|
5
|
-
setInterval(() => {
|
|
6
|
-
postMessage({ type: 'ping' });
|
|
7
|
-
const elapsed = Date.now() - lastPong;
|
|
8
|
-
if (elapsed > 5000 && !frozen) {
|
|
9
|
-
frozen = true;
|
|
10
|
-
postMessage({ type: 'freeze-detected', elapsed });
|
|
11
|
-
}
|
|
12
|
-
}, 2000);
|
|
13
|
-
self.onmessage = (e) => {
|
|
14
|
-
if (e.data.type === 'pong') {
|
|
15
|
-
lastPong = Date.now();
|
|
16
|
-
if (frozen) {
|
|
17
|
-
frozen = false;
|
|
18
|
-
postMessage({ type: 'freeze-recovered' });
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
`],{type:`application/javascript`}),t=URL.createObjectURL(e),n=new Worker(t);URL.revokeObjectURL(t),n.onmessage=e=>{if(e.data.type===`ping`)n.postMessage({type:`pong`});else if(e.data.type===`freeze-detected`)console.error(`[freeze-watchdog] Main thread blocked for ${e.data.elapsed}ms — capturing trace on recovery`);else if(e.data.type===`freeze-recovered`){console.error(`[freeze-watchdog] Main thread recovered. Stack trace at recovery point:`),console.trace(`[freeze-watchdog] recovery stack`);let e=performance.getEntriesByType(`longtask`);e.length>0&&console.error(`[freeze-watchdog] Long tasks:`,e.map(e=>({duration:e.duration,startTime:e.startTime,name:e.name})))}},window.addEventListener(`beforeunload`,()=>{n.terminate()},{once:!0})}var Be=`slicc-nuke-control`;function Ve(e=()=>location.reload()){if(typeof BroadcastChannel!=`function`)return()=>{};let t=new BroadcastChannel(Be),n=t=>{let n=t.data;if(n?.type===`nuke-reload`){if(Array.isArray(n.keysToRemove)){for(let e of n.keysToRemove)if(typeof e==`string`)try{localStorage.removeItem(e)}catch{}}e()}};return t.addEventListener(`message`,n),()=>{t.removeEventListener(`message`,n),t.close()}}var A=null;function He(){return A||(A=Ve(),A)}var j=`tray`,Ue=`trayWorkerUrl`,We=`lead`;function M(e){if(!e)return null;try{let t=new URL(e.trim());t.search=``,t.hash=``,t.pathname!==`/`&&(t.pathname=t.pathname.replace(/\/+$/,``)||`/`);let n=t.toString();return n.endsWith(`/`)?n.slice(0,-1):n}catch{return null}}function Ge(e){if(!e)return null;try{let t=new URL(e.trim());t.search=``,t.hash=``;let n=t.toString(),r=t.pathname.split(`/`).filter(Boolean);if(r.length<2||r.at(-2)!==`join`)return null;let[i,a,...o]=decodeURIComponent(r.at(-1)).split(`.`);if(!i||!a||o.length>0)return null;r.splice(-2,2),t.pathname=r.length>0?`/${r.join(`/`)}`:`/`;let s=M(t.toString());return s?{workerBaseUrl:s,trayId:i,joinUrl:n}:null}catch{return null}}function Ke(e,t){let n=new URL(e);return n.searchParams.delete(Ue),n.searchParams.delete(We),n.searchParams.set(j,t),n.toString()}var N=`slicc.trayWorkerBaseUrl`,P=`slicc.trayJoinUrl`,qe=`https://www.sliccy.ai`;function Je(e,t){let n=M(e);if(!n)throw Error(`Invalid tray worker base URL: ${e}`);let r=t.replace(/^\/+/,``);return new URL(r,`${n}/`).toString()}function F(e){if(!e)return null;try{let t=new URL(e.trim());t.search=``,t.hash=``;let n=t.pathname.split(`/`).filter(Boolean),r=null;if(n.length>=2&&n.at(-2)===`tray`)r=decodeURIComponent(n.at(-1)),n.splice(-2,2),t.pathname=n.length>0?`/${n.join(`/`)}`:`/`;else if(n.length>=2&&n.at(-2)===`join`)return Ge(t.toString());let i=M(t.toString());return i?{workerBaseUrl:i,trayId:r,joinUrl:null}:null}catch{return null}}function I(e){let t=F(e);return t?.joinUrl?t:null}function L(e,t){let n=I(t);return n?(e.setItem(P,n.joinUrl),e.setItem(N,n.workerBaseUrl),n):null}function Ye(e){return!!I(e?.getItem(`slicc.trayJoinUrl`)??null)}function Xe(e,t){let n=!1;try{let t=new URL(e),r=t.searchParams.get(j);if(r!==null){n=!0;let e=F(r);if(e?.joinUrl)return e.joinUrl}t.searchParams.get(`slicc`)===`leader`&&(n=!0)}catch{}let r=F(e);return r?.joinUrl?r.joinUrl:(r?.trayId&&(n=!0),n?null:I(t?.getItem(`slicc.trayJoinUrl`)??null)?.joinUrl??null)}function Ze(e){try{let t=new URL(e);t.searchParams.delete(j);let n=t.pathname.split(`/`).filter(Boolean);return n.length>=2&&n.at(-2)===`join`&&(n.splice(-2,2),t.pathname=n.length>0?`/${n.join(`/`)}`:`/`),t.toString()}catch{return e}}function Qe(e,t){let n=M(e);if(!n)throw Error(`Invalid tray worker base URL: ${e}`);let r=t?.trim();return r?new URL(`tray/${encodeURIComponent(r)}`,`${n}/`).toString():n}function $e(e,t,n){return Ke(e,Qe(t,n))}async function R(e){let t=nt(e.locationHref);if(t)return e.storage&&(t.joinUrl&&e.storage.setItem(P,t.joinUrl),e.storage.setItem(N,t.workerBaseUrl)),t;let n=I(e.storage?.getItem(`slicc.trayJoinUrl`)??null);if(n)return e.storage&&e.storage.setItem(N,n.workerBaseUrl),n;let r=e.runtimeConfigFetcher?await rt(e.runtimeConfigFetcher):null;if(r?.joinConfig)return e.storage&&(e.storage.setItem(P,r.joinConfig.joinUrl),e.storage.setItem(N,r.joinConfig.workerBaseUrl)),r.joinConfig;let i=r?.workerBaseUrl??null,a=M(e.storage?.getItem(`slicc.trayWorkerBaseUrl`)??null),o=M(e.envBaseUrl??null),s=M(e.defaultWorkerBaseUrl??null),c=i??a??o??s;return c?(e.storage&&e.storage.setItem(N,c),{workerBaseUrl:c,trayId:null,joinUrl:null}):null}async function et(e){return(await R(e))?.workerBaseUrl??null}async function tt(e=fetch){try{let t=await e(Ce(`/api/runtime-config`),{cache:`no-store`,headers:De()});return t.ok?await t.json():null}catch{return null}}function nt(e){try{let t=new URL(e),n=F(t.searchParams.get(j));if(n)return n;let r=F(t.searchParams.get(We));if(r)return r;let i=M(t.searchParams.get(Ue));return i?{workerBaseUrl:i,trayId:null,joinUrl:null}:Ge(e)||null}catch{return null}}async function rt(e){let t=await e();if(!t)return null;let n=I(t.trayJoinUrl??null);return{workerBaseUrl:M(t.trayWorkerBaseUrl??null),joinConfig:n}}var it=`slicc-cdp-superseded-banner`;function at(e){if(e.getElementById(it))return;let t=e.createElement(`div`);t.id=it,t.setAttribute(`role`,`alert`),t.textContent=`Another SLICC tab or window has taken control of this browser instance. Only one tab can drive the browser per instance — close the other tabs, then reload this page to resume.`,t.style.cssText=[`position:fixed`,`top:0`,`left:0`,`right:0`,`z-index:2147483647`,`padding:10px 16px`,`background:#b3261e`,`color:#fff`,`font:13px/1.4 system-ui,sans-serif`,`text-align:center`,`box-shadow:0 1px 4px rgba(0,0,0,0.3)`].join(`;`),e.body.appendChild(t)}function ot(e,t,n){if(t){try{if(new URL(e).searchParams.has(`detached`))return`extension-detached`}catch{}return`extension`}try{let t=new URL(e);return t.searchParams.get(`connect`)===`1`?`connect`:t.searchParams.get(`runtime`)===`hosted-leader`?`hosted-leader`:t.searchParams.get(`cherry`)===`1`?`cherry`:Xe(e,n===void 0?typeof window<`u`?window.localStorage:null:n)?`follower`:ct(t)?`electron-overlay`:`standalone`}catch{return`standalone`}}function st(e,t){return e===`electron-overlay`||e===`hosted-leader`||e===`standalone`&&t}function ct(e){return e.pathname===`/electron`||e.pathname===`/electron/`||e.searchParams.get(`runtime`)===`electron-overlay`}var lt=e({setupSudoExtension:()=>dt,setupSudoStandalone:()=>ut});async function ut(e){let{installSudoTestHook:n}=await t(async()=>{let{installSudoTestHook:e}=await import(`./sudo-8FlHSwPf.js`);return{installSudoTestHook:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]));n()}async function dt(e){let{installPanelSudoResponder:n}=await t(async()=>{let{installPanelSudoResponder:e}=await import(`./sudo-8FlHSwPf.js`);return{installPanelSudoResponder:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]));n()}function ft(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():`slicc-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function pt(e){let t;try{t=new URLSearchParams(e)}catch{return null}if(t.get(`slicc`)!==`leader`)return null;let n=t.get(`ext`);return n?{extensionId:n}:null}var mt=[100,200,400,800,1600];async function ht(e,t,n,r=mt,i=e=>new Promise(t=>setTimeout(t,e))){let a=r.length+1,o=null;for(let s=0;s<a;s++)try{await e.connect(t),s>0&&n.info(`CDP bridge connect succeeded after retry`,{attempt:s+1});return}catch(e){o=e,s<r.length&&await i(r[s]??0)}n.warn(`Initial CDP connect failed after retries; worker-forwarded commands will retry on demand`,o instanceof Error?o.message:String(o))}async function gt(e,n,r){let{ExtensionBridgeTransport:i}=await t(async()=>{let{ExtensionBridgeTransport:e}=await import(`./extension-bridge-transport-B9IadbHV.js`);return{ExtensionBridgeTransport:e}},__vite__mapDeps([26,2,27])),{mapNavigatePayloadToLickEvent:a}=await t(async()=>{let{mapNavigatePayloadToLickEvent:e}=await import(`./lick-ws-bridge-BNbPpvx4.js`);return{mapNavigatePayloadToLickEvent:e}},__vite__mapDeps([28,2,29,4,3,1,5,6,7])),o=null,s=[],c=!1,l=e=>{o=e;for(let t of s)e.sendForwardedLick(t);s.length=0},u=new e(new i({extensionId:n,onLick:e=>{let t=a(e);if(t){if(o){o.sendForwardedLick(t);return}s.length>=50&&(s.shift(),c||(c=!0,r.warn(`extension-bridge lick buffer overflow (cap 50); dropping oldest pending licks until the kernel client attaches`))),s.push(t)}},onOpenSettings:()=>{globalThis.dispatchEvent(new CustomEvent(`slicc:open-settings-from-panel`))}}));return await ht(u,void 0,r),{browser:u,attachLickForwardingClient:l}}async function _t(e){let{runtimeMode:n,envBaseUrl:r,window:i,log:a}=e,o=n===`electron-overlay`;a.info(`setting up standalone page runtime (BrowserAPI + CDP)`,{runtimeMode:n});let{BrowserAPI:s}=await t(async()=>{let{BrowserAPI:e}=await import(`./cdp-FrTDh4u0.js`);return{BrowserAPI:e}},__vite__mapDeps([30,2,31,32,33,4,5]));await ut({log:a});let c,l,u,d=null,f=null,p=null,m=null,h,g=n===`cherry`?null:pt(i.location.search),_=!!g&&O(),v=n===`cherry`||_?null:k(i.location.search);v?.apiBaseUrl&&(d=v.apiBaseUrl,we(v.apiBaseUrl),f=v.token,Te(v.token)),v?.lickWsUrl&&(p=v.lickWsUrl);let y=await tt(),b=st(n,y!==null)?qe:null;if(await R({locationHref:i.location.href,storage:i.localStorage,envBaseUrl:r,defaultWorkerBaseUrl:b,runtimeConfigFetcher:async()=>y}),n===`cherry`){let{setupCherryFollower:e}=await t(async()=>{let{setupCherryFollower:e}=await import(`./main-cherry-C4cWQqKP.js`);return{setupCherryFollower:e}},__vite__mapDeps([34,2,30,31,32,33,4,5,35])),n=await e();c=n.browser,l=n.joinUrl,u=n.transport}else if(g&&O()){a.info(`Routing CDP through the extension bridge (leader tab)`);let e=await gt(s,g.extensionId,a);c=e.browser,h=e.attachLickForwardingClient,m=g.extensionId,Ee(g.extensionId)}else{c=new s,v&&a.info(`Routing CDP through local standalone bridge`,{url:v.url,role:v.role??`(unset)`});let e=v?{url:v.url,protocols:v.subprotocol}:void 0;v?.role===`follower`?(a.info(`Skipping CDP connect for follower overlay tab`),c.primeConnectOptions(e)):(await ht(c,e,a),c.setCdpSupersededHandler(()=>at(i.document)))}let x=c.getTransport();return globalThis.__slicc_browser=c,{browser:c,realCdpTransport:x,cherryJoinUrl:l,cherryTransport:u,instanceId:ft(),isElectronOverlay:o,localApiBaseUrl:d,bridgeToken:f,localLickWsUrl:p,extensionDelegateId:m,attachLickForwardingClient:h}}var z=E(`boot/sw-registration`);async function vt(e=null,t=null){let n=(()=>{try{return new URL(window.location.href).searchParams.get(`connect`)===`1`}catch{return!1}})();if(`serviceWorker`in navigator&&n&&await xt())return`reload-pending`;if(!(`serviceWorker`in navigator)||n)return`ready`;try{if(await navigator.serviceWorker.register(`/preview-sw.js`,{scope:`/preview/`}),z.info(`Preview SW registered`),!D())try{await navigator.serviceWorker.register(`/llm-proxy-sw.js`,{scope:`/`}),z.info(`LLM-proxy SW registered`)}catch(e){z.error(`LLM-proxy SW registration failed — cross-origin LLM calls will hit CORS`,e)}if(navigator.serviceWorker.controller||await Promise.race([new Promise(e=>navigator.serviceWorker.addEventListener(`controllerchange`,()=>e(),{once:!0})),new Promise(e=>setTimeout(e,1500))]),!navigator.serviceWorker.controller&&!sessionStorage.getItem(`slicc-sw-reloaded`))return sessionStorage.setItem(`slicc-sw-reloaded`,`1`),z.info(`Reloading once to gain SW control`),location.reload(),`reload-pending`;sessionStorage.removeItem(`slicc-sw-reloaded`),e&&(yt(e),navigator.serviceWorker.addEventListener(`controllerchange`,()=>{yt(e)})),t&&(bt(t),navigator.serviceWorker.addEventListener(`controllerchange`,()=>{bt(t)}))}catch(e){z.error(`Preview SW registration failed — preview feature will not work`,e)}return`ready`}function yt(e){let t=navigator.serviceWorker.controller;if(!t)return;let n={type:Me,apiBaseUrl:e.apiBaseUrl,token:e.token};try{t.postMessage(n)}catch(e){z.warn(`LLM-proxy SW bridge-config postMessage failed`,e)}}function bt(e){let t=navigator.serviceWorker.controller;if(!t)return;let n={type:Ne,extensionId:e.extensionId};try{t.postMessage(n)}catch(e){z.warn(`LLM-proxy SW extension-delegate postMessage failed`,e)}}async function xt(){try{let e=await navigator.serviceWorker.getRegistrations();if(await Promise.all(e.map(e=>e.unregister().catch(()=>!1))),navigator.serviceWorker.controller&&!sessionStorage.getItem(`slicc-connect-sw-cleared`))return sessionStorage.setItem(`slicc-connect-sw-cleared`,`1`),z.info(`connect mode: detaching from service worker (no proxy on worker origin)`),location.reload(),!0;sessionStorage.removeItem(`slicc-connect-sw-cleared`)}catch(e){z.error(`connect-mode SW cleanup failed`,e)}return!1}var B={state:`inactive`,joinUrl:null,trayId:null,error:null,lastPingTime:null,reconnectAttempts:0,attachAttempts:0,lastAttachCode:null,connectingSince:null,lastError:null};function St(){return{...B}}var Ct=`slicc.followerTrayStatus`,V=new Set;function wt(e){return V.add(e),()=>{V.delete(e)}}function Tt(){if(V.size!==0)for(let e of[...V])try{e({...B})}catch{}}function Et(e){B={...e},Tt()}function Dt(e){B={...B,lastPingTime:e},Tt()}function Ot(e){return typeof e==`string`&&e.startsWith(`No API key configured`)}function kt(e){if(!e)return!1;let t=e.toLowerCase();return t.includes(`the provided model identifier is invalid`)||t.includes(`model not allowed`)}function At(e){return e?e.toLowerCase().includes(`please log in again`):!1}function jt(e){return Ot(e)||kt(e)||At(e)}var H=null,Mt=!1;function Nt(){return typeof window>`u`||typeof document>`u`||document?.documentElement===void 0||typeof localStorage?.getItem!=`function`}function Pt(){return Nt()?`standalone-worker`:D()?`extension`:typeof document<`u`&&document.documentElement?.dataset?.electronOverlay?`electron`:`cli`}async function Ft(){if(!Mt&&!(typeof localStorage<`u`&&typeof localStorage?.getItem==`function`&&localStorage.getItem(`telemetry-disabled`)===`true`))try{let e=Pt();e!==`standalone-worker`&&typeof window<`u`?window.RUM_GENERATION=`slicc-${e}`:globalThis.RUM_GENERATION=`slicc-${e}`,e===`standalone-worker`?(H=(await t(()=>import(`./rum-worker-CwmNSpjO.js`),[])).default,self.addEventListener(`error`,e=>{let t=e;U(`js`,t.error?.message??t.message??``)}),self.addEventListener(`unhandledrejection`,e=>{let t=e.reason;U(`js`,t instanceof Error?t.message:String(t))})):e===`extension`?(H=(await t(()=>import(`./rum-DW84CvBs.js`),[])).default,typeof window<`u`&&(window.addEventListener(`error`,e=>{let t=e;U(`js`,t.error?.message??t.message??``)}),window.addEventListener(`unhandledrejection`,e=>{let t=e.reason;U(`js`,t instanceof Error?t.message:String(t))}))):(typeof window<`u`&&(window.SAMPLE_PAGEVIEWS_AT_RATE=`high`),Gt(),H=(await t(()=>import(`./src-C9oNvq2b.js`),[])).sampleRUM),Mt=!0,H&&H(`navigate`,{source:typeof document<`u`?document.referrer:``,target:e})}catch{}}function It(e,t){H?.(`formsubmit`,{source:e,target:t})}function Lt(e){H?.(`viewblock`,{source:e})}function Rt(e){H?.(`viewmedia`,{source:e})}function U(e,t){let n=t;if(typeof n==`string`){if(jt(n))return;let e=Vt(n);if(e===null)return;n=e}H?.(`error`,{source:e,target:n})}function zt(e){H?.(`signup`,{source:e})}function Bt(e){return e.includes(`@vite/client`)||e.includes(`@vite/env`)||e.includes(`[vite]`)||/https?:\/\/localhost:\d+\/@vite\//.test(e)||/\/__vite_ping/.test(e)}function Vt(e){let t=e??``;if(t.includes(`@vite/`)||t.includes(`[vite]`)||t.includes(`__vite_ping`)){let e=t.split(`
|
|
23
|
-
`).filter(e=>!Bt(e)).join(`
|
|
24
|
-
`).trim();return e?e.slice(0,200).replace(/(\/[a-z]+)(?:\/[^\s/]+)+/gi,`$1/.../`):null}return t.slice(0,200).replace(/(\/[a-z]+)(?:\/[^\s/]+)+/gi,`$1/.../`)}var Ht=Symbol.for(`slicc.telemetry.sendBeacon.wrapped`);function Ut(e){if(typeof e!=`string`)return{kind:`absent`};let t=Vt(e);return t===null?{kind:`noise`}:{kind:`kept`,value:t,mutated:t!==e}}function Wt(e){let t=Ut(e.source),n=Ut(e.target),r=t.kind!==`kept`,i=n.kind!==`kept`;if((t.kind!==`absent`||n.kind!==`absent`)&&r&&i)return!0;let a=!1;return t.kind===`kept`?t.mutated&&(e.source=t.value,a=!0):t.kind===`noise`&&(e.source=``,a=!0),n.kind===`kept`?n.mutated&&(e.target=n.value,a=!0):n.kind===`noise`&&(e.target=``,a=!0),a?JSON.stringify(e):null}function Gt(){if(typeof navigator>`u`||typeof navigator.sendBeacon!=`function`)return;let e=navigator.sendBeacon;if(e[Ht])return;let t=e.bind(navigator),n=((e,n)=>{try{let r=typeof n==`string`?n:n instanceof ArrayBuffer?new TextDecoder().decode(n):null;if(r&&r.length>0&&r.charCodeAt(0)===123){let n=JSON.parse(r);if(n?.checkpoint===`error`){let r=Wt(n);if(r===!0)return!0;if(r!==null)return t(e,r)}}}catch{}return t(e,n)});n[Ht]=!0,navigator.sendBeacon=n}function Kt(e,t){if(e.state===`inactive`&&t.state===`inactive`)return{kind:`leader-offer`,label:`Enable multi-browser sync`,caption:`Connect another browser to this session.`};if(e.state===`leader`&&e.session?.joinUrl)return{kind:`leader-copy`,joinUrl:e.session.joinUrl,label:`Enable multi-browser sync`,caption:`Share this URL to connect more browsers.`};if(e.state!==`inactive`){let t=e.state===`connecting`?`Setting up multi-browser sync…`:e.state===`reconnecting`?`Reconnecting…`:`Sync service unreachable.`;return{kind:`leader-pending`,label:`Multi-browser sync`,caption:e.error??t}}return{kind:`follower`,label:`Multi-browser sync`,caption:t.error??t.lastError??qt(t.state)??`Mirroring another browser.`}}function qt(e){switch(e){case`connected`:return`Connected — mirroring another browser.`;case`connecting`:return`Connecting to the other browser…`;case`reconnecting`:return`Reconnecting…`;case`disconnected`:return`Disconnected from the other browser.`;default:return null}}function Jt(e){let t=e.trim();if(!t)return`Paste a sync URL to continue.`;let n=null;try{n=new URL(t)}catch{return`That doesn’t look like a URL. Paste the full https://… link from the other browser.`}return n.protocol!==`https:`&&n.protocol!==`http:`?`Sync URLs must start with https://.`:n.pathname.includes(`/join/`)?`That sync URL is malformed. Re-copy it from the other browser and try again.`:`This URL is missing the /join/… capability. Use “Enable multi-browser sync” on the other browser.`}var Yt=e({ACCOUNTS_KEY:()=>fe,__test__:()=>ce,_testOnly_dispatchTrayJoinWithFailureFeedback:()=>Zt,addAccount:()=>T,applyProviderDefaults:()=>S,clearAllSettings:()=>le,clearApiKey:()=>de,clearBaseUrl:()=>ee,clearSelectedProvider:()=>oe,describeInvalidJoinUrl:()=>Jt,downloadProviders:()=>$t,exportProviders:()=>pe,getAccounts:()=>w,getAllAvailableModels:()=>te,getAllExtraOAuthDomains:()=>ue,getApiKey:()=>se,getApiKeyForProvider:()=>re,getApiVersionForProvider:()=>ne,getAvailableProviders:()=>x,getBaseUrl:()=>me,getBaseUrlForProvider:()=>_e,getDeploymentForProvider:()=>C,getExtraOAuthDomains:()=>ge,getOAuthAccountInfo:()=>g,getProviderConfig:()=>i,getProviderModels:()=>he,getRawApiKeyForProvider:()=>_,getSelectedModelId:()=>o,getSelectedProvider:()=>a,isModelHiddenFromPicker:()=>p,logoutOAuthAccount:()=>ae,maskOAuthTokenWithRetry:()=>n,migrateLegacyAuthOnlySelection:()=>ie,persistOAuthMaskViaServiceWorker:()=>d,providerOffersLlmModels:()=>f,reloginOAuthAccount:()=>nn,removeAccount:()=>m,resolveCurrentModel:()=>s,resolveModelById:()=>l,resolveModelByShorthand:()=>u,saveOAuthAccount:()=>h,setApiKey:()=>ve,setBaseUrl:()=>r,setExtraOAuthDomains:()=>y,setExtraOAuthDomainsAsync:()=>c,setSelectedModelId:()=>v,setSelectedProvider:()=>b,showProviderSettings:()=>Cn}),Xt=E(`provider-settings`);function Zt(e,t){return Qt(e,t)}function Qt(e,t){let n=`tray-join-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,r=!1,i,a=()=>{r||(r=!0,i!==void 0&&clearTimeout(i),window.removeEventListener(`slicc:tray-join-failed`,o))},o=r=>{let i=r.detail;if(i.requestId!==void 0&&i.requestId!==n)return;if(a(),!t.isConnected){Xt.error(`Tray-join failure arrived after dialog dismissed (UX swallowed half-state)`,{joinUrl:e,error:i.error,requestId:n});return}let o=t.dataset.dismissTimer;if(o){let e=Number(o);Number.isFinite(e)&&clearTimeout(e),delete t.dataset.dismissTimer}t.textContent=`Sync failed: ${i.error}. Reload the page and try again.`,t.style.color=`var(--slicc-cone)`};return window.addEventListener(`slicc:tray-join-failed`,o),i=setTimeout(a,1e4),window.dispatchEvent(new CustomEvent(`slicc:tray-join`,{detail:{joinUrl:e,requestId:n}})),a}function $t(){let e=JSON.stringify(pe(),null,2),t=new Blob([e],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`providers.json`,r.click(),URL.revokeObjectURL(n)}function en(e){return e.length<=10?`****`:e.slice(0,4)+`...`+e.slice(-4)}function W(e){let t=`http://www.w3.org/2000/svg`,n=document.createElementNS(t,`svg`);n.setAttribute(`width`,`14`),n.setAttribute(`height`,`14`),n.setAttribute(`viewBox`,`0 0 20 20`),n.setAttribute(`fill`,`none`),n.setAttribute(`stroke`,`currentColor`),n.setAttribute(`stroke-width`,`1.5`),n.setAttribute(`stroke-linecap`,`round`),n.setAttribute(`stroke-linejoin`,`round`);for(let r of e){let e=document.createElementNS(t,`path`);e.setAttribute(`d`,r),n.appendChild(e)}return n}var G={pen:[`M14.3 3.3a1.5 1.5 0 0 1 2.1 0l.3.3a1.5 1.5 0 0 1 0 2.1L7.7 14.8l-3.2.7.7-3.2z`],trash:[`M4 6h12`,`M8 6V4a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2`,`M6 6v10a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V6`],logout:[`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,`M16 17l5-5-5-5`,`M21 12H9`],login:[`M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4`,`M10 17l5-5-5-5`,`M15 12H3`]},K=`background: transparent; border: 1px solid var(--s2-border-subtle); color: var(--s2-content-secondary); border-radius: var(--s2-radius-s); padding: 6px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: color 0.15s, border-color 0.15s;`;function q(e,t){e.addEventListener(`mouseenter`,()=>{e.style.color=t,e.style.borderColor=t}),e.addEventListener(`mouseleave`,()=>{e.style.color=`var(--s2-content-secondary)`,e.style.borderColor=`var(--s2-border-subtle)`})}function J(e){e.overlay.remove(),e.resolve((localStorage.getItem(`slicc_accounts`)??``)!==e.accountsBefore)}function Y(e){e.options?.startInAddAccount?J(e):X(e)}function tn(e){let t=document.createElement(`div`);return t.style.cssText=`font-size: 11px; color: var(--s2-content-disabled); font-family: monospace; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;`,e.loggedOut?(t.textContent=e.userName?`Logged out — was ${e.userName}`:`Logged out`,t.style.color=`var(--s2-content-disabled)`):e.userName?t.textContent=e.userName:e.accessToken?t.textContent=`Logged in`:t.textContent=en(e.apiKey),e.baseUrl&&(t.textContent+=` • `+e.baseUrl),t}async function nn(e,n){let{createOAuthLauncher:r,createInterceptingOAuthLauncherForCurrentRuntime:i}=await t(async()=>{let{createOAuthLauncher:e,createInterceptingOAuthLauncherForCurrentRuntime:t}=await import(`./oauth-service-R1ITtnv3.js`);return{createOAuthLauncher:e,createInterceptingOAuthLauncherForCurrentRuntime:t}},__vite__mapDeps([36,1,3,4,5,6,7,20,37])),a={forceReauth:!0};if(e.onOAuthLoginIntercepted){let t=await i();t&&await e.onOAuthLoginIntercepted(t,n,a)}else if(e.onOAuthLogin){let t=r();await e.onOAuthLogin(t,n,a)}}function rn(e,t){let n=document.createElement(`button`);return n.style.cssText=K,n.setAttribute(`aria-label`,`Edit account`),n.appendChild(W(G.pen)),q(n,`var(--s2-accent)`),n.addEventListener(`click`,()=>Z(e,t)),n}function an(e,t,n){let r=document.createElement(`button`);return r.style.cssText=K,t.loggedOut===!0?(r.setAttribute(`aria-label`,`Log in`),r.setAttribute(`title`,`Log in`),r.appendChild(W(G.login)),q(r,`var(--s2-accent)`),r.addEventListener(`click`,()=>{nn(n,()=>X(e))})):(r.setAttribute(`aria-label`,`Log out`),r.setAttribute(`title`,`Log out`),r.appendChild(W(G.logout)),q(r,`var(--s2-warning, #f59e0b)`),r.addEventListener(`click`,()=>{(async()=>{await ae(t.providerId),X(e)})()})),r}function on(e,t){let n=document.createElement(`button`);return n.style.cssText=K,n.setAttribute(`aria-label`,`Remove account`),n.appendChild(W(G.trash)),q(n,`var(--s2-negative)`),n.addEventListener(`click`,()=>{(async()=>{await m(t.providerId),X(e)})()}),n}function sn(e,t){let n=i(t.providerId),r=document.createElement(`div`);r.style.cssText=`display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; background: var(--s2-bg-layer-2); border-radius: var(--s2-radius-default); margin-bottom: 8px; border: 1px solid var(--s2-border-subtle);`;let a=document.createElement(`div`);a.style.cssText=`flex: 1; min-width: 0;`;let o=document.createElement(`div`);o.style.cssText=`font-size: 14px; font-weight: 600; color: var(--s2-content-default);`,o.textContent=n.name,a.appendChild(o),a.appendChild(tn(t)),r.appendChild(a);let s=document.createElement(`div`);return s.style.cssText=`display: flex; gap: 4px; margin-left: 12px; flex-shrink: 0;`,s.appendChild(rn(e,t)),n.isOAuth&&s.appendChild(an(e,t,n)),s.appendChild(on(e,t)),r.appendChild(s),r}function cn(e){let t=document.createDocumentFragment(),n=document.createElement(`hr`);n.style.cssText=`border: none; border-top: 1px solid var(--s2-border-subtle); margin: 16px 0;`,t.appendChild(n);let r=document.createElement(`div`);r.className=`dialog__desc`,r.style.cssText=`font-weight: 600; margin-bottom: 8px;`,r.textContent=`Tray`,t.appendChild(r);let i=St(),a=i.state!==`inactive`,o=Ye(window.localStorage);if(a||o){let e=document.createElement(`div`);e.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px;`,e.textContent=`Follower: ${a?i.state:`configured`}`,i.error&&(e.textContent+=` — ${i.error}`,e.style.color=`var(--slicc-cone)`),t.appendChild(e)}let s=document.createElement(`button`);return s.className=`dialog__btn dialog__btn--secondary`,s.textContent=a||o?`Reconnect to other browser`:`Connect to another browser`,s.addEventListener(`click`,()=>Q(e)),t.appendChild(s),t}function X(e){let{dialog:t}=e;t.innerHTML=``;let n=document.createElement(`div`);n.className=`dialog__title`,n.textContent=`Accounts`,t.appendChild(n);let r=w();if(r.length===0){let e=document.createElement(`div`);e.className=`dialog__desc`,e.textContent=`No accounts configured.`,t.appendChild(e)}else{let n=document.createElement(`div`);n.style.cssText=`margin-bottom: 16px;`;for(let t of r)n.appendChild(sn(e,t));t.appendChild(n)}let i=document.createElement(`div`);i.style.cssText=`display: flex; gap: 8px;`;let a=document.createElement(`button`);a.className=r.length>0?`dialog__btn dialog__btn--secondary`:`dialog__btn`,a.style.flex=`1`,a.textContent=`Add Account`,a.addEventListener(`click`,()=>Z(e)),i.appendChild(a);let o=document.createElement(`button`);o.className=`dialog__btn dialog__btn--secondary`,o.style.flex=`1`,o.textContent=`Export`,o.addEventListener(`click`,()=>$t()),i.appendChild(o),t.appendChild(i),t.appendChild(cn(e));let s=document.createElement(`hr`);s.style.cssText=`border: none; border-top: 1px solid var(--s2-border-subtle); margin: 16px 0;`,t.appendChild(s);let c=document.createElement(`button`);c.className=`dialog__btn`,c.textContent=`Get Started`,c.addEventListener(`click`,()=>J(e)),t.appendChild(c)}function ln(e,t){let n=document.createElement(`select`);if(n.className=`dialog__input`,n.style.marginBottom=`8px`,t){let e=i(t.providerId),r=document.createElement(`option`);return r.value=t.providerId,r.textContent=e.name,n.appendChild(r),n.disabled=!0,n.style.opacity=`0.7`,n}let r=document.createElement(`option`);r.value=``,r.textContent=`Select a provider…`,r.disabled=!0,r.selected=!0,r.hidden=!0,n.appendChild(r);let a=new Set(w().map(e=>e.providerId)),o=[...x()].sort((e,t)=>i(e).name.localeCompare(i(t).name));for(let t of o){if(a.has(t))continue;if(e?.providerFilter){if(!e.providerFilter(t))continue}else if(!f(t))continue;let r=document.createElement(`option`);r.value=t,r.textContent=i(t).name,n.appendChild(r)}return n}function un(e,t){let n=ln(e,t),r=document.createElement(`div`);r.className=`dialog__desc`,r.style.cssText=`font-size: 12px; color: var(--s2-content-tertiary); margin-bottom: 16px; margin-top: -4px;`;let i=document.createElement(`div`);i.style.cssText=`margin-bottom: 16px; display: none;`;let a=document.createElement(`button`);a.className=`dialog__btn`,a.textContent=`Login`,a.style.cssText=`width: 100%; margin-bottom: 8px;`,i.appendChild(a);let o=document.createElement(`div`);o.className=`dialog__desc`,o.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); text-align: center;`,i.appendChild(o);let s=document.createElement(`div`),c=document.createElement(`div`);c.className=`dialog__desc`,s.appendChild(c);let l=document.createElement(`input`);l.className=`dialog__input`,l.type=`password`,l.autocomplete=`off`,l.spellcheck=!1,t&&(l.value=t.apiKey),s.appendChild(l);let u=document.createElement(`div`),d=document.createElement(`div`);d.className=`dialog__desc`,d.textContent=`Base URL:`,u.appendChild(d);let f=document.createElement(`input`);f.className=`dialog__input`,f.type=`text`,f.autocomplete=`off`,f.spellcheck=!1,t?.baseUrl&&(f.value=t.baseUrl),u.appendChild(f);let p=document.createElement(`div`);p.className=`dialog__desc`,p.style.cssText=`font-size: 11px; color: var(--s2-content-secondary); margin-top: -12px; margin-bottom: 16px;`,u.appendChild(p);let m=document.createElement(`div`);m.style.display=`none`;let h=document.createElement(`div`);h.className=`dialog__desc`,h.textContent=`Deployment:`,m.appendChild(h);let g=document.createElement(`input`);g.className=`dialog__input`,g.type=`text`,g.autocomplete=`off`,g.spellcheck=!1,t?.deployment&&(g.value=t.deployment),m.appendChild(g);let _=document.createElement(`div`);_.className=`dialog__desc`,_.style.cssText=`font-size: 11px; color: var(--s2-content-secondary); margin-top: -12px; margin-bottom: 16px;`,m.appendChild(_);let v=document.createElement(`div`);v.style.display=`none`;let y=document.createElement(`div`);y.className=`dialog__desc`,y.textContent=`API Version:`,v.appendChild(y);let b=document.createElement(`input`);b.className=`dialog__input`,b.type=`text`,b.autocomplete=`off`,b.spellcheck=!1,t?.apiVersion&&(b.value=t.apiVersion),v.appendChild(b);let x=document.createElement(`div`);x.className=`dialog__desc`,x.style.cssText=`font-size: 11px; color: var(--s2-content-secondary); margin-top: -12px; margin-bottom: 16px;`,v.appendChild(x);let S=document.createElement(`div`);S.style.cssText=`color: var(--slicc-cone); font-size: 12px; margin-bottom: 8px; display: none;`;let C=document.createElement(`button`);return C.className=`dialog__btn`,C.textContent=t?`Save`:`Add`,{providerSelect:n,providerDesc:r,oauth:{section:i,loginBtn:a,status:o},apiKeySection:s,apiKeyLabel:c,apiKeyInput:l,baseUrlSection:u,baseUrlInput:f,baseUrlDesc:p,deploymentSection:m,deploymentInput:g,deploymentDesc:_,apiVersionSection:v,apiVersionInput:b,apiVersionDesc:x,errorEl:S,saveBtn:C}}function dn(e){let t=document.createElement(`div`);t.setAttribute(`data-slicc-device-code-prompt`,``),t.style.cssText=`display:flex;flex-direction:column;gap:8px`;let n=document.createElement(`div`);n.className=`dialog__desc`,n.textContent=`Verification code`,n.style.cssText=`font-size: 11px; color: var(--s2-content-tertiary);`;let r=document.createElement(`div`);r.textContent=e,r.style.cssText=[`font: 600 22px ui-monospace, SFMono-Regular, Menlo, monospace`,`letter-spacing: 2px`,`color: var(--s2-content-primary, #e6edf3)`,`background: var(--s2-bg-secondary, #161b22)`,`border: 1px solid var(--s2-border, #30363d)`,`border-radius: 6px`,`padding: 10px 12px`,`text-align: center`,`user-select: all`,`cursor: text`].join(`;`);let i=document.createElement(`div`);i.className=`dialog__desc`,i.style.cssText=`font-size: 12px; color: var(--s2-content-secondary);`,i.textContent=`Click Copy & Continue — we will open the GitHub authorization page in a new tab. Paste this code there if it is not already filled in.`;let a=document.createElement(`div`);a.style.cssText=`display:flex;gap:8px;justify-content:flex-end;margin-top:4px`;let o=document.createElement(`button`);o.type=`button`,o.className=`dialog__btn`,o.textContent=`Cancel`;let s=document.createElement(`button`);return s.type=`button`,s.className=`dialog__btn dialog__btn--primary`,s.textContent=`Copy & Continue`,a.appendChild(o),a.appendChild(s),t.appendChild(n),t.appendChild(r),t.appendChild(i),t.appendChild(a),{prompt:t,cancelBtn:o,continueBtn:s}}function fn(e){return t=>new Promise(n=>{let r=e.loginBtn.style.display,i=e.status.style.display;e.loginBtn.style.display=`none`,e.status.style.display=`none`;let{prompt:a,cancelBtn:o,continueBtn:s}=dn(t.userCode),c=()=>{try{a.remove()}catch{}e.loginBtn.style.display=r,e.status.style.display=i};o.addEventListener(`click`,()=>{c(),n(`cancel`)}),s.addEventListener(`click`,()=>{(async()=>{try{await ke(t.userCode)}catch{}c(),e.status.style.display=i,e.status.textContent=`Waiting for you to authorize in the new tab…`,n(`continue`)})()}),e.section.appendChild(a)})}async function pn(e,n){let r=n.providerSelect.value;if(!r)return;let a=i(r);if(!a.onOAuthLogin&&!a.onOAuthLoginIntercepted)return;let{status:o}=n.oauth,s=w().some(e=>e.providerId===r),c=_e(r);if(a.requiresBaseUrl&&!n.baseUrlInput.value.trim()&&!c){o.textContent=`Base URL is required.`,o.style.color=`var(--slicc-cone)`,n.baseUrlInput.focus();return}a.requiresBaseUrl&&n.baseUrlInput.value.trim()&&T(r,``,n.baseUrlInput.value.trim()),o.textContent=`Opening login window...`;try{if(a.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:r}=await t(async()=>{let{createInterceptingOAuthLauncherForCurrentRuntime:e}=await import(`./oauth-service-R1ITtnv3.js`);return{createInterceptingOAuthLauncherForCurrentRuntime:e}},__vite__mapDeps([36,1,3,4,5,6,7,20,37])),i=await r();if(!i)throw Error(`No controlled-browser CDP transport available — open SLICC in standalone mode or the Chrome extension.`);await a.onOAuthLoginIntercepted(i,()=>Y(e),{presentDeviceCode:fn(n.oauth)})}else if(a.onOAuthLogin){let{createOAuthLauncher:n}=await t(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-R1ITtnv3.js`);return{createOAuthLauncher:e}},__vite__mapDeps([36,1,3,4,5,6,7,20,37])),r=n();await a.onOAuthLogin(r,()=>Y(e))}}catch(e){if(!s)try{await m(r)}catch{}Xt.error(`OAuth login failed`,{providerId:r,error:e instanceof Error?e.message:String(e)}),o.textContent=`Login failed: ${e instanceof Error?e.message:String(e)}`}}function mn(e,t){if(t.isOAuth){e.oauth.section.style.display=``,e.apiKeySection.style.display=`none`,e.baseUrlSection.style.display=t.requiresBaseUrl?``:`none`,t.requiresBaseUrl&&(e.baseUrlInput.placeholder=t.baseUrlPlaceholder||`https://...`,e.baseUrlDesc.textContent=t.baseUrlDescription||``),e.oauth.loginBtn.textContent=`Login with ${t.name}`,e.saveBtn.style.display=`none`;return}e.oauth.section.style.display=`none`;let n=t.requiresApiKey?`API Key`:`API Key (optional)`;e.apiKeyLabel.textContent=`${n}${t.apiKeyEnvVar?` (${t.apiKeyEnvVar})`:``}:`,e.apiKeyInput.placeholder=t.apiKeyPlaceholder||`API key`,e.apiKeySection.style.display=t.requiresApiKey||t.optionalApiKey?``:`none`,e.baseUrlInput.placeholder=t.baseUrlPlaceholder||`https://...`,e.baseUrlDesc.textContent=t.baseUrlDescription||``,e.baseUrlSection.style.display=t.requiresBaseUrl?``:`none`,e.saveBtn.style.display=``}function hn(e,t){t.requiresDeployment?(e.deploymentSection.style.display=``,e.deploymentInput.placeholder=t.deploymentPlaceholder||`deployment-name`,e.deploymentDesc.textContent=t.deploymentDescription||``):e.deploymentSection.style.display=`none`}function gn(e,t){t.requiresApiVersion?(e.apiVersionSection.style.display=``,!e.apiVersionInput.value&&t.apiVersionDefault&&(e.apiVersionInput.value=t.apiVersionDefault),e.apiVersionInput.placeholder=t.apiVersionDefault||`api-version`,e.apiVersionDesc.textContent=t.apiVersionDescription||``):e.apiVersionSection.style.display=`none`}function _n(e){let t=e.providerSelect.value;if(!t){e.providerDesc.textContent=``,e.oauth.section.style.display=`none`,e.apiKeySection.style.display=`none`,e.baseUrlSection.style.display=`none`,e.deploymentSection.style.display=`none`,e.apiVersionSection.style.display=`none`,e.saveBtn.style.display=`none`;return}let n=i(t);e.providerDesc.textContent=n.description,mn(e,n),hn(e,n),gn(e,n)}function vn(e,t){let n=t.providerSelect.value;if(!n)return;let r=i(n),a=(e,n)=>{t.errorEl.textContent=e,t.errorEl.style.display=``,n.focus()};if(r.requiresApiKey&&t.apiKeyInput.value.trim().length<5){a(`API key is required (at least 5 characters).`,t.apiKeyInput);return}if(r.requiresBaseUrl&&!t.baseUrlInput.value.trim()){a(`Base URL is required for this provider.`,t.baseUrlInput);return}if(r.requiresDeployment&&!t.deploymentInput.value.trim()){a(`Deployment name is required for this provider.`,t.deploymentInput);return}T(n,t.apiKeyInput.value.trim(),t.baseUrlInput.value.trim()||void 0,t.deploymentInput.value.trim()||void 0,t.apiVersionInput.value.trim()||void 0),Y(e)}function yn(e,t){let{dialog:n,options:r}=e,i=w().length>0;if(r?.startInAddAccount){let t=document.createElement(`button`);t.className=`dialog__btn dialog__btn--secondary`,t.style.marginTop=`8px`,t.textContent=`Cancel`,t.addEventListener(`click`,()=>J(e)),n.appendChild(t)}else if(!t&&!i){let t=document.createElement(`button`);t.className=`dialog__btn dialog__btn--secondary`,t.style.marginTop=`8px`,t.textContent=`Connect to another browser`,t.addEventListener(`click`,()=>Q(e)),n.appendChild(t)}else if(i){let t=document.createElement(`button`);t.className=`dialog__btn dialog__btn--secondary`,t.style.marginTop=`8px`,t.textContent=`Back`,t.addEventListener(`click`,()=>X(e)),n.appendChild(t)}}function Z(e,t){let{dialog:n}=e;n.innerHTML=``;let r=document.createElement(`div`);r.className=`dialog__title`,r.textContent=t?`Edit Account`:`Add Account`,n.appendChild(r);let a=document.createElement(`div`);a.className=`dialog__desc`,a.textContent=`Provider:`,n.appendChild(a);let o=un(e.options,t);n.appendChild(o.providerSelect),n.appendChild(o.providerDesc),o.oauth.loginBtn.addEventListener(`click`,()=>{pn(e,o)}),t?.userName&&(o.oauth.status.textContent=`Logged in as ${t.userName}`,o.oauth.loginBtn.textContent=`Re-login`),n.appendChild(o.oauth.section),n.appendChild(o.apiKeySection),n.appendChild(o.baseUrlSection),n.appendChild(o.deploymentSection),n.appendChild(o.apiVersionSection),n.appendChild(o.errorEl),o.providerSelect.addEventListener(`change`,()=>{o.errorEl.style.display=`none`,_n(o)}),_n(o),o.saveBtn.addEventListener(`click`,()=>vn(e,o));let s=t=>{t.key===`Enter`&&vn(e,o)};o.apiKeyInput.addEventListener(`keydown`,s),o.baseUrlInput.addEventListener(`keydown`,s),o.deploymentInput.addEventListener(`keydown`,s),o.apiVersionInput.addEventListener(`keydown`,s),n.appendChild(o.saveBtn),yn(e,!!t),requestAnimationFrame(()=>{let e=o.providerSelect.value;if(!e)return;let t=i(e);t.requiresApiKey?o.apiKeyInput.focus():t.requiresBaseUrl&&o.baseUrlInput.focus()})}function bn(e,t,n){Qt(t,n),n.textContent=`Connecting…`,n.style.display=``,n.style.color=`var(--s2-content-secondary)`;let r=setTimeout(()=>{e.overlay.remove(),e.resolve(!1)},800);n.dataset.dismissTimer=String(r)}function xn(e,t){let{dialog:n}=e;n.innerHTML=``;let r=document.createElement(`div`);r.className=`dialog__title`,r.textContent=`Connect this browser?`,n.appendChild(r);let i=document.createElement(`div`);i.className=`dialog__desc`,i.style.marginBottom=`12px`,i.textContent=`You’ve been invited to mirror another SLICC browser. Click below to start syncing.`,n.appendChild(i);let a=document.createElement(`div`);a.className=`dialog__desc`,a.style.cssText=`font-family: monospace; font-size: 11px; color: var(--s2-content-secondary); word-break: break-all; margin-bottom: 16px; padding: 8px; background: var(--s2-bg-secondary); border-radius: 4px;`,a.textContent=t.length>80?t.slice(0,40)+`…`+t.slice(-37):t,n.appendChild(a);let o=document.createElement(`div`);o.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px; display: none;`,n.appendChild(o);let s=document.createElement(`button`);s.className=`dialog__btn`,s.textContent=`Connect`,s.addEventListener(`click`,()=>{let n=L(window.localStorage,t);if(!n){o.textContent=`Invalid sync URL.`,o.style.display=``,o.style.color=`var(--slicc-cone)`;return}bn(e,n.joinUrl,o)}),n.appendChild(s);let c=document.createElement(`button`);c.className=`dialog__btn dialog__btn--secondary`,c.style.marginTop=`8px`,c.textContent=`Set up an account instead`,c.addEventListener(`click`,()=>Z(e)),n.appendChild(c)}function Sn(){let e=document.createElement(`details`);e.style.cssText=`margin-bottom: 12px; font-size: 12px; color: var(--s2-content-secondary);`;let t=document.createElement(`summary`);t.style.cssText=`cursor: pointer; user-select: none; color: var(--s2-content-secondary);`,t.textContent=`How do I get the sync URL?`,e.appendChild(t);let n=document.createElement(`div`);n.style.cssText=`margin-top: 8px; padding: 10px 12px; background: var(--s2-bg-layer-2); border-radius: var(--s2-radius-default); border: 1px solid var(--s2-border-subtle); line-height: 1.5;`;let r=document.createElement(`ol`);r.style.cssText=`margin: 0; padding-left: 20px;`;for(let e of[`On the other SLICC, click the avatar (top right).`,`Choose “Enable multi-browser sync” — the URL is copied automatically.`,`Paste it below. Both browsers must be on the same SLICC version.`]){let t=document.createElement(`li`);t.textContent=e,r.appendChild(t)}return n.appendChild(r),e.appendChild(n),e}function Q(e){let{dialog:t}=e;t.innerHTML=``;let n=document.createElement(`div`);n.className=`dialog__title`,n.textContent=`Connect to another browser`,t.appendChild(n);let r=document.createElement(`div`);r.className=`dialog__desc`,r.style.marginBottom=`12px`,r.textContent=`Paste a multi-browser sync URL to mirror another SLICC browser.`,t.appendChild(r),t.appendChild(Sn());let i=document.createElement(`div`);i.className=`dialog__desc`,i.textContent=`Sync URL:`,t.appendChild(i);let a=document.createElement(`input`);a.className=`dialog__input`,a.type=`text`,a.autocomplete=`off`,a.spellcheck=!1,a.placeholder=`https://www.sliccy.ai/join/<token>`,t.appendChild(a);let o=document.createElement(`div`);o.style.cssText=`color: var(--slicc-cone); font-size: 12px; margin-bottom: 8px; display: none;`,t.appendChild(o);let s=document.createElement(`div`);s.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px; display: none;`;let c=document.createElement(`button`);c.className=`dialog__btn`,c.textContent=`Connect`,c.addEventListener(`click`,()=>{let t=a.value.trim();if(!t){o.textContent=`Paste a sync URL to continue.`,o.style.display=``,a.focus();return}let n=L(window.localStorage,t);if(!n){o.textContent=Jt(t),o.style.display=``,a.focus();return}bn(e,n.joinUrl,s)}),t.appendChild(c),t.appendChild(s);let l=document.createElement(`button`);l.className=`dialog__btn dialog__btn--secondary`,l.style.marginTop=`8px`,l.textContent=`Back`,l.addEventListener(`click`,()=>Z(e)),t.appendChild(l),a.addEventListener(`input`,()=>{o.style.display=`none`}),a.addEventListener(`keydown`,e=>{e.key===`Enter`&&c.click()}),requestAnimationFrame(()=>a.focus())}function Cn(e){return zt(`button`),new Promise(t=>{let n=document.createElement(`div`);n.className=`dialog-overlay`;let r=document.createElement(`div`);r.className=`dialog`,r.style.cssText=`max-width: 480px; width: 90vw; padding: 32px;`;let i={overlay:n,dialog:r,options:e,accountsBefore:localStorage.getItem(`slicc_accounts`)??``,resolve:t};e?.startInAddAccount?Z(i):w().length>0?X(i):e?.autoJoinUrl?xn(i,e.autoJoinUrl):e?.preferTrayJoin?Q(i):Z(i),n.appendChild(r),document.body.appendChild(n)})}var $=E(`main`);function wn(e){try{return new URL(e).searchParams.has(`ui-fixture`)}catch{return!1}}async function Tn(){let e=document.getElementById(`app`);if(!e)throw Error(`#app element not found`);let n=D(),r=ot(window.location.href,n);if(wn(window.location.href)){let{mountWcUiPreview:n}=await t(async()=>{let{mountWcUiPreview:e}=await import(`./wc-shell-ChVfRkDg.js`).then(e=>e.a);return{mountWcUiPreview:e}},__vite__mapDeps([38,4,1,24,39,40,41]));n(e);return}ze(),He(),r!==`connect`&&Ft().catch(()=>{});let i=k(window.location.search),a=r===`cherry`?null:pt(window.location.search),o=!!a&&O();if(await vt(i?{apiBaseUrl:i.apiBaseUrl,token:i.token}:null,o&&a?{extensionId:a.extensionId}:null)===`reload-pending`)return;if(!n&&(r===`follower`||r===`cherry`)){let{mountWcUiFollower:n}=await t(async()=>{let{mountWcUiFollower:e}=await import(`./wc-follower-BpVE8bZM.js`);return{mountWcUiFollower:e}},__vite__mapDeps([42,1,2,5,38,4,24,39,40,41,43,44,37,45,9,10,11,12,13,14,3,6,7,15,16,17,18,19,20,21,22,46,47,48,49,29,50,51,52,53,54,55,33,56]));return n(e,$,r)}await Oe(),S();let{bootstrapOAuthReplicas:s}=await t(async()=>{let{bootstrapOAuthReplicas:e}=await import(`./oauth-bootstrap-pcB_o7_p.js`);return{bootstrapOAuthReplicas:e}},__vite__mapDeps([57,1,13,4,9,10,11,12,14,2,5,3,6,7,15,16,17,18,19,20,21,22]));if(await Promise.race([s().catch(e=>{$.error(`OAuth bootstrap failed`,e)}),new Promise(e=>setTimeout(e,1e4))]),r===`connect`){globalThis.__slicc_connect_mode=!0;let{loadLegacyStyles:n}=await t(async()=>{let{loadLegacyStyles:e}=await import(`./legacy-styles-CuB1P3LZ.js`);return{loadLegacyStyles:e}},__vite__mapDeps([58,1]));await n();let{mountConnectSurface:r}=await t(async()=>{let{mountConnectSurface:e}=await import(`./connect-surface-B9fZF0bW.js`);return{mountConnectSurface:e}},__vite__mapDeps([59,13,4,1,9,10,11,12,14,2,5,3,6,7,15,16,17,18,19,20,21,22]));await r(e);return}if(n){let{mountWcUiExtension:n}=await t(async()=>{let{mountWcUiExtension:e}=await import(`./wc-extension-DkFWiXyA.js`);return{mountWcUiExtension:e}},__vite__mapDeps([60,1,61,62,45,9,10,11,12,4,13,14,2,5,3,6,7,15,16,17,18,19,20,21,22,37,46,47,48,49,24,29,50,51,38,39,40,41,52,53,43,54]));return n(e,$,r===`extension-detached`)}o&&a&&Re(a.extensionId);let{mountWcUiLive:c}=await t(async()=>{let{mountWcUiLive:e}=await import(`./wc-live-DsVoxwUC.js`);return{mountWcUiLive:e}},__vite__mapDeps([45,1,9,10,11,12,4,13,14,2,5,3,6,7,15,16,17,18,19,20,21,22,37,46,47,48,49,24,29,50,51,38,39,40,41,52,53,43,54]));return c(e,$,r)}Tn().catch(e=>{$.error(`Fatal error`,e);let t=document.getElementById(`app`);if(t){let n=document.createElement(`div`);n.style.cssText=`padding: 2rem; text-align: center;`;let r=document.createElement(`h1`);r.style.color=`var(--s2-negative, #e34850)`,r.textContent=`Failed to start`;let i=document.createElement(`p`);for(i.style.color=`var(--s2-content-tertiary, #717171)`,i.textContent=e.message,n.appendChild(r),n.appendChild(i);t.firstChild;)t.removeChild(t.firstChild);t.appendChild(n)}});export{Ye as C,Ze as D,L as E,Je as S,et as T,lt as _,U as a,N as b,At as c,Ct as d,St as f,_t as g,wt as h,It as i,kt as l,Et as m,Cn as n,Rt as o,Dt as p,Kt as r,Lt as s,Yt as t,Ot as u,qe as v,Xe as w,$e as x,P as y};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t}from"./models-ByRUWfA-.js";import{t as n}from"./preload-helper-CZgWQFsJ.js";import{t as r}from"./provider-env-D37PhSJu.js";import{r as i}from"./transform-messages-D7OsqBmU.js";import{t as a}from"./headers-CbDaTl3c.js";import{t as o}from"./openai-prompt-cache-DXo9f3w5.js";import{n as s,r as c,t as l}from"./openai-responses-shared-1KvKQf-4.js";var u=new Set;function d(e){return u.add(e),()=>{u.delete(e)}}function f(e){return e instanceof Error?e.message||e.name:typeof e==`string`?e:String(e)}function p(e){if(!(e instanceof Error))return{name:`ThrownValue`,message:f(e)};let t=e.code;return{name:e.name||void 0,message:e.message||e.name,stack:e.stack,code:typeof t==`string`||typeof t==`number`?t:void 0}}function m(e,t,n){return{type:e,timestamp:Date.now(),error:p(t),details:n}}function h(e,t){e.diagnostics=[...e.diagnostics??[],t]}function g(e){let t=e.filter(e=>e!==void 0);if(t.length===0)return{cleanup:()=>{}};if(t.length===1)return{signal:t[0],cleanup:()=>{}};let n=new AbortController,r=[],i=e=>{n.signal.aborted||n.abort(e.reason)};for(let e of t){if(e.aborted){i(e);break}let t=()=>i(e);e.addEventListener(`abort`,t,{once:!0}),r.push({signal:e,listener:t})}return{signal:n.signal,cleanup:()=>{for(let{signal:e,listener:t}of r)e.removeEventListener(`abort`,t)}}}var _={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443};function v(e,t){let n=e.toLowerCase(),i=e.toUpperCase();return t?.[n]||t?.[i]||r(n)||r(i)||``}function y(e){if(e instanceof URL)return e;try{return new URL(e)}catch{return}}function b(e,t,n){let r=v(`no_proxy`,n).toLowerCase();return r?r===`*`?!1:r.split(/[,\s]/).every(n=>{if(!n)return!0;let r=n.match(/^(.+):(\d+)$/),i=r?r[1]:n,a=r?Number.parseInt(r[2],10):0;return a&&a!==t?!0:/^[.*]/.test(i)?(i.startsWith(`*`)&&(i=i.slice(1)),!e.endsWith(i)):e!==i}):!0}function x(e,t){let n=y(e);if(!n?.protocol||!n.host)return``;let r=n.protocol.split(`:`,1)[0];if(!b(n.host.replace(/:\d*$/,``),Number.parseInt(n.port,10)||_[r]||0,t))return``;let i=v(`${r}_proxy`,t)||v(`all_proxy`,t);return i&&!i.includes(`://`)&&(i=`${r}://${i}`),i}var S=`Unsupported proxy protocol. SOCKS and PAC proxy URLs are not supported; use an HTTP or HTTPS proxy URL.`;function C(e,t){let n=x(e,t);if(!n)return;let r;try{r=new URL(n)}catch(e){throw Error(`Invalid proxy URL ${JSON.stringify(n)}: ${e instanceof Error?e.message:String(e)}`)}if(r.protocol!==`http:`&&r.protocol!==`https:`)throw Error(`${S} Got ${r.protocol}`);return r}var ee=function(e,t){return typeof e==`string`&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,n,r,i,a){return n?t?`.jsx`:`.js`:r&&(!i||!a)?e:r+i+`.`+a.toLowerCase()+`js`}):e},w=null;typeof process<`u`&&(process.versions?.node||process.versions?.bun)&&(e=>n(()=>import(ee(e)),[]))(`node:os`).then(e=>{w=e});var te=`https://chatgpt.com/backend-api`,ne=`https://api.openai.com/auth`,re=0,T=1e3,ie=6e4,E=2e4,ae=15e3,D=new Set([`openai`,`openai-codex`,`opencode`]),oe=1009,se=`websocket_connection_limit_reached`,ce=new Set([`completed`,`incomplete`,`failed`,`cancelled`,`queued`,`in_progress`]);function le(e){return/GoUsageLimitError|FreeUsageLimitError|Monthly usage limit reached|available balance|insufficient_quota|out of budget|quota exceeded|billing/i.test(e)}function ue(e,t){return e===429&&le(t)?!1:e===429||e===500||e===502||e===503||e===504?!0:/rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(t)}function de(e){let t=e.get(`retry-after-ms`);if(t!==null){let e=Number(t);if(Number.isFinite(e))return Math.max(0,e)}let n=e.get(`retry-after`);if(!n)return;let r=Number(n);if(Number.isFinite(r))return Math.max(0,r*1e3);let i=Date.parse(n);if(!Number.isNaN(i))return Math.max(0,i-Date.now())}function fe(e,t){let n=t?.maxRetryDelayMs??ie;return n>0?Math.min(e,n):e}function O(e,t){return new Promise((n,r)=>{if(t?.aborted){r(Error(`Request was aborted`));return}let i=setTimeout(n,e);t?.addEventListener(`abort`,()=>{clearTimeout(i),r(Error(`Request was aborted`))})})}function k(e){if(e!==void 0){if(!Number.isFinite(e)||e<0)throw Error(`Invalid timeoutMs: ${String(e)}`);return Math.floor(e)}}function pe(){let e=new AbortController,t,n=setTimeout(()=>{t=Error(`Codex SSE response headers timed out after ${E}ms`),e.abort(t)},E);return{signal:e.signal,clear:()=>clearTimeout(n),error:()=>t}}var A=(e,n,r)=>{let i=new t;return(async()=>{let t={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=r?.apiKey;if(!o)throw Error(`No API key for provider: ${e.provider}`);let s=Ve(o),c=he(e,n,r),l=await r?.onPayload?.(c,e);l!==void 0&&(c=l);let u=r?.sessionId||He(),d=Ue(e.headers,r?.headers,s,o,r?.sessionId),f=We(e.headers,r?.headers,s,o,u),p=JSON.stringify(c),_=k(r?.timeoutMs),v=k(r?.websocketConnectTimeoutMs),y=r?.transport||`auto`,b=y!==`sse`&&H(r?.sessionId);if(b&&U(r?.sessionId),y!==`sse`&&!b){let n=!1,a=!1;for(;;){n=!1;try{if(await ze(_e(e.baseUrl),c,f,t,i,e,()=>{n=!0},_,v,r),r?.signal?.aborted)throw Error(`Request was aborted`);i.push({type:`done`,reason:t.stopReason,message:t}),i.end();return}catch(e){let i=r?.signal?.aborted,o=!n&&be(e);if(!i&&o&&!a){a=!0;continue}if(i||ye(e)&&!o||(h(t,m(`provider_transport_failure`,e,{configuredTransport:y,fallbackTransport:n?void 0:`sse`,eventsEmitted:n,phase:n?`after_message_stream_start`:`before_message_stream_start`,requestBytes:new TextEncoder().encode(p).byteLength})),Oe(r?.sessionId,e),n))throw e;U(r?.sessionId);break}}}let x,S,C=r?.maxRetries??re;for(let t=0;t<=C;t++){if(r?.signal?.aborted)throw Error(`Request was aborted`);try{let n=pe(),i=g([r?.signal,n.signal]);try{x=await fetch(N(e.baseUrl),{method:`POST`,headers:d,body:p,signal:i.signal})}catch(e){let t=n.error();throw t&&!r?.signal?.aborted?t:e}finally{i.cleanup(),n.clear()}if(await r?.onResponse?.({status:x.status,headers:a(x.headers)},e),x.ok)break;let o=await x.text();if(t<C&&ue(x.status,o)){let e=de(x.headers);await O(e===void 0?T*2**t:x.status===429?fe(e,r):e,r?.signal);continue}let s=await Be(new Response(o,{status:x.status,statusText:x.statusText}));throw Error(s.friendlyMessage||s.message)}catch(e){if(e instanceof Error&&(e.name===`AbortError`||e.message===`Request was aborted`))throw Error(`Request was aborted`);if(S=e instanceof Error?e:Error(String(e)),t<C&&!S.message.includes(`usage limit`)){await O(T*2**t,r?.signal);continue}throw S}}if(!x?.ok)throw S??Error(`Failed after retries`);if(!x.body)throw Error(`No response body`);if(i.push({type:`start`,partial:t}),await ve(x,t,i,e,r),r?.signal?.aborted)throw Error(`Request was aborted`);i.push({type:`done`,reason:t.stopReason,message:t}),i.end()}catch(e){for(let e of t.content)delete e.partialJson;t.stopReason=r?.signal?.aborted?`aborted`:`error`,t.errorMessage=e instanceof Error?e.message:String(e),i.push({type:`error`,reason:t.stopReason,error:t}),i.end()}})(),i},me=(t,n,r)=>{let a=r?.apiKey;if(!a)throw Error(`No API key for provider: ${t.provider}`);let o=i(t,r,a),s=r?.reasoning?e(t,r.reasoning):void 0,c=s===`off`?void 0:s;return A(t,n,{...o,reasoningEffort:c})};function he(e,t,n){let r=l(e,t,D,{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:o(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=s(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 ge(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function j(e,t,n){let r=ge(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 M(e,t){return e==="default"&&(t===`flex`||t===`priority`)?t:e??t}function N(e){let t=(e&&e.trim().length>0?e:te).replace(/\/+$/,``);return t.endsWith(`/codex/responses`)?t:t.endsWith(`/codex`)?`${t}/responses`:`${t}/codex/responses`}function _e(e){let t=new URL(N(e));return t.protocol===`https:`&&(t.protocol=`wss:`),t.protocol===`http:`&&(t.protocol=`ws:`),t.toString()}async function ve(e,t,n,r,i){await c(I(Ce(e,i?.signal)),t,n,r,{serviceTier:i?.serviceTier,resolveServiceTier:M,applyServiceTierPricing:(e,t)=>j(e,t,r)})}var P=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}},F=class extends Error{payload;constructor(e,t){super(e),this.name=`CodexProtocolError`,this.payload=t?.payload,this.cause=t?.cause}};function ye(e){return e instanceof P||e instanceof F}function be(e){return e instanceof P&&e.code===se}function xe(e){let t=e.error&&typeof e.error==`object`?e.error:void 0;return{code:typeof e.code==`string`?e.code:typeof t?.code==`string`?t.code:void 0,message:typeof e.message==`string`?e.message:typeof t?.message==`string`?t.message:void 0}}async function*I(e){for await(let t of e){let e=typeof t.type==`string`?t.type:void 0;if(e){if(e===`error`){let{code:e,message:n}=xe(t);throw new P(`Codex error: ${n||e||JSON.stringify(t)}`,{code:e,payload:t})}if(e===`response.failed`){let e=t.response,n=e?.error?.code,r=e?.error?.message;throw new P(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:Se(e.status)};yield{...t,type:`response.completed`,response:n};return}yield t}}}function Se(e){if(typeof e==`string`)return ce.has(e)?e:void 0}async function*Ce(e,t){if(!e.body)return;let n=e.body.getReader(),r=new TextDecoder,i=``,a=()=>{n.cancel().catch(()=>{})};t?.addEventListener(`abort`,a,{once:!0});try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);let{done:e,value:a}=await n.read();if(t?.aborted)throw Error(`Request was aborted`);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 F(`Invalid Codex SSE JSON: ${f(t)}`,{cause:t,payload:e})}}o=i.indexOf(`
|
|
6
|
-
|
|
7
|
-
`)}}}finally{t?.removeEventListener(`abort`,a);try{await n.cancel()}catch{}try{n.releaseLock()}catch{}}}var we=`responses_websockets=2026-02-06`,Te=300*1e3,L=new Map,R=new Map,z=new Set;function B(e){let t=R.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},R.set(e,t)),t}function Ee(e){let t=R.get(e);return t?{...t}:void 0}function De(e){if(e){R.delete(e),z.delete(e);return}R.clear(),z.clear()}function V(e){let t=e=>{e.idleTimer&&clearTimeout(e.idleTimer),K(e.socket,1e3,`debug_close`)};if(e){let n=L.get(e);n&&t(n),L.delete(e);return}for(let e of L.values())t(e);L.clear()}d(V);function H(e){return e?z.has(e):!1}function U(e){if(!e)return;let t=B(e);t.sseFallbacks++,t.websocketFallbackActive=H(e)}function Oe(e,t){if(!e)return;z.add(e);let n=B(e);n.websocketFailures++,n.lastWebSocketError=f(t),n.websocketFallbackActive=!0}var W=null;async function ke(e){if(!e&&W)return W;if(typeof process<`u`&&process.versions?.bun){let t=class extends WebSocket{constructor(t,n){let r={};r=Array.isArray(n)||typeof n==`string`?{protocols:n}:{...n};let i=C(t.toString().replace(/^wss:/,`https:`).replace(/^ws:/,`http:`),e);super(t,{...r,...i?{proxy:i.toString()}:{}})}};return e||(W=t),t}let t=globalThis.WebSocket;return typeof t==`function`?t:null}var Ae=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 je(e){let t=e.readyState;return typeof t==`number`?t:void 0}function G(e){let t=je(e);return t===void 0||t===1}function K(e,t=1e3,n=`done`){try{e.close(t,n)}catch{}}function q(e,t){t.idleTimer&&clearTimeout(t.idleTimer),t.idleTimer=setTimeout(()=>{t.busy||(K(t.socket,1e3,`idle_timeout`),L.delete(e))},Te)}async function J(e,t,n,r=ae,i){let o=await ke(i);if(!o)throw Error(`WebSocket transport is not available in this runtime`);let s=a(t);return delete s[`OpenAI-Beta`],new Promise((t,i)=>{let a=!1,c,l;try{l=new o(e,{headers:s})}catch(e){i(e instanceof Error?e:Error(String(e)));return}let u=()=>{c&&=(clearTimeout(c),void 0),l.removeEventListener(`open`,f),l.removeEventListener(`error`,p),l.removeEventListener(`close`,m),n?.removeEventListener(`abort`,h)},d=(e,t)=>{a||(a=!0,u(),t&&K(l,1e3,t),i(e))},f=()=>{a||(a=!0,u(),t(l))},p=e=>{d(Y(e))},m=e=>{d(X(e))},h=()=>{d(Error(`Request was aborted`),`aborted`)};l.addEventListener(`open`,f),l.addEventListener(`error`,p),l.addEventListener(`close`,m),n?.addEventListener(`abort`,h),r>0&&(c=setTimeout(()=>{d(Error(`WebSocket connect timeout after ${r}ms`),`connect_timeout`)},r)),n?.aborted&&h()})}async function Me(e,t,n,r,i,a){if(!n){let n=await J(e,t,r,i,a);return{socket:n,reused:!1,release:()=>K(n)}}let o=L.get(n);if(o){if(o.idleTimer&&=(clearTimeout(o.idleTimer),void 0),!o.busy&&G(o.socket))return o.busy=!0,{socket:o.socket,entry:o,reused:!0,release:({keep:e}={})=>{if(!e||!G(o.socket)){K(o.socket),L.delete(n);return}o.busy=!1,q(n,o)}};if(o.busy){let n=await J(e,t,r,i,a);return{socket:n,reused:!1,release:()=>{K(n)}}}G(o.socket)||(K(o.socket),L.delete(n))}let s=await J(e,t,r,i,a),c={socket:s,busy:!0};return L.set(n,c),{socket:s,entry:c,reused:!1,release:({keep:e}={})=>{if(!e||!G(c.socket)){K(c.socket),c.idleTimer&&clearTimeout(c.idleTimer),L.get(n)===c&&L.delete(n);return}c.busy=!1,q(n,c)}}}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===oe&&(a=` message too big`),new Ae(`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 Ne(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*Pe(e,t,n){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 Ne(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 F(`Invalid Codex WebSocket JSON: ${f(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()},p=()=>{o=Error(`Request was aborted`),a=!0,c()};e.addEventListener(`message`,l),e.addEventListener(`error`,u),e.addEventListener(`close`,d),t?.addEventListener(`abort`,p);try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);if(r.length>0){yield r.shift();continue}if(a)break;let s;await new Promise((t,r)=>{i=t,n!==void 0&&n>0&&(s=setTimeout(()=>{let t=Error(`WebSocket idle timeout after ${n}ms`);o=t,a=!0,i=null,K(e,1e3,`idle_timeout`),r(t)},n))}).finally(()=>{s&&clearTimeout(s)})}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`,p)}}function Z(e){let{input:t,previous_response_id:n,...r}=e;return r}function Fe(e,t){return JSON.stringify(e??[])===JSON.stringify(t??[])}function Q(e,t){return JSON.stringify(Z(e))===JSON.stringify(Z(t))}function Ie(e,t){if(!Q(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 Le(e,t){let n=e.continuation;if(!n)return t;let r=Ie(t,n);return!r||!n.lastResponseId?(e.continuation=void 0,t):{...t,previous_response_id:n.lastResponseId,input:r}}async function*Re(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 ze(e,t,n,r,i,a,o,s,u,d){let{socket:f,entry:p,reused:m,release:h}=await Me(e,n,d?.sessionId,d?.signal,u,d?.env),g=!0,_=d?.transport===`websocket-cached`||d?.transport===`auto`,v=t,y=_&&p?Le(p,v):v,b=d?.sessionId?B(d.sessionId):void 0;b&&(b.requests++,m?b.connectionsReused++:b.connectionsCreated++,_&&b.cachedContextRequests++,y.store===!0&&b.storeTrueRequests++,b.lastInputItems=y.input?.length??0,y.previous_response_id?(b.deltaRequests++,b.lastDeltaInputItems=y.input?.length??0,b.lastPreviousResponseId=y.previous_response_id):(b.fullContextRequests++,b.lastDeltaInputItems=void 0,b.lastPreviousResponseId=void 0));try{if(f.send(JSON.stringify({type:`response.create`,...y})),await c(Re(I(Pe(f,d?.signal,s)),r,i,o),r,i,a,{serviceTier:d?.serviceTier,resolveServiceTier:M,applyServiceTierPricing:(e,t)=>j(e,t,a)}),d?.signal?.aborted)g=!1;else if(_&&p&&r.responseId){let e=l(a,{messages:[r]},D,{includeSystemPrompt:!1}).filter(e=>e.type!==`function_call_output`);p.continuation={lastRequestBody:v,lastResponseId:r.responseId,lastResponseItems:e}}}catch(e){throw p&&(p.continuation=void 0),g=!1,e}finally{h({keep:g})}}async function Be(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 Ve(e){try{let t=e.split(`.`);if(t.length!==3)throw Error(`Invalid token`);let n=JSON.parse(atob(t[1]))?.[ne]?.chatgpt_account_id;if(!n)throw Error(`No account ID in token`);return n}catch{throw Error(`Failed to extract accountId from token`)}}function He(){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||{}))n===null?i.delete(e):i.set(e,n);i.set(`Authorization`,`Bearer ${r}`),i.set(`chatgpt-account-id`,n),i.set(`originator`,`pi`);let a=w?`pi (${w.platform()} ${w.release()}; ${w.arch()})`:`pi (browser)`;return i.set(`User-Agent`,a),i}function Ue(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 We(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`,we),a.set(`x-client-request-id`,i),a.set(`session-id`,i),a}export{V as closeOpenAICodexWebSocketSessions,Ee as getOpenAICodexWebSocketDebugStats,De as resetOpenAICodexWebSocketDebugStats,A as stream,me as streamSimple};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{d as e,o as t,r as n}from"./transform-messages-CQuDksPz.js";import{t as r}from"./provider-env-DwY8YuMk.js";import{t as i}from"./headers-CbDaTl3c.js";import{t as a}from"./openai-prompt-cache-DXo9f3w5.js";import{n as o,r as s,t as c}from"./openai-responses-shared-CEQMR7Nx.js";const l=new Set;function u(e){return l.add(e),()=>{l.delete(e)}}function d(e){return e instanceof Error?e.message||e.name:typeof e==`string`?e:String(e)}function f(e){if(!(e instanceof Error))return{name:`ThrownValue`,message:d(e)};let t=e.code;return{name:e.name||void 0,message:e.message||e.name,stack:e.stack,code:typeof t==`string`||typeof t==`number`?t:void 0}}function p(e,t,n){return{type:e,timestamp:Date.now(),error:f(t),details:n}}function m(e,t){e.diagnostics=[...e.diagnostics??[],t]}function h(e){let t=e.filter(e=>e!==void 0);if(t.length===0)return{cleanup:()=>{}};if(t.length===1)return{signal:t[0],cleanup:()=>{}};let n=new AbortController,r=[],i=e=>{n.signal.aborted||n.abort(e.reason)};for(let e of t){if(e.aborted){i(e);break}let t=()=>i(e);e.addEventListener(`abort`,t,{once:!0}),r.push({signal:e,listener:t})}return{signal:n.signal,cleanup:()=>{for(let{signal:e,listener:t}of r)e.removeEventListener(`abort`,t)}}}const g={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443};function _(e,t){let n=e.toLowerCase(),i=e.toUpperCase();return t?.[n]||t?.[i]||r(n)||r(i)||``}function v(e){if(e instanceof URL)return e;try{return new URL(e)}catch{return}}function y(e,t,n){let r=_(`no_proxy`,n).toLowerCase();return r?r===`*`?!1:r.split(/[,\s]/).every(n=>{if(!n)return!0;let r=n.match(/^(.+):(\d+)$/),i=r?r[1]:n,a=r?Number.parseInt(r[2],10):0;return a&&a!==t?!0:/^[.*]/.test(i)?(i.startsWith(`*`)&&(i=i.slice(1)),!e.endsWith(i)):e!==i}):!0}function b(e,t){let n=v(e);if(!n?.protocol||!n.host)return``;let r=n.protocol.split(`:`,1)[0];if(!y(n.host.replace(/:\d*$/,``),Number.parseInt(n.port,10)||g[r]||0,t))return``;let i=_(`${r}_proxy`,t)||_(`all_proxy`,t);return i&&!i.includes(`://`)&&(i=`${r}://${i}`),i}function x(e,t){let n=b(e,t);if(!n)return;let r;try{r=new URL(n)}catch(e){throw Error(`Invalid proxy URL ${JSON.stringify(n)}: ${e instanceof Error?e.message:String(e)}`)}if(r.protocol!==`http:`&&r.protocol!==`https:`)throw Error(`Unsupported proxy protocol. SOCKS and PAC proxy URLs are not supported; use an HTTP or HTTPS proxy URL. Got ${r.protocol}`);return r}var S=function(e,t){return typeof e==`string`&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,n,r,i,a){return n?t?`.jsx`:`.js`:r&&(!i||!a)?e:r+i+`.`+a.toLowerCase()+`js`}):e};let C=null;typeof process<`u`&&(process.versions?.node||process.versions?.bun)&&(e=>import(S(e)))(`node:os`).then(e=>{C=e});const w=1e3,T=2e4,E=new Set([`openai`,`openai-codex`,`opencode`]),ee=new Set([`completed`,`incomplete`,`failed`,`cancelled`,`queued`,`in_progress`]);function te(e){return/GoUsageLimitError|FreeUsageLimitError|Monthly usage limit reached|available balance|insufficient_quota|out of budget|quota exceeded|billing/i.test(e)}function ne(e,t){return e===429&&te(t)?!1:e===429||e===500||e===502||e===503||e===504?!0:/rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(t)}function re(e){let t=e.get(`retry-after-ms`);if(t!==null){let e=Number(t);if(Number.isFinite(e))return Math.max(0,e)}let n=e.get(`retry-after`);if(!n)return;let r=Number(n);if(Number.isFinite(r))return Math.max(0,r*1e3);let i=Date.parse(n);if(!Number.isNaN(i))return Math.max(0,i-Date.now())}function ie(e,t){let n=t?.maxRetryDelayMs??6e4;return n>0?Math.min(e,n):e}function D(e,t){return new Promise((n,r)=>{if(t?.aborted){r(Error(`Request was aborted`));return}let i=setTimeout(n,e);t?.addEventListener(`abort`,()=>{clearTimeout(i),r(Error(`Request was aborted`))})})}function O(e){if(e!==void 0){if(!Number.isFinite(e)||e<0)throw Error(`Invalid timeoutMs: ${String(e)}`);return Math.floor(e)}}function ae(){let e=new AbortController,t,n=setTimeout(()=>{t=Error(`Codex SSE response headers timed out after ${T}ms`),e.abort(t)},T);return{signal:e.signal,clear:()=>clearTimeout(n),error:()=>t}}const k=(t,n,r)=>{let a=new e;return(async()=>{let e={role:`assistant`,content:[],api:`openai-codex-responses`,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=r?.apiKey;if(!o)throw Error(`No API key for provider: ${t.provider}`);let s=Ae(o),c=se(t,n,r),l=await r?.onPayload?.(c,t);l!==void 0&&(c=l);let u=r?.sessionId||je(),d=Me(t.headers,r?.headers,s,o,r?.sessionId),f=Ne(t.headers,r?.headers,s,o,u),g=JSON.stringify(c),_=O(r?.timeoutMs),v=O(r?.websocketConnectTimeoutMs),y=r?.transport||`auto`,b=y!==`sse`&&H(r?.sessionId);if(b&&U(r?.sessionId),y!==`sse`&&!b){let n=!1,i=!1;for(;;){n=!1;try{if(await Q(ce(t.baseUrl),c,f,e,a,t,()=>{n=!0},_,v,r),r?.signal?.aborted)throw Error(`Request was aborted`);a.push({type:`done`,reason:e.stopReason,message:e}),a.end();return}catch(t){let a=r?.signal?.aborted,o=!n&&de(t);if(!a&&o&&!i){i=!0;continue}if(a||ue(t)&&!o||(m(e,p(`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})),_e(r?.sessionId,t),n))throw t;U(r?.sessionId);break}}}let x,S,C=r?.maxRetries??0;for(let e=0;e<=C;e++){if(r?.signal?.aborted)throw Error(`Request was aborted`);try{let n=ae(),a=h([r?.signal,n.signal]);try{x=await fetch(N(t.baseUrl),{method:`POST`,headers:d,body:g,signal:a.signal})}catch(e){let t=n.error();throw t&&!r?.signal?.aborted?t:e}finally{a.cleanup(),n.clear()}if(await r?.onResponse?.({status:x.status,headers:i(x.headers)},t),x.ok)break;let o=await x.text();if(e<C&&ne(x.status,o)){let t=re(x.headers);await D(t===void 0?w*2**e:x.status===429?ie(t,r):t,r?.signal);continue}let s=await ke(new Response(o,{status:x.status,statusText:x.statusText}));throw Error(s.friendlyMessage||s.message)}catch(t){if(t instanceof Error&&(t.name===`AbortError`||t.message===`Request was aborted`))throw Error(`Request was aborted`);if(S=t instanceof Error?t:Error(String(t)),e<C&&!S.message.includes(`usage limit`)){await D(w*2**e,r?.signal);continue}throw S}}if(!x?.ok)throw S??Error(`Failed after retries`);if(!x.body)throw Error(`No response body`);if(a.push({type:`start`,partial:e}),await le(x,e,a,t,r),r?.signal?.aborted)throw Error(`Request was aborted`);a.push({type:`done`,reason:e.stopReason,message:e}),a.end()}catch(t){for(let t of e.content)delete t.partialJson;e.stopReason=r?.signal?.aborted?`aborted`:`error`,e.errorMessage=t instanceof Error?t.message:String(t),a.push({type:`error`,reason:e.stopReason,error:e}),a.end()}})(),a},oe=(e,r,i)=>{let a=i?.apiKey;if(!a)throw Error(`No API key for provider: ${e.provider}`);let o=n(e,i,a),s=i?.reasoning?t(e,i.reasoning):void 0,c=s===`off`?void 0:s;return k(e,r,{...o,reasoningEffort:c})};function se(e,t,n){let r=c(e,t,E,{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:a(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=o(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 A(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function j(e,t,n){let r=A(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 M(e,t){return e==="default"&&(t===`flex`||t===`priority`)?t:e??t}function N(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 ce(e){let t=new URL(N(e));return t.protocol===`https:`&&(t.protocol=`wss:`),t.protocol===`http:`&&(t.protocol=`ws:`),t.toString()}async function le(e,t,n,r,i){await s(I(me(e,i?.signal)),t,n,r,{serviceTier:i?.serviceTier,resolveServiceTier:M,applyServiceTierPricing:(e,t)=>j(e,t,r)})}var P=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}},F=class extends Error{payload;constructor(e,t){super(e),this.name=`CodexProtocolError`,this.payload=t?.payload,this.cause=t?.cause}};function ue(e){return e instanceof P||e instanceof F}function de(e){return e instanceof P&&e.code===`websocket_connection_limit_reached`}function fe(e){let t=e.error&&typeof e.error==`object`?e.error:void 0;return{code:typeof e.code==`string`?e.code:typeof t?.code==`string`?t.code:void 0,message:typeof e.message==`string`?e.message:typeof t?.message==`string`?t.message:void 0}}async function*I(e){for await(let t of e){let e=typeof t.type==`string`?t.type:void 0;if(e){if(e===`error`){let{code:e,message:n}=fe(t);throw new P(`Codex error: ${n||e||JSON.stringify(t)}`,{code:e,payload:t})}if(e===`response.failed`){let e=t.response,n=e?.error?.code,r=e?.error?.message;throw new P(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:pe(e.status)};yield{...t,type:`response.completed`,response:n};return}yield t}}}function pe(e){if(typeof e==`string`)return ee.has(e)?e:void 0}async function*me(e,t){if(!e.body)return;let n=e.body.getReader(),r=new TextDecoder,i=``,a=()=>{n.cancel().catch(()=>{})};t?.addEventListener(`abort`,a,{once:!0});try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);let{done:e,value:a}=await n.read();if(t?.aborted)throw Error(`Request was aborted`);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 F(`Invalid Codex SSE JSON: ${d(t)}`,{cause:t,payload:e})}}o=i.indexOf(`
|
|
6
|
-
|
|
7
|
-
`)}}}finally{t?.removeEventListener(`abort`,a);try{await n.cancel()}catch{}try{n.releaseLock()}catch{}}}const L=new Map,R=new Map,z=new Set;function B(e){let t=R.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},R.set(e,t)),t}function he(e){let t=R.get(e);return t?{...t}:void 0}function ge(e){if(e){R.delete(e),z.delete(e);return}R.clear(),z.clear()}function V(e){let t=e=>{e.idleTimer&&clearTimeout(e.idleTimer),K(e.socket,1e3,`debug_close`)};if(e){let n=L.get(e);n&&t(n),L.delete(e);return}for(let e of L.values())t(e);L.clear()}u(V);function H(e){return e?z.has(e):!1}function U(e){if(!e)return;let t=B(e);t.sseFallbacks++,t.websocketFallbackActive=H(e)}function _e(e,t){if(!e)return;z.add(e);let n=B(e);n.websocketFailures++,n.lastWebSocketError=d(t),n.websocketFallbackActive=!0}let W=null;async function ve(e){if(!e&&W)return W;if(typeof process<`u`&&process.versions?.bun){let t=class extends WebSocket{constructor(t,n){let r={};r=Array.isArray(n)||typeof n==`string`?{protocols:n}:{...n};let i=x(t.toString().replace(/^wss:/,`https:`).replace(/^ws:/,`http:`),e);super(t,{...r,...i?{proxy:i.toString()}:{}})}};return e||(W=t),t}let t=globalThis.WebSocket;return typeof t==`function`?t:null}var ye=class extends Error{code;reason;wasClean;constructor(e,t){super(e),this.name=`WebSocketCloseError`,this.code=t?.code,this.reason=t?.reason,this.wasClean=t?.wasClean}};function be(e){let t=e.readyState;return typeof t==`number`?t:void 0}function G(e){let t=be(e);return t===void 0||t===1}function K(e,t=1e3,n=`done`){try{e.close(t,n)}catch{}}function q(e,t){t.idleTimer&&clearTimeout(t.idleTimer),t.idleTimer=setTimeout(()=>{t.busy||(K(t.socket,1e3,`idle_timeout`),L.delete(e))},3e5)}async function J(e,t,n,r=15e3,a){let o=await ve(a);if(!o)throw Error(`WebSocket transport is not available in this runtime`);let s=i(t);return delete s[`OpenAI-Beta`],new Promise((t,i)=>{let a=!1,c,l;try{l=new o(e,{headers:s})}catch(e){i(e instanceof Error?e:Error(String(e)));return}let u=()=>{c&&=(clearTimeout(c),void 0),l.removeEventListener(`open`,f),l.removeEventListener(`error`,p),l.removeEventListener(`close`,m),n?.removeEventListener(`abort`,h)},d=(e,t)=>{a||(a=!0,u(),t&&K(l,1e3,t),i(e))},f=()=>{a||(a=!0,u(),t(l))},p=e=>{d(Y(e))},m=e=>{d(X(e))},h=()=>{d(Error(`Request was aborted`),`aborted`)};l.addEventListener(`open`,f),l.addEventListener(`error`,p),l.addEventListener(`close`,m),n?.addEventListener(`abort`,h),r>0&&(c=setTimeout(()=>{d(Error(`WebSocket connect timeout after ${r}ms`),`connect_timeout`)},r)),n?.aborted&&h()})}async function xe(e,t,n,r,i,a){if(!n){let n=await J(e,t,r,i,a);return{socket:n,reused:!1,release:()=>K(n)}}let o=L.get(n);if(o){if(o.idleTimer&&=(clearTimeout(o.idleTimer),void 0),!o.busy&&G(o.socket))return o.busy=!0,{socket:o.socket,entry:o,reused:!0,release:({keep:e}={})=>{if(!e||!G(o.socket)){K(o.socket),L.delete(n);return}o.busy=!1,q(n,o)}};if(o.busy){let n=await J(e,t,r,i,a);return{socket:n,reused:!1,release:()=>{K(n)}}}G(o.socket)||(K(o.socket),L.delete(n))}let s=await J(e,t,r,i,a),c={socket:s,busy:!0};return L.set(n,c),{socket:s,entry:c,reused:!1,release:({keep:e}={})=>{if(!e||!G(c.socket)){K(c.socket),c.idleTimer&&clearTimeout(c.idleTimer),L.get(n)===c&&L.delete(n);return}c.busy=!1,q(n,c)}}}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 ye(`WebSocket closed${i}${a}`.trim(),{code:typeof t==`number`?t:void 0,reason:typeof n==`string`&&n.length>0?n:void 0,wasClean:typeof r==`boolean`?r:void 0})}return Error(`WebSocket closed`)}async function Se(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*Ce(e,t,n){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 Se(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 F(`Invalid Codex WebSocket JSON: ${d(e)}`,{cause:e,payload:t}),a=!0,c()}})()},u=e=>{o=Y(e),a=!0,c()},f=e=>{if(s){a=!0,c();return}o||=X(e),a=!0,c()},p=()=>{o=Error(`Request was aborted`),a=!0,c()};e.addEventListener(`message`,l),e.addEventListener(`error`,u),e.addEventListener(`close`,f),t?.addEventListener(`abort`,p);try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);if(r.length>0){yield r.shift();continue}if(a)break;let s;await new Promise((t,r)=>{i=t,n!==void 0&&n>0&&(s=setTimeout(()=>{let t=Error(`WebSocket idle timeout after ${n}ms`);o=t,a=!0,i=null,K(e,1e3,`idle_timeout`),r(t)},n))}).finally(()=>{s&&clearTimeout(s)})}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`,f),t?.removeEventListener(`abort`,p)}}function Z(e){let{input:t,previous_response_id:n,...r}=e;return r}function we(e,t){return JSON.stringify(e??[])===JSON.stringify(t??[])}function Te(e,t){return JSON.stringify(Z(e))===JSON.stringify(Z(t))}function Ee(e,t){if(!Te(e,t.lastRequestBody))return;let n=e.input??[],r=[...t.lastRequestBody.input??[],...t.lastResponseItems];if(!(n.length<r.length)&&we(n.slice(0,r.length),r))return n.slice(r.length)}function De(e,t){let n=e.continuation;if(!n)return t;let r=Ee(t,n);return!r||!n.lastResponseId?(e.continuation=void 0,t):{...t,previous_response_id:n.lastResponseId,input:r}}async function*Oe(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 Q(e,t,n,r,i,a,o,l,u,d){let{socket:f,entry:p,reused:m,release:h}=await xe(e,n,d?.sessionId,d?.signal,u,d?.env),g=!0,_=d?.transport===`websocket-cached`||d?.transport===`auto`,v=t,y=_&&p?De(p,v):v,b=d?.sessionId?B(d.sessionId):void 0;b&&(b.requests++,m?b.connectionsReused++:b.connectionsCreated++,_&&b.cachedContextRequests++,y.store===!0&&b.storeTrueRequests++,b.lastInputItems=y.input?.length??0,y.previous_response_id?(b.deltaRequests++,b.lastDeltaInputItems=y.input?.length??0,b.lastPreviousResponseId=y.previous_response_id):(b.fullContextRequests++,b.lastDeltaInputItems=void 0,b.lastPreviousResponseId=void 0));try{if(f.send(JSON.stringify({type:`response.create`,...y})),await s(Oe(I(Ce(f,d?.signal,l)),r,i,o),r,i,a,{serviceTier:d?.serviceTier,resolveServiceTier:M,applyServiceTierPricing:(e,t)=>j(e,t,a)}),d?.signal?.aborted)g=!1;else if(_&&p&&r.responseId){let e=c(a,{messages:[r]},E,{includeSystemPrompt:!1}).filter(e=>e.type!==`function_call_output`);p.continuation={lastRequestBody:v,lastResponseId:r.responseId,lastResponseItems:e}}}catch(e){throw p&&(p.continuation=void 0),g=!1,e}finally{h({keep:g})}}async function ke(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 Ae(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 je(){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||{}))n===null?i.delete(e):i.set(e,n);i.set(`Authorization`,`Bearer ${r}`),i.set(`chatgpt-account-id`,n),i.set(`originator`,`pi`);let a=C?`pi (${C.platform()} ${C.release()}; ${C.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 Ne(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{V as closeOpenAICodexWebSocketSessions,he as getOpenAICodexWebSocketDebugStats,ge as resetOpenAICodexWebSocketDebugStats,k as stream,oe as streamSimple};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t,t as n}from"./models-ByRUWfA-.js";import{t as r}from"./provider-env-D37PhSJu.js";import{n as i}from"./json-parse-C7d6hyOc.js";import{r as a,t as o}from"./transform-messages-D7OsqBmU.js";import{t as s}from"./headers-CbDaTl3c.js";import{t as c}from"./sanitize-unicode-DmIE6hZJ.js";import{n as l,t as u}from"./github-copilot-headers-DRgtIyTm.js";import{n as d}from"./openai-BeH6aC_-.js";import{t as f}from"./openai-prompt-cache-DXo9f3w5.js";function p(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function m(e,t,n){if(t)return t;if(p(n,`authorization`)||p(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function h(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 g(e){return e.type===`text`}function _(e){return e.type===`thinking`}function v(e){return e.type===`toolCall`}function y(e){return e.type===`image`}function b(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.type===`reasoning.encrypted`&&typeof t.id==`string`&&t.id.length>0&&typeof t.data==`string`&&t.data.length>0}function x(e,t){return e||(r(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}var S=(e,n,r)=>{let a=new t;return(async()=>{let t={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 o=m(e.provider,r?.apiKey,r?.headers),c=V(e),l=x(r?.cacheRetention,r?.env),u=l===`none`?void 0:r?.sessionId,d=w(e,n,o,r?.headers,u,c),f=T(e,n,r,c,l),p=await r?.onPayload?.(f,e);p!==void 0&&(f=p);let h={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:r?.maxRetries??0},{data:g,response:_}=await d.chat.completions.create(f,h).withResponse();await r?.onResponse?.({status:_.status,headers:s(_.headers)},e),a.push({type:`start`,partial:t});let v=null,y=null,S=!1,C=new Map,E=new Map,D=new Map,O=t.content,k=e=>O.indexOf(e),A=e=>{let n=k(e);n!==-1&&(e.type===`text`?a.push({type:`text_end`,contentIndex:n,content:e.text,partial:t}):e.type===`thinking`?a.push({type:`thinking_end`,contentIndex:n,content:e.thinking,partial:t}):e.type===`toolCall`&&(e.arguments=i(e.partialArgs),delete e.partialArgs,delete e.streamIndex,a.push({type:`toolcall_end`,contentIndex:n,toolCall:e,partial:t})))},j=()=>(v||(v={type:`text`,text:``},O.push(v),a.push({type:`text_start`,contentIndex:k(v),partial:t})),v),M=e=>(y||(y={type:`thinking`,thinking:``,thinkingSignature:e},O.push(y),a.push({type:`thinking_start`,contentIndex:k(y),partial:t})),y),N=e=>{if(!e.id)return;let t=D.get(e.id);t&&(e.thoughtSignature=t,D.delete(e.id))},P=e=>{let n=typeof e.index==`number`?e.index:void 0,r=n===void 0?void 0:C.get(n);return!r&&e.id&&(r=E.get(e.id)),r||(r={type:`toolCall`,id:e.id||``,name:e.function?.name||``,arguments:{},partialArgs:``,streamIndex:n},n!==void 0&&C.set(n,r),e.id&&E.set(e.id,r),O.push(r),a.push({type:`toolcall_start`,contentIndex:k(r),partial:t})),n!==void 0&&r.streamIndex===void 0&&(r.streamIndex=n,C.set(n,r)),e.id&&E.set(e.id,r),N(r),r};for await(let n of g){if(!n||typeof n!=`object`)continue;t.responseId||=n.id,typeof n.model==`string`&&n.model.length>0&&n.model!==e.id&&(t.responseModel||=n.model),n.usage&&(t.usage=R(n.usage,e));let r=Array.isArray(n.choices)?n.choices[0]:void 0;if(r){if(!n.usage&&r.usage&&(t.usage=R(r.usage,e)),r.finish_reason){let e=z(r.finish_reason);t.stopReason=e.stopReason,e.errorMessage&&(t.errorMessage=e.errorMessage),S=!0}if(r.delta){if(r.delta.content!==null&&r.delta.content!==void 0&&r.delta.content.length>0){let e=j();e.text+=r.delta.content,a.push({type:`text_delta`,contentIndex:k(e),delta:r.delta.content,partial:t})}let n=[`reasoning_content`,`reasoning`,`reasoning_text`],o=r.delta,s=null;for(let e of n){let t=o[e];if(typeof t==`string`&&t.length>0){s=e;break}}if(s){let n=o[s];if(typeof n==`string`&&n.length>0){let r=M(e.provider===`opencode-go`&&s===`reasoning`?`reasoning_content`:s);r.thinking+=n,a.push({type:`thinking_delta`,contentIndex:k(r),delta:n,partial:t})}}if(r?.delta?.tool_calls)for(let e of r.delta.tool_calls){let n=P(e);!n.id&&e.id&&(n.id=e.id,E.set(e.id,n)),!n.name&&e.function?.name&&(n.name=e.function.name);let r=``;e.function?.arguments&&(r=e.function.arguments,n.partialArgs=(n.partialArgs??``)+e.function.arguments,n.arguments=i(n.partialArgs)),a.push({type:`toolcall_delta`,contentIndex:k(n),delta:r,partial:t})}let c=r.delta.reasoning_details;if(Array.isArray(c)){for(let e of c)if(b(e)){let t=JSON.stringify(e),n=E.get(e.id);n?n.thoughtSignature=t:D.set(e.id,t)}}}}}for(let e of O)A(e);if(r?.signal?.aborted||t.stopReason===`aborted`)throw Error(`Request was aborted`);if(t.stopReason===`error`)throw Error(t.errorMessage||`Provider returned an error stop reason`);if(!S)throw Error(`Stream ended without finish_reason`);a.push({type:`done`,reason:t.stopReason,message:t}),a.end()}catch(e){for(let e of t.content)delete e.index,delete e.partialArgs,delete e.streamIndex;t.stopReason=r?.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},C=(t,n,r)=>{m(t.provider,r?.apiKey,r?.headers);let i=a(t,r,r?.apiKey),o=r?.reasoning?e(t,r.reasoning):void 0,s=o===`off`?void 0:o,c=r?.toolChoice;return S(t,n,{...i,reasoningEffort:s,toolChoice:c})};function w(e,t,n,r,i,a=V(e)){let o={...e.headers};if(e.provider===`github-copilot`){let e=l(t.messages),n=u({messages:t.messages,hasImages:e});Object.assign(o,n)}return i&&a.sendSessionAffinityHeaders&&(o.session_id=i,o[`x-client-request-id`]=i,o[`x-session-affinity`]=i),r&&Object.assign(o,r),new d({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:o})}function T(e,t,n,r=V(e),i=x(n?.cacheRetention,n?.env)){let a=I(e,t,r),o=O(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?f(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=L(t.tools,r),r.zaiToolStream&&(s.tool_stream=!0)):h(t.messages)&&(s.tools=[]),o&&k(a,s.tools,o),n?.toolChoice&&(s.tool_choice=n.toolChoice),r.thinkingFormat===`zai`&&e.reasoning){let t=s;if(t.thinking={type:n?.reasoningEffort?`enabled`:`disabled`},n?.reasoningEffort&&r.supportsReasoningEffort){let r=e.thinkingLevelMap?.[n.reasoningEffort],i=r===void 0?n.reasoningEffort:r;typeof i==`string`&&(t.reasoning_effort=i)}}else if(r.thinkingFormat===`qwen`&&e.reasoning)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===`chat-template`&&e.reasoning){let t=E(e,n,r);t&&(s.chat_template_kwargs=t)}else if(r.thinkingFormat===`deepseek`&&e.reasoning)n?.reasoningEffort?s.thinking={type:`enabled`}:e.thinkingLevelMap?.off!==null&&(s.thinking={type:`disabled`}),n?.reasoningEffort&&r.supportsReasoningEffort&&(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===`ant-ling`&&e.reasoning&&n?.reasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort];typeof t==`string`&&(s.reasoning={effort:t})}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(r.thinkingFormat===`string-thinking`&&e.reasoning){let t=s;n?.reasoningEffort?t.thinking=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:e.thinkingLevelMap?.off!==null&&(t.thinking=e.thinkingLevelMap?.off??`none`)}else if(n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort)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.compat?.openRouterRouting&&(s.provider=e.compat.openRouterRouting),e.compat?.vercelGatewayRouting){let t=e.compat.vercelGatewayRouting;if(t.only||t.order){let e={};t.only&&(e.only=t.only),t.order&&(e.order=t.order),s.providerOptions={gateway:e}}}return s}function E(e,t,n){let r={};for(let[i,a]of Object.entries(n.chatTemplateKwargs)){let n=D(e,t,a);n!==void 0&&(r[i]=n)}return Object.keys(r).length>0?r:void 0}function D(e,t,n){if(typeof n!=`object`||!n)return n;let r=t?.reasoningEffort;if(!r&&n.omitWhenOff)return;if(n.$var===`thinking.enabled`)return!!r;let i=r?e.thinkingLevelMap?.[r]:e.thinkingLevelMap?.off;return i===void 0?r:typeof i==`string`?i:void 0}function O(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 k(e,t,n){A(e,n),M(t,n),j(e,n)}function A(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){N(n,t);return}}function j(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`)&&P(r,t))return}}function M(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function N(e,t){return F(e,t)}function P(e,t){return e.role===`user`||e.role===`assistant`?F(e,t):!1}function F(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 I(e,t,n){let r=[],i=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},a=o(t.messages,e,e=>i(e));if(t.systemPrompt){let i=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;r.push({role:i,content:c(t.systemPrompt)})}let s=null;for(let t=0;t<a.length;t++){let i=a[t];if(n.requiresAssistantAfterToolResult&&s===`toolResult`&&i.role===`user`&&r.push({role:`assistant`,content:`I have processed the tool results.`}),i.role===`user`)if(typeof i.content==`string`)r.push({role:`user`,content:c(i.content)});else{let e=i.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;r.push({role:`user`,content:e})}else if(i.role===`assistant`){let t={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},a=i.content.filter(g).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:c(e.text)})),o=a.map(e=>e.text).join(``),s=i.content.filter(_).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=i.content.filter(v);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;r.push(t)}else if(i.role===`toolResult`){let i=[],o=t;for(;o<a.length&&a[o].role===`toolResult`;o++){let t=a[o],s=t.content.filter(g).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),r.push(u),l&&e.input.includes(`image`))for(let e of t.content)y(e)&&i.push({type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}})}t=o-1,i.length>0?(n.requiresAssistantAfterToolResult&&r.push({role:`assistant`,content:`I have processed the tool results.`}),r.push({role:`user`,content:[{type:`text`,text:`Attached image(s) from tool result:`},...i]}),s=`user`):s=`toolResult`;continue}s=i.role}return r}function L(e,t){return e.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.parameters,...t.supportsStrictMode!==!1&&{strict:!1}}}))}function R(e,t){let r=e.prompt_tokens||0,i=e.prompt_tokens_details?.cached_tokens??e.prompt_cache_hit_tokens??0,a=e.prompt_tokens_details?.cache_write_tokens||0,o=Math.max(0,r-i-a),s=e.completion_tokens||0,c={input:o,output:s,cacheRead:i,cacheWrite:a,totalTokens:o+s+i+a,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};return n(t,c),c}function z(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 B(e){let t=e.provider,n=e.baseUrl,r=t===`zai`||t===`zai-coding-cn`||n.includes(`api.z.ai`)||n.includes(`open.bigmodel.cn`),i=t===`together`||n.includes(`api.together.ai`)||n.includes(`api.together.xyz`),a=t===`moonshotai`||t===`moonshotai-cn`||n.includes(`api.moonshot.`),o=t===`openrouter`||n.includes(`openrouter.ai`),s=t===`cloudflare-workers-ai`||n.includes(`api.cloudflare.com`),c=t===`cloudflare-ai-gateway`||n.includes(`gateway.ai.cloudflare.com`),l=t===`nvidia`||n.includes(`integrate.api.nvidia.com`),u=t===`ant-ling`||n.includes(`api.ant-ling.com`),d=l||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`)||s||c||u,f=n.includes(`chutes.ai`)||a||c||i||l||u,p=t===`xai`||n.includes(`api.x.ai`),m=t===`deepseek`||n.includes(`deepseek.com`),h=o&&(e.id.startsWith(`anthropic/`)||e.id.startsWith(`openai/`)),g=t===`openrouter`&&e.id.startsWith(`anthropic/`)?`anthropic`:void 0;return{supportsStore:!d,supportsDeveloperRole:h||!d&&!o,supportsReasoningEffort:!p&&!r&&!a&&!i&&!c&&!l&&!u,supportsUsageInStreaming:!0,maxTokensField:f?`max_tokens`:`max_completion_tokens`,requiresToolResultName:!1,requiresAssistantAfterToolResult:!1,requiresThinkingAsText:!1,requiresReasoningContentOnAssistantMessages:m,thinkingFormat:m?`deepseek`:r?`zai`:i?`together`:u?`ant-ling`:o?`openrouter`:`openai`,openRouterRouting:{},vercelGatewayRouting:{},chatTemplateKwargs:{},zaiToolStream:!1,supportsStrictMode:!a&&!i&&!c&&!l,cacheControlFormat:g,sendSessionAffinityHeaders:!1,supportsLongCacheRetention:!(i||s||c||l||u)}}function V(e){let t=B(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,chatTemplateKwargs:e.compat.chatTemplateKwargs??t.chatTemplateKwargs,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{I as convertMessages,S as stream,C as streamSimple};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{a as e,d as t,o as n,r,t as i}from"./transform-messages-CQuDksPz.js";import{t as a}from"./provider-env-DwY8YuMk.js";import{n as o}from"./json-parse-B51EftGA.js";import{t as s}from"./headers-CbDaTl3c.js";import{t as c}from"./sanitize-unicode-DmIE6hZJ.js";import{n as l,t as u}from"./github-copilot-headers-DRgtIyTm.js";import{n as d}from"./openai-BvKpRLAG.js";import{t as f}from"./openai-prompt-cache-DXo9f3w5.js";function p(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function m(e,t,n){if(t)return t;if(p(n,`authorization`)||p(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function h(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 g(e){return e.type===`text`}function _(e){return e.type===`thinking`}function v(e){return e.type===`toolCall`}function y(e){return e.type===`image`}function b(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.type===`reasoning.encrypted`&&typeof t.id==`string`&&t.id.length>0&&typeof t.data==`string`&&t.data.length>0}function x(e,t){return e||(a(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}const S=(e,n,r)=>{let i=new t;return(async()=>{let t={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 a=m(e.provider,r?.apiKey,r?.headers),c=V(e),l=x(r?.cacheRetention,r?.env),u=l===`none`?void 0:r?.sessionId,d=w(e,n,a,r?.headers,u,c),f=T(e,n,r,c,l),p=await r?.onPayload?.(f,e);p!==void 0&&(f=p);let h={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:r?.maxRetries??0},{data:g,response:_}=await d.chat.completions.create(f,h).withResponse();await r?.onResponse?.({status:_.status,headers:s(_.headers)},e),i.push({type:`start`,partial:t});let v=null,y=null,S=!1,C=new Map,E=new Map,D=new Map,O=t.content,k=e=>O.indexOf(e),A=e=>{let n=k(e);n!==-1&&(e.type===`text`?i.push({type:`text_end`,contentIndex:n,content:e.text,partial:t}):e.type===`thinking`?i.push({type:`thinking_end`,contentIndex:n,content:e.thinking,partial:t}):e.type===`toolCall`&&(e.arguments=o(e.partialArgs),delete e.partialArgs,delete e.streamIndex,i.push({type:`toolcall_end`,contentIndex:n,toolCall:e,partial:t})))},j=()=>(v||(v={type:`text`,text:``},O.push(v),i.push({type:`text_start`,contentIndex:k(v),partial:t})),v),M=e=>(y||(y={type:`thinking`,thinking:``,thinkingSignature:e},O.push(y),i.push({type:`thinking_start`,contentIndex:k(y),partial:t})),y),N=e=>{if(!e.id)return;let t=D.get(e.id);t&&(e.thoughtSignature=t,D.delete(e.id))},P=e=>{let n=typeof e.index==`number`?e.index:void 0,r=n===void 0?void 0:C.get(n);return!r&&e.id&&(r=E.get(e.id)),r||(r={type:`toolCall`,id:e.id||``,name:e.function?.name||``,arguments:{},partialArgs:``,streamIndex:n},n!==void 0&&C.set(n,r),e.id&&E.set(e.id,r),O.push(r),i.push({type:`toolcall_start`,contentIndex:k(r),partial:t})),n!==void 0&&r.streamIndex===void 0&&(r.streamIndex=n,C.set(n,r)),e.id&&E.set(e.id,r),N(r),r};for await(let n of g){if(!n||typeof n!=`object`)continue;t.responseId||=n.id,typeof n.model==`string`&&n.model.length>0&&n.model!==e.id&&(t.responseModel||=n.model),n.usage&&(t.usage=R(n.usage,e));let r=Array.isArray(n.choices)?n.choices[0]:void 0;if(r){if(!n.usage&&r.usage&&(t.usage=R(r.usage,e)),r.finish_reason){let e=z(r.finish_reason);t.stopReason=e.stopReason,e.errorMessage&&(t.errorMessage=e.errorMessage),S=!0}if(r.delta){if(r.delta.content!==null&&r.delta.content!==void 0&&r.delta.content.length>0){let e=j();e.text+=r.delta.content,i.push({type:`text_delta`,contentIndex:k(e),delta:r.delta.content,partial:t})}let n=[`reasoning_content`,`reasoning`,`reasoning_text`],a=r.delta,s=null;for(let e of n){let t=a[e];if(typeof t==`string`&&t.length>0){s=e;break}}if(s){let n=a[s];if(typeof n==`string`&&n.length>0){let r=M(e.provider===`opencode-go`&&s===`reasoning`?`reasoning_content`:s);r.thinking+=n,i.push({type:`thinking_delta`,contentIndex:k(r),delta:n,partial:t})}}if(r?.delta?.tool_calls)for(let e of r.delta.tool_calls){let n=P(e);!n.id&&e.id&&(n.id=e.id,E.set(e.id,n)),!n.name&&e.function?.name&&(n.name=e.function.name);let r=``;e.function?.arguments&&(r=e.function.arguments,n.partialArgs=(n.partialArgs??``)+e.function.arguments,n.arguments=o(n.partialArgs)),i.push({type:`toolcall_delta`,contentIndex:k(n),delta:r,partial:t})}let c=r.delta.reasoning_details;if(Array.isArray(c)){for(let e of c)if(b(e)){let t=JSON.stringify(e),n=E.get(e.id);n?n.thoughtSignature=t:D.set(e.id,t)}}}}}for(let e of O)A(e);if(r?.signal?.aborted||t.stopReason===`aborted`)throw Error(`Request was aborted`);if(t.stopReason===`error`)throw Error(t.errorMessage||`Provider returned an error stop reason`);if(!S)throw Error(`Stream ended without finish_reason`);i.push({type:`done`,reason:t.stopReason,message:t}),i.end()}catch(e){for(let e of t.content)delete e.index,delete e.partialArgs,delete e.streamIndex;t.stopReason=r?.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}`),i.push({type:`error`,reason:t.stopReason,error:t}),i.end()}})(),i},C=(e,t,i)=>{m(e.provider,i?.apiKey,i?.headers);let a=r(e,i,i?.apiKey),o=i?.reasoning?n(e,i.reasoning):void 0,s=o===`off`?void 0:o,c=i?.toolChoice;return S(e,t,{...a,reasoningEffort:s,toolChoice:c})};function w(e,t,n,r,i,a=V(e)){let o={...e.headers};if(e.provider===`github-copilot`){let e=l(t.messages),n=u({messages:t.messages,hasImages:e});Object.assign(o,n)}return i&&a.sendSessionAffinityHeaders&&(o.session_id=i,o[`x-client-request-id`]=i,o[`x-session-affinity`]=i),r&&Object.assign(o,r),new d({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:o})}function T(e,t,n,r=V(e),i=x(n?.cacheRetention,n?.env)){let a=I(e,t,r),o=O(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?f(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=L(t.tools,r),r.zaiToolStream&&(s.tool_stream=!0)):h(t.messages)&&(s.tools=[]),o&&k(a,s.tools,o),n?.toolChoice&&(s.tool_choice=n.toolChoice),r.thinkingFormat===`zai`&&e.reasoning){let t=s;if(t.thinking={type:n?.reasoningEffort?`enabled`:`disabled`},n?.reasoningEffort&&r.supportsReasoningEffort){let r=e.thinkingLevelMap?.[n.reasoningEffort],i=r===void 0?n.reasoningEffort:r;typeof i==`string`&&(t.reasoning_effort=i)}}else if(r.thinkingFormat===`qwen`&&e.reasoning)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===`chat-template`&&e.reasoning){let t=E(e,n,r);t&&(s.chat_template_kwargs=t)}else if(r.thinkingFormat===`deepseek`&&e.reasoning)n?.reasoningEffort?s.thinking={type:`enabled`}:e.thinkingLevelMap?.off!==null&&(s.thinking={type:`disabled`}),n?.reasoningEffort&&r.supportsReasoningEffort&&(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===`ant-ling`&&e.reasoning&&n?.reasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort];typeof t==`string`&&(s.reasoning={effort:t})}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(r.thinkingFormat===`string-thinking`&&e.reasoning){let t=s;n?.reasoningEffort?t.thinking=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:e.thinkingLevelMap?.off!==null&&(t.thinking=e.thinkingLevelMap?.off??`none`)}else if(n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort)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.compat?.openRouterRouting&&(s.provider=e.compat.openRouterRouting),e.compat?.vercelGatewayRouting){let t=e.compat.vercelGatewayRouting;if(t.only||t.order){let e={};t.only&&(e.only=t.only),t.order&&(e.order=t.order),s.providerOptions={gateway:e}}}return s}function E(e,t,n){let r={};for(let[i,a]of Object.entries(n.chatTemplateKwargs)){let n=D(e,t,a);n!==void 0&&(r[i]=n)}return Object.keys(r).length>0?r:void 0}function D(e,t,n){if(typeof n!=`object`||!n)return n;let r=t?.reasoningEffort;if(!r&&n.omitWhenOff)return;if(n.$var===`thinking.enabled`)return!!r;let i=r?e.thinkingLevelMap?.[r]:e.thinkingLevelMap?.off;return i===void 0?r:typeof i==`string`?i:void 0}function O(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 k(e,t,n){A(e,n),M(t,n),j(e,n)}function A(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){N(n,t);return}}function j(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`)&&P(r,t))return}}function M(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function N(e,t){return F(e,t)}function P(e,t){return e.role===`user`||e.role===`assistant`?F(e,t):!1}function F(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 I(e,t,n){let r=[],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=i(t.messages,e,e=>a(e));if(t.systemPrompt){let i=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;r.push({role:i,content:c(t.systemPrompt)})}let s=null;for(let t=0;t<o.length;t++){let i=o[t];if(n.requiresAssistantAfterToolResult&&s===`toolResult`&&i.role===`user`&&r.push({role:`assistant`,content:`I have processed the tool results.`}),i.role===`user`)if(typeof i.content==`string`)r.push({role:`user`,content:c(i.content)});else{let e=i.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;r.push({role:`user`,content:e})}else if(i.role===`assistant`){let t={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},a=i.content.filter(g).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:c(e.text)})),o=a.map(e=>e.text).join(``),s=i.content.filter(_).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=i.content.filter(v);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;r.push(t)}else if(i.role===`toolResult`){let i=[],a=t;for(;a<o.length&&o[a].role===`toolResult`;a++){let t=o[a],s=t.content.filter(g).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),r.push(u),l&&e.input.includes(`image`))for(let e of t.content)y(e)&&i.push({type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}})}t=a-1,i.length>0?(n.requiresAssistantAfterToolResult&&r.push({role:`assistant`,content:`I have processed the tool results.`}),r.push({role:`user`,content:[{type:`text`,text:`Attached image(s) from tool result:`},...i]}),s=`user`):s=`toolResult`;continue}s=i.role}return r}function L(e,t){return e.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.parameters,...t.supportsStrictMode!==!1&&{strict:!1}}}))}function R(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 z(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 B(e){let t=e.provider,n=e.baseUrl,r=t===`zai`||t===`zai-coding-cn`||n.includes(`api.z.ai`)||n.includes(`open.bigmodel.cn`),i=t===`together`||n.includes(`api.together.ai`)||n.includes(`api.together.xyz`),a=t===`moonshotai`||t===`moonshotai-cn`||n.includes(`api.moonshot.`),o=t===`openrouter`||n.includes(`openrouter.ai`),s=t===`cloudflare-workers-ai`||n.includes(`api.cloudflare.com`),c=t===`cloudflare-ai-gateway`||n.includes(`gateway.ai.cloudflare.com`),l=t===`nvidia`||n.includes(`integrate.api.nvidia.com`),u=t===`ant-ling`||n.includes(`api.ant-ling.com`),d=l||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`)||s||c||u,f=n.includes(`chutes.ai`)||a||c||i||l||u,p=t===`xai`||n.includes(`api.x.ai`),m=t===`deepseek`||n.includes(`deepseek.com`),h=o&&(e.id.startsWith(`anthropic/`)||e.id.startsWith(`openai/`)),g=t===`openrouter`&&e.id.startsWith(`anthropic/`)?`anthropic`:void 0;return{supportsStore:!d,supportsDeveloperRole:h||!d&&!o,supportsReasoningEffort:!p&&!r&&!a&&!i&&!c&&!l&&!u,supportsUsageInStreaming:!0,maxTokensField:f?`max_tokens`:`max_completion_tokens`,requiresToolResultName:!1,requiresAssistantAfterToolResult:!1,requiresThinkingAsText:!1,requiresReasoningContentOnAssistantMessages:m,thinkingFormat:m?`deepseek`:r?`zai`:i?`together`:u?`ant-ling`:o?`openrouter`:`openai`,openRouterRouting:{},vercelGatewayRouting:{},chatTemplateKwargs:{},zaiToolStream:!1,supportsStrictMode:!a&&!i&&!c&&!l,cacheControlFormat:g,sendSessionAffinityHeaders:!1,supportsLongCacheRetention:!(i||s||c||l||u)}}function V(e){let t=B(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,chatTemplateKwargs:e.compat.chatTemplateKwargs??t.chatTemplateKwargs,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{I as convertMessages,S as stream,C as streamSimple};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t}from"./models-ByRUWfA-.js";import{t as n}from"./provider-env-D37PhSJu.js";import{r}from"./transform-messages-D7OsqBmU.js";import{t as i}from"./headers-CbDaTl3c.js";import{n as a,t as o}from"./github-copilot-headers-DRgtIyTm.js";import{n as s}from"./openai-BeH6aC_-.js";import{t as c}from"./openai-prompt-cache-DXo9f3w5.js";import{n as l,r as u,t as d}from"./openai-responses-shared-1KvKQf-4.js";var f=new Set([`openai`,`openai-codex`,`opencode`]);function p(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function m(e,t,n){if(t)return t;if(p(n,`authorization`)||p(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function h(e,t){return e||(n(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}function g(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,sendSessionIdHeader:e.compat?.sendSessionIdHeader??!0,supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0}}function _(e,t){return t===`long`&&e.supportsLongCacheRetention?`24h`:void 0}function v(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 y=(e,n,r)=>{let a=new t;return(async()=>{let t={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 o=m(e.provider,r?.apiKey,r?.headers),s=h(r?.cacheRetention,r?.env)===`none`?void 0:r?.sessionId,c=x(e,n,o,r?.headers,s),l=S(e,n,r),d=await r?.onPayload?.(l,e);d!==void 0&&(l=d);let f={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:r?.maxRetries??0},{data:p,response:g}=await c.responses.create(l,f).withResponse();if(await r?.onResponse?.({status:g.status,headers:i(g.headers)},e),a.push({type:`start`,partial:t}),await u(p,t,a,e,{serviceTier:r?.serviceTier,applyServiceTierPricing:(t,n)=>w(t,n,e)}),r?.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,delete e.partialJson;t.stopReason=r?.signal?.aborted?`aborted`:`error`,t.errorMessage=v(e),a.push({type:`error`,reason:t.stopReason,error:t}),a.end()}})(),a},b=(t,n,i)=>{m(t.provider,i?.apiKey,i?.headers);let a=r(t,i,i?.apiKey),o=i?.reasoning?e(t,i.reasoning):void 0,s=o===`off`?void 0:o;return y(t,n,{...a,reasoningEffort:s})};function x(e,t,n,r,i){let c=g(e),l={...e.headers};if(e.provider===`github-copilot`){let e=a(t.messages),n=o({messages:t.messages,hasImages:e});Object.assign(l,n)}return i&&(c.sendSessionIdHeader&&(l.session_id=i),l[`x-client-request-id`]=i),r&&Object.assign(l,r),new s({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:l})}function S(e,t,n){let r=d(e,t,f),i=h(n?.cacheRetention,n?.env),a=g(e),o={model:e.id,input:r,stream:!0,prompt_cache_key:i===`none`?void 0:c(n?.sessionId),prompt_cache_retention:_(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=l(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 C(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function w(e,t,n){let r=C(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{y as stream,b as streamSimple};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as e,o as t,r as n}from"./transform-messages-CQuDksPz.js";import{t as r}from"./provider-env-DwY8YuMk.js";import{t as i}from"./headers-CbDaTl3c.js";import{n as a,t as o}from"./github-copilot-headers-DRgtIyTm.js";import{n as s}from"./openai-BvKpRLAG.js";import{t as c}from"./openai-prompt-cache-DXo9f3w5.js";import{n as l,r as u,t as d}from"./openai-responses-shared-CEQMR7Nx.js";const f=new Set([`openai`,`openai-codex`,`opencode`]);function p(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function m(e,t,n){if(t)return t;if(p(n,`authorization`)||p(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function h(e,t){return e||(r(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}function g(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,sendSessionIdHeader:e.compat?.sendSessionIdHeader??!0,supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0}}function _(e,t){return t===`long`&&e.supportsLongCacheRetention?`24h`:void 0}function v(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 y=(t,n,r)=>{let a=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 o=m(t.provider,r?.apiKey,r?.headers),s=h(r?.cacheRetention,r?.env)===`none`?void 0:r?.sessionId,c=x(t,n,o,r?.headers,s),l=S(t,n,r),d=await r?.onPayload?.(l,t);d!==void 0&&(l=d);let f={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:r?.maxRetries??0},{data:p,response:g}=await c.responses.create(l,f).withResponse();if(await r?.onResponse?.({status:g.status,headers:i(g.headers)},t),a.push({type:`start`,partial:e}),await u(p,e,a,t,{serviceTier:r?.serviceTier,applyServiceTierPricing:(e,n)=>w(e,n,t)}),r?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(`An unknown error occurred`);a.push({type:`done`,reason:e.stopReason,message:e}),a.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialJson;e.stopReason=r?.signal?.aborted?`aborted`:`error`,e.errorMessage=v(t),a.push({type:`error`,reason:e.stopReason,error:e}),a.end()}})(),a},b=(e,r,i)=>{m(e.provider,i?.apiKey,i?.headers);let a=n(e,i,i?.apiKey),o=i?.reasoning?t(e,i.reasoning):void 0,s=o===`off`?void 0:o;return y(e,r,{...a,reasoningEffort:s})};function x(e,t,n,r,i){let c=g(e),l={...e.headers};if(e.provider===`github-copilot`){let e=a(t.messages),n=o({messages:t.messages,hasImages:e});Object.assign(l,n)}return i&&(c.sendSessionIdHeader&&(l.session_id=i),l[`x-client-request-id`]=i),r&&Object.assign(l,r),new s({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:l})}function S(e,t,n){let r=d(e,t,f),i=h(n?.cacheRetention,n?.env),a=g(e),o={model:e.id,input:r,stream:!0,prompt_cache_key:i===`none`?void 0:c(n?.sessionId),prompt_cache_retention:_(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=l(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 C(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function w(e,t,n){let r=C(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{y as stream,b as streamSimple};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./models-ByRUWfA-.js";import{n as t}from"./json-parse-C7d6hyOc.js";import{t as n}from"./transform-messages-D7OsqBmU.js";import{t as r}from"./sanitize-unicode-DmIE6hZJ.js";import{t as i}from"./hash-yQufAZII.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(e,t,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=n(t.messages,e,(t,n,r)=>{if(!a.has(e.provider)||!t.includes(`|`))return l(t);let[i,o]=t.split(`|`),s=l(i),c=r.provider!==e.provider||r.api!==e.api?u(o):l(o);return c.startsWith(`fc_`)||(c=l(`fc_${c}`)),`${s}|${c}`});if((s?.includeSystemPrompt??!0)&&t.systemPrompt){let n=e.compat,i=e.reasoning&&n?.supportsDeveloperRole!==!1?`developer`:`system`;c.push({role:i,content:r(t.systemPrompt)})}let f=0;for(let t of d){if(t.role===`user`)if(typeof t.content==`string`)c.push({role:`user`,content:[{type:`input_text`,text:r(t.content)}]});else{let e=t.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}`});if(e.length===0)continue;c.push({role:`user`,content:e})}else if(t.role===`assistant`){let n=[],a=t,s=a.model!==e.id&&a.provider===e.provider&&a.api===e.api,l=0;for(let e of t.content)if(e.type===`thinking`){if(e.thinkingSignature){let t=JSON.parse(e.thinkingSignature);n.push(t)}}else if(e.type===`text`){let t=e,a=o(t.textSignature),s=l===0?`msg_pi_${f}`:`msg_pi_${f}_${l}`;l++;let c=a?.id;c?c.length>64&&(c=`msg_${i(c)}`):c=s,n.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:r(t.text),annotations:[]}],status:`completed`,id:c,phase:a?.phase})}else if(e.type===`toolCall`){let t=e,[r,i]=t.id.split(`|`),a=i;s&&a?.startsWith(`fc_`)&&(a=void 0),n.push({type:`function_call`,id:a,call_id:r,name:t.name,arguments:JSON.stringify(t.arguments)})}if(n.length===0)continue;c.push(...n)}else if(t.role===`toolResult`){let n=t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
2
|
-
`),i=t.content.some(e=>e.type===`image`),a=n.length>0,[o]=t.toolCallId.split(`|`),s;if(i&&e.input.includes(`image`)){let e=[];a&&e.push({type:`input_text`,text:r(n)});for(let n of t.content)n.type===`image`&&e.push({type:`input_image`,detail:`auto`,image_url:`data:${n.mimeType};base64,${n.data}`});s=e}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(n,r,i,o,s){let c=null,l=null,d=!1,f=r.content,p=()=>f.length-1,m=t=>{if(d=!0,t?.id&&(r.responseId=t.id),t?.usage){let e=t.usage.input_tokens_details?.cached_tokens||0;r.usage={input:(t.usage.input_tokens||0)-e,output:t.usage.output_tokens||0,cacheRead:e,cacheWrite:0,totalTokens:t.usage.total_tokens||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}}}if(e(o,r.usage),s?.applyServiceTierPricing){let e=s.resolveServiceTier?s.resolveServiceTier(t?.service_tier,s.serviceTier):t?.service_tier??s.serviceTier;s.applyServiceTierPricing(r.usage,e)}r.stopReason=u(t?.status),r.content.some(e=>e.type===`toolCall`)&&r.stopReason===`stop`&&(r.stopReason=`toolUse`)};for await(let e of n)if(e.type===`response.created`)r.responseId=e.response.id;else if(e.type===`response.output_item.added`){let t=e.item;t.type===`reasoning`?(c=t,l={type:`thinking`,thinking:``},r.content.push(l),i.push({type:`thinking_start`,contentIndex:p(),partial:r})):t.type===`message`?(c=t,l={type:`text`,text:``},r.content.push(l),i.push({type:`text_start`,contentIndex:p(),partial:r})):t.type===`function_call`&&(c=t,l={type:`toolCall`,id:`${t.call_id}|${t.id}`,name:t.name,arguments:{},partialJson:t.arguments||``},r.content.push(l),i.push({type:`toolcall_start`,contentIndex:p(),partial:r}))}else if(e.type===`response.reasoning_summary_part.added`)c&&c.type===`reasoning`&&(c.summary=c.summary||[],c.summary.push(e.part));else if(e.type===`response.reasoning_summary_text.delta`){if(c?.type===`reasoning`&&l?.type===`thinking`){c.summary=c.summary||[];let t=c.summary[c.summary.length-1];t&&(l.thinking+=e.delta,t.text+=e.delta,i.push({type:`thinking_delta`,contentIndex:p(),delta:e.delta,partial:r}))}}else if(e.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
|
-
|
|
4
|
-
`,e.text+=`
|
|
5
|
-
|
|
6
|
-
`,i.push({type:`thinking_delta`,contentIndex:p(),delta:`
|
|
7
|
-
|
|
8
|
-
`,partial:r}))}}else if(e.type===`response.reasoning_text.delta`)c?.type===`reasoning`&&l?.type===`thinking`&&(l.thinking+=e.delta,i.push({type:`thinking_delta`,contentIndex:p(),delta:e.delta,partial:r}));else if(e.type===`response.content_part.added`)c?.type===`message`&&(c.content=c.content||[],(e.part.type===`output_text`||e.part.type===`refusal`)&&c.content.push(e.part));else if(e.type===`response.output_text.delta`){if(c?.type===`message`&&l?.type===`text`){if(!c.content||c.content.length===0)continue;let t=c.content[c.content.length-1];t?.type===`output_text`&&(l.text+=e.delta,t.text+=e.delta,i.push({type:`text_delta`,contentIndex:p(),delta:e.delta,partial:r}))}}else if(e.type===`response.refusal.delta`){if(c?.type===`message`&&l?.type===`text`){if(!c.content||c.content.length===0)continue;let t=c.content[c.content.length-1];t?.type===`refusal`&&(l.text+=e.delta,t.refusal+=e.delta,i.push({type:`text_delta`,contentIndex:p(),delta:e.delta,partial:r}))}}else if(e.type===`response.function_call_arguments.delta`)c?.type===`function_call`&&l?.type===`toolCall`&&(l.partialJson+=e.delta,l.arguments=t(l.partialJson),i.push({type:`toolcall_delta`,contentIndex:p(),delta:e.delta,partial:r}));else if(e.type===`response.function_call_arguments.done`){if(c?.type===`function_call`&&l?.type===`toolCall`){let n=l.partialJson;if(l.partialJson=e.arguments,l.arguments=t(l.partialJson),e.arguments.startsWith(n)){let t=e.arguments.slice(n.length);t.length>0&&i.push({type:`toolcall_delta`,contentIndex:p(),delta:t,partial:r})}}}else if(e.type===`response.output_item.done`){let n=e.item;if(n.type===`reasoning`&&l?.type===`thinking`){let e=n.summary?.map(e=>e.text).join(`
|
|
9
|
-
|
|
10
|
-
`)||``,t=n.content?.map(e=>e.text).join(`
|
|
11
|
-
|
|
12
|
-
`)||``;l.thinking=e||t||l.thinking,l.thinkingSignature=JSON.stringify(n),i.push({type:`thinking_end`,contentIndex:p(),content:l.thinking,partial:r}),l=null}else if(n.type===`message`&&l?.type===`text`)l.text=n.content?.map(e=>e.type===`output_text`?e.text:e.refusal).join(``)||``,l.textSignature=a(n.id,n.phase??void 0),i.push({type:`text_end`,contentIndex:p(),content:l.text,partial:r}),l=null;else if(n.type===`function_call`){let e=l?.type===`toolCall`&&l.partialJson?t(l.partialJson):t(n.arguments||`{}`),a;l?.type===`toolCall`?(l.arguments=e,delete l.partialJson,a=l):a={type:`toolCall`,id:`${n.call_id}|${n.id}`,name:n.name,arguments:e},l=null,i.push({type:`toolcall_end`,contentIndex:p(),toolCall:a,partial:r})}}else if(e.type===`response.completed`||e.type===`response.incomplete`)m(e.response);else if(e.type===`error`)throw Error(`Error Code ${e.code}: ${e.message}`||`Unknown error`);else if(e.type===`response.failed`){d=!0;let t=e.response?.error,n=e.response?.incomplete_details,r=t?`${t.code||`unknown`}: ${t.message||`no message`}`:n?.reason?`incomplete: ${n.reason}`:`Unknown error (no error details in response)`;throw Error(r)}if(!d)throw Error(`OpenAI Responses stream ended before a terminal response event`)}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};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import{a as e,t}from"./transform-messages-CQuDksPz.js";import{n}from"./json-parse-B51EftGA.js";import{t as r}from"./sanitize-unicode-DmIE6hZJ.js";import{t as i}from"./hash-yQufAZII.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(e,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=t(n.messages,e,(t,n,r)=>{if(!a.has(e.provider)||!t.includes(`|`))return l(t);let[i,o]=t.split(`|`),s=l(i),c=r.provider!==e.provider||r.api!==e.api?u(o):l(o);return c.startsWith(`fc_`)||(c=l(`fc_${c}`)),`${s}|${c}`});if((s?.includeSystemPrompt??!0)&&n.systemPrompt){let t=e.compat,i=e.reasoning&&t?.supportsDeveloperRole!==!1?`developer`:`system`;c.push({role:i,content:r(n.systemPrompt)})}let f=0;for(let t of d){if(t.role===`user`)if(typeof t.content==`string`)c.push({role:`user`,content:[{type:`input_text`,text:r(t.content)}]});else{let e=t.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}`});if(e.length===0)continue;c.push({role:`user`,content:e})}else if(t.role===`assistant`){let n=[],a=t,s=a.model!==e.id&&a.provider===e.provider&&a.api===e.api,l=0;for(let e of t.content)if(e.type===`thinking`){if(e.thinkingSignature){let t=JSON.parse(e.thinkingSignature);n.push(t)}}else if(e.type===`text`){let t=e,a=o(t.textSignature),s=l===0?`msg_pi_${f}`:`msg_pi_${f}_${l}`;l++;let c=a?.id;c?c.length>64&&(c=`msg_${i(c)}`):c=s,n.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:r(t.text),annotations:[]}],status:`completed`,id:c,phase:a?.phase})}else if(e.type===`toolCall`){let t=e,[r,i]=t.id.split(`|`),a=i;s&&a?.startsWith(`fc_`)&&(a=void 0),n.push({type:`function_call`,id:a,call_id:r,name:t.name,arguments:JSON.stringify(t.arguments)})}if(n.length===0)continue;c.push(...n)}else if(t.role===`toolResult`){let n=t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
2
|
-
`),i=t.content.some(e=>e.type===`image`),a=n.length>0,[o]=t.toolCallId.split(`|`),s;if(i&&e.input.includes(`image`)){let e=[];a&&e.push({type:`input_text`,text:r(n)});for(let n of t.content)n.type===`image`&&e.push({type:`input_image`,detail:`auto`,image_url:`data:${n.mimeType};base64,${n.data}`});s=e}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(t,r,i,o,s){let c=null,l=null,d=!1,f=r.content,p=()=>f.length-1,m=t=>{if(d=!0,t?.id&&(r.responseId=t.id),t?.usage){let e=t.usage.input_tokens_details?.cached_tokens||0;r.usage={input:(t.usage.input_tokens||0)-e,output:t.usage.output_tokens||0,cacheRead:e,cacheWrite:0,totalTokens:t.usage.total_tokens||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}}}if(e(o,r.usage),s?.applyServiceTierPricing){let e=s.resolveServiceTier?s.resolveServiceTier(t?.service_tier,s.serviceTier):t?.service_tier??s.serviceTier;s.applyServiceTierPricing(r.usage,e)}r.stopReason=u(t?.status),r.content.some(e=>e.type===`toolCall`)&&r.stopReason===`stop`&&(r.stopReason=`toolUse`)};for await(let e of t)if(e.type===`response.created`)r.responseId=e.response.id;else if(e.type===`response.output_item.added`){let t=e.item;t.type===`reasoning`?(c=t,l={type:`thinking`,thinking:``},r.content.push(l),i.push({type:`thinking_start`,contentIndex:p(),partial:r})):t.type===`message`?(c=t,l={type:`text`,text:``},r.content.push(l),i.push({type:`text_start`,contentIndex:p(),partial:r})):t.type===`function_call`&&(c=t,l={type:`toolCall`,id:`${t.call_id}|${t.id}`,name:t.name,arguments:{},partialJson:t.arguments||``},r.content.push(l),i.push({type:`toolcall_start`,contentIndex:p(),partial:r}))}else if(e.type===`response.reasoning_summary_part.added`)c&&c.type===`reasoning`&&(c.summary=c.summary||[],c.summary.push(e.part));else if(e.type===`response.reasoning_summary_text.delta`){if(c?.type===`reasoning`&&l?.type===`thinking`){c.summary=c.summary||[];let t=c.summary[c.summary.length-1];t&&(l.thinking+=e.delta,t.text+=e.delta,i.push({type:`thinking_delta`,contentIndex:p(),delta:e.delta,partial:r}))}}else if(e.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
|
-
|
|
4
|
-
`,e.text+=`
|
|
5
|
-
|
|
6
|
-
`,i.push({type:`thinking_delta`,contentIndex:p(),delta:`
|
|
7
|
-
|
|
8
|
-
`,partial:r}))}}else if(e.type===`response.reasoning_text.delta`)c?.type===`reasoning`&&l?.type===`thinking`&&(l.thinking+=e.delta,i.push({type:`thinking_delta`,contentIndex:p(),delta:e.delta,partial:r}));else if(e.type===`response.content_part.added`)c?.type===`message`&&(c.content=c.content||[],(e.part.type===`output_text`||e.part.type===`refusal`)&&c.content.push(e.part));else if(e.type===`response.output_text.delta`){if(c?.type===`message`&&l?.type===`text`){if(!c.content||c.content.length===0)continue;let t=c.content[c.content.length-1];t?.type===`output_text`&&(l.text+=e.delta,t.text+=e.delta,i.push({type:`text_delta`,contentIndex:p(),delta:e.delta,partial:r}))}}else if(e.type===`response.refusal.delta`){if(c?.type===`message`&&l?.type===`text`){if(!c.content||c.content.length===0)continue;let t=c.content[c.content.length-1];t?.type===`refusal`&&(l.text+=e.delta,t.refusal+=e.delta,i.push({type:`text_delta`,contentIndex:p(),delta:e.delta,partial:r}))}}else if(e.type===`response.function_call_arguments.delta`)c?.type===`function_call`&&l?.type===`toolCall`&&(l.partialJson+=e.delta,l.arguments=n(l.partialJson),i.push({type:`toolcall_delta`,contentIndex:p(),delta:e.delta,partial:r}));else if(e.type===`response.function_call_arguments.done`){if(c?.type===`function_call`&&l?.type===`toolCall`){let t=l.partialJson;if(l.partialJson=e.arguments,l.arguments=n(l.partialJson),e.arguments.startsWith(t)){let n=e.arguments.slice(t.length);n.length>0&&i.push({type:`toolcall_delta`,contentIndex:p(),delta:n,partial:r})}}}else if(e.type===`response.output_item.done`){let t=e.item;if(t.type===`reasoning`&&l?.type===`thinking`){let e=t.summary?.map(e=>e.text).join(`
|
|
9
|
-
|
|
10
|
-
`)||``,n=t.content?.map(e=>e.text).join(`
|
|
11
|
-
|
|
12
|
-
`)||``;l.thinking=e||n||l.thinking,l.thinkingSignature=JSON.stringify(t),i.push({type:`thinking_end`,contentIndex:p(),content:l.thinking,partial:r}),l=null}else if(t.type===`message`&&l?.type===`text`)l.text=t.content?.map(e=>e.type===`output_text`?e.text:e.refusal).join(``)||``,l.textSignature=a(t.id,t.phase??void 0),i.push({type:`text_end`,contentIndex:p(),content:l.text,partial:r}),l=null;else if(t.type===`function_call`){let e=l?.type===`toolCall`&&l.partialJson?n(l.partialJson):n(t.arguments||`{}`),a;l?.type===`toolCall`?(l.arguments=e,delete l.partialJson,a=l):a={type:`toolCall`,id:`${t.call_id}|${t.id}`,name:t.name,arguments:e},l=null,i.push({type:`toolcall_end`,contentIndex:p(),toolCall:a,partial:r})}}else if(e.type===`response.completed`||e.type===`response.incomplete`)m(e.response);else if(e.type===`error`)throw Error(`Error Code ${e.code}: ${e.message}`||`Unknown error`);else if(e.type===`response.failed`){d=!0;let t=e.response?.error,n=e.response?.incomplete_details,r=t?`${t.code||`unknown`}: ${t.message||`no message`}`:n?.reason?`incomplete: ${n.reason}`:`Unknown error (no error details in response)`;throw Error(r)}if(!d)throw Error(`OpenAI Responses stream ended before a terminal response event`)}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};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./headers-CbDaTl3c.js";import{t as n}from"./sanitize-unicode-DmIE6hZJ.js";import{n as r}from"./openai-BvKpRLAG.js";const i=async(e,n,r)=>{let i={api:e.api,provider:e.provider,model:e.id,output:[],stopReason:`stop`,timestamp:Date.now()};try{let c=r?.apiKey;if(!c)throw Error(`No API key for provider: ${e.provider}`);let l=a(e,c,r?.headers),u=o(e,n),d=await r?.onPayload?.(u,e);d!==void 0&&(u=d);let f={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:r?.maxRetries??0},{data:p,response:m}=await l.chat.completions.create(u,f).withResponse();await r?.onResponse?.({status:m.status,headers:t(m.headers)},e);let h=p;i.responseId=h.id,h.usage&&(i.usage=s(h.usage,e));let g=h.choices[0];if(g){let e=g.message.content;typeof e==`string`&&e.length>0&&i.output.push({type:`text`,text:e});for(let e of g.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&&i.output.push({type:`image`,mimeType:n[1],data:n[2]})}}return i}catch(e){return i.stopReason=r?.signal?.aborted?`aborted`:`error`,i.errorMessage=e instanceof Error?e.message:JSON.stringify(e),i}};function a(t,n,i){return new r({apiKey:n,baseURL:t.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:e({...t.headers,...i})})}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 generateImages};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./headers-CbDaTl3c.js";import{t as n}from"./sanitize-unicode-DmIE6hZJ.js";import{n as r}from"./openai-BeH6aC_-.js";var i=async(e,n,r)=>{let i={api:e.api,provider:e.provider,model:e.id,output:[],stopReason:`stop`,timestamp:Date.now()};try{let c=r?.apiKey;if(!c)throw Error(`No API key for provider: ${e.provider}`);let l=a(e,c,r?.headers),u=o(e,n),d=await r?.onPayload?.(u,e);d!==void 0&&(u=d);let f={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:r?.maxRetries??0},{data:p,response:m}=await l.chat.completions.create(u,f).withResponse();await r?.onResponse?.({status:m.status,headers:t(m.headers)},e);let h=p;i.responseId=h.id,h.usage&&(i.usage=s(h.usage,e));let g=h.choices[0];if(g){let e=g.message.content;typeof e==`string`&&e.length>0&&i.output.push({type:`text`,text:e});for(let e of g.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&&i.output.push({type:`image`,mimeType:n[1],data:n[2]})}}return i}catch(e){return i.stopReason=r?.signal?.aborted?`aborted`:`error`,i.errorMessage=e instanceof Error?e.message:JSON.stringify(e),i}};function a(t,n,i){return new r({apiKey:n,baseURL:t.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:e({...t.headers,...i})})}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 generateImages};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./provider-CpPdfI7j.js";export{e as readMcpAuthEntries};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./store-SugE11kf.js";import"./provider-BLHkVFKJ.js";export{e as readMcpAuthEntries};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e}from"./wc-live-DsVoxwUC.js";export{e as readSessionsIndex};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function e(e,t,n){return{temperature:t?.temperature,maxTokens:t?.maxTokens,signal:t?.signal,apiKey:n||t?.apiKey,transport:t?.transport,cacheRetention:t?.cacheRetention,sessionId:t?.sessionId,headers:t?.headers,onPayload:t?.onPayload,onResponse:t?.onResponse,timeoutMs:t?.timeoutMs,websocketConnectTimeoutMs:t?.websocketConnectTimeoutMs,maxRetries:t?.maxRetries,maxRetryDelayMs:t?.maxRetryDelayMs,metadata:t?.metadata,env:t?.env}}function t(e){return e===`xhigh`?`high`:e}function n(e,n,r,i){let a={minimal:1024,low:2048,medium:8192,high:16384,...i}[t(r)],o=e===void 0?n:Math.min(e+a,n);return o<=a&&(a=Math.max(0,o-1024)),{maxTokens:o,thinkingBudget:a}}function r(e,t){let n=[],r=!1;for(let i of e){if(i.type===`image`){r||n.push({type:`text`,text:t}),r=!0;continue}n.push(i),r=i.text===t}return n}function i(e,t){return t.input.includes(`image`)?e:e.map(e=>e.role===`user`&&Array.isArray(e.content)?{...e,content:r(e.content,`(image omitted: model does not support images)`)}:e.role===`toolResult`?{...e,content:r(e.content,`(tool image omitted: model does not support images)`)}:e)}function a(e,t,n){let r=new Map,a=i(e,t).map(e=>{if(e.role===`user`)return e;if(e.role===`toolResult`){let t=r.get(e.toolCallId);return t&&t!==e.toolCallId?{...e,toolCallId:t}:e}if(e.role===`assistant`){let i=e,a=i.provider===t.provider&&i.api===t.api&&i.model===t.id,o=i.content.flatMap(e=>{if(e.type===`thinking`)return e.redacted?a?e:[]:a&&e.thinkingSignature?e:!e.thinking||e.thinking.trim()===``?[]:a?e:{type:`text`,text:e.thinking};if(e.type===`text`)return a?e:{type:`text`,text:e.text};if(e.type===`toolCall`){let o=e,s=o;if(!a&&o.thoughtSignature&&(s={...o},delete s.thoughtSignature),!a&&n){let e=n(o.id,t,i);e!==o.id&&(r.set(o.id,e),s={...s,id:e})}return s}return e});return{...i,content:o}}return e}),o=[],s=[],c=new Set,l=()=>{if(s.length>0){for(let e of s)c.has(e.id)||o.push({role:`toolResult`,toolCallId:e.id,toolName:e.name,content:[{type:`text`,text:`No result provided`}],isError:!0,timestamp:Date.now()});s=[],c=new Set}};for(let e=0;e<a.length;e++){let t=a[e];if(t.role===`assistant`){l();let e=t;if(e.stopReason===`error`||e.stopReason===`aborted`)continue;let n=e.content.filter(e=>e.type===`toolCall`);n.length>0&&(s=n,c=new Set),o.push(t)}else t.role===`toolResult`?(c.add(t.toolCallId),o.push(t)):(t.role===`user`&&l(),o.push(t))}return l(),o}export{t as i,n,e as r,a as t};
|