sliccy 6.232.3 → 6.233.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/README.md +2 -2
  2. package/dist/node-server/chrome-launch.d.ts +2 -0
  3. package/dist/node-server/chrome-launch.js +11 -1
  4. package/dist/node-server/index.js +1 -0
  5. package/dist/ui/.vite/manifest.json +282 -278
  6. package/dist/ui/assets/{SKILL-DfQfFV0B.js → SKILL-BcBnRJhU.js} +1 -1
  7. package/dist/ui/assets/{SKILL-CDWYTQKl.js → SKILL-BsfbaE8W.js} +1 -1
  8. package/dist/ui/assets/SKILL-Dk6kide7.js +1 -0
  9. package/dist/ui/assets/account-store-BGptY10e.js +1 -0
  10. package/dist/ui/assets/account-store-DiRMol3Q.js +2 -0
  11. package/dist/ui/assets/adobe-0-GN_JoC.js +2 -0
  12. package/dist/ui/assets/adobe-C5m6iBnw.js +1 -0
  13. package/dist/ui/assets/agent-help-B-gfDDn0.js +103 -0
  14. package/dist/ui/assets/agent-images-DaBj3QYk.js +3 -0
  15. package/dist/ui/assets/{agent-panels-cs_l6Y3W.js → agent-panels-DSSejQNd.js} +1 -1
  16. package/dist/ui/assets/{agent-tools-BzWhYeEw.js → agent-tools-WbCq5rUh.js} +1 -1
  17. package/dist/ui/assets/{almost-bash-shell-headless-B82NrHyV.js → almost-bash-shell-headless-DokddEN1.js} +91 -175
  18. package/dist/ui/assets/{apply-layout-DHjJQg3o.js → apply-layout-BnGFAeHm.js} +1 -1
  19. package/dist/ui/assets/{apps-CsJCa1W4.js → apps-CyIXX0a_.js} +1 -1
  20. package/dist/ui/assets/{azure-openai-DBSL3940.js → azure-openai-DXS5rPbd.js} +1 -1
  21. package/dist/ui/assets/{azure-openai-0xShokH8.js → azure-openai-PyZ816ly.js} +1 -1
  22. package/dist/ui/assets/{backend-hostfs-DAjlRr0I.js → backend-hostfs-DmMZ1Vnt.js} +1 -1
  23. package/dist/ui/assets/{capability-BsxMoeMg.js → capability-6V-AYPSJ.js} +2 -2
  24. package/dist/ui/assets/{cdp-bOHrUn4t.js → cdp-BppspuSz.js} +1 -1
  25. package/dist/ui/assets/{cerebras-Sczc8yWr.js → cerebras-BeROsc2d.js} +1 -1
  26. package/dist/ui/assets/{cerebras-CJtdoZMJ.js → cerebras-CVnpQN6i.js} +1 -1
  27. package/dist/ui/assets/{client-DWx5wn8j.js → client-D5zdJCVT.js} +1 -1
  28. package/dist/ui/assets/{codemode-tool-BH0jhnKf.js → codemode-tool-FcP24sWd.js} +1 -1
  29. package/dist/ui/assets/{composer-speech-Dt5JE2sh.js → composer-speech-HZyA7vHh.js} +1 -1
  30. package/dist/ui/assets/{connect-surface-BO_rHeDZ.js → connect-surface-is2QooP6.js} +1 -1
  31. package/dist/ui/assets/{connection-manager-E3P4E4Le.js → connection-manager-D0LxHiWb.js} +1 -1
  32. package/dist/ui/assets/core-C1m4D34S.js +36 -0
  33. package/dist/ui/assets/{core-4boN-CgI.js → core-Cx9N3lmn.js} +1 -1
  34. package/dist/ui/assets/{cost-command-C_1fldSP.js → cost-command-BUgEVZCe.js} +8 -1
  35. package/dist/ui/assets/{directed-approval-Dig9vgFX.js → directed-approval-BL1_1yFr.js} +1 -1
  36. package/dist/ui/assets/{discovery-preference-D1cUzn0M.js → discovery-preference-D8GXCv8i.js} +1 -1
  37. package/dist/ui/assets/emscripten-vfs-hook-D1Wo4S_o.js +1 -0
  38. package/dist/ui/assets/{emscripten-vfs-hook-BJh0QvlC.js → emscripten-vfs-hook-D4rVkB6b.js} +1 -1
  39. package/dist/ui/assets/{ensure-speech-assets-BQperrcM.js → ensure-speech-assets-CB-6d53s.js} +1 -1
  40. package/dist/ui/assets/{extension-ops-Ded2__AC.js → extension-ops-OtrqWANJ.js} +1 -1
  41. package/dist/ui/assets/{float-topology-DIH6ujZe.js → float-topology-COIC4j_U.js} +1 -1
  42. package/dist/ui/assets/{float-topology-C9GjBEv-.js → float-topology-C_iRKPQK.js} +1 -1
  43. package/dist/ui/assets/{follower-navigate-watcher-T4oXQ4JA.js → follower-navigate-watcher-C0CP4-Mn.js} +1 -1
  44. package/dist/ui/assets/{frozen-archive-writer-DHfEFu3h.js → frozen-archive-writer-BAghzZbz.js} +1 -1
  45. package/dist/ui/assets/{fs-cmFfSwcb.js → fs-BUK-3Ws8.js} +2 -2
  46. package/dist/ui/assets/{fs-B7XQ_lrb.js → fs-CKSBDyCr.js} +1 -1
  47. package/dist/ui/assets/{gelatiere-unit-BQsQGJpu.js → gelatiere-unit-C4o5SngU.js} +1 -1
  48. package/dist/ui/assets/{github-Di3NkZKj.js → github-B4luVkMa.js} +2 -2
  49. package/dist/ui/assets/{github-a773Oj_3.js → github-BMfosoS8.js} +1 -1
  50. package/dist/ui/assets/{github-auth-ByvUzIEk.js → github-auth-CSG4xZUZ.js} +1 -1
  51. package/dist/ui/assets/{github-copilot-DhPt4wWn.js → github-copilot-BiPH9OJc.js} +1 -1
  52. package/dist/ui/assets/{github-copilot-BoeL-U7E.js → github-copilot-C6LhWXPC.js} +1 -1
  53. package/dist/ui/assets/{github-install-BNLZv80o.js → github-install-HX3c8n0G.js} +1 -1
  54. package/dist/ui/assets/{github-zip-CoNuW2sf.js → github-zip-CUIsX5nN.js} +1 -1
  55. package/dist/ui/assets/{go-driver-2ebSfg2I.js → go-driver-DTOA90JI.js} +1 -1
  56. package/dist/ui/assets/{guest-tool-gate-B3vJ2BGb.js → guest-tool-gate-CXdRgkkb.js} +1 -1
  57. package/dist/ui/assets/{hear-Cfl4YI74.js → hear-BU1G_yVs.js} +1 -1
  58. package/dist/ui/assets/{help-BMAczBRn.js → help-aKSKYJF6.js} +1 -1
  59. package/dist/ui/assets/host-command-CwRNpVLr.js +28 -0
  60. package/dist/ui/assets/image-processor-BlI3KRoz.js +1 -0
  61. package/dist/ui/assets/{installer-xdxoxN0e.js → installer-CbjJjnwg.js} +1 -1
  62. package/dist/ui/assets/{interrupted-work-recovery-6m6BONfO.js → interrupted-work-recovery-DSX617ic.js} +1 -1
  63. package/dist/ui/assets/{ipk-mamba-uom-JjRn.js → ipk-mamba-BRxsK-p_.js} +1 -1
  64. package/dist/ui/assets/{js-realm-worker-CD271tMz.js → js-realm-worker-BYIiw840.js} +3 -3
  65. package/dist/ui/assets/{jsh-executor-DBwez91k.js → jsh-executor-f9UQQAJH.js} +2 -2
  66. package/dist/ui/assets/jsh-runtime-extensions-vA6JAYXY.js +1 -0
  67. package/dist/ui/assets/{kernel-worker-DOWZJuXM.js → kernel-worker-9lMint5X.js} +59 -59
  68. package/dist/ui/assets/{lick-ws-bridge-4IBz0Msz.js → lick-ws-bridge-Da6ciGE3.js} +1 -1
  69. package/dist/ui/assets/{lick-ws-bridge-DQyoaYVX.js → lick-ws-bridge-HjQu1maH.js} +1 -1
  70. package/dist/ui/assets/{live-session-curation-ix1TPxM_.js → live-session-curation-CTwh1ml7.js} +1 -1
  71. package/dist/ui/assets/{live-session-snapshot-DnyhcCE6.js → live-session-snapshot-M1JFgsYL.js} +1 -1
  72. package/dist/ui/assets/live-vfs-fs-DgvdNXkS.js +1 -0
  73. package/dist/ui/assets/{local-llm-Q3t4kvLW.js → local-llm-B5MTvDcM.js} +1 -1
  74. package/dist/ui/assets/{local-llm-D5Ox2xst.js → local-llm-ByQE3h0R.js} +1 -1
  75. package/dist/ui/assets/main-Bu5EcQ93.js +22 -0
  76. package/dist/ui/assets/{main-cherry-e40IJV67.js → main-cherry-J5K4fq0A.js} +1 -1
  77. package/dist/ui/assets/{mcp-command-Bz_9ImDN.js → mcp-command-Cr-uabpd.js} +13 -13
  78. package/dist/ui/assets/{memory-curation-seam-80E0snGz.js → memory-curation-seam-D8IdKYZq.js} +1 -1
  79. package/dist/ui/assets/{memory-health-X7Z2HJgc.js → memory-health-CpYOFVO8.js} +1 -1
  80. package/dist/ui/assets/{memory-write-execute-CYpqPN9a.js → memory-write-execute-h9V1nD_3.js} +1 -1
  81. package/dist/ui/assets/{merge-folded-cost-into-frozen-DDVN7W9t.js → merge-folded-cost-into-frozen-DGSytgu9.js} +1 -1
  82. package/dist/ui/assets/{mount-CxIbhZc_.js → mount-BdStwj8s.js} +2 -3
  83. package/dist/ui/assets/{mount-Cdhbsamk.js → mount-DROut-7D.js} +1 -1
  84. package/dist/ui/assets/{mount-bridge-client-DEndUe7m.js → mount-bridge-client-DEvjkZ1N.js} +1 -1
  85. package/dist/ui/assets/{mount-bridge-client-DZrU_hNA.js → mount-bridge-client-DTSknauQ.js} +1 -1
  86. package/dist/ui/assets/new-session-BQRH4q6V.js +2 -0
  87. package/dist/ui/assets/oauth-bootstrap-BWTJ-MnR.js +2 -0
  88. package/dist/ui/assets/oauth-service-GpUOM3Aw.js +1 -0
  89. package/dist/ui/assets/oauth-service-MWzqRq2q.js +1 -0
  90. package/dist/ui/assets/{onboarding-orchestrator-BLrUNStK.js → onboarding-orchestrator-DJBNgmTb.js} +1 -1
  91. package/dist/ui/assets/{openai-codex-CePEMrS9.js → openai-codex-8SwwSHXG.js} +1 -1
  92. package/dist/ui/assets/{openai-codex-DEnFvLaq.js → openai-codex-CM1P6Cz7.js} +1 -1
  93. package/dist/ui/assets/{openrouter-C6Drz4Po.js → openrouter-C1-T42sa.js} +1 -1
  94. package/dist/ui/assets/{openrouter-CMbDityB.js → openrouter-CtJep7AD.js} +1 -1
  95. package/dist/ui/assets/{openrouter-free-DPrVNMiX.js → openrouter-free-D5_NwI3F.js} +1 -1
  96. package/dist/ui/assets/{openrouter-free-jZRQi4fS.js → openrouter-free-Dn1SR1my.js} +1 -1
  97. package/dist/ui/assets/{openrouter-oauth-DXfymZ6D.js → openrouter-oauth-BBFeemXH.js} +1 -1
  98. package/dist/ui/assets/{openrouter-oauth-BSKVr_20.js → openrouter-oauth-BP-y86gf.js} +1 -1
  99. package/dist/ui/assets/{opfs-mount-WSgDUNOX.js → opfs-mount-B745o1Vc.js} +1 -1
  100. package/dist/ui/assets/{page-approval-service-BbEv1dSc.js → page-approval-service-ja6kjLj8.js} +1 -1
  101. package/dist/ui/assets/panel-rpc-CR9k3qWE.js +1 -0
  102. package/dist/ui/assets/panel-rpc-accessor-B4BfPLSo.js +1 -0
  103. package/dist/ui/assets/panel-rpc-handlers-xhUd9DiV.js +2 -0
  104. package/dist/ui/assets/panel-rpc-sLZo8PD-.js +1 -0
  105. package/dist/ui/assets/{panelize-shell-C3g06QW7.js → panelize-shell-Bq22FVKD.js} +1 -1
  106. package/dist/ui/assets/{pi-edit-execution-DckrFCfi.js → pi-edit-execution-gtCS0kee.js} +1 -1
  107. package/dist/ui/assets/port-bridge-client-B-gpiOVR.js +1 -0
  108. package/dist/ui/assets/port-bridge-client-DAxhsvxm.js +1 -0
  109. package/dist/ui/assets/process-worker-v_IRtyyq.js +3 -0
  110. package/dist/ui/assets/{provider-BIKN9l0j.js → provider-DckNx7km.js} +2 -2
  111. package/dist/ui/assets/{provider-BDvld8wH.js → provider-ToQ_7wAn.js} +1 -1
  112. package/dist/ui/assets/{provider-settings-7gXmbpeE.js → provider-settings-D8mMRRmg.js} +1 -1
  113. package/dist/ui/assets/provider-store-access-CUeWZULe.js +1 -0
  114. package/dist/ui/assets/provider-store-access-DCRy_R8r.js +1 -0
  115. package/dist/ui/assets/providers-BAKMBUX7.js +2 -0
  116. package/dist/ui/assets/{providers-BSPfSjHX.js → providers-CvqwjkUB.js} +1 -1
  117. package/dist/ui/assets/{proxied-fetch-Cplb-Tee.js → proxied-fetch-4VBgrEIu.js} +2 -2
  118. package/dist/ui/assets/{proxied-fetch-CoZ8jHud.js → proxied-fetch-F-dCBEfh.js} +1 -1
  119. package/dist/ui/assets/proxied-fetch-raw-DQ0-xn2O.js +2 -0
  120. package/dist/ui/assets/{proxied-fetch-raw-Cb_C44Cy.js → proxied-fetch-raw-DfWAMMUJ.js} +1 -1
  121. package/dist/ui/assets/{py-live-vfs-BY0JeFky.js → py-live-vfs-CPGqrKx-.js} +1 -1
  122. package/dist/ui/assets/{py-live-vfs-JNkDkEB1.js → py-live-vfs-CUwZTYN6.js} +1 -1
  123. package/dist/ui/assets/{py-realm-worker-DpNkD8fW.js → py-realm-worker-BoJbWJja.js} +1 -1
  124. package/dist/ui/assets/{quick-llm-B8_chMUu.js → quick-llm-DTjkRv5O.js} +1 -1
  125. package/dist/ui/assets/{realm-inprocess-DGI1SPvf.js → realm-inprocess-BuDDW7XG.js} +3 -3
  126. package/dist/ui/assets/{realm-unhandled-rejections-CeQ49yI4.js → realm-unhandled-rejections-BFldJQ3o.js} +1 -1
  127. package/dist/ui/assets/{realm-unhandled-rejections-UooDX3DO.js → realm-unhandled-rejections-D9cNYqKO.js} +1 -1
  128. package/dist/ui/assets/{recovery-screen-DkW3-R4h.js → recovery-screen-DM7KfT4C.js} +1 -1
  129. package/dist/ui/assets/{remote-terminal-view-D5iSX82V.js → remote-terminal-view-BKdENaQD.js} +2 -2
  130. package/dist/ui/assets/{require-guards-BX-XDJnh.js → require-guards-DnafTLJr.js} +1 -1
  131. package/dist/ui/assets/{rest-ops-d6LSiWDZ.js → rest-ops-B7gv04VP.js} +1 -1
  132. package/dist/ui/assets/{rest-ops-DyAkn44S.js → rest-ops-j0P6ql7f.js} +1 -1
  133. package/dist/ui/assets/{restore-Cz3KzZZ7.js → restore-DkI2mzPD.js} +1 -1
  134. package/dist/ui/assets/{run-DKc_-F3f.js → run-2dqnHZde.js} +1 -1
  135. package/dist/ui/assets/{run-CB6rAQZ1.js → run-BAmXlRlW.js} +1 -1
  136. package/dist/ui/assets/{run-cvQKad0O.js → run-BRFnmkzR.js} +1 -1
  137. package/dist/ui/assets/{run-D6sdPJoQ.js → run-BYyvGPll.js} +4 -4
  138. package/dist/ui/assets/{run-Cl3auc8D.js → run-CUYkRfoU.js} +2 -2
  139. package/dist/ui/assets/{run-BvTkhul6.js → run-D6LxdCnL.js} +1 -1
  140. package/dist/ui/assets/{run-COcBu8_4.js → run-DH5HX1KA.js} +1 -1
  141. package/dist/ui/assets/run-DP50TUcp.js +18 -0
  142. package/dist/ui/assets/{run-DyYNRU6R.js → run-DPyr8Wk2.js} +1 -1
  143. package/dist/ui/assets/{run-ijndQJol.js → run-DZZd9Xb1.js} +3 -3
  144. package/dist/ui/assets/{run-B6qzuQBC.js → run-chEfqfQu.js} +1 -1
  145. package/dist/ui/assets/{screen-DVI9ujIL.js → screen-_l91vr17.js} +1 -1
  146. package/dist/ui/assets/{screencapture-run-DRiSGUJ9.js → screencapture-run-DXkhPPQJ.js} +1 -1
  147. package/dist/ui/assets/{script-catalog-CqkljCRS.js → script-catalog-WaCMvXY3.js} +1 -1
  148. package/dist/ui/assets/{secret-env-DQjPh_hw.js → secret-env-z9SReONx.js} +1 -1
  149. package/dist/ui/assets/secret-topology-hMRoGGjt.js +1 -0
  150. package/dist/ui/assets/{secrets-bridge-client-CWv2_nw7.js → secrets-bridge-client-D734Xx8G.js} +1 -1
  151. package/dist/ui/assets/{secrets-bridge-client-EgBSROu5.js → secrets-bridge-client-GOCzDscb.js} +1 -1
  152. package/dist/ui/assets/{session-command-memory-Dqd2Y1nf.js → session-command-memory-D4uJebvK.js} +2 -2
  153. package/dist/ui/assets/{session-jsonl-D0vuq6c1.js → session-jsonl-CYHALwzZ.js} +1 -1
  154. package/dist/ui/assets/{session-jsonl-BFDqAk2L.js → session-jsonl-DJeZaEAN.js} +1 -1
  155. package/dist/ui/assets/{session-search-index-CJRorVYP.js → session-search-index-C9BSuBgf.js} +1 -1
  156. package/dist/ui/assets/{setup-feature-flags-remote-CWxbzwGB.js → setup-feature-flags-remote-B28utkza.js} +1 -1
  157. package/dist/ui/assets/{setup-model-catalog-CPpt1RYm.js → setup-model-catalog-D0KPq5D5.js} +1 -1
  158. package/dist/ui/assets/signed-fetch-DeDG40wV.js +1 -0
  159. package/dist/ui/assets/{silent-renew-backoff-D19EWo5j.js → silent-renew-backoff-CQhFgetu.js} +1 -1
  160. package/dist/ui/assets/slicc-version-CrbHwbo8.js +1 -0
  161. package/dist/ui/assets/snapshot-D6YGbggk.js +5 -0
  162. package/dist/ui/assets/{snapshot-features-HNBCRjfP.js → snapshot-features-Dw5v6SoZ.js} +1 -1
  163. package/dist/ui/assets/{soundscape-mtqG6Pmf.js → soundscape-CTffv_5Z.js} +1 -1
  164. package/dist/ui/assets/{speak-BOCxjk3p.js → speak-jCD0mSEW.js} +1 -1
  165. package/dist/ui/assets/sprinkle-manager-Y-YVEibf.js +1 -0
  166. package/dist/ui/assets/{sprinkle-renderer-DKK-prCv.js → sprinkle-renderer-CwX9FsqP.js} +1 -1
  167. package/dist/ui/assets/{ssh-_x-LG4bh.js → ssh-BWPgnSgg.js} +1 -1
  168. package/dist/ui/assets/state-Tykh4Vum.js +42 -0
  169. package/dist/ui/assets/{store-DL87lgMq.js → store-Mw1jky9b.js} +1 -1
  170. package/dist/ui/assets/{store-CVYChuZI.js → store-wiEGJ_43.js} +1 -1
  171. package/dist/ui/assets/stored-accounts-ChNHYF68.js +1 -0
  172. package/dist/ui/assets/stored-accounts-Cx83FZwe.js +1 -0
  173. package/dist/ui/assets/structured-output-tool-BrnZ-LJ8.js +1 -0
  174. package/dist/ui/assets/{sudo-C14r7p-e.js → sudo-C_rw_yTP.js} +3 -3
  175. package/dist/ui/assets/{sudo-fs-mI-V4QkM.js → sudo-fs-D88yRk1b.js} +1 -1
  176. package/dist/ui/assets/sudo-refusal-DVwTXFRE.js +1 -0
  177. package/dist/ui/assets/{supervisor-CRki_wn9.js → supervisor-DpgpPBmC.js} +1 -1
  178. package/dist/ui/assets/{sync-dialog-BMLUDjd4.js → sync-dialog-CupzPdES.js} +1 -1
  179. package/dist/ui/assets/{transformers-env-C0z5rcqN.js → transformers-env-YtNL0QDY.js} +1 -1
  180. package/dist/ui/assets/{tray-leader-BdvK7KWc.js → tray-leader-DXDclF_5.js} +1 -1
  181. package/dist/ui/assets/{tray-leave-runtime-Chumo3x-.js → tray-leave-runtime-VOHZS65W.js} +1 -1
  182. package/dist/ui/assets/{tray-runtime-config-ConrTcOf.js → tray-runtime-config-CBx5P3dS.js} +1 -1
  183. package/dist/ui/assets/{tray-sidecar-gXArrwO5.js → tray-sidecar-96t7GtIU.js} +1 -1
  184. package/dist/ui/assets/{turn-journal-Fz2l3QO4.js → turn-journal-EgGBqAjY.js} +1 -1
  185. package/dist/ui/assets/{upgrade-detection-Bl00km0Z.js → upgrade-detection-A_vnZ-VL.js} +1 -1
  186. package/dist/ui/assets/{upskill-lick-skip-DTxpkXaG.js → upskill-lick-skip-u8HuNUy0.js} +1 -1
  187. package/dist/ui/assets/{voice-reply-LXLV67Nm.js → voice-reply-BlnWgLQN.js} +1 -1
  188. package/dist/ui/assets/{wasi-runtime-Bc01Bdaa.js → wasi-runtime-Wx_rcXbK.js} +2 -2
  189. package/dist/ui/assets/{wasm-programs-DPZtEzCA.js → wasm-programs-Bd5YaoqY.js} +1 -1
  190. package/dist/ui/assets/wc-attach-BD99mw1C.js +13 -0
  191. package/dist/ui/assets/{wc-browser-C3BrDOs9.js → wc-browser-ibm_kzUA.js} +1 -1
  192. package/dist/ui/assets/{wc-computers-5ZseiRnv.js → wc-computers-KrtriEYD.js} +1 -1
  193. package/dist/ui/assets/{wc-detached-DK9sSKZr.js → wc-detached-DW6GEnzV.js} +1 -1
  194. package/dist/ui/assets/wc-extension-dbdfxaHn.js +2 -0
  195. package/dist/ui/assets/wc-follower-CY0Omxnm.js +17 -0
  196. package/dist/ui/assets/{wc-follower-oauth-g_NJ62P_.js → wc-follower-oauth-obhVV1ID.js} +1 -1
  197. package/dist/ui/assets/{wc-gelatiere-C_kV3iUh.js → wc-gelatiere-BlK8fV98.js} +1 -1
  198. package/dist/ui/assets/{wc-live-CN_PjeIo.js → wc-live-WP25Nrx4.js} +6 -6
  199. package/dist/ui/assets/wc-nav-BA8Cj8Lu.js +2 -0
  200. package/dist/ui/assets/{wc-onboarding-BJrwUBcv.js → wc-onboarding-g_I2jf5C.js} +2 -2
  201. package/dist/ui/assets/{wc-permissions-D-mQCivR.js → wc-permissions-C_Q050u-.js} +2 -2
  202. package/dist/ui/assets/wc-placeholder-DaIZj3ba.js +4 -0
  203. package/dist/ui/assets/{wc-secret-request-BJXcNpDs.js → wc-secret-request-lw7JW61R.js} +1 -1
  204. package/dist/ui/assets/{wc-settings-DOYvmcRg.js → wc-settings-g5B5-OSw.js} +3 -3
  205. package/dist/ui/assets/{wc-shell-B6woD-e6.js → wc-shell-DrGgyuS_.js} +5 -5
  206. package/dist/ui/assets/{wc-shortcut-config-BUM7oKUu.js → wc-shortcut-config-C3GIv71k.js} +1 -1
  207. package/dist/ui/assets/wc-sprinkles-Dh8yXR2X.js +2 -0
  208. package/dist/ui/assets/{wc-transcript-export-RedJl591.js → wc-transcript-export-Dw-bOyW2.js} +2 -2
  209. package/dist/ui/assets/{wc-tray-BxsYHBdR.js → wc-tray-DJNwevYd.js} +4 -4
  210. package/dist/ui/assets/welcome-detection-CU3MtuFw.js +1 -0
  211. package/dist/ui/assets/whisper-session-Bkc60xQi.js +2 -0
  212. package/dist/ui/assets/{xai-grok-CAnhMyf-.js → xai-grok-BvqSa-5b.js} +1 -1
  213. package/dist/ui/assets/{xai-grok-Ch54hmZJ.js → xai-grok-DFQUduEg.js} +1 -1
  214. package/dist/ui/index.html +11 -10
  215. package/dist/ui/packages/webapp/index.html +11 -10
  216. package/package.json +1 -1
  217. package/dist/ui/assets/SKILL-B4YYagrM.js +0 -1
  218. package/dist/ui/assets/account-store-CfWRzPpT.js +0 -2
  219. package/dist/ui/assets/account-store-bUzcsJR2.js +0 -1
  220. package/dist/ui/assets/adobe-CugR6QpI.js +0 -2
  221. package/dist/ui/assets/adobe-ytXYifQq.js +0 -1
  222. package/dist/ui/assets/approval-timeout-CeQbGMnv.js +0 -1
  223. package/dist/ui/assets/core-ButDwsf2.js +0 -36
  224. package/dist/ui/assets/emscripten-vfs-hook-c6XYWLDN.js +0 -1
  225. package/dist/ui/assets/host-command-Dn-Z4AbC.js +0 -28
  226. package/dist/ui/assets/jsh-runtime-extensions-DiQ9SvKe.js +0 -1
  227. package/dist/ui/assets/live-vfs-fs-Y4sN9OvN.js +0 -1
  228. package/dist/ui/assets/main-D9hbfd93.js +0 -22
  229. package/dist/ui/assets/new-session-CKsA3Osa.js +0 -2
  230. package/dist/ui/assets/oauth-bootstrap-B7RkQZg-.js +0 -2
  231. package/dist/ui/assets/oauth-service-B-vKfxAF.js +0 -1
  232. package/dist/ui/assets/oauth-service-Bx_Dy3GC.js +0 -1
  233. package/dist/ui/assets/panel-rpc-D3EPRnmw.js +0 -1
  234. package/dist/ui/assets/panel-rpc-DW7W4w6_.js +0 -1
  235. package/dist/ui/assets/panel-rpc-handlers-D8o2EggL.js +0 -2
  236. package/dist/ui/assets/port-bridge-client-BmVU5J9w.js +0 -1
  237. package/dist/ui/assets/port-bridge-client-D_erEovW.js +0 -2
  238. package/dist/ui/assets/process-worker-BKgTk6Wd.js +0 -3
  239. package/dist/ui/assets/provider-store-access-B3yjrPLi.js +0 -1
  240. package/dist/ui/assets/provider-store-access-Bq7yMlLd.js +0 -1
  241. package/dist/ui/assets/providers-Qqp-ZEtv.js +0 -2
  242. package/dist/ui/assets/proxied-fetch-raw-Di1Dm8fV.js +0 -2
  243. package/dist/ui/assets/run-Cu1hr00X.js +0 -18
  244. package/dist/ui/assets/secret-topology-Dm_PZRZx.js +0 -1
  245. package/dist/ui/assets/signed-fetch-AA2u7LJq.js +0 -1
  246. package/dist/ui/assets/slicc-version-BjIQb9Hz.js +0 -1
  247. package/dist/ui/assets/snapshot-DLO8RkOr.js +0 -5
  248. package/dist/ui/assets/sprinkle-manager-UKlMkzSm.js +0 -1
  249. package/dist/ui/assets/state-B892uW3H.js +0 -42
  250. package/dist/ui/assets/structured-output-tool-BDaIhclx.js +0 -1
  251. package/dist/ui/assets/wc-attach-ChUPT4oB.js +0 -13
  252. package/dist/ui/assets/wc-extension-BC5R5cd7.js +0 -2
  253. package/dist/ui/assets/wc-follower-Dn9JVmb_.js +0 -17
  254. package/dist/ui/assets/wc-nav-DqpOaNr_.js +0 -2
  255. package/dist/ui/assets/wc-placeholder-D2NGiBVr.js +0 -4
  256. package/dist/ui/assets/wc-sprinkles-Q2JU6sSY.js +0 -2
  257. package/dist/ui/assets/welcome-detection-CrnFBTZe.js +0 -1
  258. package/dist/ui/assets/whisper-session-BaYhywEf.js +0 -2
@@ -1 +0,0 @@
1
- import{t as e}from"./logger-DDBAeTLF.js";import{a as t}from"./feature-flags-DvsApnS-.js";import{r as n,t as r}from"./sprinkle-renderer-DKK-prCv.js";import{s as i}from"./telemetry-B0sKnLBU.js";import{n as a,t as o}from"./panel-rpc-D3EPRnmw.js";import{t as s}from"./permissions-surface-registry-CilCRwhh.js";import{n as c,t as l}from"./bounded-walk-BjxKWNqp.js";import"./sprinkle-instances-B8n7h-oP.js";var u=[`/workspace`,`/shared`,`/scoops`,`/home`],d=[`/shared/sprinkles`],f=6,p=500,m=new Set([`connect-llm`,`welcome`]);function h(e){return m.has(e)?!0:e===`suggestions`&&!t(`memory-v2`)}async function g(e){let t=new Map;for(let n of[...d,...u])await e.exists(n)&&await _(e,n,t);return t}async function _(e,t,n){let r=c(e,t,{maxDepth:f,maxDirs:p,skip:l});for await(let t of r){if(!t.endsWith(`.shtml`))continue;let r=v(t);if(!h(r)&&!n.has(r)){let i;try{i=await e.readFile(t,{encoding:`utf-8`})??``}catch{i=``}n.set(r,{name:r,path:t,title:y(i,r),autoOpen:b(i),icon:x(i)})}}}function v(e){let t=e.split(`/`).pop()??e;return t.endsWith(`.shtml`)?t.slice(0,-6):t}function y(e,t){let n=e.match(/data-sprinkle-title=["']([^"']+)["']/);if(n)return n[1];let r=e.match(/<title>([^<]+)<\/title>/i);return r?r[1].trim():t}function b(e){return/data-sprinkle-autoopen\b/.test(e)}function x(e){let t=/<link\b/gi,n;for(;(n=t.exec(e))!==null;){let t=n.index+n[0].length,r=S(e,t);if(r<0)continue;let i=e.slice(t,r);if(!/\brel\s*=\s*("|')\s*(?:shortcut\s+)?icon\s*\1/i.test(i))continue;let a=C(i,`href`);if(a!==void 0)return a.trim()}let r=C(e,`data-sprinkle-icon`);if(r!==void 0)return r.trim()}function S(e,t){let n=!1,r=!1;for(let i=t;i<e.length;i++){let t=e.charCodeAt(i);if(n)t===34&&(n=!1);else if(r)t===39&&(r=!1);else if(t===34)n=!0;else if(t===39)r=!0;else if(t===62)return i}return-1}function C(e,t){let n=RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)')`,`i`),r=e.match(n);if(r)return r[1]??r[2]??void 0}var w=e(`sprinkle-manager`);async function T(){let e=s();if(e){let t=await e.prompt({kinds:[`screenshare`],description:`A sprinkle asks to share a screen.`,requestOptions:{screenshare:{constraints:{video:!0,audio:!1}}}}),n=t.status===`granted`?t.grants.find(e=>e.kind===`screenshare`):void 0;if(!n){let e=t.message?`: ${t.message}`:``,n=t.reason??t.status;throw Error(n===`cancelled`||t.status===`cancelled`?`Screen capture cancelled`:`Screen capture ${n}${e}`)}return n.stream}if(!navigator.mediaDevices?.getDisplayMedia)throw Error(`Screen capture not supported in this browser`);return navigator.mediaDevices.getDisplayMedia({video:!0,audio:!1})}var E=`slicc-open-sprinkles`,D=`sprinkles`;function O(){try{if(typeof window>`u`||!window.location)return null;let e=new URLSearchParams(window.location.search).get(D);return e===null?null:e===``?[]:e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0)}catch{return null}}function k(e){try{if(typeof window>`u`||!window.location||typeof history>`u`||typeof history.replaceState!=`function`)return;let t=new URL(window.location.href);e.length===0?t.searchParams.delete(D):t.searchParams.set(D,e.join(`,`));let n=t.pathname+t.search+t.hash;history.replaceState(history.state??null,``,n)}catch{}}var A=`slicc-known-sprinkles`;function j(e){try{let t=new Set(e),n=M().filter(e=>t.has(e));localStorage.setItem(A,JSON.stringify(n))}catch{}}function M(){try{let e=localStorage.getItem(A);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]}catch{return[]}}var N=`slicc-autoopened-once`,P=u,F=250,I=class{fs;bridge;callbacks;availableSprinkles=new Map;watcherUnsub;openSprinkles=new Map;attentionOnly=new Set;rendererOperationTails=new Map;inflightRefresh=null;lastRefreshAt=0;autoOpenBehavior;onSendToSprinkle;onSprinkleReloaded;resolveLickOriginUnitId;registeredSprinkles=new Set;inlineSprinkles;changeListeners=new Set;changeNotifyScheduled=!1;urlWriteScheduled=!1;constructor(e,t,r,i,s={}){this.fs=e;let c=async()=>{let e=`image/png`,t=a(),n=o();if(!t&&!n)throw Error(`Screen capture unavailable in this environment`);let r,i,s;if(t){let t=await T();try{let n=document.createElement(`video`);n.srcObject=t,n.muted=!0,n.playsInline=!0,await new Promise((e,t)=>{n.onloadedmetadata=()=>n.play().then(()=>e()).catch(t),n.onerror=()=>t(Error(`Failed to load video stream`))}),await new Promise(e=>setTimeout(e,100)),i=n.videoWidth,s=n.videoHeight;let a=document.createElement(`canvas`);a.width=i,a.height=s;let o=a.getContext(`2d`);if(!o)throw Error(`Failed to get canvas context`);o.drawImage(n,0,0,i,s),r=await(await new Promise((t,n)=>{a.toBlob(e=>e?t(e):n(Error(`Failed to create image blob`)),e,1)})).arrayBuffer()}finally{for(let e of t.getTracks())e.stop()}}else{let t=await n.call(`screencapture`,{mimeType:e,quality:1},{timeoutMs:3e5});r=t.bytes,i=t.width,s=t.height}let c=new Uint8Array(r),l=[],u=8192;for(let e=0;e<c.length;e+=u)l.push(String.fromCharCode(...c.subarray(e,e+u)));return{base64:btoa(l.join(``)),width:i,height:s,mimeType:e}};this.bridge=new n(e,t,e=>this.close(e),e=>this.minimize(e),i,s.onAttachImage??(()=>{}),c,s.execHandler,(e,t,n)=>{this.openSprinkles.get(e)?.renderer.pushDeviceEvent(t,n)},s.selectScoopHandler,s.selectedScoopHandler),this.callbacks=r,this.autoOpenBehavior=s.autoOpenBehavior??`activate`,this.onSendToSprinkle=s.onSendToSprinkle,this.onSprinkleReloaded=s.onSprinkleReloaded,this.resolveLickOriginUnitId=s.resolveLickOriginUnitId,this.inlineSprinkles=s.inlineSprinkles??new Set}setSendToSprinkleHook(e){this.onSendToSprinkle&&!e&&w.error(`SprinkleManager broadcast hook detached`),this.onSendToSprinkle=e}setReloadHook(e){this.onSprinkleReloaded=e}enqueueRendererOperation(e,t){let n=(this.rendererOperationTails.get(e)??Promise.resolve()).then(t,t);return this.rendererOperationTails.set(e,n),n.finally(()=>{this.rendererOperationTails.get(e)===n&&this.rendererOperationTails.delete(e)})}reload(e){return this.enqueueRendererOperation(e,()=>this.reloadNow(e))}async reloadNow(e){let t=this.openSprinkles.get(e);if(!t){w.info(`Cannot reload closed sprinkle`,{name:e});return}let n=this.availableSprinkles.get(e);if(n||=(await this.refresh(),this.availableSprinkles.get(e)),!n){w.warn(`Sprinkle not found during reload`,{name:e});return}let i=await this.fs.readFile(n.path,{encoding:`utf-8`});if(i==null){w.warn(`Failed to read sprinkle content during reload`,{name:e});return}let a=typeof i==`string`?i:new TextDecoder(`utf-8`).decode(i);t.renderer?.dispose(),this.bridge.removeSprinkle(e);let o=this.bridge.createAPI(e,()=>t.lickOriginUnitId),s=new r(t.container,o);if(await s.render(a,e),!this.openSprinkles.has(e)){s.dispose();return}if(t.renderer=s,s.activateBridgeLifecycle(),this.openSprinkles.has(e)&&(w.info(`Sprinkle reloaded`,{name:e}),this.notifyChange(),this.onSprinkleReloaded))try{this.onSprinkleReloaded(e)}catch(t){w.error(`onSprinkleReloaded hook threw`,{name:e,error:t instanceof Error?t.message:String(t)})}}async restoreOpenSprinkles(){try{let e=O();if(e!==null){await this.reopenInBackground(e);return}let t=localStorage.getItem(E);t?await this.restoreFromLegacyStorage(t):await this.autoOpenFirstRun()}catch{}await this.surfaceUnseenSprinkles()}async reopenInBackground(e){for(let t of e)try{await this.open(t,void 0,{background:!0})}catch{w.warn(`Failed to restore sprinkle`,{name:t})}}async restoreFromLegacyStorage(e){try{await this.reopenInBackground(JSON.parse(e))}finally{try{localStorage.removeItem(E)}catch{}}}async autoOpenFirstRun(){let e=this.autoOpenBehavior===`attention`,t=this.loadAutoOpenedOnce(),n=new Set;for(let r of this.availableSprinkles.values())if(!(!r.autoOpen||t.has(r.name)))try{await this.open(r.name,void 0,{attention:e}),n.add(r.name)}catch{w.warn(`Failed to auto-open sprinkle`,{name:r.name})}n.size>0&&this.persistAutoOpenedOnce(n)}async surfaceUnseenSprinkles(){let e=this.loadKnownSprinkles(),t=this.loadAutoOpenedOnce(),n=this.autoOpenBehavior===`attention`,r=new Set;for(let i of this.availableSprinkles.values())if(!e.has(i.name)&&!this.openSprinkles.has(i.name)&&!(i.autoOpen&&t.has(i.name)))try{await this.open(i.name,void 0,{attention:!i.autoOpen||n}),i.autoOpen&&r.add(i.name),w.info(`Surfaced previously-unseen sprinkle`,{name:i.name})}catch{w.warn(`Failed to surface unseen sprinkle`,{name:i.name})}this.persistKnownSprinkles(new Set(this.availableSprinkles.keys())),r.size>0&&this.persistAutoOpenedOnce(r)}loadKnownSprinkles(){return new Set(M())}persistKnownSprinkles(e){try{let t=new Set([...this.loadKnownSprinkles(),...e]);localStorage.setItem(A,JSON.stringify([...t]))}catch{}}loadAutoOpenedOnce(){try{let e=localStorage.getItem(N);if(!e)return new Set;let t=JSON.parse(e);return Array.isArray(t)?new Set(t.filter(e=>typeof e==`string`)):new Set}catch{return new Set}}persistAutoOpenedOnce(e){try{let t=new Set([...this.loadAutoOpenedOnce(),...e]);localStorage.setItem(N,JSON.stringify([...t]))}catch{}}persistOpenSprinkles(){try{let e=[...this.openSprinkles.keys()].filter(e=>!this.attentionOnly.has(e));localStorage.setItem(E,JSON.stringify(e))}catch{}this.schedulePersistOpenSprinklesToUrl()}schedulePersistOpenSprinklesToUrl(){this.urlWriteScheduled||(this.urlWriteScheduled=!0,queueMicrotask(()=>{this.urlWriteScheduled=!1,k([...this.openSprinkles.keys()].filter(e=>!this.attentionOnly.has(e)))}))}async openNewAutoOpenSprinkles(){if(this.inflightRefresh!==null)return this.inflightRefresh;if(!(Date.now()-this.lastRefreshAt<F))return this.inflightRefresh=this.runOpenNewAutoOpenSprinkles().finally(()=>{this.lastRefreshAt=Date.now(),this.inflightRefresh=null}),this.inflightRefresh}async runOpenNewAutoOpenSprinkles(){let e=new Set(this.availableSprinkles.keys());await this.refresh();let t=this.autoOpenBehavior===`attention`,n=this.loadAutoOpenedOnce(),r=new Set,i=!1;for(let a of this.availableSprinkles.values())if(!this.openSprinkles.has(a.name)&&!e.has(a.name)){if(i=!0,a.autoOpen){if(n.has(a.name)){w.info(`Skipped one-shot auto-open for previously-consumed sprinkle`,{name:a.name});continue}try{await this.open(a.name,void 0,{attention:t}),r.add(a.name),w.info(`Auto-opened new sprinkle after install`,{name:a.name,attention:t})}catch{w.warn(`Failed to auto-open new sprinkle`,{name:a.name})}}else try{await this.open(a.name,void 0,{attention:!0}),w.info(`Surfaced newly-installed sprinkle in rail`,{name:a.name})}catch{w.warn(`Failed to surface newly-installed sprinkle`,{name:a.name})}}i&&this.persistKnownSprinkles(new Set(this.availableSprinkles.keys())),r.size>0&&this.persistAutoOpenedOnce(r)}async refresh(){this.availableSprinkles=await g(this.fs),w.info(`Discovered sprinkles`,{count:this.availableSprinkles.size}),this.syncRegisteredIcons(),this.notifyChange()}syncRegisteredIcons(){if(!this.callbacks.registerSprinkle)return;let e=new Set;for(let t of this.availableSprinkles.values())this.inlineSprinkles.has(t.name)||e.add(t.name);for(let t of this.availableSprinkles.values())if(e.has(t.name)&&!this.registeredSprinkles.has(t.name))try{this.callbacks.registerSprinkle(t.name,t.title,{icon:t.icon}),this.registeredSprinkles.add(t.name)}catch(e){w.warn(`registerSprinkle callback threw`,{name:t.name,error:e instanceof Error?e.message:String(e)})}for(let t of[...this.registeredSprinkles])if(!e.has(t)){this.openSprinkles.has(t)&&this.close(t);try{this.callbacks.unregisterSprinkle?.(t)}catch(e){w.warn(`unregisterSprinkle callback threw`,{name:t,error:e instanceof Error?e.message:String(e)})}this.registeredSprinkles.delete(t)}}onChange(e){return this.changeListeners.add(e),()=>{this.changeListeners.delete(e)}}notifyChange(){this.changeNotifyScheduled||(this.changeNotifyScheduled=!0,queueMicrotask(()=>{this.changeNotifyScheduled=!1;for(let e of this.changeListeners)try{e()}catch(e){w.error(`SprinkleManager.onChange handler threw`,{error:e instanceof Error?e.message:String(e)})}}))}open(e,t,n={}){return this.enqueueRendererOperation(e,()=>this.openNow(e,t,n))}async openNow(e,t,n={}){if(this.openSprinkles.has(e)){w.info(`Sprinkle already open`,{name:e});return}let a=this.availableSprinkles.get(e);if(a||=(await this.refresh(),this.availableSprinkles.get(e)),!a)throw Error(`Sprinkle not found: ${e}`);let o=await this.fs.readFile(a.path,{encoding:`utf-8`});if(o==null)throw Error(`Failed to read sprinkle content: ${a.path} (file may be corrupted or missing)`);let s=typeof o==`string`?o:new TextDecoder(`utf-8`).decode(o),c=document.createElement(`div`);c.className=`sprinkle-panel`,c.style.cssText=`width: 100%; height: 100%; display: flex; flex-direction: column; overflow-y: auto;`,c.dataset.sprinkle=e;let l={renderer:null,container:c,lickOriginUnitId:n.lickOriginTarget?this.resolveLickOriginUnitId?.(n.lickOriginTarget):void 0};this.openSprinkles.set(e,l),n.attention?this.attentionOnly.add(e):this.attentionOnly.delete(e),this.callbacks.addSprinkle(e,a.title,c,t,{attention:n.attention,background:n.background,icon:a.icon});let u=this.bridge.createAPI(e,()=>l.lickOriginUnitId),d=new r(c,u);await d.render(s,e);let f=this.openSprinkles.get(e);if(!f){d.dispose();return}f.renderer=d,d.activateBridgeLifecycle(),this.openSprinkles.has(e)&&(this.persistOpenSprinkles(),i(e),w.info(`Sprinkle opened`,{name:e,title:a.title}),this.notifyChange())}markActivated(e){this.attentionOnly.has(e)&&(this.attentionOnly.delete(e),this.persistOpenSprinkles(),w.info(`Sprinkle promoted from attention to user-opened`,{name:e}),this.notifyChange())}async activate(e,t,n={}){let r=this.attentionOnly.has(e),i=this.openSprinkles.get(e);if(r&&i&&n.lickOriginTarget&&(i.lickOriginUnitId=this.resolveLickOriginUnitId?.(n.lickOriginTarget)),r&&this.markActivated(e),!i){try{await this.open(e,t,n)}catch(t){w.warn(`Failed to open sprinkle from rail-icon click`,{name:e,error:t instanceof Error?t.message:String(t)})}return}let a=this.availableSprinkles.get(e);this.callbacks.addSprinkle(e,a?.title??e,i.container,t,{icon:a?.icon})}close(e){let t=this.openSprinkles.get(e);t&&(t.renderer?.dispose(),t.container.remove(),this.bridge.removeSprinkle(e),this.openSprinkles.delete(e),this.attentionOnly.delete(e),this.callbacks.closeSprinkleContent?this.callbacks.closeSprinkleContent(e):this.callbacks.removeSprinkle(e),this.persistOpenSprinkles(),w.info(`Sprinkle closed`,{name:e}),this.notifyChange())}minimize(e){this.openSprinkles.has(e)&&(this.callbacks.minimizeSprinkle(e),w.info(`Sprinkle minimized`,{name:e}))}available(){return Array.from(this.availableSprinkles.values())}opened(){return Array.from(this.openSprinkles.keys())}lickOriginUnitIdOf(e){return this.openSprinkles.get(e)?.lickOriginUnitId}setupWatcher(e){let t=null,n=new Map,r=e=>{let r=!1;for(let t of e){let e=this.findOpenSprinkleByPath(t.path);if(e){let t=n.get(e);t&&clearTimeout(t),n.set(e,setTimeout(()=>{n.delete(e),this.reload(e).catch(t=>{w.warn(`Sprinkle reload on watcher event failed`,{name:e,error:t instanceof Error?t.message:String(t)})})},300))}else r=!0}r&&!t&&(t=setTimeout(()=>{t=null,this.openNewAutoOpenSprinkles().catch(e=>{w.warn(`Sprinkle refresh on watcher event failed`,{error:e instanceof Error?e.message:String(e)})})},150))},i=P.map(t=>e.watch(t,e=>e.endsWith(`.shtml`),r));this.watcherUnsub=()=>{for(let e of i)e();t&&=(clearTimeout(t),null);for(let e of n.values())clearTimeout(e);n.clear()}}findOpenSprinkleByPath(e){for(let[t]of this.openSprinkles){let n=this.availableSprinkles.get(t);if(n&&n.path===e)return t}return null}dispose(){this.watcherUnsub?.()}sendToSprinkle(e,t,n){let r=!n?.runtime||n.runtime===`leader`,i=!n?.runtime||n.runtime!==`leader`,a={leader:!1,followers:[]};if(r){let n=this.openSprinkles.get(e);n?(this.bridge.pushUpdate(e,t),n.renderer.pushUpdate(t),a.leader=!0):w.warn(`Cannot send to closed sprinkle`,{name:e})}if(i&&this.onSendToSprinkle)try{let r=this.onSendToSprinkle(e,t,n);r&&(a.followers=r.followers,r.unknownRuntime&&(a.unknownRuntime=r.unknownRuntime))}catch(t){w.error(`onSendToSprinkle hook threw`,{name:e,error:t instanceof Error?t.message:String(t)})}return a}};export{I as SprinkleManager,j as pruneKnownSprinkleNames,M as readKnownSprinkleNames};
@@ -1,42 +0,0 @@
1
- import{t as e}from"./logger-LESFN7Hj.js";import{t}from"./base64-BPBW1Gzr.js";import{r as n}from"./panel-rpc-DW7W4w6_.js";import{t as r}from"./types-D8gIX-W-.js";import"./fs-B7XQ_lrb.js";import"./tray-storage-keys-DbThbnIh.js";function i(e){return e==null?[]:Array.isArray(e)?e:[e]}function a(e,t,n,r){var i,a=e[t],o=~r.string.indexOf(t)?n==null||n===!0?``:String(n):typeof n==`boolean`?n:~r.boolean.indexOf(t)?n===`false`?!1:n===`true`||(e._.push((i=+n,i*0==0?i:n)),!!n):(i=+n,i*0==0?i:n);e[t]=a==null?o:Array.isArray(a)?a.concat(o):[a,o]}function o(e,t){e||=[],t||={};var n,r,o,s,c,l={_:[]},u=0,d=0,f=0,p=e.length;let m=t.alias!==void 0,h=t.unknown!==void 0,g=t.default!==void 0;if(t.alias=t.alias||{},t.string=i(t.string),t.boolean=i(t.boolean),m)for(n in t.alias)for(r=t.alias[n]=i(t.alias[n]),u=0;u<r.length;u++)(t.alias[r[u]]=r.concat(n)).splice(u,1);for(u=t.boolean.length;u-->0;)for(r=t.alias[t.boolean[u]]||[],d=r.length;d-->0;)t.boolean.push(r[d]);for(u=t.string.length;u-->0;)for(r=t.alias[t.string[u]]||[],d=r.length;d-->0;)t.string.push(r[d]);if(g){for(n in t.default)if(s=typeof t.default[n],r=t.alias[n]=t.alias[n]||[],t[s]!==void 0)for(t[s].push(n),u=0;u<r.length;u++)t[s].push(r[u])}let _=h?Object.keys(t.alias):[];for(u=0;u<p;u++){if(o=e[u],o===`--`){l._=l._.concat(e.slice(++u));break}for(d=0;d<o.length&&o.charCodeAt(d)===45;d++);if(d===0)l._.push(o);else if(o.substring(d,d+3)===`no-`){if(s=o.substring(d+3),h&&!~_.indexOf(s))return t.unknown(o);l[s]=!1}else{for(f=d+1;f<o.length&&o.charCodeAt(f)!==61;f++);for(s=o.substring(d,f),c=o.substring(++f)||u+1===p||(``+e[u+1]).charCodeAt(0)===45||e[++u],r=d===2?[s]:s,f=0;f<r.length;f++){if(s=r[f],h&&!~_.indexOf(s))return t.unknown(`-`.repeat(d)+s);a(l,s,f+1<r.length||c,t)}}}if(g)for(n in t.default)l[n]===void 0&&(l[n]=t.default[n]);if(m)for(n in l)for(r=t.alias[n]||[];r.length>0;)l[r.shift()]=l[n];return l}function s(e,t){let n=[],r=new Map,i=new Set;for(let a=0;a<e.length;a++){let o=e[a];o.startsWith(`-`)?t.has(o)?r.set(o,e[++a]??``):i.add(o):n.push(o)}return{positionals:n,flags:r,bools:i}}function c(e){let t=new Set(e.string??[]),n=e.alias??{};for(let[e,r]of Object.entries(n)){let n=[e,...Array.isArray(r)?r:[r]];if(n.some(e=>t.has(e)))for(let e of n)t.add(e)}return t}const l=/^(--?)([^=]+)(=.*)?$/;function u(e,t){let n=[];for(let r of e){let e=l.exec(r);if(!e||e[3])continue;let i=e[2];if(!t.has(i)){if(e[1]===`-`&&i.length>1)for(let e of i)t.has(e)||n.push(e);else n.push(i)}}return n}function d(e){let t=new Set(e.string??[]);for(let n of e.boolean??[])t.add(n),t.add(`no-${n}`);for(let[n,r]of Object.entries(e.alias??{})){t.add(n);for(let e of Array.isArray(r)?r:[r])t.add(e)}return t}function f(e,t,n){let r=0;for(;r<e.length;r++){let i=e[r];if(!i.startsWith(`-`)||i===`-`)break;let a=l.exec(i);if(!a||!n.has(a[2]))break;!a[3]&&t.has(a[2])&&r+1<e.length&&r++}return r}function p(e,t){let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=l.exec(i);a&&!a[3]&&t.has(a[2])&&r+1<e.length?(n.push(`${i}=${e[r+1]}`),r++):n.push(i)}return n}function m(e,t={}){let n=e,r=[];if(t[`--`]){let t=e.indexOf(`--`);t!==-1&&(n=e.slice(0,t),r=e.slice(t+1))}let i=c(t),a=d(t),s=n,l=[];if(t.stopEarly){let e=f(n,i,a);s=n.slice(0,e),l=n.slice(e)}let m=u(s,a),h=t.boolean||m.length>0?[...t.boolean??[],...m]:void 0,{_:g,..._}=o(p(s,i),{string:t.string?[...t.string]:void 0,boolean:h,alias:t.alias,default:t.default}),v=t.stopEarly?l:g;return{_:v,positionals:v,flags:_,doubleDashRest:r}}const h=[`playwright-cli`,`playwright`,`puppeteer`],g=new WeakMap,_=e(`playwright`);function v(e,t){let n=g.get(e);n||(n=new WeakMap,g.set(e,n));let r=n.get(t);return r||(r={snapshots:new Map,appTabId:null,harRecorder:null,sessionDirsCreated:new Set,teleportWatchers:new Map,consoleMessages:new Map,consoleCleanup:new Map,networkRequests:new Map,networkRequestIndex:new Map,networkCleanup:new Map,routes:new Map,routeCleanup:new Map,lastMousePosition:new Map},n.set(t,r)),r}const y=/^(f[0-9]+)?e[0-9]+$/;function b(e){return y.test(e)}function x(e){let t=e.match(/^(f[0-9]+)(e[0-9]+)$/);return t?{framePrefix:t[1],isIframe:!0}:{framePrefix:``,isIframe:!1}}const S=t,C=new Set([`click`,`dblclick`,`fill`,`type`,`press`,`goto`,`navigate`,`select`,`check`,`uncheck`,`drag`,`dialog-accept`,`dialog-dismiss`,`drop`]);function w(e){return e.toISOString().replace(/:/g,`-`)}function T(e){return e instanceof r||typeof e==`object`&&e&&`code`in e?e.code===`EEXIST`:e instanceof Error&&e.message.includes(`EEXIST`)}const E=`function(text) {
2
- const el = this;
3
- const tag = el.tagName;
4
- const proto = tag === 'TEXTAREA' ? window.HTMLTextAreaElement.prototype : window.HTMLInputElement.prototype;
5
- const nativeSetter = Object.getOwnPropertyDescriptor(proto, 'value')?.set;
6
- if (nativeSetter) {
7
- nativeSetter.call(el, text);
8
- } else {
9
- el.value = text;
10
- }
11
- el.dispatchEvent(new Event('input', { bubbles: true }));
12
- el.dispatchEvent(new Event('change', { bubbles: true }));
13
- }`,D=`function() {
14
- const el = this;
15
- if (el.isContentEditable) return el.textContent || '';
16
- return el.value ?? '';
17
- }`,O=`function() {
18
- const el = this;
19
- if (!(el instanceof HTMLElement)) return false;
20
- el.focus();
21
- const emitInput = () => el.dispatchEvent(new Event('input', { bubbles: true }));
22
- if (el.isContentEditable) {
23
- el.textContent = '';
24
- const selection = window.getSelection();
25
- if (selection) {
26
- const range = document.createRange();
27
- range.selectNodeContents(el);
28
- range.collapse(false);
29
- selection.removeAllRanges();
30
- selection.addRange(range);
31
- }
32
- emitInput();
33
- return true;
34
- }
35
- if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement || 'value' in el) {
36
- el.value = '';
37
- emitInput();
38
- return true;
39
- }
40
- return false;
41
- }`;function k(e,t){try{return JSON.parse(e)}catch{throw Error(`could not parse ${t} from the page (got: ${String(e).slice(0,80)})`)}}async function A(e){let t=await e.evaluate(`JSON.stringify({ href: location.href, hostname: location.hostname, pathname: location.pathname })`);try{return JSON.parse(t)}catch{throw Error(`could not read the page location (evaluate returned: ${String(t).slice(0,80)})`)}}const j={string:`tab.frame.filename.max-width.runtime.timeout.filter.output.start.return.teleport-start.teleport-return.teleport-runtime.domain.path.expires.method.depth.modifiers.regex.type.sameSite.data.status.body.content-type.header.style`.split(`.`),boolean:[`boxes`,`clear`,`discover`,`foreground`,`fg`,`full-page`,`fullPage`,`hide`,`httpOnly`,`hires`,`list`,`mobile`,`off`,`secure`,`static`,`submit`],alias:{foreground:`fg`,"full-page":`fullPage`}};function M(e){let t=m(e.map(e=>e===`--no-iframes`||e.startsWith(`--no-iframes=`)?e.replace(`--no-iframes`,`--_noiframes`):e),j),n={};for(let[e,r]of Object.entries(t.flags)){let t=e===`_noiframes`?`no-iframes`:e;if(r===!0)n[t]=`true`;else if(r===!1)continue;else r!==void 0&&(n[t]=String(r))}return{positional:t.positionals,flags:n}}function N(e,t){if(e?.aborted)throw Error(`aborted while ${t}`)}function P(e){let t=e.tab;return t?{targetId:t}:{error:`Error: --tab <targetId> is required. Run 'playwright-cli tab-list' to get tab IDs.
42
- `}}async function F(e,t){let n=t.frame;if(!n)return null;let r=(await e.getFrameTree()).find(e=>e.frameId===n);if(r)return r;let i=t.tab??`<targetId>`;throw Error(`Unknown frame ID "${n}" for tab ${i}. Run 'playwright-cli frames --tab=${i}' to list frame IDs.`)}function I(){try{let e=globalThis.localStorage;return e?!!(e.getItem(`slicc.trayWorkerBaseUrl`)||e.getItem(`slicc.trayJoinUrl`)):!1}catch{return!1}}async function L(e){if(typeof e.listAllTargets!=`function`)return e.listPages();let t=await e.listAllTargets(),r=I()?n():null;if(!r)return t;try{let{targets:e}=await r.call(`list-remote-targets`,void 0,{timeoutMs:3e3}),n=new Set(t.map(e=>e.targetId));for(let r of e)n.has(r.targetId)||(n.add(r.targetId),t.push({targetId:r.targetId,title:r.title,url:r.url}))}catch(e){_.debug(`panel-rpc list-remote-targets failed`,{err:String(e)})}return t}async function R(e){try{return await L(e)}catch{return[]}}async function z(e,t,n){if(!(n instanceof Error?n.message:String(n)).includes(`No target with given id found`))return null;for(let n of await R(e))try{if((await e.withTab(n.targetId,e=>e.getFrameTree())).some(e=>e.frameId===t))return`"${t}" is a frame ID, not a tab target ID. Use --tab=${n.targetId} --frame=${t}; run 'playwright-cli frames --tab=${n.targetId}' to list frame IDs.`}catch{}return null}export{s as S,x as _,E as a,N as b,w as c,v as d,T as f,k as g,M as h,j as i,z as l,L as m,O as n,D as o,b as p,h as r,S as s,C as t,A as u,P as v,m as x,F as y};
@@ -1 +0,0 @@
1
- function e(e,t){return{name:`StructuredOutput`,description:`Return your final result. Call this exactly once, as your last action. Your arguments ARE the return value and must match the required schema.`,inputSchema:e,async execute(e){return t(e),{content:`Result recorded.`}}}}export{e as createStructuredOutputTool};
@@ -1,13 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-shell-B6woD-e6.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/mime-types-D0xZwlMO.js","assets/base64-ELzoYfwP.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-CfWRzPpT.js","assets/core-4boN-CgI.js","assets/compat-BAGLwgqY.js","assets/models-Xc0Gclrk.js","assets/diagnostics-Cag7MsZI.js","assets/env-api-keys-BXRkymgV.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-DHpsqCCC.js","assets/libesm-BypnjKEL.js","assets/feature-flags-DvsApnS-.js","assets/proxied-fetch-Cplb-Tee.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-Dm_PZRZx.js","assets/float-topology-C9GjBEv-.js","assets/secrets-bridge-client-CWv2_nw7.js","assets/port-bridge-client-D_erEovW.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-Qqp-ZEtv.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-B1oHsbyo.js","assets/bedrock-camp-extra-models-BYrxX19D.js","assets/claude-model-version-DZmbk9E2.js","assets/telemetry-B0sKnLBU.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-2DY2vYOc.js","assets/wc-shell-WkeczD9x.css","assets/wc-secret-request-BJXcNpDs.js","assets/secret-request-registry-DrOMKR1H.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";import{r as t,t as n}from"./base64-ELzoYfwP.js";import{t as r}from"./permissions-surface-registry-CilCRwhh.js";var i=8,a=2e3,o=[`/workspace`,`/shared`,`/tmp`],s=8,c=new Set([`node_modules`,`.git`]),l=1e4,u=/\.(png|jpe?g|gif|webp|svg|avif)$/i,d=4194304,f=262144;function p(){return`att-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function m(e){return{png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,gif:`image/gif`,webp:`image/webp`,svg:`image/svg+xml`,avif:`image/avif`,md:`text/markdown`,json:`application/json`}[e.toLowerCase().split(`.`).pop()??``]??`text/plain`}function h(e,n){let r={id:p(),name:e,size:n.length};if(u.test(e))return n.length>d?{...r,mimeType:m(e),kind:`image`,error:`image too large to inline`}:{...r,mimeType:m(e),kind:`image`,data:t(n)};let i={...r,mimeType:m(e),kind:`file`};return n.length>f?{...i,error:`file too large to inline`}:i}async function g(e){let t=new Uint8Array(await e.arrayBuffer()),n=h(e.name,t);return e.type?{...n,mimeType:e.type}:n}function _(e,t){let n=t.match(/^data:(image\/[^;]+);base64,(.+)$/);return n?{id:p(),name:e,mimeType:n[1],size:Math.floor(n[2].length*3/4),kind:`image`,data:n[2]}:null}var v=`/tmp/upload`,y=1568;async function b(e,t,n){await e.mkdir(v,{recursive:!0}).catch(()=>void 0);let r=`${v}/${Date.now()}-${t.replace(/[^A-Za-z0-9._-]+/g,`_`)}`;return await e.writeFile(r,n),r}async function x(e,t=y){let n=new Image;n.src=e;try{await n.decode()}catch{return e}let r=Math.min(1,t/Math.max(n.naturalWidth,n.naturalHeight,1));if(r>=1)return e;let i=document.createElement(`canvas`);return i.width=Math.round(n.naturalWidth*r),i.height=Math.round(n.naturalHeight*r),i.getContext(`2d`)?.drawImage(n,0,0,i.width,i.height),i.toDataURL(`image/jpeg`,.85)}async function S(e,t,r){let i=_(e,t);if(!i)return null;let a;return r&&i.data&&(a=await b(r,e,n(i.data)).catch(()=>void 0)),{..._(e,await x(t).catch(()=>t))??i,name:e,path:a}}async function C(e,t,n){if(!n)return null;let r=new Uint8Array(await t.arrayBuffer()),i=await b(n,e,r).catch(()=>void 0);return i?{id:p(),name:e,mimeType:t.type||`video/webm`,size:r.length,kind:`file`,path:i}:null}async function w(e){let t=[],n=o.map(e=>({dir:e,depth:0}));for(;n.length>0&&t.length<a;){let{dir:r,depth:i}=n.shift(),o;try{o=await e.readDir(r)}catch{continue}for(let e of o){let o=`${r}/${e.name}`;if(e.type===`directory`)i<s&&!c.has(e.name)&&n.push({dir:o,depth:i+1});else if(t.push(o),t.length>=a)break}}return t}function T(e){let t=null;return async n=>{let r=await e.openReader();(!t||Date.now()-t.at>l)&&(t={at:Date.now(),paths:await w(r)});let a=e=>n===``||e.toLowerCase().includes(n),o=t.paths.filter(e=>a(e)).slice(0,i).map(e=>({id:e,label:e.split(`/`).pop()??e,sub:e.slice(0,e.lastIndexOf(`/`))})),s=[];try{s=(await r.readDir(`/workspace/skills`)).filter(e=>e.type===`directory`&&a(e.name)).slice(0,i).map(e=>({id:e.name,label:e.name}))}catch{}let c=(await e.listConversations().catch(()=>[])).filter(e=>a(e.label)).slice(0,i);return[{kind:`file`,label:`Files`,icon:`file`,entries:o},{kind:`skill`,label:`Skills`,icon:`sparkles`,entries:s},{kind:`conversation`,label:`Conversations`,icon:`message-square`,entries:c}]}}var E=`slicc-wc-attach-style`,D=`
3
- .wcatt{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px 0;font-family:var(--ui);}
4
- .wcatt:empty{display:none;}
5
- .wcatt__chip{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--ink);
6
- background:var(--ghost);border:1px solid var(--line);border-radius:14px;padding:3px 8px;max-width:220px;}
7
- .wcatt__thumb{width:28px;height:28px;object-fit:cover;border-radius:8px;cursor:zoom-in;
8
- border:1px solid var(--line);flex:0 0 auto;}
9
- .wcatt__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
10
- .wcatt__x{appearance:none;background:none;border:none;cursor:pointer;color:var(--txt-3);
11
- font:inherit;padding:0;line-height:1;}
12
- .wcatt__x:hover{color:var(--ink);}
13
- `,O=class{#e;#t=[];constructor(e){if(!document.getElementById(E)){let e=document.createElement(`style`);e.id=E,e.textContent=D,document.head.appendChild(e)}this.#e=document.createElement(`div`),this.#e.className=`wcatt`,e.prepend(this.#e)}get items(){return this.#t}add(e){this.#t.push(e),this.#n()}take(){let e=this.#t;return this.#t=[],this.#n(),e}#n(){this.#e.replaceChildren(...this.#t.map(e=>this.#r(e)))}#r(t){let n=document.createElement(`span`);if(n.className=`wcatt__chip`,t.kind===`image`&&t.data){let r=document.createElement(`img`);r.className=`wcatt__thumb`,r.src=`data:${t.mimeType};base64,${t.data}`,r.alt=t.name,r.addEventListener(`click`,()=>{e(async()=>{let{SliccImagePreview:e}=await import(`./wc-shell-B6woD-e6.js`).then(e=>e.N);return{SliccImagePreview:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37])).then(({SliccImagePreview:e})=>e.show(r.src,r))}),n.append(r)}let r=document.createElement(`span`);r.className=`wcatt__name`,r.textContent=t.name;let i=document.createElement(`button`);return i.type=`button`,i.className=`wcatt__x`,i.setAttribute(`aria-label`,`Remove ${t.name}`),i.textContent=`×`,i.addEventListener(`click`,()=>{this.#t=this.#t.filter(e=>e.id!==t.id),this.#n()}),n.append(r,i),n}};async function k(e){let t=document.createElement(`video`);t.srcObject=e,t.muted=!0;try{await t.play(),await new Promise(e=>requestAnimationFrame(()=>e(null)));let e=document.createElement(`canvas`);return e.width=t.videoWidth,e.height=t.videoHeight,e.width===0||e.height===0?null:(e.getContext(`2d`)?.drawImage(t,0,0),e.toDataURL(`image/png`))}finally{for(let t of e.getTracks())t.stop();t.srcObject=null}}async function A(){let e=r();if(e){let t=await e.request(`screenshare`,{constraints:{video:!0}});if(!t)return null;let n=t.stream;return k(n)}return k(await navigator.mediaDevices.getDisplayMedia({video:!0}))}async function j(e,t){let n=r();if(!n)return null;let i=await n.prompt({kinds:e,description:t,skipIfGranted:!0});for(let e of i.grants)if(e.kind===`camera`||e.kind===`microphone`||e.kind===`screenshare`)for(let t of e.stream.getTracks())t.stop();return i.status===`granted`}var M=`slicc_camera_device`,N=`slicc_microphone_device`,P=[`position:absolute`,`left:50%`,`right:auto`,`transform:translateX(-50%)`,`bottom:56px`,`width:calc(100% - 32px)`,`max-width:680px`,`z-index:3`].join(`;`);async function F(e,t){if(await j([`camera`,`microphone`],`Slicc is requesting access to your camera and microphone to capture a photo or video for this conversation.`)===!1)return null;let n=document.createElement(`slicc-composer-capture`),r=localStorage.getItem(M);r&&n.setAttribute(`preferred-device`,r);let i=localStorage.getItem(N);i&&n.setAttribute(`preferred-audio-device`,i),n.style.cssText=P,n.hidden=!0,n.addEventListener(`slicc-capture-device-change`,e=>{let t=e.detail;if(!t?.deviceId)return;let n=t.kind===`microphone`?N:M;localStorage.setItem(n,t.deviceId)}),e.append(n);try{return await n.open(t)}finally{n.remove()}}async function I(e,t,n){if(!e.dataUrl)return;let r=`photo-${Date.now()}.png`,i=await t.openWriter?.().catch(()=>null)??null,a=await S(r,e.dataUrl,i);a&&n.add(a)}async function L(e,t,n){if(!e.blob)return;let r=/webm/i.test(e.mimeType)?`webm`:`bin`,i=`video-${Date.now()}.${r}`,a=await t.openWriter?.().catch(()=>null)??null,o=await C(i,e.blob,a);o&&n.add(o)}async function R(e,t,n){if(e.mode===`photo`){if(!t.composer){let e=await z();if(!e)return;let r=await S(`photo-${Date.now()}.png`,e,await t.openWriter?.().catch(()=>null)??null);r&&n.add(r);return}let e=await F(t.composer,`photo`);if(!e)return;e.kind===`image`?await I(e,t,n):e.kind===`video`&&await L(e,t,n);return}let r=await A();if(!r)return;let i=await S(`screenshot-${Date.now()}.png`,r,await t.openWriter?.().catch(()=>null)??null);i&&n.add(i)}async function z(){if(await j([`camera`],`Slicc is requesting access to your camera to capture a photo for this conversation.`)===!1)return null;let e=document.createElement(`slicc-camera-dialog`),t=localStorage.getItem(M);t&&e.setAttribute(`preferred-device`,t),e.addEventListener(`slicc-camera-device-change`,e=>{let t=e.detail?.deviceId;t&&localStorage.setItem(M,t)}),document.body.append(e);try{return await e.open()}finally{e.remove()}}async function B(e,t,n){let r=await n.openWriter?.().catch(()=>null)??null,i=r?await b(r,e.name,t).catch(()=>void 0):void 0;return i?{...e,error:void 0,path:i}:e.kind===`image`?e:{...e,error:`could not be saved to the virtual filesystem`}}async function V(e,t,n){let r=await(await t()).readFile(e,{encoding:`binary`});return typeof r==`string`?(n.error(`VFS image pick returned text, not bytes — skipping the inline copy`,e),null):r}async function H(e,t,n){let r=0;try{r=(await(await n()).stat(e)).size}catch{}return{id:p(),name:t,mimeType:m(t),size:r,kind:`file`,path:e}}async function U(e,t,n,r){let i=e.split(`/`).pop()??e;if(u.test(i)){let a=await V(e,t,r);if(a){let t=h(i,a);n.add({...t,error:void 0,path:e});return}}n.add(await H(e,i,t))}function W(e,t){let n=t.value??t.getAttribute(`value`)??``,r=n&&!n.endsWith(` `)?` `:``;t.setAttribute(`value`,`${n}${r}${e}`)}function G(e,t){W(`Use the "${e}" skill: `,t)}async function K(t){let{requestSecretFromUser:n}=await e(async()=>{let{requestSecretFromUser:e}=await import(`./wc-secret-request-BJXcNpDs.js`);return{requestSecretFromUser:e}},__vite__mapDeps([38,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39])),r=await n();if(!r.stored)return;let i=r.domains.join(`, `),a=r.persisted?`saved`:`this session only`;W(r.maskedValue?`I stored the secret ${r.name} (masked value ${r.maskedValue}, scope: ${i}, ${a}). Use the masked value — SLICC swaps in the real one at the network boundary. `:`I stored the secret ${r.name} (scope: ${i}, ${a}). Run \`secret get ${r.name}\` for its masked value. `,t.inputCard)}function q(e){return e?.name===`NotAllowedError`}async function J(e,t,n){if(e.kind===`upload`&&e.file instanceof File){let r=new Uint8Array(await e.file.arrayBuffer());n.add(await B(await g(e.file),r,t))}else e.kind===`capture`?await R(e,t,n):e.kind===`file`&&typeof e.id==`string`&&t.openReader?await U(e.id,t.openReader,n,t.log):e.kind===`secret`?await K(t):e.kind===`skill`&&typeof e.label==`string`?G(e.label,t.inputCard):e.kind===`conversation`&&typeof e.id==`string`&&t.freezer.dispatchEvent(new CustomEvent(`freezer-card-select`,{bubbles:!0,composed:!0,detail:{slug:e.id}}))}function Y(e){let{inputCard:t,log:n}=e,r=new O(t),i=t.querySelector(`slicc-add-menu`);return i&&(e.openReader?i.provider=T({openReader:e.openReader,listConversations:e.listConversations??(async()=>[])}):i.results=[],i.setAttribute(`global-drop`,``),e.noCamera&&i.setAttribute(`no-camera`,``),e.secretEntry&&i.setAttribute(`secret-action`,``)),t.addEventListener(`slicc-add`,t=>{let i=t.detail;i&&J(i,e,r).catch(e=>{q(e)||n.error(`WC add-menu action failed`,e)})}),t.addEventListener(`paste`,t=>{let i=t.clipboardData?.items;if(i)for(let a of Array.from(i)){if(!a.type.startsWith(`image/`))continue;let i=a.getAsFile();if(!i)continue;t.preventDefault();let o=(i.type.split(`/`)[1]||`png`).replace(/[^a-z0-9]/gi,``)||`png`,s=i.name?i:new File([i],`pasted-image.${o}`,{type:i.type});J({kind:`upload`,name:s.name,size:s.size,file:s},e,r).catch(e=>n.error(`Paste image failed`,e))}}),r}export{Y as wireWcAttach};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/main-D9hbfd93.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/modulepreload-polyfill-P2Xu9kJm.js","assets/core-4boN-CgI.js","assets/compat-BAGLwgqY.js","assets/models-Xc0Gclrk.js","assets/diagnostics-Cag7MsZI.js","assets/preload-helper-Czpn1I53.js","assets/env-api-keys-BXRkymgV.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-DHpsqCCC.js","assets/libesm-BypnjKEL.js","assets/logger-DDBAeTLF.js","assets/feature-flags-DvsApnS-.js","assets/proxied-fetch-Cplb-Tee.js","assets/base64-ELzoYfwP.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-Dm_PZRZx.js","assets/float-topology-C9GjBEv-.js","assets/secrets-bridge-client-CWv2_nw7.js","assets/port-bridge-client-D_erEovW.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-CfWRzPpT.js","assets/providers-Qqp-ZEtv.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-B1oHsbyo.js","assets/bedrock-camp-extra-models-BYrxX19D.js","assets/claude-model-version-DZmbk9E2.js","assets/telemetry-B0sKnLBU.js","assets/tray-follower-status-BAjnN7Ar.js","assets/clipboard-eqmn97SP.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";import{C as t,S as n,b as r,r as i,t as a,y as o}from"./wc-live-CN_PjeIo.js";import{wireWcDetached as s}from"./wc-detached-DK9sSKZr.js";async function c(c,l,u=!1){let d;await i(c,l,{floatKind:`extension`,connect:e=>{d=new t(o(e.wiring));let i=n(d);return{client:r(e.wiring),host:i,workbench:(e,t)=>{a(e,d,t,i,l)}}}}),s({client:d,isDetachedSelf:u});let{setupSudoExtension:f}=await e(async()=>{let{setupSudoExtension:e}=await import(`./main-D9hbfd93.js`).then(e=>e.c);return{setupSudoExtension:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]));await f({log:l}),d.requestState(),l.info(`WC extension shell connected to offscreen engine`)}export{c as bootExtensionFloat};
@@ -1,17 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-shell-B6woD-e6.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/mime-types-D0xZwlMO.js","assets/base64-ELzoYfwP.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-CfWRzPpT.js","assets/core-4boN-CgI.js","assets/compat-BAGLwgqY.js","assets/models-Xc0Gclrk.js","assets/diagnostics-Cag7MsZI.js","assets/env-api-keys-BXRkymgV.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-DHpsqCCC.js","assets/libesm-BypnjKEL.js","assets/feature-flags-DvsApnS-.js","assets/proxied-fetch-Cplb-Tee.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-Dm_PZRZx.js","assets/float-topology-C9GjBEv-.js","assets/secrets-bridge-client-CWv2_nw7.js","assets/port-bridge-client-D_erEovW.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-Qqp-ZEtv.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-B1oHsbyo.js","assets/bedrock-camp-extra-models-BYrxX19D.js","assets/claude-model-version-DZmbk9E2.js","assets/telemetry-B0sKnLBU.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-2DY2vYOc.js","assets/wc-shell-WkeczD9x.css","assets/panelize-shell-C3g06QW7.js","assets/virtual-device-paths-D45tpPP6.js","assets/layout-apply-registry-Cw730jao.js","assets/wc-live-CN_PjeIo.js","assets/sprinkle-renderer-DKK-prCv.js","assets/permissions-surface-registry-CilCRwhh.js","assets/hid-device-registry-B2R-0rNt.js","assets/serial-port-registry-CCqklAEr.js","assets/hid-operations-C97SZtrY.js","assets/usb-device-registry--JwKRTYp.js","assets/usb-operations-v1mGAdRY.js","assets/shared-DSEuryGJ.js","assets/theme-CwPIBqJE.js","assets/theme-engine-ZV7CeqWw.js","assets/slugify-BYJ6QVAt.js","assets/transcript-export-DP-r8eDz.js","assets/session-jsonl-BFDqAk2L.js","assets/tray-follower-status-BAjnN7Ar.js","assets/main-D9hbfd93.js","assets/modulepreload-polyfill-P2Xu9kJm.js","assets/clipboard-eqmn97SP.js","assets/src-BWaKqLvQ.js","assets/provider-budget-LCzMPlKv.js","assets/browser-BhTdBqdp.js","assets/tray-leader-BdvK7KWc.js","assets/record-CBv8rWFt.js","assets/descriptor-CuhPBdq8.js","assets/types-CFfBWsH5.js","assets/wc-unit-context-CZro7UrY.js","assets/legacy-styles-B3nS5QUo.js","assets/follower-navigate-watcher-T4oXQ4JA.js","assets/navigation-watcher-CPcnZL9l.js","assets/discovery-preference-D1cUzn0M.js","assets/wc-transcript-export-RedJl591.js","assets/export-spool-CuNzzI8a.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{a as n,n as r}from"./feature-flags-DvsApnS-.js";import{n as i}from"./transcript-export-DP-r8eDz.js";import{S as a,a as o,c as s,d as c,i as ee,n as te,r as ne,t as re,x as l}from"./wc-follower-oauth-g_NJ62P_.js";import{a as ie,t as ae}from"./tray-follower-status-BAjnN7Ar.js";import{C as oe,D as u,E as d,s as se,w as f,x as ce}from"./main-D9hbfd93.js";import{m as le,r as ue,x as de}from"./wc-live-CN_PjeIo.js";import{n as fe}from"./theme-engine-ZV7CeqWw.js";import{c as pe,m as me,s as he,t as ge}from"./wc-unit-context-CZro7UrY.js";import{WcSprinkleZone as _e}from"./wc-sprinkles-Q2JU6sSY.js";import{wireWcAttach as ve}from"./wc-attach-ChUPT4oB.js";import{installLeaderPermissionsSurface as ye}from"./wc-permissions-D-mQCivR.js";var p=t(`follower-switch-out`);function be(e,t){t.stopFollower();try{t.storage.removeItem(d),e.workerBaseUrl===null?t.storage.removeItem(u):t.storage.setItem(u,e.workerBaseUrl)}catch(e){p.error(`follower switch-out: storage write failed — state may revert on reload`,{error:e instanceof Error?e.message:String(e)})}try{let e=t.getHref(),n=f(e);n!==e&&t.replaceHref(n)}catch(e){p.error(`follower switch-out: URL normalize failed — may re-enter follower on reload`,{error:e instanceof Error?e.message:String(e)})}t.reload()}var m=6;function xe(e){let{refs:t,getSync:n,getTargets:r,hasCdpBrowser:i,log:a}=e;if(t.overlaySurfaces.has(`browser`))return{overlay:document.createElement(`slicc-tab-overlay`),refresh:()=>{}};let o=document.createElement(`slicc-tab-overlay`);o.setAttribute(`heading`,`Browser · tabs in this tray`),o.setAttribute(`no-peek`,``),document.body.append(o);let s=()=>{o.tabs=r().map(e=>({id:e.targetId,title:e.title||e.url||e.targetId,url:e.url}))};return t.overlaySurfaces.add(`browser`),t.dock.addEventListener(`slicc-dock-select`,e=>{e.detail?.id===`browser`&&(s(),o.show(),t.dock.collapse?.())}),o.addEventListener(`tab-activate`,t=>{let r=t.detail.id,s=n(),c=s?.getLeaderProtocolVersion()??0;if(!(s&&i()&&c>=m)){let t=o.tabs.find(e=>e.id===r)?.url;if(!t){a.warn(`WC follower browser: no URL for tab`,{id:r});return}e.window.open(t,`_blank`,`noopener`)||a.warn(`WC follower browser: window.open was blocked`,{id:r}),o.hide();return}s.requestTabTeleport(r).then(e=>{a.info(`WC follower browser: leader teleported a tab here`,{source:r,targetId:e}),o.hide()}).catch(e=>{a.error(`WC follower browser: tab teleport failed`,e)})}),{overlay:o,refresh:s}}var h=new Set([`oauth-attempt`,`connect-attempt`,`device-code-decision`]);function Se(e){return h.has(e)}var g=`slicc-signin-redirect-style`,_=`wc-signin-redirect`,v=`${_}--welcome`,y=`
3
- .${_}{display:flex;gap:10px;align-items:flex-start;margin:10px 12px;padding:12px 14px;
4
- border:1px solid var(--line);border-radius:12px;background:var(--ghost);color:var(--ink);
5
- font-family:var(--ui);font-size:13px;line-height:1.4;}
6
- .${_}__body{flex:1;min-width:0;}
7
- .${_}__title{font-weight:600;margin-bottom:2px;}
8
- .${_}__sub{color:var(--txt-2);}
9
- .${_}__open{appearance:none;border:1px solid var(--line);border-radius:8px;cursor:pointer;
10
- background:var(--canvas);color:var(--ink);font:inherit;font-weight:600;padding:6px 12px;white-space:nowrap;}
11
- .${_}__open:hover{background:var(--ghost);}
12
- .${_}__x{appearance:none;background:none;border:none;cursor:pointer;color:var(--txt-3);
13
- font:inherit;font-size:16px;line-height:1;padding:0 2px;}
14
- .${_}__x:hover{color:var(--ink);}
15
- `;function b(e){if(e.getElementById(g))return;let t=e.createElement(`style`);t.id=g,t.textContent=y,e.head.appendChild(t)}function x(e,t){b(e);let n=e.createElement(`div`);n.className=_,n.setAttribute(`role`,`status`);let r=e.createElement(`div`);r.className=`${_}__body`;let i=e.createElement(`div`);i.className=`${_}__title`,i.textContent=t.title;let a=e.createElement(`div`);a.className=`${_}__sub`,a.textContent=t.sub,r.append(i,a);let o=e.createElement(`button`);if(o.type=`button`,o.className=`${_}__open`,o.textContent=t.buttonLabel,o.addEventListener(`click`,()=>t.onOpenTab()),n.append(r,o),t.dismissible){let t=e.createElement(`button`);t.type=`button`,t.className=`${_}__x`,t.setAttribute(`aria-label`,`Dismiss`),t.textContent=`×`,t.addEventListener(`click`,()=>n.remove()),n.append(t)}return n}function Ce(e,t){let n=e.ownerDocument;t.onOpenTab();let r=e.querySelector(`.${_}`);if(r)return r.scrollIntoView?.({block:`nearest`}),r;let i=x(n,{title:`Sign in from the SLICC tab`,sub:`The side panel can't complete a provider login — we've switched you to the main SLICC tab. Finish signing in there (Settings › Providers), then come back.`,buttonLabel:`Open SLICC tab`,onOpenTab:t.onOpenTab,dismissible:!0});return e.append(i),i.scrollIntoView?.({block:`nearest`}),i}function we(e,t){let n=x(e,{title:`Set up SLICC in the main tab`,sub:`SLICC needs a model connected before it can help. Open the main SLICC tab to finish setup and sign in, then come back to the side panel.`,buttonLabel:`Open SLICC tab`,onOpenTab:t.onOpenTab,dismissible:!1});return n.classList.add(v),n}var S=t(`wc-follower`),Te=`/shared/sprinkles/welcome/`,Ee=`/shared/sprinkles/suggestions/`;function De(e){return e===void 0||e===`active`?{kind:`active`}:e.trim()===``?null:{kind:`frozen`,sessionId:e}}function Oe(e,t){for(;e.firstChild;)e.removeChild(e.firstChild);let n=document.createElement(`div`);n.style.cssText=`padding:2rem;text-align:center;font-family:system-ui;`;let r=document.createElement(`h1`);r.style.color=`var(--s2-negative, #e34850)`,r.textContent=`Could not start follower`;let i=document.createElement(`p`);i.style.color=`var(--s2-content-tertiary, #717171)`,i.textContent=t,n.append(r,i),e.appendChild(n)}function ke(e,t,n,r,i){let a=e=>{let t=document.createElement(`div`);return t.className=`wcui-placeholder`,t.textContent=e,t};i.files?(e.style.display=`none`,e.parentElement?.append(a(`Files live on the leader. A follower mirrors the leader's chat, sprinkles, and browser tabs - not its filesystem.`))):e.closest(`slicc-surface`)?.remove(),i.terminal?t.append(a(`The shell runs on the leader. A follower has no local terminal - drive the session through chat.`)):t.closest(`slicc-surface`)?.remove(),i.memory?n.append(a(`Memory lives on the leader. A follower has no local memory store.`)):n.closest(`slicc-surface`)?.remove(),i.monitor?(r.style.display=`none`,r.parentElement?.append(a(`Monitor reads the leader's kernel state. A follower has no local kernel.`))):r.closest(`slicc-surface`)?.remove()}var C={terminal:!0,files:!0,memory:!0,browser:!0,modelPicker:!0,history:!0,nav:!0,monitor:!0,showTimestamps:!0};function Ae(e){let t=[];for(let[n,r]of[[`terminal`,`term`],[`files`,`files`],[`memory`,`memory`],[`browser`,`browser`],[`monitor`,`monitor`]])e[n]||t.push(`slicc-dock-item[data-t="${r}"]`);if(e.modelPicker||t.push(`slicc-composer-meta`),e.history||t.push(`slicc-freezer`),e.nav||t.push(`slicc-nav`),!e.terminal&&!e.files&&!e.memory&&!e.browser&&!e.monitor&&t.push(`slicc-dock .div`,`slicc-dock .grow`),t.length||!e.history){let n=document.createElement(`style`),r=t.length?`${t.join(`,
16
- `)}{display:none!important;}`:``;e.history||(r+=`
17
- .wcui-appcol{padding-left:0!important;}`),n.textContent=r,document.head.append(n)}}function w(e,t){return e&&!t}async function T(t,n,r){let[{parseLayoutDocument:i},{panelizeShell:a}]=await Promise.all([e(()=>import(`./wc-shell-B6woD-e6.js`).then(e=>e.B),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37])),e(()=>import(`./panelize-shell-C3g06QW7.js`),__vite__mapDeps([38,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40]))]),o=i(n);if(`error`in o){r.warn(`follower: host-pushed layout failed validation — keeping the default`,{error:o.error});return}a(t.refs,o),r.info(`follower: applied host-pushed layout document`,{id:o.id,locked:o.locked===!0})}async function je(e,t,i){if(i&&t.cherryTransport?.flags)try{let e=JSON.parse(t.cherryTransport.flags);e&&typeof e==`object`&&!Array.isArray(e)&&r(e)}catch(e){S.warn(`follower: host-pushed flags were not valid JSON — ignoring`,e)}let a=n(`panel-layouts`);if(e.refs.dockTree.tilesMovable=a,i&&t.cherryTransport?.layout)try{let n=JSON.parse(t.cherryTransport.layout);n&&typeof n==`object`&&`base`in n?a?await T(e,n,S):S.warn(`follower: ignoring host-pushed layout — the panel-layouts flag is off`):e.refs.dockTree.setTree(n)}catch(e){S.warn(`follower: host-pushed layout was not valid JSON — keeping the default`,e)}}async function E(t,r,u){let d=u===`cherry`,f=d&&new URLSearchParams(window.location.search).get(`ui-only`)===`1`,p=window.location.ancestorOrigins?.[0],m=d&&(p?.startsWith(`chrome-extension://`)??!1),h;try{h=await se({runtimeMode:u,envBaseUrl:null,window,log:r})}catch(e){let n=e instanceof Error?e.message:String(e);S.error(`follower prelude failed`,{runtimeMode:u,error:n}),Oe(t,n);return}let g=d?h.cherryJoinUrl:ce(window.location.href,window.localStorage);if(!g){S.error(`follower mount with no join URL - falling back to live boot`);let{bootLeaderFloat:n}=await e(async()=>{let{bootLeaderFloat:e}=await import(`./wc-live-CN_PjeIo.js`).then(e=>e.n);return{bootLeaderFloat:e}},__vite__mapDeps([41,1,8,9,10,11,2,12,13,14,15,16,3,17,18,5,19,20,21,22,23,24,25,26,27,0,4,6,7,28,29,30,31,32,33,34,35,36,37,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66]));return n(t,r,`standalone`)}let _=d?`cherry`:m?`extension`:`standalone`,y,b,x,T=new Set,E=null,D=new te({onSilence:(e,t)=>{e===R()&&P.addAssistantMessage(ee(t,m))},onRejected:(e,t)=>{e!==null&&e===R()&&P.addAssistantMessage(ne(t))}});T.add(()=>D.noteLeaderActivity());let O=null,k=()=>h.cherryTransport?.emitSliccEventToHost(`slicc.open-leader-tab`),A=()=>{m&&Ce(y.refs.thread,{onOpenTab:k})},j=e=>{let t=e.querySelectorAll(`img[src^="${Te}"]`);return t.length!==0&&(t.forEach((t,n)=>{n===0&&!M?t.replaceWith(we(e.ownerDocument,{onOpenTab:k})):t.remove()}),!0)},M=!1,Me=e=>{let t=e.querySelectorAll(`img[src^="${Ee}"]`);if(t.length!==0){for(let e of t)e.remove();M=!0;for(let e of y.refs.thread.querySelectorAll(`.${v}`))e.remove()}},N=(await ue(t,r,{floatKind:_,connect:async t=>{y=t,d&&h.cherryTransport?.theme&&fe(h.cherryTransport.theme),await je(y,h,d);let n=d&&h.cherryTransport?.effortLevel;n?localStorage.setItem(`slicc_locked_effort_level`,n):localStorage.removeItem(`slicc_locked_effort_level`),b=d&&h.cherryTransport?{...C,...h.cherryTransport.features}:C,ke(y.refs.fileTree,y.refs.termSurface,y.refs.memoryHost,y.refs.monitor,b),Ae(b),e(async()=>{let{applyTimestampVisibility:e,initTimestampPreference:t}=await import(`./wc-shell-B6woD-e6.js`).then(e=>e.Q);return{applyTimestampVisibility:e,initTimestampPreference:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37])).then(({applyTimestampVisibility:e,initTimestampPreference:t})=>{b.showTimestamps?t():e(!1)}),e(async()=>{let{loadDipStyles:e,loadSprinkleStyles:t}=await import(`./legacy-styles-B3nS5QUo.js`);return{loadDipStyles:e,loadSprinkleStyles:t}},__vite__mapDeps([67,2])).then(({loadDipStyles:e,loadSprinkleStyles:t})=>Promise.all([e(),t()])).catch(()=>void 0),x=new o({getSync:()=>J?.currentSync??null,onSend:(e,t)=>D.noteSent(e,t)});let r=de({getSync:()=>J?.currentSync??null,onAgentEvent:e=>(T.add(e),()=>T.delete(e)),onAgentError:e=>{S.warn(`follower send failed`,{error:e}),N.controller.addAssistantMessage(`_That message was not sent to the leader — ${e}_`)}}),i={...r,sendSprinkleLick:(e,t,n)=>{r.sendSprinkleLick(e,t,n);let i=t?.action;typeof i==`string`&&Se(i)&&A()},addressableUnitId:()=>V(),onMessageRendered:e=>{Me(e),m&&j(e)},onSelectionApplied:()=>{W(H,U),O?.onShownUnitChanged()},onSnapshotRendered:e=>{N.controller.setProcessing(e.some(e=>e.isStreaming))},ownsModelPill:!0,takeAttachments:()=>Pe.take()};return{client:x,host:i}}})).chat,P=N.controller;if(m)for(let e of[`slicc-error-open-settings`,`slicc-error-login`,`slicc-error-change-model`])y.refs.thread.addEventListener(e,()=>A());let F=`Connecting to leader…`,I=`Ask the leader, or describe a change…`,L=null,R=()=>y.getSelected()?.id??L,z=e=>e&&e.length>0?e:null,B=!1,V=()=>B?z(R()??x.selectedUnitId):null,Ne=()=>{let e=y.getSelected();return e?me(e):!1},H=!1,U=F,W=(e,t)=>{H=e,U=t;let n=e&&V()!==null;y.refs.inputCard.setAttribute(`placeholder`,e&&!n?F:t),n&&!Ne()?y.refs.inputCard.removeAttribute(`disabled`):y.refs.inputCard.setAttribute(`disabled`,``)};W(!1,F),ie(e=>{try{window.localStorage.setItem(l,JSON.stringify(e))}catch{}});try{window.localStorage.setItem(l,JSON.stringify(ae()))}catch{}f||y.refs.composer.setAttribute(`ptt`,``);let Pe=ve({inputCard:y.refs.inputCard,freezer:y.refs.freezer,composer:y.refs.composer,noCamera:f,log:S}),G=new _e(y.refs).callbacks(),K=e=>{if(L=e,!e)return;let t=x.currentUnits().find(t=>t.id===e);if(!t){y.watchUnit(e),W(H,U);return}if(y.getSelected()?.id!==t.id){y.selectScoop(t);return}W(H,U)},q=()=>{B=!1,x.resetSelection()};y.refs.switcher.connection=`disconnected`;let J,Y=null,Fe=()=>(Y||=ye({runtimeMode:u})?.element??null,Y),X=[],Ie=xe({refs:y.refs,getSync:()=>J.currentSync,getTargets:()=>X,hasCdpBrowser:()=>w(h.hasLocalCdpSurface,f),window,log:S});O=le({composerMeta:y.refs.composerMeta,getUnits:()=>x.currentUnits(),setModel:(e,t)=>{x.setModel(e,t).catch(()=>void 0)},getSync:()=>J.currentSync,getSelectedScoopJid:()=>R(),modelPickerEnabled:b.modelPicker,getLockedEffortLevel:()=>localStorage.getItem(`slicc_locked_effort_level`)}),x.subscribeList(()=>O?.onShownUnitChanged()),J=s(x.wrapOptions({joinUrl:g,runtime:d?a:`slicc-standalone`,advertisesCdpTargets:w(h.hasLocalCdpSurface,f),onTargetsUpdated:e=>{X=e,Ie.refresh()},...d||f?{}:{onOAuthPopupRequest:(e,t)=>re(e,t,{getPermissionsSurface:Fe,window})},browserAPI:h.browser,onSnapshot:(e,t)=>{B=!0,K(z(t))},onUserMessage:(e,t,n,r)=>P.addUserMessage(e,r),onOwnUserMessageEcho:(e,t)=>D.noteReceived(t,e),onUserMessageAck:e=>D.noteAck(e),onBiscottoMessageState:(e,t)=>{switch(D.noteLeaderActivity(),t){case`pending`:P.addAssistantMessage(`_Sent for review — waiting for the host._`);break;case`rejected`:P.addAssistantMessage(`_The host did not forward that message._`);break;case`unanswered`:P.addAssistantMessage(`_No one reviewed that message in time, so it was not forwarded._`)}},onStatus:(e,t)=>{D.noteLeaderActivity(t),c(t,R())&&P.setProcessing(e===`processing`)},setChatAgent:e=>{E?.(),E=e.onEvent(e=>{for(let t of T)t(e)})},onSudoApprovalRequest:async t=>{let{openSudoApprovalDialog:n}=await e(async()=>{let{openSudoApprovalDialog:e}=await import(`./wc-sudo-approval-C51zuN6a.js`);return{openSudoApprovalDialog:e}},[]),r=d?h.cherryTransport?.hostOrigin:void 0;return{decision:(await n({kind:t.kind,detail:t.detail,...t.suggestedPattern?{suggestedPattern:t.suggestedPattern}:{},...t.reason?{reason:t.reason}:{}},{allowAlways:!1,signal:t.signal,expiresAt:t.expiresAt,requester:t.requester??t.scoopName??(r?`via ${r}`:void 0)})).decision,attestation:`none`}},onConnectionChange:e=>{y.refs.switcher.connection=e?`connected`:`disconnected`,e||q(),e||D.noteLeaderActivity(),W(e,e?I:F),e||O?.reset(),d&&h.cherryTransport?.emitSliccEventToHost(e?`slicc.follower.ready`:`slicc.follower.disconnected`)},getSelectedScoopJid:()=>R(),onLeaderStalled:e=>{W(!e,e?`The leader is busy — hang on…`:I)},onGaveUp:e=>{S.error(`follower gave up reaching the leader`,{error:e}),y.refs.switcher.connection=`disconnected`,q(),W(!1,`Couldn't reach the leader. Reload to retry.`),O?.reset(),d&&h.cherryTransport?.emitSliccEventToHost(`slicc.follower.disconnected`)},...d?{}:{onJoinUrlChanged:e=>{S.info(`follower joinUrl superseded, persisting replacement`,{newJoinUrl:e}),oe(window.localStorage,e)}},addSprinkle:G.addSprinkle,removeSprinkle:G.removeSprinkle,onOpen:e=>{/^https?:\/\//.test(e)?window.open(e,`_blank`,`noopener`):S.warn(`follower sprinkle open() of a local path is unavailable`,{path:e})},onSelectScoop:e=>he(x.currentUnits(),e,y.getSelected()?.id,e=>y.selectScoop(e),()=>ge(y.refs.inputCard)),onSelectedScoop:()=>pe(x.currentUnits(),y.getSelected()?.id),onScoopsList:(e,t)=>{B=!0;let n=R();!n||!e.some(e=>e.jid===n)?K(z(t)):K(n),y.wiring.refreshScoops?.()},onModelsList:e=>O?.onModelsList(e),onModelState:e=>O?.onModelState(e),...d?{onCherrySliccEvent:(e,t)=>h.cherryTransport?.emitSliccEventToHost(e,t)}:{}}));for(let e of[`save`,`skip`,`erase`])y.refs.freezer.addEventListener(`new-chat-${e}`,()=>{x.forgetLocalSends(),J.currentSync?.requestNewSession(e)});n(`agentic-memory`)&&y.refs.freezer.querySelector(`slicc-freezer-new`)?.setAttribute(`no-skip`,``),y.refs.switcher.addEventListener(`slicc-scoop-select`,e=>{let t=e.detail?.key;t&&(L=t)}),d&&h.cherryTransport&&(h.cherryTransport.onHostEvent=(e,t)=>J.currentSync?.sendCherryHostEvent(e,t),h.cherryTransport.onExportRequest=(e,t,n,r)=>{let a=J.currentSync;if(!a)return Promise.reject(new i(`transfer-aborted`));let o=De(t);return o?a.requestTranscriptExport(o,n,r):Promise.reject(new i(`session-not-found`))});let Z=null;if(!d){let{startFollowerNavigateWatcher:t}=await e(async()=>{let{startFollowerNavigateWatcher:e}=await import(`./follower-navigate-watcher-T4oXQ4JA.js`);return{startFollowerNavigateWatcher:e}},__vite__mapDeps([68,3,69,6,18,1,2,5,19,20,21,70]));Z=t(h.realCdpTransport,()=>J.currentSync)}let Q=!1,$=()=>{y.refs.avatarMenu.items=[{kind:`separator`},...m?[{id:`focus-leader-tab`,label:`Bring leader to front`,icon:`external-link`}]:[],{id:`export-transcript`,label:Q?`Exporting…`:`Export transcript`,icon:`download`,disabled:Q||void 0},{id:`tray-stop`,label:`Disconnect from leader`,icon:`unplug`,danger:!0}]};$(),y.refs.avatarMenu.addEventListener(`slicc-avatar-action`,t=>{let n=t.detail?.id;if(n===`focus-leader-tab`){h.cherryTransport?.emitSliccEventToHost(`slicc.focus-leader-tab`);return}if(n===`tray-stop`){window.dispatchEvent(new CustomEvent(`slicc:tray-leave`,{detail:{workerBaseUrl:null}}));return}if(n===`export-transcript`&&!Q){Q=!0,$();let t=J.currentSync;if(!t){Q=!1,$();return}let n=new AbortController;t.requestTranscriptExport({kind:`active`},n.signal).then(async t=>{let{downloadTranscriptBlob:n}=await e(async()=>{let{downloadTranscriptBlob:e}=await import(`./wc-transcript-export-RedJl591.js`);return{downloadTranscriptBlob:e}},__vite__mapDeps([71,2,53,72,59,1]));await n(t,`slicc-transcript-${new Date().toISOString().slice(0,10)}.zip`)}).catch(e=>{S.error(`follower transcript export failed`,{error:String(e)})}).finally(()=>{Q=!1,$()})}}),window.addEventListener(`slicc:tray-leave`,e=>{be({workerBaseUrl:(e.detail??{}).workerBaseUrl??null},{storage:window.localStorage,stopFollower:()=>{Z?.(),J.stop()},getHref:()=>window.location.href,replaceHref:e=>window.history.replaceState(null,``,e),reload:()=>window.location.reload()})}),S.info(`follower mounted`,{runtimeMode:u,isCherry:d})}export{E as bootFollowerFloat};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/main-D9hbfd93.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/modulepreload-polyfill-P2Xu9kJm.js","assets/core-4boN-CgI.js","assets/compat-BAGLwgqY.js","assets/models-Xc0Gclrk.js","assets/diagnostics-Cag7MsZI.js","assets/preload-helper-Czpn1I53.js","assets/env-api-keys-BXRkymgV.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-DHpsqCCC.js","assets/libesm-BypnjKEL.js","assets/logger-DDBAeTLF.js","assets/feature-flags-DvsApnS-.js","assets/proxied-fetch-Cplb-Tee.js","assets/base64-ELzoYfwP.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-Dm_PZRZx.js","assets/float-topology-C9GjBEv-.js","assets/secrets-bridge-client-CWv2_nw7.js","assets/port-bridge-client-D_erEovW.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-CfWRzPpT.js","assets/providers-Qqp-ZEtv.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-B1oHsbyo.js","assets/bedrock-camp-extra-models-BYrxX19D.js","assets/claude-model-version-DZmbk9E2.js","assets/telemetry-B0sKnLBU.js","assets/tray-follower-status-BAjnN7Ar.js","assets/clipboard-eqmn97SP.js","assets/wc-detached-DK9sSKZr.js","assets/wc-settings-DOYvmcRg.js","assets/wc-shell-B6woD-e6.js","assets/mime-types-D0xZwlMO.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-2DY2vYOc.js","assets/wc-shell-WkeczD9x.css","assets/slugify-BYJ6QVAt.js","assets/theme-engine-ZV7CeqWw.js","assets/theme-CwPIBqJE.js","assets/discovery-preference-D1cUzn0M.js","assets/legacy-styles-B3nS5QUo.js","assets/sync-dialog-BMLUDjd4.js","assets/wc-live-CN_PjeIo.js","assets/sprinkle-renderer-DKK-prCv.js","assets/permissions-surface-registry-CilCRwhh.js","assets/hid-device-registry-B2R-0rNt.js","assets/serial-port-registry-CCqklAEr.js","assets/hid-operations-C97SZtrY.js","assets/usb-device-registry--JwKRTYp.js","assets/usb-operations-v1mGAdRY.js","assets/shared-DSEuryGJ.js","assets/transcript-export-DP-r8eDz.js","assets/session-jsonl-BFDqAk2L.js","assets/src-BWaKqLvQ.js","assets/provider-budget-LCzMPlKv.js","assets/browser-BhTdBqdp.js","assets/tray-leader-BdvK7KWc.js","assets/record-CBv8rWFt.js","assets/descriptor-CuhPBdq8.js","assets/types-CFfBWsH5.js","assets/wc-unit-context-CZro7UrY.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";import{a as t}from"./feature-flags-DvsApnS-.js";import{n}from"./runtime-env-Dlaokqg1.js";import{t as r}from"./tray-follower-status-BAjnN7Ar.js";import{n as i}from"./clipboard-eqmn97SP.js";import{S as a,g as o,o as s}from"./main-D9hbfd93.js";import{r as c}from"./tray-leader-BdvK7KWc.js";import{o as l}from"./record-CBv8rWFt.js";import{_ as u,c as d,s as f,v as p}from"./wc-live-CN_PjeIo.js";import{o as m}from"./wc-unit-context-CZro7UrY.js";function h(e){let t=e.find(e=>e.userAvatar&&e.userName)??e.find(e=>e.userName);return t?.userName?{name:t.userName,avatarUrl:t.userAvatar,provider:t.providerId}:null}function g(e){return e.flatMap(e=>e.models.map(t=>({name:t.name??t.id,provider:e.providerName,id:`${e.providerId}:${t.id}`})))}function _(e,t,n){try{let r=t();e.setAttribute(`model`,r.name??r.id),n&&(e.selectedModelId=n())}catch{}}function v(e,n){let r=[{id:`settings`,label:`Account settings…`,icon:`settings`},{id:`theme`,label:`Theme settings…`,icon:`palette`},...n?[{id:`shortcuts`,label:`Keyboard mode`,icon:`keyboard`}]:[],{id:`export-transcript`,label:`Export transcript`,icon:`download`,disabled:e||void 0}];return t(`experimental-settings`)&&r.push({id:`experimental-settings`,label:`Experimental features…`,icon:`flask-conical`}),r}function y(e,t){return()=>{e.models=g(t()),p()}}function b(e,t,n){return()=>_(e,t,()=>{let e=t();return`${n()}:${e.id}`})}function x(e,t,n){return()=>{let r=h(t()),i=e.avatarMenu.querySelector(`slicc-avatar`),a=e.inputCard.querySelector(`slicc-send-button`);if(r){i?.removeAttribute(`initials`),i?.setAttribute(`name`,r.name),r.avatarUrl&&(i?.setAttribute(`src`,r.avatarUrl),a?.setAttribute(`src`,r.avatarUrl)),e.avatarMenu.user={name:r.name,provider:r.provider};return}i?.removeAttribute(`name`),i?.removeAttribute(`src`),i?.removeAttribute(`initials`),a?.removeAttribute(`src`),e.avatarMenu.user={name:`SLICC`,provider:n?`extension`:`standalone`}}}async function S(t){let{refs:i,client:a,log:o,onExportTranscript:l}=t,{getAllAvailableModels:u,getAccounts:d,getSelectedProvider:f,resolveCurrentModel:p}=await e(async()=>{let{getAllAvailableModels:e,getAccounts:t,getSelectedProvider:n,resolveCurrentModel:r}=await import(`./main-D9hbfd93.js`).then(e=>e.i);return{getAllAvailableModels:e,getAccounts:t,getSelectedProvider:n,resolveCurrentModel:r}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35])),m=y(i.composerMeta,u),h=b(i.composerMeta,p,f);m();let g=null;await N(i,a,t.workUnits,t.getUnits,()=>{let e=g;g=null,e!=null&&i.thread?.dispatchEvent(new CustomEvent(`slicc-error-retry`,{detail:{messageId:e},bubbles:!0,composed:!0}))});let _=n(),S=x(i,d,_);S();let O=()=>{if(_)return[];let e=s(c(),r()),t=[{kind:`separator`}];return e.kind===`leader-offer`?t.push({id:`tray-enable`,label:e.label,icon:`radio`}):e.kind===`leader-copy`?(t.push({id:`tray-copy`,label:`Copy tray join URL`,icon:`link`}),t.push({id:`tray-stop`,label:`Stop multi-browser sync`,icon:`square`,danger:!0})):e.kind===`leader-pending`?(t.push({kind:`caption`,label:e.caption}),t.push({id:`tray-stop`,label:`Stop multi-browser sync`,icon:`square`,danger:!0})):(t.push({kind:`caption`,label:e.caption}),t.push({id:`tray-stop`,label:`Disconnect from leader`,icon:`unplug`,danger:!0})),t},P=new URLSearchParams(window.location.search).has(`detached`),I=()=>_&&!P?[{id:`popout`,label:`Pop out into a tab`,icon:`external-link`}]:[],L=!1,R=()=>{i.avatarMenu.items=[...v(L,!!t.shortcuts),...I(),...O()]};R(),i.avatarMenu.addEventListener(`slicc-avatar-menu-toggle`,e=>{e.detail?.open&&R()});let z=C(o,m,S,()=>a.updateModel());t.shortcuts?.setAction(`accounts`,z);let B=w(o,T(t)),V=E(o);D(i,o),i.avatarMenu.addEventListener(`slicc-avatar-action`,n=>{let r=n.detail?.id;if(r&&k(r,o)){R();return}if(r===`popout`){e(async()=>{let{requestDetachedPopout:e}=await import(`./wc-detached-DK9sSKZr.js`);return{requestDetachedPopout:e}},__vite__mapDeps([36,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35])).then(({requestDetachedPopout:e})=>e()).catch(e=>o.error(`detached popout request failed`,e));return}r===`shortcuts`&&t.shortcuts?.showHelp(),r===`settings`&&z(),r===`theme`&&B(),r===`experimental-settings`&&V(),r===`export-transcript`&&l&&(L=!0,R(),l().finally(()=>{L=!1,R()}))}),i.composerMeta.addEventListener(`add-ai`,z),A(i,z),j({refs:i,log:o,openSettings:z,setPendingReplayMessageId:e=>{g=e}}),await M({refs:i,log:o,openSettings:z,refreshModels:m,applyIdentity:S,client:a}),await F({refreshModels:m,refreshModelPill:h,applyIdentity:S,client:a})}function C(t,n,r,i){return()=>{e(async()=>{let{showWcSettings:e}=await import(`./wc-settings-DOYvmcRg.js`);return{showWcSettings:e}},__vite__mapDeps([37,7,38,1,13,39,16,26,27,3,4,5,6,8,9,10,11,12,14,15,17,18,19,20,21,22,23,24,25,28,29,30,31,32,33,40,41,42,43,44,45,46,47])).then(({showWcSettings:e})=>e(t)).then(()=>{n(),r(),i()}).catch(e=>t.error(`WC settings dialog failed`,e))}}function w(t,n){return()=>{e(async()=>{let{showThemeSettings:e}=await import(`./wc-settings-DOYvmcRg.js`);return{showThemeSettings:e}},__vite__mapDeps([37,7,38,1,13,39,16,26,27,3,4,5,6,8,9,10,11,12,14,15,17,18,19,20,21,22,23,24,25,28,29,30,31,32,33,40,41,42,43,44,45,46,47])).then(({showThemeSettings:e})=>e(t,n?{getTrigger:n.getTrigger,setTrigger:n.setTrigger,persistTrigger:n.persistTrigger}:void 0)).catch(e=>t.error(`Theme settings dialog failed`,e))}}function T(e){let t=e.shortcuts;if(t)return{getTrigger:()=>t.trigger(),setTrigger:e=>t.setTrigger(e),persistTrigger:e.persistKeyboardTrigger}}function E(t){return()=>{e(async()=>{let{showExperimentalSettings:e}=await import(`./wc-settings-DOYvmcRg.js`);return{showExperimentalSettings:e}},__vite__mapDeps([37,7,38,1,13,39,16,26,27,3,4,5,6,8,9,10,11,12,14,15,17,18,19,20,21,22,23,24,25,28,29,30,31,32,33,40,41,42,43,44,45,46,47])).then(({showExperimentalSettings:e})=>e(t)).catch(e=>t.error(`Experimental settings dialog failed`,e))}}function D(e,t){e.floatbar.addEventListener(`slicc-followers-click`,()=>{O(t,{copy:!1,initialTab:`status`})})}function O(t,n){let r=c().session?.joinUrl;r&&(n.copy&&i(r).catch(()=>void 0),e(async()=>{let{loadLegacyDialogStyles:e}=await import(`./legacy-styles-B3nS5QUo.js`);return{loadLegacyDialogStyles:e}},__vite__mapDeps([48,7])).then(({loadLegacyDialogStyles:e})=>e()).then(async()=>{let{showSyncEnabledDialog:t}=await e(async()=>{let{showSyncEnabledDialog:e}=await import(`./sync-dialog-BMLUDjd4.js`);return{showSyncEnabledDialog:e}},__vite__mapDeps([49,26,35,1,42,50,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,38,39,27,28,29,30,31,32,33,40,41,43,51,52,53,54,55,56,57,58,46,45,44,59,60,34,0,2,61,62,63,64,65,66,67,68]));t({joinUrl:r,copied:n.copy,initialTab:n.initialTab,followers:f(),onReset:d()??null})}).catch(e=>t.error(`sync dialog failed`,e)))}function k(e,t){return e===`tray-enable`?(a({locationHref:window.location.href,storage:window.localStorage,envBaseUrl:null,defaultWorkerBaseUrl:o}).then(e=>{if(!e)return t.error(`tray enable: no worker base URL resolvable`);window.dispatchEvent(new CustomEvent(`slicc:tray-leave`,{detail:{workerBaseUrl:e}}))}),!0):e===`tray-copy`?(O(t,{copy:!0}),!0):e===`tray-stop`&&(window.dispatchEvent(new CustomEvent(`slicc:tray-leave`,{detail:{workerBaseUrl:null}})),!0)}function A(e,t){e.thread?.addEventListener(`slicc-error-open-settings`,t),window.addEventListener(`slicc:open-settings-from-panel`,()=>t())}function j(e){let{refs:t,log:n,openSettings:r,setPendingReplayMessageId:i}=e;t.thread?.addEventListener(`slicc-error-change-model`,e=>{i(e.detail?.messageId??null);let a=t.composerMeta,o=a.models;if(Array.isArray(o)&&o.length===0){r();return}try{a.openMenu?.()}catch(e){n.error(`opening composer model picker failed`,e)}})}async function M(t){let{refs:n,log:r,openSettings:i,refreshModels:a,applyIdentity:o,client:s}=t,{getSelectedProvider:c,getProviderConfig:l,reloginOAuthAccount:u}=await e(async()=>{let{getSelectedProvider:e,getProviderConfig:t,reloginOAuthAccount:n}=await import(`./main-D9hbfd93.js`).then(e=>e.i);return{getSelectedProvider:e,getProviderConfig:t,reloginOAuthAccount:n}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]));n.thread?.addEventListener(`slicc-error-login`,()=>{let e=c(),t=e?l(e):null;if(!t||!t.onOAuthLogin&&!t.onOAuthLoginIntercepted){i();return}u(t,()=>{a(),o(),s.updateModel()}).catch(e=>r.error(`re-login from error card failed`,e))})}async function N(t,n,r,i,a){let{resolveModelById:o,resolveCurrentModel:s,setSelectedModelId:c}=await e(async()=>{let{resolveModelById:e,resolveCurrentModel:t,setSelectedModelId:n}=await import(`./main-D9hbfd93.js`).then(e=>e.i);return{resolveModelById:e,resolveCurrentModel:t,setSelectedModelId:n}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35])),l=e=>{let t=e.indexOf(`:`);return t>0?e.slice(t+1):e},u=e=>{try{let n=e?o(l(e)):s();t.composerMeta.toggleAttribute(`no-thinking`,n.reasoning!==!0)}catch{}};u(),t.composerMeta.addEventListener(`model-change`,e=>{let t=e.detail,o=t?.id;o&&t?.source!==`follower`&&(c(o),u(o),P(n,r,i(),o),a?.())})}async function P(e,t,n,r,i=u){let a=l(r);if(!a)return!1;let o=e.selectedScoopJid,s=m(n,o?{id:o}:null);if(!s)return!1;let c=await t.setModel(s.id,a);return c&&i(),c===!0}async function F(t){let{refreshModels:n,refreshModelPill:r,applyIdentity:i,client:a}=t,{getAccounts:o,getProviderConfig:s}=await e(async()=>{let{getAccounts:e,getProviderConfig:t}=await import(`./main-D9hbfd93.js`).then(e=>e.i);return{getAccounts:e,getProviderConfig:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]));window.addEventListener(`slicc:accounts-changed`,()=>{n(),r(),i(),a.updateModel();for(let e of o()){let t=s(e.providerId)?.refreshModels;t&&t().then(()=>{n(),r(),a.updateModel()}).catch(()=>void 0)}})}export{S as wireWcNav};
@@ -1,4 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/quick-llm-B8_chMUu.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/compat-BAGLwgqY.js","assets/models-Xc0Gclrk.js","assets/diagnostics-Cag7MsZI.js","assets/preload-helper-Czpn1I53.js","assets/env-api-keys-BXRkymgV.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-DHpsqCCC.js","assets/logger-DDBAeTLF.js","assets/account-store-CfWRzPpT.js","assets/core-4boN-CgI.js","assets/libesm-BypnjKEL.js","assets/feature-flags-DvsApnS-.js","assets/proxied-fetch-Cplb-Tee.js","assets/base64-ELzoYfwP.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-Dm_PZRZx.js","assets/float-topology-C9GjBEv-.js","assets/secrets-bridge-client-CWv2_nw7.js","assets/port-bridge-client-D_erEovW.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-Qqp-ZEtv.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-B1oHsbyo.js","assets/bedrock-camp-extra-models-BYrxX19D.js","assets/claude-model-version-DZmbk9E2.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-2DY2vYOc.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";import{at as t}from"./wc-shell-B6woD-e6.js";var n=400,r=800,i=`You suggest the user's next prompt in a coding-agent chat. Based on the recent conversation, output ONE concrete follow-up the user might type next. Reply with just the prompt text — no quotes, no preamble, no list. Max 80 characters. If nothing useful comes to mind, reply exactly: What shall we build?`;function a(e,t){return e.length>t?`${e.slice(0,t)}…`:e}function o(e){let i=e.filter(e=>!e.isStreaming&&!e.queued&&e.source!==`lick`),o=[...i].reverse().find(e=>e.role===`assistant`),s=i.filter(e=>e.role===`user`).slice(-3);return!o||s.length===0?null:[...s.map(e=>`[user]: ${a(t(e.content),n)}`),`[assistant]: ${a(o.content,r)}`].join(`
3
-
4
- `)}async function s(t){if(t.currentValue.length>0)return;let n=o(t.messages);if(!n){t.setPlaceholder(t.defaultPlaceholder);return}let r=await(t.quickLabelFn??(await e(async()=>{let{quickLabel:e}=await import(`./quick-llm-B8_chMUu.js`).then(e=>e.n);return{quickLabel:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32]))).quickLabel)({system:i,prompt:`Recent conversation:\n${n}`,maxTokens:40,signal:t.signal});t.signal?.aborted||t.currentValue.length>0||t.setPlaceholder(r&&r.length>0?r:t.defaultPlaceholder)}function c(e,t,n){t===n?(e.removeAttribute(`suggestion`),e.setAttribute(`placeholder`,t)):e.setAttribute(`suggestion`,t)}function l(e){let t=null;return()=>{e.inputCard.hasAttribute(`disabled`)||(t?.abort(),t=new AbortController,s({messages:e.getMessages(),currentValue:e.inputCard.value??``,setPlaceholder:t=>c(e.inputCard,t,e.defaultPlaceholder),defaultPlaceholder:e.defaultPlaceholder,signal:t.signal}).catch(()=>void 0))}}export{l as createPlaceholderRefresher};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/legacy-styles-B3nS5QUo.js","assets/preload-helper-Czpn1I53.js","assets/sprinkle-manager-UKlMkzSm.js","assets/logger-DDBAeTLF.js","assets/feature-flags-DvsApnS-.js","assets/sprinkle-renderer-DKK-prCv.js","assets/wc-shell-B6woD-e6.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/mime-types-D0xZwlMO.js","assets/base64-ELzoYfwP.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-CfWRzPpT.js","assets/core-4boN-CgI.js","assets/compat-BAGLwgqY.js","assets/models-Xc0Gclrk.js","assets/diagnostics-Cag7MsZI.js","assets/env-api-keys-BXRkymgV.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-DHpsqCCC.js","assets/libesm-BypnjKEL.js","assets/proxied-fetch-Cplb-Tee.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-Dm_PZRZx.js","assets/float-topology-C9GjBEv-.js","assets/secrets-bridge-client-CWv2_nw7.js","assets/port-bridge-client-D_erEovW.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-Qqp-ZEtv.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-B1oHsbyo.js","assets/bedrock-camp-extra-models-BYrxX19D.js","assets/claude-model-version-DZmbk9E2.js","assets/telemetry-B0sKnLBU.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-2DY2vYOc.js","assets/wc-shell-WkeczD9x.css","assets/permissions-surface-registry-CilCRwhh.js","assets/hid-device-registry-B2R-0rNt.js","assets/serial-port-registry-CCqklAEr.js","assets/hid-operations-C97SZtrY.js","assets/usb-device-registry--JwKRTYp.js","assets/usb-operations-v1mGAdRY.js","assets/shared-DSEuryGJ.js","assets/theme-CwPIBqJE.js","assets/theme-engine-ZV7CeqWw.js","assets/bounded-walk-BjxKWNqp.js","assets/path-utils-DNJG-zQf.js","assets/sprinkle-instances-B8n7h-oP.js","assets/setup-sprinkle-exec-D89CZGjr.js","assets/wc-live-CN_PjeIo.js","assets/slugify-BYJ6QVAt.js","assets/transcript-export-DP-r8eDz.js","assets/session-jsonl-BFDqAk2L.js","assets/tray-follower-status-BAjnN7Ar.js","assets/main-D9hbfd93.js","assets/modulepreload-polyfill-P2Xu9kJm.js","assets/clipboard-eqmn97SP.js","assets/src-BWaKqLvQ.js","assets/provider-budget-LCzMPlKv.js","assets/browser-BhTdBqdp.js","assets/tray-leader-BdvK7KWc.js","assets/record-CBv8rWFt.js","assets/descriptor-CuhPBdq8.js","assets/types-CFfBWsH5.js","assets/wc-unit-context-CZro7UrY.js","assets/quick-llm-B8_chMUu.js","assets/llm-session-id-bZQs6gBN.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";import{G as t}from"./wc-shell-B6woD-e6.js";import{n}from"./runtime-env-Dlaokqg1.js";import{c as r,n as i,o as a,s as o,t as s}from"./wc-unit-context-CZro7UrY.js";function c(e,t){return e.find(e=>e.folder===t)??e.find(e=>e.folder===`${t}-scoop`)??e.find(e=>e.name===t)}var l=`sprinkle:`,u=`slicc-sprinkle-icons`;function d(){try{let e=localStorage.getItem(u);if(!e)return{};let t=JSON.parse(e);if(typeof t!=`object`||!t)return{};let n={};for(let[e,r]of Object.entries(t))typeof r==`string`&&(n[e]=r);return n}catch{return{}}}function f(e){try{let t=new Set(e),n=Object.fromEntries(Object.entries(d()).filter(([e])=>t.has(e)));localStorage.setItem(u,JSON.stringify(n))}catch{}}function p(e,t){try{localStorage.setItem(u,JSON.stringify({...d(),[e]:t}))}catch{}}function m(e){return typeof e==`string`&&/^[a-z0-9]+(-[a-z0-9]+)*$/.test(e)}function h(e){return`${l}${e}`}function g(e){return e?.startsWith(l)?e.slice(9):null}var _=`chat`,v=new Set([`files`,`term`,`memory`,`monitor`]),y=`right`,b=y;function x(e){return v.has(e)}var S=class{#e;#t=new Map;#n=new Map;#r=new Set;#i=[];#a;constructor(e,t={}){this.#e=e,this.#a=t}#o(){return this.#e.dockTree}applyLayout(e){let t=this.#o();t?.setTree(e);for(let e of this.#i)t?.placeSurface(h(e),b)}placeSurface(e,t){let n=this.#o();if(n&&!this.#a.hostSprinkleSurface)for(let e of n.getSurfaceIds())e!==t&&e!==`chat`&&this.removeSurface(e);if(n?.placeSurface(t,e),!this.#a.hostSprinkleSurface){let e=this.#e.dock;e&&(e.active=t)}x(t)&&this.#a.onToolPanelActivate?.(t)}moveSurfaceToZone(e,t){this.#o()?.moveSurfaceToZone(e,t)}removeSurface(e){this.#o()?.removeSurface(e),x(e)&&this.#a.onToolPanelDeactivate?.(e)}setSurfaceSize(e,t){return this.#o()?.setSurfaceSize(e,t)??!1}seedDockItems(e){let t=d(),n=!1;for(let r of e)this.#t.has(r)||(this.#r.add(r),this.#t.set(r,{id:h(r),icon:t[r]??`sparkles`,label:r,kind:`sprinkle`}),n=!0);n&&this.#p()}dropUnconfirmedSeeds(){let e=!1;for(let t of this.#r)this.#n.has(t)||(this.#t.delete(t),e=!0);this.#r.clear(),e&&this.#p()}callbacks(){return{addSprinkle:(e,t,n,r,i)=>this.#s(e,t,n,i),removeSprinkle:e=>this.#c(e,{keepDockItem:!1}),minimizeSprinkle:e=>this.#l(e),registerSprinkle:(e,t,n)=>this.#u(e,t,n?.icon),unregisterSprinkle:e=>this.#f(e),closeSprinkleContent:e=>this.#c(e,{keepDockItem:!0})}}updateDockIcon(e,t){let n=this.#t.get(e);!n||n.icon===t||(this.#t.set(e,{...n,icon:t}),this.#p())}defaultIconNames(){return[...this.#t.entries()].filter(([,e])=>e.icon===`sparkles`).map(([e])=>e)}isOpen(e){return this.#n.has(e)}#s(e,t,n,r){let i=h(e),a=this.#a.hostSprinkleSurface,o=this.#n.get(e),s=!o;if(o||(o=document.createElement(`slicc-surface`),o.setAttribute(`surface-id`,i),o.setAttribute(`layout`,`flex`),a||this.#e.dockTree?.append(o),this.#n.set(e,o)),o.replaceChildren(n),this.#u(e,t,r?.icon),this.#i.includes(e)||this.#i.push(e),a){s&&a(i,o);return}r?.attention||r?.background||this.placeSurface(b,i)}#c(e,t){let n=h(e);this.#n.get(e)?.remove(),this.#n.delete(e),t.keepDockItem||this.#t.delete(e);let r=this.#i.indexOf(e);if(r>=0&&this.#i.splice(r,1),this.#p(),this.#a.removeSprinkleSurface){this.#a.removeSprinkleSurface(n);return}this.#e.dockTree?.removeSurface(n)}#l(e){this.#e.dock.removeAttribute(`active`),!this.#a.hostSprinkleSurface&&this.removeSurface(h(e))}#u(e,t,n){this.#r.delete(e);let r=this.#d(e,n);this.#t.set(e,{id:h(e),icon:r,label:t,kind:`sprinkle`}),this.#p()}#d(e,t){return m(t)?t:d()[e]??`sparkles`}#f(e){this.#n.has(e)||(this.#t.delete(e),this.#p())}#p(){this.#e.dock.items=[...this.#t.values()]}};function C(e,t){return(n,r)=>{if(!(n.type!==`sprinkle`||!n.sprinkleName)&&!t?.(n)){if(r){e.sendSprinkleLick(n.sprinkleName,n.body,n.targetScoop,{unitJid:r});return}e.sendSprinkleLick(n.sprinkleName,n.body,n.targetScoop)}}}var w=180;function T(e){e.dock.addEventListener(`slicc-dock-longpress`,n=>{let r=n.detail?.id;if(!r||g(r)===null&&!x(r))return;let i=n=>{t(e.frame??e.dockTree,r)||n<=0||requestAnimationFrame(()=>i(n-1))};i(w)})}function E(e,t){return n=>o(e.getUnits(),n,e.getSelected()?.id,t,()=>s(e.refs.inputCard))}async function D(t){let{refs:o,client:s,fs:l,instanceId:u,onAttachImage:d,onToolPanelActivate:p,onToolPanelDeactivate:m,hostSprinkleSurface:h,removeSprinkleSurface:_,log:v}=t,b=new S(o,{onToolPanelActivate:p,onToolPanelDeactivate:m,hostSprinkleSurface:h,removeSprinkleSurface:_}),{loadSprinkleStyles:w}=await e(async()=>{let{loadSprinkleStyles:e}=await import(`./legacy-styles-B3nS5QUo.js`);return{loadSprinkleStyles:e}},__vite__mapDeps([0,1]));await w();let{SprinkleManager:D,readKnownSprinkleNames:k}=await e(async()=>{let{SprinkleManager:e,readKnownSprinkleNames:t}=await import(`./sprinkle-manager-UKlMkzSm.js`);return{SprinkleManager:e,readKnownSprinkleNames:t}},__vite__mapDeps([2,3,4,5,1,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52]));b.seedDockItems(k());let{installSprinkleManagerHandlerOverChannel:A}=await e(async()=>{let{installSprinkleManagerHandlerOverChannel:e}=await import(`./sprinkle-bridge-channel-DTP5IbJB.js`);return{installSprinkleManagerHandlerOverChannel:e}},[]),{createSprinkleExecHandler:j}=await e(async()=>{let{createSprinkleExecHandler:e}=await import(`./setup-sprinkle-exec-D89CZGjr.js`);return{createSprinkleExecHandler:e}},__vite__mapDeps([53,1])),{setDipExecHandler:M}=await e(async()=>{let{setDipExecHandler:e}=await import(`./wc-live-CN_PjeIo.js`).then(e=>e.H);return{setDipExecHandler:e}},__vite__mapDeps([54,7,12,13,14,15,1,16,17,18,19,20,3,4,21,9,22,23,24,25,26,27,28,29,30,6,8,10,11,31,32,33,34,35,36,37,38,39,40,5,41,42,43,44,45,46,47,48,49,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69])),N=n(),P=j(s),F=t.selectScoop,I=new D(l,C(s,t.interceptWelcomeLick),b.callbacks(),()=>{let e=i(t.getUnits());e&&s.stopScoop(e.id)},{...N?{autoOpenBehavior:`attention`}:{},inlineSprinkles:new Set([`welcome`]),execHandler:P,onAttachImage:d??(()=>{}),resolveLickOriginUnitId:e=>c(t.getUnits(),e)?.id,selectedScoopHandler:()=>r(t.getUnits(),t.getSelected()?.id),...F?{selectScoopHandler:E(t,F)}:{}});if(window.__slicc_sprinkleManager=I,M(P),u!==void 0){let e=A(I,{instanceId:u});window.addEventListener(`beforeunload`,()=>e(),{once:!0})}else if(N){let{handleSprinkleOp:t}=await e(async()=>{let{handleSprinkleOp:e}=await import(`./sprinkle-op-handler-DyRlIvAg.js`);return{handleSprinkleOp:e}},[]);s.setSprinkleOpHandler(e=>{let{id:n,op:r,name:i,data:a,target:o,openOptions:s}=e;t(I,n,r,i,a,o,s)})}o.dock.addEventListener(`slicc-dock-select`,e=>{let n=e.detail?.id,r=g(n);if(r){let e=a(t.getUnits(),t.getSelected());(e?I.activate(r,void 0,{lickOriginTarget:e.folder}):I.activate(r)).catch(e=>v.error(`WC sprinkle activate failed`,e));return}n&&x(n)&&b.placeSurface(y,n)}),o.dock.addEventListener(`slicc-dock-collapse`,e=>{let t=e.detail?.id;if(!t)return;if(x(t)){b.removeSurface(t);return}let n=g(t);n&&I.minimize(n)}),T(o);let L=!1,R=async()=>{if(await I.refresh(),I.available().length>0){b.dropUnconfirmedSeeds();let t=I.available().map(e=>e.name),{pruneKnownSprinkleNames:n}=await e(async()=>{let{pruneKnownSprinkleNames:e}=await import(`./sprinkle-manager-UKlMkzSm.js`);return{pruneKnownSprinkleNames:e}},__vite__mapDeps([2,3,4,5,1,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52]));n(t),f(t)}await I.restoreOpenSprinkles().catch(e=>{v.warn(`WC shell: failed to restore open sprinkles`,e)}),L||(L=!0,e(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-B8_chMUu.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([70,7,13,14,15,1,16,17,18,19,3,11,12,20,4,21,9,22,23,24,25,26,27,28,29,30,31,32,33,34,35,71,39])).then(({pickLucideIcon:e})=>O(b,I.available(),t=>e({subject:t}))).catch(()=>void 0).finally(()=>{L=!1}))};return R().catch(e=>v.warn(`WC shell: initial sprinkle resync failed`,e)),{manager:I,zone:b,resync:R}}async function O(e,t,n){let r=new Set(e.defaultIconNames()),i=d();for(let a of t){if(!r.has(a.name)||m(a.icon))continue;let t=i[a.name];if(t){e.updateDockIcon(a.name,t);continue}let o=await n(`"${a.title}" — a SLICC sprinkle panel (${a.name})`);o&&(p(a.name,o),e.updateDockIcon(a.name,o))}}export{_ as CHAT_SURFACE_ID,S as WcSprinkleZone,D as wireWcSprinkles};
@@ -1 +0,0 @@
1
- import{n as e}from"./wc-onboarding-BJrwUBcv.js";export{e as hasOnboardingFinalLickInHistory};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/speak-BOCxjk3p.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/runtime-env-Dlaokqg1.js","assets/speech-assets-bridge-CFYafE89.js","assets/transformers-env-C0z5rcqN.js","assets/wc-shell-B6woD-e6.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/mime-types-D0xZwlMO.js","assets/base64-ELzoYfwP.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-CfWRzPpT.js","assets/core-4boN-CgI.js","assets/compat-BAGLwgqY.js","assets/models-Xc0Gclrk.js","assets/diagnostics-Cag7MsZI.js","assets/env-api-keys-BXRkymgV.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-DHpsqCCC.js","assets/libesm-BypnjKEL.js","assets/feature-flags-DvsApnS-.js","assets/proxied-fetch-Cplb-Tee.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/secret-topology-Dm_PZRZx.js","assets/float-topology-C9GjBEv-.js","assets/secrets-bridge-client-CWv2_nw7.js","assets/port-bridge-client-D_erEovW.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-Qqp-ZEtv.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-B1oHsbyo.js","assets/bedrock-camp-extra-models-BYrxX19D.js","assets/claude-model-version-DZmbk9E2.js","assets/telemetry-B0sKnLBU.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-2DY2vYOc.js","assets/wc-shell-WkeczD9x.css","assets/shared-DSEuryGJ.js","assets/transformers.web-BBJR2ai3.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{a as n,n as r,o as i,r as a,t as o}from"./transformers-env-C0z5rcqN.js";var s=t(`speech:whisper`),c=null,l=`idle`,u=null,d=new Set;function f(){return l}function p(){return u}function m(e){return e&&d.add(e),c||=(l=`loading`,g().then(e=>(l=`ready`,h(),e),e=>{throw l=`failed`,c=null,s.error(`whisper load failed`,e),e})),c}function h(){e(async()=>{let{kokoroWarmup:e}=await import(`./speak-BOCxjk3p.js`);return{kokoroWarmup:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41])).then(({kokoroWarmup:e})=>e()).catch(e=>s.warn(`kokoro warmup (chained after whisper) failed`,e))}async function g(){let{pipeline:t,env:c}=await e(async()=>{let{pipeline:e,env:t}=await import(`./transformers.web-BBJR2ai3.js`);return{pipeline:e,env:t}},__vite__mapDeps([42,7,1]));r(c),await o(n),await a();let l=i(),f=e=>{if(e?.file){if(e.status===`progress`)l.update(e.file,e.loaded??0,e.total??0);else if(e.status===`done`)l.complete(e.file);else return;u=l.snapshot();for(let e of d)e(u)}},p=async e=>await t(`automatic-speech-recognition`,n,{device:e,dtype:e===`webgpu`?`fp32`:`q8`,progress_callback:f}),m=typeof navigator<`u`&&`gpu`in navigator,h;if(m)try{h=await p(`webgpu`)}catch(e){s.warn(`whisper webgpu init failed; retrying on wasm`,e),h=await p(`wasm`)}else h=await p(`wasm`);return s.info(`whisper ready`,{model:n,device:m?`webgpu`:`wasm`}),{async transcribe(e,t){let n=performance.now(),r=await h(e,{chunk_length_s:30,task:`transcribe`,...t?.language?{language:t.language}:{}}),i=Array.isArray(r)?r.map(e=>e.text??``).join(` `):r.text??``;return s.info(`whisper transcribe`,{elapsedMs:Math.round(performance.now()-n),audioSeconds:Math.round(e.length/160)/100,numThreads:c.backends?.onnx?.wasm?.numThreads,device:m?`webgpu`:`wasm`}),i.trim()}}}var _=16e3;async function v(e){if(typeof AudioContext>`u`||typeof OfflineAudioContext>`u`)throw Error(`audio decoding requires a window/page realm (AudioContext unavailable)`);let t=new AudioContext,n;try{n=await t.decodeAudioData(e.slice(0))}finally{await t.close().catch(()=>{})}let r=Math.max(1,Math.ceil(n.duration*_)),i=new OfflineAudioContext(1,r,_),a=i.createBufferSource();return a.buffer=n,a.connect(i.destination),a.start(),(await i.startRendering()).getChannelData(0).slice(0)}var y=t(`speech:whisper-session`),b=2e3,x=500,S=5e3,C=3e4,w=(e,t,n)=>new Promise((r,i)=>{let a=setTimeout(()=>i(Error(`${n} timed out after ${t}ms`)),t);e.then(e=>{clearTimeout(a),r(e)},e=>{clearTimeout(a),i(e)})});function T(e){return e?.split(`-`)[0]?.toLowerCase()||void 0}async function E(e,t){let n;if(t.stream)n=t.stream;else{if(!navigator.mediaDevices?.getUserMedia)throw Error(`microphone capture unavailable in this realm`);n=await navigator.mediaDevices.getUserMedia({audio:t.deviceId&&t.deviceId!=="default"?{deviceId:{exact:t.deviceId}}:!0})}let r=new MediaRecorder(n),i=[],a=T(t.lang),o=!1,s=!1;r.ondataavailable=e=>{e.data.size>0&&i.push(e.data)};let c=async()=>{if(i.length===0)return``;let t=await v(await new Blob(i,{type:r.mimeType||`audio/webm`}).arrayBuffer());return e.transcribe(t,{language:a})},l=Promise.resolve(``),u=()=>{let e=l.catch(()=>``).then(()=>c());return l=e.catch(()=>``),e},d=setInterval(()=>{o||s||i.length===0||(o=!0,u().then(e=>{!s&&e&&t.onPartial?.(e)}).catch(e=>{y.warn(`partial transcription failed`,e)}).finally(()=>{o=!1}))},b),f=()=>{if(clearInterval(d),r.state!==`inactive`)try{r.stop()}catch{}for(let e of n.getTracks())e.stop()},p=()=>new Promise(e=>{if(r.state===`inactive`){e();return}r.onstop=()=>e();try{r.stop()}catch{e()}});return r.start(x),{async stop(){if(s)return``;s=!0,clearInterval(d);try{await w(p(),S,`recorder flush`);for(let e of n.getTracks())e.stop();return await w(u(),C,`transcription`)}catch(e){for(let e of n.getTracks())e.stop();let r=e instanceof Error?e.message:String(e);return t.onError?.(`transcription failed: ${r}`),``}},cancel(){s||(s=!0,f())}}}export{p as a,m as i,T as n,f as o,v as r,E as t};