sliccy 6.182.0 → 6.183.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ui/.vite/manifest.json +268 -260
- package/dist/ui/assets/SKILL-B4YYagrM.js +1 -0
- package/dist/ui/assets/{SKILL-BpMlcVho.js → SKILL-BbKu0tAh.js} +1 -1
- package/dist/ui/assets/{SKILL-DGelbGt_.js → SKILL-CG7Xvjv7.js} +1 -1
- package/dist/ui/assets/{account-store-BxB3138q.js → account-store-Ce44FdYj.js} +2 -2
- package/dist/ui/assets/{account-store-UA_3Tz4g.js → account-store-D0ciUU3U.js} +1 -1
- package/dist/ui/assets/{adobe-C5iQ4vVx.js → adobe-FgsPWBjV.js} +2 -2
- package/dist/ui/assets/{adobe-CGl3cGPR.js → adobe-j1r9Po8o.js} +1 -1
- package/dist/ui/assets/{agent-panels-DfmjvBS2.js → agent-panels-DcVWQZVh.js} +1 -1
- package/dist/ui/assets/{almost-bash-shell-headless-l1xuiFhc.js → almost-bash-shell-headless-CsDQjWSX.js} +268 -268
- package/dist/ui/assets/{apply-layout-Bq6bvrT2.js → apply-layout-6-QTVrMq.js} +1 -1
- package/dist/ui/assets/{apps-BX-IbYH9.js → apps-C20mWJ8w.js} +1 -1
- package/dist/ui/assets/{azure-openai-BXvWNypo.js → azure-openai-CTmHX_BT.js} +1 -1
- package/dist/ui/assets/{azure-openai-C2dDMpxW.js → azure-openai-CotI4RBJ.js} +1 -1
- package/dist/ui/assets/{backend-hostfs-DV8kfBUj.js → backend-hostfs-D46_hViH.js} +1 -1
- package/dist/ui/assets/{capability-C8I_18AN.js → capability-BgC-ru0t.js} +2 -2
- package/dist/ui/assets/{cdp-B0aSo4ch.js → cdp-BvPARz8i.js} +1 -1
- package/dist/ui/assets/{cerebras-D29ytBVb.js → cerebras-CGndqdHt.js} +1 -1
- package/dist/ui/assets/{cerebras-B2SDJ5pX.js → cerebras-DG7lHBt1.js} +1 -1
- package/dist/ui/assets/{client-Sb_wIqH2.js → client-CmfvXtLV.js} +1 -1
- package/dist/ui/assets/{composer-speech-Dt-gM11M.js → composer-speech-C2InwNBM.js} +1 -1
- package/dist/ui/assets/{connect-surface-Cb3XqWWR.js → connect-surface-EWOA61l_.js} +1 -1
- package/dist/ui/assets/{core-B3ULTK7V.js → core-Be1yHH6v.js} +1 -1
- package/dist/ui/assets/{core-CDo7qjEn.js → core-D-Fp1HL2.js} +1 -1
- package/dist/ui/assets/{directed-approval-BEel8QYA.js → directed-approval-6QIzcmF_.js} +1 -1
- package/dist/ui/assets/{discovery-preference-C7kFEKRM.js → discovery-preference-MWZVi-PZ.js} +1 -1
- package/dist/ui/assets/dist-C8ZpEU8V.js +3 -0
- package/dist/ui/assets/{emscripten-vfs-hook-bNKkM3Zb.js → emscripten-vfs-hook-B9KkLncp.js} +1 -1
- package/dist/ui/assets/{ensure-speech-assets-DnCun_bM.js → ensure-speech-assets-C3v1Nu2n.js} +1 -1
- package/dist/ui/assets/{extension-ops-CmuqbGmo.js → extension-ops-DTRUyGkx.js} +1 -1
- package/dist/ui/assets/{float-topology-BvkgNLoi.js → float-topology-B0_dG7En.js} +1 -1
- package/dist/ui/assets/{follower-navigate-watcher-B8Kk1WcF.js → follower-navigate-watcher-DVWQWTGU.js} +1 -1
- package/dist/ui/assets/{frozen-archive-writer-DWckLPIx.js → frozen-archive-writer-DMShgEqJ.js} +1 -1
- package/dist/ui/assets/{fs-Bl1dGTw7.js → fs-JF56Nord.js} +2 -2
- package/dist/ui/assets/{fs-Bvj_6WV6.js → fs-TVcPtHbB.js} +1 -1
- package/dist/ui/assets/{gelatiere-store-CslswlOn.js → gelatiere-store-BnAzlDHe.js} +1 -1
- package/dist/ui/assets/{gelatiere-unit-DOffAKPD.js → gelatiere-unit-5cS02rOR.js} +1 -1
- package/dist/ui/assets/{github-DRuWNJ0x.js → github-BJKcZ0cU.js} +2 -2
- package/dist/ui/assets/{github-DVquHzS1.js → github-DsvjkXr7.js} +1 -1
- package/dist/ui/assets/{github-auth-C5UPE82y.js → github-auth-Crm1hubQ.js} +1 -1
- package/dist/ui/assets/{github-copilot-DXbnFsoC.js → github-copilot-BWhNAowY.js} +1 -1
- package/dist/ui/assets/{github-copilot-ha5V9jKJ.js → github-copilot-ngj7NQ16.js} +1 -1
- package/dist/ui/assets/{github-install-z8nzKR56.js → github-install-DB3-4PDg.js} +1 -1
- package/dist/ui/assets/{github-zip-YeBT3Ny7.js → github-zip-CfS9P2dH.js} +1 -1
- package/dist/ui/assets/{guest-tool-gate-Dn4Cs-oT.js → guest-tool-gate-B2z1ggE_.js} +1 -1
- package/dist/ui/assets/{hear-ClByyjXy.js → hear-akPMJ6kC.js} +1 -1
- package/dist/ui/assets/{help-p6vq-7bY.js → help-CNHuyT-F.js} +1 -1
- package/dist/ui/assets/{installer-hyWN7t-8.js → installer-CzQ_lEMz.js} +1 -1
- package/dist/ui/assets/{interrupted-work-recovery-C3eyzaf0.js → interrupted-work-recovery-r9fITX8G.js} +1 -1
- package/dist/ui/assets/{js-realm-worker-C8L3DYxo.js → js-realm-worker-EkjzOn2Q.js} +2 -2
- package/dist/ui/assets/{jsh-executor-BRw7B4H0.js → jsh-executor-C849KexO.js} +2 -2
- package/dist/ui/assets/{kernel-worker-DJ8FZwqE.js → kernel-worker-B69_4v-D.js} +10 -10
- package/dist/ui/assets/{lick-ws-bridge-AHYpxmrH.js → lick-ws-bridge-BygSyyxa.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-DjxKrqtY.js → lick-ws-bridge-DDMdP2AB.js} +1 -1
- package/dist/ui/assets/{live-session-curation-ChbHqCg_.js → live-session-curation-BfplChNV.js} +1 -1
- package/dist/ui/assets/{live-session-snapshot-CEM9afjE.js → live-session-snapshot-BQQH-IkA.js} +1 -1
- package/dist/ui/assets/{local-llm-3Pq3W9JZ.js → local-llm-BSMA7cC5.js} +1 -1
- package/dist/ui/assets/{local-llm-DSfR5Yt1.js → local-llm-CNznNtp9.js} +1 -1
- package/dist/ui/assets/{main-DtPQfxOa.js → main-BsG-jtvC.js} +3 -3
- package/dist/ui/assets/{main-cherry-GQeDS2ns.js → main-cherry-7eVbk29W.js} +1 -1
- package/dist/ui/assets/{memory-curation-seam-COOFWWtR.js → memory-curation-seam-z19QoOG6.js} +1 -1
- package/dist/ui/assets/{memory-health-DxPjxnOp.js → memory-health-CL5kYVAr.js} +1 -1
- package/dist/ui/assets/{memory-write-execute-CRxpEM2X.js → memory-write-execute-C_oehZl_.js} +1 -1
- package/dist/ui/assets/{mount-9N6h5nwh.js → mount-BvxmwqOG.js} +3 -3
- package/dist/ui/assets/{mount-Dkwa5rwA.js → mount-JNIgSYT5.js} +1 -1
- package/dist/ui/assets/{mount-bridge-client-C4Ti1B85.js → mount-bridge-client-CaHZ1pkb.js} +1 -1
- package/dist/ui/assets/{mount-bridge-client-BMkDfg_K.js → mount-bridge-client-DRVFK3mJ.js} +1 -1
- package/dist/ui/assets/{new-session-C2Unp_ay.js → new-session-qNCtGIiI.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-3r1LKeNV.js → oauth-bootstrap-F0HvaeYA.js} +2 -2
- package/dist/ui/assets/{oauth-service-CxXBA9rC.js → oauth-service-Dn_Xz1FZ.js} +1 -1
- package/dist/ui/assets/{oauth-service-B8mWc7rY.js → oauth-service-_PUd0RqU.js} +1 -1
- package/dist/ui/assets/{onboarding-orchestrator-DagKmKCB.js → onboarding-orchestrator-OKDMP2X_.js} +1 -1
- package/dist/ui/assets/{openai-codex--tiTbtXj.js → openai-codex-6hCaJG3N.js} +1 -1
- package/dist/ui/assets/{openai-codex-CJC7uwBp.js → openai-codex-BbYHsYuO.js} +1 -1
- package/dist/ui/assets/{openrouter-aXBsdtFI.js → openrouter-BPYQjzK5.js} +1 -1
- package/dist/ui/assets/{openrouter-mBY_6dIp.js → openrouter-BstowyUr.js} +1 -1
- package/dist/ui/assets/{openrouter-free-BeCg7Ecw.js → openrouter-free-B1qsiSWg.js} +1 -1
- package/dist/ui/assets/{openrouter-free-DqFFRvst.js → openrouter-free-DMavbTS5.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-DQIC6b5R.js → openrouter-oauth-CYZRlFsL.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-C7CZ9fp_.js → openrouter-oauth-DrKARZLe.js} +1 -1
- package/dist/ui/assets/{opfs-mount-tiZR34GY.js → opfs-mount-D3x0tHeU.js} +1 -1
- package/dist/ui/assets/{page-approval-service-CYpStEUs.js → page-approval-service-DRZEjhrX.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-D8NOrxvf.js → panel-rpc-handlers-CiSSOSEo.js} +2 -2
- package/dist/ui/assets/{panelize-shell-C_Xs3rhf.js → panelize-shell-CILi0yPu.js} +4 -4
- package/dist/ui/assets/{pi-edit-execution-kItlGFSm.js → pi-edit-execution-CEUeI3PX.js} +1 -1
- package/dist/ui/assets/{port-bridge-client-CrZ9vnOK.js → port-bridge-client-BiWcfZSc.js} +1 -1
- package/dist/ui/assets/{port-bridge-client-BHH6FPBY.js → port-bridge-client-BvO-1Rao.js} +1 -1
- package/dist/ui/assets/{provider-BtTOwLci.js → provider-CPes-oeu.js} +2 -2
- package/dist/ui/assets/{provider-DuCd6_sr.js → provider-Dv9W3IvY.js} +1 -1
- package/dist/ui/assets/{provider-settings-PedRbxpK.js → provider-settings-CDcPLuoa.js} +1 -1
- package/dist/ui/assets/provider-store-access-B7yFT4hY.js +1 -0
- package/dist/ui/assets/provider-store-access-D2Rj0Y-3.js +1 -0
- package/dist/ui/assets/{providers-BkwBVwkB.js → providers-COWrD21n.js} +2 -2
- package/dist/ui/assets/{providers-CWFcdblf.js → providers-DLk_1jra.js} +1 -1
- package/dist/ui/assets/proxied-fetch-DiXk_XGs.js +2 -0
- package/dist/ui/assets/proxied-fetch-J19bK2dG.js +1 -0
- package/dist/ui/assets/{quick-llm-DKsocfis.js → quick-llm-ByDw79ph.js} +1 -1
- package/dist/ui/assets/{realm-inprocess-CI_Msk8I.js → realm-inprocess-BLSq-cQS.js} +1 -1
- package/dist/ui/assets/{recovery-screen-HGByYfVb.js → recovery-screen-CldB31e2.js} +1 -1
- package/dist/ui/assets/{redirect-uri-Dnc7Ae7l.js → redirect-uri-DlOE4xJ4.js} +1 -1
- package/dist/ui/assets/{remote-terminal-view-C6Ao0U4O.js → remote-terminal-view-BpHAWWeD.js} +1 -1
- package/dist/ui/assets/{rest-ops-vPHUnWou.js → rest-ops-CPEMTyP-.js} +1 -1
- package/dist/ui/assets/{rest-ops-DABw6D2a.js → rest-ops-DKsDUOxE.js} +1 -1
- package/dist/ui/assets/{restore-BsViTTTd.js → restore-CaWVAwJN.js} +1 -1
- package/dist/ui/assets/{run-DgblerTV.js → run-2oVsdzZj.js} +2 -2
- package/dist/ui/assets/{run-BLi5_vwK.js → run-BA94mtBB.js} +1 -1
- package/dist/ui/assets/{run-CKdymE5z.js → run-BVlVC7jS.js} +9 -9
- package/dist/ui/assets/{run-DEBWO_VC.js → run-CH8M889A.js} +3 -3
- package/dist/ui/assets/{run-BEHokdPX.js → run-CHKo3g64.js} +1 -1
- package/dist/ui/assets/{run-CKI507uv.js → run-CW0-cog1.js} +1 -1
- package/dist/ui/assets/{run-C0CADtt5.js → run-Dl4OQ_Yd.js} +1 -1
- package/dist/ui/assets/{secret-env-Cazzr31P.js → secret-env-iwcdxjpw.js} +1 -1
- package/dist/ui/assets/secret-topology-CZv6A9HW.js +1 -0
- package/dist/ui/assets/{secrets-bridge-client-CiA-2ZIU.js → secrets-bridge-client-B_CG-HIg.js} +1 -1
- package/dist/ui/assets/{secrets-bridge-client-kWWipUuL.js → secrets-bridge-client-CUClOhLJ.js} +1 -1
- package/dist/ui/assets/{session-command-memory-D-p81a7P.js → session-command-memory-mbpebhz_.js} +2 -2
- package/dist/ui/assets/{session-jsonl-CXY4TQ4Y.js → session-jsonl-BIxfXb7u.js} +1 -1
- package/dist/ui/assets/{session-jsonl-C-BZSOHy.js → session-jsonl-v8KN4g_6.js} +1 -1
- package/dist/ui/assets/{session-search-index-nhvgyuxV.js → session-search-index-CDR-vSNN.js} +1 -1
- package/dist/ui/assets/{setup-feature-flags-remote-CpzgUHLB.js → setup-feature-flags-remote-zauTrEL6.js} +1 -1
- package/dist/ui/assets/{setup-model-catalog-BGx3XYFY.js → setup-model-catalog-CC8KX0LB.js} +1 -1
- package/dist/ui/assets/{signed-fetch-t5uBcIk_.js → signed-fetch-D3crNsSs.js} +1 -1
- package/dist/ui/assets/{silent-renew-backoff-Q1A_jbQH.js → silent-renew-backoff-Bw_c5Dy9.js} +1 -1
- package/dist/ui/assets/slicc-version-BiZFSvt-.js +1 -0
- package/dist/ui/assets/{snapshot-Bb3mZrhI.js → snapshot-CISX8Ybx.js} +1 -1
- package/dist/ui/assets/{snapshot-features-D44t7iA7.js → snapshot-features-NmqWLNc6.js} +1 -1
- package/dist/ui/assets/soundscape-Cmr7xPXZ.js +1 -0
- package/dist/ui/assets/{speak-B-rF7cd2.js → speak-D1JF7Loc.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-BWdoEwv2.js → sprinkle-manager-DYhvCg3m.js} +1 -1
- package/dist/ui/assets/{sprinkle-renderer-B-1HSkrF.js → sprinkle-renderer-B5O28doL.js} +1 -1
- package/dist/ui/assets/{ssh-DGBxesfZ.js → ssh-DPyBpV4Z.js} +1 -1
- package/dist/ui/assets/{state-B7Ano9ql.js → state-CcrU6NJk.js} +1 -1
- package/dist/ui/assets/{store-DTMATE-h.js → store-D9HgQRdy.js} +1 -1
- package/dist/ui/assets/{store-B3uS3nQU.js → store-DYTzgtEI.js} +1 -1
- package/dist/ui/assets/{sudo-D8OGZd6t.js → sudo-BMKHhJ-G.js} +1 -1
- package/dist/ui/assets/{supervisor-Ck1Ryx2i.js → supervisor-DVWawJTM.js} +1 -1
- package/dist/ui/assets/{sync-dialog-C2TF9Y3h.js → sync-dialog-a3YQ7KdL.js} +1 -1
- package/dist/ui/assets/{transformers-env-h8uZoLwJ.js → transformers-env-BFCBqwlr.js} +1 -1
- package/dist/ui/assets/{tray-leader-BHyMCdCH.js → tray-leader-zKkaFxIk.js} +1 -1
- package/dist/ui/assets/{tray-leave-runtime-DR6t2Cuo.js → tray-leave-runtime-CNc8g3tP.js} +1 -1
- package/dist/ui/assets/{tray-runtime-config-DBapPARd.js → tray-runtime-config-DmcF9Q2r.js} +1 -1
- package/dist/ui/assets/{tray-sidecar-BdEGdpUe.js → tray-sidecar-DqV3sh8H.js} +1 -1
- package/dist/ui/assets/{turn-journal-B4vV4fDV.js → turn-journal-Z3e-huge.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-BXyDgjYd.js → upgrade-detection-Bsvrq_lt.js} +1 -1
- package/dist/ui/assets/{upskill-lick-skip-8Ozx8QGg.js → upskill-lick-skip-BQvJXwS8.js} +1 -1
- package/dist/ui/assets/voice-reply-B_BXV7A4.js +1 -0
- package/dist/ui/assets/{wc-attach-BN8rykoa.js → wc-attach-CEkWqpLf.js} +2 -2
- package/dist/ui/assets/{wc-browser-z1N3wGuK.js → wc-browser-DWwB9l3P.js} +1 -1
- package/dist/ui/assets/{wc-computers-C1g9iCUj.js → wc-computers-DuGnds2T.js} +1 -1
- package/dist/ui/assets/{wc-detached-DHD--8Tf.js → wc-detached-Bc462J4O.js} +1 -1
- package/dist/ui/assets/{wc-extension-qof5b3tN.js → wc-extension-DZmTjBxS.js} +2 -2
- package/dist/ui/assets/{wc-follower-sKXDjyv-.js → wc-follower-C0olroj0.js} +3 -3
- package/dist/ui/assets/{wc-follower-oauth-Bsskcjc7.js → wc-follower-oauth-BTOd3V8J.js} +1 -1
- package/dist/ui/assets/{wc-gelatiere-D_uq7S-T.js → wc-gelatiere-3BBfbusI.js} +1 -1
- package/dist/ui/assets/wc-live-Cc8h6ZH1.js +428 -0
- package/dist/ui/assets/{wc-nav-DqIdooNV.js → wc-nav-6f53F2ez.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-38WwDwrA.js → wc-onboarding-D548eykf.js} +2 -2
- package/dist/ui/assets/{wc-permissions-o70pdgUK.js → wc-permissions-B3SJSMf9.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-DMKTZY8P.js → wc-placeholder-BS4TqwFw.js} +3 -3
- package/dist/ui/assets/{wc-secret-request-CmpDh1Bs.js → wc-secret-request-DoSFP6An.js} +1 -1
- package/dist/ui/assets/{wc-settings-7DxLA_ig.js → wc-settings-B7zv9hl_.js} +3 -3
- package/dist/ui/assets/{wc-shell-DFszC8_0.js → wc-shell-pTQjFXvS.js} +362 -199
- package/dist/ui/assets/{wc-shortcut-config-Co6ONiUg.js → wc-shortcut-config-87PqTsLw.js} +2 -2
- package/dist/ui/assets/{wc-sprinkles-zxKMU9ju.js → wc-sprinkles-BMoFsMix.js} +2 -2
- package/dist/ui/assets/{wc-transcript-export-BnOv-hzh.js → wc-transcript-export-CP5fUab6.js} +2 -2
- package/dist/ui/assets/{wc-tray-B2w3dtCQ.js → wc-tray-DW-miPAR.js} +4 -4
- package/dist/ui/assets/welcome-detection-F6VKt_Ix.js +1 -0
- package/dist/ui/assets/{whisper-session-BB92W1rY.js → whisper-session-C90nWMGE.js} +2 -2
- package/dist/ui/assets/{xai-grok-DsDg76ef.js → xai-grok-D0yrS3by.js} +1 -1
- package/dist/ui/assets/{xai-grok-Btqu459a.js → xai-grok-U-6wly9W.js} +1 -1
- package/dist/ui/index.html +9 -9
- package/dist/ui/packages/webapp/index.html +9 -9
- package/package.json +1 -1
- package/dist/ui/assets/SKILL-CWxUIsrD.js +0 -1
- package/dist/ui/assets/provider-store-access-BbD8NSzf.js +0 -1
- package/dist/ui/assets/provider-store-access-BvzkUnma.js +0 -1
- package/dist/ui/assets/proxied-fetch-BlIpeDaL.js +0 -2
- package/dist/ui/assets/proxied-fetch-CNe6icTW.js +0 -1
- package/dist/ui/assets/secret-topology-DpJD8DzV.js +0 -1
- package/dist/ui/assets/slicc-version-YnqCI9lq.js +0 -1
- package/dist/ui/assets/soundscape-CUzGNWGR.js +0 -1
- package/dist/ui/assets/voice-reply-ChDAb3Rf.js +0 -1
- package/dist/ui/assets/wc-live-DWEUEDdK.js +0 -428
- package/dist/ui/assets/welcome-detection-Cik05qcd.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./__vite-browser-external-5eBdwsFd.js";import{r as n,t as r}from"./multipart-form-data-DopbgwRR.js";import{n as i}from"./slicc-version-YnqCI9lq.js";import{t as a}from"./buffer-polyfill-BccMjOKj.js";import{t as o}from"./buffer-B5d1xHaH.js";import{F as s,I as c,N as l,P as u}from"./shared-DfMXB1pm.js";import{c as d,n as f,o as p,t as m}from"./require-guards-DPf5QETL.js";import{t as h}from"./tmpdir-env-ate4iNcK.js";import{i as g,n as _,r as v,t as y}from"./realm-sync-transport-Bii99lU6.js";import{t as b}from"./realm-browser-fetch-V3uggGbM.js";function x(e){let t=typeof e==`string`?e:e.href;if(!t.startsWith(`file:`))throw TypeError(`fileURLToPath: not a file URL`);let n=new URL(t);if(n.hostname!==``&&n.hostname!==`localhost`)throw Object.assign(TypeError(`File URL host must be "localhost" or empty on posix`),{code:`ERR_INVALID_FILE_URL_HOST`});if(/%2f/i.test(n.pathname))throw Object.assign(TypeError(`File URL path must not include encoded / characters`),{code:`ERR_INVALID_FILE_URL_PATH`});return decodeURIComponent(n.pathname)}function S(e){let t=e.split(`/`).map(e=>encodeURIComponent(e)).join(`/`);return new URL(`file://${t}`)}const C={URL:globalThis.URL,URLSearchParams:globalThis.URLSearchParams,fileURLToPath:x,pathToFileURL:S};function w(e,t){return Object.assign(TypeError(`The "${e}" argument must be of type string or an instance of Buffer or URL. Received ${t===null?`null`:typeof t}`),{code:`ERR_INVALID_ARG_TYPE`})}function T(e){return typeof e==`object`&&!!e&&typeof e.href==`string`&&typeof e.protocol==`string`}function E(e,t=`path`){if(typeof e==`string`)return e;if(T(e)){if(e.protocol!==`file:`)throw Object.assign(TypeError(`The URL must be of scheme file`),{code:`ERR_INVALID_URL_SCHEME`});return C.fileURLToPath(e.href)}if(e instanceof Uint8Array)return new TextDecoder().decode(e);throw w(t,e)}function D(e,t){let n=[...t];switch(e){case`path`:n[0]=E(n[0]);break;case`fd`:typeof n[0]!=`number`&&(n[0]=E(n[0]));break;case`pair`:n[0]=E(n[0],`src`),n[1]=E(n[1],`dest`);break;case`second`:n[1]=E(n[1])}return n}function O(e,t,n={}){let r=e;for(let i of Object.keys(t)){let a=t[i],o=r[i];!a||typeof o!=`function`||(r[i]=((...t)=>{let r;try{r=D(a,t)}catch(e){if(n.promises)return Promise.reject(e);throw e}return o.apply(e,r)}))}}function k(e){if(!e||e===`/`)return`/`;e.startsWith(`/`)||(e=`/`+e);let t=e.split(`/`),n=[];for(let e of t)e!==``&&e!==`.`&&(e===`..`?n.pop():n.push(e));return`/`+n.join(`/`)}function A(e){let t=k(e);if(t===`/`)return`/`;let n=t.lastIndexOf(`/`);return n===0?`/`:t.slice(0,n)}function j(e){return Object.assign(Error(`ENOENT: no such file or directory, '${e}'`),{code:`ENOENT`})}function ee(e){return Object.assign(Error(`ENOSYNC: file too large for sync access, '${e}' — use async readFile() instead`),{code:`ENOSYNC`})}function te(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}var ne=class{tree=new Map;initialPaths=new Set;initialContent=new Map;initialKind=new Map;mkdtempCounter=0;tombstones=new Set;removedDirs=new Set;touched=!1;constructor(e){this.loadSnapshot(e)}loadSnapshot(e){this.tree=new Map,this.tombstones=new Set,this.removedDirs=new Set,this.initialPaths=new Set,this.initialContent=new Map,this.initialKind=new Map,this.tree.set(`/`,{content:new Uint8Array,isDirectory:!0}),this.initialPaths.add(`/`),this.initialKind.set(`/`,`directory`);for(let t of e.entries){let e=k(t.path);this.tree.set(e,{content:t.content,isDirectory:t.isDirectory,isSymbolicLink:t.isSymbolicLink,symlinkTarget:t.symlinkTarget,truncated:t.truncated,size:t.size}),this.initialPaths.add(e),this.initialKind.set(e,this.entryKind(t)),!t.isDirectory&&!t.isSymbolicLink&&this.initialContent.set(e,t.content)}for(let t of e.entries){let e=A(k(t.path));for(;e!==`/`&&!this.tree.has(e);)this.tree.set(e,{content:new Uint8Array,isDirectory:!0}),this.initialPaths.add(e),this.initialKind.set(e,`directory`),e=A(e)}}wasUsed(){return this.touched}applySnapshot(e){this.loadSnapshot(e)}applySnapshotPreservingMutations(e){let t=this.getMutations();this.loadSnapshot(e);for(let e of t.deleted){if(this.tree.get(e)?.isDirectory){let t=e===`/`?`/`:e+`/`;for(let n of Array.from(this.tree.keys()))n!==e&&n.startsWith(t)&&this.tree.delete(n)}this.tree.delete(e)}for(let e of t.created)this.ensureParentDirs(e.path),this.tree.set(e.path,{content:e.content,isDirectory:e.isDirectory,isSymbolicLink:e.isSymbolicLink,symlinkTarget:e.symlinkTarget});for(let e of t.modified)this.ensureParentDirs(e.path),this.tree.set(e.path,{content:e.content,isDirectory:!1})}invalidate(){this.loadSnapshot({entries:[]})}resetBaseline(){this.initialPaths=new Set,this.initialContent=new Map,this.initialKind=new Map;for(let[e,t]of this.tree.entries())this.initialPaths.add(e),this.initialKind.set(e,this.entryKind(t)),!t.isDirectory&&!t.isSymbolicLink&&this.initialContent.set(e,t.content)}entryKind(e){return e.isSymbolicLink?`symlink`:e.isDirectory?`directory`:`file`}resolveEntry(e,t=!1){let n=k(e),r=n.split(`/`).filter(Boolean),i=[],a=new Set,o=0;if(r.length===0){let e=this.tree.get(`/`);return e?{path:`/`,entry:e}:void 0}for(;r.length>0;){let e=r.shift(),s=`/${[...i,e].join(`/`)}`,c=this.tree.get(s);if(!c)return;let l=r.length===0;if(c.isSymbolicLink&&!(t&&l)){if(a.has(s)||o++===40)throw Object.assign(Error(`ELOOP: too many symbolic links, '${n}'`),{code:`ELOOP`});a.add(s);let e=c.symlinkTarget??``;r=[...k(e.startsWith(`/`)?e:`${A(s)}/${e}`).split(`/`).filter(Boolean),...r],i=[];continue}if(!l&&!c.isDirectory)return;if(i.push(e),l)return{path:s,entry:c}}}ensureParentDirs(e){let t=A(e);t!==`/`&&(this.tree.has(t)||this.mkdir(t,!0,!0))}isPartial(e){return this.tree.get(k(e))?.partial===!0}commitWrite(e,t){this.writeFile(e,t);let n=k(e);for(this.initialContent.set(n,t);n!==`/`;){let e=this.tree.get(n);e&&(this.initialPaths.add(n),this.initialKind.set(n,this.entryKind(e))),n=A(n)}}readFile(e){this.touched=!0;let t=k(e),n=this.resolveEntry(t)?.entry;if(!n||n.isDirectory)throw j(t);if(n.truncated)throw ee(t);return n.content}writeFile(e,t){this.touched=!0;let n=k(e);this.ensureParentDirs(n),this.tree.set(n,{content:t,isDirectory:!1}),this.tombstones.delete(n),this.removedDirs.delete(n)}exists(e){this.touched=!0;let t=k(e);return this.tree.has(t)}stat(e){this.touched=!0;let t=k(e),n=this.resolveEntry(t);if(!n)throw j(t);return this.toStat(n.entry)}lstat(e){this.touched=!0;let t=k(e),n=this.resolveEntry(t,!0);if(!n)throw j(t);return this.toStat(n.entry)}toStat(e){return{isFile:!e.isDirectory&&!e.isSymbolicLink,isDirectory:e.isDirectory,isSymbolicLink:e.isSymbolicLink===!0,size:e.isDirectory?0:e.size??e.content.byteLength}}readdir(e){this.touched=!0;let t=k(e),n=this.resolveEntry(t);if(!n?.entry.isDirectory)throw j(t);let r=n.path===`/`?`/`:n.path+`/`,i=new Set;for(let e of this.tree.keys()){if(e===t||e===`/`||!e.startsWith(r))continue;let n=e.slice(r.length).split(`/`)[0];n&&i.add(n)}return Array.from(i)}mkdir(e,t,n=!1){this.touched=!0;let r=k(e);if(this.tree.has(r)){if(this.tree.get(r).isDirectory)return;throw Object.assign(Error(`EEXIST: file already exists, '${r}'`),{code:`EEXIST`})}let i=A(r);if(i!==`/`&&!this.tree.has(i)){if(!t)throw j(r);this.mkdir(i,!0,n)}this.tree.set(r,{content:new Uint8Array,isDirectory:!0,...n?{partial:!0}:{}}),this.tombstones.delete(r),this.removedDirs.delete(r)}rm(e,t){this.touched=!0;let n=k(e),r=this.tree.get(n);if(!r)throw j(n);if(r.isDirectory&&!r.isSymbolicLink){let e=n===`/`?`/`:n+`/`,r=Array.from(this.tree.keys()).filter(t=>t!==n&&t.startsWith(e));if(r.length>0&&!t)throw Object.assign(Error(`ENOTEMPTY: directory not empty, '${n}'`),{code:`ENOTEMPTY`});for(let e of r)this.tree.delete(e),this.tombstones.add(e);t&&this.removedDirs.add(n)}this.tree.delete(n),this.tombstones.add(n)}copyFile(e,t){this.touched=!0;let n=k(e),r=this.tree.get(n);if(!r||r.isDirectory)throw j(n);if(r.truncated)throw ee(n);let i=k(t);this.ensureParentDirs(i),this.tree.set(i,{content:r.content.slice(),isDirectory:!1}),this.tombstones.delete(i),this.removedDirs.delete(i)}rename(e,t){this.touched=!0;let n=k(e),r=this.tree.get(n);if(!r)throw j(n);let i=k(t);if(r.isDirectory){let e=n===`/`?`/`:n+`/`,t=Array.from(this.tree.keys()).filter(t=>t!==n&&t.startsWith(e));this.ensureParentDirs(i),this.tree.set(i,r),this.tree.delete(n);for(let e of t){let t=this.tree.get(e),r=i+e.slice(n.length);this.tree.set(r,t),this.tree.delete(e)}this.tombstones.add(n),this.removedDirs.add(n),this.tombstones.delete(i),this.removedDirs.delete(i);return}this.ensureParentDirs(i),this.tree.set(i,r),this.tree.delete(n),this.tombstones.add(n),this.tombstones.delete(i),this.removedDirs.delete(i)}unlink(e){this.touched=!0;let t=k(e),n=this.tree.get(t);if(!n)throw j(t);if(n.isDirectory&&!n.isSymbolicLink)throw Object.assign(Error(`EISDIR: illegal operation on a directory, unlink '${t}'`),{code:`EISDIR`});this.tree.delete(t),this.tombstones.add(t)}markRemoved(e,t=!1){this.touched=!0;let n=k(e);this.tombstones.add(n),t&&this.removedDirs.add(n)}isTombstoned(e){let t=k(e);if(this.tombstones.has(t))return!0;for(let e of this.removedDirs)if(t===e||t.startsWith(`${e}/`))return!0;return!1}mkdtemp(e){this.touched=!0;for(let t=0;t<100;t++){let t=`_${String(this.mkdtempCounter).padStart(6,`0`)}`;this.mkdtempCounter++;let n=k(e+t);if(!this.tree.has(n))return this.mkdir(n,!0),n}throw Error(`mkdtemp: failed to create unique directory after 100 attempts`)}getMutations(){let e=[],t=[],n=[];for(let[r,i]of this.tree.entries()){if(r===`/`)continue;if(!this.initialPaths.has(r)){e.push({path:r,content:i.content,isDirectory:i.isDirectory,isSymbolicLink:i.isSymbolicLink,symlinkTarget:i.symlinkTarget});continue}let a=this.initialKind.get(r);if(a!==void 0&&a!==this.entryKind(i)){n.push(r),e.push({path:r,content:i.content,isDirectory:i.isDirectory,isSymbolicLink:i.isSymbolicLink,symlinkTarget:i.symlinkTarget});continue}if(!i.isDirectory&&!i.isSymbolicLink){let e=this.initialContent.get(r);e&&!te(e,i.content)&&t.push({path:r,content:i.content})}}for(let e of this.initialPaths)e!==`/`&&(this.tree.has(e)||n.push(e));return{created:e,modified:t,deleted:n}}};function re(){return globalThis.Buffer}function ie(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t}function ae(e){let t=``;for(let n=0;n<e.length;n+=32768)t+=String.fromCharCode(...e.subarray(n,n+32768));return t}function oe(e,t){return Object.assign(Error(`EBADF: bad file descriptor, ${e} ${String(t)}`),{code:`EBADF`})}function se(e){return e===`/dev/stdin`||e===`/dev/stdout`||e===`/dev/stderr`}function ce(e){if(e===0||e===`/dev/stdin`)return 0;if(e===1||e===`/dev/stdout`)return 1;if(e===2||e===`/dev/stderr`)return 2}function le(e,t){let n=ce(e);if(n===0)return!0;if(n!==void 0||typeof e==`number`)throw oe(t,e);return!1}function ue(e,t,n){let r=ce(t);if(r===1)return e.writeStdout;if(r===2)return e.writeStderr;if(r!==void 0||typeof t==`number`)throw oe(n,t)}function de(e){return typeof e==`string`?e:ae(we(e))}function fe(e,t){if(t===`utf8`||t===`utf-8`)return new TextDecoder().decode(e);let n=re();return n?n.from(e):e}function pe(e){return typeof e==`string`?e:e?.encoding}function me(){return{isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1,isCharacterDevice:()=>!0,size:0}}function he(e,t){if(!t)return;let n={readFile:e.readFile,readFileBinary:e.readFileBinary,writeFile:e.writeFile,writeFileBinary:e.writeFileBinary,appendFile:e.appendFile,access:e.access,exists:e.exists,stat:e.stat};e.readFile=async(e,r)=>{if(!le(e,`read`))return n.readFile(e,r);let i=pe(r);if(i===null||i===`buffer`){let e=re(),n=t.readStdinBytes();return e?e.from(n):n}return new TextDecoder().decode(t.readStdinBytes())},e.readFileBinary=async e=>le(e,`read`)?t.readStdinBytes():n.readFileBinary(e),e.writeFile=async(e,r)=>{let i=ue(t,e,`write`);return i?(i(de(r)),!0):n.writeFile(e,r)},e.writeFileBinary=async(e,r)=>{let i=ue(t,e,`write`);return i?(i(ae(r)),!0):n.writeFileBinary(e,r)},e.appendFile=async(e,r)=>{let i=ue(t,e,`append`);if(!i)return n.appendFile(e,r);i(de(r))},e.access=async e=>{if(!se(e))return n.access(e)},e.exists=async e=>se(e)||n.exists(e),e.stat=async e=>se(e)?{isFile:!0,isDirectory:!1,size:0}:n.stat(e)}function ge(e,t,n){function r(e){if(e instanceof Uint8Array)return e;if(ArrayBuffer.isView(e)){let t=e;return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}return e instanceof ArrayBuffer?new Uint8Array(e):new TextEncoder().encode(typeof e==`string`?e:String(e))}async function i(t,n){let r=typeof n==`string`?n:n?.encoding;if(r===null||r===`buffer`){let n=await e.call(`vfs`,`readFileBinary`,[t]),r=re();return r?r.from(n instanceof Uint8Array?n:new Uint8Array(n)):n}return e.call(`vfs`,`readFile`,[t])}async function a(t,n){return typeof n==`string`?e.call(`vfs`,`writeFile`,[t,n]):e.call(`vfs`,`writeFileBinary`,[t,r(n)])}async function o(t,n){if(typeof n==`string`){await e.call(`vfs`,`appendFile`,[t,n]);return}await e.call(`vfs`,`appendFile`,[t,r(n)])}async function s(t,n,r){let i=await e.call(`vfs`,`stat`,[t]);if(i.isFile){let r=await e.call(`vfs`,`readFileBinary`,[t]);await e.call(`vfs`,`writeFileBinary`,[n,r]);return}if(!i.isDirectory||!r?.recursive)throw Error(`cp: '${t}' is a directory (use {recursive: true})`);await l(n);let a=await e.call(`vfs`,`readDir`,[t]);for(let e of a)await s(`${t}/${e}`,`${n}/${e}`,r)}async function c(t,n){if(n?.force&&!await e.call(`vfs`,`exists`,[t]))return!0;if((await e.call(`vfs`,`stat`,[t])).isFile)return e.call(`vfs`,`rm`,[t]);if(!n?.recursive)throw Error(`rm: '${t}' is a directory (use {recursive: true})`);let r=await e.call(`vfs`,`readDir`,[t]);for(let e of r)await c(`${t}/${e}`,n);return e.call(`vfs`,`rm`,[t])}async function l(t){await e.call(`vfs`,`mkdir`,[t])}async function u(t){for(let n=0;n<5;n++){let n=`${t}${Math.random().toString(36).slice(2,10)+Math.random().toString(36).slice(2,6)}`;if(!await e.call(`vfs`,`exists`,[n]))return await e.call(`vfs`,`mkdir`,[n]),n}throw Error(`mkdtemp: failed to create unique directory after 5 attempts`)}async function d(t,n){try{await e.call(`vfs`,`rename`,[t,n])}catch{let r=await e.call(`vfs`,`readFileBinary`,[t]);await e.call(`vfs`,`writeFileBinary`,[n,r]),await e.call(`vfs`,`rm`,[t])}}async function f(t){if(!await e.call(`vfs`,`exists`,[t]))throw Object.assign(Error(`ENOENT: no such file or directory, access '${t}'`),{code:`ENOENT`})}let p={readFile:i,readFileBinary:t=>e.call(`vfs`,`readFileBinary`,[t]),writeFile:a,writeFileBinary:(t,n)=>e.call(`vfs`,`writeFileBinary`,[t,n]),appendFile:o,cp:s,rm:c,readDir:t=>e.call(`vfs`,`readDir`,[t]),readdir:t=>e.call(`vfs`,`readDir`,[t]),exists:t=>e.call(`vfs`,`exists`,[t]),stat:t=>e.call(`vfs`,`stat`,[t]),mkdir:(t,n)=>e.call(`vfs`,`mkdir`,[t]),mkdtemp:u,rename:d,access:f,unlink:t=>e.call(`vfs`,`rm`,[t]),rmdir:t=>e.call(`vfs`,`rm`,[t]),copyFile:async(t,n)=>{let r=await e.call(`vfs`,`readFileBinary`,[t]);await e.call(`vfs`,`writeFileBinary`,[n,r])},fetchToFile:async(n,r)=>{let i=await t(n);if(!i.ok)throw Error(`fetch ${i.status} ${i.statusText}`);let a=new Uint8Array(await i.arrayBuffer());return await e.call(`vfs`,`writeFileBinary`,[r,a]),a.byteLength},promises:null};return he(p,n),O(p,_e,{promises:!0}),p.promises=p,p}const _e={readFile:`fd`,readFileBinary:`fd`,writeFile:`fd`,writeFileBinary:`fd`,appendFile:`fd`,cp:`pair`,rm:`path`,readDir:`path`,readdir:`path`,exists:`path`,stat:`path`,mkdir:`path`,mkdtemp:`path`,rename:`pair`,access:`path`,unlink:`path`,rmdir:`path`,copyFile:`pair`,fetchToFile:`second`},ve={readFileSync:`fd`,writeFileSync:`fd`,appendFileSync:`fd`,truncateSync:`path`,existsSync:`path`,accessSync:`path`,mkdirSync:`path`,statSync:`path`,lstatSync:`path`,realpathSync:`path`,readdirSync:`path`,copyFileSync:`pair`,cpSync:`pair`,chmodSync:`path`,mkdtempSync:`path`,rmSync:`path`,rmdirSync:`path`,unlinkSync:`path`,renameSync:`pair`};function M(e,t,n=``){return Object.assign(Error(`${e}: sync-fs, ${n?`${n} `:``}'${t}'`),{code:e})}function ye(e,t,n,r={},i){let a=r.recursive===!0;try{return r.requireFile?e.unlink(n):e.rm(n,a),i?.(n),!0}catch(e){if(e?.code!==`ENOENT`)throw e}let o=t;if(!o?.rm||e.isTombstoned(n))return!1;try{if(!o.exists(n))return!1}catch{return!1}return o.rm(n),e.markRemoved(n,a),!0}function be(e){let{syncFs:t,bridge:n,resolve:r,existsResolved:i,lstatResolved:a,statResolved:o,readBytes:s,writeThrough:c,persistDelete:l}=e,u=(e,r)=>ye(t,n,e,r,l);return{rmSync(e,t){let n=r(e);if(!(t?.force&&!i(n))&&!u(n,{recursive:t?.recursive===!0})&&!t?.force)throw M(`ENOENT`,n,`rm`)},rmdirSync(e,t){let n=r(e);if(i(n)&&!a(n).isDirectory)throw M(`ENOTDIR`,n,`rmdir`);if(!u(n,{recursive:t?.recursive===!0}))throw M(`ENOENT`,n,`rmdir`)},unlinkSync(e){let t=r(e);if(!u(t,{requireFile:!0}))throw M(`ENOENT`,t,`unlink`)},renameSync(e,i){let a=r(e),l=r(i);try{t.rename(a,l);return}catch(e){if(e?.code!==`ENOENT`)throw e}if(!n||t.isTombstoned(a))throw M(`ENOENT`,a,`rename`);if(o(a).isDirectory)throw M(`EISDIR`,a,`rename`);if(c(l,s(a)),!u(a,{requireFile:!0}))throw M(`ENOENT`,a,`rename`)}}}function xe(e,t){if(!t)return;let n={readFileSync:e.readFileSync,writeFileSync:e.writeFileSync,appendFileSync:e.appendFileSync,existsSync:e.existsSync,accessSync:e.accessSync,statSync:e.statSync,lstatSync:e.lstatSync};e.readFileSync=(e,r)=>le(e,`read`)?fe(t.readStdinBytes(),pe(r)):n.readFileSync(e,r),e.writeFileSync=(e,r)=>{let i=ue(t,e,`write`);i?i(de(r)):n.writeFileSync(e,r)},e.appendFileSync=(e,r)=>{let i=ue(t,e,`append`);i?i(de(r)):n.appendFileSync(e,r)},e.existsSync=e=>se(e)||n.existsSync(e),e.accessSync=e=>{se(e)||n.accessSync(e)},e.statSync=e=>se(e)?me():n.statSync(e),e.lstatSync=e=>se(e)?me():n.lstatSync(e)}function Se(e,t,n,r){let i=t=>e===`/`?`/${t}`:`${e}/${t}`,a=new Set(n);for(let e of t)a.add(e);for(let e of a)r(i(e))&&a.delete(e);return[...a]}function Ce(e,t,n){let r=t=>e.isTombstoned(t);try{let i=e.readdir(n);if(!t||!e.isPartial(n)||r(n))return i;try{return Se(n,i,t.readdir(n),r)}catch(e){if(e?.code===`ENOENT`)return i;throw e}}catch(e){let i=e?.code;if(!t||r(n)||i!==`ENOENT`)throw e;return Se(n,[],t.readdir(n),r)}}function we(e){if(typeof e==`string`)return new TextEncoder().encode(e);if(e instanceof Uint8Array)return e;if(ArrayBuffer.isView(e)){let t=e;return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}return new TextEncoder().encode(String(e))}function Te(e,t,n,r,i){t?(t.writeFile(r,i),e.commitWrite(r,i)):(e.writeFile(r,i),n?.write?.(r,i))}function Ee(e,t,n,r,i){function a(e){return k(e.startsWith(`/`)?e:t+(t.endsWith(`/`)?``:`/`)+e)}function o(t){try{return e.readFile(t)}catch(r){let i=r?.code;if(n&&!e.isTombstoned(t)&&(i===`ENOENT`||i===`ENOSYNC`))return n.readFile(t);throw r}}let s=(t,r)=>Te(e,n,i,t,r);function c(t){if(e.exists(t))return!0;if(!n||e.isTombstoned(t))return!1;try{return n.exists(t)}catch{return!1}}function l(t){try{return e.stat(t)}catch(r){let i=r?.code;if(!n||e.isTombstoned(t)||i!==`ENOENT`)throw r;return n.stat(t)}}function u(t){try{return e.lstat(t)}catch(r){let i=r?.code;if(!n||e.isTombstoned(t)||i!==`ENOENT`)throw r;return n.lstat(t)}}let d=e=>({isFile:()=>e.isFile,isDirectory:()=>e.isDirectory,isSymbolicLink:()=>e.isSymbolicLink===!0,isCharacterDevice:()=>!1,size:e.size}),f=(e,t)=>e===`/`?`/${t}`:`${e}/${t}`;function p(t,r){if(!l(t).isDirectory){s(r,o(t));return}e.mkdir(r,!0);for(let i of Ce(e,n,t))p(f(t,i),f(r,i))}let m={...be({syncFs:e,bridge:n,persistDelete:i?.delete,resolve:a,existsResolved:c,statResolved:l,lstatResolved:u,readBytes:o,writeThrough:s}),readFileSync(e,t){return fe(o(a(e)),pe(t))},writeFileSync(e,t){s(a(e),we(t))},appendFileSync(e,t){let n=a(e),r=new Uint8Array;try{r=o(n)}catch(e){if(e?.code!==`ENOENT`)throw e}let i=we(t),c=new Uint8Array(r.byteLength+i.byteLength);c.set(r),c.set(i,r.byteLength),s(n,c)},truncateSync(e,t=0){let n=a(e),r=o(n),i=new Uint8Array(t);i.set(r.subarray(0,Math.min(t,r.byteLength))),s(n,i)},existsSync(e){return c(a(e))},accessSync(e){let t=a(e);if(!c(t))throw M(`ENOENT`,t,`access`)},mkdirSync(t,n){e.mkdir(a(t),n?.recursive)},statSync:e=>d(l(a(e))),lstatSync:e=>d(u(a(e))),realpathSync(e){let t=a(e);if(!c(t))throw M(`ENOENT`,t,`realpath`);return t},readdirSync(t){return Ce(e,n,a(t))},copyFileSync(e,t){s(a(t),o(a(e)))},cpSync(e,t){p(a(e),a(t))},chmodSync(e){let t=a(e);if(!c(t))throw M(`ENOENT`,t,`chmod`)},mkdtempSync(t){return e.mkdtemp(a(t))}};xe(m,r),O(m,ve);let h=m.existsSync;return m.existsSync=e=>{try{return h(e)}catch{return!1}},m}var De=class{_events=new Map;on(e,t){let n=this._events.get(e);return n?n.push(t):this._events.set(e,[t]),this}addListener(e,t){return this.on(e,t)}off(e,t){let n=this._events.get(e);if(n){let r=n.indexOf(t);r!==-1&&n.splice(r,1),n.length===0&&this._events.delete(e)}return this}removeListener(e,t){return this.off(e,t)}once(e,t){let n=(...r)=>{this.off(e,n),t(...r)};return this.on(e,n)}emit(e,...t){let n=this._events.get(e);if(!n||n.length===0)return!1;for(let e of[...n])e(...t);return!0}removeAllListeners(e){return e===void 0?this._events.clear():this._events.delete(e),this}listenerCount(e){return this._events.get(e)?.length??0}listeners(e){return[...this._events.get(e)??[]]}};const Oe=Object.assign(De,{EventEmitter:De,default:De});function ke(e){let t=e=>{if(typeof e==`string`)return e;if(e instanceof Error)return e.message;if(e==null)return String(e);try{return JSON.stringify(e)}catch{return String(e)}},n=(e,t,n)=>t===void 0?`${e(`Error:`)} ${n}\n`:t===``?`${e(n)}\n`:`${e(`${t}:`)} ${n}\n`,r=(t,n)=>t===void 0?`${e.color.yellow(`Warning:`)} ${n}\n`:t===``?`${e.color.yellow(n)}\n`:`${e.color.yellow(`${t}:`)} ${n}\n`;return{die(r,i){let a=typeof i==`number`?i:i?.exitCode??1,o=typeof i==`object`&&i&&`prefix`in i?i.prefix:void 0,s=t(r);throw e.writeStderr(n(e.color.red,o,s)),e.exit(a),Error(`unreachable`)},out(t){if(typeof t==`string`){e.writeStdout(t.endsWith(`
|
|
1
|
+
import{t as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./__vite-browser-external-5eBdwsFd.js";import{r as n,t as r}from"./multipart-form-data-DopbgwRR.js";import{n as i}from"./slicc-version-BiZFSvt-.js";import{t as a}from"./buffer-polyfill-BccMjOKj.js";import{t as o}from"./buffer-B5d1xHaH.js";import{F as s,I as c,N as l,P as u}from"./shared-DfMXB1pm.js";import{c as d,n as f,o as p,t as m}from"./require-guards-DPf5QETL.js";import{t as h}from"./tmpdir-env-ate4iNcK.js";import{i as g,n as _,r as v,t as y}from"./realm-sync-transport-Bii99lU6.js";import{t as b}from"./realm-browser-fetch-V3uggGbM.js";function x(e){let t=typeof e==`string`?e:e.href;if(!t.startsWith(`file:`))throw TypeError(`fileURLToPath: not a file URL`);let n=new URL(t);if(n.hostname!==``&&n.hostname!==`localhost`)throw Object.assign(TypeError(`File URL host must be "localhost" or empty on posix`),{code:`ERR_INVALID_FILE_URL_HOST`});if(/%2f/i.test(n.pathname))throw Object.assign(TypeError(`File URL path must not include encoded / characters`),{code:`ERR_INVALID_FILE_URL_PATH`});return decodeURIComponent(n.pathname)}function S(e){let t=e.split(`/`).map(e=>encodeURIComponent(e)).join(`/`);return new URL(`file://${t}`)}const C={URL:globalThis.URL,URLSearchParams:globalThis.URLSearchParams,fileURLToPath:x,pathToFileURL:S};function w(e,t){return Object.assign(TypeError(`The "${e}" argument must be of type string or an instance of Buffer or URL. Received ${t===null?`null`:typeof t}`),{code:`ERR_INVALID_ARG_TYPE`})}function T(e){return typeof e==`object`&&!!e&&typeof e.href==`string`&&typeof e.protocol==`string`}function E(e,t=`path`){if(typeof e==`string`)return e;if(T(e)){if(e.protocol!==`file:`)throw Object.assign(TypeError(`The URL must be of scheme file`),{code:`ERR_INVALID_URL_SCHEME`});return C.fileURLToPath(e.href)}if(e instanceof Uint8Array)return new TextDecoder().decode(e);throw w(t,e)}function D(e,t){let n=[...t];switch(e){case`path`:n[0]=E(n[0]);break;case`fd`:typeof n[0]!=`number`&&(n[0]=E(n[0]));break;case`pair`:n[0]=E(n[0],`src`),n[1]=E(n[1],`dest`);break;case`second`:n[1]=E(n[1])}return n}function O(e,t,n={}){let r=e;for(let i of Object.keys(t)){let a=t[i],o=r[i];!a||typeof o!=`function`||(r[i]=((...t)=>{let r;try{r=D(a,t)}catch(e){if(n.promises)return Promise.reject(e);throw e}return o.apply(e,r)}))}}function k(e){if(!e||e===`/`)return`/`;e.startsWith(`/`)||(e=`/`+e);let t=e.split(`/`),n=[];for(let e of t)e!==``&&e!==`.`&&(e===`..`?n.pop():n.push(e));return`/`+n.join(`/`)}function A(e){let t=k(e);if(t===`/`)return`/`;let n=t.lastIndexOf(`/`);return n===0?`/`:t.slice(0,n)}function j(e){return Object.assign(Error(`ENOENT: no such file or directory, '${e}'`),{code:`ENOENT`})}function ee(e){return Object.assign(Error(`ENOSYNC: file too large for sync access, '${e}' — use async readFile() instead`),{code:`ENOSYNC`})}function te(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}var ne=class{tree=new Map;initialPaths=new Set;initialContent=new Map;initialKind=new Map;mkdtempCounter=0;tombstones=new Set;removedDirs=new Set;touched=!1;constructor(e){this.loadSnapshot(e)}loadSnapshot(e){this.tree=new Map,this.tombstones=new Set,this.removedDirs=new Set,this.initialPaths=new Set,this.initialContent=new Map,this.initialKind=new Map,this.tree.set(`/`,{content:new Uint8Array,isDirectory:!0}),this.initialPaths.add(`/`),this.initialKind.set(`/`,`directory`);for(let t of e.entries){let e=k(t.path);this.tree.set(e,{content:t.content,isDirectory:t.isDirectory,isSymbolicLink:t.isSymbolicLink,symlinkTarget:t.symlinkTarget,truncated:t.truncated,size:t.size}),this.initialPaths.add(e),this.initialKind.set(e,this.entryKind(t)),!t.isDirectory&&!t.isSymbolicLink&&this.initialContent.set(e,t.content)}for(let t of e.entries){let e=A(k(t.path));for(;e!==`/`&&!this.tree.has(e);)this.tree.set(e,{content:new Uint8Array,isDirectory:!0}),this.initialPaths.add(e),this.initialKind.set(e,`directory`),e=A(e)}}wasUsed(){return this.touched}applySnapshot(e){this.loadSnapshot(e)}applySnapshotPreservingMutations(e){let t=this.getMutations();this.loadSnapshot(e);for(let e of t.deleted){if(this.tree.get(e)?.isDirectory){let t=e===`/`?`/`:e+`/`;for(let n of Array.from(this.tree.keys()))n!==e&&n.startsWith(t)&&this.tree.delete(n)}this.tree.delete(e)}for(let e of t.created)this.ensureParentDirs(e.path),this.tree.set(e.path,{content:e.content,isDirectory:e.isDirectory,isSymbolicLink:e.isSymbolicLink,symlinkTarget:e.symlinkTarget});for(let e of t.modified)this.ensureParentDirs(e.path),this.tree.set(e.path,{content:e.content,isDirectory:!1})}invalidate(){this.loadSnapshot({entries:[]})}resetBaseline(){this.initialPaths=new Set,this.initialContent=new Map,this.initialKind=new Map;for(let[e,t]of this.tree.entries())this.initialPaths.add(e),this.initialKind.set(e,this.entryKind(t)),!t.isDirectory&&!t.isSymbolicLink&&this.initialContent.set(e,t.content)}entryKind(e){return e.isSymbolicLink?`symlink`:e.isDirectory?`directory`:`file`}resolveEntry(e,t=!1){let n=k(e),r=n.split(`/`).filter(Boolean),i=[],a=new Set,o=0;if(r.length===0){let e=this.tree.get(`/`);return e?{path:`/`,entry:e}:void 0}for(;r.length>0;){let e=r.shift(),s=`/${[...i,e].join(`/`)}`,c=this.tree.get(s);if(!c)return;let l=r.length===0;if(c.isSymbolicLink&&!(t&&l)){if(a.has(s)||o++===40)throw Object.assign(Error(`ELOOP: too many symbolic links, '${n}'`),{code:`ELOOP`});a.add(s);let e=c.symlinkTarget??``;r=[...k(e.startsWith(`/`)?e:`${A(s)}/${e}`).split(`/`).filter(Boolean),...r],i=[];continue}if(!l&&!c.isDirectory)return;if(i.push(e),l)return{path:s,entry:c}}}ensureParentDirs(e){let t=A(e);t!==`/`&&(this.tree.has(t)||this.mkdir(t,!0,!0))}isPartial(e){return this.tree.get(k(e))?.partial===!0}commitWrite(e,t){this.writeFile(e,t);let n=k(e);for(this.initialContent.set(n,t);n!==`/`;){let e=this.tree.get(n);e&&(this.initialPaths.add(n),this.initialKind.set(n,this.entryKind(e))),n=A(n)}}readFile(e){this.touched=!0;let t=k(e),n=this.resolveEntry(t)?.entry;if(!n||n.isDirectory)throw j(t);if(n.truncated)throw ee(t);return n.content}writeFile(e,t){this.touched=!0;let n=k(e);this.ensureParentDirs(n),this.tree.set(n,{content:t,isDirectory:!1}),this.tombstones.delete(n),this.removedDirs.delete(n)}exists(e){this.touched=!0;let t=k(e);return this.tree.has(t)}stat(e){this.touched=!0;let t=k(e),n=this.resolveEntry(t);if(!n)throw j(t);return this.toStat(n.entry)}lstat(e){this.touched=!0;let t=k(e),n=this.resolveEntry(t,!0);if(!n)throw j(t);return this.toStat(n.entry)}toStat(e){return{isFile:!e.isDirectory&&!e.isSymbolicLink,isDirectory:e.isDirectory,isSymbolicLink:e.isSymbolicLink===!0,size:e.isDirectory?0:e.size??e.content.byteLength}}readdir(e){this.touched=!0;let t=k(e),n=this.resolveEntry(t);if(!n?.entry.isDirectory)throw j(t);let r=n.path===`/`?`/`:n.path+`/`,i=new Set;for(let e of this.tree.keys()){if(e===t||e===`/`||!e.startsWith(r))continue;let n=e.slice(r.length).split(`/`)[0];n&&i.add(n)}return Array.from(i)}mkdir(e,t,n=!1){this.touched=!0;let r=k(e);if(this.tree.has(r)){if(this.tree.get(r).isDirectory)return;throw Object.assign(Error(`EEXIST: file already exists, '${r}'`),{code:`EEXIST`})}let i=A(r);if(i!==`/`&&!this.tree.has(i)){if(!t)throw j(r);this.mkdir(i,!0,n)}this.tree.set(r,{content:new Uint8Array,isDirectory:!0,...n?{partial:!0}:{}}),this.tombstones.delete(r),this.removedDirs.delete(r)}rm(e,t){this.touched=!0;let n=k(e),r=this.tree.get(n);if(!r)throw j(n);if(r.isDirectory&&!r.isSymbolicLink){let e=n===`/`?`/`:n+`/`,r=Array.from(this.tree.keys()).filter(t=>t!==n&&t.startsWith(e));if(r.length>0&&!t)throw Object.assign(Error(`ENOTEMPTY: directory not empty, '${n}'`),{code:`ENOTEMPTY`});for(let e of r)this.tree.delete(e),this.tombstones.add(e);t&&this.removedDirs.add(n)}this.tree.delete(n),this.tombstones.add(n)}copyFile(e,t){this.touched=!0;let n=k(e),r=this.tree.get(n);if(!r||r.isDirectory)throw j(n);if(r.truncated)throw ee(n);let i=k(t);this.ensureParentDirs(i),this.tree.set(i,{content:r.content.slice(),isDirectory:!1}),this.tombstones.delete(i),this.removedDirs.delete(i)}rename(e,t){this.touched=!0;let n=k(e),r=this.tree.get(n);if(!r)throw j(n);let i=k(t);if(r.isDirectory){let e=n===`/`?`/`:n+`/`,t=Array.from(this.tree.keys()).filter(t=>t!==n&&t.startsWith(e));this.ensureParentDirs(i),this.tree.set(i,r),this.tree.delete(n);for(let e of t){let t=this.tree.get(e),r=i+e.slice(n.length);this.tree.set(r,t),this.tree.delete(e)}this.tombstones.add(n),this.removedDirs.add(n),this.tombstones.delete(i),this.removedDirs.delete(i);return}this.ensureParentDirs(i),this.tree.set(i,r),this.tree.delete(n),this.tombstones.add(n),this.tombstones.delete(i),this.removedDirs.delete(i)}unlink(e){this.touched=!0;let t=k(e),n=this.tree.get(t);if(!n)throw j(t);if(n.isDirectory&&!n.isSymbolicLink)throw Object.assign(Error(`EISDIR: illegal operation on a directory, unlink '${t}'`),{code:`EISDIR`});this.tree.delete(t),this.tombstones.add(t)}markRemoved(e,t=!1){this.touched=!0;let n=k(e);this.tombstones.add(n),t&&this.removedDirs.add(n)}isTombstoned(e){let t=k(e);if(this.tombstones.has(t))return!0;for(let e of this.removedDirs)if(t===e||t.startsWith(`${e}/`))return!0;return!1}mkdtemp(e){this.touched=!0;for(let t=0;t<100;t++){let t=`_${String(this.mkdtempCounter).padStart(6,`0`)}`;this.mkdtempCounter++;let n=k(e+t);if(!this.tree.has(n))return this.mkdir(n,!0),n}throw Error(`mkdtemp: failed to create unique directory after 100 attempts`)}getMutations(){let e=[],t=[],n=[];for(let[r,i]of this.tree.entries()){if(r===`/`)continue;if(!this.initialPaths.has(r)){e.push({path:r,content:i.content,isDirectory:i.isDirectory,isSymbolicLink:i.isSymbolicLink,symlinkTarget:i.symlinkTarget});continue}let a=this.initialKind.get(r);if(a!==void 0&&a!==this.entryKind(i)){n.push(r),e.push({path:r,content:i.content,isDirectory:i.isDirectory,isSymbolicLink:i.isSymbolicLink,symlinkTarget:i.symlinkTarget});continue}if(!i.isDirectory&&!i.isSymbolicLink){let e=this.initialContent.get(r);e&&!te(e,i.content)&&t.push({path:r,content:i.content})}}for(let e of this.initialPaths)e!==`/`&&(this.tree.has(e)||n.push(e));return{created:e,modified:t,deleted:n}}};function re(){return globalThis.Buffer}function ie(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t}function ae(e){let t=``;for(let n=0;n<e.length;n+=32768)t+=String.fromCharCode(...e.subarray(n,n+32768));return t}function oe(e,t){return Object.assign(Error(`EBADF: bad file descriptor, ${e} ${String(t)}`),{code:`EBADF`})}function se(e){return e===`/dev/stdin`||e===`/dev/stdout`||e===`/dev/stderr`}function ce(e){if(e===0||e===`/dev/stdin`)return 0;if(e===1||e===`/dev/stdout`)return 1;if(e===2||e===`/dev/stderr`)return 2}function le(e,t){let n=ce(e);if(n===0)return!0;if(n!==void 0||typeof e==`number`)throw oe(t,e);return!1}function ue(e,t,n){let r=ce(t);if(r===1)return e.writeStdout;if(r===2)return e.writeStderr;if(r!==void 0||typeof t==`number`)throw oe(n,t)}function de(e){return typeof e==`string`?e:ae(we(e))}function fe(e,t){if(t===`utf8`||t===`utf-8`)return new TextDecoder().decode(e);let n=re();return n?n.from(e):e}function pe(e){return typeof e==`string`?e:e?.encoding}function me(){return{isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1,isCharacterDevice:()=>!0,size:0}}function he(e,t){if(!t)return;let n={readFile:e.readFile,readFileBinary:e.readFileBinary,writeFile:e.writeFile,writeFileBinary:e.writeFileBinary,appendFile:e.appendFile,access:e.access,exists:e.exists,stat:e.stat};e.readFile=async(e,r)=>{if(!le(e,`read`))return n.readFile(e,r);let i=pe(r);if(i===null||i===`buffer`){let e=re(),n=t.readStdinBytes();return e?e.from(n):n}return new TextDecoder().decode(t.readStdinBytes())},e.readFileBinary=async e=>le(e,`read`)?t.readStdinBytes():n.readFileBinary(e),e.writeFile=async(e,r)=>{let i=ue(t,e,`write`);return i?(i(de(r)),!0):n.writeFile(e,r)},e.writeFileBinary=async(e,r)=>{let i=ue(t,e,`write`);return i?(i(ae(r)),!0):n.writeFileBinary(e,r)},e.appendFile=async(e,r)=>{let i=ue(t,e,`append`);if(!i)return n.appendFile(e,r);i(de(r))},e.access=async e=>{if(!se(e))return n.access(e)},e.exists=async e=>se(e)||n.exists(e),e.stat=async e=>se(e)?{isFile:!0,isDirectory:!1,size:0}:n.stat(e)}function ge(e,t,n){function r(e){if(e instanceof Uint8Array)return e;if(ArrayBuffer.isView(e)){let t=e;return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}return e instanceof ArrayBuffer?new Uint8Array(e):new TextEncoder().encode(typeof e==`string`?e:String(e))}async function i(t,n){let r=typeof n==`string`?n:n?.encoding;if(r===null||r===`buffer`){let n=await e.call(`vfs`,`readFileBinary`,[t]),r=re();return r?r.from(n instanceof Uint8Array?n:new Uint8Array(n)):n}return e.call(`vfs`,`readFile`,[t])}async function a(t,n){return typeof n==`string`?e.call(`vfs`,`writeFile`,[t,n]):e.call(`vfs`,`writeFileBinary`,[t,r(n)])}async function o(t,n){if(typeof n==`string`){await e.call(`vfs`,`appendFile`,[t,n]);return}await e.call(`vfs`,`appendFile`,[t,r(n)])}async function s(t,n,r){let i=await e.call(`vfs`,`stat`,[t]);if(i.isFile){let r=await e.call(`vfs`,`readFileBinary`,[t]);await e.call(`vfs`,`writeFileBinary`,[n,r]);return}if(!i.isDirectory||!r?.recursive)throw Error(`cp: '${t}' is a directory (use {recursive: true})`);await l(n);let a=await e.call(`vfs`,`readDir`,[t]);for(let e of a)await s(`${t}/${e}`,`${n}/${e}`,r)}async function c(t,n){if(n?.force&&!await e.call(`vfs`,`exists`,[t]))return!0;if((await e.call(`vfs`,`stat`,[t])).isFile)return e.call(`vfs`,`rm`,[t]);if(!n?.recursive)throw Error(`rm: '${t}' is a directory (use {recursive: true})`);let r=await e.call(`vfs`,`readDir`,[t]);for(let e of r)await c(`${t}/${e}`,n);return e.call(`vfs`,`rm`,[t])}async function l(t){await e.call(`vfs`,`mkdir`,[t])}async function u(t){for(let n=0;n<5;n++){let n=`${t}${Math.random().toString(36).slice(2,10)+Math.random().toString(36).slice(2,6)}`;if(!await e.call(`vfs`,`exists`,[n]))return await e.call(`vfs`,`mkdir`,[n]),n}throw Error(`mkdtemp: failed to create unique directory after 5 attempts`)}async function d(t,n){try{await e.call(`vfs`,`rename`,[t,n])}catch{let r=await e.call(`vfs`,`readFileBinary`,[t]);await e.call(`vfs`,`writeFileBinary`,[n,r]),await e.call(`vfs`,`rm`,[t])}}async function f(t){if(!await e.call(`vfs`,`exists`,[t]))throw Object.assign(Error(`ENOENT: no such file or directory, access '${t}'`),{code:`ENOENT`})}let p={readFile:i,readFileBinary:t=>e.call(`vfs`,`readFileBinary`,[t]),writeFile:a,writeFileBinary:(t,n)=>e.call(`vfs`,`writeFileBinary`,[t,n]),appendFile:o,cp:s,rm:c,readDir:t=>e.call(`vfs`,`readDir`,[t]),readdir:t=>e.call(`vfs`,`readDir`,[t]),exists:t=>e.call(`vfs`,`exists`,[t]),stat:t=>e.call(`vfs`,`stat`,[t]),mkdir:(t,n)=>e.call(`vfs`,`mkdir`,[t]),mkdtemp:u,rename:d,access:f,unlink:t=>e.call(`vfs`,`rm`,[t]),rmdir:t=>e.call(`vfs`,`rm`,[t]),copyFile:async(t,n)=>{let r=await e.call(`vfs`,`readFileBinary`,[t]);await e.call(`vfs`,`writeFileBinary`,[n,r])},fetchToFile:async(n,r)=>{let i=await t(n);if(!i.ok)throw Error(`fetch ${i.status} ${i.statusText}`);let a=new Uint8Array(await i.arrayBuffer());return await e.call(`vfs`,`writeFileBinary`,[r,a]),a.byteLength},promises:null};return he(p,n),O(p,_e,{promises:!0}),p.promises=p,p}const _e={readFile:`fd`,readFileBinary:`fd`,writeFile:`fd`,writeFileBinary:`fd`,appendFile:`fd`,cp:`pair`,rm:`path`,readDir:`path`,readdir:`path`,exists:`path`,stat:`path`,mkdir:`path`,mkdtemp:`path`,rename:`pair`,access:`path`,unlink:`path`,rmdir:`path`,copyFile:`pair`,fetchToFile:`second`},ve={readFileSync:`fd`,writeFileSync:`fd`,appendFileSync:`fd`,truncateSync:`path`,existsSync:`path`,accessSync:`path`,mkdirSync:`path`,statSync:`path`,lstatSync:`path`,realpathSync:`path`,readdirSync:`path`,copyFileSync:`pair`,cpSync:`pair`,chmodSync:`path`,mkdtempSync:`path`,rmSync:`path`,rmdirSync:`path`,unlinkSync:`path`,renameSync:`pair`};function M(e,t,n=``){return Object.assign(Error(`${e}: sync-fs, ${n?`${n} `:``}'${t}'`),{code:e})}function ye(e,t,n,r={},i){let a=r.recursive===!0;try{return r.requireFile?e.unlink(n):e.rm(n,a),i?.(n),!0}catch(e){if(e?.code!==`ENOENT`)throw e}let o=t;if(!o?.rm||e.isTombstoned(n))return!1;try{if(!o.exists(n))return!1}catch{return!1}return o.rm(n),e.markRemoved(n,a),!0}function be(e){let{syncFs:t,bridge:n,resolve:r,existsResolved:i,lstatResolved:a,statResolved:o,readBytes:s,writeThrough:c,persistDelete:l}=e,u=(e,r)=>ye(t,n,e,r,l);return{rmSync(e,t){let n=r(e);if(!(t?.force&&!i(n))&&!u(n,{recursive:t?.recursive===!0})&&!t?.force)throw M(`ENOENT`,n,`rm`)},rmdirSync(e,t){let n=r(e);if(i(n)&&!a(n).isDirectory)throw M(`ENOTDIR`,n,`rmdir`);if(!u(n,{recursive:t?.recursive===!0}))throw M(`ENOENT`,n,`rmdir`)},unlinkSync(e){let t=r(e);if(!u(t,{requireFile:!0}))throw M(`ENOENT`,t,`unlink`)},renameSync(e,i){let a=r(e),l=r(i);try{t.rename(a,l);return}catch(e){if(e?.code!==`ENOENT`)throw e}if(!n||t.isTombstoned(a))throw M(`ENOENT`,a,`rename`);if(o(a).isDirectory)throw M(`EISDIR`,a,`rename`);if(c(l,s(a)),!u(a,{requireFile:!0}))throw M(`ENOENT`,a,`rename`)}}}function xe(e,t){if(!t)return;let n={readFileSync:e.readFileSync,writeFileSync:e.writeFileSync,appendFileSync:e.appendFileSync,existsSync:e.existsSync,accessSync:e.accessSync,statSync:e.statSync,lstatSync:e.lstatSync};e.readFileSync=(e,r)=>le(e,`read`)?fe(t.readStdinBytes(),pe(r)):n.readFileSync(e,r),e.writeFileSync=(e,r)=>{let i=ue(t,e,`write`);i?i(de(r)):n.writeFileSync(e,r)},e.appendFileSync=(e,r)=>{let i=ue(t,e,`append`);i?i(de(r)):n.appendFileSync(e,r)},e.existsSync=e=>se(e)||n.existsSync(e),e.accessSync=e=>{se(e)||n.accessSync(e)},e.statSync=e=>se(e)?me():n.statSync(e),e.lstatSync=e=>se(e)?me():n.lstatSync(e)}function Se(e,t,n,r){let i=t=>e===`/`?`/${t}`:`${e}/${t}`,a=new Set(n);for(let e of t)a.add(e);for(let e of a)r(i(e))&&a.delete(e);return[...a]}function Ce(e,t,n){let r=t=>e.isTombstoned(t);try{let i=e.readdir(n);if(!t||!e.isPartial(n)||r(n))return i;try{return Se(n,i,t.readdir(n),r)}catch(e){if(e?.code===`ENOENT`)return i;throw e}}catch(e){let i=e?.code;if(!t||r(n)||i!==`ENOENT`)throw e;return Se(n,[],t.readdir(n),r)}}function we(e){if(typeof e==`string`)return new TextEncoder().encode(e);if(e instanceof Uint8Array)return e;if(ArrayBuffer.isView(e)){let t=e;return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}return new TextEncoder().encode(String(e))}function Te(e,t,n,r,i){t?(t.writeFile(r,i),e.commitWrite(r,i)):(e.writeFile(r,i),n?.write?.(r,i))}function Ee(e,t,n,r,i){function a(e){return k(e.startsWith(`/`)?e:t+(t.endsWith(`/`)?``:`/`)+e)}function o(t){try{return e.readFile(t)}catch(r){let i=r?.code;if(n&&!e.isTombstoned(t)&&(i===`ENOENT`||i===`ENOSYNC`))return n.readFile(t);throw r}}let s=(t,r)=>Te(e,n,i,t,r);function c(t){if(e.exists(t))return!0;if(!n||e.isTombstoned(t))return!1;try{return n.exists(t)}catch{return!1}}function l(t){try{return e.stat(t)}catch(r){let i=r?.code;if(!n||e.isTombstoned(t)||i!==`ENOENT`)throw r;return n.stat(t)}}function u(t){try{return e.lstat(t)}catch(r){let i=r?.code;if(!n||e.isTombstoned(t)||i!==`ENOENT`)throw r;return n.lstat(t)}}let d=e=>({isFile:()=>e.isFile,isDirectory:()=>e.isDirectory,isSymbolicLink:()=>e.isSymbolicLink===!0,isCharacterDevice:()=>!1,size:e.size}),f=(e,t)=>e===`/`?`/${t}`:`${e}/${t}`;function p(t,r){if(!l(t).isDirectory){s(r,o(t));return}e.mkdir(r,!0);for(let i of Ce(e,n,t))p(f(t,i),f(r,i))}let m={...be({syncFs:e,bridge:n,persistDelete:i?.delete,resolve:a,existsResolved:c,statResolved:l,lstatResolved:u,readBytes:o,writeThrough:s}),readFileSync(e,t){return fe(o(a(e)),pe(t))},writeFileSync(e,t){s(a(e),we(t))},appendFileSync(e,t){let n=a(e),r=new Uint8Array;try{r=o(n)}catch(e){if(e?.code!==`ENOENT`)throw e}let i=we(t),c=new Uint8Array(r.byteLength+i.byteLength);c.set(r),c.set(i,r.byteLength),s(n,c)},truncateSync(e,t=0){let n=a(e),r=o(n),i=new Uint8Array(t);i.set(r.subarray(0,Math.min(t,r.byteLength))),s(n,i)},existsSync(e){return c(a(e))},accessSync(e){let t=a(e);if(!c(t))throw M(`ENOENT`,t,`access`)},mkdirSync(t,n){e.mkdir(a(t),n?.recursive)},statSync:e=>d(l(a(e))),lstatSync:e=>d(u(a(e))),realpathSync(e){let t=a(e);if(!c(t))throw M(`ENOENT`,t,`realpath`);return t},readdirSync(t){return Ce(e,n,a(t))},copyFileSync(e,t){s(a(t),o(a(e)))},cpSync(e,t){p(a(e),a(t))},chmodSync(e){let t=a(e);if(!c(t))throw M(`ENOENT`,t,`chmod`)},mkdtempSync(t){return e.mkdtemp(a(t))}};xe(m,r),O(m,ve);let h=m.existsSync;return m.existsSync=e=>{try{return h(e)}catch{return!1}},m}var De=class{_events=new Map;on(e,t){let n=this._events.get(e);return n?n.push(t):this._events.set(e,[t]),this}addListener(e,t){return this.on(e,t)}off(e,t){let n=this._events.get(e);if(n){let r=n.indexOf(t);r!==-1&&n.splice(r,1),n.length===0&&this._events.delete(e)}return this}removeListener(e,t){return this.off(e,t)}once(e,t){let n=(...r)=>{this.off(e,n),t(...r)};return this.on(e,n)}emit(e,...t){let n=this._events.get(e);if(!n||n.length===0)return!1;for(let e of[...n])e(...t);return!0}removeAllListeners(e){return e===void 0?this._events.clear():this._events.delete(e),this}listenerCount(e){return this._events.get(e)?.length??0}listeners(e){return[...this._events.get(e)??[]]}};const Oe=Object.assign(De,{EventEmitter:De,default:De});function ke(e){let t=e=>{if(typeof e==`string`)return e;if(e instanceof Error)return e.message;if(e==null)return String(e);try{return JSON.stringify(e)}catch{return String(e)}},n=(e,t,n)=>t===void 0?`${e(`Error:`)} ${n}\n`:t===``?`${e(n)}\n`:`${e(`${t}:`)} ${n}\n`,r=(t,n)=>t===void 0?`${e.color.yellow(`Warning:`)} ${n}\n`:t===``?`${e.color.yellow(n)}\n`:`${e.color.yellow(`${t}:`)} ${n}\n`;return{die(r,i){let a=typeof i==`number`?i:i?.exitCode??1,o=typeof i==`object`&&i&&`prefix`in i?i.prefix:void 0,s=t(r);throw e.writeStderr(n(e.color.red,o,s)),e.exit(a),Error(`unreachable`)},out(t){if(typeof t==`string`){e.writeStdout(t.endsWith(`
|
|
2
2
|
`)?t:`${t}\n`);return}try{e.writeStdout(`${JSON.stringify(t,null,2)}\n`)}catch{e.writeStdout(`${String(t)}\n`)}},warn(n,i){let a=typeof i==`object`&&i&&`prefix`in i?i.prefix:void 0;e.writeStderr(r(a,t(n)))},help(t){throw e.writeStdout(t.endsWith(`
|
|
3
3
|
`)?t:`${t}\n`),e.exit(0),Error(`unreachable`)}}}const N={reset:`\x1B[0m`,green:`\x1B[32m`,red:`\x1B[31m`,yellow:`\x1B[33m`,gray:`\x1B[90m`,bold:`\x1B[1m`,cyan:`\x1B[36m`,dim:`\x1B[2m`};function Ae(e){let t=e.isTTY&&!e.noColor,n=e=>n=>t?`${e}${n}${N.reset}`:String(n);return{enabled:t,green:n(N.green),red:n(N.red),yellow:n(N.yellow),gray:n(N.gray),bold:n(N.bold),cyan:n(N.cyan),dim:n(N.dim)}}const je=/\u001b\[[0-9;]*m/g;function Me(e){return e.replace(je,``)}function Ne(e){return Me(e).length}function Pe(e,t){let n=String(e??``);return t<=0?``:Ne(n)<=t?n:t<=1?n.slice(0,t):`${Me(n).slice(0,t-1)}…`}function Fe(e,t){let n=String(e??``),r=Ne(n);return r===t?n:r>t?Pe(n,t):n+` `.repeat(t-r)}function Ie(e,t){if(!e.length)return``;let n=Math.max(...e.map(e=>e.length)),r=[];for(let i=0;i<n;i++)if(t&&t[i]!==void 0)r[i]=t[i];else{let t=0;for(let n of e){let e=i<n.length?String(n[i]??``):``;t=Math.max(t,Ne(e))}r[i]=t}return e.map(e=>r.map((t,n)=>Fe(n<e.length?String(e[n]??``):``,t)).join(` `).replace(/\s+$/,``)).join(`
|
|
4
4
|
`)}function Le(e){return e instanceof Date?e:new Date(e)}function Re(e){return e<10?`0${e}`:String(e)}function ze(e,t=`short`){let n=Le(e);if(Number.isNaN(n.getTime()))return String(e);if(t===`iso`)return n.toISOString();if(t===`locale`)return new Intl.DateTimeFormat(void 0,{dateStyle:`medium`}).format(n);if(t===`human`){let e=Date.now()-n.getTime(),t=Math.abs(e);if(t<6e4)return e>=0?`just now`:`in a moment`;let r=(t,n)=>e>=0?`${t} ${n}${t===1?``:`s`} ago`:`in ${t} ${n}${t===1?``:`s`}`;return t<36e5?r(Math.round(t/6e4),`minute`):t<864e5?r(Math.round(t/36e5),`hour`):t<26298e5?r(Math.round(t/864e5),`day`):t<315576e5?r(Math.round(t/26298e5),`month`):r(Math.round(t/315576e5),`year`)}return`${n.getFullYear()}-${Re(n.getMonth()+1)}-${Re(n.getDate())}`}const Be={trunc:Pe,col:Fe,table:Ie,date:ze};var P=class extends Error{actual;expected;operator;generatedMessage;code;constructor(e={}){let t=!e.message;super(e.message||`${Ve(e.actual)} ${e.operator||`!=`} ${Ve(e.expected)}`),this.name=`AssertionError`,this.actual=e.actual,this.expected=e.expected,this.operator=e.operator||``,this.generatedMessage=t,this.code=`ERR_ASSERTION`}};function Ve(e){if(typeof e==`string`)return JSON.stringify(e);if(e==null)return String(e);if(typeof e==`object`)try{return JSON.stringify(e)}catch{return String(e)}return String(e)}function F(e,t){return e instanceof Error?e:typeof e==`string`?new P({message:e}):t()}function He(e,t,n,r){if(e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(!We(e[i],t[i],n,r))return!1;return!0}function Ue(e,t,n,r){let i=Object.keys(e);if(i.length!==Object.keys(t).length)return!1;for(let a of i)if(!Object.prototype.hasOwnProperty.call(t,a)||!We(Reflect.get(e,a),Reflect.get(t,a),n,r))return!1;return!0}function We(e,t,n,r){if((n?Object.is(e,t):e===t)||!n&&e==t)return!0;if(typeof e!=`object`||typeof t!=`object`||e===null||t===null)return!1;let i=e,a=t;return n&&Object.getPrototypeOf(i)!==Object.getPrototypeOf(a)?!1:r.get(i)===a||(r.set(i,a),Array.isArray(e)===Array.isArray(t)?Array.isArray(e)&&Array.isArray(t)?He(e,t,n,r):Ue(i,a,n,r):!1)}function Ge(e,t){try{if(e instanceof t)return!0}catch{}try{return!!t(e)}catch{return!1}}function Ke(e,t){for(let[n,r]of Object.entries(t)){let t=Reflect.get(e,n);if(r instanceof RegExp){if(typeof t!=`string`||!r.test(t))return!1}else if(t!==r)return!1}return!0}function qe(e,t){if(t===void 0)return!0;if(t instanceof RegExp){let n=e instanceof Error?e.message:String(e);return t.test(n)}return typeof t==`function`?Ge(e,t):t&&typeof t==`object`?!e||typeof e!=`object`?!1:Ke(e,t):!1}function Je(e){let t=(e,t)=>{if(!e)throw F(t,()=>new P({message:`The expression evaluated to a falsy value`,actual:e,expected:!0,operator:`==`}))},n=((e,n)=>t(e,n)),r=(e,t,n)=>{if(!Object.is(e,t))throw F(n,()=>new P({actual:e,expected:t,operator:`strictEqual`}))},i=(t,n,i)=>{if(e){r(t,n,i);return}if(t!=n)throw F(i,()=>new P({actual:t,expected:n,operator:`==`}))},a=(e,t,n)=>{if(Object.is(e,t))throw F(n,()=>new P({actual:e,expected:t,operator:`notStrictEqual`}))},o=(t,n,r)=>{if(e){a(t,n,r);return}if(t==n)throw F(r,()=>new P({actual:t,expected:n,operator:`!=`}))},s=(e,t,n)=>{if(!We(e,t,!0,new WeakMap))throw F(n,()=>new P({actual:e,expected:t,operator:`deepStrictEqual`}))},c=(t,n,r)=>{if(e){s(t,n,r);return}if(!We(t,n,!1,new WeakMap))throw F(r,()=>new P({actual:t,expected:n,operator:`deepEqual`}))},l=(e,t,n)=>{if(We(e,t,!0,new WeakMap))throw F(n,()=>new P({actual:e,expected:t,operator:`notDeepStrictEqual`}))};return n.ok=t,n.equal=i,n.notEqual=o,n.strictEqual=r,n.notStrictEqual=a,n.deepEqual=c,n.deepStrictEqual=s,n.notDeepEqual=(t,n,r)=>{if(e){l(t,n,r);return}if(We(t,n,!1,new WeakMap))throw F(r,()=>new P({actual:t,expected:n,operator:`notDeepEqual`}))},n.notDeepStrictEqual=l,n.throws=(e,t,n)=>{let r,i=!1;try{e()}catch(e){r=e,i=!0}if(!i)throw F(typeof t==`string`?t:n,()=>new P({message:`Missing expected exception`,operator:`throws`}));if(!(typeof t==`string`||t instanceof Error)&&!qe(r,t))throw F(n,()=>new P({message:`Got unwanted exception`,actual:r,operator:`throws`}))},n.doesNotThrow=(e,t)=>{try{e()}catch(e){throw F(t,()=>new P({message:`Got unwanted exception`,actual:e,operator:`doesNotThrow`}))}},n.fail=e=>{throw F(e,()=>new P({message:`Failed`,operator:`fail`}))},n.AssertionError=P,n}const Ye=Je(!0);Ye.strict=Ye;const Xe=Je(!1);Xe.strict=Ye;function Ze(e,t){let n=globalThis.Buffer;if(!n)throw Error(`crypto.createHash: Buffer is unavailable in this environment`);return t?n.from(e,t):n.from(e)}var Qe=class{_events=new Map;closeScheduled=!1;writable=!0;readable=!0;on(e,t){let n=this._events.get(e);return n?n.push(t):this._events.set(e,[t]),this}once(e,t){let n=(...r)=>{this.off(e,n),t(...r)};return this.on(e,n)}off(e,t){let n=this._events.get(e);if(n){let e=n.indexOf(t);e!==-1&&n.splice(e,1)}return this}emit(e,...t){let n=this._events.get(e);if(!n||n.length===0)return!1;for(let e of[...n])e(...t);return!0}pipe(e){return this.on(`data`,t=>e.write(t)),this.once(`end`,()=>e.end()),e}closeOnDestroy(){return this.closeScheduled?this:(this.closeScheduled=!0,queueMicrotask(()=>this.emit(`close`)),this)}removeListener(e,t){return this.off(e,t)}removeAllListeners(){return this._events.clear(),this}},$e=class extends Qe{read(){return null}destroy(){return this.closeOnDestroy()}},et=class extends Qe{write(e,t,n){return n&&queueMicrotask(n),!0}end(e){return e&&queueMicrotask(e),this}destroy(){return this.closeOnDestroy()}},tt=class extends Qe{write(e,t,n){return n&&queueMicrotask(n),!0}end(e){return e&&queueMicrotask(e),this}read(){return null}destroy(){return this.closeOnDestroy()}};const nt={Readable:$e,Writable:et,Transform:tt,PassThrough:class extends tt{},Stream:Qe};function rt(e,t){return Object.assign(TypeError(t),{code:e})}const it=e=>e.startsWith(`--`)&&e.length>2,at=e=>/^-[^-]/.test(e);function ot(e,t,n){let r=[];for(let i=1;i<e.length;i++)if(t[n(e[i])]?.type!==`string`||i===e.length-1)r.push(`-${e[i]}`);else{r.push(`-${e.slice(i)}`);break}return r}function st(e,t,n){let r=[],i=[...e],a=-1,o=0,s=(e,t,n,r)=>({kind:`option`,name:e,rawName:t,index:a,value:n,inlineValue:r}),c=e=>t[e]?.type===`string`;for(;i.length>0;){let e=i.shift(),l=i[0];if(o>0?o--:a++,e===`--`){r.push({kind:`option-terminator`,index:a});for(let e of i)r.push({kind:`positional`,index:++a,value:e});break}if(at(e)&&e.length===2){let t=n(e[1]);c(t)&&l!==void 0?(i.shift(),r.push(s(t,e,l,!1)),a++):r.push(s(t,e,void 0,void 0));continue}if(at(e)){let a=n(e[1]);if(c(a))r.push(s(a,`-${e[1]}`,e.slice(2),!0));else{let r=ot(e,t,n);i.unshift(...r),o=r.length}continue}if(it(e)){let t=e.indexOf(`=`);if(t!==-1){r.push(s(e.slice(2,t),e.slice(0,t),e.slice(t+1),!0));continue}let n=e.slice(2);c(n)&&l!==void 0?(i.shift(),r.push(s(n,e,l,!1)),a++):r.push(s(n,e,void 0,void 0));continue}r.push({kind:`positional`,index:a,value:e})}return r}function ct(e,t){let n=t?.short?`'-${t.short}, --${e.name}'`:`'--${e.name}'`;if(!t)throw rt(`ERR_PARSE_ARGS_UNKNOWN_OPTION`,`Unknown option '${e.rawName}'${e.rawName.startsWith(`--`)?``:`. To specify a positional argument starting with a '-', place it at the end of the command after '--', as in '-- "-"'`}`);if(t.type===`string`&&typeof e.value!=`string`)throw rt(`ERR_PARSE_ARGS_INVALID_OPTION_VALUE`,`Option ${n.replace(/'$/,` <value>'`)} argument missing`);if(t.type===`boolean`&&e.value!==void 0)throw rt(`ERR_PARSE_ARGS_INVALID_OPTION_VALUE`,`Option ${n} does not take an argument`);let r=e.value!==void 0&&e.value.length>1&&e.value[0]===`-`;if(t.type===`string`&&e.inlineValue===!1&&r)throw rt(`ERR_PARSE_ARGS_INVALID_OPTION_VALUE`,`Option '${e.rawName}' argument is ambiguous.\nDid you forget to specify the option argument for '${e.rawName}'?\nTo specify an option argument starting with a dash use '${e.rawName.startsWith(`--`)?`${e.rawName}=-XYZ`:`--${e.name}=-XYZ' or '${e.rawName}-XYZ`}'.`)}function lt(e,t,n,r){if(!r){e[t]=n;return}let i=e[t];e[t]=Array.isArray(i)?[...i,n]:[n]}function ut(e,t,n){let r=e.slice(3);return n&&e.startsWith(`no-`)?{name:r,negated:!0}:{name:e,negated:!1}}function dt(e,t,n,r,i){let{name:a,negated:o}=ut(t.name,n,i);t.name=a;let s=n[a];r&&ct(t,o&&s?.type!==`boolean`?void 0:s),lt(e,a,o?!1:t.value??!0,s?.multiple===!0)}function ft(e={},t=()=>[]){let n=e.args??t(),r=e.options??{},i=e.strict??!0,a=e.allowPositionals??!i,o=e.allowNegative??!1,s=e=>Object.keys(r).find(t=>r[t].short===e)??e,c=Object.create(null),l=[],u=st(n,r,s);for(let e of u){if(e.kind===`positional`){if(i&&!a)throw rt(`ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL`,`Unexpected argument '${e.value}'. This command does not take positional arguments`);l.push(e.value);continue}e.kind===`option`&&dt(c,e,r,i,o)}for(let[e,t]of Object.entries(r))t.default!==void 0&&c[e]===void 0&&(c[e]=t.default);return e.tokens?{values:c,positionals:l,tokens:u}:{values:c,positionals:l}}const pt=Symbol.for(`nodejs.util.inspect.custom`),mt=Symbol.for(`nodejs.util.promisify.custom`);function ht(e){return`'${e.replace(/\\/g,`\\\\`).replace(/'/g,`\\'`).replace(/\n/g,`\\n`)}'`}function gt(e){if(e===null)return`null`;let t=typeof e;if(t===`string`)return ht(e);if(t===`number`)return Object.is(e,-0)?`-0`:String(e);if(t===`bigint`)return`${String(e)}n`;if(t===`boolean`||t===`undefined`)return String(e);if(t===`symbol`)return e.toString();if(t===`function`){let t=e.name;return t?`[Function: ${t}]`:`[Function (anonymous)]`}return null}function _t(e){return e instanceof RegExp?e.toString():e instanceof Date?Number.isNaN(e.getTime())?`Invalid Date`:e.toISOString():e instanceof Error?e.stack||`${e.name}: ${e.message}`:null}function vt(e,t,n){if(Array.isArray(e))return e.length===0?`[]`:`[ ${e.map(e=>yt(e,t+1,n)).join(`, `)} ]`;if(e instanceof Map){let r=[...e].map(([e,r])=>`${yt(e,t+1,n)} => ${yt(r,t+1,n)}`);return`Map(${e.size}) {${r.length?` ${r.join(`, `)} `:``}}`}if(e instanceof Set){let r=[...e].map(e=>yt(e,t+1,n));return`Set(${e.size}) {${r.length?` ${r.join(`, `)} `:``}}`}let r=Object.keys(e),i=e.constructor?e.constructor.name:``,a=i&&i!==`Object`?`${i} `:``;return r.length===0?`${a}{}`:`${a}{ ${r.map(r=>`${/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(r)?r:ht(r)}: ${yt(e[r],t+1,n)}`).join(`, `)} }`}function yt(e,t,n){let r=gt(e);if(r!==null)return r;let i=e,a=_t(i);if(a!==null)return a;let o=i[pt];if(typeof o==`function`)try{return String(o.call(i,n.maxDepth,n.opts))}catch{}if(n.seen.has(e))return`[Circular *1]`;if(n.maxDepth!==null&&t>n.maxDepth)return Array.isArray(e)?`[Array]`:`[Object]`;n.seen.add(e);try{return vt(i,t,n)}finally{n.seen.delete(e)}}function bt(e,t={}){let n=t.depth===void 0?2:t.depth;return yt(e,0,{seen:new Set,maxDepth:n,opts:t})}function xt(e,t,n,r){if(e===`%%`)return`%`;if(n.i>=t.length)return e;let i=t[n.i];switch(e){case`%s`:return n.i++,typeof i==`string`?i:typeof i==`bigint`?`${String(i)}n`:i==null||typeof i==`number`||typeof i==`boolean`?String(i):bt(i,{depth:r.depth===void 0?2:r.depth});case`%d`:return n.i++,typeof i==`bigint`?`${String(i)}n`:Number.isNaN(Number(i))?`NaN`:String(Number(i));case`%i`:return n.i++,typeof i==`bigint`?`${String(i)}n`:String(Number.parseInt(i,10));case`%f`:return n.i++,String(typeof i==`bigint`?i:Number.parseFloat(i));case`%j`:n.i++;try{return JSON.stringify(i)??`undefined`}catch{return`[Circular]`}case`%o`:return n.i++,bt(i,{depth:4});case`%O`:return n.i++,bt(i,{depth:null});case`%c`:return n.i++,``;default:return e}}function St(e,...t){let n=t[0];if(typeof n!=`string`)return t.map(e=>typeof e==`string`?e:bt(e)).join(` `);let r={i:1},i=n.replace(/%[sdifjoOc%]/g,n=>xt(n,t,r,e));for(;r.i<t.length;r.i++){let e=t[r.i];i+=` ${typeof e==`string`?e:bt(e)}`}return i}function Ct(...e){return St({},...e)}function wt(e,t){if(e==null)throw TypeError(`The constructor to "inherits" must not be null or undefined`);if(t==null)throw TypeError(`The super constructor to "inherits" must not be null or undefined`);if(t.prototype===void 0)throw TypeError(`The super constructor to "inherits" must have a prototype`);e.super_=t,Object.setPrototypeOf(e.prototype,t.prototype)}function Tt(e){if(typeof e!=`function`)throw TypeError(`The "original" argument must be of type function`);let t=e[mt];if(t){if(typeof t!=`function`)throw TypeError(`The [util.promisify.custom] property must be of type function`);return t}function n(...t){return new Promise((n,r)=>{e.call(this,...t,(e,...t)=>{if(e){r(e);return}n(t.length>1?t:t[0])})})}return Object.setPrototypeOf(n,Object.getPrototypeOf(e)),Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)),n}function Et(e){return function(t,n,r){if(typeof t!=`function`)throw TypeError(`The "fn" argument must be of type function`);let i=!1;function a(...a){return i||(i=!0,e(r?`[${r}] DeprecationWarning: ${n}`:`DeprecationWarning: ${n}`)),new.target?Reflect.construct(t,a,new.target):t.apply(this,a)}return Object.setPrototypeOf(a,Object.getPrototypeOf(t)),t.prototype&&(a.prototype=t.prototype),a}}const Dt=bt;Dt.custom=pt;const Ot=Tt;Ot.custom=mt;function kt(e,t=()=>[]){return{parseArgs:e=>ft(e,t),format:Ct,formatWithOptions:St,inspect:Dt,inherits:wt,promisify:Ot,deprecate:Et(e)}}const At=kt(()=>{});let jt=1;function Mt(e){if(typeof e==`string`)return e;if(ArrayBuffer.isView(e)){let t=e;return new TextDecoder().decode(new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}return e==null?``:String(e)}function Nt(e,t,n){return Object.assign(TypeError(`The "${e}" argument must be of type ${t}. Received ${n===null?`null`:Array.isArray(n)?`array`:typeof n}`),{code:`ERR_INVALID_ARG_TYPE`})}function Pt(e){if(e===void 0)return;if(typeof e!=`object`||!e||Array.isArray(e))throw Nt(`options.env`,`object`,e);let t={};for(let[n,r]of Object.entries(e))if(r!==void 0){if(typeof r!=`string`)throw Nt(`options.env[${n}]`,`string`,r);t[n]=r}return t}function Ft(e){if(e!==void 0){if(typeof e==`string`)return e;if(typeof e==`object`&&e&&typeof e.href==`string`)try{return C.fileURLToPath(e.href)}catch{throw Nt(`options.cwd`,`string or an instance of URL (file:)`,e)}throw Nt(`options.cwd`,`string or an instance of URL`,e)}}function It(e,t){return t===void 0||t===`utf8`||t===`utf-8`?e:t===`buffer`||t===null?Ze(e):Ze(e).toString(t)}function Lt(e,t){if(e.length===0)return It(``,t);if(typeof e[0]==`string`)return e.join(``);let n=globalThis.Buffer;return n?n.concat(e):e[0]}function Rt(e,t,n){t.length>0&&e.emit(`data`,It(t,n)),e.readable=!1,e.emit(`end`)}function zt(e){let t=e=>{typeof e==`function`&&queueMicrotask(e)};return{writable:!0,write(n,r,i){return e.stdin.write(Mt(n)),t(typeof r==`function`?r:i),!0},end(n,r,i){n!==void 0&&typeof n!=`function`&&e.stdin.write(Mt(n)),e.stdin.end(),this.writable=!1,t(typeof n==`function`?n:typeof r==`function`?r:i)}}}var Bt=class extends De{stdout;stderr;stdin;pid;exitCode=null;signalCode=null;killed=!1;spawnfile;spawnargs;handle;constructor(e,t,n,r){super(),this.handle=e,this.pid=jt++,this.spawnfile=n,this.spawnargs=r,this.stdout=new $e,this.stderr=new $e,this.stdin=zt(e),e.done.then(e=>this.finish(e,t),e=>this.emit(`error`,e instanceof Error?e:Error(String(e))))}finish(e,t){Rt(this.stdout,e.stdout,t),Rt(this.stderr,e.stderr,t),this.exitCode=e.exitCode;let n=this.killed?null:e.exitCode,r=this.killed?this.signalCode:null;this.emit(`exit`,n,r),this.emit(`close`,n,r)}kill(e=`SIGTERM`){return this.killed=!0,this.signalCode=e,this.handle.kill(e).catch(()=>{}),!0}};function Vt(e){let t=(t,n,r)=>{if(!e)throw Error(`child_process.${t} is not available in this browser realm (no synchronous bridge — the page has no controlling Service Worker). Use the async form instead: await promisify(${t.replace(/Sync$/,``)})(…).`);return e.run(n,r)},n=e=>{let t=Ft(e.cwd),n=Pt(e.env);return{...e.input===void 0?{}:{input:Mt(e.input)},...e.timeout===void 0?{}:{timeout:e.timeout},...t===void 0?{}:{cwd:t},...n===void 0?{}:{env:n}}},r=(e,r,i,a)=>{let o=a.encoding===void 0?`buffer`:a.encoding,s=t(e,r,n(a)),c=It(s.stdout,o),l=It(s.stderr,o);if(s.exitCode===0)return c;throw Object.assign(Error(`Command failed: ${i}\n${s.stderr}`),{status:s.exitCode,signal:null,stdout:c,stderr:l,output:[null,c,l],pid:jt++})},i=(e,t)=>({args:Array.isArray(e)?e:[],options:(Array.isArray(e)?t:e)??{}});return{execSync:(e,t={})=>r(`execSync`,e,e,t),execFileSync:(e,t,n)=>{let{args:a,options:o}=i(t,n),s=[e,...a];return r(`execFileSync`,s,s.join(` `),o)},spawnSync:(e,r,a)=>{let{args:o,options:s}=i(r,a),c=s.encoding===void 0?`buffer`:s.encoding,l=jt++,u=s.shell?`${e}${o.length?` ${o.join(` `)}`:``}`:[e,...o],d;try{d=t(`spawnSync`,u,n(s))}catch(e){if(e instanceof TypeError)throw e;let t=It(``,c);return{pid:l,status:null,signal:null,stdout:t,stderr:t,output:[null,t,t],error:e instanceof Error?e:Error(String(e))}}let f=It(d.stdout,c),p=It(d.stderr,c);return{pid:l,status:d.exitCode,signal:null,stdout:f,stderr:p,output:[null,f,p]}}}}function Ht(e,t){let n=(t,n,r,i,a)=>{let o=Ft(n.cwd),s=Pt(n.env),c={...o===void 0?{}:{cwd:o},...s===void 0?{}:{env:s}},l=e.start(t,c),u=new Bt(l,r,i,a);return n.input!==void 0&&u.stdin.write(Mt(n.input)),queueMicrotask(()=>l.stdin.end()),u},r=(e,t,n,r)=>{if(typeof r!=`function`)return;let i=[],a=[];e.stdout.on(`data`,e=>i.push(e)),e.stderr.on(`data`,e=>a.push(e)),e.once(`error`,e=>r(e,Lt(i,t),Lt(a,t))),e.once(`close`,(o,s)=>{let c=Lt(i,t),l=Lt(a,t);if(o===0){r(null,c,l);return}r(Object.assign(Error(`Command failed: ${n}\n${Mt(l)}`),{code:o===null?void 0:o,killed:e.killed,signal:s??null,cmd:n}),c,l)})},i=(e,t,i)=>{let a=typeof t==`function`?t:i,o=t&&typeof t==`object`?t:{},s=o.encoding===void 0?`utf8`:o.encoding,c=n(e,o,s,e,[]);return r(c,s,e,a),c},a=(e,t,i,a)=>{let o=[],s={},c;Array.isArray(t)?(o=t,typeof i==`function`?c=i:(s=i??{},c=typeof a==`function`?a:void 0)):typeof t==`function`?c=t:t&&typeof t==`object`&&(s=t,c=typeof i==`function`?i:void 0);let l=s.encoding===void 0?`utf8`:s.encoding,u=[e,...o],d=n(u,s,l,e,o);return r(d,l,u.join(` `),c),d},o=(e,t,r)=>{let i=[],a={};Array.isArray(t)?(i=t,a=r??{}):t&&typeof t==`object`&&(a=t);let o=a.encoding===void 0?`buffer`:a.encoding,s=a.shell?`${e}${i.length?` ${i.join(` `)}`:``}`:[e,...i];return n(s,a,o,e,i)},s=(e,t)=>new Promise((n,r)=>{i(e,t,(e,t,i)=>{if(e){r(Object.assign(e,{stdout:t,stderr:i}));return}n({stdout:t,stderr:i})})}),c=(e,t,n)=>new Promise((r,i)=>{a(e,Array.isArray(t)?t:[],Array.isArray(t)?n:t,(e,t,n)=>{if(e){i(Object.assign(e,{stdout:t,stderr:n}));return}r({stdout:t,stderr:n})})}),l=e=>()=>{throw Error(`child_process.${e} is not available in the browser realm`)},u=Vt(t),d=(e,t)=>{Object.defineProperty(e,mt,{value:t,enumerable:!1,configurable:!0})};return d(i,s),d(a,c),{exec:i,execFile:a,spawn:o,execSync:u.execSync,spawnSync:u.spawnSync,execFileSync:u.execFileSync,fork:l(`fork`),ChildProcess:Bt}}function Ut(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}var Wt={exports:{}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./api-endpoint-DuEQRZ4g.js";import{h as t}from"./main-
|
|
1
|
+
import{o as e}from"./api-endpoint-DuEQRZ4g.js";import{h as t}from"./main-BsG-jtvC.js";async function n(){try{let e=await navigator.serviceWorker?.getRegistrations?.();e&&await Promise.all(e.map(e=>e.unregister().catch(()=>!1)))}catch{}try{let e=await indexedDB.databases();await Promise.all(e.filter(e=>!!e.name).map(e=>new Promise(t=>{let n=indexedDB.deleteDatabase(e.name);n.onsuccess=()=>t(),n.onerror=()=>t(),n.onblocked=()=>t()})))}catch{}try{let e=navigator.storage;if(typeof e?.getDirectory==`function`){let t=await e.getDirectory(),n=[];for await(let e of t.keys())n.push(e);await Promise.all(n.map(e=>t.removeEntry(e,{recursive:!0}).catch(()=>{})))}}catch{}}function r(r,i,a={}){if(r.dataset.recoveryBusy===`1`)return;let o=a.wipe??n,s=a.reload??(()=>location.reload()),c=i instanceof Error?i.message:String(i),l=a.verdict===`browser-wedged`,u=e(i),d=l||u,f=document.createElement(`div`);f.style.cssText=`padding:2rem;text-align:center;font-family:system-ui;`;let p=document.createElement(`h1`);p.style.color=`var(--s2-negative, #e34850)`,p.textContent=l?`Your browser needs a restart`:`Failed to start`;let m=document.createElement(`p`);m.style.color=`var(--s2-content-tertiary, #717171)`,m.textContent=c;let h=document.createElement(`div`);h.style.cssText=`display:flex;gap:0.75rem;justify-content:center;flex-wrap:wrap;margin-top:1.5rem;`;let g=document.createElement(`button`);g.type=`button`,g.textContent=`Reset local data & reload`,g.dataset.variant=d?`demoted`:`destructive`,g.style.cssText=d?`padding:0.5rem 1rem;cursor:pointer;border:1px solid var(--s2-content-tertiary, #717171);background:transparent;color:inherit;border-radius:4px;`:`padding:0.5rem 1rem;cursor:pointer;border:1px solid var(--s2-negative, #e34850);background:var(--s2-negative, #e34850);color:#fff;border-radius:4px;`;let _=document.createElement(`button`);if(_.type=`button`,_.textContent=`Reload`,_.style.cssText=l?`padding:0.5rem 1rem;cursor:pointer;border:1px solid var(--s2-accent, #0265dc);background:var(--s2-accent, #0265dc);color:#fff;border-radius:4px;`:`padding:0.5rem 1rem;cursor:pointer;border:1px solid var(--s2-content-tertiary, #717171);background:transparent;color:inherit;border-radius:4px;`,g.addEventListener(`click`,()=>{g.disabled=!0,_.disabled=!0,g.textContent=`Resetting…`,r.dataset.recoveryBusy=`1`,(async()=>{try{await o()}catch{}for(let e of t)try{localStorage.removeItem(e)}catch{}s()})()}),_.addEventListener(`click`,()=>{s()}),l){let e=document.createElement(`p`);e.style.cssText=`max-width:34rem;margin:1rem auto 0;`,e.textContent=`This browser has stopped starting web workers — a browser process issue, not a problem with your data. Quit the browser completely, reopen it, and come back. Your local data is intact; resetting it will not fix this.`,f.append(p,m,e),h.append(_,g)}else f.append(p,m),h.append(g,_);for(f.append(h);r.firstChild;)r.removeChild(r.firstChild);r.appendChild(f)}export{r as renderBootRecoveryScreen};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
async function e(e){if(e===`extension-direct`){let e=chrome;return e.identity?.getRedirectURL?.(`mcp-callback`)??`https://${e.runtime?.id??``}.chromiumapp.org/mcp-callback`}if(e===`node-rest`){let{getLocalApiBaseUrl:e}=await import(`./proxied-fetch-
|
|
1
|
+
async function e(e){if(e===`extension-direct`){let e=chrome;return e.identity?.getRedirectURL?.(`mcp-callback`)??`https://${e.runtime?.id??``}.chromiumapp.org/mcp-callback`}if(e===`node-rest`){let{getLocalApiBaseUrl:e}=await import(`./proxied-fetch-J19bK2dG.js`).then(e=>e.i),t=e();if(t)return`${t}/auth/callback`}let{getOAuthPageOrigin:t}=await import(`./oauth-service-Dn_Xz1FZ.js`),{origin:n}=await t();return`${n}${e===`extension-delegate`?`/auth/mcp-callback`:`/auth/callback`}`}export{e as t};
|
package/dist/ui/assets/{remote-terminal-view-C6Ao0U4O.js → remote-terminal-view-BpHAWWeD.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/readline-BOCWRKSR.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/xterm-B5LH8GIb.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./preload-helper-Czpn1I53.js";import{
|
|
2
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./preload-helper-Czpn1I53.js";import{ht as n,mt as r}from"./wc-shell-pTQjFXvS.js";import"./tool-ui-eSQ1g2I1.js";import{t as i}from"./permissions-surface-registry-CilCRwhh.js";import{storePendingHandle as a}from"./mount-picker-popup-qcWGbpG5.js";import{r as o,t as s}from"./hid-device-registry-B2R-0rNt.js";import"./browser-DGwroBSO.js";import{a as c,n as l}from"./serial-port-registry-CCqklAEr.js";import{a as u,t as d}from"./usb-device-registry--JwKRTYp.js";import"./usb-operations-v1mGAdRY.js";import{t as f}from"./terminal-session-client-ADzaWGFd.js";function p(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 m=new Set([`--vid`,`--pid`,`--baud`,`--data-bits`,`--stop-bits`,`--parity`,`--flow-control`,`--buffer-size`,`--bytes`,`--until`,`--timeout-ms`,`--dtr`,`--rts`,`--break`,`--__resolved`]);function h(e){return p(e,m)}function g(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 _(e){let t={};return e.has(`--vid`)&&(t.usbVendorId=g(e.get(`--vid`),`vid`)),e.has(`--pid`)&&(t.usbProductId=g(e.get(`--pid`),`pid`)),Object.keys(t).length>0?[t]:[]}`${l}${l}`;var v=new Set([`--port`,`--baud`,`--vid`,`--pid`]),y=115200;function b(e){return p(e,v)}`${y}`;var x=new Set([`--vid`,`--pid`,`--usage-page`,`--usage`,`--__resolved`,`--timeout`]);function S(e){return p(e,x)}function C(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 w(e){let t={};return e.has(`--vid`)&&(t.vendorId=C(e.get(`--vid`),`vid`)),e.has(`--pid`)&&(t.productId=C(e.get(`--pid`),`pid`)),e.has(`--usage-page`)&&(t.usagePage=C(e.get(`--usage-page`),`usage-page`)),e.has(`--usage`)&&(t.usage=C(e.get(`--usage`),`usage`)),Object.keys(t).length>0?[t]:[]}`${s}`;var T=new Set([`--vid`,`--pid`,`--class`,`--subclass`,`--protocol`,`--serial`,`--request-type`,`--recipient`,`--request`,`--value`,`--index`,`--__resolved`]);function E(e){return p(e,T)}function D(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 O(e){let t={};return e.has(`--vid`)&&(t.vendorId=D(e.get(`--vid`),`vid`)),e.has(`--pid`)&&(t.productId=D(e.get(`--pid`),`pid`)),e.has(`--class`)&&(t.classCode=D(e.get(`--class`),`class`)),e.has(`--subclass`)&&(t.subclassCode=D(e.get(`--subclass`),`subclass`)),e.has(`--protocol`)&&(t.protocolCode=D(e.get(`--protocol`),`protocol`)),e.has(`--serial`)&&(t.serialNumber=e.get(`--serial`)),Object.keys(t).length>0?[t]:[]}`${d}`;function k(e){let{border:t,...n}=r(e);return n}var A=`\x1B[34m/\x1B[0m \x1B[90m$\x1B[0m `,j=class{options;client;terminal=null;fitAddon=null;terminalHost=null;previewHost=null;previewUrls=[];hasPreview=!1;previewStateListener=null;resizeObserver=null;unwatchTheme=null;mountRoot=null;readline=null;disposed=!1;abortPromptLoop=null;programmaticResolve=null;isExecuting=!1;suppressOutput=!1;tabBusy=!1;constructor(e){this.options=e;let t=e.sid??`panel-terminal-${Date.now()}`;this.client=new f({client:e.client,sid:t,onEvent:e=>this.handleEvent(e)})}async mount(r){let{Terminal:i}=await t(async()=>{let{Terminal:e}=await import(`./xterm-C3BHN0de.js`);return{Terminal:e}},[]),{FitAddon:a}=await t(async()=>{let{FitAddon:e}=await import(`./addon-fit-DIOBYJe3.js`);return{FitAddon:e}},[]),{Readline:o}=await t(async()=>{let{Readline:t}=await import(`./readline-BOCWRKSR.js`).then(t=>e(t.default,1));return{Readline:t}},__vite__mapDeps([0,1]));await t(()=>Promise.resolve({}),__vite__mapDeps([2])),this.mountRoot=r,this.terminal=new i({cursorBlink:!0,fontSize:11,fontFamily:`'Source Code Pro', 'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace`,theme:k(r),convertEol:!0}),this.unwatchTheme?.(),this.unwatchTheme=n(r,()=>{this.terminal&&(this.terminal.options.theme=k(this.mountRoot))}),this.fitAddon=new a,this.terminal.loadAddon(this.fitAddon),r.replaceChildren(),this.terminalHost=document.createElement(`div`),this.terminalHost.className=`terminal-panel__terminal-host`,r.appendChild(this.terminalHost),this.previewHost=document.createElement(`div`),this.previewHost.className=`terminal-panel__preview`,r.appendChild(this.previewHost),this.terminal.open(this.terminalHost),this.fitAddon.fit(),this.resizeObserver=new ResizeObserver(()=>this.refit()),this.resizeObserver.observe(this.terminalHost),this.readline=new o,this.neutralizeReadlineHistoryPersistence(),this.terminal.loadAddon(this.readline),this.readline.setCtrlCHandler(()=>this.signalInterruptDuringExec()),this.setupInput(),this.terminal.writeln(`\x1B[1mslicc\x1B[0m \x1B[90mshell (kernel)\x1B[0m`),this.terminal.writeln(`\x1B[90mType "help" for available commands.\x1B[0m
|
|
3
3
|
`),await this.client.open({cwd:this.options.cwd,env:this.options.env}),this.runPromptLoop()}refit(){this.fitAddon?.fit()}clearTerminal(){this.terminal?.clear()}async executeCommandInTerminal(e){let t=e.trim();if(!t)return{stdout:``,stderr:``,exitCode:0};if(!this.terminal||!this.readline)return this.client.exec(t);if(this.isExecuting||this.programmaticResolve||this.readline.getLine().length>0)return{stdout:``,stderr:`terminal is busy; finish current input first
|
|
4
4
|
`,exitCode:1};let n=new Promise(e=>{this.programmaticResolve=e});return this.readline.updateLine(t),this.terminal.input(`\r`),n}setPreviewStateListener(e){this.previewStateListener=e,e?.(this.hasPreview)}dispose(){this.disposed=!0,this.abortPromptLoop?.(Error(`terminal disposed`)),this.abortPromptLoop=null,this.clearMediaPreview(),this.unwatchTheme?.(),this.unwatchTheme=null,this.mountRoot=null,this.resizeObserver?.disconnect(),this.resizeObserver=null,this.terminal?.dispose(),this.terminal=null,this.readline=null,this.fitAddon=null,this.terminalHost=null,this.previewHost=null,this.client.close(),this.client.dispose()}renderMediaPreview(e){if(!this.previewHost)return;let t=Uint8Array.from(atob(e.data),e=>e.charCodeAt(0)),n=URL.createObjectURL(new Blob([t],{type:e.mediaType}));this.previewUrls.push(n);let r=document.createElement(`div`);r.className=`terminal-panel__preview-item`;let i=document.createElement(`div`);i.className=`terminal-panel__preview-label`;let a=e.path.split(`/`).pop()??e.path;if(i.textContent=`${a} · ${e.mediaType}`,r.appendChild(i),e.mediaType.startsWith(`video/`)){let e=document.createElement(`video`);e.className=`terminal-panel__preview-media`,e.controls=!0,e.autoplay=!0,e.loop=!0,e.muted=!0,e.playsInline=!0,e.src=n,e.addEventListener(`loadedmetadata`,()=>this.refit(),{once:!0}),r.appendChild(e)}else{let e=document.createElement(`img`);e.className=`terminal-panel__preview-media`,e.alt=a,e.src=n,e.addEventListener(`load`,()=>this.refit(),{once:!0}),r.appendChild(e)}this.previewHost.appendChild(r),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.readline&&this.terminal;){let e;try{e=await this.readNextLine()}catch{break}finally{this.abortPromptLoop=null}let t=this.programmaticResolve!==null,n=await this.processLine(e,t);this.programmaticResolve&&=(this.programmaticResolve(n),null)}}readNextLine(){let e=this.terminal,t=this.readline;if(!e||!t)return Promise.reject(Error(`terminal not mounted`));let n=new Promise((e,t)=>{this.abortPromptLoop=t}),r=new Promise((n,r)=>{e.write(``,()=>{e.buffer.active.cursorX>0&&e.write(`\x1B[7m%\x1B[0m\r
|
|
5
5
|
`),t.read(A).then(n,r)})});return Promise.race([r,n])}async processLine(e,t=!1){let n=e.trim();return!n||!t&&await this.tryRunPicker(n)?{stdout:``,stderr:``,exitCode:0}:this.runRemote(n)}async tryRunPicker(e){let t=M(e);if(t)return await this.runRemoteWithLocalPicker(e,t),!0;let n=z(e);if(n)return await this.runRemoteWithUsbPicker(n),!0;let r=B(e);if(r)return await this.runRemoteWithHidPicker(r),!0;let i=H(e);if(i)return await this.runRemoteWithSerialPicker(i),!0;let a=U(e);if(a)return await this.runRemoteWithEsptoolPicker(e,a),!0;let o=R(e);return o?(await this.runRemoteWithScreenShare(o.name),!0):!1}setupInput(){this.terminal&&(this.terminal.onData(e=>{e===` `&&this.handleTab()}),this.terminal.attachCustomKeyEventHandler(e=>!(e.type===`keydown`&&e.key===`Enter`&&this.tabBusy)))}signalInterruptDuringExec(){this.isExecuting&&(this.terminal?.writeln(`^C`),this.client.signal(`SIGINT`))}neutralizeReadlineHistoryPersistence(){let e=this.readline.history;e&&(e.entries=[],e.cursor=-1,e.saveToLocalStorage=()=>void 0,e.restoreFromLocalStorage=()=>void 0)}reanchorReadline(){if(!this.terminal||!this.readline)return;let e=this.readline.state;e&&(e.getTty().anchorRow=this.terminal.buffer.active.cursorY,e.refresh())}async handleTab(){if(!(!this.terminal||!this.readline)&&!(this.isExecuting||this.tabBusy)){this.tabBusy=!0,this.isExecuting=!0;try{let{currentWord:e,isFirstWord:t,compgenCmd:n}=G(this.readline.getLine());this.suppressOutput=!0;let r=``;try{r=(await this.client.exec(n)).stdout}finally{this.suppressOutput=!1}let i=r.split(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./base64-BPBW1Gzr.js";import{t}from"./content-type-_QKWY0B2.js";import{c as n,r,s as i,t as a}from"./proxied-fetch-
|
|
1
|
+
import{r as e}from"./base64-BPBW1Gzr.js";import{t}from"./content-type-_QKWY0B2.js";import{c as n,r,s as i,t as a}from"./proxied-fetch-J19bK2dG.js";import{s as o,t as s}from"./api-endpoint-D8lUKmPu.js";import{c,l,s as u}from"./types-BfwydWt7.js";import{n as d,t as f}from"./rest-paths-Dia19u9P.js";import{t as p}from"./request-body-BF4moGct.js";const m=d;function h(e){return e instanceof Error&&(e.name===`AbortError`||e.name===`TimeoutError`)}function g(e,t,n){if(n)return t;let r=AbortSignal.timeout(e);return t&&typeof AbortSignal.any==`function`?AbortSignal.any([r,t]):r}function _(e){let t=e.fetchImpl??((...e)=>globalThis.fetch(...e)),n=e.resolveUrl??o,r=e.headers??s,i=e.controlTimeoutMs??m;async function a(e,r){try{return await t(n(e),r)}catch(e){return e instanceof Error?e:Error(String(e))}}return{headers:r,send:a,async callJson(e,t,n,o){let s=o?.timeoutMs??i,c=g(s,o?.signal,o?.humanPaced===!0),l={method:e,headers:r({"Content-Type":`application/json`}),...c?{signal:c}:{}};n!==void 0&&(l.body=JSON.stringify(n));let u=await a(t,l);if(u instanceof Error)return{status:0,ok:!1,body:{error:h(u)?`no answer within ${s}ms`:u.message}};let d=await u.json().catch(()=>void 0);return{status:u.status,ok:u.ok,body:d}}}}function v(e,t){let n=e.body?.error;return typeof n==`string`&&n.length>0?n:e.status===0?`${t} (transport unreachable)`:`${t} (HTTP ${e.status})`}function y(e){return e.status===0?void 0:e.status}function b(e,t,n,r){return u(e,t,v(n,r),y(n))}async function x(e,t){let n=await e.callJson(`GET`,f.secretsMasked);return n.ok?Array.isArray(n.body)?{ok:!0,value:n.body}:u(`secrets`,t,`masked secrets response is not an array`):b(`secrets`,t,n,`masked secrets request failed`)}function S(e){return{async listMaskedEnv(){let t=await x(e,`listMaskedEnv`);return t.ok?{ok:!0,value:{entries:t.value}}:t},async getMasked(t){let n=await x(e,`getMasked`);if(!n.ok)return n;let r=n.value.find(e=>e.name===t.name);return r?{ok:!0,value:r}:u(`secrets`,`getMasked`,`no secret named "${t.name}"`,404)},async set(t){let n=t.scope===`persisted`,r=n?f.secretsPersisted:f.secretsSession,i=await e.callJson(`POST`,r,{name:t.name,value:t.value,domains:[...t.domains??[]]});return n&&i.status===404?c(`secrets`,`set`,`this server has no persisted-secret write route (upgrade it; the route shipped in #2823), retry with scope: 'session'`):i.ok?{ok:!0,value:void 0}:b(`secrets`,`set`,i,`set secret failed`)},async delete(t){let n=await e.callJson(`DELETE`,`${f.secretsPersisted}/${encodeURIComponent(t.name)}`);if(!n.ok)return b(`secrets`,`delete`,n,`delete secret failed`);let r=n.body;return{ok:!0,value:{removed:r?.removed??!0,fromSession:r?.fromSession===!0}}}}}async function C(o,s){let c={method:s.method??`GET`,headers:o.headers({...n(s.headers),"X-Target-URL":s.url}),cache:`no-store`};s.signal&&(c.signal=s.signal);let l=p(s);if(l!==void 0){if(l.byteLength>33554432)return u(`network`,`crossOriginFetch`,`request body is ${l.byteLength} bytes, over the ${a}-byte proxy limit`);c.body=l}let d=await o.send(f.fetchProxy,c);if(d instanceof Error)return u(`network`,`crossOriginFetch`,h(d)?`request cancelled`:d.message);if(d.headers.get(`x-proxy-error`)===`1`){let e=await d.text().catch(()=>``);return u(`network`,`crossOriginFetch`,e||`fetch-proxy reported an error`,d.status)}let m=r(),g=Number(d.headers.get(`content-length`)??``);if(Number.isFinite(g)&&g>m)return u(`network`,`crossOriginFetch`,`response body is ${g} bytes, over the ${m}-byte download limit`,d.status);let _;try{_=new Uint8Array(await d.arrayBuffer())}catch(e){return u(`network`,`crossOriginFetch`,h(e)?`response body cancelled`:`response body failed: ${e instanceof Error?e.message:String(e)}`,d.status)}if(_.byteLength>m)return u(`network`,`crossOriginFetch`,`response body is ${_.byteLength} bytes, over the ${m}-byte download limit`,d.status);let v={};d.headers.forEach((e,t)=>{v[t]=e});let y=i(v),b=t(y[`content-type`]??``);return{ok:!0,value:{status:d.status,ok:d.ok,statusText:d.statusText,headers:y,body:b?new TextDecoder().decode(_):e(_),bodyEncoding:b?`text`:`base64`,url:s.url}}}async function w(e,t){let n=t.backend===`s3`?f.s3SignAndForward:f.daSignAndForward,r=await e.callJson(`POST`,n,t.envelope,{timeoutMs:12e4}),i=r.body;return i&&typeof i==`object`&&typeof i.ok==`boolean`?{ok:!0,value:i}:b(`mounts`,`signRequest`,r,`sign-and-forward response is not an envelope`)}async function T(e,t){let n=t.suggestedPattern??t.detail,r=await e.callJson(`POST`,f.sudoApprove,{kind:t.kind,detail:t.detail,suggestedPattern:n,...t.requester?{requester:t.requester}:{},...t.reason?{reason:t.reason}:{},...t.approver?{approver:t.approver}:{}},{humanPaced:!0,...t.signal?{signal:t.signal}:{}});return r.ok?{ok:!0,value:l(r.body,n)}:b(`approvals`,`request`,r,`approval endpoint returned non-OK`)}function E(e){let t=_(e);return{crossOriginFetch:e=>C(t,e),secrets:S(t),signRequest:e=>w(t,e),requestApproval:e=>T(t,e)}}export{E as createRestOps};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,t}from"./base64-ELzoYfwP.js";import{c as n,l as r,r as i,s as a,t as o}from"./proxied-fetch-
|
|
1
|
+
import{r as e,t}from"./base64-ELzoYfwP.js";import{c as n,l as r,r as i,s as a,t as o}from"./proxied-fetch-DiXk_XGs.js";import{t as s}from"./fetch-body-1l9I58Vk.js";import{s as c,t as l}from"./api-endpoint-DuEQRZ4g.js";import{t as u}from"./approval-decision-CS9Wwm5B.js";import{a as d,i as f,n as p,r as m}from"./capability-BgC-ru0t.js";var h=new Set([`GET`,`HEAD`]);function g(e){let n=(e.method??`GET`).toUpperCase();if(e.body===void 0||h.has(n))return;if(e.bodyEncoding===`base64`)return t(e.body);let i=Object.entries(e.headers??{}).find(([e])=>e.toLowerCase()===`content-type`)?.[1]??``;return i&&!r(i)?s(e.body):new TextEncoder().encode(e.body)}var _=m,v=12e4;function y(e){return e instanceof Error&&(e.name===`AbortError`||e.name===`TimeoutError`)}function b(e,t,n){if(n)return t;let r=AbortSignal.timeout(e);return t&&typeof AbortSignal.any==`function`?AbortSignal.any([r,t]):r}function x(e){let t=e.fetchImpl??((...e)=>globalThis.fetch(...e)),n=e.resolveUrl??c,r=e.headers??l,i=e.controlTimeoutMs??_;async function a(e,r){try{return await t(n(e),r)}catch(e){return e instanceof Error?e:Error(String(e))}}return{headers:r,send:a,async callJson(e,t,n,o){let s=o?.timeoutMs??i,c=b(s,o?.signal,o?.humanPaced===!0),l={method:e,headers:r({"Content-Type":`application/json`}),...c?{signal:c}:{}};n!==void 0&&(l.body=JSON.stringify(n));let u=await a(t,l);if(u instanceof Error)return{status:0,ok:!1,body:{error:y(u)?`no answer within ${s}ms`:u.message}};let d=await u.json().catch(()=>void 0);return{status:u.status,ok:u.ok,body:d}}}}function S(e,t){let n=e.body?.error;return typeof n==`string`&&n.length>0?n:e.status===0?`${t} (transport unreachable)`:`${t} (HTTP ${e.status})`}function C(e){return e.status===0?void 0:e.status}function w(e,t,n,r){return f(e,t,S(n,r),C(n))}async function T(e,t){let n=await e.callJson(`GET`,p.secretsMasked);return n.ok?Array.isArray(n.body)?{ok:!0,value:n.body}:f(`secrets`,t,`masked secrets response is not an array`):w(`secrets`,t,n,`masked secrets request failed`)}function E(e){return{async listMaskedEnv(){let t=await T(e,`listMaskedEnv`);return t.ok?{ok:!0,value:{entries:t.value}}:t},async getMasked(t){let n=await T(e,`getMasked`);if(!n.ok)return n;let r=n.value.find(e=>e.name===t.name);return r?{ok:!0,value:r}:f(`secrets`,`getMasked`,`no secret named "${t.name}"`,404)},async set(t){let n=t.scope===`persisted`,r=n?p.secretsPersisted:p.secretsSession,i=await e.callJson(`POST`,r,{name:t.name,value:t.value,domains:[...t.domains??[]]});return n&&i.status===404?d(`secrets`,`set`,`this server has no persisted-secret write route (upgrade it; the route shipped in #2823), retry with scope: 'session'`):i.ok?{ok:!0,value:void 0}:w(`secrets`,`set`,i,`set secret failed`)},async delete(t){let n=await e.callJson(`DELETE`,`${p.secretsPersisted}/${encodeURIComponent(t.name)}`);if(!n.ok)return w(`secrets`,`delete`,n,`delete secret failed`);let r=n.body;return{ok:!0,value:{removed:r?.removed??!0,fromSession:r?.fromSession===!0}}}}}async function D(t,s){let c={method:s.method??`GET`,headers:t.headers({...n(s.headers),"X-Target-URL":s.url}),cache:`no-store`};s.signal&&(c.signal=s.signal);let l=g(s);if(l!==void 0){if(l.byteLength>33554432)return f(`network`,`crossOriginFetch`,`request body is ${l.byteLength} bytes, over the ${o}-byte proxy limit`);c.body=l}let u=await t.send(p.fetchProxy,c);if(u instanceof Error)return f(`network`,`crossOriginFetch`,y(u)?`request cancelled`:u.message);if(u.headers.get(`x-proxy-error`)===`1`){let e=await u.text().catch(()=>``);return f(`network`,`crossOriginFetch`,e||`fetch-proxy reported an error`,u.status)}let d=i(),m=Number(u.headers.get(`content-length`)??``);if(Number.isFinite(m)&&m>d)return f(`network`,`crossOriginFetch`,`response body is ${m} bytes, over the ${d}-byte download limit`,u.status);let h;try{h=new Uint8Array(await u.arrayBuffer())}catch(e){return f(`network`,`crossOriginFetch`,y(e)?`response body cancelled`:`response body failed: ${e instanceof Error?e.message:String(e)}`,u.status)}if(h.byteLength>d)return f(`network`,`crossOriginFetch`,`response body is ${h.byteLength} bytes, over the ${d}-byte download limit`,u.status);let _={};u.headers.forEach((e,t)=>{_[t]=e});let v=a(_),b=r(v[`content-type`]??``);return{ok:!0,value:{status:u.status,ok:u.ok,statusText:u.statusText,headers:v,body:b?new TextDecoder().decode(h):e(h),bodyEncoding:b?`text`:`base64`,url:s.url}}}async function O(e,t){let n=t.backend===`s3`?p.s3SignAndForward:p.daSignAndForward,r=await e.callJson(`POST`,n,t.envelope,{timeoutMs:v}),i=r.body;return i&&typeof i==`object`&&typeof i.ok==`boolean`?{ok:!0,value:i}:w(`mounts`,`signRequest`,r,`sign-and-forward response is not an envelope`)}async function k(e,t){let n=t.suggestedPattern??t.detail,r=await e.callJson(`POST`,p.sudoApprove,{kind:t.kind,detail:t.detail,suggestedPattern:n,...t.requester?{requester:t.requester}:{},...t.reason?{reason:t.reason}:{},...t.approver?{approver:t.approver}:{}},{humanPaced:!0,...t.signal?{signal:t.signal}:{}});return r.ok?{ok:!0,value:u(r.body,n)}:w(`approvals`,`request`,r,`approval endpoint returned non-OK`)}function A(e){let t=x(e);return{crossOriginFetch:e=>D(t,e),secrets:E(t),signRequest:e=>O(t,e),requestApproval:e=>k(t,e)}}export{A as createRestOps};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{l as e,n as t,t as n}from"./almost-bash-shell-headless-
|
|
1
|
+
import{l as e,n as t,t as n}from"./almost-bash-shell-headless-CsDQjWSX.js";import{n as r}from"./browser-BM_DFzrh.js";import{c as i}from"./sudoers-BdBYQPUn.js";import{r as a}from"./sudo-fs-C6r_MIIY.js";import{n as o}from"./jsh-discovery-CnvNKojr.js";import{o as s}from"./just-bash-compat-B-SPHuh_.js";import{n as c,r as l}from"./supervisor-DVWawJTM.js";function u(t,n){return new Map(Object.entries({HOME:e,PATH:o,USER:`user`,SHELL:`/bin/bash`,TMPDIR:`/tmp`,PWD:t.cwd,...n,...t.env}))}function d(e,t,n,i){let a=u(t,i);return r({fs:e,cwd:t.cwd,env:a,stdin:s(``),exec:(e,r)=>n.exec(e,{env:r?.env??Object.fromEntries(a),cwd:r?.cwd??t.cwd,args:r?.args,...r?.env===void 0?{}:{replaceEnv:!0}})})}const f={requestApproval:async()=>({decision:`deny`})};async function p(e){let r=h(e.fs,e.sudo),i=new t(r),a=new n({fs:r,cwd:`/workspace`,processManager:e.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:e.fs,processManager:e.processManager,lickManager:e.lickManager,...e.realmFactory?{realmFactory:e.realmFactory}:{},buildContext:e=>m(i,e,o)}),u=(await l(e.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 a(e,{broker:t?.broker??f,getPolicy:t?.getPolicy??i,defaultDisposition:`allow`})}export{p as restoreEnabledJshdUnits};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./subcommand-flags-BZi7j78Q.js";import{r as t,t as n}from"./subcommand-help-CgO7wRS5.js";import{i as r,o as i}from"./jsh-discovery-CnvNKojr.js";import{a,i as o,r as s,s as c,t as l}from"./supervisor-
|
|
1
|
+
import{t as e}from"./subcommand-flags-BZi7j78Q.js";import{r as t,t as n}from"./subcommand-help-CgO7wRS5.js";import{i as r,o as i}from"./jsh-discovery-CnvNKojr.js";import{a,i as o,r as s,s as c,t as l}from"./supervisor-DVWawJTM.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-
|
|
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-DVWawJTM.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[...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
|
`)?`
|
|
@@ -42,7 +42,7 @@ Examples:
|
|
|
42
42
|
gelatiere suggest "$TMPDIR/candidates.json" && gelatiere deliver
|
|
43
43
|
gelatiere dismiss skill-github
|
|
44
44
|
gelatiere use-cases --limit 3 --json
|
|
45
|
-
`,i=[`--scoop`],a=[`--limit`],o=[...i,...a];function s(e){return{stdout:e,stderr:``,exitCode:0}}function c(e){return{stdout:``,stderr:`gelatiere: ${e}\n`,exitCode:1}}const l=`kernel host has not booted yet — try again in a moment`;function u(){let e=globalThis.__slicc_gelatiere;return e&&typeof e.roots==`function`?e:null}function d(){return import(`./gelatiere-store-
|
|
45
|
+
`,i=[`--scoop`],a=[`--limit`],o=[...i,...a];function s(e){return{stdout:e,stderr:``,exitCode:0}}function c(e){return{stdout:``,stderr:`gelatiere: ${e}\n`,exitCode:1}}const l=`kernel host has not booted yet — try again in a moment`;function u(){let e=globalThis.__slicc_gelatiere;return e&&typeof e.roots==`function`?e:null}function d(){return import(`./gelatiere-store-BnAzlDHe.js`)}async function f(t,n){let r=e(t,{bool:[`--reset`]});if(`error`in r)return c(r.error);let i=u();if(!i)return c(l);let a=await(await d()).loadGelatiereConfig(n),o=``;if(r.bools.has(`--reset`)){let e=await i.unregisterOwned();o=e.length?`Dropped ${e.length} gelatiere unit(s): ${e.join(`, `)}\n`:``}let f;try{f=await i.ensureUnit(a.allowedCommands)}catch(e){return c(e instanceof Error?e.message:String(e))}let m=await i.ensureNightly(a.nightly);return s(o+`${f.created?`Created`:`Found`} the gelatiere (${f.jid}, folder ${f.folder})\n`+p(f.allowList)+`${m.created?`Registered`:`Found`} nightly pass: cron "${m.cron}" (${m.id})\nSuggestions render in the suggestions card; \`gelatiere run\` asks for a pass now.
|
|
46
46
|
`)}function p(e){return e===`updated`?`Updated its command allow-list from GELATIERE.md
|
|
47
47
|
`:e===`deferred`?`Left its command allow-list alone: the gelatiere is mid-pass and applying it would
|
|
48
48
|
cancel the pass — run \`gelatiere init\` again once it is idle
|
|
@@ -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=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=new Set([`type`,`key`,`exec`,`add`]),N=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=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)}
|
|
67
|
+
`,Ne=[`-c`,`--computer`,`--size`,`--at`,`--hold`,`--repeat`,`--fps`,`-n`,`--name`,`--__resolved`,`-V`,`--duration`,`--sim`,`--display`],j=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=new Set([`type`,`key`,`exec`,`add`]),N=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=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):new Map;return t.set(oe,`wasm`),t}async function et(e){let{runFfmpeg:t}=await import(`./run-C1e4W7pJ.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):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,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=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=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>
|
|
@@ -75,12 +75,12 @@ v86 guests register as v86:<name> on \`v86 start\`. Prefer this command;
|
|
|
75
75
|
<button class="sprinkle-btn sprinkle-btn--primary" data-action="approve" data-picker="screenshare">Share screen</button>
|
|
76
76
|
</div>
|
|
77
77
|
</div>
|
|
78
|
-
`}async function
|
|
78
|
+
`}async function dt(){let e=o();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=s.generateId(),n=!1;ct(t);try{let r=c({id:t,html:ut(),onAction:async(e,t)=>{if(e!==`approve`)return{denied:!0};let n=t;return n?.cancelled?{cancelled:!0}:n?.error?{error:String(n.error)}:n?.granted&&typeof n.handle==`string`?{approved:!0,handle:n.handle}:{error:`screen share returned an unexpected response`}}},e.onUpdate).catch(e=>{if(n)return G;throw e}),i,a=new Promise(e=>{i=setTimeout(()=>{n=!0,s.cancel(t,`screen share: timed out`),e(G)},12e4)}),o=await Promise.race([r,a]);if(i&&clearTimeout(i),o===G)throw Error(`add screen: timed out after 120s waiting for user approval`);let l=o;if(l.denied)throw Error(`add screen: denied by user`);if(l.cancelled)throw Error(`add screen: cancelled`);if(l.error)throw Error(`add screen: ${l.error}`);if(!l.approved||!l.handle)throw Error(`add screen: no display selected`);return{handle:l.handle}}finally{lt(t)}}function K(e,t,n){let r=e.list(),i=t=>e.nameOf(t);if(t)return ft(r,t,i);let a=n.get(`COMPUTER`);if(a)return ft(r,a,i);let o=e.lastUsedId();return o&&e.get(o)?{id:o}:r.length===1?{id:r[0].id}:r.length===0?{error:"no computers registered — `computer add tab <id>`, `computer add screen`, `computer add ssh <follower>`, `computer add url <http(s)://base>`, or `v86 start`"}:{error:`which computer? pass -c <id> or \`computer use\`. registered: ${r.map(e=>e.id).join(`, `)}`}}function ft(e,t,n){let r=e.find(e=>e.id===t);if(r)return{id:r.id};let i=e.filter(e=>n(e.id)===t);if(i.length===1)return{id:i[0].id};if(i.length>1)return pt(t,i);let a=e.filter(e=>e.id.endsWith(`:${t}`)||e.title===t||e.id===`v86:${t}`||e.id===`tab:${t}`||e.id===`screen:${t}`||e.id===`ssh:${t}`||e.id===`url:${t}`);if(a.length===1)return{id:a[0].id};if(a.length>1)return pt(t,a);let o=e.map(e=>{let t=n(e.id);return t?`${e.id} (${t})`:e.id}).join(`, `);return{error:`unknown computer '${t}'${o?` — registered: ${o}`:` — none registered`}`}}function pt(e,t){return{error:`ambiguous computer '${e}' matches ${t.map(e=>e.id).join(`, `)}`}}var mt=e({runComputer:()=>Dt});function q(e){return{stdout:``,stderr:`computer: ${e}\n`,exitCode:1}}function J(e=``){return{stdout:e,stderr:``,exitCode:0}}function ht(){return globalThis.__slicc_pm??null}function gt(e){return e.browser??globalThis.__slicc_browser??null}function Y(e){return e.panelRpc??globalThis.__slicc_panelRpc??i()}function _t(e){return e.sudoBroker?e.sudoBroker:globalThis.__slicc_sudo??null}function vt(e,t){let n=Y(e);if(n)return{async capture(e){let r=await n.call(`tray-computer-native`,{runtimeId:t,action:`capture`,fps:e.fps,maxWidth:e.maxWidth,display:e.display,watch:e.watch},{timeoutMs:6e4});if(!r.jpeg)throw Error(`empty native screenshot from follower`);let{bytesFromBase64:i}=await import(`./frame-bytes-B4FpkDwW.js`).then(e=>e.a);return{bytes:i(r.jpeg),mime:`image/jpeg`,width:r.width??0,height:r.height??0,nativeWidth:r.nativeWidth??r.width??0,nativeHeight:r.nativeHeight??r.height??0}},onFrame(e,r){let i=import(`./frame-bytes-B4FpkDwW.js`).then(e=>e.a);return n.onEvent(a,n=>{let a=n;if(!a||a.runtimeId!==t||a.display!==r?.display)return;if(a.ended){r?.onEnd?.(Error(a.error));return}let o=a;o.jpeg&&i.then(({bytesFromBase64:t})=>{e({bytes:t(o.jpeg),mime:`image/jpeg`,width:o.width??0,height:o.height??0,nativeWidth:o.nativeWidth??o.width??0,nativeHeight:o.nativeHeight??o.height??0})})})},unwatch(e){n.call(`tray-computer-native`,{runtimeId:t,action:`unwatch`,display:e?.display}).catch(()=>{})},async input(e,r){await n.call(`tray-computer-native`,{runtimeId:t,action:`input`,events:e,display:r?.display})}}}function yt(e){return e.listFollowers?.()??n()}const bt={platform:`darwin`,tools:[],capture:null,input:`none`};async function xt(e,t,n,r,i){if(!n)return bt;try{return await i(e,t)}catch(e){let t=e instanceof Error?e.message:String(e);return r?bt:{error:t.startsWith(`add ssh:`)?t:`add ssh: ${t}`}}}async function St(e,t,n,r,i){if(i===`none`&&!r)return q(`add ssh: --allow-input needs cliclick, xdotool, ydotool, or idb on the follower (screenshot-only otherwise)`);let a=_t(e);if(!a)return q(`add ssh: --allow-input needs sudo approval (not configured)`);let o=await a.requestApproval({kind:`command`,detail:`computer add ssh ${t.runtimeId}${n?` --sim ${n}`:``} --allow-input`,reason:`grant pointer and keyboard control of the follower desktop`});return o.decision===`deny`?q(d(`add ssh`,o)):null}async function Ct(e,t,n,i){if(e.sshExec)return e.sshExec(t,n,i);let a=Y(e);if(!a)throw Error(`no panel RPC in this float`);let o=i??3e4,s=await a.call(`tray-exec`,{runtimeId:t,command:n,execToken:`computer-ssh-${Date.now().toString(36)}`,timeoutMs:o},{timeoutMs:o+r});if(s.error)throw Error(s.error);return{stdout:s.stdout,stderr:s.stderr,exitCode:s.exitCode}}function wt(e,t){let n=t=>t.runtimeId.endsWith(e)||t.runtimeId.includes(e),r=t.filter(e=>e.exec||e.computer),i=r.find(t=>t.runtimeId===e);if(i)return i;let a=r.filter(n);if(a.length===1)return a[0];if(a.length>1)return{error:`add ssh: ambiguous follower '${e}'`};let o=t.find(e=>!e.exec&&!e.computer&&e.motd&&n(e));return o?{error:`add ssh: follower '${o.runtimeId}' advertises no shell and no native capture — ${o.motd}`}:{error:`add ssh: no exec-capable or computer-capable follower '${e}' — try \`host\` (an entry tagged [ssh] or [computer] is eligible; \`ssh --list\` shows exec targets only)`}}function Tt(e){let t=[];return e.kind===`screen`&&t.push(`display slot`),e.kind===`ssh`&&t.push(e.capabilities.inputAllowed?`input`:`view-only`),t.length>0?` [${t.join(`, `)}]`:``}function Et(e){return e.registry?e.registry:ie()??ae(e.processManager??ht())}async function Dt(e,t,n={}){if(e.length===0||e[0]===`--help`||e[0]===`-h`||e[0]===`help`)return J(A);let r=Ie(e);if(r.rest.length===0)return J(A);let i=r.rest[0];if(u(r.rest.slice(1),{valueFlags:[...Ne]}))return J(l(`computer`,i,A,{prefix:`computer`}));let a;try{a=Le(r.rest)}catch(e){return q(e instanceof Error?e.message:String(e))}let o=Et(n),s=[],c=[];for(let e of a)try{let i=await Ot(e,r,t,n,o);if(i.exitCode!==0)return i;i.stdout&&s.push(i.stdout.replace(/\n$/u,``)),i.stderr&&c.push(i.stderr.replace(/\n$/u,``))}catch(e){return q(e instanceof Error?e.message:String(e))}let d=hn(s.filter(Boolean).join(`
|
|
79
79
|
`),a,o,r.computer,t,r.json);return{stdout:d?`${d}\n`:``,stderr:c.length?`${c.join(`
|
|
80
|
-
`)}\n`:``,exitCode:0}}async function
|
|
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}${
|
|
82
|
-
`)}\n`)}async function
|
|
83
|
-
`)}\n`)}async function
|
|
84
|
-
`);return{stdout:s?`${s}\n`:``,stderr:``,exitCode:o.exitCode}}async function
|
|
85
|
-
`).replace(/\\t/gu,` `);if(!t)throw Error(`type: no text supplied`);return[{type:`text`,text:t}]}function
|
|
86
|
-
`).some(e=>e.trim()===s)?e:e?`${s}\n${e}`:s}function Z(e,t,n){let r=K(e,t,Q(n));if(`error`in r)return q(r.error);let i=e.getEntry(r.id);return i?{id:r.id,backend:i.backend,descriptor:i.descriptor}:q(`unknown computer '${r.id}'`)}function Q(e){let t=e.env;if(t instanceof Map)return t;let n=new Map;if(t&&typeof t==`object`)for(let[e,r]of Object.entries(t))r!==void 0&&n.set(e,r);return n}function $(e){return e.id.replace(/[/:]/gu,`_`)}export{he as n,b as r,
|
|
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 Lt(e.args,t.computer,n,i);case`use`:return Rt(e.args,i);case`info`:return zt(t,n,i);case`screenshot`:return Bt(e.args,t,n,i);case`text`:return Vt(t,n,i);case`watch`:return Ht(e.args,t,n,i,r);case`record`:return Gt(e.args,t,n,i,r);case`exec`:return Yt(e.args,t,n,i);default:return Xt(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
|
+
`);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`?It(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-J19bK2dG.js`).then(e=>e.i),{wrapUrlComputerFetch:n}=await import(`./url-DkaC0RVl.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-DkaC0RVl.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-DPyBpV4Z.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,t,n,r){let i=V(e,[`-n`,`--name`]),a=V(e,[`--__resolved`]);if(!a){if(!o())return q("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");try{a=(await dt()).handle}catch(e){return q(e instanceof Error?e.message:String(e))}}let s=Y(n);if(!s)return q(`add screen: no panel RPC in this float`);let{BridgedScreenComputerBackend:c,screenComputerId:l}=await import(`./screen-DVI9ujIL.js`),u=new c(s,a,{title:i??`Display`},()=>{r.refresh(l(a))}),d=r.register(u,{name:i});return r.use(d.id),J(`registered ${d.id} (${i??d.title})\n`)}async function Lt(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 Rt(e,t){let n=H(e)[0];if(!n)return q(`use: requires <id>`);let r=K(t,n,new Map);return`error`in r?q(r.error):(t.use(r.id),J(`using ${r.id}\n`))}function zt(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 Bt(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
|
+
`)}\n`)}async function Vt(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 Ht(e,t,n,r,i){let a=Z(r,t.computer,n);if(`exitCode`in a)return a;let o=Jt(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 Ut(e){return`recordClip`in e&&typeof e.recordClip==`function`}function Wt(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 Gt(e,t,n,r,i){let a=Z(r,t.computer,n);if(`exitCode`in a)return a;let o,s;try{o=Wt(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=Ut(a.backend)?await a.backend.recordClip(c):await qt(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}${Kt(d)} → ${u}\n`)}function Kt(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 qt(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 Jt(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 Yt(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
|
+
`);return{stdout:s?`${s}\n`:``,stderr:``,exitCode:o.exitCode}}async function Xt(e,t,n,r,i){let a=Z(r,t.computer,n);if(`exitCode`in a)return a;let o=nn(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 en(a,n,r,i)}function Zt(e,t){return t.isWatching?t.isWatching(e):y()?.isWatching(e)??!1}function Qt(e,t){let n=e.descriptor.capabilities.frames===`push`;return e.backend.screenshot({format:`jpeg`,maxWidth:t,...n?{pull:!0}:{}})}async function $t(e,t,n){if(!(e.descriptor.capabilities.frames===`push`&&Zt(e.id,n)))return Qt(e,t);let r=new AbortController,i=n.postActionTimeoutMs??5e3;try{return await tn(e.backend.screenshot({format:`jpeg`,maxWidth:t,signal:r.signal}),i)}catch{return r.abort(),Qt(e,t)}}async function en(e,t,n,r){let i=e.descriptor.lastShot?.width??768,a;try{a=await $t(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 tn(e,t){return new Promise((n,r)=>{let i=setTimeout(()=>r(Error(`timed out`)),t);e.then(e=>{clearTimeout(i),n(e)},e=>{clearTimeout(i),r(e)})})}function nn(e,t,n){let r=(e,r)=>be(e,r,n.lastShot,t);switch(e.verb){case`mousemove`:return rn(e.args,r);case`click`:case`mousedown`:case`mouseup`:return an(e.verb,e.args,r);case`drag`:return on(e.args,r,n.capabilities.mouse);case`scroll`:return sn(e.args,r);case`key`:case`keydown`:case`keyup`:return cn(e.verb,e.args);case`type`:return ln(e.args);case`wait`:return un(e.args);default:throw Error(`internal: ${e.verb} is not an input verb`)}}function rn(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 an(e,t,n){let r=H(t),{button:i,skip:a}=dn(r),o=R(t)??pn(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 on(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 sn(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 cn(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 ln(e){let t=e.join(` `).replace(/\\n/gu,`
|
|
85
|
+
`).replace(/\\t/gu,` `);if(!t)throw Error(`type: no text supplied`);return[{type:`text`,text:t}]}function un(e){let t=Number(H(e)[0]);if(!Number.isFinite(t))throw Error(`wait: requires <ms>`);return[{type:`wait`,ms:t}]}function dn(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:fn(e[0]),skip:1}:{button:1,skip:0}}function fn(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 pn(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 mn=new Set([`ls`,`add`,`rm`,`use`]);function hn(e,t,n,r,i,a){if(a||!t.some(e=>!mn.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(`
|
|
86
|
+
`).some(e=>e.trim()===s)?e:e?`${s}\n${e}`:s}function Z(e,t,n){let r=K(e,t,Q(n));if(`error`in r)return q(r.error);let i=e.getEntry(r.id);return i?{id:r.id,backend:i.backend,descriptor:i.descriptor}:q(`unknown computer '${r.id}'`)}function Q(e){let t=e.env;if(t instanceof Map)return t;let n=new Map;if(t&&typeof t==`object`)for(let[e,r]of Object.entries(t))r!==void 0&&n.set(e,r);return n}function $(e){return e.id.replace(/[/:]/gu,`_`)}export{he as n,b as r,Dt as runComputer,mt as t};
|
|
@@ -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-
|
|
95
|
+
`}async function d(n,r){let i=await import(`./account-store-D0ciUU3U.js`).then(e=>e.t),a=await import(`./providers-DLk_1jra.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-Dn_Xz1FZ.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-Dn_Xz1FZ.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-D0ciUU3U.js`).then(e=>e.t),{getRegisteredProviderConfig:r,getRegisteredProviderIds:i}=await import(`./providers-DLk_1jra.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,13 +100,13 @@ 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-
|
|
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-D0ciUU3U.js`).then(e=>e.t),{getRegisteredProviderConfig:i,getRegisteredProviderIds:a}=await import(`./providers-DLk_1jra.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-D0ciUU3U.js`).then(e=>e.t),{getRegisteredProviderConfig:r,getRegisteredProviderIds:i}=await import(`./providers-DLk_1jra.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
|
`)+`
|
|
107
107
|
`,stderr:``,exitCode:1};let f=A(a,await j(o));return l.push(...f.lines),{stdout:l.join(`
|
|
108
108
|
`)+`
|
|
109
|
-
`,stderr:``,exitCode:f.exitCode}}function A(e,t){let n=[` silent renewal: DECLINED — the provider returned no token without user`,` interaction (typically login_required: the upstream session has ended).`];if(t?.status===`rejected`)return{lines:[...n,` upstream check: REJECTED — the provider no longer accepts the stored`,` token${D(t.detail)}. Local expiry was never proof of validity.`,...M(e)],exitCode:3};if(t?.status===`accepted`){let e=t.userName?` (as ${t.userName})`:``;return{lines:[...n,` upstream check: ACCEPTED${e} — the stored token still works, so callers`,` are not blocked; only the renewal itself did not happen. No login needed.`],exitCode:1}}let r=[` Unconfirmed: provider renewal hooks also return no token when the renewal`,` call itself fails, so this alone does not prove the session ended.`];return t?.detail&&r.push(` (upstream check: ${t.detail})`),{lines:[...n,...r,...N(e)],exitCode:1}}async function j(e){return e.onValidateToken?e.onValidateToken().catch(e=>({status:`unknown`,detail:e instanceof Error?e.message:String(e)})):null}function M(e){return[``,` → Fix: oauth-token ${e} --force-login`,` Opens a consent window, so a human has to be at the keyboard: an`,` unattended agent should stop and ask the user to re-authorise rather`,` than retrying or probing further.`,` (Diagnostics, if a human is present: browser DevTools console,`,` "[oauth-service] Extension OAuth error".)`]}function N(e){return[``,` → Likely fix: oauth-token ${e} --force-login`,` Opens a consent window, so a human has to be at the keyboard. If the`,` failure was transient instead, a later retry succeeds on its own.`,` (Diagnostics: browser DevTools console, "[oauth-service] Extension`,` OAuth error".)`]}function P(e){return[``,` → The renewal call failed rather than being declined; this is often`,` transient (offline, 5xx, bridge not up). Retry it.`,` If it keeps failing: oauth-token ${e} --force-login (needs a human).`]}function F(e){return e?e.expired?`present, ${I(e.expiresAt)} — renewal needed`:`present, ${I(e.expiresAt)}, not validated upstream`:`none stored`}function I(e){if(!e)return`no local expiry recorded`;let t=e-Date.now();if(t<=0)return`past its local expiry`;if(t<6e4)return`local expiry in under a minute`;let n=Math.floor(t/36e5),r=Math.floor(t%36e5/6e4);return`local expiry in ${n>0?`${n}h ${r}m`:`${r}m`}`}async function L(e,t,n){let{parseInterceptOAuthConfig:r}=await import(`./intercepted-oauth-B0tP4D7f.js`).then(e=>e.n),{createInterceptingOAuthLauncherForCurrentRuntime:i}=await import(`./oauth-service-
|
|
109
|
+
`,stderr:``,exitCode:f.exitCode}}function A(e,t){let n=[` silent renewal: DECLINED — the provider returned no token without user`,` interaction (typically login_required: the upstream session has ended).`];if(t?.status===`rejected`)return{lines:[...n,` upstream check: REJECTED — the provider no longer accepts the stored`,` token${D(t.detail)}. Local expiry was never proof of validity.`,...M(e)],exitCode:3};if(t?.status===`accepted`){let e=t.userName?` (as ${t.userName})`:``;return{lines:[...n,` upstream check: ACCEPTED${e} — the stored token still works, so callers`,` are not blocked; only the renewal itself did not happen. No login needed.`],exitCode:1}}let r=[` Unconfirmed: provider renewal hooks also return no token when the renewal`,` call itself fails, so this alone does not prove the session ended.`];return t?.detail&&r.push(` (upstream check: ${t.detail})`),{lines:[...n,...r,...N(e)],exitCode:1}}async function j(e){return e.onValidateToken?e.onValidateToken().catch(e=>({status:`unknown`,detail:e instanceof Error?e.message:String(e)})):null}function M(e){return[``,` → Fix: oauth-token ${e} --force-login`,` Opens a consent window, so a human has to be at the keyboard: an`,` unattended agent should stop and ask the user to re-authorise rather`,` than retrying or probing further.`,` (Diagnostics, if a human is present: browser DevTools console,`,` "[oauth-service] Extension OAuth error".)`]}function N(e){return[``,` → Likely fix: oauth-token ${e} --force-login`,` Opens a consent window, so a human has to be at the keyboard. If the`,` failure was transient instead, a later retry succeeds on its own.`,` (Diagnostics: browser DevTools console, "[oauth-service] Extension`,` OAuth error".)`]}function P(e){return[``,` → The renewal call failed rather than being declined; this is often`,` transient (offline, 5xx, bridge not up). Retry it.`,` If it keeps failing: oauth-token ${e} --force-login (needs a human).`]}function F(e){return e?e.expired?`present, ${I(e.expiresAt)} — renewal needed`:`present, ${I(e.expiresAt)}, not validated upstream`:`none stored`}function I(e){if(!e)return`no local expiry recorded`;let t=e-Date.now();if(t<=0)return`past its local expiry`;if(t<6e4)return`local expiry in under a minute`;let n=Math.floor(t/36e5),r=Math.floor(t%36e5/6e4);return`local expiry in ${n>0?`${n}h ${r}m`:`${r}m`}`}async function L(e,t,n){let{parseInterceptOAuthConfig:r}=await import(`./intercepted-oauth-B0tP4D7f.js`).then(e=>e.n),{createInterceptingOAuthLauncherForCurrentRuntime:i}=await import(`./oauth-service-Dn_Xz1FZ.js`),a=await R(e,t,n);if(!a.ok)return a.result;let o=r(a.value);if(!o.ok)return H(`oauth-token: invalid intercept config: ${o.error}`);let s=await i();if(!s)return H(`oauth-token: no CDP transport available in this runtime; --intercept needs the controlled browser.`);let c=await s(o.config);return c?{stdout:`${c}\n`,stderr:``,exitCode:0}:H(`oauth-token: intercept timed out or was cancelled`)}function R(e,t,n){return e.values.has(`--from-file`)?z(e.values.get(`--from-file`),n):B(e,t)}async function z(e,t){if(!e)return{ok:!1,result:H(`oauth-token: --from-file requires a path`)};try{let n=t.fs.resolvePath(t.cwd,e),r=await t.fs.readFile(n),i=typeof r==`string`?r:new TextDecoder().decode(r);return{ok:!0,value:JSON.parse(i)}}catch(t){return{ok:!1,result:H(`oauth-token: failed to read ${e}: ${t instanceof Error?t.message:String(t)}`)}}}function B(e,t){let n=e.values.get(`--authorize-url`),r=e.values.get(`--redirect-pattern`);if(!n)return{ok:!1,result:H(`oauth-token: --authorize-url is required`)};if(!r)return{ok:!1,result:H(`oauth-token: --redirect-pattern is required`)};let i=V(t);return i.ok?{ok:!0,value:{authorizeUrl:n,redirectUriPattern:r,onCapture:e.bools.has(`--leave-tab`)?`leave`:`close`,...i.value.length>0?{rewrite:i.value}:{}}}:i}function V(e){let t=[];for(let n=0;n<e.length;n++){let r=e[n];if(r===`--`)break;if(r!==`--rewrite`&&!r.startsWith(`--rewrite=`))continue;let i=r===`--rewrite`?e[++n]:r.slice(10);if(!i)return{ok:!1,result:H(`oauth-token: --rewrite requires a value`)};let a=i.split(`=`);if(a.length<3)return{ok:!1,result:H(`oauth-token: --rewrite "${i}" must be "<match>=<key>=<value>"`)};let[o,s,...c]=a;t.push({match:o,appendParams:{[s]:c.join(`=`)}})}return{ok:!0,value:t}}function H(e){return{stdout:``,stderr:`${e}\n`,exitCode:1}}function U(e,t,n,r){let i=t().filter(e=>n(e)?.isOAuth);if(i.length===0)return{stdout:`No OAuth providers configured.
|
|
110
110
|
`,stderr:``,exitCode:0};let a=[],o=!1;for(let e of i){let t=r(e);if(!t){a.push(`${e} (no token)`);continue}o=!0,a.push(`${e} (${W(t).join(`, `)})`)}return o&&a.push(``,`Local state only — a held token can already be rejected upstream.`,`Verify with "oauth-token --check <id>"; re-consent with "oauth-token <id> --force-login".`),{stdout:a.join(`
|
|
111
111
|
`)+`
|
|
112
112
|
`,stderr:``,exitCode:0}}function W(e){let t=[e.userName?`token held for ${e.userName}`:`token held`];return t.push(I(e.expiresAt)),e.expired&&t.push(`renewal needed`),e.scopes&&t.push(`scopes: ${e.scopes}`),t}export{d as runOAuthToken};
|