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.
Files changed (245) hide show
  1. package/README.md +2 -0
  2. package/dist/node-server/_shared/base64.d.ts.map +1 -1
  3. package/dist/node-server/_shared/base64.js +7 -3
  4. package/dist/node-server/_shared/base64.js.map +1 -1
  5. package/dist/node-server/_shared/computer-protocol.d.ts +4 -0
  6. package/dist/node-server/_shared/computer-protocol.d.ts.map +1 -1
  7. package/dist/node-server/_shared/tray-sync-protocol.d.ts +66 -2
  8. package/dist/node-server/_shared/tray-sync-protocol.d.ts.map +1 -1
  9. package/dist/node-server/_shared/tray-sync-protocol.js +75 -2
  10. package/dist/node-server/_shared/tray-sync-protocol.js.map +1 -1
  11. package/dist/node-server/computer-demo.d.ts +36 -0
  12. package/dist/node-server/computer-demo.js +126 -0
  13. package/dist/node-server/index.js +13 -3
  14. package/dist/node-server/runtime-flags.d.ts +2 -0
  15. package/dist/node-server/runtime-flags.js +5 -0
  16. package/dist/ui/.vite/manifest.json +288 -265
  17. package/dist/ui/assets/SKILL-CQxpe2fi.js +1 -0
  18. package/dist/ui/assets/{account-store-BEqmysw9.js → account-store-jjUZwcjI.js} +1 -1
  19. package/dist/ui/assets/{account-store-C35GYvum.js → account-store-pXgYgQVx.js} +2 -2
  20. package/dist/ui/assets/{adobe-BcTGFCnQ.js → adobe-C42_geSB.js} +1 -1
  21. package/dist/ui/assets/{adobe-BDH5oLAN.js → adobe-CKCos4Yf.js} +2 -2
  22. package/dist/ui/assets/{agent-panels-DvqNnkLk.js → agent-panels-C34MxFav.js} +1 -1
  23. package/dist/ui/assets/{almost-bash-shell-headless-DqTtE9CM.js → almost-bash-shell-headless-B5YFQ1wh.js} +521 -548
  24. package/dist/ui/assets/{apply-layout-CjYRGs37.js → apply-layout-D2V9rxZu.js} +1 -1
  25. package/dist/ui/assets/approval-timeout-BQ29Z0gf.js +1 -0
  26. package/dist/ui/assets/{apps-dzoLZ_5W.js → apps-CVkFAyGJ.js} +1 -1
  27. package/dist/ui/assets/{azure-openai-DKGdcr4S.js → azure-openai-DucxGbzT.js} +1 -1
  28. package/dist/ui/assets/{azure-openai-BffwoCtp.js → azure-openai-yAg-vpgC.js} +1 -1
  29. package/dist/ui/assets/{backend-hostfs-CWIlIhve.js → backend-hostfs-Ls-A2H2N.js} +1 -1
  30. package/dist/ui/assets/{base64-DzRgusa4.js → base64-BPBW1Gzr.js} +1 -1
  31. package/dist/ui/assets/{base64-DJRlyqZu.js → base64-ELzoYfwP.js} +1 -1
  32. package/dist/ui/assets/browser-DuyhpHbR.js +1 -0
  33. package/dist/ui/assets/{capability-Ci9JmpEG.js → capability-SIitRcq_.js} +2 -2
  34. package/dist/ui/assets/{cdp-DXT6yEL1.js → cdp-DDYzhKE6.js} +1 -1
  35. package/dist/ui/assets/{cerebras-BF5efkRL.js → cerebras-CNR3k849.js} +1 -1
  36. package/dist/ui/assets/{cerebras-By0l7t0i.js → cerebras-_--8Umtj.js} +1 -1
  37. package/dist/ui/assets/{client-B6iKb_ye.js → client-_vVqanZy.js} +1 -1
  38. package/dist/ui/assets/{composer-speech-DIEePbQC.js → composer-speech-D8IeaPdq.js} +1 -1
  39. package/dist/ui/assets/{connect-surface-DBqs7oHf.js → connect-surface-Bnfiw-HT.js} +1 -1
  40. package/dist/ui/assets/{core-BMcS6rur.js → core-eZ1aR21T.js} +1 -1
  41. package/dist/ui/assets/core-vzw5Cr8B.js +36 -0
  42. package/dist/ui/assets/{directed-approval-D1lGElvD.js → directed-approval-CtbQZigA.js} +1 -1
  43. package/dist/ui/assets/{discovery-preference-Bw3Fi0jd.js → discovery-preference-G3mw_EUO.js} +1 -1
  44. package/dist/ui/assets/encode-frame-B8GkHc2t.js +1 -0
  45. package/dist/ui/assets/engine-D531XNHE.js +1 -0
  46. package/dist/ui/assets/{ensure-speech-assets-BJXemBO4.js → ensure-speech-assets-BGvEg25e.js} +1 -1
  47. package/dist/ui/assets/es-DJTRBqjm.js +52 -0
  48. package/dist/ui/assets/{extension-media-capture-BvLVZFQ0.js → extension-media-capture-DMB4r9UQ.js} +1 -1
  49. package/dist/ui/assets/{extension-ops-B0oi7ypc.js → extension-ops-B2RMipFn.js} +1 -1
  50. package/dist/ui/assets/fake-computer-Jawax3MO.js +352 -0
  51. package/dist/ui/assets/{float-topology-YtctpJaG.js → float-topology-CyZCUfkj.js} +1 -1
  52. package/dist/ui/assets/{follower-navigate-watcher-DnnHgZbM.js → follower-navigate-watcher-BAstHBQ5.js} +1 -1
  53. package/dist/ui/assets/frames-FHlUaNCs.js +1 -0
  54. package/dist/ui/assets/{frozen-archive-writer-DYPhPMg7.js → frozen-archive-writer-DFE4MYD-.js} +1 -1
  55. package/dist/ui/assets/{fs-CBH-hQcI.js → fs-BLqkdQnU.js} +1 -1
  56. package/dist/ui/assets/{fs-BapOupIM.js → fs-DRouAGaW.js} +2 -2
  57. package/dist/ui/assets/{gelatiere-store-C2u47uk0.js → gelatiere-store-D_JKXdpV.js} +1 -1
  58. package/dist/ui/assets/{gelatiere-unit-wvDEO7gH.js → gelatiere-unit-Q-gB5yVf.js} +1 -1
  59. package/dist/ui/assets/{github-Db015Tee.js → github-Cfpmwf1n.js} +1 -1
  60. package/dist/ui/assets/{github-Bx7_6LBm.js → github-DLAFwQdm.js} +2 -2
  61. package/dist/ui/assets/{github-auth-DtKS6UIX.js → github-auth-DnIBV6_3.js} +1 -1
  62. package/dist/ui/assets/{github-copilot-CtOjxhqK.js → github-copilot-BFfPdiKK.js} +1 -1
  63. package/dist/ui/assets/{github-copilot-eCfmryv6.js → github-copilot-EtGePnlq.js} +1 -1
  64. package/dist/ui/assets/{github-install-B6W4-xcc.js → github-install-1nDy7YKR.js} +1 -1
  65. package/dist/ui/assets/{github-zip-Bv1smNmy.js → github-zip-B-FKgUOX.js} +1 -1
  66. package/dist/ui/assets/{guest-tool-gate-Mu-876Hm.js → guest-tool-gate-GANtsowg.js} +1 -1
  67. package/dist/ui/assets/{hear-BZHckZJM.js → hear-BMEHlsdb.js} +1 -1
  68. package/dist/ui/assets/{help-BU2Hjl0P.js → help-DWGffc9y.js} +1 -1
  69. package/dist/ui/assets/host-AggLcUuh.js +1 -0
  70. package/dist/ui/assets/host-command-XUdketMY.js +28 -0
  71. package/dist/ui/assets/{image-markers-DuyWsic3.js → image-markers-CwM1dvoI.js} +1 -1
  72. package/dist/ui/assets/{image-markers-BFDmhPy4.js → image-markers-q8JQTtid.js} +1 -1
  73. package/dist/ui/assets/{installer-BbtH3u7z.js → installer-BHkUBh6r.js} +1 -1
  74. package/dist/ui/assets/{isomorphic-git-D2fV6xS-.js → isomorphic-git-B8-ayEVu.js} +7 -7
  75. package/dist/ui/assets/{isomorphic-git-B7et_8Xe.js → isomorphic-git-DuHitnAl.js} +10 -10
  76. package/dist/ui/assets/{js-realm-worker-BT3mfq3w.js → js-realm-worker-Zk_Jd1kr.js} +2 -2
  77. package/dist/ui/assets/jsh-CmIpo35m.js +1 -0
  78. package/dist/ui/assets/{jsh-executor-BWlgcE2N.js → jsh-executor-K5sbbmbA.js} +3 -3
  79. package/dist/ui/assets/{jsh-runtime-extensions-BnLXkzqP.js → jsh-runtime-extensions-ddeGEOUw.js} +1 -1
  80. package/dist/ui/assets/{kernel-worker-Dseu067f.js → kernel-worker-Bq9IjFw5.js} +34 -34
  81. package/dist/ui/assets/lick-urls-CgPiVwD-.js +1 -0
  82. package/dist/ui/assets/lick-ws-bridge-8HhoCHq8.js +1 -0
  83. package/dist/ui/assets/{lick-ws-bridge-Cc9sToY7.js → lick-ws-bridge-Ra_w6naR.js} +1 -1
  84. package/dist/ui/assets/{live-session-snapshot-B70raB09.js → live-session-snapshot-lUnl-mYx.js} +1 -1
  85. package/dist/ui/assets/{local-llm-Dcp5IIP-.js → local-llm-B80bjN-D.js} +1 -1
  86. package/dist/ui/assets/{local-llm-DpSg-Oe3.js → local-llm-OcOXhJKt.js} +1 -1
  87. package/dist/ui/assets/{main-CfF8CFBr.js → main-BRoNZPBl.js} +3 -3
  88. package/dist/ui/assets/{main-cherry-VckJPHm5.js → main-cherry-DD2gWq8O.js} +1 -1
  89. package/dist/ui/assets/{memory-curation-seam-DUaZFZG9.js → memory-curation-seam-CcNJCyMJ.js} +1 -1
  90. package/dist/ui/assets/{memory-health-D7uEvfAx.js → memory-health-DZmKH-IW.js} +1 -1
  91. package/dist/ui/assets/memory-v2-flag-DK0lPu0X.js +1 -0
  92. package/dist/ui/assets/{memory-write-execute-rXtR1z76.js → memory-write-execute-6yK_MOdy.js} +1 -1
  93. package/dist/ui/assets/{mount-8lU2iH4k.js → mount-CQBa9QoF.js} +3 -3
  94. package/dist/ui/assets/{mount-DoM0CLGG.js → mount-Dz-lPlKf.js} +1 -1
  95. package/dist/ui/assets/{mount-bridge-client-3a86Q6J0.js → mount-bridge-client-BOZDQLbT.js} +1 -1
  96. package/dist/ui/assets/{mount-bridge-client-CO2HxXrT.js → mount-bridge-client-BRywSH1d.js} +1 -1
  97. package/dist/ui/assets/{mv-DRuZuDHt.js → mv-C7mk2zT1.js} +1 -1
  98. package/dist/ui/assets/{new-session-DEhAjxP1.js → new-session-CXbgg4am.js} +2 -2
  99. package/dist/ui/assets/{oauth-bootstrap-DNTgbEZF.js → oauth-bootstrap-1lsyWJGc.js} +2 -2
  100. package/dist/ui/assets/{oauth-service-IlBYPvwr.js → oauth-service-CRmx6zI1.js} +1 -1
  101. package/dist/ui/assets/{oauth-service-BsW9nY_u.js → oauth-service-WTeDvR5m.js} +1 -1
  102. package/dist/ui/assets/{onboarding-orchestrator-DzPQ0pVG.js → onboarding-orchestrator-SsjiVLB2.js} +1 -1
  103. package/dist/ui/assets/{openai-codex-DYRKYWTe.js → openai-codex-BJzpp5yt.js} +1 -1
  104. package/dist/ui/assets/{openai-codex-CsAhfz0D.js → openai-codex-DDer9WGr.js} +1 -1
  105. package/dist/ui/assets/{openrouter-D9T6tXUF.js → openrouter-CdsU1YkP.js} +1 -1
  106. package/dist/ui/assets/{openrouter-free-CPshAgQD.js → openrouter-free-D1H2Ji7e.js} +1 -1
  107. package/dist/ui/assets/{openrouter-free-DfbYsnmf.js → openrouter-free-zplQAXSX.js} +1 -1
  108. package/dist/ui/assets/{openrouter-oauth-xKlWi_wI.js → openrouter-oauth-Bu3uuWMP.js} +1 -1
  109. package/dist/ui/assets/{openrouter-oauth-hZg6oH0A.js → openrouter-oauth-CrvWvUZV.js} +1 -1
  110. package/dist/ui/assets/{openrouter-IyZlRHg4.js → openrouter-xGsvfFPH.js} +1 -1
  111. package/dist/ui/assets/{opfs-mount-C9Iamj6N.js → opfs-mount-BqBx391V.js} +1 -1
  112. package/dist/ui/assets/{page-approval-service-B8t-buCi.js → page-approval-service-BkqDCbBQ.js} +1 -1
  113. package/dist/ui/assets/panel-rpc-handlers-CXr7dAtk.js +2 -0
  114. package/dist/ui/assets/panelize-shell-DjnrzeLU.js +4 -0
  115. package/dist/ui/assets/{pi-edit-execution-D6vx5LyF.js → pi-edit-execution-Dn7wc7f8.js} +1 -1
  116. package/dist/ui/assets/{port-bridge-client-Dn8JtUyP.js → port-bridge-client-CZFX4fUT.js} +1 -1
  117. package/dist/ui/assets/{port-bridge-client-Ds3xwapn.js → port-bridge-client-CkkC3v5w.js} +1 -1
  118. package/dist/ui/assets/{provider-Z5aj7SzG.js → provider-BCNJf9_1.js} +2 -2
  119. package/dist/ui/assets/{provider-3--cEcAF.js → provider-DiIrGlmw.js} +1 -1
  120. package/dist/ui/assets/{provider-settings-D9sjEfYE.js → provider-settings-DSf8xD9N.js} +1 -1
  121. package/dist/ui/assets/provider-store-access-CsczvZfg.js +1 -0
  122. package/dist/ui/assets/provider-store-access-et-xszx-.js +1 -0
  123. package/dist/ui/assets/{providers-CnoKdyLc.js → providers-CFveri5U.js} +2 -2
  124. package/dist/ui/assets/{providers-DVvrXbtx.js → providers-CfE8Z8rn.js} +1 -1
  125. package/dist/ui/assets/{proxied-fetch-DEK8DT-z.js → proxied-fetch-CPL8wJM2.js} +1 -1
  126. package/dist/ui/assets/{proxied-fetch-DyBveeCl.js → proxied-fetch-CnCvBaGV.js} +1 -1
  127. package/dist/ui/assets/{quick-llm-DjWE-wQw.js → quick-llm-t6CBwwSm.js} +1 -1
  128. package/dist/ui/assets/{realm-inprocess-D0iWBQzz.js → realm-inprocess-CmaGqRYS.js} +2 -2
  129. package/dist/ui/assets/{recovery-screen-Y1CSyfR-.js → recovery-screen-DdKutJyi.js} +1 -1
  130. package/dist/ui/assets/{redirect-uri-CgKdq7-K.js → redirect-uri-D2aDPCyB.js} +1 -1
  131. package/dist/ui/assets/{remote-terminal-view-D4Ah4AQY.js → remote-terminal-view-CA-SfvvZ.js} +2 -2
  132. package/dist/ui/assets/{request-body-DkfS6k_a.js → request-body-BF4moGct.js} +1 -1
  133. package/dist/ui/assets/{rest-ops-C8YK53pT.js → rest-ops-Yu_dXm4T.js} +1 -1
  134. package/dist/ui/assets/{rest-ops-DNanZY2-.js → rest-ops-aP40ni1y.js} +1 -1
  135. package/dist/ui/assets/{restore-DOkDX8BI.js → restore-Dk9r9feA.js} +1 -1
  136. package/dist/ui/assets/{run-BOkp5G58.js → run-1aYSFTwj.js} +2 -2
  137. package/dist/ui/assets/{run-B-t7kWH3.js → run-BEs473Sp.js} +1 -1
  138. package/dist/ui/assets/run-CHjRjdbt.js +75 -0
  139. package/dist/ui/assets/{run-DgNh1E56.js → run-CNldrNje.js} +3 -3
  140. package/dist/ui/assets/{run-Bld9B0W0.js → run-CreCrLyX.js} +1 -1
  141. package/dist/ui/assets/{run-a67LpkRp.js → run-CyYVrNXy.js} +2 -2
  142. package/dist/ui/assets/{run-B-fA26ea.js → run-D5s_jfOL.js} +1 -1
  143. package/dist/ui/assets/{run-D0C4PgZM.js → run-DuW-7oJj.js} +2 -2
  144. package/dist/ui/assets/{run-BOc9XLhg.js → run-QfYlwe2c.js} +1 -1
  145. package/dist/ui/assets/{run-vEDh-Me-.js → run-V-RPlN7V.js} +2 -2
  146. package/dist/ui/assets/{run-BWJSDhS7.js → run-wxYu-gUG.js} +2 -2
  147. package/dist/ui/assets/screen-s6LdF1JP.js +1 -0
  148. package/dist/ui/assets/screen-share-approval-live-D388fVD9.js +1 -0
  149. package/dist/ui/assets/screencapture-media-BjmoKpyn.js +1 -0
  150. package/dist/ui/assets/screencapture-media-CM5E2g6c.js +1 -0
  151. package/dist/ui/assets/screencapture-media-shared-DlK1Wqh8.js +1 -0
  152. package/dist/ui/assets/{screencapture-run-XrgS6hEd.js → screencapture-run-zmx5QKf_.js} +2 -2
  153. package/dist/ui/assets/{secret-env-CDLWFhsq.js → secret-env-DgrZZVFU.js} +1 -1
  154. package/dist/ui/assets/secret-topology-BrobAGSV.js +1 -0
  155. package/dist/ui/assets/{secrets-bridge-client--VZ3E0yk.js → secrets-bridge-client-BJqZCK6Q.js} +1 -1
  156. package/dist/ui/assets/{secrets-bridge-client-ZpBL1Zhl.js → secrets-bridge-client-CeK7HpDf.js} +1 -1
  157. package/dist/ui/assets/{session-command-memory-DB2GmPSU.js → session-command-memory-x5HxxZtb.js} +2 -2
  158. package/dist/ui/assets/{session-jsonl-D_pTYppB.js → session-jsonl-3Y2sXuNG.js} +1 -1
  159. package/dist/ui/assets/{session-jsonl-DFC-2T76.js → session-jsonl-DI8wVUpH.js} +1 -1
  160. package/dist/ui/assets/{session-search-index-CN1zDLlx.js → session-search-index-DRFKeHXl.js} +1 -1
  161. package/dist/ui/assets/{setup-feature-flags-remote-BVd31Z12.js → setup-feature-flags-remote-CEtNYgED.js} +1 -1
  162. package/dist/ui/assets/{signed-fetch-BY2Mdjqe.js → signed-fetch-E-2q08XL.js} +1 -1
  163. package/dist/ui/assets/{silent-renew-backoff-CKAAh6GN.js → silent-renew-backoff-Ddlf2gAw.js} +1 -1
  164. package/dist/ui/assets/slicc-version-bYxfYms3.js +1 -0
  165. package/dist/ui/assets/{snapshot-gi8tDzvN.js → snapshot-Dv7-7kFE.js} +1 -1
  166. package/dist/ui/assets/{snapshot-features-DjMJkCGq.js → snapshot-features-rlYmVQ8i.js} +1 -1
  167. package/dist/ui/assets/{soundscape-Bl3LhUk9.js → soundscape-CyBhtUGQ.js} +1 -1
  168. package/dist/ui/assets/{speak-BY_fDou2.js → speak-qRc1po5e.js} +1 -1
  169. package/dist/ui/assets/{sprinkle-manager-C-NUJqPy.js → sprinkle-manager-DT2AYalc.js} +1 -1
  170. package/dist/ui/assets/{sprinkle-renderer-CcA6ie5u.js → sprinkle-renderer-DF4JYgsw.js} +1 -1
  171. package/dist/ui/assets/ssh-BQqlQVXQ.js +6 -0
  172. package/dist/ui/assets/{state-z3wOHLww.js → state-RVr0GidF.js} +1 -1
  173. package/dist/ui/assets/{store-ByUcAFUa.js → store-BlFQl8dG.js} +1 -1
  174. package/dist/ui/assets/{store-ChWzn_H8.js → store-CYwEydJ4.js} +1 -1
  175. package/dist/ui/assets/{sudo-DNZFIZ-H.js → sudo-BqpeZUOO.js} +1 -1
  176. package/dist/ui/assets/sudo-fs-C6r_MIIY.js +3 -0
  177. package/dist/ui/assets/{supervisor-BtH2-9sE.js → supervisor-C1sPrIbH.js} +1 -1
  178. package/dist/ui/assets/{sync-dialog-Jqz74VkZ.js → sync-dialog-sC277gbg.js} +1 -1
  179. package/dist/ui/assets/tool-ui-DRnUkp2g.js +1 -0
  180. package/dist/ui/assets/{transformers-env-pq1E2H6B.js → transformers-env-BzsQpYgD.js} +1 -1
  181. package/dist/ui/assets/{tray-leader-Bas0lH9O.js → tray-leader-Gx_yzXFX.js} +1 -1
  182. package/dist/ui/assets/{lick-urls-DdKPDlgq.js → tray-leader-status-CpkFr6n7.js} +1 -1
  183. package/dist/ui/assets/{tray-leave-runtime-B9aV_guA.js → tray-leave-runtime-Cuj-CStD.js} +1 -1
  184. package/dist/ui/assets/{tray-runtime-config-BZoJXfW0.js → tray-runtime-config-dyxCfUex.js} +1 -1
  185. package/dist/ui/assets/{tray-sidecar-DA8NfCV6.js → tray-sidecar-BCAds1ts.js} +1 -1
  186. package/dist/ui/assets/{upgrade-detection-B5ym__Gu.js → upgrade-detection-CXNgKpwK.js} +1 -1
  187. package/dist/ui/assets/{upskill-lick-skip-CZGM2OFA.js → upskill-lick-skip-wDM3Vdyq.js} +1 -1
  188. package/dist/ui/assets/url-Dq7PTmNp.js +1 -0
  189. package/dist/ui/assets/v86-Cv7l0TeZ.js +1 -0
  190. package/dist/ui/assets/voice-reply-DPbxkmsy.js +1 -0
  191. package/dist/ui/assets/{wc-attach-C5yXIQNU.js → wc-attach-C-7ZwxKV.js} +3 -3
  192. package/dist/ui/assets/wc-browser-D-03DBqa.js +1 -0
  193. package/dist/ui/assets/wc-computers-m_Qiklfg.js +3 -0
  194. package/dist/ui/assets/{wc-detached-f_qit-5b.js → wc-detached-D5_bAfyn.js} +1 -1
  195. package/dist/ui/assets/{wc-extension-DRx21-cq.js → wc-extension-DSvNnUY6.js} +2 -2
  196. package/dist/ui/assets/{wc-follower-DcKt92kM.js → wc-follower-1feBQ0f-.js} +3 -3
  197. package/dist/ui/assets/wc-follower-oauth-JZo8mi8y.js +5 -0
  198. package/dist/ui/assets/{wc-gelatiere-qAW7lWGW.js → wc-gelatiere-Wr8PEKDG.js} +1 -1
  199. package/dist/ui/assets/wc-live-DT1WB50h.js +427 -0
  200. package/dist/ui/assets/{wc-nav-DzPuXq_n.js → wc-nav-BCq8EXtI.js} +2 -2
  201. package/dist/ui/assets/{wc-onboarding-CXM-z-7_.js → wc-onboarding-1l4fZpDo.js} +2 -2
  202. package/dist/ui/assets/{wc-permissions-BsGMi4OQ.js → wc-permissions-CCA-0PP4.js} +2 -2
  203. package/dist/ui/assets/{wc-placeholder-BBqbsuml.js → wc-placeholder-ODIHzW-8.js} +3 -3
  204. package/dist/ui/assets/{wc-secret-request-BSUlxVVi.js → wc-secret-request-CWyoYT_T.js} +1 -1
  205. package/dist/ui/assets/{wc-settings-55mC-jVS.js → wc-settings-Df49ivPm.js} +3 -3
  206. package/dist/ui/assets/{wc-shell-C71iKreG.js → wc-shell-CZ95TYrc.js} +242 -187
  207. package/dist/ui/assets/{wc-shortcut-config-Crjq_rF1.js → wc-shortcut-config-CmRCkDN0.js} +1 -1
  208. package/dist/ui/assets/{wc-sprinkles-Caji5y7n.js → wc-sprinkles-Cm0F47mC.js} +2 -2
  209. package/dist/ui/assets/{wc-transcript-export-Dqe3SH1t.js → wc-transcript-export-CMdPvQk4.js} +2 -2
  210. package/dist/ui/assets/wc-tray-2XQPor_4.js +5 -0
  211. package/dist/ui/assets/welcome-detection-CouG8kRR.js +1 -0
  212. package/dist/ui/assets/{whisper-session-DfILe4Yb.js → whisper-session-z9qnQTAM.js} +2 -2
  213. package/dist/ui/assets/{xai-grok-CVLBrxdD.js → xai-grok-BmuhN83h.js} +1 -1
  214. package/dist/ui/assets/{xai-grok-Dp8n52fO.js → xai-grok-CaNUqqnT.js} +1 -1
  215. package/dist/ui/index.html +11 -11
  216. package/dist/ui/packages/webapp/index.html +11 -11
  217. package/package.json +1 -1
  218. package/dist/ui/assets/SKILL-DB5CVwyu.js +0 -1
  219. package/dist/ui/assets/browser-2rCVqcqy.js +0 -1
  220. package/dist/ui/assets/core-DP-MJcag.js +0 -36
  221. package/dist/ui/assets/engine-B-OPe78i.js +0 -1
  222. package/dist/ui/assets/es-DwGGEZle.js +0 -51
  223. package/dist/ui/assets/fake-computer-1f2_4vxY.js +0 -65
  224. package/dist/ui/assets/host-BQ2qKD-D.js +0 -1
  225. package/dist/ui/assets/jsh-CrSWPG4t.js +0 -1
  226. package/dist/ui/assets/keys-n5_C9sHW.js +0 -1
  227. package/dist/ui/assets/lick-ws-bridge-ChigxI36.js +0 -1
  228. package/dist/ui/assets/memory-v2-flag-BHVbti6Z.js +0 -1
  229. package/dist/ui/assets/panel-rpc-handlers-Nu-wOrG9.js +0 -2
  230. package/dist/ui/assets/panelize-shell-tFElgHWF.js +0 -4
  231. package/dist/ui/assets/provider-store-access-M0PvJ08M.js +0 -1
  232. package/dist/ui/assets/provider-store-access-RxIHhH6d.js +0 -1
  233. package/dist/ui/assets/run-BEt0RS3J.js +0 -52
  234. package/dist/ui/assets/screencapture-media-B1iFS6Qy.js +0 -1
  235. package/dist/ui/assets/screencapture-media-YBE2VnLF.js +0 -1
  236. package/dist/ui/assets/secret-topology-DLJBhHOi.js +0 -1
  237. package/dist/ui/assets/slicc-version-BZyTvfoc.js +0 -1
  238. package/dist/ui/assets/sudo-fs-D620mZry.js +0 -3
  239. package/dist/ui/assets/v86-DseFx8Yp.js +0 -1
  240. package/dist/ui/assets/voice-reply-CL5tDo0l.js +0 -1
  241. package/dist/ui/assets/wc-browser-DO1Pnegi.js +0 -1
  242. package/dist/ui/assets/wc-follower-oauth-BF3qXDTt.js +0 -5
  243. package/dist/ui/assets/wc-live-DOMCfDT6.js +0 -427
  244. package/dist/ui/assets/wc-tray-B7ayzT1W.js +0 -5
  245. package/dist/ui/assets/welcome-detection-CEARSpAq.js +0 -1
package/README.md CHANGED
@@ -74,6 +74,7 @@ SLICC is for you if:
74
74
  - **Solve technical tasks with practical tools.** Reach for `bash`, `git`, `grep`, `node`, `python`, previews, and browser automation when the job is bigger than text generation.
75
75
  - **Make targeted file changes with Pi's `edit` tool.** One call can apply multiple unique, non-overlapping replacements while preserving BOMs and line endings; replacement text is always literal, so `$` sequences cannot rewrite themselves through JavaScript replacement expansion.
76
76
  - **See image-producing tool results directly in chat.** Supported `<img:data:image/...;base64,...>` markers from commands such as `open --view` and `screencapture` render as bounded, lazy-loaded inline images in chat tool rows. Each tool body displays at most four images and shows an explicit overflow indication when more are present.
77
+ - **Watch computers next to browser tabs.** Registered screens (v86 guests, tabs, jsh backends) appear as cards after browser tabs in the Browser overlay. Click a card for a live lightbox; `computer` bash rows show a live or frozen frame.
77
78
  - **Serve driveable previews.** `serve --bridge <dir>` mints a URL whose every visitor tab becomes a live, leader-driveable synthetic-CDP target — the agent can navigate/click/evaluate/screenshot and weave in webhook licks. **Security: opt-in only; cross-subdomain cookie risk accepted and documented (host-only cookies isolated per preview; `Domain=.sliccy.now` cookies readable across all previews).**
78
79
  - **Publish persistent previews.** `serve --ttl 30d <dir>` uploads an immutable snapshot that remains available without the tray leader for up to 30 days; `serve --stop <token>` revokes it early. Files are capped at 25 MiB; a tray holds up to 10 snapshots (live previews are unlimited and expire once the leader has been gone for 5 minutes) — see [`serve` limits](docs/shell-reference.md#limits-and-lifetime).
79
80
  - **Click a file the agent mentions.** When the agent writes a file name in chat — `bb.jsh`, `check.sh`, `packages/webapp/src/main.ts:42` — SLICC checks it against the workspace in the background and turns the ones that really exist into links. Clicking opens a preview; a mention that does not resolve stays plain text, so there are no dead links. A file with uncommitted changes opens on its diff. Names are read in the context of what the agent has already DONE: after `echo "test" > /home/lars/foo.md`, a later "see foo.md" links to that exact file — even when it lives outside the workspace, and even when three other `foo.md` files exist.
@@ -82,6 +83,7 @@ SLICC is for you if:
82
83
  - **Preview any file, not just the well-known types.** The previewer identifies files from their CONTENT rather than a list of extensions, so an unrecognized extension (`.jsh`, a `Justfile`) previews as source instead of refusing. Text is syntax-highlighted, PDFs render inline, and images, audio, and video play as before.
83
84
  - **Add visual and file context directly in chat.** Drop images or files onto the workspace, or use the paperclip button. Dropped `.skill` archives still install into `/workspace/skills`.
84
85
  - **Never lose a conversation to compaction.** Whenever a cone's history is summarized to fit the context window, the full transcript is first saved to `/sessions` as a live snapshot (one per cone, extended on every round) and the summary tells the agent where to find it. **New chat** completes that snapshot into a normal frozen session (Save / New chat, fast) or deletes it (Discard). **Compact on idle**: a cone that has sat idle for 30 minutes with a context of at least 200k tokens compacts in the background, so you never wait for a summary at the start of your next turn; if you come back mid-round, the round is thrown away and your chat continues as it was. Every compaction — idle or not — leaves a small marker in the transcript naming what happened, with a link to the snapshot it replaced; a round that ends up keeping nothing takes its marker back out.
86
+ - **Keep terminal failures visible.** If a cone or delegated scoop exhausts its provider retries, the error card is stored outside the model-facing history and survives a reload. Retrying or rebuilding the transcript does not duplicate it.
85
87
  - **Keep a gelatiere.** Turn on **Memory v2** under Experimental features and SLICC keeps a resident advisor: a persistent scoop no cone owns and nobody can prompt that reviews your archived sessions every night and after you end a chat, then comes back with a few concrete suggestions — a skill from the catalog that fits what you keep doing by hand, a use case you have not tried, a habit that would have avoided a detour. They show up as cards in the suggestions sprinkle (Install / Try it / Dismiss) and every open cone gets a lick. `gelatiere run` asks for a pass now; the instructions, the nightly schedule and the budget live in `/shared/GELATIERE.md`.
86
88
  - **Inspect experimental features from the avatar menu.** When centrally managed flags enable the surface for the current runtime, click your avatar and choose **Experimental features…** to open its standalone dialog. The dialog may honestly be empty: `experimental-settings` controls its availability but is not itself user-toggleable. Experimental features take effect when SLICC boots, so flipping one only matters on the next load. Changes are held until you confirm: the dialog says what is waiting and offers **Reload now** to save and apply them, or **Revert** to drop them. Nothing is written until you reload, and dismissing the dialog discards — so a flag can never end up reading `on` with nothing to show for it.
87
89
  - **Steer a running turn instead of waiting for it.** In the chat composer, `Enter` sends — including from a hardware keyboard in the native iOS follower — and queues behind whatever the cone is already doing; `Shift+Enter` inserts a newline. `Ctrl+Enter` (`Cmd+Enter` on macOS) steers: the message is injected as soon as the current step finishes, so you can redirect the agent mid-turn.
@@ -1 +1 @@
1
- {"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../src/base64.ts"],"names":[],"mappings":"AA4DA;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG1D;AAQD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAgBlE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAWvD"}
1
+ {"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../src/base64.ts"],"names":[],"mappings":"AA4DA;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG1D;AAQD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAgBlE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAgBvD"}
@@ -114,13 +114,17 @@ export function base64ToUint8(b64) {
114
114
  * the call stack on inputs larger than ~64 KiB.
115
115
  */
116
116
  export function uint8ToBase64(bytes) {
117
+ // Compact first: `Buffer.from(view.buffer)`-style callers and the
118
+ // chunked `btoa` path both mis-encode a view with `byteOffset !== 0`
119
+ // if they ever see the backing buffer instead of the slice.
120
+ const compact = bytes.byteOffset === 0 && bytes.byteLength === bytes.buffer.byteLength ? bytes : bytes.slice();
117
121
  const B = nodeBuffer();
118
122
  if (B) {
119
- return B.from(bytes).toString('base64');
123
+ return B.from(compact).toString('base64');
120
124
  }
121
125
  let binary = '';
122
- for (let i = 0; i < bytes.byteLength; i += CHUNK_SIZE) {
123
- const slice = bytes.subarray(i, Math.min(i + CHUNK_SIZE, bytes.byteLength));
126
+ for (let i = 0; i < compact.byteLength; i += CHUNK_SIZE) {
127
+ const slice = compact.subarray(i, Math.min(i + CHUNK_SIZE, compact.byteLength));
124
128
  binary += String.fromCharCode.apply(null, slice);
125
129
  }
126
130
  return btoa(binary);
@@ -1 +1 @@
1
- {"version":3,"file":"base64.js","sourceRoot":"","sources":["../src/base64.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base64.js","sourceRoot":"","sources":["../src/base64.ts"],"names":[],"mappings":"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"}
@@ -95,10 +95,14 @@ export interface ComputerFrame {
95
95
  width: number;
96
96
  height: number;
97
97
  bytes: Uint8Array;
98
+ /** Encoded pixels are wider than the requested maxWidth (resample unavailable). */
99
+ overCap?: boolean;
98
100
  }
99
101
  export interface ComputerScreenshotOpts {
100
102
  format: 'png' | 'jpeg';
101
103
  maxWidth?: number;
104
+ /** Adapters that issue HTTP must abort the in-flight request when this fires. */
105
+ signal?: AbortSignal;
102
106
  }
103
107
  export interface ComputerExecResult {
104
108
  stdout: string;
@@ -1 +1 @@
1
- {"version":3,"file":"computer-protocol.d.ts","sourceRoot":"","sources":["../src/computer-protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"computer-protocol.d.ts","sourceRoot":"","sources":["../src/computer-protocol.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,13 @@
2
2
  * Typed sync protocol for tray WebRTC data channels — canonical wire format.
3
3
  *
4
4
  * Leader → Follower: chat snapshots (single + chunked), streamed agent events,
5
- * user-message echoes, scoop list, model catalog + selection state,
5
+ * user-message echoes, scoop list, computer roster + frames, model catalog + selection state,
6
6
  * sprinkle list / content / updates,
7
7
  * federated CDP (request + response + event), federated tab.open and its
8
8
  * reply pair, federated FS (request + response), liveness (ping/pong/status/error).
9
9
  *
10
10
  * Follower → Leader: user input, abort, snapshot/scoop selection requests,
11
- * model catalog requests + model/thinking selection, sprinkle refresh +
11
+ * computer watch/unwatch, model catalog requests + model/thinking selection, sprinkle refresh +
12
12
  * content fetch + lick, target advertisement, federated
13
13
  * CDP (request + response + event), federated tab.open and its reply pair,
14
14
  * federated FS (request + response), ping/pong.
@@ -39,6 +39,7 @@
39
39
  * importers.
40
40
  */
41
41
  import type { AgentEvent, ChatMessage, LickEvent, MessageAttachment } from './agent-wire-types.js';
42
+ import type { ComputerDescriptor, ComputerFrameMime } from './computer-protocol.js';
42
43
  import type { TranscriptExportErrorCode } from './transcript-export.js';
43
44
  /**
44
45
  * Runtime tag a cherry follower connects with (`StartPageFollowerTrayOptions.runtime`).
@@ -378,6 +379,31 @@ export type LeaderToFollowerMessage = {
378
379
  scoops: ScoopSummary[];
379
380
  activeScoopJid: string;
380
381
  }
382
+ /**
383
+ * Additive computer roster, sent alongside `scoops.list`. Older followers
384
+ * drop it (`unhandledProtocolMessage` / iOS `.unknown`).
385
+ */
386
+ | {
387
+ type: 'computers.list';
388
+ computers: ComputerDescriptor[];
389
+ }
390
+ /**
391
+ * One live JPEG/PNG frame. Small payloads carry `data` (base64); oversize
392
+ * frames use the same optional CDP-style `chunkData` / `chunkIndex` /
393
+ * `totalChunks` fields. Leaders cap the tray stream at 2 fps / 480 px.
394
+ */
395
+ | {
396
+ type: 'computer.frame';
397
+ id: string;
398
+ seq: number;
399
+ mime: ComputerFrameMime;
400
+ width: number;
401
+ height: number;
402
+ data?: string;
403
+ chunkData?: string;
404
+ chunkIndex?: number;
405
+ totalChunks?: number;
406
+ }
381
407
  /**
382
408
  * Compact catalog rows normally remain below the 64 KiB CDP chunk threshold.
383
409
  * A bespoke semantic chunk variant is unnecessary: the generic
@@ -538,6 +564,14 @@ export type FollowerToLeaderMessage = {
538
564
  } | {
539
565
  type: 'scoops.select';
540
566
  scoopJid: string;
567
+ } | {
568
+ type: 'computer.watch';
569
+ id: string;
570
+ fps?: number;
571
+ maxWidth?: number;
572
+ } | {
573
+ type: 'computer.unwatch';
574
+ id: string;
541
575
  } | {
542
576
  type: 'models.request';
543
577
  } | {
@@ -1073,6 +1107,12 @@ export declare const CDP_CHUNK_THRESHOLD: number;
1073
1107
  type CDPResponseMessage = Extract<TraySyncMessage, {
1074
1108
  type: 'cdp.response';
1075
1109
  }>;
1110
+ /** Cap on live computer frames crossing the tray channel (issue #3246). */
1111
+ export declare const COMPUTER_TRAY_MAX_FPS = 2;
1112
+ export declare const COMPUTER_TRAY_MAX_WIDTH = 480;
1113
+ export type ComputerFrameMessage = Extract<LeaderToFollowerMessage, {
1114
+ type: 'computer.frame';
1115
+ }>;
1076
1116
  /**
1077
1117
  * Send a CDP response, automatically chunking if the serialized result exceeds CDP_CHUNK_THRESHOLD.
1078
1118
  * Returns true if all chunks were sent successfully, false if any send failed.
@@ -1097,5 +1137,29 @@ export declare function reassembleCDPResponse(buffers: Map<string, {
1097
1137
  result?: CDPPayload;
1098
1138
  error?: string;
1099
1139
  } | null;
1140
+ /**
1141
+ * Send a computer.frame, chunking the base64 `data` the same way CDP
1142
+ * responses chunk their JSON when the payload exceeds CDP_CHUNK_THRESHOLD.
1143
+ */
1144
+ export declare function sendComputerFrame(channel: {
1145
+ send(message: TraySyncMessage): boolean;
1146
+ bufferedAmount?: number;
1147
+ }, frame: {
1148
+ id: string;
1149
+ seq: number;
1150
+ mime: ComputerFrameMime;
1151
+ width: number;
1152
+ height: number;
1153
+ data: string;
1154
+ }): boolean;
1155
+ /**
1156
+ * Reassemble chunked computer.frame payloads. Returns the message with `data`
1157
+ * filled in when all chunks have arrived, or null while waiting.
1158
+ */
1159
+ export declare function reassembleComputerFrame(buffers: Map<string, {
1160
+ chunks: string[];
1161
+ received: number;
1162
+ totalChunks: number;
1163
+ }>, message: ComputerFrameMessage): ComputerFrameMessage | null;
1100
1164
  export {};
1101
1165
  //# sourceMappingURL=tray-sync-protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tray-sync-protocol.d.ts","sourceRoot":"","sources":["../src/tray-sync-protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tray-sync-protocol.d.ts","sourceRoot":"","sources":["../src/tray-sync-protocol.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,13 @@
2
2
  * Typed sync protocol for tray WebRTC data channels — canonical wire format.
3
3
  *
4
4
  * Leader → Follower: chat snapshots (single + chunked), streamed agent events,
5
- * user-message echoes, scoop list, model catalog + selection state,
5
+ * user-message echoes, scoop list, computer roster + frames, model catalog + selection state,
6
6
  * sprinkle list / content / updates,
7
7
  * federated CDP (request + response + event), federated tab.open and its
8
8
  * reply pair, federated FS (request + response), liveness (ping/pong/status/error).
9
9
  *
10
10
  * Follower → Leader: user input, abort, snapshot/scoop selection requests,
11
- * model catalog requests + model/thinking selection, sprinkle refresh +
11
+ * computer watch/unwatch, model catalog requests + model/thinking selection, sprinkle refresh +
12
12
  * content fetch + lick, target advertisement, federated
13
13
  * CDP (request + response + event), federated tab.open and its reply pair,
14
14
  * federated FS (request + response), ping/pong.
@@ -185,6 +185,9 @@ export function unhandledProtocolMessage(message) {
185
185
  export const CDP_CHUNK_THRESHOLD = 64 * 1024; // 64 KB
186
186
  /** Individual chunk size — smaller than threshold for safety margin. */
187
187
  const CDP_CHUNK_SIZE = 32 * 1024; // 32 KB
188
+ /** Cap on live computer frames crossing the tray channel (issue #3246). */
189
+ export const COMPUTER_TRAY_MAX_FPS = 2;
190
+ export const COMPUTER_TRAY_MAX_WIDTH = 480;
188
191
  /**
189
192
  * Send a CDP response, automatically chunking if the serialized result exceeds CDP_CHUNK_THRESHOLD.
190
193
  * Returns true if all chunks were sent successfully, false if any send failed.
@@ -272,4 +275,74 @@ export function reassembleCDPResponse(buffers, message) {
272
275
  }
273
276
  return null; // Still waiting for more chunks
274
277
  }
278
+ /**
279
+ * Send a computer.frame, chunking the base64 `data` the same way CDP
280
+ * responses chunk their JSON when the payload exceeds CDP_CHUNK_THRESHOLD.
281
+ */
282
+ export function sendComputerFrame(channel, frame) {
283
+ if (frame.data.length <= CDP_CHUNK_THRESHOLD) {
284
+ return channel.send({ type: 'computer.frame', ...frame });
285
+ }
286
+ const queued = channel.bufferedAmount;
287
+ if (typeof queued === 'number' && queued >= TRAY_SEND_HIGH_WATER_BYTES) {
288
+ return false;
289
+ }
290
+ const totalChunks = Math.ceil(frame.data.length / CDP_CHUNK_SIZE);
291
+ let allSent = true;
292
+ for (let i = 0; i < totalChunks; i++) {
293
+ const chunkData = frame.data.slice(i * CDP_CHUNK_SIZE, (i + 1) * CDP_CHUNK_SIZE);
294
+ const ok = channel.send({
295
+ type: 'computer.frame',
296
+ id: frame.id,
297
+ seq: frame.seq,
298
+ mime: frame.mime,
299
+ width: frame.width,
300
+ height: frame.height,
301
+ chunkData,
302
+ chunkIndex: i,
303
+ totalChunks,
304
+ });
305
+ if (!ok) {
306
+ allSent = false;
307
+ break;
308
+ }
309
+ }
310
+ return allSent;
311
+ }
312
+ /**
313
+ * Reassemble chunked computer.frame payloads. Returns the message with `data`
314
+ * filled in when all chunks have arrived, or null while waiting.
315
+ */
316
+ export function reassembleComputerFrame(buffers, message) {
317
+ if (message.chunkIndex === undefined || message.totalChunks === undefined) {
318
+ return message;
319
+ }
320
+ const key = `${message.id}:${message.seq}`;
321
+ let buffer = buffers.get(key);
322
+ if (!buffer) {
323
+ buffer = {
324
+ chunks: new Array(message.totalChunks),
325
+ received: 0,
326
+ totalChunks: message.totalChunks,
327
+ };
328
+ buffers.set(key, buffer);
329
+ }
330
+ if (!buffer.chunks[message.chunkIndex] && message.chunkData !== undefined) {
331
+ buffer.chunks[message.chunkIndex] = message.chunkData;
332
+ buffer.received++;
333
+ }
334
+ if (buffer.received >= buffer.totalChunks) {
335
+ buffers.delete(key);
336
+ return {
337
+ type: 'computer.frame',
338
+ id: message.id,
339
+ seq: message.seq,
340
+ mime: message.mime,
341
+ width: message.width,
342
+ height: message.height,
343
+ data: buffer.chunks.join(''),
344
+ };
345
+ }
346
+ return null;
347
+ }
275
348
  //# sourceMappingURL=tray-sync-protocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tray-sync-protocol.js","sourceRoot":"","sources":["../src/tray-sync-protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tray-sync-protocol.js","sourceRoot":"","sources":["../src/tray-sync-protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Reference HTTP computer behind `--computer-demo`. Implements the
3
+ * phase-3 URL contract so `computer add url http://127.0.0.1:<port>` and
4
+ * the fake-LLM e2e can drive a real remote without a third-party host.
5
+ *
6
+ * GET /computer
7
+ * GET /computer/screenshot?maxWidth=&format=
8
+ * GET /computer/text
9
+ * POST /computer/input
10
+ * WS /computer/frames?fps=4 (optional; HTTP poll still works)
11
+ */
12
+ import type { IncomingMessage } from 'node:http';
13
+ import type { Duplex } from 'node:stream';
14
+ import type { ComputerDescriptor, ComputerInputEvent } from './_shared/index.js';
15
+ import type { Express } from 'express';
16
+ import { WebSocketServer } from 'ws';
17
+ /** 1×1 SOF0 JPEG — enough for protocol tests; not a displayable photo. */
18
+ export declare const COMPUTER_DEMO_JPEG: Uint8Array<ArrayBuffer>;
19
+ export declare class ComputerDemoState {
20
+ seq: number;
21
+ readonly events: ComputerInputEvent[];
22
+ descriptor(): ComputerDescriptor;
23
+ screenshot(): {
24
+ bytes: Uint8Array;
25
+ mime: string;
26
+ width: number;
27
+ height: number;
28
+ seq: number;
29
+ };
30
+ text(): string;
31
+ input(events: ComputerInputEvent[]): void;
32
+ }
33
+ export declare function registerComputerDemoRoutes(app: Express, state: ComputerDemoState): void;
34
+ export declare function createComputerDemoFrameServer(state: ComputerDemoState): WebSocketServer;
35
+ /** True when this upgrade was the demo frames socket. */
36
+ export declare function handleComputerDemoUpgrade(pathname: string, request: IncomingMessage, socket: Duplex, head: Buffer, wss: WebSocketServer): boolean;
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Reference HTTP computer behind `--computer-demo`. Implements the
3
+ * phase-3 URL contract so `computer add url http://127.0.0.1:<port>` and
4
+ * the fake-LLM e2e can drive a real remote without a third-party host.
5
+ *
6
+ * GET /computer
7
+ * GET /computer/screenshot?maxWidth=&format=
8
+ * GET /computer/text
9
+ * POST /computer/input
10
+ * WS /computer/frames?fps=4 (optional; HTTP poll still works)
11
+ */
12
+ import { WebSocketServer } from 'ws';
13
+ /** 1×1 SOF0 JPEG — enough for protocol tests; not a displayable photo. */
14
+ export const COMPUTER_DEMO_JPEG = Uint8Array.of(0xff, 0xd8, 0xff, 0xc0, 0x00, 0x0b, 0x08, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x11, 0x00, 0xff, 0xd9);
15
+ export class ComputerDemoState {
16
+ seq = 0;
17
+ events = [];
18
+ descriptor() {
19
+ return {
20
+ id: 'url:demo',
21
+ kind: 'url',
22
+ title: 'computer-demo',
23
+ size: { width: 1, height: 1 },
24
+ state: 'live',
25
+ capabilities: {
26
+ screenshot: true,
27
+ text: true,
28
+ frames: 'poll',
29
+ keyboard: true,
30
+ mouse: 'absolute',
31
+ scroll: true,
32
+ exec: false,
33
+ inputAllowed: true,
34
+ },
35
+ pid: null,
36
+ };
37
+ }
38
+ screenshot() {
39
+ this.seq += 1;
40
+ return {
41
+ bytes: COMPUTER_DEMO_JPEG,
42
+ mime: 'image/jpeg',
43
+ width: 1,
44
+ height: 1,
45
+ seq: this.seq,
46
+ };
47
+ }
48
+ text() {
49
+ if (this.events.length === 0)
50
+ return 'demo\n';
51
+ return `${this.events.map((event) => event.type).join('\n')}\n`;
52
+ }
53
+ input(events) {
54
+ this.events.push(...events);
55
+ }
56
+ }
57
+ function isInputEvent(value) {
58
+ if (typeof value !== 'object' || value === null)
59
+ return false;
60
+ if (!('type' in value) || typeof value.type !== 'string')
61
+ return false;
62
+ return (value.type === 'mousemove' ||
63
+ value.type === 'button' ||
64
+ value.type === 'click' ||
65
+ value.type === 'scroll' ||
66
+ value.type === 'drag' ||
67
+ value.type === 'key' ||
68
+ value.type === 'text' ||
69
+ value.type === 'wait');
70
+ }
71
+ export function registerComputerDemoRoutes(app, state) {
72
+ app.get('/computer', (_req, res) => {
73
+ res.json(state.descriptor());
74
+ });
75
+ app.get('/computer/screenshot', (_req, res) => {
76
+ const shot = state.screenshot();
77
+ res.set('Content-Type', shot.mime);
78
+ res.set('Cache-Control', 'no-store');
79
+ res.send(Buffer.from(shot.bytes));
80
+ });
81
+ app.get('/computer/text', (_req, res) => {
82
+ res.type('text/plain').send(state.text());
83
+ });
84
+ app.post('/computer/input', (req, res) => {
85
+ if (!Array.isArray(req.body)) {
86
+ res.status(400).json({ error: 'expected ComputerInputEvent[]' });
87
+ return;
88
+ }
89
+ const events = [];
90
+ for (const item of req.body) {
91
+ if (!isInputEvent(item)) {
92
+ res.status(400).json({ error: 'invalid ComputerInputEvent' });
93
+ return;
94
+ }
95
+ events.push(item);
96
+ }
97
+ state.input(events);
98
+ res.json({ ok: true, count: events.length });
99
+ });
100
+ }
101
+ export function createComputerDemoFrameServer(state) {
102
+ const wss = new WebSocketServer({ noServer: true });
103
+ wss.on('connection', (ws, request) => {
104
+ const url = new URL(request.url ?? '/', 'http://computer-demo.local');
105
+ const fps = Math.min(8, Math.max(1, Number(url.searchParams.get('fps')) || 4));
106
+ const tick = () => {
107
+ if (ws.readyState !== ws.OPEN)
108
+ return;
109
+ const shot = state.screenshot();
110
+ ws.send(shot.bytes);
111
+ };
112
+ tick();
113
+ const timer = setInterval(tick, Math.round(1000 / fps));
114
+ ws.on('close', () => clearInterval(timer));
115
+ });
116
+ return wss;
117
+ }
118
+ /** True when this upgrade was the demo frames socket. */
119
+ export function handleComputerDemoUpgrade(pathname, request, socket, head, wss) {
120
+ if (pathname !== '/computer/frames')
121
+ return false;
122
+ wss.handleUpgrade(request, socket, head, (ws) => {
123
+ wss.emit('connection', ws, request);
124
+ });
125
+ return true;
126
+ }
@@ -27,6 +27,7 @@ import { FileRegistry } from './cloud/registry-file.js';
27
27
  import { runResume } from './cloud/resume.js';
28
28
  import { runStart } from './cloud/start.js';
29
29
  import { registerCloudStatusEndpoint } from './cloud-status.js';
30
+ import { ComputerDemoState, createComputerDemoFrameServer, handleComputerDemoUpgrade, registerComputerDemoRoutes, } from './computer-demo.js';
30
31
  import { ElectronAppAlreadyRunningError, ElectronOverlayInjector, launchElectronApp, resolveOverlayThinBridge, } from './electron-controller.js';
31
32
  import { getElectronAppPorts } from './electron-runtime.js';
32
33
  import { ElectronTrayFollower } from './electron-tray-follower.js';
@@ -580,9 +581,11 @@ function rejectUpgradeUnauthorized(socket, reason) {
580
581
  * `Sec-WebSocket-Protocol` token = socket destroyed before
581
582
  * `wss.emit('connection', ...)` ever fires. Legacy modes (dev / electron /
582
583
  * serve-only / hosted) pass `null` to keep same-origin behavior unchanged.
583
- * `/licks-ws` is loopback-only and stays ungated.
584
+ * `/licks-ws` is loopback-only and stays ungated. When `--computer-demo` is
585
+ * on, `/computer/frames` is the optional push socket for the URL adapter
586
+ * reference server (HTTP poll still works without the upgrade).
584
587
  */
585
- function attachCdpUpgradeRouting(server, wss, lickWss, bridgeToken) {
588
+ function attachCdpUpgradeRouting(server, wss, lickWss, bridgeToken, computerDemoWss = null) {
586
589
  server.on('upgrade', (request, socket, head) => {
587
590
  const { pathname } = new URL(request.url, `http://${request.headers.host}`);
588
591
  if (pathname === '/cdp') {
@@ -607,6 +610,9 @@ function attachCdpUpgradeRouting(server, wss, lickWss, bridgeToken) {
607
610
  lickWss.emit('connection', ws, request);
608
611
  });
609
612
  }
613
+ else if (computerDemoWss) {
614
+ handleComputerDemoUpgrade(pathname, request, socket, head, computerDemoWss);
615
+ }
610
616
  });
611
617
  }
612
618
  /**
@@ -1256,6 +1262,9 @@ async function main() {
1256
1262
  // trusted process so the in-browser agent can request, but never fabricate,
1257
1263
  // an approval. Loopback-only; selects a backend by environment at call time.
1258
1264
  registerSudoApproveEndpoint(app);
1265
+ const computerDemo = RUNTIME_FLAGS.computerDemo ? new ComputerDemoState() : null;
1266
+ if (computerDemo)
1267
+ registerComputerDemoRoutes(app, computerDemo);
1259
1268
  // Fetch proxy — forwards cross-origin requests from the browser to bypass CORS,
1260
1269
  // injecting/unmasking secrets and streaming the response with a UTF-8-safe scrub.
1261
1270
  registerFetchProxyRoute(app, { secretProxy });
@@ -1267,7 +1276,8 @@ async function main() {
1267
1276
  // 4. CDP WebSocket proxy at /cdp — noServer mode so we own the upgrade
1268
1277
  // handler routing for /cdp and /licks-ws.
1269
1278
  const wss = createCdpWebSocketServer(state.bridgeToken);
1270
- attachCdpUpgradeRouting(server, wss, lickWss, state.bridgeToken);
1279
+ const computerDemoWss = computerDemo ? createComputerDemoFrameServer(computerDemo) : null;
1280
+ attachCdpUpgradeRouting(server, wss, lickWss, state.bridgeToken, computerDemoWss);
1271
1281
  const cdpCtx = {
1272
1282
  wss,
1273
1283
  secretProxy,
@@ -24,6 +24,8 @@ export interface CliRuntimeFlags {
24
24
  installCli: boolean;
25
25
  /** Target directory for --install-cli (default: OS-idiomatic, see install-cli.ts) */
26
26
  installDir: string | null;
27
+ /** Mount GET/POST `/computer` + optional WS `/computer/frames` (URL adapter reference). */
28
+ computerDemo: boolean;
27
29
  /**
28
30
  * Mount table: OS-folder → SLICC-target mappings served over the local
29
31
  * host-FS bridge (`/api/hostfs`) and auto-mounted by the webapp at boot,