sliccy 6.170.0 → 6.172.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 (145) hide show
  1. package/dist/node-server/_shared/tray-sync-protocol.d.ts +14 -1
  2. package/dist/node-server/_shared/tray-sync-protocol.d.ts.map +1 -1
  3. package/dist/node-server/_shared/tray-sync-protocol.js +7 -1
  4. package/dist/node-server/_shared/tray-sync-protocol.js.map +1 -1
  5. package/dist/ui/.vite/manifest.json +181 -181
  6. package/dist/ui/assets/{account-store-BQVd8WtK.js → account-store-DvoMCvcF.js} +1 -1
  7. package/dist/ui/assets/{account-store-eWpoS7ge.js → account-store-RRgNEopC.js} +1 -1
  8. package/dist/ui/assets/{adobe-303dc_dX.js → adobe-DgAzjgj3.js} +1 -1
  9. package/dist/ui/assets/{adobe-DtP0rtMp.js → adobe-DwevNxoI.js} +1 -1
  10. package/dist/ui/assets/{agent-panels-IgQ0XvH5.js → agent-panels-Bkg7zeMW.js} +1 -1
  11. package/dist/ui/assets/{almost-bash-shell-headless-Su6bGrxF.js → almost-bash-shell-headless-DDAtSNGb.js} +30 -30
  12. package/dist/ui/assets/{apply-layout-DE5oARTo.js → apply-layout-rZ3s3iqM.js} +1 -1
  13. package/dist/ui/assets/{apps-D_fZ81tc.js → apps-FYGieQBR.js} +1 -1
  14. package/dist/ui/assets/{azure-openai-BKoYU2LQ.js → azure-openai-CDqprTIy.js} +1 -1
  15. package/dist/ui/assets/{azure-openai-Ch6CeSIe.js → azure-openai-DybLhOkj.js} +1 -1
  16. package/dist/ui/assets/{backend-hostfs-DznOy90p.js → backend-hostfs-CppyN-79.js} +1 -1
  17. package/dist/ui/assets/{cdp-Lm6f4Vvm.js → cdp-neMtpAV0.js} +1 -1
  18. package/dist/ui/assets/{cerebras-QgPBWBbD.js → cerebras-B3nx9B0s.js} +1 -1
  19. package/dist/ui/assets/{cerebras-BtF67BXk.js → cerebras-DlXbtKp_.js} +1 -1
  20. package/dist/ui/assets/{composer-speech-DX2asXPn.js → composer-speech-BeXbaIyX.js} +1 -1
  21. package/dist/ui/assets/{connect-surface-Bse_gKS9.js → connect-surface-D0KzBbDN.js} +1 -1
  22. package/dist/ui/assets/{directed-approval-BSmPwLpJ.js → directed-approval-_5l6SiVo.js} +1 -1
  23. package/dist/ui/assets/{ensure-speech-assets-CWYl8lMH.js → ensure-speech-assets-Dwq3A50J.js} +1 -1
  24. package/dist/ui/assets/{frozen-archive-writer-CAcmWhs-.js → frozen-archive-writer-BOk7nfks.js} +1 -1
  25. package/dist/ui/assets/{fs-B0MnidmK.js → fs-4zzM2HBN.js} +1 -1
  26. package/dist/ui/assets/{fs-DYIO785V.js → fs-BdG5L3Rw.js} +2 -2
  27. package/dist/ui/assets/{gelatiere-store-eqQUEHPW.js → gelatiere-store-CSPXJHFB.js} +1 -1
  28. package/dist/ui/assets/{gelatiere-unit-tpeE7sbE.js → gelatiere-unit-hQhvI7mn.js} +1 -1
  29. package/dist/ui/assets/{github-DjPHhYVa.js → github-Cp74RJGM.js} +2 -2
  30. package/dist/ui/assets/{github-pXCF1Beq.js → github-U4Tx0VsZ.js} +1 -1
  31. package/dist/ui/assets/{github-auth-B5zuu6gv.js → github-auth-DnnLI0fH.js} +1 -1
  32. package/dist/ui/assets/{github-copilot-D3zVVwbU.js → github-copilot-B08i2niY.js} +1 -1
  33. package/dist/ui/assets/{github-copilot-B4FctS2Z.js → github-copilot-C1peqkKq.js} +1 -1
  34. package/dist/ui/assets/{github-install-0KpVdkCf.js → github-install-NBjzwRHP.js} +1 -1
  35. package/dist/ui/assets/{github-zip-Qu7gV06H.js → github-zip-BoIiPvSq.js} +1 -1
  36. package/dist/ui/assets/{hear-BH-T2zSV.js → hear-D6HddhYf.js} +1 -1
  37. package/dist/ui/assets/{help-46RjezIa.js → help-COlETwzo.js} +1 -1
  38. package/dist/ui/assets/{installer-D-SYcsmH.js → installer-CKsTLy6p.js} +1 -1
  39. package/dist/ui/assets/{js-realm-worker-MEIkOUu8.js → js-realm-worker-CJFerOqp.js} +1 -1
  40. package/dist/ui/assets/{jsh-executor-CEMIk5am.js → jsh-executor-C4rWCwcg.js} +2 -2
  41. package/dist/ui/assets/{kernel-worker-Dm6mwnDo.js → kernel-worker-DMe_qxTd.js} +9 -9
  42. package/dist/ui/assets/{lick-ws-bridge-C4Yw-Zec.js → lick-ws-bridge-BbdbQLZJ.js} +1 -1
  43. package/dist/ui/assets/{lick-ws-bridge-C5KIRrQD.js → lick-ws-bridge-Hxqy_0EV.js} +1 -1
  44. package/dist/ui/assets/{live-session-snapshot-Bi8TQsPN.js → live-session-snapshot-CaP91Ye7.js} +1 -1
  45. package/dist/ui/assets/{local-llm-Buojq7S1.js → local-llm-B6UIrQZh.js} +1 -1
  46. package/dist/ui/assets/{local-llm-CuF8McCp.js → local-llm-Yc9pshyg.js} +1 -1
  47. package/dist/ui/assets/{main-_Ia86GSX.js → main-BVX1mZpk.js} +3 -3
  48. package/dist/ui/assets/{main-cherry-yuUaE5rR.js → main-cherry-B8Wd5n2n.js} +1 -1
  49. package/dist/ui/assets/{memory-curation-seam-BCEf9lI-.js → memory-curation-seam-BdcZYGFD.js} +1 -1
  50. package/dist/ui/assets/{memory-health-Oomlg0gs.js → memory-health-BXfHdTgg.js} +1 -1
  51. package/dist/ui/assets/memory-v2-flag-Ba155kcb.js +1 -0
  52. package/dist/ui/assets/{memory-write-execute-YxX98vum.js → memory-write-execute-BWaztdEN.js} +1 -1
  53. package/dist/ui/assets/{mount-BTWKfoXt.js → mount-CW5-VfBS.js} +1 -1
  54. package/dist/ui/assets/{mount-BuchAyLD.js → mount-D14nLzs6.js} +3 -3
  55. package/dist/ui/assets/{new-session-BKeOZcde.js → new-session-Dmq7cbxw.js} +2 -2
  56. package/dist/ui/assets/{oauth-bootstrap-CaNI2KKs.js → oauth-bootstrap-Chv_Azdr.js} +2 -2
  57. package/dist/ui/assets/{onboarding-orchestrator-DEJ1VrdK.js → onboarding-orchestrator-DnALyY9E.js} +1 -1
  58. package/dist/ui/assets/{openai-codex-BZR_FNTq.js → openai-codex-C1xAqbIQ.js} +1 -1
  59. package/dist/ui/assets/{openai-codex-CtsVagC3.js → openai-codex-Dm9saTPq.js} +1 -1
  60. package/dist/ui/assets/{openrouter-DUafsaHu.js → openrouter-55_TMBLF.js} +1 -1
  61. package/dist/ui/assets/{openrouter-Pw7y1xKQ.js → openrouter-BMOCz-R9.js} +1 -1
  62. package/dist/ui/assets/{openrouter-free-CX0FTHel.js → openrouter-free-DD-84SfN.js} +1 -1
  63. package/dist/ui/assets/{openrouter-free-F-ZNk2ke.js → openrouter-free-oqbRZtVk.js} +1 -1
  64. package/dist/ui/assets/{openrouter-oauth-BLfpXGTM.js → openrouter-oauth-C32dD9gG.js} +1 -1
  65. package/dist/ui/assets/{openrouter-oauth-BmvJ0JIJ.js → openrouter-oauth-DzsPUITz.js} +1 -1
  66. package/dist/ui/assets/{opfs-mount-Bwb1uRF3.js → opfs-mount-EkrjXCwT.js} +1 -1
  67. package/dist/ui/assets/{panel-rpc-handlers-BQPp-9fm.js → panel-rpc-handlers-ZR4xw2Ze.js} +2 -2
  68. package/dist/ui/assets/{panelize-shell-C-xCXtl3.js → panelize-shell-CbidT6D4.js} +1 -1
  69. package/dist/ui/assets/{pi-edit-execution-_-h5_VGV.js → pi-edit-execution-Cz1z_2ov.js} +1 -1
  70. package/dist/ui/assets/{provider-BTfB-zsE.js → provider-CT-Ie48n.js} +1 -1
  71. package/dist/ui/assets/{provider-B7tYQLD1.js → provider-mPuUygbJ.js} +2 -2
  72. package/dist/ui/assets/{provider-settings-a5DRRVH8.js → provider-settings-KpdvzJ3b.js} +1 -1
  73. package/dist/ui/assets/provider-store-access-Cc86O0i4.js +1 -0
  74. package/dist/ui/assets/provider-store-access-DDO6_BUF.js +1 -0
  75. package/dist/ui/assets/{providers-BlIpxl0a.js → providers-DVr_c9O9.js} +1 -1
  76. package/dist/ui/assets/{providers-Dwz86DQ6.js → providers-DoUunB7B.js} +2 -2
  77. package/dist/ui/assets/{quick-llm-hMKCR0oh.js → quick-llm-DbJijgsE.js} +1 -1
  78. package/dist/ui/assets/{realm-inprocess-D1O4IIWr.js → realm-inprocess-Ce-mzM7p.js} +1 -1
  79. package/dist/ui/assets/{recovery-screen-C2B5XPxF.js → recovery-screen-DUZXywP5.js} +1 -1
  80. package/dist/ui/assets/{restore-DVgVZVP2.js → restore-Du0YdLWb.js} +1 -1
  81. package/dist/ui/assets/{run-DRhmRp3U.js → run-Be-qyvWQ.js} +1 -1
  82. package/dist/ui/assets/{run-Bk8-gwu9.js → run-D7jdxS5D.js} +2 -2
  83. package/dist/ui/assets/{run-DSjAOOTr.js → run-DYOBrcSO.js} +2 -2
  84. package/dist/ui/assets/{run-CkHKA2Fe.js → run-DnHhti9a.js} +2 -2
  85. package/dist/ui/assets/{run-OZJyg0Kx.js → run-jVXgpWc3.js} +2 -2
  86. package/dist/ui/assets/{run-BV6f2LeT.js → run-rQsJeKHV.js} +1 -1
  87. package/dist/ui/assets/{session-command-memory-CJgP4TK9.js → session-command-memory-pGtQnPDN.js} +2 -2
  88. package/dist/ui/assets/{session-jsonl-C_ho47y2.js → session-jsonl-CcodoOzU.js} +1 -1
  89. package/dist/ui/assets/{session-jsonl-nA6MEu9A.js → session-jsonl-CuvZfT36.js} +1 -1
  90. package/dist/ui/assets/{session-search-index-DJFAcaW4.js → session-search-index-DQ1qw76c.js} +1 -1
  91. package/dist/ui/assets/{setup-feature-flags-remote-BVHBVVen.js → setup-feature-flags-remote-D4uGU2HE.js} +1 -1
  92. package/dist/ui/assets/{signed-fetch-kxzD07pu.js → signed-fetch-Ces31iul.js} +1 -1
  93. package/dist/ui/assets/{silent-renew-backoff-BwP9EQf5.js → silent-renew-backoff-sdVenxRz.js} +1 -1
  94. package/dist/ui/assets/slicc-version-D1qBG68c.js +1 -0
  95. package/dist/ui/assets/{snapshot-DwV3c2Lf.js → snapshot-CAJWtJva.js} +1 -1
  96. package/dist/ui/assets/{snapshot-features-DaSZ6DBS.js → snapshot-features-BzXoOiR3.js} +1 -1
  97. package/dist/ui/assets/{soundscape-BD9QANYn.js → soundscape-CvZ58WyQ.js} +1 -1
  98. package/dist/ui/assets/{speak-BJiDoCxH.js → speak-xp9cfy-j.js} +1 -1
  99. package/dist/ui/assets/{sprinkle-manager-DQGPRZoU.js → sprinkle-manager-DpF7vDbg.js} +1 -1
  100. package/dist/ui/assets/{sprinkle-renderer-CIyWKbb5.js → sprinkle-renderer-WR6dTH6O.js} +1 -1
  101. package/dist/ui/assets/{state-DgW6Xuvl.js → state-Bgewhoi3.js} +1 -1
  102. package/dist/ui/assets/{store-pqs0o2oH.js → store-CYMVkI8-.js} +1 -1
  103. package/dist/ui/assets/{store-Cx6iK88g.js → store-D__su4wO.js} +1 -1
  104. package/dist/ui/assets/{sudo-CEpFSBe3.js → sudo-CUhkaaeB.js} +1 -1
  105. package/dist/ui/assets/{supervisor-Dg6xqf-g.js → supervisor-XV4nN8IA.js} +1 -1
  106. package/dist/ui/assets/{sync-dialog-BDy47YqS.js → sync-dialog-E4OLYCE6.js} +1 -1
  107. package/dist/ui/assets/{transformers-env-DHrhErtF.js → transformers-env-CDwN1z-E.js} +1 -1
  108. package/dist/ui/assets/{tray-leader-DVXdMAms.js → tray-leader-CY-wUoAL.js} +1 -1
  109. package/dist/ui/assets/{tray-leave-runtime-Bd7LMUbt.js → tray-leave-runtime-5idxwKO2.js} +1 -1
  110. package/dist/ui/assets/{tray-sidecar-B0YJsA3F.js → tray-sidecar-BZN_xoND.js} +1 -1
  111. package/dist/ui/assets/{upgrade-detection-BWjWnYad.js → upgrade-detection-DL2IBJlV.js} +1 -1
  112. package/dist/ui/assets/{upskill-lick-skip-DeoV0EfM.js → upskill-lick-skip-BAz_0B1U.js} +1 -1
  113. package/dist/ui/assets/{voice-reply-B5ku8_2Y.js → voice-reply-BJbhm7Gk.js} +1 -1
  114. package/dist/ui/assets/{wc-attach-CRJuKGrA.js → wc-attach-Dyy2hYAz.js} +2 -2
  115. package/dist/ui/assets/{wc-browser-DyWzHGD7.js → wc-browser-2i1arFo1.js} +1 -1
  116. package/dist/ui/assets/{wc-computers-BMGTTerH.js → wc-computers-BDV35ezI.js} +1 -1
  117. package/dist/ui/assets/{wc-detached-yMTzpq2L.js → wc-detached-CSgKthyX.js} +1 -1
  118. package/dist/ui/assets/{wc-extension-BfGkXTwm.js → wc-extension-CvUDaUaH.js} +2 -2
  119. package/dist/ui/assets/{wc-follower-CHSZurCY.js → wc-follower-DRJGau4h.js} +3 -3
  120. package/dist/ui/assets/{wc-follower-oauth-cALhzTKa.js → wc-follower-oauth-jbtzOOmz.js} +1 -1
  121. package/dist/ui/assets/{wc-gelatiere-BWHfZsl2.js → wc-gelatiere-CTKg7aXr.js} +1 -1
  122. package/dist/ui/assets/{wc-live-B6sg6JLI.js → wc-live-BSf6ORde.js} +5 -5
  123. package/dist/ui/assets/{wc-nav-zIZK57lv.js → wc-nav-DUUDoKsS.js} +2 -2
  124. package/dist/ui/assets/{wc-onboarding-BrHZvhCx.js → wc-onboarding-BL_otniK.js} +2 -2
  125. package/dist/ui/assets/{wc-placeholder-wt_PIshN.js → wc-placeholder-B7cIJTTh.js} +3 -3
  126. package/dist/ui/assets/{wc-secret-request-7qv-ET6q.js → wc-secret-request-C32eyYGY.js} +1 -1
  127. package/dist/ui/assets/{wc-settings-CfTJLIHm.js → wc-settings-CE-Qhu3x.js} +3 -3
  128. package/dist/ui/assets/{wc-shell-CJ3-kZYP.js → wc-shell-atcEm5A2.js} +3 -3
  129. package/dist/ui/assets/{wc-shortcut-config-DLj-hcFH.js → wc-shortcut-config-Dq_n6Hoq.js} +1 -1
  130. package/dist/ui/assets/{wc-sprinkles-dRhuduZn.js → wc-sprinkles-BDRVEUGU.js} +2 -2
  131. package/dist/ui/assets/{wc-transcript-export-DZFKdzCY.js → wc-transcript-export-DkbMymth.js} +2 -2
  132. package/dist/ui/assets/wc-tray-BDKGLhiU.js +5 -0
  133. package/dist/ui/assets/welcome-detection-DhX2M4ES.js +1 -0
  134. package/dist/ui/assets/{whisper-session-CTBEDLih.js → whisper-session-CD67z-5E.js} +2 -2
  135. package/dist/ui/assets/{xai-grok-Bb-Lx3cO.js → xai-grok-BbULXfEg.js} +1 -1
  136. package/dist/ui/assets/{xai-grok-Daj3P27g.js → xai-grok-DI69UMgT.js} +1 -1
  137. package/dist/ui/index.html +3 -3
  138. package/dist/ui/packages/webapp/index.html +3 -3
  139. package/package.json +1 -1
  140. package/dist/ui/assets/memory-v2-flag-BbCtQQJp.js +0 -1
  141. package/dist/ui/assets/provider-store-access-CnfUMs6n.js +0 -1
  142. package/dist/ui/assets/provider-store-access-DzCgz2hk.js +0 -1
  143. package/dist/ui/assets/slicc-version-jR0TWRq2.js +0 -1
  144. package/dist/ui/assets/wc-tray-F1gHUTxb.js +0 -5
  145. package/dist/ui/assets/welcome-detection-kt4tNVrn.js +0 -1
@@ -1,4 +1,4 @@
1
- import{t as e}from"./logger-LESFN7Hj.js";import{n as t,r as n}from"./panel-rpc-BPwAqRch.js";import{t as r}from"./content-type-_QKWY0B2.js";import"./proxied-fetch-CPL8wJM2.js";import{t as i}from"./runtime-env-DadgceZk.js";import{t as a}from"./fetch-body-CuwTaJC_.js";import{a as o}from"./path-utils-DNJG-zQf.js";import{r as s,t as c}from"./multipart-form-data-DopbgwRR.js";import"./tray-storage-keys-DbThbnIh.js";import"./tray-runtime-config-dyxCfUex.js";import{t as l}from"./process-manager-BkhAohXT.js";import{C as u,N as d,b as f,d as p,g as m,p as h,t as g,x as ee,y as te}from"./shared-C_68vn79.js";import{A as ne,D as re,O as ie,a as ae,d as oe,f as se,h as ce,j as le,o as ue,p as de,s as fe,u as pe,x as me}from"./sync-sab-wire-CC30v4TL.js";import{n as _}from"./esbuild-wasm-DS_YG2EY.js";import{t as he}from"./wasm-compiler-Ct7QZURL.js";import{a as v,i as ge,n as _e,o as ve,s as ye,t as be}from"./usb-device-registry-DFzxaOky.js";import{i as xe}from"./just-bash-compat-B-SPHuh_.js";const Se=(()=>{try{return console}catch{return}})(),Ce={directory:{width:320,height:120},"usb-device":{width:320,height:120},"serial-port":{width:320,height:120},"hid-device":{width:320,height:120}};function we(){return globalThis.chrome??null}function y(){let e=we();return i()&&typeof e?.windows?.create==`function`}async function b(e,t=[],n=`picker-${Date.now()}-${Math.random().toString(36).slice(2)}`,r={}){let i=we();if(!i?.runtime?.onMessage||!i.windows?.create)throw Error(`picker popup: chrome.windows.create not available`);let a=i.runtime.onMessage,o=i.windows.onRemoved,s=i.runtime.getURL?.bind(i.runtime),c=Ce[e],l=encodeURIComponent(JSON.stringify(t??[])),u=`kind=${encodeURIComponent(e)}&requestId=${encodeURIComponent(n)}&filters=${l}`,d=s?`${s(`picker-popup.html`)}?${u}`:`picker-popup.html?${u}`;return new Promise(t=>{let s=!1,l,u,f=()=>{try{a.removeListener(m)}catch{}if(o&&h)try{o.removeListener(h)}catch{}l!==void 0&&clearTimeout(l)},p=e=>{s||(s=!0,f(),t(e))},m=t=>{if(s)return;let r=t;if(r?.source!==`picker-popup`||r.kind!==e||r.requestId!==n)return;let{source:i,kind:a,requestId:o,...c}=r;p(c)};a.addListener(m);let h=o?e=>{u!==void 0&&e===u&&p({cancelled:!0})}:void 0;o&&h&&o.addListener(h),r.timeoutMs&&r.timeoutMs>0&&(l=setTimeout(()=>p({cancelled:!0}),r.timeoutMs)),i.windows.create({url:d,type:`popup`,width:c.width,height:c.height,focused:!0}).then(e=>{if(!e?.id){p({error:`failed to open picker window`});return}u=e.id}).catch(e=>{Se?.warn?.(`picker popup window.create failed`,e),p({error:e instanceof Error?e.message:String(e)})})})}let x,S;function Te(){return async({kind:e,ctx:t})=>{if(e===`py`){if(typeof Worker<`u`)return De();if(!S){let{createInProcessPyRealmFactory:e}=await import(`./realm-inprocess-D1O4IIWr.js`);S=e()}return S({kind:e,ctx:t})}if(typeof Worker<`u`)return Ee();if(!x){let{createInProcessJsRealmFactory:e}=await import(`./realm-inprocess-D1O4IIWr.js`);x=e()}return x({kind:e,ctx:t})}}function Ee(){if(typeof Worker>`u`)throw Error(`realm-factory: Worker is not available in this runtime`);return C(new Worker(new URL(`/assets/js-realm-worker-MEIkOUu8.js`,``+import.meta.url),{type:`module`}))}function De(){if(typeof Worker>`u`)throw Error(`realm-factory: Worker is not available in this runtime`);return C(new Worker(new URL(`/assets/py-realm-worker-DXmzJqJi.js`,``+import.meta.url),{type:`module`}))}function C(e){let t={postMessage:(t,n)=>n?e.postMessage(t,n):e.postMessage(t),addEventListener:(t,n)=>e.addEventListener(t,n),removeEventListener:(t,n)=>e.removeEventListener(t,n)},n=!1;return{controlPort:t,isolatedThread:!0,addEventListener:(t,n,r)=>e.addEventListener(t,n,r),removeEventListener:(t,n)=>e.removeEventListener(t,n),terminate(){if(!n){n=!0;try{e.terminate()}catch{}}}}}function Oe(){if(h())return decodeURIComponent(m(`pyodide/pyodide.mjs`,`../../../../../node_modules/pyodide/`).pathname)}function w(e){let t=e.startsWith(`/`)?e:`/${e}`;return new URL(`file://${t}`).href}function T(e){return e instanceof Error?e.message:String(e)}function ke(e){return`${(e&&e.length>0?e:`[eval]`).replace(/\.[^./]+$/,``)}.js`}async function Ae(e,t,n,r){return(await(await e()).transform(t,{loader:`js`,format:`cjs`,sourcefile:ke(n),supported:{"dynamic-import":!1},define:{"import.meta.url":JSON.stringify(r)}})).code}async function je(e,t,n,r){return(await(await e()).transform(t,{loader:`js`,format:`cjs`,sourcefile:ke(n),supported:{"dynamic-import":!1},...r?{define:{"import.meta.url":JSON.stringify(r)}}:{}})).code}const Me=/\bimport\s*\.\s*meta\s*\.\s*url\b/g,Ne=/\bimport\s*\.\s*meta\b/g;function Pe(e,t){let n=JSON.stringify(t);return e.replace(Me,n).replace(Ne,`({ url: ${n} })`)}async function Fe(e,t,n,r){let i=await e();return i.transpileModule(Pe(t,r),{compilerOptions:{module:i.ModuleKind.CommonJS,target:i.ScriptTarget.ES2020,esModuleInterop:!0},fileName:`${n.replace(/\.[^./]+$/,``)}.ts`}).outputText}function Ie(e={}){let{ipk:t}=e,n=e.loadEsbuild??(()=>_(t?{ipk:t}:{})),r=e.loadTypeScript??(()=>p(t));return async({source:e,path:t,kind:i})=>{if(i!==`esm`||!f(e))return e;let a=w(t),o;try{return await Ae(n,e,t,a)}catch(e){o=e}try{return await Fe(r,e,t,a)}catch(e){throw Error(`Failed to transpile ESM module '${t}': ${T(o)}; typescript fallback: ${T(e)}`)}}}function E(e={}){let{ipk:t}=e,n=e.loadEsbuild??(()=>_(t?{ipk:t}:{})),r=e.loadTypeScript??(()=>p(t));return async({source:e,filename:t})=>{if(!f(e)&&!te(e))return e;let i=typeof t==`string`&&t.startsWith(`/`),a=i?w(t):void 0,o=i?t:`[eval].js`,s;try{return await je(n,e,t,a)}catch(e){s=e}try{return await Fe(r,e,o,a??``)}catch(e){throw Error(`Failed to transpile entry source: ${T(s)}; typescript fallback: ${T(e)}`)}}}function D(e,t){if(!e.startsWith(`#!`))return e;let n=e.indexOf(`
1
+ import{t as e}from"./logger-LESFN7Hj.js";import{n as t,r as n}from"./panel-rpc-BPwAqRch.js";import{t as r}from"./content-type-_QKWY0B2.js";import"./proxied-fetch-CPL8wJM2.js";import{t as i}from"./runtime-env-DadgceZk.js";import{t as a}from"./fetch-body-CuwTaJC_.js";import{a as o}from"./path-utils-DNJG-zQf.js";import{r as s,t as c}from"./multipart-form-data-DopbgwRR.js";import"./tray-storage-keys-DbThbnIh.js";import"./tray-runtime-config-dyxCfUex.js";import{t as l}from"./process-manager-BkhAohXT.js";import{C as u,N as d,b as f,d as p,g as m,p as h,t as g,x as ee,y as te}from"./shared-C_68vn79.js";import{A as ne,D as re,O as ie,a as ae,d as oe,f as se,h as ce,j as le,o as ue,p as de,s as fe,u as pe,x as me}from"./sync-sab-wire-CC30v4TL.js";import{n as _}from"./esbuild-wasm-DS_YG2EY.js";import{t as he}from"./wasm-compiler-Ct7QZURL.js";import{a as v,i as ge,n as _e,o as ve,s as ye,t as be}from"./usb-device-registry-DFzxaOky.js";import{i as xe}from"./just-bash-compat-B-SPHuh_.js";const Se=(()=>{try{return console}catch{return}})(),Ce={directory:{width:320,height:120},"usb-device":{width:320,height:120},"serial-port":{width:320,height:120},"hid-device":{width:320,height:120}};function we(){return globalThis.chrome??null}function y(){let e=we();return i()&&typeof e?.windows?.create==`function`}async function b(e,t=[],n=`picker-${Date.now()}-${Math.random().toString(36).slice(2)}`,r={}){let i=we();if(!i?.runtime?.onMessage||!i.windows?.create)throw Error(`picker popup: chrome.windows.create not available`);let a=i.runtime.onMessage,o=i.windows.onRemoved,s=i.runtime.getURL?.bind(i.runtime),c=Ce[e],l=encodeURIComponent(JSON.stringify(t??[])),u=`kind=${encodeURIComponent(e)}&requestId=${encodeURIComponent(n)}&filters=${l}`,d=s?`${s(`picker-popup.html`)}?${u}`:`picker-popup.html?${u}`;return new Promise(t=>{let s=!1,l,u,f=()=>{try{a.removeListener(m)}catch{}if(o&&h)try{o.removeListener(h)}catch{}l!==void 0&&clearTimeout(l)},p=e=>{s||(s=!0,f(),t(e))},m=t=>{if(s)return;let r=t;if(r?.source!==`picker-popup`||r.kind!==e||r.requestId!==n)return;let{source:i,kind:a,requestId:o,...c}=r;p(c)};a.addListener(m);let h=o?e=>{u!==void 0&&e===u&&p({cancelled:!0})}:void 0;o&&h&&o.addListener(h),r.timeoutMs&&r.timeoutMs>0&&(l=setTimeout(()=>p({cancelled:!0}),r.timeoutMs)),i.windows.create({url:d,type:`popup`,width:c.width,height:c.height,focused:!0}).then(e=>{if(!e?.id){p({error:`failed to open picker window`});return}u=e.id}).catch(e=>{Se?.warn?.(`picker popup window.create failed`,e),p({error:e instanceof Error?e.message:String(e)})})})}let x,S;function Te(){return async({kind:e,ctx:t})=>{if(e===`py`){if(typeof Worker<`u`)return De();if(!S){let{createInProcessPyRealmFactory:e}=await import(`./realm-inprocess-Ce-mzM7p.js`);S=e()}return S({kind:e,ctx:t})}if(typeof Worker<`u`)return Ee();if(!x){let{createInProcessJsRealmFactory:e}=await import(`./realm-inprocess-Ce-mzM7p.js`);x=e()}return x({kind:e,ctx:t})}}function Ee(){if(typeof Worker>`u`)throw Error(`realm-factory: Worker is not available in this runtime`);return C(new Worker(new URL(`/assets/js-realm-worker-CJFerOqp.js`,``+import.meta.url),{type:`module`}))}function De(){if(typeof Worker>`u`)throw Error(`realm-factory: Worker is not available in this runtime`);return C(new Worker(new URL(`/assets/py-realm-worker-DXmzJqJi.js`,``+import.meta.url),{type:`module`}))}function C(e){let t={postMessage:(t,n)=>n?e.postMessage(t,n):e.postMessage(t),addEventListener:(t,n)=>e.addEventListener(t,n),removeEventListener:(t,n)=>e.removeEventListener(t,n)},n=!1;return{controlPort:t,isolatedThread:!0,addEventListener:(t,n,r)=>e.addEventListener(t,n,r),removeEventListener:(t,n)=>e.removeEventListener(t,n),terminate(){if(!n){n=!0;try{e.terminate()}catch{}}}}}function Oe(){if(h())return decodeURIComponent(m(`pyodide/pyodide.mjs`,`../../../../../node_modules/pyodide/`).pathname)}function w(e){let t=e.startsWith(`/`)?e:`/${e}`;return new URL(`file://${t}`).href}function T(e){return e instanceof Error?e.message:String(e)}function ke(e){return`${(e&&e.length>0?e:`[eval]`).replace(/\.[^./]+$/,``)}.js`}async function Ae(e,t,n,r){return(await(await e()).transform(t,{loader:`js`,format:`cjs`,sourcefile:ke(n),supported:{"dynamic-import":!1},define:{"import.meta.url":JSON.stringify(r)}})).code}async function je(e,t,n,r){return(await(await e()).transform(t,{loader:`js`,format:`cjs`,sourcefile:ke(n),supported:{"dynamic-import":!1},...r?{define:{"import.meta.url":JSON.stringify(r)}}:{}})).code}const Me=/\bimport\s*\.\s*meta\s*\.\s*url\b/g,Ne=/\bimport\s*\.\s*meta\b/g;function Pe(e,t){let n=JSON.stringify(t);return e.replace(Me,n).replace(Ne,`({ url: ${n} })`)}async function Fe(e,t,n,r){let i=await e();return i.transpileModule(Pe(t,r),{compilerOptions:{module:i.ModuleKind.CommonJS,target:i.ScriptTarget.ES2020,esModuleInterop:!0},fileName:`${n.replace(/\.[^./]+$/,``)}.ts`}).outputText}function Ie(e={}){let{ipk:t}=e,n=e.loadEsbuild??(()=>_(t?{ipk:t}:{})),r=e.loadTypeScript??(()=>p(t));return async({source:e,path:t,kind:i})=>{if(i!==`esm`||!f(e))return e;let a=w(t),o;try{return await Ae(n,e,t,a)}catch(e){o=e}try{return await Fe(r,e,t,a)}catch(e){throw Error(`Failed to transpile ESM module '${t}': ${T(o)}; typescript fallback: ${T(e)}`)}}}function E(e={}){let{ipk:t}=e,n=e.loadEsbuild??(()=>_(t?{ipk:t}:{})),r=e.loadTypeScript??(()=>p(t));return async({source:e,filename:t})=>{if(!f(e)&&!te(e))return e;let i=typeof t==`string`&&t.startsWith(`/`),a=i?w(t):void 0,o=i?t:`[eval].js`,s;try{return await je(n,e,t,a)}catch(e){s=e}try{return await Fe(r,e,o,a??``)}catch(e){throw Error(`Failed to transpile entry source: ${T(s)}; typescript fallback: ${T(e)}`)}}}function D(e,t){if(!e.startsWith(`#!`))return e;let n=e.indexOf(`
2
2
  `);if(n===-1)return``;let r=e.slice(n+1);return t?.keepLine?`\n${r}`:r}function Le(e){return o(e).dir}const O=[`node`,`require`,`default`],k=[`node`,`import`,`default`],Re=/\brequire\s*\(\s*(['"`])([^'"`\s]+)\1\s*\)/g,ze=/\bimport\s*\(\s*(['"`])([^'"`\s]+)\1\s*\)/g,Be=/(?:^|[;\n}])\s*import\b[\s\S]*?\bfrom\s*(['"])([^'"]+)\1/g,Ve=/(?:^|[;\n}])\s*export\b[\s\S]*?\bfrom\s*(['"])([^'"]+)\1/g,He=/(?:^|[;\n}])\s*import\s*(['"])([^'"]+)\1/g;function Ue(e,t,n){let r=t[0].indexOf(n);return r<0?!1:e.startsWith(n,t.index+r)}function We(e){let t=ee(e),n=new Map,r=(r,i,a)=>{r.lastIndex=0;let o;for(;(o=r.exec(e))!==null;){if(!Ue(t,o,a))continue;let e=o[2];n.get(e)!==`import`&&n.set(e,i)}};return r(Re,`require`,`require`),r(ze,`import`,`import`),r(Be,`import`,`import`),r(Ve,`import`,`export`),r(He,`import`,`import`),[...n].map(([e,t])=>({specifier:e,kind:t}))}async function Ge(e,t,n,r){if(n===`json`)return`module.exports = JSON.parse(${JSON.stringify(e)});\n`;let i=D(e);if(n===`esm`){if(!r)throw Error(`Cannot load ESM module '${t}': no transpile hook configured (run: ${g} esbuild-wasm)`);return await r({source:i,path:t,kind:n})}return i}async function Ke(e){let{entrySpecifiers:t,fromDir:n,reader:r,conditions:i,transpile:a}=e,o=e.requireConditions??O,s=e.importConditions??k,c=i??o,l=new Map,d=[],f={},p={};async function m(e,t){if(l.has(e))return;let n=await r.readFile(e),i=await Ge(n,e,t,a);l.set(e,{path:e,source:n,cjsSource:i,kind:t});let c=Le(e),h={},g={};for(let{specifier:e,kind:t}of We(n)){let n;try{n=await u(e,c,r,{conditions:t===`import`?s:o})}catch(t){g[e]=t instanceof Error?t.message:String(t);continue}n.type===`file`&&(h[e]=n.path,await m(n.path,n.moduleKind))}f[e]=h,Object.keys(g).length>0&&(p[e]=g),d.push(e)}let h={};for(let e of t){let t=await u(e,n,r,{conditions:c});t.type===`file`&&(h[e]=t.path,await m(t.path,t.moduleKind))}return{files:d.map(e=>{let t=l.get(e);if(!t)throw Error(`module-loader: missing built module for '${e}'`);return t}),entryMap:h,edges:f,edgeErrors:p}}function qe(e){return!(e.startsWith(`sliccy:`)||e.startsWith(`node:`)||d.has(e)||le.has(e))}function Je(e,t){for(let[n,r]of Object.entries(t))e[n]={...e[n]??{},...r}}async function Ye(e){let{entryCode:t,fromDir:n,entryFilename:r,reader:i,transpile:a,transpileEntry:o}=e,s=new Map,c=[],l={},u={},d={},p={};for(let{specifier:e,kind:r}of We(t))if(qe(e))try{let t=await Ke({entrySpecifiers:[e],fromDir:n,reader:i,transpile:a,conditions:r===`import`?k:O,requireConditions:O,importConditions:k});for(let e of t.files)s.has(e.path)||(s.set(e.path,e),c.push(e.path));Object.assign(l,t.entryMap),Je(u,t.edges),Je(d,t.edgeErrors)}catch(t){p[e]=t instanceof Error?t.message:String(t)}let m;o&&(f(t)||te(t))&&(m=await o({source:t,filename:r??`[eval]`,fromDir:n}));let h={files:c.map(e=>{let t=s.get(e);if(!t)throw Error(`module-loader: missing built module for '${e}'`);return{path:t.path,cjsSource:t.cjsSource,kind:t.kind}}),entryMap:l,edges:u,edgeErrors:d,errors:p};return m!==void 0&&(h.entrySource=m),h}function A(){return globalThis.navigator?.hid??null}function Xe(e){let t=e.collections?.[0];return t?`${t.usagePage??``}:${t.usage??``}`:``}function Ze(e,t){return e===t||e.vendorId===t.vendorId&&e.productId===t.productId&&(e.productName??``)===(t.productName??``)&&Xe(e)===Xe(t)&&!!e.productName}var Qe=class{byHandle=new Map;counter=0;register(e){for(let[t,n]of this.byHandle)if(Ze(n,e))return this.byHandle.set(t,e),t;let t=`hid${++this.counter}`;return this.byHandle.set(t,e),t}get(e){return this.byHandle.get(e)}remove(e){return this.byHandle.delete(e)}list(){return[...this.byHandle].map(([e,t])=>({handle:e,device:t}))}};let $e=null;function et(){return $e||=new Qe,$e}const tt=4194304;function j(e,t){let n=t.collections?.[0];return{handle:e,vendorId:t.vendorId,productId:t.productId,...t.productName?{productName:t.productName}:{},...n?.usagePage===void 0?{}:{usagePage:n.usagePage},...n?.usage===void 0?{}:{usage:n.usage},opened:t.opened}}function M(e,t){let n=e.get(t);if(!n)throw Error(`unknown hid handle '${t}'`);return n}async function N(e){e.opened||await e.open()}function P(e,t){if(e>4194304)throw Error(`${t} exceeds the ${tt}-byte (4 MiB) v1 limit`)}function F(e){let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),t}async function nt(e,t){return(await t.getDevices()).map(t=>j(e.register(t),t))}async function rt(e,t,n){let r=await t.requestDevice({filters:n});if(r.length===0)throw Error(`No device selected.`);return r.map(t=>j(e.register(t),t))}function it(e,t){return j(t,M(e,t))}async function at(e,t){await M(e,t).open()}async function ot(e,t){await M(e,t).close()}async function st(e,t,n,r){P(r.byteLength,`send report payload`);let i=M(e,t);await N(i),await i.sendReport(n,r)}async function ct(e,t,n,r){P(r.byteLength,`send feature report payload`);let i=M(e,t);await N(i),await i.sendFeatureReport(n,r)}async function lt(e,t,n){let r=M(e,t);return await N(r),{reportId:n,bytes:F(await r.receiveFeatureReport(n))}}async function ut(e,t,n){let r=M(e,t);await N(r);let i=e=>{n({reportId:e.reportId,bytes:F(e.data)})};return r.addEventListener(`inputreport`,i),()=>r.removeEventListener(`inputreport`,i)}const I=6e4;function dt(){return y()}function ft(e){return new Promise(t=>{let n=!1,r=e=>{n||(n=!0,clearTimeout(i),t(e))},i=setTimeout(()=>r({cancelled:!0}),I);b(`hid-device`,e??[],void 0,{timeoutMs:I}).then(e=>{let t=e;t.cancelled?r({cancelled:!0}):typeof t.error==`string`?r({error:t.error}):t.granted&&t.info?r({granted:!0,info:t.info}):r({error:`hid picker returned an unexpected response`})}).catch(e=>{r({error:e instanceof Error?e.message:`Failed to open HID picker`})})})}function L(e){let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),t}var pt=class{registry;constructor(e){this.registry=e}hid(){let e=A();if(!e)throw Error(`WebHID is unavailable in this browser`);return e}list(){return nt(this.registry,this.hid())}async request(e){if(dt()){let t=await ft(e);if(`cancelled`in t)throw Error(`user cancelled the HID picker`);if(`error`in t)throw Error(t.error);let n=await this.reacquireAll(t.info);if(n.length===0)throw Error(`granted device could not be re-acquired`);return n.map(e=>j(this.registry.register(e),e))}return rt(this.registry,this.hid(),e)}async reacquireAll(e){return(await this.hid().getDevices()).filter(t=>t.vendorId===e.vendorId&&t.productId===e.productId)}info(e){return Promise.resolve(it(this.registry,e))}open(e){return at(this.registry,e)}close(e){return ot(this.registry,e)}sendReport(e,t,n){return st(this.registry,e,t,L(n))}sendFeatureReport(e,t,n){return ct(this.registry,e,t,L(n))}async receiveFeatureReport(e,t){let n=await lt(this.registry,e,t);return{reportId:n.reportId,bytes:new Uint8Array(n.bytes)}}async subscribeInputReports(e,t){return ut(this.registry,e,e=>t({reportId:e.reportId,bytes:new Uint8Array(e.bytes)}))}},mt=class e{rpc;constructor(e){this.rpc=e}static REQUEST_TIMEOUT_MS=3e5;async list(){return(await this.rpc.call(`hid-list`,void 0)).devices}async request(t){return(await this.rpc.call(`hid-request`,{filters:t},{timeoutMs:e.REQUEST_TIMEOUT_MS})).devices}async info(e){return(await this.rpc.call(`hid-device-info`,{handle:e})).device}async open(e){await this.rpc.call(`hid-open`,{handle:e})}async close(e){await this.rpc.call(`hid-close`,{handle:e})}async sendReport(e,t,n){await this.rpc.call(`hid-send-report`,{handle:e,reportId:t,bytes:L(n)})}async sendFeatureReport(e,t,n){await this.rpc.call(`hid-send-feature-report`,{handle:e,reportId:t,bytes:L(n)})}async receiveFeatureReport(e,t){let n=await this.rpc.call(`hid-receive-feature-report`,{handle:e,reportId:t});return{reportId:n.reportId,bytes:new Uint8Array(n.bytes)}}async subscribeInputReports(e,t){let n=this.rpc.onEvent(`hid-input-report`,n=>{let r=n;!r||r.handle!==e||t({reportId:r.reportId,bytes:new Uint8Array(r.bytes)})});try{await this.rpc.call(`hid-subscribe-input-reports`,{handle:e})}catch(e){throw n(),e}return async()=>{n();try{await this.rpc.call(`hid-unsubscribe-input-reports`,{handle:e})}catch{}}}};function R(e,t){return e&&A()?new pt(et()):t?new mt(t):null}function ht(e){return async function(t,n){let r=t instanceof Request?t:null,i=gt(t),a=(n?.method??r?.method??`GET`).toUpperCase(),o=vt(r?.headers,n?.headers),s=await bt(n,r,a,o);s.defaultContentType&&!yt(o,`content-type`)&&(o[`Content-Type`]=s.defaultContentType);let c=await e(i,{method:a,headers:o,body:s.body}),l=new Headers;for(let[e,t]of Object.entries(c.headers))try{l.set(e,t)}catch{}let u=c.status===204||c.status===205||c.status===304||!c.body||c.body.byteLength===0?null:c.body,d=new Response(u,{status:c.status,statusText:c.statusText,headers:l});try{Object.defineProperty(d,"url",{value:c.url||i,writable:!1,configurable:!0,enumerable:!1})}catch{}return d}}function gt(e){return typeof e==`string`?e:e instanceof URL?e.toString():e.url}function _t(e){if(e){if(e instanceof Headers){let t={};return e.forEach((e,n)=>{t[n]=e}),t}if(Array.isArray(e)){let t={};for(let[n,r]of e)t[n]=r;return t}return{...e}}}function vt(e,t){let n={};e&&e.forEach((e,t)=>{n[t]=e});let r=_t(t);if(r)for(let[e,t]of Object.entries(r))n[e]=t;return n}function yt(e,t){return z(e,t)!==void 0}function z(e,t){let n=t.toLowerCase(),r;for(let[t,i]of Object.entries(e))t.toLowerCase()===n&&(r=i);return r}async function bt(e,t,n,i){if(e&&`body`in e&&e.body!==void 0)return xt(e.body,n);if(t&&n!==`GET`&&n!==`HEAD`){let e=t.body!==null,n=new Uint8Array(await t.arrayBuffer()),o=z(i,`content-type`)??``,s=e&&(!o||!r(o));return{body:n.byteLength===0?void 0:s?a(n):new TextDecoder(`utf-8`).decode(n),defaultContentType:s?`application/octet-stream`:void 0}}return{}}async function xt(e,t){if(s(e)){if(t===`GET`||t===`HEAD`)return{};let n=await c(e);return{body:n.bytes,defaultContentType:n.contentType}}return{body:await St(e,t),defaultContentType:wt(e,t)}}async function St(e,t){if(e!=null&&t!==`GET`&&t!==`HEAD`){if(typeof e==`string`)return e;if(e instanceof URLSearchParams)return e.toString();if(e instanceof Uint8Array)return a(e);if(e instanceof ArrayBuffer)return new Uint8Array(e).slice();if(ArrayBuffer.isView(e)){let t=e;return new Uint8Array(t.buffer,t.byteOffset,t.byteLength).slice()}if(typeof Blob<`u`&&e instanceof Blob)return new Uint8Array(await e.arrayBuffer());throw typeof ReadableStream<`u`&&e instanceof ReadableStream?Error(`node fetch shim: ReadableStream request bodies are not supported (collect into a Uint8Array or string before calling fetch)`):Error(`node fetch shim: unsupported request body type (${Object.prototype.toString.call(e)}); use a string, Uint8Array, ArrayBuffer, Blob, FormData, or URLSearchParams`)}}function Ct(e){return e instanceof Uint8Array||e instanceof ArrayBuffer||ArrayBuffer.isView(e)||typeof Blob<`u`&&e instanceof Blob}function wt(e,t){if(e instanceof URLSearchParams)return`application/x-www-form-urlencoded;charset=UTF-8`;if(!(t===`GET`||t===`HEAD`||!Ct(e)))return typeof Blob<`u`&&e instanceof Blob&&e.type?e.type:`application/octet-stream`}function B(){return globalThis.navigator?.serial??null}var Tt=class{byHandle=new Map;counter=0;register(e){for(let[t,n]of this.byHandle)if(n.port===e)return t;let t=`serial${++this.counter}`;return this.byHandle.set(t,{port:e,opened:!1}),t}get(e){return this.byHandle.get(e)}remove(e){return this.byHandle.delete(e)}list(){return[...this.byHandle].map(([e,t])=>({handle:e,entry:t}))}retainOnly(e){let t=[];for(let[n,r]of[...this.byHandle])e.includes(r.port)||(this.byHandle.delete(n),t.push({handle:n,entry:r}));return t}};let V=null;function H(){return V||=new Tt,V}const U=4194304;function W(e,t){let n=t.port.getInfo();return{handle:e,...n.usbVendorId===void 0?{}:{usbVendorId:n.usbVendorId},...n.usbProductId===void 0?{}:{usbProductId:n.usbProductId},opened:t.opened}}function G(e,t){let n=e.get(t);if(!n)throw Error(`unknown serial handle '${t}'`);return n}function Et(e,t){let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}function Dt(e,t,n){if(t.length===0)return-1;outer:for(let r=Math.max(0,n);r+t.length<=e.length;r++){for(let n=0;n<t.length;n++)if(e[r+n]!==t[n])continue outer;return r}return-1}async function Ot(e){if(e.reader){try{await e.reader.cancel()}catch{}try{e.reader.releaseLock()}catch{}e.reader=void 0}if(e.pendingRead=void 0,e.leftover=void 0,e.writer){try{e.writer.releaseLock()}catch{}e.writer=void 0}}async function kt(e){if(await Ot(e),e.opened){try{await e.port.close()}catch{}e.opened=!1}}async function At(e,t){let n=await t.getPorts();for(let{entry:t}of e.retainOnly(n))await kt(t);return n.map(t=>{let n=e.register(t);return W(n,e.get(n))})}async function jt(e,t,n){let r=await t.requestPort(n.length?{filters:n}:{}),i=e.register(r);return W(i,e.get(i))}function Mt(e,t){return W(t,G(e,t))}async function Nt(e,t,n){let r=G(e,t);try{await r.port.open(n)}catch(e){throw Error(`${e instanceof Error?e.message:String(e)} (handle '${t}' may be stale after a device reset — re-run 'serial list' to pick up the current handle)`)}r.opened=!0}async function Pt(e,t){let n=G(e,t);await Ot(n);try{await n.port.close()}catch(e){if(!Ft(e))throw e}n.opened=!1}function Ft(e){let t=e instanceof Error?e.message:String(e);return/already closed|not open/i.test(t)}function It(e){if(!e.reader){if(!e.port.readable)throw Error(`serial port is not readable (is it open?)`);e.reader=e.port.readable.getReader()}return e.reader}function Lt(e){if(!e.writer){if(!e.port.writable)throw Error(`serial port is not writable (is it open?)`);e.writer=e.port.writable.getWriter()}return e.writer}async function Rt(e,t,n){let r=G(e,t),i=Math.min(n.maxBytes??4194304,U),a=n.until?.length?n.until:void 0,o=n.timeoutMs??1e3,s=Date.now()+Math.max(0,o),c=r.leftover??new Uint8Array;r.leftover=void 0;let l=0,u=()=>{if(a){let e=Dt(c,a,Math.max(0,l-(a.length-1)));if(e>=0){let t=e+a.length;return r.leftover=c.slice(t),c.slice(0,t)}}return c.length>=i?(r.leftover=c.slice(i),c.slice(0,i)):null},d=u();if(d)return d;let f=It(r);for(;Date.now()<s;){let e=s-Date.now(),t=r.pendingRead??f.read();r.pendingRead=t;let n,i=new Promise(t=>{n=setTimeout(()=>t(`__timeout`),e)}),a;try{a=await Promise.race([t,i])}finally{n&&clearTimeout(n)}if(a===`__timeout`)break;if(r.pendingRead=void 0,a.done){r.reader=void 0;break}if(a.value?.length){l=c.length,c=Et(c,a.value);let e=u();if(e)return e}}return c}async function zt(e,t,n){if(n.length>4194304)throw Error(`serial write payload exceeds the ${U}-byte (4 MiB) v1 limit`);return await Lt(G(e,t)).write(n),n.length}async function Bt(e,t){return G(e,t).port.getSignals()}async function Vt(e,t,n){await G(e,t).port.setSignals(n)}const Ht=6e4;function Ut(){return y()}function Wt(e){return new Promise(t=>{let n=!1,r=e=>{n||(n=!0,clearTimeout(i),t(e))},i=setTimeout(()=>r({cancelled:!0}),Ht);b(`serial-port`,e??[],void 0,{timeoutMs:Ht}).then(e=>{let t=e;t.cancelled?r({cancelled:!0}):typeof t.error==`string`?r({error:t.error}):t.granted&&t.info?r({granted:!0,info:t.info}):r({error:`serial picker returned an unexpected response`})}).catch(e=>{r({error:e instanceof Error?e.message:`Failed to open serial picker`})})})}function Gt(e){let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),t}var Kt=class{registry;constructor(e){this.registry=e}serial(){let e=B();if(!e)throw Error(`Web Serial is unavailable in this browser`);return e}list(){return At(this.registry,this.serial())}async request(e){if(Ut()){let t=await Wt(e);if(`cancelled`in t)throw Error(`user cancelled the serial picker`);if(`error`in t)throw Error(t.error);let n=await this.reacquire(t.info);if(!n)throw Error(`granted port could not be re-acquired`);let r=this.registry.register(n);return W(r,this.registry.get(r))}return jt(this.registry,this.serial(),e)}async reacquire(e){let t=await this.serial().getPorts(),n=t.filter(t=>{let n=t.getInfo();return!(e.usbVendorId!==void 0&&n.usbVendorId!==e.usbVendorId||e.usbProductId!==void 0&&n.usbProductId!==e.usbProductId)}),r=n.length?n:t,i=this.registry.list().map(e=>e.entry.port);return r.find(e=>!i.includes(e))??r[0]??null}info(e){return Promise.resolve(Mt(this.registry,e))}open(e,t){return Nt(this.registry,e,t)}close(e){return Pt(this.registry,e)}read(e,t){return Rt(this.registry,e,t)}write(e,t){return zt(this.registry,e,t)}getSignals(e){return Bt(this.registry,e)}setSignals(e,t){return Vt(this.registry,e,t)}},qt=class e{rpc;constructor(e){this.rpc=e}static REQUEST_TIMEOUT_MS=3e5;static READ_MARGIN_MS=3e4;async list(){return(await this.rpc.call(`serial-list`,void 0)).devices}async request(t){return(await this.rpc.call(`serial-request`,{filters:t},{timeoutMs:e.REQUEST_TIMEOUT_MS})).device}async info(e){return(await this.rpc.call(`serial-device-info`,{handle:e})).device}async open(e,t){await this.rpc.call(`serial-open`,{handle:e,options:t})}async close(e){await this.rpc.call(`serial-close`,{handle:e})}async read(t,n){let r=(n.timeoutMs??1e3)+e.READ_MARGIN_MS,i=await this.rpc.call(`serial-read`,{handle:t,maxBytes:n.maxBytes,until:n.until?Gt(n.until):void 0,timeoutMs:n.timeoutMs},{timeoutMs:r});return new Uint8Array(i.bytes)}async write(e,t){return(await this.rpc.call(`serial-write`,{handle:e,bytes:Gt(t)})).bytesWritten}async getSignals(e){return(await this.rpc.call(`serial-get-signals`,{handle:e})).signals}async setSignals(e,t){await this.rpc.call(`serial-set-signals`,{handle:e,signals:t})}};function Jt(e,t){return e&&B()?new Kt(H()):t?new qt(t):null}const Yt=e(`usb`);async function K(){return import(`./usb-claim-broker-C5dFP5bv.js`)}function q(e,t){let n=e.get(t);if(!n)throw Error(`unknown usb handle '${t}'`);return n}function J(e,t){if(e>4194304)throw Error(`${t} exceeds the ${be}-byte (4 MiB) v1 limit`)}function Xt(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}async function Zt(e,t){return(await t.getDevices()).map(t=>v(e.register(t),t))}async function Qt(e,t,n){let r=await t.requestDevice({filters:n});return v(e.register(r),r)}function $t(e,t){return v(t,q(e,t))}async function en(e,t){await q(e,t).open()}async function tn(e,t,n){await fn(e,t,`close`,n)}async function nn(e,t,n){await q(e,t).selectConfiguration(n)}async function rn(e,t,n,r){let i=r?.owner??`usb`,a=q(e,t),o=await K(),s=await o.acquireInterfaceClaim(e,t,n,i,r?.wait??!1,r?.signal),c=()=>o.claimOwner(e,t,n),l=()=>c()===i,u=()=>o.wasGrantCancelled(e,t,n,i),d=async r=>{if(!(l()&&!u())){if(u()||!c()){if(r)try{await a.releaseInterface(n)}catch{}o.settleCancelledGrant(e,t,n,i),o.wakeInterfaceWaiter(e,t,n)}throw o.claimWaitCancelledError(t,n,i)}};try{await d(!1),await a.claimInterface(n),await d(!0)}catch(r){throw s===`acquired`&&(u()?(o.settleCancelledGrant(e,t,n,i),o.wakeInterfaceWaiter(e,t,n)):l()?o.releaseInterfaceClaim(e,t,n,i):c()||o.wakeInterfaceWaiter(e,t,n)),r}finally{o.clearPendingGrant(e,t,n,i)}}async function an(e,t){let n=await K(),r=n.takeOwnerClaims(e,t);for(let t of r){try{await e.get(t.handle)?.releaseInterface(t.interfaceNumber)}catch{}n.wakeInterfaceWaiter(e,t.handle,t.interfaceNumber)}}async function on(e,t,n,r){let i=r?.owner??`usb`,a=q(e,t),o=await K(),s=o.claimOwner(e,t,n);if(s&&s!==i)throw new ge({handle:t,holder:s,op:`release`,interfaceNumber:n});await a.releaseInterface(n),o.releaseInterfaceClaim(e,t,n,i)}async function sn(e,t,n,r){J(r,`control-in length`);let i=await q(e,t).controlTransferIn(n,r);return{status:i.status??`ok`,bytes:i.data?Xt(i.data):new ArrayBuffer(0)}}async function cn(e,t,n,r){J(r.byteLength,`control-out payload`);let i=await q(e,t).controlTransferOut(n,r);return{status:i.status??`ok`,bytesWritten:i.bytesWritten}}async function ln(e,t,n,r){J(r,`transfer-in length`);let i=await q(e,t).transferIn(n,r);return{status:i.status??`ok`,bytes:i.data?Xt(i.data):new ArrayBuffer(0)}}async function un(e,t,n,r){J(r.byteLength,`transfer-out payload`);let i=await q(e,t).transferOut(n,r);return{status:i.status??`ok`,bytesWritten:i.bytesWritten}}async function dn(e,t,n){await fn(e,t,`reset`,n)}async function fn(e,t,n,r){let i=r?.owner??`usb`,a=r?.force??!1,o=q(e,t),s=await K(),c=s.listClaims(e,t);if(c.length>0){let e=c.map(e=>`${e.interfaceNumber}=${e.owner}`).join(`, `);Yt.warn(`usb ${n} ${t} with claimed interfaces (${e})${a?` [force]`:``}`)}let l=s.assertExclusive(e,t,i,a,n);n===`close`?await o.close():await o.reset(),s.displaceHandle(e,t,{reason:n,displacedBy:i,displaced:l})}async function pn(e,t,n,r){await q(e,t).clearHalt(n,r)}const mn=6e4;function hn(){return y()}function gn(e){return new Promise(t=>{let n=!1,r=e=>{n||(n=!0,clearTimeout(i),t(e))},i=setTimeout(()=>r({cancelled:!0}),mn);b(`usb-device`,e??[],void 0,{timeoutMs:mn}).then(e=>{let t=e;t.cancelled?r({cancelled:!0}):typeof t.error==`string`?r({error:t.error}):t.granted&&t.info?r({granted:!0,info:t.info}):r({error:`usb picker returned an unexpected response`})}).catch(e=>{r({error:e instanceof Error?e.message:`Failed to open USB picker`})})})}function Y(e){let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),t}var _n=class{registry;constructor(e){this.registry=e}usb(){let e=ve();if(!e)throw Error(`WebUSB is unavailable in this browser`);return e}list(){return Zt(this.registry,this.usb())}async request(e){if(hn()){let t=await gn(e);if(`cancelled`in t)throw Error(`user cancelled the USB picker`);if(`error`in t)throw Error(t.error);let n=await this.reacquire(t.info);if(!n)throw Error(`granted device could not be re-acquired`);return v(this.registry.register(n),n)}return Qt(this.registry,this.usb(),e)}async reacquire(e){return(await this.usb().getDevices()).find(t=>t.vendorId===e.vendorId&&t.productId===e.productId&&(!e.serialNumber||t.serialNumber===e.serialNumber))??null}info(e){return Promise.resolve($t(this.registry,e))}open(e){return en(this.registry,e)}close(e,t){return tn(this.registry,e,X(t))}selectConfig(e,t){return nn(this.registry,e,t)}claim(e,t,n){return rn(this.registry,e,t,X(n))}release(e,t,n){return on(this.registry,e,t,X(n))}async controlIn(e,t,n){let r=await sn(this.registry,e,t,n);return{status:r.status,bytes:new Uint8Array(r.bytes)}}controlOut(e,t,n){return cn(this.registry,e,t,Y(n))}async transferIn(e,t,n){let r=await ln(this.registry,e,t,n);return{status:r.status,bytes:new Uint8Array(r.bytes)}}transferOut(e,t,n){return un(this.registry,e,t,Y(n))}clearHalt(e,t,n){return pn(this.registry,e,t,n)}reset(e,t){return dn(this.registry,e,X(t))}subscribeClaimEvents(e){let t,n=import(`./usb-claim-broker-C5dFP5bv.js`).then(n=>{t=n.addClaimListener(this.registry,e)});return()=>{n.then(()=>t?.())}}dropOwner(e){return an(this.registry,e)}};function X(e){return{...e,owner:e?.owner??`shell`}}var vn=class e{rpc;constructor(e){this.rpc=e}static REQUEST_TIMEOUT_MS=3e5;static CLAIM_WAIT_TIMEOUT_MS=3e5;async list(){return(await this.rpc.call(`usb-list`,void 0)).devices}async request(t){return(await this.rpc.call(`usb-request`,{filters:t},{timeoutMs:e.REQUEST_TIMEOUT_MS})).device}async info(e){return(await this.rpc.call(`usb-device-info`,{handle:e})).device}async open(e){await this.rpc.call(`usb-open`,{handle:e})}async close(e,t){await this.rpc.call(`usb-close`,{handle:e,owner:t?.owner??`shell`,force:t?.force??!1})}async selectConfig(e,t){await this.rpc.call(`usb-select-configuration`,{handle:e,configurationValue:t})}async claim(t,n,r){let i=r?.owner??`shell`,a=r?.wait??!1;try{await this.rpc.call(`usb-claim-interface`,{handle:t,interfaceNumber:n,owner:i,wait:a},a?{timeoutMs:e.CLAIM_WAIT_TIMEOUT_MS}:void 0)}catch(e){throw a&&await this.rpc.call(`usb-cancel-claim-wait`,{handle:t,interfaceNumber:n,owner:i}).catch(()=>void 0),e}}async release(e,t,n){await this.rpc.call(`usb-release-interface`,{handle:e,interfaceNumber:t,owner:n?.owner??`shell`})}async controlIn(e,t,n){let r=await this.rpc.call(`usb-control-transfer-in`,{handle:e,setup:t,length:n});return{status:r.status,bytes:new Uint8Array(r.bytes)}}async controlOut(e,t,n){return this.rpc.call(`usb-control-transfer-out`,{handle:e,setup:t,bytes:Y(n)})}async transferIn(e,t,n){let r=await this.rpc.call(`usb-transfer-in`,{handle:e,endpointNumber:t,length:n});return{status:r.status,bytes:new Uint8Array(r.bytes)}}async transferOut(e,t,n){return this.rpc.call(`usb-transfer-out`,{handle:e,endpointNumber:t,bytes:Y(n)})}async clearHalt(e,t,n){await this.rpc.call(`usb-clear-halt`,{handle:e,direction:t,endpointNumber:n})}async reset(e,t){await this.rpc.call(`usb-reset`,{handle:e,owner:t?.owner??`shell`,force:t?.force??!1})}subscribeClaimEvents(e){return this.rpc.onEvent(`usb-claim-event`,t=>{e(t)})}async dropOwner(e){await this.rpc.call(`usb-drop-owner`,{owner:e})}};function yn(e,t){return e&&ve()?new _n(ye()):t?new vn(t):null}const bn=Math.max(me,ce)+5e3;function xn(e,t,n,r={}){let{header:i,window:a}=fe(t),o=new Map,s=!1,c=r.dispatch??(e=>oe(e)?pe(e):re(e));function l(e){let t=o.get(e);t&&(clearTimeout(t.timer),o.delete(e))}function u(e,t,n){let r=Math.min(a.byteLength,t.payload.byteLength-n);r>0&&a.set(t.payload.subarray(n,n+r)),Atomics.store(i,2,t.status),Atomics.store(i,3,t.payload.byteLength),Atomics.store(i,4,r),Atomics.store(i,5,n),Atomics.store(i,1,e),Atomics.store(i,0,2),Atomics.notify(i,0),n+r>=t.payload.byteLength&&l(e)}function d(e,t){if(s)return;let{status:n,payload:r}=ae(t);l(e);let i={status:n,payload:r,timer:setTimeout(()=>l(e),bn)};o.set(e,i),u(e,i,0)}let f=e=>{let t=e.data;if(!t||typeof t.id!=`number`)return;if(t.type===`sync-sab-next`){let e=o.get(t.id),n=t.offset;if(!e||typeof n!=`number`||!Number.isInteger(n)||n<0||n>e.payload.byteLength){d(t.id,{ok:!1,errno:`EIO`,message:`sync-sab: bad continuation`});return}u(t.id,e,n);return}if(t.type!==`sync-sab-req`||!t.req||typeof t.req!=`object`)return;let r=t.id,i={...t.req,token:n},a;try{a=c(i)}catch(e){d(r,{ok:!1,errno:`EIO`,message:e instanceof Error?e.message:String(e)});return}a.then(e=>d(r,e),e=>d(r,{ok:!1,errno:`EIO`,message:e instanceof Error?e.message:String(e)}))};return e.addEventListener(`message`,f),{dispose:()=>{if(!s){s=!0,e.removeEventListener(`message`,f);for(let e of[...o.keys()])l(e)}}}}const Sn=e(`realm-host`);let Cn=0;function wn(e,t,n={}){let r=new Map,i=new Map,a=`${_e}:${++Cn}`,o=n.syncFsBridgeEnabled?ie({fs:t.fs,...t.exec?{exec:t.exec}:{},cwd:t.cwd}):void 0,s=!1,c=(t,n=[])=>{if(!s)try{e.postMessage(t,n)}catch{}},l={subscriptions:r,pushEvent:c},u={subscriptions:i,pushEvent:c,owner:a},d=new Map,f={spawns:d,opts:n},p={pushEvent:c,pending:new Map,registered:[],backends:new Map,requestSeq:0,pid:n.ppid??null},m=r=>{if(r.data?.type!==`realm-rpc-req`)return;let i=r.data;Tn(e,i,t,n,l,u,f,p)};e.addEventListener(`message`,m);let h=o&&n.syncSab?xn(e,n.syncSab,o):void 0;return e.start?.(),{syncFsToken:o,dispose:()=>{if(!s){s=!0,h?.dispose(),o&&ne(o),e.removeEventListener(`message`,m);for(let{controller:e}of d.values())try{e.signal.aborted||e.abort()}catch{}d.clear();for(let e of r.values())try{Promise.resolve(e()).catch(()=>{})}catch{}r.clear(),_r(p);for(let e of i.values())try{Promise.resolve(e()).catch(()=>{})}catch{}i.clear();try{(n.usbBackend??On(n)).dropOwner?.(a)?.catch(()=>{})}catch{}}}}}async function Tn(e,t,n,r,i,a,o,s){try{let c=await En(t,n,r,i,a,o,s),l={type:`realm-rpc-res`,id:t.id,result:c},u=br(c);e.postMessage(l,u)}catch(n){let r=n instanceof Error?n.message:String(n),i={type:`realm-rpc-res`,id:t.id,error:r};e.postMessage(i)}}async function En(e,t,n,r,i,a,o){switch(e.channel){case`vfs`:return Mn(e.op,e.args,t,n.onHostFsMutation);case`exec`:return Gn(e.op,e.args,t,a);case`fetch`:return Zn(e.op,e.args,t);case`browser`:return tr(e.op,e.args,Dn(n),n);case`usb`:return hr(e.op,e.args,On(n),i);case`serial`:return gr(e.op,e.args,kn(n));case`hid`:return yr(e.op,e.args,An(n),r);case`computer`:return vr(e.op,e.args,o);case`module`:return $n(e.op,e.args,t);case`wasm`:return er(e.op,e.args,t);default:throw Error(`realm-host: unknown channel '${e.channel}'`)}}function Dn(e){if(e.browser)return e.browser;let t=globalThis;if(t.__slicc_browser)return t.__slicc_browser;throw Error(`browser is not available in this runtime`)}function Z(e){if(e.wsSubscribers)return e.wsSubscribers;let t=globalThis;if(t.__slicc_wsSubscribers)return t.__slicc_wsSubscribers;throw Error(`browser.websocket is not available in this runtime`)}function On(e){if(e.usbBackend)return e.usbBackend;let r=yn(n(),t());if(!r)throw Error(`usb is not available in this runtime`);return r}function kn(e){if(e.serialBackend)return e.serialBackend;let r=Jt(n(),t());if(!r)throw Error(`serial is not available in this runtime`);return r}function An(e){if(e.hidBackend)return e.hidBackend;let r=R(n(),t());if(!r)throw Error(`hid is not available in this runtime`);return r}function jn(e){return[...e.deleted,...e.created.map(e=>e.path),...e.modified.map(e=>e.path)]}async function Mn(e,t,n,r){let i=typeof t[0]==`string`?t[0]:null,a=i===null?null:n.fs.resolvePath(n.cwd,i);switch(e){case`readFile`:return n.fs.readFile(a);case`readFileBinary`:return n.fs.readFileBuffer(a);case`writeFile`:return await n.fs.writeFile(a,t[1]),a&&r?.([a]),!0;case`writeFileBinary`:return await n.fs.writeFile(a,t[1]),a&&r?.([a]),!0;case`appendFile`:return await n.fs.appendFile(a,t[1]),a&&r?.([a]),!0;case`readDir`:return n.fs.readdir(a);case`exists`:return n.fs.exists(a);case`stat`:{let e=await n.fs.stat(a);return{isDirectory:e.isDirectory,isFile:e.isFile,size:e.size}}case`mkdir`:return await n.fs.mkdir(a,{recursive:!0}),!0;case`rm`:return await n.fs.rm(a,{recursive:!0}),a&&r?.([a]),!0;case`rename`:{let e=n.fs.resolvePath(n.cwd,t[1]),{renameViaFs:i}=await import(`./rename-via-fs-ckVY1Ljv.js`);return await i(n.fs,a,e),r?.(a?[a,e]:[e]),!0}case`resolvePath`:return n.fs.resolvePath(n.cwd,t[0]);case`invalidatePaths`:{let e=t[0],r=n.fs;return r.invalidatePaths&&r.invalidatePaths(e),!0}case`snapshot`:return Vn(n,typeof t[0]==`string`?t[0]:n.cwd);case`flushWrites`:{let e=t[0];return await Hn(n,e),r?.(jn(e)),!0}default:throw Error(`realm-host: unknown vfs op '${e}'`)}}const Nn=10485760;function Pn(e){return e.fileCount>=500||e.totalBytes>=Nn}function Fn(e){return e.entries.length>=2e4}async function In(e,t,n,r){r.entries.push({path:t,content:new Uint8Array,isDirectory:!0});let i;try{i=await e.fs.readdir(t)}catch{return}for(let e of i)e!==`node_modules`&&n.push(t===`/`?`/${e}`:`${t}/${e}`)}async function Ln(e,t,n,r){let i=``;try{i=await e.fs.readlink(t)}catch{return}r.entries.push({path:t,content:new Uint8Array,isDirectory:!1,isSymbolicLink:!0,symlinkTarget:i,size:n})}async function Rn(e,t,n,r,i){if(n>1048576||Pn(r)||r.totalBytes+n>Nn){r.entries.push({path:t,content:new Uint8Array,isDirectory:!1,truncated:!0,size:n});return}let a;try{a=await e.fs.readFileBuffer(t)}catch{await zn(e,t,i,r);return}r.entries.push({path:t,content:a,isDirectory:!1}),r.fileCount+=1,r.totalBytes+=a.byteLength}async function zn(e,t,n,r){let i;try{i=await e.fs.stat(t)}catch{return}if(i.isDirectory){await In(e,t,n,r);return}r.entries.push({path:t,content:new Uint8Array,isDirectory:!1,truncated:!0,size:i.size})}async function Bn(e,t,n){if(Fn(n))return;let r=[t];for(;r.length>0;){if(Fn(n))return;let t=r.pop(),i;try{i=await e.fs.lstat(t)}catch{}if(i?.isSymbolicLink){await Ln(e,t,i.size,n);continue}let a;try{a=await e.fs.stat(t)}catch{continue}a.isDirectory?await In(e,t,r,n):a.isFile&&await Rn(e,t,a.size,n,r)}}async function Vn(e,t){let n={entries:[],totalBytes:0,fileCount:0};return await Bn(e,t,n),t!==`/tmp`&&await Bn(e,`/tmp`,n),{entries:n.entries}}async function Hn(e,t){let n=[],r=async(e,t)=>{try{await t()}catch(t){n.push(`${e}: ${t instanceof Error?t.message:String(t)}`)}};for(let n of t.deleted)await r(n,()=>e.fs.rm(n,{recursive:!0}));for(let n of t.created)n.isSymbolicLink?await r(n.path,()=>e.fs.symlink(n.symlinkTarget??``,n.path)):n.isDirectory?await r(n.path,()=>e.fs.mkdir(n.path,{recursive:!0})):await r(n.path,()=>e.fs.writeFile(n.path,n.content));for(let n of t.modified)await r(n.path,()=>e.fs.writeFile(n.path,n.content));if(n.length>0)throw Error(`sync-fs flush failed for ${n.length} path(s): ${n.join(`; `)}`)}const Un=new Set([`SIGINT`,`SIGTERM`,`SIGKILL`,`SIGSTOP`,`SIGCONT`]),Wn=new Set([`SIGINT`,`SIGTERM`,`SIGKILL`]);async function Gn(e,t,n,r){if(!n.exec)throw Error(`exec is not available in this runtime`);if(e===`run`){let e=t[0],r=await n.exec(e,{cwd:n.cwd});return{stdout:r.stdout,stderr:r.stderr,exitCode:r.exitCode}}if(e===`spawn`){let e=t[0];if(!Array.isArray(e)||e.length===0||!e.every(e=>typeof e==`string`))throw Error(`exec.spawn: argv must be a non-empty string[]`);let[r,...i]=e,a=await n.exec(r,{cwd:n.cwd,args:i});return{stdout:a.stdout,stderr:a.stderr,exitCode:a.exitCode}}if(e===`start`)return Yn(t,n,r);if(e===`kill`)return Xn(t,r);throw Error(`realm-host: unknown exec op '${e}'`)}function Kn(e){if(e.stdin!==void 0&&typeof e.stdin!=`string`)throw Error(`exec.start: stdin must be a string`);if(e.stdinKind!==void 0&&e.stdinKind!==`text`&&e.stdinKind!==`bytes`)throw Error(`exec.start: stdinKind must be 'text' or 'bytes'`);if(e.args!==void 0&&(!Array.isArray(e.args)||!e.args.every(e=>typeof e==`string`)))throw Error(`exec.start: args must be a string[]`);if(e.cwd!==void 0&&typeof e.cwd!=`string`)throw Error(`exec.start: cwd must be a string`);if(e.env!==void 0){if(e.env===null||typeof e.env!=`object`||Array.isArray(e.env))throw Error(`exec.start: env must be an object`);for(let[t,n]of Object.entries(e.env))if(n!==void 0&&typeof n!=`string`)throw Error(`exec.start: env[${t}] must be a string`)}}function qn(e){throw Object.assign(Error(e.message),{code:e.errno})}async function Jn(e,t){let n=await de(e.fs,e.cwd,t.cwd);`errno`in n&&qn(n);let r=se(t.env);return r!==void 0&&`errno`in r&&qn(r),{cwd:n.cwd,...r===void 0?{}:{env:r.env}}}async function Yn(e,t,n){let[r,i,a]=e;if(typeof r!=`number`)throw Error(`exec.start: spawnId must be a number`);if(n.spawns.has(r))throw Error(`exec.start: spawnId ${r} is already in use`);let o,s,c;if(Array.isArray(i)){if(i.length===0||!i.every(e=>typeof e==`string`))throw Error(`exec.start: argv must be a non-empty string[]`);[o,...s]=i,c=i.slice()}else if(typeof i==`string`)o=i,c=[i];else throw Error(`exec.start: command must be a string or a non-empty string[]`);let l=a??{};Kn(l);let u=await Jn(t,l),d=new AbortController,{pm:f,owner:p}=n.opts,m=0;f&&p&&(m=f.spawn({kind:`shell`,argv:c,cwd:u.cwd,owner:p,...n.opts.ppid===void 0?{}:{ppid:n.opts.ppid},adoptAbort:d}).pid),n.spawns.set(r,{controller:d,pid:m});let h;try{let e={cwd:u.cwd,signal:d.signal};return l.stdin!==void 0&&(e.stdin=l.stdin),l.stdinKind!==void 0&&(e.stdinKind=l.stdinKind),s===void 0?l.args!==void 0&&(e.args=l.args):e.args=s,u.env!==void 0&&(e.env=u.env,e.replaceEnv=!0),h=await t.exec(o,e),{stdout:h.stdout,stderr:h.stderr,exitCode:h.exitCode}}finally{if(n.spawns.delete(r),f&&m){let e=f.get(m);f.exit(m,e?.terminatedBy?null:h?.exitCode??1)}}}function Xn(e,t){let[n,r]=e,i=t.spawns.get(n);if(!i)return!1;let a=typeof r==`string`&&Un.has(r)?r:`SIGTERM`;Wn.has(a)&&!i.controller.signal.aborted&&i.controller.abort();let{pm:o}=t.opts;return o&&i.pid?o.signal(i.pid,a):!0}async function Zn(e,t,n){if(e!==`request`)throw Error(`realm-host: unknown fetch op '${e}'`);let[r,i]=t,a=await(n.fetch?ht(n.fetch):globalThis.fetch.bind(globalThis))(r,i),o={};a.headers.forEach((e,t)=>{o[t]=e});let s=new Uint8Array(await a.arrayBuffer());return{status:a.status,statusText:a.statusText,headers:o,body:s,url:a.url}}function Qn(e){let t=t=>e.fs.resolvePath(e.cwd,t);return{exists:n=>e.fs.exists(t(n)),isDirectory:async n=>{try{return(await e.fs.stat(t(n))).isDirectory}catch{return!1}},readFile:async n=>{let r=await e.fs.readFile(t(n));return typeof r==`string`?r:new TextDecoder().decode(r)}}}async function $n(e,t,n){if(e!==`buildGraph`)throw Error(`realm-host: unknown module op '${e}'`);let r=typeof t[0]==`string`?t[0]:``,i=typeof t[1]==`string`&&t[1]?t[1]:n.cwd,a=typeof t[2]==`string`?t[2]:``,o=Qn(n),s={reader:o,readBytes:e=>n.fs.readFileBuffer(e),fromDir:i};return Ye({entryCode:r,fromDir:i,entryFilename:a,reader:o,transpile:Ie({ipk:s}),transpileEntry:E({ipk:s})})}async function er(e,t,n){if(e!==`compile`)throw Error(`realm-host: unknown wasm op '${e}'`);let r=typeof t[0]==`string`?t[0]:null;if(r===null)throw Error(`realm-host: wasm.compile requires a path argument`);let i=n.fs.resolvePath(n.cwd,r);return he(e=>n.fs.readFileBuffer(e),i)}async function tr(e,t,n,r){switch(e){case`findTab`:return ir(n,t[0]??{});case`ensureTab`:{let e=t[0];return ar(n,e,t[1]??{})}case`openWindow`:{let e=t[0];return or(n,e,t[1]??{})}case`windowBounds`:{let e=t[0];return n.getWindowBounds(e)}case`setWindowBounds`:{let e=t[0],r=t[1]??{};return n.setWindowBounds(e,r)}case`eval`:{let e=t[0],r=t[1];return sr(n,e,r,!1)}case`evalAsync`:{let e=t[0],r=t[1];return sr(n,e,r,!0)}case`cookie`:{let e=t[0],r=t[1];return dr(n,e,r)}case`localStorage`:{let e=t[0],r=t[1];return fr(n,e,r)}case`wsObserve`:{let e={...t[0],scoopJid:r.scoopJid};return await Z(r).observe(e)}case`wsUpdate`:{let e=t[0],n=t[1]??{};return Z(r).update(e,n)}case`wsClose`:{let e=t[0];return Z(r).close(e)}case`wsList`:return Z(r).list();case`createTab`:{let e=t[0];return n.createPage(e)}case`closeTab`:{let e=t[0];return n.closePage(e)}case`setViewport`:{let e=t[0],r=t[1],i=t[2];return n.withTab(e,e=>e.setViewportOverride(r,i))}case`navigateTab`:{let e=t[0],r=t[1];return n.withTab(e,e=>e.navigate(r))}case`screenshotTab`:{let e=t[0],r=t[1];return n.withTab(e,async e=>(await e.bringToFront(),e.screenshot(r)))}case`waitForLoadState`:{let e=t[0],r=t[1];return ur(n,e,r)}default:throw Error(`realm-host: unknown browser op '${e}'`)}}function nr(){try{let e=globalThis.localStorage;return e?!!(e.getItem(`slicc.trayWorkerBaseUrl`)||e.getItem(`slicc.trayJoinUrl`)):!1}catch{return!1}}async function rr(e){if(typeof e.listAllTargets!=`function`)return(await e.listPages()).map(e=>({targetId:e.targetId,url:e.url,title:e.title}));let n=(await e.listAllTargets()).map(e=>({targetId:e.targetId,url:e.url,title:e.title})),r=nr()?t():null;if(r)try{let{targets:e}=await r.call(`list-remote-targets`,void 0,{timeoutMs:3e3}),t=new Set(n.map(e=>e.targetId));for(let r of e)t.has(r.targetId)||(t.add(r.targetId),n.push({targetId:r.targetId,url:r.url,title:r.title}))}catch(e){Sn.debug(`panel-rpc list-remote-targets failed`,{err:String(e)})}return n}async function ir(e,t){let n=await rr(e);if(t.domain){let e=t.domain.toLowerCase();for(let t of n){let n=pr(t.url);if(n&&n.toLowerCase()===e)return t}return null}if(t.urlMatch){let e;try{e=new RegExp(t.urlMatch)}catch(e){throw Error(`browser.findTab: invalid urlMatch regex: ${e instanceof Error?e.message:String(e)}`)}for(let t of n)if(e.test(t.url))return t;return null}throw Error("browser.findTab: query requires `domain` or `urlMatch`")}async function ar(e,t,n){let r=await rr(e);if(n.matchUrl){let e;try{e=new RegExp(n.matchUrl)}catch(e){throw Error(`browser.ensureTab: invalid matchUrl regex: ${e instanceof Error?e.message:String(e)}`)}let t=r.find(t=>e.test(t.url));if(t)return t}else{let e=mr(t);if(e){let t=r.find(t=>mr(t.url)===e);if(t)return t}}return{targetId:await e.createPage(t),url:t,title:``}}async function or(e,t,n){if(typeof e.openWindow!=`function`)throw Error(`browser.openWindow is not available in this runtime`);return{targetId:await e.openWindow(t,n),url:t||`about:blank`,title:``}}async function sr(e,t,n,r){return e.withTab(t,async e=>cr(await e.evaluate(n,{awaitPromise:r,returnByValue:!0})))}function cr(e){if(typeof e!=`string`)return e;let t=lr(e);if(t===void 0)return e;if(typeof t==`object`&&t)return t;if(typeof t==`string`){let e=t.trim();if(e.length>0&&(e[0]===`{`||e[0]===`[`)){let e=lr(t);if(typeof e==`object`&&e)return e}return t}return e}function lr(e){let t=e.trim();if(t.length===0)return;let n=t[0];if(n===`{`||n===`[`||n===`"`||n===`-`||n>=`0`&&n<=`9`||t===`true`||t===`false`||t===`null`)try{return JSON.parse(t)}catch{return}}async function ur(e,t,n){if(n===`networkidle`)return e.withTab(t,async e=>{for(let t=0;t<20;t++)if(await new Promise(e=>setTimeout(e,250)),await e.evaluate(`(function(){
3
3
  try {
4
4
  var entries = performance.getEntriesByType('resource');
@@ -15,4 +15,4 @@ import{t as e}from"./logger-LESFN7Hj.js";import{n as t,r as n}from"./panel-rpc-B
15
15
  })()`,{returnByValue:!0}))return})}async function dr(e,t,n){return e.withTab(t,async e=>{let t=((await e.send(`Network.getCookies`)).cookies??[]).find(e=>e.name===n);return t&&typeof t.value==`string`?t.value:null})}async function fr(e,t,n){return e.withTab(t,async e=>{let t=await e.evaluate(`(function(){try{var v=window.localStorage.getItem(${JSON.stringify(n)});return v===null?null:String(v);}catch(e){return null;}})()`,{returnByValue:!0});return t==null?null:typeof t==`string`?t:String(t)})}function pr(e){try{return new URL(e).hostname}catch{return null}}function mr(e){try{return new URL(e).origin}catch{return null}}async function hr(e,t,n,r){switch(e){case`list`:return n.list();case`request`:return n.request(t[0]??[]);case`info`:return n.info(t[0]);case`open`:return n.open(t[0]);case`close`:return n.close(t[0],{owner:r.owner,force:!!t[1]?.force});case`reset`:return n.reset(t[0],{owner:r.owner,force:!!t[1]?.force});case`clearHalt`:return n.clearHalt(t[0],t[1],t[2]);case`selectConfig`:return n.selectConfig(t[0],t[1]);case`claim`:return n.claim(t[0],t[1],{owner:r.owner,wait:!!t[2]?.wait});case`release`:return n.release(t[0],t[1],{owner:r.owner});case`controlIn`:return n.controlIn(t[0],t[1],t[2]);case`controlOut`:return n.controlOut(t[0],t[1],t[2]);case`transferIn`:return n.transferIn(t[0],t[1],t[2]);case`transferOut`:return n.transferOut(t[0],t[1],t[2]);case`subscribeClaimEvents`:{let e=t[0];if(r.subscriptions.has(e))return!0;let i=n.subscribeClaimEvents;if(!i)return!0;let a=i(t=>{t.handle===e&&r.pushEvent({type:`realm-event`,channel:`usb-claim-event`,payload:t})});return r.subscriptions.set(e,a),!0}case`unsubscribeClaimEvents`:{let e=t[0],n=r.subscriptions.get(e);return!n||(r.subscriptions.delete(e),await n(),!0)}default:throw Error(`realm-host: unknown usb op '${e}'`)}}async function gr(e,t,n){switch(e){case`list`:return n.list();case`request`:return n.request(t[0]??[]);case`info`:return n.info(t[0]);case`open`:return n.open(t[0],t[1]);case`close`:return n.close(t[0]);case`read`:{let e=t[1]??{};return n.read(t[0],e)}case`write`:return n.write(t[0],t[1]);case`getSignals`:return n.getSignals(t[0]);case`setSignals`:return n.setSignals(t[0],t[1]);default:throw Error(`realm-host: unknown serial op '${e}'`)}}function _r(e){let t=e.registered.splice(0);e.backends.clear(),t.length>0&&import(`./registry-qHtWYFOX.js`).then(({getComputerRegistry:e})=>{let n=e();for(let e of t)n?.unregister(e)});for(let t of e.pending.values())t.reject(Error(`realm disposed`));e.pending.clear()}async function vr(e,t,n){switch(e){case`register`:{let e=t[0],[{JshComputerBackend:r},{getComputerRegistry:i,installComputerRegistry:a}]=await Promise.all([import(`./jsh-heEnFyvP.js`),import(`./registry-qHtWYFOX.js`)]),o=new r(e,(t,r)=>{let i=`c${++n.requestSeq}`;return new Promise((a,o)=>{n.pending.set(i,{resolve:a,reject:o}),n.pushEvent({type:`realm-event`,channel:`computer-call`,payload:{requestId:i,id:e.id,op:t,args:r}})})});return(i()??a(null)).register(o,{pid:n.pid}),n.registered.push(e.id),n.backends.set(e.id,o),{id:e.id}}case`unregister`:{let e=String(t[0]??``);n.backends.delete(e);let{getComputerRegistry:r}=await import(`./registry-qHtWYFOX.js`);return await r()?.unregister(e),n.registered=n.registered.filter(t=>t!==e),{ok:!0}}case`reply`:{let e=String(t[0]??``),r=t[1],i=n.pending.get(e);if(!i)return{ok:!1};n.pending.delete(e);let a=r?.error;return a?i.reject(Error(a)):i.resolve(r),{ok:!0}}case`frame`:{let e=String(t[0]??``),r=t[1];return n.backends.get(e)?.pushFrame(r),{ok:!0}}default:throw Error(`realm-host: unknown computer op '${e}'`)}}async function yr(e,t,n,r){switch(e){case`list`:return n.list();case`request`:return n.request(t[0]??[]);case`info`:return n.info(t[0]);case`open`:return n.open(t[0]);case`close`:return n.close(t[0]);case`sendReport`:return n.sendReport(t[0],t[1],t[2]);case`sendFeatureReport`:return n.sendFeatureReport(t[0],t[1],t[2]);case`receiveFeatureReport`:return n.receiveFeatureReport(t[0],t[1]);case`subscribeInputReports`:{let e=t[0];if(r.subscriptions.has(e))return!0;let i=await n.subscribeInputReports(e,t=>{let n=t.bytes instanceof Uint8Array?t.bytes:new Uint8Array(t.bytes),i={type:`realm-event`,channel:`hid-input-report`,payload:{handle:e,reportId:t.reportId,bytes:n}};r.pushEvent(i,[n.buffer])});return r.subscriptions.set(e,i),!0}case`unsubscribeInputReports`:{let e=t[0],n=r.subscriptions.get(e);return!n||(r.subscriptions.delete(e),await n(),!0)}default:throw Error(`realm-host: unknown hid op '${e}'`)}}function br(e){if(e instanceof Uint8Array)return[e.buffer];if(e&&typeof e==`object`){let t=e;if(t.body instanceof Uint8Array)return[t.body.buffer];if(t.bytes instanceof Uint8Array)return[t.bytes.buffer]}return[]}const xr=65536;function Q(e,t){if(!t)return e;let n=e+t;return n.length<=xr?n:n.slice(n.length-xr)}const Sr={SIGKILL:137,SIGINT:130,SIGTERM:143};function Cr(e,t){let n=Math.max(0,e)/1e3;return`--- killed after ${n<10?n.toFixed(2).replace(/(\.\d*?)0+$/,`$1`).replace(/\.$/,``):String(Math.round(n))}s (exit ${t}) ---\n`}function wr(e,t){for(let n of t)e.pendingByPath.delete(n)}function Tr(e,t,n){if(e.type===`realm-output`){let r=e;return r.stream===`stdout`?t.stdout=t.captureOutput?t.stdout+r.chunk:Q(t.stdout,r.chunk):t.stderr=t.captureOutput?t.stderr+r.chunk:Q(t.stderr,r.chunk),n?.(r.chunk,r.stream),`live`}if(e.type===`realm-fs-write`){let n=e;return t.pendingByPath.set(n.path,{op:`write`,path:n.path,bytes:n.bytes}),`live`}if(e.type===`realm-fs-delete`){let n=e;return t.pendingByPath.set(n.path,{op:`delete`,path:n.path}),`live`}return e.type===`realm-done`?`done`:e.type===`realm-error`?`error`:`live`}async function Er(e,t,n){try{if(t.op===`write`){let n=e.fs?.writeFile?.bind(e.fs);n&&await n(t.path,t.bytes)}else{let n=e.fs?.rm?.bind(e.fs);n&&await n(t.path,{recursive:!0})}}catch(e){let r=e instanceof Error?e.message:String(e),i=t.op===`write`?`write`:`delete`;n.stderr+=`[sync-fs] ERROR: ${i} of ${t.path} was NOT persisted: ${r}\n`}}async function Dr(e,t,n){for(let r of e)await Er(t,r,n)}function Or(e,t,n){return{type:`realm-init`,kind:e.kind,code:e.code,argv:e.realmArgv??e.argv,env:e.env,cwd:e.cwd,filename:e.filename,stdin:e.stdin,pyodideIndexURL:e.pyodideIndexURL,pyodideAssetRoot:e.pyodideAssetRoot,pyodideMountDirs:e.pyodideMountDirs,opfsMountDbName:e.opfsMountDbName,mountPoints:e.mountPoints,...t.syncFsToken===void 0?{}:{syncFsToken:t.syncFsToken},...n?{syncSab:n}:{},...e.captureOutput===!1?{captureOutput:!1}:{}}}async function kr(e){let t=e.procKind??`jsh`,n=e.pm.spawn({kind:t,argv:e.argv,cwd:e.cwd,env:e.env,owner:e.owner,ppid:e.ppid});e.onSpawn?.(n);let r;try{r=await e.realmFactory({kind:e.kind,ctx:e.ctx})}catch(t){let r=t instanceof Error?t.message:String(t);return e.pm.exit(n.pid,1),{stdout:``,stderr:`realm-runner: ${r}\n`,exitCode:1}}let i=r.isolatedThread?Ar(e.syncSabBytes):void 0,a={stdout:``,stderr:``,pendingByPath:new Map,captureOutput:e.captureOutput!==!1},o=wn(r.controlPort,e.ctx,{...e.owner.scoopJid===void 0?{}:{scoopJid:e.owner.scoopJid},pm:e.pm,owner:e.owner,ppid:n.pid,syncFsBridgeEnabled:!!e.syncFsBridgeEnabled||i!==void 0,...i?{syncSab:i}:{},onHostFsMutation:e=>wr(a,e)});return new Promise(t=>{let s=!1,c=!1,l=null,u=null,d=null,f=null,p=()=>{if(!c){c=!0,u&&r.controlPort.removeEventListener(`message`,u),r.removeEventListener&&(d&&r.removeEventListener(`error`,d),f&&r.removeEventListener(`messageerror`,f)),l?.();try{r.terminate()}catch{}}},m=(r,i)=>{p(),o.dispose(),e.pm.exit(n.pid,i),t(r)},h=(e,t)=>{s||(s=!0,Promise.resolve().then(()=>m(e,t)))},g=t=>{s||(s=!0,Promise.resolve().then(()=>{let r=[...a.pendingByPath.values()];a.pendingByPath.clear(),p(),Dr(r,e.ctx,a).finally(()=>{let e=Cr(Date.now()-n.startedAt,t);m({stdout:a.stdout,stderr:a.stderr+e,exitCode:t},t)})}))};u=t=>{let n=t.data,r=Tr(n,a,e.onOutput);if(r===`done`){let e=t.data;h({stdout:e.stdout,stderr:e.stderr,exitCode:e.exitCode},e.exitCode)}else if(r===`error`){let e=t.data;h({stdout:a.stdout,stderr:a.stderr+e.message+`
16
16
  `,exitCode:1},1)}},d=e=>{let t=e.message??`realm error`;h({stdout:a.stdout,stderr:a.stderr+t+`
17
17
  `,exitCode:1},1)},f=()=>{h({stdout:a.stdout,stderr:a.stderr+`realm-runner: worker message could not be deserialized
18
- `,exitCode:1},1)},l=e.pm.onSignal((e,t)=>{if(e.pid!==n.pid)return;let r=Sr[t];r!==void 0&&g(r)}),r.controlPort.addEventListener(`message`,u),r.addEventListener&&(r.addEventListener(`error`,d),r.addEventListener(`messageerror`,f)),r.controlPort.postMessage(Or(e,o,i))})}function Ar(e){if(ue())try{return new SharedArrayBuffer(64+(e??1048576))}catch{return}}let jr=!1;function Mr(e){jr=e}function Nr(){return jr}const Pr=Object.freeze({anthropic:`ANTHROPIC_API_KEY`,"ant-ling":`ANT_LING_API_KEY`,"qwen-token-plan":`QWEN_TOKEN_PLAN_API_KEY`,"qwen-token-plan-cn":`QWEN_TOKEN_PLAN_CN_API_KEY`,"qwen-token-plan-individual":`QWEN_TOKEN_PLAN_API_KEY`,openai:`OPENAI_API_KEY`,"azure-openai-responses":`AZURE_OPENAI_API_KEY`,nvidia:`NVIDIA_API_KEY`,deepseek:`DEEPSEEK_API_KEY`,google:`GEMINI_API_KEY`,"google-vertex":`GOOGLE_CLOUD_API_KEY`,groq:`GROQ_API_KEY`,cerebras:`CEREBRAS_API_KEY`,xai:`XAI_API_KEY`,radius:`RADIUS_API_KEY`,openrouter:`OPENROUTER_API_KEY`,"vercel-ai-gateway":`AI_GATEWAY_API_KEY`,zai:`ZAI_API_KEY`,"zai-coding-cn":`ZAI_CODING_CN_API_KEY`,mistral:`MISTRAL_API_KEY`,minimax:`MINIMAX_API_KEY`,"minimax-cn":`MINIMAX_CN_API_KEY`,moonshotai:`MOONSHOT_API_KEY`,"moonshotai-cn":`MOONSHOT_API_KEY`,huggingface:`HF_TOKEN`,fireworks:`FIREWORKS_API_KEY`,together:`TOGETHER_API_KEY`,baseten:`BASETEN_API_KEY`,opencode:`OPENCODE_API_KEY`,"opencode-go":`OPENCODE_API_KEY`,"kimi-coding":`KIMI_API_KEY`,"cloudflare-workers-ai":`CLOUDFLARE_API_KEY`,"cloudflare-ai-gateway":`CLOUDFLARE_API_KEY`,xiaomi:`XIAOMI_API_KEY`,"xiaomi-token-plan-cn":`XIAOMI_TOKEN_PLAN_CN_API_KEY`,"xiaomi-token-plan-ams":`XIAOMI_TOKEN_PLAN_AMS_API_KEY`,"xiaomi-token-plan-sgp":`XIAOMI_TOKEN_PLAN_SGP_API_KEY`});function Fr(e){return Pr[e]??null}function Ir(e,t){let n=Fr(e);if(!n)return{};let r=t.find(t=>t.providerId===e)?.apiKey?.trim();return r?{[n]:r}:{}}let $=null;function Lr(e){let t=$;return $=e,t}async function Rr(){if(!$)return{};try{return await $()??{}}catch{return{}}}function zr(){return async()=>{let{getAccounts:e,getSelectedProvider:t}=await import(`./account-store-eWpoS7ge.js`).then(e=>e.t);return Ir(t(),e())}}async function Br(e,t,n,r,i={}){return await n.fs.exists(e)?Vr(await n.fs.readFile(e),[`node`,e,...t],n,r,{...i,filename:e}):{stdout:``,stderr:`jsh: cannot find script '${e}'\n`,exitCode:127}}async function Vr(e,t,n,r,i={}){let a=i.realmFactory??await Hr(),o=r?.processManager??Gr()??Wr(),s=r?.owner??{kind:`system`},c=i.filename??t[1]??`<eval>`;return await kr({pm:o,realmFactory:a,owner:s,kind:`js`,code:D(e,{keepLine:!0}),argv:t,env:{...s.kind===`scoop`||s.kind===`jshd`?{}:await Rr(),...Object.fromEntries(n.env.entries())},cwd:n.cwd,filename:c,stdin:xe(n.stdin),ctx:n,ppid:r?.getParentPid?.(),syncFsBridgeEnabled:Nr(),...i.onSpawn?{onSpawn:e=>i.onSpawn?.(e.pid)}:{},...i.onOutput?{onOutput:i.onOutput}:{},...i.captureOutput===!1?{captureOutput:!1}:{}})}async function Hr(){if(typeof Worker<`u`||typeof document<`u`)return Te();let{createInProcessJsRealmFactory:e}=await import(`./realm-inprocess-D1O4IIWr.js`);return e()}let Ur=null;function Wr(){return Ur||=new l,Ur}function Gr(){let e=globalThis.__slicc_pm;return e&&typeof e==`object`&&typeof e.spawn==`function`&&typeof e.onSignal==`function`?e:null}export{D as _,Mr as a,Oe as b,Jt as c,B as d,H as f,et as g,A as h,Lr as i,U as l,tt as m,Br as n,kr as o,R as p,zr as r,yn as s,Vr as t,W as u,E as v,b as x,Te as y};
18
+ `,exitCode:1},1)},l=e.pm.onSignal((e,t)=>{if(e.pid!==n.pid)return;let r=Sr[t];r!==void 0&&g(r)}),r.controlPort.addEventListener(`message`,u),r.addEventListener&&(r.addEventListener(`error`,d),r.addEventListener(`messageerror`,f)),r.controlPort.postMessage(Or(e,o,i))})}function Ar(e){if(ue())try{return new SharedArrayBuffer(64+(e??1048576))}catch{return}}let jr=!1;function Mr(e){jr=e}function Nr(){return jr}const Pr=Object.freeze({anthropic:`ANTHROPIC_API_KEY`,"ant-ling":`ANT_LING_API_KEY`,"qwen-token-plan":`QWEN_TOKEN_PLAN_API_KEY`,"qwen-token-plan-cn":`QWEN_TOKEN_PLAN_CN_API_KEY`,"qwen-token-plan-individual":`QWEN_TOKEN_PLAN_API_KEY`,openai:`OPENAI_API_KEY`,"azure-openai-responses":`AZURE_OPENAI_API_KEY`,nvidia:`NVIDIA_API_KEY`,deepseek:`DEEPSEEK_API_KEY`,google:`GEMINI_API_KEY`,"google-vertex":`GOOGLE_CLOUD_API_KEY`,groq:`GROQ_API_KEY`,cerebras:`CEREBRAS_API_KEY`,xai:`XAI_API_KEY`,radius:`RADIUS_API_KEY`,openrouter:`OPENROUTER_API_KEY`,"vercel-ai-gateway":`AI_GATEWAY_API_KEY`,zai:`ZAI_API_KEY`,"zai-coding-cn":`ZAI_CODING_CN_API_KEY`,mistral:`MISTRAL_API_KEY`,minimax:`MINIMAX_API_KEY`,"minimax-cn":`MINIMAX_CN_API_KEY`,moonshotai:`MOONSHOT_API_KEY`,"moonshotai-cn":`MOONSHOT_API_KEY`,huggingface:`HF_TOKEN`,fireworks:`FIREWORKS_API_KEY`,together:`TOGETHER_API_KEY`,baseten:`BASETEN_API_KEY`,opencode:`OPENCODE_API_KEY`,"opencode-go":`OPENCODE_API_KEY`,"kimi-coding":`KIMI_API_KEY`,"cloudflare-workers-ai":`CLOUDFLARE_API_KEY`,"cloudflare-ai-gateway":`CLOUDFLARE_API_KEY`,xiaomi:`XIAOMI_API_KEY`,"xiaomi-token-plan-cn":`XIAOMI_TOKEN_PLAN_CN_API_KEY`,"xiaomi-token-plan-ams":`XIAOMI_TOKEN_PLAN_AMS_API_KEY`,"xiaomi-token-plan-sgp":`XIAOMI_TOKEN_PLAN_SGP_API_KEY`});function Fr(e){return Pr[e]??null}function Ir(e,t){let n=Fr(e);if(!n)return{};let r=t.find(t=>t.providerId===e)?.apiKey?.trim();return r?{[n]:r}:{}}let $=null;function Lr(e){let t=$;return $=e,t}async function Rr(){if(!$)return{};try{return await $()??{}}catch{return{}}}function zr(){return async()=>{let{getAccounts:e,getSelectedProvider:t}=await import(`./account-store-RRgNEopC.js`).then(e=>e.t);return Ir(t(),e())}}async function Br(e,t,n,r,i={}){return await n.fs.exists(e)?Vr(await n.fs.readFile(e),[`node`,e,...t],n,r,{...i,filename:e}):{stdout:``,stderr:`jsh: cannot find script '${e}'\n`,exitCode:127}}async function Vr(e,t,n,r,i={}){let a=i.realmFactory??await Hr(),o=r?.processManager??Gr()??Wr(),s=r?.owner??{kind:`system`},c=i.filename??t[1]??`<eval>`;return await kr({pm:o,realmFactory:a,owner:s,kind:`js`,code:D(e,{keepLine:!0}),argv:t,env:{...s.kind===`scoop`||s.kind===`jshd`?{}:await Rr(),...Object.fromEntries(n.env.entries())},cwd:n.cwd,filename:c,stdin:xe(n.stdin),ctx:n,ppid:r?.getParentPid?.(),syncFsBridgeEnabled:Nr(),...i.onSpawn?{onSpawn:e=>i.onSpawn?.(e.pid)}:{},...i.onOutput?{onOutput:i.onOutput}:{},...i.captureOutput===!1?{captureOutput:!1}:{}})}async function Hr(){if(typeof Worker<`u`||typeof document<`u`)return Te();let{createInProcessJsRealmFactory:e}=await import(`./realm-inprocess-Ce-mzM7p.js`);return e()}let Ur=null;function Wr(){return Ur||=new l,Ur}function Gr(){let e=globalThis.__slicc_pm;return e&&typeof e==`object`&&typeof e.spawn==`function`&&typeof e.onSignal==`function`?e:null}export{D as _,Mr as a,Oe as b,Jt as c,B as d,H as f,et as g,A as h,Lr as i,U as l,tt as m,Br as n,kr as o,R as p,zr as r,yn as s,Vr as t,W as u,E as v,b as x,Te as y};