sliccy 6.232.3 → 6.233.1
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/README.md +2 -2
- package/dist/node-server/chrome-launch.d.ts +2 -0
- package/dist/node-server/chrome-launch.js +11 -1
- package/dist/node-server/index.js +1 -0
- package/dist/ui/.vite/manifest.json +282 -278
- package/dist/ui/assets/{SKILL-DfQfFV0B.js → SKILL-BcBnRJhU.js} +1 -1
- package/dist/ui/assets/{SKILL-CDWYTQKl.js → SKILL-BsfbaE8W.js} +1 -1
- package/dist/ui/assets/SKILL-Dk6kide7.js +1 -0
- package/dist/ui/assets/account-store-BGptY10e.js +1 -0
- package/dist/ui/assets/account-store-DiRMol3Q.js +2 -0
- package/dist/ui/assets/adobe-0-GN_JoC.js +2 -0
- package/dist/ui/assets/adobe-C5m6iBnw.js +1 -0
- package/dist/ui/assets/agent-help-B-gfDDn0.js +103 -0
- package/dist/ui/assets/agent-images-DaBj3QYk.js +3 -0
- package/dist/ui/assets/{agent-panels-cs_l6Y3W.js → agent-panels-DSSejQNd.js} +1 -1
- package/dist/ui/assets/{agent-tools-BzWhYeEw.js → agent-tools-WbCq5rUh.js} +1 -1
- package/dist/ui/assets/{almost-bash-shell-headless-B82NrHyV.js → almost-bash-shell-headless-DokddEN1.js} +91 -175
- package/dist/ui/assets/{apply-layout-DHjJQg3o.js → apply-layout-BnGFAeHm.js} +1 -1
- package/dist/ui/assets/{apps-CsJCa1W4.js → apps-CyIXX0a_.js} +1 -1
- package/dist/ui/assets/{azure-openai-DBSL3940.js → azure-openai-DXS5rPbd.js} +1 -1
- package/dist/ui/assets/{azure-openai-0xShokH8.js → azure-openai-PyZ816ly.js} +1 -1
- package/dist/ui/assets/{backend-hostfs-DAjlRr0I.js → backend-hostfs-DmMZ1Vnt.js} +1 -1
- package/dist/ui/assets/{capability-BsxMoeMg.js → capability-6V-AYPSJ.js} +2 -2
- package/dist/ui/assets/{cdp-bOHrUn4t.js → cdp-BppspuSz.js} +1 -1
- package/dist/ui/assets/{cerebras-Sczc8yWr.js → cerebras-BeROsc2d.js} +1 -1
- package/dist/ui/assets/{cerebras-CJtdoZMJ.js → cerebras-CVnpQN6i.js} +1 -1
- package/dist/ui/assets/{client-DWx5wn8j.js → client-D5zdJCVT.js} +1 -1
- package/dist/ui/assets/{codemode-tool-BH0jhnKf.js → codemode-tool-FcP24sWd.js} +1 -1
- package/dist/ui/assets/{composer-speech-Dt5JE2sh.js → composer-speech-HZyA7vHh.js} +1 -1
- package/dist/ui/assets/{connect-surface-BO_rHeDZ.js → connect-surface-is2QooP6.js} +1 -1
- package/dist/ui/assets/{connection-manager-E3P4E4Le.js → connection-manager-D0LxHiWb.js} +1 -1
- package/dist/ui/assets/core-C1m4D34S.js +36 -0
- package/dist/ui/assets/{core-4boN-CgI.js → core-Cx9N3lmn.js} +1 -1
- package/dist/ui/assets/{cost-command-C_1fldSP.js → cost-command-BUgEVZCe.js} +8 -1
- package/dist/ui/assets/{directed-approval-Dig9vgFX.js → directed-approval-BL1_1yFr.js} +1 -1
- package/dist/ui/assets/{discovery-preference-D1cUzn0M.js → discovery-preference-D8GXCv8i.js} +1 -1
- package/dist/ui/assets/emscripten-vfs-hook-D1Wo4S_o.js +1 -0
- package/dist/ui/assets/{emscripten-vfs-hook-BJh0QvlC.js → emscripten-vfs-hook-D4rVkB6b.js} +1 -1
- package/dist/ui/assets/{ensure-speech-assets-BQperrcM.js → ensure-speech-assets-CB-6d53s.js} +1 -1
- package/dist/ui/assets/{extension-ops-Ded2__AC.js → extension-ops-OtrqWANJ.js} +1 -1
- package/dist/ui/assets/{float-topology-DIH6ujZe.js → float-topology-COIC4j_U.js} +1 -1
- package/dist/ui/assets/{float-topology-C9GjBEv-.js → float-topology-C_iRKPQK.js} +1 -1
- package/dist/ui/assets/{follower-navigate-watcher-T4oXQ4JA.js → follower-navigate-watcher-C0CP4-Mn.js} +1 -1
- package/dist/ui/assets/{frozen-archive-writer-DHfEFu3h.js → frozen-archive-writer-BAghzZbz.js} +1 -1
- package/dist/ui/assets/{fs-cmFfSwcb.js → fs-BUK-3Ws8.js} +2 -2
- package/dist/ui/assets/{fs-B7XQ_lrb.js → fs-CKSBDyCr.js} +1 -1
- package/dist/ui/assets/{gelatiere-unit-BQsQGJpu.js → gelatiere-unit-C4o5SngU.js} +1 -1
- package/dist/ui/assets/{github-Di3NkZKj.js → github-B4luVkMa.js} +2 -2
- package/dist/ui/assets/{github-a773Oj_3.js → github-BMfosoS8.js} +1 -1
- package/dist/ui/assets/{github-auth-ByvUzIEk.js → github-auth-CSG4xZUZ.js} +1 -1
- package/dist/ui/assets/{github-copilot-DhPt4wWn.js → github-copilot-BiPH9OJc.js} +1 -1
- package/dist/ui/assets/{github-copilot-BoeL-U7E.js → github-copilot-C6LhWXPC.js} +1 -1
- package/dist/ui/assets/{github-install-BNLZv80o.js → github-install-HX3c8n0G.js} +1 -1
- package/dist/ui/assets/{github-zip-CoNuW2sf.js → github-zip-CUIsX5nN.js} +1 -1
- package/dist/ui/assets/{go-driver-2ebSfg2I.js → go-driver-DTOA90JI.js} +1 -1
- package/dist/ui/assets/{guest-tool-gate-B3vJ2BGb.js → guest-tool-gate-CXdRgkkb.js} +1 -1
- package/dist/ui/assets/{hear-Cfl4YI74.js → hear-BU1G_yVs.js} +1 -1
- package/dist/ui/assets/{help-BMAczBRn.js → help-aKSKYJF6.js} +1 -1
- package/dist/ui/assets/host-command-CwRNpVLr.js +28 -0
- package/dist/ui/assets/image-processor-BlI3KRoz.js +1 -0
- package/dist/ui/assets/{installer-xdxoxN0e.js → installer-CbjJjnwg.js} +1 -1
- package/dist/ui/assets/{interrupted-work-recovery-6m6BONfO.js → interrupted-work-recovery-DSX617ic.js} +1 -1
- package/dist/ui/assets/{ipk-mamba-uom-JjRn.js → ipk-mamba-BRxsK-p_.js} +1 -1
- package/dist/ui/assets/{js-realm-worker-CD271tMz.js → js-realm-worker-BYIiw840.js} +3 -3
- package/dist/ui/assets/{jsh-executor-DBwez91k.js → jsh-executor-f9UQQAJH.js} +2 -2
- package/dist/ui/assets/jsh-runtime-extensions-vA6JAYXY.js +1 -0
- package/dist/ui/assets/{kernel-worker-DOWZJuXM.js → kernel-worker-9lMint5X.js} +59 -59
- package/dist/ui/assets/{lick-ws-bridge-4IBz0Msz.js → lick-ws-bridge-Da6ciGE3.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-DQyoaYVX.js → lick-ws-bridge-HjQu1maH.js} +1 -1
- package/dist/ui/assets/{live-session-curation-ix1TPxM_.js → live-session-curation-CTwh1ml7.js} +1 -1
- package/dist/ui/assets/{live-session-snapshot-DnyhcCE6.js → live-session-snapshot-M1JFgsYL.js} +1 -1
- package/dist/ui/assets/live-vfs-fs-DgvdNXkS.js +1 -0
- package/dist/ui/assets/{local-llm-Q3t4kvLW.js → local-llm-B5MTvDcM.js} +1 -1
- package/dist/ui/assets/{local-llm-D5Ox2xst.js → local-llm-ByQE3h0R.js} +1 -1
- package/dist/ui/assets/main-Bu5EcQ93.js +22 -0
- package/dist/ui/assets/{main-cherry-e40IJV67.js → main-cherry-J5K4fq0A.js} +1 -1
- package/dist/ui/assets/{mcp-command-Bz_9ImDN.js → mcp-command-Cr-uabpd.js} +13 -13
- package/dist/ui/assets/{memory-curation-seam-80E0snGz.js → memory-curation-seam-D8IdKYZq.js} +1 -1
- package/dist/ui/assets/{memory-health-X7Z2HJgc.js → memory-health-CpYOFVO8.js} +1 -1
- package/dist/ui/assets/{memory-write-execute-CYpqPN9a.js → memory-write-execute-h9V1nD_3.js} +1 -1
- package/dist/ui/assets/{merge-folded-cost-into-frozen-DDVN7W9t.js → merge-folded-cost-into-frozen-DGSytgu9.js} +1 -1
- package/dist/ui/assets/{mount-CxIbhZc_.js → mount-BdStwj8s.js} +2 -3
- package/dist/ui/assets/{mount-Cdhbsamk.js → mount-DROut-7D.js} +1 -1
- package/dist/ui/assets/{mount-bridge-client-DEndUe7m.js → mount-bridge-client-DEvjkZ1N.js} +1 -1
- package/dist/ui/assets/{mount-bridge-client-DZrU_hNA.js → mount-bridge-client-DTSknauQ.js} +1 -1
- package/dist/ui/assets/new-session-BQRH4q6V.js +2 -0
- package/dist/ui/assets/oauth-bootstrap-BWTJ-MnR.js +2 -0
- package/dist/ui/assets/oauth-service-GpUOM3Aw.js +1 -0
- package/dist/ui/assets/oauth-service-MWzqRq2q.js +1 -0
- package/dist/ui/assets/{onboarding-orchestrator-BLrUNStK.js → onboarding-orchestrator-DJBNgmTb.js} +1 -1
- package/dist/ui/assets/{openai-codex-CePEMrS9.js → openai-codex-8SwwSHXG.js} +1 -1
- package/dist/ui/assets/{openai-codex-DEnFvLaq.js → openai-codex-CM1P6Cz7.js} +1 -1
- package/dist/ui/assets/{openrouter-C6Drz4Po.js → openrouter-C1-T42sa.js} +1 -1
- package/dist/ui/assets/{openrouter-CMbDityB.js → openrouter-CtJep7AD.js} +1 -1
- package/dist/ui/assets/{openrouter-free-DPrVNMiX.js → openrouter-free-D5_NwI3F.js} +1 -1
- package/dist/ui/assets/{openrouter-free-jZRQi4fS.js → openrouter-free-Dn1SR1my.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-DXfymZ6D.js → openrouter-oauth-BBFeemXH.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-BSKVr_20.js → openrouter-oauth-BP-y86gf.js} +1 -1
- package/dist/ui/assets/{opfs-mount-WSgDUNOX.js → opfs-mount-B745o1Vc.js} +1 -1
- package/dist/ui/assets/{page-approval-service-BbEv1dSc.js → page-approval-service-ja6kjLj8.js} +1 -1
- package/dist/ui/assets/panel-rpc-CR9k3qWE.js +1 -0
- package/dist/ui/assets/panel-rpc-accessor-B4BfPLSo.js +1 -0
- package/dist/ui/assets/panel-rpc-handlers-xhUd9DiV.js +2 -0
- package/dist/ui/assets/panel-rpc-sLZo8PD-.js +1 -0
- package/dist/ui/assets/{panelize-shell-C3g06QW7.js → panelize-shell-Bq22FVKD.js} +1 -1
- package/dist/ui/assets/{pi-edit-execution-DckrFCfi.js → pi-edit-execution-gtCS0kee.js} +1 -1
- package/dist/ui/assets/port-bridge-client-B-gpiOVR.js +1 -0
- package/dist/ui/assets/port-bridge-client-DAxhsvxm.js +1 -0
- package/dist/ui/assets/process-worker-v_IRtyyq.js +3 -0
- package/dist/ui/assets/{provider-BIKN9l0j.js → provider-DckNx7km.js} +2 -2
- package/dist/ui/assets/{provider-BDvld8wH.js → provider-ToQ_7wAn.js} +1 -1
- package/dist/ui/assets/{provider-settings-7gXmbpeE.js → provider-settings-D8mMRRmg.js} +1 -1
- package/dist/ui/assets/provider-store-access-CUeWZULe.js +1 -0
- package/dist/ui/assets/provider-store-access-DCRy_R8r.js +1 -0
- package/dist/ui/assets/providers-BAKMBUX7.js +2 -0
- package/dist/ui/assets/{providers-BSPfSjHX.js → providers-CvqwjkUB.js} +1 -1
- package/dist/ui/assets/{proxied-fetch-Cplb-Tee.js → proxied-fetch-4VBgrEIu.js} +2 -2
- package/dist/ui/assets/{proxied-fetch-CoZ8jHud.js → proxied-fetch-F-dCBEfh.js} +1 -1
- package/dist/ui/assets/proxied-fetch-raw-DQ0-xn2O.js +2 -0
- package/dist/ui/assets/{proxied-fetch-raw-Cb_C44Cy.js → proxied-fetch-raw-DfWAMMUJ.js} +1 -1
- package/dist/ui/assets/{py-live-vfs-BY0JeFky.js → py-live-vfs-CPGqrKx-.js} +1 -1
- package/dist/ui/assets/{py-live-vfs-JNkDkEB1.js → py-live-vfs-CUwZTYN6.js} +1 -1
- package/dist/ui/assets/{py-realm-worker-DpNkD8fW.js → py-realm-worker-BoJbWJja.js} +1 -1
- package/dist/ui/assets/{quick-llm-B8_chMUu.js → quick-llm-DTjkRv5O.js} +1 -1
- package/dist/ui/assets/{realm-inprocess-DGI1SPvf.js → realm-inprocess-BuDDW7XG.js} +3 -3
- package/dist/ui/assets/{realm-unhandled-rejections-CeQ49yI4.js → realm-unhandled-rejections-BFldJQ3o.js} +1 -1
- package/dist/ui/assets/{realm-unhandled-rejections-UooDX3DO.js → realm-unhandled-rejections-D9cNYqKO.js} +1 -1
- package/dist/ui/assets/{recovery-screen-DkW3-R4h.js → recovery-screen-DM7KfT4C.js} +1 -1
- package/dist/ui/assets/{remote-terminal-view-D5iSX82V.js → remote-terminal-view-BKdENaQD.js} +2 -2
- package/dist/ui/assets/{require-guards-BX-XDJnh.js → require-guards-DnafTLJr.js} +1 -1
- package/dist/ui/assets/{rest-ops-d6LSiWDZ.js → rest-ops-B7gv04VP.js} +1 -1
- package/dist/ui/assets/{rest-ops-DyAkn44S.js → rest-ops-j0P6ql7f.js} +1 -1
- package/dist/ui/assets/{restore-Cz3KzZZ7.js → restore-DkI2mzPD.js} +1 -1
- package/dist/ui/assets/{run-DKc_-F3f.js → run-2dqnHZde.js} +1 -1
- package/dist/ui/assets/{run-CB6rAQZ1.js → run-BAmXlRlW.js} +1 -1
- package/dist/ui/assets/{run-cvQKad0O.js → run-BRFnmkzR.js} +1 -1
- package/dist/ui/assets/{run-D6sdPJoQ.js → run-BYyvGPll.js} +4 -4
- package/dist/ui/assets/{run-Cl3auc8D.js → run-CUYkRfoU.js} +2 -2
- package/dist/ui/assets/{run-BvTkhul6.js → run-D6LxdCnL.js} +1 -1
- package/dist/ui/assets/{run-COcBu8_4.js → run-DH5HX1KA.js} +1 -1
- package/dist/ui/assets/run-DP50TUcp.js +18 -0
- package/dist/ui/assets/{run-DyYNRU6R.js → run-DPyr8Wk2.js} +1 -1
- package/dist/ui/assets/{run-ijndQJol.js → run-DZZd9Xb1.js} +3 -3
- package/dist/ui/assets/{run-B6qzuQBC.js → run-chEfqfQu.js} +1 -1
- package/dist/ui/assets/{screen-DVI9ujIL.js → screen-_l91vr17.js} +1 -1
- package/dist/ui/assets/{screencapture-run-DRiSGUJ9.js → screencapture-run-DXkhPPQJ.js} +1 -1
- package/dist/ui/assets/{script-catalog-CqkljCRS.js → script-catalog-WaCMvXY3.js} +1 -1
- package/dist/ui/assets/{secret-env-DQjPh_hw.js → secret-env-z9SReONx.js} +1 -1
- package/dist/ui/assets/secret-topology-hMRoGGjt.js +1 -0
- package/dist/ui/assets/{secrets-bridge-client-CWv2_nw7.js → secrets-bridge-client-D734Xx8G.js} +1 -1
- package/dist/ui/assets/{secrets-bridge-client-EgBSROu5.js → secrets-bridge-client-GOCzDscb.js} +1 -1
- package/dist/ui/assets/{session-command-memory-Dqd2Y1nf.js → session-command-memory-D4uJebvK.js} +2 -2
- package/dist/ui/assets/{session-jsonl-D0vuq6c1.js → session-jsonl-CYHALwzZ.js} +1 -1
- package/dist/ui/assets/{session-jsonl-BFDqAk2L.js → session-jsonl-DJeZaEAN.js} +1 -1
- package/dist/ui/assets/{session-search-index-CJRorVYP.js → session-search-index-C9BSuBgf.js} +1 -1
- package/dist/ui/assets/{setup-feature-flags-remote-CWxbzwGB.js → setup-feature-flags-remote-B28utkza.js} +1 -1
- package/dist/ui/assets/{setup-model-catalog-CPpt1RYm.js → setup-model-catalog-D0KPq5D5.js} +1 -1
- package/dist/ui/assets/signed-fetch-DeDG40wV.js +1 -0
- package/dist/ui/assets/{silent-renew-backoff-D19EWo5j.js → silent-renew-backoff-CQhFgetu.js} +1 -1
- package/dist/ui/assets/slicc-version-CrbHwbo8.js +1 -0
- package/dist/ui/assets/snapshot-D6YGbggk.js +5 -0
- package/dist/ui/assets/{snapshot-features-HNBCRjfP.js → snapshot-features-Dw5v6SoZ.js} +1 -1
- package/dist/ui/assets/{soundscape-mtqG6Pmf.js → soundscape-CTffv_5Z.js} +1 -1
- package/dist/ui/assets/{speak-BOCxjk3p.js → speak-jCD0mSEW.js} +1 -1
- package/dist/ui/assets/sprinkle-manager-Y-YVEibf.js +1 -0
- package/dist/ui/assets/{sprinkle-renderer-DKK-prCv.js → sprinkle-renderer-CwX9FsqP.js} +1 -1
- package/dist/ui/assets/{ssh-_x-LG4bh.js → ssh-BWPgnSgg.js} +1 -1
- package/dist/ui/assets/state-Tykh4Vum.js +42 -0
- package/dist/ui/assets/{store-DL87lgMq.js → store-Mw1jky9b.js} +1 -1
- package/dist/ui/assets/{store-CVYChuZI.js → store-wiEGJ_43.js} +1 -1
- package/dist/ui/assets/stored-accounts-ChNHYF68.js +1 -0
- package/dist/ui/assets/stored-accounts-Cx83FZwe.js +1 -0
- package/dist/ui/assets/structured-output-tool-BrnZ-LJ8.js +1 -0
- package/dist/ui/assets/{sudo-C14r7p-e.js → sudo-C_rw_yTP.js} +3 -3
- package/dist/ui/assets/{sudo-fs-mI-V4QkM.js → sudo-fs-D88yRk1b.js} +1 -1
- package/dist/ui/assets/sudo-refusal-DVwTXFRE.js +1 -0
- package/dist/ui/assets/{supervisor-CRki_wn9.js → supervisor-DpgpPBmC.js} +1 -1
- package/dist/ui/assets/{sync-dialog-BMLUDjd4.js → sync-dialog-CupzPdES.js} +1 -1
- package/dist/ui/assets/{transformers-env-C0z5rcqN.js → transformers-env-YtNL0QDY.js} +1 -1
- package/dist/ui/assets/{tray-leader-BdvK7KWc.js → tray-leader-DXDclF_5.js} +1 -1
- package/dist/ui/assets/{tray-leave-runtime-Chumo3x-.js → tray-leave-runtime-VOHZS65W.js} +1 -1
- package/dist/ui/assets/{tray-runtime-config-ConrTcOf.js → tray-runtime-config-CBx5P3dS.js} +1 -1
- package/dist/ui/assets/{tray-sidecar-gXArrwO5.js → tray-sidecar-96t7GtIU.js} +1 -1
- package/dist/ui/assets/{turn-journal-Fz2l3QO4.js → turn-journal-EgGBqAjY.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-Bl00km0Z.js → upgrade-detection-A_vnZ-VL.js} +1 -1
- package/dist/ui/assets/{upskill-lick-skip-DTxpkXaG.js → upskill-lick-skip-u8HuNUy0.js} +1 -1
- package/dist/ui/assets/{voice-reply-LXLV67Nm.js → voice-reply-BlnWgLQN.js} +1 -1
- package/dist/ui/assets/{wasi-runtime-Bc01Bdaa.js → wasi-runtime-Wx_rcXbK.js} +2 -2
- package/dist/ui/assets/{wasm-programs-DPZtEzCA.js → wasm-programs-Bd5YaoqY.js} +1 -1
- package/dist/ui/assets/wc-attach-BD99mw1C.js +13 -0
- package/dist/ui/assets/{wc-browser-C3BrDOs9.js → wc-browser-ibm_kzUA.js} +1 -1
- package/dist/ui/assets/{wc-computers-5ZseiRnv.js → wc-computers-KrtriEYD.js} +1 -1
- package/dist/ui/assets/{wc-detached-DK9sSKZr.js → wc-detached-DW6GEnzV.js} +1 -1
- package/dist/ui/assets/wc-extension-dbdfxaHn.js +2 -0
- package/dist/ui/assets/wc-follower-CY0Omxnm.js +17 -0
- package/dist/ui/assets/{wc-follower-oauth-g_NJ62P_.js → wc-follower-oauth-obhVV1ID.js} +1 -1
- package/dist/ui/assets/{wc-gelatiere-C_kV3iUh.js → wc-gelatiere-BlK8fV98.js} +1 -1
- package/dist/ui/assets/{wc-live-CN_PjeIo.js → wc-live-WP25Nrx4.js} +6 -6
- package/dist/ui/assets/wc-nav-BA8Cj8Lu.js +2 -0
- package/dist/ui/assets/{wc-onboarding-BJrwUBcv.js → wc-onboarding-g_I2jf5C.js} +2 -2
- package/dist/ui/assets/{wc-permissions-D-mQCivR.js → wc-permissions-C_Q050u-.js} +2 -2
- package/dist/ui/assets/wc-placeholder-DaIZj3ba.js +4 -0
- package/dist/ui/assets/{wc-secret-request-BJXcNpDs.js → wc-secret-request-lw7JW61R.js} +1 -1
- package/dist/ui/assets/{wc-settings-DOYvmcRg.js → wc-settings-g5B5-OSw.js} +3 -3
- package/dist/ui/assets/{wc-shell-B6woD-e6.js → wc-shell-DrGgyuS_.js} +5 -5
- package/dist/ui/assets/{wc-shortcut-config-BUM7oKUu.js → wc-shortcut-config-C3GIv71k.js} +1 -1
- package/dist/ui/assets/wc-sprinkles-Dh8yXR2X.js +2 -0
- package/dist/ui/assets/{wc-transcript-export-RedJl591.js → wc-transcript-export-Dw-bOyW2.js} +2 -2
- package/dist/ui/assets/{wc-tray-BxsYHBdR.js → wc-tray-DJNwevYd.js} +4 -4
- package/dist/ui/assets/welcome-detection-CU3MtuFw.js +1 -0
- package/dist/ui/assets/whisper-session-Bkc60xQi.js +2 -0
- package/dist/ui/assets/{xai-grok-CAnhMyf-.js → xai-grok-BvqSa-5b.js} +1 -1
- package/dist/ui/assets/{xai-grok-Ch54hmZJ.js → xai-grok-DFQUduEg.js} +1 -1
- package/dist/ui/index.html +11 -10
- package/dist/ui/packages/webapp/index.html +11 -10
- package/package.json +1 -1
- package/dist/ui/assets/SKILL-B4YYagrM.js +0 -1
- package/dist/ui/assets/account-store-CfWRzPpT.js +0 -2
- package/dist/ui/assets/account-store-bUzcsJR2.js +0 -1
- package/dist/ui/assets/adobe-CugR6QpI.js +0 -2
- package/dist/ui/assets/adobe-ytXYifQq.js +0 -1
- package/dist/ui/assets/approval-timeout-CeQbGMnv.js +0 -1
- package/dist/ui/assets/core-ButDwsf2.js +0 -36
- package/dist/ui/assets/emscripten-vfs-hook-c6XYWLDN.js +0 -1
- package/dist/ui/assets/host-command-Dn-Z4AbC.js +0 -28
- package/dist/ui/assets/jsh-runtime-extensions-DiQ9SvKe.js +0 -1
- package/dist/ui/assets/live-vfs-fs-Y4sN9OvN.js +0 -1
- package/dist/ui/assets/main-D9hbfd93.js +0 -22
- package/dist/ui/assets/new-session-CKsA3Osa.js +0 -2
- package/dist/ui/assets/oauth-bootstrap-B7RkQZg-.js +0 -2
- package/dist/ui/assets/oauth-service-B-vKfxAF.js +0 -1
- package/dist/ui/assets/oauth-service-Bx_Dy3GC.js +0 -1
- package/dist/ui/assets/panel-rpc-D3EPRnmw.js +0 -1
- package/dist/ui/assets/panel-rpc-DW7W4w6_.js +0 -1
- package/dist/ui/assets/panel-rpc-handlers-D8o2EggL.js +0 -2
- package/dist/ui/assets/port-bridge-client-BmVU5J9w.js +0 -1
- package/dist/ui/assets/port-bridge-client-D_erEovW.js +0 -2
- package/dist/ui/assets/process-worker-BKgTk6Wd.js +0 -3
- package/dist/ui/assets/provider-store-access-B3yjrPLi.js +0 -1
- package/dist/ui/assets/provider-store-access-Bq7yMlLd.js +0 -1
- package/dist/ui/assets/providers-Qqp-ZEtv.js +0 -2
- package/dist/ui/assets/proxied-fetch-raw-Di1Dm8fV.js +0 -2
- package/dist/ui/assets/run-Cu1hr00X.js +0 -18
- package/dist/ui/assets/secret-topology-Dm_PZRZx.js +0 -1
- package/dist/ui/assets/signed-fetch-AA2u7LJq.js +0 -1
- package/dist/ui/assets/slicc-version-BjIQb9Hz.js +0 -1
- package/dist/ui/assets/snapshot-DLO8RkOr.js +0 -5
- package/dist/ui/assets/sprinkle-manager-UKlMkzSm.js +0 -1
- package/dist/ui/assets/state-B892uW3H.js +0 -42
- package/dist/ui/assets/structured-output-tool-BDaIhclx.js +0 -1
- package/dist/ui/assets/wc-attach-ChUPT4oB.js +0 -13
- package/dist/ui/assets/wc-extension-BC5R5cd7.js +0 -2
- package/dist/ui/assets/wc-follower-Dn9JVmb_.js +0 -17
- package/dist/ui/assets/wc-nav-DqpOaNr_.js +0 -2
- package/dist/ui/assets/wc-placeholder-D2NGiBVr.js +0 -4
- package/dist/ui/assets/wc-sprinkles-Q2JU6sSY.js +0 -2
- package/dist/ui/assets/welcome-detection-CrnFBTZe.js +0 -1
- package/dist/ui/assets/whisper-session-BaYhywEf.js +0 -2
package/dist/ui/assets/{remote-terminal-view-D5iSX82V.js → remote-terminal-view-BKdENaQD.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-shell-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-shell-DrGgyuS_.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/mime-types-D0xZwlMO.js","assets/base64-ELzoYfwP.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-DiRMol3Q.js","assets/core-Cx9N3lmn.js","assets/compat-BAGLwgqY.js","assets/models-Xc0Gclrk.js","assets/diagnostics-Cag7MsZI.js","assets/env-api-keys-BXRkymgV.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-DHpsqCCC.js","assets/libesm-BypnjKEL.js","assets/feature-flags-DvsApnS-.js","assets/proxied-fetch-4VBgrEIu.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-hMRoGGjt.js","assets/float-topology-C_iRKPQK.js","assets/secrets-bridge-client-D734Xx8G.js","assets/port-bridge-client-B-gpiOVR.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-BAKMBUX7.js","assets/stored-accounts-ChNHYF68.js","assets/bedrock-camp-compat-B1oHsbyo.js","assets/bedrock-camp-extra-models-BYrxX19D.js","assets/claude-model-version-DZmbk9E2.js","assets/telemetry-B0sKnLBU.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-2DY2vYOc.js","assets/wc-shell-WkeczD9x.css"])))=>i.map(i=>d[i]);
|
|
2
2
|
import{t as e}from"./preload-helper-Czpn1I53.js";import"./tool-ui-eSQ1g2I1.js";import{t}from"./permissions-surface-registry-CilCRwhh.js";import{storePendingHandle as n}from"./mount-picker-popup-qcWGbpG5.js";import{r,t as i}from"./hid-device-registry-B2R-0rNt.js";import"./browser-BhTdBqdp.js";import{a,n as o}from"./serial-port-registry-CCqklAEr.js";import{a as s,t as c}from"./usb-device-registry--JwKRTYp.js";import"./usb-operations-v1mGAdRY.js";import{t as l}from"./terminal-session-client-DmE-iBjP.js";function u(e,t){let n=[],r=new Map,i=new Set;for(let a=0;a<e.length;a++){let o=e[a];o.startsWith(`-`)?t.has(o)?r.set(o,e[++a]??``):i.add(o):n.push(o)}return{positionals:n,flags:r,bools:i}}new TextDecoder(`utf-8`,{fatal:!1}),new TextEncoder;var d=new Set([`--vid`,`--pid`,`--baud`,`--data-bits`,`--stop-bits`,`--parity`,`--flow-control`,`--buffer-size`,`--bytes`,`--until`,`--timeout-ms`,`--dtr`,`--rts`,`--break`,`--__resolved`]);function f(e){return u(e,d)}function p(e,t){let n=/^0x/i.test(e)?parseInt(e,16):parseInt(e,10);if(!Number.isFinite(n)||Number.isNaN(n))throw Error(`invalid ${t}: '${e}'`);return n}function m(e){let t={};return e.has(`--vid`)&&(t.usbVendorId=p(e.get(`--vid`),`vid`)),e.has(`--pid`)&&(t.usbProductId=p(e.get(`--pid`),`pid`)),Object.keys(t).length>0?[t]:[]}`${o}${o}`;var h=new Set([`--port`,`--baud`,`--vid`,`--pid`]),g=115200;function _(e){return u(e,h)}`${g}`;var v=new Set([`--vid`,`--pid`,`--usage-page`,`--usage`,`--__resolved`,`--timeout`]);function y(e){return u(e,v)}function b(e,t){let n=/^0x/i.test(e)?parseInt(e,16):parseInt(e,10);if(!Number.isFinite(n)||Number.isNaN(n))throw Error(`invalid ${t}: '${e}'`);return n}function x(e){let t={};return e.has(`--vid`)&&(t.vendorId=b(e.get(`--vid`),`vid`)),e.has(`--pid`)&&(t.productId=b(e.get(`--pid`),`pid`)),e.has(`--usage-page`)&&(t.usagePage=b(e.get(`--usage-page`),`usage-page`)),e.has(`--usage`)&&(t.usage=b(e.get(`--usage`),`usage`)),Object.keys(t).length>0?[t]:[]}`${i}`;var S=new Set([`--vid`,`--pid`,`--class`,`--subclass`,`--protocol`,`--serial`,`--request-type`,`--recipient`,`--request`,`--value`,`--index`,`--__resolved`]);function C(e){return u(e,S)}function w(e,t){let n=/^0x/i.test(e)?parseInt(e,16):parseInt(e,10);if(!Number.isFinite(n)||Number.isNaN(n))throw Error(`invalid ${t}: '${e}'`);return n}function T(e){let t={};return e.has(`--vid`)&&(t.vendorId=w(e.get(`--vid`),`vid`)),e.has(`--pid`)&&(t.productId=w(e.get(`--pid`),`pid`)),e.has(`--class`)&&(t.classCode=w(e.get(`--class`),`class`)),e.has(`--subclass`)&&(t.subclassCode=w(e.get(`--subclass`),`subclass`)),e.has(`--protocol`)&&(t.protocolCode=w(e.get(`--protocol`),`protocol`)),e.has(`--serial`)&&(t.serialNumber=e.get(`--serial`)),Object.keys(t).length>0?[t]:[]}`${c}`;var E=`\x1B]7777;`,D=/\x1b\]7777;(\d+)\x07/g;String.raw`printf '\033]7777;%s\007' "$?"`,[`if [ -f ~/.bashrc ]; then . ~/.bashrc; fi`,`exec 98<&-`,``].join(`
|
|
3
3
|
`);function O(e){let t=e.replace(/\r\n/g,`
|
|
4
4
|
`),n=t.indexOf(`
|
|
@@ -6,7 +6,7 @@ import{t as e}from"./preload-helper-Czpn1I53.js";import"./tool-ui-eSQ1g2I1.js";i
|
|
|
6
6
|
`),this.prompt=e,this.line=[],this.cursor=0,this.historyIndex=this.history.length,this.draft=``,this.anchorRow=this.display.getCursor().row,this.display.write(e),new Promise((e,t)=>{this.resolve=e,this.reject=t})}abort(e){this.reject?.(e),this.resolve=null,this.reject=null}setLine(e){this.isReading&&(this.line=[...e],this.cursor=this.line.length,this.redraw())}insert(e){if(!this.isReading||!e)return;let t=[...e.replace(/[\r\n\x1b]/g,``)];this.line.splice(this.cursor,0,...t),this.cursor+=t.length,this.redraw()}list(e){if(!this.isReading)return;let t=this.cursor;this.cursor=this.line.length,this.redraw(),this.display.write(`\r\n${e.join(` `)}\r\n`),this.anchorRow=this.display.getCursor().row,this.cursor=t,this.redraw()}accept(){if(!this.resolve)return;this.cursor=this.line.length,this.redraw();let e=this.text;this.display.write(`\r
|
|
7
7
|
`),e.trim()&&this.history.at(-1)!==e&&(this.history.push(e),this.history.length>A&&this.history.shift());let t=this.resolve;this.resolve=null,this.reject=null,t(e)}cancel(){if(!this.resolve)return;this.cursor=this.line.length,this.redraw(),this.display.write(`^C\r
|
|
8
8
|
`);let e=this.resolve;this.resolve=null,this.reject=null,e(``)}feed(e){if(this.isReading)switch(e){case`\r`:case`
|
|
9
|
-
`:this.accept();return;case``:this.cancel();return;case``:case`\b`:this.cursor>0&&(this.line.splice(--this.cursor,1),this.redraw());return;case`\x1B[3~`:this.cursor<this.line.length&&(this.line.splice(this.cursor,1),this.redraw());return;case`\x1B[D`:case`\x1BOD`:this.cursor=Math.max(0,this.cursor-1),this.redraw();return;case`\x1B[C`:case`\x1BOC`:this.cursor=Math.min(this.line.length,this.cursor+1),this.redraw();return;case`\x1B[H`:case`\x1BOH`:case``:this.cursor=0,this.redraw();return;case`\x1B[F`:case`\x1BOF`:case``:this.cursor=this.line.length,this.redraw();return;case`\x1B[A`:case`\x1BOA`:this.navigate(-1);return;case`\x1B[B`:case`\x1BOB`:this.navigate(1);return;case``:this.line.splice(0,this.cursor),this.cursor=0,this.redraw();return;case`\v`:this.line.splice(this.cursor),this.redraw();return;case``:{let e=this.cursor;for(;e>0&&/\s/.test(this.line[e-1]??``);)e--;for(;e>0&&!/\s/.test(this.line[e-1]??``);)e--;this.line.splice(e,this.cursor-e),this.cursor=e,this.redraw();return}default:!e.includes(`\x1B`)&&!/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/.test(e)&&this.insert(e.replace(/[\r\n\t]+/g,` `))}}navigate(e){e<0&&this.historyIndex===0||e>0&&this.historyIndex===this.history.length||(this.historyIndex===this.history.length&&(this.draft=this.text),this.historyIndex+=e,this.line=[...this.history[this.historyIndex]??this.draft],this.cursor=this.line.length,this.redraw())}redraw(){let{row:e}=this.display.getCursor(),t=this.display.getScrollbackCount(),n=e-this.anchorRow;n>0&&this.display.write(`\x1b[${n}A`),this.display.write(`\r\x1B[0J`),this.display.write(this.prompt+this.beforeCursor),this.display.write(`\x1B7`),this.display.write(this.line.slice(this.cursor).join(``)),this.display.write(`\x1B8`),this.anchorRow=Math.max(0,this.anchorRow-(this.display.getScrollbackCount()-t))}},M=`\x1B[34m/\x1B[0m \x1B[90m$\x1B[0m `,N=class{options;client;terminal=null;terminalHost=null;previewHost=null;previewUrls=[];hasPreview=!1;previewStateListener=null;resizeObserver=null;rejectTerminalReady=null;editor=null;disposed=!1;programmaticResolve=null;isExecuting=!1;ptyMode=!1;loginShell=!1;loginSawPty=!1;marks=new k;settleSession=()=>{};sessionSettled=new Promise(e=>{this.settleSession=e});reportedSize=``;suppressOutput=!1;tabBusy=!1;pendingTabInput=[];constructor(e){this.options=e;let t=e.sid??`panel-terminal-${Date.now()}`;this.client=new l({client:e.client,sid:t,onEvent:e=>this.handleEvent(e)})}async mount(t){if(await e(()=>import(`./wc-shell-
|
|
9
|
+
`:this.accept();return;case``:this.cancel();return;case``:case`\b`:this.cursor>0&&(this.line.splice(--this.cursor,1),this.redraw());return;case`\x1B[3~`:this.cursor<this.line.length&&(this.line.splice(this.cursor,1),this.redraw());return;case`\x1B[D`:case`\x1BOD`:this.cursor=Math.max(0,this.cursor-1),this.redraw();return;case`\x1B[C`:case`\x1BOC`:this.cursor=Math.min(this.line.length,this.cursor+1),this.redraw();return;case`\x1B[H`:case`\x1BOH`:case``:this.cursor=0,this.redraw();return;case`\x1B[F`:case`\x1BOF`:case``:this.cursor=this.line.length,this.redraw();return;case`\x1B[A`:case`\x1BOA`:this.navigate(-1);return;case`\x1B[B`:case`\x1BOB`:this.navigate(1);return;case``:this.line.splice(0,this.cursor),this.cursor=0,this.redraw();return;case`\v`:this.line.splice(this.cursor),this.redraw();return;case``:{let e=this.cursor;for(;e>0&&/\s/.test(this.line[e-1]??``);)e--;for(;e>0&&!/\s/.test(this.line[e-1]??``);)e--;this.line.splice(e,this.cursor-e),this.cursor=e,this.redraw();return}default:!e.includes(`\x1B`)&&!/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/.test(e)&&this.insert(e.replace(/[\r\n\t]+/g,` `))}}navigate(e){e<0&&this.historyIndex===0||e>0&&this.historyIndex===this.history.length||(this.historyIndex===this.history.length&&(this.draft=this.text),this.historyIndex+=e,this.line=[...this.history[this.historyIndex]??this.draft],this.cursor=this.line.length,this.redraw())}redraw(){let{row:e}=this.display.getCursor(),t=this.display.getScrollbackCount(),n=e-this.anchorRow;n>0&&this.display.write(`\x1b[${n}A`),this.display.write(`\r\x1B[0J`),this.display.write(this.prompt+this.beforeCursor),this.display.write(`\x1B7`),this.display.write(this.line.slice(this.cursor).join(``)),this.display.write(`\x1B8`),this.anchorRow=Math.max(0,this.anchorRow-(this.display.getScrollbackCount()-t))}},M=`\x1B[34m/\x1B[0m \x1B[90m$\x1B[0m `,N=class{options;client;terminal=null;terminalHost=null;previewHost=null;previewUrls=[];hasPreview=!1;previewStateListener=null;resizeObserver=null;rejectTerminalReady=null;editor=null;disposed=!1;programmaticResolve=null;isExecuting=!1;ptyMode=!1;loginShell=!1;loginSawPty=!1;marks=new k;settleSession=()=>{};sessionSettled=new Promise(e=>{this.settleSession=e});reportedSize=``;suppressOutput=!1;tabBusy=!1;pendingTabInput=[];constructor(e){this.options=e;let t=e.sid??`panel-terminal-${Date.now()}`;this.client=new l({client:e.client,sid:t,onEvent:e=>this.handleEvent(e)})}async mount(t){if(await e(()=>import(`./wc-shell-DrGgyuS_.js`).then(e=>e.N),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38])),this.disposed)return;t.replaceChildren(),this.terminalHost=document.createElement(`div`),this.terminalHost.className=`terminal-panel__terminal-host`,t.appendChild(this.terminalHost),this.previewHost=document.createElement(`div`),this.previewHost.className=`terminal-panel__preview`,t.appendChild(this.previewHost);let n=document.createElement(`slicc-terminal`);n.hideHeader=!0,n.style.width=`100%`,n.style.height=`100%`,this.terminal=n;let r=new Promise((e,t)=>{let r=()=>{n.removeEventListener(`terminal-ready`,i),n.removeEventListener(`terminal-error`,a),this.rejectTerminalReady=null},i=()=>{r(),e()},a=e=>{r(),t(e.detail)};this.rejectTerminalReady=e=>{r(),t(e)},n.addEventListener(`terminal-ready`,i),n.addEventListener(`terminal-error`,a)});n.addEventListener(`terminal-data`,e=>{this.handleTerminalData(e.detail)}),this.terminalHost.appendChild(n),await r,!this.disposed&&(n.fit(),this.editor=new j({write:e=>n.write(e),getCursor:()=>n.terminal?.bridge?.getCursor()??{row:0,col:0},getScrollbackCount:()=>n.terminal?.bridge?.getScrollbackCount()??0}),this.resizeObserver=new ResizeObserver(()=>this.refit()),this.resizeObserver.observe(this.terminalHost),await this.client.open({cwd:this.options.cwd,env:this.options.env}),this.startSession(n))}async startSession(e){let t=await this.runLoginShell();this.disposed||(t||(e.writeln(`\x1B[1mslicc\x1B[0m \x1B[90mshell (kernel)\x1B[0m`),e.writeln(`\x1B[90mType "help" for available commands.\x1B[0m`),e.writeln(``)),this.runPromptLoop(),this.settleSession())}async runLoginShell(){this.loginShell=!0,this.loginSawPty=!1;let e=await this.runRemote(`wasm --login`,{discardCapturedOutput:!0});return this.loginShell=!1,this.marks.end(),!this.loginSawPty&&e.exitCode===125?null:(this.terminal?.writeln(`\x1b[90mbash exited (${e.exitCode}); this is the slicc shell. \`wasm --login\` starts bash again.\x1b[0m`),e)}refit(){this.terminal?.fit(),this.reportSize()}reportSize(){let e=this.terminal?.terminal;if(!e)return;let t=`${e.cols}x${e.rows}`;t!==this.reportedSize&&(this.reportedSize=t,this.client.resize(e.cols,e.rows))}clearTerminal(){this.terminal?.clear()}async executeCommandInTerminal(e){let t=e.trim();if(!t)return{stdout:``,stderr:``,exitCode:0};if(this.editor&&!(this.loginShell&&this.ptyMode)&&await this.sessionSettled,this.loginShell&&this.ptyMode)return this.typeIntoLoginShell(t);if(!this.terminal||!this.editor)return this.client.exec(t);if(this.isExecuting||this.programmaticResolve||!this.editor.isReading||this.editor.text)return{stdout:``,stderr:`terminal is busy; finish current input first
|
|
10
10
|
`,exitCode:1};let n=new Promise(e=>{this.programmaticResolve=e});return this.editor.setLine(t),this.editor.accept(),n}typeIntoLoginShell(e){if(this.marks.pending)return Promise.resolve({stdout:``,stderr:`terminal is busy
|
|
11
11
|
`,exitCode:1});let t=this.marks.seen?this.marks.expect():Promise.resolve({stdout:``,stderr:``,exitCode:0});return this.client.stdin(`${e}\r`),t}setPreviewStateListener(e){this.previewStateListener=e,e?.(this.hasPreview)}dispose(){this.disposed=!0,this.settleSession(),this.rejectTerminalReady?.(Error(`terminal disposed`)),this.editor?.abort(Error(`terminal disposed`)),this.clearMediaPreview(),this.resizeObserver?.disconnect(),this.resizeObserver=null,this.terminal?.remove(),this.terminal=null,this.editor=null,this.pendingTabInput=[],this.terminalHost=null,this.previewHost=null,this.client.close(),this.client.dispose()}renderMediaPreview(e){if(!this.previewHost)return;let t=document.createElement(`div`);t.className=`terminal-panel__preview-item`;let n=document.createElement(`div`);n.className=`terminal-panel__preview-label`;let r=e.path.split(`/`).pop()??e.path;if(n.textContent=`${r} · ${e.mediaType}`,t.appendChild(n),e.mediaType===`image/png`){let n=document.createElement(`slicc-terminal`);n.hideHeader=!0,n.style.width=`100%`,n.style.height=`180px`,n.style.pointerEvents=`none`,n.setAttribute(`aria-label`,`Kitty graphics preview of ${r}`),n.addEventListener(`terminal-ready`,()=>requestAnimationFrame(()=>{let e=n.shadowRoot?.querySelector(`.host`);e&&(e.scrollTop=0),this.terminal?.focus()}),{once:!0}),t.appendChild(n);for(let t=0;t<e.data.length;t+=4096){let r=t===0,i=t+4096>=e.data.length,a=r?`a=T,f=100,t=d,m=${+!i}`:`m=${+!i}`;n.write(`\x1b_G${a};${e.data.slice(t,t+4096)}\x1b\\`)}}else if(e.mediaType.startsWith(`video/`)){let n=Uint8Array.from(atob(e.data),e=>e.charCodeAt(0)),r=URL.createObjectURL(new Blob([n],{type:e.mediaType}));this.previewUrls.push(r);let i=document.createElement(`video`);i.className=`terminal-panel__preview-media`,i.controls=!0,i.autoplay=!0,i.loop=!0,i.muted=!0,i.playsInline=!0,i.src=r,i.addEventListener(`loadedmetadata`,()=>this.refit(),{once:!0}),t.appendChild(i)}else{let n=Uint8Array.from(atob(e.data),e=>e.charCodeAt(0)),i=URL.createObjectURL(new Blob([n],{type:e.mediaType}));this.previewUrls.push(i);let a=document.createElement(`img`);a.className=`terminal-panel__preview-media`,a.alt=r,a.src=i,a.addEventListener(`load`,()=>this.refit(),{once:!0}),t.appendChild(a)}this.previewHost.appendChild(t),this.previewHost.classList.add(`terminal-panel__preview--visible`),this.hasPreview=!0,this.previewStateListener?.(!0)}clearMediaPreview(){for(let e of this.previewUrls)URL.revokeObjectURL(e);this.previewUrls=[],this.previewHost&&(this.previewHost.replaceChildren(),this.previewHost.classList.remove(`terminal-panel__preview--visible`)),this.hasPreview=!1,this.previewStateListener?.(!1)}async runPromptLoop(){for(;!this.disposed&&this.editor&&this.terminal;){let e;try{e=await this.readNextLine()}catch{break}let t=this.programmaticResolve!==null,n=await this.processLine(e,t);this.programmaticResolve&&=(this.programmaticResolve(n),null)}}readNextLine(){if(!this.editor)return Promise.reject(Error(`terminal not mounted`));let e=this.editor.read(M);return this.flushPendingTabInput(),e}flushPendingTabInput(){for(;this.editor?.isReading&&this.pendingTabInput.length>0;)this.editor.feed(this.pendingTabInput.shift()??``)}handleTerminalData(e){if(this.ptyMode){this.client.stdin(e);return}e===` `?this.tabBusy||this.handleTab():e===``&&this.isExecuting?this.signalInterruptDuringExec():this.tabBusy?this.pendingTabInput.push(e):this.editor?.feed(e)}async processLine(e,t=!1){let n=e.trim(),r={stdout:``,stderr:``,exitCode:0};return n?n===`wasm --login`?await this.runLoginShell()??{stdout:``,stderr:`wasm: --login: no GNU bash to log in to (install @ai-ecoverse/wasm-bash)
|
|
12
12
|
`,exitCode:125}:!t&&await this.tryRunPicker(n)?r:this.runRemote(n):r}async tryRunPicker(e){let t=P(e);if(t)return await this.runRemoteWithLocalPicker(e,t),!0;let n=V(e);if(n)return await this.runRemoteWithUsbPicker(n),!0;let r=H(e);if(r)return await this.runRemoteWithHidPicker(r),!0;let i=W(e);if(i)return await this.runRemoteWithSerialPicker(i),!0;let a=G(e);if(a)return await this.runRemoteWithEsptoolPicker(e,a),!0;let o=B(e);return o?(await this.runRemoteWithScreenShare(o.name),!0):!1}signalInterruptDuringExec(){this.isExecuting&&(this.terminal?.writeln(`^C`),this.client.signal(`SIGINT`))}async handleTab(){if(!(!this.terminal||!this.editor)&&!(this.isExecuting||this.tabBusy)){this.tabBusy=!0,this.isExecuting=!0;try{let e=this.editor.beforeCursor,{currentWord:t,isFirstWord:n,compgenCmd:r}=q(e);this.suppressOutput=!0;let i=``;try{i=(await this.client.exec(r)).stdout}finally{this.suppressOutput=!1}let a=i.split(`
|
|
@@ -227,7 +227,7 @@ import _slicc_fs_js as _bridge
|
|
|
227
227
|
_build_slicc_module(_bridge)
|
|
228
228
|
del _build_slicc_module
|
|
229
229
|
del _bridge
|
|
230
|
-
`)}const U=a(`pyodide`,`314.0.7`),W=`https://cdn.jsdelivr.net/pyodide/v${U}/full/`,G=`pyodide is not installed in node_modules: run \`ipk add pyodide@${U}\` (no network fallback)`,K={asmJs:`pyodide.asm.mjs`,asmWasm:`pyodide.asm.wasm`,stdlibZip:`python_stdlib.zip`,lockJson:`pyodide-lock.json`};async function Ae(e){let t;try{t=await i(`pyodide/package.json`,e.fromDir,e.reader)}catch{return null}if(t.type!==`file`)return null;let r=n(t.path).dir;for(let t of Object.values(K))if(!await e.reader.exists(`${r}/${t}`))return null;return r}async function je(e,t){try{let[n,r,i,a]=await Promise.all([e.call(`vfs`,`readFile`,[`${t}/${K.asmJs}`]),e.call(`vfs`,`readFileBinary`,[`${t}/${K.asmWasm}`]),e.call(`vfs`,`readFileBinary`,[`${t}/${K.stdlibZip}`]),e.call(`vfs`,`readFile`,[`${t}/${K.lockJson}`])]);return{asmJsSource:n,asmWasmBytes:r instanceof Uint8Array?r:new Uint8Array(r),stdlibBytes:i instanceof Uint8Array?i:new Uint8Array(i),lockJsonString:a}}catch{return null}}function Me(e,t){let n=e+K.asmWasm,r=globalThis.fetch,i=!0,a=(e,i)=>(typeof e==`string`?e:e instanceof URL?e.href:e.url)===n?Promise.resolve(new Response(t,{headers:{"Content-Type":`application/wasm`}})):r(e,i);return globalThis.fetch=a,{restore:()=>{i&&(i=!1,globalThis.fetch===a&&(globalThis.fetch=r))}}}async function Ne(e,t,n){let r=await je(n,t);if(!r)throw Error(G);let i=URL.createObjectURL(new Blob([r.asmJsSource],{type:`text/javascript`})),a=URL.createObjectURL(new Blob([r.stdlibBytes],{type:`application/zip`})),s=`slicc-pyodide://local/${crypto.randomUUID()}/`,c=Me(s,r.asmWasmBytes);try{let t=await import(i);return await e.loadPyodide({indexURL:s,lockFileContents:r.lockJsonString,stdLibURL:a,createPyodideModule:t.default,packageBaseUrl:o(`/workspace/python_wheels/`)})}finally{c.restore(),URL.revokeObjectURL(i),URL.revokeObjectURL(a)}}async function Pe(e,t,n=()=>import(`./pyodide-DdE1Qe05.js`)){let r=[],i=[],a=new H(t),o;try{let t=await n();o=e.pyodideAssetRoot?await Ne(t,e.pyodideAssetRoot,a):await t.loadPyodide({indexURL:e.pyodideIndexURL})}catch(e){a.dispose();let n={type:`realm-error`,message:`loadPyodide: ${e instanceof Error?e.message:String(e)}`};t.postMessage(n);return}let s=e=>{i.push(`Warning: ${e}\n`)},c=[],l,u;try{await Fe(o,a,s,Ie(e.pyodideAssetRoot));let{mountPyLiveVfs:n}=await import(`./py-live-vfs-
|
|
230
|
+
`)}const U=a(`pyodide`,`314.0.7`),W=`https://cdn.jsdelivr.net/pyodide/v${U}/full/`,G=`pyodide is not installed in node_modules: run \`ipk add pyodide@${U}\` (no network fallback)`,K={asmJs:`pyodide.asm.mjs`,asmWasm:`pyodide.asm.wasm`,stdlibZip:`python_stdlib.zip`,lockJson:`pyodide-lock.json`};async function Ae(e){let t;try{t=await i(`pyodide/package.json`,e.fromDir,e.reader)}catch{return null}if(t.type!==`file`)return null;let r=n(t.path).dir;for(let t of Object.values(K))if(!await e.reader.exists(`${r}/${t}`))return null;return r}async function je(e,t){try{let[n,r,i,a]=await Promise.all([e.call(`vfs`,`readFile`,[`${t}/${K.asmJs}`]),e.call(`vfs`,`readFileBinary`,[`${t}/${K.asmWasm}`]),e.call(`vfs`,`readFileBinary`,[`${t}/${K.stdlibZip}`]),e.call(`vfs`,`readFile`,[`${t}/${K.lockJson}`])]);return{asmJsSource:n,asmWasmBytes:r instanceof Uint8Array?r:new Uint8Array(r),stdlibBytes:i instanceof Uint8Array?i:new Uint8Array(i),lockJsonString:a}}catch{return null}}function Me(e,t){let n=e+K.asmWasm,r=globalThis.fetch,i=!0,a=(e,i)=>(typeof e==`string`?e:e instanceof URL?e.href:e.url)===n?Promise.resolve(new Response(t,{headers:{"Content-Type":`application/wasm`}})):r(e,i);return globalThis.fetch=a,{restore:()=>{i&&(i=!1,globalThis.fetch===a&&(globalThis.fetch=r))}}}async function Ne(e,t,n){let r=await je(n,t);if(!r)throw Error(G);let i=URL.createObjectURL(new Blob([r.asmJsSource],{type:`text/javascript`})),a=URL.createObjectURL(new Blob([r.stdlibBytes],{type:`application/zip`})),s=`slicc-pyodide://local/${crypto.randomUUID()}/`,c=Me(s,r.asmWasmBytes);try{let t=await import(i);return await e.loadPyodide({indexURL:s,lockFileContents:r.lockJsonString,stdLibURL:a,createPyodideModule:t.default,packageBaseUrl:o(`/workspace/python_wheels/`)})}finally{c.restore(),URL.revokeObjectURL(i),URL.revokeObjectURL(a)}}async function Pe(e,t,n=()=>import(`./pyodide-DdE1Qe05.js`)){let r=[],i=[],a=new H(t),o;try{let t=await n();o=e.pyodideAssetRoot?await Ne(t,e.pyodideAssetRoot,a):await t.loadPyodide({indexURL:e.pyodideIndexURL})}catch(e){a.dispose();let n={type:`realm-error`,message:`loadPyodide: ${e instanceof Error?e.message:String(e)}`};t.postMessage(n);return}let s=e=>{i.push(`Warning: ${e}\n`)},c=[],l,u;try{await Fe(o,a,s,Ie(e.pyodideAssetRoot));let{mountPyLiveVfs:n}=await import(`./py-live-vfs-CPGqrKx-.js`);l=n(o,e,t,s),l||(c=await We(o,e,s),await Ge(o,e,s)),await He(o,a,e,s),await Ke(o,a,s);try{o.FS.chdir(e.cwd)}catch{}Je(o,e,r,i),u=await Ze(o,i),l?Xe(l,s):await Qe(c,e,a,s)}catch(e){a.dispose();let n={type:`realm-error`,message:`${e instanceof Error?e.message:String(e)}${i.length?`\n${i.join(``)}`:``}`};t.postMessage(n);return}a.dispose();let d={type:`realm-done`,stdout:r.join(``),stderr:i.join(``),exitCode:u};t.postMessage(d)}const q=`/workspace/python_wheels`;async function Fe(e,t,n,r){await Le(t,n,r);try{await e.loadPackage([`micropip`])}catch(e){n(`micropip preload failed: ${Q(e)}`)}}function Ie(e){return e?`${e}/${K.lockJson}`:`/workspace/node_modules/pyodide/pyodide-lock.json`}const J=1e4,Y=new WeakMap;function Le(e,t,n){let r=Y.get(e);if(r!=null)return r;let i=Re(e,t,n);return Y.set(e,i),i}async function Re(e,t,n){let r;try{if(!await e.call(`vfs`,`exists`,[n]))return;let t=await e.call(`vfs`,`readFile`,[n]),i=JSON.parse(t);for(let[e,t]of Object.entries(i.packages??{}))if(t?.file_name&&g(t.name??e)===`micropip`){r=t;break}}catch(e){t(`micropip wheel staging skipped: ${Q(e)}`);return}if(!r?.file_name||!r.sha256)return;let i=`${q}/${r.file_name}`;try{if(await e.call(`vfs`,`exists`,[i]))return;let t=await f(ze(e),{url:`${W}${r.file_name}`,sha256:r.sha256,label:`micropip wheel`,timeoutMs:J});await e.call(`vfs`,`mkdir`,[q]),await e.call(`vfs`,`writeFileBinary`,[i,t])}catch(e){t(`micropip wheel staging failed: ${Q(e)}`)}}function ze(e){return async(t,n)=>{let r={method:n?.method??`GET`,...n?.headers?{headers:n.headers}:{},...n?.body===void 0?{}:{body:n.body}},i=await Be(e.call(`fetch`,`request`,[t,r]),n?.timeoutMs??J,t);return{status:i.status,statusText:i.statusText,headers:i.headers,body:i.body instanceof Uint8Array?i.body:new Uint8Array(i.body),url:i.url}}}function Be(e,t,n){let r,i=new Promise((e,i)=>{r=setTimeout(()=>i(Error(`request to ${n} timed out after ${t}ms`)),t)});return Promise.race([e,i]).finally(()=>clearTimeout(r))}function Ve(e){return{exists:t=>e.call(`vfs`,`exists`,[t]),readFile:t=>e.call(`vfs`,`readFile`,[t])}}async function He(e,t,n,r){let i=Ve(t),a;try{a=await y(i,n.cwd)}catch(e){r(`manifest discovery failed: ${Q(e)}`);return}if(a===null)return;let o,s;try{let[e,t]=await Promise.all([T(i,a),E(i,a)]);o=e.dependencies,s=t}catch(e){r(`manifest read failed: ${Q(e)}`);return}let c=new Map;for(let e of s)c.set(g(e.name),e);for(let t of o){let{name:n}=v(t);if(!n)continue;let i=c.get(g(n));if(!i){r(`no integrity pin for \`${n}\`; run \`di sync\` to repair`);continue}await Ue(e,i,r)}}async function Ue(e,t,n){switch(t.source){case`pyodide-cdn`:try{await e.loadPackage([t.name])}catch(e){n(`activation of \`${t.name}\` failed: ${Q(e)}`)}return;case`pypi`:try{let n=`${q}/${t.fileName}`;await e.runPythonAsync(`import micropip; await micropip.install('emfs:${n}')`)}catch(e){n(`activation of \`${t.name}\` failed: ${Q(e)}`)}return;default:n(`unknown source \`${t.source}\` for \`${t.name}\`; skipping`)}}async function We(e,t,n){if(t.opfsMountDbName===void 0)return[];let r=t.pyodideMountDirs??[t.cwd,`/tmp`],i=t.mountPoints??[],a=new Set(i.map(e=>e.path));try{return(await et(e,r,t.opfsMountDbName,n,{skipMountPaths:a})).mounts}catch(e){return n(`VFS→Pyodide OPFS mount failed: ${Q(e)}`),[]}}async function Ge(e,t,n){let r=t.mountPoints??[];if(r.length!==0){try{Te(e.FS,r.map(e=>e.path),n)}catch(e){n(`bomb overlay install failed: ${Q(e)}`)}try{await De(e,r.map(e=>e.path))}catch(e){n(`python mount guard install failed: ${Q(e)}`)}}}async function Ke(e,t,n){try{await ke(e,t)}catch(e){n(`slicc.fs registration failed: ${Q(e)}`)}}function X(e){let t=new TextDecoder(`utf-8`,{ignoreBOM:!0});return{write:n=>{let r=t.decode(n,{stream:!0});return r&&e.push(r),n.length}}}function qe(e){try{e.runPython(`import sys as __slicc_sys
|
|
231
231
|
for __slicc_s in (__slicc_sys.stdout, __slicc_sys.stderr):
|
|
232
232
|
try:
|
|
233
233
|
__slicc_s.flush()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,t}from"./base64-ELzoYfwP.js";import{r as n}from"./proxy-error-BSFYY7jj.js";import{a as r,o as i,r as a,s as o,t as s}from"./proxied-fetch-
|
|
1
|
+
import{r as e,t}from"./base64-ELzoYfwP.js";import{r as n}from"./proxy-error-BSFYY7jj.js";import{a as r,o as i,r as a,s as o,t as s}from"./proxied-fetch-4VBgrEIu.js";import{s as c,t as l}from"./api-endpoint-DuEQRZ4g.js";import{t as u}from"./approval-decision-BvumWm-U.js";import{a as d,i as f,n as p,r as m}from"./capability-6V-AYPSJ.js";var h=new Set([`GET`,`HEAD`]);function g(e){let i=(e.method??`GET`).toUpperCase();if(e.body===void 0||h.has(i))return;if(e.bodyEncoding===`base64`)return t(e.body);let a=Object.entries(e.headers??{}).find(([e])=>e.toLowerCase()===`content-type`)?.[1]??``;return a&&!n(a)?r(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,r){let c={method:r.method??`GET`,headers:t.headers({...o(r.headers),"X-Target-URL":r.url}),cache:`no-store`};r.signal&&(c.signal=r.signal);let l=g(r);if(l!==void 0){if(l.byteLength>33554432)return f(`network`,`crossOriginFetch`,`request body is ${l.byteLength} bytes, over the ${s}-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=a(),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=i(_),b=n(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:r.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{r as e}from"./base64-BPBW1Gzr.js";import{t}from"./content-type-c5DAvCWD.js";import{a as n,l as r,t as i,u as a}from"./proxied-fetch-
|
|
1
|
+
import{r as e}from"./base64-BPBW1Gzr.js";import{t}from"./content-type-c5DAvCWD.js";import{a as n,l as r,t as i,u as a}from"./proxied-fetch-F-dCBEfh.js";import{s as o,t as s}from"./api-endpoint-D8lUKmPu.js";import{c,l,s as u}from"./types-JfhqX7lD.js";import{n as d,t as f}from"./rest-paths-Dia19u9P.js";import{t as p}from"./request-body-uLA3lKVr.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({...a(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 ${i}-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=n(),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=r(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{n as e,s as t,t as n}from"./almost-bash-shell-headless-
|
|
1
|
+
import{n as e,s as t,t as n}from"./almost-bash-shell-headless-DokddEN1.js";import{n as r}from"./browser-Jlk38XAj.js";import{c as i}from"./sudoers-BdBYQPUn.js";import{r as a}from"./sudo-fs-D88yRk1b.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-DpgpPBmC.js";function u(e,n){return new Map(Object.entries({HOME:t,PATH:o,USER:`user`,SHELL:`/bin/bash`,TMPDIR:`/tmp`,PWD:e.cwd,...n,...e.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(t){let r=h(t.fs,t.sudo),i=new e(r),a=new n({fs:r,cwd:`/workspace`,processManager:t.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:t.fs,processManager:t.processManager,lickManager:t.lickManager,...t.realmFactory?{realmFactory:t.realmFactory}:{},buildContext:e=>m(i,e,o)}),u=(await l(t.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"./record-COQlaFL1.js";import{t,u as n}from"./descriptor-CKLcFFX3.js";import{t as r}from"./subcommand-flags-BZi7j78Q.js";import{t as i}from"./subcommand-help-CgO7wRS5.js";import{a,r as o,t as s}from"./memory-budget-CFfevxz_.js";import{s as c}from"./kernel-worker-
|
|
1
|
+
import{t as e}from"./record-COQlaFL1.js";import{t,u as n}from"./descriptor-CKLcFFX3.js";import{t as r}from"./subcommand-flags-BZi7j78Q.js";import{t as i}from"./subcommand-help-CgO7wRS5.js";import{a,r as o,t as s}from"./memory-budget-CFfevxz_.js";import{s as c}from"./kernel-worker-9lMint5X.js";const l=`usage: memory <command> [options]
|
|
2
2
|
|
|
3
3
|
Durable cone memory: one file per cone, rewritten by the memory-curator
|
|
4
4
|
scoop after a chat freezes. This command inspects that system and pokes it.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{t as e}from"./panel-rpc-accessor-B4BfPLSo.js";function t(e){return{stdout:`usage: ${e} serve --label <name> [--expires <duration>]\n [--gate-messages <approver>] [--gate-tools <approver>]\n ${e} revoke <id>\n biscotti\n\n Hand someone a revocable guest seat on this cone. They get a private
|
|
2
2
|
URL showing the live transcript and a composer; what they send is
|
|
3
3
|
reviewed before it reaches the cone. The seat shares the conversation of
|
|
4
4
|
the cone that runs this command, and nothing else — switching
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as e}from"./base64-BPBW1Gzr.js";import{
|
|
1
|
+
import{r as e}from"./base64-BPBW1Gzr.js";import{t}from"./panel-rpc-accessor-B4BfPLSo.js";import{a as n,i as r}from"./just-bash-compat-B-SPHuh_.js";const i=[`prompt`,`exec`,`watch`];function a(e){return{stdout:``,stderr:e.endsWith(`
|
|
2
2
|
`)?e:`${e}\n`,exitCode:1}}function o(e){return{stdout:e,stderr:``,exitCode:0}}function s(){return o(`slicc - talk to another SLICC leader as a client
|
|
3
3
|
|
|
4
4
|
Usage: slicc <target> prompt [--steer] [--timeout <s>] <text...>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{r as t}from"./base64-BPBW1Gzr.js";import"./bridge-protocol-31SWTdS5.js";import{n}from"./host-command-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{r as t}from"./base64-BPBW1Gzr.js";import"./bridge-protocol-31SWTdS5.js";import{n}from"./host-command-CwRNpVLr.js";import{t as r}from"./panel-rpc-accessor-B4BfPLSo.js";import{n as i,t as a}from"./panel-rpc-CR9k3qWE.js";import{a as o,i as s,n as c}from"./tool-ui-DRnUkp2g.js";import{r as l,t as u}from"./subcommand-help-CgO7wRS5.js";import{t as d}from"./sudo-refusal-DVwTXFRE.js";import{t as f}from"./tmpdir-env-ate4iNcK.js";import{n as p}from"./screencapture-media-shared-DlK1Wqh8.js";import{c as m,l as h,r as g,u as _}from"./frame-bytes-B4FpkDwW.js";import{i as v,n as ee,o as te,s as ne,t as re}from"./frames-D35rgB_q.js";import{getComputerRegistry as ie,installComputerRegistry as ae}from"./registry-DfuJBCKY.js";import{getComputersHost as y}from"./host-ClT6wiGS.js";import{t as oe}from"./engine-CzMNXd8U.js";const se=[`bridgeToken`,`bridge`,`tray`],ce=[`cherry`,`connect`],le=[`/join/`,`/tray/`],ue=[``,`/`,`/cloud`,`/connect`];function de(e){let t=e.replace(/\/index\.html$/,`/`);return t.length>1?t.replace(/\/$/,``):t}function fe(e,t={}){let n;try{n=new URL(e)}catch{return!1}for(let e of se)if(n.searchParams.has(e))return!0;for(let e of ce)if(n.searchParams.get(e)===`1`)return!0;if(!new Set([`https://www.sliccy.ai`,`https://slicc-tray-hub-staging.minivelos.workers.dev`,...t.selfOrigins??[]]).has(n.origin))return!1;let r=de(n.pathname);return ue.includes(r)?!0:le.some(e=>`${r}/`.startsWith(e))}function b(e={x:0,y:0}){return{x:e.x,y:e.y}}function pe(e,t){return t.x!==void 0&&t.y!==void 0&&(e.x=t.x,e.y=t.y),e}function me(e,t){return t.x!==void 0&&t.y!==void 0?(e.x=t.x,e.y=t.y,{x:t.x,y:t.y}):{x:e.x,y:e.y}}function he(e,t){return t.map(t=>{if(t.type===`mousemove`||t.type===`click`||t.type===`button`||t.type===`scroll`){let n=me(e,t);return{...t,x:n.x,y:n.y}}return t.type===`drag`&&pe(e,{x:t.x2,y:t.y2}),t})}const x={low:256,medium:768,high:1536};function ge(e){if(!e)return x.medium;if(e in x)return x[e];let t=/^(\d+)(?:x\d+)?$/u.exec(e);if(t){let e=Number.parseInt(t[1],10);if(e>0)return e}return x.medium}function _e(e,t){let n=e.width>0?e.width:t.width,r=e.height>0?e.height:t.height,i=t.width,a=t.height,o=n>0?i/n:1;return{nativeWidth:n,nativeHeight:r,shotWidth:i,shotHeight:a,scale:o>0?o:1}}function ve(e){let t=e.scale===1?`1`:e.scale.toFixed(2).replace(/0+$/u,``).replace(/\.$/u,``);return`${e.nativeWidth}x${e.nativeHeight} → ${e.shotWidth}x${e.shotHeight} (scale ${t})`}function ye(e,t){return{width:e.shotWidth,height:e.shotHeight,scale:e.scale,at:t}}function be(e,t,n,r){return r||!n||n.scale===0?{x:e,y:t}:{x:Math.round(e/n.scale),y:Math.round(t/n.scale)}}function xe(e,t,n){let r=Number.isFinite(n)&&n>0?n:1;return r===1?{x:e,y:t}:{x:Math.round(e/r),y:Math.round(t/r)}}function S(e){return`tab:${e}`}const C={screenshot:!0,text:!1,frames:`poll`,keyboard:!0,mouse:`absolute`,scroll:!0,exec:!1,inputAllowed:!0},w={1:`left`,2:`middle`,3:`right`};function T(e){if(fe(e.url))throw Error(`refusing SLICC app tab '${e.title??e.url}'`)}var Se=class{browser;targetId;seq=0;title;url;size=null;pointer=b();constructor(e,t,n={title:t,url:``}){this.browser=e,this.targetId=t,this.title=n.title,this.url=n.url}describe(){return{id:S(this.targetId),kind:`tab`,title:this.title,size:this.size,state:`live`,capabilities:C,pid:null}}async screenshot(e){return await this.refreshInfo(),T({url:this.url,title:this.title}),this.browser.withTab(this.targetId,async t=>{let n=await Ce(t,e);return n.native&&(this.size=n.native),this.seq+=1,{seq:this.seq,mime:n.mime,width:n.width,height:n.height,bytes:n.bytes,...n.overCap?{overCap:!0}:{}}})}async input(e){await this.refreshInfo(),T({url:this.url,title:this.title}),await this.browser.withTab(this.targetId,async t=>{let n=await O(t);for(let r of e)await E(t,r,this.pointer,n)})}async close(){}async refreshInfo(){let e=await Ae(this.browser,this.targetId);e&&(this.title=e.title||this.title,this.url=e.url||this.url)}};async function Ce(e,t){let n=await e.screenshot({format:`png`}),r=g(n),i=_(r)??m(r),a=r;t.maxWidth&&i&&i.width>t.maxWidth?a=g(await e.screenshot({format:`png`,maxWidth:t.maxWidth})):t.format!==`png`&&(a=g(await e.screenshot({format:`jpeg`,quality:70})));let o=_(a)??m(a)??i??{width:0,height:0};return t.format!==`png`&&!m(a)&&(a=await h(a)),{mime:m(a)?`image/jpeg`:`image/png`,bytes:a,width:o.width,height:o.height,native:i,...t.maxWidth&&o.width>t.maxWidth?{overCap:!0}:{}}}var we=class{rpc;targetId;seq=0;title;url;size=null;pointer=b();constructor(e,t,n={title:t,url:``}){this.rpc=e,this.targetId=t,this.title=n.title,this.url=n.url}describe(){return{id:S(this.targetId),kind:`tab`,title:this.title,size:this.size,state:`live`,capabilities:C,pid:null}}async screenshot(e){let t=await this.rpc.call(`computer-tab-screenshot`,{targetId:this.targetId,maxWidth:e.maxWidth,format:e.format});return this.title=t.title,this.url=t.url,this.size=t.nativeWidth&&t.nativeHeight?{width:t.nativeWidth,height:t.nativeHeight}:{width:t.width,height:t.height},this.seq+=1,{seq:this.seq,mime:t.mime,width:t.width,height:t.height,bytes:g(t.base64),...t.overCap?{overCap:!0}:{}}}async input(e){let t=he(this.pointer,e);await this.rpc.call(`computer-tab-input`,{targetId:this.targetId,events:t})}async close(){}};async function E(e,t,n=b(),r){let i=r??await O(e);switch(t.type){case`mousemove`:{let r=D(n,t,i);await e.send(`Input.dispatchMouseEvent`,{type:`mouseMoved`,x:r.x,y:r.y});return}case`button`:await Te(e,t,n,i);return;case`click`:await Ee(e,t,n,i);return;case`drag`:await De(e,t,n,i);return;case`scroll`:{let r=D(n,t,i);await e.send(`Input.dispatchMouseEvent`,{type:`mouseWheel`,x:r.x,y:r.y,deltaX:t.dx,deltaY:t.dy});return}case`key`:await Oe(e,t);return;case`text`:await e.send(`Input.insertText`,{text:t.text});return;case`wait`:await k(Math.max(0,t.ms));return}}async function Te(e,t,n,r){let i=D(n,t,r);await e.send(`Input.dispatchMouseEvent`,{type:t.down?`mousePressed`:`mouseReleased`,x:i.x,y:i.y,button:w[t.button],clickCount:1})}async function Ee(e,t,n,r){let i=D(n,t,r),a=Math.max(1,t.count);for(let n=1;n<=a;n++)await e.send(`Input.dispatchMouseEvent`,{type:`mousePressed`,x:i.x,y:i.y,button:w[t.button],clickCount:n}),t.holdMs&&t.holdMs>0&&await k(t.holdMs),await e.send(`Input.dispatchMouseEvent`,{type:`mouseReleased`,x:i.x,y:i.y,button:w[t.button],clickCount:n})}async function De(e,t,n,r){await E(e,{type:`mousemove`,x:t.x1,y:t.y1},n,r),await E(e,{type:`button`,button:1,down:!0,x:t.x1,y:t.y1},n,r),await E(e,{type:`mousemove`,x:t.x2,y:t.y2},n,r),await E(e,{type:`button`,button:1,down:!1,x:t.x2,y:t.y2},n,r)}async function Oe(e,t){let n=te(t.keysym);if(!n)throw Error(`unknown keysym '${t.keysym}'`);for(let r of ne(n,t.down))await e.send(`Input.dispatchKeyEvent`,{type:r.type,key:r.key,code:r.code,modifiers:r.modifiers,...r.text===void 0?{}:{text:r.text}})}function D(e,t,n){let r=me(e,t);return xe(r.x,r.y,n)}async function O(e){try{let t=await e.evaluate(`window.devicePixelRatio`);return typeof t==`number`&&Number.isFinite(t)&&t>0?t:1}catch{return 1}}function ke(e,t){let n=e.find(e=>e.targetId===t);if(n)return n;let r=e.filter(e=>e.url===t||e.url.startsWith(t));if(r.length===1)return r[0];if(r.length>1)return{error:`ambiguous url '${t}' matches ${r.length} tabs`};let i=e.filter(e=>e.title===t);return i.length===1?i[0]:{error:`no tab matching '${t}'`}}async function Ae(e,t){let n=(await e.listAllTargets()).find(e=>e.targetId===t);return n?{title:n.title,url:n.url}:null}function k(e){return new Promise(t=>setTimeout(t,e))}function je(e,t){for(let n of t){let t=Me(e,n);if(t)return t}return null}function Me(e,t){return t.type===`wait`?null:e.inputAllowed?t.type===`key`||t.type===`text`?e.keyboard?null:`keyboard input is not supported`:t.type===`scroll`?e.scroll?null:`scroll is not supported`:(t.type===`mousemove`||t.type===`button`||t.type===`click`||t.type===`drag`)&&e.mouse===`none`?`mouse input is not supported`:null:`input is not allowed`}const A=`computer — look at and poke a screen (xdotool grammar)
|
|
2
2
|
|
|
3
3
|
Usage:
|
|
4
4
|
computer [-c <id>] [--json] [--native] <verb> [args] [verb ...]
|
|
@@ -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)}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-
|
|
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-DPyr8Wk2.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,11 +75,11 @@ 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 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??
|
|
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??r()}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,r){if(e.sshExec)return e.sshExec(t,n,r);let a=Y(e);if(!a)throw Error(`no panel RPC in this float`);let o=r??3e4,s=await a.call(`tray-exec`,{runtimeId:t,command:n,execToken:`computer-ssh-${Date.now().toString(36)}`,timeoutMs:o},{timeoutMs:o+i});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=gn(s.filter(Boolean).join(`
|
|
79
79
|
`),a,o,r.computer,t,r.json);return{stdout:d?`${d}\n`:``,stderr:c.length?`${c.join(`
|
|
80
80
|
`)}\n`:``,exitCode:0}}async function Ot(e,t,n,r,i){switch(e.verb){case`ls`:return kt(i,t.json);case`add`:return At(e.args,n,r,i);case`rm`:return Rt(e.args,t.computer,n,i);case`use`:return zt(e.args,i);case`info`:return Bt(t,n,i);case`screenshot`:return Vt(e.args,t,n,i);case`text`:return Ht(t,n,i);case`watch`:return Ut(e.args,t,n,i,r);case`record`:return Kt(e.args,t,n,i,r);case`exec`:return Xt(e.args,t,n,i);default:return Zt(e,t,n,i,r)}}function kt(e,t){let n=e.list();if(t){let t=n.map(t=>{let n=e.nameOf(t.id);return n?{...t,name:n}:t});return J(`${JSON.stringify(t)}\n`)}if(n.length===0)return J(`no computers registered
|
|
81
81
|
`);let r=[`ID KIND STATE NAME TITLE`];for(let t of n){let n=e.nameOf(t.id)??`-`;r.push(`${t.id.padEnd(20)} ${t.kind.padEnd(6)} ${t.state.padEnd(9)} ${n.padEnd(10)} ${t.title}${Tt(t)}`)}return J(`${r.join(`
|
|
82
|
-
`)}\n`)}async function At(e,t,n,r){let i=e[0];return i===`tab`?Ft(e,t,n,r):i===`screen`?Lt(e,t,n,r):i===`ssh`?Pt(e,t,n,r):i===`url`?Mt(e,t,n,r):q(`add: unknown kind '${i??``}' — phase 3 supports \`computer add tab\`, \`computer add screen\`, \`computer add ssh\`, and \`computer add url\``)}async function jt(e){if(e.urlFetch)return e.urlFetch;let{createProxiedFetch:t}=await import(`./proxied-fetch-
|
|
82
|
+
`)}\n`)}async function At(e,t,n,r){let i=e[0];return i===`tab`?Ft(e,t,n,r):i===`screen`?Lt(e,t,n,r):i===`ssh`?Pt(e,t,n,r):i===`url`?Mt(e,t,n,r):q(`add: unknown kind '${i??``}' — phase 3 supports \`computer add tab\`, \`computer add screen\`, \`computer add ssh\`, and \`computer add url\``)}async function jt(e){if(e.urlFetch)return e.urlFetch;let{createProxiedFetch:t}=await import(`./proxied-fetch-F-dCBEfh.js`).then(e=>e.o),{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-BWPgnSgg.js`),p=Nt(n,u,a),m=u.exec?(e,t)=>Ct(n,u.runtimeId,e,t?.timeoutMs):async()=>{throw Error(`follower has no exec capability`)},h=await xt(m,a,!!u.exec,!!p,f);if(`error`in h)return q(h.error);if(o){let e=await St(n,u,a,!!p,h.input);if(e)return e}if(l!==void 0&&!p)return q(`add ssh: --display needs a native-capture (computer-capable) Mac follower`);let g=i??(a?`${u.runtimeId} sim ${a}`:l?`${u.runtimeId} display ${l}`:u.runtimeId),_=new d(m,{runtimeId:u.runtimeId,title:g,probe:h,inputAllowed:o,sim:a,display:l,native:p}),v=r.register(_,{name:i});return r.use(v.id),J(`registered ${v.id} (${i??v.title})\n`)}async function Ft(e,t,n,r){let i=V(e,[`-n`,`--name`]),a=H(e).slice(1)[0];if(!a)return q(`add tab: requires <targetId|url>`);let o=gt(n);if(!o)return q(`add tab: no browser API in this float`);let s=ke(await o.listAllTargets(),a);if(`error`in s)return q(s.error);try{T(s)}catch(e){return q(e instanceof Error?e.message:String(e))}let c={title:s.title,url:s.url},l=n.browser&&!n.panelRpc?null:Y(n),u=l?new we(l,s.targetId,c):new Se(o,s.targetId,c),d=r.register(u,{name:i});return r.use(d.id),J(`registered ${d.id} (${i??d.title})\n`)}async function It(e){if(!e)throw Error("add screen: needs a user gesture — type `computer add screen` in the panel terminal, or run it from a cone tool call so an approval card can open the picker");let t=await e.call(`screencapture`,{mimeType:`image/jpeg`,quality:.7,mode:`session`,session:`start`},{timeoutMs:3e5});if(!t.handle)throw Error(`add screen: screen share produced no handle`);return t.handle}async function Lt(e,t,n,r){let i=V(e,[`-n`,`--name`]),a=V(e,[`--__resolved`]),s=Y(n),c=a;if(!c)try{c=o()?(await dt()).handle:await It(s)}catch(e){return q(e instanceof Error?e.message:String(e))}if(!s)return q(`add screen: no panel RPC in this float`);let{BridgedScreenComputerBackend:l,screenComputerId:u}=await import(`./screen-_l91vr17.js`),d=new l(s,c,{title:i??`Display`},()=>{r.refresh(u(c))}),f=r.register(d,{name:i});return r.use(f.id),J(`registered ${f.id} (${i??f.title})\n`)}async function Rt(e,t,n,r){let i=K(r,H(e)[0]??t,Q(n));return`error`in i?q(i.error):await r.unregister(i.id)?J(`unregistered ${i.id}\n`):q(`unknown computer '${i.id}'`)}function zt(e,t){let n=H(e)[0];if(!n)return q(`use: requires <id>`);let r=K(t,n,new Map);return`error`in r?q(r.error):(t.use(r.id),J(`using ${r.id}\n`))}function Bt(e,t,n){let r=K(n,e.computer,Q(t));if(`error`in r)return q(r.error);let i=n.getEntry(r.id);if(!i)return q(`unknown computer '${r.id}'`);let a=n.nameOf(r.id);if(e.json)return J(`${JSON.stringify(a?{...i.descriptor,name:a}:i.descriptor)}\n`);let o=i.descriptor,s=o.size?`${o.size.width}x${o.size.height}`:`-`;return J(`id: ${o.id}\nname: ${a??`-`}\nkind: ${o.kind}\ntitle: ${o.title}\nstate: ${o.state}\nsize: ${s}\npid: ${o.pid??`-`}\n`)}async function Vt(e,n,r,i){let a=Z(i,n.computer,r);if(`exitCode`in a)return a;let o=ge(V(e,[`--size`])),s=await a.backend.screenshot({format:`jpeg`,maxWidth:o}),c=_e(a.backend.describe().size??{width:s.width,height:s.height},{width:s.width,height:s.height});i.rememberShot(a.id,ye(c,Date.now()),s);let l=s.seq>0?s.seq:i.nextSeq(a.id),u=await v({fs:r.fs,cwd:r.cwd,env:r.env,name:$(a.descriptor),seq:l,frame:s}),d=H(e)[0];if(d){let e=r.fs.resolvePath(r.cwd,d);await r.fs.writeFile(e,s.bytes)}let f=[ve(c),ee(u)];return(B(e,`--view`)||B(e,`-v`))&&f.push(`<img:data:${s.mime};base64,${t(s.bytes)}>`),n.json?J(`${JSON.stringify({id:a.id,path:u,mapping:c})}\n`):J(`${f.join(`
|
|
83
83
|
`)}\n`)}async function Ht(e,t,n){let r=Z(n,e.computer,t);if(`exitCode`in r)return r;if(!r.backend.text)return q(`text: '${r.id}' has no text dump`);let i=await r.backend.text();return i===null?q(`text: unavailable for '${r.id}'`):J(`${i}\n`)}async function Ut(e,t,n,r,i){let a=Z(r,t.computer,n);if(`exitCode`in a)return a;let o=Yt(i);if(!o)return q(`watch: computers host is not running`);if(B(e,`--stop`))return o.unwatch(a.id),J(`unwatched ${a.id}\n`);let s=z(e,`--fps`)??2,c=ge(V(e,[`--size`]));return o.watch(a.id,s,c),J(`watching ${a.id} at ${s} fps\n`)}function Wt(e){return`recordClip`in e&&typeof e.recordClip==`function`}function Gt(e){let t=V(e,[`-V`,`--duration`]);if(t===void 0)return 5;let n=Number(t);if(!Number.isFinite(n)||n<=0)throw Error(`-V/--duration requires a positive number of seconds`);return n}async function Kt(e,t,n,r,i){let a=Z(r,t.computer,n);if(`exitCode`in a)return a;let o,s;try{o=Gt(e),s=z(e,`--fps`)??2}catch(e){return q(e instanceof Error?e.message:String(e))}if(s<=0)return q(`--fps requires a positive number`);if(s>10)return q(`--fps exceeds 10`);let c=p(o*1e3),l=H(e)[0]??`clip.webm`,u=n.fs.resolvePath(n.cwd,l),d;try{d=Wt(a.backend)?await a.backend.recordClip(c):await Jt(a.backend,c,s,u,n,i)}catch(e){return q(`record: ${e instanceof Error?e.message:String(e)}`)}d.bytes.byteLength>0&&await n.fs.writeFile(u,d.bytes);let f=d.durationMs??c;return t.json?J(`${JSON.stringify({id:a.id,path:u,durationMs:f,mime:d.mime,...d.frames===void 0?{}:{frames:d.frames},...d.fps===void 0?{}:{fps:d.fps},...d.requestedFps===void 0?{}:{requestedFps:d.requestedFps},...d.truncated?{truncated:!0}:{},...d.slow?{slow:!0}:{}})}\n`):J(`recorded ${f}ms ${d.width}x${d.height}${qt(d)} → ${u}\n`)}function qt(e){let t=[];if(e.frames!==void 0&&e.fps!==void 0){let n=e.slow&&e.requestedFps!==void 0?`, below --fps ${e.requestedFps}`:``;t.push(`${e.frames} frames at ${e.fps} fps${n}`)}return e.truncated&&t.push(`truncated`),t.length>0?` (${t.join(`; `)})`:``}async function Jt(e,t,n,r,i,a){let o=e.screenshotServesStream?e.subscribe?.(n,()=>{},768):void 0;try{return await nt({screenshot:()=>e.screenshot({format:`jpeg`,maxWidth:768}),durationMs:t,fps:n,dest:r,ctx:i,encode:a.encodeRecordedFrames})}finally{o?.()}}function Yt(e){if(e.watch)return{watch:e.watch,unwatch:e.unwatch??(()=>void 0)};let t=y();return t?{watch:t.watch,unwatch:t.unwatch}:null}async function Xt(e,t,n,r){let i=Z(r,t.computer,n);if(`exitCode`in i)return i;if(!i.backend.exec)return q(`exec: '${i.id}' does not support exec`);let a=e.join(` `);if(!a)return q(`exec: requires a command`);let o=await i.backend.exec(a),s=[o.stdout,o.stderr].filter(Boolean).join(`
|
|
84
84
|
`);return{stdout:s?`${s}\n`:``,stderr:``,exitCode:o.exitCode}}async function Zt(e,t,n,r,i){let a=Z(r,t.computer,n);if(`exitCode`in a)return a;let o=rn(e,t.native,a.descriptor),s=je(a.descriptor.capabilities,o);if(s)return q(`${e.verb}: ${s}`);try{await a.backend.input(o)}catch(t){return q(`${e.verb}: ${t instanceof Error?t.message:String(t)}`)}return tn(a,n,r,i)}function Qt(e,t){return t.isWatching?t.isWatching(e):y()?.isWatching(e)??!1}function $t(e,t){let n=e.descriptor.capabilities.frames===`push`;return e.backend.screenshot({format:`jpeg`,maxWidth:t,...n?{pull:!0}:{}})}async function en(e,t,n){if(!(e.descriptor.capabilities.frames===`push`&&Qt(e.id,n)))return $t(e,t);let r=new AbortController,i=n.postActionTimeoutMs??5e3;try{return await nn(e.backend.screenshot({format:`jpeg`,maxWidth:t,signal:r.signal}),i)}catch{return r.abort(),$t(e,t)}}async function tn(e,t,n,r){let i=e.descriptor.lastShot?.width??768,a;try{a=await en(e,i,r)}catch(e){return{stdout:``,stderr:`computer: screenshot failed after input: ${e instanceof Error?e.message:String(e)}\n`,exitCode:0}}let o=n.nextSeq(e.id),s={...a,seq:o};n.rememberFrame(e.id,s);let c=await v({fs:t.fs,cwd:t.cwd,env:t.env,name:$(e.descriptor),seq:o,frame:s});return J(`${ee(c)}\n`)}function nn(e,t){return new Promise((n,r)=>{let i=setTimeout(()=>r(Error(`timed out`)),t);e.then(e=>{clearTimeout(i),n(e)},e=>{clearTimeout(i),r(e)})})}function rn(e,t,n){let r=(e,r)=>be(e,r,n.lastShot,t);switch(e.verb){case`mousemove`:return an(e.args,r);case`click`:case`mousedown`:case`mouseup`:return on(e.verb,e.args,r);case`drag`:return sn(e.args,r,n.capabilities.mouse);case`scroll`:return cn(e.args,r);case`key`:case`keydown`:case`keyup`:return ln(e.verb,e.args);case`type`:return un(e.args);case`wait`:return dn(e.args);default:throw Error(`internal: ${e.verb} is not an input verb`)}}function an(e,t){let n=H(e),r=Number(n[0]),i=Number(n[1]);if(!Number.isFinite(r)||!Number.isFinite(i))throw Error(`mousemove: requires <x> <y>`);let a=B(e,`--relative`),o=a?{x:r,y:i}:t(r,i);return[{type:`mousemove`,x:o.x,y:o.y,relative:a}]}function on(e,t,n){let r=H(t),{button:i,skip:a}=fn(r),o=R(t)??mn(r,a),s=o?n(o.x,o.y):void 0;if(e===`mousedown`)return[{type:`button`,button:i,down:!0,...X(s)}];if(e===`mouseup`)return[{type:`button`,button:i,down:!1,...X(s)}];let c=z(t,`--hold`);return[{type:`click`,button:i,count:z(t,`--repeat`)??1,...c===void 0?{}:{holdMs:c},...X(s)}]}function sn(e,t,n){let r=H(e).map(Number);if(r.length<4||r.some(e=>!Number.isFinite(e)))throw Error(`drag: requires <x1> <y1> <x2> <y2>`);let i=t(r[0],r[1]),a=t(r[2],r[3]);return n===`touch`?[{type:`drag`,x1:i.x,y1:i.y,x2:a.x,y2:a.y}]:[{type:`mousemove`,x:i.x,y:i.y},{type:`button`,button:1,down:!0,x:i.x,y:i.y},{type:`mousemove`,x:a.x,y:a.y},{type:`button`,button:1,down:!1,x:a.x,y:a.y}]}function cn(e,t){let n=H(e),r=Number(n[0]),i=Number(n[1]);if(!Number.isFinite(r)||!Number.isFinite(i))throw Error(`scroll: requires <dx> <dy>`);let a=R(e);return[{type:`scroll`,dx:r,dy:i,...X(a?t(a.x,a.y):void 0)}]}function ln(e,t){if(e===`key`){if(t.length===0)throw Error(`key: no keysym supplied`);return t.map(e=>({type:`key`,keysym:e}))}let n=H(t)[0];if(!n)throw Error(`${e}: no keysym supplied`);return[{type:`key`,keysym:n,down:e===`keydown`}]}function un(e){let t=e.join(` `).replace(/\\n/gu,`
|
|
85
85
|
`).replace(/\\t/gu,` `);if(!t)throw Error(`type: no text supplied`);return[{type:`text`,text:t}]}function dn(e){let t=Number(H(e)[0]);if(!Number.isFinite(t))throw Error(`wait: requires <ms>`);return[{type:`wait`,ms:t}]}function fn(e){return e[0]===void 0?{button:1,skip:0}:e[0]===`left`||e[0]===`middle`||e[0]===`right`||e[0]===`1`||e[0]===`2`||e[0]===`3`?{button:pn(e[0]),skip:1}:{button:1,skip:0}}function pn(e){if(!e||e===`left`||e===`1`)return 1;if(e===`middle`||e===`2`)return 2;if(e===`right`||e===`3`)return 3;let t=Number.parseInt(e,10);if(t===1||t===2||t===3)return t;throw Error(`unknown button '${e}' (use 1|2|3)`)}function mn(e,t){let n=Number(e[t]),r=Number(e[t+1]);if(Number.isFinite(n)&&Number.isFinite(r))return{x:n,y:r}}function X(e){return e?{x:e.x,y:e.y}:{}}const hn=new Set([`ls`,`add`,`rm`,`use`]);function gn(e,t,n,r,i,a){if(a||!t.some(e=>!hn.has(e.verb)))return e;let o=K(n,r,Q(i));if(`error`in o)return e;let s=re(o.id);return e.split(`
|
|
@@ -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-DpgpPBmC.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-DpgpPBmC.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
|
`)?`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./base64-BPBW1Gzr.js";import{m as t}from"./state-B892uW3H.js";import{t as n}from"./realm-browser-fetch-V3uggGbM.js";const r=new TextEncoder;function i(e){return typeof e==`object`&&!!e&&`exitCode`in e}async function a(e,t){try{return await e.fs.readFileBuffer(e.fs.resolvePath(e.cwd,t))}catch{return{message:`curlwright: cannot read ${t}`,exitCode:26}}}function o(e){let t=new Uint8Array(e.length),n=0;for(let r of e)r!==10&&r!==13&&(t[n++]=r);return t.subarray(0,n)}async function s(e,t){let n=t.indexOf(`=`),o=t.indexOf(`@`),s=o!==-1&&(n===-1||o<n),c=s?o:n,l=c===-1?``:t.slice(0,c),u=c===-1?t:t.slice(c+1),d=u;if(s){let t=await a(e,u);if(i(t))return t;d=new TextDecoder().decode(t)}let f=encodeURIComponent(d);return r.encode(l===``?f:`${l}=${f}`)}async function c(e,t){if(t.kind===`urlencode`)return s(e,t.value);if(t.kind===`raw`||!t.value.startsWith(`@`))return r.encode(t.value);let n=await a(e,t.value.slice(1));return i(n)||t.kind===`binary`?n:o(n)}function l(e){let t=Math.max(0,e.length-1),n=e.reduce((e,t)=>e+t.length,0)+t,r=new Uint8Array(n),i=0;return e.forEach((e,t)=>{t>0&&(r[i++]=38),r.set(e,i),i+=e.length}),r}function u(e){let t=e.split(`;`);return{value:t[0],options:t.slice(1)}}function d(e,t){for(let n of e){let e=n.trim();if(e.startsWith(`${t}=`))return e.slice(t.length+1)}return null}function f(e){let t=e.replace(/\/+$/,``),n=t.lastIndexOf(`/`);return n===-1?t:t.slice(n+1)}async function p(e,t,n){let r=n.value.indexOf(`=`);if(r===-1)return{message:`curlwright: -F requires name=content (got "${n.value}")`,exitCode:2};let o=n.value.slice(0,r),s=n.value.slice(r+1);if(n.literal||s[0]!==`@`&&s[0]!==`<`)return t.append(o,s),null;let{value:c,options:l}=u(s.slice(1)),p=await a(e,c);if(i(p))return p;if(s[0]===`<`)return t.append(o,new TextDecoder().decode(p)),null;let m=d(l,`type`)??`application/octet-stream`,h=d(l,`filename`)??f(c);return t.append(o,new Blob([p],{type:m}),h),null}async function m(e,t,n){if(t.length>0&&n.length>0)return{message:`curlwright: -F cannot be combined with -d`,exitCode:2};if(n.length>0){let t=new FormData;for(let r of n){let n=await p(e,t,r);if(n)return n}return{bytes:null,form:t,contentType:null,accept:null}}if(t.length===0)return{bytes:null,form:null,contentType:null,accept:null};let r=[];for(let n of t){let t=await c(e,n);if(i(t))return t;r.push(t)}let a=t.some(e=>e.kind===`json`);return{bytes:l(r),form:null,contentType:a?`application/json`:`application/x-www-form-urlencoded`,accept:a?`application/json`:null}}const h=new Set([`request`,`header`,`data`,`data-raw`,`data-binary`,`data-ascii`,`data-urlencode`,`json`,`form`,`form-string`,`output`,`dump-header`,`write-out`,`max-time`,`user`,`referer`,`range`,`url`,`tab`,`frame`]),g=new Set([`silent`,`show-error`,`include`,`head`,`verbose`,`fail`,`location`,`remote-name`,`get`,`no-credentials`,`help`]),_={X:`request`,H:`header`,d:`data`,F:`form`,o:`output`,D:`dump-header`,w:`write-out`,m:`max-time`,u:`user`,e:`referer`,r:`range`},v={s:`silent`,S:`show-error`,i:`include`,I:`head`,v:`verbose`,f:`fail`,L:`location`,O:`remote-name`,G:`get`,h:`help`},y={cert:`client certificates are the browser profile's to present, not the shell's`,"cert-type":`client certificates are the browser profile's to present, not the shell's`,key:`client certificates are the browser profile's to present, not the shell's`,cacert:`the browser decides which roots to trust`,capath:`the browser decides which roots to trust`,insecure:`the browser enforces TLS verification; a page cannot opt out`,proxy:`proxying is configured on the browser, not per request`,"proxy-user":`proxying is configured on the browser, not per request`,interface:`a page cannot choose an outgoing interface`,"unix-socket":`a page cannot dial a unix socket`,resolve:`a page cannot override DNS resolution`,compressed:`always on — the browser negotiates encoding itself`,cookie:"the tab's own cookies are already sent; set one with `playwright-cli cookie-set`","cookie-jar":"cookies live in the browser profile; read them with `playwright-cli cookies`","limit-rate":`a page cannot throttle a fetch`,"continue-at":"a page fetch cannot resume; use `-H 'Range: bytes=N-'`","connect-timeout":"a page fetch cannot time the connect phase alone; use `--max-time`","http1.1":`the browser negotiates the HTTP version`,http2:`the browser negotiates the HTTP version`,http3:`the browser negotiates the HTTP version`,"no-buffer":`responses are read whole, never streamed to stdout`,"trace-ascii":"no wire trace exists; use `playwright-cli network-requests`",trace:"no wire trace exists; use `playwright-cli network-requests`","user-agent":`User-Agent is a forbidden header name for fetch(); the tab sets it`},b={k:`insecure`,x:`proxy`,b:`cookie`,c:`cookie-jar`,E:`cert`,C:`continue-at`,N:`no-buffer`,A:`user-agent`};function ee(){return{url:null,requestMethod:null,headers:[],data:[],form:[],get:!1,output:null,remoteName:!1,include:!1,head:!1,dumpHeader:null,writeOut:null,silent:!1,showError:!1,verbose:!1,failOnError:!1,maxTimeSeconds:null,credentials:`include`,tab:null,frame:null,user:null,referer:null,range:null,help:!1}}function x(e,t){return{message:`curlwright: option ${e} is not supported in a page context — ${y[t]}`,exitCode:2}}function S(e){return{message:`curlwright: unknown option ${e}\nRun 'curlwright --help' for the supported flags.`,exitCode:2}}function C(e){let t=e.indexOf(`:`);if(t===-1)return e.endsWith(`;`)?{name:e.slice(0,-1).trim(),value:``,unset:!1}:{name:e.trim(),value:``,unset:!1};let n=e.slice(0,t).trim(),r=e.slice(t+1).trim();return{name:n,value:r,unset:r===``}}function w(e,t,n,r){switch(t){case`request`:return e.requestMethod=n,null;case`header`:return e.headers.push(C(n??``)),null;case`data`:case`data-ascii`:return e.data.push({kind:`ascii`,value:n??``}),null;case`data-raw`:return e.data.push({kind:`raw`,value:n??``}),null;case`data-binary`:return e.data.push({kind:`binary`,value:n??``}),null;case`data-urlencode`:return e.data.push({kind:`urlencode`,value:n??``}),null;case`json`:return e.data.push({kind:`json`,value:n??``}),null;case`form`:return e.form.push({value:n??``,literal:!1}),null;case`form-string`:return e.form.push({value:n??``,literal:!0}),null;case`output`:return e.output=n,null;case`dump-header`:return e.dumpHeader=n,null;case`write-out`:return e.writeOut=n,null;case`max-time`:return T(e,n,r);case`user`:return e.user=n,null;case`referer`:return e.referer=n,null;case`range`:return e.range=n,null;case`url`:return e.url=n,null;case`tab`:return e.tab=n,null;case`frame`:return e.frame=n,null;default:return E(e,t,r)}}function T(e,t,n){let r=Number(t);return!Number.isFinite(r)||r<=0?{message:`curlwright: ${n} expects a positive number of seconds`,exitCode:2}:(e.maxTimeSeconds=r,null)}function E(e,t,n){switch(t){case`silent`:return e.silent=!0,null;case`show-error`:return e.showError=!0,null;case`include`:return e.include=!0,null;case`head`:return e.head=!0,null;case`verbose`:return e.verbose=!0,null;case`fail`:return e.failOnError=!0,null;case`location`:return null;case`remote-name`:return e.remoteName=!0,null;case`get`:return e.get=!0,null;case`no-credentials`:return e.credentials=`omit`,null;case`help`:return e.help=!0,null;default:return S(n)}}function te(e,t,n){let r=t[n],i=r.indexOf(`=`),a=(i===-1?r.slice(2):r.slice(2,i)).trim(),o=i===-1?null:r.slice(i+1);if(a in y)return x(`--${a}`,a);if(h.has(a)){let r=o??t[n+1];return r===void 0?{message:`curlwright: option --${a} requires a value`,exitCode:2}:w(e,a,r,`--${a}`)??{next:o===null?n+2:n+1}}return g.has(a)?w(e,a,null,`--${a}`)??{next:n+1}:S(`--${a}`)}function ne(e,t,n){let r=t[n];for(let i=1;i<r.length;i++){let a=r[i];if(a in b)return x(`-${a}`,b[a]);if(a in _){let o=r.slice(i+1),s=o===``?t[n+1]:o;return s===void 0?{message:`curlwright: option -${a} requires a value`,exitCode:2}:w(e,_[a],s,`-${a}`)??{next:o===``?n+2:n+1}}if(!(a in v))return S(`-${a}`);let o=w(e,v[a],null,`-${a}`);if(o)return o}return{next:n+1}}function re(e,t){return e.url!==null&&e.url!==t?{message:`curlwright: only one URL is supported (got "${e.url}" and "${t}")`,exitCode:2}:(e.url=t,null)}function ie(e){let t=ee(),n=0,r=!1;for(;n<e.length;){let i=e[n];if(!r&&i===`--`){r=!0,n++;continue}if(!r&&i.startsWith(`--`)){let r=te(t,e,n);if(`message`in r)return r;n=r.next;continue}if(!r&&i.startsWith(`-`)&&i.length>1){let r=ne(t,e,n);if(`message`in r)return r;n=r.next;continue}let a=re(t,i);if(a)return a;n++}return t}function ae(e){return`message`in e}const D={"accept-charset":`the browser sets it`,"accept-encoding":`the browser negotiates encoding`,connection:`the browser owns the connection`,"content-length":`derived from the body`,cookie:"the tab's cookies are sent already; set one with `playwright-cli cookie-set`",cookie2:`the tab's cookies are sent already`,date:`the browser sets it`,dnt:`the browser sets it`,expect:`a page fetch cannot send it`,host:`derived from the URL`,"keep-alive":`the browser owns the connection`,origin:`the tab's own origin is sent automatically`,referer:`use -e/--referer, which sets the fetch referrer`,te:`the browser owns transfer encoding`,trailer:`the browser owns transfer encoding`,"transfer-encoding":`the browser owns transfer encoding`,upgrade:`the browser owns the connection`,via:`the browser sets it`};function oe(e){let t=e.toLowerCase();return t in D?D[t]:t.startsWith(`proxy-`)?`proxying is configured on the browser`:t.startsWith(`sec-`)?`Sec- headers are reserved for the browser`:null}function se(e){for(let t of e){let e=oe(t.name);if(e)return{message:`curlwright: header "${t.name}" cannot be set from a page — ${e}`,exitCode:2}}return null}function O(e,t){let n=t.toLowerCase();return Object.keys(e).some(e=>e.toLowerCase()===n)}function k(e){let t={},n=new Set;for(let r of e.headers)if(r.name!==``){if(r.unset){n.add(r.name.toLowerCase());continue}t[r.name]=r.value}return{headers:t,suppressed:n}}function A(e,t,n){return!O(e,n)&&!t.has(n)}function j(e){return/^[a-zA-Z]+=/.test(e)?e:`bytes=${e}`}function M(e,t,n,r){n.user!==null&&A(e,t,`authorization`)&&(e.Authorization=`Basic ${btoa(n.user)}`),n.range!==null&&A(e,t,`range`)&&(e.Range=j(n.range)),r.contentType&&A(e,t,`content-type`)&&(e[`Content-Type`]=r.contentType),r.accept&&A(e,t,`accept`)&&(e.Accept=r.accept)}function N(e,t){if(t===``)return e;let[n,r]=P(e);return`${n}${n.includes(`?`)?`&`:`?`}${t}${r}`}function P(e){let t=e.indexOf(`#`);return t===-1?[e,``]:[e.slice(0,t),e.slice(t)]}function F(e,t){return e.requestMethod?e.requestMethod:e.head?`HEAD`:t?`POST`:`GET`}function I(e,t,n){let r=e.toUpperCase();return!t||r!==`GET`&&r!==`HEAD`?null:{message:`curlwright: ${n.requestMethod?`-X ${n.requestMethod}`:`-I`} cannot carry a request body — a page fetch rejects a ${r} with one. Drop the data, or use -G to send it as a query string.`,exitCode:2}}function L(e,t){if(e.url===null)return{message:`curlwright: no URL specified`,exitCode:2};let{headers:n,suppressed:r}=k(e),i=e.get&&t.bytes!==null,a=i?{...t,bytes:null,contentType:null}:t;M(n,r,e,a);let o=i?N(e.url,new TextDecoder().decode(t.bytes??new Uint8Array)):e.url,s=a.bytes!==null||a.form!==null,c=F(e,s),l=I(c,s,e);if(l)return l;let u={method:c,headers:n,credentials:e.credentials,responseType:`binary`};return a.form?u.body=a.form:a.bytes&&(u.body=a.bytes),e.referer!==null&&(u.referrer=e.referer),e.maxTimeSeconds!==null&&(u.timeoutMs=e.maxTimeSeconds*1e3),{url:o,method:c,fetchOptions:u,uploadSize:a.bytes?.length??0}}function R(e){let t=e.fetchOptions.headers??{},n=[`> ${e.method} ${e.url}`];for(let[e,r]of Object.entries(t))n.push(`> ${e}: ${r}`);return n.push(`> `),`${n.join(`
|
|
1
|
+
import{t as e}from"./base64-BPBW1Gzr.js";import{m as t}from"./state-Tykh4Vum.js";import{t as n}from"./realm-browser-fetch-V3uggGbM.js";const r=new TextEncoder;function i(e){return typeof e==`object`&&!!e&&`exitCode`in e}async function a(e,t){try{return await e.fs.readFileBuffer(e.fs.resolvePath(e.cwd,t))}catch{return{message:`curlwright: cannot read ${t}`,exitCode:26}}}function o(e){let t=new Uint8Array(e.length),n=0;for(let r of e)r!==10&&r!==13&&(t[n++]=r);return t.subarray(0,n)}async function s(e,t){let n=t.indexOf(`=`),o=t.indexOf(`@`),s=o!==-1&&(n===-1||o<n),c=s?o:n,l=c===-1?``:t.slice(0,c),u=c===-1?t:t.slice(c+1),d=u;if(s){let t=await a(e,u);if(i(t))return t;d=new TextDecoder().decode(t)}let f=encodeURIComponent(d);return r.encode(l===``?f:`${l}=${f}`)}async function c(e,t){if(t.kind===`urlencode`)return s(e,t.value);if(t.kind===`raw`||!t.value.startsWith(`@`))return r.encode(t.value);let n=await a(e,t.value.slice(1));return i(n)||t.kind===`binary`?n:o(n)}function l(e){let t=Math.max(0,e.length-1),n=e.reduce((e,t)=>e+t.length,0)+t,r=new Uint8Array(n),i=0;return e.forEach((e,t)=>{t>0&&(r[i++]=38),r.set(e,i),i+=e.length}),r}function u(e){let t=e.split(`;`);return{value:t[0],options:t.slice(1)}}function d(e,t){for(let n of e){let e=n.trim();if(e.startsWith(`${t}=`))return e.slice(t.length+1)}return null}function f(e){let t=e.replace(/\/+$/,``),n=t.lastIndexOf(`/`);return n===-1?t:t.slice(n+1)}async function p(e,t,n){let r=n.value.indexOf(`=`);if(r===-1)return{message:`curlwright: -F requires name=content (got "${n.value}")`,exitCode:2};let o=n.value.slice(0,r),s=n.value.slice(r+1);if(n.literal||s[0]!==`@`&&s[0]!==`<`)return t.append(o,s),null;let{value:c,options:l}=u(s.slice(1)),p=await a(e,c);if(i(p))return p;if(s[0]===`<`)return t.append(o,new TextDecoder().decode(p)),null;let m=d(l,`type`)??`application/octet-stream`,h=d(l,`filename`)??f(c);return t.append(o,new Blob([p],{type:m}),h),null}async function m(e,t,n){if(t.length>0&&n.length>0)return{message:`curlwright: -F cannot be combined with -d`,exitCode:2};if(n.length>0){let t=new FormData;for(let r of n){let n=await p(e,t,r);if(n)return n}return{bytes:null,form:t,contentType:null,accept:null}}if(t.length===0)return{bytes:null,form:null,contentType:null,accept:null};let r=[];for(let n of t){let t=await c(e,n);if(i(t))return t;r.push(t)}let a=t.some(e=>e.kind===`json`);return{bytes:l(r),form:null,contentType:a?`application/json`:`application/x-www-form-urlencoded`,accept:a?`application/json`:null}}const h=new Set([`request`,`header`,`data`,`data-raw`,`data-binary`,`data-ascii`,`data-urlencode`,`json`,`form`,`form-string`,`output`,`dump-header`,`write-out`,`max-time`,`user`,`referer`,`range`,`url`,`tab`,`frame`]),g=new Set([`silent`,`show-error`,`include`,`head`,`verbose`,`fail`,`location`,`remote-name`,`get`,`no-credentials`,`help`]),_={X:`request`,H:`header`,d:`data`,F:`form`,o:`output`,D:`dump-header`,w:`write-out`,m:`max-time`,u:`user`,e:`referer`,r:`range`},v={s:`silent`,S:`show-error`,i:`include`,I:`head`,v:`verbose`,f:`fail`,L:`location`,O:`remote-name`,G:`get`,h:`help`},y={cert:`client certificates are the browser profile's to present, not the shell's`,"cert-type":`client certificates are the browser profile's to present, not the shell's`,key:`client certificates are the browser profile's to present, not the shell's`,cacert:`the browser decides which roots to trust`,capath:`the browser decides which roots to trust`,insecure:`the browser enforces TLS verification; a page cannot opt out`,proxy:`proxying is configured on the browser, not per request`,"proxy-user":`proxying is configured on the browser, not per request`,interface:`a page cannot choose an outgoing interface`,"unix-socket":`a page cannot dial a unix socket`,resolve:`a page cannot override DNS resolution`,compressed:`always on — the browser negotiates encoding itself`,cookie:"the tab's own cookies are already sent; set one with `playwright-cli cookie-set`","cookie-jar":"cookies live in the browser profile; read them with `playwright-cli cookies`","limit-rate":`a page cannot throttle a fetch`,"continue-at":"a page fetch cannot resume; use `-H 'Range: bytes=N-'`","connect-timeout":"a page fetch cannot time the connect phase alone; use `--max-time`","http1.1":`the browser negotiates the HTTP version`,http2:`the browser negotiates the HTTP version`,http3:`the browser negotiates the HTTP version`,"no-buffer":`responses are read whole, never streamed to stdout`,"trace-ascii":"no wire trace exists; use `playwright-cli network-requests`",trace:"no wire trace exists; use `playwright-cli network-requests`","user-agent":`User-Agent is a forbidden header name for fetch(); the tab sets it`},b={k:`insecure`,x:`proxy`,b:`cookie`,c:`cookie-jar`,E:`cert`,C:`continue-at`,N:`no-buffer`,A:`user-agent`};function ee(){return{url:null,requestMethod:null,headers:[],data:[],form:[],get:!1,output:null,remoteName:!1,include:!1,head:!1,dumpHeader:null,writeOut:null,silent:!1,showError:!1,verbose:!1,failOnError:!1,maxTimeSeconds:null,credentials:`include`,tab:null,frame:null,user:null,referer:null,range:null,help:!1}}function x(e,t){return{message:`curlwright: option ${e} is not supported in a page context — ${y[t]}`,exitCode:2}}function S(e){return{message:`curlwright: unknown option ${e}\nRun 'curlwright --help' for the supported flags.`,exitCode:2}}function C(e){let t=e.indexOf(`:`);if(t===-1)return e.endsWith(`;`)?{name:e.slice(0,-1).trim(),value:``,unset:!1}:{name:e.trim(),value:``,unset:!1};let n=e.slice(0,t).trim(),r=e.slice(t+1).trim();return{name:n,value:r,unset:r===``}}function w(e,t,n,r){switch(t){case`request`:return e.requestMethod=n,null;case`header`:return e.headers.push(C(n??``)),null;case`data`:case`data-ascii`:return e.data.push({kind:`ascii`,value:n??``}),null;case`data-raw`:return e.data.push({kind:`raw`,value:n??``}),null;case`data-binary`:return e.data.push({kind:`binary`,value:n??``}),null;case`data-urlencode`:return e.data.push({kind:`urlencode`,value:n??``}),null;case`json`:return e.data.push({kind:`json`,value:n??``}),null;case`form`:return e.form.push({value:n??``,literal:!1}),null;case`form-string`:return e.form.push({value:n??``,literal:!0}),null;case`output`:return e.output=n,null;case`dump-header`:return e.dumpHeader=n,null;case`write-out`:return e.writeOut=n,null;case`max-time`:return T(e,n,r);case`user`:return e.user=n,null;case`referer`:return e.referer=n,null;case`range`:return e.range=n,null;case`url`:return e.url=n,null;case`tab`:return e.tab=n,null;case`frame`:return e.frame=n,null;default:return E(e,t,r)}}function T(e,t,n){let r=Number(t);return!Number.isFinite(r)||r<=0?{message:`curlwright: ${n} expects a positive number of seconds`,exitCode:2}:(e.maxTimeSeconds=r,null)}function E(e,t,n){switch(t){case`silent`:return e.silent=!0,null;case`show-error`:return e.showError=!0,null;case`include`:return e.include=!0,null;case`head`:return e.head=!0,null;case`verbose`:return e.verbose=!0,null;case`fail`:return e.failOnError=!0,null;case`location`:return null;case`remote-name`:return e.remoteName=!0,null;case`get`:return e.get=!0,null;case`no-credentials`:return e.credentials=`omit`,null;case`help`:return e.help=!0,null;default:return S(n)}}function te(e,t,n){let r=t[n],i=r.indexOf(`=`),a=(i===-1?r.slice(2):r.slice(2,i)).trim(),o=i===-1?null:r.slice(i+1);if(a in y)return x(`--${a}`,a);if(h.has(a)){let r=o??t[n+1];return r===void 0?{message:`curlwright: option --${a} requires a value`,exitCode:2}:w(e,a,r,`--${a}`)??{next:o===null?n+2:n+1}}return g.has(a)?w(e,a,null,`--${a}`)??{next:n+1}:S(`--${a}`)}function ne(e,t,n){let r=t[n];for(let i=1;i<r.length;i++){let a=r[i];if(a in b)return x(`-${a}`,b[a]);if(a in _){let o=r.slice(i+1),s=o===``?t[n+1]:o;return s===void 0?{message:`curlwright: option -${a} requires a value`,exitCode:2}:w(e,_[a],s,`-${a}`)??{next:o===``?n+2:n+1}}if(!(a in v))return S(`-${a}`);let o=w(e,v[a],null,`-${a}`);if(o)return o}return{next:n+1}}function re(e,t){return e.url!==null&&e.url!==t?{message:`curlwright: only one URL is supported (got "${e.url}" and "${t}")`,exitCode:2}:(e.url=t,null)}function ie(e){let t=ee(),n=0,r=!1;for(;n<e.length;){let i=e[n];if(!r&&i===`--`){r=!0,n++;continue}if(!r&&i.startsWith(`--`)){let r=te(t,e,n);if(`message`in r)return r;n=r.next;continue}if(!r&&i.startsWith(`-`)&&i.length>1){let r=ne(t,e,n);if(`message`in r)return r;n=r.next;continue}let a=re(t,i);if(a)return a;n++}return t}function ae(e){return`message`in e}const D={"accept-charset":`the browser sets it`,"accept-encoding":`the browser negotiates encoding`,connection:`the browser owns the connection`,"content-length":`derived from the body`,cookie:"the tab's cookies are sent already; set one with `playwright-cli cookie-set`",cookie2:`the tab's cookies are sent already`,date:`the browser sets it`,dnt:`the browser sets it`,expect:`a page fetch cannot send it`,host:`derived from the URL`,"keep-alive":`the browser owns the connection`,origin:`the tab's own origin is sent automatically`,referer:`use -e/--referer, which sets the fetch referrer`,te:`the browser owns transfer encoding`,trailer:`the browser owns transfer encoding`,"transfer-encoding":`the browser owns transfer encoding`,upgrade:`the browser owns the connection`,via:`the browser sets it`};function oe(e){let t=e.toLowerCase();return t in D?D[t]:t.startsWith(`proxy-`)?`proxying is configured on the browser`:t.startsWith(`sec-`)?`Sec- headers are reserved for the browser`:null}function se(e){for(let t of e){let e=oe(t.name);if(e)return{message:`curlwright: header "${t.name}" cannot be set from a page — ${e}`,exitCode:2}}return null}function O(e,t){let n=t.toLowerCase();return Object.keys(e).some(e=>e.toLowerCase()===n)}function k(e){let t={},n=new Set;for(let r of e.headers)if(r.name!==``){if(r.unset){n.add(r.name.toLowerCase());continue}t[r.name]=r.value}return{headers:t,suppressed:n}}function A(e,t,n){return!O(e,n)&&!t.has(n)}function j(e){return/^[a-zA-Z]+=/.test(e)?e:`bytes=${e}`}function M(e,t,n,r){n.user!==null&&A(e,t,`authorization`)&&(e.Authorization=`Basic ${btoa(n.user)}`),n.range!==null&&A(e,t,`range`)&&(e.Range=j(n.range)),r.contentType&&A(e,t,`content-type`)&&(e[`Content-Type`]=r.contentType),r.accept&&A(e,t,`accept`)&&(e.Accept=r.accept)}function N(e,t){if(t===``)return e;let[n,r]=P(e);return`${n}${n.includes(`?`)?`&`:`?`}${t}${r}`}function P(e){let t=e.indexOf(`#`);return t===-1?[e,``]:[e.slice(0,t),e.slice(t)]}function F(e,t){return e.requestMethod?e.requestMethod:e.head?`HEAD`:t?`POST`:`GET`}function I(e,t,n){let r=e.toUpperCase();return!t||r!==`GET`&&r!==`HEAD`?null:{message:`curlwright: ${n.requestMethod?`-X ${n.requestMethod}`:`-I`} cannot carry a request body — a page fetch rejects a ${r} with one. Drop the data, or use -G to send it as a query string.`,exitCode:2}}function L(e,t){if(e.url===null)return{message:`curlwright: no URL specified`,exitCode:2};let{headers:n,suppressed:r}=k(e),i=e.get&&t.bytes!==null,a=i?{...t,bytes:null,contentType:null}:t;M(n,r,e,a);let o=i?N(e.url,new TextDecoder().decode(t.bytes??new Uint8Array)):e.url,s=a.bytes!==null||a.form!==null,c=F(e,s),l=I(c,s,e);if(l)return l;let u={method:c,headers:n,credentials:e.credentials,responseType:`binary`};return a.form?u.body=a.form:a.bytes&&(u.body=a.bytes),e.referer!==null&&(u.referrer=e.referer),e.maxTimeSeconds!==null&&(u.timeoutMs=e.maxTimeSeconds*1e3),{url:o,method:c,fetchOptions:u,uploadSize:a.bytes?.length??0}}function R(e){let t=e.fetchOptions.headers??{},n=[`> ${e.method} ${e.url}`];for(let[e,r]of Object.entries(t))n.push(`> ${e}: ${r}`);return n.push(`> `),`${n.join(`
|
|
2
2
|
`)}\n`}function z(e,t){let n=[`< ${e}`];for(let[e,r]of Object.entries(t))n.push(`< ${e}: ${r}`);return n.push(`< `),`${n.join(`
|
|
3
3
|
`)}\n`}function B(t,n){return typeof t==`string`?n===`base64`?e(t):new TextEncoder().encode(t):new Uint8Array}function V(e,t){return t?`HTTP/1.1 ${e} ${t}`:`HTTP/1.1 ${e}`}function H(e,t,n){let r=[V(e,t)];for(let[e,t]of Object.entries(n))r.push(`${e}: ${t}`);return`${r.join(`\r
|
|
4
4
|
`)}\r\n\r\n`}function U(e){if(e.includes(0))return!0;try{return new TextDecoder(`utf-8`,{fatal:!0}).decode(e),!1}catch{return!0}}function W(e){let t;try{t=new URL(e).pathname}catch{t=e.split(`?`)[0]}return t.replace(/\/+$/,``).split(`/`).pop()||null}function G(e,t,n){return new TextEncoder().encode(H(e,t,n)).length}function K(e){try{return new URL(e).origin}catch{return null}}function q(e){return e.map(e=>` --tab=${e.targetId} ${e.url}`).join(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./slicc-version-
|
|
1
|
+
import{n as e}from"./slicc-version-CrbHwbo8.js";import{a as t}from"./just-bash-compat-B-SPHuh_.js";const n=`/dev/null`;function r(e){return e.oldName===n}function i(e){return e.newName===n}function a(e){let t=e.indexOf(` `);return(t===-1?e.replace(/\s+\d{4}-\d\d-\d\d[ T].*$/,``):e.slice(0,t)).trimEnd()}const o=/^@@+ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/;function s(e){let t=o.exec(e);return t?{oldStart:Number(t[1]),oldCount:t[2]===void 0?1:Number(t[2]),newStart:Number(t[3]),newCount:t[4]===void 0?1:Number(t[4])}:null}function c(e,t){return{...e,oldLines:[],newLines:[],oldSeen:0,newSeen:0,changeSeen:!1,leadingContext:0,trailingContext:0,lastSide:null,oldNoNewlineAtEof:!1,newNoNewlineAtEof:!1,raw:[t]}}function l(e){return{oldStart:e.oldStart,newStart:e.newStart,oldLines:e.oldLines,newLines:e.newLines,leadingContext:e.leadingContext,trailingContext:e.trailingContext,oldNoNewlineAtEof:e.oldNoNewlineAtEof,newNoNewlineAtEof:e.newNoNewlineAtEof,raw:e.raw}}function u(e){return e.oldSeen>=e.oldCount&&e.newSeen>=e.newCount}function d(e,t){e.oldLines.push(t),e.newLines.push(t),e.oldSeen++,e.newSeen++,e.lastSide=`both`,e.changeSeen?e.trailingContext++:e.leadingContext++}function f(e,t,n){t===`old`?(e.oldLines.push(n),e.oldSeen++):(e.newLines.push(n),e.newSeen++),e.lastSide=t,e.changeSeen=!0,e.trailingContext=0}function p(e,t){if(t.startsWith(`\\`))return(e.lastSide===`old`||e.lastSide===`both`)&&(e.oldNoNewlineAtEof=!0),(e.lastSide===`new`||e.lastSide===`both`)&&(e.newNoNewlineAtEof=!0),e.raw.push(t),!0;if(t===``)return d(e,``),e.raw.push(` `),!0;let n=t.slice(1);switch(t[0]){case` `:d(e,n);break;case`-`:f(e,`old`,n);break;case`+`:f(e,`new`,n);break;default:return!1}return e.raw.push(t),!0}function m(e){e.hunk&&e.current&&e.current.hunks.push(l(e.hunk)),e.hunk=null,e.complete=!1}function h(e,t){let n=e.hunk;if(!n)return!1;if(e.complete){let r=t.startsWith(`\\`);return r&&p(n,t),m(e),r}return p(n,t)?(u(n)&&(e.complete=!0),!0):(m(e),!1)}function g(e){let t={files:[],current:null,hunk:null,complete:!1,pendingOld:null};for(let n of e.split(`
|
|
2
2
|
`)){if(h(t,n))continue;if(n.startsWith(`--- `)){t.pendingOld=a(n.slice(4));continue}if(n.startsWith(`+++ `)&&t.pendingOld!==null){t.current={oldName:t.pendingOld,newName:a(n.slice(4)),hunks:[]},t.files.push(t.current),t.pendingOld=null;continue}t.pendingOld=null;let e=s(n);e&&t.current&&(t.hunk=c(e,n))}return m(t),t.files.filter(e=>e.hunks.length>0)}function _(e){return{oldName:e.newName,newName:e.oldName,hunks:e.hunks.map(e=>({oldStart:e.newStart,newStart:e.oldStart,oldLines:e.newLines,newLines:e.oldLines,leadingContext:e.leadingContext,trailingContext:e.trailingContext,oldNoNewlineAtEof:e.newNoNewlineAtEof,newNoNewlineAtEof:e.oldNoNewlineAtEof,raw:v(e)}))}}function v(e){return e.raw.map((t,n)=>n===0?`@@ -${e.newStart},${e.newLines.length} +${e.oldStart},${e.oldLines.length} @@`:t.startsWith(`-`)?`+${t.slice(1)}`:t.startsWith(`+`)?`-${t.slice(1)}`:t)}function y(e){if(e===``)return{lines:[],newlineAtEof:!0};let t=e.endsWith(`
|
|
3
3
|
`),n=e.split(`
|
|
4
4
|
`);return t&&n.pop(),{lines:n,newlineAtEof:t}}function b(e){return e.lines.length===0?``:e.lines.join(`
|