sliccy 6.44.0 → 6.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/dist/ui/assets/{account-store-BfqIrMMe.js → account-store-CRFbzp_M.js} +1 -1
  2. package/dist/ui/assets/account-store-JKzb8Sg0.js +68 -0
  3. package/dist/ui/assets/{adobe-C6T_0i0A.js → adobe-B9ZW3OmH.js} +1 -1
  4. package/dist/ui/assets/adobe-BekeUzWx.js +2 -0
  5. package/dist/ui/assets/agent-message-to-chat-BuL6bt3T.js +1 -0
  6. package/dist/ui/assets/{anthropic-messages-CTRXVqwn.js → anthropic-messages-DzEs7DmW.js} +3 -3
  7. package/dist/ui/assets/{apply-layout-DPvksNi2.js → apply-layout-C35QSrto.js} +1 -1
  8. package/dist/ui/assets/{apps-3MvdDBMc.js → apps-BX9mThFC.js} +1 -1
  9. package/dist/ui/assets/azure-openai-CBdVFGTE.js +1 -0
  10. package/dist/ui/assets/{azure-openai-ChaObvN0.js → azure-openai-SlxuvWwz.js} +1 -1
  11. package/dist/ui/assets/azure-openai-responses-qqQXNCHy.js +1 -0
  12. package/dist/ui/assets/bedrock-camp-C8bCNVSq.js +2 -0
  13. package/dist/ui/assets/{cerebras-M2wuTTRu.js → cerebras-CQ8htbPm.js} +1 -1
  14. package/dist/ui/assets/cerebras-D-zMYfZw.js +1 -0
  15. package/dist/ui/assets/{connect-surface-C1kBb_wz.js → connect-surface-CBCjGePi.js} +1 -1
  16. package/dist/ui/assets/{fs-CwhZvLDc.js → fs-Iwv8A11X.js} +1 -1
  17. package/dist/ui/assets/{fs-CEdcSaaF.js → fs-My9oYK9V.js} +2 -2
  18. package/dist/ui/assets/{github-xXbjvj_q.js → github-BGJvNahB.js} +2 -2
  19. package/dist/ui/assets/{github-h8ItWdXm.js → github-BRJz_BRG.js} +1 -1
  20. package/dist/ui/assets/{github-copilot-DzYB2zAw.js → github-copilot-CXLszFV0.js} +1 -1
  21. package/dist/ui/assets/github-copilot-W9FPA2oz.js +2 -0
  22. package/dist/ui/assets/{github-install-DIeJprV5.js → github-install-CpjELCjF.js} +1 -1
  23. package/dist/ui/assets/{github-zip-DSYHJoT0.js → github-zip-DCO3SYeT.js} +1 -1
  24. package/dist/ui/assets/google-generative-ai-C9Is_VVN.js +1 -0
  25. package/dist/ui/assets/{google-shared-CjO3-4_Q.js → google-shared-Cde0njMr.js} +1 -1
  26. package/dist/ui/assets/google-vertex-DzrD0kHC.js +1 -0
  27. package/dist/ui/assets/{kernel-worker-BksrbsiK.js → kernel-worker-CHeR61gb.js} +28 -26
  28. package/dist/ui/assets/legacy-api-aliases-C2CCsk4u.js +1 -0
  29. package/dist/ui/assets/{local-llm-B1inFenw.js → local-llm-BTEAbG55.js} +1 -1
  30. package/dist/ui/assets/{local-llm-Bi8giqeq.js → local-llm-zuyFq1yY.js} +1 -1
  31. package/dist/ui/assets/{main-BgdEVXnN.js → main-CIdK-8q2.js} +3 -3
  32. package/dist/ui/assets/{mistral-conversations-DWRsBsfa.js → mistral-conversations-BKWQGrhA.js} +2 -2
  33. package/dist/ui/assets/{mount-DsBbQvRx.js → mount-D118RgNS.js} +2 -2
  34. package/dist/ui/assets/{mount-BhXjPSMe.js → mount-G60xpc5m.js} +1 -1
  35. package/dist/ui/assets/{mount-recovery-DapDhhBv.js → mount-recovery-DxAMbOH7.js} +1 -1
  36. package/dist/ui/assets/new-session-DOvoPnvN.js +2 -0
  37. package/dist/ui/assets/oauth-bootstrap-B-5DxE46.js +2 -0
  38. package/dist/ui/assets/openai-codex-BYCqlOzr.js +1 -0
  39. package/dist/ui/assets/{openai-codex-_wi2GlfO.js → openai-codex-fEkq0rOK.js} +1 -1
  40. package/dist/ui/assets/openai-codex-responses-CeLTmOkk.js +7 -0
  41. package/dist/ui/assets/openai-completions-q2lvopuz.js +5 -0
  42. package/dist/ui/assets/openai-responses-Cpj4YO2E.js +1 -0
  43. package/dist/ui/assets/{openai-responses-shared-BrIGUa2e.js → openai-responses-shared-iNFeCdoC.js} +5 -5
  44. package/dist/ui/assets/openrouter-BaNlFOit.js +1 -0
  45. package/dist/ui/assets/{openrouter-DF11pL27.js → openrouter-dkfzjnfE.js} +1 -1
  46. package/dist/ui/assets/{openrouter-oauth-DQLx11_A.js → openrouter-oauth-B_VTZCtg.js} +1 -1
  47. package/dist/ui/assets/{openrouter-oauth-6UZDhQTB.js → openrouter-oauth-ilxSOAsI.js} +1 -1
  48. package/dist/ui/assets/{panel-rpc-handlers-CDZ2M3GK.js → panel-rpc-handlers-CxPC8lN7.js} +2 -2
  49. package/dist/ui/assets/{provider-Bw_Z5wgp.js → provider-D4ep8obn.js} +1 -1
  50. package/dist/ui/assets/{provider-Cg9DqCH6.js → provider-Dowt-5Pu.js} +2 -2
  51. package/dist/ui/assets/{provider-settings-0ASsdEo7.js → provider-settings-r11tLc6D.js} +1 -1
  52. package/dist/ui/assets/{provider-settings-CqsZtmc2.js → provider-settings-rFd6HghC.js} +1 -1
  53. package/dist/ui/assets/provider-store-access-B2pVY_7k.js +1 -0
  54. package/dist/ui/assets/{provider-store-access-BJPtEdx_.js → provider-store-access-BW4cnH7Z.js} +2 -2
  55. package/dist/ui/assets/{providers-DTkQsdaJ.js → providers-CTyiPv1y.js} +1 -1
  56. package/dist/ui/assets/providers-Ccyqdqjq.js +2 -0
  57. package/dist/ui/assets/quick-llm-CYbzDDrI.js +1 -0
  58. package/dist/ui/assets/{recovery-screen-vCthBaZL.js → recovery-screen-CrpPSXGv.js} +1 -1
  59. package/dist/ui/assets/{redirect-uri-pK4MGnYj.js → redirect-uri-30skyme_.js} +1 -1
  60. package/dist/ui/assets/{session-freezer-CWeTl5Ug.js → session-freezer-CirGHXcZ.js} +18 -16
  61. package/dist/ui/assets/{setup-feature-flags-remote-DCnULnlG.js → setup-feature-flags-remote-BrG0-ady.js} +1 -1
  62. package/dist/ui/assets/{setup-standalone-prelude-CFakSgWH.js → setup-standalone-prelude-bEnI_8SZ.js} +1 -1
  63. package/dist/ui/assets/setup-sudo-iqz7iHXV.js +2 -0
  64. package/dist/ui/assets/{skills-BAv4QH3_.js → skills-2244iLGi.js} +1 -1
  65. package/dist/ui/assets/{store-VHFEG-KZ.js → store-Bz5ZENo8.js} +1 -1
  66. package/dist/ui/assets/{store-DmIA09wr.js → store-C376ALss.js} +1 -1
  67. package/dist/ui/assets/{sudo-DMWEEnXF.js → sudo-CjLF-Ny1.js} +1 -1
  68. package/dist/ui/assets/{models-BSkXF4T6.js → transform-messages-N_eMsP2M.js} +1 -1
  69. package/dist/ui/assets/{upgrade-detection-kOnlsa6m.js → upgrade-detection-D83LlA99.js} +1 -1
  70. package/dist/ui/assets/{wc-extension-Csg9tKxf.js → wc-extension-B7piDgcE.js} +2 -2
  71. package/dist/ui/assets/wc-follower-BqGvv-S8.js +17 -0
  72. package/dist/ui/assets/{wc-live-DiqRwfJl.js → wc-live-CW64yowp.js} +4 -4
  73. package/dist/ui/assets/wc-nav-OcuAXHTa.js +2 -0
  74. package/dist/ui/assets/{wc-onboarding-BSs6x2FR.js → wc-onboarding-DaDHdHyM.js} +2 -2
  75. package/dist/ui/assets/wc-placeholder-vYS25wNG.js +4 -0
  76. package/dist/ui/assets/{wc-settings-CzWoxwvc.js → wc-settings-CoAFfPqZ.js} +2 -2
  77. package/dist/ui/assets/wc-shell-Ca9V0bdE.js +117 -0
  78. package/dist/ui/assets/{wc-sprinkles-CCAwa0Z7.js → wc-sprinkles-D4ROfZk3.js} +2 -2
  79. package/dist/ui/assets/wc-tray-DxnAjYGJ.js +2 -0
  80. package/dist/ui/assets/xai-grok-CYMdxlFK.js +1 -0
  81. package/dist/ui/assets/{xai-grok-DgvHKcEu.js → xai-grok-CfSINzxj.js} +1 -1
  82. package/dist/ui/index.html +8 -11
  83. package/dist/ui/packages/webapp/index.html +8 -11
  84. package/package.json +1 -1
  85. package/dist/ui/assets/account-store-BkG4BDQC.js +0 -42
  86. package/dist/ui/assets/adobe-AHM3MRvp.js +0 -2
  87. package/dist/ui/assets/azure-openai-DauBJZ6w.js +0 -1
  88. package/dist/ui/assets/azure-openai-responses-DhklLm0Z.js +0 -1
  89. package/dist/ui/assets/bedrock-camp-DMGplF70.js +0 -1
  90. package/dist/ui/assets/cerebras-B1M_Nhi8.js +0 -1
  91. package/dist/ui/assets/compat-C0CyHyoL.js +0 -2
  92. package/dist/ui/assets/context-compaction-MXRS4Kb2.js +0 -27
  93. package/dist/ui/assets/github-copilot-q5qtLl1S.js +0 -2
  94. package/dist/ui/assets/google-generative-ai-DEcgNsJh.js +0 -1
  95. package/dist/ui/assets/google-vertex-CTrzlewG.js +0 -1
  96. package/dist/ui/assets/legacy-api-aliases-C0CAIWhd.js +0 -1
  97. package/dist/ui/assets/new-session-D0GziV3t.js +0 -2
  98. package/dist/ui/assets/oauth-bootstrap-exJhjKek.js +0 -2
  99. package/dist/ui/assets/openai-codex-B5d5fatr.js +0 -1
  100. package/dist/ui/assets/openai-codex-responses-BYAXyTDg.js +0 -7
  101. package/dist/ui/assets/openai-completions-DAIm60Lb.js +0 -5
  102. package/dist/ui/assets/openai-responses-01Q5Zv3q.js +0 -1
  103. package/dist/ui/assets/openrouter-PxN34b-T.js +0 -1
  104. package/dist/ui/assets/provider-store-access-Zeas5UVO.js +0 -1
  105. package/dist/ui/assets/providers-D2SzyuS_.js +0 -2
  106. package/dist/ui/assets/quick-llm-B1IKnoro.js +0 -1
  107. package/dist/ui/assets/setup-sudo-DLsSOUDP.js +0 -2
  108. package/dist/ui/assets/transform-messages-XkZ1QnTb.js +0 -1
  109. package/dist/ui/assets/wc-follower-C5ErFyaa.js +0 -17
  110. package/dist/ui/assets/wc-nav-_JOvFwfI.js +0 -2
  111. package/dist/ui/assets/wc-placeholder-UxILszwu.js +0 -4
  112. package/dist/ui/assets/wc-shell-FLfdSQyK.js +0 -117
  113. package/dist/ui/assets/wc-tray-DV5jBUwL.js +0 -2
  114. package/dist/ui/assets/xai-grok-BANdowXb.js +0 -1
@@ -1,27 +0,0 @@
1
- import{t as e}from"./compat-C0CyHyoL.js";import{t}from"./logger-DDBAeTLF.js";t(`context-compaction`);function n(e){let t=[];for(let n of e){let e=n;switch(e.role){case`user`:t.push(`<user>\n${r(e.content)}\n</user>`);break;case`assistant`:t.push(`<assistant>\n${r(e.content)}\n</assistant>`);break;case`toolResult`:{let n=e.toolName??`tool`;t.push(`<tool-result name="${n}">\n${r(e.content)}\n</tool-result>`);break}case`bashExecution`:t.push(`<bash>\n$ ${e.command??``}\n${e.output??``}\n</bash>`);break;case`branchSummary`:case`compactionSummary`:t.push(`<prior-summary>\n${e.summary??``}\n</prior-summary>`);break;default:t.push(`<${e.role}>\n${r(e.content)}\n</${e.role}>`)}}return t.join(`
2
-
3
- `)}function r(e){if(typeof e==`string`)return e;if(!Array.isArray(e))return``;let t=[];for(let n of e){let e=n;e.type===`text`&&e.text?t.push(e.text):e.type===`thinking`&&e.thinking?t.push(`[thinking] ${e.thinking}`):e.type===`toolCall`?t.push(`[tool-call ${e.name??`?`}] ${JSON.stringify(e.arguments??{})}`):e.type===`image`&&t.push(`[image]`)}return t.join(`
4
- `)}var i=`From the conversation above, extract durable memories worth persisting to a global memory file shared across future sessions.
5
-
6
- Focus on:
7
- - User preferences, working style, opinions stated explicitly.
8
- - Stable project facts (architecture decisions, conventions, constraints).
9
- - Validated approaches the user accepted ("yes, exactly", "perfect"), not just corrections.
10
- - External resources/links the user named.
11
-
12
- DO NOT include:
13
- - Ephemeral state (current task, in-progress work).
14
- - Information already obvious from the codebase (file paths, function names, framework conventions).
15
- - Generic restatements of what the conversation was about.
16
-
17
- If nothing in the conversation is worth persisting, return exactly the single line:
18
- NONE
19
-
20
- Otherwise, output ONLY a markdown bullet list (one bullet per memory), no headers, no preamble, no follow-up. Each bullet is one line. Be specific. Prefer one fact per bullet over multi-clause sentences.`;function a(e){return`You are a context compaction assistant. You are shown the prefix of a conversation between a user and an AI coding assistant, and asked to produce either a structured summary, durable memory bullets, or a short title — depending on the user's instruction.
21
-
22
- Do NOT continue the conversation. Do NOT answer questions inside the conversation. Output ONLY what the user asks for in the format specified.
23
-
24
- <conversation>
25
- ${e}
26
- </conversation>`}async function o(t,n,r,i,a,o,s){let c=await e(t,{systemPrompt:r,messages:[{role:`user`,content:[{type:`text`,text:i}],timestamp:Date.now()}]},{maxTokens:a,apiKey:n,headers:o,signal:s});if(c.stopReason===`error`)throw Error(`Compaction call failed: ${c.errorMessage||`Unknown error`}`);return c.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
27
- `).trim()}async function s(e){let t=a(n(e.messages));return o(e.model,e.apiKey,t,e.instruction,e.maxTokens,e.headers,e.signal)}var c=i,l=`Generate a short title (3 to 6 words) summarizing what this conversation was about. Output ONLY the title text — no quotes, no punctuation other than what belongs in the title, no preamble.`;export{l as n,s as r,c as t};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/clipboard-eqmn97SP.js","assets/rolldown-runtime-Dd_uD5pT.js"])))=>i.map(i=>d[i]);
2
- import{d as e,z as t}from"./account-store-BkG4BDQC.js";import{a as n}from"./diagnostics-DN_idNHx.js";import{t as r}from"./preload-helper-Czpn1I53.js";import{a as i,n as a,r as o}from"./compat-C0CyHyoL.js";import{a as s,c,i as l,r as u,s as d,t as f}from"./legacy-api-aliases-C0CAIWhd.js";import"./provider-settings-CqsZtmc2.js";var p=`github-copilot`,m=atob(`SXYxLmI1MDdhMDhjODdlY2ZlOTg=`),h=`https://github.com/login/device/code`,g=`https://github.com/login/oauth/access_token`,_=`https://api.github.com/copilot_internal/v2/token`,v={Accept:`application/json`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},y={Accept:`application/json`,"Content-Type":`application/x-www-form-urlencoded`},b=`https://github.com/login/device/success*`;function x(){return e().find(e=>e.providerId===p)}async function S(){let e=await fetch(h,{method:`POST`,headers:y,body:new URLSearchParams({client_id:m,scope:`read:user`})});if(!e.ok)throw Error(`GitHub device-code request failed: ${e.status} ${e.statusText} — ${await e.text().catch(()=>``)}`);let t=await e.json();if(typeof t.device_code!=`string`||typeof t.user_code!=`string`||typeof t.verification_uri!=`string`||typeof t.expires_in!=`number`||typeof t.interval!=`number`)throw Error(`GitHub device-code response had an unexpected shape`);return t}async function C(e,t){let n=Date.now()+e.expires_in*1e3,r=Math.max(1e3,Math.floor(e.interval*1e3)),i=1.2;for(;Date.now()<n;){if(t.aborted)throw Error(`Copilot login cancelled`);await w(Math.ceil(r*i),t);let n=await fetch(g,{method:`POST`,headers:y,body:new URLSearchParams({client_id:m,device_code:e.device_code,grant_type:`urn:ietf:params:oauth:grant-type:device_code`})});if(!n.ok)throw Error(`GitHub token poll failed: ${n.status} ${n.statusText} — ${await n.text().catch(()=>``)}`);let a=await n.json();if(typeof a.access_token==`string`&&a.access_token.length>0)return a.access_token;if(a.error!==`authorization_pending`){if(a.error===`slow_down`){r=typeof a.interval==`number`?a.interval*1e3:r+5e3,i=1.4;continue}if(a.error){let e=a.error_description?`: ${a.error_description}`:``;throw Error(`Device flow failed (${a.error})${e}`)}}}throw Error(`Copilot device flow timed out (device code expired)`)}function w(e,t){return new Promise((n,r)=>{if(t.aborted){r(Error(`Copilot login cancelled`));return}let i=setTimeout(n,e);t.addEventListener(`abort`,()=>{clearTimeout(i),r(Error(`Copilot login cancelled`))},{once:!0})})}function T(e){let t=e.match(/proxy-ep=([^;]+)/);return t?`https://${t[1].replace(/^proxy\./,`api.`)}`:null}async function E(e){let t=await fetch(_,{headers:{...v,Authorization:`Bearer ${e}`}});if(!t.ok){let e=await t.text().catch(()=>``);throw Error(`Copilot token exchange failed: ${t.status} ${t.statusText} — ${e.slice(0,300)}`)}let n=await t.json();if(typeof n.token!=`string`||typeof n.expires_at!=`number`)throw Error(`Copilot token exchange returned an unexpected payload`);if(n.chat_enabled===!1)throw Error(`GitHub Copilot Chat is disabled for this account (no chat features granted)`);return{copilotToken:n.token,expiresAtMs:n.expires_at*1e3-3e5,apiBaseUrl:T(n.token)??`https://api.individual.githubcopilot.com`,githubAccessToken:e}}var D=`github-copilot.models.v1`;function O(e){let t=e.supported_endpoints??[],n=(e.vendor??``).toLowerCase(),r=e.id;return n===`anthropic`&&t.includes(`/v1/messages`)?`anthropic-messages`:n===`openai`&&(/^gpt-5/i.test(r)||/codex/i.test(r)||/^o\d/i.test(r))?`openai-responses`:`openai-completions`}function k(e){if(!e||typeof e!=`object`)return[];let t=e.data;if(!Array.isArray(t))return[];let n=[];for(let e of t)e.capabilities?.type&&e.capabilities.type!==`chat`||e.model_picker_enabled!==!1&&e.id&&n.push({id:e.id,name:e.name??e.id,vendor:e.vendor??``,api:O(e),contextWindow:e.capabilities?.limits?.max_context_window_tokens??e.capabilities?.limits?.max_prompt_tokens??128e3,maxTokens:e.capabilities?.limits?.max_output_tokens??8192,supportsTools:e.capabilities?.supports?.tool_calls===!0,supportsStreaming:e.capabilities?.supports?.streaming!==!1,supportsVision:e.capabilities?.supports?.vision===!0,supportsReasoning:e.capabilities?.supports?.adaptive_thinking===!0||Array.isArray(e.capabilities?.supports?.reasoning_effort),policyState:e.policy?.state??`enabled`});return n}async function A(e){let t=await fetch(`${e.apiBaseUrl}/models`,{headers:{...v,Authorization:`Bearer ${e.copilotToken}`,Accept:`application/json`}});if(!t.ok)throw Error(`Copilot /models returned ${t.status} ${t.statusText}`);return k(await t.json())}function j(){if(typeof localStorage>`u`)return[];try{let e=localStorage.getItem(D);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function M(e){if(!(typeof localStorage>`u`))try{localStorage.setItem(D,JSON.stringify(e))}catch{}}function N(e){return j().find(t=>t.id===e)??null}async function P(e){let t;try{t=await A(e)}catch(e){console.warn(`[github-copilot] Catalog refresh failed; keeping previous cache.`,e instanceof Error?e.message:String(e));return}M(t),await Promise.all(t.filter(e=>e.policyState===`disabled`).map(async t=>{let n=`${e.apiBaseUrl}/models/${encodeURIComponent(t.id)}/policy`;try{let r=await fetch(n,{method:`POST`,headers:{...v,"Content-Type":`application/json`,Authorization:`Bearer ${e.copilotToken}`,"openai-intent":`chat-policy`,"x-interaction-type":`chat-policy`},body:JSON.stringify({state:`enabled`})});r.ok?t.policyState=`enabled`:r.status!==404&&r.status!==400&&console.warn(`[github-copilot] enable policy for ${t.id} returned ${r.status} ${r.statusText}`)}catch(e){console.warn(`[github-copilot] enable policy for ${t.id} failed:`,e instanceof Error?e.message:String(e))}})),M(t)}async function F(e,n){await t({providerId:p,accessToken:e.copilotToken,refreshToken:e.githubAccessToken,tokenExpiresAt:e.expiresAtMs,baseUrl:e.apiBaseUrl,userName:n})}async function I(){let e=x();if(!e?.accessToken||!e.refreshToken)throw Error(`Not logged in to GitHub Copilot — click "Login" in the provider settings`);let t=e.tokenExpiresAt??0;if(Date.now()<t-6e4)return e.accessToken;let n=await E(e.refreshToken);return await F(n,e.userName),n.copilotToken}var L=[`mini`,`nano`,`flash`,`haiku`,`lite`,`embedding`];function R(e){let t=[e.id,e.name??``].flatMap(e=>{let t=e.toLowerCase();return[t,t.replace(/[\s_.:]+/g,`-`)]});return!L.some(e=>t.some(t=>t.includes(e)))}function z(){if(!x()?.accessToken)return[];let e=j();if(e.length>0)return e.filter(e=>!e.policyState.startsWith(`unavailable:`)).filter(e=>R(e)).map(e=>({id:e.id,name:e.name,api:e.api===`anthropic-messages`?`anthropic`:`openai`,context_window:e.contextWindow,max_tokens:e.maxTokens,reasoning:e.supportsReasoning,input:e.supportsVision?[`text`,`image`]:[`text`]}));let t;try{t=o(`github-copilot`)}catch{return[]}return t.filter(e=>R({id:e.id,name:e.name})).map(e=>({id:e.id,name:e.name??e.id,api:e.api===`anthropic-messages`?`anthropic`:`openai`,context_window:e.contextWindow,max_tokens:e.maxTokens,reasoning:e.reasoning,input:e.input}))}function B(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:e.api,provider:p,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 V={"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`};function H(e){let t=x(),n=t?.baseUrl??`https://api.individual.githubcopilot.com`,r=N(e);if(r)return{api:r.api,baseUrl:n,headers:{...V}};try{let n=a(`github-copilot`,e);return{api:n.api,baseUrl:t?.baseUrl??n.baseUrl,headers:{...n.headers??{},...V}}}catch{return null}}function U(e,t){let n=j(),r=n.findIndex(t=>t.id===e);r<0||(n[r]={...n[r],policyState:`unavailable:${t}`},M(n))}function W(e,t){return`GitHub Copilot rejected "${e}" with model_not_supported. This usually means the model isn't included in your Copilot plan (Opus and other premium models require Copilot Pro / Pro+ / Business / Enterprise). Try Claude Sonnet 4.6 or another model that appears in the picker after a fresh login. Original error: ${t}`}function G(e){if(!e||typeof e!=`object`)return null;let t=e;if(t.type!==`error`)return null;if(t.error&&typeof t.error==`object`){let e=t.error.errorMessage;if(typeof e==`string`)return e}return typeof t.errorMessage==`string`?t.errorMessage:null}function K(e,t){return e===`anthropic-messages`?t?s:f:e===`openai-responses`?t?c:l:t?d:u}function q(e,t,n){let r=G(n);if(r&&/model_not_supported/i.test(r)){U(t.id,`model_not_supported`);let n=W(t.id,r);return console.error(`[github-copilot] Plan-gated model rejection:`,n),e.push(B(t,Error(n))),e.end(),!0}return e.push(n),!1}function J(e,t,n){let r=n instanceof Error?n.message:String(n),i=n;/model_not_supported/i.test(r)&&(U(t.id,`model_not_supported`),i=Error(W(t.id,r))),console.error(`[github-copilot] Stream error:`,i instanceof Error?i.message:String(i)),e.push(B(t,i)),e.end()}async function Y(e,t,n,r,i){try{let a=await I(),o=H(t.id);if(!o)throw Error(`GitHub Copilot does not recognize "${t.id}" — open the picker (the model list refreshes on login) and pick a current model.`);let s={...t,api:o.api,baseUrl:o.baseUrl,headers:o.headers,provider:`github-copilot`},c={...r,apiKey:a},l=K(o.api,i)(s,n,c);for await(let n of l)if(q(e,t,n))return;e.end()}catch(n){J(e,t,n)}}function X(e){return(t,r,i={})=>{let a=n();return Y(a,t,r,i,e),a}}var Z=X(!1),Q=X(!0),$=({userCode:e,verificationUrl:t})=>typeof document>`u`?(console.info(`[github-copilot] Device verification code: ${e} — open ${t} in a browser to authorize.`),Promise.resolve(`continue`)):new Promise(t=>{let n=document.createElement(`div`);n.setAttribute(`data-slicc-overlay`,`github-copilot-device`),n.style.cssText=[`position:fixed`,`top:24px`,`right:24px`,`z-index:2147483647`,`background:#0d1117`,`color:#e6edf3`,`border:1px solid #30363d`,`border-radius:10px`,`padding:16px 18px`,`box-shadow:0 8px 32px rgba(0,0,0,0.45)`,`font:13px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,`min-width:260px`,`max-width:340px`].join(`;`);let i=document.createElement(`div`);i.textContent=`GitHub Copilot — verification code`,i.style.cssText=`font-weight:600;margin-bottom:8px;color:#7ee787`;let a=document.createElement(`div`);a.textContent=e,a.style.cssText=[`font:600 22px ui-monospace, SFMono-Regular, Menlo, monospace`,`letter-spacing:2px`,`background:#161b22`,`border:1px solid #30363d`,`border-radius:6px`,`padding:10px 12px`,`text-align:center`,`margin-bottom:10px`,`user-select:all`,`cursor:text`].join(`;`);let o=document.createElement(`div`);o.style.cssText=`color:#8b949e;font-size:12px;line-height:1.5`,o.textContent=`Copy the code, then click Continue to open the GitHub authorization page in a new tab.`;let s=document.createElement(`div`);s.style.cssText=`display:flex;gap:8px;margin-top:12px;justify-content:flex-end`;let c=document.createElement(`button`);c.type=`button`,c.textContent=`Cancel`,c.style.cssText=[`background:transparent`,`color:#e6edf3`,`border:1px solid #30363d`,`border-radius:6px`,`padding:6px 12px`,`font:600 12px inherit`,`cursor:pointer`].join(`;`);let l=document.createElement(`button`);l.type=`button`,l.textContent=`Copy & Continue`,l.style.cssText=[`background:#238636`,`color:#fff`,`border:0`,`border-radius:6px`,`padding:6px 12px`,`font:600 12px inherit`,`cursor:pointer`].join(`;`);let u=()=>{try{n.remove()}catch{}};c.addEventListener(`click`,()=>{u(),t(`cancel`)}),l.addEventListener(`click`,()=>{(async()=>{try{let{copyTextToClipboard:t}=await r(async()=>{let{copyTextToClipboard:e}=await import(`./clipboard-eqmn97SP.js`).then(e=>e.t);return{copyTextToClipboard:e}},__vite__mapDeps([0,1]));await t(e)}catch{}u(),t(`continue`)})()}),s.appendChild(c),s.appendChild(l),n.appendChild(i),n.appendChild(a),n.appendChild(o),n.appendChild(s),document.body.appendChild(n)}),ee={id:p,name:`GitHub Copilot`,description:`Use your GitHub Copilot subscription to access Claude, GPT-5, Codex, Gemini, and Grok models. Sign in with the GitHub device-code flow.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`claude-sonnet-4.6`,oauthTokenDomains:[`*.githubcopilot.com`,`api.individual.githubcopilot.com`,`api.business.githubcopilot.com`,`api.enterprise.githubcopilot.com`],getModelIds:z,onOAuthLoginIntercepted:async(e,t,n)=>{let r=await S(),i=new URL(r.verification_uri);if(i.searchParams.set(`user_code`,r.user_code),await(n?.presentDeviceCode??$)({userCode:r.user_code,verificationUrl:i.toString(),expiresInSeconds:r.expires_in})===`cancel`)throw Error(`GitHub Copilot login cancelled`);let a=new AbortController,o=e({authorizeUrl:i.toString(),redirectUriPattern:b,onCapture:`close`,timeoutMs:r.expires_in*1e3}).catch(e=>(console.warn(`[github-copilot] Launcher failed:`,e instanceof Error?e.message:String(e)),null)),s;try{s=await C(r,a.signal)}catch(e){throw a.abort(),await o,e}await o;let c=await E(s),l;try{let e=await fetch(`https://api.github.com/user`,{headers:{Authorization:`Bearer ${s}`,Accept:`application/json`}});if(e.ok){let t=await e.json();l=t.name||t.login}}catch{}await F(c,l),await P(c),t()},onOAuthLogout:async()=>{await t({providerId:p,accessToken:``})},onSilentRenew:async()=>{let e=x();if(!e?.refreshToken)return null;try{let t=await E(e.refreshToken);return await F(t,e.userName),await P(t),t.copilotToken}catch(e){return console.warn(`[github-copilot] Silent renew failed:`,e instanceof Error?e.message:String(e)),null}}};function te(){i({api:`github-copilot-anthropic`,stream:Z,streamSimple:Q}),i({api:`github-copilot-openai`,stream:Z,streamSimple:Q})}export{ee as config,R as isCopilotConeCompatible,te as register};
@@ -1 +0,0 @@
1
- import{i as e}from"./diagnostics-DN_idNHx.js";import{n as t,t as n}from"./models-BSkXF4T6.js";import{i as r}from"./transform-messages-XkZ1QnTb.js";import{n as i}from"./headers-CbDaTl3c.js";import{t as a}from"./sanitize-unicode-DmIE6hZJ.js";import{n as o,t as s}from"./error-body-pkrba6pf.js";import{a as c,c as l,i as u,l as d,n as f,o as p,r as m,s as h,t as g}from"./google-shared-CjO3-4_Q.js";var _=0,v=(t,r,i)=>{let a=new e;return(async()=>{let e={role:`assistant`,content:[],api:`google-generative-ai`,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{if(i?.fetch&&i.fetch!==globalThis.fetch)throw Error(`Custom fetch is not supported by the Google Generative AI adapter`);let o=i?.apiKey;if(!o)throw Error(`No API key for provider: ${t.provider}`);let s=b(t,o,i?.headers),c=x(t,r,i),l=await i?.onPayload?.(c,t);l!==void 0&&(c=l);let d=await h(()=>s.models.generateContentStream(c),i);a.push({type:`start`,partial:e});let f=null,g=e.content,v=()=>g.length-1;for await(let r of d){e.responseId||=r.responseId;let i=r.candidates?.[0];if(i?.content?.parts)for(let t of i.content.parts){if(t.text!==void 0){let n=m(t);(!f||n&&f.type!==`thinking`||!n&&f.type!==`text`)&&(f&&(f.type===`text`?a.push({type:`text_end`,contentIndex:g.length-1,content:f.text,partial:e}):a.push({type:`thinking_end`,contentIndex:v(),content:f.thinking,partial:e})),n?(f={type:`thinking`,thinking:``,thinkingSignature:void 0},e.content.push(f),a.push({type:`thinking_start`,contentIndex:v(),partial:e})):(f={type:`text`,text:``},e.content.push(f),a.push({type:`text_start`,contentIndex:v(),partial:e}))),f.type===`thinking`?(f.thinking+=t.text,f.thinkingSignature=p(f.thinkingSignature,t.thoughtSignature),a.push({type:`thinking_delta`,contentIndex:v(),delta:t.text,partial:e})):(f.text+=t.text,f.textSignature=p(f.textSignature,t.thoughtSignature),a.push({type:`text_delta`,contentIndex:v(),delta:t.text,partial:e}))}if(t.functionCall){f&&=(f.type===`text`?a.push({type:`text_end`,contentIndex:v(),content:f.text,partial:e}):a.push({type:`thinking_end`,contentIndex:v(),content:f.thinking,partial:e}),null);let n=t.functionCall.id,r={type:`toolCall`,id:!n||e.content.some(e=>e.type===`toolCall`&&e.id===n)?`${t.functionCall.name}_${Date.now()}_${++_}`:n,name:t.functionCall.name||``,arguments:t.functionCall.args??{},...t.thoughtSignature&&{thoughtSignature:t.thoughtSignature}};e.content.push(r),a.push({type:`toolcall_start`,contentIndex:v(),partial:e}),a.push({type:`toolcall_delta`,contentIndex:v(),delta:JSON.stringify(r.arguments),partial:e}),a.push({type:`toolcall_end`,contentIndex:v(),toolCall:r,partial:e})}}i?.finishReason&&(e.rawStopReason=i.finishReason,e.stopReason=u(i.finishReason),e.content.some(e=>e.type===`toolCall`)&&(e.stopReason=`toolUse`)),r.usageMetadata&&(e.usage={input:(r.usageMetadata.promptTokenCount||0)-(r.usageMetadata.cachedContentTokenCount||0),output:(r.usageMetadata.candidatesTokenCount||0)+(r.usageMetadata.thoughtsTokenCount||0),cacheRead:r.usageMetadata.cachedContentTokenCount||0,cacheWrite:0,reasoning:r.usageMetadata.thoughtsTokenCount||0,totalTokens:r.usageMetadata.totalTokenCount||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},n(t,e.usage))}if(f&&(f.type===`text`?a.push({type:`text_end`,contentIndex:v(),content:f.text,partial:e}):a.push({type:`thinking_end`,contentIndex:v(),content:f.thinking,partial:e})),i?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`pending`)throw Error(`Google stream ended without a finish reason`);if(e.stopReason===`aborted`||e.stopReason===`error`){let t=e.rawStopReason?`Provider stopped with: ${e.rawStopReason}`:`An unknown error occurred`;throw Error(t)}a.push({type:`done`,reason:e.stopReason,message:e}),a.end()}catch(t){for(let t of e.content)`index`in t&&delete t.index;e.stopReason=i?.signal?.aborted?`aborted`:`error`,e.errorMessage=s(o(t)),a.push({type:`error`,reason:e.stopReason,error:e}),a.end()}})(),a},y=(e,n,i)=>{let a=i?.apiKey;if(!a)throw Error(`No API key for provider: ${e.provider}`);let o=r(e,n,i,a);if(!i?.reasoning)return v(e,n,{...o,thinking:{enabled:!1}});let s=t(e,i.reasoning),c=s===`off`?`high`:s,l=e;return C(l)||w(l)||S(l)?v(e,n,{...o,thinking:{enabled:!0,level:E(c,l)}}):v(e,n,{...o,thinking:{enabled:!0,budgetTokens:D(l,c,i.thinkingBudgets)}})};function b(e,t,n){let r={};e.baseUrl&&(r.baseUrl=e.baseUrl,r.apiVersion=``);let a=i({...e.headers,...n});return a&&(r.headers=a),new d({apiKey:t,httpOptions:Object.keys(r).length>0?r:void 0})}function x(e,t,n={}){let r=g(e,t),i={};n.temperature!==void 0&&(i.temperature=n.temperature),n.maxTokens!==void 0&&(i.maxOutputTokens=n.maxTokens);let o=t.tools?.length?c(t.tools,n.toolChoice,l(e.id)):void 0,s={...Object.keys(i).length>0&&i,...t.systemPrompt&&{systemInstruction:a(t.systemPrompt)},...t.tools&&t.tools.length>0&&{tools:f(t.tools)},...o!==void 0&&{toolConfig:{functionCallingConfig:{mode:o}}}};if(n.thinking?.enabled&&e.reasoning){let e={includeThoughts:!0};n.thinking.level===void 0?n.thinking.budgetTokens!==void 0&&(e.thinkingBudget=n.thinking.budgetTokens):e.thinkingLevel=n.thinking.level,s.thinkingConfig=e}else e.reasoning&&n.thinking&&!n.thinking.enabled&&(s.thinkingConfig=T(e));if(n.signal){if(n.signal.aborted)throw Error(`Request aborted`);s.abortSignal=n.signal}return{model:e.id,contents:r,config:s}}function S(e){return/gemma-?4/.test(e.id.toLowerCase())}function C(e){return/gemini-3(?:\.\d+)?-pro/.test(e.id.toLowerCase())}function w(e){let t=e.id.toLowerCase();return/gemini-3(?:\.\d+)?-flash/.test(t)||t===`gemini-flash-latest`||t===`gemini-flash-lite-latest`}function T(e){return C(e)?{thinkingLevel:`LOW`}:w(e)||S(e)?{thinkingLevel:`MINIMAL`}:{thinkingBudget:0}}function E(e,t){if(C(t))switch(e){case`minimal`:case`low`:return`LOW`;case`medium`:case`high`:return`HIGH`}if(S(t))switch(e){case`minimal`:case`low`:return`MINIMAL`;case`medium`:case`high`:return`HIGH`}switch(e){case`minimal`:return`MINIMAL`;case`low`:return`LOW`;case`medium`:return`MEDIUM`;case`high`:return`HIGH`}}function D(e,t,n){return n?.[t]===void 0?e.id.includes(`2.5-pro`)?{minimal:128,low:2048,medium:8192,high:32768}[t]:e.id.includes(`2.5-flash-lite`)?{minimal:512,low:2048,medium:8192,high:24576}[t]:e.id.includes(`2.5-flash`)?{minimal:128,low:2048,medium:8192,high:24576}[t]:-1:n[t]}export{v as stream,y as streamSimple};
@@ -1 +0,0 @@
1
- import{i as e}from"./diagnostics-DN_idNHx.js";import{n as t,t as n}from"./models-BSkXF4T6.js";import{t as r}from"./provider-env-CTOcDKrQ.js";import{i}from"./transform-messages-XkZ1QnTb.js";import{n as a}from"./headers-CbDaTl3c.js";import{t as o}from"./sanitize-unicode-DmIE6hZJ.js";import{n as s,t as c}from"./error-body-pkrba6pf.js";import{a as l,c as u,d,i as f,l as p,n as m,o as h,r as g,s as _,t as v,u as y}from"./google-shared-CjO3-4_Q.js";var b=`v1`,x=`gcp-vertex-credentials`,S={THINKING_LEVEL_UNSPECIFIED:d.THINKING_LEVEL_UNSPECIFIED,MINIMAL:d.MINIMAL,LOW:d.LOW,MEDIUM:d.MEDIUM,HIGH:d.HIGH},C=0,w=(t,r,i)=>{let a=new e;return(async()=>{let e={role:`assistant`,content:[],api:`google-vertex`,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{if(i?.fetch&&i.fetch!==globalThis.fetch)throw Error(`Custom fetch is not supported by the Google Vertex adapter`);let o=M(i),s=o?D(t,o,i?.headers):E(t,P(i),F(i),i?.headers,i?.env),c=I(t,r,i),l=await i?.onPayload?.(c,t);l!==void 0&&(c=l);let u=await _(()=>s.models.generateContentStream(c),i);a.push({type:`start`,partial:e});let d=null,p=e.content,m=()=>p.length-1;for await(let r of u){e.responseId||=r.responseId;let i=r.candidates?.[0];if(i?.content?.parts)for(let t of i.content.parts){if(t.text!==void 0){let n=g(t);(!d||n&&d.type!==`thinking`||!n&&d.type!==`text`)&&(d&&(d.type===`text`?a.push({type:`text_end`,contentIndex:p.length-1,content:d.text,partial:e}):a.push({type:`thinking_end`,contentIndex:m(),content:d.thinking,partial:e})),n?(d={type:`thinking`,thinking:``,thinkingSignature:void 0},e.content.push(d),a.push({type:`thinking_start`,contentIndex:m(),partial:e})):(d={type:`text`,text:``},e.content.push(d),a.push({type:`text_start`,contentIndex:m(),partial:e}))),d.type===`thinking`?(d.thinking+=t.text,d.thinkingSignature=h(d.thinkingSignature,t.thoughtSignature),a.push({type:`thinking_delta`,contentIndex:m(),delta:t.text,partial:e})):(d.text+=t.text,d.textSignature=h(d.textSignature,t.thoughtSignature),a.push({type:`text_delta`,contentIndex:m(),delta:t.text,partial:e}))}if(t.functionCall){d&&=(d.type===`text`?a.push({type:`text_end`,contentIndex:m(),content:d.text,partial:e}):a.push({type:`thinking_end`,contentIndex:m(),content:d.thinking,partial:e}),null);let n=t.functionCall.id,r={type:`toolCall`,id:!n||e.content.some(e=>e.type===`toolCall`&&e.id===n)?`${t.functionCall.name}_${Date.now()}_${++C}`:n,name:t.functionCall.name||``,arguments:t.functionCall.args??{},...t.thoughtSignature&&{thoughtSignature:t.thoughtSignature}};e.content.push(r),a.push({type:`toolcall_start`,contentIndex:m(),partial:e}),a.push({type:`toolcall_delta`,contentIndex:m(),delta:JSON.stringify(r.arguments),partial:e}),a.push({type:`toolcall_end`,contentIndex:m(),toolCall:r,partial:e})}}i?.finishReason&&(e.rawStopReason=i.finishReason,e.stopReason=f(i.finishReason),e.content.some(e=>e.type===`toolCall`)&&(e.stopReason=`toolUse`)),r.usageMetadata&&(e.usage={input:(r.usageMetadata.promptTokenCount||0)-(r.usageMetadata.cachedContentTokenCount||0),output:(r.usageMetadata.candidatesTokenCount||0)+(r.usageMetadata.thoughtsTokenCount||0),cacheRead:r.usageMetadata.cachedContentTokenCount||0,cacheWrite:0,reasoning:r.usageMetadata.thoughtsTokenCount||0,totalTokens:r.usageMetadata.totalTokenCount||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},n(t,e.usage))}if(d&&(d.type===`text`?a.push({type:`text_end`,contentIndex:m(),content:d.text,partial:e}):a.push({type:`thinking_end`,contentIndex:m(),content:d.thinking,partial:e})),i?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`pending`)throw Error(`Google Vertex stream ended without a finish reason`);if(e.stopReason===`aborted`||e.stopReason===`error`){let t=e.rawStopReason?`Provider stopped with: ${e.rawStopReason}`:`An unknown error occurred`;throw Error(t)}a.push({type:`done`,reason:e.stopReason,message:e}),a.end()}catch(t){for(let t of e.content)`index`in t&&delete t.index;e.stopReason=i?.signal?.aborted?`aborted`:`error`,e.errorMessage=c(s(t)),a.push({type:`error`,reason:e.stopReason,error:e}),a.end()}})(),a},T=(e,n,r)=>{let a=i(e,n,r,void 0);if(!r?.reasoning)return w(e,n,{...a,thinking:{enabled:!1}});let o=t(e,r.reasoning),s=o===`off`?`high`:o,c=e;return L(c)||R(c)?w(e,n,{...a,thinking:{enabled:!0,level:B(s,c)}}):w(e,n,{...a,thinking:{enabled:!0,budgetTokens:V(c,s,r.thinkingBudgets)}})};function E(e,t,n,r,i){let a=j(i);return new p({vertexai:!0,project:t,location:n,apiVersion:b,...a?{googleAuthOptions:a}:{},httpOptions:O(e,r)})}function D(e,t,n){return new p({vertexai:!0,apiKey:t,apiVersion:b,httpOptions:O(e,n)})}function O(e,t){let n={},r=k(e.baseUrl);r&&(n.baseUrl=r,n.baseUrlResourceScope=y.COLLECTION,A(r)&&(n.apiVersion=``));let i=a({...e.headers,...t});return i&&(n.headers=i),Object.keys(n).length>0?n:void 0}function k(e){let t=e.trim();if(!(!t||t.includes(`{location}`)))return t}function A(e){try{return new URL(e).pathname.split(`/`).some(e=>/^v\d+(?:beta\d*)?$/.test(e))}catch{return/(?:^|\/)v\d+(?:beta\d*)?(?:\/|$)/.test(e)}}function j(e){let t=r(`GOOGLE_APPLICATION_CREDENTIALS`,e);return t?{keyFilename:t}:void 0}function M(e){let t=e?.apiKey?.trim();if(!(!t||t===x||N(t)))return t}function N(e){return/^<[^>]+>$/.test(e)}function P(e){let t=e?.project||r(`GOOGLE_CLOUD_PROJECT`,e?.env)||r(`GCLOUD_PROJECT`,e?.env);if(!t)throw Error(`Vertex AI requires a project ID. Set GOOGLE_CLOUD_PROJECT/GCLOUD_PROJECT or pass project in options.`);return t}function F(e){let t=e?.location||r(`GOOGLE_CLOUD_LOCATION`,e?.env);if(!t)throw Error(`Vertex AI requires a location. Set GOOGLE_CLOUD_LOCATION or pass location in options.`);return t}function I(e,t,n={}){let r=v(e,t),i={};n.temperature!==void 0&&(i.temperature=n.temperature),n.maxTokens!==void 0&&(i.maxOutputTokens=n.maxTokens);let a=t.tools?.length?l(t.tools,n.toolChoice,u(e.id)):void 0,s={...Object.keys(i).length>0&&i,...t.systemPrompt&&{systemInstruction:o(t.systemPrompt)},...t.tools&&t.tools.length>0&&{tools:m(t.tools)},...a!==void 0&&{toolConfig:{functionCallingConfig:{mode:a}}}};if(n.thinking?.enabled&&e.reasoning){let e={includeThoughts:!0};n.thinking.level===void 0?n.thinking.budgetTokens!==void 0&&(e.thinkingBudget=n.thinking.budgetTokens):e.thinkingLevel=S[n.thinking.level],s.thinkingConfig=e}else e.reasoning&&n.thinking&&!n.thinking.enabled&&(s.thinkingConfig=z(e));if(n.signal){if(n.signal.aborted)throw Error(`Request aborted`);s.abortSignal=n.signal}return{model:e.id,contents:r,config:s}}function L(e){return/gemini-3(?:\.\d+)?-pro/.test(e.id.toLowerCase())}function R(e){let t=e.id.toLowerCase();return/gemini-3(?:\.\d+)?-flash/.test(t)||t===`gemini-flash-latest`||t===`gemini-flash-lite-latest`}function z(e){let t=e;return L(t)?{thinkingLevel:d.LOW}:R(t)?{thinkingLevel:d.MINIMAL}:{thinkingBudget:0}}function B(e,t){if(L(t))switch(e){case`minimal`:case`low`:return`LOW`;case`medium`:case`high`:return`HIGH`}switch(e){case`minimal`:return`MINIMAL`;case`low`:return`LOW`;case`medium`:return`MEDIUM`;case`high`:return`HIGH`}}function V(e,t,n){return n?.[t]===void 0?e.id.includes(`2.5-pro`)?{minimal:128,low:2048,medium:8192,high:32768}[t]:e.id.includes(`2.5-flash`)?{minimal:128,low:2048,medium:8192,high:24576}[t]:-1:n[t]}export{w as stream,T as streamSimple};
@@ -1 +0,0 @@
1
- import{c as e,d as t,f as n,l as r,o as i,p as a,s as o,u as s}from"./compat-C0CyHyoL.js";var c=a(),l=n(),u=t(),d=s(),f=r(),p=e(),m=o(),h=i(),g=c.stream,_=c.streamSimple;l.stream,l.streamSimple,u.stream,u.streamSimple,d.stream,d.streamSimple,f.stream,f.streamSimple;var v=p.stream,y=p.streamSimple,b=m.stream,x=m.streamSimple,S=h.stream,C=h.streamSimple;export{_ as a,C as c,S as i,v as n,y as o,b as r,x as s,g as t};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/quick-llm-B1IKnoro.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/account-store-BkG4BDQC.js","assets/preload-helper-Czpn1I53.js","assets/compat-C0CyHyoL.js","assets/models-BSkXF4T6.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-CrhNqqEN.js","assets/logger-DDBAeTLF.js","assets/context-compaction-MXRS4Kb2.js","assets/src-CAWTvdAa.js","assets/proxied-fetch-ULPrH97b.js","assets/base64-DpPqYZJF.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-DCQNOMWj.js","assets/secrets-bridge-client-BZMh3a0J.js","assets/port-bridge-client-Bg6_jjLD.js","assets/tool-ui-C-E235kX.js","assets/logger-BoSvu4mW.js","assets/tool-result-images-D8kQ0hH0.js","assets/providers-D2SzyuS_.js","assets/panel-rpc-B3MSVImO.js","assets/bedrock-camp-DMGplF70.js","assets/transform-messages-XkZ1QnTb.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-DtQGhvkp.js"])))=>i.map(i=>d[i]);
2
- import{F as e,m as t}from"./account-store-BkG4BDQC.js";import{t as n}from"./preload-helper-Czpn1I53.js";import{t as r}from"./logger-DDBAeTLF.js";import{r as i}from"./feature-flags-Cf-Bv5AK.js";import"./provider-settings-CqsZtmc2.js";import{t as a}from"./llm-session-id-bZQs6gBN.js";import{t as o}from"./chat-session-store-pWb1-jNp.js";import{a as s,i as c,n as l,r as u,t as d}from"./session-freezer-CWeTl5Ug.js";var f=r(`new-session`),p=`ui-new-session`,m=2e4,h=250;async function g(n){try{let r=await n.openVfs(),i=t()??void 0;if(!i)return;let o;try{o=e()}catch{return}let c=o.provider===`adobe`?{"X-Session-Id":a(p)}:void 0;await s({vfs:r,model:o,apiKey:i,headers:c}),n.onComplete?.()}catch(e){f.warn(`Pending session catch-up failed (boot continues)`,{error:e instanceof Error?e.message:String(e)})}}function _(e){(e.schedule??v)(()=>{g(e)})}function v(e){if(typeof globalThis.requestIdleCallback==`function`){globalThis.requestIdleCallback(e,{timeout:5e3});return}setTimeout(e,0)}function y(e){if(i(`agentic-memory`)){if(!e.agenticMemorySpawn){f.info(`Agentic memory enabled but agent bridge unavailable — using legacy enrichment`);return}return e.agenticMemorySpawn}}async function b(e,t,n,r,i,a){let o=await u({sessionStore:t,vfs:e.vfs,mode:`quick`,agenticMemorySpawn:a});if(!o)return null;if(e.captureCompleteSnapshot)try{await e.captureCompleteSnapshot(o)}catch(t){let n=t?.code??`unknown`;f.warn(`captureCompleteSnapshot failed`,{code:n}),o.completeSnapshotUnavailable=!0;try{await c(e.vfs,o.filename)}catch{}}return x(e,t,n,r,i,a,o),o}async function x(e,t,r,i,a,o,s){let c=s;try{let t=await l(e.vfs,s,{model:r,apiKey:i,headers:a,skipMemory:!0,pickIcon:e=>n(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-B1IKnoro.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28])).then(({pickLucideIcon:t})=>t(e))});t&&(c={...t,archive:s.archive},e.onBackgroundEnriched?.(t))}catch(e){f.warn(`Agentic title enrichment threw (draft stays pending)`,{filename:s.filename,error:e instanceof Error?e.message:String(e)})}let u=await d({sessionStore:t,vfs:e.vfs,mode:`full`,model:r,apiKey:i,headers:a,agenticMemorySpawn:o},c).catch(e=>(f.warn(`Agentic memory curator threw (entry stays pending)`,{filename:c.filename,error:e instanceof Error?e.message:String(e)}),null));f.info(`Agentic memory curator finished`,{filename:c.filename,memoryPending:!u||u.memoryPending===!0}),e.onBackgroundEnriched?.(u)}async function S(e,t,n,r){for(let i of n){let n=`${t}/${i.name}`;r.has(n)||i.type===`directory`&&(await S(e,n,await e.readDir(n),r),[...r].some(e=>e.startsWith(`${n}/`)))||await e.rm(n)}}async function C(e){let t=new Set((await e.listMountPoints()).map(({path:e})=>e).filter(e=>e===`/tmp`||e.startsWith(`/tmp/`)));if(t.has(`/tmp`))return;let n;try{n=await e.readDir(`/tmp`)}catch(t){if(t?.code!==`ENOENT`)throw t;await e.mkdir(`/tmp`,{recursive:!0});return}await S(e,`/tmp`,n,t),await e.mkdir(`/tmp`,{recursive:!0})}async function w(r){let i=r.enrichmentRaceMs??m,s=t()??void 0,d;try{d=e()}catch(e){f.info(`No active model — freezing without LLM enrichment`,{error:e instanceof Error?e.message:String(e)})}let h=d?.provider===`adobe`?{"X-Session-Id":a(p)}:void 0,g=new o;try{await g.init()}catch(e){return f.warn(`SessionStore init failed — cannot freeze`,{error:e instanceof Error?e.message:String(e)}),null}let _=s&&d?y(r):void 0;if(_)return await b(r,g,d,s,h,_);let v=await u({sessionStore:g,vfs:r.vfs,mode:`quick`});if(!v)return null;if(r.captureCompleteSnapshot)try{await r.captureCompleteSnapshot(v)}catch(e){let t=e?.code??`unknown`;f.warn(`captureCompleteSnapshot failed`,{code:t}),v.completeSnapshotUnavailable=!0;try{await c(r.vfs,v.filename)}catch{}}if(!s||!d)return f.info(`Frozen without enrichment (no LLM credentials) — left pending`,{filename:v.filename}),v;let x=d,S=l(r.vfs,v,{model:x,apiKey:s,headers:h,pickIcon:e=>n(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-B1IKnoro.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28])).then(({pickLucideIcon:t})=>t(e))}).catch(e=>(f.warn(`Single-click enrichment threw (entry stays pending)`,{filename:v.filename,error:e instanceof Error?e.message:String(e)}),null)),C=await T(S,i,r.onProgress);return C.kind===`llm`?C.updated?{...C.updated,archive:v.archive}:v:(S.then(e=>{f.info(`Background enrichment resolved after race window`,{filename:v.filename,enriched:e?.filename??null}),r.onBackgroundEnriched?.(e)}),v)}async function T(e,t,n){let r=Date.now(),i,a;n?.(0),n&&(i=setInterval(()=>{n(Math.min(1,(Date.now()-r)/t))},h));let o=new Promise(e=>{a=setTimeout(()=>e({kind:`timer`}),t)}),s=e.then(e=>({kind:`llm`,updated:e}));try{return await Promise.race([s,o])}finally{i&&clearInterval(i),a&&clearTimeout(a),n?.(null)}}async function E(e){let t=new o;try{await t.init()}catch(e){return f.warn(`SessionStore init failed — cannot quick-freeze`,{error:e instanceof Error?e.message:String(e)}),null}let n=await u({sessionStore:t,vfs:e.vfs,mode:`quick`});if(n&&e.captureCompleteSnapshot)try{await e.captureCompleteSnapshot(n)}catch(t){let r=t?.code??`unknown`;f.warn(`captureCompleteSnapshot failed (quick-freeze)`,{code:r}),n.completeSnapshotUnavailable=!0;try{await c(e.vfs,n.filename)}catch{}}return n}export{C as resetNewSessionTmp,w as runNewSessionFreeze,E as runNewSessionFreezeQuick,_ as schedulePendingSessionCatchup};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/provider-Cg9DqCH6.js","assets/account-store-BkG4BDQC.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/compat-C0CyHyoL.js","assets/models-BSkXF4T6.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-CrhNqqEN.js","assets/logger-DDBAeTLF.js","assets/context-compaction-MXRS4Kb2.js","assets/src-CAWTvdAa.js","assets/proxied-fetch-ULPrH97b.js","assets/base64-DpPqYZJF.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-DCQNOMWj.js","assets/secrets-bridge-client-BZMh3a0J.js","assets/port-bridge-client-Bg6_jjLD.js","assets/tool-ui-C-E235kX.js","assets/logger-BoSvu4mW.js","assets/tool-result-images-D8kQ0hH0.js","assets/providers-D2SzyuS_.js","assets/panel-rpc-B3MSVImO.js","assets/bedrock-camp-DMGplF70.js","assets/transform-messages-XkZ1QnTb.js","assets/pkce-hGf_TEnP.js","assets/provider-store-access-BJPtEdx_.js","assets/global-db-CbuLl-zx.js","assets/types-idfTVsM8.js"])))=>i.map(i=>d[i]);
2
- import{d as e,z as t}from"./account-store-BkG4BDQC.js";import{t as n}from"./preload-helper-Czpn1I53.js";import{t as r}from"./logger-DDBAeTLF.js";import"./logger-BoSvu4mW.js";import{t as i}from"./providers-D2SzyuS_.js";import"./provider-settings-CqsZtmc2.js";var a=r(`oauth-bootstrap`),o=6e4;async function s(){try{let{ensureAllMcpProvidersRegistered:e}=await n(async()=>{let{ensureAllMcpProvidersRegistered:e}=await import(`./provider-Cg9DqCH6.js`);return{ensureAllMcpProvidersRegistered:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30])),t=await e();t.length>0&&a.debug(`Pre-registered MCP providers for OAuth bootstrap`,{count:t.length})}catch(e){a.warn(`Failed to pre-register MCP providers for OAuth bootstrap`,{error:e instanceof Error?e.message:String(e)})}let r=e();a.info(`Bootstrap OAuth replicas`,{count:r.length});for(let e of r){if(!e.accessToken){a.debug(`Skipping account without token`,{providerId:e.providerId});continue}if((e.tokenExpiresAt??1/0)-Date.now()<=o){let t=i(e.providerId);if(t?.onSilentRenew)try{if(await t.onSilentRenew()){a.info(`Silently renewed OAuth token`,{providerId:e.providerId});continue}a.warn(`Silent renewal yielded no token; user must re-authenticate`,{providerId:e.providerId});continue}catch(t){a.warn(`Silent renewal failed`,{providerId:e.providerId,error:t instanceof Error?t.message:String(t)});continue}a.debug(`Skipping expired account (no silent-renew hook)`,{providerId:e.providerId});continue}try{await t({providerId:e.providerId,accessToken:e.accessToken,refreshToken:e.refreshToken,tokenExpiresAt:e.tokenExpiresAt,userName:e.userName,userAvatar:e.userAvatar}),a.debug(`Bootstrapped OAuth replica`,{providerId:e.providerId})}catch(t){a.error(`OAuth bootstrap failed`,{providerId:e.providerId,error:t instanceof Error?t.message:String(t)})}}}export{s as bootstrapOAuthReplicas};
@@ -1 +0,0 @@
1
- import{d as e,z as t}from"./account-store-BkG4BDQC.js";import{a as n}from"./diagnostics-DN_idNHx.js";import{a as r}from"./compat-C0CyHyoL.js";import{n as i,o as a}from"./legacy-api-aliases-C0CAIWhd.js";import"./provider-settings-CqsZtmc2.js";import{n as o,r as s,t as c}from"./pkce-hGf_TEnP.js";var l=`openai-codex`,u=`app_EMoamEEZ73f0CkXaXp7hrann`,d=`https://auth.openai.com/oauth/authorize`,f=`https://auth.openai.com/oauth/token`,p=`openid profile email offline_access`,m=`http://localhost:1455/auth/callback`,h=`http://localhost:1455/auth/callback*`,g=`https://chatgpt.com/backend-api`,_=`openai-codex-responses`,v=`${l}-openai`,y={xhigh:`xhigh`,minimal:`low`},b=[{id:`gpt-5.5`,name:`GPT-5.5`,input:[`text`,`image`]},{id:`gpt-5.4`,name:`GPT-5.4`,input:[`text`,`image`]},{id:`gpt-5.4-mini`,name:`GPT-5.4 mini`,input:[`text`,`image`]},{id:`gpt-5.3-codex`,name:`GPT-5.3 Codex`,input:[`text`,`image`]},{id:`gpt-5.3-codex-spark`,name:`GPT-5.3 Codex Spark`,input:[`text`]},{id:`gpt-5.2`,name:`GPT-5.2`,input:[`text`,`image`]}].map(e=>({...e,api:`openai`,reasoning:!0,context_window:272e3,max_tokens:128e3,thinkingLevelMap:y}));async function x(e,t){let n=new URLSearchParams({grant_type:`authorization_code`,client_id:u,code:e,code_verifier:t,redirect_uri:m}),r=await fetch(f,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:n});if(!r.ok)throw Error(`OpenAI Codex token exchange failed: ${r.status} ${await r.text()}`);let i=await r.json();if(!i.access_token)throw Error(`OpenAI Codex token exchange did not return access_token.`);return i}async function S(e){try{let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e,client_id:u}),n=await fetch(f,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});return n.ok?await n.json():(console.error(`[openai-codex] refresh failed:`,n.status,await n.text()),null)}catch(e){return console.error(`[openai-codex] refresh error:`,e instanceof Error?e.message:String(e)),null}}function C(e){try{let t=e.split(`.`);if(t.length!==3)return;let n=t[1].replace(/-/g,`+`).replace(/_/g,`/`);return n.length%4&&(n+=`=`.repeat(4-n.length%4)),JSON.parse(atob(n))}catch{return}}function w(e){let t=C(e)?.[`https://api.openai.com/profile`];return typeof t?.email==`string`?t.email:void 0}function T(e){let t=C(e)?.[`https://api.openai.com/auth`],n=w(e),r=typeof t?.chatgpt_plan_type==`string`?t.chatgpt_plan_type:void 0,i=r?r.charAt(0).toUpperCase()+r.slice(1):void 0;if(n&&i)return`${n} (${i})`;if(n)return n;if(i)return`ChatGPT ${i}`}async function E(e){let t=w(e);if(t)try{let e=t.trim().toLowerCase(),n=new Uint8Array(await crypto.subtle.digest(`SHA-256`,new TextEncoder().encode(e)));return`https://www.gravatar.com/avatar/${Array.from(n).map(e=>e.toString(16).padStart(2,`0`)).join(``)}?s=128&d=404`}catch{return}}function D(){return e().find(e=>e.providerId===l)}async function O(){let e=D();if(!e?.accessToken)throw Error("Not signed in to OpenAI Codex — run `oauth-token openai-codex` or /login");let n=e.tokenExpiresAt??0;if(n&&Date.now()+6e4<n)return e.accessToken;if(e.refreshToken){let n=await S(e.refreshToken);if(n?.access_token)return await t({providerId:l,accessToken:n.access_token,refreshToken:n.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(n.expires_in??3600)*1e3,baseUrl:g,userName:T(n.access_token),userAvatar:await E(n.access_token),scopes:n.scope??e.scopes}),n.access_token}return e.accessToken}function k(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:v,provider:l,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 A=(e,t,r={})=>{let a=n();return(async()=>{try{let n=await O(),o={...e,baseUrl:g,api:_},s=i(o,t,{...r,apiKey:n,transport:`sse`});for await(let e of s)a.push(e);a.end()}catch(t){console.error(`[openai-codex] Stream error:`,t instanceof Error?t.message:String(t)),a.push(k(e,t)),a.end()}})(),a},j=(e,t,r)=>{let i=n();return(async()=>{try{let n=await O(),o={...e,baseUrl:g,api:_},s=a(o,t,{...r,apiKey:n,transport:`sse`});for await(let e of s)i.push(e);i.end()}catch(t){console.error(`[openai-codex] Stream error:`,t instanceof Error?t.message:String(t)),i.push(k(e,t)),i.end()}})(),i},M={id:l,name:`OpenAI Codex (ChatGPT Subscription)`,description:`GPT-5 Codex via your ChatGPT Plus/Pro/Business subscription — OAuth login, no API key needed. Default model is GPT-5.5.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`gpt-5.5`,oauthTokenDomains:[`chatgpt.com`,`*.chatgpt.com`,`auth.openai.com`,`api.openai.com`],getModelIds:()=>b,onOAuthLoginIntercepted:async(e,n,r)=>{let i=o(),a=await c(i),f=s(),_=new URL(d);_.searchParams.set(`response_type`,`code`),_.searchParams.set(`client_id`,u),_.searchParams.set(`redirect_uri`,m),_.searchParams.set(`scope`,r?.scopes??p),_.searchParams.set(`code_challenge`,a),_.searchParams.set(`code_challenge_method`,`S256`),_.searchParams.set(`state`,f),_.searchParams.set(`id_token_add_organizations`,`true`),_.searchParams.set(`codex_cli_simplified_flow`,`true`),_.searchParams.set(`originator`,`pi`);let v=await e({authorizeUrl:_.toString(),redirectUriPattern:h,onCapture:`close`});if(!v)throw Error(`OpenAI Codex OAuth login was cancelled or timed out`);let y=new URL(v),b=y.searchParams.get(`code`),S=y.searchParams.get(`state`);if(!b)throw Error(`OpenAI Codex OAuth redirect did not include a code`);if(S!==f)throw Error(`OpenAI Codex OAuth state mismatch — possible CSRF, aborting`);let C=await x(b,i);await t({providerId:l,accessToken:C.access_token,refreshToken:C.refresh_token,tokenExpiresAt:Date.now()+(C.expires_in??3600)*1e3,baseUrl:g,userName:T(C.access_token),userAvatar:await E(C.access_token),scopes:C.scope}),n()},onOAuthLogout:async()=>{await t({providerId:l,accessToken:``})},onSilentRenew:async()=>{let e=D();if(!e?.refreshToken)return null;let n=await S(e.refreshToken);return n?.access_token?(await t({providerId:l,accessToken:n.access_token,refreshToken:n.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(n.expires_in??3600)*1e3,baseUrl:g,userName:T(n.access_token),userAvatar:await E(n.access_token),scopes:n.scope??e.scopes}),n.access_token):null}};function N(){r({api:v,stream:A,streamSimple:j})}export{M as config,N as register};
@@ -1,7 +0,0 @@
1
- import{i as e,n as t,r as n,t as r}from"./diagnostics-DN_idNHx.js";import{n as i}from"./models-BSkXF4T6.js";import{t as a}from"./provider-env-CTOcDKrQ.js";import{i as o}from"./transform-messages-XkZ1QnTb.js";import{t as s}from"./deferred-tools-C1IEsG5C.js";import{t as c}from"./headers-CbDaTl3c.js";import{n as l}from"./constrained-sampling-DafcjXU6.js";import{n as u,t as d}from"./error-body-pkrba6pf.js";import{t as f}from"./openai-prompt-cache-DXo9f3w5.js";import{n as p,r as m,t as h}from"./openai-responses-shared-BrIGUa2e.js";var g=new Set;function _(e){return g.add(e),()=>{g.delete(e)}}var v=-1/0,y=0;function b(e){if(globalThis.crypto?.getRandomValues){globalThis.crypto.getRandomValues(e);return}for(let t=0;t<e.length;t++)e[t]=Math.floor(Math.random()*256)}function x(){let e=new Uint8Array(16);b(e);let t=Date.now();t>v?(y=e[6]*16777216+e[7]*65536+e[8]*256+e[9],v=t):(y=y+1>>>0,y===0&&v++);let n=new Uint8Array(16);n[0]=v/1099511627776&255,n[1]=v/4294967296&255,n[2]=v/16777216&255,n[3]=v/65536&255,n[4]=v/256&255,n[5]=v&255,n[6]=112|y>>>28&15,n[7]=y>>>20&255,n[8]=128|y>>>14&63,n[9]=y>>>6&255,n[10]=(y&63)<<2|e[10]&3,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15];let r=Array.from(n,e=>e.toString(16).padStart(2,`0`));return`${r.slice(0,4).join(``)}-${r.slice(4,6).join(``)}-${r.slice(6,8).join(``)}-${r.slice(8,10).join(``)}-${r.slice(10,16).join(``)}`}function S(e){let t=e.filter(e=>e!==void 0);if(t.length===0)return{cleanup:()=>{}};if(t.length===1)return{signal:t[0],cleanup:()=>{}};let n=new AbortController,r=[],i=e=>{n.signal.aborted||n.abort(e.reason)};for(let e of t){if(e.aborted){i(e);break}let t=()=>i(e);e.addEventListener(`abort`,t,{once:!0}),r.push({signal:e,listener:t})}return{signal:n.signal,cleanup:()=>{for(let{signal:e,listener:t}of r)e.removeEventListener(`abort`,t)}}}var C={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443};function w(e,t){let n=e.toLowerCase(),r=e.toUpperCase();return t?.[n]||t?.[r]||a(n)||a(r)||``}function T(e){if(e instanceof URL)return e;try{return new URL(e)}catch{return}}function E(e,t,n){let r=w(`no_proxy`,n).toLowerCase();return!r||r!==`*`&&r.split(/[,\s]/).every(n=>{if(!n)return!0;let r=n.match(/^(.+):(\d+)$/),i=r?r[1]:n,a=r?Number.parseInt(r[2],10):0;return a&&a!==t?!0:/^[.*]/.test(i)?(i.startsWith(`*`)&&(i=i.slice(1)),!e.endsWith(i)):e!==i})}function D(e,t){let n=T(e);if(!n?.protocol||!n.host)return``;let r=n.protocol.split(`:`,1)[0];if(!E(n.host.replace(/:\d*$/,``),Number.parseInt(n.port,10)||C[r]||0,t))return``;let i=w(`${r}_proxy`,t)||w(`all_proxy`,t);return i&&!i.includes(`://`)&&(i=`${r}://${i}`),i}var O=`Unsupported proxy protocol. SOCKS and PAC proxy URLs are not supported; use an HTTP or HTTPS proxy URL.`;function k(e,t){let n=D(e,t);if(!n)return;let r;try{r=new URL(n)}catch(e){throw Error(`Invalid proxy URL ${JSON.stringify(n)}: ${e instanceof Error?e.message:String(e)}`)}if(r.protocol!==`http:`&&r.protocol!==`https:`)throw Error(`${O} Got ${r.protocol}`);return r}function A(){return typeof process>`u`||!(process.versions?.node||process.versions?.bun)?null:process.getBuiltinModule?.(`node:os`)??null}var j=A(),M=`https://chatgpt.com/backend-api`,ee=`https://api.openai.com/auth`,te=0,N=1e3,ne=6e4,re=15e3,ie=3,ae=new Set([`openai`,`openai-codex`,`opencode`]),oe=1009,se=`websocket_connection_limit_reached`,ce=`previous_response_not_found`,le=new Set([`completed`,`incomplete`,`failed`,`cancelled`,`queued`,`in_progress`]);function P(e){if(e.stopReason===`pending`)throw Error(`Codex stream ended without a stop reason`);if(e.stopReason===`error`||e.stopReason===`aborted`)throw Error(e.errorMessage||`An unknown error occurred`)}function ue(e){return/GoUsageLimitError|FreeUsageLimitError|Monthly usage limit reached|available balance|insufficient_quota|out of budget|quota exceeded|billing/i.test(e)}function de(e,t){return e===429&&ue(t)?!1:e===429||e===500||e===502||e===503||e===504||/rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(t)}function fe(e){let t=e.get(`retry-after-ms`);if(t!==null){let e=Number(t);if(Number.isFinite(e))return Math.max(0,e)}let n=e.get(`retry-after`);if(!n)return;let r=Number(n);if(Number.isFinite(r))return Math.max(0,r*1e3);let i=Date.parse(n);if(!Number.isNaN(i))return Math.max(0,i-Date.now())}var F=class extends Error{};function pe(e,t){let n=t?.maxRetryDelayMs??ne;if(n>0&&e>n)throw new F(`Server requested ${Math.ceil(e/1e3)}s retry delay (max: ${Math.ceil(n/1e3)}s)`);return e}function I(e,t){return new Promise((n,r)=>{if(t?.aborted){r(Error(`Request was aborted`));return}let i=setTimeout(n,e);t?.addEventListener(`abort`,()=>{clearTimeout(i),r(Error(`Request was aborted`))})})}function L(e){if(e!==void 0){if(!Number.isFinite(e)||e<0)throw Error(`Invalid timeoutMs: ${String(e)}`);return Math.floor(e)}}function me(){return typeof process>`u`||!(process.versions?.node||process.versions?.bun)?null:process.getBuiltinModule?.(`node:zlib`)??null}function he(e){let t=me();if(!t||typeof t.zstdCompressSync!=`function`)return null;try{let n=t.zstdCompressSync(e,{params:{[t.constants.ZSTD_c_compressionLevel]:ie}});return new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}catch{return null}}var R=(n,i,a)=>{let o=new e;return(async()=>{let e={role:`assistant`,content:[],api:`openai-codex-responses`,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:`pending`,timestamp:Date.now()};try{let s=a?.apiKey;if(!s)throw Error(`No API key for provider: ${n.provider}`);let u=$e(s),d=l(i.tools,n.compat?.supportsOpenAIGrammarTools??!1),p=a?.cacheRetention===`none`?void 0:a?.sessionId,m=f(p),h=_e(n,i,a,m,d),g=await a?.onPayload?.(h,n);g!==void 0&&(h=g);let _=m||x(),v=tt(n.headers,a?.headers,u,s,m),y=nt(n.headers,a?.headers,u,s,_),b=JSON.stringify(h),C=L(a?.timeoutMs),w=L(a?.websocketConnectTimeoutMs),T=a?.transport||`auto`,E=!1,D=T!==`sse`&&Ne(p);if(D&&Pe(p),T!==`sse`&&!D){let i=!1,s=!1,c=!1;for(;;){i=!1;try{if(await Ze(ye(n.baseUrl),h,y,e,o,n,()=>{i=!0,E||(E=!0,o.push({type:`start`,partial:e}))},C,w,p,u,d,a),a?.signal?.aborted)throw Error(`Request was aborted`);P(e),o.push({type:`done`,reason:e.stopReason,message:e}),o.end();return}catch(n){let o=a?.signal?.aborted,l=!i&&Se(n),u=Ce(n);if(!o&&u&&!c){c=!0;continue}if(!o&&l&&!s){s=!0;continue}if(o||xe(n)&&!l||(r(e,t(`provider_transport_failure`,n,{configuredTransport:T,fallbackTransport:i?void 0:`sse`,eventsEmitted:i,phase:i?`after_message_stream_start`:`before_message_stream_start`,requestBytes:new TextEncoder().encode(b).byteLength})),Fe(p,n),i))throw n;Pe(p);break}}}let O=he(b);O&&v.set(`content-encoding`,`zstd`);let k=O??b,A,j,M=a?.maxRetries??te;for(let e=0;e<=M;e++){if(a?.signal?.aborted)throw Error(`Request was aborted`);try{let t=C!==void 0&&C>0?AbortSignal.timeout(C):void 0,r=S([a?.signal,t]);try{A=await(a?.fetch??globalThis.fetch)(V(n.baseUrl),{method:`POST`,headers:v,body:k,signal:r.signal})}catch(e){throw t?.aborted&&!a?.signal?.aborted?Error(`Codex SSE response headers timed out after ${C}ms`):e}finally{r.cleanup()}if(await a?.onResponse?.({status:A.status,headers:c(A.headers)},n),A.ok)break;let i=await A.text();if(e<M&&de(A.status,i)){let t=fe(A.headers);await I(t===void 0?N*2**e:pe(t,a),a?.signal);continue}let o=await Qe(new Response(i,{status:A.status,statusText:A.statusText}));throw Error(o.friendlyMessage||o.message)}catch(t){if(t instanceof Error&&(t.name===`AbortError`||t.message===`Request was aborted`))throw Error(`Request was aborted`);if(j=t instanceof Error?t:Error(String(t)),e<M&&!(j instanceof F)&&!j.message.includes(`usage limit`)){await I(N*2**e,a?.signal);continue}throw j}}if(!A?.ok)throw j??Error(`Failed after retries`);if(!A.body)throw Error(`No response body`);if(E||(E=!0,o.push({type:`start`,partial:e})),await be(A,e,o,n,d,a),a?.signal?.aborted)throw Error(`Request was aborted`);P(e),o.push({type:`done`,reason:e.stopReason,message:e}),o.end()}catch(t){for(let t of e.content)delete t.partialJson,delete t.customInput;e.stopReason=a?.signal?.aborted?`aborted`:`error`,e.errorMessage=d(u(t)),o.push({type:`error`,reason:e.stopReason,error:e}),o.end()}})(),o},ge=(e,t,n)=>{let r=n?.apiKey;if(!r)throw Error(`No API key for provider: ${e.provider}`);let a=o(e,t,n,r),s=n?.reasoning?i(e,n.reasoning):void 0,c=s===`off`?void 0:s;return R(e,t,{...a,reasoningEffort:c})};function _e(e,t,n,r,i=l(t.tools,e.compat?.supportsOpenAIGrammarTools??!1)){let a=e.compat?.supportsStrictMode??!0,o=e.compat?.supportsOpenAIGrammarTools??!1,c=s(t,e.compat?.supportsToolSearch??!1),u=h(e,t,ae,{includeSystemPrompt:!1,grammarToolInputProperties:i,deferredTools:c.deferred,toolOptions:{strict:null,supportsStrictMode:a,supportsOpenAIGrammarTools:o}}),d={model:e.id,store:!1,stream:!0,instructions:t.systemPrompt||`You are a helpful assistant.`,input:u,text:{verbosity:n?.textVerbosity||`low`},include:[`reasoning.encrypted_content`],prompt_cache_key:r,tool_choice:n?.toolChoice??`auto`,parallel_tool_calls:!0};if(n?.temperature!==void 0&&(d.temperature=n.temperature),n?.serviceTier!==void 0&&(d.service_tier=n.serviceTier),c.immediate.length>0&&(d.tools=p(c.immediate,{strict:null,supportsStrictMode:a,supportsOpenAIGrammarTools:o})),n?.reasoningEffort!==void 0){let t=n.reasoningEffort===`none`?e.thinkingLevelMap?.off??`none`:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;t!==null&&(d.reasoning={effort:t,summary:n.reasoningSummary??`auto`})}return d}function ve(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function z(e,t,n){let r=ve(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}function B(e,t){return e==="default"&&(t===`flex`||t===`priority`)?t:e??t}function V(e){let t=(e&&e.trim().length>0?e:M).replace(/\/+$/,``);return t.endsWith(`/codex/responses`)?t:t.endsWith(`/codex`)?`${t}/responses`:`${t}/codex/responses`}function ye(e){let t=new URL(V(e));return t.protocol===`https:`&&(t.protocol=`wss:`),t.protocol===`http:`&&(t.protocol=`ws:`),t.toString()}async function be(e,t,n,r,i,a){await m(W(Ee(e,a?.signal)),t,n,r,{serviceTier:a?.serviceTier,grammarToolInputProperties:i,resolveServiceTier:B,applyServiceTierPricing:(e,t)=>z(e,t,r)})}var H=class extends Error{code;payload;constructor(e,t){super(e),this.name=`CodexApiError`,this.code=t?.code,this.payload=t?.payload,this.cause=t?.cause}},U=class extends Error{payload;constructor(e,t){super(e),this.name=`CodexProtocolError`,this.payload=t?.payload,this.cause=t?.cause}};function xe(e){return e instanceof H||e instanceof U}function Se(e){return e instanceof H&&e.code===se}function Ce(e){return e instanceof H&&e.code===ce}function we(e){let t=e.error&&typeof e.error==`object`?e.error:void 0;return{code:typeof e.code==`string`?e.code:typeof t?.code==`string`?t.code:void 0,message:typeof e.message==`string`?e.message:typeof t?.message==`string`?t.message:void 0}}async function*W(e){for await(let t of e){let e=typeof t.type==`string`?t.type:void 0;if(e){if(e===`error`){let{code:e,message:n}=we(t);throw new H(`Codex error: ${n||e||JSON.stringify(t)}`,{code:e,payload:t})}if(e===`response.failed`){let e=t.response,n=e?.error?.code,r=e?.error?.message;throw new H(r||`Codex response failed`,{code:n,payload:t})}if(e===`response.done`||e===`response.completed`||e===`response.incomplete`){let e=t.response,n=e&&{...e,status:Te(e.status)};yield{...t,type:`response.completed`,response:n};return}yield t}}}function Te(e){if(typeof e==`string`)return le.has(e)?e:void 0}async function*Ee(e,t){if(!e.body)return;let r=e.body.getReader(),i=new TextDecoder,a=``,o=()=>{r.cancel().catch(()=>{})};t?.addEventListener(`abort`,o,{once:!0});try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);let{done:e,value:o}=await r.read();if(t?.aborted)throw Error(`Request was aborted`);if(e)break;a+=i.decode(o,{stream:!0});let s=a.indexOf(`
2
-
3
- `);for(;s!==-1;){let e=a.slice(0,s);a=a.slice(s+2);let t=e.split(`
4
- `).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trim());if(t.length>0){let e=t.join(`
5
- `).trim();if(e&&e!==`[DONE]`)try{yield JSON.parse(e)}catch(t){throw new U(`Invalid Codex SSE JSON: ${n(t)}`,{cause:t,payload:e})}}s=a.indexOf(`
6
-
7
- `)}}}finally{t?.removeEventListener(`abort`,o);try{await r.cancel()}catch{}try{r.releaseLock()}catch{}}}var De=`responses_websockets=2026-02-06`,Oe=3e5,ke=33e5,G=new Map,K=new Map,q=new Set;function J(e){let t=K.get(e);return t||(t={requests:0,connectionsCreated:0,connectionsReused:0,cachedContextRequests:0,storeTrueRequests:0,fullContextRequests:0,deltaRequests:0,lastInputItems:0,websocketFailures:0,sseFallbacks:0},K.set(e,t)),t}function Ae(e){let t=K.get(e);return t?{...t}:void 0}function je(e){if(e){K.delete(e),q.delete(e);return}K.clear(),q.clear()}function Me(e){let t=e=>{e.idleTimer&&clearTimeout(e.idleTimer),Z(e.socket,1e3,`debug_close`)};if(e){for(let n of G.get(e)?.values()??[])t(n);G.delete(e);return}for(let e of G.values())for(let n of e.values())t(n);G.clear()}_(Me);function Ne(e){return e?q.has(e):!1}function Pe(e){if(!e)return;let t=J(e);t.sseFallbacks++,t.websocketFallbackActive=Ne(e)}function Fe(e,t){if(!e)return;q.add(e);let r=J(e);r.websocketFailures++,r.lastWebSocketError=n(t),r.websocketFallbackActive=!0}var Y=null;async function Ie(e){if(!e&&Y)return Y;if(typeof process<`u`&&process.versions?.bun){let t=class extends WebSocket{constructor(t,n){let r={};r=Array.isArray(n)||typeof n==`string`?{protocols:n}:{...n};let i=k(t.toString().replace(/^wss:/,`https:`).replace(/^ws:/,`http:`),e);super(t,{...r,...i?{proxy:i.toString()}:{}})}};return e||(Y=t),t}let t=globalThis.WebSocket;return typeof t==`function`?t:null}var Le=class extends Error{code;reason;wasClean;constructor(e,t){super(e),this.name=`WebSocketCloseError`,this.code=t?.code,this.reason=t?.reason,this.wasClean=t?.wasClean}};function Re(e){let t=e.readyState;return typeof t==`number`?t:void 0}function X(e){let t=Re(e);return t===void 0||t===1}function ze(e){return Date.now()-e.createdAt>=ke}function Z(e,t=1e3,n=`done`){try{e.close(t,n)}catch{}}function Be(e,t,n){n.idleTimer&&clearTimeout(n.idleTimer),n.idleTimer=setTimeout(()=>{if(n.busy)return;Z(n.socket,1e3,`idle_timeout`);let r=G.get(e);r?.get(t)===n&&r.delete(t),r?.size===0&&G.delete(e)},Oe)}async function Q(e,t,n,r=re,i){let a=await Ie(i);if(!a)throw Error(`WebSocket transport is not available in this runtime`);let o=c(t);return delete o[`OpenAI-Beta`],new Promise((t,i)=>{let s=!1,c,l;try{l=new a(e,{headers:o})}catch(e){i(e instanceof Error?e:Error(String(e)));return}let u=()=>{c&&=(clearTimeout(c),void 0),l.removeEventListener(`open`,f),l.removeEventListener(`error`,p),l.removeEventListener(`close`,m),n?.removeEventListener(`abort`,h)},d=(e,t)=>{s||(s=!0,u(),t&&Z(l,1e3,t),i(e))},f=()=>{s||(s=!0,u(),t(l))},p=e=>{d($(e))},m=e=>{d(He(e))},h=()=>{d(Error(`Request was aborted`),`aborted`)};l.addEventListener(`open`,f),l.addEventListener(`error`,p),l.addEventListener(`close`,m),n?.addEventListener(`abort`,h),r>0&&(c=setTimeout(()=>{d(Error(`WebSocket connect timeout after ${r}ms`),`connect_timeout`)},r)),n?.aborted&&h()})}async function Ve(e,t,n,r,i,a,o){if(!n){let n=await Q(e,t,i,a,o);return{socket:n,reused:!1,release:()=>Z(n)}}let s=G.get(n),c=s?.get(r);if(c){if(c.idleTimer&&=(clearTimeout(c.idleTimer),void 0),!c.busy&&ze(c))Z(c.socket,1e3,`connection_age_limit`),s?.delete(r),s?.size===0&&G.delete(n);else if(!c.busy&&X(c.socket))return c.busy=!0,{socket:c.socket,entry:c,reused:!0,release:({keep:e}={})=>{if(!e||!X(c.socket)){Z(c.socket);let e=G.get(n);e?.get(r)===c&&e.delete(r),e?.size===0&&G.delete(n);return}c.busy=!1,Be(n,r,c)}};if(c.busy){let n=await Q(e,t,i,a,o);return{socket:n,reused:!1,release:()=>{Z(n)}}}X(c.socket)||(Z(c.socket),s?.delete(r),s?.size===0&&G.delete(n))}let l=await Q(e,t,i,a,o),u={socket:l,busy:!0,createdAt:Date.now()};return s=G.get(n),s||(s=new Map,G.set(n,s)),s.set(r,u),{socket:l,entry:u,reused:!1,release:({keep:e}={})=>{if(!e||!X(u.socket)){Z(u.socket),u.idleTimer&&clearTimeout(u.idleTimer);let e=G.get(n);e?.get(r)===u&&e.delete(r),e?.size===0&&G.delete(n);return}u.busy=!1,Be(n,r,u)}}}function $(e){if(e&&typeof e==`object`){let t=`message`in e?e.message:void 0;if(typeof t==`string`&&t.length>0)return Error(t);let n=`error`in e?e.error:void 0;if(n instanceof Error&&n.message.length>0)return n;if(n&&typeof n==`object`&&`message`in n){let e=n.message;if(typeof e==`string`&&e.length>0)return Error(e)}}return Error(`WebSocket error`)}function He(e){if(e&&typeof e==`object`){let t=`code`in e?e.code:void 0,n=`reason`in e?e.reason:void 0,r=`wasClean`in e?e.wasClean:void 0,i=typeof t==`number`?` ${t}`:``,a=typeof n==`string`&&n.length>0?` ${n}`:``;return!a&&t===oe&&(a=` message too big`),new Le(`WebSocket closed${i}${a}`.trim(),{code:typeof t==`number`?t:void 0,reason:typeof n==`string`&&n.length>0?n:void 0,wasClean:typeof r==`boolean`?r:void 0})}return Error(`WebSocket closed`)}async function Ue(e){if(typeof e==`string`)return e;if(e instanceof ArrayBuffer)return new TextDecoder().decode(new Uint8Array(e));if(ArrayBuffer.isView(e)){let t=e;return new TextDecoder().decode(new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}if(e&&typeof e==`object`&&`arrayBuffer`in e){let t=await e.arrayBuffer();return new TextDecoder().decode(new Uint8Array(t))}return null}async function*We(e,t,r){let i=[],a=null,o=!1,s=null,c=!1,l=()=>{if(!a)return;let e=a;a=null,e()},u=e=>{(async()=>{let t=null;try{if(!e||typeof e!=`object`||!(`data`in e)||(t=await Ue(e.data),!t))return;let n=JSON.parse(t),r=typeof n.type==`string`?n.type:``;(r===`response.completed`||r===`response.done`||r===`response.incomplete`)&&(c=!0,o=!0),i.push(n),l()}catch(e){s=new U(`Invalid Codex WebSocket JSON: ${n(e)}`,{cause:e,payload:t}),o=!0,l()}})()},d=e=>{s=$(e),o=!0,l()},f=e=>{if(c){o=!0,l();return}s||=He(e),o=!0,l()},p=()=>{s=Error(`Request was aborted`),o=!0,l()};e.addEventListener(`message`,u),e.addEventListener(`error`,d),e.addEventListener(`close`,f),t?.addEventListener(`abort`,p);try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);if(i.length>0){yield i.shift();continue}if(o)break;let n;await new Promise((t,i)=>{a=t,r!==void 0&&r>0&&(n=setTimeout(()=>{let t=Error(`WebSocket idle timeout after ${r}ms`);s=t,o=!0,a=null,Z(e,1e3,`idle_timeout`),i(t)},r))}).finally(()=>{n&&clearTimeout(n)})}if(s)throw s;if(!c)throw Error(`WebSocket stream closed before response.completed`)}finally{e.removeEventListener(`message`,u),e.removeEventListener(`error`,d),e.removeEventListener(`close`,f),t?.removeEventListener(`abort`,p)}}function Ge(e){let{input:t,previous_response_id:n,...r}=e;return r}function Ke(e,t){return JSON.stringify(e??[])===JSON.stringify(t??[])}function qe(e,t){return JSON.stringify(Ge(e))===JSON.stringify(Ge(t))}function Je(e,t){if(!qe(e,t.lastRequestBody))return;let n=e.input??[],r=[...t.lastRequestBody.input??[],...t.lastResponseItems];if(!(n.length<r.length)&&Ke(n.slice(0,r.length),r))return n.slice(r.length)}function Ye(e,t){let n=e.continuation;if(!n)return t;let r=Je(t,n);return!r||!n.lastResponseId?(e.continuation=void 0,t):{...t,previous_response_id:n.lastResponseId,input:r}}async function*Xe(e,t){let n=!1;for await(let r of e)n||(n=!0,t()),yield r}async function Ze(e,t,n,r,i,a,o,s,c,l,u,d,f){let{socket:p,entry:g,reused:_,release:v}=await Ve(e,n,l,u,f?.signal,c,f?.env),y=!0,b=f?.transport===`websocket-cached`||f?.transport===`auto`,x=t,S=b&&g?Ye(g,x):x,C=l?J(l):void 0;C&&(C.requests++,_?C.connectionsReused++:C.connectionsCreated++,b&&C.cachedContextRequests++,S.store===!0&&C.storeTrueRequests++,C.lastInputItems=S.input?.length??0,S.previous_response_id?(C.deltaRequests++,C.lastDeltaInputItems=S.input?.length??0,C.lastPreviousResponseId=S.previous_response_id):(C.fullContextRequests++,C.lastDeltaInputItems=void 0,C.lastPreviousResponseId=void 0));try{if(p.send(JSON.stringify({type:`response.create`,...S})),await m(Xe(W(We(p,f?.signal,s)),o),r,i,a,{serviceTier:f?.serviceTier,grammarToolInputProperties:d,resolveServiceTier:B,applyServiceTierPricing:(e,t)=>z(e,t,a)}),f?.signal?.aborted)y=!1;else if(b&&g&&r.responseId){let e=h(a,{messages:[r]},ae,{includeSystemPrompt:!1,grammarToolInputProperties:d}).filter(e=>e.type!==`function_call_output`&&e.type!==`custom_tool_call_output`);g.continuation={lastRequestBody:x,lastResponseId:r.responseId,lastResponseItems:e}}}catch(e){throw g&&(g.continuation=void 0),y=!1,e}finally{v({keep:y})}}async function Qe(e){let t=await e.text(),n=t||e.statusText||`Request failed`,r;try{let i=JSON.parse(t)?.error;if(i){let t=i.code||i.type||``;if(/usage_limit_reached|usage_not_included|rate_limit_exceeded/i.test(t)||e.status===429){let e=i.plan_type?` (${i.plan_type.toLowerCase()} plan)`:``,t=i.resets_at?Math.max(0,Math.round((i.resets_at*1e3-Date.now())/6e4)):void 0;r=`You have hit your ChatGPT usage limit${e}.${t===void 0?``:` Try again in ~${t} min.`}`.trim()}n=i.message||r||n}}catch{}return{message:n,friendlyMessage:r}}function $e(e){try{let t=e.split(`.`);if(t.length!==3)throw Error(`Invalid token`);let n=JSON.parse(atob(t[1]))?.[ee]?.chatgpt_account_id;if(!n)throw Error(`No account ID in token`);return n}catch{throw Error(`Failed to extract accountId from token`)}}function et(e,t,n,r){let i=new Headers(e);for(let[e,n]of Object.entries(t||{}))n===null?i.delete(e):i.set(e,n);i.set(`Authorization`,`Bearer ${r}`),i.set(`chatgpt-account-id`,n),i.set(`originator`,`pi`);let a=j?`pi (${j.platform()} ${j.release()}; ${j.arch()})`:`pi (browser)`;return i.set(`User-Agent`,a),i}function tt(e,t,n,r,i){let a=et(e,t,n,r);return a.set(`OpenAI-Beta`,`responses=experimental`),a.set(`accept`,`text/event-stream`),a.set(`content-type`,`application/json`),i&&(a.set(`session-id`,i),a.set(`x-client-request-id`,i)),a}function nt(e,t,n,r,i){let a=et(e,t,n,r);return a.delete(`accept`),a.delete(`content-type`),a.delete(`OpenAI-Beta`),a.delete(`openai-beta`),a.set(`OpenAI-Beta`,De),a.set(`x-client-request-id`,i),a.set(`session-id`,i),a}export{Me as closeOpenAICodexWebSocketSessions,Ae as getOpenAICodexWebSocketDebugStats,je as resetOpenAICodexWebSocketDebugStats,R as stream,ge as streamSimple};
@@ -1,5 +0,0 @@
1
- import{i as e}from"./diagnostics-DN_idNHx.js";import{n as t,t as n}from"./models-BSkXF4T6.js";import{n as r}from"./json-parse-CgFfIg4Q.js";import{t as i}from"./provider-env-CTOcDKrQ.js";import{i as a,n as o,o as s,t as c}from"./transform-messages-XkZ1QnTb.js";import{t as l}from"./headers-CbDaTl3c.js";import{t as u}from"./provider-retry-C8PJzY_l.js";import{t as d}from"./sanitize-unicode-DmIE6hZJ.js";import{a as f,i as p,n as m,r as h,t as g}from"./constrained-sampling-DafcjXU6.js";import{n as _,t as v}from"./github-copilot-headers-DRgtIyTm.js";import{n as y}from"./openai-DQxsE__c.js";import{n as b,t as x}from"./error-body-pkrba6pf.js";import{t as S}from"./openai-prompt-cache-DXo9f3w5.js";import{t as C}from"./hash-yQufAZII.js";function w(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function T(e,t,n){if(t)return t;if(w(n,`authorization`)||w(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function E(e){for(let t of e)if(t.role===`toolResult`||t.role===`assistant`&&t.content.some(e=>e.type===`toolCall`))return!0;return!1}function D(e){let t=new Set;for(let n of e)if(n.role===`toolResult`)for(let e of n.addedToolNames??[])t.add(e);return t}function O(e,t){if(!e)return[];let n=new Map(e.map(e=>[e.name,e]));return Array.from(t).map(e=>n.get(e)).filter(e=>e!==void 0)}function k(e){return e.type===`text`}function A(e){return e.type===`thinking`}function j(e){return e.type===`toolCall`}function M(e){return e.type===`image`}function N(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.type===`reasoning.encrypted`&&typeof t.id==`string`&&t.id.length>0&&typeof t.data==`string`&&t.data.length>0}function P(e,t){return e||(i(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}var F=(t,n,i)=>{let a=new e;return(async()=>{let e={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let o=T(t.provider,i?.apiKey,i?.headers),s=$(t),c=m(n.tools,s.supportsOpenAIGrammarTools),d=P(i?.cacheRetention,i?.env),f=d===`none`?void 0:i?.sessionId,p=L(t,n,o,i?.headers,i?.fetch,f,s),h=R(t,n,i,s,d,c),_=await i?.onPayload?.(h,t);_!==void 0&&(h=_);let v={...i?.signal?{signal:i.signal}:{},...i?.timeoutMs===void 0?{}:{timeout:i.timeoutMs},maxRetries:0},{data:y,response:b}=await u(()=>p.chat.completions.create(h,v).withResponse(),{maxRetries:i?.maxRetries,maxRetryDelayMs:i?.maxRetryDelayMs,signal:i?.signal});await i?.onResponse?.({status:b.status,headers:l(b.headers)},t),a.push({type:`start`,partial:e});let x=null,S=null,C=!1,w=new Map,E=new Map,D=new Map,O=e.content,k=e=>O.indexOf(e),A=e=>{let t=e.customInput?.property;if(t===void 0)return``;let n=e.arguments[t];return typeof n==`string`?n:``},j=(e,t,n)=>{let r=e.customInput;if(!r)return;let i=g(r.jsonBuffer,r.property,t,n);return e.arguments={[r.property]:t},i},M=t=>{let n=k(t);if(n!==-1){if(t.type===`text`)a.push({type:`text_end`,contentIndex:n,content:t.text,partial:e});else if(t.type===`thinking`)a.push({type:`thinking_end`,contentIndex:n,content:t.thinking,partial:e});else if(t.type===`toolCall`){if(t.customInput){let r=j(t,A(t),!0);r!==void 0&&a.push({type:`toolcall_delta`,contentIndex:n,delta:r,partial:e})}else t.arguments=r(t.partialArgs);delete t.partialArgs,delete t.customInput,delete t.streamIndex,a.push({type:`toolcall_end`,contentIndex:n,toolCall:t,partial:e})}}},F=()=>(x||(x={type:`text`,text:``},O.push(x),a.push({type:`text_start`,contentIndex:k(x),partial:e})),x),I=t=>(S||(S={type:`thinking`,thinking:``,thinkingSignature:t},O.push(S),a.push({type:`thinking_start`,contentIndex:k(S),partial:e})),S),z=e=>{if(!e.id)return;let t=D.get(e.id);t&&(e.thoughtSignature=t,D.delete(e.id))},B=t=>{let n=typeof t.index==`number`?t.index:void 0,r=t.function?.name??t.custom?.name??``,i=n===void 0?void 0:w.get(n);if(!i&&t.id&&(i=E.get(t.id)),!i){let o=t.custom&&!t.function?c.get(r)??`input`:void 0,s=o!==void 0;i={type:`toolCall`,id:t.id||``,name:r,arguments:s?{[o]:``}:{},partialArgs:s?void 0:``,customInput:s?{property:o,jsonBuffer:{input:``,started:!1,closed:!1}}:void 0,streamIndex:n},n!==void 0&&w.set(n,i),t.id&&E.set(t.id,i),O.push(i),a.push({type:`toolcall_start`,contentIndex:k(i),partial:e})}if(n!==void 0&&i.streamIndex===void 0&&(i.streamIndex=n,w.set(n,i)),t.id&&E.set(t.id,i),!i.name&&r&&(i.name=r),t.custom&&!t.function&&!i.customInput){let e=c.get(i.name)??`input`;i.arguments={[e]:``},i.customInput={property:e,jsonBuffer:{input:``,started:!1,closed:!1}},delete i.partialArgs}return z(i),i};for await(let n of y){if(!n||typeof n!=`object`)continue;e.responseId||=n.id,typeof n.model==`string`&&n.model.length>0&&n.model!==t.id&&(e.responseModel||=n.model),n.usage&&(e.usage=Z(n.usage,t));let i=Array.isArray(n.choices)?n.choices[0]:void 0;if(i){if(!n.usage&&i.usage&&(e.usage=Z(i.usage,t)),i.finish_reason){e.rawStopReason=i.finish_reason;let t=Q(i.finish_reason);e.stopReason=t.stopReason,t.errorMessage&&(e.errorMessage=t.errorMessage),C=!0}if(i.delta){if(i.delta.content!==null&&i.delta.content!==void 0&&i.delta.content.length>0){let t=F();t.text+=i.delta.content,a.push({type:`text_delta`,contentIndex:k(t),delta:i.delta.content,partial:e})}let n=[`reasoning_content`,`reasoning`,`reasoning_text`],o=i.delta,s=null;for(let e of n){let t=o[e];if(typeof t==`string`&&t.length>0){s=e;break}}if(s){let n=o[s];if(typeof n==`string`&&n.length>0){let r=I(t.provider===`opencode-go`&&s===`reasoning`?`reasoning_content`:s);r.thinking+=n,a.push({type:`thinking_delta`,contentIndex:k(r),delta:n,partial:e})}}if(i?.delta?.tool_calls)for(let t of i.delta.tool_calls){let n=B(t);!n.id&&t.id&&(n.id=t.id,E.set(t.id,n));let i=t.function?.name??t.custom?.name;!n.name&&i&&(n.name=i);let o=``;t.function?.arguments?(o=t.function.arguments,n.partialArgs=(n.partialArgs??``)+t.function.arguments,n.arguments=r(n.partialArgs)):t.custom?.input&&(o=j(n,A(n)+t.custom.input,!1)??``),a.push({type:`toolcall_delta`,contentIndex:k(n),delta:o,partial:e})}let c=i.delta.reasoning_details;if(Array.isArray(c)){for(let e of c)if(N(e)){let t=JSON.stringify(e),n=E.get(e.id);n?n.thoughtSignature=t:D.set(e.id,t)}}}}}for(let e of O)M(e);if(i?.signal?.aborted||e.stopReason===`aborted`)throw Error(`Request was aborted`);if(!C&&!s.supportsFinishReason&&(e.stopReason=e.content.some(e=>e.type===`toolCall`)?`toolUse`:`stop`),e.stopReason===`error`)throw Error(e.errorMessage||`Provider returned an error stop reason`);if(s.supportsFinishReason&&!C||e.stopReason===`pending`)throw Error(`Stream ended without finish_reason`);a.push({type:`done`,reason:e.stopReason,message:e}),a.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialArgs,delete t.customInput,delete t.streamIndex;e.stopReason=i?.signal?.aborted?`aborted`:`error`,e.errorMessage=x(b(t));let n=t?.error?.metadata?.raw;n&&!e.errorMessage.includes(String(n))&&(e.errorMessage+=`\n${n}`),a.push({type:`error`,reason:e.stopReason,error:e}),a.end()}})(),a},I=(e,n,r)=>{T(e.provider,r?.apiKey,r?.headers);let i=a(e,n,r,r?.apiKey),o=r?.reasoning?t(e,r.reasoning):void 0,s=o===`off`?void 0:o,c=r?.toolChoice;return F(e,n,{...i,reasoningEffort:s,toolChoice:c,thinkingBudgets:r?.thinkingBudgets})};function L(e,t,n,r,i,a,o=$(e)){let s={...e.headers};if(e.provider===`github-copilot`){let e=_(t.messages),n=v({messages:t.messages,hasImages:e});Object.assign(s,n)}return a&&o.sendSessionAffinityHeaders&&(o.sessionAffinityFormat===`openrouter`?s[`x-session-id`]=a:(o.sessionAffinityFormat===`openai`&&(s.session_id=a),s[`x-client-request-id`]=a,s[`x-session-affinity`]=a)),r&&Object.assign(s,r),new y({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:i,defaultHeaders:s})}function R(e,t,n,r=$(e),i=P(n?.cacheRetention,n?.env),a=m(t.tools,r.supportsOpenAIGrammarTools)){let c=Y(e,t,r,{grammarToolInputProperties:a}),l=V(r,i),u={model:e.id,messages:c,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&i!==`none`||i===`long`&&r.supportsLongCacheRetention?S(n?.sessionId):void 0,prompt_cache_retention:i===`long`&&r.supportsLongCacheRetention?`24h`:void 0};r.supportsUsageInStreaming!==!1&&(u.stream_options={include_usage:!0}),r.supportsStore&&(u.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?u.max_tokens=n.maxTokens:u.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(u.temperature=n.temperature);let d=r.deferredToolsMode===`kimi`?D(t.messages):new Set,f=t.tools?.filter(e=>!d.has(e.name));if(f&&f.length>0?(u.tools=X(f,r),r.zaiToolStream&&(u.tool_stream=!0)):E(t.messages)&&(u.tools=[]),l&&H(c,u.tools,l),n?.toolChoice&&(u.tool_choice=n.toolChoice),r.thinkingFormat===`zai`&&e.reasoning){let t=u;if(t.thinking=n?.reasoningEffort?{type:`enabled`,clear_thinking:!1}:{type:`disabled`},n?.reasoningEffort&&r.supportsReasoningEffort){let r=e.thinkingLevelMap?.[n.reasoningEffort],i=r===void 0?n.reasoningEffort:r;typeof i==`string`&&(t.reasoning_effort=i)}}else if(r.thinkingFormat===`qwen`&&e.reasoning){if(u.enable_thinking=!!n?.reasoningEffort,n?.reasoningEffort&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;typeof t==`string`&&(u.reasoning_effort=t)}}else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)u.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort,preserve_thinking:!0};else if(r.thinkingFormat===`chat-template`&&e.reasoning){let t=z(e,n,r.chatTemplateKwargs);t&&(u.chat_template_kwargs=t)}else if(r.thinkingFormat===`baseten`&&e.reasoning){let t=u,i=z(e,n,r.chatTemplateArgs);if(i&&(t.chat_template_args=i),r.supportsReasoningEffort){let r=n?.reasoningEffort,i=r?e.thinkingLevelMap?.[r]:e.thinkingLevelMap?.off,a=i===void 0?r:i;typeof a==`string`&&(t.reasoning_effort=a)}}else if(r.thinkingFormat===`deepseek`&&e.reasoning)n?.reasoningEffort?u.thinking={type:`enabled`}:e.thinkingLevelMap?.off!==null&&(u.thinking={type:`disabled`}),n?.reasoningEffort&&r.supportsReasoningEffort&&(u.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort);else if(r.thinkingFormat===`openrouter`&&e.reasoning){let t=u;n?.reasoningEffort?t.reasoning={effort:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort}:e.thinkingLevelMap?.off!==null&&(t.reasoning={effort:e.thinkingLevelMap?.off??`none`})}else if(r.thinkingFormat===`ant-ling`&&e.reasoning&&n?.reasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort];typeof t==`string`&&(u.reasoning={effort:t})}else if(r.thinkingFormat===`together`&&e.reasoning){let t=u;t.reasoning={enabled:!!n?.reasoningEffort},n?.reasoningEffort&&r.supportsReasoningEffort&&(t.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort)}else if(r.thinkingFormat===`string-thinking`&&e.reasoning){let t=u;n?.reasoningEffort?t.thinking=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:e.thinkingLevelMap?.off!==null&&(t.thinking=e.thinkingLevelMap?.off??`none`)}else if(n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort)u.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;else if(!n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.off;typeof t==`string`&&(u.reasoning_effort=t)}if(r.supportsThinkingTokenBudget&&n?.reasoningEffort&&e.reasoning){let t=s(n.reasoningEffort),r={minimal:1024,low:2048,medium:8192,high:16384,...n.thinkingBudgets},i=u.max_tokens??u.max_completion_tokens??e.maxTokens,a=Math.min(r[t],Math.max(0,i-o));a>0&&(u.thinking_token_budget=a)}if(e.compat?.openRouterRouting&&(u.provider=e.compat.openRouterRouting),e.compat?.vercelGatewayRouting){let t=e.compat.vercelGatewayRouting;if(t.only||t.order){let e={};t.only&&(e.only=t.only),t.order&&(e.order=t.order),u.providerOptions={gateway:e}}}return n?.samplingParams&&Object.assign(u,n.samplingParams),u}function z(e,t,n){let r={};for(let[i,a]of Object.entries(n)){let n=B(e,t,a);n!==void 0&&(r[i]=n)}return Object.keys(r).length>0?r:void 0}function B(e,t,n){if(typeof n!=`object`||!n)return n;let r=t?.reasoningEffort;if(!r&&n.omitWhenOff)return;if(n.$var===`thinking.enabled`)return!!r;let i=r?e.thinkingLevelMap?.[r]:e.thinkingLevelMap?.off;return i===void 0?r:typeof i==`string`?i:void 0}function V(e,t){if(e.cacheControlFormat!==`anthropic`||t===`none`)return;let n=t===`long`&&e.supportsLongCacheRetention?`1h`:void 0;return{type:`ephemeral`,...n?{ttl:n}:{}}}function H(e,t,n){U(e,n),G(t,n),W(e,n)}function U(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){K(n,t);return}}function W(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`||r.role===`tool`)&&q(r,t))return}}function G(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function K(e,t){return J(e,t)}function q(e,t){return e.role===`user`||e.role===`assistant`||e.role===`tool`?J(e,t):!1}function J(e,t){let n=e.content;if(typeof n==`string`)return n.length!==0&&(e.content=[{type:`text`,text:n,cache_control:t}],!0);if(!Array.isArray(n))return!1;for(let e=n.length-1;e>=0;e--){let r=n[e];if(r?.type===`text`){let e=r;return e.cache_control=t,!0}}return!1}function Y(e,t,n,r){let i=[],a=t=>{if(t.includes(`|`)){let e=t.indexOf(`|`),n=t.slice(0,e).replace(/[^a-zA-Z0-9_-]/g,`_`),r=t.slice(e+1).replace(/[^a-zA-Z0-9_-]/g,`_`),i=r.length>0?`${n}_${r}`:n;if(i.length<=40)return i;let a=C(t).slice(0,8);return`${n.slice(0,Math.max(1,40-a.length-1))}_${a}`}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},o=c(t.messages,e,e=>a(e));if(t.systemPrompt){let r=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;i.push({role:r,content:d(t.systemPrompt)})}let s=null;for(let a=0;a<o.length;a++){let c=o[a];if(n.requiresAssistantAfterToolResult&&s===`toolResult`&&c.role===`user`&&i.push({role:`assistant`,content:`I have processed the tool results.`}),c.role===`user`)if(typeof c.content==`string`)i.push({role:`user`,content:d(c.content)});else{let e=c.content.map(e=>e.type===`text`?{type:`text`,text:d(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});if(e.length===0)continue;i.push({role:`user`,content:e})}else if(c.role===`assistant`){let t={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},a=c.content.filter(k).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:d(e.text)})),o=a.map(e=>e.text).join(``),s=c.content.filter(A).filter(e=>e.thinking.trim().length>0);if(s.length>0)if(n.requiresThinkingAsText)t.content=[{type:`text`,text:s.map(e=>d(e.thinking)).join(`
2
-
3
- `)},...a];else{o.length>0&&(t.content=o);let n=s[0].thinkingSignature;e.provider===`opencode-go`&&n===`reasoning`&&(n=`reasoning_content`),n&&n.length>0&&(t[n]=s.map(e=>e.thinking).join(`
4
- `))}else o.length>0&&(t.content=o);let l=c.content.filter(j);if(l.length>0){t.tool_calls=l.map(e=>{let t=r?.grammarToolInputProperties?.get(e.name);return t===void 0?{id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments)}}:{id:e.id,type:`custom`,custom:{name:e.name,input:d(h(e.name,e.arguments,t))}}});let e=l.filter(e=>e.thoughtSignature).map(e=>{try{return JSON.parse(e.thoughtSignature)}catch{return null}}).filter(Boolean);e.length>0&&(t.reasoning_details=e)}n.requiresReasoningContentOnAssistantMessages&&e.reasoning&&t.reasoning_content===void 0&&(t.reasoning_content=``);let u=t.content;if(!(u!=null&&u.length>0)&&!t.tool_calls)continue;i.push(t)}else if(c.role===`toolResult`){let r=[],c=new Set,l=a;for(;l<o.length&&o[l].role===`toolResult`;l++){let t=o[l],a=t.content.filter(k).map(e=>e.text).join(`
5
- `),s=t.content.some(e=>e.type===`image`),u=a.length>0?a:s?`(see attached image)`:`(no tool output)`,f={role:`tool`,content:d(u),tool_call_id:t.toolCallId};if(n.requiresToolResultName&&t.toolName&&(f.name=t.toolName),i.push(f),n.deferredToolsMode===`kimi`)for(let e of t.addedToolNames??[])c.add(e);if(s&&e.input.includes(`image`))for(let e of t.content)M(e)&&r.push({type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}})}if(a=l-1,r.length>0?(n.requiresAssistantAfterToolResult&&i.push({role:`assistant`,content:`I have processed the tool results.`}),i.push({role:`user`,content:[{type:`text`,text:`Attached image(s) from tool result:`},...r]}),s=`user`):s=`toolResult`,c.size>0){let e=O(t.tools,c);if(e.length>0){let t={role:`system`,tools:X(e,n)};i.push(t)}}continue}s=c.role}return i}function X(e,t){return e.map(e=>{let n=p(e,t.supportsOpenAIGrammarTools);if(n)return{type:`custom`,custom:{name:e.name,description:e.description,format:{type:`grammar`,grammar:{syntax:n.format,definition:n.definition}}}};let r=f(e,t.supportsStrictMode!==!1);return{type:`function`,function:{name:e.name,description:e.description,parameters:e.parameters,...t.supportsStrictMode!==!1&&{strict:r??!1}}}})}function Z(e,t){let r=e.prompt_tokens||0,i=e.prompt_tokens_details?.cached_tokens??e.prompt_cache_hit_tokens??0,a=e.prompt_tokens_details?.cache_write_tokens||0,o=Math.max(0,r-i-a),s=e.completion_tokens||0,c={input:o,output:s,cacheRead:i,cacheWrite:a,reasoning:e.completion_tokens_details?.reasoning_tokens||0,totalTokens:o+s+i+a,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};return n(t,c),c}function Q(e){if(e===null)return{stopReason:`stop`};switch(e){case`stop`:case`end`:return{stopReason:`stop`};case`length`:return{stopReason:`length`};case`function_call`:case`tool_calls`:return{stopReason:`toolUse`};case`content_filter`:return{stopReason:`error`,errorMessage:`Provider finish_reason: content_filter`};case`network_error`:return{stopReason:`error`,errorMessage:`Provider finish_reason: network_error`};default:return{stopReason:`error`,errorMessage:`Provider finish_reason: ${e}`}}}function ee(e){let t=e.provider,n=e.baseUrl,r=t===`zai`||t===`zai-coding-cn`||n.includes(`api.z.ai`)||n.includes(`open.bigmodel.cn`),i=t===`together`||n.includes(`api.together.ai`)||n.includes(`api.together.xyz`),a=t===`moonshotai`||t===`moonshotai-cn`||n.includes(`api.moonshot.`),o=t===`openrouter`||n.includes(`openrouter.ai`),s=t===`cloudflare-workers-ai`||n.includes(`api.cloudflare.com`),c=t===`cloudflare-ai-gateway`||n.includes(`gateway.ai.cloudflare.com`),l=t===`nvidia`||n.includes(`integrate.api.nvidia.com`),u=t===`ant-ling`||n.includes(`api.ant-ling.com`),d=l||t===`cerebras`||n.includes(`cerebras.ai`)||t===`xai`||n.includes(`api.x.ai`)||i||n.includes(`chutes.ai`)||n.includes(`deepseek.com`)||r||a||t===`opencode`||n.includes(`opencode.ai`)||s||c||u,f=n.includes(`chutes.ai`)||a||c||i||l||u||r,p=t===`xai`||n.includes(`api.x.ai`),m=t===`deepseek`||n.includes(`deepseek.com`),h=o&&(e.id.startsWith(`anthropic/`)||e.id.startsWith(`openai/`)),g=t===`openrouter`&&e.id.startsWith(`anthropic/`)?`anthropic`:void 0;return{supportsStore:!d,supportsDeveloperRole:h||!d&&!o,supportsReasoningEffort:!p&&!r&&!a&&!i&&!c&&!l&&!u,supportsUsageInStreaming:!0,supportsFinishReason:!0,maxTokensField:f?`max_tokens`:`max_completion_tokens`,requiresToolResultName:!1,requiresAssistantAfterToolResult:!1,requiresThinkingAsText:!1,requiresReasoningContentOnAssistantMessages:m,thinkingFormat:m?`deepseek`:r?`zai`:i?`together`:u?`ant-ling`:o?`openrouter`:`openai`,openRouterRouting:{},vercelGatewayRouting:{},chatTemplateKwargs:{},chatTemplateArgs:{},zaiToolStream:!1,supportsThinkingTokenBudget:!1,supportsStrictMode:!a&&!i&&!c&&!l,supportsOpenAIGrammarTools:!1,cacheControlFormat:g,sendSessionAffinityHeaders:!1,deferredToolsMode:void 0,sessionAffinityFormat:o?`openrouter`:`openai`,supportsLongCacheRetention:!(i||s||c||l||u)}}function $(e){let t=ee(e);return e.compat?{supportsStore:e.compat.supportsStore??t.supportsStore,supportsDeveloperRole:e.compat.supportsDeveloperRole??t.supportsDeveloperRole,supportsReasoningEffort:e.compat.supportsReasoningEffort??t.supportsReasoningEffort,supportsUsageInStreaming:e.compat.supportsUsageInStreaming??t.supportsUsageInStreaming,supportsFinishReason:e.compat.supportsFinishReason??t.supportsFinishReason,maxTokensField:e.compat.maxTokensField??t.maxTokensField,requiresToolResultName:e.compat.requiresToolResultName??t.requiresToolResultName,requiresAssistantAfterToolResult:e.compat.requiresAssistantAfterToolResult??t.requiresAssistantAfterToolResult,requiresThinkingAsText:e.compat.requiresThinkingAsText??t.requiresThinkingAsText,requiresReasoningContentOnAssistantMessages:e.compat.requiresReasoningContentOnAssistantMessages??t.requiresReasoningContentOnAssistantMessages,thinkingFormat:e.compat.thinkingFormat??t.thinkingFormat,openRouterRouting:e.compat.openRouterRouting??{},vercelGatewayRouting:e.compat.vercelGatewayRouting??t.vercelGatewayRouting,chatTemplateKwargs:e.compat.chatTemplateKwargs??t.chatTemplateKwargs,chatTemplateArgs:e.compat.chatTemplateArgs??t.chatTemplateArgs,zaiToolStream:e.compat.zaiToolStream??t.zaiToolStream,supportsThinkingTokenBudget:e.compat.supportsThinkingTokenBudget??t.supportsThinkingTokenBudget,supportsStrictMode:e.compat.supportsStrictMode??t.supportsStrictMode,supportsOpenAIGrammarTools:e.compat.supportsOpenAIGrammarTools??t.supportsOpenAIGrammarTools,cacheControlFormat:e.compat.cacheControlFormat??t.cacheControlFormat,sendSessionAffinityHeaders:e.compat.sendSessionAffinityHeaders??t.sendSessionAffinityHeaders,deferredToolsMode:e.compat.deferredToolsMode??t.deferredToolsMode,sessionAffinityFormat:e.compat.sessionAffinityFormat??t.sessionAffinityFormat,supportsLongCacheRetention:e.compat.supportsLongCacheRetention??t.supportsLongCacheRetention}:t}export{Y as convertMessages,F as stream,I as streamSimple};
@@ -1 +0,0 @@
1
- import{i as e}from"./diagnostics-DN_idNHx.js";import{n as t}from"./models-BSkXF4T6.js";import{t as n}from"./provider-env-CTOcDKrQ.js";import{i as r}from"./transform-messages-XkZ1QnTb.js";import{t as i}from"./deferred-tools-C1IEsG5C.js";import{t as a}from"./headers-CbDaTl3c.js";import{t as o}from"./provider-retry-C8PJzY_l.js";import{n as s}from"./constrained-sampling-DafcjXU6.js";import{n as c,t as l}from"./github-copilot-headers-DRgtIyTm.js";import{n as u}from"./openai-DQxsE__c.js";import{n as d,t as f}from"./error-body-pkrba6pf.js";import{t as p}from"./openai-prompt-cache-DXo9f3w5.js";import{n as m,r as h,t as g}from"./openai-responses-shared-BrIGUa2e.js";var _=new Set([`openai`,`openai-codex`,`opencode`]),v=16;function y(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function b(e,t,n){if(t)return t;if(y(n,`authorization`)||y(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function x(e){return e.provider===`openrouter`||e.baseUrl.includes(`openrouter.ai`)?`openrouter`:`openai`}function S(e,t){return e||(n(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}function C(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,sessionAffinityFormat:e.compat?.sessionAffinityFormat??x(e),supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0,supportsStrictMode:e.compat?.supportsStrictMode??!1,supportsOpenAIGrammarTools:e.compat?.supportsOpenAIGrammarTools??!1,supportsToolSearch:e.compat?.supportsToolSearch??!1,supportsExplicitPromptCacheMode:e.compat?.supportsExplicitPromptCacheMode??!1}}function w(e,t){return t===`long`&&e.supportsLongCacheRetention?`24h`:void 0}function T(e){return f(d(e),`OpenAI API error`)}var E=(t,n,r)=>{let i=new e;return(async()=>{let e={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let c=b(t.provider,r?.apiKey,r?.headers),l=S(r?.cacheRetention,r?.env)===`none`?void 0:r?.sessionId,u=C(t),d=s(n.tools,u.supportsOpenAIGrammarTools),f=O(t,n,c,r?.headers,r?.fetch,l),p=k(t,n,r,u,d),m=await r?.onPayload?.(p,t);m!==void 0&&(p=m);let g={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:0},{data:_,response:v}=await o(()=>f.responses.create(p,g).withResponse(),{maxRetries:r?.maxRetries,maxRetryDelayMs:r?.maxRetryDelayMs,signal:r?.signal});if(await r?.onResponse?.({status:v.status,headers:a(v.headers)},t),i.push({type:`start`,partial:e}),await h(_,e,i,t,{serviceTier:r?.serviceTier,grammarToolInputProperties:d,applyServiceTierPricing:(e,n)=>j(e,n,t)}),r?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`pending`)throw Error(`OpenAI Responses stream ended without a stop reason`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(e.errorMessage||`An unknown error occurred`);i.push({type:`done`,reason:e.stopReason,message:e}),i.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialJson,delete t.customInput;e.stopReason=r?.signal?.aborted?`aborted`:`error`,e.errorMessage=T(t),i.push({type:`error`,reason:e.stopReason,error:e}),i.end()}})(),i},D=(e,n,i)=>{b(e.provider,i?.apiKey,i?.headers);let a=r(e,n,i,i?.apiKey),o=i?.reasoning?t(e,i.reasoning):void 0,s=o===`off`?void 0:o;return E(e,n,{...a,reasoningEffort:s})};function O(e,t,n,r,i,a){let o=C(e),s={...e.headers};if(e.provider===`github-copilot`){let e=c(t.messages),n=l({messages:t.messages,hasImages:e});Object.assign(s,n)}return a&&(o.sessionAffinityFormat===`openrouter`?s[`x-session-id`]=a:(o.sessionAffinityFormat===`openai`&&(s.session_id=a),s[`x-client-request-id`]=a)),r&&Object.assign(s,r),new u({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:i,defaultHeaders:s})}function k(e,t,n,r=C(e),a=s(t.tools,r.supportsOpenAIGrammarTools)){let o=i(t,r.supportsToolSearch),c=g(e,t,_,{grammarToolInputProperties:a,deferredTools:o.deferred,toolOptions:{supportsStrictMode:r.supportsStrictMode,supportsOpenAIGrammarTools:r.supportsOpenAIGrammarTools}}),l=S(n?.cacheRetention,n?.env),u=l===`none`&&r.supportsExplicitPromptCacheMode,d={model:e.id,input:c,stream:!0,prompt_cache_key:l===`none`?void 0:p(n?.sessionId),prompt_cache_retention:w(r,l),prompt_cache_options:u?{mode:`explicit`}:void 0,store:!1};return n?.maxTokens&&(d.max_output_tokens=Math.max(n.maxTokens,v)),n?.temperature!==void 0&&(d.temperature=n?.temperature),n?.serviceTier!==void 0&&(d.service_tier=n.serviceTier),o.immediate.length>0&&(d.tools=m(o.immediate,{supportsStrictMode:r.supportsStrictMode,supportsOpenAIGrammarTools:r.supportsOpenAIGrammarTools})),n?.toolChoice!==void 0&&(d.tool_choice=n.toolChoice),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(d.reasoning={effort:n?.reasoningEffort?e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:`medium`,summary:n?.reasoningSummary||`auto`},d.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&e.thinkingLevelMap?.off!==null&&(d.reasoning={effort:e.thinkingLevelMap?.off??`none`}),e.provider===`xai`&&(d.include=[`reasoning.encrypted_content`])),n?.samplingParams&&Object.assign(d,n.samplingParams),d}function A(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function j(e,t,n){let r=A(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{E as stream,D as streamSimple};
@@ -1 +0,0 @@
1
- import{h as e,z as t}from"./account-store-BkG4BDQC.js";import{a as n}from"./compat-C0CyHyoL.js";import{r,s as i}from"./legacy-api-aliases-C0CAIWhd.js";import"./provider-settings-CqsZtmc2.js";import{fetchModels as a,getCatalog as o}from"./openrouter-models-BVfLgK5R.js";import{loginIntercepted as s}from"./openrouter-oauth-DQLx11_A.js";var c=`openrouter`,l=`https://openrouter.ai/api/v1`,u=`openai-completions`,d=`${c}-openai`,f={"HTTP-Referer":`https://sliccy.ai`,"X-Title":`SLICC`};function p(e){return{...e,baseUrl:l,api:u}}function m(e){return{...e??{},...f}}var h=(t,n,i={})=>r(p(t),n,{...i,apiKey:e(c)??i.apiKey,headers:m(i.headers)}),g=(t,n,r={})=>i(p(t),n,{...r,apiKey:e(c)??r.apiKey,headers:m(r.headers)}),_={id:c,name:`OpenRouter`,description:`Access OpenRouter models with one-click PKCE login. No pasted API key is required.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`anthropic/claude-sonnet-4.6`,oauthTokenDomains:[`openrouter.ai`,`*.openrouter.ai`],getModelIds:o,refreshModels:async()=>{await a()},onOAuthLoginIntercepted:async(e,t,n)=>{await s(e,()=>void 0,n),await a().catch(()=>void 0),t()},onOAuthLogout:async()=>{await t({providerId:c,accessToken:``})}};function v(){n({api:d,stream:h,streamSimple:g})}export{_ as config,v as register};
@@ -1 +0,0 @@
1
- import{t as e}from"./store-DmIA09wr.js";export{e as readMcpAuthEntries};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/azure-openai-DauBJZ6w.js","assets/account-store-BkG4BDQC.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/compat-C0CyHyoL.js","assets/models-BSkXF4T6.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-CrhNqqEN.js","assets/logger-DDBAeTLF.js","assets/context-compaction-MXRS4Kb2.js","assets/src-CAWTvdAa.js","assets/proxied-fetch-ULPrH97b.js","assets/base64-DpPqYZJF.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-DCQNOMWj.js","assets/secrets-bridge-client-BZMh3a0J.js","assets/port-bridge-client-Bg6_jjLD.js","assets/tool-ui-C-E235kX.js","assets/logger-BoSvu4mW.js","assets/tool-result-images-D8kQ0hH0.js","assets/panel-rpc-B3MSVImO.js","assets/bedrock-camp-DMGplF70.js","assets/transform-messages-XkZ1QnTb.js","assets/openai-DQxsE__c.js","assets/local-llm-B1inFenw.js","assets/legacy-api-aliases-C0CAIWhd.js","assets/adobe-AHM3MRvp.js","assets/provider-settings-CqsZtmc2.js","assets/telemetry-DqIqVG5n.js","assets/tray-runtime-config-C82czC62.js","assets/messages-BD4p8GuF.js","assets/tray-follower-status-5SqDRLX8.js","assets/clipboard-eqmn97SP.js","assets/tray-join-url-BIvzbiFR.js","assets/silent-renew-backoff-tbYCpSw6.js","assets/bridge-launch-params-B8x2eq4a.js","assets/electron-overlay-route-CjT6k9Df.js","assets/oauth-service-Dmnx-pbE.js","assets/permissions-surface-registry-CilCRwhh.js","assets/llm-session-id-bZQs6gBN.js","assets/cerebras-B1M_Nhi8.js","assets/github-copilot-q5qtLl1S.js","assets/github-xXbjvj_q.js","assets/global-db-CbuLl-zx.js","assets/openai-codex-B5d5fatr.js","assets/pkce-hGf_TEnP.js","assets/openrouter-models-BVfLgK5R.js","assets/openrouter-oauth-DQLx11_A.js","assets/openrouter-PxN34b-T.js","assets/xai-grok-BANdowXb.js","assets/xai-grok-errors-bnlIBeu-.js"])))=>i.map(i=>d[i]);
2
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./preload-helper-Czpn1I53.js";var n={include:[`*`],exclude:[`amazon-bedrock`,`xai`]},r=e({getRegisteredProviderConfig:()=>d,getRegisteredProviderIds:()=>f,registerProviderConfig:()=>p,registerProviders:()=>u,shouldIncludeProvider:()=>a}),i=Object.assign({"/packages/dev-tools/providers.build.json":n})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function a(e){let{include:t,exclude:n}=i;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}var o=Object.assign({"./built-in/azure-ai-foundry.ts":()=>t(()=>import(`./azure-ai-foundry-Bo0FAJyX.js`),[]),"./built-in/azure-openai.ts":()=>t(()=>import(`./azure-openai-DauBJZ6w.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26])),"./built-in/bedrock-camp.ts":()=>t(()=>import(`./bedrock-camp-DMGplF70.js`).then(e=>e.n),__vite__mapDeps([24,2,6,5,3,4,7,8,9,25])),"./built-in/local-llm.ts":()=>t(()=>import(`./local-llm-B1inFenw.js`),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,28]))}),s=Object.assign({"/packages/webapp/providers/adobe.ts":()=>t(()=>import(`./adobe-AHM3MRvp.js`),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,28,30,31,32,33,34,35,36,37,38,39,40,41,42])),"/packages/webapp/providers/cerebras.ts":()=>t(()=>import(`./cerebras-B1M_Nhi8.js`),__vite__mapDeps([43,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,28])),"/packages/webapp/providers/github-copilot.ts":()=>t(()=>import(`./github-copilot-q5qtLl1S.js`),__vite__mapDeps([44,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,28,30,31,32,33,34,35,36])),"/packages/webapp/providers/github.ts":()=>t(()=>import(`./github-xXbjvj_q.js`),__vite__mapDeps([45,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,30,31,34,35,36,37,38,39,40,41,46])),"/packages/webapp/providers/openai-codex.ts":()=>t(()=>import(`./openai-codex-B5d5fatr.js`),__vite__mapDeps([47,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,28,30,31,32,33,34,35,36,48])),"/packages/webapp/providers/openrouter-models.ts":()=>t(()=>import(`./openrouter-models-BVfLgK5R.js`),__vite__mapDeps([49,9])),"/packages/webapp/providers/openrouter-oauth.ts":()=>t(()=>import(`./openrouter-oauth-DQLx11_A.js`),__vite__mapDeps([50,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,48])),"/packages/webapp/providers/openrouter.ts":()=>t(()=>import(`./openrouter-PxN34b-T.js`),__vite__mapDeps([51,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,28,30,31,32,33,34,35,36,49,50,48])),"/packages/webapp/providers/xai-grok-errors.ts":()=>t(()=>import(`./xai-grok-errors-bnlIBeu-.js`),[]),"/packages/webapp/providers/xai-grok.ts":()=>t(()=>import(`./xai-grok-BANdowXb.js`),__vite__mapDeps([52,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,28,30,31,32,33,34,35,36,48,53]))}),c=new Map,l=null;function u(){return l||(l=(async()=>{for(let[e,t]of Object.entries(o)){let e=await t();e.config&&a(e.config.id)&&(c.set(e.config.id,e.config),e.register?.())}for(let[e,t]of Object.entries(s)){let e=await t();e.config&&(c.set(e.config.id,e.config),e.register?.())}})(),l)}function d(e){return c.get(e)}function f(){return[...c.keys()]}function p(e){c.set(e.id,e)}export{u as a,p as i,f as n,a as o,r,d as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{D as t,E as n,m as r,w as i}from"./account-store-BkG4BDQC.js";import{t as a}from"./compat-C0CyHyoL.js";import{t as o}from"./logger-DDBAeTLF.js";import{t as s}from"./llm-session-id-bZQs6gBN.js";import{i as c,t as l}from"./icons-DtQGhvkp.js";var u=e({lucideIconNames:()=>h,pickLucideIcon:()=>g,quickLabel:()=>f}),d=o(`quick-llm`);async function f(e){let i=r();if(!i)return d.debug(`No API key for active provider — skipping`),null;let o=t(),s=n(),c;if(c=e.modelId?b(o,e.modelId)??b(o,s):_(o,s),!c)return d.debug(`No model available for provider`,{providerId:o}),null;let l={role:`user`,content:e.prompt,timestamp:Date.now()},u={};c.provider===`adobe`&&(u[`X-Session-Id`]=S());try{let t=(await a(c,{systemPrompt:e.system,messages:[l]},{apiKey:i,maxTokens:e.maxTokens??60,temperature:e.temperature??.3,signal:e.signal,headers:Object.keys(u).length>0?u:void 0})).content.filter(e=>e.type===`text`).map(e=>e.text).join(``).trim();return t.length>0?t:null}catch(e){return d.debug(`Quick label call failed`,{error:e instanceof Error?e.message:String(e)}),null}}var p=null;function m(e){return e.replace(/([A-Z]+)([A-Z][a-z])/g,`$1-$2`).replace(/([a-z0-9])([A-Z])/g,`$1-$2`).replace(/([A-Za-z])(\d)/g,`$1-$2`).toLowerCase()}function h(){return p||=Object.keys(c).map(m).sort(),p}async function g(e){let t=h(),n=await(e.labelFn??f)({system:`You pick ONE icon for a UI element. Respond with exactly one icon name from the provided list — lowercase, no quotes, no punctuation, nothing else.`,prompt:`Pick the single most fitting icon for: ${e.subject}\n\nValid icon names:\n${t.join(` `)}`,maxTokens:16,temperature:.2,signal:e.signal});if(!n)return null;let r=n.trim().toLowerCase().replace(/[^a-z0-9-]/g,``);return l(r)?r:null}function _(e,t){let n=i(e);if(n.length===0)return;let r=n.find(e=>e.id===t)??n[0],a=y(r.id),o=n.filter(e=>v(e,r,a));return o.length===0?r:(o.sort((e,t)=>(e.cost?.input??0)-(t.cost?.input??0)),o[0])}function v(e,t,n){if(e.id===t.id)return!1;let r=t.cost?.input??1/0;if((e.cost?.input??1/0)>=r)return!1;let i=e.id.toLowerCase();switch(n){case`claude`:return i.includes(`haiku`);case`gpt`:return/(^|-)mini(-|$)|(^|-)nano(-|$)/.test(i);case`gemini`:return i.includes(`flash`);case`grok`:return/(^|-)mini(-|$)|(^|-)fast(-|$)/.test(i);case`unknown`:return!0}}function y(e){let t=e.toLowerCase();return t.includes(`claude`)?`claude`:t.includes(`gemini`)?`gemini`:t.includes(`grok`)?`grok`:/^(gpt|o\d)/.test(t)?`gpt`:`unknown`}function b(e,t){return i(e).find(e=>e.id===t)}var x=`ui-quick-llm`;function S(){return s(x)}export{u as n,f as t};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/sudo-DMWEEnXF.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/proxied-fetch-ULPrH97b.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/base64-DpPqYZJF.js","assets/src-CAWTvdAa.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/quick-llm-B1IKnoro.js","assets/account-store-BkG4BDQC.js","assets/compat-C0CyHyoL.js","assets/models-BSkXF4T6.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-CrhNqqEN.js","assets/context-compaction-MXRS4Kb2.js","assets/secret-topology-DCQNOMWj.js","assets/secrets-bridge-client-BZMh3a0J.js","assets/port-bridge-client-Bg6_jjLD.js","assets/tool-ui-C-E235kX.js","assets/logger-BoSvu4mW.js","assets/tool-result-images-D8kQ0hH0.js","assets/providers-D2SzyuS_.js","assets/panel-rpc-B3MSVImO.js","assets/bedrock-camp-DMGplF70.js","assets/transform-messages-XkZ1QnTb.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-DtQGhvkp.js","assets/panel-responder-B6PI12mV.js"])))=>i.map(i=>d[i]);
2
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./preload-helper-Czpn1I53.js";var n=e({setupSudoExtension:()=>i,setupSudoStandalone:()=>r});async function r(e){let{installSudoTestHook:n}=await t(async()=>{let{installSudoTestHook:e}=await import(`./sudo-DMWEEnXF.js`);return{installSudoTestHook:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]));n()}async function i(e){let{installPanelSudoResponder:n}=await t(async()=>{let{installPanelSudoResponder:e}=await import(`./sudo-DMWEEnXF.js`);return{installPanelSudoResponder:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]));n()}export{n,r as t};
@@ -1 +0,0 @@
1
- function e(e){return e.totalTokens||e.input+e.output+e.cacheRead+e.cacheWrite}function t(e){try{return JSON.stringify(e)??`undefined`}catch{return`[unserializable]`}}function n(e){if(typeof e==`string`)return e.length;let t=0;for(let n of e)t+=n.type===`text`?n.text.length:4800;return t}function r(e){return Math.ceil(e.length/4)}function i(e){return Math.ceil(n(e)/4)}function a(e){let n=0;if(e.role===`user`||e.role===`toolResult`)return i(e.content);for(let r of e.content)r.type===`text`?n+=r.text.length:r.type===`thinking`?n+=r.thinking.length:n+=r.name.length+t(r.arguments).length;return Math.ceil(n/4)}function o(t){let n=-1/0,r;for(let i=0;i<t.length;i++){let a=t[i];if(a.role===`assistant`){let t=a;t.timestamp>=n&&t.stopReason!==`aborted`&&t.stopReason!==`error`&&e(t.usage)>0&&(r={usage:t.usage,index:i})}n=Math.max(n,a.timestamp)}return r}function s(t){let n=o(t);if(n){let r=e(n.usage),i=0;for(let e=n.index+1;e<t.length;e++)i+=a(t[e]);return{tokens:r+i,usageTokens:r,trailingTokens:i,lastUsageIndex:n.index}}let r=0;for(let e of t)r+=a(e);return{tokens:r,usageTokens:0,trailingTokens:r,lastUsageIndex:null}}function c(e){return!e||e.length===0?0:r(t(e))}function l(e){return Array.isArray(e)}function u(e){if(l(e))return s(e);let t=s(e.messages);if(t.lastUsageIndex!==null){let n=new Set(e.messages.slice(t.lastUsageIndex+1).filter(e=>e.role===`toolResult`).flatMap(e=>e.addedToolNames??[])),r=c(e.tools?.filter(e=>n.has(e.name)));return{tokens:t.tokens+r,usageTokens:t.usageTokens,trailingTokens:t.trailingTokens+r,lastUsageIndex:t.lastUsageIndex}}let n=(e.systemPrompt?r(e.systemPrompt):0)+c(e.tools);return{tokens:t.tokens+n,usageTokens:t.usageTokens,trailingTokens:t.trailingTokens+n,lastUsageIndex:t.lastUsageIndex}}function d(e,t,n){if(e.contextWindow<=0)return Math.max(1,n);let r=e.contextWindow-u(t).tokens-4096;return Math.min(n,Math.max(1,r))}function f(e,t,n,r){let i=e.samplingParams||n?.samplingParams?{...e.samplingParams,...n?.samplingParams}:void 0;return{temperature:n?.temperature,samplingParams:i,maxTokens:d(e,t,n?.maxTokens??e.maxTokens),signal:n?.signal,telemetryContext:n?.telemetryContext,apiKey:r||n?.apiKey,fetch:n?.fetch,transport:n?.transport,cacheRetention:n?.cacheRetention,sessionId:n?.sessionId,headers:n?.headers,onPayload:n?.onPayload,onResponse:n?.onResponse,timeoutMs:n?.timeoutMs,websocketConnectTimeoutMs:n?.websocketConnectTimeoutMs,maxRetries:n?.maxRetries,maxRetryDelayMs:n?.maxRetryDelayMs,metadata:n?.metadata,env:n?.env}}var p=1024;function m(e){return e===`xhigh`||e===`max`?`high`:e}function h(e,t,n,r){let i={minimal:1024,low:2048,medium:8192,high:16384,...r}[m(n)],a=e===void 0?t:Math.min(e+i,t);return a<=i&&(i=Math.max(0,a-p)),{maxTokens:a,thinkingBudget:i}}function g(e,t){let n=[],r=!1;for(let i of e){if(i.type===`image`){r||n.push({type:`text`,text:t}),r=!0;continue}n.push(i),r=i.text===t}return n}function _(e,t){return t.input.includes(`image`)?e:e.map(e=>e.role===`user`&&Array.isArray(e.content)?{...e,content:g(e.content,`(image omitted: model does not support images)`)}:e.role===`toolResult`?{...e,content:g(e.content,`(tool image omitted: model does not support images)`)}:e)}function v(e,t,n){let r=new Map,i=_(e.map(e=>e.content==null?{...e,content:[]}:e),t).map(e=>{if(e.role===`user`)return e;if(e.role===`toolResult`){let t=r.get(e.toolCallId);return t&&t!==e.toolCallId?{...e,toolCallId:t}:e}if(e.role===`assistant`){let i=e,a=i.provider===t.provider&&i.api===t.api&&i.model===t.id,o=i.content.flatMap(e=>{if(e.type===`thinking`)return e.redacted?a?e:[]:a&&e.thinkingSignature?e:!e.thinking||e.thinking.trim()===``?[]:a?e:{type:`text`,text:e.thinking};if(e.type===`text`)return a?e:{type:`text`,text:e.text};if(e.type===`toolCall`){let o=e,s=o;if(!a&&o.thoughtSignature&&(s={...o},delete s.thoughtSignature),!a&&n){let e=n(o.id,t,i);e!==o.id&&(r.set(o.id,e),s={...s,id:e})}return s}return e});return{...i,content:o}}return e}),a=[],o=[],s=new Set,c=()=>{if(o.length>0){for(let e of o)s.has(e.id)||a.push({role:`toolResult`,toolCallId:e.id,toolName:e.name,content:[{type:`text`,text:`No result provided`}],isError:!0,timestamp:Date.now()});o=[],s=new Set}};for(let e=0;e<i.length;e++){let t=i[e];if(t.role===`assistant`){c();let e=t;if(e.stopReason===`error`||e.stopReason===`aborted`)continue;let n=e.content.filter(e=>e.type===`toolCall`);n.length>0&&(o=n,s=new Set),a.push(t)}else t.role===`toolResult`?(s.add(t.toolCallId),a.push(t)):(t.role===`user`&&c(),a.push(t))}return c(),a}export{d as a,f as i,p as n,m as o,h as r,v as t};
@@ -1,17 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/layout-schema-m9_VAwOw.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/panelize-shell-Ckrw42GR.js","assets/logger-DDBAeTLF.js","assets/virtual-device-paths-9EXC9iPp.js","assets/icons-DtQGhvkp.js","assets/src-BV6OQva_.js","assets/preload-helper-Czpn1I53.js","assets/speech-C5U8h4In.js","assets/soundscape-cues-5_sT5Un6.js","assets/panel-registry-CJdOibpf.js","assets/layout-apply-registry-Cw730jao.js","assets/trusted-layer-ghPA1ENf.js","assets/wc-live-DiqRwfJl.js","assets/account-store-BkG4BDQC.js","assets/compat-C0CyHyoL.js","assets/models-BSkXF4T6.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-CrhNqqEN.js","assets/context-compaction-MXRS4Kb2.js","assets/src-CAWTvdAa.js","assets/proxied-fetch-ULPrH97b.js","assets/base64-DpPqYZJF.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-DCQNOMWj.js","assets/secrets-bridge-client-BZMh3a0J.js","assets/port-bridge-client-Bg6_jjLD.js","assets/tool-ui-C-E235kX.js","assets/logger-BoSvu4mW.js","assets/tool-result-images-D8kQ0hH0.js","assets/providers-D2SzyuS_.js","assets/panel-rpc-B3MSVImO.js","assets/bedrock-camp-DMGplF70.js","assets/transform-messages-XkZ1QnTb.js","assets/telemetry-DqIqVG5n.js","assets/feature-flags-Cf-Bv5AK.js","assets/tray-runtime-config-C82czC62.js","assets/messages-BD4p8GuF.js","assets/setup-standalone-prelude-CFakSgWH.js","assets/bridge-launch-params-B8x2eq4a.js","assets/electron-overlay-route-CjT6k9Df.js","assets/runtime-mode-BgSVO5sw.js","assets/setup-sudo-DLsSOUDP.js","assets/tray-follower-status-5SqDRLX8.js","assets/sha256-CHfIPo1C.js","assets/chat-session-store-pWb1-jNp.js","assets/tray-leader-BIbpF_6U.js","assets/db-C7OEVMWU.js","assets/shared-Y4VMjBcs.js","assets/mime-types-ugOWOUZ9.js","assets/dictation-priming-CNllGgNq.js","assets/export-provider-BEHTjSYw.js","assets/dip-VzeVAaf7.js","assets/permissions-surface-registry-CilCRwhh.js","assets/hid-device-registry-B2R-0rNt.js","assets/serial-port-registry-B3LG5UIy.js","assets/usb-operations-Cgk-otz-.js","assets/usb-device-registry-CRsCisej.js","assets/sprinkle-renderer-CMk2ghMi.js","assets/theme-CXRqxpw6.js","assets/theme-engine-By4GU_Wc.js","assets/sprinkle-bridge-RIIOK3yH.js","assets/session-freezer-CWeTl5Ug.js","assets/attachments-CByeG2Ru.js","assets/types-idfTVsM8.js","assets/wc-follower-model-surface-B3z6dlpJ.js","assets/browser-BCEjSsoK.js","assets/wc-shell-FLfdSQyK.js","assets/timestamp-preference-sKwBl5I8.js","assets/wc-scoop-color-CByZNEJo.js","assets/wc-shell-WkeczD9x.css","assets/legacy-styles-DcRu2WCJ.js","assets/wc-transcript-export-Bx9ecGAa.js","assets/export-spool-D9AiwWeo.js","assets/follower-navigate-watcher-DZpXL_9_.js","assets/navigation-watcher-CcKsLKw9.js","assets/handoff-link-BM4ctkE8.js","assets/discovery-preference-yvSQLIqD.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{r as n}from"./src-CAWTvdAa.js";import{n as r}from"./tray-sync-protocol-BZ5yhJH9.js";import{a as i,r as a}from"./wc-live-DiqRwfJl.js";import{r as o,t as s}from"./feature-flags-Cf-Bv5AK.js";import{i as c,m as l,p as u,r as d,u as ee}from"./tray-runtime-config-C82czC62.js";import{n as te}from"./setup-standalone-prelude-CFakSgWH.js";import{n as ne,o as re,t as f}from"./tray-follower-status-5SqDRLX8.js";import{n as ie}from"./theme-engine-By4GU_Wc.js";import{i as p,r as m}from"./dip-VzeVAaf7.js";import{WcSprinkleZone as ae}from"./wc-sprinkles-CCAwa0Z7.js";import{wireWcAttach as oe}from"./wc-attach-lEHw7D9A.js";import{t as se}from"./wc-follower-model-surface-B3z6dlpJ.js";import{a as ce,i as le}from"./wc-shell-FLfdSQyK.js";import{a as ue,i as de,l as fe,r as pe,t as h}from"./wc-tray-scoops-T7dGFJhf.js";import{installLeaderPermissionsSurface as me}from"./wc-permissions-Dw-_JpYr.js";var g=t(`follower-switch-out`);function he(e,t){t.stopFollower();try{t.storage.removeItem(d),e.workerBaseUrl===null?t.storage.removeItem(c):t.storage.setItem(c,e.workerBaseUrl)}catch(e){g.error(`follower switch-out: storage write failed — state may revert on reload`,{error:e instanceof Error?e.message:String(e)})}try{let e=t.getHref(),n=l(e);n!==e&&t.replaceHref(n)}catch(e){g.error(`follower switch-out: URL normalize failed — may re-enter follower on reload`,{error:e instanceof Error?e.message:String(e)})}t.reload()}var _=6;function v(e){let{refs:t,getSync:n,getTargets:r,hasCdpBrowser:i,log:a}=e;if(t.overlaySurfaces.has(`browser`))return{overlay:document.createElement(`slicc-tab-overlay`),refresh:()=>{}};let o=document.createElement(`slicc-tab-overlay`);o.setAttribute(`heading`,`Browser · tabs in this tray`),document.body.append(o);let s=()=>{o.tabs=r().map(e=>({id:e.targetId,title:e.title||e.url||e.targetId,url:e.url}))};return t.overlaySurfaces.add(`browser`),t.dock.addEventListener(`slicc-dock-select`,e=>{e.detail?.id===`browser`&&(s(),o.show(),t.dock.collapse?.())}),o.addEventListener(`tab-activate`,t=>{let r=t.detail.id,s=n(),c=s?.getLeaderProtocolVersion()??0;if(!(s&&i()&&c>=_)){let t=o.tabs.find(e=>e.id===r)?.url;if(!t){a.warn(`WC follower browser: no URL for tab`,{id:r});return}e.window.open(t,`_blank`,`noopener`)||a.warn(`WC follower browser: window.open was blocked`,{id:r}),o.hide();return}s.requestTabTeleport(r).then(e=>{a.info(`WC follower browser: leader teleported a tab here`,{source:r,targetId:e}),o.hide()}).catch(e=>{a.error(`WC follower browser: tab teleport failed`,e)})}),{overlay:o,refresh:s}}var y=new Set([`oauth-attempt`,`connect-attempt`,`device-code-decision`]);function ge(e){return y.has(e)}var b=`slicc-signin-redirect-style`,x=`wc-signin-redirect`,S=`
3
- .${x}{display:flex;gap:10px;align-items:flex-start;margin:10px 12px;padding:12px 14px;
4
- border:1px solid var(--line);border-radius:12px;background:var(--ghost);color:var(--ink);
5
- font-family:var(--ui);font-size:13px;line-height:1.4;}
6
- .${x}__body{flex:1;min-width:0;}
7
- .${x}__title{font-weight:600;margin-bottom:2px;}
8
- .${x}__sub{color:var(--txt-2);}
9
- .${x}__open{appearance:none;border:1px solid var(--line);border-radius:8px;cursor:pointer;
10
- background:var(--canvas);color:var(--ink);font:inherit;font-weight:600;padding:6px 12px;white-space:nowrap;}
11
- .${x}__open:hover{background:var(--ghost);}
12
- .${x}__x{appearance:none;background:none;border:none;cursor:pointer;color:var(--txt-3);
13
- font:inherit;font-size:16px;line-height:1;padding:0 2px;}
14
- .${x}__x:hover{color:var(--ink);}
15
- `;function C(e){if(e.getElementById(b))return;let t=e.createElement(`style`);t.id=b,t.textContent=S,e.head.appendChild(t)}function w(e,t){C(e);let n=e.createElement(`div`);n.className=x,n.setAttribute(`role`,`status`);let r=e.createElement(`div`);r.className=`${x}__body`;let i=e.createElement(`div`);i.className=`${x}__title`,i.textContent=t.title;let a=e.createElement(`div`);a.className=`${x}__sub`,a.textContent=t.sub,r.append(i,a);let o=e.createElement(`button`);if(o.type=`button`,o.className=`${x}__open`,o.textContent=t.buttonLabel,o.addEventListener(`click`,()=>t.onOpenTab()),n.append(r,o),t.dismissible){let t=e.createElement(`button`);t.type=`button`,t.className=`${x}__x`,t.setAttribute(`aria-label`,`Dismiss`),t.textContent=`×`,t.addEventListener(`click`,()=>n.remove()),n.append(t)}return n}function T(e,t){let n=e.ownerDocument;t.onOpenTab();let r=e.querySelector(`.${x}`);if(r)return r.scrollIntoView?.({block:`nearest`}),r;let i=w(n,{title:`Sign in from the SLICC tab`,sub:`The side panel can't complete a provider login — we've switched you to the main SLICC tab. Finish signing in there (Settings › Providers), then come back.`,buttonLabel:`Open SLICC tab`,onOpenTab:t.onOpenTab,dismissible:!0});return e.append(i),i.scrollIntoView?.({block:`nearest`}),i}function E(e,t){return w(e,{title:`Set up SLICC in the main tab`,sub:`SLICC needs a model connected before it can help. Open the main SLICC tab to finish setup and sign in, then come back to the side panel.`,buttonLabel:`Open SLICC tab`,onOpenTab:t.onOpenTab,dismissible:!1})}var D=t(`wc-follower`),O=`/shared/sprinkles/welcome/`,k={sendMessage:()=>{},onEvent:()=>()=>{},stop:()=>{}};function A(e){return e===void 0||e===`active`?{kind:`active`}:e.trim()===``?null:{kind:`frozen`,sessionId:e}}function j(e,t){for(;e.firstChild;)e.removeChild(e.firstChild);let n=document.createElement(`div`);n.style.cssText=`padding:2rem;text-align:center;font-family:system-ui;`;let r=document.createElement(`h1`);r.style.color=`var(--s2-negative, #e34850)`,r.textContent=`Could not start follower`;let i=document.createElement(`p`);i.style.color=`var(--s2-content-tertiary, #717171)`,i.textContent=t,n.append(r,i),e.appendChild(n)}function M(e,t,n,r,i){let a=e=>{let t=document.createElement(`div`);return t.className=`wcui-placeholder`,t.textContent=e,t};i.files?(e.style.display=`none`,e.parentElement?.append(a(`Files live on the leader. A follower mirrors the leader's chat, sprinkles, and browser tabs - not its filesystem.`))):e.closest(`slicc-surface`)?.remove(),i.terminal?t.append(a(`The shell runs on the leader. A follower has no local terminal - drive the session through chat.`)):t.closest(`slicc-surface`)?.remove(),i.memory?n.append(a(`Memory lives on the leader. A follower has no local memory store.`)):n.closest(`slicc-surface`)?.remove(),i.monitor?(r.style.display=`none`,r.parentElement?.append(a(`Monitor reads the leader's kernel state. A follower has no local kernel.`))):r.closest(`slicc-surface`)?.remove()}var N={terminal:!0,files:!0,memory:!0,browser:!0,modelPicker:!0,history:!0,nav:!0,newSprinkle:!0,monitor:!0,showTimestamps:!0};function P(e){let t=[];for(let[n,r]of[[`terminal`,`term`],[`files`,`files`],[`memory`,`memory`],[`browser`,`browser`],[`monitor`,`monitor`],[`newSprinkle`,`new`]])e[n]||t.push(`slicc-dock-item[data-t="${r}"]`);if(e.modelPicker||t.push(`slicc-composer-meta`),e.history||t.push(`slicc-freezer`),e.nav||t.push(`slicc-nav`),!e.terminal&&!e.files&&!e.memory&&!e.browser&&!e.monitor&&t.push(`slicc-dock .div`,`slicc-dock .grow`),t.length||!e.history){let n=document.createElement(`style`),r=t.length?`${t.join(`,
16
- `)}{display:none!important;}`:``;e.history||(r+=`
17
- .wcui-appcol{padding-left:0!important;}`),n.textContent=r,document.head.append(n)}}function F(e,t){return e&&!t}async function I(t,n,r){let[{parseLayoutDocument:i},{panelizeShell:a}]=await Promise.all([e(()=>import(`./layout-schema-m9_VAwOw.js`).then(e=>e.s),__vite__mapDeps([0,1])),e(()=>import(`./panelize-shell-Ckrw42GR.js`),__vite__mapDeps([2,3,4,5,1,6,7,8,9,10,0,11,12]))]),o=i(n);if(`error`in o){r.warn(`follower: host-pushed layout failed validation — keeping the default`,{error:o.error});return}a(t.refs,o),r.info(`follower: applied host-pushed layout document`,{id:o.id,locked:o.locked===!0})}async function L(t,c,l){let d=l===`cherry`,g=d&&new URLSearchParams(window.location.search).get(`ui-only`)===`1`,_=window.location.ancestorOrigins?.[0],y=d&&(_?.startsWith(`chrome-extension://`)??!1),b;try{b=await te({runtimeMode:l,envBaseUrl:null,window,log:c})}catch(e){let n=e instanceof Error?e.message:String(e);D.error(`follower prelude failed`,{runtimeMode:l,error:n}),j(t,n);return}let x=d?b.cherryJoinUrl:ee(window.location.href,window.localStorage);if(!x){D.error(`follower mount with no join URL - falling back to live boot`);let{mountWcUiLive:n}=await e(async()=>{let{mountWcUiLive:e}=await import(`./wc-live-DiqRwfJl.js`).then(e=>e.i);return{mountWcUiLive:e}},__vite__mapDeps([13,1,14,7,15,16,17,18,19,20,3,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,5,6,8,9,10,0,68,69,70,71,12,72,73]));return n(t,c,`standalone`)}let S=a(t,d?`cherry · follower`:`follower`);if(d&&b.cherryTransport?.theme&&ie(b.cherryTransport.theme),d&&b.cherryTransport?.flags)try{let e=JSON.parse(b.cherryTransport.flags);e&&typeof e==`object`&&!Array.isArray(e)&&s(e)}catch(e){D.warn(`follower: host-pushed flags were not valid JSON — ignoring`,e)}let C=o(`panel-layouts`);if(S.refs.dockTree.tilesMovable=C,d&&b.cherryTransport?.layout)try{let e=JSON.parse(b.cherryTransport.layout);e&&typeof e==`object`&&`base`in e?C?await I(S,e,D):D.warn(`follower: ignoring host-pushed layout — the panel-layouts flag is off`):S.refs.dockTree.setTree(e)}catch(e){D.warn(`follower: host-pushed layout was not valid JSON — keeping the default`,e)}let w=d&&b.cherryTransport?.effortLevel;w?localStorage.setItem(`slicc_locked_effort_level`,w):localStorage.removeItem(`slicc_locked_effort_level`);let L=d&&b.cherryTransport?{...N,...b.cherryTransport.features}:N,_e=S.refs.composerMeta;M(S.refs.fileTree,S.refs.termSurface,S.refs.memoryHost,S.refs.monitor,L),P(L),e(async()=>{let{applyTimestampVisibility:e,initTimestampPreference:t}=await import(`./timestamp-preference-sKwBl5I8.js`).then(e=>e.a);return{applyTimestampVisibility:e,initTimestampPreference:t}},__vite__mapDeps([71,1])).then(({applyTimestampVisibility:e,initTimestampPreference:t})=>{L.showTimestamps?t():e(!1)}),e(async()=>{let{loadDipStyles:e,loadSprinkleStyles:t}=await import(`./legacy-styles-DcRu2WCJ.js`);return{loadDipStyles:e,loadSprinkleStyles:t}},__vite__mapDeps([74,7])).then(({loadDipStyles:e,loadSprinkleStyles:t})=>Promise.all([e(),t()])).catch(()=>void 0);let R=new Map,z=()=>b.cherryTransport?.emitSliccEventToHost(`slicc.open-leader-tab`),B=()=>{y&&T(S.refs.thread,{onOpenTab:z})},ve=e=>{let t=e.querySelectorAll(`img[src^="${O}"]`);return t.length!==0&&(t.forEach((t,n)=>{n===0?t.replaceWith(E(e.ownerDocument,{onOpenTab:z})):t.remove()}),!0)},ye=(e,t)=>{q.currentSync?.sendSprinkleLick(`inline`,{action:e,data:t}),ge(e)&&B()},V=new i({thread:S.refs.thread,agent:k,onQueuedChange:e=>{S.refs.queuedStack.setMessages(e)},onMessageRendered:(e,t)=>{let n=t[0];n&&(y&&ve(n),R.set(e.id,p(n,ye)))},onMessageDisposed:e=>{let t=R.get(e);t&&(m(t),R.delete(e))},readOnlyToolUi:!0});if(S.setController(V),y)for(let e of[`slicc-error-open-settings`,`slicc-error-login`,`slicc-error-change-model`])S.refs.thread.addEventListener(e,()=>B());let H=`Connecting to leader…`,U=`Ask the leader, or describe a change…`,W=(e,t)=>{S.refs.inputCard.setAttribute(`placeholder`,t),e?S.refs.inputCard.removeAttribute(`disabled`):S.refs.inputCard.setAttribute(`disabled`,``)};W(!1,H),de(S.refs.floatbar),re(e=>{try{window.localStorage.setItem(f,JSON.stringify(e))}catch{}});try{window.localStorage.setItem(f,JSON.stringify(ne()))}catch{}g||S.refs.composer.setAttribute(`ptt`,``);let be=oe({inputCard:S.refs.inputCard,freezer:S.refs.freezer,composer:S.refs.composer,noCamera:g,log:D});S.refs.inputCard.addEventListener(`submit`,e=>{let t=ce(e)??``,n=be.take();(t.trim()||n.length)&&(V.sendUserMessage(t,n,{steer:le(e)}),S.refs.inputCard.clear?.())});let G=new ae(S.refs).callbacks(),K=null;S.refs.switcher.connection=`disconnected`;let q,J=null,xe=()=>(J||=me({runtimeMode:l})?.element??null,J),Y=[],Se=v({refs:S.refs,getSync:()=>q.currentSync,getTargets:()=>Y,hasCdpBrowser:()=>F(b.hasLocalCdpSurface,g),window,log:D}),X=se({composerMeta:_e,getSync:()=>q.currentSync,getSelectedScoopJid:()=>K,modelPickerEnabled:L.modelPicker,getLockedEffortLevel:()=>localStorage.getItem(`slicc_locked_effort_level`)});q=ue({joinUrl:x,runtime:d?r:`slicc-standalone`,advertisesCdpTargets:F(b.hasLocalCdpSurface,g),onTargetsUpdated:e=>{Y=e,Se.refresh()},...d||g?{}:{onOAuthPopupRequest:(e,t)=>pe(e,t,{getPermissionsSurface:xe,window})},browserAPI:b.browser,onSnapshot:(e,t)=>{K=t,V.loadMessages(e),V.setProcessing(e.some(e=>e.isStreaming))},onUserMessage:(e,t,n,r)=>V.addUserMessage(e,r),onStatus:(e,t)=>{fe(t,K)&&V.setProcessing(e===`processing`)},setChatAgent:e=>V.setAgent(e),onTranscriptExportApprovalRequest:async t=>{let{openTranscriptExportApproval:n}=await e(async()=>{let{openTranscriptExportApproval:e}=await import(`./wc-transcript-export-Bx9ecGAa.js`);return{openTranscriptExportApproval:e}},__vite__mapDeps([75,7,76,22,47,1])),r=d?b.cherryTransport?.hostOrigin:void 0;return n({delegated:!0,selector:t.selector,signal:t.signal,...r?{hostOrigin:r}:{},...t.estimatedBytes==null?{}:{estimatedBytes:t.estimatedBytes}})},onConnectionChange:e=>{S.refs.switcher.connection=e?`connected`:`disconnected`,W(e,e?U:H),e||X.reset(),d&&b.cherryTransport?.emitSliccEventToHost(e?`slicc.follower.ready`:`slicc.follower.disconnected`)},getSelectedScoopJid:()=>K,onLeaderStalled:e=>{W(!e,e?`The leader is busy — hang on…`:U)},onGaveUp:e=>{D.error(`follower gave up reaching the leader`,{error:e}),S.refs.switcher.connection=`disconnected`,W(!1,`Couldn't reach the leader. Reload to retry.`),X.reset(),d&&b.cherryTransport?.emitSliccEventToHost(`slicc.follower.disconnected`)},...d?{}:{onJoinUrlChanged:e=>{D.info(`follower joinUrl superseded, persisting replacement`,{newJoinUrl:e}),u(window.localStorage,e)}},addSprinkle:G.addSprinkle,removeSprinkle:G.removeSprinkle,onOpen:e=>{/^https?:\/\//.test(e)?window.open(e,`_blank`,`noopener`):D.warn(`follower sprinkle open() of a local path is unavailable`,{path:e})},onScoopsList:(e,t)=>{(!K||!e.some(e=>e.jid===K))&&(K=t),S.refs.switcher.scoops=h(e),S.refs.switcher.setAttribute(`active`,K??t)},onModelsList:X.onModelsList,onModelState:X.onModelState,...d?{onCherrySliccEvent:(e,t)=>b.cherryTransport?.emitSliccEventToHost(e,t)}:{}});for(let e of[`save`,`skip`,`erase`])S.refs.freezer.addEventListener(`new-chat-${e}`,()=>{q.currentSync?.requestNewSession(e)});o(`agentic-memory`)&&S.refs.freezer.querySelector(`slicc-freezer-new`)?.setAttribute(`no-skip`,``),S.refs.switcher.addEventListener(`slicc-scoop-select`,e=>{let t=e.detail?.key;t&&(K=t,S.refs.switcher.setAttribute(`active`,t),q.currentSync?.selectScoop(t))}),d&&b.cherryTransport&&(b.cherryTransport.onHostEvent=(e,t)=>q.currentSync?.sendCherryHostEvent(e,t),b.cherryTransport.onExportRequest=(e,t,r,i)=>{let a=q.currentSync;if(!a)return Promise.reject(new n(`transfer-aborted`));let o=A(t);return o?a.requestTranscriptExport(o,r,i):Promise.reject(new n(`session-not-found`))});let Z=null;if(!d){let{startFollowerNavigateWatcher:t}=await e(async()=>{let{startFollowerNavigateWatcher:e}=await import(`./follower-navigate-watcher-DZpXL_9_.js`);return{startFollowerNavigateWatcher:e}},__vite__mapDeps([77,3,23,1,7,24,22,25,26,78,79,80]));Z=t(b.realCdpTransport,()=>q.currentSync)}let Q=!1,$=()=>{S.refs.avatarMenu.items=[{kind:`separator`},...y?[{id:`focus-leader-tab`,label:`Bring leader to front`,icon:`external-link`}]:[],{id:`export-transcript`,label:Q?`Exporting…`:`Export transcript`,icon:`download`,disabled:Q||void 0},{id:`tray-stop`,label:`Disconnect from leader`,icon:`unplug`,danger:!0}]};$(),S.refs.avatarMenu.addEventListener(`slicc-avatar-action`,t=>{let n=t.detail?.id;if(n===`focus-leader-tab`){b.cherryTransport?.emitSliccEventToHost(`slicc.focus-leader-tab`);return}if(n===`tray-stop`){window.dispatchEvent(new CustomEvent(`slicc:tray-leave`,{detail:{workerBaseUrl:null}}));return}if(n===`export-transcript`&&!Q){Q=!0,$();let t=q.currentSync;if(!t){Q=!1,$();return}let n=new AbortController;t.requestTranscriptExport({kind:`active`},n.signal).then(async t=>{let{downloadTranscriptBlob:n}=await e(async()=>{let{downloadTranscriptBlob:e}=await import(`./wc-transcript-export-Bx9ecGAa.js`);return{downloadTranscriptBlob:e}},__vite__mapDeps([75,7,76,22,47,1]));await n(t,`slicc-transcript-${new Date().toISOString().slice(0,10)}.zip`)}).catch(e=>{D.error(`follower transcript export failed`,{error:String(e)})}).finally(()=>{Q=!1,$()})}}),window.addEventListener(`slicc:tray-leave`,e=>{he({workerBaseUrl:(e.detail??{}).workerBaseUrl??null},{storage:window.localStorage,stopFollower:()=>{Z?.(),q.stop()},getHref:()=>window.location.href,replaceHref:e=>window.history.replaceState(null,``,e),reload:()=>window.location.reload()})}),D.info(`follower mounted`,{runtimeMode:l,isCherry:d})}export{L as mountWcUiFollower};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/provider-settings-CqsZtmc2.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/account-store-BkG4BDQC.js","assets/preload-helper-Czpn1I53.js","assets/compat-C0CyHyoL.js","assets/models-BSkXF4T6.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-CrhNqqEN.js","assets/logger-DDBAeTLF.js","assets/context-compaction-MXRS4Kb2.js","assets/src-CAWTvdAa.js","assets/proxied-fetch-ULPrH97b.js","assets/base64-DpPqYZJF.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-DCQNOMWj.js","assets/secrets-bridge-client-BZMh3a0J.js","assets/port-bridge-client-Bg6_jjLD.js","assets/tool-ui-C-E235kX.js","assets/logger-BoSvu4mW.js","assets/tool-result-images-D8kQ0hH0.js","assets/providers-D2SzyuS_.js","assets/panel-rpc-B3MSVImO.js","assets/bedrock-camp-DMGplF70.js","assets/transform-messages-XkZ1QnTb.js","assets/telemetry-DqIqVG5n.js","assets/tray-runtime-config-C82czC62.js","assets/messages-BD4p8GuF.js","assets/tray-follower-status-5SqDRLX8.js","assets/clipboard-eqmn97SP.js","assets/tray-join-url-BIvzbiFR.js","assets/wc-detached-B3WCbbZT.js","assets/wc-settings-CzWoxwvc.js","assets/feature-flags-Cf-Bv5AK.js","assets/theme-engine-By4GU_Wc.js","assets/theme-CXRqxpw6.js","assets/discovery-preference-yvSQLIqD.js","assets/timestamp-preference-sKwBl5I8.js","assets/legacy-styles-DcRu2WCJ.js","assets/sync-dialog-BXI-Z0QC.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";import{n as t}from"./runtime-env-DH4NDw4t.js";import{r as n}from"./feature-flags-Cf-Bv5AK.js";import{f as r,t as i}from"./tray-runtime-config-C82czC62.js";import{n as a}from"./tray-follower-status-5SqDRLX8.js";import{n as o}from"./clipboard-eqmn97SP.js";import{t as s}from"./tray-join-url-BIvzbiFR.js";import{n as c}from"./tray-leader-BIbpF_6U.js";function l(e){let t=e.find(e=>e.userAvatar&&e.userName)??e.find(e=>e.userName);return t?.userName?{name:t.userName,avatarUrl:t.userAvatar,provider:t.providerId}:null}function u(e){return e.flatMap(e=>e.models.map(t=>({name:t.name??t.id,provider:e.providerName,id:`${e.providerId}:${t.id}`})))}function d(e,t){try{let n=t();e.setAttribute(`model`,n.name??n.id)}catch{}}function f(e){let t=[{id:`settings`,label:`Account settings…`,icon:`settings`},{id:`theme`,label:`Theme settings…`,icon:`palette`},{id:`export-transcript`,label:`Export transcript`,icon:`download`,disabled:e||void 0}];return n(`experimental-settings`)&&t.push({id:`experimental-settings`,label:`Experimental features…`,icon:`flask-conical`}),t}async function p(n){let{refs:r,client:i,log:o,onExportTranscript:p}=n,{getAllAvailableModels:C,getAccounts:w,resolveCurrentModel:T}=await e(async()=>{let{getAllAvailableModels:e,getAccounts:t,resolveCurrentModel:n}=await import(`./provider-settings-CqsZtmc2.js`).then(e=>e.t);return{getAllAvailableModels:e,getAccounts:t,resolveCurrentModel:n}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32])),E=()=>{r.composerMeta.models=u(C())},D=()=>d(r.composerMeta,T);E();let O=null;await x(r,i,()=>{let e=O;O=null,e!=null&&r.thread?.dispatchEvent(new CustomEvent(`slicc-error-retry`,{detail:{messageId:e},bubbles:!0,composed:!0}))});let k=t(),A=()=>{let e=l(w()),t=r.avatarMenu.querySelector(`slicc-avatar`),n=r.inputCard.querySelector(`slicc-send-button`);e?(t?.removeAttribute(`initials`),t?.setAttribute(`name`,e.name),e.avatarUrl&&(t?.setAttribute(`src`,e.avatarUrl),n?.setAttribute(`src`,e.avatarUrl)),r.avatarMenu.user={name:e.name,provider:e.provider}):(t?.removeAttribute(`name`),t?.removeAttribute(`src`),t?.removeAttribute(`initials`),n?.removeAttribute(`src`),r.avatarMenu.user={name:`SLICC`,provider:k?`extension`:`standalone`})};A();let j=()=>{if(k)return[];let e=s(c(),a()),t=[{kind:`separator`}];return e.kind===`leader-offer`?t.push({id:`tray-enable`,label:e.label,icon:`radio`}):e.kind===`leader-copy`?(t.push({id:`tray-copy`,label:`Copy tray join URL`,icon:`link`}),t.push({id:`tray-stop`,label:`Stop multi-browser sync`,icon:`square`,danger:!0})):e.kind===`leader-pending`?(t.push({kind:`caption`,label:e.caption}),t.push({id:`tray-stop`,label:`Stop multi-browser sync`,icon:`square`,danger:!0})):(t.push({kind:`caption`,label:e.caption}),t.push({id:`tray-stop`,label:`Disconnect from leader`,icon:`unplug`,danger:!0})),t},M=new URLSearchParams(window.location.search).has(`detached`),N=()=>k&&!M?[{id:`popout`,label:`Pop out into a tab`,icon:`external-link`}]:[],P=!1,F=()=>{r.avatarMenu.items=[...f(P),...N(),...j()]};F(),r.avatarMenu.addEventListener(`slicc-avatar-menu-toggle`,e=>{e.detail?.open&&F()});let I=m(o,E,A,()=>i.updateModel()),L=h(o),R=g(o);r.avatarMenu.addEventListener(`slicc-avatar-action`,t=>{let n=t.detail?.id;if(n&&_(n,o)){F();return}if(n===`popout`){e(async()=>{let{requestDetachedPopout:e}=await import(`./wc-detached-B3WCbbZT.js`);return{requestDetachedPopout:e}},__vite__mapDeps([33,29])).then(({requestDetachedPopout:e})=>e()).catch(e=>o.error(`detached popout request failed`,e));return}n===`settings`&&I(),n===`theme`&&L(),n===`experimental-settings`&&R(),n===`export-transcript`&&p&&(P=!0,F(),p().finally(()=>{P=!1,F()}))}),r.composerMeta.addEventListener(`add-ai`,I),v(r,I),y({refs:r,log:o,openSettings:I,setPendingReplayMessageId:e=>{O=e}}),await b({refs:r,log:o,openSettings:I,refreshModels:E,applyIdentity:A,client:i}),S({refreshModels:E,refreshModelPill:D,applyIdentity:A,client:i})}function m(t,n,r,i){return()=>{e(async()=>{let{showWcSettings:e}=await import(`./wc-settings-CzWoxwvc.js`);return{showWcSettings:e}},__vite__mapDeps([34,3,35,36,1,10,37,38,13,14,12,15,16,39])).then(({showWcSettings:e})=>e(t)).then(()=>{n(),r(),i()}).catch(e=>t.error(`WC settings dialog failed`,e))}}function h(t){return()=>{e(async()=>{let{showThemeSettings:e}=await import(`./wc-settings-CzWoxwvc.js`);return{showThemeSettings:e}},__vite__mapDeps([34,3,35,36,1,10,37,38,13,14,12,15,16,39])).then(({showThemeSettings:e})=>e(t)).catch(e=>t.error(`Theme settings dialog failed`,e))}}function g(t){return()=>{e(async()=>{let{showExperimentalSettings:e}=await import(`./wc-settings-CzWoxwvc.js`);return{showExperimentalSettings:e}},__vite__mapDeps([34,3,35,36,1,10,37,38,13,14,12,15,16,39])).then(({showExperimentalSettings:e})=>e(t)).catch(e=>t.error(`Experimental settings dialog failed`,e))}}function _(t,n){if(t===`tray-enable`)return r({locationHref:window.location.href,storage:window.localStorage,envBaseUrl:null,defaultWorkerBaseUrl:i}).then(e=>{if(!e)return n.error(`tray enable: no worker base URL resolvable`);window.dispatchEvent(new CustomEvent(`slicc:tray-leave`,{detail:{workerBaseUrl:e}}))}),!0;if(t===`tray-copy`){let t=c().session?.joinUrl;return t&&(o(t).catch(()=>void 0),e(async()=>{let{loadLegacyDialogStyles:e}=await import(`./legacy-styles-DcRu2WCJ.js`);return{loadLegacyDialogStyles:e}},__vite__mapDeps([40,3])).then(({loadLegacyDialogStyles:e})=>e()).then(async()=>{let{showSyncEnabledDialog:n}=await e(async()=>{let{showSyncEnabledDialog:e}=await import(`./sync-dialog-BXI-Z0QC.js`);return{showSyncEnabledDialog:e}},__vite__mapDeps([41,31,1]));n({joinUrl:t,copied:!0})}).catch(e=>n.error(`sync dialog failed`,e))),!0}return t===`tray-stop`&&(window.dispatchEvent(new CustomEvent(`slicc:tray-leave`,{detail:{workerBaseUrl:null}})),!0)}function v(e,t){e.thread?.addEventListener(`slicc-error-open-settings`,t),window.addEventListener(`slicc:open-settings-from-panel`,()=>t())}function y(e){let{refs:t,log:n,openSettings:r,setPendingReplayMessageId:i}=e;t.thread?.addEventListener(`slicc-error-change-model`,e=>{i(e.detail?.messageId??null);let a=t.composerMeta,o=a.models;if(Array.isArray(o)&&o.length===0){r();return}try{a.openMenu?.()}catch(e){n.error(`opening composer model picker failed`,e)}})}async function b(t){let{refs:n,log:r,openSettings:i,refreshModels:a,applyIdentity:o,client:s}=t,{getSelectedProvider:c,getProviderConfig:l,reloginOAuthAccount:u}=await e(async()=>{let{getSelectedProvider:e,getProviderConfig:t,reloginOAuthAccount:n}=await import(`./provider-settings-CqsZtmc2.js`).then(e=>e.t);return{getSelectedProvider:e,getProviderConfig:t,reloginOAuthAccount:n}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32]));n.thread?.addEventListener(`slicc-error-login`,()=>{let e=c(),t=e?l(e):null;if(!t||!t.onOAuthLogin&&!t.onOAuthLoginIntercepted){i();return}u(t,()=>{a(),o(),s.updateModel()}).catch(e=>r.error(`re-login from error card failed`,e))})}async function x(t,n,r){let{resolveModelById:i,resolveCurrentModel:a,setSelectedModelId:o}=await e(async()=>{let{resolveModelById:e,resolveCurrentModel:t,setSelectedModelId:n}=await import(`./provider-settings-CqsZtmc2.js`).then(e=>e.t);return{resolveModelById:e,resolveCurrentModel:t,setSelectedModelId:n}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32])),s=e=>{let t=e.indexOf(`:`);return t>0?e.slice(t+1):e},c=e=>{try{let n=e?i(s(e)):a();t.composerMeta.toggleAttribute(`no-thinking`,n.reasoning!==!0)}catch{}};c(),t.composerMeta.addEventListener(`model-change`,e=>{let t=e.detail?.id;t&&(o(t),c(t),n.updateModel(),r?.())})}async function S(t){let{refreshModels:n,refreshModelPill:r,applyIdentity:i,client:a}=t,{getAccounts:o,getProviderConfig:s}=await e(async()=>{let{getAccounts:e,getProviderConfig:t}=await import(`./provider-settings-CqsZtmc2.js`).then(e=>e.t);return{getAccounts:e,getProviderConfig:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32]));window.addEventListener(`slicc:accounts-changed`,()=>{n(),r(),i(),a.updateModel();for(let e of o()){let t=s(e.providerId)?.refreshModels;t&&t().then(()=>{n(),r(),a.updateModel()}).catch(()=>void 0)}})}export{p as wireWcNav};
@@ -1,4 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/quick-llm-B1IKnoro.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/account-store-BkG4BDQC.js","assets/preload-helper-Czpn1I53.js","assets/compat-C0CyHyoL.js","assets/models-BSkXF4T6.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-CrhNqqEN.js","assets/logger-DDBAeTLF.js","assets/context-compaction-MXRS4Kb2.js","assets/src-CAWTvdAa.js","assets/proxied-fetch-ULPrH97b.js","assets/base64-DpPqYZJF.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-DCQNOMWj.js","assets/secrets-bridge-client-BZMh3a0J.js","assets/port-bridge-client-Bg6_jjLD.js","assets/tool-ui-C-E235kX.js","assets/logger-BoSvu4mW.js","assets/tool-result-images-D8kQ0hH0.js","assets/providers-D2SzyuS_.js","assets/panel-rpc-B3MSVImO.js","assets/bedrock-camp-DMGplF70.js","assets/transform-messages-XkZ1QnTb.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-DtQGhvkp.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";import{a as t}from"./dictation-priming-CNllGgNq.js";var n=400,r=800,i=`You suggest the user's next prompt in a coding-agent chat. Based on the recent conversation, output ONE concrete follow-up the user might type next. Reply with just the prompt text — no quotes, no preamble, no list. Max 80 characters. If nothing useful comes to mind, reply exactly: What shall we build?`;function a(e,t){return e.length>t?`${e.slice(0,t)}…`:e}function o(e){let i=e.filter(e=>!e.isStreaming&&!e.queued&&e.source!==`lick`),o=[...i].reverse().find(e=>e.role===`assistant`),s=i.filter(e=>e.role===`user`).slice(-3);return!o||s.length===0?null:[...s.map(e=>`[user]: ${a(t(e.content),n)}`),`[assistant]: ${a(o.content,r)}`].join(`
3
-
4
- `)}async function s(t){if(t.currentValue.length>0)return;let n=o(t.messages);if(!n){t.setPlaceholder(t.defaultPlaceholder);return}let r=await(t.quickLabelFn??(await e(async()=>{let{quickLabel:e}=await import(`./quick-llm-B1IKnoro.js`).then(e=>e.n);return{quickLabel:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]))).quickLabel)({system:i,prompt:`Recent conversation:\n${n}`,maxTokens:40,signal:t.signal});t.signal?.aborted||t.currentValue.length>0||t.setPlaceholder(r&&r.length>0?r:t.defaultPlaceholder)}function c(e,t,n){t===n?(e.removeAttribute(`suggestion`),e.setAttribute(`placeholder`,t)):e.setAttribute(`suggestion`,t)}function l(e){let t=null;return()=>{e.inputCard.hasAttribute(`disabled`)||(t?.abort(),t=new AbortController,s({messages:e.getMessages(),currentValue:e.inputCard.value??``,setPlaceholder:t=>c(e.inputCard,t,e.defaultPlaceholder),defaultPlaceholder:e.defaultPlaceholder,signal:t.signal}).catch(()=>void 0))}}export{l as createPlaceholderRefresher};