shadow-claw 1.29.0 → 1.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/main/skill-creator/SKILL.md +3 -2
- package/.agents/skills/main/skill-creator/references/frontmatter-spec.md +5 -3
- package/.well-known/agent-skills/index.json +1 -1
- package/.well-known/mcp/server-card.json +1 -1
- package/.well-known/mcp.json +1 -1
- package/dist/lib/{app-routes-CqBOeA5q.js → app-routes-BAEMLu9g.js} +3 -2
- package/dist/lib/app-routes-BAEMLu9g.js.map +1 -0
- package/dist/lib/{bundler-8JNIKwOs.js → bundler-CsL7hHMq.js} +4 -9
- package/dist/lib/{bundler-8JNIKwOs.js.map → bundler-CsL7hHMq.js.map} +1 -1
- 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-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--CFrw3J3.js → config-DjZ9QWc4.js} +2 -2
- package/dist/lib/{config--CFrw3J3.js.map → config-DjZ9QWc4.js.map} +1 -1
- package/dist/lib/{configurePeerJs-DG4hliKp.js → configurePeerJs-H0WaoT0w.js} +3 -3
- package/dist/lib/{configurePeerJs-DG4hliKp.js.map → configurePeerJs-H0WaoT0w.js.map} +1 -1
- package/dist/lib/{connections-DwjzwVz0.js → connections-BURqMIUv.js} +2 -2
- package/dist/lib/{connections-DwjzwVz0.js.map → connections-BURqMIUv.js.map} +1 -1
- package/dist/lib/content/markdown-links.d.ts +19 -0
- package/dist/lib/core/app-routes.d.ts +1 -0
- package/dist/lib/{downloadGroupFile-DmcBQU1n.js → downloadGroupFile-B8J4up2a.js} +2 -2
- package/dist/lib/{downloadGroupFile-DmcBQU1n.js.map → downloadGroupFile-B8J4up2a.js.map} +1 -1
- package/dist/lib/{file-viewer-C3YKnq_-.js → file-viewer-CwvhxAAG.js} +5 -5
- package/dist/lib/{file-viewer-C3YKnq_-.js.map → file-viewer-CwvhxAAG.js.map} +1 -1
- package/dist/lib/{getGroupDir-m0f-ekgX.js → getGroupDir-QrN2aTo8.js} +4 -4
- package/dist/lib/{getGroupDir-m0f-ekgX.js.map → getGroupDir-QrN2aTo8.js.map} +1 -1
- package/dist/lib/{git-C-Q6-IVe.js → git-DhZoe1SE.js} +3 -3
- package/dist/lib/{git-C-Q6-IVe.js.map → git-DhZoe1SE.js.map} +1 -1
- package/dist/lib/{iframe-sanitizer-CUqHuWQ-.js → iframe-sanitizer-Bujgq14T.js} +2 -2
- package/dist/lib/{iframe-sanitizer-CUqHuWQ-.js.map → iframe-sanitizer-Bujgq14T.js.map} +1 -1
- package/dist/lib/index.js +27 -27
- package/dist/lib/{initChatSplitResize-yyBTU6h9.js → initChatSplitResize-BjiWoqC_.js} +2 -2
- package/dist/lib/{initChatSplitResize-yyBTU6h9.js.map → initChatSplitResize-BjiWoqC_.js.map} +1 -1
- package/dist/lib/{initControlPlane-DnpAzphg.js → initControlPlane-C9JxQCDh.js} +16 -16
- package/dist/lib/{initControlPlane-DnpAzphg.js.map → initControlPlane-C9JxQCDh.js.map} +1 -1
- package/dist/lib/{markdown-DgdSt2GD.js → markdown-DYHmNjC4.js} +126 -5
- package/dist/lib/markdown-DYHmNjC4.js.map +1 -0
- package/dist/lib/{mcp-reconnect-C86MR3z8.js → mcp-reconnect-BxJ77WSb.js} +2 -2
- package/dist/lib/{mcp-reconnect-C86MR3z8.js.map → mcp-reconnect-BxJ77WSb.js.map} +1 -1
- package/dist/lib/{memoryStorage-UR8E8K-H.js → memoryStorage-D3FBwO9T.js} +2 -2
- package/dist/lib/{memoryStorage-UR8E8K-H.js.map → memoryStorage-D3FBwO9T.js.map} +1 -1
- package/dist/lib/{orchestrator-ClXbJ4Mb.js → orchestrator-C6dc-2OQ.js} +130 -27
- package/dist/lib/{orchestrator-ClXbJ4Mb.js.map → orchestrator-C6dc-2OQ.js.map} +1 -1
- package/dist/lib/{orchestrator-CjEau_RG.js → orchestrator-DVkyd8K9.js} +27 -17
- package/dist/lib/orchestrator-DVkyd8K9.js.map +1 -0
- package/dist/lib/{peerjs-BdfpltIe.js → peerjs-BUS9O04I.js} +274 -60
- package/dist/lib/peerjs-BUS9O04I.js.map +1 -0
- package/dist/lib/{push-client-DjwKknNg.js → push-client-4JsQGmQa.js} +3 -3
- package/dist/lib/{push-client-DjwKknNg.js.map → push-client-4JsQGmQa.js.map} +1 -1
- package/dist/lib/{readGroupFileBytes-C8oOe8Iu.js → readGroupFileBytes-CSA7u-nJ.js} +2 -2
- package/dist/lib/{readGroupFileBytes-C8oOe8Iu.js.map → readGroupFileBytes-CSA7u-nJ.js.map} +1 -1
- package/dist/lib/{shadow-claw-DcPGKenn.js → shadow-claw-BMoF8Auf.js} +11 -11
- package/dist/lib/{shadow-claw-DcPGKenn.js.map → shadow-claw-BMoF8Auf.js.map} +1 -1
- package/dist/lib/{shadow-claw-a2ui-CpZUTzlh.js → shadow-claw-a2ui-2I5nffIn.js} +2 -2
- package/dist/lib/{shadow-claw-a2ui-CpZUTzlh.js.map → shadow-claw-a2ui-2I5nffIn.js.map} +1 -1
- package/dist/lib/{shadow-claw-accounts-03oJ__XC.js → shadow-claw-accounts-BCjlgvzy.js} +3 -3
- package/dist/lib/{shadow-claw-accounts-03oJ__XC.js.map → shadow-claw-accounts-BCjlgvzy.js.map} +1 -1
- package/dist/lib/{shadow-claw-channel-config-DEL-aZ7N.js → shadow-claw-channel-config-CxQAmlDE.js} +3 -3
- package/dist/lib/{shadow-claw-channel-config-DEL-aZ7N.js.map → shadow-claw-channel-config-CxQAmlDE.js.map} +1 -1
- package/dist/lib/{shadow-claw-channels-BgaJiPdE.js → shadow-claw-channels-CuYMUVAG.js} +3 -3
- package/dist/lib/{shadow-claw-channels-BgaJiPdE.js.map → shadow-claw-channels-CuYMUVAG.js.map} +1 -1
- package/dist/lib/{shadow-claw-chat-mXPQZbwT.js → shadow-claw-chat-RFtPmmyl.js} +13 -12
- package/dist/lib/shadow-claw-chat-RFtPmmyl.js.map +1 -0
- package/dist/lib/{shadow-claw-control-plane-DO6foOLV.js → shadow-claw-control-plane-siqmRzR1.js} +7 -7
- package/dist/lib/{shadow-claw-control-plane-DO6foOLV.js.map → shadow-claw-control-plane-siqmRzR1.js.map} +1 -1
- package/dist/lib/{shadow-claw-conversations-BLwHTwdW.js → shadow-claw-conversations-DygK5y1e.js} +7 -7
- package/dist/lib/{shadow-claw-conversations-BLwHTwdW.js.map → shadow-claw-conversations-DygK5y1e.js.map} +1 -1
- package/dist/lib/{shadow-claw-file-viewer-BSbZvSl-.js → shadow-claw-file-viewer-DGMA7d7H.js} +11 -11
- package/dist/lib/shadow-claw-file-viewer-DGMA7d7H.js.map +1 -0
- package/dist/lib/{shadow-claw-files-BLVr9Pua.js → shadow-claw-files-CgD1B9J7.js} +8 -8
- package/dist/lib/{shadow-claw-files-BLVr9Pua.js.map → shadow-claw-files-CgD1B9J7.js.map} +1 -1
- package/dist/lib/{shadow-claw-git-CHC1H86J.js → shadow-claw-git-Bw1jGRrf.js} +6 -6
- package/dist/lib/{shadow-claw-git-CHC1H86J.js.map → shadow-claw-git-Bw1jGRrf.js.map} +1 -1
- package/dist/lib/{shadow-claw-integrations-Ds-CLPhj.js → shadow-claw-integrations-ChaXtvsg.js} +4 -4
- package/dist/lib/{shadow-claw-integrations-Ds-CLPhj.js.map → shadow-claw-integrations-ChaXtvsg.js.map} +1 -1
- package/dist/lib/{shadow-claw-llm-CKXfxd3D.js → shadow-claw-llm-CDM4Akjc.js} +6 -6
- package/dist/lib/{shadow-claw-llm-CKXfxd3D.js.map → shadow-claw-llm-CDM4Akjc.js.map} +1 -1
- package/dist/lib/{shadow-claw-mcp-remote-CT5Q-54E.js → shadow-claw-mcp-remote-BLxs_Z4I.js} +4 -4
- package/dist/lib/{shadow-claw-mcp-remote-CT5Q-54E.js.map → shadow-claw-mcp-remote-BLxs_Z4I.js.map} +1 -1
- package/dist/lib/{shadow-claw-networking-dpYvfchh.js → shadow-claw-networking-BYt-kMSI.js} +2 -2
- package/dist/lib/{shadow-claw-networking-dpYvfchh.js.map → shadow-claw-networking-BYt-kMSI.js.map} +1 -1
- package/dist/lib/{shadow-claw-notifications-_YeAVPga.js → shadow-claw-notifications-Dpe4EtZI.js} +3 -3
- package/dist/lib/{shadow-claw-notifications-_YeAVPga.js.map → shadow-claw-notifications-Dpe4EtZI.js.map} +1 -1
- package/dist/lib/{shadow-claw-page-header-Cti2fzf-.js → shadow-claw-page-header-P4EvWyUr.js} +2 -2
- package/dist/lib/{shadow-claw-page-header-Cti2fzf-.js.map → shadow-claw-page-header-P4EvWyUr.js.map} +1 -1
- package/dist/lib/{shadow-claw-pages-DVzZriZ7.js → shadow-claw-pages-DWd_c4d6.js} +10 -10
- package/dist/lib/{shadow-claw-pages-DVzZriZ7.js.map → shadow-claw-pages-DWd_c4d6.js.map} +1 -1
- package/dist/lib/{shadow-claw-peerjs-BvixjeBz.js → shadow-claw-peerjs-D928817m.js} +3 -3
- package/dist/lib/{shadow-claw-peerjs-BvixjeBz.js.map → shadow-claw-peerjs-D928817m.js.map} +1 -1
- package/dist/lib/{shadow-claw-settings-DV9-gD4Q.js → shadow-claw-settings-C8OPrSqs.js} +8 -8
- package/dist/lib/{shadow-claw-settings-DV9-gD4Q.js.map → shadow-claw-settings-C8OPrSqs.js.map} +1 -1
- package/dist/lib/{shadow-claw-storage-Bv__kXG6.js → shadow-claw-storage-CZ2uZJNw.js} +5 -5
- package/dist/lib/{shadow-claw-storage-Bv__kXG6.js.map → shadow-claw-storage-CZ2uZJNw.js.map} +1 -1
- package/dist/lib/{shadow-claw-task-server-DNOe8PWK.js → shadow-claw-task-server-CLT018BX.js} +2 -2
- package/dist/lib/{shadow-claw-task-server-DNOe8PWK.js.map → shadow-claw-task-server-CLT018BX.js.map} +1 -1
- package/dist/lib/{shadow-claw-tasks-qmcDT4PU.js → shadow-claw-tasks-D5h-lGmq.js} +9 -8
- package/dist/lib/shadow-claw-tasks-D5h-lGmq.js.map +1 -0
- package/dist/lib/{shadow-claw-terminal-0QUWP8of.js → shadow-claw-terminal-Cy1O6KVM.js} +2 -2
- package/dist/lib/{shadow-claw-terminal-0QUWP8of.js.map → shadow-claw-terminal-Cy1O6KVM.js.map} +1 -1
- package/dist/lib/{shadow-claw-tools-Bs_bmI6-.js → shadow-claw-tools-CVD06bCR.js} +9 -9
- package/dist/lib/{shadow-claw-tools-Bs_bmI6-.js.map → shadow-claw-tools-CVD06bCR.js.map} +1 -1
- package/dist/lib/{shadow-claw-webvm-DYaoL7QY.js → shadow-claw-webvm-DoGl5ZSJ.js} +3 -3
- package/dist/lib/{shadow-claw-webvm-DYaoL7QY.js.map → shadow-claw-webvm-DoGl5ZSJ.js.map} +1 -1
- package/dist/lib/subsystems/channels/peerjs.d.ts +37 -4
- package/dist/lib/subsystems/channels/room.d.ts +4 -0
- package/dist/lib/{syncWebMcpRegistration-BhbqI6R2.js → syncWebMcpRegistration-BeYkQEvj.js} +5 -5
- package/dist/lib/{syncWebMcpRegistration-BhbqI6R2.js.map → syncWebMcpRegistration-BeYkQEvj.js.map} +1 -1
- package/dist/lib/tools-C3Kft940.js +1 -0
- package/dist/lib/{tools-DBaMRiEu.js → tools-DKzPWc0q.js} +2 -2
- package/dist/lib/{tools-DBaMRiEu.js.map → tools-DKzPWc0q.js.map} +1 -1
- package/dist/lib/{tools-DwwB9RBa.js → tools-DqcJe8LS.js} +5 -5
- package/dist/lib/{tools-DwwB9RBa.js.map → tools-DqcJe8LS.js.map} +1 -1
- package/dist/lib/{trusted-types-Dx0RZlrd.js → trusted-types-Oz7xXJAY.js} +4 -4
- package/dist/lib/{trusted-types-Dx0RZlrd.js.map → trusted-types-Oz7xXJAY.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/{webmcp-j_1_T3wf.js → webmcp-BC8_WafM.js} +4 -4
- package/dist/lib/{webmcp-j_1_T3wf.js.map → webmcp-BC8_WafM.js.map} +1 -1
- package/dist/lib/worker/utils/system-prompt.d.ts +4 -1
- package/dist/public/.agents/skills/main/skill-creator/SKILL.md +3 -2
- package/dist/public/.agents/skills/main/skill-creator/references/frontmatter-spec.md +5 -3
- package/dist/public/.well-known/agent-skills/index.json +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/agent.worker.js +18 -17
- package/dist/public/app-routes-BMQ4HFaM.js +1 -0
- package/dist/public/{bundler-Ca-Xwln8.js → bundler-0if-QelV.js} +4 -4
- package/dist/public/{config-CrHchneq.js → config-Bnwx4EfS.js} +1 -1
- package/dist/public/{configurePeerJs-B470pdeU.js → configurePeerJs-DkyGvwk_.js} +1 -1
- package/dist/public/{connections-DvbgdkaB.js → connections-6575KDGE.js} +1 -1
- package/dist/public/{custom-element-security-FU04Cq05.js → custom-element-security-BQJQ_oKz.js} +1 -1
- package/dist/public/docs/example/article/index.html +2 -2
- package/dist/public/docs/publishing/index.html +2 -2
- package/dist/public/docs/skill-creator/index.html +2 -2
- package/dist/public/docs/subsystems/skills.md +3 -1
- package/dist/public/{downloadGroupFile-D8KRJGGL.js → downloadGroupFile-Wo1Sxdhr.js} +1 -1
- package/dist/public/{e2e-bridge-CSW0S5Yz.js → e2e-bridge-CvLCUU2O.js} +1 -1
- package/dist/public/{file-viewer-Cs-riNvy.js → file-viewer-CIjqAvNF.js} +1 -1
- package/dist/public/{getGroupDir-P1h9wl6S.js → getGroupDir-BwprrdrQ.js} +1 -1
- package/dist/public/{git-7Vq_SJSp.js → git-BSnY2D-A.js} +2 -2
- package/dist/public/{iframe-sanitizer-y2Z1pPwY.js → iframe-sanitizer-viROQkRn.js} +1 -1
- package/dist/public/index.html +2 -2
- package/dist/public/index.js +1 -1
- package/dist/public/{initChatSplitResize-CzV2E7Ul.js → initChatSplitResize-BA18wLQQ.js} +1 -1
- package/dist/public/{initControlPlane-BqCY0NQy.js → initControlPlane-L96uJkRA.js} +1 -1
- package/dist/public/main/index.html +2 -2
- package/dist/public/main/memory/index.html +2 -2
- package/dist/public/{markdown-Cw7vCtTg.js → markdown-DGjZAm_w.js} +17 -14
- package/dist/public/{mcp-reconnect-9emsqGRe.js → mcp-reconnect-CBHuaYdF.js} +1 -1
- package/dist/public/{memoryStorage-C0KvLNUp.js → memoryStorage-C1llaYus.js} +1 -1
- package/dist/public/orchestrator-C0VOoTiK.js +15 -0
- package/dist/public/{orchestrator-DpkkeD6T.js → orchestrator-DMWi--Dc.js} +20 -19
- package/dist/public/peerjs-Bf6ZxfbA.js +1 -0
- package/dist/public/{push-client-CHjSbrWs.js → push-client-BD4YalBa.js} +1 -1
- package/dist/public/service-worker.js +1 -1
- package/dist/public/{shadow-claw-BBPV_9X8.js → shadow-claw-DRy-D4Qi.js} +2 -2
- package/dist/public/{shadow-claw-accounts-xUOLBsQZ.js → shadow-claw-accounts-DnfmA8cb.js} +1 -1
- package/dist/public/{shadow-claw-channels-BJvrKQjg.js → shadow-claw-channels-8UkycZAa.js} +1 -1
- package/dist/public/{shadow-claw-chat-BG2EaRaw.js → shadow-claw-chat-Cf5LUiul.js} +9 -9
- package/dist/public/{shadow-claw-control-plane-BBa7WbTg.js → shadow-claw-control-plane-UsBF-Nvd.js} +2 -2
- package/dist/public/{shadow-claw-conversations-CFaWFmkm.js → shadow-claw-conversations-Aoe61Y21.js} +1 -1
- package/dist/public/{shadow-claw-file-viewer-Z-GIKaE9.js → shadow-claw-file-viewer-D28dSSEn.js} +6 -6
- package/dist/public/{shadow-claw-files-BBx4iMsk.js → shadow-claw-files-CaDUlPEU.js} +1 -1
- package/dist/public/{shadow-claw-git-vTOKatwd.js → shadow-claw-git-DYNcZMWA.js} +2 -2
- package/dist/public/{shadow-claw-integrations-BBVnO0Fc.js → shadow-claw-integrations-BJf_hQVv.js} +1 -1
- package/dist/public/{shadow-claw-llm-Ce1Ax6-x.js → shadow-claw-llm-BqK2SIRf.js} +2 -2
- package/dist/public/{shadow-claw-mcp-remote-Bkx0gsmF.js → shadow-claw-mcp-remote-B_dDG990.js} +1 -1
- package/dist/public/{shadow-claw-networking-q4XIzdB5.js → shadow-claw-networking-D8LxOofv.js} +1 -1
- package/dist/public/{shadow-claw-notifications-D2cz0gmm.js → shadow-claw-notifications-DpVyiNG_.js} +1 -1
- package/dist/public/{shadow-claw-page-header-BccSHItx.js → shadow-claw-page-header-DdC7bJuW.js} +1 -1
- package/dist/public/{shadow-claw-pages-3335lmSC.js → shadow-claw-pages-CYMl4J-6.js} +3 -3
- package/dist/public/{shadow-claw-settings-4ptYuJwO.js → shadow-claw-settings-Da_8Oy3O.js} +3 -3
- package/dist/public/{shadow-claw-storage-bIrPKFhF.js → shadow-claw-storage-DXIm86_-.js} +1 -1
- package/dist/public/{shadow-claw-task-server-5yqVBxy1.js → shadow-claw-task-server-BCceBD0G.js} +1 -1
- package/dist/public/{shadow-claw-tasks-DcqYHPLZ.js → shadow-claw-tasks-BW1QZ5L3.js} +19 -19
- package/dist/public/{shadow-claw-terminal-fARaDONr.js → shadow-claw-terminal-vqfsxhcK.js} +1 -1
- package/dist/public/{shadow-claw-tools-paEAhcJr.js → shadow-claw-tools-l0Jsa7UJ.js} +1 -1
- package/dist/public/{shadow-claw-webvm-CbzH_vyX.js → shadow-claw-webvm-CDPOWZm7.js} +1 -1
- package/dist/public/skills/main/skill-creator/SKILL.md +3 -2
- package/dist/public/skills/main/skill-creator/references/frontmatter-spec.md +5 -3
- package/dist/public/static-main-manifest.json +2 -2
- package/dist/public/{syncWebMcpRegistration-CWSYaHex.js → syncWebMcpRegistration-5b5FkP9_.js} +1 -1
- package/dist/public/tools-B-PzsLc2.js +1 -0
- package/dist/public/{tools-C8x3nmo4.js → tools-CcgG5XuA.js} +1 -1
- package/dist/public/{tools-DvckJZG2.js → tools-VSOY66vs.js} +1 -1
- package/dist/public/{webmcp-DAjmliCx.js → webmcp-DBONjQWd.js} +1 -1
- package/dist/server.js +2 -2
- package/package.json +2 -2
- package/src/__mocks__/marked.cjs +14 -0
- package/src/components/shadow-claw-chat/shadow-claw-chat.test.ts +17 -0
- package/src/components/shadow-claw-chat/shadow-claw-chat.ts +5 -1
- package/src/components/shadow-claw-file-viewer/shadow-claw-file-viewer.test.ts +78 -0
- package/src/components/shadow-claw-file-viewer/shadow-claw-file-viewer.ts +6 -2
- package/src/components/shadow-claw-pages/utils/resolveWorkspaceLinkPath.test.ts +56 -0
- package/src/components/shadow-claw-tasks/shadow-claw-tasks.test.ts +22 -0
- package/src/components/shadow-claw-tasks/shadow-claw-tasks.ts +5 -1
- package/src/content/markdown-links.test.ts +109 -0
- package/src/content/markdown-links.ts +187 -0
- package/src/content/markdown.test.ts +33 -0
- package/src/content/markdown.ts +6 -1
- package/src/core/app-routes.test.ts +65 -0
- package/src/core/app-routes.ts +1 -1
- package/src/core/orchestrator/orchestrator.ts +3 -0
- package/src/core/orchestrator/utils/compactContext.ts +2 -0
- package/src/core/orchestrator/utils/invokeAgent.ts +1 -0
- package/src/subsystems/accounts/service-accounts.test.ts +0 -1
- package/src/subsystems/channels/peerjs.test.ts +479 -1
- package/src/subsystems/channels/peerjs.ts +420 -75
- package/src/subsystems/channels/room.test.ts +35 -0
- package/src/subsystems/channels/room.ts +15 -0
- package/src/subsystems/skills/activateSkill.test.ts +38 -5
- package/src/subsystems/skills/activateSkill.ts +25 -3
- package/src/subsystems/skills/parseSkill.test.ts +71 -0
- package/src/subsystems/skills/parseSkill.ts +185 -25
- package/src/subsystems/tools/files.ts +4 -4
- package/src/worker/tools/spawn-subagent/spawn-subagent.test.ts +22 -23
- package/src/worker/tools/workspace/send-file.test.ts +24 -1
- package/src/worker/tools/workspace/send-file.ts +6 -3
- package/src/worker/utils/handleCompact.test.ts +3 -4
- package/src/worker/utils/handleInvoke.test.ts +13 -11
- package/src/worker/utils/handleInvoke.ts +3 -0
- package/src/worker/utils/handleMessage.test.ts +0 -1
- package/src/worker/utils/post.test.ts +3 -4
- package/src/worker/utils/sandboxedEval.test.ts +1 -2
- package/src/worker/utils/system-prompt.test.ts +59 -0
- package/src/worker/utils/system-prompt.ts +21 -1
- package/src/worker/utils/withRetry.test.ts +3 -16
- package/dist/lib/app-routes-CqBOeA5q.js.map +0 -1
- package/dist/lib/markdown-DgdSt2GD.js.map +0 -1
- package/dist/lib/orchestrator-CjEau_RG.js.map +0 -1
- package/dist/lib/peerjs-BdfpltIe.js.map +0 -1
- package/dist/lib/shadow-claw-chat-mXPQZbwT.js.map +0 -1
- package/dist/lib/shadow-claw-file-viewer-BSbZvSl-.js.map +0 -1
- package/dist/lib/shadow-claw-tasks-qmcDT4PU.js.map +0 -1
- package/dist/lib/tools-D4Pp-nUw.js +0 -1
- package/dist/public/app-routes-Bs-riIvr.js +0 -1
- package/dist/public/orchestrator-BWkHHO9Y.js +0 -15
- package/dist/public/peerjs-tf2EmWjB.js +0 -1
- package/dist/public/tools-COduyYJ0.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoryStorage-UR8E8K-H.js","names":[],"sources":["../../src/storage/memoryStorage.ts"],"sourcesContent":["import { OPFS_ROOT } from \"../config/config.js\";\n\nfunction createDOMException(message: string, name: string): DOMException {\n if (typeof DOMException !== \"undefined\") {\n try {\n return new DOMException(message, name);\n } catch {\n // Fall back if constructor fails\n }\n }\n\n const err = new Error(message) as any;\n err.name = name;\n\n return err;\n}\n\nfunction makeAsyncIterator<T>(\n gen: () => AsyncGenerator<T>,\n): FileSystemDirectoryHandleAsyncIterator<T> {\n const iterator = gen();\n (iterator as any)[Symbol.asyncDispose ?? Symbol.for(\"Symbol.asyncDispose\")] =\n async () => {};\n\n return iterator as any;\n}\n\n/**\n * In-memory implementation of FileSystemSyncAccessHandle.\n */\nexport class MemorySyncAccessHandle {\n private _file: MemoryFileHandle;\n private _closed = false;\n\n constructor(file: MemoryFileHandle) {\n this._file = file;\n }\n\n close(): void {\n this._closed = true;\n }\n\n flush(): void {\n // No-op for in-memory storage\n }\n\n getSize(): number {\n if (this._closed) {\n throw createDOMException(\n \"SyncAccessHandle is closed\",\n \"InvalidStateError\",\n );\n }\n\n return this._file.getRawData().byteLength;\n }\n\n read(buffer: ArrayBufferView, options?: { at?: number }): number {\n if (this._closed) {\n throw createDOMException(\n \"SyncAccessHandle is closed\",\n \"InvalidStateError\",\n );\n }\n const data = this._file.getRawData();\n const at = options?.at ?? 0;\n if (at >= data.byteLength) {\n return 0;\n }\n const target = new Uint8Array(\n buffer.buffer,\n buffer.byteOffset,\n buffer.byteLength,\n );\n const source = data.subarray(at, at + target.byteLength);\n target.set(source);\n\n return source.byteLength;\n }\n\n write(buffer: ArrayBufferView, options?: { at?: number }): number {\n if (this._closed) {\n throw createDOMException(\n \"SyncAccessHandle is closed\",\n \"InvalidStateError\",\n );\n }\n const src = new Uint8Array(\n buffer.buffer,\n buffer.byteOffset,\n buffer.byteLength,\n );\n const at = options?.at ?? 0;\n const current = this._file.getRawData();\n const needed = at + src.byteLength;\n let newBuf: Uint8Array;\n if (needed > current.byteLength) {\n newBuf = new Uint8Array(needed);\n newBuf.set(current);\n } else {\n newBuf = new Uint8Array(current);\n }\n newBuf.set(src, at);\n this._file.setRawData(newBuf);\n\n return src.byteLength;\n }\n\n truncate(newSize: number): void {\n if (this._closed) {\n throw createDOMException(\n \"SyncAccessHandle is closed\",\n \"InvalidStateError\",\n );\n }\n const current = this._file.getRawData();\n const newBuf = new Uint8Array(newSize);\n newBuf.set(current.subarray(0, Math.min(current.byteLength, newSize)));\n this._file.setRawData(newBuf);\n }\n}\n\n/**\n * In-memory implementation of FileSystemWritableFileStream.\n */\nexport class MemoryWritableStream {\n private _file: MemoryFileHandle;\n private _buffer: Uint8Array;\n private _position = 0;\n private _length = 0;\n private _closed = false;\n\n constructor(file: MemoryFileHandle, keepExistingData = false) {\n this._file = file;\n const existing = file.getRawData();\n if (keepExistingData) {\n this._buffer = new Uint8Array(existing);\n this._length = existing.byteLength;\n } else {\n this._buffer = new Uint8Array(1024);\n this._length = 0;\n }\n }\n\n async write(chunk: any): Promise<void> {\n if (this._closed) {\n throw createDOMException(\"WritableStream is closed\", \"InvalidStateError\");\n }\n\n let bytes: Uint8Array;\n if (typeof chunk === \"string\") {\n bytes = new TextEncoder().encode(chunk);\n } else if (chunk instanceof Uint8Array) {\n bytes = chunk;\n } else if (chunk instanceof ArrayBuffer) {\n bytes = new Uint8Array(chunk);\n } else if (typeof Blob !== \"undefined\" && chunk instanceof Blob) {\n if (typeof chunk.arrayBuffer === \"function\") {\n bytes = new Uint8Array(await chunk.arrayBuffer());\n } else if (typeof (chunk as any).text === \"function\") {\n bytes = new TextEncoder().encode(await (chunk as any).text());\n } else if (typeof FileReader !== \"undefined\") {\n bytes = await new Promise<Uint8Array>((resolve) => {\n const reader = new FileReader();\n reader.onload = () => {\n resolve(new Uint8Array(reader.result as ArrayBuffer));\n };\n reader.onerror = () => resolve(new Uint8Array(0));\n reader.readAsArrayBuffer(chunk);\n });\n } else {\n bytes = new Uint8Array(0);\n }\n } else if (chunk && typeof chunk === \"object\" && \"type\" in chunk) {\n if (chunk.type === \"write\") {\n if (typeof chunk.position === \"number\") {\n this._position = chunk.position;\n }\n const data = chunk.data;\n if (typeof data === \"string\") {\n bytes = new TextEncoder().encode(data);\n } else if (data instanceof Uint8Array) {\n bytes = data;\n } else if (data instanceof ArrayBuffer) {\n bytes = new Uint8Array(data);\n } else if (typeof Blob !== \"undefined\" && data instanceof Blob) {\n if (typeof data.arrayBuffer === \"function\") {\n bytes = new Uint8Array(await data.arrayBuffer());\n } else {\n bytes = new Uint8Array(0);\n }\n } else {\n bytes = new Uint8Array(0);\n }\n } else if (chunk.type === \"seek\") {\n this._position = chunk.position ?? 0;\n\n return;\n } else if (chunk.type === \"truncate\") {\n this._truncate(chunk.size ?? 0);\n\n return;\n } else {\n bytes = new Uint8Array(0);\n }\n } else {\n bytes = new Uint8Array(0);\n }\n\n const needed = this._position + bytes.length;\n if (needed > this._buffer.length) {\n const newCapacity = Math.max(this._buffer.length * 2, needed, 1024);\n const newBuf = new Uint8Array(newCapacity);\n newBuf.set(this._buffer);\n this._buffer = newBuf;\n }\n\n this._buffer.set(bytes, this._position);\n this._position += bytes.length;\n if (this._position > this._length) {\n this._length = this._position;\n }\n }\n\n private _truncate(newSize: number): void {\n if (newSize < this._length) {\n this._length = newSize;\n } else if (newSize > this._length) {\n if (newSize > this._buffer.length) {\n const newBuf = new Uint8Array(newSize);\n newBuf.set(this._buffer);\n this._buffer = newBuf;\n }\n this._length = newSize;\n }\n if (this._position > newSize) {\n this._position = newSize;\n }\n }\n\n async seek(position: number): Promise<void> {\n if (this._closed) {\n throw createDOMException(\"WritableStream is closed\", \"InvalidStateError\");\n }\n this._position = position;\n }\n\n async truncate(size: number): Promise<void> {\n if (this._closed) {\n throw createDOMException(\"WritableStream is closed\", \"InvalidStateError\");\n }\n this._truncate(size);\n }\n\n async close(): Promise<void> {\n if (this._closed) {\n return;\n }\n this._closed = true;\n const finalData = this._buffer.slice(0, this._length);\n this._file.setRawData(finalData);\n }\n\n async abort(): Promise<void> {\n this._closed = true;\n }\n}\n\n/**\n * In-memory implementation of FileSystemFileHandle.\n */\nexport class MemoryFileHandle implements FileSystemFileHandle {\n readonly kind = \"file\" as const;\n readonly name: string;\n private _data: Uint8Array;\n private _lastModified: number;\n\n constructor(name: string, initialData: Uint8Array = new Uint8Array()) {\n this.name = name;\n this._data = initialData;\n this._lastModified = Date.now();\n }\n\n getRawData(): Uint8Array {\n return this._data;\n }\n\n setRawData(data: Uint8Array): void {\n this._data = data;\n this._lastModified = Date.now();\n }\n\n private _getArrayBuffer(): ArrayBuffer {\n const ab = new ArrayBuffer(this._data.byteLength);\n new Uint8Array(ab).set(this._data);\n\n return ab;\n }\n\n async getFile(): Promise<File> {\n const arrayBuffer = this._getArrayBuffer();\n const data = this._data;\n const name = this.name;\n const lastModified = this._lastModified;\n\n const fileObj = {\n name,\n size: data.byteLength,\n type: \"\",\n lastModified,\n async text(): Promise<string> {\n return new TextDecoder().decode(data);\n },\n async arrayBuffer(): Promise<ArrayBuffer> {\n return arrayBuffer;\n },\n slice(start = 0, end = data.byteLength): Blob {\n return new Blob([arrayBuffer.slice(start, end)]);\n },\n };\n\n if (typeof File !== \"undefined\") {\n try {\n const file = new File([arrayBuffer], this.name, {\n lastModified: this._lastModified,\n });\n if (typeof (file as any).text !== \"function\") {\n (file as any).text = fileObj.text;\n }\n if (typeof (file as any).arrayBuffer !== \"function\") {\n (file as any).arrayBuffer = fileObj.arrayBuffer;\n }\n\n return file;\n } catch {\n // Continue to fallback\n }\n }\n\n return fileObj as any;\n }\n\n async createWritable(\n options?: FileSystemCreateWritableOptions,\n ): Promise<FileSystemWritableFileStream> {\n return new MemoryWritableStream(\n this,\n options?.keepExistingData ?? false,\n ) as any;\n }\n\n async createSyncAccessHandle(): Promise<any> {\n return new MemorySyncAccessHandle(this);\n }\n\n async isSameEntry(other: FileSystemHandle): Promise<boolean> {\n return this === (other as any);\n }\n\n async queryPermission(): Promise<PermissionState> {\n return \"granted\";\n }\n\n async requestPermission(): Promise<PermissionState> {\n return \"granted\";\n }\n}\n\n/**\n * In-memory implementation of FileSystemDirectoryHandle.\n */\nexport class MemoryDirectoryHandle implements FileSystemDirectoryHandle {\n readonly kind = \"directory\" as const;\n readonly name: string;\n private _entries = new Map<\n string,\n MemoryDirectoryHandle | MemoryFileHandle\n >();\n\n constructor(name: string) {\n this.name = name;\n }\n\n _setEntry(\n name: string,\n handle: MemoryDirectoryHandle | MemoryFileHandle,\n ): void {\n this._entries.set(name, handle);\n }\n\n async getDirectoryHandle(\n name: string,\n options?: FileSystemGetDirectoryOptions,\n ): Promise<FileSystemDirectoryHandle> {\n if (name === \".\" || name === \"\") {\n return this;\n }\n if (name === \"..\") {\n throw createDOMException(\n \"Cannot navigate to parent directory with '..'\",\n \"SecurityError\",\n );\n }\n\n const existing = this._entries.get(name);\n if (existing) {\n if (existing.kind === \"directory\") {\n return existing as MemoryDirectoryHandle;\n }\n throw createDOMException(\n `\"${name}\" is a file, not a directory`,\n \"TypeMismatchError\",\n );\n }\n\n if (options?.create) {\n const newDir = new MemoryDirectoryHandle(name);\n this._entries.set(name, newDir);\n\n return newDir;\n }\n\n throw createDOMException(\n `A requested file or directory could not be found at \"${name}\"`,\n \"NotFoundError\",\n );\n }\n\n async getFileHandle(\n name: string,\n options?: FileSystemGetFileOptions,\n ): Promise<FileSystemFileHandle> {\n if (name === \".\" || name === \"..\" || name === \"\") {\n throw createDOMException(\n `Invalid file name \"${name}\"`,\n \"TypeMismatchError\",\n );\n }\n\n const existing = this._entries.get(name);\n if (existing) {\n if (existing.kind === \"file\") {\n return existing as MemoryFileHandle;\n }\n throw createDOMException(\n `\"${name}\" is a directory, not a file`,\n \"TypeMismatchError\",\n );\n }\n\n if (options?.create) {\n const newFile = new MemoryFileHandle(name);\n this._entries.set(name, newFile);\n\n return newFile;\n }\n\n throw createDOMException(\n `A requested file could not be found at \"${name}\"`,\n \"NotFoundError\",\n );\n }\n\n async removeEntry(\n name: string,\n options?: FileSystemRemoveOptions,\n ): Promise<void> {\n const existing = this._entries.get(name);\n if (!existing) {\n throw createDOMException(`Entry \"${name}\" not found`, \"NotFoundError\");\n }\n\n if (\n existing.kind === \"directory\" &&\n (existing as MemoryDirectoryHandle)._entries.size > 0 &&\n !options?.recursive\n ) {\n throw createDOMException(\n `Directory \"${name}\" is not empty`,\n \"InvalidModificationError\",\n );\n }\n\n this._entries.delete(name);\n }\n\n async resolve(\n possibleDescendant: FileSystemHandle,\n ): Promise<string[] | null> {\n if (this === (possibleDescendant as any)) {\n return [];\n }\n\n for (const [name, handle] of this._entries.entries()) {\n if (handle === (possibleDescendant as any)) {\n return [name];\n }\n if (handle.kind === \"directory\") {\n const childPath = await (handle as MemoryDirectoryHandle).resolve(\n possibleDescendant,\n );\n if (childPath) {\n return [name, ...childPath];\n }\n }\n }\n\n return null;\n }\n\n entries(): FileSystemDirectoryHandleAsyncIterator<\n [string, FileSystemDirectoryHandle | FileSystemFileHandle]\n > {\n const self = this;\n\n return makeAsyncIterator(async function* () {\n for (const [name, handle] of self._entries.entries()) {\n yield [name, handle as any];\n }\n });\n }\n\n values(): FileSystemDirectoryHandleAsyncIterator<\n FileSystemDirectoryHandle | FileSystemFileHandle\n > {\n const self = this;\n\n return makeAsyncIterator(async function* () {\n for (const handle of self._entries.values()) {\n yield handle as any;\n }\n });\n }\n\n keys(): FileSystemDirectoryHandleAsyncIterator<string> {\n const self = this;\n\n return makeAsyncIterator(async function* () {\n for (const name of self._entries.keys()) {\n yield name;\n }\n });\n }\n\n [Symbol.asyncIterator](): FileSystemDirectoryHandleAsyncIterator<\n [string, FileSystemDirectoryHandle | FileSystemFileHandle]\n > {\n return this.entries();\n }\n\n async isSameEntry(other: FileSystemHandle): Promise<boolean> {\n return this === (other as any);\n }\n\n async queryPermission(): Promise<PermissionState> {\n return \"granted\";\n }\n\n async requestPermission(): Promise<PermissionState> {\n return \"granted\";\n }\n}\n\nlet memoryOpfsRoot: MemoryDirectoryHandle | null = null;\n\n/**\n * Get or create the singleton in-memory root for OPFS fallback.\n */\nexport function getMemoryOpfsRoot(): FileSystemDirectoryHandle {\n if (!memoryOpfsRoot) {\n const root = new MemoryDirectoryHandle(\"memory-root\");\n const opfsChild = new MemoryDirectoryHandle(OPFS_ROOT);\n root._setEntry(OPFS_ROOT, opfsChild);\n memoryOpfsRoot = opfsChild;\n }\n\n return memoryOpfsRoot;\n}\n\n/**\n * Check if the in-memory storage fallback is currently active.\n */\nexport function isMemoryStorageFallbackActive(): boolean {\n return memoryOpfsRoot !== null;\n}\n\n/**\n * Clear the in-memory OPFS root (primarily for tests).\n */\nexport function resetMemoryOpfsRoot(): void {\n memoryOpfsRoot = null;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memoryStorage-D3FBwO9T.js","names":[],"sources":["../../src/storage/memoryStorage.ts"],"sourcesContent":["import { OPFS_ROOT } from \"../config/config.js\";\n\nfunction createDOMException(message: string, name: string): DOMException {\n if (typeof DOMException !== \"undefined\") {\n try {\n return new DOMException(message, name);\n } catch {\n // Fall back if constructor fails\n }\n }\n\n const err = new Error(message) as any;\n err.name = name;\n\n return err;\n}\n\nfunction makeAsyncIterator<T>(\n gen: () => AsyncGenerator<T>,\n): FileSystemDirectoryHandleAsyncIterator<T> {\n const iterator = gen();\n (iterator as any)[Symbol.asyncDispose ?? Symbol.for(\"Symbol.asyncDispose\")] =\n async () => {};\n\n return iterator as any;\n}\n\n/**\n * In-memory implementation of FileSystemSyncAccessHandle.\n */\nexport class MemorySyncAccessHandle {\n private _file: MemoryFileHandle;\n private _closed = false;\n\n constructor(file: MemoryFileHandle) {\n this._file = file;\n }\n\n close(): void {\n this._closed = true;\n }\n\n flush(): void {\n // No-op for in-memory storage\n }\n\n getSize(): number {\n if (this._closed) {\n throw createDOMException(\n \"SyncAccessHandle is closed\",\n \"InvalidStateError\",\n );\n }\n\n return this._file.getRawData().byteLength;\n }\n\n read(buffer: ArrayBufferView, options?: { at?: number }): number {\n if (this._closed) {\n throw createDOMException(\n \"SyncAccessHandle is closed\",\n \"InvalidStateError\",\n );\n }\n const data = this._file.getRawData();\n const at = options?.at ?? 0;\n if (at >= data.byteLength) {\n return 0;\n }\n const target = new Uint8Array(\n buffer.buffer,\n buffer.byteOffset,\n buffer.byteLength,\n );\n const source = data.subarray(at, at + target.byteLength);\n target.set(source);\n\n return source.byteLength;\n }\n\n write(buffer: ArrayBufferView, options?: { at?: number }): number {\n if (this._closed) {\n throw createDOMException(\n \"SyncAccessHandle is closed\",\n \"InvalidStateError\",\n );\n }\n const src = new Uint8Array(\n buffer.buffer,\n buffer.byteOffset,\n buffer.byteLength,\n );\n const at = options?.at ?? 0;\n const current = this._file.getRawData();\n const needed = at + src.byteLength;\n let newBuf: Uint8Array;\n if (needed > current.byteLength) {\n newBuf = new Uint8Array(needed);\n newBuf.set(current);\n } else {\n newBuf = new Uint8Array(current);\n }\n newBuf.set(src, at);\n this._file.setRawData(newBuf);\n\n return src.byteLength;\n }\n\n truncate(newSize: number): void {\n if (this._closed) {\n throw createDOMException(\n \"SyncAccessHandle is closed\",\n \"InvalidStateError\",\n );\n }\n const current = this._file.getRawData();\n const newBuf = new Uint8Array(newSize);\n newBuf.set(current.subarray(0, Math.min(current.byteLength, newSize)));\n this._file.setRawData(newBuf);\n }\n}\n\n/**\n * In-memory implementation of FileSystemWritableFileStream.\n */\nexport class MemoryWritableStream {\n private _file: MemoryFileHandle;\n private _buffer: Uint8Array;\n private _position = 0;\n private _length = 0;\n private _closed = false;\n\n constructor(file: MemoryFileHandle, keepExistingData = false) {\n this._file = file;\n const existing = file.getRawData();\n if (keepExistingData) {\n this._buffer = new Uint8Array(existing);\n this._length = existing.byteLength;\n } else {\n this._buffer = new Uint8Array(1024);\n this._length = 0;\n }\n }\n\n async write(chunk: any): Promise<void> {\n if (this._closed) {\n throw createDOMException(\"WritableStream is closed\", \"InvalidStateError\");\n }\n\n let bytes: Uint8Array;\n if (typeof chunk === \"string\") {\n bytes = new TextEncoder().encode(chunk);\n } else if (chunk instanceof Uint8Array) {\n bytes = chunk;\n } else if (chunk instanceof ArrayBuffer) {\n bytes = new Uint8Array(chunk);\n } else if (typeof Blob !== \"undefined\" && chunk instanceof Blob) {\n if (typeof chunk.arrayBuffer === \"function\") {\n bytes = new Uint8Array(await chunk.arrayBuffer());\n } else if (typeof (chunk as any).text === \"function\") {\n bytes = new TextEncoder().encode(await (chunk as any).text());\n } else if (typeof FileReader !== \"undefined\") {\n bytes = await new Promise<Uint8Array>((resolve) => {\n const reader = new FileReader();\n reader.onload = () => {\n resolve(new Uint8Array(reader.result as ArrayBuffer));\n };\n reader.onerror = () => resolve(new Uint8Array(0));\n reader.readAsArrayBuffer(chunk);\n });\n } else {\n bytes = new Uint8Array(0);\n }\n } else if (chunk && typeof chunk === \"object\" && \"type\" in chunk) {\n if (chunk.type === \"write\") {\n if (typeof chunk.position === \"number\") {\n this._position = chunk.position;\n }\n const data = chunk.data;\n if (typeof data === \"string\") {\n bytes = new TextEncoder().encode(data);\n } else if (data instanceof Uint8Array) {\n bytes = data;\n } else if (data instanceof ArrayBuffer) {\n bytes = new Uint8Array(data);\n } else if (typeof Blob !== \"undefined\" && data instanceof Blob) {\n if (typeof data.arrayBuffer === \"function\") {\n bytes = new Uint8Array(await data.arrayBuffer());\n } else {\n bytes = new Uint8Array(0);\n }\n } else {\n bytes = new Uint8Array(0);\n }\n } else if (chunk.type === \"seek\") {\n this._position = chunk.position ?? 0;\n\n return;\n } else if (chunk.type === \"truncate\") {\n this._truncate(chunk.size ?? 0);\n\n return;\n } else {\n bytes = new Uint8Array(0);\n }\n } else {\n bytes = new Uint8Array(0);\n }\n\n const needed = this._position + bytes.length;\n if (needed > this._buffer.length) {\n const newCapacity = Math.max(this._buffer.length * 2, needed, 1024);\n const newBuf = new Uint8Array(newCapacity);\n newBuf.set(this._buffer);\n this._buffer = newBuf;\n }\n\n this._buffer.set(bytes, this._position);\n this._position += bytes.length;\n if (this._position > this._length) {\n this._length = this._position;\n }\n }\n\n private _truncate(newSize: number): void {\n if (newSize < this._length) {\n this._length = newSize;\n } else if (newSize > this._length) {\n if (newSize > this._buffer.length) {\n const newBuf = new Uint8Array(newSize);\n newBuf.set(this._buffer);\n this._buffer = newBuf;\n }\n this._length = newSize;\n }\n if (this._position > newSize) {\n this._position = newSize;\n }\n }\n\n async seek(position: number): Promise<void> {\n if (this._closed) {\n throw createDOMException(\"WritableStream is closed\", \"InvalidStateError\");\n }\n this._position = position;\n }\n\n async truncate(size: number): Promise<void> {\n if (this._closed) {\n throw createDOMException(\"WritableStream is closed\", \"InvalidStateError\");\n }\n this._truncate(size);\n }\n\n async close(): Promise<void> {\n if (this._closed) {\n return;\n }\n this._closed = true;\n const finalData = this._buffer.slice(0, this._length);\n this._file.setRawData(finalData);\n }\n\n async abort(): Promise<void> {\n this._closed = true;\n }\n}\n\n/**\n * In-memory implementation of FileSystemFileHandle.\n */\nexport class MemoryFileHandle implements FileSystemFileHandle {\n readonly kind = \"file\" as const;\n readonly name: string;\n private _data: Uint8Array;\n private _lastModified: number;\n\n constructor(name: string, initialData: Uint8Array = new Uint8Array()) {\n this.name = name;\n this._data = initialData;\n this._lastModified = Date.now();\n }\n\n getRawData(): Uint8Array {\n return this._data;\n }\n\n setRawData(data: Uint8Array): void {\n this._data = data;\n this._lastModified = Date.now();\n }\n\n private _getArrayBuffer(): ArrayBuffer {\n const ab = new ArrayBuffer(this._data.byteLength);\n new Uint8Array(ab).set(this._data);\n\n return ab;\n }\n\n async getFile(): Promise<File> {\n const arrayBuffer = this._getArrayBuffer();\n const data = this._data;\n const name = this.name;\n const lastModified = this._lastModified;\n\n const fileObj = {\n name,\n size: data.byteLength,\n type: \"\",\n lastModified,\n async text(): Promise<string> {\n return new TextDecoder().decode(data);\n },\n async arrayBuffer(): Promise<ArrayBuffer> {\n return arrayBuffer;\n },\n slice(start = 0, end = data.byteLength): Blob {\n return new Blob([arrayBuffer.slice(start, end)]);\n },\n };\n\n if (typeof File !== \"undefined\") {\n try {\n const file = new File([arrayBuffer], this.name, {\n lastModified: this._lastModified,\n });\n if (typeof (file as any).text !== \"function\") {\n (file as any).text = fileObj.text;\n }\n if (typeof (file as any).arrayBuffer !== \"function\") {\n (file as any).arrayBuffer = fileObj.arrayBuffer;\n }\n\n return file;\n } catch {\n // Continue to fallback\n }\n }\n\n return fileObj as any;\n }\n\n async createWritable(\n options?: FileSystemCreateWritableOptions,\n ): Promise<FileSystemWritableFileStream> {\n return new MemoryWritableStream(\n this,\n options?.keepExistingData ?? false,\n ) as any;\n }\n\n async createSyncAccessHandle(): Promise<any> {\n return new MemorySyncAccessHandle(this);\n }\n\n async isSameEntry(other: FileSystemHandle): Promise<boolean> {\n return this === (other as any);\n }\n\n async queryPermission(): Promise<PermissionState> {\n return \"granted\";\n }\n\n async requestPermission(): Promise<PermissionState> {\n return \"granted\";\n }\n}\n\n/**\n * In-memory implementation of FileSystemDirectoryHandle.\n */\nexport class MemoryDirectoryHandle implements FileSystemDirectoryHandle {\n readonly kind = \"directory\" as const;\n readonly name: string;\n private _entries = new Map<\n string,\n MemoryDirectoryHandle | MemoryFileHandle\n >();\n\n constructor(name: string) {\n this.name = name;\n }\n\n _setEntry(\n name: string,\n handle: MemoryDirectoryHandle | MemoryFileHandle,\n ): void {\n this._entries.set(name, handle);\n }\n\n async getDirectoryHandle(\n name: string,\n options?: FileSystemGetDirectoryOptions,\n ): Promise<FileSystemDirectoryHandle> {\n if (name === \".\" || name === \"\") {\n return this;\n }\n if (name === \"..\") {\n throw createDOMException(\n \"Cannot navigate to parent directory with '..'\",\n \"SecurityError\",\n );\n }\n\n const existing = this._entries.get(name);\n if (existing) {\n if (existing.kind === \"directory\") {\n return existing as MemoryDirectoryHandle;\n }\n throw createDOMException(\n `\"${name}\" is a file, not a directory`,\n \"TypeMismatchError\",\n );\n }\n\n if (options?.create) {\n const newDir = new MemoryDirectoryHandle(name);\n this._entries.set(name, newDir);\n\n return newDir;\n }\n\n throw createDOMException(\n `A requested file or directory could not be found at \"${name}\"`,\n \"NotFoundError\",\n );\n }\n\n async getFileHandle(\n name: string,\n options?: FileSystemGetFileOptions,\n ): Promise<FileSystemFileHandle> {\n if (name === \".\" || name === \"..\" || name === \"\") {\n throw createDOMException(\n `Invalid file name \"${name}\"`,\n \"TypeMismatchError\",\n );\n }\n\n const existing = this._entries.get(name);\n if (existing) {\n if (existing.kind === \"file\") {\n return existing as MemoryFileHandle;\n }\n throw createDOMException(\n `\"${name}\" is a directory, not a file`,\n \"TypeMismatchError\",\n );\n }\n\n if (options?.create) {\n const newFile = new MemoryFileHandle(name);\n this._entries.set(name, newFile);\n\n return newFile;\n }\n\n throw createDOMException(\n `A requested file could not be found at \"${name}\"`,\n \"NotFoundError\",\n );\n }\n\n async removeEntry(\n name: string,\n options?: FileSystemRemoveOptions,\n ): Promise<void> {\n const existing = this._entries.get(name);\n if (!existing) {\n throw createDOMException(`Entry \"${name}\" not found`, \"NotFoundError\");\n }\n\n if (\n existing.kind === \"directory\" &&\n (existing as MemoryDirectoryHandle)._entries.size > 0 &&\n !options?.recursive\n ) {\n throw createDOMException(\n `Directory \"${name}\" is not empty`,\n \"InvalidModificationError\",\n );\n }\n\n this._entries.delete(name);\n }\n\n async resolve(\n possibleDescendant: FileSystemHandle,\n ): Promise<string[] | null> {\n if (this === (possibleDescendant as any)) {\n return [];\n }\n\n for (const [name, handle] of this._entries.entries()) {\n if (handle === (possibleDescendant as any)) {\n return [name];\n }\n if (handle.kind === \"directory\") {\n const childPath = await (handle as MemoryDirectoryHandle).resolve(\n possibleDescendant,\n );\n if (childPath) {\n return [name, ...childPath];\n }\n }\n }\n\n return null;\n }\n\n entries(): FileSystemDirectoryHandleAsyncIterator<\n [string, FileSystemDirectoryHandle | FileSystemFileHandle]\n > {\n const self = this;\n\n return makeAsyncIterator(async function* () {\n for (const [name, handle] of self._entries.entries()) {\n yield [name, handle as any];\n }\n });\n }\n\n values(): FileSystemDirectoryHandleAsyncIterator<\n FileSystemDirectoryHandle | FileSystemFileHandle\n > {\n const self = this;\n\n return makeAsyncIterator(async function* () {\n for (const handle of self._entries.values()) {\n yield handle as any;\n }\n });\n }\n\n keys(): FileSystemDirectoryHandleAsyncIterator<string> {\n const self = this;\n\n return makeAsyncIterator(async function* () {\n for (const name of self._entries.keys()) {\n yield name;\n }\n });\n }\n\n [Symbol.asyncIterator](): FileSystemDirectoryHandleAsyncIterator<\n [string, FileSystemDirectoryHandle | FileSystemFileHandle]\n > {\n return this.entries();\n }\n\n async isSameEntry(other: FileSystemHandle): Promise<boolean> {\n return this === (other as any);\n }\n\n async queryPermission(): Promise<PermissionState> {\n return \"granted\";\n }\n\n async requestPermission(): Promise<PermissionState> {\n return \"granted\";\n }\n}\n\nlet memoryOpfsRoot: MemoryDirectoryHandle | null = null;\n\n/**\n * Get or create the singleton in-memory root for OPFS fallback.\n */\nexport function getMemoryOpfsRoot(): FileSystemDirectoryHandle {\n if (!memoryOpfsRoot) {\n const root = new MemoryDirectoryHandle(\"memory-root\");\n const opfsChild = new MemoryDirectoryHandle(OPFS_ROOT);\n root._setEntry(OPFS_ROOT, opfsChild);\n memoryOpfsRoot = opfsChild;\n }\n\n return memoryOpfsRoot;\n}\n\n/**\n * Check if the in-memory storage fallback is currently active.\n */\nexport function isMemoryStorageFallbackActive(): boolean {\n return memoryOpfsRoot !== null;\n}\n\n/**\n * Clear the in-memory OPFS root (primarily for tests).\n */\nexport function resetMemoryOpfsRoot(): void {\n memoryOpfsRoot = null;\n}\n"],"mappings":"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"}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import { i as __toESM, n as __exportAll, r as __require, t as __commonJSMin } from "./rolldown-runtime-DZ8SGSJo.js";
|
|
2
2
|
import { n as getDb, t as txPromise } from "./txPromise-CuGh-TGK.js";
|
|
3
3
|
import { t as Signal } from "./dist-Bxg3C_zy.js";
|
|
4
|
-
import { a as getStorageStatus, i as getStorageRoot, o as invalidateStorageRoot, r as getOpfsRootDirName, s as isStaleHandleError, t as getGroupDir } from "./getGroupDir-
|
|
5
|
-
import { C as PROVIDERS, F as getProvider, I as getProviderApiKeyConfigKey, O as buildTriggerPattern, P as getModelMaxTokens, R as modelRegistry, c as DEFAULT_PROMPT_API_FALLBACK_MODEL, d as DEFAULT_TASK_SERVER_URL, m as FETCH_MAX_RESPONSE, n as BASH_MAX_TIMEOUT_SEC, o as DEFAULT_GROUP_ID, p as DEFAULT_VM_NETWORK_RELAY_URL, r as CONFIG_KEYS, t as ASSISTANT_NAME, u as DEFAULT_SUBAGENT_WORKSPACE_MODE, y as LLAMAFILE_PROXY_URL } from "./config
|
|
6
|
-
import { n as applyBasePath } from "./app-routes-
|
|
4
|
+
import { a as getStorageStatus, i as getStorageRoot, o as invalidateStorageRoot, r as getOpfsRootDirName, s as isStaleHandleError, t as getGroupDir } from "./getGroupDir-QrN2aTo8.js";
|
|
5
|
+
import { C as PROVIDERS, F as getProvider, I as getProviderApiKeyConfigKey, O as buildTriggerPattern, P as getModelMaxTokens, R as modelRegistry, c as DEFAULT_PROMPT_API_FALLBACK_MODEL, d as DEFAULT_TASK_SERVER_URL, m as FETCH_MAX_RESPONSE, n as BASH_MAX_TIMEOUT_SEC, o as DEFAULT_GROUP_ID, p as DEFAULT_VM_NETWORK_RELAY_URL, r as CONFIG_KEYS, t as ASSISTANT_NAME, u as DEFAULT_SUBAGENT_WORKSPACE_MODE, y as LLAMAFILE_PROXY_URL } from "./config-DjZ9QWc4.js";
|
|
6
|
+
import { n as applyBasePath } from "./app-routes-BAEMLu9g.js";
|
|
7
7
|
import { t as getConfig } from "./getConfig-BxxXMyuM.js";
|
|
8
8
|
import { t as parsePath } from "./parsePath-DwC_YZjw.js";
|
|
9
|
-
import { a as DEFAULT_BUILTIN_PROFILE, o as readGroupFile, r as findDeclarativeTool, t as toolsStore } from "./tools-
|
|
10
|
-
import { t as readGroupFileBytes } from "./readGroupFileBytes-
|
|
9
|
+
import { a as DEFAULT_BUILTIN_PROFILE, o as readGroupFile, r as findDeclarativeTool, t as toolsStore } from "./tools-DqcJe8LS.js";
|
|
10
|
+
import { t as readGroupFileBytes } from "./readGroupFileBytes-CSA7u-nJ.js";
|
|
11
11
|
import { t as setConfig } from "./setConfig-BFED5CXn.js";
|
|
12
12
|
import { ulid } from "./utils/ulid.js";
|
|
13
|
-
import { i as BASIC_CATALOG_REFERENCE, r as A2UI_BASIC_CATALOG_ID, t as TOOL_DEFINITIONS } from "./tools-
|
|
14
|
-
import "./tools-
|
|
15
|
-
import { a as toTrustedScriptUrl, m as configureCustomElementSecurity, v as installCustomElementDomGuard, x as loadCustomElementSecurityFromDb, y as installCustomElementsRegistryGuard } from "./trusted-types-
|
|
13
|
+
import { i as BASIC_CATALOG_REFERENCE, r as A2UI_BASIC_CATALOG_ID, t as TOOL_DEFINITIONS } from "./tools-DKzPWc0q.js";
|
|
14
|
+
import "./tools-C3Kft940.js";
|
|
15
|
+
import { a as toTrustedScriptUrl, m as configureCustomElementSecurity, v as installCustomElementDomGuard, x as loadCustomElementSecurityFromDb, y as installCustomElementsRegistryGuard } from "./trusted-types-Oz7xXJAY.js";
|
|
16
16
|
import { n as decryptValue, r as encryptValue } from "./crypto-BPECyFrG.js";
|
|
17
|
-
import { c as getRemoteMcpConnection, d as buildAuthHeaders, i as listRemoteMcpTools, l as listRemoteMcpConnections, m as resolveServiceCredentials, n as McpReauthRequiredError, p as resolveGitCredentials, r as callRemoteMcpTool, t as reconnectMcpOAuth } from "./mcp-reconnect-
|
|
17
|
+
import { c as getRemoteMcpConnection, d as buildAuthHeaders, i as listRemoteMcpTools, l as listRemoteMcpConnections, m as resolveServiceCredentials, n as McpReauthRequiredError, p as resolveGitCredentials, r as callRemoteMcpTool, t as reconnectMcpOAuth } from "./mcp-reconnect-BxJ77WSb.js";
|
|
18
18
|
import { t as require_browser } from "./browser-FvTfy_Ym.js";
|
|
19
19
|
import { t as require_buffer } from "./buffer-BEXn271X.js";
|
|
20
20
|
import { T as require_inherits_browser, _ as require_type$1, b as require_shams$1, c as require_which_typed_array, d as require_define_data_property, f as require_call_bound, g as require_gopd, h as require_get_proto, l as require_call_bind, m as require_hasown, n as require_inflate, o as require_zstream, p as require_get_intrinsic, r as require_deflate, s as require_is_typed_array, t as require_constants, u as require_has_property_descriptors, v as require_es_object_atoms, x as require_stream_browserify, y as require_shams } from "./constants-CS4AQDNE.js";
|
|
21
|
-
import { a as upsertEmailConnection, i as listEmailConnections, n as deleteEmailConnection, o as getEmailPluginManifest, r as getEmailConnection, s as listEmailPluginManifests, t as bindEmailCredentialRef } from "./connections-
|
|
21
|
+
import { a as upsertEmailConnection, i as listEmailConnections, n as deleteEmailConnection, o as getEmailPluginManifest, r as getEmailConnection, s as listEmailPluginManifests, t as bindEmailCredentialRef } from "./connections-BURqMIUv.js";
|
|
22
22
|
import { t as getAllTasks } from "./getAllTasks-BVJn5ZNH.js";
|
|
23
|
-
import { r as getPushUrl } from "./push-client-
|
|
23
|
+
import { r as getPushUrl } from "./push-client-4JsQGmQa.js";
|
|
24
24
|
import { o as showToast, r as showError } from "./toast-DZ6r7_YI.js";
|
|
25
25
|
import { getNamespacedItem, setNamespacedItem } from "./utils/namespacedStorage.js";
|
|
26
26
|
import { applyJsonPatch } from "./utils/jsonPatch.js";
|
|
@@ -80349,7 +80349,9 @@ async function executeSearchFiles(db, input, groupId, options = {}) {
|
|
|
80349
80349
|
//#region src/worker/tools/workspace/send-file.ts
|
|
80350
80350
|
async function executeSendFile(db, input, groupId) {
|
|
80351
80351
|
if (!input.path || typeof input.path !== "string") return "Error: send_file requires a valid path string.";
|
|
80352
|
-
|
|
80352
|
+
const isPeer = groupId.startsWith("peer:");
|
|
80353
|
+
const isRoom = groupId.startsWith("room:");
|
|
80354
|
+
if (!isPeer && !isRoom) return "Error: send_file only works in peer or room conversations (groupId must start with 'peer:' or 'room:'). The current conversation is not a peer session.";
|
|
80353
80355
|
const sfPath = normalizeWorkspacePath(input.path);
|
|
80354
80356
|
if (!sfPath) return "Error: send_file received an empty file path.";
|
|
80355
80357
|
if (hasPathTraversal(sfPath)) return "Error: send_file path cannot contain '..' segments.";
|
|
@@ -80361,7 +80363,7 @@ async function executeSendFile(db, input, groupId) {
|
|
|
80361
80363
|
},
|
|
80362
80364
|
type: "send-file"
|
|
80363
80365
|
});
|
|
80364
|
-
return `Sending file to peer: ${sfPath}. The transfer will proceed in the background — you can continue chatting.`;
|
|
80366
|
+
return `Sending file to ${isRoom ? "room" : "peer"}: ${sfPath}. The transfer will proceed in the background — you can continue chatting.`;
|
|
80365
80367
|
}
|
|
80366
80368
|
|
|
80367
80369
|
//#endregion
|
|
@@ -88620,9 +88622,78 @@ var require_gray_matter = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
88620
88622
|
//#region src/subsystems/skills/parseSkill.ts
|
|
88621
88623
|
var import_gray_matter = /* @__PURE__ */ __toESM(require_gray_matter(), 1);
|
|
88622
88624
|
const NAME_PATTERN = /^[a-z0-9](?:[a-z0-9]|-(?!-))*[a-z0-9]$|^[a-z0-9]$/;
|
|
88625
|
+
function parseFrontmatterResiliently(source) {
|
|
88626
|
+
try {
|
|
88627
|
+
const parsed = (0, import_gray_matter.default)(source);
|
|
88628
|
+
return {
|
|
88629
|
+
data: parsed.data && typeof parsed.data === "object" ? parsed.data : {},
|
|
88630
|
+
content: parsed.content || ""
|
|
88631
|
+
};
|
|
88632
|
+
} catch {
|
|
88633
|
+
const fmMatch = source.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);
|
|
88634
|
+
if (fmMatch) {
|
|
88635
|
+
const rawFm = fmMatch[1];
|
|
88636
|
+
const rest = fmMatch[2] || "";
|
|
88637
|
+
const sanitizedLines = rawFm.split(/\r?\n/).map((line) => {
|
|
88638
|
+
const fieldMatch = line.match(/^([a-zA-Z0-9_-]+):\s*(.+)$/);
|
|
88639
|
+
if (fieldMatch) {
|
|
88640
|
+
const [, key, val] = fieldMatch;
|
|
88641
|
+
const trimmed = val.trim();
|
|
88642
|
+
if (trimmed && trimmed !== "true" && trimmed !== "false" && trimmed !== "null" && !trimmed.startsWith("\"") && !trimmed.startsWith("'") && !trimmed.startsWith("[") && !trimmed.startsWith("{") && trimmed !== ">" && trimmed !== "|" && trimmed !== ">-" && trimmed !== "|-" && !/^-?\d+(?:\.\d+)?$/.test(trimmed)) return `${key}: ${JSON.stringify(trimmed)}`;
|
|
88643
|
+
}
|
|
88644
|
+
return line;
|
|
88645
|
+
});
|
|
88646
|
+
try {
|
|
88647
|
+
const parsed = (0, import_gray_matter.default)(`---\n${sanitizedLines.join("\n")}\n---\n${rest}`);
|
|
88648
|
+
return {
|
|
88649
|
+
data: parsed.data && typeof parsed.data === "object" ? parsed.data : {},
|
|
88650
|
+
content: parsed.content || ""
|
|
88651
|
+
};
|
|
88652
|
+
} catch {}
|
|
88653
|
+
const fallbackData = {};
|
|
88654
|
+
const nameMatch = rawFm.match(/^name:\s*["']?([^"'\r\n]+)["']?/m);
|
|
88655
|
+
if (nameMatch) fallbackData.name = nameMatch[1].trim();
|
|
88656
|
+
const descMatch = rawFm.match(/^description:\s*(.+)$/m);
|
|
88657
|
+
if (descMatch) {
|
|
88658
|
+
let desc = descMatch[1].trim();
|
|
88659
|
+
if (desc.startsWith("\"") && desc.endsWith("\"") || desc.startsWith("'") && desc.endsWith("'")) desc = desc.slice(1, -1);
|
|
88660
|
+
fallbackData.description = desc;
|
|
88661
|
+
}
|
|
88662
|
+
const userInvocableMatch = rawFm.match(/^user-invocable:\s*(true|false)/im);
|
|
88663
|
+
if (userInvocableMatch) fallbackData["user-invocable"] = userInvocableMatch[1].toLowerCase() === "true";
|
|
88664
|
+
const disableModelMatch = rawFm.match(/^disable-model-invocation:\s*(true|false)/im);
|
|
88665
|
+
if (disableModelMatch) fallbackData["disable-model-invocation"] = disableModelMatch[1].toLowerCase() === "true";
|
|
88666
|
+
const toolsMatch = rawFm.match(/^allowed-tools:\s*["']?([^"'\r\n]+)["']?/m);
|
|
88667
|
+
if (toolsMatch) fallbackData["allowed-tools"] = toolsMatch[1].trim();
|
|
88668
|
+
const toolListMatch = rawFm.match(/allowed-tools:\s*\n((?:\s*-\s*[^\r\n]+\r?\n?)+)/m);
|
|
88669
|
+
if (toolListMatch) {
|
|
88670
|
+
const tools = toolListMatch[1].split(/\r?\n/).map((l) => l.replace(/^\s*-\s*/, "").trim()).filter(Boolean);
|
|
88671
|
+
if (tools.length > 0) fallbackData["allowed-tools"] = tools;
|
|
88672
|
+
}
|
|
88673
|
+
return {
|
|
88674
|
+
data: fallbackData,
|
|
88675
|
+
content: rest
|
|
88676
|
+
};
|
|
88677
|
+
}
|
|
88678
|
+
return {
|
|
88679
|
+
data: {},
|
|
88680
|
+
content: source
|
|
88681
|
+
};
|
|
88682
|
+
}
|
|
88683
|
+
}
|
|
88684
|
+
function extractAllowedTools(raw) {
|
|
88685
|
+
if (typeof raw === "string") {
|
|
88686
|
+
const trimmed = raw.trim();
|
|
88687
|
+
return trimmed.length > 0 ? trimmed : void 0;
|
|
88688
|
+
}
|
|
88689
|
+
if (Array.isArray(raw)) {
|
|
88690
|
+
const tools = raw.filter((item) => typeof item === "string").map((item) => item.trim()).filter((item) => item.length > 0);
|
|
88691
|
+
return tools.length > 0 ? tools.join(" ") : void 0;
|
|
88692
|
+
}
|
|
88693
|
+
}
|
|
88623
88694
|
function parseSkill(path, source) {
|
|
88624
|
-
const parsed = (
|
|
88625
|
-
const data = parsed.data
|
|
88695
|
+
const parsed = parseFrontmatterResiliently(source);
|
|
88696
|
+
const data = parsed.data;
|
|
88626
88697
|
const name = typeof data.name === "string" ? data.name.trim() : "";
|
|
88627
88698
|
const description = typeof data.description === "string" ? data.description.trim() : "";
|
|
88628
88699
|
if (!name) throw new Error(`Skill at ${path} requires a name`);
|
|
@@ -88631,9 +88702,19 @@ function parseSkill(path, source) {
|
|
|
88631
88702
|
if (description.length > 1024) throw new Error(`Skill ${name} description must be 1024 characters or fewer`);
|
|
88632
88703
|
const basePath = path.replace(/\/SKILL\.md$/u, "");
|
|
88633
88704
|
const rawMetadata = data.metadata && typeof data.metadata === "object" ? data.metadata : void 0;
|
|
88634
|
-
const
|
|
88635
|
-
const
|
|
88636
|
-
|
|
88705
|
+
const allowedToolsRaw = extractAllowedTools(rawMetadata?.["allowed-tools"]) || extractAllowedTools(rawMetadata?.["allowedTools"]) || extractAllowedTools(data["allowed-tools"]) || extractAllowedTools(data["allowedTools"]);
|
|
88706
|
+
const metadataEntries = [];
|
|
88707
|
+
if (rawMetadata) for (const [key, value] of Object.entries(rawMetadata)) {
|
|
88708
|
+
if (key === "execution" || value === null || value === void 0) continue;
|
|
88709
|
+
if (key === "allowed-tools" || key === "allowedTools") {
|
|
88710
|
+
if (allowedToolsRaw) metadataEntries.push([key, allowedToolsRaw]);
|
|
88711
|
+
} else if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") metadataEntries.push([key, String(value)]);
|
|
88712
|
+
else if (Array.isArray(value)) {
|
|
88713
|
+
const stringItems = value.filter((item) => typeof item === "string").map((item) => item.trim()).filter(Boolean);
|
|
88714
|
+
if (stringItems.length > 0) metadataEntries.push([key, stringItems.join(" ")]);
|
|
88715
|
+
}
|
|
88716
|
+
}
|
|
88717
|
+
const metadata = metadataEntries.length > 0 ? Object.fromEntries(metadataEntries) : void 0;
|
|
88637
88718
|
const execution = rawMetadata?.execution;
|
|
88638
88719
|
let parsedExecution;
|
|
88639
88720
|
if (execution !== void 0) {
|
|
@@ -88660,8 +88741,8 @@ function parseSkill(path, source) {
|
|
|
88660
88741
|
...typeof data.compatibility === "string" ? { compatibility: data.compatibility } : {},
|
|
88661
88742
|
...metadata ? { metadata } : {},
|
|
88662
88743
|
...typeof allowedToolsRaw === "string" ? { allowedTools: allowedToolsRaw } : {},
|
|
88663
|
-
...typeof data["user-invocable"] === "boolean" ? { userInvocable: data["user-invocable"] } : {},
|
|
88664
|
-
...typeof data["disable-model-invocation"] === "boolean" ? { disableModelInvocation: data["disable-model-invocation"] } : {},
|
|
88744
|
+
...typeof data["user-invocable"] === "boolean" ? { userInvocable: data["user-invocable"] } : typeof data["user-invocable"] === "string" && (data["user-invocable"].toLowerCase() === "true" || data["user-invocable"].toLowerCase() === "false") ? { userInvocable: data["user-invocable"].toLowerCase() === "true" } : {},
|
|
88745
|
+
...typeof data["disable-model-invocation"] === "boolean" ? { disableModelInvocation: data["disable-model-invocation"] } : typeof data["disable-model-invocation"] === "string" && (data["disable-model-invocation"].toLowerCase() === "true" || data["disable-model-invocation"].toLowerCase() === "false") ? { disableModelInvocation: data["disable-model-invocation"].toLowerCase() === "true" } : {},
|
|
88665
88746
|
...parsedExecution ? { execution: parsedExecution } : {},
|
|
88666
88747
|
body: parsed.content.trim(),
|
|
88667
88748
|
path,
|
|
@@ -88753,9 +88834,22 @@ async function listSkillResources(db, groupId, basePath) {
|
|
|
88753
88834
|
//#region src/subsystems/skills/activateSkill.ts
|
|
88754
88835
|
async function executeActivateSkill(db, input, groupId) {
|
|
88755
88836
|
const name = typeof input.name === "string" ? input.name.trim() : "";
|
|
88756
|
-
|
|
88837
|
+
const discovery = await discoverSkills(db, groupId);
|
|
88838
|
+
const availableSkillNames = discovery.skills.map((s) => s.name);
|
|
88839
|
+
const availableList = availableSkillNames.length > 0 ? availableSkillNames.join(", ") : "(none)";
|
|
88840
|
+
if (!name) {
|
|
88841
|
+
let msg = `Error: activate_skill requires a skill name. Available skills: ${availableList}.`;
|
|
88842
|
+
if (discovery.diagnostics.length > 0) msg += ` (Note: ${discovery.diagnostics.length} skill file(s) had errors: ${discovery.diagnostics.map((d) => `${d.path}: ${d.message}`).join("; ")})`;
|
|
88843
|
+
return msg;
|
|
88844
|
+
}
|
|
88757
88845
|
const skill = await loadSkill(db, groupId, name);
|
|
88758
|
-
if (!skill)
|
|
88846
|
+
if (!skill) {
|
|
88847
|
+
const matchedDiag = discovery.diagnostics.find((d) => d.path.toLowerCase().includes(name.toLowerCase()) || d.message.toLowerCase().includes(name.toLowerCase()));
|
|
88848
|
+
if (matchedDiag) return `Error: skill "${name}" was found at "${matchedDiag.path}" but failed to load: ${matchedDiag.message}. Please fix the frontmatter in SKILL.md. Available skills: ${availableList}.`;
|
|
88849
|
+
let msg = `Error: skill "${name}" was not found in this conversation workspace. Available skills: ${availableList}.`;
|
|
88850
|
+
if (discovery.diagnostics.length > 0) msg += ` (Note: ${discovery.diagnostics.length} skill file(s) had errors: ${discovery.diagnostics.map((d) => `${d.path}: ${d.message}`).join("; ")})`;
|
|
88851
|
+
return msg;
|
|
88852
|
+
}
|
|
88759
88853
|
if (skill.disableModelInvocation) return `Error: skill "${name}" is not available for model-driven activation.`;
|
|
88760
88854
|
return [
|
|
88761
88855
|
`<skill_content name="${skill.name}">`,
|
|
@@ -88971,7 +89065,7 @@ function isRetryableFetchError(error) {
|
|
|
88971
89065
|
//#region src/worker/utils/executeTool.ts
|
|
88972
89066
|
let gitSubsystemPromise = null;
|
|
88973
89067
|
async function loadGitSubsystem() {
|
|
88974
|
-
if (!gitSubsystemPromise) gitSubsystemPromise = import("./git-
|
|
89068
|
+
if (!gitSubsystemPromise) gitSubsystemPromise = import("./git-DhZoe1SE.js");
|
|
88975
89069
|
return gitSubsystemPromise;
|
|
88976
89070
|
}
|
|
88977
89071
|
function toAllowedToolNameSet(allowedTools) {
|
|
@@ -90596,7 +90690,7 @@ function getCompactionSystemPrompt(systemPrompt) {
|
|
|
90596
90690
|
/**
|
|
90597
90691
|
* Build system prompt
|
|
90598
90692
|
*/
|
|
90599
|
-
function buildSystemPrompt(assistantName, memory, tools, promptOverride, sharedState, skills) {
|
|
90693
|
+
function buildSystemPrompt(assistantName, memory, tools, promptOverride, sharedState, skills, conversationContext) {
|
|
90600
90694
|
const defs = tools || TOOL_DEFINITIONS;
|
|
90601
90695
|
const hasTools = defs.length > 0;
|
|
90602
90696
|
const toolNames = new Set(defs.map((t) => t.name));
|
|
@@ -90621,6 +90715,15 @@ function buildSystemPrompt(assistantName, memory, tools, promptOverride, sharedS
|
|
|
90621
90715
|
"- Manage tasks. If you create a task, make sure to disable (or delete) it when it's no longer needed.",
|
|
90622
90716
|
"- Strip <internal> tags from your responses."
|
|
90623
90717
|
];
|
|
90718
|
+
if (conversationContext?.groupId) {
|
|
90719
|
+
const gid = conversationContext.groupId;
|
|
90720
|
+
let channelDescription = `Local browser conversation (groupId: ${gid})`;
|
|
90721
|
+
if (gid.startsWith("peer:")) channelDescription = `Direct PeerJS P2P session (groupId: ${gid})`;
|
|
90722
|
+
else if (gid.startsWith("room:")) channelDescription = `PeerJS Multi-party Room session (groupId: ${gid})`;
|
|
90723
|
+
else if (gid.startsWith("tg:")) channelDescription = `Telegram session (groupId: ${gid})`;
|
|
90724
|
+
else if (gid.startsWith("im:")) channelDescription = `iMessage session (groupId: ${gid})`;
|
|
90725
|
+
parts.push("", `Current Conversation Context: ${channelDescription}.`);
|
|
90726
|
+
}
|
|
90624
90727
|
const UNTRUSTED_CONTENT_TOOLS = /* @__PURE__ */ new Set([
|
|
90625
90728
|
"fetch_url",
|
|
90626
90729
|
"web_search",
|
|
@@ -90642,7 +90745,7 @@ function buildSystemPrompt(assistantName, memory, tools, promptOverride, sharedS
|
|
|
90642
90745
|
if (has("create_directory")) strategyLines.push("- Prefer create_directory over bash for creating directories.");
|
|
90643
90746
|
if (has("patch_file")) strategyLines.push("- Use patch_file for targeted edits in existing files — it finds and replaces a single unique text match, works reliably with large files, and avoids the pitfalls of sed or heredocs. Include 2-3 lines of surrounding context to ensure a unique match.");
|
|
90644
90747
|
if (has("attach_file_to_chat")) strategyLines.push("- When sharing workspace images or files in chat, prefer attach_file_to_chat first. It validates the path and returns exact markdown references to the file path (for example:  or [report.pdf](path/to/report.pdf)) so ShadowClaw can inline and external channels can attach reliably.");
|
|
90645
|
-
if (has("send_file")) strategyLines.push("- Use send_file to transfer a workspace file directly to
|
|
90748
|
+
if (has("send_file")) strategyLines.push("- Use send_file to transfer a workspace file directly to connected peer(s) over the P2P data channel. It works in both direct peer conversations (groupId starting with 'peer:') and multi-party rooms (groupId starting with 'room:'). It is non-blocking — you can continue responding while the file transfers in the background. Do NOT use send_file in browser-local or other non-peer conversations.");
|
|
90646
90749
|
if (has("open_file")) strategyLines.push("- Do not use open_file to attach or send files in chat. Use open_file only when the user explicitly asks to open/view a file in the ShadowClaw file viewer.");
|
|
90647
90750
|
if (has("javascript")) {
|
|
90648
90751
|
strategyLines.push("- Prefer javascript usage for data analysis, string processing, and computations over bash.");
|
|
@@ -91986,7 +92089,7 @@ async function compactContext(o, db, groupId = DEFAULT_GROUP_ID) {
|
|
|
91986
92089
|
} catch {}
|
|
91987
92090
|
const compactTools = toolsStore.enabledTools;
|
|
91988
92091
|
const peerState = orchestratorStore.getPeerState(groupId) || void 0;
|
|
91989
|
-
const systemPrompt = buildSystemPrompt(o.assistantName, memory, compactTools, toolsStore.systemPromptOverride, peerState);
|
|
92092
|
+
const systemPrompt = buildSystemPrompt(o.assistantName, memory, compactTools, toolsStore.systemPromptOverride, peerState, void 0, { groupId });
|
|
91990
92093
|
let modelForContext = effectiveModel;
|
|
91991
92094
|
if (effectiveProviderId === "prompt_api" && (effectiveModel === "browser-built-in" || !effectiveModel) && !isPromptApiSupported()) modelForContext = await getConfig(db, CONFIG_KEYS.PROMPT_API_FALLBACK_MODEL) || "onnx-community/Qwen3-0.6B-ONNX";
|
|
91992
92095
|
const contextLimit = getContextLimit(modelForContext);
|
|
@@ -94257,4 +94360,4 @@ const orchestratorStore = new OrchestratorStore();
|
|
|
94257
94360
|
|
|
94258
94361
|
//#endregion
|
|
94259
94362
|
export { setPeerjsPeerAliases as $, registerSubagentCollector as $t, shouldStartLocalScheduler as A, isRetryableHttpError as At, getApiKeyForHeaders as B, DEFAULT_CHUNK_SIZE as Bt, sendTerminalInput as C, formatRequest as Ct, compactContext as D, invokeWithPromptApi as Dt, setVMNetworkRelayURL as E, parseResponse as Et, leaveRoom as F, deleteGroupDirectory as Ft, getProviderRuntimeHeaders as G, upsertRoom as Gt, getAvailableProviders as H, getRoomMetadata as Ht, listRooms as I, copyGroupEntry as It, setBedrockSettings as J, deleteGroupFile as Jt, getReasoningConfig as K, writeGroupFileBytes as Kt, applyLlamafileHeaders as L, ensureBuiltinAiPolyfills as Lt, handleRoomInvite as M, discoverSkills as Mt, inviteToRoom as N, require_gray_matter as Nt, handleWorkerMessage as O, isPromptApiSupported as Ot, joinRoomViaLink as P, moveGroupEntry as Pt, setPeerjsMyAlias as Q, post as Qt, applyMeshLlmHeaders as R, fetchTokenizerConfig as Rt, openTerminalSession as S, buildHeaders as St, setVMBootMode as T, normalizeMeshLlmResult as Tt, getBedrockSettings as U, roomGroupId as Ut, getApiKeyForRequest as V, deleteRoom as Vt, getLlamafileSettings as W, roomIdFromGroupId as Wt, setMeshLlmSettings as X, ensureMainGroupMemory as Xt, setLlamafileSettings as Y, ensureMainGroupIndex as Yt, setModel as Z, groupFileExists as Zt, setUseProxy as _, detectProviderHelpType as _n, setChannelEnabled as _t, updateTaskLastRun as a, writeOpfsPathViaWorker as an, buildLlamafileHelpDialogOptions as at, answerUserPrompt as b, saveMessage as bt, setMaxIterations as c, sanitizeModelOutput as cn, clearPeerJsTypingState as ct, setRateLimitAutoAdapt as d, formatModelAttachmentCapabilitySummary as dn, getChannelEnabled as dt, setPostHandler as en, setProvider as et, setRateLimitCallsPerMinute as f, getAttachmentCategory as fn, getChannelTypeForGroup as ft, setTaskServerUrl as g, buildProviderHelpDialogOptions as gn, loadChannelEnabled as gt, setTaskServerEnabled as h, estimateTokens as hn, getTelegramConfig as ht, deleteAllGroupFiles as i, writeFileHandle as in, LLAMAFILE_EXPECTED_DIR as it, createRoom as j, withRetry as jt, runTaskAsScheduled as k, executeTool as kt, setMaxTokens as l, listGroups as ln, configureIMessage as lt, setStreamingEnabled as m, buildDynamicContext as mn, getPeerJsConfig as mt, orchestrator_exports as n, writeGroupFile as nn, stopTransformersProgressPolling as nt, clearGroupMessages as o, createToolActivityMessage as on, deliverResponse as ot, setReasoningEffort as p, getModelAttachmentCapabilities as pn, getIMessageConfig as pt, setAssistantName as q, createGroupDirectory as qt, getStaticPageContent as r, uploadGroupFile as rn, buildTransformersJsHelpDialogOptions as rt, setContextCompressionEnabled as s, createLogMessage as sn, applyAllChannelRunningStates as st, orchestratorStore as t, unregisterSubagentCollector as tn, startTransformersProgressPolling as tt, setProxyUrl as u, buildConversationMessages as un, configureTelegram as ut, setVMBashTimeout as v, submitMessage as vt, setVMBootHost as w, getContextLimit as wt, closeTerminalSession as x, buildSystemPrompt as xt, syncProxyConfigToServiceWorker as y, normalizeStringList as yt, cancelLlamafileRequest as z, loadModelStream as zt };
|
|
94260
|
-
//# sourceMappingURL=orchestrator-
|
|
94363
|
+
//# sourceMappingURL=orchestrator-C6dc-2OQ.js.map
|