shadow-claw 1.51.0 → 1.52.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.well-known/mcp/server-card.json +1 -1
- package/.well-known/mcp.json +1 -1
- package/README.md +1 -1
- package/dist/cli/{chunk-Dtse8rAn.js → chunk-5ryVpyup.js} +1 -1
- package/dist/cli/chunk-Aq3057Xo.js +1 -0
- package/dist/cli/{chunk-4CZJpLqA.js → chunk-BV9JBYpl.js} +2 -2
- package/dist/cli/{chunk-mbFAP9Ev.js → chunk-BZI3bWDA.js} +1 -1
- package/dist/cli/chunk-BaUCHRPD.js +1 -0
- package/dist/cli/{chunk-vzUrhBN5.js → chunk-BdbEt6gM.js} +1 -1
- package/dist/cli/{chunk-BU8UG4L_.js → chunk-BiWLawPV.js} +1 -1
- package/dist/cli/chunk-BkLnHJeo.js +1 -0
- package/dist/cli/{chunk-BqfPWIBf.js → chunk-BzWY1sKE.js} +1 -1
- package/dist/cli/{chunk-DajM7Kro.js → chunk-C79eIU-4.js} +1 -1
- package/dist/cli/{chunk-CI9r1AM5.js → chunk-CDw214Zi.js} +1 -1
- package/dist/cli/chunk-CNqc7LLn.js +1 -0
- package/dist/cli/{chunk-CEhU-Ah-.js → chunk-CWW7dqIv.js} +1 -1
- package/dist/cli/{chunk-BT_C3OlA.js → chunk-CcSTYHtR.js} +1 -1
- package/dist/cli/chunk-ClOfk6Ga.js +1 -0
- package/dist/cli/chunk-ComXUwW0.js +1 -0
- package/dist/cli/{chunk-lL1BhHVe.js → chunk-CooeO4UQ.js} +1 -1
- package/dist/cli/{chunk-khr7--yI.js → chunk-CtfWY4G6.js} +1 -1
- package/dist/cli/{chunk-C4iW1XuQ.js → chunk-DFgSiYMW.js} +1 -1
- package/dist/cli/chunk-DGBnjngK.js +1 -0
- package/dist/cli/{chunk-D7bFIUK3.js → chunk-DGu1OhJs.js} +1 -1
- package/dist/cli/{chunk-CzfOerQR.js → chunk-DIjCY0Wf.js} +1 -1
- package/dist/cli/{chunk-D-iqEY5G.js → chunk-DJ_LeQtz.js} +1 -1
- package/dist/cli/{chunk-BmEsDkRK.js → chunk-DQRu-9wO.js} +1 -1
- package/dist/cli/{chunk-DojiYody.js → chunk-DToVgO9a.js} +1 -1
- package/dist/cli/{chunk-De5a_Rlp.js → chunk-DVbNkQRL.js} +1 -1
- package/dist/cli/{chunk-c8MIYB2y.js → chunk-Ddtzaj43.js} +1 -1
- package/dist/cli/{chunk-aJ6fufe-.js → chunk-DiqS56rD.js} +1 -1
- package/dist/cli/{chunk-CeUEmZNt.js → chunk-DnRcu9b4.js} +1 -1
- package/dist/cli/chunk-DtgZDsJA.js +1 -0
- package/dist/cli/{chunk-DVMcK7g6.js → chunk-Du4qvxo_.js} +2 -2
- package/dist/cli/{chunk-CegcvNc9.js → chunk-Dz5_hgvL.js} +8 -8
- package/dist/cli/{chunk-Cd4Dv5Eq.js → chunk-I3mxEelq.js} +1 -1
- package/dist/cli/{chunk-Do3VICh1.js → chunk-IU2SH_ti.js} +1 -1
- package/dist/cli/{chunk-BQveaAaD.js → chunk-NC8XsSSA.js} +1 -1
- package/dist/cli/{chunk-D702W_Ry.js → chunk-Q4BZ9QN9.js} +1 -1
- package/dist/cli/chunk-WTlDd4Ou.js +1 -0
- package/dist/cli/chunk-XGzq5joC.js +1 -0
- package/dist/cli/{chunk-ar7eAlxK.js → chunk-aJfaGe2s.js} +8 -8
- package/dist/cli/chunk-bPVrFlmk.js +1 -0
- package/dist/cli/chunk-jXJHKxdR.js +1 -0
- package/dist/cli/{chunk-C3dTAmV_.js → chunk-rstVU7U0.js} +1 -1
- package/dist/cli/{chunk-DGfTzQui.js → chunk-t72uObQ7.js} +1 -1
- package/dist/cli/{chunk-DDgfljzN.js → chunk-vq8xlroY.js} +1 -1
- package/dist/cli/cli.js +1 -1
- package/dist/headless-agent.js +1 -1
- package/dist/lib/components/common/shadow-claw-provider-model-picker.js +1 -1
- package/dist/lib/components/index.js +27 -27
- 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/model-ranking.d.ts +12 -0
- 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/shadow-claw-chat.d.ts +1 -0
- 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-provider-model-picker.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/config.d.ts +2 -1
- package/dist/lib/{config-DxDaVDTn.js → config-DFLs7eoC.js} +3 -2
- package/dist/lib/config-DFLs7eoC.js.map +1 -0
- package/dist/lib/{configurePeerJs-ScwZiGbF.js → configurePeerJs-DJ0H6e6s.js} +3 -3
- package/dist/lib/{configurePeerJs-ScwZiGbF.js.map → configurePeerJs-DJ0H6e6s.js.map} +1 -1
- package/dist/lib/{connections-D82zele0.js → connections-DT3nPylw.js} +2 -2
- package/dist/lib/{connections-D82zele0.js.map → connections-DT3nPylw.js.map} +1 -1
- package/dist/lib/{downloadGroupFile-D7-5y6NI.js → downloadGroupFile-DMnAiPj4.js} +2 -2
- package/dist/lib/{downloadGroupFile-D7-5y6NI.js.map → downloadGroupFile-DMnAiPj4.js.map} +1 -1
- package/dist/lib/{file-viewer-BMvvndPQ.js → file-viewer-OHmGC_l7.js} +5 -5
- package/dist/lib/{file-viewer-BMvvndPQ.js.map → file-viewer-OHmGC_l7.js.map} +1 -1
- package/dist/lib/{getGroupDir-BidwYPfP.js → getGroupDir-mTV2Iz2b.js} +3 -3
- package/dist/lib/{getGroupDir-BidwYPfP.js.map → getGroupDir-mTV2Iz2b.js.map} +1 -1
- package/dist/lib/{git-CXmWufWS.js → git-CGdKghMC.js} +3 -3
- package/dist/lib/{git-CXmWufWS.js.map → git-CGdKghMC.js.map} +1 -1
- package/dist/lib/index.js +28 -28
- package/dist/lib/{initChatSplitResize-tvUZ-wsp.js → initChatSplitResize-B8zHHQdm.js} +2 -2
- package/dist/lib/{initChatSplitResize-tvUZ-wsp.js.map → initChatSplitResize-B8zHHQdm.js.map} +1 -1
- package/dist/lib/{initControlPlane-Dnjkb-6J.js → initControlPlane-BczrlTf3.js} +14 -14
- package/dist/lib/{initControlPlane-Dnjkb-6J.js.map → initControlPlane-BczrlTf3.js.map} +1 -1
- package/dist/lib/{markdown-WCXar9C8.js → markdown-D-7Cjyye.js} +3 -3
- package/dist/lib/{markdown-WCXar9C8.js.map → markdown-D-7Cjyye.js.map} +1 -1
- package/dist/lib/{mcp-reconnect-WTOQONHZ.js → mcp-reconnect-Czf7QCCv.js} +2 -2
- package/dist/lib/{mcp-reconnect-WTOQONHZ.js.map → mcp-reconnect-Czf7QCCv.js.map} +1 -1
- package/dist/lib/{memoryStorage-Bo2Wpfmg.js → memoryStorage-CXyKsKMo.js} +2 -2
- package/dist/lib/{memoryStorage-Bo2Wpfmg.js.map → memoryStorage-CXyKsKMo.js.map} +1 -1
- package/dist/lib/model-ranking-Bo8CpGH1.js +116 -0
- package/dist/lib/model-ranking-Bo8CpGH1.js.map +1 -0
- package/dist/lib/{orchestrator-Crw4btGn.js → orchestrator-BK138MkV.js} +10 -10
- package/dist/lib/{orchestrator-Crw4btGn.js.map → orchestrator-BK138MkV.js.map} +1 -1
- package/dist/lib/{orchestrator-Dro541iH.js → orchestrator-BtbxiPQB.js} +17 -16
- package/dist/lib/{orchestrator-Dro541iH.js.map → orchestrator-BtbxiPQB.js.map} +1 -1
- package/dist/lib/{peerjs-D741bHrf.js → peerjs-QJr03K9F.js} +7 -7
- package/dist/lib/{peerjs-D741bHrf.js.map → peerjs-QJr03K9F.js.map} +1 -1
- package/dist/lib/{prompt-api-D9XdrCep.js → prompt-api-vf351sf2.js} +2 -19
- package/dist/lib/{prompt-api-D9XdrCep.js.map → prompt-api-vf351sf2.js.map} +1 -1
- package/dist/lib/{push-client-DKFUY_Ti.js → push-client-BOHgqHbk.js} +4 -4
- package/dist/lib/{push-client-DKFUY_Ti.js.map → push-client-BOHgqHbk.js.map} +1 -1
- package/dist/lib/{readGroupFileBytes-C8Xqlb8l.js → readGroupFileBytes-CRA6dmgT.js} +2 -2
- package/dist/lib/{readGroupFileBytes-C8Xqlb8l.js.map → readGroupFileBytes-CRA6dmgT.js.map} +1 -1
- package/dist/lib/{shadow-claw-a2ui-CPydWVdW.js → shadow-claw-a2ui-DbZa4Gxp.js} +2 -2
- package/dist/lib/{shadow-claw-a2ui-CPydWVdW.js.map → shadow-claw-a2ui-DbZa4Gxp.js.map} +1 -1
- package/dist/lib/{shadow-claw-accounts-CUypXc3I.js → shadow-claw-accounts-B6OW2NVD.js} +3 -3
- package/dist/lib/{shadow-claw-accounts-CUypXc3I.js.map → shadow-claw-accounts-B6OW2NVD.js.map} +1 -1
- package/dist/lib/{shadow-claw-channel-config-D_Vb2ous.js → shadow-claw-channel-config-F_EJ-uK2.js} +3 -3
- package/dist/lib/{shadow-claw-channel-config-D_Vb2ous.js.map → shadow-claw-channel-config-F_EJ-uK2.js.map} +1 -1
- package/dist/lib/{shadow-claw-channels-hgjjzvRr.js → shadow-claw-channels-XYylMpjg.js} +3 -3
- package/dist/lib/{shadow-claw-channels-hgjjzvRr.js.map → shadow-claw-channels-XYylMpjg.js.map} +1 -1
- package/dist/lib/{shadow-claw-chat-D69IiLXd.js → shadow-claw-chat-dbK_DGO_.js} +124 -38
- package/dist/lib/shadow-claw-chat-dbK_DGO_.js.map +1 -0
- package/dist/lib/{shadow-claw-control-plane-zBYlFvzQ.js → shadow-claw-control-plane-BJKkmahQ.js} +7 -7
- package/dist/lib/{shadow-claw-control-plane-zBYlFvzQ.js.map → shadow-claw-control-plane-BJKkmahQ.js.map} +1 -1
- package/dist/lib/{shadow-claw-conversations-1GW8_e8o.js → shadow-claw-conversations-BKSsMYTc.js} +6 -6
- package/dist/lib/{shadow-claw-conversations-1GW8_e8o.js.map → shadow-claw-conversations-BKSsMYTc.js.map} +1 -1
- package/dist/lib/{shadow-claw-D3z3tFyE.js → shadow-claw-eBB2dbpd.js} +11 -11
- package/dist/lib/{shadow-claw-D3z3tFyE.js.map → shadow-claw-eBB2dbpd.js.map} +1 -1
- package/dist/lib/{shadow-claw-file-viewer-DI4r7Th9.js → shadow-claw-file-viewer-BqChtTvM.js} +8 -8
- package/dist/lib/{shadow-claw-file-viewer-DI4r7Th9.js.map → shadow-claw-file-viewer-BqChtTvM.js.map} +1 -1
- package/dist/lib/{shadow-claw-files-BM7qW3TW.js → shadow-claw-files-Bu7VCQw6.js} +9 -9
- package/dist/lib/{shadow-claw-files-BM7qW3TW.js.map → shadow-claw-files-Bu7VCQw6.js.map} +1 -1
- package/dist/lib/{shadow-claw-git-BBTiTYIn.js → shadow-claw-git-CdPPN6Qb.js} +6 -6
- package/dist/lib/{shadow-claw-git-BBTiTYIn.js.map → shadow-claw-git-CdPPN6Qb.js.map} +1 -1
- package/dist/lib/{shadow-claw-integrations-DTY3E545.js → shadow-claw-integrations-DehqBSRe.js} +4 -4
- package/dist/lib/{shadow-claw-integrations-DTY3E545.js.map → shadow-claw-integrations-DehqBSRe.js.map} +1 -1
- package/dist/lib/{shadow-claw-llm-AJwzkOGo.js → shadow-claw-llm-COZkufA8.js} +13 -11
- package/dist/lib/shadow-claw-llm-COZkufA8.js.map +1 -0
- package/dist/lib/{shadow-claw-mcp-remote-n7YXKxmv.js → shadow-claw-mcp-remote-axF50-le.js} +4 -4
- package/dist/lib/{shadow-claw-mcp-remote-n7YXKxmv.js.map → shadow-claw-mcp-remote-axF50-le.js.map} +1 -1
- package/dist/lib/{shadow-claw-networking-B3leDgZ4.js → shadow-claw-networking-BT_Rxj36.js} +2 -2
- package/dist/lib/{shadow-claw-networking-B3leDgZ4.js.map → shadow-claw-networking-BT_Rxj36.js.map} +1 -1
- package/dist/lib/{shadow-claw-notifications-Bm2aHQ0U.js → shadow-claw-notifications-ClqAXDDN.js} +3 -3
- package/dist/lib/{shadow-claw-notifications-Bm2aHQ0U.js.map → shadow-claw-notifications-ClqAXDDN.js.map} +1 -1
- package/dist/lib/{shadow-claw-page-header-BBqSWlhP.js → shadow-claw-page-header-bigC_h6U.js} +2 -2
- package/dist/lib/{shadow-claw-page-header-BBqSWlhP.js.map → shadow-claw-page-header-bigC_h6U.js.map} +1 -1
- package/dist/lib/{shadow-claw-pages-BFOcluFY.js → shadow-claw-pages-kA2qa-4B.js} +9 -9
- package/dist/lib/{shadow-claw-pages-BFOcluFY.js.map → shadow-claw-pages-kA2qa-4B.js.map} +1 -1
- package/dist/lib/{shadow-claw-peerjs-BvD_MH_l.js → shadow-claw-peerjs-CvcH2DkA.js} +3 -3
- package/dist/lib/{shadow-claw-peerjs-BvD_MH_l.js.map → shadow-claw-peerjs-CvcH2DkA.js.map} +1 -1
- package/dist/lib/{shadow-claw-provider-model-picker-CsA-507a.js → shadow-claw-provider-model-picker-fcVQdDtQ.js} +2 -2
- package/dist/lib/{shadow-claw-provider-model-picker-CsA-507a.js.map → shadow-claw-provider-model-picker-fcVQdDtQ.js.map} +1 -1
- package/dist/lib/{shadow-claw-settings-CZgGMz0a.js → shadow-claw-settings-CkO6JjA4.js} +6 -6
- package/dist/lib/{shadow-claw-settings-CZgGMz0a.js.map → shadow-claw-settings-CkO6JjA4.js.map} +1 -1
- package/dist/lib/{shadow-claw-storage-BTUpEKO0.js → shadow-claw-storage-10w-y8vL.js} +5 -5
- package/dist/lib/{shadow-claw-storage-BTUpEKO0.js.map → shadow-claw-storage-10w-y8vL.js.map} +1 -1
- package/dist/lib/{shadow-claw-task-server-B1X2AYyZ.js → shadow-claw-task-server-U98sZxPu.js} +2 -2
- package/dist/lib/{shadow-claw-task-server-B1X2AYyZ.js.map → shadow-claw-task-server-U98sZxPu.js.map} +1 -1
- package/dist/lib/{shadow-claw-tasks-BYtaRUAd.js → shadow-claw-tasks-DrSVUOsP.js} +8 -8
- package/dist/lib/{shadow-claw-tasks-BYtaRUAd.js.map → shadow-claw-tasks-DrSVUOsP.js.map} +1 -1
- package/dist/lib/{shadow-claw-terminal-LGuXKu77.js → shadow-claw-terminal-B7HYLuce.js} +2 -2
- package/dist/lib/{shadow-claw-terminal-LGuXKu77.js.map → shadow-claw-terminal-B7HYLuce.js.map} +1 -1
- package/dist/lib/{shadow-claw-tools-C_S-xXVG.js → shadow-claw-tools-BKrXzZfF.js} +7 -7
- package/dist/lib/{shadow-claw-tools-C_S-xXVG.js.map → shadow-claw-tools-BKrXzZfF.js.map} +1 -1
- package/dist/lib/{shadow-claw-webvm-Cab1n1bu.js → shadow-claw-webvm-Duwa5oiW.js} +3 -3
- package/dist/lib/{shadow-claw-webvm-Cab1n1bu.js.map → shadow-claw-webvm-Duwa5oiW.js.map} +1 -1
- package/dist/lib/{syncWebMcpRegistration-Dy5NS_4G.js → syncWebMcpRegistration-BOx-0F6_.js} +5 -5
- package/dist/lib/{syncWebMcpRegistration-Dy5NS_4G.js.map → syncWebMcpRegistration-BOx-0F6_.js.map} +1 -1
- package/dist/lib/{tools-B7gC1eb_.js → tools-BEuBatUs.js} +4 -4
- package/dist/lib/{tools-B7gC1eb_.js.map → tools-BEuBatUs.js.map} +1 -1
- package/dist/lib/utils/index.js +1 -1
- package/dist/lib/utils/utils.js +1 -1
- package/dist/lib/{utils-D_ylqOY-.js → utils-D8AxCH6m.js} +2 -2
- package/dist/lib/{utils-D_ylqOY-.js.map → utils-D8AxCH6m.js.map} +1 -1
- package/dist/lib/{webmcp-CkYINKJj.js → webmcp-BjfVWX1K.js} +2 -2
- package/dist/lib/{webmcp-CkYINKJj.js.map → webmcp-BjfVWX1K.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/README.md +1 -1
- package/dist/public/agent.worker.js +1 -1
- package/dist/public/components/shadow-claw-chat/shadow-claw-chat.html +1 -1
- package/dist/public/config-071HSho8.js +1 -0
- package/dist/public/{configurePeerJs-DQQ6YL-5.js → configurePeerJs-DL-LurJY.js} +1 -1
- package/dist/public/{connections-CRNk2FxF.js → connections-Bb0rBpV-.js} +1 -1
- package/dist/public/{custom-element-security-3_FKCXcg.js → custom-element-security-Td4vrRc_.js} +1 -1
- package/dist/public/docs/example/article/index.html +1 -1
- package/dist/public/docs/example/article.html +1 -1
- package/dist/public/docs/publishing/index.html +1 -1
- package/dist/public/docs/publishing.html +1 -1
- package/dist/public/docs/skill-creator/index.html +1 -1
- package/dist/public/docs/skill-creator.html +1 -1
- package/dist/public/docs/subsystems/providers.md +1 -1
- package/dist/public/{downloadGroupFile-wkdhVgrZ.js → downloadGroupFile-Unq8_7D9.js} +1 -1
- package/dist/public/{e2e-bridge-DnFHPuwg.js → e2e-bridge-Dbc9fCDq.js} +1 -1
- package/dist/public/{file-viewer-C92v4Ggd.js → file-viewer-QkCuknFn.js} +1 -1
- package/dist/public/{getGroupDir-BGGIJL4Y.js → getGroupDir-Bj5XCflQ.js} +1 -1
- package/dist/public/{git-BH6qyToB.js → git-Bhz4YHc8.js} +2 -2
- package/dist/public/index.html +1 -1
- package/dist/public/index.js +1 -1
- package/dist/public/{initChatSplitResize--RH5kzVF.js → initChatSplitResize-KNL9Oh7s.js} +1 -1
- package/dist/public/{initControlPlane-yPJ3ajkj.js → initControlPlane-D2fVhRFC.js} +1 -1
- package/dist/public/main/index.html +1 -1
- package/dist/public/main/memory/index.html +1 -1
- package/dist/public/main/memory.html +1 -1
- package/dist/public/main.html +1 -1
- package/dist/public/{markdown-CA0v11cd.js → markdown-By6gdUvF.js} +1 -1
- package/dist/public/{mcp-reconnect-uyNSigzu.js → mcp-reconnect-CDRJPuoN.js} +1 -1
- package/dist/public/{memoryStorage-DjPNAT5t.js → memoryStorage-C-ao9y-j.js} +1 -1
- package/dist/public/model-ranking-DUdrFOcC.js +1 -0
- package/dist/public/{orchestrator-DTzgyL23.js → orchestrator-B7MpomoG.js} +2 -2
- package/dist/public/{orchestrator-Cmr69pMC.js → orchestrator-C8aIHbDy.js} +2 -2
- package/dist/public/{peerjs-Br38mUFC.js → peerjs-DwGjY5VX.js} +1 -1
- package/dist/public/prompt-api-BWe_j3Wg.js +1 -0
- package/dist/public/{push-client-CB8haOGC.js → push-client-o8g5_EOe.js} +1 -1
- package/dist/public/service-worker.js +1 -1
- package/dist/public/{shadow-claw-RuFQ2Ej5.js → shadow-claw-Ba2ZFE9m.js} +2 -2
- package/dist/public/{shadow-claw-accounts-BMsEItB6.js → shadow-claw-accounts-BbNPiiaV.js} +1 -1
- package/dist/public/{shadow-claw-channels-Q_AXuEaI.js → shadow-claw-channels-CHGtPkfY.js} +1 -1
- package/dist/public/{shadow-claw-chat-DZQ3OaH7.js → shadow-claw-chat-3TmjJA6-.js} +90 -23
- package/dist/public/{shadow-claw-control-plane-CyXA8tB8.js → shadow-claw-control-plane-BAFT06LL.js} +2 -2
- package/dist/public/{shadow-claw-conversations-BLKtlvHe.js → shadow-claw-conversations-DsQ_kxWm.js} +1 -1
- package/dist/public/{shadow-claw-file-viewer-CVLDfpZe.js → shadow-claw-file-viewer-hBxTknL2.js} +1 -1
- package/dist/public/{shadow-claw-files-DB6VVjir.js → shadow-claw-files-Daw6IIrJ.js} +1 -1
- package/dist/public/{shadow-claw-git-D57bTSMF.js → shadow-claw-git-CxGwyxim.js} +2 -2
- package/dist/public/{shadow-claw-integrations-BOwhUY-4.js → shadow-claw-integrations-DnIr6xp-.js} +1 -1
- package/dist/public/{shadow-claw-llm-CYenm-mm.js → shadow-claw-llm-Bc6tZ8kk.js} +3 -3
- package/dist/public/{shadow-claw-mcp-remote-CJ-Ckl0j.js → shadow-claw-mcp-remote-nGPpFpI-.js} +1 -1
- package/dist/public/{shadow-claw-networking-Cut76YQL.js → shadow-claw-networking-B6YgtiA7.js} +1 -1
- package/dist/public/{shadow-claw-notifications-C3kYCrIa.js → shadow-claw-notifications-BSxifptS.js} +1 -1
- package/dist/public/{shadow-claw-page-header-Dd7QafUk.js → shadow-claw-page-header-LzVgEn46.js} +1 -1
- package/dist/public/{shadow-claw-pages-BWtVtwTG.js → shadow-claw-pages-Cy6T0G9y.js} +1 -1
- package/dist/public/{shadow-claw-settings-Bj7jnngO.js → shadow-claw-settings-DGkwt1ge.js} +2 -2
- package/dist/public/{shadow-claw-storage-CMSzQs1-.js → shadow-claw-storage-DX_4T7KR.js} +1 -1
- package/dist/public/{shadow-claw-task-server-CFclo7UX.js → shadow-claw-task-server-DTsbEs5z.js} +1 -1
- package/dist/public/{shadow-claw-tasks-ClDdeB6Z.js → shadow-claw-tasks-rr6fMxAM.js} +1 -1
- package/dist/public/{shadow-claw-terminal-3ysWZJix.js → shadow-claw-terminal-C7DhrrX6.js} +1 -1
- package/dist/public/{shadow-claw-tools-DQVwpTcZ.js → shadow-claw-tools-DcQroojH.js} +1 -1
- package/dist/public/{shadow-claw-webvm-Cnxz04Fk.js → shadow-claw-webvm-bZj44Did.js} +1 -1
- package/dist/public/{syncWebMcpRegistration-QwnLMAK3.js → syncWebMcpRegistration-XJjIlDNO.js} +1 -1
- package/dist/public/{tools-DvQ_ngXn.js → tools-BpZh7hgB.js} +1 -1
- package/dist/public/{webmcp-CJymew4t.js → webmcp-CkfDZfZ0.js} +1 -1
- package/dist/server.js +1 -1
- package/package.json +1 -1
- package/src/components/settings/shadow-claw-llm/model-ranking.test.ts +121 -7
- package/src/components/settings/shadow-claw-llm/model-ranking.ts +97 -0
- package/src/components/settings/shadow-claw-llm/shadow-claw-llm.test.ts +35 -0
- package/src/components/settings/shadow-claw-llm/shadow-claw-llm.ts +15 -5
- package/src/components/shadow-claw-chat/shadow-claw-chat.html +81 -14
- package/src/components/shadow-claw-chat/shadow-claw-chat.test.ts +73 -0
- package/src/components/shadow-claw-chat/shadow-claw-chat.trusted-types.test.ts +3 -0
- package/src/components/shadow-claw-chat/shadow-claw-chat.ts +79 -32
- package/src/config/config.test.ts +4 -4
- package/src/config/config.ts +2 -1
- package/src/core/orchestrator/orchestrator.test.ts +2 -1
- package/src/core/orchestrator/utils/initTasks.ts +5 -4
- package/dist/cli/chunk-B3S061IE.js +0 -1
- package/dist/cli/chunk-BUJdF9o3.js +0 -1
- package/dist/cli/chunk-BX0R2gIY.js +0 -1
- package/dist/cli/chunk-BoiPfhwJ.js +0 -1
- package/dist/cli/chunk-BtJYj7vB.js +0 -1
- package/dist/cli/chunk-BwXrZVeU.js +0 -1
- package/dist/cli/chunk-CaWh9Pru.js +0 -1
- package/dist/cli/chunk-Ck4ePI8z.js +0 -1
- package/dist/cli/chunk-Ctg-SXcP.js +0 -1
- package/dist/cli/chunk-DTKv1-tk.js +0 -1
- package/dist/cli/chunk-DdYpd9Nu.js +0 -1
- package/dist/cli/chunk-DflhmBY2.js +0 -1
- package/dist/lib/config-DxDaVDTn.js.map +0 -1
- package/dist/lib/model-ranking-CDXs7hkK.js +0 -57
- package/dist/lib/model-ranking-CDXs7hkK.js.map +0 -1
- package/dist/lib/shadow-claw-chat-D69IiLXd.js.map +0 -1
- package/dist/lib/shadow-claw-llm-AJwzkOGo.js.map +0 -1
- package/dist/public/config-Dqn5OMfC.js +0 -1
- package/dist/public/model-ranking-DLIC9IDU.js +0 -1
- package/dist/public/prompt-api-B-8N-MRY.js +0 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoryStorage-Bo2Wpfmg.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-CXyKsKMo.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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"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { C as PROVIDERS } from "./config-DFLs7eoC.js";
|
|
2
|
+
import { r as escapeHtml } from "./utils-D8AxCH6m.js";
|
|
3
|
+
|
|
4
|
+
//#region src/components/settings/shadow-claw-llm/model-ranking.ts
|
|
5
|
+
function parseModelBillionsFromId(modelId) {
|
|
6
|
+
const normalized = modelId.toLowerCase();
|
|
7
|
+
const directMatch = /(?:^|[-_\/.])(\d+(?:\.\d+)?)b(?:[-_\/.]|$)/i.exec(normalized);
|
|
8
|
+
if (directMatch) {
|
|
9
|
+
const parsed = Number(directMatch[1]);
|
|
10
|
+
if (Number.isFinite(parsed) && parsed > 0) return parsed;
|
|
11
|
+
}
|
|
12
|
+
const effectiveMatch = /(?:^|[-_\/.])e(\d+(?:\.\d+)?)b(?:[-_\/.]|$)/i.exec(normalized);
|
|
13
|
+
if (!effectiveMatch) return null;
|
|
14
|
+
const parsed = Number(effectiveMatch[1]);
|
|
15
|
+
if (!Number.isFinite(parsed) || parsed <= 0) return null;
|
|
16
|
+
return parsed;
|
|
17
|
+
}
|
|
18
|
+
function isLikelyInstructionModelId(modelId) {
|
|
19
|
+
const id = modelId.toLowerCase();
|
|
20
|
+
if (/(^|[-_./])(instruct|chat|assistant|tool|it)([-_./]|$)/i.test(id)) return true;
|
|
21
|
+
if (/(qwen\d*(?:\.\d+)?|deepseek-r1-distill)/i.test(id)) return true;
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
function hasQuantizedHint(modelId) {
|
|
25
|
+
return /(^|[-_./])(q\d+|int8|uint8|4bit|8bit|bnb4|opt)([-_./]|$)/i.test(modelId);
|
|
26
|
+
}
|
|
27
|
+
function getLocalModelSortScore(candidate, providerId) {
|
|
28
|
+
const idLower = candidate.id.toLowerCase();
|
|
29
|
+
const sizeB = parseModelBillionsFromId(candidate.id);
|
|
30
|
+
let score = 0;
|
|
31
|
+
if (!candidate.supportsTools) score += 60;
|
|
32
|
+
if (isLikelyInstructionModelId(candidate.id)) score -= 40;
|
|
33
|
+
if (idLower.includes("onnx")) score -= 30;
|
|
34
|
+
else score += 90;
|
|
35
|
+
if (hasQuantizedHint(idLower)) score -= 20;
|
|
36
|
+
if (sizeB === null) score += 10;
|
|
37
|
+
else if (sizeB <= .6) score -= 120;
|
|
38
|
+
else if (sizeB <= .8) score -= 100;
|
|
39
|
+
else if (sizeB <= 1.2) score -= 80;
|
|
40
|
+
else if (sizeB <= 1.8) score -= 40;
|
|
41
|
+
else if (sizeB <= 3) score += 20;
|
|
42
|
+
else score += 80;
|
|
43
|
+
if (/thinking|reasoning/i.test(idLower)) score += 25;
|
|
44
|
+
if (providerId === "transformers_js_browser") {
|
|
45
|
+
if (sizeB !== null && sizeB > 1.5) score += 40;
|
|
46
|
+
if (!idLower.includes("onnx")) score += 80;
|
|
47
|
+
}
|
|
48
|
+
return score;
|
|
49
|
+
}
|
|
50
|
+
const ORIGINAL_PROMPT_API_MODELS = [
|
|
51
|
+
"onnx-community/Qwen3-0.6B-ONNX",
|
|
52
|
+
"onnx-community/gemma-3-1b-it-ONNX-GQA",
|
|
53
|
+
"onnx-community/gemma-4-E2B-it-ONNX",
|
|
54
|
+
"onnx-community/gemma-4-E4B-it-ONNX"
|
|
55
|
+
];
|
|
56
|
+
const CURATED_PROMPT_API_MODEL_LABELS = {
|
|
57
|
+
"onnx-community/Qwen3-0.6B-ONNX": "onnx-community/Qwen3-0.6B-ONNX — Recommended (Fast, Compact & Tool Calling)",
|
|
58
|
+
"onnx-community/gemma-3-1b-it-ONNX-GQA": "onnx-community/gemma-3-1b-it-ONNX-GQA — Alternative (1B Parameters)",
|
|
59
|
+
"onnx-community/gemma-4-E2B-it-ONNX": "onnx-community/gemma-4-E2B-it-ONNX — Alternative (2B Parameters, 128k Context)",
|
|
60
|
+
"onnx-community/gemma-4-E4B-it-ONNX": "onnx-community/gemma-4-E4B-it-ONNX — Alternative (4B Parameters, 128k Context)"
|
|
61
|
+
};
|
|
62
|
+
function compareLocalModelCandidates(a, b, providerId) {
|
|
63
|
+
if (providerId === "transformers_js_browser") {
|
|
64
|
+
const idxA = ORIGINAL_PROMPT_API_MODELS.indexOf(a.id);
|
|
65
|
+
const idxB = ORIGINAL_PROMPT_API_MODELS.indexOf(b.id);
|
|
66
|
+
if (idxA !== -1 && idxB !== -1) return idxA - idxB;
|
|
67
|
+
if (idxA !== -1) return -1;
|
|
68
|
+
if (idxB !== -1) return 1;
|
|
69
|
+
return a.id.localeCompare(b.id);
|
|
70
|
+
}
|
|
71
|
+
const scoreA = getLocalModelSortScore(a, providerId);
|
|
72
|
+
const scoreB = getLocalModelSortScore(b, providerId);
|
|
73
|
+
if (scoreA !== scoreB) return scoreA - scoreB;
|
|
74
|
+
if (a.contextLength !== b.contextLength) return b.contextLength - a.contextLength;
|
|
75
|
+
return a.id.localeCompare(b.id);
|
|
76
|
+
}
|
|
77
|
+
function getSortedTransformersJsBrowserModelIds(modelItems) {
|
|
78
|
+
const staticModels = PROVIDERS.transformers_js_browser?.models || [];
|
|
79
|
+
const rawItems = modelItems && modelItems.length > 0 ? modelItems : staticModels;
|
|
80
|
+
const idSet = /* @__PURE__ */ new Set();
|
|
81
|
+
for (const item of rawItems) {
|
|
82
|
+
const id = typeof item === "string" ? item : item?.id || item?.name;
|
|
83
|
+
if (id && typeof id === "string" && id.trim()) idSet.add(id.trim());
|
|
84
|
+
}
|
|
85
|
+
for (const id of ORIGINAL_PROMPT_API_MODELS) idSet.add(id);
|
|
86
|
+
for (const id of staticModels) idSet.add(id);
|
|
87
|
+
return Array.from(idSet).sort((a, b) => compareLocalModelCandidates({
|
|
88
|
+
id: a,
|
|
89
|
+
supportsTools: isLikelyInstructionModelId(a),
|
|
90
|
+
contextLength: 0
|
|
91
|
+
}, {
|
|
92
|
+
id: b,
|
|
93
|
+
supportsTools: isLikelyInstructionModelId(b),
|
|
94
|
+
contextLength: 0
|
|
95
|
+
}, "transformers_js_browser"));
|
|
96
|
+
}
|
|
97
|
+
function renderTransformersJsBrowserModelOptions(selectedModel, modelItems, options) {
|
|
98
|
+
const sortedModelIds = getSortedTransformersJsBrowserModelIds(modelItems);
|
|
99
|
+
let html = "";
|
|
100
|
+
for (let i = 0; i < sortedModelIds.length; i++) {
|
|
101
|
+
const id = sortedModelIds[i];
|
|
102
|
+
const isSelected = id === selectedModel ? " selected" : "";
|
|
103
|
+
const label = CURATED_PROMPT_API_MODEL_LABELS[id] || `${id}${isLikelyInstructionModelId(id) ? " 🛠️" : ""}`;
|
|
104
|
+
html += `<option value="${escapeHtml(id)}"${isSelected}>${escapeHtml(label)}</option>`;
|
|
105
|
+
if (i === 3 && sortedModelIds.length > 4) html += "<hr>";
|
|
106
|
+
}
|
|
107
|
+
if (options?.includeCustom) {
|
|
108
|
+
const isCustomSelected = selectedModel === "__custom__" || selectedModel !== "" && !sortedModelIds.includes(selectedModel) ? " selected" : "";
|
|
109
|
+
html += `<option value="__custom__"${isCustomSelected}>-- Custom Model ID --</option>`;
|
|
110
|
+
}
|
|
111
|
+
return html;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
//#endregion
|
|
115
|
+
export { renderTransformersJsBrowserModelOptions as i, getSortedTransformersJsBrowserModelIds as n, isLikelyInstructionModelId as r, compareLocalModelCandidates as t };
|
|
116
|
+
//# sourceMappingURL=model-ranking-Bo8CpGH1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-ranking-Bo8CpGH1.js","names":[],"sources":["../../src/components/settings/shadow-claw-llm/model-ranking.ts"],"sourcesContent":["import type { LocalModelRankCandidate } from \"../../types.js\";\nimport { PROVIDERS } from \"../../../config/config.js\";\nimport { escapeHtml } from \"../../../utils/utils.js\";\n\nfunction parseModelBillionsFromId(modelId: string): number | null {\n const normalized = modelId.toLowerCase();\n const directMatch = /(?:^|[-_\\/.])(\\d+(?:\\.\\d+)?)b(?:[-_\\/.]|$)/i.exec(\n normalized,\n );\n if (directMatch) {\n const parsed = Number(directMatch[1]);\n if (Number.isFinite(parsed) && parsed > 0) {\n return parsed;\n }\n }\n\n // Gemma style IDs such as E2B/E4B.\n const effectiveMatch = /(?:^|[-_\\/.])e(\\d+(?:\\.\\d+)?)b(?:[-_\\/.]|$)/i.exec(\n normalized,\n );\n if (!effectiveMatch) {\n return null;\n }\n\n const parsed = Number(effectiveMatch[1]);\n if (!Number.isFinite(parsed) || parsed <= 0) {\n return null;\n }\n\n return parsed;\n}\n\nexport function isLikelyInstructionModelId(modelId: string): boolean {\n const id = modelId.toLowerCase();\n\n if (/(^|[-_./])(instruct|chat|assistant|tool|it)([-_./]|$)/i.test(id)) {\n return true;\n }\n\n // Local catalogs commonly use Qwen* and distilled R1 variants as instruct defaults.\n if (/(qwen\\d*(?:\\.\\d+)?|deepseek-r1-distill)/i.test(id)) {\n return true;\n }\n\n return false;\n}\n\nfunction hasQuantizedHint(modelId: string): boolean {\n return /(^|[-_./])(q\\d+|int8|uint8|4bit|8bit|bnb4|opt)([-_./]|$)/i.test(\n modelId,\n );\n}\n\nfunction getLocalModelSortScore(\n candidate: LocalModelRankCandidate,\n providerId: string,\n): number {\n const idLower = candidate.id.toLowerCase();\n const sizeB = parseModelBillionsFromId(candidate.id);\n let score = 0;\n\n if (!candidate.supportsTools) {\n score += 60;\n }\n\n if (isLikelyInstructionModelId(candidate.id)) {\n score -= 40;\n }\n\n if (idLower.includes(\"onnx\")) {\n score -= 30;\n } else {\n score += 90;\n }\n\n if (hasQuantizedHint(idLower)) {\n score -= 20;\n }\n\n if (sizeB === null) {\n score += 10;\n } else if (sizeB <= 0.6) {\n score -= 120;\n } else if (sizeB <= 0.8) {\n score -= 100;\n } else if (sizeB <= 1.2) {\n score -= 80;\n } else if (sizeB <= 1.8) {\n score -= 40;\n } else if (sizeB <= 3) {\n score += 20;\n } else {\n score += 80;\n }\n\n if (/thinking|reasoning/i.test(idLower)) {\n score += 25;\n }\n\n // Browser runtime has the strictest memory pressure profile.\n if (providerId === \"transformers_js_browser\") {\n if (sizeB !== null && sizeB > 1.5) {\n score += 40;\n }\n\n if (!idLower.includes(\"onnx\")) {\n score += 80;\n }\n }\n\n return score;\n}\n\nexport const ORIGINAL_PROMPT_API_MODELS: readonly string[] = [\n \"onnx-community/Qwen3-0.6B-ONNX\",\n \"onnx-community/gemma-3-1b-it-ONNX-GQA\",\n \"onnx-community/gemma-4-E2B-it-ONNX\",\n \"onnx-community/gemma-4-E4B-it-ONNX\",\n];\n\nexport const CURATED_PROMPT_API_MODEL_LABELS: Record<string, string> = {\n \"onnx-community/Qwen3-0.6B-ONNX\":\n \"onnx-community/Qwen3-0.6B-ONNX — Recommended (Fast, Compact & Tool Calling)\",\n \"onnx-community/gemma-3-1b-it-ONNX-GQA\":\n \"onnx-community/gemma-3-1b-it-ONNX-GQA — Alternative (1B Parameters)\",\n \"onnx-community/gemma-4-E2B-it-ONNX\":\n \"onnx-community/gemma-4-E2B-it-ONNX — Alternative (2B Parameters, 128k Context)\",\n \"onnx-community/gemma-4-E4B-it-ONNX\":\n \"onnx-community/gemma-4-E4B-it-ONNX — Alternative (4B Parameters, 128k Context)\",\n};\n\nexport function compareLocalModelCandidates(\n a: LocalModelRankCandidate,\n b: LocalModelRankCandidate,\n providerId: string,\n): number {\n if (providerId === \"transformers_js_browser\") {\n const idxA = ORIGINAL_PROMPT_API_MODELS.indexOf(a.id);\n const idxB = ORIGINAL_PROMPT_API_MODELS.indexOf(b.id);\n\n if (idxA !== -1 && idxB !== -1) {\n return idxA - idxB;\n }\n if (idxA !== -1) {\n return -1;\n }\n if (idxB !== -1) {\n return 1;\n }\n\n return a.id.localeCompare(b.id);\n }\n\n const scoreA = getLocalModelSortScore(a, providerId);\n const scoreB = getLocalModelSortScore(b, providerId);\n\n if (scoreA !== scoreB) {\n return scoreA - scoreB;\n }\n\n if (a.contextLength !== b.contextLength) {\n return b.contextLength - a.contextLength;\n }\n\n return a.id.localeCompare(b.id);\n}\n\nexport function getSortedTransformersJsBrowserModelIds(\n modelItems?: Array<string | { id?: string; name?: string }>,\n): string[] {\n const staticModels = PROVIDERS.transformers_js_browser?.models || [];\n const rawItems =\n modelItems && modelItems.length > 0 ? modelItems : staticModels;\n\n const idSet = new Set<string>();\n for (const item of rawItems) {\n const id = typeof item === \"string\" ? item : item?.id || item?.name;\n if (id && typeof id === \"string\" && id.trim()) {\n idSet.add(id.trim());\n }\n }\n for (const id of ORIGINAL_PROMPT_API_MODELS) {\n idSet.add(id);\n }\n for (const id of staticModels) {\n idSet.add(id);\n }\n\n const allIds = Array.from(idSet);\n return allIds.sort((a, b) =>\n compareLocalModelCandidates(\n { id: a, supportsTools: isLikelyInstructionModelId(a), contextLength: 0 },\n { id: b, supportsTools: isLikelyInstructionModelId(b), contextLength: 0 },\n \"transformers_js_browser\",\n ),\n );\n}\n\nexport function renderTransformersJsBrowserModelOptions(\n selectedModel: string,\n modelItems?: Array<string | { id?: string; name?: string }>,\n options?: { includeCustom?: boolean },\n): string {\n const sortedModelIds = getSortedTransformersJsBrowserModelIds(modelItems);\n let html = \"\";\n for (let i = 0; i < sortedModelIds.length; i++) {\n const id = sortedModelIds[i];\n const isSelected = id === selectedModel ? \" selected\" : \"\";\n const label =\n CURATED_PROMPT_API_MODEL_LABELS[id] ||\n `${id}${isLikelyInstructionModelId(id) ? \" 🛠️\" : \"\"}`;\n html += `<option value=\"${escapeHtml(id)}\"${isSelected}>${escapeHtml(label)}</option>`;\n if (i === 3 && sortedModelIds.length > 4) {\n html += \"<hr>\";\n }\n }\n if (options?.includeCustom) {\n const isCustomSelected =\n selectedModel === \"__custom__\" ||\n (selectedModel !== \"\" && !sortedModelIds.includes(selectedModel))\n ? \" selected\"\n : \"\";\n html += `<option value=\"__custom__\"${isCustomSelected}>-- Custom Model ID --</option>`;\n }\n return html;\n}\n"],"mappings":"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"}
|
|
@@ -2,13 +2,13 @@ import { i as __toESM, n as __exportAll, r as __require, t as __commonJSMin } fr
|
|
|
2
2
|
import { n as isSqliteDatabase, r as getDb, t as txPromise } from "./txPromise-DdeRXi7G.js";
|
|
3
3
|
import { t as Signal } from "./dist-Bxg3C_zy.js";
|
|
4
4
|
import { n as filterHeadlessTools, r as isHeadlessMode, t as BROWSER_ONLY_TOOLS } from "./headless-Ci9RT8g6.js";
|
|
5
|
-
import { a as getStorageStatus, i as getStorageRoot, o as invalidateStorageRoot, r as getOpfsRootDirName, s as isStaleHandleError, t as getGroupDir } from "./getGroupDir-
|
|
6
|
-
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-
|
|
5
|
+
import { a as getStorageStatus, i as getStorageRoot, o as invalidateStorageRoot, r as getOpfsRootDirName, s as isStaleHandleError, t as getGroupDir } from "./getGroupDir-mTV2Iz2b.js";
|
|
6
|
+
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-DFLs7eoC.js";
|
|
7
7
|
import { a as getAppBasePath, n as applyBasePath, p as resolveDefaultPinnedPageRef } from "./app-routes-BPhitqrT.js";
|
|
8
8
|
import { t as getConfig } from "./getConfig-SElp6VJW.js";
|
|
9
9
|
import { t as parsePath } from "./parsePath-rArsS7VY.js";
|
|
10
|
-
import { a as groupFileExists, c as writeOpfsPathViaWorker, d as DEFAULT_BUILTIN_PROFILE, f as readGroupFile, l as findDeclarativeTool, o as writeGroupFile, r as parseSkill, s as writeFileHandle, t as toolsStore } from "./tools-
|
|
11
|
-
import { t as readGroupFileBytes } from "./readGroupFileBytes-
|
|
10
|
+
import { a as groupFileExists, c as writeOpfsPathViaWorker, d as DEFAULT_BUILTIN_PROFILE, f as readGroupFile, l as findDeclarativeTool, o as writeGroupFile, r as parseSkill, s as writeFileHandle, t as toolsStore } from "./tools-BEuBatUs.js";
|
|
11
|
+
import { t as readGroupFileBytes } from "./readGroupFileBytes-CRA6dmgT.js";
|
|
12
12
|
import { base64ToBytes, bytesToBase64 } from "./utils/base64.js";
|
|
13
13
|
import { getImageMimeType, getMimeType, guessMimeTypeFromFilename, isImagePath } from "./utils/mime.js";
|
|
14
14
|
import { t as setConfig } from "./setConfig-8FMUTIJ1.js";
|
|
@@ -16,15 +16,15 @@ import { ulid } from "./utils/ulid.js";
|
|
|
16
16
|
import { i as BASIC_CATALOG_REFERENCE, r as A2UI_BASIC_CATALOG_ID, t as TOOL_DEFINITIONS } from "./tools-EgPBGKXR.js";
|
|
17
17
|
import "./tools-C0HX_2YF.js";
|
|
18
18
|
import { t as require_browser } from "./browser-sqa-Vhnx.js";
|
|
19
|
-
import { b as loadCustomElementSecurityFromDb, g as installCustomElementsRegistryGuard, h as installCustomElementDomGuard, l as configureCustomElementSecurity } from "./utils-
|
|
19
|
+
import { b as loadCustomElementSecurityFromDb, g as installCustomElementsRegistryGuard, h as installCustomElementDomGuard, l as configureCustomElementSecurity } from "./utils-D8AxCH6m.js";
|
|
20
20
|
import { t as require_buffer } from "./buffer-CyBrFbsO.js";
|
|
21
21
|
import { n as decryptValue, r as encryptValue } from "./crypto-Bikgpqfe.js";
|
|
22
|
-
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-
|
|
22
|
+
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-Czf7QCCv.js";
|
|
23
23
|
import { t as require_stream_browserify } from "./stream-browserify-BISYjYsN.js";
|
|
24
24
|
import { a as require_define_data_property, c as require_hasown, d as require_type, f as require_es_object_atoms, h as require_inherits_browser, i as require_has_property_descriptors, l as require_get_proto, m as require_shams$1, n as require_which_typed_array, o as require_call_bound, p as require_shams, r as require_call_bind, s as require_get_intrinsic, t as require_is_typed_array, u as require_gopd } from "./is-typed-array-BZc4-Jae.js";
|
|
25
25
|
import { n as require_inflate, o as require_zstream, r as require_deflate, t as require_constants } from "./constants-D0Z10O8r.js";
|
|
26
26
|
import { parseBooleanConfig } from "./utils/parseBooleanConfig.js";
|
|
27
|
-
import { a as upsertEmailConnection, i as listEmailConnections, n as deleteEmailConnection, o as getEmailPluginManifest, r as getEmailConnection, s as listEmailPluginManifests, t as bindEmailCredentialRef } from "./connections-
|
|
27
|
+
import { a as upsertEmailConnection, i as listEmailConnections, n as deleteEmailConnection, o as getEmailPluginManifest, r as getEmailConnection, s as listEmailPluginManifests, t as bindEmailCredentialRef } from "./connections-DT3nPylw.js";
|
|
28
28
|
import { asNumber, asStringArray, asUidArray } from "./utils/coerce.js";
|
|
29
29
|
import { basename, sanitizeFilename } from "./utils/filename.js";
|
|
30
30
|
import { hasPathTraversal, normalizeWorkspacePath } from "./utils/normalizeWorkspacePath.js";
|
|
@@ -32,7 +32,7 @@ import { isBinaryContent, isBinaryContentType } from "./utils/isBinary.js";
|
|
|
32
32
|
import { computeDelay, sleep } from "./utils/delay.js";
|
|
33
33
|
import { t as getAllTasks } from "./getAllTasks-DEko4xIn.js";
|
|
34
34
|
import { normalizeStringList } from "./utils/normalizeStringList.js";
|
|
35
|
-
import { r as getPushUrl, s as getOrCreateSubscriberId } from "./push-client-
|
|
35
|
+
import { r as getPushUrl, s as getOrCreateSubscriberId } from "./push-client-BOHgqHbk.js";
|
|
36
36
|
import { a as showSuccess, o as showToast, r as showError } from "./toast-Ck7OIKDf.js";
|
|
37
37
|
import { getNamespacedItem, setNamespacedItem } from "./utils/namespacedStorage.js";
|
|
38
38
|
import { isPagePathAllowed } from "./utils/isPagePathAllowed.js";
|
|
@@ -82050,7 +82050,7 @@ async function executeDeclarativeTool(db, name, input, groupId, options = {}, de
|
|
|
82050
82050
|
//#region src/worker/utils/executeTool.ts
|
|
82051
82051
|
let gitSubsystemPromise = null;
|
|
82052
82052
|
async function loadGitSubsystem() {
|
|
82053
|
-
if (!gitSubsystemPromise) gitSubsystemPromise = import("./git-
|
|
82053
|
+
if (!gitSubsystemPromise) gitSubsystemPromise = import("./git-CGdKghMC.js");
|
|
82054
82054
|
return gitSubsystemPromise;
|
|
82055
82055
|
}
|
|
82056
82056
|
async function executeGitToolDispatcher(db, name, input, groupId) {
|
|
@@ -87723,4 +87723,4 @@ const orchestratorStore = new OrchestratorStore();
|
|
|
87723
87723
|
|
|
87724
87724
|
//#endregion
|
|
87725
87725
|
export { setPeerjsMyAlias as $, unregisterSubagentCollector as $t, runTaskAsScheduled as A, getContextLimit as At, cancelLlamafileRequest as B, deleteRoom as Bt, openTerminalSession as C, isPromptApiSupported as Ct, setVMNetworkRelayURL as D, withRetry as Dt, setVMBootMode as E, isRetryableHttpError as Et, joinRoomViaLink as F, deleteGroupDirectory as Ft, getLlamafileSettings as G, writeGroupFileBytes as Gt, getApiKeyForRequest as H, roomGroupId as Ht, leaveRoom as I, copyGroupEntry as It, setAssistantName as J, ensureMainGroupIndex as Jt, getProviderRuntimeHeaders as K, createGroupDirectory as Kt, listRooms as L, ensureBuiltinAiPolyfills as Lt, createRoom as M, parseResponse as Mt, handleRoomInvite as N, discoverSkills as Nt, compactContext as O, buildHeaders as Ot, inviteToRoom as P, moveGroupEntry as Pt, setModel as Q, setPostHandler as Qt, applyLlamafileHeaders as R, loadModelStream as Rt, closeTerminalSession as S, invokeWithPromptApi as St, setVMBootHost as T, executeTool as Tt, getAvailableProviders as U, roomIdFromGroupId as Ut, getApiKeyForHeaders as V, getRoomMetadata as Vt, getBedrockSettings as W, upsertRoom as Wt, setLlamafileSettings as X, post as Xt, setBedrockSettings as Y, ensureMainGroupMemory as Yt, setMeshLlmSettings as Z, registerSubagentCollector as Zt, setTaskServerUrl as _, loadChannelEnabled as _t, deleteAllGroupFiles as a, buildConversationMessages as an, LLAMAFILE_EXPECTED_DIR as at, syncProxyConfigToServiceWorker as b, saveMessage as bt, setContextCompressionEnabled as c, getModelAttachmentCapabilities as cn, applyAllChannelRunningStates as ct, setProxyUrl as d, buildProviderHelpDialogOptions as dn, configureTelegram as dt, uploadGroupFile as en, setPeerjsPeerAliases as et, setRateLimitAutoAdapt as f, detectProviderHelpType as fn, getChannelEnabled as ft, setTaskServerEnabled as g, getTelegramConfig as gt, setStreamingEnabled as h, getPeerJsConfig as ht, getStaticPageContent as i, listGroups as in, buildTransformersJsHelpDialogOptions as it, shouldDeferTaskToServer as j, normalizeMeshLlmResult as jt, handleWorkerMessage as k, formatRequest as kt, setMaxIterations as l, buildDynamicContext as ln, clearPeerJsTypingState as lt, setReasoningEffort as m, getIMessageConfig as mt, orchestrator_exports as n, createLogMessage as nn, startTransformersProgressPolling as nt, updateTaskLastRun as o, formatModelAttachmentCapabilitySummary as on, buildLlamafileHelpDialogOptions as ot, setRateLimitCallsPerMinute as p, getChannelTypeForGroup as pt, getReasoningConfig as q, deleteGroupFile as qt, getSiteConfigDefaultPinnedPage as r, sanitizeModelOutput as rn, stopTransformersProgressPolling as rt, clearGroupMessages as s, getAttachmentCategory as sn, deliverResponse as st, orchestratorStore as t, createToolActivityMessage as tn, setProvider as tt, setMaxTokens as u, estimateTokens as un, configureIMessage as ut, setUseProxy as v, setChannelEnabled as vt, sendTerminalInput as w, fetchTokenizerConfig as wt, answerUserPrompt as x, buildSystemPrompt as xt, setVMBashTimeout as y, submitMessage as yt, applyMeshLlmHeaders as z, DEFAULT_CHUNK_SIZE as zt };
|
|
87726
|
-
//# sourceMappingURL=orchestrator-
|
|
87726
|
+
//# sourceMappingURL=orchestrator-BK138MkV.js.map
|