sliccy 6.255.4 → 6.255.6

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 (149) hide show
  1. package/dist/ui/.vite/manifest.json +186 -186
  2. package/dist/ui/assets/{SKILL-BsfbaE8W.js → SKILL-BbHV9IdF.js} +1 -1
  3. package/dist/ui/assets/{account-store-CzjRbfrU.js → account-store-Bm5rV5bR.js} +1 -1
  4. package/dist/ui/assets/{account-store-VtBgtCSL.js → account-store-CGTI5JyB.js} +1 -1
  5. package/dist/ui/assets/{adobe-Ch41jsPJ.js → adobe-D8NKj9Lc.js} +1 -1
  6. package/dist/ui/assets/{adobe-B7RRrD_z.js → adobe-DXRjPXh-.js} +1 -1
  7. package/dist/ui/assets/{agent-panels-B7-IZLRr.js → agent-panels-D7tgyYWy.js} +1 -1
  8. package/dist/ui/assets/{almost-bash-shell-headless-C5P1kXhX.js → almost-bash-shell-headless-DzlcSLk2.js} +18 -18
  9. package/dist/ui/assets/{apply-layout-NOC4k99y.js → apply-layout-ou-T3jIV.js} +1 -1
  10. package/dist/ui/assets/{azure-openai-Cjxr4QPn.js → azure-openai-B0E6TI5M.js} +1 -1
  11. package/dist/ui/assets/{azure-openai-CbDlviKP.js → azure-openai-XPfUAfpO.js} +1 -1
  12. package/dist/ui/assets/{bunny-probe-Cx0R5h4b.js → bunny-probe-Bq1N-AVN.js} +1 -1
  13. package/dist/ui/assets/{bunny-run-BIyo8o_t.js → bunny-run-DyJVGqsu.js} +1 -1
  14. package/dist/ui/assets/{cdp-zOmBIzaT.js → cdp-J5SoPsWY.js} +1 -1
  15. package/dist/ui/assets/{cerebras-F8gejcGi.js → cerebras-BEqiADeR.js} +1 -1
  16. package/dist/ui/assets/{cerebras-Zl13ZDsi.js → cerebras-Ccw0or7n.js} +1 -1
  17. package/dist/ui/assets/{composer-speech-C-u_tJZO.js → composer-speech-Cby7nHwA.js} +1 -1
  18. package/dist/ui/assets/{connect-surface-s5qO3FNl.js → connect-surface-DOFduE-F.js} +1 -1
  19. package/dist/ui/assets/{directed-approval-CO12rCpK.js → directed-approval-DrvtWkX-.js} +1 -1
  20. package/dist/ui/assets/{emscripten-vfs-hook-C7tA0vFO.js → emscripten-vfs-hook-CoXUWKlJ.js} +1 -1
  21. package/dist/ui/assets/{ensure-speech-assets-Cv28XxlO.js → ensure-speech-assets-CwmdjGtX.js} +1 -1
  22. package/dist/ui/assets/{exporter-deps-84yTrW5d.js → exporter-deps-C5qCRo2d.js} +1 -1
  23. package/dist/ui/assets/{fast-path-BpH0YWPx.js → fast-path-hqxZk1HF.js} +1 -1
  24. package/dist/ui/assets/{frozen-archive-writer-DYM-47PW.js → frozen-archive-writer-0S3P4nFk.js} +1 -1
  25. package/dist/ui/assets/{frozen-session-delete-DpCETup0.js → frozen-session-delete-C9zumsxF.js} +1 -1
  26. package/dist/ui/assets/{frozen-session-identity-BXlKz97M.js → frozen-session-identity-39ICqjb-.js} +1 -1
  27. package/dist/ui/assets/{gelatiere-unit-B-fv5yea.js → gelatiere-unit-BMWHMgfb.js} +1 -1
  28. package/dist/ui/assets/{github-CtkTzMdK.js → github-C4joKOwp.js} +1 -1
  29. package/dist/ui/assets/{github-VZZ29TDt.js → github-CemJgADy.js} +1 -1
  30. package/dist/ui/assets/{github-copilot-CwGEbPDM.js → github-copilot-DhRTIu1h.js} +1 -1
  31. package/dist/ui/assets/{github-copilot-CPak07uM.js → github-copilot-Dz20rFyJ.js} +1 -1
  32. package/dist/ui/assets/{hear-CX6dGgpE.js → hear-C2kjSUBU.js} +1 -1
  33. package/dist/ui/assets/{installer-c3P1y6c8.js → installer-DjaZMPkj.js} +4 -4
  34. package/dist/ui/assets/ipk-mamba-_UczwftL.js +46 -0
  35. package/dist/ui/assets/{js-realm-worker-GUIiBgXJ.js → js-realm-worker-FcgiT6Ue.js} +2 -2
  36. package/dist/ui/assets/{jsh-executor-BwpKY1r_.js → jsh-executor-NuPwlPwq.js} +3 -3
  37. package/dist/ui/assets/{kernel-worker-40_1fMYG.js → kernel-worker-eYyVS1Sv.js} +9 -9
  38. package/dist/ui/assets/{lick-ws-bridge-BIYW-35E.js → lick-ws-bridge-1OVmPWd8.js} +1 -1
  39. package/dist/ui/assets/{lick-ws-bridge-qqHRWwwO.js → lick-ws-bridge-CWpk9NYk.js} +1 -1
  40. package/dist/ui/assets/{live-session-curation-mF0z_P6X.js → live-session-curation-BMyNpl0d.js} +1 -1
  41. package/dist/ui/assets/{live-session-curation-CXlXZy35.js → live-session-curation-Cadep_AD.js} +1 -1
  42. package/dist/ui/assets/{live-session-snapshot-DOaR-dJA.js → live-session-snapshot-BDftx3v5.js} +1 -1
  43. package/dist/ui/assets/{local-llm-DhHw1yfL.js → local-llm-9vO346P2.js} +1 -1
  44. package/dist/ui/assets/{local-llm-BeJAZNjs.js → local-llm-D7nXyEq5.js} +1 -1
  45. package/dist/ui/assets/{main-CKBsgWBx.js → main-DuumegMc.js} +3 -3
  46. package/dist/ui/assets/{main-cherry-swycFDpQ.js → main-cherry-C1qouu4w.js} +1 -1
  47. package/dist/ui/assets/{mcp-command-BochRUm0.js → mcp-command-B9Keprlb.js} +10 -10
  48. package/dist/ui/assets/{memory-curation-seam-Bf2vXDBs.js → memory-curation-seam-B3si3f9e.js} +1 -1
  49. package/dist/ui/assets/{memory-health-Cnx5Gv97.js → memory-health-BeI0hZ5V.js} +1 -1
  50. package/dist/ui/assets/{memory-write-execute-CK0FA1Tf.js → memory-write-execute-DJtLzR6O.js} +1 -1
  51. package/dist/ui/assets/{merge-folded-cost-into-frozen-DxYDCg2W.js → merge-folded-cost-into-frozen-ot6IdNNE.js} +1 -1
  52. package/dist/ui/assets/{new-session-Cy7cLkxz.js → new-session-c43AO8i1.js} +2 -2
  53. package/dist/ui/assets/{oauth-bootstrap-CMjXsFxQ.js → oauth-bootstrap-DIcVqfcg.js} +2 -2
  54. package/dist/ui/assets/{onboarding-orchestrator-CrPQr9-l.js → onboarding-orchestrator-44ob5iJU.js} +1 -1
  55. package/dist/ui/assets/{openai-codex-DloIj5Kb.js → openai-codex-CFZARYL-.js} +1 -1
  56. package/dist/ui/assets/{openai-codex-D9Pdm-DO.js → openai-codex-D9JWPGXf.js} +1 -1
  57. package/dist/ui/assets/{openrouter-BugU4FUc.js → openrouter-COeEjA-7.js} +1 -1
  58. package/dist/ui/assets/{openrouter-DrE27HTv.js → openrouter-DUkInejj.js} +1 -1
  59. package/dist/ui/assets/{openrouter-free-BYKdU__j.js → openrouter-free--2Ct-ZLy.js} +1 -1
  60. package/dist/ui/assets/{openrouter-free-QlUUc2CV.js → openrouter-free-BcTp0ZBN.js} +1 -1
  61. package/dist/ui/assets/{openrouter-oauth-CcxdmMiW.js → openrouter-oauth-C6xN6tOP.js} +1 -1
  62. package/dist/ui/assets/{openrouter-oauth-B8b5rIQz.js → openrouter-oauth-ku-jm0FU.js} +1 -1
  63. package/dist/ui/assets/{panel-rpc-handlers-mIvFA-PP.js → panel-rpc-handlers-Bg9J3k1L.js} +2 -2
  64. package/dist/ui/assets/{panelize-shell-CQsL61Se.js → panelize-shell-wC7J8-E5.js} +1 -1
  65. package/dist/ui/assets/{pi-edit-execution-DL8z0GuG.js → pi-edit-execution-D-Lc_BTt.js} +1 -1
  66. package/dist/ui/assets/{profile-export-deps-Cmfc-0t5.js → profile-export-deps-BEhZP-it.js} +2 -2
  67. package/dist/ui/assets/{provider-v0y0I0C6.js → provider-By07TFq2.js} +1 -1
  68. package/dist/ui/assets/{provider-dLg1CYt6.js → provider-Dc7YQzf1.js} +1 -1
  69. package/dist/ui/assets/{provider-settings-BZN7mU3t.js → provider-settings-CMQmA2Fm.js} +1 -1
  70. package/dist/ui/assets/provider-store-access-D4pMPZwT.js +1 -0
  71. package/dist/ui/assets/provider-store-access-n5ktI4VW.js +1 -0
  72. package/dist/ui/assets/{providers-CxC3IkmD.js → providers-BKPSCdv4.js} +2 -2
  73. package/dist/ui/assets/{providers-_suqM9AH.js → providers-CR2LfFSo.js} +1 -1
  74. package/dist/ui/assets/{quick-llm-Bt3wdnln.js → quick-llm-Dj4LXcWT.js} +1 -1
  75. package/dist/ui/assets/read-back-DsW7lsRQ.js +1 -0
  76. package/dist/ui/assets/{realm-inprocess-p_uf-aHP.js → realm-inprocess-Dcx4w28C.js} +2 -2
  77. package/dist/ui/assets/{realm-unhandled-rejections-BdD1pRLw.js → realm-unhandled-rejections-Cj7zjf66.js} +1 -1
  78. package/dist/ui/assets/{realm-unhandled-rejections-oK6AD2Nu.js → realm-unhandled-rejections-DhqnOt0b.js} +1 -1
  79. package/dist/ui/assets/{remote-terminal-view-Dt9bq0Tx.js → remote-terminal-view-D9kAyF4L.js} +2 -2
  80. package/dist/ui/assets/{restore-KY6mog6M.js → restore-B1niIEic.js} +1 -1
  81. package/dist/ui/assets/{run-D-i4AEOP.js → run-C-msPZK6.js} +1 -1
  82. package/dist/ui/assets/{run-B27RF7y5.js → run-C1jQodOF.js} +1 -1
  83. package/dist/ui/assets/{run-BgX0bGpt.js → run-CP8ZD2MA.js} +1 -1
  84. package/dist/ui/assets/{run-ZCDwc5tT.js → run-DTjryda0.js} +2 -2
  85. package/dist/ui/assets/{run-DR4kMTUq.js → run-DYDjMUGP.js} +2 -2
  86. package/dist/ui/assets/{run-B-qN-90o.js → run-Ds-D_Vog.js} +2 -2
  87. package/dist/ui/assets/{run-Dmxg7gCG.js → run-tvG4Gyiv.js} +2 -2
  88. package/dist/ui/assets/{serve-command-DZFHoXIR.js → serve-command-CxBghHkI.js} +2 -2
  89. package/dist/ui/assets/{serve-runtime-C8WGtboN.js → serve-runtime-3Ud6MBH1.js} +1 -1
  90. package/dist/ui/assets/{session-command-memory-DHW2-2GY.js → session-command-memory-DpWoJ-5j.js} +2 -2
  91. package/dist/ui/assets/{session-jsonl-CdBv2yqZ.js → session-jsonl-75gCtQ05.js} +1 -1
  92. package/dist/ui/assets/{session-search-index-BYEYU5MH.js → session-search-index-BRdSrQ1e.js} +1 -1
  93. package/dist/ui/assets/{setup-feature-flags-remote-P6FROcRm.js → setup-feature-flags-remote-DWup7Sua.js} +1 -1
  94. package/dist/ui/assets/{setup-model-catalog-CdOG-toL.js → setup-model-catalog-DAGaeNlQ.js} +1 -1
  95. package/dist/ui/assets/{silent-renew-backoff-ClAedN5j.js → silent-renew-backoff-CtcyLNAS.js} +1 -1
  96. package/dist/ui/assets/{skills-Buu7GuOS.js → skills-DaCxbClN.js} +1 -1
  97. package/dist/ui/assets/slicc-version-DM93JF22.js +1 -0
  98. package/dist/ui/assets/{soundscape-BYlS3XAI.js → soundscape-BW8o-hhl.js} +1 -1
  99. package/dist/ui/assets/{speak-BezQaVuw.js → speak-D411yqHl.js} +1 -1
  100. package/dist/ui/assets/{sprinkle-manager-ZfvEo0Lv.js → sprinkle-manager-D0uzrKgj.js} +1 -1
  101. package/dist/ui/assets/{sprinkle-renderer-DnVW1zfQ.js → sprinkle-renderer-CJWuHKM1.js} +1 -1
  102. package/dist/ui/assets/{src-fGiAR68L.js → src-DWA1MizA.js} +72 -72
  103. package/dist/ui/assets/{ssh-BWB-0psx.js → ssh-CAQr291h.js} +1 -1
  104. package/dist/ui/assets/{sudo-BoISWChx.js → sudo-uz68W9mE.js} +1 -1
  105. package/dist/ui/assets/{supervisor-C_62e4Z5.js → supervisor-DS-jlegs.js} +1 -1
  106. package/dist/ui/assets/{sync-dialog-XktspZV4.js → sync-dialog-D0DfmrO1.js} +1 -1
  107. package/dist/ui/assets/{transformers-env-Dbo8Jrid.js → transformers-env-iVfXzlAn.js} +1 -1
  108. package/dist/ui/assets/{tray-leader-B3iIBM1p.js → tray-leader-Dmg6xPnX.js} +1 -1
  109. package/dist/ui/assets/{tray-leave-runtime-NbZvO6fr.js → tray-leave-runtime-DPsdltku.js} +1 -1
  110. package/dist/ui/assets/{tray-sidecar-DvOifh-q.js → tray-sidecar-BRcLeDBc.js} +1 -1
  111. package/dist/ui/assets/{upgrade-detection-DyMiS4s0.js → upgrade-detection-zjVBvcLh.js} +1 -1
  112. package/dist/ui/assets/{upgrade-to-seven-D7ZywU3R.js → upgrade-to-seven-DPRmGGSp.js} +2 -2
  113. package/dist/ui/assets/{voice-reply-DSX8bpiJ.js → voice-reply-DrZBdx3t.js} +1 -1
  114. package/dist/ui/assets/{wc-attach-DL4g0RL4.js → wc-attach-Ce6x_CZ-.js} +2 -2
  115. package/dist/ui/assets/{wc-browser-BJaaPF4j.js → wc-browser-DGm8uhmq.js} +1 -1
  116. package/dist/ui/assets/{wc-computers-BbyXytAR.js → wc-computers-CGco6J5Y.js} +1 -1
  117. package/dist/ui/assets/{wc-detached-B3pj_CED.js → wc-detached-C7yJ_Br2.js} +1 -1
  118. package/dist/ui/assets/{wc-extension-B84vVG1K.js → wc-extension-C809ljDs.js} +2 -2
  119. package/dist/ui/assets/{wc-follower-B6GykhXJ.js → wc-follower-_Wai8wgR.js} +3 -3
  120. package/dist/ui/assets/{wc-follower-oauth-QiwSeK64.js → wc-follower-oauth-CDSlSPCn.js} +1 -1
  121. package/dist/ui/assets/{wc-gelatiere-dYARmTVA.js → wc-gelatiere-BxQvkSZW.js} +1 -1
  122. package/dist/ui/assets/{wc-live-CtcYQMbX.js → wc-live-BVBdk7gr.js} +5 -5
  123. package/dist/ui/assets/{wc-nav-C2S8T5hp.js → wc-nav-Xy3U2hmg.js} +2 -2
  124. package/dist/ui/assets/{wc-onboarding-BVfOLQYj.js → wc-onboarding-DluDDZPk.js} +2 -2
  125. package/dist/ui/assets/{wc-permissions-BiFWxdKB.js → wc-permissions-BaEmxxSZ.js} +2 -2
  126. package/dist/ui/assets/{wc-placeholder-BjS95cU_.js → wc-placeholder-CfNkEhIZ.js} +2 -2
  127. package/dist/ui/assets/{wc-profile-export-Dc5S7An7.js → wc-profile-export-CK3__Mq-.js} +3 -3
  128. package/dist/ui/assets/{wc-secret-request-Beog-iRr.js → wc-secret-request-DVLGjoUF.js} +1 -1
  129. package/dist/ui/assets/{wc-settings-BRILQhTd.js → wc-settings-DIX44s1R.js} +3 -3
  130. package/dist/ui/assets/{wc-shell-D2vt5Gl0.js → wc-shell-CjlL6ksj.js} +239 -239
  131. package/dist/ui/assets/{wc-shortcut-config-CAHbFsPI.js → wc-shortcut-config-BnfgONcQ.js} +1 -1
  132. package/dist/ui/assets/{wc-sprinkles-BbVKvr7k.js → wc-sprinkles-eMGvXR1q.js} +2 -2
  133. package/dist/ui/assets/{wc-transcript-export-DM4JQPF1.js → wc-transcript-export-B_yraj7B.js} +2 -2
  134. package/dist/ui/assets/{wc-tray-BooFXjgl.js → wc-tray-D2s4bNyp.js} +4 -4
  135. package/dist/ui/assets/welcome-detection-C5Q45wVX.js +1 -0
  136. package/dist/ui/assets/{whisper-session-Dw59jZ7T.js → whisper-session-D-sXuNAT.js} +2 -2
  137. package/dist/ui/assets/{xai-grok-BzmaEFAz.js → xai-grok-BH5QrwH2.js} +1 -1
  138. package/dist/ui/assets/{xai-grok-BVLzOMqQ.js → xai-grok-Cu5b6Yyo.js} +1 -1
  139. package/dist/ui/index.html +3 -3
  140. package/dist/ui/packages/webapp/index.html +3 -3
  141. package/dist/ui/packages/webapp/upgrade-to-seven.html +1 -1
  142. package/dist/ui/upgrade-to-seven.html +1 -1
  143. package/package.json +1 -1
  144. package/dist/ui/assets/file-modes-BkEydFQE.js +0 -1
  145. package/dist/ui/assets/ipk-mamba-VDJ25teM.js +0 -46
  146. package/dist/ui/assets/provider-store-access-C1MWKpiZ.js +0 -1
  147. package/dist/ui/assets/provider-store-access-CAxp4Ji_.js +0 -1
  148. package/dist/ui/assets/slicc-version-D2CCbBHi.js +0 -1
  149. package/dist/ui/assets/welcome-detection-VeKV2Vfz.js +0 -1
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-shell-D2vt5Gl0.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-BLdHbfdN.js","assets/renamed-providers-CKF5I4-o.js","assets/dictation-priming-BHJC0hch.js","assets/mime-types-D0xZwlMO.js","assets/base64-ELzoYfwP.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-CzjRbfrU.js","assets/core-DoHWT79Y.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/feature-flags-DDJdMcuw.js","assets/proxied-fetch-2sdz8vNB.js","assets/api-endpoint-CNqFa-M3.js","assets/secret-topology-BuXN_6_0.js","assets/secrets-bridge-client-BtmN7fip.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/image-markers-4eaAm9QS.js","assets/providers-CxC3IkmD.js","assets/stored-accounts-ChNHYF68.js","assets/bedrock-camp-compat-D6dUCn_T.js","assets/bedrock-camp-extra-models-COVvjLB5.js","assets/claude-model-version-3MWQoaco.js","assets/sha256-DynDhwRL.js","assets/telemetry-kqkj0A7x.js","assets/GELATIERE-CLK_MA5a.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-D1QuzCd5.js","assets/message-envelope-BPSSjJbW.js","assets/agent-message-to-chat-BiZHDYFR.js","assets/wc-shell-WkeczD9x.css"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-shell-CjlL6ksj.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-BLdHbfdN.js","assets/renamed-providers-CKF5I4-o.js","assets/dictation-priming-BHJC0hch.js","assets/mime-types-D0xZwlMO.js","assets/base64-ELzoYfwP.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-Bm5rV5bR.js","assets/core-DoHWT79Y.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/feature-flags-DDJdMcuw.js","assets/proxied-fetch-2sdz8vNB.js","assets/api-endpoint-CNqFa-M3.js","assets/secret-topology-BuXN_6_0.js","assets/secrets-bridge-client-BtmN7fip.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/image-markers-4eaAm9QS.js","assets/providers-BKPSCdv4.js","assets/stored-accounts-ChNHYF68.js","assets/bedrock-camp-compat-D6dUCn_T.js","assets/bedrock-camp-extra-models-COVvjLB5.js","assets/claude-model-version-3MWQoaco.js","assets/sha256-DynDhwRL.js","assets/telemetry-kqkj0A7x.js","assets/GELATIERE-CLK_MA5a.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-D1QuzCd5.js","assets/message-envelope-BPSSjJbW.js","assets/agent-message-to-chat-BiZHDYFR.js","assets/wc-shell-WkeczD9x.css"])))=>i.map(i=>d[i]);
2
2
  import"./core-DoHWT79Y.js";import{t as e}from"./preload-helper-BLdHbfdN.js";import{t}from"./permissions-surface-registry-CilCRwhh.js";import{storePendingHandle as n}from"./mount-picker-popup-LB-YHulU.js";import{r,t as i}from"./hid-device-registry-B2R-0rNt.js";import"./browser-OXhgs9Cl.js";import{a,n as o}from"./serial-port-registry-CCqklAEr.js";import{a as s,t as c}from"./usb-device-registry--JwKRTYp.js";import"./usb-operations-BDj7jaXj.js";import{t as l}from"./terminal-session-client-DmE-iBjP.js";function u(e,t){let n=[],r=new Map,i=new Set;for(let a=0;a<e.length;a++){let o=e[a];o.startsWith(`-`)?t.has(o)?r.set(o,e[++a]??``):i.add(o):n.push(o)}return{positionals:n,flags:r,bools:i}}new TextDecoder(`utf-8`,{fatal:!1}),new TextEncoder;var d=new Set([`--vid`,`--pid`,`--baud`,`--data-bits`,`--stop-bits`,`--parity`,`--flow-control`,`--buffer-size`,`--bytes`,`--until`,`--timeout-ms`,`--dtr`,`--rts`,`--break`,`--__resolved`]);function f(e){return u(e,d)}function p(e,t){let n=/^0x/i.test(e)?parseInt(e,16):parseInt(e,10);if(!Number.isFinite(n)||Number.isNaN(n))throw Error(`invalid ${t}: '${e}'`);return n}function m(e){let t={};return e.has(`--vid`)&&(t.usbVendorId=p(e.get(`--vid`),`vid`)),e.has(`--pid`)&&(t.usbProductId=p(e.get(`--pid`),`pid`)),Object.keys(t).length>0?[t]:[]}`${o}${o}`;var h=new Set([`--port`,`--baud`,`--vid`,`--pid`]),g=115200;function _(e){return u(e,h)}`${g}`;var v=new Set([`--vid`,`--pid`,`--usage-page`,`--usage`,`--__resolved`,`--timeout`]);function y(e){return u(e,v)}function b(e,t){let n=/^0x/i.test(e)?parseInt(e,16):parseInt(e,10);if(!Number.isFinite(n)||Number.isNaN(n))throw Error(`invalid ${t}: '${e}'`);return n}function x(e){let t={};return e.has(`--vid`)&&(t.vendorId=b(e.get(`--vid`),`vid`)),e.has(`--pid`)&&(t.productId=b(e.get(`--pid`),`pid`)),e.has(`--usage-page`)&&(t.usagePage=b(e.get(`--usage-page`),`usage-page`)),e.has(`--usage`)&&(t.usage=b(e.get(`--usage`),`usage`)),Object.keys(t).length>0?[t]:[]}`${i}`;var S=new Set([`--vid`,`--pid`,`--class`,`--subclass`,`--protocol`,`--serial`,`--request-type`,`--recipient`,`--request`,`--value`,`--index`,`--__resolved`]);function C(e){return u(e,S)}function w(e,t){let n=/^0x/i.test(e)?parseInt(e,16):parseInt(e,10);if(!Number.isFinite(n)||Number.isNaN(n))throw Error(`invalid ${t}: '${e}'`);return n}function T(e){let t={};return e.has(`--vid`)&&(t.vendorId=w(e.get(`--vid`),`vid`)),e.has(`--pid`)&&(t.productId=w(e.get(`--pid`),`pid`)),e.has(`--class`)&&(t.classCode=w(e.get(`--class`),`class`)),e.has(`--subclass`)&&(t.subclassCode=w(e.get(`--subclass`),`subclass`)),e.has(`--protocol`)&&(t.protocolCode=w(e.get(`--protocol`),`protocol`)),e.has(`--serial`)&&(t.serialNumber=e.get(`--serial`)),Object.keys(t).length>0?[t]:[]}`${c}`;var E=`\x1B]7777;`,D=/\x1b\]7777;(\d+)\x07/g;String.raw`printf '\033]7777;%s\007' "$?"`,[`if [ -f ~/.bashrc ]; then . ~/.bashrc; fi`,`exec 98<&-`,``].join(`
3
3
  `);function O(e){let t=e.replace(/\r\n/g,`
4
4
  `),n=t.indexOf(`
@@ -6,7 +6,7 @@ import"./core-DoHWT79Y.js";import{t as e}from"./preload-helper-BLdHbfdN.js";impo
6
6
  `),this.prompt=e,this.line=[],this.cursor=0,this.historyIndex=this.history.length,this.draft=``,this.anchorRow=this.display.getCursor().row,this.display.write(e),new Promise((e,t)=>{this.resolve=e,this.reject=t})}abort(e){this.reject?.(e),this.resolve=null,this.reject=null}setLine(e){this.isReading&&(this.line=[...e],this.cursor=this.line.length,this.redraw())}insert(e){if(!this.isReading||!e)return;let t=[...e.replace(/[\r\n\x1b]/g,``)];this.line.splice(this.cursor,0,...t),this.cursor+=t.length,this.redraw()}list(e){if(!this.isReading)return;let t=this.cursor;this.cursor=this.line.length,this.redraw(),this.display.write(`\r\n${e.join(` `)}\r\n`),this.anchorRow=this.display.getCursor().row,this.cursor=t,this.redraw()}accept(){if(!this.resolve)return;this.cursor=this.line.length,this.redraw();let e=this.text;this.display.write(`\r
7
7
  `),e.trim()&&this.history.at(-1)!==e&&(this.history.push(e),this.history.length>A&&this.history.shift());let t=this.resolve;this.resolve=null,this.reject=null,t(e)}cancel(){if(!this.resolve)return;this.cursor=this.line.length,this.redraw(),this.display.write(`^C\r
8
8
  `);let e=this.resolve;this.resolve=null,this.reject=null,e(``)}feed(e){if(this.isReading)switch(e){case`\r`:case`
9
- `:this.accept();return;case``:this.cancel();return;case``:case`\b`:this.cursor>0&&(this.line.splice(--this.cursor,1),this.redraw());return;case`\x1B[3~`:this.cursor<this.line.length&&(this.line.splice(this.cursor,1),this.redraw());return;case`\x1B[D`:case`\x1BOD`:this.cursor=Math.max(0,this.cursor-1),this.redraw();return;case`\x1B[C`:case`\x1BOC`:this.cursor=Math.min(this.line.length,this.cursor+1),this.redraw();return;case`\x1B[H`:case`\x1BOH`:case``:this.cursor=0,this.redraw();return;case`\x1B[F`:case`\x1BOF`:case``:this.cursor=this.line.length,this.redraw();return;case`\x1B[A`:case`\x1BOA`:this.navigate(-1);return;case`\x1B[B`:case`\x1BOB`:this.navigate(1);return;case``:this.line.splice(0,this.cursor),this.cursor=0,this.redraw();return;case`\v`:this.line.splice(this.cursor),this.redraw();return;case``:{let e=this.cursor;for(;e>0&&/\s/.test(this.line[e-1]??``);)e--;for(;e>0&&!/\s/.test(this.line[e-1]??``);)e--;this.line.splice(e,this.cursor-e),this.cursor=e,this.redraw();return}default:!e.includes(`\x1B`)&&!/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/.test(e)&&this.insert(e.replace(/[\r\n\t]+/g,` `))}}navigate(e){e<0&&this.historyIndex===0||e>0&&this.historyIndex===this.history.length||(this.historyIndex===this.history.length&&(this.draft=this.text),this.historyIndex+=e,this.line=[...this.history[this.historyIndex]??this.draft],this.cursor=this.line.length,this.redraw())}redraw(){let{row:e}=this.display.getCursor(),t=this.display.getScrollbackCount(),n=e-this.anchorRow;n>0&&this.display.write(`\x1b[${n}A`),this.display.write(`\r\x1B[0J`),this.display.write(this.prompt+this.beforeCursor),this.display.write(`\x1B7`),this.display.write(this.line.slice(this.cursor).join(``)),this.display.write(`\x1B8`),this.anchorRow=Math.max(0,this.anchorRow-(this.display.getScrollbackCount()-t))}},M=`\x1B[34m/\x1B[0m \x1B[90m$\x1B[0m `,N=class{options;client;terminal=null;terminalHost=null;previewHost=null;previewUrls=[];hasPreview=!1;previewStateListener=null;resizeObserver=null;rejectTerminalReady=null;editor=null;disposed=!1;programmaticResolve=null;isExecuting=!1;ptyMode=!1;loginShell=!1;loginSawPty=!1;marks=new k;settleSession=()=>{};sessionSettled=new Promise(e=>{this.settleSession=e});reportedSize=``;suppressOutput=!1;tabBusy=!1;pendingTabInput=[];constructor(e){this.options=e;let t=e.sid??`panel-terminal-${Date.now()}`;this.client=new l({client:e.client,sid:t,onEvent:e=>this.handleEvent(e)})}async mount(t){if(await e(()=>import(`./wc-shell-D2vt5Gl0.js`).then(e=>e.N),__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])),this.disposed)return;t.replaceChildren(),this.terminalHost=document.createElement(`div`),this.terminalHost.className=`terminal-panel__terminal-host`,t.appendChild(this.terminalHost),this.previewHost=document.createElement(`div`),this.previewHost.className=`terminal-panel__preview`,t.appendChild(this.previewHost);let n=document.createElement(`slicc-terminal`);n.hideHeader=!0,n.style.width=`100%`,n.style.height=`100%`,this.terminal=n;let r=new Promise((e,t)=>{let r=()=>{n.removeEventListener(`terminal-ready`,i),n.removeEventListener(`terminal-error`,a),this.rejectTerminalReady=null},i=()=>{r(),e()},a=e=>{r(),t(e.detail)};this.rejectTerminalReady=e=>{r(),t(e)},n.addEventListener(`terminal-ready`,i),n.addEventListener(`terminal-error`,a)});n.addEventListener(`terminal-data`,e=>{this.handleTerminalData(e.detail)}),this.terminalHost.appendChild(n),await r,!this.disposed&&(n.fit(),this.editor=new j({write:e=>n.write(e),getCursor:()=>n.terminal?.bridge?.getCursor()??{row:0,col:0},getScrollbackCount:()=>n.terminal?.bridge?.getScrollbackCount()??0}),this.resizeObserver=new ResizeObserver(()=>this.refit()),this.resizeObserver.observe(this.terminalHost),await this.client.open({cwd:this.options.cwd,env:this.options.env}),this.startSession(n))}async startSession(e){let t=await this.runLoginShell();this.disposed||(t||(e.writeln(`\x1B[1mslicc\x1B[0m \x1B[90mshell (kernel)\x1B[0m`),e.writeln(`\x1B[90mType "help" for available commands.\x1B[0m`),e.writeln(``)),this.runPromptLoop(),this.settleSession())}async runLoginShell(){this.loginShell=!0,this.loginSawPty=!1;let e=await this.runRemote(`wasm --login`,{discardCapturedOutput:!0});return this.loginShell=!1,this.marks.end(),!this.loginSawPty&&e.exitCode===125?null:(this.terminal?.writeln(`\x1b[90mbash exited (${e.exitCode}); this is the slicc shell. \`wasm --login\` starts bash again.\x1b[0m`),e)}refit(){this.terminal?.fit(),this.reportSize()}reportSize(){let e=this.terminal?.terminal;if(!e)return;let t=`${e.cols}x${e.rows}`;t!==this.reportedSize&&(this.reportedSize=t,this.client.resize(e.cols,e.rows))}clearTerminal(){this.terminal?.clear()}async executeCommandInTerminal(e){let t=e.trim();if(!t)return{stdout:``,stderr:``,exitCode:0};if(this.editor&&!(this.loginShell&&this.ptyMode)&&await this.sessionSettled,this.loginShell&&this.ptyMode)return this.typeIntoLoginShell(t);if(!this.terminal||!this.editor)return this.client.exec(t);if(this.isExecuting||this.programmaticResolve||!this.editor.isReading||this.editor.text)return{stdout:``,stderr:`terminal is busy; finish current input first
9
+ `:this.accept();return;case``:this.cancel();return;case``:case`\b`:this.cursor>0&&(this.line.splice(--this.cursor,1),this.redraw());return;case`\x1B[3~`:this.cursor<this.line.length&&(this.line.splice(this.cursor,1),this.redraw());return;case`\x1B[D`:case`\x1BOD`:this.cursor=Math.max(0,this.cursor-1),this.redraw();return;case`\x1B[C`:case`\x1BOC`:this.cursor=Math.min(this.line.length,this.cursor+1),this.redraw();return;case`\x1B[H`:case`\x1BOH`:case``:this.cursor=0,this.redraw();return;case`\x1B[F`:case`\x1BOF`:case``:this.cursor=this.line.length,this.redraw();return;case`\x1B[A`:case`\x1BOA`:this.navigate(-1);return;case`\x1B[B`:case`\x1BOB`:this.navigate(1);return;case``:this.line.splice(0,this.cursor),this.cursor=0,this.redraw();return;case`\v`:this.line.splice(this.cursor),this.redraw();return;case``:{let e=this.cursor;for(;e>0&&/\s/.test(this.line[e-1]??``);)e--;for(;e>0&&!/\s/.test(this.line[e-1]??``);)e--;this.line.splice(e,this.cursor-e),this.cursor=e,this.redraw();return}default:!e.includes(`\x1B`)&&!/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/.test(e)&&this.insert(e.replace(/[\r\n\t]+/g,` `))}}navigate(e){e<0&&this.historyIndex===0||e>0&&this.historyIndex===this.history.length||(this.historyIndex===this.history.length&&(this.draft=this.text),this.historyIndex+=e,this.line=[...this.history[this.historyIndex]??this.draft],this.cursor=this.line.length,this.redraw())}redraw(){let{row:e}=this.display.getCursor(),t=this.display.getScrollbackCount(),n=e-this.anchorRow;n>0&&this.display.write(`\x1b[${n}A`),this.display.write(`\r\x1B[0J`),this.display.write(this.prompt+this.beforeCursor),this.display.write(`\x1B7`),this.display.write(this.line.slice(this.cursor).join(``)),this.display.write(`\x1B8`),this.anchorRow=Math.max(0,this.anchorRow-(this.display.getScrollbackCount()-t))}},M=`\x1B[34m/\x1B[0m \x1B[90m$\x1B[0m `,N=class{options;client;terminal=null;terminalHost=null;previewHost=null;previewUrls=[];hasPreview=!1;previewStateListener=null;resizeObserver=null;rejectTerminalReady=null;editor=null;disposed=!1;programmaticResolve=null;isExecuting=!1;ptyMode=!1;loginShell=!1;loginSawPty=!1;marks=new k;settleSession=()=>{};sessionSettled=new Promise(e=>{this.settleSession=e});reportedSize=``;suppressOutput=!1;tabBusy=!1;pendingTabInput=[];constructor(e){this.options=e;let t=e.sid??`panel-terminal-${Date.now()}`;this.client=new l({client:e.client,sid:t,onEvent:e=>this.handleEvent(e)})}async mount(t){if(await e(()=>import(`./wc-shell-CjlL6ksj.js`).then(e=>e.N),__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])),this.disposed)return;t.replaceChildren(),this.terminalHost=document.createElement(`div`),this.terminalHost.className=`terminal-panel__terminal-host`,t.appendChild(this.terminalHost),this.previewHost=document.createElement(`div`),this.previewHost.className=`terminal-panel__preview`,t.appendChild(this.previewHost);let n=document.createElement(`slicc-terminal`);n.hideHeader=!0,n.style.width=`100%`,n.style.height=`100%`,this.terminal=n;let r=new Promise((e,t)=>{let r=()=>{n.removeEventListener(`terminal-ready`,i),n.removeEventListener(`terminal-error`,a),this.rejectTerminalReady=null},i=()=>{r(),e()},a=e=>{r(),t(e.detail)};this.rejectTerminalReady=e=>{r(),t(e)},n.addEventListener(`terminal-ready`,i),n.addEventListener(`terminal-error`,a)});n.addEventListener(`terminal-data`,e=>{this.handleTerminalData(e.detail)}),this.terminalHost.appendChild(n),await r,!this.disposed&&(n.fit(),this.editor=new j({write:e=>n.write(e),getCursor:()=>n.terminal?.bridge?.getCursor()??{row:0,col:0},getScrollbackCount:()=>n.terminal?.bridge?.getScrollbackCount()??0}),this.resizeObserver=new ResizeObserver(()=>this.refit()),this.resizeObserver.observe(this.terminalHost),await this.client.open({cwd:this.options.cwd,env:this.options.env}),this.startSession(n))}async startSession(e){let t=await this.runLoginShell();this.disposed||(t||(e.writeln(`\x1B[1mslicc\x1B[0m \x1B[90mshell (kernel)\x1B[0m`),e.writeln(`\x1B[90mType "help" for available commands.\x1B[0m`),e.writeln(``)),this.runPromptLoop(),this.settleSession())}async runLoginShell(){this.loginShell=!0,this.loginSawPty=!1;let e=await this.runRemote(`wasm --login`,{discardCapturedOutput:!0});return this.loginShell=!1,this.marks.end(),!this.loginSawPty&&e.exitCode===125?null:(this.terminal?.writeln(`\x1b[90mbash exited (${e.exitCode}); this is the slicc shell. \`wasm --login\` starts bash again.\x1b[0m`),e)}refit(){this.terminal?.fit(),this.reportSize()}reportSize(){let e=this.terminal?.terminal;if(!e)return;let t=`${e.cols}x${e.rows}`;t!==this.reportedSize&&(this.reportedSize=t,this.client.resize(e.cols,e.rows))}clearTerminal(){this.terminal?.clear()}async executeCommandInTerminal(e){let t=e.trim();if(!t)return{stdout:``,stderr:``,exitCode:0};if(this.editor&&!(this.loginShell&&this.ptyMode)&&await this.sessionSettled,this.loginShell&&this.ptyMode)return this.typeIntoLoginShell(t);if(!this.terminal||!this.editor)return this.client.exec(t);if(this.isExecuting||this.programmaticResolve||!this.editor.isReading||this.editor.text)return{stdout:``,stderr:`terminal is busy; finish current input first
10
10
  `,exitCode:1};let n=new Promise(e=>{this.programmaticResolve=e});return this.editor.setLine(t),this.editor.accept(),n}typeIntoLoginShell(e){if(this.marks.pending)return Promise.resolve({stdout:``,stderr:`terminal is busy
11
11
  `,exitCode:1});let t=this.marks.seen?this.marks.expect():Promise.resolve({stdout:``,stderr:``,exitCode:0});return this.client.stdin(`${e}\r`),t}setPreviewStateListener(e){this.previewStateListener=e,e?.(this.hasPreview)}dispose(){this.disposed=!0,this.settleSession(),this.rejectTerminalReady?.(Error(`terminal disposed`)),this.editor?.abort(Error(`terminal disposed`)),this.clearMediaPreview(),this.resizeObserver?.disconnect(),this.resizeObserver=null,this.terminal?.remove(),this.terminal=null,this.editor=null,this.pendingTabInput=[],this.terminalHost=null,this.previewHost=null,this.client.close(),this.client.dispose()}renderMediaPreview(e){if(!this.previewHost)return;let t=document.createElement(`div`);t.className=`terminal-panel__preview-item`;let n=document.createElement(`div`);n.className=`terminal-panel__preview-label`;let r=e.path.split(`/`).pop()??e.path;if(n.textContent=`${r} · ${e.mediaType}`,t.appendChild(n),e.mediaType===`image/png`){let n=document.createElement(`slicc-terminal`);n.hideHeader=!0,n.style.width=`100%`,n.style.height=`180px`,n.style.pointerEvents=`none`,n.setAttribute(`aria-label`,`Kitty graphics preview of ${r}`),n.addEventListener(`terminal-ready`,()=>requestAnimationFrame(()=>{let e=n.shadowRoot?.querySelector(`.host`);e&&(e.scrollTop=0),this.terminal?.focus()}),{once:!0}),t.appendChild(n);for(let t=0;t<e.data.length;t+=4096){let r=t===0,i=t+4096>=e.data.length,a=r?`a=T,f=100,t=d,m=${+!i}`:`m=${+!i}`;n.write(`\x1b_G${a};${e.data.slice(t,t+4096)}\x1b\\`)}}else if(e.mediaType.startsWith(`video/`)){let n=Uint8Array.from(atob(e.data),e=>e.charCodeAt(0)),r=URL.createObjectURL(new Blob([n],{type:e.mediaType}));this.previewUrls.push(r);let i=document.createElement(`video`);i.className=`terminal-panel__preview-media`,i.controls=!0,i.autoplay=!0,i.loop=!0,i.muted=!0,i.playsInline=!0,i.src=r,i.addEventListener(`loadedmetadata`,()=>this.refit(),{once:!0}),t.appendChild(i)}else{let n=Uint8Array.from(atob(e.data),e=>e.charCodeAt(0)),i=URL.createObjectURL(new Blob([n],{type:e.mediaType}));this.previewUrls.push(i);let a=document.createElement(`img`);a.className=`terminal-panel__preview-media`,a.alt=r,a.src=i,a.addEventListener(`load`,()=>this.refit(),{once:!0}),t.appendChild(a)}this.previewHost.appendChild(t),this.previewHost.classList.add(`terminal-panel__preview--visible`),this.hasPreview=!0,this.previewStateListener?.(!0)}clearMediaPreview(){for(let e of this.previewUrls)URL.revokeObjectURL(e);this.previewUrls=[],this.previewHost&&(this.previewHost.replaceChildren(),this.previewHost.classList.remove(`terminal-panel__preview--visible`)),this.hasPreview=!1,this.previewStateListener?.(!1)}async runPromptLoop(){for(;!this.disposed&&this.editor&&this.terminal;){let e;try{e=await this.readNextLine()}catch{break}let t=this.programmaticResolve!==null,n=await this.processLine(e,t);this.programmaticResolve&&=(this.programmaticResolve(n),null)}}readNextLine(){if(!this.editor)return Promise.reject(Error(`terminal not mounted`));let e=this.editor.read(M);return this.flushPendingTabInput(),e}flushPendingTabInput(){for(;this.editor?.isReading&&this.pendingTabInput.length>0;)this.editor.feed(this.pendingTabInput.shift()??``)}handleTerminalData(e){if(this.ptyMode){this.client.stdin(e);return}e===` `?this.tabBusy||this.handleTab():e===``&&this.isExecuting?this.signalInterruptDuringExec():this.tabBusy?this.pendingTabInput.push(e):this.editor?.feed(e)}async processLine(e,t=!1){let n=e.trim(),r={stdout:``,stderr:``,exitCode:0};return n?n===`wasm --login`?await this.runLoginShell()??{stdout:``,stderr:`wasm: --login: no GNU bash to log in to (install @ai-ecoverse/wasm-bash)
12
12
  `,exitCode:125}:!t&&await this.tryRunPicker(n)?r:this.runRemote(n):r}async tryRunPicker(e){let t=P(e);if(t)return await this.runRemoteWithLocalPicker(e,t),!0;let n=V(e);if(n)return await this.runRemoteWithUsbPicker(n),!0;let r=H(e);if(r)return await this.runRemoteWithHidPicker(r),!0;let i=W(e);if(i)return await this.runRemoteWithSerialPicker(i),!0;let a=G(e);if(a)return await this.runRemoteWithEsptoolPicker(e,a),!0;let o=B(e);return o?(await this.runRemoteWithScreenShare(o.name),!0):!1}signalInterruptDuringExec(){this.isExecuting&&(this.terminal?.writeln(`^C`),this.client.signal(`SIGINT`))}async handleTab(){if(this.terminal&&this.editor&&!(this.isExecuting||this.tabBusy)){this.tabBusy=!0,this.isExecuting=!0;try{let e=this.editor.beforeCursor,{currentWord:t,isFirstWord:n,compgenCmd:r}=q(e);this.suppressOutput=!0;let i=``;try{i=(await this.client.exec(r)).stdout}finally{this.suppressOutput=!1}let a=i.split(`
@@ -1 +1 @@
1
- import{n as e,t}from"./almost-bash-shell-headless-C5P1kXhX.js";import{o as n}from"./browser-4sjVvKih.js";import{c as r}from"./sudoers-2C-BpgXh.js";import{r as i}from"./sudo-fs-Ou8-0Q4u.js";import{s as a}from"./just-bash-compat-DWUHpp9U.js";import{t as o}from"./home-dir-DAXEFyny.js";import{n as s}from"./jsh-discovery-D7D5iKYT.js";import{n as c,r as l}from"./supervisor-C_62e4Z5.js";function u(e,t){return new Map(Object.entries({HOME:o,PATH:s,USER:`user`,SHELL:`/bin/bash`,TMPDIR:`/tmp`,PWD:e.cwd,...t,...e.env}))}function d(e,t,r,i){let o=u(t,i);return n({fs:e,cwd:t.cwd,env:o,stdin:a(``),exec:(e,n)=>r.exec(e,{env:n?.env??Object.fromEntries(o),cwd:n?.cwd??t.cwd,args:n?.args,...n?.env===void 0?{}:{replaceEnv:!0}})})}const f={requestApproval:async()=>({decision:`deny`})};async function p(n){let r=h(n.fs,n.sudo),i=new e(r),a=new t({fs:r,cwd:`/workspace`,processManager:n.processManager,processOwner:{kind:`jshd`}}),o={exec:(e,t)=>a.getBash().exec(e,{env:t?.env??a.getEnv(),cwd:t?.cwd??`/workspace`,args:t?.args,...t?.env===void 0?{}:{replaceEnv:!0}})},s=c({fs:n.fs,processManager:n.processManager,lickManager:n.lickManager,...n.realmFactory?{realmFactory:n.realmFactory}:{},buildContext:e=>m(i,e,o)}),u=(await l(n.fs)).filter(e=>e.enabled);if(u.length===0)return[];let d=[];for(let e of u)try{await s.start(e),d.push(e.name)}catch{}return d}function m(e,t,n){return d(e,t,n)}function h(e,t){return i(e,{broker:t?.broker??f,getPolicy:t?.getPolicy??r,defaultDisposition:`allow`})}export{p as restoreEnabledJshdUnits};
1
+ import{n as e,t}from"./almost-bash-shell-headless-DzlcSLk2.js";import{o as n}from"./browser-4sjVvKih.js";import{c as r}from"./sudoers-2C-BpgXh.js";import{r as i}from"./sudo-fs-Ou8-0Q4u.js";import{s as a}from"./just-bash-compat-DWUHpp9U.js";import{t as o}from"./home-dir-DAXEFyny.js";import{n as s}from"./jsh-discovery-D7D5iKYT.js";import{n as c,r as l}from"./supervisor-DS-jlegs.js";function u(e,t){return new Map(Object.entries({HOME:o,PATH:s,USER:`user`,SHELL:`/bin/bash`,TMPDIR:`/tmp`,PWD:e.cwd,...t,...e.env}))}function d(e,t,r,i){let o=u(t,i);return n({fs:e,cwd:t.cwd,env:o,stdin:a(``),exec:(e,n)=>r.exec(e,{env:n?.env??Object.fromEntries(o),cwd:n?.cwd??t.cwd,args:n?.args,...n?.env===void 0?{}:{replaceEnv:!0}})})}const f={requestApproval:async()=>({decision:`deny`})};async function p(n){let r=h(n.fs,n.sudo),i=new e(r),a=new t({fs:r,cwd:`/workspace`,processManager:n.processManager,processOwner:{kind:`jshd`}}),o={exec:(e,t)=>a.getBash().exec(e,{env:t?.env??a.getEnv(),cwd:t?.cwd??`/workspace`,args:t?.args,...t?.env===void 0?{}:{replaceEnv:!0}})},s=c({fs:n.fs,processManager:n.processManager,lickManager:n.lickManager,...n.realmFactory?{realmFactory:n.realmFactory}:{},buildContext:e=>m(i,e,o)}),u=(await l(n.fs)).filter(e=>e.enabled);if(u.length===0)return[];let d=[];for(let e of u)try{await s.start(e),d.push(e.name)}catch{}return d}function m(e,t,n){return d(e,t,n)}function h(e,t){return i(e,{broker:t?.broker??f,getPolicy:t?.getPolicy??r,defaultDisposition:`allow`})}export{p as restoreEnabledJshdUnits};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./slicc-version-D2CCbBHi.js";import{o as t}from"./just-bash-compat-DWUHpp9U.js";const n=`/dev/null`;function r(e){return e.oldName===n}function i(e){return e.newName===n}function a(e){let t=e.indexOf(` `);return(t===-1?e.replace(/\s+\d{4}-\d\d-\d\d[ T].*$/,``):e.slice(0,t)).trimEnd()}const o=/^@@+ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/;function s(e){let t=o.exec(e);return t?{oldStart:Number(t[1]),oldCount:t[2]===void 0?1:Number(t[2]),newStart:Number(t[3]),newCount:t[4]===void 0?1:Number(t[4])}:null}function c(e,t){return{...e,oldLines:[],newLines:[],oldSeen:0,newSeen:0,changeSeen:!1,leadingContext:0,trailingContext:0,lastSide:null,oldNoNewlineAtEof:!1,newNoNewlineAtEof:!1,raw:[t]}}function l(e){return{oldStart:e.oldStart,newStart:e.newStart,oldLines:e.oldLines,newLines:e.newLines,leadingContext:e.leadingContext,trailingContext:e.trailingContext,oldNoNewlineAtEof:e.oldNoNewlineAtEof,newNoNewlineAtEof:e.newNoNewlineAtEof,raw:e.raw}}function u(e){return e.oldSeen>=e.oldCount&&e.newSeen>=e.newCount}function d(e,t){e.oldLines.push(t),e.newLines.push(t),e.oldSeen++,e.newSeen++,e.lastSide=`both`,e.changeSeen?e.trailingContext++:e.leadingContext++}function f(e,t,n){t===`old`?(e.oldLines.push(n),e.oldSeen++):(e.newLines.push(n),e.newSeen++),e.lastSide=t,e.changeSeen=!0,e.trailingContext=0}function p(e,t){if(t.startsWith(`\\`))return(e.lastSide===`old`||e.lastSide===`both`)&&(e.oldNoNewlineAtEof=!0),(e.lastSide===`new`||e.lastSide===`both`)&&(e.newNoNewlineAtEof=!0),e.raw.push(t),!0;if(t===``)return d(e,``),e.raw.push(` `),!0;let n=t.slice(1);switch(t[0]){case` `:d(e,n);break;case`-`:f(e,`old`,n);break;case`+`:f(e,`new`,n);break;default:return!1}return e.raw.push(t),!0}function m(e){e.hunk&&e.current&&e.current.hunks.push(l(e.hunk)),e.hunk=null,e.complete=!1}function h(e,t){let n=e.hunk;if(!n)return!1;if(e.complete){let r=t.startsWith(`\\`);return r&&p(n,t),m(e),r}return p(n,t)?(u(n)&&(e.complete=!0),!0):(m(e),!1)}function g(e){let t={files:[],current:null,hunk:null,complete:!1,pendingOld:null};for(let n of e.split(`
1
+ import{n as e}from"./slicc-version-DM93JF22.js";import{o as t}from"./just-bash-compat-DWUHpp9U.js";const n=`/dev/null`;function r(e){return e.oldName===n}function i(e){return e.newName===n}function a(e){let t=e.indexOf(` `);return(t===-1?e.replace(/\s+\d{4}-\d\d-\d\d[ T].*$/,``):e.slice(0,t)).trimEnd()}const o=/^@@+ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/;function s(e){let t=o.exec(e);return t?{oldStart:Number(t[1]),oldCount:t[2]===void 0?1:Number(t[2]),newStart:Number(t[3]),newCount:t[4]===void 0?1:Number(t[4])}:null}function c(e,t){return{...e,oldLines:[],newLines:[],oldSeen:0,newSeen:0,changeSeen:!1,leadingContext:0,trailingContext:0,lastSide:null,oldNoNewlineAtEof:!1,newNoNewlineAtEof:!1,raw:[t]}}function l(e){return{oldStart:e.oldStart,newStart:e.newStart,oldLines:e.oldLines,newLines:e.newLines,leadingContext:e.leadingContext,trailingContext:e.trailingContext,oldNoNewlineAtEof:e.oldNoNewlineAtEof,newNoNewlineAtEof:e.newNoNewlineAtEof,raw:e.raw}}function u(e){return e.oldSeen>=e.oldCount&&e.newSeen>=e.newCount}function d(e,t){e.oldLines.push(t),e.newLines.push(t),e.oldSeen++,e.newSeen++,e.lastSide=`both`,e.changeSeen?e.trailingContext++:e.leadingContext++}function f(e,t,n){t===`old`?(e.oldLines.push(n),e.oldSeen++):(e.newLines.push(n),e.newSeen++),e.lastSide=t,e.changeSeen=!0,e.trailingContext=0}function p(e,t){if(t.startsWith(`\\`))return(e.lastSide===`old`||e.lastSide===`both`)&&(e.oldNoNewlineAtEof=!0),(e.lastSide===`new`||e.lastSide===`both`)&&(e.newNoNewlineAtEof=!0),e.raw.push(t),!0;if(t===``)return d(e,``),e.raw.push(` `),!0;let n=t.slice(1);switch(t[0]){case` `:d(e,n);break;case`-`:f(e,`old`,n);break;case`+`:f(e,`new`,n);break;default:return!1}return e.raw.push(t),!0}function m(e){e.hunk&&e.current&&e.current.hunks.push(l(e.hunk)),e.hunk=null,e.complete=!1}function h(e,t){let n=e.hunk;if(!n)return!1;if(e.complete){let r=t.startsWith(`\\`);return r&&p(n,t),m(e),r}return p(n,t)?(u(n)&&(e.complete=!0),!0):(m(e),!1)}function g(e){let t={files:[],current:null,hunk:null,complete:!1,pendingOld:null};for(let n of e.split(`
2
2
  `)){if(h(t,n))continue;if(n.startsWith(`--- `)){t.pendingOld=a(n.slice(4));continue}if(n.startsWith(`+++ `)&&t.pendingOld!==null){t.current={oldName:t.pendingOld,newName:a(n.slice(4)),hunks:[]},t.files.push(t.current),t.pendingOld=null;continue}t.pendingOld=null;let e=s(n);e&&t.current&&(t.hunk=c(e,n))}return m(t),t.files.filter(e=>e.hunks.length>0)}function _(e){return{oldName:e.newName,newName:e.oldName,hunks:e.hunks.map(e=>({oldStart:e.newStart,newStart:e.oldStart,oldLines:e.newLines,newLines:e.oldLines,leadingContext:e.leadingContext,trailingContext:e.trailingContext,oldNoNewlineAtEof:e.newNoNewlineAtEof,newNoNewlineAtEof:e.oldNoNewlineAtEof,raw:v(e)}))}}function v(e){return e.raw.map((t,n)=>n===0?`@@ -${e.newStart},${e.newLines.length} +${e.oldStart},${e.oldLines.length} @@`:t.startsWith(`-`)?`+${t.slice(1)}`:t.startsWith(`+`)?`-${t.slice(1)}`:t)}function y(e){if(e===``)return{lines:[],newlineAtEof:!0};let t=e.endsWith(`
3
3
  `),n=e.split(`
4
4
  `);return t&&n.pop(),{lines:n,newlineAtEof:t}}function b(e){return e.lines.length===0?``:e.lines.join(`
@@ -88,4 +88,4 @@ Notes:
88
88
  `)),extraFiles:l}}function Te(e){return e.format===`lavfi`}async function Ee(e,t,n,r=()=>{}){let i=[];for(let[a,o]of e.inputs.entries()){if(Te(o)){i.push({ffmpegName:o.path,data:null,virtual:!0});continue}let e=n.fs.resolvePath(n.cwd,o.path);if(!await n.fs.exists(e))return{error:{stdout:``,stderr:`ffmpeg: input file not found: ${o.path}\n`,exitCode:1}};let s=x(t,ce(o,a));if(ve(o)){let c=await we(e,await n.fs.readFileBuffer(e),a,Ce(o),t,n,r);if(`error`in c){let{kind:e,file:t}=c.error,n=e===`unsafe`?`unsafe file name: ${t} (pass -safe 0 to allow it)`:`file not found: ${t}`;return{error:{stdout:``,stderr:`ffmpeg: concat list ${o.path}: ${n}\n`,exitCode:1}}}i.push({ffmpegName:s,data:_(c.listBytes),virtual:!1,extraFiles:c.extraFiles});continue}i.push({ffmpegName:s,data:await m(n.fs,e,r),virtual:!1})}return{inputs:i}}const De={threads:8,filterThreads:2};function Z(e){return e.some(e=>e===`-threads`||e.startsWith(`-threads:`))}function Oe(e,t=De,n=typeof navigator<`u`?navigator.hardwareConcurrency:void 0){let r=String(Math.max(1,Math.min(t.threads,n??t.threads))),i=[...e.inputs.flatMap(e=>e.raw),...e.outputOpts],a=[];i.includes(`-filter_threads`)||a.push(`-filter_threads`,String(t.filterThreads)),i.includes(`-filter_complex_threads`)||a.push(`-filter_complex_threads`,String(t.filterThreads));let o=e.inputs.map((e,t)=>{let n=[...t===0?a:[],...Z(e.raw)?[]:[`-threads`,r]];return n.length>0?{...e,raw:[...n,...e.raw]}:e}),s=Z(e.outputOpts)?e.outputOpts:[`-threads`,r,...e.outputOpts];return{...e,inputs:o,outputOpts:s}}function Q(e){return{stdout:``,stderr:`${e}ffmpeg: the multi-threaded core deadlocks with more than one input (ffmpeg starts a demux thread per input; emscripten proxies their pthread_create to a main thread blocked in exec; see #2810). Run without FFMPEG_CORE=mt so the single-threaded @ffmpeg/core handles this job.
89
89
  `,exitCode:1}}function ke(e,t,n){let r=[];for(let[n,i]of e.inputs.entries()){let e=t[n],a=i.raw;for(let t=0;t<a.length;t++){if(a[t]===`-i`){r.push(`-i`,e.virtual?a[t+1]:e.ffmpegName),t+=1;continue}r.push(a[t])}}return r.push(...e.outputOpts),r.push(n),r}function Ae(e){let t=[];for(let n of e)if(n.data!==null){for(let e of n.extraFiles??[])t.push({name:S(e.ffmpegName),data:e.data});t.push({name:S(n.ffmpegName),data:n.data})}return t}async function je(e){let t=`__health_probe`;try{await e.writeFile(t,new Uint8Array([0])),await e.deleteFile(t)}catch(e){if(s(e))throw e}}async function Me(e,t,n){await T(e,t),await E(e,n)}async function Ne(e,t,n,r){let i;try{i=await e.readFile(t)}catch(e){if(s(e))throw e;return{error:{stdout:``,stderr:r()||`ffmpeg: produced no output file for ${n}\n`,exitCode:1}}}let a=i instanceof Uint8Array?i:new TextEncoder().encode(typeof i==`string`?i:``);return a.byteLength===0?{error:{stdout:``,stderr:r()||`ffmpeg: produced an empty output file for ${n}\n`,exitCode:1}}:{bytes:a}}function Pe(e,t,n){return n?`__null_sink${e.id}`:C(e,t)}function $(e,t){return{stdout:``,stderr:`${e}ffmpeg: ${t instanceof Error?t.message:String(t)}\nffmpeg: the wasm core faulted and was recycled; retry the command (a large input may need to be split into smaller passes)
90
90
  `,exitCode:1}}async function Fe(e){let{ffmpeg:t,parsed:n,resolvedInputs:r,stage:i,outputName:a,outputPath:s,analysisSink:c,readStderr:u}=e,d=l()===o;if(d&&n.inputs.length>1)return{early:Q(u()),outputBytes:null};await w(t,i,Ae(r));let f=c?{...n,outputOpts:U(n.outputOpts)}:n,p=ke(d?Oe(f):f,r,a),m=await t.exec(p);if(m!==0)return{early:{stdout:``,stderr:u()||`ffmpeg: exited with code ${m}\n`,exitCode:m||1},outputBytes:null};if(c)return await je(t),{early:{stdout:``,stderr:u(),exitCode:0},outputBytes:null};let h=await Ne(t,a,s,u);return`error`in h?{early:h.error,outputBytes:null}:{early:null,outputBytes:h.bytes}}async function Ie(e){let{ffmpeg:t,logHandler:n,stage:i,outputName:a,readStderr:o,faulted:c}=e;try{t.off(`log`,n)}catch{}if(c)return null;try{return await Me(t,i,a),null}catch(e){return s(e)?(r(t),$(o(),e)):null}}async function Le(e,t,n,r,i){let{ffmpegEngineFromEnv:a}=await import(`./engine-CyRUiYta.js`).then(e=>e.n),o=a(i.env),s=t.length===1?t[0].data:null;if(o===`wasm`||r||s===null)return o===`mediabunny`?{result:{stdout:``,stderr:`ffmpeg: FFMPEG_ENGINE=mediabunny cannot run this: analysis sinks, lavfi and concat inputs are wasm-only
91
- `,exitCode:1}}:{fallback:!0,note:null};let{runFfmpegFastPath:c}=await import(`./fast-path-BpH0YWPx.js`);return c({parsed:e,input:s,outputPath:i.fs.resolvePath(i.cwd,n),fs:i.fs,engine:o})}async function Re(e,t){let n=b(),r=[],i=await Ee(e,n,t,e=>r.push(e));if(`error`in i)return i.error;let a=i.inputs,o=e.outputPath,s=H(e),c=await Le(e,a,o,s,t);if(`result`in c)return c.result;let l=await ze({parsed:e,ctx:t,stage:n,resolvedInputs:a,outputPath:o,analysisSink:s}),u=[...c.note?[`ffmpeg: ${c.note}`]:[],...r].map(e=>`${e}\n`).join(``);return u?{...l,stderr:`${u}${l.stderr}`}:l}async function ze(e){let{parsed:t,ctx:i,stage:a,resolvedInputs:o,outputPath:s,analysisSink:c}=e,l=Pe(a,s,c),u=``,f;try{f=await n({onProgress:e=>{u+=`${e}\n`},ipk:W(i),preferMt:d(i.env)===`mt`})}catch(e){return{stdout:``,stderr:`${u}ffmpeg: failed to load wasm: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}let p=e=>{u+=`${e.message}\n`};f.on(`log`,p);let m=!1,h=null,g=null;try{let e=await Fe({ffmpeg:f,parsed:t,resolvedInputs:o,stage:a,outputName:l,outputPath:s,analysisSink:c,readStderr:()=>u});h=e.early,g=e.outputBytes}catch(e){m=!0,r(f),h=$(u,e)}finally{let e=await Ie({ffmpeg:f,logHandler:p,stage:a,outputName:l,readStderr:()=>u,faulted:m});e&&(h=e)}if(h)return h;try{await i.fs.writeFile(i.fs.resolvePath(i.cwd,s),g??/* @__PURE__ */ new Uint8Array)}catch(e){return{stdout:``,stderr:`${u}ffmpeg: cannot write ${s}: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}return{stdout:``,stderr:u,exitCode:0}}export{m as a,W as createIpkContextFromCtx,T as i,b as n,x as r,le as runFfmpeg,w as t};
91
+ `,exitCode:1}}:{fallback:!0,note:null};let{runFfmpegFastPath:c}=await import(`./fast-path-hqxZk1HF.js`);return c({parsed:e,input:s,outputPath:i.fs.resolvePath(i.cwd,n),fs:i.fs,engine:o})}async function Re(e,t){let n=b(),r=[],i=await Ee(e,n,t,e=>r.push(e));if(`error`in i)return i.error;let a=i.inputs,o=e.outputPath,s=H(e),c=await Le(e,a,o,s,t);if(`result`in c)return c.result;let l=await ze({parsed:e,ctx:t,stage:n,resolvedInputs:a,outputPath:o,analysisSink:s}),u=[...c.note?[`ffmpeg: ${c.note}`]:[],...r].map(e=>`${e}\n`).join(``);return u?{...l,stderr:`${u}${l.stderr}`}:l}async function ze(e){let{parsed:t,ctx:i,stage:a,resolvedInputs:o,outputPath:s,analysisSink:c}=e,l=Pe(a,s,c),u=``,f;try{f=await n({onProgress:e=>{u+=`${e}\n`},ipk:W(i),preferMt:d(i.env)===`mt`})}catch(e){return{stdout:``,stderr:`${u}ffmpeg: failed to load wasm: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}let p=e=>{u+=`${e.message}\n`};f.on(`log`,p);let m=!1,h=null,g=null;try{let e=await Fe({ffmpeg:f,parsed:t,resolvedInputs:o,stage:a,outputName:l,outputPath:s,analysisSink:c,readStderr:()=>u});h=e.early,g=e.outputBytes}catch(e){m=!0,r(f),h=$(u,e)}finally{let e=await Ie({ffmpeg:f,logHandler:p,stage:a,outputName:l,readStderr:()=>u,faulted:m});e&&(h=e)}if(h)return h;try{await i.fs.writeFile(i.fs.resolvePath(i.cwd,s),g??/* @__PURE__ */ new Uint8Array)}catch(e){return{stdout:``,stderr:`${u}ffmpeg: cannot write ${s}: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}return{stdout:``,stderr:u,exitCode:0}}export{m as a,W as createIpkContextFromCtx,T as i,b as n,x as r,le as runFfmpeg,w as t};
@@ -1,4 +1,4 @@
1
- import{t as e}from"./record-DTUQtot0.js";import{t,u as n}from"./descriptor-3sZ9zo81.js";import{t as r}from"./subcommand-flags-RpCj0auy.js";import{t as i}from"./subcommand-help-CgO7wRS5.js";import{a,r as o,t as s}from"./memory-budget-CFfevxz_.js";import{c}from"./kernel-worker-40_1fMYG.js";const l=`usage: memory <command> [options]
1
+ import{t as e}from"./record-DTUQtot0.js";import{t,u as n}from"./descriptor-3sZ9zo81.js";import{t as r}from"./subcommand-flags-RpCj0auy.js";import{t as i}from"./subcommand-help-CgO7wRS5.js";import{a,r as o,t as s}from"./memory-budget-CFfevxz_.js";import{c}from"./kernel-worker-eYyVS1Sv.js";const l=`usage: memory <command> [options]
2
2
 
3
3
  Durable cone memory: one file per cone, rewritten by the memory-curator
4
4
  scoop after a chat freezes. This command inspects that system and pokes it.
@@ -1,4 +1,4 @@
1
- import{t as e}from"./subcommand-flags-RpCj0auy.js";import{r as t,t as n}from"./subcommand-help-CgO7wRS5.js";import{i as r,s as i}from"./jsh-discovery-D7D5iKYT.js";import{a,i as o,r as s,s as c,t as l}from"./supervisor-C_62e4Z5.js";const u=`usage: jshd <command> [options]
1
+ import{t as e}from"./subcommand-flags-RpCj0auy.js";import{r as t,t as n}from"./subcommand-help-CgO7wRS5.js";import{i as r,s as i}from"./jsh-discovery-D7D5iKYT.js";import{a,i as o,r as s,s as c,t as l}from"./supervisor-DS-jlegs.js";const u=`usage: jshd <command> [options]
2
2
 
3
3
  Durable background jsh units: one realm worker each, restored on reload
4
4
  when --enable is set. Keep-alive follows the realm (pending timers and
@@ -34,7 +34,7 @@ Notes:
34
34
  `)+`
35
35
  `)}async function A(e,t,n,r){let i=t[0];if(!i)return Y(`missing unit name`);let o=L(n);if(o)return o;let s=P(n,r);if(!s)return Y(`kernel host has not booted yet — try again in a moment`);if(e===`stop`)return await s.stop(i)?J(`jshd: stopped '${i}'\n`):await a(n.fs,i)?J(`jshd: unit '${i}' is not running\n`):Y(`unknown unit '${i}'`);if(e===`restart`){let e=await s.restart(i);return e?J(`jshd: restarted '${i}' (pid ${e.pid})\n`):Y(`unknown unit '${i}'`)}return!await a(n.fs,i)&&!s.status(i)?Y(`unknown unit '${i}'`):(await s.rm(i),J(`jshd: removed '${i}'\n`))}async function j(t,n,r){let i=e(t,{value:T,bool:[`-f`,`--follow`]});if(`error`in i)return Y(i.error);let a=i.positionals[0];if(!a)return Y(`missing unit name`);let s=i.bools.has(`-f`)||i.bools.has(`--follow`),c=i.values.get(`-n`)??i.values.get(`--lines`),l=c===void 0?void 0:Number.parseInt(c,10);if(c!==void 0&&(!Number.isFinite(l)||l<0))return Y(`-n must be a non-negative integer`);let u=await o(n.fs,a),d=l===void 0?u:H(u,l);if(!s)return J(d.endsWith(`
36
36
  `)||d.length===0?d:`${d}\n`);let f=W(n),p=G(n);return f?U({ctx:n,name:a,displayed:d,seen:u.length,signal:f,sink:p}):(p?.(d),J(p?``:d.endsWith(`
37
- `)||d.length===0?d:`${d}\n`))}async function M(e,t,n,r){let i=e[0];if(!i)return Y(`missing unit name`);let a=L(t);if(a)return a;let o=P(t,n);return(o?await o.setEnabled(i,r):await N(t,i,r))?J(`jshd: ${r?`enabled`:`disabled`} '${i}'\n`):Y(`unknown unit '${i}'`)}async function N(e,t,n){let r=await a(e.fs,t);if(!r)return null;let i={...r,enabled:n},{writeUnitRecord:o}=await import(`./supervisor-C_62e4Z5.js`).then(e=>e.o);return await o(e.fs,i),i}function P(e,t){let n=l();if(n)return n;let r=t.processManager??K();if(!r)return null;let i=q();return l({fs:e.fs,processManager:r,...i?{lickManager:i}:{},...t.realmFactory?{realmFactory:t.realmFactory}:{},buildContext:t=>F(e,t)})}function F(e,t){let n=new Map(e.env);for(let[e,r]of Object.entries(t.env))n.set(e,r);return{...e,cwd:t.cwd,env:n}}function I(e){if(typeof e!=`object`||!e)return!1;let t=e.canWrite;return typeof t==`function`&&!t.call(e,`/workspace/.jshd`)}function L(e){return I(e.fs)?Y(`not available inside a restricted scoop`):null}function R(e,t,n){let r=new Map(t.map(e=>[e.name,e]));return[.../* @__PURE__ */ new Set([...e.map(e=>e.name),...r.keys()])].sort().map(t=>r.get(t)||z(e.find(e=>e.name===t),n))}function z(e,t){return{name:e.name,pid:null,state:`stopped`,restarts:0,uptimeMs:null,enabled:e.enabled,restart:e.restart,argv:e.argv,cwd:e.cwd,durable:t,lastExitCode:null}}function B(e){let t=e.pid===null?`-`:String(e.pid),n=V(e.uptimeMs);return[e.name.padEnd(15),t.padEnd(7),e.state.padEnd(9),String(e.restarts).padEnd(9),n.padEnd(6),String(e.enabled).padEnd(8),String(e.durable)].join(` `)}function V(e){if(e===null)return`-`;let t=Math.max(0,Math.round(e/1e3));return t<60?`${t}s`:`${Math.floor(t/60)}m${t%60}s`}function H(e,t){if(t===0)return``;let n=e.split(`
37
+ `)||d.length===0?d:`${d}\n`))}async function M(e,t,n,r){let i=e[0];if(!i)return Y(`missing unit name`);let a=L(t);if(a)return a;let o=P(t,n);return(o?await o.setEnabled(i,r):await N(t,i,r))?J(`jshd: ${r?`enabled`:`disabled`} '${i}'\n`):Y(`unknown unit '${i}'`)}async function N(e,t,n){let r=await a(e.fs,t);if(!r)return null;let i={...r,enabled:n},{writeUnitRecord:o}=await import(`./supervisor-DS-jlegs.js`).then(e=>e.o);return await o(e.fs,i),i}function P(e,t){let n=l();if(n)return n;let r=t.processManager??K();if(!r)return null;let i=q();return l({fs:e.fs,processManager:r,...i?{lickManager:i}:{},...t.realmFactory?{realmFactory:t.realmFactory}:{},buildContext:t=>F(e,t)})}function F(e,t){let n=new Map(e.env);for(let[e,r]of Object.entries(t.env))n.set(e,r);return{...e,cwd:t.cwd,env:n}}function I(e){if(typeof e!=`object`||!e)return!1;let t=e.canWrite;return typeof t==`function`&&!t.call(e,`/workspace/.jshd`)}function L(e){return I(e.fs)?Y(`not available inside a restricted scoop`):null}function R(e,t,n){let r=new Map(t.map(e=>[e.name,e]));return[.../* @__PURE__ */ new Set([...e.map(e=>e.name),...r.keys()])].sort().map(t=>r.get(t)||z(e.find(e=>e.name===t),n))}function z(e,t){return{name:e.name,pid:null,state:`stopped`,restarts:0,uptimeMs:null,enabled:e.enabled,restart:e.restart,argv:e.argv,cwd:e.cwd,durable:t,lastExitCode:null}}function B(e){let t=e.pid===null?`-`:String(e.pid),n=V(e.uptimeMs);return[e.name.padEnd(15),t.padEnd(7),e.state.padEnd(9),String(e.restarts).padEnd(9),n.padEnd(6),String(e.enabled).padEnd(8),String(e.durable)].join(` `)}function V(e){if(e===null)return`-`;let t=Math.max(0,Math.round(e/1e3));return t<60?`${t}s`:`${Math.floor(t/60)}m${t%60}s`}function H(e,t){if(t===0)return``;let n=e.split(`
38
38
  `);return n[n.length-1]===``&&n.pop(),`${n.slice(-t).join(`
39
39
  `)}${e.endsWith(`
40
40
  `)?`
@@ -1,4 +1,4 @@
1
- import"./browser-4sjVvKih.js";import{a as e,c as t,i as n,l as r,o as i,r as a}from"./ffmpeg-wasm-xaOnfsRx.js";import{r as o}from"./engine-CyRUiYta.js";import{a as s,createIpkContextFromCtx as c,i as l,n as u,r as ee,t as d}from"./run-B27RF7y5.js";const f={mono:1,stereo:2,"2.1":3,"3.0":3,"3.1":4,"4.0":4,quad:4,"4.1":5,"5.0":5,"5.1":6,"6.0":6,"6.1":7,"7.0":7,"7.1":8};function p(e){let t=/^(\d+):(\d{2}):(\d{2}(?:\.\d+)?)$/.exec(e.trim());if(!t)return;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if([n,r,i].every(Number.isFinite))return(n*3600+r*60+i).toFixed(6)}function m(e){let t=e.trim().toLowerCase();if(Object.hasOwn(f,t))return f[t];let n=/^([0-9.]+|[a-z0-9_+-]+)\(/.exec(t);if(n&&Object.hasOwn(f,n[1]))return f[n[1]];let r=/^(\d+)\s+channels?$/.exec(t);if(r)return Number(r[1])}function h(e){let t=Number(e);return Number.isFinite(t)?Number.isInteger(t)?`${t}/1`:`${Math.round(t*1e3)}/1000`:e}function g(e){let t=Number(e);if(Number.isFinite(t))return String(Math.round(t*1e3))}function _(e){let t=/^([A-Za-z0-9_]+)(.*)$/.exec(e);if(!t)return{remainder:e};let n=t[2],r,i,a=/^\s*\(([^)/]+)\)/.exec(n);a&&!a[1].includes(`/`)&&(r=a[1].trim(),n=n.slice(a[0].length));let o=/^\s*\(([A-Za-z0-9]+)\s*\/\s*0x[0-9a-fA-F]+\)/.exec(n);return o&&(i=o[1],n=n.slice(o[0].length)),{codec_name:t[1],profile:r,codec_tag_string:i,remainder:n}}function v(e,t){let n=/,\s*([A-Za-z0-9_]+)(?:\([^)]*\))?,\s*(\d+)x(\d+)/.exec(e);n&&(t.pix_fmt=n[1],t.width=Number(n[2]),t.height=Number(n[3]));let r=/\[SAR\s+(\S+)\s+DAR\s+(\S+)\]/.exec(e);r&&(t.sample_aspect_ratio=r[1],t.display_aspect_ratio=r[2]);let i=/,\s*(\d+(?:\.\d+)?)\s*kb\/s/.exec(e);i&&(t.bit_rate=g(i[1]));let a=/,\s*(\d+(?:\.\d+)?)\s*fps/.exec(e);a&&(t.r_frame_rate=h(a[1]),t.avg_frame_rate=t.r_frame_rate)}function y(e,t){let n=/,\s*(\d+)\s*Hz/.exec(e);n&&(t.sample_rate=n[1]);let r=/Hz,\s*([^,]+)/.exec(e);if(r){let e=r[1].trim();t.channel_layout=e,t.channels=m(e)}let i=/,\s*(\d+(?:\.\d+)?)\s*kb\/s/.exec(e);i&&(t.bit_rate=g(i[1]))}function b(e){let t=/^\s*Stream #(\d+):(\d+)(?:\[[^\]]*\])?(?:\([^)]*\))?:\s*(Video|Audio|Subtitle|Data|Attachment):\s*(.+)$/i.exec(e);if(!t)return null;let n=t[3].toLowerCase(),r={index:Number(t[2]),codec_type:n},{codec_name:i,profile:a,codec_tag_string:o,remainder:s}=_(t[4]);return i&&(r.codec_name=i),a&&(r.profile=a),o&&(r.codec_tag_string=o),n===`video`?v(s,r):n===`audio`&&y(s,r),r}function x(e,t){let n=/^\s*Duration:\s*([^,]+),\s*start:\s*([^,]+),\s*bitrate:\s*(\d+(?:\.\d+)?)\s*kb\/s/.exec(t);return n?(e.duration=p(n[1]),e.start_time=Number(n[2]).toFixed(6),e.bit_rate=g(n[3]),!0):!1}function S(e,t,n){let r=/^\s{2,}([A-Za-z0-9_]+)\s*:\s*(.*)$/.exec(n);return r&&!/^(Duration|Stream)\b/.test(r[1])?(t[r[1]]=r[2].trim(),`keep`):(Object.keys(t).length>0&&(e.tags=t),`end`)}function C(e,t){let n=e.split(/\r?\n/),r=null,i=[],a=!1,o;for(let e of n){let n=/^Input #(\d+),\s*(.+?),\s*from\s+'([^']*)':\s*$/.exec(e);if(n){a=!0,r={format_name:n[2].trim(),filename:n[3]||t},o=void 0;continue}if(!a||!r)continue;if(/^\s*Metadata:\s*$/.test(e)){o={};continue}if(o){if(S(r,o,e)===`keep`)continue;o=void 0}if(x(r,e))continue;let s=b(e);s&&(r.duration&&s.duration===void 0&&(s.duration=r.duration),i.push(s))}return r?{format:r,streams:i}:null}const w=/* @__PURE__ */ new Set([`-i`,`-v`,`-loglevel`,`-of`,`-print_format`,`-show_entries`,`-select_streams`]),T=/* @__PURE__ */ new Set([`-show_format`,`-show_streams`,`-hide_banner`,`-h`,`--help`,`-version`,`--version`]);function E(){return{stdout:`ffprobe - media probe (mediabunny, with a wasm fallback)
1
+ import"./browser-4sjVvKih.js";import{a as e,c as t,i as n,l as r,o as i,r as a}from"./ffmpeg-wasm-xaOnfsRx.js";import{r as o}from"./engine-CyRUiYta.js";import{a as s,createIpkContextFromCtx as c,i as l,n as u,r as ee,t as d}from"./run-C1jQodOF.js";const f={mono:1,stereo:2,"2.1":3,"3.0":3,"3.1":4,"4.0":4,quad:4,"4.1":5,"5.0":5,"5.1":6,"6.0":6,"6.1":7,"7.0":7,"7.1":8};function p(e){let t=/^(\d+):(\d{2}):(\d{2}(?:\.\d+)?)$/.exec(e.trim());if(!t)return;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if([n,r,i].every(Number.isFinite))return(n*3600+r*60+i).toFixed(6)}function m(e){let t=e.trim().toLowerCase();if(Object.hasOwn(f,t))return f[t];let n=/^([0-9.]+|[a-z0-9_+-]+)\(/.exec(t);if(n&&Object.hasOwn(f,n[1]))return f[n[1]];let r=/^(\d+)\s+channels?$/.exec(t);if(r)return Number(r[1])}function h(e){let t=Number(e);return Number.isFinite(t)?Number.isInteger(t)?`${t}/1`:`${Math.round(t*1e3)}/1000`:e}function g(e){let t=Number(e);if(Number.isFinite(t))return String(Math.round(t*1e3))}function _(e){let t=/^([A-Za-z0-9_]+)(.*)$/.exec(e);if(!t)return{remainder:e};let n=t[2],r,i,a=/^\s*\(([^)/]+)\)/.exec(n);a&&!a[1].includes(`/`)&&(r=a[1].trim(),n=n.slice(a[0].length));let o=/^\s*\(([A-Za-z0-9]+)\s*\/\s*0x[0-9a-fA-F]+\)/.exec(n);return o&&(i=o[1],n=n.slice(o[0].length)),{codec_name:t[1],profile:r,codec_tag_string:i,remainder:n}}function v(e,t){let n=/,\s*([A-Za-z0-9_]+)(?:\([^)]*\))?,\s*(\d+)x(\d+)/.exec(e);n&&(t.pix_fmt=n[1],t.width=Number(n[2]),t.height=Number(n[3]));let r=/\[SAR\s+(\S+)\s+DAR\s+(\S+)\]/.exec(e);r&&(t.sample_aspect_ratio=r[1],t.display_aspect_ratio=r[2]);let i=/,\s*(\d+(?:\.\d+)?)\s*kb\/s/.exec(e);i&&(t.bit_rate=g(i[1]));let a=/,\s*(\d+(?:\.\d+)?)\s*fps/.exec(e);a&&(t.r_frame_rate=h(a[1]),t.avg_frame_rate=t.r_frame_rate)}function y(e,t){let n=/,\s*(\d+)\s*Hz/.exec(e);n&&(t.sample_rate=n[1]);let r=/Hz,\s*([^,]+)/.exec(e);if(r){let e=r[1].trim();t.channel_layout=e,t.channels=m(e)}let i=/,\s*(\d+(?:\.\d+)?)\s*kb\/s/.exec(e);i&&(t.bit_rate=g(i[1]))}function b(e){let t=/^\s*Stream #(\d+):(\d+)(?:\[[^\]]*\])?(?:\([^)]*\))?:\s*(Video|Audio|Subtitle|Data|Attachment):\s*(.+)$/i.exec(e);if(!t)return null;let n=t[3].toLowerCase(),r={index:Number(t[2]),codec_type:n},{codec_name:i,profile:a,codec_tag_string:o,remainder:s}=_(t[4]);return i&&(r.codec_name=i),a&&(r.profile=a),o&&(r.codec_tag_string=o),n===`video`?v(s,r):n===`audio`&&y(s,r),r}function x(e,t){let n=/^\s*Duration:\s*([^,]+),\s*start:\s*([^,]+),\s*bitrate:\s*(\d+(?:\.\d+)?)\s*kb\/s/.exec(t);return n?(e.duration=p(n[1]),e.start_time=Number(n[2]).toFixed(6),e.bit_rate=g(n[3]),!0):!1}function S(e,t,n){let r=/^\s{2,}([A-Za-z0-9_]+)\s*:\s*(.*)$/.exec(n);return r&&!/^(Duration|Stream)\b/.test(r[1])?(t[r[1]]=r[2].trim(),`keep`):(Object.keys(t).length>0&&(e.tags=t),`end`)}function C(e,t){let n=e.split(/\r?\n/),r=null,i=[],a=!1,o;for(let e of n){let n=/^Input #(\d+),\s*(.+?),\s*from\s+'([^']*)':\s*$/.exec(e);if(n){a=!0,r={format_name:n[2].trim(),filename:n[3]||t},o=void 0;continue}if(!a||!r)continue;if(/^\s*Metadata:\s*$/.test(e)){o={};continue}if(o){if(S(r,o,e)===`keep`)continue;o=void 0}if(x(r,e))continue;let s=b(e);s&&(r.duration&&s.duration===void 0&&(s.duration=r.duration),i.push(s))}return r?{format:r,streams:i}:null}const w=/* @__PURE__ */ new Set([`-i`,`-v`,`-loglevel`,`-of`,`-print_format`,`-show_entries`,`-select_streams`]),T=/* @__PURE__ */ new Set([`-show_format`,`-show_streams`,`-hide_banner`,`-h`,`--help`,`-version`,`--version`]);function E(){return{stdout:`ffprobe - media probe (mediabunny, with a wasm fallback)
2
2
 
3
3
  Usage:
4
4
  ffprobe [options] -i <input>
@@ -41,6 +41,6 @@ Examples:
41
41
  `,stderr:``,exitCode:0}}async function D(e){let t=o(e.env)===`mt`,i=await r(c(e),void 0,t);return i?{stdout:`ffprobe (emulated via @ffmpeg/ffmpeg — not a real ffprobe binary)\ncore: ${a(i)}\n`,stderr:``,exitCode:0}:{stdout:``,stderr:`ffprobe: ${n(t)}\n`,exitCode:1}}function O(e,t,n){let r=e[t+1];if(typeof r!=`string`||r.startsWith(`-`))throw Error(`ffprobe: ${n} requires a value`);return r}function k(e){let t=e.indexOf(`=`),n=t<0?e:e.slice(0,t),r=t<0?``:e.slice(t+1);if(n===`json`)return{kind:`json`};if(n===`csv`)return{kind:`csv`,printSection:!/(?:^|:)p=0(?::|$)/.test(r)};if(n==="default")return{kind:`default`,noWrappers:/(?:^|:)(?:nw|noprint_wrappers)=1(?::|$)/.test(r),noKey:/(?:^|:)(?:nk|nokey)=1(?::|$)/.test(r)};throw Error(`ffprobe: unsupported -of '${e}' (supported: json, csv[=p=0], default[=nw=1:nk=1])`)}function A(e){let t={};for(let n of e.split(`:`)){if(!n)continue;let e=n.indexOf(`=`);if(e<0)throw Error(`ffprobe: -show_entries section '${n}' needs keys (e.g. format=duration)`);let r=n.slice(0,e),i=n.slice(e+1).split(`,`).map(e=>e.trim()).filter(Boolean);if(r===`format`)t.format=new Set(i);else if(r===`stream`)t.stream=new Set(i);else throw Error(`ffprobe: unsupported -show_entries section '${r}' (supported: format, stream)`)}return t}function j(e,t,n){let r=t[n];if(r===`-i`)return e.inputPath=O(t,n,`-i`),n+1;if(r===`-show_format`)return e.showFormat=!0,e.structured=!0,n;if(r===`-show_streams`)return e.showStreams=!0,e.structured=!0,n;if(r===`-show_entries`)return e.showEntries=A(O(t,n,`-show_entries`)),e.structured=!0,n+1;if(r===`-select_streams`)return e.selectStreams=O(t,n,`-select_streams`),n+1;if(r===`-of`||r===`-print_format`)return e.outputFormat=k(O(t,n,r)),e.structured=!0,n+1;if(r===`-v`||r===`-loglevel`){let i=O(t,n,r).toLowerCase();return e.quiet=[`quiet`,`panic`,`fatal`,`error`,`warning`].includes(i),n+1}if(r===`-hide_banner`)return n;if(T.has(r)||w.has(r))throw Error(`ffprobe: internal parse gap for '${r}'`);if(r.startsWith(`-`))throw Error(`ffprobe: unsupported option '${r}' (this is an emulated probe — see --help)`);if(e.inputPath!==null)throw Error(`ffprobe: unexpected argument '${r}'`);return e.inputPath=r,n}function M(e){let t={inputPath:null,showFormat:!1,showStreams:!1,showEntries:null,selectStreams:null,outputFormat:{kind:`default`,noWrappers:!1,noKey:!1},quiet:!1,structured:!1};for(let n=0;n<e.length;n++)n=j(t,e,n);return!t.showFormat&&!t.showStreams&&!t.showEntries&&(t.showFormat=!0,t.showStreams=!0),t}function N(e,t){if(!t)return e;let n=/^([va])(?::(\d+))?$/i.exec(t.trim());if(!n)throw Error(`ffprobe: unsupported -select_streams '${t}' (supported: v, a, v:N, a:N)`);let r=n[1].toLowerCase()===`v`?`video`:`audio`,i=e.filter(e=>e.codec_type===r);if(n[2]===void 0)return i;let a=i[Number(n[2])];return a?[a]:[]}const P=[`filename`,`format_name`,`duration`,`start_time`,`bit_rate`],F=[`index`,`codec_type`,`codec_name`,`codec_tag_string`,`profile`,`width`,`height`,`pix_fmt`,`sample_aspect_ratio`,`display_aspect_ratio`,`r_frame_rate`,`avg_frame_rate`,`sample_rate`,`channels`,`channel_layout`,`bit_rate`,`duration`];function I(e,t){let n={};for(let r of P){if(t&&!t.has(r))continue;let i=e[r];i!==void 0&&(n[r]=i)}return n}function L(e,t){let n={};for(let r of F){if(t&&!t.has(r))continue;let i=e[r];i!==void 0&&(n[r]=i)}return n}function R(e,t){let n=N(e.streams,t.selectStreams),r={};return t.showEntries?(t.showEntries.format&&(r.format=I(e.format,t.showEntries.format)),t.showEntries.stream&&(r.streams=n.map(e=>L(e,t.showEntries?.stream))),r):(t.showFormat&&(r.format=I(e.format)),t.showStreams&&(r.streams=n.map(e=>L(e))),r)}function z(e,t){let n=[],r=(e,r)=>{t.noWrappers||n.push(`[${e}]`);for(let[e,i]of Object.entries(r))i!==void 0&&n.push(t.noKey?String(i):`${e}=${i}`);t.noWrappers||n.push(`[/${e}]`)};if(e.format&&r(`FORMAT`,e.format),e.streams)for(let t of e.streams)r(`STREAM`,t);return`${n.join(`
42
42
  `)}\n`}function B(e){return/[",\n\r]/.test(e)?`"${e.replace(/"/g,`""`)}"`:e}function V(e,t){let n=[],r=(e,r)=>{let i=Object.values(r).filter(e=>e!==void 0).map(e=>B(String(e)));i.length!==0&&(t.printSection&&i.unshift(e),n.push(i.join(`,`)))};if(e.format&&r(`format`,e.format),e.streams)for(let t of e.streams)r(`stream`,t);return`${n.join(`
43
43
  `)}\n`}function H(e){let t=e.codec_name??`?`;if(e.codec_type===`video`){let n=e.width&&e.height?`, ${e.width}x${e.height}`:``,r=e.r_frame_rate?`, ${e.r_frame_rate} fps`:``;return` Stream #0:${e.index}: Video: ${t}${n}${r}`}if(e.codec_type===`audio`){let n=e.sample_rate?`, ${e.sample_rate} Hz`:``,r=e.channel_layout?`, ${e.channel_layout}`:``,i=e.channels===void 0?``:` (${e.channels} ch)`;return` Stream #0:${e.index}: Audio: ${t}${n}${r}${i}`}return` Stream #0:${e.index}: ${e.codec_type}: ${t}`}function U(e){let t=e.format,n=[`Input #0, ${t.format_name??`unknown`}, from '${t.filename??``}':`];if(t.duration!==void 0||t.bit_rate!==void 0){let e=t.duration??`N/A`,r=t.bit_rate?`${Math.round(Number(t.bit_rate)/1e3)} kb/s`:`N/A`;n.push(` Duration: ${e} s, bitrate: ${r}`)}for(let t of e.streams)n.push(H(t));return`${n.join(`
44
- `)}\n`}function W(e,t){if(!t.structured)return U(e);let n=R(e,t);return t.outputFormat.kind===`json`?`${JSON.stringify(n,null,4)}\n`:t.outputFormat.kind===`csv`?V(n,t.outputFormat):z(n,t.outputFormat)}let G=Promise.resolve();function K(e){let t=G.then(e,e);return G=t.then(()=>void 0,()=>void 0),t}let q=0;function J(e){let t=e.split(`/`).pop()||`input.bin`,n=/\.([A-Za-z0-9]{1,8})$/.exec(t),r=n?`.${n[1].toLowerCase()}`:`.bin`;return q=q+1>>>0,`__probe_${q}_${Date.now()}${r}`}async function Y(t){let n=``;try{return{ffmpeg:await e({onProgress:e=>{n+=`${e}\n`},ipk:c(t),preferMt:o(t.env)===`mt`}),loadLog:n}}catch(e){return{stdout:``,stderr:`ffprobe: failed to load wasm: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async function X(e,n,r){try{await e.exec([`-hide_banner`,`-i`,n])}catch(n){if(i(n))return t(e),{stdout:``,stderr:`ffprobe: wasm core faulted (${n instanceof Error?n.message:String(n)}); recycled shared instance\n`,exitCode:1};r.text+=`${n instanceof Error?n.message:String(n)}\n`}return null}function Z(e,t,n){e.format.filename=t.inputPath??e.format.filename;try{return{stdout:W(e,t),stderr:t.quiet?``:n,exitCode:0}}catch(e){return{stdout:``,stderr:`ffprobe: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async function Q(e,t,n){let{ffmpegEngineFromEnv:r}=await import(`./engine-CyRUiYta.js`).then(e=>e.n),i=r(n.env);if(i===`wasm`)return null;let{probeViaMediabunny:a}=await import(`./bunny-probe-Cx0R5h4b.js`),o=await a(t,e.inputPath??``);return o?Z(o,e,``):i===`mediabunny`?{stdout:``,stderr:`ffprobe: FFMPEG_ENGINE=mediabunny: input is not a container mediabunny reads
44
+ `)}\n`}function W(e,t){if(!t.structured)return U(e);let n=R(e,t);return t.outputFormat.kind===`json`?`${JSON.stringify(n,null,4)}\n`:t.outputFormat.kind===`csv`?V(n,t.outputFormat):z(n,t.outputFormat)}let G=Promise.resolve();function K(e){let t=G.then(e,e);return G=t.then(()=>void 0,()=>void 0),t}let q=0;function J(e){let t=e.split(`/`).pop()||`input.bin`,n=/\.([A-Za-z0-9]{1,8})$/.exec(t),r=n?`.${n[1].toLowerCase()}`:`.bin`;return q=q+1>>>0,`__probe_${q}_${Date.now()}${r}`}async function Y(t){let n=``;try{return{ffmpeg:await e({onProgress:e=>{n+=`${e}\n`},ipk:c(t),preferMt:o(t.env)===`mt`}),loadLog:n}}catch(e){return{stdout:``,stderr:`ffprobe: failed to load wasm: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async function X(e,n,r){try{await e.exec([`-hide_banner`,`-i`,n])}catch(n){if(i(n))return t(e),{stdout:``,stderr:`ffprobe: wasm core faulted (${n instanceof Error?n.message:String(n)}); recycled shared instance\n`,exitCode:1};r.text+=`${n instanceof Error?n.message:String(n)}\n`}return null}function Z(e,t,n){e.format.filename=t.inputPath??e.format.filename;try{return{stdout:W(e,t),stderr:t.quiet?``:n,exitCode:0}}catch(e){return{stdout:``,stderr:`ffprobe: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async function Q(e,t,n){let{ffmpegEngineFromEnv:r}=await import(`./engine-CyRUiYta.js`).then(e=>e.n),i=r(n.env);if(i===`wasm`)return null;let{probeViaMediabunny:a}=await import(`./bunny-probe-Bq1N-AVN.js`),o=await a(t,e.inputPath??``);return o?Z(o,e,``):i===`mediabunny`?{stdout:``,stderr:`ffprobe: FFMPEG_ENGINE=mediabunny: input is not a container mediabunny reads
45
45
  `,exitCode:1}:null}async function $(e,t){if(!e.inputPath)return{stdout:``,stderr:`ffprobe: at least one input file must be specified
46
46
  `,exitCode:1};let n=t.fs.resolvePath(t.cwd,e.inputPath);if(!await t.fs.exists(n))return{stdout:``,stderr:`ffprobe: input file not found: ${e.inputPath}\n`,exitCode:1};let r=await s(t.fs,n);return await Q(e,r,t)||K(()=>te(e,r,t))}async function te(e,n,r){let a=u(),o=J(e.inputPath??``),s=ee(a,o),c=await Y(r);if(`exitCode`in c)return c;let{ffmpeg:f,loadLog:p}=c,m={text:``},h=e=>{m.text+=`${e.message}\n`};f.on(`log`,h);let g=!1;try{await d(f,a,[{name:o,data:n}]);let t=await X(f,s,m);if(t)return g=!0,t;let r=C(m.text,e.inputPath??``);return r?Z(r,e,p):{stdout:``,stderr:`ffprobe: could not parse media info from ffmpeg log\n${e.quiet?``:m.text||p}`,exitCode:1}}catch(e){return i(e)&&(g=!0,t(f)),{stdout:``,stderr:`ffprobe: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}finally{try{f.off(`log`,h)}catch{}if(!g)try{await l(f,a)}catch{}}}async function ne(e,t){if(e.length===0||e.includes(`--help`)||e.includes(`-h`))return E();if(e.includes(`-version`)||e.includes(`--version`))return D(t);let n;try{n=M(e)}catch(e){return{stdout:``,stderr:`${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}return $(n,t)}export{ne as runFfprobe};
@@ -64,7 +64,7 @@ Buttons: 1 left, 2 middle, 3 right. Chain verbs: computer click 1 type hello
64
64
 
65
65
  v86 guests register as v86:<name> on \`v86 start\`. Prefer this command;
66
66
  \`v86 type|key|mouse|screenshot|text\` remain as thin aliases.
67
- `,Ne=[`-c`,`--computer`,`--size`,`--at`,`--hold`,`--repeat`,`--fps`,`-n`,`--name`,`--__resolved`,`-V`,`--duration`,`--sim`,`--display`],j=/* @__PURE__ */ new Set([`ls`,`add`,`rm`,`use`,`info`,`screenshot`,`text`,`watch`,`record`,`mousemove`,`click`,`mousedown`,`mouseup`,`drag`,`scroll`,`key`,`keydown`,`keyup`,`type`,`wait`,`exec`]),M={left_click:`click`,right_click:`click`,middle_click:`click`,double_click:`click`,triple_click:`click`,left_click_drag:`drag`,mouse_move:`mousemove`,screenshot:`screenshot`,wait:`wait`,key:`key`,type:`type`,scroll:`scroll`},Pe=/* @__PURE__ */ new Set([`type`,`key`,`exec`,`add`]),N=/* @__PURE__ */ new Set([`--size`,`--at`,`--hold`,`--repeat`,`--fps`,`-n`,`--name`,`-c`,`--computer`,`--__resolved`,`-V`,`--duration`,`--sim`,`--display`]);function P(e){return j.has(e)||e in M}function Fe(e){return j.has(e)?e:M[e]??null}function Ie(e){let t=[],n,r=!1,i=!1;for(let a=0;a<e.length;a++){let o=e[a];if(o===`--`){t.push(...e.slice(a));break}if(o===`--json`){r=!0;continue}if(o===`--native`){i=!0;continue}if(o===`-c`||o===`--computer`){n=e[++a];continue}t.push(o)}return{computer:n,json:r,native:i,rest:t}}function Le(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r===`--`){n+=1;continue}let i=Fe(r);if(!i)throw Error(`unknown verb '${r}' — see \`computer --help\``);n+=1;let{args:a,next:o}=ze(i,e,n);t.push({verb:i,alias:r,args:Re(r,i,a)}),n=o}return t}function Re(e,t,n){return t===`click`?e===`left_click`?F(n,`1`):e===`middle_click`?F(n,`2`):e===`right_click`?F(n,`3`):e===`double_click`?[...F(n,`1`),`--repeat`,`2`]:e===`triple_click`?[...F(n,`1`),`--repeat`,`3`]:n:n}function F(e,t){return e[0]===`1`||e[0]===`2`||e[0]===`3`?e:[t,...e]}function ze(e,t,n){return Pe.has(e)?Be(t,n):Ve(Ue(e),t,n)}function Be(e,t){let n=[],r=t,i=!1;for(;r<e.length;){let t=e[r];if(!i&&t===`--`){i=!0,r+=1;continue}if(!i&&P(t))break;n.push(t),r+=1}return{args:n,next:r}}function I(e){return e.startsWith(`--`)||e===`-n`||e===`-c`||e===`-V`}function L(e,t,n){let r=e[t];return n.push(r),t+=1,N.has(r)&&t<e.length&&(n.push(e[t]),t+=1),t}function Ve(e,t,n){let r=[],i=n,a=0;for(;i<t.length;){let n=t[i];if(n===`--`){i+=1;continue}if(I(n)){i=L(t,i,r);continue}if(P(n))break;if(r.push(n),a+=1,i+=1,a>=e&&e>0){i=He(t,i,r);break}}return{args:r,next:i}}function He(e,t,n){let r=t;for(;r<e.length&&I(e[r]);)r=L(e,r,n);return r}function Ue(e){switch(e){case`mousemove`:return 2;case`drag`:return 4;case`scroll`:return 2;case`click`:case`mousedown`:case`mouseup`:return 3;case`wait`:case`keydown`:case`keyup`:case`rm`:case`use`:return 1;case`screenshot`:return 1;case`record`:return 1;default:return 0}}function R(e){let t=e.indexOf(`--at`);if(t===-1)return;let n=e[t+1],r=n?/^(-?\d+),(-?\d+)$/u.exec(n):null;if(!r)throw Error(`--at requires x,y`);return{x:Number(r[1]),y:Number(r[2])}}function z(e,t){let n=e.indexOf(t);if(n===-1)return;let r=Number.parseInt(e[n+1]??``,10);if(!Number.isFinite(r))throw Error(`${t} requires a number`);return r}function B(e,t){return e.includes(t)}function V(e,t){for(let n of t){let t=e.indexOf(n);if(t!==-1)return e[t+1]}}function H(e){let t=[];for(let n=0;n<e.length;n++){let r=e[n];if(r===`--`){t.push(...e.slice(n+1));break}if(r.startsWith(`--`)||r===`-n`||r===`-c`||r===`-V`){N.has(r)&&(n+=1);continue}t.push(r)}return t}function We(e){let t=0;for(let n of e)t+=n.byteLength;let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.byteLength;return n}function Ge(e){return new Promise(t=>{setTimeout(t,e)})}function Ke(e){return Math.min(10,Math.max(1,e))}async function qe(e,t,n){let r=e;if(typeof r.appendFile==`function`){await r.appendFile(t,n);return}let i=/* @__PURE__ */ new Uint8Array;if(typeof r.readFile==`function`)try{let e=await r.readFile(t,{encoding:`binary`});e instanceof Uint8Array&&(i=Uint8Array.from(e))}catch{}let a=new Uint8Array(i.byteLength+n.byteLength);a.set(i,0),a.set(n,i.byteLength),await e.writeFile(t,a)}function Je(e,t){let n=e,r=t;for(;r>0;)[n,r]=[r,n%r];return n}function Ye(e,t,n,r,i){let a=Math.max(1,Math.round(t),Math.min(e*n,r)),o=e*1e3,s=Je(o,a),c=o/a;return{durationMs:a,frameRate:`${o/s}/${a/s}`,achievedFps:Math.round(c*100)/100,slow:c<i*.9}}function Xe(e,t){return e>0&&(e>=600||t>8388608)}async function Ze(e){let t=Ke(e.fps),n=Math.max(1,Math.round(1e3/t)),r=e.now??Date.now,i=e.sleep??Ge,a=r(),o=a+e.durationMs,s=0,c=0,l=0,u=0,d=!1;for(;;){let t=await e.screenshot(),f=u+t.bytes.byteLength;if(Xe(l,f)){d=!0;break}s=t.width,c=t.height,await e.onFrame?.(t.bytes),l+=1,u=f;let p=l>=600||u>=8388608,m=r(),h=Math.max(m,a+l*n);if(p||h>=o){d=p&&h<o;break}await i(h-m)}let f=Ye(l,r()-a,n,e.durationMs,t);return{width:s,height:c,frameCount:l,byteLength:u,truncated:d,...f}}function Qe(e){let t=f(e.env).replace(/\/$/u,``),n=crypto.randomUUID();return e.fs.resolvePath(e.cwd,`${t}/computer-record-${n}.mjpeg`)}async function U(e,t){let n=e;typeof n.rm==`function`&&await n.rm(t,{force:!0}).catch(()=>void 0)}function $e(e){let t=e instanceof Map?new Map(e):/* @__PURE__ */ new Map;return t.set(oe,`wasm`),t}async function et(e){let{runFfmpeg:t}=await import(`./run-B27RF7y5.js`),n=!e.sourcePath,r=e.sourcePath??Qe(e.ctx);n&&(await e.ctx.fs.mkdir(r.slice(0,r.lastIndexOf(`/`)),{recursive:!0}),await e.ctx.fs.writeFile(r,We(e.frames)));try{let n=await t([`-y`,`-hide_banner`,`-nostdin`,`-f`,`image2pipe`,`-c:v`,`mjpeg`,`-framerate`,e.frameRate??String(e.fps),`-i`,r,`-an`,`-vf`,`scale=trunc(iw/2)*2:trunc(ih/2)*2`,`-c:v`,`libvpx`,`-b:v`,`1M`,`-pix_fmt`,`yuv420p`,e.dest],{...e.ctx,env:$e(e.ctx.env)});if(n.exitCode!==0){let e=n.stderr.trim()||`ffmpeg failed`;throw Error(e)}return{mime:`video/webm`}}finally{n&&await U(e.ctx.fs,r)}}async function tt(e,t){let n=await e.fs.readFile(t,{encoding:`binary`});return n instanceof Uint8Array?Uint8Array.from(n):/* @__PURE__ */ new Uint8Array}async function nt(e){let t=Ke(e.fps),n=Qe(e.ctx);await e.ctx.fs.mkdir(n.slice(0,n.lastIndexOf(`/`)),{recursive:!0}),await e.ctx.fs.writeFile(n,/* @__PURE__ */ new Uint8Array);try{let r=await Ze({screenshot:e.screenshot,durationMs:e.durationMs,fps:t,now:e.now,sleep:e.sleep,onFrame:t=>qe(e.ctx.fs,n,t)}),{mime:i}=await(e.encode??et)({frames:[],sourcePath:n,fps:t,frameRate:r.frameRate,dest:e.dest,width:r.width,height:r.height,durationMs:r.durationMs,ctx:e.ctx}),a=/* @__PURE__ */ new Uint8Array;try{a=await tt(e.ctx,e.dest)}catch{}return{bytes:a,mime:i,width:r.width,height:r.height,durationMs:r.durationMs,frames:r.frameCount,fps:r.achievedFps,requestedFps:t,...r.truncated?{truncated:!0}:{},...r.slow?{slow:!0}:{}}}finally{await U(e.ctx.fs,n)}}const rt=/* @__PURE__ */ new Set;let W;function it(e){if(typeof e!=`object`||!e)return!1;let t=Object.getOwnPropertyDescriptor(e,`type`)?.value,n=Object.getOwnPropertyDescriptor(e,`id`)?.value;return(t===`begin`||t===`end`)&&typeof n==`string`}function at(e){e.type===`begin`?rt.add(e.id):rt.delete(e.id)}function ot(){if(W===void 0){if(typeof BroadcastChannel!=`function`){W=null;return}try{W=new BroadcastChannel(`slicc-screen-share-approval`)}catch{W=null;return}W.onmessage=e=>{it(e.data)&&at(e.data)}}}function st(e){ot(),at(e);try{W?.postMessage(e)}catch{}}function ct(e){st({type:`begin`,id:e})}function lt(e){st({type:`end`,id:e})}const G=Symbol(`screen-share-approval-timeout`);function ut(){return`
67
+ `,Ne=[`-c`,`--computer`,`--size`,`--at`,`--hold`,`--repeat`,`--fps`,`-n`,`--name`,`--__resolved`,`-V`,`--duration`,`--sim`,`--display`],j=/* @__PURE__ */ new Set([`ls`,`add`,`rm`,`use`,`info`,`screenshot`,`text`,`watch`,`record`,`mousemove`,`click`,`mousedown`,`mouseup`,`drag`,`scroll`,`key`,`keydown`,`keyup`,`type`,`wait`,`exec`]),M={left_click:`click`,right_click:`click`,middle_click:`click`,double_click:`click`,triple_click:`click`,left_click_drag:`drag`,mouse_move:`mousemove`,screenshot:`screenshot`,wait:`wait`,key:`key`,type:`type`,scroll:`scroll`},Pe=/* @__PURE__ */ new Set([`type`,`key`,`exec`,`add`]),N=/* @__PURE__ */ new Set([`--size`,`--at`,`--hold`,`--repeat`,`--fps`,`-n`,`--name`,`-c`,`--computer`,`--__resolved`,`-V`,`--duration`,`--sim`,`--display`]);function P(e){return j.has(e)||e in M}function Fe(e){return j.has(e)?e:M[e]??null}function Ie(e){let t=[],n,r=!1,i=!1;for(let a=0;a<e.length;a++){let o=e[a];if(o===`--`){t.push(...e.slice(a));break}if(o===`--json`){r=!0;continue}if(o===`--native`){i=!0;continue}if(o===`-c`||o===`--computer`){n=e[++a];continue}t.push(o)}return{computer:n,json:r,native:i,rest:t}}function Le(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r===`--`){n+=1;continue}let i=Fe(r);if(!i)throw Error(`unknown verb '${r}' — see \`computer --help\``);n+=1;let{args:a,next:o}=ze(i,e,n);t.push({verb:i,alias:r,args:Re(r,i,a)}),n=o}return t}function Re(e,t,n){return t===`click`?e===`left_click`?F(n,`1`):e===`middle_click`?F(n,`2`):e===`right_click`?F(n,`3`):e===`double_click`?[...F(n,`1`),`--repeat`,`2`]:e===`triple_click`?[...F(n,`1`),`--repeat`,`3`]:n:n}function F(e,t){return e[0]===`1`||e[0]===`2`||e[0]===`3`?e:[t,...e]}function ze(e,t,n){return Pe.has(e)?Be(t,n):Ve(Ue(e),t,n)}function Be(e,t){let n=[],r=t,i=!1;for(;r<e.length;){let t=e[r];if(!i&&t===`--`){i=!0,r+=1;continue}if(!i&&P(t))break;n.push(t),r+=1}return{args:n,next:r}}function I(e){return e.startsWith(`--`)||e===`-n`||e===`-c`||e===`-V`}function L(e,t,n){let r=e[t];return n.push(r),t+=1,N.has(r)&&t<e.length&&(n.push(e[t]),t+=1),t}function Ve(e,t,n){let r=[],i=n,a=0;for(;i<t.length;){let n=t[i];if(n===`--`){i+=1;continue}if(I(n)){i=L(t,i,r);continue}if(P(n))break;if(r.push(n),a+=1,i+=1,a>=e&&e>0){i=He(t,i,r);break}}return{args:r,next:i}}function He(e,t,n){let r=t;for(;r<e.length&&I(e[r]);)r=L(e,r,n);return r}function Ue(e){switch(e){case`mousemove`:return 2;case`drag`:return 4;case`scroll`:return 2;case`click`:case`mousedown`:case`mouseup`:return 3;case`wait`:case`keydown`:case`keyup`:case`rm`:case`use`:return 1;case`screenshot`:return 1;case`record`:return 1;default:return 0}}function R(e){let t=e.indexOf(`--at`);if(t===-1)return;let n=e[t+1],r=n?/^(-?\d+),(-?\d+)$/u.exec(n):null;if(!r)throw Error(`--at requires x,y`);return{x:Number(r[1]),y:Number(r[2])}}function z(e,t){let n=e.indexOf(t);if(n===-1)return;let r=Number.parseInt(e[n+1]??``,10);if(!Number.isFinite(r))throw Error(`${t} requires a number`);return r}function B(e,t){return e.includes(t)}function V(e,t){for(let n of t){let t=e.indexOf(n);if(t!==-1)return e[t+1]}}function H(e){let t=[];for(let n=0;n<e.length;n++){let r=e[n];if(r===`--`){t.push(...e.slice(n+1));break}if(r.startsWith(`--`)||r===`-n`||r===`-c`||r===`-V`){N.has(r)&&(n+=1);continue}t.push(r)}return t}function We(e){let t=0;for(let n of e)t+=n.byteLength;let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.byteLength;return n}function Ge(e){return new Promise(t=>{setTimeout(t,e)})}function Ke(e){return Math.min(10,Math.max(1,e))}async function qe(e,t,n){let r=e;if(typeof r.appendFile==`function`){await r.appendFile(t,n);return}let i=/* @__PURE__ */ new Uint8Array;if(typeof r.readFile==`function`)try{let e=await r.readFile(t,{encoding:`binary`});e instanceof Uint8Array&&(i=Uint8Array.from(e))}catch{}let a=new Uint8Array(i.byteLength+n.byteLength);a.set(i,0),a.set(n,i.byteLength),await e.writeFile(t,a)}function Je(e,t){let n=e,r=t;for(;r>0;)[n,r]=[r,n%r];return n}function Ye(e,t,n,r,i){let a=Math.max(1,Math.round(t),Math.min(e*n,r)),o=e*1e3,s=Je(o,a),c=o/a;return{durationMs:a,frameRate:`${o/s}/${a/s}`,achievedFps:Math.round(c*100)/100,slow:c<i*.9}}function Xe(e,t){return e>0&&(e>=600||t>8388608)}async function Ze(e){let t=Ke(e.fps),n=Math.max(1,Math.round(1e3/t)),r=e.now??Date.now,i=e.sleep??Ge,a=r(),o=a+e.durationMs,s=0,c=0,l=0,u=0,d=!1;for(;;){let t=await e.screenshot(),f=u+t.bytes.byteLength;if(Xe(l,f)){d=!0;break}s=t.width,c=t.height,await e.onFrame?.(t.bytes),l+=1,u=f;let p=l>=600||u>=8388608,m=r(),h=Math.max(m,a+l*n);if(p||h>=o){d=p&&h<o;break}await i(h-m)}let f=Ye(l,r()-a,n,e.durationMs,t);return{width:s,height:c,frameCount:l,byteLength:u,truncated:d,...f}}function Qe(e){let t=f(e.env).replace(/\/$/u,``),n=crypto.randomUUID();return e.fs.resolvePath(e.cwd,`${t}/computer-record-${n}.mjpeg`)}async function U(e,t){let n=e;typeof n.rm==`function`&&await n.rm(t,{force:!0}).catch(()=>void 0)}function $e(e){let t=e instanceof Map?new Map(e):/* @__PURE__ */ new Map;return t.set(oe,`wasm`),t}async function et(e){let{runFfmpeg:t}=await import(`./run-C1jQodOF.js`),n=!e.sourcePath,r=e.sourcePath??Qe(e.ctx);n&&(await e.ctx.fs.mkdir(r.slice(0,r.lastIndexOf(`/`)),{recursive:!0}),await e.ctx.fs.writeFile(r,We(e.frames)));try{let n=await t([`-y`,`-hide_banner`,`-nostdin`,`-f`,`image2pipe`,`-c:v`,`mjpeg`,`-framerate`,e.frameRate??String(e.fps),`-i`,r,`-an`,`-vf`,`scale=trunc(iw/2)*2:trunc(ih/2)*2`,`-c:v`,`libvpx`,`-b:v`,`1M`,`-pix_fmt`,`yuv420p`,e.dest],{...e.ctx,env:$e(e.ctx.env)});if(n.exitCode!==0){let e=n.stderr.trim()||`ffmpeg failed`;throw Error(e)}return{mime:`video/webm`}}finally{n&&await U(e.ctx.fs,r)}}async function tt(e,t){let n=await e.fs.readFile(t,{encoding:`binary`});return n instanceof Uint8Array?Uint8Array.from(n):/* @__PURE__ */ new Uint8Array}async function nt(e){let t=Ke(e.fps),n=Qe(e.ctx);await e.ctx.fs.mkdir(n.slice(0,n.lastIndexOf(`/`)),{recursive:!0}),await e.ctx.fs.writeFile(n,/* @__PURE__ */ new Uint8Array);try{let r=await Ze({screenshot:e.screenshot,durationMs:e.durationMs,fps:t,now:e.now,sleep:e.sleep,onFrame:t=>qe(e.ctx.fs,n,t)}),{mime:i}=await(e.encode??et)({frames:[],sourcePath:n,fps:t,frameRate:r.frameRate,dest:e.dest,width:r.width,height:r.height,durationMs:r.durationMs,ctx:e.ctx}),a=/* @__PURE__ */ new Uint8Array;try{a=await tt(e.ctx,e.dest)}catch{}return{bytes:a,mime:i,width:r.width,height:r.height,durationMs:r.durationMs,frames:r.frameCount,fps:r.achievedFps,requestedFps:t,...r.truncated?{truncated:!0}:{},...r.slow?{slow:!0}:{}}}finally{await U(e.ctx.fs,n)}}const rt=/* @__PURE__ */ new Set;let W;function it(e){if(typeof e!=`object`||!e)return!1;let t=Object.getOwnPropertyDescriptor(e,`type`)?.value,n=Object.getOwnPropertyDescriptor(e,`id`)?.value;return(t===`begin`||t===`end`)&&typeof n==`string`}function at(e){e.type===`begin`?rt.add(e.id):rt.delete(e.id)}function ot(){if(W===void 0){if(typeof BroadcastChannel!=`function`){W=null;return}try{W=new BroadcastChannel(`slicc-screen-share-approval`)}catch{W=null;return}W.onmessage=e=>{it(e.data)&&at(e.data)}}}function st(e){ot(),at(e);try{W?.postMessage(e)}catch{}}function ct(e){st({type:`begin`,id:e})}function lt(e){st({type:`end`,id:e})}const G=Symbol(`screen-share-approval-timeout`);function ut(){return`
68
68
  <div class="sprinkle-action-card">
69
69
  <div class="sprinkle-action-card__header">
70
70
  <div class="sprinkle-action-card__title-group">Share this display</div>
@@ -79,7 +79,7 @@ v86 guests register as v86:<name> on \`v86 start\`. Prefer this command;
79
79
  `),a,o,r.computer,t,r.json);return{stdout:d?`${d}\n`:``,stderr:c.length?`${c.join(`
80
80
  `)}\n`:``,exitCode:0}}async function Ot(e,t,n,r,i){switch(e.verb){case`ls`:return kt(i,t.json);case`add`:return At(e.args,n,r,i);case`rm`:return Rt(e.args,t.computer,n,i);case`use`:return zt(e.args,i);case`info`:return Bt(t,n,i);case`screenshot`:return Vt(e.args,t,n,i);case`text`:return Ht(t,n,i);case`watch`:return Ut(e.args,t,n,i,r);case`record`:return Kt(e.args,t,n,i,r);case`exec`:return Xt(e.args,t,n,i);default:return Zt(e,t,n,i,r)}}function kt(e,t){let n=e.list();if(t){let t=n.map(t=>{let n=e.nameOf(t.id);return n?{...t,name:n}:t});return J(`${JSON.stringify(t)}\n`)}if(n.length===0)return J(`no computers registered
81
81
  `);let r=[`ID KIND STATE NAME TITLE`];for(let t of n){let n=e.nameOf(t.id)??`-`;r.push(`${t.id.padEnd(20)} ${t.kind.padEnd(6)} ${t.state.padEnd(9)} ${n.padEnd(10)} ${t.title}${Tt(t)}`)}return J(`${r.join(`
82
- `)}\n`)}async function At(e,t,n,r){let i=e[0];return i===`tab`?Ft(e,t,n,r):i===`screen`?Lt(e,t,n,r):i===`ssh`?Pt(e,t,n,r):i===`url`?Mt(e,t,n,r):q(`add: unknown kind '${i??``}' — phase 3 supports \`computer add tab\`, \`computer add screen\`, \`computer add ssh\`, and \`computer add url\``)}async function jt(e){if(e.urlFetch)return e.urlFetch;let{createProxiedFetch:t}=await import(`./proxied-fetch-1DfC_94U.js`).then(e=>e.o),{wrapUrlComputerFetch:n}=await import(`./url-BDqgt-wP.js`),r=t();return n((e,t)=>r(e,t))}async function Mt(e,t,n,r){let i=V(e,[`-n`,`--name`]),a=H(e).slice(1)[0];if(!a)return q(`add url: requires <http(s)://base>`);let{UrlComputerBackend:o,probeUrlComputer:s,normalizeComputerBase:c}=await import(`./url-BDqgt-wP.js`),l;try{l=c(a)}catch(e){return q(`add url: ${e instanceof Error?e.message:String(e)}`)}let u=await jt(n),d;try{d=await s(u,l)}catch(e){let t=e instanceof Error?e.message:String(e);return q(t.startsWith(`add url:`)?t:`add url: ${t}`)}i&&(d={...d,title:i});let f=new o(u,l,d),p=r.register(f,{name:i});return r.use(p.id),J(`registered ${p.id} (${i??p.title})\n`)}function Nt(e,t,n){if(t.computer&&!n)return e.nativeComputer?.(t.runtimeId)??vt(e,t.runtimeId)}async function Pt(e,t,n,r){let i=V(e,[`-n`,`--name`]),a=V(e,[`--sim`]),o=B(e,`--allow-input`),s=V(e,[`--display`]),c=H(e).slice(1)[0];if(!c)return q(`add ssh: requires <follower>`);let l;if(s!==void 0){if(l=Number(s),!Number.isSafeInteger(l)||l<1||l>64)return q(`add ssh: --display takes a 1-based display number, got '${s}'`);if(a)return q(`add ssh: --display and --sim are exclusive`)}let u=wt(c,yt(n));if(`error`in u)return q(u.error);if(u.floatType===`ios`)return q(`add ssh: the iOS follower itself is not a driven computer (a real iPhone is out of scope; pass --sim <udid> on a Mac follower)`);if(a&&!u.exec)return q(`add ssh: --sim needs an exec-capable Mac follower`);let{SshComputerBackend:d,probeSsh:f}=await import(`./ssh-BWB-0psx.js`),p=Nt(n,u,a),m=u.exec?(e,t)=>Ct(n,u.runtimeId,e,t?.timeoutMs):async()=>{throw Error(`follower has no exec capability`)},h=await xt(m,a,!!u.exec,!!p,f);if(`error`in h)return q(h.error);if(o){let e=await St(n,u,a,!!p,h.input);if(e)return e}if(l!==void 0&&!p)return q(`add ssh: --display needs a native-capture (computer-capable) Mac follower`);let g=i??(a?`${u.runtimeId} sim ${a}`:l?`${u.runtimeId} display ${l}`:u.runtimeId),_=new d(m,{runtimeId:u.runtimeId,title:g,probe:h,inputAllowed:o,sim:a,display:l,native:p}),v=r.register(_,{name:i});return r.use(v.id),J(`registered ${v.id} (${i??v.title})\n`)}async function Ft(e,t,n,r){let i=V(e,[`-n`,`--name`]),a=H(e).slice(1)[0];if(!a)return q(`add tab: requires <targetId|url>`);let o=gt(n);if(!o)return q(`add tab: no browser API in this float`);let s=ke(await o.listAllTargets(),a);if(`error`in s)return q(s.error);try{T(s)}catch(e){return q(e instanceof Error?e.message:String(e))}let c={title:s.title,url:s.url},l=n.browser&&!n.panelRpc?null:Y(n),u=l?new we(l,s.targetId,c):new Se(o,s.targetId,c),d=r.register(u,{name:i});return r.use(d.id),J(`registered ${d.id} (${i??d.title})\n`)}async function It(e){if(!e)throw Error("add screen: needs a user gesture — type `computer add screen` in the panel terminal, or run it from a cone tool call so an approval card can open the picker");let t=await e.call(`screencapture`,{mimeType:`image/jpeg`,quality:.7,mode:`session`,session:`start`},{timeoutMs:3e5});if(!t.handle)throw Error(`add screen: screen share produced no handle`);return t.handle}async function Lt(e,t,n,r){let i=V(e,[`-n`,`--name`]),a=V(e,[`--__resolved`]),s=Y(n),c=a;if(!c)try{c=o()?(await dt()).handle:await It(s)}catch(e){return q(e instanceof Error?e.message:String(e))}if(!s)return q(`add screen: no panel RPC in this float`);let{BridgedScreenComputerBackend:l,screenComputerId:u}=await import(`./screen-Bc4GqI3U.js`),d=new l(s,c,{title:i??`Display`},()=>{r.refresh(u(c))}),f=r.register(d,{name:i});return r.use(f.id),J(`registered ${f.id} (${i??f.title})\n`)}async function Rt(e,t,n,r){let i=K(r,H(e)[0]??t,Q(n));return`error`in i?q(i.error):await r.unregister(i.id)?J(`unregistered ${i.id}\n`):q(`unknown computer '${i.id}'`)}function zt(e,t){let n=H(e)[0];if(!n)return q(`use: requires <id>`);let r=K(t,n,/* @__PURE__ */ new Map);return`error`in r?q(r.error):(t.use(r.id),J(`using ${r.id}\n`))}function Bt(e,t,n){let r=K(n,e.computer,Q(t));if(`error`in r)return q(r.error);let i=n.getEntry(r.id);if(!i)return q(`unknown computer '${r.id}'`);let a=n.nameOf(r.id);if(e.json)return J(`${JSON.stringify(a?{...i.descriptor,name:a}:i.descriptor)}\n`);let o=i.descriptor,s=o.size?`${o.size.width}x${o.size.height}`:`-`;return J(`id: ${o.id}\nname: ${a??`-`}\nkind: ${o.kind}\ntitle: ${o.title}\nstate: ${o.state}\nsize: ${s}\npid: ${o.pid??`-`}\n`)}async function Vt(e,n,r,i){let a=Z(i,n.computer,r);if(`exitCode`in a)return a;let o=ge(V(e,[`--size`])),s=await a.backend.screenshot({format:`jpeg`,maxWidth:o}),c=_e(a.backend.describe().size??{width:s.width,height:s.height},{width:s.width,height:s.height});i.rememberShot(a.id,ye(c,Date.now()),s);let l=s.seq>0?s.seq:i.nextSeq(a.id),u=await v({fs:r.fs,cwd:r.cwd,env:r.env,name:$(a.descriptor),seq:l,frame:s}),d=H(e)[0];if(d){let e=r.fs.resolvePath(r.cwd,d);await r.fs.writeFile(e,s.bytes)}let f=[ve(c),ee(u)];return(B(e,`--view`)||B(e,`-v`))&&f.push(`<img:data:${s.mime};base64,${t(s.bytes)}>`),n.json?J(`${JSON.stringify({id:a.id,path:u,mapping:c})}\n`):J(`${f.join(`
82
+ `)}\n`)}async function At(e,t,n,r){let i=e[0];return i===`tab`?Ft(e,t,n,r):i===`screen`?Lt(e,t,n,r):i===`ssh`?Pt(e,t,n,r):i===`url`?Mt(e,t,n,r):q(`add: unknown kind '${i??``}' — phase 3 supports \`computer add tab\`, \`computer add screen\`, \`computer add ssh\`, and \`computer add url\``)}async function jt(e){if(e.urlFetch)return e.urlFetch;let{createProxiedFetch:t}=await import(`./proxied-fetch-1DfC_94U.js`).then(e=>e.o),{wrapUrlComputerFetch:n}=await import(`./url-BDqgt-wP.js`),r=t();return n((e,t)=>r(e,t))}async function Mt(e,t,n,r){let i=V(e,[`-n`,`--name`]),a=H(e).slice(1)[0];if(!a)return q(`add url: requires <http(s)://base>`);let{UrlComputerBackend:o,probeUrlComputer:s,normalizeComputerBase:c}=await import(`./url-BDqgt-wP.js`),l;try{l=c(a)}catch(e){return q(`add url: ${e instanceof Error?e.message:String(e)}`)}let u=await jt(n),d;try{d=await s(u,l)}catch(e){let t=e instanceof Error?e.message:String(e);return q(t.startsWith(`add url:`)?t:`add url: ${t}`)}i&&(d={...d,title:i});let f=new o(u,l,d),p=r.register(f,{name:i});return r.use(p.id),J(`registered ${p.id} (${i??p.title})\n`)}function Nt(e,t,n){if(t.computer&&!n)return e.nativeComputer?.(t.runtimeId)??vt(e,t.runtimeId)}async function Pt(e,t,n,r){let i=V(e,[`-n`,`--name`]),a=V(e,[`--sim`]),o=B(e,`--allow-input`),s=V(e,[`--display`]),c=H(e).slice(1)[0];if(!c)return q(`add ssh: requires <follower>`);let l;if(s!==void 0){if(l=Number(s),!Number.isSafeInteger(l)||l<1||l>64)return q(`add ssh: --display takes a 1-based display number, got '${s}'`);if(a)return q(`add ssh: --display and --sim are exclusive`)}let u=wt(c,yt(n));if(`error`in u)return q(u.error);if(u.floatType===`ios`)return q(`add ssh: the iOS follower itself is not a driven computer (a real iPhone is out of scope; pass --sim <udid> on a Mac follower)`);if(a&&!u.exec)return q(`add ssh: --sim needs an exec-capable Mac follower`);let{SshComputerBackend:d,probeSsh:f}=await import(`./ssh-CAQr291h.js`),p=Nt(n,u,a),m=u.exec?(e,t)=>Ct(n,u.runtimeId,e,t?.timeoutMs):async()=>{throw Error(`follower has no exec capability`)},h=await xt(m,a,!!u.exec,!!p,f);if(`error`in h)return q(h.error);if(o){let e=await St(n,u,a,!!p,h.input);if(e)return e}if(l!==void 0&&!p)return q(`add ssh: --display needs a native-capture (computer-capable) Mac follower`);let g=i??(a?`${u.runtimeId} sim ${a}`:l?`${u.runtimeId} display ${l}`:u.runtimeId),_=new d(m,{runtimeId:u.runtimeId,title:g,probe:h,inputAllowed:o,sim:a,display:l,native:p}),v=r.register(_,{name:i});return r.use(v.id),J(`registered ${v.id} (${i??v.title})\n`)}async function Ft(e,t,n,r){let i=V(e,[`-n`,`--name`]),a=H(e).slice(1)[0];if(!a)return q(`add tab: requires <targetId|url>`);let o=gt(n);if(!o)return q(`add tab: no browser API in this float`);let s=ke(await o.listAllTargets(),a);if(`error`in s)return q(s.error);try{T(s)}catch(e){return q(e instanceof Error?e.message:String(e))}let c={title:s.title,url:s.url},l=n.browser&&!n.panelRpc?null:Y(n),u=l?new we(l,s.targetId,c):new Se(o,s.targetId,c),d=r.register(u,{name:i});return r.use(d.id),J(`registered ${d.id} (${i??d.title})\n`)}async function It(e){if(!e)throw Error("add screen: needs a user gesture — type `computer add screen` in the panel terminal, or run it from a cone tool call so an approval card can open the picker");let t=await e.call(`screencapture`,{mimeType:`image/jpeg`,quality:.7,mode:`session`,session:`start`},{timeoutMs:3e5});if(!t.handle)throw Error(`add screen: screen share produced no handle`);return t.handle}async function Lt(e,t,n,r){let i=V(e,[`-n`,`--name`]),a=V(e,[`--__resolved`]),s=Y(n),c=a;if(!c)try{c=o()?(await dt()).handle:await It(s)}catch(e){return q(e instanceof Error?e.message:String(e))}if(!s)return q(`add screen: no panel RPC in this float`);let{BridgedScreenComputerBackend:l,screenComputerId:u}=await import(`./screen-Bc4GqI3U.js`),d=new l(s,c,{title:i??`Display`},()=>{r.refresh(u(c))}),f=r.register(d,{name:i});return r.use(f.id),J(`registered ${f.id} (${i??f.title})\n`)}async function Rt(e,t,n,r){let i=K(r,H(e)[0]??t,Q(n));return`error`in i?q(i.error):await r.unregister(i.id)?J(`unregistered ${i.id}\n`):q(`unknown computer '${i.id}'`)}function zt(e,t){let n=H(e)[0];if(!n)return q(`use: requires <id>`);let r=K(t,n,/* @__PURE__ */ new Map);return`error`in r?q(r.error):(t.use(r.id),J(`using ${r.id}\n`))}function Bt(e,t,n){let r=K(n,e.computer,Q(t));if(`error`in r)return q(r.error);let i=n.getEntry(r.id);if(!i)return q(`unknown computer '${r.id}'`);let a=n.nameOf(r.id);if(e.json)return J(`${JSON.stringify(a?{...i.descriptor,name:a}:i.descriptor)}\n`);let o=i.descriptor,s=o.size?`${o.size.width}x${o.size.height}`:`-`;return J(`id: ${o.id}\nname: ${a??`-`}\nkind: ${o.kind}\ntitle: ${o.title}\nstate: ${o.state}\nsize: ${s}\npid: ${o.pid??`-`}\n`)}async function Vt(e,n,r,i){let a=Z(i,n.computer,r);if(`exitCode`in a)return a;let o=ge(V(e,[`--size`])),s=await a.backend.screenshot({format:`jpeg`,maxWidth:o}),c=_e(a.backend.describe().size??{width:s.width,height:s.height},{width:s.width,height:s.height});i.rememberShot(a.id,ye(c,Date.now()),s);let l=s.seq>0?s.seq:i.nextSeq(a.id),u=await v({fs:r.fs,cwd:r.cwd,env:r.env,name:$(a.descriptor),seq:l,frame:s}),d=H(e)[0];if(d){let e=r.fs.resolvePath(r.cwd,d);await r.fs.writeFile(e,s.bytes)}let f=[ve(c),ee(u)];return(B(e,`--view`)||B(e,`-v`))&&f.push(`<img:data:${s.mime};base64,${t(s.bytes)}>`),n.json?J(`${JSON.stringify({id:a.id,path:u,mapping:c})}\n`):J(`${f.join(`
83
83
  `)}\n`)}async function Ht(e,t,n){let r=Z(n,e.computer,t);if(`exitCode`in r)return r;if(!r.backend.text)return q(`text: '${r.id}' has no text dump`);let i=await r.backend.text();return i===null?q(`text: unavailable for '${r.id}'`):J(`${i}\n`)}async function Ut(e,t,n,r,i){let a=Z(r,t.computer,n);if(`exitCode`in a)return a;let o=Yt(i);if(!o)return q(`watch: computers host is not running`);if(B(e,`--stop`))return o.unwatch(a.id),J(`unwatched ${a.id}\n`);let s=z(e,`--fps`)??2,c=ge(V(e,[`--size`]));return o.watch(a.id,s,c),J(`watching ${a.id} at ${s} fps\n`)}function Wt(e){return`recordClip`in e&&typeof e.recordClip==`function`}function Gt(e){let t=V(e,[`-V`,`--duration`]);if(t===void 0)return 5;let n=Number(t);if(!Number.isFinite(n)||n<=0)throw Error(`-V/--duration requires a positive number of seconds`);return n}async function Kt(e,t,n,r,i){let a=Z(r,t.computer,n);if(`exitCode`in a)return a;let o,s;try{o=Gt(e),s=z(e,`--fps`)??2}catch(e){return q(e instanceof Error?e.message:String(e))}if(s<=0)return q(`--fps requires a positive number`);if(s>10)return q(`--fps exceeds 10`);let c=p(o*1e3),l=H(e)[0]??`clip.webm`,u=n.fs.resolvePath(n.cwd,l),d;try{d=Wt(a.backend)?await a.backend.recordClip(c):await Jt(a.backend,c,s,u,n,i)}catch(e){return q(`record: ${e instanceof Error?e.message:String(e)}`)}d.bytes.byteLength>0&&await n.fs.writeFile(u,d.bytes);let f=d.durationMs??c;return t.json?J(`${JSON.stringify({id:a.id,path:u,durationMs:f,mime:d.mime,...d.frames===void 0?{}:{frames:d.frames},...d.fps===void 0?{}:{fps:d.fps},...d.requestedFps===void 0?{}:{requestedFps:d.requestedFps},...d.truncated?{truncated:!0}:{},...d.slow?{slow:!0}:{}})}\n`):J(`recorded ${f}ms ${d.width}x${d.height}${qt(d)} → ${u}\n`)}function qt(e){let t=[];if(e.frames!==void 0&&e.fps!==void 0){let n=e.slow&&e.requestedFps!==void 0?`, below --fps ${e.requestedFps}`:``;t.push(`${e.frames} frames at ${e.fps} fps${n}`)}return e.truncated&&t.push(`truncated`),t.length>0?` (${t.join(`; `)})`:``}async function Jt(e,t,n,r,i,a){let o=e.screenshotServesStream?e.subscribe?.(n,()=>{},768):void 0;try{return await nt({screenshot:()=>e.screenshot({format:`jpeg`,maxWidth:768}),durationMs:t,fps:n,dest:r,ctx:i,encode:a.encodeRecordedFrames})}finally{o?.()}}function Yt(e){if(e.watch)return{watch:e.watch,unwatch:e.unwatch??(()=>void 0)};let t=y();return t?{watch:t.watch,unwatch:t.unwatch}:null}async function Xt(e,t,n,r){let i=Z(r,t.computer,n);if(`exitCode`in i)return i;if(!i.backend.exec)return q(`exec: '${i.id}' does not support exec`);let a=e.join(` `);if(!a)return q(`exec: requires a command`);let o=await i.backend.exec(a),s=[o.stdout,o.stderr].filter(Boolean).join(`
84
84
  `);return{stdout:s?`${s}\n`:``,stderr:``,exitCode:o.exitCode}}async function Zt(e,t,n,r,i){let a=Z(r,t.computer,n);if(`exitCode`in a)return a;let o=rn(e,t.native,a.descriptor),s=je(a.descriptor.capabilities,o);if(s)return q(`${e.verb}: ${s}`);try{await a.backend.input(o)}catch(t){return q(`${e.verb}: ${t instanceof Error?t.message:String(t)}`)}return tn(a,n,r,i)}function Qt(e,t){return t.isWatching?t.isWatching(e):y()?.isWatching(e)??!1}function $t(e,t){let n=e.descriptor.capabilities.frames===`push`;return e.backend.screenshot({format:`jpeg`,maxWidth:t,...n?{pull:!0}:{}})}async function en(e,t,n){if(!(e.descriptor.capabilities.frames===`push`&&Qt(e.id,n)))return $t(e,t);let r=new AbortController,i=n.postActionTimeoutMs??5e3;try{return await nn(e.backend.screenshot({format:`jpeg`,maxWidth:t,signal:r.signal}),i)}catch{return r.abort(),$t(e,t)}}async function tn(e,t,n,r){let i=e.descriptor.lastShot?.width??768,a;try{a=await en(e,i,r)}catch(e){return{stdout:``,stderr:`computer: screenshot failed after input: ${e instanceof Error?e.message:String(e)}\n`,exitCode:0}}let o=n.nextSeq(e.id),s={...a,seq:o};n.rememberFrame(e.id,s);let c=await v({fs:t.fs,cwd:t.cwd,env:t.env,name:$(e.descriptor),seq:o,frame:s});return J(`${ee(c)}\n`)}function nn(e,t){return new Promise((n,r)=>{let i=setTimeout(()=>r(/* @__PURE__ */ Error(`timed out`)),t);e.then(e=>{clearTimeout(i),n(e)},e=>{clearTimeout(i),r(e)})})}function rn(e,t,n){let r=(e,r)=>be(e,r,n.lastShot,t);switch(e.verb){case`mousemove`:return an(e.args,r);case`click`:case`mousedown`:case`mouseup`:return on(e.verb,e.args,r);case`drag`:return sn(e.args,r,n.capabilities.mouse);case`scroll`:return cn(e.args,r);case`key`:case`keydown`:case`keyup`:return ln(e.verb,e.args);case`type`:return un(e.args);case`wait`:return dn(e.args);default:throw Error(`internal: ${e.verb} is not an input verb`)}}function an(e,t){let n=H(e),r=Number(n[0]),i=Number(n[1]);if(!Number.isFinite(r)||!Number.isFinite(i))throw Error(`mousemove: requires <x> <y>`);let a=B(e,`--relative`),o=a?{x:r,y:i}:t(r,i);return[{type:`mousemove`,x:o.x,y:o.y,relative:a}]}function on(e,t,n){let r=H(t),{button:i,skip:a}=fn(r),o=R(t)??mn(r,a),s=o?n(o.x,o.y):void 0;if(e===`mousedown`)return[{type:`button`,button:i,down:!0,...X(s)}];if(e===`mouseup`)return[{type:`button`,button:i,down:!1,...X(s)}];let c=z(t,`--hold`);return[{type:`click`,button:i,count:z(t,`--repeat`)??1,...c===void 0?{}:{holdMs:c},...X(s)}]}function sn(e,t,n){let r=H(e).map(Number);if(r.length<4||r.some(e=>!Number.isFinite(e)))throw Error(`drag: requires <x1> <y1> <x2> <y2>`);let i=t(r[0],r[1]),a=t(r[2],r[3]);return n===`touch`?[{type:`drag`,x1:i.x,y1:i.y,x2:a.x,y2:a.y}]:[{type:`mousemove`,x:i.x,y:i.y},{type:`button`,button:1,down:!0,x:i.x,y:i.y},{type:`mousemove`,x:a.x,y:a.y},{type:`button`,button:1,down:!1,x:a.x,y:a.y}]}function cn(e,t){let n=H(e),r=Number(n[0]),i=Number(n[1]);if(!Number.isFinite(r)||!Number.isFinite(i))throw Error(`scroll: requires <dx> <dy>`);let a=R(e);return[{type:`scroll`,dx:r,dy:i,...X(a?t(a.x,a.y):void 0)}]}function ln(e,t){if(e===`key`){if(t.length===0)throw Error(`key: no keysym supplied`);return t.map(e=>({type:`key`,keysym:e}))}let n=H(t)[0];if(!n)throw Error(`${e}: no keysym supplied`);return[{type:`key`,keysym:n,down:e===`keydown`}]}function un(e){let t=e.join(` `).replace(/\\n/gu,`
85
85
  `).replace(/\\t/gu,` `);if(!t)throw Error(`type: no text supplied`);return[{type:`text`,text:t}]}function dn(e){let t=Number(H(e)[0]);if(!Number.isFinite(t))throw Error(`wait: requires <ms>`);return[{type:`wait`,ms:t}]}function fn(e){return e[0]===void 0?{button:1,skip:0}:e[0]===`left`||e[0]===`middle`||e[0]===`right`||e[0]===`1`||e[0]===`2`||e[0]===`3`?{button:pn(e[0]),skip:1}:{button:1,skip:0}}function pn(e){if(!e||e===`left`||e===`1`)return 1;if(e===`middle`||e===`2`)return 2;if(e===`right`||e===`3`)return 3;let t=Number.parseInt(e,10);if(t===1||t===2||t===3)return t;throw Error(`unknown button '${e}' (use 1|2|3)`)}function mn(e,t){let n=Number(e[t]),r=Number(e[t+1]);if(Number.isFinite(n)&&Number.isFinite(r))return{x:n,y:r}}function X(e){return e?{x:e.x,y:e.y}:{}}const hn=/* @__PURE__ */ new Set([`ls`,`add`,`rm`,`use`]);function gn(e,t,n,r,i,a){if(a||!t.some(e=>!hn.has(e.verb)))return e;let o=K(n,r,Q(i));if(`error`in o)return e;let s=re(o.id);return e.split(`
@@ -92,7 +92,7 @@ Examples:
92
92
  --authorize-url 'https://auth.x.ai/oauth2/auth?...' \\
93
93
  --redirect-pattern 'http://127.0.0.1:56121/*'
94
94
  curl -H "Authorization: Bearer $(oauth-token github)" https://api.github.com/user
95
- `}async function d(n,r){let i=await import(`./account-store-VtBgtCSL.js`).then(e=>e.t),a=await import(`./providers-_suqM9AH.js`).then(e=>e.r);if(t(n,{valueFlags:c}))return{stdout:u(),stderr:``,exitCode:0};let o=e(n,{value:c,bool:l});if(`error`in o)return H(`oauth-token: ${o.error}`);if(o.bools.has(`--list`))return U(i.getAccounts,a.getRegisteredProviderIds,a.getRegisteredProviderConfig,i.getOAuthAccountInfo);if(o.bools.has(`--check`))return T(o.positionals);if(o.bools.has(`--expire`))return O(o.positionals);if(o.bools.has(`--renew`))return k(o.positionals);if(o.values.has(`--from-file`)||o.bools.has(`--intercept`))return L(o,n,r);let s=f(o);if(!s.ok)return s.result;let d=o.bools.has(`--force-login`),m=p(o,i,a);if(!m.ok)return m.result;let _=h(m.value,a.getRegisteredProviderConfig);if(!_.ok)return _.result;if(!d){let e=await g(m.value,_.value,i.getOAuthAccountInfo,i.ensureOAuthMaskReplica,s.value);if(e?.ok)return e.value;if(e)return e.result}return b(m.value,_.value,s.value,i.getOAuthAccountInfo,i.ensureOAuthMaskReplica)}function f(e){if(!e.values.has(`--scope`))return{ok:!0,value:void 0};let t=e.values.get(`--scope`)?.trim();return!t||t.startsWith(`-`)?{ok:!1,result:H(`oauth-token: --scope requires a value`)}:{ok:!0,value:t}}function p(e,t,n){if(e.values.has(`--provider`)){let t=e.values.get(`--provider`);return t?{ok:!0,value:t}:{ok:!1,result:H(`oauth-token: --provider requires a value`)}}if(e.positionals.length>0)return{ok:!0,value:e.positionals[0]};let r=t.getSelectedProvider();if(m(n.getRegisteredProviderConfig(r)))return{ok:!0,value:r};let i=n.getRegisteredProviderIds().find(e=>m(n.getRegisteredProviderConfig(e)));return i?{ok:!0,value:i}:{ok:!1,result:H(`oauth-token: no OAuth providers configured`)}}function m(e){return!!(e?.isOAuth&&(e.onOAuthLogin||e.onOAuthLoginIntercepted))}function h(e,t){let n=t(e);return n?m(n)?{ok:!0,value:n}:{ok:!1,result:H(`oauth-token: provider "${e}" is not an OAuth provider`)}:{ok:!1,result:H(`oauth-token: unknown provider "${e}"`)}}async function g(e,t,n,r,i){let a=n(e);return a&&!a.expired?_(e,a,i,r):!a?.expired||!t.onSilentRenew||!await C(t.onSilentRenew)?null:_(e,n(e),i,r)}async function _(e,t,n,r){if(n&&!s(t?.scopes,n))return null;let i=v(t?.maskedValue,t?.token);if(i)return{ok:!0,value:i};if(!t?.token)return null;let a=await r(e)??{},o=v(a.maskedValue,t.token);return o?{ok:!0,value:o}:{ok:!1,result:y(e,a.error)}}function v(e,t){return!e||t&&e===t?null:{stdout:`${e}\n`,stderr:``,exitCode:0}}function y(e,t){return H(`oauth-token: token held for ${e} but no masked replica${t?` (${t})`:``}`)}async function b(e,t,n,r,i){try{let a=await x(e,t,n);return a.error?a.error:S(e,r,i,a.succeeded)}catch(t){let n=t instanceof Error?t.message:String(t);return t instanceof Error&&t.name===`OAuthLaunchError`?(console.error(`[oauth-token] Provider ${e}: login could not be shown:`,n),H(`oauth-token: ${n}`)):(console.error(`[oauth-token] Provider ${e}: login failed:`,n),H(`oauth-token: login failed: ${n}`))}}async function x(e,t,n){let r=n?{scopes:n}:void 0,i=!1,a=()=>{i=!0};if(t.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:n}=await import(`./oauth-service-a7hhn6wa.js`),o=await n();return o?(await t.onOAuthLoginIntercepted(o,a,r),{error:null,succeeded:i}):{error:H(`oauth-token: provider "${e}" needs the controlled-browser interceptor, but no CDP transport is available in this runtime.`),succeeded:!1}}if(t.onOAuthLogin){let{createOAuthLauncher:e}=await import(`./oauth-service-a7hhn6wa.js`);return await t.onOAuthLogin(e(),a,r),{error:null,succeeded:i}}return{error:H(`oauth-token: provider "${e}" has no OAuth login hook`),succeeded:!1}}async function S(e,t,n,r){if(!r)return console.error(`[oauth-token] Provider ${e}: interactive login was not completed`),H(`oauth-token: interactive login was not completed (cancelled, timed out, or no one could approve it)`);let i=t(e);if(i?.token&&!i.expired){let t=v(i.maskedValue,i.token);if(t)return t;let r=await n(e)??{};return v(r.maskedValue,i.token)||y(e,r.error)}return i?.token?H(`oauth-token: login completed but the saved token is already expired`):(console.error(`[oauth-token] Provider ${e}: login completed but no token was saved`),H(`oauth-token: login completed but no token was saved`))}async function C(e){try{return await e()!==null}catch{return!1}}function w(e,t,n,r,i){let a=e[0];if(a)return a;let o=n();return r(o)?.[t]?o:i().find(e=>r(e)?.[t])}async function T(e){let{getSelectedProvider:t,getOAuthAccountInfo:n}=await import(`./account-store-VtBgtCSL.js`).then(e=>e.t),{getRegisteredProviderConfig:r,getRegisteredProviderIds:i}=await import(`./providers-_suqM9AH.js`).then(e=>e.r),a=w(e,`onValidateToken`,t,r,i);if(!a)return H(`oauth-token --check: no provider supports an upstream token check`);let o=r(a);if(!o)return H(`oauth-token --check: unknown provider "${a}"`);if(!o.onValidateToken)return H(`oauth-token --check: provider "${a}" cannot be checked upstream (no onValidateToken hook); only locally stored state is known.`);let s=n(a),c=[`oauth-token --check ${a}`,` stored token: ${F(s)}`];if(!s)return c.push(` upstream check: skipped — nothing to check`,...M(a)),{stdout:c.join(`
95
+ `}async function d(n,r){let i=await import(`./account-store-CGTI5JyB.js`).then(e=>e.t),a=await import(`./providers-CR2LfFSo.js`).then(e=>e.r);if(t(n,{valueFlags:c}))return{stdout:u(),stderr:``,exitCode:0};let o=e(n,{value:c,bool:l});if(`error`in o)return H(`oauth-token: ${o.error}`);if(o.bools.has(`--list`))return U(i.getAccounts,a.getRegisteredProviderIds,a.getRegisteredProviderConfig,i.getOAuthAccountInfo);if(o.bools.has(`--check`))return T(o.positionals);if(o.bools.has(`--expire`))return O(o.positionals);if(o.bools.has(`--renew`))return k(o.positionals);if(o.values.has(`--from-file`)||o.bools.has(`--intercept`))return L(o,n,r);let s=f(o);if(!s.ok)return s.result;let d=o.bools.has(`--force-login`),m=p(o,i,a);if(!m.ok)return m.result;let _=h(m.value,a.getRegisteredProviderConfig);if(!_.ok)return _.result;if(!d){let e=await g(m.value,_.value,i.getOAuthAccountInfo,i.ensureOAuthMaskReplica,s.value);if(e?.ok)return e.value;if(e)return e.result}return b(m.value,_.value,s.value,i.getOAuthAccountInfo,i.ensureOAuthMaskReplica)}function f(e){if(!e.values.has(`--scope`))return{ok:!0,value:void 0};let t=e.values.get(`--scope`)?.trim();return!t||t.startsWith(`-`)?{ok:!1,result:H(`oauth-token: --scope requires a value`)}:{ok:!0,value:t}}function p(e,t,n){if(e.values.has(`--provider`)){let t=e.values.get(`--provider`);return t?{ok:!0,value:t}:{ok:!1,result:H(`oauth-token: --provider requires a value`)}}if(e.positionals.length>0)return{ok:!0,value:e.positionals[0]};let r=t.getSelectedProvider();if(m(n.getRegisteredProviderConfig(r)))return{ok:!0,value:r};let i=n.getRegisteredProviderIds().find(e=>m(n.getRegisteredProviderConfig(e)));return i?{ok:!0,value:i}:{ok:!1,result:H(`oauth-token: no OAuth providers configured`)}}function m(e){return!!(e?.isOAuth&&(e.onOAuthLogin||e.onOAuthLoginIntercepted))}function h(e,t){let n=t(e);return n?m(n)?{ok:!0,value:n}:{ok:!1,result:H(`oauth-token: provider "${e}" is not an OAuth provider`)}:{ok:!1,result:H(`oauth-token: unknown provider "${e}"`)}}async function g(e,t,n,r,i){let a=n(e);return a&&!a.expired?_(e,a,i,r):!a?.expired||!t.onSilentRenew||!await C(t.onSilentRenew)?null:_(e,n(e),i,r)}async function _(e,t,n,r){if(n&&!s(t?.scopes,n))return null;let i=v(t?.maskedValue,t?.token);if(i)return{ok:!0,value:i};if(!t?.token)return null;let a=await r(e)??{},o=v(a.maskedValue,t.token);return o?{ok:!0,value:o}:{ok:!1,result:y(e,a.error)}}function v(e,t){return!e||t&&e===t?null:{stdout:`${e}\n`,stderr:``,exitCode:0}}function y(e,t){return H(`oauth-token: token held for ${e} but no masked replica${t?` (${t})`:``}`)}async function b(e,t,n,r,i){try{let a=await x(e,t,n);return a.error?a.error:S(e,r,i,a.succeeded)}catch(t){let n=t instanceof Error?t.message:String(t);return t instanceof Error&&t.name===`OAuthLaunchError`?(console.error(`[oauth-token] Provider ${e}: login could not be shown:`,n),H(`oauth-token: ${n}`)):(console.error(`[oauth-token] Provider ${e}: login failed:`,n),H(`oauth-token: login failed: ${n}`))}}async function x(e,t,n){let r=n?{scopes:n}:void 0,i=!1,a=()=>{i=!0};if(t.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:n}=await import(`./oauth-service-a7hhn6wa.js`),o=await n();return o?(await t.onOAuthLoginIntercepted(o,a,r),{error:null,succeeded:i}):{error:H(`oauth-token: provider "${e}" needs the controlled-browser interceptor, but no CDP transport is available in this runtime.`),succeeded:!1}}if(t.onOAuthLogin){let{createOAuthLauncher:e}=await import(`./oauth-service-a7hhn6wa.js`);return await t.onOAuthLogin(e(),a,r),{error:null,succeeded:i}}return{error:H(`oauth-token: provider "${e}" has no OAuth login hook`),succeeded:!1}}async function S(e,t,n,r){if(!r)return console.error(`[oauth-token] Provider ${e}: interactive login was not completed`),H(`oauth-token: interactive login was not completed (cancelled, timed out, or no one could approve it)`);let i=t(e);if(i?.token&&!i.expired){let t=v(i.maskedValue,i.token);if(t)return t;let r=await n(e)??{};return v(r.maskedValue,i.token)||y(e,r.error)}return i?.token?H(`oauth-token: login completed but the saved token is already expired`):(console.error(`[oauth-token] Provider ${e}: login completed but no token was saved`),H(`oauth-token: login completed but no token was saved`))}async function C(e){try{return await e()!==null}catch{return!1}}function w(e,t,n,r,i){let a=e[0];if(a)return a;let o=n();return r(o)?.[t]?o:i().find(e=>r(e)?.[t])}async function T(e){let{getSelectedProvider:t,getOAuthAccountInfo:n}=await import(`./account-store-CGTI5JyB.js`).then(e=>e.t),{getRegisteredProviderConfig:r,getRegisteredProviderIds:i}=await import(`./providers-CR2LfFSo.js`).then(e=>e.r),a=w(e,`onValidateToken`,t,r,i);if(!a)return H(`oauth-token --check: no provider supports an upstream token check`);let o=r(a);if(!o)return H(`oauth-token --check: unknown provider "${a}"`);if(!o.onValidateToken)return H(`oauth-token --check: provider "${a}" cannot be checked upstream (no onValidateToken hook); only locally stored state is known.`);let s=n(a),c=[`oauth-token --check ${a}`,` stored token: ${F(s)}`];if(!s)return c.push(` upstream check: skipped — nothing to check`,...M(a)),{stdout:c.join(`
96
96
  `)+`
97
97
  `,stderr:``,exitCode:3};let l=await j(o);if(l?.status===`accepted`){let e=l.userName?` (as ${l.userName})`:``;return c.push(` upstream check: ACCEPTED${e} — the provider honoured the token`),{stdout:c.join(`
98
98
  `)+`
@@ -100,7 +100,7 @@ Examples:
100
100
  `)+`
101
101
  `,stderr:``,exitCode:e}}return c.push(` upstream check: UNKNOWN — the check itself could not run${D(l?.detail)}`,` This says nothing about the token. Retry when the provider is reachable.`),{stdout:c.join(`
102
102
  `)+`
103
- `,stderr:``,exitCode:1}}function E(e,t,n){let r=` upstream check: REJECTED — the provider refused the token${D(n)}`;return t?[r,` A stored refresh token may still be able to replace it — silent renewal`,` has not been tried yet.`,``,` → Next: oauth-token ${e} --renew`,` If that is declined too: oauth-token ${e} --force-login (needs a human).`]:[r,` This provider has no silent renewal, so nothing automated is left.`,...M(e)]}function D(e){return e?` (${e})`:``}async function O(e){let{getAccounts:t,getSelectedProvider:n,saveOAuthAccount:r}=await import(`./account-store-VtBgtCSL.js`).then(e=>e.t),{getRegisteredProviderConfig:i,getRegisteredProviderIds:a}=await import(`./providers-_suqM9AH.js`).then(e=>e.r),o=w(e,`onSilentRenew`,n,i,a);if(!o)return H(`oauth-token --expire: no provider supports silent renewal`);let s=i(o);if(!s)return H(`oauth-token --expire: unknown provider "${o}"`);if(!s.onSilentRenew)return H(`oauth-token --expire: provider "${o}" has no onSilentRenew hook`);let c=t().find(e=>e.providerId===o);if(!c?.accessToken)return H(`oauth-token --expire: no stored OAuth account for "${o}"`);try{await r({...c,accessToken:c.accessToken,tokenExpiresAt:Date.now()-1e3})}catch(e){return H(`oauth-token --expire: failed to update "${o}": ${e instanceof Error?e.message:String(e)}`)}return{stdout:`oauth-token ${o}: stored token marked expired; next network op will trigger silent renewal.\n`,stderr:``,exitCode:0}}async function k(e){let{getSelectedProvider:t,getOAuthAccountInfo:n}=await import(`./account-store-VtBgtCSL.js`).then(e=>e.t),{getRegisteredProviderConfig:r,getRegisteredProviderIds:i}=await import(`./providers-_suqM9AH.js`).then(e=>e.r),a=w(e,`onSilentRenew`,t,r,i);if(!a)return H(`oauth-token --renew: no provider supports silent renewal`);let o=r(a);if(!o)return H(`oauth-token --renew: unknown provider "${a}"`);if(!o.onSilentRenew)return H(`oauth-token --renew: provider "${a}" has no onSilentRenew hook`);let s=n(a),c=s?.token,l=[`oauth-token --renew ${a}`];l.push(` stored token: ${F(s)}`);let u=null,d=null;try{u=await o.onSilentRenew()}catch(e){d=e instanceof Error?e.message:String(e)}if(u){let e=n(a),t=!!(c&&e?.token&&c!==e.token);return l.push(` silent renewal: SUCCESS${t?` — token refreshed`:` (token unchanged)`}`),l.push(` renewed token: ${F(e)}`),{stdout:l.join(`
103
+ `,stderr:``,exitCode:1}}function E(e,t,n){let r=` upstream check: REJECTED — the provider refused the token${D(n)}`;return t?[r,` A stored refresh token may still be able to replace it — silent renewal`,` has not been tried yet.`,``,` → Next: oauth-token ${e} --renew`,` If that is declined too: oauth-token ${e} --force-login (needs a human).`]:[r,` This provider has no silent renewal, so nothing automated is left.`,...M(e)]}function D(e){return e?` (${e})`:``}async function O(e){let{getAccounts:t,getSelectedProvider:n,saveOAuthAccount:r}=await import(`./account-store-CGTI5JyB.js`).then(e=>e.t),{getRegisteredProviderConfig:i,getRegisteredProviderIds:a}=await import(`./providers-CR2LfFSo.js`).then(e=>e.r),o=w(e,`onSilentRenew`,n,i,a);if(!o)return H(`oauth-token --expire: no provider supports silent renewal`);let s=i(o);if(!s)return H(`oauth-token --expire: unknown provider "${o}"`);if(!s.onSilentRenew)return H(`oauth-token --expire: provider "${o}" has no onSilentRenew hook`);let c=t().find(e=>e.providerId===o);if(!c?.accessToken)return H(`oauth-token --expire: no stored OAuth account for "${o}"`);try{await r({...c,accessToken:c.accessToken,tokenExpiresAt:Date.now()-1e3})}catch(e){return H(`oauth-token --expire: failed to update "${o}": ${e instanceof Error?e.message:String(e)}`)}return{stdout:`oauth-token ${o}: stored token marked expired; next network op will trigger silent renewal.\n`,stderr:``,exitCode:0}}async function k(e){let{getSelectedProvider:t,getOAuthAccountInfo:n}=await import(`./account-store-CGTI5JyB.js`).then(e=>e.t),{getRegisteredProviderConfig:r,getRegisteredProviderIds:i}=await import(`./providers-CR2LfFSo.js`).then(e=>e.r),a=w(e,`onSilentRenew`,t,r,i);if(!a)return H(`oauth-token --renew: no provider supports silent renewal`);let o=r(a);if(!o)return H(`oauth-token --renew: unknown provider "${a}"`);if(!o.onSilentRenew)return H(`oauth-token --renew: provider "${a}" has no onSilentRenew hook`);let s=n(a),c=s?.token,l=[`oauth-token --renew ${a}`];l.push(` stored token: ${F(s)}`);let u=null,d=null;try{u=await o.onSilentRenew()}catch(e){d=e instanceof Error?e.message:String(e)}if(u){let e=n(a),t=!!(c&&e?.token&&c!==e.token);return l.push(` silent renewal: SUCCESS${t?` — token refreshed`:` (token unchanged)`}`),l.push(` renewed token: ${F(e)}`),{stdout:l.join(`
104
104
  `)+`
105
105
  `,stderr:``,exitCode:0}}if(d)return l.push(` silent renewal: ERROR — ${d}`,...P(a)),{stdout:l.join(`
106
106
  `)+`
@@ -1,4 +1,4 @@
1
- import{bindMcpRunner as e,currentPublication as t,discoverCli as n,ensureMcpServeInstalled as r,i,n as a,r as o,setPublication as s,t as c}from"./serve-runtime-C8WGtboN.js";async function l(a,l){let d=b(l.fs),f=await v(l);e(f),r();let p=l.cwd||`/`;return u(x(a,p),{discover:(e,t)=>n(C(p,e),t,f),load:async()=>t()??c(d),save:e=>s(d,e),publish:e=>o(e),setGeneration:e=>o(e),stopRemote:()=>i()})}async function u(e,t){let n=a(e);if(n.error)return T(n.error);if(n.help)return w(d());let r=await t.load();return n.list?w(_(r)):n.stop===null?n.targets.length===0?T(`mcp --serve: missing path`):f(n.targets,r,t):h(n.stop,r,t)}function d(){return`usage: mcp --serve <path> [--serve <path>…]
1
+ import{bindMcpRunner as e,currentPublication as t,discoverCli as n,ensureMcpServeInstalled as r,i,n as a,r as o,setPublication as s,t as c}from"./serve-runtime-3Ud6MBH1.js";async function l(a,l){let d=b(l.fs),f=await v(l);e(f),r();let p=l.cwd||`/`;return u(x(a,p),{discover:(e,t)=>n(C(p,e),t,f),load:async()=>t()??c(d),save:e=>s(d,e),publish:e=>o(e),setGeneration:e=>o(e),stopRemote:()=>i()})}async function u(e,t){let n=a(e);if(n.error)return T(n.error);if(n.help)return w(d());let r=await t.load();return n.list?w(_(r)):n.stop===null?n.targets.length===0?T(`mcp --serve: missing path`):f(n.targets,r,t):h(n.stop,r,t)}function d(){return`usage: mcp --serve <path> [--serve <path>…]
2
2
  mcp --serve <name>=<path>
3
3
  mcp --serve --list
4
4
  mcp --serve --stop [<name>]
@@ -14,5 +14,5 @@ CLI to the same URL. Tool names are prefixed with the CLI name.
14
14
  `}async function f(e,t,n){let r=t??{url:``,token:``,grantGeneration:0,clis:[]},i=[],a=new Set(r.clis.map(e=>e.name));for(let t of e){if(r.clis.some(e=>e.path===t.path))continue;let e=await m(t,n);if(`error`in e)return T(e.error);if(a.has(e.cli.name))return T(`mcp --serve: ${e.cli.name} is already published; pass name=path to rename one`);a.add(e.cli.name),i.push(e.cli)}if(i.length===0)return t?.url?w(`${t.url}\n`):T(`mcp --serve: missing path`);let o=r.clis.concat(i);try{return await p(t,o,n)}catch(e){return T(e instanceof Error?e.message:`mcp --serve: publish failed`)}}async function p(e,t,n){if(!e){let e=await n.publish(1),r={url:e.url,token:e.token,grantGeneration:1,clis:t};return await n.save(r),w(`${r.url}\n`)}let r=e.grantGeneration+1,i=await n.setGeneration(r),a={...e,url:i.url||e.url,token:i.token||e.token,grantGeneration:r,clis:t};return await n.save(a),w(`${a.url}\n`)}async function m(e,t){try{return{cli:await t.discover(e.path,e.name)}}catch(e){return{error:e instanceof Error?e.message:`mcp --serve: discovery failed`}}}async function h(e,t,n){if(!t)return T(`mcp --serve: nothing is published`);if(typeof e!=`string`)return await g(n);let r=t.clis.filter(t=>t.name!==e);return r.length===t.clis.length?T(`mcp --serve: no CLI named ${e}`):r.length===0?await g(n):(await n.save({...t,clis:r}),w(`${t.url}\n`))}async function g(e){try{await e.stopRemote()}catch(e){return T(e instanceof Error?e.message:`mcp --serve: stop failed`)}return await e.save(null),w(`stopped
15
15
  `)}function _(e){return e?`${[e.url,...e.clis.map(e=>`${e.name}\t${e.path}`)].join(`
16
16
  `)}\n`:`mcp --serve: nothing is published
17
- `}async function v(e){let{executeJshFile:t}=await import(`./jsh-executor-BwpKY1r_.js`).then(e=>e.r),{textAsStdin:n}=await import(`./just-bash-compat-DWUHpp9U.js`).then(e=>e.r);return(r,i,a)=>t(r,i,{...e,stdin:n(a??``)}).then(e=>y(e))}function y(e){return{stdout:e.stdout,stderr:e.stderr,exitCode:e.exitCode}}function b(e){return{readFile:t=>e.readFile(t),writeFile:(t,n)=>e.writeFile(t,n),exists:t=>e.exists(t),mkdir:async t=>{await e.exists(t)||await e.mkdir(t)}}}function x(e,t){let n=[];for(let r=0;r<e.length;r++){let i=e[r]??``;if(n.push(i),i!==`--serve`)continue;let a=e[r+1];a&&!a.startsWith(`--`)&&(n.push(S(a,t)),r++)}return n}function S(e,t){let n=e.indexOf(`=`);return n>0&&!e.slice(0,n).includes(`/`)?`${e.slice(0,n)}=${C(t,e.slice(n+1))}`:C(t,e)}function C(e,t){return t.startsWith(`/`)?t:`${e.endsWith(`/`)?e.slice(0,-1):e}/${t}`}function w(e){return{stdout:e,stderr:``,exitCode:0}}function T(e){return{stdout:``,stderr:e.endsWith(`
17
+ `}async function v(e){let{executeJshFile:t}=await import(`./jsh-executor-NuPwlPwq.js`).then(e=>e.r),{textAsStdin:n}=await import(`./just-bash-compat-DWUHpp9U.js`).then(e=>e.r);return(r,i,a)=>t(r,i,{...e,stdin:n(a??``)}).then(e=>y(e))}function y(e){return{stdout:e.stdout,stderr:e.stderr,exitCode:e.exitCode}}function b(e){return{readFile:t=>e.readFile(t),writeFile:(t,n)=>e.writeFile(t,n),exists:t=>e.exists(t),mkdir:async t=>{await e.exists(t)||await e.mkdir(t)}}}function x(e,t){let n=[];for(let r=0;r<e.length;r++){let i=e[r]??``;if(n.push(i),i!==`--serve`)continue;let a=e[r+1];a&&!a.startsWith(`--`)&&(n.push(S(a,t)),r++)}return n}function S(e,t){let n=e.indexOf(`=`);return n>0&&!e.slice(0,n).includes(`/`)?`${e.slice(0,n)}=${C(t,e.slice(n+1))}`:C(t,e)}function C(e,t){return t.startsWith(`/`)?t:`${e.endsWith(`/`)?e.slice(0,-1):e}/${t}`}function w(e){return{stdout:e,stderr:``,exitCode:0}}function T(e){return{stdout:``,stderr:e.endsWith(`
18
18
  `)?e:`${e}\n`,exitCode:1}}export{l as runMcpServeCommand};
@@ -1,4 +1,4 @@
1
- import{t as e}from"./logger-Cx6Y120U.js";import{t}from"./types-D8gIX-W-.js";import{_ as n}from"./kernel-worker-40_1fMYG.js";let r=e=>new BroadcastChannel(e),i=null,a=null,o=null;function s(e){return e?`slicc-mcp-serve:${e}`:`slicc-mcp-serve`}function c(e,t){a=e,o=t,u()}function l(e,t=15e3){return d(u(),{kind:`publish`,id:crypto.randomUUID(),grantGeneration:e},t)}function ee(e=15e3){let t=crypto.randomUUID();return d(u(),{kind:`stop`,id:t},e).then(()=>void 0)}function u(){return i||(i=r(s(n())),i.addEventListener(`message`,e=>{te(e.data)}),i.postMessage({kind:`kernel-ready`}),i)}async function te(e){if(e&&typeof e==`object`){if(e.kind===`page-ready`){o?.();return}if(e.kind===`call`&&a)try{let t=await a(e.op,e.body);i?.postMessage({kind:`call-result`,id:e.id,...t})}catch(t){i?.postMessage({kind:`call-result`,id:e.id,status:500,contentType:`application/json; charset=utf-8`,body:JSON.stringify({error:t instanceof Error?t.message:`mcp call failed`})})}}}function d(e,t,n){let r=t.id,i=t.kind===`publish`?`publish-result`:`stop-result`;return new Promise((a,o)=>{let s=setTimeout(()=>{e.removeEventListener(`message`,c),o(/* @__PURE__ */ Error(`mcp ${t.kind} timed out`))},n),c=n=>{let l=n.data;if(l&&l.kind===i&&l.id===r){if(clearTimeout(s),e.removeEventListener(`message`,c),!l.ok){o(Error(l.error||`mcp ${t.kind} failed`));return}a({url:l.kind===`publish-result`?l.url??``:``,token:l.kind===`publish-result`?l.token??``:``})}};e.addEventListener(`message`,c),e.postMessage(t)})}const f=/^[A-Za-z][\w-]*$/;function p(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`_`).replace(/^_+|_+$/g,``)||`cli`}function ne(e,t,n){return p(n||v(e)||(t.split(`/`).pop()??t).replace(/\.jsh$/i,``))}function re(e){let t=[],n=!1,r=!1,i=null;for(let a=0;a<e.length;a++){let o=e[a]??``;if(o===`--help`||o===`-h`){n=!0;continue}if(o===`--list`){r=!0;continue}if(o===`--stop`){let t=e[a+1];t&&!t.startsWith(`--`)?(i=t,a++):i=!0;continue}if(o===`--serve`){let n=e[a+1];n&&!n.startsWith(`--`)&&(t.push(T(n)),a++);continue}return{help:n,list:r,stop:i,targets:t,error:`mcp --serve: unexpected argument ${o}`}}return{help:n,list:r,stop:i,targets:t}}function m(e){let t=ue(e),n=v(e),r=be(t.commands,me(e,n));return{...n?{program:n}:{},commands:xe(r,t.scoped),globalFlags:t.globalFlags}}function ie(e){return e.path.length===1&&e.positionals.length===0&&e.flags.length===0}function ae(e,t,n,r){let i=h(n.commands,n.globalFlags);if(i.length===0)return null;let a=i.map(e=>e.path[0]??``);if(a.length===r.size&&a.every(e=>r.has(e)))return null;let o=i.map(e=>({...e,path:Ce(t,e)}));return e.filter(e=>e.path[0]!==t).concat(o)}function h(e,t){return t.length===0?e:e.map(e=>({...e,flags:S(e.flags,t)}))}function g(e){let t;try{t=JSON.parse(e)}catch{return null}if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=Object.getOwnPropertyDescriptor(t,`commands`)?.value;if(!Array.isArray(n))return null;let r=[];for(let e of n){let t=we(e);t&&r.push(t)}return r.length===0?null:{commands:r,globalFlags:[]}}function _(e,t){let n=[{name:`${e}_help`,description:`Show ${e} help.`,inputSchema:E({}),cli:e,kind:`help`,commandPath:[]},{name:`${e}_invoke`,description:`Run ${e} with an argv array (one element per argument) and optional stdin. A non-zero exit is a tool error.`,inputSchema:D(),cli:e,kind:`invoke`,commandPath:[]}];for(let r of t){let t=r.path.join(`_`);n.push({name:`${e}_${t}`,description:r.description||`Run ${e} ${r.path.join(` `)}`,inputSchema:De(r),cli:e,kind:`command`,commandPath:r.path})}return n}function oe(e){if(e==null)return{fields:[]};if(typeof e!=`object`||Array.isArray(e))return{fields:[],error:`arguments must be an object`};let t=[],n,r,i;for(let a of Object.keys(e)){let o=Object.getOwnPropertyDescriptor(e,a)?.value,s=ke(a,o);if(s.error)return{fields:t,error:s.error};s.stdin===void 0?s.passthrough?r=s.passthrough:s.argv?i=s.argv:s.field&&t.push(s.field):n=s.stdin}return{fields:t,...n===void 0?{}:{stdin:n},...r?{passthrough:r}:{},...i?{argv:i}:{}}}function se(e,t){if(t.error)return{error:t.error};let n=[...e.path];for(let r of e.positionals){let e=t.fields.find(e=>e.name===r.name);if(!e){if(r.required)return{error:`missing ${r.name}`};continue}if(typeof e.value!=`string`&&typeof e.value!=`number`)return{error:`${r.name} must be a string`};n.push(String(e.value))}let r=ce(e.flags,t.fields);return`error`in r?r:(n.push(...r.argv),t.passthrough&&n.push(...t.passthrough),{argv:n,...t.stdin===void 0?{}:{stdin:t.stdin}})}function ce(e,t){let n=[];for(let r of e){let e=t.find(e=>e.name===r.name);if(!e||e.value===!1)continue;let i=le(r,e.value);if(`error`in i)return i;n.push(...i.argv)}return{argv:n}}function le(e,t){if(e.type===`boolean`)return t===!0?{argv:[`--${e.name}`]}:{argv:[]};if(e.type===`string[]`){if(!Array.isArray(t))return{error:`${e.name} must be an array of strings`};let n=[];for(let r of t)n.push(`--${e.name}`,r);return{argv:n}}return typeof t!=`string`&&typeof t!=`number`?{error:`${e.name} must be a string`}:{argv:[`--${e.name}`,String(t)]}}function ue(e){let t=`none`,n=[],r=[],i=[];for(let a of e.split(`
1
+ import{t as e}from"./logger-Cx6Y120U.js";import{t}from"./types-D8gIX-W-.js";import{_ as n}from"./kernel-worker-eYyVS1Sv.js";let r=e=>new BroadcastChannel(e),i=null,a=null,o=null;function s(e){return e?`slicc-mcp-serve:${e}`:`slicc-mcp-serve`}function c(e,t){a=e,o=t,u()}function l(e,t=15e3){return d(u(),{kind:`publish`,id:crypto.randomUUID(),grantGeneration:e},t)}function ee(e=15e3){let t=crypto.randomUUID();return d(u(),{kind:`stop`,id:t},e).then(()=>void 0)}function u(){return i||(i=r(s(n())),i.addEventListener(`message`,e=>{te(e.data)}),i.postMessage({kind:`kernel-ready`}),i)}async function te(e){if(e&&typeof e==`object`){if(e.kind===`page-ready`){o?.();return}if(e.kind===`call`&&a)try{let t=await a(e.op,e.body);i?.postMessage({kind:`call-result`,id:e.id,...t})}catch(t){i?.postMessage({kind:`call-result`,id:e.id,status:500,contentType:`application/json; charset=utf-8`,body:JSON.stringify({error:t instanceof Error?t.message:`mcp call failed`})})}}}function d(e,t,n){let r=t.id,i=t.kind===`publish`?`publish-result`:`stop-result`;return new Promise((a,o)=>{let s=setTimeout(()=>{e.removeEventListener(`message`,c),o(/* @__PURE__ */ Error(`mcp ${t.kind} timed out`))},n),c=n=>{let l=n.data;if(l&&l.kind===i&&l.id===r){if(clearTimeout(s),e.removeEventListener(`message`,c),!l.ok){o(Error(l.error||`mcp ${t.kind} failed`));return}a({url:l.kind===`publish-result`?l.url??``:``,token:l.kind===`publish-result`?l.token??``:``})}};e.addEventListener(`message`,c),e.postMessage(t)})}const f=/^[A-Za-z][\w-]*$/;function p(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`_`).replace(/^_+|_+$/g,``)||`cli`}function ne(e,t,n){return p(n||v(e)||(t.split(`/`).pop()??t).replace(/\.jsh$/i,``))}function re(e){let t=[],n=!1,r=!1,i=null;for(let a=0;a<e.length;a++){let o=e[a]??``;if(o===`--help`||o===`-h`){n=!0;continue}if(o===`--list`){r=!0;continue}if(o===`--stop`){let t=e[a+1];t&&!t.startsWith(`--`)?(i=t,a++):i=!0;continue}if(o===`--serve`){let n=e[a+1];n&&!n.startsWith(`--`)&&(t.push(T(n)),a++);continue}return{help:n,list:r,stop:i,targets:t,error:`mcp --serve: unexpected argument ${o}`}}return{help:n,list:r,stop:i,targets:t}}function m(e){let t=ue(e),n=v(e),r=be(t.commands,me(e,n));return{...n?{program:n}:{},commands:xe(r,t.scoped),globalFlags:t.globalFlags}}function ie(e){return e.path.length===1&&e.positionals.length===0&&e.flags.length===0}function ae(e,t,n,r){let i=h(n.commands,n.globalFlags);if(i.length===0)return null;let a=i.map(e=>e.path[0]??``);if(a.length===r.size&&a.every(e=>r.has(e)))return null;let o=i.map(e=>({...e,path:Ce(t,e)}));return e.filter(e=>e.path[0]!==t).concat(o)}function h(e,t){return t.length===0?e:e.map(e=>({...e,flags:S(e.flags,t)}))}function g(e){let t;try{t=JSON.parse(e)}catch{return null}if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=Object.getOwnPropertyDescriptor(t,`commands`)?.value;if(!Array.isArray(n))return null;let r=[];for(let e of n){let t=we(e);t&&r.push(t)}return r.length===0?null:{commands:r,globalFlags:[]}}function _(e,t){let n=[{name:`${e}_help`,description:`Show ${e} help.`,inputSchema:E({}),cli:e,kind:`help`,commandPath:[]},{name:`${e}_invoke`,description:`Run ${e} with an argv array (one element per argument) and optional stdin. A non-zero exit is a tool error.`,inputSchema:D(),cli:e,kind:`invoke`,commandPath:[]}];for(let r of t){let t=r.path.join(`_`);n.push({name:`${e}_${t}`,description:r.description||`Run ${e} ${r.path.join(` `)}`,inputSchema:De(r),cli:e,kind:`command`,commandPath:r.path})}return n}function oe(e){if(e==null)return{fields:[]};if(typeof e!=`object`||Array.isArray(e))return{fields:[],error:`arguments must be an object`};let t=[],n,r,i;for(let a of Object.keys(e)){let o=Object.getOwnPropertyDescriptor(e,a)?.value,s=ke(a,o);if(s.error)return{fields:t,error:s.error};s.stdin===void 0?s.passthrough?r=s.passthrough:s.argv?i=s.argv:s.field&&t.push(s.field):n=s.stdin}return{fields:t,...n===void 0?{}:{stdin:n},...r?{passthrough:r}:{},...i?{argv:i}:{}}}function se(e,t){if(t.error)return{error:t.error};let n=[...e.path];for(let r of e.positionals){let e=t.fields.find(e=>e.name===r.name);if(!e){if(r.required)return{error:`missing ${r.name}`};continue}if(typeof e.value!=`string`&&typeof e.value!=`number`)return{error:`${r.name} must be a string`};n.push(String(e.value))}let r=ce(e.flags,t.fields);return`error`in r?r:(n.push(...r.argv),t.passthrough&&n.push(...t.passthrough),{argv:n,...t.stdin===void 0?{}:{stdin:t.stdin}})}function ce(e,t){let n=[];for(let r of e){let e=t.find(e=>e.name===r.name);if(!e||e.value===!1)continue;let i=le(r,e.value);if(`error`in i)return i;n.push(...i.argv)}return{argv:n}}function le(e,t){if(e.type===`boolean`)return t===!0?{argv:[`--${e.name}`]}:{argv:[]};if(e.type===`string[]`){if(!Array.isArray(t))return{error:`${e.name} must be an array of strings`};let n=[];for(let r of t)n.push(`--${e.name}`,r);return{argv:n}}return typeof t!=`string`&&typeof t!=`number`?{error:`${e.name} must be a string`}:{argv:[`--${e.name}`,String(t)]}}function ue(e){let t=`none`,n=[],r=[],i=[];for(let a of e.split(`
2
2
  `)){let e=a.replace(/\t/g,` `),o=fe(e);if(o){t=o.kind===`other`?`none`:o.kind,o.kind===`scoped`&&o.name&&i.push({name:o.name,flags:[]});continue}de(t,e,n,r,i)}return{commands:n,globalFlags:r,scoped:i}}function de(e,t,n,r,i){if(e===`commands`){let e=pe(t);e&&n.push(e);return}let a=ve(t);a&&(e===`options`&&r.push(a),e===`scoped`&&i[i.length-1]?.flags.push(a))}function fe(e){let t=e.trim();if(/^commands:?$/i.test(t))return{kind:`commands`};if(/^options:?$/i.test(t))return{kind:`options`};let n=/^([A-Za-z][\w-]*)\s+flags:?$/i.exec(t);return n?.[1]?{kind:`scoped`,name:n[1].toLowerCase()}:/^[A-Z][A-Z0-9 ]+:$/.test(t)?{kind:`other`}:null}function pe(e){if(!/^\s{2,}\S/.test(e))return null;let t=e.trim().split(/\s{2,}/);if(t.length<2)return null;let n=x(t[0]??``),r=n[0]??``;if(!f.test(r)||r.startsWith(`-`))return null;let i=y();for(let e of n.slice(1))b(e,i);return{path:[r],description:t.slice(1).join(` `).trim(),positionals:i.positionals,flags:i.flags}}function v(e){for(let t of e.split(`
3
3
  `)){if(!/^[\s>*]*usage:/i.test(t))continue;let e=x(t)[0];if(e&&f.test(e))return e}}function me(e,t){let n=[];for(let r of e.split(`
4
4
  `)){let e=ge(r,t);e&&n.push(e)}return n}function he(e){let t=e.replace(/^\[|\]$/g,``).replace(/^<|>$/g,``).toLowerCase();return t===`command`||t===`cmd`||t===`subcommand`||t===`verb`}function ge(e,t){let n=e.trim(),r=x(n);if(r.length<2||!/^usage:/i.test(n)&&r[0]!==t)return null;let i=[],a=1;for(;a<r.length&&i.length<2&&f.test(r[a]??``);)i.push(r[a]??``),a++;if(i.length===0||he(r[a]??``))return null;let o=y();for(let e of r.slice(a))b(e,o);return{path:i,description:``,positionals:o.positionals,flags:o.flags}}function y(){return{positionals:[],flags:[]}}function b(e,t){let n=e.startsWith(`[`)&&e.endsWith(`]`),r=n?e.slice(1,-1).trim():e;if(r.startsWith(`--`)){let e=_e(r);e&&t.flags.push(e);return}if(r.startsWith(`<`)&&r.endsWith(`>`)){t.positionals.push({name:C(r.slice(1,-1)),required:!n,description:``});return}f.test(r)&&t.positionals.push({name:C(r),required:!n,description:``})}function _e(e){let t=/^--([A-Za-z][\w-]*)(?:(?:=|\s+)(\S+))?$/.exec(e.trim());if(!t?.[1])return null;let n=t[2]??``;return n?{name:t[1],type:n.includes(`...`)?`string[]`:`string`,description:``}:{name:t[1],type:`boolean`,description:``}}function ve(e){let t=e.trim();if(!t.includes(`--`))return null;let n=/--([A-Za-z][\w-]*)(?:=(\S+)|(?:\s+(<[^>]+>|\[[^\]]+\]|[A-Z][A-Z0-9_-]+)))?/.exec(t);if(!n?.[1])return null;let r=n[2]||n[3]||``,i=/\brepeat|\.\.\.|one or more/i.test(t),a=ye(t);return!r&&!i?{name:n[1],type:`boolean`,description:a}:{name:n[1],type:i?`string[]`:`string`,description:a}}function ye(e){let t=e.trim().split(/\s{2,}/);return t.length>1?t.slice(1).join(` `).trim():``}function x(e){let t=e.trim().replace(/^usage:\s*/i,``),n=[],r=0;for(;r<t.length;){if(t[r]===` `){r++;continue}let e=t[r]===`[`?`]`:t[r]===`<`?`>`:``;if(e){let i=t.indexOf(e,r);if(i===-1){n.push(t.slice(r));break}n.push(t.slice(r,i+1)),r=i+1;continue}let i=t.indexOf(` `,r);if(i===-1){n.push(t.slice(r));break}n.push(t.slice(r,i)),r=i}return n}function be(e,t){let n=e.map(e=>({...e}));for(let e of t){let t=n.find(t=>Se(t.path,e.path));if(!t){n.push(e);continue}t.positionals.length===0&&(t.positionals=e.positionals),t.description||=e.description,t.flags=S(t.flags,e.flags)}return n}function xe(e,t){return e.map(e=>{let n=t.find(t=>t.name===(e.path[0]??``).toLowerCase());return n?{...e,flags:S(e.flags,n.flags)}:e})}function S(e,t){let n=[...e];for(let e of t)n.some(t=>t.name===e.name)||n.push(e);return n}function Se(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function Ce(e,t){return t.path[0]===e?t.path.slice(0,2):[e,t.path[0]??``].filter(e=>e.length>0).slice(0,2)}function C(e){return e.replace(/[^A-Za-z0-9_-]+/g,``).replace(/^-+/,``)||`arg`}function we(e){if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=w(e,`name`);if(!t)return null;let n=t.split(/\s+/).filter(e=>f.test(e)).slice(0,2);return n.length===0?null:{path:n,description:w(e,`description`)??``,positionals:Te(Object.getOwnPropertyDescriptor(e,`positionals`)?.value),flags:Ee(Object.getOwnPropertyDescriptor(e,`flags`)?.value)}}function Te(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(!n||typeof n!=`object`||Array.isArray(n))continue;let e=w(n,`name`);if(!e)continue;let r=Object.getOwnPropertyDescriptor(n,`required`)?.value;t.push({name:e,required:r!==!1,description:``})}return t}function Ee(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(!n||typeof n!=`object`||Array.isArray(n))continue;let e=w(n,`name`),r=w(n,`type`);!e||r!==`boolean`&&r!==`string`&&r!==`string[]`||t.push({name:e,type:r,description:``})}return t}function w(e,t){let n=Object.getOwnPropertyDescriptor(e,t)?.value;return typeof n==`string`&&n.length>0?n:void 0}function T(e){let t=e.indexOf(`=`);return t>0&&!e.slice(0,t).includes(`/`)?{name:e.slice(0,t),path:e.slice(t+1)}:{path:e}}function E(e,t){return{type:`object`,properties:e,additionalProperties:!1,...t&&t.length>0?{required:t}:{}}}function D(){return E({argv:{type:`array`,items:{type:`string`},description:`Arguments, one element per argument. Never a shell string.`},stdin:{type:`string`,description:`Optional standard input.`}},[`argv`])}function De(e){let t={},n=[];for(let r of e.positionals)t[r.name]={type:`string`,description:r.description||r.name},r.required&&n.push(r.name);for(let n of e.flags)t[n.name]=Oe(n);return t.stdin={type:`string`,description:`Optional standard input.`},t.passthrough={type:`array`,items:{type:`string`},description:`Extra arguments appended as-is.`},E(t,n)}function Oe(e){return e.type===`boolean`?{type:`boolean`,description:e.description||e.name}:e.type===`string[]`?{type:`array`,items:{type:`string`},description:e.description||e.name}:{type:`string`,description:e.description||e.name}}function ke(e,t){if(e===`stdin`)return typeof t==`string`?{stdin:t}:{error:`stdin must be a string`};if(e===`passthrough`)return O(t,`passthrough`);if(e===`argv`){let e=O(t,`argv`);return e.passthrough?{argv:e.passthrough}:e}return Ae(t)?{field:{name:e,value:t}}:{error:`${e} has an unsupported type`}}function O(e,t){return!Array.isArray(e)||!e.every(e=>typeof e==`string`)?{error:`${t} must be an array of strings`}:{passthrough:e}}function Ae(e){return typeof e==`string`||typeof e==`boolean`||typeof e==`number`||Array.isArray(e)&&e.every(e=>typeof e==`string`)}function je(e){let t=Me(e.tools).map(e=>{let t=e.tools.map(e=>`<li><code>${k(e.name)}</code> ${k(e.description)}</li>`).join(``);return`<h2>${k(e.cli)}</h2><ul>${t}</ul>`}).join(``);return`<!DOCTYPE html>
@@ -18,5 +18,5 @@ import{r as e,t}from"./subcommand-help-CgO7wRS5.js";const n=`session — export
18
18
  usage: session search <query> [--limit N]
19
19
  `}}function i(e,t,n){if(!e||e.startsWith(`-`))return{ok:!1,stderr:`session read: ${t} requires a number\n`};let r=Number(e);return!Number.isFinite(r)||r<n?{ok:!1,stderr:`session read: ${t} must be ${n===0?`a non-negative integer`:`a positive integer`}\n`}:{ok:!0,n:Math.floor(r)}}function a(e){let t=e.slice(1),n,r,a;for(let e=0;e<t.length;e++){let o=t[e];if(o===`--from`||o===`--count`){let n=i(t[e+1],o,o===`--from`?0:1);if(!n.ok)return n;o===`--from`?r=n.n:a=n.n,e++}else if(o.startsWith(`-`))return{ok:!1,stderr:`session read: unknown flag ${o}\n`};else if(n===void 0)n=o;else return{ok:!1,stderr:`session read: unexpected argument ${JSON.stringify(o)}\n`}}return n?{ok:!0,id:n,from:r,count:a}:{ok:!1,stderr:`session read: missing id
20
20
  usage: session read <id> [--from N --count M]
21
- `}}async function o(e,t){let n=r(e);if(!n.ok)return{stdout:``,stderr:n.stderr,exitCode:1};try{let{searchSessions:e}=await import(`./session-search-index-BYEYU5MH.js`),r=await e(t.fs,n.query,{limit:n.limit});if(r.length===0)return{stdout:`# session search: ${n.query} (0 hits)\nNo matching messages in /sessions.\n`,stderr:``,exitCode:0};let i=[`# session search: ${n.query} (${r.length} hits)`];for(let e of r)i.push(`id=${e.id} score=${e.score.toFixed(2)} kind=${e.echoKind} role=${e.role}`),i.push(` session=${JSON.stringify(e.sessionTitle)} path=${e.path}`),i.push(` ${e.excerpt}`),i.push(``);return i.push(`Use: session read <id> [--from N --count M]`),{stdout:`${i.join(`
22
- `)}\n`,stderr:``,exitCode:0}}catch(e){return{stdout:``,stderr:`session search: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async function s(e,t){let n=a(e);if(!n.ok)return{stdout:``,stderr:n.stderr,exitCode:1};try{let{readSessionHit:e,SESSION_READ_BYTE_CAP:r}=await import(`./session-search-index-BYEYU5MH.js`),i=await e(t.fs,n.id,{from:n.from,count:n.count});return i?{stdout:`# session read: ${n.id}\npath=${i.hit.path} title=${JSON.stringify(i.hit.sessionTitle)}\nmessages ${i.from}–${i.from+i.count-1} of ${i.total} (remaining: ${i.remaining}${i.truncated?`, truncated to byte cap`:``})\nbyteCap=${r}\n\n`+i.text,stderr:``,exitCode:0}:{stdout:``,stderr:`session read: unknown id ${JSON.stringify(n.id)}\n`,exitCode:1}}catch(e){return{stdout:``,stderr:`session read: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async function c(r,i,a,c){return r===`help`?{stdout:c?e(`session`,c,n):n,stderr:``,exitCode:0}:t(i.slice(1))?{stdout:e(`session`,r,n),stderr:``,exitCode:0}:r===`search`?o(i,a):s(i,a)}async function l(e,n,r){let{isMemoryV2Enabled:i}=await import(`./memory-v2-flag-B14H0FfC.js`),a=i();if(t(e)){if(!a)return{stdout:r,stderr:``,exitCode:0};let t=e[0];return c(`help`,e,n,t&&t!==`--help`&&t!==`-h`?t:void 0)}let o=e[0];return o===`search`||o===`read`?a?c(o,e,n):{stdout:``,stderr:`session export: unknown subcommand ${JSON.stringify(o)} — usage: session export [--id <id>] [--output <path>]\n`,exitCode:1}:a?{stdout:``,stderr:`session: unknown subcommand ${JSON.stringify(o??``)} — usage: session export|search|read (see session --help)\n`,exitCode:1}:{stdout:``,stderr:`session export: unknown subcommand ${JSON.stringify(o??``)} — usage: session export [--id <id>] [--output <path>]\n`,exitCode:1}}export{l as dispatchSessionMemoryAware};
21
+ `}}async function o(e,t){let n=r(e);if(!n.ok)return{stdout:``,stderr:n.stderr,exitCode:1};try{let{searchSessions:e}=await import(`./session-search-index-BRdSrQ1e.js`),r=await e(t.fs,n.query,{limit:n.limit});if(r.length===0)return{stdout:`# session search: ${n.query} (0 hits)\nNo matching messages in /sessions.\n`,stderr:``,exitCode:0};let i=[`# session search: ${n.query} (${r.length} hits)`];for(let e of r)i.push(`id=${e.id} score=${e.score.toFixed(2)} kind=${e.echoKind} role=${e.role}`),i.push(` session=${JSON.stringify(e.sessionTitle)} path=${e.path}`),i.push(` ${e.excerpt}`),i.push(``);return i.push(`Use: session read <id> [--from N --count M]`),{stdout:`${i.join(`
22
+ `)}\n`,stderr:``,exitCode:0}}catch(e){return{stdout:``,stderr:`session search: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async function s(e,t){let n=a(e);if(!n.ok)return{stdout:``,stderr:n.stderr,exitCode:1};try{let{readSessionHit:e,SESSION_READ_BYTE_CAP:r}=await import(`./session-search-index-BRdSrQ1e.js`),i=await e(t.fs,n.id,{from:n.from,count:n.count});return i?{stdout:`# session read: ${n.id}\npath=${i.hit.path} title=${JSON.stringify(i.hit.sessionTitle)}\nmessages ${i.from}–${i.from+i.count-1} of ${i.total} (remaining: ${i.remaining}${i.truncated?`, truncated to byte cap`:``})\nbyteCap=${r}\n\n`+i.text,stderr:``,exitCode:0}:{stdout:``,stderr:`session read: unknown id ${JSON.stringify(n.id)}\n`,exitCode:1}}catch(e){return{stdout:``,stderr:`session read: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async function c(r,i,a,c){return r===`help`?{stdout:c?e(`session`,c,n):n,stderr:``,exitCode:0}:t(i.slice(1))?{stdout:e(`session`,r,n),stderr:``,exitCode:0}:r===`search`?o(i,a):s(i,a)}async function l(e,n,r){let{isMemoryV2Enabled:i}=await import(`./memory-v2-flag-B14H0FfC.js`),a=i();if(t(e)){if(!a)return{stdout:r,stderr:``,exitCode:0};let t=e[0];return c(`help`,e,n,t&&t!==`--help`&&t!==`-h`?t:void 0)}let o=e[0];return o===`search`||o===`read`?a?c(o,e,n):{stdout:``,stderr:`session export: unknown subcommand ${JSON.stringify(o)} — usage: session export [--id <id>] [--output <path>]\n`,exitCode:1}:a?{stdout:``,stderr:`session: unknown subcommand ${JSON.stringify(o??``)} — usage: session export|search|read (see session --help)\n`,exitCode:1}:{stdout:``,stderr:`session export: unknown subcommand ${JSON.stringify(o??``)} — usage: session export [--id <id>] [--output <path>]\n`,exitCode:1}}export{l as dispatchSessionMemoryAware};
@@ -1,3 +1,3 @@
1
- import{t as e}from"./types-D8gIX-W-.js";import{i as t,s as n}from"./kernel-worker-40_1fMYG.js";import"./frozen-archive-writer-DYM-47PW.js";function r(e){let n=`${e.endsWith(`.md`)?e.slice(0,-3):e.replace(/\.md$/i,``)}.jsonl`;return n.startsWith(`/`)?n:`${t}/${n}`}async function i(e,t,r){let i=n(t);if(i.messages.length>0||!i.sidecar)return i;let a=await u(e,r??i.sidecar.replace(/\.jsonl$/i,`.md`));return a?{...i,messages:a}:i}function a(e){let t=[],n=null;for(let r of e.split(`
1
+ import{t as e}from"./types-D8gIX-W-.js";import{i as t,s as n}from"./kernel-worker-eYyVS1Sv.js";import"./frozen-archive-writer-0S3P4nFk.js";function r(e){let n=`${e.endsWith(`.md`)?e.slice(0,-3):e.replace(/\.md$/i,``)}.jsonl`;return n.startsWith(`/`)?n:`${t}/${n}`}async function i(e,t,r){let i=n(t);if(i.messages.length>0||!i.sidecar)return i;let a=await u(e,r??i.sidecar.replace(/\.jsonl$/i,`.md`));return a?{...i,messages:a}:i}function a(e){let t=[],n=null;for(let r of e.split(`
2
2
  `)){let e=r.trim();if(!e)continue;let i=o(e);if(i){if(i.role===`user`)t.push(s(i)),n=null;else if(i.role===`assistant`){let e=c(i);t.push(e),n=e}else i.role===`toolResult`&&l(n,i)}}return t}function o(e){try{return JSON.parse(e)}catch{return null}}function s(e){return{id:e.id??m(`u`),role:`user`,content:f(e.content),timestamp:e.timestamp??0,...e.source?{source:e.source}:{},...e.channel?{channel:e.channel}:{},...e.attachments?.length?{attachments:e.attachments}:{}}}function c(e){let t=p(e.content);return{id:e.id??m(`a`),role:`assistant`,content:f(e.content),timestamp:e.timestamp??0,...t.length?{toolCalls:t}:{},...e.source?{source:e.source}:{},...e.compaction?{compaction:e.compaction}:{},...e.attachments?.length?{attachments:e.attachments}:{}}}function l(e,t){if(!t.toolCallId||!e?.toolCalls)return;let n=e.toolCalls.find(e=>e.id===t.toolCallId);n&&(n.result=f(t.content),t.isError&&(n.isError=!0))}async function u(t,n){let i=r(n);try{let e=await t.readFile(i,{encoding:`utf-8`});return a(typeof e==`string`?e:new TextDecoder().decode(e))}catch(t){if(t instanceof e&&t.code===`ENOENT`)return null;throw t}}async function d(t,n){let i=r(n);try{await t.rm(i)}catch(t){if(t instanceof e&&t.code===`ENOENT`)return;throw t}}function f(e){return typeof e==`string`?e:e.filter(e=>e.type===`text`).map(e=>e.text).join(`
3
3
  `)}function p(e){return typeof e==`string`?[]:e.filter(e=>e.type===`toolCall`).map(e=>({id:e.id,name:e.name,input:e.arguments}))}function m(e){return`${e}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`}export{i as loadFrozenArchive,d as removeSessionJsonl};
@@ -1,3 +1,3 @@
1
- import{c as e,i as t}from"./kernel-worker-40_1fMYG.js";import{loadFrozenArchive as n}from"./session-jsonl-CdBv2yqZ.js";const r=`/sessions/.search-index.json`,i=12e3,a=4e3;async function o(e,t){return typeof e.readdir==`function`?e.readdir(t):typeof e.readDir==`function`?(await e.readDir(t)).map(e=>e.name):[]}const s={fields:[`title`,`body`],storeFields:[`title`,`body`,`sessionId`,`sessionTitle`,`filename`,`messageId`,`messageIndex`,`role`,`echoKind`,`path`],idField:`id`,processTerm:e=>{let t=e.toLowerCase();return t.length<2?null:M(t)},searchOptions:{boost:{title:4,body:1},prefix:!0}},c={original:1,summary:.35,echo:.15};function l(e){if(e.compaction)return`summary`;let t=e.content??``;return/<context-summary>/i.test(t)||/Earlier conversation messages were compacted/i.test(t)||/full transcript of the conversation before this compaction is saved at/i.test(t)?`summary`:/^# session (search|read):/m.test(t)||/\bid=sess\/[^\s]+/.test(t)||e.role===`assistant`&&e.toolCalls?.some(e=>e.name===`bash`&&typeof e.input==`object`&&e.input!==null&&/session\s+(search|read)\b/.test(String(e.input.command??``)))?`echo`:`original`}function u(e,t){return`sess/${e}/msg/${t}`}function d(e){let t=/^sess\/([^/]+)\/msg\/(.+)$/.exec(e);return t?{sessionId:t[1],messageId:t[2]}:null}function f(e){let t=`${e.sessionsDir??`/sessions`}/${e.filename}`,n=[];return e.messages.forEach((r,i)=>{let o=r.id||`i${i}`,s=[A(r.content??``,a)];for(let e of r.toolCalls??[])s.push(e.name,A(j(e.input),a)),e.result&&s.push(A(e.result,a));let c=A(s.filter(Boolean).join(`
1
+ import{c as e,i as t}from"./kernel-worker-eYyVS1Sv.js";import{loadFrozenArchive as n}from"./session-jsonl-75gCtQ05.js";const r=`/sessions/.search-index.json`,i=12e3,a=4e3;async function o(e,t){return typeof e.readdir==`function`?e.readdir(t):typeof e.readDir==`function`?(await e.readDir(t)).map(e=>e.name):[]}const s={fields:[`title`,`body`],storeFields:[`title`,`body`,`sessionId`,`sessionTitle`,`filename`,`messageId`,`messageIndex`,`role`,`echoKind`,`path`],idField:`id`,processTerm:e=>{let t=e.toLowerCase();return t.length<2?null:M(t)},searchOptions:{boost:{title:4,body:1},prefix:!0}},c={original:1,summary:.35,echo:.15};function l(e){if(e.compaction)return`summary`;let t=e.content??``;return/<context-summary>/i.test(t)||/Earlier conversation messages were compacted/i.test(t)||/full transcript of the conversation before this compaction is saved at/i.test(t)?`summary`:/^# session (search|read):/m.test(t)||/\bid=sess\/[^\s]+/.test(t)||e.role===`assistant`&&e.toolCalls?.some(e=>e.name===`bash`&&typeof e.input==`object`&&e.input!==null&&/session\s+(search|read)\b/.test(String(e.input.command??``)))?`echo`:`original`}function u(e,t){return`sess/${e}/msg/${t}`}function d(e){let t=/^sess\/([^/]+)\/msg\/(.+)$/.exec(e);return t?{sessionId:t[1],messageId:t[2]}:null}function f(e){let t=`${e.sessionsDir??`/sessions`}/${e.filename}`,n=[];return e.messages.forEach((r,i)=>{let o=r.id||`i${i}`,s=[A(r.content??``,a)];for(let e of r.toolCalls??[])s.push(e.name,A(j(e.input),a)),e.result&&s.push(A(e.result,a));let c=A(s.filter(Boolean).join(`
2
2
  `),a);(c.trim()||r.compaction)&&n.push({id:u(e.sessionId,o),title:e.sessionTitle,body:c,sessionId:e.sessionId,sessionTitle:e.sessionTitle,filename:e.filename,messageId:o,messageIndex:i,role:r.role,echoKind:l(r),path:t})}),n}const p=`/scoops`;async function m(e){let t;try{t=await o(e,p)}catch{return[]}let n=[];for(let r of t)try{let t=await o(e,`${p}/${r}/sessions`);for(let e of t)n.push(`${p}/${r}/sessions/${e}`)}catch{}return n.sort()}async function h(n){let r=(await e(n)).map(e=>({entry:e,sessionsDir:t}));for(let e of await m(n))for(let t of await g(n,e))r.push({entry:t,sessionsDir:e});return r}async function g(e,t){try{let n=await e.readFile(`${t}/index.json`,{encoding:`utf-8`}),r=typeof n==`string`?n:new TextDecoder().decode(n),i=JSON.parse(r);return Array.isArray(i)?i:[]}catch{return[]}}async function _(e){let t=(await import(`./es-DoD-AdNd.js`)).default,n=await h(e),r=[],i=/* @__PURE__ */ new Set;for(let{entry:t,sessionsDir:a}of n)for(let n of await S(e,t,a))i.has(n.id)||(i.add(n.id),r.push(n));let a=new t(s);return r.length&&a.addAll(r),{mini:a,meta:{version:1,builtAt:Date.now(),archiveCount:n.length,fingerprint:w(n)},docs:r.length,archives:n.length}}async function v(e,t){return w(await h(e))===t.meta.fingerprint&&(await e.writeFile(r,JSON.stringify({meta:t.meta,index:t.mini.toJSON()})),!0)}async function y(e){let t=(await import(`./es-DoD-AdNd.js`)).default,n=w(await h(e));try{let i=await e.readFile(r,{encoding:`utf-8`}),a=typeof i==`string`?i:new TextDecoder().decode(i),o=JSON.parse(a);if(o.meta?.fingerprint===n&&o.index)return t.loadJS(o.index,s)}catch{}let i=await _(e);return await v(e,i),i.mini}async function b(e,t,n={}){let r=Math.min(Math.max(1,n.limit??8),20),i=t.trim();if(!i)return[];let a=await y(e),o=a.search(i,{boost:{title:4,body:1},prefix:!0}),s=[];for(let e of o){let t=a.getStoredFields(e.id);if(!t)continue;let n=t.echoKind??`original`,r=e.score*(c[n]??1);s.push({id:String(e.id),score:r,echoKind:n,sessionId:t.sessionId,sessionTitle:t.sessionTitle,filename:t.filename,messageId:t.messageId,messageIndex:t.messageIndex,role:t.role,path:t.path,excerpt:T(t.body,i)})}return s.sort((e,t)=>t.score-e.score),s.slice(0,r)}async function x(e,t,n={}){let r=d(t);if(!r)return null;let i=await h(e),a=i.find(({entry:e})=>e.sessionId===r.sessionId)??i.find(({entry:e})=>e.filename.replace(/\.md$/i,``)===r.sessionId);if(!a)return null;let{entry:o,sessionsDir:s}=a,c=await C(e,o,s),l=c.findIndex((e,t)=>(e.id||`i${t}`)===r.messageId),u=Math.max(0,n.from??Math.max(0,l)),f=Math.max(1,n.count??3),p=c.slice(u,u+f),m=E(p,u),g=!1;for(;k(m)>12e3&&p.length>1;)p=p.slice(0,-1),m=E(p,u),g=!0;k(m)>12e3&&(m=`${A(m,11980)}\n…[truncated]\n`,g=!0);let _=p.length,v=Math.max(0,c.length-(u+_));return{hit:{sessionId:o.sessionId??r.sessionId,messageId:r.messageId,sessionTitle:o.title,path:`${s}/${o.filename}`},messages:p,from:u,count:_,total:c.length,remaining:v,truncated:g,text:m}}async function S(e,n,r=t){let i=await C(e,n,r);return f({sessionId:n.sessionId??n.filename.replace(/\.md$/i,``),sessionTitle:n.title,filename:n.filename,messages:i,sessionsDir:r})}async function C(e,r,i=t){try{let t=`${i}/${r.filename}`,a=await e.readFile(t,{encoding:`utf-8`}),o=typeof a==`string`?a:new TextDecoder().decode(a);return(await n(e,o,t)).messages}catch{return[]}}function w(e){return e.map(({entry:e,sessionsDir:t})=>`${t}/${e.filename}:${e.messageCount}:${e.frozenAt}:${e.sessionId??``}`).sort().join(`|`)}function T(e,t,n=80){let r=e.replace(/\s+/g,` `).trim();if(!r)return``;let i=t.toLowerCase().split(/\s+/).filter(e=>e.length>1),a=-1;for(let e of i)if(a=r.toLowerCase().indexOf(e),a>=0)break;if(a<0)return r.slice(0,n*2)+(r.length>n*2?`…`:``);let o=Math.max(0,a-n),s=Math.min(r.length,a+n);return`${o>0?`…`:``}${r.slice(o,s)}${s<r.length?`…`:``}`}function E(e,t){let n=[];return e.forEach((e,r)=>{let i=t+r,a=e.id||`i${i}`;n.push(`## [${i}] ${e.role} id=${a}`),e.content&&n.push(e.content);for(let t of e.toolCalls??[])n.push(`### tool ${t.name} (${t.id})${t.isError?` ERROR`:``}`),n.push(j(t.input)),t.result&&n.push(t.result);n.push(``)}),n.join(`
3
3
  `)}async function D(e,t={}){try{await e.rm(r)}catch(e){if(t.strict&&e?.code!==`ENOENT`)throw e}}const O=new TextEncoder;function k(e){return O.encode(e).byteLength}function A(e,t){if(t<=0)return``;let n=O.encode(e);if(n.byteLength<=t)return e;let r=t;for(;r>0&&(n[r]&192)==128;)r--;return new TextDecoder().decode(n.subarray(0,r))}function j(e){try{return JSON.stringify(e)}catch{return String(e)}}function M(e){if(e.length<3)return e;let t=e;if(t.endsWith(`sses`)||t.endsWith(`ies`)?t=`${t.slice(0,-2)}`:t.endsWith(`ss`)||t.endsWith(`s`)&&t.length>3&&(t=t.slice(0,-1)),t.endsWith(`eed`))N(t.slice(0,-3))>0&&(t=t.slice(0,-1));else if(/(ed|ing)$/.test(t)){let e=t.replace(/(ed|ing)$/,``);/[aeiouy]/.test(e)&&(t=e,/(at|bl|iz)$/.test(t)?t=`${t}e`:/(.)\1$/.test(t)&&!/[lsz]$/.test(t)?t=t.slice(0,-1):N(t)===1&&P(t)&&(t=`${t}e`))}return t.endsWith(`y`)&&/[aeiouy]/.test(t.slice(0,-1))&&(t=`${t.slice(0,-1)}i`),t}function N(e){return(e.toLowerCase().replace(/[^aeiouy]+/g,`C`).replace(/[aeiouy]+/g,`V`).replace(/^C/,``).replace(/V$/,``).match(/VC/g)??[]).length}function P(e){if(e.length<3)return!1;let t=e[e.length-3],n=e[e.length-2],r=e[e.length-1],i=e=>/[aeiouy]/.test(e);return!i(t)&&i(n)&&!i(r)&&!/[wxy]/.test(r)}export{i as SESSION_READ_BYTE_CAP,D as invalidateSessionSearchIndex,x as readSessionHit,b as searchSessions};
@@ -1 +1 @@
1
- import{u as e}from"./feature-flags-DDJdMcuw.js";import{D as t,E as n,T as r,f as i,p as a}from"./main-CKBsgWBx.js";var o=3e3;async function s(t,i){let a=r(i.storage);try{let r=new URL(`/api/flags`,`${i.workerBaseUrl.replace(/\/+$/,``)}/`);r.searchParams.set(`float`,t);let s=await c(r.toString(),i.fetchImpl??fetch,i.timeoutMs??o);if(!s)return;n(a,t,s),e(t,s)}catch{}}async function c(e,t,n){let r=new AbortController,i;try{let a=new Promise(e=>{i=setTimeout(()=>{r.abort(),e(null)},n)}),o=t(e,{cache:`no-store`,headers:{Accept:`application/json`},signal:r.signal}).then(async e=>e.ok?l(await e.json()):null).catch(()=>null);return await Promise.race([o,a])}catch{return null}finally{i!==void 0&&clearTimeout(i)}}function l(e){if(!u(e))return null;let t=e.flags;return!u(t)||Object.values(t).some(e=>typeof e!=`string`)?null:t}function u(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function d(e,t){return s(e,{workerBaseUrl:g(t),storage:t.storage})}var f=18e5,p=null;function m(e,t,n=f){return h(),p=setInterval(()=>{d(e,t)},n),h}function h(){p!==null&&(clearInterval(p),p=null)}function g(e){let n=_(e.storage),r=t(e.envBaseUrl??null);if(n)return n;if(r)return r;if(!e.isDev)try{let t=new URL(e.locationHref);if(t.protocol===`http:`||t.protocol===`https:`)return t.origin}catch{}return e.isDev?a:i}function _(e){try{return t(e?.getItem(`slicc.trayWorkerBaseUrl`)??null)}catch{return null}}export{d as refreshFeatureFlagsForPage,g as resolveFeatureFlagsWorkerBaseUrl,m as scheduleFeatureFlagsRefresh};
1
+ import{u as e}from"./feature-flags-DDJdMcuw.js";import{D as t,E as n,T as r,f as i,p as a}from"./main-DuumegMc.js";var o=3e3;async function s(t,i){let a=r(i.storage);try{let r=new URL(`/api/flags`,`${i.workerBaseUrl.replace(/\/+$/,``)}/`);r.searchParams.set(`float`,t);let s=await c(r.toString(),i.fetchImpl??fetch,i.timeoutMs??o);if(!s)return;n(a,t,s),e(t,s)}catch{}}async function c(e,t,n){let r=new AbortController,i;try{let a=new Promise(e=>{i=setTimeout(()=>{r.abort(),e(null)},n)}),o=t(e,{cache:`no-store`,headers:{Accept:`application/json`},signal:r.signal}).then(async e=>e.ok?l(await e.json()):null).catch(()=>null);return await Promise.race([o,a])}catch{return null}finally{i!==void 0&&clearTimeout(i)}}function l(e){if(!u(e))return null;let t=e.flags;return!u(t)||Object.values(t).some(e=>typeof e!=`string`)?null:t}function u(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function d(e,t){return s(e,{workerBaseUrl:g(t),storage:t.storage})}var f=18e5,p=null;function m(e,t,n=f){return h(),p=setInterval(()=>{d(e,t)},n),h}function h(){p!==null&&(clearInterval(p),p=null)}function g(e){let n=_(e.storage),r=t(e.envBaseUrl??null);if(n)return n;if(r)return r;if(!e.isDev)try{let t=new URL(e.locationHref);if(t.protocol===`http:`||t.protocol===`https:`)return t.origin}catch{}return e.isDev?a:i}function _(e){try{return t(e?.getItem(`slicc.trayWorkerBaseUrl`)??null)}catch{return null}}export{d as refreshFeatureFlagsForPage,g as resolveFeatureFlagsWorkerBaseUrl,m as scheduleFeatureFlagsRefresh};
@@ -1 +1 @@
1
- import{_ as e,a as t,i as n,l as r,r as i,u as a}from"./core-DoHWT79Y.js";import{v as o}from"./renamed-providers-CKF5I4-o.js";import{a as s}from"./feature-flags-DDJdMcuw.js";import{S as c}from"./account-store-CzjRbfrU.js";import{resolveFeatureFlagsWorkerBaseUrl as l}from"./setup-feature-flags-remote-P6FROcRm.js";var u=`/api/models/providers/`,d=4e3,f=2e3;function p(e){let n=Array.isArray(e)?e:r(e)&&Array.isArray(t(e,`models`))?t(e,`models`):r(e)?Object.values(e):null;return n?n.filter(e=>r(e)&&typeof t(e,`id`)==`string`).slice(0,f):null}async function m(e,t,n,r){let i=new AbortController,a=setTimeout(()=>i.abort(),r);try{return await e(t,{...n,signal:i.signal})}finally{clearTimeout(a)}}async function h(e,t,n){if(!n.force&&t?.checkedAt!==void 0&&n.now-t.checkedAt<144e5)return{kind:`skip`};let r=new URL(`${u}${encodeURIComponent(e)}`,`${n.workerBaseUrl.replace(/\/+$/,``)}/`).toString(),i=t?.models.length?t.etag:void 0,a;try{a=await m(n.fetchImpl,r,{headers:{Accept:`application/json`,...i?{"If-None-Match":i}:{}}},n.timeoutMs)}catch{return{kind:`failed`,entry:t?{...t,checkedAt:n.now}:void 0}}if(a.status===304&&t)return{kind:`stored`,entry:{...t,checkedAt:n.now},changed:!1};if(a.status===404)return{kind:`stored`,entry:{models:[],checkedAt:n.now,lastModified:0},changed:!0};if(!a.ok)return{kind:`failed`,entry:t?{...t,checkedAt:n.now}:void 0};let o;try{o=p(await a.json())}catch{o=null}if(!o)return{kind:`failed`,entry:t};let s=Date.parse(a.headers.get(`last-modified`)??``),c={models:o,checkedAt:n.now,lastModified:Number.isNaN(s)?0:s},l=a.headers.get(`etag`);return l&&(c.etag=l),{kind:`stored`,entry:c,changed:!0}}async function g(t){let r={updated:[],failed:[]};if(!s(`live-model-catalog`))return r;let o=t.storage===void 0?n():t.storage;if(!o)return r;let c=new Set(e()),l=[...new Set(t.providers)].filter(e=>c.has(e));if(l.length===0)return r;let u=(t.now??Date.now)(),f={workerBaseUrl:t.workerBaseUrl,fetchImpl:t.fetchImpl??fetch,timeoutMs:t.timeoutMs??d,force:t.force===!0,now:u},p=a(o).store,m=await Promise.all(l.map(async e=>[e,await h(e,p[e],f)])),g={...a(o).store},_=!1;for(let[e,t]of m)t.kind!==`skip`&&(t.entry&&(g[e]=t.entry,_=!0),t.kind===`failed`?r.failed.push(e):t.changed&&r.updated.push(e));if(_)try{o.setItem(i,JSON.stringify(g))}catch{}return r}var _=o(`model-catalog`),v=36e5,y=null;async function b(e,t=!1){let n=await g({workerBaseUrl:l(e),providers:c(),storage:e.storage,force:t});return n.updated.length>0&&_.info(`Model catalogue refreshed`,{providers:n.updated}),n.failed.length>0&&_.debug(`Model catalogue refresh failed`,{providers:n.failed}),n}function x(e,t=v){return S(),y=setInterval(()=>{b(e)},t),b(e)}function S(){y!==null&&(clearInterval(y),y=null)}export{x as setupModelCatalog};
1
+ import{_ as e,a as t,i as n,l as r,r as i,u as a}from"./core-DoHWT79Y.js";import{v as o}from"./renamed-providers-CKF5I4-o.js";import{a as s}from"./feature-flags-DDJdMcuw.js";import{S as c}from"./account-store-Bm5rV5bR.js";import{resolveFeatureFlagsWorkerBaseUrl as l}from"./setup-feature-flags-remote-DWup7Sua.js";var u=`/api/models/providers/`,d=4e3,f=2e3;function p(e){let n=Array.isArray(e)?e:r(e)&&Array.isArray(t(e,`models`))?t(e,`models`):r(e)?Object.values(e):null;return n?n.filter(e=>r(e)&&typeof t(e,`id`)==`string`).slice(0,f):null}async function m(e,t,n,r){let i=new AbortController,a=setTimeout(()=>i.abort(),r);try{return await e(t,{...n,signal:i.signal})}finally{clearTimeout(a)}}async function h(e,t,n){if(!n.force&&t?.checkedAt!==void 0&&n.now-t.checkedAt<144e5)return{kind:`skip`};let r=new URL(`${u}${encodeURIComponent(e)}`,`${n.workerBaseUrl.replace(/\/+$/,``)}/`).toString(),i=t?.models.length?t.etag:void 0,a;try{a=await m(n.fetchImpl,r,{headers:{Accept:`application/json`,...i?{"If-None-Match":i}:{}}},n.timeoutMs)}catch{return{kind:`failed`,entry:t?{...t,checkedAt:n.now}:void 0}}if(a.status===304&&t)return{kind:`stored`,entry:{...t,checkedAt:n.now},changed:!1};if(a.status===404)return{kind:`stored`,entry:{models:[],checkedAt:n.now,lastModified:0},changed:!0};if(!a.ok)return{kind:`failed`,entry:t?{...t,checkedAt:n.now}:void 0};let o;try{o=p(await a.json())}catch{o=null}if(!o)return{kind:`failed`,entry:t};let s=Date.parse(a.headers.get(`last-modified`)??``),c={models:o,checkedAt:n.now,lastModified:Number.isNaN(s)?0:s},l=a.headers.get(`etag`);return l&&(c.etag=l),{kind:`stored`,entry:c,changed:!0}}async function g(t){let r={updated:[],failed:[]};if(!s(`live-model-catalog`))return r;let o=t.storage===void 0?n():t.storage;if(!o)return r;let c=new Set(e()),l=[...new Set(t.providers)].filter(e=>c.has(e));if(l.length===0)return r;let u=(t.now??Date.now)(),f={workerBaseUrl:t.workerBaseUrl,fetchImpl:t.fetchImpl??fetch,timeoutMs:t.timeoutMs??d,force:t.force===!0,now:u},p=a(o).store,m=await Promise.all(l.map(async e=>[e,await h(e,p[e],f)])),g={...a(o).store},_=!1;for(let[e,t]of m)t.kind!==`skip`&&(t.entry&&(g[e]=t.entry,_=!0),t.kind===`failed`?r.failed.push(e):t.changed&&r.updated.push(e));if(_)try{o.setItem(i,JSON.stringify(g))}catch{}return r}var _=o(`model-catalog`),v=36e5,y=null;async function b(e,t=!1){let n=await g({workerBaseUrl:l(e),providers:c(),storage:e.storage,force:t});return n.updated.length>0&&_.info(`Model catalogue refreshed`,{providers:n.updated}),n.failed.length>0&&_.debug(`Model catalogue refresh failed`,{providers:n.failed}),n}function x(e,t=v){return S(),y=setInterval(()=>{b(e)},t),b(e)}function S(){y!==null&&(clearInterval(y),y=null)}export{x as setupModelCatalog};
@@ -1 +1 @@
1
- import"./bridge-protocol-C52CnDIj.js";import{O as e}from"./main-CKBsgWBx.js";function t(t){try{let n=new URL(t);return n.searchParams.has(`bridge`)?!0:!e(n.hostname)}catch{return!1}}function n(n,r){let i=t(n.pageHref),a=r();if(i){if(n.configuredRedirectUri){let t=``;try{t=new URL(n.configuredRedirectUri).origin}catch{t=``}if(t&&n.pageOrigin===t){let e=btoa(JSON.stringify({source:`opener`,path:`/auth/callback`,nonce:a}));return{redirectUri:n.configuredRedirectUri,oauthState:e,expectedNonce:a,source:`opener`}}let r=null;try{r=new URL(n.pageHref)}catch{r=null}if(r!==null&&r.protocol===`http:`&&e(r.hostname)&&r.port!==``&&r){let e=parseInt(r.port,10),t=btoa(JSON.stringify({source:`local`,port:e,path:`/auth/callback`,nonce:a}));return{redirectUri:n.configuredRedirectUri,oauthState:t,expectedNonce:a,source:`local`}}}return{redirectUri:`${n.pageOrigin}/auth/callback`,oauthState:btoa(JSON.stringify({source:`opener`,path:`/auth/callback`,nonce:a})),expectedNonce:a,source:`opener`}}let o=n.configuredRedirectUri??`${n.pageOrigin}/auth/callback`,s=parseInt(new URL(n.pageHref).port||`5710`,10);return{redirectUri:o,oauthState:btoa(JSON.stringify({port:s,path:`/auth/callback`,nonce:a})),expectedNonce:a,source:`local`}}var r=3e5;function i(e=r){let t=0;return{async run(n,r=Date.now()){if(r<t)return null;let i=null;try{i=await n()}catch(e){console.debug(`[silent-renew-backoff] renew threw:`,e instanceof Error?e.message:String(e)),i=null}return t=i?0:r+e,i},inCooldown(e=Date.now()){return e<t}}}export{n,t as r,i as t};
1
+ import"./bridge-protocol-C52CnDIj.js";import{O as e}from"./main-DuumegMc.js";function t(t){try{let n=new URL(t);return n.searchParams.has(`bridge`)?!0:!e(n.hostname)}catch{return!1}}function n(n,r){let i=t(n.pageHref),a=r();if(i){if(n.configuredRedirectUri){let t=``;try{t=new URL(n.configuredRedirectUri).origin}catch{t=``}if(t&&n.pageOrigin===t){let e=btoa(JSON.stringify({source:`opener`,path:`/auth/callback`,nonce:a}));return{redirectUri:n.configuredRedirectUri,oauthState:e,expectedNonce:a,source:`opener`}}let r=null;try{r=new URL(n.pageHref)}catch{r=null}if(r!==null&&r.protocol===`http:`&&e(r.hostname)&&r.port!==``&&r){let e=parseInt(r.port,10),t=btoa(JSON.stringify({source:`local`,port:e,path:`/auth/callback`,nonce:a}));return{redirectUri:n.configuredRedirectUri,oauthState:t,expectedNonce:a,source:`local`}}}return{redirectUri:`${n.pageOrigin}/auth/callback`,oauthState:btoa(JSON.stringify({source:`opener`,path:`/auth/callback`,nonce:a})),expectedNonce:a,source:`opener`}}let o=n.configuredRedirectUri??`${n.pageOrigin}/auth/callback`,s=parseInt(new URL(n.pageHref).port||`5710`,10);return{redirectUri:o,oauthState:btoa(JSON.stringify({port:s,path:`/auth/callback`,nonce:a})),expectedNonce:a,source:`local`}}var r=3e5;function i(e=r){let t=0;return{async run(n,r=Date.now()){if(r<t)return null;let i=null;try{i=await n()}catch(e){console.debug(`[silent-renew-backoff] renew threw:`,e instanceof Error?e.message:String(e)),i=null}return t=i?0:r+e,i},inCooldown(e=Date.now()){return e<t}}}export{n,t as r,i as t};
@@ -1,2 +1,2 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MEMORY-B9cGngY_.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/GELATIERE-CLK_MA5a.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-BLdHbfdN.js";import{v as t}from"./renamed-providers-CKF5I4-o.js";import"./feature-flags-DDJdMcuw.js";import"./fs-C6gMkOwH.js";import"./dock-tree-spec-D-vXUz3b.js";import{n}from"./sudoers-NZQeUOXa.js";t(`sudo:fs`),`${n}`,t(`skills-discovery`),t(`skills`);var r=Object.assign({"/packages/vfs-root/AGENTS.md":()=>e(()=>import(`./CLAUDE-Dc_zsP8N.js`).then(e=>e.default),[]),"/packages/vfs-root/CLAUDE.md":()=>e(()=>import(`./CLAUDE-Dc_zsP8N.js`).then(e=>e.default),[]),"/packages/vfs-root/etc/APPROVALS.md":()=>e(()=>import(`./APPROVALS-CoZKeFYV.js`).then(e=>e.default),[]),"/packages/vfs-root/etc/MEMORY.md":()=>e(()=>import(`./MEMORY-B9cGngY_.js`).then(e=>e.n).then(e=>e.default),__vite__mapDeps([0,1])),"/packages/vfs-root/etc/slicc/keys.json":()=>e(()=>import(`./keys-BMebW-sj.js`).then(e=>e.default),[]),"/packages/vfs-root/shared/CLAUDE.md":()=>e(()=>import(`./CLAUDE-Bzu6oiWk.js`).then(e=>e.default),[]),"/packages/vfs-root/shared/GELATIERE.md":()=>e(()=>import(`./GELATIERE-CLK_MA5a.js`).then(e=>e.n).then(e=>e.default),__vite__mapDeps([2,1])),"/packages/vfs-root/shared/sprinkles/suggestions/suggestions.shtml":()=>e(()=>import(`./suggestions-B34zKgsF.js`).then(e=>e.default),[]),"/packages/vfs-root/shared/sprinkles/welcome/connect-llm.shtml":()=>e(()=>import(`./connect-llm-FevTa-aV.js`).then(e=>e.default),[]),"/packages/vfs-root/shared/sprinkles/welcome/welcome.shtml":()=>e(()=>import(`./welcome-BzW33ZtP.js`).then(e=>e.default),[]),"/packages/vfs-root/shared/wiki/WIKI.md":()=>e(()=>import(`./WIKI-DoBxwf2u.js`).then(e=>e.default),[]),"/packages/vfs-root/shared/wiki/index.md":()=>e(()=>import(`./wiki-BXN4hgmw.js`).then(e=>e.default),[]),"/packages/vfs-root/shared/wiki/log.md":()=>e(()=>import(`./log-DEDI5t_h.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/automation/SKILL.md":()=>e(()=>import(`./SKILL-cOU0zXaK.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/biome/SKILL.md":()=>e(()=>import(`./SKILL-BNnF2azP.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/cherry/SKILL.md":()=>e(()=>import(`./SKILL-CAEy2Rj4.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/computer/SKILL.md":()=>e(()=>import(`./SKILL-D64N28rB.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/delegation/SKILL.md":()=>e(()=>import(`./SKILL-Dyvlv3-H.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/dips/SKILL.md":()=>e(()=>import(`./SKILL-BmzmDv0e.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/dips/patterns.md":()=>e(()=>import(`./patterns-ChiGbijt.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/dns/SKILL.md":()=>e(()=>import(`./SKILL-BKyxMoME.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/ffmpeg/SKILL.md":()=>e(()=>import(`./SKILL-C6co9TnL.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/gelatiere/SKILL.md":()=>e(()=>import(`./SKILL-DXpn0mQK.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/handoff/SKILL.md":()=>e(()=>import(`./SKILL-BGww2dFz.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/image-processing/SKILL.md":()=>e(()=>import(`./SKILL-DpjPj8Lx.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/jshd/SKILL.md":()=>e(()=>import(`./SKILL-DZoCcID_.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/jshd/examples/fake-computer.jsh":()=>e(()=>import(`./fake-computer-Jawax3MO.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/mcp/SKILL.md":()=>e(()=>import(`./SKILL-tmFs9Tl9.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/meminfo/SKILL.md":()=>e(()=>import(`./SKILL-DXIigmDy.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/memory/SKILL.md":()=>e(()=>import(`./SKILL-CVh4bFFa.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/mount/SKILL.md":()=>e(()=>import(`./SKILL-BKKGj_a4.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/package-execution/SKILL.md":()=>e(()=>import(`./SKILL-BsfbaE8W.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/playwright-cli/SKILL.md":()=>e(()=>import(`./SKILL-C-CvOwkC.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/skill-authoring/SKILL.md":()=>e(()=>import(`./SKILL-Btc2ZGeK.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/skill-authoring/jsh-runtime-extensions.md":()=>e(()=>import(`./jsh-runtime-extensions-pb2O5sX7.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/slicc/SKILL.md":()=>e(()=>import(`./SKILL-CRLGKQWi.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/sprinkles/SKILL.md":()=>e(()=>import(`./SKILL-yQwWZJ0k.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/sprinkles/icon-example.md":()=>e(()=>import(`./icon-example-LUkiEXyS.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/sprinkles/style-guide.md":()=>e(()=>import(`./style-guide-BvFX24DM.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/ssh/SKILL.md":()=>e(()=>import(`./SKILL-B8Oawe6a.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/theme/SKILL.md":()=>e(()=>import(`./SKILL-CTFXwGP5.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/transcript-export/SKILL.md":()=>e(()=>import(`./SKILL-Cpgfn6KV.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/upgrade/SKILL.md":()=>e(()=>import(`./SKILL-3ejR48eL.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/v86/SKILL.md":()=>e(()=>import(`./SKILL-Ba9Slc1c.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/welcome/SKILL.md":()=>e(()=>import(`./SKILL-C3909YTo.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/wiki/SKILL.md":()=>e(()=>import(`./SKILL-UcxSfshP.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/wiki/wiki.jsh":()=>e(()=>import(`./wiki-DA0qKUVC.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/workflows/SKILL.md":()=>e(()=>import(`./SKILL-Bt-RhG0L.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/x-search/SKILL.md":()=>e(()=>import(`./SKILL-CED8RXQP.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/x-search/x_search.jsh":()=>e(()=>import(`./x_search-C-5p00-C.js`).then(e=>e.default),[])}),i=Object.assign({"/packages/vfs-root/shared/sounds/chime.mp3":()=>e(()=>import(`./chime-CPc6qSh5.js`).then(e=>e.default),[])});function a(e){let t=e.split(`,`)[1],n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r}var o={};function s(){let e={};for(let[t,n]of Object.entries(r))e[t]=n;for(let[t,n]of Object.entries(i))e[t]=async()=>a(await n());for(let[t,n]of Object.entries(o)){let r=t.replace(`/packages/dev-tools/vfs-dev-skills/`,`/packages/vfs-root/workspace/skills/`);e[r]=()=>Promise.resolve(n)}return e}async function c(e){let t=s()[`/packages/vfs-root${e}`];if(!t)return null;let n=await t();return typeof n==`string`?new TextEncoder().encode(n):n}export{c as readBundledFile};
2
+ import{t as e}from"./preload-helper-BLdHbfdN.js";import{v as t}from"./renamed-providers-CKF5I4-o.js";import"./feature-flags-DDJdMcuw.js";import"./fs-C6gMkOwH.js";import"./dock-tree-spec-D-vXUz3b.js";import{n}from"./sudoers-NZQeUOXa.js";t(`sudo:fs`),`${n}`,t(`skills-discovery`),t(`skills`);var r=Object.assign({"/packages/vfs-root/AGENTS.md":()=>e(()=>import(`./CLAUDE-Dc_zsP8N.js`).then(e=>e.default),[]),"/packages/vfs-root/CLAUDE.md":()=>e(()=>import(`./CLAUDE-Dc_zsP8N.js`).then(e=>e.default),[]),"/packages/vfs-root/etc/APPROVALS.md":()=>e(()=>import(`./APPROVALS-CoZKeFYV.js`).then(e=>e.default),[]),"/packages/vfs-root/etc/MEMORY.md":()=>e(()=>import(`./MEMORY-B9cGngY_.js`).then(e=>e.n).then(e=>e.default),__vite__mapDeps([0,1])),"/packages/vfs-root/etc/slicc/keys.json":()=>e(()=>import(`./keys-BMebW-sj.js`).then(e=>e.default),[]),"/packages/vfs-root/shared/CLAUDE.md":()=>e(()=>import(`./CLAUDE-Bzu6oiWk.js`).then(e=>e.default),[]),"/packages/vfs-root/shared/GELATIERE.md":()=>e(()=>import(`./GELATIERE-CLK_MA5a.js`).then(e=>e.n).then(e=>e.default),__vite__mapDeps([2,1])),"/packages/vfs-root/shared/sprinkles/suggestions/suggestions.shtml":()=>e(()=>import(`./suggestions-B34zKgsF.js`).then(e=>e.default),[]),"/packages/vfs-root/shared/sprinkles/welcome/connect-llm.shtml":()=>e(()=>import(`./connect-llm-FevTa-aV.js`).then(e=>e.default),[]),"/packages/vfs-root/shared/sprinkles/welcome/welcome.shtml":()=>e(()=>import(`./welcome-BzW33ZtP.js`).then(e=>e.default),[]),"/packages/vfs-root/shared/wiki/WIKI.md":()=>e(()=>import(`./WIKI-DoBxwf2u.js`).then(e=>e.default),[]),"/packages/vfs-root/shared/wiki/index.md":()=>e(()=>import(`./wiki-BXN4hgmw.js`).then(e=>e.default),[]),"/packages/vfs-root/shared/wiki/log.md":()=>e(()=>import(`./log-DEDI5t_h.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/automation/SKILL.md":()=>e(()=>import(`./SKILL-cOU0zXaK.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/biome/SKILL.md":()=>e(()=>import(`./SKILL-BNnF2azP.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/cherry/SKILL.md":()=>e(()=>import(`./SKILL-CAEy2Rj4.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/computer/SKILL.md":()=>e(()=>import(`./SKILL-D64N28rB.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/delegation/SKILL.md":()=>e(()=>import(`./SKILL-Dyvlv3-H.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/dips/SKILL.md":()=>e(()=>import(`./SKILL-BmzmDv0e.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/dips/patterns.md":()=>e(()=>import(`./patterns-ChiGbijt.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/dns/SKILL.md":()=>e(()=>import(`./SKILL-BKyxMoME.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/ffmpeg/SKILL.md":()=>e(()=>import(`./SKILL-C6co9TnL.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/gelatiere/SKILL.md":()=>e(()=>import(`./SKILL-DXpn0mQK.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/handoff/SKILL.md":()=>e(()=>import(`./SKILL-BGww2dFz.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/image-processing/SKILL.md":()=>e(()=>import(`./SKILL-DpjPj8Lx.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/jshd/SKILL.md":()=>e(()=>import(`./SKILL-DZoCcID_.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/jshd/examples/fake-computer.jsh":()=>e(()=>import(`./fake-computer-Jawax3MO.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/mcp/SKILL.md":()=>e(()=>import(`./SKILL-tmFs9Tl9.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/meminfo/SKILL.md":()=>e(()=>import(`./SKILL-DXIigmDy.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/memory/SKILL.md":()=>e(()=>import(`./SKILL-CVh4bFFa.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/mount/SKILL.md":()=>e(()=>import(`./SKILL-BKKGj_a4.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/package-execution/SKILL.md":()=>e(()=>import(`./SKILL-BbHV9IdF.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/playwright-cli/SKILL.md":()=>e(()=>import(`./SKILL-C-CvOwkC.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/skill-authoring/SKILL.md":()=>e(()=>import(`./SKILL-Btc2ZGeK.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/skill-authoring/jsh-runtime-extensions.md":()=>e(()=>import(`./jsh-runtime-extensions-pb2O5sX7.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/slicc/SKILL.md":()=>e(()=>import(`./SKILL-CRLGKQWi.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/sprinkles/SKILL.md":()=>e(()=>import(`./SKILL-yQwWZJ0k.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/sprinkles/icon-example.md":()=>e(()=>import(`./icon-example-LUkiEXyS.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/sprinkles/style-guide.md":()=>e(()=>import(`./style-guide-BvFX24DM.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/ssh/SKILL.md":()=>e(()=>import(`./SKILL-B8Oawe6a.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/theme/SKILL.md":()=>e(()=>import(`./SKILL-CTFXwGP5.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/transcript-export/SKILL.md":()=>e(()=>import(`./SKILL-Cpgfn6KV.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/upgrade/SKILL.md":()=>e(()=>import(`./SKILL-3ejR48eL.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/v86/SKILL.md":()=>e(()=>import(`./SKILL-Ba9Slc1c.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/welcome/SKILL.md":()=>e(()=>import(`./SKILL-C3909YTo.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/wiki/SKILL.md":()=>e(()=>import(`./SKILL-UcxSfshP.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/wiki/wiki.jsh":()=>e(()=>import(`./wiki-DA0qKUVC.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/workflows/SKILL.md":()=>e(()=>import(`./SKILL-Bt-RhG0L.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/x-search/SKILL.md":()=>e(()=>import(`./SKILL-CED8RXQP.js`).then(e=>e.default),[]),"/packages/vfs-root/workspace/skills/x-search/x_search.jsh":()=>e(()=>import(`./x_search-C-5p00-C.js`).then(e=>e.default),[])}),i=Object.assign({"/packages/vfs-root/shared/sounds/chime.mp3":()=>e(()=>import(`./chime-CPc6qSh5.js`).then(e=>e.default),[])});function a(e){let t=e.split(`,`)[1],n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r}var o={};function s(){let e={};for(let[t,n]of Object.entries(r))e[t]=n;for(let[t,n]of Object.entries(i))e[t]=async()=>a(await n());for(let[t,n]of Object.entries(o)){let r=t.replace(`/packages/dev-tools/vfs-dev-skills/`,`/packages/vfs-root/workspace/skills/`);e[r]=()=>Promise.resolve(n)}return e}async function c(e){let t=s()[`/packages/vfs-root${e}`];if(!t)return null;let n=await t();return typeof n==`string`?new TextEncoder().encode(n):n}export{c as readBundledFile};
@@ -0,0 +1 @@
1
+ function e(){return{version:`6.255.6`,releasedAt:`2026-10-22T22:01:25Z`,buildId:`6.255.6-mvk35nvr`}}let t=null;function n(e){t=e}function r(){return t}export{e as n,n as r,r as t};