sliccy 3.1.0 → 3.2.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 (190) hide show
  1. package/README.md +1 -1
  2. package/dist/ui/assets/__vite-browser-external-B0Aozsa-.js +1 -0
  3. package/dist/ui/assets/adobe-CQkUqrZB.js +1 -0
  4. package/dist/ui/assets/adobe-TpBzqWxv.js +2 -0
  5. package/dist/ui/assets/agent-bridge-CUrfnLhB.js +1 -0
  6. package/dist/ui/assets/{agent-message-to-chat-CO-_I0_3.js → agent-message-to-chat-7ySe6LOC.js} +1 -1
  7. package/dist/ui/assets/{anthropic-CW4Fql_O.js → anthropic-BazfeP88.js} +2 -2
  8. package/dist/ui/assets/anthropic-DrIv-Sj8.js +39 -0
  9. package/dist/ui/assets/azure-openai-D57g94Od.js +1 -0
  10. package/dist/ui/assets/azure-openai-responses-DGiPDuLb.js +1 -0
  11. package/dist/ui/assets/azure-openai-responses-DaFIsbip.js +1 -0
  12. package/dist/ui/assets/azure-openai-syGxMed8.js +1 -0
  13. package/dist/ui/assets/{bsh-watchdog-0KPLx0BS.js → bsh-watchdog-Cy1Phycv.js} +1 -1
  14. package/dist/ui/assets/{cdp-zqEKj8zX.js → cdp-C7-GqDX7.js} +4 -4
  15. package/dist/ui/assets/cost-command-D4966sTV.js +1 -0
  16. package/dist/ui/assets/{dist-N8xNrrAa.js → dist-BTGs16AV.js} +1 -1
  17. package/dist/ui/assets/{dist-C867mOPm.js → dist-BcBxL8nL.js} +1 -1
  18. package/dist/ui/assets/{dist-VRuvLOER.js → dist-Bgcuvc8h.js} +1 -1
  19. package/dist/ui/assets/{dist-Dv2Nk_Uq.js → dist-EkY3RL7q.js} +1 -1
  20. package/dist/ui/assets/{dist-BT9E_vUE.js → dist-cK1g1pHF.js} +1 -1
  21. package/dist/ui/assets/{es-RM_apZN6.js → es-BBFipyo7.js} +5 -5
  22. package/dist/ui/assets/follower-sprinkle-bridge-Bvk6d5Lt.js +1 -0
  23. package/dist/ui/assets/github-C7iB6IW8.js +1 -0
  24. package/dist/ui/assets/github-D9o07OM2.js +2 -0
  25. package/dist/ui/assets/google-BViJaPNs.js +1 -0
  26. package/dist/ui/assets/google-BqPFk_Hy.js +1 -0
  27. package/dist/ui/assets/{google-shared-D_qkojxq.js → google-shared-BSWPDQyC.js} +3 -3
  28. package/dist/ui/assets/google-shared-DB5TYWXI.js +11 -0
  29. package/dist/ui/assets/google-vertex-BxSo3Ndm.js +1 -0
  30. package/dist/ui/assets/google-vertex-CezozIAv.js +1 -0
  31. package/dist/ui/assets/index-A_yObWaU.js +1574 -0
  32. package/dist/ui/assets/intercepted-oauth-D-GrdXf5.js +1 -0
  33. package/dist/ui/assets/kernel-worker-Du6Tb6XA.js +7651 -0
  34. package/dist/ui/assets/{local-llm-eF8GDq5b.js → local-llm-KIzd2XHf.js} +2 -2
  35. package/dist/ui/assets/magick-wasm-DfEA4h23.js +1 -0
  36. package/dist/ui/assets/{mistral-BGhArSbR.js → mistral-B9W99mq4.js} +2 -2
  37. package/dist/ui/assets/{mistral-BjvHW1zm.js → mistral-DdhVmVmD.js} +2 -2
  38. package/dist/ui/assets/{nuke-command-SaFQ52mr.js → nuke-command-Njj8xVqm.js} +1 -1
  39. package/dist/ui/assets/oauth-bootstrap-BIoZ-1iT.js +1 -0
  40. package/dist/ui/assets/oauth-service-DEV-lUfQ.js +1 -0
  41. package/dist/ui/assets/oauth-service-DvOjqu8g.js +1 -0
  42. package/dist/ui/assets/offscreen-client-BQT-86bJ.js +1 -0
  43. package/dist/ui/assets/onboarding-orchestrator-DG6gLseB.js +1 -0
  44. package/dist/ui/assets/openai-codex-responses-BEGQfxLc.js +7 -0
  45. package/dist/ui/assets/openai-codex-responses-DB3Vu7ed.js +7 -0
  46. package/dist/ui/assets/openai-completions-CGQBWCgH.js +5 -0
  47. package/dist/ui/assets/openai-responses-CtvH1M3o.js +1 -0
  48. package/dist/ui/assets/openai-responses-DN7LxPQE.js +1 -0
  49. package/dist/ui/assets/{openai-responses-shared-iv5WheAz.js → openai-responses-shared-CSGV3fZY.js} +3 -3
  50. package/dist/ui/assets/{openai-responses-shared-iYgA7Khl.js → openai-responses-shared-Dgs-mRZN.js} +4 -4
  51. package/dist/ui/assets/panel-rpc-handlers-CvD_7V3n.js +1 -0
  52. package/dist/ui/assets/{py-realm-worker-vbqFsiux.js → py-realm-worker-zrXeREDr.js} +1 -1
  53. package/dist/ui/assets/pyodide-Bv1KSh-_.js +3 -0
  54. package/dist/ui/assets/pyodide-DP-fllM-.js +3 -0
  55. package/dist/ui/assets/remote-terminal-view-DbubM0iY.js +6 -0
  56. package/dist/ui/assets/secret-env-YKWt497t.js +1 -0
  57. package/dist/ui/assets/slicc-editor-DYDRVURI.js +12 -0
  58. package/dist/ui/assets/{spawn-BCQJvlZ6.js → spawn-9oH05Sa3.js} +1 -1
  59. package/dist/ui/assets/{sql-wasm-DZVUCGLK.js → sql-wasm-CpKN22NN.js} +2 -2
  60. package/dist/ui/assets/upgrade-detection-oR3blKyL.js +1 -0
  61. package/dist/ui/assets/xai-grok-CNhK84Kt.js +1 -0
  62. package/dist/ui/assets/xai-grok-qxlQfVDb.js +1 -0
  63. package/dist/ui/assets/{xai-grok-sanitize-DTcvIA0E.js → xai-grok-sanitize-BeI8rdV5.js} +1 -1
  64. package/dist/ui/assets/{xai-grok-sanitize-DsBfxZb8.js → xai-grok-sanitize-CiOn_xsO.js} +1 -1
  65. package/dist/ui/electron-overlay-entry.js +7 -7
  66. package/dist/ui/index.html +1 -20
  67. package/dist/ui/packages/webapp/index.html +1 -20
  68. package/package.json +3 -3
  69. package/dist/ui/assets/__vite-browser-external-CTFk2Lkt.js +0 -1
  70. package/dist/ui/assets/__vite-browser-external-CdaqDer8.js +0 -1
  71. package/dist/ui/assets/adobe-B-pbWvsC.js +0 -1
  72. package/dist/ui/assets/adobe-sfsf_4qf.js +0 -2
  73. package/dist/ui/assets/agent-bridge-B-oWMlDX.js +0 -1
  74. package/dist/ui/assets/anthropic-4ASJTRhO.js +0 -39
  75. package/dist/ui/assets/azure-openai-BD_sHVsp.js +0 -1
  76. package/dist/ui/assets/azure-openai-aTVRkWSi.js +0 -1
  77. package/dist/ui/assets/azure-openai-responses-C_KSa6jj.js +0 -1
  78. package/dist/ui/assets/azure-openai-responses-Ci2gkluO.js +0 -1
  79. package/dist/ui/assets/backend-local-BTd37iLF.js +0 -9
  80. package/dist/ui/assets/backend-local-CfhYopTE.js +0 -9
  81. package/dist/ui/assets/bedrock-camp-Bds6qFqf.js +0 -4
  82. package/dist/ui/assets/bedrock-camp-uPFt7YMZ.js +0 -5
  83. package/dist/ui/assets/chunk-Cn1BcAw8.js +0 -1
  84. package/dist/ui/assets/chunk-jRWAZmH_.js +0 -1
  85. package/dist/ui/assets/cost-command-CKxW3T3V.js +0 -1
  86. package/dist/ui/assets/db-DPvmo9md.js +0 -1
  87. package/dist/ui/assets/diagnostics-Bab61WyO.js +0 -1
  88. package/dist/ui/assets/diagnostics-C5z6rwkV.js +0 -1
  89. package/dist/ui/assets/env-api-keys-BoL4zxcb.js +0 -1
  90. package/dist/ui/assets/env-api-keys-DEKGEdJy.js +0 -1
  91. package/dist/ui/assets/follower-sprinkle-bridge-D98CB4QW.js +0 -1
  92. package/dist/ui/assets/fs-B4oiCmB6.js +0 -4
  93. package/dist/ui/assets/fs-DjItwHb7.js +0 -3
  94. package/dist/ui/assets/git-config-CxvDN7N3.js +0 -7
  95. package/dist/ui/assets/github-43qAI71s.js +0 -2
  96. package/dist/ui/assets/github-Bz0AhHTO.js +0 -1
  97. package/dist/ui/assets/github-copilot-headers-DPO4cOSI.js +0 -1
  98. package/dist/ui/assets/google-CBK_Mvyz.js +0 -1
  99. package/dist/ui/assets/google-gejI0Xd8.js +0 -1
  100. package/dist/ui/assets/google-shared-BB2MKu9Q.js +0 -11
  101. package/dist/ui/assets/google-vertex-tM5T-lH5.js +0 -1
  102. package/dist/ui/assets/google-vertex-wc4xtIz9.js +0 -1
  103. package/dist/ui/assets/headers-CGhBAvcc.js +0 -1
  104. package/dist/ui/assets/index-Dr4P8kcB.js +0 -1424
  105. package/dist/ui/assets/intercepted-oauth-CnYe4Pun.js +0 -1
  106. package/dist/ui/assets/json-parse-CKelIhmU.js +0 -3
  107. package/dist/ui/assets/json-parse-Cu2r6BfV.js +0 -3
  108. package/dist/ui/assets/kernel-worker-DVMS1qoG.js +0 -7546
  109. package/dist/ui/assets/local-llm-pOzJZUC2.js +0 -2
  110. package/dist/ui/assets/logger-B-No_qN_.js +0 -1
  111. package/dist/ui/assets/logger-BHrAkMIS.js +0 -1
  112. package/dist/ui/assets/magick-wasm-BMFWa7e1.js +0 -1
  113. package/dist/ui/assets/magick-wasm-D4Na_fL8.js +0 -1
  114. package/dist/ui/assets/mime-types-4JXpZe6p.js +0 -1
  115. package/dist/ui/assets/mime-types-DL940yDZ.js +0 -1
  116. package/dist/ui/assets/mount-D4A-IhxD.js +0 -1
  117. package/dist/ui/assets/mount-DqMPMRkq.js +0 -2
  118. package/dist/ui/assets/mount-id-Ccy4_G8i.js +0 -1
  119. package/dist/ui/assets/mount-picker-popup-ys6_YNH0.js +0 -1
  120. package/dist/ui/assets/mount-table-store-BDnU4NqG.js +0 -1
  121. package/dist/ui/assets/oauth-bootstrap-gMsviobT.js +0 -1
  122. package/dist/ui/assets/oauth-service--O2P_cH3.js +0 -1
  123. package/dist/ui/assets/oauth-service-BXo87SGy.js +0 -1
  124. package/dist/ui/assets/offscreen-client-B70i1ydX.js +0 -1
  125. package/dist/ui/assets/onboarding-orchestrator-BDsGw7PC.js +0 -1
  126. package/dist/ui/assets/openai-CQMTwQw3.js +0 -16
  127. package/dist/ui/assets/openai-codex-responses-BH7I3fcD.js +0 -7
  128. package/dist/ui/assets/openai-codex-responses-Box9MCzN.js +0 -7
  129. package/dist/ui/assets/openai-completions-BnShqSeR.js +0 -5
  130. package/dist/ui/assets/openai-completions-DmV2esrh.js +0 -5
  131. package/dist/ui/assets/openai-responses-Cp1E557G.js +0 -1
  132. package/dist/ui/assets/openai-responses-DOCxF9QM.js +0 -1
  133. package/dist/ui/assets/panel-rpc-DMFq2vU_.js +0 -1
  134. package/dist/ui/assets/panel-rpc-handlers-D2yCpT8_.js +0 -1
  135. package/dist/ui/assets/panel-rpc-uLhnFoXD.js +0 -1
  136. package/dist/ui/assets/path-utils-C99GOg2c.js +0 -1
  137. package/dist/ui/assets/path-utils-CgbXfwyO.js +0 -1
  138. package/dist/ui/assets/preload-helper-ca-nBW7U.js +0 -1
  139. package/dist/ui/assets/provider-settings-B1ICPsZd.js +0 -63
  140. package/dist/ui/assets/provider-settings-Xmj6eRF8.js +0 -28
  141. package/dist/ui/assets/providers-DnwRSoOv.js +0 -1
  142. package/dist/ui/assets/pyodide-DOGWuEal.js +0 -3
  143. package/dist/ui/assets/pyodide-DhfjhWo1.js +0 -3
  144. package/dist/ui/assets/remote-cache-Cd8CL8Mo.js +0 -1
  145. package/dist/ui/assets/remote-terminal-view-BD1tHNzj.js +0 -6
  146. package/dist/ui/assets/sanitize-unicode-DFrWoF2t.js +0 -1
  147. package/dist/ui/assets/secret-env-LcaaxgBy.js +0 -1
  148. package/dist/ui/assets/shared-AafAvJaI.js +0 -1
  149. package/dist/ui/assets/simple-options-CVJdKrCb.js +0 -1
  150. package/dist/ui/assets/simple-options-D8vGmEnp.js +0 -1
  151. package/dist/ui/assets/slicc-editor-CFqadznu.js +0 -12
  152. package/dist/ui/assets/sprinkle-renderer-sJJO5bqF.js +0 -112
  153. package/dist/ui/assets/telemetry-D728iVf5.js +0 -1
  154. package/dist/ui/assets/tool-ui-D9h6SJkp.js +0 -1
  155. package/dist/ui/assets/tool-ui-DaAXBPJY.js +0 -1
  156. package/dist/ui/assets/tray-follower-status-hrOEFANe.js +0 -1
  157. package/dist/ui/assets/upgrade-detection-a__NoLEt.js +0 -1
  158. package/dist/ui/assets/xai-grok-DvJXZgXP.js +0 -1
  159. package/dist/ui/assets/xai-grok-cSrhflu0.js +0 -1
  160. /package/dist/ui/assets/{active-transport-DjJ32qlA.js → active-transport-CfU1UxY6.js} +0 -0
  161. /package/dist/ui/assets/{active-transport-lYMG0Gv5.js → active-transport-DeSPCdTV.js} +0 -0
  162. /package/dist/ui/assets/{addon-fit-CBYO9uVb.js → addon-fit-BDUxDgg1.js} +0 -0
  163. /package/dist/ui/assets/{addon-fit-CTgRqR5i.js → addon-fit-Dkm5m5XK.js} +0 -0
  164. /package/dist/ui/assets/{azure-ai-foundry-DtrzZiwo.js → azure-ai-foundry-1pnZpxAJ.js} +0 -0
  165. /package/dist/ui/assets/{azure-ai-foundry--QIByvkN.js → azure-ai-foundry-k_w7vD5C.js} +0 -0
  166. /package/dist/ui/assets/{chat-fixture-t_1Cmb9j.js → chat-fixture-BNN19l1e.js} +0 -0
  167. /package/dist/ui/assets/{dist-B-Md2rjs.js → dist-BNe7ZIzA.js} +0 -0
  168. /package/dist/ui/assets/{dist-BXMOjFxx.js → dist-BYoCEWmq.js} +0 -0
  169. /package/dist/ui/assets/{dist-CZgcx_4U.js → dist-BrjVVq8c.js} +0 -0
  170. /package/dist/ui/assets/{git-config-DIdLP3yo.js → git-config-DFJqG7AS.js} +0 -0
  171. /package/dist/ui/assets/{github-copilot-headers-BKQV7zrp.js → github-copilot-headers-CTUP_cqn.js} +0 -0
  172. /package/dist/ui/assets/{hash-K0cSe8jy.js → hash-B9Dtr1VK.js} +0 -0
  173. /package/dist/ui/assets/{hash-ekRFATsu.js → hash-C3GX0Zuo.js} +0 -0
  174. /package/dist/ui/assets/{headers-C4jF_HTA.js → headers-AeYLn7L4.js} +0 -0
  175. /package/dist/ui/assets/{lick-manager-proxy-D4WRd8z3.js → lick-manager-proxy-DfectiMI.js} +0 -0
  176. /package/dist/ui/assets/{openai-DxnCgV1v.js → openai-Bf1npfRy.js} +0 -0
  177. /package/dist/ui/assets/{page-storage-sync-M2qhyuvc.js → page-storage-sync-BxtXNbwY.js} +0 -0
  178. /package/dist/ui/assets/{pdfjs-Cesr9Csk.js → pdfjs-DDDkZHZ4.js} +0 -0
  179. /package/dist/ui/assets/{rum-C0g6MAOC.js → rum-wVO4iYd-.js} +0 -0
  180. /package/dist/ui/assets/{sanitize-unicode-BA6bNBBh.js → sanitize-unicode-h0KEBmEw.js} +0 -0
  181. /package/dist/ui/assets/{sprinkle-bridge-channel-B_tegUwc.js → sprinkle-bridge-channel-BBxRgvga.js} +0 -0
  182. /package/dist/ui/assets/{sprinkle-bridge-channel-C2blpBXT.js → sprinkle-bridge-channel-no1Jz9ii.js} +0 -0
  183. /package/dist/ui/assets/{sprinkle-proxy-CgcbIA81.js → sprinkle-proxy-rF3NSOGq.js} +0 -0
  184. /package/dist/ui/assets/{src-lJxZtwWF.js → src-BQRb5emh.js} +0 -0
  185. /package/dist/ui/assets/{xai-grok-errors-DGVLpB4k.js → xai-grok-errors-CGcnoVae.js} +0 -0
  186. /package/dist/ui/assets/{xai-grok-errors-B7OqxH_0.js → xai-grok-errors-WbFsMZum.js} +0 -0
  187. /package/dist/ui/assets/{xai-grok-models-DGbQVjGO.js → xai-grok-models-0q2zveAT.js} +0 -0
  188. /package/dist/ui/assets/{xai-grok-models-0CbvNCeN.js → xai-grok-models-cvcIXmNM.js} +0 -0
  189. /package/dist/ui/assets/{xterm-CguO-Jtb.js → xterm-D8ldLLKi.js} +0 -0
  190. /package/dist/ui/assets/{xterm-BcRgm-P0.js → xterm-DhusGoAm.js} +0 -0
@@ -0,0 +1 @@
1
+ import{t as e}from"./index-A_yObWaU.js";var t=15e3,n=class{sender;listeners;pending=new Map;unsubscribe;fetchTimeoutMs;nextId=1;disposed=!1;constructor(n,r,i={},a={}){this.sender=n,this.listeners=i,this.fetchTimeoutMs=a.fetchTimeoutMs??t,this.unsubscribe=r.onMessage(t=>{if(t.source!==`offscreen`)return;let n=e(t.payload,`follower-sprinkles-list`);if(n){this.listeners.onSprinklesList?.(n.sprinkles);return}let r=e(t.payload,`follower-sprinkle-update`);if(r){this.listeners.onSprinkleUpdate?.(r.sprinkleName,r.data);return}let i=e(t.payload,`follower-sprinkle-fetch-result`);if(i){let e=this.pending.get(i.id);if(!e)return;clearTimeout(e.timer),this.pending.delete(i.id),i.ok===!0?e.resolve(i.content):i.ok===!1?e.reject(Error(i.error)):e.reject(Error("Malformed follower-sprinkle-fetch-result: missing or non-boolean `ok`"))}})}fetchSprinkleContent(e){if(this.disposed)return Promise.reject(Error(`PanelFollowerSprinkleProxy disposed`));let t=`panel-${Date.now()}-${this.nextId++}`;return new Promise((n,r)=>{let i=setTimeout(()=>{this.pending.delete(t);let n={type:`follower-sprinkle-fetch-cancel`,sprinkleName:e};this.sender.send({source:`panel`,payload:n}),r(Error(`follower-sprinkle-fetch for "${e}" timed out after ${this.fetchTimeoutMs}ms — offscreen document may not be in follower mode`))},this.fetchTimeoutMs);this.pending.set(t,{resolve:n,reject:r,timer:i});let a={type:`follower-sprinkle-fetch`,id:t,sprinkleName:e};this.sender.send({source:`panel`,payload:a})})}cancelSprinkleFetch(e,t){}sendSprinkleLick(e,t,n){if(this.disposed)return;let r={type:`follower-sprinkle-lick`,sprinkleName:e,body:t,targetScoop:n};this.sender.send({source:`panel`,payload:r})}dispose(){if(this.disposed)return;this.disposed=!0,this.unsubscribe();let e=Error(`PanelFollowerSprinkleProxy disposed`);for(let t of this.pending.values())clearTimeout(t.timer),t.reject(e);this.pending.clear()}};export{n as PanelFollowerSprinkleProxy};
@@ -0,0 +1 @@
1
+ import{E as e,G as t,M as n,V as r,W as i,h as a,k as o,m as s,u as c,z as l}from"./kernel-worker-Du6Tb6XA.js";import{getOAuthPageOrigin as u}from"./oauth-service-DvOjqu8g.js";var d={clientId:``,scopes:`repo,read:user,user:email`};function f(){try{let e=localStorage.getItem(t);if(e)return e.replace(/\/$/,``)}catch{}return i}async function p(e){let t=`${f()}/oauth/token`,n=await fetch(t,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({provider:e.provider,code:e.code,redirect_uri:e.redirectUri})}),r;try{r=await n.json()}catch{throw Error(`Token exchange failed (HTTP ${n.status}): non-JSON response`)}if(!n.ok&&n.status!==200){let e=r.error_description??r.error??`Token exchange failed (HTTP ${n.status})`;throw Error(e)}if(r.error){let e=r.error_description??r.error;throw Error(e)}return r}async function m(e){let t=`${f()}/oauth/revoke`,n=await fetch(t,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({provider:e.provider,access_token:e.accessToken})});if(!(n.status===204||n.ok)){if(n.status===400)try{if((await n.json()).error===`unsupported`)return}catch{}throw Error(`Token revocation failed (HTTP ${n.status})`)}}const h=Object.assign({"/packages/webapp/providers/github-config.json":d})[`/packages/webapp/providers/github-config.json`]??{clientId:``,scopes:`repo,read:user,user:email`};let g=null,_=null;async function v(){if(g)return g;if(y){try{let e=await fetch(`${f()}/api/runtime-config`);if(e.ok){let t=await e.json();if(t.oauth?.github)return g=t.oauth.github,g}}catch{}return h.clientId}try{let e=await fetch(`/api/runtime-config`);if(e.ok){let t=await e.json();if(t.oauth?.github)return g=t.oauth.github,g;if(t.trayWorkerBaseUrl){_=t.trayWorkerBaseUrl;let e=await fetch(`${t.trayWorkerBaseUrl}/api/runtime-config`);if(e.ok){let t=await e.json();if(t.oauth?.github)return g=t.oauth.github,g}}}}catch{}return h.clientId}const y=typeof chrome<`u`&&!!chrome?.runtime?.id;function b(){return c().find(e=>e.providerId===`github`)}function x(e){try{return new URL(e).searchParams.get(`code`)}catch{return null}}async function S(e){try{let t=await fetch(`https://api.github.com/user`,{headers:{Authorization:`Bearer ${e}`,Accept:`application/vnd.github+json`}});if(t.ok){let e=await t.json();return{name:e.name||e.login,avatar:e.avatar_url,login:e.login,id:e.id}}}catch(e){console.warn(`[github] Failed to fetch user profile:`,e instanceof Error?e.message:String(e))}return{}}function C(e,t){return`${e}+${t}@users.noreply.github.com`}async function w(e){try{let{VirtualFS:t}=await import(`./kernel-worker-Du6Tb6XA.js`);await(await t.create({dbName:r})).writeFile(`/workspace/.git/github-token`,e),typeof window<`u`&&window.dispatchEvent(new CustomEvent(`github-token-changed`))}catch(e){console.warn(`[github] Failed to write git token:`,e instanceof Error?e.message:String(e))}}async function T(){try{let{VirtualFS:e}=await import(`./kernel-worker-Du6Tb6XA.js`);await(await e.create({dbName:r})).rm(`/workspace/.git/github-token`),typeof window<`u`&&window.dispatchEvent(new CustomEvent(`github-token-changed`))}catch{}}async function E(e){if(!(!e.login||e.id===void 0))try{let{VirtualFS:t}=await import(`./kernel-worker-Du6Tb6XA.js`),{readGlobalGitConfigValue:n,writeGlobalGitConfigValue:i}=await import(`./kernel-worker-Du6Tb6XA.js`),a=await t.create({dbName:r}),o=e.name||e.login,s=C(e.id,e.login);!await n(a,`user.name`)&&o&&await i(a,`user.name`,o),await n(a,`user.email`)||await i(a,`user.email`,s)}catch(e){console.warn(`[github] Failed to seed git identity:`,e instanceof Error?e.message:String(e))}}async function D(){let e=b();if(!e?.accessToken)throw Error(`Not logged in to GitHub — please log in first`);return e.accessToken}const O=`https://models.github.ai/inference`,k=[{id:`openai/gpt-4.1`,name:`GPT-4.1`,api:`openai`,context_window:1047576,max_tokens:32768,reasoning:!1,input:[`text`,`image`]},{id:`openai/gpt-4.1-mini`,name:`GPT-4.1 mini`,api:`openai`,context_window:1047576,max_tokens:32768,reasoning:!1,input:[`text`,`image`]}];function A(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:`github-openai`,provider:`github`,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()}}}const j=(t,r,i={})=>{let a=n();return(async()=>{try{let n=await D(),o=e({...t,baseUrl:O,api:`openai-completions`,compat:{...t.compat,supportsStore:!1,supportsDeveloperRole:!1,supportsUsageInStreaming:!1,maxTokensField:`max_tokens`}},r,{...i,apiKey:n});for await(let e of o)a.push(e);a.end()}catch(e){console.error(`[github] Stream error:`,e instanceof Error?e.message:String(e)),a.push(A(t,e)),a.end()}})(),a},M=(e,t,r)=>{let i=n();return(async()=>{try{let n=await D(),a=o({...e,baseUrl:O,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1,supportsUsageInStreaming:!1,maxTokensField:`max_tokens`}},t,{...r,apiKey:n});for await(let e of a)i.push(e);i.end()}catch(t){console.error(`[github] Stream error:`,t instanceof Error?t.message:String(t)),i.push(A(e,t)),i.end()}})(),i},N={id:`github`,name:`GitHub`,description:`GitHub Models + git authentication — login with your GitHub account`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`gpt-4.1`,oauthTokenDomains:[`github.com`,`*.github.com`,`api.github.com`,`raw.githubusercontent.com`,`models.github.ai`],getModelIds:()=>k,onOAuthLogin:async(e,t,n)=>{let r=await v();if(!r)throw Error(`GitHub OAuth not configured — no client ID available`);let i=n?.scopes??h.scopes,o=y?null:await u(),c=y?`${f()}/auth/callback`:`${_??o.origin}/auth/callback`,l=crypto.randomUUID(),d=y?chrome.runtime.id:``,m=y?{source:`extension`,extensionId:d,path:`/github`,nonce:l}:{port:parseInt(new URL(o.href).port||`5710`,10),path:`/auth/callback`,nonce:l},g=btoa(JSON.stringify(m)),b=l,C=new URLSearchParams({client_id:r,scope:i,redirect_uri:c});g&&C.set(`state`,g);let D=await e(`https://github.com/login/oauth/authorize?${C}`);if(!D)return;if(b)try{if(new URL(D).searchParams.get(`nonce`)!==b){console.error(`[github] OAuth nonce mismatch — possible CSRF`);return}}catch(e){console.warn(`[github] Nonce check skipped (URL parse failed):`,e instanceof Error?e.message:String(e))}let O=x(D);if(!O){console.error(`[github] Could not extract authorization code from redirect URL`);return}let k=await p({provider:`github`,code:O,redirectUri:c}),A=await S(k.access_token);await a({providerId:`github`,accessToken:k.access_token,userName:A.name,userAvatar:A.avatar});let j=s(`github`)?.maskedValue;j?await w(j):await T(),await E(A),t()},onOAuthLogout:async()=>{let e=b();e?.accessToken&&await m({provider:`github`,accessToken:e.accessToken}).catch(e=>console.warn(`[github] Token revocation failed:`,e instanceof Error?e.message:String(e))),await T(),await a({providerId:`github`,accessToken:``})}};function P(){l({api:`github-openai`,stream:j,streamSimple:M})}export{C as buildNoreplyEmail,N as config,x as extractCodeFromUrl,D as getValidAccessToken,P as register,E as syncGitIdentityFromGitHub};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-A_yObWaU.js","assets/index-BeHZmqLr.css"])))=>i.map(i=>d[i]);
2
+ import{A as e,H as t,I as n,N as r,S as i,U as a,f as o,p as s,s as c,x as l}from"./index-A_yObWaU.js";import{getOAuthPageOrigin as u}from"./oauth-service-DEV-lUfQ.js";var d={clientId:``,scopes:`repo,read:user,user:email`};function f(){try{let e=localStorage.getItem(i);if(e)return e.replace(/\/$/,``)}catch{}return l}async function p(e){let t=`${f()}/oauth/token`,n=await fetch(t,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({provider:e.provider,code:e.code,redirect_uri:e.redirectUri})}),r;try{r=await n.json()}catch{throw Error(`Token exchange failed (HTTP ${n.status}): non-JSON response`)}if(!n.ok&&n.status!==200){let e=r.error_description??r.error??`Token exchange failed (HTTP ${n.status})`;throw Error(e)}if(r.error){let e=r.error_description??r.error;throw Error(e)}return r}async function m(e){let t=`${f()}/oauth/revoke`,n=await fetch(t,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({provider:e.provider,access_token:e.accessToken})});if(!(n.status===204||n.ok)){if(n.status===400)try{if((await n.json()).error===`unsupported`)return}catch{}throw Error(`Token revocation failed (HTTP ${n.status})`)}}var h=`slicc-fs-global`,g=Object.assign({"/packages/webapp/providers/github-config.json":d})[`/packages/webapp/providers/github-config.json`]??{clientId:``,scopes:`repo,read:user,user:email`},_=null,v=null;async function y(){if(_)return _;if(b){try{let e=await fetch(`${f()}/api/runtime-config`);if(e.ok){let t=await e.json();if(t.oauth?.github)return _=t.oauth.github,_}}catch{}return g.clientId}try{let e=await fetch(`/api/runtime-config`);if(e.ok){let t=await e.json();if(t.oauth?.github)return _=t.oauth.github,_;if(t.trayWorkerBaseUrl){v=t.trayWorkerBaseUrl;let e=await fetch(`${t.trayWorkerBaseUrl}/api/runtime-config`);if(e.ok){let t=await e.json();if(t.oauth?.github)return _=t.oauth.github,_}}}}catch{}return g.clientId}var b=typeof chrome<`u`&&!!chrome?.runtime?.id;function x(){return c().find(e=>e.providerId===`github`)}function S(e){try{return new URL(e).searchParams.get(`code`)}catch{return null}}async function C(e){try{let t=await fetch(`https://api.github.com/user`,{headers:{Authorization:`Bearer ${e}`,Accept:`application/vnd.github+json`}});if(t.ok){let e=await t.json();return{name:e.name||e.login,avatar:e.avatar_url,login:e.login,id:e.id}}}catch(e){console.warn(`[github] Failed to fetch user profile:`,e instanceof Error?e.message:String(e))}return{}}function w(e,t){return`${e}+${t}@users.noreply.github.com`}async function T(e){try{let{VirtualFS:t}=await a(async()=>{let{VirtualFS:e}=await import(`./index-A_yObWaU.js`);return{VirtualFS:e}},__vite__mapDeps([0,1]));await(await t.create({dbName:h})).writeFile(`/workspace/.git/github-token`,e),typeof window<`u`&&window.dispatchEvent(new CustomEvent(`github-token-changed`))}catch(e){console.warn(`[github] Failed to write git token:`,e instanceof Error?e.message:String(e))}}async function E(){try{let{VirtualFS:e}=await a(async()=>{let{VirtualFS:e}=await import(`./index-A_yObWaU.js`);return{VirtualFS:e}},__vite__mapDeps([0,1]));await(await e.create({dbName:h})).rm(`/workspace/.git/github-token`),typeof window<`u`&&window.dispatchEvent(new CustomEvent(`github-token-changed`))}catch{}}async function D(e){if(!(!e.login||e.id===void 0))try{let{VirtualFS:t}=await a(async()=>{let{VirtualFS:e}=await import(`./index-A_yObWaU.js`);return{VirtualFS:e}},__vite__mapDeps([0,1])),{readGlobalGitConfigValue:n,writeGlobalGitConfigValue:r}=await a(async()=>{let{readGlobalGitConfigValue:e,writeGlobalGitConfigValue:t}=await import(`./git-config-DFJqG7AS.js`);return{readGlobalGitConfigValue:e,writeGlobalGitConfigValue:t}},[]),i=await t.create({dbName:h}),o=e.name||e.login,s=w(e.id,e.login);!await n(i,`user.name`)&&o&&await r(i,`user.name`,o),await n(i,`user.email`)||await r(i,`user.email`,s)}catch(e){console.warn(`[github] Failed to seed git identity:`,e instanceof Error?e.message:String(e))}}async function O(){let e=x();if(!e?.accessToken)throw Error(`Not logged in to GitHub — please log in first`);return e.accessToken}var k=`https://models.github.ai/inference`,A=[{id:`openai/gpt-4.1`,name:`GPT-4.1`,api:`openai`,context_window:1047576,max_tokens:32768,reasoning:!1,input:[`text`,`image`]},{id:`openai/gpt-4.1-mini`,name:`GPT-4.1 mini`,api:`openai`,context_window:1047576,max_tokens:32768,reasoning:!1,input:[`text`,`image`]}];function j(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:`github-openai`,provider:`github`,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 M=(t,r,i={})=>{let a=n();return(async()=>{try{let n=await O(),o=e({...t,baseUrl:k,api:`openai-completions`,compat:{...t.compat,supportsStore:!1,supportsDeveloperRole:!1,supportsUsageInStreaming:!1,maxTokensField:`max_tokens`}},r,{...i,apiKey:n});for await(let e of o)a.push(e);a.end()}catch(e){console.error(`[github] Stream error:`,e instanceof Error?e.message:String(e)),a.push(j(t,e)),a.end()}})(),a},N=(e,t,i)=>{let a=n();return(async()=>{try{let n=await O(),o=r({...e,baseUrl:k,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1,supportsUsageInStreaming:!1,maxTokensField:`max_tokens`}},t,{...i,apiKey:n});for await(let e of o)a.push(e);a.end()}catch(t){console.error(`[github] Stream error:`,t instanceof Error?t.message:String(t)),a.push(j(e,t)),a.end()}})(),a},P={id:`github`,name:`GitHub`,description:`GitHub Models + git authentication — login with your GitHub account`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`gpt-4.1`,oauthTokenDomains:[`github.com`,`*.github.com`,`api.github.com`,`raw.githubusercontent.com`,`models.github.ai`],getModelIds:()=>A,onOAuthLogin:async(e,t,n)=>{let r=await y();if(!r)throw Error(`GitHub OAuth not configured — no client ID available`);let i=n?.scopes??g.scopes,a=b?null:await u(),c=b?`${f()}/auth/callback`:`${v??a.origin}/auth/callback`,l=crypto.randomUUID(),d=b?chrome.runtime.id:``,m=b?{source:`extension`,extensionId:d,path:`/github`,nonce:l}:{port:parseInt(new URL(a.href).port||`5710`,10),path:`/auth/callback`,nonce:l},h=btoa(JSON.stringify(m)),_=l,x=new URLSearchParams({client_id:r,scope:i,redirect_uri:c});h&&x.set(`state`,h);let w=await e(`https://github.com/login/oauth/authorize?${x}`);if(!w)return;if(_)try{if(new URL(w).searchParams.get(`nonce`)!==_){console.error(`[github] OAuth nonce mismatch — possible CSRF`);return}}catch(e){console.warn(`[github] Nonce check skipped (URL parse failed):`,e instanceof Error?e.message:String(e))}let O=S(w);if(!O){console.error(`[github] Could not extract authorization code from redirect URL`);return}let k=await p({provider:`github`,code:O,redirectUri:c}),A=await C(k.access_token);await s({providerId:`github`,accessToken:k.access_token,userName:A.name,userAvatar:A.avatar});let j=o(`github`)?.maskedValue;j?await T(j):await E(),await D(A),t()},onOAuthLogout:async()=>{let e=x();e?.accessToken&&await m({provider:`github`,accessToken:e.accessToken}).catch(e=>console.warn(`[github] Token revocation failed:`,e instanceof Error?e.message:String(e))),await E(),await s({providerId:`github`,accessToken:``})}};function F(){t({api:`github-openai`,stream:M,streamSimple:N})}export{w as buildNoreplyEmail,P as config,S as extractCodeFromUrl,O as getValidAccessToken,F as register,D as syncGitIdentityFromGitHub};
@@ -0,0 +1 @@
1
+ import{L as e,N as t,P as n,_ as r,j as i,o as a}from"./kernel-worker-Du6Tb6XA.js";import{a as o,i as s,n as c,o as l,r as u,s as d,t as f}from"./google-shared-BSWPDQyC.js";let p=0;const m=(n,r,a)=>{let o=new i;return(async()=>{let i={role:`assistant`,content:[],api:`google-generative-ai`,provider:n.provider,model:n.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let c=g(n,a?.apiKey||e(n.provider)||``,a?.headers),d=_(n,r,a),f=await a?.onPayload?.(d,n);f!==void 0&&(d=f);let m=await c.models.generateContentStream(d);o.push({type:`start`,partial:i});let h=null,v=i.content,y=()=>v.length-1;for await(let e of m){i.responseId||=e.responseId;let r=e.candidates?.[0];if(r?.content?.parts)for(let e of r.content.parts){if(e.text!==void 0){let t=u(e);(!h||t&&h.type!==`thinking`||!t&&h.type!==`text`)&&(h&&(h.type===`text`?o.push({type:`text_end`,contentIndex:v.length-1,content:h.text,partial:i}):o.push({type:`thinking_end`,contentIndex:y(),content:h.thinking,partial:i})),t?(h={type:`thinking`,thinking:``,thinkingSignature:void 0},i.content.push(h),o.push({type:`thinking_start`,contentIndex:y(),partial:i})):(h={type:`text`,text:``},i.content.push(h),o.push({type:`text_start`,contentIndex:y(),partial:i}))),h.type===`thinking`?(h.thinking+=e.text,h.thinkingSignature=l(h.thinkingSignature,e.thoughtSignature),o.push({type:`thinking_delta`,contentIndex:y(),delta:e.text,partial:i})):(h.text+=e.text,h.textSignature=l(h.textSignature,e.thoughtSignature),o.push({type:`text_delta`,contentIndex:y(),delta:e.text,partial:i}))}if(e.functionCall){h&&=(h.type===`text`?o.push({type:`text_end`,contentIndex:y(),content:h.text,partial:i}):o.push({type:`thinking_end`,contentIndex:y(),content:h.thinking,partial:i}),null);let t=e.functionCall.id,n={type:`toolCall`,id:!t||i.content.some(e=>e.type===`toolCall`&&e.id===t)?`${e.functionCall.name}_${Date.now()}_${++p}`:t,name:e.functionCall.name||``,arguments:e.functionCall.args??{},...e.thoughtSignature&&{thoughtSignature:e.thoughtSignature}};i.content.push(n),o.push({type:`toolcall_start`,contentIndex:y(),partial:i}),o.push({type:`toolcall_delta`,contentIndex:y(),delta:JSON.stringify(n.arguments),partial:i}),o.push({type:`toolcall_end`,contentIndex:y(),toolCall:n,partial:i})}}r?.finishReason&&(i.stopReason=s(r.finishReason),i.content.some(e=>e.type===`toolCall`)&&(i.stopReason=`toolUse`)),e.usageMetadata&&(i.usage={input:(e.usageMetadata.promptTokenCount||0)-(e.usageMetadata.cachedContentTokenCount||0),output:(e.usageMetadata.candidatesTokenCount||0)+(e.usageMetadata.thoughtsTokenCount||0),cacheRead:e.usageMetadata.cachedContentTokenCount||0,cacheWrite:0,totalTokens:e.usageMetadata.totalTokenCount||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},t(n,i.usage))}if(h&&(h.type===`text`?o.push({type:`text_end`,contentIndex:y(),content:h.text,partial:i}):o.push({type:`thinking_end`,contentIndex:y(),content:h.thinking,partial:i})),a?.signal?.aborted)throw Error(`Request was aborted`);if(i.stopReason===`aborted`||i.stopReason===`error`)throw Error(`An unknown error occurred`);o.push({type:`done`,reason:i.stopReason,message:i}),o.end()}catch(e){for(let e of i.content)`index`in e&&delete e.index;i.stopReason=a?.signal?.aborted?`aborted`:`error`,i.errorMessage=e instanceof Error?e.message:JSON.stringify(e),o.push({type:`error`,reason:i.stopReason,error:i}),o.end()}})(),o},h=(t,i,a)=>{let o=a?.apiKey||e(t.provider);if(!o)throw Error(`No API key for provider: ${t.provider}`);let s=r(t,a,o);if(!a?.reasoning)return m(t,i,{...s,thinking:{enabled:!1}});let c=n(t,a.reasoning),l=c===`off`?`high`:c,u=t;return y(u)||b(u)||v(u)?m(t,i,{...s,thinking:{enabled:!0,level:S(l,u)}}):m(t,i,{...s,thinking:{enabled:!0,budgetTokens:C(u,l,a.thinkingBudgets)}})};function g(e,t,n){let r={};return e.baseUrl&&(r.baseUrl=e.baseUrl,r.apiVersion=``),(e.headers||n)&&(r.headers={...e.headers,...n}),new d({apiKey:t,httpOptions:Object.keys(r).length>0?r:void 0})}function _(e,t,n={}){let r=f(e,t),i={};n.temperature!==void 0&&(i.temperature=n.temperature),n.maxTokens!==void 0&&(i.maxOutputTokens=n.maxTokens);let s={...Object.keys(i).length>0&&i,...t.systemPrompt&&{systemInstruction:a(t.systemPrompt)},...t.tools&&t.tools.length>0&&{tools:c(t.tools)}};if(t.tools&&t.tools.length>0&&n.toolChoice?s.toolConfig={functionCallingConfig:{mode:o(n.toolChoice)}}:s.toolConfig=void 0,n.thinking?.enabled&&e.reasoning){let e={includeThoughts:!0};n.thinking.level===void 0?n.thinking.budgetTokens!==void 0&&(e.thinkingBudget=n.thinking.budgetTokens):e.thinkingLevel=n.thinking.level,s.thinkingConfig=e}else e.reasoning&&n.thinking&&!n.thinking.enabled&&(s.thinkingConfig=x(e));if(n.signal){if(n.signal.aborted)throw Error(`Request aborted`);s.abortSignal=n.signal}return{model:e.id,contents:r,config:s}}function v(e){return/gemma-?4/.test(e.id.toLowerCase())}function y(e){return/gemini-3(?:\.\d+)?-pro/.test(e.id.toLowerCase())}function b(e){return/gemini-3(?:\.\d+)?-flash/.test(e.id.toLowerCase())}function x(e){return y(e)?{thinkingLevel:`LOW`}:b(e)||v(e)?{thinkingLevel:`MINIMAL`}:{thinkingBudget:0}}function S(e,t){if(y(t))switch(e){case`minimal`:case`low`:return`LOW`;case`medium`:case`high`:return`HIGH`}if(v(t))switch(e){case`minimal`:case`low`:return`MINIMAL`;case`medium`:case`high`:return`HIGH`}switch(e){case`minimal`:return`MINIMAL`;case`low`:return`LOW`;case`medium`:return`MEDIUM`;case`high`:return`HIGH`}}function C(e,t,n){return n?.[t]===void 0?e.id.includes(`2.5-pro`)?{minimal:128,low:2048,medium:8192,high:32768}[t]:e.id.includes(`2.5-flash-lite`)?{minimal:512,low:2048,medium:8192,high:24576}[t]:e.id.includes(`2.5-flash`)?{minimal:128,low:2048,medium:8192,high:24576}[t]:-1:n[t]}export{m as streamGoogle,h as streamSimpleGoogle};
@@ -0,0 +1 @@
1
+ import{F as e,L as t,R as n,V as r,_ as i}from"./index-A_yObWaU.js";import{t as a}from"./sanitize-unicode-h0KEBmEw.js";import{a as o,i as s,n as c,o as l,r as u,s as d,t as f}from"./google-shared-DB5TYWXI.js";var p=0,m=(n,i,a)=>{let o=new e;return(async()=>{let e={role:`assistant`,content:[],api:`google-generative-ai`,provider:n.provider,model:n.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let c=g(n,a?.apiKey||r(n.provider)||``,a?.headers),d=_(n,i,a),f=await a?.onPayload?.(d,n);f!==void 0&&(d=f);let m=await c.models.generateContentStream(d);o.push({type:`start`,partial:e});let h=null,v=e.content,y=()=>v.length-1;for await(let r of m){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=u(t);(!h||n&&h.type!==`thinking`||!n&&h.type!==`text`)&&(h&&(h.type===`text`?o.push({type:`text_end`,contentIndex:v.length-1,content:h.text,partial:e}):o.push({type:`thinking_end`,contentIndex:y(),content:h.thinking,partial:e})),n?(h={type:`thinking`,thinking:``,thinkingSignature:void 0},e.content.push(h),o.push({type:`thinking_start`,contentIndex:y(),partial:e})):(h={type:`text`,text:``},e.content.push(h),o.push({type:`text_start`,contentIndex:y(),partial:e}))),h.type===`thinking`?(h.thinking+=t.text,h.thinkingSignature=l(h.thinkingSignature,t.thoughtSignature),o.push({type:`thinking_delta`,contentIndex:y(),delta:t.text,partial:e})):(h.text+=t.text,h.textSignature=l(h.textSignature,t.thoughtSignature),o.push({type:`text_delta`,contentIndex:y(),delta:t.text,partial:e}))}if(t.functionCall){h&&=(h.type===`text`?o.push({type:`text_end`,contentIndex:y(),content:h.text,partial:e}):o.push({type:`thinking_end`,contentIndex:y(),content:h.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()}_${++p}`:n,name:t.functionCall.name||``,arguments:t.functionCall.args??{},...t.thoughtSignature&&{thoughtSignature:t.thoughtSignature}};e.content.push(r),o.push({type:`toolcall_start`,contentIndex:y(),partial:e}),o.push({type:`toolcall_delta`,contentIndex:y(),delta:JSON.stringify(r.arguments),partial:e}),o.push({type:`toolcall_end`,contentIndex:y(),toolCall:r,partial:e})}}i?.finishReason&&(e.stopReason=s(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,totalTokens:r.usageMetadata.totalTokenCount||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},t(n,e.usage))}if(h&&(h.type===`text`?o.push({type:`text_end`,contentIndex:y(),content:h.text,partial:e}):o.push({type:`thinking_end`,contentIndex:y(),content:h.thinking,partial:e})),a?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(`An unknown error occurred`);o.push({type:`done`,reason:e.stopReason,message:e}),o.end()}catch(t){for(let t of e.content)`index`in t&&delete t.index;e.stopReason=a?.signal?.aborted?`aborted`:`error`,e.errorMessage=t instanceof Error?t.message:JSON.stringify(t),o.push({type:`error`,reason:e.stopReason,error:e}),o.end()}})(),o},h=(e,t,a)=>{let o=a?.apiKey||r(e.provider);if(!o)throw Error(`No API key for provider: ${e.provider}`);let s=i(e,a,o);if(!a?.reasoning)return m(e,t,{...s,thinking:{enabled:!1}});let c=n(e,a.reasoning),l=c===`off`?`high`:c,u=e;return y(u)||b(u)||v(u)?m(e,t,{...s,thinking:{enabled:!0,level:S(l,u)}}):m(e,t,{...s,thinking:{enabled:!0,budgetTokens:C(u,l,a.thinkingBudgets)}})};function g(e,t,n){let r={};return e.baseUrl&&(r.baseUrl=e.baseUrl,r.apiVersion=``),(e.headers||n)&&(r.headers={...e.headers,...n}),new d({apiKey:t,httpOptions:Object.keys(r).length>0?r:void 0})}function _(e,t,n={}){let r=f(e,t),i={};n.temperature!==void 0&&(i.temperature=n.temperature),n.maxTokens!==void 0&&(i.maxOutputTokens=n.maxTokens);let s={...Object.keys(i).length>0&&i,...t.systemPrompt&&{systemInstruction:a(t.systemPrompt)},...t.tools&&t.tools.length>0&&{tools:c(t.tools)}};if(t.tools&&t.tools.length>0&&n.toolChoice?s.toolConfig={functionCallingConfig:{mode:o(n.toolChoice)}}:s.toolConfig=void 0,n.thinking?.enabled&&e.reasoning){let e={includeThoughts:!0};n.thinking.level===void 0?n.thinking.budgetTokens!==void 0&&(e.thinkingBudget=n.thinking.budgetTokens):e.thinkingLevel=n.thinking.level,s.thinkingConfig=e}else e.reasoning&&n.thinking&&!n.thinking.enabled&&(s.thinkingConfig=x(e));if(n.signal){if(n.signal.aborted)throw Error(`Request aborted`);s.abortSignal=n.signal}return{model:e.id,contents:r,config:s}}function v(e){return/gemma-?4/.test(e.id.toLowerCase())}function y(e){return/gemini-3(?:\.\d+)?-pro/.test(e.id.toLowerCase())}function b(e){return/gemini-3(?:\.\d+)?-flash/.test(e.id.toLowerCase())}function x(e){return y(e)?{thinkingLevel:`LOW`}:b(e)||v(e)?{thinkingLevel:`MINIMAL`}:{thinkingBudget:0}}function S(e,t){if(y(t))switch(e){case`minimal`:case`low`:return`LOW`;case`medium`:case`high`:return`HIGH`}if(v(t))switch(e){case`minimal`:case`low`:return`MINIMAL`;case`medium`:case`high`:return`HIGH`}switch(e){case`minimal`:return`MINIMAL`;case`low`:return`LOW`;case`medium`:return`MEDIUM`;case`high`:return`HIGH`}}function C(e,t,n){return n?.[t]===void 0?e.id.includes(`2.5-pro`)?{minimal:128,low:2048,medium:8192,high:32768}[t]:e.id.includes(`2.5-flash-lite`)?{minimal:512,low:2048,medium:8192,high:24576}[t]:e.id.includes(`2.5-flash`)?{minimal:128,low:2048,medium:8192,high:24576}[t]:-1:n[t]}export{m as streamGoogle,h as streamSimpleGoogle};
@@ -1,4 +1,4 @@
1
- import{o as e,t}from"./chunk-jRWAZmH_.js";import{i as n}from"./simple-options-CVJdKrCb.js";import{t as r}from"./sanitize-unicode-DFrWoF2t.js";var i=t(((e,t)=>{function n(e,t){typeof t==`boolean`&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._timer=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}t.exports=n,n.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)},n.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null},n.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var t=new Date().getTime();if(e&&t-this._operationStart>=this._maxRetryTime)return this._errors.push(e),this._errors.unshift(Error(`RetryOperation timeout occurred`)),!1;this._errors.push(e);var n=this._timeouts.shift();if(n===void 0)if(this._cachedTimeouts)this._errors.splice(0,this._errors.length-1),n=this._cachedTimeouts.slice(-1);else return!1;var r=this;return this._timer=setTimeout(function(){r._attempts++,r._operationTimeoutCb&&(r._timeout=setTimeout(function(){r._operationTimeoutCb(r._attempts)},r._operationTimeout),r._options.unref&&r._timeout.unref()),r._fn(r._attempts)},n),this._options.unref&&this._timer.unref(),!0},n.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var n=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){n._operationTimeoutCb()},n._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)},n.prototype.try=function(e){console.log(`Using RetryOperation.try() is deprecated`),this.attempt(e)},n.prototype.start=function(e){console.log(`Using RetryOperation.start() is deprecated`),this.attempt(e)},n.prototype.start=n.prototype.try,n.prototype.errors=function(){return this._errors},n.prototype.attempts=function(){return this._attempts},n.prototype.mainError=function(){if(this._errors.length===0)return null;for(var e={},t=null,n=0,r=0;r<this._errors.length;r++){var i=this._errors[r],a=i.message,o=(e[a]||0)+1;e[a]=o,o>=n&&(t=i,n=o)}return t}})),a=t((e=>{var t=i();e.operation=function(n){return new t(e.timeouts(n),{forever:n&&(n.forever||n.retries===1/0),unref:n&&n.unref,maxRetryTime:n&&n.maxRetryTime})},e.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var n in e)t[n]=e[n];if(t.minTimeout>t.maxTimeout)throw Error(`minTimeout is greater than maxTimeout`);for(var r=[],i=0;i<t.retries;i++)r.push(this.createTimeout(i,t));return e&&e.forever&&!r.length&&r.push(this.createTimeout(i,t)),r.sort(function(e,t){return e-t}),r},e.createTimeout=function(e,t){var n=t.randomize?Math.random()+1:1,r=Math.round(n*Math.max(t.minTimeout,1)*t.factor**+e);return r=Math.min(r,t.maxTimeout),r},e.wrap=function(t,n,r){if(n instanceof Array&&(r=n,n=null),!r)for(var i in r=[],t)typeof t[i]==`function`&&r.push(i);for(var a=0;a<r.length;a++){var o=r[a],s=t[o];t[o]=function(r){var i=e.operation(n),a=Array.prototype.slice.call(arguments,1),o=a.pop();a.push(function(e){i.retry(e)||(e&&(arguments[0]=i.mainError()),o.apply(this,arguments))}),i.attempt(function(){r.apply(t,a)})}.bind(t,s),t[o].options=n}}})),o=t(((e,t)=>{t.exports=a()})),s=e(t(((e,t)=>{let n=o(),r=[`Failed to fetch`,`NetworkError when attempting to fetch resource.`,`The Internet connection appears to be offline.`,`Network request failed`];var i=class extends Error{constructor(e){super(),e instanceof Error?(this.originalError=e,{message:e}=e):(this.originalError=Error(e),this.originalError.stack=this.stack),this.name=`AbortError`,this.message=e}};let a=(e,t,n)=>{let r=n.retries-(t-1);return e.attemptNumber=t,e.retriesLeft=r,e},s=e=>r.includes(e),c=(e,t)=>new Promise((r,o)=>{t={onFailedAttempt:()=>{},retries:10,...t};let c=n.operation(t);c.attempt(async n=>{try{r(await e(n))}catch(e){if(!(e instanceof Error)){o(TypeError(`Non-error was thrown: "${e}". You should only throw errors.`));return}if(e instanceof i)c.stop(),o(e.originalError);else if(e instanceof TypeError&&!s(e.message))c.stop(),o(e);else{a(e,n,t);try{await t.onFailedAttempt(e)}catch(e){o(e);return}c.retry(e)||o(c.mainError())}}})});t.exports=c,t.exports.default=c,t.exports.AbortError=i}))(),1)
1
+ import{Q as e,Y as t,o as n,v as r}from"./kernel-worker-Du6Tb6XA.js";var i=t(((e,t)=>{function n(e,t){typeof t==`boolean`&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._timer=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}t.exports=n,n.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)},n.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null},n.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var t=new Date().getTime();if(e&&t-this._operationStart>=this._maxRetryTime)return this._errors.push(e),this._errors.unshift(Error(`RetryOperation timeout occurred`)),!1;this._errors.push(e);var n=this._timeouts.shift();if(n===void 0)if(this._cachedTimeouts)this._errors.splice(0,this._errors.length-1),n=this._cachedTimeouts.slice(-1);else return!1;var r=this;return this._timer=setTimeout(function(){r._attempts++,r._operationTimeoutCb&&(r._timeout=setTimeout(function(){r._operationTimeoutCb(r._attempts)},r._operationTimeout),r._options.unref&&r._timeout.unref()),r._fn(r._attempts)},n),this._options.unref&&this._timer.unref(),!0},n.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var n=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){n._operationTimeoutCb()},n._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)},n.prototype.try=function(e){console.log(`Using RetryOperation.try() is deprecated`),this.attempt(e)},n.prototype.start=function(e){console.log(`Using RetryOperation.start() is deprecated`),this.attempt(e)},n.prototype.start=n.prototype.try,n.prototype.errors=function(){return this._errors},n.prototype.attempts=function(){return this._attempts},n.prototype.mainError=function(){if(this._errors.length===0)return null;for(var e={},t=null,n=0,r=0;r<this._errors.length;r++){var i=this._errors[r],a=i.message,o=(e[a]||0)+1;e[a]=o,o>=n&&(t=i,n=o)}return t}})),a=t((e=>{var t=i();e.operation=function(n){return new t(e.timeouts(n),{forever:n&&(n.forever||n.retries===1/0),unref:n&&n.unref,maxRetryTime:n&&n.maxRetryTime})},e.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var n in e)t[n]=e[n];if(t.minTimeout>t.maxTimeout)throw Error(`minTimeout is greater than maxTimeout`);for(var r=[],i=0;i<t.retries;i++)r.push(this.createTimeout(i,t));return e&&e.forever&&!r.length&&r.push(this.createTimeout(i,t)),r.sort(function(e,t){return e-t}),r},e.createTimeout=function(e,t){var n=t.randomize?Math.random()+1:1,r=Math.round(n*Math.max(t.minTimeout,1)*t.factor**+e);return r=Math.min(r,t.maxTimeout),r},e.wrap=function(t,n,r){if(n instanceof Array&&(r=n,n=null),!r)for(var i in r=[],t)typeof t[i]==`function`&&r.push(i);for(var a=0;a<r.length;a++){var o=r[a],s=t[o];t[o]=function(r){var i=e.operation(n),a=Array.prototype.slice.call(arguments,1),o=a.pop();a.push(function(e){i.retry(e)||(e&&(arguments[0]=i.mainError()),o.apply(this,arguments))}),i.attempt(function(){r.apply(t,a)})}.bind(t,s),t[o].options=n}}})),o=t(((e,t)=>{t.exports=a()})),s=e(t(((e,t)=>{let n=o(),r=[`Failed to fetch`,`NetworkError when attempting to fetch resource.`,`The Internet connection appears to be offline.`,`Network request failed`];var i=class extends Error{constructor(e){super(),e instanceof Error?(this.originalError=e,{message:e}=e):(this.originalError=Error(e),this.originalError.stack=this.stack),this.name=`AbortError`,this.message=e}};let a=(e,t,n)=>{let r=n.retries-(t-1);return e.attemptNumber=t,e.retriesLeft=r,e},s=e=>r.includes(e),c=(e,t)=>new Promise((r,o)=>{t={onFailedAttempt:()=>{},retries:10,...t};let c=n.operation(t);c.attempt(async n=>{try{r(await e(n))}catch(e){if(!(e instanceof Error)){o(TypeError(`Non-error was thrown: "${e}". You should only throw errors.`));return}if(e instanceof i)c.stop(),o(e.originalError);else if(e instanceof TypeError&&!s(e.message))c.stop(),o(e);else{a(e,n,t);try{await t.onFailedAttempt(e)}catch(e){o(e);return}c.retry(e)||o(c.mainError())}}})});t.exports=c,t.exports.default=c,t.exports.AbortError=i}))(),1)
2
2
  /**
3
3
  * @license
4
4
  * Copyright 2025 Google LLC
@@ -360,5 +360,5 @@ const eu=`x-goog-api-key`;var tu=class{constructor(e){this.apiKey=e}async addAut
360
360
  * Copyright 2025 Google LLC
361
361
  * SPDX-License-Identifier: Apache-2.0
362
362
  */
363
- if(this._interactions!==void 0)return this._interactions;console.warn(`GoogleGenAI.interactions: Interactions usage is experimental and may change in future versions.`);let e=this.httpOptions;e?.extraBody&&console.warn(`GoogleGenAI.interactions: Client level httpOptions.extraBody is not supported by the interactions client and will be ignored.`);let t=new $({baseURL:this.apiClient.getBaseUrl(),apiKey:this.apiKey,apiVersion:this.apiClient.getApiVersion(),clientAdapter:this.apiClient,defaultHeaders:this.apiClient.getDefaultHeaders(),timeout:e?.timeout,maxRetries:e?.retryOptions?.attempts});return this._interactions=t.interactions,this._interactions}constructor(e){if(e.apiKey==null)throw Error(`An API Key must be set when running in a browser`);if(e.project||e.location)throw Error(`Vertex AI project based authentication is not supported on browser runtimes. Please do not provide a project or location.`);this.vertexai=e.vertexai??!1,this.apiKey=e.apiKey;let t=l(e.httpOptions,e.vertexai,void 0,void 0);t&&(e.httpOptions?e.httpOptions.baseUrl=t:e.httpOptions={baseUrl:t}),this.apiVersion=e.apiVersion,this.httpOptions=e.httpOptions;let n=new tu(this.apiKey);this.apiClient=new $o({auth:n,apiVersion:this.apiVersion,apiKey:this.apiKey,vertexai:this.vertexai,httpOptions:this.httpOptions,userAgentExtra:`gl-node/web`,uploader:new Zl,downloader:new Wl}),this.models=new Ss(this.apiClient),this.live=new ps(this.apiClient,n,new Ql),this.batches=new sr(this.apiClient),this.chats=new qr(this.models,this.apiClient),this.caches=new Br(this.apiClient),this.files=new oi(this.apiClient),this.operations=new Cs(this.apiClient),this.authTokens=new zs(this.apiClient),this.tunings=new Ul(this.apiClient),this.fileSearchStores=new qs(this.apiClient)}};function ru(e){return e.thought===!0}function iu(e,t){return typeof t==`string`&&t.length>0?t:e}const au=/^[A-Za-z0-9+/]+={0,2}$/;function ou(e){return!e||e.length%4!=0?!1:au.test(e)}function su(e,t){return e&&ou(t)?t:void 0}function cu(e){return e.startsWith(`claude-`)||e.startsWith(`gpt-oss-`)}function lu(e){let t=e.toLowerCase().match(/^gemini(?:-live)?-(\d+)/);if(t)return Number.parseInt(t[1],10)}function uu(e){let t=lu(e);return t===void 0?!0:t>=3}function du(e,t){let i=[],a=n(t.messages,e,t=>cu(e.id)?t.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,64):t);for(let t of a)if(t.role===`user`)if(typeof t.content==`string`)i.push({role:`user`,parts:[{text:r(t.content)}]});else{let e=t.content.map(e=>e.type===`text`?{text:r(e.text)}:{inlineData:{mimeType:e.mimeType,data:e.data}});if(e.length===0)continue;i.push({role:`user`,parts:e})}else if(t.role===`assistant`){let n=[],a=t.provider===e.provider&&t.model===e.id;for(let i of t.content)if(i.type===`text`){if(!i.text||i.text.trim()===``)continue;let e=su(a,i.textSignature);n.push({text:r(i.text),...e&&{thoughtSignature:e}})}else if(i.type===`thinking`){if(!i.thinking||i.thinking.trim()===``)continue;if(a){let e=su(a,i.thinkingSignature);n.push({thought:!0,text:r(i.thinking),...e&&{thoughtSignature:e}})}else n.push({text:r(i.thinking)})}else if(i.type===`toolCall`){let t=su(a,i.thoughtSignature),r={functionCall:{name:i.name,args:i.arguments??{},...cu(e.id)?{id:i.id}:{}},...t&&{thoughtSignature:t}};n.push(r)}if(n.length===0)continue;i.push({role:`model`,parts:n})}else if(t.role===`toolResult`){let n=t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
364
- `),a=e.input.includes(`image`)?t.content.filter(e=>e.type===`image`):[],o=n.length>0,s=a.length>0,c=uu(e.id),l=o?r(n):s?`(see attached image)`:``,u=a.map(e=>({inlineData:{mimeType:e.mimeType,data:e.data}})),d=cu(e.id),f={functionResponse:{name:t.toolName,response:t.isError?{error:l}:{output:l},...s&&c&&{parts:u},...d?{id:t.toolCallId}:{}}},p=i[i.length-1];p?.role===`user`&&p.parts?.some(e=>e.functionResponse)?p.parts.push(f):i.push({role:`user`,parts:[f]}),s&&!c&&i.push({role:`user`,parts:[{text:`Tool result image:`},...u]})}return i}const fu=new Set([`$schema`,`$id`,`$anchor`,`$dynamicAnchor`,`$vocabulary`,`$comment`,`$defs`,`definitions`]);function pu(e){if(typeof e!=`object`||!e||Array.isArray(e))return e;let t={};for(let[n,r]of Object.entries(e))fu.has(n)||(t[n]=pu(r));return t}function mu(e,t=!1){if(e.length!==0)return[{functionDeclarations:e.map(e=>({name:e.name,description:e.description,...t?{parameters:pu(e.parameters)}:{parametersJsonSchema:e.parameters}}))}]}function hu(e){switch(e){case`auto`:return ue.AUTO;case`none`:return ue.NONE;case`any`:return ue.ANY;default:return ue.AUTO}}function gu(e){switch(e){case M.STOP:return`stop`;case M.MAX_TOKENS:return`length`;case M.BLOCKLIST:case M.PROHIBITED_CONTENT:case M.SPII:case M.SAFETY:case M.IMAGE_SAFETY:case M.IMAGE_PROHIBITED_CONTENT:case M.IMAGE_RECITATION:case M.IMAGE_OTHER:case M.RECITATION:case M.FINISH_REASON_UNSPECIFIED:case M.OTHER:case M.LANGUAGE:case M.MALFORMED_FUNCTION_CALL:case M.UNEXPECTED_TOOL_CALL:case M.NO_IMAGE:return`error`;default:throw Error(`Unhandled stop reason: ${e}`)}}export{hu as a,De as c,gu as i,de as l,mu as n,iu as o,ru as r,nu as s,du as t};
363
+ if(this._interactions!==void 0)return this._interactions;console.warn(`GoogleGenAI.interactions: Interactions usage is experimental and may change in future versions.`);let e=this.httpOptions;e?.extraBody&&console.warn(`GoogleGenAI.interactions: Client level httpOptions.extraBody is not supported by the interactions client and will be ignored.`);let t=new $({baseURL:this.apiClient.getBaseUrl(),apiKey:this.apiKey,apiVersion:this.apiClient.getApiVersion(),clientAdapter:this.apiClient,defaultHeaders:this.apiClient.getDefaultHeaders(),timeout:e?.timeout,maxRetries:e?.retryOptions?.attempts});return this._interactions=t.interactions,this._interactions}constructor(e){if(e.apiKey==null)throw Error(`An API Key must be set when running in a browser`);if(e.project||e.location)throw Error(`Vertex AI project based authentication is not supported on browser runtimes. Please do not provide a project or location.`);this.vertexai=e.vertexai??!1,this.apiKey=e.apiKey;let t=l(e.httpOptions,e.vertexai,void 0,void 0);t&&(e.httpOptions?e.httpOptions.baseUrl=t:e.httpOptions={baseUrl:t}),this.apiVersion=e.apiVersion,this.httpOptions=e.httpOptions;let n=new tu(this.apiKey);this.apiClient=new $o({auth:n,apiVersion:this.apiVersion,apiKey:this.apiKey,vertexai:this.vertexai,httpOptions:this.httpOptions,userAgentExtra:`gl-node/web`,uploader:new Zl,downloader:new Wl}),this.models=new Ss(this.apiClient),this.live=new ps(this.apiClient,n,new Ql),this.batches=new sr(this.apiClient),this.chats=new qr(this.models,this.apiClient),this.caches=new Br(this.apiClient),this.files=new oi(this.apiClient),this.operations=new Cs(this.apiClient),this.authTokens=new zs(this.apiClient),this.tunings=new Ul(this.apiClient),this.fileSearchStores=new qs(this.apiClient)}};function ru(e){return e.thought===!0}function iu(e,t){return typeof t==`string`&&t.length>0?t:e}const au=/^[A-Za-z0-9+/]+={0,2}$/;function ou(e){return!e||e.length%4!=0?!1:au.test(e)}function su(e,t){return e&&ou(t)?t:void 0}function cu(e){return e.startsWith(`claude-`)||e.startsWith(`gpt-oss-`)}function lu(e){let t=e.toLowerCase().match(/^gemini(?:-live)?-(\d+)/);if(t)return Number.parseInt(t[1],10)}function uu(e){let t=lu(e);return t===void 0?!0:t>=3}function du(e,t){let i=[],a=r(t.messages,e,t=>cu(e.id)?t.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,64):t);for(let t of a)if(t.role===`user`)if(typeof t.content==`string`)i.push({role:`user`,parts:[{text:n(t.content)}]});else{let e=t.content.map(e=>e.type===`text`?{text:n(e.text)}:{inlineData:{mimeType:e.mimeType,data:e.data}});if(e.length===0)continue;i.push({role:`user`,parts:e})}else if(t.role===`assistant`){let r=[],a=t.provider===e.provider&&t.model===e.id;for(let i of t.content)if(i.type===`text`){if(!i.text||i.text.trim()===``)continue;let e=su(a,i.textSignature);r.push({text:n(i.text),...e&&{thoughtSignature:e}})}else if(i.type===`thinking`){if(!i.thinking||i.thinking.trim()===``)continue;if(a){let e=su(a,i.thinkingSignature);r.push({thought:!0,text:n(i.thinking),...e&&{thoughtSignature:e}})}else r.push({text:n(i.thinking)})}else if(i.type===`toolCall`){let t=su(a,i.thoughtSignature),n={functionCall:{name:i.name,args:i.arguments??{},...cu(e.id)?{id:i.id}:{}},...t&&{thoughtSignature:t}};r.push(n)}if(r.length===0)continue;i.push({role:`model`,parts:r})}else if(t.role===`toolResult`){let r=t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
364
+ `),a=e.input.includes(`image`)?t.content.filter(e=>e.type===`image`):[],o=r.length>0,s=a.length>0,c=uu(e.id),l=o?n(r):s?`(see attached image)`:``,u=a.map(e=>({inlineData:{mimeType:e.mimeType,data:e.data}})),d=cu(e.id),f={functionResponse:{name:t.toolName,response:t.isError?{error:l}:{output:l},...s&&c&&{parts:u},...d?{id:t.toolCallId}:{}}},p=i[i.length-1];p?.role===`user`&&p.parts?.some(e=>e.functionResponse)?p.parts.push(f):i.push({role:`user`,parts:[f]}),s&&!c&&i.push({role:`user`,parts:[{text:`Tool result image:`},...u]})}return i}const fu=new Set([`$schema`,`$id`,`$anchor`,`$dynamicAnchor`,`$vocabulary`,`$comment`,`$defs`,`definitions`]);function pu(e){if(typeof e!=`object`||!e||Array.isArray(e))return e;let t={};for(let[n,r]of Object.entries(e))fu.has(n)||(t[n]=pu(r));return t}function mu(e,t=!1){if(e.length!==0)return[{functionDeclarations:e.map(e=>({name:e.name,description:e.description,...t?{parameters:pu(e.parameters)}:{parametersJsonSchema:e.parameters}}))}]}function hu(e){switch(e){case`auto`:return ue.AUTO;case`none`:return ue.NONE;case`any`:return ue.ANY;default:return ue.AUTO}}function gu(e){switch(e){case M.STOP:return`stop`;case M.MAX_TOKENS:return`length`;case M.BLOCKLIST:case M.PROHIBITED_CONTENT:case M.SPII:case M.SAFETY:case M.IMAGE_SAFETY:case M.IMAGE_PROHIBITED_CONTENT:case M.IMAGE_RECITATION:case M.IMAGE_OTHER:case M.RECITATION:case M.FINISH_REASON_UNSPECIFIED:case M.OTHER:case M.LANGUAGE:case M.MALFORMED_FUNCTION_CALL:case M.UNEXPECTED_TOOL_CALL:case M.NO_IMAGE:return`error`;default:throw Error(`Unhandled stop reason: ${e}`)}}export{hu as a,De as c,gu as i,de as l,mu as n,iu as o,ru as r,nu as s,du as t};