sliccy 6.166.0 → 6.168.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/node-server/_shared/base64.d.ts.map +1 -1
- package/dist/node-server/_shared/base64.js +7 -3
- package/dist/node-server/_shared/base64.js.map +1 -1
- package/dist/node-server/_shared/computer-protocol.d.ts +4 -0
- package/dist/node-server/_shared/computer-protocol.d.ts.map +1 -1
- package/dist/node-server/_shared/tray-sync-protocol.d.ts +66 -2
- package/dist/node-server/_shared/tray-sync-protocol.d.ts.map +1 -1
- package/dist/node-server/_shared/tray-sync-protocol.js +75 -2
- package/dist/node-server/_shared/tray-sync-protocol.js.map +1 -1
- package/dist/node-server/computer-demo.d.ts +36 -0
- package/dist/node-server/computer-demo.js +126 -0
- package/dist/node-server/index.js +13 -3
- package/dist/node-server/runtime-flags.d.ts +2 -0
- package/dist/node-server/runtime-flags.js +5 -0
- package/dist/ui/.vite/manifest.json +288 -265
- package/dist/ui/assets/SKILL-CQxpe2fi.js +1 -0
- package/dist/ui/assets/{account-store-BEqmysw9.js → account-store-jjUZwcjI.js} +1 -1
- package/dist/ui/assets/{account-store-C35GYvum.js → account-store-pXgYgQVx.js} +2 -2
- package/dist/ui/assets/{adobe-BcTGFCnQ.js → adobe-C42_geSB.js} +1 -1
- package/dist/ui/assets/{adobe-BDH5oLAN.js → adobe-CKCos4Yf.js} +2 -2
- package/dist/ui/assets/{agent-panels-DvqNnkLk.js → agent-panels-C34MxFav.js} +1 -1
- package/dist/ui/assets/{almost-bash-shell-headless-DqTtE9CM.js → almost-bash-shell-headless-B5YFQ1wh.js} +521 -548
- package/dist/ui/assets/{apply-layout-CjYRGs37.js → apply-layout-D2V9rxZu.js} +1 -1
- package/dist/ui/assets/approval-timeout-BQ29Z0gf.js +1 -0
- package/dist/ui/assets/{apps-dzoLZ_5W.js → apps-CVkFAyGJ.js} +1 -1
- package/dist/ui/assets/{azure-openai-DKGdcr4S.js → azure-openai-DucxGbzT.js} +1 -1
- package/dist/ui/assets/{azure-openai-BffwoCtp.js → azure-openai-yAg-vpgC.js} +1 -1
- package/dist/ui/assets/{backend-hostfs-CWIlIhve.js → backend-hostfs-Ls-A2H2N.js} +1 -1
- package/dist/ui/assets/{base64-DzRgusa4.js → base64-BPBW1Gzr.js} +1 -1
- package/dist/ui/assets/{base64-DJRlyqZu.js → base64-ELzoYfwP.js} +1 -1
- package/dist/ui/assets/browser-DuyhpHbR.js +1 -0
- package/dist/ui/assets/{capability-Ci9JmpEG.js → capability-SIitRcq_.js} +2 -2
- package/dist/ui/assets/{cdp-DXT6yEL1.js → cdp-DDYzhKE6.js} +1 -1
- package/dist/ui/assets/{cerebras-BF5efkRL.js → cerebras-CNR3k849.js} +1 -1
- package/dist/ui/assets/{cerebras-By0l7t0i.js → cerebras-_--8Umtj.js} +1 -1
- package/dist/ui/assets/{client-B6iKb_ye.js → client-_vVqanZy.js} +1 -1
- package/dist/ui/assets/{composer-speech-DIEePbQC.js → composer-speech-D8IeaPdq.js} +1 -1
- package/dist/ui/assets/{connect-surface-DBqs7oHf.js → connect-surface-Bnfiw-HT.js} +1 -1
- package/dist/ui/assets/{core-BMcS6rur.js → core-eZ1aR21T.js} +1 -1
- package/dist/ui/assets/core-vzw5Cr8B.js +36 -0
- package/dist/ui/assets/{directed-approval-D1lGElvD.js → directed-approval-CtbQZigA.js} +1 -1
- package/dist/ui/assets/{discovery-preference-Bw3Fi0jd.js → discovery-preference-G3mw_EUO.js} +1 -1
- package/dist/ui/assets/encode-frame-B8GkHc2t.js +1 -0
- package/dist/ui/assets/engine-D531XNHE.js +1 -0
- package/dist/ui/assets/{ensure-speech-assets-BJXemBO4.js → ensure-speech-assets-BGvEg25e.js} +1 -1
- package/dist/ui/assets/es-DJTRBqjm.js +52 -0
- package/dist/ui/assets/{extension-media-capture-BvLVZFQ0.js → extension-media-capture-DMB4r9UQ.js} +1 -1
- package/dist/ui/assets/{extension-ops-B0oi7ypc.js → extension-ops-B2RMipFn.js} +1 -1
- package/dist/ui/assets/fake-computer-Jawax3MO.js +352 -0
- package/dist/ui/assets/{float-topology-YtctpJaG.js → float-topology-CyZCUfkj.js} +1 -1
- package/dist/ui/assets/{follower-navigate-watcher-DnnHgZbM.js → follower-navigate-watcher-BAstHBQ5.js} +1 -1
- package/dist/ui/assets/frames-FHlUaNCs.js +1 -0
- package/dist/ui/assets/{frozen-archive-writer-DYPhPMg7.js → frozen-archive-writer-DFE4MYD-.js} +1 -1
- package/dist/ui/assets/{fs-CBH-hQcI.js → fs-BLqkdQnU.js} +1 -1
- package/dist/ui/assets/{fs-BapOupIM.js → fs-DRouAGaW.js} +2 -2
- package/dist/ui/assets/{gelatiere-store-C2u47uk0.js → gelatiere-store-D_JKXdpV.js} +1 -1
- package/dist/ui/assets/{gelatiere-unit-wvDEO7gH.js → gelatiere-unit-Q-gB5yVf.js} +1 -1
- package/dist/ui/assets/{github-Db015Tee.js → github-Cfpmwf1n.js} +1 -1
- package/dist/ui/assets/{github-Bx7_6LBm.js → github-DLAFwQdm.js} +2 -2
- package/dist/ui/assets/{github-auth-DtKS6UIX.js → github-auth-DnIBV6_3.js} +1 -1
- package/dist/ui/assets/{github-copilot-CtOjxhqK.js → github-copilot-BFfPdiKK.js} +1 -1
- package/dist/ui/assets/{github-copilot-eCfmryv6.js → github-copilot-EtGePnlq.js} +1 -1
- package/dist/ui/assets/{github-install-B6W4-xcc.js → github-install-1nDy7YKR.js} +1 -1
- package/dist/ui/assets/{github-zip-Bv1smNmy.js → github-zip-B-FKgUOX.js} +1 -1
- package/dist/ui/assets/{guest-tool-gate-Mu-876Hm.js → guest-tool-gate-GANtsowg.js} +1 -1
- package/dist/ui/assets/{hear-BZHckZJM.js → hear-BMEHlsdb.js} +1 -1
- package/dist/ui/assets/{help-BU2Hjl0P.js → help-DWGffc9y.js} +1 -1
- package/dist/ui/assets/host-AggLcUuh.js +1 -0
- package/dist/ui/assets/host-command-XUdketMY.js +28 -0
- package/dist/ui/assets/{image-markers-DuyWsic3.js → image-markers-CwM1dvoI.js} +1 -1
- package/dist/ui/assets/{image-markers-BFDmhPy4.js → image-markers-q8JQTtid.js} +1 -1
- package/dist/ui/assets/{installer-BbtH3u7z.js → installer-BHkUBh6r.js} +1 -1
- package/dist/ui/assets/{isomorphic-git-D2fV6xS-.js → isomorphic-git-B8-ayEVu.js} +7 -7
- package/dist/ui/assets/{isomorphic-git-B7et_8Xe.js → isomorphic-git-DuHitnAl.js} +10 -10
- package/dist/ui/assets/{js-realm-worker-BT3mfq3w.js → js-realm-worker-Zk_Jd1kr.js} +2 -2
- package/dist/ui/assets/jsh-CmIpo35m.js +1 -0
- package/dist/ui/assets/{jsh-executor-BWlgcE2N.js → jsh-executor-K5sbbmbA.js} +3 -3
- package/dist/ui/assets/{jsh-runtime-extensions-BnLXkzqP.js → jsh-runtime-extensions-ddeGEOUw.js} +1 -1
- package/dist/ui/assets/{kernel-worker-Dseu067f.js → kernel-worker-Bq9IjFw5.js} +34 -34
- package/dist/ui/assets/lick-urls-CgPiVwD-.js +1 -0
- package/dist/ui/assets/lick-ws-bridge-8HhoCHq8.js +1 -0
- package/dist/ui/assets/{lick-ws-bridge-Cc9sToY7.js → lick-ws-bridge-Ra_w6naR.js} +1 -1
- package/dist/ui/assets/{live-session-snapshot-B70raB09.js → live-session-snapshot-lUnl-mYx.js} +1 -1
- package/dist/ui/assets/{local-llm-Dcp5IIP-.js → local-llm-B80bjN-D.js} +1 -1
- package/dist/ui/assets/{local-llm-DpSg-Oe3.js → local-llm-OcOXhJKt.js} +1 -1
- package/dist/ui/assets/{main-CfF8CFBr.js → main-BRoNZPBl.js} +3 -3
- package/dist/ui/assets/{main-cherry-VckJPHm5.js → main-cherry-DD2gWq8O.js} +1 -1
- package/dist/ui/assets/{memory-curation-seam-DUaZFZG9.js → memory-curation-seam-CcNJCyMJ.js} +1 -1
- package/dist/ui/assets/{memory-health-D7uEvfAx.js → memory-health-DZmKH-IW.js} +1 -1
- package/dist/ui/assets/memory-v2-flag-DK0lPu0X.js +1 -0
- package/dist/ui/assets/{memory-write-execute-rXtR1z76.js → memory-write-execute-6yK_MOdy.js} +1 -1
- package/dist/ui/assets/{mount-8lU2iH4k.js → mount-CQBa9QoF.js} +3 -3
- package/dist/ui/assets/{mount-DoM0CLGG.js → mount-Dz-lPlKf.js} +1 -1
- package/dist/ui/assets/{mount-bridge-client-3a86Q6J0.js → mount-bridge-client-BOZDQLbT.js} +1 -1
- package/dist/ui/assets/{mount-bridge-client-CO2HxXrT.js → mount-bridge-client-BRywSH1d.js} +1 -1
- package/dist/ui/assets/{mv-DRuZuDHt.js → mv-C7mk2zT1.js} +1 -1
- package/dist/ui/assets/{new-session-DEhAjxP1.js → new-session-CXbgg4am.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-DNTgbEZF.js → oauth-bootstrap-1lsyWJGc.js} +2 -2
- package/dist/ui/assets/{oauth-service-IlBYPvwr.js → oauth-service-CRmx6zI1.js} +1 -1
- package/dist/ui/assets/{oauth-service-BsW9nY_u.js → oauth-service-WTeDvR5m.js} +1 -1
- package/dist/ui/assets/{onboarding-orchestrator-DzPQ0pVG.js → onboarding-orchestrator-SsjiVLB2.js} +1 -1
- package/dist/ui/assets/{openai-codex-DYRKYWTe.js → openai-codex-BJzpp5yt.js} +1 -1
- package/dist/ui/assets/{openai-codex-CsAhfz0D.js → openai-codex-DDer9WGr.js} +1 -1
- package/dist/ui/assets/{openrouter-D9T6tXUF.js → openrouter-CdsU1YkP.js} +1 -1
- package/dist/ui/assets/{openrouter-free-CPshAgQD.js → openrouter-free-D1H2Ji7e.js} +1 -1
- package/dist/ui/assets/{openrouter-free-DfbYsnmf.js → openrouter-free-zplQAXSX.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-xKlWi_wI.js → openrouter-oauth-Bu3uuWMP.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-hZg6oH0A.js → openrouter-oauth-CrvWvUZV.js} +1 -1
- package/dist/ui/assets/{openrouter-IyZlRHg4.js → openrouter-xGsvfFPH.js} +1 -1
- package/dist/ui/assets/{opfs-mount-C9Iamj6N.js → opfs-mount-BqBx391V.js} +1 -1
- package/dist/ui/assets/{page-approval-service-B8t-buCi.js → page-approval-service-BkqDCbBQ.js} +1 -1
- package/dist/ui/assets/panel-rpc-handlers-CXr7dAtk.js +2 -0
- package/dist/ui/assets/panelize-shell-DjnrzeLU.js +4 -0
- package/dist/ui/assets/{pi-edit-execution-D6vx5LyF.js → pi-edit-execution-Dn7wc7f8.js} +1 -1
- package/dist/ui/assets/{port-bridge-client-Dn8JtUyP.js → port-bridge-client-CZFX4fUT.js} +1 -1
- package/dist/ui/assets/{port-bridge-client-Ds3xwapn.js → port-bridge-client-CkkC3v5w.js} +1 -1
- package/dist/ui/assets/{provider-Z5aj7SzG.js → provider-BCNJf9_1.js} +2 -2
- package/dist/ui/assets/{provider-3--cEcAF.js → provider-DiIrGlmw.js} +1 -1
- package/dist/ui/assets/{provider-settings-D9sjEfYE.js → provider-settings-DSf8xD9N.js} +1 -1
- package/dist/ui/assets/provider-store-access-CsczvZfg.js +1 -0
- package/dist/ui/assets/provider-store-access-et-xszx-.js +1 -0
- package/dist/ui/assets/{providers-CnoKdyLc.js → providers-CFveri5U.js} +2 -2
- package/dist/ui/assets/{providers-DVvrXbtx.js → providers-CfE8Z8rn.js} +1 -1
- package/dist/ui/assets/{proxied-fetch-DEK8DT-z.js → proxied-fetch-CPL8wJM2.js} +1 -1
- package/dist/ui/assets/{proxied-fetch-DyBveeCl.js → proxied-fetch-CnCvBaGV.js} +1 -1
- package/dist/ui/assets/{quick-llm-DjWE-wQw.js → quick-llm-t6CBwwSm.js} +1 -1
- package/dist/ui/assets/{realm-inprocess-D0iWBQzz.js → realm-inprocess-CmaGqRYS.js} +2 -2
- package/dist/ui/assets/{recovery-screen-Y1CSyfR-.js → recovery-screen-DdKutJyi.js} +1 -1
- package/dist/ui/assets/{redirect-uri-CgKdq7-K.js → redirect-uri-D2aDPCyB.js} +1 -1
- package/dist/ui/assets/{remote-terminal-view-D4Ah4AQY.js → remote-terminal-view-CA-SfvvZ.js} +2 -2
- package/dist/ui/assets/{request-body-DkfS6k_a.js → request-body-BF4moGct.js} +1 -1
- package/dist/ui/assets/{rest-ops-C8YK53pT.js → rest-ops-Yu_dXm4T.js} +1 -1
- package/dist/ui/assets/{rest-ops-DNanZY2-.js → rest-ops-aP40ni1y.js} +1 -1
- package/dist/ui/assets/{restore-DOkDX8BI.js → restore-Dk9r9feA.js} +1 -1
- package/dist/ui/assets/{run-BOkp5G58.js → run-1aYSFTwj.js} +2 -2
- package/dist/ui/assets/{run-B-t7kWH3.js → run-BEs473Sp.js} +1 -1
- package/dist/ui/assets/run-CHjRjdbt.js +75 -0
- package/dist/ui/assets/{run-DgNh1E56.js → run-CNldrNje.js} +3 -3
- package/dist/ui/assets/{run-Bld9B0W0.js → run-CreCrLyX.js} +1 -1
- package/dist/ui/assets/{run-a67LpkRp.js → run-CyYVrNXy.js} +2 -2
- package/dist/ui/assets/{run-B-fA26ea.js → run-D5s_jfOL.js} +1 -1
- package/dist/ui/assets/{run-D0C4PgZM.js → run-DuW-7oJj.js} +2 -2
- package/dist/ui/assets/{run-BOc9XLhg.js → run-QfYlwe2c.js} +1 -1
- package/dist/ui/assets/{run-vEDh-Me-.js → run-V-RPlN7V.js} +2 -2
- package/dist/ui/assets/{run-BWJSDhS7.js → run-wxYu-gUG.js} +2 -2
- package/dist/ui/assets/screen-s6LdF1JP.js +1 -0
- package/dist/ui/assets/screen-share-approval-live-D388fVD9.js +1 -0
- package/dist/ui/assets/screencapture-media-BjmoKpyn.js +1 -0
- package/dist/ui/assets/screencapture-media-CM5E2g6c.js +1 -0
- package/dist/ui/assets/screencapture-media-shared-DlK1Wqh8.js +1 -0
- package/dist/ui/assets/{screencapture-run-XrgS6hEd.js → screencapture-run-zmx5QKf_.js} +2 -2
- package/dist/ui/assets/{secret-env-CDLWFhsq.js → secret-env-DgrZZVFU.js} +1 -1
- package/dist/ui/assets/secret-topology-BrobAGSV.js +1 -0
- package/dist/ui/assets/{secrets-bridge-client--VZ3E0yk.js → secrets-bridge-client-BJqZCK6Q.js} +1 -1
- package/dist/ui/assets/{secrets-bridge-client-ZpBL1Zhl.js → secrets-bridge-client-CeK7HpDf.js} +1 -1
- package/dist/ui/assets/{session-command-memory-DB2GmPSU.js → session-command-memory-x5HxxZtb.js} +2 -2
- package/dist/ui/assets/{session-jsonl-D_pTYppB.js → session-jsonl-3Y2sXuNG.js} +1 -1
- package/dist/ui/assets/{session-jsonl-DFC-2T76.js → session-jsonl-DI8wVUpH.js} +1 -1
- package/dist/ui/assets/{session-search-index-CN1zDLlx.js → session-search-index-DRFKeHXl.js} +1 -1
- package/dist/ui/assets/{setup-feature-flags-remote-BVd31Z12.js → setup-feature-flags-remote-CEtNYgED.js} +1 -1
- package/dist/ui/assets/{signed-fetch-BY2Mdjqe.js → signed-fetch-E-2q08XL.js} +1 -1
- package/dist/ui/assets/{silent-renew-backoff-CKAAh6GN.js → silent-renew-backoff-Ddlf2gAw.js} +1 -1
- package/dist/ui/assets/slicc-version-bYxfYms3.js +1 -0
- package/dist/ui/assets/{snapshot-gi8tDzvN.js → snapshot-Dv7-7kFE.js} +1 -1
- package/dist/ui/assets/{snapshot-features-DjMJkCGq.js → snapshot-features-rlYmVQ8i.js} +1 -1
- package/dist/ui/assets/{soundscape-Bl3LhUk9.js → soundscape-CyBhtUGQ.js} +1 -1
- package/dist/ui/assets/{speak-BY_fDou2.js → speak-qRc1po5e.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-C-NUJqPy.js → sprinkle-manager-DT2AYalc.js} +1 -1
- package/dist/ui/assets/{sprinkle-renderer-CcA6ie5u.js → sprinkle-renderer-DF4JYgsw.js} +1 -1
- package/dist/ui/assets/ssh-BQqlQVXQ.js +6 -0
- package/dist/ui/assets/{state-z3wOHLww.js → state-RVr0GidF.js} +1 -1
- package/dist/ui/assets/{store-ByUcAFUa.js → store-BlFQl8dG.js} +1 -1
- package/dist/ui/assets/{store-ChWzn_H8.js → store-CYwEydJ4.js} +1 -1
- package/dist/ui/assets/{sudo-DNZFIZ-H.js → sudo-BqpeZUOO.js} +1 -1
- package/dist/ui/assets/sudo-fs-C6r_MIIY.js +3 -0
- package/dist/ui/assets/{supervisor-BtH2-9sE.js → supervisor-C1sPrIbH.js} +1 -1
- package/dist/ui/assets/{sync-dialog-Jqz74VkZ.js → sync-dialog-sC277gbg.js} +1 -1
- package/dist/ui/assets/tool-ui-DRnUkp2g.js +1 -0
- package/dist/ui/assets/{transformers-env-pq1E2H6B.js → transformers-env-BzsQpYgD.js} +1 -1
- package/dist/ui/assets/{tray-leader-Bas0lH9O.js → tray-leader-Gx_yzXFX.js} +1 -1
- package/dist/ui/assets/{lick-urls-DdKPDlgq.js → tray-leader-status-CpkFr6n7.js} +1 -1
- package/dist/ui/assets/{tray-leave-runtime-B9aV_guA.js → tray-leave-runtime-Cuj-CStD.js} +1 -1
- package/dist/ui/assets/{tray-runtime-config-BZoJXfW0.js → tray-runtime-config-dyxCfUex.js} +1 -1
- package/dist/ui/assets/{tray-sidecar-DA8NfCV6.js → tray-sidecar-BCAds1ts.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-B5ym__Gu.js → upgrade-detection-CXNgKpwK.js} +1 -1
- package/dist/ui/assets/{upskill-lick-skip-CZGM2OFA.js → upskill-lick-skip-wDM3Vdyq.js} +1 -1
- package/dist/ui/assets/url-Dq7PTmNp.js +1 -0
- package/dist/ui/assets/v86-Cv7l0TeZ.js +1 -0
- package/dist/ui/assets/voice-reply-DPbxkmsy.js +1 -0
- package/dist/ui/assets/{wc-attach-C5yXIQNU.js → wc-attach-C-7ZwxKV.js} +3 -3
- package/dist/ui/assets/wc-browser-D-03DBqa.js +1 -0
- package/dist/ui/assets/wc-computers-m_Qiklfg.js +3 -0
- package/dist/ui/assets/{wc-detached-f_qit-5b.js → wc-detached-D5_bAfyn.js} +1 -1
- package/dist/ui/assets/{wc-extension-DRx21-cq.js → wc-extension-DSvNnUY6.js} +2 -2
- package/dist/ui/assets/{wc-follower-DcKt92kM.js → wc-follower-1feBQ0f-.js} +3 -3
- package/dist/ui/assets/wc-follower-oauth-JZo8mi8y.js +5 -0
- package/dist/ui/assets/{wc-gelatiere-qAW7lWGW.js → wc-gelatiere-Wr8PEKDG.js} +1 -1
- package/dist/ui/assets/wc-live-DT1WB50h.js +427 -0
- package/dist/ui/assets/{wc-nav-DzPuXq_n.js → wc-nav-BCq8EXtI.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-CXM-z-7_.js → wc-onboarding-1l4fZpDo.js} +2 -2
- package/dist/ui/assets/{wc-permissions-BsGMi4OQ.js → wc-permissions-CCA-0PP4.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-BBqbsuml.js → wc-placeholder-ODIHzW-8.js} +3 -3
- package/dist/ui/assets/{wc-secret-request-BSUlxVVi.js → wc-secret-request-CWyoYT_T.js} +1 -1
- package/dist/ui/assets/{wc-settings-55mC-jVS.js → wc-settings-Df49ivPm.js} +3 -3
- package/dist/ui/assets/{wc-shell-C71iKreG.js → wc-shell-CZ95TYrc.js} +242 -187
- package/dist/ui/assets/{wc-shortcut-config-Crjq_rF1.js → wc-shortcut-config-CmRCkDN0.js} +1 -1
- package/dist/ui/assets/{wc-sprinkles-Caji5y7n.js → wc-sprinkles-Cm0F47mC.js} +2 -2
- package/dist/ui/assets/{wc-transcript-export-Dqe3SH1t.js → wc-transcript-export-CMdPvQk4.js} +2 -2
- package/dist/ui/assets/wc-tray-2XQPor_4.js +5 -0
- package/dist/ui/assets/welcome-detection-CouG8kRR.js +1 -0
- package/dist/ui/assets/{whisper-session-DfILe4Yb.js → whisper-session-z9qnQTAM.js} +2 -2
- package/dist/ui/assets/{xai-grok-CVLBrxdD.js → xai-grok-BmuhN83h.js} +1 -1
- package/dist/ui/assets/{xai-grok-Dp8n52fO.js → xai-grok-CaNUqqnT.js} +1 -1
- package/dist/ui/index.html +11 -11
- package/dist/ui/packages/webapp/index.html +11 -11
- package/package.json +1 -1
- package/dist/ui/assets/SKILL-DB5CVwyu.js +0 -1
- package/dist/ui/assets/browser-2rCVqcqy.js +0 -1
- package/dist/ui/assets/core-DP-MJcag.js +0 -36
- package/dist/ui/assets/engine-B-OPe78i.js +0 -1
- package/dist/ui/assets/es-DwGGEZle.js +0 -51
- package/dist/ui/assets/fake-computer-1f2_4vxY.js +0 -65
- package/dist/ui/assets/host-BQ2qKD-D.js +0 -1
- package/dist/ui/assets/jsh-CrSWPG4t.js +0 -1
- package/dist/ui/assets/keys-n5_C9sHW.js +0 -1
- package/dist/ui/assets/lick-ws-bridge-ChigxI36.js +0 -1
- package/dist/ui/assets/memory-v2-flag-BHVbti6Z.js +0 -1
- package/dist/ui/assets/panel-rpc-handlers-Nu-wOrG9.js +0 -2
- package/dist/ui/assets/panelize-shell-tFElgHWF.js +0 -4
- package/dist/ui/assets/provider-store-access-M0PvJ08M.js +0 -1
- package/dist/ui/assets/provider-store-access-RxIHhH6d.js +0 -1
- package/dist/ui/assets/run-BEt0RS3J.js +0 -52
- package/dist/ui/assets/screencapture-media-B1iFS6Qy.js +0 -1
- package/dist/ui/assets/screencapture-media-YBE2VnLF.js +0 -1
- package/dist/ui/assets/secret-topology-DLJBhHOi.js +0 -1
- package/dist/ui/assets/slicc-version-BZyTvfoc.js +0 -1
- package/dist/ui/assets/sudo-fs-D620mZry.js +0 -3
- package/dist/ui/assets/v86-DseFx8Yp.js +0 -1
- package/dist/ui/assets/voice-reply-CL5tDo0l.js +0 -1
- package/dist/ui/assets/wc-browser-DO1Pnegi.js +0 -1
- package/dist/ui/assets/wc-follower-oauth-BF3qXDTt.js +0 -5
- package/dist/ui/assets/wc-live-DOMCfDT6.js +0 -427
- package/dist/ui/assets/wc-tray-B7ayzT1W.js +0 -5
- package/dist/ui/assets/welcome-detection-CEARSpAq.js +0 -1
package/dist/ui/assets/{extension-media-capture-BvLVZFQ0.js → extension-media-capture-DMB4r9UQ.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./base64-
|
|
1
|
+
import{r as e}from"./base64-BPBW1Gzr.js";import{t}from"./runtime-env-DadgceZk.js";function n(){return t()}function r(e){return{bytes:s(e.bytesBase64),mimeType:e.mimeType??`application/octet-stream`,width:e.width??0,height:e.height??0,...typeof e.durationMs==`number`?{durationMs:e.durationMs}:{}}}async function i(e,n={}){if(!t())throw Error(`media capture popup requires the extension runtime`);let i=n.timeoutMs??3e5,s=a(),c=o(JSON.stringify({...e,requestId:s})),l=chrome.runtime.getURL(`capture-popup.html?req=${c}`);return await new Promise((e,t)=>{let n=!1,a=()=>{if(!n){n=!0,clearTimeout(c);try{chrome.runtime.onMessage.removeListener(o)}catch{}}},o=n=>{let i=n;if(i?.source===`capture-popup`&&i.requestId===s){if(a(),i.ok&&i.bytesBase64!==void 0)try{e(r(i))}catch(e){t(e instanceof Error?e:Error(String(e)))}else t(Error(i.error||`media capture failed`))}},c=setTimeout(()=>{try{chrome.runtime.sendMessage({target:`capture-popup`,type:`capture-abort`,requestId:s})}catch{}a(),t(Error(`media capture timed out waiting for the capture window`))},i);chrome.runtime.onMessage.addListener(o);try{chrome.runtime.sendMessage({type:`capture-open-window`,url:l,requestId:s})}catch(e){a(),t(e instanceof Error?e:Error(String(e)))}})}function a(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?`cap-${crypto.randomUUID()}`:`cap-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,12)}`}function o(t){return e(new TextEncoder().encode(t)).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function s(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}export{n,i as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./base64-
|
|
1
|
+
import{r as e}from"./base64-BPBW1Gzr.js";import{t}from"./content-type-_QKWY0B2.js";import{l as n,s as r}from"./types-BfwydWt7.js";import{r as i}from"./boundary-Cp9c_bPu.js";import{t as a}from"./request-body-BF4moGct.js";function o(n){let i=n.adapter===`extension-direct`,a={callSecrets:n.callSecrets??(e=>c(i,e)),callMount:n.callMount??((e,t)=>l(i,e,t)),crossOriginFetch:n.crossOriginFetch??(e=>u(i,e)),requestApproval:n.requestApproval??(e=>f(i,e))};async function o(e,t,n){try{return{ok:!0,value:await n()}}catch(n){return r(e,t,n instanceof Error?n.message:String(n))}}async function s(e){let t=await o(`secrets`,e,()=>a.callSecrets({type:`secrets.list-masked-entries`}));if(!t.ok)return t;let n=t.value;return n?.error?r(`secrets`,e,n.error):Array.isArray(n?.entries)?{ok:!0,value:n.entries}:r(`secrets`,e,`secrets bridge returned no entries`)}async function d(e){let t=await o(`secrets`,`set`,()=>a.callSecrets({type:e.scope===`persisted`?`secrets.set`:`secrets.session.set`,name:e.name,value:e.value,domains:[...e.domains??[]]}));if(!t.ok)return t;let n=t.value;return n?.ok?{ok:!0,value:void 0}:r(`secrets`,`set`,n?.error??`secrets.set failed`)}async function p(e){let t=await o(`secrets`,`delete`,()=>a.callSecrets({type:`secrets.delete`,name:e.name}));if(!t.ok)return t;let n=t.value;return n?.ok?{ok:!0,value:{removed:n.removed??!0,fromSession:n.fromSession===!0}}:r(`secrets`,`delete`,n?.error??`secrets.delete failed`)}async function m(n){let r=await o(`network`,`crossOriginFetch`,()=>a.crossOriginFetch(n));if(!r.ok)return r;let i=r.value,s=t(i.headers[`content-type`]??``);return{ok:!0,value:{status:i.status,ok:i.status>=200&&i.status<300,statusText:i.statusText,headers:i.headers,body:s?new TextDecoder().decode(i.bytes):e(i.bytes),bodyEncoding:s?`text`:`base64`,url:n.url}}}async function h(e){let t=await o(`mounts`,`signRequest`,()=>a.callMount(e.backend===`s3`?`mount.s3-sign-and-forward`:`mount.da-sign-and-forward`,e.envelope));return t.ok?t.value&&typeof t.value.ok==`boolean`?{ok:!0,value:t.value}:r(`mounts`,`signRequest`,`mount bridge returned no envelope`):t}return{crossOriginFetch:m,secrets:{async listMaskedEnv(){let e=await s(`listMaskedEnv`);return e.ok?{ok:!0,value:{entries:e.value}}:e},async getMasked(e){let t=await s(`getMasked`);if(!t.ok)return t;let n=t.value.find(t=>t.name===e.name);return n?{ok:!0,value:n}:r(`secrets`,`getMasked`,`no secret named "${e.name}"`)},set:d,delete:p},signRequest:h,requestApproval:e=>o(`approvals`,`request`,()=>a.requestApproval(e))}}function s(e){return new Promise((t,n)=>{chrome.runtime.sendMessage(e,e=>{let r=chrome.runtime.lastError;r?n(Error(r.message??`chrome.runtime.lastError`)):t(e)})})}async function c(e,t){if(e)return s(t);let{callSecretsBridge:n}=await import(`./secrets-bridge-client-CeK7HpDf.js`).then(e=>e.n),{type:r,...i}=t;return n(r,i)}async function l(e,t,n){if(e)return await i(s({type:t,envelope:n}),12e4);let{callMountBridge:r}=await import(`./mount-bridge-client-BOZDQLbT.js`);return r(t,n)}async function u(e,t){let{collectViaExtensionDelegate:n,collectViaExtensionPort:r,REQUEST_BODY_CAP:i}=await import(`./proxied-fetch-CPL8wJM2.js`).then(e=>e.i),o=a(t);if(o!==void 0&&o.byteLength>i)throw Error(`request body is ${o.byteLength} bytes, over the ${i}-byte proxy limit`);let{head:s,body:c}=await(e?r:n)(t.url,{method:t.method??`GET`,headers:t.headers,...o===void 0?{}:{body:o}});return{status:s.status,statusText:s.statusText,headers:s.headers,bytes:new Uint8Array(c)}}function d(e,t){return t?new Promise((n,r)=>{if(t.aborted){r(Error(`approval relay cancelled before it was sent`));return}let i=()=>r(Error(`approval relay did not answer`));t.addEventListener(`abort`,i,{once:!0}),e.then(n,r).finally(()=>t.removeEventListener(`abort`,i))}):e}async function f(e,t){let r=t.suggestedPattern??t.detail,i={kind:t.kind,detail:t.detail,suggestedPattern:r,...t.requester?{requester:t.requester}:{},...t.reason?{reason:t.reason}:{},...t.approver?{approver:t.approver}:{}};if(e){let e=await d(s({source:`offscreen`,payload:{type:`sudo-request`,request:i}}),t.signal);if(!e?.ok||e.decision===void 0)throw Error(e?.error??`sudo relay returned no decision`);return n(e.decision,r)}let{getPanelRpcClient:a}=await import(`./panel-rpc-BPwAqRch.js`).then(e=>e.i),o=a();if(!o)throw Error(`panel-RPC client unavailable in this realm`);let{decision:c}=await d(o.call(`sudo-request`,{request:i},{timeoutMs:6e5}),t.signal);return n(c,r)}export{o as createExtensionOps};
|
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
var e=`#!/usr/bin/env jsh
|
|
2
|
+
/**
|
|
3
|
+
* Durable jsh-hosted computer with a push frame stream. \`register()\`
|
|
4
|
+
* subscribes to host \`computer-call\` events, which keeps this unit
|
|
5
|
+
* alive the same way \`sliccy:hid\` inputreport listeners do.
|
|
6
|
+
* \`handlers.subscribe\` is the \`computer watch\` path; \`screenshot\`
|
|
7
|
+
* still works as a poll fallback.
|
|
8
|
+
*
|
|
9
|
+
* Frames are 640×400: background, clock, frame counter, and a marker
|
|
10
|
+
* at the last pointer so clicks are visible. Overlay soft keys Home /
|
|
11
|
+
* Back / Menu move the marker or cycle the background. OffscreenCanvas
|
|
12
|
+
* JPEG when the realm has it; otherwise a stored-deflate PNG.
|
|
13
|
+
*
|
|
14
|
+
* jshd start -n fake-computer --enable --restart always \\
|
|
15
|
+
* /workspace/skills/jshd/examples/fake-computer.jsh
|
|
16
|
+
* computer ls
|
|
17
|
+
* computer screenshot -c jsh:fake
|
|
18
|
+
* computer watch -c jsh:fake
|
|
19
|
+
* computer click 1 --at 100,100 -c jsh:fake
|
|
20
|
+
* computer type -c jsh:fake hello
|
|
21
|
+
*/
|
|
22
|
+
const computer = require('sliccy:computer');
|
|
23
|
+
|
|
24
|
+
const WIDTH = 640;
|
|
25
|
+
const HEIGHT = 400;
|
|
26
|
+
const MARKER_R = 12;
|
|
27
|
+
const MARKER_R2 = MARKER_R * MARKER_R;
|
|
28
|
+
|
|
29
|
+
const FONT = {
|
|
30
|
+
0: ['01110', '10001', '10011', '10101', '11001', '10001', '01110'],
|
|
31
|
+
1: ['00100', '01100', '00100', '00100', '00100', '00100', '01110'],
|
|
32
|
+
2: ['01110', '10001', '00001', '00110', '01000', '10000', '11111'],
|
|
33
|
+
3: ['11110', '00001', '00001', '01110', '00001', '00001', '11110'],
|
|
34
|
+
4: ['00010', '00110', '01010', '10010', '11111', '00010', '00010'],
|
|
35
|
+
5: ['11111', '10000', '11110', '00001', '00001', '10001', '01110'],
|
|
36
|
+
6: ['00110', '01000', '10000', '11110', '10001', '10001', '01110'],
|
|
37
|
+
7: ['11111', '00001', '00010', '00100', '01000', '01000', '01000'],
|
|
38
|
+
8: ['01110', '10001', '10001', '01110', '10001', '10001', '01110'],
|
|
39
|
+
9: ['01110', '10001', '10001', '01111', '00001', '00010', '01100'],
|
|
40
|
+
':': ['00000', '00100', '00100', '00000', '00100', '00100', '00000'],
|
|
41
|
+
'#': ['01010', '11111', '01010', '11111', '01010', '01010', '00000'],
|
|
42
|
+
' ': ['00000', '00000', '00000', '00000', '00000', '00000', '00000'],
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const THEMES = [
|
|
46
|
+
{ bg: [26, 31, 46], bar: [18, 21, 31] },
|
|
47
|
+
{ bg: [72, 24, 48], bar: [48, 16, 32] },
|
|
48
|
+
{ bg: [16, 48, 40], bar: [10, 32, 28] },
|
|
49
|
+
];
|
|
50
|
+
const HOME_X = 320;
|
|
51
|
+
const HOME_Y = 200;
|
|
52
|
+
const BACK_X = 48;
|
|
53
|
+
const BACK_Y = 352;
|
|
54
|
+
|
|
55
|
+
let seq = 0;
|
|
56
|
+
let last = '';
|
|
57
|
+
let lastX = 0;
|
|
58
|
+
let lastY = 0;
|
|
59
|
+
let hasPointer = false;
|
|
60
|
+
let themeIndex = 0;
|
|
61
|
+
let busy = false;
|
|
62
|
+
|
|
63
|
+
function rgbCss(rgb) {
|
|
64
|
+
return 'rgb(' + rgb[0] + ',' + rgb[1] + ',' + rgb[2] + ')';
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function applySoftKey(keysym) {
|
|
68
|
+
if (keysym === 'Home') {
|
|
69
|
+
lastX = HOME_X;
|
|
70
|
+
lastY = HOME_Y;
|
|
71
|
+
hasPointer = true;
|
|
72
|
+
themeIndex = 0;
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (keysym === 'Escape' || keysym === 'Back') {
|
|
76
|
+
lastX = BACK_X;
|
|
77
|
+
lastY = BACK_Y;
|
|
78
|
+
hasPointer = true;
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (keysym === 'Menu') {
|
|
82
|
+
themeIndex = (themeIndex + 1) % THEMES.length;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function clamp(n, lo, hi) {
|
|
87
|
+
return Math.max(lo, Math.min(hi, n | 0));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function clockString() {
|
|
91
|
+
return new Date().toISOString().slice(11, 19);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function paintCanvas(ctx) {
|
|
95
|
+
const theme = THEMES[themeIndex];
|
|
96
|
+
ctx.fillStyle = rgbCss(theme.bg);
|
|
97
|
+
ctx.fillRect(0, 0, WIDTH, HEIGHT);
|
|
98
|
+
ctx.fillStyle = rgbCss(theme.bar);
|
|
99
|
+
ctx.fillRect(0, 0, WIDTH, 40);
|
|
100
|
+
ctx.fillStyle = '#c8d0e0';
|
|
101
|
+
ctx.font = '16px ui-monospace, monospace';
|
|
102
|
+
ctx.fillText(clockString(), 12, 26);
|
|
103
|
+
ctx.fillStyle = '#9ad17e';
|
|
104
|
+
ctx.fillText('#' + seq, 12, 64);
|
|
105
|
+
if (!hasPointer) return;
|
|
106
|
+
ctx.strokeStyle = '#f5c518';
|
|
107
|
+
ctx.fillStyle = 'rgba(245, 197, 24, 0.85)';
|
|
108
|
+
ctx.lineWidth = 2;
|
|
109
|
+
ctx.beginPath();
|
|
110
|
+
ctx.arc(lastX, lastY, MARKER_R, 0, Math.PI * 2);
|
|
111
|
+
ctx.fill();
|
|
112
|
+
ctx.beginPath();
|
|
113
|
+
ctx.moveTo(lastX - 18, lastY);
|
|
114
|
+
ctx.lineTo(lastX + 18, lastY);
|
|
115
|
+
ctx.moveTo(lastX, lastY - 18);
|
|
116
|
+
ctx.lineTo(lastX, lastY + 18);
|
|
117
|
+
ctx.stroke();
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function plot(rgb, x, y, r, g, b) {
|
|
121
|
+
if (x < 0 || y < 0 || x >= WIDTH || y >= HEIGHT) return;
|
|
122
|
+
const i = (y * WIDTH + x) * 3;
|
|
123
|
+
rgb[i] = r;
|
|
124
|
+
rgb[i + 1] = g;
|
|
125
|
+
rgb[i + 2] = b;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
function fillRect(rgb, x, y, w, h, r, g, b) {
|
|
129
|
+
const x0 = clamp(x, 0, WIDTH);
|
|
130
|
+
const y0 = clamp(y, 0, HEIGHT);
|
|
131
|
+
const x1 = clamp(x + w, 0, WIDTH);
|
|
132
|
+
const y1 = clamp(y + h, 0, HEIGHT);
|
|
133
|
+
for (let yy = y0; yy < y1; yy++) {
|
|
134
|
+
let i = (yy * WIDTH + x0) * 3;
|
|
135
|
+
for (let xx = x0; xx < x1; xx++) {
|
|
136
|
+
rgb[i] = r;
|
|
137
|
+
rgb[i + 1] = g;
|
|
138
|
+
rgb[i + 2] = b;
|
|
139
|
+
i += 3;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
function drawGlyph(rgb, originX, originY, ch, scale, r, g, b) {
|
|
145
|
+
const rows = FONT[ch];
|
|
146
|
+
if (!rows) return 5 * scale + 2;
|
|
147
|
+
for (let row = 0; row < rows.length; row++) {
|
|
148
|
+
const bits = rows[row];
|
|
149
|
+
for (let col = 0; col < bits.length; col++) {
|
|
150
|
+
if (bits[col] !== '1') continue;
|
|
151
|
+
fillRect(rgb, originX + col * scale, originY + row * scale, scale, scale, r, g, b);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return 5 * scale + 2;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
function drawString(rgb, x, y, text, scale, r, g, b) {
|
|
158
|
+
let cx = x;
|
|
159
|
+
for (const ch of text) cx += drawGlyph(rgb, cx, y, ch, scale, r, g, b);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
function paintRgb(rgb) {
|
|
163
|
+
const theme = THEMES[themeIndex];
|
|
164
|
+
fillRect(rgb, 0, 0, WIDTH, HEIGHT, theme.bg[0], theme.bg[1], theme.bg[2]);
|
|
165
|
+
fillRect(rgb, 0, 0, WIDTH, 40, theme.bar[0], theme.bar[1], theme.bar[2]);
|
|
166
|
+
drawString(rgb, 12, 12, clockString(), 2, 200, 208, 224);
|
|
167
|
+
drawString(rgb, 12, 52, '#' + String(seq), 3, 154, 209, 126);
|
|
168
|
+
if (!hasPointer) return;
|
|
169
|
+
for (let dy = -MARKER_R; dy <= MARKER_R; dy++) {
|
|
170
|
+
for (let dx = -MARKER_R; dx <= MARKER_R; dx++) {
|
|
171
|
+
if (dx * dx + dy * dy <= MARKER_R2) plot(rgb, lastX + dx, lastY + dy, 245, 197, 24);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
fillRect(rgb, lastX - 18, lastY - 1, 37, 3, 245, 197, 24);
|
|
175
|
+
fillRect(rgb, lastX - 1, lastY - 18, 3, 37, 245, 197, 24);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
const CRC_TABLE = (() => {
|
|
179
|
+
const t = new Uint32Array(256);
|
|
180
|
+
for (let i = 0; i < 256; i++) {
|
|
181
|
+
let c = i;
|
|
182
|
+
for (let j = 0; j < 8; j++) c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
|
|
183
|
+
t[i] = c;
|
|
184
|
+
}
|
|
185
|
+
return t;
|
|
186
|
+
})();
|
|
187
|
+
|
|
188
|
+
function crc32(data) {
|
|
189
|
+
let crc = ~0 >>> 0;
|
|
190
|
+
for (let i = 0; i < data.length; i++) crc = (crc >>> 8) ^ CRC_TABLE[(crc ^ data[i]) & 0xff];
|
|
191
|
+
return ~crc >>> 0;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
function adler32(data) {
|
|
195
|
+
let a = 1;
|
|
196
|
+
let b = 0;
|
|
197
|
+
for (let i = 0; i < data.length; i++) {
|
|
198
|
+
a += data[i];
|
|
199
|
+
if (a >= 65521) a -= 65521;
|
|
200
|
+
b += a;
|
|
201
|
+
if (b >= 65521) b -= 65521;
|
|
202
|
+
}
|
|
203
|
+
return ((b << 16) | a) >>> 0;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
function be32(n) {
|
|
207
|
+
return Uint8Array.of((n >>> 24) & 0xff, (n >>> 16) & 0xff, (n >>> 8) & 0xff, n & 0xff);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
function concat(parts) {
|
|
211
|
+
let len = 0;
|
|
212
|
+
for (const p of parts) len += p.length;
|
|
213
|
+
const out = new Uint8Array(len);
|
|
214
|
+
let o = 0;
|
|
215
|
+
for (const p of parts) {
|
|
216
|
+
out.set(p, o);
|
|
217
|
+
o += p.length;
|
|
218
|
+
}
|
|
219
|
+
return out;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
function chunk(type, data) {
|
|
223
|
+
const typeBytes = new TextEncoder().encode(type);
|
|
224
|
+
const payload = concat([typeBytes, data]);
|
|
225
|
+
return concat([be32(data.length), payload, be32(crc32(payload))]);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
function zlibStore(raw) {
|
|
229
|
+
const pieces = [Uint8Array.of(0x78, 0x01)];
|
|
230
|
+
for (let i = 0; i < raw.length; i += 65535) {
|
|
231
|
+
const slice = raw.subarray(i, Math.min(i + 65535, raw.length));
|
|
232
|
+
const last = i + slice.length >= raw.length ? 0x01 : 0x00;
|
|
233
|
+
const len = slice.length;
|
|
234
|
+
const nlen = len ^ 0xffff;
|
|
235
|
+
pieces.push(
|
|
236
|
+
Uint8Array.of(last, len & 0xff, (len >>> 8) & 0xff, nlen & 0xff, (nlen >>> 8) & 0xff),
|
|
237
|
+
slice
|
|
238
|
+
);
|
|
239
|
+
}
|
|
240
|
+
pieces.push(be32(adler32(raw)));
|
|
241
|
+
return concat(pieces);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
function encodePngRgb(rgb) {
|
|
245
|
+
const raw = new Uint8Array(HEIGHT * (1 + WIDTH * 3));
|
|
246
|
+
for (let y = 0; y < HEIGHT; y++) {
|
|
247
|
+
const dest = y * (1 + WIDTH * 3);
|
|
248
|
+
raw[dest] = 0;
|
|
249
|
+
raw.set(rgb.subarray(y * WIDTH * 3, (y + 1) * WIDTH * 3), dest + 1);
|
|
250
|
+
}
|
|
251
|
+
const ihdr = concat([
|
|
252
|
+
be32(WIDTH),
|
|
253
|
+
be32(HEIGHT),
|
|
254
|
+
Uint8Array.of(8, 2, 0, 0, 0),
|
|
255
|
+
]);
|
|
256
|
+
return concat([
|
|
257
|
+
Uint8Array.of(0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a),
|
|
258
|
+
chunk('IHDR', ihdr),
|
|
259
|
+
chunk('IDAT', zlibStore(raw)),
|
|
260
|
+
chunk('IEND', new Uint8Array(0)),
|
|
261
|
+
]);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
async function encodeJpeg() {
|
|
265
|
+
if (typeof OffscreenCanvas !== 'function') return null;
|
|
266
|
+
try {
|
|
267
|
+
const canvas = new OffscreenCanvas(WIDTH, HEIGHT);
|
|
268
|
+
const ctx = canvas.getContext('2d');
|
|
269
|
+
if (!ctx) return null;
|
|
270
|
+
paintCanvas(ctx);
|
|
271
|
+
const blob = await canvas.convertToBlob({ type: 'image/jpeg', quality: 0.75 });
|
|
272
|
+
if (!blob || blob.size < 32) return null;
|
|
273
|
+
return new Uint8Array(await blob.arrayBuffer());
|
|
274
|
+
} catch {
|
|
275
|
+
return null;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
async function nextFrame() {
|
|
280
|
+
seq += 1;
|
|
281
|
+
const jpeg = await encodeJpeg();
|
|
282
|
+
if (jpeg) return { seq, mime: 'image/jpeg', width: WIDTH, height: HEIGHT, bytes: jpeg };
|
|
283
|
+
const rgb = new Uint8Array(WIDTH * HEIGHT * 3);
|
|
284
|
+
paintRgb(rgb);
|
|
285
|
+
return { seq, mime: 'image/png', width: WIDTH, height: HEIGHT, bytes: encodePngRgb(rgb) };
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
function rememberPointer(event) {
|
|
289
|
+
if (typeof event.x !== 'number' || typeof event.y !== 'number') return;
|
|
290
|
+
lastX = clamp(event.x, 0, WIDTH - 1);
|
|
291
|
+
lastY = clamp(event.y, 0, HEIGHT - 1);
|
|
292
|
+
hasPointer = true;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
computer.register({
|
|
296
|
+
id: 'jsh:fake',
|
|
297
|
+
title: 'fake',
|
|
298
|
+
size: { width: WIDTH, height: HEIGHT },
|
|
299
|
+
capabilities: {
|
|
300
|
+
screenshot: true,
|
|
301
|
+
text: true,
|
|
302
|
+
frames: 'push',
|
|
303
|
+
keyboard: true,
|
|
304
|
+
mouse: 'absolute',
|
|
305
|
+
scroll: false,
|
|
306
|
+
exec: false,
|
|
307
|
+
inputAllowed: true,
|
|
308
|
+
},
|
|
309
|
+
softKeys: [
|
|
310
|
+
{ label: 'Home', keysym: 'Home' },
|
|
311
|
+
{ label: 'Back', keysym: 'Escape' },
|
|
312
|
+
{ label: 'Menu', keysym: 'Menu' },
|
|
313
|
+
],
|
|
314
|
+
async screenshot() {
|
|
315
|
+
return nextFrame();
|
|
316
|
+
},
|
|
317
|
+
subscribe(fps, onFrame) {
|
|
318
|
+
const push = () => {
|
|
319
|
+
if (busy) return;
|
|
320
|
+
busy = true;
|
|
321
|
+
nextFrame()
|
|
322
|
+
.then((frame) => onFrame(frame))
|
|
323
|
+
.finally(() => {
|
|
324
|
+
busy = false;
|
|
325
|
+
});
|
|
326
|
+
};
|
|
327
|
+
push();
|
|
328
|
+
const ms = Math.max(50, Math.round(1000 / Math.max(1, fps)));
|
|
329
|
+
const timer = setInterval(push, ms);
|
|
330
|
+
return () => clearInterval(timer);
|
|
331
|
+
},
|
|
332
|
+
async text() {
|
|
333
|
+
const pointer = hasPointer ? \`pointer \${lastX},\${lastY}\` : 'pointer none';
|
|
334
|
+
return last ? \`\${last}\\n\${pointer}\` : pointer;
|
|
335
|
+
},
|
|
336
|
+
async input(events) {
|
|
337
|
+
for (const event of events) {
|
|
338
|
+
if (event.type === 'text') last += event.text;
|
|
339
|
+
if (event.type === 'key') {
|
|
340
|
+
last += \`[\${event.keysym}]\`;
|
|
341
|
+
applySoftKey(event.keysym);
|
|
342
|
+
}
|
|
343
|
+
if (event.type === 'click') {
|
|
344
|
+
rememberPointer(event);
|
|
345
|
+
last += \`[click \${event.x},\${event.y}]\`;
|
|
346
|
+
}
|
|
347
|
+
if (event.type === 'mousemove' || event.type === 'button') rememberPointer(event);
|
|
348
|
+
if (event.type === 'drag' && event.to) rememberPointer(event.to);
|
|
349
|
+
}
|
|
350
|
+
},
|
|
351
|
+
});
|
|
352
|
+
`;export{e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./proxied-fetch-
|
|
1
|
+
import"./proxied-fetch-CnCvBaGV.js";import{n as e}from"./runtime-env-Dlaokqg1.js";import{r as t}from"./api-endpoint-DGxXvrur.js";function n(){return e()?`extension-direct`:t()?`extension-delegate`:globalThis.__slicc_connect_mode?`connect`:`node-rest`}function r(){return n()===`node-rest`}export{n,r as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./logger-DDBAeTLF.js";import{n as t}from"./proxied-fetch-
|
|
1
|
+
import{t as e}from"./logger-DDBAeTLF.js";import{n as t}from"./proxied-fetch-CnCvBaGV.js";import{n,t as r}from"./navigation-watcher-BpA1OwJw.js";import{t as i}from"./discovery-preference-G3mw_EUO.js";var a=e(`follower-navigate-watcher`);function o(e){let n=t();return{onDiscovery:t=>{let n=e();if(!n){a.warn(`discovery lick dropped — no follower sync connected`,{url:t.url});return}n.forwardLick({type:`discovery`,targetScoop:void 0,timestamp:new Date().toISOString(),discoveryOrigin:t.origin,discoveryKind:t.kind,discoveryUrl:t.url,discoverySource:`live-navigation`,body:{origin:t.origin,kind:t.kind,url:t.url,targetId:t.targetId}})},probeFetch:async(e,t)=>{let r=n(e,{method:t?.method??`GET`}),i=t?.signal,a=i?await Promise.race([r,new Promise((e,t)=>{if(i.aborted){t(Error(`aborted`));return}i.addEventListener(`abort`,()=>t(Error(`aborted`)),{once:!0})})]):await r,o=a.headers;return{ok:a.status>=200&&a.status<300,status:a.status,headers:{get(e){return o?o[e.toLowerCase()]??o[e]??null:null}}}},isDiscoveryEnabled:()=>i()}}function s(e,t){let i=new r(e,e=>{let n={url:e.url,verb:e.verb,target:e.target};e.instruction!=null&&(n.instruction=e.instruction),e.branch!=null&&(n.branch=e.branch),e.path!=null&&(n.path=e.path),e.title!=null&&(n.title=e.title);let r=t();if(!r){a.warn(`navigate lick dropped — no follower sync connected`,{url:e.url});return}r.forwardLick({type:`navigate`,navigateUrl:e.url,targetScoop:void 0,timestamp:new Date().toISOString(),body:n})},{...o(t),isOwnTab:n(()=>globalThis.location?.href??null)});return i.start(),()=>void i.stop()}export{s as startFollowerNavigateWatcher};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./tmpdir-env-ate4iNcK.js";import{n as t}from"./encode-frame-B8GkHc2t.js";const n={ctrl:!1,alt:!1,shift:!1,meta:!1},r={ctrl:`ctrl`,control:`ctrl`,alt:`alt`,shift:`shift`,meta:`meta`,super:`meta`,win:`meta`,cmd:`meta`,command:`meta`},i={return:{key:`Enter`,code:`Enter`},enter:{key:`Enter`,code:`Enter`},kp_enter:{key:`Enter`,code:`NumpadEnter`},tab:{key:`Tab`,code:`Tab`},escape:{key:`Escape`,code:`Escape`},esc:{key:`Escape`,code:`Escape`},space:{key:` `,code:`Space`},backspace:{key:`Backspace`,code:`Backspace`},delete:{key:`Delete`,code:`Delete`},del:{key:`Delete`,code:`Delete`},insert:{key:`Insert`,code:`Insert`},home:{key:`Home`,code:`Home`},end:{key:`End`,code:`End`},pageup:{key:`PageUp`,code:`PageUp`},page_up:{key:`PageUp`,code:`PageUp`},prior:{key:`PageUp`,code:`PageUp`},pagedown:{key:`PageDown`,code:`PageDown`},page_down:{key:`PageDown`,code:`PageDown`},next:{key:`PageDown`,code:`PageDown`},up:{key:`ArrowUp`,code:`ArrowUp`},down:{key:`ArrowDown`,code:`ArrowDown`},left:{key:`ArrowLeft`,code:`ArrowLeft`},right:{key:`ArrowRight`,code:`ArrowRight`},menu:{key:`ContextMenu`,code:`ContextMenu`},caps_lock:{key:`CapsLock`,code:`CapsLock`},num_lock:{key:`NumLock`,code:`NumLock`},scroll_lock:{key:`ScrollLock`,code:`ScrollLock`},print:{key:`PrintScreen`,code:`PrintScreen`},pause:{key:`Pause`,code:`Pause`}};for(let e=1;e<=12;e++)i[`f${e}`]={key:`F${e}`,code:`F${e}`};const a={enter:[28],tab:[15],esc:[1],escape:[1],space:[57],backspace:[14],delete:[224,83],del:[224,83],up:[224,72],down:[224,80],left:[224,75],right:[224,77],home:[224,71],end:[224,79],pageup:[224,73],pagedown:[224,81],insert:[224,82],f1:[59],f2:[60],f3:[61],f4:[62],f5:[63],f6:[64],f7:[65],f8:[66],f9:[67],f10:[68],f11:[87],f12:[88]},o={ctrl:[29],alt:[56],shift:[42],meta:[224,91]},s={return:`KEYCODE_ENTER`,enter:`KEYCODE_ENTER`,tab:`KEYCODE_TAB`,escape:`KEYCODE_ESCAPE`,esc:`KEYCODE_ESCAPE`,space:`KEYCODE_SPACE`,backspace:`KEYCODE_DEL`,delete:`KEYCODE_FORWARD_DEL`,del:`KEYCODE_FORWARD_DEL`,home:`KEYCODE_HOME`,end:`KEYCODE_MOVE_END`,insert:`KEYCODE_INSERT`,pageup:`KEYCODE_PAGE_UP`,pagedown:`KEYCODE_PAGE_DOWN`,up:`KEYCODE_DPAD_UP`,down:`KEYCODE_DPAD_DOWN`,left:`KEYCODE_DPAD_LEFT`,right:`KEYCODE_DPAD_RIGHT`,menu:`KEYCODE_MENU`};for(let e=1;e<=12;e++)s[`f${e}`]=`KEYCODE_F${e}`;const c={return:`return`,enter:`return`,tab:`tab`,escape:`esc`,esc:`esc`,space:`space`,backspace:`delete`,delete:`fwd-delete`,del:`fwd-delete`,home:`home`,end:`end`,pageup:`page-up`,pagedown:`page-down`,up:`arrow-up`,down:`arrow-down`,left:`arrow-left`,right:`arrow-right`};function l(e){return/^[A-Z][A-Z0-9_]+$/u.test(e)}function u(e){return e.split(/[-+]/u).filter(Boolean)}function d(e){let t=e.toLowerCase();if(i[t])return i[t];if(e.length===1){let t=e;return/[A-Za-z]/u.test(t)?{key:t,code:`Key${t.toUpperCase()}`}:/[0-9]/u.test(t)?{key:t,code:`Digit${t}`}:{".":{key:`.`,code:`Period`},",":{key:`,`,code:`Comma`},"/":{key:`/`,code:`Slash`},";":{key:`;`,code:`Semicolon`},"'":{key:`'`,code:`Quote`},"[":{key:`[`,code:`BracketLeft`},"]":{key:`]`,code:`BracketRight`},"\\":{key:`\\`,code:`Backslash`},"`":{key:"`",code:`Backquote`},"-":{key:`-`,code:`Minus`},"=":{key:`=`,code:`Equal`}}[t]??{key:t,code:``}}return null}function f(e){let t=e.trim();if(!t)return null;if(l(t))return{key:t,code:t,modifiers:{...n},keysym:t,native:t};let i=u(t);if(i.length===0)return null;let a={...n},o=null;for(let e=0;e<i.length;e++){let t=i[e],n=e===i.length-1,s=r[t.toLowerCase()];if(s&&!n){a[s]=!0;continue}s&&n&&i.length,o=t}if(!o)return null;if(l(o))return{key:o,code:o,modifiers:a,keysym:o,native:o};let s=d(o);return s?(o.length===1&&/[A-Z]/u.test(o)&&(a.shift=!0),{key:s.key,code:s.code,modifiers:a,keysym:o}):null}function p(e){let t=`1234567890`.indexOf(e);if(t!==-1)return[t===9?11:2+t];let n=[16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,44,45,46,47,48,49,50],r=`qwertyuiopasdfghjklzxcvbnm`.indexOf(e.toLowerCase());return r===-1?null:[n[r]]}function m(e){return e.length===2?[e[0],e[1]|128]:[e[0]|128]}function h(e){let t=e.toLowerCase().split(/[-+]/u).filter(Boolean);if(t.length===0)return null;let n=[],r=[];for(let e=0;e<t.length;e++){let i=t[e];if(e!==t.length-1&&o[i]){n.push(o[i]);continue}let s=a[i]??o[i]??(i.length===1?p(i):null);if(!s)return null;r.push(s)}if(r.length===0)return null;let i=[];for(let e of n)i.push(...e);for(let e of r)i.push(...e,...m(e));for(let e of[...n].reverse())i.push(...m(e));return i}function g(e){return+!!e.alt+(e.ctrl?2:0)+(e.meta?4:0)+(e.shift?8:0)}function _(e,t){let n=g(e.modifiers),r=e.key.length===1&&!e.modifiers.ctrl&&!e.modifiers.alt&&!e.modifiers.meta?e.key:void 0,i=t=>({type:t,key:e.key,code:e.code,modifiers:n,...t===`keyDown`&&r?{text:r}:{}});return t===!0?[i(`keyDown`)]:t===!1?[i(`keyUp`)]:[i(`keyDown`),i(`keyUp`)]}function v(e,t=`press`){let n=t===`down`?`kd`:t===`up`?`ku`:`kp`;if(e.native)return`${n}:${e.native}`;let r=c[e.keysym.toLowerCase()]??(e.key.length===1?e.key:e.keysym.toLowerCase()),i=[];return e.modifiers.ctrl&&i.push(`ctrl`),e.modifiers.alt&&i.push(`alt`),e.modifiers.shift&&i.push(`shift`),e.modifiers.meta&&i.push(`cmd`),`${n}:${i.length>0?`${i.join(`,`)},${r}`:r}`}const y={Enter:`Return`,Escape:`Escape`," ":`space`,Backspace:`BackSpace`,Delete:`Delete`,Tab:`Tab`,ArrowUp:`Up`,ArrowDown:`Down`,ArrowLeft:`Left`,ArrowRight:`Right`,Home:`Home`,End:`End`,PageUp:`Page_Up`,PageDown:`Page_Down`,Insert:`Insert`};function b(e){let t=e.native??(e.key.length===1?e.key:y[e.key]??e.keysym),n=D(e.modifiers);return n?`${n}+${t}`:t}const x={Escape:1,Digit1:2,Digit2:3,Digit3:4,Digit4:5,Digit5:6,Digit6:7,Digit7:8,Digit8:9,Digit9:10,Digit0:11,Backspace:14,Tab:15,Enter:28,Control:29,Shift:42,Space:57,Alt:56,F1:59,F2:60,F3:61,F4:62,F5:63,F6:64,F7:65,F8:66,F9:67,F10:68,F11:87,F12:88,Home:102,ArrowUp:103,PageUp:104,ArrowLeft:105,ArrowRight:106,End:107,ArrowDown:108,PageDown:109,Insert:110,Delete:111,Meta:125},S=[16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,44,45,46,47,48,49,50];function C(e){if(e.key.length===1){let t=`qwertyuiopasdfghjklzxcvbnm`.indexOf(e.key.toLowerCase());if(t!==-1)return S[t];if(e.key>=`1`&&e.key<=`9`)return 2+(e.key.charCodeAt(0)-49);if(e.key===`0`)return 11}return x[e.code]??x[e.key]??null}function w(e,t){return`${e}:${+!!t}`}function T(e,t=`press`){let n=C(e);if(n==null)return``;let r=[];if(e.modifiers.ctrl&&r.push(29),e.modifiers.shift&&r.push(42),e.modifiers.alt&&r.push(56),e.modifiers.meta&&r.push(125),t===`down`)return[...r.map(e=>w(e,!0)),w(n,!0)].join(` `);if(t===`up`)return[w(n,!1),...[...r].reverse().map(e=>w(e,!1))].join(` `);let i=[...r.map(e=>w(e,!0)),w(n,!0)],a=[w(n,!1),...[...r].reverse().map(e=>w(e,!1))];return[...i,...a].join(` `)}function E(e){if(e.type===`mousemove`||e.type===`wait`||e.type===`key`||e.type===`text`)return{kind:`noop`};if(e.type===`click`){let t=e.x??0,n=e.y??0;return e.holdMs&&e.holdMs>0?{kind:`long-press`,x:t,y:n,holdMs:e.holdMs}:{kind:`tap`,x:t,y:n}}if(e.type===`drag`)return{kind:`swipe`,x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2};if(e.type===`button`){let t=e.x??0,n=e.y??0;return e.down?{kind:`tap`,x:t,y:n}:{kind:`noop`}}let t=e.x??0,n=e.y??0;return{kind:`swipe`,x1:t,y1:n,x2:t+e.dx,y2:n+e.dy}}function D(e){let t=[];return e.ctrl&&t.push(`ctrl`),e.alt&&t.push(`alt`),e.shift&&t.push(`shift`),e.meta&&t.push(`super`),t.join(`+`)}function O(e){return`screen: ${e}`}function k(e){return`target: ${e}`}async function A(t){let n=`${e(t.env).replace(/\/$/u,``)}/computer/${t.name}`,r=`${n}/${t.seq}.jpg`,i=t.fs.resolvePath(t.cwd,n),a=t.fs.resolvePath(t.cwd,r);return await t.fs.mkdir(i,{recursive:!0}),await t.fs.writeFile(a,t.frame.bytes),a}async function j(e){return t(e,`image/jpeg`,.55)}export{h as a,v as c,T as d,A as i,E as l,O as n,f as o,j as r,_ as s,k as t,b as u};
|
package/dist/ui/assets/{frozen-archive-writer-DYPhPMg7.js → frozen-archive-writer-DFE4MYD-.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./slugify-BYJ6QVAt.js";import{n as t,r as n,t as r}from"./archive-redaction-ByV7X5fs.js";import{t as i}from"./types-D8gIX-W-.js";import{c as a,l as o,y as s}from"./kernel-worker-
|
|
1
|
+
import{t as e}from"./slugify-BYJ6QVAt.js";import{n as t,r as n,t as r}from"./archive-redaction-ByV7X5fs.js";import{t as i}from"./types-D8gIX-W-.js";import{c as a,l as o,y as s}from"./kernel-worker-Bq9IjFw5.js";const c=/\uD83C\uDF99\uFE0F?/g,l=/\u25C1[\s\S]*?\u25B7/g;function u(e){return e.replace(l,``).replace(c,``).replace(/[ \t]+$/g,``).trimEnd()}function d(e){let t=``;for(let n of e){let e=n.role===`user`?`User`:`Assistant`,r=n.role===`user`?u(n.content):n.content;if(t+=`## ${e}\n${r}\n\n`,n.attachments?.length&&(t+=`Attachments:\n${n.attachments.map(e=>`- ${s(e)}`).join(`
|
|
2
2
|
`)}\n\n`),n.toolCalls)for(let e of n.toolCalls)t+=`### Tool: ${e.name}\nInput: ${JSON.stringify(e.input,null,2)}\nResult: ${e.result??``}\n\n`}return t}function f(e){return`live-${h(e)}-${m()}.md`}function p(e,t){return e.find(e=>e.live===!0&&(e.cone??`cone`)===t)}function m(){return`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`}function h(t){return e(t,{maxLen:48,fallback:`session`})}function g(e){let t=e.find(e=>e.role===`user`);if(!t?.content)return`untitled-session`;let n=t.content.trim().replace(/\s+/g,` `);return n.length>60?`${n.slice(0,60)}…`:n||`untitled-session`}function _(e){return e.map(e=>{let t={id:e.id,role:e.role,content:e.content,timestamp:e.timestamp};return e.attachments?.length&&(t.attachments=e.attachments),e.toolCalls?.length&&(t.toolCalls=e.toolCalls.map(e=>({id:e.id,name:e.name,input:e.input,...e.result===void 0?{}:{result:e.result},...e.isError?{isError:e.isError}:{}}))),e.source&&(t.source=e.source),e.channel&&(t.channel=e.channel),e.compaction&&(t.compaction=e.compaction),t})}function v(e){let i=r(),a={...e,title:t(e.title,i),messages:n(e.messages,i)},o=(a.cost?`cost: ${JSON.stringify(a.cost)}\n`:``)+(a.models?`models: ${JSON.stringify(a.models)}\n`:``),s=(a.cone?`cone: ${a.cone}\n`:``)+(a.coneLabel?`coneLabel: ${JSON.stringify(a.coneLabel)}\n`:``)+(a.memorySkipped?`memorySkipped: true
|
|
3
3
|
`:``)+(a.live?`live: true
|
|
4
4
|
`:``)+(a.live&&a.liveThrough?`liveThrough: ${a.liveThrough}\n`:``)+(a.live&&a.compactions?`compactions: ${a.compactions}\n`:``),c=`---\nid: ${a.id}\ntitle: ${JSON.stringify(a.title)}\nfrozenAt: ${a.frozenAt}\ncreatedAt: ${a.createdAt}\nupdatedAt: ${a.updatedAt}\nmessageCount: ${a.messageCount}\n`+o+s+`---
|