sliccy 5.59.2 → 5.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/dist/ui/assets/__vite-browser-external-DZX1xHt-.js +1 -0
  2. package/dist/ui/assets/account-store-Bkt-sHjk.js +38 -0
  3. package/dist/ui/assets/account-store-DK2Sc2Br.js +98 -0
  4. package/dist/ui/assets/adobe-CKLRjAln.js +2 -0
  5. package/dist/ui/assets/adobe-D3LfvR1c.js +1 -0
  6. package/dist/ui/assets/adobe-oauth-state-Csa5ciQS.js +1 -0
  7. package/dist/ui/assets/{adobe-oauth-state-BeQ7T3Vk.js → adobe-oauth-state-Vbbfo7gR.js} +1 -1
  8. package/dist/ui/assets/agent-message-to-chat-QyCEPmi8.js +7 -0
  9. package/dist/ui/assets/{anthropic-messages-BP_xL8Mh.js → anthropic-messages-CIsUSIzG.js} +3 -3
  10. package/dist/ui/assets/{anthropic-messages-BwBPoNP0.js → anthropic-messages-_fPAePlR.js} +3 -3
  11. package/dist/ui/assets/{apps-9o4o-h1Z.js → apps-Bf1H6-85.js} +1 -1
  12. package/dist/ui/assets/attachments-CByeG2Ru.js +1 -0
  13. package/dist/ui/assets/{azure-openai-BifOYnRZ.js → azure-openai-CqSF2b4l.js} +1 -1
  14. package/dist/ui/assets/{azure-openai-BvAdt1td.js → azure-openai-LwRRPkRI.js} +1 -1
  15. package/dist/ui/assets/{azure-openai-responses-BXDkTtSH.js → azure-openai-responses-DhzbC_tL.js} +1 -1
  16. package/dist/ui/assets/{azure-openai-responses-De9pJjBR.js → azure-openai-responses-bHfWNMbx.js} +1 -1
  17. package/dist/ui/assets/base64-DpPqYZJF.js +1 -0
  18. package/dist/ui/assets/bedrock-camp-BEi8MYUS.js +1 -0
  19. package/dist/ui/assets/bedrock-camp-CvxD6hHk.js +1 -0
  20. package/dist/ui/assets/bridge-launch-params-jegYRGJ6.js +1 -0
  21. package/dist/ui/assets/{browser-2wdq8OwU.js → browser-COVn7LPD.js} +6 -6
  22. package/dist/ui/assets/{cdp-Bwq6NLAx.js → cdp-7evcrxxP.js} +1 -1
  23. package/dist/ui/assets/cerebras-CEBK7ldR.js +1 -0
  24. package/dist/ui/assets/cerebras-DoDBOChk.js +1 -0
  25. package/dist/ui/assets/client-CpLUc-P8.js +4 -0
  26. package/dist/ui/assets/clipboard-Bd1Wp2vH.js +1 -0
  27. package/dist/ui/assets/compat-DyT25qXb.js +2 -0
  28. package/dist/ui/assets/{completionchunk-B2eUYPOo.js → completionchunk-D8ek1SQ-.js} +1 -1
  29. package/dist/ui/assets/{composer-speech-CgPswGW1.js → composer-speech-BWsih2Nz.js} +1 -1
  30. package/dist/ui/assets/{connect-surface-CnYXozQ2.js → connect-surface-DADZwDbi.js} +1 -1
  31. package/dist/ui/assets/{context-compaction-LYFtS2_f.js → context-compaction-dcYYajWb.js} +6 -6
  32. package/dist/ui/assets/cost-command-Cpg2Em0Q.js +1613 -0
  33. package/dist/ui/assets/db-DjAqlQ2I.js +1 -0
  34. package/dist/ui/assets/db-ysOO0kLr.js +1 -0
  35. package/dist/ui/assets/dictation-priming-DGpw1lUV.js +1 -0
  36. package/dist/ui/assets/dip-BumXS1a9.js +233 -0
  37. package/dist/ui/assets/discovery-preference-DCtfbqw1.js +1 -0
  38. package/dist/ui/assets/dist-0FRaZO2z.js +12 -0
  39. package/dist/ui/assets/{dist-cYpTkQqJ.js → dist-BhEJb2Dl.js} +1 -1
  40. package/dist/ui/assets/{dist-DD6YY4Ks2.js → dist-Bj10RLrf.js} +1 -1
  41. package/dist/ui/assets/{dist-BHXb30bf.js → dist-Bq5i9FMJ.js} +4 -4
  42. package/dist/ui/assets/dist-CJ6ilPeJ.js +18 -0
  43. package/dist/ui/assets/{dist-D58cmC11.js → dist-Cc2eS9kS.js} +1 -1
  44. package/dist/ui/assets/{dist-CC_gNVTb.js → dist-DB-MlM2G.js} +1 -1
  45. package/dist/ui/assets/{dist-Bw2SRiP7.js → dist-DuLHpm2f.js} +1 -1
  46. package/dist/ui/assets/dist-DvjiIrEx.js +23 -0
  47. package/dist/ui/assets/{dist-D1pcMg_U.js → dist-d2CXjMIs.js} +3 -3
  48. package/dist/ui/assets/electron-overlay-route-CjT6k9Df.js +1 -0
  49. package/dist/ui/assets/ensure-speech-assets-D2Pclall.js +1 -0
  50. package/dist/ui/assets/es-CP2z28j0.js +53 -0
  51. package/dist/ui/assets/esp8266-CkAPDkuz.js +1 -0
  52. package/dist/ui/assets/esptool-operations-C0DUkD34.js +13 -0
  53. package/dist/ui/assets/esptool-operations-iCYPdIRA.js +12 -0
  54. package/dist/ui/assets/extension-bridge-transport-DHBo-K6K.js +1 -0
  55. package/dist/ui/assets/{follower-navigate-watcher-CRVUcrQz.js → follower-navigate-watcher-Cn5RjYxg.js} +1 -1
  56. package/dist/ui/assets/{fs-CHAFLJ_u.js → fs-BZ8jCbhy.js} +1 -1
  57. package/dist/ui/assets/fs-Cfytz2TS.js +2 -0
  58. package/dist/ui/assets/git-config-Lj0BT7Oc.js +7 -0
  59. package/dist/ui/assets/github-BYsKWPeV.js +1 -0
  60. package/dist/ui/assets/github-DdPXKMLe.js +2 -0
  61. package/dist/ui/assets/github-copilot-AYSHehC3.js +1 -0
  62. package/dist/ui/assets/github-copilot-aVD8W5Uc.js +2 -0
  63. package/dist/ui/assets/global-db-DvmmimLY.js +1 -0
  64. package/dist/ui/assets/{google-generative-ai-C58ldv83.js → google-generative-ai-CyS9qbzb.js} +1 -1
  65. package/dist/ui/assets/{google-generative-ai-Eq6eGS5h.js → google-generative-ai-DkRyuoBH.js} +1 -1
  66. package/dist/ui/assets/{google-shared-DQbld86Z.js → google-shared-CCJkdw81.js} +2 -2
  67. package/dist/ui/assets/{google-shared-DwCjfFnw.js → google-shared-p5XdfI6c.js} +3 -3
  68. package/dist/ui/assets/{google-vertex-C18Xl3dV.js → google-vertex-Cp9ldPyE.js} +1 -1
  69. package/dist/ui/assets/{google-vertex-CkkAgSFr.js → google-vertex-D7VRnbrL.js} +1 -1
  70. package/dist/ui/assets/{handoff-link-CLvhqfpd.js → handoff-link-CfgH86mb.js} +1 -1
  71. package/dist/ui/assets/hear-D7srqY_7.js +1 -0
  72. package/dist/ui/assets/hear-acxY6mf0.js +1 -0
  73. package/dist/ui/assets/hid-device-registry-DboUgvzI.js +1 -0
  74. package/dist/ui/assets/hid-picker-Bhoh8hxy.js +1 -0
  75. package/dist/ui/assets/installer-D7LGGQGy.js +3 -0
  76. package/dist/ui/assets/js-realm-worker-vnTP6x9C.js +48 -0
  77. package/dist/ui/assets/{json-parse-B51EftGA.js → json-parse-CpLf0aqK.js} +1 -1
  78. package/dist/ui/assets/{json-parse-C7d6hyOc.js → json-parse-rb7sUwcH.js} +1 -1
  79. package/dist/ui/assets/kernel-worker-Dv6ugtws.js +8759 -0
  80. package/dist/ui/assets/{kokoro-C-DxSDte.js → kokoro-CGDCwNNA.js} +2 -2
  81. package/dist/ui/assets/{kokoro-BFFlHn4y.js → kokoro-D3TYeL2z.js} +2 -2
  82. package/dist/ui/assets/{kokoro-engine-uXKuCuNf.js → kokoro-engine-DLKTuHMR.js} +2 -2
  83. package/dist/ui/assets/legacy-api-aliases-BQSsmFIS.js +1 -0
  84. package/dist/ui/assets/legacy-api-aliases-DWJHPSiz.js +1 -0
  85. package/dist/ui/assets/{legacy-styles-kYboUbpI.js → legacy-styles-DcRu2WCJ.js} +1 -1
  86. package/dist/ui/assets/lick-manager-Ct3WOtut.js +2 -0
  87. package/dist/ui/assets/lick-ws-bridge-C_bJMGw6.js +1 -0
  88. package/dist/ui/assets/{lick-ws-bridge-Cbwcxuba.js → lick-ws-bridge-DsRRwfVk.js} +1 -1
  89. package/dist/ui/assets/llm-session-id-ZObKEXzb.js +1 -0
  90. package/dist/ui/assets/{local-llm-Bn1XrCIn.js → local-llm-Ja3mfEao.js} +1 -1
  91. package/dist/ui/assets/local-llm-kMFFJCDT.js +2 -0
  92. package/dist/ui/assets/magick-wasm-B-rybRPb.js +43 -0
  93. package/dist/ui/assets/{main-cherry-d-KDlb8k.js → main-cherry-CGm5knH6.js} +1 -1
  94. package/dist/ui/assets/main-jD3wsTHm.js +22 -0
  95. package/dist/ui/assets/{mime-types-BqLkKWa7.js → mime-types-D7IV6i7k.js} +1 -1
  96. package/dist/ui/assets/mistral-conversations-CLDzxp2F.js +8 -0
  97. package/dist/ui/assets/mistral-conversations-DbKikZnf.js +7 -0
  98. package/dist/ui/assets/{models-ByRUWfA-.js → models-CzSI8IsT.js} +1 -1
  99. package/dist/ui/assets/{mount-vMc2lWlc.js → mount-B1o0Tu6r.js} +1 -1
  100. package/dist/ui/assets/mount-Co7VoiG3.js +2 -0
  101. package/dist/ui/assets/{mount-bridge-client-0Afn2H9Y.js → mount-bridge-client-BVLVI9yX.js} +1 -1
  102. package/dist/ui/assets/mount-recovery-Cwl9npdz.js +2 -0
  103. package/dist/ui/assets/mount-table-store-CTrzlrNn.js +1 -0
  104. package/dist/ui/assets/navigation-watcher-BoJS9hdc.js +1 -0
  105. package/dist/ui/assets/new-session-DvI8DpbC.js +2 -0
  106. package/dist/ui/assets/oauth-bootstrap-LUBU0zw1.js +2 -0
  107. package/dist/ui/assets/{oauth-service-w5HZt7Xx.js → oauth-service-CmM0tZSO.js} +1 -1
  108. package/dist/ui/assets/oauth-service-DSuwOpMz.js +1 -0
  109. package/dist/ui/assets/{openai-BeH6aC_-.js → openai-BxFF4GUL.js} +2 -2
  110. package/dist/ui/assets/{openai-BvKpRLAG.js → openai-CmTnPr9N.js} +2 -2
  111. package/dist/ui/assets/openai-codex-CH1oMijR.js +1 -0
  112. package/dist/ui/assets/openai-codex-Dc2-mj0x.js +1 -0
  113. package/dist/ui/assets/{openai-codex-responses-BDYh8ojD.js → openai-codex-responses-B_k2rCqO.js} +1 -1
  114. package/dist/ui/assets/{openai-codex-responses-C7QnNmC0.js → openai-codex-responses-RviMslSH.js} +1 -1
  115. package/dist/ui/assets/{openai-completions-t-glszMQ.js → openai-completions-CGLtJfv2.js} +1 -1
  116. package/dist/ui/assets/{openai-completions-BnAjXzgN.js → openai-completions-COYKlBqA.js} +1 -1
  117. package/dist/ui/assets/{openai-responses-o9_kr7GP.js → openai-responses-C4mUX6jK.js} +1 -1
  118. package/dist/ui/assets/{openai-responses-BofM6cmY.js → openai-responses-D02gU0ey.js} +1 -1
  119. package/dist/ui/assets/{openai-responses-shared-79gch22X.js → openai-responses-shared-CCTyKL6A.js} +2 -2
  120. package/dist/ui/assets/{openai-responses-shared-DKPwc9Eh.js → openai-responses-shared-bVKJbQt9.js} +2 -2
  121. package/dist/ui/assets/{openrouter-images-PT0FZmkM.js → openrouter-images-BrQDTa3_.js} +1 -1
  122. package/dist/ui/assets/{openrouter-images-D0dgD5eX.js → openrouter-images-DtvjLeGK.js} +1 -1
  123. package/dist/ui/assets/otel-C1NYdIbe.js +3 -0
  124. package/dist/ui/assets/otel-joHgpnL_.js +3 -0
  125. package/dist/ui/assets/page-follower-tray-DFeLlotx.js +5 -0
  126. package/dist/ui/assets/panel-rpc-handlers-BGkBk9Rn.js +2 -0
  127. package/dist/ui/assets/{pdfjs-BdCnB7P8.js → pdfjs-B1saeD0h.js} +5 -5
  128. package/dist/ui/assets/{port-bridge-client-Btb0CfZS.js → port-bridge-client-CdvMlimf.js} +1 -1
  129. package/dist/ui/assets/{port-bridge-client-BtsJUDjt.js → port-bridge-client-CsrXhMWo.js} +1 -1
  130. package/dist/ui/assets/preload-helper-Czpn1I53.js +1 -0
  131. package/dist/ui/assets/process-manager-B5dz0PkO.js +1 -0
  132. package/dist/ui/assets/provider-P5X9hREk.js +1 -0
  133. package/dist/ui/assets/provider-YWxytFh6.js +2 -0
  134. package/dist/ui/assets/provider-settings-DyFcREdE.js +2 -0
  135. package/dist/ui/assets/provider-settings-R1mQ9-PX.js +1 -0
  136. package/dist/ui/assets/provider-store-access-DhwBcPZJ.js +1 -0
  137. package/dist/ui/assets/provider-store-access-GUSmwQsv.js +2 -0
  138. package/dist/ui/assets/providers-BXwvtxEC.js +1 -0
  139. package/dist/ui/assets/providers-C-C_QZBA.js +2 -0
  140. package/dist/ui/assets/proxied-fetch-DETjVL-j.js +2 -0
  141. package/dist/ui/assets/proxied-fetch-sbHa3Tte.js +1 -0
  142. package/dist/ui/assets/{py-realm-worker-C5_FcpVv.js → py-realm-worker-VuYxvTG9.js} +2 -2
  143. package/dist/ui/assets/{pyodide-CVuZVKDU.js → pyodide-BahZNzwn.js} +2 -2
  144. package/dist/ui/assets/{quick-llm-D_B5T-_G.js → quick-llm-CyIluLr1.js} +1 -1
  145. package/dist/ui/assets/{readline-D4m_9EmN.js → readline-0OE_8qoR.js} +1 -1
  146. package/dist/ui/assets/remote-cdp-transport-DOoXIxy3.js +1 -0
  147. package/dist/ui/assets/{remote-terminal-view-BOSJ_t1v.js → remote-terminal-view-C7x7cM1d.js} +2 -2
  148. package/dist/ui/assets/runtime-mode-M-qJL9jF.js +1 -0
  149. package/dist/ui/assets/safe-buffer-C0pSmFaz.js +12 -0
  150. package/dist/ui/assets/script-catalog-BYXhqRAc.js +2 -0
  151. package/dist/ui/assets/{secret-env-CGjJCzwN.js → secret-env-1E2r2H5F.js} +1 -1
  152. package/dist/ui/assets/{secret-topology-_rfIhUjY.js → secret-topology-D2k1IxFk.js} +1 -1
  153. package/dist/ui/assets/{secrets-bridge-client-a5aLwwny.js → secrets-bridge-client-CONYX8PU.js} +1 -1
  154. package/dist/ui/assets/serial-picker-CUd91lje.js +1 -0
  155. package/dist/ui/assets/session-freezer-DHt0Igru.js +21 -0
  156. package/dist/ui/assets/{setup-sprinkle-exec-P2hO-taT.js → setup-sprinkle-exec-DD6jqggr.js} +1 -1
  157. package/dist/ui/assets/setup-sudo-C7mksJ74.js +2 -0
  158. package/dist/ui/assets/{shared-Cq5Q0noX.js → shared-Dwjvg8S5.js} +1 -1
  159. package/dist/ui/assets/shared-X5SFnyK-.js +4 -0
  160. package/dist/ui/assets/skills-B5bs2JnW.js +6 -0
  161. package/dist/ui/assets/{slicc-editor-DKckizoI.js → slicc-editor-BoIEeofq.js} +2 -2
  162. package/dist/ui/assets/{speak-DG2fJcBd.js → speak-WMi1eHMn.js} +3 -3
  163. package/dist/ui/assets/{speak-D1O_Xrcr.js → speak-YEgNUk4w.js} +1 -1
  164. package/dist/ui/assets/{sprinkle-bridge-C0ycYX8f.js → sprinkle-bridge-CmJpELpy.js} +1 -1
  165. package/dist/ui/assets/sprinkle-manager-DXrwoVHS.js +1 -0
  166. package/dist/ui/assets/{sprinkle-renderer-Bk_e6Kbr.js → sprinkle-renderer-B0y9_9py.js} +2 -2
  167. package/dist/ui/assets/{wc-shell-BUIX3UPq.js → src-6TqoULh8.js} +94 -211
  168. package/dist/ui/assets/src-CS5gSDhT.js +1 -0
  169. package/dist/ui/assets/src-Dk1QVJRd.js +1 -0
  170. package/dist/ui/assets/store-fjjsfL92.js +1 -0
  171. package/dist/ui/assets/{sudo-tWv6esvM.js → sudo-B5hEP8ex.js} +1 -1
  172. package/dist/ui/assets/telemetry-C8rZr13D.js +3 -0
  173. package/dist/ui/assets/timestamp-preference-DgrTvVNx.js +2 -0
  174. package/dist/ui/assets/transcript-limits-D0M7bLr9.js +1 -0
  175. package/dist/ui/assets/{transform-messages-ZX8cvJiJ.js → transform-messages-CVIV-EgO.js} +1 -1
  176. package/dist/ui/assets/transform-messages-fFaW-DLG.js +1 -0
  177. package/dist/ui/assets/transformers-env-8w05vuhN.js +1 -0
  178. package/dist/ui/assets/{transformers-env-w-btTDFl.js → transformers-env-sL29_hFb.js} +1 -1
  179. package/dist/ui/assets/{transformers.web-C6PlPLR-.js → transformers.web-CrioJkWG.js} +4 -4
  180. package/dist/ui/assets/{transformers.web-DkJGoARp.js → transformers.web-D6viRW2X.js} +5 -5
  181. package/dist/ui/assets/tray-follower-status-CyJIKXH4.js +1 -0
  182. package/dist/ui/assets/tray-join-url-BIvzbiFR.js +1 -0
  183. package/dist/ui/assets/tray-leader-DcLymd_E.js +1 -0
  184. package/dist/ui/assets/tray-leave-runtime-lJcLlwtm.js +1 -0
  185. package/dist/ui/assets/tray-runtime-config-DJIIJaBR.js +1 -0
  186. package/dist/ui/assets/tray-runtime-config-DlPGhxQs.js +1 -0
  187. package/dist/ui/assets/tray-sync-protocol-CVdiCvfU.js +1 -0
  188. package/dist/ui/assets/upgrade-detection-B6AiyIwx.js +1 -0
  189. package/dist/ui/assets/usb-device-registry-BOGfZXgp.js +1 -0
  190. package/dist/ui/assets/{usb-operations-D-YdmmuG.js → usb-operations-BQbhk96u.js} +1 -1
  191. package/dist/ui/assets/usb-picker-Cl6Cwuv9.js +1 -0
  192. package/dist/ui/assets/voice-reply-DHV6R4En.js +1 -0
  193. package/dist/ui/assets/wc-attach-DU0svqb7.js +13 -0
  194. package/dist/ui/assets/wc-extension-kt7jA5Vw.js +2 -0
  195. package/dist/ui/assets/{wc-float-label-CNeJqRLg.js → wc-float-label-DeQPr3pd.js} +1 -1
  196. package/dist/ui/assets/wc-follower-BFZP3SRo.js +17 -0
  197. package/dist/ui/assets/wc-live-BPDbUJ7I.js +8 -0
  198. package/dist/ui/assets/wc-nav-B0oFpZdj.js +2 -0
  199. package/dist/ui/assets/wc-onboarding-BtEZZu63.js +2 -0
  200. package/dist/ui/assets/{wc-permissions-CAEOwurQ.js → wc-permissions-DW60QZxV.js} +3 -3
  201. package/dist/ui/assets/wc-permissions-providers-DMTDytlu.js +2 -0
  202. package/dist/ui/assets/wc-placeholder-BqQKxg_e.js +4 -0
  203. package/dist/ui/assets/wc-scoop-color-CByZNEJo.js +1 -0
  204. package/dist/ui/assets/wc-settings-B5BrTsqJ.js +51 -0
  205. package/dist/ui/assets/wc-shell-D1rFLiLn.js +117 -0
  206. package/dist/ui/assets/wc-sprinkles-CtVb4mz3.js +2 -0
  207. package/dist/ui/assets/wc-tray-2PpRgp9c.js +2 -0
  208. package/dist/ui/assets/{whisper-engine-BHlrRP_X.js → whisper-engine-C0mT2z02.js} +1 -1
  209. package/dist/ui/assets/whisper-session-DvjyTCj0.js +2 -0
  210. package/dist/ui/assets/xai-grok-CbKylYRb.js +1 -0
  211. package/dist/ui/assets/xai-grok-olZUR6su.js +1 -0
  212. package/dist/ui/assets/xterm-DX7Hb5S-.js +47 -0
  213. package/dist/ui/assets/xterm-U4TA8lIC.js +35 -0
  214. package/dist/ui/index.html +24 -15
  215. package/dist/ui/llm-proxy-sw.js +1 -1
  216. package/dist/ui/packages/webapp/index.html +24 -15
  217. package/package.json +2 -2
  218. package/dist/ui/assets/__vite-browser-external-s4_sx6bN.js +0 -1
  219. package/dist/ui/assets/account-store-B8fkPmC7.js +0 -103
  220. package/dist/ui/assets/account-store-VWDFUG4w.js +0 -38
  221. package/dist/ui/assets/adobe-Cq8jcHMI.js +0 -1
  222. package/dist/ui/assets/adobe-Dd07woZ4.js +0 -2
  223. package/dist/ui/assets/adobe-oauth-state-UjunBhEy.js +0 -1
  224. package/dist/ui/assets/agent-message-to-chat-B5QkdBqr.js +0 -7
  225. package/dist/ui/assets/bedrock-camp-CZFsedRI.js +0 -1
  226. package/dist/ui/assets/bedrock-camp-Czep_VHL.js +0 -1
  227. package/dist/ui/assets/cdp-bridge-CUqQUcaF.js +0 -1
  228. package/dist/ui/assets/cerebras-BvIwtmYU.js +0 -1
  229. package/dist/ui/assets/cerebras-CtDsI5t_.js +0 -1
  230. package/dist/ui/assets/clipboard-DYJRGAtu.js +0 -1
  231. package/dist/ui/assets/compat-FrhC6T45.js +0 -2
  232. package/dist/ui/assets/dip-C3FVgAp9.js +0 -1
  233. package/dist/ui/assets/discovery-preference-ChE43Rww.js +0 -1
  234. package/dist/ui/assets/dist-0c-Ms6jt.js +0 -23
  235. package/dist/ui/assets/dist-C30gQBcj2.js +0 -12
  236. package/dist/ui/assets/dist-ClEUNLR-.js +0 -18
  237. package/dist/ui/assets/ensure-speech-assets-DstqSdfZ.js +0 -1
  238. package/dist/ui/assets/es-kEo2Tmh4.js +0 -53
  239. package/dist/ui/assets/esp8266-DhxGJGHR.js +0 -1
  240. package/dist/ui/assets/esp8266-dt3vHImh.js +0 -1
  241. package/dist/ui/assets/esptool-operations-BBtDOaij.js +0 -12
  242. package/dist/ui/assets/esptool-operations-wGO-l9-a.js +0 -13
  243. package/dist/ui/assets/extension-bridge-transport-Bi9JIuzJ.js +0 -1
  244. package/dist/ui/assets/fs-Bkm8VZTn.js +0 -2
  245. package/dist/ui/assets/github-BeBf_tPt.js +0 -1
  246. package/dist/ui/assets/github-DVGask0m.js +0 -2
  247. package/dist/ui/assets/github-copilot-C_189pyB.js +0 -2
  248. package/dist/ui/assets/github-copilot-D_2n36Iv.js +0 -1
  249. package/dist/ui/assets/hear-B6LfLMgq.js +0 -1
  250. package/dist/ui/assets/hear-tL55Pr9X.js +0 -1
  251. package/dist/ui/assets/hid-device-registry-6w-g8ZpF.js +0 -1
  252. package/dist/ui/assets/hid-picker-Cp7Sp5N-.js +0 -1
  253. package/dist/ui/assets/js-realm-worker-CeYHBMC5.js +0 -48
  254. package/dist/ui/assets/kernel-worker-Yib4X2rK.js +0 -10443
  255. package/dist/ui/assets/lick-ws-bridge-DcIF2ReT.js +0 -1
  256. package/dist/ui/assets/main-CN--RCWy.js +0 -24
  257. package/dist/ui/assets/mistral-conversations-DKqvekSA.js +0 -7
  258. package/dist/ui/assets/mistral-conversations-szVW8BsU.js +0 -8
  259. package/dist/ui/assets/mount-D4hso6oU.js +0 -2
  260. package/dist/ui/assets/mount-id-nJcx05eu.js +0 -1
  261. package/dist/ui/assets/mount-table-store-s20mtVA3.js +0 -1
  262. package/dist/ui/assets/navigation-watcher-DTSw-td6.js +0 -1
  263. package/dist/ui/assets/new-session-Xv5Kw8-N.js +0 -2
  264. package/dist/ui/assets/oauth-bootstrap-C1TvVgVm.js +0 -2
  265. package/dist/ui/assets/oauth-service-Cf0jA8F5.js +0 -1
  266. package/dist/ui/assets/openai-codex-CEstk2ir.js +0 -1
  267. package/dist/ui/assets/openai-codex-wHLeOM3p.js +0 -1
  268. package/dist/ui/assets/otel-BvlmHUjk.js +0 -3
  269. package/dist/ui/assets/otel-CCT7TRJr.js +0 -3
  270. package/dist/ui/assets/page-follower-tray-B6HRGJrV.js +0 -5
  271. package/dist/ui/assets/panel-rpc-handlers-DKYTrToh.js +0 -2
  272. package/dist/ui/assets/preload-helper-CZgWQFsJ.js +0 -1
  273. package/dist/ui/assets/provider-DN6we75z.js +0 -1
  274. package/dist/ui/assets/provider-settings-CrHdjWRY.js +0 -1
  275. package/dist/ui/assets/provider-store-access-24wOseEM.js +0 -1
  276. package/dist/ui/assets/provider-store-access-C92IYCEl.js +0 -1
  277. package/dist/ui/assets/provider-zLIF1UQc.js +0 -2
  278. package/dist/ui/assets/providers-CmWab6F3.js +0 -1
  279. package/dist/ui/assets/providers-D2g-3ix9.js +0 -2
  280. package/dist/ui/assets/proxied-fetch-CQqrhHlW.js +0 -1
  281. package/dist/ui/assets/proxied-fetch-D3wsof0i.js +0 -2
  282. package/dist/ui/assets/remote-cdp-transport-DspFAFy_.js +0 -1
  283. package/dist/ui/assets/serial-picker-bJGym01W.js +0 -1
  284. package/dist/ui/assets/session-freezer-DtJb5_ro.js +0 -1
  285. package/dist/ui/assets/sprinkle-manager-CSCqntix.js +0 -1
  286. package/dist/ui/assets/src-BQoW5KdD.js +0 -1
  287. package/dist/ui/assets/src-BvERX0WZ.js +0 -1
  288. package/dist/ui/assets/store-2nS5H77F.js +0 -1
  289. package/dist/ui/assets/transform-messages-DwI5R8if.js +0 -1
  290. package/dist/ui/assets/transformers-env-D9qkXm3g.js +0 -1
  291. package/dist/ui/assets/tray-leader-CqFDvcNH.js +0 -1
  292. package/dist/ui/assets/tray-leave-runtime-C4sJoGLD.js +0 -1
  293. package/dist/ui/assets/upgrade-detection-Ba_0YKaQ.js +0 -1
  294. package/dist/ui/assets/usb-device-registry-k6vTKonT.js +0 -1
  295. package/dist/ui/assets/usb-picker-DJjZemi7.js +0 -1
  296. package/dist/ui/assets/voice-reply-DQhloSOU.js +0 -1
  297. package/dist/ui/assets/wc-attach-BhQT8ZHR.js +0 -13
  298. package/dist/ui/assets/wc-extension-C4UUKHE1.js +0 -2
  299. package/dist/ui/assets/wc-follower-yEiXLTkQ.js +0 -17
  300. package/dist/ui/assets/wc-live-CVqsJqLB.js +0 -258
  301. package/dist/ui/assets/wc-nav-CIhQdld0.js +0 -2
  302. package/dist/ui/assets/wc-onboarding-ByJ2OTEx.js +0 -2
  303. package/dist/ui/assets/wc-permissions-providers-CbkqRh4J.js +0 -2
  304. package/dist/ui/assets/wc-placeholder-BzfJm5K3.js +0 -4
  305. package/dist/ui/assets/wc-settings-CZ9BR9F3.js +0 -51
  306. package/dist/ui/assets/wc-sprinkles-aeMd0T-B.js +0 -2
  307. package/dist/ui/assets/wc-tray-D34gP9Uw.js +0 -2
  308. package/dist/ui/assets/whisper-session-C8cizjJD.js +0 -2
  309. package/dist/ui/assets/xai-grok-ltyrVlT-.js +0 -1
  310. package/dist/ui/assets/xai-grok-p0W6Xjk5.js +0 -1
  311. package/dist/ui/assets/xterm-DMlKjmUi.js +0 -36
  312. package/dist/ui/assets/xterm-Dwh1I9AE.js +0 -48
@@ -0,0 +1 @@
1
+ const e={SCOOPS:`scoops`,MESSAGES:`messages`,SESSIONS:`sessions`,TASKS:`tasks`,STATE:`state`,WEBHOOKS:`webhooks`,CRONTASKS:`crontasks`};let t=null;function n(t){if(!t.objectStoreNames.contains(e.MESSAGES)){let n=t.createObjectStore(e.MESSAGES,{keyPath:`id`});n.createIndex(`chatJid`,`chatJid`),n.createIndex(`timestamp`,`timestamp`),n.createIndex(`chatJid_timestamp`,[`chatJid`,`timestamp`])}t.objectStoreNames.contains(e.SESSIONS)||t.createObjectStore(e.SESSIONS,{keyPath:`groupFolder`}),t.objectStoreNames.contains(e.TASKS)||t.createObjectStore(e.TASKS,{keyPath:`id`}).createIndex(`groupFolder`,`groupFolder`),t.objectStoreNames.contains(e.STATE)||t.createObjectStore(e.STATE,{keyPath:`key`})}function r(e){let t=e.isMain??!1;return{jid:e.jid,name:e.name,folder:e.folder,trigger:t?void 0:e.trigger||`@${e.folder}`,requiresTrigger:!t&&(e.requiresTrigger??!0),isCone:t,type:t?`cone`:`scoop`,assistantLabel:t?`sliccy`:e.config?.assistantName||e.folder,addedAt:e.addedAt,config:e.config?{systemPromptAppend:e.config.systemPromptAppend,timeout:e.config.timeout,assistantName:e.config.assistantName}:void 0}}function i(t,n){if(n.objectStoreNames.contains(`groups`)){let i=t.target.transaction.objectStore(`groups`).getAll();i.onsuccess=()=>{let t=i.result;n.deleteObjectStore(`groups`);let a=n.createObjectStore(e.SCOOPS,{keyPath:`jid`});a.createIndex(`type`,`type`);for(let e of t)a.put(r(e))};return}n.objectStoreNames.contains(e.SCOOPS)||n.createObjectStore(e.SCOOPS,{keyPath:`jid`}).createIndex(`type`,`type`)}function a(t){t.objectStoreNames.contains(e.WEBHOOKS)||t.createObjectStore(e.WEBHOOKS,{keyPath:`id`}),t.objectStoreNames.contains(e.CRONTASKS)||t.createObjectStore(e.CRONTASKS,{keyPath:`id`})}function o(e){let t=e.target.result,r=e.oldVersion;r<1&&n(t),r<2&&i(e,t),r<3&&a(t)}function s(){if(!t)return null;let n=Object.values(e).every(e=>t.objectStoreNames.contains(e));return t.version===3&&n?t:(t.close(),t=null,null)}function c(e){e.onversionchange=()=>{e.close(),t===e&&(t=null)},e.onclose=()=>{t===e&&(t=null)}}async function l(){return s()||new Promise((e,n)=>{let r=indexedDB.open(`slicc-groups`,3);r.onupgradeneeded=o,r.onsuccess=()=>{let n=r.result;c(n),t=n,e(n)},r.onerror=()=>n(r.error)})}async function u(e,t=`readonly`){return(await l()).transaction(e,t).objectStore(e)}async function d(t){let n=await u(e.SCOOPS,`readwrite`);return new Promise((e,r)=>{let i=n.put(t);i.onsuccess=()=>e(),i.onerror=()=>r(i.error)})}async function f(){let t=await u(e.SCOOPS);return new Promise((e,n)=>{let r=t.getAll();r.onsuccess=()=>{let t={};for(let e of r.result)t[e.jid]=e;e(t)},r.onerror=()=>n(r.error)})}async function p(t){let n=await u(e.SCOOPS,`readwrite`);return new Promise((e,r)=>{let i=n.delete(t);i.onsuccess=()=>e(),i.onerror=()=>r(i.error)})}async function m(){let t=await u(e.MESSAGES,`readwrite`);return new Promise((e,n)=>{let r=t.clear();r.onsuccess=()=>e(),r.onerror=()=>n(r.error)})}async function h(t){let n=(await u(e.MESSAGES,`readwrite`)).index(`chatJid_timestamp`),r=IDBKeyRange.bound([t,``],[t,`￿`],!1,!1);return new Promise((e,t)=>{let i=n.openCursor(r);i.onsuccess=()=>{let t=i.result;if(!t){e();return}t.delete(),t.continue()},i.onerror=()=>t(i.error)})}async function g(t){let n=await u(e.MESSAGES,`readwrite`);return new Promise((e,r)=>{let i=n.put(t);i.onsuccess=()=>e(),i.onerror=()=>r(i.error)})}async function _(t){let n=await u(e.MESSAGES,`readwrite`);return new Promise((e,r)=>{let i=n.delete(t);i.onsuccess=()=>e(),i.onerror=()=>r(i.error)})}async function v(t){let n=(await u(e.MESSAGES)).index(`chatJid_timestamp`),r=IDBKeyRange.bound([t,``],[t,`￿`],!1,!1);return new Promise((e,t)=>{let i=n.getAll(r);i.onsuccess=()=>e(i.result),i.onerror=()=>t(i.error)})}async function y(t,n,r){let i=(await u(e.MESSAGES)).index(`chatJid_timestamp`),a=IDBKeyRange.bound([t,n],[t,`￿`],!0,!1);return new Promise((e,t)=>{let n=i.getAll(a);n.onsuccess=()=>{let t=n.result;r&&(t=t.filter(e=>e.senderName!==r)),e(t)},n.onerror=()=>t(n.error)})}async function b(t){let n=await u(e.TASKS,`readwrite`);return new Promise((e,r)=>{let i=n.put(t);i.onsuccess=()=>e(),i.onerror=()=>r(i.error)})}async function x(t){let n=await u(e.TASKS);return new Promise((e,r)=>{let i=n.get(t);i.onsuccess=()=>e(i.result??null),i.onerror=()=>r(i.error)})}async function S(){let t=await u(e.TASKS);return new Promise((e,n)=>{let r=t.getAll();r.onsuccess=()=>e(r.result),r.onerror=()=>n(r.error)})}async function C(t){let n=await u(e.TASKS,`readwrite`);return new Promise((e,r)=>{let i=n.delete(t);i.onsuccess=()=>e(),i.onerror=()=>r(i.error)})}async function w(t){let n=await u(e.STATE);return new Promise((e,r)=>{let i=n.get(t);i.onsuccess=()=>e(i.result?.value??null),i.onerror=()=>r(i.error)})}async function T(t,n){let r=await u(e.STATE,`readwrite`);return new Promise((e,i)=>{let a=r.put({key:t,value:n});a.onsuccess=()=>e(),a.onerror=()=>i(a.error)})}async function E(){await l()}async function D(t){let n=await u(e.WEBHOOKS,`readwrite`);return new Promise((e,r)=>{let i=n.put(t);i.onsuccess=()=>e(),i.onerror=()=>r(i.error)})}async function O(t){let n=await u(e.WEBHOOKS);return new Promise((e,r)=>{let i=n.get(t);i.onsuccess=()=>e(i.result??null),i.onerror=()=>r(i.error)})}async function k(){try{let t=await u(e.WEBHOOKS);return new Promise((e,n)=>{let r=t.getAll();r.onsuccess=()=>e(r.result),r.onerror=()=>n(r.error)})}catch{return[]}}async function A(t){let n=await u(e.WEBHOOKS,`readwrite`);return new Promise((e,r)=>{let i=n.delete(t);i.onsuccess=()=>e(),i.onerror=()=>r(i.error)})}async function j(t){let n=await u(e.CRONTASKS,`readwrite`);return new Promise((e,r)=>{let i=n.put(t);i.onsuccess=()=>e(),i.onerror=()=>r(i.error)})}async function M(t){let n=await u(e.CRONTASKS);return new Promise((e,r)=>{let i=n.get(t);i.onsuccess=()=>e(i.result??null),i.onerror=()=>r(i.error)})}async function N(){try{let t=await u(e.CRONTASKS);return new Promise((e,n)=>{let r=t.getAll();r.onsuccess=()=>e(r.result),r.onerror=()=>n(r.error)})}catch{return[]}}async function P(t){let n=await u(e.CRONTASKS,`readwrite`);return new Promise((e,r)=>{let i=n.delete(t);i.onsuccess=()=>e(),i.onerror=()=>r(i.error)})}export{D as C,b as S,O as _,p as a,g as b,N as c,k as d,M as f,x as g,w as h,_ as i,f as l,y as m,h as n,C as o,v as p,P as r,A as s,m as t,S as u,E as v,T as w,d as x,j as y};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-aKtaBQYM.js";var t=e({getAllCronTasks:()=>v,getAllWebhooks:()=>_,getState:()=>h,setState:()=>g}),n=`slicc-groups`,r=3,i={SCOOPS:`scoops`,MESSAGES:`messages`,SESSIONS:`sessions`,TASKS:`tasks`,STATE:`state`,WEBHOOKS:`webhooks`,CRONTASKS:`crontasks`},a=null;function o(e){if(!e.objectStoreNames.contains(i.MESSAGES)){let t=e.createObjectStore(i.MESSAGES,{keyPath:`id`});t.createIndex(`chatJid`,`chatJid`),t.createIndex(`timestamp`,`timestamp`),t.createIndex(`chatJid_timestamp`,[`chatJid`,`timestamp`])}e.objectStoreNames.contains(i.SESSIONS)||e.createObjectStore(i.SESSIONS,{keyPath:`groupFolder`}),e.objectStoreNames.contains(i.TASKS)||e.createObjectStore(i.TASKS,{keyPath:`id`}).createIndex(`groupFolder`,`groupFolder`),e.objectStoreNames.contains(i.STATE)||e.createObjectStore(i.STATE,{keyPath:`key`})}function s(e){let t=e.isMain??!1;return{jid:e.jid,name:e.name,folder:e.folder,trigger:t?void 0:e.trigger||`@${e.folder}`,requiresTrigger:!t&&(e.requiresTrigger??!0),isCone:t,type:t?`cone`:`scoop`,assistantLabel:t?`sliccy`:e.config?.assistantName||e.folder,addedAt:e.addedAt,config:e.config?{systemPromptAppend:e.config.systemPromptAppend,timeout:e.config.timeout,assistantName:e.config.assistantName}:void 0}}function c(e,t){if(t.objectStoreNames.contains(`groups`)){let n=e.target.transaction.objectStore(`groups`).getAll();n.onsuccess=()=>{let e=n.result;t.deleteObjectStore(`groups`);let r=t.createObjectStore(i.SCOOPS,{keyPath:`jid`});r.createIndex(`type`,`type`);for(let t of e)r.put(s(t))};return}t.objectStoreNames.contains(i.SCOOPS)||t.createObjectStore(i.SCOOPS,{keyPath:`jid`}).createIndex(`type`,`type`)}function l(e){e.objectStoreNames.contains(i.WEBHOOKS)||e.createObjectStore(i.WEBHOOKS,{keyPath:`id`}),e.objectStoreNames.contains(i.CRONTASKS)||e.createObjectStore(i.CRONTASKS,{keyPath:`id`})}function u(e){let t=e.target.result,n=e.oldVersion;n<1&&o(t),n<2&&c(e,t),n<3&&l(t)}function d(){if(!a)return null;let e=Object.values(i).every(e=>a.objectStoreNames.contains(e));return a.version===r&&e?a:(a.close(),a=null,null)}function f(e){e.onversionchange=()=>{e.close(),a===e&&(a=null)},e.onclose=()=>{a===e&&(a=null)}}async function p(){return d()||new Promise((e,t)=>{let i=indexedDB.open(n,r);i.onupgradeneeded=u,i.onsuccess=()=>{let t=i.result;f(t),a=t,e(t)},i.onerror=()=>t(i.error)})}async function m(e,t=`readonly`){return(await p()).transaction(e,t).objectStore(e)}async function h(e){let t=await m(i.STATE);return new Promise((n,r)=>{let i=t.get(e);i.onsuccess=()=>n(i.result?.value??null),i.onerror=()=>r(i.error)})}async function g(e,t){let n=await m(i.STATE,`readwrite`);return new Promise((r,i)=>{let a=n.put({key:e,value:t});a.onsuccess=()=>r(),a.onerror=()=>i(a.error)})}async function _(){try{let e=await m(i.WEBHOOKS);return new Promise((t,n)=>{let r=e.getAll();r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}catch{return[]}}async function v(){try{let e=await m(i.CRONTASKS);return new Promise((t,n)=>{let r=e.getAll();r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}catch{return[]}}export{h as n,g as r,t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-aKtaBQYM.js";var t=e({applyDictationMarkers:()=>c,consumeDictationFirst:()=>f,parseReplyLang:()=>u,resetDictationPriming:()=>p,stripDictationMarkers:()=>l,stripReplyLangMarker:()=>d}),n=`◁This message has been sent through text to speech, consider possible phonetic alternatives and transcription errors. Future dictated messages will have the 🎙️ emoji appended. Your responses to dictated messages will be read out loud, avoid urls, acronyms, numbers, formatting. Begin every reply with the language you are replying in as a hidden HTML comment, e.g. <!--lang:en--> for English or <!--lang:de--> for German; it stays hidden from the user and selects a matching voice▷`,r=/\uD83C\uDF99\uFE0F?/g,i=/\u25C1[\s\S]*?\u25B7/g,a=/<!--\s*lang:\s*([A-Za-z]{2,3}(?:-[A-Za-z0-9]{1,8})*)\s*-->/i,o=/<!--\s*lang:\s*[A-Za-z]{2,3}(?:-[A-Za-z0-9]{1,8})*\s*-->/gi,s=!0;function c(e,t){let r=e.endsWith(` `)?e:`${e} `;return t?`${r}\uD83C\uDF99\uFE0F${n}`:`${r}\uD83C\uDF99\uFE0F`}function l(e){return e.replace(i,``).replace(r,``).replace(/[ \t]+$/g,``).trimEnd()}function u(e){return a.exec(e)?.[1]}function d(e){return e.replace(o,``)}function f(){return s?(s=!1,!0):!1}function p(){s=!0}export{l as a,u as i,f as n,d as o,t as r,c as t};
@@ -0,0 +1,233 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mount-picker-popup-Bs1o43Z5.js","assets/rolldown-runtime-aKtaBQYM.js","assets/logger-DDBAeTLF.js","assets/picker-popup-BvzmBsGL.js","assets/runtime-env-DH4NDw4t.js","assets/usb-picker-Cl6Cwuv9.js","assets/serial-picker-CUd91lje.js","assets/hid-picker-Bhoh8hxy.js","assets/usb-device-registry-BOGfZXgp.js","assets/serial-port-registry-DsPZvGpT.js","assets/hid-device-registry-DboUgvzI.js"])))=>i.map(i=>d[i]);
2
+ import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./preload-helper-Czpn1I53.js";import{n}from"./runtime-env-DH4NDw4t.js";import{t as r}from"./wc-permissions-registry-Blyunq37.js";import{n as i,r as a}from"./hid-device-registry-DboUgvzI.js";import{a as o,i as s}from"./serial-port-registry-DsPZvGpT.js";import{C as c,D as l,E as u,S as d,_ as f,a as ee,g as te,h as p,k as m,l as h,m as ne,n as re,o as g,s as ie,w as ae,x as oe,y as se}from"./usb-operations-BQbhk96u.js";import{i as ce,r as _}from"./usb-device-registry-BOGfZXgp.js";import{i as v,n as le,r as y}from"./sprinkle-renderer-B0y9_9py.js";import{n as ue}from"./sprinkle-bridge-CmJpELpy.js";import{a as b,n as x,r as S}from"./theme-C8b_iQ_9.js";var C=e({broadcastToDips:()=>R,disposeDips:()=>X,handleDipPickerAction:()=>Z,hydrateDips:()=>Y,mountDip:()=>K,setDipExecHandler:()=>he}),w=n();async function T(e,t){if(t?.aborted)throw new DOMException(`aborted`,`AbortError`);let n=await D(e,!0,t);if(t?.aborted)throw new DOMException(`aborted`,`AbortError`);if(n===null)throw Error(`VFS read failed: ${e}`);return typeof n==`string`?n:new TextDecoder().decode(n)}var E=null;function de(){if(E)return E;if(typeof BroadcastChannel>`u`)return null;try{E=new BroadcastChannel(`preview-vfs`)}catch{return null}return E}async function D(e,t,n){let r=de();if(!r)return null;let i=`dip-${Date.now()}-${Math.random().toString(36).slice(2)}`;return new Promise(a=>{let o=!1,s=()=>{r.removeEventListener(`message`,c),n?.removeEventListener(`abort`,l)},c=e=>{if(!o&&!(e.data?.type!==`preview-vfs-response`||e.data.id!==i)){if(o=!0,s(),e.data.error){a(null);return}a(e.data.content??null)}},l=()=>{o||(o=!0,s(),a(null))};r.addEventListener(`message`,c),n?.addEventListener(`abort`,l),setTimeout(()=>{o||(o=!0,s(),a(null))},5e3),r.postMessage({type:`preview-vfs-read`,id:i,path:e,asText:t})})}var fe=[`/shared/sprinkles/`,`/workspace/skills/sprinkles/`,`/workspace/sprinkles/`],pe=[`/shared/`,`/workspace/skills/sprinkles/`,`/workspace/sprinkles/`];function me(e){return fe.some(t=>e.startsWith(t))}function O(e){return typeof e!=`string`||!e.startsWith(`/`)||e.includes(`..`)?!1:pe.some(t=>e.startsWith(t))}var k=new WeakSet,A=`,
3
+ exec: Object.assign(function(cmd) {
4
+ return _vfsCall('dip-exec', { cmd: cmd }, function(m) { return m.result; });
5
+ }, { spawn: function(argv) {
6
+ return _vfsCall('dip-jsh', { op: 'spawn', args: [argv] }, function(m) { return m.result; });
7
+ } }),
8
+ agent: function(prompt, opts) {
9
+ return _vfsCall('dip-agent', { prompt: prompt, opts: opts || null },
10
+ function(m) { return m.result; });
11
+ }`,j=`,
12
+ fetch: function(url, init) {
13
+ return _vfsCall('dip-jsh', { op: 'fetch', args: [url, init || null] }, function(m) { return m.result; });
14
+ },
15
+ http: { client: function(cfg) {
16
+ function mk(method) { return function(path, opts) { return _vfsCall('dip-jsh', { op: 'http', args: [cfg, method, path, opts || null] }, function(m) { return m.result; }); }; }
17
+ return { get: mk('get'), post: mk('post'), put: mk('put'), patch: mk('patch'), 'delete': mk('delete') };
18
+ } },
19
+ browser: {
20
+ findTab: function(q) { return _vfsCall('dip-jsh', { op: 'browser', args: ['findTab', q] }, function(m) { return m.result; }); },
21
+ ensureTab: function(url, options) { return _vfsCall('dip-jsh', { op: 'browser', args: ['ensureTab', url, options || {}] }, function(m) { return m.result; }); },
22
+ eval: function(tab, code) { return _vfsCall('dip-jsh', { op: 'browser', args: ['eval', tab, code] }, function(m) { return m.result; }); },
23
+ evalAsync: function(tab, code) { return _vfsCall('dip-jsh', { op: 'browser', args: ['evalAsync', tab, code] }, function(m) { return m.result; }); },
24
+ cookie: function(tab, name) { return _vfsCall('dip-jsh', { op: 'browser', args: ['cookie', tab, name] }, function(m) { return m.result; }); },
25
+ localStorage: function(tab, key) { return _vfsCall('dip-jsh', { op: 'browser', args: ['localStorage', tab, key] }, function(m) { return m.result; }); },
26
+ fetch: function(tab, url, opts) { return _vfsCall('dip-jsh', { op: 'browser', args: ['fetch', tab, url, opts || {}] }, function(m) { return m.result; }); }
27
+ },
28
+ fetchToFile: function(url, path) {
29
+ return _vfsCall('dip-jsh', { op: 'fetchToFile', args: [url, path] }, function(m) { return m.result; });
30
+ }`,M=`,
31
+ _device: function(channel, op, args) {
32
+ return _vfsCall('dip-device-op',
33
+ { channel: channel, op: op, args: args || [] },
34
+ function(m) { return m.result; });
35
+ },
36
+ hid: {
37
+ list: function() { return _vfsCall('dip-device-op', { channel: 'hid', op: 'list', args: [] }, function(m) { return m.result; }); },
38
+ request: function(filters) { return _vfsCall('dip-device-op', { channel: 'hid', op: 'request', args: [filters || []] }, function(m) { return m.result; }); },
39
+ open: function(handle) { return _vfsCall('dip-device-op', { channel: 'hid', op: 'open', args: [handle] }, function(m) { return m.result; }).then(function() {}); },
40
+ close: function(handle) { return _vfsCall('dip-device-op', { channel: 'hid', op: 'close', args: [handle] }, function(m) { return m.result; }).then(function() {}); },
41
+ sendReport: function(handle, reportId, data) { return _vfsCall('dip-device-op', { channel: 'hid', op: 'sendReport', args: [handle, reportId, data] }, function(m) { return m.result; }).then(function() {}); },
42
+ on: function(event, cb) { if (event === 'inputreport') _hidInputReportListeners.add(cb); },
43
+ off: function(event, cb) { if (event === 'inputreport') _hidInputReportListeners.delete(cb); }
44
+ },
45
+ serial: {
46
+ list: function() { return _vfsCall('dip-device-op', { channel: 'serial', op: 'list', args: [] }, function(m) { return m.result; }); },
47
+ request: function(filters) { return _vfsCall('dip-device-op', { channel: 'serial', op: 'request', args: [filters || []] }, function(m) { return m.result; }); },
48
+ open: function(handle, options) { return _vfsCall('dip-device-op', { channel: 'serial', op: 'open', args: [handle, options] }, function(m) { return m.result; }).then(function() {}); },
49
+ close: function(handle) { return _vfsCall('dip-device-op', { channel: 'serial', op: 'close', args: [handle] }, function(m) { return m.result; }).then(function() {}); }
50
+ },
51
+ usb: {
52
+ list: function() { return _vfsCall('dip-device-op', { channel: 'usb', op: 'list', args: [] }, function(m) { return m.result; }); },
53
+ request: function(filters) { return _vfsCall('dip-device-op', { channel: 'usb', op: 'request', args: [filters || []] }, function(m) { return m.result; }); },
54
+ open: function(handle) { return _vfsCall('dip-device-op', { channel: 'usb', op: 'open', args: [handle] }, function(m) { return m.result; }).then(function() {}); },
55
+ close: function(handle) { return _vfsCall('dip-device-op', { channel: 'usb', op: 'close', args: [handle] }, function(m) { return m.result; }).then(function() {}); }
56
+ }`;function N(e){return`(function() {
57
+ var _cbId = 0;
58
+ var _callbacks = {};
59
+ var _hidInputReportListeners = new Set();
60
+
61
+ function _vfsCall(type, params, extractResult) {
62
+ return new Promise(function(resolve, reject) {
63
+ var id = ++_cbId;
64
+ _callbacks[id] = function(msg) {
65
+ if (msg.error) reject(new Error(msg.error));
66
+ else resolve(extractResult ? extractResult(msg) : undefined);
67
+ };
68
+ var m = { type: type, id: id };
69
+ if (params) { for (var k in params) m[k] = params[k]; }
70
+ parent.postMessage(m, '*');
71
+ });
72
+ }
73
+
74
+ window.slicc = window.bridge = {
75
+ lick: function(event) {
76
+ var action = typeof event === 'string' ? event : event.action;
77
+ var data = typeof event === 'string' ? undefined : ('data' in event ? event.data : event);
78
+ parent.postMessage({ type: 'dip-lick', action: action, data: data }, '*');
79
+ },
80
+ /* Read-only VFS access. Mirrors the sprinkle bridge so dips can
81
+ check onboarding markers, profiles, etc. without a parent-side
82
+ handshake. */
83
+ readFile: function(path) {
84
+ return _vfsCall('dip-readfile', { path: path }, function(m) { return m.content; });
85
+ },
86
+ exists: function(path) {
87
+ return _vfsCall('dip-exists', { path: path }, function(m) { return m.exists; });
88
+ },
89
+ stat: function(path) {
90
+ return _vfsCall('dip-stat', { path: path }, function(m) { return m.stat; });
91
+ }${e?A:``}${e?j:``}${e?M:``}
92
+ };
93
+ function reportHeight() {
94
+ parent.postMessage({ type: 'dip-height',
95
+ height: document.documentElement.scrollHeight }, '*');
96
+ }
97
+ window.addEventListener('message', function(e) {
98
+ if (!e.data || typeof e.data.type !== 'string') return;
99
+ if (e.data.type === 'slicc-theme') {
100
+ document.documentElement.classList.toggle('theme-light', !!e.data.isLight);
101
+ return;
102
+ }
103
+ /* Pushed device events (currently 'hid:inputreport'). The host
104
+ attaches the underlying listener on slicc.hid.open(handle) for
105
+ this dip; teardown happens automatically on dispose. */
106
+ if (e.data.type === 'dip-device-event' && e.data.channel === 'hid:inputreport') {
107
+ _hidInputReportListeners.forEach(function(cb) {
108
+ try { cb(e.data.payload); } catch(ex) {}
109
+ });
110
+ return;
111
+ }
112
+ /* VFS callback responses target the originating call by id. */
113
+ if (e.data.id && _callbacks[e.data.id]) {
114
+ var cb = _callbacks[e.data.id];
115
+ delete _callbacks[e.data.id];
116
+ cb(e.data);
117
+ return;
118
+ }
119
+ /* Forward any other slicc-* message to in-page listeners via a
120
+ CustomEvent. Dips can opt in with
121
+ window.addEventListener('slicc-message', (ev) => ev.detail). */
122
+ if (e.data.type.indexOf('slicc-') === 0) {
123
+ try {
124
+ document.dispatchEvent(new CustomEvent('slicc-message', { detail: e.data }));
125
+ } catch (ex) {}
126
+ }
127
+ });
128
+ window.addEventListener('load', function() {
129
+ reportHeight();
130
+ new ResizeObserver(reportHeight).observe(document.body);
131
+ });
132
+ /* Support data-action attributes (Tool UI compat) — auto-lick on click.
133
+ Also intercept <a href> clicks and relay to the parent so links open
134
+ despite the iframe sandbox blocking top-level navigation. */
135
+ document.addEventListener('click', function(e) {
136
+ var el = e.target;
137
+ while (el && el !== document.body) {
138
+ if (el.dataset && el.dataset.action) {
139
+ var actionData = el.dataset.actionData;
140
+ if (actionData) { try { actionData = JSON.parse(actionData); } catch(ex) {} }
141
+ /* Picker hint (e.g. data-picker="directory") needs the parent to
142
+ run File System Access API on the click activation chain.
143
+ Forward as a separate message so the parent can run
144
+ showDirectoryPicker, stash the handle in IDB, then dispatch
145
+ the lick with the IDB key. */
146
+ var picker = el.dataset.picker;
147
+ if (picker) {
148
+ parent.postMessage({
149
+ type: 'dip-picker-action',
150
+ action: el.dataset.action,
151
+ data: actionData || null,
152
+ picker: picker,
153
+ }, '*');
154
+ } else {
155
+ window.slicc.lick({ action: el.dataset.action, data: actionData || null });
156
+ }
157
+ e.preventDefault();
158
+ e.stopPropagation();
159
+ return;
160
+ }
161
+ if (el.tagName === 'A' && el.getAttribute('href')) {
162
+ var href = el.getAttribute('href');
163
+ /* Allow in-iframe anchor navigation (#foo). Skip javascript: for safety. */
164
+ if (href.charAt(0) === '#') return;
165
+ if (/^javascript:/i.test(href)) { e.preventDefault(); return; }
166
+ /* Resolve relative URLs against the iframe's base. */
167
+ var resolved;
168
+ try { resolved = new URL(href, document.baseURI).href; } catch(ex) { resolved = href; }
169
+ parent.postMessage({ type: 'dip-open-link', url: resolved }, '*');
170
+ e.preventDefault();
171
+ e.stopPropagation();
172
+ return;
173
+ }
174
+ el = el.parentElement;
175
+ }
176
+ });
177
+ })();`}var P=`html,body{margin:0;padding:0;overflow:hidden;background:transparent;box-sizing:border-box}
178
+ *,*::before,*::after{box-sizing:inherit}
179
+ /* Vertical breathing room around dip content. Horizontal padding is owned
180
+ by the dip's own content (e.g. .sprinkle-action-card__body) so shtml
181
+ widgets that already pad themselves don't end up double-indented. The
182
+ ResizeObserver on document.body reports the post-padding scrollHeight
183
+ correctly, so auto-height continues to work. The .sprinkle-inline rule
184
+ (set on the iframe body) carries 2px of horizontal padding so the 1px
185
+ focus ring (box-shadow:0 0 0 1px on inputs/select below) doesn't get
186
+ clipped at the iframe paint boundary. */
187
+ body{padding:12px 0;font-family:var(--s2-font-family, sans-serif);font-size:13px;color:var(--s2-content-default)}
188
+ .sprinkle-inline{padding:var(--s2-spacing-100) 2px}
189
+ .sprinkle-inline .sprinkle-btn{padding:4px 12px;font-size:12px;height:28px;box-shadow:none}
190
+ .sprinkle-inline .sprinkle-btn:not([class*="sprinkle-btn--"]){background:var(--s2-bg-elevated)}
191
+ .sprinkle-inline .sprinkle-card{box-shadow:none;margin:0}
192
+ .sprinkle-inline .sprinkle-action-card{margin:0;width:100%}
193
+ .sprinkle-inline .sprinkle-action-card .sprinkle-table{width:100%}
194
+ .sprinkle-inline .sprinkle-grid{width:100%}
195
+ input[type="range"]{width:100%;height:4px;-webkit-appearance:none;appearance:none;background:var(--s2-gray-300);border-radius:2px;outline:none;cursor:default}
196
+ input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--s2-accent);cursor:default;border:2px solid var(--s2-bg-base)}
197
+ input[type="range"]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--s2-accent);cursor:default;border:2px solid var(--s2-bg-base)}
198
+ input[type="text"],input[type="number"],textarea{width:100%;padding:7px 12px;font-size:13px;font-family:var(--s2-font-family,sans-serif);color:var(--s2-content-default);background:var(--s2-bg-layer-2);border:1px solid var(--s2-border-subtle,var(--s2-gray-300));border-radius:8px;outline:none;box-sizing:border-box}
199
+ input[type="text"]:focus,input[type="number"]:focus,textarea:focus{border-color:var(--s2-accent);box-shadow:0 0 0 1px var(--s2-accent)}
200
+ input[type="text"]::placeholder,textarea::placeholder{color:var(--s2-content-disabled,var(--s2-gray-400))}
201
+ select{padding:6px 12px;font-size:13px;font-family:var(--s2-font-family,sans-serif);color:var(--s2-content-default);background:var(--s2-bg-layer-2);border:1px solid var(--s2-border-subtle,var(--s2-gray-300));border-radius:8px;outline:none;cursor:default}
202
+ select:focus{border-color:var(--s2-accent);box-shadow:0 0 0 1px var(--s2-accent)}
203
+ button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:28px;padding:4px 12px;border:1px solid var(--s2-border-default,var(--s2-gray-300));border-radius:9999px;background:transparent;color:var(--s2-content-default);font-size:12px;font-weight:700;font-family:var(--s2-font-family,sans-serif);cursor:default;transition:background 130ms ease}
204
+ button:hover{background:color-mix(in srgb,var(--s2-content-default) 6%,transparent)}
205
+ button:disabled{opacity:0.4;pointer-events:none}
206
+ canvas{display:block;width:100%;border-radius:8px}
207
+ mark{background:color-mix(in srgb,var(--s2-accent) 25%,transparent);color:inherit;border-radius:2px;padding:0 2px}
208
+ .c-purple{background:#3C3489;color:#EEEDFE}.c-teal{background:#085041;color:#E1F5EE}
209
+ .c-coral{background:#712B13;color:#FAECE7}.c-pink{background:#72243E;color:#FBEAF0}
210
+ .c-gray{background:#444441;color:#F1EFE8}.c-blue{background:#0C447C;color:#E6F1FB}
211
+ .c-amber{background:#633806;color:#FAEEDA}.c-red{background:#791F1F;color:#FCEBEB}
212
+ .c-green{background:#27500A;color:#EAF3DE}`,F=`(function(){
213
+ window.addEventListener('message', function(e){
214
+ if (!e.data || e.data.type !== 'dip-draft-update') return;
215
+ var content = typeof e.data.content === 'string' ? e.data.content : '';
216
+ document.body.innerHTML = content;
217
+ if (window.lucide && typeof window.lucide.createIcons === 'function') {
218
+ try { window.lucide.createIcons(); } catch(ex){}
219
+ }
220
+ });
221
+ })();`;function I(e,t,n=!1){let r=le(),i=x()?` class="theme-light"`:``,a=t||e.includes(`<slicc-editor`),o=t||e.includes(`<slicc-diff`),s=t?`<script>${F}<\/script>`:``;return`<!DOCTYPE html>
222
+ <html${i}><head>
223
+ <meta charset="utf-8">
224
+ <style>${r}</style>
225
+ <style>${P}</style>
226
+ <script>${N(n&&!t)}<\/script>
227
+ ${s}
228
+ ${a?`<script src="/slicc-editor.js"><\/script>`:``}
229
+ ${o?`<script src="/slicc-diff.js"><\/script>`:``}
230
+ <script src="/lucide-icons.js"><\/script>
231
+ </head>
232
+ <body class="sprinkle-inline">${e}</body></html>`}var L=new Set;function R(e){if(typeof e?.type!=`string`||e.type.indexOf(`slicc-`)!==0)throw Error(`broadcastToDips: payload.type must start with 'slicc-'`);for(let t of L)try{t.postMessage(e,`*`)}catch{}}var z;function he(e){z=e}function B(e){return e.length===0?`''`:`'${e.replace(/'/g,`'\\''`)}'`}function ge(e,t){let n=t?.cwd??`.`,r=t?.allowedCommands??`*`,i=[`agent`];return t?.model&&i.push(`--model`,B(t.model)),t?.thinking&&i.push(`--thinking`,B(t.thinking)),t?.readOnly&&i.push(`--read-only`,B(t.readOnly)),i.push(B(n),B(r),B(e)),i.join(` `)}async function V(e){if(!z)return{stdout:``,stderr:`exec: shell bridge not available
233
+ `,exitCode:127};try{return await z(e)}catch(e){return{stdout:``,stderr:`exec: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async function _e(e,t){let n=await V(ge(e,t));return{stdout:n.stdout||n.stderr,exitCode:n.exitCode}}async function ve(e,t){let n=await ue(V,e,t);if(e===`fetch`){let e=n,t=atob(e.bodyBase64),r=new Uint8Array(t.length);for(let e=0;e<t.length;e++)r[e]=t.charCodeAt(e);return{...e,body:new TextDecoder(`utf-8`).decode(r)}}return n}var H=new WeakMap;function ye(e,t){try{e.postMessage({type:`dip-device-event`,channel:`hid:inputreport`,payload:t},`*`)}catch{}}async function be(e,t){let n=H.get(e);if(n||(n=new Map,H.set(e,n)),n.has(t))return;let r=await d(a(),t,n=>{let r=n.bytes instanceof Uint8Array?n.bytes:new Uint8Array(n.bytes);ye(e,{handle:t,reportId:n.reportId,data:r})});n.set(t,r)}async function xe(e,t){let n=H.get(e);if(!n)return;let r=n.get(t);if(r){n.delete(t);try{await Promise.resolve(r())}catch{}}n.size===0&&H.delete(e)}function U(e){let t=H.get(e);if(t){for(let e of t.values())try{Promise.resolve(e()).catch(()=>{})}catch{}H.delete(e)}}function Se(e){if(e instanceof Uint8Array)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e)){let t=e;return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}if(Array.isArray(e))return new Uint8Array(e);throw Error(`expected Uint8Array, ArrayBuffer, or number[]`)}async function Ce(e,t,n){let r=a();switch(t){case`list`:{let e=i();if(!e)throw Error(`WebHID is unavailable in this browser`);return te(r,e)}case`request`:{let e=i();if(!e)throw Error(`WebHID is unavailable in this browser`);return se(r,e,n[0]??[])}case`info`:return p(r,n[0]);case`open`:{let t=n[0];return await f(r,t),await be(e,t),{ok:!0}}case`close`:{let t=n[0];return await xe(e,t),await ne(r,t),{ok:!0}}case`sendReport`:{let e=n[0],t=n[1],i=Se(n[2]);return await oe(r,e,t,i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength)),{ok:!0}}default:throw Error(`hid: unknown op '${t}'`)}}async function we(e,t){let n=o();switch(e){case`list`:{let e=s();if(!e)throw Error(`Web Serial is unavailable in this browser`);return u(n,e)}case`request`:{let e=s();if(!e)throw Error(`Web Serial is unavailable in this browser`);return m(n,e,t[0]??[])}case`info`:return ae(n,t[0]);case`open`:{let e=t[0];return await l(n,e,t[1]??{baudRate:9600}),{ok:!0}}case`close`:return await c(n,t[0]),{ok:!0};default:throw Error(`serial: unknown op '${e}'`)}}async function Te(e,t){let n=ce();switch(e){case`list`:{let e=_();if(!e)throw Error(`WebUSB is unavailable in this browser`);return g(n,e)}case`request`:{let e=_();if(!e)throw Error(`WebUSB is unavailable in this browser`);return h(n,e,t[0]??[])}case`info`:return ee(n,t[0]);case`open`:return await ie(n,t[0]),{ok:!0};case`close`:return await re(n,t[0]),{ok:!0};default:throw Error(`usb: unknown op '${e}'`)}}async function Ee(e,t,n,r){switch(t){case`hid`:return Ce(e,n,r);case`serial`:return we(n,r);case`usb`:return Te(n,r);default:throw Error(`unknown device channel '${t}'`)}}async function W(e,t){if(!e||typeof t.id!=`number`)return!1;let n=n=>{try{e.postMessage({...n,id:t.id},`*`)}catch{}};if(!k.has(e))return n({type:`dip-device-op-response`,error:`device access not allowed for this dip`}),!0;let r=t.channel;if(r!==`hid`&&r!==`serial`&&r!==`usb`)return n({type:`dip-device-op-response`,error:`unknown device channel '${r}'`}),!0;try{n({type:`dip-device-op-response`,result:await Ee(e,r,typeof t.op==`string`?t.op:``,Array.isArray(t.args)?t.args:[])})}catch(e){n({type:`dip-device-op-response`,error:e instanceof Error?e.message:String(e)})}return!0}async function G(e,t){if(!e||typeof t.id!=`number`)return!1;let n=n=>{try{e.postMessage({...n,id:t.id},`*`)}catch{}};if(!k.has(e))return n({type:`${t.type}-response`,error:`exec not allowed for this dip`}),!0;if(t.type===`dip-exec`)return n({type:`dip-exec-response`,result:await V(typeof t.cmd==`string`?t.cmd:``)}),!0;if(t.type===`dip-agent`)return n({type:`dip-agent-response`,result:await _e(typeof t.prompt==`string`?t.prompt:``,t.opts)}),!0;if(t.type===`dip-jsh`){try{n({type:`dip-jsh-response`,result:await ve(typeof t.op==`string`?t.op:``,Array.isArray(t.args)?t.args:[])})}catch(e){n({type:`dip-jsh-response`,error:e instanceof Error?e.message:String(e)})}return!0}return!1}function K(e,t,n,r=!1){let i=I(t,!1,r);if(w)return Me(e,i,n,r);let a=document.createElement(`iframe`);a.setAttribute(`sandbox`,`allow-scripts allow-same-origin`),a.style.cssText=`width:100%;border:none;overflow:hidden;display:block;`,a.srcdoc=i,e.appendChild(a),a.contentWindow&&(S(a.contentWindow),L.add(a.contentWindow),r&&k.add(a.contentWindow)),a.addEventListener(`load`,()=>{S(a.contentWindow),a.contentWindow&&(L.add(a.contentWindow),r&&k.add(a.contentWindow)),y()&&v(a)},{once:!0});let o=e=>{if(e.source!==a.contentWindow)return;let t=e.data;t?.type&&(t.type===`dip-lick`?n(t.action,t.data):t.type===`dip-height`?a.style.height=t.height+`px`:t.type===`dip-open-link`?J(t.url):t.type===`dip-picker-action`?Z(t,n):t.type===`dip-readfile`||t.type===`dip-exists`||t.type===`dip-stat`?q(a.contentWindow,t):t.type===`dip-exec`||t.type===`dip-agent`||t.type===`dip-jsh`?G(a.contentWindow,t):t.type===`dip-device-op`&&W(a.contentWindow,t))};window.addEventListener(`message`,o);let s=null;if(y()&&typeof IntersectionObserver<`u`){let e=!1,t=new IntersectionObserver(n=>{if(n[n.length-1].isIntersecting){if(e){e=!1;return}t.unobserve(a),v(a,()=>{e=!0,t.observe(a)})}});s=t,t.observe(a)}return{dispose(){s?.disconnect(),window.removeEventListener(`message`,o),b(a.contentWindow),a.contentWindow&&(L.delete(a.contentWindow),k.delete(a.contentWindow),U(a.contentWindow)),a.remove()}}}async function q(e,t){if(!e||typeof t.id!=`number`)return!1;let n=typeof t.path==`string`?t.path:``,r=n=>{try{e.postMessage({...n,id:t.id},`*`)}catch{}};if(!k.has(e))return r({type:`${t.type}-response`,error:`VFS access not allowed for this dip`}),!0;if(!O(n))return r({type:`${t.type}-response`,error:`VFS path not allowed: ${n}`}),!0;if(t.type===`dip-readfile`){let e=await D(n,!0);return e===null?(r({type:`dip-readfile-response`,error:`Read failed`}),!0):(r({type:`dip-readfile-response`,content:typeof e==`string`?e:new TextDecoder().decode(e)}),!0)}if(t.type===`dip-exists`)return r({type:`dip-exists-response`,exists:await D(n,!0)!==null}),!0;if(t.type===`dip-stat`){let e=await D(n,!1);return e===null?(r({type:`dip-stat-response`,error:`Stat failed`}),!0):(r({type:`dip-stat-response`,stat:{isFile:!0,isDirectory:!1,size:typeof e==`string`?e.length:e.byteLength,mtimeMs:0}}),!0)}return!1}function J(e){if(!(typeof e!=`string`||!e)&&/^(https?:|mailto:)/i.test(e))try{window.open(e,`_blank`,`noopener,noreferrer`)}catch{}}function Y(e,t){let n=[],r=e.querySelectorAll(`pre > code.language-shtml`);for(let e of r){let r=e.parentElement,i=e.textContent??``,a=document.createElement(`div`);a.className=`msg__dip`,r.replaceWith(a),n.push(K(a,i,t,!1))}let i=e.querySelectorAll(`img[src$=".shtml"]`);for(let e of i){let r=e.getAttribute(`src`);if(!r)continue;let i=document.createElement(`div`);i.className=`msg__dip`,e.alt&&i.setAttribute(`title`,e.alt),e.replaceWith(i);let a=new AbortController,o=null,s=!1;n.push({dispose(){s=!0,a.abort(),o&&=(o.dispose(),null)}});let c=r.startsWith(`/`),l=typeof navigator<`u`&&!!navigator.serviceWorker?.controller,u=c?`/preview${r}`:r,d=async()=>{if(c&&!l)return T(r,a.signal);let e;try{e=await fetch(u,{signal:a.signal})}catch(e){if(e?.name===`AbortError`)throw e;if(c)return T(r,a.signal);throw e}if(e.ok)return e.text();if(c)return T(r,a.signal);throw Error(`HTTP ${e.status}`)},f=c&&me(r);d().then(e=>{s||!i.isConnected||(o=K(i,e,t,f))}).catch(e=>{s||e?.name===`AbortError`||(i.textContent=`Failed to load dip: ${r}`,i.style.cssText=`padding:8px;font-size:12px;color:var(--s2-negative);font-family:var(--s2-font-mono)`)})}return n}function X(e){for(let t of e)try{t.dispose()}catch{}e.length=0}async function Z(e,t){let n=e.data??null,r=Array.isArray(n?.filters)?n.filters:[];if(w){await De(e.picker,e.action,r,t);return}switch(e.picker){case`directory`:await Oe(e.action,t);return;case`usb-device`:await ke(e.action,r,t);return;case`serial-port`:await Ae(e.action,r,t);return;case`hid-device`:await je(e.action,r,t);return;default:t(e.action,e.data);return}}async function De(e,n,r,i){try{switch(e){case`directory`:{let{openMountPickerPopup:e}=await t(async()=>{let{openMountPickerPopup:e}=await import(`./mount-picker-popup-Bs1o43Z5.js`).then(e=>e.n);return{openMountPickerPopup:e}},__vite__mapDeps([0,1,2,3,4])),r=await e();r.cancelled?i(n,{cancelled:!0}):r.error?i(n,{error:r.error}):r.idbKey?i(n,{handleInIdb:!0,idbKey:r.idbKey,dirName:r.dirName??``}):i(n,{error:`mount picker returned no handle key`});return}case`usb-device`:{let{openUsbPickerPopup:e}=await t(async()=>{let{openUsbPickerPopup:e}=await import(`./usb-picker-Cl6Cwuv9.js`);return{openUsbPickerPopup:e}},__vite__mapDeps([5,3,4])),a=await e(r);`cancelled`in a?i(n,{cancelled:!0}):`error`in a?i(n,{error:a.error}):i(n,{granted:!0,info:a.info});return}case`serial-port`:{let{openSerialPickerPopup:e}=await t(async()=>{let{openSerialPickerPopup:e}=await import(`./serial-picker-CUd91lje.js`);return{openSerialPickerPopup:e}},__vite__mapDeps([6,3,4])),a=await e(r);`cancelled`in a?i(n,{cancelled:!0}):`error`in a?i(n,{error:a.error}):i(n,{granted:!0,info:a.info});return}case`hid-device`:{let{openHidPickerPopup:e}=await t(async()=>{let{openHidPickerPopup:e}=await import(`./hid-picker-Bhoh8hxy.js`);return{openHidPickerPopup:e}},__vite__mapDeps([7,3,4])),a=await e(r);`cancelled`in a?i(n,{cancelled:!0}):`error`in a?i(n,{error:a.error}):i(n,{granted:!0,info:a.info});return}default:i(n,{error:`unknown picker kind: ${e??`(none)`}`});return}}catch(e){i(n,{error:e instanceof Error?e.message:String(e)})}}async function Q(e,t){let n=r();if(!n)return null;let i={current:null},a=t=>{let n=t.detail;n.kind===e&&(i.current=n)};n.addEventListener(`slicc-permission-deny`,a);try{let r=await n.request(e,t);if(r)return{ok:!0,grant:r};let a=i.current;return{ok:!1,reason:a?.reason??`error`,...a?.message?{message:a.message}:{}}}finally{n.removeEventListener(`slicc-permission-deny`,a)}}function $(e,t,n,r){if(t.reason===`cancelled`){r(e,{cancelled:!0});return}if(t.reason===`unavailable`){r(e,{error:n});return}r(e,{error:t.message??`unknown error`})}async function Oe(e,n){let r=await Q(`filesystem`);if(!r){n(e,{error:`File System Access API not available`});return}if(!r.ok){$(e,r,`File System Access API not available`,n);return}let i=r.grant.handle,a=`pendingMount:dip-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;try{let{storePendingHandle:e}=await t(async()=>{let{storePendingHandle:e}=await import(`./mount-picker-popup-Bs1o43Z5.js`).then(e=>e.n);return{storePendingHandle:e}},__vite__mapDeps([0,1,2,3,4]));await e(a,i)}catch(t){n(e,{error:`failed to store directory handle: ${t instanceof Error?t.message:String(t)}`});return}n(e,{handleInIdb:!0,idbKey:a,dirName:i.name})}async function ke(e,n,r){let i=await Q(`usb`,{filters:n});if(!i){r(e,{error:`WebUSB is not available`});return}if(!i.ok){$(e,i,`WebUSB is not available`,r);return}let a=i.grant,{getSharedUsbRegistry:o,deviceToInfo:s}=await t(async()=>{let{getSharedUsbRegistry:e,deviceToInfo:t}=await import(`./usb-device-registry-BOGfZXgp.js`).then(e=>e.a);return{getSharedUsbRegistry:e,deviceToInfo:t}},__vite__mapDeps([8,1])),c=o().register(a.device);r(e,{granted:!0,handle:c,info:s(c,a.device)})}async function Ae(e,n,r){let i=await Q(`serial`,n.length?{filters:n}:void 0);if(!i){r(e,{error:`Web Serial is not available`});return}if(!i.ok){$(e,i,`Web Serial is not available`,r);return}let a=i.grant,o=await t(()=>import(`./serial-port-registry-DsPZvGpT.js`).then(e=>e.o),__vite__mapDeps([9,1])),s=o.getSharedSerialRegistry(),c=s.register(a.port),l=s.get(c);r(e,{granted:!0,handle:c,info:l?o.deviceToInfo(c,l):{handle:c}})}async function je(e,n,r){let i=await Q(`hid`,{filters:n});if(!i){r(e,{error:`WebHID is not available`});return}if(!i.ok){$(e,i,`WebHID is not available`,r);return}let a=i.grant,{getSharedHidRegistry:o,hidDeviceToInfo:s}=await t(async()=>{let{getSharedHidRegistry:e,hidDeviceToInfo:t}=await import(`./hid-device-registry-DboUgvzI.js`).then(e=>e.a);return{getSharedHidRegistry:e,hidDeviceToInfo:t}},__vite__mapDeps([10,1])),c=o(),l=a.devices.map(e=>{let t=c.register(e);return s(t,e)}),u=l[0];r(e,{granted:!0,handle:u.handle,info:u,devices:l})}function Me(e,t,n,r=!1){let i=document.createElement(`iframe`);i.src=chrome.runtime.getURL(`sprinkle-sandbox.html`),i.style.cssText=`width:100%;border:none;overflow:hidden;display:block;`,e.appendChild(i);let a=e=>{if(e.source!==i.contentWindow)return;let t=e.data;t?.type&&(t.type===`dip-lick`?n(t.action,t.data):t.type===`dip-height`?i.style.height=t.height+`px`:t.type===`dip-open-link`?J(t.url):t.type===`dip-readfile`||t.type===`dip-exists`||t.type===`dip-stat`?q(i.contentWindow,t):t.type===`dip-exec`||t.type===`dip-agent`||t.type===`dip-jsh`?G(i.contentWindow,t):t.type===`dip-device-op`?W(i.contentWindow,t):t.type===`dip-picker-action`&&Z(t,n))};return window.addEventListener(`message`,a),i.addEventListener(`load`,()=>{S(i.contentWindow),i.contentWindow&&(L.add(i.contentWindow),r&&k.add(i.contentWindow)),i.contentWindow?.postMessage({type:`dip-render`,srcdoc:t,isLight:x()},`*`)},{once:!0}),{dispose(){window.removeEventListener(`message`,a),b(i.contentWindow),i.contentWindow&&(L.delete(i.contentWindow),k.delete(i.contentWindow),U(i.contentWindow)),i.remove()}}}export{K as a,Y as i,C as n,X as r,R as t};
@@ -0,0 +1 @@
1
+ import{r as e}from"./proxied-fetch-DETjVL-j.js";var t=`slicc_discovery_enabled`,n=`discovery.set-enabled`;function r(){try{return typeof localStorage>`u`||typeof localStorage?.getItem!=`function`||localStorage.getItem(t)!==`false`}catch{return!0}}function i(e){try{typeof localStorage<`u`&&typeof localStorage?.setItem==`function`&&localStorage.setItem(t,String(e))}catch{}a(e)}function a(t){try{let r=e();if(!r)return;let i=globalThis.chrome?.runtime;if(typeof i?.sendMessage!=`function`)return;i.sendMessage(r,{type:n,enabled:t},()=>{globalThis.chrome?.runtime?.lastError})}catch{}}export{i as n,r as t};