sliccy 6.218.1 → 6.218.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/{SKILL-Bf4dLNGe.js → SKILL-yQwWZJ0k.js} +1 -1
  3. package/dist/ui/assets/{account-store-BdjOKPz3.js → account-store-BAcqOQ-B.js} +1 -1
  4. package/dist/ui/assets/{account-store-B7laop91.js → account-store-ravOkuEh.js} +1 -1
  5. package/dist/ui/assets/{adobe-CBdP8qkF.js → adobe-BiZfsUty.js} +1 -1
  6. package/dist/ui/assets/{adobe-BtGPzSrv.js → adobe-pJN-ccGb.js} +1 -1
  7. package/dist/ui/assets/{agent-panels-nqeWg5xF.js → agent-panels-RX0aZNxw.js} +1 -1
  8. package/dist/ui/assets/{almost-bash-shell-headless-BjVJJenZ.js → almost-bash-shell-headless-CrjX8fl9.js} +37 -37
  9. package/dist/ui/assets/{apply-layout-D5MVlcSF.js → apply-layout-el2h8g2C.js} +1 -1
  10. package/dist/ui/assets/{apps-HnqKBUHX.js → apps-B_AtpN8Z.js} +1 -1
  11. package/dist/ui/assets/{azure-openai-DRuLRbZB.js → azure-openai-DHcO2cmT.js} +1 -1
  12. package/dist/ui/assets/{azure-openai-N0T_b24E.js → azure-openai-KNZuu6zT.js} +1 -1
  13. package/dist/ui/assets/{backend-hostfs-Bpq7h28p.js → backend-hostfs-BDDFu6nL.js} +1 -1
  14. package/dist/ui/assets/{cdp-Du335BC6.js → cdp-DCRqc_78.js} +1 -1
  15. package/dist/ui/assets/{cerebras-BVvAXhF0.js → cerebras-BlJAvwBj.js} +1 -1
  16. package/dist/ui/assets/{cerebras-K-hUyWFf.js → cerebras-cELX_-Tv.js} +1 -1
  17. package/dist/ui/assets/{composer-speech-CPI-l_lg.js → composer-speech-DH1izq66.js} +1 -1
  18. package/dist/ui/assets/{connect-surface-Du-BjQUX.js → connect-surface-B3q5wFk-.js} +1 -1
  19. package/dist/ui/assets/{directed-approval-C-jBIDkH.js → directed-approval-D1HryfoH.js} +1 -1
  20. package/dist/ui/assets/{emscripten-vfs-hook-BFv3ooLq.js → emscripten-vfs-hook-B4FfTaY4.js} +1 -1
  21. package/dist/ui/assets/{ensure-speech-assets-C8qLAYob.js → ensure-speech-assets-D4_slw76.js} +1 -1
  22. package/dist/ui/assets/{frozen-archive-writer-lfrRFDDx.js → frozen-archive-writer-e3mSQ8e5.js} +1 -1
  23. package/dist/ui/assets/{fs-D79kbc64.js → fs-BVa_vuoo.js} +1 -1
  24. package/dist/ui/assets/{fs-DVRZCOy3.js → fs-gotPoSZp.js} +2 -2
  25. package/dist/ui/assets/{gelatiere-store-B0pTt2PY.js → gelatiere-store-DAXCFmPP.js} +1 -1
  26. package/dist/ui/assets/{gelatiere-unit-CNE_zGrQ.js → gelatiere-unit-qTkgNxXs.js} +1 -1
  27. package/dist/ui/assets/{github-BZMAEsKw.js → github-B2VWEFqp.js} +2 -2
  28. package/dist/ui/assets/{github-CZxDVnOe.js → github-BZHffErO.js} +1 -1
  29. package/dist/ui/assets/{github-auth-Ctvx9W14.js → github-auth-BNgH9jG6.js} +1 -1
  30. package/dist/ui/assets/{github-copilot-DWCKjYqJ.js → github-copilot-B5jdTW-u.js} +1 -1
  31. package/dist/ui/assets/{github-copilot-_iiXYuoA.js → github-copilot-BfIflOh7.js} +1 -1
  32. package/dist/ui/assets/{github-install-opG6I9ai.js → github-install-Cxleuyru.js} +1 -1
  33. package/dist/ui/assets/{github-zip-e37qjZpz.js → github-zip-DgJl9Jw1.js} +1 -1
  34. package/dist/ui/assets/{hear-DNH9kgGa.js → hear-BiUNm14H.js} +1 -1
  35. package/dist/ui/assets/{help-DceeEeRw.js → help-Bo2yyWMr.js} +1 -1
  36. package/dist/ui/assets/{installer-CQuoccbb.js → installer-DP22Qfj-.js} +1 -1
  37. package/dist/ui/assets/{ipk-mamba-CwLABcMU.js → ipk-mamba-DvgLiW3J.js} +1 -1
  38. package/dist/ui/assets/{js-realm-worker-DTyXxC9P.js → js-realm-worker-jCLcGISU.js} +2 -2
  39. package/dist/ui/assets/{jsh-executor-BxrVmvlA.js → jsh-executor-eAgbPICA.js} +2 -2
  40. package/dist/ui/assets/{kernel-worker-U40O6N2K.js → kernel-worker-BVn6NgIr.js} +10 -10
  41. package/dist/ui/assets/{lick-ws-bridge-DJrvo52_.js → lick-ws-bridge-5hziXRsb.js} +1 -1
  42. package/dist/ui/assets/{lick-ws-bridge-BKBFhW9J.js → lick-ws-bridge-CNWoPxh8.js} +1 -1
  43. package/dist/ui/assets/{live-session-curation-DEgAvdVx.js → live-session-curation-6r5THRVc.js} +1 -1
  44. package/dist/ui/assets/{live-session-snapshot-xqHlwUvv.js → live-session-snapshot-XuA7hS3R.js} +1 -1
  45. package/dist/ui/assets/{local-llm-Cep99kdG.js → local-llm-BIToWY5w.js} +1 -1
  46. package/dist/ui/assets/{local-llm-BN4YjA8z.js → local-llm-JneFYPSJ.js} +1 -1
  47. package/dist/ui/assets/{main-CotpV-j8.js → main-B0thDo_I.js} +3 -3
  48. package/dist/ui/assets/{main-cherry-B-6VfA4s.js → main-cherry-i42Stq_t.js} +1 -1
  49. package/dist/ui/assets/{memory-curation-seam-Bdi1iW-5.js → memory-curation-seam-jPN-pjNv.js} +1 -1
  50. package/dist/ui/assets/{memory-health-DClrg1kk.js → memory-health-D9MwFVu8.js} +1 -1
  51. package/dist/ui/assets/{memory-write-execute-DMscvhC_.js → memory-write-execute-DxJVccvs.js} +1 -1
  52. package/dist/ui/assets/{merge-folded-cost-into-frozen-Bi83gln5.js → merge-folded-cost-into-frozen-BOnFPZYR.js} +1 -1
  53. package/dist/ui/assets/{mount-DViwrItx.js → mount-7auALEdt.js} +3 -3
  54. package/dist/ui/assets/{mount-ZLq7-Sqf.js → mount-D9DpIM-H.js} +1 -1
  55. package/dist/ui/assets/{new-session-ASM95RU5.js → new-session-dV2C39fB.js} +2 -2
  56. package/dist/ui/assets/{oauth-bootstrap-DTQhGvAD.js → oauth-bootstrap-MsvroWIf.js} +2 -2
  57. package/dist/ui/assets/{onboarding-orchestrator-B0XVmjma.js → onboarding-orchestrator-BsyNlEp6.js} +1 -1
  58. package/dist/ui/assets/{openai-codex-DUgzlk9K.js → openai-codex-D6aLn4wD.js} +1 -1
  59. package/dist/ui/assets/{openai-codex-mvwQenvU.js → openai-codex-QMojLG84.js} +1 -1
  60. package/dist/ui/assets/{openrouter-BYBtqPBq.js → openrouter-DeSZmyWQ.js} +1 -1
  61. package/dist/ui/assets/{openrouter-DtUUN5EE.js → openrouter-LDOkDdfN.js} +1 -1
  62. package/dist/ui/assets/{openrouter-free-CNjeJbOO.js → openrouter-free-AToAyfMH.js} +1 -1
  63. package/dist/ui/assets/{openrouter-free-D75Z12Ik.js → openrouter-free-BDD5HUZF.js} +1 -1
  64. package/dist/ui/assets/{openrouter-oauth-CHyggIyD.js → openrouter-oauth-CztvqBA0.js} +1 -1
  65. package/dist/ui/assets/{openrouter-oauth-CPCPdFCU.js → openrouter-oauth-DqxRskZC.js} +1 -1
  66. package/dist/ui/assets/{opfs-mount-BDWPUuSL.js → opfs-mount-DP4EQVf_.js} +1 -1
  67. package/dist/ui/assets/{panel-rpc-handlers-Buiml3bX.js → panel-rpc-handlers-W71VzlDM.js} +2 -2
  68. package/dist/ui/assets/{panelize-shell-KD-cdjyg.js → panelize-shell-9j9B_80g.js} +1 -1
  69. package/dist/ui/assets/{pi-edit-execution-CRo6BVko.js → pi-edit-execution-BShsB4bj.js} +1 -1
  70. package/dist/ui/assets/{provider-DJ7J7TTG.js → provider-CE1zpBVX.js} +1 -1
  71. package/dist/ui/assets/{provider-cHT5-ref.js → provider-Ca9Zz8yb.js} +2 -2
  72. package/dist/ui/assets/{provider-settings-DDlNp16A.js → provider-settings-uiENuCqB.js} +1 -1
  73. package/dist/ui/assets/provider-store-access-D0H9f5vw.js +1 -0
  74. package/dist/ui/assets/provider-store-access-qw-70nQO.js +1 -0
  75. package/dist/ui/assets/{providers-DUDu6Lmu.js → providers-DCmI83QO.js} +2 -2
  76. package/dist/ui/assets/{providers-CPn6jivr.js → providers-bam7z0UT.js} +1 -1
  77. package/dist/ui/assets/{quick-llm-C14mrLkj.js → quick-llm-CzXagx_t.js} +1 -1
  78. package/dist/ui/assets/{realm-inprocess-DJt71c2L.js → realm-inprocess-sTQMTEkB.js} +2 -2
  79. package/dist/ui/assets/{realm-unhandled-rejections-6KFC-fhd.js → realm-unhandled-rejections-BXaHCNJa.js} +1 -1
  80. package/dist/ui/assets/{realm-unhandled-rejections-B8nKo2Tx.js → realm-unhandled-rejections-DDmLwwJS.js} +1 -1
  81. package/dist/ui/assets/{recovery-screen-3it4OTo7.js → recovery-screen-BKbUhrGB.js} +1 -1
  82. package/dist/ui/assets/{remote-terminal-view-D6Z3lSfO.js → remote-terminal-view-BLwdw7dM.js} +2 -2
  83. package/dist/ui/assets/{restore-BQVOVxj1.js → restore-o9YtsuVz.js} +1 -1
  84. package/dist/ui/assets/{run-Bl_Jo1vL.js → run-BFNiHcEW.js} +1 -1
  85. package/dist/ui/assets/{run-DqWIVRA9.js → run-BUej2chT.js} +1 -1
  86. package/dist/ui/assets/{run-p34tCvDs.js → run-Bh8htYg7.js} +1 -1
  87. package/dist/ui/assets/run-Bk9OlZwF.js +17 -0
  88. package/dist/ui/assets/{run-CSijFvRr.js → run-CilACXgz.js} +2 -2
  89. package/dist/ui/assets/{run-bCsBOt_J.js → run-DSre5ukc.js} +2 -2
  90. package/dist/ui/assets/{run-DsW8Qpsb.js → run-medvCK_6.js} +1 -1
  91. package/dist/ui/assets/{session-command-memory-CEZOTSzO.js → session-command-memory-CK-bjU-i.js} +2 -2
  92. package/dist/ui/assets/{session-jsonl-rvfERYs1.js → session-jsonl-B6O31EYv.js} +1 -1
  93. package/dist/ui/assets/{session-jsonl-CRmi-eZu.js → session-jsonl-BHcQKeee.js} +1 -1
  94. package/dist/ui/assets/{session-search-index-ZsL35g0f.js → session-search-index-Ddwbbkut.js} +1 -1
  95. package/dist/ui/assets/{setup-feature-flags-remote-FvyzuBin.js → setup-feature-flags-remote-DHIyA7Ql.js} +1 -1
  96. package/dist/ui/assets/{setup-model-catalog-D-rOjwYA.js → setup-model-catalog-DtyllODF.js} +1 -1
  97. package/dist/ui/assets/{signed-fetch-5Q4tDG_V.js → signed-fetch-DFBopENg.js} +1 -1
  98. package/dist/ui/assets/{silent-renew-backoff-mR5xplnG.js → silent-renew-backoff-BL8wMKQc.js} +1 -1
  99. package/dist/ui/assets/slicc-version-eQ6JEYYJ.js +1 -0
  100. package/dist/ui/assets/{snapshot-Dt7ZxIl-.js → snapshot-CsXWOCBJ.js} +1 -1
  101. package/dist/ui/assets/{snapshot-features-bUKtdDuw.js → snapshot-features-BPgaCNDl.js} +1 -1
  102. package/dist/ui/assets/{soundscape-B3N-7VZ5.js → soundscape-C7FEDgkP.js} +1 -1
  103. package/dist/ui/assets/{speak-DrGpEa1x.js → speak-tkO5HiC2.js} +1 -1
  104. package/dist/ui/assets/{sprinkle-manager-Dynxm3SM.js → sprinkle-manager-BlbSbFUW.js} +1 -1
  105. package/dist/ui/assets/{sprinkle-renderer-DvQuv4fd.js → sprinkle-renderer-DuZBBlID.js} +4 -4
  106. package/dist/ui/assets/{state-CcG_N7dp.js → state-l6lHl-l7.js} +1 -1
  107. package/dist/ui/assets/{store-O7ohEYVb.js → store-CkDykWVq.js} +1 -1
  108. package/dist/ui/assets/{store-nocai8Zr.js → store-aGHgfLPM.js} +1 -1
  109. package/dist/ui/assets/{sudo-C4Ucr7BP.js → sudo-NxhV_dIm.js} +1 -1
  110. package/dist/ui/assets/{supervisor-DRet5CNQ.js → supervisor-BRrTWhmg.js} +1 -1
  111. package/dist/ui/assets/{sync-dialog-C_5SdAIP.js → sync-dialog-CJG4icPz.js} +1 -1
  112. package/dist/ui/assets/{transformers-env-D0Xvbisd.js → transformers-env-DwuHApPS.js} +1 -1
  113. package/dist/ui/assets/{tray-leader-CXnsh_8Q.js → tray-leader-BhwzHsW4.js} +1 -1
  114. package/dist/ui/assets/{tray-leave-runtime-BflOuylF.js → tray-leave-runtime-DzJgtJD5.js} +1 -1
  115. package/dist/ui/assets/{tray-sidecar-BPb-AHGD.js → tray-sidecar-B0VqIheG.js} +1 -1
  116. package/dist/ui/assets/{upgrade-detection-CVdfPg5E.js → upgrade-detection-0h2MYFF0.js} +1 -1
  117. package/dist/ui/assets/{upskill-lick-skip-DZ66c3jU.js → upskill-lick-skip-BCj_PLi0.js} +1 -1
  118. package/dist/ui/assets/{voice-reply-D_TnHCtx.js → voice-reply-C5gcSbT4.js} +1 -1
  119. package/dist/ui/assets/{wc-attach-CJBBuvkf.js → wc-attach-DnwMWit4.js} +2 -2
  120. package/dist/ui/assets/{wc-browser-C-hkPMkZ.js → wc-browser-BQC_7cG7.js} +1 -1
  121. package/dist/ui/assets/{wc-computers-Cd0nLRk3.js → wc-computers-CecKLajY.js} +1 -1
  122. package/dist/ui/assets/{wc-detached-CTp2WpmM.js → wc-detached-DeqWd0nW.js} +1 -1
  123. package/dist/ui/assets/{wc-extension-CNj8kw4V.js → wc-extension-B3Jqz0iE.js} +2 -2
  124. package/dist/ui/assets/{wc-follower-BOSjoWl1.js → wc-follower-CONbTzRc.js} +3 -3
  125. package/dist/ui/assets/{wc-follower-oauth-CSs497xu.js → wc-follower-oauth-B_EiiAvr.js} +1 -1
  126. package/dist/ui/assets/{wc-gelatiere-DWWDGWMY.js → wc-gelatiere-Dsw0YMCT.js} +1 -1
  127. package/dist/ui/assets/{wc-live-DwKnzew3.js → wc-live-BgzKz_k0.js} +21 -21
  128. package/dist/ui/assets/{wc-nav-BSFZqSiC.js → wc-nav-DyWKt3_Y.js} +2 -2
  129. package/dist/ui/assets/{wc-onboarding-lNp5TvRG.js → wc-onboarding-CKWhBBSy.js} +2 -2
  130. package/dist/ui/assets/{wc-permissions-CWbCVz2v.js → wc-permissions-pLNhbxI6.js} +2 -2
  131. package/dist/ui/assets/{wc-placeholder-CxqS53ZP.js → wc-placeholder-CmAWVzs3.js} +3 -3
  132. package/dist/ui/assets/{wc-secret-request-q_kn-cMF.js → wc-secret-request-D_GiKx5L.js} +1 -1
  133. package/dist/ui/assets/{wc-settings-D8UGOcms.js → wc-settings-iRSoSmMz.js} +3 -3
  134. package/dist/ui/assets/{wc-shell-DdIp2GiQ.js → wc-shell-B0PhY3hq.js} +3 -3
  135. package/dist/ui/assets/{wc-shortcut-config-CII5IT3A.js → wc-shortcut-config-DvRLapnh.js} +1 -1
  136. package/dist/ui/assets/{wc-sprinkles-CXy6OS2N.js → wc-sprinkles-BEPQPFKR.js} +2 -2
  137. package/dist/ui/assets/{wc-transcript-export-BDJ9a1PW.js → wc-transcript-export-BCmTsnHP.js} +2 -2
  138. package/dist/ui/assets/{wc-tray-n1QDSYTd.js → wc-tray-BRdwlPkC.js} +4 -4
  139. package/dist/ui/assets/welcome-detection-C_huX4jr.js +1 -0
  140. package/dist/ui/assets/{whisper-session-D6SjKk6p.js → whisper-session-BPJbM4fv.js} +2 -2
  141. package/dist/ui/assets/{xai-grok-B1N40RDf.js → xai-grok-fAOHWGfl.js} +1 -1
  142. package/dist/ui/assets/{xai-grok-DTcUJ8zx.js → xai-grok-mxLxouZL.js} +1 -1
  143. package/dist/ui/index.html +3 -3
  144. package/dist/ui/packages/webapp/index.html +3 -3
  145. package/package.json +1 -1
  146. package/dist/ui/assets/provider-store-access-B0BS43I_.js +0 -1
  147. package/dist/ui/assets/provider-store-access-BxNyxD0L.js +0 -1
  148. package/dist/ui/assets/run-qKtH39R0.js +0 -17
  149. package/dist/ui/assets/slicc-version-BX9v8YhI.js +0 -1
  150. package/dist/ui/assets/welcome-detection-tH1EFOa_.js +0 -1
@@ -0,0 +1 @@
1
+ import{n as e}from"./wc-onboarding-CKWhBBSy.js";export{e as hasOnboardingFinalLickInHistory};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/speak-DrGpEa1x.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/runtime-env-Dlaokqg1.js","assets/speech-assets-bridge-CFYafE89.js","assets/transformers-env-D0Xvbisd.js","assets/wc-shell-DdIp2GiQ.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/mime-types-D0xZwlMO.js","assets/base64-ELzoYfwP.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-B7laop91.js","assets/core-CbbeQz7g.js","assets/compat-Dy2zIWAW.js","assets/models-YdybRRvT.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-B-zmcypy.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/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-DUDu6Lmu.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-C64_Hwco.js","assets/bedrock-camp-extra-models-Dg0hblqu.js","assets/claude-model-version-DZmbk9E2.js","assets/telemetry-B0sKnLBU.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-dEBJiC8z.js","assets/wc-shell-WkeczD9x.css","assets/shared-DSEuryGJ.js","assets/transformers.web-BBJR2ai3.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,o as i,r as a,t as o}from"./transformers-env-D0Xvbisd.js";var s=t(`speech:whisper`),c=null,l=`idle`,u=null,d=new Set;function f(){return l}function p(){return u}function m(e){return e&&d.add(e),c||=(l=`loading`,g().then(e=>(l=`ready`,h(),e),e=>{throw l=`failed`,c=null,s.error(`whisper load failed`,e),e})),c}function h(){e(async()=>{let{kokoroWarmup:e}=await import(`./speak-DrGpEa1x.js`);return{kokoroWarmup: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,38,39,40])).then(({kokoroWarmup:e})=>e()).catch(e=>s.warn(`kokoro warmup (chained after whisper) failed`,e))}async function g(){let{pipeline:t,env:c}=await e(async()=>{let{pipeline:e,env:t}=await import(`./transformers.web-BBJR2ai3.js`);return{pipeline:e,env:t}},__vite__mapDeps([41,7,1]));r(c),await o(n),await a();let l=i(),f=e=>{if(e?.file){if(e.status===`progress`)l.update(e.file,e.loaded??0,e.total??0);else if(e.status===`done`)l.complete(e.file);else return;u=l.snapshot();for(let e of d)e(u)}},p=async e=>await t(`automatic-speech-recognition`,n,{device:e,dtype:e===`webgpu`?`fp32`:`q8`,progress_callback:f}),m=typeof navigator<`u`&&`gpu`in navigator,h;if(m)try{h=await p(`webgpu`)}catch(e){s.warn(`whisper webgpu init failed; retrying on wasm`,e),h=await p(`wasm`)}else h=await p(`wasm`);return s.info(`whisper ready`,{model:n,device:m?`webgpu`:`wasm`}),{async transcribe(e,t){let n=performance.now(),r=await h(e,{chunk_length_s:30,task:`transcribe`,...t?.language?{language:t.language}:{}}),i=Array.isArray(r)?r.map(e=>e.text??``).join(` `):r.text??``;return s.info(`whisper transcribe`,{elapsedMs:Math.round(performance.now()-n),audioSeconds:Math.round(e.length/160)/100,numThreads:c.backends?.onnx?.wasm?.numThreads,device:m?`webgpu`:`wasm`}),i.trim()}}}var _=16e3;async function v(e){if(typeof AudioContext>`u`||typeof OfflineAudioContext>`u`)throw Error(`audio decoding requires a window/page realm (AudioContext unavailable)`);let t=new AudioContext,n;try{n=await t.decodeAudioData(e.slice(0))}finally{await t.close().catch(()=>{})}let r=Math.max(1,Math.ceil(n.duration*_)),i=new OfflineAudioContext(1,r,_),a=i.createBufferSource();return a.buffer=n,a.connect(i.destination),a.start(),(await i.startRendering()).getChannelData(0).slice(0)}var y=t(`speech:whisper-session`),b=2e3,x=500,S=5e3,C=3e4,w=(e,t,n)=>new Promise((r,i)=>{let a=setTimeout(()=>i(Error(`${n} timed out after ${t}ms`)),t);e.then(e=>{clearTimeout(a),r(e)},e=>{clearTimeout(a),i(e)})});function T(e){return e?.split(`-`)[0]?.toLowerCase()||void 0}async function E(e,t){let n;if(t.stream)n=t.stream;else{if(!navigator.mediaDevices?.getUserMedia)throw Error(`microphone capture unavailable in this realm`);n=await navigator.mediaDevices.getUserMedia({audio:t.deviceId&&t.deviceId!=="default"?{deviceId:{exact:t.deviceId}}:!0})}let r=new MediaRecorder(n),i=[],a=T(t.lang),o=!1,s=!1;r.ondataavailable=e=>{e.data.size>0&&i.push(e.data)};let c=async()=>{if(i.length===0)return``;let t=await v(await new Blob(i,{type:r.mimeType||`audio/webm`}).arrayBuffer());return e.transcribe(t,{language:a})},l=Promise.resolve(``),u=()=>{let e=l.catch(()=>``).then(()=>c());return l=e.catch(()=>``),e},d=setInterval(()=>{o||s||i.length===0||(o=!0,u().then(e=>{!s&&e&&t.onPartial?.(e)}).catch(e=>{y.warn(`partial transcription failed`,e)}).finally(()=>{o=!1}))},b),f=()=>{if(clearInterval(d),r.state!==`inactive`)try{r.stop()}catch{}for(let e of n.getTracks())e.stop()},p=()=>new Promise(e=>{if(r.state===`inactive`){e();return}r.onstop=()=>e();try{r.stop()}catch{e()}});return r.start(x),{async stop(){if(s)return``;s=!0,clearInterval(d);try{await w(p(),S,`recorder flush`);for(let e of n.getTracks())e.stop();return await w(u(),C,`transcription`)}catch(e){for(let e of n.getTracks())e.stop();let r=e instanceof Error?e.message:String(e);return t.onError?.(`transcription failed: ${r}`),``}},cancel(){s||(s=!0,f())}}}export{p as a,m as i,T as n,f as o,v as r,E as t};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/speak-tkO5HiC2.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/runtime-env-Dlaokqg1.js","assets/speech-assets-bridge-CFYafE89.js","assets/transformers-env-DwuHApPS.js","assets/wc-shell-B0PhY3hq.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/mime-types-D0xZwlMO.js","assets/base64-ELzoYfwP.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-ravOkuEh.js","assets/core-CbbeQz7g.js","assets/compat-Dy2zIWAW.js","assets/models-YdybRRvT.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-B-zmcypy.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/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-DCmI83QO.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-C64_Hwco.js","assets/bedrock-camp-extra-models-Dg0hblqu.js","assets/claude-model-version-DZmbk9E2.js","assets/telemetry-B0sKnLBU.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-dEBJiC8z.js","assets/wc-shell-WkeczD9x.css","assets/shared-DSEuryGJ.js","assets/transformers.web-BBJR2ai3.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,o as i,r as a,t as o}from"./transformers-env-DwuHApPS.js";var s=t(`speech:whisper`),c=null,l=`idle`,u=null,d=new Set;function f(){return l}function p(){return u}function m(e){return e&&d.add(e),c||=(l=`loading`,g().then(e=>(l=`ready`,h(),e),e=>{throw l=`failed`,c=null,s.error(`whisper load failed`,e),e})),c}function h(){e(async()=>{let{kokoroWarmup:e}=await import(`./speak-tkO5HiC2.js`);return{kokoroWarmup: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,38,39,40])).then(({kokoroWarmup:e})=>e()).catch(e=>s.warn(`kokoro warmup (chained after whisper) failed`,e))}async function g(){let{pipeline:t,env:c}=await e(async()=>{let{pipeline:e,env:t}=await import(`./transformers.web-BBJR2ai3.js`);return{pipeline:e,env:t}},__vite__mapDeps([41,7,1]));r(c),await o(n),await a();let l=i(),f=e=>{if(e?.file){if(e.status===`progress`)l.update(e.file,e.loaded??0,e.total??0);else if(e.status===`done`)l.complete(e.file);else return;u=l.snapshot();for(let e of d)e(u)}},p=async e=>await t(`automatic-speech-recognition`,n,{device:e,dtype:e===`webgpu`?`fp32`:`q8`,progress_callback:f}),m=typeof navigator<`u`&&`gpu`in navigator,h;if(m)try{h=await p(`webgpu`)}catch(e){s.warn(`whisper webgpu init failed; retrying on wasm`,e),h=await p(`wasm`)}else h=await p(`wasm`);return s.info(`whisper ready`,{model:n,device:m?`webgpu`:`wasm`}),{async transcribe(e,t){let n=performance.now(),r=await h(e,{chunk_length_s:30,task:`transcribe`,...t?.language?{language:t.language}:{}}),i=Array.isArray(r)?r.map(e=>e.text??``).join(` `):r.text??``;return s.info(`whisper transcribe`,{elapsedMs:Math.round(performance.now()-n),audioSeconds:Math.round(e.length/160)/100,numThreads:c.backends?.onnx?.wasm?.numThreads,device:m?`webgpu`:`wasm`}),i.trim()}}}var _=16e3;async function v(e){if(typeof AudioContext>`u`||typeof OfflineAudioContext>`u`)throw Error(`audio decoding requires a window/page realm (AudioContext unavailable)`);let t=new AudioContext,n;try{n=await t.decodeAudioData(e.slice(0))}finally{await t.close().catch(()=>{})}let r=Math.max(1,Math.ceil(n.duration*_)),i=new OfflineAudioContext(1,r,_),a=i.createBufferSource();return a.buffer=n,a.connect(i.destination),a.start(),(await i.startRendering()).getChannelData(0).slice(0)}var y=t(`speech:whisper-session`),b=2e3,x=500,S=5e3,C=3e4,w=(e,t,n)=>new Promise((r,i)=>{let a=setTimeout(()=>i(Error(`${n} timed out after ${t}ms`)),t);e.then(e=>{clearTimeout(a),r(e)},e=>{clearTimeout(a),i(e)})});function T(e){return e?.split(`-`)[0]?.toLowerCase()||void 0}async function E(e,t){let n;if(t.stream)n=t.stream;else{if(!navigator.mediaDevices?.getUserMedia)throw Error(`microphone capture unavailable in this realm`);n=await navigator.mediaDevices.getUserMedia({audio:t.deviceId&&t.deviceId!=="default"?{deviceId:{exact:t.deviceId}}:!0})}let r=new MediaRecorder(n),i=[],a=T(t.lang),o=!1,s=!1;r.ondataavailable=e=>{e.data.size>0&&i.push(e.data)};let c=async()=>{if(i.length===0)return``;let t=await v(await new Blob(i,{type:r.mimeType||`audio/webm`}).arrayBuffer());return e.transcribe(t,{language:a})},l=Promise.resolve(``),u=()=>{let e=l.catch(()=>``).then(()=>c());return l=e.catch(()=>``),e},d=setInterval(()=>{o||s||i.length===0||(o=!0,u().then(e=>{!s&&e&&t.onPartial?.(e)}).catch(e=>{y.warn(`partial transcription failed`,e)}).finally(()=>{o=!1}))},b),f=()=>{if(clearInterval(d),r.state!==`inactive`)try{r.stop()}catch{}for(let e of n.getTracks())e.stop()},p=()=>new Promise(e=>{if(r.state===`inactive`){e();return}r.onstop=()=>e();try{r.stop()}catch{e()}});return r.start(x),{async stop(){if(s)return``;s=!0,clearInterval(d);try{await w(p(),S,`recorder flush`);for(let e of n.getTracks())e.stop();return await w(u(),C,`transcription`)}catch(e){for(let e of n.getTracks())e.stop();let r=e instanceof Error?e.message:String(e);return t.onError?.(`transcription failed: ${r}`),``}},cancel(){s||(s=!0,f())}}}export{p as a,m as i,T as n,f as o,v as r,E as t};
@@ -1 +1 @@
1
- import{_ as e,r as t}from"./account-store-BdjOKPz3.js";import{a as n}from"./diagnostics-DN_idNHx.js";import{a as r}from"./compat-uEPf6-XW.js";import{s as i}from"./core-BOHj4mqw.js";import{c as a,i as o,r as s,s as c}from"./legacy-api-aliases-jKEvBgOL.js";import"./provider-settings-DDlNp16A.js";import{n as l,r as u}from"./bridge-token-required-BYgoMwr7.js";import{n as d,r as f,t as p}from"./pkce-hGf_TEnP.js";import{XaiErrorCode as m,XaiOAuthError as h}from"./xai-grok-errors-ByEMMSoz.js";function g(e){return typeof e==`object`&&!!e}function _(e){if(!g(e))return null;let t=g(e.config)?e.config:e,n=t.creditUsagePercent;if(typeof n!=`number`||!Number.isFinite(n))return null;let r=Math.min(1e3,Math.max(0,n)),i=g(t.currentPeriod)?t.currentPeriod:{},a=i.type,o=typeof a==`string`?a.replace(`USAGE_PERIOD_TYPE_`,``).toLowerCase():``,s=i.end??t.billingPeriodEnd,c=typeof s==`string`&&Number.isFinite(Date.parse(s))?s:void 0;return{percent:r,status:`ok`,window:o&&o!==`unspecified`?o:`billing`,...c?{resetsAt:c}:{}}}async function v(e,t,n={}){let r=new AbortController,i=setTimeout(()=>r.abort(),n.timeoutMs??8e3);try{let n=await t(`https://cli-chat-proxy.grok.com/v1/billing?format=credits`,{headers:{Authorization:`Bearer ${e}`},signal:r.signal}),{status:i}=n;if(i===404||i===501)return null;if(!n.ok)throw Error(`xAI Grok usage: ${i===401||i===403?`re-login required`:`failed`} (${i})`);let a=await n.text();if(a.length>65536)return null;try{return _(JSON.parse(a))}catch{return null}}finally{clearTimeout(i)}}const y=`xai-grok`,b=`https://auth.x.ai`,x=`${b}/oauth2/authorize`,S=`${b}/oauth2/token`,C=`b1a00492-073a-47ea-816f-4c329264a828`,w=`http://127.0.0.1:56121/callback`,T=`https://api.x.ai/v1`,E=`grok-4.7`,D=`${y}-openai`;function O(e){if(e.some(e=>e.id===E))return e;let t=e.find(e=>e.id===`grok-4.6`)??e.find(e=>e.api===`openai-responses`)??e[0];return t?[{...t,id:E,name:`Grok 4.7`,api:`openai-responses`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.5,cacheWrite:0},contextWindow:5e5,maxTokens:5e5,thinkingLevelMap:{off:null,minimal:null,low:`low`,medium:`medium`,high:`high`,xhigh:`xhigh`,max:null}},...e]:e}function k(){return O(i(`xai`))}function A(e){return{id:e.id,name:e.name,api:`openai`,reasoning:e.reasoning,input:e.input,context_window:e.contextWindow,max_tokens:e.maxTokens,compat:e.compat,thinkingLevelMap:e.thinkingLevelMap,cost:e.cost}}function j(e){let t=k(),n=t.find(t=>t.id===e.id);if(!n&&(console.warn(`xAI model "${e.id}" is no longer in the pi-ai catalog; falling back to default "${E}"`),n=t.find(e=>e.id===E),!n))throw Error(`xAI default model "${E}" is not registered by pi-ai`);if(n.api!==`openai-responses`&&n.api!==`openai-completions`)throw Error(`Unsupported pi-ai API "${n.api}" for xAI model "${e.id}"`);return{...e,...n,baseUrl:T}}async function M(e,t){let n=new URLSearchParams({grant_type:`authorization_code`,code:e,redirect_uri:w,client_id:C,code_verifier:t}),r=await fetch(S,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:n});if(!r.ok)throw new h(`xAI token exchange failed: ${r.status} ${await r.text()}`,m.TOKEN_EXCHANGE_FAILED);let i=await r.json();if(!i.access_token)throw new h(`xAI token exchange did not return access_token.`,m.TOKEN_EXCHANGE_INVALID);return i}async function N(e){if(l())return null;try{let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e,client_id:C}),n=await fetch(S,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});if(!n.ok){let e=await n.text();return u(n.status,e)||console.error(`[xai-grok] refresh failed:`,n.status,e),null}return await n.json()}catch(e){return console.error(`[xai-grok] refresh error:`,e instanceof Error?e.message:String(e)),null}}function P(){return t().find(e=>e.providerId===y)}async function F(){let t=P();if(!t?.accessToken)throw new h("Not signed in to xAI Grok — run /login or `oauth-token xai-grok`",m.AUTH_MISSING,!0);let n=t.tokenExpiresAt??0;if(n&&Date.now()+6e4<n)return t.accessToken;if(t.refreshToken){let n=await N(t.refreshToken);if(n?.access_token)return await e({providerId:y,accessToken:n.access_token,refreshToken:n.refresh_token??t.refreshToken,tokenExpiresAt:Date.now()+(n.expires_in??21600)*1e3,scopes:n.scope??t.scopes}),n.access_token}return t.accessToken}async function I(){if(!P()?.accessToken)throw Error(`xAI Grok budget: not signed in`);return v(await F(),fetch)}function L(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:D,provider:y,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function R(e,t){return t?{...e??{},"x-grok-conv-id":t}:e}function z(e){console.error(`[xai-grok] Stream error:`,e instanceof Error?e.message:String(e))}async function B(e,t,n,r){try{let i=await F(),a=r.sessionId,c=j(t),l={...r,apiKey:i,headers:R(r.headers,a)},u=c.api===`openai-responses`?o(c,n,l):s(c,n,l);for await(let t of u)e.push(t);e.end()}catch(n){z(n),e.push(L(t,n)),e.end()}}async function V(e,t,n,r){try{let i=await F(),o=r?.sessionId,s=j(t),l={...r,apiKey:i,headers:R(r?.headers,o)},u=s.api===`openai-responses`?a(s,n,l):c(s,n,l);for await(let t of u)e.push(t);e.end()}catch(n){z(n),e.push(L(t,n)),e.end()}}const H=(e,t,r={})=>{let i=n();return B(i,e,t,r).catch(z),i},U=(e,t,r)=>{let i=n();return V(i,e,t,r).catch(z),i},W={id:y,name:`xAI Grok (SuperGrok OAuth)`,description:`Grok via xAI OAuth — uses your SuperGrok subscription, no API key needed. Default model is Grok 4.7.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:E,oauthTokenDomains:[`api.x.ai`,`*.x.ai`,`auth.x.ai`,`accounts.x.ai`,`cli-chat-proxy.grok.com`],getModelIds:()=>k().map(A),getBudgetUsage:I,onOAuthLoginIntercepted:async(t,n,r)=>{let i=d(),a=await p(i),o=f(),s=f(),c=new URL(x);c.searchParams.set(`response_type`,`code`),c.searchParams.set(`client_id`,C),c.searchParams.set(`redirect_uri`,w),c.searchParams.set(`scope`,r?.scopes??`openid profile email offline_access grok-cli:access api:access`),c.searchParams.set(`code_challenge`,a),c.searchParams.set(`code_challenge_method`,`S256`),c.searchParams.set(`state`,o),c.searchParams.set(`nonce`,s),c.searchParams.set(`plan`,`generic`),c.searchParams.set(`referrer`,`slicc`);let l=await t({authorizeUrl:c.toString(),redirectUriPattern:`http://127.0.0.1:56121/*`,onCapture:`close`});if(!l)throw new h(`xAI OAuth login was cancelled or timed out`,m.CALLBACK_TIMEOUT);let u=new URL(l),g=u.searchParams.get(`code`),_=u.searchParams.get(`state`);if(!g)throw new h(`xAI OAuth redirect did not include a code`,m.CODE_MISSING);if(_!==o)throw new h(`xAI OAuth state mismatch — possible CSRF, aborting`,m.STATE_MISMATCH);let v=await M(g,i);await e({providerId:y,accessToken:v.access_token,refreshToken:v.refresh_token,tokenExpiresAt:Date.now()+(v.expires_in??21600)*1e3,baseUrl:T,scopes:v.scope}),n()},onOAuthLogout:async()=>{await e({providerId:y,accessToken:``})},onSilentRenew:async()=>{let t=P();if(!t?.refreshToken)return null;let n=await N(t.refreshToken);return n?.access_token?(await e({providerId:y,accessToken:n.access_token,refreshToken:n.refresh_token??t.refreshToken,tokenExpiresAt:Date.now()+(n.expires_in??21600)*1e3,scopes:n.scope??t.scopes}),n.access_token):null}};function G(){r({api:D,stream:H,streamSimple:U})}export{m as XaiErrorCode,h as XaiOAuthError,W as config,G as register};
1
+ import{_ as e,r as t}from"./account-store-BAcqOQ-B.js";import{a as n}from"./diagnostics-DN_idNHx.js";import{a as r}from"./compat-uEPf6-XW.js";import{s as i}from"./core-BOHj4mqw.js";import{c as a,i as o,r as s,s as c}from"./legacy-api-aliases-jKEvBgOL.js";import"./provider-settings-uiENuCqB.js";import{n as l,r as u}from"./bridge-token-required-BYgoMwr7.js";import{n as d,r as f,t as p}from"./pkce-hGf_TEnP.js";import{XaiErrorCode as m,XaiOAuthError as h}from"./xai-grok-errors-ByEMMSoz.js";function g(e){return typeof e==`object`&&!!e}function _(e){if(!g(e))return null;let t=g(e.config)?e.config:e,n=t.creditUsagePercent;if(typeof n!=`number`||!Number.isFinite(n))return null;let r=Math.min(1e3,Math.max(0,n)),i=g(t.currentPeriod)?t.currentPeriod:{},a=i.type,o=typeof a==`string`?a.replace(`USAGE_PERIOD_TYPE_`,``).toLowerCase():``,s=i.end??t.billingPeriodEnd,c=typeof s==`string`&&Number.isFinite(Date.parse(s))?s:void 0;return{percent:r,status:`ok`,window:o&&o!==`unspecified`?o:`billing`,...c?{resetsAt:c}:{}}}async function v(e,t,n={}){let r=new AbortController,i=setTimeout(()=>r.abort(),n.timeoutMs??8e3);try{let n=await t(`https://cli-chat-proxy.grok.com/v1/billing?format=credits`,{headers:{Authorization:`Bearer ${e}`},signal:r.signal}),{status:i}=n;if(i===404||i===501)return null;if(!n.ok)throw Error(`xAI Grok usage: ${i===401||i===403?`re-login required`:`failed`} (${i})`);let a=await n.text();if(a.length>65536)return null;try{return _(JSON.parse(a))}catch{return null}}finally{clearTimeout(i)}}const y=`xai-grok`,b=`https://auth.x.ai`,x=`${b}/oauth2/authorize`,S=`${b}/oauth2/token`,C=`b1a00492-073a-47ea-816f-4c329264a828`,w=`http://127.0.0.1:56121/callback`,T=`https://api.x.ai/v1`,E=`grok-4.7`,D=`${y}-openai`;function O(e){if(e.some(e=>e.id===E))return e;let t=e.find(e=>e.id===`grok-4.6`)??e.find(e=>e.api===`openai-responses`)??e[0];return t?[{...t,id:E,name:`Grok 4.7`,api:`openai-responses`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.5,cacheWrite:0},contextWindow:5e5,maxTokens:5e5,thinkingLevelMap:{off:null,minimal:null,low:`low`,medium:`medium`,high:`high`,xhigh:`xhigh`,max:null}},...e]:e}function k(){return O(i(`xai`))}function A(e){return{id:e.id,name:e.name,api:`openai`,reasoning:e.reasoning,input:e.input,context_window:e.contextWindow,max_tokens:e.maxTokens,compat:e.compat,thinkingLevelMap:e.thinkingLevelMap,cost:e.cost}}function j(e){let t=k(),n=t.find(t=>t.id===e.id);if(!n&&(console.warn(`xAI model "${e.id}" is no longer in the pi-ai catalog; falling back to default "${E}"`),n=t.find(e=>e.id===E),!n))throw Error(`xAI default model "${E}" is not registered by pi-ai`);if(n.api!==`openai-responses`&&n.api!==`openai-completions`)throw Error(`Unsupported pi-ai API "${n.api}" for xAI model "${e.id}"`);return{...e,...n,baseUrl:T}}async function M(e,t){let n=new URLSearchParams({grant_type:`authorization_code`,code:e,redirect_uri:w,client_id:C,code_verifier:t}),r=await fetch(S,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:n});if(!r.ok)throw new h(`xAI token exchange failed: ${r.status} ${await r.text()}`,m.TOKEN_EXCHANGE_FAILED);let i=await r.json();if(!i.access_token)throw new h(`xAI token exchange did not return access_token.`,m.TOKEN_EXCHANGE_INVALID);return i}async function N(e){if(l())return null;try{let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e,client_id:C}),n=await fetch(S,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});if(!n.ok){let e=await n.text();return u(n.status,e)||console.error(`[xai-grok] refresh failed:`,n.status,e),null}return await n.json()}catch(e){return console.error(`[xai-grok] refresh error:`,e instanceof Error?e.message:String(e)),null}}function P(){return t().find(e=>e.providerId===y)}async function F(){let t=P();if(!t?.accessToken)throw new h("Not signed in to xAI Grok — run /login or `oauth-token xai-grok`",m.AUTH_MISSING,!0);let n=t.tokenExpiresAt??0;if(n&&Date.now()+6e4<n)return t.accessToken;if(t.refreshToken){let n=await N(t.refreshToken);if(n?.access_token)return await e({providerId:y,accessToken:n.access_token,refreshToken:n.refresh_token??t.refreshToken,tokenExpiresAt:Date.now()+(n.expires_in??21600)*1e3,scopes:n.scope??t.scopes}),n.access_token}return t.accessToken}async function I(){if(!P()?.accessToken)throw Error(`xAI Grok budget: not signed in`);return v(await F(),fetch)}function L(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:D,provider:y,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function R(e,t){return t?{...e??{},"x-grok-conv-id":t}:e}function z(e){console.error(`[xai-grok] Stream error:`,e instanceof Error?e.message:String(e))}async function B(e,t,n,r){try{let i=await F(),a=r.sessionId,c=j(t),l={...r,apiKey:i,headers:R(r.headers,a)},u=c.api===`openai-responses`?o(c,n,l):s(c,n,l);for await(let t of u)e.push(t);e.end()}catch(n){z(n),e.push(L(t,n)),e.end()}}async function V(e,t,n,r){try{let i=await F(),o=r?.sessionId,s=j(t),l={...r,apiKey:i,headers:R(r?.headers,o)},u=s.api===`openai-responses`?a(s,n,l):c(s,n,l);for await(let t of u)e.push(t);e.end()}catch(n){z(n),e.push(L(t,n)),e.end()}}const H=(e,t,r={})=>{let i=n();return B(i,e,t,r).catch(z),i},U=(e,t,r)=>{let i=n();return V(i,e,t,r).catch(z),i},W={id:y,name:`xAI Grok (SuperGrok OAuth)`,description:`Grok via xAI OAuth — uses your SuperGrok subscription, no API key needed. Default model is Grok 4.7.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:E,oauthTokenDomains:[`api.x.ai`,`*.x.ai`,`auth.x.ai`,`accounts.x.ai`,`cli-chat-proxy.grok.com`],getModelIds:()=>k().map(A),getBudgetUsage:I,onOAuthLoginIntercepted:async(t,n,r)=>{let i=d(),a=await p(i),o=f(),s=f(),c=new URL(x);c.searchParams.set(`response_type`,`code`),c.searchParams.set(`client_id`,C),c.searchParams.set(`redirect_uri`,w),c.searchParams.set(`scope`,r?.scopes??`openid profile email offline_access grok-cli:access api:access`),c.searchParams.set(`code_challenge`,a),c.searchParams.set(`code_challenge_method`,`S256`),c.searchParams.set(`state`,o),c.searchParams.set(`nonce`,s),c.searchParams.set(`plan`,`generic`),c.searchParams.set(`referrer`,`slicc`);let l=await t({authorizeUrl:c.toString(),redirectUriPattern:`http://127.0.0.1:56121/*`,onCapture:`close`});if(!l)throw new h(`xAI OAuth login was cancelled or timed out`,m.CALLBACK_TIMEOUT);let u=new URL(l),g=u.searchParams.get(`code`),_=u.searchParams.get(`state`);if(!g)throw new h(`xAI OAuth redirect did not include a code`,m.CODE_MISSING);if(_!==o)throw new h(`xAI OAuth state mismatch — possible CSRF, aborting`,m.STATE_MISMATCH);let v=await M(g,i);await e({providerId:y,accessToken:v.access_token,refreshToken:v.refresh_token,tokenExpiresAt:Date.now()+(v.expires_in??21600)*1e3,baseUrl:T,scopes:v.scope}),n()},onOAuthLogout:async()=>{await e({providerId:y,accessToken:``})},onSilentRenew:async()=>{let t=P();if(!t?.refreshToken)return null;let n=await N(t.refreshToken);return n?.access_token?(await e({providerId:y,accessToken:n.access_token,refreshToken:n.refresh_token??t.refreshToken,tokenExpiresAt:Date.now()+(n.expires_in??21600)*1e3,scopes:n.scope??t.scopes}),n.access_token):null}};function G(){r({api:D,stream:H,streamSimple:U})}export{m as XaiErrorCode,h as XaiOAuthError,W as config,G as register};
@@ -1 +1 @@
1
- import{a as e}from"./core-CbbeQz7g.js";import{a as t}from"./diagnostics-DN_idNHx.js";import{a as n}from"./compat-Dy2zIWAW.js";import{c as r,i,r as a,s as o}from"./legacy-api-aliases-DoI0tM7F.js";import{K as s,f as c}from"./account-store-B7laop91.js";import"./main-CotpV-j8.js";import{n as l,r as u}from"./bridge-token-required-DMk2va9k.js";import{n as d,r as f,t as p}from"./pkce-hGf_TEnP.js";import{XaiErrorCode as m,XaiOAuthError as h}from"./xai-grok-errors-bnlIBeu-.js";var g=`https://cli-chat-proxy.grok.com/v1/billing?format=credits`,_=8e3,v=65536,y=1e3;function b(e){return typeof e==`object`&&!!e}function x(e){if(!b(e))return null;let t=b(e.config)?e.config:e,n=t.creditUsagePercent;if(typeof n!=`number`||!Number.isFinite(n))return null;let r=Math.min(y,Math.max(0,n)),i=b(t.currentPeriod)?t.currentPeriod:{},a=i.type,o=typeof a==`string`?a.replace(`USAGE_PERIOD_TYPE_`,``).toLowerCase():``,s=i.end??t.billingPeriodEnd,c=typeof s==`string`&&Number.isFinite(Date.parse(s))?s:void 0;return{percent:r,status:`ok`,window:o&&o!==`unspecified`?o:`billing`,...c?{resetsAt:c}:{}}}async function S(e,t,n={}){let r=new AbortController,i=setTimeout(()=>r.abort(),n.timeoutMs??_);try{let n=await t(g,{headers:{Authorization:`Bearer ${e}`},signal:r.signal}),{status:i}=n;if(i===404||i===501)return null;if(!n.ok)throw Error(`xAI Grok usage: ${i===401||i===403?`re-login required`:`failed`} (${i})`);let a=await n.text();if(a.length>v)return null;try{return x(JSON.parse(a))}catch{return null}}finally{clearTimeout(i)}}var C=`xai-grok`,w=`https://auth.x.ai`,T=`${w}/oauth2/authorize`,E=`${w}/oauth2/token`,D=`b1a00492-073a-47ea-816f-4c329264a828`,O=`openid profile email offline_access grok-cli:access api:access`,k=`http://127.0.0.1:56121/callback`,A=`http://127.0.0.1:56121/*`,j=`https://api.x.ai/v1`,M=`grok-4.7`,N=`${C}-openai`;function P(e){if(e.some(e=>e.id===M))return e;let t=e.find(e=>e.id===`grok-4.6`)??e.find(e=>e.api===`openai-responses`)??e[0];return t?[{...t,id:M,name:`Grok 4.7`,api:`openai-responses`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.5,cacheWrite:0},contextWindow:5e5,maxTokens:5e5,thinkingLevelMap:{off:null,minimal:null,low:`low`,medium:`medium`,high:`high`,xhigh:`xhigh`,max:null}},...e]:e}function F(){return P(e(`xai`))}function I(e){return{id:e.id,name:e.name,api:`openai`,reasoning:e.reasoning,input:e.input,context_window:e.contextWindow,max_tokens:e.maxTokens,compat:e.compat,thinkingLevelMap:e.thinkingLevelMap,cost:e.cost}}function L(e){let t=F(),n=t.find(t=>t.id===e.id);if(!n&&(console.warn(`xAI model "${e.id}" is no longer in the pi-ai catalog; falling back to default "${M}"`),n=t.find(e=>e.id===M),!n))throw Error(`xAI default model "${M}" is not registered by pi-ai`);if(n.api!==`openai-responses`&&n.api!==`openai-completions`)throw Error(`Unsupported pi-ai API "${n.api}" for xAI model "${e.id}"`);return{...e,...n,baseUrl:j}}async function R(e,t){let n=new URLSearchParams({grant_type:`authorization_code`,code:e,redirect_uri:k,client_id:D,code_verifier:t}),r=await fetch(E,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:n});if(!r.ok)throw new h(`xAI token exchange failed: ${r.status} ${await r.text()}`,m.TOKEN_EXCHANGE_FAILED);let i=await r.json();if(!i.access_token)throw new h(`xAI token exchange did not return access_token.`,m.TOKEN_EXCHANGE_INVALID);return i}async function z(e){if(l())return null;try{let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e,client_id:D}),n=await fetch(E,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});if(!n.ok){let e=await n.text();return u(n.status,e)||console.error(`[xai-grok] refresh failed:`,n.status,e),null}return await n.json()}catch(e){return console.error(`[xai-grok] refresh error:`,e instanceof Error?e.message:String(e)),null}}function B(){return c().find(e=>e.providerId===C)}async function V(){let e=B();if(!e?.accessToken)throw new h("Not signed in to xAI Grok — run /login or `oauth-token xai-grok`",m.AUTH_MISSING,!0);let t=e.tokenExpiresAt??0;if(t&&Date.now()+6e4<t)return e.accessToken;if(e.refreshToken){let t=await z(e.refreshToken);if(t?.access_token)return await s({providerId:C,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(t.expires_in??21600)*1e3,scopes:t.scope??e.scopes}),t.access_token}return e.accessToken}async function H(){if(!B()?.accessToken)throw Error(`xAI Grok budget: not signed in`);return S(await V(),fetch)}function U(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:N,provider:C,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function W(e,t){return t?{...e??{},"x-grok-conv-id":t}:e}function G(e){console.error(`[xai-grok] Stream error:`,e instanceof Error?e.message:String(e))}async function K(e,t,n,r){try{let o=await V(),s=r.sessionId,c=L(t),l={...r,apiKey:o,headers:W(r.headers,s)},u=c.api===`openai-responses`?i(c,n,l):a(c,n,l);for await(let t of u)e.push(t);e.end()}catch(n){G(n),e.push(U(t,n)),e.end()}}async function q(e,t,n,i){try{let a=await V(),s=i?.sessionId,c=L(t),l={...i,apiKey:a,headers:W(i?.headers,s)},u=c.api===`openai-responses`?r(c,n,l):o(c,n,l);for await(let t of u)e.push(t);e.end()}catch(n){G(n),e.push(U(t,n)),e.end()}}var J=(e,n,r={})=>{let i=t();return K(i,e,n,r).catch(G),i},Y=(e,n,r)=>{let i=t();return q(i,e,n,r).catch(G),i},X={id:C,name:`xAI Grok (SuperGrok OAuth)`,description:`Grok via xAI OAuth — uses your SuperGrok subscription, no API key needed. Default model is Grok 4.7.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:M,oauthTokenDomains:[`api.x.ai`,`*.x.ai`,`auth.x.ai`,`accounts.x.ai`,`cli-chat-proxy.grok.com`],getModelIds:()=>F().map(I),getBudgetUsage:H,onOAuthLoginIntercepted:async(e,t,n)=>{let r=d(),i=await p(r),a=f(),o=f(),c=new URL(T);c.searchParams.set(`response_type`,`code`),c.searchParams.set(`client_id`,D),c.searchParams.set(`redirect_uri`,k),c.searchParams.set(`scope`,n?.scopes??O),c.searchParams.set(`code_challenge`,i),c.searchParams.set(`code_challenge_method`,`S256`),c.searchParams.set(`state`,a),c.searchParams.set(`nonce`,o),c.searchParams.set(`plan`,`generic`),c.searchParams.set(`referrer`,`slicc`);let l=await e({authorizeUrl:c.toString(),redirectUriPattern:A,onCapture:`close`});if(!l)throw new h(`xAI OAuth login was cancelled or timed out`,m.CALLBACK_TIMEOUT);let u=new URL(l),g=u.searchParams.get(`code`),_=u.searchParams.get(`state`);if(!g)throw new h(`xAI OAuth redirect did not include a code`,m.CODE_MISSING);if(_!==a)throw new h(`xAI OAuth state mismatch — possible CSRF, aborting`,m.STATE_MISMATCH);let v=await R(g,r);await s({providerId:C,accessToken:v.access_token,refreshToken:v.refresh_token,tokenExpiresAt:Date.now()+(v.expires_in??21600)*1e3,baseUrl:j,scopes:v.scope}),t()},onOAuthLogout:async()=>{await s({providerId:C,accessToken:``})},onSilentRenew:async()=>{let e=B();if(!e?.refreshToken)return null;let t=await z(e.refreshToken);return t?.access_token?(await s({providerId:C,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(t.expires_in??21600)*1e3,scopes:t.scope??e.scopes}),t.access_token):null}};function Z(){n({api:N,stream:J,streamSimple:Y})}export{m as XaiErrorCode,h as XaiOAuthError,X as config,Z as register};
1
+ import{a as e}from"./core-CbbeQz7g.js";import{a as t}from"./diagnostics-DN_idNHx.js";import{a as n}from"./compat-Dy2zIWAW.js";import{c as r,i,r as a,s as o}from"./legacy-api-aliases-DoI0tM7F.js";import{K as s,f as c}from"./account-store-ravOkuEh.js";import"./main-B0thDo_I.js";import{n as l,r as u}from"./bridge-token-required-DMk2va9k.js";import{n as d,r as f,t as p}from"./pkce-hGf_TEnP.js";import{XaiErrorCode as m,XaiOAuthError as h}from"./xai-grok-errors-bnlIBeu-.js";var g=`https://cli-chat-proxy.grok.com/v1/billing?format=credits`,_=8e3,v=65536,y=1e3;function b(e){return typeof e==`object`&&!!e}function x(e){if(!b(e))return null;let t=b(e.config)?e.config:e,n=t.creditUsagePercent;if(typeof n!=`number`||!Number.isFinite(n))return null;let r=Math.min(y,Math.max(0,n)),i=b(t.currentPeriod)?t.currentPeriod:{},a=i.type,o=typeof a==`string`?a.replace(`USAGE_PERIOD_TYPE_`,``).toLowerCase():``,s=i.end??t.billingPeriodEnd,c=typeof s==`string`&&Number.isFinite(Date.parse(s))?s:void 0;return{percent:r,status:`ok`,window:o&&o!==`unspecified`?o:`billing`,...c?{resetsAt:c}:{}}}async function S(e,t,n={}){let r=new AbortController,i=setTimeout(()=>r.abort(),n.timeoutMs??_);try{let n=await t(g,{headers:{Authorization:`Bearer ${e}`},signal:r.signal}),{status:i}=n;if(i===404||i===501)return null;if(!n.ok)throw Error(`xAI Grok usage: ${i===401||i===403?`re-login required`:`failed`} (${i})`);let a=await n.text();if(a.length>v)return null;try{return x(JSON.parse(a))}catch{return null}}finally{clearTimeout(i)}}var C=`xai-grok`,w=`https://auth.x.ai`,T=`${w}/oauth2/authorize`,E=`${w}/oauth2/token`,D=`b1a00492-073a-47ea-816f-4c329264a828`,O=`openid profile email offline_access grok-cli:access api:access`,k=`http://127.0.0.1:56121/callback`,A=`http://127.0.0.1:56121/*`,j=`https://api.x.ai/v1`,M=`grok-4.7`,N=`${C}-openai`;function P(e){if(e.some(e=>e.id===M))return e;let t=e.find(e=>e.id===`grok-4.6`)??e.find(e=>e.api===`openai-responses`)??e[0];return t?[{...t,id:M,name:`Grok 4.7`,api:`openai-responses`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.5,cacheWrite:0},contextWindow:5e5,maxTokens:5e5,thinkingLevelMap:{off:null,minimal:null,low:`low`,medium:`medium`,high:`high`,xhigh:`xhigh`,max:null}},...e]:e}function F(){return P(e(`xai`))}function I(e){return{id:e.id,name:e.name,api:`openai`,reasoning:e.reasoning,input:e.input,context_window:e.contextWindow,max_tokens:e.maxTokens,compat:e.compat,thinkingLevelMap:e.thinkingLevelMap,cost:e.cost}}function L(e){let t=F(),n=t.find(t=>t.id===e.id);if(!n&&(console.warn(`xAI model "${e.id}" is no longer in the pi-ai catalog; falling back to default "${M}"`),n=t.find(e=>e.id===M),!n))throw Error(`xAI default model "${M}" is not registered by pi-ai`);if(n.api!==`openai-responses`&&n.api!==`openai-completions`)throw Error(`Unsupported pi-ai API "${n.api}" for xAI model "${e.id}"`);return{...e,...n,baseUrl:j}}async function R(e,t){let n=new URLSearchParams({grant_type:`authorization_code`,code:e,redirect_uri:k,client_id:D,code_verifier:t}),r=await fetch(E,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:n});if(!r.ok)throw new h(`xAI token exchange failed: ${r.status} ${await r.text()}`,m.TOKEN_EXCHANGE_FAILED);let i=await r.json();if(!i.access_token)throw new h(`xAI token exchange did not return access_token.`,m.TOKEN_EXCHANGE_INVALID);return i}async function z(e){if(l())return null;try{let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e,client_id:D}),n=await fetch(E,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});if(!n.ok){let e=await n.text();return u(n.status,e)||console.error(`[xai-grok] refresh failed:`,n.status,e),null}return await n.json()}catch(e){return console.error(`[xai-grok] refresh error:`,e instanceof Error?e.message:String(e)),null}}function B(){return c().find(e=>e.providerId===C)}async function V(){let e=B();if(!e?.accessToken)throw new h("Not signed in to xAI Grok — run /login or `oauth-token xai-grok`",m.AUTH_MISSING,!0);let t=e.tokenExpiresAt??0;if(t&&Date.now()+6e4<t)return e.accessToken;if(e.refreshToken){let t=await z(e.refreshToken);if(t?.access_token)return await s({providerId:C,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(t.expires_in??21600)*1e3,scopes:t.scope??e.scopes}),t.access_token}return e.accessToken}async function H(){if(!B()?.accessToken)throw Error(`xAI Grok budget: not signed in`);return S(await V(),fetch)}function U(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:N,provider:C,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function W(e,t){return t?{...e??{},"x-grok-conv-id":t}:e}function G(e){console.error(`[xai-grok] Stream error:`,e instanceof Error?e.message:String(e))}async function K(e,t,n,r){try{let o=await V(),s=r.sessionId,c=L(t),l={...r,apiKey:o,headers:W(r.headers,s)},u=c.api===`openai-responses`?i(c,n,l):a(c,n,l);for await(let t of u)e.push(t);e.end()}catch(n){G(n),e.push(U(t,n)),e.end()}}async function q(e,t,n,i){try{let a=await V(),s=i?.sessionId,c=L(t),l={...i,apiKey:a,headers:W(i?.headers,s)},u=c.api===`openai-responses`?r(c,n,l):o(c,n,l);for await(let t of u)e.push(t);e.end()}catch(n){G(n),e.push(U(t,n)),e.end()}}var J=(e,n,r={})=>{let i=t();return K(i,e,n,r).catch(G),i},Y=(e,n,r)=>{let i=t();return q(i,e,n,r).catch(G),i},X={id:C,name:`xAI Grok (SuperGrok OAuth)`,description:`Grok via xAI OAuth — uses your SuperGrok subscription, no API key needed. Default model is Grok 4.7.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:M,oauthTokenDomains:[`api.x.ai`,`*.x.ai`,`auth.x.ai`,`accounts.x.ai`,`cli-chat-proxy.grok.com`],getModelIds:()=>F().map(I),getBudgetUsage:H,onOAuthLoginIntercepted:async(e,t,n)=>{let r=d(),i=await p(r),a=f(),o=f(),c=new URL(T);c.searchParams.set(`response_type`,`code`),c.searchParams.set(`client_id`,D),c.searchParams.set(`redirect_uri`,k),c.searchParams.set(`scope`,n?.scopes??O),c.searchParams.set(`code_challenge`,i),c.searchParams.set(`code_challenge_method`,`S256`),c.searchParams.set(`state`,a),c.searchParams.set(`nonce`,o),c.searchParams.set(`plan`,`generic`),c.searchParams.set(`referrer`,`slicc`);let l=await e({authorizeUrl:c.toString(),redirectUriPattern:A,onCapture:`close`});if(!l)throw new h(`xAI OAuth login was cancelled or timed out`,m.CALLBACK_TIMEOUT);let u=new URL(l),g=u.searchParams.get(`code`),_=u.searchParams.get(`state`);if(!g)throw new h(`xAI OAuth redirect did not include a code`,m.CODE_MISSING);if(_!==a)throw new h(`xAI OAuth state mismatch — possible CSRF, aborting`,m.STATE_MISMATCH);let v=await R(g,r);await s({providerId:C,accessToken:v.access_token,refreshToken:v.refresh_token,tokenExpiresAt:Date.now()+(v.expires_in??21600)*1e3,baseUrl:j,scopes:v.scope}),t()},onOAuthLogout:async()=>{await s({providerId:C,accessToken:``})},onSilentRenew:async()=>{let e=B();if(!e?.refreshToken)return null;let t=await z(e.refreshToken);return t?.access_token?(await s({providerId:C,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(t.expires_in??21600)*1e3,scopes:t.scope??e.scopes}),t.access_token):null}};function Z(){n({api:N,stream:J,streamSimple:Y})}export{m as XaiErrorCode,h as XaiOAuthError,X as config,Z as register};
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>slicc</title>
7
7
  <link rel="icon" type="image/png" href="/logos/sliccy-color-1scoops-32x32.png" />
8
- <script type="module" crossorigin src="/assets/main-CotpV-j8.js"></script>
8
+ <script type="module" crossorigin src="/assets/main-B0thDo_I.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-Dd_uD5pT.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/modulepreload-polyfill-P2Xu9kJm.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/diagnostics-DN_idNHx.js">
@@ -31,12 +31,12 @@
31
31
  <link rel="modulepreload" crossorigin href="/assets/tool-ui-eSQ1g2I1.js">
32
32
  <link rel="modulepreload" crossorigin href="/assets/core-CbbeQz7g.js">
33
33
  <link rel="modulepreload" crossorigin href="/assets/bridge-protocol-C52CnDIj.js">
34
- <link rel="modulepreload" crossorigin href="/assets/providers-DUDu6Lmu.js">
34
+ <link rel="modulepreload" crossorigin href="/assets/providers-DCmI83QO.js">
35
35
  <link rel="modulepreload" crossorigin href="/assets/panel-rpc-D3EPRnmw.js">
36
36
  <link rel="modulepreload" crossorigin href="/assets/bedrock-camp-compat-C64_Hwco.js">
37
37
  <link rel="modulepreload" crossorigin href="/assets/bedrock-camp-extra-models-Dg0hblqu.js">
38
38
  <link rel="modulepreload" crossorigin href="/assets/claude-model-version-DZmbk9E2.js">
39
- <link rel="modulepreload" crossorigin href="/assets/account-store-B7laop91.js">
39
+ <link rel="modulepreload" crossorigin href="/assets/account-store-ravOkuEh.js">
40
40
  <link rel="modulepreload" crossorigin href="/assets/telemetry-B0sKnLBU.js">
41
41
  <link rel="modulepreload" crossorigin href="/assets/tray-follower-status-BAjnN7Ar.js">
42
42
  <link rel="modulepreload" crossorigin href="/assets/clipboard-eqmn97SP.js">
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>slicc</title>
7
7
  <link rel="icon" type="image/png" href="/logos/sliccy-color-1scoops-32x32.png" />
8
- <script type="module" crossorigin src="/assets/main-CotpV-j8.js"></script>
8
+ <script type="module" crossorigin src="/assets/main-B0thDo_I.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-Dd_uD5pT.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/modulepreload-polyfill-P2Xu9kJm.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/diagnostics-DN_idNHx.js">
@@ -31,12 +31,12 @@
31
31
  <link rel="modulepreload" crossorigin href="/assets/tool-ui-eSQ1g2I1.js">
32
32
  <link rel="modulepreload" crossorigin href="/assets/core-CbbeQz7g.js">
33
33
  <link rel="modulepreload" crossorigin href="/assets/bridge-protocol-C52CnDIj.js">
34
- <link rel="modulepreload" crossorigin href="/assets/providers-DUDu6Lmu.js">
34
+ <link rel="modulepreload" crossorigin href="/assets/providers-DCmI83QO.js">
35
35
  <link rel="modulepreload" crossorigin href="/assets/panel-rpc-D3EPRnmw.js">
36
36
  <link rel="modulepreload" crossorigin href="/assets/bedrock-camp-compat-C64_Hwco.js">
37
37
  <link rel="modulepreload" crossorigin href="/assets/bedrock-camp-extra-models-Dg0hblqu.js">
38
38
  <link rel="modulepreload" crossorigin href="/assets/claude-model-version-DZmbk9E2.js">
39
- <link rel="modulepreload" crossorigin href="/assets/account-store-B7laop91.js">
39
+ <link rel="modulepreload" crossorigin href="/assets/account-store-ravOkuEh.js">
40
40
  <link rel="modulepreload" crossorigin href="/assets/telemetry-B0sKnLBU.js">
41
41
  <link rel="modulepreload" crossorigin href="/assets/tray-follower-status-BAjnN7Ar.js">
42
42
  <link rel="modulepreload" crossorigin href="/assets/clipboard-eqmn97SP.js">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sliccy",
3
- "version": "6.218.1",
3
+ "version": "6.218.2",
4
4
  "description": "Browser-based coding agent with thin CLI server",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -1 +0,0 @@
1
- import{t as e}from"./store-nocai8Zr.js";import"./provider-DJ7J7TTG.js";export{e as readMcpAuthEntries};
@@ -1 +0,0 @@
1
- import{t as e}from"./provider-cHT5-ref.js";export{e as readMcpAuthEntries};
@@ -1,17 +0,0 @@
1
- import{t as e}from"./logger-LESFN7Hj.js";import{i as t,n,r,t as i}from"./proxied-fetch-CoZ8jHud.js";import{r as a}from"./proxy-error-BVzVNPvv.js";import{a as o,c as s,d as c,f as l,g as u,l as d,m as f,n as p,o as m,p as h,s as g,t as ee,u as te}from"./stdio-tty-DNcYk275.js";import{r as ne}from"./global-prefix-DqCuANmV.js";import{r as re}from"./wasm-programs-CsoF9Lrt.js";import{t as ie}from"./wasm-compiler-Ct7QZURL.js";import{S as ae,w as oe,x as se}from"./sync-exec-dispatch-DvIKQEFv.js";import{t as ce}from"./sync-sab-wire-D_d0fd3b.js";import{t as le}from"./sync-sab-responder-CKgRMoHC.js";import{i as ue}from"./just-bash-compat-B-SPHuh_.js";const de=String.raw`printf '\033]7777;%s\007' "$?"`,fe=[`if [ -f ~/.bashrc ]; then . ~/.bashrc; fi`,`exec 98<&-`,``].join(`
2
- `);var _=class extends Error{status;constructor(e,t){super(t),this.status=e}};const pe=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,me={100:`Continue`,200:`OK`,400:`Bad Request`,403:`Forbidden`,408:`Request Timeout`,411:`Length Required`,413:`Content Too Large`,417:`Expectation Failed`,421:`Misdirected Request`,431:`Request Header Fields Too Large`,501:`Not Implemented`,502:`Bad Gateway`,503:`Service Unavailable`,505:`HTTP Version Not Supported`};var he=class{source;buf=new Uint8Array;eof=!1;constructor(e){this.source=e}get buffered(){return this.buf.length}async fill(e){if(this.eof)return!1;let t=await this.source.read(65536,e);if(t.length===0)return this.eof=!0,!1;let n=new Uint8Array(this.buf.length+t.length);return n.set(this.buf),n.set(t,this.buf.length),this.buf=n,!0}take(e){let t=this.buf.slice(0,e);return this.buf=this.buf.subarray(e),t}async some(e,t){if(this.buf.length>0)return this.take(Math.min(e,this.buf.length));if(this.eof)return new Uint8Array;let n=await this.source.read(e,t);return n.length===0&&(this.eof=!0),n}async head(e,t){let n=0;for(;;){let r=ge(this.buf,n);if(r>0){if(r>e)throw new _(431,`request head too large`);return this.take(r)}if(this.buf.length>e)throw new _(431,`request head too large`);if(n=Math.max(0,this.buf.length-3),!await this.fill(t)){if(this.buf.length===0)return null;throw new _(400,`connection closed inside a request head`)}}}async line(e,t){let n=0;for(;;){let r=this.buf.indexOf(10,n);if(r>=0){let e=this.take(r+1);return _e(e.subarray(0,e[r-1]===13?r-1:r))}if(this.buf.length>e)throw new _(400,`line too long`);if(n=this.buf.length,!await this.fill(t))throw new _(400,`connection closed inside a body`)}}async exactly(e,t){for(;this.buf.length<e;)if(!await this.fill(t))throw new _(400,`connection closed inside a body`);return this.take(e)}};function ge(e,t){for(let n=t;n<e.length;n++)if(e[n]===10){if(e[n+1]===10)return n+2;if(e[n+1]===13&&e[n+2]===10)return n+3}return 0}function _e(e){let t=``;for(let n=0;n<e.length;n+=32768)t+=String.fromCharCode(...e.subarray(n,n+32768));return t}function v(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t}function ve(e){let t=_e(e).split(/\r?\n/);for(;t.length>0&&t[0]===``;)t.shift();let n=/^([!#$%&'*+\-.^_`|~0-9A-Za-z]+) (\S+) HTTP\/(\d)\.(\d)$/.exec(t.shift()??``);if(!n)throw new _(400,`malformed request line`);if(n[3]!==`1`)throw new _(505,`HTTP/${n[3]}.${n[4]} is not supported`);return{method:n[1],target:n[2],minor:Number(n[4]),headers:ye(t)}}function ye(e){let t=[];for(let n of e){if(n===``)continue;if(n.startsWith(` `)||n.startsWith(` `))throw new _(400,`obsolete line folding`);let e=n.indexOf(`:`),r=e>0?n.slice(0,e):``;if(!pe.test(r))throw new _(400,`malformed header field`);t.push([r,n.slice(e+1).trim()])}return t}function y(e,t){let n=t.toLowerCase();return e.filter(([e])=>e.toLowerCase()===n).map(([,e])=>e)}function b(e,t){return y(e,t).flatMap(e=>e.split(`,`)).map(e=>e.trim().toLowerCase()).filter(e=>e!==``)}function be(e){let t=b(e,`transfer-encoding`),n=y(e,`content-length`);if(t.length>0){if(n.length>0)throw new _(400,`both Transfer-Encoding and Content-Length`);if(t.length!==1||t[0]!==`chunked`)throw new _(501,`unsupported Transfer-Encoding: ${t.join(`, `)}`);return{kind:`chunked`}}if(n.length===0)return{kind:`none`};let r=new Set(n.flatMap(e=>e.split(`,`)).map(e=>e.trim())),[i]=r;if(r.size!==1||!/^\d{1,15}$/.test(i))throw new _(400,`invalid Content-Length`);let a=Number(i);return a===0?{kind:`none`}:{kind:`length`,length:a}}const x=65536;async function xe(e,t,n,r){if(t.kind===`none`)return;if(t.kind===`length`){if(t.length>n)throw new _(413,`request body over ${n} bytes`);return e.exactly(t.length,r)}let i=[],a=0;for(;;){let t=await e.line(4096,r),o=/^([0-9A-Fa-f]{1,12})[ \t]*(;.*)?$/.exec(t);if(!o)throw new _(400,`malformed chunk size`);let s=Number.parseInt(o[1],16);if(s===0)break;if(a+=s,a>n)throw new _(413,`request body over ${n} bytes`);if(i.push(await e.exactly(s,r)),await e.line(2,r)!==``)throw new _(400,`malformed chunk`)}let o=0;for(let t=await e.line(x,r);t!==``;){if(o+=t.length,o>x)throw new _(431,`trailers too large`);t=await e.line(x,r)}return Se(i,a)}function Se(e,t=e.reduce((e,t)=>e+t.length,0)){let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}function Ce(e){return!/[\r\n\0]/.test(e)}function we(e,t,n){let r=`HTTP/1.1 ${e} ${/^[\t\x20-\x7e\x80-\xff]*$/.test(t)?t:``}\r\n`;for(let[e,t]of n)pe.test(e)&&Ce(t)&&(r+=`${e}: ${t}\r\n`);return v(`${r}\r\n`)}function Te(e){let t=v(`${e.length.toString(16)}\r\n`),n=new Uint8Array(t.length+e.length+2);return n.set(t),n.set(e,t.length),n[n.length-2]=13,n[n.length-1]=10,n}const Ee=v(`0\r
3
- \r
4
- `),De=e(`realm-proxy`),Oe=3128,ke={maxConnections:64,maxHead:65536,idleMs:12e4,bodyBudget:134217728},Ae=new Set([`connection`,`keep-alive`,`proxy-connection`,`proxy-authenticate`,`proxy-authorization`,`te`,`trailer`,`transfer-encoding`,`upgrade`]),je=new Set([`host`,`content-length`,`expect`]);var Me=class{free;waiters=[];constructor(e){this.free=e}async acquire(e,t){for(;this.free<e;)t.throwIfAborted(),await new Promise(e=>{let n=()=>{t.removeEventListener(`abort`,n),e()};this.waiters.push(n),t.addEventListener(`abort`,n,{once:!0})});this.free-=e}release(e){this.free+=e;let t=this.waiters;this.waiters=[];for(let e of t)e()}};function Ne(e){let t=e.includes(`:`)&&!e.startsWith(`[`)?`[${e}]`:e;try{return new URL(`http://${t}/`).hostname}catch{return}}function Pe(e,t){return e===127||e===0||e===169&&t===254}function Fe(e){let[t,n,r]=e.split(`::`);if(r!==void 0)return;let i=e=>e?e.split(`:`).map(e=>Number.parseInt(e,16)):[],a=i(t),o=i(n),s=n===void 0?a:[...a,...Array(8-a.length-o.length).fill(0),...o];return s.length===8&&s.every(e=>e>=0&&e<=65535)?s:void 0}function Ie(e){let t=Fe(e);return!t||(t[0]&65472)==65152?!0:t.slice(0,5).every(e=>e===0)?t[5]===65535||t[5]===0&&t[6]!==0?Pe(t[6]>>8,t[6]&255):t[5]===0&&t[6]===0:!1}function Le(e){let t=Ne(e);if(t===void 0)return!1;let n=t.replace(/\.+$/,``);if(n===`localhost`||n.endsWith(`.localhost`))return!0;if(n.startsWith(`[`))return Ie(n.slice(1,-1));let r=/^(\d+)\.(\d+)\.\d+\.\d+$/.exec(n);return r?Pe(Number(r[1]),Number(r[2])):!1}function Re(e){return new Set([...Ae,...b(e,`connection`)])}function ze(e){let t=Re(e);return e.filter(([e])=>{let n=e.toLowerCase();return!t.has(n)&&!je.has(n)})}function Be(e,t){let n=Re(e);return t.encodedBodies||n.add(`content-encoding`),t.encodedBodies&&t.bodiless||n.add(`content-length`),e.filter(([e])=>!n.has(e.toLowerCase()))}function Ve(e){let t=b(e.headers,`connection`);return t.includes(`close`)?!1:e.minor>=1||t.includes(`keep-alive`)}function He(e,t){let n=new URL(t),r;try{r=new URL(e.target,e.target.startsWith(`/`)?n:void 0)}catch{throw new _(400,`malformed request target`)}let i=y(e.headers,`host`).every(e=>URL.canParse(`https://${e}`)&&new URL(`https://${e}`).host===n.host);if(r.origin!==n.origin||!i)throw new _(421,`this tunnel is for ${n.host}`);return r.href}function Ue(e){if(e.target.startsWith(`/`))throw new _(400,`this is a proxy: send the absolute URL (GET http://host/path)`);let t;try{t=new URL(e.target)}catch{throw new _(400,`malformed request target`)}if(t.protocol!==`http:`&&t.protocol!==`https:`)throw new _(400,`unsupported scheme ${t.protocol}`);if(Le(t.hostname))throw new _(403,`${t.hostname} is the realm's own loopback, which the proxy does not reach: list it in no_proxy`);return t.href}function We(e){let t=/^([A-Za-z0-9.-]+|\[[0-9A-Fa-f:.]+\]):(\d{1,5})$/.exec(e.target),n=Number(t?.[2]);if(!t||n<1||n>65535)throw new _(400,`CONNECT needs host:port`);let r=Ne(t[1]);if(r===void 0)throw new _(400,`CONNECT needs host:port`);if(Le(r))throw new _(403,`${r} is the realm's own loopback, which the proxy does not reach: list it in no_proxy`);return{host:r,port:n}}async function Ge(e,t,n){for(;!n.aborted&&!t.signal.aborted;){if(e.poll().hangup){t.abort(new m(`EPIPE`));return}try{await e.changed(n)}catch{return}}}function Ke(e,t){return new Promise((n,r)=>{let i=()=>{r(t.reason??new m(`EINTR`)),e.then(e=>e.cancel()).catch(()=>void 0)};if(t.aborted)return i();t.addEventListener(`abort`,i,{once:!0}),e.then(n,r).finally(()=>t.removeEventListener(`abort`,i))})}function qe(e,t){let n=v(`slicc realm proxy: ${t}\n`);return{status:e,statusText:me[e]??``,headers:[[`Content-Type`,`text/plain; charset=utf-8`]],body:(async function*(){yield n})(),cancel:async()=>void 0}}function Je(e,t,n){return{read:(r,i)=>e.read(r,AbortSignal.any([n,AbortSignal.timeout(t),...i?[i]:[]]))}}var Ye=class{options;listener;stop=new AbortController;limits;slots;bodies;connections=new Set;closed;port;constructor(e){this.options=e,this.limits={...ke,...e.limits},this.slots=new Me(this.limits.maxConnections),this.bodies=new Me(this.limits.bodyBudget),this.listener=e.net.listen({family:`inet`,host:e.host??`127.0.0.1`,port:e.port??3128}),this.port=this.listener.local?.family===`inet`?this.listener.local.port:0,this.closed=this.acceptLoop()}get stopped(){return this.stop.signal.aborted}close(){if(!this.stop.signal.aborted){this.stop.abort(),this.listener.close();for(let e of this.connections)e.close()}}async acceptLoop(){let e=new Set;try{for(;;){await this.slots.acquire(1,this.stop.signal);let t;try{t=await this.listener.accept(this.stop.signal)}catch{this.slots.release(1);break}let n=this.serve(t).finally(()=>{this.slots.release(1),e.delete(n)});e.add(n)}}catch{}await Promise.allSettled([...e])}async serve(e){this.connections.add(e);let t=new he(Je(e,this.limits.idleMs,this.stop.signal));try{await this.requests({sink:e,incoming:t,conn:e,socket:e})}finally{this.connections.delete(e),e.close()}}async requests(e){try{for(;;){let t=await e.incoming.head(this.limits.maxHead);if(!t||!await this.exchange(e,t))break}}catch(t){t instanceof _&&await this.refuse(e.sink,t)}}async refuse(e,t){try{await this.relay(e,`GET`,1,qe(t.status,t.message),!1)}catch{}}async exchange(e,t){let{sink:n,incoming:r}=e,i=ve(t);if(i.method===`CONNECT`){if(!e.conn)throw new _(400,`CONNECT inside a tunnel`);return await this.connect(e.conn,r,i),!1}let a=e.origin?He(i,e.origin):Ue(i),o=Ve(i),s=be(i.headers),c=s.kind===`length`?s.length:s.kind===`chunked`?this.cap():0;if(c>this.cap())throw new _(413,`request body over ${this.cap()} bytes`);await this.expectContinue(n,i,s.kind!==`none`),await this.bodies.acquire(c,this.stop.signal);let l,u=new AbortController,d=()=>u.abort();this.stop.signal.addEventListener(`abort`,d,{once:!0});try{try{let t=await xe(r,s,this.cap()),n=new AbortController;Ge(e.socket,u,n.signal);try{l=await this.upstream(i,a,t,u.signal)}finally{n.abort()}}finally{this.bodies.release(c)}return await this.relay(n,i.method,i.minor,l,o)}finally{this.stop.signal.removeEventListener(`abort`,d),u.abort()}}cap(){return Math.min(this.options.transport.traits.maxRequestBody,this.limits.bodyBudget)}async expectContinue(e,t,n){let r=b(t.headers,`expect`);if(r.length!==0){if(r.length!==1||r[0]!==`100-continue`)throw new _(417,`unsupported expectation: ${r.join(`, `)}`);n&&t.minor>=1&&await e.write(v(`HTTP/1.1 100 Continue\r
5
- \r
6
- `),this.stop.signal)}}async upstream(e,t,n,r){try{return await Ke(this.options.transport.fetch({url:t,method:e.method.toUpperCase(),headers:ze(e.headers),body:e.method===`GET`||e.method===`HEAD`?void 0:n,signal:r}),r)}catch(e){if(r.aborted)throw e;let t=e instanceof Error?e.message:String(e),n=e?.status;return qe(typeof n==`number`&&n>=400&&n<=599?n:502,t||`upstream request failed`)}}async relay(e,t,n,r,i){let a=r.status,o=t===`HEAD`||a===204||a===304||a<200,s=Be(r.headers,{encodedBodies:this.options.transport.traits.encodedBodies,bodiless:o}),c=!o&&n>=1,l=i&&(o||c);s.push([`Connection`,l?`keep-alive`:`close`]),c&&s.push([`Transfer-Encoding`,`chunked`]);let u=this.stop.signal;if(await e.write(we(a,r.statusText||me[a]||``,s),u),o)return await r.cancel(),l;try{for await(let t of r.body)t.length>0&&await e.write(c?Te(t):t,u)}catch{return await r.cancel().catch(()=>void 0),!1}return c&&await e.write(Ee,u),l}async connect(e,t,n){let r=We(n),i=this.options.tunnel;if(!i)throw new _(501,`CONNECT ${r.host}:${r.port}: no tunnels through this proxy`);await e.write(v(`HTTP/1.1 200 Connection Established\r
7
- \r
8
- `),this.stop.signal);try{await i(e,t,r,this.stop.signal,(t,n,r)=>this.requests({sink:n,incoming:new he(t),origin:r,socket:e}))}catch(e){e instanceof m||De.warn(`tunnel failed`,{host:r.host,error:String(e)})}}};function Xe(){return{buffered:n(),streaming:r()}}function Ze(e){let t={};for(let[n,r]of e){let e=n.toLowerCase(),i=t[e];t[e]=i===void 0?r:`${i}${e===`cookie`?`; `:`, `}${r}`}return t}function Qe(e){return e.startsWith(`x-proxy-`)||e.startsWith(`access-control-`)}function $e(e){let t=[];for(let[n,r]of Object.entries(e)){let e=n.toLowerCase();if(!Qe(e)){if(e===`set-cookie`)for(let e of et(r))t.push([n,e]);else t.push([n,r])}}return t}function et(e){if(e.startsWith(`[`))try{let t=JSON.parse(e);if(Array.isArray(t)&&t.every(e=>typeof e==`string`))return t}catch{}return[e]}async function*tt(e){e.byteLength>0&&(yield e)}function nt(e){if(typeof e!=`string`)return e;let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t}function rt(e=Xe()){return{traits:{manualRedirects:!1,encodedBodies:!1,maxRequestBody:i},async fetch(t){let n=Ze(t.headers);if(t.body&&t.body.byteLength>0){let r=await e.buffered(t.url,{method:t.method,headers:n,body:t.body,signal:t.signal});return{status:r.status,statusText:r.statusText,headers:$e(r.headers),body:tt(nt(r.body)),cancel:async()=>void 0}}let r=await e.streaming(t.url,{method:t.method,headers:n,signal:t.signal});return{status:r.status,statusText:r.statusText,headers:$e(r.headers),body:r.body,cancel:()=>r.cancel()}}}}function it(e){if(!e)return{body:(async function*(){})(),cancel:async()=>void 0};let t=e.getReader(),n=!1;async function*r(){try{for(;;){let e=await t.read();if(e.done)break;yield e.value}n=!0}finally{n||await t.cancel().catch(()=>void 0)}}return{body:r(),cancel:async()=>{n||await t.cancel().catch(()=>void 0),n=!0}}}function at(e,t){return{traits:{manualRedirects:!0,encodedBodies:!0,maxRequestBody:t.maxRequestBodyBytes},async fetch(t){let n=await e(t.url,{method:t.method,headers:t.headers.map(([e,t])=>[e,t]),...t.body&&t.body.byteLength>0?{body:t.body}:{},signal:t.signal});return{status:n.status,statusText:n.statusText,headers:n.headers,...it(n.body)}}}}function ot(e={}){let n,i=()=>(n??=(e.fallback??(()=>rt()))(),n),o,s=Promise.resolve().then(()=>(e.capabilities??t)()).then(t=>t.supported?at((e.raw??(()=>r({mode:`raw`})))(),t):i(),()=>i()).then(e=>(o??=e,o));return{get traits(){return(o??i()).traits},async fetch(e){let t=o??await s;if(t===n)return t.fetch(e);try{return await t.fetch(e)}catch(t){if(!(t instanceof a)||t.code!==`unsupported`)throw t;return o=i(),o.fetch(e)}}}}function S(e){let t=new Uint8Array(e.reduce((e,t)=>e+t.length,0)),n=0;for(let r of e)t.set(r,n),n+=r.length;return t}function st(e){if(e<128)return Uint8Array.of(e);let t=[];for(let n=e;n>0;n=Math.floor(n/256))t.unshift(n&255);return Uint8Array.of(128|t.length,...t)}function C(e,...t){let n=S(t);return S([Uint8Array.of(e),st(n.length),n])}const w=(...e)=>C(48,...e),ct=(...e)=>C(49,...e),T=e=>C(4,e),E=(e,t=0)=>C(3,Uint8Array.of(t),e),lt=C(1,Uint8Array.of(255));function D(e){let t=0;for(;t<e.length-1&&e[t]===0;)t++;let n=e.subarray(t);return C(2,n[0]&128?S([Uint8Array.of(0),n]):n)}function O(e){let[t,n,...r]=e.split(`.`).map(Number),i=[40*t+n];for(let e of r){let t=[];for(let n=e;t.unshift(n&127),!(n<128);n=Math.floor(n/128));i.push(...t.map((e,n)=>n<t.length-1?e|128:e))}return C(6,Uint8Array.from(i))}const ut=e=>C(12,new TextEncoder().encode(e)),k=e=>Uint8Array.from(e,e=>e.charCodeAt(0)&127);function dt(e){let t=e.toISOString().replace(/[-:T]/g,``).slice(0,14);return e.getUTCFullYear()<2050?C(23,k(`${t.slice(2)}Z`)):C(24,k(`${t}Z`))}const ft=w(O(`1.2.840.10045.4.3.2`));function pt(e){let t=[];return e.organization&&t.push(ct(w(O(`2.5.4.10`),ut(e.organization)))),t.push(ct(w(O(`2.5.4.3`),ut(e.commonName)))),w(...t)}function A(e,t,n){return t?w(O(e),lt,T(n)):w(O(e),T(n))}function mt(e){let t=[],[,n,r]=j(e,0);for(let i=n;i<r;){let[,,n]=j(e,i);t.push(e.subarray(i,n)),i=n}return t}function j(e,t){let n=e[t],r=e[t+1],i=t+2;if(r&128){let t=r&127;r=0;for(let n=0;n<t;n++)r=r*256+e[i+n];i+=t}if(i+r>e.length)throw Error(`truncated DER`);return[n,i,i+r]}function ht(e){let[,t,n]=j(e,0);return e.subarray(t,n)}function gt(e){let t=mt(e)[1];return ht(t).subarray(1)}async function _t(e){return new Uint8Array(await crypto.subtle.digest(`SHA-1`,gt(e)))}function vt(e){let t=e.length/2;return w(D(e.subarray(0,t)),D(e.subarray(t)))}function yt(){let e=crypto.getRandomValues(new Uint8Array(16));return e[0]=e[0]&127|1,e}function bt(e){let t=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(e);if(!t)return;let n=t.slice(1).map(Number);return n.every(e=>e<=255)?Uint8Array.from(n):void 0}function M(e){if(!e.includes(`:`)||!/^[0-9A-Fa-f:.]+$/.test(e))return;let t=/(\d{1,3}(?:\.\d{1,3}){3})$/.exec(e),n=e,r=[];if(t){let i=bt(t[1]);if(!i)return;r.push(i[0]<<8|i[1],i[2]<<8|i[3]),n=e.slice(0,-t[1].length).replace(/:$/,e.endsWith(`::${t[1]}`)?`:`:``)}let i=n.split(`::`);if(i.length>2)return;let a=e=>e===``?[]:e.split(`:`),o=a(i[0]),s=i.length===2?a(i[1]):[];if(![...o,...s].every(e=>/^[0-9A-Fa-f]{1,4}$/.test(e)))return;let c=8-[...o,...s].map(e=>Number.parseInt(e,16)).length-r.length;if(i.length===2?c<1:c!==0)return;let l=[...o.map(e=>Number.parseInt(e,16)),...Array(i.length===2?c:0).fill(0),...s.map(e=>Number.parseInt(e,16)),...r];return Uint8Array.from(l.flatMap(e=>[e>>8,e&255]))}async function xt(e){let t=[A(`2.5.29.14`,!1,T(await _t(e.spki)))];if(e.kind.ca)t.push(A(`2.5.29.19`,!0,w(lt,D(Uint8Array.of(0))))),t.push(A(`2.5.29.15`,!0,E(Uint8Array.of(134),1)));else{t.push(A(`2.5.29.35`,!1,w(C(128,await _t(e.issuerSpki))))),t.push(A(`2.5.29.19`,!0,w())),t.push(A(`2.5.29.15`,!0,E(Uint8Array.of(128),7))),t.push(A(`2.5.29.37`,!1,w(O(`1.3.6.1.5.5.7.3.1`))));let n=bt(e.kind.host)??M(e.kind.host),r=n?C(135,n):C(130,k(e.kind.host));t.push(A(`2.5.29.17`,!1,w(r)))}return C(163,w(...t))}async function N(e){let t=w(C(160,D(Uint8Array.of(2))),D(e.serial),ft,pt(e.issuer),w(dt(e.notBefore),dt(e.notAfter)),pt(e.subject),e.spki,await xt(e)),n=vt(await e.sign(t));return w(t,ft,E(n))}function St(e){let t=``;for(let n=0;n<e.length;n+=32768)t+=String.fromCharCode(...e.subarray(n,n+32768));return`-----BEGIN CERTIFICATE-----\n${(btoa(t).match(/.{1,64}/g)??[]).join(`
9
- `)}\n-----END CERTIFICATE-----\n`}const Ct={name:`ECDSA`,namedCurve:`P-256`},wt={name:`ECDSA`,hash:`SHA-256`};function Tt(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}function Et(e=`slicc-realm-ca`){let t,n=()=>(t??=new Promise((t,n)=>{let r=indexedDB.open(e,1);r.onupgradeneeded=()=>r.result.createObjectStore(`ca`),r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)}),t.catch(()=>{t=void 0}),t);return{async get(e){return await Tt((await n()).transaction(`ca`).objectStore(`ca`).get(e))},async put(e,t){let r=(await n()).transaction(`ca`,`readwrite`);r.objectStore(`ca`).put(t,e),await new Promise((e,t)=>{r.oncomplete=()=>e(),r.onerror=()=>t(r.error)})}}}var Dt=class extends Error{};function Ot(e){return M(e)?!0:e.length===0||e.length>253?!1:e.split(`.`).every(e=>/^(?!-)[a-z0-9-]{1,63}(?<!-)$/i.test(e))}var kt=class e{record;constructor(e){this.record=e}static async open(t,n,r=Date.now()){let i=await n.get(t).catch(()=>void 0);if(i&&i.notAfter-r>2592e6)return new e(i);let a=await e.create(t,r);return await n.put(t,a),new e(a)}static async create(e,t){let n=await crypto.subtle.generateKey(Ct,!1,[`sign`,`verify`]),r=new Uint8Array(await crypto.subtle.exportKey(`spki`,n.publicKey)),i={organization:`SLICC`,commonName:`SLICC realm CA ${e} ${Array.from(crypto.getRandomValues(new Uint8Array(4)),e=>e.toString(16).padStart(2,`0`)).join(``)}`},a=t+31536e7,o=await N({serial:yt(),issuer:i,subject:i,notBefore:new Date(t-864e5),notAfter:new Date(a),spki:r,issuerSpki:r,kind:{ca:!0},sign:P(n.privateKey)});return{key:n.privateKey,cert:o,spki:r,notAfter:a,name:i}}get cert(){return this.record.cert}get pem(){return St(this.record.cert)}async issue(e,t,n=Date.now()){let r=e.toLowerCase();if(!Ot(r))throw new Dt(`no certificate for ${e}`);return N({serial:yt(),issuer:this.record.name,subject:{commonName:r.length<=64?r:`SLICC realm leaf`},notBefore:new Date(n-36e5),notAfter:new Date(n+6048e5),spki:t,issuerSpki:this.record.spki,kind:{ca:!1,host:r},sign:P(this.record.key)})}};function P(e){return async t=>new Uint8Array(await crypto.subtle.sign(wt,e,t))}let At;const F=new Map;function jt(e,t){let n=F.get(e);return n||(At??=t?void 0:Et(),n=kt.open(e,t??At),F.set(e,n),n.catch(()=>{F.get(e)===n&&F.delete(e)})),n}const Mt=65536;var Nt=class extends Error{code;constructor(e,t){super(t),this.code=e}},Pt=class{m;scratch;constructor(e){if(this.m=e,this.scratch=e._malloc(Mt),!this.scratch)throw Error(`tls engine: out of memory`)}put(e){let t=this.m._malloc(e.length+1);if(!t)throw Error(`tls engine: out of memory`);return this.m.HEAPU8.set(e,t),this.m.HEAPU8[t+e.length]=0,t}taken(e){return this.m.HEAPU8.slice(this.scratch,this.scratch+e)}error(e,t){this.m._tls_strerror(e,this.scratch,256);let n=this.m.HEAPU8.indexOf(0,this.scratch);return new Nt(e,`${t}: ${new TextDecoder().decode(this.m.HEAPU8.subarray(this.scratch,n))||e}`)}leaf(){let e=this.m._tls_leaf_new();if(!e)throw this.error(this.m._tls_last_error(),`leaf key`);return new Ft(this,this.m,e)}session(e,t){let n=this.put(new TextEncoder().encode(t));try{let t=this.m._tls_session_new(e.ptr,n);if(!t)throw this.error(this.m._tls_last_error(),`tls session`);return new It(this,this.m,t)}finally{this.m._free(n)}}withBytes(e,t){let n=this.put(e);try{return t(n)}finally{this.m._free(n)}}intoScratch(e){let t=e(this.scratch,Mt);return t>0?this.taken(t):t}},Ft=class{engine;m;ptr;constructor(e,t,n){this.engine=e,this.m=t,this.ptr=n}spki(){let e=this.engine.intoScratch((e,t)=>this.m._tls_leaf_spki(this.ptr,e,t));if(typeof e==`number`)throw this.engine.error(e,`leaf public key`);return e}addCert(e){let t=this.engine.withBytes(e,t=>this.m._tls_leaf_add_cert(this.ptr,t,e.length));if(t!==0)throw this.engine.error(t,`leaf certificate`)}release(){this.m._tls_leaf_free(this.ptr)}},It=class{engine;m;ptr;constructor(e,t,n){this.engine=e,this.m=t,this.ptr=n}feed(e){return this.engine.withBytes(e,t=>this.m._tls_feed(this.ptr,t,e.length))}feedEnd(){this.m._tls_feed_eof(this.ptr)}read(){let e=this.engine.intoScratch((e,t)=>this.m._tls_read(this.ptr,e,t));if(e instanceof Uint8Array)return e;if(e===0)return`more`;if(e===-1)return`eof`;throw this.engine.error(e,`tls`)}write(e){let t=this.engine.withBytes(e,t=>this.m._tls_write(this.ptr,t,e.length));if(t<0)throw this.engine.error(t,`tls`);return t}take(){if(this.m._tls_out_size(this.ptr)===0)return new Uint8Array;let e=this.engine.intoScratch((e,t)=>this.m._tls_out_take(this.ptr,e,t));return e instanceof Uint8Array?e:new Uint8Array}close(){this.m._tls_close(this.ptr)}get version(){return this.m._tls_version(this.ptr)}get handshakeDone(){return this.m._tls_handshake_done(this.ptr)!==0}free(){this.m._tls_session_free(this.ptr)}};let I;function Lt(e=async()=>(await import(`./slicc-tls-engine-DfyKw1Ua.js`)).default()){return I??=e().then(e=>new Pt(e)),I.catch(()=>{I=void 0}),I}const Rt=e(`realm-tls`);var zt=class{session;cipherIn;cipherOut;pending=new Uint8Array;ended=!1;constructor(e,t,n){this.session=e,this.cipherIn=t,this.cipherOut=n}async flush(e){for(let t=this.session.take();t.length>0;t=this.session.take())await this.cipherOut.write(t,e)}feedPending(){if(this.pending.length===0)return;let e=this.session.feed(this.pending);this.pending=this.pending.subarray(e)}async read(e,t){for(;;){this.feedPending();let e=this.session.read();if(await this.flush(t),e instanceof Uint8Array)return e;if(e===`eof`)return new Uint8Array;if(this.pending.length>0)continue;if(this.ended){this.session.feedEnd();let e=this.session.read();return await this.flush(t),e instanceof Uint8Array?e:new Uint8Array}let n=await this.cipherIn.read(65536,t);n.length===0?this.ended=!0:this.pending=n}}async write(e,t){for(let n=0;n<e.length;){let r=this.session.write(e.subarray(n,n+16384));await this.flush(t),n+=r}return e.length}async close(e){this.session.close(),await this.flush(e)}},Bt=class{options;leaves=new Map;now;constructor(e){this.options=e,this.now=e.now??Date.now}leafFor(e,t){let n=this.now(),r=this.leaves.get(t);if(r&&r.expires>n)return this.leaves.delete(t),this.leaves.set(t,r),r.leaf;r&&this.drop(t,r);let i=this.issue(e,t,n),a={leaf:i,expires:n+5184e5};this.leaves.set(t,a),i.catch(()=>{this.leaves.get(t)===a&&this.leaves.delete(t)});for(let[e,t]of this.leaves){if(this.leaves.size<=256)break;this.drop(e,t)}return i}async drop(e,t){this.leaves.get(e)===t&&this.leaves.delete(e),(await t.leaf.catch(()=>void 0))?.release()}async issue(e,t,n){let r=await this.options.ca(),i=e.leaf();try{return i.addCert(await r.issue(t,i.spki(),n)),i.addCert(r.cert),i}catch(e){throw i.release(),e}}async close(){await Promise.all([...this.leaves].map(([e,t])=>this.drop(e,t)))}handler=async(e,t,n,r,i)=>{let a=await this.options.engine(),o=n.host.replace(/^\[|\]$/g,``),s=await this.leafFor(a,o),c=a.session(s,o);try{let a=new zt(c,Ht(t),e),s=`https://${Vt(n)}`;try{await i(a,a,s),await a.close(r).catch(()=>void 0)}catch(e){throw Rt.debug(`tunnel ended`,{host:o,error:String(e)}),e}}finally{c.free()}}};function Vt(e){return e.port===443?e.host:`${e.host}:${e.port}`}function Ht(e){return{read:(t,n)=>e.some(t,n)}}const L=`http://127.0.0.1:${Oe}`,Ut=`localhost,.localhost,127.0.0.1,127.0.0.0/8`;function Wt(){return{http_proxy:L,https_proxy:L,HTTP_PROXY:L,HTTPS_PROXY:L,no_proxy:Ut,NO_PROXY:Ut}}function Gt(e){if(e)return`ca`in e?new Bt(e):new Bt({ca:()=>jt(e.owner),engine:()=>Lt()})}const Kt=new WeakMap,qt=`/.config/slicc/realm-ca-`;function Jt(e){return e.replace(/[^A-Za-z0-9_-]+/g,`-`).replace(/-+$/,``)}function Yt(e,t){return`${e.replace(/\/+$/,``)}${qt}${Jt(t)}.pem`}function Xt(e){return{SSL_CERT_FILE:e,CURL_CA_BUNDLE:e,GIT_SSL_CAINFO:e}}const Zt=`/.config/slicc/gitconfig`;function Qt(e){return`${e.replace(/\/+$/,``)}${Zt}`}function R(e){return`"${e.replace(/[\r\n]+/g,` `).replace(/[\\"]/g,e=>`\\${e}`)}"`}function $t(e){let t=[`[credential]`,` helper = slicc`];return e&&t.push(`[user]`,`\tname = ${R(e.name)}`,`\temail = ${R(e.email)}`),`${t.join(`
10
- `)}\n`}async function en(e,t,n){try{let r=$t(n);return(await e.exists(t)?await e.readFile(t):void 0)!==r&&(await e.mkdir(t.slice(0,t.lastIndexOf(`/`)),{recursive:!0}),await e.writeFile(t,r)),{GIT_CONFIG_SYSTEM:t}}catch{return{}}}function tn(e,t){let n=Wt();return e in n?n[e]===t:e===`GIT_CONFIG_SYSTEM`?t.endsWith(Zt):e in Xt(``)&&t.includes(qt)}async function nn(e,t,n,r=jt){try{let{pem:i}=await r(n);return(await e.exists(t)?await e.readFile(t):void 0)!==i&&(await e.mkdir(t.slice(0,t.lastIndexOf(`/`)),{recursive:!0}),await e.writeFile(t,i)),Xt(t)}catch{return{}}}function rn(e,t={}){if(Kt.has(e))return;let n={proxy:void 0};Kt.set(e,n);let r;e.activate({family:`inet`,host:`127.0.0.1`,port:Oe},()=>{r??=(t.transport??ot)();let i=Gt(t.tls),a=new Ye({net:e,transport:r,tunnel:i?.handler,...t.proxy});n.proxy=a,an(a,t.process).then(async()=>{n.proxy===a&&(n.proxy=void 0),await i?.close()})})}async function an(e,t){if(!t){await e.closed;return}let n=t.processManager,r=n.spawn({kind:`net`,argv:[`http-proxy`,`127.0.0.1:${e.port}`],cwd:`/`,owner:t.owner}),i=()=>e.close();r.abort.signal.addEventListener(`abort`,i,{once:!0}),await e.closed,r.abort.signal.removeEventListener(`abort`,i),n.exit(r.pid,r.abort.signal.aborted?null:0)}const on=32768;function sn(e){return/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(e)}async function z(e){try{return await e()}catch(e){throw e instanceof u?new m(e.code):e}}var cn=class{waiters=[];wait(e){return e?.aborted?Promise.reject(new m(`EINTR`)):new Promise((t,n)=>{let r=()=>{this.waiters=this.waiters.filter(e=>e!==i),n(new m(`EINTR`))},i=()=>{e?.removeEventListener(`abort`,r),t()};this.waiters.push(i),e?.addEventListener(`abort`,r,{once:!0})})}wake(){let e=this.waiters;this.waiters=[];for(let t of e)t()}};function ln(e,t){let n=new f,r=new f;for(let e of[n,r])e.openRead(),e.openWrite();e.attach({rx:r,tx:n}),t.attach({rx:n,tx:r})}var B=class e{net;domain;state=`open`;local;peer;link;readShut=!1;writeShut=!1;queue=[];backlog=0;bound=!1;changes=new cn;options=new Map;constructor(e,t){this.net=e,this.domain=t}attach(e){this.link=e,this.state=`connected`,this.changes.wake()}get listening(){return this.state===`listening`}connection(){if(!this.link||this.state!==`connected`)throw new m(`ENOTCONN`);return this.link}async read(e,t){let{rx:n}=this.connection();return this.readShut||e<=0?new Uint8Array:z(()=>n.read(e,t))}async peek(e,t){let{rx:n}=this.connection();return this.readShut||e<=0?new Uint8Array:z(()=>n.peek(e,t))}async write(e,t){let{tx:n}=this.connection();if(this.writeShut)throw new m(`EPIPE`);return z(()=>n.write(e,t))}poll(){if(this.state===`listening`)return{readable:this.queue.length>0,writable:!1,hangup:!1};if(this.state!==`connected`||!this.link)return{readable:!1,writable:!1,hangup:!0};let{rx:e,tx:t}=this.link;return{readable:this.readShut||e.readReady,writable:this.writeShut||t.writeReady,hangup:e.writersGone&&t.readersGone}}changed(e){let t=this.changes.wait(e);if(this.state!==`connected`||!this.link)return t;let n=[t,this.link.rx.changed(e),this.link.tx.changed(e)];for(let e of n)e.catch(()=>void 0);return z(()=>Promise.race(n))}bind(e){if(this.state!==`open`||this.local)throw new m(`EINVAL`);if(e.family!==this.domain)throw new m(`EAFNOSUPPORT`);this.local=this.net.bind(this,e),this.bound=!0}listen(e){if(this.state===`connected`)throw new m(`EISCONN`);if(this.state!==`open`&&this.state!==`listening`)throw new m(`EINVAL`);if(!this.local){if(this.domain===`unix`)throw new m(`EINVAL`);this.bind({family:`inet`,host:`0.0.0.0`,port:0})}this.backlog=Math.min(Math.max(e,1),4096),this.state=`listening`}async accept(e,t=!1){for(;;){if(this.state!==`listening`)throw new m(`EINVAL`);let n=this.queue.shift();if(n)return n;if(t)throw new m(`EAGAIN`);await this.changes.wait(e)}}offer(e){return this.state!==`listening`||this.queue.length>=this.backlog?!1:(this.queue.push(e),this.changes.wake(),!0)}connect(t){if(this.state===`connected`)throw new m(`EISCONN`);if(this.state!==`open`)throw new m(`EINVAL`);if(t.family!==this.domain)throw new m(`EAFNOSUPPORT`);let n=this.net.target(t);this.local||(t.family===`inet`?(this.local=this.net.bind(this,{family:`inet`,host:`127.0.0.1`,port:0}),this.bound=!0):this.local={family:`unix`,path:``});let r=new e(this.net,this.domain);if(r.local=t.family===`inet`?{...t,host:un(t.host)}:t,r.peer=this.local,this.peer=r.local,ln(this,r),!n.offer(r))throw this.unlink(),r.close(),new m(`ECONNREFUSED`)}unlink(){let e=this.link;e&&(e.rx.closeRead(),e.tx.closeWrite()),this.link=void 0,this.peer=void 0,this.state=`open`}shutdown(e){let{rx:t,tx:n}=this.connection();if(e!==0&&e!==1&&e!==2)throw new m(`EINVAL`);e!==1&&!this.readShut&&(this.readShut=!0,t.closeRead()),e!==0&&!this.writeShut&&(this.writeShut=!0,n.closeWrite()),this.changes.wake()}getOption(e,t){if(e===1)switch(t){case 3:return 1;case 4:return 0;case 30:return+(this.state===`listening`);case 39:return this.domain===`inet`?2:1;case 7:case 8:return this.options.get(`${e}:${t}`)??65536}return this.options.get(`${e}:${t}`)??0}setOption(e,t,n){this.options.set(`${e}:${t}`,n)}close(){let e=this.state;if(this.state=`closed`,e===`listening`)for(let e of this.queue.splice(0))e.close();this.link&&(this.readShut||this.link.rx.closeRead(),this.writeShut||this.link.tx.closeWrite(),this.readShut=!0,this.writeShut=!0),this.bound&&this.local&&this.net.release(this.local,this),this.bound=!1,this.changes.wake()}static pair(t,n){let r=new e(t,n),i=new e(t,n);return r.local=i.local=r.peer=i.peer=n===`inet`?{family:`inet`,host:`127.0.0.1`,port:0}:{family:`unix`,path:``},ln(r,i),[r,i]}};function un(e){return e===`0.0.0.0`?`127.0.0.1`:e}function V(e){return e.family===`inet`?`inet:${e.port}`:`unix:${e.path}`}var dn=class{bound=new Map;activators=new Map;nextEphemeral=on;activate(e,t){this.activators.set(V(e),t)}socket(e){return new B(this,e)}listen(e,t=128){let n=this.socket(e.family);return n.bind(e),n.listen(t),n}connect(e){let t=this.socket(e.family);return t.connect(e),t}bind(e,t){if(t.family===`unix`){if(t.path===``)throw new m(`EINVAL`)}else if(t.host!==`0.0.0.0`&&!sn(t.host))throw new m(`EADDRNOTAVAIL`);let n=t.family===`inet`&&t.port===0?{...t,port:this.ephemeral()}:t,r=V(n);if(this.bound.has(r))throw new m(`EADDRINUSE`);return this.bound.set(r,e),n}release(e,t){let n=V(e);this.bound.get(n)===t&&this.bound.delete(n)}target(e){if(e.family===`inet`&&!sn(un(e.host)))throw new m(`ENETUNREACH`);let t=V(e);this.bound.has(t)||this.activators.get(t)?.();let n=this.bound.get(t);if(!n?.listening)throw new m(`ECONNREFUSED`);return n}ephemeral(){for(let e=0;e<28232;e++){let e=this.nextEphemeral;if(this.nextEphemeral=e===60999?on:e+1,!this.bound.has(`inet:${e}`))return e}throw new m(`EADDRINUSE`)}};const fn=new Map;function pn(e){let t=fn.get(e);return t||(t=new dn,fn.set(e,t)),t}function H(e){return e?`${e.kind}:${e.scoopJid??``}`:`local`}const U={HUP:1,INT:2,QUIT:3,ILL:4,TRAP:5,ABRT:6,BUS:7,FPE:8,KILL:9,USR1:10,SEGV:11,USR2:12,PIPE:13,ALRM:14,TERM:15,STKFLT:16,CHLD:17,CONT:18,STOP:19,TSTP:20,TTIN:21,TTOU:22,URG:23,XCPU:24,XFSZ:25,VTALRM:26,PROF:27,WINCH:28,POLL:29,PWR:30,SYS:31},mn=new Set([U.CHLD,U.URG,U.WINCH]),hn=new Set([U.STOP,U.TSTP,U.TTIN,U.TTOU]);function gn(e){return e===U.CONT?`continue`:hn.has(e)?`stop`:mn.has(e)?`ignore`:`terminate`}function _n(e){return Number.isInteger(e)&&e>=1&&e<=31}function W(e){return 1<<e}const G={SIGINT:U.INT,SIGTERM:U.TERM,SIGKILL:U.KILL,SIGSTOP:U.STOP,SIGCONT:U.CONT},vn=16384;function yn(){let e=Array(32).fill(0);return Object.assign(e,{0:3,1:28,2:127,3:21}),Object.assign(e,{4:4,6:1,8:17,9:19,10:26}),Object.assign(e,{12:18,13:15,14:23,15:22}),{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:e}}const bn=new TextEncoder;function xn(e){return(e&192)==128}var Sn=class{screen;signal;termios=yn();cols=80;rows=24;readable=[];line=[];waiters=[];constructor(e,t){this.screen=e,this.signal=t}receive(e){for(let t of e)this.key(t);this.wake()}resize(e,t){this.setSize(e,t),this.signal(U.WINCH)}setSize(e,t){this.cols=e,this.rows=t}tcgets(){return{...this.termios,c_cc:[...this.termios.c_cc]}}tcsets(e){let t=this.canonical;this.termios={...e,c_cc:[...e.c_cc]},t&&!this.canonical&&this.line.length>0&&(this.readable.push(Uint8Array.from(this.line)),this.line=[],this.wake())}winsize(){return[this.rows,this.cols]}file(){return new g({read:(e,t)=>this.read(e,t),write:async e=>(this.output(e),e.length),poll:()=>({readable:this.readable.length>0,writable:!0,hangup:!1}),changed:e=>this.changed(e),close:()=>{},tty:this})}get canonical(){return!!(this.termios.c_lflag&2)}cc(e){return this.termios.c_cc[e]??0}key(e){let{c_iflag:t,c_lflag:n}=this.termios,r=e===13&&t&256?10:e;if(!(n&1&&this.signalKey(r))){if(!this.canonical){this.readable.push(Uint8Array.of(r)),n&8&&this.echo(r);return}this.edit(r)}}signalKey(e){let t=e===this.cc(0)?U.INT:e===this.cc(1)?U.QUIT:e===this.cc(10)?U.TSTP:0;return!t||e===0?!1:(this.termios.c_lflag&8&&this.echo(e),this.termios.c_lflag&128||(this.line=[],this.readable=[]),this.signal(t),!0)}edit(e){let t=!!(this.termios.c_lflag&8);e===this.cc(2)||e===8?this.rubOut(this.lastCharLength()):e===this.cc(3)?this.rubOut(this.line.length):e===this.cc(14)?this.rubOut(this.lastWordLength()):e===this.cc(4)?(this.readable.push(this.line.length>0?Uint8Array.from(this.line):null),this.line=[]):e===10?(this.line.push(e),t&&this.output(bn.encode(`
11
- `)),this.readable.push(Uint8Array.from(this.line)),this.line=[]):(this.line.push(e),t&&this.echo(e))}lastWordLength(){let e=this.line.length;for(;e>0&&this.line[e-1]===32;)e--;for(;e>0&&this.line[e-1]!==32;)e--;return this.line.length-e}lastCharLength(){let{line:e}=this,t=Math.min(1,e.length);if(this.termios.c_iflag&vn)for(;t<e.length&&xn(e[e.length-t]??0);)t++;return t}rubOut(e){let t=this.line.splice(this.line.length-e,e),n=this.termios.c_iflag&vn?t.filter(e=>!xn(e)).length:t.length;n>0&&this.termios.c_lflag&8&&this.output(bn.encode(`\b \b`.repeat(n)),!1)}echo(e){if(e<32&&e!==10&&e!==9&&this.termios.c_lflag&512){this.output(Uint8Array.of(94,e+64),!1);return}this.output(Uint8Array.of(e))}output(e,t=!0){let{c_oflag:n}=this.termios;if(!t||!(n&1&&n&4)||!e.includes(10)){this.screen.write(e);return}let r=[];for(let t of e)t===10&&r.push(13),r.push(t);this.screen.write(Uint8Array.from(r))}async read(e,t){for(;this.readable.length===0;)await this.changed(t);let n=this.readable[0];if(n===null)return this.readable.shift(),new Uint8Array;if(n===void 0)return new Uint8Array;let r=[],i=0;for(;this.readable.length>0&&i<e;){let t=this.readable[0];if(t==null)break;let n=t.subarray(0,e-i);if(r.push(n),i+=n.length,n.length<t.length?this.readable[0]=t.subarray(n.length):this.readable.shift(),this.canonical)break}let a=new Uint8Array(i),o=0;for(let e of r)a.set(e,o),o+=e.length;return a}changed(e){return e?.aborted?Promise.reject(new m(`EINTR`)):new Promise((t,n)=>{let r=()=>{this.waiters=this.waiters.filter(e=>e!==i),n(new m(`EINTR`))},i=()=>{e?.removeEventListener(`abort`,r),t()};this.waiters.push(i),e?.addEventListener(`abort`,r,{once:!0})})}wake(){let e=this.waiters;this.waiters=[];for(let t of e)t()}},K=class extends Error{code;constructor(e){super(e),this.code=e}};function Cn(e){let t=()=>{};return{promise:new Promise((n,r)=>{t=()=>r(new m(`EINTR`)),e?.aborted?t():e?.addEventListener(`abort`,t,{once:!0})}),done:()=>e?.removeEventListener(`abort`,t)}}function wn(e){return(e&255)<<8|127}function Tn(e,t){return t?t&127:(e&255)<<8}function En(e){let t=new Uint8Array(e.reduce((e,t)=>e+t.length,0)),n=0;for(let r of e)t.set(r,n),n+=r.length;return t}var Dn=class{parentFds;spawner;forker;children=new Map;leftovers=new Map;onChildState;stateChanged=[];watchers=new Map;constructor(e,t,n){this.parentFds=e,this.spawner=t,this.forker=n}async fork(e){if(!this.forker)throw new K(`ENOSYS`);return this.track(e,this.parentFds.fork(),new Map,this.forker)}async spawn(e,t,n=[]){if(!this.spawner)throw new K(`ENOSYS`);let r=new o,i=new Map;try{for(let[e,n]of t.entries())r.installAt(e,this.openSlot(n,e,i));for(let{fd:e,kernel:t,flags:i}of n)e<=2||(r.installAt(e,this.parentFds.get(t).retain()),i!==void 0&&r.setStatusFlags(e,i))}catch(e){throw await r.closeAll(),e}return this.track(e,r,i,this.spawner)}async track(e,t,n,r){let i;try{i=await r(e,t)}catch(e){throw await t.closeAll(),e}let a={exited:i.exited,termsig:i.termsig,captured:n};return i.exited.then(e=>{a.code=e,this.watchers.delete(i.pid),this.onChildState?.()}),i.onState?.((e,t)=>{a.stopReport=e===`stopped`?t:void 0,a.continueReport=e===`continued`,this.watchers.get(i.pid)?.(e,t);let n=this.stateChanged;this.stateChanged=[];for(let e of n)e();this.onChildState?.()}),this.children.set(i.pid,a),i.pid}watch(e,t){this.children.has(e)&&this.watchers.set(e,t)}openSlot(e,t,n){if(`fd`in e)return this.parentFds.get(e.fd).retain();if(`input`in e)return s(e.input);if(`capture`in e){let e=[];return n.set(t,e),h(t=>e.push(t))}return te()}async wait(e,t,n,r={}){let i;try{for(;;){let a=this.candidates(e,r);if(a.length===0)throw new m(`ECHILD`);let o=a.find(([,e])=>e.code!==void 0);if(o)return this.reap(o[0],o[1].code);let s=this.stateReport(a,r);if(s)return s;if(t)return[0,0];i??=Cn(n),await this.nextChange(a,r,i.promise)}}finally{i?.done()}}candidates(e,t){let n=[...this.children];if(e>0)return n.filter(([t])=>t===e);let r=t.inGroup;return e===-1||!r?n:n.filter(([e])=>r(e))}async nextChange(e,t,n){let r,i=new Promise(e=>r=e),a=t.untraced||t.continued;a&&r&&this.stateChanged.push(r);try{await Promise.race([...e.map(([,e])=>e.exited),...a?[i]:[],n])}finally{this.stateChanged=this.stateChanged.filter(e=>e!==r)}}stateReport(e,t){for(let[n,r]of e){if(t.untraced&&r.stopReport!==void 0){let e=r.stopReport;return r.stopReport=void 0,[n,wn(e)]}if(t.continued&&r.continueReport)return r.continueReport=!1,[n,65535]}return null}reap(e,t){let n=this.children.get(e);return this.children.delete(e),n&&n.captured.size>0&&this.leftovers.set(e,n.captured),[e,Tn(t,n?.termsig?.())]}captured(e,t){let n=this.leftovers.get(e),r=n?.get(t);return!n||!r?new Uint8Array:(n.delete(t),n.size===0&&this.leftovers.delete(e),En(r))}};function On(e,t,n){return{read:t.filter(t=>{let n=l(e.get(t).file);return n.readable||n.hangup}),write:n.filter(t=>{let n=l(e.get(t).file);return n.writable||n.hangup})}}function kn(e){let t=()=>{};return{promise:new Promise((n,r)=>{t=()=>r(new m(`EINTR`)),e.aborted?t():e.addEventListener(`abort`,t,{once:!0})}),done:()=>e.removeEventListener(`abort`,t)}}async function An(e,t,n,r,i){let a=r<0?1/0:Date.now()+r,o=kn(i);o.promise.catch(()=>{});try{return await jn(e,t,n,a,o.promise)}finally{o.done()}}async function jn(e,t,n,r,i){for(;;){let a=On(e,t,n);if(a.read.length>0||a.write.length>0||Date.now()>=r)return a;let o=new AbortController,s=[...new Set([...t,...n])].flatMap(t=>{let n=e.get(t).file;return n.changed===void 0?[]:[n.changed(o.signal).catch(()=>void 0)]}),c,l=r===1/0?[]:[new Promise(e=>c=setTimeout(e,r-Date.now()))];try{await Promise.race([...s,...l,i])}finally{o.abort(),clearTimeout(c)}}}const Mn=[`sock-open`,`sock-pair`,`sock-bind`,`sock-listen`,`sock-accept`,`sock-connect`,`sock-shutdown`,`sock-name`,`sock-getopt`,`sock-setopt`];function q(e,t){let n=e.get(t).file;if(!(n instanceof B))throw new m(`ENOTSOCK`);return n}const J=e=>e===void 0?{ok:!0,kind:`void`}:{ok:!0,kind:`json`,json:e};async function Nn(e,t){let{fds:n,net:r}=t;switch(e.op){case`sock-open`:return J(n.install(new g(r.socket(e.domain)),3));case`sock-pair`:{let[t,i]=B.pair(r,e.domain),a=n.install(new g(t),3);try{return J([a,n.install(new g(i),3)])}catch(e){throw await Promise.resolve(n.close(a)),e}}case`sock-bind`:return q(n,e.fd).bind(e.addr),J();case`sock-listen`:return q(n,e.fd).listen(e.backlog),J();case`sock-accept`:return J(await Fn(t,e.fd,e.nonblock));case`sock-connect`:if(q(n,e.fd).connect(e.addr),e.nonblock)throw new m(`EINPROGRESS`);return J();case`sock-shutdown`:return q(n,e.fd).shutdown(e.how),J();case`sock-name`:{let t=q(n,e.fd),r=e.peer?t.peer:t.local;if(e.peer&&!r)throw new m(`ENOTCONN`);return J(r??Pn(t.domain))}case`sock-getopt`:return J(q(n,e.fd).getOption(e.level,e.name));case`sock-setopt`:return q(n,e.fd).setOption(e.level,e.name,e.value),J()}}function Pn(e){return e===`inet`?{family:`inet`,host:`0.0.0.0`,port:0}:{family:`unix`,path:``}}async function Fn(e,t,n){let r=q(e.fds,t),i=!n&&!l(r).readable,a=await r.accept(i?e.blocking():void 0,n);return{fd:e.fds.install(new g(a),3),peer:a.peer}}function In(e,t){let n=t.flags&3,r=n!==1,i=n===1||n===2,a=t.contents===void 0?t.orphan?new Uint8Array:void 0:new Uint8Array(t.contents),o=a?.length??0,s=!1,c=t.position,l=Promise.resolve(),u=e=>{let t=l.then(e);return l=t.catch(()=>void 0),t},d=async()=>{if(!a){try{a=await e.readFileBuffer(t.path)}catch{a=new Uint8Array}o=a.length}return a},f=e=>{let t=a??new Uint8Array;if(t.length>=e)return t;let n=new Uint8Array(Math.max(e,t.length*2,256));return n.set(t.subarray(0,o)),a=n,n},p=async()=>{!s||!a||t.orphan||(s=!1,await e.writeFile(t.path,a.slice(0,o)))};return new g({read:r?e=>u(async()=>{let t=await d(),n=Math.max(0,Math.min(e,o-c)),r=t.slice(c,c+n);return c+=n,r}):void 0,write:i?e=>u(async()=>{await d(),t.flags&1024&&(c=o);let n=f(c+e.length);return c>o&&n.fill(0,o,c),n.set(e,c),c+=e.length,o=Math.max(o,c),s=!0,e.length}):void 0,seek:(e,t)=>u(async()=>{let n=0;if(t===1)n=c;else if(t===2)await d(),n=o;else if(t!==0)throw new m(`EINVAL`);if(n+e<0)throw new m(`EINVAL`);return c=n+e,c}),flush:()=>u(p),close:()=>u(p)})}const Ln=new Set([`proc-setpgid`,`proc-getpgid`,`proc-getsid`,`proc-setsid`]);function Rn(e){return Ln.has(e.op)}function zn(e){return e.op.startsWith(`sock-`)}function Bn(e){return e.op.startsWith(`fd-`)}function Vn(e){return e.op.startsWith(`tty-`)}const Hn=new Set([`fd-read`,`fd-write`,`fd-close`,`fd-pipe`,`fd-poll`,`fd-open-vfs`,`fd-seek`,`fd-select`,`fd-info`,`fd-open-tty`,`tty-get`,`tty-set`,`tty-winsz`,`fd-flush`,`proc-spawn`,`proc-wait`,`proc-captured`,`proc-fork`,`proc-kill`,`proc-exec`,`proc-setpgid`,`proc-getpgid`,`proc-getsid`,`proc-setsid`,`tty-pgrp-get`,`tty-pgrp-set`,`sig-mask`,...Mn]);function Un(e){let t=e.op;return typeof t==`string`&&Hn.has(t)}var Wn=class{pid;fds;options;exited=!1;children;caught=0;ignored=0;interrupt=new AbortController;execChild;execTermsig;stopped=0;stops=0;resumed=Promise.resolve();wake=()=>{};stateListeners=[];net;constructor(e,t,n={}){this.pid=e,this.fds=t,this.options=n,this.children=new Dn(t,n.spawner,n.forker),this.children.onChildState=()=>this.signal(U.CHLD)}signal(e){if(this.execChild!==void 0)return Promise.resolve(this.options.kill?.(this.execChild,e)).catch(()=>void 0),e===U.KILL?`terminate`:`forward`;if(e===U.KILL)return`terminate`;if(e===U.CONT&&this.cont(),e===U.STOP)return this.stop(e);let t=W(e);if(this.ignored&t)return`ignore`;if(!(this.caught&t)){let t=gn(e);return t===`stop`?this.stop(e):t}this.options.onPending?.(e);let n=this.interrupt;return this.interrupt=new AbortController,n.abort(),`deliver`}onState(e){this.stateListeners.push(e)}stop(e){if(this.stopped)return`stop`;this.stopped=e,this.stops++,this.resumed=new Promise(e=>this.wake=e);let t=this.interrupt;this.interrupt=new AbortController,t.abort();for(let t of this.stateListeners)t(`stopped`,e);return`stop`}cont(){if(this.stopped){this.stopped=0,this.wake();for(let e of this.stateListeners)e(`continued`,U.CONT)}}async syscall(e){for(;;){await this.resumed;let t=this.stops,n=await this.dispatch(e);if(!(!n.ok&&n.errno===`EINTR`&&this.stops!==t&&!this.options.hasPending?.()))return await this.resumed,n}}async dispatch(e){try{return Bn(e)?await this.fdSyscall(e):Vn(e)?this.ttySyscall(e):Rn(e)?this.jobSyscall(e):zn(e)?await this.socketSyscall(e):await this.procSyscall(e)}catch(e){if(e instanceof m||e instanceof K)return{ok:!1,errno:e.code,message:e.code};throw e}}blockingSignal(){if(this.options.hasPending?.())throw new m(`EINTR`);return this.interrupt.signal}async read(e){let t=this.fds.get(e.fd).file,n=e.peek?t.peek:t.read;if(!n)throw new m(e.peek&&t.read?`EOPNOTSUPP`:`EBADF`);if(t.tty&&this.checkForeground(t.tty),e.max<=0)return new Uint8Array;let r=l(t).readable;if(!r&&e.nonblock)throw new m(`EAGAIN`);let i=r?this.interrupt.signal:this.blockingSignal();return n.call(t,Math.max(0,Math.min(e.max,1048576)),i)}async write(e,t,n=!1){let r=this.fds.get(e).file;if(!r.write)throw new m(`EBADF`);if(!l(r).writable){if(n)throw new m(`EAGAIN`);return r.write(t,this.blockingSignal())}return n?r.write(t,AbortSignal.abort()):r.write(t,this.options.hasPending?.()?AbortSignal.abort():this.interrupt.signal)}async fdSyscall(e){switch(e.op){case`fd-read`:return{ok:!0,kind:`bytes`,bytes:await this.read(e)};case`fd-write`:return{ok:!0,kind:`json`,json:await this.write(e.fd,e.body,e.nonblock)};case`fd-close`:return await Promise.resolve(this.fds.close(e.fd)),{ok:!0,kind:`void`};case`fd-pipe`:{let e=c(),t=this.fds.install(e.read,3),n;try{n=this.fds.install(e.write,3)}catch(e){throw await Promise.resolve(this.fds.close(t)),e}return{ok:!0,kind:`json`,json:[t,n]}}case`fd-poll`:return{ok:!0,kind:`json`,json:l(this.fds.get(e.fd).file)};case`fd-open-vfs`:{if(!this.options.fs)throw new K(`ENOSYS`);let t=In(this.options.fs,{path:e.path,flags:e.flags,position:e.position,...e.contents===void 0?{}:{contents:e.contents},...e.orphan?{orphan:!0}:{}});return{ok:!0,kind:`json`,json:this.fds.install(t,3)}}case`fd-info`:return{ok:!0,kind:`json`,json:{tty:this.fds.get(e.fd).file.tty!==void 0}};case`fd-open-tty`:{let e=this.controllingTerminal();if(!e)throw new m(`ENXIO`);return{ok:!0,kind:`json`,json:this.fds.install(e.file(),3)}}case`fd-select`:{let{read:t,write:n,timeoutMs:r}=e,i=this.blockingSignal();return{ok:!0,kind:`json`,json:await An(this.fds,t,n,r,i)}}case`fd-seek`:{let t=this.fds.get(e.fd).file;if(!t.seek)throw new m(`ESPIPE`);return{ok:!0,kind:`json`,json:await t.seek(e.offset,e.whence)}}case`fd-flush`:{let t=this.fds.get(e.fd).file;return t.flush&&await t.flush(),{ok:!0,kind:`void`}}}}ttySyscall(e){let t=this.tty(e.fd),n=this.options.jobs;switch(e.op){case`tty-get`:return{ok:!0,kind:`json`,json:t.tcgets()};case`tty-set`:return t.tcsets(e.termios),{ok:!0,kind:`void`};case`tty-winsz`:return{ok:!0,kind:`json`,json:t.winsize()};case`tty-pgrp-get`:return{ok:!0,kind:`json`,json:n?n.tcgetpgrp(t,this.sid()):this.pid};case`tty-pgrp-set`:if(n)n.tcsetpgrp(this.pid,t,e.pgrp);else if(e.pgrp!==this.pid)throw new m(`EPERM`);return{ok:!0,kind:`void`}}}checkForeground(e){let t=this.options.jobs;if(!t)return;let n=this.pgid();if(t.tcgetpgrp(e,this.sid())!==n)throw this.ignored&W(U.TTIN)?new m(`EIO`):(t.killGroup(n,U.TTIN),new m(`EINTR`))}waitGroup(e){let t=this.options.jobs;if(!t||e>0||e===-1)return;let n=e===0?this.pgid():-e;return e=>(t.pgidOf(e)??this.pgid())===n}pgid(){return this.options.jobs?.getpgid(this.pid,0)??this.pid}sid(){return this.options.jobs?.getsid(this.pid,0)??this.pid}controllingTerminal(){let e=this.options.jobs?.controllingTerminal(this.pid);return e===void 0?this.fds.stdioTerminal():e??void 0}jobSyscall(e){let t=this.options.jobs,n=e=>{if(e!==0&&e!==this.pid)throw new m(`ESRCH`);return this.pid};switch(e.op){case`proc-setpgid`:if(t)t.setpgid(this.pid,e.pid,e.pgid);else if(n(e.pid)!==(e.pgid||this.pid))throw new m(`EPERM`);return{ok:!0,kind:`void`};case`proc-getpgid`:return{ok:!0,kind:`json`,json:t?.getpgid(this.pid,e.pid)??n(e.pid)};case`proc-getsid`:return{ok:!0,kind:`json`,json:t?.getsid(this.pid,e.pid)??n(e.pid)};case`proc-setsid`:if(!t)throw new m(`EPERM`);return{ok:!0,kind:`json`,json:t.setsid(this.pid)}}}tty(e){let t=this.fds.get(e).file.tty;if(!t)throw new m(`ENOTTY`);return t}socketSyscall(e){return this.net??=this.options.net??new dn,Nn(e,{fds:this.fds,net:this.net,blocking:()=>this.blockingSignal()})}async procSyscall(e){switch(e.op){case`proc-fork`:return{ok:!0,kind:`json`,json:await this.children.fork(e.state)};case`proc-spawn`:{let{file:t,argv:n,env:r,cwd:i,stdio:a,inherit:o}=e;return{ok:!0,kind:`json`,json:await this.children.spawn({file:t,argv:n,env:r,cwd:i},a,o)}}case`proc-wait`:{let t=e.nohang?this.interrupt.signal:this.blockingSignal(),n={untraced:e.untraced,continued:e.continued,inGroup:this.waitGroup(e.pid)};return{ok:!0,kind:`json`,json:await this.children.wait(e.pid,e.nohang,t,n)}}case`proc-exec`:this.execChild=e.pid,this.options.jobs?.exec(this.pid,e.pid),this.children.watch(e.pid,(e,t)=>e===`stopped`?this.stop(t):this.cont()),await this.fds.closeAll();try{let t=await this.children.wait(e.pid,!1),n=t[1]&127;return n&&(this.execTermsig=n),{ok:!0,kind:`json`,json:t}}finally{this.execChild=void 0}case`proc-kill`:if(e.sig!==0&&!_n(e.sig))throw new m(`EINVAL`);if(!await this.options.kill?.(e.pid===0?-this.pgid():e.pid,e.sig))throw new m(`ESRCH`);return{ok:!0,kind:`void`};case`sig-mask`:return this.caught=e.caught,this.ignored=e.ignored,{ok:!0,kind:`void`};case`proc-captured`:return{ok:!0,kind:`bytes`,bytes:this.children.captured(e.pid,e.slot)}}}async exit(){this.exited||(this.exited=!0,await this.fds.closeAll())}};function Gn(){return new Worker(new URL(`/assets/process-worker-Bm14-oXj.js`,``+import.meta.url),{type:`module`})}const Kn=new WeakMap;let qn=1;function Jn(e){let t=Kn.get(e);return t===void 0&&Kn.set(e,t=qn++),t}function Yn(e){return e.numbers().filter(e=>e>2).map(t=>{let n=e.get(t),r=e.statusFlags(t),i=n.file instanceof B?`socket`:d(n.file);return{fd:t,kind:i,...r===void 0?{}:{flags:r},...e.closesOnExec(t)?{cloexec:!0}:{},...i===`stream`?{desc:Jn(n)}:{}}})}function Xn(e){let t=new SharedArrayBuffer(64+ce),n=new Int32Array(t,0,16),r=new Wn(e.pid,e.fds,{spawner:e.spawner,forker:e.forker,fs:e.fs,kill:e.kill,jobs:e.jobs,net:e.net,onPending:e=>void Atomics.or(n,8,W(e)),hasPending:()=>Atomics.load(n,8)!==0}),i=ae({fs:e.fs,cwd:e.cwd}),a=(e.createWorker??Gn)(),o=le(a,t,i,{dispatch:async e=>Un(e)?r.syscall(e):`op`in e&&typeof e.op==`string`&&`path`in e?se(e):{ok:!1,errno:`ENOSYS`,message:`wasm-realm: no exec yet`}}),s,c=new Promise(e=>s=e),l=!1,u,d=(e,t)=>{l||(l=!0,u=t??r.execTermsig,a.removeEventListener(`message`,f),a.removeEventListener(`error`,p),o.dispose(),oe(i),a.terminate(),r.exit().then(()=>s(e),()=>s(e)))},f=t=>{let n=t.data;n?.type===`wasm-process-exit`?d(typeof n.code==`number`?n.code:70):n?.type===`wasm-process-error`&&(e.onError?.(String(n.message)),d(70))},p=t=>{t.preventDefault(),e.onError?.(String(t.message??`worker error`)),d(70)};a.addEventListener(`message`,f),a.addEventListener(`error`,p);let m={type:`wasm-process-init`,pid:e.pid,program:e.program,argv0:e.argv0,args:e.args,env:e.env,cwd:e.cwd,sab:t,...e.fork?{fork:e.fork}:{fds:Yn(e.fds)}};return a.postMessage(m,e.fork?[e.fork.memory.buffer]:[]),{pid:e.pid,exited:c,kill:(e=137)=>d(e,e>128&&e<160?e-128:void 0),signal:e=>{r.signal(e)===`terminate`&&d(e===U.KILL?137:128+e,e)},termsig:()=>u,onState:e=>r.onState(e)}}var Zn=class{members=new Map;foreground=new Map;terminals=new Map;add(e,t,n,r){let i=t===void 0?void 0:this.members.get(t);!i&&r&&this.terminals.set(e,r);let a={pid:e,ppid:i?.pid,pgid:i?.pgid??e,sid:i?.sid??e,signal:n};return this.members.set(e,a),a}remove(e){this.members.delete(e)}exec(e,t){let n=this.members.get(t);n&&(n.execParent=e);let r=this.members.get(e);r&&(r.execed=!0)}pgidOf(e){return this.members.get(e)?.pgid}member(e){let t=this.members.get(e);if(!t)throw new m(`ESRCH`);return t}setpgid(e,t,n){let r=this.member(t||e),i=n||r.pid;if(i<0)throw new m(`EINVAL`);let a=this.member(e);if(r.pid!==e){if(r.ppid!==e)throw new m(`ESRCH`);if(r.execed)throw new m(`EACCES`)}if(r.sid!==a.sid||r.pid===r.sid)throw new m(`EPERM`);let o=[...this.members.values()].some(e=>e.pgid===i&&e.sid===r.sid);if(i!==r.pid&&!o)throw new m(`EPERM`);r.pgid=i}getpgid(e,t){return this.member(t||e).pgid}getsid(e,t){return this.member(t||e).sid}setsid(e){let t=this.member(e);if(t.pgid===e)throw new m(`EPERM`);return t.sid=e,t.pgid=e,this.terminals.delete(e),e}controllingTerminal(e){let t=this.members.get(e);return t&&(this.terminals.get(t.sid)??null)}killGroup(e,t){let n=[...this.members.values()].filter(t=>t.pgid===e),r=new Set(n.map(e=>e.pid));if(t!==0)for(let e of n)(e.execParent===void 0||!r.has(e.execParent))&&e.signal(t);return n.length>0}tcgetpgrp(e,t){return this.foreground.get(e)??t}tcsetpgrp(e,t,n){let r=this.member(e);if(![...this.members.values()].some(e=>e.pgid===n&&e.sid===r.sid))throw new m(`EPERM`);this.foreground.set(t,n)}signalForeground(e,t,n){this.killGroup(this.tcgetpgrp(e,t),n)}};function Qn(e,t){return!/^(ba)?sh$/.test(Z(e))||`BASH_FUNC_secret%%`in t?t:{...t,"BASH_FUNC_secret%%":`() { command secret "$@" || return; local __slicc_env; if __slicc_env=$(command secret shell-env "$@" 2>/dev/null); then eval "$__slicc_env"; fi; return 0; }`}}const Y=new Map,$n=new Map(Object.entries(G).map(([e,t])=>[t,e])),X=/^\/(?:usr\/)?bin\/([^/]+)$/;let er=4e4;function tr(e){return e.endsWith(`.js`)?`${e.slice(0,-3)}.wasm`:`${e}.wasm`}function nr(e){return X.exec(e)?.[1]??Z(e)}function Z(e){return e.slice(e.lastIndexOf(`/`)+1)}function rr(e){return{exists:t=>e.fs.exists(t),readDir:async t=>(await e.fs.readdir(t)).map(e=>({name:e})),readFile:t=>e.fs.readFile(t)}}function ir(e){return re(rr(e),ne)}async function ar(e,t){let n=await e.fs.stat(t),r=`${t}:${n.size}:${n.mtime.getTime()}`,i=Y.get(r);return i||(i=ie(t=>e.fs.readFileBuffer(t),t),Y.set(r,i),i.catch(()=>Y.delete(r))),i}function or(e){let t=``;for(let n=0;n<e.length;n+=32768)t+=String.fromCharCode(...e.subarray(n,n+32768));return t}function sr(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t}async function cr(e){if(!e.file.read)return new Uint8Array;let t=[],n=0;for(let r=await e.file.read(65536);r.length>0;)t.push(r),n+=r.length,r=await e.file.read(65536);let r=new Uint8Array(n),i=0;for(let e of t)r.set(e,i),i+=e.length;return r}async function Q(e,t,n){if(n.length===0||!e.has(t))return;let r=e.get(t).file;try{await r.write?.(n)}catch{}}function $(e,t){return e.has(t)&&e.get(t).file.tty!==void 0}function lr(e){return{...$(e,0)?{}:{[ee]:`0`},...$(e,1)?{}:{[p]:`0`}}}function ur(e){return{pid:e.pid,exited:e.exited,termsig:e.termsig,onState:t=>e.onState(t)}}var dr=class{ctx;processConfig;onError;gate;lookup;live=new Set;shellChildren=new Set;wasmByPid=new Map;shellByPid=new Map;installed;jobs=new Zn;leader;net;constructor(e,t,n,r,i){this.ctx=e,this.processConfig=t,this.onError=n,this.gate=r,this.lookup=i,this.net=pn(H(t?.owner));let a=H(t?.owner);rn(this.net,{process:t,tls:{owner:a}})}commands(){return this.lookup?this.lookup():(this.installed??=ir(this.ctx),this.installed)}async launch(e){let t,n;try{t=await this.ctx.fs.readFile(e.glue),n=await ar(this.ctx,e.module),e.signal?.throwIfAborted()}catch(t){throw await e.fds.closeAll(),t}let r=Qn(e.argv0,e.defaults?{...e.defaults,...e.env}:e.env);return this.start({...e,env:r,program:{glue:t,module:n}})}start(e){let t=this.processConfig?.processManager,{pid:n}=this.register(`wasm`,[e.argv0,...e.args],e.cwd,e.env,e.ppid),r=e.fds.stdioTerminal(),i=Xn({pid:n,program:e.program,argv0:e.argv0,args:e.args,env:e.env,cwd:e.cwd,fds:e.fds,fs:this.ctx.fs,onError:this.onError,spawner:this.spawner(n),forker:this.forker(n,e),kill:(e,t)=>this.kill(e,t),jobs:this.jobs,net:this.net,...e.fork?{fork:e.fork}:{}});this.live.add(i),this.wasmByPid.set(n,i),this.leader??=n,this.jobs.add(n,e.ppid,e=>i.signal(e),r);let a=t?.onSignal((e,t)=>{e.pid===n&&i.signal(G[t])});return i.exited.then(e=>{this.live.delete(i),this.wasmByPid.delete(n),this.jobs.remove(n),a?.(),this.processConfig&&t?.exit(n,e)}),i}kill(e,t){if(e<0)return this.jobs.killGroup(-e,t);let n=this.wasmByPid.get(e);if(n)return t!==0&&n.signal(t),!0;let r=this.shellByPid.get(e);if(r)return t!==0&&r(t),!0;let i=this.processConfig?.processManager;if(!i)return!1;if(t===0)return i.get(e)!==null;let a=$n.get(t);return a===void 0?!1:this.gate?this.killOutside(e,a):i.signal(e,a)}async killOutside(e,t){if(await this.gate?.(`kill`,[`-${t.slice(3)}`,String(e)],{}))throw new m(`EPERM`);return this.processConfig?.processManager.signal(e,t)??!1}signalAll(e){for(let t of this.live)t.signal(e)}signalTerminal(e,t){this.leader!==void 0&&this.jobs.signalForeground(e,this.leader,t)}killAll(e){for(let t of this.live)t.kill(e);for(let e of this.shellChildren)e.abort()}async resolve(e,t,n){let r=X.exec(e)?.[1]??(e.includes(`/`)?void 0:e);if(r!==void 0){let e=await this.commands(),t=e.get(r);if(t)return{glue:t.glue,module:t.wasm,argv0:t.argv0,defaults:t.env};let n=r===`sh`?e.get(`bash`):void 0;return n&&{glue:n.glue,module:n.wasm,argv0:`sh`,defaults:n.env}}let i=this.ctx.fs.resolvePath(n,e),a=tr(i);if(!(!await this.ctx.fs.exists(i)||!await this.ctx.fs.exists(a)))return{glue:i,module:a,argv0:Z(t||e)}}forker(e,t){return async(n,r)=>ur(this.start({...t,cwd:n.cwd??t.cwd,fds:r,ppid:e,fork:n}))}async interpreted(e){if(!e.file.includes(`/`)||X.test(e.file))return;let t;try{t=(await this.ctx.fs.readFileBuffer(this.ctx.fs.resolvePath(e.cwd,e.file))).subarray(0,256)}catch{return}if(t[0]!==35||t[1]!==33)return;let[n,...r]=new TextDecoder().decode(t).slice(2).split(`
12
- `)[0].trim().split(/[ \t]+/);if(!n)return;let i=await this.resolve(n,n,e.cwd);if(!i)return;let a=r.join(` `);return{target:i,file:n,args:[...a?[a]:[],e.file,...e.argv.slice(1)]}}spawner(e){return async(t,n)=>{let r=await this.resolve(t.file,t.argv[0]??t.file,t.cwd),i=r?{target:r,file:t.file,args:t.argv.slice(1)}:await this.interpreted(t);if(!i)return this.runShellChild(t,n,e);let a=await this.gate?.(nr(i.file),i.args,t.env);return a?this.deniedChild(t,n,e,a):ur(await this.launch({...i.target,args:i.args,env:t.env,cwd:t.cwd,fds:n,ppid:e}))}}deniedChild(e,t,n,r){let{pid:i}=this.register(`shell`,e.argv,e.cwd,e.env,n),a=(async()=>(await Q(t,2,new TextEncoder().encode(r.stderr)),await t.closeAll(),r.exitCode))();return this.processConfig&&a.then(e=>this.processConfig?.processManager.exit(i,e)),{pid:i,exited:a}}runShellChild(e,t,n){let r=this.ctx.exec;if(!r)throw t.closeAll().catch(()=>void 0),new K(`ENOSYS`);let{pid:i,abort:a}=this.register(`shell`,e.argv,e.cwd,e.env,n),o=a??new AbortController,s=()=>o.abort();this.ctx.signal?.addEventListener(`abort`,s,{once:!0}),this.ctx.signal?.aborted&&s();let c,l=e=>{gn(e)===`terminate`&&(c??=e,o.abort())};this.shellChildren.add(o),this.shellByPid.set(i,l),this.jobs.add(i,n,l);let u=this.processConfig?.processManager.onSignal((e,t)=>{e.pid===i&&l(G[t])}),d=(async()=>{try{let n=$(t,0),i=t.has(0)&&!n?await cr(t.get(0)):new Uint8Array,a=await r(e.file,{args:e.argv.slice(1),cwd:e.cwd,env:{...e.env,...lr(t)},replaceEnv:!0,stdin:or(i),stdinKind:`bytes`,signal:o.signal});return await Q(t,1,a.stdoutKind===`bytes`?sr(a.stdout):new TextEncoder().encode(a.stdout)),await Q(t,2,new TextEncoder().encode(a.stderr)),a.exitCode}catch(n){let r=n instanceof Error?n.message:String(n);return await Q(t,2,new TextEncoder().encode(`${e.file}: ${r}\n`)),126}finally{await t.closeAll(),this.shellChildren.delete(o),this.shellByPid.delete(i),this.jobs.remove(i),u?.(),this.ctx.signal?.removeEventListener(`abort`,s)}})();return this.processConfig&&d.then(e=>this.processConfig?.processManager.exit(i,e)),{pid:i,exited:d,termsig:()=>c}}register(e,t,n,r,i){let a=this.processConfig;return a?a.processManager.spawn({kind:e,argv:t,cwd:n,env:r,owner:a.owner,ppid:i??a.getParentPid?.()}):{pid:er++}}};const fr=`usage: wasm [-t] [--argv0 NAME] [--module PATH] PROGRAM [ARGS...]
13
- wasm --list
14
- wasm --login
15
- `;function pr(e){let t={},n=0;for(;;){if(e[n]===`-t`){t.tty=!0,n+=1;continue}if(e[n]===`--login-prompt`){t.login=!0,n+=1;continue}if(e[n]!==`--argv0`&&e[n]!==`--module`)break;let r=e[n+1];if(r===void 0)return;e[n]===`--argv0`?t.argv0=r:t.module=r,n+=2}let r=e[n];if(!(!r||r.startsWith(`-`)))return{...t,program:r,args:e.slice(n+1)}}function mr(e,t){return t.commands?.()??ir(e)}function hr(e){if(!e)return()=>{};let t=new TextDecoder;return n=>{let r=t.decode(n,{stream:!0});r&&e(r)}}function gr(e,t,n,r){let i=[],a=e.limits?.maxOutputSize??268435456,c=0,l=!1,u=(e,n)=>r=>{if(c+=r.length,c>a){l=!0,t.killAll(1);return}e.push(r),n(r)},d=new o;return d.install(s(Dr(e))),d.install(h(u(i,hr(r)))),d.install(h(u(n,hr(r)))),{fds:d,collected:()=>({stdout:Er(i),note:l?`wasm: output exceeded ${a} bytes; stopped\n`:``}),release:()=>{}}}function _r(e,t){let n=new Sn({write:t=>e.write(t)},e=>t.signalTerminal(n,e));n.setSize(e.cols,e.rows),e.onInput(e=>n.receive(e)),e.onResize((e,t)=>n.resize(e,t));let r=n.file(),i=new o;return i.installAt(0,r),i.installAt(1,r.retain()),i.installAt(2,r.retain()),{fds:i,collected:()=>({stdout:``,note:``}),release:()=>e.release()}}function vr(e,t){return Object.fromEntries(Object.entries(e).filter(([e,n])=>e in t||!tn(e,n)))}async function yr(e,t){let n=H(t.processConfig?.owner);return nn(e.fs,Yt(br(e),n),n)}function br(e){return e.exportedEnv?.HOME??e.env.get(`HOME`)??`/tmp`}async function xr(e,t){let n=await t.gitIdentity?.().catch(()=>void 0);return en(e.fs,Qt(br(e)),n)}function Sr(e,t,n){let r={...n,...e.exportedEnv??Object.fromEntries(e.env)};return t.tty&&(!r.TERM||r.TERM===`dumb`)&&(r.TERM=`xterm-256color`,r.COLORTERM??=`truecolor`),t.login&&(r.PS1??=`\\w $ `,r.PROMPT_COMMAND??=de),r}async function Cr(e,t){let n={stdout:``,stderr:``,exitCode:125};if((e.exportedEnv?.SLICC_SHELL??e.env.get(`SLICC_SHELL`))===`just-bash`||!t.terminal||typeof SharedArrayBuffer!=`function`||!(await mr(e,t)).has(`bash`))return n;let r=s(new TextEncoder().encode(fe));return kr([`-t`,`--login-prompt`,`bash`,`--rcfile`,`/dev/fd/98`,`-i`],e,{...t,fds:[[98,r]]})}function wr(e){let t=[...e.values()].sort((e,t)=>e.name.localeCompare(t.name)),n=Math.max(0,...t.map(e=>e.name.length));return t.map(e=>`${e.name.padEnd(n)} ${e.pkg}\n`).join(``)}async function Tr(e,t,n){if(n.program.includes(`/`)||await e.fs.exists(e.fs.resolvePath(e.cwd,n.program)))return n;let r=(await t.commands()).get(n.program);return r?{...n,argv0:n.argv0??r.argv0,module:n.module??r.wasm,program:r.glue,defaults:r.env}:n}function Er(e){let t=``;for(let n of e)for(let e=0;e<n.length;e+=32768)t+=String.fromCharCode(...n.subarray(e,e+32768));return t}function Dr(e){let t=ue(e.stdin),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e)&255;return n}function Or(e,t){return e.defaults??t.defaults}async function kr(e,t,n={}){let{processConfig:r,terminal:i}=n;if(e[0]===`--help`||e[0]===`-h`)return{stdout:fr,stderr:``,exitCode:0};if(e[0]===`--login`&&e.length===1)return Cr(t,n);if(e[0]===`--list`&&e.length===1)return{stdout:wr(await mr(t,n)),stderr:``,exitCode:0};let a=pr(e);if(!a)return{stdout:``,stderr:fr,exitCode:2};if(typeof SharedArrayBuffer!=`function`)return{stdout:``,stderr:`wasm: the wasm realm needs SharedArrayBuffer, which this page lacks (it is not cross-origin isolated)
16
- `,exitCode:126};let o=[],s=e=>{o.push(new TextEncoder().encode(`wasm: ${e}\n`))},c=new dr(t,r,e=>s(e),n.gate,n.commands),l=await Tr(t,c,a),u=t.fs.resolvePath(t.cwd,l.program),d;if(l.tty){let e=i?.lease();if(!e)return{stdout:``,stderr:`wasm: -t: no terminal to lend (only the panel terminal has one)
17
- `,exitCode:1};d=_r(e,c),s=t=>e.write(new TextEncoder().encode(`wasm: ${t}\r\n`))}else d=gr(t,c,o,n.onOutput);for(let[e,t]of n.fds??[])d.fds.installAt(e,t),d.fds.setCloseOnExec(e);let{fds:f}=d,p;try{p=await c.launch({glue:u,module:l.module?t.fs.resolvePath(t.cwd,l.module):tr(u),argv0:l.argv0??u.slice(u.lastIndexOf(`/`)+1).replace(/\.js$/,``),args:l.args,env:Sr(t,l,{...Wt(),...await yr(t,n),...await xr(t,n)}),defaults:Or(l,n),cwd:t.cwd,fds:f,signal:t.signal})}catch(e){if(d.release(),t.signal?.aborted)return{stdout:``,stderr:``,exitCode:130};let n=e instanceof Error?e.message:String(e);return{stdout:``,stderr:`wasm: ${l.program}: ${n}\n`,exitCode:127}}let m=()=>c.killAll(130);t.signal?.addEventListener(`abort`,m,{once:!0}),t.signal?.aborted&&m();try{let e=await p.exited,{stdout:t,note:n}=d.collected();return n&&o.push(new TextEncoder().encode(n)),{stdout:t,stderr:new TextDecoder().decode(Ar(o)),exitCode:e,stdoutKind:`bytes`}}finally{d.release(),t.signal?.removeEventListener(`abort`,m)}}function Ar(e){let t=e.reduce((e,t)=>e+t.length,0),n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}export{kr as runWasmCommand,vr as withoutRealmDefaults};
@@ -1 +0,0 @@
1
- function e(){return{version:`6.218.1`,releasedAt:`2026-09-29T16:44:02Z`,buildId:`6.218.1-mumwownr`}}let t=null;function n(e){t=e}function r(){return t}export{e as n,n as r,r as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./wc-onboarding-lNp5TvRG.js";export{e as hasOnboardingFinalLickInHistory};