sliccy 1.31.0 → 1.31.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/node-server/index.js +1 -1
  2. package/dist/ui/assets/{anthropic-CQI2xHqU.js → anthropic-DCgCE6e6.js} +1 -1
  3. package/dist/ui/assets/{azure-openai-responses-DaJmUqmm.js → azure-openai-responses-BAEcQljF.js} +1 -1
  4. package/dist/ui/assets/{es-DcLnEgGG.js → es-CV6wGk2C.js} +1 -1
  5. package/dist/ui/assets/google-CgrbuRCR.js +1 -0
  6. package/dist/ui/assets/{google-gemini-cli-DhVIdec5.js → google-gemini-cli-B-nP3dy7.js} +1 -1
  7. package/dist/ui/assets/{google-shared-D4t3JPKT.js → google-shared-DlIsJ2PK.js} +1 -1
  8. package/dist/ui/assets/google-vertex-D9Bq8AD3.js +1 -0
  9. package/dist/ui/assets/{index-zYZwcB_n.js → index-B3tZqynj.js} +7 -7
  10. package/dist/ui/assets/lick-manager-C-hwHk06.js +1 -0
  11. package/dist/ui/assets/{mistral-Dd93JIT9.js → mistral-CdgB5bvq.js} +1 -1
  12. package/dist/ui/assets/{openai-codex-responses-D16mvXjR.js → openai-codex-responses-YIrqL4vG.js} +1 -1
  13. package/dist/ui/assets/{openai-completions-DUFQB18w.js → openai-completions-DZQjCpMo.js} +1 -1
  14. package/dist/ui/assets/{openai-responses-Du7Q-IQJ.js → openai-responses-CXKNHLDv.js} +1 -1
  15. package/dist/ui/assets/{openai-responses-shared-CtYmjEML.js → openai-responses-shared-W0fLCCYv.js} +1 -1
  16. package/dist/ui/assets/{provider-settings-DxWipiXF.js → provider-settings-9fKSxjtX.js} +3 -3
  17. package/dist/ui/assets/provider-settings-us0x_Z2z.js +1 -0
  18. package/dist/ui/assets/providers-siq7u74Y.js +1 -0
  19. package/dist/ui/assets/shell-CJK5usKQ.js +1 -0
  20. package/dist/ui/assets/simple-options-B20EpYQT.js +1 -0
  21. package/dist/ui/assets/sprinkle-renderer-xyE0MKmx.js +1 -0
  22. package/dist/ui/index.html +3 -3
  23. package/dist/ui/packages/webapp/index.html +3 -3
  24. package/package.json +2 -2
  25. package/dist/ui/assets/google-9U6enC_j.js +0 -1
  26. package/dist/ui/assets/google-vertex-GKT_bPso.js +0 -1
  27. package/dist/ui/assets/lick-manager-CEJ1osaY.js +0 -1
  28. package/dist/ui/assets/provider-settings-UKXNpw6a.js +0 -1
  29. package/dist/ui/assets/providers-D8wPZdve.js +0 -1
  30. package/dist/ui/assets/shell-CnndfXEH.js +0 -1
  31. package/dist/ui/assets/simple-options-BCaE9Yc6.js +0 -1
  32. package/dist/ui/assets/sprinkle-renderer-BFoiL80v.js +0 -1
@@ -1,4 +1,4 @@
1
- import{t as e}from"./preload-helper-ca-nBW7U.js";import{t}from"./env-api-keys-DlVZ9FrG.js";import{a as n,d as r,n as i,r as a}from"./simple-options-BCaE9Yc6.js";import{n as o,r as s,t as c}from"./openai-responses-shared-CtYmjEML.js";var l=null;typeof process<`u`&&(process.versions?.node||process.versions?.bun)&&(t=>e(()=>import(t),[]))(`node:os`).then(e=>{l=e});var u=`https://chatgpt.com/backend-api`,d=`https://api.openai.com/auth`,f=3,p=1e3,m=new Set([`openai`,`openai-codex`,`opencode`]),h=new Set([`completed`,`incomplete`,`failed`,`cancelled`,`queued`,`in_progress`]);function g(e,t){return e===429||e===500||e===502||e===503||e===504?!0:/rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(t)}function _(e,t){return new Promise((n,r)=>{if(t?.aborted){r(Error(`Request was aborted`));return}let i=setTimeout(n,e);t?.addEventListener(`abort`,()=>{clearTimeout(i),r(Error(`Request was aborted`))})})}var v=(e,r,i)=>{let a=new n;return(async()=>{let n={role:`assistant`,content:[],api:`openai-codex-responses`,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=i?.apiKey||t(e.provider)||``;if(!o)throw Error(`No API key for provider: ${e.provider}`);let s=G(o),c=b(e,r,i),l=await i?.onPayload?.(c,e);l!==void 0&&(c=l);let u=i?.sessionId||K(),d=J(e.headers,i?.headers,s,o,i?.sessionId),m=Y(e.headers,i?.headers,s,o,u),h=JSON.stringify(c),v=i?.transport||`sse`;if(v!==`sse`){let t=!1;try{if(await U(C(e.baseUrl),c,m,n,a,e,()=>{t=!0},i),i?.signal?.aborted)throw Error(`Request was aborted`);a.push({type:`done`,reason:n.stopReason,message:n}),a.end();return}catch(e){if(v===`websocket`||t)throw e}}let y,x;for(let t=0;t<=f;t++){if(i?.signal?.aborted)throw Error(`Request was aborted`);try{if(y=await fetch(S(e.baseUrl),{method:`POST`,headers:d,body:h,signal:i?.signal}),y.ok)break;let n=await y.text();if(t<f&&g(y.status,n)){await _(p*2**t,i?.signal);continue}let r=await W(new Response(n,{status:y.status,statusText:y.statusText}));throw Error(r.friendlyMessage||r.message)}catch(e){if(e instanceof Error&&(e.name===`AbortError`||e.message===`Request was aborted`))throw Error(`Request was aborted`);if(x=e instanceof Error?e:Error(String(e)),t<f&&!x.message.includes(`usage limit`)){await _(p*2**t,i?.signal);continue}throw x}}if(!y?.ok)throw x??Error(`Failed after retries`);if(!y.body)throw Error(`No response body`);if(a.push({type:`start`,partial:n}),await w(y,n,a,e),i?.signal?.aborted)throw Error(`Request was aborted`);a.push({type:`done`,reason:n.stopReason,message:n}),a.end()}catch(e){n.stopReason=i?.signal?.aborted?`aborted`:`error`,n.errorMessage=e instanceof Error?e.message:String(e),a.push({type:`error`,reason:n.stopReason,error:n}),a.end()}})(),a},y=(e,n,o)=>{let s=o?.apiKey||t(e.provider);if(!s)throw Error(`No API key for provider: ${e.provider}`);let c=i(e,o,s),l=r(e)?o?.reasoning:a(o?.reasoning);return v(e,n,{...c,reasoningEffort:l})};function b(e,t,n){let r=c(e,t,m,{includeSystemPrompt:!1}),i={model:e.id,store:!1,stream:!0,instructions:t.systemPrompt,input:r,text:{verbosity:n?.textVerbosity||`medium`},include:[`reasoning.encrypted_content`],prompt_cache_key:n?.sessionId,tool_choice:`auto`,parallel_tool_calls:!0};return n?.temperature!==void 0&&(i.temperature=n.temperature),t.tools&&(i.tools=o(t.tools,{strict:null})),n?.reasoningEffort!==void 0&&(i.reasoning={effort:x(e.id,n.reasoningEffort),summary:n.reasoningSummary??`auto`}),i}function x(e,t){let n=e.includes(`/`)?e.split(`/`).pop():e;return(n.startsWith(`gpt-5.2`)||n.startsWith(`gpt-5.3`)||n.startsWith(`gpt-5.4`))&&t===`minimal`?`low`:n===`gpt-5.1`&&t===`xhigh`?`high`:n===`gpt-5.1-codex-mini`?t===`high`||t===`xhigh`?`high`:`medium`:t}function S(e){let t=(e&&e.trim().length>0?e:u).replace(/\/+$/,``);return t.endsWith(`/codex/responses`)?t:t.endsWith(`/codex`)?`${t}/responses`:`${t}/codex/responses`}function C(e){let t=new URL(S(e));return t.protocol===`https:`&&(t.protocol=`wss:`),t.protocol===`http:`&&(t.protocol=`ws:`),t.toString()}async function w(e,t,n,r){await s(T(D(e)),t,n,r)}async function*T(e){for await(let t of e){let e=typeof t.type==`string`?t.type:void 0;if(e){if(e===`error`){let e=t.code||``,n=t.message||``;throw Error(`Codex error: ${n||e||JSON.stringify(t)}`)}if(e===`response.failed`){let e=t.response?.error?.message;throw Error(e||`Codex response failed`)}if(e===`response.done`||e===`response.completed`||e===`response.incomplete`){let e=t.response,n=e&&{...e,status:E(e.status)};yield{...t,type:`response.completed`,response:n};return}yield t}}}function E(e){if(typeof e==`string`)return h.has(e)?e:void 0}async function*D(e){if(!e.body)return;let t=e.body.getReader(),n=new TextDecoder,r=``;try{for(;;){let{done:e,value:i}=await t.read();if(e)break;r+=n.decode(i,{stream:!0});let a=r.indexOf(`
1
+ import{t as e}from"./preload-helper-ca-nBW7U.js";import{t}from"./env-api-keys-DlVZ9FrG.js";import{a as n,d as r,n as i,r as a}from"./simple-options-B20EpYQT.js";import{n as o,r as s,t as c}from"./openai-responses-shared-W0fLCCYv.js";var l=null;typeof process<`u`&&(process.versions?.node||process.versions?.bun)&&(t=>e(()=>import(t),[]))(`node:os`).then(e=>{l=e});var u=`https://chatgpt.com/backend-api`,d=`https://api.openai.com/auth`,f=3,p=1e3,m=new Set([`openai`,`openai-codex`,`opencode`]),h=new Set([`completed`,`incomplete`,`failed`,`cancelled`,`queued`,`in_progress`]);function g(e,t){return e===429||e===500||e===502||e===503||e===504?!0:/rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(t)}function _(e,t){return new Promise((n,r)=>{if(t?.aborted){r(Error(`Request was aborted`));return}let i=setTimeout(n,e);t?.addEventListener(`abort`,()=>{clearTimeout(i),r(Error(`Request was aborted`))})})}var v=(e,r,i)=>{let a=new n;return(async()=>{let n={role:`assistant`,content:[],api:`openai-codex-responses`,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=i?.apiKey||t(e.provider)||``;if(!o)throw Error(`No API key for provider: ${e.provider}`);let s=G(o),c=b(e,r,i),l=await i?.onPayload?.(c,e);l!==void 0&&(c=l);let u=i?.sessionId||K(),d=J(e.headers,i?.headers,s,o,i?.sessionId),m=Y(e.headers,i?.headers,s,o,u),h=JSON.stringify(c),v=i?.transport||`sse`;if(v!==`sse`){let t=!1;try{if(await U(C(e.baseUrl),c,m,n,a,e,()=>{t=!0},i),i?.signal?.aborted)throw Error(`Request was aborted`);a.push({type:`done`,reason:n.stopReason,message:n}),a.end();return}catch(e){if(v===`websocket`||t)throw e}}let y,x;for(let t=0;t<=f;t++){if(i?.signal?.aborted)throw Error(`Request was aborted`);try{if(y=await fetch(S(e.baseUrl),{method:`POST`,headers:d,body:h,signal:i?.signal}),y.ok)break;let n=await y.text();if(t<f&&g(y.status,n)){await _(p*2**t,i?.signal);continue}let r=await W(new Response(n,{status:y.status,statusText:y.statusText}));throw Error(r.friendlyMessage||r.message)}catch(e){if(e instanceof Error&&(e.name===`AbortError`||e.message===`Request was aborted`))throw Error(`Request was aborted`);if(x=e instanceof Error?e:Error(String(e)),t<f&&!x.message.includes(`usage limit`)){await _(p*2**t,i?.signal);continue}throw x}}if(!y?.ok)throw x??Error(`Failed after retries`);if(!y.body)throw Error(`No response body`);if(a.push({type:`start`,partial:n}),await w(y,n,a,e),i?.signal?.aborted)throw Error(`Request was aborted`);a.push({type:`done`,reason:n.stopReason,message:n}),a.end()}catch(e){n.stopReason=i?.signal?.aborted?`aborted`:`error`,n.errorMessage=e instanceof Error?e.message:String(e),a.push({type:`error`,reason:n.stopReason,error:n}),a.end()}})(),a},y=(e,n,o)=>{let s=o?.apiKey||t(e.provider);if(!s)throw Error(`No API key for provider: ${e.provider}`);let c=i(e,o,s),l=r(e)?o?.reasoning:a(o?.reasoning);return v(e,n,{...c,reasoningEffort:l})};function b(e,t,n){let r=c(e,t,m,{includeSystemPrompt:!1}),i={model:e.id,store:!1,stream:!0,instructions:t.systemPrompt,input:r,text:{verbosity:n?.textVerbosity||`medium`},include:[`reasoning.encrypted_content`],prompt_cache_key:n?.sessionId,tool_choice:`auto`,parallel_tool_calls:!0};return n?.temperature!==void 0&&(i.temperature=n.temperature),t.tools&&(i.tools=o(t.tools,{strict:null})),n?.reasoningEffort!==void 0&&(i.reasoning={effort:x(e.id,n.reasoningEffort),summary:n.reasoningSummary??`auto`}),i}function x(e,t){let n=e.includes(`/`)?e.split(`/`).pop():e;return(n.startsWith(`gpt-5.2`)||n.startsWith(`gpt-5.3`)||n.startsWith(`gpt-5.4`))&&t===`minimal`?`low`:n===`gpt-5.1`&&t===`xhigh`?`high`:n===`gpt-5.1-codex-mini`?t===`high`||t===`xhigh`?`high`:`medium`:t}function S(e){let t=(e&&e.trim().length>0?e:u).replace(/\/+$/,``);return t.endsWith(`/codex/responses`)?t:t.endsWith(`/codex`)?`${t}/responses`:`${t}/codex/responses`}function C(e){let t=new URL(S(e));return t.protocol===`https:`&&(t.protocol=`wss:`),t.protocol===`http:`&&(t.protocol=`ws:`),t.toString()}async function w(e,t,n,r){await s(T(D(e)),t,n,r)}async function*T(e){for await(let t of e){let e=typeof t.type==`string`?t.type:void 0;if(e){if(e===`error`){let e=t.code||``,n=t.message||``;throw Error(`Codex error: ${n||e||JSON.stringify(t)}`)}if(e===`response.failed`){let e=t.response?.error?.message;throw Error(e||`Codex response failed`)}if(e===`response.done`||e===`response.completed`||e===`response.incomplete`){let e=t.response,n=e&&{...e,status:E(e.status)};yield{...t,type:`response.completed`,response:n};return}yield t}}}function E(e){if(typeof e==`string`)return h.has(e)?e:void 0}async function*D(e){if(!e.body)return;let t=e.body.getReader(),n=new TextDecoder,r=``;try{for(;;){let{done:e,value:i}=await t.read();if(e)break;r+=n.decode(i,{stream:!0});let a=r.indexOf(`
2
2
 
3
3
  `);for(;a!==-1;){let e=r.slice(0,a);r=r.slice(a+2);let t=e.split(`
4
4
  `).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trim());if(t.length>0){let e=t.join(`
@@ -1,4 +1,4 @@
1
- import{t as e}from"./env-api-keys-DlVZ9FrG.js";import{a as t,d as n,i as r,n as i,r as a,s as o}from"./simple-options-BCaE9Yc6.js";import{t as s}from"./json-parse-JW3qhabb.js";import{t as c}from"./sanitize-unicode-DndIFJRs.js";import{n as l,t as u}from"./github-copilot-headers-4kWA0Xn_.js";import{n as d}from"./openai-_xz6ZovU.js";function f(e){for(let t of e)if(t.role===`toolResult`||t.role===`assistant`&&t.content.some(e=>e.type===`toolCall`))return!0;return!1}var p=(n,r,i)=>{let a=new t;return(async()=>{let t={role:`assistant`,content:[],api:n.api,provider:n.provider,model:n.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=h(n,r,i?.apiKey||e(n.provider)||``,i?.headers),c=g(n,r,i),l=await i?.onPayload?.(c,n);l!==void 0&&(c=l);let u=await o.chat.completions.create(c,{signal:i?.signal});a.push({type:`start`,partial:t});let d=null,f=t.content,p=()=>f.length-1,m=e=>{e&&(e.type===`text`?a.push({type:`text_end`,contentIndex:p(),content:e.text,partial:t}):e.type===`thinking`?a.push({type:`thinking_end`,contentIndex:p(),content:e.thinking,partial:t}):e.type===`toolCall`&&(e.arguments=s(e.partialArgs),delete e.partialArgs,a.push({type:`toolcall_end`,contentIndex:p(),toolCall:e,partial:t})))};for await(let e of u){if(!e||typeof e!=`object`)continue;t.responseId||=e.id,e.usage&&(t.usage=x(e.usage,n));let r=Array.isArray(e.choices)?e.choices[0]:void 0;if(r){if(!e.usage&&r.usage&&(t.usage=x(r.usage,n)),r.finish_reason){let e=S(r.finish_reason);t.stopReason=e.stopReason,e.errorMessage&&(t.errorMessage=e.errorMessage)}if(r.delta){r.delta.content!==null&&r.delta.content!==void 0&&r.delta.content.length>0&&((!d||d.type!==`text`)&&(m(d),d={type:`text`,text:``},t.content.push(d),a.push({type:`text_start`,contentIndex:p(),partial:t})),d.type===`text`&&(d.text+=r.delta.content,a.push({type:`text_delta`,contentIndex:p(),delta:r.delta.content,partial:t})));let e=[`reasoning_content`,`reasoning`,`reasoning_text`],n=null;for(let t of e)if(r.delta[t]!==null&&r.delta[t]!==void 0&&r.delta[t].length>0&&!n){n=t;break}if(n&&((!d||d.type!==`thinking`)&&(m(d),d={type:`thinking`,thinking:``,thinkingSignature:n},t.content.push(d),a.push({type:`thinking_start`,contentIndex:p(),partial:t})),d.type===`thinking`)){let e=r.delta[n];d.thinking+=e,a.push({type:`thinking_delta`,contentIndex:p(),delta:e,partial:t})}if(r?.delta?.tool_calls){for(let e of r.delta.tool_calls)if((!d||d.type!==`toolCall`||e.id&&d.id!==e.id)&&(m(d),d={type:`toolCall`,id:e.id||``,name:e.function?.name||``,arguments:{},partialArgs:``},t.content.push(d),a.push({type:`toolcall_start`,contentIndex:p(),partial:t})),d.type===`toolCall`){e.id&&(d.id=e.id),e.function?.name&&(d.name=e.function.name);let n=``;e.function?.arguments&&(n=e.function.arguments,d.partialArgs+=e.function.arguments,d.arguments=s(d.partialArgs)),a.push({type:`toolcall_delta`,contentIndex:p(),delta:n,partial:t})}}let i=r.delta.reasoning_details;if(i&&Array.isArray(i)){for(let e of i)if(e.type===`reasoning.encrypted`&&e.id&&e.data){let n=t.content.find(t=>t.type===`toolCall`&&t.id===e.id);n&&(n.thoughtSignature=JSON.stringify(e))}}}}}if(m(d),i?.signal?.aborted||t.stopReason===`aborted`)throw Error(`Request was aborted`);if(t.stopReason===`error`)throw Error(t.errorMessage||`Provider returned an error stop reason`);a.push({type:`done`,reason:t.stopReason,message:t}),a.end()}catch(e){for(let e of t.content)delete e.index;t.stopReason=i?.signal?.aborted?`aborted`:`error`,t.errorMessage=e instanceof Error?e.message:JSON.stringify(e);let n=e?.error?.metadata?.raw;n&&(t.errorMessage+=`\n${n}`),a.push({type:`error`,reason:t.stopReason,error:t}),a.end()}})(),a},m=(t,r,o)=>{let s=o?.apiKey||e(t.provider);if(!s)throw Error(`No API key for provider: ${t.provider}`);let c=i(t,o,s),l=n(t)?o?.reasoning:a(o?.reasoning),u=o?.toolChoice;return p(t,r,{...c,reasoningEffort:l,toolChoice:u})};function h(e,t,n,r){if(!n){if(!{}.OPENAI_API_KEY)throw Error(`OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.`);n={}.OPENAI_API_KEY}let i={...e.headers};if(e.provider===`github-copilot`){let e=l(t.messages),n=u({messages:t.messages,hasImages:e});Object.assign(i,n)}return r&&Object.assign(i,r),new d({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:i})}function g(e,t,n){let r=w(e),i=y(e,t,r);v(e,i);let a={model:e.id,messages:i,stream:!0};if(r.supportsUsageInStreaming!==!1&&(a.stream_options={include_usage:!0}),r.supportsStore&&(a.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?a.max_tokens=n.maxTokens:a.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(a.temperature=n.temperature),t.tools?a.tools=b(t.tools,r):f(t.messages)&&(a.tools=[]),n?.toolChoice&&(a.tool_choice=n.toolChoice),r.thinkingFormat===`zai`&&e.reasoning)a.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen`&&e.reasoning)a.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)a.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort};else if(r.thinkingFormat===`openrouter`&&e.reasoning){let e=a;n?.reasoningEffort?e.reasoning={effort:_(n.reasoningEffort,r.reasoningEffortMap)}:e.reasoning={effort:`none`}}else n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort&&(a.reasoning_effort=_(n.reasoningEffort,r.reasoningEffortMap));if(e.baseUrl.includes(`openrouter.ai`)&&e.compat?.openRouterRouting&&(a.provider=e.compat.openRouterRouting),e.baseUrl.includes(`ai-gateway.vercel.sh`)&&e.compat?.vercelGatewayRouting){let t=e.compat.vercelGatewayRouting;if(t.only||t.order){let e={};t.only&&(e.only=t.only),t.order&&(e.order=t.order),a.providerOptions={gateway:e}}}return a}function _(e,t){return t[e]??e}function v(e,t){if(!(e.provider!==`openrouter`||!e.id.startsWith(`anthropic/`)))for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.role!==`user`&&n.role!==`assistant`)continue;let r=n.content;if(typeof r==`string`){n.content=[Object.assign({type:`text`,text:r},{cache_control:{type:`ephemeral`}})];return}if(Array.isArray(r))for(let e=r.length-1;e>=0;e--){let t=r[e];if(t?.type===`text`){Object.assign(t,{cache_control:{type:`ephemeral`}});return}}}}function y(e,t,n){let i=[],a=t=>{if(t.includes(`|`)){let[e]=t.split(`|`);return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,40)}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},o=r(t.messages,e,e=>a(e));if(t.systemPrompt){let r=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;i.push({role:r,content:c(t.systemPrompt)})}let s=null;for(let t=0;t<o.length;t++){let r=o[t];if(n.requiresAssistantAfterToolResult&&s===`toolResult`&&r.role===`user`&&i.push({role:`assistant`,content:`I have processed the tool results.`}),r.role===`user`)if(typeof r.content==`string`)i.push({role:`user`,content:c(r.content)});else{let t=r.content.map(e=>e.type===`text`?{type:`text`,text:c(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}}),n=e.input.includes(`image`)?t:t.filter(e=>e.type!==`image_url`);if(n.length===0)continue;i.push({role:`user`,content:n})}else if(r.role===`assistant`){let e={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},t=r.content.filter(e=>e.type===`text`).filter(e=>e.text&&e.text.trim().length>0);t.length>0&&(e.content=t.map(e=>c(e.text)).join(``));let a=r.content.filter(e=>e.type===`thinking`).filter(e=>e.thinking&&e.thinking.trim().length>0);if(a.length>0)if(n.requiresThinkingAsText){let t=a.map(e=>e.thinking).join(`
1
+ import{t as e}from"./env-api-keys-DlVZ9FrG.js";import{a as t,d as n,i as r,n as i,r as a,s as o}from"./simple-options-B20EpYQT.js";import{t as s}from"./json-parse-JW3qhabb.js";import{t as c}from"./sanitize-unicode-DndIFJRs.js";import{n as l,t as u}from"./github-copilot-headers-4kWA0Xn_.js";import{n as d}from"./openai-_xz6ZovU.js";function f(e){for(let t of e)if(t.role===`toolResult`||t.role===`assistant`&&t.content.some(e=>e.type===`toolCall`))return!0;return!1}var p=(n,r,i)=>{let a=new t;return(async()=>{let t={role:`assistant`,content:[],api:n.api,provider:n.provider,model:n.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=h(n,r,i?.apiKey||e(n.provider)||``,i?.headers),c=g(n,r,i),l=await i?.onPayload?.(c,n);l!==void 0&&(c=l);let u=await o.chat.completions.create(c,{signal:i?.signal});a.push({type:`start`,partial:t});let d=null,f=t.content,p=()=>f.length-1,m=e=>{e&&(e.type===`text`?a.push({type:`text_end`,contentIndex:p(),content:e.text,partial:t}):e.type===`thinking`?a.push({type:`thinking_end`,contentIndex:p(),content:e.thinking,partial:t}):e.type===`toolCall`&&(e.arguments=s(e.partialArgs),delete e.partialArgs,a.push({type:`toolcall_end`,contentIndex:p(),toolCall:e,partial:t})))};for await(let e of u){if(!e||typeof e!=`object`)continue;t.responseId||=e.id,e.usage&&(t.usage=x(e.usage,n));let r=Array.isArray(e.choices)?e.choices[0]:void 0;if(r){if(!e.usage&&r.usage&&(t.usage=x(r.usage,n)),r.finish_reason){let e=S(r.finish_reason);t.stopReason=e.stopReason,e.errorMessage&&(t.errorMessage=e.errorMessage)}if(r.delta){r.delta.content!==null&&r.delta.content!==void 0&&r.delta.content.length>0&&((!d||d.type!==`text`)&&(m(d),d={type:`text`,text:``},t.content.push(d),a.push({type:`text_start`,contentIndex:p(),partial:t})),d.type===`text`&&(d.text+=r.delta.content,a.push({type:`text_delta`,contentIndex:p(),delta:r.delta.content,partial:t})));let e=[`reasoning_content`,`reasoning`,`reasoning_text`],n=null;for(let t of e)if(r.delta[t]!==null&&r.delta[t]!==void 0&&r.delta[t].length>0&&!n){n=t;break}if(n&&((!d||d.type!==`thinking`)&&(m(d),d={type:`thinking`,thinking:``,thinkingSignature:n},t.content.push(d),a.push({type:`thinking_start`,contentIndex:p(),partial:t})),d.type===`thinking`)){let e=r.delta[n];d.thinking+=e,a.push({type:`thinking_delta`,contentIndex:p(),delta:e,partial:t})}if(r?.delta?.tool_calls){for(let e of r.delta.tool_calls)if((!d||d.type!==`toolCall`||e.id&&d.id!==e.id)&&(m(d),d={type:`toolCall`,id:e.id||``,name:e.function?.name||``,arguments:{},partialArgs:``},t.content.push(d),a.push({type:`toolcall_start`,contentIndex:p(),partial:t})),d.type===`toolCall`){e.id&&(d.id=e.id),e.function?.name&&(d.name=e.function.name);let n=``;e.function?.arguments&&(n=e.function.arguments,d.partialArgs+=e.function.arguments,d.arguments=s(d.partialArgs)),a.push({type:`toolcall_delta`,contentIndex:p(),delta:n,partial:t})}}let i=r.delta.reasoning_details;if(i&&Array.isArray(i)){for(let e of i)if(e.type===`reasoning.encrypted`&&e.id&&e.data){let n=t.content.find(t=>t.type===`toolCall`&&t.id===e.id);n&&(n.thoughtSignature=JSON.stringify(e))}}}}}if(m(d),i?.signal?.aborted||t.stopReason===`aborted`)throw Error(`Request was aborted`);if(t.stopReason===`error`)throw Error(t.errorMessage||`Provider returned an error stop reason`);a.push({type:`done`,reason:t.stopReason,message:t}),a.end()}catch(e){for(let e of t.content)delete e.index;t.stopReason=i?.signal?.aborted?`aborted`:`error`,t.errorMessage=e instanceof Error?e.message:JSON.stringify(e);let n=e?.error?.metadata?.raw;n&&(t.errorMessage+=`\n${n}`),a.push({type:`error`,reason:t.stopReason,error:t}),a.end()}})(),a},m=(t,r,o)=>{let s=o?.apiKey||e(t.provider);if(!s)throw Error(`No API key for provider: ${t.provider}`);let c=i(t,o,s),l=n(t)?o?.reasoning:a(o?.reasoning),u=o?.toolChoice;return p(t,r,{...c,reasoningEffort:l,toolChoice:u})};function h(e,t,n,r){if(!n){if(!{}.OPENAI_API_KEY)throw Error(`OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.`);n={}.OPENAI_API_KEY}let i={...e.headers};if(e.provider===`github-copilot`){let e=l(t.messages),n=u({messages:t.messages,hasImages:e});Object.assign(i,n)}return r&&Object.assign(i,r),new d({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:i})}function g(e,t,n){let r=w(e),i=y(e,t,r);v(e,i);let a={model:e.id,messages:i,stream:!0};if(r.supportsUsageInStreaming!==!1&&(a.stream_options={include_usage:!0}),r.supportsStore&&(a.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?a.max_tokens=n.maxTokens:a.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(a.temperature=n.temperature),t.tools?a.tools=b(t.tools,r):f(t.messages)&&(a.tools=[]),n?.toolChoice&&(a.tool_choice=n.toolChoice),r.thinkingFormat===`zai`&&e.reasoning)a.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen`&&e.reasoning)a.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)a.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort};else if(r.thinkingFormat===`openrouter`&&e.reasoning){let e=a;n?.reasoningEffort?e.reasoning={effort:_(n.reasoningEffort,r.reasoningEffortMap)}:e.reasoning={effort:`none`}}else n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort&&(a.reasoning_effort=_(n.reasoningEffort,r.reasoningEffortMap));if(e.baseUrl.includes(`openrouter.ai`)&&e.compat?.openRouterRouting&&(a.provider=e.compat.openRouterRouting),e.baseUrl.includes(`ai-gateway.vercel.sh`)&&e.compat?.vercelGatewayRouting){let t=e.compat.vercelGatewayRouting;if(t.only||t.order){let e={};t.only&&(e.only=t.only),t.order&&(e.order=t.order),a.providerOptions={gateway:e}}}return a}function _(e,t){return t[e]??e}function v(e,t){if(!(e.provider!==`openrouter`||!e.id.startsWith(`anthropic/`)))for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.role!==`user`&&n.role!==`assistant`)continue;let r=n.content;if(typeof r==`string`){n.content=[Object.assign({type:`text`,text:r},{cache_control:{type:`ephemeral`}})];return}if(Array.isArray(r))for(let e=r.length-1;e>=0;e--){let t=r[e];if(t?.type===`text`){Object.assign(t,{cache_control:{type:`ephemeral`}});return}}}}function y(e,t,n){let i=[],a=t=>{if(t.includes(`|`)){let[e]=t.split(`|`);return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,40)}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},o=r(t.messages,e,e=>a(e));if(t.systemPrompt){let r=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;i.push({role:r,content:c(t.systemPrompt)})}let s=null;for(let t=0;t<o.length;t++){let r=o[t];if(n.requiresAssistantAfterToolResult&&s===`toolResult`&&r.role===`user`&&i.push({role:`assistant`,content:`I have processed the tool results.`}),r.role===`user`)if(typeof r.content==`string`)i.push({role:`user`,content:c(r.content)});else{let t=r.content.map(e=>e.type===`text`?{type:`text`,text:c(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}}),n=e.input.includes(`image`)?t:t.filter(e=>e.type!==`image_url`);if(n.length===0)continue;i.push({role:`user`,content:n})}else if(r.role===`assistant`){let e={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},t=r.content.filter(e=>e.type===`text`).filter(e=>e.text&&e.text.trim().length>0);t.length>0&&(e.content=t.map(e=>c(e.text)).join(``));let a=r.content.filter(e=>e.type===`thinking`).filter(e=>e.thinking&&e.thinking.trim().length>0);if(a.length>0)if(n.requiresThinkingAsText){let t=a.map(e=>e.thinking).join(`
2
2
 
3
3
  `),n=e.content;n?n.unshift({type:`text`,text:t}):e.content=[{type:`text`,text:t}]}else{let t=a[0].thinkingSignature;t&&t.length>0&&(e[t]=a.map(e=>e.thinking).join(`
4
4
  `))}let o=r.content.filter(e=>e.type===`toolCall`);if(o.length>0){e.tool_calls=o.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments)}}));let t=o.filter(e=>e.thoughtSignature).map(e=>{try{return JSON.parse(e.thoughtSignature)}catch{return null}}).filter(Boolean);t.length>0&&(e.reasoning_details=t)}let s=e.content;if(!(s!=null&&s.length>0)&&!e.tool_calls)continue;i.push(e)}else if(r.role===`toolResult`){let r=[],a=t;for(;a<o.length&&o[a].role===`toolResult`;a++){let t=o[a],s=t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
@@ -1 +1 @@
1
- import{t as e}from"./env-api-keys-DlVZ9FrG.js";import{a as t,d as n,n as r,r as i}from"./simple-options-BCaE9Yc6.js";import{n as a,t as o}from"./github-copilot-headers-4kWA0Xn_.js";import{n as s}from"./openai-_xz6ZovU.js";import{n as c,r as l,t as u}from"./openai-responses-shared-CtYmjEML.js";var d=new Set([`openai`,`openai-codex`,`opencode`]);function f(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}function p(e,t){if(t===`long`&&e.includes(`api.openai.com`))return`24h`}var m=(n,r,i)=>{let a=new t;return(async()=>{let t={role:`assistant`,content:[],api:n.api,provider:n.provider,model:n.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=g(n,r,i?.apiKey||e(n.provider)||``,i?.headers),s=_(n,r,i),c=await i?.onPayload?.(s,n);c!==void 0&&(s=c);let u=await o.responses.create(s,i?.signal?{signal:i.signal}:void 0);if(a.push({type:`start`,partial:t}),await l(u,t,a,n,{serviceTier:i?.serviceTier,applyServiceTierPricing:y}),i?.signal?.aborted)throw Error(`Request was aborted`);if(t.stopReason===`aborted`||t.stopReason===`error`)throw Error(`An unknown error occurred`);a.push({type:`done`,reason:t.stopReason,message:t}),a.end()}catch(e){for(let e of t.content)delete e.index;t.stopReason=i?.signal?.aborted?`aborted`:`error`,t.errorMessage=e instanceof Error?e.message:JSON.stringify(e),a.push({type:`error`,reason:t.stopReason,error:t}),a.end()}})(),a},h=(t,a,o)=>{let s=o?.apiKey||e(t.provider);if(!s)throw Error(`No API key for provider: ${t.provider}`);let c=r(t,o,s),l=n(t)?o?.reasoning:i(o?.reasoning);return m(t,a,{...c,reasoningEffort:l})};function g(e,t,n,r){if(!n){if(!{}.OPENAI_API_KEY)throw Error(`OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.`);n={}.OPENAI_API_KEY}let i={...e.headers};if(e.provider===`github-copilot`){let e=a(t.messages),n=o({messages:t.messages,hasImages:e});Object.assign(i,n)}return r&&Object.assign(i,r),new s({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:i})}function _(e,t,n){let r=u(e,t,d),i=f(n?.cacheRetention),a={model:e.id,input:r,stream:!0,prompt_cache_key:i===`none`?void 0:n?.sessionId,prompt_cache_retention:p(e.baseUrl,i),store:!1};return n?.maxTokens&&(a.max_output_tokens=n?.maxTokens),n?.temperature!==void 0&&(a.temperature=n?.temperature),n?.serviceTier!==void 0&&(a.service_tier=n.serviceTier),t.tools&&(a.tools=c(t.tools)),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(a.reasoning={effort:n?.reasoningEffort||`medium`,summary:n?.reasoningSummary||`auto`},a.include=[`reasoning.encrypted_content`]):a.reasoning={effort:`none`}),a}function v(e){switch(e){case`flex`:return .5;case`priority`:return 2;default:return 1}}function y(e,t){let n=v(t);n!==1&&(e.cost.input*=n,e.cost.output*=n,e.cost.cacheRead*=n,e.cost.cacheWrite*=n,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{m as streamOpenAIResponses,h as streamSimpleOpenAIResponses};
1
+ import{t as e}from"./env-api-keys-DlVZ9FrG.js";import{a as t,d as n,n as r,r as i}from"./simple-options-B20EpYQT.js";import{n as a,t as o}from"./github-copilot-headers-4kWA0Xn_.js";import{n as s}from"./openai-_xz6ZovU.js";import{n as c,r as l,t as u}from"./openai-responses-shared-W0fLCCYv.js";var d=new Set([`openai`,`openai-codex`,`opencode`]);function f(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}function p(e,t){if(t===`long`&&e.includes(`api.openai.com`))return`24h`}var m=(n,r,i)=>{let a=new t;return(async()=>{let t={role:`assistant`,content:[],api:n.api,provider:n.provider,model:n.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=g(n,r,i?.apiKey||e(n.provider)||``,i?.headers),s=_(n,r,i),c=await i?.onPayload?.(s,n);c!==void 0&&(s=c);let u=await o.responses.create(s,i?.signal?{signal:i.signal}:void 0);if(a.push({type:`start`,partial:t}),await l(u,t,a,n,{serviceTier:i?.serviceTier,applyServiceTierPricing:y}),i?.signal?.aborted)throw Error(`Request was aborted`);if(t.stopReason===`aborted`||t.stopReason===`error`)throw Error(`An unknown error occurred`);a.push({type:`done`,reason:t.stopReason,message:t}),a.end()}catch(e){for(let e of t.content)delete e.index;t.stopReason=i?.signal?.aborted?`aborted`:`error`,t.errorMessage=e instanceof Error?e.message:JSON.stringify(e),a.push({type:`error`,reason:t.stopReason,error:t}),a.end()}})(),a},h=(t,a,o)=>{let s=o?.apiKey||e(t.provider);if(!s)throw Error(`No API key for provider: ${t.provider}`);let c=r(t,o,s),l=n(t)?o?.reasoning:i(o?.reasoning);return m(t,a,{...c,reasoningEffort:l})};function g(e,t,n,r){if(!n){if(!{}.OPENAI_API_KEY)throw Error(`OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.`);n={}.OPENAI_API_KEY}let i={...e.headers};if(e.provider===`github-copilot`){let e=a(t.messages),n=o({messages:t.messages,hasImages:e});Object.assign(i,n)}return r&&Object.assign(i,r),new s({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:i})}function _(e,t,n){let r=u(e,t,d),i=f(n?.cacheRetention),a={model:e.id,input:r,stream:!0,prompt_cache_key:i===`none`?void 0:n?.sessionId,prompt_cache_retention:p(e.baseUrl,i),store:!1};return n?.maxTokens&&(a.max_output_tokens=n?.maxTokens),n?.temperature!==void 0&&(a.temperature=n?.temperature),n?.serviceTier!==void 0&&(a.service_tier=n.serviceTier),t.tools&&(a.tools=c(t.tools)),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(a.reasoning={effort:n?.reasoningEffort||`medium`,summary:n?.reasoningSummary||`auto`},a.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&(a.reasoning={effort:`none`})),a}function v(e){switch(e){case`flex`:return .5;case`priority`:return 2;default:return 1}}function y(e,t){let n=v(t);n!==1&&(e.cost.input*=n,e.cost.output*=n,e.cost.cacheRead*=n,e.cost.cacheWrite*=n,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{m as streamOpenAIResponses,h as streamSimpleOpenAIResponses};
@@ -1,4 +1,4 @@
1
- import{i as e,s as t}from"./simple-options-BCaE9Yc6.js";import{t as n}from"./json-parse-JW3qhabb.js";import{t as r}from"./sanitize-unicode-DndIFJRs.js";import{t as i}from"./hash-Dit8ENAX.js";function a(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function o(e){if(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);if(t.v===1&&typeof t.id==`string`)return t.phase===`commentary`||t.phase===`final_answer`?{id:t.id,phase:t.phase}:{id:t.id}}catch{}return{id:e}}}function s(t,n,a,s){let c=[],l=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},u=e=>{let t=`fc_${i(e)}`;return t.length>64?t.slice(0,64):t},d=e(n.messages,t,(e,n,r)=>{if(!a.has(t.provider)||!e.includes(`|`))return l(e);let[i,o]=e.split(`|`),s=l(i),c=r.provider!==t.provider||r.api!==t.api?u(o):l(o);return c.startsWith(`fc_`)||(c=l(`fc_${c}`)),`${s}|${c}`});if((s?.includeSystemPrompt??!0)&&n.systemPrompt){let e=t.reasoning?`developer`:`system`;c.push({role:e,content:r(n.systemPrompt)})}let f=0;for(let e of d){if(e.role===`user`)if(typeof e.content==`string`)c.push({role:`user`,content:[{type:`input_text`,text:r(e.content)}]});else{let n=e.content.map(e=>e.type===`text`?{type:`input_text`,text:r(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`}),i=t.input.includes(`image`)?n:n.filter(e=>e.type!==`input_image`);if(i.length===0)continue;c.push({role:`user`,content:i})}else if(e.role===`assistant`){let n=[],a=e,s=a.model!==t.id&&a.provider===t.provider&&a.api===t.api;for(let t of e.content)if(t.type===`thinking`){if(t.thinkingSignature){let e=JSON.parse(t.thinkingSignature);n.push(e)}}else if(t.type===`text`){let e=t,a=o(e.textSignature),s=a?.id;s?s.length>64&&(s=`msg_${i(s)}`):s=`msg_${f}`,n.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:r(e.text),annotations:[]}],status:`completed`,id:s,phase:a?.phase})}else if(t.type===`toolCall`){let e=t,[r,i]=e.id.split(`|`),a=i;s&&a?.startsWith(`fc_`)&&(a=void 0),n.push({type:`function_call`,id:a,call_id:r,name:e.name,arguments:JSON.stringify(e.arguments)})}if(n.length===0)continue;c.push(...n)}else if(e.role===`toolResult`){let n=e.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
1
+ import{i as e,s as t}from"./simple-options-B20EpYQT.js";import{t as n}from"./json-parse-JW3qhabb.js";import{t as r}from"./sanitize-unicode-DndIFJRs.js";import{t as i}from"./hash-Dit8ENAX.js";function a(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function o(e){if(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);if(t.v===1&&typeof t.id==`string`)return t.phase===`commentary`||t.phase===`final_answer`?{id:t.id,phase:t.phase}:{id:t.id}}catch{}return{id:e}}}function s(t,n,a,s){let c=[],l=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},u=e=>{let t=`fc_${i(e)}`;return t.length>64?t.slice(0,64):t},d=e(n.messages,t,(e,n,r)=>{if(!a.has(t.provider)||!e.includes(`|`))return l(e);let[i,o]=e.split(`|`),s=l(i),c=r.provider!==t.provider||r.api!==t.api?u(o):l(o);return c.startsWith(`fc_`)||(c=l(`fc_${c}`)),`${s}|${c}`});if((s?.includeSystemPrompt??!0)&&n.systemPrompt){let e=t.reasoning?`developer`:`system`;c.push({role:e,content:r(n.systemPrompt)})}let f=0;for(let e of d){if(e.role===`user`)if(typeof e.content==`string`)c.push({role:`user`,content:[{type:`input_text`,text:r(e.content)}]});else{let n=e.content.map(e=>e.type===`text`?{type:`input_text`,text:r(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`}),i=t.input.includes(`image`)?n:n.filter(e=>e.type!==`input_image`);if(i.length===0)continue;c.push({role:`user`,content:i})}else if(e.role===`assistant`){let n=[],a=e,s=a.model!==t.id&&a.provider===t.provider&&a.api===t.api;for(let t of e.content)if(t.type===`thinking`){if(t.thinkingSignature){let e=JSON.parse(t.thinkingSignature);n.push(e)}}else if(t.type===`text`){let e=t,a=o(e.textSignature),s=a?.id;s?s.length>64&&(s=`msg_${i(s)}`):s=`msg_${f}`,n.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:r(e.text),annotations:[]}],status:`completed`,id:s,phase:a?.phase})}else if(t.type===`toolCall`){let e=t,[r,i]=e.id.split(`|`),a=i;s&&a?.startsWith(`fc_`)&&(a=void 0),n.push({type:`function_call`,id:a,call_id:r,name:e.name,arguments:JSON.stringify(e.arguments)})}if(n.length===0)continue;c.push(...n)}else if(e.role===`toolResult`){let n=e.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
2
2
  `),i=e.content.some(e=>e.type===`image`),a=n.length>0,[o]=e.toolCallId.split(`|`),s;if(i&&t.input.includes(`image`)){let t=[];a&&t.push({type:`input_text`,text:r(n)});for(let n of e.content)n.type===`image`&&t.push({type:`input_image`,detail:`auto`,image_url:`data:${n.mimeType};base64,${n.data}`});s=t}else s=r(a?n:`(see attached image)`);c.push({type:`function_call_output`,call_id:o,output:s})}f++}return c}function c(e,t){let n=t?.strict===void 0?!1:t.strict;return e.map(e=>({type:`function`,name:e.name,description:e.description,parameters:e.parameters,strict:n}))}async function l(e,r,i,o,s){let c=null,l=null,d=r.content,f=()=>d.length-1;for await(let d of e)if(d.type===`response.created`)r.responseId=d.response.id;else if(d.type===`response.output_item.added`){let e=d.item;e.type===`reasoning`?(c=e,l={type:`thinking`,thinking:``},r.content.push(l),i.push({type:`thinking_start`,contentIndex:f(),partial:r})):e.type===`message`?(c=e,l={type:`text`,text:``},r.content.push(l),i.push({type:`text_start`,contentIndex:f(),partial:r})):e.type===`function_call`&&(c=e,l={type:`toolCall`,id:`${e.call_id}|${e.id}`,name:e.name,arguments:{},partialJson:e.arguments||``},r.content.push(l),i.push({type:`toolcall_start`,contentIndex:f(),partial:r}))}else if(d.type===`response.reasoning_summary_part.added`)c&&c.type===`reasoning`&&(c.summary=c.summary||[],c.summary.push(d.part));else if(d.type===`response.reasoning_summary_text.delta`){if(c?.type===`reasoning`&&l?.type===`thinking`){c.summary=c.summary||[];let e=c.summary[c.summary.length-1];e&&(l.thinking+=d.delta,e.text+=d.delta,i.push({type:`thinking_delta`,contentIndex:f(),delta:d.delta,partial:r}))}}else if(d.type===`response.reasoning_summary_part.done`){if(c?.type===`reasoning`&&l?.type===`thinking`){c.summary=c.summary||[];let e=c.summary[c.summary.length-1];e&&(l.thinking+=`
3
3
 
4
4
  `,e.text+=`
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/anthropic-CQI2xHqU.js","assets/env-api-keys-DlVZ9FrG.js","assets/preload-helper-ca-nBW7U.js","assets/simple-options-BCaE9Yc6.js","assets/github-copilot-headers-4kWA0Xn_.js","assets/json-parse-JW3qhabb.js","assets/chunk-zsgVPwQN.js","assets/sanitize-unicode-DndIFJRs.js","assets/azure-openai-responses-DaJmUqmm.js","assets/openai-responses-shared-CtYmjEML.js","assets/hash-Dit8ENAX.js","assets/openai-_xz6ZovU.js","assets/google-9U6enC_j.js","assets/google-shared-D4t3JPKT.js","assets/google-gemini-cli-DhVIdec5.js","assets/google-vertex-GKT_bPso.js","assets/mistral-Dd93JIT9.js","assets/openai-codex-responses-D16mvXjR.js","assets/openai-completions-DUFQB18w.js","assets/openai-responses-Du7Q-IQJ.js","assets/magick-wasm-BR29mZjN.js"])))=>i.map(i=>d[i]);
2
- import{a as e,n as t,o as n,r,t as i}from"./chunk-zsgVPwQN.js";import{t as a}from"./logger-B-No_qN_.js";import{_ as o,d as s,g as c,l,t as u}from"./tray-follower-status-M8dOhnzY.js";import{t as d}from"./preload-helper-ca-nBW7U.js";import"./env-api-keys-DlVZ9FrG.js";import{a as f,c as p,i as m,l as h,n as g,o as _,r as v,s as y,t as b,u as x}from"./simple-options-BCaE9Yc6.js";import"./json-parse-JW3qhabb.js";var S=new Map;function C(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function w(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function T(e,t){S.set(e.api,{provider:{api:e.api,stream:C(e.api,e.stream),streamSimple:w(e.api,e.streamSimple)},sourceId:t})}function E(e){return S.get(e)?.provider}var D=e=>d(()=>import(e),[]),O,k,A,j,M,N,P,ee,F,I,te;function ne(e,t){(async()=>{for await(let n of t)e.push(n);e.end()})()}function re(e,t){return{role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}function L(e){return(t,n,r)=>{let i=new f;return e().then(e=>{ne(i,e.stream(t,n,r))}).catch(e=>{let n=re(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}}function R(e){return(t,n,r)=>{let i=new f;return e().then(e=>{ne(i,e.streamSimple(t,n,r))}).catch(e=>{let n=re(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}}function ie(){return O||=d(()=>import(`./anthropic-CQI2xHqU.js`).then(e=>{let t=e;return{stream:t.streamAnthropic,streamSimple:t.streamSimpleAnthropic}}),__vite__mapDeps([0,1,2,3,4,5,6,7])),O}function ae(){return k||=d(()=>import(`./azure-openai-responses-DaJmUqmm.js`).then(e=>{let t=e;return{stream:t.streamAzureOpenAIResponses,streamSimple:t.streamSimpleAzureOpenAIResponses}}),__vite__mapDeps([8,1,2,3,9,10,5,6,7,11])),k}function oe(){return A||=d(()=>import(`./google-9U6enC_j.js`).then(e=>{let t=e;return{stream:t.streamGoogle,streamSimple:t.streamSimpleGoogle}}),__vite__mapDeps([12,13,6,3,7,1,2])),A}function se(){return j||=d(()=>import(`./google-gemini-cli-DhVIdec5.js`).then(e=>{let t=e;return{stream:t.streamGoogleGeminiCli,streamSimple:t.streamSimpleGoogleGeminiCli}}),__vite__mapDeps([14,13,6,3,7])),j}function ce(){return M||=d(()=>import(`./google-vertex-GKT_bPso.js`).then(e=>{let t=e;return{stream:t.streamGoogleVertex,streamSimple:t.streamSimpleGoogleVertex}}),__vite__mapDeps([15,13,6,3,7])),M}function le(){return N||=d(()=>import(`./mistral-Dd93JIT9.js`).then(e=>{let t=e;return{stream:t.streamMistral,streamSimple:t.streamSimpleMistral}}),__vite__mapDeps([16,6,1,2,3,10,5,7])),N}function ue(){return P||=d(()=>import(`./openai-codex-responses-D16mvXjR.js`).then(e=>{let t=e;return{stream:t.streamOpenAICodexResponses,streamSimple:t.streamSimpleOpenAICodexResponses}}),__vite__mapDeps([17,2,1,3,9,10,5,6,7])),P}function de(){return ee||=d(()=>import(`./openai-completions-DUFQB18w.js`).then(e=>{let t=e;return{stream:t.streamOpenAICompletions,streamSimple:t.streamSimpleOpenAICompletions}}),__vite__mapDeps([18,1,2,3,4,5,6,7,11])),ee}function fe(){return F||=d(()=>import(`./openai-responses-Du7Q-IQJ.js`).then(e=>{let t=e;return{stream:t.streamOpenAIResponses,streamSimple:t.streamSimpleOpenAIResponses}}),__vite__mapDeps([19,1,2,3,4,9,10,5,6,7,11])),F}function pe(){return I?Promise.resolve(I):(te||=D(`./amazon-bedrock.js`).then(e=>{let t=e;return{stream:t.streamBedrock,streamSimple:t.streamSimpleBedrock}}),te)}var me=L(ie),he=R(ie),ge=L(ae),_e=R(ae),ve=L(oe),ye=R(oe),be=L(se),xe=R(se),Se=L(ce),Ce=R(ce),we=L(le),Te=R(le),Ee=L(ue),De=R(ue),Oe=L(de),ke=R(de),Ae=L(fe),je=R(fe),Me=L(pe),Ne=R(pe);function Pe(){T({api:`anthropic-messages`,stream:me,streamSimple:he}),T({api:`openai-completions`,stream:Oe,streamSimple:ke}),T({api:`mistral-conversations`,stream:we,streamSimple:Te}),T({api:`openai-responses`,stream:Ae,streamSimple:je}),T({api:`azure-openai-responses`,stream:ge,streamSimple:_e}),T({api:`openai-codex-responses`,stream:Ee,streamSimple:De}),T({api:`google-generative-ai`,stream:ve,streamSimple:ye}),T({api:`google-gemini-cli`,stream:be,streamSimple:xe}),T({api:`google-vertex`,stream:Se,streamSimple:Ce}),T({api:`bedrock-converse-stream`,stream:Me,streamSimple:Ne})}Pe();function Fe(e){let t=E(e);if(!t)throw Error(`No API provider registered for api: ${e}`);return t}function Ie(e,t,n){return Fe(e.api).streamSimple(e,t,n)}async function Le(e,t,n){return Ie(e,t,n).result()}var Re=[/prompt is too long/i,/input is too long for requested model/i,/exceeds the context window/i,/input token count.*exceeds the maximum/i,/maximum prompt length is \d+/i,/reduce the length of the messages/i,/maximum context length is \d+ tokens/i,/exceeds the limit of \d+/i,/exceeds the available context size/i,/greater than the context length/i,/context window exceeds limit/i,/exceeded model token limit/i,/too large for model with \d+ maximum context length/i,/model_context_window_exceeded/i,/context[_ ]length[_ ]exceeded/i,/too many tokens/i,/token limit exceeded/i];function ze(e,t){return!!(e.stopReason===`error`&&e.errorMessage&&(Re.some(t=>t.test(e.errorMessage))||/^4(00|13)\s*(status code)?\s*\(no body\)/i.test(e.errorMessage))||t&&e.stopReason===`stop`&&e.usage.input+e.usage.cacheRead>t)}var Be=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.regexpCode=e.getEsmExportName=e.getProperty=e.safeStringify=e.stringify=e.strConcat=e.addCodeArg=e.str=e._=e.nil=e._Code=e.Name=e.IDENTIFIER=e._CodeOrName=void 0;var t=class{};e._CodeOrName=t,e.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var n=class extends t{constructor(t){if(super(),!e.IDENTIFIER.test(t))throw Error(`CodeGen: name must be a valid identifier`);this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};e.Name=n;var r=class extends t{constructor(e){super(),this._items=typeof e==`string`?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===``||e===`""`}get str(){return this._str??=this._items.reduce((e,t)=>`${e}${t}`,``)}get names(){return this._names??=this._items.reduce((e,t)=>(t instanceof n&&(e[t.str]=(e[t.str]||0)+1),e),{})}};e._Code=r,e.nil=new r(``);function i(e,...t){let n=[e[0]],i=0;for(;i<t.length;)s(n,t[i]),n.push(e[++i]);return new r(n)}e._=i;var a=new r(`+`);function o(e,...t){let n=[p(e[0])],i=0;for(;i<t.length;)n.push(a),s(n,t[i]),n.push(a,p(e[++i]));return c(n),new r(n)}e.str=o;function s(e,t){t instanceof r?e.push(...t._items):t instanceof n?e.push(t):e.push(d(t))}e.addCodeArg=s;function c(e){let t=1;for(;t<e.length-1;){if(e[t]===a){let n=l(e[t-1],e[t+1]);if(n!==void 0){e.splice(t-1,3,n);continue}e[t++]=`+`}t++}}function l(e,t){if(t===`""`)return e;if(e===`""`)return t;if(typeof e==`string`)return t instanceof n||e[e.length-1]!==`"`?void 0:typeof t==`string`?t[0]===`"`?e.slice(0,-1)+t.slice(1):void 0:`${e.slice(0,-1)}${t}"`;if(typeof t==`string`&&t[0]===`"`&&!(e instanceof n))return`"${e}${t.slice(1)}`}function u(e,t){return t.emptyStr()?e:e.emptyStr()?t:o`${e}${t}`}e.strConcat=u;function d(e){return typeof e==`number`||typeof e==`boolean`||e===null?e:p(Array.isArray(e)?e.join(`,`):e)}function f(e){return new r(p(e))}e.stringify=f;function p(e){return JSON.stringify(e).replace(/\u2028/g,`\\u2028`).replace(/\u2029/g,`\\u2029`)}e.safeStringify=p;function m(t){return typeof t==`string`&&e.IDENTIFIER.test(t)?new r(`.${t}`):i`[${t}]`}e.getProperty=m;function h(t){if(typeof t==`string`&&e.IDENTIFIER.test(t))return new r(`${t}`);throw Error(`CodeGen: invalid export name: ${t}, use explicit $id name mapping`)}e.getEsmExportName=h;function g(e){return new r(e.toString())}e.regexpCode=g})),Ve=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.ValueScope=e.ValueScopeName=e.Scope=e.varKinds=e.UsedValueState=void 0;var t=Be(),n=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},r;(function(e){e[e.Started=0]=`Started`,e[e.Completed=1]=`Completed`})(r||(e.UsedValueState=r={})),e.varKinds={const:new t.Name(`const`),let:new t.Name(`let`),var:new t.Name(`var`)};var i=class{constructor({prefixes:e,parent:t}={}){this._names={},this._prefixes=e,this._parent=t}toName(e){return e instanceof t.Name?e:this.name(e)}name(e){return new t.Name(this._newName(e))}_newName(e){let t=this._names[e]||this._nameGroup(e);return`${e}${t.index++}`}_nameGroup(e){if((this._parent?._prefixes)?.has(e)||this._prefixes&&!this._prefixes.has(e))throw Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};e.Scope=i;var a=class extends t.Name{constructor(e,t){super(t),this.prefix=e}setValue(e,{property:n,itemIndex:r}){this.value=e,this.scopePath=(0,t._)`.${new t.Name(n)}[${r}]`}};e.ValueScopeName=a;var o=(0,t._)`\n`;e.ValueScope=class extends i{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?o:t.nil}}get(){return this._scope}name(e){return new a(e,this._newName(e))}value(e,t){if(t.ref===void 0)throw Error(`CodeGen: ref must be passed in value`);let n=this.toName(e),{prefix:r}=n,i=t.key??t.ref,a=this._values[r];if(a){let e=a.get(i);if(e)return e}else a=this._values[r]=new Map;a.set(i,n);let o=this._scope[r]||(this._scope[r]=[]),s=o.length;return o[s]=t.ref,n.setValue(t,{property:r,itemIndex:s}),n}getValue(e,t){let n=this._values[e];if(n)return n.get(t)}scopeRefs(e,n=this._values){return this._reduceValues(n,n=>{if(n.scopePath===void 0)throw Error(`CodeGen: name "${n}" has no value`);return(0,t._)`${e}${n.scopePath}`})}scopeCode(e=this._values,t,n){return this._reduceValues(e,e=>{if(e.value===void 0)throw Error(`CodeGen: name "${e}" has no value`);return e.value.code},t,n)}_reduceValues(i,a,o={},s){let c=t.nil;for(let l in i){let u=i[l];if(!u)continue;let d=o[l]=o[l]||new Map;u.forEach(i=>{if(d.has(i))return;d.set(i,r.Started);let o=a(i);if(o){let n=this.opts.es5?e.varKinds.var:e.varKinds.const;c=(0,t._)`${c}${n} ${i} = ${o};${this.opts._n}`}else if(o=s?.(i))c=(0,t._)`${c}${o}${this.opts._n}`;else throw new n(i);d.set(i,r.Completed)})}return c}}})),z=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.or=e.and=e.not=e.CodeGen=e.operators=e.varKinds=e.ValueScopeName=e.ValueScope=e.Scope=e.Name=e.regexpCode=e.stringify=e.getProperty=e.nil=e.strConcat=e.str=e._=void 0;var t=Be(),n=Ve(),r=Be();Object.defineProperty(e,`_`,{enumerable:!0,get:function(){return r._}}),Object.defineProperty(e,`str`,{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(e,`strConcat`,{enumerable:!0,get:function(){return r.strConcat}}),Object.defineProperty(e,`nil`,{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(e,`getProperty`,{enumerable:!0,get:function(){return r.getProperty}}),Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(e,`regexpCode`,{enumerable:!0,get:function(){return r.regexpCode}}),Object.defineProperty(e,`Name`,{enumerable:!0,get:function(){return r.Name}});var i=Ve();Object.defineProperty(e,`Scope`,{enumerable:!0,get:function(){return i.Scope}}),Object.defineProperty(e,`ValueScope`,{enumerable:!0,get:function(){return i.ValueScope}}),Object.defineProperty(e,`ValueScopeName`,{enumerable:!0,get:function(){return i.ValueScopeName}}),Object.defineProperty(e,`varKinds`,{enumerable:!0,get:function(){return i.varKinds}}),e.operators={GT:new t._Code(`>`),GTE:new t._Code(`>=`),LT:new t._Code(`<`),LTE:new t._Code(`<=`),EQ:new t._Code(`===`),NEQ:new t._Code(`!==`),NOT:new t._Code(`!`),OR:new t._Code(`||`),AND:new t._Code(`&&`),ADD:new t._Code(`+`)};var a=class{optimizeNodes(){return this}optimizeNames(e,t){return this}},o=class extends a{constructor(e,t,n){super(),this.varKind=e,this.name=t,this.rhs=n}render({es5:e,_n:t}){let r=e?n.varKinds.var:this.varKind,i=this.rhs===void 0?``:` = ${this.rhs}`;return`${r} ${this.name}${i};`+t}optimizeNames(e,t){if(e[this.name.str])return this.rhs&&=k(this.rhs,e,t),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}},s=class extends a{constructor(e,t,n){super(),this.lhs=e,this.rhs=t,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,n){if(!(this.lhs instanceof t.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=k(this.rhs,e,n),this}get names(){return O(this.lhs instanceof t.Name?{}:{...this.lhs.names},this.rhs)}},c=class extends s{constructor(e,t,n,r){super(e,n,r),this.op=t}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},l=class extends a{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},u=class extends a{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:``};`+e}},d=class extends a{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},f=class extends a{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,t){return this.code=k(this.code,e,t),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}},p=class extends a{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((t,n)=>t+n.render(e),``)}optimizeNodes(){let{nodes:e}=this,t=e.length;for(;t--;){let n=e[t].optimizeNodes();Array.isArray(n)?e.splice(t,1,...n):n?e[t]=n:e.splice(t,1)}return e.length>0?this:void 0}optimizeNames(e,t){let{nodes:n}=this,r=n.length;for(;r--;){let i=n[r];i.optimizeNames(e,t)||(A(e,i.names),n.splice(r,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,t)=>D(e,t.names),{})}},m=class extends p{render(e){return`{`+e._n+super.render(e)+`}`+e._n}},h=class extends p{},g=class extends m{};g.kind=`else`;var _=class e extends m{constructor(e,t){super(t),this.condition=e}render(e){let t=`if(${this.condition})`+super.render(e);return this.else&&(t+=`else `+this.else.render(e)),t}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let n=this.else;if(n){let e=n.optimizeNodes();n=this.else=Array.isArray(e)?new g(e):e}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e(j(t),n instanceof e?[n]:n.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(e,t){if(this.else=this.else?.optimizeNames(e,t),super.optimizeNames(e,t)||this.else)return this.condition=k(this.condition,e,t),this}get names(){let e=super.names;return O(e,this.condition),this.else&&D(e,this.else.names),e}};_.kind=`if`;var v=class extends m{};v.kind=`for`;var y=class extends v{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iteration=k(this.iteration,e,t),this}get names(){return D(super.names,this.iteration.names)}},b=class extends v{constructor(e,t,n,r){super(),this.varKind=e,this.name=t,this.from=n,this.to=r}render(e){let t=e.es5?n.varKinds.var:this.varKind,{name:r,from:i,to:a}=this;return`for(${t} ${r}=${i}; ${r}<${a}; ${r}++)`+super.render(e)}get names(){return O(O(super.names,this.from),this.to)}},x=class extends v{constructor(e,t,n,r){super(),this.loop=e,this.varKind=t,this.name=n,this.iterable=r}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iterable=k(this.iterable,e,t),this}get names(){return D(super.names,this.iterable.names)}},S=class extends m{constructor(e,t,n){super(),this.name=e,this.args=t,this.async=n}render(e){return`${this.async?`async `:``}function ${this.name}(${this.args})`+super.render(e)}};S.kind=`func`;var C=class extends p{render(e){return`return `+super.render(e)}};C.kind=`return`;var w=class extends m{render(e){let t=`try`+super.render(e);return this.catch&&(t+=this.catch.render(e)),this.finally&&(t+=this.finally.render(e)),t}optimizeNodes(){var e,t;return super.optimizeNodes(),(e=this.catch)==null||e.optimizeNodes(),(t=this.finally)==null||t.optimizeNodes(),this}optimizeNames(e,t){var n,r;return super.optimizeNames(e,t),(n=this.catch)==null||n.optimizeNames(e,t),(r=this.finally)==null||r.optimizeNames(e,t),this}get names(){let e=super.names;return this.catch&&D(e,this.catch.names),this.finally&&D(e,this.finally.names),e}},T=class extends m{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};T.kind=`catch`;var E=class extends m{render(e){return`finally`+super.render(e)}};E.kind=`finally`,e.CodeGen=class{constructor(e,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...t,_n:t.lines?`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/anthropic-DCgCE6e6.js","assets/env-api-keys-DlVZ9FrG.js","assets/preload-helper-ca-nBW7U.js","assets/simple-options-B20EpYQT.js","assets/github-copilot-headers-4kWA0Xn_.js","assets/json-parse-JW3qhabb.js","assets/chunk-zsgVPwQN.js","assets/sanitize-unicode-DndIFJRs.js","assets/azure-openai-responses-BAEcQljF.js","assets/openai-responses-shared-W0fLCCYv.js","assets/hash-Dit8ENAX.js","assets/openai-_xz6ZovU.js","assets/google-CgrbuRCR.js","assets/google-shared-DlIsJ2PK.js","assets/google-gemini-cli-B-nP3dy7.js","assets/google-vertex-D9Bq8AD3.js","assets/mistral-CdgB5bvq.js","assets/openai-codex-responses-YIrqL4vG.js","assets/openai-completions-DZQjCpMo.js","assets/openai-responses-CXKNHLDv.js","assets/magick-wasm-BR29mZjN.js"])))=>i.map(i=>d[i]);
2
+ import{a as e,n as t,o as n,r,t as i}from"./chunk-zsgVPwQN.js";import{t as a}from"./logger-B-No_qN_.js";import{_ as o,d as s,g as c,l,t as u}from"./tray-follower-status-M8dOhnzY.js";import{t as d}from"./preload-helper-ca-nBW7U.js";import"./env-api-keys-DlVZ9FrG.js";import{a as f,c as p,i as m,l as h,n as g,o as _,r as v,s as y,t as b,u as x}from"./simple-options-B20EpYQT.js";import"./json-parse-JW3qhabb.js";var S=new Map;function C(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function w(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function T(e,t){S.set(e.api,{provider:{api:e.api,stream:C(e.api,e.stream),streamSimple:w(e.api,e.streamSimple)},sourceId:t})}function E(e){return S.get(e)?.provider}var D=e=>d(()=>import(e),[]),O,k,A,j,M,N,P,ee,F,I,te;function ne(e,t){(async()=>{for await(let n of t)e.push(n);e.end()})()}function re(e,t){return{role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}function L(e){return(t,n,r)=>{let i=new f;return e().then(e=>{ne(i,e.stream(t,n,r))}).catch(e=>{let n=re(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}}function R(e){return(t,n,r)=>{let i=new f;return e().then(e=>{ne(i,e.streamSimple(t,n,r))}).catch(e=>{let n=re(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}}function ie(){return O||=d(()=>import(`./anthropic-DCgCE6e6.js`).then(e=>{let t=e;return{stream:t.streamAnthropic,streamSimple:t.streamSimpleAnthropic}}),__vite__mapDeps([0,1,2,3,4,5,6,7])),O}function ae(){return k||=d(()=>import(`./azure-openai-responses-BAEcQljF.js`).then(e=>{let t=e;return{stream:t.streamAzureOpenAIResponses,streamSimple:t.streamSimpleAzureOpenAIResponses}}),__vite__mapDeps([8,1,2,3,9,10,5,6,7,11])),k}function oe(){return A||=d(()=>import(`./google-CgrbuRCR.js`).then(e=>{let t=e;return{stream:t.streamGoogle,streamSimple:t.streamSimpleGoogle}}),__vite__mapDeps([12,13,6,3,7,1,2])),A}function se(){return j||=d(()=>import(`./google-gemini-cli-B-nP3dy7.js`).then(e=>{let t=e;return{stream:t.streamGoogleGeminiCli,streamSimple:t.streamSimpleGoogleGeminiCli}}),__vite__mapDeps([14,13,6,3,7])),j}function ce(){return M||=d(()=>import(`./google-vertex-D9Bq8AD3.js`).then(e=>{let t=e;return{stream:t.streamGoogleVertex,streamSimple:t.streamSimpleGoogleVertex}}),__vite__mapDeps([15,13,6,3,7])),M}function le(){return N||=d(()=>import(`./mistral-CdgB5bvq.js`).then(e=>{let t=e;return{stream:t.streamMistral,streamSimple:t.streamSimpleMistral}}),__vite__mapDeps([16,6,1,2,3,10,5,7])),N}function ue(){return P||=d(()=>import(`./openai-codex-responses-YIrqL4vG.js`).then(e=>{let t=e;return{stream:t.streamOpenAICodexResponses,streamSimple:t.streamSimpleOpenAICodexResponses}}),__vite__mapDeps([17,2,1,3,9,10,5,6,7])),P}function de(){return ee||=d(()=>import(`./openai-completions-DZQjCpMo.js`).then(e=>{let t=e;return{stream:t.streamOpenAICompletions,streamSimple:t.streamSimpleOpenAICompletions}}),__vite__mapDeps([18,1,2,3,4,5,6,7,11])),ee}function fe(){return F||=d(()=>import(`./openai-responses-CXKNHLDv.js`).then(e=>{let t=e;return{stream:t.streamOpenAIResponses,streamSimple:t.streamSimpleOpenAIResponses}}),__vite__mapDeps([19,1,2,3,4,9,10,5,6,7,11])),F}function pe(){return I?Promise.resolve(I):(te||=D(`./amazon-bedrock.js`).then(e=>{let t=e;return{stream:t.streamBedrock,streamSimple:t.streamSimpleBedrock}}),te)}var me=L(ie),he=R(ie),ge=L(ae),_e=R(ae),ve=L(oe),ye=R(oe),be=L(se),xe=R(se),Se=L(ce),Ce=R(ce),we=L(le),Te=R(le),Ee=L(ue),De=R(ue),Oe=L(de),ke=R(de),Ae=L(fe),je=R(fe),Me=L(pe),Ne=R(pe);function Pe(){T({api:`anthropic-messages`,stream:me,streamSimple:he}),T({api:`openai-completions`,stream:Oe,streamSimple:ke}),T({api:`mistral-conversations`,stream:we,streamSimple:Te}),T({api:`openai-responses`,stream:Ae,streamSimple:je}),T({api:`azure-openai-responses`,stream:ge,streamSimple:_e}),T({api:`openai-codex-responses`,stream:Ee,streamSimple:De}),T({api:`google-generative-ai`,stream:ve,streamSimple:ye}),T({api:`google-gemini-cli`,stream:be,streamSimple:xe}),T({api:`google-vertex`,stream:Se,streamSimple:Ce}),T({api:`bedrock-converse-stream`,stream:Me,streamSimple:Ne})}Pe();function Fe(e){let t=E(e);if(!t)throw Error(`No API provider registered for api: ${e}`);return t}function Ie(e,t,n){return Fe(e.api).streamSimple(e,t,n)}async function Le(e,t,n){return Ie(e,t,n).result()}var Re=[/prompt is too long/i,/input is too long for requested model/i,/exceeds the context window/i,/input token count.*exceeds the maximum/i,/maximum prompt length is \d+/i,/reduce the length of the messages/i,/maximum context length is \d+ tokens/i,/exceeds the limit of \d+/i,/exceeds the available context size/i,/greater than the context length/i,/context window exceeds limit/i,/exceeded model token limit/i,/too large for model with \d+ maximum context length/i,/model_context_window_exceeded/i,/context[_ ]length[_ ]exceeded/i,/too many tokens/i,/token limit exceeded/i];function ze(e,t){return!!(e.stopReason===`error`&&e.errorMessage&&(Re.some(t=>t.test(e.errorMessage))||/^4(00|13)\s*(status code)?\s*\(no body\)/i.test(e.errorMessage))||t&&e.stopReason===`stop`&&e.usage.input+e.usage.cacheRead>t)}var Be=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.regexpCode=e.getEsmExportName=e.getProperty=e.safeStringify=e.stringify=e.strConcat=e.addCodeArg=e.str=e._=e.nil=e._Code=e.Name=e.IDENTIFIER=e._CodeOrName=void 0;var t=class{};e._CodeOrName=t,e.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var n=class extends t{constructor(t){if(super(),!e.IDENTIFIER.test(t))throw Error(`CodeGen: name must be a valid identifier`);this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};e.Name=n;var r=class extends t{constructor(e){super(),this._items=typeof e==`string`?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===``||e===`""`}get str(){return this._str??=this._items.reduce((e,t)=>`${e}${t}`,``)}get names(){return this._names??=this._items.reduce((e,t)=>(t instanceof n&&(e[t.str]=(e[t.str]||0)+1),e),{})}};e._Code=r,e.nil=new r(``);function i(e,...t){let n=[e[0]],i=0;for(;i<t.length;)s(n,t[i]),n.push(e[++i]);return new r(n)}e._=i;var a=new r(`+`);function o(e,...t){let n=[p(e[0])],i=0;for(;i<t.length;)n.push(a),s(n,t[i]),n.push(a,p(e[++i]));return c(n),new r(n)}e.str=o;function s(e,t){t instanceof r?e.push(...t._items):t instanceof n?e.push(t):e.push(d(t))}e.addCodeArg=s;function c(e){let t=1;for(;t<e.length-1;){if(e[t]===a){let n=l(e[t-1],e[t+1]);if(n!==void 0){e.splice(t-1,3,n);continue}e[t++]=`+`}t++}}function l(e,t){if(t===`""`)return e;if(e===`""`)return t;if(typeof e==`string`)return t instanceof n||e[e.length-1]!==`"`?void 0:typeof t==`string`?t[0]===`"`?e.slice(0,-1)+t.slice(1):void 0:`${e.slice(0,-1)}${t}"`;if(typeof t==`string`&&t[0]===`"`&&!(e instanceof n))return`"${e}${t.slice(1)}`}function u(e,t){return t.emptyStr()?e:e.emptyStr()?t:o`${e}${t}`}e.strConcat=u;function d(e){return typeof e==`number`||typeof e==`boolean`||e===null?e:p(Array.isArray(e)?e.join(`,`):e)}function f(e){return new r(p(e))}e.stringify=f;function p(e){return JSON.stringify(e).replace(/\u2028/g,`\\u2028`).replace(/\u2029/g,`\\u2029`)}e.safeStringify=p;function m(t){return typeof t==`string`&&e.IDENTIFIER.test(t)?new r(`.${t}`):i`[${t}]`}e.getProperty=m;function h(t){if(typeof t==`string`&&e.IDENTIFIER.test(t))return new r(`${t}`);throw Error(`CodeGen: invalid export name: ${t}, use explicit $id name mapping`)}e.getEsmExportName=h;function g(e){return new r(e.toString())}e.regexpCode=g})),Ve=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.ValueScope=e.ValueScopeName=e.Scope=e.varKinds=e.UsedValueState=void 0;var t=Be(),n=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},r;(function(e){e[e.Started=0]=`Started`,e[e.Completed=1]=`Completed`})(r||(e.UsedValueState=r={})),e.varKinds={const:new t.Name(`const`),let:new t.Name(`let`),var:new t.Name(`var`)};var i=class{constructor({prefixes:e,parent:t}={}){this._names={},this._prefixes=e,this._parent=t}toName(e){return e instanceof t.Name?e:this.name(e)}name(e){return new t.Name(this._newName(e))}_newName(e){let t=this._names[e]||this._nameGroup(e);return`${e}${t.index++}`}_nameGroup(e){if((this._parent?._prefixes)?.has(e)||this._prefixes&&!this._prefixes.has(e))throw Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};e.Scope=i;var a=class extends t.Name{constructor(e,t){super(t),this.prefix=e}setValue(e,{property:n,itemIndex:r}){this.value=e,this.scopePath=(0,t._)`.${new t.Name(n)}[${r}]`}};e.ValueScopeName=a;var o=(0,t._)`\n`;e.ValueScope=class extends i{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?o:t.nil}}get(){return this._scope}name(e){return new a(e,this._newName(e))}value(e,t){if(t.ref===void 0)throw Error(`CodeGen: ref must be passed in value`);let n=this.toName(e),{prefix:r}=n,i=t.key??t.ref,a=this._values[r];if(a){let e=a.get(i);if(e)return e}else a=this._values[r]=new Map;a.set(i,n);let o=this._scope[r]||(this._scope[r]=[]),s=o.length;return o[s]=t.ref,n.setValue(t,{property:r,itemIndex:s}),n}getValue(e,t){let n=this._values[e];if(n)return n.get(t)}scopeRefs(e,n=this._values){return this._reduceValues(n,n=>{if(n.scopePath===void 0)throw Error(`CodeGen: name "${n}" has no value`);return(0,t._)`${e}${n.scopePath}`})}scopeCode(e=this._values,t,n){return this._reduceValues(e,e=>{if(e.value===void 0)throw Error(`CodeGen: name "${e}" has no value`);return e.value.code},t,n)}_reduceValues(i,a,o={},s){let c=t.nil;for(let l in i){let u=i[l];if(!u)continue;let d=o[l]=o[l]||new Map;u.forEach(i=>{if(d.has(i))return;d.set(i,r.Started);let o=a(i);if(o){let n=this.opts.es5?e.varKinds.var:e.varKinds.const;c=(0,t._)`${c}${n} ${i} = ${o};${this.opts._n}`}else if(o=s?.(i))c=(0,t._)`${c}${o}${this.opts._n}`;else throw new n(i);d.set(i,r.Completed)})}return c}}})),z=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.or=e.and=e.not=e.CodeGen=e.operators=e.varKinds=e.ValueScopeName=e.ValueScope=e.Scope=e.Name=e.regexpCode=e.stringify=e.getProperty=e.nil=e.strConcat=e.str=e._=void 0;var t=Be(),n=Ve(),r=Be();Object.defineProperty(e,`_`,{enumerable:!0,get:function(){return r._}}),Object.defineProperty(e,`str`,{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(e,`strConcat`,{enumerable:!0,get:function(){return r.strConcat}}),Object.defineProperty(e,`nil`,{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(e,`getProperty`,{enumerable:!0,get:function(){return r.getProperty}}),Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(e,`regexpCode`,{enumerable:!0,get:function(){return r.regexpCode}}),Object.defineProperty(e,`Name`,{enumerable:!0,get:function(){return r.Name}});var i=Ve();Object.defineProperty(e,`Scope`,{enumerable:!0,get:function(){return i.Scope}}),Object.defineProperty(e,`ValueScope`,{enumerable:!0,get:function(){return i.ValueScope}}),Object.defineProperty(e,`ValueScopeName`,{enumerable:!0,get:function(){return i.ValueScopeName}}),Object.defineProperty(e,`varKinds`,{enumerable:!0,get:function(){return i.varKinds}}),e.operators={GT:new t._Code(`>`),GTE:new t._Code(`>=`),LT:new t._Code(`<`),LTE:new t._Code(`<=`),EQ:new t._Code(`===`),NEQ:new t._Code(`!==`),NOT:new t._Code(`!`),OR:new t._Code(`||`),AND:new t._Code(`&&`),ADD:new t._Code(`+`)};var a=class{optimizeNodes(){return this}optimizeNames(e,t){return this}},o=class extends a{constructor(e,t,n){super(),this.varKind=e,this.name=t,this.rhs=n}render({es5:e,_n:t}){let r=e?n.varKinds.var:this.varKind,i=this.rhs===void 0?``:` = ${this.rhs}`;return`${r} ${this.name}${i};`+t}optimizeNames(e,t){if(e[this.name.str])return this.rhs&&=k(this.rhs,e,t),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}},s=class extends a{constructor(e,t,n){super(),this.lhs=e,this.rhs=t,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,n){if(!(this.lhs instanceof t.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=k(this.rhs,e,n),this}get names(){return O(this.lhs instanceof t.Name?{}:{...this.lhs.names},this.rhs)}},c=class extends s{constructor(e,t,n,r){super(e,n,r),this.op=t}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},l=class extends a{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},u=class extends a{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:``};`+e}},d=class extends a{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},f=class extends a{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,t){return this.code=k(this.code,e,t),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}},p=class extends a{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((t,n)=>t+n.render(e),``)}optimizeNodes(){let{nodes:e}=this,t=e.length;for(;t--;){let n=e[t].optimizeNodes();Array.isArray(n)?e.splice(t,1,...n):n?e[t]=n:e.splice(t,1)}return e.length>0?this:void 0}optimizeNames(e,t){let{nodes:n}=this,r=n.length;for(;r--;){let i=n[r];i.optimizeNames(e,t)||(A(e,i.names),n.splice(r,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,t)=>D(e,t.names),{})}},m=class extends p{render(e){return`{`+e._n+super.render(e)+`}`+e._n}},h=class extends p{},g=class extends m{};g.kind=`else`;var _=class e extends m{constructor(e,t){super(t),this.condition=e}render(e){let t=`if(${this.condition})`+super.render(e);return this.else&&(t+=`else `+this.else.render(e)),t}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let n=this.else;if(n){let e=n.optimizeNodes();n=this.else=Array.isArray(e)?new g(e):e}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e(j(t),n instanceof e?[n]:n.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(e,t){if(this.else=this.else?.optimizeNames(e,t),super.optimizeNames(e,t)||this.else)return this.condition=k(this.condition,e,t),this}get names(){let e=super.names;return O(e,this.condition),this.else&&D(e,this.else.names),e}};_.kind=`if`;var v=class extends m{};v.kind=`for`;var y=class extends v{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iteration=k(this.iteration,e,t),this}get names(){return D(super.names,this.iteration.names)}},b=class extends v{constructor(e,t,n,r){super(),this.varKind=e,this.name=t,this.from=n,this.to=r}render(e){let t=e.es5?n.varKinds.var:this.varKind,{name:r,from:i,to:a}=this;return`for(${t} ${r}=${i}; ${r}<${a}; ${r}++)`+super.render(e)}get names(){return O(O(super.names,this.from),this.to)}},x=class extends v{constructor(e,t,n,r){super(),this.loop=e,this.varKind=t,this.name=n,this.iterable=r}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iterable=k(this.iterable,e,t),this}get names(){return D(super.names,this.iterable.names)}},S=class extends m{constructor(e,t,n){super(),this.name=e,this.args=t,this.async=n}render(e){return`${this.async?`async `:``}function ${this.name}(${this.args})`+super.render(e)}};S.kind=`func`;var C=class extends p{render(e){return`return `+super.render(e)}};C.kind=`return`;var w=class extends m{render(e){let t=`try`+super.render(e);return this.catch&&(t+=this.catch.render(e)),this.finally&&(t+=this.finally.render(e)),t}optimizeNodes(){var e,t;return super.optimizeNodes(),(e=this.catch)==null||e.optimizeNodes(),(t=this.finally)==null||t.optimizeNodes(),this}optimizeNames(e,t){var n,r;return super.optimizeNames(e,t),(n=this.catch)==null||n.optimizeNames(e,t),(r=this.finally)==null||r.optimizeNames(e,t),this}get names(){let e=super.names;return this.catch&&D(e,this.catch.names),this.finally&&D(e,this.finally.names),e}},T=class extends m{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};T.kind=`catch`;var E=class extends m{render(e){return`finally`+super.render(e)}};E.kind=`finally`,e.CodeGen=class{constructor(e,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...t,_n:t.lines?`
3
3
  `:``},this._extScope=e,this._scope=new n.Scope({parent:e}),this._nodes=[new h]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){let n=this._extScope.value(e,t);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,n,r){let i=this._scope.toName(t);return n!==void 0&&r&&(this._constants[i.str]=n),this._leafNode(new o(e,i,n)),i}const(e,t,r){return this._def(n.varKinds.const,e,t,r)}let(e,t,r){return this._def(n.varKinds.let,e,t,r)}var(e,t,r){return this._def(n.varKinds.var,e,t,r)}assign(e,t,n){return this._leafNode(new s(e,t,n))}add(t,n){return this._leafNode(new c(t,e.operators.ADD,n))}code(e){return typeof e==`function`?e():e!==t.nil&&this._leafNode(new f(e)),this}object(...e){let n=[`{`];for(let[r,i]of e)n.length>1&&n.push(`,`),n.push(r),(r!==i||this.opts.es5)&&(n.push(`:`),(0,t.addCodeArg)(n,i));return n.push(`}`),new t._Code(n)}if(e,t,n){if(this._blockNode(new _(e)),t&&n)this.code(t).else().code(n).endIf();else if(t)this.code(t).endIf();else if(n)throw Error(`CodeGen: "else" body without "then" body`);return this}elseIf(e){return this._elseNode(new _(e))}else(){return this._elseNode(new g)}endIf(){return this._endBlockNode(_,g)}_for(e,t){return this._blockNode(e),t&&this.code(t).endFor(),this}for(e,t){return this._for(new y(e),t)}forRange(e,t,r,i,a=this.opts.es5?n.varKinds.var:n.varKinds.let){let o=this._scope.toName(e);return this._for(new b(a,o,t,r),()=>i(o))}forOf(e,r,i,a=n.varKinds.const){let o=this._scope.toName(e);if(this.opts.es5){let e=r instanceof t.Name?r:this.var(`_arr`,r);return this.forRange(`_i`,0,(0,t._)`${e}.length`,n=>{this.var(o,(0,t._)`${e}[${n}]`),i(o)})}return this._for(new x(`of`,a,o,r),()=>i(o))}forIn(e,r,i,a=this.opts.es5?n.varKinds.var:n.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,t._)`Object.keys(${r})`,i);let o=this._scope.toName(e);return this._for(new x(`in`,a,o,r),()=>i(o))}endFor(){return this._endBlockNode(v)}label(e){return this._leafNode(new l(e))}break(e){return this._leafNode(new u(e))}return(e){let t=new C;if(this._blockNode(t),this.code(e),t.nodes.length!==1)throw Error(`CodeGen: "return" should have one node`);return this._endBlockNode(C)}try(e,t,n){if(!t&&!n)throw Error(`CodeGen: "try" without "catch" and "finally"`);let r=new w;if(this._blockNode(r),this.code(e),t){let e=this.name(`e`);this._currNode=r.catch=new T(e),t(e)}return n&&(this._currNode=r.finally=new E,this.code(n)),this._endBlockNode(T,E)}throw(e){return this._leafNode(new d(e))}block(e,t){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(t),this}endBlock(e){let t=this._blockStarts.pop();if(t===void 0)throw Error(`CodeGen: not in self-balancing block`);let n=this._nodes.length-t;if(n<0||e!==void 0&&n!==e)throw Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=t,this}func(e,n=t.nil,r,i){return this._blockNode(new S(e,n,r)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(S)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,t){let n=this._currNode;if(n instanceof e||t&&n instanceof t)return this._nodes.pop(),this;throw Error(`CodeGen: not in block "${t?`${e.kind}/${t.kind}`:e.kind}"`)}_elseNode(e){let t=this._currNode;if(!(t instanceof _))throw Error(`CodeGen: "else" without "if"`);return this._currNode=t.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let t=this._nodes;t[t.length-1]=e}};function D(e,t){for(let n in t)e[n]=(e[n]||0)+(t[n]||0);return e}function O(e,n){return n instanceof t._CodeOrName?D(e,n.names):e}function k(e,n,r){if(e instanceof t.Name)return i(e);if(!a(e))return e;return new t._Code(e._items.reduce((e,n)=>(n instanceof t.Name&&(n=i(n)),n instanceof t._Code?e.push(...n._items):e.push(n),e),[]));function i(e){let t=r[e.str];return t===void 0||n[e.str]!==1?e:(delete n[e.str],t)}function a(e){return e instanceof t._Code&&e._items.some(e=>e instanceof t.Name&&n[e.str]===1&&r[e.str]!==void 0)}}function A(e,t){for(let n in t)e[n]=(e[n]||0)-(t[n]||0)}function j(e){return typeof e==`boolean`||typeof e==`number`||e===null?!e:(0,t._)`!${I(e)}`}e.not=j;var M=F(e.operators.AND);function N(...e){return e.reduce(M)}e.and=N;var P=F(e.operators.OR);function ee(...e){return e.reduce(P)}e.or=ee;function F(e){return(n,r)=>n===t.nil?r:r===t.nil?n:(0,t._)`${I(n)} ${e} ${I(r)}`}function I(e){return e instanceof t.Name?e:(0,t._)`(${e})`}})),B=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.checkStrictMode=e.getErrorPath=e.Type=e.useFunc=e.setEvaluated=e.evaluatedPropsToName=e.mergeEvaluated=e.eachItem=e.unescapeJsonPointer=e.escapeJsonPointer=e.escapeFragment=e.unescapeFragment=e.schemaRefOrVal=e.schemaHasRulesButRef=e.schemaHasRules=e.checkUnknownRules=e.alwaysValidSchema=e.toHash=void 0;var t=z(),n=Be();function r(e){let t={};for(let n of e)t[n]=!0;return t}e.toHash=r;function i(e,t){return typeof t==`boolean`?t:Object.keys(t).length===0?!0:(a(e,t),!o(t,e.self.RULES.all))}e.alwaysValidSchema=i;function a(e,t=e.schema){let{opts:n,self:r}=e;if(!n.strictSchema||typeof t==`boolean`)return;let i=r.RULES.keywords;for(let n in t)i[n]||x(e,`unknown keyword: "${n}"`)}e.checkUnknownRules=a;function o(e,t){if(typeof e==`boolean`)return!e;for(let n in e)if(t[n])return!0;return!1}e.schemaHasRules=o;function s(e,t){if(typeof e==`boolean`)return!e;for(let n in e)if(n!==`$ref`&&t.all[n])return!0;return!1}e.schemaHasRulesButRef=s;function c({topSchemaRef:e,schemaPath:n},r,i,a){if(!a){if(typeof r==`number`||typeof r==`boolean`)return r;if(typeof r==`string`)return(0,t._)`${r}`}return(0,t._)`${e}${n}${(0,t.getProperty)(i)}`}e.schemaRefOrVal=c;function l(e){return f(decodeURIComponent(e))}e.unescapeFragment=l;function u(e){return encodeURIComponent(d(e))}e.escapeFragment=u;function d(e){return typeof e==`number`?`${e}`:e.replace(/~/g,`~0`).replace(/\//g,`~1`)}e.escapeJsonPointer=d;function f(e){return e.replace(/~1/g,`/`).replace(/~0/g,`~`)}e.unescapeJsonPointer=f;function p(e,t){if(Array.isArray(e))for(let n of e)t(n);else t(e)}e.eachItem=p;function m({mergeNames:e,mergeToName:n,mergeValues:r,resultToName:i}){return(a,o,s,c)=>{let l=s===void 0?o:s instanceof t.Name?(o instanceof t.Name?e(a,o,s):n(a,o,s),s):o instanceof t.Name?(n(a,s,o),o):r(o,s);return c===t.Name&&!(l instanceof t.Name)?i(a,l):l}}e.mergeEvaluated={props:m({mergeNames:(e,n,r)=>e.if((0,t._)`${r} !== true && ${n} !== undefined`,()=>{e.if((0,t._)`${n} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,t._)`${r} || {}`).code((0,t._)`Object.assign(${r}, ${n})`))}),mergeToName:(e,n,r)=>e.if((0,t._)`${r} !== true`,()=>{n===!0?e.assign(r,!0):(e.assign(r,(0,t._)`${r} || {}`),g(e,r,n))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:h}),items:m({mergeNames:(e,n,r)=>e.if((0,t._)`${r} !== true && ${n} !== undefined`,()=>e.assign(r,(0,t._)`${n} === true ? true : ${r} > ${n} ? ${r} : ${n}`)),mergeToName:(e,n,r)=>e.if((0,t._)`${r} !== true`,()=>e.assign(r,n===!0?!0:(0,t._)`${r} > ${n} ? ${r} : ${n}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var(`items`,t)})};function h(e,n){if(n===!0)return e.var(`props`,!0);let r=e.var(`props`,(0,t._)`{}`);return n!==void 0&&g(e,r,n),r}e.evaluatedPropsToName=h;function g(e,n,r){Object.keys(r).forEach(r=>e.assign((0,t._)`${n}${(0,t.getProperty)(r)}`,!0))}e.setEvaluated=g;var _={};function v(e,t){return e.scopeValue(`func`,{ref:t,code:_[t.code]||(_[t.code]=new n._Code(t.code))})}e.useFunc=v;var y;(function(e){e[e.Num=0]=`Num`,e[e.Str=1]=`Str`})(y||(e.Type=y={}));function b(e,n,r){if(e instanceof t.Name){let i=n===y.Num;return r?i?(0,t._)`"[" + ${e} + "]"`:(0,t._)`"['" + ${e} + "']"`:i?(0,t._)`"/" + ${e}`:(0,t._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,t.getProperty)(e).toString():`/`+d(e)}e.getErrorPath=b;function x(e,t,n=e.opts.strictSchema){if(n){if(t=`strict mode: ${t}`,n===!0)throw Error(t);e.self.logger.warn(t)}}e.checkStrictMode=x})),V=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=z();e.default={data:new t.Name(`data`),valCxt:new t.Name(`valCxt`),instancePath:new t.Name(`instancePath`),parentData:new t.Name(`parentData`),parentDataProperty:new t.Name(`parentDataProperty`),rootData:new t.Name(`rootData`),dynamicAnchors:new t.Name(`dynamicAnchors`),vErrors:new t.Name(`vErrors`),errors:new t.Name(`errors`),this:new t.Name(`this`),self:new t.Name(`self`),scope:new t.Name(`scope`),json:new t.Name(`json`),jsonPos:new t.Name(`jsonPos`),jsonLen:new t.Name(`jsonLen`),jsonPart:new t.Name(`jsonPart`)}})),He=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.extendErrors=e.resetErrorsCount=e.reportExtraError=e.reportError=e.keyword$DataError=e.keywordError=void 0;var t=z(),n=B(),r=V();e.keywordError={message:({keyword:e})=>(0,t.str)`must pass "${e}" keyword validation`},e.keyword$DataError={message:({keyword:e,schemaType:n})=>n?(0,t.str)`"${e}" keyword must be ${n} ($data)`:(0,t.str)`"${e}" keyword is invalid ($data)`};function i(n,r=e.keywordError,i,a){let{it:o}=n,{gen:s,compositeRule:u,allErrors:f}=o,p=d(n,r,i);a??(u||f)?c(s,p):l(o,(0,t._)`[${p}]`)}e.reportError=i;function a(t,n=e.keywordError,i){let{it:a}=t,{gen:o,compositeRule:s,allErrors:u}=a;c(o,d(t,n,i)),s||u||l(a,r.default.vErrors)}e.reportExtraError=a;function o(e,n){e.assign(r.default.errors,n),e.if((0,t._)`${r.default.vErrors} !== null`,()=>e.if(n,()=>e.assign((0,t._)`${r.default.vErrors}.length`,n),()=>e.assign(r.default.vErrors,null)))}e.resetErrorsCount=o;function s({gen:e,keyword:n,schemaValue:i,data:a,errsCount:o,it:s}){if(o===void 0)throw Error(`ajv implementation error`);let c=e.name(`err`);e.forRange(`i`,o,r.default.errors,o=>{e.const(c,(0,t._)`${r.default.vErrors}[${o}]`),e.if((0,t._)`${c}.instancePath === undefined`,()=>e.assign((0,t._)`${c}.instancePath`,(0,t.strConcat)(r.default.instancePath,s.errorPath))),e.assign((0,t._)`${c}.schemaPath`,(0,t.str)`${s.errSchemaPath}/${n}`),s.opts.verbose&&(e.assign((0,t._)`${c}.schema`,i),e.assign((0,t._)`${c}.data`,a))})}e.extendErrors=s;function c(e,n){let i=e.const(`err`,n);e.if((0,t._)`${r.default.vErrors} === null`,()=>e.assign(r.default.vErrors,(0,t._)`[${i}]`),(0,t._)`${r.default.vErrors}.push(${i})`),e.code((0,t._)`${r.default.errors}++`)}function l(e,n){let{gen:r,validateName:i,schemaEnv:a}=e;a.$async?r.throw((0,t._)`new ${e.ValidationError}(${n})`):(r.assign((0,t._)`${i}.errors`,n),r.return(!1))}var u={keyword:new t.Name(`keyword`),schemaPath:new t.Name(`schemaPath`),params:new t.Name(`params`),propertyName:new t.Name(`propertyName`),message:new t.Name(`message`),schema:new t.Name(`schema`),parentSchema:new t.Name(`parentSchema`)};function d(e,n,r){let{createErrors:i}=e.it;return i===!1?(0,t._)`{}`:f(e,n,r)}function f(e,t,n={}){let{gen:r,it:i}=e,a=[p(i,n),m(e,n)];return h(e,t,a),r.object(...a)}function p({errorPath:e},{instancePath:i}){let a=i?(0,t.str)`${e}${(0,n.getErrorPath)(i,n.Type.Str)}`:e;return[r.default.instancePath,(0,t.strConcat)(r.default.instancePath,a)]}function m({keyword:e,it:{errSchemaPath:r}},{schemaPath:i,parentSchema:a}){let o=a?r:(0,t.str)`${r}/${e}`;return i&&(o=(0,t.str)`${o}${(0,n.getErrorPath)(i,n.Type.Str)}`),[u.schemaPath,o]}function h(e,{params:n,message:i},a){let{keyword:o,data:s,schemaValue:c,it:l}=e,{opts:d,propertyName:f,topSchemaRef:p,schemaPath:m}=l;a.push([u.keyword,o],[u.params,typeof n==`function`?n(e):n||(0,t._)`{}`]),d.messages&&a.push([u.message,typeof i==`function`?i(e):i]),d.verbose&&a.push([u.schema,c],[u.parentSchema,(0,t._)`${p}${m}`],[r.default.data,s]),f&&a.push([u.propertyName,f])}})),Ue=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.boolOrEmptySchema=e.topBoolOrEmptySchema=void 0;var t=He(),n=z(),r=V(),i={message:`boolean schema is false`};function a(e){let{gen:t,schema:i,validateName:a}=e;i===!1?s(e,!1):typeof i==`object`&&i.$async===!0?t.return(r.default.data):(t.assign((0,n._)`${a}.errors`,null),t.return(!0))}e.topBoolOrEmptySchema=a;function o(e,t){let{gen:n,schema:r}=e;r===!1?(n.var(t,!1),s(e)):n.var(t,!0)}e.boolOrEmptySchema=o;function s(e,n){let{gen:r,data:a}=e,o={gen:r,keyword:`false schema`,data:a,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,t.reportError)(o,i,void 0,n)}})),We=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.getRules=e.isJSONType=void 0;var t=new Set([`string`,`number`,`integer`,`boolean`,`null`,`object`,`array`]);function n(e){return typeof e==`string`&&t.has(e)}e.isJSONType=n;function r(){let e={number:{type:`number`,rules:[]},string:{type:`string`,rules:[]},array:{type:`array`,rules:[]},object:{type:`object`,rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}e.getRules=r})),Ge=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.shouldUseRule=e.shouldUseGroup=e.schemaHasRulesForType=void 0;function t({schema:e,self:t},r){let i=t.RULES.types[r];return i&&i!==!0&&n(e,i)}e.schemaHasRulesForType=t;function n(e,t){return t.rules.some(t=>r(e,t))}e.shouldUseGroup=n;function r(e,t){return e[t.keyword]!==void 0||t.definition.implements?.some(t=>e[t]!==void 0)}e.shouldUseRule=r})),Ke=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.reportTypeError=e.checkDataTypes=e.checkDataType=e.coerceAndCheckDataType=e.getJSONTypes=e.getSchemaTypes=e.DataType=void 0;var t=We(),n=Ge(),r=He(),i=z(),a=B(),o;(function(e){e[e.Correct=0]=`Correct`,e[e.Wrong=1]=`Wrong`})(o||(e.DataType=o={}));function s(e){let t=c(e.type);if(t.includes(`null`)){if(e.nullable===!1)throw Error(`type: null contradicts nullable: false`)}else{if(!t.length&&e.nullable!==void 0)throw Error(`"nullable" cannot be used without "type"`);e.nullable===!0&&t.push(`null`)}return t}e.getSchemaTypes=s;function c(e){let n=Array.isArray(e)?e:e?[e]:[];if(n.every(t.isJSONType))return n;throw Error(`type must be JSONType or JSONType[]: `+n.join(`,`))}e.getJSONTypes=c;function l(e,t){let{gen:r,data:i,opts:a}=e,s=d(t,a.coerceTypes),c=t.length>0&&!(s.length===0&&t.length===1&&(0,n.schemaHasRulesForType)(e,t[0]));if(c){let n=h(t,i,a.strictNumbers,o.Wrong);r.if(n,()=>{s.length?f(e,t,s):_(e)})}return c}e.coerceAndCheckDataType=l;var u=new Set([`string`,`number`,`integer`,`boolean`,`null`]);function d(e,t){return t?e.filter(e=>u.has(e)||t===`array`&&e===`array`):[]}function f(e,t,n){let{gen:r,data:a,opts:o}=e,s=r.let(`dataType`,(0,i._)`typeof ${a}`),c=r.let(`coerced`,(0,i._)`undefined`);o.coerceTypes===`array`&&r.if((0,i._)`${s} == 'object' && Array.isArray(${a}) && ${a}.length == 1`,()=>r.assign(a,(0,i._)`${a}[0]`).assign(s,(0,i._)`typeof ${a}`).if(h(t,a,o.strictNumbers),()=>r.assign(c,a))),r.if((0,i._)`${c} !== undefined`);for(let e of n)(u.has(e)||e===`array`&&o.coerceTypes===`array`)&&l(e);r.else(),_(e),r.endIf(),r.if((0,i._)`${c} !== undefined`,()=>{r.assign(a,c),p(e,c)});function l(e){switch(e){case`string`:r.elseIf((0,i._)`${s} == "number" || ${s} == "boolean"`).assign(c,(0,i._)`"" + ${a}`).elseIf((0,i._)`${a} === null`).assign(c,(0,i._)`""`);return;case`number`:r.elseIf((0,i._)`${s} == "boolean" || ${a} === null
4
4
  || (${s} == "string" && ${a} && ${a} == +${a})`).assign(c,(0,i._)`+${a}`);return;case`integer`:r.elseIf((0,i._)`${s} === "boolean" || ${a} === null
5
5
  || (${s} === "string" && ${a} && ${a} == +${a} && !(${a} % 1))`).assign(c,(0,i._)`+${a}`);return;case`boolean`:r.elseIf((0,i._)`${a} === "false" || ${a} === 0 || ${a} === null`).assign(c,!1).elseIf((0,i._)`${a} === "true" || ${a} === 1`).assign(c,!0);return;case`null`:r.elseIf((0,i._)`${a} === "" || ${a} === 0 || ${a} === false`),r.assign(c,null);return;case`array`:r.elseIf((0,i._)`${s} === "string" || ${s} === "number"
@@ -90,5 +90,5 @@ Use this EXACT format:
90
90
  ## Critical Context
91
91
  - [Preserve important context, add new if needed]
92
92
 
93
- Keep each section concise. Preserve exact file paths, function names, and error messages.`;async function mr(e,t,n,r,i,a,o){let s=Math.floor(.8*n),c=o?pr:fr;a&&(c=`${c}\n\nAdditional focus: ${a}`);let l=`<conversation>\n${sr(ir(e))}\n</conversation>\n\n`;o&&(l+=`<previous-summary>\n${o}\n</previous-summary>\n\n`),l+=c;let u=[{role:`user`,content:[{type:`text`,text:l}],timestamp:Date.now()}],d=t.reasoning?{maxTokens:s,signal:i,apiKey:r,reasoning:`high`}:{maxTokens:s,signal:i,apiKey:r},f=await Le(t,{systemPrompt:cr,messages:u},d);if(f.stopReason===`error`)throw Error(`Summarization failed: ${f.errorMessage||`Unknown error`}`);return f.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
93
+ Keep each section concise. Preserve exact file paths, function names, and error messages.`;async function mr(e,t,n,r,i,a,o,s){let c=Math.floor(.8*n),l=s?pr:fr;o&&(l=`${l}\n\nAdditional focus: ${o}`);let u=`<conversation>\n${sr(ir(e))}\n</conversation>\n\n`;s&&(u+=`<previous-summary>\n${s}\n</previous-summary>\n\n`),u+=l;let d=[{role:`user`,content:[{type:`text`,text:u}],timestamp:Date.now()}],f=t.reasoning?{maxTokens:c,signal:a,apiKey:r,headers:i,reasoning:`high`}:{maxTokens:c,signal:a,apiKey:r,headers:i},p=await Le(t,{systemPrompt:cr,messages:d},f);if(p.stopReason===`error`)throw Error(`Summarization failed: ${p.errorMessage||`Unknown error`}`);return p.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
94
94
  `)}var G=a(`context-compaction`),hr=2e5;function gr(e){let t=e.contextWindow??hr,n=e.reserveTokens??lr.reserveTokens,r=e.keepRecentTokens??lr.keepRecentTokens,i={enabled:!0,reserveTokens:n,keepRecentTokens:r};return async(a,o)=>{if(a.length===0)return a;let s=0;for(let e of a)s+=dr(e);if(!ur(s,t,i))return a;G.info(`Context compaction triggered`,{totalTokens:s,contextWindow:t,threshold:t-n,messageCount:a.length});let c=0,l=a.length;for(let e=a.length-1;e>=0;e--){let t=dr(a[e]);if(c+t>r&&l<a.length)break;c+=t,l=e}for(;l>0&&a[l].role===`toolResult`;)l--;if(l<=0||l>=a.length)return G.warn(`Cannot find valid cut point for compaction`),a;let u=a.slice(0,l),d=a.slice(l);G.info(`Compaction cut point`,{summarizing:u.length,keeping:d.length});let f=e.getApiKey();if(f)try{let t=await mr(u,e.model,n,f,o),r={role:`user`,content:[{type:`text`,text:`<context-summary>\n${t}\n</context-summary>`}]};return G.info(`LLM summarization successful`,{originalMessages:a.length,compactedMessages:1+d.length,summaryLength:t.length}),[r,...d]}catch(e){G.warn(`LLM summarization failed, falling back to naive drop`,{error:e instanceof Error?e.message:String(e)})}else G.warn(`No API key available for LLM summarization, falling back to naive drop`);return G.info(`Naive compaction applied`,{originalMessages:a.length,compactedMessages:1+d.length}),[{role:`user`,content:[{type:`text`,text:`[Earlier conversation messages were compacted to save context space]`}]},...d]}}var _r=`slicc-theme`,vr=new Set([`dark`,`light`,`system`]);function yr(){let e=localStorage.getItem(_r);return e&&vr.has(e)?e:`light`}function br(e){localStorage.setItem(_r,e),xr()}function xr(){let e=yr(),t=e===`light`;e===`system`&&(t=window.matchMedia?.(`(prefers-color-scheme: light)`).matches??!1),document.documentElement.classList.toggle(`theme-light`,t)}var Sr;function Cr(){xr(),Sr=window.matchMedia?.(`(prefers-color-scheme: light)`),Sr?.addEventListener?.(`change`,()=>{yr()===`system`&&xr()})}var wr={include:[`*`],exclude:[]},Tr=r({config:()=>Er}),Er={id:`azure-ai-foundry`,name:`Azure (Claude)`,description:`Claude models via Azure AI Foundry`,requiresApiKey:!0,apiKeyPlaceholder:`Azure API key`,apiKeyEnvVar:`AZURE_API_KEY`,requiresBaseUrl:!0,baseUrlPlaceholder:`https://your-resource.services.ai.azure.com/anthropic`,baseUrlDescription:`Azure AI Foundry endpoint — must end with /anthropic`},Dr=r({config:()=>Or,register:()=>Hr,streamBedrockCamp:()=>q,streamSimpleBedrockCamp:()=>Vr}),Or={id:`bedrock-camp`,name:`AWS Bedrock (CAMP)`,description:`Claude on AWS Bedrock via CAMP Bearer token`,requiresApiKey:!0,apiKeyPlaceholder:`ABSK...`,apiKeyEnvVar:`BEDROCK_CAMP_API_KEY`,requiresBaseUrl:!0,baseUrlPlaceholder:`https://bedrock-runtime.us-west-2.amazonaws.com`,baseUrlDescription:`Bedrock runtime endpoint from CAMP portal`},kr=typeof chrome<`u`&&!!chrome?.runtime?.id;function Ar(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return t.length>64?t.slice(0,64):t}function K(e){return e?e.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,`�`):``}function jr(e,t){let n=[],r=m(e.messages,t,Ar);for(let e=0;e<r.length;e++){let i=r[e];switch(i.role){case`user`:n.push({role:`user`,content:typeof i.content==`string`?[{text:K(i.content)}]:i.content.map(e=>{if(e.type===`text`)return{text:K(e.text)};if(e.type===`image`)return{image:{source:{bytes:e.data},format:Mr(e.mimeType)}};throw Error(`Unknown user content type: ${e.type}`)})});break;case`assistant`:{if(i.content.length===0)continue;let e=[];for(let n of i.content)switch(n.type){case`text`:if(n.text.trim().length===0)continue;e.push({text:K(n.text)});break;case`toolCall`:e.push({toolUse:{toolUseId:n.id,name:n.name,input:n.arguments}});break;case`thinking`:if(n.thinking.trim().length===0)continue;Nr(t)?e.push({reasoningContent:{reasoningText:{text:K(n.thinking),signature:n.thinkingSignature}}}):e.push({reasoningContent:{reasoningText:{text:K(n.thinking)}}});break}if(e.length===0)continue;n.push({role:`assistant`,content:e});break}case`toolResult`:{let t=[];t.push({toolResult:{toolUseId:i.toolCallId,content:i.content.map(e=>e.type===`image`?{image:{source:{bytes:e.data},format:Mr(e.mimeType)}}:{text:K(e.text??e.json??JSON.stringify(e))}),status:i.isError?`error`:`success`}});let a=e+1;for(;a<r.length&&r[a].role===`toolResult`;){let e=r[a];t.push({toolResult:{toolUseId:e.toolCallId,content:e.content.map(e=>e.type===`image`?{image:{source:{bytes:e.data},format:Mr(e.mimeType)}}:{text:K(e.text??e.json??JSON.stringify(e))}),status:e.isError?`error`:`success`}}),a++}e=a-1,n.push({role:`user`,content:t});break}}}return n}function Mr(e){switch(e){case`image/jpeg`:case`image/jpg`:return`jpeg`;case`image/png`:return`png`;case`image/gif`:return`gif`;case`image/webp`:return`webp`;default:return`png`}}function Nr(e){let t=e.id.toLowerCase();return t.includes(`anthropic.claude`)||t.includes(`anthropic/claude`)}function Pr(e){return e.includes(`opus-4-6`)||e.includes(`opus-4.6`)||e.includes(`sonnet-4-6`)||e.includes(`sonnet-4.6`)}function Fr(e,t){if(!e?.length||t===`none`)return;let n=e.map(e=>({toolSpec:{name:e.name,description:e.description,inputSchema:{json:e.parameters}}})),r;switch(t){case`auto`:r={auto:{}};break;case`any`:r={any:{}};break;default:t&&typeof t==`object`&&t.type===`tool`&&(r={tool:{name:t.name}})}return{tools:n,toolChoice:r}}function Ir(e,t){switch(e){case`minimal`:case`low`:return`low`;case`medium`:return`medium`;case`high`:return`high`;case`xhigh`:return t.includes(`opus-4-6`)||t.includes(`opus-4.6`)?`max`:`high`;default:return`high`}}function Lr(e,t){if(!(!t.reasoning||!e.reasoning)&&(e.id.includes(`anthropic.claude`)||e.id.includes(`anthropic/claude`)))return Pr(e.id)?{thinking:{type:`adaptive`},output_config:{effort:Ir(t.reasoning,e.id)}}:(()=>{let e={minimal:1024,low:2048,medium:8192,high:16384,xhigh:16384},n=t.reasoning===`xhigh`?`high`:t.reasoning;return{thinking:{type:`enabled`,budget_tokens:t.thinkingBudgets?.[n]??e[t.reasoning]}}})()}function Rr(e){if(e)return[{text:K(e)}]}function zr(e){switch(e){case`end_turn`:case`stop_sequence`:return`stop`;case`max_tokens`:case`model_context_window_exceeded`:return`length`;case`tool_use`:return`toolUse`;default:return`error`}}function Br(e,t,n,r){r.push({type:`start`,partial:n});let i=e.output?.message;if(i?.content)for(let e=0;e<i.content.length;e++){let t=i.content[e];if(t.text!==void 0){let e={type:`text`,text:t.text};n.content.push(e);let i=n.content.length-1;r.push({type:`text_start`,contentIndex:i,partial:n}),r.push({type:`text_delta`,contentIndex:i,delta:t.text,partial:n}),r.push({type:`text_end`,contentIndex:i,content:t.text,partial:n})}else if(t.toolUse){let e={type:`toolCall`,id:t.toolUse.toolUseId||``,name:t.toolUse.name||``,arguments:t.toolUse.input||{}};n.content.push(e);let i=n.content.length-1;r.push({type:`toolcall_start`,contentIndex:i,partial:n}),r.push({type:`toolcall_end`,contentIndex:i,toolCall:e,partial:n})}else if(t.reasoningContent?.reasoningText){let e={type:`thinking`,thinking:t.reasoningContent.reasoningText.text||``,thinkingSignature:t.reasoningContent.reasoningText.signature||``};n.content.push(e);let i=n.content.length-1;r.push({type:`thinking_start`,contentIndex:i,partial:n}),r.push({type:`thinking_delta`,contentIndex:i,delta:e.thinking,partial:n}),r.push({type:`thinking_end`,contentIndex:i,content:e.thinking,partial:n})}}e.usage&&(n.usage.input=e.usage.inputTokens||0,n.usage.output=e.usage.outputTokens||0,n.usage.cacheRead=e.usage.cacheReadInputTokens||0,n.usage.cacheWrite=e.usage.cacheWriteInputTokens||0,n.usage.totalTokens=e.usage.totalTokens||n.usage.input+n.usage.output,y(t,n.usage)),n.stopReason=zr(e.stopReason||`end_turn`)}var q=(e,t,n={})=>{let r=_();return(async()=>{let i={role:`assistant`,content:[],api:`bedrock-camp-converse`,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=n.apiKey;if(!a)throw Error(`API key is required for Bedrock CAMP`);let o=e.baseUrl;if(!o)throw Error(`Base URL is required for Bedrock CAMP`);let s={modelId:e.id,messages:jr(t,e),system:Rr(t.systemPrompt),inferenceConfig:{maxTokens:n.maxTokens,temperature:n.temperature},toolConfig:Fr(t.tools,n.toolChoice),additionalModelRequestFields:Lr(e,n)};s.system||delete s.system,s.toolConfig||delete s.toolConfig,s.additionalModelRequestFields||delete s.additionalModelRequestFields,n?.onPayload?.(s,e);let c=`${o.replace(/\/$/,``)}/model/${encodeURIComponent(e.id)}/converse`,l=kr?c:`/api/fetch-proxy`,u={"Content-Type":`application/json`,Authorization:`Bearer ${a}`};kr||(u[`X-Target-URL`]=c);let d=await fetch(l,{method:`POST`,headers:u,body:JSON.stringify(s),signal:n.signal});if(!d.ok){let e=await d.text();throw Error(`Bedrock CAMP API error (${d.status}): ${e}`)}if(Br(await d.json(),e,i,r),i.stopReason===`error`||i.stopReason===`aborted`)throw Error(`An unknown error occurred`);r.push({type:`done`,reason:i.stopReason,message:i}),r.end()}catch(e){for(let e of i.content)delete e.index,delete e.partialJson;i.stopReason=n.signal?.aborted?`aborted`:`error`,i.errorMessage=e instanceof Error?e.message:JSON.stringify(e),r.push({type:`error`,reason:i.stopReason,error:i}),r.end()}})(),r},Vr=(e,t,n)=>{let r=g(e,n,void 0);if(!n?.reasoning)return q(e,t,{...r,reasoning:void 0});if(e.id.includes(`anthropic.claude`)||e.id.includes(`anthropic/claude`)){if(Pr(e.id))return q(e,t,{...r,reasoning:n.reasoning,thinkingBudgets:n.thinkingBudgets});let i=b(r.maxTokens||0,e.maxTokens,n.reasoning,n.thinkingBudgets);return q(e,t,{...r,maxTokens:i.maxTokens,reasoning:n.reasoning,thinkingBudgets:{...n.thinkingBudgets||{},[v(n.reasoning)]:i.budgetTokens}})}return q(e,t,{...r,reasoning:n.reasoning,thinkingBudgets:n.thinkingBudgets})};function Hr(){T({api:`bedrock-camp-converse`,stream:q,streamSimple:Vr})}var Ur={proxyEndpoint:`https://adobe-llm-proxy.paolo-moz.workers.dev`,redirectUri:`https://www.sliccy.ai/auth/callback`,extensionRedirectUri:`https://akggccfpkleihhemkkikggopnifgelbk.chromiumapp.org/adobe`},Wr=r({config:()=>ri,getAdobeModels:()=>pi,getValidAccessToken:()=>ai,isTokenExpired:()=>oi,register:()=>mi}),J=Object.assign({"/packages/webapp/providers/adobe-config.json":Ur})[`/packages/webapp/providers/adobe-config.json`]??{clientId:``,proxyEndpoint:``,scopes:`openid,profile,email`};function Y(){let e=Hi(`adobe`);if(e)return e.replace(/\/$/,``);if(J.proxyEndpoint)return J.proxyEndpoint.replace(/\/$/,``);throw Error(`Adobe proxy endpoint not configured — set it in Settings or adobe-config.json`)}var Gr=new Map,Kr=new Map;async function qr(e){let t=Gr.get(e);if(t)return t;try{let t=await fetch(`${e}/v1/config`);if(t.ok){let n=await t.json();return Gr.set(e,n),n}console.warn(`[adobe] Proxy /v1/config returned ${t.status}, falling back to build-time config`)}catch(e){console.warn(`[adobe] Failed to fetch proxy config:`,e instanceof Error?e.message:String(e))}let n={};return Gr.set(e,n),n}function Jr(e){let t=e.clientId||J.clientId;if(!t)throw Error(`Could not determine IMS client ID — proxy /v1/config did not return one and adobe-config.json is empty`);return t}function Yr(e){return e.scopes||J.scopes}function Xr(e){return e.imsEnvironment||J.imsEnvironment||`prod`}var Zr={prod:`https://ims-na1.adobelogin.com`,stg1:`https://ims-na1-stg1.adobelogin.com`};function Qr(e){return Zr[e??J.imsEnvironment??`prod`]??Zr.prod}var $r=typeof chrome<`u`&&!!chrome?.runtime?.id;function ei(){return Q().find(e=>e.providerId===`adobe`)}async function ti(e,t){try{let n=await fetch(`${Qr(t)}/ims/userinfo/v2`,{headers:{Authorization:`Bearer ${e}`}});if(n.ok){let e=await n.json();return{name:e.displayName||e.name||e.email,avatar:e.picture||e.avatar_url}}console.warn(`[adobe] User profile fetch returned ${n.status}, account will have no display name`)}catch(e){console.warn(`[adobe] Failed to fetch user profile:`,e instanceof Error?e.message:String(e))}return{}}function ni(e){let t=e.indexOf(`#`);if(t<0)return null;let n=new URLSearchParams(e.slice(t+1)),r=n.get(`access_token`);return r?{accessToken:r,expiresIn:parseInt(n.get(`expires_in`)??`86400`,10)}:null}var ri={id:`adobe`,name:`Adobe`,description:`Claude via Adobe — login with your Adobe ID`,requiresApiKey:!1,requiresBaseUrl:!J.proxyEndpoint,baseUrlPlaceholder:`https://your-proxy.example.com`,baseUrlDescription:`Anthropic-compatible proxy endpoint`,isOAuth:!0,getModelIds:()=>{let e=e=>{let t={id:e.id,name:e.name??e.id},n=Kr.get(e.id);return n?.api&&(t.api=n.api),n?.context_window!==void 0&&(t.context_window=n.context_window),n?.max_tokens!==void 0&&(t.max_tokens=n.max_tokens),n?.reasoning!==void 0&&(t.reasoning=n.reasoning),n?.input&&(t.input=n.input),t};for(let t of fi.values())if(t.length){let n=t.map(t=>e({id:t.id,name:t.name??t.id}));try{localStorage.setItem(`slicc-adobe-models`,JSON.stringify(n))}catch{}return n}for(let t of Gr.values())if(t.models?.length)return t.models.map(e);try{let e=localStorage.getItem(`slicc-adobe-models`);if(e){let t=JSON.parse(e);if(t.length)return t}}catch{}return[{id:`claude-opus-4-6`,name:`Claude Opus 4.6`}]},onOAuthLogin:async(e,t)=>{let n=await qr(Y()),r=Jr(n),i=Yr(n),a=Xr(n),o=$r?J.extensionRedirectUri??`https://${chrome.runtime.id}.chromiumapp.org/`:J.redirectUri??`${window.location.origin}/auth/callback`,s=$r?void 0:btoa(JSON.stringify({port:parseInt(new URL(window.location.href).port||`5710`,10),path:`/auth/callback`,nonce:crypto.randomUUID()})),c=s?JSON.parse(atob(s)).nonce:null,l=new URLSearchParams({client_id:r,scope:i,response_type:`token`,redirect_uri:o});s&&l.set(`state`,s);let u=await e(`${Qr(a)}/ims/authorize/v2?${l}`);if(!u)return;if(c&&u)try{if(new URL(u).searchParams.get(`nonce`)!==c){console.error(`[adobe] OAuth nonce mismatch — possible CSRF`);return}}catch(e){console.warn(`[adobe] Nonce check skipped (URL parse failed):`,e instanceof Error?e.message:String(e))}let d=ni(u);if(!d){console.error(`[adobe] Could not extract token from redirect URL`);return}let f=await ti(d.accessToken,a);Bi({providerId:`adobe`,accessToken:d.accessToken,tokenExpiresAt:Date.now()+d.expiresIn*1e3,userName:f.name,userAvatar:f.avatar}),await pi().catch(e=>console.warn(`[adobe] Failed to fetch models after login:`,e instanceof Error?e.message:String(e))),t()},onOAuthLogout:async()=>{let e=ei();if(e?.accessToken)try{let t=Gr.values().next().value??{},n=t.clientId||J.clientId,r=Xr(t);if(n){let t=await fetch(`${Qr(r)}/ims/revoke`,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:new URLSearchParams({token:e.accessToken,token_type_hint:`access_token`,client_id:n})});t.ok||console.warn(`[adobe] Token revocation returned ${t.status}, token may still be valid server-side`)}}catch(e){console.warn(`[adobe] Failed to revoke token:`,e instanceof Error?e.message:String(e))}Bi({providerId:`adobe`,accessToken:``})}},ii=null;async function ai(){let e=ei();if(!e?.accessToken)throw Error(`Not logged in to Adobe — please log in first`);if((e.tokenExpiresAt??0)-Date.now()>6e4)return e.accessToken;console.log(`[adobe] Token expired or expiring soon, attempting silent renewal...`);try{let e=await si();if(e)return e}catch(e){console.warn(`[adobe] Silent renewal failed:`,e instanceof Error?e.message:String(e))}let t=ei();if((t?.tokenExpiresAt??0)-Date.now()>0&&t?.accessToken)return t.accessToken;throw Error(`Adobe session expired — please log in again`)}function oi(){let e=ei();return e?.tokenExpiresAt?Date.now()>e.tokenExpiresAt-6e4:!0}async function si(){return ii||(ii=(async()=>{try{let e=await qr(Y()),t=Jr(e),n=Yr(e),r=Xr(e),i=$r?J.extensionRedirectUri??`https://${chrome.runtime.id}.chromiumapp.org/`:J.redirectUri??`${window.location.origin}/auth/callback`,a=$r?void 0:btoa(JSON.stringify({port:parseInt(new URL(window.location.href).port||`5710`,10),path:`/auth/callback`,nonce:crypto.randomUUID()})),o=a?JSON.parse(atob(a)).nonce:null,s=new URLSearchParams({client_id:t,scope:n,response_type:`token`,redirect_uri:i,prompt:`none`});a&&s.set(`state`,a);let c=`${Qr(r)}/ims/authorize/v2?${s}`,{createOAuthLauncher:l}=await d(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-CKR4S63v.js`);return{createOAuthLauncher:e}},[]),u=await l()(c);if(!u)return null;if(o&&u)try{if(new URL(u).searchParams.get(`nonce`)!==o)return console.error(`[adobe] OAuth nonce mismatch — possible CSRF`),null}catch(e){console.warn(`[adobe] Nonce check skipped (URL parse failed):`,e instanceof Error?e.message:String(e))}let f=ni(u);if(!f)return null;let p=ei();return Bi({providerId:`adobe`,accessToken:f.accessToken,tokenExpiresAt:Date.now()+f.expiresIn*1e3,userName:p?.userName,userAvatar:p?.userAvatar}),console.log(`[adobe] Token renewed silently`),await pi().catch(e=>console.warn(`[adobe] Failed to refresh models after silent renewal:`,e instanceof Error?e.message:String(e))),f.accessToken}catch(e){return console.warn(`[adobe] Silent renewal error:`,e instanceof Error?e.message:String(e)),null}finally{ii=null}})(),ii)}function ci(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:`adobe-anthropic`,provider:`adobe`,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:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}var li=(e,t,n={})=>{let r=_();return(async()=>{try{let i=await ai();if(String(e.api).includes(`openai`)){let a=Oe({...e,baseUrl:`${Y()}/v1`,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1}},t,{...n,apiKey:i});for await(let e of a)r.push(e)}else{let a=me({...e,baseUrl:Y(),api:`anthropic-messages`},t,{...n,apiKey:i});for await(let e of a)r.push(e)}r.end()}catch(t){console.error(`[adobe] Stream error:`,t instanceof Error?t.message:String(t)),r.push(ci(e,t)),r.end()}})(),r},ui=(e,t,n)=>{let r=_();return(async()=>{try{let i=await ai();if(String(e.api).includes(`openai`)){let a=ke({...e,baseUrl:`${Y()}/v1`,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1}},t,{...n,apiKey:i});for await(let e of a)r.push(e)}else{let a=he({...e,baseUrl:Y(),api:`anthropic-messages`},t,{...n,apiKey:i});for await(let e of a)r.push(e)}r.end()}catch(t){console.error(`[adobe] Stream error:`,t instanceof Error?t.message:String(t)),r.push(ci(e,t)),r.end()}})(),r};async function di(){try{let e=await ai(),t=Y(),n=await fetch(`${t}/v1/models`,{headers:{Authorization:`Bearer ${e}`}});if(n.ok){let e=await n.json();if(e.data?.length){for(let t of e.data){let e={id:t.id,name:t.name};t.api!==void 0&&(e.api=t.api),t.context_window!==void 0&&(e.context_window=t.context_window),t.max_tokens!==void 0&&(e.max_tokens=t.max_tokens),t.reasoning!==void 0&&(e.reasoning=t.reasoning),t.input!==void 0&&(e.input=t.input),Kr.set(t.id,e)}let n=new Map;for(let e of x())try{for(let t of h(e))n.set(t.id,t)}catch{}return e.data.map(e=>{let r=n.get(e.id),i=`adobe-${e.api===`openai`?`openai`:`anthropic`}`;return r?{...r,provider:`adobe`,api:i}:{id:e.id,name:e.name??e.id,provider:`adobe`,api:i,baseUrl:t,contextWindow:2e5,maxTokens:16384,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},inputCost:0,outputCost:0,cacheReadCost:0,cacheWriteCost:0,reasoning:!0}})}}else console.warn(`[adobe] Proxy /v1/models returned ${n.status}, falling back to Anthropic models`)}catch(e){console.warn(`[adobe] Failed to fetch proxy models:`,e instanceof Error?e.message:String(e))}return h(`anthropic`).map(e=>({...e,provider:`adobe`,api:`adobe-anthropic`}))}var fi=new Map;async function pi(){let e=Y(),t=fi.get(e);if(t)return t;let n=await di();return fi.set(e,n),n}function mi(){T({api:`adobe-anthropic`,stream:li,streamSimple:ui}),T({api:`adobe-openai`,stream:li,streamSimple:ui})}var hi=Object.assign({"/packages/dev-tools/providers.build.json":wr})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function gi(e){let{include:t,exclude:n}=hi;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}var _i=Object.assign({"./built-in/azure-ai-foundry.ts":Tr,"./built-in/bedrock-camp.ts":Dr}),vi=Object.assign({"/packages/webapp/providers/adobe.ts":Wr}),yi=new Map;for(let[e,t]of Object.entries(_i))t.config&&gi(t.config.id)&&(yi.set(t.config.id,t.config),t.register?.());for(let[e,t]of Object.entries(vi))t.config&&(yi.set(t.config.id,t.config),t.register?.());function bi(e){return yi.get(e)}function xi(){return[...yi.keys()]}var Si=p,Ci=h;function wi(){return typeof chrome<`u`&&!!chrome?.runtime?.id}var Ti=`slicc_accounts`,X=`selected-model`,Ei=[`slicc_provider`,`slicc_api_key`,`slicc_base_url`,`anthropic_api_key`,`api_provider`,`azure_resource`,`bedrock_region`],Di=!1;function Oi(){if(!Di){Di=!0;for(let e of Ei)try{localStorage.removeItem(e)}catch{}}}function ki(){let e=x().filter(gi),t=xi();return[...new Set([...e,...t])]}function Z(e){return bi(e)||{id:e,name:e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `),description:`${e} provider`,requiresApiKey:!0,requiresBaseUrl:!1}}function Ai(e,t){t.context_window!==void 0&&(e.contextWindow=t.context_window),t.max_tokens!==void 0&&(e.maxTokens=t.max_tokens),t.reasoning!==void 0&&(e.reasoning=t.reasoning),t.input!==void 0&&(e.input=t.input)}function ji(e){try{if(e===`bedrock-camp`)return Ci(`amazon-bedrock`).map(e=>({...e,api:`bedrock-camp-converse`,provider:`bedrock-camp`}));let t=Z(e);if(t.getModelIds){let n;try{n=t.getModelIds()}catch(t){return Pi.error(`Provider getModelIds callback failed`,{providerId:e,error:t instanceof Error?t.message:String(t)}),[]}let r=new Map;for(let e of x())try{for(let t of Ci(e))r.set(t.id,t)}catch{}return n.map(n=>{let i=`${e}-${n.api===`openai`?`openai`:`anthropic`}`,a=r.get(n.id),o=a?{...a,api:i,provider:e}:{id:n.id,name:n.name??n.id,provider:e,api:i,baseUrl:``,contextWindow:2e5,maxTokens:16384,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},inputCost:0,outputCost:0,cacheReadCost:0,cacheWriteCost:0,reasoning:!0},s=t.modelOverrides?.[n.id];return s&&Ai(o,s),Ai(o,n),o})}if(t.isOAuth){let n=Ci(`anthropic`),r=`${e}-anthropic`;return n.map(n=>{let i={...n,api:r,provider:e},a=t.modelOverrides?.[n.id];return a&&Ai(i,a),i})}return Ci(e===`azure-ai-foundry`?`anthropic`:e)}catch(t){return Pi.error(`Failed to load models`,{providerId:e,error:t instanceof Error?t.message:String(t)}),[]}}function Mi(e){let t=Q().find(t=>t.providerId===e);if(!t?.accessToken)return null;let n=!!t.tokenExpiresAt&&Date.now()>t.tokenExpiresAt-6e4;return{token:t.accessToken,expiresAt:t.tokenExpiresAt,userName:t.userName,userAvatar:t.userAvatar,expired:n}}var Ni=Object.assign({})[`/packages/webapp/providers.json`]??[],Pi=a(`provider-settings`);function Fi(e=Ni){if(e.length===0||Q().length>0)return;let t=new Set(ki());for(let n of e)if(!(!n.providerId||!n.apiKey)){if(!t.has(n.providerId)){Pi.warn(`Unknown provider "${n.providerId}" in providers.json — skipping`);continue}Ri(n.providerId,n.apiKey,n.baseUrl)}let n=e.find(e=>e.providerId&&e.apiKey&&t.has(e.providerId));n?.model&&!localStorage.getItem(X)&&localStorage.setItem(X,`${n.providerId}:${n.model}`)}function Ii(){let e=Q();if(e.length===0)return[];let t=new Map;for(let n of e){if(t.has(n.providerId))continue;let e=ji(n.providerId);if(e.length===0)continue;let r=Z(n.providerId),i={providerId:n.providerId,providerName:r.name,models:e};t.set(n.providerId,i)}return[...t.values()]}function Q(){Oi();let e=localStorage.getItem(Ti);if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e&&typeof e.providerId==`string`&&typeof e.apiKey==`string`):[]}catch{return[]}}function Li(e){localStorage.setItem(Ti,JSON.stringify(e))}function Ri(e,t,n){let r=Q().filter(t=>t.providerId!==e),i={providerId:e,apiKey:t};n&&(i.baseUrl=n),r.push(i),Li(r)}function zi(e){Li(Q().filter(t=>t.providerId!==e))}function Bi(e){let t=Q().find(t=>t.providerId===e.providerId),n=Q().filter(t=>t.providerId!==e.providerId);n.push({providerId:e.providerId,apiKey:``,accessToken:e.accessToken,refreshToken:e.refreshToken,tokenExpiresAt:e.tokenExpiresAt,userName:e.userName,userAvatar:e.userAvatar,baseUrl:e.baseUrl??t?.baseUrl}),Li(n)}function Vi(e){let t=Q().find(t=>t.providerId===e);return t&&(t.accessToken||t.apiKey)||null}function Hi(e){return Q().find(t=>t.providerId===e)?.baseUrl??null}function Ui(){let e=localStorage.getItem(X)||``,t=e.indexOf(`:`);return t>=0?e.slice(t+1):e}function Wi(e){if(e.includes(`:`))localStorage.setItem(X,e);else{let t=$();localStorage.setItem(X,`${t}:${e}`)}}function Gi(){return localStorage.getItem(X)||``}function $(){let e=Gi(),t=e.indexOf(`:`);if(t>0)return e.slice(0,t);let n=Q();return n.length>0?n[0].providerId:`anthropic`}function Ki(){return Vi($())}function qi(){let e=Q(),t=$(),n=Ui();return e.map(e=>{let r={providerId:e.providerId,apiKey:e.apiKey};return e.baseUrl&&(r.baseUrl=e.baseUrl),e.providerId===t&&n&&(r.model=n),r})}function Ji(){let e=JSON.stringify(qi(),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 Yi(){localStorage.removeItem(Ti),localStorage.removeItem(X);for(let e of Ei)localStorage.removeItem(e)}function Xi(e){if(!e)return Zi();let t=$(),n=Hi(t);try{let r=Z(t),i=Si(r.isOAuth||t===`azure-ai-foundry`?`anthropic`:t===`bedrock-camp`?`amazon-bedrock`:t,e);if(!i?.id)throw Error(`Model ${e} not found`);let a=i;if(r.isOAuth){let n=ji(t).find(t=>t.id===e)?.api??`${t}-anthropic`;a={...a,api:n,provider:t}}else t===`bedrock-camp`&&(a={...a,api:`bedrock-camp-converse`,provider:`bedrock-camp`});return n&&(a={...a,baseUrl:n}),a}catch{return Zi()}}function Zi(){let e=$(),t=Ui(),n=Hi(e),r=ji(e),i=t||r[0]?.id||`claude-sonnet-4-0`;try{let t=Z(e),a=t.isOAuth||e===`azure-ai-foundry`?`anthropic`:e===`bedrock-camp`?`amazon-bedrock`:e,o=Si(a,i);if(!o?.id)throw Error(`Model ${i} not found in ${a} registry`);let s=o;if(t.isOAuth){let t=r.find(e=>e.id===i)?.api??`${e}-anthropic`;s={...s,api:t,provider:e}}else e===`bedrock-camp`&&(s={...s,api:`bedrock-camp-converse`,provider:`bedrock-camp`});return n&&(s={...s,baseUrl:n}),s}catch{let e=r.find(e=>e.id===i);return e?n?{...e,baseUrl:n}:e:Si(`anthropic`,`claude-sonnet-4-0`)}}function Qi(e){return e.length<=10?`****`:e.slice(0,4)+`...`+e.slice(-4)}function $i(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 ea={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`]};function ta(e){return new Promise(t=>{let n=localStorage.getItem(Ti)??``,r=document.createElement(`div`);r.className=`dialog-overlay`;let i=document.createElement(`div`);i.className=`dialog`,i.style.cssText=`max-width: 480px; width: 90vw; padding: 32px;`,Q().length>0?a():e?.preferTrayJoin?c():o(),r.appendChild(i),document.body.appendChild(r);function a(){i.innerHTML=``;let e=document.createElement(`div`);e.className=`dialog__title`,e.textContent=`Accounts`,i.appendChild(e);let s=Q(),d=`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;`;if(s.length===0){let e=document.createElement(`div`);e.className=`dialog__desc`,e.textContent=`No accounts configured.`,i.appendChild(e)}else{let e=document.createElement(`div`);e.style.cssText=`margin-bottom: 16px;`;for(let t of s){let n=Z(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 i=document.createElement(`div`);i.style.cssText=`flex: 1; min-width: 0;`;let s=document.createElement(`div`);s.style.cssText=`font-size: 14px; font-weight: 600; color: var(--s2-content-default);`,s.textContent=n.name,i.appendChild(s);let c=document.createElement(`div`);c.style.cssText=`font-size: 11px; color: var(--s2-content-disabled); font-family: monospace; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;`,t.userName?c.textContent=t.userName:t.accessToken?c.textContent=`Logged in`:c.textContent=Qi(t.apiKey),t.baseUrl&&(c.textContent+=` • `+t.baseUrl),i.appendChild(c),r.appendChild(i);let l=document.createElement(`div`);l.style.cssText=`display: flex; gap: 4px; margin-left: 12px; flex-shrink: 0;`;let u=document.createElement(`button`);u.style.cssText=d,u.setAttribute(`aria-label`,`Edit account`),u.appendChild($i(ea.pen)),u.addEventListener(`mouseenter`,()=>{u.style.color=`var(--s2-accent)`,u.style.borderColor=`var(--s2-accent)`}),u.addEventListener(`mouseleave`,()=>{u.style.color=`var(--s2-content-secondary)`,u.style.borderColor=`var(--s2-border-subtle)`}),u.addEventListener(`click`,()=>{o(t)}),l.appendChild(u);let f=document.createElement(`button`);f.style.cssText=d,f.setAttribute(`aria-label`,`Remove account`),f.appendChild($i(ea.trash)),f.addEventListener(`mouseenter`,()=>{f.style.color=`var(--s2-negative)`,f.style.borderColor=`var(--s2-negative)`}),f.addEventListener(`mouseleave`,()=>{f.style.color=`var(--s2-content-secondary)`,f.style.borderColor=`var(--s2-border-subtle)`}),f.addEventListener(`click`,()=>{zi(t.providerId),a()}),l.appendChild(f),r.appendChild(l),e.appendChild(r)}i.appendChild(e)}let f=document.createElement(`div`);f.style.cssText=`display: flex; gap: 8px;`;let p=document.createElement(`button`);p.className=`dialog__btn`,p.style.flex=`1`,p.textContent=`Add Account`,p.addEventListener(`click`,()=>o()),f.appendChild(p);let m=document.createElement(`button`);m.className=`dialog__btn dialog__btn--secondary`,m.style.flex=`1`,m.textContent=`Export`,m.addEventListener(`click`,()=>Ji()),f.appendChild(m),i.appendChild(f);let h=document.createElement(`hr`);h.style.cssText=`border: none; border-top: 1px solid var(--s2-border-subtle); margin: 16px 0;`,i.appendChild(h);let g=document.createElement(`div`);g.className=`dialog__desc`,g.style.cssText=`font-weight: 600; margin-bottom: 8px;`,g.textContent=`Tray`,i.appendChild(g);let _=u(),v=_.state!==`inactive`,y=l(window.localStorage);if(v||y){let e=document.createElement(`div`);e.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px;`,e.textContent=`Follower: ${v?_.state:`configured`}`,_.error&&(e.textContent+=` — ${_.error}`,e.style.color=`var(--slicc-cone)`),i.appendChild(e)}let b=document.createElement(`button`);b.className=`dialog__btn dialog__btn--secondary`,b.textContent=v||y?`Rejoin tray`:`Join a tray`,b.addEventListener(`click`,()=>c()),i.appendChild(b);let x=document.createElement(`hr`);x.style.cssText=`border: none; border-top: 1px solid var(--s2-border-subtle); margin: 16px 0;`,i.appendChild(x);let S=document.createElement(`div`);S.className=`dialog__desc`,S.style.cssText=`font-weight: 600; margin-bottom: 8px;`,S.textContent=`Theme`,i.appendChild(S);let C=document.createElement(`div`);C.setAttribute(`role`,`radiogroup`),C.setAttribute(`aria-label`,`Theme`),C.style.cssText=`display: flex; gap: 0; margin-bottom: 16px; border-radius: var(--s2-radius-default); overflow: hidden; border: 1px solid var(--s2-border-subtle);`;let w=[[`system`,`System`],[`light`,`Light`],[`dark`,`Dark`]],T=[];for(let[e,t]of w){let n=document.createElement(`button`);n.type=`button`,n.setAttribute(`role`,`radio`),n.setAttribute(`aria-checked`,String(e===yr())),n.textContent=t,n.dataset.theme=e,n.style.cssText=`flex: 1; padding: 8px 0; border: none; font-size: 13px; font-weight: 600; cursor: pointer; transition: background var(--s2-transition-default), color var(--s2-transition-default);`,T.push(n),C.appendChild(n)}function E(){let e=getComputedStyle(document.documentElement);for(let t of T){let n=t.dataset.theme===yr();t.setAttribute(`aria-checked`,String(n)),t.style.background=n?e.getPropertyValue(`--s2-accent`).trim():e.getPropertyValue(`--s2-bg-layer-2`).trim(),t.style.color=n?`#fff`:e.getPropertyValue(`--s2-content-secondary`).trim()}}E();for(let e of T)e.addEventListener(`click`,()=>{br(e.dataset.theme),E()});i.appendChild(C);let D=document.createElement(`button`);D.className=`dialog__btn dialog__btn--secondary`,D.style.marginTop=`8px`,D.textContent=`Close`,D.addEventListener(`click`,()=>{r.remove(),t((localStorage.getItem(Ti)??``)!==n)}),i.appendChild(D)}function o(e){i.innerHTML=``;let t=!!e,n=document.createElement(`div`);n.className=`dialog__title`,n.textContent=t?`Edit Account`:`Add Account`,i.appendChild(n);let r=document.createElement(`div`);r.className=`dialog__desc`,r.textContent=`Provider:`,i.appendChild(r);let o=document.createElement(`select`);if(o.className=`dialog__input`,o.style.marginBottom=`8px`,t){let t=Z(e.providerId),n=document.createElement(`option`);n.value=e.providerId,n.textContent=t.name,o.appendChild(n),o.disabled=!0,o.style.opacity=`0.7`}else{let e=ki(),t=new Set(Q().map(e=>e.providerId)),n=[...e].sort((e,t)=>{let n=Z(e).name,r=Z(t).name;return n.localeCompare(r)});for(let e of n){if(t.has(e))continue;let n=Z(e),r=document.createElement(`option`);r.value=e,r.textContent=n.name,o.appendChild(r)}}i.appendChild(o);let s=document.createElement(`div`);s.className=`dialog__desc`,s.style.cssText=`font-size: 12px; color: var(--s2-content-tertiary); margin-bottom: 16px; margin-top: -4px;`,i.appendChild(s);let l=document.createElement(`div`);l.style.cssText=`margin-bottom: 16px; display: none;`;let u=document.createElement(`button`);u.className=`dialog__btn`,u.textContent=`Login`,u.style.cssText=`width: 100%; margin-bottom: 8px;`,l.appendChild(u);let f=document.createElement(`div`);f.className=`dialog__desc`,f.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); text-align: center;`,l.appendChild(f),u.addEventListener(`click`,async()=>{let e=o.value;if(!e)return;let t=Z(e);if(!t.onOAuthLogin)return;let n=Q().some(t=>t.providerId===e),r=Hi(e);if(t.requiresBaseUrl&&!v.value.trim()&&!r){f.textContent=`Base URL is required.`,f.style.color=`var(--slicc-cone)`,v.focus();return}t.requiresBaseUrl&&v.value.trim()&&Ri(e,``,v.value.trim()),f.textContent=`Opening login window...`;try{let{createOAuthLauncher:e}=await d(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-CKR4S63v.js`);return{createOAuthLauncher:e}},[]),n=e();await t.onOAuthLogin(n,a)}catch(t){if(!n)try{zi(e)}catch{}Pi.error(`OAuth login failed`,{providerId:e,error:t instanceof Error?t.message:String(t)}),f.textContent=`Login failed: ${t instanceof Error?t.message:String(t)}`}}),t&&e.userName&&(f.textContent=`Logged in as ${e.userName}`,u.textContent=`Re-login`),i.appendChild(l);let p=document.createElement(`div`),m=document.createElement(`div`);m.className=`dialog__desc`,p.appendChild(m);let h=document.createElement(`input`);h.className=`dialog__input`,h.type=`password`,h.autocomplete=`off`,h.spellcheck=!1,t&&(h.value=e.apiKey),p.appendChild(h),i.appendChild(p);let g=document.createElement(`div`),_=document.createElement(`div`);_.className=`dialog__desc`,_.textContent=`Base URL:`,g.appendChild(_);let v=document.createElement(`input`);v.className=`dialog__input`,v.type=`text`,v.autocomplete=`off`,v.spellcheck=!1,t&&e.baseUrl&&(v.value=e.baseUrl),g.appendChild(v);let y=document.createElement(`div`);y.className=`dialog__desc`,y.style.cssText=`font-size: 11px; color: var(--s2-content-secondary); margin-top: -12px; margin-bottom: 16px;`,g.appendChild(y),i.appendChild(g);let b=document.createElement(`div`);b.style.cssText=`color: var(--slicc-cone); font-size: 12px; margin-bottom: 8px; display: none;`,i.appendChild(b);let x=document.createElement(`button`);x.className=`dialog__btn`,x.textContent=t?`Save`:`Add`;function S(){let e=o.value;if(!e)return;let t=Z(e);s.textContent=t.description,t.isOAuth?(l.style.display=``,p.style.display=`none`,g.style.display=t.requiresBaseUrl?``:`none`,t.requiresBaseUrl&&(v.placeholder=t.baseUrlPlaceholder||`https://...`,y.textContent=t.baseUrlDescription||``),u.textContent=`Login with ${t.name}`,x.style.display=`none`):(l.style.display=`none`,m.textContent=`API Key${t.apiKeyEnvVar?` (${t.apiKeyEnvVar})`:``}:`,h.placeholder=t.apiKeyPlaceholder||`API key`,p.style.display=t.requiresApiKey?``:`none`,v.placeholder=t.baseUrlPlaceholder||`https://...`,y.textContent=t.baseUrlDescription||``,g.style.display=t.requiresBaseUrl?``:`none`,x.style.display=``)}o.addEventListener(`change`,()=>{b.style.display=`none`,S()}),S();function C(){let e=o.value;if(!e)return;let t=Z(e);if(t.requiresApiKey&&h.value.trim().length<5){b.textContent=`API key is required (at least 5 characters).`,b.style.display=``,h.focus();return}if(t.requiresBaseUrl&&!v.value.trim()){b.textContent=`Base URL is required for this provider.`,b.style.display=``,v.focus();return}Ri(e,h.value.trim(),v.value.trim()||void 0),a()}x.addEventListener(`click`,C);let w=e=>{e.key===`Enter`&&C()};h.addEventListener(`keydown`,w),v.addEventListener(`keydown`,w),i.appendChild(x);let T=Q().length>0;if(!t&&!T){let e=document.createElement(`button`);e.className=`dialog__btn dialog__btn--secondary`,e.style.marginTop=`8px`,e.textContent=`Join a tray`,e.addEventListener(`click`,()=>{c()}),i.appendChild(e)}else if(T){let e=document.createElement(`button`);e.className=`dialog__btn dialog__btn--secondary`,e.style.marginTop=`8px`,e.textContent=`Back`,e.addEventListener(`click`,()=>{a()}),i.appendChild(e)}requestAnimationFrame(()=>{let e=o.value;if(!e)return;let t=Z(e);t.requiresApiKey?h.focus():t.requiresBaseUrl&&v.focus()})}function c(){i.innerHTML=``;let e=document.createElement(`div`);e.className=`dialog__title`,e.textContent=`Join a tray`,i.appendChild(e);let n=document.createElement(`div`);n.className=`dialog__desc`,n.style.marginBottom=`12px`,n.textContent=`Paste the tray join URL shared by the tray leader. It must include a /join/... capability.`,i.appendChild(n);let a=document.createElement(`div`);a.className=`dialog__desc`,a.textContent=`Tray URL:`,i.appendChild(a);let c=document.createElement(`input`);c.className=`dialog__input`,c.type=`text`,c.autocomplete=`off`,c.spellcheck=!1,c.placeholder=`https://tray.example.com/base/join/tray-123.capability-token`,c.style.marginBottom=`12px`,i.appendChild(c);let l=document.createElement(`div`);l.style.cssText=`color: var(--slicc-cone); font-size: 12px; margin-bottom: 8px; display: none;`,i.appendChild(l);let u=document.createElement(`div`);u.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px; display: none;`;let d=document.createElement(`button`);d.className=`dialog__btn`,d.textContent=`Join tray`,d.addEventListener(`click`,()=>{let e=s(window.localStorage,c.value);if(!e){l.textContent=`Enter a valid tray join URL with a /join/... capability.`,l.style.display=``,c.focus();return}wi()?chrome.runtime.sendMessage({source:`panel`,payload:{type:`refresh-tray-runtime`}}).catch(()=>{}):window.dispatchEvent(new CustomEvent(`slicc:tray-join`,{detail:{joinUrl:e.joinUrl}})),u.textContent=`Connecting to tray...`,u.style.display=``,u.style.color=`var(--s2-content-secondary)`,setTimeout(()=>{r.remove(),t(!1)},800)}),i.appendChild(d),i.appendChild(u);let f=document.createElement(`button`);f.className=`dialog__btn dialog__btn--secondary`,f.style.marginTop=`8px`,f.textContent=`Back`,f.addEventListener(`click`,()=>{o()}),i.appendChild(f),c.addEventListener(`input`,()=>{l.style.display=`none`}),c.addEventListener(`keydown`,e=>{e.key===`Enter`&&d.click()}),requestAnimationFrame(()=>c.focus())}})}export{In as A,bi as C,gr as D,Cr as E,Qn as O,ta as S,gi as T,zi as _,qi as a,Bi as b,Ki as c,Hi as d,Mi as f,$ as g,Ui as h,Ji as i,ze as j,Bn as k,Vi as l,ji as m,Fi as n,Q as o,Z as p,Yi as r,Ii as s,Ri as t,ki as u,Zi as v,xi as w,Wi as x,Xi as y};
@@ -0,0 +1 @@
1
+ import{f as e,g as t,o as n}from"./provider-settings-9fKSxjtX.js";export{n as getAccounts,e as getOAuthAccountInfo,t as getSelectedProvider};
@@ -0,0 +1 @@
1
+ import{C as e,w as t}from"./provider-settings-9fKSxjtX.js";export{e as getRegisteredProviderConfig,t as getRegisteredProviderIds};
@@ -0,0 +1 @@
1
+ import{i as e}from"./index-B3tZqynj.js";export{e as WasmShell};