sliccy 6.232.1 → 6.232.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/dist/ui/.vite/manifest.json +182 -182
  2. package/dist/ui/assets/{account-store-B9NAiCud.js → account-store-B857f9Kw.js} +1 -1
  3. package/dist/ui/assets/{account-store-BjfGeTTt.js → account-store-C8W_QB2_.js} +1 -1
  4. package/dist/ui/assets/{adobe-Bz-ZNRYT.js → adobe-C2NABnF7.js} +1 -1
  5. package/dist/ui/assets/{adobe-Djo2u4ZW.js → adobe-hInWK-RG.js} +1 -1
  6. package/dist/ui/assets/{agent-panels-CP61MyvH.js → agent-panels-DjIYV1_V.js} +1 -1
  7. package/dist/ui/assets/{almost-bash-shell-headless-CSew1mj5.js → almost-bash-shell-headless-Cr-YVYbG.js} +27 -27
  8. package/dist/ui/assets/{apply-layout-C5tkEPIw.js → apply-layout-6y46WnDn.js} +1 -1
  9. package/dist/ui/assets/{apps-Dp0TUE_0.js → apps-DkZBf0EF.js} +1 -1
  10. package/dist/ui/assets/{azure-openai-JkY4uYkc.js → azure-openai-BPC12gr1.js} +1 -1
  11. package/dist/ui/assets/{azure-openai-CzOmuJGM.js → azure-openai-DaGSGR26.js} +1 -1
  12. package/dist/ui/assets/{backend-hostfs-DoiWbvcu.js → backend-hostfs-CyFczT_n.js} +1 -1
  13. package/dist/ui/assets/{cdp-38zgn7rv.js → cdp-Cp2ul1Xk.js} +1 -1
  14. package/dist/ui/assets/{cerebras-DTSHi-Ie.js → cerebras-BEDSf9Z2.js} +1 -1
  15. package/dist/ui/assets/{cerebras-j4mzqJoZ.js → cerebras-CAFxbAAH.js} +1 -1
  16. package/dist/ui/assets/{composer-speech-BeeuLGg2.js → composer-speech-BveIVRUb.js} +1 -1
  17. package/dist/ui/assets/{connect-surface-CeR_GM7x.js → connect-surface-ogo7Rv2Y.js} +1 -1
  18. package/dist/ui/assets/{directed-approval-CX_HvwXp.js → directed-approval-BoAbm3IJ.js} +1 -1
  19. package/dist/ui/assets/{emscripten-vfs-hook-CD4XHFnz.js → emscripten-vfs-hook-CYIDH-AN.js} +1 -1
  20. package/dist/ui/assets/{ensure-speech-assets-D_Xx-dcP.js → ensure-speech-assets-BvTOfAF9.js} +1 -1
  21. package/dist/ui/assets/{frozen-archive-writer-B2hU8rG5.js → frozen-archive-writer-Ce13R-3M.js} +1 -1
  22. package/dist/ui/assets/{fs-B-LLf0bG.js → fs-Bl4-flxd.js} +2 -2
  23. package/dist/ui/assets/{fs-BWRHmpI5.js → fs-CXdlfm9I.js} +1 -1
  24. package/dist/ui/assets/{gelatiere-unit-CSTPHfIX.js → gelatiere-unit-Cr5wm_Kg.js} +1 -1
  25. package/dist/ui/assets/{github-9cbMQjmV.js → github-DBc_eOzS.js} +2 -2
  26. package/dist/ui/assets/{github-j3XObHP4.js → github-DELN8f0M.js} +1 -1
  27. package/dist/ui/assets/{github-auth-BZVZ7x8a.js → github-auth-D7J-BVhH.js} +1 -1
  28. package/dist/ui/assets/{github-copilot-CoY3bmiB.js → github-copilot-D7W2tJJz.js} +1 -1
  29. package/dist/ui/assets/{github-copilot-BpQfJba9.js → github-copilot-kJD8s7l4.js} +1 -1
  30. package/dist/ui/assets/{github-install-D1o7qomc.js → github-install-Day-m9Yr.js} +1 -1
  31. package/dist/ui/assets/{github-zip-CF_1Mtat.js → github-zip-xnabOe2b.js} +1 -1
  32. package/dist/ui/assets/{go-driver-DKvMuQ4C.js → go-driver-xTPUsgZ_.js} +1 -1
  33. package/dist/ui/assets/{hear-BDEEoiSx.js → hear-CdqoxknG.js} +1 -1
  34. package/dist/ui/assets/{help-Dmz0iRDg.js → help-B1T-o5sr.js} +1 -1
  35. package/dist/ui/assets/{installer-vW0yDgjr.js → installer-Ce066nKI.js} +1 -1
  36. package/dist/ui/assets/{ipk-mamba-COgtFryU.js → ipk-mamba-fKbu5XN4.js} +1 -1
  37. package/dist/ui/assets/{js-realm-worker-b9Yx9oEC.js → js-realm-worker-DluaIwWT.js} +2 -2
  38. package/dist/ui/assets/{jsh-executor-By4DIUnQ.js → jsh-executor-D3BSRLFA.js} +2 -2
  39. package/dist/ui/assets/{kernel-worker-Cvf_O6Kr.js → kernel-worker-M218S0e9.js} +9 -9
  40. package/dist/ui/assets/{lick-ws-bridge-Bn8djfxu.js → lick-ws-bridge-B0AqTybW.js} +1 -1
  41. package/dist/ui/assets/{lick-ws-bridge-CIDrcFiD.js → lick-ws-bridge-k53YqSiL.js} +1 -1
  42. package/dist/ui/assets/{live-session-curation-kO8HahKE.js → live-session-curation-DtmCoogl.js} +1 -1
  43. package/dist/ui/assets/{live-session-snapshot-CabSfB3u.js → live-session-snapshot-CzH5VyWG.js} +1 -1
  44. package/dist/ui/assets/{local-llm-BncDAj1R.js → local-llm-BYFR1wMj.js} +1 -1
  45. package/dist/ui/assets/{local-llm-sQhI3SXN.js → local-llm-CUTYS-aa.js} +1 -1
  46. package/dist/ui/assets/{main-DFzXj4Ap.js → main-CxkrqswY.js} +3 -3
  47. package/dist/ui/assets/{main-cherry-DjaHu26a.js → main-cherry-DnV2EtCt.js} +1 -1
  48. package/dist/ui/assets/{mcp-command-BQXcGbwB.js → mcp-command-BoGKsJ--.js} +12 -12
  49. package/dist/ui/assets/{memory-curation-seam-B_qGv6QI.js → memory-curation-seam-CLon6-0I.js} +1 -1
  50. package/dist/ui/assets/{memory-health-Cr7zxx4A.js → memory-health-B8JnBJZW.js} +1 -1
  51. package/dist/ui/assets/{memory-write-execute-U7BM-a7_.js → memory-write-execute-D-eE12zu.js} +1 -1
  52. package/dist/ui/assets/{merge-folded-cost-into-frozen-DIIPiCza.js → merge-folded-cost-into-frozen-Cv81Es_U.js} +1 -1
  53. package/dist/ui/assets/{mount-CV-BVSM3.js → mount-DvlJAh57.js} +1 -1
  54. package/dist/ui/assets/{mount-D70lNd1N.js → mount-H5EgXlPD.js} +3 -3
  55. package/dist/ui/assets/{new-session-CQAuY4KE.js → new-session-DW8XeVxp.js} +2 -2
  56. package/dist/ui/assets/{oauth-bootstrap-BaNDvFJl.js → oauth-bootstrap-BNFgdYgz.js} +2 -2
  57. package/dist/ui/assets/{onboarding-orchestrator-CeGSoBBd.js → onboarding-orchestrator-Ca--LViR.js} +1 -1
  58. package/dist/ui/assets/{openai-codex-AiKZcdM6.js → openai-codex-BUS22UvF.js} +1 -1
  59. package/dist/ui/assets/{openai-codex-D8h522X1.js → openai-codex-CVRDijVn.js} +1 -1
  60. package/dist/ui/assets/{openrouter-w4y3GCPU.js → openrouter-CNys7eBu.js} +1 -1
  61. package/dist/ui/assets/{openrouter-D4UvvWjX.js → openrouter-DaY_PmOO.js} +1 -1
  62. package/dist/ui/assets/{openrouter-free-Dpl6B5fH.js → openrouter-free-CLv2guAs.js} +1 -1
  63. package/dist/ui/assets/{openrouter-free-Jo6JUMdn.js → openrouter-free-DLoVUZYB.js} +1 -1
  64. package/dist/ui/assets/{openrouter-oauth-BzcBCIMl.js → openrouter-oauth-Dy_qCqcN.js} +1 -1
  65. package/dist/ui/assets/{openrouter-oauth-CPpLFF4m.js → openrouter-oauth-YeISAtXv.js} +1 -1
  66. package/dist/ui/assets/{opfs-mount-CEISbLdP.js → opfs-mount-cbV6hAiM.js} +1 -1
  67. package/dist/ui/assets/{panel-rpc-handlers-COj4LAbm.js → panel-rpc-handlers-BNEtTGhT.js} +2 -2
  68. package/dist/ui/assets/{panelize-shell-gHzxRw9h.js → panelize-shell-zDW06WQ9.js} +1 -1
  69. package/dist/ui/assets/{pi-edit-execution-B-htZMe7.js → pi-edit-execution-Blmvyfch.js} +1 -1
  70. package/dist/ui/assets/{process-worker-BXcmjjns.js → process-worker-BKgTk6Wd.js} +1 -1
  71. package/dist/ui/assets/{provider-DqfbNx1g.js → provider-L54O0b3P.js} +1 -1
  72. package/dist/ui/assets/{provider-DV5A_7IM.js → provider-MDIcOntz.js} +2 -2
  73. package/dist/ui/assets/{provider-settings--5JFkAeb.js → provider-settings-5llrPtIb.js} +1 -1
  74. package/dist/ui/assets/provider-store-access-nagoWWb1.js +1 -0
  75. package/dist/ui/assets/provider-store-access-wdRnmqbS.js +1 -0
  76. package/dist/ui/assets/{providers-DRXtGsiH.js → providers-DSWENZNJ.js} +1 -1
  77. package/dist/ui/assets/{providers-DdxfStbH.js → providers-jygoVQBo.js} +2 -2
  78. package/dist/ui/assets/{quick-llm-BC2oDrme.js → quick-llm-D6Wr4TyZ.js} +1 -1
  79. package/dist/ui/assets/{realm-inprocess-9LFGFCcK.js → realm-inprocess-s4ChFcqp.js} +2 -2
  80. package/dist/ui/assets/{realm-unhandled-rejections-CAczZ0N0.js → realm-unhandled-rejections-BAiAaesU.js} +1 -1
  81. package/dist/ui/assets/{realm-unhandled-rejections-aM-BvJZR.js → realm-unhandled-rejections-Bju1msWn.js} +1 -1
  82. package/dist/ui/assets/{recovery-screen-ZhIfXWHL.js → recovery-screen-DLmHqUsS.js} +1 -1
  83. package/dist/ui/assets/{remote-terminal-view-BQ8uaUim.js → remote-terminal-view-WWBk5qFn.js} +2 -2
  84. package/dist/ui/assets/{restore-CTCRzvNh.js → restore-DTlvxkxE.js} +1 -1
  85. package/dist/ui/assets/{run-B8IAldKH.js → run-9qBbvzkW.js} +1 -1
  86. package/dist/ui/assets/{run-DuqDZMb3.js → run-BKv0GiVy.js} +1 -1
  87. package/dist/ui/assets/{run-CVZ8dV9Z.js → run-Bo0rlg63.js} +2 -2
  88. package/dist/ui/assets/{run-D7w8ut3l.js → run-CRimkv1y.js} +2 -2
  89. package/dist/ui/assets/{run-DemKXbNO.js → run-D31zYxYd.js} +1 -1
  90. package/dist/ui/assets/{run-g-X3dTSo.js → run-dFcc7q5n.js} +1 -1
  91. package/dist/ui/assets/{session-command-memory-wRVMs4Tj.js → session-command-memory-Df5JM1jy.js} +2 -2
  92. package/dist/ui/assets/{session-jsonl-BMe2gRCP.js → session-jsonl-CRg856OA.js} +1 -1
  93. package/dist/ui/assets/{session-jsonl-jHmA3Z8R.js → session-jsonl-DyYSpiR3.js} +1 -1
  94. package/dist/ui/assets/{session-search-index-CPxHdFiO.js → session-search-index-CxeajBYy.js} +1 -1
  95. package/dist/ui/assets/{setup-feature-flags-remote-CLK9RQld.js → setup-feature-flags-remote-B7EvE5WG.js} +1 -1
  96. package/dist/ui/assets/{setup-model-catalog-DzoZIXjc.js → setup-model-catalog-CojuaZXL.js} +1 -1
  97. package/dist/ui/assets/{signed-fetch-BYlgbN5-.js → signed-fetch-C1-081oc.js} +1 -1
  98. package/dist/ui/assets/{silent-renew-backoff-C_5vt7WN.js → silent-renew-backoff-BJestVXs.js} +1 -1
  99. package/dist/ui/assets/slicc-version-B0t7wsNA.js +1 -0
  100. package/dist/ui/assets/{snapshot-CRzAt7FE.js → snapshot-Cb2BkTl8.js} +1 -1
  101. package/dist/ui/assets/{snapshot-features-Dl5OZRRD.js → snapshot-features-CttxuZRc.js} +1 -1
  102. package/dist/ui/assets/{soundscape-B5wl6uNe.js → soundscape-CGPRupA1.js} +1 -1
  103. package/dist/ui/assets/{speak-CsDBSFSc.js → speak-CwevwRGG.js} +1 -1
  104. package/dist/ui/assets/{sprinkle-manager-ByegzK4g.js → sprinkle-manager-nQ3MRYze.js} +1 -1
  105. package/dist/ui/assets/{sprinkle-renderer-DEvWTy4j.js → sprinkle-renderer-DQe4_ykh.js} +1 -1
  106. package/dist/ui/assets/{state-UjVstscY.js → state-CRuL5BZp.js} +1 -1
  107. package/dist/ui/assets/{store-jaaK6Occ.js → store-Ct6T8_vC.js} +1 -1
  108. package/dist/ui/assets/{store-uM0i8Poo.js → store-N9OMacY2.js} +1 -1
  109. package/dist/ui/assets/{sudo-DhuLhnRd.js → sudo-CVBz7Hub.js} +1 -1
  110. package/dist/ui/assets/{supervisor-C1NKlIKp.js → supervisor-d43UzH63.js} +1 -1
  111. package/dist/ui/assets/{sync-dialog-yG1Kj0Ua.js → sync-dialog-DFEhMgmr.js} +1 -1
  112. package/dist/ui/assets/{transformers-env-CXVElXgN.js → transformers-env-BVWRXJj7.js} +1 -1
  113. package/dist/ui/assets/{tray-leader-B4LxY7F_.js → tray-leader-DjSQqusA.js} +1 -1
  114. package/dist/ui/assets/{tray-leave-runtime-CAdFVkVo.js → tray-leave-runtime-CZ1DjZNm.js} +1 -1
  115. package/dist/ui/assets/{tray-sidecar-C8CforeJ.js → tray-sidecar-CjNuAx0_.js} +1 -1
  116. package/dist/ui/assets/{upgrade-detection-QfynQMyL.js → upgrade-detection-j5O1jpk-.js} +1 -1
  117. package/dist/ui/assets/{upskill-lick-skip-B1oh3KFo.js → upskill-lick-skip-D9rXamQ_.js} +1 -1
  118. package/dist/ui/assets/{voice-reply-2rym12dk.js → voice-reply-DDhoSB_B.js} +1 -1
  119. package/dist/ui/assets/{wasi-runtime-DpCCpScc.js → wasi-runtime-Bc01Bdaa.js} +2 -2
  120. package/dist/ui/assets/{wc-attach-8DvAlvRk.js → wc-attach-VJjD6tJb.js} +2 -2
  121. package/dist/ui/assets/{wc-browser-Cc0wc7sK.js → wc-browser-H9i1tYs2.js} +1 -1
  122. package/dist/ui/assets/{wc-computers-D2WMYpRs.js → wc-computers-CZVMeb1a.js} +1 -1
  123. package/dist/ui/assets/{wc-detached-BYrJv1Pi.js → wc-detached-C3w-EnO2.js} +1 -1
  124. package/dist/ui/assets/{wc-extension-bGGA59Lc.js → wc-extension-BaXTVkwH.js} +2 -2
  125. package/dist/ui/assets/{wc-follower-BEFn4tDO.js → wc-follower-B2K4I2jj.js} +3 -3
  126. package/dist/ui/assets/{wc-follower-oauth-BITU1r1m.js → wc-follower-oauth-Dpz6kwmb.js} +1 -1
  127. package/dist/ui/assets/{wc-gelatiere-DpUliuo8.js → wc-gelatiere-DUqsrBPY.js} +1 -1
  128. package/dist/ui/assets/{wc-live-B3xfspeg.js → wc-live-DPQeITgQ.js} +5 -5
  129. package/dist/ui/assets/{wc-nav-BvM4z5jU.js → wc-nav-DKr3h3r5.js} +2 -2
  130. package/dist/ui/assets/{wc-onboarding-Cj-8agbG.js → wc-onboarding-nZO6VPxy.js} +2 -2
  131. package/dist/ui/assets/{wc-permissions-DC3jkato.js → wc-permissions-BncUPK23.js} +2 -2
  132. package/dist/ui/assets/{wc-placeholder-DLtjzvI2.js → wc-placeholder-D8F3dotr.js} +3 -3
  133. package/dist/ui/assets/{wc-secret-request-mkhCBMcE.js → wc-secret-request-BAhfbP9J.js} +1 -1
  134. package/dist/ui/assets/{wc-settings-MSj3TwSP.js → wc-settings-BnJRa_R9.js} +3 -3
  135. package/dist/ui/assets/{wc-shell-CjZMoCV4.js → wc-shell-BzYq0ESt.js} +3 -3
  136. package/dist/ui/assets/{wc-shortcut-config-D8qtJaB9.js → wc-shortcut-config-Dyjf2Wvu.js} +1 -1
  137. package/dist/ui/assets/{wc-sprinkles-CWh_QyqB.js → wc-sprinkles-qa2Yk76b.js} +2 -2
  138. package/dist/ui/assets/{wc-transcript-export-C4au4GRp.js → wc-transcript-export-Bk8nLIfQ.js} +2 -2
  139. package/dist/ui/assets/{wc-tray-Crx_RosL.js → wc-tray-BEN7TcmV.js} +4 -4
  140. package/dist/ui/assets/welcome-detection-DUIoHDqJ.js +1 -0
  141. package/dist/ui/assets/{whisper-session-DVySo8di.js → whisper-session-xH7lWXSW.js} +2 -2
  142. package/dist/ui/assets/{xai-grok-Dw3U-q7x.js → xai-grok-B11VgjUo.js} +1 -1
  143. package/dist/ui/assets/{xai-grok-BK3Rrluc.js → xai-grok-DgGOq90R.js} +1 -1
  144. package/dist/ui/index.html +3 -3
  145. package/dist/ui/packages/webapp/index.html +3 -3
  146. package/package.json +1 -1
  147. package/dist/ui/assets/provider-store-access-Dtozn27m.js +0 -1
  148. package/dist/ui/assets/provider-store-access-Dzd2VXlw.js +0 -1
  149. package/dist/ui/assets/slicc-version-BQjDBKr6.js +0 -1
  150. package/dist/ui/assets/welcome-detection-H8o_tuf3.js +0 -1
@@ -1 +1 @@
1
- import{i as e}from"./github-install-D1o7qomc.js";function t(e){return(e??``).replace(/^\/+|\/+$/g,``)}function n(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n===r||n.startsWith(r)||r.startsWith(n)}function r(e){let n=t(e);if(n)return n.split(`/`).pop()||void 0}function i(e,n,i){if(e.kind!==`github`||e.source!==n)return!1;let a=t(e.path);if(!i||a===i||a.startsWith(`${i}/`))return!0;let o=r(i);return!!(o&&(e.skill===o||e.skill===i))}async function a(e,t){let n=e.body??{};if(n.verb!==`upskill`||typeof n.target!=`string`||!n.target)return!1;let r=t();if(!r)return!1;let[{scanSkillProvenance:i,resolveCommitSha:a},{createProxiedFetch:s},{createGitHubRequestContext:c}]=await Promise.all([import(`./provenance-DdmsQ3Nr.js`).then(e=>e.n),import(`./proxied-fetch-CoZ8jHud.js`).then(e=>e.o),import(`./github-auth-BZVZ7x8a.js`).then(e=>e.r)]),l=await i(r),u=await c(s());return await o({target:n.target,branch:typeof n.branch==`string`?n.branch:void 0,path:typeof n.path==`string`?n.path:void 0,provenanced:l.provenanced,unattributed:l.unattributed,resolveSha:({owner:e,repo:t,ref:n,path:r})=>a(e,t,n,u,!0,r)})!==`raise`}async function o(a){let o=e(a.target);if(!o)return`raise`;let s=`${o.owner}/${o.repo}`,c=t(a.path??o.path),l=a.branch??o.branch,u=a.provenanced.filter(({provenance:e})=>i(e,s,c)),d=r(c);if(u.length===0)return d&&a.unattributed.includes(d)?`skip-no-provenance`:`raise`;let f=u.map(({provenance:e})=>e.sha).filter(e=>typeof e==`string`&&e.length>0);if(f.length!==u.length)return`skip-no-provenance`;let p=await a.resolveSha({owner:o.owner,repo:o.repo,ref:l,path:c||void 0});return p?f.every(e=>n(e,p))?`skip-same-sha`:`raise`:`skip-no-provenance`}export{a as shouldSkipNavigateUpskill};
1
+ import{i as e}from"./github-install-Day-m9Yr.js";function t(e){return(e??``).replace(/^\/+|\/+$/g,``)}function n(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n===r||n.startsWith(r)||r.startsWith(n)}function r(e){let n=t(e);if(n)return n.split(`/`).pop()||void 0}function i(e,n,i){if(e.kind!==`github`||e.source!==n)return!1;let a=t(e.path);if(!i||a===i||a.startsWith(`${i}/`))return!0;let o=r(i);return!!(o&&(e.skill===o||e.skill===i))}async function a(e,t){let n=e.body??{};if(n.verb!==`upskill`||typeof n.target!=`string`||!n.target)return!1;let r=t();if(!r)return!1;let[{scanSkillProvenance:i,resolveCommitSha:a},{createProxiedFetch:s},{createGitHubRequestContext:c}]=await Promise.all([import(`./provenance-DdmsQ3Nr.js`).then(e=>e.n),import(`./proxied-fetch-CoZ8jHud.js`).then(e=>e.o),import(`./github-auth-D7J-BVhH.js`).then(e=>e.r)]),l=await i(r),u=await c(s());return await o({target:n.target,branch:typeof n.branch==`string`?n.branch:void 0,path:typeof n.path==`string`?n.path:void 0,provenanced:l.provenanced,unattributed:l.unattributed,resolveSha:({owner:e,repo:t,ref:n,path:r})=>a(e,t,n,u,!0,r)})!==`raise`}async function o(a){let o=e(a.target);if(!o)return`raise`;let s=`${o.owner}/${o.repo}`,c=t(a.path??o.path),l=a.branch??o.branch,u=a.provenanced.filter(({provenance:e})=>i(e,s,c)),d=r(c);if(u.length===0)return d&&a.unattributed.includes(d)?`skip-no-provenance`:`raise`;let f=u.map(({provenance:e})=>e.sha).filter(e=>typeof e==`string`&&e.length>0);if(f.length!==u.length)return`skip-no-provenance`;let p=await a.resolveSha({owner:o.owner,repo:o.repo,ref:l,path:c||void 0});return p?f.every(e=>n(e,p))?`skip-same-sha`:`raise`:`skip-no-provenance`}export{a as shouldSkipNavigateUpskill};
@@ -1 +1 @@
1
- import{t as e}from"./logger-DDBAeTLF.js";import{it as t,ot as n}from"./wc-shell-CjZMoCV4.js";import{hasVoiceForLang as r,speak as i,speechTextFromMarkdown as a}from"./speak-CsDBSFSc.js";var o=e(`speech:voice-reply`),s=0;function c(){s++}function l(){return s<=0?!1:(s--,!0)}async function u(e,s=i,c=r){let l=t(e);if(l&&!await c(l))return;let u=a(n(e));if(u)try{await s(l?{text:u,lang:l}:{text:u})}catch(e){o.warn(`spoken reply failed`,e)}}export{l as consumeVoiceSubmission,c as markVoiceSubmission,u as speakReplyMarkdown};
1
+ import{t as e}from"./logger-DDBAeTLF.js";import{it as t,ot as n}from"./wc-shell-BzYq0ESt.js";import{hasVoiceForLang as r,speak as i,speechTextFromMarkdown as a}from"./speak-CwevwRGG.js";var o=e(`speech:voice-reply`),s=0;function c(){s++}function l(){return s<=0?!1:(s--,!0)}async function u(e,s=i,c=r){let l=t(e);if(l&&!await c(l))return;let u=a(n(e));if(u)try{await s(l?{text:u,lang:l}:{text:u})}catch(e){o.warn(`spoken reply failed`,e)}}export{l as consumeVoiceSubmission,c as markVoiceSubmission,u as speakReplyMarkdown};
@@ -1,5 +1,5 @@
1
- import{a as e,c as t,d as n,i as r,l as i,n as a,o,r as s,s as c,t as l,u}from"./process-worker-BXcmjjns.js";function d(e){let[t]=WebAssembly.Module.customSections(e,`dylink.0`);if(!t)return;let n=new Uint8Array(t),r=0,i=()=>{let e=0,t=0;for(;;){let i=n[r++];if(e+=(i&127)*2**t,!(i&128))return e;t+=7}},a=()=>{let e=i(),t=new TextDecoder().decode(n.subarray(r,r+e));return r+=e,t},o={memorySize:0,memoryAlign:0,tableSize:0,tableAlign:0,needed:[],runtimePath:[]};for(;r<n.length;){let e=n[r++],t=i(),s=r+t;if(e===1)o.memorySize=i(),o.memoryAlign=i(),o.tableSize=i(),o.tableAlign=i();else if(e===2)for(let e=i();e>0;e--)o.needed.push(a());else if(e===5)for(let e=i();e>0;e--)o.runtimePath.push(a());r=s}return o}var f=class extends Error{code;constructor(e){super(e),this.code=e}},p=class{fs;path;data;length=0;dirty=!1;orphaned=!1;opens=0;constructor(e,t,n){this.fs=e,this.path=t,n&&(this.data=new Uint8Array,this.dirty=!0)}load(){return this.data||(this.data=this.fs.readFile(this.path),this.length=this.data.length),this.data}size(){return this.load(),this.length}pread(e,t){let n=this.load(),r=Math.max(0,Math.min(e,this.length-t));return n.subarray(t,t+r)}pwrite(e,t){this.load();let n=t+e.length;this.ensure(n);let r=this.data;return t>this.length&&r.fill(0,this.length,t),r.set(e,t),this.length=Math.max(this.length,n),this.dirty=!0,e.length}truncate(e){this.load(),this.ensure(e),e>this.length&&this.data.fill(0,this.length,e),this.length=e,this.dirty=!0}ensure(e){let t=this.data;if(t.length>=e)return;let n=new Uint8Array(Math.max(e,t.length*2,4096));n.set(t.subarray(0,this.length)),this.data=n}orphan(){this.orphaned=!0}isOrphan(){return this.orphaned}contents(){return this.load().slice(0,this.length)}flush(){this.orphaned||!this.dirty||!this.data||(this.fs.writeFile(this.path,this.data.slice(0,this.length)),this.dirty=!1)}},m=class{buffer;readable;writable;append;offset=0;refs=1;constructor(e,t,n,r){this.buffer=e,this.readable=t,this.writable=n,this.append=r}get path(){return this.buffer.path}size(){return this.buffer.size()}pread(e,t){return this.buffer.pread(e,t)}read(e){let t=this.buffer.pread(e,this.offset);return this.offset+=t.length,t}pwrite(e,t){return this.buffer.pwrite(e,t)}write(e){this.append&&(this.offset=this.buffer.size());let t=this.buffer.pwrite(e,this.offset);return this.offset+=t,t}truncate(e){this.buffer.truncate(e)}flush(){this.buffer.flush()}};function h(e){let t=[];for(let n of e.split(`/`))n!==``&&n!==`.`&&(n===`..`?t.pop():t.push(n));return`/${t.join(`/`)}`}function g(e,t){return h(t.startsWith(`/`)?t:`${e}/${t}`)}function _(e){let t=14695981039346656037n;for(let n=0;n<e.length;n++)t^=BigInt(e.charCodeAt(n)),t=t*1099511628211n&18446744073709551615n;return t}function ee(e){let t=new Map,n=new Map,r=(e,t,n)=>{let r=e.get(t);if(r===void 0){try{r=n()}catch(e){r=e}e.set(t,r)}if(r instanceof Error)throw r;return r},i=()=>{t.clear(),n.clear()},a=e=>{try{return e()}finally{i()}};return{readFile:t=>e.readFile(t),readdir:t=>e.readdir(t),...e.readdirStat?{readdirStat:r=>{let i=e.readdirStat(r),a=r===`/`?``:r;for(let[e,r]of i)r&&(n.set(`${a}/${e}`,r),r.isSymbolicLink||t.set(`${a}/${e}`,r));return i}}:{},readlink:t=>e.readlink(t),stat:n=>r(t,n,()=>e.stat(n)),lstat:t=>r(n,t,()=>e.lstat(t)),exists:n=>{try{return r(t,n,()=>e.stat(n)),!0}catch{return!1}},writeFile:(t,n)=>a(()=>e.writeFile(t,n)),mkdir:t=>a(()=>e.mkdir(t)),rm:t=>a(()=>e.rm(t)),rename:(t,n)=>a(()=>e.rename(t,n)),unlink:t=>a(()=>e.unlink(t)),rmdir:t=>a(()=>e.rmdir(t)),symlink:(t,n)=>a(()=>e.symlink(t,n)),chmod:(t,n)=>a(()=>e.chmod(t,n)),utimes:(t,n,r)=>a(()=>e.utimes(t,n,r)),invalidate:i}}const v={SUCCESS:0,"2BIG":1,ACCES:2,ADDRINUSE:3,ADDRNOTAVAIL:4,AFNOSUPPORT:5,AGAIN:6,ALREADY:7,BADF:8,BUSY:10,CHILD:12,CONNREFUSED:14,CONNRESET:15,EXIST:20,FAULT:21,FBIG:22,INPROGRESS:26,INTR:27,INVAL:28,IO:29,ISCONN:30,ISDIR:31,LOOP:32,MFILE:33,NAMETOOLONG:37,NETUNREACH:40,NOENT:44,NOEXEC:45,NOMEM:48,NOSPC:51,NOSYS:52,NOTCONN:53,NOTDIR:54,NOTEMPTY:55,NOTSOCK:57,NOTSUP:58,NOTTY:59,NXIO:60,PERM:63,PIPE:64,PROTONOSUPPORT:66,RANGE:68,ROFS:69,SPIPE:70,SRCH:71,TIMEDOUT:73,XDEV:75,NOTCAPABLE:76};function y(e){if(!e)return v.IO;let t=e.startsWith(`E`)?e.slice(1):e;return t===`OPNOTSUPP`?v.NOTSUP:t===`WOULDBLOCK`?v.AGAIN:v[t]??v.IO}const b={UNKNOWN:0,BLOCK_DEVICE:1,CHARACTER_DEVICE:2,DIRECTORY:3,REGULAR_FILE:4,SOCKET_DGRAM:5,SOCKET_STREAM:6,SYMBOLIC_LINK:7},x={FD_DATASYNC:1n<<0n,FD_READ:1n<<1n,FD_SEEK:1n<<2n,FD_FDSTAT_SET_FLAGS:1n<<3n,FD_SYNC:1n<<4n,FD_TELL:1n<<5n,FD_WRITE:1n<<6n,ALL:(1n<<30n)-1n},S={CREAT:1,DIRECTORY:2,EXCL:4,TRUNC:8},C={APPEND:1,DSYNC:2,NONBLOCK:4,RSYNC:8,SYNC:16},w={SET:0,CUR:1,END:2},T={REALTIME:0,MONOTONIC:1,PROCESS_CPUTIME:2,THREAD_CPUTIME:3},E={ATIM:1,ATIM_NOW:2,MTIM:4,MTIM_NOW:8},D={CLOCK:0,FD_READ:1,FD_WRITE:2},O={PEEK:1,WAITALL:2},k={RD:1,WR:2},A={FILESTAT:64,FDSTAT:24,DIRENT:24,SUBSCRIPTION:48,EVENT:32},j=Object.fromEntries(Array.from({length:30},(e,t)=>[t+1,t+1<16?t+1:t+2])),M=2048,N=1024,te={"/dev/null":`null`,"/dev/zero":`zero`,"/dev/urandom":`urandom`,"/dev/random":`urandom`};function ne(e){let t=/^\/dev\/(?:(stdin)|(stdout)|(stderr)|fd\/(\d+))$/.exec(e);if(t)return t[1]?0:t[2]?1:t[3]?2:Number(t[4])}function re(e){return te[e]}function P(e,t){return e===t||e.startsWith(t===`/`?`/`:`${t}/`)}var ie=class{kernel;fs;table=new Map;buffers=new Map;constructor(e,t){this.kernel=e,this.fs=t}setup(e,t){for(let e of[0,1,2])this.table.set(e,F());let n=this.preopens(e),r=3+n.length;for(let{fd:e,kind:n,flags:i}of t){let t=e;e<r&&(t=this.kernel.call({op:`fd-dup`,fd:e,min:r}),this.kernel.sys.close(e));let a=!!((i??0)&M);this.table.set(t,{...F(),nonblock:a,...n?{kind:n}:{}})}n.forEach((e,t)=>{this.kernel.call({op:`fd-reserve`,fd:3+t,meta:L(e)}),this.table.set(3+t,e)})}preopens(e){let t=[{type:`dir`,path:h(e),preopen:`.`}],n=[];try{n=this.fs.readdir(`/`)}catch{return t}for(let e of[...new Set([...n,`dev`])].sort()){let n=`/${e}`;if(n===`/dev`){t.push({type:`dir`,path:n,preopen:n});continue}try{this.fs.stat(n).isDirectory&&t.push({type:`dir`,path:n,preopen:n})}catch{}}return t}find(e){return this.shared?(this.sync(),this.table.get(e)??this.fetch(e)):this.table.get(e)}shared;seen=0;get isShared(){return this.shared!==void 0}share(e,t){if(t)this.table.clear(),this.cloexec.clear();else{this.promoteFiles();for(let e of this.cloexec)this.kernel.call({op:`fd-cloexec`,fd:e,on:!0});for(let[e,t]of this.table)t.type===`kernel`&&(t.nonblock||t.append)&&this.publishFlags(e,t)}this.shared=e,this.seen=Atomics.load(e,I)}sync(){let e=Atomics.load(this.shared,I);e!==this.seen&&(this.table.clear(),this.cloexec.clear(),this.seen=e)}bump(){if(!this.shared)return;let e=Atomics.add(this.shared,I,1)+1;e-1===this.seen&&(this.seen=e)}fetch(e){let t;try{t=this.kernel.call({op:`fd-info`,fd:e})}catch{return}let n=ae(t);if(n)return this.table.set(e,n),t.cloexec&&this.cloexec.add(e),n}listed(){let e=[];for(let t of this.kernel.call({op:`fd-list`})){let n=ae(t);n&&e.push([t.fd,n,t.cloexec===!0])}return e}publishFlags(e,t){let n=(t.nonblock?M:0)|(t.append?N:0);this.kernel.call({op:`fd-setfl`,fd:e,flags:n})}setFlags(e,t,n){let r=this.get(e);r.type===`kernel`?(r.nonblock=t,r.append=n,this.shared&&(this.publishFlags(e,r),this.bump())):r.type===`file`&&(r.file.append=n)}setCloexec(e,t){this.get(e),t?this.cloexec.add(e):this.cloexec.delete(e),this.shared&&(this.kernel.call({op:`fd-cloexec`,fd:e,on:t}),this.bump())}cwd(){let e=this.find(3);return e?.type===`dir`&&e.preopen===`.`?e.path:void 0}sockets(){return[...this.table].filter(([,e])=>e.type===`kernel`&&e.kind===`socket`).map(([e])=>e).sort((e,t)=>e-t)}adopt(e,t,n){this.table.set(e,{type:`kernel`,kind:t,nonblock:n,append:!1}),this.shared&&n&&this.publishFlags(e,{nonblock:n,append:!1}),this.bump()}get(e){let t=this.find(e);if(!t)throw new f(`EBADF`);return t}preopen(e){let t=this.find(e);if(t?.type!==`dir`||t.preopen===void 0)throw new f(`EBADF`);return t}dir(e){let t=this.get(e);if(t.type!==`dir`)throw new f(`ENOTDIR`);return t}entries(){return this.table.values()}install(e,t=3){let n=L(e),r=this.kernel.call({op:`fd-reserve`,...t>3?{min:t}:{},...n?{meta:n}:{}});return this.table.set(r,e),this.bump(),r}cloexec=new Set;implicitCloexec=!1;dup(e,t,n){let r=this.get(e),i;return r.type===`kernel`?(i=this.kernel.call({op:`fd-dup`,fd:e,min:Math.max(3,t)}),this.table.set(i,{...r})):(r.type===`file`&&r.file.refs++,i=this.install(r.type===`file`?r:{...r},t)),n&&this.setCloexec(i,!0),this.bump(),i}pipe(){let[e,t]=this.kernel.sys.pipe();return this.table.set(e,{type:`kernel`,kind:`stream`,nonblock:!1,append:!1}),this.table.set(t,{type:`kernel`,kind:`stream`,nonblock:!1,append:!1}),this.bump(),[e,t]}chdir(e){let t=this.find(3);t?.type===`dir`&&t.preopen===`.`&&(t.path=e,this.kernel.call({op:`fd-meta`,fd:3,meta:{dir:e,preopen:`.`}}),this.bump())}promoteFiles(){let e=new Map;for(let[t,n]of[...this.table]){if(n.type!==`file`)continue;let r=e.get(n.file);if(r!==void 0)this.kernel.call({op:`fd-promote`,fd:t,share:r});else{let r=n.file;this.kernel.call({op:`fd-promote`,fd:t,path:r.path,flags:(r.writable?r.readable?2:1:0)|(r.append?N:0),position:r.offset,contents:r.buffer.contents(),...r.buffer.isOrphan()?{orphan:!0}:{}}),e.set(r,t)}this.table.set(t,{type:`kernel`,kind:`file`,nonblock:!1,append:n.file.append})}for(let t of e.keys())--t.buffer.opens<=0&&this.buffers.delete(t.path)}snapshot(){let e=[];if(this.shared)return e;for(let[t,n]of this.table)n.type===`kernel`?e.push({fd:t,type:`kernel`,nonblock:n.nonblock,append:n.append}):n.type===`dir`?e.push({fd:t,type:`dir`,path:n.path,...n.preopen?{preopen:n.preopen}:{}}):n.type===`device`&&e.push({fd:t,type:`device`,device:n.device});return e}restore(e,t){this.table.clear();for(let t of e)t.type===`kernel`?this.table.set(t.fd,{type:`kernel`,nonblock:t.nonblock,append:t.append}):t.type===`dir`?this.table.set(t.fd,{type:`dir`,path:t.path,...t.preopen?{preopen:t.preopen}:{}}):this.table.set(t.fd,{type:`device`,device:t.device});for(let e of t)this.cloexec.add(e)}inheritable(){let e=new Map,t=this.shared?this.listed():[...this.table].map(([e,t])=>[e,t,this.cloexec.has(e)]);for(let[n,r,i]of t)r.type!==`kernel`||i||this.implicitCloexec&&n>2||e.set(n,n);return e}close(e){let t=this.get(e);this.table.delete(e),this.cloexec.delete(e),this.kernel.sys.close(e),this.release(t),this.bump()}renumber(e,t,n=!1){let r=this.get(e),i=n?this.find(t):this.get(t);e!==t&&(this.kernel.call({op:`fd-renumber`,from:e,to:t,...n?{keep:n}:{}}),this.cloexec.delete(t),n?(r.type===`file`&&r.file.refs++,this.table.set(t,r.type===`file`?r:{...r})):(this.table.delete(e),this.table.set(t,r),this.cloexec.delete(e)&&this.cloexec.add(t)),i&&this.release(i),this.bump())}release(e){if(e.type!==`file`||--e.file.refs>0)return;let{buffer:t}=e.file;t.flush(),--t.opens===0&&this.buffers.get(t.path)===t&&this.buffers.delete(t.path)}kind(e,t){if(!t.kind){let n=this.kernel.call({op:`fd-info`,fd:e});t.kind=n.kind??(n.tty?`tty`:`stream`)}return t.kind}flushAll(){for(let e of this.buffers.values())e.flush()}flushPath(e){for(let[t,n]of this.buffers)P(t,e)&&n.flush();this.shared&&this.kernel.call({op:`fd-path-flush`,path:e})}unlinking(e){this.buffers.get(e)?.load(),this.shared&&this.kernel.call({op:`fd-path-unlinking`,path:e})}unlinked(e){this.shared&&this.kernel.call({op:`fd-path-unlinked`,path:e});let t=this.buffers.get(e);t&&(t.orphan(),this.buffers.delete(e))}renamed(e,t){if(e===t)return;this.shared&&this.kernel.call({op:`fd-path-renamed`,from:e,to:t});let n=[];for(let[r,i]of this.buffers)P(r,e)?n.push([r,i]):P(r,t)&&(i.orphan(),this.buffers.delete(r));for(let[r,i]of n)this.buffers.delete(r),i.path=t+r.slice(e.length),this.buffers.set(i.path,i)}resolve(e,t){return t.startsWith(`/`)?h(t):g(this.dir(e).path,t)}open(e,t,n,r){let i=re(e);if(i)return this.install({type:`device`,device:i});if(e===`/dev/tty`){let e=this.kernel.sys.openTty?.();if(e===void 0)throw new f(`ENXIO`);return this.table.set(e,{...F(),kind:`tty`}),this.bump(),e}let a=ne(e);if(a!==void 0)return this.reopen(a);let o=this.statOrMissing(e);if(o&&t&S.CREAT&&t&S.EXCL)throw new f(`EEXIST`);if(t&S.DIRECTORY&&!o?.isDirectory)throw new f(o?`ENOTDIR`:`ENOENT`);if(o?.isDirectory)return this.install({type:`dir`,path:e});if(!o&&!(t&S.CREAT))throw new f(`ENOENT`);return this.shared?this.kernelFile(e,o,t,n,r):this.install({type:`file`,file:this.file(e,o,t,n,r)})}file(e,t,n,r,i){let a=(r&x.FD_WRITE)!==0n||(n&(S.CREAT|S.TRUNC))!==0,o=(r&x.FD_READ)!==0n||!a,s=this.buffers.get(e);return s?n&S.TRUNC&&s.truncate(0):(t||this.fs.writeFile(e,new Uint8Array),s=new p(this.fs,e,!t||(n&S.TRUNC)!==0),this.buffers.set(e,s)),s.opens++,new m(s,o,a,(i&C.APPEND)!==0)}kernelFile(e,t,n,r,i){let a=(r&x.FD_WRITE)!==0n||(n&(S.CREAT|S.TRUNC))!==0,o=(r&x.FD_READ)!==0n||!a,s=(i&C.APPEND)!==0,c=(a?o?2:1:0)|(s?N:0);t||this.fs.writeFile(e,new Uint8Array);let l=!t||(n&S.TRUNC)!==0,u=this.kernel.sys.openVfs(e,c,0,l?{truncate:l}:{});return this.table.set(u,{type:`kernel`,kind:`file`,nonblock:!1,append:s}),s&&this.publishFlags(u,{nonblock:!1,append:s}),this.bump(),u}statOrMissing(e){try{return this.fs.stat(e)}catch(e){if(e.code===`ENOENT`)return;throw e}}reopen(e){let t=this.get(e);if(t.type===`kernel`){let n=this.kernel.call({op:`fd-dup`,fd:e});return this.table.set(n,{...t}),this.bump(),n}return t.type===`file`&&t.file.refs++,this.install(t.type===`file`?t:{...t})}};function F(){return{type:`kernel`,nonblock:!1,append:!1}}const I=2;function L(e){if(e.type===`dir`)return{dir:e.path,...e.preopen?{preopen:e.preopen}:{}};if(e.type===`device`)return{device:e.device}}function ae(e){if(e.meta&&`dir`in e.meta)return{type:`dir`,path:e.meta.dir,...e.meta.preopen?{preopen:e.meta.preopen}:{}};if(e.meta&&`device`in e.meta)return{type:`device`,device:e.meta.device};if(e.kind!==`held`)return{type:`kernel`,kind:e.kind,nonblock:!!((e.flags??0)&M),append:!!((e.flags??0)&N)}}const oe=new TextDecoder;var se=class{memory;bind(e){this.memory=e}buffer(){if(!this.memory)throw Error(`WASI: no memory bound`);return this.memory.buffer}view(){return new DataView(this.buffer())}bytes(e,t){return new Uint8Array(this.buffer(),e,t)}string(e,t){return oe.decode(this.bytes(e,t).slice())}cString(e){let t=new Uint8Array(this.buffer()),n=e;for(;n<t.length&&t[n]!==0;)n++;return oe.decode(t.slice(e,n))}size(){return this.buffer().byteLength}iovecs(e,t){let n=this.view(),r=[];for(let i=0;i<t;i++)r.push([n.getUint32(e+i*8,!0),n.getUint32(e+i*8+4,!0)]);return r}capacity(e,t){return this.iovecs(e,t).reduce((e,[,t])=>e+t,0)}gather(e,t){let n=this.iovecs(e,t);if(n.length===1)return this.bytes(n[0][0],n[0][1]).slice();let r=new Uint8Array(n.reduce((e,[,t])=>e+t,0)),i=0;for(let[e,t]of n)r.set(this.bytes(e,t),i),i+=t;return r}scatter(e,t,n){let r=0;for(let[i,a]of this.iovecs(e,t)){if(r>=n.length)break;let e=Math.min(a,n.length-r);this.bytes(i,e).set(n.subarray(r,r+e)),r+=e}return r}putStrings(e,t,n){let r=new TextEncoder,i=this.view(),a=n;e.forEach((e,n)=>{let o=r.encode(e);i.setUint32(t+n*4,a,!0),this.bytes(a,o.length).set(o),i.setUint8(a+o.length,0),a+=o.length+1})}putSizes(e,t,n){let r=new TextEncoder,i=this.view();i.setUint32(t,e.length,!0),i.setUint32(n,e.reduce((e,t)=>e+r.encode(t).length+1,0),!0)}};function ce(e,t,n,r){let i=e.view(),a=performance.now(),o=[];for(let e=0;e<n;e++){let n=t+e*A.SUBSCRIPTION,s=i.getUint8(n+8),c={userdata:i.getBigUint64(n,!0),type:s,fd:-1,deadline:1/0};if(s===D.CLOCK){let e=i.getUint32(n+16,!0),t=Number(i.getBigUint64(n+24,!0))/1e6;i.getUint16(n+40,!0)&1&&(t-=Number(r(e))/1e6),c.deadline=a+Math.max(0,t)}else c.fd=i.getUint32(n+16,!0);o.push(c)}return o}function le(e,t,n){let r=e.view();n.forEach((n,i)=>{let a=t+i*A.EVENT;e.bytes(a,A.EVENT).fill(0),r.setBigUint64(a,n.userdata,!0),r.setUint16(a+8,n.error,!0),r.setUint8(a+10,n.type),n.type!==D.CLOCK&&(r.setBigUint64(a+16,1n,!0),n.hangup&&r.setUint16(a+24,1,!0))})}function ue(e,t){let n=[],r=[],i=[];for(let a of t){if(a.type===D.CLOCK)continue;let t=e.find(a.fd);t?t.type===`kernel`?(a.type===D.FD_READ?r:i).push(a.fd):n.push({userdata:a.userdata,error:v.SUCCESS,type:a.type}):n.push({userdata:a.userdata,error:v.BADF,type:a.type})}return{events:n,read:r,write:i}}function de(e,t){return e.filter(e=>e.type===D.FD_READ&&t.read.includes(e.fd)||e.type===D.FD_WRITE&&t.write.includes(e.fd)).map(e=>({userdata:e.userdata,error:v.SUCCESS,type:e.type,hangup:t.hangup?.includes(e.fd)===!0}))}function fe(e,t,n,r,i){if(r===0)return v.INVAL;let{mem:a,kernel:o}=e,s=ce(a,t,r,e.now),{events:c,read:l,write:u}=ue(e.fds,s),d=!1;if(l.length>0||u.length>0||c.length===0){let t=Math.min(...s.map(e=>e.deadline)),n=-1;c.length>0?n=0:t!==1/0&&(n=Math.max(0,Math.ceil(t-performance.now())));let r;try{r=o.call({op:`fd-select`,read:l,write:u,timeoutMs:n})}catch(t){if(!e.interruptWakes||t.code!==`EINTR`)throw t;d=!0,r={read:[],write:[]}}c.push(...de(s,r))}let f=performance.now();for(let e of s)e.type===D.CLOCK&&(d||e.deadline<=f+.5)&&c.push({userdata:e.userdata,error:v.SUCCESS,type:e.type});return le(a,n,c),a.view().setUint32(i,c.length,!0),v.SUCCESS}var R=class extends Error{code;constructor(e){super(`exit ${e}`),this.code=e}};const z=1000000n,pe=BigInt(Math.round(performance.timeOrigin))*z,B=1048576;function V(e){return e?e.isSymbolicLink?b.SYMBOLIC_LINK:e.isDirectory?b.DIRECTORY:e.isFile?b.REGULAR_FILE:b.UNKNOWN:b.UNKNOWN}function H(e,t){return{filetype:V(t),size:BigInt(t.size??0),ino:t.ino===void 0?_(e):BigInt(t.ino),mtimeNs:BigInt(Math.round(t.mtimeMs??0))*z}}function me(e){switch(e){case`tty`:return{filetype:b.CHARACTER_DEVICE,seeks:!1};case`socket`:return{filetype:b.SOCKET_STREAM,seeks:!1};case`file`:return{filetype:b.REGULAR_FILE,seeks:!0};default:return{filetype:b.UNKNOWN,seeks:!1}}}var he=class{o;mem=new se;fds;started=performance.now();cache;listening;startCwd;interruptWakes=!1;onRaise;constructor(e){this.o=e,this.startCwd=e.cwd,this.fds=new ie(e.kernel,e.fs),e.shared?this.fds.share(e.shared,!0):e.forked?this.fds.restore(e.forked.fds,e.forked.cloexec):this.fds.setup(e.cwd,e.inherited??[]),this.listening=e.shared?[]:this.fds.sockets()}get cwd(){return this.fds.cwd()??this.startCwd}imports(){return this.cache??=U({...this.processImports(),...this.ioImports(),...this.statImports(),...this.pathImports(),poll_oneoff:(e,t,n,r)=>fe({mem:this.mem,fds:this.fds,kernel:this.o.kernel,now:e=>this.now(e),interruptWakes:this.interruptWakes},e,t,n,r),...this.socketImports()}),this.cache}now(e){return e===T.REALTIME?BigInt(Date.now())*z:e===T.MONOTONIC?pe+BigInt(Math.round(performance.now()*1e6)):BigInt(Math.round((performance.now()-this.started)*1e6))+1n}environ(){let e=this.listening.length>0?{SLICC_LISTEN_FDS:this.listening.join(` `)}:{},t={PWD:this.cwd,...this.o.env,...e};return Object.entries(t).map(([e,t])=>`${e}=${t}`)}processImports(){let{mem:e}=this;return{args_get:(t,n)=>void e.putStrings(this.o.args,t,n),args_sizes_get:(t,n)=>void e.putSizes(this.o.args,t,n),environ_get:(t,n)=>void e.putStrings(this.environ(),t,n),environ_sizes_get:(t,n)=>void e.putSizes(this.environ(),t,n),clock_res_get:(t,n)=>void e.view().setBigUint64(n,1000n,!0),clock_time_get:(t,n,r)=>void e.view().setBigUint64(r,this.now(t),!0),random_get:(t,n)=>{for(let r=0;r<n;r+=65536){let i=new Uint8Array(Math.min(65536,n-r));crypto.getRandomValues(i),e.bytes(t+r,i.length).set(i)}},sched_yield:()=>v.SUCCESS,proc_exit:e=>{throw new R(e)},proc_raise:e=>{let t=j[e];if(t===void 0)throw new f(`EINVAL`);this.onRaise?.(t)||this.o.kernel.call({op:`proc-kill`,pid:this.o.pid,sig:t})}}}ioImports(){let{mem:e,fds:t}=this;return{fd_write:(t,n,r,i)=>void e.view().setUint32(i,this.write(t,e.gather(n,r)),!0),fd_read:(t,n,r,i)=>{let a=this.read(t,e.capacity(n,r));e.view().setUint32(i,e.scatter(n,r,a),!0)},fd_pread:(t,n,r,i,a)=>{let o=this.positional(t,`read`).pread(e.capacity(n,r),Number(i));e.view().setUint32(a,e.scatter(n,r,o),!0)},fd_pwrite:(t,n,r,i,a)=>void e.view().setUint32(a,this.positional(t,`write`).pwrite(e.gather(n,r),Number(i)),!0),fd_seek:(t,n,r,i)=>void e.view().setBigUint64(i,BigInt(this.seek(t,Number(n),r)),!0),fd_tell:(t,n)=>void e.view().setBigUint64(n,BigInt(this.seek(t,0,w.CUR)),!0),fd_close:e=>void t.close(e),fd_renumber:(e,n)=>void t.renumber(e,n),fd_sync:e=>void this.sync(e),fd_datasync:e=>void this.sync(e),fd_advise:e=>void t.get(e),fd_allocate:(e,t,n)=>{let r=this.positional(e),i=Number(t+n);i>r.size()&&r.truncate(i)}}}statImports(){let{mem:e,fds:t}=this;return{fd_fdstat_get:(e,t)=>void this.fdstat(e,t),fd_fdstat_set_flags:(e,n)=>void t.setFlags(e,(n&C.NONBLOCK)!==0,(n&C.APPEND)!==0),fd_fdstat_set_rights:e=>void t.get(e),fd_filestat_get:(e,t)=>void this.writeFilestat(t,this.fdFilestat(e)),fd_filestat_set_size:(e,t)=>void this.positional(e).truncate(Number(t)),fd_filestat_set_times:(e,n,r,i)=>{let a=t.get(e);a.type===`file`?(a.file.flush(),this.setTimes(a.file.path,n,r,i)):a.type===`dir`&&this.setTimes(a.path,n,r,i)},fd_prestat_get:(n,r)=>{let i=new TextEncoder().encode(t.preopen(n).preopen);e.view().setUint8(r,0),e.view().setUint32(r+4,i.length,!0)},fd_prestat_dir_name:(n,r,i)=>{let a=new TextEncoder().encode(t.preopen(n).preopen);e.bytes(r,Math.min(i,a.length)).set(a.subarray(0,i))},fd_readdir:(e,t,n,r,i)=>void this.readdir(e,t,n,Number(r),i)}}pathImports(){let{mem:e,fds:t,o:n}=this,r=(n,r,i)=>t.resolve(n,e.string(r,i));return{path_open:(n,i,a,o,s,c,l,u,d)=>void e.view().setUint32(d,t.open(r(n,a,o),s,c,u),!0),path_filestat_get:(e,t,n,i,a)=>void this.writeFilestat(a,this.pathFilestat(r(e,n,i),t)),path_filestat_set_times:(e,n,i,a,o,s,c)=>{let l=r(e,i,a);t.flushPath(l),this.setTimes(l,o,s,c)},path_create_directory:(e,t,i)=>{let a=r(e,t,i);if(n.fs.exists(a))throw new f(`EEXIST`);n.fs.mkdir(a)},path_remove_directory:(e,t,i)=>void n.fs.rmdir(r(e,t,i)),path_unlink_file:(e,i,a)=>{let o=r(e,i,a);if(n.fs.lstat(o).isDirectory)throw new f(`EISDIR`);t.unlinking(o),n.fs.unlink(o),t.unlinked(o)},path_rename:(e,i,a,o,s,c)=>{let l=r(e,i,a),u=r(o,s,c);t.flushPath(l),n.fs.rename(l,u),t.renamed(l,u)},path_symlink:(t,i,a,o,s)=>void n.fs.symlink(e.string(t,i),r(a,o,s)),path_readlink:(t,i,a,o,s,c)=>{let l=new TextEncoder().encode(n.fs.readlink(r(t,i,a))),u=Math.min(s,l.length);e.bytes(o,u).set(l.subarray(0,u)),e.view().setUint32(c,u,!0)},path_link:()=>v.NOTSUP}}socket(e){let t=this.fds.get(e);if(t.type!==`kernel`||this.fds.kind(e,t)!==`socket`)throw new f(`ENOTSOCK`);return t}socketImports(){let{mem:e,fds:t,o:n}=this;return{sock_accept:(r,i,a)=>{let o=this.socket(r),s=n.kernel.call({op:`sock-accept`,fd:r,nonblock:o.nonblock});t.adopt(s.fd,`socket`,(i&C.NONBLOCK)!==0),e.view().setUint32(a,s.fd,!0)},sock_recv:(t,r,i,a,o,s)=>{let c=this.socket(t),l=(a&O.PEEK)!==0,u=e.capacity(r,i),d=(a&O.WAITALL)!==0&&!l?this.recvAll(t,u,c.nonblock):n.kernel.sys.read(t,Math.min(u,B),{nonblock:c.nonblock,peek:l});e.view().setUint32(o,e.scatter(r,i,d),!0),e.view().setUint16(s,0,!0)},sock_send:(t,r,i,a,o)=>{let s=this.socket(t),c=n.kernel.sys.write(t,e.gather(r,i),{nonblock:s.nonblock});e.view().setUint32(o,c,!0)},sock_shutdown:(e,t)=>{this.socket(e);let r=k.RD|k.WR;if(t===0||(t&~r)!==0)throw new f(`EINVAL`);n.kernel.call({op:`sock-shutdown`,fd:e,how:t===r?2:+(t===k.WR)})}}}recvAll(e,t,n){let r=[],i=0;for(;i<t;){let a;try{a=this.o.kernel.sys.read(e,Math.min(t-i,B),{nonblock:n})}catch(e){if(i===0)throw e;break}if(a.length===0)break;r.push(a),i+=a.length}let a=new Uint8Array(i),o=0;for(let e of r)a.set(e,o),o+=e.length;return a}file(e,t){let n=this.fds.get(e);if(n.type!==`file`)throw new f(n.type===`dir`?`EISDIR`:n.type===`kernel`?`ESPIPE`:`EINVAL`);if(t===`read`&&!n.file.readable||t===`write`&&!n.file.writable)throw new f(`EBADF`);return n.file}positional(e,t){let n=this.fds.get(e);if(n.type!==`kernel`||this.fds.kind(e,n)!==`file`)return this.file(e,t);let r=this.o.kernel;return{pread:(t,n)=>{if(!r.sys.pread)throw new f(`ESPIPE`);return r.sys.pread(e,Math.min(t,B),n)},pwrite:(t,n)=>r.call({op:`fd-pwrite`,fd:e,offset:n,body:t}),size:()=>this.kernelStat(e).size,truncate:t=>void r.call({op:`fd-resize`,fd:e,size:t})}}kernelStat(e){return this.o.kernel.call({op:`fd-vfs-stat`,fd:e})}write(e,t){let n=this.fds.get(e);if(n.type===`kernel`)try{return this.o.kernel.sys.write(e,t,{nonblock:n.nonblock})}catch(e){throw e.code===`EPIPE`?new R(141):e}return n.type===`device`?t.length:this.file(e,`write`).write(t)}read(e,t){let n=this.fds.get(e);if(n.type===`kernel`)return this.o.kernel.sys.read(e,Math.min(t,B),{nonblock:n.nonblock});if(n.type===`device`){if(n.device===`null`)return new Uint8Array;let e=new Uint8Array(Math.min(t,65536));return n.device===`zero`?e:crypto.getRandomValues(e)}return this.file(e,`read`).read(t)}seek(e,t,n){let r=this.fds.get(e);if(r.type===`kernel`){if(this.fds.kind(e,r)!==`file`)throw new f(`ESPIPE`);return this.o.kernel.sys.seek(e,t,n)}if(r.type===`device`)return 0;let i=this.file(e),a=n===w.SET?0:n===w.CUR?i.offset:i.size();if(n>w.END||a+t<0)throw new f(`EINVAL`);return i.offset=a+t,i.offset}sync(e){let t=this.fds.get(e);t.type===`file`?t.file.flush():t.type===`kernel`&&this.fds.kind(e,t)===`file`&&this.o.kernel.sys.flush(e)}fdstat(e,t){let n=this.fds.get(e),r=b.CHARACTER_DEVICE,i=!0,a=0;n.type===`kernel`?({filetype:r,seeks:i}=me(this.fds.kind(e,n)),n.nonblock&&(a|=C.NONBLOCK),n.append&&(a|=C.APPEND)):n.type===`file`?(r=b.REGULAR_FILE,n.file.append&&(a|=C.APPEND)):n.type===`dir`&&(r=b.DIRECTORY);let o=this.mem.view();o.setUint8(t,r),o.setUint16(t+2,a,!0);let s=i?x.ALL:x.ALL&~(x.FD_SEEK|x.FD_TELL);o.setBigUint64(t+8,s,!0),o.setBigUint64(t+16,x.ALL,!0)}writeFilestat(e,t){let n=this.mem.view();n.setBigUint64(e,1n,!0),n.setBigUint64(e+8,t.ino,!0),n.setUint8(e+16,t.filetype),n.setBigUint64(e+24,1n,!0),n.setBigUint64(e+32,t.size,!0),n.setBigUint64(e+40,t.mtimeNs,!0),n.setBigUint64(e+48,t.mtimeNs,!0),n.setBigUint64(e+56,t.mtimeNs,!0)}fdFilestat(e){let t=this.fds.get(e);if(t.type===`dir`)return H(t.path,this.o.fs.stat(t.path));if(t.type===`file`)return this.statOrphanable(t.file.path,t.file.size());let n=t.type===`kernel`?this.fds.kind(e,t):void 0;if(n===`file`){let t=this.kernelStat(e);if(t.path)return this.statOrphanable(t.path,t.size,t.orphan)}return{filetype:n?me(n).filetype:b.CHARACTER_DEVICE,size:0n,ino:BigInt(e+1),mtimeNs:0n}}statOrphanable(e,t,n=!1){let r;if(!n)try{r=this.o.fs.stat(e)}catch{}return{...H(e,r??{isFile:!0,isDirectory:!1,size:0}),size:BigInt(t)}}pathFilestat(e,t){return re(e)?{filetype:b.CHARACTER_DEVICE,size:0n,ino:_(e),mtimeNs:0n}:(this.fds.flushPath(e),H(e,t&1?this.o.fs.stat(e):this.o.fs.lstat(e)))}setTimes(e,t,n,r){let i=Date.now(),a,o=()=>a??=this.o.fs.stat(e).mtimeMs??i,s=(e,t,n)=>r&t?i:r&e?Number(n/z):o();this.o.fs.utimes(e,s(E.ATIM,E.ATIM_NOW,t),s(E.MTIM,E.MTIM_NOW,n))}readdir(e,t,n,r,i){let a=this.fds.dir(e);(r===0||!a.listing)&&(a.listing=this.list(a.path));let{names:o,stats:s}=a.listing,c=0;for(let e=r;e<o.length&&c<n;e++){let r=o[e],i=r===`.`?a.path:r===`..`?h(`${a.path}/..`):g(a.path,r);s.has(r)||s.set(r,this.lstatOrNull(i));let l=s.get(r)??null,u=ge(e+1,l?.ino===void 0?_(i):BigInt(l.ino),r,V(l)),d=Math.min(u.length,n-c);this.mem.bytes(t+c,d).set(u.subarray(0,d)),c+=d}this.mem.view().setUint32(i,c,!0)}list(e){let{fs:t}=this.o;if(!t.readdirStat)return{names:[`.`,`..`,...t.readdir(e)],stats:new Map};let n=t.readdirStat(e);return{names:[`.`,`..`,...n.map(([e])=>e)],stats:new Map(n)}}lstatOrNull(e){try{return this.o.fs.lstat(e)}catch{return null}}flushAll(){this.fds.flushAll()}};function ge(e,t,n,r){let i=new TextEncoder().encode(n),a=new Uint8Array(A.DIRENT+i.length),o=new DataView(a.buffer);return o.setBigUint64(0,BigInt(e),!0),o.setBigUint64(8,t,!0),o.setUint32(16,i.length,!0),o.setUint8(20,r),a.set(i,A.DIRENT),a}function U(e){let t={};for(let[n,r]of Object.entries(e))t[n]=(...e)=>{try{return r(...e)??v.SUCCESS}catch(e){if(e instanceof R)throw e;if(e instanceof f)return y(e.code);let t=e?.code;if(typeof t==`string`)return y(t);if(e instanceof RangeError)return v.FAULT;throw e}};return t}const _e=[c.HUP,c.INT,c.QUIT,c.USR1,c.USR2,c.ALRM,c.TERM].reduce((e,n)=>e|t(n),0);var ve=class{fallBack;exports;callback;uncaught=0;delivering;constructor(e){this.fallBack=e}bind(e){this.exports=e}register(e){typeof this.exports?.[e]==`function`&&(this.callback=e)}masks(){return this.handler()?{caught:_e&~this.uncaught,ignored:0,restart:0}:null}raise(e){let t=this.handler();if(!t)return;let n=this.delivering;this.delivering=e;try{t(e)}catch(t){if(!(t instanceof WebAssembly.RuntimeError))throw t;this.defaultAction(e)}finally{this.delivering=n}}raised(e){return e!==c.ABRT||this.delivering===void 0?!1:(this.defaultAction(this.delivering),!0)}defaultAction(e){this.uncaught|=t(e),this.fallBack(e)}handler(){let e=this.callback?this.exports?.[this.callback]:void 0;return typeof e==`function`?e:void 0}},ye=class{rows=new Map;phases=[];mark=performance.now();wrap(e,t){return Object.fromEntries(Object.entries(t).map(([n,r])=>{if(typeof r!=`function`)return[n,r];let i=r,a=`${e}.${n}`;return[n,(...e)=>this.time(a,()=>i.apply(t,e))]}))}time(e,t){let n=performance.now();try{return t()}finally{this.count(e,performance.now()-n)}}phase(e){let t=performance.now();this.phases.push([e,t-this.mark]),this.mark=t}count(e,t){let n=this.rows.get(e)??{n:0,ms:0,max:0};n.n++,n.ms+=t,n.max=Math.max(n.max,t),this.rows.set(e,n)}report(){let e=e=>e.toFixed(1).padStart(9),t=this.phases.map(([t,n])=>`${e(n)} ms ${t}`);t.push(`${`total ms`.padStart(12)} ${`calls`.padStart(7)} ${`max ms`.padStart(9)} call`);let n=[...this.rows].sort((e,t)=>t[1].ms-e[1].ms);for(let[r,i]of n)t.push(`${e(i.ms)} ${String(i.n).padStart(7)} ${e(i.max)} ${r}`);return`${t.join(`
2
- `)}\n`}},be=class extends Error{constructor(){super(`thread exit`)}};function xe(e){let t=Number.parseInt(e.SLICC_WASM_THREADS??``,10);return t>=1?Math.min(t,64):64}var Se=class{port;memory;cap;tid;ids;beforeSpawn;modules;received;constructor(e,t,n,r,i){this.port=e,this.memory=t,this.cap=n,this.tid=r,this.ids=new Int32Array(i??new SharedArrayBuffer(16)),i||Atomics.store(this.ids,0,1)}spawn(e){if(Atomics.add(this.ids,1,1)+1>=this.cap)return Atomics.sub(this.ids,1,1),-1;this.beforeSpawn?.();let t=Atomics.add(this.ids,0,1)+1,n=this.modules?.();return this.port.postMessage({type:r,thread:{tid:t,arg:e,memory:this.memory,ids:this.ids.buffer,...n?{modules:n}:{}}}),t}exited(){Atomics.sub(this.ids,1,1),this.port.postMessage({type:s})}known(e){return e>=1&&e<=Atomics.load(this.ids,0)}parallelism(){let e=globalThis.navigator?.hardwareConcurrency;return Math.max(1,Math.min(this.cap,e??this.cap))}};function Ce(e){let t=[];for(let[n,r]of Object.entries(e))if(!(!(r instanceof WebAssembly.Global)||typeof r.value!=`number`))try{let e=r.value;r.value=e,t.push([n,e])}catch{}return t}var we=class{mem;exports={};stackUpper=0;pending;answer=0;snapshots=new Map;nextSnapshot=1;constructor(e){this.mem=e}bind(e){this.exports=e;let t=this.exports.__stack_pointer;this.stackUpper=t instanceof WebAssembly.Global?t.value:0}get supported(){return typeof this.exports.asyncify_start_unwind==`function`}resume(){if(this.exports.asyncify_get_state?.()!==1)return!1;this.exports.asyncify_stop_unwind?.();let e=this.pending;if(this.pending=void 0,!e)throw Error(`WASIX: unwound with nothing to do`);return this.exports.asyncify_start_rewind?.(e()),!0}startChild(e){this.restoreGlobals(e.globals),this.answer=0,this.exports.asyncify_start_rewind?.(e.asyncifyData)}rewound(){if(this.exports.asyncify_get_state?.()===2)return this.exports.asyncify_stop_rewind?.(),this.answer}fork(e){let t=this.stackPointer(),n=Ce(this.exports);return this.unwind(r=>{this.answer=e(r,n,t)})}checkpoint(e,t){let n=this.nextSnapshot++,r=this.mem.view();r.setBigUint64(e,BigInt(t),!0),r.setBigUint64(e+8,BigInt(n),!0),r.setBigUint64(e+16,1372344599n,!0);let i=Ce(this.exports);return this.unwind(e=>{let t=this.mem.view().getUint32(e,!0);this.snapshots.set(n,{frames:this.mem.bytes(e+8,t-e-8).slice(),globals:i}),this.answer=0})}restore(e,t){let n=Number(this.mem.view().getBigUint64(e+8,!0)),r=this.snapshots.get(n);if(!r)throw Error(`WASIX: longjmp to an unknown setjmp (${n})`);return this.unwind(e=>{this.mem.bytes(e+8,r.frames.length).set(r.frames),this.mem.view().setUint32(e,e+8+r.frames.length,!0),this.restoreGlobals(r.globals),this.answer=Number(t)||1})}stackPointer(){let e=this.exports.__stack_pointer;return e instanceof WebAssembly.Global?e.value:0}dataPointer(){let e=this.exports.__data_end,t=e instanceof WebAssembly.Global?e.value:0;return t<this.stackUpper?t+15&-16:16}unwind(e){if(!this.supported)return v.NOSYS;let t=this.dataPointer(),n=this.mem.view();return n.setUint32(t,t+8,!0),n.setUint32(t+4,this.stackPointer()-16,!0),this.pending=()=>(e(t),t),this.exports.asyncify_start_unwind?.(t),v.SUCCESS}restoreGlobals(e){for(let[t,n]of e){let e=this.exports[t];e instanceof WebAssembly.Global&&(e.value=n)}}};const Te=65536,Ee=[`/lib`,`/usr/lib`,`/usr/local/lib`];function De(e,t){return e.replace(/\$(?:ORIGIN\b|\{ORIGIN\})/g,t)}var W=class extends Error{},Oe=class{memory;host;table;stackPointer;memoryBase;stackLow;stackHigh;cLongjmp;cppException;main;modules=new Map;byPath=new Map;mainGot=[];slots=new Map;nextHandle=1;publisher;constructor(e,t,n,r=!1){this.memory=e,this.host=n,this.memoryBase=Math.max(1,2**t.memoryAlign),this.stackLow=ke(this.memoryBase+t.memorySize,1024),this.stackHigh=this.stackLow+8388608,r||G(e,this.stackHigh),this.table=new WebAssembly.Table({element:`anyfunc`,initial:1+t.tableSize}),this.stackPointer=new WebAssembly.Global({value:`i32`,mutable:!0},r?0:this.stackHigh);let i=()=>new WebAssembly.Tag({parameters:[`i32`]});this.cLongjmp=i(),this.cppException=i()}mainImports(e){let t=e=>new WebAssembly.Global({value:`i32`,mutable:!1},e),n=e=>new WebAssembly.Global({value:`i32`,mutable:!0},e),r={memory:this.memory,__indirect_function_table:this.table,__stack_pointer:this.stackPointer,__memory_base:t(this.memoryBase),__table_base:t(1),__c_longjmp:this.cLongjmp,__cpp_exception:this.cppException},i={__stack_high:n(this.stackHigh),__stack_low:n(this.stackLow),__heap_base:n(this.stackHigh)},a={};this.mainGot=[];for(let t of WebAssembly.Module.imports(e))if(t.module===`env`&&t.kind===`function`&&!(t.name in r))r[t.name]=this.functionImport(t.name);else if(t.module===`GOT.func`||t.module===`GOT.mem`&&!(t.name in i)){let e=n(0);(t.module===`GOT.func`?a:i)[t.name]=e;let r=t.module;this.mainGot.push(()=>{e.value=r===`GOT.func`?this.slotOrNull(t.name):this.addressOrNull(t.name)})}return{env:r,"GOT.mem":i,"GOT.func":a}}bindMainGot(){for(let e of this.mainGot)e()}bindMain(e,t){this.main=e,t&&K(e,`__wasm_apply_data_relocs`)}open(e,t,n){return this.load(this.locate(e,t,n),t,n).handle}symbol(e,t){let n=e===0?this.find(t):this.findIn(this.module(e),t,new Set);if(!n)throw new W(`undefined symbol: ${t}`);let[r,i]=n;if(typeof i==`function`)return this.slot(i,r,t);if(i instanceof WebAssembly.Global)return this.baseOf(r)+i.value;throw new W(`${t} is neither a function nor data`)}invalid(e){return!this.modules.has(e)}cache;compiled(){let e={};for(let[t,n]of this.byPath)e[t]=n.module;return e}replay(e){if(e.kind===`load`){if(this.modules.has(e.handle))return;this.instantiate(e.path,this.moduleAt(e.path),e,!1),this.nextHandle=Math.max(this.nextHandle,e.handle+1);return}let t=e.handle===0?this.main?.exports[e.name]:this.module(e.handle).instance.exports[e.name];if(typeof t!=`function`)throw new W(`${e.name}: not a function`);Ae(this.table,e.index+1),this.table.set(e.index,t),this.slots.set(t,e.index)}moduleAt(e){let t=this.cache?.[e];if(t)return t;let n=this.host.read(e);if(!n)throw new W(`${e}: gone`);return new WebAssembly.Module(n)}module(e){let t=this.modules.get(e);if(!t)throw new W(`invalid handle ${e}`);return t}locate(e,t,n){if(e.includes(`/`))return e.startsWith(`/`)?h(e):h(`${t}/${e}`);for(let r of[...n.filter(Boolean),...Ee]){let n=h(`${r.startsWith(`/`)?``:`${t}/`}${r}/${e}`);if(this.byPath.has(n)||this.host.read(n))return n}throw new W(`${e}: not found`)}load(e,t,n){let r=this.byPath.get(e);if(r)return r;let i=this.host.read(e);if(!i)throw new W(`${e}: no such file`);let a;try{a=new WebAssembly.Module(i)}catch(t){throw new W(`${e}: not a wasm module (${t.message})`)}let o=d(a);if(!o)throw new W(`${e}: not a side module (no dylink.0)`);let s=e.slice(0,e.lastIndexOf(`/`))||`/`,c=[s,...n,...o.runtimePath.map(e=>De(e,s))],l=o.needed.map(e=>this.load(this.locate(e,t,c),t,n).handle),u=this.allocate(o.memorySize,2**o.memoryAlign),f=this.table.length,p={kind:`load`,handle:this.nextHandle++,path:e,memoryBase:u,tableBase:f},m=this.instantiate(e,a,p,!0);return m.needed.push(...l),this.publisher?.(p),m}instantiate(e,t,n,r){let i=d(t);Ae(this.table,n.tableBase+i.tableSize);let a=[],o={memory:this.memory,__indirect_function_table:this.table,__stack_pointer:this.stackPointer,__memory_base:new WebAssembly.Global({value:`i32`,mutable:!1},n.memoryBase),__table_base:new WebAssembly.Global({value:`i32`,mutable:!1},n.tableBase),__c_longjmp:this.cLongjmp,__cpp_exception:this.cppException},s={},c={},l={handle:n.handle,path:e,module:t,info:i,instance:void 0,memoryBase:n.memoryBase,tableBase:n.tableBase,needed:[]};for(let e of WebAssembly.Module.imports(t))if(e.module===`env`&&e.kind===`function`&&!(e.name in o))o[e.name]=this.functionImport(e.name);else if(e.module===`GOT.mem`){let t=new WebAssembly.Global({value:`i32`,mutable:!0},0);s[e.name]=t,a.push(()=>{t.value=this.addressOrNull(e.name)})}else if(e.module===`GOT.func`){let t=new WebAssembly.Global({value:`i32`,mutable:!0},0);c[e.name]=t,a.push(()=>{t.value=this.slotOrNull(e.name)})}let u={...this.host.hostImports(t),env:o,"GOT.mem":s,"GOT.func":c};l.instance=new WebAssembly.Instance(t,u),this.modules.set(n.handle,l),this.byPath.set(e,l);for(let e of a)e();return r?(K(l.instance,`__wasm_apply_data_relocs`),K(l.instance,`__wasm_call_ctors`)):K(l.instance,`__wasix_init_tls`),l}functionImport(e){let t=this.find(e);if(t&&typeof t[1]==`function`)return t[1];let n;return(...t)=>{if(!n){let t=this.find(e);if(!t||typeof t[1]!=`function`)throw new WebAssembly.RuntimeError(`unresolved symbol ${e}`);n=t[1]}return n(...t)}}addressOrNull(e){let t=this.find(e);return!t||!(t[1]instanceof WebAssembly.Global)?0:this.baseOf(t[0])+t[1].value}slotOrNull(e){let t=this.find(e);return!t||typeof t[1]!=`function`?0:this.slot(t[1],t[0],e)}find(e){let t=this.main?.exports[e];if(t!==void 0)return[0,t];for(let t of this.modules.values()){let n=t.instance?.exports[e];if(n!==void 0)return[t.handle,n]}}findIn(e,t,n){if(n.has(e.handle))return;n.add(e.handle);let r=e.instance.exports[t];if(r!==void 0)return[e.handle,r];for(let r of e.needed){let e=this.findIn(this.module(r),t,n);if(e)return e}}baseOf(e){return e===0?this.memoryBase:this.module(e).memoryBase}slot(e,t,n){let r=this.slots.get(e);if(r!==void 0)return r;let i=this.table.length;return this.table.grow(1),this.table.set(i,e),this.slots.set(e,i),this.publisher?.({kind:`slot`,index:i,handle:t,name:n}),i}allocate(e,t){if(e===0)return 0;let n=ke(this.memory.buffer.byteLength,Math.max(t,16));return G(this.memory,n+e),n}};function ke(e,t){return Math.ceil(e/t)*t}function G(e,t){let n=Math.ceil(t/Te)-e.buffer.byteLength/Te;n>0&&e.grow(n)}function Ae(e,t){e.length<t&&e.grow(t-e.length)}function K(e,t){let n=e.exports[t];typeof n==`function`&&n()}function je(e,t){return h(t.startsWith(`/`)?t:`${e}/${t}`)}const Me=Object.fromEntries(Object.entries(j).map(([e,t])=>[t,Number(e)]));var Ne=class{host;driver;constructor(e,t){this.host=e,this.driver=t}call(e){return this.host.o.kernel.call(e)}environment(){return{...this.host.o.env,PWD:this.host.cwd}}locate(e,t,n){if(e.includes(`/`))return e.startsWith(`/`)?e:h(`${this.host.cwd}/${e}`);if(!t)return e;for(let t of n.split(`:`)){if(!t)continue;let n=h(`${t.startsWith(`/`)?``:`${this.host.cwd}/`}${t}/${e}`);if(this.host.o.fs.exists(n))return n}return e}childFds(e){let{fds:t}=this.host;t.promoteFiles();let n=t.inheritable(),r=[],i=this.host.cwd;try{for(let a of e)if(a.cmd===`close`)n.delete(a.fd);else if(a.cmd===`dup2`){let e=n.get(a.srcFd)??(t.find(a.srcFd)?.type===`kernel`?a.srcFd:void 0);if(e===void 0)throw Object.assign(Error(`EBADF`),{code:`EBADF`});n.set(a.fd,e)}else if(a.cmd===`open`){let e=this.openFor(a,i);r.push(e),n.set(a.fd,e)}else i=a.cmd===`chdir`?je(i,a.path):t.dir(a.fd).path}catch(e){for(let e of r)this.host.o.kernel.sys.close(e);throw e}return{stdio:[0,1,2].map(e=>{let t=n.get(e);return t===void 0?{none:!0}:{fd:t}}),inherit:[...n].filter(([e])=>e>2).map(([e,t])=>({fd:e,kernel:t})),cwd:i,opened:r}}openFor(e,t){let n=je(t,e.path);if(!this.host.o.fs.exists(n)&&!(e.oflags&1))throw Object.assign(Error(`ENOENT`),{code:`ENOENT`});let r=(e.rightsWrite?2:0)|(e.append?1024:0);return this.host.o.kernel.sys.openVfs(n,e.rightsWrite?r||1:0,0,{...e.oflags&8?{contents:new Uint8Array}:{}})}spawn(e){let{stdio:t,inherit:n,cwd:r,opened:i}=this.childFds(e.ops??[]);try{return this.call({op:`proc-spawn`,file:this.locate(e.name,e.search,e.path),argv:e.argv.length>0?e.argv:[e.name],env:e.env??this.environment(),cwd:r,stdio:t,inherit:n})}finally{for(let e of i)this.host.o.kernel.sys.close(e)}}exec(e){let t=this.spawn(e),[,n]=this.call({op:`proc-exec`,pid:t}),r=n&127;throw new R(r?128+r:n>>8&255)}join(e,t,n){let r=this.host.mem.view(),i=r.getUint8(e)===1?r.getUint32(e+4,!0):-1;this.host.mem.bytes(n,6).fill(0);let[a,o]=this.call({op:`proc-wait`,pid:i,nohang:!!(t&1)});if(a===0)return;r.setUint8(e,1),r.setUint32(e+4,a,!0);let s=o&127;s?(r.setUint8(n,2),r.setUint8(n+4,Me[s]??s)):(r.setUint8(n,1),r.setUint16(n+2,o>>8&255,!0))}fork(e){let t=this.driver.rewound();if(t!==void 0){this.host.mem.view().setUint32(e,t,!0);return}return this.driver.fork((e,t,n)=>{let{fds:r}=this.host;r.promoteFiles();let i=this.host.mem.bytes(0,this.host.mem.size()).slice(),a={asyncifyData:e,globals:t,fds:r.snapshot(),cloexec:[...r.cloexec],cwd:this.host.cwd,...r.isShared?{shared:!0}:{}};return this.call({op:`proc-fork`,state:{memory:i,currData:0,forkSp:n,callStackNames:[],ppid:this.host.o.pid,wasi:a}})})}};const Pe={1:[1,15],2:[1,2],3:[6,1],4:[1,5],6:[1,6],10:[1,30],11:[1,4],12:[1,9],14:[1,10],15:[1,8],16:[1,7],25:[1,3]};function Fe(e,t){let n=e.getUint8(t);if(n===3){let n=t+2;for(;n<t+110&&e.getUint8(n)!==0;)n++;return{family:`unix`,path:new TextDecoder().decode(new Uint8Array(e.buffer,t+2,n-t-2).slice())}}let r=e.getUint16(t+2,!0);if(n===1)return{family:`inet`,host:[0,1,2,3].map(n=>e.getUint8(t+4+n)).join(`.`),port:r};if(n===2)return{family:`inet`,host:new Uint8Array(e.buffer,t+4,16).every(e=>e===0)?`0.0.0.0`:`127.0.0.1`,port:r};throw new f(`EAFNOSUPPORT`)}function q(e,t,n){if(new Uint8Array(e.buffer,t,110).fill(0),n){if(n.family===`unix`){e.setUint8(t,3),new Uint8Array(e.buffer,t+2,107).set(new TextEncoder().encode(n.path).subarray(0,107));return}e.setUint8(t,1),e.setUint16(t+2,n.port,!0),(Ie(n.host)??[127,0,0,1]).forEach((n,r)=>void e.setUint8(t+4+r,n))}}function Ie(e){let t=e.split(`.`);if(t.length!==4)return;let n=t.map(e=>/^\d{1,3}$/.test(e)?Number(e):NaN);return n.every(e=>e>=0&&e<=255)?n:void 0}function Le(e){return e===`localhost`||e===`localhost.localdomain`||e===`ip6-localhost`||e===`::1`?[127,0,0,1]:Ie(e)}function Re(e,t){let{mem:n,fds:r,o:i}=e,a=e=>i.kernel.call(e),o=e=>{let t=r.get(e);if(t.type!==`kernel`||r.kind(e,t)!==`socket`)throw new f(`ENOTSOCK`);return t},s=e=>Pe[e];return{sock_open:(e,t,i,o)=>{if(e!==1&&e!==2&&e!==3)throw new f(`EAFNOSUPPORT`);if(t!==1)throw new f(`EPROTONOSUPPORT`);let s=a({op:`sock-open`,domain:e===3?`unix`:`inet`});r.adopt(s,`socket`,!1),n.view().setUint32(o,s,!0)},sock_bind:(e,t)=>{o(e),a({op:`sock-bind`,fd:e,addr:Fe(n.view(),t)})},sock_listen:(e,t)=>{o(e),a({op:`sock-listen`,fd:e,backlog:t})},sock_connect:(e,t)=>{let r=o(e);a({op:`sock-connect`,fd:e,addr:Fe(n.view(),t),nonblock:r.nonblock})},sock_accept_v2:(e,t,i,s)=>{let c=o(e),l=a({op:`sock-accept`,fd:e,nonblock:c.nonblock});r.adopt(l.fd,`socket`,(t&C.NONBLOCK)!==0),n.view().setUint32(i,l.fd,!0),q(n.view(),s,l.peer)},sock_addr_local:(e,t)=>{o(e),q(n.view(),t,a({op:`sock-name`,fd:e,peer:!1}))},sock_addr_peer:(e,t)=>{o(e),q(n.view(),t,a({op:`sock-name`,fd:e,peer:!0}))},sock_recv_from:(e,r,i,o,s,c,l)=>{let u=t.sock_recv(e,r,i,o,s,c);return u===v.SUCCESS?(q(n.view(),l,a({op:`sock-name`,fd:e,peer:!0})),v.SUCCESS):u},sock_send_to:(e,n,r,i,a,o)=>t.sock_send(e,n,r,i,o),sock_status:(e,t)=>{o(e),n.view().setUint8(t,1)},sock_get_opt_flag:(e,t,r)=>{o(e);let i=s(t),c=i?a({op:`sock-getopt`,fd:e,level:i[0],name:i[1]}):0;n.view().setUint8(r,+!!c)},sock_set_opt_flag:(e,t,n)=>{o(e);let r=s(t);r&&a({op:`sock-setopt`,fd:e,level:r[0],name:r[1],value:+!!n})},sock_get_opt_size:(e,t,r)=>{o(e);let i=s(t),c=i?a({op:`sock-getopt`,fd:e,level:i[0],name:i[1]}):0;n.view().setBigUint64(r,BigInt(c),!0)},sock_set_opt_size:(e,t,n)=>{o(e);let r=s(t);r&&a({op:`sock-setopt`,fd:e,level:r[0],name:r[1],value:Number(n)})},sock_get_opt_time:(e,t,r)=>{o(e),new Uint8Array(n.view().buffer,r,16).fill(0)},sock_set_opt_time:e=>void o(e),sock_send_file:()=>v.NOSYS,resolve:(e,t,r,i,a,o)=>{let s=Le(n.string(e,t));if(!s)throw new f(`ENOENT`);if(a<1)throw new f(`EINVAL`);let c=n.view();new Uint8Array(c.buffer,i,18).fill(0),c.setUint8(i,1),s.forEach((e,t)=>void c.setUint8(i+2+t,e)),c.setUint32(o,1,!0)}}}const ze=[`close`,`dup2`,`open`,`chdir`,`fchdir`],Be=1n<<6n;var Ve=class e{host;driver;process;threads;linker;signals;constructor(e,t,n){this.host=e,this.driver=t,this.process=new Ne(e,t),n&&!WebAssembly.Module.imports(n).some(e=>e.name===`fd_fdflags_set`)&&(e.fds.implicitCloexec=!0,e.interruptWakes=!0)}get mem(){return this.host.mem}str(e,t){let n=this.mem.string(e,t);return n.endsWith(`\0`)?n.slice(0,-1):n}cStrings(e,t){let n=this.mem.view();return Array.from({length:t},(t,r)=>this.mem.cString(n.getUint32(e+r*4,!0)))}execOrExit(t,n,r,i,a,o){try{return this.process.exec({name:this.str(t,n),argv:e.lines(this.str(r,i)),env:e.env(a===0?void 0:e.lines(this.str(a,o))),search:!1,path:``})}catch(e){if(e instanceof R)throw e;let t=e instanceof f?e.code:e?.code;throw new R(y(typeof t==`string`?t:`ENOEXEC`))}}static env(e){if(!e)return;let t={};for(let n of e){let e=n.indexOf(`=`);e>0&&(t[n.slice(0,e)]=n.slice(e+1))}return t}static lines(e){return e.split(`
1
+ import{a as e,c as t,d as n,i as r,l as i,n as a,o,r as s,s as c,t as l,u}from"./process-worker-BKgTk6Wd.js";function d(e){let[t]=WebAssembly.Module.customSections(e,`dylink.0`);if(!t)return;let n=new Uint8Array(t),r=0,i=()=>{let e=0,t=0;for(;;){let i=n[r++];if(e+=(i&127)*2**t,!(i&128))return e;t+=7}},a=()=>{let e=i(),t=new TextDecoder().decode(n.subarray(r,r+e));return r+=e,t},o={memorySize:0,memoryAlign:0,tableSize:0,tableAlign:0,needed:[],runtimePath:[]};for(;r<n.length;){let e=n[r++],t=i(),s=r+t;if(e===1)o.memorySize=i(),o.memoryAlign=i(),o.tableSize=i(),o.tableAlign=i();else if(e===2)for(let e=i();e>0;e--)o.needed.push(a());else if(e===5)for(let e=i();e>0;e--)o.runtimePath.push(a());r=s}return o}var f=class extends Error{code;constructor(e){super(e),this.code=e}},p=class{fs;path;data;length=0;dirty=!1;orphaned=!1;opens=0;constructor(e,t,n){this.fs=e,this.path=t,n&&(this.data=new Uint8Array,this.dirty=!0)}load(){return this.data||(this.data=this.fs.readFile(this.path),this.length=this.data.length),this.data}size(){return this.load(),this.length}pread(e,t){let n=this.load(),r=Math.max(0,Math.min(e,this.length-t));return n.subarray(t,t+r)}pwrite(e,t){this.load();let n=t+e.length;this.ensure(n);let r=this.data;return t>this.length&&r.fill(0,this.length,t),r.set(e,t),this.length=Math.max(this.length,n),this.dirty=!0,e.length}truncate(e){this.load(),this.ensure(e),e>this.length&&this.data.fill(0,this.length,e),this.length=e,this.dirty=!0}ensure(e){let t=this.data;if(t.length>=e)return;let n=new Uint8Array(Math.max(e,t.length*2,4096));n.set(t.subarray(0,this.length)),this.data=n}orphan(){this.orphaned=!0}isOrphan(){return this.orphaned}contents(){return this.load().slice(0,this.length)}flush(){this.orphaned||!this.dirty||!this.data||(this.fs.writeFile(this.path,this.data.slice(0,this.length)),this.dirty=!1)}},m=class{buffer;readable;writable;append;offset=0;refs=1;constructor(e,t,n,r){this.buffer=e,this.readable=t,this.writable=n,this.append=r}get path(){return this.buffer.path}size(){return this.buffer.size()}pread(e,t){return this.buffer.pread(e,t)}read(e){let t=this.buffer.pread(e,this.offset);return this.offset+=t.length,t}pwrite(e,t){return this.buffer.pwrite(e,t)}write(e){this.append&&(this.offset=this.buffer.size());let t=this.buffer.pwrite(e,this.offset);return this.offset+=t,t}truncate(e){this.buffer.truncate(e)}flush(){this.buffer.flush()}};function h(e){let t=[];for(let n of e.split(`/`))n!==``&&n!==`.`&&(n===`..`?t.pop():t.push(n));return`/${t.join(`/`)}`}function g(e,t){return h(t.startsWith(`/`)?t:`${e}/${t}`)}function _(e){let t=14695981039346656037n;for(let n=0;n<e.length;n++)t^=BigInt(e.charCodeAt(n)),t=t*1099511628211n&18446744073709551615n;return t}function ee(e){let t=new Map,n=new Map,r=(e,t,n)=>{let r=e.get(t);if(r===void 0){try{r=n()}catch(e){r=e}e.set(t,r)}if(r instanceof Error)throw r;return r},i=()=>{t.clear(),n.clear()},a=e=>{try{return e()}finally{i()}};return{readFile:t=>e.readFile(t),readdir:t=>e.readdir(t),...e.readdirStat?{readdirStat:r=>{let i=e.readdirStat(r),a=r===`/`?``:r;for(let[e,r]of i)r&&(n.set(`${a}/${e}`,r),r.isSymbolicLink||t.set(`${a}/${e}`,r));return i}}:{},readlink:t=>e.readlink(t),stat:n=>r(t,n,()=>e.stat(n)),lstat:t=>r(n,t,()=>e.lstat(t)),exists:n=>{try{return r(t,n,()=>e.stat(n)),!0}catch{return!1}},writeFile:(t,n)=>a(()=>e.writeFile(t,n)),mkdir:t=>a(()=>e.mkdir(t)),rm:t=>a(()=>e.rm(t)),rename:(t,n)=>a(()=>e.rename(t,n)),unlink:t=>a(()=>e.unlink(t)),rmdir:t=>a(()=>e.rmdir(t)),symlink:(t,n)=>a(()=>e.symlink(t,n)),chmod:(t,n)=>a(()=>e.chmod(t,n)),utimes:(t,n,r)=>a(()=>e.utimes(t,n,r)),invalidate:i}}const v={SUCCESS:0,"2BIG":1,ACCES:2,ADDRINUSE:3,ADDRNOTAVAIL:4,AFNOSUPPORT:5,AGAIN:6,ALREADY:7,BADF:8,BUSY:10,CHILD:12,CONNREFUSED:14,CONNRESET:15,EXIST:20,FAULT:21,FBIG:22,INPROGRESS:26,INTR:27,INVAL:28,IO:29,ISCONN:30,ISDIR:31,LOOP:32,MFILE:33,NAMETOOLONG:37,NETUNREACH:40,NOENT:44,NOEXEC:45,NOMEM:48,NOSPC:51,NOSYS:52,NOTCONN:53,NOTDIR:54,NOTEMPTY:55,NOTSOCK:57,NOTSUP:58,NOTTY:59,NXIO:60,PERM:63,PIPE:64,PROTONOSUPPORT:66,RANGE:68,ROFS:69,SPIPE:70,SRCH:71,TIMEDOUT:73,XDEV:75,NOTCAPABLE:76};function y(e){if(!e)return v.IO;let t=e.startsWith(`E`)?e.slice(1):e;return t===`OPNOTSUPP`?v.NOTSUP:t===`WOULDBLOCK`?v.AGAIN:v[t]??v.IO}const b={UNKNOWN:0,BLOCK_DEVICE:1,CHARACTER_DEVICE:2,DIRECTORY:3,REGULAR_FILE:4,SOCKET_DGRAM:5,SOCKET_STREAM:6,SYMBOLIC_LINK:7},x={FD_DATASYNC:1n<<0n,FD_READ:1n<<1n,FD_SEEK:1n<<2n,FD_FDSTAT_SET_FLAGS:1n<<3n,FD_SYNC:1n<<4n,FD_TELL:1n<<5n,FD_WRITE:1n<<6n,ALL:(1n<<30n)-1n},S={CREAT:1,DIRECTORY:2,EXCL:4,TRUNC:8},C={APPEND:1,DSYNC:2,NONBLOCK:4,RSYNC:8,SYNC:16},w={SET:0,CUR:1,END:2},T={REALTIME:0,MONOTONIC:1,PROCESS_CPUTIME:2,THREAD_CPUTIME:3},E={ATIM:1,ATIM_NOW:2,MTIM:4,MTIM_NOW:8},D={CLOCK:0,FD_READ:1,FD_WRITE:2},O={PEEK:1,WAITALL:2},k={RD:1,WR:2},A={FILESTAT:64,FDSTAT:24,DIRENT:24,SUBSCRIPTION:48,EVENT:32},j=Object.fromEntries(Array.from({length:30},(e,t)=>[t+1,t+1<16?t+1:t+2])),M=2048,N=1024,te={"/dev/null":`null`,"/dev/zero":`zero`,"/dev/urandom":`urandom`,"/dev/random":`urandom`};function ne(e){let t=/^\/dev\/(?:(stdin)|(stdout)|(stderr)|fd\/(\d+))$/.exec(e);if(t)return t[1]?0:t[2]?1:t[3]?2:Number(t[4])}function re(e){return te[e]}function P(e,t){return e===t||e.startsWith(t===`/`?`/`:`${t}/`)}var ie=class{kernel;fs;table=new Map;buffers=new Map;constructor(e,t){this.kernel=e,this.fs=t}setup(e,t){for(let e of[0,1,2])this.table.set(e,F());let n=this.preopens(e),r=3+n.length;for(let{fd:e,kind:n,flags:i}of t){let t=e;e<r&&(t=this.kernel.call({op:`fd-dup`,fd:e,min:r}),this.kernel.sys.close(e));let a=!!((i??0)&M);this.table.set(t,{...F(),nonblock:a,...n?{kind:n}:{}})}n.forEach((e,t)=>{this.kernel.call({op:`fd-reserve`,fd:3+t,meta:L(e)}),this.table.set(3+t,e)})}preopens(e){let t=[{type:`dir`,path:h(e),preopen:`.`}],n=[];try{n=this.fs.readdir(`/`)}catch{return t}for(let e of[...new Set([...n,`dev`])].sort()){let n=`/${e}`;if(n===`/dev`){t.push({type:`dir`,path:n,preopen:n});continue}try{this.fs.stat(n).isDirectory&&t.push({type:`dir`,path:n,preopen:n})}catch{}}return t}find(e){return this.shared?(this.sync(),this.table.get(e)??this.fetch(e)):this.table.get(e)}shared;seen=0;get isShared(){return this.shared!==void 0}share(e,t){if(t)this.table.clear(),this.cloexec.clear();else{this.promoteFiles();for(let e of this.cloexec)this.kernel.call({op:`fd-cloexec`,fd:e,on:!0});for(let[e,t]of this.table)t.type===`kernel`&&(t.nonblock||t.append)&&this.publishFlags(e,t)}this.shared=e,this.seen=Atomics.load(e,I)}sync(){let e=Atomics.load(this.shared,I);e!==this.seen&&(this.table.clear(),this.cloexec.clear(),this.seen=e)}bump(){if(!this.shared)return;let e=Atomics.add(this.shared,I,1)+1;e-1===this.seen&&(this.seen=e)}fetch(e){let t;try{t=this.kernel.call({op:`fd-info`,fd:e})}catch{return}let n=ae(t);if(n)return this.table.set(e,n),t.cloexec&&this.cloexec.add(e),n}listed(){let e=[];for(let t of this.kernel.call({op:`fd-list`})){let n=ae(t);n&&e.push([t.fd,n,t.cloexec===!0])}return e}publishFlags(e,t){let n=(t.nonblock?M:0)|(t.append?N:0);this.kernel.call({op:`fd-setfl`,fd:e,flags:n})}setFlags(e,t,n){let r=this.get(e);r.type===`kernel`?(r.nonblock=t,r.append=n,this.shared&&(this.publishFlags(e,r),this.bump())):r.type===`file`&&(r.file.append=n)}setCloexec(e,t){this.get(e),t?this.cloexec.add(e):this.cloexec.delete(e),this.shared&&(this.kernel.call({op:`fd-cloexec`,fd:e,on:t}),this.bump())}cwd(){let e=this.find(3);return e?.type===`dir`&&e.preopen===`.`?e.path:void 0}sockets(){return[...this.table].filter(([,e])=>e.type===`kernel`&&e.kind===`socket`).map(([e])=>e).sort((e,t)=>e-t)}adopt(e,t,n){this.table.set(e,{type:`kernel`,kind:t,nonblock:n,append:!1}),this.shared&&n&&this.publishFlags(e,{nonblock:n,append:!1}),this.bump()}get(e){let t=this.find(e);if(!t)throw new f(`EBADF`);return t}preopen(e){let t=this.find(e);if(t?.type!==`dir`||t.preopen===void 0)throw new f(`EBADF`);return t}dir(e){let t=this.get(e);if(t.type!==`dir`)throw new f(`ENOTDIR`);return t}entries(){return this.table.values()}install(e,t=3){let n=L(e),r=this.kernel.call({op:`fd-reserve`,...t>3?{min:t}:{},...n?{meta:n}:{}});return this.table.set(r,e),this.bump(),r}cloexec=new Set;implicitCloexec=!1;dup(e,t,n){let r=this.get(e),i;return r.type===`kernel`?(i=this.kernel.call({op:`fd-dup`,fd:e,min:Math.max(3,t)}),this.table.set(i,{...r})):(r.type===`file`&&r.file.refs++,i=this.install(r.type===`file`?r:{...r},t)),n&&this.setCloexec(i,!0),this.bump(),i}pipe(){let[e,t]=this.kernel.sys.pipe();return this.table.set(e,{type:`kernel`,kind:`stream`,nonblock:!1,append:!1}),this.table.set(t,{type:`kernel`,kind:`stream`,nonblock:!1,append:!1}),this.bump(),[e,t]}chdir(e){let t=this.find(3);t?.type===`dir`&&t.preopen===`.`&&(t.path=e,this.kernel.call({op:`fd-meta`,fd:3,meta:{dir:e,preopen:`.`}}),this.bump())}promoteFiles(){let e=new Map;for(let[t,n]of[...this.table]){if(n.type!==`file`)continue;let r=e.get(n.file);if(r!==void 0)this.kernel.call({op:`fd-promote`,fd:t,share:r});else{let r=n.file;this.kernel.call({op:`fd-promote`,fd:t,path:r.path,flags:(r.writable?r.readable?2:1:0)|(r.append?N:0),position:r.offset,contents:r.buffer.contents(),...r.buffer.isOrphan()?{orphan:!0}:{}}),e.set(r,t)}this.table.set(t,{type:`kernel`,kind:`file`,nonblock:!1,append:n.file.append})}for(let t of e.keys())--t.buffer.opens<=0&&this.buffers.delete(t.path)}snapshot(){let e=[];if(this.shared)return e;for(let[t,n]of this.table)n.type===`kernel`?e.push({fd:t,type:`kernel`,nonblock:n.nonblock,append:n.append}):n.type===`dir`?e.push({fd:t,type:`dir`,path:n.path,...n.preopen?{preopen:n.preopen}:{}}):n.type===`device`&&e.push({fd:t,type:`device`,device:n.device});return e}restore(e,t){this.table.clear();for(let t of e)t.type===`kernel`?this.table.set(t.fd,{type:`kernel`,nonblock:t.nonblock,append:t.append}):t.type===`dir`?this.table.set(t.fd,{type:`dir`,path:t.path,...t.preopen?{preopen:t.preopen}:{}}):this.table.set(t.fd,{type:`device`,device:t.device});for(let e of t)this.cloexec.add(e)}inheritable(){let e=new Map,t=this.shared?this.listed():[...this.table].map(([e,t])=>[e,t,this.cloexec.has(e)]);for(let[n,r,i]of t)r.type!==`kernel`||i||this.implicitCloexec&&n>2||e.set(n,n);return e}close(e){let t=this.get(e);this.table.delete(e),this.cloexec.delete(e),this.kernel.sys.close(e),this.release(t),this.bump()}renumber(e,t,n=!1){let r=this.get(e),i=n?this.find(t):this.get(t);e!==t&&(this.kernel.call({op:`fd-renumber`,from:e,to:t,...n?{keep:n}:{}}),this.cloexec.delete(t),n?(r.type===`file`&&r.file.refs++,this.table.set(t,r.type===`file`?r:{...r})):(this.table.delete(e),this.table.set(t,r),this.cloexec.delete(e)&&this.cloexec.add(t)),i&&this.release(i),this.bump())}release(e){if(e.type!==`file`||--e.file.refs>0)return;let{buffer:t}=e.file;t.flush(),--t.opens===0&&this.buffers.get(t.path)===t&&this.buffers.delete(t.path)}kind(e,t){if(!t.kind){let n=this.kernel.call({op:`fd-info`,fd:e});t.kind=n.kind??(n.tty?`tty`:`stream`)}return t.kind}flushAll(){for(let e of this.buffers.values())e.flush()}flushPath(e){for(let[t,n]of this.buffers)P(t,e)&&n.flush();this.shared&&this.kernel.call({op:`fd-path-flush`,path:e})}unlinking(e){this.buffers.get(e)?.load(),this.shared&&this.kernel.call({op:`fd-path-unlinking`,path:e})}unlinked(e){this.shared&&this.kernel.call({op:`fd-path-unlinked`,path:e});let t=this.buffers.get(e);t&&(t.orphan(),this.buffers.delete(e))}renamed(e,t){if(e===t)return;this.shared&&this.kernel.call({op:`fd-path-renamed`,from:e,to:t});let n=[];for(let[r,i]of this.buffers)P(r,e)?n.push([r,i]):P(r,t)&&(i.orphan(),this.buffers.delete(r));for(let[r,i]of n)this.buffers.delete(r),i.path=t+r.slice(e.length),this.buffers.set(i.path,i)}resolve(e,t){return t.startsWith(`/`)?h(t):g(this.dir(e).path,t)}open(e,t,n,r){let i=re(e);if(i)return this.install({type:`device`,device:i});if(e===`/dev/tty`){let e=this.kernel.sys.openTty?.();if(e===void 0)throw new f(`ENXIO`);return this.table.set(e,{...F(),kind:`tty`}),this.bump(),e}let a=ne(e);if(a!==void 0)return this.reopen(a);let o=this.statOrMissing(e);if(o&&t&S.CREAT&&t&S.EXCL)throw new f(`EEXIST`);if(t&S.DIRECTORY&&!o?.isDirectory)throw new f(o?`ENOTDIR`:`ENOENT`);if(o?.isDirectory)return this.install({type:`dir`,path:e});if(!o&&!(t&S.CREAT))throw new f(`ENOENT`);return this.shared?this.kernelFile(e,o,t,n,r):this.install({type:`file`,file:this.file(e,o,t,n,r)})}file(e,t,n,r,i){let a=(r&x.FD_WRITE)!==0n||(n&(S.CREAT|S.TRUNC))!==0,o=(r&x.FD_READ)!==0n||!a,s=this.buffers.get(e);return s?n&S.TRUNC&&s.truncate(0):(t||this.fs.writeFile(e,new Uint8Array),s=new p(this.fs,e,!t||(n&S.TRUNC)!==0),this.buffers.set(e,s)),s.opens++,new m(s,o,a,(i&C.APPEND)!==0)}kernelFile(e,t,n,r,i){let a=(r&x.FD_WRITE)!==0n||(n&(S.CREAT|S.TRUNC))!==0,o=(r&x.FD_READ)!==0n||!a,s=(i&C.APPEND)!==0,c=(a?o?2:1:0)|(s?N:0);t||this.fs.writeFile(e,new Uint8Array);let l=!t||(n&S.TRUNC)!==0,u=this.kernel.sys.openVfs(e,c,0,l?{truncate:l}:{});return this.table.set(u,{type:`kernel`,kind:`file`,nonblock:!1,append:s}),s&&this.publishFlags(u,{nonblock:!1,append:s}),this.bump(),u}statOrMissing(e){try{return this.fs.stat(e)}catch(e){if(e.code===`ENOENT`)return;throw e}}reopen(e){let t=this.get(e);if(t.type===`kernel`){let n=this.kernel.call({op:`fd-dup`,fd:e});return this.table.set(n,{...t}),this.bump(),n}return t.type===`file`&&t.file.refs++,this.install(t.type===`file`?t:{...t})}};function F(){return{type:`kernel`,nonblock:!1,append:!1}}const I=2;function L(e){if(e.type===`dir`)return{dir:e.path,...e.preopen?{preopen:e.preopen}:{}};if(e.type===`device`)return{device:e.device}}function ae(e){if(e.meta&&`dir`in e.meta)return{type:`dir`,path:e.meta.dir,...e.meta.preopen?{preopen:e.meta.preopen}:{}};if(e.meta&&`device`in e.meta)return{type:`device`,device:e.meta.device};if(e.kind!==`held`)return{type:`kernel`,kind:e.kind,nonblock:!!((e.flags??0)&M),append:!!((e.flags??0)&N)}}const oe=new TextDecoder;var se=class{memory;bind(e){this.memory=e}buffer(){if(!this.memory)throw Error(`WASI: no memory bound`);return this.memory.buffer}view(){return new DataView(this.buffer())}bytes(e,t){return new Uint8Array(this.buffer(),e,t)}string(e,t){return oe.decode(this.bytes(e,t).slice())}cString(e){let t=new Uint8Array(this.buffer()),n=e;for(;n<t.length&&t[n]!==0;)n++;return oe.decode(t.slice(e,n))}size(){return this.buffer().byteLength}iovecs(e,t){let n=this.view(),r=[];for(let i=0;i<t;i++)r.push([n.getUint32(e+i*8,!0),n.getUint32(e+i*8+4,!0)]);return r}capacity(e,t){return this.iovecs(e,t).reduce((e,[,t])=>e+t,0)}gather(e,t){let n=this.iovecs(e,t);if(n.length===1)return this.bytes(n[0][0],n[0][1]).slice();let r=new Uint8Array(n.reduce((e,[,t])=>e+t,0)),i=0;for(let[e,t]of n)r.set(this.bytes(e,t),i),i+=t;return r}scatter(e,t,n){let r=0;for(let[i,a]of this.iovecs(e,t)){if(r>=n.length)break;let e=Math.min(a,n.length-r);this.bytes(i,e).set(n.subarray(r,r+e)),r+=e}return r}putStrings(e,t,n){let r=new TextEncoder,i=this.view(),a=n;e.forEach((e,n)=>{let o=r.encode(e);i.setUint32(t+n*4,a,!0),this.bytes(a,o.length).set(o),i.setUint8(a+o.length,0),a+=o.length+1})}putSizes(e,t,n){let r=new TextEncoder,i=this.view();i.setUint32(t,e.length,!0),i.setUint32(n,e.reduce((e,t)=>e+r.encode(t).length+1,0),!0)}};function ce(e,t,n,r){let i=e.view(),a=performance.now(),o=[];for(let e=0;e<n;e++){let n=t+e*A.SUBSCRIPTION,s=i.getUint8(n+8),c={userdata:i.getBigUint64(n,!0),type:s,fd:-1,deadline:1/0};if(s===D.CLOCK){let e=i.getUint32(n+16,!0),t=Number(i.getBigUint64(n+24,!0))/1e6;i.getUint16(n+40,!0)&1&&(t-=Number(r(e))/1e6),c.deadline=a+Math.max(0,t)}else c.fd=i.getUint32(n+16,!0);o.push(c)}return o}function le(e,t,n){let r=e.view();n.forEach((n,i)=>{let a=t+i*A.EVENT;e.bytes(a,A.EVENT).fill(0),r.setBigUint64(a,n.userdata,!0),r.setUint16(a+8,n.error,!0),r.setUint8(a+10,n.type),n.type!==D.CLOCK&&(r.setBigUint64(a+16,1n,!0),n.hangup&&r.setUint16(a+24,1,!0))})}function ue(e,t){let n=[],r=[],i=[];for(let a of t){if(a.type===D.CLOCK)continue;let t=e.find(a.fd);t?t.type===`kernel`?(a.type===D.FD_READ?r:i).push(a.fd):n.push({userdata:a.userdata,error:v.SUCCESS,type:a.type}):n.push({userdata:a.userdata,error:v.BADF,type:a.type})}return{events:n,read:r,write:i}}function de(e,t){return e.filter(e=>e.type===D.FD_READ&&t.read.includes(e.fd)||e.type===D.FD_WRITE&&t.write.includes(e.fd)).map(e=>({userdata:e.userdata,error:v.SUCCESS,type:e.type,hangup:t.hangup?.includes(e.fd)===!0}))}function fe(e,t,n,r,i){if(r===0)return v.INVAL;let{mem:a,kernel:o}=e,s=ce(a,t,r,e.now),{events:c,read:l,write:u}=ue(e.fds,s),d=!1;if(l.length>0||u.length>0||c.length===0){let t=Math.min(...s.map(e=>e.deadline)),n=-1;c.length>0?n=0:t!==1/0&&(n=Math.max(0,Math.ceil(t-performance.now())));let r;try{r=o.call({op:`fd-select`,read:l,write:u,timeoutMs:n})}catch(t){if(!e.interruptWakes||t.code!==`EINTR`)throw t;d=!0,r={read:[],write:[]}}c.push(...de(s,r))}let f=performance.now();for(let e of s)e.type===D.CLOCK&&(d||e.deadline<=f+.5)&&c.push({userdata:e.userdata,error:v.SUCCESS,type:e.type});return le(a,n,c),a.view().setUint32(i,c.length,!0),v.SUCCESS}var R=class extends Error{code;constructor(e){super(`exit ${e}`),this.code=e}};const z=1000000n,pe=BigInt(Math.round(performance.timeOrigin))*z,B=1048576;function V(e){return e?e.isSymbolicLink?b.SYMBOLIC_LINK:e.isDirectory?b.DIRECTORY:e.isFile?b.REGULAR_FILE:b.UNKNOWN:b.UNKNOWN}function H(e,t){return{filetype:V(t),size:BigInt(t.size??0),ino:t.ino===void 0?_(e):BigInt(t.ino),mtimeNs:BigInt(Math.round(t.mtimeMs??0))*z}}function me(e){switch(e){case`tty`:return{filetype:b.CHARACTER_DEVICE,seeks:!1};case`socket`:return{filetype:b.SOCKET_STREAM,seeks:!1};case`file`:return{filetype:b.REGULAR_FILE,seeks:!0};default:return{filetype:b.UNKNOWN,seeks:!1}}}var he=class{o;mem=new se;fds;started=performance.now();cache;listening;startCwd;interruptWakes=!1;onRaise;constructor(e){this.o=e,this.startCwd=e.cwd,this.fds=new ie(e.kernel,e.fs),e.shared?this.fds.share(e.shared,!0):e.forked?this.fds.restore(e.forked.fds,e.forked.cloexec):this.fds.setup(e.cwd,e.inherited??[]),this.listening=e.shared?[]:this.fds.sockets()}get cwd(){return this.fds.cwd()??this.startCwd}imports(){return this.cache??=U({...this.processImports(),...this.ioImports(),...this.statImports(),...this.pathImports(),poll_oneoff:(e,t,n,r)=>fe({mem:this.mem,fds:this.fds,kernel:this.o.kernel,now:e=>this.now(e),interruptWakes:this.interruptWakes},e,t,n,r),...this.socketImports()}),this.cache}now(e){return e===T.REALTIME?BigInt(Date.now())*z:e===T.MONOTONIC?pe+BigInt(Math.round(performance.now()*1e6)):BigInt(Math.round((performance.now()-this.started)*1e6))+1n}environ(){let e=this.listening.length>0?{SLICC_LISTEN_FDS:this.listening.join(` `)}:{},t={PWD:this.cwd,...this.o.env,...e};return Object.entries(t).map(([e,t])=>`${e}=${t}`)}processImports(){let{mem:e}=this;return{args_get:(t,n)=>void e.putStrings(this.o.args,t,n),args_sizes_get:(t,n)=>void e.putSizes(this.o.args,t,n),environ_get:(t,n)=>void e.putStrings(this.environ(),t,n),environ_sizes_get:(t,n)=>void e.putSizes(this.environ(),t,n),clock_res_get:(t,n)=>void e.view().setBigUint64(n,1000n,!0),clock_time_get:(t,n,r)=>void e.view().setBigUint64(r,this.now(t),!0),random_get:(t,n)=>{for(let r=0;r<n;r+=65536){let i=new Uint8Array(Math.min(65536,n-r));crypto.getRandomValues(i),e.bytes(t+r,i.length).set(i)}},sched_yield:()=>v.SUCCESS,proc_exit:e=>{throw new R(e)},proc_raise:e=>{let t=j[e];if(t===void 0)throw new f(`EINVAL`);this.onRaise?.(t)||this.o.kernel.call({op:`proc-kill`,pid:this.o.pid,sig:t})}}}ioImports(){let{mem:e,fds:t}=this;return{fd_write:(t,n,r,i)=>void e.view().setUint32(i,this.write(t,e.gather(n,r)),!0),fd_read:(t,n,r,i)=>{let a=this.read(t,e.capacity(n,r));e.view().setUint32(i,e.scatter(n,r,a),!0)},fd_pread:(t,n,r,i,a)=>{let o=this.positional(t,`read`).pread(e.capacity(n,r),Number(i));e.view().setUint32(a,e.scatter(n,r,o),!0)},fd_pwrite:(t,n,r,i,a)=>void e.view().setUint32(a,this.positional(t,`write`).pwrite(e.gather(n,r),Number(i)),!0),fd_seek:(t,n,r,i)=>void e.view().setBigUint64(i,BigInt(this.seek(t,Number(n),r)),!0),fd_tell:(t,n)=>void e.view().setBigUint64(n,BigInt(this.seek(t,0,w.CUR)),!0),fd_close:e=>void t.close(e),fd_renumber:(e,n)=>void t.renumber(e,n),fd_sync:e=>void this.sync(e),fd_datasync:e=>void this.sync(e),fd_advise:e=>void t.get(e),fd_allocate:(e,t,n)=>{let r=this.positional(e),i=Number(t+n);i>r.size()&&r.truncate(i)}}}statImports(){let{mem:e,fds:t}=this;return{fd_fdstat_get:(e,t)=>void this.fdstat(e,t),fd_fdstat_set_flags:(e,n)=>void t.setFlags(e,(n&C.NONBLOCK)!==0,(n&C.APPEND)!==0),fd_fdstat_set_rights:e=>void t.get(e),fd_filestat_get:(e,t)=>void this.writeFilestat(t,this.fdFilestat(e)),fd_filestat_set_size:(e,t)=>void this.positional(e).truncate(Number(t)),fd_filestat_set_times:(e,n,r,i)=>{let a=t.get(e);a.type===`file`?(a.file.flush(),this.setTimes(a.file.path,n,r,i)):a.type===`dir`&&this.setTimes(a.path,n,r,i)},fd_prestat_get:(n,r)=>{let i=new TextEncoder().encode(t.preopen(n).preopen);e.view().setUint8(r,0),e.view().setUint32(r+4,i.length,!0)},fd_prestat_dir_name:(n,r,i)=>{let a=new TextEncoder().encode(t.preopen(n).preopen);e.bytes(r,Math.min(i,a.length)).set(a.subarray(0,i))},fd_readdir:(e,t,n,r,i)=>void this.readdir(e,t,n,Number(r),i)}}pathImports(){let{mem:e,fds:t,o:n}=this,r=(n,r,i)=>t.resolve(n,e.string(r,i));return{path_open:(n,i,a,o,s,c,l,u,d)=>void e.view().setUint32(d,t.open(r(n,a,o),s,c,u),!0),path_filestat_get:(e,t,n,i,a)=>void this.writeFilestat(a,this.pathFilestat(r(e,n,i),t)),path_filestat_set_times:(e,n,i,a,o,s,c)=>{let l=r(e,i,a);t.flushPath(l),this.setTimes(l,o,s,c)},path_create_directory:(e,t,i)=>{let a=r(e,t,i);if(n.fs.exists(a))throw new f(`EEXIST`);n.fs.mkdir(a)},path_remove_directory:(e,t,i)=>void n.fs.rmdir(r(e,t,i)),path_unlink_file:(e,i,a)=>{let o=r(e,i,a);if(n.fs.lstat(o).isDirectory)throw new f(`EISDIR`);t.unlinking(o),n.fs.unlink(o),t.unlinked(o)},path_rename:(e,i,a,o,s,c)=>{let l=r(e,i,a),u=r(o,s,c);t.flushPath(l),n.fs.rename(l,u),t.renamed(l,u)},path_symlink:(t,i,a,o,s)=>void n.fs.symlink(e.string(t,i),r(a,o,s)),path_readlink:(t,i,a,o,s,c)=>{let l=new TextEncoder().encode(n.fs.readlink(r(t,i,a))),u=Math.min(s,l.length);e.bytes(o,u).set(l.subarray(0,u)),e.view().setUint32(c,u,!0)},path_link:()=>v.NOTSUP}}socket(e){let t=this.fds.get(e);if(t.type!==`kernel`||this.fds.kind(e,t)!==`socket`)throw new f(`ENOTSOCK`);return t}socketImports(){let{mem:e,fds:t,o:n}=this;return{sock_accept:(r,i,a)=>{let o=this.socket(r),s=n.kernel.call({op:`sock-accept`,fd:r,nonblock:o.nonblock});t.adopt(s.fd,`socket`,(i&C.NONBLOCK)!==0),e.view().setUint32(a,s.fd,!0)},sock_recv:(t,r,i,a,o,s)=>{let c=this.socket(t),l=(a&O.PEEK)!==0,u=e.capacity(r,i),d=(a&O.WAITALL)!==0&&!l?this.recvAll(t,u,c.nonblock):n.kernel.sys.read(t,Math.min(u,B),{nonblock:c.nonblock,peek:l});e.view().setUint32(o,e.scatter(r,i,d),!0),e.view().setUint16(s,0,!0)},sock_send:(t,r,i,a,o)=>{let s=this.socket(t),c=n.kernel.sys.write(t,e.gather(r,i),{nonblock:s.nonblock});e.view().setUint32(o,c,!0)},sock_shutdown:(e,t)=>{this.socket(e);let r=k.RD|k.WR;if(t===0||(t&~r)!==0)throw new f(`EINVAL`);n.kernel.call({op:`sock-shutdown`,fd:e,how:t===r?2:+(t===k.WR)})}}}recvAll(e,t,n){let r=[],i=0;for(;i<t;){let a;try{a=this.o.kernel.sys.read(e,Math.min(t-i,B),{nonblock:n})}catch(e){if(i===0)throw e;break}if(a.length===0)break;r.push(a),i+=a.length}let a=new Uint8Array(i),o=0;for(let e of r)a.set(e,o),o+=e.length;return a}file(e,t){let n=this.fds.get(e);if(n.type!==`file`)throw new f(n.type===`dir`?`EISDIR`:n.type===`kernel`?`ESPIPE`:`EINVAL`);if(t===`read`&&!n.file.readable||t===`write`&&!n.file.writable)throw new f(`EBADF`);return n.file}positional(e,t){let n=this.fds.get(e);if(n.type!==`kernel`||this.fds.kind(e,n)!==`file`)return this.file(e,t);let r=this.o.kernel;return{pread:(t,n)=>{if(!r.sys.pread)throw new f(`ESPIPE`);return r.sys.pread(e,Math.min(t,B),n)},pwrite:(t,n)=>r.call({op:`fd-pwrite`,fd:e,offset:n,body:t}),size:()=>this.kernelStat(e).size,truncate:t=>void r.call({op:`fd-resize`,fd:e,size:t})}}kernelStat(e){return this.o.kernel.call({op:`fd-vfs-stat`,fd:e})}write(e,t){let n=this.fds.get(e);if(n.type===`kernel`)try{return this.o.kernel.sys.write(e,t,{nonblock:n.nonblock})}catch(e){throw e.code===`EPIPE`?new R(141):e}return n.type===`device`?t.length:this.file(e,`write`).write(t)}read(e,t){let n=this.fds.get(e);if(n.type===`kernel`)return this.o.kernel.sys.read(e,Math.min(t,B),{nonblock:n.nonblock});if(n.type===`device`){if(n.device===`null`)return new Uint8Array;let e=new Uint8Array(Math.min(t,65536));return n.device===`zero`?e:crypto.getRandomValues(e)}return this.file(e,`read`).read(t)}seek(e,t,n){let r=this.fds.get(e);if(r.type===`kernel`){if(this.fds.kind(e,r)!==`file`)throw new f(`ESPIPE`);return this.o.kernel.sys.seek(e,t,n)}if(r.type===`device`)return 0;let i=this.file(e),a=n===w.SET?0:n===w.CUR?i.offset:i.size();if(n>w.END||a+t<0)throw new f(`EINVAL`);return i.offset=a+t,i.offset}sync(e){let t=this.fds.get(e);t.type===`file`?t.file.flush():t.type===`kernel`&&this.fds.kind(e,t)===`file`&&this.o.kernel.sys.flush(e)}fdstat(e,t){let n=this.fds.get(e),r=b.CHARACTER_DEVICE,i=!0,a=0;n.type===`kernel`?({filetype:r,seeks:i}=me(this.fds.kind(e,n)),n.nonblock&&(a|=C.NONBLOCK),n.append&&(a|=C.APPEND)):n.type===`file`?(r=b.REGULAR_FILE,n.file.append&&(a|=C.APPEND)):n.type===`dir`&&(r=b.DIRECTORY);let o=this.mem.view();o.setUint8(t,r),o.setUint16(t+2,a,!0);let s=i?x.ALL:x.ALL&~(x.FD_SEEK|x.FD_TELL);o.setBigUint64(t+8,s,!0),o.setBigUint64(t+16,x.ALL,!0)}writeFilestat(e,t){let n=this.mem.view();n.setBigUint64(e,1n,!0),n.setBigUint64(e+8,t.ino,!0),n.setUint8(e+16,t.filetype),n.setBigUint64(e+24,1n,!0),n.setBigUint64(e+32,t.size,!0),n.setBigUint64(e+40,t.mtimeNs,!0),n.setBigUint64(e+48,t.mtimeNs,!0),n.setBigUint64(e+56,t.mtimeNs,!0)}fdFilestat(e){let t=this.fds.get(e);if(t.type===`dir`)return H(t.path,this.o.fs.stat(t.path));if(t.type===`file`)return this.statOrphanable(t.file.path,t.file.size());let n=t.type===`kernel`?this.fds.kind(e,t):void 0;if(n===`file`){let t=this.kernelStat(e);if(t.path)return this.statOrphanable(t.path,t.size,t.orphan)}return{filetype:n?me(n).filetype:b.CHARACTER_DEVICE,size:0n,ino:BigInt(e+1),mtimeNs:0n}}statOrphanable(e,t,n=!1){let r;if(!n)try{r=this.o.fs.stat(e)}catch{}return{...H(e,r??{isFile:!0,isDirectory:!1,size:0}),size:BigInt(t)}}pathFilestat(e,t){return re(e)?{filetype:b.CHARACTER_DEVICE,size:0n,ino:_(e),mtimeNs:0n}:(this.fds.flushPath(e),H(e,t&1?this.o.fs.stat(e):this.o.fs.lstat(e)))}setTimes(e,t,n,r){let i=Date.now(),a,o=()=>a??=this.o.fs.stat(e).mtimeMs??i,s=(e,t,n)=>r&t?i:r&e?Number(n/z):o();this.o.fs.utimes(e,s(E.ATIM,E.ATIM_NOW,t),s(E.MTIM,E.MTIM_NOW,n))}readdir(e,t,n,r,i){let a=this.fds.dir(e);(r===0||!a.listing)&&(a.listing=this.list(a.path));let{names:o,stats:s}=a.listing,c=0;for(let e=r;e<o.length&&c<n;e++){let r=o[e],i=r===`.`?a.path:r===`..`?h(`${a.path}/..`):g(a.path,r);s.has(r)||s.set(r,this.lstatOrNull(i));let l=s.get(r)??null,u=ge(e+1,l?.ino===void 0?_(i):BigInt(l.ino),r,V(l)),d=Math.min(u.length,n-c);this.mem.bytes(t+c,d).set(u.subarray(0,d)),c+=d}this.mem.view().setUint32(i,c,!0)}list(e){let{fs:t}=this.o;if(!t.readdirStat)return{names:[`.`,`..`,...t.readdir(e)],stats:new Map};let n=t.readdirStat(e);return{names:[`.`,`..`,...n.map(([e])=>e)],stats:new Map(n)}}lstatOrNull(e){try{return this.o.fs.lstat(e)}catch{return null}}flushAll(){this.fds.flushAll()}};function ge(e,t,n,r){let i=new TextEncoder().encode(n),a=new Uint8Array(A.DIRENT+i.length),o=new DataView(a.buffer);return o.setBigUint64(0,BigInt(e),!0),o.setBigUint64(8,t,!0),o.setUint32(16,i.length,!0),o.setUint8(20,r),a.set(i,A.DIRENT),a}function U(e){let t={};for(let[n,r]of Object.entries(e))t[n]=(...e)=>{try{return r(...e)??v.SUCCESS}catch(e){if(e instanceof R)throw e;if(e instanceof f)return y(e.code);let t=e?.code;if(typeof t==`string`)return y(t);if(e instanceof RangeError)return v.FAULT;throw e}};return t}const _e=[c.HUP,c.INT,c.QUIT,c.USR1,c.USR2,c.ALRM,c.TERM].reduce((e,n)=>e|t(n),0);var ve=class{fallBack;exports;callback;uncaught=0;delivering;constructor(e){this.fallBack=e}bind(e){this.exports=e}register(e){typeof this.exports?.[e]==`function`&&(this.callback=e)}masks(){return this.handler()?{caught:_e&~this.uncaught,ignored:0,restart:0}:null}raise(e){let t=this.handler();if(!t)return;let n=this.delivering;this.delivering=e;try{t(e)}catch(t){if(!(t instanceof WebAssembly.RuntimeError))throw t;this.defaultAction(e)}finally{this.delivering=n}}raised(e){return e!==c.ABRT||this.delivering===void 0?!1:(this.defaultAction(this.delivering),!0)}defaultAction(e){this.uncaught|=t(e),this.fallBack(e)}handler(){let e=this.callback?this.exports?.[this.callback]:void 0;return typeof e==`function`?e:void 0}},ye=class{rows=new Map;phases=[];mark=performance.now();wrap(e,t){return Object.fromEntries(Object.entries(t).map(([n,r])=>{if(typeof r!=`function`)return[n,r];let i=r,a=`${e}.${n}`;return[n,(...e)=>this.time(a,()=>i.apply(t,e))]}))}time(e,t){let n=performance.now();try{return t()}finally{this.count(e,performance.now()-n)}}phase(e){let t=performance.now();this.phases.push([e,t-this.mark]),this.mark=t}count(e,t){let n=this.rows.get(e)??{n:0,ms:0,max:0};n.n++,n.ms+=t,n.max=Math.max(n.max,t),this.rows.set(e,n)}report(){let e=e=>e.toFixed(1).padStart(9),t=this.phases.map(([t,n])=>`${e(n)} ms ${t}`);t.push(`${`total ms`.padStart(12)} ${`calls`.padStart(7)} ${`max ms`.padStart(9)} call`);let n=[...this.rows].sort((e,t)=>t[1].ms-e[1].ms);for(let[r,i]of n)t.push(`${e(i.ms)} ${String(i.n).padStart(7)} ${e(i.max)} ${r}`);return`${t.join(`
2
+ `)}\n`}},be=class extends Error{constructor(){super(`thread exit`)}};function xe(e){let t=Number.parseInt(e.SLICC_WASM_THREADS??``,10);return t>=1?Math.min(t,64):64}var Se=class{port;memory;cap;tid;ids;beforeSpawn;modules;received;constructor(e,t,n,r,i){this.port=e,this.memory=t,this.cap=n,this.tid=r,this.ids=new Int32Array(i??new SharedArrayBuffer(16)),i||Atomics.store(this.ids,0,1)}spawn(e){if(Atomics.add(this.ids,1,1)+1>=this.cap)return Atomics.sub(this.ids,1,1),-1;this.beforeSpawn?.();let t=Atomics.add(this.ids,0,1)+1,n=this.modules?.();return this.port.postMessage({type:r,thread:{tid:t,arg:e,memory:this.memory,ids:this.ids.buffer,...n?{modules:n}:{}}}),t}exited(){Atomics.sub(this.ids,1,1),this.port.postMessage({type:s})}known(e){return e>=1&&e<=Atomics.load(this.ids,0)}parallelism(){let e=globalThis.navigator?.hardwareConcurrency;return Math.max(1,Math.min(this.cap,e??this.cap))}};function Ce(e){let t=[];for(let[n,r]of Object.entries(e))if(!(!(r instanceof WebAssembly.Global)||typeof r.value!=`number`))try{let e=r.value;r.value=e,t.push([n,e])}catch{}return t}var we=class{mem;exports={};stackUpper=0;pending;answer=0;snapshots=new Map;nextSnapshot=1;constructor(e){this.mem=e}bind(e){this.exports=e;let t=this.exports.__stack_pointer;this.stackUpper=t instanceof WebAssembly.Global?t.value:0}get supported(){return typeof this.exports.asyncify_start_unwind==`function`}resume(){if(this.exports.asyncify_get_state?.()!==1)return!1;this.exports.asyncify_stop_unwind?.();let e=this.pending;if(this.pending=void 0,!e)throw Error(`WASIX: unwound with nothing to do`);return this.exports.asyncify_start_rewind?.(e()),!0}setjmps(){return{next:this.nextSnapshot,snapshots:[...this.snapshots]}}startChild(e){for(let[t,n]of e.setjmps?.snapshots??[])this.snapshots.set(t,n);this.nextSnapshot=Math.max(this.nextSnapshot,e.setjmps?.next??1),this.restoreGlobals(e.globals),this.answer=0,this.exports.asyncify_start_rewind?.(e.asyncifyData)}rewound(){if(this.exports.asyncify_get_state?.()===2)return this.exports.asyncify_stop_rewind?.(),this.answer}fork(e){let t=this.stackPointer(),n=Ce(this.exports);return this.unwind(r=>{this.answer=e(r,n,t)})}checkpoint(e,t){let n=this.nextSnapshot++,r=this.mem.view();r.setBigUint64(e,BigInt(t),!0),r.setBigUint64(e+8,BigInt(n),!0),r.setBigUint64(e+16,1372344599n,!0);let i=Ce(this.exports);return this.unwind(e=>{let t=this.mem.view().getUint32(e,!0);this.snapshots.set(n,{frames:this.mem.bytes(e+8,t-e-8).slice(),globals:i}),this.answer=0})}restore(e,t){let n=Number(this.mem.view().getBigUint64(e+8,!0)),r=this.snapshots.get(n);if(!r)throw Error(`WASIX: longjmp to an unknown setjmp (${n})`);return this.unwind(e=>{this.mem.bytes(e+8,r.frames.length).set(r.frames),this.mem.view().setUint32(e,e+8+r.frames.length,!0),this.restoreGlobals(r.globals),this.answer=Number(t)||1})}stackPointer(){let e=this.exports.__stack_pointer;return e instanceof WebAssembly.Global?e.value:0}dataPointer(){let e=this.exports.__data_end,t=e instanceof WebAssembly.Global?e.value:0;return t<this.stackUpper?t+15&-16:16}unwind(e){if(!this.supported)return v.NOSYS;let t=this.dataPointer(),n=this.mem.view();return n.setUint32(t,t+8,!0),n.setUint32(t+4,this.stackPointer()-16,!0),this.pending=()=>(e(t),t),this.exports.asyncify_start_unwind?.(t),v.SUCCESS}restoreGlobals(e){for(let[t,n]of e){let e=this.exports[t];e instanceof WebAssembly.Global&&(e.value=n)}}};const Te=65536,Ee=[`/lib`,`/usr/lib`,`/usr/local/lib`];function De(e,t){return e.replace(/\$(?:ORIGIN\b|\{ORIGIN\})/g,t)}var W=class extends Error{},Oe=class{memory;host;table;stackPointer;memoryBase;stackLow;stackHigh;cLongjmp;cppException;main;modules=new Map;byPath=new Map;mainGot=[];slots=new Map;nextHandle=1;publisher;constructor(e,t,n,r=!1){this.memory=e,this.host=n,this.memoryBase=Math.max(1,2**t.memoryAlign),this.stackLow=ke(this.memoryBase+t.memorySize,1024),this.stackHigh=this.stackLow+8388608,r||G(e,this.stackHigh),this.table=new WebAssembly.Table({element:`anyfunc`,initial:1+t.tableSize}),this.stackPointer=new WebAssembly.Global({value:`i32`,mutable:!0},r?0:this.stackHigh);let i=()=>new WebAssembly.Tag({parameters:[`i32`]});this.cLongjmp=i(),this.cppException=i()}mainImports(e){let t=e=>new WebAssembly.Global({value:`i32`,mutable:!1},e),n=e=>new WebAssembly.Global({value:`i32`,mutable:!0},e),r={memory:this.memory,__indirect_function_table:this.table,__stack_pointer:this.stackPointer,__memory_base:t(this.memoryBase),__table_base:t(1),__c_longjmp:this.cLongjmp,__cpp_exception:this.cppException},i={__stack_high:n(this.stackHigh),__stack_low:n(this.stackLow),__heap_base:n(this.stackHigh)},a={};this.mainGot=[];for(let t of WebAssembly.Module.imports(e))if(t.module===`env`&&t.kind===`function`&&!(t.name in r))r[t.name]=this.functionImport(t.name);else if(t.module===`GOT.func`||t.module===`GOT.mem`&&!(t.name in i)){let e=n(0);(t.module===`GOT.func`?a:i)[t.name]=e;let r=t.module;this.mainGot.push(()=>{e.value=r===`GOT.func`?this.slotOrNull(t.name):this.addressOrNull(t.name)})}return{env:r,"GOT.mem":i,"GOT.func":a}}bindMainGot(){for(let e of this.mainGot)e()}bindMain(e,t){this.main=e,t&&K(e,`__wasm_apply_data_relocs`)}open(e,t,n){return this.load(this.locate(e,t,n),t,n).handle}symbol(e,t){let n=e===0?this.find(t):this.findIn(this.module(e),t,new Set);if(!n)throw new W(`undefined symbol: ${t}`);let[r,i]=n;if(typeof i==`function`)return this.slot(i,r,t);if(i instanceof WebAssembly.Global)return this.baseOf(r)+i.value;throw new W(`${t} is neither a function nor data`)}invalid(e){return!this.modules.has(e)}cache;compiled(){let e={};for(let[t,n]of this.byPath)e[t]=n.module;return e}replay(e){if(e.kind===`load`){if(this.modules.has(e.handle))return;this.instantiate(e.path,this.moduleAt(e.path),e,!1),this.nextHandle=Math.max(this.nextHandle,e.handle+1);return}let t=e.handle===0?this.main?.exports[e.name]:this.module(e.handle).instance.exports[e.name];if(typeof t!=`function`)throw new W(`${e.name}: not a function`);Ae(this.table,e.index+1),this.table.set(e.index,t),this.slots.set(t,e.index)}moduleAt(e){let t=this.cache?.[e];if(t)return t;let n=this.host.read(e);if(!n)throw new W(`${e}: gone`);return new WebAssembly.Module(n)}module(e){let t=this.modules.get(e);if(!t)throw new W(`invalid handle ${e}`);return t}locate(e,t,n){if(e.includes(`/`))return e.startsWith(`/`)?h(e):h(`${t}/${e}`);for(let r of[...n.filter(Boolean),...Ee]){let n=h(`${r.startsWith(`/`)?``:`${t}/`}${r}/${e}`);if(this.byPath.has(n)||this.host.read(n))return n}throw new W(`${e}: not found`)}load(e,t,n){let r=this.byPath.get(e);if(r)return r;let i=this.host.read(e);if(!i)throw new W(`${e}: no such file`);let a;try{a=new WebAssembly.Module(i)}catch(t){throw new W(`${e}: not a wasm module (${t.message})`)}let o=d(a);if(!o)throw new W(`${e}: not a side module (no dylink.0)`);let s=e.slice(0,e.lastIndexOf(`/`))||`/`,c=[s,...n,...o.runtimePath.map(e=>De(e,s))],l=o.needed.map(e=>this.load(this.locate(e,t,c),t,n).handle),u=this.allocate(o.memorySize,2**o.memoryAlign),f=this.table.length,p={kind:`load`,handle:this.nextHandle++,path:e,memoryBase:u,tableBase:f},m=this.instantiate(e,a,p,!0);return m.needed.push(...l),this.publisher?.(p),m}instantiate(e,t,n,r){let i=d(t);Ae(this.table,n.tableBase+i.tableSize);let a=[],o={memory:this.memory,__indirect_function_table:this.table,__stack_pointer:this.stackPointer,__memory_base:new WebAssembly.Global({value:`i32`,mutable:!1},n.memoryBase),__table_base:new WebAssembly.Global({value:`i32`,mutable:!1},n.tableBase),__c_longjmp:this.cLongjmp,__cpp_exception:this.cppException},s={},c={},l={handle:n.handle,path:e,module:t,info:i,instance:void 0,memoryBase:n.memoryBase,tableBase:n.tableBase,needed:[]};for(let e of WebAssembly.Module.imports(t))if(e.module===`env`&&e.kind===`function`&&!(e.name in o))o[e.name]=this.functionImport(e.name);else if(e.module===`GOT.mem`){let t=new WebAssembly.Global({value:`i32`,mutable:!0},0);s[e.name]=t,a.push(()=>{t.value=this.addressOrNull(e.name)})}else if(e.module===`GOT.func`){let t=new WebAssembly.Global({value:`i32`,mutable:!0},0);c[e.name]=t,a.push(()=>{t.value=this.slotOrNull(e.name)})}let u={...this.host.hostImports(t),env:o,"GOT.mem":s,"GOT.func":c};l.instance=new WebAssembly.Instance(t,u),this.modules.set(n.handle,l),this.byPath.set(e,l);for(let e of a)e();return r?(K(l.instance,`__wasm_apply_data_relocs`),K(l.instance,`__wasm_call_ctors`)):K(l.instance,`__wasix_init_tls`),l}functionImport(e){let t=this.find(e);if(t&&typeof t[1]==`function`)return t[1];let n;return(...t)=>{if(!n){let t=this.find(e);if(!t||typeof t[1]!=`function`)throw new WebAssembly.RuntimeError(`unresolved symbol ${e}`);n=t[1]}return n(...t)}}addressOrNull(e){let t=this.find(e);return!t||!(t[1]instanceof WebAssembly.Global)?0:this.baseOf(t[0])+t[1].value}slotOrNull(e){let t=this.find(e);return!t||typeof t[1]!=`function`?0:this.slot(t[1],t[0],e)}find(e){let t=this.main?.exports[e];if(t!==void 0)return[0,t];for(let t of this.modules.values()){let n=t.instance?.exports[e];if(n!==void 0)return[t.handle,n]}}findIn(e,t,n){if(n.has(e.handle))return;n.add(e.handle);let r=e.instance.exports[t];if(r!==void 0)return[e.handle,r];for(let r of e.needed){let e=this.findIn(this.module(r),t,n);if(e)return e}}baseOf(e){return e===0?this.memoryBase:this.module(e).memoryBase}slot(e,t,n){let r=this.slots.get(e);if(r!==void 0)return r;let i=this.table.length;return this.table.grow(1),this.table.set(i,e),this.slots.set(e,i),this.publisher?.({kind:`slot`,index:i,handle:t,name:n}),i}allocate(e,t){if(e===0)return 0;let n=ke(this.memory.buffer.byteLength,Math.max(t,16));return G(this.memory,n+e),n}};function ke(e,t){return Math.ceil(e/t)*t}function G(e,t){let n=Math.ceil(t/Te)-e.buffer.byteLength/Te;n>0&&e.grow(n)}function Ae(e,t){e.length<t&&e.grow(t-e.length)}function K(e,t){let n=e.exports[t];typeof n==`function`&&n()}function je(e,t){return h(t.startsWith(`/`)?t:`${e}/${t}`)}const Me=Object.fromEntries(Object.entries(j).map(([e,t])=>[t,Number(e)]));var Ne=class{host;driver;constructor(e,t){this.host=e,this.driver=t}call(e){return this.host.o.kernel.call(e)}environment(){return{...this.host.o.env,PWD:this.host.cwd}}locate(e,t,n){if(e.includes(`/`))return e.startsWith(`/`)?e:h(`${this.host.cwd}/${e}`);if(!t)return e;for(let t of n.split(`:`)){if(!t)continue;let n=h(`${t.startsWith(`/`)?``:`${this.host.cwd}/`}${t}/${e}`);if(this.host.o.fs.exists(n))return n}return e}childFds(e){let{fds:t}=this.host;t.promoteFiles();let n=t.inheritable(),r=[],i=this.host.cwd;try{for(let a of e)if(a.cmd===`close`)n.delete(a.fd);else if(a.cmd===`dup2`){let e=n.get(a.srcFd)??(t.find(a.srcFd)?.type===`kernel`?a.srcFd:void 0);if(e===void 0)throw Object.assign(Error(`EBADF`),{code:`EBADF`});n.set(a.fd,e)}else if(a.cmd===`open`){let e=this.openFor(a,i);r.push(e),n.set(a.fd,e)}else i=a.cmd===`chdir`?je(i,a.path):t.dir(a.fd).path}catch(e){for(let e of r)this.host.o.kernel.sys.close(e);throw e}return{stdio:[0,1,2].map(e=>{let t=n.get(e);return t===void 0?{none:!0}:{fd:t}}),inherit:[...n].filter(([e])=>e>2).map(([e,t])=>({fd:e,kernel:t})),cwd:i,opened:r}}openFor(e,t){let n=je(t,e.path);if(!this.host.o.fs.exists(n)&&!(e.oflags&1))throw Object.assign(Error(`ENOENT`),{code:`ENOENT`});let r=(e.rightsWrite?2:0)|(e.append?1024:0);return this.host.o.kernel.sys.openVfs(n,e.rightsWrite?r||1:0,0,{...e.oflags&8?{contents:new Uint8Array}:{}})}spawn(e){let{stdio:t,inherit:n,cwd:r,opened:i}=this.childFds(e.ops??[]);try{return this.call({op:`proc-spawn`,file:this.locate(e.name,e.search,e.path),argv:e.argv.length>0?e.argv:[e.name],env:e.env??this.environment(),cwd:r,stdio:t,inherit:n})}finally{for(let e of i)this.host.o.kernel.sys.close(e)}}exec(e){let t=this.spawn(e),[,n]=this.call({op:`proc-exec`,pid:t}),r=n&127;throw new R(r?128+r:n>>8&255)}join(e,t,n){let r=this.host.mem.view(),i=r.getUint8(e)===1?r.getUint32(e+4,!0):-1;this.host.mem.bytes(n,6).fill(0);let[a,o]=this.call({op:`proc-wait`,pid:i,nohang:!!(t&1)});if(a===0)return;r.setUint8(e,1),r.setUint32(e+4,a,!0);let s=o&127;s?(r.setUint8(n,2),r.setUint8(n+4,Me[s]??s)):(r.setUint8(n,1),r.setUint16(n+2,o>>8&255,!0))}fork(e){let t=this.driver.rewound();if(t!==void 0){this.host.mem.view().setUint32(e,t,!0);return}return this.driver.fork((e,t,n)=>{let{fds:r}=this.host;r.promoteFiles();let i=this.host.mem.bytes(0,this.host.mem.size()).slice(),a={asyncifyData:e,globals:t,fds:r.snapshot(),cloexec:[...r.cloexec],cwd:this.host.cwd,...r.isShared?{shared:!0}:{},setjmps:this.driver.setjmps()};return this.call({op:`proc-fork`,state:{memory:i,currData:0,forkSp:n,callStackNames:[],ppid:this.host.o.pid,wasi:a}})})}};const Pe={1:[1,15],2:[1,2],3:[6,1],4:[1,5],6:[1,6],10:[1,30],11:[1,4],12:[1,9],14:[1,10],15:[1,8],16:[1,7],25:[1,3]};function Fe(e,t){let n=e.getUint8(t);if(n===3){let n=t+2;for(;n<t+110&&e.getUint8(n)!==0;)n++;return{family:`unix`,path:new TextDecoder().decode(new Uint8Array(e.buffer,t+2,n-t-2).slice())}}let r=e.getUint16(t+2,!0);if(n===1)return{family:`inet`,host:[0,1,2,3].map(n=>e.getUint8(t+4+n)).join(`.`),port:r};if(n===2)return{family:`inet`,host:new Uint8Array(e.buffer,t+4,16).every(e=>e===0)?`0.0.0.0`:`127.0.0.1`,port:r};throw new f(`EAFNOSUPPORT`)}function q(e,t,n){if(new Uint8Array(e.buffer,t,110).fill(0),n){if(n.family===`unix`){e.setUint8(t,3),new Uint8Array(e.buffer,t+2,107).set(new TextEncoder().encode(n.path).subarray(0,107));return}e.setUint8(t,1),e.setUint16(t+2,n.port,!0),(Ie(n.host)??[127,0,0,1]).forEach((n,r)=>void e.setUint8(t+4+r,n))}}function Ie(e){let t=e.split(`.`);if(t.length!==4)return;let n=t.map(e=>/^\d{1,3}$/.test(e)?Number(e):NaN);return n.every(e=>e>=0&&e<=255)?n:void 0}function Le(e){return e===`localhost`||e===`localhost.localdomain`||e===`ip6-localhost`||e===`::1`?[127,0,0,1]:Ie(e)}function Re(e,t){let{mem:n,fds:r,o:i}=e,a=e=>i.kernel.call(e),o=e=>{let t=r.get(e);if(t.type!==`kernel`||r.kind(e,t)!==`socket`)throw new f(`ENOTSOCK`);return t},s=e=>Pe[e];return{sock_open:(e,t,i,o)=>{if(e!==1&&e!==2&&e!==3)throw new f(`EAFNOSUPPORT`);if(t!==1)throw new f(`EPROTONOSUPPORT`);let s=a({op:`sock-open`,domain:e===3?`unix`:`inet`});r.adopt(s,`socket`,!1),n.view().setUint32(o,s,!0)},sock_bind:(e,t)=>{o(e),a({op:`sock-bind`,fd:e,addr:Fe(n.view(),t)})},sock_listen:(e,t)=>{o(e),a({op:`sock-listen`,fd:e,backlog:t})},sock_connect:(e,t)=>{let r=o(e);a({op:`sock-connect`,fd:e,addr:Fe(n.view(),t),nonblock:r.nonblock})},sock_accept_v2:(e,t,i,s)=>{let c=o(e),l=a({op:`sock-accept`,fd:e,nonblock:c.nonblock});r.adopt(l.fd,`socket`,(t&C.NONBLOCK)!==0),n.view().setUint32(i,l.fd,!0),q(n.view(),s,l.peer)},sock_addr_local:(e,t)=>{o(e),q(n.view(),t,a({op:`sock-name`,fd:e,peer:!1}))},sock_addr_peer:(e,t)=>{o(e),q(n.view(),t,a({op:`sock-name`,fd:e,peer:!0}))},sock_recv_from:(e,r,i,o,s,c,l)=>{let u=t.sock_recv(e,r,i,o,s,c);return u===v.SUCCESS?(q(n.view(),l,a({op:`sock-name`,fd:e,peer:!0})),v.SUCCESS):u},sock_send_to:(e,n,r,i,a,o)=>t.sock_send(e,n,r,i,o),sock_status:(e,t)=>{o(e),n.view().setUint8(t,1)},sock_get_opt_flag:(e,t,r)=>{o(e);let i=s(t),c=i?a({op:`sock-getopt`,fd:e,level:i[0],name:i[1]}):0;n.view().setUint8(r,+!!c)},sock_set_opt_flag:(e,t,n)=>{o(e);let r=s(t);r&&a({op:`sock-setopt`,fd:e,level:r[0],name:r[1],value:+!!n})},sock_get_opt_size:(e,t,r)=>{o(e);let i=s(t),c=i?a({op:`sock-getopt`,fd:e,level:i[0],name:i[1]}):0;n.view().setBigUint64(r,BigInt(c),!0)},sock_set_opt_size:(e,t,n)=>{o(e);let r=s(t);r&&a({op:`sock-setopt`,fd:e,level:r[0],name:r[1],value:Number(n)})},sock_get_opt_time:(e,t,r)=>{o(e),new Uint8Array(n.view().buffer,r,16).fill(0)},sock_set_opt_time:e=>void o(e),sock_send_file:()=>v.NOSYS,resolve:(e,t,r,i,a,o)=>{let s=Le(n.string(e,t));if(!s)throw new f(`ENOENT`);if(a<1)throw new f(`EINVAL`);let c=n.view();new Uint8Array(c.buffer,i,18).fill(0),c.setUint8(i,1),s.forEach((e,t)=>void c.setUint8(i+2+t,e)),c.setUint32(o,1,!0)}}}const ze=[`close`,`dup2`,`open`,`chdir`,`fchdir`],Be=1n<<6n;var Ve=class e{host;driver;process;threads;linker;signals;constructor(e,t,n){this.host=e,this.driver=t,this.process=new Ne(e,t),n&&!WebAssembly.Module.imports(n).some(e=>e.name===`fd_fdflags_set`)&&(e.fds.implicitCloexec=!0,e.interruptWakes=!0)}get mem(){return this.host.mem}str(e,t){let n=this.mem.string(e,t);return n.endsWith(`\0`)?n.slice(0,-1):n}cStrings(e,t){let n=this.mem.view();return Array.from({length:t},(t,r)=>this.mem.cString(n.getUint32(e+r*4,!0)))}execOrExit(t,n,r,i,a,o){try{return this.process.exec({name:this.str(t,n),argv:e.lines(this.str(r,i)),env:e.env(a===0?void 0:e.lines(this.str(a,o))),search:!1,path:``})}catch(e){if(e instanceof R)throw e;let t=e instanceof f?e.code:e?.code;throw new R(y(typeof t==`string`?t:`ENOEXEC`))}}static env(e){if(!e)return;let t={};for(let n of e){let e=n.indexOf(`=`);e>0&&(t[n.slice(0,e)]=n.slice(e+1))}return t}static lines(e){return e.split(`
3
3
  `).filter((e,t,n)=>e!==``||t<n.length-1)}spawnOps(e,t){let n=this.mem.view();return Array.from({length:t},(t,r)=>{let i=e+r*56,a=ze[n.getUint8(i)];if(!a)throw new f(`EINVAL`);return{cmd:a,fd:n.getUint32(i+4,!0),srcFd:n.getUint32(i+8,!0),path:this.str(n.getUint32(i+12,!0),n.getUint32(i+16,!0)),oflags:n.getUint16(i+24,!0),rightsWrite:(n.getBigUint64(i+32,!0)&Be)!==0n,append:(n.getUint16(i+48,!0)&C.APPEND)!==0}})}imports(){return U({...this.startupImports(),...this.fdImports(),...this.processImports(),...this.threadImports(),...this.dlImports(),...Re(this.host,this.host.imports())})}preview1(){let{fds:e}=this.host;return U({fd_renumber:(t,n)=>void e.renumber(t,n,!0),fd_close:t=>{let n=e.get(t);(n.type!==`dir`||!n.preopen)&&e.close(t)}})}startupImports(){let{host:e,mem:t}=this;return{proc_exit2:e=>{throw new R(e)},proc_signals_sizes_get:e=>void t.view().setUint32(e,0,!0),proc_signals_get:()=>v.SUCCESS,callback_signal:(e,t)=>void this.signals?.register(this.str(e,t)),proc_raise_interval:(t,n,r)=>void e.o.kernel.call({op:`proc-alarm`,sig:He(t),ms:J(n),repeat:r!==0}),proc_raise_interval2:(t,n,r,i)=>{let a=J(r);e.o.kernel.call({op:`proc-alarm`,sig:He(t),ms:a,firstMs:J(n),repeat:i!==0&&a>0})},proc_id:n=>void t.view().setUint32(n,e.o.pid,!0),proc_parent:(n,r)=>{if(n!==0&&n!==e.o.pid)throw new f(`ESRCH`);t.view().setUint32(r,e.o.ppid??1,!0)},getcwd:(n,r)=>{let i=new TextEncoder().encode(e.cwd),a=t.view().getUint32(r,!0);return t.view().setUint32(r,i.length,!0),i.length>a?v.RANGE:(t.bytes(n,i.length).set(i),i.length<a&&t.view().setUint8(n+i.length,0),v.SUCCESS)},chdir:(t,n)=>{let r=e.fds.resolve(3,this.str(t,n));if(!e.o.fs.stat(r).isDirectory)throw new f(`ENOTDIR`);e.fds.chdir(r)}}}fdImports(){let{host:e,mem:t}=this,n=e.imports();return{fd_dup:(n,r)=>void t.view().setUint32(r,e.fds.dup(n,0,!1),!0),fd_dup2:(n,r,i,a)=>void t.view().setUint32(a,e.fds.dup(n,r,i!==0),!0),fd_pipe:(n,r)=>{let[i,a]=e.fds.pipe();t.view().setUint32(n,i,!0),t.view().setUint32(r,a,!0)},fd_fdflags_get:(n,r)=>{e.fds.get(n),t.view().setUint16(r,+!!e.fds.cloexec.has(n),!0)},fd_fdflags_set:(t,n)=>void e.fds.setCloexec(t,!!(n&1)),path_open2:(r,i,a,o,s,c,l,u,d,f)=>{let p=n.path_open(r,i,a,o,s,c,l,u,f);return p===v.SUCCESS&&d&1&&e.fds.setCloexec(t.view().getUint32(f,!0),!0),p},tty_get:e=>void this.ttyGet(e),tty_set:e=>void this.ttySet(e)}}processImports(){let{mem:t,process:n}=this;return{proc_fork:(e,t)=>n.fork(t),stack_checkpoint:(e,n)=>{let r=this.driver.rewound();return r===void 0?this.driver.checkpoint(e,n):(t.view().setBigUint64(n,BigInt(r),!0),v.SUCCESS)},stack_restore:(e,t)=>void this.driver.restore(e,t),proc_join:(e,t,r)=>void n.join(e,t,r),proc_signal:(e,t)=>{let n=t===0?0:j[t];if(n===void 0)throw new f(`EINVAL`);e===this.host.o.pid&&n!==0&&this.host.onRaise?.(n)||this.host.o.kernel.call({op:`proc-kill`,pid:e,sig:n})},proc_exec:(e,t,n,r)=>this.execOrExit(e,t,n,r,0,0),proc_exec2:(e,t,n,r,i,a)=>this.execOrExit(e,t,n,r,i,a),proc_exec3:(t,r,i,a,o,s,c,l,u)=>n.exec({name:this.str(t,r),argv:e.lines(this.str(i,a)),env:e.env(e.lines(this.str(o,s))),search:c!==0,path:this.str(l,u)}),proc_exec4:(t,r,i,a,o,s,c,l,u)=>n.exec({name:this.str(t,r),argv:this.cStrings(i,a),env:e.env(o===0?void 0:this.cStrings(o,s)),search:c!==0,path:this.str(l,u)}),proc_spawn2:(...r)=>{let[i,a,o,s,c,l,u,d,,,f,p,m,h]=r,g=n.spawn({name:this.str(i,a),argv:e.lines(this.str(o,s)),env:e.env(e.lines(this.str(c,l))),search:f!==0,path:this.str(p,m),ops:this.spawnOps(u,d)});t.view().setUint32(h,g,!0)},proc_spawn3:(...r)=>{let[i,a,o,s,c,l,u,d,,,f,p,m,h]=r,g=n.spawn({name:this.str(i,a),argv:this.cStrings(o,s),env:e.env(c===0?void 0:this.cStrings(c,l)),search:f!==0,path:this.str(p,m),ops:this.spawnOps(u,d)});t.view().setUint32(h,g,!0)}}}dlImports(){let{mem:e,host:t}=this,n=(t,n,r)=>{if(r>0){let i=new TextEncoder().encode(t).subarray(0,r-1);e.bytes(n,i.length).set(i),e.view().setUint8(n+i.length,0)}return v.NOEXEC},r=(e,t,r,i)=>{if(!this.linker)return n(`not a dynamically-linked program`,e,t);try{return i(r(this.linker)),v.SUCCESS}catch(r){if(r instanceof W)return n(r.message,e,t);throw r}};return{dlopen:(n,i,a,o,s,c,l,u)=>n===0?(e.view().setUint32(u,0,!0),v.SUCCESS):r(o,s,e=>e.open(this.str(n,i),t.cwd,c===0?[]:this.str(c,l).split(`:`)),t=>void e.view().setUint32(u,t,!0)),dlsym:(t,n,i,a,o,s)=>r(a,o,e=>e.symbol(t,this.str(n,i)),t=>void e.view().setUint32(s,t,!0)),dl_invalid_handle:e=>e!==0&&this.linker&&!this.linker.invalid(e)?v.SUCCESS:v.NOEXEC}}threadImports(){let{mem:e,host:t}=this,n=()=>new Int32Array(e.view().buffer);return{thread_id:t=>void e.view().setUint32(t,this.threads?.tid??1,!0),thread_parallelism:t=>void e.view().setUint32(t,this.threads?.parallelism()??1,!0),thread_exit:e=>{throw this.threads&&this.threads.tid!==1?new be:new R(e)},thread_signal:(e,n)=>{if(!(this.threads?.known(e)??e===1))throw new f(`ESRCH`);let r=j[n];if(r===void 0)throw new f(`EINVAL`);t.onRaise?.(r)||t.o.kernel.call({op:`proc-kill`,pid:t.o.pid,sig:r})},thread_spawn_v2:(t,n)=>{if(!this.threads)return v.NOTSUP;let r=this.threads.spawn(t);return r<0?v.AGAIN:(e.view().setUint32(n,r,!0),v.SUCCESS)},futex_wait:(t,r,i,a)=>{let o=e.view(),s=i!==0&&o.getUint8(i)===1?Number(o.getBigUint64(i+8,!0))/1e6:1/0;o.setUint8(a,Atomics.wait(n(),t>>2,r|0,s)===`timed-out`?0:1)},futex_wake:(t,r)=>{Atomics.notify(n(),t>>2,1),e.view().setUint8(r,1)},futex_wake_all:(t,r)=>{Atomics.notify(n(),t>>2),e.view().setUint8(r,1)}}}ttyFd(){for(let e of[0,1,2]){let t=this.host.fds.find(e);if(t?.type===`kernel`&&this.host.fds.kind(e,t)===`tty`)return e}}ttyGet(e){let{host:t,mem:n}=this,r=n.view();n.bytes(e,24).fill(0);let i=this.ttyFd(),a=e=>{let n=t.fds.find(e);return+(n?.type===`kernel`&&t.fds.kind(e,n)===`tty`)};if(r.setUint8(e+16,a(0)),r.setUint8(e+17,a(1)),r.setUint8(e+18,a(2)),i===void 0){r.setUint32(e,80,!0),r.setUint32(e+4,24,!0);return}let[o,s]=t.o.kernel.sys.winsize?.(i)??[24,80],c=t.o.kernel.sys.tcgets?.(i);r.setUint32(e,s,!0),r.setUint32(e+4,o,!0),r.setUint8(e+19,c&&c.c_lflag&8?1:0),r.setUint8(e+20,c&&c.c_lflag&2?1:0)}ttySet(e){let t=this.ttyFd();if(t===void 0)throw new f(`ENOTTY`);let{sys:n}=this.host.o.kernel,r=n.tcgets?.(t);if(!r)throw new f(`ENOTTY`);let i=this.mem.view(),a=r.c_lflag&-11;i.getUint8(e+19)&&(a|=8),i.getUint8(e+20)&&(a|=2),n.tcsets?.(t,{...r,c_lflag:a})}};function He(e){let t=j[e];if(t===void 0)throw new f(`EINVAL`);return t}function J(e){return Math.ceil(Number(e)/1e6)}const Ue=`wasi_snapshot_preview1`,Y=`wasix_32v1`;function We(e,t){let n=WebAssembly.Module.imports(e),r=n.some(e=>e.module===Y),i=d(e)!==void 0;for(let e of n)if(e.module!==Ue&&e.module!==Y&&!(i&&(e.module===`GOT.mem`||e.module===`GOT.func`))&&!(i&&e.module===`env`&&e.kind!==`memory`)&&(e.kind!==`memory`||t?.module!==e.module||t.name!==e.name)&&!(e.module===`wasi`&&e.name===`thread-spawn`&&(r||t?.shared)))return e.kind===`memory`||e.module===`wasi`?`imports ${e.module}.${e.name}: no WASI program this host runs`:`imports ${e.module}.${e.name}: no WASI preview1 program (an Emscripten one runs with its glue)`;if(!WebAssembly.Module.exports(e).some(e=>e.name===`_start`))return`no WASI command (it exports no _start)`}function Ge(e,t,n,r,i){let a={[Ue]:t,...n?{[Y]:{...n}}:{},...i?{wasi:{"thread-spawn":e=>i.spawn(e)}}:{}};for(let t of WebAssembly.Module.imports(e)){let e=a[t.module]??={};t.name in e||(t.kind===`memory`&&r?e[t.name]=r:t.kind===`function`&&(e[t.name]=()=>t.name===`thread-spawn`?-1:52))}return a}function Ke(e,t){if(!e)return;let n=new WebAssembly.Memory({initial:e.initial,maximum:e.maximum??65536,shared:e.shared});if(t){let e=t.byteLength/65536-n.buffer.byteLength/65536;e>0&&n.grow(e),new Uint8Array(n.buffer).set(t)}return n}function qe(t,r,a={masks:()=>null,raise:()=>{}}){let s=new o(n(t.sab,r),new Int32Array(t.sab,0,16),a).transport(),c=e(s);return{transport:s,sys:c,call:e=>{let t=s.call(e,1/0,e.op);if(!t.ok)throw new i(t.errno);return t.kind===`json`?t.json:void 0},say:e=>c.write(2,new TextEncoder().encode(`${t.argv0}: ${e}\n`))}}function X(e,t,n){return e?e.wrap(t,n):n}function Je(e,t){return n=>e.time(`kernel.${n.op}`,()=>t(n))}function Ye(e,t){e.phase(`run`);try{t.write(2,new TextEncoder().encode(e.report()))}catch{}}function Xe(e){return WebAssembly.Module.imports(e).some(e=>e.module===`wasi`&&e.name===`thread-spawn`||e.module===Y&&e.name===`thread_spawn_v2`)}async function Ze(e,t,n,r,{thread:i=!1,stats:a,signals:o}={}){let s=new we(e.mem),c=WebAssembly.Module.imports(t).some(e=>e.module===Y)?new Ve(e,s,t):void 0;c&&(c.threads=r,c.signals=o);let l=X(a,`wasi`,{...e.imports(),...c?.preview1()}),u=c&&X(a,`wasix`,c.imports()),f=d(t),p=f&&n?new et(new Oe(n,f,Qe(e,()=>h),i),t=>e.o.kernel.call(t),r?.ids):void 0;p&&({preview1:l,wasix:u}=p.guard(l,u),c&&(c.linker=p.linker),r&&(p.linker.cache=r.received,r.modules=()=>p.linker.compiled()));let m=Ge(t,l,u,n,r),h=p?$e(m,p.linker.mainImports(t)):m,g=await WebAssembly.instantiate(t,h);a?.phase(`instantiate`);let _=g.exports;return e.mem.bind(n??_.memory),p&&(p.linker.bindMain(g,!i),i&&p.catchUp(),p.linker.bindMainGot()),{instance:g,driver:s}}function Qe(e,t){return{read:t=>{try{return e.o.fs.readFile(t)}catch{return}},hostImports:()=>{let{env:e,"GOT.mem":n,"GOT.func":r,...i}=t();return i}}}function $e(e,t){let n={...e};for(let[r,i]of Object.entries(t))n[r]={...e[r],...i};return n}var et=class{linker;call;ids;count=0;gen=0;constructor(e,t,n){this.linker=e,this.call=t,this.ids=n,e.publisher=e=>this.publish(e)}publish(e){let t=this.call({op:`dl-log`,append:e,from:this.count});for(let e of t.slice(0,-1))this.linker.replay(e);this.count+=t.length,this.ids&&(this.gen=Atomics.add(this.ids,Z,1)+1)}catchUp(){let e=this.call({op:`dl-log`,from:this.count});for(let t of e)this.linker.replay(t);this.count+=e.length,this.ids&&(this.gen=Atomics.load(this.ids,Z))}guard(e,t){let n=this.ids;if(!n)return{preview1:e,wasix:t};let r=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e,((...e)=>{Atomics.load(n,Z)!==this.gen&&this.catchUp();let r=t(...e);return Atomics.load(n,Z)!==this.gen&&this.catchUp(),r})]));return{preview1:r(e),wasix:t&&r(t)}}};const Z=3;async function tt(e,t){$(e.env);let n=new ve(t=>{throw c({op:`proc-kill`,pid:e.pid,sig:t}),new R(128+t)}),{transport:r,sys:i,call:a,say:o}=qe(e,t,n),s=e.env.SLICC_WASI_STATS===`1`?new ye:void 0,c=s?Je(s,a):a,{module:l}=e.program,d=We(l,e.program.memory);if(d)return o(d),126;let f=e.fork?.wasi,p=Ke(e.program.memory,f?e.fork?.memory:void 0),m=p?.buffer instanceof SharedArrayBuffer&&Xe(l)?new Se(t,p,xe(e.env),1):void 0,h=new he({args:[e.argv0,...e.args],env:e.env,cwd:f?.cwd??e.cwd,pid:e.pid,...e.ppid===void 0?{}:{ppid:e.ppid},kernel:{sys:X(s,`kernel`,i),call:c},fs:ee(X(s,`fs`,u(r))),...f?.shared&&m?{shared:m.ids}:f?{forked:{fds:f.fds,cloexec:f.cloexec}}:{inherited:(e.fds??[]).map(e=>({fd:e.fd,kind:e.kind,flags:e.flags}))}});m&&(m.beforeSpawn=()=>{h.fds.isShared||h.fds.share(m.ids,!1)});let{instance:g,driver:_}=await Ze(h,l,p,m,{stats:s,signals:n});n.bind(g.exports),h.onRaise=e=>n.raised(e);let v=g.exports;_.bind(g.exports);try{f&&_.startChild(f);do v._start();while(_.resume());return 0}catch(t){if(t instanceof R)return t.code;if(!(t instanceof WebAssembly.RuntimeError))throw t;try{o(Q(t,e.env))}catch{throw Error(`${e.argv0}: wasm trap: ${t.message}`)}return 134}finally{h.flushAll(),s&&Ye(s,i)}}function Q(e,t,n=``){let r=`wasm trap${n}: ${e.message}`;if(t.SLICC_WASM_BACKTRACE!==`1`)return r;let i=(e.stack??``).split(`
4
4
  `).filter(e=>/^\s+at .*wasm:\/\/wasm\//.test(e)).slice(0,40);return i.length?`${r}\n${i.join(`
5
5
  `)}`:r}function $(e){e.SLICC_WASM_BACKTRACE===`1`&&(Error.stackTraceLimit=Math.max(Error.stackTraceLimit??0,60))}async function nt(e,t){$(e.env);let{transport:n,sys:r,call:i,say:o}=qe(e,t),{thread:s}=e,c=new Se(t,s.memory,xe(e.env),s.tid,s.ids);c.received=s.modules;let{instance:d}=await Ze(new he({args:[e.argv0,...e.args],env:e.env,cwd:e.cwd,pid:e.pid,...e.ppid===void 0?{}:{ppid:e.ppid},kernel:{sys:r,call:i},fs:ee(u(n)),shared:c.ids}),e.program.module,s.memory,c,{thread:!0}),f=d.exports.wasi_thread_start;try{f(s.tid,s.arg),c.exited()}catch(n){if(n instanceof be){c.exited();return}if(n instanceof R){t.postMessage({type:a,code:n.code});return}if(n instanceof WebAssembly.RuntimeError){try{o(Q(n,e.env,` in thread ${s.tid}`))}catch{}t.postMessage({type:a,code:134});return}t.postMessage({type:l,message:n instanceof Error?n.stack??n.message:String(n)})}}export{$ as captureBacktraces,tt as runWasiProcess,nt as runWasiThread,Q as trapMessage,We as unsupportedImport};
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-shell-CjZMoCV4.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/mime-types-D0xZwlMO.js","assets/base64-ELzoYfwP.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-B9NAiCud.js","assets/core-4boN-CgI.js","assets/compat-BAGLwgqY.js","assets/models-Xc0Gclrk.js","assets/diagnostics-Cag7MsZI.js","assets/env-api-keys-BXRkymgV.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-DHpsqCCC.js","assets/libesm-BypnjKEL.js","assets/feature-flags-DvsApnS-.js","assets/proxied-fetch-Cplb-Tee.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-Dm_PZRZx.js","assets/float-topology-C9GjBEv-.js","assets/secrets-bridge-client-CWv2_nw7.js","assets/port-bridge-client-D_erEovW.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-DdxfStbH.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-B1oHsbyo.js","assets/bedrock-camp-extra-models-BYrxX19D.js","assets/claude-model-version-DZmbk9E2.js","assets/telemetry-B0sKnLBU.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-2DY2vYOc.js","assets/wc-shell-WkeczD9x.css","assets/wc-secret-request-mkhCBMcE.js","assets/secret-request-registry-DrOMKR1H.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-shell-BzYq0ESt.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/mime-types-D0xZwlMO.js","assets/base64-ELzoYfwP.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-B857f9Kw.js","assets/core-4boN-CgI.js","assets/compat-BAGLwgqY.js","assets/models-Xc0Gclrk.js","assets/diagnostics-Cag7MsZI.js","assets/env-api-keys-BXRkymgV.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-DHpsqCCC.js","assets/libesm-BypnjKEL.js","assets/feature-flags-DvsApnS-.js","assets/proxied-fetch-Cplb-Tee.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-Dm_PZRZx.js","assets/float-topology-C9GjBEv-.js","assets/secrets-bridge-client-CWv2_nw7.js","assets/port-bridge-client-D_erEovW.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-jygoVQBo.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-B1oHsbyo.js","assets/bedrock-camp-extra-models-BYrxX19D.js","assets/claude-model-version-DZmbk9E2.js","assets/telemetry-B0sKnLBU.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-2DY2vYOc.js","assets/wc-shell-WkeczD9x.css","assets/wc-secret-request-BAhfbP9J.js","assets/secret-request-registry-DrOMKR1H.js"])))=>i.map(i=>d[i]);
2
2
  import{t as e}from"./preload-helper-Czpn1I53.js";import{r as t,t as n}from"./base64-ELzoYfwP.js";import{t as r}from"./permissions-surface-registry-CilCRwhh.js";var i=8,a=2e3,o=[`/workspace`,`/shared`,`/tmp`],s=8,c=new Set([`node_modules`,`.git`]),l=1e4,u=/\.(png|jpe?g|gif|webp|svg|avif)$/i,d=4194304,f=262144;function p(){return`att-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function m(e){return{png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,gif:`image/gif`,webp:`image/webp`,svg:`image/svg+xml`,avif:`image/avif`,md:`text/markdown`,json:`application/json`}[e.toLowerCase().split(`.`).pop()??``]??`text/plain`}function h(e,n){let r={id:p(),name:e,size:n.length};if(u.test(e))return n.length>d?{...r,mimeType:m(e),kind:`image`,error:`image too large to inline`}:{...r,mimeType:m(e),kind:`image`,data:t(n)};let i={...r,mimeType:m(e),kind:`file`};return n.length>f?{...i,error:`file too large to inline`}:i}async function g(e){let t=new Uint8Array(await e.arrayBuffer()),n=h(e.name,t);return e.type?{...n,mimeType:e.type}:n}function _(e,t){let n=t.match(/^data:(image\/[^;]+);base64,(.+)$/);return n?{id:p(),name:e,mimeType:n[1],size:Math.floor(n[2].length*3/4),kind:`image`,data:n[2]}:null}var v=`/tmp/upload`,y=1568;async function b(e,t,n){await e.mkdir(v,{recursive:!0}).catch(()=>void 0);let r=`${v}/${Date.now()}-${t.replace(/[^A-Za-z0-9._-]+/g,`_`)}`;return await e.writeFile(r,n),r}async function x(e,t=y){let n=new Image;n.src=e;try{await n.decode()}catch{return e}let r=Math.min(1,t/Math.max(n.naturalWidth,n.naturalHeight,1));if(r>=1)return e;let i=document.createElement(`canvas`);return i.width=Math.round(n.naturalWidth*r),i.height=Math.round(n.naturalHeight*r),i.getContext(`2d`)?.drawImage(n,0,0,i.width,i.height),i.toDataURL(`image/jpeg`,.85)}async function S(e,t,r){let i=_(e,t);if(!i)return null;let a;return r&&i.data&&(a=await b(r,e,n(i.data)).catch(()=>void 0)),{..._(e,await x(t).catch(()=>t))??i,name:e,path:a}}async function C(e,t,n){if(!n)return null;let r=new Uint8Array(await t.arrayBuffer()),i=await b(n,e,r).catch(()=>void 0);return i?{id:p(),name:e,mimeType:t.type||`video/webm`,size:r.length,kind:`file`,path:i}:null}async function w(e){let t=[],n=o.map(e=>({dir:e,depth:0}));for(;n.length>0&&t.length<a;){let{dir:r,depth:i}=n.shift(),o;try{o=await e.readDir(r)}catch{continue}for(let e of o){let o=`${r}/${e.name}`;if(e.type===`directory`)i<s&&!c.has(e.name)&&n.push({dir:o,depth:i+1});else if(t.push(o),t.length>=a)break}}return t}function T(e){let t=null;return async n=>{let r=await e.openReader();(!t||Date.now()-t.at>l)&&(t={at:Date.now(),paths:await w(r)});let a=e=>n===``||e.toLowerCase().includes(n),o=t.paths.filter(e=>a(e)).slice(0,i).map(e=>({id:e,label:e.split(`/`).pop()??e,sub:e.slice(0,e.lastIndexOf(`/`))})),s=[];try{s=(await r.readDir(`/workspace/skills`)).filter(e=>e.type===`directory`&&a(e.name)).slice(0,i).map(e=>({id:e.name,label:e.name}))}catch{}let c=(await e.listConversations().catch(()=>[])).filter(e=>a(e.label)).slice(0,i);return[{kind:`file`,label:`Files`,icon:`file`,entries:o},{kind:`skill`,label:`Skills`,icon:`sparkles`,entries:s},{kind:`conversation`,label:`Conversations`,icon:`message-square`,entries:c}]}}var E=`slicc-wc-attach-style`,D=`
3
3
  .wcatt{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px 0;font-family:var(--ui);}
4
4
  .wcatt:empty{display:none;}
@@ -10,4 +10,4 @@ import{t as e}from"./preload-helper-Czpn1I53.js";import{r as t,t as n}from"./bas
10
10
  .wcatt__x{appearance:none;background:none;border:none;cursor:pointer;color:var(--txt-3);
11
11
  font:inherit;padding:0;line-height:1;}
12
12
  .wcatt__x:hover{color:var(--ink);}
13
- `,O=class{#e;#t=[];constructor(e){if(!document.getElementById(E)){let e=document.createElement(`style`);e.id=E,e.textContent=D,document.head.appendChild(e)}this.#e=document.createElement(`div`),this.#e.className=`wcatt`,e.prepend(this.#e)}get items(){return this.#t}add(e){this.#t.push(e),this.#n()}take(){let e=this.#t;return this.#t=[],this.#n(),e}#n(){this.#e.replaceChildren(...this.#t.map(e=>this.#r(e)))}#r(t){let n=document.createElement(`span`);if(n.className=`wcatt__chip`,t.kind===`image`&&t.data){let r=document.createElement(`img`);r.className=`wcatt__thumb`,r.src=`data:${t.mimeType};base64,${t.data}`,r.alt=t.name,r.addEventListener(`click`,()=>{e(async()=>{let{SliccImagePreview:e}=await import(`./wc-shell-CjZMoCV4.js`).then(e=>e.N);return{SliccImagePreview:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37])).then(({SliccImagePreview:e})=>e.show(r.src,r))}),n.append(r)}let r=document.createElement(`span`);r.className=`wcatt__name`,r.textContent=t.name;let i=document.createElement(`button`);return i.type=`button`,i.className=`wcatt__x`,i.setAttribute(`aria-label`,`Remove ${t.name}`),i.textContent=`×`,i.addEventListener(`click`,()=>{this.#t=this.#t.filter(e=>e.id!==t.id),this.#n()}),n.append(r,i),n}};async function k(e){let t=document.createElement(`video`);t.srcObject=e,t.muted=!0;try{await t.play(),await new Promise(e=>requestAnimationFrame(()=>e(null)));let e=document.createElement(`canvas`);return e.width=t.videoWidth,e.height=t.videoHeight,e.width===0||e.height===0?null:(e.getContext(`2d`)?.drawImage(t,0,0),e.toDataURL(`image/png`))}finally{for(let t of e.getTracks())t.stop();t.srcObject=null}}async function A(){let e=r();if(e){let t=await e.request(`screenshare`,{constraints:{video:!0}});if(!t)return null;let n=t.stream;return k(n)}return k(await navigator.mediaDevices.getDisplayMedia({video:!0}))}async function j(e,t){let n=r();if(!n)return null;let i=await n.prompt({kinds:e,description:t,skipIfGranted:!0});for(let e of i.grants)if(e.kind===`camera`||e.kind===`microphone`||e.kind===`screenshare`)for(let t of e.stream.getTracks())t.stop();return i.status===`granted`}var M=`slicc_camera_device`,N=`slicc_microphone_device`,P=[`position:absolute`,`left:50%`,`right:auto`,`transform:translateX(-50%)`,`bottom:56px`,`width:calc(100% - 32px)`,`max-width:680px`,`z-index:3`].join(`;`);async function F(e,t){if(await j([`camera`,`microphone`],`Slicc is requesting access to your camera and microphone to capture a photo or video for this conversation.`)===!1)return null;let n=document.createElement(`slicc-composer-capture`),r=localStorage.getItem(M);r&&n.setAttribute(`preferred-device`,r);let i=localStorage.getItem(N);i&&n.setAttribute(`preferred-audio-device`,i),n.style.cssText=P,n.hidden=!0,n.addEventListener(`slicc-capture-device-change`,e=>{let t=e.detail;if(!t?.deviceId)return;let n=t.kind===`microphone`?N:M;localStorage.setItem(n,t.deviceId)}),e.append(n);try{return await n.open(t)}finally{n.remove()}}async function I(e,t,n){if(!e.dataUrl)return;let r=`photo-${Date.now()}.png`,i=await t.openWriter?.().catch(()=>null)??null,a=await S(r,e.dataUrl,i);a&&n.add(a)}async function L(e,t,n){if(!e.blob)return;let r=/webm/i.test(e.mimeType)?`webm`:`bin`,i=`video-${Date.now()}.${r}`,a=await t.openWriter?.().catch(()=>null)??null,o=await C(i,e.blob,a);o&&n.add(o)}async function R(e,t,n){if(e.mode===`photo`){if(!t.composer){let e=await z();if(!e)return;let r=await S(`photo-${Date.now()}.png`,e,await t.openWriter?.().catch(()=>null)??null);r&&n.add(r);return}let e=await F(t.composer,`photo`);if(!e)return;e.kind===`image`?await I(e,t,n):e.kind===`video`&&await L(e,t,n);return}let r=await A();if(!r)return;let i=await S(`screenshot-${Date.now()}.png`,r,await t.openWriter?.().catch(()=>null)??null);i&&n.add(i)}async function z(){if(await j([`camera`],`Slicc is requesting access to your camera to capture a photo for this conversation.`)===!1)return null;let e=document.createElement(`slicc-camera-dialog`),t=localStorage.getItem(M);t&&e.setAttribute(`preferred-device`,t),e.addEventListener(`slicc-camera-device-change`,e=>{let t=e.detail?.deviceId;t&&localStorage.setItem(M,t)}),document.body.append(e);try{return await e.open()}finally{e.remove()}}async function B(e,t,n){let r=await n.openWriter?.().catch(()=>null)??null,i=r?await b(r,e.name,t).catch(()=>void 0):void 0;return i?{...e,error:void 0,path:i}:e.kind===`image`?e:{...e,error:`could not be saved to the virtual filesystem`}}async function V(e,t,n){let r=await(await t()).readFile(e,{encoding:`binary`});return typeof r==`string`?(n.error(`VFS image pick returned text, not bytes — skipping the inline copy`,e),null):r}async function H(e,t,n){let r=0;try{r=(await(await n()).stat(e)).size}catch{}return{id:p(),name:t,mimeType:m(t),size:r,kind:`file`,path:e}}async function U(e,t,n,r){let i=e.split(`/`).pop()??e;if(u.test(i)){let a=await V(e,t,r);if(a){let t=h(i,a);n.add({...t,error:void 0,path:e});return}}n.add(await H(e,i,t))}function W(e,t){let n=t.value??t.getAttribute(`value`)??``,r=n&&!n.endsWith(` `)?` `:``;t.setAttribute(`value`,`${n}${r}${e}`)}function G(e,t){W(`Use the "${e}" skill: `,t)}async function K(t){let{requestSecretFromUser:n}=await e(async()=>{let{requestSecretFromUser:e}=await import(`./wc-secret-request-mkhCBMcE.js`);return{requestSecretFromUser:e}},__vite__mapDeps([38,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39])),r=await n();if(!r.stored)return;let i=r.domains.join(`, `),a=r.persisted?`saved`:`this session only`;W(r.maskedValue?`I stored the secret ${r.name} (masked value ${r.maskedValue}, scope: ${i}, ${a}). Use the masked value — SLICC swaps in the real one at the network boundary. `:`I stored the secret ${r.name} (scope: ${i}, ${a}). Run \`secret get ${r.name}\` for its masked value. `,t.inputCard)}function q(e){return e?.name===`NotAllowedError`}async function J(e,t,n){if(e.kind===`upload`&&e.file instanceof File){let r=new Uint8Array(await e.file.arrayBuffer());n.add(await B(await g(e.file),r,t))}else e.kind===`capture`?await R(e,t,n):e.kind===`file`&&typeof e.id==`string`&&t.openReader?await U(e.id,t.openReader,n,t.log):e.kind===`secret`?await K(t):e.kind===`skill`&&typeof e.label==`string`?G(e.label,t.inputCard):e.kind===`conversation`&&typeof e.id==`string`&&t.freezer.dispatchEvent(new CustomEvent(`freezer-card-select`,{bubbles:!0,composed:!0,detail:{slug:e.id}}))}function Y(e){let{inputCard:t,log:n}=e,r=new O(t),i=t.querySelector(`slicc-add-menu`);return i&&(e.openReader?i.provider=T({openReader:e.openReader,listConversations:e.listConversations??(async()=>[])}):i.results=[],i.setAttribute(`global-drop`,``),e.noCamera&&i.setAttribute(`no-camera`,``),e.secretEntry&&i.setAttribute(`secret-action`,``)),t.addEventListener(`slicc-add`,t=>{let i=t.detail;i&&J(i,e,r).catch(e=>{q(e)||n.error(`WC add-menu action failed`,e)})}),t.addEventListener(`paste`,t=>{let i=t.clipboardData?.items;if(i)for(let a of Array.from(i)){if(!a.type.startsWith(`image/`))continue;let i=a.getAsFile();if(!i)continue;t.preventDefault();let o=(i.type.split(`/`)[1]||`png`).replace(/[^a-z0-9]/gi,``)||`png`,s=i.name?i:new File([i],`pasted-image.${o}`,{type:i.type});J({kind:`upload`,name:s.name,size:s.size,file:s},e,r).catch(e=>n.error(`Paste image failed`,e))}}),r}export{Y as wireWcAttach};
13
+ `,O=class{#e;#t=[];constructor(e){if(!document.getElementById(E)){let e=document.createElement(`style`);e.id=E,e.textContent=D,document.head.appendChild(e)}this.#e=document.createElement(`div`),this.#e.className=`wcatt`,e.prepend(this.#e)}get items(){return this.#t}add(e){this.#t.push(e),this.#n()}take(){let e=this.#t;return this.#t=[],this.#n(),e}#n(){this.#e.replaceChildren(...this.#t.map(e=>this.#r(e)))}#r(t){let n=document.createElement(`span`);if(n.className=`wcatt__chip`,t.kind===`image`&&t.data){let r=document.createElement(`img`);r.className=`wcatt__thumb`,r.src=`data:${t.mimeType};base64,${t.data}`,r.alt=t.name,r.addEventListener(`click`,()=>{e(async()=>{let{SliccImagePreview:e}=await import(`./wc-shell-BzYq0ESt.js`).then(e=>e.N);return{SliccImagePreview:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37])).then(({SliccImagePreview:e})=>e.show(r.src,r))}),n.append(r)}let r=document.createElement(`span`);r.className=`wcatt__name`,r.textContent=t.name;let i=document.createElement(`button`);return i.type=`button`,i.className=`wcatt__x`,i.setAttribute(`aria-label`,`Remove ${t.name}`),i.textContent=`×`,i.addEventListener(`click`,()=>{this.#t=this.#t.filter(e=>e.id!==t.id),this.#n()}),n.append(r,i),n}};async function k(e){let t=document.createElement(`video`);t.srcObject=e,t.muted=!0;try{await t.play(),await new Promise(e=>requestAnimationFrame(()=>e(null)));let e=document.createElement(`canvas`);return e.width=t.videoWidth,e.height=t.videoHeight,e.width===0||e.height===0?null:(e.getContext(`2d`)?.drawImage(t,0,0),e.toDataURL(`image/png`))}finally{for(let t of e.getTracks())t.stop();t.srcObject=null}}async function A(){let e=r();if(e){let t=await e.request(`screenshare`,{constraints:{video:!0}});if(!t)return null;let n=t.stream;return k(n)}return k(await navigator.mediaDevices.getDisplayMedia({video:!0}))}async function j(e,t){let n=r();if(!n)return null;let i=await n.prompt({kinds:e,description:t,skipIfGranted:!0});for(let e of i.grants)if(e.kind===`camera`||e.kind===`microphone`||e.kind===`screenshare`)for(let t of e.stream.getTracks())t.stop();return i.status===`granted`}var M=`slicc_camera_device`,N=`slicc_microphone_device`,P=[`position:absolute`,`left:50%`,`right:auto`,`transform:translateX(-50%)`,`bottom:56px`,`width:calc(100% - 32px)`,`max-width:680px`,`z-index:3`].join(`;`);async function F(e,t){if(await j([`camera`,`microphone`],`Slicc is requesting access to your camera and microphone to capture a photo or video for this conversation.`)===!1)return null;let n=document.createElement(`slicc-composer-capture`),r=localStorage.getItem(M);r&&n.setAttribute(`preferred-device`,r);let i=localStorage.getItem(N);i&&n.setAttribute(`preferred-audio-device`,i),n.style.cssText=P,n.hidden=!0,n.addEventListener(`slicc-capture-device-change`,e=>{let t=e.detail;if(!t?.deviceId)return;let n=t.kind===`microphone`?N:M;localStorage.setItem(n,t.deviceId)}),e.append(n);try{return await n.open(t)}finally{n.remove()}}async function I(e,t,n){if(!e.dataUrl)return;let r=`photo-${Date.now()}.png`,i=await t.openWriter?.().catch(()=>null)??null,a=await S(r,e.dataUrl,i);a&&n.add(a)}async function L(e,t,n){if(!e.blob)return;let r=/webm/i.test(e.mimeType)?`webm`:`bin`,i=`video-${Date.now()}.${r}`,a=await t.openWriter?.().catch(()=>null)??null,o=await C(i,e.blob,a);o&&n.add(o)}async function R(e,t,n){if(e.mode===`photo`){if(!t.composer){let e=await z();if(!e)return;let r=await S(`photo-${Date.now()}.png`,e,await t.openWriter?.().catch(()=>null)??null);r&&n.add(r);return}let e=await F(t.composer,`photo`);if(!e)return;e.kind===`image`?await I(e,t,n):e.kind===`video`&&await L(e,t,n);return}let r=await A();if(!r)return;let i=await S(`screenshot-${Date.now()}.png`,r,await t.openWriter?.().catch(()=>null)??null);i&&n.add(i)}async function z(){if(await j([`camera`],`Slicc is requesting access to your camera to capture a photo for this conversation.`)===!1)return null;let e=document.createElement(`slicc-camera-dialog`),t=localStorage.getItem(M);t&&e.setAttribute(`preferred-device`,t),e.addEventListener(`slicc-camera-device-change`,e=>{let t=e.detail?.deviceId;t&&localStorage.setItem(M,t)}),document.body.append(e);try{return await e.open()}finally{e.remove()}}async function B(e,t,n){let r=await n.openWriter?.().catch(()=>null)??null,i=r?await b(r,e.name,t).catch(()=>void 0):void 0;return i?{...e,error:void 0,path:i}:e.kind===`image`?e:{...e,error:`could not be saved to the virtual filesystem`}}async function V(e,t,n){let r=await(await t()).readFile(e,{encoding:`binary`});return typeof r==`string`?(n.error(`VFS image pick returned text, not bytes — skipping the inline copy`,e),null):r}async function H(e,t,n){let r=0;try{r=(await(await n()).stat(e)).size}catch{}return{id:p(),name:t,mimeType:m(t),size:r,kind:`file`,path:e}}async function U(e,t,n,r){let i=e.split(`/`).pop()??e;if(u.test(i)){let a=await V(e,t,r);if(a){let t=h(i,a);n.add({...t,error:void 0,path:e});return}}n.add(await H(e,i,t))}function W(e,t){let n=t.value??t.getAttribute(`value`)??``,r=n&&!n.endsWith(` `)?` `:``;t.setAttribute(`value`,`${n}${r}${e}`)}function G(e,t){W(`Use the "${e}" skill: `,t)}async function K(t){let{requestSecretFromUser:n}=await e(async()=>{let{requestSecretFromUser:e}=await import(`./wc-secret-request-BAhfbP9J.js`);return{requestSecretFromUser:e}},__vite__mapDeps([38,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39])),r=await n();if(!r.stored)return;let i=r.domains.join(`, `),a=r.persisted?`saved`:`this session only`;W(r.maskedValue?`I stored the secret ${r.name} (masked value ${r.maskedValue}, scope: ${i}, ${a}). Use the masked value — SLICC swaps in the real one at the network boundary. `:`I stored the secret ${r.name} (scope: ${i}, ${a}). Run \`secret get ${r.name}\` for its masked value. `,t.inputCard)}function q(e){return e?.name===`NotAllowedError`}async function J(e,t,n){if(e.kind===`upload`&&e.file instanceof File){let r=new Uint8Array(await e.file.arrayBuffer());n.add(await B(await g(e.file),r,t))}else e.kind===`capture`?await R(e,t,n):e.kind===`file`&&typeof e.id==`string`&&t.openReader?await U(e.id,t.openReader,n,t.log):e.kind===`secret`?await K(t):e.kind===`skill`&&typeof e.label==`string`?G(e.label,t.inputCard):e.kind===`conversation`&&typeof e.id==`string`&&t.freezer.dispatchEvent(new CustomEvent(`freezer-card-select`,{bubbles:!0,composed:!0,detail:{slug:e.id}}))}function Y(e){let{inputCard:t,log:n}=e,r=new O(t),i=t.querySelector(`slicc-add-menu`);return i&&(e.openReader?i.provider=T({openReader:e.openReader,listConversations:e.listConversations??(async()=>[])}):i.results=[],i.setAttribute(`global-drop`,``),e.noCamera&&i.setAttribute(`no-camera`,``),e.secretEntry&&i.setAttribute(`secret-action`,``)),t.addEventListener(`slicc-add`,t=>{let i=t.detail;i&&J(i,e,r).catch(e=>{q(e)||n.error(`WC add-menu action failed`,e)})}),t.addEventListener(`paste`,t=>{let i=t.clipboardData?.items;if(i)for(let a of Array.from(i)){if(!a.type.startsWith(`image/`))continue;let i=a.getAsFile();if(!i)continue;t.preventDefault();let o=(i.type.split(`/`)[1]||`png`).replace(/[^a-z0-9]/gi,``)||`png`,s=i.name?i:new File([i],`pasted-image.${o}`,{type:i.type});J({kind:`upload`,name:s.name,size:s.size,file:s},e,r).catch(e=>n.error(`Paste image failed`,e))}}),r}export{Y as wireWcAttach};
@@ -1 +1 @@
1
- import{t as e}from"./slicc-app-url-BKHBBuTR.js";import{teleportTabOneWay as t}from"./tab-teleport-C8QSKgl0.js";import{bindComputerOverlay as n,mergeOverlayTabs as r,parseComputerOverlayId as i}from"./wc-computers-D2WMYpRs.js";var a=5e3;function o(t){let{browser:n,log:r}=t,i=async()=>{try{let t=await n.listAllTargets(),r=t.find(e=>e.url===location.href);if(r)return r.targetId;let i=location?.origin?[location.origin]:void 0;return t.find(t=>e(t.url??``,{selfOrigins:i}))?.targetId??null}catch(e){return r.warn(`WC browser overlay: could not resolve the SLICC tab`,e),null}},o=null;return async e=>{let s=t.agentTarget(),c=await i();if(await t.activate(e)){if(!c){r.warn(`WC browser overlay: peek cannot find the SLICC tab; staying put`,{target:e});return}o&&clearTimeout(o),o=setTimeout(()=>{o=null,(async()=>{try{await n.bringTabToFront(c),s&&s!==c&&await n.selectTab(s)}catch(e){r.error(`WC browser overlay: peek return failed`,e)}})()},a)}}}function s(a){let{refs:s,browser:c,log:l}=a,u=document.createElement(`slicc-tab-overlay`);u.setAttribute(`heading`,`Browser · tabs & computers`),document.body.append(u),n(u,l);let d=0,f=null,p=async()=>{u.hasAttribute(`open`)||(f=c.getAttachedTargetId());let t=++d;u.show();let n;try{n=await c.listAllTargets()}catch(e){l.error(`WC browser overlay: listing tabs failed`,e),u.tabs=r([]);return}if(t!==d)return;let i=location?.origin?[location.origin]:void 0;n=n.filter(t=>!e(t.url??``,{selfOrigins:i})),u.tabs=r(n.map(e=>({id:e.targetId,title:e.title||e.url||e.targetId,url:e.url})));for(let e of n){if(t!==d||!u.hasAttribute(`open`))return;try{let n=await c.withTab(e.targetId,e=>e.screenshot({format:`jpeg`,quality:72,maxWidth:a.thumbWidth??Math.round(560*Math.min(devicePixelRatio||1,2)),foregroundFallback:!1}));if(t!==d)return;u.tabs=u.tabs.map(t=>t.id===e.targetId?{...t,screenshot:`data:image/jpeg;base64,${n}`}:t)}catch(t){l.warn(`WC browser overlay: thumbnail failed`,{target:e.targetId,err:t})}}};s.overlaySurfaces.add(`browser`),s.dock.addEventListener(`slicc-dock-select`,e=>{e.detail?.id===`browser`&&(p(),s.dock.collapse?.())});let m=async e=>{try{if(e.includes(`:`)){let n=await t(c,{sourceTargetId:e,destination:{kind:`leader`}});return l.info(`WC browser overlay: pulled remote tab to leader`,{source:e,target:n.targetId,degraded:n.degraded}),u.hide(),!0}return await c.bringTabToFront(e),u.hide(),!0}catch(e){return l.error(`WC browser overlay: tab activate failed`,e),!1}};u.addEventListener(`tab-activate`,e=>{let t=e.detail.id;i(t)||m(t)});let h=o({browser:c,log:l,activate:m,agentTarget:()=>f});return u.addEventListener(`tab-peek`,e=>{let t=e.detail.id;if(!i(t)){if(t.includes(`:`)){m(t);return}h(t).catch(e=>l.error(`WC browser overlay: peek failed`,e))}}),u.addEventListener(`tab-close`,e=>{let t=e.detail.id;i(t)||c.closePage(t).then(()=>p()).catch(e=>l.error(`WC browser overlay: tab close failed`,e))}),{overlay:u,refresh:p}}export{s as wireWcBrowser};
1
+ import{t as e}from"./slicc-app-url-BKHBBuTR.js";import{teleportTabOneWay as t}from"./tab-teleport-C8QSKgl0.js";import{bindComputerOverlay as n,mergeOverlayTabs as r,parseComputerOverlayId as i}from"./wc-computers-CZVMeb1a.js";var a=5e3;function o(t){let{browser:n,log:r}=t,i=async()=>{try{let t=await n.listAllTargets(),r=t.find(e=>e.url===location.href);if(r)return r.targetId;let i=location?.origin?[location.origin]:void 0;return t.find(t=>e(t.url??``,{selfOrigins:i}))?.targetId??null}catch(e){return r.warn(`WC browser overlay: could not resolve the SLICC tab`,e),null}},o=null;return async e=>{let s=t.agentTarget(),c=await i();if(await t.activate(e)){if(!c){r.warn(`WC browser overlay: peek cannot find the SLICC tab; staying put`,{target:e});return}o&&clearTimeout(o),o=setTimeout(()=>{o=null,(async()=>{try{await n.bringTabToFront(c),s&&s!==c&&await n.selectTab(s)}catch(e){r.error(`WC browser overlay: peek return failed`,e)}})()},a)}}}function s(a){let{refs:s,browser:c,log:l}=a,u=document.createElement(`slicc-tab-overlay`);u.setAttribute(`heading`,`Browser · tabs & computers`),document.body.append(u),n(u,l);let d=0,f=null,p=async()=>{u.hasAttribute(`open`)||(f=c.getAttachedTargetId());let t=++d;u.show();let n;try{n=await c.listAllTargets()}catch(e){l.error(`WC browser overlay: listing tabs failed`,e),u.tabs=r([]);return}if(t!==d)return;let i=location?.origin?[location.origin]:void 0;n=n.filter(t=>!e(t.url??``,{selfOrigins:i})),u.tabs=r(n.map(e=>({id:e.targetId,title:e.title||e.url||e.targetId,url:e.url})));for(let e of n){if(t!==d||!u.hasAttribute(`open`))return;try{let n=await c.withTab(e.targetId,e=>e.screenshot({format:`jpeg`,quality:72,maxWidth:a.thumbWidth??Math.round(560*Math.min(devicePixelRatio||1,2)),foregroundFallback:!1}));if(t!==d)return;u.tabs=u.tabs.map(t=>t.id===e.targetId?{...t,screenshot:`data:image/jpeg;base64,${n}`}:t)}catch(t){l.warn(`WC browser overlay: thumbnail failed`,{target:e.targetId,err:t})}}};s.overlaySurfaces.add(`browser`),s.dock.addEventListener(`slicc-dock-select`,e=>{e.detail?.id===`browser`&&(p(),s.dock.collapse?.())});let m=async e=>{try{if(e.includes(`:`)){let n=await t(c,{sourceTargetId:e,destination:{kind:`leader`}});return l.info(`WC browser overlay: pulled remote tab to leader`,{source:e,target:n.targetId,degraded:n.degraded}),u.hide(),!0}return await c.bringTabToFront(e),u.hide(),!0}catch(e){return l.error(`WC browser overlay: tab activate failed`,e),!1}};u.addEventListener(`tab-activate`,e=>{let t=e.detail.id;i(t)||m(t)});let h=o({browser:c,log:l,activate:m,agentTarget:()=>f});return u.addEventListener(`tab-peek`,e=>{let t=e.detail.id;if(!i(t)){if(t.includes(`:`)){m(t);return}h(t).catch(e=>l.error(`WC browser overlay: peek failed`,e))}}),u.addEventListener(`tab-close`,e=>{let t=e.detail.id;i(t)||c.closePage(t).then(()=>p()).catch(e=>l.error(`WC browser overlay: tab close failed`,e))}),{overlay:u,refresh:p}}export{s as wireWcBrowser};
@@ -1,3 +1,3 @@
1
- import{L as e,R as t,j as n}from"./wc-shell-CjZMoCV4.js";import{r}from"./base64-ELzoYfwP.js";import{t as i}from"./image-markers-q8JQTtid.js";import{r as a,t as o}from"./scale-D09IlqOK.js";import{E as s,T as c,w as l}from"./wc-live-B3xfspeg.js";function u(e){let t=c(e.bytes);return`data:${s(t)??e.mime};base64,${r(t)}`}var d=`computer:`,f=4,ee=768,p=2,m=480,te={debug(){},info(){},warn(){},error(){}},h=null;function g(e){return`${d}${e}`}function _(e){return e.startsWith(`computer:`)?e.slice(9):null}function v(e){let t=e.trim().split(/\s+/);for(let e=0;e<t.length;e++)if(t[e]===`-c`||t[e]===`--computer`)return t[e+1]??null;return null}function y(e){for(let t of e.split(`
1
+ import{L as e,R as t,j as n}from"./wc-shell-BzYq0ESt.js";import{r}from"./base64-ELzoYfwP.js";import{t as i}from"./image-markers-q8JQTtid.js";import{r as a,t as o}from"./scale-D09IlqOK.js";import{E as s,T as c,w as l}from"./wc-live-DPQeITgQ.js";function u(e){let t=c(e.bytes);return`data:${s(t)??e.mime};base64,${r(t)}`}var d=`computer:`,f=4,ee=768,p=2,m=480,te={debug(){},info(){},warn(){},error(){}},h=null;function g(e){return`${d}${e}`}function _(e){return e.startsWith(`computer:`)?e.slice(9):null}function v(e){let t=e.trim().split(/\s+/);for(let e=0;e<t.length;e++)if(t[e]===`-c`||t[e]===`--computer`)return t[e+1]??null;return null}function y(e){for(let t of e.split(`
2
2
  `)){let e=t.trim();if(!e.startsWith(`target: `))continue;let n=e.slice(8).trim();if(n)return n}return null}function b(e,t,n){return n||(v(e)??y(t))}function x(e){for(let t of e.split(`
3
3
  `)){let e=t.trim();if(!e.startsWith(`screen: `))continue;let n=e.slice(8).trim();if(n)return n}return null}function S(e){return i(e).find(e=>e.kind===`image`&&e.parsed)?.parsed?.dataUrl??null}function C(e){let t=x(e);if(t)return{kind:`path`,path:t};let n=S(e);return n?{kind:`data`,src:n}:null}function w(e){if(e.kind!==`ssh`)return e.title;let t=e.capabilities.inputAllowed?`input`:`view-only`;return`${e.title} [${t}]`}function T(e,t){return{id:g(e.id),title:w(e),url:e.kind,screenshot:t?u(t):void 0,kind:`computer`,live:e.state===`live`,softKeys:e.softKeys?.map(e=>({label:e.label,keysym:e.keysym}))}}function E(e,t=l().list()){let n=l(),r=e.filter(e=>e.kind!==`computer`),i=t.map(e=>T(e,n.lastFrame(e.id)));return[...r,...i]}function D(e){return h?(e?.log&&(h.deps.log=e.log),e?.openFs&&(h.deps.openFs=e.openFs),h):(h={deps:{log:e?.log??te,openFs:e?.openFs},bound:new Map,overlayUnsubs:[],overlayWatchIds:new Map,lightboxId:null,lightboxWatchToken:null,lightboxOrigin:null,lightboxLive:!1,preview:null,installed:!1},h)}function O(e,t){e.append(n(t))}function k(e){let t=e.target,n=e.detail,r=b(n.command??t.command??``,n.output??t.output??``,n.computerId??t.computerId),i=n.toolCallId||t.toolCallId,a={el:t,toolCallId:i,computerId:r,watchToken:null,loadGen:0,frozenKey:null};D().bound.set(t,a),t.addEventListener(`computer-row-unbind`,j),r&&(t.computerId=r),r&&i&&l().recordInvocation(r,i),N()}function A(e){if(e.computerId)return;let t=b(e.el.command??``,e.el.output??``,e.el.computerId);t&&(e.computerId=t,e.el.computerId=t,e.toolCallId&&l().recordInvocation(t,e.toolCallId))}function j(e){let t=e.target,n=h;if(!n)return;let r=n.bound.get(t);if(r){if(n.bound.delete(t),t.removeEventListener(`computer-row-unbind`,j),r.watchToken!==null&&r.computerId)try{l().unwatch(r.computerId,r.watchToken)}catch(e){n.deps.log.warn(`WC computers: unwatch on row unbind failed`,e)}N()}}function M(e){let t=e.target,n=h?.bound.get(t),r=e.detail?.src;r&&K(t.frameMode===`live`?n?.computerId??null:null,r,t)}function N(){let e=h;if(e)for(let t of e.bound.values())P(t)}function P(t){A(t);let n=l(),r=t.computerId?n.get(t.computerId):null,i=C(t.el.output??``),a=t.computerId?n.lastFrame(t.computerId):null,o=t.computerId?n.newestInvocation(t.computerId):null,s=!!t.computerId&&r?.state===`live`&&o===t.toolCallId,c=e({computerLive:r?.state===`live`,newestToolCallId:o,toolCallId:t.toolCallId,hasFrame:!!i,hasPushedFrame:!!a});t.el.frameMode=c,F(t,s);let d=t.el.output??``;if(c===`live`&&a){t.loadGen+=1,t.frozenKey=null,t.el.frameSrc=u(a);return}if(c===`frozen`){let e=I(d);if(t.frozenKey===e)return;t.frozenKey=e,t.loadGen+=1,R(t,d,t.loadGen);return}t.loadGen+=1,t.frozenKey=null,t.el.frameSrc=null}function F(e,t){if(!e.computerId)return;let n=l();t&&e.watchToken===null?e.watchToken=n.watch(e.computerId,p,m):!t&&e.watchToken!==null&&(n.unwatch(e.computerId,e.watchToken),e.watchToken=null)}function I(e){return`${x(e)??``}\n${S(e)??``}`}function L(e,t,n){return h?.bound.get(e.el)!==e||e.loadGen!==t||e.el.frameMode!==`frozen`?!1:I(e.el.output??``)===I(n)}async function R(e,t,n){let r=x(t),i=null;r&&(i=await z(r)),i||=S(t),L(e,n,t)&&(e.el.frameSrc=i)}async function z(e){let t=h?.deps.openFs;if(!t)return null;try{let n=await(await t()).readFile(e,{encoding:`binary`}),i=c(n);return`data:${s(i)??`image/jpeg`};base64,${r(i)}`}catch(t){return h?.deps.log.warn(`WC computers: frozen frame read failed`,{path:e,err:t}),null}}function B(e,t){let n=u(t),r=D();if(r.lightboxId===e){r.lightboxLive=!0;let e=V();U(r),e.isOpen?e.setSrc(n):e.open(n,r.lightboxOrigin??e)}N()}function V(){let e=D();if(e.preview?.isConnected)return e.preview;let t=document.createElement(`slicc-image-preview`);return t.setAttribute(`data-computer-live`,``),document.body.append(t),t.addEventListener(`slicc-image-preview-close`,()=>q()),t.addEventListener(`slicc-image-preview-input`,W),e.preview=t,t}function H(e){return e?!!l().get(e)?.capabilities.inputAllowed:!1}function U(e){let t=e.preview;t&&(t.drive=!!(e.lightboxLive&&H(e.lightboxId)))}function W(e){let t=h;if(!t?.lightboxId||!t.lightboxLive)return;let n=l().get(t.lightboxId);if(!n?.capabilities.inputAllowed)return;let r=e.detail;if(!r)return;let i=n.size??l().lastFrame(t.lightboxId);if(i)try{let e=G(r,i);e.length&&l().input(t.lightboxId,e)}catch(e){t.deps.log.warn(`WC computers: lightbox input failed`,e)}}function G(e,t){if(e.kind===`key`){let t=a(e);return t?[{type:`key`,keysym:t}]:[]}let n=o(e.x,e.y,{width:e.width,height:e.height},t);return e.kind===`scroll`?[{type:`scroll`,dx:e.dx,dy:e.dy,x:n.x,y:n.y}]:[{type:`click`,button:e.button,count:1,x:n.x,y:n.y}]}function K(e,t,n){let r=D(),i=l();e?(r.lightboxId&&r.lightboxId!==e&&r.lightboxWatchToken!==null&&(i.unwatch(r.lightboxId,r.lightboxWatchToken),r.lightboxWatchToken=null),(r.lightboxId!==e||r.lightboxWatchToken===null)&&(r.lightboxWatchToken=i.watch(e,f,ee),r.lightboxId=e)):r.lightboxWatchToken!==null&&r.lightboxId&&(i.unwatch(r.lightboxId,r.lightboxWatchToken),r.lightboxWatchToken=null,r.lightboxId=null),r.lightboxOrigin=n;let a=V(),o=e?i.lastFrame(e):null;r.lightboxLive=!!o,U(r);let s=o?u(o):t;s&&(a.isOpen?a.setSrc(s):a.open(s,n))}function q(){let e=h;if(e){if(e.lightboxWatchToken!==null&&e.lightboxId){try{l().unwatch(e.lightboxId,e.lightboxWatchToken)}catch(t){e.deps.log.warn(`WC computers: lightbox unwatch failed`,t)}e.lightboxWatchToken=null}e.lightboxId=null,e.lightboxOrigin=null,e.lightboxLive=!1,e.preview&&(e.preview.drive=!1)}}function J(e,t){return e.shadowRoot?.querySelector(`[data-tab-id="${CSS.escape(t)}"]`)??e}function Y(){let e=h;if(!e)return;let t=l();for(let[n,r]of[...e.overlayWatchIds]){try{t.unwatch(n,r)}catch{}e.overlayWatchIds.delete(n)}}function X(e){Q(e),e.hasAttribute(`open`)&&(e.tabs=E(e.tabs))}function Z(e,t,n){if(Q(e),!e.hasAttribute(`open`))return;let r=u(n);r&&e.patchTabScreenshot?.(g(t),r)||(e.tabs=E(e.tabs))}function Q(e){let t=D(),n=l(),r=e.hasAttribute(`open`)?n.list().map(e=>e.id):[],i=new Set(r);for(let[e,r]of[...t.overlayWatchIds])if(!i.has(e)){try{n.unwatch(e,r)}catch(e){t.deps.log.warn(`WC computers: overlay unwatch failed`,e)}t.overlayWatchIds.delete(e)}for(let e of r)if(!t.overlayWatchIds.has(e))try{t.overlayWatchIds.set(e,n.watch(e,p,m))}catch(e){t.deps.log.warn(`WC computers: overlay watch failed`,e)}}function ne(e){let n=D(e);if(t(O),n.installed)return $;n.installed=!0,document.addEventListener(`computer-row-bind`,k),document.addEventListener(`computer-row-unbind`,j),document.addEventListener(`computer-frame-click`,M);let r=l();return n.overlayUnsubs.push(r.onList(()=>N())),n.overlayUnsubs.push(r.onInvocations(()=>N())),n.overlayUnsubs.push(r.onFrame(B)),$}function re(e,t){let n=D(t?{log:t}:void 0),r=l(),i=t=>{let i=t.detail?.id,a=i?_(i):null;if(!a)return;let o=r.lastFrame(a),s=o?u(o):``;s||n.deps.log.warn(`WC computers: no frame yet for lightbox`,{id:a}),K(a,s,J(e,i))},a=e=>{let t=e.detail,i=t?.id?_(t.id):null;if(!(!i||!t.keysym))try{r.input(i,[{type:`key`,keysym:t.keysym}])}catch(e){n.deps.log.warn(`WC computers: softkey input failed`,e)}};e.addEventListener(`tab-activate`,i),e.addEventListener(`tab-peek`,i),e.addEventListener(`computer-softkey`,a);let o=()=>X(e);e.addEventListener(`overlay-close`,o);let s=new MutationObserver(()=>X(e));s.observe(e,{attributes:!0,attributeFilter:[`open`]});let c=r.onList(()=>X(e)),d=r.onFrame((t,n)=>Z(e,t,n));return X(e),()=>{e.removeEventListener(`tab-activate`,i),e.removeEventListener(`tab-peek`,i),e.removeEventListener(`computer-softkey`,a),e.removeEventListener(`overlay-close`,o),s.disconnect(),c(),d(),Y()}}function $(){let e=h;if(e){document.removeEventListener(`computer-row-bind`,k),document.removeEventListener(`computer-row-unbind`,j),document.removeEventListener(`computer-frame-click`,M);for(let t of e.overlayUnsubs)t();Y();for(let t of e.bound.values())if(t.watchToken!==null&&t.computerId)try{l().unwatch(t.computerId,t.watchToken)}catch{}if(e.lightboxWatchToken!==null&&e.lightboxId)try{l().unwatch(e.lightboxId,e.lightboxWatchToken)}catch{}e.preview?.remove(),h=null}}export{re as bindComputerOverlay,ne as installWcComputers,E as mergeOverlayTabs,_ as parseComputerOverlayId};
@@ -1 +1 @@
1
- import{O as e}from"./main-DFzXj4Ap.js";var t=`slicc-detached-overlay`;function n(t){let{client:n,isDetachedSelf:r}=t;chrome.runtime.onMessage.addListener(t=>(!e(t)||t.source!==`service-worker`||t.payload.type!==`detached-active`||r||i(n),!1)),r&&chrome.runtime.sendMessage({source:`panel`,payload:{type:`detached-claim`}}).catch(()=>void 0)}function r(){chrome.runtime.sendMessage({source:`panel`,payload:{type:`detached-popout-request`}}).catch(e=>{console.warn(`[slicc] detached-popout-request failed`,e)})}function i(e){try{window.close()}catch{}e.setLocked(!0),a()}function a(){if(document.getElementById(t))return;let e=document.createElement(`div`);e.id=t,e.style.cssText=`position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center;background:var(--canvas,#fff);color:var(--ink,#111);font:14px/1.5 var(--ui,system-ui)`;let n=document.createElement(`strong`);n.textContent=`SLICC is open in a detached window`;let r=document.createElement(`span`);r.textContent=`This panel yields while the detached window is active.`;let i=document.createElement(`button`);i.textContent=`Close this window`,i.style.cssText=`margin-top:8px;padding:8px 16px;border:none;border-radius:999px;cursor:pointer;background:var(--ink,#111);color:var(--canvas,#fff);font:600 13px var(--ui,system-ui)`,i.addEventListener(`click`,()=>window.close()),e.append(n,r,i),document.body.appendChild(e)}export{r as requestDetachedPopout,n as wireWcDetached};
1
+ import{O as e}from"./main-CxkrqswY.js";var t=`slicc-detached-overlay`;function n(t){let{client:n,isDetachedSelf:r}=t;chrome.runtime.onMessage.addListener(t=>(!e(t)||t.source!==`service-worker`||t.payload.type!==`detached-active`||r||i(n),!1)),r&&chrome.runtime.sendMessage({source:`panel`,payload:{type:`detached-claim`}}).catch(()=>void 0)}function r(){chrome.runtime.sendMessage({source:`panel`,payload:{type:`detached-popout-request`}}).catch(e=>{console.warn(`[slicc] detached-popout-request failed`,e)})}function i(e){try{window.close()}catch{}e.setLocked(!0),a()}function a(){if(document.getElementById(t))return;let e=document.createElement(`div`);e.id=t,e.style.cssText=`position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center;background:var(--canvas,#fff);color:var(--ink,#111);font:14px/1.5 var(--ui,system-ui)`;let n=document.createElement(`strong`);n.textContent=`SLICC is open in a detached window`;let r=document.createElement(`span`);r.textContent=`This panel yields while the detached window is active.`;let i=document.createElement(`button`);i.textContent=`Close this window`,i.style.cssText=`margin-top:8px;padding:8px 16px;border:none;border-radius:999px;cursor:pointer;background:var(--ink,#111);color:var(--canvas,#fff);font:600 13px var(--ui,system-ui)`,i.addEventListener(`click`,()=>window.close()),e.append(n,r,i),document.body.appendChild(e)}export{r as requestDetachedPopout,n as wireWcDetached};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/main-DFzXj4Ap.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/modulepreload-polyfill-P2Xu9kJm.js","assets/core-4boN-CgI.js","assets/compat-BAGLwgqY.js","assets/models-Xc0Gclrk.js","assets/diagnostics-Cag7MsZI.js","assets/preload-helper-Czpn1I53.js","assets/env-api-keys-BXRkymgV.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-DHpsqCCC.js","assets/libesm-BypnjKEL.js","assets/logger-DDBAeTLF.js","assets/feature-flags-DvsApnS-.js","assets/proxied-fetch-Cplb-Tee.js","assets/base64-ELzoYfwP.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-Dm_PZRZx.js","assets/float-topology-C9GjBEv-.js","assets/secrets-bridge-client-CWv2_nw7.js","assets/port-bridge-client-D_erEovW.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-B9NAiCud.js","assets/providers-DdxfStbH.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-B1oHsbyo.js","assets/bedrock-camp-extra-models-BYrxX19D.js","assets/claude-model-version-DZmbk9E2.js","assets/telemetry-B0sKnLBU.js","assets/tray-follower-status-BAjnN7Ar.js","assets/clipboard-eqmn97SP.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";import{C as t,S as n,b as r,r as i,t as a,y as o}from"./wc-live-B3xfspeg.js";import{wireWcDetached as s}from"./wc-detached-BYrJv1Pi.js";async function c(c,l,u=!1){let d;await i(c,l,{floatKind:`extension`,connect:e=>{d=new t(o(e.wiring));let i=n(d);return{client:r(e.wiring),host:i,workbench:(e,t)=>{a(e,d,t,i,l)}}}}),s({client:d,isDetachedSelf:u});let{setupSudoExtension:f}=await e(async()=>{let{setupSudoExtension:e}=await import(`./main-DFzXj4Ap.js`).then(e=>e.c);return{setupSudoExtension:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]));await f({log:l}),d.requestState(),l.info(`WC extension shell connected to offscreen engine`)}export{c as bootExtensionFloat};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/main-CxkrqswY.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/modulepreload-polyfill-P2Xu9kJm.js","assets/core-4boN-CgI.js","assets/compat-BAGLwgqY.js","assets/models-Xc0Gclrk.js","assets/diagnostics-Cag7MsZI.js","assets/preload-helper-Czpn1I53.js","assets/env-api-keys-BXRkymgV.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-DHpsqCCC.js","assets/libesm-BypnjKEL.js","assets/logger-DDBAeTLF.js","assets/feature-flags-DvsApnS-.js","assets/proxied-fetch-Cplb-Tee.js","assets/base64-ELzoYfwP.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-Dm_PZRZx.js","assets/float-topology-C9GjBEv-.js","assets/secrets-bridge-client-CWv2_nw7.js","assets/port-bridge-client-D_erEovW.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-B857f9Kw.js","assets/providers-jygoVQBo.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-B1oHsbyo.js","assets/bedrock-camp-extra-models-BYrxX19D.js","assets/claude-model-version-DZmbk9E2.js","assets/telemetry-B0sKnLBU.js","assets/tray-follower-status-BAjnN7Ar.js","assets/clipboard-eqmn97SP.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-Czpn1I53.js";import{C as t,S as n,b as r,r as i,t as a,y as o}from"./wc-live-DPQeITgQ.js";import{wireWcDetached as s}from"./wc-detached-C3w-EnO2.js";async function c(c,l,u=!1){let d;await i(c,l,{floatKind:`extension`,connect:e=>{d=new t(o(e.wiring));let i=n(d);return{client:r(e.wiring),host:i,workbench:(e,t)=>{a(e,d,t,i,l)}}}}),s({client:d,isDetachedSelf:u});let{setupSudoExtension:f}=await e(async()=>{let{setupSudoExtension:e}=await import(`./main-CxkrqswY.js`).then(e=>e.c);return{setupSudoExtension:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]));await f({log:l}),d.requestState(),l.info(`WC extension shell connected to offscreen engine`)}export{c as bootExtensionFloat};
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-shell-CjZMoCV4.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/mime-types-D0xZwlMO.js","assets/base64-ELzoYfwP.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-B9NAiCud.js","assets/core-4boN-CgI.js","assets/compat-BAGLwgqY.js","assets/models-Xc0Gclrk.js","assets/diagnostics-Cag7MsZI.js","assets/env-api-keys-BXRkymgV.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-DHpsqCCC.js","assets/libesm-BypnjKEL.js","assets/feature-flags-DvsApnS-.js","assets/proxied-fetch-Cplb-Tee.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-Dm_PZRZx.js","assets/float-topology-C9GjBEv-.js","assets/secrets-bridge-client-CWv2_nw7.js","assets/port-bridge-client-D_erEovW.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-DdxfStbH.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-B1oHsbyo.js","assets/bedrock-camp-extra-models-BYrxX19D.js","assets/claude-model-version-DZmbk9E2.js","assets/telemetry-B0sKnLBU.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-2DY2vYOc.js","assets/wc-shell-WkeczD9x.css","assets/panelize-shell-gHzxRw9h.js","assets/virtual-device-paths-D45tpPP6.js","assets/layout-apply-registry-Cw730jao.js","assets/wc-live-B3xfspeg.js","assets/sprinkle-renderer-DEvWTy4j.js","assets/permissions-surface-registry-CilCRwhh.js","assets/hid-device-registry-B2R-0rNt.js","assets/serial-port-registry-CCqklAEr.js","assets/hid-operations-C97SZtrY.js","assets/usb-device-registry--JwKRTYp.js","assets/usb-operations-v1mGAdRY.js","assets/shared-DSEuryGJ.js","assets/theme-CwPIBqJE.js","assets/theme-engine-ZV7CeqWw.js","assets/slugify-BYJ6QVAt.js","assets/transcript-export-DP-r8eDz.js","assets/session-jsonl-BMe2gRCP.js","assets/tray-follower-status-BAjnN7Ar.js","assets/main-DFzXj4Ap.js","assets/modulepreload-polyfill-P2Xu9kJm.js","assets/clipboard-eqmn97SP.js","assets/src-BWaKqLvQ.js","assets/provider-budget-LCzMPlKv.js","assets/browser-BhTdBqdp.js","assets/tray-leader-B4LxY7F_.js","assets/record-CBv8rWFt.js","assets/descriptor-CuhPBdq8.js","assets/types-CFfBWsH5.js","assets/wc-unit-context-CZro7UrY.js","assets/legacy-styles-B3nS5QUo.js","assets/follower-navigate-watcher-T4oXQ4JA.js","assets/navigation-watcher-CPcnZL9l.js","assets/discovery-preference-D1cUzn0M.js","assets/wc-transcript-export-C4au4GRp.js","assets/export-spool-CuNzzI8a.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{a as n,n as r}from"./feature-flags-DvsApnS-.js";import{n as i}from"./transcript-export-DP-r8eDz.js";import{S as a,a as o,c as s,d as c,i as ee,n as te,r as ne,t as re,x as l}from"./wc-follower-oauth-BITU1r1m.js";import{a as ie,t as ae}from"./tray-follower-status-BAjnN7Ar.js";import{C as oe,D as u,E as d,s as se,w as f,x as ce}from"./main-DFzXj4Ap.js";import{m as le,r as ue,x as de}from"./wc-live-B3xfspeg.js";import{n as fe}from"./theme-engine-ZV7CeqWw.js";import{c as pe,m as me,s as he,t as ge}from"./wc-unit-context-CZro7UrY.js";import{WcSprinkleZone as _e}from"./wc-sprinkles-CWh_QyqB.js";import{wireWcAttach as ve}from"./wc-attach-8DvAlvRk.js";import{installLeaderPermissionsSurface as ye}from"./wc-permissions-DC3jkato.js";var p=t(`follower-switch-out`);function be(e,t){t.stopFollower();try{t.storage.removeItem(d),e.workerBaseUrl===null?t.storage.removeItem(u):t.storage.setItem(u,e.workerBaseUrl)}catch(e){p.error(`follower switch-out: storage write failed — state may revert on reload`,{error:e instanceof Error?e.message:String(e)})}try{let e=t.getHref(),n=f(e);n!==e&&t.replaceHref(n)}catch(e){p.error(`follower switch-out: URL normalize failed — may re-enter follower on reload`,{error:e instanceof Error?e.message:String(e)})}t.reload()}var m=6;function xe(e){let{refs:t,getSync:n,getTargets:r,hasCdpBrowser:i,log:a}=e;if(t.overlaySurfaces.has(`browser`))return{overlay:document.createElement(`slicc-tab-overlay`),refresh:()=>{}};let o=document.createElement(`slicc-tab-overlay`);o.setAttribute(`heading`,`Browser · tabs in this tray`),o.setAttribute(`no-peek`,``),document.body.append(o);let s=()=>{o.tabs=r().map(e=>({id:e.targetId,title:e.title||e.url||e.targetId,url:e.url}))};return t.overlaySurfaces.add(`browser`),t.dock.addEventListener(`slicc-dock-select`,e=>{e.detail?.id===`browser`&&(s(),o.show(),t.dock.collapse?.())}),o.addEventListener(`tab-activate`,t=>{let r=t.detail.id,s=n(),c=s?.getLeaderProtocolVersion()??0;if(!(s&&i()&&c>=m)){let t=o.tabs.find(e=>e.id===r)?.url;if(!t){a.warn(`WC follower browser: no URL for tab`,{id:r});return}e.window.open(t,`_blank`,`noopener`)||a.warn(`WC follower browser: window.open was blocked`,{id:r}),o.hide();return}s.requestTabTeleport(r).then(e=>{a.info(`WC follower browser: leader teleported a tab here`,{source:r,targetId:e}),o.hide()}).catch(e=>{a.error(`WC follower browser: tab teleport failed`,e)})}),{overlay:o,refresh:s}}var h=new Set([`oauth-attempt`,`connect-attempt`,`device-code-decision`]);function Se(e){return h.has(e)}var g=`slicc-signin-redirect-style`,_=`wc-signin-redirect`,v=`${_}--welcome`,y=`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-shell-BzYq0ESt.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/mime-types-D0xZwlMO.js","assets/base64-ELzoYfwP.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-B857f9Kw.js","assets/core-4boN-CgI.js","assets/compat-BAGLwgqY.js","assets/models-Xc0Gclrk.js","assets/diagnostics-Cag7MsZI.js","assets/env-api-keys-BXRkymgV.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-DHpsqCCC.js","assets/libesm-BypnjKEL.js","assets/feature-flags-DvsApnS-.js","assets/proxied-fetch-Cplb-Tee.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-Dm_PZRZx.js","assets/float-topology-C9GjBEv-.js","assets/secrets-bridge-client-CWv2_nw7.js","assets/port-bridge-client-D_erEovW.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-jygoVQBo.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-B1oHsbyo.js","assets/bedrock-camp-extra-models-BYrxX19D.js","assets/claude-model-version-DZmbk9E2.js","assets/telemetry-B0sKnLBU.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-2DY2vYOc.js","assets/wc-shell-WkeczD9x.css","assets/panelize-shell-zDW06WQ9.js","assets/virtual-device-paths-D45tpPP6.js","assets/layout-apply-registry-Cw730jao.js","assets/wc-live-DPQeITgQ.js","assets/sprinkle-renderer-DQe4_ykh.js","assets/permissions-surface-registry-CilCRwhh.js","assets/hid-device-registry-B2R-0rNt.js","assets/serial-port-registry-CCqklAEr.js","assets/hid-operations-C97SZtrY.js","assets/usb-device-registry--JwKRTYp.js","assets/usb-operations-v1mGAdRY.js","assets/shared-DSEuryGJ.js","assets/theme-CwPIBqJE.js","assets/theme-engine-ZV7CeqWw.js","assets/slugify-BYJ6QVAt.js","assets/transcript-export-DP-r8eDz.js","assets/session-jsonl-CRg856OA.js","assets/tray-follower-status-BAjnN7Ar.js","assets/main-CxkrqswY.js","assets/modulepreload-polyfill-P2Xu9kJm.js","assets/clipboard-eqmn97SP.js","assets/src-BWaKqLvQ.js","assets/provider-budget-LCzMPlKv.js","assets/browser-BhTdBqdp.js","assets/tray-leader-DjSQqusA.js","assets/record-CBv8rWFt.js","assets/descriptor-CuhPBdq8.js","assets/types-CFfBWsH5.js","assets/wc-unit-context-CZro7UrY.js","assets/legacy-styles-B3nS5QUo.js","assets/follower-navigate-watcher-T4oXQ4JA.js","assets/navigation-watcher-CPcnZL9l.js","assets/discovery-preference-D1cUzn0M.js","assets/wc-transcript-export-Bk8nLIfQ.js","assets/export-spool-CuNzzI8a.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{a as n,n as r}from"./feature-flags-DvsApnS-.js";import{n as i}from"./transcript-export-DP-r8eDz.js";import{S as a,a as o,c as s,d as c,i as ee,n as te,r as ne,t as re,x as l}from"./wc-follower-oauth-Dpz6kwmb.js";import{a as ie,t as ae}from"./tray-follower-status-BAjnN7Ar.js";import{C as oe,D as u,E as d,s as se,w as f,x as ce}from"./main-CxkrqswY.js";import{m as le,r as ue,x as de}from"./wc-live-DPQeITgQ.js";import{n as fe}from"./theme-engine-ZV7CeqWw.js";import{c as pe,m as me,s as he,t as ge}from"./wc-unit-context-CZro7UrY.js";import{WcSprinkleZone as _e}from"./wc-sprinkles-qa2Yk76b.js";import{wireWcAttach as ve}from"./wc-attach-VJjD6tJb.js";import{installLeaderPermissionsSurface as ye}from"./wc-permissions-BncUPK23.js";var p=t(`follower-switch-out`);function be(e,t){t.stopFollower();try{t.storage.removeItem(d),e.workerBaseUrl===null?t.storage.removeItem(u):t.storage.setItem(u,e.workerBaseUrl)}catch(e){p.error(`follower switch-out: storage write failed — state may revert on reload`,{error:e instanceof Error?e.message:String(e)})}try{let e=t.getHref(),n=f(e);n!==e&&t.replaceHref(n)}catch(e){p.error(`follower switch-out: URL normalize failed — may re-enter follower on reload`,{error:e instanceof Error?e.message:String(e)})}t.reload()}var m=6;function xe(e){let{refs:t,getSync:n,getTargets:r,hasCdpBrowser:i,log:a}=e;if(t.overlaySurfaces.has(`browser`))return{overlay:document.createElement(`slicc-tab-overlay`),refresh:()=>{}};let o=document.createElement(`slicc-tab-overlay`);o.setAttribute(`heading`,`Browser · tabs in this tray`),o.setAttribute(`no-peek`,``),document.body.append(o);let s=()=>{o.tabs=r().map(e=>({id:e.targetId,title:e.title||e.url||e.targetId,url:e.url}))};return t.overlaySurfaces.add(`browser`),t.dock.addEventListener(`slicc-dock-select`,e=>{e.detail?.id===`browser`&&(s(),o.show(),t.dock.collapse?.())}),o.addEventListener(`tab-activate`,t=>{let r=t.detail.id,s=n(),c=s?.getLeaderProtocolVersion()??0;if(!(s&&i()&&c>=m)){let t=o.tabs.find(e=>e.id===r)?.url;if(!t){a.warn(`WC follower browser: no URL for tab`,{id:r});return}e.window.open(t,`_blank`,`noopener`)||a.warn(`WC follower browser: window.open was blocked`,{id:r}),o.hide();return}s.requestTabTeleport(r).then(e=>{a.info(`WC follower browser: leader teleported a tab here`,{source:r,targetId:e}),o.hide()}).catch(e=>{a.error(`WC follower browser: tab teleport failed`,e)})}),{overlay:o,refresh:s}}var h=new Set([`oauth-attempt`,`connect-attempt`,`device-code-decision`]);function Se(e){return h.has(e)}var g=`slicc-signin-redirect-style`,_=`wc-signin-redirect`,v=`${_}--welcome`,y=`
3
3
  .${_}{display:flex;gap:10px;align-items:flex-start;margin:10px 12px;padding:12px 14px;
4
4
  border:1px solid var(--line);border-radius:12px;background:var(--ghost);color:var(--ink);
5
5
  font-family:var(--ui);font-size:13px;line-height:1.4;}
@@ -14,4 +14,4 @@ import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF
14
14
  .${_}__x:hover{color:var(--ink);}
15
15
  `;function b(e){if(e.getElementById(g))return;let t=e.createElement(`style`);t.id=g,t.textContent=y,e.head.appendChild(t)}function x(e,t){b(e);let n=e.createElement(`div`);n.className=_,n.setAttribute(`role`,`status`);let r=e.createElement(`div`);r.className=`${_}__body`;let i=e.createElement(`div`);i.className=`${_}__title`,i.textContent=t.title;let a=e.createElement(`div`);a.className=`${_}__sub`,a.textContent=t.sub,r.append(i,a);let o=e.createElement(`button`);if(o.type=`button`,o.className=`${_}__open`,o.textContent=t.buttonLabel,o.addEventListener(`click`,()=>t.onOpenTab()),n.append(r,o),t.dismissible){let t=e.createElement(`button`);t.type=`button`,t.className=`${_}__x`,t.setAttribute(`aria-label`,`Dismiss`),t.textContent=`×`,t.addEventListener(`click`,()=>n.remove()),n.append(t)}return n}function Ce(e,t){let n=e.ownerDocument;t.onOpenTab();let r=e.querySelector(`.${_}`);if(r)return r.scrollIntoView?.({block:`nearest`}),r;let i=x(n,{title:`Sign in from the SLICC tab`,sub:`The side panel can't complete a provider login — we've switched you to the main SLICC tab. Finish signing in there (Settings › Providers), then come back.`,buttonLabel:`Open SLICC tab`,onOpenTab:t.onOpenTab,dismissible:!0});return e.append(i),i.scrollIntoView?.({block:`nearest`}),i}function we(e,t){let n=x(e,{title:`Set up SLICC in the main tab`,sub:`SLICC needs a model connected before it can help. Open the main SLICC tab to finish setup and sign in, then come back to the side panel.`,buttonLabel:`Open SLICC tab`,onOpenTab:t.onOpenTab,dismissible:!1});return n.classList.add(v),n}var S=t(`wc-follower`),Te=`/shared/sprinkles/welcome/`,Ee=`/shared/sprinkles/suggestions/`;function De(e){return e===void 0||e===`active`?{kind:`active`}:e.trim()===``?null:{kind:`frozen`,sessionId:e}}function Oe(e,t){for(;e.firstChild;)e.removeChild(e.firstChild);let n=document.createElement(`div`);n.style.cssText=`padding:2rem;text-align:center;font-family:system-ui;`;let r=document.createElement(`h1`);r.style.color=`var(--s2-negative, #e34850)`,r.textContent=`Could not start follower`;let i=document.createElement(`p`);i.style.color=`var(--s2-content-tertiary, #717171)`,i.textContent=t,n.append(r,i),e.appendChild(n)}function ke(e,t,n,r,i){let a=e=>{let t=document.createElement(`div`);return t.className=`wcui-placeholder`,t.textContent=e,t};i.files?(e.style.display=`none`,e.parentElement?.append(a(`Files live on the leader. A follower mirrors the leader's chat, sprinkles, and browser tabs - not its filesystem.`))):e.closest(`slicc-surface`)?.remove(),i.terminal?t.append(a(`The shell runs on the leader. A follower has no local terminal - drive the session through chat.`)):t.closest(`slicc-surface`)?.remove(),i.memory?n.append(a(`Memory lives on the leader. A follower has no local memory store.`)):n.closest(`slicc-surface`)?.remove(),i.monitor?(r.style.display=`none`,r.parentElement?.append(a(`Monitor reads the leader's kernel state. A follower has no local kernel.`))):r.closest(`slicc-surface`)?.remove()}var C={terminal:!0,files:!0,memory:!0,browser:!0,modelPicker:!0,history:!0,nav:!0,monitor:!0,showTimestamps:!0};function Ae(e){let t=[];for(let[n,r]of[[`terminal`,`term`],[`files`,`files`],[`memory`,`memory`],[`browser`,`browser`],[`monitor`,`monitor`]])e[n]||t.push(`slicc-dock-item[data-t="${r}"]`);if(e.modelPicker||t.push(`slicc-composer-meta`),e.history||t.push(`slicc-freezer`),e.nav||t.push(`slicc-nav`),!e.terminal&&!e.files&&!e.memory&&!e.browser&&!e.monitor&&t.push(`slicc-dock .div`,`slicc-dock .grow`),t.length||!e.history){let n=document.createElement(`style`),r=t.length?`${t.join(`,
16
16
  `)}{display:none!important;}`:``;e.history||(r+=`
17
- .wcui-appcol{padding-left:0!important;}`),n.textContent=r,document.head.append(n)}}function w(e,t){return e&&!t}async function T(t,n,r){let[{parseLayoutDocument:i},{panelizeShell:a}]=await Promise.all([e(()=>import(`./wc-shell-CjZMoCV4.js`).then(e=>e.B),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37])),e(()=>import(`./panelize-shell-gHzxRw9h.js`),__vite__mapDeps([38,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40]))]),o=i(n);if(`error`in o){r.warn(`follower: host-pushed layout failed validation — keeping the default`,{error:o.error});return}a(t.refs,o),r.info(`follower: applied host-pushed layout document`,{id:o.id,locked:o.locked===!0})}async function je(e,t,i){if(i&&t.cherryTransport?.flags)try{let e=JSON.parse(t.cherryTransport.flags);e&&typeof e==`object`&&!Array.isArray(e)&&r(e)}catch(e){S.warn(`follower: host-pushed flags were not valid JSON — ignoring`,e)}let a=n(`panel-layouts`);if(e.refs.dockTree.tilesMovable=a,i&&t.cherryTransport?.layout)try{let n=JSON.parse(t.cherryTransport.layout);n&&typeof n==`object`&&`base`in n?a?await T(e,n,S):S.warn(`follower: ignoring host-pushed layout — the panel-layouts flag is off`):e.refs.dockTree.setTree(n)}catch(e){S.warn(`follower: host-pushed layout was not valid JSON — keeping the default`,e)}}async function E(t,r,u){let d=u===`cherry`,f=d&&new URLSearchParams(window.location.search).get(`ui-only`)===`1`,p=window.location.ancestorOrigins?.[0],m=d&&(p?.startsWith(`chrome-extension://`)??!1),h;try{h=await se({runtimeMode:u,envBaseUrl:null,window,log:r})}catch(e){let n=e instanceof Error?e.message:String(e);S.error(`follower prelude failed`,{runtimeMode:u,error:n}),Oe(t,n);return}let g=d?h.cherryJoinUrl:ce(window.location.href,window.localStorage);if(!g){S.error(`follower mount with no join URL - falling back to live boot`);let{bootLeaderFloat:n}=await e(async()=>{let{bootLeaderFloat:e}=await import(`./wc-live-B3xfspeg.js`).then(e=>e.n);return{bootLeaderFloat:e}},__vite__mapDeps([41,1,8,9,10,11,2,12,13,14,15,16,3,17,18,5,19,20,21,22,23,24,25,26,27,0,4,6,7,28,29,30,31,32,33,34,35,36,37,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66]));return n(t,r,`standalone`)}let _=d?`cherry`:m?`extension`:`standalone`,y,b,x,T=new Set,E=null,D=new te({onSilence:(e,t)=>{e===R()&&P.addAssistantMessage(ee(t,m))},onRejected:(e,t)=>{e!==null&&e===R()&&P.addAssistantMessage(ne(t))}});T.add(()=>D.noteLeaderActivity());let O=null,k=()=>h.cherryTransport?.emitSliccEventToHost(`slicc.open-leader-tab`),A=()=>{m&&Ce(y.refs.thread,{onOpenTab:k})},j=e=>{let t=e.querySelectorAll(`img[src^="${Te}"]`);return t.length!==0&&(t.forEach((t,n)=>{n===0&&!M?t.replaceWith(we(e.ownerDocument,{onOpenTab:k})):t.remove()}),!0)},M=!1,Me=e=>{let t=e.querySelectorAll(`img[src^="${Ee}"]`);if(t.length!==0){for(let e of t)e.remove();M=!0;for(let e of y.refs.thread.querySelectorAll(`.${v}`))e.remove()}},N=(await ue(t,r,{floatKind:_,connect:async t=>{y=t,d&&h.cherryTransport?.theme&&fe(h.cherryTransport.theme),await je(y,h,d);let n=d&&h.cherryTransport?.effortLevel;n?localStorage.setItem(`slicc_locked_effort_level`,n):localStorage.removeItem(`slicc_locked_effort_level`),b=d&&h.cherryTransport?{...C,...h.cherryTransport.features}:C,ke(y.refs.fileTree,y.refs.termSurface,y.refs.memoryHost,y.refs.monitor,b),Ae(b),e(async()=>{let{applyTimestampVisibility:e,initTimestampPreference:t}=await import(`./wc-shell-CjZMoCV4.js`).then(e=>e.Q);return{applyTimestampVisibility:e,initTimestampPreference:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37])).then(({applyTimestampVisibility:e,initTimestampPreference:t})=>{b.showTimestamps?t():e(!1)}),e(async()=>{let{loadDipStyles:e,loadSprinkleStyles:t}=await import(`./legacy-styles-B3nS5QUo.js`);return{loadDipStyles:e,loadSprinkleStyles:t}},__vite__mapDeps([67,2])).then(({loadDipStyles:e,loadSprinkleStyles:t})=>Promise.all([e(),t()])).catch(()=>void 0),x=new o({getSync:()=>J?.currentSync??null,onSend:(e,t)=>D.noteSent(e,t)});let r=de({getSync:()=>J?.currentSync??null,onAgentEvent:e=>(T.add(e),()=>T.delete(e)),onAgentError:e=>{S.warn(`follower send failed`,{error:e}),N.controller.addAssistantMessage(`_That message was not sent to the leader — ${e}_`)}}),i={...r,sendSprinkleLick:(e,t,n)=>{r.sendSprinkleLick(e,t,n);let i=t?.action;typeof i==`string`&&Se(i)&&A()},addressableUnitId:()=>V(),onMessageRendered:e=>{Me(e),m&&j(e)},onSelectionApplied:()=>{W(H,U),O?.onShownUnitChanged()},onSnapshotRendered:e=>{N.controller.setProcessing(e.some(e=>e.isStreaming))},ownsModelPill:!0,takeAttachments:()=>Pe.take()};return{client:x,host:i}}})).chat,P=N.controller;if(m)for(let e of[`slicc-error-open-settings`,`slicc-error-login`,`slicc-error-change-model`])y.refs.thread.addEventListener(e,()=>A());let F=`Connecting to leader…`,I=`Ask the leader, or describe a change…`,L=null,R=()=>y.getSelected()?.id??L,z=e=>e&&e.length>0?e:null,B=!1,V=()=>B?z(R()??x.selectedUnitId):null,Ne=()=>{let e=y.getSelected();return e?me(e):!1},H=!1,U=F,W=(e,t)=>{H=e,U=t;let n=e&&V()!==null;y.refs.inputCard.setAttribute(`placeholder`,e&&!n?F:t),n&&!Ne()?y.refs.inputCard.removeAttribute(`disabled`):y.refs.inputCard.setAttribute(`disabled`,``)};W(!1,F),ie(e=>{try{window.localStorage.setItem(l,JSON.stringify(e))}catch{}});try{window.localStorage.setItem(l,JSON.stringify(ae()))}catch{}f||y.refs.composer.setAttribute(`ptt`,``);let Pe=ve({inputCard:y.refs.inputCard,freezer:y.refs.freezer,composer:y.refs.composer,noCamera:f,log:S}),G=new _e(y.refs).callbacks(),K=e=>{if(L=e,!e)return;let t=x.currentUnits().find(t=>t.id===e);if(!t){y.watchUnit(e),W(H,U);return}if(y.getSelected()?.id!==t.id){y.selectScoop(t);return}W(H,U)},q=()=>{B=!1,x.resetSelection()};y.refs.switcher.connection=`disconnected`;let J,Y=null,Fe=()=>(Y||=ye({runtimeMode:u})?.element??null,Y),X=[],Ie=xe({refs:y.refs,getSync:()=>J.currentSync,getTargets:()=>X,hasCdpBrowser:()=>w(h.hasLocalCdpSurface,f),window,log:S});O=le({composerMeta:y.refs.composerMeta,getUnits:()=>x.currentUnits(),setModel:(e,t)=>{x.setModel(e,t).catch(()=>void 0)},getSync:()=>J.currentSync,getSelectedScoopJid:()=>R(),modelPickerEnabled:b.modelPicker,getLockedEffortLevel:()=>localStorage.getItem(`slicc_locked_effort_level`)}),x.subscribeList(()=>O?.onShownUnitChanged()),J=s(x.wrapOptions({joinUrl:g,runtime:d?a:`slicc-standalone`,advertisesCdpTargets:w(h.hasLocalCdpSurface,f),onTargetsUpdated:e=>{X=e,Ie.refresh()},...d||f?{}:{onOAuthPopupRequest:(e,t)=>re(e,t,{getPermissionsSurface:Fe,window})},browserAPI:h.browser,onSnapshot:(e,t)=>{B=!0,K(z(t))},onUserMessage:(e,t,n,r)=>P.addUserMessage(e,r),onOwnUserMessageEcho:(e,t)=>D.noteReceived(t,e),onUserMessageAck:e=>D.noteAck(e),onBiscottoMessageState:(e,t)=>{switch(D.noteLeaderActivity(),t){case`pending`:P.addAssistantMessage(`_Sent for review — waiting for the host._`);break;case`rejected`:P.addAssistantMessage(`_The host did not forward that message._`);break;case`unanswered`:P.addAssistantMessage(`_No one reviewed that message in time, so it was not forwarded._`)}},onStatus:(e,t)=>{D.noteLeaderActivity(t),c(t,R())&&P.setProcessing(e===`processing`)},setChatAgent:e=>{E?.(),E=e.onEvent(e=>{for(let t of T)t(e)})},onSudoApprovalRequest:async t=>{let{openSudoApprovalDialog:n}=await e(async()=>{let{openSudoApprovalDialog:e}=await import(`./wc-sudo-approval-C51zuN6a.js`);return{openSudoApprovalDialog:e}},[]),r=d?h.cherryTransport?.hostOrigin:void 0;return{decision:(await n({kind:t.kind,detail:t.detail,...t.suggestedPattern?{suggestedPattern:t.suggestedPattern}:{},...t.reason?{reason:t.reason}:{}},{allowAlways:!1,signal:t.signal,expiresAt:t.expiresAt,requester:t.requester??t.scoopName??(r?`via ${r}`:void 0)})).decision,attestation:`none`}},onConnectionChange:e=>{y.refs.switcher.connection=e?`connected`:`disconnected`,e||q(),e||D.noteLeaderActivity(),W(e,e?I:F),e||O?.reset(),d&&h.cherryTransport?.emitSliccEventToHost(e?`slicc.follower.ready`:`slicc.follower.disconnected`)},getSelectedScoopJid:()=>R(),onLeaderStalled:e=>{W(!e,e?`The leader is busy — hang on…`:I)},onGaveUp:e=>{S.error(`follower gave up reaching the leader`,{error:e}),y.refs.switcher.connection=`disconnected`,q(),W(!1,`Couldn't reach the leader. Reload to retry.`),O?.reset(),d&&h.cherryTransport?.emitSliccEventToHost(`slicc.follower.disconnected`)},...d?{}:{onJoinUrlChanged:e=>{S.info(`follower joinUrl superseded, persisting replacement`,{newJoinUrl:e}),oe(window.localStorage,e)}},addSprinkle:G.addSprinkle,removeSprinkle:G.removeSprinkle,onOpen:e=>{/^https?:\/\//.test(e)?window.open(e,`_blank`,`noopener`):S.warn(`follower sprinkle open() of a local path is unavailable`,{path:e})},onSelectScoop:e=>he(x.currentUnits(),e,y.getSelected()?.id,e=>y.selectScoop(e),()=>ge(y.refs.inputCard)),onSelectedScoop:()=>pe(x.currentUnits(),y.getSelected()?.id),onScoopsList:(e,t)=>{B=!0;let n=R();!n||!e.some(e=>e.jid===n)?K(z(t)):K(n),y.wiring.refreshScoops?.()},onModelsList:e=>O?.onModelsList(e),onModelState:e=>O?.onModelState(e),...d?{onCherrySliccEvent:(e,t)=>h.cherryTransport?.emitSliccEventToHost(e,t)}:{}}));for(let e of[`save`,`skip`,`erase`])y.refs.freezer.addEventListener(`new-chat-${e}`,()=>{x.forgetLocalSends(),J.currentSync?.requestNewSession(e)});n(`agentic-memory`)&&y.refs.freezer.querySelector(`slicc-freezer-new`)?.setAttribute(`no-skip`,``),y.refs.switcher.addEventListener(`slicc-scoop-select`,e=>{let t=e.detail?.key;t&&(L=t)}),d&&h.cherryTransport&&(h.cherryTransport.onHostEvent=(e,t)=>J.currentSync?.sendCherryHostEvent(e,t),h.cherryTransport.onExportRequest=(e,t,n,r)=>{let a=J.currentSync;if(!a)return Promise.reject(new i(`transfer-aborted`));let o=De(t);return o?a.requestTranscriptExport(o,n,r):Promise.reject(new i(`session-not-found`))});let Z=null;if(!d){let{startFollowerNavigateWatcher:t}=await e(async()=>{let{startFollowerNavigateWatcher:e}=await import(`./follower-navigate-watcher-T4oXQ4JA.js`);return{startFollowerNavigateWatcher:e}},__vite__mapDeps([68,3,69,6,18,1,2,5,19,20,21,70]));Z=t(h.realCdpTransport,()=>J.currentSync)}let Q=!1,$=()=>{y.refs.avatarMenu.items=[{kind:`separator`},...m?[{id:`focus-leader-tab`,label:`Bring leader to front`,icon:`external-link`}]:[],{id:`export-transcript`,label:Q?`Exporting…`:`Export transcript`,icon:`download`,disabled:Q||void 0},{id:`tray-stop`,label:`Disconnect from leader`,icon:`unplug`,danger:!0}]};$(),y.refs.avatarMenu.addEventListener(`slicc-avatar-action`,t=>{let n=t.detail?.id;if(n===`focus-leader-tab`){h.cherryTransport?.emitSliccEventToHost(`slicc.focus-leader-tab`);return}if(n===`tray-stop`){window.dispatchEvent(new CustomEvent(`slicc:tray-leave`,{detail:{workerBaseUrl:null}}));return}if(n===`export-transcript`&&!Q){Q=!0,$();let t=J.currentSync;if(!t){Q=!1,$();return}let n=new AbortController;t.requestTranscriptExport({kind:`active`},n.signal).then(async t=>{let{downloadTranscriptBlob:n}=await e(async()=>{let{downloadTranscriptBlob:e}=await import(`./wc-transcript-export-C4au4GRp.js`);return{downloadTranscriptBlob:e}},__vite__mapDeps([71,2,53,72,59,1]));await n(t,`slicc-transcript-${new Date().toISOString().slice(0,10)}.zip`)}).catch(e=>{S.error(`follower transcript export failed`,{error:String(e)})}).finally(()=>{Q=!1,$()})}}),window.addEventListener(`slicc:tray-leave`,e=>{be({workerBaseUrl:(e.detail??{}).workerBaseUrl??null},{storage:window.localStorage,stopFollower:()=>{Z?.(),J.stop()},getHref:()=>window.location.href,replaceHref:e=>window.history.replaceState(null,``,e),reload:()=>window.location.reload()})}),S.info(`follower mounted`,{runtimeMode:u,isCherry:d})}export{E as bootFollowerFloat};
17
+ .wcui-appcol{padding-left:0!important;}`),n.textContent=r,document.head.append(n)}}function w(e,t){return e&&!t}async function T(t,n,r){let[{parseLayoutDocument:i},{panelizeShell:a}]=await Promise.all([e(()=>import(`./wc-shell-BzYq0ESt.js`).then(e=>e.B),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37])),e(()=>import(`./panelize-shell-zDW06WQ9.js`),__vite__mapDeps([38,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40]))]),o=i(n);if(`error`in o){r.warn(`follower: host-pushed layout failed validation — keeping the default`,{error:o.error});return}a(t.refs,o),r.info(`follower: applied host-pushed layout document`,{id:o.id,locked:o.locked===!0})}async function je(e,t,i){if(i&&t.cherryTransport?.flags)try{let e=JSON.parse(t.cherryTransport.flags);e&&typeof e==`object`&&!Array.isArray(e)&&r(e)}catch(e){S.warn(`follower: host-pushed flags were not valid JSON — ignoring`,e)}let a=n(`panel-layouts`);if(e.refs.dockTree.tilesMovable=a,i&&t.cherryTransport?.layout)try{let n=JSON.parse(t.cherryTransport.layout);n&&typeof n==`object`&&`base`in n?a?await T(e,n,S):S.warn(`follower: ignoring host-pushed layout — the panel-layouts flag is off`):e.refs.dockTree.setTree(n)}catch(e){S.warn(`follower: host-pushed layout was not valid JSON — keeping the default`,e)}}async function E(t,r,u){let d=u===`cherry`,f=d&&new URLSearchParams(window.location.search).get(`ui-only`)===`1`,p=window.location.ancestorOrigins?.[0],m=d&&(p?.startsWith(`chrome-extension://`)??!1),h;try{h=await se({runtimeMode:u,envBaseUrl:null,window,log:r})}catch(e){let n=e instanceof Error?e.message:String(e);S.error(`follower prelude failed`,{runtimeMode:u,error:n}),Oe(t,n);return}let g=d?h.cherryJoinUrl:ce(window.location.href,window.localStorage);if(!g){S.error(`follower mount with no join URL - falling back to live boot`);let{bootLeaderFloat:n}=await e(async()=>{let{bootLeaderFloat:e}=await import(`./wc-live-DPQeITgQ.js`).then(e=>e.n);return{bootLeaderFloat:e}},__vite__mapDeps([41,1,8,9,10,11,2,12,13,14,15,16,3,17,18,5,19,20,21,22,23,24,25,26,27,0,4,6,7,28,29,30,31,32,33,34,35,36,37,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66]));return n(t,r,`standalone`)}let _=d?`cherry`:m?`extension`:`standalone`,y,b,x,T=new Set,E=null,D=new te({onSilence:(e,t)=>{e===R()&&P.addAssistantMessage(ee(t,m))},onRejected:(e,t)=>{e!==null&&e===R()&&P.addAssistantMessage(ne(t))}});T.add(()=>D.noteLeaderActivity());let O=null,k=()=>h.cherryTransport?.emitSliccEventToHost(`slicc.open-leader-tab`),A=()=>{m&&Ce(y.refs.thread,{onOpenTab:k})},j=e=>{let t=e.querySelectorAll(`img[src^="${Te}"]`);return t.length!==0&&(t.forEach((t,n)=>{n===0&&!M?t.replaceWith(we(e.ownerDocument,{onOpenTab:k})):t.remove()}),!0)},M=!1,Me=e=>{let t=e.querySelectorAll(`img[src^="${Ee}"]`);if(t.length!==0){for(let e of t)e.remove();M=!0;for(let e of y.refs.thread.querySelectorAll(`.${v}`))e.remove()}},N=(await ue(t,r,{floatKind:_,connect:async t=>{y=t,d&&h.cherryTransport?.theme&&fe(h.cherryTransport.theme),await je(y,h,d);let n=d&&h.cherryTransport?.effortLevel;n?localStorage.setItem(`slicc_locked_effort_level`,n):localStorage.removeItem(`slicc_locked_effort_level`),b=d&&h.cherryTransport?{...C,...h.cherryTransport.features}:C,ke(y.refs.fileTree,y.refs.termSurface,y.refs.memoryHost,y.refs.monitor,b),Ae(b),e(async()=>{let{applyTimestampVisibility:e,initTimestampPreference:t}=await import(`./wc-shell-BzYq0ESt.js`).then(e=>e.Q);return{applyTimestampVisibility:e,initTimestampPreference:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37])).then(({applyTimestampVisibility:e,initTimestampPreference:t})=>{b.showTimestamps?t():e(!1)}),e(async()=>{let{loadDipStyles:e,loadSprinkleStyles:t}=await import(`./legacy-styles-B3nS5QUo.js`);return{loadDipStyles:e,loadSprinkleStyles:t}},__vite__mapDeps([67,2])).then(({loadDipStyles:e,loadSprinkleStyles:t})=>Promise.all([e(),t()])).catch(()=>void 0),x=new o({getSync:()=>J?.currentSync??null,onSend:(e,t)=>D.noteSent(e,t)});let r=de({getSync:()=>J?.currentSync??null,onAgentEvent:e=>(T.add(e),()=>T.delete(e)),onAgentError:e=>{S.warn(`follower send failed`,{error:e}),N.controller.addAssistantMessage(`_That message was not sent to the leader — ${e}_`)}}),i={...r,sendSprinkleLick:(e,t,n)=>{r.sendSprinkleLick(e,t,n);let i=t?.action;typeof i==`string`&&Se(i)&&A()},addressableUnitId:()=>V(),onMessageRendered:e=>{Me(e),m&&j(e)},onSelectionApplied:()=>{W(H,U),O?.onShownUnitChanged()},onSnapshotRendered:e=>{N.controller.setProcessing(e.some(e=>e.isStreaming))},ownsModelPill:!0,takeAttachments:()=>Pe.take()};return{client:x,host:i}}})).chat,P=N.controller;if(m)for(let e of[`slicc-error-open-settings`,`slicc-error-login`,`slicc-error-change-model`])y.refs.thread.addEventListener(e,()=>A());let F=`Connecting to leader…`,I=`Ask the leader, or describe a change…`,L=null,R=()=>y.getSelected()?.id??L,z=e=>e&&e.length>0?e:null,B=!1,V=()=>B?z(R()??x.selectedUnitId):null,Ne=()=>{let e=y.getSelected();return e?me(e):!1},H=!1,U=F,W=(e,t)=>{H=e,U=t;let n=e&&V()!==null;y.refs.inputCard.setAttribute(`placeholder`,e&&!n?F:t),n&&!Ne()?y.refs.inputCard.removeAttribute(`disabled`):y.refs.inputCard.setAttribute(`disabled`,``)};W(!1,F),ie(e=>{try{window.localStorage.setItem(l,JSON.stringify(e))}catch{}});try{window.localStorage.setItem(l,JSON.stringify(ae()))}catch{}f||y.refs.composer.setAttribute(`ptt`,``);let Pe=ve({inputCard:y.refs.inputCard,freezer:y.refs.freezer,composer:y.refs.composer,noCamera:f,log:S}),G=new _e(y.refs).callbacks(),K=e=>{if(L=e,!e)return;let t=x.currentUnits().find(t=>t.id===e);if(!t){y.watchUnit(e),W(H,U);return}if(y.getSelected()?.id!==t.id){y.selectScoop(t);return}W(H,U)},q=()=>{B=!1,x.resetSelection()};y.refs.switcher.connection=`disconnected`;let J,Y=null,Fe=()=>(Y||=ye({runtimeMode:u})?.element??null,Y),X=[],Ie=xe({refs:y.refs,getSync:()=>J.currentSync,getTargets:()=>X,hasCdpBrowser:()=>w(h.hasLocalCdpSurface,f),window,log:S});O=le({composerMeta:y.refs.composerMeta,getUnits:()=>x.currentUnits(),setModel:(e,t)=>{x.setModel(e,t).catch(()=>void 0)},getSync:()=>J.currentSync,getSelectedScoopJid:()=>R(),modelPickerEnabled:b.modelPicker,getLockedEffortLevel:()=>localStorage.getItem(`slicc_locked_effort_level`)}),x.subscribeList(()=>O?.onShownUnitChanged()),J=s(x.wrapOptions({joinUrl:g,runtime:d?a:`slicc-standalone`,advertisesCdpTargets:w(h.hasLocalCdpSurface,f),onTargetsUpdated:e=>{X=e,Ie.refresh()},...d||f?{}:{onOAuthPopupRequest:(e,t)=>re(e,t,{getPermissionsSurface:Fe,window})},browserAPI:h.browser,onSnapshot:(e,t)=>{B=!0,K(z(t))},onUserMessage:(e,t,n,r)=>P.addUserMessage(e,r),onOwnUserMessageEcho:(e,t)=>D.noteReceived(t,e),onUserMessageAck:e=>D.noteAck(e),onBiscottoMessageState:(e,t)=>{switch(D.noteLeaderActivity(),t){case`pending`:P.addAssistantMessage(`_Sent for review — waiting for the host._`);break;case`rejected`:P.addAssistantMessage(`_The host did not forward that message._`);break;case`unanswered`:P.addAssistantMessage(`_No one reviewed that message in time, so it was not forwarded._`)}},onStatus:(e,t)=>{D.noteLeaderActivity(t),c(t,R())&&P.setProcessing(e===`processing`)},setChatAgent:e=>{E?.(),E=e.onEvent(e=>{for(let t of T)t(e)})},onSudoApprovalRequest:async t=>{let{openSudoApprovalDialog:n}=await e(async()=>{let{openSudoApprovalDialog:e}=await import(`./wc-sudo-approval-C51zuN6a.js`);return{openSudoApprovalDialog:e}},[]),r=d?h.cherryTransport?.hostOrigin:void 0;return{decision:(await n({kind:t.kind,detail:t.detail,...t.suggestedPattern?{suggestedPattern:t.suggestedPattern}:{},...t.reason?{reason:t.reason}:{}},{allowAlways:!1,signal:t.signal,expiresAt:t.expiresAt,requester:t.requester??t.scoopName??(r?`via ${r}`:void 0)})).decision,attestation:`none`}},onConnectionChange:e=>{y.refs.switcher.connection=e?`connected`:`disconnected`,e||q(),e||D.noteLeaderActivity(),W(e,e?I:F),e||O?.reset(),d&&h.cherryTransport?.emitSliccEventToHost(e?`slicc.follower.ready`:`slicc.follower.disconnected`)},getSelectedScoopJid:()=>R(),onLeaderStalled:e=>{W(!e,e?`The leader is busy — hang on…`:I)},onGaveUp:e=>{S.error(`follower gave up reaching the leader`,{error:e}),y.refs.switcher.connection=`disconnected`,q(),W(!1,`Couldn't reach the leader. Reload to retry.`),O?.reset(),d&&h.cherryTransport?.emitSliccEventToHost(`slicc.follower.disconnected`)},...d?{}:{onJoinUrlChanged:e=>{S.info(`follower joinUrl superseded, persisting replacement`,{newJoinUrl:e}),oe(window.localStorage,e)}},addSprinkle:G.addSprinkle,removeSprinkle:G.removeSprinkle,onOpen:e=>{/^https?:\/\//.test(e)?window.open(e,`_blank`,`noopener`):S.warn(`follower sprinkle open() of a local path is unavailable`,{path:e})},onSelectScoop:e=>he(x.currentUnits(),e,y.getSelected()?.id,e=>y.selectScoop(e),()=>ge(y.refs.inputCard)),onSelectedScoop:()=>pe(x.currentUnits(),y.getSelected()?.id),onScoopsList:(e,t)=>{B=!0;let n=R();!n||!e.some(e=>e.jid===n)?K(z(t)):K(n),y.wiring.refreshScoops?.()},onModelsList:e=>O?.onModelsList(e),onModelState:e=>O?.onModelState(e),...d?{onCherrySliccEvent:(e,t)=>h.cherryTransport?.emitSliccEventToHost(e,t)}:{}}));for(let e of[`save`,`skip`,`erase`])y.refs.freezer.addEventListener(`new-chat-${e}`,()=>{x.forgetLocalSends(),J.currentSync?.requestNewSession(e)});n(`agentic-memory`)&&y.refs.freezer.querySelector(`slicc-freezer-new`)?.setAttribute(`no-skip`,``),y.refs.switcher.addEventListener(`slicc-scoop-select`,e=>{let t=e.detail?.key;t&&(L=t)}),d&&h.cherryTransport&&(h.cherryTransport.onHostEvent=(e,t)=>J.currentSync?.sendCherryHostEvent(e,t),h.cherryTransport.onExportRequest=(e,t,n,r)=>{let a=J.currentSync;if(!a)return Promise.reject(new i(`transfer-aborted`));let o=De(t);return o?a.requestTranscriptExport(o,n,r):Promise.reject(new i(`session-not-found`))});let Z=null;if(!d){let{startFollowerNavigateWatcher:t}=await e(async()=>{let{startFollowerNavigateWatcher:e}=await import(`./follower-navigate-watcher-T4oXQ4JA.js`);return{startFollowerNavigateWatcher:e}},__vite__mapDeps([68,3,69,6,18,1,2,5,19,20,21,70]));Z=t(h.realCdpTransport,()=>J.currentSync)}let Q=!1,$=()=>{y.refs.avatarMenu.items=[{kind:`separator`},...m?[{id:`focus-leader-tab`,label:`Bring leader to front`,icon:`external-link`}]:[],{id:`export-transcript`,label:Q?`Exporting…`:`Export transcript`,icon:`download`,disabled:Q||void 0},{id:`tray-stop`,label:`Disconnect from leader`,icon:`unplug`,danger:!0}]};$(),y.refs.avatarMenu.addEventListener(`slicc-avatar-action`,t=>{let n=t.detail?.id;if(n===`focus-leader-tab`){h.cherryTransport?.emitSliccEventToHost(`slicc.focus-leader-tab`);return}if(n===`tray-stop`){window.dispatchEvent(new CustomEvent(`slicc:tray-leave`,{detail:{workerBaseUrl:null}}));return}if(n===`export-transcript`&&!Q){Q=!0,$();let t=J.currentSync;if(!t){Q=!1,$();return}let n=new AbortController;t.requestTranscriptExport({kind:`active`},n.signal).then(async t=>{let{downloadTranscriptBlob:n}=await e(async()=>{let{downloadTranscriptBlob:e}=await import(`./wc-transcript-export-Bk8nLIfQ.js`);return{downloadTranscriptBlob:e}},__vite__mapDeps([71,2,53,72,59,1]));await n(t,`slicc-transcript-${new Date().toISOString().slice(0,10)}.zip`)}).catch(e=>{S.error(`follower transcript export failed`,{error:String(e)})}).finally(()=>{Q=!1,$()})}}),window.addEventListener(`slicc:tray-leave`,e=>{be({workerBaseUrl:(e.detail??{}).workerBaseUrl??null},{storage:window.localStorage,stopFollower:()=>{Z?.(),J.stop()},getHref:()=>window.location.href,replaceHref:e=>window.history.replaceState(null,``,e),reload:()=>window.location.reload()})}),S.info(`follower mounted`,{runtimeMode:u,isCherry:d})}export{E as bootFollowerFloat};