sliccy 6.29.0 → 6.30.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 (338) hide show
  1. package/dist/ui/assets/__vite-browser-external-5eBdwsFd.js +1 -0
  2. package/dist/ui/assets/__vite-browser-external-CjLuCwpB.js +1 -0
  3. package/dist/ui/assets/account-store-83ArXgcG.js +42 -0
  4. package/dist/ui/assets/{account-store-DSnxgLNJ.js → account-store-kT7dgbK1.js} +29 -30
  5. package/dist/ui/assets/{adobe-aVpBhLYj.js → adobe-DNQ-ZwRM.js} +1 -1
  6. package/dist/ui/assets/{adobe-B4F29JMY.js → adobe-zuiYZmoY.js} +2 -2
  7. package/dist/ui/assets/{agent-message-to-chat-ri8Fr4Sv.js → agent-message-to-chat-BiQK7aJN.js} +1 -1
  8. package/dist/ui/assets/{anthropic-messages-BqlIV27l.js → anthropic-messages-CwKCE8PD.js} +5 -5
  9. package/dist/ui/assets/{anthropic-messages-BbI5c8JA.js → anthropic-messages-DPd961JX.js} +5 -5
  10. package/dist/ui/assets/{apply-layout-CL9CFQ5a.js → apply-layout-C2kPr85z.js} +1 -1
  11. package/dist/ui/assets/{apps-BNY-jyyh.js → apps-9Wc94FyY.js} +1 -1
  12. package/dist/ui/assets/{azure-openai-CuHIvNwE.js → azure-openai-B_GFx6XQ.js} +1 -1
  13. package/dist/ui/assets/{azure-openai-TFQRhgO4.js → azure-openai-BgLRuXUh.js} +1 -1
  14. package/dist/ui/assets/{azure-openai-responses-DOqakjfa.js → azure-openai-responses-CtOKUN00.js} +1 -1
  15. package/dist/ui/assets/{azure-openai-responses-C1EEdmtw.js → azure-openai-responses-oRGXQA3K.js} +1 -1
  16. package/dist/ui/assets/backend-local-Btkv66jT.js +1 -0
  17. package/dist/ui/assets/{bedrock-camp-CVX95quY.js → bedrock-camp-BDCjQMZx.js} +1 -1
  18. package/dist/ui/assets/{bedrock-camp-CHi38ceE.js → bedrock-camp-CFmElpzZ.js} +1 -1
  19. package/dist/ui/assets/{bridge-launch-params-BUV5qlt9.js → bridge-launch-params-B8x2eq4a.js} +1 -1
  20. package/dist/ui/assets/browser-BCEjSsoK.js +507 -0
  21. package/dist/ui/assets/{bsh-watchdog-BTqRxbnH.js → bsh-watchdog-BWoQ4vxy.js} +1 -1
  22. package/dist/ui/assets/{cdp-Cq-O2ziO.js → cdp-CUhn-e9o.js} +2 -2
  23. package/dist/ui/assets/{cerebras-BElG8qkN.js → cerebras-ClJjxDeF.js} +1 -1
  24. package/dist/ui/assets/{cerebras-CD6QquBf.js → cerebras-Dfkzn36I.js} +1 -1
  25. package/dist/ui/assets/{chat-session-store-DQztDoVa.js → chat-session-store-pWb1-jNp.js} +1 -1
  26. package/dist/ui/assets/{client-CAAAFAry.js → client-6mRSLafV.js} +2 -2
  27. package/dist/ui/assets/{clipboard-Bd1Wp2vH.js → clipboard-CknViQHB.js} +1 -1
  28. package/dist/ui/assets/{clipboard-DuHpK59o.js → clipboard-eqmn97SP.js} +1 -1
  29. package/dist/ui/assets/cloud--vyq2RIF.js +1 -0
  30. package/dist/ui/assets/{compat-BhgG-Qr-.js → compat-Bn8HnC3L.js} +2 -2
  31. package/dist/ui/assets/completionchunk-CVTjxyMe.js +65 -0
  32. package/dist/ui/assets/completionchunk-CksvMkXE.js +65 -0
  33. package/dist/ui/assets/{composer-speech-RdAxri_8.js → composer-speech-Dra2KNlH.js} +1 -1
  34. package/dist/ui/assets/{connect-surface-DKvZ8P01.js → connect-surface-KToYOy7V.js} +1 -1
  35. package/dist/ui/assets/{context-compaction-gzCxn8vG.js → context-compaction-DDaM9TWa.js} +1 -1
  36. package/dist/ui/assets/{cost-command-_BMgmnMI.js → cost-command-C9faxPNJ.js} +89 -89
  37. package/dist/ui/assets/{db-ysOO0kLr.js → db-C7OEVMWU.js} +1 -1
  38. package/dist/ui/assets/{dictation-priming-DGpw1lUV.js → dictation-priming-CNllGgNq.js} +1 -1
  39. package/dist/ui/assets/{dip-ByAv1QK8.js → dip-rdFXauwM.js} +3 -3
  40. package/dist/ui/assets/{discovery-preference-iXjdZZE6.js → discovery-preference-yvSQLIqD.js} +1 -1
  41. package/dist/ui/assets/{dist-d2CXjMIs.js → dist-5RJPBUGc.js} +3 -3
  42. package/dist/ui/assets/dist-B6I69VMa.js +12 -0
  43. package/dist/ui/assets/{dist-DB-MlM2G.js → dist-BoNLlUTL.js} +1 -1
  44. package/dist/ui/assets/{dist-Cc2eS9kS.js → dist-CZvQ4trc.js} +1 -1
  45. package/dist/ui/assets/dist-CxSRk4im.js +12 -0
  46. package/dist/ui/assets/dist-DMHgMRaU.js +23 -0
  47. package/dist/ui/assets/dist-DZD_Ug0d.js +18 -0
  48. package/dist/ui/assets/dist-DdMcRgpc.js +1 -0
  49. package/dist/ui/assets/dist-DeB2d2N0.js +2 -0
  50. package/dist/ui/assets/dist-DwW10w3V.js +2 -0
  51. package/dist/ui/assets/{ensure-speech-assets-DNIhbHym.js → ensure-speech-assets-B1XhikvN.js} +1 -1
  52. package/dist/ui/assets/es-D8T2ybXa.js +53 -0
  53. package/dist/ui/assets/{esbuild-wasm-CUz5LFrh.js → esbuild-wasm-CpCoMVKF.js} +3 -3
  54. package/dist/ui/assets/{esp32-D9ZurRwV.js → esp32-CoFXh-8H.js} +1 -1
  55. package/dist/ui/assets/{esp32c2-F0yCL7ES.js → esp32c2-UqsEoF9x.js} +1 -1
  56. package/dist/ui/assets/{esp32c3-wVAODszM.js → esp32c3-mMBDP9Jj.js} +1 -1
  57. package/dist/ui/assets/{esp32c5-ChTI-uFN.js → esp32c5-Bab14vpV.js} +1 -1
  58. package/dist/ui/assets/{esp32c6-IwoGEmKl.js → esp32c6-CCFSaC3T.js} +1 -1
  59. package/dist/ui/assets/{esp32c61-BJScMw70.js → esp32c61-Cy6rcWHq.js} +1 -1
  60. package/dist/ui/assets/{esp32h2-YosZEx9u.js → esp32h2-Cru1Ipjy.js} +1 -1
  61. package/dist/ui/assets/{esp32p4-BSe822vW.js → esp32p4-BGRZ91N9.js} +1 -1
  62. package/dist/ui/assets/{esp32s2-Dhlhu16A.js → esp32s2-7_BqiXe-.js} +1 -1
  63. package/dist/ui/assets/{esp32s3-PqxbnxPZ.js → esp32s3-C4XCo2Gh.js} +1 -1
  64. package/dist/ui/assets/{esp8266-CkAPDkuz.js → esp8266-BN3fFVWu.js} +1 -1
  65. package/dist/ui/assets/esptool-operations-3FBbK-fD.js +13 -0
  66. package/dist/ui/assets/esptool-operations-CDJhOTdU.js +12 -0
  67. package/dist/ui/assets/export-provider-BEHTjSYw.js +1 -0
  68. package/dist/ui/assets/{export-spool-Crzaptz9.js → export-spool-D9AiwWeo.js} +1 -1
  69. package/dist/ui/assets/{extension-bridge-transport-CR4Zp6Gm.js → extension-bridge-transport-D3PItLFo.js} +1 -1
  70. package/dist/ui/assets/{follower-navigate-watcher-DiTsLLuL.js → follower-navigate-watcher-DZpXL_9_.js} +1 -1
  71. package/dist/ui/assets/{frozen-archive-format-CqpMlNNW.js → frozen-archive-format--7sONywg.js} +1 -1
  72. package/dist/ui/assets/fs-DFJ4DSye.js +2 -0
  73. package/dist/ui/assets/fs-DxtSbYUW.js +1 -0
  74. package/dist/ui/assets/{git-config-Lj0BT7Oc.js → git-config-DA8M5e8O.js} +1 -1
  75. package/dist/ui/assets/{github-BJpGp9-C.js → github-BBloGIFx.js} +1 -1
  76. package/dist/ui/assets/{github-DC0sZ4bk.js → github-C_GVZ6np.js} +2 -2
  77. package/dist/ui/assets/github-copilot-BNWLcrkC.js +2 -0
  78. package/dist/ui/assets/github-copilot-D32KFpVZ.js +1 -0
  79. package/dist/ui/assets/global-db-DJXlpNui.js +1 -0
  80. package/dist/ui/assets/{google-generative-ai-BjzUffX7.js → google-generative-ai-BL_SqY5W.js} +1 -1
  81. package/dist/ui/assets/{google-generative-ai-CUyKfom8.js → google-generative-ai-DDF2tpZq.js} +1 -1
  82. package/dist/ui/assets/google-shared-DPuPo5mO.js +11 -0
  83. package/dist/ui/assets/{google-shared-Bvf-cbUv.js → google-shared-biiFuSpC.js} +11 -11
  84. package/dist/ui/assets/{google-vertex-Dc8m8x5E.js → google-vertex-CobhNXpX.js} +1 -1
  85. package/dist/ui/assets/{google-vertex-Bf_2YfBL.js → google-vertex-VXUUgM7o.js} +1 -1
  86. package/dist/ui/assets/{handoff-link-Da4o0fy_.js → handoff-link-BM4ctkE8.js} +1 -1
  87. package/dist/ui/assets/{hear-DvsWQaq8.js → hear-D4UPc-6X.js} +1 -1
  88. package/dist/ui/assets/{hear-Sb2Ceuh0.js → hear-RuX7zwTc.js} +1 -1
  89. package/dist/ui/assets/{hid-device-registry-DboUgvzI.js → hid-device-registry-B2R-0rNt.js} +1 -1
  90. package/dist/ui/assets/{icons-CXqRAmcw.js → icons-DtQGhvkp.js} +1 -1
  91. package/dist/ui/assets/installer-gqTicFFT.js +3 -0
  92. package/dist/ui/assets/{intercepted-oauth-CaCw-rJ5.js → intercepted-oauth-BIKnTjZm.js} +1 -1
  93. package/dist/ui/assets/js-realm-worker-BxtK9KWr.js +48 -0
  94. package/dist/ui/assets/{json-parse-rb7sUwcH.js → json-parse-CgFfIg4Q.js} +1 -1
  95. package/dist/ui/assets/{json-parse-CpLf0aqK.js → json-parse-ClXMvBdK.js} +1 -1
  96. package/dist/ui/assets/{kernel-worker-Dt7EHlGw.js → kernel-worker-j7zGoPh1.js} +333 -333
  97. package/dist/ui/assets/{kokoro-D3TYeL2z.js → kokoro-Bs5vU5OU.js} +2 -2
  98. package/dist/ui/assets/{kokoro-CGDCwNNA.js → kokoro-CZ21zrzj.js} +2 -2
  99. package/dist/ui/assets/kokoro-engine-tWznaclV.js +2 -0
  100. package/dist/ui/assets/{layout-schema-UznNUt3s.js → layout-schema-m9_VAwOw.js} +1 -1
  101. package/dist/ui/assets/{legacy-api-aliases-MR6kosFL.js → legacy-api-aliases-BVP0Ho8x.js} +1 -1
  102. package/dist/ui/assets/{legacy-api-aliases-DrEKVikN.js → legacy-api-aliases-DAkrHYf9.js} +1 -1
  103. package/dist/ui/assets/lick-manager-GJgyahla.js +2 -0
  104. package/dist/ui/assets/{lick-manager-proxy-DCbHSHHW.js → lick-manager-proxy-Bhx3Yzp_.js} +1 -1
  105. package/dist/ui/assets/{lick-ws-bridge-B21s2Gwz.js → lick-ws-bridge-BBdRwJ-f.js} +1 -1
  106. package/dist/ui/assets/{lick-ws-bridge-CCkYp7oZ.js → lick-ws-bridge-D_e6wRPA.js} +1 -1
  107. package/dist/ui/assets/{local-llm-BMxjY1yj.js → local-llm-94vIZ8EZ.js} +1 -1
  108. package/dist/ui/assets/{local-llm-B5AVGYUF.js → local-llm-BjVTQ79x.js} +1 -1
  109. package/dist/ui/assets/magick-wasm-7Gy4Vlf5.js +43 -0
  110. package/dist/ui/assets/{main-BSRWdc5y.js → main-BnxdqsG0.js} +3 -3
  111. package/dist/ui/assets/{main-cherry-cNBZXAMR.js → main-cherry-B3C0ufyv.js} +1 -1
  112. package/dist/ui/assets/mistral-conversations-Cyp2kssI.js +7 -0
  113. package/dist/ui/assets/mistral-conversations-gFwkX5N9.js +8 -0
  114. package/dist/ui/assets/models-DgdVqaw5.js +1 -0
  115. package/dist/ui/assets/{modulepreload-polyfill-Dezn_h7o.js → modulepreload-polyfill-P2Xu9kJm.js} +1 -1
  116. package/dist/ui/assets/{mount-CtYCS7Kp.js → mount-C3IXcaX8.js} +1 -1
  117. package/dist/ui/assets/mount-DrM3EVg_.js +2 -0
  118. package/dist/ui/assets/{mount-bridge-client-CKo6gJ0u.js → mount-bridge-client-DkyfUm3y.js} +1 -1
  119. package/dist/ui/assets/{mount-picker-popup-Bs1o43Z5.js → mount-picker-popup-CSSC05JS.js} +1 -1
  120. package/dist/ui/assets/{mount-recovery-CVPqfGPu.js → mount-recovery-Clm4-rrM.js} +1 -1
  121. package/dist/ui/assets/{mount-table-store-CTrzlrNn.js → mount-table-store-DrF_Ifaz.js} +1 -1
  122. package/dist/ui/assets/{mount-table-store-CfQUN_2R.js → mount-table-store-dY2IfQ5S.js} +1 -1
  123. package/dist/ui/assets/{navigation-watcher-murqPsVd.js → navigation-watcher-CcKsLKw9.js} +1 -1
  124. package/dist/ui/assets/{new-session-BRFuxbD1.js → new-session-ijH03Ean.js} +2 -2
  125. package/dist/ui/assets/{oauth-bootstrap-DIOIJH9f.js → oauth-bootstrap-bjPfgAcZ.js} +2 -2
  126. package/dist/ui/assets/oauth-service-CZJntwco.js +1 -0
  127. package/dist/ui/assets/{oauth-service-D0NOHMOb.js → oauth-service-CeFviz7O.js} +1 -1
  128. package/dist/ui/assets/{onboarding-orchestrator-cZ36aqC6.js → onboarding-orchestrator-CfHysx6n.js} +1 -1
  129. package/dist/ui/assets/{openai-BxFF4GUL.js → openai-DQxsE__c.js} +2 -2
  130. package/dist/ui/assets/{openai-CmTnPr9N.js → openai-DehfWK3N.js} +2 -2
  131. package/dist/ui/assets/{openai-codex-D4ja7gqs.js → openai-codex-Cm4CJsUN.js} +1 -1
  132. package/dist/ui/assets/{openai-codex-CI5IjhwE.js → openai-codex-Cxt9UfIy.js} +1 -1
  133. package/dist/ui/assets/{openai-codex-responses-CLGX-aTS.js → openai-codex-responses-BJOy6BEd.js} +2 -2
  134. package/dist/ui/assets/{openai-codex-responses-BdgEOEuS.js → openai-codex-responses-BfT5s3yO.js} +1 -1
  135. package/dist/ui/assets/{openai-completions-BnbrI3UF.js → openai-completions-CmslRX3-.js} +2 -2
  136. package/dist/ui/assets/{openai-completions-DgBXkZQB.js → openai-completions-DDas47cy.js} +2 -2
  137. package/dist/ui/assets/{openai-responses-ltU_A4Wo.js → openai-responses-CHXkcom_.js} +1 -1
  138. package/dist/ui/assets/{openai-responses-BCmB_39F.js → openai-responses-DWlnQ-B0.js} +1 -1
  139. package/dist/ui/assets/{openai-responses-shared-BhTvPbKN.js → openai-responses-shared-DajOm-sC.js} +1 -1
  140. package/dist/ui/assets/{openai-responses-shared-ULQmXcCD.js → openai-responses-shared-uSSusU2w.js} +1 -1
  141. package/dist/ui/assets/{openrouter-pYhQBFuU.js → openrouter-D6y7V9p0.js} +1 -1
  142. package/dist/ui/assets/{openrouter-images-HP0r87fI.js → openrouter-images-7cFnqg4_.js} +1 -1
  143. package/dist/ui/assets/{openrouter-images-1178rM_U.js → openrouter-images-eEy7Fej8.js} +1 -1
  144. package/dist/ui/assets/{openrouter-oauth-BfOn7a34.js → openrouter-oauth-DY8uKhfy.js} +1 -1
  145. package/dist/ui/assets/{openrouter-oauth-Cfl_HRtC.js → openrouter-oauth-y_6J1_DN.js} +1 -1
  146. package/dist/ui/assets/{openrouter-5QNOix7C.js → openrouter-rQ2VoktS.js} +1 -1
  147. package/dist/ui/assets/{otel-BJT2f71U.js → otel-BVv11zKU.js} +1 -1
  148. package/dist/ui/assets/{otel-DHVJhmnv.js → otel-BZA5WuO2.js} +1 -1
  149. package/dist/ui/assets/{panel-rpc-DmJSNs0I.js → panel-rpc-B3MSVImO.js} +1 -1
  150. package/dist/ui/assets/{panel-rpc-CjFVE0nK.js → panel-rpc-BPwAqRch.js} +1 -1
  151. package/dist/ui/assets/{panel-rpc-handlers-CigsG2O9.js → panel-rpc-handlers-PM8PHRH-.js} +2 -2
  152. package/dist/ui/assets/{panelize-shell-irQskG_h.js → panelize-shell-CgDNoGLr.js} +2 -2
  153. package/dist/ui/assets/{path-utils-DU6QhF_k.js → path-utils-Rm3AltuN.js} +1 -1
  154. package/dist/ui/assets/{pdfjs-B1saeD0h.js → pdfjs-CRuE4vGw.js} +6 -6
  155. package/dist/ui/assets/{pi-messages-CrwvmK0e.js → pi-messages-BBQ5JcSR.js} +1 -1
  156. package/dist/ui/assets/{pi-messages-BcCsdrH5.js → pi-messages-t5nvJxiW.js} +1 -1
  157. package/dist/ui/assets/{port-bridge-client-DXYvHFiB.js → port-bridge-client-74e4m7Ur.js} +1 -1
  158. package/dist/ui/assets/{port-bridge-client-B64OCgRQ.js → port-bridge-client-Bg6_jjLD.js} +2 -2
  159. package/dist/ui/assets/process-manager-unCzdHp3.js +1 -0
  160. package/dist/ui/assets/{provider-CkMg-hGa.js → provider-B8Mkh-VX.js} +2 -2
  161. package/dist/ui/assets/provider-CA0u-FlI.js +1 -0
  162. package/dist/ui/assets/{provider-env-D37PhSJu.js → provider-env-CILujRmO.js} +1 -1
  163. package/dist/ui/assets/{provider-env-DwY8YuMk.js → provider-env-CTOcDKrQ.js} +1 -1
  164. package/dist/ui/assets/provider-settings-CY15hvGv.js +2 -0
  165. package/dist/ui/assets/{provider-settings-BgRoRncG.js → provider-settings-x1DCmyHF.js} +1 -1
  166. package/dist/ui/assets/{provider-store-access-BnjM-WlQ.js → provider-store-access-BWbARrZ_.js} +2 -2
  167. package/dist/ui/assets/provider-store-access-Bwt56dfX.js +1 -0
  168. package/dist/ui/assets/providers-B98ueIFT.js +2 -0
  169. package/dist/ui/assets/{providers-Cq_dXOsh.js → providers-C0_DGG8n.js} +1 -1
  170. package/dist/ui/assets/{proxied-fetch-GabK83LB.js → proxied-fetch-CSNzus3d.js} +1 -1
  171. package/dist/ui/assets/proxied-fetch-ULPrH97b.js +2 -0
  172. package/dist/ui/assets/py-realm-worker-2nn9AS1F.js +244 -0
  173. package/dist/ui/assets/pyodide-BlzOFu7J.js +3 -0
  174. package/dist/ui/assets/pyodide-X83yixXc.js +3 -0
  175. package/dist/ui/assets/{quick-llm-BizzQ33P.js → quick-llm-AzvUPDDm.js} +1 -1
  176. package/dist/ui/assets/readline-BOCWRKSR.js +26 -0
  177. package/dist/ui/assets/{redirect-uri-wvtO7KeZ.js → redirect-uri-BPox4xEV.js} +1 -1
  178. package/dist/ui/assets/{remote-cache-D59F5FOx.js → remote-cache-JAv9sQH_.js} +1 -1
  179. package/dist/ui/assets/{remote-cdp-transport-CCzSSZwF.js → remote-cdp-transport-CgOXLjZ8.js} +1 -1
  180. package/dist/ui/assets/{remote-terminal-view-SZ2_MbCZ.js → remote-terminal-view-DqYuVTcF.js} +2 -2
  181. package/dist/ui/assets/{remote-vfs-client-Z2qM01yP.js → remote-vfs-client-5faRBsEi.js} +1 -1
  182. package/dist/ui/assets/rolldown-runtime-Dd_uD5pT.js +1 -0
  183. package/dist/ui/assets/runtime-mode-BgSVO5sw.js +1 -0
  184. package/dist/ui/assets/{runtime-mode-jkSDrVfl.js → runtime-mode-OGvKsBi_.js} +1 -1
  185. package/dist/ui/assets/{safe-buffer-C0pSmFaz.js → safe-buffer-B2wnAhUx.js} +2 -2
  186. package/dist/ui/assets/{script-catalog-BYXhqRAc.js → script-catalog-e0GUPxAf.js} +1 -1
  187. package/dist/ui/assets/{secret-env-Cd-AGGPM.js → secret-env-IgYMwYRy.js} +1 -1
  188. package/dist/ui/assets/{secret-topology-CKyE_tTD.js → secret-topology-DCQNOMWj.js} +1 -1
  189. package/dist/ui/assets/{secrets-bridge-client-CUeSRcdV.js → secrets-bridge-client-BZMh3a0J.js} +1 -1
  190. package/dist/ui/assets/{serial-port-registry-DsPZvGpT.js → serial-port-registry-B3LG5UIy.js} +1 -1
  191. package/dist/ui/assets/{session-freezer-CJhLDR-c.js → session-freezer-z4DJm3zA.js} +3 -3
  192. package/dist/ui/assets/{setup-feature-flags-remote-D1fJErV0.js → setup-feature-flags-remote-qaXVkshz.js} +1 -1
  193. package/dist/ui/assets/{setup-sprinkle-exec-CEx4I2ll.js → setup-sprinkle-exec-BX_Qq-Su.js} +2 -2
  194. package/dist/ui/assets/setup-standalone-prelude-DGfC07wR.js +2 -0
  195. package/dist/ui/assets/setup-sudo-DfUZKZqy.js +2 -0
  196. package/dist/ui/assets/{sha256-DmK25X5D.js → sha256-CHfIPo1C.js} +1 -1
  197. package/dist/ui/assets/shared-D4Q0n73P.js +4 -0
  198. package/dist/ui/assets/shared-Y4VMjBcs.js +1 -0
  199. package/dist/ui/assets/{silent-renew-backoff-Chq7fPuc.js → silent-renew-backoff-BrAZcbzt.js} +1 -1
  200. package/dist/ui/assets/{silent-renew-backoff-HDNNYx7x.js → silent-renew-backoff-tbYCpSw6.js} +1 -1
  201. package/dist/ui/assets/{skills-9LWceM3i.js → skills-DMzV8gyG.js} +1 -1
  202. package/dist/ui/assets/slicc-editor-BftG41yg.js +12 -0
  203. package/dist/ui/assets/speak-DFbF2xgr.js +3 -0
  204. package/dist/ui/assets/speak-DnN2sfVI.js +1 -0
  205. package/dist/ui/assets/{sprinkle-bridge-DziYRsuS.js → sprinkle-bridge-RIIOK3yH.js} +1 -1
  206. package/dist/ui/assets/sprinkle-manager-7WNxOLFK.js +1 -0
  207. package/dist/ui/assets/sprinkle-op-handler-Bkvm_zYI.js +1 -0
  208. package/dist/ui/assets/{sprinkle-renderer-DZ_7mdV4.js → sprinkle-renderer-CMk2ghMi.js} +2 -2
  209. package/dist/ui/assets/sql-wasm-BJoHkdU1.js +2 -0
  210. package/dist/ui/assets/{src-BStYtmHq.js → src-CAWTvdAa.js} +1 -1
  211. package/dist/ui/assets/{src-BcePBv4G.js → src-CcFD5QfS.js} +1 -1
  212. package/dist/ui/assets/{src-C6xNlS_2.js → src-scK1LFrC.js} +88 -88
  213. package/dist/ui/assets/{store-vg7fWz1Q.js → store-CmbiPzTQ.js} +1 -1
  214. package/dist/ui/assets/{sudo-D2Na1qHN.js → sudo-i4DiWMNU.js} +3 -3
  215. package/dist/ui/assets/{sync-dialog-Ie_5SqoO.js → sync-dialog-BXI-Z0QC.js} +1 -1
  216. package/dist/ui/assets/{terminal-session-client-BZLoutc3.js → terminal-session-client-ADzaWGFd.js} +1 -1
  217. package/dist/ui/assets/{theme-BOdTMzQ7.js → theme-CXRqxpw6.js} +1 -1
  218. package/dist/ui/assets/{theme-engine-BMhxbTGC.js → theme-engine-By4GU_Wc.js} +1 -1
  219. package/dist/ui/assets/{timestamp-preference-DgrTvVNx.js → timestamp-preference-sKwBl5I8.js} +1 -1
  220. package/dist/ui/assets/{tool-result-images-DwRGZUe_.js → tool-result-images-D8kQ0hH0.js} +1 -1
  221. package/dist/ui/assets/tool-result-images-Dw3zBAjg.js +1 -0
  222. package/dist/ui/assets/transcript-limits-Ne0pE4Ui.js +1 -0
  223. package/dist/ui/assets/{transformers-env-jJU-CdDZ.js → transformers-env-CB72W87T.js} +1 -1
  224. package/dist/ui/assets/{transformers-env-3dg4iXrc.js → transformers-env-CflaNVb-.js} +1 -1
  225. package/dist/ui/assets/transformers.web-Cg_-cFJu.js +39 -0
  226. package/dist/ui/assets/transformers.web-DD4-hssb.js +45 -0
  227. package/dist/ui/assets/{tray-leader-Btq_ccHy.js → tray-leader-BIbpF_6U.js} +1 -1
  228. package/dist/ui/assets/{tray-leave-runtime-DyiGVnUI.js → tray-leave-runtime-Bk54j6on.js} +1 -1
  229. package/dist/ui/assets/{tray-runtime-config-BxjVzwAJ.js → tray-runtime-config-C82czC62.js} +1 -1
  230. package/dist/ui/assets/{tray-runtime-config-kGqQt9_W.js → tray-runtime-config-qqz7WGyF.js} +1 -1
  231. package/dist/ui/assets/tray-sync-protocol-BZ5yhJH9.js +1 -0
  232. package/dist/ui/assets/tray-sync-protocol-BoMM1sx5.js +1 -0
  233. package/dist/ui/assets/{upgrade-detection-NB58Ti1o.js → upgrade-detection-BWJcWnqA.js} +1 -1
  234. package/dist/ui/assets/{usb-device-registry-BOGfZXgp.js → usb-device-registry-CRsCisej.js} +1 -1
  235. package/dist/ui/assets/{usb-operations-BQbhk96u.js → usb-operations-Cgk-otz-.js} +1 -1
  236. package/dist/ui/assets/{voice-reply-vgvKOdr1.js → voice-reply-AKp1x2Pa.js} +1 -1
  237. package/dist/ui/assets/{wc-attach-Cqm1S-Dt.js → wc-attach-GJkf0zy_.js} +3 -3
  238. package/dist/ui/assets/{wc-extension-AsJb1Fvl.js → wc-extension-8-BmnJQe.js} +2 -2
  239. package/dist/ui/assets/{wc-float-label-hGSM71eZ.js → wc-float-label-tSpScI6q.js} +1 -1
  240. package/dist/ui/assets/wc-follower-BiiKhzHS.js +17 -0
  241. package/dist/ui/assets/{wc-follower-model-surface-DJRncbD2.js → wc-follower-model-surface-B3z6dlpJ.js} +1 -1
  242. package/dist/ui/assets/wc-live-CaE_NPFb.js +8 -0
  243. package/dist/ui/assets/{wc-nav-DqrCih7F.js → wc-nav-CF8SpfT6.js} +2 -2
  244. package/dist/ui/assets/{wc-onboarding-CsA3_2-I.js → wc-onboarding-SQURNptm.js} +2 -2
  245. package/dist/ui/assets/{wc-permissions-DQ4ENBhU.js → wc-permissions-8LUp20Jr.js} +3 -3
  246. package/dist/ui/assets/{wc-permissions-providers-DMTDytlu.js → wc-permissions-providers-DpoCXfAQ.js} +2 -2
  247. package/dist/ui/assets/{wc-permissions-registry-Blyunq37.js → wc-permissions-registry-DHel9S61.js} +1 -1
  248. package/dist/ui/assets/wc-permissions-registry-Dcdmzs0U.js +1 -0
  249. package/dist/ui/assets/{wc-placeholder-CyqpFwlr.js → wc-placeholder-C1J1HGBa.js} +3 -3
  250. package/dist/ui/assets/{wc-settings-DQlViRqJ.js → wc-settings-DLReg83a.js} +3 -3
  251. package/dist/ui/assets/{wc-shell-DYAavWIZ.js → wc-shell-Djy773Zo.js} +7 -7
  252. package/dist/ui/assets/{wc-sprinkles-3JtSDzFR.js → wc-sprinkles-CcifX3Sy.js} +2 -2
  253. package/dist/ui/assets/{wc-transcript-export-C4O9AKQ6.js → wc-transcript-export-Bx9ecGAa.js} +2 -2
  254. package/dist/ui/assets/wc-tray-DgeXvaCs.js +2 -0
  255. package/dist/ui/assets/wc-tray-scoops-CwSRVd7s.js +5 -0
  256. package/dist/ui/assets/{welcome-detection-CQY88hjL.js → welcome-detection-sLx_L_gP.js} +1 -1
  257. package/dist/ui/assets/{whisper-engine-COt17pKd.js → whisper-engine-bquhJqdU.js} +1 -1
  258. package/dist/ui/assets/{whisper-session-D-oegf5G.js → whisper-session-DoSxCWUe.js} +2 -2
  259. package/dist/ui/assets/{writable-vfs-client-Cb6FWsgc.js → writable-vfs-client-Dqrpx9iK.js} +1 -1
  260. package/dist/ui/assets/{ws-subscribers-Dzuxa2F7.js → ws-subscribers-ZoJOTa93.js} +1 -1
  261. package/dist/ui/assets/{xai-grok-CnlmvtxV.js → xai-grok-B3LQ35Ig.js} +1 -1
  262. package/dist/ui/assets/{xai-grok-CQ2y4q0K.js → xai-grok-CsonM4jH.js} +1 -1
  263. package/dist/ui/assets/xterm-BSL5rRqA.js +18 -0
  264. package/dist/ui/assets/xterm-Diiics17.js +30 -0
  265. package/dist/ui/index.html +25 -25
  266. package/dist/ui/packages/webapp/cloud/index.html +2 -2
  267. package/dist/ui/packages/webapp/index.html +25 -25
  268. package/package.json +4 -4
  269. package/dist/ui/assets/__vite-browser-external-Db26C5vr.js +0 -1
  270. package/dist/ui/assets/__vite-browser-external-SwrSgYTf.js +0 -1
  271. package/dist/ui/assets/account-store-3ZeQvsHg.js +0 -43
  272. package/dist/ui/assets/backend-local-smcj-_Ox.js +0 -1
  273. package/dist/ui/assets/browser-COVn7LPD.js +0 -569
  274. package/dist/ui/assets/cloud-DhBwfVPK.js +0 -1
  275. package/dist/ui/assets/completionchunk-CP7I4h3f.js +0 -65
  276. package/dist/ui/assets/completionchunk-JDMithrI.js +0 -65
  277. package/dist/ui/assets/dist-0FRaZO2z.js +0 -12
  278. package/dist/ui/assets/dist-BlzIXVXL.js +0 -2
  279. package/dist/ui/assets/dist-Bq5i9FMJ.js +0 -12
  280. package/dist/ui/assets/dist-CJ6ilPeJ.js +0 -18
  281. package/dist/ui/assets/dist-DIYpvNeF.js +0 -2
  282. package/dist/ui/assets/dist-DuLHpm2f.js +0 -1
  283. package/dist/ui/assets/dist-DvjiIrEx.js +0 -23
  284. package/dist/ui/assets/es-CP2z28j0.js +0 -53
  285. package/dist/ui/assets/esptool-operations-C0DUkD34.js +0 -13
  286. package/dist/ui/assets/esptool-operations-iCYPdIRA.js +0 -12
  287. package/dist/ui/assets/export-provider-CBnhvTR9.js +0 -1
  288. package/dist/ui/assets/fs-B_EoFRY0.js +0 -2
  289. package/dist/ui/assets/fs-DAUqRBvb.js +0 -1
  290. package/dist/ui/assets/github-copilot-CUWzfkgl.js +0 -2
  291. package/dist/ui/assets/github-copilot-Dz-Ywiz6.js +0 -1
  292. package/dist/ui/assets/global-db-DvmmimLY.js +0 -1
  293. package/dist/ui/assets/google-shared-Dh_qL7z7.js +0 -11
  294. package/dist/ui/assets/installer-DuGbDCC9.js +0 -3
  295. package/dist/ui/assets/js-realm-worker-dP0mvoSB.js +0 -48
  296. package/dist/ui/assets/kokoro-engine-DKoaJW2G.js +0 -2
  297. package/dist/ui/assets/lick-manager-Ce_d4NxJ.js +0 -2
  298. package/dist/ui/assets/magick-wasm-f6c6OoOu.js +0 -43
  299. package/dist/ui/assets/mistral-conversations-CkIx9cg4.js +0 -8
  300. package/dist/ui/assets/mistral-conversations-Ct4-30zw.js +0 -7
  301. package/dist/ui/assets/models-DmWu8BeM.js +0 -1
  302. package/dist/ui/assets/mount-DdEqx8Ye.js +0 -2
  303. package/dist/ui/assets/oauth-service-bKcyWLK0.js +0 -1
  304. package/dist/ui/assets/process-manager-B5dz0PkO.js +0 -1
  305. package/dist/ui/assets/provider-settings-CMPKOsv9.js +0 -2
  306. package/dist/ui/assets/provider-store-access-BIeLrSCN.js +0 -1
  307. package/dist/ui/assets/provider-w_-ysFRD.js +0 -1
  308. package/dist/ui/assets/providers-U-BMssjK.js +0 -2
  309. package/dist/ui/assets/proxied-fetch-A48etSCh.js +0 -2
  310. package/dist/ui/assets/py-realm-worker-XDviaRpn.js +0 -244
  311. package/dist/ui/assets/pyodide-CcJEvbeU.js +0 -3
  312. package/dist/ui/assets/pyodide-DvIxh2Rb.js +0 -3
  313. package/dist/ui/assets/readline-0OE_8qoR.js +0 -26
  314. package/dist/ui/assets/rolldown-runtime-aKtaBQYM.js +0 -1
  315. package/dist/ui/assets/runtime-mode-B91km6KC.js +0 -1
  316. package/dist/ui/assets/setup-standalone-prelude-bzPDtbad.js +0 -2
  317. package/dist/ui/assets/setup-sudo-RE__qVVO.js +0 -2
  318. package/dist/ui/assets/shared-BYVJAPbn.js +0 -1
  319. package/dist/ui/assets/shared-SS_FwfdN.js +0 -4
  320. package/dist/ui/assets/slicc-editor-BoIEeofq.js +0 -12
  321. package/dist/ui/assets/speak-CIzzz0pF.js +0 -3
  322. package/dist/ui/assets/speak-CrTN7B3e.js +0 -1
  323. package/dist/ui/assets/sprinkle-manager-DbCWJGba.js +0 -1
  324. package/dist/ui/assets/sprinkle-op-handler-Dta4p7Tc.js +0 -1
  325. package/dist/ui/assets/sql-wasm-JpZkOS2Q.js +0 -2
  326. package/dist/ui/assets/tool-result-images-DlFhKgpw.js +0 -1
  327. package/dist/ui/assets/transcript-limits-B8212Rg9.js +0 -1
  328. package/dist/ui/assets/transformers.web-CrioJkWG.js +0 -45
  329. package/dist/ui/assets/transformers.web-D6viRW2X.js +0 -39
  330. package/dist/ui/assets/tray-sync-protocol-DtsNjc_8.js +0 -1
  331. package/dist/ui/assets/tray-sync-protocol-bvejwfjH.js +0 -1
  332. package/dist/ui/assets/wc-follower-_xrDG9l_.js +0 -17
  333. package/dist/ui/assets/wc-live-xoWVIMuu.js +0 -8
  334. package/dist/ui/assets/wc-permissions-registry-C7PhTX3c.js +0 -1
  335. package/dist/ui/assets/wc-tray-4dIiwvc9.js +0 -2
  336. package/dist/ui/assets/wc-tray-scoops-Ci8IRu3W.js +0 -5
  337. package/dist/ui/assets/xterm-DX7Hb5S-.js +0 -47
  338. package/dist/ui/assets/xterm-U4TA8lIC.js +0 -35
@@ -1,4 +1,4 @@
1
- import{t as e}from"./logger-LESFN7Hj.js";import{t}from"./esbuild-wasm-CUz5LFrh.js";const n=e(`bsh-watchdog`),r=`.bsh scripts must be pre-bundled. Install deps via \`ipk add <pkg>\`, then bootstrap esbuild via \`ipk add esbuild-wasm@${t}\` and bundle with \`esbuild --bundle <script>.bsh --outfile=<script>.bundled.bsh\`. Drop the bundled file in place. There is no runtime resolver in the target page.`;var i=class{transport;browserAPI;fs;scriptCatalog;running=!1;executing=new Set;constructor(e){if(!e.transport&&!e.browserAPI)throw Error(`BshWatchdog requires either transport or browserAPI`);if(!e.scriptCatalog)throw Error(`BshWatchdog requires a ScriptCatalog`);this.browserAPI=e.browserAPI,this.transport=e.transport??e.browserAPI.getTransport(),this.fs=e.fs,this.scriptCatalog=e.scriptCatalog}async start(){if(this.running)return;this.running=!0,this.transport.on(`Page.frameNavigated`,this.onFrameNavigated),this.browserAPI&&this.browserAPI.setSessionChangeCallback((e,t)=>{t!==this.transport&&this.setTransport(t)});let e;try{e=(await this.scriptCatalog.getBshEntries()).length}catch(e){n.warn(`BSH watchdog startup discovery failed`,{error:e instanceof Error?e.message:String(e)})}n.info(`BSH watchdog started`,e===void 0?void 0:{scriptCount:e})}stop(){this.running&&(this.running=!1,this.transport.off(`Page.frameNavigated`,this.onFrameNavigated),this.browserAPI&&this.browserAPI.setSessionChangeCallback(void 0),this.executing.clear(),n.info(`BSH watchdog stopped`))}setTransport(e){e!==this.transport&&(this.transport.off(`Page.frameNavigated`,this.onFrameNavigated),this.transport=e,this.running&&this.transport.on(`Page.frameNavigated`,this.onFrameNavigated),n.info(`BSH watchdog transport swapped`))}async discover(){this.scriptCatalog.invalidateBsh(),await this.scriptCatalog.getBshEntries()}async getEntries(){return this.scriptCatalog.getBshEntries()}onFrameNavigated=e=>{let t=e.frame;if(t?.parentId||!t?.url)return;let r=t.url,i=e.sessionId;if(!(!r.startsWith(`http://`)&&!r.startsWith(`https://`))){if(!i){n.warn(`BSH watchdog: no sessionId in Page.frameNavigated params, skipping`,{url:r});return}this.scriptCatalog.findMatchingBshScripts(r).then(e=>{if(e.length!==0)for(let t of e){let e=`${t.path}::${r}`;this.executing.has(e)||(this.executing.add(e),n.info(`BSH watchdog executing script`,{script:t.path,url:r}),this.executeInTargetPage(t.path,r,i).then(()=>{n.info(`BSH script completed`,{script:t.path,url:r})}).catch(e=>{n.error(`BSH script execution error`,{script:t.path,url:r,error:e instanceof Error?e.message:String(e)})}).finally(()=>{this.executing.delete(e)}))}}).catch(e=>{n.error(`BSH discovery failed`,{url:r,error:e instanceof Error?e.message:String(e)})})}};async executeInTargetPage(e,t,i){let a=await this.fs.readFile(e),o=typeof a==`string`?a:new TextDecoder().decode(a),s=`(async () => {
1
+ import{t as e}from"./logger-LESFN7Hj.js";import{t}from"./esbuild-wasm-CpCoMVKF.js";const n=e(`bsh-watchdog`),r=`.bsh scripts must be pre-bundled. Install deps via \`ipk add <pkg>\`, then bootstrap esbuild via \`ipk add esbuild-wasm@${t}\` and bundle with \`esbuild --bundle <script>.bsh --outfile=<script>.bundled.bsh\`. Drop the bundled file in place. There is no runtime resolver in the target page.`;var i=class{transport;browserAPI;fs;scriptCatalog;running=!1;executing=new Set;constructor(e){if(!e.transport&&!e.browserAPI)throw Error(`BshWatchdog requires either transport or browserAPI`);if(!e.scriptCatalog)throw Error(`BshWatchdog requires a ScriptCatalog`);this.browserAPI=e.browserAPI,this.transport=e.transport??e.browserAPI.getTransport(),this.fs=e.fs,this.scriptCatalog=e.scriptCatalog}async start(){if(this.running)return;this.running=!0,this.transport.on(`Page.frameNavigated`,this.onFrameNavigated),this.browserAPI&&this.browserAPI.setSessionChangeCallback((e,t)=>{t!==this.transport&&this.setTransport(t)});let e;try{e=(await this.scriptCatalog.getBshEntries()).length}catch(e){n.warn(`BSH watchdog startup discovery failed`,{error:e instanceof Error?e.message:String(e)})}n.info(`BSH watchdog started`,e===void 0?void 0:{scriptCount:e})}stop(){this.running&&(this.running=!1,this.transport.off(`Page.frameNavigated`,this.onFrameNavigated),this.browserAPI&&this.browserAPI.setSessionChangeCallback(void 0),this.executing.clear(),n.info(`BSH watchdog stopped`))}setTransport(e){e!==this.transport&&(this.transport.off(`Page.frameNavigated`,this.onFrameNavigated),this.transport=e,this.running&&this.transport.on(`Page.frameNavigated`,this.onFrameNavigated),n.info(`BSH watchdog transport swapped`))}async discover(){this.scriptCatalog.invalidateBsh(),await this.scriptCatalog.getBshEntries()}async getEntries(){return this.scriptCatalog.getBshEntries()}onFrameNavigated=e=>{let t=e.frame;if(t?.parentId||!t?.url)return;let r=t.url,i=e.sessionId;if(!(!r.startsWith(`http://`)&&!r.startsWith(`https://`))){if(!i){n.warn(`BSH watchdog: no sessionId in Page.frameNavigated params, skipping`,{url:r});return}this.scriptCatalog.findMatchingBshScripts(r).then(e=>{if(e.length!==0)for(let t of e){let e=`${t.path}::${r}`;this.executing.has(e)||(this.executing.add(e),n.info(`BSH watchdog executing script`,{script:t.path,url:r}),this.executeInTargetPage(t.path,r,i).then(()=>{n.info(`BSH script completed`,{script:t.path,url:r})}).catch(e=>{n.error(`BSH script execution error`,{script:t.path,url:r,error:e instanceof Error?e.message:String(e)})}).finally(()=>{this.executing.delete(e)}))}}).catch(e=>{n.error(`BSH discovery failed`,{url:r,error:e instanceof Error?e.message:String(e)})})}};async executeInTargetPage(e,t,i){let a=await this.fs.readFile(e),o=typeof a==`string`?a:new TextDecoder().decode(a),s=`(async () => {
2
2
  const __requireSpecifiers = (function() {
3
3
  const re = /require\\s*\\(\\s*['"]([^'"]+)['"]\\s*\\)/g;
4
4
  const code = ${JSON.stringify(o)};
@@ -1,4 +1,4 @@
1
- import{t as e}from"./logger-DDBAeTLF.js";import{n as t,t as n}from"./pending-request-table-Dgn6qYdL.js";import"./navigation-watcher-murqPsVd.js";import"./remote-cdp-transport-CCzSSZwF.js";var r=e(`cdp`),i=4001,a=class{ws=null;nextId=1;_superseded=!1;pending=new n;listeners=new Map;_state=`disconnected`;get state(){return this._state}get superseded(){return this._superseded}async connect(e){if(this._state!==`disconnected`)throw Error(`Cannot connect: state is ${this._state}`);if(!e?.url)throw Error(`CDPClient.connect() requires a WebSocket URL`);let{url:t,timeout:n=5e3,protocols:i}=e;return this._state=`connecting`,new Promise((e,a)=>{let o=setTimeout(()=>{this.cleanup(),a(Error(`CDP connection timed out after ${n}ms`))},n);try{this.ws=i===void 0?new WebSocket(t):new WebSocket(t,i)}catch(e){clearTimeout(o),this._state=`disconnected`,a(e);return}this.ws.onopen=()=>{clearTimeout(o),this._state=`connected`,this._superseded=!1,r.info(`Connected`,{url:t}),e()},this.ws.onerror=e=>{clearTimeout(o),this._state===`connecting`&&(r.error(`Connection failed`,{url:t}),this.cleanup(),a(Error(`CDP WebSocket connection failed`)))},this.ws.onmessage=e=>{this.handleMessage(e.data)},this.ws.onclose=e=>{this.handleClose(e?.code)}})}disconnect(){this.ws&&(this.ws.onclose=null,this.ws.close()),this._superseded=!1,this.cleanup(),r.info(`Disconnected`)}async send(e,t,n,i=3e4){if(this._state!==`connected`||!this.ws)throw Error(`CDP client is not connected`);let a=this.nextId++,o={id:a,method:e};t&&(o.params=t),n&&(o.sessionId=n),r.debug(`Send`,{method:e,id:a,sessionId:n});let s=this.pending.issue(a,i,`CDP command timed out after ${i}ms: ${e}`);return this.ws.send(JSON.stringify(o)),s}on(e,t){let n=this.listeners.get(e);n||(n=new Set,this.listeners.set(e,n)),n.add(t)}off(e,t){let n=this.listeners.get(e);n&&(n.delete(t),n.size===0&&this.listeners.delete(e))}once(e,n=3e4){return t(t=>(this.on(e,t),()=>this.off(e,t)),n,`Timed out waiting for event: ${e}`)}handleMessage(e){let t;try{t=JSON.parse(e)}catch{return}if(`id`in t&&typeof t.id==`number`){let e=t;r.debug(`Response`,{id:e.id,hasError:!!e.error}),e.error?(r.error(`Command error`,{id:e.id,code:e.error.code,message:e.error.message}),this.pending.reject(e.id,Error(`CDP error: ${e.error.message} (${e.error.code})`))):this.pending.resolve(e.id,e.result??{});return}if(`method`in t){let e=t;r.debug(`Event`,{method:e.method,sessionId:e.sessionId});let n=this.listeners.get(e.method);if(n){let t=e.sessionId?{...e.params,sessionId:e.sessionId}:e.params??{};for(let e of n)try{e(t)}catch{}}}}handleClose(e){let t=e===i;t?(this._superseded=!0,r.warn(`CDP slot superseded by another SLICC tab/window on this instance`,{code:e})):r.error(`Connection closed unexpectedly`,{pendingCommands:this.pending.size});let n=t?`CDP connection superseded by another SLICC tab/window on this instance`:`CDP connection closed`;this.pending.rejectAll(n),this.cleanup()}cleanup(){this.ws=null,this._state=`disconnected`,this.pending.rejectAll(`CDP client disconnected`)}},o=`(function() {
1
+ import{t as e}from"./logger-DDBAeTLF.js";import{n as t,t as n}from"./pending-request-table-Dgn6qYdL.js";import"./navigation-watcher-CcKsLKw9.js";import"./remote-cdp-transport-CgOXLjZ8.js";var r=e(`cdp`),i=4001,a=class{ws=null;nextId=1;_superseded=!1;pending=new n;listeners=new Map;_state=`disconnected`;get state(){return this._state}get superseded(){return this._superseded}async connect(e){if(this._state!==`disconnected`)throw Error(`Cannot connect: state is ${this._state}`);if(!e?.url)throw Error(`CDPClient.connect() requires a WebSocket URL`);let{url:t,timeout:n=5e3,protocols:i}=e;return this._state=`connecting`,new Promise((e,a)=>{let o=setTimeout(()=>{this.cleanup(),a(Error(`CDP connection timed out after ${n}ms`))},n);try{this.ws=i===void 0?new WebSocket(t):new WebSocket(t,i)}catch(e){clearTimeout(o),this._state=`disconnected`,a(e);return}this.ws.onopen=()=>{clearTimeout(o),this._state=`connected`,this._superseded=!1,r.info(`Connected`,{url:t}),e()},this.ws.onerror=e=>{clearTimeout(o),this._state===`connecting`&&(r.error(`Connection failed`,{url:t}),this.cleanup(),a(Error(`CDP WebSocket connection failed`)))},this.ws.onmessage=e=>{this.handleMessage(e.data)},this.ws.onclose=e=>{this.handleClose(e?.code)}})}disconnect(){this.ws&&(this.ws.onclose=null,this.ws.close()),this._superseded=!1,this.cleanup(),r.info(`Disconnected`)}async send(e,t,n,i=3e4){if(this._state!==`connected`||!this.ws)throw Error(`CDP client is not connected`);let a=this.nextId++,o={id:a,method:e};t&&(o.params=t),n&&(o.sessionId=n),r.debug(`Send`,{method:e,id:a,sessionId:n});let s=this.pending.issue(a,i,`CDP command timed out after ${i}ms: ${e}`);return this.ws.send(JSON.stringify(o)),s}on(e,t){let n=this.listeners.get(e);n||(n=new Set,this.listeners.set(e,n)),n.add(t)}off(e,t){let n=this.listeners.get(e);n&&(n.delete(t),n.size===0&&this.listeners.delete(e))}once(e,n=3e4){return t(t=>(this.on(e,t),()=>this.off(e,t)),n,`Timed out waiting for event: ${e}`)}handleMessage(e){let t;try{t=JSON.parse(e)}catch{return}if(`id`in t&&typeof t.id==`number`){let e=t;r.debug(`Response`,{id:e.id,hasError:!!e.error}),e.error?(r.error(`Command error`,{id:e.id,code:e.error.code,message:e.error.message}),this.pending.reject(e.id,Error(`CDP error: ${e.error.message} (${e.error.code})`))):this.pending.resolve(e.id,e.result??{});return}if(`method`in t){let e=t;r.debug(`Event`,{method:e.method,sessionId:e.sessionId});let n=this.listeners.get(e.method);if(n){let t=e.sessionId?{...e.params,sessionId:e.sessionId}:e.params??{};for(let e of n)try{e(t)}catch{}}}}handleClose(e){let t=e===i;t?(this._superseded=!0,r.warn(`CDP slot superseded by another SLICC tab/window on this instance`,{code:e})):r.error(`Connection closed unexpectedly`,{pendingCommands:this.pending.size});let n=t?`CDP connection superseded by another SLICC tab/window on this instance`:`CDP connection closed`;this.pending.rejectAll(n),this.cleanup()}cleanup(){this.ws=null,this._state=`disconnected`,this.pending.rejectAll(`CDP client disconnected`)}},o=`(function() {
2
2
  'use strict';
3
3
 
4
4
  // ===== DOM Utilities =====
@@ -868,7 +868,7 @@ import{t as e}from"./logger-DDBAeTLF.js";import{n as t,t as n}from"./pending-req
868
868
  } catch(e) {
869
869
  return { role: 'RootWebArea', name: '', description: 'Error: ' + (e.message || String(e)) };
870
870
  }
871
- })()`;function s(e,t=``){if(e==null)return t;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return String(e);try{return JSON.stringify(e)??t}catch{return String(e)}}function c(e){try{let t=atob(e.slice(0,48));return(t.charCodeAt(16)<<24|t.charCodeAt(17)<<16|t.charCodeAt(18)<<8|t.charCodeAt(19))>>>0}catch{return 0}}var l=`ws://localhost:5710/cdp`,u=e(`browser-api`);function d(e=typeof window<`u`?window.location:null){return e?.host?`${e.protocol===`https:`?`wss:`:`ws:`}//${e.host}/cdp`:l}var f=class{client;localClient;sessionId=null;attachedTargetId=null;trayTargetProvider=null;remoteTargetInfo=null;_frameContextCache=new Map;_mainWorldContextCache=new Map;_tabLock=Promise.resolve();_onSessionChange;_lastConnectOptions=null;supersededHandler=null;supersededNotified=!1;handleJavaScriptDialogOpening=e=>{this.dismissJavaScriptDialog(e)};async dismissJavaScriptDialog(e){let t=typeof e.sessionId==`string`?e.sessionId:this.sessionId;if(t)try{await this.client.send(`Page.handleJavaScriptDialog`,{accept:!1},t,5e3),u.warn(`Auto-dismissed unexpected JavaScript dialog`,{sessionId:t,type:e.type,message:e.message,url:e.url})}catch(e){u.warn(`Failed to auto-dismiss JavaScript dialog`,{sessionId:t,error:e instanceof Error?e.message:String(e)})}}handleExecutionContextCreated=e=>{let t=e.sessionId;if(typeof t==`string`&&t!==this.sessionId)return;let n=e.context,r=n?.auxData?.frameId;n?.auxData?.isDefault===!0&&r&&typeof n.id==`number`&&this._mainWorldContextCache.set(r,n.id)};handleExecutionContextDestroyed=e=>{let t=e.sessionId;if(typeof t==`string`&&t!==this.sessionId)return;let n=e.executionContextId;if(typeof n==`number`)for(let[e,t]of this._mainWorldContextCache)t===n&&this._mainWorldContextCache.delete(e)};handleExecutionContextsCleared=e=>{let t=e.sessionId;typeof t==`string`&&t!==this.sessionId||this._mainWorldContextCache.clear()};constructor(e){this.client=e??new a,this.localClient=this.client,this.addDialogListener(this.client),this.addExecutionContextListeners(this.client)}getTransport(){return this.client}setSessionChangeCallback(e){this._onSessionChange=e}getSessionId(){return this.sessionId}getAttachedTargetId(){return this.attachedTargetId}async withTab(e,t){let n,r=new Promise(e=>{n=e}),i=this._tabLock;this._tabLock=r,await i;try{return await t(await this.attachToPage(e))}finally{n()}}setTrayTargetProvider(e){this.trayTargetProvider=e}async listAllTargets(){let e=await this.listPages();if(!this.trayTargetProvider)return e;let t=!this.remoteTargetInfo,n=new Set(e.map(e=>e.targetId)),r=this.trayTargetProvider.getTargets().filter(e=>!t||!(e.runtimeId===`leader`&&n.has(e.localTargetId))).map(e=>({targetId:e.targetId,title:e.title,url:e.url,kind:e.kind,capabilities:e.capabilities}));return[...e,...r]}async connect(e){this._lastConnectOptions=e?{...e}:{},await this.client.connect({url:e?.url??d(),timeout:e?.timeout,...e?.protocols===void 0?{}:{protocols:e.protocols}}),this.supersededNotified=!1}primeConnectOptions(e){this._lastConnectOptions=e?{...e}:{}}setCdpSupersededHandler(e){this.supersededHandler=e}notifySuperseded(){if(!this.supersededNotified){this.supersededNotified=!0;try{this.supersededHandler?.()}catch{}}}async createPage(e){return await this.ensureConnected(),await this.ensureLocalConnected(),(await this.localClient.send(`Target.createTarget`,{url:e??`about:blank`,background:!0})).targetId}async createRemotePage(e,t){if(!this.trayTargetProvider?.openRemoteTab)throw Error(`Remote tab opening not available (no tray target provider)`);return this.trayTargetProvider.openRemoteTab(e,t??`about:blank`)}async closePage(e){if(await this.ensureConnected(),this.trayTargetProvider?.createRemoteTransport&&e.includes(`:`)){let t=e.indexOf(`:`),n=e.substring(0,t),r=e.substring(t+1);{let t=this.trayTargetProvider.createRemoteTransport(n,r);try{await t.send(`Target.closeTarget`,{targetId:r})}finally{this.trayTargetProvider.removeRemoteTransport&&this.trayTargetProvider.removeRemoteTransport(n,r)}this.attachedTargetId===e&&(this.remoteTargetInfo&&=(this.setClient(this.localClient),null),this.sessionId=null,this.attachedTargetId=null);return}}await this.localClient.send(`Target.closeTarget`,{targetId:e}),this.attachedTargetId===e&&(this.sessionId=null,this.attachedTargetId=null)}disconnect(){this.sessionId=null,this.attachedTargetId=null,this.client.disconnect()}async listPages(){return await this.ensureConnected(),await this.ensureLocalConnected(),((await this.localClient.send(`Target.getTargets`)).targetInfos??[]).filter(e=>e.type===`page`).map(e=>({targetId:e.targetId,title:e.title,url:e.url,...e.active?{active:!0}:{}}))}async attachToPage(e){if(await this.ensureConnected(),this.sessionId&&this.attachedTargetId===e)return this.sessionId;if(this._frameContextCache.clear(),this._mainWorldContextCache.clear(),this.trayTargetProvider?.createRemoteTransport&&e.includes(`:`)){let t=e.indexOf(`:`),n=e.substring(0,t),r=e.substring(t+1);{let t=this.trayTargetProvider.createRemoteTransport(n,r);this.setClient(t),this.remoteTargetInfo={runtimeId:n,localTargetId:r};let i=await this.client.send(`Target.attachToTarget`,{targetId:r,flatten:!0});return this.sessionId=i.sessionId,this.attachedTargetId=e,await this.client.send(`Page.enable`,{},this.sessionId),this._onSessionChange?.(this.sessionId,this.client),this.sessionId}}this.remoteTargetInfo&&=(this.trayTargetProvider?.removeRemoteTransport&&this.trayTargetProvider.removeRemoteTransport(this.remoteTargetInfo.runtimeId,this.remoteTargetInfo.localTargetId),this.setClient(this.localClient),null),await this.ensureLocalConnected();let t=await this.localClient.send(`Target.attachToTarget`,{targetId:e,flatten:!0});return this.sessionId=t.sessionId,this.attachedTargetId=e,await this.localClient.send(`Page.enable`,{},this.sessionId),this._onSessionChange?.(this.sessionId,this.localClient),this.sessionId}async detach(){if(this.sessionId){try{await this.client.send(`Target.detachFromTarget`,{sessionId:this.sessionId})}catch{}this.remoteTargetInfo&&this.trayTargetProvider?.removeRemoteTransport&&(this.trayTargetProvider.removeRemoteTransport(this.remoteTargetInfo.runtimeId,this.remoteTargetInfo.localTargetId),this.setClient(this.localClient),this.remoteTargetInfo=null),this.sessionId=null,this.attachedTargetId=null}}async navigate(e){await this.ensureConnected(),this.ensureAttached(),await this.client.send(`Page.enable`,{},this.sessionId);let t=this.client.once(`Page.loadEventFired`);await this.client.send(`Page.navigate`,{url:e},this.sessionId),await t}async bringToFront(){await this.ensureConnected(),this.ensureAttached(),await this.client.send(`Page.bringToFront`,{},this.sessionId??void 0)}async screenshot(e){await this.ensureConnected(),this.ensureAttached();try{let t={format:e?.format??`png`,captureBeyondViewport:!!(e?.clip||e?.fullPage)};if(e?.quality!==void 0&&(t.quality=e.quality),e?.clip||e?.fullPage){let n=0,r=0;try{await this.client.send(`Runtime.enable`,{},this.sessionId);let e=await this.client.send(`Runtime.evaluate`,{expression:`JSON.stringify({ w: window.innerWidth, h: document.documentElement.scrollHeight })`,returnByValue:!0},this.sessionId),t=JSON.parse(e.result?.value??`{}`);n=t.w??0,r=t.h??0}catch(e){u.warn(`fullPage: failed to evaluate scroll dimensions, falling back to viewport`,e)}e?.clip?t.clip={...e.clip,scale:e.clip.scale??1}:t.clip={x:0,y:0,width:n||1280,height:r||800,scale:1}}let n;try{n=await this.client.send(`Page.captureScreenshot`,t,this.sessionId)}catch(r){if(e?.foregroundFallback===!1)throw r;await this.client.send(`Page.bringToFront`,{},this.sessionId),n=await this.client.send(`Page.captureScreenshot`,t,this.sessionId)}let r=n.data;return e?.maxWidth&&(r=await this._applyMaxWidth(r,e.maxWidth,t)),r}finally{}}async _applyMaxWidth(e,t,n){let r=c(e);if(!r||r<=t)return e;let i=t/r,a=n.clip;if(a)a.scale=i;else{let e=1280,t=800;try{await this.client.send(`Runtime.enable`,{},this.sessionId);let n=await this.client.send(`Runtime.evaluate`,{expression:`JSON.stringify({w:window.innerWidth,h:window.innerHeight})`,returnByValue:!0},this.sessionId),r=JSON.parse(n.result?.value??`{}`);e=r.w||1280,t=r.h||800}catch{}n.clip={x:0,y:0,width:e,height:t,scale:i}}n.captureBeyondViewport=!0;try{return(await this.client.send(`Page.captureScreenshot`,n,this.sessionId)).data}catch(t){return u.warn(`maxWidth re-capture failed, returning original`,t),e}}async evaluate(e,t){await this.ensureConnected(),this.ensureAttached(),await this.client.send(`Runtime.enable`,{},this.sessionId);let n=await this.client.send(`Runtime.evaluate`,{expression:e,awaitPromise:t?.awaitPromise??!0,returnByValue:t?.returnByValue??!0},this.sessionId),r=n.exceptionDetails;if(r){let e=r.exception?.description??r.text;throw Error(`Evaluation failed: ${e}`)}return n.result.value}async click(e,t=0){await this.ensureConnected(),this.ensureAttached();let n=await this.boundingBox(e);if(!n)throw Error(`Element not found: ${e}`);let r=n.x+n.width/2,i=n.y+n.height/2;await this.client.send(`Input.dispatchMouseEvent`,{type:`mousePressed`,x:r,y:i,button:`left`,clickCount:1,modifiers:t},this.sessionId),await this.client.send(`Input.dispatchMouseEvent`,{type:`mouseReleased`,x:r,y:i,button:`left`,clickCount:1,modifiers:t},this.sessionId)}async type(e){await this.ensureConnected(),this.ensureAttached();for(let t of e)await this.client.send(`Input.dispatchKeyEvent`,{type:`keyDown`,text:t},this.sessionId),await this.client.send(`Input.dispatchKeyEvent`,{type:`keyUp`,text:t},this.sessionId)}async insertText(e){await this.ensureConnected(),this.ensureAttached(),await this.client.send(`Input.insertText`,{text:e},this.sessionId)}async waitForSelector(e,t){await this.ensureConnected(),this.ensureAttached();let n=t?.timeout??3e4,r=t?.interval??100,i=Date.now();for(;Date.now()-i<n;){if(await this.evaluate(`!!document.querySelector(${JSON.stringify(e)})`))return;await new Promise(e=>setTimeout(e,r))}throw Error(`waitForSelector timed out after ${n}ms: ${e}`)}async getAccessibilityTree(){await this.ensureConnected(),this.ensureAttached();let e=await this.evaluate(o,{awaitPromise:!1,returnByValue:!0});if(!e||typeof e!=`object`)return{role:`RootWebArea`,name:``};let t=h(e);try{let e=(await this.client.send(`Accessibility.getFullAXTree`,{},this.sessionId)).nodes;Array.isArray(e)&&m(t,p(e))}catch{}return t}async clickByBackendNodeId(e,t=0){await this.ensureConnected(),this.ensureAttached(),await this.client.send(`DOM.enable`,{},this.sessionId),await this.client.send(`Runtime.enable`,{},this.sessionId);let n=(await this.client.send(`DOM.resolveNode`,{backendNodeId:e},this.sessionId)).object;if(!n?.objectId)throw Error(`Could not resolve backend node ${e} to a DOM element`);let r=(await this.client.send(`Runtime.callFunctionOn`,{objectId:n.objectId,functionDeclaration:`function() {
871
+ })()`;function s(e,t=``){if(e==null)return t;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return String(e);try{return JSON.stringify(e)??t}catch{return String(e)}}function c(e){try{let t=atob(e.slice(0,48));return(t.charCodeAt(16)<<24|t.charCodeAt(17)<<16|t.charCodeAt(18)<<8|t.charCodeAt(19))>>>0}catch{return 0}}var l=`ws://localhost:5710/cdp`,u=e(`browser-api`);function d(e=typeof window<`u`?window.location:null){return e?.host?`${e.protocol===`https:`?`wss:`:`ws:`}//${e.host}/cdp`:l}var f=class{client;localClient;sessionId=null;attachedTargetId=null;trayTargetProvider=null;remoteTargetInfo=null;_frameContextCache=new Map;_mainWorldContextCache=new Map;_tabLock=Promise.resolve();_onSessionChange;_lastConnectOptions=null;supersededHandler=null;supersededNotified=!1;handleJavaScriptDialogOpening=e=>{this.dismissJavaScriptDialog(e)};async dismissJavaScriptDialog(e){let t=typeof e.sessionId==`string`?e.sessionId:this.sessionId;if(t)try{await this.client.send(`Page.handleJavaScriptDialog`,{accept:!1},t,5e3),u.warn(`Auto-dismissed unexpected JavaScript dialog`,{sessionId:t,type:e.type,message:e.message,url:e.url})}catch(e){u.warn(`Failed to auto-dismiss JavaScript dialog`,{sessionId:t,error:e instanceof Error?e.message:String(e)})}}handleExecutionContextCreated=e=>{let t=e.sessionId;if(typeof t==`string`&&t!==this.sessionId)return;let n=e.context,r=n?.auxData?.frameId;n?.auxData?.isDefault===!0&&r&&typeof n.id==`number`&&this._mainWorldContextCache.set(r,n.id)};handleExecutionContextDestroyed=e=>{let t=e.sessionId;if(typeof t==`string`&&t!==this.sessionId)return;let n=e.executionContextId;if(typeof n==`number`)for(let[e,t]of this._mainWorldContextCache)t===n&&this._mainWorldContextCache.delete(e)};handleExecutionContextsCleared=e=>{let t=e.sessionId;(typeof t!=`string`||t===this.sessionId)&&this._mainWorldContextCache.clear()};constructor(e){this.client=e??new a,this.localClient=this.client,this.addDialogListener(this.client),this.addExecutionContextListeners(this.client)}getTransport(){return this.client}setSessionChangeCallback(e){this._onSessionChange=e}getSessionId(){return this.sessionId}getAttachedTargetId(){return this.attachedTargetId}async withTab(e,t){let n,r=new Promise(e=>{n=e}),i=this._tabLock;this._tabLock=r,await i;try{return await t(await this.attachToPage(e))}finally{n()}}setTrayTargetProvider(e){this.trayTargetProvider=e}async listAllTargets(){let e=await this.listPages();if(!this.trayTargetProvider)return e;let t=!this.remoteTargetInfo,n=new Set(e.map(e=>e.targetId)),r=this.trayTargetProvider.getTargets().filter(e=>!t||!(e.runtimeId===`leader`&&n.has(e.localTargetId))).map(e=>({targetId:e.targetId,title:e.title,url:e.url,kind:e.kind,capabilities:e.capabilities}));return[...e,...r]}async connect(e){this._lastConnectOptions=e?{...e}:{},await this.client.connect({url:e?.url??d(),timeout:e?.timeout,...e?.protocols===void 0?{}:{protocols:e.protocols}}),this.supersededNotified=!1}primeConnectOptions(e){this._lastConnectOptions=e?{...e}:{}}setCdpSupersededHandler(e){this.supersededHandler=e}notifySuperseded(){if(!this.supersededNotified){this.supersededNotified=!0;try{this.supersededHandler?.()}catch{}}}async createPage(e){return await this.ensureConnected(),await this.ensureLocalConnected(),(await this.localClient.send(`Target.createTarget`,{url:e??`about:blank`,background:!0})).targetId}async createRemotePage(e,t){if(!this.trayTargetProvider?.openRemoteTab)throw Error(`Remote tab opening not available (no tray target provider)`);return this.trayTargetProvider.openRemoteTab(e,t??`about:blank`)}async closePage(e){if(await this.ensureConnected(),this.trayTargetProvider?.createRemoteTransport&&e.includes(`:`)){let t=e.indexOf(`:`),n=e.substring(0,t),r=e.substring(t+1);{let t=this.trayTargetProvider.createRemoteTransport(n,r);try{await t.send(`Target.closeTarget`,{targetId:r})}finally{this.trayTargetProvider.removeRemoteTransport&&this.trayTargetProvider.removeRemoteTransport(n,r)}this.attachedTargetId===e&&(this.remoteTargetInfo&&=(this.setClient(this.localClient),null),this.sessionId=null,this.attachedTargetId=null);return}}await this.localClient.send(`Target.closeTarget`,{targetId:e}),this.attachedTargetId===e&&(this.sessionId=null,this.attachedTargetId=null)}disconnect(){this.sessionId=null,this.attachedTargetId=null,this.client.disconnect()}async listPages(){return await this.ensureConnected(),await this.ensureLocalConnected(),((await this.localClient.send(`Target.getTargets`)).targetInfos??[]).filter(e=>e.type===`page`).map(e=>({targetId:e.targetId,title:e.title,url:e.url,...e.active?{active:!0}:{}}))}async attachToPage(e){if(await this.ensureConnected(),this.sessionId&&this.attachedTargetId===e)return this.sessionId;if(this._frameContextCache.clear(),this._mainWorldContextCache.clear(),this.trayTargetProvider?.createRemoteTransport&&e.includes(`:`)){let t=e.indexOf(`:`),n=e.substring(0,t),r=e.substring(t+1);{let t=this.trayTargetProvider.createRemoteTransport(n,r);this.setClient(t),this.remoteTargetInfo={runtimeId:n,localTargetId:r};let i=await this.client.send(`Target.attachToTarget`,{targetId:r,flatten:!0});return this.sessionId=i.sessionId,this.attachedTargetId=e,await this.client.send(`Page.enable`,{},this.sessionId),this._onSessionChange?.(this.sessionId,this.client),this.sessionId}}this.remoteTargetInfo&&=(this.trayTargetProvider?.removeRemoteTransport&&this.trayTargetProvider.removeRemoteTransport(this.remoteTargetInfo.runtimeId,this.remoteTargetInfo.localTargetId),this.setClient(this.localClient),null),await this.ensureLocalConnected();let t=await this.localClient.send(`Target.attachToTarget`,{targetId:e,flatten:!0});return this.sessionId=t.sessionId,this.attachedTargetId=e,await this.localClient.send(`Page.enable`,{},this.sessionId),this._onSessionChange?.(this.sessionId,this.localClient),this.sessionId}async detach(){if(this.sessionId){try{await this.client.send(`Target.detachFromTarget`,{sessionId:this.sessionId})}catch{}this.remoteTargetInfo&&this.trayTargetProvider?.removeRemoteTransport&&(this.trayTargetProvider.removeRemoteTransport(this.remoteTargetInfo.runtimeId,this.remoteTargetInfo.localTargetId),this.setClient(this.localClient),this.remoteTargetInfo=null),this.sessionId=null,this.attachedTargetId=null}}async navigate(e){await this.ensureConnected(),this.ensureAttached(),await this.client.send(`Page.enable`,{},this.sessionId);let t=this.client.once(`Page.loadEventFired`);await this.client.send(`Page.navigate`,{url:e},this.sessionId),await t}async bringToFront(){await this.ensureConnected(),this.ensureAttached(),await this.client.send(`Page.bringToFront`,{},this.sessionId??void 0)}async screenshot(e){await this.ensureConnected(),this.ensureAttached();try{let t={format:e?.format??`png`,captureBeyondViewport:!!(e?.clip||e?.fullPage)};if(e?.quality!==void 0&&(t.quality=e.quality),e?.clip||e?.fullPage){let n=0,r=0;try{await this.client.send(`Runtime.enable`,{},this.sessionId);let e=await this.client.send(`Runtime.evaluate`,{expression:`JSON.stringify({ w: window.innerWidth, h: document.documentElement.scrollHeight })`,returnByValue:!0},this.sessionId),t=JSON.parse(e.result?.value??`{}`);n=t.w??0,r=t.h??0}catch(e){u.warn(`fullPage: failed to evaluate scroll dimensions, falling back to viewport`,e)}t.clip=e?.clip?{...e.clip,scale:e.clip.scale??1}:{x:0,y:0,width:n||1280,height:r||800,scale:1}}let n;try{n=await this.client.send(`Page.captureScreenshot`,t,this.sessionId)}catch(r){if(e?.foregroundFallback===!1)throw r;await this.client.send(`Page.bringToFront`,{},this.sessionId),n=await this.client.send(`Page.captureScreenshot`,t,this.sessionId)}let r=n.data;return e?.maxWidth&&(r=await this._applyMaxWidth(r,e.maxWidth,t)),r}finally{}}async _applyMaxWidth(e,t,n){let r=c(e);if(!r||r<=t)return e;let i=t/r,a=n.clip;if(a)a.scale=i;else{let e=1280,t=800;try{await this.client.send(`Runtime.enable`,{},this.sessionId);let n=await this.client.send(`Runtime.evaluate`,{expression:`JSON.stringify({w:window.innerWidth,h:window.innerHeight})`,returnByValue:!0},this.sessionId),r=JSON.parse(n.result?.value??`{}`);e=r.w||1280,t=r.h||800}catch{}n.clip={x:0,y:0,width:e,height:t,scale:i}}n.captureBeyondViewport=!0;try{return(await this.client.send(`Page.captureScreenshot`,n,this.sessionId)).data}catch(t){return u.warn(`maxWidth re-capture failed, returning original`,t),e}}async evaluate(e,t){await this.ensureConnected(),this.ensureAttached(),await this.client.send(`Runtime.enable`,{},this.sessionId);let n=await this.client.send(`Runtime.evaluate`,{expression:e,awaitPromise:t?.awaitPromise??!0,returnByValue:t?.returnByValue??!0},this.sessionId),r=n.exceptionDetails;if(r){let e=r.exception?.description??r.text;throw Error(`Evaluation failed: ${e}`)}return n.result.value}async click(e,t=0){await this.ensureConnected(),this.ensureAttached();let n=await this.boundingBox(e);if(!n)throw Error(`Element not found: ${e}`);let r=n.x+n.width/2,i=n.y+n.height/2;await this.client.send(`Input.dispatchMouseEvent`,{type:`mousePressed`,x:r,y:i,button:`left`,clickCount:1,modifiers:t},this.sessionId),await this.client.send(`Input.dispatchMouseEvent`,{type:`mouseReleased`,x:r,y:i,button:`left`,clickCount:1,modifiers:t},this.sessionId)}async type(e){await this.ensureConnected(),this.ensureAttached();for(let t of e)await this.client.send(`Input.dispatchKeyEvent`,{type:`keyDown`,text:t},this.sessionId),await this.client.send(`Input.dispatchKeyEvent`,{type:`keyUp`,text:t},this.sessionId)}async insertText(e){await this.ensureConnected(),this.ensureAttached(),await this.client.send(`Input.insertText`,{text:e},this.sessionId)}async waitForSelector(e,t){await this.ensureConnected(),this.ensureAttached();let n=t?.timeout??3e4,r=t?.interval??100,i=Date.now();for(;Date.now()-i<n;){if(await this.evaluate(`!!document.querySelector(${JSON.stringify(e)})`))return;await new Promise(e=>setTimeout(e,r))}throw Error(`waitForSelector timed out after ${n}ms: ${e}`)}async getAccessibilityTree(){await this.ensureConnected(),this.ensureAttached();let e=await this.evaluate(o,{awaitPromise:!1,returnByValue:!0});if(!e||typeof e!=`object`)return{role:`RootWebArea`,name:``};let t=h(e);try{let e=(await this.client.send(`Accessibility.getFullAXTree`,{},this.sessionId)).nodes;Array.isArray(e)&&m(t,p(e))}catch{}return t}async clickByBackendNodeId(e,t=0){await this.ensureConnected(),this.ensureAttached(),await this.client.send(`DOM.enable`,{},this.sessionId),await this.client.send(`Runtime.enable`,{},this.sessionId);let n=(await this.client.send(`DOM.resolveNode`,{backendNodeId:e},this.sessionId)).object;if(!n?.objectId)throw Error(`Could not resolve backend node ${e} to a DOM element`);let r=(await this.client.send(`Runtime.callFunctionOn`,{objectId:n.objectId,functionDeclaration:`function() {
872
872
  this.scrollIntoView({ block: 'center', inline: 'center' });
873
873
  const r = this.getBoundingClientRect();
874
874
  return { x: r.x, y: r.y, width: r.width, height: r.height };
@@ -1 +1 @@
1
- import{h as e}from"./account-store-3ZeQvsHg.js";import{a as t}from"./diagnostics-DN_idNHx.js";import{a as n}from"./compat-BhgG-Qr-.js";import{r,s as i}from"./legacy-api-aliases-DrEKVikN.js";var a=`cerebras`,o=`https://api.cerebras.ai/v1`,s=`openai-completions`,c=`${a}-openai`,l=`slicc-cerebras-models`,u=[],d=[{id:`gpt-oss-120b`,name:`GPT OSS 120B`,api:`openai`,reasoning:!0,input:[`text`],context_window:131072,max_tokens:40960},{id:`gemma-4-31b`,name:`Gemma 4 31B`,api:`openai`,reasoning:!1,input:[`text`,`image`],context_window:131072,max_tokens:40960},{id:`zai-glm-4.7`,name:`Z.AI GLM-4.7`,api:`openai`,reasoning:!1,input:[`text`],context_window:131072,max_tokens:40960}];function f(e){try{localStorage.setItem(l,JSON.stringify(e))}catch{}}function p(){try{let e=localStorage.getItem(l);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)&&t.length>0?t:[]}catch{return[]}}function m(e){let t=e.id??``,n=d.find(e=>e.id===t);return{id:t,name:e.name??n?.name??t,api:`openai`,reasoning:e.capabilities?.reasoning??n?.reasoning??!1,input:e.capabilities?.vision?[`text`,`image`]:n?.input??[`text`],context_window:e.limits?.max_context_length??n?.context_window??8192,max_tokens:e.limits?.max_completion_tokens??n?.max_tokens??4096}}async function h(e){let t=await fetch(`${o}/models`,{headers:{Authorization:`Bearer ${e}`}});if(!t.ok)throw Error(`GET /v1/models → ${t.status} ${t.statusText}`);let n=((await t.json()).data??[]).map(m).filter(e=>e.id.length>0);n.length>0&&(u=n,f(n))}function g(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:c,provider:a,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}var _=(e,n,i={})=>{let a=t();return(async()=>{try{let t=r({...e,baseUrl:o,api:s},n,i);for await(let e of t)a.push(e);a.end()}catch(t){console.error(`[cerebras] Stream error:`,t instanceof Error?t.message:String(t)),a.push(g(e,t)),a.end()}})(),a},v=(e,n,r)=>{let a=t();return(async()=>{try{let t=i({...e,baseUrl:o,api:s},n,r);for await(let e of t)a.push(e);a.end()}catch(t){console.error(`[cerebras] Stream error:`,t instanceof Error?t.message:String(t)),a.push(g(e,t)),a.end()}})(),a},y={id:a,name:`Cerebras`,description:`Ultra-fast inference on Cerebras hardware. Get an API key at cloud.cerebras.ai.`,requiresApiKey:!0,requiresBaseUrl:!1,getModelIds:()=>{if(u.length>0)return u;let e=p();return e.length>0?e:d},refreshModels:async t=>{let n=t??e(a)??``;if(n)try{await h(n)}catch(e){console.warn(`[cerebras] Failed to refresh model list:`,e instanceof Error?e.message:String(e))}}};function b(){n({api:c,stream:_,streamSimple:v})}export{y as config,b as register};
1
+ import{h as e}from"./account-store-83ArXgcG.js";import{a as t}from"./diagnostics-DN_idNHx.js";import{a as n}from"./compat-Bn8HnC3L.js";import{r,s as i}from"./legacy-api-aliases-DAkrHYf9.js";var a=`cerebras`,o=`https://api.cerebras.ai/v1`,s=`openai-completions`,c=`${a}-openai`,l=`slicc-cerebras-models`,u=[],d=[{id:`gpt-oss-120b`,name:`GPT OSS 120B`,api:`openai`,reasoning:!0,input:[`text`],context_window:131072,max_tokens:40960},{id:`gemma-4-31b`,name:`Gemma 4 31B`,api:`openai`,reasoning:!1,input:[`text`,`image`],context_window:131072,max_tokens:40960},{id:`zai-glm-4.7`,name:`Z.AI GLM-4.7`,api:`openai`,reasoning:!1,input:[`text`],context_window:131072,max_tokens:40960}];function f(e){try{localStorage.setItem(l,JSON.stringify(e))}catch{}}function p(){try{let e=localStorage.getItem(l);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)&&t.length>0?t:[]}catch{return[]}}function m(e){let t=e.id??``,n=d.find(e=>e.id===t);return{id:t,name:e.name??n?.name??t,api:`openai`,reasoning:e.capabilities?.reasoning??n?.reasoning??!1,input:e.capabilities?.vision?[`text`,`image`]:n?.input??[`text`],context_window:e.limits?.max_context_length??n?.context_window??8192,max_tokens:e.limits?.max_completion_tokens??n?.max_tokens??4096}}async function h(e){let t=await fetch(`${o}/models`,{headers:{Authorization:`Bearer ${e}`}});if(!t.ok)throw Error(`GET /v1/models → ${t.status} ${t.statusText}`);let n=((await t.json()).data??[]).map(m).filter(e=>e.id.length>0);n.length>0&&(u=n,f(n))}function g(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:c,provider:a,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}var _=(e,n,i={})=>{let a=t();return(async()=>{try{let t={...e,baseUrl:o,api:s},c=r(t,n,i);for await(let e of c)a.push(e);a.end()}catch(t){console.error(`[cerebras] Stream error:`,t instanceof Error?t.message:String(t)),a.push(g(e,t)),a.end()}})(),a},v=(e,n,r)=>{let a=t();return(async()=>{try{let t={...e,baseUrl:o,api:s},c=i(t,n,r);for await(let e of c)a.push(e);a.end()}catch(t){console.error(`[cerebras] Stream error:`,t instanceof Error?t.message:String(t)),a.push(g(e,t)),a.end()}})(),a},y={id:a,name:`Cerebras`,description:`Ultra-fast inference on Cerebras hardware. Get an API key at cloud.cerebras.ai.`,requiresApiKey:!0,requiresBaseUrl:!1,getModelIds:()=>{if(u.length>0)return u;let e=p();return e.length>0?e:d},refreshModels:async t=>{let n=t??e(a)??``;if(n)try{await h(n)}catch(e){console.warn(`[cerebras] Failed to refresh model list:`,e instanceof Error?e.message:String(e))}}};function b(){n({api:c,stream:_,streamSimple:v})}export{y as config,b as register};
@@ -1 +1 @@
1
- import{h as e}from"./account-store-DSnxgLNJ.js";import{a as t}from"./diagnostics-DN_idNHx.js";import{p as n}from"./bedrock-camp-CHi38ceE.js";import{r,s as i}from"./legacy-api-aliases-MR6kosFL.js";const a=`cerebras`,o=`https://api.cerebras.ai/v1`,s=`openai-completions`,c=`${a}-openai`,l=`slicc-cerebras-models`;let u=[];const d=[{id:`gpt-oss-120b`,name:`GPT OSS 120B`,api:`openai`,reasoning:!0,input:[`text`],context_window:131072,max_tokens:40960},{id:`gemma-4-31b`,name:`Gemma 4 31B`,api:`openai`,reasoning:!1,input:[`text`,`image`],context_window:131072,max_tokens:40960},{id:`zai-glm-4.7`,name:`Z.AI GLM-4.7`,api:`openai`,reasoning:!1,input:[`text`],context_window:131072,max_tokens:40960}];function f(e){try{localStorage.setItem(l,JSON.stringify(e))}catch{}}function p(){try{let e=localStorage.getItem(l);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)&&t.length>0?t:[]}catch{return[]}}function m(e){let t=e.id??``,n=d.find(e=>e.id===t);return{id:t,name:e.name??n?.name??t,api:`openai`,reasoning:e.capabilities?.reasoning??n?.reasoning??!1,input:e.capabilities?.vision?[`text`,`image`]:n?.input??[`text`],context_window:e.limits?.max_context_length??n?.context_window??8192,max_tokens:e.limits?.max_completion_tokens??n?.max_tokens??4096}}async function h(e){let t=await fetch(`${o}/models`,{headers:{Authorization:`Bearer ${e}`}});if(!t.ok)throw Error(`GET /v1/models → ${t.status} ${t.statusText}`);let n=((await t.json()).data??[]).map(m).filter(e=>e.id.length>0);n.length>0&&(u=n,f(n))}function g(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:c,provider:a,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}const _=(e,n,i={})=>{let a=t();return(async()=>{try{let t=r({...e,baseUrl:o,api:s},n,i);for await(let e of t)a.push(e);a.end()}catch(t){console.error(`[cerebras] Stream error:`,t instanceof Error?t.message:String(t)),a.push(g(e,t)),a.end()}})(),a},v=(e,n,r)=>{let a=t();return(async()=>{try{let t=i({...e,baseUrl:o,api:s},n,r);for await(let e of t)a.push(e);a.end()}catch(t){console.error(`[cerebras] Stream error:`,t instanceof Error?t.message:String(t)),a.push(g(e,t)),a.end()}})(),a},y={id:a,name:`Cerebras`,description:`Ultra-fast inference on Cerebras hardware. Get an API key at cloud.cerebras.ai.`,requiresApiKey:!0,requiresBaseUrl:!1,getModelIds:()=>{if(u.length>0)return u;let e=p();return e.length>0?e:d},refreshModels:async t=>{let n=t??e(a)??``;if(n)try{await h(n)}catch(e){console.warn(`[cerebras] Failed to refresh model list:`,e instanceof Error?e.message:String(e))}}};function b(){n({api:c,stream:_,streamSimple:v})}export{y as config,b as register};
1
+ import{h as e}from"./account-store-kT7dgbK1.js";import{a as t}from"./diagnostics-DN_idNHx.js";import{p as n}from"./bedrock-camp-CFmElpzZ.js";import{r,s as i}from"./legacy-api-aliases-BVP0Ho8x.js";const a=`cerebras`,o=`https://api.cerebras.ai/v1`,s=`openai-completions`,c=`${a}-openai`,l=`slicc-cerebras-models`;let u=[];const d=[{id:`gpt-oss-120b`,name:`GPT OSS 120B`,api:`openai`,reasoning:!0,input:[`text`],context_window:131072,max_tokens:40960},{id:`gemma-4-31b`,name:`Gemma 4 31B`,api:`openai`,reasoning:!1,input:[`text`,`image`],context_window:131072,max_tokens:40960},{id:`zai-glm-4.7`,name:`Z.AI GLM-4.7`,api:`openai`,reasoning:!1,input:[`text`],context_window:131072,max_tokens:40960}];function f(e){try{localStorage.setItem(l,JSON.stringify(e))}catch{}}function p(){try{let e=localStorage.getItem(l);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)&&t.length>0?t:[]}catch{return[]}}function m(e){let t=e.id??``,n=d.find(e=>e.id===t);return{id:t,name:e.name??n?.name??t,api:`openai`,reasoning:e.capabilities?.reasoning??n?.reasoning??!1,input:e.capabilities?.vision?[`text`,`image`]:n?.input??[`text`],context_window:e.limits?.max_context_length??n?.context_window??8192,max_tokens:e.limits?.max_completion_tokens??n?.max_tokens??4096}}async function h(e){let t=await fetch(`${o}/models`,{headers:{Authorization:`Bearer ${e}`}});if(!t.ok)throw Error(`GET /v1/models → ${t.status} ${t.statusText}`);let n=((await t.json()).data??[]).map(m).filter(e=>e.id.length>0);n.length>0&&(u=n,f(n))}function g(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:c,provider:a,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}const _=(e,n,i={})=>{let a=t();return(async()=>{try{let t={...e,baseUrl:o,api:s},c=r(t,n,i);for await(let e of c)a.push(e);a.end()}catch(t){console.error(`[cerebras] Stream error:`,t instanceof Error?t.message:String(t)),a.push(g(e,t)),a.end()}})(),a},v=(e,n,r)=>{let a=t();return(async()=>{try{let t={...e,baseUrl:o,api:s},c=i(t,n,r);for await(let e of c)a.push(e);a.end()}catch(t){console.error(`[cerebras] Stream error:`,t instanceof Error?t.message:String(t)),a.push(g(e,t)),a.end()}})(),a},y={id:a,name:`Cerebras`,description:`Ultra-fast inference on Cerebras hardware. Get an API key at cloud.cerebras.ai.`,requiresApiKey:!0,requiresBaseUrl:!1,getModelIds:()=>{if(u.length>0)return u;let e=p();return e.length>0?e:d},refreshModels:async t=>{let n=t??e(a)??``;if(n)try{await h(n)}catch(e){console.warn(`[cerebras] Failed to refresh model list:`,e instanceof Error?e.message:String(e))}}};function b(){n({api:c,stream:_,streamSimple:v})}export{y as config,b as register};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-aKtaBQYM.js";var t=e({SessionStore:()=>o}),n=`browser-coding-agent`,r=1,i=`sessions`;function a(){return new Promise((e,t)=>{let a=indexedDB.open(n,r);a.onupgradeneeded=()=>{let e=a.result;e.objectStoreNames.contains(i)||e.createObjectStore(i,{keyPath:`id`})},a.onsuccess=()=>e(a.result),a.onerror=()=>t(a.error)})}var o=class{db=null;async init(){await this.getDb()}async getDb(){if(!this.db){let e=await a();e.onversionchange=()=>{e.close(),this.db=null},e.onclose=()=>{this.db=null},this.db=e}return this.db}async save(e){let t=await this.getDb();return new Promise((n,r)=>{let a=t.transaction(i,`readwrite`);a.objectStore(i).put(e),a.oncomplete=()=>n(),a.onerror=()=>r(a.error)})}async load(e){let t=await this.getDb();return new Promise((n,r)=>{let a=t.transaction(i,`readonly`).objectStore(i).get(e);a.onsuccess=()=>n(a.result??null),a.onerror=()=>r(a.error)})}async list(){let e=await this.getDb();return new Promise((t,n)=>{let r=e.transaction(i,`readonly`).objectStore(i).getAll();r.onsuccess=()=>{t(r.result.sort((e,t)=>t.updatedAt-e.updatedAt).map(e=>e.id))},r.onerror=()=>n(r.error)})}async delete(e){let t=await this.getDb();return new Promise((n,r)=>{let a=t.transaction(i,`readwrite`);a.objectStore(i).delete(e),a.oncomplete=()=>n(),a.onerror=()=>r(a.error)})}async saveMessages(e,t){let n=await this.load(e),r=n?{...n,messages:t,updatedAt:Date.now()}:{id:e,messages:t,createdAt:Date.now(),updatedAt:Date.now()};await this.save(r)}};export{t as n,o as t};
1
+ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";var t=e({SessionStore:()=>o}),n=`browser-coding-agent`,r=1,i=`sessions`;function a(){return new Promise((e,t)=>{let a=indexedDB.open(n,r);a.onupgradeneeded=()=>{let e=a.result;e.objectStoreNames.contains(i)||e.createObjectStore(i,{keyPath:`id`})},a.onsuccess=()=>e(a.result),a.onerror=()=>t(a.error)})}var o=class{db=null;async init(){await this.getDb()}async getDb(){if(!this.db){let e=await a();e.onversionchange=()=>{e.close(),this.db=null},e.onclose=()=>{this.db=null},this.db=e}return this.db}async save(e){let t=await this.getDb();return new Promise((n,r)=>{let a=t.transaction(i,`readwrite`);a.objectStore(i).put(e),a.oncomplete=()=>n(),a.onerror=()=>r(a.error)})}async load(e){let t=await this.getDb();return new Promise((n,r)=>{let a=t.transaction(i,`readonly`).objectStore(i).get(e);a.onsuccess=()=>n(a.result??null),a.onerror=()=>r(a.error)})}async list(){let e=await this.getDb();return new Promise((t,n)=>{let r=e.transaction(i,`readonly`).objectStore(i).getAll();r.onsuccess=()=>{t(r.result.sort((e,t)=>t.updatedAt-e.updatedAt).map(e=>e.id))},r.onerror=()=>n(r.error)})}async delete(e){let t=await this.getDb();return new Promise((n,r)=>{let a=t.transaction(i,`readwrite`);a.objectStore(i).delete(e),a.oncomplete=()=>n(),a.onerror=()=>r(a.error)})}async saveMessages(e,t){let n=await this.load(e),r=n?{...n,messages:t,updatedAt:Date.now()}:{id:e,messages:t,createdAt:Date.now(),updatedAt:Date.now()};await this.save(r)}};export{t as n,o as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./logger-LESFN7Hj.js";var n=e({DEFAULT_TIMEOUT_MS:()=>i,MCP_SUPPORTED_PROTOCOL_VERSIONS:()=>a,McpAuthRequiredError:()=>c,McpClient:()=>x,McpTimeoutError:()=>u,parseResourceMetadataUrl:()=>f,selectSseResponseFrame:()=>p});const r=t(`mcp-client`),i=6e4,a=[`2026-07-28`,`2025-06-18`],o=a[0],s=a[1];var c=class extends Error{status;resourceMetadataUrl;wwwAuthenticate;constructor(e){super(`MCP server requires authentication (HTTP ${e.status})`),this.name=`McpAuthRequiredError`,this.status=e.status,this.resourceMetadataUrl=e.resourceMetadataUrl,this.wwwAuthenticate=e.wwwAuthenticate}},l=class extends Error{rpcError;constructor(e){super(`MCP RPC error ${e.code}: ${e.message}`),this.name=`McpRpcFailure`,this.rpcError=e}},u=class extends Error{method;timeoutMs;constructor(e){super(`MCP request timed out after ${e.timeoutMs}ms (${e.method})`),this.name=`McpTimeoutError`,this.method=e.method,this.timeoutMs=e.timeoutMs}},d=class extends Error{status;rpcError;constructor(e){super(`MCP HTTP ${e.status} ${e.statusText} for ${e.method}: ${e.snippet||`(empty body)`}`),this.name=`McpHttpError`,this.status=e.status,this.rpcError=e.rpcError}};function f(e){if(!e)return;let t=/resource_metadata="([^"]+)"/i.exec(e);return t?t[1]:/resource_metadata=([^,\s]+)/i.exec(e)?.[1]}function p(e,t){let n=new TextDecoder(`utf-8`).decode(e).replace(/\r\n/g,`
1
+ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./logger-LESFN7Hj.js";var n=e({DEFAULT_TIMEOUT_MS:()=>i,MCP_SUPPORTED_PROTOCOL_VERSIONS:()=>a,McpAuthRequiredError:()=>c,McpClient:()=>x,McpTimeoutError:()=>u,parseResourceMetadataUrl:()=>f,selectSseResponseFrame:()=>p});const r=t(`mcp-client`),i=6e4,a=[`2026-07-28`,`2025-06-18`],o=a[0],s=a[1];var c=class extends Error{status;resourceMetadataUrl;wwwAuthenticate;constructor(e){super(`MCP server requires authentication (HTTP ${e.status})`),this.name=`McpAuthRequiredError`,this.status=e.status,this.resourceMetadataUrl=e.resourceMetadataUrl,this.wwwAuthenticate=e.wwwAuthenticate}},l=class extends Error{rpcError;constructor(e){super(`MCP RPC error ${e.code}: ${e.message}`),this.name=`McpRpcFailure`,this.rpcError=e}},u=class extends Error{method;timeoutMs;constructor(e){super(`MCP request timed out after ${e.timeoutMs}ms (${e.method})`),this.name=`McpTimeoutError`,this.method=e.method,this.timeoutMs=e.timeoutMs}},d=class extends Error{status;rpcError;constructor(e){super(`MCP HTTP ${e.status} ${e.statusText} for ${e.method}: ${e.snippet||`(empty body)`}`),this.name=`McpHttpError`,this.status=e.status,this.rpcError=e.rpcError}};function f(e){if(!e)return;let t=/resource_metadata="([^"]+)"/i.exec(e);return t?t[1]:/resource_metadata=([^,\s]+)/i.exec(e)?.[1]}function p(e,t){let n=new TextDecoder(`utf-8`).decode(e).replace(/\r\n/g,`
2
2
  `).split(/\n\n/);for(let e of n){if(!e.trim())continue;let n=[];for(let t of e.split(`
3
3
  `))t.startsWith(`data:`)&&n.push(t.slice(5).trimStart());if(n.length===0)continue;let r=n.join(`
4
- `),i;try{i=JSON.parse(r)}catch{continue}if(i.id!==void 0&&i.id!==null&&i.id===t)return i}throw Error(`MCP SSE stream ended without a response for request id ${String(t)}`)}function m(e,t){let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n)return r}function h(e){if(e instanceof d||e instanceof l)return e.rpcError}function g(e){return new l(e)}function _(e,t){if(e.jsonrpc!==`2.0`||e.id!==t||Object.hasOwn(e,`result`))return;let n=e.error;return n&&typeof n.code==`number`&&typeof n.message==`string`?n:void 0}function v(e,t){try{return _(JSON.parse(e),t)}catch{return}}function y(e){if(!e.data||typeof e.data!=`object`)return[];let t=e.data.supported;return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]}async function b(){let{createProxiedFetch:e}=await import(`./proxied-fetch-GabK83LB.js`).then(e=>e.o),t=e();return async(e,n)=>{let r=await t(e,{method:n?.method,headers:n?.headers,body:n?.body});return{status:r.status,statusText:r.statusText,headers:r.headers,body:r.body}}}var x=class{url;staticHeaders;timeoutMs;getAuthHeader;preferredProtocolVersion;clientInfo;fetchImpl;fetchImplLoader=null;sessionId;negotiatedProtocolVersion;nextId=1;constructor(e){this.url=e.url,this.staticHeaders=e.headers??{},this.timeoutMs=e.timeoutMs??6e4,this.getAuthHeader=e.getAuthHeader,this.preferredProtocolVersion=e.protocolVersion??o,this.clientInfo=e.clientInfo??{name:`SLICC`,version:`0.0.0`},this.fetchImpl=e.fetchImpl??null,this.sessionId=e.sessionId}getSessionId(){return this.sessionId}getNegotiatedProtocolVersion(){return this.negotiatedProtocolVersion}async initialize(){if(this.preferredProtocolVersion===s)return this.initializeLegacy();try{return await this.discoverModern(this.preferredProtocolVersion)}catch(e){let t=h(e);if(t?.code===-32022){let e=y(t),n=a.find(t=>t!==s&&e.includes(t));if(!n)throw Error(`MCP server does not support a compatible modern protocol version (supported: ${e.join(`, `)||`none`})`);return this.discoverModern(n)}if(t?.code===-32601&&(e instanceof d&&e.status===400||e instanceof l))return r.debug(`server/discover identified a legacy server; using initialize`,{error:e.message}),this.initializeLegacy();throw e}}async discoverModern(e){let t=await this.request(`server/discover`,{protocolVersion:e}),n=Array.isArray(t?.supportedVersions)?t.supportedVersions.filter(e=>typeof e==`string`):[],r=a.find(e=>e!==s&&n.includes(e));if(!r)throw Error(`MCP server discovery did not advertise a compatible modern protocol version (advertised: ${n.join(`, `)||`none`})`);return this.negotiatedProtocolVersion=r,this.sessionId=void 0,t}async toolsList(){return(await this.request(`tools/list`,{}))?.tools??[]}async toolsCall(e,t){return this.request(`tools/call`,{name:e,arguments:t})}async appsList(){try{return(await this.request(`apps/list`,{}))?.apps??[]}catch(e){if(e instanceof c)throw e;return r.debug(`apps/list not supported by server`,{error:e instanceof Error?e.message:String(e)}),[]}}async request(e,t){let n=this.nextId++,r=await this.resolveFetchImpl(),i={"Content-Type":`application/json`,Accept:`application/json, text/event-stream`,...this.staticHeaders};if(this.negotiatedProtocolVersion===s&&this.sessionId&&e!==`initialize`&&(i[`Mcp-Session-Id`]=this.sessionId),this.getAuthHeader){let e=await this.getAuthHeader();e&&(i.Authorization=e)}let a=JSON.stringify({jsonrpc:`2.0`,id:n,method:e,params:t}),o=new AbortController,l=!1,h,y=new Promise((t,n)=>{h=setTimeout(()=>{l=!0,n(new u({method:e,timeoutMs:this.timeoutMs})),o.abort()},this.timeoutMs)}),b,x=r(this.url,{method:`POST`,headers:i,body:a,signal:o.signal});try{b=await Promise.race([x,y])}catch(t){throw l?(x.catch(()=>void 0),new u({method:e,timeoutMs:this.timeoutMs})):t}finally{h&&clearTimeout(h)}if(b.status===401){let e=m(b.headers,`www-authenticate`);throw new c({status:401,wwwAuthenticate:e,resourceMetadataUrl:f(e)})}if(this.negotiatedProtocolVersion===s){let e=m(b.headers,`mcp-session-id`);e&&(this.sessionId=e)}if(b.status>=400){let t=new TextDecoder(`utf-8`).decode(b.body);throw new d({status:b.status,statusText:b.statusText,method:e,snippet:t.slice(0,512),rpcError:v(t,n)})}let S=(m(b.headers,`content-type`)??``).toLowerCase().includes(`text/event-stream`)?p(b.body,n):JSON.parse(new TextDecoder(`utf-8`).decode(b.body));if(S.error){let e=_(S,n);throw e?g(e):Error(`MCP invalid JSON-RPC error response for request id ${String(n)}`)}return S.result}async resolveFetchImpl(){return this.fetchImpl?this.fetchImpl:(this.fetchImplLoader||=b().then(e=>(this.fetchImpl=e,e)),this.fetchImplLoader)}async initializeLegacy(){return this.negotiatedProtocolVersion=s,this.request(`initialize`,{protocolVersion:s,capabilities:{},clientInfo:this.clientInfo})}};export{n,u as t};
4
+ `),i;try{i=JSON.parse(r)}catch{continue}if(i.id!==void 0&&i.id!==null&&i.id===t)return i}throw Error(`MCP SSE stream ended without a response for request id ${String(t)}`)}function m(e,t){let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n)return r}function h(e){if(e instanceof d||e instanceof l)return e.rpcError}function g(e){return new l(e)}function _(e,t){if(e.jsonrpc!==`2.0`||e.id!==t||Object.hasOwn(e,`result`))return;let n=e.error;return n&&typeof n.code==`number`&&typeof n.message==`string`?n:void 0}function v(e,t){try{return _(JSON.parse(e),t)}catch{return}}function y(e){if(!e.data||typeof e.data!=`object`)return[];let t=e.data.supported;return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]}async function b(){let{createProxiedFetch:e}=await import(`./proxied-fetch-CSNzus3d.js`).then(e=>e.o),t=e();return async(e,n)=>{let r=await t(e,{method:n?.method,headers:n?.headers,body:n?.body});return{status:r.status,statusText:r.statusText,headers:r.headers,body:r.body}}}var x=class{url;staticHeaders;timeoutMs;getAuthHeader;preferredProtocolVersion;clientInfo;fetchImpl;fetchImplLoader=null;sessionId;negotiatedProtocolVersion;nextId=1;constructor(e){this.url=e.url,this.staticHeaders=e.headers??{},this.timeoutMs=e.timeoutMs??6e4,this.getAuthHeader=e.getAuthHeader,this.preferredProtocolVersion=e.protocolVersion??o,this.clientInfo=e.clientInfo??{name:`SLICC`,version:`0.0.0`},this.fetchImpl=e.fetchImpl??null,this.sessionId=e.sessionId}getSessionId(){return this.sessionId}getNegotiatedProtocolVersion(){return this.negotiatedProtocolVersion}async initialize(){if(this.preferredProtocolVersion===s)return this.initializeLegacy();try{return await this.discoverModern(this.preferredProtocolVersion)}catch(e){let t=h(e);if(t?.code===-32022){let e=y(t),n=a.find(t=>t!==s&&e.includes(t));if(!n)throw Error(`MCP server does not support a compatible modern protocol version (supported: ${e.join(`, `)||`none`})`);return this.discoverModern(n)}if(t?.code===-32601&&(e instanceof d&&e.status===400||e instanceof l))return r.debug(`server/discover identified a legacy server; using initialize`,{error:e.message}),this.initializeLegacy();throw e}}async discoverModern(e){let t=await this.request(`server/discover`,{protocolVersion:e}),n=Array.isArray(t?.supportedVersions)?t.supportedVersions.filter(e=>typeof e==`string`):[],r=a.find(e=>e!==s&&n.includes(e));if(!r)throw Error(`MCP server discovery did not advertise a compatible modern protocol version (advertised: ${n.join(`, `)||`none`})`);return this.negotiatedProtocolVersion=r,this.sessionId=void 0,t}async toolsList(){return(await this.request(`tools/list`,{}))?.tools??[]}async toolsCall(e,t){return this.request(`tools/call`,{name:e,arguments:t})}async appsList(){try{return(await this.request(`apps/list`,{}))?.apps??[]}catch(e){if(e instanceof c)throw e;return r.debug(`apps/list not supported by server`,{error:e instanceof Error?e.message:String(e)}),[]}}async request(e,t){let n=this.nextId++,r=await this.resolveFetchImpl(),i={"Content-Type":`application/json`,Accept:`application/json, text/event-stream`,...this.staticHeaders};if(this.negotiatedProtocolVersion===s&&this.sessionId&&e!==`initialize`&&(i[`Mcp-Session-Id`]=this.sessionId),this.getAuthHeader){let e=await this.getAuthHeader();e&&(i.Authorization=e)}let a=JSON.stringify({jsonrpc:`2.0`,id:n,method:e,params:t}),o=new AbortController,l=!1,h,y=new Promise((t,n)=>{h=setTimeout(()=>{l=!0,n(new u({method:e,timeoutMs:this.timeoutMs})),o.abort()},this.timeoutMs)}),b,x=r(this.url,{method:`POST`,headers:i,body:a,signal:o.signal});try{b=await Promise.race([x,y])}catch(t){throw l?(x.catch(()=>void 0),new u({method:e,timeoutMs:this.timeoutMs})):t}finally{h&&clearTimeout(h)}if(b.status===401){let e=m(b.headers,`www-authenticate`);throw new c({status:401,wwwAuthenticate:e,resourceMetadataUrl:f(e)})}if(this.negotiatedProtocolVersion===s){let e=m(b.headers,`mcp-session-id`);e&&(this.sessionId=e)}if(b.status>=400){let t=new TextDecoder(`utf-8`).decode(b.body);throw new d({status:b.status,statusText:b.statusText,method:e,snippet:t.slice(0,512),rpcError:v(t,n)})}let S=(m(b.headers,`content-type`)??``).toLowerCase().includes(`text/event-stream`)?p(b.body,n):JSON.parse(new TextDecoder(`utf-8`).decode(b.body));if(S.error){let e=_(S,n);throw e?g(e):Error(`MCP invalid JSON-RPC error response for request id ${String(n)}`)}return S.result}async resolveFetchImpl(){return this.fetchImpl?this.fetchImpl:(this.fetchImplLoader||=b().then(e=>(this.fetchImpl=e,e)),this.fetchImplLoader)}async initializeLegacy(){return this.negotiatedProtocolVersion=s,this.request(`initialize`,{protocolVersion:s,capabilities:{},clientInfo:this.clientInfo})}};export{n,u as t};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-aKtaBQYM.js";var t=e({copyTextToClipboard:()=>n});async function n(e){if(!e)return!1;if(typeof navigator<`u`&&navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch{}if(typeof document>`u`)return!1;try{let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.cssText=`position:fixed; opacity:0; pointer-events:none; left:-9999px;`,document.body.appendChild(t),t.select();let n=document.execCommand?.(`copy`)??!1;return document.body.removeChild(t),n}catch{return!1}}export{t};
1
+ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";var t=e({copyTextToClipboard:()=>n});async function n(e){if(!e)return!1;if(typeof navigator<`u`&&navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch{}if(typeof document>`u`)return!1;try{let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.cssText=`position:fixed; opacity:0; pointer-events:none; left:-9999px;`,document.body.appendChild(t),t.select();let n=document.execCommand?.(`copy`)??!1;return document.body.removeChild(t),n}catch{return!1}}export{t};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-aKtaBQYM.js";var t=e({copyTextToClipboard:()=>n});async function n(e){if(!e)return!1;if(typeof navigator<`u`&&navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch{}if(typeof document>`u`)return!1;try{let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.cssText=`position:fixed; opacity:0; pointer-events:none; left:-9999px;`,document.body.appendChild(t),t.select();let n=document.execCommand?.(`copy`)??!1;return document.body.removeChild(t),n}catch{return!1}}export{n,t};
1
+ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";var t=e({copyTextToClipboard:()=>n});async function n(e){if(!e)return!1;if(typeof navigator<`u`&&navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch{}if(typeof document>`u`)return!1;try{let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.cssText=`position:fixed; opacity:0; pointer-events:none; left:-9999px;`,document.body.appendChild(t),t.select();let n=document.execCommand?.(`copy`)??!1;return document.body.removeChild(t),n}catch{return!1}}export{n,t};
@@ -0,0 +1 @@
1
+ import"./modulepreload-polyfill-P2Xu9kJm.js";var e=`slicc_cloud_model_catalog`,t={adobe:[{id:`claude-opus-4-6`,name:`Claude Opus 4.6`}],anthropic:[{id:`claude-opus-4-6`,name:`Claude Opus 4.6`},{id:`claude-sonnet-4-6`,name:`Claude Sonnet 4.6`}],openai:[{id:`gpt-5`,name:`GPT-5`}]};function n(e){if(!e)return[];let t;try{t=JSON.parse(e)}catch{return[]}return Array.isArray(t)?t.filter(e=>e&&typeof e.providerId==`string`&&Array.isArray(e.models)).map(e=>({providerId:e.providerId,providerName:typeof e.providerName==`string`?e.providerName:e.providerId,models:e.models.filter(e=>e&&typeof e.id==`string`).map(e=>({id:e.id,name:typeof e.name==`string`?e.name:e.id}))})):[]}function r(e,t){return t.find(t=>t.providerId===e)?.providerName||e}function i(e,n){let i=new Map(e.map(e=>[e.providerId,e])),a=new Set,o=[];for(let s of n){let n=s.providerId;if(a.has(n))continue;a.add(n);let c=i.get(n);c&&c.models.length>0?o.push(c):t[n]&&o.push({providerId:n,providerName:r(n,e),models:t[n]})}return o}function a({model:e,selectedProviderIds:t,allAccounts:n,secretRows:r}){let i=new Set(t);return{model:e,accounts:n.filter(e=>i.has(e.providerId)&&(e.accessToken||e.apiKey)).map(e=>e.accessToken?{providerId:e.providerId,kind:`oauth`,accessToken:e.accessToken,...e.refreshToken?{refreshToken:e.refreshToken}:{},...e.tokenExpiresAt?{tokenExpiresAt:e.tokenExpiresAt}:{},...e.userName?{userName:e.userName}:{}}:{providerId:e.providerId,kind:`apikey`,apiKey:e.apiKey}),secrets:r.map(e=>({name:e.name,value:e.value,domains:e.domains.split(`,`).map(e=>e.trim()).filter(Boolean)})).filter(e=>e.name&&e.value&&e.domains.length>0)}}function o({selectedProviderIds:e,allAccounts:t,secretRows:n}){let r=[],i=new Set(e),a=t.filter(e=>i.has(e.providerId)&&!(e.accessToken||e.apiKey)).map(e=>e.providerId);a.length>0&&r.push(`Skipping ${a.join(`, `)}: no credential (re-connect the provider first).`);let o=n.map(e=>({name:(e.name||``).trim(),value:e.value||``,domains:(e.domains||``).split(`,`).map(e=>e.trim()).filter(Boolean)})).filter(e=>(e.name||e.value||e.domains.length)&&!(e.name&&e.value&&e.domains.length)).map(e=>e.name||`(unnamed)`);return o.length>0&&r.push(`Skipping incomplete secret${o.length>1?`s`:``} ${o.join(`, `)}: each needs a name, value, and at least one domain.`),r}function s(e,t,n){let r=e.split(`:`)[0];return n.includes(r)?!0:t.includes(r)}function c(e){return l({upsertAccounts:e.filter(e=>e.accessToken||e.apiKey),upsertSecretRows:[],deleteProviderIds:[],deleteSecretNames:[]})}function l({model:e,upsertAccounts:t,upsertSecretRows:n,deleteProviderIds:r,deleteSecretNames:i}){let{accounts:o,secrets:s}=a({model:e??``,selectedProviderIds:t.map(e=>e.providerId),allAccounts:t,secretRows:n}),c={};e&&(c.model=e);let l={};o.length&&(l.accounts=o),s.length&&(l.secrets=s),Object.keys(l).length&&(c.upsert=l);let u={};return r.length&&(u.providerIds=r),i.length&&(u.secretNames=i),Object.keys(u).length&&(c.delete=u),c}var u=`cloud-ims-token`,d=`cloud-ims-token-exp`,f=null;async function p(){if(f)return f;let e=await fetch(`/api/cloud/config`);if(!e.ok)throw Error(`config fetch failed: `+e.status);return f=await e.json(),f}function m(){let e=localStorage.getItem(u),t=parseInt(localStorage.getItem(d)||`0`,10);return!e||t<Date.now()?null:e}function h(e,t){localStorage.setItem(u,e),localStorage.setItem(d,String(Date.now()+(parseInt(t,10)||0)*1e3))}function g(){localStorage.removeItem(u),localStorage.removeItem(d)}function _(e){let t=document.getElementById(`toast`);t.textContent=e,t.classList.remove(`hidden`),setTimeout(()=>t.classList.add(`hidden`),4e3)}function v(){k(),document.getElementById(`signed-out`).classList.add(`hidden`),document.getElementById(`signed-in`).classList.remove(`hidden`),document.getElementById(`user-box`).classList.remove(`hidden`),document.getElementById(`user-label`).textContent=`signed in`}function y(){document.getElementById(`signed-out`).classList.remove(`hidden`),document.getElementById(`signed-in`).classList.add(`hidden`),document.getElementById(`user-box`).classList.add(`hidden`)}async function b(){let e=await p(),t=new URL(e.imsRelayUrl).host===window.location.host,n=/^(localhost|127\.0\.0\.1)$/.test(window.location.hostname),r=crypto.randomUUID(),i,a;if(t)i=window.location.origin+e.imsReceivePath,a=r;else if(n){i=e.imsRelayUrl;let t=Number(window.location.port)||(window.location.protocol===`https:`?443:80);a=btoa(JSON.stringify({source:`local`,port:t,path:e.imsReceivePath,nonce:r}))}else i=e.imsRelayUrl,a=btoa(JSON.stringify({source:`remote`,origin:window.location.origin,path:e.imsReceivePath,nonce:r}));return new Promise((t,n)=>{let r=new URLSearchParams({client_id:e.imsClientId,scope:e.imsScope,response_type:`token`,redirect_uri:i,state:a});if(!window.open(`${e.imsAuthorizeUrl}?${r}`,`sliccy-cloud-ims`,`width=480,height=640`))return n(Error(`popup blocked`));function o(e){e.origin===window.location.origin&&(e.data?.type===`sliccy.cloud.imsToken`?(window.removeEventListener(`message`,o),h(e.data.token,e.data.expiresIn),t()):e.data?.type===`sliccy.cloud.imsError`&&(window.removeEventListener(`message`,o),n(Error(e.data.error))))}window.addEventListener(`message`,o)})}async function x(e,t={}){let n=m();if(!n)throw Error(`not authenticated`);let r=await fetch(e,{...t,headers:{...t.headers||{},Authorization:`Bearer ${n}`,...t.body?{"content-type":`application/json`}:{}}});if(r.status===401)throw g(),y(),_(`Session expired — please sign in again.`),Error(`unauthorized`);if(!r.ok){let e=await r.json().catch(()=>({error:`unknown`,message:r.statusText}));throw Object.assign(Error(e.message||`error`),{code:e.error})}return r.json()}function S(e){if(!e)return`just now`;let t=new Date(e),n=Math.max(0,(Date.now()-t.getTime())/1e3);return n<60?`${Math.floor(n)}s ago`:n<3600?`${Math.floor(n/60)} min ago`:`${Math.floor(n/3600)} hr ago`}function C(e){let t=document.getElementById(`cone-list`);t.replaceChildren();for(let n of e){let e=document.createElement(`li`);e.className=`cone ${n.state}`;let r=document.createElement(`div`),i=document.createElement(`span`);i.className=`state-dot`,r.appendChild(i);let a=document.createElement(`strong`);a.textContent=n.name||n.sandboxId,r.appendChild(a),r.appendChild(document.createTextNode(` `));let o=document.createElement(`span`);o.className=`status`,o.textContent=`${n.state} · ${S(n.lastSeen)}`,r.appendChild(o),e.appendChild(r);let s=document.createElement(`div`);if(s.className=`cone-actions`,n.state===`running`&&n.joinUrl){let e=document.createElement(`a`);e.href=n.joinUrl,e.target=`_blank`,e.rel=`noopener noreferrer`,e.title=`This link grants follower access — only share with people you trust to see this cone.`,e.textContent=`Open ↗`,s.appendChild(e)}if(n.state===`running`){let t=document.createElement(`button`);t.textContent=`Pause`,t.addEventListener(`click`,()=>V(e,n.sandboxId,`pause`)),s.appendChild(t)}if(n.state===`paused`){let t=document.createElement(`button`);t.textContent=`Resume`,t.addEventListener(`click`,()=>V(e,n.sandboxId,`resume`)),s.appendChild(t);let r=document.createElement(`button`);r.textContent=`Manage`,r.addEventListener(`click`,()=>I(e,n.sandboxId)),s.appendChild(r)}let c=document.createElement(`button`);c.textContent=`Kill`,c.addEventListener(`click`,()=>V(e,n.sandboxId,`kill`)),s.appendChild(c),e.appendChild(s),R.has(n.sandboxId)&&B(e,R.get(n.sandboxId)),t.appendChild(e)}let n=e.filter(e=>e.state===`running`||e.state===`reserved`).length,r=e.filter(e=>e.state===`paused`).length,i=f.capRunning??1,a=f.capPaused??5;document.getElementById(`cap-info`).textContent=`${n} running · ${r} paused (cap: ${i}/${a})`;let o=document.getElementById(`create-btn`),s=n>=i,c=r>=a;o.disabled=s||c,o.title=s?`Cap reached (${n}/${i} running). Pause or kill another first.`:c?`Paused cap reached (${r}/${a}). Resume or kill a paused cone first.`:``}function w(){try{let e=JSON.parse(localStorage.getItem(`slicc_accounts`)||`[]`);return Array.isArray(e)?e:[]}catch{return[]}}function T(){return n(localStorage.getItem(e))}function E(e){if(e===D)try{localStorage.setItem(O,`1`)}catch{}let t=w().filter(t=>t.providerId!==e);try{localStorage.setItem(`slicc_accounts`,JSON.stringify(t))}catch{}N()}var D=`adobe`,O=`slicc_cloud_adobe_optout`;function k(e=!1){let t=m();if(!t)return;if(e)try{localStorage.removeItem(O)}catch{}else if(localStorage.getItem(O))return;let n=parseInt(localStorage.getItem(d)||`0`,10)||void 0,r=w(),i=r.find(e=>e.providerId===D);if(i)i.accessToken=t,n&&(i.tokenExpiresAt=n),i.kind||=`oauth`;else if(e||r.length===0)r.push({providerId:D,kind:`oauth`,accessToken:t,...n?{tokenExpiresAt:n}:{}});else return;try{localStorage.setItem(`slicc_accounts`,JSON.stringify(r))}catch{}}function A(){let e=T(),t=(f&&Array.isArray(f.adobeModels)?f.adobeModels:[]).filter(e=>e?.id);if(t.length===0)return e;let n=e.filter(e=>e.providerId!==D);return[{providerId:D,providerName:`Adobe`,models:t.map(e=>({id:e.id,name:e.name||e.id}))},...n]}function j(e,t,n,r){e.replaceChildren();let i=document.createElement(`option`);i.value=``,i.textContent=r,e.appendChild(i);let a=0;for(let n of t){let t=document.createElement(`optgroup`);t.label=n.providerName;for(let e of n.models){let r=document.createElement(`option`);r.value=`${n.providerId}:${e.id}`,r.textContent=e.name,t.appendChild(r),a++}e.appendChild(t)}return n&&t.some(e=>e.models.some(t=>`${e.providerId}:${t.id}`===n))&&(e.value=n),a>0}function M(e){return e.accessToken?{text:e.userName||`Logged in`,warn:!1}:e.apiKey?{text:`API key`,warn:!1}:{text:`No credential`,warn:!0}}function N(){let e=document.getElementById(`create-card`),t=document.getElementById(`account-list`),n=document.getElementById(`connect-btn`),a=document.getElementById(`cone-model`);if(!e||!t||!a)return;let o=w(),s=o.length>0;e.classList.toggle(`has-providers`,s),n&&(n.textContent=s?`Manage providers`:`Connect a provider`);let c=A();t.replaceChildren();for(let e of o){let n=document.createElement(`div`);n.className=`account-row`;let i=document.createElement(`span`);i.className=`account-row__name`,i.textContent=r(e.providerId,c),n.appendChild(i);let a=M(e),o=document.createElement(`span`);o.className=`account-row__badge`+(a.warn?` account-row__badge--warn`:``),o.textContent=a.text,n.appendChild(o);let s=document.createElement(`button`);s.type=`button`,s.className=`account-row__remove`,s.textContent=`Remove`,s.addEventListener(`click`,()=>E(e.providerId)),n.appendChild(s),t.appendChild(n)}let l=o.some(e=>e.providerId===D),u=document.getElementById(`add-adobe-btn`);u&&u.classList.toggle(`hidden`,l||!m());let d=i(c,o);a.disabled=!j(a,d,a.value,d.length===0?`Open Connect to load models`:`Select model…`)}function P(){let e=document.createElement(`div`);e.className=`secret-row`;let t=document.createElement(`input`);t.type=`text`,t.className=`s-name`,t.placeholder=`SECRET_NAME`,t.autocomplete=`off`;let n=document.createElement(`input`);n.type=`password`,n.className=`s-value`,n.placeholder=`value`,n.autocomplete=`off`;let r=document.createElement(`input`);r.type=`text`,r.className=`s-domains`,r.placeholder=`domains (comma-separated)`,r.autocomplete=`off`;let i=document.createElement(`button`);return i.type=`button`,i.className=`secret-row__remove`,i.textContent=`✕`,i.title=`Remove secret`,i.addEventListener(`click`,()=>e.remove()),e.append(t,n,r,i),e}function F(){let e=document.getElementById(`secret-rows`);e&&e.appendChild(P())}async function I(e,t){try{let n=(await x(`/api/cloud/cone-config?sandboxId=`+encodeURIComponent(t),{method:`GET`})).coneConfigIndex,r=e.querySelector(`.manage-panel`);if(r){r.remove();return}let a=document.createElement(`div`);a.className=`manage-panel`;let s=document.createElement(`div`);s.textContent=`Current model: `+(n?.model||`none`),a.appendChild(s);let c=document.createElement(`select`);if(c.className=`manage-model-select`,j(c,i(A(),w()),``,`Keep current model`),a.appendChild(c),n?.accountProviderIds?.length){let e=document.createElement(`div`);e.textContent=`Connected accounts:`,e.style.marginTop=`10px`,e.style.fontWeight=`bold`,a.appendChild(e);for(let e of n.accountProviderIds){let t=document.createElement(`label`),n=document.createElement(`input`);n.type=`checkbox`,n.className=`delete-account-checkbox`,n.dataset.providerId=e,t.appendChild(n),t.appendChild(document.createTextNode(` Delete `+e)),a.appendChild(t),a.appendChild(document.createElement(`br`))}}if(n?.secretNames?.length){let e=document.createElement(`div`);e.textContent=`Secrets:`,e.style.marginTop=`10px`,e.style.fontWeight=`bold`,a.appendChild(e);for(let e of n.secretNames){let t=document.createElement(`label`),n=document.createElement(`input`);n.type=`checkbox`,n.className=`delete-secret-checkbox`,n.dataset.secretName=e,t.appendChild(n),t.appendChild(document.createTextNode(` Delete `+e)),a.appendChild(t),a.appendChild(document.createElement(`br`))}}let u=document.createElement(`div`);u.textContent=`Add secret:`,u.style.marginTop=`10px`,u.style.fontWeight=`bold`,a.appendChild(u);let d=document.createElement(`div`);d.className=`add-secret-rows`,a.appendChild(d);let f=document.createElement(`button`);f.textContent=`Add secret row`,f.addEventListener(`click`,()=>d.appendChild(P())),a.appendChild(f);let p=document.createElement(`button`);p.textContent=`Reconnect / set model`,p.style.marginTop=`10px`,p.addEventListener(`click`,()=>{window.open(`/?connect=1`,`slicc-connect`,`width=520,height=720`)}),a.appendChild(p);let m=document.createElement(`button`);m.textContent=`Apply on resume`,m.style.marginTop=`10px`,m.addEventListener(`click`,async()=>{try{let e=c.value||``,n=Array.from(a.querySelectorAll(`.delete-account-checkbox:checked`)).map(e=>e.dataset.providerId),r=Array.from(a.querySelectorAll(`.delete-secret-checkbox:checked`)).map(e=>e.dataset.secretName),i=Array.from(a.querySelectorAll(`.add-secret-rows .secret-row`)).map(e=>({name:e.querySelector(`.s-name`)?.value||``,value:e.querySelector(`.s-value`)?.value||``,domains:e.querySelector(`.s-domains`)?.value||``})),s=JSON.parse(localStorage.getItem(`slicc_accounts`)||`[]`),u=o({selectedProviderIds:s.map(e=>e.providerId),allAccounts:s,secretRows:i});u.length>0&&_(u.join(` `));let d=l({model:e,upsertAccounts:s,upsertSecretRows:i,deleteProviderIds:n,deleteSecretNames:r});await x(`/api/cloud/resume`,{method:`POST`,body:JSON.stringify({sandboxId:t,coneConfigDelta:d})}),_(`Configuration updated - will apply on next resume`),a.remove(),await L()}catch(e){_(`Apply failed: `+e.message)}}),a.appendChild(m);let h=document.createElement(`button`);h.textContent=`Close`,h.style.marginTop=`10px`,h.addEventListener(`click`,()=>a.remove()),a.appendChild(h),e.appendChild(a)}catch(e){_(`Manage failed: `+e.message)}}async function L(){try{C((await x(`/api/cloud/list`)).cones||[])}catch(e){e.message!==`unauthorized`&&_(`List failed: `+e.message)}}var R=new Map,z={pause:{label:`Pausing…`,path:`/api/cloud/pause`,confirm:null},resume:{label:`Resuming…`,path:`/api/cloud/resume`,confirm:null},kill:{label:`Killing…`,path:`/api/cloud/kill`,confirm:`Kill this cone? This cannot be undone.`}};function B(e,t){e.classList.add(`cone--busy`);for(let t of e.querySelectorAll(`button`))t.disabled=!0;let n=e.querySelector(`.cone-busy-badge`);if(!n){n=document.createElement(`span`),n.className=`cone-busy-badge`;let t=e.querySelector(`.status`);t&&t.appendChild(n)}n.textContent=` · `+t}async function V(e,t,n){let r=z[n];if(r&&!(r.confirm&&!confirm(r.confirm))){R.set(t,r.label),B(e,r.label);try{let e={sandboxId:t};if(n===`resume`){let t=c(w());Object.keys(t).length>0&&(e.coneConfigDelta=t)}await x(r.path,{method:`POST`,body:JSON.stringify(e)})}catch(e){_(n.charAt(0).toUpperCase()+n.slice(1)+` failed: `+e.message)}finally{R.delete(t),await L()}}}document.getElementById(`sign-in-btn`).addEventListener(`click`,async()=>{try{await b(),v(),N(),await L()}catch(e){_(`Sign-in failed: `+e.message)}}),document.getElementById(`sign-out-btn`).addEventListener(`click`,async()=>{let e=m();if(e)try{await fetch(`/api/cloud/sign-out`,{method:`POST`,headers:{Authorization:`Bearer ${e}`}})}catch{}g(),y()});var H=document.getElementById(`create-btn`);H.addEventListener(`click`,async()=>{if(H.disabled)return;let e=document.getElementById(`cone-name`),t=document.getElementById(`create-status`),n=document.getElementById(`cone-model`),r=e.value.trim()||void 0,i=n?.value;if(!i){_(`Please select a model.`);return}let c=w();if(c.length===0){_(`Connect a provider before creating a cone.`);return}let l=c.map(e=>e.providerId),u=Array.from(document.querySelectorAll(`#secret-rows .secret-row`)).map(e=>({name:e.querySelector(`.s-name`)?.value||``,value:e.querySelector(`.s-value`)?.value||``,domains:e.querySelector(`.s-domains`)?.value||``}));if(!s(i,l,[`local`])){_(`Selected model needs a connected account for its provider.`);return}let d=o({selectedProviderIds:l,allAccounts:c,secretRows:u});d.length>0&&_(d.join(` `));let f=a({model:i,selectedProviderIds:l,allAccounts:c,secretRows:u}),p=H.textContent;H.disabled=!0,H.textContent=`Starting…`,t.textContent=`creating cone (this can take 30s)…`;try{let n=await x(`/api/cloud/start`,{method:`POST`,body:JSON.stringify({name:r,coneConfig:f})});t.textContent=`ready`,e.value=``,await L(),n.joinUrl&&window.open(n.joinUrl,`_blank`,`noopener,noreferrer`)}catch(e){_(`Create failed: `+e.message),t.textContent=``}finally{H.disabled=!1,H.textContent=p,setTimeout(()=>t.textContent=``,3e3)}}),window.addEventListener(`focus`,()=>{m()&&(L(),N())}),document.getElementById(`add-secret`)?.addEventListener(`click`,F),document.getElementById(`add-adobe-btn`)?.addEventListener(`click`,()=>{k(!0),N()}),document.getElementById(`connect-btn`)?.addEventListener(`click`,()=>{window.open(`/?connect=1`,`slicc-connect`,`width=520,height=720`)});var U=document.getElementById(`sign-in-btn`);U.disabled=!0,U.textContent=`Loading…`,p().then(()=>{U.disabled=!1,U.textContent=`Sign in with Adobe`,m()?(v(),N(),L()):y()}).catch(e=>{U.textContent=`Config error`,_(`Could not load IMS config: `+e.message),y()});