shadow-claw 1.54.0 → 1.55.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/.well-known/mcp/server-card.json +1 -1
- package/.well-known/mcp.json +1 -1
- package/README.md +1 -1
- package/dist/cli/build/build.js +1 -1
- package/dist/cli/{chunk-DO2t9bUI.js → chunk--IuVyWfT.js} +24 -23
- package/dist/cli/{chunk-2ZYd9gYC.js → chunk--JpdI-Ht.js} +1 -1
- package/dist/cli/{chunk-m4Ineemy.js → chunk-4O8yrQuN.js} +1 -1
- package/dist/cli/{chunk-BiH9IXnQ.js → chunk-7S9Ywlfy.js} +1 -1
- package/dist/cli/{chunk-BmMOdYvk.js → chunk-B0SqqDSK.js} +1 -1
- package/dist/cli/chunk-BNaWaEm-.js +1 -0
- package/dist/cli/chunk-BXCsxO9e.js +1 -0
- package/dist/cli/chunk-Bq37qDoZ.js +18 -0
- package/dist/cli/{chunk-C1htf-nO.js → chunk-BrEeCKIo.js} +2 -2
- package/dist/cli/{chunk-BI1SOTM1.js → chunk-Bu3ylrhT.js} +8 -8
- package/dist/cli/{chunk-3smiGQoQ.js → chunk-C1v_s0Kb.js} +1 -1
- package/dist/cli/{chunk-DGeysxz3.js → chunk-C44G533y.js} +1 -1
- package/dist/cli/{chunk-9KiBalKu.js → chunk-C7hJLmsL.js} +1 -1
- package/dist/cli/{chunk-BFv9XSNd.js → chunk-CAaQWd6t.js} +1 -1
- package/dist/cli/chunk-CIkgn5Fh.js +1 -0
- package/dist/cli/chunk-CWEIN2kc.js +1 -0
- package/dist/cli/{chunk-BDeDZ-0L.js → chunk-CYg1lO1a.js} +1 -1
- package/dist/cli/{chunk-DXLmEQ3i.js → chunk-Ce09lwXT.js} +1 -1
- package/dist/cli/{chunk-XsfHeN4m.js → chunk-CpdqRSO-.js} +1 -1
- package/dist/cli/chunk-DB4x5L-B.js +1 -0
- package/dist/cli/{chunk-DaNyMqrk.js → chunk-DBvObsBQ.js} +1 -1
- package/dist/cli/chunk-DGPpt7Ka.js +1 -0
- package/dist/cli/chunk-DGagHluH.js +1 -0
- package/dist/cli/chunk-DUIs23D9.js +1 -0
- package/dist/cli/{chunk-CyvfQV16.js → chunk-DaurYOqg.js} +1 -1
- package/dist/cli/{chunk-DSFrcSyA.js → chunk-DfwRL0Ue.js} +1 -1
- package/dist/cli/{chunk-M2tZrzY5.js → chunk-DudYQk0p.js} +1 -1
- package/dist/cli/chunk-DvKo50Tp.js +2 -0
- package/dist/cli/{chunk-H_Mw5ypp.js → chunk-Dvrqte5Q.js} +2 -2
- package/dist/cli/{chunk-BtNO-m9T.js → chunk-DzhSExU0.js} +1 -1
- package/dist/cli/{chunk-IOMO88kZ.js → chunk-ENKlt3i9.js} +1 -1
- package/dist/cli/{chunk-Bspgzwsm.js → chunk-FWRwAX75.js} +8 -8
- package/dist/cli/chunk-Lf-Z-h48.js +32 -0
- package/dist/cli/{chunk-BucXnZ4Z.js → chunk-VRfkSLrD.js} +1 -1
- package/dist/cli/chunk-uaTxD024.js +1 -0
- package/dist/cli/cli.js +1 -1
- package/dist/cli/prerender/dsd-shell/prerender-dsd-shell.js +1 -1
- package/dist/headless-agent.js +2 -2
- package/dist/lib/components/index.js +25 -25
- package/dist/lib/components/settings/shadow-claw-accounts.js +1 -1
- package/dist/lib/components/settings/shadow-claw-channel-config.js +1 -1
- package/dist/lib/components/settings/shadow-claw-control-plane.js +1 -1
- package/dist/lib/components/settings/shadow-claw-git.js +1 -1
- package/dist/lib/components/settings/shadow-claw-integrations.js +1 -1
- package/dist/lib/components/settings/shadow-claw-llm.js +1 -1
- package/dist/lib/components/settings/shadow-claw-mcp-remote.js +1 -1
- package/dist/lib/components/settings/shadow-claw-networking.js +1 -1
- package/dist/lib/components/settings/shadow-claw-notifications.js +1 -1
- package/dist/lib/components/settings/shadow-claw-peerjs.js +1 -1
- package/dist/lib/components/settings/shadow-claw-storage.js +1 -1
- package/dist/lib/components/settings/shadow-claw-task-server.js +1 -1
- package/dist/lib/components/settings/shadow-claw-webvm.js +1 -1
- package/dist/lib/components/shadow-claw/utils/get-route.d.ts +3 -0
- package/dist/lib/components/shadow-claw/utils/sync-slotted-sidebar-active-links.d.ts +1 -1
- package/dist/lib/components/shadow-claw-accounts.js +1 -1
- package/dist/lib/components/shadow-claw-channel-config.js +1 -1
- package/dist/lib/components/shadow-claw-channels.js +1 -1
- package/dist/lib/components/shadow-claw-chat.js +1 -1
- package/dist/lib/components/shadow-claw-control-plane.js +1 -1
- package/dist/lib/components/shadow-claw-conversations.js +1 -1
- package/dist/lib/components/shadow-claw-file-viewer.js +1 -1
- package/dist/lib/components/shadow-claw-files.js +1 -1
- package/dist/lib/components/shadow-claw-git.js +1 -1
- package/dist/lib/components/shadow-claw-integrations.js +1 -1
- package/dist/lib/components/shadow-claw-llm.js +1 -1
- package/dist/lib/components/shadow-claw-mcp-remote.js +1 -1
- package/dist/lib/components/shadow-claw-networking.js +1 -1
- package/dist/lib/components/shadow-claw-notifications.js +1 -1
- package/dist/lib/components/shadow-claw-page-header.js +1 -1
- package/dist/lib/components/shadow-claw-pages.js +1 -1
- package/dist/lib/components/shadow-claw-peerjs.js +1 -1
- package/dist/lib/components/shadow-claw-settings.js +1 -1
- package/dist/lib/components/shadow-claw-storage.js +1 -1
- package/dist/lib/components/shadow-claw-task-server.js +1 -1
- package/dist/lib/components/shadow-claw-tasks.js +1 -1
- package/dist/lib/components/shadow-claw-terminal.js +1 -1
- package/dist/lib/components/shadow-claw-tools.js +1 -1
- package/dist/lib/components/shadow-claw-webvm.js +1 -1
- package/dist/lib/components/shadow-claw.js +1 -1
- package/dist/lib/{configure-peer-js-D5jDCtLx.js → configure-peer-js-C9554Slv.js} +2 -2
- package/dist/lib/{configure-peer-js-D5jDCtLx.js.map → configure-peer-js-C9554Slv.js.map} +1 -1
- package/dist/lib/{file-viewer-B4CL4e0i.js → file-viewer-DBc5dxNy.js} +2 -2
- package/dist/lib/{file-viewer-B4CL4e0i.js.map → file-viewer-DBc5dxNy.js.map} +1 -1
- package/dist/lib/index.js +28 -27
- package/dist/lib/{init-control-plane-l2uFnhGV.js → init-control-plane-D-41Fm5q.js} +12 -12
- package/dist/lib/{init-control-plane-l2uFnhGV.js.map → init-control-plane-D-41Fm5q.js.map} +1 -1
- package/dist/lib/{markdown-0_p_zfxL.js → markdown-KnDWzWJJ.js} +2 -2
- package/dist/lib/{markdown-0_p_zfxL.js.map → markdown-KnDWzWJJ.js.map} +1 -1
- package/dist/lib/{orchestrator-D6wm8Sec.js → orchestrator-BEZcqgR5.js} +9 -9
- package/dist/lib/{orchestrator-D6wm8Sec.js.map → orchestrator-BEZcqgR5.js.map} +1 -1
- package/dist/lib/{orchestrator-Dh-hnIpK.js → orchestrator-Cda13e5U.js} +4 -4
- package/dist/lib/{orchestrator-Dh-hnIpK.js.map → orchestrator-Cda13e5U.js.map} +1 -1
- package/dist/lib/{peerjs-BWZnsD0B.js → peerjs-DYkUTcee.js} +5 -5
- package/dist/lib/{peerjs-BWZnsD0B.js.map → peerjs-DYkUTcee.js.map} +1 -1
- package/dist/lib/{push-client-MybDfOdi.js → push-client-CQtCFDaD.js} +3 -3
- package/dist/lib/{push-client-MybDfOdi.js.map → push-client-CQtCFDaD.js.map} +1 -1
- package/dist/lib/security/custom-element-security.d.ts +8 -4
- package/dist/lib/{shadow-claw-PdOpgTxH.js → shadow-claw-DYe9u6Tp.js} +142 -33
- package/dist/lib/shadow-claw-DYe9u6Tp.js.map +1 -0
- package/dist/lib/{shadow-claw-accounts-3bR76EOb.js → shadow-claw-accounts-D2URoHys.js} +2 -2
- package/dist/lib/{shadow-claw-accounts-3bR76EOb.js.map → shadow-claw-accounts-D2URoHys.js.map} +1 -1
- package/dist/lib/{shadow-claw-channel-config-ChdZ1iB8.js → shadow-claw-channel-config-buXoz2xv.js} +3 -3
- package/dist/lib/{shadow-claw-channel-config-ChdZ1iB8.js.map → shadow-claw-channel-config-buXoz2xv.js.map} +1 -1
- package/dist/lib/{shadow-claw-channels-CK9sc7h_.js → shadow-claw-channels-5yVJ1gLk.js} +3 -3
- package/dist/lib/{shadow-claw-channels-CK9sc7h_.js.map → shadow-claw-channels-5yVJ1gLk.js.map} +1 -1
- package/dist/lib/{shadow-claw-chat-B6uuZnJ7.js → shadow-claw-chat-CVc-7ycM.js} +7 -7
- package/dist/lib/{shadow-claw-chat-B6uuZnJ7.js.map → shadow-claw-chat-CVc-7ycM.js.map} +1 -1
- package/dist/lib/{shadow-claw-control-plane-BpRcl312.js → shadow-claw-control-plane-B5vsF91B.js} +6 -6
- package/dist/lib/{shadow-claw-control-plane-BpRcl312.js.map → shadow-claw-control-plane-B5vsF91B.js.map} +1 -1
- package/dist/lib/{shadow-claw-conversations-Dc_Xk2mB.js → shadow-claw-conversations-PGK5zqn3.js} +54 -12
- package/dist/lib/{shadow-claw-conversations-Dc_Xk2mB.js.map → shadow-claw-conversations-PGK5zqn3.js.map} +1 -1
- package/dist/lib/{shadow-claw-file-viewer-C4x1PtB2.js → shadow-claw-file-viewer-DSqn0hgx.js} +6 -6
- package/dist/lib/{shadow-claw-file-viewer-C4x1PtB2.js.map → shadow-claw-file-viewer-DSqn0hgx.js.map} +1 -1
- package/dist/lib/{shadow-claw-files-DhnHbXKf.js → shadow-claw-files-vOa9ZWbr.js} +6 -6
- package/dist/lib/{shadow-claw-files-DhnHbXKf.js.map → shadow-claw-files-vOa9ZWbr.js.map} +1 -1
- package/dist/lib/{shadow-claw-git-BeQ1ElUd.js → shadow-claw-git-D54Z85Bj.js} +4 -4
- package/dist/lib/{shadow-claw-git-BeQ1ElUd.js.map → shadow-claw-git-D54Z85Bj.js.map} +1 -1
- package/dist/lib/{shadow-claw-integrations-Bbdolk3w.js → shadow-claw-integrations-BTubMH9d.js} +2 -2
- package/dist/lib/{shadow-claw-integrations-Bbdolk3w.js.map → shadow-claw-integrations-BTubMH9d.js.map} +1 -1
- package/dist/lib/{shadow-claw-llm-DPda4L3C.js → shadow-claw-llm-8koGTNYs.js} +3 -3
- package/dist/lib/{shadow-claw-llm-DPda4L3C.js.map → shadow-claw-llm-8koGTNYs.js.map} +1 -1
- package/dist/lib/{shadow-claw-mcp-remote-Dn9c30WI.js → shadow-claw-mcp-remote-C2jwBsQt.js} +2 -2
- package/dist/lib/{shadow-claw-mcp-remote-Dn9c30WI.js.map → shadow-claw-mcp-remote-C2jwBsQt.js.map} +1 -1
- package/dist/lib/{shadow-claw-networking-zqNuyn3-.js → shadow-claw-networking-BV-rna16.js} +2 -2
- package/dist/lib/{shadow-claw-networking-zqNuyn3-.js.map → shadow-claw-networking-BV-rna16.js.map} +1 -1
- package/dist/lib/{shadow-claw-notifications-DFgdo33v.js → shadow-claw-notifications-Dku7VBLk.js} +2 -2
- package/dist/lib/{shadow-claw-notifications-DFgdo33v.js.map → shadow-claw-notifications-Dku7VBLk.js.map} +1 -1
- package/dist/lib/{shadow-claw-page-header-B7LFGQRf.js → shadow-claw-page-header-VPjYWfsT.js} +2 -2
- package/dist/lib/{shadow-claw-page-header-B7LFGQRf.js.map → shadow-claw-page-header-VPjYWfsT.js.map} +1 -1
- package/dist/lib/{shadow-claw-pages-DLspFqdK.js → shadow-claw-pages-DXrM6hgZ.js} +29 -19
- package/dist/lib/shadow-claw-pages-DXrM6hgZ.js.map +1 -0
- package/dist/lib/{shadow-claw-peerjs-D8xWwuWR.js → shadow-claw-peerjs-D3xonez5.js} +3 -3
- package/dist/lib/{shadow-claw-peerjs-D8xWwuWR.js.map → shadow-claw-peerjs-D3xonez5.js.map} +1 -1
- package/dist/lib/{shadow-claw-settings-NbvzXASD.js → shadow-claw-settings-DMTx6OS9.js} +5 -5
- package/dist/lib/{shadow-claw-settings-NbvzXASD.js.map → shadow-claw-settings-DMTx6OS9.js.map} +1 -1
- package/dist/lib/{shadow-claw-storage-B_NAoZmd.js → shadow-claw-storage-BJLnukxa.js} +3 -3
- package/dist/lib/{shadow-claw-storage-B_NAoZmd.js.map → shadow-claw-storage-BJLnukxa.js.map} +1 -1
- package/dist/lib/{shadow-claw-task-server-BaQJXhYJ.js → shadow-claw-task-server-DcMj20hD.js} +2 -2
- package/dist/lib/{shadow-claw-task-server-BaQJXhYJ.js.map → shadow-claw-task-server-DcMj20hD.js.map} +1 -1
- package/dist/lib/{shadow-claw-tasks-CAZua0-j.js → shadow-claw-tasks-BQBe4lVi.js} +7 -7
- package/dist/lib/{shadow-claw-tasks-CAZua0-j.js.map → shadow-claw-tasks-BQBe4lVi.js.map} +1 -1
- package/dist/lib/{shadow-claw-terminal-B2YJhkJL.js → shadow-claw-terminal-DPEzTxXv.js} +2 -2
- package/dist/lib/{shadow-claw-terminal-B2YJhkJL.js.map → shadow-claw-terminal-DPEzTxXv.js.map} +1 -1
- package/dist/lib/{shadow-claw-tools-CkZWxxTm.js → shadow-claw-tools-BCnU8FaK.js} +6 -6
- package/dist/lib/{shadow-claw-tools-CkZWxxTm.js.map → shadow-claw-tools-BCnU8FaK.js.map} +1 -1
- package/dist/lib/{shadow-claw-webvm-BL9cgrP9.js → shadow-claw-webvm-CnW-hoJ8.js} +2 -2
- package/dist/lib/{shadow-claw-webvm-BL9cgrP9.js.map → shadow-claw-webvm-CnW-hoJ8.js.map} +1 -1
- package/dist/lib/subsystems/mcp/webmcp.d.ts +15 -2
- package/dist/lib/{sync-web-mcp-registration-dW2MVCj4.js → sync-web-mcp-registration-DwpGjVdo.js} +10 -4
- package/dist/lib/sync-web-mcp-registration-DwpGjVdo.js.map +1 -0
- package/dist/lib/{tools-D7whby3H.js → tools-CP6G0HF7.js} +5 -6
- package/dist/lib/tools-CP6G0HF7.js.map +1 -0
- package/dist/lib/{trusted-types-d0cdkut_.js → trusted-types-0cu5Dm6M.js} +29 -4
- package/dist/lib/{trusted-types-d0cdkut_.js.map → trusted-types-0cu5Dm6M.js.map} +1 -1
- package/dist/lib/utils/index.d.ts +1 -0
- package/dist/lib/utils/index.js +4 -2
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/utils/resolve-page-script-dependencies.d.ts +19 -0
- package/dist/lib/utils/resolve-page-script-dependencies.js +98 -0
- package/dist/lib/utils/resolve-page-script-dependencies.js.map +1 -0
- package/dist/lib/utils/utils.js +1 -1
- package/dist/lib/webmcp-Bf9rT7uu.js +2001 -0
- package/dist/lib/webmcp-Bf9rT7uu.js.map +1 -0
- package/dist/public/.well-known/mcp/server-card.json +1 -1
- package/dist/public/.well-known/mcp.json +1 -1
- package/dist/public/AGENTS.md +3 -3
- package/dist/public/README.md +1 -1
- package/dist/public/agent.worker.js +2 -2
- package/dist/public/components/shadow-claw/shadow-claw.css +1 -1
- package/dist/public/components/shadow-claw/shadow-claw.html +1 -1
- package/dist/public/components/shadow-claw-conversations/shadow-claw-conversations.css +1 -1
- package/dist/public/components/shadow-claw-conversations/shadow-claw-conversations.html +1 -1
- package/dist/public/{configure-peer-js-WLRM7Qa7.js → configure-peer-js-OYl3V8sW.js} +1 -1
- package/dist/public/{custom-element-security-Cl991z-x.js → custom-element-security-BR4V40j4.js} +1 -1
- package/dist/public/docs/example/article/index.html +3 -3
- package/dist/public/docs/example/article.html +3 -3
- package/dist/public/docs/publishing/index.html +3 -3
- package/dist/public/docs/publishing.html +3 -3
- package/dist/public/docs/skill-creator/index.html +3 -3
- package/dist/public/docs/skill-creator.html +3 -3
- package/dist/public/docs/subsystems/custom-element-security.md +19 -5
- package/dist/public/docs/subsystems/pages.md +10 -2
- package/dist/public/docs/subsystems/tools.md +1 -2
- package/dist/public/docs/subsystems/webmcp.md +41 -6
- package/dist/public/{download-group-file-fFjoIIp4.js → download-group-file-BNmK8wac.js} +1 -1
- package/dist/public/e2e/README.md +2 -2
- package/dist/public/{e2e-bridge-CiSfBRT4.js → e2e-bridge-4phD1JUQ.js} +1 -1
- package/dist/public/{file-viewer-DFC3kfeO.js → file-viewer-Dbh3K9nL.js} +1 -1
- package/dist/public/index.html +3 -3
- package/dist/public/index.js +1 -1
- package/dist/public/{init-control-plane-BEbcwmmv.js → init-control-plane-DGOY_RNS.js} +1 -1
- package/dist/public/llms.txt +1 -1
- package/dist/public/main/index.html +3 -3
- package/dist/public/main/memory/index.html +3 -3
- package/dist/public/main/memory.html +3 -3
- package/dist/public/main.html +3 -3
- package/dist/public/{markdown-BeglYzw9.js → markdown-BPZYpfGm.js} +1 -1
- package/dist/public/{orchestrator-BlvEG3PO.js → orchestrator-OoUK7CF9.js} +1 -1
- package/dist/public/{orchestrator-DTNrntd4.js → orchestrator-a9047bGu.js} +1 -1
- package/dist/public/{peerjs-CnBdK94R.js → peerjs-Cbn310Tz.js} +1 -1
- package/dist/public/{push-client-DOHbdCyj.js → push-client-Dy4LGJy9.js} +1 -1
- package/dist/public/service-worker.js +1 -1
- package/dist/public/shadow-claw-B-HWC1uN.js +1180 -0
- package/dist/public/{shadow-claw-accounts-C6FXVw2K.js → shadow-claw-accounts-Di-anCZ1.js} +1 -1
- package/dist/public/{shadow-claw-channels-tr_r60Kq.js → shadow-claw-channels-RVwCE8pE.js} +1 -1
- package/dist/public/{shadow-claw-chat-BAAPhAOs.js → shadow-claw-chat-DI1q8UnX.js} +1 -1
- package/dist/public/{shadow-claw-control-plane-C_5VIx8E.js → shadow-claw-control-plane-KXEdLOGl.js} +2 -2
- package/dist/public/{shadow-claw-conversations-DGYZdDa3.js → shadow-claw-conversations-BCBGtS30.js} +40 -6
- package/dist/public/{shadow-claw-file-viewer-5j2-Z3fN.js → shadow-claw-file-viewer-CW3t6j-w.js} +1 -1
- package/dist/public/{shadow-claw-files-DKF4Yy0m.js → shadow-claw-files-JQ-o0ImX.js} +1 -1
- package/dist/public/{shadow-claw-git-CtUTJXKT.js → shadow-claw-git-D2M8VixW.js} +2 -2
- package/dist/public/{shadow-claw-integrations-CuBy9D3z.js → shadow-claw-integrations-Cgw6v9_1.js} +1 -1
- package/dist/public/{shadow-claw-llm-BIfNNjGL.js → shadow-claw-llm-74ieXp7i.js} +1 -1
- package/dist/public/{shadow-claw-mcp-remote-C17FXvrb.js → shadow-claw-mcp-remote-BX0BkSmy.js} +1 -1
- package/dist/public/{shadow-claw-networking-CjxQ1CLI.js → shadow-claw-networking-DNX8vaIQ.js} +1 -1
- package/dist/public/{shadow-claw-notifications-Brn2O3Ps.js → shadow-claw-notifications-BLTaGAny.js} +1 -1
- package/dist/public/{shadow-claw-page-header-Bn1P7Cxb.js → shadow-claw-page-header-CjFOdo9v.js} +1 -1
- package/dist/public/shadow-claw-pages-DOQqMm0_.js +645 -0
- package/dist/public/{shadow-claw-settings-CfDm0hVA.js → shadow-claw-settings-DFtl0Fy8.js} +2 -2
- package/dist/public/{shadow-claw-storage-DOOesRzw.js → shadow-claw-storage-gQGExZRq.js} +1 -1
- package/dist/public/{shadow-claw-task-server-H36iDDp2.js → shadow-claw-task-server-Ca45uY7S.js} +1 -1
- package/dist/public/{shadow-claw-tasks-4JsjSGkN.js → shadow-claw-tasks-CCTaaSdi.js} +1 -1
- package/dist/public/{shadow-claw-terminal-CTRTcYz-.js → shadow-claw-terminal-BfgulLkl.js} +1 -1
- package/dist/public/{shadow-claw-tools-Dm1LxNf4.js → shadow-claw-tools-V8NA4n18.js} +1 -1
- package/dist/public/{shadow-claw-webvm-JzuPe9Nr.js → shadow-claw-webvm-CxxI2bnC.js} +1 -1
- package/dist/public/sync-web-mcp-registration-CkCA8UFm.js +1 -0
- package/dist/public/{tools-FiTtOlIt.js → tools-CwQq5tJH.js} +2 -2
- package/dist/public/webmcp-CmtWOAFm.js +6 -0
- package/dist/server.js +2 -2
- package/package.json +3 -3
- package/src/cli/prerender/dsd-shell/prerender-dsd-shell.test.ts +16 -0
- package/src/cli/prerender/dsd-shell/prerender-dsd-shell.ts +62 -1
- package/src/cli/prerender/pretty-paths/prerender-pretty-paths.test.ts +277 -0
- package/src/cli/prerender/pretty-paths/prerender-pretty-paths.ts +28 -1
- package/src/cli/site-config/custom-elements/build-custom-element-script-tags.ts +13 -1
- package/src/components/shadow-claw/shadow-claw.css +12 -0
- package/src/components/shadow-claw/shadow-claw.html +12 -2
- package/src/components/shadow-claw/utils/bind-event-listeners.test.ts +18 -0
- package/src/components/shadow-claw/utils/bind-event-listeners.ts +14 -0
- package/src/components/shadow-claw/utils/get-route.test.ts +35 -0
- package/src/components/shadow-claw/utils/get-route.ts +18 -0
- package/src/components/shadow-claw/utils/sync-slotted-sidebar-active-links.test.ts +152 -1
- package/src/components/shadow-claw/utils/sync-slotted-sidebar-active-links.ts +139 -8
- package/src/components/shadow-claw-conversations/shadow-claw-conversations.css +11 -0
- package/src/components/shadow-claw-conversations/shadow-claw-conversations.html +27 -4
- package/src/components/shadow-claw-conversations/shadow-claw-conversations.ts +32 -4
- package/src/components/shadow-claw-pages/shadow-claw-pages-scripts.test.ts +266 -0
- package/src/components/shadow-claw-pages/shadow-claw-pages.ts +41 -17
- package/src/core/orchestrator/utils/sync-web-mcp-registration.test.ts +18 -1
- package/src/core/orchestrator/utils/sync-web-mcp-registration.ts +8 -0
- package/src/core/utils/init-control-plane.test.ts +9 -4
- package/src/security/custom-element-security.test.ts +65 -0
- package/src/security/custom-element-security.ts +67 -4
- package/src/stores/tools.test.ts +5 -3
- package/src/stores/tools.ts +5 -10
- package/src/subsystems/mcp/webmcp.test.ts +84 -13
- package/src/subsystems/mcp/webmcp.ts +73 -10
- package/src/utils/index.ts +1 -0
- package/src/utils/resolve-page-script-dependencies.test.ts +245 -0
- package/src/utils/resolve-page-script-dependencies.ts +198 -0
- package/dist/cli/chunk-B1hufJeO.js +0 -1
- package/dist/cli/chunk-BZpn8npn.js +0 -1
- package/dist/cli/chunk-Bw5aOTFr.js +0 -1
- package/dist/cli/chunk-C8nH01Gw.js +0 -32
- package/dist/cli/chunk-CK1ZoyoE.js +0 -17
- package/dist/cli/chunk-CVkhDr-7.js +0 -1
- package/dist/cli/chunk-Cum07Vlh.js +0 -1
- package/dist/cli/chunk-D3UhDDmV.js +0 -2
- package/dist/cli/chunk-D8GI6qj6.js +0 -1
- package/dist/cli/chunk-DEH-FvmP.js +0 -1
- package/dist/cli/chunk-DksvJ_kf.js +0 -1
- package/dist/cli/chunk-RGb9wM4R.js +0 -1
- package/dist/lib/shadow-claw-PdOpgTxH.js.map +0 -1
- package/dist/lib/shadow-claw-pages-DLspFqdK.js.map +0 -1
- package/dist/lib/sync-web-mcp-registration-dW2MVCj4.js.map +0 -1
- package/dist/lib/tools-D7whby3H.js.map +0 -1
- package/dist/lib/webmcp-CYTNZfkn.js +0 -1687
- package/dist/lib/webmcp-CYTNZfkn.js.map +0 -1
- package/dist/public/shadow-claw-CnNX-WCh.js +0 -1158
- package/dist/public/shadow-claw-pages-BwOOqRWW.js +0 -645
- package/dist/public/sync-web-mcp-registration-BnHVUjat.js +0 -1
- package/dist/public/webmcp-_TBqXlVW.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./chunk-uAI_Zi6n.js";import{existsSync as t}from"node:fs";import n from"node:path";import{pathToFileURL as r}from"node:url";import i from"node:process";const a=e(import.meta.url);let o=null;async function s(){if(o)return o;let e=i.env.NODE_ENV===`test`,s=n.join(a,`dist/headless-agent.js`);if(!e&&t(s))return o=await import(r(s).href),o;try{return o={...await import(`./chunk-
|
|
1
|
+
import{t as e}from"./chunk-uAI_Zi6n.js";import{existsSync as t}from"node:fs";import n from"node:path";import{pathToFileURL as r}from"node:url";import i from"node:process";const a=e(import.meta.url);let o=null;async function s(){if(o)return o;let e=i.env.NODE_ENV===`test`,s=n.join(a,`dist/headless-agent.js`);if(!e&&t(s))return o=await import(r(s).href),o;try{return o={...await import(`./chunk-7S9Ywlfy.js`)},o}catch{try{return o={...await import(`./chunk-7S9Ywlfy.js`)},o}catch(e){if(t(s))return o={...await import(r(s).href)},o;throw e}}}export{s as t};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as e,f as t,l as n,m as r,n as i,p as a,t as o,u as s}from"./chunk-
|
|
1
|
+
import{c as e,f as t,l as n,m as r,n as i,p as a,t as o,u as s}from"./chunk-DvKo50Tp.js";import{o as c,r as l}from"./chunk-fv3B7eiP.js";import{t as u}from"./chunk-DdrVpDvJ.js";import{t as d}from"./chunk-DY5GDEeQ.js";import{t as f}from"./chunk-CuwzD5GU.js";import{a as p}from"./chunk-DkrM-nlV.js";import m from"gray-matter";function h(e,t,n){return u(e,`config`,`readwrite`,e=>e.put({key:t,value:n})).then(()=>void 0)}async function g(t,r,i){let a=await n(t,r),{dirs:o,filename:s}=e(i),c=a;for(let e of o)c=await c.getDirectoryHandle(e);let l=await c.getFileHandle(s);try{let e=await l.createSyncAccessHandle(),t=e.getSize(),n=new Uint8Array(t);return e.read(n,{at:0}),e.close(),new TextDecoder(`utf-8`).decode(n)}catch{return(await l.getFile()).text()}}const _=/^[a-z][a-z0-9_]{0,63}$/;function v(e,t){if(!t||typeof t!=`object`)throw Error(`Tool at ${e} must be a JSON object`);let n=t,r=typeof n.name==`string`?n.name.trim():``,i=typeof n.description==`string`?n.description.trim():``,a=n.input_schema??n.parameters,o=n.execution??n.evaluation;if(!_.test(r))throw Error(`Tool name is invalid: ${r||`(missing)`}`);if(!i)throw Error(`Tool ${r} requires a description`);if(!a||typeof a!=`object`)throw Error(`Tool ${r} requires input_schema`);if(!o||typeof o!=`object`)throw Error(`Tool ${r} requires execution`);let s=o,c=s.type;if(c!==`bash`&&c!==`javascript`&&c!==`tool`)throw Error(`Tool ${r} execution type must be bash, javascript, or tool`);if(c===`tool`){if(typeof s.name!=`string`||!_.test(s.name))throw Error(`Tool ${r} execution requires a valid tool name`);return{name:r,description:i,input_schema:a,execution:{type:c,name:s.name,...s.input&&typeof s.input==`object`?{input:s.input}:{}},path:e}}let l=c===`bash`?`command`:`code`,u=s[l]??s.expression;if(typeof u!=`string`||u.trim()===``)throw Error(`Tool ${r} execution requires ${l}`);return{name:r,description:i,input_schema:a,execution:{type:c,[l]:u},path:e}}async function y(e,t=c){let r=[],i=[],a=t===`br:main`?[c]:[t,c];for(let t of a)try{let a=await n(e,t),o=[];async function s(e,t){for await(let[n,r]of e.entries()){let e=`${t}/${n}`;r.kind===`directory`?await s(r,e):n.endsWith(`.json`)&&e.startsWith(`.agents/tools/`)&&o.push(e)}}try{await s(await(await a.getDirectoryHandle(`.agents`)).getDirectoryHandle(`tools`),`.agents/tools`)}catch{continue}for(let n of o.sort())try{let i=v(n,JSON.parse(await g(e,t,n)));r.some(e=>e.name===i.name)||r.push(i)}catch(e){i.push(e instanceof Error?e.message:String(e))}}catch{}return{tools:r,diagnostics:i}}async function b(e,t=c,n){try{let{tools:r}=await y(e,t),i=r.find(e=>e.name===n)||null;if(!i)return null;let a=await d(e,l.DECLARATIVE_TOOLS_ENABLED);return Array.isArray(a)&&!a.includes(n)?null:i}catch{return null}}async function x(c,l,u,d){let{dirs:f,filename:p}=e(u);for(let e=0;e<2;e++)try{let e=await n(c,l);for(let t of f)e=await e.getDirectoryHandle(t,{create:!0});let r=await e.getFileHandle(p,{create:!0});try{await o(r,d);return}catch(e){if(!((e instanceof Error?e.message:String(e)).includes(`Writable file streams are not supported`)&&(await t(c)).type===`opfs`))throw e}let a=l.replace(/:/g,`-`);await i([s(),`groups`,a,...f,p],d);return}catch(t){if(e===0&&r(t)){a();continue}throw t}}async function S(e,t,n){try{return await g(e,t,n),!0}catch{return!1}}const C=/^[a-z0-9](?:[a-z0-9]|-(?!-))*[a-z0-9]$|^[a-z0-9]$/;function w(e){try{let t=m(e);return{data:t.data&&typeof t.data==`object`?t.data:{},content:t.content||``}}catch{let t=e.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);if(t){let e=t[1],n=t[2]||``,r=e.split(/\r?\n/).map(e=>{let t=e.match(/^([a-zA-Z0-9_-]+):\s*(.+)$/);if(t){let[,e,n]=t,r=n.trim();if(r&&r!==`true`&&r!==`false`&&r!==`null`&&!r.startsWith(`"`)&&!r.startsWith(`'`)&&!r.startsWith(`[`)&&!r.startsWith(`{`)&&r!==`>`&&r!==`|`&&r!==`>-`&&r!==`|-`&&!/^-?\d+(?:\.\d+)?$/.test(r))return`${e}: ${JSON.stringify(r)}`}return e});try{let e=`---\n${r.join(`
|
|
2
2
|
`)}\n---\n${n}`,t=m(e);return{data:t.data&&typeof t.data==`object`?t.data:{},content:t.content||``}}catch{}let i={},a=e.match(/^name:\s*["']?([^"'\r\n]+)["']?/m);a&&(i.name=a[1].trim());let o=e.match(/^description:\s*(.+)$/m);if(o){let e=o[1].trim();(e.startsWith(`"`)&&e.endsWith(`"`)||e.startsWith(`'`)&&e.endsWith(`'`))&&(e=e.slice(1,-1)),i.description=e}let s=e.match(/^user-invocable:\s*(true|false)/im);s&&(i[`user-invocable`]=s[1].toLowerCase()===`true`);let c=e.match(/^disable-model-invocation:\s*(true|false)/im);c&&(i[`disable-model-invocation`]=c[1].toLowerCase()===`true`);let l=e.match(/^allowed-tools:\s*["']?([^"'\r\n]+)["']?/m);l&&(i[`allowed-tools`]=l[1].trim());let u=e.match(/allowed-tools:\s*\n((?:\s*-\s*[^\r\n]+\r?\n?)+)/m);if(u){let e=u[1].split(/\r?\n/).map(e=>e.replace(/^\s*-\s*/,``).trim()).filter(Boolean);e.length>0&&(i[`allowed-tools`]=e)}return{data:i,content:n}}return{data:{},content:e}}}function T(e){if(typeof e==`string`){let t=e.trim();return t.length>0?t:void 0}if(Array.isArray(e)){let t=e.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(e=>e.length>0);return t.length>0?t.join(` `):void 0}}function E(e,t){let n=w(t),r=n.data,i=typeof r.name==`string`?r.name.trim():``,a=typeof r.description==`string`?r.description.trim():``;if(!i)throw Error(`Skill at ${e} requires a name`);if(!a)throw Error(`Skill ${i} requires a description`);if(i.length>64||!C.test(i))throw Error(`Skill name must be 1-64 lowercase characters and hyphens: ${i}`);if(a.length>1024)throw Error(`Skill ${i} description must be 1024 characters or fewer`);let o=e.replace(/\/SKILL\.md$/u,``),s=r.metadata&&typeof r.metadata==`object`?r.metadata:void 0,c=T(s?.[`allowed-tools`])||T(s?.allowedTools)||T(r[`allowed-tools`])||T(r.allowedTools),l=[];if(s){for(let[e,t]of Object.entries(s))if(e!==`execution`&&t!=null){if(e===`allowed-tools`||e===`allowedTools`)c&&l.push([e,c]);else if(typeof t==`string`||typeof t==`number`||typeof t==`boolean`)l.push([e,String(t)]);else if(Array.isArray(t)){let n=t.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(Boolean);n.length>0&&l.push([e,n.join(` `)])}}}let u=l.length>0?Object.fromEntries(l):void 0,d=s?.execution,f;if(d!==void 0){if(!d||typeof d!=`object`||d.type!==`tools`||!Array.isArray(d.tools))throw Error(`Skill ${i} has invalid tools execution`);let e=d,t=typeof e.suppressToast==`boolean`?e.suppressToast:void 0,n=typeof e.suppressOutput==`boolean`?e.suppressOutput:void 0,r=e.tools.map(e=>({...e,...t!==void 0&&e.suppressToast===void 0?{suppressToast:t}:{},...n!==void 0&&e.suppressOutput===void 0?{suppressOutput:n}:{}}));f={type:`tools`,...t===void 0?{}:{suppressToast:t},...n===void 0?{}:{suppressOutput:n},tools:r}}return{name:i,description:a,...typeof r.license==`string`?{license:r.license}:{},...typeof r.compatibility==`string`?{compatibility:r.compatibility}:{},...u?{metadata:u}:{},...typeof c==`string`?{allowedTools:c}:{},...typeof r[`user-invocable`]==`boolean`?{userInvocable:r[`user-invocable`]}:typeof r[`user-invocable`]==`string`&&(r[`user-invocable`].toLowerCase()===`true`||r[`user-invocable`].toLowerCase()===`false`)?{userInvocable:r[`user-invocable`].toLowerCase()===`true`}:{},...typeof r[`disable-model-invocation`]==`boolean`?{disableModelInvocation:r[`disable-model-invocation`]}:typeof r[`disable-model-invocation`]==`string`&&(r[`disable-model-invocation`].toLowerCase()===`true`||r[`disable-model-invocation`].toLowerCase()===`false`)?{disableModelInvocation:r[`disable-model-invocation`].toLowerCase()===`true`}:{},...f?{execution:f}:{},body:n.content.trim(),path:e,basePath:o}}const D=new Set(f.map(e=>e.name)),O=/^[a-z][a-z0-9_]{0,63}$/;function k(e){return e?.targetSubdir?e.targetSubdir:e?.siteSlug?`imported/${e.siteSlug}`:`main`}async function A(e,t=c,n,r){let i=(n.name||``).trim();if(D.has(i))return{name:i,path:``,status:`failed`,error:`Cannot shadow built-in tool: ${i}`};if(!O.test(i))return{name:i,path:``,status:`failed`,error:`Invalid tool name: ${i}`};let a=`.agents/tools/${k(r)}/${i}.json`;try{if(await S(e,t,a)&&!r?.overwrite)return{name:i,path:a,status:`skipped`};let o=await(r?.fetchFn||globalThis.fetch)(n.url);if(!o.ok)return{name:i,path:a,status:`failed`,error:`HTTP ${o.status} ${o.statusText}`};let s=await o.text();if(n.digest&&!await p(s,n.digest))return{name:i,path:a,status:`failed`,error:`Integrity verification failed for tool definition`};let c;try{c=JSON.parse(s)}catch{return{name:i,path:a,status:`failed`,error:`Downloaded tool definition is not valid JSON`}}if(v(a,c),await x(e,t,a,JSON.stringify(c,null,2)),r?.autoEnable){let t=await d(e,l.DECLARATIVE_TOOLS_ENABLED),n=new Set(Array.isArray(t)?t:[]);n.add(i),await h(e,l.DECLARATIVE_TOOLS_ENABLED,Array.from(n))}return{name:i,path:a,status:`imported`}}catch(e){return{name:i,path:a,status:`failed`,error:e instanceof Error?e.message:String(e)}}}async function j(e,t=c,n,r){let i=(n.name||``).trim(),a=`.agents/scripts/${k(r)}/${i.endsWith(`.js`)||i.endsWith(`.mjs`)?i:`${i}.js`}`;try{if(await S(e,t,a)&&!r?.overwrite)return{name:i,path:a,status:`skipped`};let o=await(r?.fetchFn||globalThis.fetch)(n.url);if(!o.ok)return{name:i,path:a,status:`failed`,error:`HTTP ${o.status} ${o.statusText}`};let s=await o.text();return n.digest&&!await p(s,n.digest)?{name:i,path:a,status:`failed`,error:`Integrity verification failed for script`}:(await x(e,t,a,s),{name:i,path:a,status:`imported`})}catch(e){return{name:i,path:a,status:`failed`,error:e instanceof Error?e.message:String(e)}}}async function M(e,t=c,n,r){let i=(n.name||``).trim(),a=`.agents/skills/${k(r)}/${i}/SKILL.md`;try{if(await S(e,t,a)&&!r?.overwrite)return{name:i,path:a,status:`skipped`};let o=await(r?.fetchFn||globalThis.fetch)(n.url);if(!o.ok)return{name:i,path:a,status:`failed`,error:`HTTP ${o.status} ${o.statusText}`};let s=await o.text();return n.digest&&!await p(s,n.digest)?{name:i,path:a,status:`failed`,error:`Integrity verification failed for skill`}:(E(a,s),await x(e,t,a,s),{name:i,path:a,status:`imported`})}catch(e){return{name:i,path:a,status:`failed`,error:e instanceof Error?e.message:String(e)}}}async function N(e,t=c,n,r,i){let a={tools:[],skills:[],scripts:[],diagnostics:[]},o=new Set(r.toolNames||[]),s=new Set(r.skillNames||[]),l=new Set(r.scriptNames||[]),u=n.tools||[],d=n.skills||[],f=n.scripts||[];for(let e of d)if(s.has(e.name)){if(Array.isArray(e.tools))for(let t of e.tools)o.add(t.name);if(Array.isArray(e.scripts))for(let t of e.scripts)l.add(t.name)}for(let n of f)if(l.has(n.name)){let r=await j(e,t,n,i);a.scripts.push(r),r.status===`failed`&&r.error&&a.diagnostics.push(`Script ${n.name}: ${r.error}`)}for(let n of u)if(o.has(n.name)){let r=await A(e,t,n,i);a.tools.push(r),r.status===`failed`&&r.error&&a.diagnostics.push(`Tool ${n.name}: ${r.error}`)}for(let n of d)if(s.has(n.name)){let r=await M(e,t,n,i);a.skills.push(r),r.status===`failed`&&r.error&&a.diagnostics.push(`Skill ${n.name}: ${r.error}`)}return a}export{E as a,b as c,h as d,A as i,y as l,j as n,S as o,M as r,x as s,N as t,g as u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./chunk-BChOKoxf.js";import{t}from"./chunk-sC-eQ-Nh.js";import{a as n,i as r,n as i,r as a,t as o}from"./chunk-Cpdoq2Nw.js";import{d as s,h as c,p as l,r as u}from"./chunk-
|
|
1
|
+
import{t as e}from"./chunk-BChOKoxf.js";import{t}from"./chunk-sC-eQ-Nh.js";import{a as n,i as r,n as i,r as a,t as o}from"./chunk-Cpdoq2Nw.js";import{d as s,h as c,p as l,r as u}from"./chunk-Ce09lwXT.js";import{_ as d,b as f,g as p,l as m,r as h,s as g,y as _}from"./chunk-Bqo_706l.js";import{n as v,r as y,t as b}from"./chunk-Dl4zTOqg.js";import{n as x,t as S}from"./chunk-DjKQO7aV.js";import{t as C}from"./chunk-DY5GDEeQ.js";import{A as w,B as T,C as E,D,E as O,F as k,G as A,H as j,I as M,J as N,K as P,L as ee,M as te,N as ne,O as re,P as F,R as I,S as ie,T as ae,U as L,V as R,W as z,Y as oe,_ as B,a as se,b as ce,c as le,d as ue,f as de,g as fe,h as pe,i as me,j as he,k as ge,l as _e,m as ve,o as ye,p as be,q as xe,s as Se,u as Ce,v as we,w as Te,x as Ee,y as De,z as V}from"./chunk-Dvrqte5Q.js";import{d as Oe,i as ke,l as Ae,n as je,r as Me,t as Ne}from"./chunk-C44G533y.js";import{t as Pe}from"./chunk-CuwzD5GU.js";import{n as Fe,t as Ie}from"./chunk-kLHhdthB.js";import{createRequire as Le}from"node:module";import Re,{constants as ze,existsSync as Be}from"node:fs";import H from"node:path";import{fileURLToPath as Ve}from"node:url";import{env as He}from"node:process";import{exec as Ue,spawn as We}from"node:child_process";import{access as Ge,mkdir as Ke,readFile as qe,readdir as Je,rename as Ye,rm as Xe,rmdir as Ze,stat as U,unlink as Qe,writeFile as W}from"node:fs/promises";import G from"process";import{Buffer as K}from"buffer";import{EventEmitter as $e}from"node:events";import{isIP as et}from"node:net";import{runInNewContext as tt}from"node:vm";import{DatabaseSync as nt}from"node:sqlite";var rt=class{kind=`file`;name;_path;constructor(e){this._path=e,this.name=H.basename(e)}async isSameEntry(e){return!e||typeof e!=`object`?!1:e.kind===this.kind&&e._path===this._path}async getFile(){let e=await qe(this._path);return{size:e.length,type:`application/octet-stream`,async text(){return e.toString(`utf8`)},async arrayBuffer(){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}}}async createWritable(){let e=[],t=this._path,n=async t=>{if(typeof t==`string`)e.push(K.from(t,`utf8`));else if(t instanceof Uint8Array)e.push(K.from(t));else if(t instanceof ArrayBuffer)e.push(K.from(t));else if(t instanceof Blob){if(typeof t.arrayBuffer==`function`){let n=await t.arrayBuffer();e.push(K.from(n))}else if(typeof t.bytes==`function`){let n=await t.bytes();e.push(K.from(n))}else if(typeof t.text==`function`){let n=await t.text();e.push(K.from(n,`utf8`))}else if(t._buffer)e.push(K.from(t._buffer));else if(typeof FileReader<`u`){let n=await new Promise((e,n)=>{let r=new FileReader;r.onload=()=>e(r.result),r.onerror=n,r.readAsArrayBuffer(t)});e.push(K.from(n))}}else t&&typeof t==`object`&&`data`in t?await n(t.data):e.push(K.from(new Uint8Array(t)))};return{write:n,async close(){let n=K.concat(e);await W(t,n)}}}},it=class e{kind=`directory`;name;_path;_rootPath;constructor(e,t){this._path=H.resolve(e),this._rootPath=t?H.resolve(t):this._path,this.name=H.basename(this._path)||this._path}_resolveChild(e){if(!e||e===`.`||e.includes(`\0`)){let t=/* @__PURE__ */ Error(`Invalid path name: "${e}"`);throw t.name=`TypeError`,t}let t=H.resolve(this._path,e),n=H.relative(this._path,t),r=H.relative(this._rootPath,t);if(n.startsWith(`..`)||H.isAbsolute(n)||r.startsWith(`..`)||H.isAbsolute(r)){let t=/* @__PURE__ */ Error(`SecurityError: Path traversal outside workspace root is not allowed: "${e}"`);throw t.name=`SecurityError`,t}return t}async getDirectoryHandle(t,n){let r=this._resolveChild(t);if(n?.create)await Ke(r,{recursive:!0});else if(!Be(r)){let e=/* @__PURE__ */ Error(`NotFoundError: ${r} does not exist`);throw e.name=`NotFoundError`,e}if(!(await U(r)).isDirectory()){let e=/* @__PURE__ */ Error(`TypeMismatchError: "${t}" is a file, not a directory`);throw e.name=`TypeMismatchError`,e}return new e(r,this._rootPath)}async getFileHandle(e,t){let n=this._resolveChild(e);if(t?.create)Be(n)||await W(n,``);else if(!Be(n)){let e=/* @__PURE__ */ Error(`NotFoundError: ${n} does not exist`);throw e.name=`NotFoundError`,e}if((await U(n)).isDirectory()){let t=/* @__PURE__ */ Error(`TypeMismatchError: "${e}" is a directory, not a file`);throw t.name=`TypeMismatchError`,t}return new rt(n)}async*entries(){let t;try{t=await Je(this._path)}catch{return}for(let n of t){let t=H.join(this._path,n);try{(await U(t)).isDirectory()?yield[n,new e(t,this._rootPath)]:yield[n,new rt(t)]}catch{}}}async isSameEntry(e){return!e||typeof e!=`object`?!1:e.kind===this.kind&&e._path===this._path}async removeEntry(e,t){let n=this._resolveChild(e);if(!Be(n)){let e=/* @__PURE__ */ Error(`NotFoundError: ${n} does not exist`);throw e.name=`NotFoundError`,e}if((await U(n)).isDirectory()){if(t?.recursive)await Xe(n,{recursive:!0});else try{await Ze(n)}catch(t){if(t.code===`ENOTEMPTY`){let t=/* @__PURE__ */ Error(`InvalidModificationError: directory is not empty: "${e}"`);throw t.name=`InvalidModificationError`,t}throw t}}else await Qe(n)}};let at=null;function ot(){return at}function st(e){at=H.resolve(e),c(new it(e))}globalThis.__setStorageRootFromPath=st,globalThis.__getStorageRootPath=ot;const ct=({command:e,stdin:t,timeoutSec:n})=>new Promise(r=>{let i=ot?.()??globalThis.__getStorageRootPath?.()??G.cwd(),a=Ue(e,{timeout:n*1e3,maxBuffer:10485760,cwd:i},(e,t,n)=>{let i=t||``;n&&(i+=(i?`
|
|
2
2
|
`:``)+n),e&&!i&&(i=e.message),r(i)});t&&a.stdin&&(a.stdin.write(t),a.stdin.end())});I(ct),globalThis.__headlessBashExecutor=ct;function lt(e,t,n){let r=t.input_tokens||0,i=t.output_tokens||0,a=t.cache_read_input_tokens||0,o=t.cache_creation_input_tokens||0;return{type:`token-usage`,payload:{groupId:e,inputTokens:r,outputTokens:i,cacheReadTokens:a,cacheCreationTokens:o,totalTokens:r+i+a+o,contextLimit:n}}}function q(e,t,n,r){V(z(e,t,n,r))}async function*ut(e,t){let n=e.getReader(),r=new TextDecoder,i=``;try{for(;!t?.aborted;){let{done:e,value:t}=await n.read();if(e)break;i+=r.decode(t,{stream:!0});let a=i.split(`
|
|
3
3
|
|
|
4
4
|
`);i=a.pop()||``;for(let e of a){let t=e.split(`
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as e,n as t,o as n,r}from"./chunk-YrgA1KKk.js";import{n as i}from"./chunk-
|
|
1
|
+
import{a as e,n as t,o as n,r}from"./chunk-YrgA1KKk.js";import{n as i}from"./chunk-ENKlt3i9.js";import a from"node:fs";import o from"node:path";import s from"process";import{Buffer as c}from"buffer";import l from"node:http";import{tmpdir as u}from"node:os";function d(e={}){let t=e.agent!==!1,n;if(e.workspace)n=o.resolve(e.workspace);else{let e=o.join(u(),`shadow-claw`);a.mkdirSync(e,{recursive:!0}),n=a.mkdtempSync(o.join(e,`workspace-`))}let r=e.transfersDir||o.join(n,`transfers`),s={"send-message":async(n,r)=>{let i=n?.text??n?.prompt??n?.message;if(!i||typeof i!=`string`||!i.trim())throw Error(`Missing text or prompt parameter`);let a=r?.remotePeerId||`remote`,o=n.groupId||`peer:${a}`;if(!t)return e.verbose&&console.log(`[webrtc-listen] Message received from ${a} (agent disabled): "${i.trim()}"`),{success:!0,queued:!0,groupId:o,text:`Message received (agent disabled)`};e.verbose&&console.log(`[webrtc-listen] Prompt from ${a}: "${i.length>80?i.slice(0,77)+`...`:i}"`);let s=await(e.runAgent||(async(e,t)=>{let{runAgentRun:n}=await import(`./chunk-DUIs23D9.js`);return n(e,t)}))(i.trim(),{workspace:e.workspace,cacheDir:e.cacheDir,model:e.model,provider:e.provider,apiKey:e.apiKey,systemPrompt:e.systemPrompt,systemPromptFile:e.systemPromptFile,tools:e.tools,allowInternet:e.allowInternet,group:o,quiet:!e.verbose,stream:!1});if(!s?.success)throw Error(s?.error||`Agent execution failed`);return{success:!0,reply:s.response,text:s.response,model:s.model,provider:s.provider,groupId:o}},prompt:async(e,t)=>s[`send-message`](e,t),"send-file":async(n,s)=>{let{fileName:l,data:u,prompt:d,groupId:f}=n||{};if(!l||typeof l!=`string`||!u)throw Error(`Missing fileName or data in send-file args`);let p=i(l);await a.promises.mkdir(r,{recursive:!0});let m=o.join(r,p),h=c.isBuffer(u)?u:c.from(u,`base64`);await a.promises.writeFile(m,h);let g=s?.remotePeerId||`remote`,_=f||`peer:${g}`;e.verbose&&console.log(`[webrtc-listen] Saved file "${p}" (${h.length} bytes) to ${m}`);let v;if(d&&typeof d==`string`&&d.trim()&&t){let t=await(e.runAgent||(async(e,t)=>{let{runAgentRun:n}=await import(`./chunk-DUIs23D9.js`);return n(e,t)}))(`[Attached file: ${p} (${h.length} bytes) saved at ${m}]\n\n${d.trim()}`,{workspace:e.workspace,cacheDir:e.cacheDir,model:e.model,provider:e.provider,apiKey:e.apiKey,systemPrompt:e.systemPrompt,systemPromptFile:e.systemPromptFile,tools:e.tools,allowInternet:e.allowInternet,group:_,quiet:!e.verbose,stream:!1});t?.success&&(v=t.response)}return{success:!0,fileName:p,path:m,size:h.length,reply:v,text:v}},"transfer-file":async(e,t)=>s[`send-file`](e,t),"list-tools":async()=>{try{let{TOOL_DEFINITIONS:e}=await import(`./chunk-bKcol4wy.js`);return{tools:e.map(e=>e.name)}}catch{return{tools:[]}}},ping:async t=>({ok:!0,peerId:e.peerId||``,timestamp:Date.now()})};return s}function f(t,n){return new Promise((r,i)=>{let s=e(n);try{a.unlinkSync(s)}catch{}try{a.mkdirSync(o.dirname(s),{recursive:!0})}catch{}let c=l.createServer(async(e,n)=>{if(e.method===`GET`&&e.url===`/ping`)n.writeHead(200,{"Content-Type":`application/json`}),n.end(JSON.stringify({ok:!0,peerId:t.cliPeerId}));else if(e.method===`GET`&&e.url===`/clients`){let e=Array.from(t._connections.keys()).map(e=>{let n=t._peerCards?.get(e);return{clientId:e,peerId:e,deviceLabel:n?.name||`Browser Peer (${e})`,capabilities:n?.capabilities||[`webrtc`,`peerjs`],version:n?.version||`1.0.0`,transport:`webrtc`,connectedAt:Date.now(),lastSeen:Date.now()}});n.writeHead(200,{"Content-Type":`application/json`}),n.end(JSON.stringify({ok:!0,clients:e}))}else if(e.method===`POST`&&e.url===`/command`){let r=``;e.on(`data`,e=>r+=e),e.on(`end`,async()=>{try{let{targetPeerId:e,action:i,args:a,timeoutMs:o}=JSON.parse(r);if(!e){n.writeHead(400,{"Content-Type":`application/json`}),n.end(JSON.stringify({error:`targetPeerId is required`}));return}let s=t._connections.get(e);if(!s){let r=Array.from(t._connections.keys());n.writeHead(503,{"Content-Type":`application/json`}),n.end(JSON.stringify({error:`No DataChannel open to peer "${e}". Make sure the browser has connected to this listener first.`+(r.length?` Connected peers: ${r.join(`, `)}`:` No peers are currently connected.`)}));return}let c=`${Date.now()}-${Math.random().toString(36).slice(2)}`,l={id:c,type:`command:execute`,payload:{commandId:c,action:i,args:a||{}}},u=await new Promise((e,n)=>{let r=setTimeout(()=>{t._pendingIpc.delete(c),n(/* @__PURE__ */ Error(`Command "${i}" timed out after ${o||3e4}ms`))},o||3e4);t._pendingIpc.set(c,t=>{clearTimeout(r),e(t)});try{s.send(l)}catch(e){clearTimeout(r),t._pendingIpc.delete(c),n(e)}});n.writeHead(200,{"Content-Type":`application/json`}),n.end(JSON.stringify(u))}catch(e){n.writeHead(500,{"Content-Type":`application/json`}),n.end(JSON.stringify({error:e.message}))}})}else n.writeHead(404),n.end()});c.listen(s,()=>{console.log(`[webrtc-listen] IPC socket: ${s}`),r(c)}),c.on(`error`,i)})}async function p(e={}){let i=e.host||s.env.SHADOWCLAW_HOST||`127.0.0.1`,a=e.port?parseInt(String(e.port),10):parseInt(s.env.SHADOWCLAW_PORT||`8888`,10),o=e.path||`/`,c=!!(e.secure||e.https||[`1`,`true`,`yes`].includes((s.env.SHADOWCLAW_HTTPS||``).toLowerCase().trim())),l=!!(e.insecure===!1||[`0`,`false`,`no`].includes((s.env.SHADOWCLAW_TLS_REJECT_UNAUTHORIZED||``).toLowerCase().trim())),u=e.trustedPeer?Array.isArray(e.trustedPeer)?e.trustedPeer:[e.trustedPeer]:[],p=n(e.peerId,e.cacheDir);console.log(`WebRTC CLI Peer ID : ${p}`),console.log(`Signaling server : ${c?`wss`:`ws`}://${i}:${a}${o}`),c&&!l&&console.log(`TLS verification : disabled (self-signed cert allowed)`),u.length>0?console.log(`Trusted peers : ${u.join(`, `)}`):console.log(`Trusted peers : (any — add --trusted-peer <id> to restrict)`),console.log(``),console.log(`Add this CLI Peer ID as a trusted peer in the browser:`),console.log(` Settings → WebRTC/PeerJS → Trusted Peer IDs → "${p}"`),console.log(``);let m={...d({...e,peerId:p}),...e.handlers||{}},h=new t({host:i,port:a,path:o,secure:c,rejectUnauthorized:l,trustedPeerIds:u,peerId:e.peerId,cacheDir:e.cacheDir,renewPeerId:!!e.renewPeerId,verbose:!!e.verbose,handlers:m}),g=/* @__PURE__ */ new Map;h._pendingIpc=g;let _=h._setupConnection.bind(h);h._setupConnection=function(e,t){_(e,t),e.on(`data`,e=>{let t=e;if(typeof e==`string`)try{t=JSON.parse(e)}catch{return}if(t&&typeof t==`object`&&t.type===`command:result`){let e=t.payload||{},n=g.get(e.commandId);n&&(g.delete(e.commandId),n(e))}})};let v=t=>{if(console.log(`
|
|
2
2
|
[webrtc-listen] Shutting down…`),r(e.cacheDir),t)try{t.close()}catch{}h.close(),s.exit(0)};try{await h.start();let t=await f(h,e.cacheDir);s.on(`SIGINT`,()=>v(t)),s.on(`SIGTERM`,()=>v(t)),console.log(`[webrtc-listen] Ready. Run commands with:
|
|
3
3
|
node bin/cli.mjs send --transport webrtc --client <browser-peer-id> "message"`),await new Promise(()=>{})}catch(t){r(e.cacheDir),console.error(`Error starting WebRTC listener: ${t.message}`),s.exitCode=1}}export{p as n,f as r,d as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{t as importRemoteArtifacts}from"./chunk-C44G533y.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{r as orchestratorStore}from"./chunk-BrEeCKIo.js";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import{t as e}from"./chunk-CwYF3Rm8.js";import{a as t,c as n,d as r,s as i,t as a,u as o}from"./chunk-C9dO1ce2.js";import s from"node:path";import{fileURLToPath as c}from"node:url";import l from"node:process";import{cp as u,mkdir as d,readFile as f,readdir as p,stat as m,writeFile as h}from"node:fs/promises";import g from"gray-matter";import{marked as _}from"marked";var v=/* @__PURE__ */ e((e=>{function t(e,t,n){if(n===void 0&&(n=Array.prototype),e&&typeof n.find==`function`)return n.find.call(e,t);for(var i=0;i<e.length;i++)if(r(e,i)){var a=e[i];if(t.call(void 0,a,i,e))return a}}function n(e,t){return t===void 0&&(t=Object),t&&typeof t.getOwnPropertyDescriptors==`function`&&(e=t.create(null,t.getOwnPropertyDescriptors(e))),t&&typeof t.freeze==`function`?t.freeze(e):e}function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function i(e,t){if(typeof e!=`object`||!e)throw TypeError(`target is not an object`);for(var n in t)r(t,n)&&(e[n]=t[n]);return e}var a=n({allowfullscreen:!0,async:!0,autofocus:!0,autoplay:!0,checked:!0,controls:!0,default:!0,defer:!0,disabled:!0,formnovalidate:!0,hidden:!0,ismap:!0,itemscope:!0,loop:!0,multiple:!0,muted:!0,nomodule:!0,novalidate:!0,open:!0,playsinline:!0,readonly:!0,required:!0,reversed:!0,selected:!0});function o(e){return r(a,e.toLowerCase())}var s=n({area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function c(e){return r(s,e.toLowerCase())}var l=n({script:!1,style:!1,textarea:!0,title:!0});function u(e){var t=e.toLowerCase();return r(l,t)&&!l[t]}function d(e){var t=e.toLowerCase();return r(l,t)&&l[t]}function f(e){return e===m.HTML}function p(e){return f(e)||e===m.XML_XHTML_APPLICATION}var m=n({HTML:`text/html`,XML_APPLICATION:`application/xml`,XML_TEXT:`text/xml`,XML_XHTML_APPLICATION:`application/xhtml+xml`,XML_SVG_IMAGE:`image/svg+xml`}),h=Object.keys(m).map(function(e){return m[e]});function g(e){return h.indexOf(e)>-1}var _=n({HTML:`http://www.w3.org/1999/xhtml`,SVG:`http://www.w3.org/2000/svg`,XML:`http://www.w3.org/XML/1998/namespace`,XMLNS:`http://www.w3.org/2000/xmlns/`});e.assign=i,e.find=t,e.freeze=n,e.HTML_BOOLEAN_ATTRIBUTES=a,e.HTML_RAW_TEXT_ELEMENTS=l,e.HTML_VOID_ELEMENTS=s,e.hasDefaultHTMLNamespace=p,e.hasOwn=r,e.isHTMLBooleanAttribute=o,e.isHTMLRawTextElement=u,e.isHTMLEscapableRawTextElement=d,e.isHTMLMimeType=f,e.isHTMLVoidElement=c,e.isValidMimeType=g,e.MIME_TYPE=m,e.NAMESPACE=_})),y=/* @__PURE__ */ e((e=>{var t=v();function n(e,t){e.prototype=Object.create(Error.prototype,{constructor:{value:e},name:{value:e.name,enumerable:!0,writable:t}})}var r=t.freeze({Error:`Error`,IndexSizeError:`IndexSizeError`,DomstringSizeError:`DomstringSizeError`,HierarchyRequestError:`HierarchyRequestError`,WrongDocumentError:`WrongDocumentError`,InvalidCharacterError:`InvalidCharacterError`,NoDataAllowedError:`NoDataAllowedError`,NoModificationAllowedError:`NoModificationAllowedError`,NotFoundError:`NotFoundError`,NotSupportedError:`NotSupportedError`,InUseAttributeError:`InUseAttributeError`,InvalidStateError:`InvalidStateError`,SyntaxError:`SyntaxError`,InvalidModificationError:`InvalidModificationError`,NamespaceError:`NamespaceError`,InvalidAccessError:`InvalidAccessError`,ValidationError:`ValidationError`,TypeMismatchError:`TypeMismatchError`,SecurityError:`SecurityError`,NetworkError:`NetworkError`,AbortError:`AbortError`,URLMismatchError:`URLMismatchError`,QuotaExceededError:`QuotaExceededError`,TimeoutError:`TimeoutError`,InvalidNodeTypeError:`InvalidNodeTypeError`,DataCloneError:`DataCloneError`,EncodingError:`EncodingError`,NotReadableError:`NotReadableError`,UnknownError:`UnknownError`,ConstraintError:`ConstraintError`,DataError:`DataError`,TransactionInactiveError:`TransactionInactiveError`,ReadOnlyError:`ReadOnlyError`,VersionError:`VersionError`,OperationError:`OperationError`,NotAllowedError:`NotAllowedError`,OptOutError:`OptOutError`}),i=Object.keys(r);function a(e){return typeof e==`number`&&e>=1&&e<=25}function o(e){return typeof e==`string`&&e.substring(e.length-r.Error.length)===r.Error}function s(e,t){a(e)?(this.name=i[e],this.message=t||``):(this.message=e,this.name=o(t)?t:r.Error),Error.captureStackTrace&&Error.captureStackTrace(this,s)}n(s,!0),Object.defineProperties(s.prototype,{code:{enumerable:!0,get:function(){var e=i.indexOf(this.name);return a(e)?e:0}}});for(var c={INDEX_SIZE_ERR:1,DOMSTRING_SIZE_ERR:2,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,INVALID_CHARACTER_ERR:5,NO_DATA_ALLOWED_ERR:6,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INUSE_ATTRIBUTE_ERR:10,INVALID_STATE_ERR:11,SYNTAX_ERR:12,INVALID_MODIFICATION_ERR:13,NAMESPACE_ERR:14,INVALID_ACCESS_ERR:15,VALIDATION_ERR:16,TYPE_MISMATCH_ERR:17,SECURITY_ERR:18,NETWORK_ERR:19,ABORT_ERR:20,URL_MISMATCH_ERR:21,QUOTA_EXCEEDED_ERR:22,TIMEOUT_ERR:23,INVALID_NODE_TYPE_ERR:24,DATA_CLONE_ERR:25},l=Object.entries(c),u=0;u<l.length;u++){var d=l[u][0];s[d]=l[u][1]}function f(e,t,n){this.message=e,this.locator=t,this.cause=n,Error.captureStackTrace&&Error.captureStackTrace(this,f)}n(f),e.DOMException=s,e.DOMExceptionName=r,e.ExceptionCode=c,e.ParseError=f})),b=/* @__PURE__ */ e((e=>{function t(e){try{typeof e!=`function`&&(e=RegExp);var t=new e(`𝌆`,`u`).exec(`𝌆`);return!!t&&t[0].length===2}catch{}return!1}var n=t();function r(e){if(e.source[0]!==`[`)throw Error(e+` can not be used with chars`);return e.source.slice(1,e.source.lastIndexOf(`]`))}function i(e,t){if(e.source[0]!==`[`)throw Error(`/`+e.source+`/ can not be used with chars_without`);if(!t||typeof t!=`string`)throw Error(JSON.stringify(t)+` is not a valid search`);if(e.source.indexOf(t)===-1)throw Error(`"`+t+`" is not is /`+e.source+`/`);if(t===`-`&&e.source.indexOf(t)!==1)throw Error(`"`+t+`" is not at the first postion of /`+e.source+`/`);return new RegExp(e.source.replace(t,``),n?`u`:``)}function a(e){var t=this;return new RegExp(Array.prototype.slice.call(arguments).map(function(e){var n=typeof e==`string`;if(n&&t===void 0&&e===`|`)throw Error("use regg instead of reg to wrap expressions with `|`!");return n?e:e.source}).join(``),n?`u`:``)}function o(e){if(arguments.length===0)throw Error(`no parameters provided`);return a.apply(o,[`(?:`].concat(Array.prototype.slice.call(arguments),[`)`]))}var s=`�`,c=/[-\x09\x0A\x0D\x20-\x2C\x2E-\uD7FF\uE000-\uFFFD]/;n&&(c=a(`[`,r(c),`\\u{10000}-\\u{10FFFF}`,`]`));var l=RegExp(`[^`+r(c)+`]`,n?`u`:``),u=/[\x20\x09\x0D\x0A]/,d=r(u),f=a(u,`+`),p=a(u,`*`),m=/[:_a-zA-Z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/;n&&(m=a(`[`,r(m),`\\u{10000}-\\u{10FFFF}`,`]`));var h=a(`[`,r(m),r(/[-.0-9\xB7]/),r(/[\u0300-\u036F\u203F-\u2040]/),`]`),g=a(m,h,`*`),_=a(`^`,g,`$`),v=a(h,`+`),y=o(a(`&`,g,`;`),`|`,o(/&#[0-9]+;|&#x[0-9a-fA-F]+;/)),b=a(`%`,g,`;`),x=o(a(`"`,o(/[^%&"]/,`|`,b,`|`,y),`*`,`"`),`|`,a(`'`,o(/[^%&']/,`|`,b,`|`,y),`*`,`'`)),S=o(`"`,o(/[^<&"]/,`|`,y),`*`,`"`,`|`,`'`,o(/[^<&']/,`|`,y),`*`,`'`),C=a(i(m,`:`),i(h,`:`),`*`),w=a(`^`,C,`$`),T=a(C,o(`:`,C),`?`),E=a(`^`,T,`$`),D=a(`(`,T,`)`),O=o(/"[^"]*"|'[^']*'/),k=a(/^<\?/,`(`,g,`)`,o(f,`(?!`,u,`)(`,c,`*?)`),`?`,/\?>/),A=/[\x20\x0D\x0Aa-zA-Z0-9-'()+,./:=?;!*#@$_%]/,j=o(`"`,A,`*"`,`|`,`'`,i(A,`'`),`*'`),M=`<!--`,ee=`-->`,N=a(M,o(i(c,`-`),`|`,a(`-`,i(c,`-`))),`*`,ee),P=`#PCDATA`,F=o(`EMPTY`,`|`,`ANY`,`|`,o(a(/\(/,p,P,o(p,/\|/,p,T),`*`,p,/\)\*/),`|`,a(/\(/,p,P,p,/\)/)),`|`,a(/\([^>]+\)/,/[?*+]?/)),I=a(`<!ELEMENT`,f,o(T,`|`,b),f,o(F,`|`,b),p,`>`),L=a(`<!ATTLIST`,f,g,o(f,g,f,o(/CDATA|ID|IDREF|IDREFS|ENTITY|ENTITIES|NMTOKEN|NMTOKENS/,`|`,o(a(`NOTATION`,f,/\(/,p,g,o(p,/\|/,p,g),`*`,p,/\)/),`|`,a(/\(/,p,v,o(p,/\|/,p,v),`*`,p,/\)/))),f,o(/#REQUIRED|#IMPLIED/,`|`,o(o(`#FIXED`,f),`?`,S))),`*`,p,`>`),R=`about:legacy-compat`,z=o(`"`+R+`"`,`|`,`'`+R+`'`),B=`SYSTEM`,V=`PUBLIC`,H=o(o(B,f,O),`|`,o(V,f,j,f,O)),U=a(`^`,o(o(B,f,`(?<SystemLiteralOnly>`,O,`)`),`|`,o(V,f,`(?<PubidLiteral>`,j,`)`,f,`(?<SystemLiteral>`,O,`)`))),W=a(`^`,j,`$`),G=a(`^`,O,`$`),te=o(x,`|`,o(H,o(f,`NDATA`,f,g),`?`)),K=`<!ENTITY`,q=o(a(K,f,g,f,te,p,`>`),`|`,a(K,f,`%`,f,g,f,o(x,`|`,H),p,`>`)),ne=a(`<!NOTATION`,f,g,f,o(H,`|`,a(V,f,j)),p,`>`),re=a(p,`=`,p),ie=/1[.]\d+/,ae=a(f,`version`,re,o(`'`,ie,`'`,`|`,`"`,ie,`"`)),oe=/[A-Za-z][-A-Za-z0-9._]*/,se=a(/^<\?xml/,ae,o(f,`encoding`,re,o(`"`,oe,`"`,`|`,`'`,oe,`'`)),`?`,o(f,`standalone`,re,o(`'`,o(`yes`,`|`,`no`),`'`,`|`,`"`,o(`yes`,`|`,`no`),`"`)),`?`,p,/\?>/),J=`<!DOCTYPE`,ce=`<![CDATA[`,le=`]]>`,Y=a(/<!\[CDATA\[/,a(c,`*?`,/\]\]>/));e.chars=r,e.chars_without=i,e.detectUnicodeSupport=t,e.reg=a,e.regg=o,e.ABOUT_LEGACY_COMPAT=R,e.ABOUT_LEGACY_COMPAT_SystemLiteral=z,e.AttlistDecl=L,e.CDATA_START=ce,e.CDATA_END=le,e.CDSect=Y,e.Char=c,e.Comment=N,e.COMMENT_START=M,e.COMMENT_END=ee,e.DOCTYPE_DECL_START=J,e.elementdecl=I,e.EntityDecl=q,e.EntityValue=x,e.ExternalID=H,e.ExternalID_match=U,e.Name=g,e.Name_exact=_,e.NCName_exact=w,e.NotationDecl=ne,e.Reference=y,e.PEReference=b,e.PI=k,e.PUBLIC=V,e.PubidLiteral=j,e.PubidLiteral_match=W,e.QName=T,e.QName_exact=E,e.QName_group=D,e.S=f,e.SChar_s=d,e.S_OPT=p,e.SYSTEM=B,e.SystemLiteral=O,e.SystemLiteral_match=G,e.InvalidChar=l,e.UNICODE_REPLACEMENT_CHARACTER=s,e.UNICODE_SUPPORT=n,e.XMLDecl=se})),x=/* @__PURE__ */ e((e=>{var t=v(),n=t.find,r=t.hasDefaultHTMLNamespace,i=t.hasOwn,a=t.isHTMLMimeType,o=t.isHTMLRawTextElement,s=t.isHTMLVoidElement,c=t.MIME_TYPE,l=t.NAMESPACE,u=Symbol(),d=y(),f=d.DOMException,p=d.DOMExceptionName,m=b();function h(e){if(e!==u)throw TypeError(`Illegal constructor`)}function g(e){return e!==``}function _(e){return e?e.split(/[\t\n\f\r ]+/).filter(g):[]}function x(e,t){return i(e,t)||(e[t]=!0),e}function S(e){if(!e)return[];var t=_(e);return Object.keys(t.reduce(x,{}))}function C(e){return function(t){return e&&e.indexOf(t)!==-1}}function w(e){if(!m.QName_exact.test(e))throw new f(f.INVALID_CHARACTER_ERR,`invalid character in qualified name "`+e+`"`)}function T(e,n){w(n),e||=null;var r=null,i=n;if(n.indexOf(`:`)>=0){var a=n.split(`:`);r=a[0],i=a[1]}if(r!==null&&e===null)throw new f(f.NAMESPACE_ERR,`prefix is non-null and namespace is null`);if(r===`xml`&&e!==t.NAMESPACE.XML)throw new f(f.NAMESPACE_ERR,`prefix is "xml" and namespace is not the XML namespace`);if((r===`xmlns`||n===`xmlns`)&&e!==t.NAMESPACE.XMLNS)throw new f(f.NAMESPACE_ERR,`either qualifiedName or prefix is "xmlns" and namespace is not the XMLNS namespace`);if(e===t.NAMESPACE.XMLNS&&r!==`xmlns`&&n!==`xmlns`)throw new f(f.NAMESPACE_ERR,`namespace is the XMLNS namespace and neither qualifiedName nor prefix is "xmlns"`);return[e,r,i]}function E(e,t){for(var n in e)i(e,n)&&(t[n]=e[n])}function D(e,t){var n=e.prototype;if(!(n instanceof t)){function r(){}r.prototype=t.prototype,r=new r,E(n,r),e.prototype=n=r}n.constructor!=e&&(typeof e!=`function`&&console.error(`unknown Class:`+e),n.constructor=e)}var O={},k=O.ELEMENT_NODE=1,A=O.ATTRIBUTE_NODE=2,j=O.TEXT_NODE=3,M=O.CDATA_SECTION_NODE=4,ee=O.ENTITY_REFERENCE_NODE=5,N=O.ENTITY_NODE=6,P=O.PROCESSING_INSTRUCTION_NODE=7,F=O.COMMENT_NODE=8,I=O.DOCUMENT_NODE=9,L=O.DOCUMENT_TYPE_NODE=10,R=O.DOCUMENT_FRAGMENT_NODE=11,z=O.NOTATION_NODE=12,B=t.freeze({DOCUMENT_POSITION_DISCONNECTED:1,DOCUMENT_POSITION_PRECEDING:2,DOCUMENT_POSITION_FOLLOWING:4,DOCUMENT_POSITION_CONTAINS:8,DOCUMENT_POSITION_CONTAINED_BY:16,DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC:32});function V(e,t){if(t.length<e.length)return V(t,e);var n=null;for(var r in e){if(e[r]!==t[r])return n;n=e[r]}return n}function H(e){return e.guid||=Math.random(),e.guid}function U(){}U.prototype={length:0,item:function(e){return e>=0&&e<this.length?this[e]:null},toString:function(e){for(var t=typeof e==`function`?{requireWellFormed:!1,splitCDATASections:!0,nodeFilter:e}:e?{requireWellFormed:!!e.requireWellFormed,splitCDATASections:e.splitCDATASections!==!1,nodeFilter:e.nodeFilter||null}:{requireWellFormed:!1,splitCDATASections:!0,nodeFilter:null},n=[],r=0;r<this.length;r++)Re(this[r],n,null,t);return n.join(``)},filter:function(e){return Array.prototype.filter.call(this,e)},indexOf:function(e){return Array.prototype.indexOf.call(this,e)}},U.prototype[Symbol.iterator]=function(){var e=this,t=0;return{next:function(){return t<e.length?{value:e[t++],done:!1}:{done:!0}},return:function(){return{done:!0}}}};function W(e,t){this._node=e,this._refresh=t,G(this)}function G(e){var t=e._node._inc||e._node.ownerDocument._inc;if(e._inc!==t){var n=e._refresh(e._node);if(Ve(e,`length`,n.length),!e.$$length||n.length<e.$$length)for(var r=n.length;r in e;r++)i(e,r)&&delete e[r];E(n,e),e._inc=t}}W.prototype.item=function(e){return G(this),this[e]||null},D(W,U);function te(){this._nsIndex=Object.create(null),this._noNsIndex=Object.create(null)}function K(e,t){for(var n=0;n<e.length;){if(e[n]===t)return n;n++}}function q(e,t,n){if(!t)return e._noNsIndex;var r=e._nsIndex[t];return!r&&n&&(r=e._nsIndex[t]=Object.create(null)),r}function ne(e,t,n){var r=q(e,t,!1);return r&&r[n]||null}function re(e,t){q(e,t.namespaceURI,!0)[t.localName]=t}function ie(e,t){var n=q(e,t.namespaceURI,!1);n&&delete n[t.localName]}function ae(e,t,n,r){if(r?t[K(t,r)]=n:(t[t.length]=n,t.length++),re(t,n),e){n.ownerElement=e;var i=e.ownerDocument;i&&(r&&de(i,e,r),ue(i,e,n))}}function oe(e,t,n){var r=K(t,n);if(r>=0){for(var i=t.length-1;r<=i;)t[r]=t[++r];if(t.length=i,ie(t,n),e){var a=e.ownerDocument;a&&de(a,e,n),n.ownerElement=null}}}te.prototype={length:0,item:U.prototype.item,getNamedItem:function(e){this._ownerElement&&this._ownerElement._isInHTMLDocumentAndNamespace()&&(e=e.toLowerCase());for(var t=0;t<this.length;){var n=this[t];if(n.nodeName===e)return n;t++}return null},setNamedItem:function(e){var t=e.ownerElement;if(t&&t!==this._ownerElement)throw new f(f.INUSE_ATTRIBUTE_ERR);var n=ne(this,e.namespaceURI,e.localName);return n===e?e:(ae(this._ownerElement,this,e,n),n)},setNamedItemNS:function(e){return this.setNamedItem(e)},removeNamedItem:function(e){var t=this.getNamedItem(e);if(!t)throw new f(f.NOT_FOUND_ERR,e);return oe(this._ownerElement,this,t),t},removeNamedItemNS:function(e,t){var n=this.getNamedItemNS(e,t);if(!n)throw new f(f.NOT_FOUND_ERR,e?e+` : `+t:t);return oe(this._ownerElement,this,n),n},getNamedItemNS:function(e,t){e||=null;for(var n=0;n<this.length;){var r=this[n];if(r.localName===t&&r.namespaceURI===e)return r;n++}return null}},te.prototype[Symbol.iterator]=function(){var e=this,t=0;return{next:function(){return t<e.length?{value:e[t++],done:!1}:{done:!0}},return:function(){return{done:!0}}}};function se(){}se.prototype={hasFeature:function(e,t){return!0},createDocument:function(e,t,n){var r=c.XML_APPLICATION;e===l.HTML?r=c.XML_XHTML_APPLICATION:e===l.SVG&&(r=c.XML_SVG_IMAGE);var i=new X(u,{contentType:r});if(i.implementation=this,i.childNodes=new U,i.doctype=n||null,n&&i.appendChild(n),t){var a=i.createElementNS(e,t);i.appendChild(a)}return i},createDocumentType:function(e,t,n,r){w(e);var i=new Oe(u);return i.name=e,i.nodeName=e,i.publicId=t||``,i.systemId=n||``,i.internalSubset=r||``,i.childNodes=new U,i},createHTMLDocument:function(e){var t=new X(u,{contentType:c.HTML});if(t.implementation=this,t.childNodes=new U,e!==!1){t.doctype=this.createDocumentType(`html`),t.doctype.ownerDocument=t,t.appendChild(t.doctype);var n=t.createElement(`html`);t.appendChild(n);var r=t.createElement(`head`);if(n.appendChild(r),typeof e==`string`){var i=t.createElement(`title`);i.appendChild(t.createTextNode(e)),r.appendChild(i)}n.appendChild(t.createElement(`body`))}return t}};function J(e){h(e)}J.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,parentNode:null,get parentElement(){return this.parentNode&&this.parentNode.nodeType===this.ELEMENT_NODE?this.parentNode:null},childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,baseURI:`about:blank`,get isConnected(){var e=this.getRootNode();return e&&e.nodeType===e.DOCUMENT_NODE},contains:function(e){if(!e)return!1;var t=e;do{if(this===t)return!0;t=t.parentNode}while(t);return!1},getRootNode:function(e){var t=this;do{if(!t.parentNode)return t;t=t.parentNode}while(t)},isEqualNode:function(e){if(!e)return!1;for(var t=[{node:this,other:e}];t.length>0;){var n=t.pop(),r=n.node,i=n.other;if(r.nodeType!==i.nodeType)return!1;switch(r.nodeType){case r.DOCUMENT_TYPE_NODE:if(r.name!==i.name||r.publicId!==i.publicId||r.systemId!==i.systemId)return!1;break;case r.ELEMENT_NODE:if(r.namespaceURI!==i.namespaceURI||r.prefix!==i.prefix||r.localName!==i.localName||r.attributes.length!==i.attributes.length)return!1;for(var a=0;a<r.attributes.length;a++){var o=r.attributes.item(a),s=i.getAttributeNodeNS(o.namespaceURI,o.localName);if(!s)return!1;t.push({node:o,other:s})}break;case r.ATTRIBUTE_NODE:if(r.namespaceURI!==i.namespaceURI||r.localName!==i.localName||r.value!==i.value)return!1;break;case r.PROCESSING_INSTRUCTION_NODE:if(r.target!==i.target||r.data!==i.data)return!1;break;case r.TEXT_NODE:case r.CDATA_SECTION_NODE:case r.COMMENT_NODE:if(r.data!==i.data)return!1}if(r.childNodes.length!==i.childNodes.length)return!1;for(var a=r.childNodes.length-1;a>=0;a--)t.push({node:r.childNodes[a],other:i.childNodes[a]})}return!0},isSameNode:function(e){return this===e},insertBefore:function(e,t){return xe(this,e,t)},replaceChild:function(e,t){xe(this,e,t,be),t&&this.removeChild(t)},removeChild:function(e){return Z(this,e)},appendChild:function(e){return this.insertBefore(e,null)},hasChildNodes:function(){return this.firstChild!=null},cloneNode:function(e){return Be(this.ownerDocument||this,this,e)},normalize:function(){Y(this,null,{enter:function(e){for(var t=e.firstChild;t;){var n=t.nextSibling;if(n!==null&&n.nodeType===j&&t.nodeType===j){for(var r=[],i=n;i!==null&&i.nodeType===j;)r.push(i.data),i=i.nextSibling;for(var a=t.nextSibling;a!==i;){var o=a.nextSibling;a.parentNode=null,a.previousSibling=null,a.nextSibling=null,a=o}t.nextSibling=i,i===null?e.lastChild=t:i.previousSibling=t,t.appendData(r.join(``)),fe(e.ownerDocument,e),t=i}else t=n}return!0}})},isSupported:function(e,t){return this.ownerDocument.implementation.hasFeature(e,t)},lookupPrefix:function(e){for(var t=this;t;){var n=t._nsMap;if(n){for(var r in n)if(i(n,r)&&n[r]===e)return r}t=t.nodeType==A?t.ownerDocument:t.parentNode}return null},lookupNamespaceURI:function(e){for(var t=this;t;){var n=t._nsMap;if(n&&i(n,e))return n[e];t=t.nodeType==A?t.ownerDocument:t.parentNode}return null},isDefaultNamespace:function(e){return this.lookupPrefix(e)==null},compareDocumentPosition:function(e){if(this===e)return 0;var t=e,n=this,r=null,i=null;if(t instanceof Ce&&(r=t,t=r.ownerElement),n instanceof Ce&&(i=n,n=i.ownerElement,r&&t&&n===t))for(var a=0,o;o=n.attributes[a];a++){if(o===r)return B.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC+B.DOCUMENT_POSITION_PRECEDING;if(o===i)return B.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC+B.DOCUMENT_POSITION_FOLLOWING}if(!t||!n||n.ownerDocument!==t.ownerDocument)return B.DOCUMENT_POSITION_DISCONNECTED+B.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC+(H(n.ownerDocument)>H(t.ownerDocument)?B.DOCUMENT_POSITION_FOLLOWING:B.DOCUMENT_POSITION_PRECEDING);if(i&&t===n)return B.DOCUMENT_POSITION_CONTAINS+B.DOCUMENT_POSITION_PRECEDING;if(r&&t===n)return B.DOCUMENT_POSITION_CONTAINED_BY+B.DOCUMENT_POSITION_FOLLOWING;for(var s=[],c=t.parentNode;c;){if(!i&&c===n)return B.DOCUMENT_POSITION_CONTAINED_BY+B.DOCUMENT_POSITION_FOLLOWING;s.push(c),c=c.parentNode}s.reverse();for(var l=[],u=n.parentNode;u;){if(!r&&u===t)return B.DOCUMENT_POSITION_CONTAINS+B.DOCUMENT_POSITION_PRECEDING;l.push(u),u=u.parentNode}l.reverse();var d=V(s,l);for(var f in d.childNodes){var p=d.childNodes[f];if(p===n)return B.DOCUMENT_POSITION_FOLLOWING;if(p===t)return B.DOCUMENT_POSITION_PRECEDING;if(l.indexOf(p)>=0)return B.DOCUMENT_POSITION_FOLLOWING;if(s.indexOf(p)>=0)return B.DOCUMENT_POSITION_PRECEDING}return 0}};function ce(e){return e==`<`&&`<`||e==`>`&&`>`||e==`&`&&`&`||e==`"`&&`"`||`&#`+e.charCodeAt()+`;`}E(O,J),E(O,J.prototype),E(B,J),E(B,J.prototype);function le(e,t){Y(e,null,{enter:function(e){return!t(e)||Y.STOP}})}function Y(e,t,n){for(var r=[{node:e,context:t,phase:Y.ENTER}];r.length>0;){var i=r.pop();if(i.phase===Y.ENTER){var a=n.enter(i.node,i.context);if(a===Y.STOP)return Y.STOP;if(r.push({node:i.node,context:a,phase:Y.EXIT}),a==null)continue;for(var o=i.node.lastChild;o;)r.push({node:o,context:a,phase:Y.ENTER}),o=o.previousSibling}else n.exit&&n.exit(i.node,i.context)}}Y.STOP=Symbol(`walkDOM.STOP`),Y.ENTER=0,Y.EXIT=1;function X(e,t){h(e);var n=t||{};this.ownerDocument=this,this.contentType=n.contentType||c.XML_APPLICATION,this.type=a(this.contentType)?`html`:`xml`}function ue(e,t,n){e&&e._inc++,n.namespaceURI===l.XMLNS&&(t._nsMap[n.prefix?n.localName:``]=n.value)}function de(e,t,n,r){e&&e._inc++,n.namespaceURI===l.XMLNS&&delete t._nsMap[n.prefix?n.localName:``]}function fe(e,t,n){if(e&&e._inc){e._inc++;var r=t.childNodes;if(n&&!n.nextSibling)r[r.length++]=n;else{for(var i=t.firstChild,a=0;i;)r[a++]=i,i=i.nextSibling;r.length=a,delete r[r.length]}}}function Z(e,t){if(e!==t.parentNode)throw new f(f.NOT_FOUND_ERR,`child's parent is not parent`);var n=t.previousSibling,r=t.nextSibling;return n?n.nextSibling=r:e.firstChild=r,r?r.previousSibling=n:e.lastChild=n,fe(e.ownerDocument,e),t.parentNode=null,t.previousSibling=null,t.nextSibling=null,t}function pe(e){return e&&(e.nodeType===J.DOCUMENT_NODE||e.nodeType===J.DOCUMENT_FRAGMENT_NODE||e.nodeType===J.ELEMENT_NODE)}function me(e){return e&&(e.nodeType===J.CDATA_SECTION_NODE||e.nodeType===J.COMMENT_NODE||e.nodeType===J.DOCUMENT_FRAGMENT_NODE||e.nodeType===J.DOCUMENT_TYPE_NODE||e.nodeType===J.ELEMENT_NODE||e.nodeType===J.PROCESSING_INSTRUCTION_NODE||e.nodeType===J.TEXT_NODE)}function Q(e){return e&&e.nodeType===J.DOCUMENT_TYPE_NODE}function $(e){return e&&e.nodeType===J.ELEMENT_NODE}function he(e){return e&&e.nodeType===J.TEXT_NODE}function ge(e,t){var r=e.childNodes||[];if(n(r,$)||Q(t))return!1;var i=n(r,Q);return!(t&&i&&r.indexOf(i)>r.indexOf(t))}function _e(e,t){var r=e.childNodes||[];function i(e){return $(e)&&e!==t}if(n(r,i))return!1;var a=n(r,Q);return!(t&&a&&r.indexOf(a)>r.indexOf(t))}function ve(e,t,n){if(!pe(e))throw new f(f.HIERARCHY_REQUEST_ERR,`Unexpected parent node type `+e.nodeType);if(n&&n.parentNode!==e)throw new f(f.NOT_FOUND_ERR,`child not in parent`);if(!me(t)||Q(t)&&e.nodeType!==J.DOCUMENT_NODE)throw new f(f.HIERARCHY_REQUEST_ERR,`Unexpected node type `+t.nodeType+` for parent node type `+e.nodeType)}function ye(e,t,r){var i=e.childNodes||[],a=t.childNodes||[];if(t.nodeType===J.DOCUMENT_FRAGMENT_NODE){var o=a.filter($);if(o.length>1||n(a,he))throw new f(f.HIERARCHY_REQUEST_ERR,`More than one element or text in fragment`);if(o.length===1&&!ge(e,r))throw new f(f.HIERARCHY_REQUEST_ERR,`Element in fragment can not be inserted before doctype`)}if($(t)&&!ge(e,r))throw new f(f.HIERARCHY_REQUEST_ERR,`Only one element can be added and only after doctype`);if(Q(t)){if(n(i,Q))throw new f(f.HIERARCHY_REQUEST_ERR,`Only one doctype is allowed`);var s=n(i,$);if(r&&i.indexOf(s)<i.indexOf(r))throw new f(f.HIERARCHY_REQUEST_ERR,`Doctype can only be inserted before an element`);if(!r&&s)throw new f(f.HIERARCHY_REQUEST_ERR,`Doctype can not be appended since element is present`)}}function be(e,t,r){var i=e.childNodes||[],a=t.childNodes||[];if(t.nodeType===J.DOCUMENT_FRAGMENT_NODE){var o=a.filter($);if(o.length>1||n(a,he))throw new f(f.HIERARCHY_REQUEST_ERR,`More than one element or text in fragment`);if(o.length===1&&!_e(e,r))throw new f(f.HIERARCHY_REQUEST_ERR,`Element in fragment can not be inserted before doctype`)}if($(t)&&!_e(e,r))throw new f(f.HIERARCHY_REQUEST_ERR,`Only one element can be added and only after doctype`);if(Q(t)){function e(e){return Q(e)&&e!==r}if(n(i,e))throw new f(f.HIERARCHY_REQUEST_ERR,`Only one doctype is allowed`);var s=n(i,$);if(r&&i.indexOf(s)<i.indexOf(r))throw new f(f.HIERARCHY_REQUEST_ERR,`Doctype can only be inserted before an element`)}}function xe(e,t,n,r){ve(e,t,n),e.nodeType===J.DOCUMENT_NODE&&(r||ye)(e,t,n);var i=t.parentNode;if(i&&i.removeChild(t),t.nodeType===R){var a=t.firstChild;if(a==null)return t;var o=t.lastChild}else a=o=t;var s=n?n.previousSibling:e.lastChild;a.previousSibling=s,o.nextSibling=n,s?s.nextSibling=a:e.firstChild=a,n==null?e.lastChild=o:n.previousSibling=o;do a.parentNode=e;while(a!==o&&(a=a.nextSibling));return fe(e.ownerDocument||e,e,t),t.nodeType==R&&(t.firstChild=t.lastChild=null),t}X.prototype={implementation:null,nodeName:`#document`,nodeType:I,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,t){if(e.nodeType===R){for(var n=e.firstChild;n;){var r=n.nextSibling;this.insertBefore(n,t),n=r}return e}return xe(this,e,t),e.ownerDocument=this,this.documentElement===null&&e.nodeType===k&&(this.documentElement=e),e},removeChild:function(e){var t=Z(this,e);return t===this.documentElement&&(this.documentElement=null),t},replaceChild:function(e,t){xe(this,e,t,be),e.ownerDocument=this,t&&this.removeChild(t),$(e)&&(this.documentElement=e)},importNode:function(e,t){return ze(this,e,t)},getElementById:function(e){var t=null;return le(this.documentElement,function(n){if(n.nodeType==k&&n.getAttribute(`id`)==e)return t=n,!0}),t},createElement:function(e){var t=new Se(u);t.ownerDocument=this,this.type===`html`&&(e=e.toLowerCase()),r(this.contentType)&&(t.namespaceURI=l.HTML),t.nodeName=e,t.tagName=e,t.localName=e,t.childNodes=new U;var n=t.attributes=new te;return n._ownerElement=t,t},createDocumentFragment:function(){var e=new Me(u);return e.ownerDocument=this,e.childNodes=new U,e},createTextNode:function(e){var t=new Te(u);return t.ownerDocument=this,t.childNodes=new U,t.appendData(e),t},createComment:function(e){var t=new Ee(u);return t.ownerDocument=this,t.childNodes=new U,t.appendData(e),t},createCDATASection:function(e){if(e.indexOf(`]]>`)!==-1)throw new f(f.INVALID_CHARACTER_ERR,`data contains "]]>"`);var t=new De(u);return t.ownerDocument=this,t.childNodes=new U,t.appendData(e),t},createProcessingInstruction:function(e,t){var n=new Ne(u);return n.ownerDocument=this,n.childNodes=new U,n.nodeName=n.target=e,n.nodeValue=n.data=t,n},createAttribute:function(e){if(!m.QName_exact.test(e))throw new f(f.INVALID_CHARACTER_ERR,`invalid character in name "`+e+`"`);return this.type===`html`&&(e=e.toLowerCase()),this._createAttribute(e)},_createAttribute:function(e){var t=new Ce(u);return t.ownerDocument=this,t.childNodes=new U,t.name=e,t.nodeName=e,t.localName=e,t.specified=!0,t},createEntityReference:function(e){if(!m.Name_exact.test(e))throw new f(f.INVALID_CHARACTER_ERR,`not a valid xml name "`+e+`"`);if(this.type===`html`)throw new f(`document is an html document`,p.NotSupportedError);var t=new je(u);return t.ownerDocument=this,t.childNodes=new U,t.nodeName=e,t},createElementNS:function(e,t){var n=T(e,t),r=new Se(u),i=r.attributes=new te;return r.childNodes=new U,r.ownerDocument=this,r.nodeName=t,r.tagName=t,r.namespaceURI=n[0],r.prefix=n[1],r.localName=n[2],i._ownerElement=r,r},createAttributeNS:function(e,t){var n=T(e,t),r=new Ce(u);return r.ownerDocument=this,r.childNodes=new U,r.nodeName=t,r.name=t,r.specified=!0,r.namespaceURI=n[0],r.prefix=n[1],r.localName=n[2],r}},D(X,J);function Se(e){h(e),this._nsMap=Object.create(null)}Se.prototype={nodeType:k,attributes:null,getQualifiedName:function(){return this.prefix?this.prefix+`:`+this.localName:this.localName},_isInHTMLDocumentAndNamespace:function(){return this.ownerDocument.type===`html`&&this.namespaceURI===l.HTML},hasAttributes:function(){return!!(this.attributes&&this.attributes.length)},hasAttribute:function(e){return!!this.getAttributeNode(e)},getAttribute:function(e){var t=this.getAttributeNode(e);return t?t.value:null},getAttributeNode:function(e){return this._isInHTMLDocumentAndNamespace()&&(e=e.toLowerCase()),this.attributes.getNamedItem(e)},setAttribute:function(e,t){this._isInHTMLDocumentAndNamespace()&&(e=e.toLowerCase());var n=this.getAttributeNode(e);n?n.value=n.nodeValue=``+t:(n=this.ownerDocument._createAttribute(e),n.value=n.nodeValue=``+t,this.setAttributeNode(n))},removeAttribute:function(e){var t=this.getAttributeNode(e);t&&this.removeAttributeNode(t)},setAttributeNode:function(e){return this.attributes.setNamedItem(e)},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e)},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName)},removeAttributeNS:function(e,t){var n=this.getAttributeNodeNS(e,t);n&&this.removeAttributeNode(n)},hasAttributeNS:function(e,t){return this.getAttributeNodeNS(e,t)!=null},getAttributeNS:function(e,t){var n=this.getAttributeNodeNS(e,t);return n?n.value:null},setAttributeNS:function(e,t,n){var r=T(e,t)[2],i=this.getAttributeNodeNS(e,r);i?i.value=i.nodeValue=``+n:(i=this.ownerDocument.createAttributeNS(e,t),i.value=i.nodeValue=``+n,this.setAttributeNode(i))},getAttributeNodeNS:function(e,t){return this.attributes.getNamedItemNS(e,t)},getElementsByClassName:function(e){var t=S(e);return new W(this,function(n){var r=[];return t.length>0&&le(n,function(i){if(i!==n&&i.nodeType===k){var a=i.getAttribute(`class`);if(a){var o=e===a;if(!o){var s=S(a);o=t.every(C(s))}o&&r.push(i)}}}),r})},getElementsByTagName:function(e){var t=(this.nodeType===I?this:this.ownerDocument).type===`html`,n=e.toLowerCase();return new W(this,function(r){var i=[];return le(r,function(a){a!==r&&a.nodeType===k&&(e===`*`||a.getQualifiedName()===(t&&a.namespaceURI===l.HTML?n:e))&&i.push(a)}),i})},getElementsByTagNameNS:function(e,t){return new W(this,function(n){var r=[];return le(n,function(i){i!==n&&i.nodeType===k&&(e===`*`||i.namespaceURI===e)&&(t===`*`||i.localName==t)&&r.push(i)}),r})}},X.prototype.getElementsByClassName=Se.prototype.getElementsByClassName,X.prototype.getElementsByTagName=Se.prototype.getElementsByTagName,X.prototype.getElementsByTagNameNS=Se.prototype.getElementsByTagNameNS,D(Se,J);function Ce(e){h(e),this.namespaceURI=null,this.prefix=null,this.ownerElement=null}Ce.prototype.nodeType=A,D(Ce,J);function we(e){h(e)}we.prototype={data:``,substringData:function(e,t){return this.data.substring(e,e+t)},appendData:function(e){e=this.data+e,this.nodeValue=this.data=e,this.length=e.length},insertData:function(e,t){this.replaceData(e,0,t)},deleteData:function(e,t){this.replaceData(e,t,``)},replaceData:function(e,t,n){var r=this.data.substring(0,e),i=this.data.substring(e+t);n=r+n+i,this.nodeValue=this.data=n,this.length=n.length}},D(we,J);function Te(e){h(e)}Te.prototype={nodeName:`#text`,nodeType:j,splitText:function(e){var t=this.data,n=t.substring(e);t=t.substring(0,e),this.data=this.nodeValue=t,this.length=t.length;var r=this.ownerDocument.createTextNode(n);return this.parentNode&&this.parentNode.insertBefore(r,this.nextSibling),r}},D(Te,we);function Ee(e){h(e)}Ee.prototype={nodeName:`#comment`,nodeType:F},D(Ee,we);function De(e){h(e)}De.prototype={nodeName:`#cdata-section`,nodeType:M},D(De,Te);function Oe(e){h(e)}Oe.prototype.nodeType=L,D(Oe,J);function ke(e){h(e)}ke.prototype.nodeType=z,D(ke,J);function Ae(e){h(e)}Ae.prototype.nodeType=N,D(Ae,J);function je(e){h(e)}je.prototype.nodeType=ee,D(je,J);function Me(e){h(e)}Me.prototype.nodeName=`#document-fragment`,Me.prototype.nodeType=R,D(Me,J);function Ne(e){h(e)}Ne.prototype.nodeType=P,D(Ne,we);function Pe(){}Pe.prototype.serializeToString=function(e,t){return Fe.call(e,t)},J.prototype.toString=Fe;function Fe(e){var t=typeof e==`function`?{requireWellFormed:!1,splitCDATASections:!0,nodeFilter:e}:e==null?{requireWellFormed:!1,splitCDATASections:!0,nodeFilter:null}:{requireWellFormed:!!e.requireWellFormed,splitCDATASections:e.splitCDATASections!==!1,nodeFilter:e.nodeFilter||null},n=[],r=this.nodeType===I&&this.documentElement||this,i=r.prefix,a=r.namespaceURI;if(a&&i==null){var i=r.lookupPrefix(a);if(i==null)var o=[{namespace:a,prefix:null}]}return Re(this,n,o,t),n.join(``)}function Ie(e,t,n){var r=e.prefix||``,i=e.namespaceURI;if(!i||r===`xml`&&i===l.XML||i===l.XMLNS)return!1;for(var a=n.length;a--;){var o=n[a];if(o.prefix===r)return o.namespace!==i}return!0}function Le(e,t,n,r){if(r&&!m.QName_exact.test(t))throw new f(`The attribute name "`+t+`" is not a valid XML QName`,p.InvalidStateError);e.push(` `,t,`="`,n.replace(/[<>&"\t\n\r]/g,ce),`"`)}function Re(e,t,n,r){n||=[];var i=r.nodeFilter,a=r.requireWellFormed,c=r.splitCDATASections,u=(e.nodeType===I?e:e.ownerDocument).type===`html`;Y(e,{ns:n},{enter:function(e,n){var d=n.ns;if(i){if(e=i(e),e){if(typeof e==`string`)return t.push(e),null}else return null}switch(e.nodeType){case k:var h=e.attributes,g=h.length,_=e.tagName,v=_;if(!u&&!e.prefix&&e.namespaceURI){for(var y,b=0;b<h.length;b++)if(h.item(b).name===`xmlns`){y=h.item(b).value;break}if(!y)for(var x=d.length-1;x>=0;x--){var S=d[x];if(S.prefix===``&&S.namespace===e.namespaceURI){y=S.namespace;break}}if(y!==e.namespaceURI)for(var x=d.length-1;x>=0;x--){var S=d[x];if(S.namespace===e.namespaceURI){S.prefix&&(v=S.prefix+`:`+_);break}}}if(a&&!m.QName_exact.test(v))throw new f(`The element name "`+v+`" is not a valid XML QName`,p.InvalidStateError);t.push(`<`,v);for(var C=d.slice(),w=0;w<g;w++){var T=h.item(w);T.prefix==`xmlns`?C.push({prefix:T.localName,namespace:T.value}):T.nodeName==`xmlns`&&C.push({prefix:``,namespace:T.value})}for(var w=0;w<g;w++){var T=h.item(w);if(Ie(T,u,C)){var E=T.prefix||``,D=T.namespaceURI;Le(t,E?`xmlns:`+E:`xmlns`,D,a),C.push({prefix:E,namespace:D})}var O=i?i(T):T;O&&(typeof O==`string`?t.push(O):Le(t,O.name,O.value,a))}if(_===v&&Ie(e,u,C)){var N=e.prefix||``,D=e.namespaceURI;Le(t,N?`xmlns:`+N:`xmlns`,D,a),C.push({prefix:N,namespace:D})}var z=!e.firstChild;if(z&&(u||e.namespaceURI===l.HTML)&&(z=s(_)),z)return t.push(`/>`),null;if(t.push(`>`),u&&o(_)){for(var B=e.firstChild;B;)B.data?t.push(B.data):Re(B,t,C.slice(),r),B=B.nextSibling;return t.push(`</`,v,`>`),null}return{ns:C,tag:v};case I:case R:if(a&&e.nodeType===I&&e.documentElement==null)throw new f(`The Document has no documentElement`,p.InvalidStateError);return{ns:d};case A:return Le(t,e.name,e.value,a),null;case j:if(a&&m.InvalidChar.test(e.data))throw new f(`The Text node data contains characters outside the XML Char production`,p.InvalidStateError);return t.push(e.data.replace(/[<&>]/g,ce)),null;case M:if(a&&e.data.indexOf(`]]>`)!==-1)throw new f(`The CDATASection data contains "]]>"`,p.InvalidStateError);return c?t.push(m.CDATA_START,e.data.replace(/]]>/g,`]]]]><![CDATA[>`),m.CDATA_END):t.push(m.CDATA_START,e.data,m.CDATA_END),null;case F:if(a){if(m.InvalidChar.test(e.data))throw new f(`The comment node data contains characters outside the XML Char production`,p.InvalidStateError);if(e.data.indexOf(`--`)!==-1||e.data[e.data.length-1]===`-`)throw new f(`The comment node data contains "--" or ends with "-"`,p.InvalidStateError)}return t.push(m.COMMENT_START,e.data,m.COMMENT_END),null;case L:var V=e.publicId,H=e.systemId;if(a){if(!m.Name_exact.test(e.name))throw new f(`The doctype name "`+e.name+`" is not a valid XML Name`,p.InvalidStateError);if(V&&!m.PubidLiteral_match.test(V))throw new f(`DocumentType publicId is not a valid PubidLiteral`,p.InvalidStateError);if(H&&H!==`.`&&!m.SystemLiteral_match.test(H))throw new f(`DocumentType systemId is not a valid SystemLiteral`,p.InvalidStateError);if(e.internalSubset&&e.internalSubset.indexOf(`]>`)!==-1)throw new f(`DocumentType internalSubset contains "]>"`,p.InvalidStateError)}return t.push(m.DOCTYPE_DECL_START,` `,e.name),V?(t.push(` `,m.PUBLIC,` `,V),H&&H!==`.`&&t.push(` `,H)):H&&H!==`.`&&t.push(` `,m.SYSTEM,` `,H),e.internalSubset&&t.push(` [`,e.internalSubset,`]`),t.push(`>`),null;case P:if(a){if(!m.NCName_exact.test(e.target)||e.target.toLowerCase()===`xml`)throw new f(`The processing instruction target "`+e.target+`" is not a valid XML NCName or is reserved`,p.InvalidStateError);if(m.InvalidChar.test(e.data))throw new f(`The ProcessingInstruction data contains characters outside the XML Char production`,p.InvalidStateError);if(e.data.indexOf(`?>`)!==-1)throw new f(`The ProcessingInstruction data contains "?>"`,p.InvalidStateError)}return t.push(`<?`,e.target,` `,e.data,`?>`),null;case ee:if(a&&!m.Name_exact.test(e.nodeName))throw new f(`The entity reference name "`+e.nodeName+`" is not a valid XML Name`,p.InvalidStateError);return t.push(`&`,e.nodeName,`;`),null;default:return t.push(`??`,e.nodeName),null}},exit:function(e,n){n&&n.tag&&t.push(`</`,n.tag,`>`)}})}function ze(e,t,n){var r;return Y(t,null,{enter:function(t,i){var a=t.cloneNode(!1);return a.ownerDocument=e,a.parentNode=null,i===null?r=a:i.appendChild(a),t.nodeType===A||n?a:null}}),r}function Be(e,t,n){var r;return Y(t,null,{enter:function(t,a){var o=new t.constructor(u);for(var s in t)if(i(t,s)){var c=t[s];typeof c!=`object`&&c!=o[s]&&(o[s]=c)}t.childNodes&&(o.childNodes=new U),o.ownerDocument=e;var l=n;switch(o.nodeType){case k:var d=t.attributes,f=o.attributes=new te,p=d.length;f._ownerElement=o;for(var m=0;m<p;m++)o.setAttributeNode(Be(e,d.item(m),!0));break;case A:l=!0}return a===null?r=o:a.appendChild(o),l?o:null}}),r}function Ve(e,t,n){e[t]=n}function He(e){for(var t=[],n=e.firstChild;n;)n.nodeType===k&&t.push(n),n=n.nextSibling;return t}try{Object.defineProperty&&(Object.defineProperty(W.prototype,"length",{get:function(){return G(this),this.$$length}}),Object.defineProperty(J.prototype,"textContent",{get:function(){if(this.nodeType===k||this.nodeType===R){var e=[];return Y(this,null,{enter:function(t){if(t.nodeType===k||t.nodeType===R)return!0;if(t.nodeType===P||t.nodeType===F)return null;e.push(t.nodeValue)}}),e.join(``)}return this.nodeValue},set:function(e){switch(this.nodeType){case k:case R:for(;this.firstChild;)this.removeChild(this.firstChild);(e||String(e))&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e}}}),Object.defineProperty(we.prototype,"data",{get:function(){return this._data==null?``:this._data},set:function(e){this._data=e,this.length=typeof e==`string`?e.length:0}}),Object.defineProperty(we.prototype,"nodeValue",{get:function(){return this.data},set:function(e){this.data=e},enumerable:!0,configurable:!0}),Object.defineProperty(Se.prototype,"children",{get:function(){return new W(this,He)}}),Object.defineProperty(X.prototype,"children",{get:function(){return new W(this,He)}}),Object.defineProperty(Me.prototype,"children",{get:function(){return new W(this,He)}}),Ve=function(e,t,n){e[`$$`+t]=n})}catch{}e._updateLiveList=G,e.Attr=Ce,e.CDATASection=De,e.CharacterData=we,e.Comment=Ee,e.Document=X,e.DocumentFragment=Me,e.DocumentType=Oe,e.DOMImplementation=se,e.Element=Se,e.Entity=Ae,e.EntityReference=je,e.LiveNodeList=W,e.NamedNodeMap=te,e.Node=J,e.NodeList=U,e.Notation=ke,e.Text=Te,e.ProcessingInstruction=Ne,e.walkDOM=Y,e.XMLSerializer=Pe})),S=/* @__PURE__ */ e((e=>{var t=v().freeze;e.XML_ENTITIES=t({amp:`&`,apos:`'`,gt:`>`,lt:`<`,quot:`"`}),e.HTML_ENTITIES=t({Aacute:`Á`,aacute:`á`,Abreve:`Ă`,abreve:`ă`,ac:`∾`,acd:`∿`,acE:`∾̳`,Acirc:`Â`,acirc:`â`,acute:`´`,Acy:`А`,acy:`а`,AElig:`Æ`,aelig:`æ`,af:``,Afr:`𝔄`,afr:`𝔞`,Agrave:`À`,agrave:`à`,alefsym:`ℵ`,aleph:`ℵ`,Alpha:`Α`,alpha:`α`,Amacr:`Ā`,amacr:`ā`,amalg:`⨿`,AMP:`&`,amp:`&`,And:`⩓`,and:`∧`,andand:`⩕`,andd:`⩜`,andslope:`⩘`,andv:`⩚`,ang:`∠`,ange:`⦤`,angle:`∠`,angmsd:`∡`,angmsdaa:`⦨`,angmsdab:`⦩`,angmsdac:`⦪`,angmsdad:`⦫`,angmsdae:`⦬`,angmsdaf:`⦭`,angmsdag:`⦮`,angmsdah:`⦯`,angrt:`∟`,angrtvb:`⊾`,angrtvbd:`⦝`,angsph:`∢`,angst:`Å`,angzarr:`⍼`,Aogon:`Ą`,aogon:`ą`,Aopf:`𝔸`,aopf:`𝕒`,ap:`≈`,apacir:`⩯`,apE:`⩰`,ape:`≊`,apid:`≋`,apos:`'`,ApplyFunction:``,approx:`≈`,approxeq:`≊`,Aring:`Å`,aring:`å`,Ascr:`𝒜`,ascr:`𝒶`,Assign:`≔`,ast:`*`,asymp:`≈`,asympeq:`≍`,Atilde:`Ã`,atilde:`ã`,Auml:`Ä`,auml:`ä`,awconint:`∳`,awint:`⨑`,backcong:`≌`,backepsilon:`϶`,backprime:`‵`,backsim:`∽`,backsimeq:`⋍`,Backslash:`∖`,Barv:`⫧`,barvee:`⊽`,Barwed:`⌆`,barwed:`⌅`,barwedge:`⌅`,bbrk:`⎵`,bbrktbrk:`⎶`,bcong:`≌`,Bcy:`Б`,bcy:`б`,bdquo:`„`,becaus:`∵`,Because:`∵`,because:`∵`,bemptyv:`⦰`,bepsi:`϶`,bernou:`ℬ`,Bernoullis:`ℬ`,Beta:`Β`,beta:`β`,beth:`ℶ`,between:`≬`,Bfr:`𝔅`,bfr:`𝔟`,bigcap:`⋂`,bigcirc:`◯`,bigcup:`⋃`,bigodot:`⨀`,bigoplus:`⨁`,bigotimes:`⨂`,bigsqcup:`⨆`,bigstar:`★`,bigtriangledown:`▽`,bigtriangleup:`△`,biguplus:`⨄`,bigvee:`⋁`,bigwedge:`⋀`,bkarow:`⤍`,blacklozenge:`⧫`,blacksquare:`▪`,blacktriangle:`▴`,blacktriangledown:`▾`,blacktriangleleft:`◂`,blacktriangleright:`▸`,blank:`␣`,blk12:`▒`,blk14:`░`,blk34:`▓`,block:`█`,bne:`=⃥`,bnequiv:`≡⃥`,bNot:`⫭`,bnot:`⌐`,Bopf:`𝔹`,bopf:`𝕓`,bot:`⊥`,bottom:`⊥`,bowtie:`⋈`,boxbox:`⧉`,boxDL:`╗`,boxDl:`╖`,boxdL:`╕`,boxdl:`┐`,boxDR:`╔`,boxDr:`╓`,boxdR:`╒`,boxdr:`┌`,boxH:`═`,boxh:`─`,boxHD:`╦`,boxHd:`╤`,boxhD:`╥`,boxhd:`┬`,boxHU:`╩`,boxHu:`╧`,boxhU:`╨`,boxhu:`┴`,boxminus:`⊟`,boxplus:`⊞`,boxtimes:`⊠`,boxUL:`╝`,boxUl:`╜`,boxuL:`╛`,boxul:`┘`,boxUR:`╚`,boxUr:`╙`,boxuR:`╘`,boxur:`└`,boxV:`║`,boxv:`│`,boxVH:`╬`,boxVh:`╫`,boxvH:`╪`,boxvh:`┼`,boxVL:`╣`,boxVl:`╢`,boxvL:`╡`,boxvl:`┤`,boxVR:`╠`,boxVr:`╟`,boxvR:`╞`,boxvr:`├`,bprime:`‵`,Breve:`˘`,breve:`˘`,brvbar:`¦`,Bscr:`ℬ`,bscr:`𝒷`,bsemi:`⁏`,bsim:`∽`,bsime:`⋍`,bsol:`\\`,bsolb:`⧅`,bsolhsub:`⟈`,bull:`•`,bullet:`•`,bump:`≎`,bumpE:`⪮`,bumpe:`≏`,Bumpeq:`≎`,bumpeq:`≏`,Cacute:`Ć`,cacute:`ć`,Cap:`⋒`,cap:`∩`,capand:`⩄`,capbrcup:`⩉`,capcap:`⩋`,capcup:`⩇`,capdot:`⩀`,CapitalDifferentialD:`ⅅ`,caps:`∩︀`,caret:`⁁`,caron:`ˇ`,Cayleys:`ℭ`,ccaps:`⩍`,Ccaron:`Č`,ccaron:`č`,Ccedil:`Ç`,ccedil:`ç`,Ccirc:`Ĉ`,ccirc:`ĉ`,Cconint:`∰`,ccups:`⩌`,ccupssm:`⩐`,Cdot:`Ċ`,cdot:`ċ`,cedil:`¸`,Cedilla:`¸`,cemptyv:`⦲`,cent:`¢`,CenterDot:`·`,centerdot:`·`,Cfr:`ℭ`,cfr:`𝔠`,CHcy:`Ч`,chcy:`ч`,check:`✓`,checkmark:`✓`,Chi:`Χ`,chi:`χ`,cir:`○`,circ:`ˆ`,circeq:`≗`,circlearrowleft:`↺`,circlearrowright:`↻`,circledast:`⊛`,circledcirc:`⊚`,circleddash:`⊝`,CircleDot:`⊙`,circledR:`®`,circledS:`Ⓢ`,CircleMinus:`⊖`,CirclePlus:`⊕`,CircleTimes:`⊗`,cirE:`⧃`,cire:`≗`,cirfnint:`⨐`,cirmid:`⫯`,cirscir:`⧂`,ClockwiseContourIntegral:`∲`,CloseCurlyDoubleQuote:`”`,CloseCurlyQuote:`’`,clubs:`♣`,clubsuit:`♣`,Colon:`∷`,colon:`:`,Colone:`⩴`,colone:`≔`,coloneq:`≔`,comma:`,`,commat:`@`,comp:`∁`,compfn:`∘`,complement:`∁`,complexes:`ℂ`,cong:`≅`,congdot:`⩭`,Congruent:`≡`,Conint:`∯`,conint:`∮`,ContourIntegral:`∮`,Copf:`ℂ`,copf:`𝕔`,coprod:`∐`,Coproduct:`∐`,COPY:`©`,copy:`©`,copysr:`℗`,CounterClockwiseContourIntegral:`∳`,crarr:`↵`,Cross:`⨯`,cross:`✗`,Cscr:`𝒞`,cscr:`𝒸`,csub:`⫏`,csube:`⫑`,csup:`⫐`,csupe:`⫒`,ctdot:`⋯`,cudarrl:`⤸`,cudarrr:`⤵`,cuepr:`⋞`,cuesc:`⋟`,cularr:`↶`,cularrp:`⤽`,Cup:`⋓`,cup:`∪`,cupbrcap:`⩈`,CupCap:`≍`,cupcap:`⩆`,cupcup:`⩊`,cupdot:`⊍`,cupor:`⩅`,cups:`∪︀`,curarr:`↷`,curarrm:`⤼`,curlyeqprec:`⋞`,curlyeqsucc:`⋟`,curlyvee:`⋎`,curlywedge:`⋏`,curren:`¤`,curvearrowleft:`↶`,curvearrowright:`↷`,cuvee:`⋎`,cuwed:`⋏`,cwconint:`∲`,cwint:`∱`,cylcty:`⌭`,Dagger:`‡`,dagger:`†`,daleth:`ℸ`,Darr:`↡`,dArr:`⇓`,darr:`↓`,dash:`‐`,Dashv:`⫤`,dashv:`⊣`,dbkarow:`⤏`,dblac:`˝`,Dcaron:`Ď`,dcaron:`ď`,Dcy:`Д`,dcy:`д`,DD:`ⅅ`,dd:`ⅆ`,ddagger:`‡`,ddarr:`⇊`,DDotrahd:`⤑`,ddotseq:`⩷`,deg:`°`,Del:`∇`,Delta:`Δ`,delta:`δ`,demptyv:`⦱`,dfisht:`⥿`,Dfr:`𝔇`,dfr:`𝔡`,dHar:`⥥`,dharl:`⇃`,dharr:`⇂`,DiacriticalAcute:`´`,DiacriticalDot:`˙`,DiacriticalDoubleAcute:`˝`,DiacriticalGrave:"`",DiacriticalTilde:`˜`,diam:`⋄`,Diamond:`⋄`,diamond:`⋄`,diamondsuit:`♦`,diams:`♦`,die:`¨`,DifferentialD:`ⅆ`,digamma:`ϝ`,disin:`⋲`,div:`÷`,divide:`÷`,divideontimes:`⋇`,divonx:`⋇`,DJcy:`Ђ`,djcy:`ђ`,dlcorn:`⌞`,dlcrop:`⌍`,dollar:`$`,Dopf:`𝔻`,dopf:`𝕕`,Dot:`¨`,dot:`˙`,DotDot:`⃜`,doteq:`≐`,doteqdot:`≑`,DotEqual:`≐`,dotminus:`∸`,dotplus:`∔`,dotsquare:`⊡`,doublebarwedge:`⌆`,DoubleContourIntegral:`∯`,DoubleDot:`¨`,DoubleDownArrow:`⇓`,DoubleLeftArrow:`⇐`,DoubleLeftRightArrow:`⇔`,DoubleLeftTee:`⫤`,DoubleLongLeftArrow:`⟸`,DoubleLongLeftRightArrow:`⟺`,DoubleLongRightArrow:`⟹`,DoubleRightArrow:`⇒`,DoubleRightTee:`⊨`,DoubleUpArrow:`⇑`,DoubleUpDownArrow:`⇕`,DoubleVerticalBar:`∥`,DownArrow:`↓`,Downarrow:`⇓`,downarrow:`↓`,DownArrowBar:`⤓`,DownArrowUpArrow:`⇵`,DownBreve:`̑`,downdownarrows:`⇊`,downharpoonleft:`⇃`,downharpoonright:`⇂`,DownLeftRightVector:`⥐`,DownLeftTeeVector:`⥞`,DownLeftVector:`↽`,DownLeftVectorBar:`⥖`,DownRightTeeVector:`⥟`,DownRightVector:`⇁`,DownRightVectorBar:`⥗`,DownTee:`⊤`,DownTeeArrow:`↧`,drbkarow:`⤐`,drcorn:`⌟`,drcrop:`⌌`,Dscr:`𝒟`,dscr:`𝒹`,DScy:`Ѕ`,dscy:`ѕ`,dsol:`⧶`,Dstrok:`Đ`,dstrok:`đ`,dtdot:`⋱`,dtri:`▿`,dtrif:`▾`,duarr:`⇵`,duhar:`⥯`,dwangle:`⦦`,DZcy:`Џ`,dzcy:`џ`,dzigrarr:`⟿`,Eacute:`É`,eacute:`é`,easter:`⩮`,Ecaron:`Ě`,ecaron:`ě`,ecir:`≖`,Ecirc:`Ê`,ecirc:`ê`,ecolon:`≕`,Ecy:`Э`,ecy:`э`,eDDot:`⩷`,Edot:`Ė`,eDot:`≑`,edot:`ė`,ee:`ⅇ`,efDot:`≒`,Efr:`𝔈`,efr:`𝔢`,eg:`⪚`,Egrave:`È`,egrave:`è`,egs:`⪖`,egsdot:`⪘`,el:`⪙`,Element:`∈`,elinters:`⏧`,ell:`ℓ`,els:`⪕`,elsdot:`⪗`,Emacr:`Ē`,emacr:`ē`,empty:`∅`,emptyset:`∅`,EmptySmallSquare:`◻`,emptyv:`∅`,EmptyVerySmallSquare:`▫`,emsp:` `,emsp13:` `,emsp14:` `,ENG:`Ŋ`,eng:`ŋ`,ensp:` `,Eogon:`Ę`,eogon:`ę`,Eopf:`𝔼`,eopf:`𝕖`,epar:`⋕`,eparsl:`⧣`,eplus:`⩱`,epsi:`ε`,Epsilon:`Ε`,epsilon:`ε`,epsiv:`ϵ`,eqcirc:`≖`,eqcolon:`≕`,eqsim:`≂`,eqslantgtr:`⪖`,eqslantless:`⪕`,Equal:`⩵`,equals:`=`,EqualTilde:`≂`,equest:`≟`,Equilibrium:`⇌`,equiv:`≡`,equivDD:`⩸`,eqvparsl:`⧥`,erarr:`⥱`,erDot:`≓`,Escr:`ℰ`,escr:`ℯ`,esdot:`≐`,Esim:`⩳`,esim:`≂`,Eta:`Η`,eta:`η`,ETH:`Ð`,eth:`ð`,Euml:`Ë`,euml:`ë`,euro:`€`,excl:`!`,exist:`∃`,Exists:`∃`,expectation:`ℰ`,ExponentialE:`ⅇ`,exponentiale:`ⅇ`,fallingdotseq:`≒`,Fcy:`Ф`,fcy:`ф`,female:`♀`,ffilig:`ffi`,fflig:`ff`,ffllig:`ffl`,Ffr:`𝔉`,ffr:`𝔣`,filig:`fi`,FilledSmallSquare:`◼`,FilledVerySmallSquare:`▪`,fjlig:`fj`,flat:`♭`,fllig:`fl`,fltns:`▱`,fnof:`ƒ`,Fopf:`𝔽`,fopf:`𝕗`,ForAll:`∀`,forall:`∀`,fork:`⋔`,forkv:`⫙`,Fouriertrf:`ℱ`,fpartint:`⨍`,frac12:`½`,frac13:`⅓`,frac14:`¼`,frac15:`⅕`,frac16:`⅙`,frac18:`⅛`,frac23:`⅔`,frac25:`⅖`,frac34:`¾`,frac35:`⅗`,frac38:`⅜`,frac45:`⅘`,frac56:`⅚`,frac58:`⅝`,frac78:`⅞`,frasl:`⁄`,frown:`⌢`,Fscr:`ℱ`,fscr:`𝒻`,gacute:`ǵ`,Gamma:`Γ`,gamma:`γ`,Gammad:`Ϝ`,gammad:`ϝ`,gap:`⪆`,Gbreve:`Ğ`,gbreve:`ğ`,Gcedil:`Ģ`,Gcirc:`Ĝ`,gcirc:`ĝ`,Gcy:`Г`,gcy:`г`,Gdot:`Ġ`,gdot:`ġ`,gE:`≧`,ge:`≥`,gEl:`⪌`,gel:`⋛`,geq:`≥`,geqq:`≧`,geqslant:`⩾`,ges:`⩾`,gescc:`⪩`,gesdot:`⪀`,gesdoto:`⪂`,gesdotol:`⪄`,gesl:`⋛︀`,gesles:`⪔`,Gfr:`𝔊`,gfr:`𝔤`,Gg:`⋙`,gg:`≫`,ggg:`⋙`,gimel:`ℷ`,GJcy:`Ѓ`,gjcy:`ѓ`,gl:`≷`,gla:`⪥`,glE:`⪒`,glj:`⪤`,gnap:`⪊`,gnapprox:`⪊`,gnE:`≩`,gne:`⪈`,gneq:`⪈`,gneqq:`≩`,gnsim:`⋧`,Gopf:`𝔾`,gopf:`𝕘`,grave:"`",GreaterEqual:`≥`,GreaterEqualLess:`⋛`,GreaterFullEqual:`≧`,GreaterGreater:`⪢`,GreaterLess:`≷`,GreaterSlantEqual:`⩾`,GreaterTilde:`≳`,Gscr:`𝒢`,gscr:`ℊ`,gsim:`≳`,gsime:`⪎`,gsiml:`⪐`,Gt:`≫`,GT:`>`,gt:`>`,gtcc:`⪧`,gtcir:`⩺`,gtdot:`⋗`,gtlPar:`⦕`,gtquest:`⩼`,gtrapprox:`⪆`,gtrarr:`⥸`,gtrdot:`⋗`,gtreqless:`⋛`,gtreqqless:`⪌`,gtrless:`≷`,gtrsim:`≳`,gvertneqq:`≩︀`,gvnE:`≩︀`,Hacek:`ˇ`,hairsp:` `,half:`½`,hamilt:`ℋ`,HARDcy:`Ъ`,hardcy:`ъ`,hArr:`⇔`,harr:`↔`,harrcir:`⥈`,harrw:`↭`,Hat:`^`,hbar:`ℏ`,Hcirc:`Ĥ`,hcirc:`ĥ`,hearts:`♥`,heartsuit:`♥`,hellip:`…`,hercon:`⊹`,Hfr:`ℌ`,hfr:`𝔥`,HilbertSpace:`ℋ`,hksearow:`⤥`,hkswarow:`⤦`,hoarr:`⇿`,homtht:`∻`,hookleftarrow:`↩`,hookrightarrow:`↪`,Hopf:`ℍ`,hopf:`𝕙`,horbar:`―`,HorizontalLine:`─`,Hscr:`ℋ`,hscr:`𝒽`,hslash:`ℏ`,Hstrok:`Ħ`,hstrok:`ħ`,HumpDownHump:`≎`,HumpEqual:`≏`,hybull:`⁃`,hyphen:`‐`,Iacute:`Í`,iacute:`í`,ic:``,Icirc:`Î`,icirc:`î`,Icy:`И`,icy:`и`,Idot:`İ`,IEcy:`Е`,iecy:`е`,iexcl:`¡`,iff:`⇔`,Ifr:`ℑ`,ifr:`𝔦`,Igrave:`Ì`,igrave:`ì`,ii:`ⅈ`,iiiint:`⨌`,iiint:`∭`,iinfin:`⧜`,iiota:`℩`,IJlig:`IJ`,ijlig:`ij`,Im:`ℑ`,Imacr:`Ī`,imacr:`ī`,image:`ℑ`,ImaginaryI:`ⅈ`,imagline:`ℐ`,imagpart:`ℑ`,imath:`ı`,imof:`⊷`,imped:`Ƶ`,Implies:`⇒`,in:`∈`,incare:`℅`,infin:`∞`,infintie:`⧝`,inodot:`ı`,Int:`∬`,int:`∫`,intcal:`⊺`,integers:`ℤ`,Integral:`∫`,intercal:`⊺`,Intersection:`⋂`,intlarhk:`⨗`,intprod:`⨼`,InvisibleComma:``,InvisibleTimes:``,IOcy:`Ё`,iocy:`ё`,Iogon:`Į`,iogon:`į`,Iopf:`𝕀`,iopf:`𝕚`,Iota:`Ι`,iota:`ι`,iprod:`⨼`,iquest:`¿`,Iscr:`ℐ`,iscr:`𝒾`,isin:`∈`,isindot:`⋵`,isinE:`⋹`,isins:`⋴`,isinsv:`⋳`,isinv:`∈`,it:``,Itilde:`Ĩ`,itilde:`ĩ`,Iukcy:`І`,iukcy:`і`,Iuml:`Ï`,iuml:`ï`,Jcirc:`Ĵ`,jcirc:`ĵ`,Jcy:`Й`,jcy:`й`,Jfr:`𝔍`,jfr:`𝔧`,jmath:`ȷ`,Jopf:`𝕁`,jopf:`𝕛`,Jscr:`𝒥`,jscr:`𝒿`,Jsercy:`Ј`,jsercy:`ј`,Jukcy:`Є`,jukcy:`є`,Kappa:`Κ`,kappa:`κ`,kappav:`ϰ`,Kcedil:`Ķ`,kcedil:`ķ`,Kcy:`К`,kcy:`к`,Kfr:`𝔎`,kfr:`𝔨`,kgreen:`ĸ`,KHcy:`Х`,khcy:`х`,KJcy:`Ќ`,kjcy:`ќ`,Kopf:`𝕂`,kopf:`𝕜`,Kscr:`𝒦`,kscr:`𝓀`,lAarr:`⇚`,Lacute:`Ĺ`,lacute:`ĺ`,laemptyv:`⦴`,lagran:`ℒ`,Lambda:`Λ`,lambda:`λ`,Lang:`⟪`,lang:`⟨`,langd:`⦑`,langle:`⟨`,lap:`⪅`,Laplacetrf:`ℒ`,laquo:`«`,Larr:`↞`,lArr:`⇐`,larr:`←`,larrb:`⇤`,larrbfs:`⤟`,larrfs:`⤝`,larrhk:`↩`,larrlp:`↫`,larrpl:`⤹`,larrsim:`⥳`,larrtl:`↢`,lat:`⪫`,lAtail:`⤛`,latail:`⤙`,late:`⪭`,lates:`⪭︀`,lBarr:`⤎`,lbarr:`⤌`,lbbrk:`❲`,lbrace:`{`,lbrack:`[`,lbrke:`⦋`,lbrksld:`⦏`,lbrkslu:`⦍`,Lcaron:`Ľ`,lcaron:`ľ`,Lcedil:`Ļ`,lcedil:`ļ`,lceil:`⌈`,lcub:`{`,Lcy:`Л`,lcy:`л`,ldca:`⤶`,ldquo:`“`,ldquor:`„`,ldrdhar:`⥧`,ldrushar:`⥋`,ldsh:`↲`,lE:`≦`,le:`≤`,LeftAngleBracket:`⟨`,LeftArrow:`←`,Leftarrow:`⇐`,leftarrow:`←`,LeftArrowBar:`⇤`,LeftArrowRightArrow:`⇆`,leftarrowtail:`↢`,LeftCeiling:`⌈`,LeftDoubleBracket:`⟦`,LeftDownTeeVector:`⥡`,LeftDownVector:`⇃`,LeftDownVectorBar:`⥙`,LeftFloor:`⌊`,leftharpoondown:`↽`,leftharpoonup:`↼`,leftleftarrows:`⇇`,LeftRightArrow:`↔`,Leftrightarrow:`⇔`,leftrightarrow:`↔`,leftrightarrows:`⇆`,leftrightharpoons:`⇋`,leftrightsquigarrow:`↭`,LeftRightVector:`⥎`,LeftTee:`⊣`,LeftTeeArrow:`↤`,LeftTeeVector:`⥚`,leftthreetimes:`⋋`,LeftTriangle:`⊲`,LeftTriangleBar:`⧏`,LeftTriangleEqual:`⊴`,LeftUpDownVector:`⥑`,LeftUpTeeVector:`⥠`,LeftUpVector:`↿`,LeftUpVectorBar:`⥘`,LeftVector:`↼`,LeftVectorBar:`⥒`,lEg:`⪋`,leg:`⋚`,leq:`≤`,leqq:`≦`,leqslant:`⩽`,les:`⩽`,lescc:`⪨`,lesdot:`⩿`,lesdoto:`⪁`,lesdotor:`⪃`,lesg:`⋚︀`,lesges:`⪓`,lessapprox:`⪅`,lessdot:`⋖`,lesseqgtr:`⋚`,lesseqqgtr:`⪋`,LessEqualGreater:`⋚`,LessFullEqual:`≦`,LessGreater:`≶`,lessgtr:`≶`,LessLess:`⪡`,lesssim:`≲`,LessSlantEqual:`⩽`,LessTilde:`≲`,lfisht:`⥼`,lfloor:`⌊`,Lfr:`𝔏`,lfr:`𝔩`,lg:`≶`,lgE:`⪑`,lHar:`⥢`,lhard:`↽`,lharu:`↼`,lharul:`⥪`,lhblk:`▄`,LJcy:`Љ`,ljcy:`љ`,Ll:`⋘`,ll:`≪`,llarr:`⇇`,llcorner:`⌞`,Lleftarrow:`⇚`,llhard:`⥫`,lltri:`◺`,Lmidot:`Ŀ`,lmidot:`ŀ`,lmoust:`⎰`,lmoustache:`⎰`,lnap:`⪉`,lnapprox:`⪉`,lnE:`≨`,lne:`⪇`,lneq:`⪇`,lneqq:`≨`,lnsim:`⋦`,loang:`⟬`,loarr:`⇽`,lobrk:`⟦`,LongLeftArrow:`⟵`,Longleftarrow:`⟸`,longleftarrow:`⟵`,LongLeftRightArrow:`⟷`,Longleftrightarrow:`⟺`,longleftrightarrow:`⟷`,longmapsto:`⟼`,LongRightArrow:`⟶`,Longrightarrow:`⟹`,longrightarrow:`⟶`,looparrowleft:`↫`,looparrowright:`↬`,lopar:`⦅`,Lopf:`𝕃`,lopf:`𝕝`,loplus:`⨭`,lotimes:`⨴`,lowast:`∗`,lowbar:`_`,LowerLeftArrow:`↙`,LowerRightArrow:`↘`,loz:`◊`,lozenge:`◊`,lozf:`⧫`,lpar:`(`,lparlt:`⦓`,lrarr:`⇆`,lrcorner:`⌟`,lrhar:`⇋`,lrhard:`⥭`,lrm:``,lrtri:`⊿`,lsaquo:`‹`,Lscr:`ℒ`,lscr:`𝓁`,Lsh:`↰`,lsh:`↰`,lsim:`≲`,lsime:`⪍`,lsimg:`⪏`,lsqb:`[`,lsquo:`‘`,lsquor:`‚`,Lstrok:`Ł`,lstrok:`ł`,Lt:`≪`,LT:`<`,lt:`<`,ltcc:`⪦`,ltcir:`⩹`,ltdot:`⋖`,lthree:`⋋`,ltimes:`⋉`,ltlarr:`⥶`,ltquest:`⩻`,ltri:`◃`,ltrie:`⊴`,ltrif:`◂`,ltrPar:`⦖`,lurdshar:`⥊`,luruhar:`⥦`,lvertneqq:`≨︀`,lvnE:`≨︀`,macr:`¯`,male:`♂`,malt:`✠`,maltese:`✠`,Map:`⤅`,map:`↦`,mapsto:`↦`,mapstodown:`↧`,mapstoleft:`↤`,mapstoup:`↥`,marker:`▮`,mcomma:`⨩`,Mcy:`М`,mcy:`м`,mdash:`—`,mDDot:`∺`,measuredangle:`∡`,MediumSpace:` `,Mellintrf:`ℳ`,Mfr:`𝔐`,mfr:`𝔪`,mho:`℧`,micro:`µ`,mid:`∣`,midast:`*`,midcir:`⫰`,middot:`·`,minus:`−`,minusb:`⊟`,minusd:`∸`,minusdu:`⨪`,MinusPlus:`∓`,mlcp:`⫛`,mldr:`…`,mnplus:`∓`,models:`⊧`,Mopf:`𝕄`,mopf:`𝕞`,mp:`∓`,Mscr:`ℳ`,mscr:`𝓂`,mstpos:`∾`,Mu:`Μ`,mu:`μ`,multimap:`⊸`,mumap:`⊸`,nabla:`∇`,Nacute:`Ń`,nacute:`ń`,nang:`∠⃒`,nap:`≉`,napE:`⩰̸`,napid:`≋̸`,napos:`ʼn`,napprox:`≉`,natur:`♮`,natural:`♮`,naturals:`ℕ`,nbsp:`\xA0`,nbump:`≎̸`,nbumpe:`≏̸`,ncap:`⩃`,Ncaron:`Ň`,ncaron:`ň`,Ncedil:`Ņ`,ncedil:`ņ`,ncong:`≇`,ncongdot:`⩭̸`,ncup:`⩂`,Ncy:`Н`,ncy:`н`,ndash:`–`,ne:`≠`,nearhk:`⤤`,neArr:`⇗`,nearr:`↗`,nearrow:`↗`,nedot:`≐̸`,NegativeMediumSpace:``,NegativeThickSpace:``,NegativeThinSpace:``,NegativeVeryThinSpace:``,nequiv:`≢`,nesear:`⤨`,nesim:`≂̸`,NestedGreaterGreater:`≫`,NestedLessLess:`≪`,NewLine:`
|
|
2
|
+
`,nexist:`∄`,nexists:`∄`,Nfr:`𝔑`,nfr:`𝔫`,ngE:`≧̸`,nge:`≱`,ngeq:`≱`,ngeqq:`≧̸`,ngeqslant:`⩾̸`,nges:`⩾̸`,nGg:`⋙̸`,ngsim:`≵`,nGt:`≫⃒`,ngt:`≯`,ngtr:`≯`,nGtv:`≫̸`,nhArr:`⇎`,nharr:`↮`,nhpar:`⫲`,ni:`∋`,nis:`⋼`,nisd:`⋺`,niv:`∋`,NJcy:`Њ`,njcy:`њ`,nlArr:`⇍`,nlarr:`↚`,nldr:`‥`,nlE:`≦̸`,nle:`≰`,nLeftarrow:`⇍`,nleftarrow:`↚`,nLeftrightarrow:`⇎`,nleftrightarrow:`↮`,nleq:`≰`,nleqq:`≦̸`,nleqslant:`⩽̸`,nles:`⩽̸`,nless:`≮`,nLl:`⋘̸`,nlsim:`≴`,nLt:`≪⃒`,nlt:`≮`,nltri:`⋪`,nltrie:`⋬`,nLtv:`≪̸`,nmid:`∤`,NoBreak:``,NonBreakingSpace:`\xA0`,Nopf:`ℕ`,nopf:`𝕟`,Not:`⫬`,not:`¬`,NotCongruent:`≢`,NotCupCap:`≭`,NotDoubleVerticalBar:`∦`,NotElement:`∉`,NotEqual:`≠`,NotEqualTilde:`≂̸`,NotExists:`∄`,NotGreater:`≯`,NotGreaterEqual:`≱`,NotGreaterFullEqual:`≧̸`,NotGreaterGreater:`≫̸`,NotGreaterLess:`≹`,NotGreaterSlantEqual:`⩾̸`,NotGreaterTilde:`≵`,NotHumpDownHump:`≎̸`,NotHumpEqual:`≏̸`,notin:`∉`,notindot:`⋵̸`,notinE:`⋹̸`,notinva:`∉`,notinvb:`⋷`,notinvc:`⋶`,NotLeftTriangle:`⋪`,NotLeftTriangleBar:`⧏̸`,NotLeftTriangleEqual:`⋬`,NotLess:`≮`,NotLessEqual:`≰`,NotLessGreater:`≸`,NotLessLess:`≪̸`,NotLessSlantEqual:`⩽̸`,NotLessTilde:`≴`,NotNestedGreaterGreater:`⪢̸`,NotNestedLessLess:`⪡̸`,notni:`∌`,notniva:`∌`,notnivb:`⋾`,notnivc:`⋽`,NotPrecedes:`⊀`,NotPrecedesEqual:`⪯̸`,NotPrecedesSlantEqual:`⋠`,NotReverseElement:`∌`,NotRightTriangle:`⋫`,NotRightTriangleBar:`⧐̸`,NotRightTriangleEqual:`⋭`,NotSquareSubset:`⊏̸`,NotSquareSubsetEqual:`⋢`,NotSquareSuperset:`⊐̸`,NotSquareSupersetEqual:`⋣`,NotSubset:`⊂⃒`,NotSubsetEqual:`⊈`,NotSucceeds:`⊁`,NotSucceedsEqual:`⪰̸`,NotSucceedsSlantEqual:`⋡`,NotSucceedsTilde:`≿̸`,NotSuperset:`⊃⃒`,NotSupersetEqual:`⊉`,NotTilde:`≁`,NotTildeEqual:`≄`,NotTildeFullEqual:`≇`,NotTildeTilde:`≉`,NotVerticalBar:`∤`,npar:`∦`,nparallel:`∦`,nparsl:`⫽⃥`,npart:`∂̸`,npolint:`⨔`,npr:`⊀`,nprcue:`⋠`,npre:`⪯̸`,nprec:`⊀`,npreceq:`⪯̸`,nrArr:`⇏`,nrarr:`↛`,nrarrc:`⤳̸`,nrarrw:`↝̸`,nRightarrow:`⇏`,nrightarrow:`↛`,nrtri:`⋫`,nrtrie:`⋭`,nsc:`⊁`,nsccue:`⋡`,nsce:`⪰̸`,Nscr:`𝒩`,nscr:`𝓃`,nshortmid:`∤`,nshortparallel:`∦`,nsim:`≁`,nsime:`≄`,nsimeq:`≄`,nsmid:`∤`,nspar:`∦`,nsqsube:`⋢`,nsqsupe:`⋣`,nsub:`⊄`,nsubE:`⫅̸`,nsube:`⊈`,nsubset:`⊂⃒`,nsubseteq:`⊈`,nsubseteqq:`⫅̸`,nsucc:`⊁`,nsucceq:`⪰̸`,nsup:`⊅`,nsupE:`⫆̸`,nsupe:`⊉`,nsupset:`⊃⃒`,nsupseteq:`⊉`,nsupseteqq:`⫆̸`,ntgl:`≹`,Ntilde:`Ñ`,ntilde:`ñ`,ntlg:`≸`,ntriangleleft:`⋪`,ntrianglelefteq:`⋬`,ntriangleright:`⋫`,ntrianglerighteq:`⋭`,Nu:`Ν`,nu:`ν`,num:`#`,numero:`№`,numsp:` `,nvap:`≍⃒`,nVDash:`⊯`,nVdash:`⊮`,nvDash:`⊭`,nvdash:`⊬`,nvge:`≥⃒`,nvgt:`>⃒`,nvHarr:`⤄`,nvinfin:`⧞`,nvlArr:`⤂`,nvle:`≤⃒`,nvlt:`<⃒`,nvltrie:`⊴⃒`,nvrArr:`⤃`,nvrtrie:`⊵⃒`,nvsim:`∼⃒`,nwarhk:`⤣`,nwArr:`⇖`,nwarr:`↖`,nwarrow:`↖`,nwnear:`⤧`,Oacute:`Ó`,oacute:`ó`,oast:`⊛`,ocir:`⊚`,Ocirc:`Ô`,ocirc:`ô`,Ocy:`О`,ocy:`о`,odash:`⊝`,Odblac:`Ő`,odblac:`ő`,odiv:`⨸`,odot:`⊙`,odsold:`⦼`,OElig:`Œ`,oelig:`œ`,ofcir:`⦿`,Ofr:`𝔒`,ofr:`𝔬`,ogon:`˛`,Ograve:`Ò`,ograve:`ò`,ogt:`⧁`,ohbar:`⦵`,ohm:`Ω`,oint:`∮`,olarr:`↺`,olcir:`⦾`,olcross:`⦻`,oline:`‾`,olt:`⧀`,Omacr:`Ō`,omacr:`ō`,Omega:`Ω`,omega:`ω`,Omicron:`Ο`,omicron:`ο`,omid:`⦶`,ominus:`⊖`,Oopf:`𝕆`,oopf:`𝕠`,opar:`⦷`,OpenCurlyDoubleQuote:`“`,OpenCurlyQuote:`‘`,operp:`⦹`,oplus:`⊕`,Or:`⩔`,or:`∨`,orarr:`↻`,ord:`⩝`,order:`ℴ`,orderof:`ℴ`,ordf:`ª`,ordm:`º`,origof:`⊶`,oror:`⩖`,orslope:`⩗`,orv:`⩛`,oS:`Ⓢ`,Oscr:`𝒪`,oscr:`ℴ`,Oslash:`Ø`,oslash:`ø`,osol:`⊘`,Otilde:`Õ`,otilde:`õ`,Otimes:`⨷`,otimes:`⊗`,otimesas:`⨶`,Ouml:`Ö`,ouml:`ö`,ovbar:`⌽`,OverBar:`‾`,OverBrace:`⏞`,OverBracket:`⎴`,OverParenthesis:`⏜`,par:`∥`,para:`¶`,parallel:`∥`,parsim:`⫳`,parsl:`⫽`,part:`∂`,PartialD:`∂`,Pcy:`П`,pcy:`п`,percnt:`%`,period:`.`,permil:`‰`,perp:`⊥`,pertenk:`‱`,Pfr:`𝔓`,pfr:`𝔭`,Phi:`Φ`,phi:`φ`,phiv:`ϕ`,phmmat:`ℳ`,phone:`☎`,Pi:`Π`,pi:`π`,pitchfork:`⋔`,piv:`ϖ`,planck:`ℏ`,planckh:`ℎ`,plankv:`ℏ`,plus:`+`,plusacir:`⨣`,plusb:`⊞`,pluscir:`⨢`,plusdo:`∔`,plusdu:`⨥`,pluse:`⩲`,PlusMinus:`±`,plusmn:`±`,plussim:`⨦`,plustwo:`⨧`,pm:`±`,Poincareplane:`ℌ`,pointint:`⨕`,Popf:`ℙ`,popf:`𝕡`,pound:`£`,Pr:`⪻`,pr:`≺`,prap:`⪷`,prcue:`≼`,prE:`⪳`,pre:`⪯`,prec:`≺`,precapprox:`⪷`,preccurlyeq:`≼`,Precedes:`≺`,PrecedesEqual:`⪯`,PrecedesSlantEqual:`≼`,PrecedesTilde:`≾`,preceq:`⪯`,precnapprox:`⪹`,precneqq:`⪵`,precnsim:`⋨`,precsim:`≾`,Prime:`″`,prime:`′`,primes:`ℙ`,prnap:`⪹`,prnE:`⪵`,prnsim:`⋨`,prod:`∏`,Product:`∏`,profalar:`⌮`,profline:`⌒`,profsurf:`⌓`,prop:`∝`,Proportion:`∷`,Proportional:`∝`,propto:`∝`,prsim:`≾`,prurel:`⊰`,Pscr:`𝒫`,pscr:`𝓅`,Psi:`Ψ`,psi:`ψ`,puncsp:` `,Qfr:`𝔔`,qfr:`𝔮`,qint:`⨌`,Qopf:`ℚ`,qopf:`𝕢`,qprime:`⁗`,Qscr:`𝒬`,qscr:`𝓆`,quaternions:`ℍ`,quatint:`⨖`,quest:`?`,questeq:`≟`,QUOT:`"`,quot:`"`,rAarr:`⇛`,race:`∽̱`,Racute:`Ŕ`,racute:`ŕ`,radic:`√`,raemptyv:`⦳`,Rang:`⟫`,rang:`⟩`,rangd:`⦒`,range:`⦥`,rangle:`⟩`,raquo:`»`,Rarr:`↠`,rArr:`⇒`,rarr:`→`,rarrap:`⥵`,rarrb:`⇥`,rarrbfs:`⤠`,rarrc:`⤳`,rarrfs:`⤞`,rarrhk:`↪`,rarrlp:`↬`,rarrpl:`⥅`,rarrsim:`⥴`,Rarrtl:`⤖`,rarrtl:`↣`,rarrw:`↝`,rAtail:`⤜`,ratail:`⤚`,ratio:`∶`,rationals:`ℚ`,RBarr:`⤐`,rBarr:`⤏`,rbarr:`⤍`,rbbrk:`❳`,rbrace:`}`,rbrack:`]`,rbrke:`⦌`,rbrksld:`⦎`,rbrkslu:`⦐`,Rcaron:`Ř`,rcaron:`ř`,Rcedil:`Ŗ`,rcedil:`ŗ`,rceil:`⌉`,rcub:`}`,Rcy:`Р`,rcy:`р`,rdca:`⤷`,rdldhar:`⥩`,rdquo:`”`,rdquor:`”`,rdsh:`↳`,Re:`ℜ`,real:`ℜ`,realine:`ℛ`,realpart:`ℜ`,reals:`ℝ`,rect:`▭`,REG:`®`,reg:`®`,ReverseElement:`∋`,ReverseEquilibrium:`⇋`,ReverseUpEquilibrium:`⥯`,rfisht:`⥽`,rfloor:`⌋`,Rfr:`ℜ`,rfr:`𝔯`,rHar:`⥤`,rhard:`⇁`,rharu:`⇀`,rharul:`⥬`,Rho:`Ρ`,rho:`ρ`,rhov:`ϱ`,RightAngleBracket:`⟩`,RightArrow:`→`,Rightarrow:`⇒`,rightarrow:`→`,RightArrowBar:`⇥`,RightArrowLeftArrow:`⇄`,rightarrowtail:`↣`,RightCeiling:`⌉`,RightDoubleBracket:`⟧`,RightDownTeeVector:`⥝`,RightDownVector:`⇂`,RightDownVectorBar:`⥕`,RightFloor:`⌋`,rightharpoondown:`⇁`,rightharpoonup:`⇀`,rightleftarrows:`⇄`,rightleftharpoons:`⇌`,rightrightarrows:`⇉`,rightsquigarrow:`↝`,RightTee:`⊢`,RightTeeArrow:`↦`,RightTeeVector:`⥛`,rightthreetimes:`⋌`,RightTriangle:`⊳`,RightTriangleBar:`⧐`,RightTriangleEqual:`⊵`,RightUpDownVector:`⥏`,RightUpTeeVector:`⥜`,RightUpVector:`↾`,RightUpVectorBar:`⥔`,RightVector:`⇀`,RightVectorBar:`⥓`,ring:`˚`,risingdotseq:`≓`,rlarr:`⇄`,rlhar:`⇌`,rlm:``,rmoust:`⎱`,rmoustache:`⎱`,rnmid:`⫮`,roang:`⟭`,roarr:`⇾`,robrk:`⟧`,ropar:`⦆`,Ropf:`ℝ`,ropf:`𝕣`,roplus:`⨮`,rotimes:`⨵`,RoundImplies:`⥰`,rpar:`)`,rpargt:`⦔`,rppolint:`⨒`,rrarr:`⇉`,Rrightarrow:`⇛`,rsaquo:`›`,Rscr:`ℛ`,rscr:`𝓇`,Rsh:`↱`,rsh:`↱`,rsqb:`]`,rsquo:`’`,rsquor:`’`,rthree:`⋌`,rtimes:`⋊`,rtri:`▹`,rtrie:`⊵`,rtrif:`▸`,rtriltri:`⧎`,RuleDelayed:`⧴`,ruluhar:`⥨`,rx:`℞`,Sacute:`Ś`,sacute:`ś`,sbquo:`‚`,Sc:`⪼`,sc:`≻`,scap:`⪸`,Scaron:`Š`,scaron:`š`,sccue:`≽`,scE:`⪴`,sce:`⪰`,Scedil:`Ş`,scedil:`ş`,Scirc:`Ŝ`,scirc:`ŝ`,scnap:`⪺`,scnE:`⪶`,scnsim:`⋩`,scpolint:`⨓`,scsim:`≿`,Scy:`С`,scy:`с`,sdot:`⋅`,sdotb:`⊡`,sdote:`⩦`,searhk:`⤥`,seArr:`⇘`,searr:`↘`,searrow:`↘`,sect:`§`,semi:`;`,seswar:`⤩`,setminus:`∖`,setmn:`∖`,sext:`✶`,Sfr:`𝔖`,sfr:`𝔰`,sfrown:`⌢`,sharp:`♯`,SHCHcy:`Щ`,shchcy:`щ`,SHcy:`Ш`,shcy:`ш`,ShortDownArrow:`↓`,ShortLeftArrow:`←`,shortmid:`∣`,shortparallel:`∥`,ShortRightArrow:`→`,ShortUpArrow:`↑`,shy:``,Sigma:`Σ`,sigma:`σ`,sigmaf:`ς`,sigmav:`ς`,sim:`∼`,simdot:`⩪`,sime:`≃`,simeq:`≃`,simg:`⪞`,simgE:`⪠`,siml:`⪝`,simlE:`⪟`,simne:`≆`,simplus:`⨤`,simrarr:`⥲`,slarr:`←`,SmallCircle:`∘`,smallsetminus:`∖`,smashp:`⨳`,smeparsl:`⧤`,smid:`∣`,smile:`⌣`,smt:`⪪`,smte:`⪬`,smtes:`⪬︀`,SOFTcy:`Ь`,softcy:`ь`,sol:`/`,solb:`⧄`,solbar:`⌿`,Sopf:`𝕊`,sopf:`𝕤`,spades:`♠`,spadesuit:`♠`,spar:`∥`,sqcap:`⊓`,sqcaps:`⊓︀`,sqcup:`⊔`,sqcups:`⊔︀`,Sqrt:`√`,sqsub:`⊏`,sqsube:`⊑`,sqsubset:`⊏`,sqsubseteq:`⊑`,sqsup:`⊐`,sqsupe:`⊒`,sqsupset:`⊐`,sqsupseteq:`⊒`,squ:`□`,Square:`□`,square:`□`,SquareIntersection:`⊓`,SquareSubset:`⊏`,SquareSubsetEqual:`⊑`,SquareSuperset:`⊐`,SquareSupersetEqual:`⊒`,SquareUnion:`⊔`,squarf:`▪`,squf:`▪`,srarr:`→`,Sscr:`𝒮`,sscr:`𝓈`,ssetmn:`∖`,ssmile:`⌣`,sstarf:`⋆`,Star:`⋆`,star:`☆`,starf:`★`,straightepsilon:`ϵ`,straightphi:`ϕ`,strns:`¯`,Sub:`⋐`,sub:`⊂`,subdot:`⪽`,subE:`⫅`,sube:`⊆`,subedot:`⫃`,submult:`⫁`,subnE:`⫋`,subne:`⊊`,subplus:`⪿`,subrarr:`⥹`,Subset:`⋐`,subset:`⊂`,subseteq:`⊆`,subseteqq:`⫅`,SubsetEqual:`⊆`,subsetneq:`⊊`,subsetneqq:`⫋`,subsim:`⫇`,subsub:`⫕`,subsup:`⫓`,succ:`≻`,succapprox:`⪸`,succcurlyeq:`≽`,Succeeds:`≻`,SucceedsEqual:`⪰`,SucceedsSlantEqual:`≽`,SucceedsTilde:`≿`,succeq:`⪰`,succnapprox:`⪺`,succneqq:`⪶`,succnsim:`⋩`,succsim:`≿`,SuchThat:`∋`,Sum:`∑`,sum:`∑`,sung:`♪`,Sup:`⋑`,sup:`⊃`,sup1:`¹`,sup2:`²`,sup3:`³`,supdot:`⪾`,supdsub:`⫘`,supE:`⫆`,supe:`⊇`,supedot:`⫄`,Superset:`⊃`,SupersetEqual:`⊇`,suphsol:`⟉`,suphsub:`⫗`,suplarr:`⥻`,supmult:`⫂`,supnE:`⫌`,supne:`⊋`,supplus:`⫀`,Supset:`⋑`,supset:`⊃`,supseteq:`⊇`,supseteqq:`⫆`,supsetneq:`⊋`,supsetneqq:`⫌`,supsim:`⫈`,supsub:`⫔`,supsup:`⫖`,swarhk:`⤦`,swArr:`⇙`,swarr:`↙`,swarrow:`↙`,swnwar:`⤪`,szlig:`ß`,Tab:` `,target:`⌖`,Tau:`Τ`,tau:`τ`,tbrk:`⎴`,Tcaron:`Ť`,tcaron:`ť`,Tcedil:`Ţ`,tcedil:`ţ`,Tcy:`Т`,tcy:`т`,tdot:`⃛`,telrec:`⌕`,Tfr:`𝔗`,tfr:`𝔱`,there4:`∴`,Therefore:`∴`,therefore:`∴`,Theta:`Θ`,theta:`θ`,thetasym:`ϑ`,thetav:`ϑ`,thickapprox:`≈`,thicksim:`∼`,ThickSpace:` `,thinsp:` `,ThinSpace:` `,thkap:`≈`,thksim:`∼`,THORN:`Þ`,thorn:`þ`,Tilde:`∼`,tilde:`˜`,TildeEqual:`≃`,TildeFullEqual:`≅`,TildeTilde:`≈`,times:`×`,timesb:`⊠`,timesbar:`⨱`,timesd:`⨰`,tint:`∭`,toea:`⤨`,top:`⊤`,topbot:`⌶`,topcir:`⫱`,Topf:`𝕋`,topf:`𝕥`,topfork:`⫚`,tosa:`⤩`,tprime:`‴`,TRADE:`™`,trade:`™`,triangle:`▵`,triangledown:`▿`,triangleleft:`◃`,trianglelefteq:`⊴`,triangleq:`≜`,triangleright:`▹`,trianglerighteq:`⊵`,tridot:`◬`,trie:`≜`,triminus:`⨺`,TripleDot:`⃛`,triplus:`⨹`,trisb:`⧍`,tritime:`⨻`,trpezium:`⏢`,Tscr:`𝒯`,tscr:`𝓉`,TScy:`Ц`,tscy:`ц`,TSHcy:`Ћ`,tshcy:`ћ`,Tstrok:`Ŧ`,tstrok:`ŧ`,twixt:`≬`,twoheadleftarrow:`↞`,twoheadrightarrow:`↠`,Uacute:`Ú`,uacute:`ú`,Uarr:`↟`,uArr:`⇑`,uarr:`↑`,Uarrocir:`⥉`,Ubrcy:`Ў`,ubrcy:`ў`,Ubreve:`Ŭ`,ubreve:`ŭ`,Ucirc:`Û`,ucirc:`û`,Ucy:`У`,ucy:`у`,udarr:`⇅`,Udblac:`Ű`,udblac:`ű`,udhar:`⥮`,ufisht:`⥾`,Ufr:`𝔘`,ufr:`𝔲`,Ugrave:`Ù`,ugrave:`ù`,uHar:`⥣`,uharl:`↿`,uharr:`↾`,uhblk:`▀`,ulcorn:`⌜`,ulcorner:`⌜`,ulcrop:`⌏`,ultri:`◸`,Umacr:`Ū`,umacr:`ū`,uml:`¨`,UnderBar:`_`,UnderBrace:`⏟`,UnderBracket:`⎵`,UnderParenthesis:`⏝`,Union:`⋃`,UnionPlus:`⊎`,Uogon:`Ų`,uogon:`ų`,Uopf:`𝕌`,uopf:`𝕦`,UpArrow:`↑`,Uparrow:`⇑`,uparrow:`↑`,UpArrowBar:`⤒`,UpArrowDownArrow:`⇅`,UpDownArrow:`↕`,Updownarrow:`⇕`,updownarrow:`↕`,UpEquilibrium:`⥮`,upharpoonleft:`↿`,upharpoonright:`↾`,uplus:`⊎`,UpperLeftArrow:`↖`,UpperRightArrow:`↗`,Upsi:`ϒ`,upsi:`υ`,upsih:`ϒ`,Upsilon:`Υ`,upsilon:`υ`,UpTee:`⊥`,UpTeeArrow:`↥`,upuparrows:`⇈`,urcorn:`⌝`,urcorner:`⌝`,urcrop:`⌎`,Uring:`Ů`,uring:`ů`,urtri:`◹`,Uscr:`𝒰`,uscr:`𝓊`,utdot:`⋰`,Utilde:`Ũ`,utilde:`ũ`,utri:`▵`,utrif:`▴`,uuarr:`⇈`,Uuml:`Ü`,uuml:`ü`,uwangle:`⦧`,vangrt:`⦜`,varepsilon:`ϵ`,varkappa:`ϰ`,varnothing:`∅`,varphi:`ϕ`,varpi:`ϖ`,varpropto:`∝`,vArr:`⇕`,varr:`↕`,varrho:`ϱ`,varsigma:`ς`,varsubsetneq:`⊊︀`,varsubsetneqq:`⫋︀`,varsupsetneq:`⊋︀`,varsupsetneqq:`⫌︀`,vartheta:`ϑ`,vartriangleleft:`⊲`,vartriangleright:`⊳`,Vbar:`⫫`,vBar:`⫨`,vBarv:`⫩`,Vcy:`В`,vcy:`в`,VDash:`⊫`,Vdash:`⊩`,vDash:`⊨`,vdash:`⊢`,Vdashl:`⫦`,Vee:`⋁`,vee:`∨`,veebar:`⊻`,veeeq:`≚`,vellip:`⋮`,Verbar:`‖`,verbar:`|`,Vert:`‖`,vert:`|`,VerticalBar:`∣`,VerticalLine:`|`,VerticalSeparator:`❘`,VerticalTilde:`≀`,VeryThinSpace:` `,Vfr:`𝔙`,vfr:`𝔳`,vltri:`⊲`,vnsub:`⊂⃒`,vnsup:`⊃⃒`,Vopf:`𝕍`,vopf:`𝕧`,vprop:`∝`,vrtri:`⊳`,Vscr:`𝒱`,vscr:`𝓋`,vsubnE:`⫋︀`,vsubne:`⊊︀`,vsupnE:`⫌︀`,vsupne:`⊋︀`,Vvdash:`⊪`,vzigzag:`⦚`,Wcirc:`Ŵ`,wcirc:`ŵ`,wedbar:`⩟`,Wedge:`⋀`,wedge:`∧`,wedgeq:`≙`,weierp:`℘`,Wfr:`𝔚`,wfr:`𝔴`,Wopf:`𝕎`,wopf:`𝕨`,wp:`℘`,wr:`≀`,wreath:`≀`,Wscr:`𝒲`,wscr:`𝓌`,xcap:`⋂`,xcirc:`◯`,xcup:`⋃`,xdtri:`▽`,Xfr:`𝔛`,xfr:`𝔵`,xhArr:`⟺`,xharr:`⟷`,Xi:`Ξ`,xi:`ξ`,xlArr:`⟸`,xlarr:`⟵`,xmap:`⟼`,xnis:`⋻`,xodot:`⨀`,Xopf:`𝕏`,xopf:`𝕩`,xoplus:`⨁`,xotime:`⨂`,xrArr:`⟹`,xrarr:`⟶`,Xscr:`𝒳`,xscr:`𝓍`,xsqcup:`⨆`,xuplus:`⨄`,xutri:`△`,xvee:`⋁`,xwedge:`⋀`,Yacute:`Ý`,yacute:`ý`,YAcy:`Я`,yacy:`я`,Ycirc:`Ŷ`,ycirc:`ŷ`,Ycy:`Ы`,ycy:`ы`,yen:`¥`,Yfr:`𝔜`,yfr:`𝔶`,YIcy:`Ї`,yicy:`ї`,Yopf:`𝕐`,yopf:`𝕪`,Yscr:`𝒴`,yscr:`𝓎`,YUcy:`Ю`,yucy:`ю`,Yuml:`Ÿ`,yuml:`ÿ`,Zacute:`Ź`,zacute:`ź`,Zcaron:`Ž`,zcaron:`ž`,Zcy:`З`,zcy:`з`,Zdot:`Ż`,zdot:`ż`,zeetrf:`ℨ`,ZeroWidthSpace:``,Zeta:`Ζ`,zeta:`ζ`,Zfr:`ℨ`,zfr:`𝔷`,ZHcy:`Ж`,zhcy:`ж`,zigrarr:`⇝`,Zopf:`ℤ`,zopf:`𝕫`,Zscr:`𝒵`,zscr:`𝓏`,zwj:``,zwnj:``}),e.entityMap=e.HTML_ENTITIES})),C=/* @__PURE__ */ e((e=>{var t=v(),n=b(),r=y(),i=t.isHTMLEscapableRawTextElement,a=t.isHTMLMimeType,o=t.isHTMLRawTextElement,s=t.hasOwn,c=t.NAMESPACE,l=r.ParseError,u=r.DOMException,d=0,f=1,p=2,m=3,h=4,g=5,_=6,x=7;function S(){}S.prototype={parse:function(e,t,n){var r=this.domBuilder;r.startDocument(),k(t,t=Object.create(null)),w(e,t,n,r,this.errorHandler),r.endDocument()}};var C=/&#?\w+;?/g;function w(e,r,i,o,c){var d=a(o.mimeType);e.indexOf(n.UNICODE_REPLACEMENT_CHARACTER)>=0&&c.warning(`Unicode replacement character detected, source encoding issues?`);function f(e){if(e>65535){e-=65536;var t=55296+(e>>10),n=56320+(e&1023);return String.fromCharCode(t,n)}return String.fromCharCode(e)}function p(e){var t=e[e.length-1]===`;`?e:e+`;`;if(!d&&t!==e)return c.error(`EntityRef: expecting ;`),e;var r=n.Reference.exec(t);if(!r||r[0].length!==t.length)return c.error(`entity not matching Reference production: `+e),e;var a=t.slice(1,-1);return s(i,a)?i[a]:a.charAt(0)===`#`?f(parseInt(a.substring(1).replace(`x`,`0x`))):(c.error(`entity not found:`+e),e)}function m(t){if(t>S){var n=e.substring(S,t).replace(C,p);v&&y(S),o.characters(n,0,t-S),S=t}}var h=0,g=0,_=/\r\n?|\n|$/g,v=o.locator;function y(t,n){for(;t>=g&&(n=_.exec(e));)h=g,g=n.index+n[0].length,v.lineNumber++;v.columnNumber=t-h+1}for(var b=[{currentNSMap:r}],x=[],S=0;;){try{var w=e.indexOf(`<`,S);if(w<0){if(!d&&x.length>0)return c.fatalError(`unclosed xml tag(s): `+x.join(`, `));if(!e.substring(S).match(/^\s*$/)){var k=o.doc,A=k.createTextNode(e.substring(S));if(k.documentElement)return c.error(`Extra content at the end of the document`);k.appendChild(A),o.currentElement=A}return}if(w>S){var j=e.substring(S,w);!d&&x.length===0&&(j=j.replace(new RegExp(n.S_OPT.source,`g`),``),j&&c.error(`Unexpected content outside root element: '`+j+`'`)),m(w)}switch(e.charAt(w+1)){case`/`:var P=e.indexOf(`>`,w+2),F=e.substring(w+2,P>0?P:void 0);if(!F)return c.fatalError(`end tag name missing`);var I=n.reg(`^`,n.QName_group,n.S_OPT,`$`),L=P>0&&I.exec(F);if(!L){var R=P>0&&n.reg(`^`,n.QName_group).exec(F);if(d&&R)c.warning(`end tag name contains invalid trailing characters: "`+F+`"`),L=R;else if(R&&new RegExp(I.source,I.flags+`m`).test(F))c.error(`end tag name is followed by a line break and trailing content: "`+F+`"`),L=R;else return c.fatalError(`end tag name contains invalid characters: "`+F+`"`)}if(!o.currentElement&&!o.doc.documentElement)return;var z=x[x.length-1]||o.currentElement.tagName||o.doc.documentElement.tagName||``;if(z!==L[1]){var B=L[1].toLowerCase();if(!d||z.toLowerCase()!==B)return c.fatalError(`Opening and ending tag mismatch: "`+z+`" != "`+F+`"`)}var V=b.pop();x.pop();var H=V.localNSMap;if(o.endElement(V.uri,V.localName,z),H)for(var U in H)s(H,U)&&o.endPrefixMapping(U);P++;break;case`?`:v&&y(w),P=ee(e,w,o,c);break;case`!`:v&&y(w),P=M(e,w,o,c,d);break;default:v&&y(w);var W=new N,G=b[b.length-1].currentNSMap,P=E(e,w,W,G,p,c,d),te=W.length;if(W.closed||(d&&t.isHTMLVoidElement(W.tagName)?W.closed=!0:x.push(W.tagName)),v&&te){for(var K=T(v,{}),q=0;q<te;q++){var ne=W[q];y(ne.offset),ne.locator=T(v,{})}o.locator=K,D(W,o,G)&&b.push(W),o.locator=v}else D(W,o,G)&&b.push(W);d&&!W.closed?P=O(e,P,W.tagName,p,o):P++}}catch(e){if(e instanceof l)throw e;if(e instanceof u)return c.fatalError(`Error constructing the DOM: `+e.name+`: `+e.message,e);c.error(`element parse error: `+e),P=-1}P>S?S=P:m(Math.max(w,S)+1)}}function T(e,t){return t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t}function E(e,t,n,r,i,a,o){function c(e,t,r){if(s(n.attributeNames,e))return a.fatalError(`Attribute `+e+` redefined`);if(!o&&t.indexOf(`<`)>=0)return a.fatalError(`Unescaped '<' not allowed in attributes values`);n.addValue(e,t.replace(/[\t\n\r]/g,` `).replace(C,i),r)}for(var l,u,v=++t,y=d;;){var b=e.charAt(v);if(y===d&&b===`<`)throw Error(`unexpected < in tag name: `+e.slice(t,v));switch(b){case`=`:if(y===f)l=e.slice(t,v),y=m;else if(y===p)y=m;else throw Error(`attribute equal must after attrName`);break;case`'`:case`"`:if(y===m||y===f){if(y===f&&(a.warning(`attribute value must after "="`),l=e.slice(t,v)),t=v+1,v=e.indexOf(b,t),v>0)u=e.slice(t,v),c(l,u,t-1),y=g;else throw Error(`attribute value no end '`+b+`' match`)}else if(y==h)u=e.slice(t,v),c(l,u,t),a.warning(`attribute "`+l+`" missed start quot(`+b+`)!!`),t=v+1,y=g;else throw Error(`attribute value must after "="`);break;case`/`:switch(y){case d:n.setTagName(e.slice(t,v));case g:case _:case x:y=x,n.closed=!0;case h:case f:break;case p:n.closed=!0;break;default:throw Error(`attribute invalid close char('/')`)}break;case``:return a.error(`unexpected end of input`),y==d&&n.setTagName(e.slice(t,v)),v;case`>`:switch(y){case d:n.setTagName(e.slice(t,v));case g:case _:case x:break;case h:case f:u=e.slice(t,v),u.slice(-1)===`/`&&(n.closed=!0,u=u.slice(0,-1));case p:y===p&&(u=l),y==h?(a.warning(`attribute "`+u+`" missed quot(")!`),c(l,u,t)):(o||a.warning(`attribute "`+u+`" missed value!! "`+u+`" instead!!`),c(u,u,t));break;case m:if(!o)return a.fatalError(`AttValue: ' or " expected`)}return v;case``:b=` `;default:if(b<=` `)switch(y){case d:n.setTagName(e.slice(t,v)),y=_;break;case f:l=e.slice(t,v),y=p;break;case h:var u=e.slice(t,v);a.warning(`attribute "`+u+`" missed quot(")!!`),c(l,u,t);case g:y=_}else switch(y){case p:o||a.warning(`attribute "`+l+`" missed value!! "`+l+`" instead2!!`),c(l,l,t),t=v,y=f;break;case g:a.warning(`attribute space is required"`+l+`"!!`);case _:y=f,t=v;break;case m:y=h,t=v;break;case x:throw Error(`elements closed character '/' and '>' must be connected to`)}}v++}}function D(e,t,n){for(var r=e.tagName,i=null,a=e.length;a--;){var o=e[a],l=o.qName,u=o.value,d=l.indexOf(`:`);if(d>0)var f=o.prefix=l.slice(0,d),p=l.slice(d+1),m=f===`xmlns`&&p;else p=l,f=null,m=l===`xmlns`&&``;o.localName=p,m!==!1&&(i??(i=Object.create(null),n=Object.create(n)),n[m]=i[m]=u,o.uri=c.XMLNS,t.startPrefixMapping(m,u))}for(var a=e.length;a--;)o=e[a],o.prefix&&(o.prefix===`xml`&&(o.uri=c.XML),o.prefix!==`xmlns`&&(o.uri=n[o.prefix]));var d=r.indexOf(`:`);d>0?(f=e.prefix=r.slice(0,d),p=e.localName=r.slice(d+1)):(f=null,p=e.localName=r);var h=e.uri=n[f||``];if(t.startElement(h,p,r,e),e.closed){if(t.endElement(h,p,r),i)for(f in i)s(i,f)&&t.endPrefixMapping(f)}else return e.currentNSMap=n,e.localNSMap=i,!0}function O(e,t,n,r,a){var s=i(n);if(s||o(n)){var c=RegExp(`</`+n.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)+`>`,`ig`);c.lastIndex=t;var l=c.exec(e),u=l?l.index:-1;if(u<0)return t+1;var d=e.substring(t+1,u);return s&&(d=d.replace(C,r)),a.characters(d,0,d.length),u}return t+1}function k(e,t){for(var n in e)s(e,n)&&(t[n]=e[n])}function A(e,t){var r=t;function i(t){return t||=0,e.charAt(r+t)}function a(e){e||=1,r+=e}function o(){for(var t=0;r<e.length;){var n=i();if(n!==` `&&n!==`
|
|
3
|
+
`&&n!==` `&&n!==`\r`)return t;t++,a()}return-1}function s(){return e.substring(r)}function c(t){return e.substring(r,r+t.length)===t}function l(t){return e.substring(r,r+t.length).toUpperCase()===t.toUpperCase()}function u(e){var t=n.reg(`^`,e).exec(s());return t?(a(t[0].length),t[0]):null}return{char:i,getIndex:function(){return r},getMatch:u,getSource:function(){return e},skip:a,skipBlanks:o,substringFromIndex:s,substringStartsWith:c,substringStartsWithCaseInsensitive:l}}function j(e,t){function r(e,t){var r=n.PI.exec(e.substringFromIndex());return r?r[1].toLowerCase()===`xml`?t.fatalError(`xml declaration is only allowed at the start of the document, but found at position `+e.getIndex()):(e.skip(r[0].length),r[0]):t.fatalError(`processing instruction is not well-formed at position `+e.getIndex())}var i=e.getSource();if(e.char()===`[`){e.skip(1);for(var a=e.getIndex();e.getIndex()<i.length;){if(e.skipBlanks(),e.char()===`]`){var o=i.substring(a,e.getIndex());return e.skip(1),o}var s=null;if(e.char()===`<`&&e.char(1)===`!`)switch(e.char(2)){case`E`:e.char(3)===`L`?s=e.getMatch(n.elementdecl):e.char(3)===`N`&&(s=e.getMatch(n.EntityDecl));break;case`A`:s=e.getMatch(n.AttlistDecl);break;case`N`:s=e.getMatch(n.NotationDecl);break;case`-`:s=e.getMatch(n.Comment)}else if(e.char()===`<`&&e.char(1)===`?`)s=r(e,t);else if(e.char()===`%`)s=e.getMatch(n.PEReference);else return t.fatalError(`Error detected in Markup declaration`);if(!s)return t.fatalError(`Error in internal subset at position `+e.getIndex())}return t.fatalError(`doctype internal subset is not well-formed, missing ]`)}}function M(e,t,r,i,a){var o=A(e,t);switch(a?o.char(2).toUpperCase():o.char(2)){case`-`:var s=o.getMatch(n.Comment);return s?(r.comment(s,n.COMMENT_START.length,s.length-n.COMMENT_START.length-n.COMMENT_END.length),o.getIndex()):i.fatalError(`comment is not well-formed at position `+o.getIndex());case`[`:var c=o.getMatch(n.CDSect);return c?!a&&!r.currentElement?i.fatalError(`CDATA outside of element`):(r.startCDATA(),r.characters(c,n.CDATA_START.length,c.length-n.CDATA_START.length-n.CDATA_END.length),r.endCDATA(),o.getIndex()):i.fatalError(`Invalid CDATA starting at position `+t);case`D`:if(r.doc&&r.doc.documentElement)return i.fatalError(`Doctype not allowed inside or after documentElement at position `+o.getIndex());if(a?!o.substringStartsWithCaseInsensitive(n.DOCTYPE_DECL_START):!o.substringStartsWith(n.DOCTYPE_DECL_START))return i.fatalError(`Expected `+n.DOCTYPE_DECL_START+` at position `+o.getIndex());if(o.skip(n.DOCTYPE_DECL_START.length),o.skipBlanks()<1)return i.fatalError(`Expected whitespace after `+n.DOCTYPE_DECL_START+` at position `+o.getIndex());var l={name:void 0,publicId:void 0,systemId:void 0,internalSubset:void 0};if(l.name=o.getMatch(n.Name),!l.name)return i.fatalError(`doctype name missing or contains unexpected characters at position `+o.getIndex());if(a&&l.name.toLowerCase()!==`html`&&i.warning(`Unexpected DOCTYPE in HTML document at position `+o.getIndex()),o.skipBlanks(),o.substringStartsWith(n.PUBLIC)||o.substringStartsWith(n.SYSTEM)){var u=n.ExternalID_match.exec(o.substringFromIndex());if(!u)return i.fatalError(`doctype external id is not well-formed at position `+o.getIndex());u.groups.SystemLiteralOnly===void 0?(l.systemId=u.groups.SystemLiteral,l.publicId=u.groups.PubidLiteral):l.systemId=u.groups.SystemLiteralOnly,o.skip(u[0].length)}else if(a&&o.substringStartsWithCaseInsensitive(n.SYSTEM)){if(o.skip(n.SYSTEM.length),o.skipBlanks()<1)return i.fatalError(`Expected whitespace after `+n.SYSTEM+` at position `+o.getIndex());if(l.systemId=o.getMatch(n.ABOUT_LEGACY_COMPAT_SystemLiteral),!l.systemId)return i.fatalError(`Expected `+n.ABOUT_LEGACY_COMPAT+` in single or double quotes after `+n.SYSTEM+` at position `+o.getIndex())}return a&&l.systemId&&!n.ABOUT_LEGACY_COMPAT_SystemLiteral.test(l.systemId)&&i.warning(`Unexpected doctype.systemId in HTML document at position `+o.getIndex()),a||(o.skipBlanks(),l.internalSubset=j(o,i)),o.skipBlanks(),o.char()===`>`?(o.skip(1),r.startDTD(l.name,l.publicId,l.systemId,l.internalSubset),r.endDTD(),o.getIndex()):i.fatalError(`doctype not terminated with > at position `+o.getIndex());default:return i.fatalError(`Not well-formed XML starting with "<!" at position `+t)}}function ee(e,t,r,i){var a=e.substring(t).match(n.PI);if(!a)return i.fatalError(`Invalid processing instruction starting at position `+t);if(a[1].toLowerCase()===`xml`){if(t>0)return i.fatalError(`processing instruction at position `+t+` is an xml declaration which is only at the start of the document`);if(!n.XMLDecl.test(e.substring(t)))return i.fatalError(`xml declaration is not well-formed`)}return r.processingInstruction(a[1],a[2]),t+a[0].length}function N(){this.attributeNames=Object.create(null)}N.prototype={setTagName:function(e){if(!n.QName_exact.test(e))throw Error(`invalid tagName:`+e);this.tagName=e},addValue:function(e,t,r){if(!n.QName_exact.test(e))throw Error(`invalid attribute:`+e);this.attributeNames[e]=this.length,this[this.length++]={qName:e,value:t,offset:r}},length:0,getLocalName:function(e){return this[e].localName},getLocator:function(e){return this[e].locator},getQName:function(e){return this[e].qName},getURI:function(e){return this[e].uri},getValue:function(e){return this[e].value}},e.XMLReader=S,e.parseUtils=A,e.parseDoctypeCommentOrCData=M})),w=/* @__PURE__ */ e((e=>{var t=v(),n=x(),r=y(),i=S(),a=C(),o=n.DOMImplementation,s=t.hasDefaultHTMLNamespace,c=t.isHTMLMimeType,l=t.isValidMimeType,u=t.MIME_TYPE,d=t.NAMESPACE,f=r.ParseError,p=a.XMLReader;function m(e){return e.replace(/\r[\n\u0085]/g,`
|
|
4
|
+
`).replace(/[\r\u0085\u2028\u2029]/g,`
|
|
5
|
+
`)}function h(e){if(e||={},e.locator===void 0&&(e.locator=!0),this.assign=e.assign||t.assign,this.domHandler=e.domHandler||g,this.onError=e.onError||e.errorHandler,e.errorHandler&&typeof e.errorHandler!=`function`)throw TypeError(`errorHandler object is no longer supported, switch to onError!`);e.errorHandler&&e.errorHandler(`warning`,"The `errorHandler` option has been deprecated, use `onError` instead!",this),this.normalizeLineEndings=e.normalizeLineEndings||m,this.locator=!!e.locator,this.xmlns=this.assign(Object.create(null),e.xmlns)}h.prototype.parseFromString=function(e,n){if(!l(n))throw TypeError(`DOMParser.parseFromString: the provided mimeType "`+n+`" is not valid.`);var r=this.assign(Object.create(null),this.xmlns),a=i.XML_ENTITIES,o=r[``]||null;s(n)?(a=i.HTML_ENTITIES,o=d.HTML):n===u.XML_SVG_IMAGE&&(o=d.SVG),r[``]=o,r.xml=r.xml||d.XML;var c=new this.domHandler({mimeType:n,defaultNamespace:o,onError:this.onError}),f=this.locator?{}:void 0;this.locator&&c.setDocumentLocator(f);var m=new p;return m.errorHandler=c,m.domBuilder=c,!t.isHTMLMimeType(n)&&typeof e!=`string`&&m.errorHandler.fatalError(`source is not a string`),m.parse(this.normalizeLineEndings(String(e)),r,a),c.doc.documentElement||m.errorHandler.fatalError(`missing root element`),c.doc};function g(e){var t=e||{};this.mimeType=t.mimeType||u.XML_APPLICATION,this.defaultNamespace=t.defaultNamespace||null,this.cdata=!1,this.currentElement=void 0,this.doc=void 0,this.locator=void 0,this.onError=t.onError}function _(e,t){t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber}g.prototype={startDocument:function(){var e=new o;this.doc=c(this.mimeType)?e.createHTMLDocument(!1):e.createDocument(this.defaultNamespace,``)},startElement:function(e,t,n,r){var i=this.doc,a=i.createElementNS(e,n||t),o=r.length;T(this,a),this.currentElement=a,this.locator&&_(this.locator,a);for(var s=0;s<o;s++){var e=r.getURI(s),c=r.getValue(s),n=r.getQName(s),l=i.createAttributeNS(e,n);this.locator&&_(r.getLocator(s),l),l.value=l.nodeValue=c,a.setAttributeNode(l)}},endElement:function(e,t,n){this.currentElement=this.currentElement.parentNode},startPrefixMapping:function(e,t){},endPrefixMapping:function(e){},processingInstruction:function(e,t){var n=this.doc.createProcessingInstruction(e,t);this.locator&&_(this.locator,n),T(this,n)},ignorableWhitespace:function(e,t,n){},characters:function(e,t,n){if(e=w.apply(this,arguments),e){if(this.cdata)var r=this.doc.createCDATASection(e);else var r=this.doc.createTextNode(e);this.currentElement?this.currentElement.appendChild(r):/^\s*$/.test(e)&&this.doc.appendChild(r),this.locator&&_(this.locator,r)}},skippedEntity:function(e){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(e){e&&(e.lineNumber=0),this.locator=e},comment:function(e,t,n){e=w.apply(this,arguments);var r=this.doc.createComment(e);this.locator&&_(this.locator,r),T(this,r)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(e,t,n,r){var i=this.doc.implementation;if(i&&i.createDocumentType){var a=i.createDocumentType(e,t,n,r);this.locator&&_(this.locator,a),T(this,a),this.doc.doctype=a}},reportError:function(e,t){if(typeof this.onError==`function`)try{this.onError(e,t,this)}catch(n){throw new f(`Reporting `+e+` "`+t+`" caused `+n,this.locator)}else console.error(`[xmldom `+e+`] `+t,b(this.locator))},warning:function(e){this.reportError(`warning`,e)},error:function(e){this.reportError(`error`,e)},fatalError:function(e,t){throw this.reportError(`fatalError`,e),new f(e,this.locator,t)}};function b(e){if(e)return`
|
|
6
|
+
@#[line:`+e.lineNumber+`,col:`+e.columnNumber+`]`}function w(e,t,n){return typeof e==`string`?e.substr(t,n):e.length>=t+n||t?new java.lang.String(e,t,n)+``:e}`endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl`.replace(/\w+/g,function(e){g.prototype[e]=function(){return null}});function T(e,t){e.currentElement?e.currentElement.appendChild(t):e.doc.appendChild(t)}function E(e){if(e===`error`)throw`onErrorStopParsing`}function D(){throw`onWarningStopParsing`}e.__DOMHandler=g,e.DOMParser=h,e.normalizeLineEndings=m,e.onErrorStopParsing=E,e.onWarningStopParsing=D})),T=(/* @__PURE__ */ e((e=>{var t=v();e.assign=t.assign,e.hasDefaultHTMLNamespace=t.hasDefaultHTMLNamespace,e.isHTMLMimeType=t.isHTMLMimeType,e.isValidMimeType=t.isValidMimeType,e.MIME_TYPE=t.MIME_TYPE,e.NAMESPACE=t.NAMESPACE;var n=y();e.DOMException=n.DOMException,e.DOMExceptionName=n.DOMExceptionName,e.ExceptionCode=n.ExceptionCode,e.ParseError=n.ParseError;var r=x();e.Attr=r.Attr,e.CDATASection=r.CDATASection,e.CharacterData=r.CharacterData,e.Comment=r.Comment,e.Document=r.Document,e.DocumentFragment=r.DocumentFragment,e.DocumentType=r.DocumentType,e.DOMImplementation=r.DOMImplementation,e.Element=r.Element,e.Entity=r.Entity,e.EntityReference=r.EntityReference,e.LiveNodeList=r.LiveNodeList,e.NamedNodeMap=r.NamedNodeMap,e.Node=r.Node,e.NodeList=r.NodeList,e.Notation=r.Notation,e.ProcessingInstruction=r.ProcessingInstruction,e.Text=r.Text,e.XMLSerializer=r.XMLSerializer;var i=w();e.DOMParser=i.DOMParser,e.normalizeLineEndings=i.normalizeLineEndings,e.onErrorStopParsing=i.onErrorStopParsing,e.onWarningStopParsing=i.onWarningStopParsing})))();function E(e,t){if(!t||typeof t.createElement!=`function`)throw Error(`A valid documentInstance is required to build frontmatter DOM.`);let n=JSON.stringify(e,null,2)||`{}`,r=t.createElement(`section`);r.setAttribute(`class`,`markdown-frontmatter`),r.setAttribute(`data-markdown-frontmatter`,``),r.setAttribute(`data-frontmatter`,n);let i=t.createElement(`details`);i.setAttribute(`class`,`markdown-frontmatter__details`),i.setAttribute(`hidden`,`hidden`);let a=t.createElement(`summary`);a.setAttribute(`class`,`markdown-frontmatter__summary`),a.appendChild(t.createTextNode(`Frontmatter`));let o=t.createElement(`pre`);o.setAttribute(`class`,`markdown-frontmatter__pre`);let s=t.createElement(`code`);return s.setAttribute(`class`,`language-json`),s.appendChild(t.createTextNode(n)),o.appendChild(s),i.appendChild(a),i.appendChild(o),r.appendChild(i),r}function D(e,t){if(typeof t==`function`)return t;let n=e?.defaultView?.XMLSerializer||globalThis.XMLSerializer;return typeof n==`function`?e=>new n().serializeToString(e):null}function O(e,t,n={}){let r=n.documentInstance||(typeof document<`u`?document:null);if(!r)throw Error(`No document instance available for frontmatter rendering.`);let i=t(e,r);if(typeof i.outerHTML==`string`)return i.outerHTML;let a=D(r,n.serializeNode);if(a)return a(i);throw Error(`No serializer available for frontmatter DOM element.`)}function k(e,t){let n=t instanceof Set?t:Array.isArray(t)?new Set(t):null;return e.replace(/<script\b([^>]*)>([\s\S]*?)<\/script>/giu,(e,t,r)=>{if(r.trim())return``;let i=t.match(/\bsrc\s*=\s*(?:"([^"]+)"|'([^']+)'|([^\s>]+))/iu),a=i?i[1]||i[2]||i[3]:``;if(!a)return``;if(n&&n.size>0){let t=a.split(`?`)[0].split(`#`)[0].trim(),r=e=>e.replace(/^\.?\//,``).replace(/^pages\/main\//,``).toLowerCase(),i=r(t);if(Array.from(n).some(e=>e===t||r(e)===i))return e}return``}).replace(/\son[a-z]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/giu,``)}function A(e){if(e==null||e===``||e===!0)return 1;let t=String(e).trim().toLowerCase();if(t===`all`)return`all`;if(t===`none`||t===`0`||t===`false`)return 0;if(t===`1`||t===`current`||t===`single`)return 1;let n=parseInt(t,10);return!isNaN(n)&&n>=0?n:1}function j(e){let t=/<!--[\s\S]*?-->|<script\b[\s\S]*?<\/script>|<style\b[\s\S]*?<\/style>|<template\b[\s\S]*?<\/template>|<\/head>/gi,n;for(;(n=t.exec(e))!==null;)if(n[0].toLowerCase().startsWith(`</head`))return n.index;return-1}function M(e,t){let n=j(e);return n===-1?`${t}\n${e}`:e.slice(0,n)+t+`
|
|
7
|
+
`+e.slice(n)}function ee(e,t){let r=`<script id="shadow-claw-static-manifest" type="application/json">${n(t)}<\/script>`,i=e;return i=/id="shadow-claw-static-manifest"/iu.test(i)?i.replace(/<script\s+id="shadow-claw-static-manifest"[\s\S]*?<\/script>/iu,()=>r):M(i,` ${r}`),/id="shadow-claw-static-routing"/iu.test(i)||(i=M(i,` <script id="shadow-claw-static-routing" type="application/json">{"routes":{}}<\/script>`)),i}function N(e){return e.replace(/^\.?\//,``).replace(/^pages\/main\//,``).toLowerCase().trim()}function P(e){return(e.split(`/`).pop()||``).toLowerCase().trim()}function F(e){return P(e).replace(/\.(js|mjs|cjs|ts)$/i,``).toLowerCase().trim()}function I(e=[],t,n){if(!Array.isArray(e)||e.length===0)return[];let r=e.map(e=>typeof e==`string`?{src:e}:e&&typeof e==`object`&&typeof e.src==`string`?e:null).filter(e=>e!==null),i=[],a=/* @__PURE__ */ new Set;for(let e of r)(e.global===!0||e.autoload===!0)&&(a.has(e.src)||(a.add(e.src),i.push(e)));if(!t&&!n)return i;let o=[];if(Array.isArray(t))o.push(...t);else if(typeof t==`string`)o.push(...t.split(/[,;\s]+/));else if(typeof t==`object`&&t){let e=t;Array.isArray(e.dependencies)?o.push(...e.dependencies):typeof e.dependencies==`string`&&o.push(...e.dependencies.split(/[,;\s]+/)),Array.isArray(e.scripts)?o.push(...e.scripts):typeof e.scripts==`string`&&o.push(...e.scripts.split(/[,;\s]+/))}if(typeof n==`string`&&n){let e=n.matchAll(/<script\b[^>]*src=["']([^"']+)["'][^>]*>/gi);for(let t of e)t[1]&&o.push(t[1]);for(let e of r){let t=[e.id,e.name,F(e.src),P(e.src)].filter(Boolean);for(let e of t)if(e.includes(`-`)&&RegExp(`<${e}[\\s>/]`,`i`).test(n)){o.push(e);break}}}let s=[];for(let e of o)if(typeof e==`string`){let t=e.trim();t&&s.push(t)}else if(e&&typeof e==`object`){let t=e.id||e.name||e.src;typeof t==`string`&&t.trim()&&s.push(t.trim())}for(let e of s){let t=e.toLowerCase(),n=N(e),o=P(e),s=F(e),c=r.find(r=>{if(r.id&&r.id.toLowerCase()===t||r.name&&r.name.toLowerCase()===t||r.src===e||r.src.toLowerCase()===t||N(r.src)===n)return!0;let i=P(r.src);if(i&&(i===o||i===t))return!0;let a=F(r.src);return!(!a||a!==s&&a!==t)});c?a.has(c.src)||(a.add(c.src),i.push(c)):console.warn(`[ShadowClaw] Script dependency "${e}" declared in page frontmatter was not found in approved customElements.scripts config.`)}return i}function L(e){return!e.startsWith(`http://`)&&!e.startsWith(`https://`)&&!e.startsWith(`//`)?e.replace(/^(pages\/)?(resources\/|deps\/|main\/)?/,``):e}function R(e){return e.replace(/&/g,`&`).replace(/"/g,`"`).replace(/</g,`<`).replace(/>/g,`>`)}function z(e,t=R){return!Array.isArray(e)||e.length===0?``:e.map(e=>{if(typeof e==`string`)return` <script type="module" src="${t(L(e))}"><\/script>`;if(e&&typeof e==`object`&&e.src){let n=L(e.src);return` <script${e.type?` type="${t(e.type)}"`:` type="module"`}${e.async?` async`:``}${e.defer?` defer`:``} src="${t(n)}"><\/script>`}return``}).filter(Boolean).join(`
|
|
8
|
+
`)}_.use({tokenizer:{html(e){let t=e.match(/^ {0,3}<([a-zA-Z][a-zA-Z0-9]*-[a-zA-Z0-9_-]*)(?:\s+[^>]*)?>[\s\S]*?<\/\1>(?:[ \t]*(?:\n+|$))?/i)||e.match(/^ {0,3}<([a-zA-Z][a-zA-Z0-9]*-[a-zA-Z0-9_-]*)(?:\s+[^>]*)?\s*\/>(?:[ \t]*(?:\n+|$))?/i);return t?{type:`html`,block:!0,raw:t[0],text:t[0],pre:!1}:!1}}});const B=/* @__PURE__ */ new Set([`.md`,`.markdown`,`.html`,`.htm`,`.xhtml`]),V=new T.DOMImplementation().createDocument(null,`html`,null),H=new T.XMLSerializer;function U(){return[{absolutePath:null,displayPath:`index.html`,inlineContent:r},{absolutePath:null,displayPath:`MEMORY.md`,inlineContent:o}]}function W(e){let t=g(e);return{data:t.data&&typeof t.data==`object`?t.data:{},content:t.content||``}}function G(e){let t=e.match(/<template[^>]*>([\s\S]*?)<\/template>/iu);if(!t)throw Error(`Template wrapper not found while generating DSD.`);return t[1].trim()}function te(e,t,n){let r=`br-${s.basename(t)}`;e[r]||(e[r]={});let i=n.split(`/`),a=e[r];for(let e=0;e<i.length-1;e++){let t=i[e];a[t]||(a[t]={}),a=a[t]}a.purgePreRenderedStaticPages=!0}function K(e){let t=s.extname(e).toLowerCase();return B.has(t)}function q(e,t=`desc`){return[...e].sort((e,n)=>{let r=s.basename(e),i=s.basename(n),a=/^index\.(html?|xhtml)$/iu.test(r),o=/^index\.(html?|xhtml)$/iu.test(i);if(a&&!o)return-1;if(!a&&o)return 1;let c=/^memory\.(md|markdown)$/iu.test(r),l=/^memory\.(md|markdown)$/iu.test(i);return c&&!l?1:!c&&l?-1:t===`desc`?n.localeCompare(e,void 0,{numeric:!0,sensitivity:`base`}):e.localeCompare(n,void 0,{numeric:!0,sensitivity:`base`})})}async function ne(e,n=`desc`,r){let i;try{i=await m(e)}catch(e){if(e?.code===`ENOENT`)return U();throw e}if(i.isFile()){let n=t(s.basename(e));return a(n,{allowList:r?.allowList??r?.allowlist,denyList:r?.denyList??r?.denylist,basePathPrefix:e})?[{absolutePath:e,displayPath:n}]:U()}let o=[];async function c(n){let i=await p(n,{withFileTypes:!0});for(let l of i){let i=s.join(n,l.name);if(l.isDirectory()){await c(i);continue}if(!l.isFile()||!K(l.name))continue;let u=t(s.relative(e,i));if(a(u,{allowList:r?.allowList??r?.allowlist,denyList:r?.denyList??r?.denylist,basePathPrefix:e}))o.push({absolutePath:i,displayPath:u});else if(u.endsWith(`.md`))try{(await f(i,`utf8`)).includes(`slug: "shadow-claw--purge-pages"`)&&o.push({absolutePath:i,displayPath:u})}catch{}}}if(await c(e),o.length===0)return U();let l=new Map(o.map(e=>[e.displayPath,e]));return q(o.map(e=>e.displayPath),n).map(e=>l.get(e))}async function re(e){try{if(!(await m(e)).isDirectory())return[]}catch(e){if(e?.code===`ENOENT`)return[];throw e}let n=[];async function r(i){let a=await p(i,{withFileTypes:!0});for(let o of a){let a=s.join(i,o.name);if(o.isDirectory())await r(a);else if(o.isFile()){let r={absolutePath:a,displayPath:t(s.relative(e,a))};if(s.extname(o.name).toLowerCase()===`.md`)try{let e=W(await f(a,`utf8`));e.data.slug===`shadow-claw--purge-skills`&&(r.isPurgeMarker=!0,e.data[`purge-id`]!==void 0&&(r.purgeId=String(e.data[`purge-id`])))}catch{}n.push(r)}}}return await r(e),n.sort((e,t)=>e.displayPath.localeCompare(t.displayPath))}async function ie(e){try{if(!(await m(e)).isDirectory())return[]}catch(e){if(e?.code===`ENOENT`)return[];throw e}let n=[];async function r(i){let a=await p(i,{withFileTypes:!0});for(let o of a){let a=s.join(i,o.name);o.isDirectory()?await r(a):o.isFile()&&o.name.endsWith(`.json`)&&n.push({absolutePath:a,displayPath:t(s.relative(e,a))})}}return await r(e),n.sort((e,t)=>e.displayPath.localeCompare(t.displayPath))}async function ae(e,n,r){let a=s.extname(n).toLowerCase(),o=a===`.html`||a===`.htm`||a===`.xhtml`,c=Array.isArray(r)||r instanceof Set?r:r?.approvedScripts,l,u;if(o)l=W(e),u=k(l.content,c);else try{l=W(e),u=k(await _.parse(l.content),c)}catch{l={data:{},content:e},u=`<p>${i(e)}</p>`}if(n){let e=s.posix.dirname(t(n)),r=`/files/main/${e===`.`?``:e+`/`}`;u=u.replace(/<img\s+([^>]*?)src="([^"]+)"([^>]*)>/giu,(e,t,n,i)=>/^(?:[a-z]+:|#|\/)/iu.test(n)?e:`<img ${t}src="${r}${n}"${i}>`)}return l.data&&Object.keys(l.data).length>0&&(u=`${O(l.data,E,{documentInstance:V,serializeNode:e=>H.serializeToString(e)})}\n${u}`),u}function oe(e,t){let n=/<\/?template\b[^>]*>/giu;n.lastIndex=t;let r=0,i=!1,a=n.exec(e);for(;a;){if(a[0].toLowerCase().startsWith(`</template`)?--r:(r+=1,i=!0),i&&r===0)return n.lastIndex;a=n.exec(e)}return-1}function se(e){let t=e.indexOf(`<template shadowrootmode="open" data-shadow-claw-dsd="true">`);if(t===-1)return e;let n=oe(e,t);return n===-1?e:`${e.slice(0,t)}${e.slice(n)}`}function J(e){return e.replace(/\s*<div\s+aria-hidden="true"\s+class="boot-shell">[\s\S]*?<\/div>\s*/iu,`
|
|
9
|
+
`)}function ce(e){return[`<details class="pages__group-details" open>`,` <summary class="pages__group-label">`,` <span>Main</span><span class="pages__group-icon">▼</span>`,` </summary>`,` <div class="pages__group-pages">`,e.map((e,t)=>{let n=t===0,r=n?` active`:``,a=n?` is-default`:``,o=i(e.displayPath);return[` <div class="pages__list-item${r}">`,` <span class="pages__drag-handle" draggable="true" title="Drag to reorder">⠿</span>`,` <span class="pages__default-btn${a}" title="Default page">⭐</span>`,` <button type="button" class="pages__select" title="Open ${o}">`,` <span class="pages__list-path">${o}</span>`,` </button>`,` <button class="pages__edit" type="button" title="Edit in file editor" aria-label="Edit ${o} in file editor">✏️</button>`,` <button class="pages__remove" type="button" title="Remove from Pages" aria-label="Remove ${o} from Pages in Main">✕</button>`,` </div>`].join(`
|
|
10
|
+
`)}).join(`
|
|
11
|
+
`),` </div>`,`</details>`].join(`
|
|
12
|
+
`)}function le(e,t,n=``,r=``){return e.replace(/(<shadow-claw-page-header\b[^>]*>)([\s\S]*?)(<\/shadow-claw-page-header>)/iu,(e,a,o,s)=>{if(/^\s*<template\s+shadowrootmode=/iu.test(o))return e;let c=a.match(/\sicon="([^"]*)"/iu),l=a.match(/\stitle="([^"]*)"/iu),u=c?c[1]:``,d=l?l[1]:``;n&&(d=`${d} — ${n}`);let f=[u,d].filter(Boolean).join(` `),p=t;return p=p.replace(/<h2\s+class="header__title"><\/h2>/iu,()=>`<h2 class="header__title">${i(f)}</h2>`),p=p.replace(/<details\s+class="header__actions-disclosure">/iu,`<details class="header__actions-disclosure" hidden>`),p=p.replace(/<div\s+class="header__actions"\s+id="header-actions-panel">/iu,`<div class="header__actions" id="header-actions-panel" hidden>`),[a,`<template shadowrootmode="open" data-shadow-claw-page-header-dsd="true">`,`<style data-dsd-style>${r}</style>`,p,`</template>`,o.trim(),s].join(`
|
|
13
|
+
`)})}function Y(e,t,n,r,a=``,o=``){let s=t.length===1?`1 saved page`:`${t.length} saved pages`,c=ce(t),l=t[0]?.displayPath||`Select a page...`,u=e;return u=u.replace(/<div\b[^>]*\bdata-pages-status\b[^>]*><\/div>/iu,()=>`<div class="pages__status" data-pages-status>${i(s)}</div>`),u=u.replace(/<span\b[^>]*?\bdata-pages-dropdown-selected\b[^>]*>[\s\S]*?<\/span\s*>/iu,()=>`<span class="pages__dropdown-selected" data-pages-dropdown-selected>${i(l)}</span>`),u=u.replace(/<div\s+class="pages__list"\s+data-pages-list\s+role="list"><\/div>/giu,()=>`<div class="pages__list" data-pages-list role="list">\n${c}\n</div>`),u=u.replace(/<div\s+class="pages__empty"\s+data-pages-empty>/iu,()=>`<div class="pages__empty" data-pages-empty hidden>`),u=u.replace(/<div\s+class="pages__rendered"\s+data-pages-rendered\s+hidden><\/div>/iu,()=>`<div class="pages__rendered" data-pages-rendered data-initial-path="${i(l)}">${n}</div>`),le(u,r,a,o)}function X(e,t,n,r,i=``,a=``,o=``){let s=Y(e,t,n,r,i,o);return[`<shadow-claw-pages>`,`<template shadowrootmode="open" data-shadow-claw-pages-dsd="true">`,`<style data-dsd-style>${a}</style>`,s,`</template>`,`</shadow-claw-pages>`].join(`
|
|
14
|
+
`)}function ue(e){let t=e;return t=t.replace(/<div\s+class="pages__empty"\s+data-pages-empty>[\s\S]*?<\/div>/iu,`<div class="pages__empty" data-pages-empty hidden></div>`),t}function de(e,t=``){let n=ue(e);return[`<shadow-claw-pages>`,`<template shadowrootmode="open" data-shadow-claw-pages-dsd="true">`,`<style data-dsd-style>${t}</style>`,n,`</template>`,`</shadow-claw-pages>`].join(`
|
|
15
|
+
`)}function fe(e){return e.replace(/(<shadow-claw-dialog\b[^>]*>)([\s\S]*?)(<\/shadow-claw-dialog>)/giu,(e,t,n,r)=>{if(/^\s*<template\b/iu.test(n))return e;let i=n.trim();return i?[t,`<template>`,i,`</template>`,r].join(`
|
|
16
|
+
`):`${t}<template></template>${r}`})}function Z(e,t={}){let n=e;if(!t||typeof t!=`object`)return n;let r=e=>{let t=RegExp(`(<li\\s+class="[^"]*nav-item[^"]*"\\s+data-page="${e}")(?![^>]*\\bhidden\\b)([^>]*>)`,`iu`);n=n.replace(t,`$1 hidden aria-hidden="true"$2`)};return t.pagesHidden&&r(`pages`),t.chatHidden&&(r(`chat`),n=n.replace(/(<shadow-claw-conversations)(?![^>]*\bhidden\b)([^>]*>)/iu,`$1 hidden aria-hidden="true"$2`)),t.tasksHidden&&r(`tasks`),t.filesHidden&&r(`files`),n}function pe(e,t,n=``,r={}){let i=e.replace(/<shadow-claw-pages><\/shadow-claw-pages>/iu,()=>t);i=Z(i,r);let a=fe(i);return[`<template shadowrootmode="open" data-shadow-claw-dsd="true">`,`<style data-dsd-style>${n}</style>`,a,`</template>`].join(`
|
|
17
|
+
`)}function me(e,t=``,n={}){let r=e;r=r.replace(/(<li\s+class="nav-item)\s+active(\s*"\s+data-page="pages">)/iu,`$1$2`),r=r.replace(/(<div\s+class="page)\s+active("\s+data-page-id="pages">)/iu,`$1$2`),r=r.replace(/(<li\s+class="nav-item[^"]*"\s+data-page="pages")>/iu,`$1 hidden aria-hidden="true">`);let i=n?.chatHidden?n?.tasksHidden?n?.filesHidden?`chat`:`files`:`tasks`:`chat`;r=r.replace(RegExp(`(<li\\s+class="nav-item)(\\s*"\\s+data-page="${i}">)`,`iu`),`$1 active$2`),r=r.replace(RegExp(`(<div\\s+class="page\\s+${i}-page)("\\s+data-page-id="${i}">)`,`iu`),`$1 active$2`),r=Z(r,n);let a=fe(r);return[`<template shadowrootmode="open" data-shadow-claw-dsd="true">`,`<style data-dsd-style>${t}</style>`,a,`</template>`].join(`
|
|
18
|
+
`)}function Q(e,t){let n=e.match(/<shadow-claw\b[^>]*>/iu),r=n?n[0]:null,i=n?.index??-1;if(i===-1||!r)throw Error(`Unable to find <shadow-claw> host in index.html.`);let a=e.indexOf(`</shadow-claw>`,i);if(a===-1)throw Error(`Unable to find </shadow-claw> host in index.html.`);let o=i+r.length,s=J(se(e.slice(o,a))).trim(),c=s?`\n ${t}\n${s}\n `:`\n ${t}\n `;return`${e.slice(0,o)}${c}${e.slice(a)}`}function $(e){return e.replace(/<shadow-claw(\s[^>]*)?>/iu,(e,t=``)=>/\sdata-prerender-no-seed\s*=\s*/iu.test(t)?`<shadow-claw${t}>`:`<shadow-claw${t} data-prerender-no-seed="true">`)}async function he(e,t){if(l.env.NODE_ENV!==`production`)return e;let n=e;try{let e=s.join(t,`index.css`),r=await f(e,`utf8`);n=n.replace(/<link\b[^>]*?href="(?:\/)?index\.css"[^>]*?>/iu,()=>`<style>${r}</style>`)}catch(e){console.warn(`Failed to inline index.css`,e.message)}try{let e=s.join(t,`theme-init.js`),r=await f(e,`utf8`);n=n.replace(/<script\b[^>]*?src="(?:\/)?theme-init\.js"[^>]*?><\/script>/iu,()=>`<script>${r}<\/script>`)}catch(e){console.warn(`Failed to inline theme-init.js`,e.message)}try{let e=s.join(t,`service-worker/init.js`),r=await f(e,`utf8`);n=n.replace(/<script\b[^>]*?src="(?:\/)?service-worker\/init\.js"[^>]*?><\/script>/iu,()=>`<script type="module">${r}<\/script>`)}catch(e){console.warn(`Failed to inline service-worker/init.js`,e.message)}return n}function ge(e){if(!e||typeof e!=`string`)return e;let t=[],n=e.replace(/<pre\b[^>]*>[\s\S]*?<\/pre>|<textarea\b[^>]*>[\s\S]*?<\/textarea>/gi,e=>{let n=t.length;return t.push(e),`___PRESERVED_BLOCK_${n}___`}),r=e=>e.replace(/\s+/g,` `).replace(/>\s+</g,`><`).trim();function i(e){let t=/<template\b[^>]*>/gi,n,a=0,o=``;for(;(n=t.exec(e))!==null;){let s=n[0],c=n.index,l=/<\/?template\b[^>]*>/gi;l.lastIndex=c;let u=0,d=!1,f=l.exec(e),p=-1,m=0;for(;f;){if(f[0].toLowerCase().startsWith(`</template`)?--u:(u+=1,d=!0),d&&u===0){p=f.index,m=f[0].length;break}f=l.exec(e)}if(p!==-1){o+=e.slice(a,c);let n=e.slice(c+s.length,p),l=r(i(n));o+=`${s}${l}</template>`,a=p+m,t.lastIndex=a}}return o+=e.slice(a),o}let a=i(n);a=a.replace(/(<template\s+shadowrootmode="?[a-z]+"?[^>]*>)([\s\S]*?)(<\/template>)/gi,(e,t,n,i)=>`${t}${r(n)}${i}`);for(let e=0;e<t.length;e++)a=a.replace(`___PRESERVED_BLOCK_${e}___`,()=>t[e]);return a}async function _e(e={}){let t=s.resolve(e.indexPath||`dist/public/index.html`),n=s.resolve(e.sourcePath||`pages/main`),r=s.resolve(e.skillsSourcePath||s.join(s.dirname(n),`..`,`.agents`,`skills`,`main`)),i=s.resolve(e.toolsSourcePath||s.join(s.dirname(n),`..`,`.agents`,`tools`,`main`)),a=s.resolve(e.publicDir||s.dirname(t)),o=A(e.prerenderPages===void 0?e.noSeed?0:l.env.PRERENDER_PAGES??1:e.prerenderPages),c={},p=[e.siteConfigPath,s.resolve(`shadow-claw-config.json`),s.resolve(`shadow-claw.config.json`),s.resolve(`shadowclaw.config.json`),s.resolve(`pages/shadow-claw-config.json`),s.resolve(`pages/shadow-claw.config.json`),s.resolve(`site-config.json`),s.resolve(`pages/site-config.json`)].filter(Boolean);for(let e of p)try{let t=await f(s.resolve(e),`utf8`);c=JSON.parse(t);break}catch{}let g=e.sortOrder||c?.pages?.sortOrder||`desc`,_=s.join(a,`components/shadow-claw/shadow-claw.html`),v=s.join(a,`components/shadow-claw-pages/shadow-claw-pages.html`),y=s.join(a,`components/shadow-claw-page-header/shadow-claw-page-header.html`),b=s.join(a,`components/shadow-claw/shadow-claw.css`),x=s.join(a,`components/shadow-claw-pages/shadow-claw-pages.css`),S=s.join(a,`components/shadow-claw-page-header/shadow-claw-page-header.css`),[C,w,T,E,D,O,k,j,N,P]=await Promise.all([f(t,`utf8`),f(_,`utf8`),f(v,`utf8`).catch(()=>``),f(y,`utf8`).catch(()=>``),ne(n,g,{allowList:c?.pages?.allowList??c?.pages?.allowlist??c?.allowList??c?.allowlist,denyList:c?.pages?.denyList??c?.pages?.denylist??c?.denyList??c?.denylist}),re(r),ie(i),f(b,`utf8`).catch(()=>``),f(x,`utf8`).catch(()=>``),f(S,`utf8`).catch(()=>``)]),F=await Promise.all(D.map(async e=>{let t=typeof e.inlineContent==`string`?e.inlineContent:await f(e.absolutePath,`utf8`);return{...e,content:t}})),L,R={},B=F.filter(e=>{if(e.displayPath.endsWith(`.md`)&&/^---\r?\n[\s\S]*?slug:\s*"shadow-claw--purge-pages"[\s\S]*?---/mu.test(e.content)){if(te(R,n,e.displayPath),!L){let t=W(e.content).data[`purge-id`];t!=null&&(L=String(t))}return!1}return!0}),V=B.map(e=>({displayPath:e.displayPath,content:e.content})),H={pages:V},U=await Promise.all(O.filter(e=>!e.isPurgeMarker).map(async e=>({displayPath:e.displayPath,content:await f(e.absolutePath,`utf8`)})));U.length>0&&(H.skills=U);let K=await Promise.all(k.map(async e=>({displayPath:e.displayPath,content:await f(e.absolutePath,`utf8`)})));K.length>0&&(H.tools=K);let q=O.find(e=>e.isPurgeMarker);q?.purgeId&&(H.skillsPurgeId=q.purgeId),Object.keys(R).length>0&&(H.preRenderedStaticPages=R),L&&(H.purgeId=L);let oe=s.join(a,`static-main-manifest.json`);await d(a,{recursive:!0}),await h(oe,JSON.stringify(H,null,2),`utf8`);try{if((await m(n)).isDirectory()){let e=s.join(a,`static-main`);await d(e,{recursive:!0}),await u(n,e,{recursive:!0});let t=s.join(a,`files/main`);await d(t,{recursive:!0}),await u(n,t,{recursive:!0})}}catch{}try{(await m(i)).isDirectory()&&(await d(s.join(a,`tools/main`),{recursive:!0}),await u(i,s.join(a,`tools/main`),{recursive:!0}))}catch{}try{(await m(r)).isDirectory()&&(await d(s.join(a,`skills/main`),{recursive:!0}),await u(r,s.join(a,`skills/main`),{recursive:!0}))}catch{}let se=G(w);if(o===0){let n=me(se,j,c.sidebar),r=await he(ge(ee(Q($(C),n),JSON.stringify({pages:[],skills:[]}))),a);await h(t,r,`utf8`),(e.silent??l.env.NODE_ENV===`test`)||console.log(`Injected DSD shell into ${t} (pages DSD disabled).`);return}let J=[],ce=[];o===`all`?(J=B,ce=V):typeof o==`number`&&(J=B.slice(0,o),ce=V.slice(0,o));let le=G(T),Y=G(E),ue;if(B.length===0)ue=pe(se,de(le,N),j,c.sidebar);else{let e=B[0],t=W(e.content),n=t.data&&t.data.title?t.data.title:``,r=(c?.customElements?.scripts||[]).map(e=>typeof e==`string`?e:e?.src).filter(Boolean),i=await ae(e.content,e.absolutePath||e.displayPath,{approvedScripts:r});ue=pe(se,X(le,J,i,Y,n,N,P),j,c.sidebar)}let fe=$(Q(C,ue)),Z={pages:ce};U.length>0&&(Z.skills=U),K.length>0&&(Z.tools=K),q?.purgeId&&(Z.skillsPurgeId=q.purgeId),Object.keys(R).length>0&&(Z.preRenderedStaticPages=R),L&&(Z.purgeId=L);let _e=ee(fe,JSON.stringify(Z)),ve=I(c?.customElements?.scripts||[],(B[0]?.content?W(B[0].content):{data:{}}).data,B[0]?.content),ye=_e;if(ve.length>0){let e=ye.match(/<head[^>]*>([\s\S]*?)<\/head>/i),t=e?e[1]:``,n=ve.filter(e=>!t.includes(`src="${e.src}"`)&&!t.includes(`src='${e.src}'`));if(n.length>0){let e=z(n);ye=M(ye,` ${e.trim()}`)}}let be=await he(ge(ye),a);await h(t,be,`utf8`),(e.silent??l.env.NODE_ENV===`test`)||console.log(`Injected DSD shell into ${t} from ${n} (${J.length} of ${D.length} page${D.length===1?``:`s`} prerendered).`)}async function ve(){let e=l.argv.slice(2).filter(e=>!e.startsWith(`--`)),t=l.argv.slice(2).filter(e=>e.startsWith(`--`)),n=t.includes(`--no-seed`),r;for(let e of t)e.startsWith(`--prerender-pages=`)?r=e.slice(18):e.startsWith(`--pages=`)&&(r=e.slice(8));let[i=`dist/public/index.html`,a=`pages/main`]=e;await _e({indexPath:i,sourcePath:a,noSeed:n,prerenderPages:r})}l.argv[1]&&s.resolve(l.argv[1])===s.resolve(c(import.meta.url))&&ve().catch(e=>{console.error(e),l.exit(1)});export{j as C,k as E,ee as S,A as T,ae as _,me as a,z as b,ie as c,Q as d,he as f,_e as g,ge as h,pe as i,G as l,$ as m,Y as n,ne as o,K as p,X as r,re as s,Z as t,le as u,q as v,M as w,I as x,W as y};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{d as e,i as t,l as n,n as r,r as i,t as a,u as o}from"./chunk-C9dO1ce2.js";import{t as s}from"./chunk-BChOKoxf.js";import{n as c,r as l,t as u}from"./chunk-Cpdoq2Nw.js";import{a as d,c as f,f as p,i as m,l as h,m as g,n as _,o as v,p as y,s as ee,t as te,u as ne}from"./chunk-
|
|
1
|
+
import{d as e,i as t,l as n,n as r,r as i,t as a,u as o}from"./chunk-C9dO1ce2.js";import{t as s}from"./chunk-BChOKoxf.js";import{n as c,r as l,t as u}from"./chunk-Cpdoq2Nw.js";import{a as d,c as f,f as p,i as m,l as h,m as g,n as _,o as v,p as y,s as ee,t as te,u as ne}from"./chunk-DvKo50Tp.js";import{C as re,D as ie,E as ae,S as oe,T as se,b as ce,c as le,f as ue,m as de,n as fe,o as b,p as pe,r as x,u as me,v as he,w as ge,x as _e,y as ve}from"./chunk-fv3B7eiP.js";import{t as ye}from"./chunk-Dl4zTOqg.js";import{t as be}from"./chunk-DjKQO7aV.js";import{t as xe}from"./chunk-DdrVpDvJ.js";import{t as S}from"./chunk-DY5GDEeQ.js";import{a as Se,c as Ce,n as we,o as Te,r as Ee,s as De,t as Oe}from"./chunk-VRfkSLrD.js";import{a as ke,i as Ae,n as je,o as Me,t as Ne}from"./chunk-CYg1lO1a.js";import{t as Pe}from"./chunk-BbKfuZ6h.js";import{t as Fe}from"./chunk-BhCmCUGL.js";import{a as Ie,c as Le,d as C,l as Re,o as ze,s as w,t as Be,u as Ve}from"./chunk-4O8yrQuN.js";import{a as He,i as Ue,t as We}from"./chunk-CuwzD5GU.js";import{t as Ge}from"./chunk-DkrM-nlV.js";import{Bash as Ke,InMemoryFs as qe}from"just-bash";var Je=Object.defineProperty,Ye=(e,t,n)=>t in e?Je(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Xe=(e,t,n)=>(Ye(e,typeof t==`symbol`?t:t+``,n),n),Ze=(e,t,n)=>{if(!t.has(e))throw TypeError(`Cannot `+n)},Qe=(e,t)=>{if(Object(t)!==t)throw TypeError(`Cannot use the "in" operator on this value`);return e.has(t)},$e=(e,t,n)=>{if(t.has(e))throw TypeError(`Cannot add the same private member more than once`);t instanceof WeakSet?t.add(e):t.set(e,n)},et=(e,t,n)=>(Ze(e,t,`access private method`),n);
|
|
2
2
|
/**
|
|
3
3
|
* @license
|
|
4
4
|
* Copyright Google LLC All Rights Reserved.
|
|
@@ -56,7 +56,7 @@ function Mt(e){let t=Object.create(Ft);t.value=e;let n=()=>(lt(t),t.value);retur
|
|
|
56
56
|
* limitations under the License.
|
|
57
57
|
*/
|
|
58
58
|
const E=Symbol(`node`);var D;(e=>{var t,n,r,i;class a{constructor(r,i={}){$e(this,n),Xe(this,t);let a=Mt(r)[it];if(this[E]=a,a.wrapper=this,i){let t=i.equals;t&&(a.equal=t),a.watched=i[e.subtle.watched],a.unwatched=i[e.subtle.unwatched]}}get(){if(!(0,e.isState)(this))throw TypeError(`Wrong receiver type for Signal.State.prototype.get`);return Nt.call(this[E])}set(t){if(!(0,e.isState)(this))throw TypeError(`Wrong receiver type for Signal.State.prototype.set`);if(st())throw Error(`Writes to signals not permitted during Watcher callback`);let n=this[E];Pt(n,t)}}t=E,n=/* @__PURE__ */ new WeakSet,e.isState=e=>typeof e==`object`&&Qe(n,e),e.State=a;class o{constructor(t,n){$e(this,i),Xe(this,r);let a=wt(t)[it];if(a.consumerAllowSignalWrites=!0,this[E]=a,a.wrapper=this,n){let t=n.equals;t&&(a.equal=t),a.watched=n[e.subtle.watched],a.unwatched=n[e.subtle.unwatched]}}get(){if(!(0,e.isComputed)(this))throw TypeError(`Wrong receiver type for Signal.Computed.prototype.get`);return Ct(this[E])}}r=E,i=/* @__PURE__ */ new WeakSet,e.isComputed=e=>typeof e==`object`&&Qe(i,e),e.Computed=o,(t=>{var n,r,i,a;function o(e){let t,n=null;try{n=at(null),t=e()}finally{at(n)}return t}t.untrack=o;function s(t){if(!(0,e.isComputed)(t)&&!(0,e.isWatcher)(t))throw TypeError(`Called introspectSources without a Computed or Watcher argument`);return t[E].producerNode?.map(e=>e.wrapper)??[]}t.introspectSources=s;function c(t){if(!(0,e.isComputed)(t)&&!(0,e.isState)(t))throw TypeError(`Called introspectSinks without a Signal argument`);return t[E].liveConsumerNode?.map(e=>e.wrapper)??[]}t.introspectSinks=c;function l(t){if(!(0,e.isComputed)(t)&&!(0,e.isState)(t))throw TypeError(`Called hasSinks without a Signal argument`);let n=t[E].liveConsumerNode;return n?n.length>0:!1}t.hasSinks=l;function u(t){if(!(0,e.isComputed)(t)&&!(0,e.isWatcher)(t))throw TypeError(`Called hasSources without a Computed or Watcher argument`);let n=t[E].producerNode;return n?n.length>0:!1}t.hasSources=u;class d{constructor(e){$e(this,r),$e(this,i),Xe(this,n);let t=Object.create(ct);t.wrapper=this,t.consumerMarkedDirty=e,t.consumerIsAlwaysLive=!0,t.consumerAllowSignalWrites=!1,t.producerNode=[],this[E]=t}watch(...t){if(!(0,e.isWatcher)(this))throw TypeError(`Called unwatch without Watcher receiver`);et(this,i,a).call(this,t);let n=this[E];n.dirty=!1;let r=at(n);for(let e of t)lt(e[E]);at(r)}unwatch(...t){if(!(0,e.isWatcher)(this))throw TypeError(`Called unwatch without Watcher receiver`);et(this,i,a).call(this,t);let n=this[E];xt(n);for(let e=n.producerNode.length-1;e>=0;e--)if(t.includes(n.producerNode[e].wrapper)){yt(n.producerNode[e],n.producerIndexOfThis[e]);let t=n.producerNode.length-1;if(n.producerNode[e]=n.producerNode[t],n.producerIndexOfThis[e]=n.producerIndexOfThis[t],n.producerNode.length--,n.producerIndexOfThis.length--,n.nextProducerIndex--,e<n.producerNode.length){let t=n.producerIndexOfThis[e],r=n.producerNode[e];St(r),r.liveConsumerIndexOfThis[t]=e}}}getPending(){if(!(0,e.isWatcher)(this))throw TypeError(`Called getPending without Watcher receiver`);return this[E].producerNode.filter(e=>e.dirty).map(e=>e.wrapper)}}n=E,r=/* @__PURE__ */ new WeakSet,i=/* @__PURE__ */ new WeakSet,a=function(t){for(let n of t)if(!(0,e.isComputed)(n)&&!(0,e.isState)(n))throw TypeError(`Called watch/unwatch without a Computed or State argument`)},e.isWatcher=e=>Qe(r,e),t.Watcher=d;function f(){return ot()?.wrapper}t.currentComputed=f,t.watched=Symbol(`watched`),t.unwatched=Symbol(`unwatched`)})(e.subtle||={})})(D||={});function Lt(e,t,n,r){let i=t*2**e,a=Math.min(i,n),o=a*r*Math.random();return Math.max(0,a-o)}function Rt(e,t){return new Promise((n,r)=>{if(t?.aborted){r(t.reason??new DOMException(`Aborted`,`AbortError`));return}let i=setTimeout(n,e);if(t){let e=()=>{clearTimeout(i),r(t.reason??new DOMException(`Aborted`,`AbortError`))};t.addEventListener(`abort`,e,{once:!0});let a=n;n=(n=>{t.removeEventListener(`abort`,e),a(n)})}})}async function zt(){let e=typeof globalThis<`u`?globalThis:void 0;e?.scheduler&&typeof e.scheduler.yield==`function`?await e.scheduler.yield():await new Promise(e=>setTimeout(e,0))}function Bt(e,t,n){let r=(t||``).toLowerCase();return r?n&&(r.includes(`api key not configured`)||r.includes(`go to settings to add your api key`)||r.includes(`missing api key`)||r.includes(`no api key`))?`api-key-missing`:n&&(r.includes(`invalid api key`)||r.includes(`incorrect api key`)||r.includes(`authentication failed`)||r.includes(`401`)||r.includes(`403`)||r.includes(`unauthorized`)||r.includes(`forbidden`))?`api-key-invalid`:r.includes(`429`)||r.includes(`rate limit`)||r.includes(`too many requests`)?`rate-limited`:r.includes(`failed to fetch`)||r.includes(`networkerror`)||r.includes(`network error`)||r.includes(`econnrefused`)||r.includes(`connection refused`)||r.includes(`enotfound`)||r.includes(`timed out`)||r.includes(`timeout`)||r.includes(`503`)||r.includes(`502`)?`provider-unreachable`:null:null}function Vt(e){if(typeof e.size==`number`&&e.size>0)return e.size;if(typeof e.data==`string`&&e.data.length>0){let t=e.data.endsWith(`==`)?2:+!!e.data.endsWith(`=`);return Math.max(0,Math.floor(e.data.length*3/4)-t)}return 0}function Ht(e){return e?e.startsWith(`text/`)||e===`json`||e===`xml`||e===`javascript`||e===`csv`||e===`markdown`:!1}function Ut(e){let t=Vt(e);if(t===0)return 0;switch(e.mediaType){case`image`:return 1500;case`audio`:return 1500;case`video`:return 2500;default:return Ht(e.mimeType)?Math.ceil(t/4):Math.ceil(t/16)}}function Wt(e){return e?Math.ceil(e.length/4):0}function Gt(e){let t=0;if(typeof e.content==`string`)t=Wt(e.content);else if(Array.isArray(e.content))for(let n of e.content)if(n.type===`text`&&n.text)t+=Wt(n.text);else if(n.type===`tool_use`)t+=Wt(n.name),t+=Wt(JSON.stringify(n.input));else if(n.type===`tool_result`){let e=n.content;t+=Wt(typeof e==`string`?e:JSON.stringify(e))}else n.type===`attachment`&&(t+=Wt(n.fileName),t+=Wt(n.mimeType),t+=Wt(n.path),t+=Ut(n));return t+4}function Kt(e,t){if(!e)return``;if(e.length<=t)return e;let n=e.slice(0,t).lastIndexOf(`
|
|
59
|
-
`),r=n>t*.5?n:t;return`${e.slice(0,r)}\n[...truncated ${e.length-r} chars]`}function qt(e,t){let{contextLimit:n,systemPromptTokens:r,maxOutputTokens:i,skimTop:a=!1}=t;if(e.length===0)return{messages:[],estimatedTokens:0,truncatedCount:0,contextLimit:n,usagePercent:0};let o=Math.max(0,n-r-i),s=Math.min(25e3,Math.max(1e3,Math.floor(o*.6*4))),c=e.map(e=>Jt(e,s)),l=0,u=c.length,d=null,f=0;if(a&&c.length>0){let e=c[0];(e.role===`user`||e.role===`system`)&&(f=Gt(e),f<=o&&(d=e))}let p=o-f;for(let e=c.length-1;e>=+!!d;e--){let t=Gt(c[e]),n=c[e],r=!1;if(n.role===`user`&&Array.isArray(n.content)&&n.content.some(e=>e.type===`tool_result`)){let n=c[e-1];n&&n.role===`assistant`&&Array.isArray(n.content)&&n.content.some(e=>e.type===`tool_use`)&&(r=!0,t+=Gt(n))}if(l+t>p&&e<c.length-1)break;l+=t,r?(u=e-1,e--):u=e}let m=c.slice(u),h=u;d&&u>0&&(m=[d,...m],h=Math.max(0,u-1));let g=l+f,_=g+r,v=n>0?Math.round(_/n*100*10)/10:0;return{messages:m,estimatedTokens:g,truncatedCount:h,contextLimit:n,usagePercent:v}}function Jt(e,t){if(!Array.isArray(e.content))return e;let n=e.content.map(e=>e.type===`tool_result`&&typeof e.content==`string`?{...e,content:Kt(e.content,t)}:e);return{...e,content:n}}function Yt(e,t,n){let r=null,i,a;return typeof e==`string`?(i=e,a=t):(r=e,i=t,a=n??50),r&&be(r)?Promise.resolve().then(()=>(r.db.prepare(`SELECT * FROM messages WHERE groupId = ? ORDER BY timestamp DESC LIMIT ?`).all(i,a)??[]).reverse().map(Xt)):new Promise(async(e,t)=>{try{let n=r??await ye();if(!n)return t(/* @__PURE__ */ Error(`failed to get transaction, cannot get recent messages.`));let o=n.transaction(`messages`,`readonly`);if(!o)return t(/* @__PURE__ */ Error(`failed to get transaction`));let s=o.objectStore(`messages`).index(`by-group-time`),c=IDBKeyRange.bound([i,0],[i,1/0]),l=s.openCursor(c,`prev`),u=[];l.onsuccess=()=>{let t=l.result;t&&u.length<a?(u.push(t.value),t.continue()):e(u.reverse())},l.onerror=()=>t(l.error)}catch(e){t(e)}})}function Xt(e){return{...e,isFromMe:!!e.isFromMe,isTrigger:!!e.isTrigger,attachments:e.attachments?JSON.parse(e.attachments):void 0,a2uiAction:e.a2uiAction?JSON.parse(e.a2uiAction):void 0,a2uiEnvelopes:e.a2uiEnvelopes?JSON.parse(e.a2uiEnvelopes):void 0}}async function Zt(e,t){let n=await Yt(e,t),r=await ye();return await Promise.all(n.map(async t=>{if(t.isFromMe)return{role:`assistant`,content:t.content};let n=`${t.sender}: ${t.content}`,i=t.attachments||[];if(i.length===0)return{role:`user`,content:n};let a=await je(i,async t=>!r||!t.path?null:Ne(r,e,t.path));return a.length===0?{role:`user`,content:n}:{role:`user`,content:[{type:`text`,text:n},...a]}}))}const Qt=`group_metadata`;async function $t(e){let t=await S(e,Qt);if(!t)return[];try{return JSON.parse(t)}catch{return[]}}async function O(e,t){await C(e,Qt,JSON.stringify(t))}async function en(e,t,n=`br:`,r){let i=await $t(e),a={groupId:`${n}${r??s()}`,name:t,createdAt:Date.now()};return i.push(a),await O(e,i),a}async function tn(e,t,n){let r=await $t(e),i=r.find(e=>e.groupId===t);i&&(i.name=n),await O(e,r)}async function nn(e,t,n){let r=await $t(e),i=r.find(e=>e.groupId===t);i&&(n&&n.length>0?i.toolTags=n:delete i.toolTags),await O(e,r)}async function rn(e,t){await O(e,(await $t(e)).filter(e=>e.groupId!==t))}async function an(e){let t=await $t(e);if(t.length===0){let t={groupId:b,name:`Main`,createdAt:0};return await O(e,[t]),[t]}return t}async function on(e,t){let n=await $t(e),r=new Map(n.map(e=>[e.groupId,e])),i=[];for(let e of t){let t=r.get(e);t&&(i.push(t),r.delete(e))}for(let e of n)r.has(e.groupId)&&i.push(e);await O(e,i)}async function sn(e,t){let n=await $t(e),r=n.find(e=>e.groupId===t);if(!r)return null;let i=t.indexOf(`:`),a={groupId:`${i>=0?t.slice(0,i+1):`br:`}${s()}`,name:`${r.name} (copy)`,createdAt:Date.now(),pinnedMaxTokens:r.pinnedMaxTokens,providerRuntimeOverrides:r.providerRuntimeOverrides?JSON.parse(JSON.stringify(r.providerRuntimeOverrides)):void 0,subagentModelSelectionMode:r.subagentModelSelectionMode,subagentMaxTokens:r.subagentMaxTokens,subagentPinnedProvider:r.subagentPinnedProvider,subagentPinnedModel:r.subagentPinnedModel,subagentFastProvider:r.subagentFastProvider,subagentFastModel:r.subagentFastModel,subagentSmartProvider:r.subagentSmartProvider,subagentSmartModel:r.subagentSmartModel,subagentPowerfulProvider:r.subagentPowerfulProvider,subagentPowerfulModel:r.subagentPowerfulModel,toolTags:r.toolTags?[...r.toolTags]:void 0};return n.push(a),await O(e,n),a}async function cn(e,t,n,r,i){let a=await $t(e),o=a.find(e=>e.groupId===t);o&&(n?o.pinnedProvider=n:delete o.pinnedProvider,r?o.pinnedModel=r:delete o.pinnedModel,typeof i==`number`&&Number.isFinite(i)&&i>0?o.pinnedMaxTokens=Math.floor(i):delete o.pinnedMaxTokens),await O(e,a)}async function ln(e,t,n,r,i,a){let o=await $t(e),s=o.find(e=>e.groupId===t);s&&(s.subagentModelSelectionMode=n,n===`manual`?(r?s.subagentPinnedProvider=r:delete s.subagentPinnedProvider,i?s.subagentPinnedModel=i:delete s.subagentPinnedModel):(delete s.subagentPinnedProvider,delete s.subagentPinnedModel),typeof a==`number`&&Number.isFinite(a)&&a>0?s.subagentMaxTokens=Math.floor(a):delete s.subagentMaxTokens),await O(e,o)}async function un(e,t,n){let r=await $t(e),i=r.find(e=>e.groupId===t);i&&(n&&Object.keys(n).length>0?i.providerRuntimeOverrides=JSON.parse(JSON.stringify(n)):delete i.providerRuntimeOverrides),await O(e,r)}const dn={id:`__builtin_default`,name:`Default`,providerId:`prompt_api`,enabledToolNames:[`javascript`,`list_files`,`open_file`,`read_file`,`write_file`],customTools:[],systemPromptOverride:"You are a helpful coding assistant.\nContent intended to be rendered as a `Page` (HTML or Markdown) SHOULD include frontmatter (title, created, updated, and slug).\nHTML content intended to be rendered as a `Page` SHOULD USE `<article><h2>${subTitle}</h2>...</article>` for its main body content."},k=new class{_activeProfile;_activeProfileId;_allTools;_customTools;_declarativeTools;_declarativeToolNamesEnabled;_enabledDeclarativeTools;_enabledToolNames;_enabledTools;_profiles;_systemPromptOverride;_webSearchProxyUrl;_webSearchUrl;_webSearchUseProxy;_searchFilesMaxFileBytes;_searchFilesMaxFilesVisited;_searchFilesSkipDirs;constructor(){this._enabledToolNames=new D.State(new Set(dn.enabledToolNames)),this._customTools=new D.State([]),this._declarativeTools=new D.State([]),this._declarativeToolNamesEnabled=new D.State(null),this._systemPromptOverride=new D.State(``),this._profiles=new D.State([]),this._activeProfileId=new D.State(dn.id),this._webSearchUseProxy=new D.State(!1),this._webSearchProxyUrl=new D.State(`/proxy`),this._webSearchUrl=new D.State(`https://html.duckduckgo.com/html/?q={query}`),this._searchFilesMaxFileBytes=new D.State(524288),this._searchFilesMaxFilesVisited=new D.State(1e3),this._searchFilesSkipDirs=new D.State(`.git,node_modules,dist,dist-electron,.cache,.nx,.turbo,__pycache__,.venv,venv`),this._allTools=new D.Computed(()=>[...We,...this._customTools.get()]),this._enabledTools=new D.Computed(()=>{let e=this._enabledToolNames.get();return this._allTools.get().filter(t=>e.has(t.name))}),this._enabledDeclarativeTools=new D.Computed(()=>{let e=this._declarativeTools.get(),t=this._declarativeToolNamesEnabled.get();return t===null?e:e.filter(e=>t.has(e.name))}),this._activeProfile=new D.Computed(()=>{let e=this._activeProfileId.get();return e?dn.id===e?dn:this._profiles.get().find(t=>t.id===e)||null:null})}get activeProfile(){return this._activeProfile.get()}get activeProfileId(){return this._activeProfileId.get()}get allTools(){return this._allTools.get()}get customTools(){return this._customTools.get()}get declarativeTools(){return this._declarativeTools.get()}get declarativeToolNamesEnabled(){return this._declarativeToolNamesEnabled.get()}get enabledDeclarativeTools(){return this._enabledDeclarativeTools.get()}get enabledToolNames(){return this._enabledToolNames.get()}get enabledTools(){return this._enabledTools.get()}isDeclarativeToolEnabled(e){let t=this._declarativeToolNamesEnabled.get();return t===null||t.has(e)}async refreshDeclarativeTools(e,t){try{let n=await Re(e,t||`br:main`),r=this.allTools,i=(n?.tools||[]).filter(e=>!r.some(t=>t.name===e.name)),a=this._declarativeTools.get();return a.length===i.length&&a.every((e,t)=>e.name===i[t].name&&e.description===i[t].description&&JSON.stringify(e.execution)===JSON.stringify(i[t].execution))||this._declarativeTools.set(i),i}catch{return this._declarativeTools.get().length>0&&this._declarativeTools.set([]),[]}}async setDeclarativeToolEnabled(e,t,n){let r=this._declarativeToolNamesEnabled.get(),i=this._declarativeTools.get(),a=new Set(r===null?i.map(e=>e.name):r);n?a.add(t):a.delete(t),this._declarativeToolNamesEnabled.set(a),await C(e,x.DECLARATIVE_TOOLS_ENABLED,Array.from(a))}async setAllDeclarativeEnabled(e,t){let n=new Set(t);this._declarativeToolNamesEnabled.set(n),await C(e,x.DECLARATIVE_TOOLS_ENABLED,t)}async fetchRemoteDiscoveryManifest(e){return await Ge(e)}async importFromRemoteSite(e,t,n,r){let i=r?.groupId||`br:main`,a=await Be(e,i,t,n,r);return await this.refreshDeclarativeTools(e,i),a}exportBackup(){return JSON.stringify({enabledTools:[...this._enabledToolNames.get()],customTools:this._customTools.get(),declarativeToolsEnabled:this._declarativeToolNamesEnabled.get()?Array.from(this._declarativeToolNamesEnabled.get()):null,systemPromptOverride:this._systemPromptOverride.get(),profiles:this._profiles.get(),activeProfileId:this._activeProfileId.get(),webSearchUseProxy:this._webSearchUseProxy.get(),webSearchProxyUrl:this._webSearchProxyUrl.get(),webSearchUrl:this._webSearchUrl.get(),searchFilesMaxFileBytes:this._searchFilesMaxFileBytes.get(),searchFilesMaxFilesVisited:this._searchFilesMaxFilesVisited.get(),searchFilesSkipDirs:this._searchFilesSkipDirs.get()},null,2)}findProfilesForProvider(e,t){return this.profiles.filter(n=>!(n.providerId&&n.providerId!==e||n.model&&n.model!==t))}get profiles(){return[dn,...this._profiles.get()]}get systemPromptOverride(){return this._systemPromptOverride.get()}get webSearchProxyUrl(){return this._webSearchProxyUrl.get()}get webSearchUrl(){return this._webSearchUrl.get()}get webSearchUseProxy(){return this._webSearchUseProxy.get()}get searchFilesMaxFileBytes(){return this._searchFilesMaxFileBytes.get()}get searchFilesMaxFilesVisited(){return this._searchFilesMaxFilesVisited.get()}get searchFilesSkipDirs(){return this._searchFilesSkipDirs.get()}get searchFilesSkipDirsSet(){return new Set(this._searchFilesSkipDirs.get().split(`,`).map(e=>e.trim()).filter(Boolean))}async activateProfile(e,t){let n=this.profiles.find(e=>e.id===t);n&&(this._activeProfileId.set(t),this._enabledToolNames.set(new Set(n.enabledToolNames)),this._customTools.set(n.customTools),this._systemPromptOverride.set(n.systemPromptOverride||``),await Promise.all([C(e,x.ACTIVE_TOOL_PROFILE,t),C(e,x.ENABLED_TOOLS,n.enabledToolNames),C(e,x.CUSTOM_TOOLS,n.customTools),C(e,x.SYSTEM_PROMPT_OVERRIDE,n.systemPromptOverride||``)]))}async addCustomTool(e,t){let n=[...this._customTools.get(),t];this._customTools.set(n);let r=new Set(this._enabledToolNames.get());r.add(t.name),this._enabledToolNames.set(r),await Promise.all([C(e,x.CUSTOM_TOOLS,n),C(e,x.ENABLED_TOOLS,[...r])])}async addProfile(e,t){let n=[...this._profiles.get(),t];this._profiles.set(n),await C(e,x.TOOL_PROFILES,n)}async cloneTool(e,t,n,r){let i=this.allTools.find(e=>e.name===t);if(!i||this.allTools.some(e=>e.name===n))return!1;let a={name:n,description:r||i.description,input_schema:JSON.parse(JSON.stringify(i.input_schema))};return await this.addCustomTool(e,a),!0}async deactivateProfile(e){this._activeProfileId.set(null),await C(e,x.ACTIVE_TOOL_PROFILE,null)}async deleteProfile(e,t){if(t===dn.id)return;let n=this._profiles.get().filter(e=>e.id!==t);this._profiles.set(n),this._activeProfileId.get()===t&&(this._activeProfileId.set(null),await C(e,x.ACTIVE_TOOL_PROFILE,null)),await C(e,x.TOOL_PROFILES,n)}async importBackup(e,t){let n=JSON.parse(t);Array.isArray(n.enabledTools)&&(this._enabledToolNames.set(new Set(n.enabledTools)),await C(e,x.ENABLED_TOOLS,n.enabledTools)),Array.isArray(n.customTools)&&(this._customTools.set(n.customTools),await C(e,x.CUSTOM_TOOLS,n.customTools)),typeof n.systemPromptOverride==`string`&&(this._systemPromptOverride.set(n.systemPromptOverride),await C(e,x.SYSTEM_PROMPT_OVERRIDE,n.systemPromptOverride)),Array.isArray(n.profiles)&&(this._profiles.set(n.profiles),await C(e,x.TOOL_PROFILES,n.profiles)),(typeof n.activeProfileId==`string`||n.activeProfileId===null)&&(this._activeProfileId.set(n.activeProfileId),await C(e,x.ACTIVE_TOOL_PROFILE,n.activeProfileId)),typeof n.webSearchUseProxy==`boolean`&&(this._webSearchUseProxy.set(n.webSearchUseProxy),await C(e,x.WEB_SEARCH_USE_PROXY,n.webSearchUseProxy?`true`:`false`)),typeof n.webSearchProxyUrl==`string`&&(this._webSearchProxyUrl.set(n.webSearchProxyUrl),await C(e,x.WEB_SEARCH_PROXY_URL,n.webSearchProxyUrl)),typeof n.webSearchUrl==`string`&&(this._webSearchUrl.set(n.webSearchUrl),await C(e,x.WEB_SEARCH_URL,n.webSearchUrl)),typeof n.searchFilesMaxFileBytes==`number`&&n.searchFilesMaxFileBytes>0&&(this._searchFilesMaxFileBytes.set(n.searchFilesMaxFileBytes),await C(e,x.SEARCH_FILES_MAX_FILE_BYTES,String(n.searchFilesMaxFileBytes))),typeof n.searchFilesMaxFilesVisited==`number`&&n.searchFilesMaxFilesVisited>0&&(this._searchFilesMaxFilesVisited.set(n.searchFilesMaxFilesVisited),await C(e,x.SEARCH_FILES_MAX_FILES_VISITED,String(n.searchFilesMaxFilesVisited))),typeof n.searchFilesSkipDirs==`string`&&(this._searchFilesSkipDirs.set(n.searchFilesSkipDirs),await C(e,x.SEARCH_FILES_SKIP_DIRS,n.searchFilesSkipDirs)),Array.isArray(n.declarativeToolsEnabled)?(this._declarativeToolNamesEnabled.set(new Set(n.declarativeToolsEnabled)),await C(e,x.DECLARATIVE_TOOLS_ENABLED,n.declarativeToolsEnabled)):n.declarativeToolsEnabled===null&&(this._declarativeToolNamesEnabled.set(null),await C(e,x.DECLARATIVE_TOOLS_ENABLED,null))}async load(e){let[t,n,r,i,a,o,s,c,l,u,d,f]=await Promise.all([S(e,x.ENABLED_TOOLS),S(e,x.CUSTOM_TOOLS),S(e,x.SYSTEM_PROMPT_OVERRIDE),S(e,x.TOOL_PROFILES),S(e,x.ACTIVE_TOOL_PROFILE),S(e,x.WEB_SEARCH_USE_PROXY),S(e,x.WEB_SEARCH_PROXY_URL),S(e,x.WEB_SEARCH_URL),S(e,x.SEARCH_FILES_MAX_FILE_BYTES),S(e,x.SEARCH_FILES_MAX_FILES_VISITED),S(e,x.SEARCH_FILES_SKIP_DIRS),S(e,x.DECLARATIVE_TOOLS_ENABLED)]);if(Array.isArray(t)&&this._enabledToolNames.set(new Set(t)),Array.isArray(n)&&this._customTools.set(n),Array.isArray(f)&&this._declarativeToolNamesEnabled.set(new Set(f)),typeof r==`string`&&this._systemPromptOverride.set(r),Array.isArray(i)&&this._profiles.set(i),typeof a==`string`&&this._activeProfileId.set(a),o!=null){let e=String(o).toLowerCase();this._webSearchUseProxy.set(e===`true`||e===`1`)}if(typeof s==`string`&&s.trim().length>0&&this._webSearchProxyUrl.set(s.trim()),typeof c==`string`&&c.trim().length>0&&this._webSearchUrl.set(c.trim()),l!=null){let e=Number(l);Number.isFinite(e)&&e>0&&this._searchFilesMaxFileBytes.set(e)}if(u!=null){let e=Number(u);Number.isFinite(e)&&e>0&&this._searchFilesMaxFilesVisited.set(e)}typeof d==`string`&&d.trim().length>0&&this._searchFilesSkipDirs.set(d.trim())}async setWebSearchProxyUrl(e,t){let n=t.trim()||`/proxy`;this._webSearchProxyUrl.set(n),await C(e,x.WEB_SEARCH_PROXY_URL,n)}async setWebSearchUrl(e,t){let n=t.trim()||`https://html.duckduckgo.com/html/?q={query}`;this._webSearchUrl.set(n),await C(e,x.WEB_SEARCH_URL,n)}async setWebSearchUseProxy(e,t){let n=!!t;this._webSearchUseProxy.set(n),await C(e,x.WEB_SEARCH_USE_PROXY,n?`true`:`false`)}async setSearchFilesMaxFileBytes(e,t){let n=Math.max(1,Math.round(t));this._searchFilesMaxFileBytes.set(n),await C(e,x.SEARCH_FILES_MAX_FILE_BYTES,String(n))}async setSearchFilesMaxFilesVisited(e,t){let n=Math.max(1,Math.round(t));this._searchFilesMaxFilesVisited.set(n),await C(e,x.SEARCH_FILES_MAX_FILES_VISITED,String(n))}async setSearchFilesSkipDirs(e,t){let n=t.trim();this._searchFilesSkipDirs.set(n),await C(e,x.SEARCH_FILES_SKIP_DIRS,n)}async removeCustomTool(e,t){let n=this._customTools.get().filter(e=>e.name!==t);this._customTools.set(n);let r=new Set(this._enabledToolNames.get());r.delete(t),this._enabledToolNames.set(r),await Promise.all([C(e,x.CUSTOM_TOOLS,n),C(e,x.ENABLED_TOOLS,[...r])])}async saveToActiveProfile(e){let t=this._activeProfileId.get();if(!t)return;let n=this._profiles.get().find(e=>e.id===t);if(!n)return;let r={...n,enabledToolNames:[...this._enabledToolNames.get()],customTools:[...this._customTools.get()],systemPromptOverride:this._systemPromptOverride.get()};await this.updateProfile(e,r)}async setAllEnabled(e,t){this._enabledToolNames.set(new Set(t));let n=[C(e,x.ENABLED_TOOLS,t)];this._activeProfileId.get()&&(this._activeProfileId.set(null),n.push(C(e,x.ACTIVE_TOOL_PROFILE,null))),await Promise.all(n)}async setSystemPromptOverride(e,t){this._systemPromptOverride.set(t),await C(e,x.SYSTEM_PROMPT_OVERRIDE,t)}async setToolEnabled(e,t,n){let r=new Set(this._enabledToolNames.get());n?r.add(t):r.delete(t),this._enabledToolNames.set(r);let i=[C(e,x.ENABLED_TOOLS,[...r])];this._activeProfileId.get()&&(this._activeProfileId.set(null),i.push(C(e,x.ACTIVE_TOOL_PROFILE,null))),await Promise.all(i)}async updateProfile(e,t){let n=this._profiles.get().map(e=>e.id===t.id?t:e);this._profiles.set(n),await C(e,x.TOOL_PROFILES,n)}},fn=[/<\|start_header_id\|>\s*(?:system|user|assistant|tool)\s*<\|end_header_id\|>/gi,/<\|(?:begin_of_text|end_of_text|eot_id|im_start|im_end|end_of_message)\|>/gi,/<\|(?:startofturn|endofturn|start_of_turn|end_of_turn)\|>/gi,/<\|(?:image|audio|video|tool_call|tool_response|tool_result|function_call)\|>|<\|\/function_call\|>/gi,/<|(?:system|user|assistant|im_start|im_end)|>/g,/\[\s*INST\s*\]|\[\s*\/INST\s*\]|<<\s*SYS\s*>>|<<\s*\/SYS\s*>>/gi,/<\/?s>|<\/?bos>|<\/?eos>|<\|(?:bos|eos|pad|unk)\|>/gi,/<\|(?:START_OF_TURN_TOKEN|END_OF_TURN_TOKEN|CHATBOT_TOKEN|USER_TOKEN|SYSTEM_TOKEN)\|>/gi,/<\|(?:system|user|assistant|end|endoftext|placeholder\d*)\|>/gi,/<|(?:begin▁of▁sentence|end▁of▁sentence)|>/g,/<\|start\|>\s*(?:system|user|assistant|tool)\s*<\|message\|>/gi];function pn(e){for(let t of fn)if(t.test(e))return!0;return!1}function mn(e){let t=String(e||``),n=t;for(let e of fn)t=t.replace(e,``);return t!==n&&(t=t.replace(/^[ \t]+$/gm,``),t=t.replace(/\n{3,}/g,`
|
|
59
|
+
`),r=n>t*.5?n:t;return`${e.slice(0,r)}\n[...truncated ${e.length-r} chars]`}function qt(e,t){let{contextLimit:n,systemPromptTokens:r,maxOutputTokens:i,skimTop:a=!1}=t;if(e.length===0)return{messages:[],estimatedTokens:0,truncatedCount:0,contextLimit:n,usagePercent:0};let o=Math.max(0,n-r-i),s=Math.min(25e3,Math.max(1e3,Math.floor(o*.6*4))),c=e.map(e=>Jt(e,s)),l=0,u=c.length,d=null,f=0;if(a&&c.length>0){let e=c[0];(e.role===`user`||e.role===`system`)&&(f=Gt(e),f<=o&&(d=e))}let p=o-f;for(let e=c.length-1;e>=+!!d;e--){let t=Gt(c[e]),n=c[e],r=!1;if(n.role===`user`&&Array.isArray(n.content)&&n.content.some(e=>e.type===`tool_result`)){let n=c[e-1];n&&n.role===`assistant`&&Array.isArray(n.content)&&n.content.some(e=>e.type===`tool_use`)&&(r=!0,t+=Gt(n))}if(l+t>p&&e<c.length-1)break;l+=t,r?(u=e-1,e--):u=e}let m=c.slice(u),h=u;d&&u>0&&(m=[d,...m],h=Math.max(0,u-1));let g=l+f,_=g+r,v=n>0?Math.round(_/n*100*10)/10:0;return{messages:m,estimatedTokens:g,truncatedCount:h,contextLimit:n,usagePercent:v}}function Jt(e,t){if(!Array.isArray(e.content))return e;let n=e.content.map(e=>e.type===`tool_result`&&typeof e.content==`string`?{...e,content:Kt(e.content,t)}:e);return{...e,content:n}}function Yt(e,t,n){let r=null,i,a;return typeof e==`string`?(i=e,a=t):(r=e,i=t,a=n??50),r&&be(r)?Promise.resolve().then(()=>(r.db.prepare(`SELECT * FROM messages WHERE groupId = ? ORDER BY timestamp DESC LIMIT ?`).all(i,a)??[]).reverse().map(Xt)):new Promise(async(e,t)=>{try{let n=r??await ye();if(!n)return t(/* @__PURE__ */ Error(`failed to get transaction, cannot get recent messages.`));let o=n.transaction(`messages`,`readonly`);if(!o)return t(/* @__PURE__ */ Error(`failed to get transaction`));let s=o.objectStore(`messages`).index(`by-group-time`),c=IDBKeyRange.bound([i,0],[i,1/0]),l=s.openCursor(c,`prev`),u=[];l.onsuccess=()=>{let t=l.result;t&&u.length<a?(u.push(t.value),t.continue()):e(u.reverse())},l.onerror=()=>t(l.error)}catch(e){t(e)}})}function Xt(e){return{...e,isFromMe:!!e.isFromMe,isTrigger:!!e.isTrigger,attachments:e.attachments?JSON.parse(e.attachments):void 0,a2uiAction:e.a2uiAction?JSON.parse(e.a2uiAction):void 0,a2uiEnvelopes:e.a2uiEnvelopes?JSON.parse(e.a2uiEnvelopes):void 0}}async function Zt(e,t){let n=await Yt(e,t),r=await ye();return await Promise.all(n.map(async t=>{if(t.isFromMe)return{role:`assistant`,content:t.content};let n=`${t.sender}: ${t.content}`,i=t.attachments||[];if(i.length===0)return{role:`user`,content:n};let a=await je(i,async t=>!r||!t.path?null:Ne(r,e,t.path));return a.length===0?{role:`user`,content:n}:{role:`user`,content:[{type:`text`,text:n},...a]}}))}const Qt=`group_metadata`;async function $t(e){let t=await S(e,Qt);if(!t)return[];try{return JSON.parse(t)}catch{return[]}}async function O(e,t){await C(e,Qt,JSON.stringify(t))}async function en(e,t,n=`br:`,r){let i=await $t(e),a={groupId:`${n}${r??s()}`,name:t,createdAt:Date.now()};return i.push(a),await O(e,i),a}async function tn(e,t,n){let r=await $t(e),i=r.find(e=>e.groupId===t);i&&(i.name=n),await O(e,r)}async function nn(e,t,n){let r=await $t(e),i=r.find(e=>e.groupId===t);i&&(n&&n.length>0?i.toolTags=n:delete i.toolTags),await O(e,r)}async function rn(e,t){await O(e,(await $t(e)).filter(e=>e.groupId!==t))}async function an(e){let t=await $t(e);if(t.length===0){let t={groupId:b,name:`Main`,createdAt:0};return await O(e,[t]),[t]}return t}async function on(e,t){let n=await $t(e),r=new Map(n.map(e=>[e.groupId,e])),i=[];for(let e of t){let t=r.get(e);t&&(i.push(t),r.delete(e))}for(let e of n)r.has(e.groupId)&&i.push(e);await O(e,i)}async function sn(e,t){let n=await $t(e),r=n.find(e=>e.groupId===t);if(!r)return null;let i=t.indexOf(`:`),a={groupId:`${i>=0?t.slice(0,i+1):`br:`}${s()}`,name:`${r.name} (copy)`,createdAt:Date.now(),pinnedMaxTokens:r.pinnedMaxTokens,providerRuntimeOverrides:r.providerRuntimeOverrides?JSON.parse(JSON.stringify(r.providerRuntimeOverrides)):void 0,subagentModelSelectionMode:r.subagentModelSelectionMode,subagentMaxTokens:r.subagentMaxTokens,subagentPinnedProvider:r.subagentPinnedProvider,subagentPinnedModel:r.subagentPinnedModel,subagentFastProvider:r.subagentFastProvider,subagentFastModel:r.subagentFastModel,subagentSmartProvider:r.subagentSmartProvider,subagentSmartModel:r.subagentSmartModel,subagentPowerfulProvider:r.subagentPowerfulProvider,subagentPowerfulModel:r.subagentPowerfulModel,toolTags:r.toolTags?[...r.toolTags]:void 0};return n.push(a),await O(e,n),a}async function cn(e,t,n,r,i){let a=await $t(e),o=a.find(e=>e.groupId===t);o&&(n?o.pinnedProvider=n:delete o.pinnedProvider,r?o.pinnedModel=r:delete o.pinnedModel,typeof i==`number`&&Number.isFinite(i)&&i>0?o.pinnedMaxTokens=Math.floor(i):delete o.pinnedMaxTokens),await O(e,a)}async function ln(e,t,n,r,i,a){let o=await $t(e),s=o.find(e=>e.groupId===t);s&&(s.subagentModelSelectionMode=n,n===`manual`?(r?s.subagentPinnedProvider=r:delete s.subagentPinnedProvider,i?s.subagentPinnedModel=i:delete s.subagentPinnedModel):(delete s.subagentPinnedProvider,delete s.subagentPinnedModel),typeof a==`number`&&Number.isFinite(a)&&a>0?s.subagentMaxTokens=Math.floor(a):delete s.subagentMaxTokens),await O(e,o)}async function un(e,t,n){let r=await $t(e),i=r.find(e=>e.groupId===t);i&&(n&&Object.keys(n).length>0?i.providerRuntimeOverrides=JSON.parse(JSON.stringify(n)):delete i.providerRuntimeOverrides),await O(e,r)}const dn={id:`__builtin_default`,name:`Default`,providerId:`prompt_api`,enabledToolNames:[`javascript`,`list_files`,`open_file`,`read_file`,`write_file`],customTools:[],systemPromptOverride:"You are a helpful coding assistant.\nContent intended to be rendered as a `Page` (HTML or Markdown) SHOULD include frontmatter (title, created, updated, and slug).\nHTML content intended to be rendered as a `Page` SHOULD USE `<article><h2>${subTitle}</h2>...</article>` for its main body content."},k=new class{_activeProfile;_activeProfileId;_allTools;_customTools;_declarativeTools;_declarativeToolNamesEnabled;_enabledDeclarativeTools;_enabledToolNames;_enabledTools;_profiles;_systemPromptOverride;_webSearchProxyUrl;_webSearchUrl;_webSearchUseProxy;_searchFilesMaxFileBytes;_searchFilesMaxFilesVisited;_searchFilesSkipDirs;constructor(){this._enabledToolNames=new D.State(new Set(dn.enabledToolNames)),this._customTools=new D.State([]),this._declarativeTools=new D.State([]),this._declarativeToolNamesEnabled=new D.State(null),this._systemPromptOverride=new D.State(``),this._profiles=new D.State([]),this._activeProfileId=new D.State(dn.id),this._webSearchUseProxy=new D.State(!1),this._webSearchProxyUrl=new D.State(`/proxy`),this._webSearchUrl=new D.State(`https://html.duckduckgo.com/html/?q={query}`),this._searchFilesMaxFileBytes=new D.State(524288),this._searchFilesMaxFilesVisited=new D.State(1e3),this._searchFilesSkipDirs=new D.State(`.git,node_modules,dist,dist-electron,.cache,.nx,.turbo,__pycache__,.venv,venv`),this._allTools=new D.Computed(()=>[...We,...this._customTools.get()]),this._enabledTools=new D.Computed(()=>{let e=this._enabledToolNames.get();return this._allTools.get().filter(t=>e.has(t.name))}),this._enabledDeclarativeTools=new D.Computed(()=>{let e=this._declarativeTools.get(),t=this._declarativeToolNamesEnabled.get();return!t||t.size===0?[]:e.filter(e=>t.has(e.name))}),this._activeProfile=new D.Computed(()=>{let e=this._activeProfileId.get();return e?dn.id===e?dn:this._profiles.get().find(t=>t.id===e)||null:null})}get activeProfile(){return this._activeProfile.get()}get activeProfileId(){return this._activeProfileId.get()}get allTools(){return this._allTools.get()}get customTools(){return this._customTools.get()}get declarativeTools(){return this._declarativeTools.get()}get declarativeToolNamesEnabled(){return this._declarativeToolNamesEnabled.get()}get enabledDeclarativeTools(){return this._enabledDeclarativeTools.get()}get enabledToolNames(){return this._enabledToolNames.get()}get enabledTools(){return this._enabledTools.get()}isDeclarativeToolEnabled(e){let t=this._declarativeToolNamesEnabled.get();return t?t.has(e):!1}async refreshDeclarativeTools(e,t){try{let n=await Re(e,t||`br:main`),r=this.allTools,i=(n?.tools||[]).filter(e=>!r.some(t=>t.name===e.name)),a=this._declarativeTools.get();return a.length===i.length&&a.every((e,t)=>e.name===i[t].name&&e.description===i[t].description&&JSON.stringify(e.execution)===JSON.stringify(i[t].execution))||this._declarativeTools.set(i),i}catch{return this._declarativeTools.get().length>0&&this._declarativeTools.set([]),[]}}async setDeclarativeToolEnabled(e,t,n){let r=this._declarativeToolNamesEnabled.get(),i=new Set(r===null?[]:r);n?i.add(t):i.delete(t),this._declarativeToolNamesEnabled.set(i),await C(e,x.DECLARATIVE_TOOLS_ENABLED,Array.from(i))}async setAllDeclarativeEnabled(e,t){let n=new Set(t);this._declarativeToolNamesEnabled.set(n),await C(e,x.DECLARATIVE_TOOLS_ENABLED,t)}async fetchRemoteDiscoveryManifest(e){return await Ge(e)}async importFromRemoteSite(e,t,n,r){let i=r?.groupId||`br:main`,a=await Be(e,i,t,n,r);return await this.refreshDeclarativeTools(e,i),a}exportBackup(){return JSON.stringify({enabledTools:[...this._enabledToolNames.get()],customTools:this._customTools.get(),declarativeToolsEnabled:this._declarativeToolNamesEnabled.get()?Array.from(this._declarativeToolNamesEnabled.get()):null,systemPromptOverride:this._systemPromptOverride.get(),profiles:this._profiles.get(),activeProfileId:this._activeProfileId.get(),webSearchUseProxy:this._webSearchUseProxy.get(),webSearchProxyUrl:this._webSearchProxyUrl.get(),webSearchUrl:this._webSearchUrl.get(),searchFilesMaxFileBytes:this._searchFilesMaxFileBytes.get(),searchFilesMaxFilesVisited:this._searchFilesMaxFilesVisited.get(),searchFilesSkipDirs:this._searchFilesSkipDirs.get()},null,2)}findProfilesForProvider(e,t){return this.profiles.filter(n=>!(n.providerId&&n.providerId!==e||n.model&&n.model!==t))}get profiles(){return[dn,...this._profiles.get()]}get systemPromptOverride(){return this._systemPromptOverride.get()}get webSearchProxyUrl(){return this._webSearchProxyUrl.get()}get webSearchUrl(){return this._webSearchUrl.get()}get webSearchUseProxy(){return this._webSearchUseProxy.get()}get searchFilesMaxFileBytes(){return this._searchFilesMaxFileBytes.get()}get searchFilesMaxFilesVisited(){return this._searchFilesMaxFilesVisited.get()}get searchFilesSkipDirs(){return this._searchFilesSkipDirs.get()}get searchFilesSkipDirsSet(){return new Set(this._searchFilesSkipDirs.get().split(`,`).map(e=>e.trim()).filter(Boolean))}async activateProfile(e,t){let n=this.profiles.find(e=>e.id===t);n&&(this._activeProfileId.set(t),this._enabledToolNames.set(new Set(n.enabledToolNames)),this._customTools.set(n.customTools),this._systemPromptOverride.set(n.systemPromptOverride||``),await Promise.all([C(e,x.ACTIVE_TOOL_PROFILE,t),C(e,x.ENABLED_TOOLS,n.enabledToolNames),C(e,x.CUSTOM_TOOLS,n.customTools),C(e,x.SYSTEM_PROMPT_OVERRIDE,n.systemPromptOverride||``)]))}async addCustomTool(e,t){let n=[...this._customTools.get(),t];this._customTools.set(n);let r=new Set(this._enabledToolNames.get());r.add(t.name),this._enabledToolNames.set(r),await Promise.all([C(e,x.CUSTOM_TOOLS,n),C(e,x.ENABLED_TOOLS,[...r])])}async addProfile(e,t){let n=[...this._profiles.get(),t];this._profiles.set(n),await C(e,x.TOOL_PROFILES,n)}async cloneTool(e,t,n,r){let i=this.allTools.find(e=>e.name===t);if(!i||this.allTools.some(e=>e.name===n))return!1;let a={name:n,description:r||i.description,input_schema:JSON.parse(JSON.stringify(i.input_schema))};return await this.addCustomTool(e,a),!0}async deactivateProfile(e){this._activeProfileId.set(null),await C(e,x.ACTIVE_TOOL_PROFILE,null)}async deleteProfile(e,t){if(t===dn.id)return;let n=this._profiles.get().filter(e=>e.id!==t);this._profiles.set(n),this._activeProfileId.get()===t&&(this._activeProfileId.set(null),await C(e,x.ACTIVE_TOOL_PROFILE,null)),await C(e,x.TOOL_PROFILES,n)}async importBackup(e,t){let n=JSON.parse(t);Array.isArray(n.enabledTools)&&(this._enabledToolNames.set(new Set(n.enabledTools)),await C(e,x.ENABLED_TOOLS,n.enabledTools)),Array.isArray(n.customTools)&&(this._customTools.set(n.customTools),await C(e,x.CUSTOM_TOOLS,n.customTools)),typeof n.systemPromptOverride==`string`&&(this._systemPromptOverride.set(n.systemPromptOverride),await C(e,x.SYSTEM_PROMPT_OVERRIDE,n.systemPromptOverride)),Array.isArray(n.profiles)&&(this._profiles.set(n.profiles),await C(e,x.TOOL_PROFILES,n.profiles)),(typeof n.activeProfileId==`string`||n.activeProfileId===null)&&(this._activeProfileId.set(n.activeProfileId),await C(e,x.ACTIVE_TOOL_PROFILE,n.activeProfileId)),typeof n.webSearchUseProxy==`boolean`&&(this._webSearchUseProxy.set(n.webSearchUseProxy),await C(e,x.WEB_SEARCH_USE_PROXY,n.webSearchUseProxy?`true`:`false`)),typeof n.webSearchProxyUrl==`string`&&(this._webSearchProxyUrl.set(n.webSearchProxyUrl),await C(e,x.WEB_SEARCH_PROXY_URL,n.webSearchProxyUrl)),typeof n.webSearchUrl==`string`&&(this._webSearchUrl.set(n.webSearchUrl),await C(e,x.WEB_SEARCH_URL,n.webSearchUrl)),typeof n.searchFilesMaxFileBytes==`number`&&n.searchFilesMaxFileBytes>0&&(this._searchFilesMaxFileBytes.set(n.searchFilesMaxFileBytes),await C(e,x.SEARCH_FILES_MAX_FILE_BYTES,String(n.searchFilesMaxFileBytes))),typeof n.searchFilesMaxFilesVisited==`number`&&n.searchFilesMaxFilesVisited>0&&(this._searchFilesMaxFilesVisited.set(n.searchFilesMaxFilesVisited),await C(e,x.SEARCH_FILES_MAX_FILES_VISITED,String(n.searchFilesMaxFilesVisited))),typeof n.searchFilesSkipDirs==`string`&&(this._searchFilesSkipDirs.set(n.searchFilesSkipDirs),await C(e,x.SEARCH_FILES_SKIP_DIRS,n.searchFilesSkipDirs)),Array.isArray(n.declarativeToolsEnabled)?(this._declarativeToolNamesEnabled.set(new Set(n.declarativeToolsEnabled)),await C(e,x.DECLARATIVE_TOOLS_ENABLED,n.declarativeToolsEnabled)):n.declarativeToolsEnabled===null&&(this._declarativeToolNamesEnabled.set(null),await C(e,x.DECLARATIVE_TOOLS_ENABLED,null))}async load(e){let[t,n,r,i,a,o,s,c,l,u,d,f]=await Promise.all([S(e,x.ENABLED_TOOLS),S(e,x.CUSTOM_TOOLS),S(e,x.SYSTEM_PROMPT_OVERRIDE),S(e,x.TOOL_PROFILES),S(e,x.ACTIVE_TOOL_PROFILE),S(e,x.WEB_SEARCH_USE_PROXY),S(e,x.WEB_SEARCH_PROXY_URL),S(e,x.WEB_SEARCH_URL),S(e,x.SEARCH_FILES_MAX_FILE_BYTES),S(e,x.SEARCH_FILES_MAX_FILES_VISITED),S(e,x.SEARCH_FILES_SKIP_DIRS),S(e,x.DECLARATIVE_TOOLS_ENABLED)]);if(Array.isArray(t)&&this._enabledToolNames.set(new Set(t)),Array.isArray(n)&&this._customTools.set(n),Array.isArray(f)&&this._declarativeToolNamesEnabled.set(new Set(f)),typeof r==`string`&&this._systemPromptOverride.set(r),Array.isArray(i)&&this._profiles.set(i),typeof a==`string`&&this._activeProfileId.set(a),o!=null){let e=String(o).toLowerCase();this._webSearchUseProxy.set(e===`true`||e===`1`)}if(typeof s==`string`&&s.trim().length>0&&this._webSearchProxyUrl.set(s.trim()),typeof c==`string`&&c.trim().length>0&&this._webSearchUrl.set(c.trim()),l!=null){let e=Number(l);Number.isFinite(e)&&e>0&&this._searchFilesMaxFileBytes.set(e)}if(u!=null){let e=Number(u);Number.isFinite(e)&&e>0&&this._searchFilesMaxFilesVisited.set(e)}typeof d==`string`&&d.trim().length>0&&this._searchFilesSkipDirs.set(d.trim())}async setWebSearchProxyUrl(e,t){let n=t.trim()||`/proxy`;this._webSearchProxyUrl.set(n),await C(e,x.WEB_SEARCH_PROXY_URL,n)}async setWebSearchUrl(e,t){let n=t.trim()||`https://html.duckduckgo.com/html/?q={query}`;this._webSearchUrl.set(n),await C(e,x.WEB_SEARCH_URL,n)}async setWebSearchUseProxy(e,t){let n=!!t;this._webSearchUseProxy.set(n),await C(e,x.WEB_SEARCH_USE_PROXY,n?`true`:`false`)}async setSearchFilesMaxFileBytes(e,t){let n=Math.max(1,Math.round(t));this._searchFilesMaxFileBytes.set(n),await C(e,x.SEARCH_FILES_MAX_FILE_BYTES,String(n))}async setSearchFilesMaxFilesVisited(e,t){let n=Math.max(1,Math.round(t));this._searchFilesMaxFilesVisited.set(n),await C(e,x.SEARCH_FILES_MAX_FILES_VISITED,String(n))}async setSearchFilesSkipDirs(e,t){let n=t.trim();this._searchFilesSkipDirs.set(n),await C(e,x.SEARCH_FILES_SKIP_DIRS,n)}async removeCustomTool(e,t){let n=this._customTools.get().filter(e=>e.name!==t);this._customTools.set(n);let r=new Set(this._enabledToolNames.get());r.delete(t),this._enabledToolNames.set(r),await Promise.all([C(e,x.CUSTOM_TOOLS,n),C(e,x.ENABLED_TOOLS,[...r])])}async saveToActiveProfile(e){let t=this._activeProfileId.get();if(!t)return;let n=this._profiles.get().find(e=>e.id===t);if(!n)return;let r={...n,enabledToolNames:[...this._enabledToolNames.get()],customTools:[...this._customTools.get()],systemPromptOverride:this._systemPromptOverride.get()};await this.updateProfile(e,r)}async setAllEnabled(e,t){this._enabledToolNames.set(new Set(t));let n=[C(e,x.ENABLED_TOOLS,t)];this._activeProfileId.get()&&(this._activeProfileId.set(null),n.push(C(e,x.ACTIVE_TOOL_PROFILE,null))),await Promise.all(n)}async setSystemPromptOverride(e,t){this._systemPromptOverride.set(t),await C(e,x.SYSTEM_PROMPT_OVERRIDE,t)}async setToolEnabled(e,t,n){let r=new Set(this._enabledToolNames.get());n?r.add(t):r.delete(t),this._enabledToolNames.set(r);let i=[C(e,x.ENABLED_TOOLS,[...r])];this._activeProfileId.get()&&(this._activeProfileId.set(null),i.push(C(e,x.ACTIVE_TOOL_PROFILE,null))),await Promise.all(i)}async updateProfile(e,t){let n=this._profiles.get().map(e=>e.id===t.id?t:e);this._profiles.set(n),await C(e,x.TOOL_PROFILES,n)}},fn=[/<\|start_header_id\|>\s*(?:system|user|assistant|tool)\s*<\|end_header_id\|>/gi,/<\|(?:begin_of_text|end_of_text|eot_id|im_start|im_end|end_of_message)\|>/gi,/<\|(?:startofturn|endofturn|start_of_turn|end_of_turn)\|>/gi,/<\|(?:image|audio|video|tool_call|tool_response|tool_result|function_call)\|>|<\|\/function_call\|>/gi,/<|(?:system|user|assistant|im_start|im_end)|>/g,/\[\s*INST\s*\]|\[\s*\/INST\s*\]|<<\s*SYS\s*>>|<<\s*\/SYS\s*>>/gi,/<\/?s>|<\/?bos>|<\/?eos>|<\|(?:bos|eos|pad|unk)\|>/gi,/<\|(?:START_OF_TURN_TOKEN|END_OF_TURN_TOKEN|CHATBOT_TOKEN|USER_TOKEN|SYSTEM_TOKEN)\|>/gi,/<\|(?:system|user|assistant|end|endoftext|placeholder\d*)\|>/gi,/<|(?:begin▁of▁sentence|end▁of▁sentence)|>/g,/<\|start\|>\s*(?:system|user|assistant|tool)\s*<\|message\|>/gi];function pn(e){for(let t of fn)if(t.test(e))return!0;return!1}function mn(e){let t=String(e||``),n=t;for(let e of fn)t=t.replace(e,``);return t!==n&&(t=t.replace(/^[ \t]+$/gm,``),t=t.replace(/\n{3,}/g,`
|
|
60
60
|
|
|
61
61
|
`)),t}function hn(e,t){let n=mn(e);return n!==e&&pn(e)&&console.info(`[ShadowClaw] Chat-template control token(s) detected and stripped from "${t}" output. The provider or model may not be applying its chat template correctly. Original length: ${e.length}, cleaned length: ${n.length}.`),n}function gn(e,t,n,r){return{type:`thinking-log`,payload:{groupId:e,level:t,timestamp:Date.now(),label:n,message:r||``}}}function _n(e,t,n){return{type:`tool-activity`,payload:{groupId:e,tool:t,status:n}}}const vn=`keys`,yn=`api-key-encryption`;function bn(){return new Promise((e,t)=>{let n=indexedDB.open(`shadowclaw-keystore`,1);n.onupgradeneeded=()=>{n.result.createObjectStore(vn)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}async function xn(){let e=await bn();if(!e)return null;let t=await new Promise((t,n)=>{let r=e.transaction(vn,`readonly`).objectStore(vn).get(yn);r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)});if(t)return e.close(),t;let n=await crypto.subtle.generateKey({name:`AES-GCM`,length:256},!1,[`encrypt`,`decrypt`]);try{await new Promise((t,r)=>{let i=e.transaction(vn,`readwrite`);i.objectStore(vn).put(n,yn),i.oncomplete=()=>t(),i.onerror=()=>r(i.error)})}finally{e.close()}return n}async function Sn(e){let t=await xn();if(!t)return null;let n=crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(12)),r=await crypto.subtle.encrypt({name:`AES-GCM`,iv:n},t,new TextEncoder().encode(e)),i=new Uint8Array(n.length+new Uint8Array(r).length);return i.set(n),i.set(new Uint8Array(r),n.length),btoa(String.fromCharCode(...i))}async function Cn(e){let t=await xn();if(!t)return null;let n=Uint8Array.from(atob(e),e=>e.charCodeAt(0)),r=n.slice(0,12),i=n.slice(12),a=await crypto.subtle.decrypt({name:`AES-GCM`,iv:r},t,i);return new TextDecoder().decode(a)}function wn(e){return!e||e.authMode===`token`||e.authMode===`pat`?`token`:e.authMode===`basic`?`basic`:e.authMode===`oauth`||e.oauthProviderId||e.oauthClientId||e.oauthClientSecret||e.refreshToken||e.accessTokenExpiresAt||e.tokenType||e.oauthReauthRequired?`oauth`:`token`}function Tn(e){return wn(e)}function En(e,t){return Tn(e)!==`oauth`||e.oauthReauthRequired||!e.refreshToken||!e.oauthProviderId||!e.oauthClientId?!1:t.forceRefresh?!0:e.accessTokenExpiresAt?e.accessTokenExpiresAt<=Date.now()+6e4:!1}async function Dn(e,t,n){if(!n.refreshToken||!n.oauthProviderId||!n.oauthClientId)return n;let r=await Cn(n.refreshToken);if(!r)return n;let i=n.oauthClientSecret?await Cn(n.oauthClientSecret):void 0,a=async r=>{let i=t.findIndex(e=>e.id===n.id);i!==-1&&(t[i]=r,await C(e,x.SERVICE_ACCOUNTS,t))},o=async()=>{let e=(n.oauthRefreshFailureCount||0)+1,t=e>=3,r={...n,oauthRefreshFailureCount:e,oauthReauthRequired:t,oauthReauthRequiredAt:t?n.oauthReauthRequiredAt||Date.now():void 0};return await a(r),r};try{let e=await fetch(`/oauth/refresh`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({providerId:n.oauthProviderId,clientId:n.oauthClientId,clientSecret:i,refreshToken:r,scope:n.scopes,tokenUrl:n.oauthCustomTokenUrl})});if(!e.ok)return o();let t=await e.json();if(!t.accessToken)return o();let s=await Sn(t.accessToken);if(!s)return o();let c=n.refreshToken;if(t.refreshToken){let e=await Sn(t.refreshToken);e&&(c=e)}let l={...n,token:s,refreshToken:c,accessTokenExpiresAt:t.expiresIn?Date.now()+t.expiresIn*1e3:n.accessTokenExpiresAt,tokenType:t.tokenType||n.tokenType,scopes:t.scope?t.scope.split(/[\s,]+/).map(e=>e.trim()).filter(Boolean):n.scopes,oauthRefreshFailureCount:0,oauthReauthRequired:!1,oauthReauthRequiredAt:void 0};return await a(l),l}catch{return o()}}function On(e,t){if(e.oauthProviderId){let t=he(e.oauthProviderId);if(t)return t}let n=[e.service,e.hostPattern,t].filter(e=>!!e).map(e=>e.toLowerCase());for(let e of Object.values(pe))if([e.providerId,...e.aliases||[]].map(e=>e.toLowerCase()).some(e=>n.some(t=>t.includes(e))))return e;return null}function kn(e,t){let n=Tn(e),r=On(e,t);if(r){let e;return e=n===`oauth`?r.tokenAuth.oauth:n===`basic`&&r.tokenAuth.basic?r.tokenAuth.basic:r.tokenAuth.token,{headerName:e.headerName,headerPrefix:e.headerPrefix||``}}return{headerName:`Authorization`,headerPrefix:n===`basic`?`Basic `:`Bearer `}}function An(e,t){let n=[],r=-1,i=t.toLowerCase();for(let t of e){if(!t.hostPattern)continue;let e=t.hostPattern.toLowerCase();i.includes(e)&&(e.length>r?(r=e.length,n.length=0,n.push(t)):e.length===r&&n.push(t))}return n}function jn(e,t){return e.length?t&&e.find(e=>Tn(e)===t)||e[0]:void 0}async function Mn(e,t,n={}){let r=await S(e,x.SERVICE_ACCOUNTS),i=Array.isArray(r)?r:[];if(i.length===0)return;let a;if(n.accountId&&(a=i.find(e=>e.id===n.accountId)),!a&&t){let e=An(i,t);a=n.authMode?jn(e,n.authMode):jn(e,e[0]?On(e[0],t)?.defaultMode:void 0)}if(!a){let t=await S(e,x.SERVICE_DEFAULT_ACCOUNT);t&&(a=i.find(e=>e.id===t))}if(!a&&n.authMode&&(a=jn(i,n.authMode)),a||=i[0],!a)return;if(En(a,n)&&(a=await Dn(e,i,a)),Tn(a)===`oauth`&&a.oauthReauthRequired)return{token:``,service:a.service,hostPattern:a.hostPattern,headerName:`Authorization`,headerValue:``,accountId:a.id,authMode:`oauth`,reauthRequired:!0};let o=``;a.token&&(o=await Cn(a.token)??``);let{headerName:s,headerPrefix:c}=kn(a,t),l=o;Tn(a)===`basic`&&a.basicUsername&&(l=btoa(`${a.basicUsername}:${o}`));let u=c?`${c}${l}`:l;return{token:o,service:a.service,hostPattern:a.hostPattern,headerName:s,headerValue:u,accountId:a.id,authMode:Tn(a)}}function Nn(e){return wn(e)}function Pn(e){switch(e){case`azure-devops`:return`azure_devops`;default:return e}}function Fn(e){if(!e)return`generic`;let t=e.toLowerCase();return t.includes(`github`)?`github`:t.includes(`dev.azure.com`)||t.includes(`visualstudio.com`)?`azure-devops`:t.includes(`gitlab`)?`gitlab`:`generic`}function In(e){if(e.reauthRequired)return{};let t=e.provider||Fn(e.hostPattern||``),n=Pn(t),r=e.authMode||`token`;if(e.token&&n===`azure_devops`&&oe(n,r,`git_remote`)?.headerPrefix===`Basic `)return{Authorization:`Basic ${btoa(`:`+e.token)}`};if(t===`azure-devops`&&e.username&&e.password)return{Authorization:`Basic ${btoa(e.username+`:`+e.password)}`};if(e.token){let t=oe(n,r,`git_remote`);return t?.headerName?{[t.headerName]:`${t.headerPrefix||``}${e.token}`}:{Authorization:`Bearer ${e.token}`}}return{}}function Ln(e){try{let t=new URL(e),n=t.pathname.replace(/\/+$/,``);return n?t.hostname+n:t.hostname}catch{return}}function Rn(e,t){let n=t.toLowerCase(),r=[],i=-1;for(let t of e){if(!t.hostPattern)continue;let e=t.hostPattern.toLowerCase();n.includes(e)&&(e.length>i?(i=e.length,r.length=0,r.push(t)):e.length===i&&r.push(t))}return r}function zn(e,t){if(!e.length)return;if(!t)return e[0];let n=e.find(e=>Nn(e)===t);if(n)return n;if(t===`token`){let t=e.find(e=>Nn(e)===`token`&&!e.authMode);if(t)return t}return e[0]}async function Bn(e){if(e)return await Cn(e)??void 0}function Vn(e,t){return Nn(e)!==`oauth`||e.oauthReauthRequired||!e.refreshToken||!e.oauthProviderId||!e.oauthClientId?!1:t.forceRefresh?!0:e.accessTokenExpiresAt?e.accessTokenExpiresAt<=Date.now()+6e4:!1}async function Hn(e,t,n){if(!n.refreshToken||!n.oauthProviderId||!n.oauthClientId)return n;let r=await Bn(n.refreshToken);if(!r)return n;let i=n.oauthClientSecret?await Bn(n.oauthClientSecret):void 0,a=async r=>{let i=t.findIndex(e=>e.id===n.id);i!==-1&&(t[i]=r,await C(e,x.GIT_ACCOUNTS,t))},o=async()=>{let e=(n.oauthRefreshFailureCount||0)+1,t=e>=3,r={...n,oauthRefreshFailureCount:e,oauthReauthRequired:t,oauthReauthRequiredAt:t?n.oauthReauthRequiredAt||Date.now():void 0};return await a(r),r};try{let e=await fetch(`/oauth/refresh`,{body:JSON.stringify({clientId:n.oauthClientId,clientSecret:i,providerId:n.oauthProviderId,refreshToken:r,scope:n.scopes}),headers:{"content-type":`application/json`},method:`POST`});if(!e.ok)return o();let t=await e.json();if(!t.accessToken)return o();let s=await Sn(t.accessToken);if(!s)return o();let c=n.refreshToken;if(t.refreshToken){let e=await Sn(t.refreshToken);e&&(c=e)}let l={...n,token:s,refreshToken:c,accessTokenExpiresAt:t.expiresIn?Date.now()+t.expiresIn*1e3:n.accessTokenExpiresAt,tokenType:t.tokenType||n.tokenType,scopes:t.scope?t.scope.split(/[\s,]+/).map(e=>e.trim()).filter(Boolean):n.scopes,oauthRefreshFailureCount:0,oauthReauthRequired:!1,oauthReauthRequiredAt:void 0};return await a(l),l}catch{return o()}}async function Un(e,t,n={}){let r=await S(e,x.GIT_ACCOUNTS);return Array.isArray(r)&&r.length>0?Wn(e,r,t,n):Gn(e)}async function Wn(e,t,n,r={}){let i;if(r.accountId&&(i=t.find(e=>e.id===r.accountId)),!i&&n){let e=Ln(n);e&&(i=zn(Rn(t,e),r.authMode))}if(!i){let r=await S(e,x.GIT_DEFAULT_ACCOUNT);if(r){let e=t.find(e=>e.id===r);if(e){if(!n)i=e;else{let t=Ln(n);if(t&&e.hostPattern){let n=t?.toLowerCase(),r=e.hostPattern.toLowerCase();n?.includes(r)&&(i=e)}}}}}if(!i&&!n&&r.authMode&&(i=zn(t,r.authMode)),!i&&!n&&(i=t[0]),!i)return{authMode:`token`,authorEmail:void 0,authorName:void 0,password:void 0,provider:`generic`,token:void 0,username:void 0};Vn(i,r)&&(i=await Hn(e,t,i));let a=i.provider||Fn(i.hostPattern||``);return Nn(i)===`oauth`&&i.oauthReauthRequired?{accountId:i.id,authMode:`oauth`,authorEmail:i.authorEmail||void 0,authorName:i.authorName||void 0,hostPattern:i.hostPattern||void 0,password:void 0,provider:a,reauthRequired:!0,token:void 0,username:i.username||void 0}:{accountId:i.id,authMode:Nn(i),authorEmail:i.authorEmail||void 0,authorName:i.authorName||void 0,hostPattern:i.hostPattern||void 0,password:await Bn(i.password),provider:a,token:await Bn(i.token),username:i.username||void 0}}async function Gn(e){let t=await S(e,x.GIT_TOKEN),n=await S(e,x.GIT_PASSWORD);return{authMode:`token`,authorEmail:await S(e,x.GIT_AUTHOR_EMAIL)||void 0,authorName:await S(e,x.GIT_AUTHOR_NAME)||void 0,password:n?await Bn(n):void 0,provider:`generic`,token:t?await Bn(t):void 0,username:await S(e,x.GIT_USERNAME)||void 0}}function Kn(e){if(typeof e!=`string`||!e.trim())return!1;try{let t=new URL(e);return t.protocol===`https:`||t.protocol===`http:`}catch{return!1}}function qn(e,t){if(!e||typeof e!=`object`)return null;let n=e;if(!n.serviceType||!n.authType)return null;if(n.serviceType!==t)throw Error(`Credential ref serviceType must match connection serviceType`);return{serviceType:n.serviceType,authType:n.authType,providerId:n.providerId||void 0,accountId:n.accountId||void 0,gitAccountId:n.gitAccountId||void 0,headerName:n.headerName||void 0,encryptedValue:n.encryptedValue||void 0}}function Jn(e){if(!e||typeof e!=`object`)return null;let t=e;return!t.id||!t.label||!t.serviceType||!t.transport||typeof t.enabled!=`boolean`||typeof t.createdAt!=`number`||typeof t.updatedAt!=`number`||!Kn(t.serverUrl)||t.serviceType!==`mcp_remote`&&t.serviceType!==`webmcp_local`||t.transport!==`streamable_http`&&t.transport!==`sse`&&t.transport!==`websocket`?null:{id:t.id,label:t.label,serviceType:t.serviceType,serverUrl:t.serverUrl,transport:t.transport,enabled:t.enabled,autoReconnectOAuth:t.autoReconnectOAuth===!0,createdAt:t.createdAt,updatedAt:t.updatedAt,credentialRef:qn(t.credentialRef,t.serviceType)}}async function Yn(e){let t=await S(e,x.REMOTE_MCP_CONNECTIONS);if(!Array.isArray(t))return[];let n=[];for(let e of t){let t=Jn(e);t&&n.push(t)}return n}async function Xn(e){return Yn(e)}async function Zn(e,t){if(!t)return null;let n=await Yn(e);return n.find(e=>e.id===t)||n.find(e=>e.label.toLowerCase()===t.toLowerCase())||null}function Qn(e){return e===`oauth`?`oauth`:`token`}async function $n(e,t,n={}){let r=await Zn(e,t);if(!r)return null;let i=r.credentialRef;if(!i||i.authType===`none`)return{connection:r,authType:`none`,headers:{}};if(i.authType===`custom_header`){if(!i.headerName||!i.encryptedValue)return{connection:r,authType:`custom_header`,headers:{}};let e=await Cn(i.encryptedValue);return{connection:r,authType:`custom_header`,headers:e?{[i.headerName]:e}:{}}}let a=Qn(i.authType);if(i.accountId){let t=await Mn(e,r.serverUrl,{accountId:i.accountId,authMode:a,forceRefresh:n.forceRefresh});return t?t.reauthRequired?{connection:r,authType:i.authType,headers:{},reauthRequired:!0}:{connection:r,authType:i.authType,headers:t.headerValue?{[t.headerName]:t.headerValue}:{}}:{connection:r,authType:i.authType,headers:{}}}if(i.gitAccountId){let t=await Un(e,r.serverUrl,{accountId:i.gitAccountId,authMode:a,forceRefresh:n.forceRefresh});return t.reauthRequired?{connection:r,authType:i.authType,headers:{},reauthRequired:!0}:{connection:r,authType:i.authType,headers:In(t)}}return{connection:r,authType:i.authType,headers:{}}}const er=/* @__PURE__ */ new Map;function tr(e){return typeof e==`object`&&!!e&&`method`in e&&`id`in e&&!(`result`in e)&&!(`error`in e)}function nr(e){let t=(e.requestedSchema||{}).properties||{},n={};for(let[e,r]of Object.entries(t))`default`in r?n[e]=r.default:r.type===`boolean`&&(n[e]=!0);return n}var rr=class extends Error{constructor(e){super(e),this.name=`InvalidRemoteMcpSessionError`}},ir=class extends Error{status;constructor(e,t){super(t),this.name=`HttpRemoteMcpError`,this.status=e}},ar=class extends Error{connectionId;constructor(e){super(`OAuth reconnect required for remote MCP connection`),this.name=`McpReauthRequiredError`,this.connectionId=e}};function or(e,t){return!e.headers||typeof e.headers.get!=`function`?null:e.headers.get(t)}function sr(e){return/no valid session id provided/i.test(e)}function cr(e,t){let n=t&&`error`in t?t.error.message||`Remote MCP JSON-RPC error`:``;return sr(n)?new rr(n):e.ok?Error(n||`Remote MCP JSON-RPC error`):new ir(e.status,n?`Remote MCP HTTP error: ${e.status} (${n})`:`Remote MCP HTTP error: ${e.status}`)}function lr(e){if(!e)return null;let t=null,n=e.split(/\r?\n/);for(let e of n){let n=e.trim();if(!n.startsWith(`data:`))continue;let r=n.slice(5).trim();if(r&&r!==`[DONE]`)try{let e=JSON.parse(r);e&&typeof e==`object`&&`jsonrpc`in e&&(t=e)}catch{}}return t}function ur(e){if(!e)return null;try{return JSON.parse(e)}catch{return null}}async function dr(e,t,n){let r=await fetch(e,{method:`POST`,headers:{"content-type":`application/json`,accept:`application/json, text/event-stream`,...t},body:JSON.stringify(n)}),i=(or(r,`content-type`)||``).toLowerCase(),a=null;if(typeof r.text==`function`){let e=await r.text();a=i.includes(`text/event-stream`)?lr(e):ur(e)}else try{a=await r.json()}catch{a=null}return{response:r,payload:a}}async function fr(e,t,n){let{response:r,payload:i}=await dr(e,{...t,"mcp-session-id":n},{jsonrpc:`2.0`,method:`notifications/initialized`,params:{}});if(!r.ok||i&&`error`in i)throw cr(r,i)}async function pr(e,t,n){let r=er.get(e);if(r?.sessionId)return r;let{response:i,payload:a}=await dr(t,n,{jsonrpc:`2.0`,id:`initialize-${Date.now().toString(36)}`,method:`initialize`,params:{protocolVersion:`2025-03-26`,capabilities:{elicitation:{}},clientInfo:{name:`shadowclaw-remote-mcp-client`,version:`1.0.0`}}});if(!i.ok||a&&`error`in a)throw cr(i,a);let o=or(i,`mcp-session-id`)||`local-${Date.now()}-${Math.random().toString(36).slice(2)}`,s={sessionId:o,protocolVersion:or(i,`mcp-protocol-version`)||a?.result?.protocolVersion,lastUsedAt:Date.now()};return await fr(t,n,o),er.set(e,s),s}async function mr(e,t,n,r,i){let a=await pr(e,t,n),o=async e=>{let a={jsonrpc:`2.0`,id:Date.now().toString(),method:r,params:i||{}},o={...n,"mcp-session-id":e},{response:s,payload:c}=await dr(t,o,a),l=0;for(;tr(c)&&l<5&&(l++,c.method===`elicitation/create`);){let e=nr(c.params||{});({response:s,payload:c}=await dr(t,o,{jsonrpc:`2.0`,id:c.id,result:{action:`accept`,content:e}}))}if(tr(c))throw Error(`Unsupported server request: ${c.method}`);if(!s.ok||!c||`error`in c)throw cr(s,c);return c.result};try{let t=await o(a.sessionId);return a.lastUsedAt=Date.now(),er.set(e,a),t}catch(r){if(!(r instanceof rr))throw r;er.delete(e),a=await pr(e,t,n);let i=await o(a.sessionId);return a.lastUsedAt=Date.now(),er.set(e,a),i}}function hr(e){e&&er.delete(e)}async function gr(e,t,n,r){let i=await $n(e,t);if(!i)throw Error(`Remote MCP connection not found`);if(i.reauthRequired)throw new ar(t);let{connection:a,authType:o,headers:s}=i;if(a.transport!==`streamable_http`)throw Error(`Unsupported remote MCP transport`);try{return await mr(t,a.serverUrl,s,n,r)}catch(i){if(!(i instanceof ir)||i.status!==401||o!==`oauth`)throw i;hr(t);let a=await $n(e,t,{forceRefresh:!0});if(!a||a.reauthRequired)throw new ar(t);try{return await mr(t,a.connection.serverUrl,a.headers,n,r)}catch(e){throw e instanceof ir&&e.status===401?new ar(t):e}}}async function _r(e,t){let n=await gr(e,t,`tools/list`);return Array.isArray(n.tools)?n.tools:[]}async function vr(e,t,n,r={}){return gr(e,t,`tools/call`,{name:n,arguments:r})}let yr=null;function br(e){yr=e}const xr=/* @__PURE__ */ new Map;function Sr(e,t){xr.set(e,t)}function Cr(e){xr.delete(e)}function A(e){let t=e?.payload?.groupId;t&&xr.has(t)?xr.get(t).push(e):yr?yr(e):typeof self<`u`&&typeof self.postMessage==`function`&&self.postMessage(e)}const wr=/* @__PURE__ */ new Set;async function Tr(){Ar()}async function Er(e,t=900,n=null){{let e=Or();return`Error: WebVM is not available. The VM requires local assets served at /assets/ (alpine-fs.json, libv86.mjs, etc). Use the "javascript" tool for code execution, or the "fetch_url" tool for HTTP requests.`+(e.error?`\nReason: ${e.error}`:e.booting?`
|
|
62
62
|
Reason: VM is still booting in the background...`:``)}}function Dr(){return!1}function Or(){return{ready:!1,booting:!1,bootAttempted:!1,mode:null,error:`WebVM is disabled. Enable it in Settings to use WebVM.`}}function kr(){return`disabled`}function Ar(){let e=Or();wr.forEach(t=>{try{t(e)}catch{}})}function jr(){let e=re(`/static-main/MEMORY.md`);if(typeof window<`u`&&window.location?.origin)try{return new URL(e,window.location.origin).toString()}catch{return e}return e}async function Mr(e){let t=await S(e,x.MAIN_GROUP_README_SUPPRESSED);return t===!0||t===`true`}async function Nr(e,t){await C(e,x.MAIN_GROUP_README_SUPPRESSED,t)}async function Pr(e,t=b,n){try{if(await ze(e,t,`MEMORY.md`))return!0;if(t===`br:main`&&await Mr(e))return!1;let r=n;if(r===void 0&&typeof fetch==`function`)try{let e=await fetch(jr());e.ok&&(r=await e.text())}catch{}return r??=o,await w(e,t,`MEMORY.md`,r),!0}catch(e){return console.warn(`Failed to ensure main workspace Memory:`,e),!1}}function Fr(){let e=re(`/static-main/index.html`);if(typeof window<`u`&&window.location?.origin)try{return new URL(e,window.location.origin).toString()}catch{return e}return e}async function Ir(e){let t=await S(e,x.MAIN_GROUP_INDEX_SUPPRESSED);return t===!0||t===`true`}async function Lr(e,t){await C(e,x.MAIN_GROUP_INDEX_SUPPRESSED,t)}async function Rr(t,n=b,r){try{if(await ze(t,n,`index.html`))return!0;if(n===`br:main`&&await Ir(t))return!1;let i=r;if(i===void 0&&typeof fetch==`function`)try{let e=await fetch(Fr());e.ok&&(i=await e.text())}catch{}return i??=e,await w(t,n,`index.html`,i),!0}catch(e){return console.warn(`Failed to ensure main workspace Memory:`,e),!1}}function j(e,t){return`${e}:${t}`}async function zr(e){let t=await S(e,x.SUPPRESSED_PAGES_LIST);if(!t||typeof t!=`string`)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return e}catch{}return[]}async function Br(e,t,n){let r=await zr(e),i=j(t,n);return r.some(e=>j(e.groupId,e.path)===i)}async function Vr(e,t,n){let r=await zr(e),i=j(t,n);if(!r.some(e=>j(e.groupId,e.path)===i)){let i=[...r,{groupId:t,path:n}];await C(e,x.SUPPRESSED_PAGES_LIST,JSON.stringify(i))}}async function Hr(e,t,n){let r=await zr(e),i=j(t,n),a=r.filter(e=>j(e.groupId,e.path)!==i);a.length!==r.length&&await C(e,x.SUPPRESSED_PAGES_LIST,JSON.stringify(a))}async function Ur(e,t,n){let r=await h(e,t),{dirs:i,filename:a}=f(n),o=r;for(let e of i)o=await o.getDirectoryHandle(e);await o.removeEntry(a),t===`br:main`&&i.length===0&&(a===`MEMORY.md`?await Nr(e,!0):a===`index.html`&&await Lr(e,!0));try{await Vr(e,t,n)}catch{}try{await df.removePage(e,n,t)}catch{}}async function Wr(e,t,n=`.`){for(let r=0;r<2;r++)try{let r=await h(e,t);if(n&&n!==`.`){let e=n.replace(/\\/g,`/`).replace(/^\/home\/user\//,`/`).replace(/^\/+/,``).split(`/`).filter(Boolean);for(let t of e){let e=await r.getDirectoryHandle(t);if(typeof r.isSameEntry==`function`&&await r.isSameEntry(e))throw Error(`Directory navigation stuck at "${r.name}" for segment "${t}" — the stored directory handle may be stale.`);r=e}}let i=[];for await(let[e,t]of r.entries())i.push(t.kind===`directory`?`${e}/`:e);return i.sort()}catch(e){if(r===0&&g(e)){y();continue}throw e}return[]}async function Gr(e,t,n){let r=n.replace(/\\/g,`/`).replace(/^\/home\/user\//,`/`).replace(/^\/+/,``).replace(/\/+$/,``).split(`/`).filter(Boolean);if(r.length===0)throw Error(`Empty directory path`);for(let n=0;n<2;n++)try{let n=await h(e,t);for(let e of r)n=await n.getDirectoryHandle(e,{create:!0});return}catch(e){if(n===0&&g(e)){y();continue}throw e}}var Kr=class extends qe{db;groupId;workspacePrefix;constructor(e,t,n,r=`/home/user`){super(n),this.db=e,this.groupId=t,this.workspacePrefix=r}async appendFile(e,t){await super.appendFile(e,t);let n=this._toDbPath(e);if(n!==null){let t=await this._readPathContent(e);await w(this.db,this.groupId,n,t)}}async cp(e,t,n){await super.cp(e,t,n);let r=this._toDbPath(t);if(r!==null)try{let e=await super.stat(t);if(!this._isDirectoryStat(e)){let e=await this._readPathContent(t);await w(this.db,this.groupId,r,e)}}catch{}}async mkdir(e,t){await super.mkdir(e,t);let n=this._toDbPath(e);n!==null&&n!==``&&await Gr(this.db,this.groupId,n)}async mv(e,t){await super.mv(e,t);let n=!1,r=t,i=this._toDbPath(t);if(i!==null)try{let i=await super.stat(t);if(this._isDirectoryStat(i)){let n=this._basename(e);n&&(r=this._joinPath(t,n))}let a=await super.stat(r);if(!this._isDirectoryStat(a)){let e=this._toDbPath(r);if(e!==null){let t=await this._readPathContent(r);await w(this.db,this.groupId,e,t),n=!0}}}catch{}let a=this._toDbPath(e);if(a!==null)try{(i===null||n)&&await Ur(this.db,this.groupId,a)}catch{}}async rm(e,t){await super.rm(e,t);let n=this._toDbPath(e);if(n!==null)try{await Ur(this.db,this.groupId,n)}catch{}}async writeFile(e,t,n){await super.writeFile(e,t,n);let r=this._toDbPath(e);if(r!==null){let t=await this._readPathContent(e);await w(this.db,this.groupId,r,t)}}_basename(e){let t=e.split(`/`).filter(Boolean);return t[t.length-1]||``}_isDirectoryStat(e){return e&&typeof e.isDirectory==`function`?!!e.isDirectory():!!e?.isDirectory}_joinPath(e,t){let n=e.replace(/\/+$/,``);return n?`${n}/${t}`:`/${t}`}_toDbPath(e){return e.startsWith(this.workspacePrefix+`/`)?e.slice(this.workspacePrefix.length+1):e===this.workspacePrefix?``:null}async _readPathContent(e){try{return await super.readFileBuffer(e)}catch{return await super.readFile(e)}}};async function qr(e,t){let n={},r=/* @__PURE__ */ new Set,i=`/home/user`;async function a(o){let s=await Wr(e,t,o);for(let c of s)if(c.endsWith(`/`)){let e=c.slice(0,-1),t=o===`.`?e:`${o}/${e}`;r.add(t),await a(t)}else{let r=o===`.`?c:`${o}/${c}`,a=`${i}/${r}`;n[a]=async()=>{try{return await Ne(e,t,r)}catch{return``}}}}await a(`.`);let o=new Kr(e,t,n,i);for(let e of[...r].sort((e,t)=>e.split(`/`).length-t.split(`/`).length))try{o.mkdirSync(`${i}/${e}`,{recursive:!0})}catch{}return o}async function Jr(e,t,n,r={},i=30,a=!1){try{let i=await qr(e,n),o=await new Ke({fs:i,network:{dangerouslyAllowFullInternetAccess:a,denyPrivateRanges:!a}}).exec(t,{env:{HOME:`/home/user`,PATH:`/usr/bin`,PWD:`/home/user`,...r}});return{stdout:o.stdout||``,stderr:o.stderr||``,exitCode:o.exitCode??0}}catch(e){return{stdout:``,stderr:e instanceof Error?e.message:String(e),exitCode:1}}}function Yr(e){let t=e.stdout||``;return e.stderr&&(t+=(t?`
|