sliccy 6.167.0 → 6.169.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 (250) hide show
  1. package/README.md +6 -5
  2. package/dist/node-server/_shared/agent-wire-types.d.ts +9 -1
  3. package/dist/node-server/_shared/agent-wire-types.d.ts.map +1 -1
  4. package/dist/node-server/_shared/computer-protocol.d.ts +2 -0
  5. package/dist/node-server/_shared/computer-protocol.d.ts.map +1 -1
  6. package/dist/node-server/_shared/tray-sync-protocol.d.ts +119 -3
  7. package/dist/node-server/_shared/tray-sync-protocol.d.ts.map +1 -1
  8. package/dist/node-server/_shared/tray-sync-protocol.js +132 -2
  9. package/dist/node-server/_shared/tray-sync-protocol.js.map +1 -1
  10. package/dist/node-server/computer-demo.d.ts +36 -0
  11. package/dist/node-server/computer-demo.js +126 -0
  12. package/dist/node-server/index.js +13 -3
  13. package/dist/node-server/runtime-flags.d.ts +2 -0
  14. package/dist/node-server/runtime-flags.js +5 -0
  15. package/dist/ui/.vite/manifest.json +275 -260
  16. package/dist/ui/assets/{SKILL-BGEZa-y0.js → SKILL-BTHo2BzY.js} +1 -1
  17. package/dist/ui/assets/{SKILL-Bpepfqq0.js → SKILL-BULOq3ys.js} +1 -1
  18. package/dist/ui/assets/{SKILL-DEFDsScb.js → SKILL-CLL4Q13w.js} +1 -1
  19. package/dist/ui/assets/SKILL-maxwOcxi.js +1 -0
  20. package/dist/ui/assets/{account-store-B05_LKnj.js → account-store-C0smCH0b.js} +1 -1
  21. package/dist/ui/assets/{account-store-CNTI4kr_.js → account-store-_oWY-N-g.js} +2 -2
  22. package/dist/ui/assets/{adobe-nu3irXcy.js → adobe-D8bfhWFa.js} +1 -1
  23. package/dist/ui/assets/{adobe-CRRWEbtf.js → adobe-i2veKh2G.js} +2 -2
  24. package/dist/ui/assets/{agent-panels-DvH_qfTh.js → agent-panels-Bt83ejkl.js} +1 -1
  25. package/dist/ui/assets/{almost-bash-shell-headless-BA5r_r61.js → almost-bash-shell-headless-CXYALRet.js} +521 -582
  26. package/dist/ui/assets/{apply-layout-CASSSWEy.js → apply-layout-C4DuaXQ1.js} +1 -1
  27. package/dist/ui/assets/approval-timeout-BQ29Z0gf.js +1 -0
  28. package/dist/ui/assets/{apps-BGe9_zJ7.js → apps-DpExQYs8.js} +1 -1
  29. package/dist/ui/assets/{azure-openai-C-Iw82HZ.js → azure-openai-CGgFuiTh.js} +1 -1
  30. package/dist/ui/assets/{azure-openai-DuJciOKd.js → azure-openai-Cm0dqkf0.js} +1 -1
  31. package/dist/ui/assets/{backend-hostfs-DdAVlPMP.js → backend-hostfs-BZXs8PNk.js} +1 -1
  32. package/dist/ui/assets/browser-DuyhpHbR.js +1 -0
  33. package/dist/ui/assets/{capability-C2eJ1wdx.js → capability-SIitRcq_.js} +2 -2
  34. package/dist/ui/assets/{cdp-DG8TVjf3.js → cdp-UL1FYYjc.js} +2 -2
  35. package/dist/ui/assets/{cerebras-Xadzrxfp.js → cerebras-BEKAS5HH.js} +1 -1
  36. package/dist/ui/assets/{cerebras-BXwtUxTj.js → cerebras-nQZqQsKF.js} +1 -1
  37. package/dist/ui/assets/{client-BDN4zG90.js → client-_vVqanZy.js} +1 -1
  38. package/dist/ui/assets/{composer-speech-_uq5e0Bo.js → composer-speech-BPb0h67H.js} +1 -1
  39. package/dist/ui/assets/{connect-surface-odDz37TJ.js → connect-surface-EJ0FRStY.js} +1 -1
  40. package/dist/ui/assets/context-compaction-Dpr7xgBZ.js +58 -0
  41. package/dist/ui/assets/core-DWdpOAZd.js +62 -0
  42. package/dist/ui/assets/core-w0-0FXns.js +36 -0
  43. package/dist/ui/assets/{directed-approval-D_AXAvuz.js → directed-approval-CPSbebEZ.js} +1 -1
  44. package/dist/ui/assets/{discovery-preference-TziZ7Yxu.js → discovery-preference-G3mw_EUO.js} +1 -1
  45. package/dist/ui/assets/encode-frame-30wbFN-H.js +1 -0
  46. package/dist/ui/assets/engine-CzMNXd8U.js +1 -0
  47. package/dist/ui/assets/{ensure-speech-assets-DTj236n-.js → ensure-speech-assets-DPjgwmlG.js} +1 -1
  48. package/dist/ui/assets/es-DJTRBqjm.js +52 -0
  49. package/dist/ui/assets/{extension-ops-DNPAsYbK.js → extension-ops-B2RMipFn.js} +1 -1
  50. package/dist/ui/assets/{float-topology-CurCyQFy.js → float-topology-CyZCUfkj.js} +1 -1
  51. package/dist/ui/assets/{follower-navigate-watcher-C98XMw_C.js → follower-navigate-watcher-BAstHBQ5.js} +1 -1
  52. package/dist/ui/assets/frames-7E6RloFP.js +1 -0
  53. package/dist/ui/assets/{frozen-archive-writer-BIzZxx8R.js → frozen-archive-writer-rq_r_D3R.js} +2 -2
  54. package/dist/ui/assets/{fs-CJs9n90Q.js → fs-B9TgYyVA.js} +2 -2
  55. package/dist/ui/assets/{fs-Bq8bUwe2.js → fs-KJBUdRz_.js} +1 -1
  56. package/dist/ui/assets/{gelatiere-store-BY0hZvSS.js → gelatiere-store-DIE4b-Va.js} +1 -1
  57. package/dist/ui/assets/gelatiere-unit-wx8F8dnF.js +1 -0
  58. package/dist/ui/assets/{github-D1gd3q6u.js → github-CgEE40ok.js} +2 -2
  59. package/dist/ui/assets/{github-uDwUwz5H.js → github-_GgWC1Vq.js} +1 -1
  60. package/dist/ui/assets/{github-auth-CzzE1eDf.js → github-auth-Ba7C_Kly.js} +1 -1
  61. package/dist/ui/assets/{github-copilot-Bx2lXrwK.js → github-copilot-jobL3_Cf.js} +1 -1
  62. package/dist/ui/assets/{github-copilot-DidNEEe_.js → github-copilot-rsfkYfvK.js} +1 -1
  63. package/dist/ui/assets/{github-install--_xp8s-S.js → github-install-DtlYn56m.js} +1 -1
  64. package/dist/ui/assets/{github-zip-Bs35nBig.js → github-zip-BanSb9qW.js} +1 -1
  65. package/dist/ui/assets/{guest-tool-gate-B-lZT9hl.js → guest-tool-gate-C6sp1l3H.js} +1 -1
  66. package/dist/ui/assets/{hear-BNmJphKg.js → hear-zSghqsv6.js} +1 -1
  67. package/dist/ui/assets/{help-C7Nq107k.js → help-BkjaKwT1.js} +1 -1
  68. package/dist/ui/assets/{host-iTtS0MRF.js → host-BjOvrhMS.js} +1 -1
  69. package/dist/ui/assets/host-command-XUdketMY.js +28 -0
  70. package/dist/ui/assets/icons-BMNa26vG.js +1 -0
  71. package/dist/ui/assets/idle-compaction-CwYw083A.js +1 -0
  72. package/dist/ui/assets/{installer-C0xiAs69.js → installer-CYXMipeW.js} +1 -1
  73. package/dist/ui/assets/interrupted-work-recovery-p8rpTJ6o.js +1 -0
  74. package/dist/ui/assets/{isomorphic-git-B7et_8Xe.js → isomorphic-git-B9eVtfwq.js} +10 -10
  75. package/dist/ui/assets/{isomorphic-git-D2fV6xS-.js → isomorphic-git-DXMEKpHT.js} +7 -7
  76. package/dist/ui/assets/{js-realm-worker-B9Rz0g1p.js → js-realm-worker-B9VuUz7Q.js} +2 -2
  77. package/dist/ui/assets/{jsh-executor-C7QPZ2Qr.js → jsh-executor-BhNH2E0v.js} +4 -4
  78. package/dist/ui/assets/{jsh-runtime-extensions-ddeGEOUw.js → jsh-runtime-extensions-CmdnQhXG.js} +1 -1
  79. package/dist/ui/assets/kernel-worker-CBI5EKGn.js +1186 -0
  80. package/dist/ui/assets/keys-Bluq5eTH.js +1 -0
  81. package/dist/ui/assets/lick-urls-CgPiVwD-.js +1 -0
  82. package/dist/ui/assets/{lick-ws-bridge-BcAhlead.js → lick-ws-bridge-BFrcBnVV.js} +1 -1
  83. package/dist/ui/assets/lick-ws-bridge-DVoxwaqS.js +1 -0
  84. package/dist/ui/assets/{live-session-snapshot-COMr2v0o.js → live-session-snapshot-Cw5xb5EQ.js} +1 -1
  85. package/dist/ui/assets/{local-llm-DdGb9WMG.js → local-llm-BRe_Kttg.js} +1 -1
  86. package/dist/ui/assets/{local-llm-DqeU7kV3.js → local-llm-C7T1M_NI.js} +1 -1
  87. package/dist/ui/assets/{main-jc6OS8lz.js → main-BfonTdzP.js} +3 -3
  88. package/dist/ui/assets/{main-cherry-BGZmJFd_.js → main-cherry-Cty_ShgD.js} +1 -1
  89. package/dist/ui/assets/{memory-curation-seam-B8pprlUo.js → memory-curation-seam-dmTVk3Ov.js} +1 -1
  90. package/dist/ui/assets/{memory-health-CGkpyA7o.js → memory-health-9iNdh0Ac.js} +1 -1
  91. package/dist/ui/assets/memory-v2-flag-D4biUAiV.js +1 -0
  92. package/dist/ui/assets/{memory-write-execute-B-ahXjaO.js → memory-write-execute-C9xS6Q1z.js} +1 -1
  93. package/dist/ui/assets/{mount-FkNAB0be.js → mount-B_VZbcPY.js} +1 -1
  94. package/dist/ui/assets/{mount-BzdPNQoA.js → mount-Bq4ov4Wg.js} +3 -3
  95. package/dist/ui/assets/{mount-bridge-client-BO0N4wwP.js → mount-bridge-client-BOZDQLbT.js} +1 -1
  96. package/dist/ui/assets/{mount-bridge-client-CRnohfom.js → mount-bridge-client-BRywSH1d.js} +1 -1
  97. package/dist/ui/assets/{mv-DRuZuDHt.js → mv-BE_lEtyG.js} +1 -1
  98. package/dist/ui/assets/{new-session-B8iOhaK0.js → new-session-BJqFQPRu.js} +2 -2
  99. package/dist/ui/assets/{oauth-bootstrap-B9PwK4-d.js → oauth-bootstrap-CFXmccC5.js} +2 -2
  100. package/dist/ui/assets/{oauth-service-UTPOqIwj.js → oauth-service-CRmx6zI1.js} +1 -1
  101. package/dist/ui/assets/{oauth-service-Bkaz0Dt4.js → oauth-service-WTeDvR5m.js} +1 -1
  102. package/dist/ui/assets/{onboarding-orchestrator-Cc8Glrem.js → onboarding-orchestrator-M3HJvymL.js} +1 -1
  103. package/dist/ui/assets/{openai-codex-BrQ1tsgu.js → openai-codex-BWGWiycb.js} +1 -1
  104. package/dist/ui/assets/{openai-codex-DmHr_2RR.js → openai-codex-NAo35j43.js} +1 -1
  105. package/dist/ui/assets/{openrouter-BvM36eS5.js → openrouter-Bhxgi8JW.js} +1 -1
  106. package/dist/ui/assets/{openrouter-free-CFBzPY5J.js → openrouter-free-DersFAEc.js} +1 -1
  107. package/dist/ui/assets/{openrouter-free-CUKlyrhq.js → openrouter-free-Dl2pScMt.js} +1 -1
  108. package/dist/ui/assets/{openrouter-oauth-DOdpRMfw.js → openrouter-oauth-C3bVnGt2.js} +1 -1
  109. package/dist/ui/assets/{openrouter-oauth-RC0CxY4X.js → openrouter-oauth-DW4_wGaN.js} +1 -1
  110. package/dist/ui/assets/{openrouter-C6WDBJvB.js → openrouter-sloSkMqY.js} +1 -1
  111. package/dist/ui/assets/{opfs-mount-B78yj9gx.js → opfs-mount-FspqzE40.js} +1 -1
  112. package/dist/ui/assets/{page-approval-service-Dy-UA1aK.js → page-approval-service-BkqDCbBQ.js} +1 -1
  113. package/dist/ui/assets/panel-rpc-handlers-CwCdqXzk.js +2 -0
  114. package/dist/ui/assets/{panelize-shell-CFPiIneK.js → panelize-shell-c-tVlGNY.js} +1 -1
  115. package/dist/ui/assets/{pi-edit-execution-BDl_Xp_M.js → pi-edit-execution-Brw1YFDp.js} +1 -1
  116. package/dist/ui/assets/{port-bridge-client-ff8DctEN.js → port-bridge-client-CZFX4fUT.js} +1 -1
  117. package/dist/ui/assets/{port-bridge-client-H03Pohgj.js → port-bridge-client-CkkC3v5w.js} +1 -1
  118. package/dist/ui/assets/{provider-1ByYSphI.js → provider-C7zRpxoe.js} +2 -2
  119. package/dist/ui/assets/{provider-Df8LFEZ7.js → provider-DsHcYBTa.js} +1 -1
  120. package/dist/ui/assets/{provider-settings-Bk-fk9dp.js → provider-settings-BKCma-Jb.js} +1 -1
  121. package/dist/ui/assets/provider-store-access-BfDZO7Ly.js +1 -0
  122. package/dist/ui/assets/provider-store-access-CYticOn7.js +1 -0
  123. package/dist/ui/assets/{providers-T_FH_8cU.js → providers-DDnH2Ikl.js} +1 -1
  124. package/dist/ui/assets/{providers-Q92pCQ8h.js → providers-DEiO6D-5.js} +2 -2
  125. package/dist/ui/assets/{proxied-fetch-DARKNygr.js → proxied-fetch-CPL8wJM2.js} +1 -1
  126. package/dist/ui/assets/{proxied-fetch-Bl8AeYdt.js → proxied-fetch-CnCvBaGV.js} +1 -1
  127. package/dist/ui/assets/{quick-llm-CbGHjrhX.js → quick-llm-tSDpCXxR.js} +1 -1
  128. package/dist/ui/assets/{realm-inprocess-CWMnXeN3.js → realm-inprocess-BKygqrOz.js} +6 -6
  129. package/dist/ui/assets/{recovery-screen-DhUqOdby.js → recovery-screen-D6-sXNj7.js} +1 -1
  130. package/dist/ui/assets/{redirect-uri-Dd0j1fSp.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/{rest-ops-CQOwDiTR.js → rest-ops-Yu_dXm4T.js} +1 -1
  133. package/dist/ui/assets/{rest-ops-DkUeDpiM.js → rest-ops-aP40ni1y.js} +1 -1
  134. package/dist/ui/assets/{restore-CVkulBmU.js → restore-C-ey_KSq.js} +1 -1
  135. package/dist/ui/assets/{run-B-t7kWH3.js → run-BEs473Sp.js} +1 -1
  136. package/dist/ui/assets/{run-COfTem8j.js → run-BSBxWJ5B.js} +1 -1
  137. package/dist/ui/assets/{run-ZmpHaamT.js → run-C3DRjgOJ.js} +2 -2
  138. package/dist/ui/assets/run-C_dx5nR2.js +91 -0
  139. package/dist/ui/assets/{run-IexPmM2B.js → run-CeJrX6mR.js} +2 -2
  140. package/dist/ui/assets/{run-DuW-7oJj.js → run-CfS1uOdY.js} +4 -4
  141. package/dist/ui/assets/{run-BX9uHbIi.js → run-DZtlriWZ.js} +1 -1
  142. package/dist/ui/assets/{run-CUCg2cJM.js → run-TEAp1X-0.js} +2 -2
  143. package/dist/ui/assets/run-ywBpFa_c.js +77 -0
  144. package/dist/ui/assets/{run-DgVV_DFr.js → run-zO91KPbj.js} +3 -3
  145. package/dist/ui/assets/screen-s6LdF1JP.js +1 -0
  146. package/dist/ui/assets/screen-share-approval-live-D388fVD9.js +1 -0
  147. package/dist/ui/assets/screencapture-media-BjmoKpyn.js +1 -0
  148. package/dist/ui/assets/screencapture-media-CM5E2g6c.js +1 -0
  149. package/dist/ui/assets/screencapture-media-shared-DlK1Wqh8.js +1 -0
  150. package/dist/ui/assets/{screencapture-run-yMA5c_HS.js → screencapture-run-zmx5QKf_.js} +2 -2
  151. package/dist/ui/assets/{secret-env-BhWGz7yx.js → secret-env-DgrZZVFU.js} +1 -1
  152. package/dist/ui/assets/secret-topology-BrobAGSV.js +1 -0
  153. package/dist/ui/assets/{secrets-bridge-client-C0tvQeuX.js → secrets-bridge-client-BJqZCK6Q.js} +1 -1
  154. package/dist/ui/assets/{secrets-bridge-client-BS3V1JBF.js → secrets-bridge-client-CeK7HpDf.js} +1 -1
  155. package/dist/ui/assets/{session-command-memory-DzuRy-nC.js → session-command-memory-B0lDqCR9.js} +2 -2
  156. package/dist/ui/assets/{session-jsonl-iOOR_32X.js → session-jsonl-C8ClVNxB.js} +1 -1
  157. package/dist/ui/assets/{session-jsonl-D01HYAS2.js → session-jsonl-DQNfKRsT.js} +1 -1
  158. package/dist/ui/assets/{session-search-index-CABvtt-r.js → session-search-index-BT4ZJZt7.js} +2 -2
  159. package/dist/ui/assets/{setup-feature-flags-remote-CvstKwBW.js → setup-feature-flags-remote-BGRjwc3Y.js} +1 -1
  160. package/dist/ui/assets/{signed-fetch-7NwdVmf1.js → signed-fetch-CNiA3vB6.js} +1 -1
  161. package/dist/ui/assets/{silent-renew-backoff-CXHqSiPb.js → silent-renew-backoff-DrQ0_tES.js} +1 -1
  162. package/dist/ui/assets/slicc-version-nVz--RAg.js +1 -0
  163. package/dist/ui/assets/{snapshot-BcYaw9Ip.js → snapshot-DXOlM8V_.js} +1 -1
  164. package/dist/ui/assets/{snapshot-features-3xslkGtL.js → snapshot-features-D_DeQAxH.js} +1 -1
  165. package/dist/ui/assets/{soundscape-TygolFwj.js → soundscape-CYcg-DKm.js} +1 -1
  166. package/dist/ui/assets/{speak-BCLm04Z2.js → speak-Br_kDtG8.js} +1 -1
  167. package/dist/ui/assets/{sprinkle-manager-DDzNanda.js → sprinkle-manager-DpsA1UkN.js} +1 -1
  168. package/dist/ui/assets/{sprinkle-renderer-B-CADNjq.js → sprinkle-renderer-q0STe7tk.js} +5 -2
  169. package/dist/ui/assets/ssh-CrZ29b93.js +6 -0
  170. package/dist/ui/assets/{state-BCTAzK_L.js → state-edQbuMHp.js} +1 -1
  171. package/dist/ui/assets/{store-C-AW4ogv.js → store-BJb3HsiM.js} +1 -1
  172. package/dist/ui/assets/{store-CzlK9KIc.js → store-BYzp8NI8.js} +1 -1
  173. package/dist/ui/assets/{sudo-BtkDnUA_.js → sudo-DaUFGZ5z.js} +1 -1
  174. package/dist/ui/assets/sudo-fs-C6r_MIIY.js +3 -0
  175. package/dist/ui/assets/{supervisor-B6-QPxI3.js → supervisor-BGSiMwrr.js} +1 -1
  176. package/dist/ui/assets/{sync-dialog-B4G7kCwj.js → sync-dialog-D72P64lv.js} +1 -1
  177. package/dist/ui/assets/tab-CgwpvlHH.js +1 -0
  178. package/dist/ui/assets/tool-ui-DRnUkp2g.js +1 -0
  179. package/dist/ui/assets/{transformers-env-1TbBNkOp.js → transformers-env-BKCNBfWr.js} +1 -1
  180. package/dist/ui/assets/{tray-leader-_KISvFyF.js → tray-leader-DEBMxUkS.js} +1 -1
  181. package/dist/ui/assets/{lick-urls-DdKPDlgq.js → tray-leader-status-CpkFr6n7.js} +1 -1
  182. package/dist/ui/assets/{tray-leave-runtime-CRsRkPHc.js → tray-leave-runtime-D3LaARDy.js} +1 -1
  183. package/dist/ui/assets/{tray-runtime-config-BVgVR3H2.js → tray-runtime-config-dyxCfUex.js} +1 -1
  184. package/dist/ui/assets/{tray-sidecar-BRvCb-i7.js → tray-sidecar-Bfcy9pO0.js} +1 -1
  185. package/dist/ui/assets/turn-journal-CyInnakf.js +1 -0
  186. package/dist/ui/assets/{upgrade-detection-C5daiUbn.js → upgrade-detection-BZooMFxg.js} +1 -1
  187. package/dist/ui/assets/{upskill-lick-skip-C2ZQ0c2-.js → upskill-lick-skip-H5RyeNIq.js} +1 -1
  188. package/dist/ui/assets/url-SK-_tyJs.js +1 -0
  189. package/dist/ui/assets/v86-BinbB-8j.js +1 -0
  190. package/dist/ui/assets/{voice-reply-Dk4ztuZL.js → voice-reply-ClwwZfjh.js} +1 -1
  191. package/dist/ui/assets/{wc-attach-CFj2ZF5_.js → wc-attach-DpNELhNG.js} +2 -2
  192. package/dist/ui/assets/{wc-browser-BFL2Tl8W.js → wc-browser-6X1_NRym.js} +1 -1
  193. package/dist/ui/assets/wc-computers-2bCwocOU.js +3 -0
  194. package/dist/ui/assets/{wc-detached-ncc8KuL1.js → wc-detached-sDWnNsaX.js} +1 -1
  195. package/dist/ui/assets/{wc-extension-DppNe2VK.js → wc-extension-CF_DQHCJ.js} +2 -2
  196. package/dist/ui/assets/{wc-follower-CcxFCW-y.js → wc-follower-BlgNQHR9.js} +3 -3
  197. package/dist/ui/assets/wc-follower-oauth-BBtoYPP3.js +5 -0
  198. package/dist/ui/assets/{wc-gelatiere-CANPh9TU.js → wc-gelatiere-Pgs78krZ.js} +1 -1
  199. package/dist/ui/assets/wc-live-D3BfBbnn.js +427 -0
  200. package/dist/ui/assets/{wc-nav-BlLpBAJG.js → wc-nav-CDV8ylGr.js} +2 -2
  201. package/dist/ui/assets/{wc-onboarding-OKaUOQ3X.js → wc-onboarding-CpKS7u3d.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-BrX9-mPv.js → wc-placeholder-BwY4p0ld.js} +3 -3
  204. package/dist/ui/assets/{wc-secret-request-QPmTs_eW.js → wc-secret-request-HU2msCsY.js} +1 -1
  205. package/dist/ui/assets/{wc-settings-BFgFDtTk.js → wc-settings-OTZDaEtj.js} +3 -3
  206. package/dist/ui/assets/{wc-shell-CCKjmASt.js → wc-shell-M1btJNO6.js} +9 -5
  207. package/dist/ui/assets/{wc-shortcut-config-CeUoljrV.js → wc-shortcut-config-BgTHSt0X.js} +1 -1
  208. package/dist/ui/assets/{wc-sprinkles-BNp18_jW.js → wc-sprinkles-DoKzhGCE.js} +2 -2
  209. package/dist/ui/assets/{wc-transcript-export-DJnnZ8L-.js → wc-transcript-export-CxB6cd8_.js} +2 -2
  210. package/dist/ui/assets/wc-tray-BTgAee3m.js +5 -0
  211. package/dist/ui/assets/welcome-detection-Bvx3sh1_.js +1 -0
  212. package/dist/ui/assets/{whisper-session-CMiImrJg.js → whisper-session-Bjyp9kUa.js} +2 -2
  213. package/dist/ui/assets/{xai-grok-BMr5udF6.js → xai-grok-BSR4EP1b.js} +1 -1
  214. package/dist/ui/assets/{xai-grok-Dzeo18XM.js → xai-grok-Drl4j3ci.js} +1 -1
  215. package/dist/ui/index.html +9 -9
  216. package/dist/ui/lucide-icons.js +261 -247
  217. package/dist/ui/packages/webapp/index.html +9 -9
  218. package/package.json +8 -1
  219. package/dist/ui/assets/SKILL-CWR-bsvH.js +0 -1
  220. package/dist/ui/assets/browser-2rCVqcqy.js +0 -1
  221. package/dist/ui/assets/context-compaction-DRymamfD.js +0 -58
  222. package/dist/ui/assets/core-BoFWHLIW.js +0 -62
  223. package/dist/ui/assets/core-Bvc89tkf.js +0 -36
  224. package/dist/ui/assets/encode-frame-B8GkHc2t.js +0 -1
  225. package/dist/ui/assets/engine-D531XNHE.js +0 -1
  226. package/dist/ui/assets/es-DwGGEZle.js +0 -51
  227. package/dist/ui/assets/gelatiere-unit-DrQwRL3O.js +0 -1
  228. package/dist/ui/assets/icons-BM2l-_K7.js +0 -1
  229. package/dist/ui/assets/idle-compaction-B9i1duyd.js +0 -1
  230. package/dist/ui/assets/kernel-worker-4aPSVJ1C.js +0 -1185
  231. package/dist/ui/assets/keys-Dexx8cLD.js +0 -1
  232. package/dist/ui/assets/lick-ws-bridge-DZ0vVYNF.js +0 -1
  233. package/dist/ui/assets/memory-v2-flag-DVbOtPFF.js +0 -1
  234. package/dist/ui/assets/panel-rpc-handlers-CQ_iaU6N.js +0 -2
  235. package/dist/ui/assets/provider-store-access-BJPbOUku.js +0 -1
  236. package/dist/ui/assets/provider-store-access-BrjCBzpb.js +0 -1
  237. package/dist/ui/assets/run-1aYSFTwj.js +0 -91
  238. package/dist/ui/assets/run-DvD576xV.js +0 -53
  239. package/dist/ui/assets/screencapture-media-DL5YxrlG.js +0 -1
  240. package/dist/ui/assets/screencapture-media-YBE2VnLF.js +0 -1
  241. package/dist/ui/assets/secret-topology-CVneCnID.js +0 -1
  242. package/dist/ui/assets/slicc-version-CN6V2aMa.js +0 -1
  243. package/dist/ui/assets/sudo-fs-D620mZry.js +0 -3
  244. package/dist/ui/assets/tab-ToMhjbM4.js +0 -1
  245. package/dist/ui/assets/v86-BfdTUFBK.js +0 -1
  246. package/dist/ui/assets/wc-computers-CcJuQUyG.js +0 -3
  247. package/dist/ui/assets/wc-follower-oauth-DQ-JPxl6.js +0 -5
  248. package/dist/ui/assets/wc-live-BLozTZsg.js +0 -427
  249. package/dist/ui/assets/wc-tray-f1LxbB98.js +0 -5
  250. package/dist/ui/assets/welcome-detection-Dg9THpkh.js +0 -1
@@ -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,
@@ -92,6 +92,7 @@ function createDefaultFlags() {
92
92
  hosted: false,
93
93
  installCli: false,
94
94
  installDir: null,
95
+ computerDemo: false,
95
96
  mounts: [],
96
97
  };
97
98
  }
@@ -122,6 +123,10 @@ function applySimpleFlag(flags, arg) {
122
123
  flags.installCli = true;
123
124
  return true;
124
125
  }
126
+ if (arg === '--computer-demo') {
127
+ flags.computerDemo = true;
128
+ return true;
129
+ }
125
130
  return false;
126
131
  }
127
132
  /** `--flag=value` style flags that consume no following token. Returns whether handled. */