shadow-claw 1.40.1 → 1.41.1
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 +2 -1
- package/dist/cli/build/build.js +1 -1
- package/dist/cli/{chunk-Bfz2NYgD.js → chunk-0IeC97mU.js} +7 -7
- package/dist/cli/chunk-3oLxlxPn.js +1 -0
- package/dist/cli/chunk-63s8NnIS.js +93 -0
- package/dist/cli/{chunk-BXg4-9Rq2.js → chunk-8CrZyP1b2.js} +1 -1
- package/dist/cli/{chunk-BP5Hg6CM.js → chunk-B--ueArB.js} +1 -1
- package/dist/cli/chunk-BATVgkFY.js +17 -0
- package/dist/cli/chunk-BIh7rXlJ2.js +1 -0
- package/dist/cli/{chunk-Drr0VSGA2.js → chunk-BKnTOLLS2.js} +1 -1
- package/dist/cli/{chunk-C5PuRV08.js → chunk-BLMC1Bxv.js} +1 -1
- package/dist/cli/{chunk-B2tNSlFy2.js → chunk-BOigzz2U2.js} +1 -1
- package/dist/cli/{chunk-DOf3DZdR.js → chunk-BOzn335y.js} +1 -1
- package/dist/cli/chunk-BjOeVLb42.js +1 -0
- package/dist/cli/{chunk-DqTx0rRp2.js → chunk-Bjqh5_SU2.js} +1 -1
- package/dist/cli/chunk-BqWBd_jF2.js +1 -0
- package/dist/cli/{chunk-DIbSoQmd2.js → chunk-C6FFByBU2.js} +2 -2
- package/dist/cli/{chunk-Drq18VZe.js → chunk-C9-aL3rF.js} +1 -1
- package/dist/cli/{chunk-BUhqHeEA2.js → chunk-C9czddEh2.js} +2 -2
- package/dist/cli/chunk-CCx8WOwz2.js +1 -0
- package/dist/cli/{chunk-BkMSjVJb.js → chunk-CK6ejMig.js} +1 -1
- package/dist/cli/chunk-CUUERioR2.js +1 -0
- package/dist/cli/chunk-CXAobnJd.js +1 -0
- package/dist/cli/chunk-CY1X0pOF2.js +1 -0
- package/dist/cli/chunk-CZvvgLVv.js +1 -0
- package/dist/cli/chunk-CbcwbfJB.js +1 -0
- package/dist/cli/{chunk-quilB3TV2.js → chunk-Ci9OJGcd2.js} +1 -1
- package/dist/cli/chunk-Cj9wl0qx.js +1 -0
- package/dist/cli/{chunk-3gRhOmGo2.js → chunk-CjJsVrKI2.js} +1 -1
- package/dist/cli/{chunk-CmEfzm-_.js → chunk-ClPZ4Rea.js} +1 -1
- package/dist/cli/chunk-Cmdxoq9q.js +13 -0
- package/dist/cli/{chunk-WMPAfIvV2.js → chunk-DHJCGRuG2.js} +1 -1
- package/dist/cli/{chunk-C7Y2xIk4.js → chunk-DKVkYTV9.js} +1 -1
- package/dist/cli/chunk-DR2XtWRo.js +1 -0
- package/dist/cli/{chunk-BiVJVh_S.js → chunk-DUlIqkaX.js} +7 -7
- package/dist/cli/{chunk-CkpueGaZ2.js → chunk-DjWle8FF2.js} +1 -1
- package/dist/cli/{chunk-CSvHmNOk.js → chunk-DmRXVLfy.js} +1 -1
- package/dist/cli/{chunk-BT1xXZn72.js → chunk-HlSiTC-u2.js} +1 -1
- package/dist/cli/{chunk-da0bsiOn.js → chunk-P4JSeFBI.js} +1 -1
- package/dist/cli/chunk-UcNbHaRQ.js +1 -0
- package/dist/cli/{chunk-BXFHFbEd.js → chunk-UweLmfQS.js} +1 -1
- package/dist/cli/{chunk-CGiXWHTi2.js → chunk-gwpxl-0W2.js} +1 -1
- package/dist/cli/{chunk-NH8koEis2.js → chunk-nmDhxXH_2.js} +1 -1
- package/dist/cli/chunk-p0n_c-I2.js +1 -0
- package/dist/cli/{chunk-D7xP72La.js → chunk-q7r4FosZ.js} +1 -1
- package/dist/cli/cli.js +1 -1
- package/dist/cli/prerender/dsd-shell/prerender-dsd-shell.js +1 -1
- package/dist/electron/main.cjs +1 -1
- package/dist/headless-agent.js +1 -1
- package/dist/lib/{app-routes-BAEMLu9g.js → app-routes-CKkiX12g.js} +7 -2
- package/dist/lib/app-routes-CKkiX12g.js.map +1 -0
- package/dist/lib/components/index.js +26 -26
- 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/syncSlottedSidebarActiveLinks.d.ts +10 -0
- package/dist/lib/components/shadow-claw-a2ui.js +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/{config-CPHDmyTx.js → config-DZkF9LiO.js} +2 -2
- package/dist/lib/{config-CPHDmyTx.js.map → config-DZkF9LiO.js.map} +1 -1
- package/dist/lib/{configurePeerJs-BsJoycQd.js → configurePeerJs-B3IE9BY2.js} +3 -3
- package/dist/lib/{configurePeerJs-BsJoycQd.js.map → configurePeerJs-B3IE9BY2.js.map} +1 -1
- package/dist/lib/{connections-BdIru7bF.js → connections-CalJGWvZ.js} +2 -2
- package/dist/lib/{connections-BdIru7bF.js.map → connections-CalJGWvZ.js.map} +1 -1
- package/dist/lib/{downloadGroupFile-Dn0KsMlV.js → downloadGroupFile-DDE1fIhJ.js} +2 -2
- package/dist/lib/{downloadGroupFile-Dn0KsMlV.js.map → downloadGroupFile-DDE1fIhJ.js.map} +1 -1
- package/dist/lib/{file-viewer-BYrXXu-X.js → file-viewer-Bll2EoGc.js} +5 -5
- package/dist/lib/{file-viewer-BYrXXu-X.js.map → file-viewer-Bll2EoGc.js.map} +1 -1
- package/dist/lib/{getGroupDir-DF-RZO8X.js → getGroupDir-MHv7Lvmp.js} +4 -4
- package/dist/lib/{getGroupDir-DF-RZO8X.js.map → getGroupDir-MHv7Lvmp.js.map} +1 -1
- package/dist/lib/{git-s_0cgKm1.js → git-Bv_M3dgw.js} +3 -3
- package/dist/lib/{git-s_0cgKm1.js.map → git-Bv_M3dgw.js.map} +1 -1
- package/dist/lib/{iframe-sanitizer-DFdda1jJ.js → iframe-sanitizer-C7ZGDjEI.js} +2 -2
- package/dist/lib/{iframe-sanitizer-DFdda1jJ.js.map → iframe-sanitizer-C7ZGDjEI.js.map} +1 -1
- package/dist/lib/{iframe-storage-proxy-qrhZmQyO.js → iframe-storage-proxy-CR8ZYHPd.js} +2 -2
- package/dist/lib/{iframe-storage-proxy-qrhZmQyO.js.map → iframe-storage-proxy-CR8ZYHPd.js.map} +1 -1
- package/dist/lib/index.js +27 -27
- package/dist/lib/{initChatSplitResize-DuNlwCuI.js → initChatSplitResize-DiKTI-wk.js} +2 -2
- package/dist/lib/{initChatSplitResize-DuNlwCuI.js.map → initChatSplitResize-DiKTI-wk.js.map} +1 -1
- package/dist/lib/{initControlPlane-D4UZ4EhV.js → initControlPlane-CzjtQ4aM.js} +15 -15
- package/dist/lib/{initControlPlane-D4UZ4EhV.js.map → initControlPlane-CzjtQ4aM.js.map} +1 -1
- package/dist/lib/{markdown-CRRwbN9h.js → markdown-k8wA9LKy.js} +4 -4
- package/dist/lib/{markdown-CRRwbN9h.js.map → markdown-k8wA9LKy.js.map} +1 -1
- package/dist/lib/{mcp-reconnect-COdZ-cea.js → mcp-reconnect-CGIdfZnS.js} +2 -2
- package/dist/lib/{mcp-reconnect-COdZ-cea.js.map → mcp-reconnect-CGIdfZnS.js.map} +1 -1
- package/dist/lib/{memoryStorage-BsMe2FOQ.js → memoryStorage-DL-Bo3dh.js} +2 -2
- package/dist/lib/{memoryStorage-BsMe2FOQ.js.map → memoryStorage-DL-Bo3dh.js.map} +1 -1
- package/dist/lib/{orchestrator-D9f5fDCb.js → orchestrator-DKHCoikY.js} +11 -11
- package/dist/lib/{orchestrator-D9f5fDCb.js.map → orchestrator-DKHCoikY.js.map} +1 -1
- package/dist/lib/{orchestrator-CMN43L0F.js → orchestrator-Dn1ZOz9B.js} +12 -12
- package/dist/lib/{orchestrator-CMN43L0F.js.map → orchestrator-Dn1ZOz9B.js.map} +1 -1
- package/dist/lib/{peerjs-6u8KtenE.js → peerjs-BK41iBvP.js} +7 -7
- package/dist/lib/{peerjs-6u8KtenE.js.map → peerjs-BK41iBvP.js.map} +1 -1
- package/dist/lib/{push-client-DCnB2-OU.js → push-client-DKgVFD2Z.js} +3 -3
- package/dist/lib/{push-client-DCnB2-OU.js.map → push-client-DKgVFD2Z.js.map} +1 -1
- package/dist/lib/{readGroupFileBytes-nKNJ6sbl.js → readGroupFileBytes-CgU_UfGv.js} +2 -2
- package/dist/lib/{readGroupFileBytes-nKNJ6sbl.js.map → readGroupFileBytes-CgU_UfGv.js.map} +1 -1
- package/dist/lib/{shadow-claw-4x3LqlII.js → shadow-claw-CtCj5Rn_.js} +121 -16
- package/dist/lib/shadow-claw-CtCj5Rn_.js.map +1 -0
- package/dist/lib/{shadow-claw-a2ui-Dipe8nY2.js → shadow-claw-a2ui-CvK5w940.js} +2 -2
- package/dist/lib/{shadow-claw-a2ui-Dipe8nY2.js.map → shadow-claw-a2ui-CvK5w940.js.map} +1 -1
- package/dist/lib/{shadow-claw-accounts-BgCkz3Zv.js → shadow-claw-accounts-Br3XdHro.js} +3 -3
- package/dist/lib/{shadow-claw-accounts-BgCkz3Zv.js.map → shadow-claw-accounts-Br3XdHro.js.map} +1 -1
- package/dist/lib/{shadow-claw-channel-config-CIm_Bxd2.js → shadow-claw-channel-config-Da2dN19M.js} +3 -3
- package/dist/lib/{shadow-claw-channel-config-CIm_Bxd2.js.map → shadow-claw-channel-config-Da2dN19M.js.map} +1 -1
- package/dist/lib/{shadow-claw-channels-CaceK52s.js → shadow-claw-channels-BofYHgz8.js} +3 -3
- package/dist/lib/{shadow-claw-channels-CaceK52s.js.map → shadow-claw-channels-BofYHgz8.js.map} +1 -1
- package/dist/lib/{shadow-claw-chat-BD18-mAR.js → shadow-claw-chat-Dw32DPV2.js} +12 -12
- package/dist/lib/{shadow-claw-chat-BD18-mAR.js.map → shadow-claw-chat-Dw32DPV2.js.map} +1 -1
- package/dist/lib/{shadow-claw-control-plane-U6LsfRPm.js → shadow-claw-control-plane-CwFotFDh.js} +7 -7
- package/dist/lib/{shadow-claw-control-plane-U6LsfRPm.js.map → shadow-claw-control-plane-CwFotFDh.js.map} +1 -1
- package/dist/lib/{shadow-claw-conversations-CDsza_oB.js → shadow-claw-conversations-0UXge23k.js} +5 -5
- package/dist/lib/{shadow-claw-conversations-CDsza_oB.js.map → shadow-claw-conversations-0UXge23k.js.map} +1 -1
- package/dist/lib/{shadow-claw-file-viewer-CuDhkVcL.js → shadow-claw-file-viewer-CAsn9NxH.js} +10 -10
- package/dist/lib/{shadow-claw-file-viewer-CuDhkVcL.js.map → shadow-claw-file-viewer-CAsn9NxH.js.map} +1 -1
- package/dist/lib/{shadow-claw-files-BI0P3m8a.js → shadow-claw-files-xGGhsHNH.js} +9 -9
- package/dist/lib/{shadow-claw-files-BI0P3m8a.js.map → shadow-claw-files-xGGhsHNH.js.map} +1 -1
- package/dist/lib/{shadow-claw-git-xRApLEMN.js → shadow-claw-git-B606hcMU.js} +6 -6
- package/dist/lib/{shadow-claw-git-xRApLEMN.js.map → shadow-claw-git-B606hcMU.js.map} +1 -1
- package/dist/lib/{shadow-claw-integrations-B2e1Nfg1.js → shadow-claw-integrations-Bwq5cba1.js} +4 -4
- package/dist/lib/{shadow-claw-integrations-B2e1Nfg1.js.map → shadow-claw-integrations-Bwq5cba1.js.map} +1 -1
- package/dist/lib/{shadow-claw-llm-Bc2mWuGb.js → shadow-claw-llm-BgpcMBIy.js} +6 -6
- package/dist/lib/{shadow-claw-llm-Bc2mWuGb.js.map → shadow-claw-llm-BgpcMBIy.js.map} +1 -1
- package/dist/lib/{shadow-claw-mcp-remote-D_Bh3aeC.js → shadow-claw-mcp-remote-DvQCA-Bk.js} +4 -4
- package/dist/lib/{shadow-claw-mcp-remote-D_Bh3aeC.js.map → shadow-claw-mcp-remote-DvQCA-Bk.js.map} +1 -1
- package/dist/lib/{shadow-claw-networking-F5W3n5ci.js → shadow-claw-networking-Cxvf9c7E.js} +2 -2
- package/dist/lib/{shadow-claw-networking-F5W3n5ci.js.map → shadow-claw-networking-Cxvf9c7E.js.map} +1 -1
- package/dist/lib/{shadow-claw-notifications-lvMt9WJ1.js → shadow-claw-notifications-CGVcFYBy.js} +3 -3
- package/dist/lib/{shadow-claw-notifications-lvMt9WJ1.js.map → shadow-claw-notifications-CGVcFYBy.js.map} +1 -1
- package/dist/lib/{shadow-claw-page-header-6gq6EMqX.js → shadow-claw-page-header-DAYz3I_o.js} +2 -2
- package/dist/lib/{shadow-claw-page-header-6gq6EMqX.js.map → shadow-claw-page-header-DAYz3I_o.js.map} +1 -1
- package/dist/lib/{shadow-claw-pages-Bo8_z2S-.js → shadow-claw-pages-BLeEZb9k.js} +24 -12
- package/dist/lib/shadow-claw-pages-BLeEZb9k.js.map +1 -0
- package/dist/lib/{shadow-claw-peerjs-DRTLCVDQ.js → shadow-claw-peerjs-BcFnbK74.js} +3 -3
- package/dist/lib/{shadow-claw-peerjs-DRTLCVDQ.js.map → shadow-claw-peerjs-BcFnbK74.js.map} +1 -1
- package/dist/lib/{shadow-claw-settings-D00B4p4L.js → shadow-claw-settings-B7o0Z4hu.js} +9 -9
- package/dist/lib/{shadow-claw-settings-D00B4p4L.js.map → shadow-claw-settings-B7o0Z4hu.js.map} +1 -1
- package/dist/lib/{shadow-claw-storage-DgMe7-Zo.js → shadow-claw-storage-afMVqB7E.js} +5 -5
- package/dist/lib/{shadow-claw-storage-DgMe7-Zo.js.map → shadow-claw-storage-afMVqB7E.js.map} +1 -1
- package/dist/lib/{shadow-claw-task-server-D103YOuI.js → shadow-claw-task-server-B9-MQjl6.js} +2 -2
- package/dist/lib/{shadow-claw-task-server-D103YOuI.js.map → shadow-claw-task-server-B9-MQjl6.js.map} +1 -1
- package/dist/lib/{shadow-claw-tasks-6OhALkq1.js → shadow-claw-tasks-Dc4BC-t-.js} +8 -8
- package/dist/lib/{shadow-claw-tasks-6OhALkq1.js.map → shadow-claw-tasks-Dc4BC-t-.js.map} +1 -1
- package/dist/lib/{shadow-claw-terminal-BGtxA1qD.js → shadow-claw-terminal-BINcTdsk.js} +2 -2
- package/dist/lib/{shadow-claw-terminal-BGtxA1qD.js.map → shadow-claw-terminal-BINcTdsk.js.map} +1 -1
- package/dist/lib/{shadow-claw-tools-OeIwAnnd.js → shadow-claw-tools-BjFgXNLR.js} +7 -7
- package/dist/lib/{shadow-claw-tools-OeIwAnnd.js.map → shadow-claw-tools-BjFgXNLR.js.map} +1 -1
- package/dist/lib/{shadow-claw-webvm-gVFZ197u.js → shadow-claw-webvm-Xe3ByMDw.js} +3 -3
- package/dist/lib/{shadow-claw-webvm-gVFZ197u.js.map → shadow-claw-webvm-Xe3ByMDw.js.map} +1 -1
- package/dist/lib/subsystems/mcp/webmcp.d.ts +64 -0
- package/dist/lib/{syncWebMcpRegistration-Bbph0XZl.js → syncWebMcpRegistration-D7alChz0.js} +21 -6
- package/dist/lib/syncWebMcpRegistration-D7alChz0.js.map +1 -0
- package/dist/lib/{tools-D0OlSzMD.js → tools-Cmhpk3X8.js} +4 -4
- package/dist/lib/{tools-D0OlSzMD.js.map → tools-Cmhpk3X8.js.map} +1 -1
- package/dist/lib/utils/index.js +1 -1
- package/dist/lib/utils/namespacedStorage.js +1 -1
- package/dist/lib/utils/utils.js +1 -1
- package/dist/lib/{utils-DYdrO2KI.js → utils-CzgKe_XZ.js} +4 -4
- package/dist/lib/{utils-DYdrO2KI.js.map → utils-CzgKe_XZ.js.map} +1 -1
- package/dist/lib/{webmcp-D2bocsgh.js → webmcp-oEP9YpR2.js} +119 -3
- package/dist/lib/{webmcp-D2bocsgh.js.map → webmcp-oEP9YpR2.js.map} +1 -1
- 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 +8 -2
- package/dist/public/README.md +2 -1
- package/dist/public/agent.worker.js +1 -1
- package/dist/public/app-routes-C6-H2zPH.js +1 -0
- 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-pages/shadow-claw-pages.css +1 -1
- package/dist/public/{config-D4lVqMs8.js → config-Dewnqegf.js} +1 -1
- package/dist/public/{configurePeerJs-DDOAVSaH.js → configurePeerJs-CaPU2sN5.js} +1 -1
- package/dist/public/{connections-CiukjGiH.js → connections-CwE7jE9l.js} +1 -1
- package/dist/public/{custom-element-security-piU2U-Ec.js → custom-element-security-DLgHMf5R.js} +1 -1
- package/dist/public/docs/README.md +1 -0
- package/dist/public/docs/example/article/index.html +4 -4
- package/dist/public/docs/guides/publishing-to-github-pages.md +95 -6
- package/dist/public/docs/publishing/index.html +4 -4
- package/dist/public/docs/skill-creator/index.html +4 -4
- package/dist/public/docs/subsystems/pages.md +10 -3
- package/dist/public/docs/subsystems/theming.md +242 -0
- package/dist/public/docs/subsystems/webmcp.md +89 -1
- package/dist/public/{downloadGroupFile-BiZQYY-O.js → downloadGroupFile-ChWHuap_.js} +1 -1
- package/dist/public/e2e/README.md +3 -2
- package/dist/public/{e2e-bridge-CybB810Q.js → e2e-bridge-BkaldjV2.js} +1 -1
- package/dist/public/{file-viewer-DLUBvOVD.js → file-viewer-Df4qUJCn.js} +1 -1
- package/dist/public/{getGroupDir-CLz5c8cg.js → getGroupDir-CeSr4fzS.js} +1 -1
- package/dist/public/{git-Ba8AeviI.js → git-Bscc1tK-.js} +2 -2
- package/dist/public/{iframe-sanitizer-CKOO7cxp.js → iframe-sanitizer-BVdkQsor.js} +1 -1
- package/dist/public/{iframe-storage-proxy-BvRiccH0.js → iframe-storage-proxy-Cg8aFw7o.js} +1 -1
- package/dist/public/index.css +1 -1
- package/dist/public/index.html +4 -4
- package/dist/public/index.js +1 -1
- package/dist/public/{initChatSplitResize-osJXM2gu.js → initChatSplitResize-C3Rp1LeZ.js} +1 -1
- package/dist/public/{initControlPlane-CNggzsRw.js → initControlPlane-C1pnzG16.js} +1 -1
- package/dist/public/llms.txt +2 -2
- package/dist/public/main/index.html +4 -4
- package/dist/public/main/memory/index.html +4 -4
- package/dist/public/{markdown-CZA-Ye2Q.js → markdown-D3A902nT.js} +1 -1
- package/dist/public/{mcp-reconnect-BK1bYBdC.js → mcp-reconnect-BJWxQBm_.js} +1 -1
- package/dist/public/{memoryStorage-Bew1X8Uy.js → memoryStorage-ykv-Ri-y.js} +1 -1
- package/dist/public/{orchestrator-D6tel2Zp.js → orchestrator-BVnC4Vtt.js} +2 -2
- package/dist/public/{orchestrator-Dc_Q73La.js → orchestrator-CQcc7OFA.js} +2 -2
- package/dist/public/{peerjs-CYs1F7sq.js → peerjs-CYC2cI1Y.js} +1 -1
- package/dist/public/{push-client-_HUyJlFJ.js → push-client-BJrnOULM.js} +1 -1
- package/dist/public/service-worker/fetch-proxy.js +1 -1
- package/dist/public/service-worker.js +1 -1
- package/dist/public/{shadow-claw-Dabb2AEp.js → shadow-claw-WwfOu-tu.js} +33 -3
- package/dist/public/{shadow-claw-accounts-BqGrm47Z.js → shadow-claw-accounts-BFZxrPsH.js} +1 -1
- package/dist/public/{shadow-claw-channels-Ci2UPaaA.js → shadow-claw-channels-C0w0c1EF.js} +1 -1
- package/dist/public/{shadow-claw-chat-BxR6cBYQ.js → shadow-claw-chat-DIJ0A-QN.js} +1 -1
- package/dist/public/{shadow-claw-control-plane-C1A-CZ9H.js → shadow-claw-control-plane-DZoxUd-1.js} +2 -2
- package/dist/public/{shadow-claw-conversations-DcwG05-H.js → shadow-claw-conversations-DMyG_5zj.js} +1 -1
- package/dist/public/{shadow-claw-file-viewer-CDs1QGXk.js → shadow-claw-file-viewer-DYgZjZb9.js} +1 -1
- package/dist/public/{shadow-claw-files-B774Xz1d.js → shadow-claw-files-DIOUdKJr.js} +1 -1
- package/dist/public/{shadow-claw-git-CTIPP0vs.js → shadow-claw-git-if5S0QJr.js} +2 -2
- package/dist/public/{shadow-claw-integrations-CjtkA6l0.js → shadow-claw-integrations-BQt4hcWe.js} +1 -1
- package/dist/public/{shadow-claw-llm-DfmITHde.js → shadow-claw-llm-9uf1KFA0.js} +2 -2
- package/dist/public/{shadow-claw-mcp-remote-BPuV22So.js → shadow-claw-mcp-remote-COpNIzJd.js} +1 -1
- package/dist/public/{shadow-claw-networking-DEMMygy0.js → shadow-claw-networking-AOVRUn6B.js} +1 -1
- package/dist/public/{shadow-claw-notifications-B9Xhcj1P.js → shadow-claw-notifications-CKB-W1TA.js} +1 -1
- package/dist/public/{shadow-claw-page-header-CAXokjQy.js → shadow-claw-page-header-D4LmUigA.js} +1 -1
- package/dist/public/{shadow-claw-pages-BRQw8bTm.js → shadow-claw-pages-BpHRY4vH.js} +12 -3
- package/dist/public/{shadow-claw-settings-BGrDNyqh.js → shadow-claw-settings-CE-aUo_J.js} +3 -3
- package/dist/public/{shadow-claw-storage-DK3pf11w.js → shadow-claw-storage-CFKC-Y3V.js} +1 -1
- package/dist/public/{shadow-claw-task-server-CMp5Vjza.js → shadow-claw-task-server-B_ZjqK4B.js} +1 -1
- package/dist/public/{shadow-claw-tasks-BO8aXM2B.js → shadow-claw-tasks-CGsEv48K.js} +1 -1
- package/dist/public/{shadow-claw-terminal-BSeTuyDa.js → shadow-claw-terminal-DcaS7cPH.js} +1 -1
- package/dist/public/{shadow-claw-tools-Bj6DLZ-2.js → shadow-claw-tools-Cnu9hKy0.js} +1 -1
- package/dist/public/{shadow-claw-webvm-M7d5RH8H.js → shadow-claw-webvm-BB8SFvJ8.js} +1 -1
- package/dist/public/syncWebMcpRegistration-D2Zx4oA1.js +1 -0
- package/dist/public/theme-init.js +1 -1
- package/dist/public/{tools-nysPKnGT.js → tools-sOLCHTj8.js} +1 -1
- package/dist/public/{webmcp-Bo3KTgRb.js → webmcp-YFt6vM1_.js} +1 -1
- package/dist/server.js +188 -188
- package/package.json +1 -1
- package/src/cli/build/build.ts +18 -11
- package/src/cli/prerender/dsd-shell/prerender-dsd-shell.test.ts +4 -1
- package/src/cli/prerender/dsd-shell/prerender-dsd-shell.ts +13 -1
- package/src/cli/prerender/pretty-paths/prerender-pretty-paths.ts +22 -0
- package/src/cli/prerender/utils/insert-before-closing-head.test.ts +34 -1
- package/src/cli/prerender/utils/insert-before-closing-head.ts +20 -6
- package/src/cli/site-config/apply.test.ts +90 -0
- package/src/cli/site-config/apply.ts +189 -22
- package/src/components/shadow-claw/shadow-claw.css +26 -0
- package/src/components/shadow-claw/shadow-claw.html +4 -0
- package/src/components/shadow-claw/utils/applyRoute.ts +3 -0
- package/src/components/shadow-claw/utils/bindEventListeners.test.ts +6 -0
- package/src/components/shadow-claw/utils/bindEventListeners.ts +30 -1
- package/src/components/shadow-claw/utils/getRoute.test.ts +52 -0
- package/src/components/shadow-claw/utils/getRoute.ts +18 -0
- package/src/components/shadow-claw/utils/navigateToRoute.test.ts +21 -0
- package/src/components/shadow-claw/utils/navigateToRoute.ts +10 -0
- package/src/components/shadow-claw/utils/sidebarVisibility.ts +12 -4
- package/src/components/shadow-claw/utils/syncSlottedSidebarActiveLinks.test.ts +93 -0
- package/src/components/shadow-claw/utils/syncSlottedSidebarActiveLinks.ts +100 -0
- package/src/components/shadow-claw-pages/shadow-claw-pages.css +10 -1
- package/src/components/shadow-claw-pages/utils/removePreviewIframe.ts +3 -0
- package/src/core/orchestrator/utils/syncWebMcpRegistration.test.ts +52 -0
- package/src/core/orchestrator/utils/syncWebMcpRegistration.ts +28 -1
- package/src/server/middleware/static-files.test.ts +36 -0
- package/src/server/middleware/static-files.ts +14 -6
- package/src/storage/staticRouting.test.ts +36 -0
- package/src/storage/staticRouting.ts +31 -3
- package/src/subsystems/mcp/webmcp.test.ts +255 -0
- package/src/subsystems/mcp/webmcp.ts +253 -0
- package/dist/cli/chunk-00GAzVPl2.js +0 -1
- package/dist/cli/chunk-2hnFoNNC.js +0 -1
- package/dist/cli/chunk-BKQL4nzF2.js +0 -1
- package/dist/cli/chunk-BQ4K3fqj2.js +0 -1
- package/dist/cli/chunk-BVCGo6uf2.js +0 -1
- package/dist/cli/chunk-Bc9nRNyN.js +0 -11
- package/dist/cli/chunk-BcTH_-FL.js +0 -1
- package/dist/cli/chunk-BmD_sPRt.js +0 -1
- package/dist/cli/chunk-BsxNqqer.js +0 -1
- package/dist/cli/chunk-CCcF5T-c.js +0 -1
- package/dist/cli/chunk-CFhvwUeL.js +0 -91
- package/dist/cli/chunk-CwWtvULn.js +0 -1
- package/dist/cli/chunk-DID5VvOG.js +0 -17
- package/dist/cli/chunk-Drf-hXIR2.js +0 -1
- package/dist/cli/chunk-Dt5HNYVi.js +0 -1
- package/dist/cli/chunk-DwZQi9Ax.js +0 -1
- package/dist/cli/chunk-m9ZX7TyF2.js +0 -1
- package/dist/lib/app-routes-BAEMLu9g.js.map +0 -1
- package/dist/lib/shadow-claw-4x3LqlII.js.map +0 -1
- package/dist/lib/shadow-claw-pages-Bo8_z2S-.js.map +0 -1
- package/dist/lib/syncWebMcpRegistration-Bbph0XZl.js.map +0 -1
- package/dist/public/app-routes-BMQ4HFaM.js +0 -1
- package/dist/public/syncWebMcpRegistration-4bT0YUyZ.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-routes-CKkiX12g.js","names":["trimSlashes"],"sources":["../../src/storage/staticRouting.ts","../../src/core/app-routes.ts"],"sourcesContent":["/// <reference lib=\"dom\" />\nimport { applyBasePath, type ShadowClawAppRoute } from \"../core/app-routes.js\";\n\nexport interface StaticRouteDefinition {\n prettyPath: string;\n}\n\nexport interface StaticRoutesManifest {\n routes: Record<string, StaticRouteDefinition>;\n subRoutes?: string[] | Record<string, string>;\n}\n\nexport const STATIC_ROUTING_SCRIPT_ID = \"shadow-claw-static-routing\";\nexport const STATIC_ROUTING_MANIFEST_PATH = \"static-routing.json\";\n\nlet cachedManifest: StaticRoutesManifest | null = null;\n\nexport function resolveStaticRoutingManifestUrl(): string {\n const targetPath = applyBasePath(`/${STATIC_ROUTING_MANIFEST_PATH}`);\n\n if (typeof window !== \"undefined\" && window.location?.origin) {\n try {\n return new URL(targetPath, window.location.origin).toString();\n } catch {\n return targetPath;\n }\n }\n\n return targetPath;\n}\n\nfunction trimSlashes(value: string): string {\n return value.replace(/^\\/+|\\/+$/g, \"\");\n}\n\nfunction normalizePrettyPathKey(path: string): string {\n let clean = trimSlashes(path);\n if (clean.endsWith(\"/index.html\")) {\n clean = clean.slice(0, -\"/index.html\".length);\n } else if (clean.endsWith(\"index.html\")) {\n clean = clean.slice(0, -\"index.html\".length);\n }\n return trimSlashes(clean);\n}\n\nfunction parseCanonicalRouteKey(\n canonicalKey: string,\n): ShadowClawAppRoute | null {\n const normalizedKey = trimSlashes(canonicalKey);\n const parts = normalizedKey.split(\"/\").filter(Boolean);\n\n if (parts.length === 0) {\n return null;\n }\n\n const first = parts[0].toLowerCase();\n if (first === \"pages\") {\n if (parts.length >= 3) {\n const rawGroup = parts[1];\n const groupId =\n rawGroup === \"main\"\n ? \"br:main\"\n : rawGroup.startsWith(\"br-\")\n ? `br:${rawGroup.slice(3)}`\n : rawGroup;\n const filePath = parts.slice(2).join(\"/\");\n return {\n page: \"pages\",\n groupId,\n path: filePath,\n };\n }\n return {\n page: \"pages\",\n groupId: \"br:main\",\n path: parts.slice(1).join(\"/\"),\n };\n }\n\n if (first === \"files\") {\n const rawGroup = parts[1] || \"main\";\n const groupId =\n rawGroup === \"main\"\n ? \"br:main\"\n : rawGroup.startsWith(\"br-\")\n ? `br:${rawGroup.slice(3)}`\n : rawGroup;\n const filePath = parts.slice(2).join(\"/\");\n return {\n page: \"files\",\n groupId,\n path: filePath || undefined,\n };\n }\n\n if (first === \"chat\") {\n const rawGroup = parts[1] || \"main\";\n const groupId =\n rawGroup === \"main\"\n ? \"br:main\"\n : rawGroup.startsWith(\"br-\")\n ? `br:${rawGroup.slice(3)}`\n : rawGroup;\n return {\n page: \"chat\",\n groupId,\n };\n }\n\n if (first === \"tasks\") {\n const rawGroup = parts[1] || \"main\";\n const groupId =\n rawGroup === \"main\"\n ? \"br:main\"\n : rawGroup.startsWith(\"br-\")\n ? `br:${rawGroup.slice(3)}`\n : rawGroup;\n return {\n page: \"tasks\",\n groupId,\n };\n }\n\n // If format is \"posts/xyz.md\" or \"main/posts/xyz.md\"\n if (first === \"main\") {\n return {\n page: \"pages\",\n groupId: \"br:main\",\n path: parts.slice(1).join(\"/\"),\n };\n }\n\n return {\n page: \"pages\",\n groupId: \"br:main\",\n path: normalizedKey,\n };\n}\n\nexport function getEmbeddedStaticRoutesManifest(): StaticRoutesManifest | null {\n if (typeof document !== \"undefined\") {\n const scriptEl = document.getElementById(STATIC_ROUTING_SCRIPT_ID);\n if (scriptEl && scriptEl.textContent) {\n try {\n const parsed = JSON.parse(scriptEl.textContent);\n if (parsed && typeof parsed === \"object\" && parsed.routes) {\n return parsed as StaticRoutesManifest;\n }\n } catch (err) {\n console.warn(\"Failed to parse embedded static routing manifest:\", err);\n }\n }\n }\n return null;\n}\n\nexport async function getStaticRoutingManifest(): Promise<StaticRoutesManifest> {\n if (cachedManifest) {\n return cachedManifest;\n }\n\n let baseManifest = getEmbeddedStaticRoutesManifest();\n const baseUrl = resolveStaticRoutingManifestUrl();\n\n if (!baseManifest) {\n if (typeof fetch === \"function\") {\n try {\n const res = await fetch(baseUrl);\n if (res.ok) {\n const parsed = await res.json();\n if (parsed && typeof parsed === \"object\") {\n baseManifest = parsed as StaticRoutesManifest;\n }\n }\n } catch {\n // Fetch unavailable or failed\n }\n }\n }\n\n if (!baseManifest) {\n return { routes: {} };\n }\n\n if (!baseManifest.routes) {\n baseManifest.routes = {};\n }\n\n // Removed eager recursive fetch of subRoutes for CSR to support lazy loading\n // Subroutes will be fetched on demand via resolvePrettyPathToRouteAsync.\n\n cachedManifest = baseManifest;\n return cachedManifest;\n}\n\nexport function setStaticRoutesManifest(\n manifest: StaticRoutesManifest | null,\n): void {\n cachedManifest = manifest;\n}\n\nexport function clearStaticRoutesManifestCache(): void {\n cachedManifest = null;\n}\n\nexport function resolvePrettyPathToRoute(\n pathname: string,\n manifest?: StaticRoutesManifest | null,\n): ShadowClawAppRoute | null {\n const routesManifest =\n manifest || cachedManifest || getEmbeddedStaticRoutesManifest();\n if (!routesManifest || !routesManifest.routes) {\n return null;\n }\n\n const normalizedPath = normalizePrettyPathKey(pathname);\n\n for (const [canonicalKey, routeDef] of Object.entries(\n routesManifest.routes,\n )) {\n if (!routeDef || !routeDef.prettyPath) {\n continue;\n }\n\n const normalizedPretty = normalizePrettyPathKey(routeDef.prettyPath);\n if (normalizedPretty === normalizedPath) {\n return parseCanonicalRouteKey(canonicalKey);\n }\n }\n\n return null;\n}\n\nexport async function resolvePrettyPathToRouteAsync(\n pathname: string,\n): Promise<ShadowClawAppRoute | null> {\n const syncMatch = resolvePrettyPathToRoute(pathname);\n if (syncMatch) return syncMatch;\n\n const manifest = await getStaticRoutingManifest();\n if (!manifest || !manifest.subRoutes) return null;\n\n let currentManifest = manifest;\n let currentManifestUrl = resolveStaticRoutingManifestUrl();\n let maxDepth = 5;\n\n while (currentManifest && currentManifest.subRoutes && maxDepth > 0) {\n let matchedSubRouteUrl: string | null = null;\n const normalizedPath = normalizePrettyPathKey(pathname);\n\n if (Array.isArray(currentManifest.subRoutes)) {\n for (const sub of currentManifest.subRoutes) {\n let subDir = sub.replace(/\\/routes\\.json$/, \"\");\n if (normalizedPath.startsWith(subDir)) {\n matchedSubRouteUrl = sub;\n break;\n }\n }\n } else if (typeof currentManifest.subRoutes === \"object\") {\n let longestMatch = \"\";\n for (const [prefix, sub] of Object.entries(currentManifest.subRoutes)) {\n const normPrefix = normalizePrettyPathKey(prefix);\n if (\n normalizedPath.startsWith(normPrefix) &&\n normPrefix.length > longestMatch.length\n ) {\n longestMatch = normPrefix;\n matchedSubRouteUrl = sub;\n }\n }\n }\n\n if (!matchedSubRouteUrl || typeof fetch !== \"function\") {\n break;\n }\n\n try {\n let subUrl = matchedSubRouteUrl;\n try {\n if (\n matchedSubRouteUrl.startsWith(\"http://\") ||\n matchedSubRouteUrl.startsWith(\"https://\")\n ) {\n subUrl = matchedSubRouteUrl;\n } else if (matchedSubRouteUrl.startsWith(\"/\")) {\n const withBase = applyBasePath(matchedSubRouteUrl);\n subUrl =\n typeof window !== \"undefined\" && window.location?.origin\n ? new URL(withBase, window.location.origin).toString()\n : withBase;\n } else {\n subUrl = new URL(matchedSubRouteUrl, currentManifestUrl).toString();\n }\n } catch {\n // Ignore\n }\n\n const res = await fetch(subUrl);\n if (!res.ok) break;\n\n const parsed = await res.json();\n if (!parsed || typeof parsed !== \"object\") break;\n\n if (parsed.routes) {\n Object.assign(manifest.routes, parsed.routes);\n }\n\n const found = resolvePrettyPathToRoute(pathname, manifest);\n if (found) return found;\n\n // Continue to next level if there are subRoutes\n currentManifest = parsed;\n currentManifestUrl = subUrl;\n maxDepth--;\n } catch (e) {\n console.warn(\"Failed to lazy load subRoute:\", matchedSubRouteUrl, e);\n break;\n }\n }\n\n return null;\n}\n\nexport function resolveRouteToPrettyPath(\n route: ShadowClawAppRoute,\n manifest?: StaticRoutesManifest | null,\n): string | null {\n const routesManifest =\n manifest || cachedManifest || getEmbeddedStaticRoutesManifest();\n if (!routesManifest || !routesManifest.routes) {\n return null;\n }\n\n const { page, groupId, path } = route;\n if (!page) {\n return null;\n }\n\n const normalizedGroupId =\n groupId === \"br:main\" || groupId === \"main\"\n ? \"main\"\n : groupId?.startsWith(\"br:\")\n ? `br-${groupId.slice(3)}`\n : groupId;\n\n const candidateKeys: string[] = [];\n if (page === \"pages\" && path) {\n const cleanPath = trimSlashes(path);\n if (normalizedGroupId === \"main\") {\n candidateKeys.push(`/pages/main/${cleanPath}`);\n candidateKeys.push(`pages/main/${cleanPath}`);\n candidateKeys.push(`/pages/br:main/${cleanPath}`);\n candidateKeys.push(`/pages/br-main/${cleanPath}`);\n candidateKeys.push(`/main/${cleanPath}`);\n candidateKeys.push(`main/${cleanPath}`);\n candidateKeys.push(`/${cleanPath}`);\n candidateKeys.push(cleanPath);\n } else if (normalizedGroupId) {\n candidateKeys.push(`/pages/${normalizedGroupId}/${cleanPath}`);\n candidateKeys.push(`pages/${normalizedGroupId}/${cleanPath}`);\n candidateKeys.push(`/pages/${groupId}/${cleanPath}`);\n }\n } else if (page === \"pages\" && !path) {\n if (normalizedGroupId === \"main\" || !normalizedGroupId) {\n candidateKeys.push(\n \"/pages/main/index.html\",\n \"pages/main/index.html\",\n \"/pages/br:main/index.html\",\n \"/pages/br-main/index.html\",\n \"/main/index.html\",\n \"main/index.html\",\n \"/index.html\",\n \"index.html\",\n \"/pages/main\",\n \"pages/main\",\n \"/pages\",\n \"pages\",\n );\n } else if (normalizedGroupId) {\n candidateKeys.push(\n `/pages/${normalizedGroupId}/index.html`,\n `pages/${normalizedGroupId}/index.html`,\n `/pages/${groupId}/index.html`,\n );\n }\n } else if (page === \"files\" && path) {\n const cleanPath = trimSlashes(path);\n if (normalizedGroupId) {\n candidateKeys.push(`/files/${normalizedGroupId}/${cleanPath}`);\n candidateKeys.push(`files/${normalizedGroupId}/${cleanPath}`);\n candidateKeys.push(`/files/${groupId}/${cleanPath}`);\n }\n }\n\n for (const candidate of candidateKeys) {\n const candidateNormalized = trimSlashes(candidate);\n for (const [canonicalKey, routeDef] of Object.entries(\n routesManifest.routes,\n )) {\n if (\n trimSlashes(canonicalKey) === candidateNormalized &&\n routeDef?.prettyPath\n ) {\n return routeDef.prettyPath;\n }\n }\n }\n\n if (page === \"pages\" && !path) {\n for (const routeDef of Object.values(routesManifest.routes)) {\n if (routeDef && routeDef.prettyPath === \"/\") {\n return \"/\";\n }\n }\n }\n\n return null;\n}\n","import {\n resolvePrettyPathToRoute,\n resolveRouteToPrettyPath,\n resolvePrettyPathToRouteAsync,\n} from \"../storage/staticRouting.js\";\n\nexport type ShadowClawPageRoute =\n | \"chat\"\n | \"files\"\n | \"tasks\"\n | \"pages\"\n | \"settings\"\n | \"tools\"\n | \"channels\";\n\nexport interface ShadowClawAppRoute {\n page: ShadowClawPageRoute;\n groupId?: string;\n path?: string;\n anchor?: string;\n}\n\nfunction encodePathSegment(value: string): string {\n if (value === \"br:main\") {\n return \"main\";\n }\n if (value.startsWith(\"br:\")) {\n return `br-${value.slice(3)}`;\n }\n\n return encodeURIComponent(value);\n}\n\nexport function decodePathSegment(value: string): string {\n try {\n return decodeURIComponent(value);\n } catch {\n return value;\n }\n}\n\nlet cachedBasePath: string | null = null;\n\nconst VALID_PAGES = new Set([\n \"chat\",\n \"files\",\n \"tasks\",\n \"pages\",\n \"settings\",\n \"tools\",\n \"channels\",\n]);\n\nexport function resetAppBasePathCache(): void {\n cachedBasePath = null;\n}\n\nif (typeof globalThis !== \"undefined\") {\n (globalThis as any).__applyBasePathCacheReset = resetAppBasePathCache;\n}\n\nexport function getDeploymentNamespace(): string {\n const globalObj =\n typeof window !== \"undefined\"\n ? window\n : typeof self !== \"undefined\"\n ? self\n : globalThis;\n\n if (globalObj && (globalObj as any).__SHADOWCLAW_DEPLOY_ID__) {\n const customId = String((globalObj as any).__SHADOWCLAW_DEPLOY_ID__).trim();\n if (customId) {\n return customId.replace(/[^a-zA-Z0-9_-]/g, \"-\");\n }\n }\n\n const proc = (globalThis as any).process;\n if (proc && proc.env && proc.env.SHADOWCLAW_DEPLOY_ID) {\n const envId = String(proc.env.SHADOWCLAW_DEPLOY_ID).trim();\n if (envId) {\n return envId.replace(/[^a-zA-Z0-9_-]/g, \"-\");\n }\n }\n\n const basePath = getAppBasePath();\n if (!basePath || basePath === \"/\") {\n return \"\";\n }\n\n const clean = basePath.replace(/^\\/+|\\/+$/g, \"\");\n return clean.replace(/[^a-zA-Z0-9_-]/g, \"-\");\n}\n\nexport function getAppBasePath(): string {\n if (cachedBasePath !== null) {\n return cachedBasePath;\n }\n\n // In Web Worker environment:\n const isWorker =\n typeof window === \"undefined\" ||\n (typeof (globalThis as any).WorkerGlobalScope !== \"undefined\" &&\n typeof self !== \"undefined\" &&\n self instanceof (globalThis as any).WorkerGlobalScope);\n\n if (isWorker && typeof self !== \"undefined\" && (self as any).location) {\n const workerPath = (self as any).location.pathname || \"/\";\n const parts = workerPath.split(\"/\").filter(Boolean);\n\n // In a Web Worker, the pathname is always the URL of a script file (e.g. /agent.worker.js or /shadow-claw/agent.worker.js).\n // If there is only 1 segment (e.g. [\"agent.worker.js\"]), the worker is hosted at the root domain.\n if (parts.length <= 1) {\n cachedBasePath = \"/\";\n\n return cachedBasePath;\n }\n\n const first = parts[0].toLowerCase();\n const isRootFileOrDir =\n first === \"service-worker.js\" ||\n first === \"sw.js\" ||\n first === \"manifest.json\" ||\n first === \"sitemap.xml\" ||\n first === \"favicon.ico\" ||\n first === \"index.html\" ||\n first === \"service-worker\" ||\n first === \"assets\" ||\n first === \"dist\" ||\n first === \"public\";\n\n // If there are 2 segments and the first is an internal asset/service-worker folder (e.g. /service-worker/init.js),\n // it's hosted at the root domain.\n if (isRootFileOrDir && parts.length === 2) {\n cachedBasePath = \"/\";\n\n return cachedBasePath;\n }\n\n if (!isRootFileOrDir) {\n cachedBasePath = \"/\" + parts[0] + \"/\";\n\n return cachedBasePath;\n }\n }\n\n const loc =\n typeof window !== \"undefined\" && window.location\n ? window.location\n : typeof self !== \"undefined\" && self.location\n ? self.location\n : null;\n\n if (!loc) {\n return \"/\";\n }\n\n // 1. Check for explicit <base href=\"...\"> element in the DOM\n if (\n typeof document !== \"undefined\" &&\n typeof document.querySelector === \"function\"\n ) {\n const baseEl = document.querySelector(\"base[href]\");\n if (baseEl) {\n const href = baseEl.getAttribute(\"href\");\n if (href) {\n try {\n const baseUriPath = new URL(href, loc.origin).pathname;\n let base = baseUriPath;\n if (!base.endsWith(\"/\")) {\n base += \"/\";\n }\n cachedBasePath = base;\n\n return cachedBasePath;\n } catch {\n // ignore parsing error, fall through\n }\n }\n }\n }\n\n const pathname = loc.pathname || \"/\";\n if (pathname === \"/\") {\n cachedBasePath = \"/\";\n\n return cachedBasePath;\n }\n\n const parts = pathname.split(\"/\").filter(Boolean);\n const pageIndex = parts.findIndex((part) =>\n VALID_PAGES.has(part.toLowerCase()),\n );\n\n if (pageIndex >= 0) {\n if (pageIndex === 0) {\n cachedBasePath = \"/\";\n\n return cachedBasePath;\n }\n\n cachedBasePath = \"/\" + parts.slice(0, pageIndex).join(\"/\") + \"/\";\n\n return cachedBasePath;\n }\n\n // 2. Check if the current pathname is a known pretty route\n const prettyRoute = resolvePrettyPathToRoute(pathname);\n if (prettyRoute) {\n cachedBasePath = \"/\";\n\n return cachedBasePath;\n }\n\n // 3. Check for single-segment subpath deployments (e.g. /shadow-claw/ or /my-app/)\n if (parts.length === 1 && !pathname.includes(\".\")) {\n cachedBasePath = \"/\" + parts[0] + \"/\";\n\n return cachedBasePath;\n }\n\n // 4. Default to root base path for unhandled multi-segment paths\n cachedBasePath = \"/\";\n\n return cachedBasePath;\n}\n\nexport function applyBasePath(path: string): string {\n const base = getAppBasePath();\n if (base === \"/\") {\n return path;\n }\n\n const [pathPart, ...rest] = path.split(/(?=[?#])/);\n\n // If the path already starts with the base, don't double-prefix.\n if (pathPart === base || pathPart.startsWith(base)) {\n return path;\n }\n\n const relative = pathPart.startsWith(\"/\") ? pathPart.slice(1) : pathPart;\n\n let combined = base + relative;\n combined = combined.replace(/\\/{2,}/g, \"/\");\n\n return combined + rest.join(\"\");\n}\n\nfunction trimSlashes(value: string): string {\n return value.replace(/^\\/+|\\/+$/g, \"\");\n}\n\nfunction normalizeRouteGroupId(\n groupId: string | undefined,\n): string | undefined {\n if (!groupId) {\n return groupId;\n }\n\n if (groupId === \"main\") {\n return \"br:main\";\n }\n\n // Accept browser-safe \"br-...\" route IDs and normalize to canonical \"br:...\".\n if (groupId.startsWith(\"br-\")) {\n return `br:${groupId.slice(3)}`;\n }\n\n return groupId;\n}\n\nfunction sanitizeWorkspacePath(path: string | undefined): string | undefined {\n if (!path) {\n return undefined;\n }\n\n const normalized = trimSlashes(path.replace(/\\\\/g, \"/\"));\n if (!normalized) {\n return undefined;\n }\n\n const parts = normalized\n .split(\"/\")\n .filter(Boolean)\n .filter((part) => part !== \".\" && part !== \"..\");\n\n if (parts.length === 0) {\n return undefined;\n }\n\n return parts.join(\"/\");\n}\n\nexport function buildRoutePath(route: ShadowClawAppRoute): string {\n const anchor = route.anchor ? `#${route.anchor.replace(/^#/, \"\")}` : \"\";\n\n const prettyPath = resolveRouteToPrettyPath(route);\n if (prettyPath) {\n let clean = prettyPath;\n if (!clean.startsWith(\"/\")) {\n clean = `/${clean}`;\n }\n\n return `${clean}${anchor}`;\n }\n\n switch (route.page) {\n case \"chat\": {\n const path = route.groupId\n ? `/chat/${encodePathSegment(route.groupId)}/`\n : \"/chat\";\n\n return `${path}${anchor}`;\n }\n\n case \"tasks\": {\n const path = route.groupId\n ? `/tasks/${encodePathSegment(route.groupId)}/`\n : \"/tasks\";\n\n return `${path}${anchor}`;\n }\n\n case \"files\": {\n const workspacePath = sanitizeWorkspacePath(route.path);\n if (!route.groupId) {\n return `/files${anchor}`;\n }\n\n if (!workspacePath) {\n return `/files/${encodePathSegment(route.groupId)}/${anchor}`;\n }\n\n return `/files/${encodePathSegment(route.groupId)}/${workspacePath}${anchor}`;\n }\n\n case \"pages\": {\n const workspacePath = sanitizeWorkspacePath(route.path);\n if (!workspacePath) {\n return `/pages${anchor}`;\n }\n\n if (route.groupId) {\n return `/pages/${encodePathSegment(route.groupId)}/${workspacePath}${anchor}`;\n }\n\n return `/pages/${workspacePath}${anchor}`;\n }\n\n case \"tools\":\n return `/settings/tool-configuration${anchor}`;\n\n case \"channels\":\n return `/settings/channel-configuration${anchor}`;\n\n case \"settings\":\n default:\n return `/settings${anchor}`;\n }\n}\n\nexport function parseRouteFromUrl(\n url: URL,\n fallbackGroupId?: string,\n): ShadowClawAppRoute | null {\n let pathname = url.pathname;\n const basePath = getAppBasePath();\n\n if (basePath !== \"/\" && pathname.startsWith(basePath)) {\n pathname = \"/\" + pathname.slice(basePath.length);\n }\n\n const prettyRoute = resolvePrettyPathToRoute(pathname);\n if (prettyRoute) {\n const anchor = url.hash ? url.hash.replace(/^#/, \"\") : undefined;\n\n return {\n ...prettyRoute,\n anchor: anchor || prettyRoute.anchor,\n };\n }\n\n const parts = pathname\n .split(\"/\")\n .filter(Boolean)\n .map((part) => decodePathSegment(part));\n const anchor = url.hash ? url.hash.replace(/^#/, \"\") : undefined;\n\n if (parts.length === 0) {\n return null;\n }\n\n const page = parts[0].toLowerCase();\n\n if (page === \"chat\") {\n return {\n page: \"chat\",\n groupId: normalizeRouteGroupId(parts[1] || fallbackGroupId),\n anchor,\n };\n }\n\n if (page === \"tasks\") {\n return {\n page: \"tasks\",\n groupId: normalizeRouteGroupId(parts[1] || fallbackGroupId),\n anchor,\n };\n }\n\n if (page === \"files\") {\n const groupId = normalizeRouteGroupId(parts[1] || fallbackGroupId);\n const path = sanitizeWorkspacePath(parts.slice(2).join(\"/\"));\n\n return {\n page: \"files\",\n groupId,\n path,\n anchor,\n };\n }\n\n if (page === \"pages\") {\n if (parts.length >= 3) {\n return {\n page: \"pages\",\n groupId: normalizeRouteGroupId(parts[1]),\n path: sanitizeWorkspacePath(parts.slice(2).join(\"/\")),\n anchor,\n };\n }\n\n return {\n page: \"pages\",\n groupId: normalizeRouteGroupId(fallbackGroupId),\n path: sanitizeWorkspacePath(parts.slice(1).join(\"/\")),\n anchor,\n };\n }\n\n if (page === \"settings\") {\n const section = (parts[1] || \"\").toLowerCase();\n if (section === \"tool-configuration\") {\n return { page: \"tools\", anchor };\n }\n\n if (section === \"channel-configuration\") {\n return { page: \"channels\", anchor };\n }\n\n return { page: \"settings\", anchor };\n }\n\n if (page === \"tools\") {\n return { page: \"tools\", anchor };\n }\n\n if (page === \"channels\") {\n return { page: \"channels\", anchor };\n }\n\n return null;\n}\n\nexport function isPossibleAppRoute(pathname: string): boolean {\n let relativePath = pathname;\n const basePath = getAppBasePath();\n\n if (basePath !== \"/\" && relativePath.startsWith(basePath)) {\n relativePath = \"/\" + relativePath.slice(basePath.length);\n } else if (basePath !== \"/\" && !relativePath.startsWith(basePath)) {\n return false;\n }\n\n const parts = relativePath.split(\"/\").filter(Boolean);\n if (parts.length === 0) return true; // root\n\n const page = parts[0].toLowerCase();\n if (VALID_PAGES.has(page)) return true;\n\n if (resolvePrettyPathToRoute(relativePath)) return true;\n\n return false;\n}\n\nexport async function parseRouteFromUrlAsync(\n url: URL,\n fallbackGroupId?: string,\n): Promise<ShadowClawAppRoute | null> {\n const syncRoute = parseRouteFromUrl(url, fallbackGroupId);\n if (syncRoute) return syncRoute;\n\n let pathname = url.pathname;\n const basePath = getAppBasePath();\n if (basePath !== \"/\" && pathname.startsWith(basePath)) {\n pathname = \"/\" + pathname.slice(basePath.length);\n }\n\n const prettyRoute = await resolvePrettyPathToRouteAsync(pathname);\n if (prettyRoute) {\n const anchor = url.hash ? url.hash.replace(/^#/, \"\") : undefined;\n return {\n ...prettyRoute,\n anchor: anchor || prettyRoute.anchor,\n };\n }\n\n return null;\n}\n\nexport function resolveHrefAgainstRoute(\n href: string,\n routePath: string,\n origin: string,\n): URL | null {\n const trimmed = href.trim();\n if (!trimmed || trimmed.startsWith(\"javascript:\")) {\n return null;\n }\n\n if (trimmed.startsWith(\"/\")) {\n try {\n const resolvedPath = applyBasePath(trimmed);\n\n return new URL(resolvedPath, origin);\n } catch {\n return null;\n }\n }\n\n const base = new URL(routePath, origin);\n try {\n return new URL(trimmed, base);\n } catch {\n return null;\n }\n}\n\nexport function getFileRouteDirPath(groupId: string, filePath: string): string {\n const normalized = sanitizeWorkspacePath(filePath);\n if (!normalized) {\n return buildRoutePath({ page: \"files\", groupId });\n }\n\n const parts = normalized.split(\"/\");\n parts.pop();\n const prefix = parts.length > 0 ? `${parts.join(\"/\")}/` : \"\";\n\n return `/files/${encodePathSegment(groupId)}/${prefix}`;\n}\n\nexport function getWorkspaceRouteRequestPath(\n pathname: string,\n): { groupId: string; path: string } | null {\n let relativePath = pathname;\n const basePath = getAppBasePath();\n\n if (basePath !== \"/\" && relativePath.startsWith(basePath)) {\n relativePath = \"/\" + relativePath.slice(basePath.length);\n }\n\n const parts = relativePath\n .split(\"/\")\n .filter(Boolean)\n .map((part) => decodePathSegment(part));\n\n if (parts.length < 3) {\n return null;\n }\n\n if (parts[0] !== \"files\") {\n return null;\n }\n\n const groupId = normalizeRouteGroupId(parts[1]) || parts[1];\n const path = sanitizeWorkspacePath(parts.slice(2).join(\"/\"));\n if (!groupId || !path) {\n return null;\n }\n\n return { groupId, path };\n}\n"],"mappings":"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"}
|
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
import ShadowClawElement from "./shadow-claw-element.js";
|
|
2
2
|
import { a as showSuccess, i as showInfo, l as toastStore, o as showToast, r as showError, s as showWarning } from "../toast-DZ6r7_YI.js";
|
|
3
|
-
import { t as ShadowClaw } from "../shadow-claw-
|
|
4
|
-
import { t as ShadowClawChat } from "../shadow-claw-chat-
|
|
5
|
-
import { t as ShadowClawA2UI } from "../shadow-claw-a2ui-
|
|
3
|
+
import { t as ShadowClaw } from "../shadow-claw-CtCj5Rn_.js";
|
|
4
|
+
import { t as ShadowClawChat } from "../shadow-claw-chat-Dw32DPV2.js";
|
|
5
|
+
import { t as ShadowClawA2UI } from "../shadow-claw-a2ui-CvK5w940.js";
|
|
6
6
|
import { t as ShadowClawPageHeaderActionButton } from "../shadow-claw-page-header-action-button-BXXm5b5N.js";
|
|
7
7
|
import { ShadowClawA2UIInterceptor } from "./shadow-claw-a2ui-interceptor.js";
|
|
8
8
|
import { ShadowClawDialog } from "./shadow-claw-dialog.js";
|
|
9
|
-
import { t as ShadowClawPageHeader } from "../shadow-claw-page-header-
|
|
10
|
-
import { t as ShadowClawFiles } from "../shadow-claw-files-
|
|
9
|
+
import { t as ShadowClawPageHeader } from "../shadow-claw-page-header-DAYz3I_o.js";
|
|
10
|
+
import { t as ShadowClawFiles } from "../shadow-claw-files-xGGhsHNH.js";
|
|
11
11
|
import { t as ShadowClawEmptyState } from "../shadow-claw-empty-state-D9bnqWMF.js";
|
|
12
|
-
import { t as ShadowClawFileViewer } from "../shadow-claw-file-viewer-
|
|
12
|
+
import { t as ShadowClawFileViewer } from "../shadow-claw-file-viewer-CAsn9NxH.js";
|
|
13
13
|
import { t as ShadowClawPdfViewer } from "../shadow-claw-pdf-viewer-D3leDhRq.js";
|
|
14
|
-
import { t as ShadowClawTasks } from "../shadow-claw-tasks-
|
|
15
|
-
import { n as ShadowClawTerminal } from "../shadow-claw-terminal-
|
|
16
|
-
import { t as ShadowClawPages } from "../shadow-claw-pages-
|
|
17
|
-
import { t as ShadowClawSettings } from "../shadow-claw-settings-
|
|
18
|
-
import { t as ShadowClawPeerJs } from "../shadow-claw-peerjs-
|
|
19
|
-
import { t as ShadowClawChannelConfig } from "../shadow-claw-channel-config-
|
|
20
|
-
import { t as ShadowClawChannels } from "../shadow-claw-channels-
|
|
14
|
+
import { t as ShadowClawTasks } from "../shadow-claw-tasks-Dc4BC-t-.js";
|
|
15
|
+
import { n as ShadowClawTerminal } from "../shadow-claw-terminal-BINcTdsk.js";
|
|
16
|
+
import { t as ShadowClawPages } from "../shadow-claw-pages-BLeEZb9k.js";
|
|
17
|
+
import { t as ShadowClawSettings } from "../shadow-claw-settings-B7o0Z4hu.js";
|
|
18
|
+
import { t as ShadowClawPeerJs } from "../shadow-claw-peerjs-BcFnbK74.js";
|
|
19
|
+
import { t as ShadowClawChannelConfig } from "../shadow-claw-channel-config-Da2dN19M.js";
|
|
20
|
+
import { t as ShadowClawChannels } from "../shadow-claw-channels-BofYHgz8.js";
|
|
21
21
|
import { t as ShadowClawProviderModelPicker } from "../shadow-claw-provider-model-picker-CsA-507a.js";
|
|
22
22
|
import { t as ShadowClawProviderModuleSettings } from "../shadow-claw-provider-module-settings-3sCTnCSp.js";
|
|
23
|
-
import { t as ShadowClawConversations } from "../shadow-claw-conversations-
|
|
23
|
+
import { t as ShadowClawConversations } from "../shadow-claw-conversations-0UXge23k.js";
|
|
24
24
|
import { t as ShadowClawToast } from "../shadow-claw-toast-aRLHKnSl.js";
|
|
25
|
-
import { t as ShadowClawTools } from "../shadow-claw-tools-
|
|
25
|
+
import { t as ShadowClawTools } from "../shadow-claw-tools-BjFgXNLR.js";
|
|
26
26
|
import { t as ShadowClawActions } from "../shadow-claw-actions-G99P9oxr.js";
|
|
27
27
|
import { t as ShadowClawCard } from "../shadow-claw-card-D9azfSMu.js";
|
|
28
|
-
import { t as ShadowClawAccounts } from "../shadow-claw-accounts-
|
|
29
|
-
import { t as ShadowClawControlPlane } from "../shadow-claw-control-plane-
|
|
30
|
-
import { t as ShadowClawGit } from "../shadow-claw-git-
|
|
31
|
-
import { t as ShadowClawIntegrations } from "../shadow-claw-integrations-
|
|
32
|
-
import { t as ShadowClawLlm } from "../shadow-claw-llm-
|
|
33
|
-
import { t as ShadowClawMcpRemote } from "../shadow-claw-mcp-remote-
|
|
34
|
-
import { t as ShadowClawNetworking } from "../shadow-claw-networking-
|
|
35
|
-
import { t as ShadowClawNotifications } from "../shadow-claw-notifications-
|
|
36
|
-
import { t as ShadowClawStorage } from "../shadow-claw-storage-
|
|
37
|
-
import { t as ShadowClawTaskServer } from "../shadow-claw-task-server-
|
|
38
|
-
import { t as ShadowClawWebvm } from "../shadow-claw-webvm-
|
|
28
|
+
import { t as ShadowClawAccounts } from "../shadow-claw-accounts-Br3XdHro.js";
|
|
29
|
+
import { t as ShadowClawControlPlane } from "../shadow-claw-control-plane-CwFotFDh.js";
|
|
30
|
+
import { t as ShadowClawGit } from "../shadow-claw-git-B606hcMU.js";
|
|
31
|
+
import { t as ShadowClawIntegrations } from "../shadow-claw-integrations-Bwq5cba1.js";
|
|
32
|
+
import { t as ShadowClawLlm } from "../shadow-claw-llm-BgpcMBIy.js";
|
|
33
|
+
import { t as ShadowClawMcpRemote } from "../shadow-claw-mcp-remote-DvQCA-Bk.js";
|
|
34
|
+
import { t as ShadowClawNetworking } from "../shadow-claw-networking-Cxvf9c7E.js";
|
|
35
|
+
import { t as ShadowClawNotifications } from "../shadow-claw-notifications-CGVcFYBy.js";
|
|
36
|
+
import { t as ShadowClawStorage } from "../shadow-claw-storage-afMVqB7E.js";
|
|
37
|
+
import { t as ShadowClawTaskServer } from "../shadow-claw-task-server-B9-MQjl6.js";
|
|
38
|
+
import { t as ShadowClawWebvm } from "../shadow-claw-webvm-Xe3ByMDw.js";
|
|
39
39
|
|
|
40
40
|
export { ShadowClaw, ShadowClawA2UI, ShadowClawA2UIInterceptor, ShadowClawAccounts, ShadowClawActions, ShadowClawCard, ShadowClawChannelConfig, ShadowClawChannels, ShadowClawChat, ShadowClawControlPlane, ShadowClawConversations, ShadowClawDialog, ShadowClawElement, ShadowClawEmptyState, ShadowClawFileViewer, ShadowClawFiles, ShadowClawGit, ShadowClawIntegrations, ShadowClawLlm, ShadowClawMcpRemote, ShadowClawNetworking, ShadowClawNotifications, ShadowClawPageHeader, ShadowClawPageHeaderActionButton, ShadowClawPages, ShadowClawPdfViewer, ShadowClawPeerJs, ShadowClawProviderModelPicker, ShadowClawProviderModuleSettings, ShadowClawSettings, ShadowClawStorage, ShadowClawTaskServer, ShadowClawTasks, ShadowClawTerminal, ShadowClawToast, ShadowClawTools, ShadowClawWebvm, showError, showInfo, showSuccess, showToast, showWarning, toastStore };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as getControlPlaneTargetAddressSpace, t as ShadowClawControlPlane } from "../../shadow-claw-control-plane-
|
|
1
|
+
import { n as getControlPlaneTargetAddressSpace, t as ShadowClawControlPlane } from "../../shadow-claw-control-plane-CwFotFDh.js";
|
|
2
2
|
|
|
3
3
|
export { ShadowClawControlPlane, getControlPlaneTargetAddressSpace };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sync active state on slotted sidebar navigation links.
|
|
3
|
+
*/
|
|
4
|
+
export declare function syncSlottedSidebarActiveLinks(host: HTMLElement | null, currentUrl?: URL): void;
|
|
5
|
+
/**
|
|
6
|
+
* Sets up listeners so slotted sidebar active links stay in sync whenever
|
|
7
|
+
* the URL changes (popstate, Navigation API navigate, or iframe replaceState).
|
|
8
|
+
* Returns a cleanup function to remove the listeners.
|
|
9
|
+
*/
|
|
10
|
+
export declare function setupSlottedSidebarActiveLinks(host: HTMLElement | null): () => void;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as getControlPlaneTargetAddressSpace, t as ShadowClawControlPlane } from "../shadow-claw-control-plane-
|
|
1
|
+
import { n as getControlPlaneTargetAddressSpace, t as ShadowClawControlPlane } from "../shadow-claw-control-plane-CwFotFDh.js";
|
|
2
2
|
|
|
3
3
|
export { ShadowClawControlPlane, getControlPlaneTargetAddressSpace };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as ShadowClawTerminal, t as AUTO_SCROLL_BOTTOM_THRESHOLD_PX } from "../shadow-claw-terminal-
|
|
1
|
+
import { n as ShadowClawTerminal, t as AUTO_SCROLL_BOTTOM_THRESHOLD_PX } from "../shadow-claw-terminal-BINcTdsk.js";
|
|
2
2
|
|
|
3
3
|
export { AUTO_SCROLL_BOTTOM_THRESHOLD_PX, ShadowClawTerminal };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as ShadowClaw } from "../shadow-claw-
|
|
1
|
+
import { t as ShadowClaw } from "../shadow-claw-CtCj5Rn_.js";
|
|
2
2
|
import { n as MAX_SIDEBAR_WIDTH_PX, r as MIN_SIDEBAR_WIDTH_PX, t as DEFAULT_SIDEBAR_WIDTH_PX } from "../constants-BxxDX8j_.js";
|
|
3
3
|
|
|
4
4
|
export { DEFAULT_SIDEBAR_WIDTH_PX, MAX_SIDEBAR_WIDTH_PX, MIN_SIDEBAR_WIDTH_PX, ShadowClaw };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __exportAll } from "./rolldown-runtime-DZ8SGSJo.js";
|
|
2
|
-
import { a as getDeploymentNamespace } from "./app-routes-
|
|
2
|
+
import { a as getDeploymentNamespace } from "./app-routes-CKkiX12g.js";
|
|
3
3
|
|
|
4
4
|
//#region src/subsystems/providers/model-registry.ts
|
|
5
5
|
/**
|
|
@@ -1311,4 +1311,4 @@ const DEFAULT_TASK_SERVER_URL = "http://localhost:8888/schedule";
|
|
|
1311
1311
|
|
|
1312
1312
|
//#endregion
|
|
1313
1313
|
export { getAvailableProviders as A, PROVIDERS as C, TELEGRAM_PROXY_BASE as D, TELEGRAM_MAX_LENGTH as E, getProvider as F, getProviderApiKeyConfigKey as I, getProviderTokenAuthScheme as L, getDefaultProvider as M, getGeneralAccountProviderCapabilities as N, buildTriggerPattern as O, getModelMaxTokens as P, modelRegistry as R, PEERJS_DEFAULT_HOST as S, TELEGRAM_API_BASE as T, LEGACY_DB_NAME as _, DEFAULT_DEV_PORT as a, OAUTH_PROVIDER_DEFINITIONS as b, DEFAULT_PROMPT_API_FALLBACK_MODEL as c, DEFAULT_TASK_SERVER_URL as d, DEFAULT_VM_BOOT_HOST as f, IMESSAGE_REQUEST_TIMEOUT_MS as g, GENERAL_ACCOUNT_PROVIDER_CAPABILITIES as h, DEFAULT_DEV_HOST as i, getDbName as j, config_exports as k, DEFAULT_PROVIDER as l, FETCH_MAX_RESPONSE as m, BASH_MAX_TIMEOUT_SEC as n, DEFAULT_GROUP_ID as o, DEFAULT_VM_NETWORK_RELAY_URL as p, CONFIG_KEYS as r, DEFAULT_MAX_TOKENS as s, ASSISTANT_NAME as t, DEFAULT_SUBAGENT_WORKSPACE_MODE as u, LEGACY_OPFS_ROOT as v, SCHEDULER_INTERVAL as w, OPFS_ROOT as x, LLAMAFILE_PROXY_URL as y };
|
|
1314
|
-
//# sourceMappingURL=config-
|
|
1314
|
+
//# sourceMappingURL=config-DZkF9LiO.js.map
|