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.
- package/dist/ui/assets/__vite-browser-external-5eBdwsFd.js +1 -0
- package/dist/ui/assets/__vite-browser-external-CjLuCwpB.js +1 -0
- package/dist/ui/assets/account-store-83ArXgcG.js +42 -0
- package/dist/ui/assets/{account-store-DSnxgLNJ.js → account-store-kT7dgbK1.js} +29 -30
- package/dist/ui/assets/{adobe-aVpBhLYj.js → adobe-DNQ-ZwRM.js} +1 -1
- package/dist/ui/assets/{adobe-B4F29JMY.js → adobe-zuiYZmoY.js} +2 -2
- package/dist/ui/assets/{agent-message-to-chat-ri8Fr4Sv.js → agent-message-to-chat-BiQK7aJN.js} +1 -1
- package/dist/ui/assets/{anthropic-messages-BqlIV27l.js → anthropic-messages-CwKCE8PD.js} +5 -5
- package/dist/ui/assets/{anthropic-messages-BbI5c8JA.js → anthropic-messages-DPd961JX.js} +5 -5
- package/dist/ui/assets/{apply-layout-CL9CFQ5a.js → apply-layout-C2kPr85z.js} +1 -1
- package/dist/ui/assets/{apps-BNY-jyyh.js → apps-9Wc94FyY.js} +1 -1
- package/dist/ui/assets/{azure-openai-CuHIvNwE.js → azure-openai-B_GFx6XQ.js} +1 -1
- package/dist/ui/assets/{azure-openai-TFQRhgO4.js → azure-openai-BgLRuXUh.js} +1 -1
- package/dist/ui/assets/{azure-openai-responses-DOqakjfa.js → azure-openai-responses-CtOKUN00.js} +1 -1
- package/dist/ui/assets/{azure-openai-responses-C1EEdmtw.js → azure-openai-responses-oRGXQA3K.js} +1 -1
- package/dist/ui/assets/backend-local-Btkv66jT.js +1 -0
- package/dist/ui/assets/{bedrock-camp-CVX95quY.js → bedrock-camp-BDCjQMZx.js} +1 -1
- package/dist/ui/assets/{bedrock-camp-CHi38ceE.js → bedrock-camp-CFmElpzZ.js} +1 -1
- package/dist/ui/assets/{bridge-launch-params-BUV5qlt9.js → bridge-launch-params-B8x2eq4a.js} +1 -1
- package/dist/ui/assets/browser-BCEjSsoK.js +507 -0
- package/dist/ui/assets/{bsh-watchdog-BTqRxbnH.js → bsh-watchdog-BWoQ4vxy.js} +1 -1
- package/dist/ui/assets/{cdp-Cq-O2ziO.js → cdp-CUhn-e9o.js} +2 -2
- package/dist/ui/assets/{cerebras-BElG8qkN.js → cerebras-ClJjxDeF.js} +1 -1
- package/dist/ui/assets/{cerebras-CD6QquBf.js → cerebras-Dfkzn36I.js} +1 -1
- package/dist/ui/assets/{chat-session-store-DQztDoVa.js → chat-session-store-pWb1-jNp.js} +1 -1
- package/dist/ui/assets/{client-CAAAFAry.js → client-6mRSLafV.js} +2 -2
- package/dist/ui/assets/{clipboard-Bd1Wp2vH.js → clipboard-CknViQHB.js} +1 -1
- package/dist/ui/assets/{clipboard-DuHpK59o.js → clipboard-eqmn97SP.js} +1 -1
- package/dist/ui/assets/cloud--vyq2RIF.js +1 -0
- package/dist/ui/assets/{compat-BhgG-Qr-.js → compat-Bn8HnC3L.js} +2 -2
- package/dist/ui/assets/completionchunk-CVTjxyMe.js +65 -0
- package/dist/ui/assets/completionchunk-CksvMkXE.js +65 -0
- package/dist/ui/assets/{composer-speech-RdAxri_8.js → composer-speech-Dra2KNlH.js} +1 -1
- package/dist/ui/assets/{connect-surface-DKvZ8P01.js → connect-surface-KToYOy7V.js} +1 -1
- package/dist/ui/assets/{context-compaction-gzCxn8vG.js → context-compaction-DDaM9TWa.js} +1 -1
- package/dist/ui/assets/{cost-command-_BMgmnMI.js → cost-command-C9faxPNJ.js} +89 -89
- package/dist/ui/assets/{db-ysOO0kLr.js → db-C7OEVMWU.js} +1 -1
- package/dist/ui/assets/{dictation-priming-DGpw1lUV.js → dictation-priming-CNllGgNq.js} +1 -1
- package/dist/ui/assets/{dip-ByAv1QK8.js → dip-rdFXauwM.js} +3 -3
- package/dist/ui/assets/{discovery-preference-iXjdZZE6.js → discovery-preference-yvSQLIqD.js} +1 -1
- package/dist/ui/assets/{dist-d2CXjMIs.js → dist-5RJPBUGc.js} +3 -3
- package/dist/ui/assets/dist-B6I69VMa.js +12 -0
- package/dist/ui/assets/{dist-DB-MlM2G.js → dist-BoNLlUTL.js} +1 -1
- package/dist/ui/assets/{dist-Cc2eS9kS.js → dist-CZvQ4trc.js} +1 -1
- package/dist/ui/assets/dist-CxSRk4im.js +12 -0
- package/dist/ui/assets/dist-DMHgMRaU.js +23 -0
- package/dist/ui/assets/dist-DZD_Ug0d.js +18 -0
- package/dist/ui/assets/dist-DdMcRgpc.js +1 -0
- package/dist/ui/assets/dist-DeB2d2N0.js +2 -0
- package/dist/ui/assets/dist-DwW10w3V.js +2 -0
- package/dist/ui/assets/{ensure-speech-assets-DNIhbHym.js → ensure-speech-assets-B1XhikvN.js} +1 -1
- package/dist/ui/assets/es-D8T2ybXa.js +53 -0
- package/dist/ui/assets/{esbuild-wasm-CUz5LFrh.js → esbuild-wasm-CpCoMVKF.js} +3 -3
- package/dist/ui/assets/{esp32-D9ZurRwV.js → esp32-CoFXh-8H.js} +1 -1
- package/dist/ui/assets/{esp32c2-F0yCL7ES.js → esp32c2-UqsEoF9x.js} +1 -1
- package/dist/ui/assets/{esp32c3-wVAODszM.js → esp32c3-mMBDP9Jj.js} +1 -1
- package/dist/ui/assets/{esp32c5-ChTI-uFN.js → esp32c5-Bab14vpV.js} +1 -1
- package/dist/ui/assets/{esp32c6-IwoGEmKl.js → esp32c6-CCFSaC3T.js} +1 -1
- package/dist/ui/assets/{esp32c61-BJScMw70.js → esp32c61-Cy6rcWHq.js} +1 -1
- package/dist/ui/assets/{esp32h2-YosZEx9u.js → esp32h2-Cru1Ipjy.js} +1 -1
- package/dist/ui/assets/{esp32p4-BSe822vW.js → esp32p4-BGRZ91N9.js} +1 -1
- package/dist/ui/assets/{esp32s2-Dhlhu16A.js → esp32s2-7_BqiXe-.js} +1 -1
- package/dist/ui/assets/{esp32s3-PqxbnxPZ.js → esp32s3-C4XCo2Gh.js} +1 -1
- package/dist/ui/assets/{esp8266-CkAPDkuz.js → esp8266-BN3fFVWu.js} +1 -1
- package/dist/ui/assets/esptool-operations-3FBbK-fD.js +13 -0
- package/dist/ui/assets/esptool-operations-CDJhOTdU.js +12 -0
- package/dist/ui/assets/export-provider-BEHTjSYw.js +1 -0
- package/dist/ui/assets/{export-spool-Crzaptz9.js → export-spool-D9AiwWeo.js} +1 -1
- package/dist/ui/assets/{extension-bridge-transport-CR4Zp6Gm.js → extension-bridge-transport-D3PItLFo.js} +1 -1
- package/dist/ui/assets/{follower-navigate-watcher-DiTsLLuL.js → follower-navigate-watcher-DZpXL_9_.js} +1 -1
- package/dist/ui/assets/{frozen-archive-format-CqpMlNNW.js → frozen-archive-format--7sONywg.js} +1 -1
- package/dist/ui/assets/fs-DFJ4DSye.js +2 -0
- package/dist/ui/assets/fs-DxtSbYUW.js +1 -0
- package/dist/ui/assets/{git-config-Lj0BT7Oc.js → git-config-DA8M5e8O.js} +1 -1
- package/dist/ui/assets/{github-BJpGp9-C.js → github-BBloGIFx.js} +1 -1
- package/dist/ui/assets/{github-DC0sZ4bk.js → github-C_GVZ6np.js} +2 -2
- package/dist/ui/assets/github-copilot-BNWLcrkC.js +2 -0
- package/dist/ui/assets/github-copilot-D32KFpVZ.js +1 -0
- package/dist/ui/assets/global-db-DJXlpNui.js +1 -0
- package/dist/ui/assets/{google-generative-ai-BjzUffX7.js → google-generative-ai-BL_SqY5W.js} +1 -1
- package/dist/ui/assets/{google-generative-ai-CUyKfom8.js → google-generative-ai-DDF2tpZq.js} +1 -1
- package/dist/ui/assets/google-shared-DPuPo5mO.js +11 -0
- package/dist/ui/assets/{google-shared-Bvf-cbUv.js → google-shared-biiFuSpC.js} +11 -11
- package/dist/ui/assets/{google-vertex-Dc8m8x5E.js → google-vertex-CobhNXpX.js} +1 -1
- package/dist/ui/assets/{google-vertex-Bf_2YfBL.js → google-vertex-VXUUgM7o.js} +1 -1
- package/dist/ui/assets/{handoff-link-Da4o0fy_.js → handoff-link-BM4ctkE8.js} +1 -1
- package/dist/ui/assets/{hear-DvsWQaq8.js → hear-D4UPc-6X.js} +1 -1
- package/dist/ui/assets/{hear-Sb2Ceuh0.js → hear-RuX7zwTc.js} +1 -1
- package/dist/ui/assets/{hid-device-registry-DboUgvzI.js → hid-device-registry-B2R-0rNt.js} +1 -1
- package/dist/ui/assets/{icons-CXqRAmcw.js → icons-DtQGhvkp.js} +1 -1
- package/dist/ui/assets/installer-gqTicFFT.js +3 -0
- package/dist/ui/assets/{intercepted-oauth-CaCw-rJ5.js → intercepted-oauth-BIKnTjZm.js} +1 -1
- package/dist/ui/assets/js-realm-worker-BxtK9KWr.js +48 -0
- package/dist/ui/assets/{json-parse-rb7sUwcH.js → json-parse-CgFfIg4Q.js} +1 -1
- package/dist/ui/assets/{json-parse-CpLf0aqK.js → json-parse-ClXMvBdK.js} +1 -1
- package/dist/ui/assets/{kernel-worker-Dt7EHlGw.js → kernel-worker-j7zGoPh1.js} +333 -333
- package/dist/ui/assets/{kokoro-D3TYeL2z.js → kokoro-Bs5vU5OU.js} +2 -2
- package/dist/ui/assets/{kokoro-CGDCwNNA.js → kokoro-CZ21zrzj.js} +2 -2
- package/dist/ui/assets/kokoro-engine-tWznaclV.js +2 -0
- package/dist/ui/assets/{layout-schema-UznNUt3s.js → layout-schema-m9_VAwOw.js} +1 -1
- package/dist/ui/assets/{legacy-api-aliases-MR6kosFL.js → legacy-api-aliases-BVP0Ho8x.js} +1 -1
- package/dist/ui/assets/{legacy-api-aliases-DrEKVikN.js → legacy-api-aliases-DAkrHYf9.js} +1 -1
- package/dist/ui/assets/lick-manager-GJgyahla.js +2 -0
- package/dist/ui/assets/{lick-manager-proxy-DCbHSHHW.js → lick-manager-proxy-Bhx3Yzp_.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-B21s2Gwz.js → lick-ws-bridge-BBdRwJ-f.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-CCkYp7oZ.js → lick-ws-bridge-D_e6wRPA.js} +1 -1
- package/dist/ui/assets/{local-llm-BMxjY1yj.js → local-llm-94vIZ8EZ.js} +1 -1
- package/dist/ui/assets/{local-llm-B5AVGYUF.js → local-llm-BjVTQ79x.js} +1 -1
- package/dist/ui/assets/magick-wasm-7Gy4Vlf5.js +43 -0
- package/dist/ui/assets/{main-BSRWdc5y.js → main-BnxdqsG0.js} +3 -3
- package/dist/ui/assets/{main-cherry-cNBZXAMR.js → main-cherry-B3C0ufyv.js} +1 -1
- package/dist/ui/assets/mistral-conversations-Cyp2kssI.js +7 -0
- package/dist/ui/assets/mistral-conversations-gFwkX5N9.js +8 -0
- package/dist/ui/assets/models-DgdVqaw5.js +1 -0
- package/dist/ui/assets/{modulepreload-polyfill-Dezn_h7o.js → modulepreload-polyfill-P2Xu9kJm.js} +1 -1
- package/dist/ui/assets/{mount-CtYCS7Kp.js → mount-C3IXcaX8.js} +1 -1
- package/dist/ui/assets/mount-DrM3EVg_.js +2 -0
- package/dist/ui/assets/{mount-bridge-client-CKo6gJ0u.js → mount-bridge-client-DkyfUm3y.js} +1 -1
- package/dist/ui/assets/{mount-picker-popup-Bs1o43Z5.js → mount-picker-popup-CSSC05JS.js} +1 -1
- package/dist/ui/assets/{mount-recovery-CVPqfGPu.js → mount-recovery-Clm4-rrM.js} +1 -1
- package/dist/ui/assets/{mount-table-store-CTrzlrNn.js → mount-table-store-DrF_Ifaz.js} +1 -1
- package/dist/ui/assets/{mount-table-store-CfQUN_2R.js → mount-table-store-dY2IfQ5S.js} +1 -1
- package/dist/ui/assets/{navigation-watcher-murqPsVd.js → navigation-watcher-CcKsLKw9.js} +1 -1
- package/dist/ui/assets/{new-session-BRFuxbD1.js → new-session-ijH03Ean.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-DIOIJH9f.js → oauth-bootstrap-bjPfgAcZ.js} +2 -2
- package/dist/ui/assets/oauth-service-CZJntwco.js +1 -0
- package/dist/ui/assets/{oauth-service-D0NOHMOb.js → oauth-service-CeFviz7O.js} +1 -1
- package/dist/ui/assets/{onboarding-orchestrator-cZ36aqC6.js → onboarding-orchestrator-CfHysx6n.js} +1 -1
- package/dist/ui/assets/{openai-BxFF4GUL.js → openai-DQxsE__c.js} +2 -2
- package/dist/ui/assets/{openai-CmTnPr9N.js → openai-DehfWK3N.js} +2 -2
- package/dist/ui/assets/{openai-codex-D4ja7gqs.js → openai-codex-Cm4CJsUN.js} +1 -1
- package/dist/ui/assets/{openai-codex-CI5IjhwE.js → openai-codex-Cxt9UfIy.js} +1 -1
- package/dist/ui/assets/{openai-codex-responses-CLGX-aTS.js → openai-codex-responses-BJOy6BEd.js} +2 -2
- package/dist/ui/assets/{openai-codex-responses-BdgEOEuS.js → openai-codex-responses-BfT5s3yO.js} +1 -1
- package/dist/ui/assets/{openai-completions-BnbrI3UF.js → openai-completions-CmslRX3-.js} +2 -2
- package/dist/ui/assets/{openai-completions-DgBXkZQB.js → openai-completions-DDas47cy.js} +2 -2
- package/dist/ui/assets/{openai-responses-ltU_A4Wo.js → openai-responses-CHXkcom_.js} +1 -1
- package/dist/ui/assets/{openai-responses-BCmB_39F.js → openai-responses-DWlnQ-B0.js} +1 -1
- package/dist/ui/assets/{openai-responses-shared-BhTvPbKN.js → openai-responses-shared-DajOm-sC.js} +1 -1
- package/dist/ui/assets/{openai-responses-shared-ULQmXcCD.js → openai-responses-shared-uSSusU2w.js} +1 -1
- package/dist/ui/assets/{openrouter-pYhQBFuU.js → openrouter-D6y7V9p0.js} +1 -1
- package/dist/ui/assets/{openrouter-images-HP0r87fI.js → openrouter-images-7cFnqg4_.js} +1 -1
- package/dist/ui/assets/{openrouter-images-1178rM_U.js → openrouter-images-eEy7Fej8.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-BfOn7a34.js → openrouter-oauth-DY8uKhfy.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-Cfl_HRtC.js → openrouter-oauth-y_6J1_DN.js} +1 -1
- package/dist/ui/assets/{openrouter-5QNOix7C.js → openrouter-rQ2VoktS.js} +1 -1
- package/dist/ui/assets/{otel-BJT2f71U.js → otel-BVv11zKU.js} +1 -1
- package/dist/ui/assets/{otel-DHVJhmnv.js → otel-BZA5WuO2.js} +1 -1
- package/dist/ui/assets/{panel-rpc-DmJSNs0I.js → panel-rpc-B3MSVImO.js} +1 -1
- package/dist/ui/assets/{panel-rpc-CjFVE0nK.js → panel-rpc-BPwAqRch.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-CigsG2O9.js → panel-rpc-handlers-PM8PHRH-.js} +2 -2
- package/dist/ui/assets/{panelize-shell-irQskG_h.js → panelize-shell-CgDNoGLr.js} +2 -2
- package/dist/ui/assets/{path-utils-DU6QhF_k.js → path-utils-Rm3AltuN.js} +1 -1
- package/dist/ui/assets/{pdfjs-B1saeD0h.js → pdfjs-CRuE4vGw.js} +6 -6
- package/dist/ui/assets/{pi-messages-CrwvmK0e.js → pi-messages-BBQ5JcSR.js} +1 -1
- package/dist/ui/assets/{pi-messages-BcCsdrH5.js → pi-messages-t5nvJxiW.js} +1 -1
- package/dist/ui/assets/{port-bridge-client-DXYvHFiB.js → port-bridge-client-74e4m7Ur.js} +1 -1
- package/dist/ui/assets/{port-bridge-client-B64OCgRQ.js → port-bridge-client-Bg6_jjLD.js} +2 -2
- package/dist/ui/assets/process-manager-unCzdHp3.js +1 -0
- package/dist/ui/assets/{provider-CkMg-hGa.js → provider-B8Mkh-VX.js} +2 -2
- package/dist/ui/assets/provider-CA0u-FlI.js +1 -0
- package/dist/ui/assets/{provider-env-D37PhSJu.js → provider-env-CILujRmO.js} +1 -1
- package/dist/ui/assets/{provider-env-DwY8YuMk.js → provider-env-CTOcDKrQ.js} +1 -1
- package/dist/ui/assets/provider-settings-CY15hvGv.js +2 -0
- package/dist/ui/assets/{provider-settings-BgRoRncG.js → provider-settings-x1DCmyHF.js} +1 -1
- package/dist/ui/assets/{provider-store-access-BnjM-WlQ.js → provider-store-access-BWbARrZ_.js} +2 -2
- package/dist/ui/assets/provider-store-access-Bwt56dfX.js +1 -0
- package/dist/ui/assets/providers-B98ueIFT.js +2 -0
- package/dist/ui/assets/{providers-Cq_dXOsh.js → providers-C0_DGG8n.js} +1 -1
- package/dist/ui/assets/{proxied-fetch-GabK83LB.js → proxied-fetch-CSNzus3d.js} +1 -1
- package/dist/ui/assets/proxied-fetch-ULPrH97b.js +2 -0
- package/dist/ui/assets/py-realm-worker-2nn9AS1F.js +244 -0
- package/dist/ui/assets/pyodide-BlzOFu7J.js +3 -0
- package/dist/ui/assets/pyodide-X83yixXc.js +3 -0
- package/dist/ui/assets/{quick-llm-BizzQ33P.js → quick-llm-AzvUPDDm.js} +1 -1
- package/dist/ui/assets/readline-BOCWRKSR.js +26 -0
- package/dist/ui/assets/{redirect-uri-wvtO7KeZ.js → redirect-uri-BPox4xEV.js} +1 -1
- package/dist/ui/assets/{remote-cache-D59F5FOx.js → remote-cache-JAv9sQH_.js} +1 -1
- package/dist/ui/assets/{remote-cdp-transport-CCzSSZwF.js → remote-cdp-transport-CgOXLjZ8.js} +1 -1
- package/dist/ui/assets/{remote-terminal-view-SZ2_MbCZ.js → remote-terminal-view-DqYuVTcF.js} +2 -2
- package/dist/ui/assets/{remote-vfs-client-Z2qM01yP.js → remote-vfs-client-5faRBsEi.js} +1 -1
- package/dist/ui/assets/rolldown-runtime-Dd_uD5pT.js +1 -0
- package/dist/ui/assets/runtime-mode-BgSVO5sw.js +1 -0
- package/dist/ui/assets/{runtime-mode-jkSDrVfl.js → runtime-mode-OGvKsBi_.js} +1 -1
- package/dist/ui/assets/{safe-buffer-C0pSmFaz.js → safe-buffer-B2wnAhUx.js} +2 -2
- package/dist/ui/assets/{script-catalog-BYXhqRAc.js → script-catalog-e0GUPxAf.js} +1 -1
- package/dist/ui/assets/{secret-env-Cd-AGGPM.js → secret-env-IgYMwYRy.js} +1 -1
- package/dist/ui/assets/{secret-topology-CKyE_tTD.js → secret-topology-DCQNOMWj.js} +1 -1
- package/dist/ui/assets/{secrets-bridge-client-CUeSRcdV.js → secrets-bridge-client-BZMh3a0J.js} +1 -1
- package/dist/ui/assets/{serial-port-registry-DsPZvGpT.js → serial-port-registry-B3LG5UIy.js} +1 -1
- package/dist/ui/assets/{session-freezer-CJhLDR-c.js → session-freezer-z4DJm3zA.js} +3 -3
- package/dist/ui/assets/{setup-feature-flags-remote-D1fJErV0.js → setup-feature-flags-remote-qaXVkshz.js} +1 -1
- package/dist/ui/assets/{setup-sprinkle-exec-CEx4I2ll.js → setup-sprinkle-exec-BX_Qq-Su.js} +2 -2
- package/dist/ui/assets/setup-standalone-prelude-DGfC07wR.js +2 -0
- package/dist/ui/assets/setup-sudo-DfUZKZqy.js +2 -0
- package/dist/ui/assets/{sha256-DmK25X5D.js → sha256-CHfIPo1C.js} +1 -1
- package/dist/ui/assets/shared-D4Q0n73P.js +4 -0
- package/dist/ui/assets/shared-Y4VMjBcs.js +1 -0
- package/dist/ui/assets/{silent-renew-backoff-Chq7fPuc.js → silent-renew-backoff-BrAZcbzt.js} +1 -1
- package/dist/ui/assets/{silent-renew-backoff-HDNNYx7x.js → silent-renew-backoff-tbYCpSw6.js} +1 -1
- package/dist/ui/assets/{skills-9LWceM3i.js → skills-DMzV8gyG.js} +1 -1
- package/dist/ui/assets/slicc-editor-BftG41yg.js +12 -0
- package/dist/ui/assets/speak-DFbF2xgr.js +3 -0
- package/dist/ui/assets/speak-DnN2sfVI.js +1 -0
- package/dist/ui/assets/{sprinkle-bridge-DziYRsuS.js → sprinkle-bridge-RIIOK3yH.js} +1 -1
- package/dist/ui/assets/sprinkle-manager-7WNxOLFK.js +1 -0
- package/dist/ui/assets/sprinkle-op-handler-Bkvm_zYI.js +1 -0
- package/dist/ui/assets/{sprinkle-renderer-DZ_7mdV4.js → sprinkle-renderer-CMk2ghMi.js} +2 -2
- package/dist/ui/assets/sql-wasm-BJoHkdU1.js +2 -0
- package/dist/ui/assets/{src-BStYtmHq.js → src-CAWTvdAa.js} +1 -1
- package/dist/ui/assets/{src-BcePBv4G.js → src-CcFD5QfS.js} +1 -1
- package/dist/ui/assets/{src-C6xNlS_2.js → src-scK1LFrC.js} +88 -88
- package/dist/ui/assets/{store-vg7fWz1Q.js → store-CmbiPzTQ.js} +1 -1
- package/dist/ui/assets/{sudo-D2Na1qHN.js → sudo-i4DiWMNU.js} +3 -3
- package/dist/ui/assets/{sync-dialog-Ie_5SqoO.js → sync-dialog-BXI-Z0QC.js} +1 -1
- package/dist/ui/assets/{terminal-session-client-BZLoutc3.js → terminal-session-client-ADzaWGFd.js} +1 -1
- package/dist/ui/assets/{theme-BOdTMzQ7.js → theme-CXRqxpw6.js} +1 -1
- package/dist/ui/assets/{theme-engine-BMhxbTGC.js → theme-engine-By4GU_Wc.js} +1 -1
- package/dist/ui/assets/{timestamp-preference-DgrTvVNx.js → timestamp-preference-sKwBl5I8.js} +1 -1
- package/dist/ui/assets/{tool-result-images-DwRGZUe_.js → tool-result-images-D8kQ0hH0.js} +1 -1
- package/dist/ui/assets/tool-result-images-Dw3zBAjg.js +1 -0
- package/dist/ui/assets/transcript-limits-Ne0pE4Ui.js +1 -0
- package/dist/ui/assets/{transformers-env-jJU-CdDZ.js → transformers-env-CB72W87T.js} +1 -1
- package/dist/ui/assets/{transformers-env-3dg4iXrc.js → transformers-env-CflaNVb-.js} +1 -1
- package/dist/ui/assets/transformers.web-Cg_-cFJu.js +39 -0
- package/dist/ui/assets/transformers.web-DD4-hssb.js +45 -0
- package/dist/ui/assets/{tray-leader-Btq_ccHy.js → tray-leader-BIbpF_6U.js} +1 -1
- package/dist/ui/assets/{tray-leave-runtime-DyiGVnUI.js → tray-leave-runtime-Bk54j6on.js} +1 -1
- package/dist/ui/assets/{tray-runtime-config-BxjVzwAJ.js → tray-runtime-config-C82czC62.js} +1 -1
- package/dist/ui/assets/{tray-runtime-config-kGqQt9_W.js → tray-runtime-config-qqz7WGyF.js} +1 -1
- package/dist/ui/assets/tray-sync-protocol-BZ5yhJH9.js +1 -0
- package/dist/ui/assets/tray-sync-protocol-BoMM1sx5.js +1 -0
- package/dist/ui/assets/{upgrade-detection-NB58Ti1o.js → upgrade-detection-BWJcWnqA.js} +1 -1
- package/dist/ui/assets/{usb-device-registry-BOGfZXgp.js → usb-device-registry-CRsCisej.js} +1 -1
- package/dist/ui/assets/{usb-operations-BQbhk96u.js → usb-operations-Cgk-otz-.js} +1 -1
- package/dist/ui/assets/{voice-reply-vgvKOdr1.js → voice-reply-AKp1x2Pa.js} +1 -1
- package/dist/ui/assets/{wc-attach-Cqm1S-Dt.js → wc-attach-GJkf0zy_.js} +3 -3
- package/dist/ui/assets/{wc-extension-AsJb1Fvl.js → wc-extension-8-BmnJQe.js} +2 -2
- package/dist/ui/assets/{wc-float-label-hGSM71eZ.js → wc-float-label-tSpScI6q.js} +1 -1
- package/dist/ui/assets/wc-follower-BiiKhzHS.js +17 -0
- package/dist/ui/assets/{wc-follower-model-surface-DJRncbD2.js → wc-follower-model-surface-B3z6dlpJ.js} +1 -1
- package/dist/ui/assets/wc-live-CaE_NPFb.js +8 -0
- package/dist/ui/assets/{wc-nav-DqrCih7F.js → wc-nav-CF8SpfT6.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-CsA3_2-I.js → wc-onboarding-SQURNptm.js} +2 -2
- package/dist/ui/assets/{wc-permissions-DQ4ENBhU.js → wc-permissions-8LUp20Jr.js} +3 -3
- package/dist/ui/assets/{wc-permissions-providers-DMTDytlu.js → wc-permissions-providers-DpoCXfAQ.js} +2 -2
- package/dist/ui/assets/{wc-permissions-registry-Blyunq37.js → wc-permissions-registry-DHel9S61.js} +1 -1
- package/dist/ui/assets/wc-permissions-registry-Dcdmzs0U.js +1 -0
- package/dist/ui/assets/{wc-placeholder-CyqpFwlr.js → wc-placeholder-C1J1HGBa.js} +3 -3
- package/dist/ui/assets/{wc-settings-DQlViRqJ.js → wc-settings-DLReg83a.js} +3 -3
- package/dist/ui/assets/{wc-shell-DYAavWIZ.js → wc-shell-Djy773Zo.js} +7 -7
- package/dist/ui/assets/{wc-sprinkles-3JtSDzFR.js → wc-sprinkles-CcifX3Sy.js} +2 -2
- package/dist/ui/assets/{wc-transcript-export-C4O9AKQ6.js → wc-transcript-export-Bx9ecGAa.js} +2 -2
- package/dist/ui/assets/wc-tray-DgeXvaCs.js +2 -0
- package/dist/ui/assets/wc-tray-scoops-CwSRVd7s.js +5 -0
- package/dist/ui/assets/{welcome-detection-CQY88hjL.js → welcome-detection-sLx_L_gP.js} +1 -1
- package/dist/ui/assets/{whisper-engine-COt17pKd.js → whisper-engine-bquhJqdU.js} +1 -1
- package/dist/ui/assets/{whisper-session-D-oegf5G.js → whisper-session-DoSxCWUe.js} +2 -2
- package/dist/ui/assets/{writable-vfs-client-Cb6FWsgc.js → writable-vfs-client-Dqrpx9iK.js} +1 -1
- package/dist/ui/assets/{ws-subscribers-Dzuxa2F7.js → ws-subscribers-ZoJOTa93.js} +1 -1
- package/dist/ui/assets/{xai-grok-CnlmvtxV.js → xai-grok-B3LQ35Ig.js} +1 -1
- package/dist/ui/assets/{xai-grok-CQ2y4q0K.js → xai-grok-CsonM4jH.js} +1 -1
- package/dist/ui/assets/xterm-BSL5rRqA.js +18 -0
- package/dist/ui/assets/xterm-Diiics17.js +30 -0
- package/dist/ui/index.html +25 -25
- package/dist/ui/packages/webapp/cloud/index.html +2 -2
- package/dist/ui/packages/webapp/index.html +25 -25
- package/package.json +4 -4
- package/dist/ui/assets/__vite-browser-external-Db26C5vr.js +0 -1
- package/dist/ui/assets/__vite-browser-external-SwrSgYTf.js +0 -1
- package/dist/ui/assets/account-store-3ZeQvsHg.js +0 -43
- package/dist/ui/assets/backend-local-smcj-_Ox.js +0 -1
- package/dist/ui/assets/browser-COVn7LPD.js +0 -569
- package/dist/ui/assets/cloud-DhBwfVPK.js +0 -1
- package/dist/ui/assets/completionchunk-CP7I4h3f.js +0 -65
- package/dist/ui/assets/completionchunk-JDMithrI.js +0 -65
- package/dist/ui/assets/dist-0FRaZO2z.js +0 -12
- package/dist/ui/assets/dist-BlzIXVXL.js +0 -2
- package/dist/ui/assets/dist-Bq5i9FMJ.js +0 -12
- package/dist/ui/assets/dist-CJ6ilPeJ.js +0 -18
- package/dist/ui/assets/dist-DIYpvNeF.js +0 -2
- package/dist/ui/assets/dist-DuLHpm2f.js +0 -1
- package/dist/ui/assets/dist-DvjiIrEx.js +0 -23
- package/dist/ui/assets/es-CP2z28j0.js +0 -53
- package/dist/ui/assets/esptool-operations-C0DUkD34.js +0 -13
- package/dist/ui/assets/esptool-operations-iCYPdIRA.js +0 -12
- package/dist/ui/assets/export-provider-CBnhvTR9.js +0 -1
- package/dist/ui/assets/fs-B_EoFRY0.js +0 -2
- package/dist/ui/assets/fs-DAUqRBvb.js +0 -1
- package/dist/ui/assets/github-copilot-CUWzfkgl.js +0 -2
- package/dist/ui/assets/github-copilot-Dz-Ywiz6.js +0 -1
- package/dist/ui/assets/global-db-DvmmimLY.js +0 -1
- package/dist/ui/assets/google-shared-Dh_qL7z7.js +0 -11
- package/dist/ui/assets/installer-DuGbDCC9.js +0 -3
- package/dist/ui/assets/js-realm-worker-dP0mvoSB.js +0 -48
- package/dist/ui/assets/kokoro-engine-DKoaJW2G.js +0 -2
- package/dist/ui/assets/lick-manager-Ce_d4NxJ.js +0 -2
- package/dist/ui/assets/magick-wasm-f6c6OoOu.js +0 -43
- package/dist/ui/assets/mistral-conversations-CkIx9cg4.js +0 -8
- package/dist/ui/assets/mistral-conversations-Ct4-30zw.js +0 -7
- package/dist/ui/assets/models-DmWu8BeM.js +0 -1
- package/dist/ui/assets/mount-DdEqx8Ye.js +0 -2
- package/dist/ui/assets/oauth-service-bKcyWLK0.js +0 -1
- package/dist/ui/assets/process-manager-B5dz0PkO.js +0 -1
- package/dist/ui/assets/provider-settings-CMPKOsv9.js +0 -2
- package/dist/ui/assets/provider-store-access-BIeLrSCN.js +0 -1
- package/dist/ui/assets/provider-w_-ysFRD.js +0 -1
- package/dist/ui/assets/providers-U-BMssjK.js +0 -2
- package/dist/ui/assets/proxied-fetch-A48etSCh.js +0 -2
- package/dist/ui/assets/py-realm-worker-XDviaRpn.js +0 -244
- package/dist/ui/assets/pyodide-CcJEvbeU.js +0 -3
- package/dist/ui/assets/pyodide-DvIxh2Rb.js +0 -3
- package/dist/ui/assets/readline-0OE_8qoR.js +0 -26
- package/dist/ui/assets/rolldown-runtime-aKtaBQYM.js +0 -1
- package/dist/ui/assets/runtime-mode-B91km6KC.js +0 -1
- package/dist/ui/assets/setup-standalone-prelude-bzPDtbad.js +0 -2
- package/dist/ui/assets/setup-sudo-RE__qVVO.js +0 -2
- package/dist/ui/assets/shared-BYVJAPbn.js +0 -1
- package/dist/ui/assets/shared-SS_FwfdN.js +0 -4
- package/dist/ui/assets/slicc-editor-BoIEeofq.js +0 -12
- package/dist/ui/assets/speak-CIzzz0pF.js +0 -3
- package/dist/ui/assets/speak-CrTN7B3e.js +0 -1
- package/dist/ui/assets/sprinkle-manager-DbCWJGba.js +0 -1
- package/dist/ui/assets/sprinkle-op-handler-Dta4p7Tc.js +0 -1
- package/dist/ui/assets/sql-wasm-JpZkOS2Q.js +0 -2
- package/dist/ui/assets/tool-result-images-DlFhKgpw.js +0 -1
- package/dist/ui/assets/transcript-limits-B8212Rg9.js +0 -1
- package/dist/ui/assets/transformers.web-CrioJkWG.js +0 -45
- package/dist/ui/assets/transformers.web-D6viRW2X.js +0 -39
- package/dist/ui/assets/tray-sync-protocol-DtsNjc_8.js +0 -1
- package/dist/ui/assets/tray-sync-protocol-bvejwfjH.js +0 -1
- package/dist/ui/assets/wc-follower-_xrDG9l_.js +0 -17
- package/dist/ui/assets/wc-live-xoWVIMuu.js +0 -8
- package/dist/ui/assets/wc-permissions-registry-C7PhTX3c.js +0 -1
- package/dist/ui/assets/wc-tray-4dIiwvc9.js +0 -2
- package/dist/ui/assets/wc-tray-scoops-Ci8IRu3W.js +0 -5
- package/dist/ui/assets/xterm-DX7Hb5S-.js +0 -47
- 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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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()});
|