sliccy 5.22.0 → 5.23.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 (273) hide show
  1. package/dist/ui/assets/__vite-browser-external-B0uIxSgw.js +1 -0
  2. package/dist/ui/assets/__vite-browser-external-SwrSgYTf.js +1 -0
  3. package/dist/ui/assets/{account-store-DOlleCyl.js → account-store-BPvwufEr.js} +3 -3
  4. package/dist/ui/assets/account-store-DRcHIayv.js +38 -0
  5. package/dist/ui/assets/addon-fit-Crogpbda.js +13 -0
  6. package/dist/ui/assets/addon-fit-DIOBYJe3.js +1 -0
  7. package/dist/ui/assets/{adobe-uTCM-4D4.js → adobe-BQa2f_tZ.js} +2 -2
  8. package/dist/ui/assets/{adobe-BApjrbPj.js → adobe-C1RMD4-d.js} +1 -1
  9. package/dist/ui/assets/{adobe-oauth-state-Dw_mocKc.js → adobe-oauth-state-CblNBQQR.js} +1 -1
  10. package/dist/ui/assets/{agent-message-to-chat-BdRCjeVB.js → agent-message-to-chat-LRySxnvm.js} +1 -1
  11. package/dist/ui/assets/{anthropic-DwYAPtk5.js → anthropic-BOEkIcb-.js} +1 -1
  12. package/dist/ui/assets/{anthropic-UMaEJx-B.js → anthropic-LjoeX6v-.js} +1 -1
  13. package/dist/ui/assets/{apps-BWPFf1Yf.js → apps-CZ4QaYIZ.js} +1 -1
  14. package/dist/ui/assets/{azure-openai-BSJnjcfJ.js → azure-openai-D-59h58z.js} +1 -1
  15. package/dist/ui/assets/{azure-openai-Bn5unC0Z.js → azure-openai-DZghfFcd.js} +1 -1
  16. package/dist/ui/assets/{azure-openai-responses-Bnxym5u-.js → azure-openai-responses-CbJrQGi8.js} +1 -1
  17. package/dist/ui/assets/{azure-openai-responses-Ds4b3a5B.js → azure-openai-responses-DPSrcT4o.js} +1 -1
  18. package/dist/ui/assets/{backend-local-D7FqJaoi.js → backend-local-BgTSBOxM.js} +1 -1
  19. package/dist/ui/assets/bedrock-camp-DjKgax8m.js +1 -0
  20. package/dist/ui/assets/{bedrock-camp-C1lmRgcD.js → bedrock-camp-DlP7CPgV.js} +2 -2
  21. package/dist/ui/assets/{browser-D0vICVpZ.js → browser-2wdq8OwU.js} +5 -5
  22. package/dist/ui/assets/{cdp-5C0rLyuM.js → cdp-D7cRI5-J.js} +1 -1
  23. package/dist/ui/assets/clipboard-DuHpK59o.js +1 -0
  24. package/dist/ui/assets/{composer-speech-DXkl5-5T.js → composer-speech-CzcwBzGA.js} +1 -1
  25. package/dist/ui/assets/{connect-surface-C597ydah.js → connect-surface-RiZUIrxS.js} +1 -1
  26. package/dist/ui/assets/{context-compaction-CFWyOzX1.js → context-compaction-DvlXtgVG.js} +1 -1
  27. package/dist/ui/assets/dip-BFDee3ZP.js +1 -0
  28. package/dist/ui/assets/{dist-jdlcYxrm.js → dist-0c-Ms6jt.js} +1 -1
  29. package/dist/ui/assets/{dist-k2Xmqc09.js → dist-BHXb30bf.js} +2 -2
  30. package/dist/ui/assets/{dist-BBhtjNOt.js → dist-Bw2SRiP7.js} +1 -1
  31. package/dist/ui/assets/dist-C30gQBcj2.js +12 -0
  32. package/dist/ui/assets/{dist-Dnh15m1q.js → dist-CC_gNVTb.js} +1 -1
  33. package/dist/ui/assets/dist-Cn_I6fkq.js +18 -0
  34. package/dist/ui/assets/{dist-DQRYKv91.js → dist-D1pcMg_U.js} +1 -1
  35. package/dist/ui/assets/{dist-CrC-F8vu.js → dist-D58cmC11.js} +1 -1
  36. package/dist/ui/assets/{dist-BmWy99kl.js → dist-D69OmKNn.js} +3 -3
  37. package/dist/ui/assets/{dist-AEf8Bitj2.js → dist-DD6YY4Ks2.js} +1 -1
  38. package/dist/ui/assets/{dist-CziJ8tXT.js → dist-SzMJHiOE.js} +1 -1
  39. package/dist/ui/assets/{ensure-speech-assets-BPhOGGfO.js → ensure-speech-assets-Bax4J0R4.js} +1 -1
  40. package/dist/ui/assets/{es-C8ey2woP.js → es-kEo2Tmh4.js} +4 -4
  41. package/dist/ui/assets/esp32-D9ZurRwV.js +1 -0
  42. package/dist/ui/assets/{esp32c2-CpROmlB0.js → esp32c2-F0yCL7ES.js} +1 -1
  43. package/dist/ui/assets/esp32c3-wVAODszM.js +1 -0
  44. package/dist/ui/assets/{esp32c5-KJSqwo2Q.js → esp32c5-ChTI-uFN.js} +1 -1
  45. package/dist/ui/assets/{esp32c6-BMEnOhZ6.js → esp32c6-IwoGEmKl.js} +1 -1
  46. package/dist/ui/assets/{esp32c61-sRp43nbI.js → esp32c61-BJScMw70.js} +1 -1
  47. package/dist/ui/assets/{esp32h2-BKv-WORi.js → esp32h2-YosZEx9u.js} +1 -1
  48. package/dist/ui/assets/{esp32p4-g1tFG0sh.js → esp32p4-BSe822vW.js} +1 -1
  49. package/dist/ui/assets/{esp32s2-BE2gO68i.js → esp32s2-Dhlhu16A.js} +1 -1
  50. package/dist/ui/assets/{esp32s3-CjMu3q4c.js → esp32s3-PqxbnxPZ.js} +1 -1
  51. package/dist/ui/assets/esp8266-CgqhR4Wc.js +1 -0
  52. package/dist/ui/assets/esp8266-CuMaVNVI.js +1 -0
  53. package/dist/ui/assets/{esptool-operations-wnHF1cOB.js → esptool-operations-CNxPdlH_.js} +2 -2
  54. package/dist/ui/assets/esptool-operations-KWVZgO7d.js +12 -0
  55. package/dist/ui/assets/{follower-navigate-watcher-CnHWEu_l.js → follower-navigate-watcher-quUh7-CS.js} +1 -1
  56. package/dist/ui/assets/fs-D6GWcrVb.js +1 -0
  57. package/dist/ui/assets/{fs-DGzEyyjW.js → fs-njSrzhNh.js} +2 -2
  58. package/dist/ui/assets/{github-DrBasfDl.js → github-C5iKeyIZ.js} +2 -2
  59. package/dist/ui/assets/{github-CrEpWTT4.js → github-CY1vTcwt.js} +1 -1
  60. package/dist/ui/assets/{github-copilot-fQiOd3tX.js → github-copilot-BkzVAtWq.js} +1 -1
  61. package/dist/ui/assets/{github-copilot-CYUdwY7c.js → github-copilot-C_XDJI-F.js} +2 -2
  62. package/dist/ui/assets/{google-CEOynCO5.js → google-C3U0TK_l.js} +1 -1
  63. package/dist/ui/assets/{google-CSaY-DQE.js → google-DPvIPcfE.js} +1 -1
  64. package/dist/ui/assets/google-shared-CFmFmYdk.js +11 -0
  65. package/dist/ui/assets/{google-shared-RiqqHuiz.js → google-shared-CwjAeP6N.js} +1 -1
  66. package/dist/ui/assets/{google-vertex-CBHKHWKe.js → google-vertex-BbeV3aSP.js} +1 -1
  67. package/dist/ui/assets/{google-vertex-C7BX8ATF.js → google-vertex-CEGsokz8.js} +1 -1
  68. package/dist/ui/assets/{handoff-link-ywwq4k0t.js → handoff-link-w8LYa3Ua.js} +1 -1
  69. package/dist/ui/assets/{hear-DH3US_c_.js → hear--VyWD7WJ.js} +1 -1
  70. package/dist/ui/assets/{hear-DcjeM2tc.js → hear-DMzpXyvS.js} +1 -1
  71. package/dist/ui/assets/hid-device-registry-6w-g8ZpF.js +1 -0
  72. package/dist/ui/assets/hid-picker-CE6gGmQt.js +1 -0
  73. package/dist/ui/assets/icons-C5g936Qd.js +1 -0
  74. package/dist/ui/assets/{index-BeMnZBAU.js → index-AMF5XZgS.js} +72 -71
  75. package/dist/ui/assets/intercepted-oauth-CaCw-rJ5.js +1 -0
  76. package/dist/ui/assets/js-realm-worker-BYZQ59hJ.js +49 -0
  77. package/dist/ui/assets/json-parse-B51EftGA.js +3 -0
  78. package/dist/ui/assets/json-parse-C7d6hyOc.js +3 -0
  79. package/dist/ui/assets/{kernel-worker--emmdYcK.js → kernel-worker-BuLAKxNE.js} +1237 -837
  80. package/dist/ui/assets/kokoro-BFFlHn4y.js +4 -0
  81. package/dist/ui/assets/kokoro-C-DxSDte.js +4 -0
  82. package/dist/ui/assets/{kokoro-engine-D6CvO4ll.js → kokoro-engine-CVpfUNNb.js} +2 -2
  83. package/dist/ui/assets/{legacy-styles-4PP74ISo.js → legacy-styles-CF6h7ytf.js} +1 -1
  84. package/dist/ui/assets/{lick-ws-bridge-BW2oth5z.js → lick-ws-bridge--Vksc7F9.js} +1 -1
  85. package/dist/ui/assets/{lick-ws-bridge-ldh3QesL.js → lick-ws-bridge-DAzGsuBg.js} +1 -1
  86. package/dist/ui/assets/llm-session-id-bZQs6gBN.js +1 -0
  87. package/dist/ui/assets/{local-llm-B-K_aJrM.js → local-llm-B3sNRJii.js} +1 -1
  88. package/dist/ui/assets/{main-ONpvMnyR.js → main-BME4pJJo.js} +4 -4
  89. package/dist/ui/assets/{main-cherry-NiJ4PeFm.js → main-cherry-DkK6hE90.js} +1 -1
  90. package/dist/ui/assets/mistral-CLF3Mo4W.js +46 -0
  91. package/dist/ui/assets/mistral-DkJAVbOW.js +46 -0
  92. package/dist/ui/assets/mount-Bix58hlG.js +1 -0
  93. package/dist/ui/assets/{mount-DcGhI7cC.js → mount-CW5miKSN.js} +2 -2
  94. package/dist/ui/assets/mount-bridge-client-DnDk55XZ.js +2 -0
  95. package/dist/ui/assets/mount-picker-popup-Cw_D7c_n.js +1 -0
  96. package/dist/ui/assets/mount-table-store-CfQUN_2R.js +1 -0
  97. package/dist/ui/assets/mount-table-store-s20mtVA3.js +1 -0
  98. package/dist/ui/assets/{navigation-watcher-BxAAD5To.js → navigation-watcher-C2s0i0h4.js} +1 -1
  99. package/dist/ui/assets/{new-session-CnM_DXhJ.js → new-session-CS1WEhLm.js} +2 -2
  100. package/dist/ui/assets/{oauth-bootstrap-BZCLo8I2.js → oauth-bootstrap-B2wuItHI.js} +2 -2
  101. package/dist/ui/assets/{oauth-service-D-lmxdpH.js → oauth-service-R7EZswi4.js} +1 -1
  102. package/dist/ui/assets/{oauth-service-ahaKd8Mt.js → oauth-service-ySAsf2gs.js} +1 -1
  103. package/dist/ui/assets/{onboarding-orchestrator-CADSztcp.js → onboarding-orchestrator-cZ36aqC6.js} +1 -1
  104. package/dist/ui/assets/{openai-Cn5LRPCm.js → openai-BeH6aC_-.js} +1 -1
  105. package/dist/ui/assets/{openai-i4HWKCeW.js → openai-BvKpRLAG.js} +1 -1
  106. package/dist/ui/assets/{openai-codex-CceLJ6J-.js → openai-codex-BnYyNqXj.js} +1 -1
  107. package/dist/ui/assets/{openai-codex-BfTcuFL3.js → openai-codex-D_k1NXCs.js} +1 -1
  108. package/dist/ui/assets/{openai-codex-responses-Cq5XDqVc.js → openai-codex-responses-B2oZ1hgB.js} +1 -1
  109. package/dist/ui/assets/{openai-codex-responses-7JN1dUxK.js → openai-codex-responses-Dumyd9t2.js} +1 -1
  110. package/dist/ui/assets/{openai-completions-DLI0t_lj.js → openai-completions-B2n4Op2S.js} +1 -1
  111. package/dist/ui/assets/openai-completions-aHU8w14d.js +5 -0
  112. package/dist/ui/assets/{openai-responses-ANbRIlpa.js → openai-responses-4ryIAXQS.js} +1 -1
  113. package/dist/ui/assets/{openai-responses-nczmKECx.js → openai-responses-BurVahs3.js} +1 -1
  114. package/dist/ui/assets/{openai-responses-shared-CM2vkuNI.js → openai-responses-shared-BebU8o_f.js} +1 -1
  115. package/dist/ui/assets/{openai-responses-shared-9YVaeX5D.js → openai-responses-shared-D9O9OCYB.js} +1 -1
  116. package/dist/ui/assets/{openrouter-Cy2dLX1Z.js → openrouter-B1ruTb6k.js} +1 -1
  117. package/dist/ui/assets/{openrouter-QETwrep8.js → openrouter-XmffhsNH.js} +1 -1
  118. package/dist/ui/assets/page-follower-tray-CKvoa8Vc.js +5 -0
  119. package/dist/ui/assets/panel-rpc-CjFVE0nK.js +1 -0
  120. package/dist/ui/assets/panel-rpc-DmJSNs0I.js +1 -0
  121. package/dist/ui/assets/panel-rpc-handlers-B-gE3pP7.js +2 -0
  122. package/dist/ui/assets/{pdfjs-C3ks1z_T.js → pdfjs-BdCnB7P8.js} +7 -7
  123. package/dist/ui/assets/preload-helper-CZgWQFsJ.js +1 -0
  124. package/dist/ui/assets/{provider-eCpA8_Iv.js → provider-DO4PGsF_.js} +2 -2
  125. package/dist/ui/assets/{provider-B3fKSgvd.js → provider-lR1ovrWJ.js} +1 -1
  126. package/dist/ui/assets/provider-store-access-4kR4SrNf.js +1 -0
  127. package/dist/ui/assets/provider-store-access-Clj85PSW.js +1 -0
  128. package/dist/ui/assets/providers-CChuPgRN.js +1 -0
  129. package/dist/ui/assets/providers-lNcU6L-a.js +2 -0
  130. package/dist/ui/assets/proxied-fetch-DzLglfG5.js +2 -0
  131. package/dist/ui/assets/proxied-fetch-R_Zw2ZFI.js +1 -0
  132. package/dist/ui/assets/py-realm-worker-Cr26Gsx8.js +244 -0
  133. package/dist/ui/assets/{pyodide-CPgzyJWn.js → pyodide-CHuPF4e3.js} +2 -2
  134. package/dist/ui/assets/{pyodide-BFyW4kyI.js → pyodide-Dp0v7U2K.js} +2 -2
  135. package/dist/ui/assets/quick-llm-BcXxSY4e.js +1 -0
  136. package/dist/ui/assets/remote-cache-D59F5FOx.js +1 -0
  137. package/dist/ui/assets/remote-cdp-transport-DTCu2BgA.js +1 -0
  138. package/dist/ui/assets/{remote-terminal-view-DIEOCe9M.js → remote-terminal-view-B_2LHY8s.js} +1 -1
  139. package/dist/ui/assets/{secret-env-Bs2du0RF.js → secret-env-guT2rdYI.js} +1 -1
  140. package/dist/ui/assets/{secret-topology-Bp0wH2ni.js → secret-topology-CC_yKaqL.js} +1 -1
  141. package/dist/ui/assets/secrets-bridge-client-C3K9ItX4.js +2 -0
  142. package/dist/ui/assets/serial-picker-1VVNQI8D.js +1 -0
  143. package/dist/ui/assets/serial-port-registry-DsPZvGpT.js +1 -0
  144. package/dist/ui/assets/session-freezer-CgXtJVLu.js +1 -0
  145. package/dist/ui/assets/session-store-DAM8GRJ0.js +1 -0
  146. package/dist/ui/assets/{setup-sprinkle-exec-C7SBZY7y.js → setup-sprinkle-exec-P2hO-taT.js} +1 -1
  147. package/dist/ui/assets/shared-CrHp2zdc.js +1 -0
  148. package/dist/ui/assets/{slicc-editor-BdfBeQCF.js → slicc-editor-DKckizoI.js} +2 -2
  149. package/dist/ui/assets/{speak-CmXyuska.js → speak-B0KXFDjL.js} +1 -1
  150. package/dist/ui/assets/{speak-7UzWyUVB.js → speak-BwWMiCus.js} +3 -3
  151. package/dist/ui/assets/speech-assets-bridge-CFYafE89.js +1 -0
  152. package/dist/ui/assets/{sprinkle-bridge-CwelAMwV.js → sprinkle-bridge-DL0PzEfD.js} +1 -1
  153. package/dist/ui/assets/{sprinkle-manager-BcNkmc-E.js → sprinkle-manager-BrnXYZNe.js} +1 -1
  154. package/dist/ui/assets/{sprinkle-renderer-GiRRbdBx.js → sprinkle-renderer-CsUow5K7.js} +3 -3
  155. package/dist/ui/assets/{sql-wasm-BWbkWL23.js → sql-wasm-JpZkOS2Q.js} +1 -1
  156. package/dist/ui/assets/store-CiLd7Ltk.js +1 -0
  157. package/dist/ui/assets/{sudo-CGD0Ki6b.js → sudo-SbEy0lx-.js} +3 -3
  158. package/dist/ui/assets/{sync-dialog-BFKWO6DT.js → sync-dialog-Ie_5SqoO.js} +1 -1
  159. package/dist/ui/assets/theme-Ca4mHxHv.js +1 -0
  160. package/dist/ui/assets/theme-engine-LmGLoWYX.js +3 -0
  161. package/dist/ui/assets/theme-presets-xiOb9AFN.js +1 -0
  162. package/dist/ui/assets/transform-messages-DiIjWKhh.js +1 -0
  163. package/dist/ui/assets/{transformers-env-ChIHsg1x.js → transformers-env-Blt6HC_1.js} +1 -1
  164. package/dist/ui/assets/{transformers-env-BQUf39mx.js → transformers-env-D24AdCVb.js} +1 -1
  165. package/dist/ui/assets/{transformers.web-BxHOGVSB.js → transformers.web-C6PlPLR-.js} +1 -1
  166. package/dist/ui/assets/{transformers.web-CuUo4MLm.js → transformers.web-DkJGoARp.js} +1 -1
  167. package/dist/ui/assets/tray-leader-Ce8YyKO5.js +1 -0
  168. package/dist/ui/assets/{tray-leave-runtime-CVAUUyWv.js → tray-leave-runtime-DWG6ewDi.js} +1 -1
  169. package/dist/ui/assets/{upgrade-detection-D6i1xD-s.js → upgrade-detection-Bahy2mfY.js} +1 -1
  170. package/dist/ui/assets/usb-device-registry-k6vTKonT.js +1 -0
  171. package/dist/ui/assets/{usb-operations-CkcrNzZw.js → usb-operations-D-YdmmuG.js} +1 -1
  172. package/dist/ui/assets/usb-picker-SsbXAvwt.js +1 -0
  173. package/dist/ui/assets/{voice-reply-DeTF05vK.js → voice-reply-CdDTbx5C.js} +1 -1
  174. package/dist/ui/assets/{wc-attach-D63LJy4C.js → wc-attach-P61GYoY8.js} +3 -3
  175. package/dist/ui/assets/wc-extension-C_Atv9M1.js +2 -0
  176. package/dist/ui/assets/wc-float-label-COQsLLC2.js +1 -0
  177. package/dist/ui/assets/wc-follower-DLWJH9Wm.js +2 -0
  178. package/dist/ui/assets/{wc-live-BjRY1nkF.js → wc-live-CKisGrn6.js} +16 -16
  179. package/dist/ui/assets/wc-nav-C8bnEda_.js +2 -0
  180. package/dist/ui/assets/{wc-onboarding-CO2r3rtk.js → wc-onboarding-DQOqFqNj.js} +2 -2
  181. package/dist/ui/assets/{wc-permissions-DmHMvdiC.js → wc-permissions-CBFvg_0i.js} +3 -3
  182. package/dist/ui/assets/{wc-permissions-providers-BufEXbhX.js → wc-permissions-providers-Cdznv6xX.js} +2 -2
  183. package/dist/ui/assets/wc-permissions-registry-Blyunq37.js +1 -0
  184. package/dist/ui/assets/wc-permissions-registry-C7PhTX3c.js +1 -0
  185. package/dist/ui/assets/{wc-placeholder-DmDCYMMv.js → wc-placeholder-ClGtIyUC.js} +3 -3
  186. package/dist/ui/assets/wc-settings-CH0fgu4m.js +48 -0
  187. package/dist/ui/assets/{wc-shell-DwWXZMDq.js → wc-shell-FqlPeZfJ.js} +4 -4
  188. package/dist/ui/assets/wc-sprinkles-BtyrEgiD.js +2 -0
  189. package/dist/ui/assets/wc-tray-Dgcd1QIL.js +2 -0
  190. package/dist/ui/assets/welcome-detection-CQY88hjL.js +1 -0
  191. package/dist/ui/assets/{whisper-engine-B4F1IZk5.js → whisper-engine-DcSK9vG0.js} +1 -1
  192. package/dist/ui/assets/{whisper-session-bkHemaIa.js → whisper-session-tJ8m9ShN.js} +2 -2
  193. package/dist/ui/assets/{xai-grok-DnE_hbXu.js → xai-grok-CEiCsU5v.js} +1 -1
  194. package/dist/ui/assets/{xai-grok-CSI7j4LP.js → xai-grok-CtCLXgPn.js} +1 -1
  195. package/dist/ui/assets/{xterm-DooSxjI5.js → xterm-DMlKjmUi.js} +2 -2
  196. package/dist/ui/assets/{xterm-B5O_KJMf.js → xterm-Dwh1I9AE.js} +2 -2
  197. package/dist/ui/index.html +16 -16
  198. package/dist/ui/packages/webapp/index.html +16 -16
  199. package/package.json +4 -4
  200. package/dist/ui/assets/__vite-browser-external-BdY91arR.js +0 -1
  201. package/dist/ui/assets/__vite-browser-external-C7iut881.js +0 -1
  202. package/dist/ui/assets/account-store-DvidGCSz.js +0 -38
  203. package/dist/ui/assets/addon-fit-CuuUKmBe.js +0 -13
  204. package/dist/ui/assets/addon-fit-DthTIhi3.js +0 -1
  205. package/dist/ui/assets/bedrock-camp-9-QEmC9Z.js +0 -1
  206. package/dist/ui/assets/clipboard-DgFtRQbq.js +0 -1
  207. package/dist/ui/assets/dip-ZwIIoTvH.js +0 -1
  208. package/dist/ui/assets/dist-4q7gK6W0.js +0 -18
  209. package/dist/ui/assets/dist-eRjRxbMY2.js +0 -12
  210. package/dist/ui/assets/esp32-CatgC_Vd.js +0 -1
  211. package/dist/ui/assets/esp32c3-heViyR1Q.js +0 -1
  212. package/dist/ui/assets/esp8266-BPLrOmN4.js +0 -1
  213. package/dist/ui/assets/esp8266-DJkN1NMD.js +0 -1
  214. package/dist/ui/assets/esptool-operations-CiX8mbpu.js +0 -12
  215. package/dist/ui/assets/fs-CNaqdxK1.js +0 -1
  216. package/dist/ui/assets/google-shared-CVRDRmWo.js +0 -11
  217. package/dist/ui/assets/hid-device-registry-D2LsJCRr.js +0 -1
  218. package/dist/ui/assets/hid-picker-DUJBI46p.js +0 -1
  219. package/dist/ui/assets/icons-BU6llBsN.js +0 -1
  220. package/dist/ui/assets/intercepted-oauth-E9BfBX02.js +0 -1
  221. package/dist/ui/assets/js-realm-worker-CPYpgfMX.js +0 -49
  222. package/dist/ui/assets/json-parse-BUunmmNl.js +0 -3
  223. package/dist/ui/assets/json-parse-CWht3lea.js +0 -3
  224. package/dist/ui/assets/kokoro-B5jJ2WUJ.js +0 -4
  225. package/dist/ui/assets/kokoro-BdpwC7DT.js +0 -4
  226. package/dist/ui/assets/llm-session-id-DVmZ9C2t.js +0 -1
  227. package/dist/ui/assets/mistral-BTNTllXI.js +0 -46
  228. package/dist/ui/assets/mistral-BzfpfZhh.js +0 -46
  229. package/dist/ui/assets/mount-BIAbddcu.js +0 -1
  230. package/dist/ui/assets/mount-bridge-client-tEnjiHyh.js +0 -2
  231. package/dist/ui/assets/mount-picker-popup-Hrvzr69c.js +0 -1
  232. package/dist/ui/assets/mount-table-store-DAENz45Q.js +0 -1
  233. package/dist/ui/assets/mount-table-store-ggb440m4.js +0 -1
  234. package/dist/ui/assets/openai-completions-YNL_qr9N.js +0 -5
  235. package/dist/ui/assets/page-follower-tray-3aCyiYwD.js +0 -4
  236. package/dist/ui/assets/panel-rpc-D0J5pskz.js +0 -1
  237. package/dist/ui/assets/panel-rpc-DqT2FG7c.js +0 -1
  238. package/dist/ui/assets/panel-rpc-handlers-CY1CkLFB.js +0 -2
  239. package/dist/ui/assets/preload-helper-zJ_50EbN.js +0 -1
  240. package/dist/ui/assets/provider-store-access-CxkFfgDe.js +0 -1
  241. package/dist/ui/assets/provider-store-access-DrEF70fE.js +0 -1
  242. package/dist/ui/assets/providers-BaPDWsNI.js +0 -2
  243. package/dist/ui/assets/providers-Dge7mhGc.js +0 -1
  244. package/dist/ui/assets/proxied-fetch-B5vr_AP8.js +0 -2
  245. package/dist/ui/assets/proxied-fetch-I4cndszg.js +0 -1
  246. package/dist/ui/assets/py-realm-worker-LVNFvu8J.js +0 -244
  247. package/dist/ui/assets/quick-llm-3huRDf4h.js +0 -1
  248. package/dist/ui/assets/remote-cache-BL6NRenp.js +0 -1
  249. package/dist/ui/assets/remote-cdp-transport-BrkfZae9.js +0 -1
  250. package/dist/ui/assets/secrets-bridge-client-DXw32cXb.js +0 -2
  251. package/dist/ui/assets/serial-picker-B6s4NeaB.js +0 -1
  252. package/dist/ui/assets/serial-port-registry-Bc4wlwED.js +0 -1
  253. package/dist/ui/assets/session-freezer-Bu6IGBjC.js +0 -1
  254. package/dist/ui/assets/session-store-CCH7W8KY.js +0 -1
  255. package/dist/ui/assets/shared-DAA_6m5R.js +0 -1
  256. package/dist/ui/assets/speech-assets-bridge-B8NqCAE8.js +0 -1
  257. package/dist/ui/assets/store-GRbFxjv_.js +0 -1
  258. package/dist/ui/assets/theme-BBwuyzvz.js +0 -1
  259. package/dist/ui/assets/transform-messages-DzB_lMo-.js +0 -1
  260. package/dist/ui/assets/tray-leader-_L-5FP9I.js +0 -1
  261. package/dist/ui/assets/usb-device-registry-BP58Vi0S.js +0 -1
  262. package/dist/ui/assets/usb-picker-D_K0weAY.js +0 -1
  263. package/dist/ui/assets/wc-extension-CoQsUqQu.js +0 -2
  264. package/dist/ui/assets/wc-float-label-dfUH87GD.js +0 -1
  265. package/dist/ui/assets/wc-follower-3KEzkDWq.js +0 -2
  266. package/dist/ui/assets/wc-nav-HoPMQ97b.js +0 -2
  267. package/dist/ui/assets/wc-permissions-registry-CR1rTd2H.js +0 -1
  268. package/dist/ui/assets/wc-permissions-registry-Dx-BRiKK.js +0 -1
  269. package/dist/ui/assets/wc-settings-Dd2Pbdn9.js +0 -24
  270. package/dist/ui/assets/wc-sprinkles-DQtTnVxO.js +0 -2
  271. package/dist/ui/assets/wc-tray-B2k2gf2c.js +0 -2
  272. package/dist/ui/assets/welcome-detection-Cr8mNEkt.js +0 -1
  273. /package/dist/ui/assets/{chunk-aKtaBQYM.js → rolldown-runtime-aKtaBQYM.js} +0 -0
@@ -1,2 +1,2 @@
1
- import{n as e,r as t}from"./hid-device-registry-D2LsJCRr.js";import{a as n,i as r}from"./serial-port-registry-Bc4wlwED.js";import{C as i,D as a,E as o,S as s,_ as c,a as l,g as u,h as d,k as f,l as p,m,n as h,o as g,s as _,w as v,x as y,y as b}from"./usb-operations-CkcrNzZw.js";import{i as x,r as S}from"./usb-device-registry-BP58Vi0S.js";import{n as C}from"./shared-DAA_6m5R.js";var w=`SLICCJSH`;function T(e){return e.length===0?`''`:`'${e.replace(/'/g,`'\\''`)}'`}function E(e,t){return`var REQ=${JSON.stringify({op:e,args:t})};var P=${JSON.stringify(w)};function emit(o){process.stdout.write(P+JSON.stringify(o));}try{var op=REQ.op,a=REQ.args||[],out;if(op==='fetch'){var r=await fetch(a[0],a[1]||undefined);var h={};r.headers.forEach(function(v,k){h[k]=v;});var u=new Uint8Array(await r.arrayBuffer());var bin="",C=0x8000;for(var i=0;i<u.length;i+=C){bin+=String.fromCharCode.apply(null,u.subarray(i,i+C));}out={ok:r.ok,status:r.status,statusText:r.statusText,url:r.url,headers:h,bodyBase64:btoa(bin)};}else if(op==='http'){var c=http.client(a[0]||{});var res=await c[a[1]](a[2],Object.assign({},a[3]||{},{raw:true}));out={status:res.status,headers:res.headers,body:res.body};}else if(op==='browser'){var m=a[0];if(typeof browser[m]!=="function")throw new Error("browser."+m+" is not available over the sprinkle bridge");out=await browser[m].apply(browser,a.slice(1));}else if(op==='spawn'){out=await exec.spawn(a[0]);}else if(op==='fetchToFile'){out=await fs.fetchToFile(a[0],a[1]);}else{throw new Error("unknown jsh op: "+op);}emit({ok:true,value:out});}catch(e){emit({ok:false,error:(e&&e.message)?e.message:String(e)});}`}function D(e,t){return`node -e ${T(E(e,t))}`}function O(e){let t=e.stdout.lastIndexOf(w);if(t===-1){let t=e.stderr.trim()||e.stdout.trim()||`exit code ${e.exitCode}`;throw Error(`jsh bridge: no result (${t})`)}let n;try{n=JSON.parse(e.stdout.slice(t+10))}catch{throw Error(`jsh bridge: malformed result`)}if(!n.ok)throw Error(n.error||`jsh bridge error`);return n.value}async function k(e,t,n){return O(await e(D(t,n)))}function A(e){let t=``,n=32768;for(let r=0;r<e.length;r+=n)t+=String.fromCharCode(...e.subarray(r,r+n));return btoa(t)}function j(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}function M(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[]`)}var N=new Set([101,103,204,205,304]);function P(e){let t=j(e.bodyBase64),n=N.has(e.status)?null:t,r=new Headers(e.headers),i;try{return i=new Response(n,{status:e.status,statusText:e.statusText,headers:r}),Object.defineProperty(i,"url",{value:e.url,configurable:!0}),i}catch{i=new Response(n,{headers:r});let t=e.status>=200&&e.status<300;return Object.defineProperty(i,"status",{value:e.status,configurable:!0}),Object.defineProperty(i,"statusText",{value:e.statusText,configurable:!0}),Object.defineProperty(i,"ok",{value:t,configurable:!0}),Object.defineProperty(i,"url",{value:e.url,configurable:!0}),i}}function F(e){return e.length===0?`''`:`'${e.replace(/'/g,`'\\''`)}'`}var I=class{listeners=new Map;lickHandler;fs;closeHandler;minimizeHandler;stopConeHandler;attachImageHandler;captureScreenHandler;execHandler;hidSubs=new Map;iframePusher;constructor(e,t,n,r,i,a,o,s,c){this.fs=e,this.lickHandler=t,this.closeHandler=n,this.minimizeHandler=r,this.stopConeHandler=i,this.attachImageHandler=a,this.captureScreenHandler=o,this.execHandler=s,this.iframePusher=c}setIframePusher(e){this.iframePusher=e}async hidOp(n,r,i){let a=t();switch(r){case`list`:{let t=e();if(!t)throw Error(`WebHID is unavailable in this browser`);return u(a,t)}case`request`:{let t=e();if(!t)throw Error(`WebHID is unavailable in this browser`);return b(a,t,i[0]??[])}case`info`:return d(a,i[0]);case`open`:{let e=i[0];return await c(a,e),await this.attachHidInputReports(n,e),{ok:!0}}case`close`:{let e=i[0];return await this.detachHidInputReports(n,e),await m(a,e),{ok:!0}}case`sendReport`:{let e=i[0],t=i[1],n=M(i[2]);return await y(a,e,t,n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength)),{ok:!0}}default:throw Error(`hid: unknown op '${r}'`)}}async serialOp(e,t,s){let c=n();switch(t){case`list`:{let e=r();if(!e)throw Error(`Web Serial is unavailable in this browser`);return o(c,e)}case`request`:{let e=r();if(!e)throw Error(`Web Serial is unavailable in this browser`);return f(c,e,s[0]??[])}case`info`:return v(c,s[0]);case`open`:{let e=s[0];return await a(c,e,s[1]??{baudRate:9600}),{ok:!0}}case`close`:{let e=s[0];return await i(c,e),{ok:!0}}default:throw Error(`serial: unknown op '${t}'`)}}async usbOp(e,t,n){let r=x();switch(t){case`list`:{let e=S();if(!e)throw Error(`WebUSB is unavailable in this browser`);return g(r,e)}case`request`:{let e=S();if(!e)throw Error(`WebUSB is unavailable in this browser`);return p(r,e,n[0]??[])}case`info`:return l(r,n[0]);case`open`:return await _(r,n[0]),{ok:!0};case`close`:return await h(r,n[0]),{ok:!0};default:throw Error(`usb: unknown op '${t}'`)}}async deviceOp(e,t,n,r){if(t===`hid`)return this.hidOp(e,n,r);if(t===`serial`)return this.serialOp(e,n,r);if(t===`usb`)return this.usbOp(e,n,r);throw Error(`unknown device channel '${t}'`)}async attachHidInputReports(e,n){let r=this.hidSubs.get(e);if(r||(r=new Map,this.hidSubs.set(e,r)),r.has(n))return;let i=await s(t(),n,t=>{let r=t.bytes instanceof Uint8Array?t.bytes:new Uint8Array(t.bytes);this.deliverHidInputReport(e,{handle:n,reportId:t.reportId,data:r})});r.set(n,i)}async detachHidInputReports(e,t){let n=this.hidSubs.get(e);if(!n)return;let r=n.get(t);if(r){n.delete(t);try{await Promise.resolve(r())}catch{}}n.size===0&&this.hidSubs.delete(e)}deliverHidInputReport(e,t){let n=this.listeners.get(`${e}:hid:inputreport`);if(n)for(let e of n){let r=n;setTimeout(()=>{if(r.has(e))try{e(t)}catch{}},0)}try{this.iframePusher?.(e,`hid:inputreport`,t)}catch{}}async runExec(e){if(!this.execHandler)return{stdout:``,stderr:`exec: shell bridge not available
1
+ import{n as e,r as t}from"./hid-device-registry-6w-g8ZpF.js";import{a as n,i as r}from"./serial-port-registry-DsPZvGpT.js";import{C as i,D as a,E as o,S as s,_ as c,a as l,g as u,h as d,k as f,l as p,m,n as h,o as g,s as _,w as v,x as y,y as b}from"./usb-operations-D-YdmmuG.js";import{i as x,r as S}from"./usb-device-registry-k6vTKonT.js";import{n as C}from"./shared-CrHp2zdc.js";var w=`SLICCJSH`;function T(e){return e.length===0?`''`:`'${e.replace(/'/g,`'\\''`)}'`}function E(e,t){return`var REQ=${JSON.stringify({op:e,args:t})};var P=${JSON.stringify(w)};function emit(o){process.stdout.write(P+JSON.stringify(o));}try{var op=REQ.op,a=REQ.args||[],out;if(op==='fetch'){var r=await fetch(a[0],a[1]||undefined);var h={};r.headers.forEach(function(v,k){h[k]=v;});var u=new Uint8Array(await r.arrayBuffer());var bin="",C=0x8000;for(var i=0;i<u.length;i+=C){bin+=String.fromCharCode.apply(null,u.subarray(i,i+C));}out={ok:r.ok,status:r.status,statusText:r.statusText,url:r.url,headers:h,bodyBase64:btoa(bin)};}else if(op==='http'){var c=http.client(a[0]||{});var res=await c[a[1]](a[2],Object.assign({},a[3]||{},{raw:true}));out={status:res.status,headers:res.headers,body:res.body};}else if(op==='browser'){var m=a[0];if(typeof browser[m]!=="function")throw new Error("browser."+m+" is not available over the sprinkle bridge");out=await browser[m].apply(browser,a.slice(1));}else if(op==='spawn'){out=await exec.spawn(a[0]);}else if(op==='fetchToFile'){out=await fs.fetchToFile(a[0],a[1]);}else{throw new Error("unknown jsh op: "+op);}emit({ok:true,value:out});}catch(e){emit({ok:false,error:(e&&e.message)?e.message:String(e)});}`}function D(e,t){return`node -e ${T(E(e,t))}`}function O(e){let t=e.stdout.lastIndexOf(w);if(t===-1){let t=e.stderr.trim()||e.stdout.trim()||`exit code ${e.exitCode}`;throw Error(`jsh bridge: no result (${t})`)}let n;try{n=JSON.parse(e.stdout.slice(t+10))}catch{throw Error(`jsh bridge: malformed result`)}if(!n.ok)throw Error(n.error||`jsh bridge error`);return n.value}async function k(e,t,n){return O(await e(D(t,n)))}function A(e){let t=``,n=32768;for(let r=0;r<e.length;r+=n)t+=String.fromCharCode(...e.subarray(r,r+n));return btoa(t)}function j(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}function M(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[]`)}var N=new Set([101,103,204,205,304]);function P(e){let t=j(e.bodyBase64),n=N.has(e.status)?null:t,r=new Headers(e.headers),i;try{return i=new Response(n,{status:e.status,statusText:e.statusText,headers:r}),Object.defineProperty(i,"url",{value:e.url,configurable:!0}),i}catch{i=new Response(n,{headers:r});let t=e.status>=200&&e.status<300;return Object.defineProperty(i,"status",{value:e.status,configurable:!0}),Object.defineProperty(i,"statusText",{value:e.statusText,configurable:!0}),Object.defineProperty(i,"ok",{value:t,configurable:!0}),Object.defineProperty(i,"url",{value:e.url,configurable:!0}),i}}function F(e){return e.length===0?`''`:`'${e.replace(/'/g,`'\\''`)}'`}var I=class{listeners=new Map;lickHandler;fs;closeHandler;minimizeHandler;stopConeHandler;attachImageHandler;captureScreenHandler;execHandler;hidSubs=new Map;iframePusher;constructor(e,t,n,r,i,a,o,s,c){this.fs=e,this.lickHandler=t,this.closeHandler=n,this.minimizeHandler=r,this.stopConeHandler=i,this.attachImageHandler=a,this.captureScreenHandler=o,this.execHandler=s,this.iframePusher=c}setIframePusher(e){this.iframePusher=e}async hidOp(n,r,i){let a=t();switch(r){case`list`:{let t=e();if(!t)throw Error(`WebHID is unavailable in this browser`);return u(a,t)}case`request`:{let t=e();if(!t)throw Error(`WebHID is unavailable in this browser`);return b(a,t,i[0]??[])}case`info`:return d(a,i[0]);case`open`:{let e=i[0];return await c(a,e),await this.attachHidInputReports(n,e),{ok:!0}}case`close`:{let e=i[0];return await this.detachHidInputReports(n,e),await m(a,e),{ok:!0}}case`sendReport`:{let e=i[0],t=i[1],n=M(i[2]);return await y(a,e,t,n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength)),{ok:!0}}default:throw Error(`hid: unknown op '${r}'`)}}async serialOp(e,t,s){let c=n();switch(t){case`list`:{let e=r();if(!e)throw Error(`Web Serial is unavailable in this browser`);return o(c,e)}case`request`:{let e=r();if(!e)throw Error(`Web Serial is unavailable in this browser`);return f(c,e,s[0]??[])}case`info`:return v(c,s[0]);case`open`:{let e=s[0];return await a(c,e,s[1]??{baudRate:9600}),{ok:!0}}case`close`:{let e=s[0];return await i(c,e),{ok:!0}}default:throw Error(`serial: unknown op '${t}'`)}}async usbOp(e,t,n){let r=x();switch(t){case`list`:{let e=S();if(!e)throw Error(`WebUSB is unavailable in this browser`);return g(r,e)}case`request`:{let e=S();if(!e)throw Error(`WebUSB is unavailable in this browser`);return p(r,e,n[0]??[])}case`info`:return l(r,n[0]);case`open`:return await _(r,n[0]),{ok:!0};case`close`:return await h(r,n[0]),{ok:!0};default:throw Error(`usb: unknown op '${t}'`)}}async deviceOp(e,t,n,r){if(t===`hid`)return this.hidOp(e,n,r);if(t===`serial`)return this.serialOp(e,n,r);if(t===`usb`)return this.usbOp(e,n,r);throw Error(`unknown device channel '${t}'`)}async attachHidInputReports(e,n){let r=this.hidSubs.get(e);if(r||(r=new Map,this.hidSubs.set(e,r)),r.has(n))return;let i=await s(t(),n,t=>{let r=t.bytes instanceof Uint8Array?t.bytes:new Uint8Array(t.bytes);this.deliverHidInputReport(e,{handle:n,reportId:t.reportId,data:r})});r.set(n,i)}async detachHidInputReports(e,t){let n=this.hidSubs.get(e);if(!n)return;let r=n.get(t);if(r){n.delete(t);try{await Promise.resolve(r())}catch{}}n.size===0&&this.hidSubs.delete(e)}deliverHidInputReport(e,t){let n=this.listeners.get(`${e}:hid:inputreport`);if(n)for(let e of n){let r=n;setTimeout(()=>{if(r.has(e))try{e(t)}catch{}},0)}try{this.iframePusher?.(e,`hid:inputreport`,t)}catch{}}async runExec(e){if(!this.execHandler)return{stdout:``,stderr:`exec: shell bridge not available
2
2
  `,exitCode:127};try{return await this.execHandler(e)}catch(e){return{stdout:``,stderr:`exec: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async jshDispatch(e,t){if(e===`readFileBinary`)return{base64:A(await this.fs.readFile(t[0],{encoding:`binary`}))};if(e===`writeFileBinary`)return await this.fs.writeFile(t[0],j(t[1])),!0;let n=await k(e=>this.runExec(e),e,t);return e===`fetch`?P(n):n}createAPI(e){let t={name:e,lick:t=>{let n=typeof t==`string`?t:t.action,r=typeof t==`string`?void 0:t.data,i={type:`sprinkle`,sprinkleName:e,targetScoop:z(e),timestamp:new Date().toISOString(),body:{action:n,data:r}};this.lickHandler(i)},on:(t,n)=>{let r=`${e}:${t}`,i=this.listeners.get(r);i||(i=new Set,this.listeners.set(r,i)),i.add(n)},off:(t,n)=>{let r=`${e}:${t}`;this.listeners.get(r)?.delete(n)},readFile:async e=>await this.fs.readFile(e,{encoding:`utf-8`}),writeFile:async(e,t)=>{await this.fs.writeFile(e,t)},readDir:async e=>(await this.fs.readDir(e)).map(e=>({name:e.name,type:e.type})),exists:async e=>this.fs.exists(e),stat:async e=>{let t=await this.fs.stat(e);return{type:t.type,size:t.size}},mkdir:async e=>{await this.fs.mkdir(e,{recursive:!0})},rm:async e=>{await this.fs.rm(e)},screenshot:async e=>{let n=t._container;if(!n)return``;let r=e?n.querySelector(e):n;if(!r)throw Error(`Element not found: `+(e||`container`));let i=r.getBoundingClientRect(),a=Math.ceil(i.width),o=Math.ceil(i.height);if(a===0||o===0)throw Error(`Element has zero dimensions`);let s=document.createElement(`canvas`),c=window.devicePixelRatio||1;s.width=a*c,s.height=o*c;let l=s.getContext(`2d`);l.scale(c,c);let u=r.cloneNode(!0),d=`<svg xmlns="http://www.w3.org/2000/svg" width="${a}" height="${o}"><foreignObject width="100%" height="100%">${new XMLSerializer().serializeToString(u)}</foreignObject></svg>`;return new Promise((e,t)=>{let n=new Image;n.onload=()=>{l.drawImage(n,0,0),e(s.toDataURL(`image/png`))},n.onerror=()=>t(Error(`Screenshot rendering failed`)),n.src=`data:image/svg+xml;charset=utf-8,`+encodeURIComponent(d)})},setState:t=>{try{localStorage.setItem(`slicc-sprinkle-state:${e}`,JSON.stringify(t))}catch{}},getState:()=>{try{let t=localStorage.getItem(`slicc-sprinkle-state:${e}`);return t?JSON.parse(t):null}catch{return null}},open:e=>{let t=/^https?:|^chrome-extension:/.test(e)?e:C(e);window.open(t,`_blank`)},close:()=>this.closeHandler(e),minimize:()=>this.minimizeHandler(e),stopCone:()=>this.stopConeHandler(),attachImage:(e,t,n)=>this.attachImageHandler(e,t,n),captureScreen:()=>this.captureScreenHandler(),exec:Object.assign(e=>this.runExec(e),{spawn:e=>this.jshDispatch(`spawn`,[e])}),fetch:(e,t)=>this.jshDispatch(`fetch`,[e,t??null]),http:{client:e=>{let t=t=>(n,r)=>this.jshDispatch(`http`,[e,t,n,r??null]);return{get:t(`get`),post:t(`post`),put:t(`put`),patch:t(`patch`),delete:t(`delete`)}}},browser:{findTab:e=>this.jshDispatch(`browser`,[`findTab`,e]),ensureTab:(e,t)=>this.jshDispatch(`browser`,[`ensureTab`,e,t??{}]),eval:(e,t)=>this.jshDispatch(`browser`,[`eval`,e,t]),evalAsync:(e,t)=>this.jshDispatch(`browser`,[`evalAsync`,e,t]),cookie:(e,t)=>this.jshDispatch(`browser`,[`cookie`,e,t]),localStorage:(e,t)=>this.jshDispatch(`browser`,[`localStorage`,e,t]),fetch:(e,t,n)=>this.jshDispatch(`browser`,[`fetch`,e,t,n??{}])},hid:{list:()=>this.hidOp(e,`list`,[]),request:t=>this.hidOp(e,`request`,[t??[]]),open:async t=>{await this.hidOp(e,`open`,[t])},close:async t=>{await this.hidOp(e,`close`,[t])},sendReport:async(t,n,r)=>{await this.hidOp(e,`sendReport`,[t,n,r])},on:(t,n)=>{if(t!==`inputreport`)return;let r=`${e}:hid:inputreport`,i=this.listeners.get(r);i||(i=new Set,this.listeners.set(r,i)),i.add(n)},off:(t,n)=>{t===`inputreport`&&this.listeners.get(`${e}:hid:inputreport`)?.delete(n)}},serial:{list:()=>this.serialOp(e,`list`,[]),request:t=>this.serialOp(e,`request`,[t??[]]),open:async(t,n)=>{await this.serialOp(e,`open`,[t,n])},close:async t=>{await this.serialOp(e,`close`,[t])}},usb:{list:()=>this.usbOp(e,`list`,[]),request:t=>this.usbOp(e,`request`,[t??[]]),open:async t=>{await this.usbOp(e,`open`,[t])},close:async t=>{await this.usbOp(e,`close`,[t])}},readFileBinary:async e=>j((await this.jshDispatch(`readFileBinary`,[e])).base64),writeFileBinary:async(e,t)=>{await this.jshDispatch(`writeFileBinary`,[e,A(t)])},fetchToFile:(e,t)=>this.jshDispatch(`fetchToFile`,[e,t]),_jsh:(e,t)=>this.jshDispatch(e,t),_device:(t,n,r)=>this.deviceOp(e,t,n,r),agent:async(e,t)=>{let n=t?.cwd??`.`,r=t?.allowedCommands??`*`,i=[`agent`];t?.model&&i.push(`--model`,F(t.model)),t?.thinking&&i.push(`--thinking`,F(t.thinking)),t?.readOnly&&i.push(`--read-only`,F(t.readOnly)),i.push(F(n),F(r),F(e));let a=await this.runExec(i.join(` `));return{stdout:a.stdout||a.stderr,exitCode:a.exitCode}}};return t}pushUpdate(e,t){let n=`${e}:update`,r=this.listeners.get(n);if(r)for(let e of r){let n=r;setTimeout(()=>{if(n.has(e))try{e(t)}catch{}},0)}}removeSprinkle(e){for(let t of this.listeners.keys())t.startsWith(`${e}:`)&&this.listeners.delete(t);let t=this.hidSubs.get(e);if(t){for(let e of t.values())try{Promise.resolve(e()).catch(()=>{})}catch{}this.hidSubs.delete(e)}}},L=`slicc-sprinkle-routes`;function R(){try{let e=localStorage.getItem(L);return e?JSON.parse(e):{}}catch{return{}}}function z(e){return R()[e]}export{k as n,I as t};
@@ -1 +1 @@
1
- import{t as e}from"./logger-DDBAeTLF.js";import{n as t,t as n}from"./panel-rpc-DqT2FG7c.js";import{s as r}from"./main-ONpvMnyR.js";import{t as i}from"./sprinkle-bridge-CwelAMwV.js";import{t as a}from"./sprinkle-renderer-GiRRbdBx.js";var o=[`/shared/sprinkles`],s=new Set([`welcome`,`connect-llm`]);async function c(e){let t=new Map;for(let n of o)await e.exists(n)&&await l(e,n,t);return await l(e,`/`,t),t}async function l(e,t,n){for await(let r of e.walk(t)){if(!r.endsWith(`.shtml`))continue;let t=u(r);if(!s.has(t)&&!n.has(t)){let i;try{i=await e.readFile(r,{encoding:`utf-8`})??``}catch{i=``}n.set(t,{name:t,path:r,title:d(i,t),autoOpen:f(i),icon:p(i)})}}}function u(e){let t=e.split(`/`).pop()??e;return t.endsWith(`.shtml`)?t.slice(0,-6):t}function d(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 f(e){return/data-sprinkle-autoopen\b/.test(e)}function p(e){let t=/<link\b/gi,n;for(;(n=t.exec(e))!==null;){let t=n.index+n[0].length,r=m(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=h(i,`href`);if(a!==void 0)return a.trim()}let r=h(e,`data-sprinkle-icon`);if(r!==void 0)return r.trim()}function m(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 h(e,t){let n=RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)')`,`i`),r=e.match(n);if(r)return r[1]??r[2]??void 0}var g=e(`sprinkle-manager`),_=`slicc-open-sprinkles`,v=`sprinkles`;function y(){try{if(typeof window>`u`||!window.location)return null;let e=new URLSearchParams(window.location.search).get(v);return e===null?null:e===``?[]:e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0)}catch{return null}}function b(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(v):t.searchParams.set(v,e.join(`,`));let n=t.pathname+t.search+t.hash;history.replaceState(history.state??null,``,n)}catch{}}var x=`slicc-known-sprinkles`;function S(e){try{let t=new Set(e),n=C().filter(e=>t.has(e));localStorage.setItem(x,JSON.stringify(n))}catch{}}function C(){try{let e=localStorage.getItem(x);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]}catch{return[]}}var w=`slicc-autoopened-once`,T=[`/workspace`,`/shared`,`/scoops`],E=250,D=class{fs;bridge;callbacks;availableSprinkles=new Map;watcherUnsub;openSprinkles=new Map;attentionOnly=new Set;inflightRefresh=null;lastRefreshAt=0;autoOpenBehavior;onSendToSprinkle;onSprinkleReloaded;registeredSprinkles=new Set;inlineSprinkles;changeListeners=new Set;changeNotifyScheduled=!1;urlWriteScheduled=!1;constructor(e,r,a,o,s={}){this.fs=e;let c=async()=>{let e=`image/png`,r=t(),i=n();if(!r&&!i)throw Error(`Screen capture unavailable in this environment`);if(r&&!navigator.mediaDevices?.getDisplayMedia)throw Error(`Screen capture not supported in this browser`);let a,o,s;if(r){let t=await navigator.mediaDevices.getDisplayMedia({video:!0,audio:!1});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)),o=n.videoWidth,s=n.videoHeight;let r=document.createElement(`canvas`);r.width=o,r.height=s;let i=r.getContext(`2d`);if(!i)throw Error(`Failed to get canvas context`);i.drawImage(n,0,0,o,s),a=await(await new Promise((t,n)=>{r.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 i.call(`screencapture`,{mimeType:e,quality:1},{timeoutMs:5*6e4});a=t.bytes,o=t.width,s=t.height}let c=new Uint8Array(a),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:o,height:s,mimeType:e}};this.bridge=new i(e,r,e=>this.close(e),e=>this.minimize(e),o,s.onAttachImage??(()=>{}),c,s.execHandler,(e,t,n)=>{this.openSprinkles.get(e)?.renderer.pushDeviceEvent(t,n)}),this.callbacks=a,this.autoOpenBehavior=s.autoOpenBehavior??`activate`,this.onSendToSprinkle=s.onSendToSprinkle,this.onSprinkleReloaded=s.onSprinkleReloaded,this.inlineSprinkles=s.inlineSprinkles??new Set}setSendToSprinkleHook(e){this.onSendToSprinkle&&!e&&g.error(`SprinkleManager broadcast hook detached`),this.onSendToSprinkle=e}setReloadHook(e){this.onSprinkleReloaded=e}async reload(e){let t=this.openSprinkles.get(e);if(!t){g.info(`Cannot reload closed sprinkle`,{name:e});return}let n=this.availableSprinkles.get(e);if(n||=(await this.refresh(),this.availableSprinkles.get(e)),!n){g.warn(`Sprinkle not found during reload`,{name:e});return}let r=await this.fs.readFile(n.path,{encoding:`utf-8`});if(r==null){g.warn(`Failed to read sprinkle content during reload`,{name:e});return}let i=typeof r==`string`?r:new TextDecoder(`utf-8`).decode(r);t.renderer?.dispose(),this.bridge.removeSprinkle(e);let o=this.bridge.createAPI(e),s=new a(t.container,o);if(await s.render(i,e),!this.openSprinkles.has(e)){s.dispose();return}if(t.renderer=s,g.info(`Sprinkle reloaded`,{name:e}),this.notifyChange(),this.onSprinkleReloaded)try{this.onSprinkleReloaded(e)}catch(t){g.error(`onSprinkleReloaded hook threw`,{name:e,error:t instanceof Error?t.message:String(t)})}}async restoreOpenSprinkles(){try{let e=y();if(e!==null){await this.reopenInBackground(e);return}let t=localStorage.getItem(_);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{g.warn(`Failed to restore sprinkle`,{name:t})}}async restoreFromLegacyStorage(e){try{await this.reopenInBackground(JSON.parse(e))}finally{try{localStorage.removeItem(_)}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{g.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:!0}),i.autoOpen&&r.add(i.name),g.info(`Surfaced previously-unseen sprinkle`,{name:i.name})}catch{g.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(C())}persistKnownSprinkles(e){try{let t=new Set([...this.loadKnownSprinkles(),...e]);localStorage.setItem(x,JSON.stringify([...t]))}catch{}}loadAutoOpenedOnce(){try{let e=localStorage.getItem(w);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(w,JSON.stringify([...t]))}catch{}}persistOpenSprinkles(){try{let e=[...this.openSprinkles.keys()].filter(e=>!this.attentionOnly.has(e));localStorage.setItem(_,JSON.stringify(e))}catch{}this.schedulePersistOpenSprinklesToUrl()}schedulePersistOpenSprinklesToUrl(){this.urlWriteScheduled||(this.urlWriteScheduled=!0,queueMicrotask(()=>{this.urlWriteScheduled=!1,b([...this.openSprinkles.keys()].filter(e=>!this.attentionOnly.has(e)))}))}async openNewAutoOpenSprinkles(){if(this.inflightRefresh)return this.inflightRefresh;if(!(Date.now()-this.lastRefreshAt<E))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)){g.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),g.info(`Auto-opened new sprinkle after install`,{name:a.name,attention:t})}catch{g.warn(`Failed to auto-open new sprinkle`,{name:a.name})}}else try{await this.open(a.name,void 0,{attention:!0}),g.info(`Surfaced newly-installed sprinkle in rail`,{name:a.name})}catch{g.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 c(this.fs),g.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){g.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){g.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){g.error(`SprinkleManager.onChange handler threw`,{error:e instanceof Error?e.message:String(e)})}}))}async open(e,t,n={}){if(this.openSprinkles.has(e)){g.info(`Sprinkle already open`,{name:e});return}let i=this.availableSprinkles.get(e);if(i||=(await this.refresh(),this.availableSprinkles.get(e)),!i)throw Error(`Sprinkle not found: ${e}`);let o=await this.fs.readFile(i.path,{encoding:`utf-8`});if(o==null)throw Error(`Failed to read sprinkle content: ${i.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,this.openSprinkles.set(e,{renderer:null,container:c}),n.attention?this.attentionOnly.add(e):this.attentionOnly.delete(e),this.callbacks.addSprinkle(e,i.title,c,t,{...n,icon:i.icon});let l=new a(c,this.bridge.createAPI(e));await l.render(s,e),this.openSprinkles.get(e).renderer=l,this.persistOpenSprinkles(),r(e),g.info(`Sprinkle opened`,{name:e,title:i.title}),this.notifyChange()}markActivated(e){this.attentionOnly.has(e)&&(this.attentionOnly.delete(e),this.persistOpenSprinkles(),g.info(`Sprinkle promoted from attention to user-opened`,{name:e}),this.notifyChange())}async activate(e,t){if(this.attentionOnly.has(e)){this.markActivated(e);return}if(!this.openSprinkles.has(e))try{await this.open(e,t)}catch(t){g.warn(`Failed to open sprinkle from rail-icon click`,{name:e,error:t instanceof Error?t.message:String(t)})}}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(),g.info(`Sprinkle closed`,{name:e}),this.notifyChange())}minimize(e){this.openSprinkles.has(e)&&(this.callbacks.minimizeSprinkle(e),g.info(`Sprinkle minimized`,{name:e}))}available(){return Array.from(this.availableSprinkles.values())}opened(){return Array.from(this.openSprinkles.keys())}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=>{g.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=>{g.warn(`Sprinkle refresh on watcher event failed`,{error:e instanceof Error?e.message:String(e)})})},150))},i=T.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){let n=this.openSprinkles.get(e);if(!n){g.warn(`Cannot send to closed sprinkle`,{name:e});return}if(this.bridge.pushUpdate(e,t),n.renderer.pushUpdate(t),this.onSendToSprinkle)try{this.onSendToSprinkle(e,t)}catch(t){g.error(`onSendToSprinkle hook threw`,{name:e,error:t instanceof Error?t.message:String(t)})}}};export{D as SprinkleManager,S as pruneKnownSprinkleNames,C as readKnownSprinkleNames};
1
+ import{t as e}from"./logger-DDBAeTLF.js";import{n as t,t as n}from"./panel-rpc-DmJSNs0I.js";import{s as r}from"./main-BME4pJJo.js";import{t as i}from"./sprinkle-bridge-DL0PzEfD.js";import{t as a}from"./sprinkle-renderer-CsUow5K7.js";var o=[`/shared/sprinkles`],s=new Set([`welcome`,`connect-llm`]);async function c(e){let t=new Map;for(let n of o)await e.exists(n)&&await l(e,n,t);return await l(e,`/`,t),t}async function l(e,t,n){for await(let r of e.walk(t)){if(!r.endsWith(`.shtml`))continue;let t=u(r);if(!s.has(t)&&!n.has(t)){let i;try{i=await e.readFile(r,{encoding:`utf-8`})??``}catch{i=``}n.set(t,{name:t,path:r,title:d(i,t),autoOpen:f(i),icon:p(i)})}}}function u(e){let t=e.split(`/`).pop()??e;return t.endsWith(`.shtml`)?t.slice(0,-6):t}function d(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 f(e){return/data-sprinkle-autoopen\b/.test(e)}function p(e){let t=/<link\b/gi,n;for(;(n=t.exec(e))!==null;){let t=n.index+n[0].length,r=m(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=h(i,`href`);if(a!==void 0)return a.trim()}let r=h(e,`data-sprinkle-icon`);if(r!==void 0)return r.trim()}function m(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 h(e,t){let n=RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)')`,`i`),r=e.match(n);if(r)return r[1]??r[2]??void 0}var g=e(`sprinkle-manager`),_=`slicc-open-sprinkles`,v=`sprinkles`;function y(){try{if(typeof window>`u`||!window.location)return null;let e=new URLSearchParams(window.location.search).get(v);return e===null?null:e===``?[]:e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0)}catch{return null}}function b(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(v):t.searchParams.set(v,e.join(`,`));let n=t.pathname+t.search+t.hash;history.replaceState(history.state??null,``,n)}catch{}}var x=`slicc-known-sprinkles`;function S(e){try{let t=new Set(e),n=C().filter(e=>t.has(e));localStorage.setItem(x,JSON.stringify(n))}catch{}}function C(){try{let e=localStorage.getItem(x);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]}catch{return[]}}var w=`slicc-autoopened-once`,T=[`/workspace`,`/shared`,`/scoops`],E=250,D=class{fs;bridge;callbacks;availableSprinkles=new Map;watcherUnsub;openSprinkles=new Map;attentionOnly=new Set;inflightRefresh=null;lastRefreshAt=0;autoOpenBehavior;onSendToSprinkle;onSprinkleReloaded;registeredSprinkles=new Set;inlineSprinkles;changeListeners=new Set;changeNotifyScheduled=!1;urlWriteScheduled=!1;constructor(e,r,a,o,s={}){this.fs=e;let c=async()=>{let e=`image/png`,r=t(),i=n();if(!r&&!i)throw Error(`Screen capture unavailable in this environment`);if(r&&!navigator.mediaDevices?.getDisplayMedia)throw Error(`Screen capture not supported in this browser`);let a,o,s;if(r){let t=await navigator.mediaDevices.getDisplayMedia({video:!0,audio:!1});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)),o=n.videoWidth,s=n.videoHeight;let r=document.createElement(`canvas`);r.width=o,r.height=s;let i=r.getContext(`2d`);if(!i)throw Error(`Failed to get canvas context`);i.drawImage(n,0,0,o,s),a=await(await new Promise((t,n)=>{r.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 i.call(`screencapture`,{mimeType:e,quality:1},{timeoutMs:5*6e4});a=t.bytes,o=t.width,s=t.height}let c=new Uint8Array(a),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:o,height:s,mimeType:e}};this.bridge=new i(e,r,e=>this.close(e),e=>this.minimize(e),o,s.onAttachImage??(()=>{}),c,s.execHandler,(e,t,n)=>{this.openSprinkles.get(e)?.renderer.pushDeviceEvent(t,n)}),this.callbacks=a,this.autoOpenBehavior=s.autoOpenBehavior??`activate`,this.onSendToSprinkle=s.onSendToSprinkle,this.onSprinkleReloaded=s.onSprinkleReloaded,this.inlineSprinkles=s.inlineSprinkles??new Set}setSendToSprinkleHook(e){this.onSendToSprinkle&&!e&&g.error(`SprinkleManager broadcast hook detached`),this.onSendToSprinkle=e}setReloadHook(e){this.onSprinkleReloaded=e}async reload(e){let t=this.openSprinkles.get(e);if(!t){g.info(`Cannot reload closed sprinkle`,{name:e});return}let n=this.availableSprinkles.get(e);if(n||=(await this.refresh(),this.availableSprinkles.get(e)),!n){g.warn(`Sprinkle not found during reload`,{name:e});return}let r=await this.fs.readFile(n.path,{encoding:`utf-8`});if(r==null){g.warn(`Failed to read sprinkle content during reload`,{name:e});return}let i=typeof r==`string`?r:new TextDecoder(`utf-8`).decode(r);t.renderer?.dispose(),this.bridge.removeSprinkle(e);let o=this.bridge.createAPI(e),s=new a(t.container,o);if(await s.render(i,e),!this.openSprinkles.has(e)){s.dispose();return}if(t.renderer=s,g.info(`Sprinkle reloaded`,{name:e}),this.notifyChange(),this.onSprinkleReloaded)try{this.onSprinkleReloaded(e)}catch(t){g.error(`onSprinkleReloaded hook threw`,{name:e,error:t instanceof Error?t.message:String(t)})}}async restoreOpenSprinkles(){try{let e=y();if(e!==null){await this.reopenInBackground(e);return}let t=localStorage.getItem(_);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{g.warn(`Failed to restore sprinkle`,{name:t})}}async restoreFromLegacyStorage(e){try{await this.reopenInBackground(JSON.parse(e))}finally{try{localStorage.removeItem(_)}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{g.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:!0}),i.autoOpen&&r.add(i.name),g.info(`Surfaced previously-unseen sprinkle`,{name:i.name})}catch{g.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(C())}persistKnownSprinkles(e){try{let t=new Set([...this.loadKnownSprinkles(),...e]);localStorage.setItem(x,JSON.stringify([...t]))}catch{}}loadAutoOpenedOnce(){try{let e=localStorage.getItem(w);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(w,JSON.stringify([...t]))}catch{}}persistOpenSprinkles(){try{let e=[...this.openSprinkles.keys()].filter(e=>!this.attentionOnly.has(e));localStorage.setItem(_,JSON.stringify(e))}catch{}this.schedulePersistOpenSprinklesToUrl()}schedulePersistOpenSprinklesToUrl(){this.urlWriteScheduled||(this.urlWriteScheduled=!0,queueMicrotask(()=>{this.urlWriteScheduled=!1,b([...this.openSprinkles.keys()].filter(e=>!this.attentionOnly.has(e)))}))}async openNewAutoOpenSprinkles(){if(this.inflightRefresh)return this.inflightRefresh;if(!(Date.now()-this.lastRefreshAt<E))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)){g.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),g.info(`Auto-opened new sprinkle after install`,{name:a.name,attention:t})}catch{g.warn(`Failed to auto-open new sprinkle`,{name:a.name})}}else try{await this.open(a.name,void 0,{attention:!0}),g.info(`Surfaced newly-installed sprinkle in rail`,{name:a.name})}catch{g.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 c(this.fs),g.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){g.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){g.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){g.error(`SprinkleManager.onChange handler threw`,{error:e instanceof Error?e.message:String(e)})}}))}async open(e,t,n={}){if(this.openSprinkles.has(e)){g.info(`Sprinkle already open`,{name:e});return}let i=this.availableSprinkles.get(e);if(i||=(await this.refresh(),this.availableSprinkles.get(e)),!i)throw Error(`Sprinkle not found: ${e}`);let o=await this.fs.readFile(i.path,{encoding:`utf-8`});if(o==null)throw Error(`Failed to read sprinkle content: ${i.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,this.openSprinkles.set(e,{renderer:null,container:c}),n.attention?this.attentionOnly.add(e):this.attentionOnly.delete(e),this.callbacks.addSprinkle(e,i.title,c,t,{...n,icon:i.icon});let l=new a(c,this.bridge.createAPI(e));await l.render(s,e),this.openSprinkles.get(e).renderer=l,this.persistOpenSprinkles(),r(e),g.info(`Sprinkle opened`,{name:e,title:i.title}),this.notifyChange()}markActivated(e){this.attentionOnly.has(e)&&(this.attentionOnly.delete(e),this.persistOpenSprinkles(),g.info(`Sprinkle promoted from attention to user-opened`,{name:e}),this.notifyChange())}async activate(e,t){if(this.attentionOnly.has(e)){this.markActivated(e);return}if(!this.openSprinkles.has(e))try{await this.open(e,t)}catch(t){g.warn(`Failed to open sprinkle from rail-icon click`,{name:e,error:t instanceof Error?t.message:String(t)})}}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(),g.info(`Sprinkle closed`,{name:e}),this.notifyChange())}minimize(e){this.openSprinkles.has(e)&&(this.callbacks.minimizeSprinkle(e),g.info(`Sprinkle minimized`,{name:e}))}available(){return Array.from(this.availableSprinkles.values())}opened(){return Array.from(this.openSprinkles.keys())}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=>{g.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=>{g.warn(`Sprinkle refresh on watcher event failed`,{error:e instanceof Error?e.message:String(e)})})},150))},i=T.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){let n=this.openSprinkles.get(e);if(!n){g.warn(`Cannot send to closed sprinkle`,{name:e});return}if(this.bridge.pushUpdate(e,t),n.renderer.pushUpdate(t),this.onSendToSprinkle)try{this.onSendToSprinkle(e,t)}catch(t){g.error(`onSendToSprinkle hook threw`,{name:e,error:t instanceof Error?t.message:String(t)})}}};export{D as SprinkleManager,S as pruneKnownSprinkleNames,C as readKnownSprinkleNames};
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/slicc-editor-BdfBeQCF.js","assets/preload-helper-zJ_50EbN.js","assets/dist-k2Xmqc09.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-zJ_50EbN.js";import{i as t,n,t as r}from"./theme-BBwuyzvz.js";var i=typeof chrome<`u`&&!!chrome?.runtime?.id,a=/<script\b([^>]*)\bsrc\s*=\s*["'](https?:\/\/[^"']+)["']([^>]*)><\/script>/gi;async function o(e){let t=[],n;for(;(n=a.exec(e))!==null;)t.push({full:n[0],url:n[2],index:n.index});if(a.lastIndex=0,t.length===0)return e;let r=await Promise.all(t.map(async e=>{try{let t=await fetch(e.url);if(!t.ok)throw Error(`HTTP ${t.status}`);return{...e,text:await t.text()}}catch(t){let n=t instanceof Error?t.message:String(t);return{...e,text:`console.error('[sprinkle] Failed to load ${e.url}: ${n}')`}}})),i=e;for(let e=r.length-1;e>=0;e--){let{full:t,text:n}=r[e],a=n.replace(/<\/script/gi,`<\\/script`);i=i.replace(t,()=>`<script>${a}<\/script>`)}return i}function s(e){let t=e.trimStart().toLowerCase();return t.startsWith(`<!doctype`)||t.startsWith(`<html`)}var c=class a{container;bridge;scripts=[];iframe=null;static cachedLucideScript=null;static lucideScriptPromise=null;messageHandler=null;constructor(e,t){this.container=e,this.bridge=t}async render(e,t){this.dispose(),i?await this.renderInSandbox(e,t,s(e)):s(e)?await this.renderFullDoc(e,t):this.renderInline(e,t)}async renderInSandbox(e,t,i=!1){let a=document.createElement(`iframe`);a.src=chrome.runtime.getURL(`sprinkle-sandbox.html`),a.style.cssText=`width: 100%; flex: 1; border: none; min-height: 0;`,this.iframe=a,console.log(`[sprinkle-renderer] creating sandbox iframe`,a.src),await new Promise((e,t)=>{let r=setTimeout(()=>{console.error(`[sprinkle-renderer] iframe load timed out after 5s`),t(Error(`sprinkle sandbox iframe load timed out`))},5e3);a.addEventListener(`load`,()=>{clearTimeout(r),console.log(`[sprinkle-renderer] iframe loaded, contentWindow:`,!!a.contentWindow),n(a.contentWindow),e()},{once:!0}),a.addEventListener(`error`,e=>{clearTimeout(r),console.error(`[sprinkle-renderer] iframe error:`,e),t(Error(`sprinkle sandbox iframe failed to load`))},{once:!0}),this.container.appendChild(a)}),this.messageHandler=e=>{if(e.source!==a.contentWindow)return;let n=e.data;if(n?.type){if(n.type===`sprinkle-lick`)this.bridge.lick({action:n.action,data:n.data});else if(n.type===`sprinkle-set-state`)this.bridge.setState(n.data);else if(n.type===`sprinkle-close`)this.bridge.close();else if(n.type===`sprinkle-minimize`)this.bridge.minimize();else if(n.type===`sprinkle-stop-cone`)this.bridge.stopCone();else if(n.type===`sprinkle-storage-set`)try{localStorage.setItem(`slicc-sprinkle-ls:${t}:${n.key}`,n.value)}catch(e){console.warn(`[sprinkle-renderer] localStorage setItem failed:`,n.key,e)}else if(n.type===`sprinkle-storage-remove`)try{localStorage.removeItem(`slicc-sprinkle-ls:${t}:${n.key}`)}catch(e){console.warn(`[sprinkle-renderer] localStorage removeItem failed:`,n.key,e)}else if(n.type===`sprinkle-storage-clear`){let e=`slicc-sprinkle-ls:${t}:`;for(let t=localStorage.length-1;t>=0;t--){let n=localStorage.key(t);n?.startsWith(e)&&localStorage.removeItem(n)}}else if(n.type===`sprinkle-attach-image`)this.bridge.attachImage(n.base64,n.name,n.mimeType);else if(n.type===`sprinkle-open`)this.bridge.open(n.path,n.projectRoot?{projectRoot:n.projectRoot}:void 0);else if(n.type===`sprinkle-readfile`)this.bridge.readFile(n.path).then(e=>a.contentWindow?.postMessage({type:`sprinkle-readfile-response`,id:n.id,content:e},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-readfile-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-writefile`)this.bridge.writeFile(n.path,n.content).then(()=>a.contentWindow?.postMessage({type:`sprinkle-writefile-response`,id:n.id},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-writefile-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-readdir`)this.bridge.readDir(n.path).then(e=>a.contentWindow?.postMessage({type:`sprinkle-readdir-response`,id:n.id,entries:e},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-readdir-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-exists`)this.bridge.exists(n.path).then(e=>a.contentWindow?.postMessage({type:`sprinkle-exists-response`,id:n.id,exists:e},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-exists-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-stat`)this.bridge.stat(n.path).then(e=>a.contentWindow?.postMessage({type:`sprinkle-stat-response`,id:n.id,stat:e},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-stat-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-mkdir`)this.bridge.mkdir(n.path).then(()=>a.contentWindow?.postMessage({type:`sprinkle-mkdir-response`,id:n.id},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-mkdir-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-rm`)this.bridge.rm(n.path).then(()=>a.contentWindow?.postMessage({type:`sprinkle-rm-response`,id:n.id},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-rm-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-capture-screen`)this.bridge.captureScreen().then(e=>a.contentWindow?.postMessage({type:`sprinkle-capture-screen-response`,id:n.id,base64:e.base64,width:e.width,height:e.height,mimeType:e.mimeType},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-capture-screen-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-exec`)this.bridge.exec(n.cmd).then(e=>a.contentWindow?.postMessage({type:`sprinkle-exec-response`,id:n.id,result:e},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-exec-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-agent`)this.bridge.agent(n.prompt,n.opts).then(e=>a.contentWindow?.postMessage({type:`sprinkle-agent-response`,id:n.id,result:e},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-agent-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-jsh`)this.bridge._jsh(n.op,n.args).then(e=>a.contentWindow?.postMessage({type:`sprinkle-jsh-response`,id:n.id,result:e},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-jsh-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-device-op`)this.bridge._device(n.channel,n.op,n.args??[]).then(e=>a.contentWindow?.postMessage({type:`sprinkle-device-op-response`,id:n.id,result:e},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-device-op-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-fetch-script`){let e=n.url,t=n.id;fetch(e).then(e=>e.ok?e.text():Promise.reject(Error(`HTTP ${e.status}`))).then(n=>{a.contentWindow?.postMessage({type:`sprinkle-fetch-script-response`,id:t,url:e,text:n},`*`)}).catch(n=>{a.contentWindow?.postMessage({type:`sprinkle-fetch-script-response`,id:t,url:e,error:n instanceof Error?n.message:String(n)},`*`)})}}},window.addEventListener(`message`,this.messageHandler);let s=this.collectThemeCSS(),c={},l=`slicc-sprinkle-ls:${t}:`;for(let e=0;e<localStorage.length;e++){let t=localStorage.key(e);t?.startsWith(l)&&(c[t.slice(l.length)]=localStorage.getItem(t)??``)}let u=this.bridge.getState(),d=``,f=``;if(i){let t=[];e.includes(`<slicc-editor`)&&t.push(fetch(chrome.runtime.getURL(`slicc-editor.js`)).then(e=>e.ok?e.text():``).then(e=>{d=e}).catch(()=>{})),e.includes(`<slicc-diff`)&&t.push(fetch(chrome.runtime.getURL(`slicc-diff.js`)).then(e=>e.ok?e.text():``).then(e=>{f=e}).catch(()=>{})),await Promise.all(t)}let p=await this.getLucideScript(),m=i?await o(e):e;a.contentWindow.postMessage({type:`sprinkle-render`,content:m,name:t,themeCSS:s,savedState:u,savedStorage:c,fullDoc:i,editorScript:d,diffScript:f,lucideScript:p,isLight:r()},`*`)}pushUpdate(e){this.iframe?.contentWindow&&this.iframe.contentWindow.postMessage({type:`sprinkle-update`,data:e},`*`)}pushDeviceEvent(e,t){this.iframe?.contentWindow&&this.iframe.contentWindow.postMessage({type:`sprinkle-device-event`,channel:e,payload:t},`*`)}collectThemeCSS(){return u()}generateBridgeScript(){return`(function() {
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/slicc-editor-DKckizoI.js","assets/preload-helper-CZgWQFsJ.js","assets/dist-BHXb30bf.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-CZgWQFsJ.js";import{a as t,n,r}from"./theme-Ca4mHxHv.js";var i=typeof chrome<`u`&&!!chrome?.runtime?.id,a=/<script\b([^>]*)\bsrc\s*=\s*["'](https?:\/\/[^"']+)["']([^>]*)><\/script>/gi;async function o(e){let t=[],n;for(;(n=a.exec(e))!==null;)t.push({full:n[0],url:n[2],index:n.index});if(a.lastIndex=0,t.length===0)return e;let r=await Promise.all(t.map(async e=>{try{let t=await fetch(e.url);if(!t.ok)throw Error(`HTTP ${t.status}`);return{...e,text:await t.text()}}catch(t){let n=t instanceof Error?t.message:String(t);return{...e,text:`console.error('[sprinkle] Failed to load ${e.url}: ${n}')`}}})),i=e;for(let e=r.length-1;e>=0;e--){let{full:t,text:n}=r[e],a=n.replace(/<\/script/gi,`<\\/script`);i=i.replace(t,()=>`<script>${a}<\/script>`)}return i}function s(e){let t=e.trimStart().toLowerCase();return t.startsWith(`<!doctype`)||t.startsWith(`<html`)}var c=class a{container;bridge;scripts=[];iframe=null;static cachedLucideScript=null;static lucideScriptPromise=null;messageHandler=null;constructor(e,t){this.container=e,this.bridge=t}async render(e,t){this.dispose(),i?await this.renderInSandbox(e,t,s(e)):s(e)?await this.renderFullDoc(e,t):this.renderInline(e,t)}async renderInSandbox(e,t,i=!1){let a=document.createElement(`iframe`);a.src=chrome.runtime.getURL(`sprinkle-sandbox.html`),a.style.cssText=`width: 100%; flex: 1; border: none; min-height: 0;`,this.iframe=a,console.log(`[sprinkle-renderer] creating sandbox iframe`,a.src),await new Promise((e,t)=>{let n=setTimeout(()=>{console.error(`[sprinkle-renderer] iframe load timed out after 5s`),t(Error(`sprinkle sandbox iframe load timed out`))},5e3);a.addEventListener(`load`,()=>{clearTimeout(n),console.log(`[sprinkle-renderer] iframe loaded, contentWindow:`,!!a.contentWindow),r(a.contentWindow),e()},{once:!0}),a.addEventListener(`error`,e=>{clearTimeout(n),console.error(`[sprinkle-renderer] iframe error:`,e),t(Error(`sprinkle sandbox iframe failed to load`))},{once:!0}),this.container.appendChild(a)}),this.messageHandler=e=>{if(e.source!==a.contentWindow)return;let n=e.data;if(n?.type){if(n.type===`sprinkle-lick`)this.bridge.lick({action:n.action,data:n.data});else if(n.type===`sprinkle-set-state`)this.bridge.setState(n.data);else if(n.type===`sprinkle-close`)this.bridge.close();else if(n.type===`sprinkle-minimize`)this.bridge.minimize();else if(n.type===`sprinkle-stop-cone`)this.bridge.stopCone();else if(n.type===`sprinkle-storage-set`)try{localStorage.setItem(`slicc-sprinkle-ls:${t}:${n.key}`,n.value)}catch(e){console.warn(`[sprinkle-renderer] localStorage setItem failed:`,n.key,e)}else if(n.type===`sprinkle-storage-remove`)try{localStorage.removeItem(`slicc-sprinkle-ls:${t}:${n.key}`)}catch(e){console.warn(`[sprinkle-renderer] localStorage removeItem failed:`,n.key,e)}else if(n.type===`sprinkle-storage-clear`){let e=`slicc-sprinkle-ls:${t}:`;for(let t=localStorage.length-1;t>=0;t--){let n=localStorage.key(t);n?.startsWith(e)&&localStorage.removeItem(n)}}else if(n.type===`sprinkle-attach-image`)this.bridge.attachImage(n.base64,n.name,n.mimeType);else if(n.type===`sprinkle-open`)this.bridge.open(n.path,n.projectRoot?{projectRoot:n.projectRoot}:void 0);else if(n.type===`sprinkle-readfile`)this.bridge.readFile(n.path).then(e=>a.contentWindow?.postMessage({type:`sprinkle-readfile-response`,id:n.id,content:e},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-readfile-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-writefile`)this.bridge.writeFile(n.path,n.content).then(()=>a.contentWindow?.postMessage({type:`sprinkle-writefile-response`,id:n.id},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-writefile-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-readdir`)this.bridge.readDir(n.path).then(e=>a.contentWindow?.postMessage({type:`sprinkle-readdir-response`,id:n.id,entries:e},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-readdir-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-exists`)this.bridge.exists(n.path).then(e=>a.contentWindow?.postMessage({type:`sprinkle-exists-response`,id:n.id,exists:e},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-exists-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-stat`)this.bridge.stat(n.path).then(e=>a.contentWindow?.postMessage({type:`sprinkle-stat-response`,id:n.id,stat:e},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-stat-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-mkdir`)this.bridge.mkdir(n.path).then(()=>a.contentWindow?.postMessage({type:`sprinkle-mkdir-response`,id:n.id},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-mkdir-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-rm`)this.bridge.rm(n.path).then(()=>a.contentWindow?.postMessage({type:`sprinkle-rm-response`,id:n.id},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-rm-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-capture-screen`)this.bridge.captureScreen().then(e=>a.contentWindow?.postMessage({type:`sprinkle-capture-screen-response`,id:n.id,base64:e.base64,width:e.width,height:e.height,mimeType:e.mimeType},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-capture-screen-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-exec`)this.bridge.exec(n.cmd).then(e=>a.contentWindow?.postMessage({type:`sprinkle-exec-response`,id:n.id,result:e},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-exec-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-agent`)this.bridge.agent(n.prompt,n.opts).then(e=>a.contentWindow?.postMessage({type:`sprinkle-agent-response`,id:n.id,result:e},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-agent-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-jsh`)this.bridge._jsh(n.op,n.args).then(e=>a.contentWindow?.postMessage({type:`sprinkle-jsh-response`,id:n.id,result:e},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-jsh-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-device-op`)this.bridge._device(n.channel,n.op,n.args??[]).then(e=>a.contentWindow?.postMessage({type:`sprinkle-device-op-response`,id:n.id,result:e},`*`),e=>a.contentWindow?.postMessage({type:`sprinkle-device-op-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-fetch-script`){let e=n.url,t=n.id;fetch(e).then(e=>e.ok?e.text():Promise.reject(Error(`HTTP ${e.status}`))).then(n=>{a.contentWindow?.postMessage({type:`sprinkle-fetch-script-response`,id:t,url:e,text:n},`*`)}).catch(n=>{a.contentWindow?.postMessage({type:`sprinkle-fetch-script-response`,id:t,url:e,error:n instanceof Error?n.message:String(n)},`*`)})}}},window.addEventListener(`message`,this.messageHandler);let s=this.collectThemeCSS(),c={},l=`slicc-sprinkle-ls:${t}:`;for(let e=0;e<localStorage.length;e++){let t=localStorage.key(e);t?.startsWith(l)&&(c[t.slice(l.length)]=localStorage.getItem(t)??``)}let u=this.bridge.getState(),d=``,f=``;if(i){let t=[];e.includes(`<slicc-editor`)&&t.push(fetch(chrome.runtime.getURL(`slicc-editor.js`)).then(e=>e.ok?e.text():``).then(e=>{d=e}).catch(()=>{})),e.includes(`<slicc-diff`)&&t.push(fetch(chrome.runtime.getURL(`slicc-diff.js`)).then(e=>e.ok?e.text():``).then(e=>{f=e}).catch(()=>{})),await Promise.all(t)}let p=await this.getLucideScript(),m=i?await o(e):e;a.contentWindow.postMessage({type:`sprinkle-render`,content:m,name:t,themeCSS:s,savedState:u,savedStorage:c,fullDoc:i,editorScript:d,diffScript:f,lucideScript:p,isLight:n()},`*`)}pushUpdate(e){this.iframe?.contentWindow&&this.iframe.contentWindow.postMessage({type:`sprinkle-update`,data:e},`*`)}pushDeviceEvent(e,t){this.iframe?.contentWindow&&this.iframe.contentWindow.postMessage({type:`sprinkle-device-event`,channel:e,payload:t},`*`)}collectThemeCSS(){return u()}generateBridgeScript(){return`(function() {
3
3
  var _updateListeners = new Set();
4
4
  var _hidInputReportListeners = new Set();
5
5
  var _sprinkleName = '';
@@ -181,7 +181,7 @@ import{t as e}from"./preload-helper-zJ_50EbN.js";import{i as t,n,t as r}from"./t
181
181
  };
182
182
  window.slicc = api;
183
183
  window.bridge = api;
184
- })();`}async renderFullDoc(e,t){let i=`<script>${this.generateBridgeScript()}<\/script>`,a=this.collectThemeCSS(),o=a?`<style>${a}</style>`:``,s=e.includes(`<slicc-editor`)?`<script src="/slicc-editor.js"><\/script>`:``,c=e.includes(`<slicc-diff`)?`<script src="/slicc-diff.js"><\/script>`:``,l=`<script>(function(){try{if(${r()?`true`:`false`})document.documentElement.classList.add('theme-light');}catch(e){}})();<\/script>`+i+o+s+c+`<script src="/lucide-icons.js"><\/script>`,u,d=e.match(/<head\b[^>]*>/i);if(d){let t=d.index+d[0].length;u=e.slice(0,t)+l+e.slice(t)}else{let t=e.match(/<script\b/i);if(t)u=e.slice(0,t.index)+l+e.slice(t.index);else{let t=e.match(/<html\b[^>]*>/i);if(t){let n=t.index+t[0].length;u=e.slice(0,n)+l+e.slice(n)}else u=l+e}}let f=document.createElement(`iframe`);f.setAttribute(`sandbox`,`allow-scripts allow-same-origin`),f.style.cssText=`width: 100%; flex: 1; border: none; min-height: 0;`,f.srcdoc=u,this.iframe=f,await new Promise((e,r)=>{let i=setTimeout(()=>{r(Error(`full-doc iframe load timed out`))},5e3);f.addEventListener(`load`,()=>{clearTimeout(i),n(f.contentWindow);let r=this.bridge.getState();f.contentWindow?.postMessage({type:`sprinkle-init`,name:t,savedState:r},`*`),e()},{once:!0}),f.addEventListener(`error`,e=>{clearTimeout(i),r(Error(`full-doc iframe failed to load`))},{once:!0}),this.container.appendChild(f)}),this.messageHandler=e=>{if(e.source!==f.contentWindow)return;let t=e.data;t?.type&&(t.type===`sprinkle-lick`?this.bridge.lick({action:t.action,data:t.data}):t.type===`sprinkle-set-state`?this.bridge.setState(t.data):t.type===`sprinkle-close`?this.bridge.close():t.type===`sprinkle-minimize`?this.bridge.minimize():t.type===`sprinkle-stop-cone`?this.bridge.stopCone():t.type===`sprinkle-attach-image`?this.bridge.attachImage(t.base64,t.name,t.mimeType):t.type===`sprinkle-readfile`?this.bridge.readFile(t.path).then(e=>f.contentWindow?.postMessage({type:`sprinkle-readfile-response`,id:t.id,content:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-readfile-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-writefile`?this.bridge.writeFile(t.path,t.content).then(()=>f.contentWindow?.postMessage({type:`sprinkle-writefile-response`,id:t.id},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-writefile-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-readdir`?this.bridge.readDir(t.path).then(e=>f.contentWindow?.postMessage({type:`sprinkle-readdir-response`,id:t.id,entries:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-readdir-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-exists`?this.bridge.exists(t.path).then(e=>f.contentWindow?.postMessage({type:`sprinkle-exists-response`,id:t.id,exists:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-exists-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-stat`?this.bridge.stat(t.path).then(e=>f.contentWindow?.postMessage({type:`sprinkle-stat-response`,id:t.id,stat:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-stat-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-mkdir`?this.bridge.mkdir(t.path).then(()=>f.contentWindow?.postMessage({type:`sprinkle-mkdir-response`,id:t.id},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-mkdir-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-rm`?this.bridge.rm(t.path).then(()=>f.contentWindow?.postMessage({type:`sprinkle-rm-response`,id:t.id},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-rm-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-capture-screen`?this.bridge.captureScreen().then(e=>f.contentWindow?.postMessage({type:`sprinkle-capture-screen-response`,id:t.id,base64:e.base64,width:e.width,height:e.height,mimeType:e.mimeType},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-capture-screen-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-exec`?this.bridge.exec(t.cmd).then(e=>f.contentWindow?.postMessage({type:`sprinkle-exec-response`,id:t.id,result:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-exec-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-agent`?this.bridge.agent(t.prompt,t.opts).then(e=>f.contentWindow?.postMessage({type:`sprinkle-agent-response`,id:t.id,result:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-agent-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-jsh`?this.bridge._jsh(t.op,t.args).then(e=>f.contentWindow?.postMessage({type:`sprinkle-jsh-response`,id:t.id,result:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-jsh-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-device-op`&&this.bridge._device(t.channel,t.op,t.args??[]).then(e=>f.contentWindow?.postMessage({type:`sprinkle-device-op-response`,id:t.id,result:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-device-op-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)))},window.addEventListener(`message`,this.messageHandler)}renderInline(t,n){if(t.includes(`<slicc-editor`)&&!customElements.get(`slicc-editor`)&&e(()=>import(`./slicc-editor-BdfBeQCF.js`),__vite__mapDeps([0,1,2])),t.includes(`<slicc-diff`)&&!customElements.get(`slicc-diff`)){let e=document.createElement(`script`);e.src=`/slicc-diff.js`,document.head.appendChild(e)}window.__slicc_sprinkles||(window.__slicc_sprinkles={}),window.__slicc_sprinkles[n]=this.bridge,this.bridge._container=this.container;let r=document.createElement(`div`);r.className=`sprinkle-content`,r.innerHTML=t,this.container.appendChild(r);for(let e of r.querySelectorAll(`.fill[data-value]`)){let t=parseFloat(e.dataset.value||`0`);t>=0&&t<=100&&(e.style.width=`${t}%`)}let i=`window.__slicc_sprinkles[${JSON.stringify(n)}]`;for(let e of r.querySelectorAll(`[onclick]`)){let t=e.getAttribute(`onclick`)||``;/\b(slicc|bridge)\b/.test(t)&&e.setAttribute(`onclick`,t.replace(/\b(slicc|bridge)\b/g,i))}let a=Array.from(r.querySelectorAll(`script`));for(let e of a){e.remove();let t=document.createElement(`script`);for(let n of e.attributes)t.setAttribute(n.name,n.value);if(!e.src){let n=new Set;for(let e of r.querySelectorAll(`[onclick]`)){let t=e.getAttribute(`onclick`)||``;for(let e of t.matchAll(/\b(\w+)\s*\(/g)){let t=e[1];[`slicc`,`bridge`,`lick`,`close`,`exec`,`agent`].includes(t)||n.add(t)}}let a=[...n].map(e=>`if (typeof ${e} === 'function') window.${e} = ${e};`).join(`
184
+ })();`}async renderFullDoc(e,t){let i=`<script>${this.generateBridgeScript()}<\/script>`,a=this.collectThemeCSS(),o=a?`<style>${a}</style>`:``,s=e.includes(`<slicc-editor`)?`<script src="/slicc-editor.js"><\/script>`:``,c=e.includes(`<slicc-diff`)?`<script src="/slicc-diff.js"><\/script>`:``,l=`<script>(function(){try{if(${n()?`true`:`false`})document.documentElement.classList.add('theme-light');}catch(e){}})();<\/script>`+i+o+s+c+`<script src="/lucide-icons.js"><\/script>`,u,d=e.match(/<head\b[^>]*>/i);if(d){let t=d.index+d[0].length;u=e.slice(0,t)+l+e.slice(t)}else{let t=e.match(/<script\b/i);if(t)u=e.slice(0,t.index)+l+e.slice(t.index);else{let t=e.match(/<html\b[^>]*>/i);if(t){let n=t.index+t[0].length;u=e.slice(0,n)+l+e.slice(n)}else u=l+e}}let f=document.createElement(`iframe`);f.setAttribute(`sandbox`,`allow-scripts allow-same-origin`),f.style.cssText=`width: 100%; flex: 1; border: none; min-height: 0;`,f.srcdoc=u,this.iframe=f,await new Promise((e,n)=>{let i=setTimeout(()=>{n(Error(`full-doc iframe load timed out`))},5e3);f.addEventListener(`load`,()=>{clearTimeout(i),r(f.contentWindow);let n=this.bridge.getState();f.contentWindow?.postMessage({type:`sprinkle-init`,name:t,savedState:n},`*`),e()},{once:!0}),f.addEventListener(`error`,e=>{clearTimeout(i),n(Error(`full-doc iframe failed to load`))},{once:!0}),this.container.appendChild(f)}),this.messageHandler=e=>{if(e.source!==f.contentWindow)return;let t=e.data;t?.type&&(t.type===`sprinkle-lick`?this.bridge.lick({action:t.action,data:t.data}):t.type===`sprinkle-set-state`?this.bridge.setState(t.data):t.type===`sprinkle-close`?this.bridge.close():t.type===`sprinkle-minimize`?this.bridge.minimize():t.type===`sprinkle-stop-cone`?this.bridge.stopCone():t.type===`sprinkle-attach-image`?this.bridge.attachImage(t.base64,t.name,t.mimeType):t.type===`sprinkle-readfile`?this.bridge.readFile(t.path).then(e=>f.contentWindow?.postMessage({type:`sprinkle-readfile-response`,id:t.id,content:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-readfile-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-writefile`?this.bridge.writeFile(t.path,t.content).then(()=>f.contentWindow?.postMessage({type:`sprinkle-writefile-response`,id:t.id},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-writefile-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-readdir`?this.bridge.readDir(t.path).then(e=>f.contentWindow?.postMessage({type:`sprinkle-readdir-response`,id:t.id,entries:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-readdir-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-exists`?this.bridge.exists(t.path).then(e=>f.contentWindow?.postMessage({type:`sprinkle-exists-response`,id:t.id,exists:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-exists-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-stat`?this.bridge.stat(t.path).then(e=>f.contentWindow?.postMessage({type:`sprinkle-stat-response`,id:t.id,stat:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-stat-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-mkdir`?this.bridge.mkdir(t.path).then(()=>f.contentWindow?.postMessage({type:`sprinkle-mkdir-response`,id:t.id},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-mkdir-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-rm`?this.bridge.rm(t.path).then(()=>f.contentWindow?.postMessage({type:`sprinkle-rm-response`,id:t.id},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-rm-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-capture-screen`?this.bridge.captureScreen().then(e=>f.contentWindow?.postMessage({type:`sprinkle-capture-screen-response`,id:t.id,base64:e.base64,width:e.width,height:e.height,mimeType:e.mimeType},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-capture-screen-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-exec`?this.bridge.exec(t.cmd).then(e=>f.contentWindow?.postMessage({type:`sprinkle-exec-response`,id:t.id,result:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-exec-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-agent`?this.bridge.agent(t.prompt,t.opts).then(e=>f.contentWindow?.postMessage({type:`sprinkle-agent-response`,id:t.id,result:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-agent-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-jsh`?this.bridge._jsh(t.op,t.args).then(e=>f.contentWindow?.postMessage({type:`sprinkle-jsh-response`,id:t.id,result:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-jsh-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-device-op`&&this.bridge._device(t.channel,t.op,t.args??[]).then(e=>f.contentWindow?.postMessage({type:`sprinkle-device-op-response`,id:t.id,result:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-device-op-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)))},window.addEventListener(`message`,this.messageHandler)}renderInline(t,n){if(t.includes(`<slicc-editor`)&&!customElements.get(`slicc-editor`)&&e(()=>import(`./slicc-editor-DKckizoI.js`),__vite__mapDeps([0,1,2])),t.includes(`<slicc-diff`)&&!customElements.get(`slicc-diff`)){let e=document.createElement(`script`);e.src=`/slicc-diff.js`,document.head.appendChild(e)}window.__slicc_sprinkles||(window.__slicc_sprinkles={}),window.__slicc_sprinkles[n]=this.bridge,this.bridge._container=this.container;let r=document.createElement(`div`);r.className=`sprinkle-content`,r.innerHTML=t,this.container.appendChild(r);for(let e of r.querySelectorAll(`.fill[data-value]`)){let t=parseFloat(e.dataset.value||`0`);t>=0&&t<=100&&(e.style.width=`${t}%`)}let i=`window.__slicc_sprinkles[${JSON.stringify(n)}]`;for(let e of r.querySelectorAll(`[onclick]`)){let t=e.getAttribute(`onclick`)||``;/\b(slicc|bridge)\b/.test(t)&&e.setAttribute(`onclick`,t.replace(/\b(slicc|bridge)\b/g,i))}let a=Array.from(r.querySelectorAll(`script`));for(let e of a){e.remove();let t=document.createElement(`script`);for(let n of e.attributes)t.setAttribute(n.name,n.value);if(!e.src){let n=new Set;for(let e of r.querySelectorAll(`[onclick]`)){let t=e.getAttribute(`onclick`)||``;for(let e of t.matchAll(/\b(\w+)\s*\(/g)){let t=e[1];[`slicc`,`bridge`,`lick`,`close`,`exec`,`agent`].includes(t)||n.add(t)}}let a=[...n].map(e=>`if (typeof ${e} === 'function') window.${e} = ${e};`).join(`
185
185
  `);t.textContent=`(function() { var slicc = ${i}; var bridge = slicc;\n`+e.textContent+(a?`
186
186
  `+a:``)+`
187
187
  })();`}r.appendChild(t),this.scripts.push(t)}}dispose(){this.messageHandler&&=(window.removeEventListener(`message`,this.messageHandler),null),this.iframe&&=(t(this.iframe.contentWindow),this.iframe.remove(),null);for(let e of this.scripts)e.remove();this.scripts=[];let e=this.container.querySelector(`.sprinkle-content`);e&&e.remove(),window.__slicc_sprinkles&&delete window.__slicc_sprinkles[this.bridge.name]}async getLucideScript(){return a.cachedLucideScript===null?(a.lucideScriptPromise===null&&(a.lucideScriptPromise=(async()=>{try{let e=await fetch(chrome.runtime.getURL(`lucide-icons.js`));if(e.ok){let t=await e.text();return a.cachedLucideScript=t,t}}catch{}return a.cachedLucideScript=``,``})()),a.lucideScriptPromise):a.cachedLucideScript}};function l(e,t){return e.replace(/url\(\s*['"]?([^'")]+)['"]?\s*\)/g,(e,n)=>{if(/^(https?:|data:|blob:)/i.test(n))return`url('${n}')`;try{return`url('${new URL(n,t).href}')`}catch{return`url('${n}')`}})}function u(){if(typeof getComputedStyle!=`function`)return``;let e=[],t=[],n=[],r=location.href,i=e=>e===`:root`||e===`:root.theme-light`||e.startsWith(`.theme-light `)||e===`.theme-light`||e.split(`,`).some(e=>{let t=e.trim();return t===`:root`||t===`:root.theme-light`||t.startsWith(`.theme-light `)||t===`.theme-light`});for(let a of document.styleSheets)try{for(let o of a.cssRules)if(o instanceof CSSFontFaceRule)e.push(l(o.cssText,r));else if(o instanceof CSSStyleRule){let e=o.selectorText;i(e)&&t.push(o.cssText),(e.includes(`.sprinkle-`)||e.includes(`.fill`))&&n.push(o.cssText)}}catch{}return e.join(`
@@ -1,2 +1,2 @@
1
- import{t as e}from"./chunk-aKtaBQYM.js";import{t}from"./__vite-browser-external-C7iut881.js";var n=e(((e,n)=>{var r=void 0,i=function(e){return r||(r=new Promise(function(r,i){var a=e===void 0?{}:e,o=a.onAbort;a.onAbort=function(e){i(Error(e)),o&&o(e)},a.postRun=a.postRun||[],a.postRun.push(function(){r(a)}),n=void 0;var s;s||=a===void 0?{}:a;var c=!!globalThis.window,l=!!globalThis.WorkerGlobalScope,u=globalThis.process?.versions?.node&&globalThis.process?.type!=`renderer`;s.onRuntimeInitialized=function(){function e(e,t){switch(typeof t){case`boolean`:O(e,+!!t);break;case`number`:ge(e,t);break;case`string`:T(e,t,-1,-1);break;case`object`:if(t===null)_e(e);else if(t.length!=null){var n=Ft(t.length);v.set(t,n),E(e,n,t.length,-1),Z(n)}else A(e,`Wrong API use : tried to return a value of an unknown type (`+t+`).`,-1);break;default:_e(e)}}function t(e,t){for(var n=[],r=0;r<e;r+=1){var i=D(t+4*r,`i32`),a=de(i);if(a===1||a===2)i=he(i);else if(a===3)i=pe(i);else if(a===4){a=i,i=fe(a),a=me(a);for(var o=new Uint8Array(i),s=0;s<i;s+=1)o[s]=v[a+s];i=o}else i=null;n.push(i)}return n}function n(e,t){this.Qa=e,this.db=t,this.Oa=1,this.lb=[]}function r(e,t){if(this.db=t,this.eb=kt(e),this.eb===null)throw Error(`Unable to allocate memory for the SQL string`);this.kb=this.eb,this.Za=this.qb=null}function i(e){if(this.filename=`dbfile_`+(4294967295*Math.random()>>>0),e!=null){var t=this.filename,n=`/`,r=t;if(n&&(n=typeof n==`string`?n:Ve(n),r=t?be(n+`/`+t):n),t=Me(!0,!0),r=nt(r,t),e){if(typeof e==`string`){n=Array(e.length);for(var i=0,o=e.length;i<o;++i)n[i]=e.charCodeAt(i);e=n}lt(r,t|146),n=G(r,577),mt(n,e,0,e.length,0),dt(n),lt(r,t)}}this.handleError(c(this.filename,a)),this.db=D(a,`i32`),ye(this.db),this.fb={},this.Sa={}}var a=Q(4),o=s.cwrap,c=o(`sqlite3_open`,`number`,[`string`,`number`]),l=o(`sqlite3_close_v2`,`number`,[`number`]),u=o(`sqlite3_exec`,`number`,[`number`,`string`,`number`,`number`,`number`]),ee=o(`sqlite3_changes`,`number`,[`number`]),te=o(`sqlite3_prepare_v2`,`number`,[`number`,`string`,`number`,`number`,`number`]),ne=o(`sqlite3_sql`,`string`,[`number`]),d=o(`sqlite3_normalized_sql`,`string`,[`number`]),f=o(`sqlite3_prepare_v2`,`number`,[`number`,`number`,`number`,`number`,`number`]),p=o(`sqlite3_bind_text`,`number`,[`number`,`number`,`number`,`number`,`number`]),m=o(`sqlite3_bind_blob`,`number`,[`number`,`number`,`number`,`number`,`number`]),re=o(`sqlite3_bind_double`,`number`,[`number`,`number`,`number`]),h=o(`sqlite3_bind_int`,`number`,[`number`,`number`,`number`]),g=o(`sqlite3_bind_parameter_index`,`number`,[`number`,`string`]),ie=o(`sqlite3_step`,`number`,[`number`]),ae=o(`sqlite3_errmsg`,`string`,[`number`]),_=o(`sqlite3_column_count`,`number`,[`number`]),y=o(`sqlite3_data_count`,`number`,[`number`]),b=o(`sqlite3_column_double`,`number`,[`number`,`number`]),x=o(`sqlite3_column_text`,`string`,[`number`,`number`]),S=o(`sqlite3_column_blob`,`number`,[`number`,`number`]),oe=o(`sqlite3_column_bytes`,`number`,[`number`,`number`]),se=o(`sqlite3_column_type`,`number`,[`number`,`number`]),C=o(`sqlite3_column_name`,`string`,[`number`,`number`]),ce=o(`sqlite3_reset`,`number`,[`number`]),w=o(`sqlite3_clear_bindings`,`number`,[`number`]),le=o(`sqlite3_finalize`,`number`,[`number`]),ue=o(`sqlite3_create_function_v2`,`number`,`number string number number number number number number number`.split(` `)),de=o(`sqlite3_value_type`,`number`,[`number`]),fe=o(`sqlite3_value_bytes`,`number`,[`number`]),pe=o(`sqlite3_value_text`,`string`,[`number`]),me=o(`sqlite3_value_blob`,`number`,[`number`]),he=o(`sqlite3_value_double`,`number`,[`number`]),ge=o(`sqlite3_result_double`,``,[`number`,`number`]),_e=o(`sqlite3_result_null`,``,[`number`]),T=o(`sqlite3_result_text`,``,[`number`,`string`,`number`,`number`]),E=o(`sqlite3_result_blob`,``,[`number`,`number`,`number`,`number`]),O=o(`sqlite3_result_int`,``,[`number`,`number`]),A=o(`sqlite3_result_error`,``,[`number`,`string`,`number`]),ve=o(`sqlite3_aggregate_context`,`number`,[`number`,`number`]),ye=o(`RegisterExtensionFunctions`,`number`,[`number`]),xe=o(`sqlite3_update_hook`,`number`,[`number`,`number`,`number`]);n.prototype.bind=function(e){if(!this.Qa)throw`Statement closed`;return this.reset(),Array.isArray(e)?this.Cb(e):typeof e==`object`&&e?this.Db(e):!0},n.prototype.step=function(){if(!this.Qa)throw`Statement closed`;this.Oa=1;var e=ie(this.Qa);switch(e){case 100:return!0;case 101:return!1;default:throw this.db.handleError(e)}},n.prototype.wb=function(e){return e??(e=this.Oa,this.Oa+=1),b(this.Qa,e)},n.prototype.Gb=function(e){if(e??(e=this.Oa,this.Oa+=1),e=x(this.Qa,e),typeof BigInt!=`function`)throw Error(`BigInt is not supported`);return BigInt(e)},n.prototype.Hb=function(e){return e??(e=this.Oa,this.Oa+=1),x(this.Qa,e)},n.prototype.getBlob=function(e){e??(e=this.Oa,this.Oa+=1);var t=oe(this.Qa,e);e=S(this.Qa,e);for(var n=new Uint8Array(t),r=0;r<t;r+=1)n[r]=v[e+r];return n},n.prototype.get=function(e,t){t||={},e!=null&&this.bind(e)&&this.step(),e=[];for(var n=y(this.Qa),r=0;r<n;r+=1)switch(se(this.Qa,r)){case 1:var i=t.useBigInt?this.Gb(r):this.wb(r);e.push(i);break;case 2:e.push(this.wb(r));break;case 3:e.push(this.Hb(r));break;case 4:e.push(this.getBlob(r));break;default:e.push(null)}return e},n.prototype.getColumnNames=function(){for(var e=[],t=_(this.Qa),n=0;n<t;n+=1)e.push(C(this.Qa,n));return e},n.prototype.getAsObject=function(e,t){e=this.get(e,t),t=this.getColumnNames();for(var n={},r=0;r<t.length;r+=1)n[t[r]]=e[r];return n},n.prototype.getSQL=function(){return ne(this.Qa)},n.prototype.getNormalizedSQL=function(){return d(this.Qa)},n.prototype.run=function(e){return e!=null&&this.bind(e),this.step(),this.reset()},n.prototype.tb=function(e,t){t??(t=this.Oa,this.Oa+=1),e=kt(e),this.lb.push(e),this.db.handleError(p(this.Qa,t,e,-1,0))},n.prototype.Bb=function(e,t){t??(t=this.Oa,this.Oa+=1);var n=Ft(e.length);v.set(e,n),this.lb.push(n),this.db.handleError(m(this.Qa,t,n,e.length,0))},n.prototype.sb=function(e,t){t??(t=this.Oa,this.Oa+=1),this.db.handleError((e===(e|0)?h:re)(this.Qa,t,e))},n.prototype.Eb=function(e){e??(e=this.Oa,this.Oa+=1),m(this.Qa,e,0,0,0)},n.prototype.ub=function(e,t){switch(t??(t=this.Oa,this.Oa+=1),typeof e){case`string`:this.tb(e,t);return;case`number`:this.sb(e,t);return;case`bigint`:this.tb(e.toString(),t);return;case`boolean`:this.sb(e+0,t);return;case`object`:if(e===null){this.Eb(t);return}if(e.length!=null){this.Bb(e,t);return}}throw`Wrong API use : tried to bind a value of an unknown type (`+e+`).`},n.prototype.Db=function(e){var t=this;return Object.keys(e).forEach(function(n){var r=g(t.Qa,n);r!==0&&t.ub(e[n],r)}),!0},n.prototype.Cb=function(e){for(var t=0;t<e.length;t+=1)this.ub(e[t],t+1);return!0},n.prototype.reset=function(){return this.freemem(),w(this.Qa)===0&&ce(this.Qa)===0},n.prototype.freemem=function(){for(var e;(e=this.lb.pop())!==void 0;)Z(e)},n.prototype.free=function(){this.freemem();var e=le(this.Qa)===0;return delete this.db.fb[this.Qa],this.Qa=0,e},r.prototype.next=function(){if(this.eb===null)return{done:!0};if(this.Za!==null&&(this.Za.free(),this.Za=null),!this.db.db)throw this.nb(),Error(`Database closed`);var e=zt(),t=Q(4);k(a),k(t);try{this.db.handleError(f(this.db.db,this.kb,-1,a,t)),this.kb=D(t,`i32`);var r=D(a,`i32`);return r===0?(this.nb(),{done:!0}):(this.Za=new n(r,this.db),this.db.fb[r]=this.Za,{value:this.Za,done:!1})}catch(e){throw this.qb=j(this.kb),this.nb(),e}finally{Rt(e)}},r.prototype.nb=function(){Z(this.eb),this.eb=null},r.prototype.getRemainingSQL=function(){return this.qb===null?j(this.kb):this.qb},typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`&&(r.prototype[Symbol.iterator]=function(){return this}),i.prototype.run=function(e,t){if(!this.db)throw`Database closed`;if(t){e=this.prepare(e,t);try{e.step()}finally{e.free()}}else this.handleError(u(this.db,e,0,0,a));return this},i.prototype.exec=function(e,t,r){if(!this.db)throw`Database closed`;var i=null,o=null,s=null;try{s=o=kt(e);var c=Q(4);for(e=[];D(s,`i8`)!==0;){k(a),k(c),this.handleError(f(this.db,s,-1,a,c));var l=D(a,`i32`);if(s=D(c,`i32`),l!==0){var u=null;for(i=new n(l,this),t!=null&&i.bind(t);i.step();)u===null&&(u={columns:i.getColumnNames(),values:[]},e.push(u)),u.values.push(i.get(null,r));i.free()}}return e}catch(e){throw i&&i.free(),e}finally{o&&Z(o)}},i.prototype.each=function(e,t,n,r,i){typeof t==`function`&&(r=n,n=t,t=void 0),e=this.prepare(e,t);try{for(;e.step();)n(e.getAsObject(null,i))}finally{e.free()}if(typeof r==`function`)return r()},i.prototype.prepare=function(e,t){if(k(a),this.handleError(te(this.db,e,-1,a,0)),e=D(a,`i32`),e===0)throw`Nothing to prepare`;var r=new n(e,this);return t!=null&&r.bind(t),this.fb[e]=r},i.prototype.iterateStatements=function(e){return new r(e,this)},i.prototype.export=function(){Object.values(this.fb).forEach(function(e){e.free()}),Object.values(this.Sa).forEach(X),this.Sa={},this.handleError(l(this.db));var e=ht(this.filename);return this.handleError(c(this.filename,a)),this.db=D(a,`i32`),ye(this.db),e},i.prototype.close=function(){this.db!==null&&(Object.values(this.fb).forEach(function(e){e.free()}),Object.values(this.Sa).forEach(X),this.Sa={},this.Ya&&=(X(this.Ya),void 0),this.handleError(l(this.db)),ot(`/`+this.filename),this.db=null)},i.prototype.handleError=function(e){if(e===0)return null;throw e=ae(this.db),Error(e)},i.prototype.getRowsModified=function(){return ee(this.db)},i.prototype.create_function=function(n,r){Object.prototype.hasOwnProperty.call(this.Sa,n)&&(X(this.Sa[n]),delete this.Sa[n]);var i=Pt(function(n,i,a){i=t(i,a);try{var o=r.apply(null,i)}catch(e){A(n,e,-1);return}e(n,o)},`viii`);return this.Sa[n]=i,this.handleError(ue(this.db,n,r.length,1,0,i,0,0,0)),this},i.prototype.create_aggregate=function(n,r){var i=r.init||function(){return null},a=r.finalize||function(e){return e},o=r.step;if(!o)throw`An aggregate function must have a step function in `+n;var s={};Object.hasOwnProperty.call(this.Sa,n)&&(X(this.Sa[n]),delete this.Sa[n]),r=n+`__finalize`,Object.hasOwnProperty.call(this.Sa,r)&&(X(this.Sa[r]),delete this.Sa[r]);var c=Pt(function(e,n,r){var a=ve(e,1);Object.hasOwnProperty.call(s,a)||(s[a]=i()),n=t(n,r),n=[s[a]].concat(n);try{s[a]=o.apply(null,n)}catch(t){delete s[a],A(e,t,-1)}},`viii`),l=Pt(function(t){var n=ve(t,1);try{var r=a(s[n])}catch(e){delete s[n],A(t,e,-1);return}e(t,r),delete s[n]},`vi`);return this.Sa[n]=c,this.Sa[r]=l,this.handleError(ue(this.db,n,o.length-1,1,0,0,c,l,0)),this},i.prototype.updateHook=function(e){return this.Ya&&=(xe(this.db,0,0),X(this.Ya),void 0),e?(this.Ya=Pt(function(t,n,r,i,a){switch(n){case 18:t=`insert`;break;case 23:t=`update`;break;case 9:t=`delete`;break;default:throw`unknown operationCode in updateHook callback: `+n}if(r=j(r),i=j(i),a>2**53-1)throw`rowId too big to fit inside a Number`;e(t,r,i,Number(a))},`viiiij`),xe(this.db,this.Ya,0),this):this},s.Database=i};var ee=`./this.program`,te=(e,t)=>{throw t},ne=globalThis.document?.currentScript?.src;typeof __filename<`u`?ne=__filename:l&&(ne=self.location.href);var d=``,f,p;if(u){var m=t();d=__dirname+`/`,p=e=>(e=_(e)?new URL(e):e,m.readFileSync(e)),f=async e=>(e=_(e)?new URL(e):e,m.readFileSync(e,void 0)),1<process.argv.length&&(ee=process.argv[1].replace(/\\/g,`/`)),process.argv.slice(2),n!==void 0&&(n.exports=s),te=(e,t)=>{throw process.exitCode=e,t}}else if(c||l){try{d=new URL(`.`,ne).href}catch{}l&&(p=e=>{var t=new XMLHttpRequest;return t.open(`GET`,e,!1),t.responseType=`arraybuffer`,t.send(null),new Uint8Array(t.response)}),f=async e=>{if(_(e))return new Promise((t,n)=>{var r=new XMLHttpRequest;r.open(`GET`,e,!0),r.responseType=`arraybuffer`,r.onload=()=>{r.status==200||r.status==0&&r.response?t(r.response):n(r.status)},r.onerror=n,r.send(null)});var t=await fetch(e,{credentials:`same-origin`});if(t.ok)return t.arrayBuffer();throw Error(t.status+` : `+t.url)}}var re=console.log.bind(console),h=console.error.bind(console),g,ie=!1,ae,_=e=>e.startsWith(`file://`),v,y,b,x,S,oe,se,C;function ce(){var e=Bt.buffer;v=new Int8Array(e),b=new Int16Array(e),y=new Uint8Array(e),new Uint16Array(e),x=new Int32Array(e),S=new Uint32Array(e),oe=new Float32Array(e),se=new Float64Array(e),C=new BigInt64Array(e),new BigUint64Array(e)}function w(e){throw s.onAbort?.(e),e=`Aborted(`+e+`)`,h(e),ie=!0,new WebAssembly.RuntimeError(e+`. Build with -sASSERTIONS for more info.`)}var le;async function ue(e){if(!g)try{var t=await f(e);return new Uint8Array(t)}catch{}if(e==le&&g)e=new Uint8Array(g);else if(p)e=p(e);else throw`both async and sync fetching of the wasm failed`;return e}async function de(e,t){try{var n=await ue(e);return await WebAssembly.instantiate(n,t)}catch(e){h(`failed to asynchronously prepare wasm: ${e}`),w(e)}}async function fe(e){var t=le;if(!g&&!_(t)&&!u)try{var n=fetch(t,{credentials:`same-origin`});return await WebAssembly.instantiateStreaming(n,e)}catch(e){h(`wasm streaming compile failed: ${e}`),h(`falling back to ArrayBuffer instantiation`)}return de(t,e)}class pe{name=`ExitStatus`;constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var me=e=>{for(;0<e.length;)e.shift()(s)},he=[],ge=[],_e=()=>{var e=s.preRun.shift();ge.push(e)},T=0,E=null;function D(e,t=`i8`){switch(t.endsWith(`*`)&&(t=`*`),t){case`i1`:return v[e];case`i8`:return v[e];case`i16`:return b[e>>1];case`i32`:return x[e>>2];case`i64`:return C[e>>3];case`float`:return oe[e>>2];case`double`:return se[e>>3];case`*`:return S[e>>2];default:w(`invalid type for getValue: ${t}`)}}var O=!0;function k(e){var t=`i32`;switch(t.endsWith(`*`)&&(t=`*`),t){case`i1`:v[e]=0;break;case`i8`:v[e]=0;break;case`i16`:b[e>>1]=0;break;case`i32`:x[e>>2]=0;break;case`i64`:C[e>>3]=BigInt(0);break;case`float`:oe[e>>2]=0;break;case`double`:se[e>>3]=0;break;case`*`:S[e>>2]=0;break;default:w(`invalid type for setValue: ${t}`)}}var A=new TextDecoder,ve=(e,t,n,r)=>{if(n=t+n,r)return n;for(;e[t]&&!(t>=n);)++t;return t},j=(e,t,n)=>e?A.decode(y.subarray(e,ve(y,e,t,n))):``,ye=(e,t)=>{for(var n=0,r=e.length-1;0<=r;r--){var i=e[r];i===`.`?e.splice(r,1):i===`..`?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n;n--)e.unshift(`..`);return e},be=e=>{var t=e.charAt(0)===`/`,n=e.slice(-1)===`/`;return(e=ye(e.split(`/`).filter(e=>!!e),!t).join(`/`))||t||(e=`.`),e&&n&&(e+=`/`),(t?`/`:``)+e},xe=e=>{var t=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1);return e=t[0],t=t[1],!e&&!t?`.`:(t&&=t.slice(0,-1),e+t)},Se=e=>e&&e.match(/([^\/]+|\/)\/*$/)[1],Ce=()=>{if(u){var e=t();return t=>e.randomFillSync(t)}return e=>crypto.getRandomValues(e)},we=e=>{(we=Ce())(e)},Te=(...e)=>{for(var t=``,n=!1,r=e.length-1;-1<=r&&!n;r--){if(n=0<=r?e[r]:`/`,typeof n!=`string`)throw TypeError(`Arguments to path.resolve must be strings`);if(!n)return``;t=n+`/`+t,n=n.charAt(0)===`/`}return t=ye(t.split(`/`).filter(e=>!!e),!n).join(`/`),(n?`/`:``)+t||`.`},M=e=>{var t=ve(e,0);return A.decode(e.buffer?e.subarray(0,t):new Uint8Array(e.slice(0,t)))},Ee=[],N=e=>{for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);127>=r?t++:2047>=r?t+=2:55296<=r&&57343>=r?(t+=4,++n):t+=3}return t},P=(e,t,n,r)=>{if(!(0<r))return 0;var i=n;r=n+r-1;for(var a=0;a<e.length;++a){var o=e.codePointAt(a);if(127>=o){if(n>=r)break;t[n++]=o}else if(2047>=o){if(n+1>=r)break;t[n++]=192|o>>6,t[n++]=128|o&63}else if(65535>=o){if(n+2>=r)break;t[n++]=224|o>>12,t[n++]=128|o>>6&63,t[n++]=128|o&63}else{if(n+3>=r)break;t[n++]=240|o>>18,t[n++]=128|o>>12&63,t[n++]=128|o>>6&63,t[n++]=128|o&63,a++}}return t[n]=0,n-i},De=[];function Oe(e,t){De[e]={input:[],output:[],cb:t},$e(e,ke)}var ke={open(e){var t=De[e.node.rdev];if(!t)throw new R(43);e.tty=t,e.seekable=!1},close(e){e.tty.cb.fsync(e.tty)},fsync(e){e.tty.cb.fsync(e.tty)},read(e,t,n,r){if(!e.tty||!e.tty.cb.xb)throw new R(60);for(var i=0,a=0;a<r;a++){try{var o=e.tty.cb.xb(e.tty)}catch{throw new R(29)}if(o===void 0&&i===0)throw new R(6);if(o==null)break;i++,t[n+a]=o}return i&&(e.node.atime=Date.now()),i},write(e,t,n,r){if(!e.tty||!e.tty.cb.rb)throw new R(60);try{for(var i=0;i<r;i++)e.tty.cb.rb(e.tty,t[n+i])}catch{throw new R(29)}return r&&(e.node.mtime=e.node.ctime=Date.now()),i}},Ae={xb(){a:{if(!Ee.length){var e=null;if(u){var t=Buffer.alloc(256),n=0,r=process.stdin.fd;try{n=m.readSync(r,t,0,256)}catch(e){if(e.toString().includes(`EOF`))n=0;else throw e}0<n&&(e=t.slice(0,n).toString(`utf-8`))}else globalThis.window?.prompt&&(e=window.prompt(`Input: `),e!==null&&(e+=`
1
+ import{t as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./__vite-browser-external-SwrSgYTf.js";var n=e(((e,n)=>{var r=void 0,i=function(e){return r||(r=new Promise(function(r,i){var a=e===void 0?{}:e,o=a.onAbort;a.onAbort=function(e){i(Error(e)),o&&o(e)},a.postRun=a.postRun||[],a.postRun.push(function(){r(a)}),n=void 0;var s;s||=a===void 0?{}:a;var c=!!globalThis.window,l=!!globalThis.WorkerGlobalScope,u=globalThis.process?.versions?.node&&globalThis.process?.type!=`renderer`;s.onRuntimeInitialized=function(){function e(e,t){switch(typeof t){case`boolean`:O(e,+!!t);break;case`number`:ge(e,t);break;case`string`:T(e,t,-1,-1);break;case`object`:if(t===null)_e(e);else if(t.length!=null){var n=Ft(t.length);v.set(t,n),E(e,n,t.length,-1),Z(n)}else A(e,`Wrong API use : tried to return a value of an unknown type (`+t+`).`,-1);break;default:_e(e)}}function t(e,t){for(var n=[],r=0;r<e;r+=1){var i=D(t+4*r,`i32`),a=de(i);if(a===1||a===2)i=he(i);else if(a===3)i=pe(i);else if(a===4){a=i,i=fe(a),a=me(a);for(var o=new Uint8Array(i),s=0;s<i;s+=1)o[s]=v[a+s];i=o}else i=null;n.push(i)}return n}function n(e,t){this.Qa=e,this.db=t,this.Oa=1,this.lb=[]}function r(e,t){if(this.db=t,this.eb=kt(e),this.eb===null)throw Error(`Unable to allocate memory for the SQL string`);this.kb=this.eb,this.Za=this.qb=null}function i(e){if(this.filename=`dbfile_`+(4294967295*Math.random()>>>0),e!=null){var t=this.filename,n=`/`,r=t;if(n&&(n=typeof n==`string`?n:Ve(n),r=t?be(n+`/`+t):n),t=Me(!0,!0),r=nt(r,t),e){if(typeof e==`string`){n=Array(e.length);for(var i=0,o=e.length;i<o;++i)n[i]=e.charCodeAt(i);e=n}lt(r,t|146),n=G(r,577),mt(n,e,0,e.length,0),dt(n),lt(r,t)}}this.handleError(c(this.filename,a)),this.db=D(a,`i32`),ye(this.db),this.fb={},this.Sa={}}var a=Q(4),o=s.cwrap,c=o(`sqlite3_open`,`number`,[`string`,`number`]),l=o(`sqlite3_close_v2`,`number`,[`number`]),u=o(`sqlite3_exec`,`number`,[`number`,`string`,`number`,`number`,`number`]),ee=o(`sqlite3_changes`,`number`,[`number`]),te=o(`sqlite3_prepare_v2`,`number`,[`number`,`string`,`number`,`number`,`number`]),ne=o(`sqlite3_sql`,`string`,[`number`]),d=o(`sqlite3_normalized_sql`,`string`,[`number`]),f=o(`sqlite3_prepare_v2`,`number`,[`number`,`number`,`number`,`number`,`number`]),p=o(`sqlite3_bind_text`,`number`,[`number`,`number`,`number`,`number`,`number`]),m=o(`sqlite3_bind_blob`,`number`,[`number`,`number`,`number`,`number`,`number`]),re=o(`sqlite3_bind_double`,`number`,[`number`,`number`,`number`]),h=o(`sqlite3_bind_int`,`number`,[`number`,`number`,`number`]),g=o(`sqlite3_bind_parameter_index`,`number`,[`number`,`string`]),ie=o(`sqlite3_step`,`number`,[`number`]),ae=o(`sqlite3_errmsg`,`string`,[`number`]),_=o(`sqlite3_column_count`,`number`,[`number`]),y=o(`sqlite3_data_count`,`number`,[`number`]),b=o(`sqlite3_column_double`,`number`,[`number`,`number`]),x=o(`sqlite3_column_text`,`string`,[`number`,`number`]),S=o(`sqlite3_column_blob`,`number`,[`number`,`number`]),oe=o(`sqlite3_column_bytes`,`number`,[`number`,`number`]),se=o(`sqlite3_column_type`,`number`,[`number`,`number`]),C=o(`sqlite3_column_name`,`string`,[`number`,`number`]),ce=o(`sqlite3_reset`,`number`,[`number`]),w=o(`sqlite3_clear_bindings`,`number`,[`number`]),le=o(`sqlite3_finalize`,`number`,[`number`]),ue=o(`sqlite3_create_function_v2`,`number`,`number string number number number number number number number`.split(` `)),de=o(`sqlite3_value_type`,`number`,[`number`]),fe=o(`sqlite3_value_bytes`,`number`,[`number`]),pe=o(`sqlite3_value_text`,`string`,[`number`]),me=o(`sqlite3_value_blob`,`number`,[`number`]),he=o(`sqlite3_value_double`,`number`,[`number`]),ge=o(`sqlite3_result_double`,``,[`number`,`number`]),_e=o(`sqlite3_result_null`,``,[`number`]),T=o(`sqlite3_result_text`,``,[`number`,`string`,`number`,`number`]),E=o(`sqlite3_result_blob`,``,[`number`,`number`,`number`,`number`]),O=o(`sqlite3_result_int`,``,[`number`,`number`]),A=o(`sqlite3_result_error`,``,[`number`,`string`,`number`]),ve=o(`sqlite3_aggregate_context`,`number`,[`number`,`number`]),ye=o(`RegisterExtensionFunctions`,`number`,[`number`]),xe=o(`sqlite3_update_hook`,`number`,[`number`,`number`,`number`]);n.prototype.bind=function(e){if(!this.Qa)throw`Statement closed`;return this.reset(),Array.isArray(e)?this.Cb(e):typeof e==`object`&&e?this.Db(e):!0},n.prototype.step=function(){if(!this.Qa)throw`Statement closed`;this.Oa=1;var e=ie(this.Qa);switch(e){case 100:return!0;case 101:return!1;default:throw this.db.handleError(e)}},n.prototype.wb=function(e){return e??(e=this.Oa,this.Oa+=1),b(this.Qa,e)},n.prototype.Gb=function(e){if(e??(e=this.Oa,this.Oa+=1),e=x(this.Qa,e),typeof BigInt!=`function`)throw Error(`BigInt is not supported`);return BigInt(e)},n.prototype.Hb=function(e){return e??(e=this.Oa,this.Oa+=1),x(this.Qa,e)},n.prototype.getBlob=function(e){e??(e=this.Oa,this.Oa+=1);var t=oe(this.Qa,e);e=S(this.Qa,e);for(var n=new Uint8Array(t),r=0;r<t;r+=1)n[r]=v[e+r];return n},n.prototype.get=function(e,t){t||={},e!=null&&this.bind(e)&&this.step(),e=[];for(var n=y(this.Qa),r=0;r<n;r+=1)switch(se(this.Qa,r)){case 1:var i=t.useBigInt?this.Gb(r):this.wb(r);e.push(i);break;case 2:e.push(this.wb(r));break;case 3:e.push(this.Hb(r));break;case 4:e.push(this.getBlob(r));break;default:e.push(null)}return e},n.prototype.getColumnNames=function(){for(var e=[],t=_(this.Qa),n=0;n<t;n+=1)e.push(C(this.Qa,n));return e},n.prototype.getAsObject=function(e,t){e=this.get(e,t),t=this.getColumnNames();for(var n={},r=0;r<t.length;r+=1)n[t[r]]=e[r];return n},n.prototype.getSQL=function(){return ne(this.Qa)},n.prototype.getNormalizedSQL=function(){return d(this.Qa)},n.prototype.run=function(e){return e!=null&&this.bind(e),this.step(),this.reset()},n.prototype.tb=function(e,t){t??(t=this.Oa,this.Oa+=1),e=kt(e),this.lb.push(e),this.db.handleError(p(this.Qa,t,e,-1,0))},n.prototype.Bb=function(e,t){t??(t=this.Oa,this.Oa+=1);var n=Ft(e.length);v.set(e,n),this.lb.push(n),this.db.handleError(m(this.Qa,t,n,e.length,0))},n.prototype.sb=function(e,t){t??(t=this.Oa,this.Oa+=1),this.db.handleError((e===(e|0)?h:re)(this.Qa,t,e))},n.prototype.Eb=function(e){e??(e=this.Oa,this.Oa+=1),m(this.Qa,e,0,0,0)},n.prototype.ub=function(e,t){switch(t??(t=this.Oa,this.Oa+=1),typeof e){case`string`:this.tb(e,t);return;case`number`:this.sb(e,t);return;case`bigint`:this.tb(e.toString(),t);return;case`boolean`:this.sb(e+0,t);return;case`object`:if(e===null){this.Eb(t);return}if(e.length!=null){this.Bb(e,t);return}}throw`Wrong API use : tried to bind a value of an unknown type (`+e+`).`},n.prototype.Db=function(e){var t=this;return Object.keys(e).forEach(function(n){var r=g(t.Qa,n);r!==0&&t.ub(e[n],r)}),!0},n.prototype.Cb=function(e){for(var t=0;t<e.length;t+=1)this.ub(e[t],t+1);return!0},n.prototype.reset=function(){return this.freemem(),w(this.Qa)===0&&ce(this.Qa)===0},n.prototype.freemem=function(){for(var e;(e=this.lb.pop())!==void 0;)Z(e)},n.prototype.free=function(){this.freemem();var e=le(this.Qa)===0;return delete this.db.fb[this.Qa],this.Qa=0,e},r.prototype.next=function(){if(this.eb===null)return{done:!0};if(this.Za!==null&&(this.Za.free(),this.Za=null),!this.db.db)throw this.nb(),Error(`Database closed`);var e=zt(),t=Q(4);k(a),k(t);try{this.db.handleError(f(this.db.db,this.kb,-1,a,t)),this.kb=D(t,`i32`);var r=D(a,`i32`);return r===0?(this.nb(),{done:!0}):(this.Za=new n(r,this.db),this.db.fb[r]=this.Za,{value:this.Za,done:!1})}catch(e){throw this.qb=j(this.kb),this.nb(),e}finally{Rt(e)}},r.prototype.nb=function(){Z(this.eb),this.eb=null},r.prototype.getRemainingSQL=function(){return this.qb===null?j(this.kb):this.qb},typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`&&(r.prototype[Symbol.iterator]=function(){return this}),i.prototype.run=function(e,t){if(!this.db)throw`Database closed`;if(t){e=this.prepare(e,t);try{e.step()}finally{e.free()}}else this.handleError(u(this.db,e,0,0,a));return this},i.prototype.exec=function(e,t,r){if(!this.db)throw`Database closed`;var i=null,o=null,s=null;try{s=o=kt(e);var c=Q(4);for(e=[];D(s,`i8`)!==0;){k(a),k(c),this.handleError(f(this.db,s,-1,a,c));var l=D(a,`i32`);if(s=D(c,`i32`),l!==0){var u=null;for(i=new n(l,this),t!=null&&i.bind(t);i.step();)u===null&&(u={columns:i.getColumnNames(),values:[]},e.push(u)),u.values.push(i.get(null,r));i.free()}}return e}catch(e){throw i&&i.free(),e}finally{o&&Z(o)}},i.prototype.each=function(e,t,n,r,i){typeof t==`function`&&(r=n,n=t,t=void 0),e=this.prepare(e,t);try{for(;e.step();)n(e.getAsObject(null,i))}finally{e.free()}if(typeof r==`function`)return r()},i.prototype.prepare=function(e,t){if(k(a),this.handleError(te(this.db,e,-1,a,0)),e=D(a,`i32`),e===0)throw`Nothing to prepare`;var r=new n(e,this);return t!=null&&r.bind(t),this.fb[e]=r},i.prototype.iterateStatements=function(e){return new r(e,this)},i.prototype.export=function(){Object.values(this.fb).forEach(function(e){e.free()}),Object.values(this.Sa).forEach(X),this.Sa={},this.handleError(l(this.db));var e=ht(this.filename);return this.handleError(c(this.filename,a)),this.db=D(a,`i32`),ye(this.db),e},i.prototype.close=function(){this.db!==null&&(Object.values(this.fb).forEach(function(e){e.free()}),Object.values(this.Sa).forEach(X),this.Sa={},this.Ya&&=(X(this.Ya),void 0),this.handleError(l(this.db)),ot(`/`+this.filename),this.db=null)},i.prototype.handleError=function(e){if(e===0)return null;throw e=ae(this.db),Error(e)},i.prototype.getRowsModified=function(){return ee(this.db)},i.prototype.create_function=function(n,r){Object.prototype.hasOwnProperty.call(this.Sa,n)&&(X(this.Sa[n]),delete this.Sa[n]);var i=Pt(function(n,i,a){i=t(i,a);try{var o=r.apply(null,i)}catch(e){A(n,e,-1);return}e(n,o)},`viii`);return this.Sa[n]=i,this.handleError(ue(this.db,n,r.length,1,0,i,0,0,0)),this},i.prototype.create_aggregate=function(n,r){var i=r.init||function(){return null},a=r.finalize||function(e){return e},o=r.step;if(!o)throw`An aggregate function must have a step function in `+n;var s={};Object.hasOwnProperty.call(this.Sa,n)&&(X(this.Sa[n]),delete this.Sa[n]),r=n+`__finalize`,Object.hasOwnProperty.call(this.Sa,r)&&(X(this.Sa[r]),delete this.Sa[r]);var c=Pt(function(e,n,r){var a=ve(e,1);Object.hasOwnProperty.call(s,a)||(s[a]=i()),n=t(n,r),n=[s[a]].concat(n);try{s[a]=o.apply(null,n)}catch(t){delete s[a],A(e,t,-1)}},`viii`),l=Pt(function(t){var n=ve(t,1);try{var r=a(s[n])}catch(e){delete s[n],A(t,e,-1);return}e(t,r),delete s[n]},`vi`);return this.Sa[n]=c,this.Sa[r]=l,this.handleError(ue(this.db,n,o.length-1,1,0,0,c,l,0)),this},i.prototype.updateHook=function(e){return this.Ya&&=(xe(this.db,0,0),X(this.Ya),void 0),e?(this.Ya=Pt(function(t,n,r,i,a){switch(n){case 18:t=`insert`;break;case 23:t=`update`;break;case 9:t=`delete`;break;default:throw`unknown operationCode in updateHook callback: `+n}if(r=j(r),i=j(i),a>2**53-1)throw`rowId too big to fit inside a Number`;e(t,r,i,Number(a))},`viiiij`),xe(this.db,this.Ya,0),this):this},s.Database=i};var ee=`./this.program`,te=(e,t)=>{throw t},ne=globalThis.document?.currentScript?.src;typeof __filename<`u`?ne=__filename:l&&(ne=self.location.href);var d=``,f,p;if(u){var m=t();d=__dirname+`/`,p=e=>(e=_(e)?new URL(e):e,m.readFileSync(e)),f=async e=>(e=_(e)?new URL(e):e,m.readFileSync(e,void 0)),1<process.argv.length&&(ee=process.argv[1].replace(/\\/g,`/`)),process.argv.slice(2),n!==void 0&&(n.exports=s),te=(e,t)=>{throw process.exitCode=e,t}}else if(c||l){try{d=new URL(`.`,ne).href}catch{}l&&(p=e=>{var t=new XMLHttpRequest;return t.open(`GET`,e,!1),t.responseType=`arraybuffer`,t.send(null),new Uint8Array(t.response)}),f=async e=>{if(_(e))return new Promise((t,n)=>{var r=new XMLHttpRequest;r.open(`GET`,e,!0),r.responseType=`arraybuffer`,r.onload=()=>{r.status==200||r.status==0&&r.response?t(r.response):n(r.status)},r.onerror=n,r.send(null)});var t=await fetch(e,{credentials:`same-origin`});if(t.ok)return t.arrayBuffer();throw Error(t.status+` : `+t.url)}}var re=console.log.bind(console),h=console.error.bind(console),g,ie=!1,ae,_=e=>e.startsWith(`file://`),v,y,b,x,S,oe,se,C;function ce(){var e=Bt.buffer;v=new Int8Array(e),b=new Int16Array(e),y=new Uint8Array(e),new Uint16Array(e),x=new Int32Array(e),S=new Uint32Array(e),oe=new Float32Array(e),se=new Float64Array(e),C=new BigInt64Array(e),new BigUint64Array(e)}function w(e){throw s.onAbort?.(e),e=`Aborted(`+e+`)`,h(e),ie=!0,new WebAssembly.RuntimeError(e+`. Build with -sASSERTIONS for more info.`)}var le;async function ue(e){if(!g)try{var t=await f(e);return new Uint8Array(t)}catch{}if(e==le&&g)e=new Uint8Array(g);else if(p)e=p(e);else throw`both async and sync fetching of the wasm failed`;return e}async function de(e,t){try{var n=await ue(e);return await WebAssembly.instantiate(n,t)}catch(e){h(`failed to asynchronously prepare wasm: ${e}`),w(e)}}async function fe(e){var t=le;if(!g&&!_(t)&&!u)try{var n=fetch(t,{credentials:`same-origin`});return await WebAssembly.instantiateStreaming(n,e)}catch(e){h(`wasm streaming compile failed: ${e}`),h(`falling back to ArrayBuffer instantiation`)}return de(t,e)}class pe{name=`ExitStatus`;constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var me=e=>{for(;0<e.length;)e.shift()(s)},he=[],ge=[],_e=()=>{var e=s.preRun.shift();ge.push(e)},T=0,E=null;function D(e,t=`i8`){switch(t.endsWith(`*`)&&(t=`*`),t){case`i1`:return v[e];case`i8`:return v[e];case`i16`:return b[e>>1];case`i32`:return x[e>>2];case`i64`:return C[e>>3];case`float`:return oe[e>>2];case`double`:return se[e>>3];case`*`:return S[e>>2];default:w(`invalid type for getValue: ${t}`)}}var O=!0;function k(e){var t=`i32`;switch(t.endsWith(`*`)&&(t=`*`),t){case`i1`:v[e]=0;break;case`i8`:v[e]=0;break;case`i16`:b[e>>1]=0;break;case`i32`:x[e>>2]=0;break;case`i64`:C[e>>3]=BigInt(0);break;case`float`:oe[e>>2]=0;break;case`double`:se[e>>3]=0;break;case`*`:S[e>>2]=0;break;default:w(`invalid type for setValue: ${t}`)}}var A=new TextDecoder,ve=(e,t,n,r)=>{if(n=t+n,r)return n;for(;e[t]&&!(t>=n);)++t;return t},j=(e,t,n)=>e?A.decode(y.subarray(e,ve(y,e,t,n))):``,ye=(e,t)=>{for(var n=0,r=e.length-1;0<=r;r--){var i=e[r];i===`.`?e.splice(r,1):i===`..`?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n;n--)e.unshift(`..`);return e},be=e=>{var t=e.charAt(0)===`/`,n=e.slice(-1)===`/`;return(e=ye(e.split(`/`).filter(e=>!!e),!t).join(`/`))||t||(e=`.`),e&&n&&(e+=`/`),(t?`/`:``)+e},xe=e=>{var t=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1);return e=t[0],t=t[1],!e&&!t?`.`:(t&&=t.slice(0,-1),e+t)},Se=e=>e&&e.match(/([^\/]+|\/)\/*$/)[1],Ce=()=>{if(u){var e=t();return t=>e.randomFillSync(t)}return e=>crypto.getRandomValues(e)},we=e=>{(we=Ce())(e)},Te=(...e)=>{for(var t=``,n=!1,r=e.length-1;-1<=r&&!n;r--){if(n=0<=r?e[r]:`/`,typeof n!=`string`)throw TypeError(`Arguments to path.resolve must be strings`);if(!n)return``;t=n+`/`+t,n=n.charAt(0)===`/`}return t=ye(t.split(`/`).filter(e=>!!e),!n).join(`/`),(n?`/`:``)+t||`.`},M=e=>{var t=ve(e,0);return A.decode(e.buffer?e.subarray(0,t):new Uint8Array(e.slice(0,t)))},Ee=[],N=e=>{for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);127>=r?t++:2047>=r?t+=2:55296<=r&&57343>=r?(t+=4,++n):t+=3}return t},P=(e,t,n,r)=>{if(!(0<r))return 0;var i=n;r=n+r-1;for(var a=0;a<e.length;++a){var o=e.codePointAt(a);if(127>=o){if(n>=r)break;t[n++]=o}else if(2047>=o){if(n+1>=r)break;t[n++]=192|o>>6,t[n++]=128|o&63}else if(65535>=o){if(n+2>=r)break;t[n++]=224|o>>12,t[n++]=128|o>>6&63,t[n++]=128|o&63}else{if(n+3>=r)break;t[n++]=240|o>>18,t[n++]=128|o>>12&63,t[n++]=128|o>>6&63,t[n++]=128|o&63,a++}}return t[n]=0,n-i},De=[];function Oe(e,t){De[e]={input:[],output:[],cb:t},$e(e,ke)}var ke={open(e){var t=De[e.node.rdev];if(!t)throw new R(43);e.tty=t,e.seekable=!1},close(e){e.tty.cb.fsync(e.tty)},fsync(e){e.tty.cb.fsync(e.tty)},read(e,t,n,r){if(!e.tty||!e.tty.cb.xb)throw new R(60);for(var i=0,a=0;a<r;a++){try{var o=e.tty.cb.xb(e.tty)}catch{throw new R(29)}if(o===void 0&&i===0)throw new R(6);if(o==null)break;i++,t[n+a]=o}return i&&(e.node.atime=Date.now()),i},write(e,t,n,r){if(!e.tty||!e.tty.cb.rb)throw new R(60);try{for(var i=0;i<r;i++)e.tty.cb.rb(e.tty,t[n+i])}catch{throw new R(29)}return r&&(e.node.mtime=e.node.ctime=Date.now()),i}},Ae={xb(){a:{if(!Ee.length){var e=null;if(u){var t=Buffer.alloc(256),n=0,r=process.stdin.fd;try{n=m.readSync(r,t,0,256)}catch(e){if(e.toString().includes(`EOF`))n=0;else throw e}0<n&&(e=t.slice(0,n).toString(`utf-8`))}else globalThis.window?.prompt&&(e=window.prompt(`Input: `),e!==null&&(e+=`
2
2
  `));if(!e){e=null;break a}t=Array(N(e)+1),e=P(e,t,0,t.length),t.length=e,Ee=t}e=Ee.shift()}return e},rb(e,t){t===null||t===10?(re(M(e.output)),e.output=[]):t!=0&&e.output.push(t)},fsync(e){0<e.output?.length&&(re(M(e.output)),e.output=[])},Tb(){return{Ob:25856,Qb:5,Nb:191,Pb:35387,Mb:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},Ub(){return 0},Vb(){return[24,80]}},je={rb(e,t){t===null||t===10?(h(M(e.output)),e.output=[]):t!=0&&e.output.push(t)},fsync(e){0<e.output?.length&&(h(M(e.output)),e.output=[])}},F={Wa:null,Xa(){return F.createNode(null,`/`,16895,0)},createNode(e,t,n,r){if((n&61440)==24576||(n&61440)==4096)throw new R(63);return F.Wa||={dir:{node:{Ta:F.La.Ta,Ua:F.La.Ua,lookup:F.La.lookup,hb:F.La.hb,rename:F.La.rename,unlink:F.La.unlink,rmdir:F.La.rmdir,readdir:F.La.readdir,symlink:F.La.symlink},stream:{Va:F.Ma.Va}},file:{node:{Ta:F.La.Ta,Ua:F.La.Ua},stream:{Va:F.Ma.Va,read:F.Ma.read,write:F.Ma.write,ib:F.Ma.ib,jb:F.Ma.jb}},link:{node:{Ta:F.La.Ta,Ua:F.La.Ua,readlink:F.La.readlink},stream:{}},vb:{node:{Ta:F.La.Ta,Ua:F.La.Ua},stream:Qe}},n=We(e,t,n,r),V(n.mode)?(n.La=F.Wa.dir.node,n.Ma=F.Wa.dir.stream,n.Na={}):(n.mode&61440)==32768?(n.La=F.Wa.file.node,n.Ma=F.Wa.file.stream,n.Ra=0,n.Na=null):(n.mode&61440)==40960?(n.La=F.Wa.link.node,n.Ma=F.Wa.link.stream):(n.mode&61440)==8192&&(n.La=F.Wa.vb.node,n.Ma=F.Wa.vb.stream),n.atime=n.mtime=n.ctime=Date.now(),e&&(e.Na[t]=n,e.atime=e.mtime=e.ctime=n.atime),n},Sb(e){return e.Na?e.Na.subarray?e.Na.subarray(0,e.Ra):new Uint8Array(e.Na):new Uint8Array},La:{Ta(e){var t={};return t.dev=(e.mode&61440)==8192?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,V(e.mode)?t.size=4096:(e.mode&61440)==32768?t.size=e.Ra:(e.mode&61440)==40960?t.size=e.link.length:t.size=0,t.atime=new Date(e.atime),t.mtime=new Date(e.mtime),t.ctime=new Date(e.ctime),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},Ua(e,t){for(var n of[`mode`,`atime`,`mtime`,`ctime`])t[n]!=null&&(e[n]=t[n]);t.size!==void 0&&(t=t.size,e.Ra!=t&&(t==0?(e.Na=null,e.Ra=0):(n=e.Na,e.Na=new Uint8Array(t),n&&e.Na.set(n.subarray(0,Math.min(t,e.Ra))),e.Ra=t)))},lookup(){throw F.mb||(F.mb=new R(44),F.mb.stack=`<generic error, no stack>`),F.mb},hb(e,t,n,r){return F.createNode(e,t,n,r)},rename(e,t,n){try{var r=B(t,n)}catch{}if(r){if(V(e.mode))for(var i in r.Na)throw new R(55);Ue(r)}delete e.parent.Na[e.name],t.Na[n]=e,e.name=n,t.ctime=t.mtime=e.parent.ctime=e.parent.mtime=Date.now()},unlink(e,t){delete e.Na[t],e.ctime=e.mtime=Date.now()},rmdir(e,t){var n=B(e,t),r;for(r in n.Na)throw new R(55);delete e.Na[t],e.ctime=e.mtime=Date.now()},readdir(e){return[`.`,`..`,...Object.keys(e.Na)]},symlink(e,t,n){return e=F.createNode(e,t,41471,0),e.link=n,e},readlink(e){if((e.mode&61440)!=40960)throw new R(28);return e.link}},Ma:{read(e,t,n,r,i){var a=e.node.Na;if(i>=e.node.Ra)return 0;if(e=Math.min(e.node.Ra-i,r),8<e&&a.subarray)t.set(a.subarray(i,i+e),n);else for(r=0;r<e;r++)t[n+r]=a[i+r];return e},write(e,t,n,r,i,a){if(t.buffer===v.buffer&&(a=!1),!r)return 0;if(e=e.node,e.mtime=e.ctime=Date.now(),t.subarray&&(!e.Na||e.Na.subarray)){if(a)return e.Na=t.subarray(n,n+r),e.Ra=r;if(e.Ra===0&&i===0)return e.Na=t.slice(n,n+r),e.Ra=r;if(i+r<=e.Ra)return e.Na.set(t.subarray(n,n+r),i),r}a=i+r;var o=e.Na?e.Na.length:0;if(o>=a||(a=Math.max(a,o*(1048576>o?2:1.125)>>>0),o!=0&&(a=Math.max(a,256)),o=e.Na,e.Na=new Uint8Array(a),0<e.Ra&&e.Na.set(o.subarray(0,e.Ra),0)),e.Na.subarray&&t.subarray)e.Na.set(t.subarray(n,n+r),i);else for(a=0;a<r;a++)e.Na[i+a]=t[n+a];return e.Ra=Math.max(e.Ra,i+r),r},Va(e,t,n){if(n===1?t+=e.position:n===2&&(e.node.mode&61440)==32768&&(t+=e.node.Ra),0>t)throw new R(28);return t},ib(e,t,n,r,i){if((e.node.mode&61440)!=32768)throw new R(43);if(e=e.node.Na,i&2||!e||e.buffer!==v.buffer){i=!0,r=65536*Math.ceil(t/65536);var a=It(65536,r);if(a&&y.fill(0,a,a+r),r=a,!r)throw new R(48);e&&((0<n||n+t<e.length)&&(e=e.subarray?e.subarray(n,n+t):Array.prototype.slice.call(e,n,n+t)),v.set(e,r))}else i=!1,r=e.byteOffset;return{Kb:r,Ab:i}},jb(e,t,n,r){return F.Ma.write(e,t,0,r,n,!1),0}}},Me=(e,t)=>{var n=0;return e&&(n|=365),t&&(n|=146),n},Ne=null,Pe={},I=[],Fe=1,L=null,Ie=!1,Le=!0,Re={},R=class{name=`ErrnoError`;constructor(e){this.Pa=e}},ze=class{gb={};node=null;get flags(){return this.gb.flags}set flags(e){this.gb.flags=e}get position(){return this.gb.position}set position(e){this.gb.position=e}},Be=class{La={};Ma={};ab=null;constructor(e,t,n,r){e||=this,this.parent=e,this.Xa=e.Xa,this.id=Fe++,this.name=t,this.mode=n,this.rdev=r,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&365)==365}set read(e){e?this.mode|=365:this.mode&=-366}get write(){return(this.mode&146)==146}set write(e){e?this.mode|=146:this.mode&=-147}};function z(e,t={}){if(!e)throw new R(44);t.ob??=!0,e.charAt(0)===`/`||(e=`//`+e);var n=0;a:for(;40>n;n++){e=e.split(`/`).filter(e=>!!e);for(var r=Ne,i=`/`,a=0;a<e.length;a++){var o=a===e.length-1;if(o&&t.parent)break;if(e[a]!==`.`)if(e[a]===`..`)if(i=xe(i),r===r.parent){e=i+`/`+e.slice(a+1).join(`/`),n--;continue a}else r=r.parent;else{i=be(i+`/`+e[a]);try{r=B(r,e[a])}catch(e){if(e?.Pa===44&&o&&t.Jb)return{path:i};throw e}if(!r.ab||o&&!t.ob||(r=r.ab.root),(r.mode&61440)==40960&&(!o||t.$a)){if(!r.La.readlink)throw new R(52);r=r.La.readlink(r),r.charAt(0)===`/`||(r=xe(i)+`/`+r),e=r+`/`+e.slice(a+1).join(`/`);continue a}}}return{path:i,node:r}}throw new R(32)}function Ve(e){for(var t;;){if(e===e.parent)return e=e.Xa.zb,t?e[e.length-1]===`/`?e+t:`${e}/${t}`:e;t=t?`${e.name}/${t}`:e.name,e=e.parent}}function He(e,t){for(var n=0,r=0;r<t.length;r++)n=(n<<5)-n+t.charCodeAt(r)|0;return(e+n>>>0)%L.length}function Ue(e){var t=He(e.parent.id,e.name);if(L[t]===e)L[t]=e.bb;else for(t=L[t];t;){if(t.bb===e){t.bb=e.bb;break}t=t.bb}}function B(e,t){var n=V(e.mode)?(n=H(e,`x`))?n:e.La.lookup?0:2:54;if(n)throw new R(n);for(n=L[He(e.id,t)];n;n=n.bb){var r=n.name;if(n.parent.id===e.id&&r===t)return n}return e.La.lookup(e,t)}function We(e,t,n,r){return e=new Be(e,t,n,r),t=He(e.parent.id,e.name),e.bb=L[t],L[t]=e}function V(e){return(e&61440)==16384}function Ge(e){var t=[`r`,`w`,`rw`][e&3];return e&512&&(t+=`w`),t}function H(e,t){if(Le)return 0;if(!t.includes(`r`)||e.mode&292){if(t.includes(`w`)&&!(e.mode&146)||t.includes(`x`)&&!(e.mode&73))return 2}else return 2;return 0}function Ke(e,t){if(!V(e.mode))return 54;try{return B(e,t),20}catch{}return H(e,`wx`)}function qe(e,t,n){try{var r=B(e,t)}catch(e){return e.Pa}if(e=H(e,`wx`))return e;if(n){if(!V(r.mode))return 54;if(r===r.parent||Ve(r)===`/`)return 10}else if(V(r.mode))return 31;return 0}function Je(e){if(!e)throw new R(63);return e}function U(e){if(e=I[e],!e)throw new R(8);return e}function Ye(e,t=-1){if(e=Object.assign(new ze,e),t==-1)a:{for(t=0;4096>=t;t++)if(!I[t])break a;throw new R(33)}return e.fd=t,I[t]=e}function Xe(e,t=-1){return e=Ye(e,t),e.Ma?.Rb?.(e),e}function Ze(e,t,n){var r=e?.Ma.Ua;e=r?e:t,r??=t.La.Ua,Je(r),r(e,n)}var Qe={open(e){e.Ma=Pe[e.node.rdev].Ma,e.Ma.open?.(e)},Va(){throw new R(70)}};function $e(e,t){Pe[e]={Ma:t}}function et(e,t){var n=t===`/`;if(n&&Ne)throw new R(10);if(!n&&t){var r=z(t,{ob:!1});if(t=r.path,r=r.node,r.ab)throw new R(10);if(!V(r.mode))throw new R(54)}t={type:e,Wb:{},zb:t,Ib:[]},e=e.Xa(t),e.Xa=t,t.root=e,n?Ne=e:r&&(r.ab=t,r.Xa&&r.Xa.Ib.push(t))}function tt(e,t,n){var r=z(e,{parent:!0}).node;if(e=Se(e),!e)throw new R(28);if(e===`.`||e===`..`)throw new R(20);var i=Ke(r,e);if(i)throw new R(i);if(!r.La.hb)throw new R(63);return r.La.hb(r,e,t,n)}function nt(e,t=438){return tt(e,t&4095|32768,0)}function W(e,t=511){return tt(e,t&1023|16384,0)}function rt(e,t,n){n===void 0&&(n=t,t=438),tt(e,t|8192,n)}function it(e,t){if(!Te(e))throw new R(44);var n=z(t,{parent:!0}).node;if(!n)throw new R(44);t=Se(t);var r=Ke(n,t);if(r)throw new R(r);if(!n.La.symlink)throw new R(63);n.La.symlink(n,t,e)}function at(e){var t=z(e,{parent:!0}).node;e=Se(e);var n=B(t,e),r=qe(t,e,!0);if(r)throw new R(r);if(!t.La.rmdir)throw new R(63);if(n.ab)throw new R(10);t.La.rmdir(t,e),Ue(n)}function ot(e){var t=z(e,{parent:!0}).node;if(!t)throw new R(44);e=Se(e);var n=B(t,e),r=qe(t,e,!1);if(r)throw new R(r);if(!t.La.unlink)throw new R(63);if(n.ab)throw new R(10);t.La.unlink(t,e),Ue(n)}function st(e,t){return e=z(e,{$a:!t}).node,Je(e.La.Ta)(e)}function ct(e,t,n,r){Ze(e,t,{mode:n&4095|t.mode&-4096,ctime:Date.now(),Fb:r})}function lt(e,t){e=typeof e==`string`?z(e,{$a:!0}).node:e,ct(null,e,t)}function ut(e,t,n){if(V(t.mode))throw new R(31);if((t.mode&61440)!=32768)throw new R(28);var r=H(t,`w`);if(r)throw new R(r);Ze(e,t,{size:n,timestamp:Date.now()})}function G(e,t,n=438){if(e===``)throw new R(44);if(typeof t==`string`){var r={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[t];if(r===void 0)throw Error(`Unknown file open mode: ${t}`);t=r}if(n=t&64?n&4095|32768:0,typeof e==`object`)r=e;else{var i=e.endsWith(`/`);e=z(e,{$a:!(t&131072),Jb:!0}),r=e.node,e=e.path}var a=!1;if(t&64)if(r){if(t&128)throw new R(20)}else{if(i)throw new R(31);r=tt(e,n|511,0),a=!0}if(!r)throw new R(44);if((r.mode&61440)==8192&&(t&=-513),t&65536&&!V(r.mode))throw new R(54);if(!a&&(i=r?(r.mode&61440)==40960?32:V(r.mode)&&(Ge(t)!==`r`||t&576)?31:H(r,Ge(t)):44))throw new R(i);return t&512&&!a&&(i=r,i=typeof i==`string`?z(i,{$a:!0}).node:i,ut(null,i,0)),t&=-131713,i=Ye({node:r,path:Ve(r),flags:t,seekable:!0,position:0,Ma:r.Ma,Lb:[],error:!1}),i.Ma.open&&i.Ma.open(i),a&&lt(r,n&511),!s.logReadFiles||t&1||e in Re||(Re[e]=1),i}function dt(e){if(e.fd===null)throw new R(8);e.pb&&=null;try{e.Ma.close&&e.Ma.close(e)}catch(e){throw e}finally{I[e.fd]=null}e.fd=null}function ft(e,t,n){if(e.fd===null)throw new R(8);if(!e.seekable||!e.Ma.Va)throw new R(70);if(n!=0&&n!=1&&n!=2)throw new R(28);e.position=e.Ma.Va(e,t,n),e.Lb=[]}function pt(e,t,n,r,i){if(0>r||0>i)throw new R(28);if(e.fd===null||(e.flags&2097155)==1)throw new R(8);if(V(e.node.mode))throw new R(31);if(!e.Ma.read)throw new R(28);var a=i!==void 0;if(!a)i=e.position;else if(!e.seekable)throw new R(70);return t=e.Ma.read(e,t,n,r,i),a||(e.position+=t),t}function mt(e,t,n,r,i){if(0>r||0>i)throw new R(28);if(e.fd===null||!(e.flags&2097155))throw new R(8);if(V(e.node.mode))throw new R(31);if(!e.Ma.write)throw new R(28);e.seekable&&e.flags&1024&&ft(e,0,2);var a=i!==void 0;if(!a)i=e.position;else if(!e.seekable)throw new R(70);return t=e.Ma.write(e,t,n,r,i,void 0),a||(e.position+=t),t}function ht(e){var t=t||0,n=`binary`;n!==`utf8`&&n!==`binary`&&w(`Invalid encoding type "${n}"`),t=G(e,t),e=st(e).size;var r=new Uint8Array(e);return pt(t,r,0,e,0),n===`utf8`&&(r=M(r)),dt(t),r}function K(e,t,n){e=be(`/dev/`+e);var r=Me(!!t,!!n);K.yb??=64;var i=K.yb++<<8|0;$e(i,{open(e){e.seekable=!1},close(){n?.buffer?.length&&n(10)},read(e,n,r,i){for(var a=0,o=0;o<i;o++){try{var s=t()}catch{throw new R(29)}if(s===void 0&&a===0)throw new R(6);if(s==null)break;a++,n[r+o]=s}return a&&(e.node.atime=Date.now()),a},write(e,t,r,i){for(var a=0;a<i;a++)try{n(t[r+a])}catch{throw new R(29)}return i&&(e.node.mtime=e.node.ctime=Date.now()),a}}),rt(e,r,i)}var q={};function J(e,t,n){if(t.charAt(0)===`/`)return t;if(e=e===-100?`/`:U(e).path,t.length==0){if(!n)throw new R(44);return e}return e+`/`+t}function gt(e,t){S[e>>2]=t.dev,S[e+4>>2]=t.mode,S[e+8>>2]=t.nlink,S[e+12>>2]=t.uid,S[e+16>>2]=t.gid,S[e+20>>2]=t.rdev,C[e+24>>3]=BigInt(t.size),x[e+32>>2]=4096,x[e+36>>2]=t.blocks;var n=t.atime.getTime(),r=t.mtime.getTime(),i=t.ctime.getTime();return C[e+40>>3]=BigInt(Math.floor(n/1e3)),S[e+48>>2]=n%1e3*1e6,C[e+56>>3]=BigInt(Math.floor(r/1e3)),S[e+64>>2]=r%1e3*1e6,C[e+72>>3]=BigInt(Math.floor(i/1e3)),S[e+80>>2]=i%1e3*1e6,C[e+88>>3]=BigInt(t.ino),0}var _t=void 0,vt=()=>{var e=x[_t>>2];return _t+=4,e},yt=0,bt=[0,31,60,91,121,152,182,213,244,274,305,335],xt=[0,31,59,90,120,151,181,212,243,273,304,334],St={},Ct=e=>{ae=e,O||0<yt||(s.onExit?.(e),ie=!0),te(e,new pe(e))},wt=e=>{if(!ie)try{e()}catch(e){e instanceof pe||e==`unwind`||te(1,e)}finally{if(!(O||0<yt))try{ae=e=ae,Ct(e)}catch(e){e instanceof pe||e==`unwind`||te(1,e)}}},Tt={},Et=()=>{if(!Dt){var e={USER:`web_user`,LOGNAME:`web_user`,PATH:`/`,PWD:`/`,HOME:`/home/web_user`,LANG:(globalThis.navigator?.language??`C`).replace(`-`,`_`)+`.UTF-8`,_:ee||`./this.program`},t;for(t in Tt)Tt[t]===void 0?delete e[t]:e[t]=Tt[t];var n=[];for(t in e)n.push(`${t}=${e[t]}`);Dt=n}return Dt},Dt,Ot=(e,t,n,r)=>{var i={string:e=>{var t=0;if(e!=null&&e!==0){t=N(e)+1;var n=Q(t);P(e,y,n,t),t=n}return t},array:e=>{var t=Q(e.length);return v.set(e,t),t}};e=s[`_`+e];var a=[],o=0;if(r)for(var c=0;c<r.length;c++){var l=i[n[c]];l?(o===0&&(o=zt()),a[c]=l(r[c])):a[c]=r[c]}return n=e(...a),n=function(e){return o!==0&&Rt(o),t===`string`?j(e):t===`boolean`?!!e:e}(n)},kt=e=>{var t=N(e)+1,n=Ft(t);return n&&P(e,y,n,t),n},Y,At=[],X=e=>{Y.delete($.get(e)),$.set(e,null),At.push(e)},jt=e=>{let t=e.length;return[t%128|128,t>>7,...e]},Mt={i:127,p:127,j:126,f:125,d:124,e:111},Nt=e=>jt(Array.from(e,e=>Mt[e])),Pt=(e,t)=>{if(!Y){Y=new WeakMap;var n=$.length;if(Y)for(var r=0;r<0+n;r++){var i=$.get(r);i&&Y.set(i,r)}}if(n=Y.get(e)||0)return n;n=At.length?At.pop():$.grow(1);try{$.set(n,e)}catch(r){if(!(r instanceof TypeError))throw r;t=Uint8Array.of(0,97,115,109,1,0,0,0,1,...jt([1,96,...Nt(t.slice(1)),...Nt(t[0]===`v`?``:t[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),t=new WebAssembly.Module(t),t=new WebAssembly.Instance(t,{e:{f:e}}).exports.f,$.set(n,t)}return Y.set(e,n),n};if(L=Array(4096),et(F,`/`),W(`/tmp`),W(`/home`),W(`/home/web_user`),(function(){W(`/dev`),$e(259,{read:()=>0,write:(e,t,n,r)=>r,Va:()=>0}),rt(`/dev/null`,259),Oe(1280,Ae),Oe(1536,je),rt(`/dev/tty`,1280),rt(`/dev/tty1`,1536);var e=new Uint8Array(1024),t=0,n=()=>(t===0&&(we(e),t=e.byteLength),e[--t]);K(`random`,n),K(`urandom`,n),W(`/dev/shm`),W(`/dev/shm/tmp`)})(),(function(){W(`/proc`);var e=W(`/proc/self`);W(`/proc/self/fd`),et({Xa(){var t=We(e,`fd`,16895,73);return t.Ma={Va:F.Ma.Va},t.La={lookup(e,t){e=+t;var n=U(e);return e={parent:null,Xa:{zb:`fake`},La:{readlink:()=>n.path},id:e+1},e.parent=e},readdir(){return Array.from(I.entries()).filter(([,e])=>e).map(([e])=>e.toString())}},t}},`/proc/self/fd`)})(),s.noExitRuntime&&(O=s.noExitRuntime),s.print&&(re=s.print),s.printErr&&(h=s.printErr),s.wasmBinary&&(g=s.wasmBinary),s.thisProgram&&(ee=s.thisProgram),s.preInit)for(typeof s.preInit==`function`&&(s.preInit=[s.preInit]);0<s.preInit.length;)s.preInit.shift()();s.stackSave=()=>zt(),s.stackRestore=e=>Rt(e),s.stackAlloc=e=>Q(e),s.cwrap=(e,t,n,r)=>{var i=!n||n.every(e=>e===`number`||e===`boolean`);return t!==`string`&&i&&!r?s[`_`+e]:(...r)=>Ot(e,t,n,r)},s.addFunction=Pt,s.removeFunction=X,s.UTF8ToString=j,s.stringToNewUTF8=kt,s.writeArrayToMemory=(e,t)=>{v.set(e,t)};var Ft,Z,It,Lt,Rt,Q,zt,Bt,$,Vt={a:(e,t,n,r)=>w(`Assertion failed: ${j(e)}, at: `+[t?j(t):`unknown filename`,n,r?j(r):`unknown function`]),i:function(e,t){try{return e=j(e),lt(e,t),0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},L:function(e,t,n){try{if(t=j(t),t=J(e,t),n&-8)return-28;var r=z(t,{$a:!0}).node;return r?(e=``,n&4&&(e+=`r`),n&2&&(e+=`w`),n&1&&(e+=`x`),e&&H(r,e)?-2:0):-44}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},j:function(e,t){try{var n=U(e);return ct(n,n.node,t,!1),0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},h:function(e){try{var t=U(e);return Ze(t,t.node,{timestamp:Date.now(),Fb:!1}),0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},b:function(e,t,n){_t=n;try{var r=U(e);switch(t){case 0:var i=vt();if(0>i)break;for(;I[i];)i++;return Xe(r,i).fd;case 1:case 2:return 0;case 3:return r.flags;case 4:return i=vt(),r.flags|=i,0;case 12:return i=vt(),b[i+0>>1]=2,0;case 13:case 14:return 0}return-28}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},g:function(e,t){try{var n=U(e),r=n.node,i=n.Ma.Ta;return e=i?n:r,i??=r.La.Ta,Je(i),gt(t,i(e))}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},H:function(e,t){t=-9007199254740992>t||9007199254740992<t?NaN:Number(t);try{if(isNaN(t))return-61;var n=U(e);if(0>t||!(n.flags&2097155))throw new R(28);return ut(n,n.node,t),0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},G:function(e,t){try{if(t===0)return-28;var n=N(`/`)+1;return t<n?-68:(P(`/`,y,e,t),n)}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},K:function(e,t){try{return e=j(e),gt(t,st(e,!0))}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},C:function(e,t,n){try{return t=j(t),t=J(e,t),W(t,n),0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},J:function(e,t,n,r){try{t=j(t);var i=r&256;return t=J(e,t,r&4096),gt(n,i?st(t,!0):st(t))}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},x:function(e,t,n,r){_t=r;try{t=j(t),t=J(e,t);var i=r?vt():0;return G(t,n,i).fd}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},v:function(e,t,n,r){try{if(t=j(t),t=J(e,t),0>=r)return-28;var i=z(t).node;if(!i)throw new R(44);if(!i.La.readlink)throw new R(28);var a=i.La.readlink(i),o=Math.min(r,N(a)),s=v[n+o];return P(a,y,n,r+1),v[n+o]=s,o}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},u:function(e){try{return e=j(e),at(e),0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},f:function(e,t){try{return e=j(e),gt(t,st(e))}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},r:function(e,t,n){try{if(t=j(t),t=J(e,t),n)if(n===512)at(t);else return-28;else ot(t);return 0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},q:function(e,t,n){try{t=j(t),t=J(e,t,!0);var r=Date.now(),i,a;if(n){var o=S[n>>2]+4294967296*x[n+4>>2],s=x[n+8>>2];i=s==1073741823?r:s==1073741822?null:1e3*o+s/1e6,n+=16,o=S[n>>2]+4294967296*x[n+4>>2],s=x[n+8>>2],a=s==1073741823?r:s==1073741822?null:1e3*o+s/1e6}else a=i=r;if((a??i)!==null){e=i;var c=z(t,{$a:!0}).node;Je(c.La.Ua)(c,{atime:e,mtime:a})}return 0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},m:()=>w(``),l:()=>{O=!1,yt=0},A:function(e,t){e=-9007199254740992>e||9007199254740992<e?NaN:Number(e),e=new Date(1e3*e),x[t>>2]=e.getSeconds(),x[t+4>>2]=e.getMinutes(),x[t+8>>2]=e.getHours(),x[t+12>>2]=e.getDate(),x[t+16>>2]=e.getMonth(),x[t+20>>2]=e.getFullYear()-1900,x[t+24>>2]=e.getDay();var n=e.getFullYear();x[t+28>>2]=(n%4!=0||n%100==0&&n%400!=0?xt:bt)[e.getMonth()]+e.getDate()-1|0,x[t+36>>2]=-(60*e.getTimezoneOffset()),n=new Date(e.getFullYear(),6,1).getTimezoneOffset();var r=new Date(e.getFullYear(),0,1).getTimezoneOffset();x[t+32>>2]=(n!=r&&e.getTimezoneOffset()==Math.min(r,n))|0},y:function(e,t,n,r,i,a,o){i=-9007199254740992>i||9007199254740992<i?NaN:Number(i);try{var s=U(r);if(t&2&&!(n&2)&&(s.flags&2097155)!=2||(s.flags&2097155)==1)throw new R(2);if(!s.Ma.ib)throw new R(43);if(!e)throw new R(28);var c=s.Ma.ib(s,e,i,t,n),l=c.Kb;return x[a>>2]=c.Ab,S[o>>2]=l,0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},z:function(e,t,n,r,i,a){a=-9007199254740992>a||9007199254740992<a?NaN:Number(a);try{var o=U(i);if(n&2){if(n=a,(o.node.mode&61440)!=32768)throw new R(43);if(!(r&2)){var s=y.slice(e,e+t);o.Ma.jb&&o.Ma.jb(o,s,n,t,r)}}}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},n:(e,t)=>(St[e]&&(clearTimeout(St[e].id),delete St[e]),t&&(St[e]={id:setTimeout(()=>{delete St[e],wt(()=>Lt(e,performance.now()))},t),Xb:t}),0),B:(e,t,n,r)=>{var i=new Date().getFullYear(),a=new Date(i,0,1).getTimezoneOffset();i=new Date(i,6,1).getTimezoneOffset(),S[e>>2]=60*Math.max(a,i),x[t>>2]=Number(a!=i),t=e=>{var t=Math.abs(e);return`UTC${0<=e?`-`:`+`}${String(Math.floor(t/60)).padStart(2,`0`)}${String(t%60).padStart(2,`0`)}`},e=t(a),t=t(i),i<a?(P(e,y,n,17),P(t,y,r,17)):(P(e,y,r,17),P(t,y,n,17))},d:()=>Date.now(),s:()=>2147483648,c:()=>performance.now(),o:e=>{var t=y.length;if(e>>>=0,2147483648<e)return!1;for(var n=1;4>=n;n*=2){var r=t*(1+.2/n);r=Math.min(r,e+100663296);a:{r=(Math.min(2147483648,65536*Math.ceil(Math.max(e,r)/65536))-Bt.buffer.byteLength+65535)/65536|0;try{Bt.grow(r),ce();var i=1;break a}catch{}i=void 0}if(i)return!0}return!1},E:(e,t)=>{var n=0,r=0,i;for(i of Et()){var a=t+n;S[e+r>>2]=a,n+=P(i,y,a,1/0)+1,r+=4}return 0},F:(e,t)=>{var n=Et();S[e>>2]=n.length,e=0;for(var r of n)e+=N(r)+1;return S[t>>2]=e,0},e:function(e){try{return dt(U(e)),0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return e.Pa}},p:function(e,t){try{var n=U(e);return v[t]=n.tty?2:V(n.mode)?3:(n.mode&61440)==40960?7:4,b[t+2>>1]=0,C[t+8>>3]=BigInt(0),C[t+16>>3]=BigInt(0),0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return e.Pa}},w:function(e,t,n,r){try{a:{var i=U(e);e=t;for(var a,o=t=0;o<n;o++){var s=S[e>>2],c=S[e+4>>2];e+=8;var l=pt(i,v,s,c,a);if(0>l){var u=-1;break a}if(t+=l,l<c)break;a!==void 0&&(a+=l)}u=t}return S[r>>2]=u,0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return e.Pa}},D:function(e,t,n,r){t=-9007199254740992>t||9007199254740992<t?NaN:Number(t);try{if(isNaN(t))return 61;var i=U(e);return ft(i,t,n),C[r>>3]=BigInt(i.position),i.pb&&t===0&&n===0&&(i.pb=null),0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return e.Pa}},I:function(e){try{var t=U(e);return t.Ma?.fsync?.(t)}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return e.Pa}},t:function(e,t,n,r){try{a:{var i=U(e);e=t;for(var a,o=t=0;o<n;o++){var s=S[e>>2],c=S[e+4>>2];e+=8;var l=mt(i,v,s,c,a);if(0>l){var u=-1;break a}if(t+=l,l<c)break;a!==void 0&&(a+=l)}u=t}return S[r>>2]=u,0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return e.Pa}},k:Ct};function Ht(){function e(){if(s.calledRun=!0,!ie){if(!s.noFSInit&&!Ie){var e,t;Ie=!0,e??=s.stdin,t??=s.stdout,n??=s.stderr,e?K(`stdin`,e):it(`/dev/tty`,`/dev/stdin`),t?K(`stdout`,null,t):it(`/dev/tty`,`/dev/stdout`),n?K(`stderr`,null,n):it(`/dev/tty1`,`/dev/stderr`),G(`/dev/stdin`,0),G(`/dev/stdout`,1),G(`/dev/stderr`,1)}if(Ut.N(),Le=!1,s.onRuntimeInitialized?.(),s.postRun)for(typeof s.postRun==`function`&&(s.postRun=[s.postRun]);s.postRun.length;){var n=s.postRun.shift();he.push(n)}me(he)}}if(0<T)E=Ht;else{if(s.preRun)for(typeof s.preRun==`function`&&(s.preRun=[s.preRun]);s.preRun.length;)_e();me(ge),0<T?E=Ht:s.setStatus?(s.setStatus(`Running...`),setTimeout(()=>{setTimeout(()=>s.setStatus(``),1),e()},1)):e()}}var Ut;return(async function(){function e(e){return e=Ut=e.exports,s._sqlite3_free=e.P,s._sqlite3_value_text=e.Q,s._sqlite3_prepare_v2=e.R,s._sqlite3_step=e.S,s._sqlite3_reset=e.T,s._sqlite3_exec=e.U,s._sqlite3_finalize=e.V,s._sqlite3_column_name=e.W,s._sqlite3_column_text=e.X,s._sqlite3_column_type=e.Y,s._sqlite3_errmsg=e.Z,s._sqlite3_clear_bindings=e._,s._sqlite3_value_blob=e.$,s._sqlite3_value_bytes=e.aa,s._sqlite3_value_double=e.ba,s._sqlite3_value_int=e.ca,s._sqlite3_value_type=e.da,s._sqlite3_result_blob=e.ea,s._sqlite3_result_double=e.fa,s._sqlite3_result_error=e.ga,s._sqlite3_result_int=e.ha,s._sqlite3_result_int64=e.ia,s._sqlite3_result_null=e.ja,s._sqlite3_result_text=e.ka,s._sqlite3_aggregate_context=e.la,s._sqlite3_column_count=e.ma,s._sqlite3_data_count=e.na,s._sqlite3_column_blob=e.oa,s._sqlite3_column_bytes=e.pa,s._sqlite3_column_double=e.qa,s._sqlite3_bind_blob=e.ra,s._sqlite3_bind_double=e.sa,s._sqlite3_bind_int=e.ta,s._sqlite3_bind_text=e.ua,s._sqlite3_bind_parameter_index=e.va,s._sqlite3_sql=e.wa,s._sqlite3_normalized_sql=e.xa,s._sqlite3_changes=e.ya,s._sqlite3_close_v2=e.za,s._sqlite3_create_function_v2=e.Aa,s._sqlite3_update_hook=e.Ba,s._sqlite3_open=e.Ca,Ft=s._malloc=e.Da,Z=s._free=e.Ea,s._RegisterExtensionFunctions=e.Fa,It=e.Ga,Lt=e.Ha,Rt=e.Ia,Q=e.Ja,zt=e.Ka,Bt=e.M,$=e.O,ce(),T--,s.monitorRunDependencies?.(T),T==0&&E&&(e=E,E=null,e()),Ut}T++,s.monitorRunDependencies?.(T);var t={a:Vt};return s.instantiateWasm?new Promise(n=>{s.instantiateWasm(t,(t,r)=>{n(e(t,r))})}):(le??=s.locateFile?s.locateFile(`sql-wasm.wasm`,d):d+`sql-wasm.wasm`,e((await fe(t)).instance))})(),Ht(),a}),r)};typeof e==`object`&&typeof n==`object`?(n.exports=i,n.exports.default=i):typeof define==`function`&&define.amd?define([],function(){return i}):typeof e==`object`&&(e.Module=i)}));export default n();
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./logger-LESFN7Hj.js";import{t as n}from"./types-idfTVsM8.js";import{h as r}from"./kernel-worker-BuLAKxNE.js";var i=e({MCP_STORE_PATH:()=>o,deleteServer:()=>_,getServer:()=>h,listServers:()=>v,readMcpAuthEntries:()=>b,readMcpAuthEntry:()=>y,readServersFile:()=>p,setServer:()=>g,writeServersFile:()=>m});const a=t(`mcp-store`),o=`/workspace/.mcp/servers.json`;let s=null,c=null;async function l(){return s||=await import(`./fs-D6GWcrVb.js`).then(e=>e.t),s}async function u(e){if(e)return e;if(c&&c.dbName===`slicc-fs-global`)return c.instance;let{VirtualFS:t}=await l(),n=await t.create({dbName:r});return c={instance:n,dbName:r},n}function d(){return{version:1,servers:{}}}function f(e){if(!e||typeof e!=`object`)return d();let t=e,n=typeof t.version==`number`?t.version:1,r={};if(t.servers&&typeof t.servers==`object`)for(let[e,n]of Object.entries(t.servers)){if(!n||typeof n!=`object`)continue;let t=n;typeof t.url==`string`&&(r[e]=t)}return{version:n,servers:r}}async function p(e){try{let t=await(await u(e)).readFile(o,{encoding:`utf-8`});try{return f(JSON.parse(t))}catch(e){return a.warn(`servers.json is not valid JSON; treating as empty`,{error:e instanceof Error?e.message:String(e)}),d()}}catch(e){return e instanceof n&&e.code===`ENOENT`||a.warn(`Failed to read servers.json`,{error:e instanceof Error?e.message:String(e)}),d()}}async function m(e,t){let n=await u(t);await n.mkdir(`/workspace/.mcp`,{recursive:!0});let r={version:e.version||1,servers:e.servers??{}};await n.writeFile(o,JSON.stringify(r,null,2))}async function h(e,t){return(await p(t)).servers[e]??null}async function g(e,t,n){let r=await p(n),i={...r.servers[e],...t};return r.servers[e]=i,await m(r,n),i}async function _(e,t){let n=await p(t);return e in n.servers?(delete n.servers[e],await m(n,t),!0):!1}async function v(e){return(await p(e)).servers}async function y(e){let t=await h(e);return!t?.url||!t.auth?.clientId?null:{name:e,serverUrl:t.url,auth:t.auth}}async function b(){let e=await v(),t=[];for(let[n,r]of Object.entries(e))!r?.url||!r.auth?.clientId||t.push({name:n,serverUrl:r.url,auth:r.auth});return t}export{y as n,i as r,b as t};
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/panel-rpc-DqT2FG7c.js","assets/chunk-aKtaBQYM.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-zJ_50EbN.js";import{t}from"./logger-DDBAeTLF.js";import{a as n,n as r,t as i}from"./proxied-fetch-B5vr_AP8.js";import{t as a}from"./quick-llm-3huRDf4h.js";import{installPanelSudoResponder as o,n as s}from"./panel-responder-BKgfV-nl.js";var c=t(`sudo-suggest`),l=[`You generalize a single shell command into a minimal glob pattern for an`,`allow-list rule. Output ONLY the pattern on one line — no prose, no quotes,`,`no backticks. Keep the leading command/sub-command verbatim and replace only`,`the volatile tail (args, paths, refs) with a single trailing "*".`,`Examples:`,` git push origin main -> git push*`,` rm -rf build/cache -> rm -rf*`,` npm install left-pad -> npm install*`].join(`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/panel-rpc-DmJSNs0I.js","assets/rolldown-runtime-aKtaBQYM.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-CZgWQFsJ.js";import{t}from"./logger-DDBAeTLF.js";import{a as n,n as r,t as i}from"./proxied-fetch-DzLglfG5.js";import{t as a}from"./quick-llm-BcXxSY4e.js";import{installPanelSudoResponder as o,n as s}from"./panel-responder-BKgfV-nl.js";var c=t(`sudo-suggest`),l=[`You generalize a single shell command into a minimal glob pattern for an`,`allow-list rule. Output ONLY the pattern on one line — no prose, no quotes,`,`no backticks. Keep the leading command/sub-command verbatim and replace only`,`the volatile tail (args, paths, refs) with a single trailing "*".`,`Examples:`,` git push origin main -> git push*`,` rm -rf build/cache -> rm -rf*`,` npm install left-pad -> npm install*`].join(`
3
3
  `),u=[`You generalize a single filesystem path into a minimal glob pattern for an`,`allow-list rule. Output ONLY the pattern on one line — no prose, no quotes,`,`no backticks. Keep the meaningful directory prefix and replace the volatile`,`leaf (and below) with "**". Examples:`,` /workspace/.git/config -> /workspace/.git/**`,` /shared/secrets/openai.key -> /shared/secrets/**`,` /workspace/src/app/main.ts -> /workspace/src/**`].join(`
4
4
  `);async function d(e,t){if(e.suggestedPattern&&e.suggestedPattern.trim().length>0)return e.suggestedPattern.trim();let n=e.detail.trim(),r=e.kind===`command`?l:u,i=null;try{i=await a({prompt:n,system:r,maxTokens:40,temperature:0,signal:t})}catch(e){c.debug(`suggestPattern: quickLabel threw`,{error:e instanceof Error?e.message:String(e)}),i=null}return f(i)||n}function f(e){if(!e)return null;let t=(e.split(`
5
- `,1)[0]?.trim()??``).replace(/^`+/,``).replace(/`+$/,``).replace(/^["']/,``).replace(/["']$/,``).trim();return t.length===0?null:t}var p=t(`sudo-ext`);function m(e={}){let t=e.suggest??d;return{async requestApproval(e){let n;try{n=await t(e)}catch{n=e.detail}return h({...e,suggestedPattern:n})}}}function h(e){return new Promise(t=>{let n=globalThis.chrome?.runtime;if(!n||typeof n.sendMessage!=`function`){p.warn(`chrome.runtime.sendMessage unavailable — denying`),t({decision:`deny`});return}let r=r=>{let i=n.lastError;if(i){p.warn(`sudo relay lastError — denying`,{error:i.message}),t({decision:`deny`});return}if(!r||typeof r!=`object`){p.warn(`sudo relay empty response — denying`),t({decision:`deny`});return}let a=r;if(!a.ok||!a.decision){p.warn(`sudo relay error response — denying`,{error:a.error}),t({decision:`deny`});return}t(g(a.decision,e.suggestedPattern??e.detail))};try{n.sendMessage({source:`offscreen`,payload:{type:s,request:e}},r)}catch(e){p.warn(`sudo relay threw — denying`,{error:e instanceof Error?e.message:String(e)}),t({decision:`deny`})}})}function g(e,t){return e.decision===`allow`?{decision:`allow`}:e.decision===`always`?{decision:`always`,pattern:typeof e.pattern==`string`&&e.pattern.trim().length>0?e.pattern.trim():t}:{decision:`deny`}}var _=t(`sudo-http`);function v(e={}){let t=e.fetchImpl??globalThis.fetch.bind(globalThis),r=e.path??`/api/sudo-approve`,a=e.suggest??d;return{async requestApproval(e){let o;try{o=await a(e)}catch{o=e.detail}try{let a=await t(n(r),{method:`POST`,headers:i({"Content-Type":`application/json`}),body:JSON.stringify({kind:e.kind,detail:e.detail,suggestedPattern:o})});return a.ok?y(await a.json(),o):(_.warn(`sudo endpoint returned non-OK status — denying`,{status:a.status}),{decision:`deny`})}catch(e){return _.warn(`sudo endpoint request failed — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:`deny`}}}}}function y(e,t){if(!e||typeof e!=`object`)return{decision:`deny`};let n=e.decision;if(n===`allow`)return{decision:`allow`};if(n===`always`){let n=e.pattern;return{decision:`always`,pattern:typeof n==`string`&&n.trim().length>0?n.trim():t}}return{decision:`deny`}}var b=t(`sudo-panel-rpc`),x=6e5;function S(t={}){let n=t.suggest??d,r=t.timeoutMs??x,i=t.getClient??(async()=>{let{getPanelRpcClient:t}=await e(async()=>{let{getPanelRpcClient:e}=await import(`./panel-rpc-DqT2FG7c.js`).then(e=>e.i);return{getPanelRpcClient:e}},__vite__mapDeps([0,1]));return t()});return{async requestApproval(e){let t;try{t=await n(e)}catch{t=e.detail}let a={...e,suggestedPattern:t},o;try{o=await i()}catch(e){return b.warn(`panel-RPC client lookup threw — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:`deny`}}if(!o)return b.warn(`panel-RPC client unavailable in worker realm — denying`),{decision:`deny`};try{let{decision:e}=await o.call(`sudo-request`,{request:a},{timeoutMs:r});return C(e,t)}catch(e){return b.warn(`sudo panel-RPC relay failed — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:`deny`}}}}}function C(e,t){if(!e||typeof e!=`object`)return{decision:`deny`};let n=e.decision;if(n===`allow`)return{decision:`allow`};if(n===`always`){let n=e.pattern;return{decision:`always`,pattern:typeof n==`string`&&n.trim().length>0?n.trim():t}}return{decision:`deny`}}var w=t(`sudo`),T=`__slicc_sudo`;function E(){return typeof chrome<`u`&&!!chrome?.runtime?.id}function D(){return typeof chrome>`u`&&r()!==null}function O(){return E()?m():D()?S():v()}function k(e=O()){let t={requestApproval:t=>e.requestApproval(t)};return globalThis[T]=t,w.info(`sudo broker test hook published on globalThis.__slicc_sudo`),t}export{o as installPanelSudoResponder,k as installSudoTestHook};
5
+ `,1)[0]?.trim()??``).replace(/^`+/,``).replace(/`+$/,``).replace(/^["']/,``).replace(/["']$/,``).trim();return t.length===0?null:t}var p=t(`sudo-ext`);function m(e={}){let t=e.suggest??d;return{async requestApproval(e){let n;try{n=await t(e)}catch{n=e.detail}return h({...e,suggestedPattern:n})}}}function h(e){return new Promise(t=>{let n=globalThis.chrome?.runtime;if(!n||typeof n.sendMessage!=`function`){p.warn(`chrome.runtime.sendMessage unavailable — denying`),t({decision:`deny`});return}let r=r=>{let i=n.lastError;if(i){p.warn(`sudo relay lastError — denying`,{error:i.message}),t({decision:`deny`});return}if(!r||typeof r!=`object`){p.warn(`sudo relay empty response — denying`),t({decision:`deny`});return}let a=r;if(!a.ok||!a.decision){p.warn(`sudo relay error response — denying`,{error:a.error}),t({decision:`deny`});return}t(g(a.decision,e.suggestedPattern??e.detail))};try{n.sendMessage({source:`offscreen`,payload:{type:s,request:e}},r)}catch(e){p.warn(`sudo relay threw — denying`,{error:e instanceof Error?e.message:String(e)}),t({decision:`deny`})}})}function g(e,t){return e.decision===`allow`?{decision:`allow`}:e.decision===`always`?{decision:`always`,pattern:typeof e.pattern==`string`&&e.pattern.trim().length>0?e.pattern.trim():t}:{decision:`deny`}}var _=t(`sudo-http`);function v(e={}){let t=e.fetchImpl??globalThis.fetch.bind(globalThis),r=e.path??`/api/sudo-approve`,a=e.suggest??d;return{async requestApproval(e){let o;try{o=await a(e)}catch{o=e.detail}try{let a=await t(n(r),{method:`POST`,headers:i({"Content-Type":`application/json`}),body:JSON.stringify({kind:e.kind,detail:e.detail,suggestedPattern:o})});return a.ok?y(await a.json(),o):(_.warn(`sudo endpoint returned non-OK status — denying`,{status:a.status}),{decision:`deny`})}catch(e){return _.warn(`sudo endpoint request failed — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:`deny`}}}}}function y(e,t){if(!e||typeof e!=`object`)return{decision:`deny`};let n=e.decision;if(n===`allow`)return{decision:`allow`};if(n===`always`){let n=e.pattern;return{decision:`always`,pattern:typeof n==`string`&&n.trim().length>0?n.trim():t}}return{decision:`deny`}}var b=t(`sudo-panel-rpc`),x=6e5;function S(t={}){let n=t.suggest??d,r=t.timeoutMs??x,i=t.getClient??(async()=>{let{getPanelRpcClient:t}=await e(async()=>{let{getPanelRpcClient:e}=await import(`./panel-rpc-DmJSNs0I.js`).then(e=>e.i);return{getPanelRpcClient:e}},__vite__mapDeps([0,1]));return t()});return{async requestApproval(e){let t;try{t=await n(e)}catch{t=e.detail}let a={...e,suggestedPattern:t},o;try{o=await i()}catch(e){return b.warn(`panel-RPC client lookup threw — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:`deny`}}if(!o)return b.warn(`panel-RPC client unavailable in worker realm — denying`),{decision:`deny`};try{let{decision:e}=await o.call(`sudo-request`,{request:a},{timeoutMs:r});return C(e,t)}catch(e){return b.warn(`sudo panel-RPC relay failed — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:`deny`}}}}}function C(e,t){if(!e||typeof e!=`object`)return{decision:`deny`};let n=e.decision;if(n===`allow`)return{decision:`allow`};if(n===`always`){let n=e.pattern;return{decision:`always`,pattern:typeof n==`string`&&n.trim().length>0?n.trim():t}}return{decision:`deny`}}var w=t(`sudo`),T=`__slicc_sudo`;function E(){return typeof chrome<`u`&&!!chrome?.runtime?.id}function D(){return typeof chrome>`u`&&r()!==null}function O(){return E()?m():D()?S():v()}function k(e=O()){let t={requestApproval:t=>e.requestApproval(t)};return globalThis[T]=t,w.info(`sudo broker test hook published on globalThis.__slicc_sudo`),t}export{o as installPanelSudoResponder,k as installSudoTestHook};
@@ -1 +1 @@
1
- import{n as e}from"./clipboard-DgFtRQbq.js";function t(t){document.querySelectorAll(`.dialog-overlay[data-sync-dialog]`).forEach(e=>{e.remove()});let n=document.createElement(`div`);n.className=`dialog-overlay`,n.dataset.syncDialog=`1`;let r=document.createElement(`div`);r.className=`dialog`,n.appendChild(r);let i=document.createElement(`div`);i.className=`dialog__title`,i.textContent=`Multi-browser sync is on`,r.appendChild(i);let a=document.createElement(`div`);a.className=`dialog__desc`,a.textContent=t.copied?`The sync URL is copied to your clipboard. Paste it into another SLICC browser to mirror this one.`:`Couldn’t copy automatically. Use the button below to copy the sync URL, then paste it into another SLICC browser.`,r.appendChild(a);let o=document.createElement(`div`);o.style.cssText=`margin-bottom: 12px; padding: 10px 12px; background: var(--s2-bg-layer-1); border-radius: var(--s2-radius-default); border: 1px solid var(--s2-border-subtle); line-height: 1.5; font-size: 12px; color: var(--s2-content-secondary);`;let s=document.createElement(`ol`);s.style.cssText=`margin: 0; padding-left: 20px;`;for(let e of[`Open SLICC in another browser.`,`Click the avatar (top right) → “Connect to another browser”.`,`Paste the URL there. Both browsers must be on the same SLICC version.`]){let t=document.createElement(`li`);t.textContent=e,s.appendChild(t)}o.appendChild(s),r.appendChild(o);let c=document.createElement(`div`);c.style.cssText=`font-family: var(--s2-font-mono); font-size: 11px; color: var(--s2-content-secondary); word-break: break-all; margin-bottom: 12px; padding: 8px 12px; background: var(--s2-bg-sunken); border-radius: var(--s2-radius-default); border: 1px solid var(--s2-border-subtle);`,c.textContent=t.joinUrl,r.appendChild(c);let l=document.createElement(`div`);l.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px; display: none;`,r.appendChild(l),t.copied&&(l.textContent=`URL copied to clipboard.`,l.style.display=``);let u=document.createElement(`button`);u.className=`dialog__btn dialog__btn--secondary`,u.style.marginBottom=`8px`,u.textContent=t.copied?`Copy again`:`Copy URL`,u.addEventListener(`click`,async()=>{let n=await e(t.joinUrl);l.textContent=n?`URL copied to clipboard.`:`Couldn’t copy. Select and copy manually.`,l.style.color=n?`var(--s2-content-secondary)`:`var(--slicc-cone)`,l.style.display=``}),r.appendChild(u);let d=document.createElement(`button`);if(d.className=`dialog__btn`,d.textContent=`Done`,d.addEventListener(`click`,()=>n.remove()),r.appendChild(d),t.onReset){let e=document.createElement(`button`);e.className=`dialog__btn dialog__btn--secondary`,e.style.marginTop=`8px`,e.textContent=`Reset URL (disconnect connected browsers)`,e.addEventListener(`click`,async()=>{e.disabled=!0,d.disabled=!0,u.disabled=!0,l.textContent=`Resetting sync URL…`,l.style.color=`var(--s2-content-secondary)`,l.style.display=``;try{await t.onReset(),l.textContent=`Sync URL reset. Reopen this dialog from the avatar to share the new URL.`,l.style.color=`var(--s2-content-secondary)`,c.textContent=`—`,u.disabled=!0}catch(t){l.textContent=`Reset failed: ${t instanceof Error?t.message:String(t)}`,l.style.color=`var(--slicc-cone)`,e.disabled=!1,d.disabled=!1,u.disabled=!1}}),r.appendChild(e)}n.addEventListener(`click`,e=>{e.target===n&&n.remove()}),document.body.appendChild(n)}export{t as showSyncEnabledDialog};
1
+ import{n as e}from"./clipboard-DuHpK59o.js";function t(t){document.querySelectorAll(`.dialog-overlay[data-sync-dialog]`).forEach(e=>{e.remove()});let n=document.createElement(`div`);n.className=`dialog-overlay`,n.dataset.syncDialog=`1`;let r=document.createElement(`div`);r.className=`dialog`,n.appendChild(r);let i=document.createElement(`div`);i.className=`dialog__title`,i.textContent=`Multi-browser sync is on`,r.appendChild(i);let a=document.createElement(`div`);a.className=`dialog__desc`,a.textContent=t.copied?`The sync URL is copied to your clipboard. Paste it into another SLICC browser to mirror this one.`:`Couldn’t copy automatically. Use the button below to copy the sync URL, then paste it into another SLICC browser.`,r.appendChild(a);let o=document.createElement(`div`);o.style.cssText=`margin-bottom: 12px; padding: 10px 12px; background: var(--s2-bg-layer-1); border-radius: var(--s2-radius-default); border: 1px solid var(--s2-border-subtle); line-height: 1.5; font-size: 12px; color: var(--s2-content-secondary);`;let s=document.createElement(`ol`);s.style.cssText=`margin: 0; padding-left: 20px;`;for(let e of[`Open SLICC in another browser.`,`Click the avatar (top right) → “Connect to another browser”.`,`Paste the URL there. Both browsers must be on the same SLICC version.`]){let t=document.createElement(`li`);t.textContent=e,s.appendChild(t)}o.appendChild(s),r.appendChild(o);let c=document.createElement(`div`);c.style.cssText=`font-family: var(--s2-font-mono); font-size: 11px; color: var(--s2-content-secondary); word-break: break-all; margin-bottom: 12px; padding: 8px 12px; background: var(--s2-bg-sunken); border-radius: var(--s2-radius-default); border: 1px solid var(--s2-border-subtle);`,c.textContent=t.joinUrl,r.appendChild(c);let l=document.createElement(`div`);l.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px; display: none;`,r.appendChild(l),t.copied&&(l.textContent=`URL copied to clipboard.`,l.style.display=``);let u=document.createElement(`button`);u.className=`dialog__btn dialog__btn--secondary`,u.style.marginBottom=`8px`,u.textContent=t.copied?`Copy again`:`Copy URL`,u.addEventListener(`click`,async()=>{let n=await e(t.joinUrl);l.textContent=n?`URL copied to clipboard.`:`Couldn’t copy. Select and copy manually.`,l.style.color=n?`var(--s2-content-secondary)`:`var(--slicc-cone)`,l.style.display=``}),r.appendChild(u);let d=document.createElement(`button`);if(d.className=`dialog__btn`,d.textContent=`Done`,d.addEventListener(`click`,()=>n.remove()),r.appendChild(d),t.onReset){let e=document.createElement(`button`);e.className=`dialog__btn dialog__btn--secondary`,e.style.marginTop=`8px`,e.textContent=`Reset URL (disconnect connected browsers)`,e.addEventListener(`click`,async()=>{e.disabled=!0,d.disabled=!0,u.disabled=!0,l.textContent=`Resetting sync URL…`,l.style.color=`var(--s2-content-secondary)`,l.style.display=``;try{await t.onReset(),l.textContent=`Sync URL reset. Reopen this dialog from the avatar to share the new URL.`,l.style.color=`var(--s2-content-secondary)`,c.textContent=`—`,u.disabled=!0}catch(t){l.textContent=`Reset failed: ${t instanceof Error?t.message:String(t)}`,l.style.color=`var(--slicc-cone)`,e.disabled=!1,d.disabled=!1,u.disabled=!1}}),r.appendChild(e)}n.addEventListener(`click`,e=>{e.target===n&&n.remove()}),document.body.appendChild(n)}export{t as showSyncEnabledDialog};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{c as t,n,p as r,s as i}from"./theme-engine-LmGLoWYX.js";var a=e({applyTheme:()=>h,getThemePreference:()=>c,isThemeLight:()=>l,registerSprinkleWindow:()=>d,unregisterSprinkleWindow:()=>f,watchSprinkleThemeBroadcast:()=>_}),o=`slicc-theme`,s=new Set([`dark`,`light`,`system`]);function c(){let e=localStorage.getItem(o);return e&&s.has(e)?e:`system`}function l(){if(document.documentElement.classList.contains(`theme-light`))return!0;let e=document.body;if(e){if(e.classList.contains(`dark`)||e.getAttribute(`data-theme`)===`dark`)return!1;if(e.getAttribute(`data-theme`)===`light`)return!0}return window.matchMedia?.(`(prefers-color-scheme: light)`).matches??!1}var u=new Set;function d(e){e&&u.add(e)}function f(e){e&&u.delete(e)}function p(){let e=i();return e?(r.find(t=>t.id===e)??t().find(t=>t.id===e))?.tokens??null:null}function m(){let e=l(),t=p();for(let n of u)try{n.postMessage({type:`slicc-theme`,isLight:e,overrides:t},`*`)}catch{u.delete(n)}}function h(){let e=c(),t=e===`light`;e===`system`&&(t=window.matchMedia?.(`(prefers-color-scheme: light)`).matches??!1),document.documentElement.classList.toggle(`theme-light`,t),n(),m()}var g=!1;function _(){g||(g=!0,typeof MutationObserver<`u`&&document.body&&new MutationObserver(()=>m()).observe(document.body,{attributes:!0,attributeFilter:[`class`,`data-theme`]}),window.matchMedia?.(`(prefers-color-scheme: dark)`)?.addEventListener?.(`change`,()=>m()))}export{f as a,a as i,l as n,d as r,h as t};
@@ -0,0 +1,3 @@
1
+ import{n as e}from"./rolldown-runtime-aKtaBQYM.js";var t=[{id:`vanilla`,name:`Vanilla`,base:`light`,disableShader:!0,tokens:{"--s2-gray-25":`#fffdf8`,"--s2-gray-50":`#faf6f0`,"--s2-gray-75":`#f5f0e8`,"--s2-gray-100":`#ede7dc`,"--s2-gray-200":`#e0d8cc`,"--s2-gray-300":`#d4cbbf`,"--s2-gray-400":`#b8ad9e`,"--s2-gray-500":`#8c7f6f`,"--s2-gray-600":`#6b5f50`,"--s2-gray-700":`#4d4235`,"--s2-gray-800":`#2e2418`,"--s2-gray-900":`#1a1008`,"--s2-gray-1000":`#000000`,"--s2-bg-base":`#fffdf8`,"--s2-bg-layer-1":`#faf6f0`,"--s2-bg-layer-2":`#f5f0e8`,"--s2-bg-elevated":`#ede7dc`,"--s2-bg-sunken":`#f5f0e8`,"--s2-accent":`#a0522d`,"--s2-accent-hover":`#8b4513`,"--s2-accent-down":`#6b3410`,"--slicc-cone":`#d2691e`,"--s2-border-default":`#d4cbbf`,"--s2-border-subtle":`#e0d8cc`,"--canvas":`#fffdf8`,"--bg":`#f5f0e8`,"--ghost":`#f5f0e8`,"--desk":`#f5f0e8`,"--ink":`#1a1008`,"--deep":`#1a1008`,"--txt-2":`#6b5f50`,"--txt-3":`#8c7f6f`,"--line":`#d4cbbf`,"--ctx":`#a0522d`,"--shaderbg":`#fffdf8`}},{id:`midnight-scoop`,name:`Midnight Scoop`,base:`dark`,disableShader:!0,tokens:{"--s2-gray-25":`#0d1117`,"--s2-gray-50":`#131a24`,"--s2-gray-75":`#1a2332`,"--s2-gray-100":`#212d40`,"--s2-gray-200":`#2d3b50`,"--s2-gray-300":`#3a4a63`,"--s2-gray-400":`#4d5f7a`,"--s2-gray-500":`#6b7f99`,"--s2-gray-600":`#8899b3`,"--s2-gray-700":`#a8b8d0`,"--s2-gray-800":`#cdd8e8`,"--s2-gray-900":`#e8eef5`,"--s2-gray-1000":`#ffffff`,"--s2-bg-base":`#0d1117`,"--s2-bg-layer-1":`#131a24`,"--s2-bg-layer-2":`#1a2332`,"--s2-bg-elevated":`#212d40`,"--s2-bg-sunken":`#080c12`,"--s2-accent":`#58a6ff`,"--s2-accent-hover":`#79b8ff`,"--s2-accent-down":`#3d8bda`,"--slicc-cone":`#f0883e`,"--s2-border-default":`#3a4a63`,"--s2-border-subtle":`#2d3b50`,"--canvas":`#0d1117`,"--bg":`#080c12`,"--ghost":`#1a2332`,"--desk":`#1a2332`,"--ink":`#e8eef5`,"--deep":`#e8eef5`,"--txt-2":`#8899b3`,"--txt-3":`#6b7f99`,"--line":`#3a4a63`,"--ctx":`#58a6ff`,"--shaderbg":`#0d1117`}},{id:`matcha-float`,name:`Matcha Float`,base:`dark`,disableShader:!0,tokens:{"--s2-gray-25":`#0f1a14`,"--s2-gray-50":`#14221b`,"--s2-gray-75":`#1a2d23`,"--s2-gray-100":`#21382c`,"--s2-gray-200":`#2d4a3a`,"--s2-gray-300":`#3a5c48`,"--s2-gray-400":`#4d7360`,"--s2-gray-500":`#6b9480`,"--s2-gray-600":`#88b09c`,"--s2-gray-700":`#a8c8b8`,"--s2-gray-800":`#cce0d5`,"--s2-gray-900":`#e8f2ec`,"--s2-gray-1000":`#ffffff`,"--s2-bg-base":`#0f1a14`,"--s2-bg-layer-1":`#14221b`,"--s2-bg-layer-2":`#1a2d23`,"--s2-bg-elevated":`#21382c`,"--s2-bg-sunken":`#0a120e`,"--s2-accent":`#6bce9a`,"--s2-accent-hover":`#88dbb0`,"--s2-accent-down":`#4fb882`,"--slicc-cone":`#a8d86c`,"--s2-border-default":`#3a5c48`,"--s2-border-subtle":`#2d4a3a`,"--canvas":`#0f1a14`,"--bg":`#0a120e`,"--ghost":`#1a2d23`,"--desk":`#1a2d23`,"--ink":`#e8f2ec`,"--deep":`#e8f2ec`,"--txt-2":`#88b09c`,"--txt-3":`#6b9480`,"--line":`#3a5c48`,"--ctx":`#6bce9a`,"--shaderbg":`#0f1a14`}},{id:`berry-cone`,name:`Berry Cone`,base:`dark`,disableShader:!0,tokens:{"--s2-gray-25":`#150a1a`,"--s2-gray-50":`#1e1024`,"--s2-gray-75":`#281830`,"--s2-gray-100":`#33203d`,"--s2-gray-200":`#44304f`,"--s2-gray-300":`#574063`,"--s2-gray-400":`#6e5580`,"--s2-gray-500":`#8c7099`,"--s2-gray-600":`#a88cb3`,"--s2-gray-700":`#c0a8cc`,"--s2-gray-800":`#d8c8e0`,"--s2-gray-900":`#f0e8f4`,"--s2-gray-1000":`#ffffff`,"--s2-bg-base":`#150a1a`,"--s2-bg-layer-1":`#1e1024`,"--s2-bg-layer-2":`#281830`,"--s2-bg-elevated":`#33203d`,"--s2-bg-sunken":`#0f0614`,"--s2-accent":`#e06be0`,"--s2-accent-hover":`#e88ae8`,"--s2-accent-down":`#c84ec8`,"--slicc-cone":`#ff6b9d`,"--s2-border-default":`#574063`,"--s2-border-subtle":`#44304f`,"--canvas":`#150a1a`,"--bg":`#0f0614`,"--ghost":`#281830`,"--desk":`#281830`,"--ink":`#f0e8f4`,"--deep":`#f0e8f4`,"--txt-2":`#a88cb3`,"--txt-3":`#8c7099`,"--line":`#574063`,"--ctx":`#e06be0`,"--shaderbg":`#150a1a`}},{id:`caramel-swirl`,name:`Caramel Swirl`,base:`light`,disableShader:!0,tokens:{"--s2-gray-25":`#fdf9f3`,"--s2-gray-50":`#f8f2e8`,"--s2-gray-75":`#f2eadd`,"--s2-gray-100":`#e8dfd0`,"--s2-gray-200":`#ddd2c0`,"--s2-gray-300":`#d0c3b0`,"--s2-gray-400":`#b8a890`,"--s2-gray-500":`#8f7a60`,"--s2-gray-600":`#6b5a42`,"--s2-gray-700":`#4d3f2a`,"--s2-gray-800":`#2e2515`,"--s2-gray-900":`#1a1408`,"--s2-gray-1000":`#000000`,"--s2-bg-base":`#fdf9f3`,"--s2-bg-layer-1":`#f8f2e8`,"--s2-bg-layer-2":`#f2eadd`,"--s2-bg-elevated":`#e8dfd0`,"--s2-bg-sunken":`#f2eadd`,"--s2-accent":`#c87830`,"--s2-accent-hover":`#b06828`,"--s2-accent-down":`#985820`,"--slicc-cone":`#e89040`,"--s2-border-default":`#d0c3b0`,"--s2-border-subtle":`#ddd2c0`,"--canvas":`#fdf9f3`,"--bg":`#f2eadd`,"--ghost":`#f2eadd`,"--desk":`#f2eadd`,"--ink":`#1a1408`,"--deep":`#1a1408`,"--txt-2":`#6b5a42`,"--txt-3":`#8f7a60`,"--line":`#d0c3b0`,"--ctx":`#c87830`,"--shaderbg":`#fdf9f3`}},{id:`sorbet`,name:`Sorbet`,base:`light`,disableShader:!0,tokens:{"--s2-gray-25":`#fff8f6`,"--s2-gray-50":`#fef0ed`,"--s2-gray-75":`#fce8e3`,"--s2-gray-100":`#f8ddd6`,"--s2-gray-200":`#f0d0c8`,"--s2-gray-300":`#e8c0b8`,"--s2-gray-400":`#d4a89e`,"--s2-gray-500":`#a8807a`,"--s2-gray-600":`#80605c`,"--s2-gray-700":`#5c4240`,"--s2-gray-800":`#3a2826`,"--s2-gray-900":`#1e1412`,"--s2-gray-1000":`#000000`,"--s2-bg-base":`#fff8f6`,"--s2-bg-layer-1":`#fef0ed`,"--s2-bg-layer-2":`#fce8e3`,"--s2-bg-elevated":`#f8ddd6`,"--s2-bg-sunken":`#fce8e3`,"--s2-accent":`#e86050`,"--s2-accent-hover":`#d04840`,"--s2-accent-down":`#b83830`,"--slicc-cone":`#ff7860`,"--s2-border-default":`#e8c0b8`,"--s2-border-subtle":`#f0d0c8`,"--canvas":`#fff8f6`,"--bg":`#fce8e3`,"--ghost":`#fce8e3`,"--desk":`#fce8e3`,"--ink":`#1e1412`,"--deep":`#1e1412`,"--txt-2":`#80605c`,"--txt-3":`#a8807a`,"--line":`#e8c0b8`,"--ctx":`#e86050`,"--shaderbg":`#fff8f6`}}],n=e({adjustLightness:()=>a,adjustSaturation:()=>o,applyThemeOverrides:()=>T,clearActiveTheme:()=>m,deleteCustomTheme:()=>_,deriveTokens:()=>s,exportTheme:()=>j,getActiveThemeId:()=>f,getCustomThemes:()=>h,hexToHsl:()=>r,hslToHex:()=>i,importTheme:()=>M,saveCustomTheme:()=>g,setActiveTheme:()=>p,setThemeChangeListener:()=>b});function r(e){let t=parseInt(e.slice(1,3),16)/255,n=parseInt(e.slice(3,5),16)/255,r=parseInt(e.slice(5,7),16)/255,i=Math.max(t,n,r),a=Math.min(t,n,r),o=(i+a)/2;if(i===a)return[0,0,o];let s=i-a,c=o>.5?s/(2-i-a):s/(i+a),l;return l=i===t?((n-r)/s+(n<r?6:0))*60:i===n?((r-t)/s+2)*60:((t-n)/s+4)*60,[l,c,o]}function i(e,t,n){let r=(e,t,n)=>(n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e),i,a,o;if(t===0)i=a=o=n;else{let s=n<.5?n*(1+t):n+t-n*t,c=2*n-s,l=e/360;i=r(c,s,l+1/3),a=r(c,s,l),o=r(c,s,l-1/3)}let s=e=>Math.round(e*255).toString(16).padStart(2,`0`);return`#${s(i)}${s(a)}${s(o)}`}function a(e,t){let[n,a,o]=r(e);return i(n,a,Math.max(0,Math.min(1,o+t)))}function o(e,t){let[n,a,o]=r(e);return i(n,Math.max(0,Math.min(1,a+t)),o)}function s(e,t){let n=t===`dark`,r=n?.03:-.02,i={};return i[`--s2-gray-25`]=e.background,i[`--s2-bg-base`]=e.background,i[`--s2-gray-50`]=a(e.background,r),i[`--s2-gray-75`]=a(e.background,r*2),i[`--s2-gray-100`]=a(e.background,r*3),i[`--s2-gray-200`]=a(e.background,r*5),i[`--s2-bg-sunken`]=a(e.background,n?-.02:.02),i[`--s2-bg-layer-1`]=a(e.background,r),i[`--s2-bg-layer-2`]=a(e.background,r*2),i[`--s2-bg-elevated`]=a(e.background,r*3),i[`--s2-gray-300`]=e.surface,i[`--s2-gray-900`]=e.text,i[`--s2-gray-1000`]=n?`#ffffff`:`#000000`,i[`--s2-gray-800`]=a(e.text,n?-.05:.05),i[`--s2-content-default`]=e.text,i[`--s2-content-secondary`]=a(e.text,n?-.1:.1),i[`--s2-content-tertiary`]=a(e.text,n?-.2:.2),i[`--s2-content-disabled`]=a(e.text,n?-.3:.3),i[`--s2-accent`]=e.accent,i[`--s2-accent-hover`]=a(e.accent,n?.08:-.06),i[`--s2-accent-down`]=a(e.accent,n?-.06:.08),i[`--slicc-accent`]=e.accent,i[`--slicc-cone`]=e.accent,i[`--slicc-scoop-blue`]=o(e.accent,.1),i[`--slicc-scoop-purple`]=a(e.accent,.05),i[`--slicc-scoop-teal`]=a(e.accent,-.05),i[`--s2-positive`]=e.success,i[`--s2-negative`]=e.error,i[`--s2-informative`]=e.accent,i[`--s2-notice`]=a(e.accent,n?.1:-.1),i[`--s2-border-default`]=e.border,i[`--s2-border-subtle`]=a(e.border,n?-.03:.03),i[`--s2-border-focus`]=e.accent,i[`--s2-shadow-elevated`]=n?`rgba(0, 0, 0, 0.4)`:`rgba(0, 0, 0, 0.1)`,i[`--s2-shadow-container`]=n?`rgba(0, 0, 0, 0.2)`:`rgba(0, 0, 0, 0.05)`,i[`--canvas`]=e.background,i[`--bg`]=a(e.background,n?-.02:.02),i[`--ghost`]=a(e.background,r*2),i[`--desk`]=a(e.background,r*2),i[`--ink`]=e.text,i[`--deep`]=e.text,i[`--txt-2`]=a(e.text,n?-.2:.2),i[`--txt-3`]=a(e.text,n?-.35:.35),i[`--line`]=e.border,i[`--ctx`]=e.accent,i[`--waffle`]=e.accent,i[`--shaderbg`]=e.background,i}var c=`slicc-themes`,l=`slicc-active-theme`,u=`slicc-theme-overrides`;function d(){try{return typeof localStorage<`u`&&typeof localStorage.getItem==`function`?localStorage:null}catch{return null}}function f(){return d()?.getItem(l)||null}function p(e){d()?.setItem(l,e)}function m(){d()?.removeItem(l)}function h(){try{return JSON.parse(d()?.getItem(c)||`[]`)}catch{return[]}}function g(e){let t=h().filter(t=>t.id!==e.id);t.push(e),d()?.setItem(c,JSON.stringify(t))}function _(e){let t=h().filter(t=>t.id!==e);d()?.setItem(c,JSON.stringify(t)),f()===e&&m()}function v(e){return t.find(t=>t.id===e)??h().find(t=>t.id===e)}var y=null;function b(e){y=e}function x(e){y&&y(e?j(e):null)}function S(e){let t=[];return e.background&&t.push(`background:${e.background}`),e.text&&t.push(`color:${e.text}`),e.border&&t.push(`border:1px solid ${e.border}`),e.radius&&t.push(`border-radius:${e.radius}`),e.padding&&t.push(`padding:${e.padding}`),e.fontSize&&t.push(`font-size:${e.fontSize}`),e.fontFamily&&t.push(`font-family:${e.fontFamily}`),e.shadow&&t.push(`box-shadow:${e.shadow}`),e.blur&&t.push(`backdrop-filter:blur(${e.blur})`),e.height&&t.push(`height:${e.height}`),e.opacity&&t.push(`opacity:${e.opacity}`),t.map(e=>`${e}!important`).join(`;`)}var C={userBubble:[`slicc-user-message::part(bubble)`],assistantMessage:[`slicc-agent-message`,`slicc-agent-message .body`],codeBlock:[`slicc-agent-message pre`,`slicc-agent-message code`],nav:[`.slicc-nav`],composer:[`slicc-input-card > .slicc-input-card__card`],sidebar:[`.wcui-rail`,`.wcui-sidebar`],dialog:[`slicc-dialog::part(dialog)`]};function w(e){let t=[];for(let[n,r]of Object.entries(e)){if(!r)continue;let e=C[n];if(!e)continue;let i=S(r);i&&t.push(`${e.join(`,`)}{${i}}`)}return t.join(`
2
+ `)}function T(){if(typeof document>`u`||!document.getElementById)return;let e=f(),t=document.getElementById(u);if(!e){t?.remove(),E(!0),A(void 0),D(),k(),x(void 0);return}let n=v(e);if(!n||Object.keys(n.tokens).length===0){t?.remove(),E(!0),A(void 0),D(),k(),x(void 0);return}let r=Object.entries(n.tokens).map(([e,t])=>` ${e}: ${t};`).join(`
3
+ `),i=`:root {\n${r}\n}\n.dark, [data-theme="dark"] {\n${r}\n}${n.disableShader?`\n.wcui-shader{display:none!important;}\nbody{background:${n.tokens[`--canvas`]||n.tokens[`--s2-gray-25`]||`var(--canvas)`}!important;}`:``}${n.components?`\n${w(n.components)}`:``}${n.css?`\n${n.css}`:``}`;if(t)t.textContent=i;else{let e=document.createElement(`style`);e.id=u,e.textContent=i,document.head.appendChild(e)}E(!n.disableShader),A(n),O(n.base),k(),x(n)}function E(e){let t=document.querySelector(`.wcui-shader`);t&&(t.style.display=e?``:`none`)}function D(){let e=document.body;e&&(window.matchMedia?.(`(prefers-color-scheme: dark)`).matches??!0?(e.classList.add(`dark`),e.setAttribute(`data-theme`,`dark`)):(e.classList.remove(`dark`),e.setAttribute(`data-theme`,`light`)))}function O(e){let t=document.body;t&&(e===`dark`?(t.classList.add(`dark`),t.setAttribute(`data-theme`,`dark`)):(t.classList.remove(`dark`),t.setAttribute(`data-theme`,`light`)))}function k(){document.documentElement.classList.toggle(`slicc-theme-applied`)}function A(e){let t=document.querySelector(`.slicc-nav`);t&&(e?t.style.setProperty(`--ctx`,e.tokens[`--ctx`]||e.tokens[`--waffle`]||``):t.style.setProperty(`--ctx`,`var(--waffle)`))}function j(e){return JSON.stringify(e,null,2)}function M(e){let t;try{t=JSON.parse(e)}catch{throw Error(`Invalid JSON`)}if(!t||typeof t!=`object`||!(`id`in t)||!(`name`in t)||!(`base`in t)||!(`tokens`in t))throw Error(`Invalid theme: missing required fields (id, name, base, tokens)`);let n=t;if(n.base!==`dark`&&n.base!==`light`)throw Error(`Invalid theme: base must be "dark" or "light"`);if(typeof n.tokens!=`object`||n.tokens===null)throw Error(`Invalid theme: tokens must be an object`);return n}export{s as a,h as c,p as d,n as f,_ as i,M as l,T as n,j as o,t as p,m as r,f as s,a as t,g as u};
@@ -0,0 +1 @@
1
+ const e=[{id:`vanilla`,name:`Vanilla`,base:`light`,disableShader:!0,tokens:{"--s2-gray-25":`#fffdf8`,"--s2-gray-50":`#faf6f0`,"--s2-gray-75":`#f5f0e8`,"--s2-gray-100":`#ede7dc`,"--s2-gray-200":`#e0d8cc`,"--s2-gray-300":`#d4cbbf`,"--s2-gray-400":`#b8ad9e`,"--s2-gray-500":`#8c7f6f`,"--s2-gray-600":`#6b5f50`,"--s2-gray-700":`#4d4235`,"--s2-gray-800":`#2e2418`,"--s2-gray-900":`#1a1008`,"--s2-gray-1000":`#000000`,"--s2-bg-base":`#fffdf8`,"--s2-bg-layer-1":`#faf6f0`,"--s2-bg-layer-2":`#f5f0e8`,"--s2-bg-elevated":`#ede7dc`,"--s2-bg-sunken":`#f5f0e8`,"--s2-accent":`#a0522d`,"--s2-accent-hover":`#8b4513`,"--s2-accent-down":`#6b3410`,"--slicc-cone":`#d2691e`,"--s2-border-default":`#d4cbbf`,"--s2-border-subtle":`#e0d8cc`,"--canvas":`#fffdf8`,"--bg":`#f5f0e8`,"--ghost":`#f5f0e8`,"--desk":`#f5f0e8`,"--ink":`#1a1008`,"--deep":`#1a1008`,"--txt-2":`#6b5f50`,"--txt-3":`#8c7f6f`,"--line":`#d4cbbf`,"--ctx":`#a0522d`,"--shaderbg":`#fffdf8`}},{id:`midnight-scoop`,name:`Midnight Scoop`,base:`dark`,disableShader:!0,tokens:{"--s2-gray-25":`#0d1117`,"--s2-gray-50":`#131a24`,"--s2-gray-75":`#1a2332`,"--s2-gray-100":`#212d40`,"--s2-gray-200":`#2d3b50`,"--s2-gray-300":`#3a4a63`,"--s2-gray-400":`#4d5f7a`,"--s2-gray-500":`#6b7f99`,"--s2-gray-600":`#8899b3`,"--s2-gray-700":`#a8b8d0`,"--s2-gray-800":`#cdd8e8`,"--s2-gray-900":`#e8eef5`,"--s2-gray-1000":`#ffffff`,"--s2-bg-base":`#0d1117`,"--s2-bg-layer-1":`#131a24`,"--s2-bg-layer-2":`#1a2332`,"--s2-bg-elevated":`#212d40`,"--s2-bg-sunken":`#080c12`,"--s2-accent":`#58a6ff`,"--s2-accent-hover":`#79b8ff`,"--s2-accent-down":`#3d8bda`,"--slicc-cone":`#f0883e`,"--s2-border-default":`#3a4a63`,"--s2-border-subtle":`#2d3b50`,"--canvas":`#0d1117`,"--bg":`#080c12`,"--ghost":`#1a2332`,"--desk":`#1a2332`,"--ink":`#e8eef5`,"--deep":`#e8eef5`,"--txt-2":`#8899b3`,"--txt-3":`#6b7f99`,"--line":`#3a4a63`,"--ctx":`#58a6ff`,"--shaderbg":`#0d1117`}},{id:`matcha-float`,name:`Matcha Float`,base:`dark`,disableShader:!0,tokens:{"--s2-gray-25":`#0f1a14`,"--s2-gray-50":`#14221b`,"--s2-gray-75":`#1a2d23`,"--s2-gray-100":`#21382c`,"--s2-gray-200":`#2d4a3a`,"--s2-gray-300":`#3a5c48`,"--s2-gray-400":`#4d7360`,"--s2-gray-500":`#6b9480`,"--s2-gray-600":`#88b09c`,"--s2-gray-700":`#a8c8b8`,"--s2-gray-800":`#cce0d5`,"--s2-gray-900":`#e8f2ec`,"--s2-gray-1000":`#ffffff`,"--s2-bg-base":`#0f1a14`,"--s2-bg-layer-1":`#14221b`,"--s2-bg-layer-2":`#1a2d23`,"--s2-bg-elevated":`#21382c`,"--s2-bg-sunken":`#0a120e`,"--s2-accent":`#6bce9a`,"--s2-accent-hover":`#88dbb0`,"--s2-accent-down":`#4fb882`,"--slicc-cone":`#a8d86c`,"--s2-border-default":`#3a5c48`,"--s2-border-subtle":`#2d4a3a`,"--canvas":`#0f1a14`,"--bg":`#0a120e`,"--ghost":`#1a2d23`,"--desk":`#1a2d23`,"--ink":`#e8f2ec`,"--deep":`#e8f2ec`,"--txt-2":`#88b09c`,"--txt-3":`#6b9480`,"--line":`#3a5c48`,"--ctx":`#6bce9a`,"--shaderbg":`#0f1a14`}},{id:`berry-cone`,name:`Berry Cone`,base:`dark`,disableShader:!0,tokens:{"--s2-gray-25":`#150a1a`,"--s2-gray-50":`#1e1024`,"--s2-gray-75":`#281830`,"--s2-gray-100":`#33203d`,"--s2-gray-200":`#44304f`,"--s2-gray-300":`#574063`,"--s2-gray-400":`#6e5580`,"--s2-gray-500":`#8c7099`,"--s2-gray-600":`#a88cb3`,"--s2-gray-700":`#c0a8cc`,"--s2-gray-800":`#d8c8e0`,"--s2-gray-900":`#f0e8f4`,"--s2-gray-1000":`#ffffff`,"--s2-bg-base":`#150a1a`,"--s2-bg-layer-1":`#1e1024`,"--s2-bg-layer-2":`#281830`,"--s2-bg-elevated":`#33203d`,"--s2-bg-sunken":`#0f0614`,"--s2-accent":`#e06be0`,"--s2-accent-hover":`#e88ae8`,"--s2-accent-down":`#c84ec8`,"--slicc-cone":`#ff6b9d`,"--s2-border-default":`#574063`,"--s2-border-subtle":`#44304f`,"--canvas":`#150a1a`,"--bg":`#0f0614`,"--ghost":`#281830`,"--desk":`#281830`,"--ink":`#f0e8f4`,"--deep":`#f0e8f4`,"--txt-2":`#a88cb3`,"--txt-3":`#8c7099`,"--line":`#574063`,"--ctx":`#e06be0`,"--shaderbg":`#150a1a`}},{id:`caramel-swirl`,name:`Caramel Swirl`,base:`light`,disableShader:!0,tokens:{"--s2-gray-25":`#fdf9f3`,"--s2-gray-50":`#f8f2e8`,"--s2-gray-75":`#f2eadd`,"--s2-gray-100":`#e8dfd0`,"--s2-gray-200":`#ddd2c0`,"--s2-gray-300":`#d0c3b0`,"--s2-gray-400":`#b8a890`,"--s2-gray-500":`#8f7a60`,"--s2-gray-600":`#6b5a42`,"--s2-gray-700":`#4d3f2a`,"--s2-gray-800":`#2e2515`,"--s2-gray-900":`#1a1408`,"--s2-gray-1000":`#000000`,"--s2-bg-base":`#fdf9f3`,"--s2-bg-layer-1":`#f8f2e8`,"--s2-bg-layer-2":`#f2eadd`,"--s2-bg-elevated":`#e8dfd0`,"--s2-bg-sunken":`#f2eadd`,"--s2-accent":`#c87830`,"--s2-accent-hover":`#b06828`,"--s2-accent-down":`#985820`,"--slicc-cone":`#e89040`,"--s2-border-default":`#d0c3b0`,"--s2-border-subtle":`#ddd2c0`,"--canvas":`#fdf9f3`,"--bg":`#f2eadd`,"--ghost":`#f2eadd`,"--desk":`#f2eadd`,"--ink":`#1a1408`,"--deep":`#1a1408`,"--txt-2":`#6b5a42`,"--txt-3":`#8f7a60`,"--line":`#d0c3b0`,"--ctx":`#c87830`,"--shaderbg":`#fdf9f3`}},{id:`sorbet`,name:`Sorbet`,base:`light`,disableShader:!0,tokens:{"--s2-gray-25":`#fff8f6`,"--s2-gray-50":`#fef0ed`,"--s2-gray-75":`#fce8e3`,"--s2-gray-100":`#f8ddd6`,"--s2-gray-200":`#f0d0c8`,"--s2-gray-300":`#e8c0b8`,"--s2-gray-400":`#d4a89e`,"--s2-gray-500":`#a8807a`,"--s2-gray-600":`#80605c`,"--s2-gray-700":`#5c4240`,"--s2-gray-800":`#3a2826`,"--s2-gray-900":`#1e1412`,"--s2-gray-1000":`#000000`,"--s2-bg-base":`#fff8f6`,"--s2-bg-layer-1":`#fef0ed`,"--s2-bg-layer-2":`#fce8e3`,"--s2-bg-elevated":`#f8ddd6`,"--s2-bg-sunken":`#fce8e3`,"--s2-accent":`#e86050`,"--s2-accent-hover":`#d04840`,"--s2-accent-down":`#b83830`,"--slicc-cone":`#ff7860`,"--s2-border-default":`#e8c0b8`,"--s2-border-subtle":`#f0d0c8`,"--canvas":`#fff8f6`,"--bg":`#fce8e3`,"--ghost":`#fce8e3`,"--desk":`#fce8e3`,"--ink":`#1e1412`,"--deep":`#1e1412`,"--txt-2":`#80605c`,"--txt-3":`#a8807a`,"--line":`#e8c0b8`,"--ctx":`#e86050`,"--shaderbg":`#fff8f6`}}];export{e as PRESETS};
@@ -0,0 +1 @@
1
+ function e(e,t,n){return{temperature:t?.temperature,maxTokens:t?.maxTokens,signal:t?.signal,apiKey:n||t?.apiKey,transport:t?.transport,cacheRetention:t?.cacheRetention,sessionId:t?.sessionId,headers:t?.headers,onPayload:t?.onPayload,onResponse:t?.onResponse,timeoutMs:t?.timeoutMs,websocketConnectTimeoutMs:t?.websocketConnectTimeoutMs,maxRetries:t?.maxRetries,maxRetryDelayMs:t?.maxRetryDelayMs,metadata:t?.metadata}}function t(e){return e===`xhigh`?`high`:e}function n(e,n,r,i){let a={minimal:1024,low:2048,medium:8192,high:16384,...i}[t(r)],o=e===void 0?n:Math.min(e+a,n);return o<=a&&(a=Math.max(0,o-1024)),{maxTokens:o,thinkingBudget:a}}function r(e,t){let n=[],r=!1;for(let i of e){if(i.type===`image`){r||n.push({type:`text`,text:t}),r=!0;continue}n.push(i),r=i.text===t}return n}function i(e,t){return t.input.includes(`image`)?e:e.map(e=>e.role===`user`&&Array.isArray(e.content)?{...e,content:r(e.content,`(image omitted: model does not support images)`)}:e.role===`toolResult`?{...e,content:r(e.content,`(tool image omitted: model does not support images)`)}:e)}function a(e,t,n){let r=new Map,a=i(e,t).map(e=>{if(e.role===`user`)return e;if(e.role===`toolResult`){let t=r.get(e.toolCallId);return t&&t!==e.toolCallId?{...e,toolCallId:t}:e}if(e.role===`assistant`){let i=e,a=i.provider===t.provider&&i.api===t.api&&i.model===t.id,o=i.content.flatMap(e=>{if(e.type===`thinking`)return e.redacted?a?e:[]:a&&e.thinkingSignature?e:!e.thinking||e.thinking.trim()===``?[]:a?e:{type:`text`,text:e.thinking};if(e.type===`text`)return a?e:{type:`text`,text:e.text};if(e.type===`toolCall`){let o=e,s=o;if(!a&&o.thoughtSignature&&(s={...o},delete s.thoughtSignature),!a&&n){let e=n(o.id,t,i);e!==o.id&&(r.set(o.id,e),s={...s,id:e})}return s}return e});return{...i,content:o}}return e}),o=[],s=[],c=new Set,l=()=>{if(s.length>0){for(let e of s)c.has(e.id)||o.push({role:`toolResult`,toolCallId:e.id,toolName:e.name,content:[{type:`text`,text:`No result provided`}],isError:!0,timestamp:Date.now()});s=[],c=new Set}};for(let e=0;e<a.length;e++){let t=a[e];if(t.role===`assistant`){l();let e=t;if(e.stopReason===`error`||e.stopReason===`aborted`)continue;let n=e.content.filter(e=>e.type===`toolCall`);n.length>0&&(s=n,c=new Set),o.push(t)}else t.role===`toolResult`?(c.add(t.toolCallId),o.push(t)):(t.role===`user`&&l(),o.push(t))}return l(),o}export{t as i,n,e as r,a as t};
@@ -1 +1 @@
1
- import{a as e,t}from"./proxied-fetch-B5vr_AP8.js";import{n,t as r}from"./shared-DAA_6m5R.js";var i=1e3;function a(e=()=>Date.now()){let t=new Map,n=null,r=0,a=()=>{let e=0,n=0;for(let r of t.values())e+=r.loaded,n+=r.total;return{loaded:e,total:n}};return{update(i,o,s){t.set(i,{loaded:Math.max(0,o),total:Math.max(t.get(i)?.total??0,s,o)}),n===null&&(n=e(),r=a().loaded)},complete(e){let n=t.get(e);n&&(n.loaded=n.total)},snapshot(){let{loaded:t,total:o}=a(),s=null;if(n!==null&&o>0&&t<o){let a=e()-n,c=t-r;if(a>=i&&c>0){let e=c/a;s=(o-t)/e/1e3}}return o>0&&t>=o&&(s=0),{loaded:t,total:o,etaSeconds:s}}}}var o=Symbol.for(`slicc.transformers-env.fetch-wrapped`),s=()=>typeof chrome<`u`&&!!chrome?.runtime?.id,c=`/workspace/node_modules/onnxruntime-web/dist/`,l=`/workspace/models/`;function u(e){return typeof e==`string`?e:e instanceof URL?e.toString():e.url}function d(e){let t=u(e);return t.startsWith(`http://`)||t.startsWith(`https://`)}function f(){return globalThis.location?.origin??null}function p(e){let t=f();if(!t)return!1;try{return new URL(u(e)).origin===t}catch{return!1}}async function m(n,r){let i=u(n),a={};r?.headers&&new Headers(r.headers).forEach((e,t)=>{a[t]=e});let o=t({...a,"X-Target-URL":i}),s=(r?.method??`GET`).toUpperCase(),c={method:s,headers:o,cache:`no-store`};return r?.body&&s!==`GET`&&s!==`HEAD`&&(c.body=r.body),fetch(e(`/api/fetch-proxy`),c)}var h=3e4,g=[`ort-wasm-simd-threaded.jsep.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort-wasm-simd-threaded.jsep.wasm`,`ort-wasm-simd-threaded.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort.wasm`,`ort-wasm-simd-threaded.asyncify.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort-wasm-simd-threaded.asyncify.wasm`],_=Symbol.for(`slicc.transformers-env.vfs-enoent`);function v(e){if(typeof BroadcastChannel>`u`)return Promise.reject(Error(`Cannot read VFS path ${e}: BroadcastChannel unavailable in this realm`));let t=new BroadcastChannel(`preview-vfs`),n=`tfx-${Date.now()}-${Math.random().toString(36).slice(2)}`;return new Promise((r,i)=>{let a=e=>{t.removeEventListener(`message`,s),t.close(),e()},o=setTimeout(()=>{let t=Error(`ENOENT: ${e} (preview-vfs responder timed out)`);t[_]=!0,a(()=>i(t))},h),s=t=>{let s=t.data;if(s?.type!==`preview-vfs-response`||s.id!==n)return;if(clearTimeout(o),typeof s.error==`string`){let e=Error(s.error);s.error.includes(`ENOENT`)&&(e[_]=!0),a(()=>i(e));return}let c=s.content;if(c instanceof Uint8Array){a(()=>r(c));return}if(typeof c==`string`){a(()=>r(new TextEncoder().encode(c)));return}a(()=>i(Error(`Unexpected empty preview-vfs response for ${e}`)))};t.addEventListener(`message`,s),t.postMessage({type:`preview-vfs-read`,id:n,path:e,asText:!1})})}function y(e){return!!e?.[_]}function b(e){let t=new ArrayBuffer(e.byteLength),n=new Uint8Array(t);return n.set(e),n}function x(e,t){return!t||!e.startsWith(t)?null:`${l}${e.slice(t.length).split(`?`)[0].split(`#`)[0]}`}async function S(e,t){let n;try{n=await v(e)}catch(t){if(y(t))return new Response(`Not found: ${e}`,{status:404,headers:{"Content-Type":`text/plain`}});throw t}let i=r(e);return(t?.headers?new Headers(t.headers).get(`range`):null)===`bytes=0-0`?new Response(null,{status:206,headers:{"Content-Type":i,"Content-Length":String(n.byteLength),"Content-Range":`bytes 0-0/${n.byteLength}`}}):new Response(b(n),{status:200,headers:{"Content-Type":i,"Content-Length":String(n.byteLength)}})}var C=null;async function w(){if(typeof URL>`u`||typeof URL.createObjectURL!=`function`)throw Error(`onnxruntime-web blob URLs require URL.createObjectURL (browser realm only)`);let e={};if(await Promise.all(g.map(async t=>{try{let n=await v(`${c}${t}`),i=new Blob([b(n)],{type:r(t)});e[t]=URL.createObjectURL(i)}catch(e){if(!y(e))throw e}})),Object.keys(e).length===0)throw Error("onnxruntime-web is not installed — run `ipk add onnxruntime-web` to stage the wasm runtime in /workspace/node_modules/.");return e}function T(){return C||=w(),C}function E(e){let t=e.backends?.onnx?.wasm;if(t&&(t.wasmPaths=n(c)),e.allowRemoteModels=!1,e.allowLocalModels=!0,e.localModelPath=n(l),s())return;e.allowRemoteModels=!0,e.remoteHost=e.localModelPath,e.remotePathTemplate=`{model}/`,t&&T().then(e=>{t.wasmPaths=e},()=>{});let r=e.fetch;if(r?.[o])return;let i=r,a=e.localModelPath,f=async(e,t)=>{let n=x(u(e),a);return n===null?!d(e)||p(e)?i?i(e,t):fetch(e,t):m(e,t):S(n,t)};f[o]=!0,e.fetch=f}async function D(e){let t=`weights for ${e} are missing — run \`hf download ${e}\` to fetch them into /workspace/models/.`;try{await v(`${l}${e}/config.json`)}catch(e){if(y(e))throw Error(t);let n=e instanceof Error?e.message:String(e);throw Error(`${t} (probe failed: ${n})`)}}export{a as i,E as n,T as r,D as t};
1
+ import{a as e,t}from"./proxied-fetch-DzLglfG5.js";import{n,t as r}from"./shared-CrHp2zdc.js";var i=1e3;function a(e=()=>Date.now()){let t=new Map,n=null,r=0,a=()=>{let e=0,n=0;for(let r of t.values())e+=r.loaded,n+=r.total;return{loaded:e,total:n}};return{update(i,o,s){t.set(i,{loaded:Math.max(0,o),total:Math.max(t.get(i)?.total??0,s,o)}),n===null&&(n=e(),r=a().loaded)},complete(e){let n=t.get(e);n&&(n.loaded=n.total)},snapshot(){let{loaded:t,total:o}=a(),s=null;if(n!==null&&o>0&&t<o){let a=e()-n,c=t-r;if(a>=i&&c>0){let e=c/a;s=(o-t)/e/1e3}}return o>0&&t>=o&&(s=0),{loaded:t,total:o,etaSeconds:s}}}}var o=Symbol.for(`slicc.transformers-env.fetch-wrapped`),s=()=>typeof chrome<`u`&&!!chrome?.runtime?.id,c=`/workspace/node_modules/onnxruntime-web/dist/`,l=`/workspace/models/`;function u(e){return typeof e==`string`?e:e instanceof URL?e.toString():e.url}function d(e){let t=u(e);return t.startsWith(`http://`)||t.startsWith(`https://`)}function f(){return globalThis.location?.origin??null}function p(e){let t=f();if(!t)return!1;try{return new URL(u(e)).origin===t}catch{return!1}}async function m(n,r){let i=u(n),a={};r?.headers&&new Headers(r.headers).forEach((e,t)=>{a[t]=e});let o=t({...a,"X-Target-URL":i}),s=(r?.method??`GET`).toUpperCase(),c={method:s,headers:o,cache:`no-store`};return r?.body&&s!==`GET`&&s!==`HEAD`&&(c.body=r.body),fetch(e(`/api/fetch-proxy`),c)}var h=3e4,g=[`ort-wasm-simd-threaded.jsep.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort-wasm-simd-threaded.jsep.wasm`,`ort-wasm-simd-threaded.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort.wasm`,`ort-wasm-simd-threaded.asyncify.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort-wasm-simd-threaded.asyncify.wasm`],_=Symbol.for(`slicc.transformers-env.vfs-enoent`);function v(e){if(typeof BroadcastChannel>`u`)return Promise.reject(Error(`Cannot read VFS path ${e}: BroadcastChannel unavailable in this realm`));let t=new BroadcastChannel(`preview-vfs`),n=`tfx-${Date.now()}-${Math.random().toString(36).slice(2)}`;return new Promise((r,i)=>{let a=e=>{t.removeEventListener(`message`,s),t.close(),e()},o=setTimeout(()=>{let t=Error(`ENOENT: ${e} (preview-vfs responder timed out)`);t[_]=!0,a(()=>i(t))},h),s=t=>{let s=t.data;if(s?.type!==`preview-vfs-response`||s.id!==n)return;if(clearTimeout(o),typeof s.error==`string`){let e=Error(s.error);s.error.includes(`ENOENT`)&&(e[_]=!0),a(()=>i(e));return}let c=s.content;if(c instanceof Uint8Array){a(()=>r(c));return}if(typeof c==`string`){a(()=>r(new TextEncoder().encode(c)));return}a(()=>i(Error(`Unexpected empty preview-vfs response for ${e}`)))};t.addEventListener(`message`,s),t.postMessage({type:`preview-vfs-read`,id:n,path:e,asText:!1})})}function y(e){return!!e?.[_]}function b(e){let t=new ArrayBuffer(e.byteLength),n=new Uint8Array(t);return n.set(e),n}function x(e,t){return!t||!e.startsWith(t)?null:`${l}${e.slice(t.length).split(`?`)[0].split(`#`)[0]}`}async function S(e,t){let n;try{n=await v(e)}catch(t){if(y(t))return new Response(`Not found: ${e}`,{status:404,headers:{"Content-Type":`text/plain`}});throw t}let i=r(e);return(t?.headers?new Headers(t.headers).get(`range`):null)===`bytes=0-0`?new Response(null,{status:206,headers:{"Content-Type":i,"Content-Length":String(n.byteLength),"Content-Range":`bytes 0-0/${n.byteLength}`}}):new Response(b(n),{status:200,headers:{"Content-Type":i,"Content-Length":String(n.byteLength)}})}var C=null;async function w(){if(typeof URL>`u`||typeof URL.createObjectURL!=`function`)throw Error(`onnxruntime-web blob URLs require URL.createObjectURL (browser realm only)`);let e={};if(await Promise.all(g.map(async t=>{try{let n=await v(`${c}${t}`),i=new Blob([b(n)],{type:r(t)});e[t]=URL.createObjectURL(i)}catch(e){if(!y(e))throw e}})),Object.keys(e).length===0)throw Error("onnxruntime-web is not installed — run `ipk add onnxruntime-web` to stage the wasm runtime in /workspace/node_modules/.");return e}function T(){return C||=w(),C}function E(e){let t=e.backends?.onnx?.wasm;if(t&&(t.wasmPaths=n(c)),e.allowRemoteModels=!1,e.allowLocalModels=!0,e.localModelPath=n(l),s())return;e.allowRemoteModels=!0,e.remoteHost=e.localModelPath,e.remotePathTemplate=`{model}/`,t&&T().then(e=>{t.wasmPaths=e},()=>{});let r=e.fetch;if(r?.[o])return;let i=r,a=e.localModelPath,f=async(e,t)=>{let n=x(u(e),a);return n===null?!d(e)||p(e)?i?i(e,t):fetch(e,t):m(e,t):S(n,t)};f[o]=!0,e.fetch=f}async function D(e){let t=`weights for ${e} are missing — run \`hf download ${e}\` to fetch them into /workspace/models/.`;try{await v(`${l}${e}/config.json`)}catch(e){if(y(e))throw Error(t);let n=e instanceof Error?e.message:String(e);throw Error(`${t} (probe failed: ${n})`)}}export{a as i,E as n,T as r,D as t};
@@ -1 +1 @@
1
- import{o as e,t}from"./proxied-fetch-I4cndszg.js";import{f as n,p as r}from"./kernel-worker--emmdYcK.js";function i(e=()=>Date.now()){let t=new Map,n=null,r=0,i=()=>{let e=0,n=0;for(let r of t.values())e+=r.loaded,n+=r.total;return{loaded:e,total:n}};return{update(a,o,s){t.set(a,{loaded:Math.max(0,o),total:Math.max(t.get(a)?.total??0,s,o)}),n===null&&(n=e(),r=i().loaded)},complete(e){let n=t.get(e);n&&(n.loaded=n.total)},snapshot(){let{loaded:t,total:a}=i(),o=null;if(n!==null&&a>0&&t<a){let i=e()-n,s=t-r;if(i>=1e3&&s>0){let e=s/i;o=(a-t)/e/1e3}}return a>0&&t>=a&&(o=0),{loaded:t,total:a,etaSeconds:o}}}}const a=Symbol.for(`slicc.transformers-env.fetch-wrapped`),o=()=>typeof chrome<`u`&&!!chrome?.runtime?.id,s=`/workspace/node_modules/onnxruntime-web/dist/`,c=`/workspace/models/`;function l(e){return typeof e==`string`?e:e instanceof URL?e.toString():e.url}function u(e){let t=l(e);return t.startsWith(`http://`)||t.startsWith(`https://`)}function d(){return globalThis.location?.origin??null}function f(e){let t=d();if(!t)return!1;try{return new URL(l(e)).origin===t}catch{return!1}}async function p(n,r){let i=l(n),a={};r?.headers&&new Headers(r.headers).forEach((e,t)=>{a[t]=e});let o=t({...a,"X-Target-URL":i}),s=(r?.method??`GET`).toUpperCase(),c={method:s,headers:o,cache:`no-store`};return r?.body&&s!==`GET`&&s!==`HEAD`&&(c.body=r.body),fetch(e(`/api/fetch-proxy`),c)}const m=[`ort-wasm-simd-threaded.jsep.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort-wasm-simd-threaded.jsep.wasm`,`ort-wasm-simd-threaded.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort.wasm`,`ort-wasm-simd-threaded.asyncify.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort-wasm-simd-threaded.asyncify.wasm`],h=Symbol.for(`slicc.transformers-env.vfs-enoent`);function g(e){if(typeof BroadcastChannel>`u`)return Promise.reject(Error(`Cannot read VFS path ${e}: BroadcastChannel unavailable in this realm`));let t=new BroadcastChannel(`preview-vfs`),n=`tfx-${Date.now()}-${Math.random().toString(36).slice(2)}`;return new Promise((r,i)=>{let a=e=>{t.removeEventListener(`message`,s),t.close(),e()},o=setTimeout(()=>{let t=Error(`ENOENT: ${e} (preview-vfs responder timed out)`);t[h]=!0,a(()=>i(t))},3e4),s=t=>{let s=t.data;if(s?.type!==`preview-vfs-response`||s.id!==n)return;if(clearTimeout(o),typeof s.error==`string`){let e=Error(s.error);s.error.includes(`ENOENT`)&&(e[h]=!0),a(()=>i(e));return}let c=s.content;if(c instanceof Uint8Array){a(()=>r(c));return}if(typeof c==`string`){a(()=>r(new TextEncoder().encode(c)));return}a(()=>i(Error(`Unexpected empty preview-vfs response for ${e}`)))};t.addEventListener(`message`,s),t.postMessage({type:`preview-vfs-read`,id:n,path:e,asText:!1})})}function _(e){return!!e?.[h]}function v(e){let t=new ArrayBuffer(e.byteLength),n=new Uint8Array(t);return n.set(e),n}function y(e,t){return!t||!e.startsWith(t)?null:`${c}${e.slice(t.length).split(`?`)[0].split(`#`)[0]}`}async function b(e,t){let r;try{r=await g(e)}catch(t){if(_(t))return new Response(`Not found: ${e}`,{status:404,headers:{"Content-Type":`text/plain`}});throw t}let i=n(e);return(t?.headers?new Headers(t.headers).get(`range`):null)===`bytes=0-0`?new Response(null,{status:206,headers:{"Content-Type":i,"Content-Length":String(r.byteLength),"Content-Range":`bytes 0-0/${r.byteLength}`}}):new Response(v(r),{status:200,headers:{"Content-Type":i,"Content-Length":String(r.byteLength)}})}let x=null;async function S(){if(typeof URL>`u`||typeof URL.createObjectURL!=`function`)throw Error(`onnxruntime-web blob URLs require URL.createObjectURL (browser realm only)`);let e={};if(await Promise.all(m.map(async t=>{try{let r=await g(`${s}${t}`),i=new Blob([v(r)],{type:n(t)});e[t]=URL.createObjectURL(i)}catch(e){if(!_(e))throw e}})),Object.keys(e).length===0)throw Error("onnxruntime-web is not installed — run `ipk add onnxruntime-web` to stage the wasm runtime in /workspace/node_modules/.");return e}function C(){return x||=S(),x}function w(e){let t=e.backends?.onnx?.wasm;if(t&&(t.wasmPaths=r(s)),e.allowRemoteModels=!1,e.allowLocalModels=!0,e.localModelPath=r(c),o())return;e.allowRemoteModels=!0,e.remoteHost=e.localModelPath,e.remotePathTemplate=`{model}/`,t&&C().then(e=>{t.wasmPaths=e},()=>{});let n=e.fetch;if(n?.[a])return;let i=n,d=e.localModelPath,m=async(e,t)=>{let n=y(l(e),d);return n===null?!u(e)||f(e)?i?i(e,t):fetch(e,t):p(e,t):b(n,t)};m[a]=!0,e.fetch=m}async function T(e){let t=`weights for ${e} are missing — run \`hf download ${e}\` to fetch them into /workspace/models/.`;try{await g(`${c}${e}/config.json`)}catch(e){if(_(e))throw Error(t);let n=e instanceof Error?e.message:String(e);throw Error(`${t} (probe failed: ${n})`)}}export{C as a,w as i,m as n,i as o,T as r,s as t};
1
+ import{o as e,t}from"./proxied-fetch-R_Zw2ZFI.js";import{f as n,p as r}from"./kernel-worker-BuLAKxNE.js";function i(e=()=>Date.now()){let t=new Map,n=null,r=0,i=()=>{let e=0,n=0;for(let r of t.values())e+=r.loaded,n+=r.total;return{loaded:e,total:n}};return{update(a,o,s){t.set(a,{loaded:Math.max(0,o),total:Math.max(t.get(a)?.total??0,s,o)}),n===null&&(n=e(),r=i().loaded)},complete(e){let n=t.get(e);n&&(n.loaded=n.total)},snapshot(){let{loaded:t,total:a}=i(),o=null;if(n!==null&&a>0&&t<a){let i=e()-n,s=t-r;if(i>=1e3&&s>0){let e=s/i;o=(a-t)/e/1e3}}return a>0&&t>=a&&(o=0),{loaded:t,total:a,etaSeconds:o}}}}const a=Symbol.for(`slicc.transformers-env.fetch-wrapped`),o=()=>typeof chrome<`u`&&!!chrome?.runtime?.id,s=`/workspace/node_modules/onnxruntime-web/dist/`,c=`/workspace/models/`;function l(e){return typeof e==`string`?e:e instanceof URL?e.toString():e.url}function u(e){let t=l(e);return t.startsWith(`http://`)||t.startsWith(`https://`)}function d(){return globalThis.location?.origin??null}function f(e){let t=d();if(!t)return!1;try{return new URL(l(e)).origin===t}catch{return!1}}async function p(n,r){let i=l(n),a={};r?.headers&&new Headers(r.headers).forEach((e,t)=>{a[t]=e});let o=t({...a,"X-Target-URL":i}),s=(r?.method??`GET`).toUpperCase(),c={method:s,headers:o,cache:`no-store`};return r?.body&&s!==`GET`&&s!==`HEAD`&&(c.body=r.body),fetch(e(`/api/fetch-proxy`),c)}const m=[`ort-wasm-simd-threaded.jsep.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort-wasm-simd-threaded.jsep.wasm`,`ort-wasm-simd-threaded.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort.wasm`,`ort-wasm-simd-threaded.asyncify.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort-wasm-simd-threaded.asyncify.wasm`],h=Symbol.for(`slicc.transformers-env.vfs-enoent`);function g(e){if(typeof BroadcastChannel>`u`)return Promise.reject(Error(`Cannot read VFS path ${e}: BroadcastChannel unavailable in this realm`));let t=new BroadcastChannel(`preview-vfs`),n=`tfx-${Date.now()}-${Math.random().toString(36).slice(2)}`;return new Promise((r,i)=>{let a=e=>{t.removeEventListener(`message`,s),t.close(),e()},o=setTimeout(()=>{let t=Error(`ENOENT: ${e} (preview-vfs responder timed out)`);t[h]=!0,a(()=>i(t))},3e4),s=t=>{let s=t.data;if(s?.type!==`preview-vfs-response`||s.id!==n)return;if(clearTimeout(o),typeof s.error==`string`){let e=Error(s.error);s.error.includes(`ENOENT`)&&(e[h]=!0),a(()=>i(e));return}let c=s.content;if(c instanceof Uint8Array){a(()=>r(c));return}if(typeof c==`string`){a(()=>r(new TextEncoder().encode(c)));return}a(()=>i(Error(`Unexpected empty preview-vfs response for ${e}`)))};t.addEventListener(`message`,s),t.postMessage({type:`preview-vfs-read`,id:n,path:e,asText:!1})})}function _(e){return!!e?.[h]}function v(e){let t=new ArrayBuffer(e.byteLength),n=new Uint8Array(t);return n.set(e),n}function y(e,t){return!t||!e.startsWith(t)?null:`${c}${e.slice(t.length).split(`?`)[0].split(`#`)[0]}`}async function b(e,t){let r;try{r=await g(e)}catch(t){if(_(t))return new Response(`Not found: ${e}`,{status:404,headers:{"Content-Type":`text/plain`}});throw t}let i=n(e);return(t?.headers?new Headers(t.headers).get(`range`):null)===`bytes=0-0`?new Response(null,{status:206,headers:{"Content-Type":i,"Content-Length":String(r.byteLength),"Content-Range":`bytes 0-0/${r.byteLength}`}}):new Response(v(r),{status:200,headers:{"Content-Type":i,"Content-Length":String(r.byteLength)}})}let x=null;async function S(){if(typeof URL>`u`||typeof URL.createObjectURL!=`function`)throw Error(`onnxruntime-web blob URLs require URL.createObjectURL (browser realm only)`);let e={};if(await Promise.all(m.map(async t=>{try{let r=await g(`${s}${t}`),i=new Blob([v(r)],{type:n(t)});e[t]=URL.createObjectURL(i)}catch(e){if(!_(e))throw e}})),Object.keys(e).length===0)throw Error("onnxruntime-web is not installed — run `ipk add onnxruntime-web` to stage the wasm runtime in /workspace/node_modules/.");return e}function C(){return x||=S(),x}function w(e){let t=e.backends?.onnx?.wasm;if(t&&(t.wasmPaths=r(s)),e.allowRemoteModels=!1,e.allowLocalModels=!0,e.localModelPath=r(c),o())return;e.allowRemoteModels=!0,e.remoteHost=e.localModelPath,e.remotePathTemplate=`{model}/`,t&&C().then(e=>{t.wasmPaths=e},()=>{});let n=e.fetch;if(n?.[a])return;let i=n,d=e.localModelPath,m=async(e,t)=>{let n=y(l(e),d);return n===null?!u(e)||f(e)?i?i(e,t):fetch(e,t):p(e,t):b(n,t)};m[a]=!0,e.fetch=m}async function T(e){let t=`weights for ${e} are missing — run \`hf download ${e}\` to fetch them into /workspace/models/.`;try{await g(`${c}${e}/config.json`)}catch(e){if(_(e))throw Error(t);let n=e instanceof Error?e.message:String(e);throw Error(`${t} (probe failed: ${n})`)}}export{C as a,w as i,m as n,i as o,T as r,s as t};
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./chunk-aKtaBQYM.js";var n=e({InferenceSession:()=>Oe,TRACE:()=>ye,TRACE_EVENT_BEGIN:()=>Ce,TRACE_EVENT_END:()=>we,TRACE_FUNC_BEGIN:()=>xe,TRACE_FUNC_END:()=>Se,Tensor:()=>_e,default:()=>ir,env:()=>w,registerBackend:()=>m}),r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,s=(e=>typeof t<`u`?t:typeof Proxy<`u`?new Proxy(e,{get:(e,n)=>(typeof t<`u`?t:e)[n]}):e)(function(e){
1
+ import{n as e,r as t}from"./rolldown-runtime-aKtaBQYM.js";var n=e({InferenceSession:()=>Oe,TRACE:()=>ye,TRACE_EVENT_BEGIN:()=>Ce,TRACE_EVENT_END:()=>we,TRACE_FUNC_BEGIN:()=>xe,TRACE_FUNC_END:()=>Se,Tensor:()=>_e,default:()=>ir,env:()=>w,registerBackend:()=>m}),r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,s=(e=>typeof t<`u`?t:typeof Proxy<`u`?new Proxy(e,{get:(e,n)=>(typeof t<`u`?t:e)[n]}):e)(function(e){
2
2
  /*!
3
3
  * ONNX Runtime Web v1.26.0-dev.20260416-b7804b056c
4
4
  * Copyright (c) Microsoft Corporation. All rights reserved.