sliccy 3.9.0 → 3.11.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 (132) hide show
  1. package/dist/ui/assets/__vite-browser-external-ccPY92C6.js +1 -0
  2. package/dist/ui/assets/adobe-B_4d1GIa.js +2 -0
  3. package/dist/ui/assets/adobe-DixSD4gc.js +1 -0
  4. package/dist/ui/assets/{agent-bridge-jV-wd2rf.js → agent-bridge-BgnzBzBy.js} +1 -1
  5. package/dist/ui/assets/{agent-message-to-chat-B8V1gOsM.js → agent-message-to-chat-DXZVGJxR.js} +1 -1
  6. package/dist/ui/assets/{anthropic-mL3ywMPV.js → anthropic-BnevdpoS.js} +4 -4
  7. package/dist/ui/assets/{anthropic-iVM3-a35.js → anthropic-NzuFTQTW.js} +5 -5
  8. package/dist/ui/assets/{apps-DRVsIBBx.js → apps-lRgud8Fh.js} +1 -1
  9. package/dist/ui/assets/{azure-openai-Cx5Pj5oC.js → azure-openai-B7Pr7m__.js} +1 -1
  10. package/dist/ui/assets/azure-openai-DykC0YtR.js +1 -0
  11. package/dist/ui/assets/{azure-openai-responses-CXt7G9Am.js → azure-openai-responses-Bhb_aioL.js} +1 -1
  12. package/dist/ui/assets/{azure-openai-responses-nU5pAWHz.js → azure-openai-responses-JJr9M-EF.js} +1 -1
  13. package/dist/ui/assets/{bsh-watchdog-CEYald81.js → bsh-watchdog-B_vUSTC5.js} +1 -1
  14. package/dist/ui/assets/{cdp-DgQAS7RO.js → cdp-DXmFwQ4j.js} +4 -4
  15. package/dist/ui/assets/{cloud-CCHD45tb.js → cloud-BDR25NRv.js} +1 -1
  16. package/dist/ui/assets/cost-command-BWXehnvl.js +1 -0
  17. package/dist/ui/assets/{dist-CltZJzbd.js → dist-BBhtjNOt.js} +1 -1
  18. package/dist/ui/assets/{dist-tLLu0PBg.js → dist-CrC-F8vu.js} +1 -1
  19. package/dist/ui/assets/{dist-9RlRmGag.js → dist-DElqKLgF.js} +1 -1
  20. package/dist/ui/assets/{dist-ljtB3O-J.js → dist-DQRYKv91.js} +1 -1
  21. package/dist/ui/assets/{dist-ChvbMSOY.js → dist-Dnh15m1q.js} +1 -1
  22. package/dist/ui/assets/{dist-cZSF0917.js → dist-jdlcYxrm.js} +1 -1
  23. package/dist/ui/assets/{dist-CZcDRTma.js → dist-k2Xmqc09.js} +3 -3
  24. package/dist/ui/assets/{es-B67k6SZx.js → es-YXgEFCr4.js} +5 -5
  25. package/dist/ui/assets/{follower-sprinkle-bridge-DSIoRDT8.js → follower-sprinkle-bridge-pM_9mh8K.js} +1 -1
  26. package/dist/ui/assets/github-BGd7Ze-G.js +2 -0
  27. package/dist/ui/assets/github-CeT5IqOp.js +1 -0
  28. package/dist/ui/assets/google-Bu_dHS7k.js +1 -0
  29. package/dist/ui/assets/{google-CO7YjBwe.js → google-CGKQ3ixr.js} +1 -1
  30. package/dist/ui/assets/{google-shared-BzCwNN5i.js → google-shared-CjxLMtrx.js} +4 -4
  31. package/dist/ui/assets/{google-shared-LxsopJXA.js → google-shared-DbuMfloN.js} +3 -3
  32. package/dist/ui/assets/{google-vertex-DA-3dPhk.js → google-vertex-B4NrC4n7.js} +1 -1
  33. package/dist/ui/assets/{google-vertex-CmQxc5zO.js → google-vertex-CHVJnDpB.js} +1 -1
  34. package/dist/ui/assets/{intercepted-oauth-DiLTU8Ii.js → intercepted-oauth-DBh2Mm3h.js} +1 -1
  35. package/dist/ui/assets/{js-realm-worker-B3OvP1qG.js → js-realm-worker-C2Z2nmxV.js} +1 -1
  36. package/dist/ui/assets/{kernel-worker-BC6z3xjS.js → kernel-worker-Ch_A9Scg.js} +952 -931
  37. package/dist/ui/assets/lick-ws-bridge-B6CkpZVL.js +1 -0
  38. package/dist/ui/assets/{local-llm-RHAVtkGQ.js → local-llm-CxzXCg9G.js} +2 -2
  39. package/dist/ui/assets/{magick-wasm-C7EkxjX-.js → magick-wasm-Bches_n_.js} +1 -1
  40. package/dist/ui/assets/{main-BHLxIMys.js → main-C_dVS7-y.js} +181 -182
  41. package/dist/ui/assets/{mistral-Dx-x1MfD.js → mistral-D0LaZl63.js} +4 -4
  42. package/dist/ui/assets/{mistral-Chz686k5.js → mistral-DWpfhgsB.js} +3 -3
  43. package/dist/ui/assets/{nuke-command-qvwqiQHy.js → nuke-command-Cc6iklUj.js} +1 -1
  44. package/dist/ui/assets/{oauth-CG3epMwm.js → oauth-CEhFWL1c.js} +1 -1
  45. package/dist/ui/assets/{oauth-bootstrap-CollSvx8.js → oauth-bootstrap-BdH4T7WF.js} +2 -2
  46. package/dist/ui/assets/{oauth-service-Bby2XbV9.js → oauth-service-DOEbnD4i.js} +1 -1
  47. package/dist/ui/assets/{oauth-service-CsGFgUI2.js → oauth-service-DPIHRVv7.js} +1 -1
  48. package/dist/ui/assets/{offscreen-client-BgFTGLb6.js → offscreen-client-gxy-5P83.js} +1 -1
  49. package/dist/ui/assets/{onboarding-orchestrator-BdKyK2bb.js → onboarding-orchestrator-D7leZXH1.js} +1 -1
  50. package/dist/ui/assets/{openai-BR_xAflc.js → openai-Cn5LRPCm.js} +4 -4
  51. package/dist/ui/assets/{openai-codex-responses-CYZE7Ri0.js → openai-codex-responses-BHw7XWOx.js} +4 -4
  52. package/dist/ui/assets/{openai-codex-responses-DrQ-9KYF.js → openai-codex-responses-CDYRLhQd.js} +1 -1
  53. package/dist/ui/assets/{openai-completions-Crq53Ayo.js → openai-completions-C0AaFvwW.js} +3 -3
  54. package/dist/ui/assets/{openai-responses-DZWvz_eT.js → openai-responses-B9BXP7cL.js} +1 -1
  55. package/dist/ui/assets/{openai-responses-NpY-7Q9b.js → openai-responses-DRumuMm3.js} +1 -1
  56. package/dist/ui/assets/{openai-responses-shared-D1mo55LS.js → openai-responses-shared-A2w0cKxU.js} +4 -4
  57. package/dist/ui/assets/{openai-responses-shared-D8o41Qqd.js → openai-responses-shared-DgY27N8N.js} +1 -1
  58. package/dist/ui/assets/{openrouter-DZjPMgbr.js → openrouter-B-ud7Vxe.js} +1 -1
  59. package/dist/ui/assets/{openrouter-CatA7kSh.js → openrouter-B_cu1ol4.js} +1 -1
  60. package/dist/ui/assets/{panel-rpc-handlers-BJ-wBZiF.js → panel-rpc-handlers-DEhRuNm8.js} +1 -1
  61. package/dist/ui/assets/{pdfjs-CW51NNE6.js → pdfjs-C3ks1z_T.js} +2 -2
  62. package/dist/ui/assets/provider-BIWdVu7k.js +2 -0
  63. package/dist/ui/assets/provider-C2_eeNbs.js +1 -0
  64. package/dist/ui/assets/provider-store-access-D6Qj8fkB.js +1 -0
  65. package/dist/ui/assets/provider-store-access-E59loJtG.js +1 -0
  66. package/dist/ui/assets/{proxied-fetch-BQDZVMp5.js → proxied-fetch-Q6281hOW.js} +1 -1
  67. package/dist/ui/assets/{py-realm-worker-zrXeREDr.js → py-realm-worker-BDTXsbRf.js} +1 -1
  68. package/dist/ui/assets/{pyodide-CoTxJ1oh.js → pyodide-BX6DPeWg.js} +2 -2
  69. package/dist/ui/assets/{pyodide-Bv1KSh-_.js → pyodide-M7UA50Oh.js} +1 -1
  70. package/dist/ui/assets/{remote-terminal-view-D1HhRHw_.js → remote-terminal-view-DmGgxHAM.js} +3 -3
  71. package/dist/ui/assets/{secret-env-7EK-8pGt.js → secret-env-BzVan238.js} +1 -1
  72. package/dist/ui/assets/{slicc-editor-BySG3JWk.js → slicc-editor-CUZQugi0.js} +2 -2
  73. package/dist/ui/assets/{spawn-Dqw1vU56.js → spawn-DEw_MJS6.js} +1 -1
  74. package/dist/ui/assets/{sql-wasm-1BJYGQai.js → sql-wasm-DvnIUql_.js} +1 -1
  75. package/dist/ui/assets/store-UPMR_zFT.js +1 -0
  76. package/dist/ui/assets/{tray-leave-runtime-oNz7QQtO.js → tray-leave-runtime-wk0kHiSi.js} +1 -1
  77. package/dist/ui/assets/upgrade-detection-_vMRqUBY.js +1 -0
  78. package/dist/ui/assets/xai-grok-CdElFNC4.js +1 -0
  79. package/dist/ui/assets/xai-grok-D5kLpuob.js +1 -0
  80. package/dist/ui/assets/{xai-grok-sanitize-L5nUbDcW.js → xai-grok-sanitize-CR2JoOJd.js} +1 -1
  81. package/dist/ui/assets/{xai-grok-sanitize-C7TgWvwD.js → xai-grok-sanitize-CV6qvaEF.js} +1 -1
  82. package/dist/ui/index.html +2 -2
  83. package/dist/ui/packages/webapp/cloud/index.html +2 -2
  84. package/dist/ui/packages/webapp/index.html +2 -2
  85. package/package.json +2 -2
  86. package/dist/ui/assets/__vite-browser-external-B0Aozsa-.js +0 -1
  87. package/dist/ui/assets/active-transport-DHcaBd4j.js +0 -1
  88. package/dist/ui/assets/adobe-Bt5g8KQ8.js +0 -1
  89. package/dist/ui/assets/adobe-CnR62Zz4.js +0 -2
  90. package/dist/ui/assets/azure-openai-JPzwToVw.js +0 -1
  91. package/dist/ui/assets/cost-command-CSFioZjM.js +0 -1
  92. package/dist/ui/assets/dist-D0kTaNET.js +0 -43
  93. package/dist/ui/assets/github-CK_6pj34.js +0 -2
  94. package/dist/ui/assets/github-vJrAPitt.js +0 -1
  95. package/dist/ui/assets/google-C_70cIVo.js +0 -1
  96. package/dist/ui/assets/hash-iitWbNjK.js +0 -1
  97. package/dist/ui/assets/lick-ws-bridge-BySQiZfZ.js +0 -1
  98. package/dist/ui/assets/provider--7zezZNA.js +0 -1
  99. package/dist/ui/assets/provider-BbarSgl8.js +0 -2
  100. package/dist/ui/assets/provider-store-access-CcWgx9ta.js +0 -1
  101. package/dist/ui/assets/provider-store-access-IMgEIUH6.js +0 -1
  102. package/dist/ui/assets/store-DrwbCi-e.js +0 -1
  103. package/dist/ui/assets/upgrade-detection-CaXKHhN-.js +0 -1
  104. package/dist/ui/assets/xai-grok-5wPTQels.js +0 -1
  105. package/dist/ui/assets/xai-grok-Dw1VTeHT.js +0 -1
  106. /package/dist/ui/assets/{active-transport-Clj9slj7.js → active-transport-BIjzxdwv.js} +0 -0
  107. /package/dist/ui/assets/{addon-fit-CBG3Hsec.js → addon-fit-CuuUKmBe.js} +0 -0
  108. /package/dist/ui/assets/{addon-fit-CUt9lrQO.js → addon-fit-DthTIhi3.js} +0 -0
  109. /package/dist/ui/assets/{azure-ai-foundry-B4QrVklT.js → azure-ai-foundry-Bo0FAJyX.js} +0 -0
  110. /package/dist/ui/assets/{azure-ai-foundry-CGkSI_4f.js → azure-ai-foundry-CzkPLAhp.js} +0 -0
  111. /package/dist/ui/assets/{chat-fixture-ChGRNFda.js → chat-fixture-CLDS_yKK.js} +0 -0
  112. /package/dist/ui/assets/{git-config-DcQbkikl.js → git-config-DLJIrKjL.js} +0 -0
  113. /package/dist/ui/assets/{github-copilot-headers-C5CocKfn.js → github-copilot-headers-DZtWWv8W.js} +0 -0
  114. /package/dist/ui/assets/{global-db-DL3jdM9H.js → global-db-CbuLl-zx.js} +0 -0
  115. /package/dist/ui/assets/{hash-C3GX0Zuo.js → hash-yQufAZII.js} +0 -0
  116. /package/dist/ui/assets/{headers-qDMOQQGF.js → headers-DO1UzNKu.js} +0 -0
  117. /package/dist/ui/assets/{lick-manager-proxy-1L0EGIWD.js → lick-manager-proxy-B749hY0Y.js} +0 -0
  118. /package/dist/ui/assets/{modulepreload-polyfill-wMinxHhO.js → modulepreload-polyfill-Dezn_h7o.js} +0 -0
  119. /package/dist/ui/assets/{page-storage-sync-sv2ogNKh.js → page-storage-sync-BMnuL0eG.js} +0 -0
  120. /package/dist/ui/assets/{rum-z5wz4Dnj.js → rum-DW84CvBs.js} +0 -0
  121. /package/dist/ui/assets/{sanitize-unicode-B1z_Y4Dq.js → sanitize-unicode-DmIE6hZJ.js} +0 -0
  122. /package/dist/ui/assets/{sprinkle-bridge-channel-Bw5UaanD.js → sprinkle-bridge-channel-DwDzRdg8.js} +0 -0
  123. /package/dist/ui/assets/{sprinkle-bridge-channel-ChD0T07C.js → sprinkle-bridge-channel-gvVv6R_O.js} +0 -0
  124. /package/dist/ui/assets/{sprinkle-proxy-D6wqmewK.js → sprinkle-proxy-B4nH2NxC.js} +0 -0
  125. /package/dist/ui/assets/{src-DRmQ1wr-.js → src-C9oNvq2b.js} +0 -0
  126. /package/dist/ui/assets/{worker-B1VFCur7.js → worker-D1KsWRGg.js} +0 -0
  127. /package/dist/ui/assets/{xai-grok-errors-C6VnD_MH.js → xai-grok-errors-ByEMMSoz.js} +0 -0
  128. /package/dist/ui/assets/{xai-grok-errors-BdY43UIn.js → xai-grok-errors-bnlIBeu-.js} +0 -0
  129. /package/dist/ui/assets/{xai-grok-models-BndZgIFZ.js → xai-grok-models-B0Tf--xf.js} +0 -0
  130. /package/dist/ui/assets/{xai-grok-models-C9MIa-Aj.js → xai-grok-models-CeEBaUMC.js} +0 -0
  131. /package/dist/ui/assets/{xterm-DLCsxsB1.js → xterm-B5O_KJMf.js} +0 -0
  132. /package/dist/ui/assets/{xterm-VndicwFp.js → xterm-DooSxjI5.js} +0 -0
@@ -1 +1 @@
1
- import{t as e}from"./main-BHLxIMys.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};
1
+ import{t as e}from"./main-C_dVS7-y.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,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/main-C_dVS7-y.js","assets/modulepreload-polyfill-Dezn_h7o.js","assets/main-CvlDeETm.css"])))=>i.map(i=>d[i]);
2
+ import{D as e,F as t,R as n,T as r,V as i,X as a,g as o,h as s,q as c,u as l}from"./main-C_dVS7-y.js";import{getOAuthPageOrigin as u}from"./oauth-service-DOEbnD4i.js";import{t as d}from"./global-db-CbuLl-zx.js";var f={clientId:``,scopes:`repo,read:user,user:email`};function p(){try{let t=localStorage.getItem(e);if(t)return t.replace(/\/$/,``)}catch{}return r}async function m(e){let t=`${p()}/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 h(e){let t=`${p()}/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 g=Object.assign({"/packages/webapp/providers/github-config.json":f})[`/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(`${p()}/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 l().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(`./main-C_dVS7-y.js`).then(e=>e.i);return{VirtualFS:e}},__vite__mapDeps([0,1,2]));await(await t.create({dbName:d})).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(`./main-C_dVS7-y.js`).then(e=>e.i);return{VirtualFS:e}},__vite__mapDeps([0,1,2]));await(await e.create({dbName:d})).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(`./main-C_dVS7-y.js`).then(e=>e.i);return{VirtualFS:e}},__vite__mapDeps([0,1,2])),{readGlobalGitConfigValue:n,writeGlobalGitConfigValue:r}=await a(async()=>{let{readGlobalGitConfigValue:e,writeGlobalGitConfigValue:t}=await import(`./git-config-DLJIrKjL.js`);return{readGlobalGitConfigValue:e,writeGlobalGitConfigValue:t}},[]),i=await t.create({dbName:d}),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=(e,n,r={})=>{let a=i();return(async()=>{try{let i=await O(),o=t({...e,baseUrl:k,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1,supportsUsageInStreaming:!1,maxTokensField:`max_tokens`}},n,{...r,apiKey:i});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},N=(e,t,r)=>{let a=i();return(async()=>{try{let i=await O(),o=n({...e,baseUrl:k,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1,supportsUsageInStreaming:!1,maxTokensField:`max_tokens`}},t,{...r,apiKey:i});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?`${p()}/auth/callback`:`${v??a.origin}/auth/callback`,l=crypto.randomUUID(),d=b?chrome.runtime.id:``,f=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(f)),_=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 m({provider:`github`,code:O,redirectUri:c}),A=await C(k.access_token);await o({providerId:`github`,accessToken:k.access_token,userName:A.name,userAvatar:A.avatar});let j=s(`github`)?.maskedValue;j?await T(j):await E(),await D(A),t()},onOAuthLogout:async()=>{let e=x();e?.accessToken&&await h({provider:`github`,accessToken:e.accessToken}).catch(e=>console.warn(`[github] Token revocation failed:`,e instanceof Error?e.message:String(e))),await E(),await o({providerId:`github`,accessToken:``})}};function F(){c({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{F as e,G as t,M as n,R as r,Y as i,_ as a,nt as o,p as s,tt as c,v as l}from"./kernel-worker-Ch_A9Scg.js";import{getOAuthPageOrigin as u}from"./oauth-service-DPIHRVv7.js";var d={clientId:``,scopes:`repo,read:user,user:email`};function f(){try{let e=localStorage.getItem(o);if(e)return e.replace(/\/$/,``)}catch{}return c}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 s().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-Ch_A9Scg.js`).then(e=>e.Z);await(await t.create({dbName:i})).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-Ch_A9Scg.js`).then(e=>e.Z);await(await e.create({dbName:i})).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-Ch_A9Scg.js`).then(e=>e.Z),{readGlobalGitConfigValue:n,writeGlobalGitConfigValue:r}=await import(`./kernel-worker-Ch_A9Scg.js`).then(e=>e.q),a=await t.create({dbName:i}),o=e.name||e.login,s=C(e.id,e.login);!await n(a,`user.name`)&&o&&await r(a,`user.name`,o),await n(a,`user.email`)||await r(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=(e,t,i={})=>{let a=r();return(async()=>{try{let r=await D(),o=n({...e,baseUrl:O,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1,supportsUsageInStreaming:!1,maxTokensField:`max_tokens`}},t,{...i,apiKey:r});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(A(e,t)),a.end()}})(),a},M=(t,n,i)=>{let a=r();return(async()=>{try{let r=await D(),o=e({...t,baseUrl:O,api:`openai-completions`,compat:{...t.compat,supportsStore:!1,supportsDeveloperRole:!1,supportsUsageInStreaming:!1,maxTokensField:`max_tokens`}},n,{...i,apiKey:r});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},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(),s=y?`${f()}/auth/callback`:`${_??o.origin}/auth/callback`,c=crypto.randomUUID(),d=y?chrome.runtime.id:``,m=y?{source:`extension`,extensionId:d,path:`/github`,nonce:c}:{port:parseInt(new URL(o.href).port||`5710`,10),path:`/auth/callback`,nonce:c},g=btoa(JSON.stringify(m)),b=c,C=new URLSearchParams({client_id:r,scope:i,redirect_uri:s});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:s}),A=await S(k.access_token);await l({providerId:`github`,accessToken:k.access_token,userName:A.name,userAvatar:A.avatar});let j=a(`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 l({providerId:`github`,accessToken:``})}};function P(){t({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 @@
1
+ import{B as e,H as t,K as n,U as r,b as i}from"./main-C_dVS7-y.js";import{t as a}from"./sanitize-unicode-DmIE6hZJ.js";import{a as o,i as s,n as c,o as l,r as u,s as d,t as f}from"./google-shared-DbuMfloN.js";var p=0,m=(r,i,a)=>{let o=new e;return(async()=>{let e={role:`assistant`,content:[],api:`google-generative-ai`,provider:r.provider,model:r.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let c=g(r,a?.apiKey||n(r.provider)||``,a?.headers),d=_(r,i,a),f=await a?.onPayload?.(d,r);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 n of m){e.responseId||=n.responseId;let i=n.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`)),n.usageMetadata&&(e.usage={input:(n.usageMetadata.promptTokenCount||0)-(n.usageMetadata.cachedContentTokenCount||0),output:(n.usageMetadata.candidatesTokenCount||0)+(n.usageMetadata.thoughtsTokenCount||0),cacheRead:n.usageMetadata.cachedContentTokenCount||0,cacheWrite:0,totalTokens:n.usageMetadata.totalTokenCount||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},t(r,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||n(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=r(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 +1 @@
1
- import{B as e,L as t,U as n,b as r,o as i,z as a}from"./kernel-worker-BC6z3xjS.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-BzCwNN5i.js";let p=0;const m=(e,r,i)=>{let o=new t;return(async()=>{let t={role:`assistant`,content:[],api:`google-generative-ai`,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let c=g(e,i?.apiKey||n(e.provider)||``,i?.headers),d=_(e,r,i),f=await i?.onPayload?.(d,e);f!==void 0&&(d=f);let m=await c.models.generateContentStream(d);o.push({type:`start`,partial:t});let h=null,v=t.content,y=()=>v.length-1;for await(let n of m){t.responseId||=n.responseId;let r=n.candidates?.[0];if(r?.content?.parts)for(let e of r.content.parts){if(e.text!==void 0){let n=u(e);(!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:t}):o.push({type:`thinking_end`,contentIndex:y(),content:h.thinking,partial:t})),n?(h={type:`thinking`,thinking:``,thinkingSignature:void 0},t.content.push(h),o.push({type:`thinking_start`,contentIndex:y(),partial:t})):(h={type:`text`,text:``},t.content.push(h),o.push({type:`text_start`,contentIndex:y(),partial:t}))),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:t})):(h.text+=e.text,h.textSignature=l(h.textSignature,e.thoughtSignature),o.push({type:`text_delta`,contentIndex:y(),delta:e.text,partial:t}))}if(e.functionCall){h&&=(h.type===`text`?o.push({type:`text_end`,contentIndex:y(),content:h.text,partial:t}):o.push({type:`thinking_end`,contentIndex:y(),content:h.thinking,partial:t}),null);let n=e.functionCall.id,r={type:`toolCall`,id:!n||t.content.some(e=>e.type===`toolCall`&&e.id===n)?`${e.functionCall.name}_${Date.now()}_${++p}`:n,name:e.functionCall.name||``,arguments:e.functionCall.args??{},...e.thoughtSignature&&{thoughtSignature:e.thoughtSignature}};t.content.push(r),o.push({type:`toolcall_start`,contentIndex:y(),partial:t}),o.push({type:`toolcall_delta`,contentIndex:y(),delta:JSON.stringify(r.arguments),partial:t}),o.push({type:`toolcall_end`,contentIndex:y(),toolCall:r,partial:t})}}r?.finishReason&&(t.stopReason=s(r.finishReason),t.content.some(e=>e.type===`toolCall`)&&(t.stopReason=`toolUse`)),n.usageMetadata&&(t.usage={input:(n.usageMetadata.promptTokenCount||0)-(n.usageMetadata.cachedContentTokenCount||0),output:(n.usageMetadata.candidatesTokenCount||0)+(n.usageMetadata.thoughtsTokenCount||0),cacheRead:n.usageMetadata.cachedContentTokenCount||0,cacheWrite:0,totalTokens:n.usageMetadata.totalTokenCount||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},a(e,t.usage))}if(h&&(h.type===`text`?o.push({type:`text_end`,contentIndex:y(),content:h.text,partial:t}):o.push({type:`thinking_end`,contentIndex:y(),content:h.thinking,partial:t})),i?.signal?.aborted)throw Error(`Request was aborted`);if(t.stopReason===`aborted`||t.stopReason===`error`)throw Error(`An unknown error occurred`);o.push({type:`done`,reason:t.stopReason,message:t}),o.end()}catch(e){for(let e of t.content)`index`in e&&delete e.index;t.stopReason=i?.signal?.aborted?`aborted`:`error`,t.errorMessage=e instanceof Error?e.message:JSON.stringify(e),o.push({type:`error`,reason:t.stopReason,error:t}),o.end()}})(),o},h=(t,i,a)=>{let o=a?.apiKey||n(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=e(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),a={};n.temperature!==void 0&&(a.temperature=n.temperature),n.maxTokens!==void 0&&(a.maxOutputTokens=n.maxTokens);let s={...Object.keys(a).length>0&&a,...t.systemPrompt&&{systemInstruction:i(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
+ import{B as e,L as t,U as n,b as r,o as i,z as a}from"./kernel-worker-Ch_A9Scg.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-CjxLMtrx.js";let p=0;const m=(e,r,i)=>{let o=new t;return(async()=>{let t={role:`assistant`,content:[],api:`google-generative-ai`,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let c=g(e,i?.apiKey||n(e.provider)||``,i?.headers),d=_(e,r,i),f=await i?.onPayload?.(d,e);f!==void 0&&(d=f);let m=await c.models.generateContentStream(d);o.push({type:`start`,partial:t});let h=null,v=t.content,y=()=>v.length-1;for await(let n of m){t.responseId||=n.responseId;let r=n.candidates?.[0];if(r?.content?.parts)for(let e of r.content.parts){if(e.text!==void 0){let n=u(e);(!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:t}):o.push({type:`thinking_end`,contentIndex:y(),content:h.thinking,partial:t})),n?(h={type:`thinking`,thinking:``,thinkingSignature:void 0},t.content.push(h),o.push({type:`thinking_start`,contentIndex:y(),partial:t})):(h={type:`text`,text:``},t.content.push(h),o.push({type:`text_start`,contentIndex:y(),partial:t}))),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:t})):(h.text+=e.text,h.textSignature=l(h.textSignature,e.thoughtSignature),o.push({type:`text_delta`,contentIndex:y(),delta:e.text,partial:t}))}if(e.functionCall){h&&=(h.type===`text`?o.push({type:`text_end`,contentIndex:y(),content:h.text,partial:t}):o.push({type:`thinking_end`,contentIndex:y(),content:h.thinking,partial:t}),null);let n=e.functionCall.id,r={type:`toolCall`,id:!n||t.content.some(e=>e.type===`toolCall`&&e.id===n)?`${e.functionCall.name}_${Date.now()}_${++p}`:n,name:e.functionCall.name||``,arguments:e.functionCall.args??{},...e.thoughtSignature&&{thoughtSignature:e.thoughtSignature}};t.content.push(r),o.push({type:`toolcall_start`,contentIndex:y(),partial:t}),o.push({type:`toolcall_delta`,contentIndex:y(),delta:JSON.stringify(r.arguments),partial:t}),o.push({type:`toolcall_end`,contentIndex:y(),toolCall:r,partial:t})}}r?.finishReason&&(t.stopReason=s(r.finishReason),t.content.some(e=>e.type===`toolCall`)&&(t.stopReason=`toolUse`)),n.usageMetadata&&(t.usage={input:(n.usageMetadata.promptTokenCount||0)-(n.usageMetadata.cachedContentTokenCount||0),output:(n.usageMetadata.candidatesTokenCount||0)+(n.usageMetadata.thoughtsTokenCount||0),cacheRead:n.usageMetadata.cachedContentTokenCount||0,cacheWrite:0,totalTokens:n.usageMetadata.totalTokenCount||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},a(e,t.usage))}if(h&&(h.type===`text`?o.push({type:`text_end`,contentIndex:y(),content:h.text,partial:t}):o.push({type:`thinking_end`,contentIndex:y(),content:h.thinking,partial:t})),i?.signal?.aborted)throw Error(`Request was aborted`);if(t.stopReason===`aborted`||t.stopReason===`error`)throw Error(`An unknown error occurred`);o.push({type:`done`,reason:t.stopReason,message:t}),o.end()}catch(e){for(let e of t.content)`index`in e&&delete e.index;t.stopReason=i?.signal?.aborted?`aborted`:`error`,t.errorMessage=e instanceof Error?e.message:JSON.stringify(e),o.push({type:`error`,reason:t.stopReason,error:t}),o.end()}})(),o},h=(t,i,a)=>{let o=a?.apiKey||n(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=e(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),a={};n.temperature!==void 0&&(a.temperature=n.temperature),n.maxTokens!==void 0&&(a.maxOutputTokens=n.maxTokens);let s={...Object.keys(a).length>0&&a,...t.systemPrompt&&{systemInstruction:i(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,ot as t,rt as n,x as r}from"./kernel-worker-BC6z3xjS.js";var i=n(((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=n((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=n(((e,t)=>{t.exports=a()})),s=t(n(((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{lt as e,o as t,ot as n,x as r}from"./kernel-worker-Ch_A9Scg.js";var i=n(((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=n((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=n(((e,t)=>{t.exports=a()})),s=e(n(((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
@@ -318,7 +318,7 @@ const ml=Symbol(`brand.privateNullableHeaders`);function*hl(e){if(!e)return;if(m
318
318
  * Copyright 2025 Google LLC
319
319
  * SPDX-License-Identifier: Apache-2.0
320
320
  */
321
- var t;if(globalThis.process!==void 0)return({}?.[e])?.trim()??void 0;if(globalThis.Deno!==void 0)return(((t=globalThis.Deno.env)?.get)?.call(t,e))?.trim()};
321
+ var t;if(globalThis.process!==void 0)return{}[e]?.trim()??void 0;if(globalThis.Deno!==void 0)return(((t=globalThis.Deno.env)?.get)?.call(t,e))?.trim()};
322
322
  /**
323
323
  * @license
324
324
  * 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(t,n){let i=[],a=r(n.messages,t,e=>cu(t.id)?e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,64):e);for(let n of a)if(n.role===`user`)if(typeof n.content==`string`)i.push({role:`user`,parts:[{text:e(n.content)}]});else{let t=n.content.map(t=>t.type===`text`?{text:e(t.text)}:{inlineData:{mimeType:t.mimeType,data:t.data}});if(t.length===0)continue;i.push({role:`user`,parts:t})}else if(n.role===`assistant`){let r=[],a=n.provider===t.provider&&n.model===t.id;for(let i of n.content)if(i.type===`text`){if(!i.text||i.text.trim()===``)continue;let t=su(a,i.textSignature);r.push({text:e(i.text),...t&&{thoughtSignature:t}})}else if(i.type===`thinking`){if(!i.thinking||i.thinking.trim()===``)continue;if(a){let t=su(a,i.thinkingSignature);r.push({thought:!0,text:e(i.thinking),...t&&{thoughtSignature:t}})}else r.push({text:e(i.thinking)})}else if(i.type===`toolCall`){let e=su(a,i.thoughtSignature),n={functionCall:{name:i.name,args:i.arguments??{},...cu(t.id)?{id:i.id}:{}},...e&&{thoughtSignature:e}};r.push(n)}if(r.length===0)continue;i.push({role:`model`,parts:r})}else if(n.role===`toolResult`){let r=n.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
364
- `),a=t.input.includes(`image`)?n.content.filter(e=>e.type===`image`):[],o=r.length>0,s=a.length>0,c=uu(t.id),l=o?e(r):s?`(see attached image)`:``,u=a.map(e=>({inlineData:{mimeType:e.mimeType,data:e.data}})),d=cu(t.id),f={functionResponse:{name:n.toolName,response:n.isError?{error:l}:{output:l},...s&&c&&{parts:u},...d?{id:n.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,n){let i=[],a=r(n.messages,e,t=>cu(e.id)?t.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,64):t);for(let n of a)if(n.role===`user`)if(typeof n.content==`string`)i.push({role:`user`,parts:[{text:t(n.content)}]});else{let e=n.content.map(e=>e.type===`text`?{text:t(e.text)}:{inlineData:{mimeType:e.mimeType,data:e.data}});if(e.length===0)continue;i.push({role:`user`,parts:e})}else if(n.role===`assistant`){let r=[],a=n.provider===e.provider&&n.model===e.id;for(let i of n.content)if(i.type===`text`){if(!i.text||i.text.trim()===``)continue;let e=su(a,i.textSignature);r.push({text:t(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:t(i.thinking),...e&&{thoughtSignature:e}})}else r.push({text:t(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(n.role===`toolResult`){let r=n.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
364
+ `),a=e.input.includes(`image`)?n.content.filter(e=>e.type===`image`):[],o=r.length>0,s=a.length>0,c=uu(e.id),l=o?t(r):s?`(see attached image)`:``,u=a.map(e=>({inlineData:{mimeType:e.mimeType,data:e.data}})),d=cu(e.id),f={functionResponse:{name:n.toolName,response:n.isError?{error:l}:{output:l},...s&&c&&{parts:u},...d?{id:n.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};