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 +0,0 @@
|
|
|
1
|
-
import{i as e,r as t}from"./diagnostics-DN_idNHx.js";import{t as n}from"./preload-helper-Czpn1I53.js";function r(e,t){return{role:`assistant`,content:[],api:e.api,provider:e.provider,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()}}function i(e){return typeof e.result==`function`}async function a(e,t){for await(let n of t)e.push(n);e.end(i(t)?await t.result():void 0)}function o(t,n){let i=new e;return n().then(e=>a(i,e)).catch(e=>{let n=r(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}function s(e){return{stream:(t,n,r)=>o(t,async()=>(await e()).stream(t,n,r)),streamSimple:(t,n,r)=>o(t,async()=>(await e()).streamSimple(t,n,r))}}var c=function(e,t){return typeof e==`string`&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,n,r,i,a){return n?t?`.jsx`:`.js`:r&&(!i||!a)?e:r+i+`.`+a.toLowerCase()+`js`}):e},l=e=>n(()=>import(c(e)),[]);function u(){return globalThis.process?.env}function d(){return{async env(e){let t=u()?.[e];return typeof t==`string`&&t.trim().length>0?t:void 0},async fileExists(e){try{let t=await l(`node:fs/promises`),n=e;return n.startsWith(`~`)&&(n=(await l(`node:os`)).homedir()+n.slice(1)),await t.access(n),!0}catch{return!1}}}}var f=class{credentials=new Map;chains=new Map;enqueue(e,t){let n=this.chains.get(e)??Promise.resolve(),r=(async()=>(await n.catch(()=>{}),t()))();return this.chains.set(e,r.catch(()=>{})),r}async read(e){return this.credentials.get(e)}async list(){return[...this.credentials].map(([e,t])=>({providerId:e,type:t.type}))}modify(e,t){return this.enqueue(e,async()=>{let n=this.credentials.get(e),r=await t(n);return r!==void 0&&this.credentials.set(e,r),r??n})}delete(e){return this.enqueue(e,async()=>{this.credentials.delete(e)})}},p=class extends Error{code;constructor(e,t,n){super(m(t,n?.cause),n),this.name=`ModelsError`,this.code=e}};function m(e,n){if(n==null)return e;let r=t(n).trim();return!r||e.includes(r)?e:`${e}: ${r}`}async function h(e,t,n,r){let i=r?.env?g(n,r.env):n;if(r?.apiKey!==void 0&&e.auth.apiKey)return y(i,e.auth.apiKey,e.id,{type:`api_key`,key:r.apiKey,env:r.env});let a=await b(t,e.id);if(a){if(a.type===`oauth`&&e.auth.oauth)return v(t,e.id,e.auth.oauth,a,r?.minOAuthValidityMs);if(a.type===`api_key`&&e.auth.apiKey){let t=r?.env?{...a,env:{...a.env,...r.env}}:a;return y(i,e.auth.apiKey,e.id,t)}return}return e.auth.apiKey?y(i,e.auth.apiKey,e.id,void 0):void 0}function g(e,t){return{env:async n=>t[n]||await e.env(n),fileExists:t=>e.fileExists(t)}}var _=300*1e3;async function v(e,t,n,r,i){let a=Math.max(_,i??0),o=e=>Date.now()+a>=e.expires,s=r;if(o(s)){let r;try{r=await e.modify(t,async e=>{if(e?.type===`oauth`&&o(e))try{return await n.refresh(e)}catch(e){throw new p(`oauth`,`OAuth refresh failed for ${t}`,{cause:e})}})}catch(e){throw e instanceof p?e:new p(`auth`,`Credential store modify failed for ${t}`,{cause:e})}if(r?.type!==`oauth`)return;if(s=r,i!==void 0&&o(s))throw new p(`oauth`,`OAuth refresh returned a token that expires too soon for ${t}`)}try{return{auth:await n.toAuth(s),source:`OAuth`}}catch(e){throw new p(`oauth`,`OAuth auth derivation failed for ${t}`,{cause:e})}}async function y(e,t,n,r){try{return await t.resolve({ctx:e,credential:r})}catch(e){throw new p(`auth`,`API key auth failed for provider ${n}`,{cause:e})}}async function b(e,t){try{return await e.read(t)}catch(e){throw new p(`auth`,`Credential store read failed for ${t}`,{cause:e})}}var x=class{entries=new Map;async read(e){let t=this.entries.get(e);return t?structuredClone(t):void 0}async write(e,t){this.entries.set(e,structuredClone(t))}async delete(e){this.entries.delete(e)}};function S(e,t){if(!e&&!t)return;let n={...e};for(let[e,r]of Object.entries(t??{})){let t=e.toLowerCase();for(let e of Object.keys(n))e.toLowerCase()===t&&delete n[e];n[e]=r}return n}var C=class{providers=new Map;credentials;modelsStore;authContext;constructor(e){this.credentials=e?.credentials??new f,this.modelsStore=e?.modelsStore??new x,this.authContext=e?.authContext??d()}setProvider(e){this.providers.set(e.id,e)}deleteProvider(e){this.providers.delete(e)}clearProviders(){this.providers.clear()}getProviders(){return Array.from(this.providers.values())}getProvider(e){return this.providers.get(e)}getModels(e){if(e!==void 0){let t=this.providers.get(e);if(!t)return[];try{return t.getModels()}catch{return[]}}let t=[];for(let e of this.providers.values())try{t.push(...e.getModels())}catch{}return t}getModel(e,t){return this.getModels(e).find(e=>e.id===t)}async refresh(e={}){let t=e.allowNetwork??!0,n=new Map,r=Array.from(this.providers.values()).filter(e=>e.refreshModels!==void 0);return await Promise.all(r.map(async r=>{if(e.signal?.aborted)return;let i={read:()=>this.modelsStore.read(r.id),write:e=>this.modelsStore.write(r.id,e),delete:()=>this.modelsStore.delete(r.id)},a;try{a=await this.readCredential(r.id);let n=await this.resolveRefreshCredential(r,a,t,e.signal);if(!n)return;await r.refreshModels({credential:n,store:i,allowNetwork:t,force:e.force,signal:e.signal})}catch(t){e.signal?.aborted||n.set(r.id,t instanceof Error?t:new p(`model_source`,`Model refresh failed for ${r.id}`,{cause:t}));try{await r.refreshModels({credential:a,store:i,allowNetwork:!1,signal:e.signal})}catch{}}})),{aborted:e.signal?.aborted??!1,errors:n}}async resolveRefreshCredential(e,t,n,r){if(t?.type===`oauth`){let i=e.auth.oauth;if(!i)return;if(!n||Date.now()<t.expires)return t;if(r?.aborted)return;let a=await this.credentials.modify(e.id,async e=>{if(!(e?.type!==`oauth`||Date.now()<e.expires))return i.refresh(e,r)});return a?.type===`oauth`?a:void 0}let i=e.auth.apiKey;if(!i)return;let a=t?.type===`api_key`?t:void 0,o=await i.resolve({ctx:this.authContext,credential:a});if(o)return{type:`api_key`,key:o.auth.apiKey,env:o.env}}async readCredential(e){try{return await this.credentials.read(e)}catch(t){throw new p(`auth`,`Credential store read failed for ${e}`,{cause:t})}}async checkProviderAuth(e,t){if(t?.type===`oauth`)return e.auth.oauth?{source:`OAuth`,type:`oauth`}:void 0;let n=e.auth.apiKey;if(!n)return;if(n.check)try{return await n.check({ctx:this.authContext,credential:t?.type===`api_key`?t:void 0})}catch(t){throw new p(`auth`,`API key auth check failed for provider ${e.id}`,{cause:t})}let r=await h(e,this.credentials,this.authContext);return r?{source:r.source,type:`api_key`}:void 0}async checkAuth(e){let t=this.providers.get(e);if(t)return this.checkProviderAuth(t,await this.readCredential(e))}async getAvailable(e){let t=e?[this.providers.get(e)].filter(e=>e!==void 0):this.getProviders();return(await Promise.all(t.map(async e=>{let t=await this.readCredential(e.id);return{provider:e,credential:t,auth:await this.checkProviderAuth(e,t)}}))).flatMap(({provider:e,credential:t,auth:n})=>{if(!n)return[];let r=e.getModels();return e.filterModels?.(r,t)??r})}async getAuth(e,t){let n=typeof e==`string`?e:e.provider,r=this.providers.get(n);if(!r)return;let i=await h(r,this.credentials,this.authContext,t);return!i||typeof e==`string`||!e.headers?i:{...i,auth:{...i.auth,headers:S(i.auth.headers,e.headers)}}}async login(e,t,n){let r=this.providers.get(e);if(!r)throw new p(`provider`,`Unknown provider: ${e}`);let i=t===`oauth`?r.auth.oauth:r.auth.apiKey;if(!i?.login)throw new p(`auth`,`${r.name} does not support ${t} login`);let a=await i.login(n);try{await this.credentials.modify(e,async()=>a)}catch(t){throw new p(`auth`,`Credential store modify failed for ${e}`,{cause:t})}return a}async logout(e){try{await this.credentials.delete(e)}catch(t){throw new p(`auth`,`Credential store delete failed for ${e}`,{cause:t})}}requireProvider(e){let t=this.providers.get(e.provider);if(!t)throw new p(`provider`,`Unknown provider: ${e.provider}`);return t}async applyAuth(e,t){this.requireProvider(e);let n=await this.getAuth(e,{apiKey:t?.apiKey,env:t?.env});if(!n)throw new p(`auth`,`Provider is not configured: ${e.provider}`);let r=n.auth,i=t?.apiKey??r.apiKey,a=S(r.headers,t?.headers);t?.transformHeaders&&(a=await t.transformHeaders(a??{}));let o=n.env||t?.env?{...n.env??{},...t?.env??{}}:void 0,s=r.baseUrl?{...e,baseUrl:r.baseUrl}:e,{transformHeaders:c,...l}=t??{};return{requestModel:s,requestOptions:{...l,apiKey:i,headers:a,env:o}}}stream(e,t,n){return o(e,async()=>{let r=this.requireProvider(e),{requestModel:i,requestOptions:a}=await this.applyAuth(e,n);return r.stream(i,t,a)})}async complete(e,t,n){return this.stream(e,t,n).result()}streamSimple(e,t,n){return o(e,async()=>{let r=this.requireProvider(e),{requestModel:i,requestOptions:a}=await this.applyAuth(e,n);return r.streamSimple(i,t,a)})}async completeSimple(e,t,n){return this.streamSimple(e,t,n).result()}};function w(e){return new C(e)}function T(e){let t=e.models,n=[],r,i=e.fetchModels,a=()=>{let e=[...t];for(let t of n){let n=e.findIndex(e=>e.id===t.id);n>=0?e[n]=t:e.push(t)}return e},s=typeof e.api.stream==`function`?e.api:void 0,c=s?void 0:e.api,l=e=>s??c?.[e.api],u=(t,n)=>{let r=l(t);return r?n(r):o(t,async()=>{throw new p(`stream`,`Provider ${e.id} has no API implementation for "${t.api}"`)})};return{id:e.id,name:e.name??e.id,baseUrl:e.baseUrl,headers:e.headers,auth:e.auth,getModels:a,refreshModels:i?t=>(r??=(async()=>{try{let r=await t.store.read();if(r&&(n=r.models.filter(t=>t.provider===e.id).map(e=>e)),!t.allowNetwork||t.signal?.aborted)return;let a=await i(t);if(t.signal?.aborted)return;n=a,await t.store.write({models:a,checkedAt:Date.now()})}finally{r=void 0}})(),r):void 0,filterModels:e.filterModels,stream:(e,t,n)=>u(e,r=>r.stream(e,t,n)),streamSimple:(e,t,n)=>u(e,r=>r.streamSimple(e,t,n))}}function E(e,t){let n=t.input+t.cacheRead+t.cacheWrite,r=e.cost,i=-1;for(let t of e.cost.tiers??[])n>t.inputTokensAbove&&t.inputTokensAbove>i&&(r=t,i=t.inputTokensAbove);let a=t.cacheWrite1h??0,o=t.cacheWrite-a;return t.cost.input=r.input/1e6*t.input,t.cost.output=r.output/1e6*t.output,t.cost.cacheRead=r.cacheRead/1e6*t.cacheRead,t.cost.cacheWrite=(r.cacheWrite*o+r.input*2*a)/1e6,t.cost.total=t.cost.input+t.cost.output+t.cost.cacheRead+t.cost.cacheWrite,t.cost}var D=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`];function O(e){return e.reasoning?D.filter(t=>{let n=e.thinkingLevelMap?.[t];return n===null?!1:t===`xhigh`||t===`max`?n!==void 0:!0}):[`off`]}function k(e,t){let n=O(e);if(n.includes(t))return t;let r=D.indexOf(t);if(r===-1)return n[0]??`off`;for(let e=r;e<D.length;e++){let t=D[e];if(n.includes(t))return t}for(let e=r-1;e>=0;e--){let t=D[e];if(n.includes(t))return t}return n[0]??`off`}export{s as a,T as i,k as n,w as r,E as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/account-store-3ZeQvsHg.js","assets/rolldown-runtime-aKtaBQYM.js","assets/preload-helper-Czpn1I53.js","assets/compat-BhgG-Qr-.js","assets/models-DmWu8BeM.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-D37PhSJu.js","assets/__vite-browser-external-SwrSgYTf.js","assets/openrouter.models-C8HitxAG.js","assets/context-compaction-gzCxn8vG.js","assets/logger-DDBAeTLF.js","assets/src-BStYtmHq.js","assets/proxied-fetch-A48etSCh.js","assets/base64-DpPqYZJF.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-CKyE_tTD.js","assets/secrets-bridge-client-CUeSRcdV.js","assets/port-bridge-client-B64OCgRQ.js","assets/tool-ui-DfXu6quJ.js","assets/tool-result-images-DwRGZUe_.js","assets/providers-U-BMssjK.js","assets/panel-rpc-DmJSNs0I.js","assets/bedrock-camp-CVX95quY.js","assets/transform-messages-DgR3h-Ck.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./mime-types-ugOWOUZ9.js";import{n,t as r}from"./base64-DpPqYZJF.js";import"./src-BStYtmHq.js";import{o as i,r as a,t as o}from"./proxied-fetch-A48etSCh.js";import{n as s}from"./runtime-env-DH4NDw4t.js";import{t as c}from"./types-idfTVsM8.js";import"./backend-local-smcj-_Ox.js";import"./mount-table-store-CfQUN_2R.js";import{t as l}from"./mount-bridge-client-CKo6gJ0u.js";function u(e,t,n){let r=`----DaMount${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`,i=new TextEncoder,a=i.encode(`--${r}\r\nContent-Disposition: form-data; name="data"; filename="${e}"\r\nContent-Type: ${t}\r\n\r\n`),o=i.encode(`\r\n--${r}--\r\n`),s=new Uint8Array(a.byteLength+n.byteLength+o.byteLength);return s.set(a,0),s.set(n,a.byteLength),s.set(o,a.byteLength+n.byteLength),{contentType:`multipart/form-data; boundary=${r}`,body:s}}function d(e){return e.split(`/`).pop()||`data`}function f(e){let t=e.match(/^da:\/\/([^/]+)\/([^/]+)(?:\/(.*))?$/);if(!t)throw Error(`invalid DA source '${e}' — expected da://org/repo[/path]`);return{org:t[1],repo:t[2],path:(t[3]??``).replace(/^\/+/,``).replace(/\/+$/,``)}}var p=5*1024*1024,m=class{kind=`da`;source;profile;mountId;parsed;cache;maxBodyBytes;transport;closed=!1;constructor(e){this.source=e.source,this.profile=e.profile,this.mountId=e.mountId??crypto.randomUUID(),this.parsed=f(e.source),this.cache=e.cache,this.maxBodyBytes=e.maxBodyBytes??p,this.transport=e.signedFetch}assertOpen(e){if(this.closed)throw new c(`EBADF`,`mount closed`,e)}toMountRelative(e){return e.replace(/^\/+/,``)}toSourcePath(e){let t=e.replace(/^\/+/,``).replace(/\/+$/,``),n=[this.parsed.path,t].filter(e=>e.length>0).join(`/`);return`/source/${this.parsed.org}/${this.parsed.repo}${n?`/${n}`:``}`}toListPath(e){let t=e.replace(/^\/+/,``).replace(/\/+$/,``),n=[this.parsed.path,t].filter(e=>e.length>0).join(`/`);return`/list/${this.parsed.org}/${this.parsed.repo}${n?`/${n}`:``}`}async readFile(e){this.assertOpen(e);let t=this.toMountRelative(e),n=await this.cache.getBody(t);if(n&&!this.cache.isStale(n.cachedAt))return n.body;let r={};n&&(r[`if-none-match`]=n.etag);let i=await this.transport({method:`GET`,path:this.toSourcePath(t),headers:r});if(i.status===304&&n)return await this.cache.putBody(t,n.body,n.etag),n.body;if(i.status===404)throw await this.cache.invalidateBody(t),new c(`ENOENT`,`no such file`,e);if(i.status===401||i.status===403)throw new c(`EACCES`,`da access denied`,e);if(i.status>=400)throw new c(`EIO`,`da readFile failed: ${i.status}`,e);let a=i.headers.get(`content-length`),o=a?Number(a):void 0;if(o!==void 0&&o>this.maxBodyBytes)throw new c(`EFBIG`,`body exceeds maxBodyBytes`,e);let s=new Uint8Array(await i.arrayBuffer());if(s.byteLength>this.maxBodyBytes)throw new c(`EFBIG`,`body exceeds maxBodyBytes`,e);let l=i.headers.get(`etag`)??``,u=l.startsWith(`W/`)?l.slice(2):l;return await this.cache.putBody(t,s,u),s}async writeFile(e,n){if(this.assertOpen(e),n.byteLength>this.maxBodyBytes)throw new c(`EFBIG`,`body exceeds maxBodyBytes`,e);let r=this.toMountRelative(e),i=await this.cache.getBody(r),a=u(d(e),t(e),n),o={"content-type":a.contentType,"content-length":String(a.body.byteLength)};i?.etag?o[`if-match`]=i.etag.startsWith(`W/`)?i.etag.slice(2):i.etag:i||(o[`if-none-match`]=`*`);let s=()=>this.transport({method:`POST`,path:this.toSourcePath(r),headers:o,body:a.body}),l,f=1;try{l=await s()}catch{f=2,l=await s()}if(l.status===412){if(f===2){let t=await this.transport({method:`HEAD`,path:this.toSourcePath(r)});if(t.status>=400)throw new c(`EIO`,`da reconcile HEAD failed: ${t.status}`,e);let i=t.headers.get(`etag`)??``;await this.cache.putBody(r,n,i);let a=r.split(`/`).slice(0,-1).join(`/`);await this.cache.invalidateListing(a);return}await this.cache.invalidateBody(r);try{await this.readFile(e)}catch{}throw new c(`EBUSY`,`remote modified since last read — re-read and retry`,e)}if(l.status===401||l.status===403)throw new c(`EACCES`,`da write denied`,e);if(l.status>=400)throw new c(`EIO`,`da writeFile failed: ${l.status}`,e);let p=l.headers.get(`etag`)??``;await this.cache.putBody(r,n,p);let m=r.split(`/`).slice(0,-1).join(`/`);await this.cache.invalidateListing(m)}async readDir(e){this.assertOpen(e);let t=this.toMountRelative(e).replace(/\/+$/,``),n=await this.cache.getListing(t);if(n&&!this.cache.isStale(n.cachedAt))return n.entries;let r=await this.transport({method:`GET`,path:this.toListPath(t)});if(r.status===404)throw new c(`ENOENT`,`no such directory`,e);if(r.status>=400)throw new c(`EIO`,`da list failed: ${r.status}`,e);let i=(await r.json()).map(e=>e.ext?{name:`${e.name}.${e.ext}`,kind:`file`,etag:e.etag,lastModified:e.lastModified}:{name:e.name,kind:`directory`,lastModified:e.lastModified});return await this.cache.putListing(t,i),i}async stat(e){this.assertOpen(e);let t=this.toMountRelative(e),n=await this.cache.getBody(t);if(n)return{kind:`file`,size:n.size,mtime:n.cachedAt,etag:n.etag};let r=t.split(`/`),i=r.pop()??``,a=r.join(`/`),o=await this.cache.getListing(a);if(o&&!this.cache.isStale(o.cachedAt)){let t=o.entries.find(e=>e.name===i);if(t?.kind===`file`&&t.size!==void 0)return{kind:`file`,size:t.size,mtime:t.lastModified??o.cachedAt,etag:t.etag??``};if(t?.kind===`directory`)return{kind:`directory`,size:0,mtime:t.lastModified??o.cachedAt};if(!t)throw new c(`ENOENT`,`no such file or directory`,e)}let s=await this.transport({method:`HEAD`,path:this.toSourcePath(t)});if(s.status===200){let e=Number(s.headers.get(`content-length`)??`0`),t=s.headers.get(`etag`)??``,n=s.headers.get(`last-modified`),r=n?Date.parse(n):0;if(o){let n=o.entries.map(n=>n.name===i&&n.kind===`file`?{...n,size:e,etag:t,lastModified:r}:n);await this.cache.putListing(a,n)}return{kind:`file`,size:e,mtime:r,etag:t}}if(s.status===404){let n=await this.cache.getListing(t);if(n)return{kind:`directory`,size:0,mtime:n.cachedAt};throw new c(`ENOENT`,`no such file or directory`,e)}throw new c(`EIO`,`da stat failed: ${s.status}`,e)}async mkdir(e){}async remove(e){this.assertOpen(e);let t=this.toMountRelative(e),n=await this.transport({method:`DELETE`,path:this.toSourcePath(t)});if(n.status===404)throw new c(`ENOENT`,`no such file`,e);if(n.status===401||n.status===403)throw new c(`EACCES`,`da delete denied`,e);if(n.status>=400)throw new c(`EIO`,`da delete failed: ${n.status}`,e);await this.cache.invalidateBody(t);let r=t.split(`/`).slice(0,-1).join(`/`);await this.cache.invalidateListing(r)}async refresh(e){this.assertOpen(`/`);let t={added:[],removed:[],changed:[],unchanged:0,errors:[]},n=[``];for(;n.length>0;){let e=n.pop();try{await this.refreshDir(e,t,n)}catch(n){t.errors.push({path:e,message:n instanceof Error?n.message:String(n)})}}return e?.bodies&&await this.refreshBodies(t),t}async classifyFile(e,t,n){let r=await this.cache.getBody(e);r?t&&r.etag!==t?(await this.cache.invalidateBody(e),n.changed.push(e)):n.unchanged++:n.added.push(e)}async refreshDir(e,t,n){let r=await this.transport({method:`GET`,path:this.toListPath(e)});if(r.status>=400){t.errors.push({path:e,message:`list failed: ${r.status}`});return}let i=await r.json(),a=[];for(let r of i)if(r.ext){let n=e?`${e}/${r.name}.${r.ext}`:`${r.name}.${r.ext}`;a.push({name:`${r.name}.${r.ext}`,kind:`file`,etag:r.etag,lastModified:r.lastModified}),await this.classifyFile(n,r.etag,t)}else a.push({name:r.name,kind:`directory`}),n.push(e?`${e}/${r.name}`:r.name);await this.cache.putListing(e,a)}async refreshBodies(e){for(let t of e.changed)try{await this.readFile(t)}catch(n){e.errors.push({path:t,message:n instanceof Error?n.message:String(n)})}}describe(){return{displayName:`${this.parsed.org}/${this.parsed.repo}${this.parsed.path?`/${this.parsed.path}`:``}`,source:this.source,profile:this.profile}}async close(){this.closed||=!0}};function h(e){let t=e.match(/^s3:\/\/([^/]+)(?:\/(.*))?$/);if(!t)throw Error(`invalid S3 source '${e}' — expected s3://bucket[/prefix]`);return{bucket:t[1],prefix:(t[2]??``).replace(/^\/+/,``).replace(/\/+$/,``)}}var g=25*1024*1024,_=class{kind=`s3`;source;profile;mountId;parsed;cache;maxBodyBytes;transport;closed=!1;constructor(e){this.source=e.source,this.profile=e.profile,this.mountId=e.mountId??crypto.randomUUID(),this.parsed=h(e.source),this.cache=e.cache,this.maxBodyBytes=e.maxBodyBytes??g,this.transport=e.signedFetch}assertOpen(e){if(this.closed)throw new c(`EBADF`,`mount closed`,e)}toMountRelative(e){return e.replace(/^\/+/,``)}toS3Key(e){let t=e.replace(/^\/+/,``).replace(/\/+$/,``);return[this.parsed.prefix,t].filter(e=>e.length>0).join(`/`)}toMountRelativeKey(e){return this.parsed.prefix?e.slice(this.parsed.prefix.length+1):e}async readFile(e){this.assertOpen(e);let t=this.toMountRelative(e),n=await this.cache.getBody(t);if(n&&!this.cache.isStale(n.cachedAt))return n.body;let r={};n&&(r[`if-none-match`]=n.etag);let i=await this.transport({method:`GET`,bucket:this.parsed.bucket,key:this.toS3Key(t),headers:r});if(i.status===304&&n)return await this.cache.putBody(t,n.body,n.etag),n.body;if(i.status===404)throw await this.cache.invalidateBody(t),new c(`ENOENT`,`no such file`,e);if(i.status===401||i.status===403)throw new c(`EACCES`,`s3 access denied`,e);if(i.status>=400)throw new c(`EIO`,`s3 readFile failed: ${i.status}`,e);let a=i.headers.get(`content-length`),o=a?Number(a):void 0;if(o!==void 0&&o>this.maxBodyBytes)throw new c(`EFBIG`,`body exceeds maxBodyBytes (${o} > ${this.maxBodyBytes})`,e);let s=new Uint8Array(await i.arrayBuffer());if(s.byteLength>this.maxBodyBytes)throw new c(`EFBIG`,`body exceeds maxBodyBytes`,e);let l=i.headers.get(`etag`)??``;return await this.cache.putBody(t,s,l),s}async writeFile(e,t){this.assertOpen(e);let n=this.toMountRelative(e);if(t.byteLength>this.maxBodyBytes)throw new c(`EFBIG`,`body exceeds maxBodyBytes`,e);let r=await this.cache.getBody(n),i={"content-type":`application/octet-stream`,"content-length":String(t.byteLength)};r?i[`if-match`]=r.etag:i[`if-none-match`]=`*`;let a=()=>this.transport({method:`PUT`,bucket:this.parsed.bucket,key:this.toS3Key(n),headers:i,body:t}),o,s=1;try{o=await a()}catch{s=2,o=await a()}if(o.status===412){if(s===2){let r=await this.transport({method:`HEAD`,bucket:this.parsed.bucket,key:this.toS3Key(n)});if(r.status>=400)throw new c(`EIO`,`s3 reconcile HEAD failed: ${r.status}`,e);let i=r.headers.get(`etag`)??``;await this.cache.putBody(n,t,i);let a=n.split(`/`).slice(0,-1).join(`/`);await this.cache.invalidateListing(a);return}await this.cache.invalidateBody(n);try{await this.readFile(e)}catch{}throw new c(`EBUSY`,`remote modified since last read — re-read and retry`,e)}if(o.status===401||o.status===403)throw new c(`EACCES`,`s3 write denied`,e);if(o.status>=400)throw new c(`EIO`,`s3 writeFile failed: ${o.status}`,e);let l=o.headers.get(`etag`)??``;await this.cache.putBody(n,t,l);let u=n.split(`/`).slice(0,-1).join(`/`);await this.cache.invalidateListing(u)}async listObjectsV2(){let e=[],t;do{let n={"list-type":`2`};this.parsed.prefix&&(n.prefix=`${this.parsed.prefix}/`),t&&(n[`continuation-token`]=t);let r=await this.transport({method:`GET`,bucket:this.parsed.bucket,key:``,query:n});if(r.status>=400)throw new c(`EIO`,`s3 list failed: ${r.status}`,`/`);let i=await r.text(),a=this.parseListingXml(i);e.push(...a.contents),t=a.nextContinuationToken}while(t);return e}parseListingXml(e){let t=[];for(let n of e.matchAll(/<Contents>([\s\S]*?)<\/Contents>/g)){let e=n[1],r=e.match(/<Key>([^<]+)<\/Key>/)?.[1]??``,i=e.match(/<ETag>([^<]+)<\/ETag>/)?.[1]??``,a=e.match(/<Size>([^<]+)<\/Size>/)?.[1]??`0`,o=e.match(/<LastModified>([^<]+)<\/LastModified>/)?.[1]??``;t.push({key:r,etag:i,size:Number(a),lastModified:o?Date.parse(o):0})}return{contents:t,nextContinuationToken:e.match(/<IsTruncated>([^<]+)<\/IsTruncated>/)?.[1]===`true`?e.match(/<NextContinuationToken>([^<]+)<\/NextContinuationToken>/)?.[1]:void 0}}async readDir(e){this.assertOpen(e);let t=this.toMountRelative(e).replace(/\/+$/,``),n=await this.cache.getListing(t);if(n&&!this.cache.isStale(n.cachedAt))return n.entries;let r=await this.listObjectsV2(),i=this.groupByDir(r);for(let[e,t]of i)await this.cache.putListing(e,t);return i.get(t)??[]}groupByDir(e){let t=new Map,n=e=>(t.has(e)||t.set(e,[]),t.get(e));n(``);for(let t of e){let e=this.toMountRelativeKey(t.key).split(`/`),r=e.pop();n(e.join(`/`)).push({name:r,kind:`file`,size:t.size,etag:t.etag,lastModified:t.lastModified});let i=``;for(let t of e){let e=i;i=i?`${i}/${t}`:t;let r=n(e);r.find(e=>e.name===t&&e.kind===`directory`)||r.push({name:t,kind:`directory`}),n(i)}}return t}async stat(e){this.assertOpen(e);let t=this.toMountRelative(e),n=await this.cache.getBody(t);if(n)return{kind:`file`,size:n.body.byteLength,mtime:n.cachedAt,etag:n.etag};let r=t.split(`/`),i=r.pop()??``,a=r.join(`/`),o=await this.cache.getListing(a);if(o&&!this.cache.isStale(o.cachedAt)){let t=o.entries.find(e=>e.name===i);if(t?.kind===`file`&&t.size!==void 0)return{kind:`file`,size:t.size,mtime:t.lastModified??o.cachedAt,etag:t.etag??``};if(t?.kind===`directory`)return{kind:`directory`,size:0,mtime:t.lastModified??o.cachedAt};if(!t)throw new c(`ENOENT`,`no such file or directory`,e)}let s=await this.transport({method:`HEAD`,bucket:this.parsed.bucket,key:this.toS3Key(t)});if(s.status===200){let e=Number(s.headers.get(`content-length`)??`0`),t=s.headers.get(`etag`)??``,n=s.headers.get(`last-modified`);return{kind:`file`,size:e,mtime:n?Date.parse(n):0,etag:t}}if(s.status===404){let n=await this.cache.getListing(t);if(n)return{kind:`directory`,size:0,mtime:n.cachedAt};throw new c(`ENOENT`,`no such file or directory`,e)}throw new c(`EIO`,`s3 stat failed: ${s.status}`,e)}async refresh(e){this.assertOpen(`/`);let t=await this.listObjectsV2(),n=new Set(t.map(e=>this.toMountRelativeKey(e.key))),r=new Map(t.map(e=>[this.toMountRelativeKey(e.key),e.etag])),i={added:[],removed:[],changed:[],unchanged:0,errors:[]};for(let e of n){let t=await this.cache.getBody(e),n=r.get(e);t?t.etag===n?i.unchanged++:(await this.cache.invalidateBody(e),i.changed.push(e)):i.added.push(e)}let a=this.groupByDir(t);for(let[e,t]of a)await this.cache.putListing(e,t);if(e?.bodies)for(let e of i.changed)try{await this.readFile(e)}catch(t){i.errors.push({path:e,message:t instanceof Error?t.message:String(t)})}return i}async mkdir(e){}async remove(e,t){this.assertOpen(e);let n=this.toMountRelative(e);if(t?.recursive)throw new c(`EINVAL`,`recursive remove not yet supported on S3`,e);let r=await this.transport({method:`DELETE`,bucket:this.parsed.bucket,key:this.toS3Key(n)});if(r.status===404)throw new c(`ENOENT`,`no such file`,e);if(r.status===401||r.status===403)throw new c(`EACCES`,`s3 delete denied`,e);if(r.status>=400)throw new c(`EIO`,`s3 delete failed: ${r.status}`,e);await this.cache.invalidateBody(n);let i=n.split(`/`).slice(0,-1).join(`/`);await this.cache.invalidateListing(i)}describe(){return{displayName:this.parsed.prefix?`${this.parsed.bucket}/${this.parsed.prefix}`:this.parsed.bucket,source:this.source,profile:this.profile}}async close(){this.closed||=!0}},v=class extends Error{constructor(e){super(e),this.name=`ProfileNotConfiguredError`}};async function y(){let{getAccounts:t}=await e(async()=>{let{getAccounts:e}=await import(`./account-store-3ZeQvsHg.js`).then(e=>e.r);return{getAccounts:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24])),n=t().find(e=>e.providerId===`adobe`);if(!n?.accessToken)throw new v(`No Adobe IMS account found. Log in via Settings → Providers → Adobe first.`);return{identity:`adobe-ims`,getBearerToken:async()=>n.accessToken}}var b=`slicc-mount-cache`,x=`listings`,S=`bodies`,C=class{mountId;ttlMs;dbName;dbPromise=null;constructor(e){this.mountId=e.mountId,this.ttlMs=e.ttlMs,this.dbName=e.dbName??b}isStale(e,t){return Date.now()-e>=(t??this.ttlMs)}async openDb(){return this.dbPromise||=new Promise((e,t)=>{let n=indexedDB.open(this.dbName,1);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(x)||e.createObjectStore(x),e.objectStoreNames.contains(S)||e.createObjectStore(S)},n.onsuccess=()=>{let t=n.result;t.onversionchange=()=>{t.close(),this.dbPromise=null},t.onclose=()=>{this.dbPromise=null},e(t)},n.onerror=()=>t(n.error)}),this.dbPromise}key(e){return`${this.mountId}::${e}`}async getListing(e){let t=await this.openDb();return new Promise((n,r)=>{let i=t.transaction(x,`readonly`).objectStore(x).get(this.key(e));i.onsuccess=()=>n(i.result??null),i.onerror=()=>r(i.error)})}async putListing(e,t){let n=await this.openDb();return new Promise((r,i)=>{let a=n.transaction(x,`readwrite`),o={entries:t,cachedAt:Date.now()};a.objectStore(x).put(o,this.key(e)),a.oncomplete=()=>r(),a.onerror=()=>i(a.error)})}async invalidateListing(e){let t=await this.openDb();return new Promise((n,r)=>{let i=t.transaction(x,`readwrite`);i.objectStore(x).delete(this.key(e)),i.oncomplete=()=>n(),i.onerror=()=>r(i.error)})}async getBody(e){let t=await this.openDb();return new Promise((n,r)=>{let i=t.transaction(S,`readonly`).objectStore(S).get(this.key(e));i.onsuccess=()=>n(i.result??null),i.onerror=()=>r(i.error)})}async putBody(e,t,n){let r=await this.openDb(),i={body:t,etag:n,size:t.byteLength,cachedAt:Date.now()};try{await this.txPut(r,S,this.key(e),i)}catch(t){if(t instanceof DOMException&&t.name===`QuotaExceededError`){await this.evictLru(.25);try{await this.txPut(r,S,this.key(e),i)}catch{}return}throw t}}async invalidateBody(e){let t=await this.openDb();return new Promise((n,r)=>{let i=t.transaction(S,`readwrite`);i.objectStore(S).delete(this.key(e)),i.oncomplete=()=>n(),i.onerror=()=>r(i.error)})}async clearMount(){let e=await this.openDb(),t=`${this.mountId}::`,n=n=>new Promise((r,i)=>{let a=e.transaction(n,`readwrite`),o=a.objectStore(n),s=o.getAllKeys();s.onsuccess=()=>{for(let e of s.result)typeof e==`string`&&e.startsWith(t)&&o.delete(e)},a.oncomplete=()=>r(),a.onerror=()=>i(a.error)});await Promise.all([n(x),n(S)])}txPut(e,t,n,r){return new Promise((i,a)=>{let o=e.transaction(t,`readwrite`);o.objectStore(t).put(r,n),o.oncomplete=()=>i(),o.onerror=()=>a(o.error)})}async evictLru(e){let t=await this.openDb(),n=`${this.mountId}::`,r=await new Promise((e,r)=>{let i=t.transaction(S,`readonly`).objectStore(S),a=[],o=i.openCursor();o.onsuccess=()=>{let t=o.result;if(!t){e(a);return}if(typeof t.key==`string`&&t.key.startsWith(n)){let e=t.value;a.push({key:t.key,cachedAt:e.cachedAt})}t.continue()},o.onerror=()=>r(o.error)});r.sort((e,t)=>e.cachedAt-t.cachedAt);let i=Math.max(1,Math.ceil(r.length*e)),a=r.slice(0,i);await new Promise((e,n)=>{let r=t.transaction(S,`readwrite`),i=r.objectStore(S);for(let{key:e}of a)i.delete(e);r.oncomplete=()=>e(),r.onerror=()=>n(r.error)})}},w=r,T=n,E=new Set([`invalid_profile`,`invalid_request`,`profile_not_configured`,`fetch_failed`,`internal`]),D=new Set([101,103,204,205,304]);function O(e){if(!e.ok)throw e.errorCode===`profile_not_configured`||e.errorCode===`invalid_profile`?new c(`EACCES`,e.error):e.errorCode===`invalid_request`?new c(`EINVAL`,e.error):e.errorCode===`fetch_failed`||e.errorCode===`internal`||E.has(String(e.errorCode))?new c(`EIO`,e.error):new c(`EINVAL`,`mount transport returned unrecognized errorCode '${e.errorCode}': ${e.error}`);let t;try{t=w(e.bodyBase64)}catch(e){throw new c(`EIO`,`mount transport: response body decode failed: ${e instanceof Error?e.message:String(e)}`)}let n=D.has(e.status)?null:t;return new Response(n,{status:e.status,headers:new Headers(e.headers)})}async function k(e,t){let n;try{n=await fetch(i(e),{method:`POST`,headers:o({"content-type":`application/json`}),body:JSON.stringify(t)})}catch(e){throw new c(`EIO`,`mount transport failed: ${e instanceof Error?e.message:String(e)} (SLICC backend at localhost may not be running)`)}try{return await n.json()}catch(e){throw new c(`EIO`,`mount transport: response is not a JSON envelope (status ${n.status}): ${e instanceof Error?e.message:String(e)}`)}}async function A(e,t){try{return await chrome.runtime.sendMessage({type:e,envelope:t})}catch(e){throw new c(`EIO`,`mount transport failed: ${e instanceof Error?e.message:String(e)} (extension service worker not responding)`)}}async function j(e,t,n){return s()?A(e,n):a()?l(e,n):k(t,n)}function M(e){return async t=>O(await j(`mount.s3-sign-and-forward`,`/api/s3-sign-and-forward`,{profile:e,method:t.method,bucket:t.bucket,key:t.key,query:t.query,headers:t.headers,bodyBase64:t.body?T(t.body):void 0}))}function N(e){let t=e?.getImsToken??(async()=>(await y()).getBearerToken());return async e=>{let n;try{n=await t()}catch(e){throw new c(`EACCES`,`DA mount: ${e instanceof Error?e.message:String(e)}`)}return O(await j(`mount.da-sign-and-forward`,`/api/da-sign-and-forward`,{imsToken:n,method:e.method,path:e.path,query:e.query,headers:e.headers,bodyBase64:e.body?T(e.body):void 0}))}}export{m as DaMountBackend,C as RemoteMountCache,_ as S3MountBackend,N as makeSignedFetchDa,M as makeSignedFetchS3};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./panel-rpc-CjFVE0nK.js";import{s as t,t as n}from"./proxied-fetch-GabK83LB.js";import{t as r}from"./runtime-env-byAg9ij-.js";import{t as i}from"./wc-permissions-registry-C7PhTX3c.js";import{t as a}from"./intercepted-oauth-CaCw-rJ5.js";const o=r();function s(){return o?_:typeof window>`u`?d:f}async function c(){let e=await l();return e?a(e):null}async function l(){try{let{getActiveCdpTransport:e}=await import(`./active-transport-BIjzxdwv.js`);return await e()}catch(e){return console.warn(`[oauth-service] could not resolve active CDP transport:`,e instanceof Error?e.message:String(e)),null}}async function u(){if(typeof window<`u`)return{origin:window.location.origin,href:window.location.href};let t=e();if(!t)throw Error(`OAuth from worker context requires the panel-RPC bridge (no page-info available)`);let n=await t.call(`page-info`,void 0);return{origin:n.origin,href:n.href}}async function d(t){let n=e();if(!n)return console.error(`[oauth-service] panel-RPC client unavailable in worker`),null;try{return(await n.call(`oauth-popup`,{url:t},{timeoutMs:13e4})).redirectUrl}catch(e){return console.error(`[oauth-service] oauth-popup RPC failed:`,e instanceof Error?e.message:String(e)),null}}async function f(e){if(p())return m(window.open(e,`_blank`,`width=500,height=700,popup=yes`));let t=i();if(t){let n=await h(t,e);return n===void 0?null:m(n)}return m(window.open(e,`_blank`,`width=500,height=700,popup=yes`))}function p(){return(typeof navigator<`u`?navigator.userActivation:void 0)?.isActive===!0}function m(e){return new Promise(r=>{let i=!1,a=null,o=null,s=()=>{i||(i=!0,window.removeEventListener(`message`,c),clearTimeout(l),a&&clearInterval(a),o&&clearInterval(o))},c=t=>{if(t.data?.type!==`oauth-callback`||t.origin!==window.location.origin||e&&t.source!==e)return;if(s(),t.data.error){console.error(`[oauth-service] CLI OAuth error:`,t.data.error),r(null);return}let n=t.data.redirectUrl;typeof n!=`string`&&n!=null||r(n??null)};window.addEventListener(`message`,c),a=setInterval(async()=>{if(!i)try{let e=await fetch(t(`/api/oauth-result`),{headers:n()});if(e.status===204||!e.ok)return;let a=await e.json();if(i)return;if(s(),a.error){console.error(`[oauth-service] Server relay OAuth error:`,a.error),r(null);return}r(a.redirectUrl??null)}catch(e){console.warn(`[oauth-service] Poll failed:`,e instanceof Error?e.message:String(e))}},1e3),e&&(o=setInterval(()=>{e.closed&&(clearInterval(o),o=null,setTimeout(()=>{i||(s(),r(null))},1500))},500));let l=setTimeout(()=>{s();try{e?.close()}catch{}r(null)},12e4)})}async function h(e,t){let n=await e.prompt({kinds:[`popup`],description:`Continue to sign in. A new window will open to the provider.`,grantLabel:`Continue`,requestOptions:{popup:{url:t}}});if(n.status!==`granted`)return;let r=n.grants.find(e=>e.kind===`popup`);return r&&r.kind===`popup`?r.window:null}async function g(e,t=180*1e3){if(typeof window>`u`||o)return;let n=window.open(e,`_blank`,`width=500,height=600,popup=yes`);if(!n){console.warn(`[oauth-service] Could not open IdP logout popup — popups may be blocked`);return}await new Promise(e=>{let r=setTimeout(()=>{clearInterval(i);try{n.close()}catch{}e()},t),i=setInterval(()=>{n.closed&&(clearTimeout(r),clearInterval(i),e())},500)})}async function _(e,t){let n=chrome.runtime;return new Promise(r=>{let i=!1,a=()=>{i||(i=!0,n.onMessage.removeListener(o),clearTimeout(s))},o=e=>{if(typeof e!=`object`||!e)return;let t=e;if(t.source===`service-worker`&&t.payload?.type===`oauth-result`){if(a(),t.payload.error){console.error(`[oauth-service] Extension OAuth error:`,t.payload.error),r(null);return}r(t.payload.redirectUrl??null)}};n.onMessage.addListener(o),n.sendMessage({source:`panel`,payload:{type:`oauth-request`,providerId:`oauth`,authorizeUrl:e,interactive:t?.interactive??!0}}).catch(e=>{console.error(`[oauth-service] Failed to send OAuth request to service worker:`,e)});let s=setTimeout(()=>{a(),r(null)},12e4)})}export{c as createInterceptingOAuthLauncherForCurrentRuntime,s as createOAuthLauncher,u as getOAuthPageOrigin,g as openIdpLogoutUrl};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";var t=e({Gate:()=>n,ProcessManager:()=>o}),n=class{paused=!1;resumePromise=null;resumeResolve=null;released=!1;pause(){this.released||this.paused||(this.paused=!0,this.resumePromise=new Promise(e=>{this.resumeResolve=e}))}resume(){if(!this.paused)return;this.paused=!1;let e=this.resumeResolve;this.resumePromise=null,this.resumeResolve=null,e?.()}wait(){return!this.paused||this.released?Promise.resolve():this.resumePromise}release(){if(this.released)return;this.released=!0,this.paused=!1;let e=this.resumeResolve;this.resumePromise=null,this.resumeResolve=null,e?.()}isPaused(){return this.paused}};const r=1024,i=4294967295,a={SIGINT:130,SIGTERM:143,SIGKILL:137,SIGSTOP:147,SIGCONT:146};var o=class{processes=new Map;nextPid=r;listeners={spawn:new Set,exit:new Set};signalListeners=new Set;spawn(e){let t=this.allocatePid(),r=e.adoptAbort??new AbortController,i={pid:t,ppid:e.ppid??1,kind:e.kind,argv:e.argv.slice(),cwd:e.cwd??`/`,env:{...e.env??{}},owner:{...e.owner},abort:r,gate:new n,startedAt:Date.now(),status:`running`,exitCode:null,terminatedBy:null,finishedAt:null};return this.processes.set(t,i),this.fire(`spawn`,i),i}exit(e,t){let n=this.processes.get(e);n&&(n.status===`exited`||n.status===`killed`||(n.finishedAt=Date.now(),t===null?n.terminatedBy?(n.exitCode=a[n.terminatedBy],n.status=`killed`):(n.exitCode=0,n.status=`exited`):(n.exitCode=t,n.status=n.terminatedBy?`killed`:`exited`),n.gate.release(),this.fire(`exit`,n)))}signal(e,t){let n=this.processes.get(e);if(!n||n.status===`exited`||n.status===`killed`)return!1;let r=this.collectLiveDescendants(e),i=this.deliverSignal(n,t);for(let e of r)this.deliverSignal(e,t);return i}deliverSignal(e,t){return e.status===`exited`||e.status===`killed`?!1:t===`SIGSTOP`?(e.gate.pause(),this.fireSignal(e,t),!0):t===`SIGCONT`?(e.gate.resume(),this.fireSignal(e,t),!0):(t===`SIGKILL`?e.terminatedBy=`SIGKILL`:e.terminatedBy===null&&(e.terminatedBy=t),e.abort.signal.aborted||e.abort.abort(),e.gate.release(),this.fireSignal(e,t),!0)}collectLiveDescendants(e){let t=new Map;for(let e of this.processes.values()){if(e.pid===e.ppid||e.status===`exited`||e.status===`killed`)continue;let n=t.get(e.ppid);n?n.push(e):t.set(e.ppid,[e])}let n=[],r=new Set([e]),i=[e];for(;i.length>0;){let e=i.shift(),a=t.get(e);if(a)for(let e of a)r.has(e.pid)||(r.add(e.pid),n.push(e),i.push(e.pid))}return n}list(){return Array.from(this.processes.values())}get(e){return this.processes.get(e)??null}wait(e){let t=this.processes.get(e);return t?t.status===`exited`||t.status===`killed`?Promise.resolve(t):new Promise(t=>{let n=r=>{r.pid===e&&(this.listeners.exit.delete(n),t(r))};this.listeners.exit.add(n)}):Promise.reject(Error(`pm: no such process: ${e}`))}on(e,t){return this.listeners[e].add(t),()=>{this.listeners[e].delete(t)}}onSignal(e){return this.signalListeners.add(e),()=>{this.signalListeners.delete(e)}}allocatePid(){let e=this.nextPid,t=this.processes.size+1,n=e,a=0;for(;a<=t;){if(!this.processes.has(n))return this.nextPid=n+1>i?r:n+1,n;if(n=n+1>i?r:n+1,a++,n===e)throw Error(`pm: pid space exhausted`)}throw Error(`pm: pid allocation gave up after ${a} probes (table size=${this.processes.size}); the process table is likely corrupt`)}fire(e,t){let n=Array.from(this.listeners[e]);for(let e of n)try{e(t)}catch(e){console.warn(`[pm] listener error`,e)}}fireSignal(e,t){let n=Array.from(this.signalListeners);for(let r of n)try{r(e,t)}catch(e){console.warn(`[pm] signal listener error`,e)}}};export{t as n,o as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/oauth-service-D0NOHMOb.js","assets/preload-helper-Czpn1I53.js","assets/proxied-fetch-A48etSCh.js","assets/rolldown-runtime-aKtaBQYM.js","assets/base64-DpPqYZJF.js","assets/src-BStYtmHq.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/panel-rpc-DmJSNs0I.js","assets/wc-permissions-registry-Blyunq37.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{A as t,B as n,C as r,D as i,E as a,F as o,G as s,H as c,I as l,L as u,M as d,N as f,O as p,P as m,R as h,S as g,T as _,U as v,V as y,W as b,_ as x,a as S,b as C,c as ee,d as w,f as T,g as te,h as ne,i as E,j as re,k as D,l as ie,m as ae,n as oe,o as se,p as ce,s as le,t as ue,u as O,v as de,w as fe,x as pe,y as k,z as me}from"./account-store-3ZeQvsHg.js";import{t as A}from"./preload-helper-Czpn1I53.js";import{t as he}from"./logger-DDBAeTLF.js";import{l as ge}from"./src-BStYtmHq.js";import{c as _e,p as j}from"./tray-runtime-config-BxjVzwAJ.js";import{n as ve}from"./tray-follower-status-5SqDRLX8.js";import{n as M}from"./clipboard-DuHpK59o.js";import{o as N}from"./telemetry-DqIqVG5n.js";import{n as P}from"./tray-join-url-BIvzbiFR.js";var F=e({ACCOUNTS_KEY:()=>ue,__test__:()=>oe,addAccount:()=>E,applyProviderDefaults:()=>S,clearAllSettings:()=>se,clearApiKey:()=>le,clearBaseUrl:()=>ee,clearSelectedProvider:()=>ie,describeInvalidJoinUrl:()=>P,downloadProviders:()=>R,exportProviders:()=>O,getAccounts:()=>w,getAllAvailableModels:()=>T,getAllExtraOAuthDomains:()=>ce,getApiKey:()=>ae,getApiKeyForProvider:()=>ne,getApiVersionForProvider:()=>te,getAvailableProviders:()=>x,getBaseUrl:()=>de,getBaseUrlForProvider:()=>k,getDeploymentForProvider:()=>C,getExtraOAuthDomains:()=>pe,getOAuthAccountInfo:()=>g,getProviderConfig:()=>r,getProviderModels:()=>fe,getRawApiKeyForProvider:()=>_,getSelectedModelId:()=>a,getSelectedProvider:()=>i,isModelHiddenFromPicker:()=>p,logoutOAuthAccount:()=>D,maskOAuthTokenWithRetry:()=>t,migrateLegacyAuthOnlySelection:()=>re,persistOAuthMaskViaServiceWorker:()=>d,providerOffersLlmModels:()=>f,reloginOAuthAccount:()=>G,removeAccount:()=>m,resolveCurrentModel:()=>o,resolveModelById:()=>l,resolveModelByShorthand:()=>u,resolveModelIdForScoop:()=>h,saveOAuthAccount:()=>me,setApiKey:()=>n,setBaseUrl:()=>y,setExtraOAuthDomains:()=>c,setExtraOAuthDomainsAsync:()=>v,setSelectedModelId:()=>b,setSelectedProvider:()=>s,showProviderSettings:()=>$,testOnlyDispatchTrayJoinWithFailureFeedback:()=>ye}),I=he(`provider-settings`);function ye(e,t){return L(e,t)}function L(e,t){let n=`tray-join-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,r=!1,i,a=()=>{r||(r=!0,i!==void 0&&clearTimeout(i),window.removeEventListener(`slicc:tray-join-failed`,o))},o=r=>{let i=r.detail;if(i.requestId!==void 0&&i.requestId!==n)return;if(a(),!t.isConnected){I.error(`Tray-join failure arrived after dialog dismissed (UX swallowed half-state)`,{joinUrl:e,error:i.error,requestId:n});return}let o=t.dataset.dismissTimer;if(o){let e=Number(o);Number.isFinite(e)&&clearTimeout(e),delete t.dataset.dismissTimer}t.textContent=`Sync failed: ${i.error}. Reload the page and try again.`,t.style.color=`var(--slicc-cone)`};return window.addEventListener(`slicc:tray-join-failed`,o),i=setTimeout(a,1e4),window.dispatchEvent(new CustomEvent(`slicc:tray-join`,{detail:{joinUrl:e,requestId:n}})),a}function R(){let e=JSON.stringify(O(),null,2),t=new Blob([e],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`providers.json`,r.click(),URL.revokeObjectURL(n)}function be(e){return e.length<=10?`****`:e.slice(0,4)+`...`+e.slice(-4)}function z(e){let t=`http://www.w3.org/2000/svg`,n=document.createElementNS(t,`svg`);n.setAttribute(`width`,`14`),n.setAttribute(`height`,`14`),n.setAttribute(`viewBox`,`0 0 20 20`),n.setAttribute(`fill`,`none`),n.setAttribute(`stroke`,`currentColor`),n.setAttribute(`stroke-width`,`1.5`),n.setAttribute(`stroke-linecap`,`round`),n.setAttribute(`stroke-linejoin`,`round`);for(let r of e){let e=document.createElementNS(t,`path`);e.setAttribute(`d`,r),n.appendChild(e)}return n}var B={pen:[`M14.3 3.3a1.5 1.5 0 0 1 2.1 0l.3.3a1.5 1.5 0 0 1 0 2.1L7.7 14.8l-3.2.7.7-3.2z`],trash:[`M4 6h12`,`M8 6V4a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2`,`M6 6v10a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V6`],logout:[`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,`M16 17l5-5-5-5`,`M21 12H9`],login:[`M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4`,`M10 17l5-5-5-5`,`M15 12H3`]},V=`background: transparent; border: 1px solid var(--s2-border-subtle); color: var(--s2-content-secondary); border-radius: var(--s2-radius-s); padding: 6px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: color 0.15s, border-color 0.15s;`;function H(e,t){e.addEventListener(`mouseenter`,()=>{e.style.color=t,e.style.borderColor=t}),e.addEventListener(`mouseleave`,()=>{e.style.color=`var(--s2-content-secondary)`,e.style.borderColor=`var(--s2-border-subtle)`})}function U(e){e.overlay.remove(),e.resolve((localStorage.getItem(`slicc_accounts`)??``)!==e.accountsBefore)}function W(e){e.options?.startInAddAccount?U(e):K(e)}function xe(e){let t=document.createElement(`div`);return t.style.cssText=`font-size: 11px; color: var(--s2-content-disabled); font-family: monospace; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;`,e.loggedOut?(t.textContent=e.userName?`Logged out — was ${e.userName}`:`Logged out`,t.style.color=`var(--s2-content-disabled)`):e.userName?t.textContent=e.userName:e.accessToken?t.textContent=`Logged in`:t.textContent=be(e.apiKey),e.baseUrl&&(t.textContent+=` • `+e.baseUrl),t}async function G(e,t){let{createOAuthLauncher:n,createInterceptingOAuthLauncherForCurrentRuntime:r}=await A(async()=>{let{createOAuthLauncher:e,createInterceptingOAuthLauncherForCurrentRuntime:t}=await import(`./oauth-service-D0NOHMOb.js`);return{createOAuthLauncher:e,createInterceptingOAuthLauncherForCurrentRuntime:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),i={forceReauth:!0};if(e.onOAuthLoginIntercepted){let n=await r();n&&await e.onOAuthLoginIntercepted(n,t,i)}else if(e.onOAuthLogin){let r=n();await e.onOAuthLogin(r,t,i)}}function Se(e,t){let n=document.createElement(`button`);return n.style.cssText=V,n.setAttribute(`aria-label`,`Edit account`),n.appendChild(z(B.pen)),H(n,`var(--s2-accent)`),n.addEventListener(`click`,()=>X(e,t)),n}function Ce(e,t,n){let r=document.createElement(`button`);return r.style.cssText=V,t.loggedOut===!0?(r.setAttribute(`aria-label`,`Log in`),r.setAttribute(`title`,`Log in`),r.appendChild(z(B.login)),H(r,`var(--s2-accent)`),r.addEventListener(`click`,()=>{G(n,()=>K(e))})):(r.setAttribute(`aria-label`,`Log out`),r.setAttribute(`title`,`Log out`),r.appendChild(z(B.logout)),H(r,`var(--s2-warning, #f59e0b)`),r.addEventListener(`click`,()=>{(async()=>{await D(t.providerId),K(e)})()})),r}function we(e,t){let n=document.createElement(`button`);return n.style.cssText=V,n.setAttribute(`aria-label`,`Remove account`),n.appendChild(z(B.trash)),H(n,`var(--s2-negative)`),n.addEventListener(`click`,()=>{(async()=>{await m(t.providerId),K(e)})()}),n}function Te(e,t){let n=r(t.providerId),i=document.createElement(`div`);i.style.cssText=`display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; background: var(--s2-bg-layer-2); border-radius: var(--s2-radius-default); margin-bottom: 8px; border: 1px solid var(--s2-border-subtle);`;let a=document.createElement(`div`);a.style.cssText=`flex: 1; min-width: 0;`;let o=document.createElement(`div`);o.style.cssText=`font-size: 14px; font-weight: 600; color: var(--s2-content-default);`,o.textContent=n.name,a.appendChild(o),a.appendChild(xe(t)),i.appendChild(a);let s=document.createElement(`div`);return s.style.cssText=`display: flex; gap: 4px; margin-left: 12px; flex-shrink: 0;`,s.appendChild(Se(e,t)),n.isOAuth&&s.appendChild(Ce(e,t,n)),s.appendChild(we(e,t)),i.appendChild(s),i}function Ee(e){let t=document.createDocumentFragment(),n=document.createElement(`hr`);n.style.cssText=`border: none; border-top: 1px solid var(--s2-border-subtle); margin: 16px 0;`,t.appendChild(n);let r=document.createElement(`div`);r.className=`dialog__desc`,r.style.cssText=`font-weight: 600; margin-bottom: 8px;`,r.textContent=`Tray`,t.appendChild(r);let i=ve(),a=i.state!==`inactive`,o=_e(window.localStorage);if(a||o){let e=document.createElement(`div`);e.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px;`,e.textContent=`Follower: ${a?i.state:`configured`}`,i.error&&(e.textContent+=` — ${i.error}`,e.style.color=`var(--slicc-cone)`),t.appendChild(e)}let s=document.createElement(`button`);return s.className=`dialog__btn dialog__btn--secondary`,s.textContent=a||o?`Reconnect to other browser`:`Connect to another browser`,s.addEventListener(`click`,()=>Q(e)),t.appendChild(s),t}function K(e){let{dialog:t}=e;t.innerHTML=``;let n=document.createElement(`div`);n.className=`dialog__title`,n.textContent=`Accounts`,t.appendChild(n);let r=w();if(r.length===0){let e=document.createElement(`div`);e.className=`dialog__desc`,e.textContent=`No accounts configured.`,t.appendChild(e)}else{let n=document.createElement(`div`);n.style.cssText=`margin-bottom: 16px;`;for(let t of r)n.appendChild(Te(e,t));t.appendChild(n)}let i=document.createElement(`div`);i.style.cssText=`display: flex; gap: 8px;`;let a=document.createElement(`button`);a.className=r.length>0?`dialog__btn dialog__btn--secondary`:`dialog__btn`,a.style.flex=`1`,a.textContent=`Add Account`,a.addEventListener(`click`,()=>X(e)),i.appendChild(a);let o=document.createElement(`button`);o.className=`dialog__btn dialog__btn--secondary`,o.style.flex=`1`,o.textContent=`Export`,o.addEventListener(`click`,()=>R()),i.appendChild(o),t.appendChild(i),t.appendChild(Ee(e));let s=document.createElement(`hr`);s.style.cssText=`border: none; border-top: 1px solid var(--s2-border-subtle); margin: 16px 0;`,t.appendChild(s);let c=document.createElement(`button`);c.className=`dialog__btn`,c.textContent=`Get Started`,c.addEventListener(`click`,()=>U(e)),t.appendChild(c)}function De(e,t){let n=document.createElement(`select`);if(n.className=`dialog__input`,n.style.marginBottom=`8px`,t){let e=r(t.providerId),i=document.createElement(`option`);return i.value=t.providerId,i.textContent=e.name,n.appendChild(i),n.disabled=!0,n.style.opacity=`0.7`,n}let i=document.createElement(`option`);i.value=``,i.textContent=`Select a provider…`,i.disabled=!0,i.selected=!0,i.hidden=!0,n.appendChild(i);let a=new Set(w().map(e=>e.providerId)),o=[...x()].sort((e,t)=>r(e).name.localeCompare(r(t).name));for(let t of o){if(a.has(t))continue;if(e?.providerFilter){if(!e.providerFilter(t))continue}else if(!f(t))continue;let i=document.createElement(`option`);i.value=t,i.textContent=r(t).name,n.appendChild(i)}return n}function Oe(e,t){let n=De(e,t),r=document.createElement(`div`);r.className=`dialog__desc`,r.style.cssText=`font-size: 12px; color: var(--s2-content-tertiary); margin-bottom: 16px; margin-top: -4px;`;let i=document.createElement(`div`);i.style.cssText=`margin-bottom: 16px; display: none;`;let a=document.createElement(`button`);a.className=`dialog__btn`,a.textContent=`Login`,a.style.cssText=`width: 100%; margin-bottom: 8px;`,i.appendChild(a);let o=document.createElement(`div`);o.className=`dialog__desc`,o.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); text-align: center;`,i.appendChild(o);let s=document.createElement(`div`),c=document.createElement(`div`);c.className=`dialog__desc`,s.appendChild(c);let l=document.createElement(`input`);l.className=`dialog__input`,l.type=`password`,l.autocomplete=`off`,l.spellcheck=!1,t&&(l.value=t.apiKey),s.appendChild(l);let u=document.createElement(`div`),d=document.createElement(`div`);d.className=`dialog__desc`,d.textContent=`Base URL:`,u.appendChild(d);let f=document.createElement(`input`);f.className=`dialog__input`,f.type=`text`,f.autocomplete=`off`,f.spellcheck=!1,t?.baseUrl&&(f.value=t.baseUrl),u.appendChild(f);let p=document.createElement(`div`);p.className=`dialog__desc`,p.style.cssText=`font-size: 11px; color: var(--s2-content-secondary); margin-top: -12px; margin-bottom: 16px;`,u.appendChild(p);let m=document.createElement(`div`);m.style.display=`none`;let h=document.createElement(`div`);h.className=`dialog__desc`,h.textContent=`Deployment:`,m.appendChild(h);let g=document.createElement(`input`);g.className=`dialog__input`,g.type=`text`,g.autocomplete=`off`,g.spellcheck=!1,t?.deployment&&(g.value=t.deployment),m.appendChild(g);let _=document.createElement(`div`);_.className=`dialog__desc`,_.style.cssText=`font-size: 11px; color: var(--s2-content-secondary); margin-top: -12px; margin-bottom: 16px;`,m.appendChild(_);let v=document.createElement(`div`);v.style.display=`none`;let y=document.createElement(`div`);y.className=`dialog__desc`,y.textContent=`API Version:`,v.appendChild(y);let b=document.createElement(`input`);b.className=`dialog__input`,b.type=`text`,b.autocomplete=`off`,b.spellcheck=!1,t?.apiVersion&&(b.value=t.apiVersion),v.appendChild(b);let x=document.createElement(`div`);x.className=`dialog__desc`,x.style.cssText=`font-size: 11px; color: var(--s2-content-secondary); margin-top: -12px; margin-bottom: 16px;`,v.appendChild(x);let S=document.createElement(`div`);S.style.cssText=`color: var(--slicc-cone); font-size: 12px; margin-bottom: 8px; display: none;`;let C=document.createElement(`button`);return C.className=`dialog__btn`,C.textContent=t?`Save`:`Add`,{providerSelect:n,providerDesc:r,oauth:{section:i,loginBtn:a,status:o},apiKeySection:s,apiKeyLabel:c,apiKeyInput:l,baseUrlSection:u,baseUrlInput:f,baseUrlDesc:p,deploymentSection:m,deploymentInput:g,deploymentDesc:_,apiVersionSection:v,apiVersionInput:b,apiVersionDesc:x,errorEl:S,saveBtn:C}}function ke(e){let t=document.createElement(`div`);t.setAttribute(`data-slicc-device-code-prompt`,``),t.style.cssText=`display:flex;flex-direction:column;gap:8px`;let n=document.createElement(`div`);n.className=`dialog__desc`,n.textContent=`Verification code`,n.style.cssText=`font-size: 11px; color: var(--s2-content-tertiary);`;let r=document.createElement(`div`);r.textContent=e,r.style.cssText=[`font: 600 22px ui-monospace, SFMono-Regular, Menlo, monospace`,`letter-spacing: 2px`,`color: var(--s2-content-primary, #e6edf3)`,`background: var(--s2-bg-secondary, #161b22)`,`border: 1px solid var(--s2-border, #30363d)`,`border-radius: 6px`,`padding: 10px 12px`,`text-align: center`,`user-select: all`,`cursor: text`].join(`;`);let i=document.createElement(`div`);i.className=`dialog__desc`,i.style.cssText=`font-size: 12px; color: var(--s2-content-secondary);`,i.textContent=`Click Copy & Continue — we will open the GitHub authorization page in a new tab. Paste this code there if it is not already filled in.`;let a=document.createElement(`div`);a.style.cssText=`display:flex;gap:8px;justify-content:flex-end;margin-top:4px`;let o=document.createElement(`button`);o.type=`button`,o.className=`dialog__btn`,o.textContent=`Cancel`;let s=document.createElement(`button`);return s.type=`button`,s.className=`dialog__btn dialog__btn--primary`,s.textContent=`Copy & Continue`,a.appendChild(o),a.appendChild(s),t.appendChild(n),t.appendChild(r),t.appendChild(i),t.appendChild(a),{prompt:t,cancelBtn:o,continueBtn:s}}function Ae(e){return t=>new Promise(n=>{let r=e.loginBtn.style.display,i=e.status.style.display;e.loginBtn.style.display=`none`,e.status.style.display=`none`;let{prompt:a,cancelBtn:o,continueBtn:s}=ke(t.userCode),c=()=>{try{a.remove()}catch{}e.loginBtn.style.display=r,e.status.style.display=i};o.addEventListener(`click`,()=>{c(),n(`cancel`)}),s.addEventListener(`click`,()=>{(async()=>{try{await M(t.userCode)}catch{}c(),e.status.style.display=i,e.status.textContent=`Waiting for you to authorize in the new tab…`,n(`continue`)})()}),e.section.appendChild(a)})}async function je(e,t){let n=t.providerSelect.value;if(!n)return;let i=r(n);if(!i.onOAuthLogin&&!i.onOAuthLoginIntercepted)return;let{status:a}=t.oauth,o=w().some(e=>e.providerId===n),s=k(n);if(i.requiresBaseUrl&&!t.baseUrlInput.value.trim()&&!s){a.textContent=`Base URL is required.`,a.style.color=`var(--slicc-cone)`,t.baseUrlInput.focus();return}i.requiresBaseUrl&&t.baseUrlInput.value.trim()&&E(n,``,t.baseUrlInput.value.trim()),a.textContent=`Opening login window...`;try{if(i.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:n}=await A(async()=>{let{createInterceptingOAuthLauncherForCurrentRuntime:e}=await import(`./oauth-service-D0NOHMOb.js`);return{createInterceptingOAuthLauncherForCurrentRuntime:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),r=await n();if(!r)throw Error(`No controlled-browser CDP transport available — open SLICC in standalone mode or the Chrome extension.`);await i.onOAuthLoginIntercepted(r,()=>W(e),{presentDeviceCode:Ae(t.oauth)})}else if(i.onOAuthLogin){let{createOAuthLauncher:t}=await A(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-D0NOHMOb.js`);return{createOAuthLauncher:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),n=t();await i.onOAuthLogin(n,()=>W(e))}}catch(e){if(!o)try{await m(n)}catch{}I.error(`OAuth login failed`,{providerId:n,error:e instanceof Error?e.message:String(e)}),a.textContent=`Login failed: ${e instanceof Error?e.message:String(e)}`}}function Me(e,t){if(t.isOAuth){e.oauth.section.style.display=``,e.apiKeySection.style.display=`none`,e.baseUrlSection.style.display=t.requiresBaseUrl?``:`none`,t.requiresBaseUrl&&(e.baseUrlInput.placeholder=t.baseUrlPlaceholder||`https://...`,e.baseUrlDesc.textContent=t.baseUrlDescription||``),e.oauth.loginBtn.textContent=`Login with ${t.name}`,e.saveBtn.style.display=`none`;return}e.oauth.section.style.display=`none`;let n=t.requiresApiKey?`API Key`:`API Key (optional)`;e.apiKeyLabel.textContent=`${n}${t.apiKeyEnvVar?` (${t.apiKeyEnvVar})`:``}:`,e.apiKeyInput.placeholder=t.apiKeyPlaceholder||`API key`,e.apiKeySection.style.display=t.requiresApiKey||t.optionalApiKey?``:`none`,e.baseUrlInput.placeholder=t.baseUrlPlaceholder||`https://...`,e.baseUrlDesc.textContent=t.baseUrlDescription||``,e.baseUrlSection.style.display=t.requiresBaseUrl?``:`none`,e.saveBtn.style.display=``}function Ne(e,t){t.requiresDeployment?(e.deploymentSection.style.display=``,e.deploymentInput.placeholder=t.deploymentPlaceholder||`deployment-name`,e.deploymentDesc.textContent=t.deploymentDescription||``):e.deploymentSection.style.display=`none`}function q(e,t){t.requiresApiVersion?(e.apiVersionSection.style.display=``,!e.apiVersionInput.value&&t.apiVersionDefault&&(e.apiVersionInput.value=t.apiVersionDefault),e.apiVersionInput.placeholder=t.apiVersionDefault||`api-version`,e.apiVersionDesc.textContent=t.apiVersionDescription||``):e.apiVersionSection.style.display=`none`}function J(e){let t=e.providerSelect.value;if(!t){e.providerDesc.textContent=``,e.oauth.section.style.display=`none`,e.apiKeySection.style.display=`none`,e.baseUrlSection.style.display=`none`,e.deploymentSection.style.display=`none`,e.apiVersionSection.style.display=`none`,e.saveBtn.style.display=`none`;return}let n=r(t);e.providerDesc.textContent=n.description,Me(e,n),Ne(e,n),q(e,n)}function Y(e,t){let n=t.providerSelect.value;if(!n)return;let i=r(n),a=(e,n)=>{t.errorEl.textContent=e,t.errorEl.style.display=``,n.focus()};if(i.requiresApiKey&&t.apiKeyInput.value.trim().length<5){a(`API key is required (at least 5 characters).`,t.apiKeyInput);return}if(i.requiresBaseUrl&&!t.baseUrlInput.value.trim()){a(`Base URL is required for this provider.`,t.baseUrlInput);return}if(i.requiresDeployment&&!t.deploymentInput.value.trim()){a(`Deployment name is required for this provider.`,t.deploymentInput);return}E(n,t.apiKeyInput.value.trim(),t.baseUrlInput.value.trim()||void 0,t.deploymentInput.value.trim()||void 0,t.apiVersionInput.value.trim()||void 0),W(e)}function Pe(e,t){let{dialog:n,options:r}=e,i=w().length>0;if(r?.startInAddAccount){let t=document.createElement(`button`);t.className=`dialog__btn dialog__btn--secondary`,t.style.marginTop=`8px`,t.textContent=`Cancel`,t.addEventListener(`click`,()=>U(e)),n.appendChild(t)}else if(!t&&!i){let t=document.createElement(`button`);t.className=`dialog__btn dialog__btn--secondary`,t.style.marginTop=`8px`,t.textContent=`Connect to another browser`,t.addEventListener(`click`,()=>Q(e)),n.appendChild(t)}else if(i){let t=document.createElement(`button`);t.className=`dialog__btn dialog__btn--secondary`,t.style.marginTop=`8px`,t.textContent=`Back`,t.addEventListener(`click`,()=>K(e)),n.appendChild(t)}}function X(e,t){let{dialog:n}=e;n.innerHTML=``;let i=document.createElement(`div`);i.className=`dialog__title`,i.textContent=t?`Edit Account`:`Add Account`,n.appendChild(i);let a=document.createElement(`div`);a.className=`dialog__desc`,a.textContent=`Provider:`,n.appendChild(a);let o=Oe(e.options,t);n.appendChild(o.providerSelect),n.appendChild(o.providerDesc),o.oauth.loginBtn.addEventListener(`click`,()=>{je(e,o)}),t?.userName&&(o.oauth.status.textContent=`Logged in as ${t.userName}`,o.oauth.loginBtn.textContent=`Re-login`),n.appendChild(o.oauth.section),n.appendChild(o.apiKeySection),n.appendChild(o.baseUrlSection),n.appendChild(o.deploymentSection),n.appendChild(o.apiVersionSection),n.appendChild(o.errorEl),o.providerSelect.addEventListener(`change`,()=>{o.errorEl.style.display=`none`,J(o)}),J(o),o.saveBtn.addEventListener(`click`,()=>Y(e,o));let s=t=>{t.key===`Enter`&&Y(e,o)};o.apiKeyInput.addEventListener(`keydown`,s),o.baseUrlInput.addEventListener(`keydown`,s),o.deploymentInput.addEventListener(`keydown`,s),o.apiVersionInput.addEventListener(`keydown`,s),n.appendChild(o.saveBtn),Pe(e,!!t),requestAnimationFrame(()=>{let e=o.providerSelect.value;if(!e)return;let t=r(e);t.requiresApiKey?o.apiKeyInput.focus():t.requiresBaseUrl&&o.baseUrlInput.focus()})}function Z(e,t,n){L(t,n),n.textContent=`Connecting…`,n.style.display=``,n.style.color=`var(--s2-content-secondary)`;let r=setTimeout(()=>{e.overlay.remove(),e.resolve(!1)},800);n.dataset.dismissTimer=String(r)}function Fe(e,t){let{dialog:n}=e;n.innerHTML=``;let r=document.createElement(`div`);r.className=`dialog__title`,r.textContent=`Connect this browser?`,n.appendChild(r);let i=document.createElement(`div`);i.className=`dialog__desc`,i.style.marginBottom=`12px`,i.textContent=`You’ve been invited to mirror another SLICC browser. Click below to start syncing.`,n.appendChild(i);let a=document.createElement(`div`);a.className=`dialog__desc`,a.style.cssText=`font-family: monospace; font-size: 11px; color: var(--s2-content-secondary); word-break: break-all; margin-bottom: 16px; padding: 8px; background: var(--s2-bg-secondary); border-radius: 4px;`,a.textContent=t.length>80?t.slice(0,40)+`…`+t.slice(-37):t,n.appendChild(a);let o=document.createElement(`div`);o.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px; display: none;`,n.appendChild(o);let s=document.createElement(`button`);s.className=`dialog__btn`,s.textContent=`Connect`,s.addEventListener(`click`,()=>{let n=j(window.localStorage,t);if(!n){o.textContent=`Invalid sync URL.`,o.style.display=``,o.style.color=`var(--slicc-cone)`;return}Z(e,n.joinUrl,o)}),n.appendChild(s);let c=document.createElement(`button`);c.className=`dialog__btn dialog__btn--secondary`,c.style.marginTop=`8px`,c.textContent=`Set up an account instead`,c.addEventListener(`click`,()=>X(e)),n.appendChild(c)}function Ie(){let e=document.createElement(`details`);e.style.cssText=`margin-bottom: 12px; font-size: 12px; color: var(--s2-content-secondary);`;let t=document.createElement(`summary`);t.style.cssText=`cursor: pointer; user-select: none; color: var(--s2-content-secondary);`,t.textContent=`How do I get the sync URL?`,e.appendChild(t);let n=document.createElement(`div`);n.style.cssText=`margin-top: 8px; padding: 10px 12px; background: var(--s2-bg-layer-2); border-radius: var(--s2-radius-default); border: 1px solid var(--s2-border-subtle); line-height: 1.5;`;let r=document.createElement(`ol`);r.style.cssText=`margin: 0; padding-left: 20px;`;for(let e of[`On the other SLICC, click the avatar (top right).`,`Choose “Enable multi-browser sync” — the URL is copied automatically.`,`Paste it below. Both browsers must be on the same SLICC version.`]){let t=document.createElement(`li`);t.textContent=e,r.appendChild(t)}return n.appendChild(r),e.appendChild(n),e}function Q(e){let{dialog:t}=e;t.innerHTML=``;let n=document.createElement(`div`);n.className=`dialog__title`,n.textContent=`Connect to another browser`,t.appendChild(n);let r=document.createElement(`div`);r.className=`dialog__desc`,r.style.marginBottom=`12px`,r.textContent=`Paste a multi-browser sync URL to mirror another SLICC browser.`,t.appendChild(r),t.appendChild(Ie());let i=document.createElement(`div`);i.className=`dialog__desc`,i.textContent=`Sync URL:`,t.appendChild(i);let a=document.createElement(`input`);a.className=`dialog__input`,a.type=`text`,a.autocomplete=`off`,a.spellcheck=!1,a.placeholder=`${ge}/join/<token>`,t.appendChild(a);let o=document.createElement(`div`);o.style.cssText=`color: var(--slicc-cone); font-size: 12px; margin-bottom: 8px; display: none;`,t.appendChild(o);let s=document.createElement(`div`);s.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px; display: none;`;let c=document.createElement(`button`);c.className=`dialog__btn`,c.textContent=`Connect`,c.addEventListener(`click`,()=>{let t=a.value.trim();if(!t){o.textContent=`Paste a sync URL to continue.`,o.style.display=``,a.focus();return}let n=j(window.localStorage,t);if(!n){o.textContent=P(t),o.style.display=``,a.focus();return}Z(e,n.joinUrl,s)}),t.appendChild(c),t.appendChild(s);let l=document.createElement(`button`);l.className=`dialog__btn dialog__btn--secondary`,l.style.marginTop=`8px`,l.textContent=`Back`,l.addEventListener(`click`,()=>X(e)),t.appendChild(l),a.addEventListener(`input`,()=>{o.style.display=`none`}),a.addEventListener(`keydown`,e=>{e.key===`Enter`&&c.click()}),requestAnimationFrame(()=>a.focus())}function $(e){return N(`button`),new Promise(t=>{let n=document.createElement(`div`);n.className=`dialog-overlay`;let r=document.createElement(`div`);r.className=`dialog`,r.style.cssText=`max-width: 480px; width: 90vw; padding: 32px;`;let i={overlay:n,dialog:r,options:e,accountsBefore:localStorage.getItem(`slicc_accounts`)??``,resolve:t};e?.startInAddAccount?X(i):w().length>0?K(i):e?.autoJoinUrl?Fe(i,e.autoJoinUrl):e?.preferTrayJoin?Q(i):X(i),n.appendChild(r),document.body.appendChild(n)})}export{$ as n,F as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./store-vg7fWz1Q.js";export{e as readMcpAuthEntries};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./logger-LESFN7Hj.js";import{i as t,s as n,t as r}from"./providers-Cq_dXOsh.js";import{S as i,d as a,z as o}from"./account-store-DSnxgLNJ.js";import{t as s}from"./redirect-uri-wvtO7KeZ.js";import{discoverAuth as c,refreshAccessToken as l,runAuthFlow as u}from"./oauth-DR6XMm1M.js";import{n as d}from"./store-vg7fWz1Q.js";import"./provider-store-access-BIeLrSCN.js";const f=e(`mcp-provider`);function p(){return typeof globalThis<`u`&&globalThis.indexedDB!==void 0}function m(e){return`mcp:${e}`}const h=new Map,g=new Set;async function _(e){if(e)return e;let{createProxiedFetch:t}=await import(`./proxied-fetch-GabK83LB.js`).then(e=>e.o),n=t();return async(e,t)=>{let r=await n(e,{method:t?.method,headers:t?.headers,body:t?.body}),i=new TextDecoder().decode(r.body);return{ok:r.status>=200&&r.status<300,status:r.status,statusText:r.statusText,text:async()=>i,json:async()=>JSON.parse(i),headers:{get:e=>r.headers[e.toLowerCase()]??null}}}}async function v(e){let t=h.get(m(e.name));if(t)return t;let n=await _(e.fetchImpl),r=await c(e.serverUrl,void 0,n);return h.set(m(e.name),r),r}function y(e){let t=m(e.name),n=(()=>{try{return new URL(e.serverUrl).host}catch{return``}})();return{id:t,name:`MCP: ${e.name}`,description:`MCP server at ${e.serverUrl}`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,oauthTokenDomains:n?[n]:[],getModelIds:()=>[],onOAuthLogin:async(n,r)=>{let i=e.launcher??n,a=await _(e.fetchImpl),c=await u({asMetadata:await v(e),clientId:e.auth.clientId,scope:e.auth.scope,redirectUri:e.auth.redirectUri??await s(),launcher:i,fetchImpl:a});await o({providerId:t,accessToken:c.accessToken,refreshToken:c.refreshToken,tokenExpiresAt:c.expiresAt,scopes:c.scope}),r()},onSilentRenew:async()=>{if(!i(t))return null;let n=a().find(e=>e.providerId===t),r=n?.refreshToken;if(!r)return f.info(`No refresh token for MCP provider, skipping silent renewal`,{id:t}),null;try{let i=await v(e),a=i.grantTypes??[];if(a.length>0&&!a.includes(`refresh_token`))return f.info(`AS does not advertise refresh_token grant; skipping silent renewal`,{id:t}),null;let s=await _(e.fetchImpl),c=await l({tokenEndpoint:i.tokenEndpoint,clientId:e.auth.clientId,refreshToken:r,scope:e.auth.scope,fetchImpl:s});return await o({providerId:t,accessToken:c.accessToken,refreshToken:c.refreshToken??r,tokenExpiresAt:c.expiresAt,scopes:c.scope??n.scopes}),c.accessToken}catch(e){return f.warn(`MCP silent renewal failed`,{id:t,error:e instanceof Error?e.message:String(e)}),null}}}}function b(e){let n=m(e.name);g.has(n)||(t(y(e)),g.add(n),f.debug(`Registered MCP provider`,{id:n}))}async function x(e,t={}){let n=m(e);if(g.has(n)&&r(n))return!0;if(!p())return!1;let i=await d(e);return i?(b({name:e,serverUrl:i.serverUrl,auth:i.auth,...t}),!0):!1}async function S(){if(!p())return[];let{readMcpAuthEntries:e}=await import(`./provider-store-access-BIeLrSCN.js`),t=await e(),n=[];for(let e of t)b({name:e.name,serverUrl:e.serverUrl,auth:e.auth}),n.push(m(e.name));return n}function C(e){let t=m(e);return g.delete(t),h.delete(t),n(t)}export{S as ensureAllMcpProvidersRegistered,x as ensureMcpProviderRegistered,b as registerMcpProvider,C as removeMcpProvider};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/azure-openai-TFQRhgO4.js","assets/account-store-3ZeQvsHg.js","assets/rolldown-runtime-aKtaBQYM.js","assets/preload-helper-Czpn1I53.js","assets/compat-BhgG-Qr-.js","assets/models-DmWu8BeM.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-D37PhSJu.js","assets/__vite-browser-external-SwrSgYTf.js","assets/openrouter.models-C8HitxAG.js","assets/context-compaction-gzCxn8vG.js","assets/logger-DDBAeTLF.js","assets/src-BStYtmHq.js","assets/proxied-fetch-A48etSCh.js","assets/base64-DpPqYZJF.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-CKyE_tTD.js","assets/secrets-bridge-client-CUeSRcdV.js","assets/port-bridge-client-B64OCgRQ.js","assets/tool-ui-DfXu6quJ.js","assets/tool-result-images-DwRGZUe_.js","assets/panel-rpc-DmJSNs0I.js","assets/bedrock-camp-CVX95quY.js","assets/transform-messages-DgR3h-Ck.js","assets/openai-BxFF4GUL.js","assets/local-llm-B5AVGYUF.js","assets/legacy-api-aliases-DrEKVikN.js","assets/adobe-B4F29JMY.js","assets/provider-settings-CMPKOsv9.js","assets/tray-runtime-config-BxjVzwAJ.js","assets/messages-BD4p8GuF.js","assets/tray-follower-status-5SqDRLX8.js","assets/clipboard-DuHpK59o.js","assets/telemetry-DqIqVG5n.js","assets/tray-join-url-BIvzbiFR.js","assets/silent-renew-backoff-HDNNYx7x.js","assets/bridge-launch-params-BUV5qlt9.js","assets/electron-overlay-route-CjT6k9Df.js","assets/oauth-service-D0NOHMOb.js","assets/wc-permissions-registry-Blyunq37.js","assets/llm-session-id-bZQs6gBN.js","assets/cerebras-BElG8qkN.js","assets/github-copilot-CUWzfkgl.js","assets/github-DC0sZ4bk.js","assets/global-db-CbuLl-zx.js","assets/openai-codex-D4ja7gqs.js","assets/pkce-hGf_TEnP.js","assets/openrouter-models-gCCUSdgw.js","assets/openrouter-oauth-Cfl_HRtC.js","assets/openrouter-5QNOix7C.js","assets/xai-grok-CQ2y4q0K.js","assets/xai-grok-errors-bnlIBeu-.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./preload-helper-Czpn1I53.js";var n={include:[`*`],exclude:[`amazon-bedrock`,`xai`]},r=e({getRegisteredProviderConfig:()=>d,getRegisteredProviderIds:()=>f,registerProviderConfig:()=>p,registerProviders:()=>u,shouldIncludeProvider:()=>a}),i=Object.assign({"/packages/dev-tools/providers.build.json":n})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function a(e){let{include:t,exclude:n}=i;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}var o=Object.assign({"./built-in/azure-ai-foundry.ts":()=>t(()=>import(`./azure-ai-foundry-Bo0FAJyX.js`),[]),"./built-in/azure-openai.ts":()=>t(()=>import(`./azure-openai-TFQRhgO4.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25])),"./built-in/bedrock-camp.ts":()=>t(()=>import(`./bedrock-camp-CVX95quY.js`).then(e=>e.n),__vite__mapDeps([23,2,6,5,3,4,7,8,9,24])),"./built-in/local-llm.ts":()=>t(()=>import(`./local-llm-B5AVGYUF.js`),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,27]))}),s=Object.assign({"/packages/webapp/providers/adobe.ts":()=>t(()=>import(`./adobe-B4F29JMY.js`),__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,27,29,30,31,32,33,34,35,36,37,38,39,40,41])),"/packages/webapp/providers/cerebras.ts":()=>t(()=>import(`./cerebras-BElG8qkN.js`),__vite__mapDeps([42,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,27])),"/packages/webapp/providers/github-copilot.ts":()=>t(()=>import(`./github-copilot-CUWzfkgl.js`),__vite__mapDeps([43,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,27,29,30,31,32,33,34,35])),"/packages/webapp/providers/github.ts":()=>t(()=>import(`./github-DC0sZ4bk.js`),__vite__mapDeps([44,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,30,31,29,32,33,34,35,36,37,38,39,40,45])),"/packages/webapp/providers/openai-codex.ts":()=>t(()=>import(`./openai-codex-D4ja7gqs.js`),__vite__mapDeps([46,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,27,29,30,31,32,33,34,35,47])),"/packages/webapp/providers/openrouter-models.ts":()=>t(()=>import(`./openrouter-models-gCCUSdgw.js`),__vite__mapDeps([48,9])),"/packages/webapp/providers/openrouter-oauth.ts":()=>t(()=>import(`./openrouter-oauth-Cfl_HRtC.js`),__vite__mapDeps([49,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,29,30,31,32,33,34,35,47])),"/packages/webapp/providers/openrouter.ts":()=>t(()=>import(`./openrouter-5QNOix7C.js`),__vite__mapDeps([50,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,27,29,30,31,32,33,34,35,48,49,47])),"/packages/webapp/providers/xai-grok-errors.ts":()=>t(()=>import(`./xai-grok-errors-bnlIBeu-.js`),[]),"/packages/webapp/providers/xai-grok.ts":()=>t(()=>import(`./xai-grok-CQ2y4q0K.js`),__vite__mapDeps([51,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,27,29,30,31,32,33,34,35,47,52]))}),c=new Map,l=null;function u(){return l||(l=(async()=>{for(let[e,t]of Object.entries(o)){let e=await t();e.config&&a(e.config.id)&&(c.set(e.config.id,e.config),e.register?.())}for(let[e,t]of Object.entries(s)){let e=await t();e.config&&(c.set(e.config.id,e.config),e.register?.())}})(),l)}function d(e){return c.get(e)}function f(){return[...c.keys()]}function p(e){c.set(e.id,e)}export{u as a,p as i,f as n,a as o,r,d as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/panel-rpc-DmJSNs0I.js","assets/rolldown-runtime-aKtaBQYM.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./preload-helper-Czpn1I53.js";import{n,t as r}from"./base64-DpPqYZJF.js";import"./src-BStYtmHq.js";import{n as i}from"./runtime-env-DH4NDw4t.js";import{t as a}from"./fetch-body-D2PwksUW.js";function o(e){return e.headers.get(`x-proxy-error`)===`1`}async function s(e){let t=`Proxy error ${e.status}`,n;try{n=await e.text()}catch{return t}return c(n,t)}function c(e,t){let n;try{n=JSON.parse(e)}catch{return t}if(!n||typeof n!=`object`)return t;let r=n.error;if(typeof r==`string`&&r.length>0)return r;if(r&&typeof r==`object`){let e=r.message;if(typeof e==`string`&&e.length>0)return e;try{return JSON.stringify(r)}catch{return t}}return t}var l=new Map,u=new Map;function d(e,t){l.set(e,t),setTimeout(()=>l.delete(e),1e4)}function f(e,t){u.set(e,t),setTimeout(()=>u.delete(e),1e4)}function p(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e)){let e=n.toLowerCase();e===`cookie`?t[`X-Proxy-Cookie`]=r:e===`origin`?t[`X-Proxy-Origin`]=r:e===`referer`?t[`X-Proxy-Referer`]=r:e.startsWith(`proxy-`)?t[`X-Proxy-${n}`]=r:t[n]=r}return t}function m(e){let t={};for(let[n,r]of Object.entries(e))n.toLowerCase()===`x-proxy-set-cookie`?t[`set-cookie`]=r:t[n]=r;return t}function h(e){if(e){if(e instanceof Headers){let t={};return e.forEach((e,n)=>{t[n]=e}),t}return e}}var g=e({apiHeaders:()=>O,collectViaExtensionDelegate:()=>H,createProxiedFetch:()=>U,decodeForbiddenResponseHeaders:()=>F,encodeForbiddenRequestHeaders:()=>P,getExtensionDelegateId:()=>E,getLocalApiBaseUrl:()=>S,headersToRecord:()=>M,isTextContentType:()=>A,prepareRequestBody:()=>N,readResponseBody:()=>j,resolveApiUrl:()=>D,setBridgeToken:()=>C,setExtensionDelegateId:()=>T,setLocalApiBaseUrl:()=>x}),_=32*1024*1024,v=new Set([101,103,204,205,304]),y=null,b=null;function x(e){if(e===null||e===``){y=null;return}y=e.replace(/\/+$/,``)}function S(){return y}function C(e){b=e===null||e===``?null:e}var w=null;function T(e){w=e===null||e===``?null:e}function E(){return w}function D(e){return y?`${y}${e}`:e}function O(e){let t={};if(b&&y&&(t[`X-Bridge-Token`]=b),e)for(let n of Object.keys(e))t[n]=e[n];return t}function k(){return D(`/api/fetch-proxy`)}function A(e){if(!e)return!0;let t=e.toLowerCase();return t.startsWith(`text/`)||t.includes(`json`)||t.includes(`xml`)||t.includes(`javascript`)||t.includes(`ecmascript`)||t.includes(`html`)||t.includes(`css`)||t.includes(`svg`)}async function j(e,t){let n=e.headers.get(`content-type`)??``,r=await e.arrayBuffer(),i=new Uint8Array(r);if(!A(n))if(t)f(t,i);else{let e=``;for(let t=0;t<i.length;t+=32768)e+=String.fromCharCode(...i.subarray(t,t+32768));d(e,i)}return i}var M=h;function N(e,t){if(e){if(!A(Object.entries(t??{}).find(([e])=>e.toLowerCase()===`content-type`)?.[1]??``)){let t=a(e);return new Blob([t])}return e}}var P=p,F=m,I=r;function L(e){let t=e.reduce((e,t)=>e+t.length,0),n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}async function R(e,t,n){let r=new Headers;for(let[t,n]of Object.entries(e.headers))r.set(t,String(n));let i=v.has(e.status)?null:t,a=await j(new Response(i,{status:e.status,statusText:e.statusText,headers:r}),n);return{status:e.status,statusText:e.statusText,headers:F(e.headers),body:a,url:n}}async function z(e){let t=M(e?.headers),r=e?.method??`GET`,i=e?.body?N(e.body,t):void 0,a=P(t),o,s=!1;if(i!==void 0){let e=i instanceof Uint8Array?i:new Uint8Array(await new Response(i).arrayBuffer());e.byteLength>_?s=!0:o=n(e)}return{method:r,transportHeaders:a,bodyBase64:o,requestBodyTooLarge:s}}async function B(e,t,n){let{method:r,transportHeaders:i,bodyBase64:a,requestBodyTooLarge:o}=await z(n),s=e();return new Promise((e,n)=>{let c=null,l=!1,u=[];s.onMessage.addListener(t=>{let r=t;if(r.type===`response-head`)c={status:r.status,statusText:r.statusText,headers:r.headers};else if(r.type===`response-chunk`)u.push(I(r.dataBase64));else if(r.type===`response-end`){if(l=!0,!c){n(Error(`fetch-proxy: response-end before response-head`));return}e({head:c,body:L(u).buffer}),s.disconnect()}else r.type===`response-error`&&(l=!0,n(Error(r.error)),s.disconnect())}),s.onDisconnect.addListener(()=>{l||n(Error(c?`fetch-proxy port disconnected mid-stream`:`fetch-proxy port disconnected before response`))}),s.postMessage({type:`request`,url:t,method:r,headers:i,bodyBase64:a,requestBodyTooLarge:o})})}async function V(e,t){let{head:n,body:r}=await B(()=>chrome.runtime.connect({name:`fetch-proxy.fetch`}),e,t);return R(n,new Uint8Array(r),e)}async function H(e,t){let n=w;if(!n)throw Error(`proxied-fetch: no extension delegate id configured`);let r=chrome.runtime.connect;return B(()=>r(n,{name:`fetch-proxy.fetch`}),e,t)}function U(){return i()?V:typeof chrome<`u`&&typeof chrome?.runtime?.connect==`function`&&w?async(e,t)=>{let{head:n,body:r}=await H(e,t);return R(n,new Uint8Array(r),e)}:typeof chrome>`u`&&w?async(e,n)=>{let{getPanelRpcClient:r}=await t(async()=>{let{getPanelRpcClient:e}=await import(`./panel-rpc-DmJSNs0I.js`).then(e=>e.i);return{getPanelRpcClient:e}},__vite__mapDeps([0,1])),i=r();if(!i)throw Error(`proxied-fetch: panel-RPC client unavailable in worker realm`);let a=n?.method??`GET`,o=M(n?.headers)??{},{head:s,body:c}=await i.call(`proxied-fetch`,{url:e,method:a,headers:o,body:n?.body},{timeoutMs:12e4});return R(s,new Uint8Array(c),e)}:async(e,t)=>{let n=t?.method??`GET`,r=O({...P(M(t?.headers)),"X-Target-URL":e}),i={method:n,headers:r,cache:`no-store`};t?.body&&![`GET`,`HEAD`].includes(n)&&(i.body=N(t.body,r));let a=await fetch(k(),i);if(o(a))throw Error(await s(a));let c=await j(a,e),l={};a.headers.forEach((e,t)=>{l[t]=e});let u=F(l);return{status:a.status,statusText:a.statusText,headers:u,body:c,url:e}}}export{g as a,T as c,s as d,S as i,x as l,U as n,D as o,E as r,C as s,O as t,o as u};
|
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),l=(e=>typeof require<`u`?require:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof require<`u`?require:e)[t]}):e)(function(e){if(typeof require<`u`)return require.apply(this,arguments);throw Error('Calling `require` for "'+e+"\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.")});function u(e){if(!e||e===`/`)return`/`;e.startsWith(`/`)||(e=`/`+e);let t=e.split(`/`),n=[];for(let e of t)e===``||e===`.`||(e===`..`?n.pop():n.push(e));return`/`+n.join(`/`)}function d(e){let t=u(e);if(t===`/`)return{dir:`/`,base:``};let n=t.lastIndexOf(`/`);return{dir:n===0?`/`:t.slice(0,n),base:t.slice(n+1)}}function f(...e){return u(e.join(`/`))}new TextDecoder;function p(e){if(typeof e!=`string`)return e;let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t}async function m(e){let t=await crypto.subtle.digest(`SHA-256`,e);return Array.from(new Uint8Array(t)).map(e=>e.toString(16).padStart(2,`0`)).join(``)}function h(e){try{return new URL(e).protocol===`https:`}catch{return!1}}function g(e){return new Promise(t=>setTimeout(t,e))}async function _(e,t,n){let r;try{r=await e(t.url,{method:`GET`,headers:{Accept:`application/octet-stream`},timeoutMs:n})}catch(e){let n=e instanceof Error?e.message:String(e);return{ok:!1,retriable:!0,error:Error(`${t.label}: network error (${n})`)}}if(r.status>=500&&r.status<600)return{ok:!1,retriable:!0,error:Error(`${t.label}: server error HTTP ${r.status}`)};if(r.status<200||r.status>=300){let e=r.statusText?` ${r.statusText}`:``;return{ok:!1,retriable:!1,error:Error(`${t.label}: HTTP ${r.status}${e}`)}}let i=p(r.body);return!(i instanceof Uint8Array)||i.length===0?{ok:!1,retriable:!1,error:Error(`${t.label}: response body was empty`)}:{ok:!0,bytes:i}}async function v(e,t,n){let r;for(let i=1;i<=3;i++){let a=await _(e,t,n);if(a.ok)return a.bytes;if(r=a.error,!a.retriable||i===3)throw a.error;await g(250*i)}throw r??Error(`${t.label}: download failed`)}async function y(e,t){let n=await m(e);if(n!==t.sha256.toLowerCase())throw Error(`${t.label}: sha256 mismatch (expected ${t.sha256.toLowerCase()}, got ${n})`)}async function ee(e,t){if(!h(t.url))throw Error(`${t.label}: refused to fetch non-https URL '${t.url}'`);let n=await v(e,t,t.timeoutMs??6e4);return await y(n,t),n}const b=`pyproject.toml`;function x(e){return e.trim().toLowerCase().replace(/[-_.]+/g,`-`)}function te(e){let t=e.indexOf(`==`);return t===-1?{name:e.trim(),version:``}:{name:e.slice(0,t).trim(),version:e.slice(t+2).trim()}}async function S(e,t){let n=t?.startsWith(`/`)?t:`/workspace`;for(;;){if(await e.exists(f(n,b)))return n;if(n===`/`)return null;n=d(n).dir}}function C(e){let t=!1,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(i===`'`&&!n)t=!t;else if(i===`"`&&!t)n=!n;else if(i===`#`&&!t&&!n)return e.slice(0,r)}return e}function w(e){let t=e.trim();return t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`)?t.slice(1,-1):null}function ne(e,t,n){let r=n,i=t;for(;!r.includes(`]`)&&i+1<e.length;)i+=1,r+=`\n${C(e[i])}`;let a=[];for(let e of r.matchAll(/["']([^"']*)["']/g))e[1].trim()&&a.push(e[1].trim());return{items:a,lastIndex:i}}function re(e){let t=e.split(`
|
|
2
|
-
`),n=``,r=`workspace`,i=`0.1.0`,a=[];for(let e=0;e<t.length;e++){let o=C(t[e]).trim();if(!o)continue;if(o.startsWith(`[`)){n=o;continue}if(n!==`[project]`)continue;let s=o.indexOf(`=`);if(s===-1)continue;let c=o.slice(0,s).trim(),l=o.slice(s+1).trim();if(c===`name`)r=w(l)??r;else if(c===`version`)i=w(l)??i;else if(c===`dependencies`){let n=ne(t,e,l);a=n.items,e=n.lastIndex}}return{name:r,version:i,dependencies:a}}const ie={name:`name`,version:`version`,source:`source`,file_name:`fileName`,sha256:`sha256`};function T(e,t){t.name&&t.version&&t.source&&t.fileName&&t.sha256&&e.push(t)}function ae(e){let t=[],n=null;for(let r of e.split(`
|
|
3
|
-
`)){let e=C(r).trim();if(!e)continue;if(e===`[[package]]`){n&&T(t,n),n={};continue}if(e.startsWith(`[`)){n&&T(t,n),n=null;continue}if(!n)continue;let i=e.indexOf(`=`);if(i===-1)continue;let a=ie[e.slice(0,i).trim()];if(!a)continue;let o=w(e.slice(i+1).trim());o!==null&&(a===`source`?n.source=o:n[a]=o)}return n&&T(t,n),t}async function oe(e,t){let n=f(t,b);if(!await e.exists(n))return{name:`workspace`,version:`0.1.0`,dependencies:[]};let r=await e.readFile(n);return{...re(r),raw:r}}async function se(e,t){let n=f(t,`uv.lock`);return await e.exists(n)?ae(await e.readFile(n)):[]}const ce=new Set([`child_process`,`events`,`fs`,`fs/promises`,`os`,`path`,`stream`,`tty`,`url`,`crypto`,`process`,`buffer`,`assert`,`assert/strict`,`util`]);new Set([...new Set(`assert.assert/strict.async_hooks.buffer.child_process.cluster.console.constants.crypto.dgram.diagnostics_channel.dns.dns/promises.domain.events.fs.fs/promises.http.http2.https.inspector.inspector/promises.module.net.os.path.path/posix.path/win32.perf_hooks.process.punycode.querystring.readline.readline/promises.repl.stream.stream/consumers.stream/promises.stream/web.string_decoder.sys.timers.timers/promises.tls.trace_events.tty.url.util.util/types.v8.vm.wasi.worker_threads.zlib`.split(`.`))].filter(e=>!ce.has(e))),[`unpkg`,`com`].join(`.`),[`cdn`,`jsdelivr`,`net`].join(`.`),[`registry`,`npmjs`,`org`].join(`.`);var E=o(((e,t)=>{t.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:2**53-1||9007199254740991,RELEASE_TYPES:[`major`,`premajor`,`minor`,`preminor`,`patch`,`prepatch`,`prerelease`],SEMVER_SPEC_VERSION:`2.0.0`,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}})),D=o(((e,t)=>{t.exports=typeof process==`object`&&{}.NODE_DEBUG&&/\bsemver\b/i.test({}.NODE_DEBUG)?(...e)=>console.error(`SEMVER`,...e):()=>{}})),O=o(((e,t)=>{let{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:r,MAX_LENGTH:i}=E(),a=D();e=t.exports={};let o=e.re=[],s=e.safeRe=[],c=e.src=[],l=e.safeSrc=[],u=e.t={},d=0,f=`[a-zA-Z0-9-]`,p=[[`\\s`,1],[`\\d`,i],[f,r]],m=e=>{for(let[t,n]of p)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e},h=(e,t,n)=>{let r=m(t),i=d++;a(e,i,t),u[e]=i,c[i]=t,l[i]=r,o[i]=new RegExp(t,n?`g`:void 0),s[i]=new RegExp(r,n?`g`:void 0)};h(`NUMERICIDENTIFIER`,`0|[1-9]\\d*`),h(`NUMERICIDENTIFIERLOOSE`,`\\d+`),h(`NONNUMERICIDENTIFIER`,`\\d*[a-zA-Z-]${f}*`),h(`MAINVERSION`,`(${c[u.NUMERICIDENTIFIER]})\\.(${c[u.NUMERICIDENTIFIER]})\\.(${c[u.NUMERICIDENTIFIER]})`),h(`MAINVERSIONLOOSE`,`(${c[u.NUMERICIDENTIFIERLOOSE]})\\.(${c[u.NUMERICIDENTIFIERLOOSE]})\\.(${c[u.NUMERICIDENTIFIERLOOSE]})`),h(`PRERELEASEIDENTIFIER`,`(?:${c[u.NONNUMERICIDENTIFIER]}|${c[u.NUMERICIDENTIFIER]})`),h(`PRERELEASEIDENTIFIERLOOSE`,`(?:${c[u.NONNUMERICIDENTIFIER]}|${c[u.NUMERICIDENTIFIERLOOSE]})`),h(`PRERELEASE`,`(?:-(${c[u.PRERELEASEIDENTIFIER]}(?:\\.${c[u.PRERELEASEIDENTIFIER]})*))`),h(`PRERELEASELOOSE`,`(?:-?(${c[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${c[u.PRERELEASEIDENTIFIERLOOSE]})*))`),h(`BUILDIDENTIFIER`,`${f}+`),h(`BUILD`,`(?:\\+(${c[u.BUILDIDENTIFIER]}(?:\\.${c[u.BUILDIDENTIFIER]})*))`),h(`FULLPLAIN`,`v?${c[u.MAINVERSION]}${c[u.PRERELEASE]}?${c[u.BUILD]}?`),h(`FULL`,`^${c[u.FULLPLAIN]}$`),h(`LOOSEPLAIN`,`[v=\\s]*${c[u.MAINVERSIONLOOSE]}${c[u.PRERELEASELOOSE]}?${c[u.BUILD]}?`),h(`LOOSE`,`^${c[u.LOOSEPLAIN]}$`),h(`GTLT`,`((?:<|>)?=?)`),h(`XRANGEIDENTIFIERLOOSE`,`${c[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),h(`XRANGEIDENTIFIER`,`${c[u.NUMERICIDENTIFIER]}|x|X|\\*`),h(`XRANGEPLAIN`,`[v=\\s]*(${c[u.XRANGEIDENTIFIER]})(?:\\.(${c[u.XRANGEIDENTIFIER]})(?:\\.(${c[u.XRANGEIDENTIFIER]})(?:${c[u.PRERELEASE]})?${c[u.BUILD]}?)?)?`),h(`XRANGEPLAINLOOSE`,`[v=\\s]*(${c[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[u.XRANGEIDENTIFIERLOOSE]})(?:${c[u.PRERELEASELOOSE]})?${c[u.BUILD]}?)?)?`),h(`XRANGE`,`^${c[u.GTLT]}\\s*${c[u.XRANGEPLAIN]}$`),h(`XRANGELOOSE`,`^${c[u.GTLT]}\\s*${c[u.XRANGEPLAINLOOSE]}$`),h(`COERCEPLAIN`,`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),h(`COERCE`,`${c[u.COERCEPLAIN]}(?:$|[^\\d])`),h(`COERCEFULL`,c[u.COERCEPLAIN]+`(?:${c[u.PRERELEASE]})?(?:${c[u.BUILD]})?(?:$|[^\\d])`),h(`COERCERTL`,c[u.COERCE],!0),h(`COERCERTLFULL`,c[u.COERCEFULL],!0),h(`LONETILDE`,`(?:~>?)`),h(`TILDETRIM`,`(\\s*)${c[u.LONETILDE]}\\s+`,!0),e.tildeTrimReplace=`$1~`,h(`TILDE`,`^${c[u.LONETILDE]}${c[u.XRANGEPLAIN]}$`),h(`TILDELOOSE`,`^${c[u.LONETILDE]}${c[u.XRANGEPLAINLOOSE]}$`),h(`LONECARET`,`(?:\\^)`),h(`CARETTRIM`,`(\\s*)${c[u.LONECARET]}\\s+`,!0),e.caretTrimReplace=`$1^`,h(`CARET`,`^${c[u.LONECARET]}${c[u.XRANGEPLAIN]}$`),h(`CARETLOOSE`,`^${c[u.LONECARET]}${c[u.XRANGEPLAINLOOSE]}$`),h(`COMPARATORLOOSE`,`^${c[u.GTLT]}\\s*(${c[u.LOOSEPLAIN]})$|^$`),h(`COMPARATOR`,`^${c[u.GTLT]}\\s*(${c[u.FULLPLAIN]})$|^$`),h(`COMPARATORTRIM`,`(\\s*)${c[u.GTLT]}\\s*(${c[u.LOOSEPLAIN]}|${c[u.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace=`$1$2$3`,h(`HYPHENRANGE`,`^\\s*(${c[u.XRANGEPLAIN]})\\s+-\\s+(${c[u.XRANGEPLAIN]})\\s*$`),h(`HYPHENRANGELOOSE`,`^\\s*(${c[u.XRANGEPLAINLOOSE]})\\s+-\\s+(${c[u.XRANGEPLAINLOOSE]})\\s*$`),h(`STAR`,`(<|>)?=?\\s*\\*`),h(`GTE0`,`^\\s*>=\\s*0\\.0\\.0\\s*$`),h(`GTE0PRE`,`^\\s*>=\\s*0\\.0\\.0-0\\s*$`)})),k=o(((e,t)=>{let n=Object.freeze({loose:!0}),r=Object.freeze({});t.exports=e=>e?typeof e==`object`?e:n:r})),A=o(((e,t)=>{let n=/^[0-9]+$/,r=(e,t)=>{if(typeof e==`number`&&typeof t==`number`)return e===t?0:e<t?-1:1;let r=n.test(e),i=n.test(t);return r&&i&&(e=+e,t=+t),e===t?0:r&&!i?-1:i&&!r?1:e<t?-1:1};t.exports={compareIdentifiers:r,rcompareIdentifiers:(e,t)=>r(t,e)}})),j=o(((e,t)=>{let n=D(),{MAX_LENGTH:r,MAX_SAFE_INTEGER:i}=E(),{safeRe:a,t:o}=O(),s=k(),{compareIdentifiers:c}=A(),l=(e,t)=>{let n=t.split(`.`);if(n.length>e.length)return!1;for(let t=0;t<n.length;t++)if(c(e[t],n[t])!==0)return!1;return!0};t.exports=class e{constructor(t,c){if(c=s(c),t instanceof e){if(t.loose===!!c.loose&&t.includePrerelease===!!c.includePrerelease)return t;t=t.version}else if(typeof t!=`string`)throw TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>r)throw TypeError(`version is longer than ${r} characters`);n(`SemVer`,t,c),this.options=c,this.loose=!!c.loose,this.includePrerelease=!!c.includePrerelease;let l=t.trim().match(c.loose?a[o.LOOSE]:a[o.FULL]);if(!l)throw TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+l[1],this.minor=+l[2],this.patch=+l[3],this.major>i||this.major<0)throw TypeError(`Invalid major version`);if(this.minor>i||this.minor<0)throw TypeError(`Invalid minor version`);if(this.patch>i||this.patch<0)throw TypeError(`Invalid patch version`);l[4]?this.prerelease=l[4].split(`.`).map(e=>{if(/^[0-9]+$/.test(e)){let t=+e;if(t>=0&&t<i)return t}return e}):this.prerelease=[],this.build=l[5]?l[5].split(`.`):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(`.`)}`),this.version}toString(){return this.version}compare(t){if(n(`SemVer.compare`,this.version,this.options,t),!(t instanceof e)){if(typeof t==`string`&&t===this.version)return 0;t=new e(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof e||(t=new e(t,this.options)),this.major<t.major?-1:this.major>t.major?1:this.minor<t.minor?-1:this.minor>t.minor?1:this.patch<t.patch?-1:+(this.patch>t.patch)}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let r=0;do{let e=this.prerelease[r],i=t.prerelease[r];if(n(`prerelease compare`,r,e,i),e===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(e===void 0)return-1;if(e===i)continue;return c(e,i)}while(++r)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let r=0;do{let e=this.build[r],i=t.build[r];if(n(`build compare`,r,e,i),e===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(e===void 0)return-1;if(e===i)continue;return c(e,i)}while(++r)}inc(e,t,n){if(e.startsWith(`pre`)){if(!t&&n===!1)throw Error(`invalid increment argument: identifier is empty`);if(t){let e=`-${t}`.match(this.options.loose?a[o.PRERELEASELOOSE]:a[o.PRERELEASE]);if(!e||e[1]!==t)throw Error(`invalid identifier: ${t}`)}}switch(e){case`premajor`:this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc(`pre`,t,n);break;case`preminor`:this.prerelease.length=0,this.patch=0,this.minor++,this.inc(`pre`,t,n);break;case`prepatch`:this.prerelease.length=0,this.inc(`patch`,t,n),this.inc(`pre`,t,n);break;case`prerelease`:this.prerelease.length===0&&this.inc(`patch`,t,n),this.inc(`pre`,t,n);break;case`release`:if(this.prerelease.length===0)throw Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case`major`:(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case`minor`:(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case`patch`:this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case`pre`:{let e=+!!Number(n);if(this.prerelease.length===0)this.prerelease=[e];else{let r=this.prerelease.length;for(;--r>=0;)typeof this.prerelease[r]==`number`&&(this.prerelease[r]++,r=-2);if(r===-1){if(t===this.prerelease.join(`.`)&&n===!1)throw Error(`invalid increment argument: identifier already exists`);this.prerelease.push(e)}}if(t){let r=[t,e];if(n===!1&&(r=[t]),l(this.prerelease,t)){let e=this.prerelease[t.split(`.`).length];isNaN(e)&&(this.prerelease=r)}else this.prerelease=r}break}default:throw Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(`.`)}`),this}}})),M=o(((e,t)=>{let n=j();t.exports=(e,t,r=!1)=>{if(e instanceof n)return e;try{return new n(e,t)}catch(e){if(!r)return null;throw e}}})),le=o(((e,t)=>{let n=M();t.exports=(e,t)=>{let r=n(e,t);return r?r.version:null}})),ue=o(((e,t)=>{let n=M();t.exports=(e,t)=>{let r=n(e.trim().replace(/^[=v]+/,``),t);return r?r.version:null}})),de=o(((e,t)=>{let n=j();t.exports=(e,t,r,i,a)=>{typeof r==`string`&&(a=i,i=r,r=void 0);try{return new n(e instanceof n?e.version:e,r).inc(t,i,a).version}catch{return null}}})),fe=o(((e,t)=>{let n=M();t.exports=(e,t)=>{let r=n(e,null,!0),i=n(t,null,!0),a=r.compare(i);if(a===0)return null;let o=a>0,s=o?r:i,c=o?i:r,l=!!s.prerelease.length;if(c.prerelease.length&&!l){if(!c.patch&&!c.minor)return`major`;if(c.compareMain(s)===0)return c.minor&&!c.patch?`minor`:`patch`}let u=l?`pre`:``;return r.major===i.major?r.minor===i.minor?r.patch===i.patch?`prerelease`:u+`patch`:u+`minor`:u+`major`}})),pe=o(((e,t)=>{let n=j();t.exports=(e,t)=>new n(e,t).major})),me=o(((e,t)=>{let n=j();t.exports=(e,t)=>new n(e,t).minor})),he=o(((e,t)=>{let n=j();t.exports=(e,t)=>new n(e,t).patch})),ge=o(((e,t)=>{let n=M();t.exports=(e,t)=>{let r=n(e,t);return r&&r.prerelease.length?r.prerelease:null}})),N=o(((e,t)=>{let n=j();t.exports=(e,t,r)=>new n(e,r).compare(new n(t,r))})),_e=o(((e,t)=>{let n=N();t.exports=(e,t,r)=>n(t,e,r)})),ve=o(((e,t)=>{let n=N();t.exports=(e,t)=>n(e,t,!0)})),P=o(((e,t)=>{let n=j();t.exports=(e,t,r)=>{let i=new n(e,r),a=new n(t,r);return i.compare(a)||i.compareBuild(a)}})),ye=o(((e,t)=>{let n=P();t.exports=(e,t)=>e.sort((e,r)=>n(e,r,t))})),be=o(((e,t)=>{let n=P();t.exports=(e,t)=>e.sort((e,r)=>n(r,e,t))})),F=o(((e,t)=>{let n=N();t.exports=(e,t,r)=>n(e,t,r)>0})),I=o(((e,t)=>{let n=N();t.exports=(e,t,r)=>n(e,t,r)<0})),xe=o(((e,t)=>{let n=N();t.exports=(e,t,r)=>n(e,t,r)===0})),Se=o(((e,t)=>{let n=N();t.exports=(e,t,r)=>n(e,t,r)!==0})),L=o(((e,t)=>{let n=N();t.exports=(e,t,r)=>n(e,t,r)>=0})),R=o(((e,t)=>{let n=N();t.exports=(e,t,r)=>n(e,t,r)<=0})),z=o(((e,t)=>{let n=xe(),r=Se(),i=F(),a=L(),o=I(),s=R();t.exports=(e,t,c,l)=>{switch(t){case`===`:return typeof e==`object`&&(e=e.version),typeof c==`object`&&(c=c.version),e===c;case`!==`:return typeof e==`object`&&(e=e.version),typeof c==`object`&&(c=c.version),e!==c;case``:case`=`:case`==`:return n(e,c,l);case`!=`:return r(e,c,l);case`>`:return i(e,c,l);case`>=`:return a(e,c,l);case`<`:return o(e,c,l);case`<=`:return s(e,c,l);default:throw TypeError(`Invalid operator: ${t}`)}}})),Ce=o(((e,t)=>{let n=j(),r=M(),{safeRe:i,t:a}=O();t.exports=(e,t)=>{if(e instanceof n)return e;if(typeof e==`number`&&(e=String(e)),typeof e!=`string`)return null;t||={};let o=null;if(!t.rtl)o=e.match(t.includePrerelease?i[a.COERCEFULL]:i[a.COERCE]);else{let n=t.includePrerelease?i[a.COERCERTLFULL]:i[a.COERCERTL],r;for(;(r=n.exec(e))&&(!o||o.index+o[0].length!==e.length);)(!o||r.index+r[0].length!==o.index+o[0].length)&&(o=r),n.lastIndex=r.index+r[1].length+r[2].length;n.lastIndex=-1}if(o===null)return null;let s=o[2],c=o[3]||`0`,l=o[4]||`0`,u=t.includePrerelease&&o[5]?`-${o[5]}`:``,d=t.includePrerelease&&o[6]?`+${o[6]}`:``;return r(`${s}.${c}.${l}${u}${d}`,t)}})),we=o(((e,t)=>{let n=M(),r=E(),i=j(),a=(e,t,n)=>{if(!r.RELEASE_TYPES.includes(t))return null;let i=o(e,n);return i&&s(i,t)},o=(e,t)=>{let r=e instanceof i?e.version:e;return n(r,t)},s=(e,t)=>{if(c(t))return e.version;switch(e.prerelease=[],t){case`major`:e.minor=0,e.patch=0;break;case`minor`:e.patch=0;break}return e.format()},c=e=>e.startsWith(`pre`);t.exports=a})),Te=o(((e,t)=>{t.exports=class{constructor(){this.max=1e3,this.map=new Map}get(e){let t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){let e=this.map.keys().next().value;this.delete(e)}this.map.set(e,t)}return this}}})),B=o(((e,t)=>{let n=/\s+/g;t.exports=class e{constructor(t,r){if(r=i(r),t instanceof e)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new e(t.raw,r);if(t instanceof a)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=t.trim().replace(n,` `),this.set=this.raw.split(`||`).map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let e=this.set[0];if(this.set=this.set.filter(e=>!_(e[0])),this.set.length===0)this.set=[e];else if(this.set.length>1){for(let e of this.set)if(e.length===1&&v(e[0])){this.set=[e];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted=``;for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+=`||`);let t=this.set[e];for(let e=0;e<t.length;e++)e>0&&(this.formatted+=` `),this.formatted+=t[e].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){e=e.replace(g,``);let t=((this.options.includePrerelease&&m)|(this.options.loose&&h))+`:`+e,n=r.get(t);if(n)return n;let i=this.options.loose,s=i?c[u.HYPHENRANGELOOSE]:c[u.HYPHENRANGE];e=e.replace(s,ae(this.options.includePrerelease)),o(`hyphen replace`,e),e=e.replace(c[u.COMPARATORTRIM],d),o(`comparator trim`,e),e=e.replace(c[u.TILDETRIM],f),o(`tilde trim`,e),e=e.replace(c[u.CARETTRIM],p),o(`caret trim`,e);let l=e.split(` `).map(e=>ee(e,this.options)).join(` `).split(/\s+/).map(e=>T(e,this.options));i&&(l=l.filter(e=>(o(`loose invalid filter`,e,this.options),!!e.match(c[u.COMPARATORLOOSE])))),o(`range list`,l);let v=new Map,y=l.map(e=>new a(e,this.options));for(let e of y){if(_(e))return[e];v.set(e.value,e)}v.size>1&&v.has(``)&&v.delete(``);let b=[...v.values()];return r.set(t,b),b}intersects(t,n){if(!(t instanceof e))throw TypeError(`a Range is required`);return this.set.some(e=>y(e,n)&&t.set.some(t=>y(t,n)&&e.every(e=>t.every(t=>e.intersects(t,n)))))}test(e){if(!e)return!1;if(typeof e==`string`)try{e=new s(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(oe(this.set[t],e,this.options))return!0;return!1}};let r=new(Te()),i=k(),a=V(),o=D(),s=j(),{safeRe:c,src:l,t:u,comparatorTrimReplace:d,tildeTrimReplace:f,caretTrimReplace:p}=O(),{FLAG_INCLUDE_PRERELEASE:m,FLAG_LOOSE:h}=E(),g=new RegExp(l[u.BUILD],`g`),_=e=>e.value===`<0.0.0-0`,v=e=>e.value===``,y=(e,t)=>{let n=!0,r=e.slice(),i=r.pop();for(;n&&r.length;)n=r.every(e=>i.intersects(e,t)),i=r.pop();return n},ee=(e,t)=>(e=e.replace(c[u.BUILD],``),o(`comp`,e,t),e=C(e,t),o(`caret`,e),e=te(e,t),o(`tildes`,e),e=ne(e,t),o(`xrange`,e),e=ie(e,t),o(`stars`,e),e),b=e=>!e||e.toLowerCase()===`x`||e===`*`,x=(e,t,n)=>b(e)&&!b(t)||b(t)&&n&&!b(n),te=(e,t)=>e.trim().split(/\s+/).map(e=>S(e,t)).join(` `),S=(e,t)=>{let n=t.loose?c[u.TILDELOOSE]:c[u.TILDE],r=t.includePrerelease?`-0`:``;return e.replace(n,(t,n,i,a,s)=>{o(`tilde`,e,t,n,i,a,s);let c;return b(n)?c=``:b(i)?c=`>=${n}.0.0${r} <${+n+1}.0.0-0`:b(a)?c=`>=${n}.${i}.0${r} <${n}.${+i+1}.0-0`:s?(o(`replaceTilde pr`,s),c=`>=${n}.${i}.${a}-${s} <${n}.${+i+1}.0-0`):c=`>=${n}.${i}.${a} <${n}.${+i+1}.0-0`,o(`tilde return`,c),c})},C=(e,t)=>e.trim().split(/\s+/).map(e=>w(e,t)).join(` `),w=(e,t)=>{o(`caret`,e,t);let n=t.loose?c[u.CARETLOOSE]:c[u.CARET],r=t.includePrerelease?`-0`:``;return e.replace(n,(t,n,i,a,s)=>{o(`caret`,e,t,n,i,a,s);let c;return b(n)?c=``:b(i)?c=`>=${n}.0.0${r} <${+n+1}.0.0-0`:b(a)?c=n===`0`?`>=${n}.${i}.0${r} <${n}.${+i+1}.0-0`:`>=${n}.${i}.0${r} <${+n+1}.0.0-0`:s?(o(`replaceCaret pr`,s),c=n===`0`?i===`0`?`>=${n}.${i}.${a}-${s} <${n}.${i}.${+a+1}-0`:`>=${n}.${i}.${a}-${s} <${n}.${+i+1}.0-0`:`>=${n}.${i}.${a}-${s} <${+n+1}.0.0-0`):(o(`no pr`),c=n===`0`?i===`0`?`>=${n}.${i}.${a} <${n}.${i}.${+a+1}-0`:`>=${n}.${i}.${a} <${n}.${+i+1}.0-0`:`>=${n}.${i}.${a} <${+n+1}.0.0-0`),o(`caret return`,c),c})},ne=(e,t)=>(o(`replaceXRanges`,e,t),e.split(/\s+/).map(e=>re(e,t)).join(` `)),re=(e,t)=>{e=e.trim();let n=t.loose?c[u.XRANGELOOSE]:c[u.XRANGE];return e.replace(n,(n,r,i,a,s,c)=>{if(o(`xRange`,e,n,r,i,a,s,c),x(i,a,s))return e;let l=b(i),u=l||b(a),d=u||b(s),f=d;return r===`=`&&f&&(r=``),c=t.includePrerelease?`-0`:``,l?n=r===`>`||r===`<`?`<0.0.0-0`:`*`:r&&f?(u&&(a=0),s=0,r===`>`?(r=`>=`,u?(i=+i+1,a=0,s=0):(a=+a+1,s=0)):r===`<=`&&(r=`<`,u?i=+i+1:a=+a+1),r===`<`&&(c=`-0`),n=`${r+i}.${a}.${s}${c}`):u?n=`>=${i}.0.0${c} <${+i+1}.0.0-0`:d&&(n=`>=${i}.${a}.0${c} <${i}.${+a+1}.0-0`),o(`xRange return`,n),n})},ie=(e,t)=>(o(`replaceStars`,e,t),e.trim().replace(c[u.STAR],``)),T=(e,t)=>(o(`replaceGTE0`,e,t),e.trim().replace(c[t.includePrerelease?u.GTE0PRE:u.GTE0],``)),ae=e=>(t,n,r,i,a,o,s,c,l,u,d,f)=>(n=b(r)?``:b(i)?`>=${r}.0.0${e?`-0`:``}`:b(a)?`>=${r}.${i}.0${e?`-0`:``}`:o?`>=${n}`:`>=${n}${e?`-0`:``}`,c=b(l)?``:b(u)?`<${+l+1}.0.0-0`:b(d)?`<${l}.${+u+1}.0-0`:f?`<=${l}.${u}.${d}-${f}`:e?`<${l}.${u}.${+d+1}-0`:`<=${c}`,`${n} ${c}`.trim()),oe=(e,t,n)=>{for(let n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!n.includePrerelease){for(let n=0;n<e.length;n++)if(o(e[n].semver),e[n].semver!==a.ANY&&e[n].semver.prerelease.length>0){let r=e[n].semver;if(r.major===t.major&&r.minor===t.minor&&r.patch===t.patch)return!0}return!1}return!0}})),V=o(((e,t)=>{let n=Symbol(`SemVer ANY`);t.exports=class e{static get ANY(){return n}constructor(t,i){if(i=r(i),t instanceof e){if(t.loose===!!i.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(` `),s(`comparator`,t,i),this.options=i,this.loose=!!i.loose,this.parse(t),this.semver===n?this.value=``:this.value=this.operator+this.semver.version,s(`comp`,this)}parse(e){let t=this.options.loose?i[a.COMPARATORLOOSE]:i[a.COMPARATOR],r=e.match(t);if(!r)throw TypeError(`Invalid comparator: ${e}`);this.operator=r[1]===void 0?``:r[1],this.operator===`=`&&(this.operator=``),r[2]?this.semver=new c(r[2],this.options.loose):this.semver=n}toString(){return this.value}test(e){if(s(`Comparator.test`,e,this.options.loose),this.semver===n||e===n)return!0;if(typeof e==`string`)try{e=new c(e,this.options)}catch{return!1}return o(e,this.operator,this.semver,this.options)}intersects(t,n){if(!(t instanceof e))throw TypeError(`a Comparator is required`);return this.operator===``?this.value===``||new l(t.value,n).test(this.value):t.operator===``?t.value===``||new l(this.value,n).test(t.semver):(n=r(n),n.includePrerelease&&(this.value===`<0.0.0-0`||t.value===`<0.0.0-0`)||!n.includePrerelease&&(this.value.startsWith(`<0.0.0`)||t.value.startsWith(`<0.0.0`))?!1:!!(this.operator.startsWith(`>`)&&t.operator.startsWith(`>`)||this.operator.startsWith(`<`)&&t.operator.startsWith(`<`)||this.semver.version===t.semver.version&&this.operator.includes(`=`)&&t.operator.includes(`=`)||o(this.semver,`<`,t.semver,n)&&this.operator.startsWith(`>`)&&t.operator.startsWith(`<`)||o(this.semver,`>`,t.semver,n)&&this.operator.startsWith(`<`)&&t.operator.startsWith(`>`)))}};let r=k(),{safeRe:i,t:a}=O(),o=z(),s=D(),c=j(),l=B()})),H=o(((e,t)=>{let n=B();t.exports=(e,t,r)=>{try{t=new n(t,r)}catch{return!1}return t.test(e)}})),Ee=o(((e,t)=>{let n=B();t.exports=(e,t)=>new n(e,t).set.map(e=>e.map(e=>e.value).join(` `).trim().split(` `))})),De=o(((e,t)=>{let n=j(),r=B();t.exports=(e,t,i)=>{let a=null,o=null,s=null;try{s=new r(t,i)}catch{return null}return e.forEach(e=>{s.test(e)&&(!a||o.compare(e)===-1)&&(a=e,o=new n(a,i))}),a}})),Oe=o(((e,t)=>{let n=j(),r=B();t.exports=(e,t,i)=>{let a=null,o=null,s=null;try{s=new r(t,i)}catch{return null}return e.forEach(e=>{s.test(e)&&(!a||o.compare(e)===1)&&(a=e,o=new n(a,i))}),a}})),ke=o(((e,t)=>{let n=j(),r=B(),i=F();t.exports=(e,t)=>{e=new r(e,t);let a=new n(`0.0.0`);if(e.test(a)||(a=new n(`0.0.0-0`),e.test(a)))return a;a=null;for(let t=0;t<e.set.length;++t){let r=e.set[t],o=null;r.forEach(e=>{let t=new n(e.semver.version);switch(e.operator){case`>`:t.prerelease.length===0?t.patch++:t.prerelease.push(0),t.raw=t.format();case``:case`>=`:(!o||i(t,o))&&(o=t);break;case`<`:case`<=`:break;default:throw Error(`Unexpected operation: ${e.operator}`)}}),o&&(!a||i(a,o))&&(a=o)}return a&&e.test(a)?a:null}})),Ae=o(((e,t)=>{let n=B();t.exports=(e,t)=>{try{return new n(e,t).range||`*`}catch{return null}}})),U=o(((e,t)=>{let n=j(),r=V(),{ANY:i}=r,a=B(),o=H(),s=F(),c=I(),l=R(),u=L();t.exports=(e,t,d,f)=>{e=new n(e,f),t=new a(t,f);let p,m,h,g,_;switch(d){case`>`:p=s,m=l,h=c,g=`>`,_=`>=`;break;case`<`:p=c,m=u,h=s,g=`<`,_=`<=`;break;default:throw TypeError(`Must provide a hilo val of "<" or ">"`)}if(o(e,t,f))return!1;for(let n=0;n<t.set.length;++n){let a=t.set[n],o=null,s=null;if(a.forEach(e=>{e.semver===i&&(e=new r(`>=0.0.0`)),o||=e,s||=e,p(e.semver,o.semver,f)?o=e:h(e.semver,s.semver,f)&&(s=e)}),o.operator===g||o.operator===_||(!s.operator||s.operator===g)&&m(e,s.semver)||s.operator===_&&h(e,s.semver))return!1}return!0}})),je=o(((e,t)=>{let n=U();t.exports=(e,t,r)=>n(e,t,`>`,r)})),Me=o(((e,t)=>{let n=U();t.exports=(e,t,r)=>n(e,t,`<`,r)})),Ne=o(((e,t)=>{let n=B();t.exports=(e,t,r)=>(e=new n(e,r),t=new n(t,r),e.intersects(t,r))})),Pe=o(((e,t)=>{let n=H(),r=N();t.exports=(e,t,i)=>{let a=[],o=null,s=null,c=e.sort((e,t)=>r(e,t,i));for(let e of c)n(e,t,i)?(s=e,o||=e):(s&&a.push([o,s]),s=null,o=null);o&&a.push([o,null]);let l=[];for(let[e,t]of a)e===t?l.push(e):!t&&e===c[0]?l.push(`*`):t?e===c[0]?l.push(`<=${t}`):l.push(`${e} - ${t}`):l.push(`>=${e}`);let u=l.join(` || `),d=typeof t.raw==`string`?t.raw:String(t);return u.length<d.length?u:t}})),Fe=o(((e,t)=>{let n=B(),r=V(),{ANY:i}=r,a=H(),o=N(),s=(e,t,r={})=>{if(e===t)return!0;e=new n(e,r),t=new n(t,r);let i=!1;OUTER:for(let n of e.set){for(let e of t.set){let t=u(n,e,r);if(i||=t!==null,t)continue OUTER}if(i)return!1}return!0},c=[new r(`>=0.0.0-0`)],l=[new r(`>=0.0.0`)],u=(e,t,n)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===i){if(t.length===1&&t[0].semver===i)return!0;e=n.includePrerelease?c:l}if(t.length===1&&t[0].semver===i){if(n.includePrerelease)return!0;t=l}let r=new Set,s,u;for(let t of e)t.operator===`>`||t.operator===`>=`?s=d(s,t,n):t.operator===`<`||t.operator===`<=`?u=f(u,t,n):r.add(t.semver);if(r.size>1)return null;let p;if(s&&u&&(p=o(s.semver,u.semver,n),p>0||p===0&&(s.operator!==`>=`||u.operator!==`<=`)))return null;for(let e of r){if(s&&!a(e,String(s),n)||u&&!a(e,String(u),n))return null;for(let r of t)if(!a(e,String(r),n))return!1;return!0}let m,h,g,_,v=u&&!n.includePrerelease&&u.semver.prerelease.length?u.semver:!1,y=s&&!n.includePrerelease&&s.semver.prerelease.length?s.semver:!1;v&&v.prerelease.length===1&&u.operator===`<`&&v.prerelease[0]===0&&(v=!1);for(let e of t){if(_=_||e.operator===`>`||e.operator===`>=`,g=g||e.operator===`<`||e.operator===`<=`,s){if(y&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===y.major&&e.semver.minor===y.minor&&e.semver.patch===y.patch&&(y=!1),e.operator===`>`||e.operator===`>=`){if(m=d(s,e,n),m===e&&m!==s)return!1}else if(s.operator===`>=`&&!e.test(s.semver))return!1}if(u){if(v&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===v.major&&e.semver.minor===v.minor&&e.semver.patch===v.patch&&(v=!1),e.operator===`<`||e.operator===`<=`){if(h=f(u,e,n),h===e&&h!==u)return!1}else if(u.operator===`<=`&&!e.test(u.semver))return!1}if(!e.operator&&(u||s)&&p!==0)return!1}return!(s&&g&&!u&&p!==0||u&&_&&!s&&p!==0||y||v)},d=(e,t,n)=>{if(!e)return t;let r=o(e.semver,t.semver,n);return r>0?e:r<0||t.operator===`>`&&e.operator===`>=`?t:e},f=(e,t,n)=>{if(!e)return t;let r=o(e.semver,t.semver,n);return r<0?e:r>0||t.operator===`<`&&e.operator===`<=`?t:e};t.exports=s}));o(((e,t)=>{let n=O(),r=E(),i=j(),a=A();t.exports={parse:M(),valid:le(),clean:ue(),inc:de(),diff:fe(),major:pe(),minor:me(),patch:he(),prerelease:ge(),compare:N(),rcompare:_e(),compareLoose:ve(),compareBuild:P(),sort:ye(),rsort:be(),gt:F(),lt:I(),eq:xe(),neq:Se(),gte:L(),lte:R(),cmp:z(),coerce:Ce(),truncate:we(),Comparator:V(),Range:B(),satisfies:H(),toComparators:Ee(),maxSatisfying:De(),minSatisfying:Oe(),minVersion:ke(),validRange:Ae(),outside:U(),gtr:je(),ltr:Me(),intersects:Ne(),simplifyRange:Pe(),subset:Fe(),SemVer:i,re:n.re,src:n.src,tokens:n.t,SEMVER_SPEC_VERSION:r.SEMVER_SPEC_VERSION,RELEASE_TYPES:r.RELEASE_TYPES,compareIdentifiers:a.compareIdentifiers,rcompareIdentifiers:a.rcompareIdentifiers}}))();function Ie(){return typeof chrome<`u`&&typeof chrome?.runtime?.id==`string`&&chrome.runtime.id.length>0}function Le(e,t){if(typeof t!=`string`||!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(t))throw Error(`${e} must use an exact semver version in package.json`);return t}function Re(e,t){let n=Ie(),r=`/preview${e}${t?`?projectRoot=${encodeURIComponent(t)}`:``}`;if(n)return chrome.runtime.getURL(r);let i=`http://localhost:5710`;return typeof window<`u`&&window.location?.origin?i=window.location.origin:typeof self<`u`&&self.location?.origin&&(i=self.location.origin),`${i}${r}`}const W={EBADF:8,EEXIST:20,EINVAL:28,EIO:29,EISDIR:31,ENOENT:44,ENOTDIR:54,ENOTEMPTY:55,EPERM:63},ze=16877;async function Be(e){let t=new Map;t.set(``,{kind:`directory`,dirHandle:e});async function n(e,r){let i=e;for await(let[e,a]of i){let i=r===``?e:`${r}/${e}`;if(a.kind===`directory`)t.set(i,{kind:`directory`,dirHandle:a}),await n(a,i);else{let e=a,n=await e.getFile();t.set(i,{kind:`file`,fileHandle:e,size:n.size,mtime:n.lastModified})}}}return await n(e,``),{entries:t}}function G(e,t){return e===``?t:`${e}/${t}`}function Ve(e,t){return{getattr(t){let n=e.isDir(t.mode),r=e.isLink(t.mode)?t.opfs.linkTarget?.length??0:n?4096:t.opfs.size,i=new Date(t.opfs.mtime||t.timestamp);return{dev:1,ino:t.id,mode:t.mode,nlink:1,uid:0,gid:0,rdev:0,size:r,atime:i,mtime:i,ctime:i,blksize:4096,blocks:Math.ceil(r/4096)}},setattr(t,n){if(n.mode!==void 0&&(t.mode=t.mode&61440|n.mode&-61441),n.size!==void 0&&e.isFile(t.mode)){let e=n.size;t.opfs.size=e;let r=e;q(t.mount,async()=>{if(t.opfs.size>r)return;let n=await Je(t),i=t.mount.opts.sahProvider.acquire(t.opfs.relPath,n);try{i.truncate(e),i.flush()}finally{i.close(),t.mount.opts.sahProvider.release(t.opfs.relPath)}})}if(n.mtime!==void 0){let e=n.mtime.getTime();t.opfs.mtime=e,t.timestamp=e}},lookup(t,n){let r=t.opfs.children?.get(n);if(!r)throw new e.ErrnoError(W.ENOENT);return r},mknod(n,r,i,a){if(n.opfs.children?.has(r))throw new e.ErrnoError(W.EEXIST);let o=t.createNode(n,r,i,a);return n.opfs.children?.set(r,o),e.isDir(i)?q(n.mount,async()=>{let e=await(await J(n)).getDirectoryHandle(r,{create:!0});o.opfs.dirHandle=e}):e.isFile(i)&&q(n.mount,async()=>{let e=await(await J(n)).getFileHandle(r,{create:!0});o.opfs.fileHandle=e}),o},rename(t,n,r){let i=t.parent,a=t.name;if(!(a===r&&i===n)){if(n.opfs.children?.has(r))throw new e.ErrnoError(W.EEXIST);i.opfs.children?.delete(a),n.opfs.children?.set(r,t),t.name=r,t.parent=n,Ye(t,G(n.opfs.relPath,r)),e.isFile(t.mode)?q(t.mount,()=>Xe(t,i,a,n,r)):e.isDir(t.mode)&&q(t.mount,()=>Ze(t,i,a,n,r))}},unlink(t,n){let r=t.opfs.children?.get(n);if(!r)throw new e.ErrnoError(W.ENOENT);if(e.isDir(r.mode))throw new e.ErrnoError(W.EISDIR);t.opfs.children?.delete(n),e.isFile(r.mode)&&q(t.mount,async()=>{try{t.mount.opts.sahProvider.release(r.opfs.relPath)}catch{}await(await J(t)).removeEntry(n)})},rmdir(t,n){let r=t.opfs.children?.get(n);if(!r)throw new e.ErrnoError(W.ENOENT);if(!e.isDir(r.mode))throw new e.ErrnoError(W.ENOTDIR);if((r.opfs.children?.size??0)>0)throw new e.ErrnoError(W.ENOTEMPTY);t.opfs.children?.delete(n),q(t.mount,async()=>{await(await J(t)).removeEntry(n)})},readdir(t){if(!e.isDir(t.mode))throw new e.ErrnoError(W.ENOTDIR);let n=[`.`,`..`];for(let e of t.opfs.children?.keys()??[])n.push(e);return n},symlink(n,r,i){if(n.opfs.children?.has(r))throw new e.ErrnoError(W.EEXIST);let a=t.createNode(n,r,41471,0);return a.opfs.linkTarget=i,n.opfs.children?.set(r,a),a},readlink(t){if(!e.isLink(t.mode))throw new e.ErrnoError(W.EINVAL);return t.opfs.linkTarget??``}}}function He(e){return{open(t){let n=t.node;if(e.isDir(n.mode)||!e.isFile(n.mode))return;let r=n.mount.opts.sahProvider.acquire(n.opfs.relPath,n.opfs.fileHandle);t.sah=r,t.flags!==void 0&&t.flags&512?(r.truncate(0),n.opfs.size=0):n.opfs.size=r.getSize()},close(e){let t=e.sah;if(t)try{t.flush()}finally{t.close(),e.node.mount.opts.sahProvider.release(e.node.opfs.relPath),e.sah=void 0}},read(t,n,r,i,a){let o=t.sah;if(!o)throw new e.ErrnoError(W.EBADF);let s=new Uint8Array(n.buffer,n.byteOffset+r,i);return o.read(s,{at:a})},write(t,n,r,i,a){let o=t.sah;if(!o)throw new e.ErrnoError(W.EBADF);let s=new Uint8Array(n.buffer,n.byteOffset+r,i),c=o.write(s,{at:a}),l=Math.max(t.node.opfs.size,a+c);return t.node.opfs.size=l,t.node.opfs.mtime=Date.now(),t.node.timestamp=t.node.opfs.mtime,c},llseek(t,n,r){let i=n;if(r===1)i=t.position+n;else if(r===2){let e=t.sah;i=(e?e.getSize():t.node.opfs.size)+n}if(i<0)throw new e.ErrnoError(W.EINVAL);return t.position=i,i}}}function Ue(e,t,n,r){for(let[i,a]of r.entries){if(i===``)continue;let r=i.split(`/`),o=n;for(let t=0;t<r.length-1;t++){let n=r[t],i=o.opfs.children?.get(n);if(!i)throw new e.ErrnoError(W.EIO);o=i}let s=r[r.length-1];if(a.kind===`directory`){let e=t.createNode(o,s,ze,0);e.opfs.dirHandle=a.dirHandle,e.opfs.children=new Map,o.opfs.children?.set(s,e)}else{let e=t.createNode(o,s,33188,0);e.opfs.fileHandle=a.fileHandle,e.opfs.size=a.size,e.opfs.mtime=a.mtime,e.timestamp=a.mtime,o.opfs.children?.set(s,e)}}}function We(e){let t={mount(n){let{prewalk:r}=n.opts,i=r.entries.get(``);if(i?.kind!==`directory`)throw new e.ErrnoError(W.EINVAL);let a=t.createNode(null,`/`,ze,0);return a.mount=n,a.opfs.dirHandle=i.dirHandle,a.opfs.children=new Map,Ue(e,t,a,r),a},createNode(n,r,i,a=0){if(!e.isDir(i)&&!e.isFile(i)&&!e.isLink(i))throw new e.ErrnoError(W.EINVAL);let o=n===null?``:G(n.opfs?.relPath??``,r),s=e.createNode(n,r,i,a);return s.node_ops=t.node_ops,s.stream_ops=t.stream_ops,s.timestamp=Date.now(),n!==null&&(s.mount=n.mount),s.opfs={relPath:o,size:0,mtime:s.timestamp},e.isDir(i)&&(s.opfs.children=new Map),s},node_ops:void 0,stream_ops:void 0};return t.node_ops=Ve(e,t),t.stream_ops=He(e),t}const K=new WeakMap;function q(e,t){let n=(K.get(e)??Promise.resolve()).then(t,t);K.set(e,n),e.opts.flush||(e.opts.flush=()=>K.get(e)??Promise.resolve())}async function Ge(e){await(K.get(e)??Promise.resolve())}var Ke=class{backing;onClose;constructor(e,t){this.backing=e,this.onClose=t}read(e,t){let n=t?.at??0,r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),i=Math.min(this.backing.data.length,n+r.byteLength),a=Math.max(0,i-n);return r.set(this.backing.data.subarray(n,n+a),0),a}write(e,t){let n=t?.at??0,r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),i=n+r.byteLength;if(i>this.backing.data.length){let e=new Uint8Array(i);e.set(this.backing.data),this.backing.data=e}return this.backing.data.set(r,n),this.backing.dirty=!0,r.byteLength}truncate(e){if(e===this.backing.data.length)return;let t=new Uint8Array(e);t.set(this.backing.data.subarray(0,Math.min(e,this.backing.data.length))),this.backing.data=t,this.backing.dirty=!0}getSize(){return this.backing.data.length}flush(){}close(){this.onClose()}};function qe(){let e=new Map,t=new Set;return{provider:{acquire(n,r){let i=e.get(n);return i||(i={data:new Uint8Array,dirty:!0},e.set(n,i),t.add(n)),new Ke(i,()=>{i.dirty&&t.add(n)})},release(e){}},async preload(t){for(let[n,r]of t.entries){if(r.kind!==`file`)continue;let t=await r.fileHandle.getFile(),i=new Uint8Array(await t.arrayBuffer());e.set(n,{data:i,dirty:!1})}},async flush(t){for(let[n,r]of e){if(!r.dirty)continue;let e=n.split(`/`),i=t;for(let t of e.slice(0,-1))i=await i.getDirectoryHandle(t,{create:!0});let a=await(await i.getFileHandle(e[e.length-1],{create:!0})).createWritable(),o=new ArrayBuffer(r.data.byteLength);new Uint8Array(o).set(r.data),await a.write(o),await a.close(),r.dirty=!1}},getDirtyPaths(){return[...t]}}}async function J(e){if(e.opfs.dirHandle)return e.opfs.dirHandle;let t=e.opfs.relPath.split(`/`).filter(Boolean),n=e.mount.root.opfs.dirHandle;for(let e of t)n=await n.getDirectoryHandle(e,{create:!0});return e.opfs.dirHandle=n,n}async function Je(e){if(e.opfs.fileHandle)return e.opfs.fileHandle;let t=await(await J(e.parent)).getFileHandle(e.name,{create:!0});return e.opfs.fileHandle=t,t}function Ye(e,t){if(e.opfs.relPath=t,e.opfs.children)for(let[n,r]of e.opfs.children)Ye(r,G(t,n))}async function Xe(e,t,n,r,i){let a=await J(t),o=await J(r),s=await(await a.getFileHandle(n)).getFile(),c=new Uint8Array(await s.arrayBuffer()),l=await o.getFileHandle(i,{create:!0}),u=e.mount.opts.sahProvider.acquire(e.opfs.relPath,l);try{u.truncate(0),c.byteLength>0&&u.write(c,{at:0}),u.flush()}finally{u.close(),e.mount.opts.sahProvider.release(e.opfs.relPath)}await a.removeEntry(n),e.opfs.fileHandle=l}async function Ze(e,t,n,r,i){let a=await J(t),o=await J(r),s=await a.getDirectoryHandle(n),c=await o.getDirectoryHandle(i,{create:!0});await Qe(s,c),await a.removeEntry(n,{recursive:!0}),e.opfs.dirHandle=c}async function Qe(e,t){let n=e;for await(let[e,r]of n)if(r.kind===`directory`)await Qe(r,await t.getDirectoryHandle(e,{create:!0}));else{let n=await r.getFile(),i=new Uint8Array(await n.arrayBuffer()),a=await(await t.getFileHandle(e,{create:!0})).createWritable();await a.write(i),await a.close()}}function $e(e){return`slicc: synchronous access to mounted path '${e}' is not supported. Use the async slicc.fs module (e.g. \`await slicc.fs.read_text('${e}')\` or \`await slicc.fs.listdir('${e}')\`), or copy the file into the VFS first (\`await slicc.fs.read_bytes('${e}/<file>')\` then write it under /tmp).`}function Y(e,t){let n=new e.ErrnoError(W.EIO);return n.message=$e(t),n}function et(e){let t={mount(n){let r=e.createNode(null,`/`,16877,0);return r.node_ops=t.node_ops,r.stream_ops=t.stream_ops,r.mount=n,r},createNode(n,r,i,a=0){let o=e.createNode(n,r,i,a);return o.node_ops=t.node_ops,o.stream_ops=t.stream_ops,n!==null&&(o.mount=n.mount),o},node_ops:{getattr:e=>{throw Y(n(e),X(e))},setattr:e=>{throw Y(n(e),X(e))},lookup:e=>{throw Y(n(e),X(e))},mknod:e=>{throw Y(n(e),X(e))},rename:e=>{throw Y(n(e),X(e))},unlink:e=>{throw Y(n(e),X(e))},rmdir:e=>{throw Y(n(e),X(e))},readdir:e=>{throw Y(n(e),X(e))},symlink:e=>{throw Y(n(e),X(e))},readlink:e=>{throw Y(n(e),X(e))}},stream_ops:{open:e=>{throw Y(n(e.node),X(e.node))},close:()=>{},read:e=>{throw Y(n(e.node),X(e.node))},write:e=>{throw Y(n(e.node),X(e.node))},llseek:e=>{throw Y(n(e.node),X(e.node))}}};function n(t){return e}return t}function X(e){let t=e.mount;return t?.opts?.mountPath??t?.mountpoint??`<unknown mount>`}function tt(e,t){let n=e.MOUNT_BOMB_FS;return n||(n=et(t),e.MOUNT_BOMB_FS=n),n}function nt(e,t,n=()=>{}){if(t.length===0)return;let r=tt(e.filesystems,e);for(let i of t)try{try{e.stat(i)}catch{e.mkdirTree(i)}e.mount(r,{mountPath:i},i)}catch(e){n(`mount '${i}': bomb overlay failed: ${e instanceof Error?e.message:String(e)}`)}}function rt(e){return $e(e)}async function it(e,t){if(t.length===0)return;let n={};for(let e of t)n[e]=rt(e);let r=JSON.stringify({prefixes:t,messages:n});e.globals.set(`__slicc_mount_data`,r);try{await e.runPythonAsync(`
|
|
4
|
-
import builtins as _slicc_builtins
|
|
5
|
-
import io as _slicc_io
|
|
6
|
-
import os as _slicc_os
|
|
7
|
-
import os.path as _slicc_osp
|
|
8
|
-
import errno as _slicc_errno
|
|
9
|
-
import json as _slicc_json
|
|
10
|
-
|
|
11
|
-
_slicc_data = _slicc_json.loads(__slicc_mount_data)
|
|
12
|
-
_slicc_mount_prefixes = list(_slicc_data['prefixes'])
|
|
13
|
-
_slicc_mount_messages = dict(_slicc_data['messages'])
|
|
14
|
-
del _slicc_data
|
|
15
|
-
|
|
16
|
-
def _slicc_match_mount_prefix(path):
|
|
17
|
-
if path is None:
|
|
18
|
-
return None
|
|
19
|
-
if isinstance(path, int):
|
|
20
|
-
return None
|
|
21
|
-
try:
|
|
22
|
-
s = _slicc_os.fspath(path)
|
|
23
|
-
except TypeError:
|
|
24
|
-
return None
|
|
25
|
-
if isinstance(s, bytes):
|
|
26
|
-
try:
|
|
27
|
-
s = s.decode('utf-8', 'surrogateescape')
|
|
28
|
-
except Exception:
|
|
29
|
-
return None
|
|
30
|
-
if not isinstance(s, str):
|
|
31
|
-
return None
|
|
32
|
-
try:
|
|
33
|
-
resolved = _slicc_osp.abspath(s)
|
|
34
|
-
except Exception:
|
|
35
|
-
return None
|
|
36
|
-
for prefix in _slicc_mount_prefixes:
|
|
37
|
-
if resolved == prefix or resolved.startswith(prefix + '/'):
|
|
38
|
-
return prefix
|
|
39
|
-
return None
|
|
40
|
-
|
|
41
|
-
def _slicc_raise_mount_guard(path, prefix):
|
|
42
|
-
msg = _slicc_mount_messages.get(prefix)
|
|
43
|
-
if not msg:
|
|
44
|
-
msg = "slicc: synchronous access to mounted path '" + prefix + "' is not supported; use the async slicc.fs module."
|
|
45
|
-
raise OSError(_slicc_errno.EIO, msg, str(path))
|
|
46
|
-
|
|
47
|
-
_slicc_orig_builtins_open = _slicc_builtins.open
|
|
48
|
-
_slicc_orig_io_open = _slicc_io.open
|
|
49
|
-
_slicc_orig_listdir = _slicc_os.listdir
|
|
50
|
-
_slicc_orig_scandir = _slicc_os.scandir
|
|
51
|
-
_slicc_orig_stat = _slicc_os.stat
|
|
52
|
-
_slicc_orig_lstat = _slicc_os.lstat
|
|
53
|
-
_slicc_orig_mkdir = _slicc_os.mkdir
|
|
54
|
-
_slicc_orig_remove = _slicc_os.remove
|
|
55
|
-
_slicc_orig_rename = _slicc_os.rename
|
|
56
|
-
|
|
57
|
-
def _slicc_guarded_builtins_open(file, *args, **kwargs):
|
|
58
|
-
if isinstance(file, int):
|
|
59
|
-
return _slicc_orig_builtins_open(file, *args, **kwargs)
|
|
60
|
-
prefix = _slicc_match_mount_prefix(file)
|
|
61
|
-
if prefix is not None:
|
|
62
|
-
_slicc_raise_mount_guard(file, prefix)
|
|
63
|
-
return _slicc_orig_builtins_open(file, *args, **kwargs)
|
|
64
|
-
|
|
65
|
-
def _slicc_guarded_io_open(file, *args, **kwargs):
|
|
66
|
-
if isinstance(file, int):
|
|
67
|
-
return _slicc_orig_io_open(file, *args, **kwargs)
|
|
68
|
-
prefix = _slicc_match_mount_prefix(file)
|
|
69
|
-
if prefix is not None:
|
|
70
|
-
_slicc_raise_mount_guard(file, prefix)
|
|
71
|
-
return _slicc_orig_io_open(file, *args, **kwargs)
|
|
72
|
-
|
|
73
|
-
def _slicc_make_path_guard(orig):
|
|
74
|
-
def _guarded(path, *args, **kwargs):
|
|
75
|
-
prefix = _slicc_match_mount_prefix(path)
|
|
76
|
-
if prefix is not None:
|
|
77
|
-
_slicc_raise_mount_guard(path, prefix)
|
|
78
|
-
return orig(path, *args, **kwargs)
|
|
79
|
-
return _guarded
|
|
80
|
-
|
|
81
|
-
def _slicc_guarded_rename(src, dst, *args, **kwargs):
|
|
82
|
-
for p in (src, dst):
|
|
83
|
-
prefix = _slicc_match_mount_prefix(p)
|
|
84
|
-
if prefix is not None:
|
|
85
|
-
_slicc_raise_mount_guard(p, prefix)
|
|
86
|
-
return _slicc_orig_rename(src, dst, *args, **kwargs)
|
|
87
|
-
|
|
88
|
-
_slicc_builtins.open = _slicc_guarded_builtins_open
|
|
89
|
-
_slicc_io.open = _slicc_guarded_io_open
|
|
90
|
-
_slicc_os.listdir = _slicc_make_path_guard(_slicc_orig_listdir)
|
|
91
|
-
_slicc_os.scandir = _slicc_make_path_guard(_slicc_orig_scandir)
|
|
92
|
-
_slicc_os.stat = _slicc_make_path_guard(_slicc_orig_stat)
|
|
93
|
-
_slicc_os.lstat = _slicc_make_path_guard(_slicc_orig_lstat)
|
|
94
|
-
_slicc_os.mkdir = _slicc_make_path_guard(_slicc_orig_mkdir)
|
|
95
|
-
_slicc_os.remove = _slicc_make_path_guard(_slicc_orig_remove)
|
|
96
|
-
_slicc_os.rename = _slicc_guarded_rename
|
|
97
|
-
`)}finally{try{e.runPython(`del __slicc_mount_data`)}catch{}}}var at=class{port;nextId=1;pending=new Map;eventSubscribers=new Map;handler;disposed=!1;constructor(e){this.port=e,this.handler=e=>{let t=e.data;if(t?.type===`realm-rpc-res`){let t=e.data,n=this.pending.get(t.id);if(!n)return;this.pending.delete(t.id),typeof t.error==`string`?n.reject(Error(t.error)):n.resolve(t.result);return}if(t?.type===`realm-event`){let t=e.data,n=this.eventSubscribers.get(t.channel);if(!n)return;for(let e of[...n])try{e(t.payload)}catch{}}},e.addEventListener(`message`,this.handler),e.start?.()}get pendingCount(){return this.pending.size}call(e,t,n=[]){if(this.disposed)return Promise.reject(Error(`realm-rpc: client disposed`));let r=this.nextId++,i={type:`realm-rpc-req`,id:r,channel:e,op:t,args:n};return new Promise((e,t)=>{this.pending.set(r,{resolve:e,reject:t}),this.port.postMessage(i)})}onEvent(e,t){if(this.disposed)return()=>{};let n=this.eventSubscribers.get(e);return n||(n=new Set,this.eventSubscribers.set(e,n)),n.add(t),()=>{let n=this.eventSubscribers.get(e);n&&(n.delete(t),n.size===0&&this.eventSubscribers.delete(e))}}dispose(){if(this.disposed)return;this.disposed=!0,this.port.removeEventListener(`message`,this.handler);let e=Error(`realm-rpc: client disposed`);for(let t of this.pending.values())t.reject(e);this.pending.clear(),this.eventSubscribers.clear()}};function ot(e){return{listdir(t){return e.call(`vfs`,`readDir`,[t])},async readBytes(t){let n=await e.call(`vfs`,`readFileBinary`,[t]);return n instanceof Uint8Array?n:new Uint8Array(n)},async writeBytes(t,n){await e.call(`vfs`,`writeFileBinary`,[t,n])},stat(t){return e.call(`vfs`,`stat`,[t])},exists(t){return e.call(`vfs`,`exists`,[t])},async mkdir(t){await e.call(`vfs`,`mkdir`,[t])},async remove(t){await e.call(`vfs`,`rm`,[t])}}}async function st(e,t){let n=ot(t);e.registerJsModule(`_slicc_fs_js`,n),await e.runPythonAsync(`
|
|
98
|
-
import sys
|
|
99
|
-
import types
|
|
100
|
-
import js
|
|
101
|
-
|
|
102
|
-
def _build_slicc_module(_bridge):
|
|
103
|
-
fs_module = types.ModuleType("slicc.fs")
|
|
104
|
-
|
|
105
|
-
async def listdir(path):
|
|
106
|
-
result = await _bridge.listdir(path)
|
|
107
|
-
return [str(name) for name in result.to_py()] if hasattr(result, "to_py") else [str(name) for name in result]
|
|
108
|
-
|
|
109
|
-
async def read_bytes(path):
|
|
110
|
-
result = await _bridge.readBytes(path)
|
|
111
|
-
# Pyodide returns JS Uint8Array as memoryview; coerce to bytes.
|
|
112
|
-
if hasattr(result, "to_bytes"):
|
|
113
|
-
return result.to_bytes()
|
|
114
|
-
if isinstance(result, memoryview):
|
|
115
|
-
return bytes(result)
|
|
116
|
-
return bytes(result)
|
|
117
|
-
|
|
118
|
-
async def read_text(path, encoding="utf-8"):
|
|
119
|
-
data = await read_bytes(path)
|
|
120
|
-
return data.decode(encoding)
|
|
121
|
-
|
|
122
|
-
async def write_bytes(path, data):
|
|
123
|
-
if isinstance(data, str):
|
|
124
|
-
raise TypeError("write_bytes expects bytes-like; use write_text for str")
|
|
125
|
-
if isinstance(data, (bytes, bytearray, memoryview)):
|
|
126
|
-
payload = bytes(data)
|
|
127
|
-
else:
|
|
128
|
-
payload = bytes(data)
|
|
129
|
-
# Convert Python bytes to a real JS Uint8Array before crossing
|
|
130
|
-
# the realm RPC boundary. The bridge call ultimately hits
|
|
131
|
-
# \`port.postMessage\` (see realm-rpc.ts), which structured-
|
|
132
|
-
# clones its argument; a Python \`bytes\` would arrive as a
|
|
133
|
-
# PyProxy and trigger DataCloneError. \`js.Uint8Array.new\`
|
|
134
|
-
# copies the buffer into a JS typed array that clones cleanly.
|
|
135
|
-
await _bridge.writeBytes(path, js.Uint8Array.new(payload))
|
|
136
|
-
|
|
137
|
-
async def write_text(path, text, encoding="utf-8"):
|
|
138
|
-
if not isinstance(text, str):
|
|
139
|
-
raise TypeError("write_text expects str; use write_bytes for bytes")
|
|
140
|
-
await write_bytes(path, text.encode(encoding))
|
|
141
|
-
|
|
142
|
-
async def stat(path):
|
|
143
|
-
result = await _bridge.stat(path)
|
|
144
|
-
obj = result.to_py() if hasattr(result, "to_py") else result
|
|
145
|
-
if isinstance(obj, dict):
|
|
146
|
-
return {
|
|
147
|
-
"isDirectory": bool(obj.get("isDirectory", False)),
|
|
148
|
-
"isFile": bool(obj.get("isFile", False)),
|
|
149
|
-
"size": int(obj.get("size", 0)),
|
|
150
|
-
}
|
|
151
|
-
return {
|
|
152
|
-
"isDirectory": bool(getattr(obj, "isDirectory", False)),
|
|
153
|
-
"isFile": bool(getattr(obj, "isFile", False)),
|
|
154
|
-
"size": int(getattr(obj, "size", 0)),
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
async def exists(path):
|
|
158
|
-
result = await _bridge.exists(path)
|
|
159
|
-
return bool(result)
|
|
160
|
-
|
|
161
|
-
async def mkdir(path, parents=False):
|
|
162
|
-
# The underlying vfs.mkdir is recursive ({recursive: true} in
|
|
163
|
-
# realm-host.ts), matching parents=True semantics. With
|
|
164
|
-
# parents=False we raise FileExistsError when the target
|
|
165
|
-
# already exists, mirroring pathlib.Path.mkdir(parents=False).
|
|
166
|
-
if not parents:
|
|
167
|
-
try:
|
|
168
|
-
already = await exists(path)
|
|
169
|
-
except Exception:
|
|
170
|
-
already = False
|
|
171
|
-
if already:
|
|
172
|
-
raise FileExistsError(path)
|
|
173
|
-
await _bridge.mkdir(path)
|
|
174
|
-
|
|
175
|
-
async def remove(path):
|
|
176
|
-
await _bridge.remove(path)
|
|
177
|
-
|
|
178
|
-
async def walk(path):
|
|
179
|
-
results = []
|
|
180
|
-
async def _visit(current):
|
|
181
|
-
names = await listdir(current)
|
|
182
|
-
dirnames = []
|
|
183
|
-
filenames = []
|
|
184
|
-
for name in names:
|
|
185
|
-
child = current + "/" + name if current != "/" else "/" + name
|
|
186
|
-
try:
|
|
187
|
-
st = await stat(child)
|
|
188
|
-
except Exception:
|
|
189
|
-
continue
|
|
190
|
-
if st["isDirectory"]:
|
|
191
|
-
dirnames.append(name)
|
|
192
|
-
elif st["isFile"]:
|
|
193
|
-
filenames.append(name)
|
|
194
|
-
results.append((current, dirnames, filenames))
|
|
195
|
-
for d in list(dirnames):
|
|
196
|
-
child = current + "/" + d if current != "/" else "/" + d
|
|
197
|
-
await _visit(child)
|
|
198
|
-
await _visit(path)
|
|
199
|
-
return results
|
|
200
|
-
|
|
201
|
-
fs_module.listdir = listdir
|
|
202
|
-
fs_module.read_bytes = read_bytes
|
|
203
|
-
fs_module.read_text = read_text
|
|
204
|
-
fs_module.write_bytes = write_bytes
|
|
205
|
-
fs_module.write_text = write_text
|
|
206
|
-
fs_module.stat = stat
|
|
207
|
-
fs_module.exists = exists
|
|
208
|
-
fs_module.mkdir = mkdir
|
|
209
|
-
fs_module.remove = remove
|
|
210
|
-
fs_module.walk = walk
|
|
211
|
-
|
|
212
|
-
slicc_module = types.ModuleType("slicc")
|
|
213
|
-
slicc_module.fs = fs_module
|
|
214
|
-
sys.modules["slicc"] = slicc_module
|
|
215
|
-
sys.modules["slicc.fs"] = fs_module
|
|
216
|
-
return slicc_module
|
|
217
|
-
|
|
218
|
-
import _slicc_fs_js as _bridge
|
|
219
|
-
_build_slicc_module(_bridge)
|
|
220
|
-
del _build_slicc_module
|
|
221
|
-
del _bridge
|
|
222
|
-
`)}const ct=Le(`pyodide`,`314.0.3`),lt=`https://cdn.jsdelivr.net/pyodide/v${ct}/full/`,ut=`pyodide is not installed in node_modules: run \`ipk add pyodide@${ct}\` (no network fallback)`,Z={asmJs:`pyodide.asm.mjs`,asmWasm:`pyodide.asm.wasm`,stdlibZip:`python_stdlib.zip`,lockJson:`pyodide-lock.json`};async function dt(e,t){try{let[n,r,i,a]=await Promise.all([e.call(`vfs`,`readFile`,[`${t}/${Z.asmJs}`]),e.call(`vfs`,`readFileBinary`,[`${t}/${Z.asmWasm}`]),e.call(`vfs`,`readFileBinary`,[`${t}/${Z.stdlibZip}`]),e.call(`vfs`,`readFile`,[`${t}/${Z.lockJson}`])]);return{asmJsSource:n,asmWasmBytes:r instanceof Uint8Array?r:new Uint8Array(r),stdlibBytes:i instanceof Uint8Array?i:new Uint8Array(i),lockJsonString:a}}catch{return null}}function ft(e,t){let n=e+Z.asmWasm,r=globalThis.fetch,i=!0,a=(e,i)=>(typeof e==`string`?e:e instanceof URL?e.href:e.url)===n?Promise.resolve(new Response(t,{headers:{"Content-Type":`application/wasm`}})):r(e,i);return globalThis.fetch=a,{restore:()=>{i&&(i=!1,globalThis.fetch===a&&(globalThis.fetch=r))}}}async function pt(e,t,n){let r=await dt(n,t);if(!r)throw Error(ut);let i=URL.createObjectURL(new Blob([r.asmJsSource],{type:`text/javascript`})),a=URL.createObjectURL(new Blob([r.stdlibBytes],{type:`application/zip`})),o=`slicc-pyodide://local/${crypto.randomUUID()}/`,s=ft(o,r.asmWasmBytes);try{let t=await import(i);return await e.loadPyodide({indexURL:o,lockFileContents:r.lockJsonString,stdLibURL:a,createPyodideModule:t.default,packageBaseUrl:Re(`/workspace/python_wheels/`)})}finally{s.restore(),URL.revokeObjectURL(i),URL.revokeObjectURL(a)}}async function mt(e,t,n=()=>import(`./pyodide-CcJEvbeU.js`)){let r=[],i=[],a=new at(t),o;try{let t=await n();o=e.pyodideAssetRoot?await pt(t,e.pyodideAssetRoot,a):await t.loadPyodide({indexURL:e.pyodideIndexURL})}catch(e){a.dispose();let n={type:`realm-error`,message:`loadPyodide: ${e instanceof Error?e.message:String(e)}`};t.postMessage(n);return}let s=e=>{i.push(`Warning: ${e}\n`)},c=[],l;try{await ht(o,a,s,gt(e.pyodideAssetRoot)),c=await Et(o,e,s),await Dt(o,e,s),await wt(o,a,e,s),await Ot(o,a,s);try{o.FS.chdir(e.cwd)}catch{}kt(o,e,r,i),l=await At(o,i),await jt(c,e,a,s)}catch(e){a.dispose();let n={type:`realm-error`,message:`${e instanceof Error?e.message:String(e)}${i.length?`\n${i.join(``)}`:``}`};t.postMessage(n);return}a.dispose();let u={type:`realm-done`,stdout:r.join(``),stderr:i.join(``),exitCode:l};t.postMessage(u)}const Q=`/workspace/python_wheels`;async function ht(e,t,n,r){await yt(t,n,r);try{await e.loadPackage([`micropip`])}catch(e){n(`micropip preload failed: ${$(e)}`)}}function gt(e){return e?`${e}/${Z.lockJson}`:`/workspace/node_modules/pyodide/pyodide-lock.json`}const _t=1e4,vt=new WeakMap;function yt(e,t,n){let r=vt.get(e);if(r)return r;let i=bt(e,t,n);return vt.set(e,i),i}async function bt(e,t,n){let r;try{if(!await e.call(`vfs`,`exists`,[n]))return;let t=await e.call(`vfs`,`readFile`,[n]),i=JSON.parse(t);for(let[e,t]of Object.entries(i.packages??{}))if(t?.file_name&&x(t.name??e)===`micropip`){r=t;break}}catch(e){t(`micropip wheel staging skipped: ${$(e)}`);return}if(!r?.file_name||!r.sha256)return;let i=`${Q}/${r.file_name}`;try{if(await e.call(`vfs`,`exists`,[i]))return;let t=await ee(xt(e),{url:`${lt}${r.file_name}`,sha256:r.sha256,label:`micropip wheel`,timeoutMs:_t});await e.call(`vfs`,`mkdir`,[Q]),await e.call(`vfs`,`writeFileBinary`,[i,t])}catch(e){t(`micropip wheel staging failed: ${$(e)}`)}}function xt(e){return async(t,n)=>{let r={method:n?.method??`GET`,...n?.headers?{headers:n.headers}:{},...n?.body===void 0?{}:{body:n.body}},i=await St(e.call(`fetch`,`request`,[t,r]),n?.timeoutMs??_t,t);return{status:i.status,statusText:i.statusText,headers:i.headers,body:i.body instanceof Uint8Array?i.body:new Uint8Array(i.body),url:i.url}}}function St(e,t,n){let r,i=new Promise((e,i)=>{r=setTimeout(()=>i(Error(`request to ${n} timed out after ${t}ms`)),t)});return Promise.race([e,i]).finally(()=>clearTimeout(r))}function Ct(e){return{exists:t=>e.call(`vfs`,`exists`,[t]),readFile:t=>e.call(`vfs`,`readFile`,[t])}}async function wt(e,t,n,r){let i=Ct(t),a;try{a=await S(i,n.cwd)}catch(e){r(`manifest discovery failed: ${$(e)}`);return}if(a===null)return;let o,s;try{let[e,t]=await Promise.all([oe(i,a),se(i,a)]);o=e.dependencies,s=t}catch(e){r(`manifest read failed: ${$(e)}`);return}let c=new Map;for(let e of s)c.set(x(e.name),e);for(let t of o){let{name:n}=te(t);if(!n)continue;let i=c.get(x(n));if(!i){r(`no integrity pin for \`${n}\`; run \`di sync\` to repair`);continue}await Tt(e,i,r)}}async function Tt(e,t,n){switch(t.source){case`pyodide-cdn`:try{await e.loadPackage([t.name])}catch(e){n(`activation of \`${t.name}\` failed: ${$(e)}`)}return;case`pypi`:try{let n=`${Q}/${t.fileName}`;await e.runPythonAsync(`import micropip; await micropip.install('emfs:${n}')`)}catch(e){n(`activation of \`${t.name}\` failed: ${$(e)}`)}return;default:n(`unknown source \`${t.source}\` for \`${t.name}\`; skipping`)}}async function Et(e,t,n){if(t.opfsMountDbName===void 0)return[];let r=t.pyodideMountDirs??[t.cwd,`/tmp`],i=t.mountPoints??[],a=new Set(i.map(e=>e.path));try{return(await Pt(e,r,t.opfsMountDbName,n,{skipMountPaths:a})).mounts}catch(e){return n(`VFS→Pyodide OPFS mount failed: ${$(e)}`),[]}}async function Dt(e,t,n){let r=t.mountPoints??[];if(r.length!==0){try{nt(e.FS,r.map(e=>e.path),n)}catch(e){n(`bomb overlay install failed: ${$(e)}`)}try{await it(e,r.map(e=>e.path))}catch(e){n(`python mount guard install failed: ${$(e)}`)}}}async function Ot(e,t,n){try{await st(e,t)}catch(e){n(`slicc.fs registration failed: ${$(e)}`)}}function kt(e,t,n,r){e.setStdout({batched:e=>n.push(e+`
|
|
223
|
-
`)}),e.setStderr({batched:e=>r.push(e+`
|
|
224
|
-
`)});let i=!1;e.setStdin({stdin:()=>i||!t.stdin?null:(i=!0,t.stdin)}),e.globals.set(`__slicc_code`,t.code),e.globals.set(`__slicc_filename`,t.filename),e.globals.set(`__slicc_argv`,t.argv)}async function At(e,t){let n;try{await e.runPythonAsync(`
|
|
225
|
-
import sys
|
|
226
|
-
import traceback
|
|
227
|
-
|
|
228
|
-
__slicc_exit_code = 0
|
|
229
|
-
try:
|
|
230
|
-
sys.argv = __slicc_argv
|
|
231
|
-
exec(compile(__slicc_code, __slicc_filename, "exec"), {"__name__": "__main__", "__file__": __slicc_filename})
|
|
232
|
-
except SystemExit as exc:
|
|
233
|
-
code = exc.code
|
|
234
|
-
if code is None:
|
|
235
|
-
__slicc_exit_code = 0
|
|
236
|
-
elif isinstance(code, int):
|
|
237
|
-
__slicc_exit_code = code
|
|
238
|
-
else:
|
|
239
|
-
print(code, file=sys.stderr)
|
|
240
|
-
__slicc_exit_code = 1
|
|
241
|
-
except BaseException:
|
|
242
|
-
traceback.print_exc()
|
|
243
|
-
__slicc_exit_code = 1
|
|
244
|
-
`);let t=e.globals.get(`__slicc_exit_code`);n=typeof t==`number`?t:Number(t??1)}catch(e){let r=e instanceof Error?e.message:String(e);t.push(`${r}\n`),n=1}try{e.runPython(`del __slicc_code, __slicc_filename, __slicc_argv, __slicc_exit_code`)}catch{}return n}async function jt(e,t,n,r){if(t.opfsMountDbName!==void 0){try{await Lt(e)}catch(e){r(`Pyodide→VFS OPFS flush failed: ${e instanceof Error?e.message:String(e)}`)}try{await Rt(e,n)}catch(e){r(`Pyodide→kernel VFS invalidation failed: ${$(e)}`)}}}const Mt=new Set([`dev`,`proc`,`lib`,`tmp`,`home`]);function $(e){if(e&&typeof e==`object`){let t=e,n=typeof t.errno==`number`,r=typeof t.code==`string`;if(n||r){let e=typeof t.name==`string`&&t.name?t.name:`Error`,i=typeof t.message==`string`?t.message:``,a=[];n&&a.push(`errno ${t.errno}`),r&&a.push(t.code);let o=a.length?` (${a.join(`, `)})`:``;return i?`${e}: ${i}${o}`:`${e}${o}`}}return e instanceof Error?e.message:String(e)}function Nt(e){let t=e.FS.filesystems,n=t.OPFS_SYNC_FS;return n||(n=We(e.FS),t.OPFS_SYNC_FS=n),n}async function Pt(e,t,n,r=()=>{},i={}){let a=[],o=i.skipMountPaths??new Set,s=navigator.storage;if(!s?.getDirectory)return r(`VFS→Pyodide OPFS mount skipped: navigator.storage.getDirectory unavailable`),{mounts:a};let c;try{c=await s.getDirectory()}catch(e){return r(`VFS→Pyodide OPFS mount: getDirectory() failed: ${$(e)}`),{mounts:a}}let l;try{l=await c.getDirectoryHandle(n,{create:!0})}catch(e){return r(`VFS→Pyodide OPFS mount: opening '${n}' failed: ${$(e)}`),{mounts:a}}let u=Nt(e);for(let n of t){if(n===`/`){await Ft(e,u,l,o,a,r);continue}if(!o.has(n))try{let t=l;for(let e of n.split(`/`).filter(Boolean))t=await t.getDirectoryHandle(e,{create:!0});await It(e,u,n,t,a)}catch(e){r(`VFS→Pyodide OPFS mount '${n}' failed: ${$(e)}`)}}return{mounts:a}}async function Ft(e,t,n,r,i,a){try{let o=n;for await(let[n,s]of o){if(s.kind!==`directory`||Mt.has(n))continue;let o=`/${n}`;if(!r.has(o))try{await It(e,t,o,s,i)}catch(e){a(`VFS→Pyodide OPFS mount '${o}' failed: ${$(e)}`)}}}catch(e){a(`VFS→Pyodide OPFS mount '/' failed: ${$(e)}`)}}async function It(e,t,n,r,i){try{e.FS.stat(n)}catch{e.FS.mkdirTree(n)}let a=await Be(r),o=qe();await o.preload(a);let s={rootHandle:r,prewalk:a,sahProvider:o.provider},c=e.FS.mount(t,s,n),l=c?.mount??{opts:s,mountpoint:n,root:c};i.push({pyPath:n,mount:l,rootHandle:r,flushBuffers:o.flush,getDirtyPaths:o.getDirtyPaths})}async function Lt(e){for(let t of e)await Ge(t.mount),await t.flushBuffers(t.rootHandle)}async function Rt(e,t){let n=[];for(let t of e)for(let e of t.getDirtyPaths())n.push(t.pyPath===`/`?`/${e}`:`${t.pyPath}/${e}`);n.length>0&&await t.call(`vfs`,`invalidatePaths`,[n])}const zt={postMessage:(e,t)=>t?self.postMessage(e,t):self.postMessage(e),addEventListener:(e,t)=>self.addEventListener(e,t),removeEventListener:(e,t)=>self.removeEventListener(e,t)};self.addEventListener(`message`,e=>{if(e.data?.type!==`realm-init`)return;let t=e.data;t.kind===`py`&&mt(t,zt).catch(e=>{let t={type:`realm-error`,message:e instanceof Error?e.message:String(e)};self.postMessage(t)})});export{l as n,c as r,o as t};
|