shadow-claw 1.59.7 → 1.60.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 +4 -12
- package/.well-known/mcp.json +4 -12
- package/README.md +6 -2
- package/dist/cli/build/build.js +1 -1
- package/dist/cli/{chunk-DDvuLVfW.js → chunk-3C5izdQW.js} +1 -1
- package/dist/cli/chunk-B-75h9gX.js +1 -0
- package/dist/cli/{chunk-hVf839t7.js → chunk-B7Kn-otm.js} +1 -1
- package/dist/cli/{chunk-YX32FcN7.js → chunk-BBczgswQ.js} +1 -1
- package/dist/cli/{chunk-DcNxjqH6.js → chunk-BE-lYWcn.js} +1 -1
- package/dist/cli/{chunk-CQaCgswD.js → chunk-BECr0WxI.js} +11 -11
- package/dist/cli/chunk-BEz1PD1_.js +1 -0
- package/dist/cli/chunk-BLzI1Fp2.js +1 -0
- package/dist/cli/{chunk-B3TrWbca.js → chunk-BVSC1MNQ.js} +11 -11
- package/dist/cli/{chunk-D_te8ufL.js → chunk-BdWcep6o.js} +1 -1
- package/dist/cli/{chunk-SRBRVorc.js → chunk-BfTpnSS4.js} +1 -1
- package/dist/cli/{chunk-D2_eAO83.js → chunk-BgvqTf7w.js} +1 -1
- package/dist/cli/chunk-BwsJfUT3.js +1 -0
- package/dist/cli/{chunk--PFY91kE.js → chunk-C9b4b7c_.js} +1 -1
- package/dist/cli/{chunk-SxK79JmB.js → chunk-CAw9XYFe.js} +1 -1
- package/dist/cli/chunk-CFCcbFs2.js +396 -0
- package/dist/cli/{chunk-Cnjb8Usu.js → chunk-CTarF4FC.js} +1 -1
- package/dist/cli/{chunk-3vNYrs_L.js → chunk-Cbq5hpjb.js} +4 -4
- package/dist/cli/chunk-CjTjKy_v.js +310 -0
- package/dist/cli/chunk-Cjyu4cr_.js +36 -0
- package/dist/cli/{chunk-DUGZPka_.js → chunk-ClMKygjZ.js} +1 -1
- package/dist/cli/chunk-Cppnq1KF.js +1 -0
- package/dist/cli/{chunk-DvemF16v.js → chunk-D9QCNFMO.js} +1 -1
- package/dist/cli/{chunk-iB8OoMmW.js → chunk-DB21BMqt.js} +1 -1
- package/dist/cli/{chunk-_Vo-o_e3.js → chunk-DHoIWvCc.js} +1 -1
- package/dist/cli/chunk-DZEN9T5y.js +1 -0
- package/dist/cli/{chunk-5rLO4DWS.js → chunk-Dl14OyYO.js} +9 -9
- package/dist/cli/chunk-Dl_vv0dI.js +1 -0
- package/dist/cli/chunk-Dpmfhlyl.js +1 -0
- package/dist/cli/{chunk-BrR1DOBS.js → chunk-Du7Xtucq.js} +1 -1
- package/dist/cli/{chunk-B88Z8T_9.js → chunk-DxcDFUi_.js} +1 -1
- package/dist/cli/{chunk-Dt7-hzJU.js → chunk-DyyEWbV7.js} +1 -1
- package/dist/cli/chunk-N0x3mXU0.js +1 -0
- package/dist/cli/{chunk-CGoE4llV.js → chunk-V-w0Bata.js} +1 -1
- package/dist/cli/{chunk-CncW6_WL.js → chunk-ZxDxSSn-.js} +1 -1
- package/dist/cli/{chunk-CZdCRqNe.js → chunk-lPvFUkd5.js} +1 -1
- package/dist/cli/{chunk-66BvqAV0.js → chunk-n5s-sCdU.js} +1 -1
- package/dist/cli/{chunk-CAAeGOdy.js → chunk-nD9VPVMq.js} +1 -1
- package/dist/cli/{chunk-DMs7kREC.js → chunk-rFuy8aS_.js} +1 -1
- package/dist/cli/{chunk-B0qusANw.js → chunk-wjM6JXWa.js} +1 -1
- package/dist/cli/{chunk-DhOU6GYX.js → chunk-zcES9rut.js} +1 -1
- package/dist/cli/cli.js +3 -3
- package/dist/headless-agent.js +1 -1
- package/dist/lib/{channel-mmdGzPkT.js → channel-DB77spML.js} +2 -2
- package/dist/lib/{channel-mmdGzPkT.js.map → channel-DB77spML.js.map} +1 -1
- package/dist/lib/{compact-context-CY9BBlUQ.js → compact-context-Q9t9aL1e.js} +7 -7
- package/dist/lib/{compact-context-CY9BBlUQ.js.map → compact-context-Q9t9aL1e.js.map} +1 -1
- package/dist/lib/components/index.js +21 -21
- 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-llm.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-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-llm.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-pages.js +1 -1
- package/dist/lib/components/shadow-claw-peerjs.js +1 -1
- package/dist/lib/components/shadow-claw-settings.js +1 -1
- package/dist/lib/components/shadow-claw-storage.js +1 -1
- package/dist/lib/components/shadow-claw-task-server.js +1 -1
- package/dist/lib/components/shadow-claw-tasks.js +1 -1
- package/dist/lib/components/shadow-claw-terminal.js +1 -1
- package/dist/lib/components/shadow-claw-tools.js +1 -1
- package/dist/lib/components/shadow-claw-webvm.js +1 -1
- package/dist/lib/components/shadow-claw.js +1 -1
- package/dist/lib/{configure-peer-js-ccNvax2N.js → configure-peer-js-CgFiwoxY.js} +2 -2
- package/dist/lib/{configure-peer-js-ccNvax2N.js.map → configure-peer-js-CgFiwoxY.js.map} +1 -1
- package/dist/lib/content/build-attachment-content-blocks.d.ts +2 -0
- package/dist/lib/{discover-skills-OwlQ2sXA.js → discover-skills-CXyaWHKi.js} +5 -5
- package/dist/lib/{discover-skills-OwlQ2sXA.js.map → discover-skills-CXyaWHKi.js.map} +1 -1
- package/dist/lib/{git-D2J_j9X9.js → git-CogDRlEz.js} +2 -2
- package/dist/lib/{git-D2J_j9X9.js.map → git-CogDRlEz.js.map} +1 -1
- package/dist/lib/index.js +21 -21
- package/dist/lib/{init-control-plane-B7blDVIE.js → init-control-plane-CEGdzgWX.js} +7 -7
- package/dist/lib/{init-control-plane-B7blDVIE.js.map → init-control-plane-CEGdzgWX.js.map} +1 -1
- package/dist/lib/{invoke-agent-SxvudiDT.js → invoke-agent-cac3gCsj.js} +6 -6
- package/dist/lib/{invoke-agent-SxvudiDT.js.map → invoke-agent-cac3gCsj.js.map} +1 -1
- package/dist/lib/{move-group-entry-DDpjxa10.js → move-group-entry-D8dptMg0.js} +2 -2
- package/dist/lib/{move-group-entry-DDpjxa10.js.map → move-group-entry-D8dptMg0.js.map} +1 -1
- package/dist/lib/{orchestrator-C7fkh7T7.js → orchestrator-BBAwy9Nm.js} +12 -12
- package/dist/lib/{orchestrator-C7fkh7T7.js.map → orchestrator-BBAwy9Nm.js.map} +1 -1
- package/dist/lib/{orchestrator-CCARkxQC.js → orchestrator-cRBe3lhq.js} +2 -2
- package/dist/lib/{orchestrator-CCARkxQC.js.map → orchestrator-cRBe3lhq.js.map} +1 -1
- package/dist/lib/{peerjs-Bfw_FWLB.js → peerjs-BLg8aGUj.js} +3 -3
- package/dist/lib/{peerjs-Bfw_FWLB.js.map → peerjs-BLg8aGUj.js.map} +1 -1
- package/dist/lib/{process-peer-query-param-BxYiZNdf.js → process-peer-query-param-BnsVnxzH.js} +5 -5
- package/dist/lib/{process-peer-query-param-BxYiZNdf.js.map → process-peer-query-param-BnsVnxzH.js.map} +1 -1
- package/dist/lib/{process-pending-shared-payloads-DPIbwRb3.js → process-pending-shared-payloads-DBZfZOOa.js} +2 -2
- package/dist/lib/{process-pending-shared-payloads-DPIbwRb3.js.map → process-pending-shared-payloads-DBZfZOOa.js.map} +1 -1
- package/dist/lib/{process-room-query-param-B2_d50nE.js → process-room-query-param-B8EYg_-r.js} +4 -4
- package/dist/lib/{process-room-query-param-B2_d50nE.js.map → process-room-query-param-B8EYg_-r.js.map} +1 -1
- package/dist/lib/{push-client-rrjTdc-U.js → push-client-CAm6UMvE.js} +3 -3
- package/dist/lib/{push-client-rrjTdc-U.js.map → push-client-CAm6UMvE.js.map} +1 -1
- package/dist/lib/{rooms-bwGoYb1q.js → rooms-Dzphx3rK.js} +2 -2
- package/dist/lib/{rooms-bwGoYb1q.js.map → rooms-Dzphx3rK.js.map} +1 -1
- package/dist/lib/{shadow-claw-CypGVlVO.js → shadow-claw-CGl8tXtG.js} +6 -6
- package/dist/lib/{shadow-claw-CypGVlVO.js.map → shadow-claw-CGl8tXtG.js.map} +1 -1
- package/dist/lib/{shadow-claw-channel-config-DJpDovkF.js → shadow-claw-channel-config-BNIWCdsL.js} +4 -4
- package/dist/lib/{shadow-claw-channel-config-DJpDovkF.js.map → shadow-claw-channel-config-BNIWCdsL.js.map} +1 -1
- package/dist/lib/{shadow-claw-channels-DJLwRovH.js → shadow-claw-channels-C2QSn4Ew.js} +2 -2
- package/dist/lib/{shadow-claw-channels-DJLwRovH.js.map → shadow-claw-channels-C2QSn4Ew.js.map} +1 -1
- package/dist/lib/{shadow-claw-chat-B92cPaft.js → shadow-claw-chat-Wx3y9y6c.js} +3 -3
- package/dist/lib/{shadow-claw-chat-B92cPaft.js.map → shadow-claw-chat-Wx3y9y6c.js.map} +1 -1
- package/dist/lib/{shadow-claw-control-plane-fvn-qyHj.js → shadow-claw-control-plane-D5E4cFGu.js} +6 -6
- package/dist/lib/{shadow-claw-control-plane-fvn-qyHj.js.map → shadow-claw-control-plane-D5E4cFGu.js.map} +1 -1
- package/dist/lib/{shadow-claw-conversations-CsVyDOny.js → shadow-claw-conversations-BtDv7GRW.js} +2 -2
- package/dist/lib/{shadow-claw-conversations-CsVyDOny.js.map → shadow-claw-conversations-BtDv7GRW.js.map} +1 -1
- package/dist/lib/{shadow-claw-file-viewer-DFfyP7s5.js → shadow-claw-file-viewer-CG40kwWV.js} +2 -2
- package/dist/lib/{shadow-claw-file-viewer-DFfyP7s5.js.map → shadow-claw-file-viewer-CG40kwWV.js.map} +1 -1
- package/dist/lib/{shadow-claw-files-cT6HL7ye.js → shadow-claw-files-BOUULrlX.js} +3 -3
- package/dist/lib/{shadow-claw-files-cT6HL7ye.js.map → shadow-claw-files-BOUULrlX.js.map} +1 -1
- package/dist/lib/{shadow-claw-git-Cv9mQgTx.js → shadow-claw-git-BeHV73_9.js} +3 -3
- package/dist/lib/{shadow-claw-git-Cv9mQgTx.js.map → shadow-claw-git-BeHV73_9.js.map} +1 -1
- package/dist/lib/{shadow-claw-llm-CKOYzPDp.js → shadow-claw-llm-KONyWKZM.js} +2 -2
- package/dist/lib/{shadow-claw-llm-CKOYzPDp.js.map → shadow-claw-llm-KONyWKZM.js.map} +1 -1
- package/dist/lib/{shadow-claw-networking-DYfiUQaH.js → shadow-claw-networking-Diy3JJkc.js} +2 -2
- package/dist/lib/{shadow-claw-networking-DYfiUQaH.js.map → shadow-claw-networking-Diy3JJkc.js.map} +1 -1
- package/dist/lib/{shadow-claw-notifications-JJlzriuX.js → shadow-claw-notifications-C-upPa-4.js} +2 -2
- package/dist/lib/{shadow-claw-notifications-JJlzriuX.js.map → shadow-claw-notifications-C-upPa-4.js.map} +1 -1
- package/dist/lib/{shadow-claw-pages-BCo3ihZI.js → shadow-claw-pages-CfAjUKgd.js} +2 -2
- package/dist/lib/{shadow-claw-pages-BCo3ihZI.js.map → shadow-claw-pages-CfAjUKgd.js.map} +1 -1
- package/dist/lib/{shadow-claw-peerjs-CFNjfrY5.js → shadow-claw-peerjs-t4YibS9s.js} +5 -5
- package/dist/lib/{shadow-claw-peerjs-CFNjfrY5.js.map → shadow-claw-peerjs-t4YibS9s.js.map} +1 -1
- package/dist/lib/{shadow-claw-settings-BMwne0bh.js → shadow-claw-settings-Cg5V0e9g.js} +2 -2
- package/dist/lib/{shadow-claw-settings-BMwne0bh.js.map → shadow-claw-settings-Cg5V0e9g.js.map} +1 -1
- package/dist/lib/{shadow-claw-storage-DUY8B9m-.js → shadow-claw-storage-C7tCnsSG.js} +2 -2
- package/dist/lib/{shadow-claw-storage-DUY8B9m-.js.map → shadow-claw-storage-C7tCnsSG.js.map} +1 -1
- package/dist/lib/{shadow-claw-task-server-yWeoA3eL.js → shadow-claw-task-server-BObsRdf8.js} +2 -2
- package/dist/lib/{shadow-claw-task-server-yWeoA3eL.js.map → shadow-claw-task-server-BObsRdf8.js.map} +1 -1
- package/dist/lib/{shadow-claw-tasks-Bg0uM15I.js → shadow-claw-tasks-B2EEqrcY.js} +3 -3
- package/dist/lib/{shadow-claw-tasks-Bg0uM15I.js.map → shadow-claw-tasks-B2EEqrcY.js.map} +1 -1
- package/dist/lib/{shadow-claw-terminal-fyJPppY_.js → shadow-claw-terminal-DSHfO2b9.js} +2 -2
- package/dist/lib/{shadow-claw-terminal-fyJPppY_.js.map → shadow-claw-terminal-DSHfO2b9.js.map} +1 -1
- package/dist/lib/{shadow-claw-tools-D0T8m3go.js → shadow-claw-tools-DwPBADua.js} +3 -3
- package/dist/lib/{shadow-claw-tools-D0T8m3go.js.map → shadow-claw-tools-DwPBADua.js.map} +1 -1
- package/dist/lib/{shadow-claw-webvm-CQvzJwKI.js → shadow-claw-webvm-CY4qGaMB.js} +2 -2
- package/dist/lib/{shadow-claw-webvm-CQvzJwKI.js.map → shadow-claw-webvm-CY4qGaMB.js.map} +1 -1
- package/dist/lib/{sync-web-mcp-registration-BFtG_4kx.js → sync-web-mcp-registration-BiOZvW-R.js} +3 -3
- package/dist/lib/{sync-web-mcp-registration-BFtG_4kx.js.map → sync-web-mcp-registration-BiOZvW-R.js.map} +1 -1
- package/dist/lib/{system-prompt-bhGRLoL2.js → system-prompt-CxJ3Nx4c.js} +4 -3
- package/dist/lib/system-prompt-CxJ3Nx4c.js.map +1 -0
- package/dist/public/.well-known/mcp/server-card.json +4 -12
- package/dist/public/.well-known/mcp.json +4 -12
- package/dist/public/AGENTS.md +3 -1
- package/dist/public/README.md +6 -2
- package/dist/public/agent.worker.js +1 -1
- package/dist/public/{channel-Dk7wl-Av.js → channel-DIpDQekL.js} +1 -1
- package/dist/public/{chat-template-BwAnTFKf.js → chat-template-CXKs8lFR.js} +1 -1
- package/dist/public/compact-context-BQ2ZXoAc.js +5 -0
- package/dist/public/{compact-context-fOTqwKF6.js → compact-context-dHitmPsV.js} +2 -2
- package/dist/public/{configure-peer-js-BOV0tR6G.js → configure-peer-js-DV1rqvFX.js} +1 -1
- package/dist/public/{create-model-cache-fetch-DSAFjOwc.js → create-model-cache-fetch-B0mSCEk6.js} +1 -1
- package/dist/public/{discover-skills-D1sNTy2r.js → discover-skills-BWJB8HUA.js} +1 -1
- package/dist/public/docs/architecture/overview.md +1 -1
- package/dist/public/docs/example/article/index.html +21 -21
- package/dist/public/docs/example/article.html +21 -21
- package/dist/public/docs/publishing/index.html +21 -21
- package/dist/public/docs/publishing.html +21 -21
- package/dist/public/docs/skill-creator/index.html +21 -21
- package/dist/public/docs/skill-creator.html +21 -21
- package/dist/public/docs/subsystems/attachment-capabilities.md +14 -1
- package/dist/public/docs/subsystems/cli.md +95 -51
- package/dist/public/docs/subsystems/pages.md +5 -0
- package/dist/public/e2e/README.md +1 -1
- package/dist/public/{e2e-bridge-Cz95DLlb.js → e2e-bridge-lP2qqiv3.js} +1 -1
- package/dist/public/{git-BmMlwIMP.js → git-DjmQ16rm.js} +1 -1
- package/dist/public/{iframe-bridge-scripts-Cibg0m6A.js → iframe-bridge-scripts-CO0izGjW.js} +1 -1
- package/dist/public/index.html +21 -21
- package/dist/public/index.js +1 -1
- package/dist/public/{init-control-plane-Cb31yLTY.js → init-control-plane-Ctz7FI8M.js} +1 -1
- package/dist/public/{invoke-agent-CN7mSV0Z.js → invoke-agent-C_geruwq.js} +1 -1
- package/dist/public/llms.txt +1 -1
- package/dist/public/main/index.html +21 -21
- package/dist/public/main/memory/index.html +21 -21
- package/dist/public/main/memory.html +21 -21
- package/dist/public/main.html +21 -21
- package/dist/public/{move-group-entry-CXneuNVa.js → move-group-entry-QQ9Hkk54.js} +1 -1
- package/dist/public/{orchestrator-Dyylc8IU.js → orchestrator-C1kaTltu.js} +2 -2
- package/dist/public/{orchestrator-DBO4NZqd.js → orchestrator-Li1UAsv7.js} +1 -1
- package/dist/public/{peerjs-l0jiBoh6.js → peerjs-DbBryE-9.js} +1 -1
- package/dist/public/{process-peer-query-param-s-aSP1Rq.js → process-peer-query-param-DQIgr3KL.js} +1 -1
- package/dist/public/{process-pending-shared-payloads-BN3GigPT.js → process-pending-shared-payloads-Ctb-TFqB.js} +1 -1
- package/dist/public/{process-room-query-param-B2Qe0F0M.js → process-room-query-param-F-XnIVoZ.js} +1 -1
- package/dist/public/{push-client-B2LC8Qp9.js → push-client-DRx9Eggz.js} +1 -1
- package/dist/public/{rooms-ChCEOvkw.js → rooms-BurBI7is.js} +1 -1
- package/dist/public/service-worker/init.js +1 -1
- package/dist/public/service-worker.js +1 -1
- package/dist/public/{shadow-claw-Br8mWDUx.js → shadow-claw-Bg9AQ5x_.js} +2 -2
- package/dist/public/{shadow-claw-accounts-Dm6G7KMP.js → shadow-claw-accounts-B3mjYI0M.js} +1 -1
- package/dist/public/{shadow-claw-card-CggS8uSa.js → shadow-claw-card-tcXRS1GF.js} +1 -1
- package/dist/public/{shadow-claw-channels-088vhuWO.js → shadow-claw-channels-BiSfLvWv.js} +1 -1
- package/dist/public/{shadow-claw-chat-BRwRlq-n.js → shadow-claw-chat-N5jMsXZZ.js} +1 -1
- package/dist/public/{shadow-claw-control-plane-rhKACK85.js → shadow-claw-control-plane-DFVe_Xdq.js} +2 -2
- package/dist/public/{shadow-claw-conversations-CF_yUfKl.js → shadow-claw-conversations-wAR06_ya.js} +1 -1
- package/dist/public/{shadow-claw-empty-state-CkpOSXCS.js → shadow-claw-empty-state-CnPm3NVM.js} +1 -1
- package/dist/public/{shadow-claw-file-viewer-DWCejuY3.js → shadow-claw-file-viewer-sZN_FCDW.js} +2 -2
- package/dist/public/{shadow-claw-files-L6_ioyzh.js → shadow-claw-files-CnvkCbd4.js} +2 -2
- package/dist/public/{shadow-claw-git-DsdkwLqQ.js → shadow-claw-git-BBHfClGk.js} +2 -2
- package/dist/public/{shadow-claw-integrations-CSbRTOm3.js → shadow-claw-integrations-DvdBqzRJ.js} +1 -1
- package/dist/public/{shadow-claw-llm-BitaeAVc.js → shadow-claw-llm-YfohG519.js} +1 -1
- package/dist/public/{shadow-claw-mcp-remote-gSbV5riy.js → shadow-claw-mcp-remote-BAVbf5pi.js} +1 -1
- package/dist/public/{shadow-claw-networking-Dn_y6Cl9.js → shadow-claw-networking-CZ4LWPW7.js} +1 -1
- package/dist/public/{shadow-claw-notifications-Cj4Lqx8U.js → shadow-claw-notifications-BHwyREkG.js} +1 -1
- package/dist/public/{shadow-claw-page-header-DR4OZFt2.js → shadow-claw-page-header-De6Qf6eY.js} +1 -1
- package/dist/public/{shadow-claw-page-header-action-button-BnCV_2Kb.js → shadow-claw-page-header-action-button-FSOhTc9z.js} +1 -1
- package/dist/public/{shadow-claw-pages-mpDOtNYj.js → shadow-claw-pages-D_oPyDca.js} +1 -1
- package/dist/public/{shadow-claw-pdf-viewer-DZ_84qJH.js → shadow-claw-pdf-viewer-CrU4wqRq.js} +1 -1
- package/dist/public/{shadow-claw-settings-CfFTYTEy.js → shadow-claw-settings-DkUhvxVr.js} +2 -2
- package/dist/public/{shadow-claw-storage-DLmiT4bG.js → shadow-claw-storage-D0o56Tjw.js} +1 -1
- package/dist/public/{shadow-claw-task-server-BoMBCsiS.js → shadow-claw-task-server-4rkroO9K.js} +1 -1
- package/dist/public/{shadow-claw-tasks-ChEp1j7x.js → shadow-claw-tasks-BdP7lmvu.js} +1 -1
- package/dist/public/{shadow-claw-terminal-BaoVbOda.js → shadow-claw-terminal-DVHX7Fsu.js} +1 -1
- package/dist/public/{shadow-claw-toast-e8oz7z6Z.js → shadow-claw-toast-B9Y9tSkW.js} +1 -1
- package/dist/public/{shadow-claw-tools-BYjUBiJz.js → shadow-claw-tools-BwwY53Lr.js} +1 -1
- package/dist/public/{shadow-claw-webvm-xGb13TME.js → shadow-claw-webvm-CXGdkCNM.js} +1 -1
- package/dist/public/{sync-web-mcp-registration-CQluj-Kz.js → sync-web-mcp-registration-DVK_IhXZ.js} +1 -1
- package/dist/public/{system-prompt-CTJn0tK-.js → system-prompt-BmswoQwF.js} +2 -2
- package/dist/public/{workbox-92eae37e.js → workbox-e4022e15.js} +1 -1
- package/dist/public/{zip-reader-DN7FB-Q0.js → zip-reader-JHoTbATw.js} +1 -1
- package/dist/server.js +5 -5
- package/package.json +1 -1
- package/dist/cli/chunk-2gZFafgY.js +0 -1
- package/dist/cli/chunk-BCjL0JXf.js +0 -1
- package/dist/cli/chunk-BNcu1oiT.js +0 -1
- package/dist/cli/chunk-BUNoeMKY.js +0 -36
- package/dist/cli/chunk-C5ypckWC.js +0 -225
- package/dist/cli/chunk-CFxww5Yz.js +0 -1
- package/dist/cli/chunk-CGIgtL6R.js +0 -1
- package/dist/cli/chunk-CafdvLx-.js +0 -1
- package/dist/cli/chunk-Dhap1VwA.js +0 -1
- package/dist/cli/chunk-Ds5-K-9o.js +0 -1
- package/dist/cli/chunk-DwvavohW.js +0 -1
- package/dist/cli/chunk-_a0CkUNS.js +0 -139
- package/dist/lib/system-prompt-bhGRLoL2.js.map +0 -1
- package/dist/public/compact-context-CX4H8V57.js +0 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{p as e}from"./custom-element-security-B2daIE5r.js";import{b as t,r as n}from"./config-C16fFWtP.js";import{n as r}from"./db-BUuJo1Gf.js";import{t as i}from"./get-config-Bkvl__ZS.js";import{t as a}from"./html-BwtE_7wp.js";import{t as o}from"./orchestrator-
|
|
1
|
+
import{p as e}from"./custom-element-security-B2daIE5r.js";import{b as t,r as n}from"./config-C16fFWtP.js";import{n as r}from"./db-BUuJo1Gf.js";import{t as i}from"./get-config-Bkvl__ZS.js";import{t as a}from"./html-BwtE_7wp.js";import{t as o}from"./orchestrator-Li1UAsv7.js";import{a as s,r as c}from"./toast-CtIuHprH.js";import"./shadow-claw-card-tcXRS1GF.js";import"./shadow-claw-empty-state-CnPm3NVM.js";import{i as l,n as u}from"./credentials-CJUQ5Ep2.js";import{o as d}from"./shadow-claw-Bg9AQ5x_.js";const f=new CSSStyleSheet;f.replaceSync(`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
font-family: var(--shadow-claw-font-sans);
|
|
@@ -444,4 +444,4 @@ import{p as e}from"./custom-element-security-B2daIE5r.js";import{b as t,r as n}f
|
|
|
444
444
|
</button>
|
|
445
445
|
<button class="cancel-btn" data-action="cancel-account-form">Cancel</button>
|
|
446
446
|
</div>
|
|
447
|
-
</div>`),p.querySelector(`[data-action="save-account"]`)?.addEventListener(`click`,()=>this.saveAccountForm()),p.querySelector(`[data-action="cancel-account-form"]`)?.addEventListener(`click`,()=>this.hideAccountForm()),p.querySelector(`[data-field="acct-auth-mode"]`)?.addEventListener(`change`,()=>this.updateAuthModeVisibility(p)),p.querySelector(`[data-action="connect-oauth"]`)?.addEventListener(`click`,()=>void this.connectOAuthFromForm(p)),this.updateAuthModeVisibility(p))}updateAuthModeVisibility(e){let t=e.querySelector(`[data-field="acct-auth-mode"]`)?.value===`oauth`,n=e.querySelector(`[data-region="oauth-fields"]`),r=e.querySelector(`[data-region="pat-fields"]`);n instanceof HTMLElement&&(n.style.display=t?`block`:`none`),r instanceof HTMLElement&&(r.style.display=t?`none`:`block`)}updateCustomProxyVisibility(){let e=this.shadowRoot;if(!e)return;let t=e.querySelector(`[data-setting="git-proxy-custom"]`),n=e.querySelector(`[data-region="git-custom-proxy-field"]`);n instanceof HTMLElement&&(n.style.display=t?.checked?`block`:`none`)}async connectOAuthFromForm(e){let t=e.querySelector(`[data-field="acct-oauth-provider"]`)?.value,n=e.querySelector(`[data-field="acct-oauth-client-id"]`)?.value.trim(),r=e.querySelector(`[data-field="acct-oauth-client-secret"]`)?.value.trim(),i=e.querySelector(`[data-field="acct-oauth-scope"]`)?.value.trim();if(!t){c(`OAuth provider is required.`,4e3);return}if(!n){c(`OAuth client ID is required.`,4e3);return}let a=e.querySelector(`[data-region="oauth-status"]`),o=e.querySelector(`[data-action="connect-oauth"]`);a&&(a.textContent=`Starting OAuth...`),o&&(o.disabled=!0);try{let e=i?i.split(/[\s,]+/).map(e=>e.trim()).filter(Boolean):void 0,o=await fetch(`/oauth/authorize`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({providerId:t,clientId:n,clientSecret:r||void 0,redirectUri:`${window.location.origin}/oauth/callback`,scope:e})}),c=await o.json();if(!o.ok||!c.state||!c.authorizeUrl)throw Error(c.error||`OAuth authorize failed`);window.open(c.authorizeUrl,`shadowclaw-oauth`,`popup=yes,width=540,height=720`);let l=c.state,u=`pending`;for(let e=0;e<60;e++){let e=await fetch(`/oauth/session/${encodeURIComponent(l)}`),t=await e.json();if(!e.ok)throw Error(t.error||`OAuth session not found`);if(u=t.status||`pending`,u===`authorized`)break;if(u===`error`)throw Error(t.error||`OAuth authorization failed`);await new Promise(e=>setTimeout(e,1e3))}if(u!==`authorized`)throw Error(`OAuth authorization timed out`);let d=await fetch(`/oauth/token`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({state:l})}),f=await d.json();if(!d.ok||!f.accessToken)throw Error(f.error||`OAuth token exchange failed`);this.pendingOauthResult={providerId:t,accessToken:f.accessToken,refreshToken:f.refreshToken,expiresAt:f.expiresIn?Date.now()+f.expiresIn*1e3:void 0,scope:f.scope,tokenType:f.tokenType},a&&(a.textContent=`OAuth connected`),s(`OAuth connected`,3e3)}catch(e){let t=e instanceof Error?e.message:String(e);a&&(a.textContent=`OAuth failed`),c(`OAuth connect failed: ${t}`,6e3)}finally{o&&(o.disabled=!1)}}async deleteAccount(e){if(this.db){this.accounts=this.accounts.filter(t=>t.id!==e),this.defaultAccountId===e&&(this.defaultAccountId=this.accounts[0]?.id||``);try{let{setConfig:e}=await import(`./set-config-DSiuMe0k.js`).then(e=>e.n);await e(this.db,n.GIT_ACCOUNTS,this.accounts),await e(this.db,n.GIT_DEFAULT_ACCOUNT,this.defaultAccountId)}catch(e){console.warn(`Error persisting account deletion:`,e)}this.renderAccountList(),this.updateGitWarning(),s(`Account deleted`,3e3)}}async migrateLegacyAccount(){if(!this.db)return;let e=await i(this.db,n.GIT_TOKEN),t=await i(this.db,n.GIT_USERNAME);if(!e&&!t)return;let r=await i(this.db,n.GIT_PASSWORD)||``,a={id:`legacy-migrated`,label:`GitHub`,hostPattern:`github.com`,token:e||``,username:t||``,password:r,authorName:``,authorEmail:``};this.accounts=[a],this.defaultAccountId=a.id;let{setConfig:o}=await import(`./set-config-DSiuMe0k.js`).then(e=>e.n);await o(this.db,n.GIT_ACCOUNTS,this.accounts),await o(this.db,n.GIT_DEFAULT_ACCOUNT,a.id)}async render(){let e=this.shadowRoot;if(e)try{let t=await i(this.db,n.GIT_CORS_PROXY)||`local`,r=e.querySelector(`[data-setting="git-proxy-local"]`),a=e.querySelector(`[data-setting="git-proxy-public"]`),s=e.querySelector(`[data-setting="git-proxy-custom"]`),c=e.querySelector(`[data-setting="git-proxy-url-input"]`);r&&a&&s&&(r.checked=t===`local`,a.checked=t===`public`,s.checked=t===`custom`),c&&(c.value=o.gitProxyUrl||`/git-proxy`),this.updateCustomProxyVisibility();let l=e.querySelector(`[data-setting="git-author-name-input"]`);l&&(l.value=await i(this.db,n.GIT_AUTHOR_NAME)||`ShadowClaw`);let u=e.querySelector(`[data-setting="git-author-email-input"]`);u&&(u.value=await i(this.db,n.GIT_AUTHOR_EMAIL)||`agent@example.com`);let d=await i(this.db,n.GIT_ACCOUNTS);this.accounts=Array.isArray(d)?d:[],this.defaultAccountId=await i(this.db,n.GIT_DEFAULT_ACCOUNT)||``,this.accounts.length===0&&await this.migrateLegacyAccount(),this.renderAccountList(),this.updateGitWarning()}catch(e){console.warn(`Could not load git settings:`,e)}}async saveAccountForm(){if(!this.db)return;let e=this.shadowRoot;if(!e)return;let t=e.querySelector(`[data-region="account-form-slot"]`);if(!t)return;let r=t.querySelector(`[data-field="acct-label"]`)?.value.trim(),i=t.querySelector(`[data-field="acct-host"]`)?.value.trim(),a=t.querySelector(`[data-field="acct-auth-mode"]`)?.value;if(!r||!i)c(`Label and Host Pattern are required.`,4e3);else try{let{encryptValue:e}=await import(`./crypto-4ETeplbS.js`).then(e=>e.t),{setConfig:o}=await import(`./set-config-DSiuMe0k.js`).then(e=>e.n),l=t.querySelector(`[data-field="acct-token"]`)?.value.trim(),u=t.querySelector(`[data-field="acct-password"]`)?.value.trim(),d=t.querySelector(`[data-field="acct-username"]`)?.value.trim()||``,f=t.querySelector(`[data-field="acct-author-name"]`)?.value.trim()||``,p=t.querySelector(`[data-field="acct-author-email"]`)?.value.trim()||``,m=this.editingAccountId===`new`,h=m?null:this.accounts.find(e=>e.id===this.editingAccountId),g=h?.token||``,_=h?.password||``,v=h?.oauthProviderId,y=h?.oauthClientId,b=h?.oauthClientSecret,x=h?.accessTokenExpiresAt,S=h?.refreshToken,C=h?.scopes,w=h?.tokenType,T=h?.oauthRefreshFailureCount,E=h?.oauthReauthRequired,D=h?.oauthReauthRequiredAt;if(a===`oauth`){v=t.querySelector(`[data-field="acct-oauth-provider"]`)?.value,y=t.querySelector(`[data-field="acct-oauth-client-id"]`)?.value.trim();let n=t.querySelector(`[data-field="acct-oauth-client-secret"]`)?.value.trim(),r=t.querySelector(`[data-field="acct-oauth-scope"]`)?.value.trim(),i=r?r.split(/[\s,]+/).map(e=>e.trim()).filter(Boolean):void 0;if(!v){c(`OAuth provider is required for OAuth mode.`,4e3);return}if(!y){c(`OAuth client ID is required for OAuth mode.`,4e3);return}if(n){let t=await e(n);t&&(b=t)}if(this.pendingOauthResult?.accessToken){let t=await e(this.pendingOauthResult.accessToken);if(t&&(g=t),this.pendingOauthResult.refreshToken){let t=await e(this.pendingOauthResult.refreshToken);t&&(S=t)}x=this.pendingOauthResult.expiresAt,C=this.pendingOauthResult.scope?this.pendingOauthResult.scope.split(/[\s,]+/).map(e=>e.trim()).filter(Boolean):i||C,w=this.pendingOauthResult.tokenType,T=0,E=!1,D=void 0}else C=i||C;if(!g){c(`Connect OAuth first to obtain an access token for this account.`,5e3);return}_=``}else{if(l){let t=await e(l);t&&(g=t)}if(u){let t=await e(u);t&&(_=t)}v=void 0,y=void 0,b=void 0,x=void 0,S=void 0,C=void 0,w=void 0,T=void 0,E=void 0,D=void 0}if(m){let{ulid:e}=await import(`./ulid-BSJxYh6W.js`).then(e=>e.n),t={id:e(),label:r,hostPattern:i,token:g,username:a===`oauth`?``:d,password:_,authorName:f,authorEmail:p,authMode:a||`token`,oauthProviderId:v,oauthClientId:y,oauthClientSecret:b,accessTokenExpiresAt:x,refreshToken:S,scopes:C,tokenType:w,oauthRefreshFailureCount:T,oauthReauthRequired:E,oauthReauthRequiredAt:D};this.accounts.push(t),this.accounts.length===1&&(this.defaultAccountId=t.id,await o(this.db,n.GIT_DEFAULT_ACCOUNT,t.id))}else h&&(h.label=r,h.hostPattern=i,h.token=g,h.username=a===`oauth`?``:d,h.password=_,h.authorName=f,h.authorEmail=p,h.authMode=a||`token`,h.oauthProviderId=v,h.oauthClientId=y,h.oauthClientSecret=b,h.accessTokenExpiresAt=x,h.refreshToken=S,h.scopes=C,h.tokenType=w,h.oauthRefreshFailureCount=T,h.oauthReauthRequired=E,h.oauthReauthRequiredAt=D);await o(this.db,n.GIT_ACCOUNTS,this.accounts),this.hideAccountForm(),this.renderAccountList(),this.updateGitWarning(),s(m?`Account added`:`Account updated`,3e3)}catch(e){let t=e instanceof Error?e.message:String(e);c(`Error saving account: `+t,6e3)}}async saveGitSettings(){if(!this.db)return;let e=this.shadowRoot;if(e)try{let{setConfig:t}=await import(`./set-config-DSiuMe0k.js`).then(e=>e.n),r=e.querySelector(`[data-setting="git-proxy-public"]`),i=e.querySelector(`[data-setting="git-proxy-custom"]`),a=r?.checked?`public`:i?.checked?`custom`:`local`;if(await t(this.db,n.GIT_CORS_PROXY,a),a===`custom`){let t=e.querySelector(`[data-setting="git-proxy-url-input"]`)?.value.trim()||`/git-proxy`,{orchestratorStore:n}=await import(`./orchestrator-DBO4NZqd.js`).then(e=>e.n);await n.setGitProxyUrl(this.db,t)}let o=e.querySelector(`[data-setting="git-author-name-input"]`);o&&await t(this.db,n.GIT_AUTHOR_NAME,o.value.trim()||`ShadowClaw`);let c=e.querySelector(`[data-setting="git-author-email-input"]`);c&&await t(this.db,n.GIT_AUTHOR_EMAIL,c.value.trim()||`agent@example.com`),s(`Git settings saved`,3e3),this.updateGitWarning()}catch(e){let t=e instanceof Error?e.message:String(e);c(`Error saving Git settings: `+t,6e3)}}async setDefaultAccount(e){if(this.db){this.defaultAccountId=e;try{let{setConfig:t}=await import(`./set-config-DSiuMe0k.js`).then(e=>e.n);await t(this.db,n.GIT_DEFAULT_ACCOUNT,e)}catch(e){console.warn(`Error setting default account:`,e)}this.renderAccountList(),s(`Default account updated`,3e3)}}async updateGitWarning(){let e=this.shadowRoot;if(!e)return;let t=e.querySelector(`[data-setting="git-proxy-warning"]`);if(!t)return;let n=e.querySelector(`[data-setting="git-proxy-public"]`),r=this.accounts.some(e=>!!e.token);t.style.display=n?.checked&&r?`block`:`none`}};customElements.get(_)||customElements.define(_,x);export{x as ShadowClawGit};
|
|
447
|
+
</div>`),p.querySelector(`[data-action="save-account"]`)?.addEventListener(`click`,()=>this.saveAccountForm()),p.querySelector(`[data-action="cancel-account-form"]`)?.addEventListener(`click`,()=>this.hideAccountForm()),p.querySelector(`[data-field="acct-auth-mode"]`)?.addEventListener(`change`,()=>this.updateAuthModeVisibility(p)),p.querySelector(`[data-action="connect-oauth"]`)?.addEventListener(`click`,()=>void this.connectOAuthFromForm(p)),this.updateAuthModeVisibility(p))}updateAuthModeVisibility(e){let t=e.querySelector(`[data-field="acct-auth-mode"]`)?.value===`oauth`,n=e.querySelector(`[data-region="oauth-fields"]`),r=e.querySelector(`[data-region="pat-fields"]`);n instanceof HTMLElement&&(n.style.display=t?`block`:`none`),r instanceof HTMLElement&&(r.style.display=t?`none`:`block`)}updateCustomProxyVisibility(){let e=this.shadowRoot;if(!e)return;let t=e.querySelector(`[data-setting="git-proxy-custom"]`),n=e.querySelector(`[data-region="git-custom-proxy-field"]`);n instanceof HTMLElement&&(n.style.display=t?.checked?`block`:`none`)}async connectOAuthFromForm(e){let t=e.querySelector(`[data-field="acct-oauth-provider"]`)?.value,n=e.querySelector(`[data-field="acct-oauth-client-id"]`)?.value.trim(),r=e.querySelector(`[data-field="acct-oauth-client-secret"]`)?.value.trim(),i=e.querySelector(`[data-field="acct-oauth-scope"]`)?.value.trim();if(!t){c(`OAuth provider is required.`,4e3);return}if(!n){c(`OAuth client ID is required.`,4e3);return}let a=e.querySelector(`[data-region="oauth-status"]`),o=e.querySelector(`[data-action="connect-oauth"]`);a&&(a.textContent=`Starting OAuth...`),o&&(o.disabled=!0);try{let e=i?i.split(/[\s,]+/).map(e=>e.trim()).filter(Boolean):void 0,o=await fetch(`/oauth/authorize`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({providerId:t,clientId:n,clientSecret:r||void 0,redirectUri:`${window.location.origin}/oauth/callback`,scope:e})}),c=await o.json();if(!o.ok||!c.state||!c.authorizeUrl)throw Error(c.error||`OAuth authorize failed`);window.open(c.authorizeUrl,`shadowclaw-oauth`,`popup=yes,width=540,height=720`);let l=c.state,u=`pending`;for(let e=0;e<60;e++){let e=await fetch(`/oauth/session/${encodeURIComponent(l)}`),t=await e.json();if(!e.ok)throw Error(t.error||`OAuth session not found`);if(u=t.status||`pending`,u===`authorized`)break;if(u===`error`)throw Error(t.error||`OAuth authorization failed`);await new Promise(e=>setTimeout(e,1e3))}if(u!==`authorized`)throw Error(`OAuth authorization timed out`);let d=await fetch(`/oauth/token`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({state:l})}),f=await d.json();if(!d.ok||!f.accessToken)throw Error(f.error||`OAuth token exchange failed`);this.pendingOauthResult={providerId:t,accessToken:f.accessToken,refreshToken:f.refreshToken,expiresAt:f.expiresIn?Date.now()+f.expiresIn*1e3:void 0,scope:f.scope,tokenType:f.tokenType},a&&(a.textContent=`OAuth connected`),s(`OAuth connected`,3e3)}catch(e){let t=e instanceof Error?e.message:String(e);a&&(a.textContent=`OAuth failed`),c(`OAuth connect failed: ${t}`,6e3)}finally{o&&(o.disabled=!1)}}async deleteAccount(e){if(this.db){this.accounts=this.accounts.filter(t=>t.id!==e),this.defaultAccountId===e&&(this.defaultAccountId=this.accounts[0]?.id||``);try{let{setConfig:e}=await import(`./set-config-DSiuMe0k.js`).then(e=>e.n);await e(this.db,n.GIT_ACCOUNTS,this.accounts),await e(this.db,n.GIT_DEFAULT_ACCOUNT,this.defaultAccountId)}catch(e){console.warn(`Error persisting account deletion:`,e)}this.renderAccountList(),this.updateGitWarning(),s(`Account deleted`,3e3)}}async migrateLegacyAccount(){if(!this.db)return;let e=await i(this.db,n.GIT_TOKEN),t=await i(this.db,n.GIT_USERNAME);if(!e&&!t)return;let r=await i(this.db,n.GIT_PASSWORD)||``,a={id:`legacy-migrated`,label:`GitHub`,hostPattern:`github.com`,token:e||``,username:t||``,password:r,authorName:``,authorEmail:``};this.accounts=[a],this.defaultAccountId=a.id;let{setConfig:o}=await import(`./set-config-DSiuMe0k.js`).then(e=>e.n);await o(this.db,n.GIT_ACCOUNTS,this.accounts),await o(this.db,n.GIT_DEFAULT_ACCOUNT,a.id)}async render(){let e=this.shadowRoot;if(e)try{let t=await i(this.db,n.GIT_CORS_PROXY)||`local`,r=e.querySelector(`[data-setting="git-proxy-local"]`),a=e.querySelector(`[data-setting="git-proxy-public"]`),s=e.querySelector(`[data-setting="git-proxy-custom"]`),c=e.querySelector(`[data-setting="git-proxy-url-input"]`);r&&a&&s&&(r.checked=t===`local`,a.checked=t===`public`,s.checked=t===`custom`),c&&(c.value=o.gitProxyUrl||`/git-proxy`),this.updateCustomProxyVisibility();let l=e.querySelector(`[data-setting="git-author-name-input"]`);l&&(l.value=await i(this.db,n.GIT_AUTHOR_NAME)||`ShadowClaw`);let u=e.querySelector(`[data-setting="git-author-email-input"]`);u&&(u.value=await i(this.db,n.GIT_AUTHOR_EMAIL)||`agent@example.com`);let d=await i(this.db,n.GIT_ACCOUNTS);this.accounts=Array.isArray(d)?d:[],this.defaultAccountId=await i(this.db,n.GIT_DEFAULT_ACCOUNT)||``,this.accounts.length===0&&await this.migrateLegacyAccount(),this.renderAccountList(),this.updateGitWarning()}catch(e){console.warn(`Could not load git settings:`,e)}}async saveAccountForm(){if(!this.db)return;let e=this.shadowRoot;if(!e)return;let t=e.querySelector(`[data-region="account-form-slot"]`);if(!t)return;let r=t.querySelector(`[data-field="acct-label"]`)?.value.trim(),i=t.querySelector(`[data-field="acct-host"]`)?.value.trim(),a=t.querySelector(`[data-field="acct-auth-mode"]`)?.value;if(!r||!i)c(`Label and Host Pattern are required.`,4e3);else try{let{encryptValue:e}=await import(`./crypto-4ETeplbS.js`).then(e=>e.t),{setConfig:o}=await import(`./set-config-DSiuMe0k.js`).then(e=>e.n),l=t.querySelector(`[data-field="acct-token"]`)?.value.trim(),u=t.querySelector(`[data-field="acct-password"]`)?.value.trim(),d=t.querySelector(`[data-field="acct-username"]`)?.value.trim()||``,f=t.querySelector(`[data-field="acct-author-name"]`)?.value.trim()||``,p=t.querySelector(`[data-field="acct-author-email"]`)?.value.trim()||``,m=this.editingAccountId===`new`,h=m?null:this.accounts.find(e=>e.id===this.editingAccountId),g=h?.token||``,_=h?.password||``,v=h?.oauthProviderId,y=h?.oauthClientId,b=h?.oauthClientSecret,x=h?.accessTokenExpiresAt,S=h?.refreshToken,C=h?.scopes,w=h?.tokenType,T=h?.oauthRefreshFailureCount,E=h?.oauthReauthRequired,D=h?.oauthReauthRequiredAt;if(a===`oauth`){v=t.querySelector(`[data-field="acct-oauth-provider"]`)?.value,y=t.querySelector(`[data-field="acct-oauth-client-id"]`)?.value.trim();let n=t.querySelector(`[data-field="acct-oauth-client-secret"]`)?.value.trim(),r=t.querySelector(`[data-field="acct-oauth-scope"]`)?.value.trim(),i=r?r.split(/[\s,]+/).map(e=>e.trim()).filter(Boolean):void 0;if(!v){c(`OAuth provider is required for OAuth mode.`,4e3);return}if(!y){c(`OAuth client ID is required for OAuth mode.`,4e3);return}if(n){let t=await e(n);t&&(b=t)}if(this.pendingOauthResult?.accessToken){let t=await e(this.pendingOauthResult.accessToken);if(t&&(g=t),this.pendingOauthResult.refreshToken){let t=await e(this.pendingOauthResult.refreshToken);t&&(S=t)}x=this.pendingOauthResult.expiresAt,C=this.pendingOauthResult.scope?this.pendingOauthResult.scope.split(/[\s,]+/).map(e=>e.trim()).filter(Boolean):i||C,w=this.pendingOauthResult.tokenType,T=0,E=!1,D=void 0}else C=i||C;if(!g){c(`Connect OAuth first to obtain an access token for this account.`,5e3);return}_=``}else{if(l){let t=await e(l);t&&(g=t)}if(u){let t=await e(u);t&&(_=t)}v=void 0,y=void 0,b=void 0,x=void 0,S=void 0,C=void 0,w=void 0,T=void 0,E=void 0,D=void 0}if(m){let{ulid:e}=await import(`./ulid-BSJxYh6W.js`).then(e=>e.n),t={id:e(),label:r,hostPattern:i,token:g,username:a===`oauth`?``:d,password:_,authorName:f,authorEmail:p,authMode:a||`token`,oauthProviderId:v,oauthClientId:y,oauthClientSecret:b,accessTokenExpiresAt:x,refreshToken:S,scopes:C,tokenType:w,oauthRefreshFailureCount:T,oauthReauthRequired:E,oauthReauthRequiredAt:D};this.accounts.push(t),this.accounts.length===1&&(this.defaultAccountId=t.id,await o(this.db,n.GIT_DEFAULT_ACCOUNT,t.id))}else h&&(h.label=r,h.hostPattern=i,h.token=g,h.username=a===`oauth`?``:d,h.password=_,h.authorName=f,h.authorEmail=p,h.authMode=a||`token`,h.oauthProviderId=v,h.oauthClientId=y,h.oauthClientSecret=b,h.accessTokenExpiresAt=x,h.refreshToken=S,h.scopes=C,h.tokenType=w,h.oauthRefreshFailureCount=T,h.oauthReauthRequired=E,h.oauthReauthRequiredAt=D);await o(this.db,n.GIT_ACCOUNTS,this.accounts),this.hideAccountForm(),this.renderAccountList(),this.updateGitWarning(),s(m?`Account added`:`Account updated`,3e3)}catch(e){let t=e instanceof Error?e.message:String(e);c(`Error saving account: `+t,6e3)}}async saveGitSettings(){if(!this.db)return;let e=this.shadowRoot;if(e)try{let{setConfig:t}=await import(`./set-config-DSiuMe0k.js`).then(e=>e.n),r=e.querySelector(`[data-setting="git-proxy-public"]`),i=e.querySelector(`[data-setting="git-proxy-custom"]`),a=r?.checked?`public`:i?.checked?`custom`:`local`;if(await t(this.db,n.GIT_CORS_PROXY,a),a===`custom`){let t=e.querySelector(`[data-setting="git-proxy-url-input"]`)?.value.trim()||`/git-proxy`,{orchestratorStore:n}=await import(`./orchestrator-Li1UAsv7.js`).then(e=>e.n);await n.setGitProxyUrl(this.db,t)}let o=e.querySelector(`[data-setting="git-author-name-input"]`);o&&await t(this.db,n.GIT_AUTHOR_NAME,o.value.trim()||`ShadowClaw`);let c=e.querySelector(`[data-setting="git-author-email-input"]`);c&&await t(this.db,n.GIT_AUTHOR_EMAIL,c.value.trim()||`agent@example.com`),s(`Git settings saved`,3e3),this.updateGitWarning()}catch(e){let t=e instanceof Error?e.message:String(e);c(`Error saving Git settings: `+t,6e3)}}async setDefaultAccount(e){if(this.db){this.defaultAccountId=e;try{let{setConfig:t}=await import(`./set-config-DSiuMe0k.js`).then(e=>e.n);await t(this.db,n.GIT_DEFAULT_ACCOUNT,e)}catch(e){console.warn(`Error setting default account:`,e)}this.renderAccountList(),s(`Default account updated`,3e3)}}async updateGitWarning(){let e=this.shadowRoot;if(!e)return;let t=e.querySelector(`[data-setting="git-proxy-warning"]`);if(!t)return;let n=e.querySelector(`[data-setting="git-proxy-public"]`),r=this.accounts.some(e=>!!e.token);t.style.display=n?.checked&&r?`block`:`none`}};customElements.get(_)||customElements.define(_,x);export{x as ShadowClawGit};
|
package/dist/public/{shadow-claw-integrations-CSbRTOm3.js → shadow-claw-integrations-DvdBqzRJ.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{p as e}from"./custom-element-security-B2daIE5r.js";import{r as t}from"./config-C16fFWtP.js";import{n}from"./db-BUuJo1Gf.js";import{t as r}from"./get-config-Bkvl__ZS.js";import{t as i}from"./set-config-DSiuMe0k.js";import{t as a}from"./ulid-BSJxYh6W.js";import{a as o,r as s}from"./toast-CtIuHprH.js";import{r as c}from"./crypto-4ETeplbS.js";import{a as l,i as u,n as d,o as f,s as p,t as m}from"./connections-Dxwj8yK_.js";import{o as h}from"./shadow-claw-
|
|
1
|
+
import{p as e}from"./custom-element-security-B2daIE5r.js";import{r as t}from"./config-C16fFWtP.js";import{n}from"./db-BUuJo1Gf.js";import{t as r}from"./get-config-Bkvl__ZS.js";import{t as i}from"./set-config-DSiuMe0k.js";import{t as a}from"./ulid-BSJxYh6W.js";import{a as o,r as s}from"./toast-CtIuHprH.js";import{r as c}from"./crypto-4ETeplbS.js";import{a as l,i as u,n as d,o as f,s as p,t as m}from"./connections-Dxwj8yK_.js";import{o as h}from"./shadow-claw-Bg9AQ5x_.js";function g(e){if(e.authMode===`oauth`){let t=(e.pendingOauthAccessToken||``).trim();return t?{authType:`oauth`,accessToken:t}:{error:`OAuth access token is missing. Click Connect OAuth first (or save and reconnect).`}}let t=(e.passwordInput||``).trim();return t?{authType:`basic_userpass`,password:t}:{error:`Password/app password is missing. Enter it to test this connection.`}}const _=new CSSStyleSheet;_.replaceSync(`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
font-family: var(--shadow-claw-font-sans);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{p as e}from"./custom-element-security-B2daIE5r.js";import{P as t,c as n,et as r,r as i,u as a}from"./config-C16fFWtP.js";import{n as o}from"./db-BUuJo1Gf.js";import{t as s}from"./get-config-Bkvl__ZS.js";import{A as c,F as l,I as u,L as d,M as f,P as p,j as m,t as h}from"./orchestrator-
|
|
1
|
+
import{p as e}from"./custom-element-security-B2daIE5r.js";import{P as t,c as n,et as r,r as i,u as a}from"./config-C16fFWtP.js";import{n as o}from"./db-BUuJo1Gf.js";import{t as s}from"./get-config-Bkvl__ZS.js";import{A as c,F as l,I as u,L as d,M as f,P as p,j as m,t as h}from"./orchestrator-Li1UAsv7.js";import{t as g}from"./set-config-DSiuMe0k.js";import{a as _,r as v,s as y}from"./toast-CtIuHprH.js";import{S as b,c as x,f as S,h as C,i as w,m as T,o as E,p as D,s as O,v as k}from"./provider-YPZmsuHR.js";import{t as A}from"./chat-template-CXKs8lFR.js";import{f as j,p as M}from"./transformers-CQ9ss9rD.js";import{i as N,n as P,r as F,t as I}from"./model-ranking-BgOSaNIy.js";import{a as L,i as R,o as z,r as B}from"./shadow-claw-Bg9AQ5x_.js";const V=[{pattern:`gemma-3-1b-it-ONNX-GQA`,contextWindow:128e3},{pattern:`gemma-3-1b-it-ONNX`,contextWindow:128e3},{pattern:`Qwen3-0.6B-ONNX`,contextWindow:131072},{pattern:`Qwen3.5`,contextWindow:32768},{pattern:`Llama-3.2`,contextWindow:128e3},{pattern:`Phi-4`,contextWindow:128e3},{pattern:`Phi-3.5`,contextWindow:128e3},{pattern:`SmolLM`,contextWindow:8192},{pattern:`DeepSeek-R1`,contextWindow:128e3},{pattern:`LFM2`,contextWindow:32768},{pattern:`gpt-oss`,contextWindow:32768},{pattern:`gemma-4`,contextWindow:128e3},{pattern:`browser-built-in`,contextWindow:4096}];function H(e){let t=r.getModelInfo(e);if(t&&typeof t.contextWindow==`number`&&t.contextWindow>0)return t.contextWindow;for(let{pattern:t,contextWindow:n}of V)if(e.includes(t))return n;return null}function U(e,r,i){let a=r;e===`prompt_api`&&(r===`browser-built-in`||!r)&&(i?a=i:b()||(a=n));let o=t(a),s=typeof navigator>`u`?null:navigator,c=typeof s?.deviceMemory==`number`?s.deviceMemory:null,l=typeof s?.hardwareConcurrency==`number`?s.hardwareConcurrency:null;if(e===`prompt_api`||e===`transformers_js_browser`||e===`litert_lm_browser`||e===`ollama`){let e=H(a),t=o;c!==null&&(t=c>=32?Math.min(t,16384):c>=16?Math.min(t,8192):c>=8?Math.min(t,4096):Math.min(t,2048)),l!==null&&(l<=4?t=Math.min(t,2048):l>=16?t=Math.min(o,Math.max(t,8192)):l>=8&&(t=Math.min(o,Math.max(t,4096)))),/thinking|reasoning/i.test(a)&&(t=Math.min(t,4096)),t=Math.max(512,Math.min(t,o));let n=[];return e!==null&&n.push(`native context: ${e.toLocaleString()} tokens`),c!==null&&n.push(`${c} GB browser-reported memory`),l!==null&&n.push(`${l} CPU threads`),/thinking|reasoning/i.test(a)&&n.push(`reasoning model`),{recommended:t,detail:n.length>0?`Recommended for this device: ${t.toLocaleString()} tokens (${n.join(`, `)}). Model ceiling: ${o.toLocaleString()}.`:`Recommended for local inference: ${t.toLocaleString()} tokens. Model ceiling: ${o.toLocaleString()}.`}}return{recommended:o,detail:`Model-aware ceiling: ${o.toLocaleString()} tokens.`}}const W=new CSSStyleSheet;W.replaceSync(`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
font-family: var(--shadow-claw-font-sans);
|
package/dist/public/{shadow-claw-mcp-remote-gSbV5riy.js → shadow-claw-mcp-remote-BAVbf5pi.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{p as e}from"./custom-element-security-B2daIE5r.js";import{r as t}from"./config-C16fFWtP.js";import{n}from"./db-BUuJo1Gf.js";import{t as r}from"./get-config-Bkvl__ZS.js";import{t as i}from"./html-BwtE_7wp.js";import{a,r as o}from"./toast-CtIuHprH.js";import"./shadow-claw-card-
|
|
1
|
+
import{p as e}from"./custom-element-security-B2daIE5r.js";import{r as t}from"./config-C16fFWtP.js";import{n}from"./db-BUuJo1Gf.js";import{t as r}from"./get-config-Bkvl__ZS.js";import{t as i}from"./html-BwtE_7wp.js";import{a,r as o}from"./toast-CtIuHprH.js";import"./shadow-claw-card-tcXRS1GF.js";import"./shadow-claw-empty-state-CnPm3NVM.js";import{r as s}from"./crypto-4ETeplbS.js";import{a as c,c as l,d as u,s as d,t as f,u as p}from"./mcp-reconnect-iPZPihwX.js";import{o as m}from"./shadow-claw-Bg9AQ5x_.js";const h=new CSSStyleSheet;h.replaceSync(`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
font-family: var(--shadow-claw-font-sans);
|
package/dist/public/{shadow-claw-networking-Dn_y6Cl9.js → shadow-claw-networking-CZ4LWPW7.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./db-BUuJo1Gf.js";import{B as t,N as n,t as r}from"./orchestrator-
|
|
1
|
+
import{n as e}from"./db-BUuJo1Gf.js";import{B as t,N as n,t as r}from"./orchestrator-Li1UAsv7.js";import{a as i,r as a,s as o}from"./toast-CtIuHprH.js";import{a as s,o as c}from"./shadow-claw-Bg9AQ5x_.js";const l=new CSSStyleSheet;l.replaceSync(`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
font-family: var(--shadow-claw-font-sans);
|
package/dist/public/{shadow-claw-notifications-Cj4Lqx8U.js → shadow-claw-notifications-BHwyREkG.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as e}from"./config-C16fFWtP.js";import{n as t}from"./db-BUuJo1Gf.js";import{t as n}from"./get-config-Bkvl__ZS.js";import{t as r}from"./set-config-DSiuMe0k.js";import{a as i,r as a}from"./toast-CtIuHprH.js";import"./shadow-claw-empty-state-
|
|
1
|
+
import{r as e}from"./config-C16fFWtP.js";import{n as t}from"./db-BUuJo1Gf.js";import{t as n}from"./get-config-Bkvl__ZS.js";import{t as r}from"./set-config-DSiuMe0k.js";import{a as i,r as a}from"./toast-CtIuHprH.js";import"./shadow-claw-empty-state-CnPm3NVM.js";import{i as o,n as s,o as c,r as l,t as u}from"./push-client-DRx9Eggz.js";import{o as d}from"./shadow-claw-Bg9AQ5x_.js";const f=new CSSStyleSheet;f.replaceSync(`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
font-family: var(--shadow-claw-font-sans);
|
package/dist/public/{shadow-claw-page-header-DR4OZFt2.js → shadow-claw-page-header-De6Qf6eY.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{p as e}from"./custom-element-security-B2daIE5r.js";import{o as t}from"./shadow-claw-
|
|
1
|
+
import{p as e}from"./custom-element-security-B2daIE5r.js";import{o as t}from"./shadow-claw-Bg9AQ5x_.js";const n=new CSSStyleSheet;n.replaceSync(`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
box-sizing: border-box;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-DBVvNlSN.js";import{a as t,c as n,f as r,i,m as a,o,p as s,r as c,s as l,w as u}from"./custom-element-security-B2daIE5r.js";import{t as d}from"./browser-B1SoUj6D.js";import{B as f,G as p,K as m,W as h,X as g,q as _,r as v,z as y}from"./config-C16fFWtP.js";import{n as b}from"./db-BUuJo1Gf.js";import{t as x}from"./get-config-Bkvl__ZS.js";import{n as S}from"./html-BwtE_7wp.js";import{t as C}from"./dist-CeFyqf9k.js";import{f as ee,h as w,m as te,o as ne,r as re,s as T,t as E}from"./orchestrator-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-DBVvNlSN.js";import{a as t,c as n,f as r,i,m as a,o,p as s,r as c,s as l,w as u}from"./custom-element-security-B2daIE5r.js";import{t as d}from"./browser-B1SoUj6D.js";import{B as f,G as p,K as m,W as h,X as g,q as _,r as v,z as y}from"./config-C16fFWtP.js";import{n as b}from"./db-BUuJo1Gf.js";import{t as x}from"./get-config-Bkvl__ZS.js";import{n as S}from"./html-BwtE_7wp.js";import{t as C}from"./dist-CeFyqf9k.js";import{f as ee,h as w,m as te,o as ne,r as re,s as T,t as E}from"./orchestrator-Li1UAsv7.js";import{s as ie,t as ae}from"./tools-D-52Zmfc.js";import{t as oe}from"./write-group-file-R67DjJ-q.js";import{a as se,r as D,s as ce}from"./toast-CtIuHprH.js";import{t as le}from"./parse-boolean-config-BigJ9U46.js";import{a as ue}from"./transformers-CQ9ss9rD.js";import"./shadow-claw-page-header-action-button-FSOhTc9z.js";import"./shadow-claw-page-header-De6Qf6eY.js";import{t as O}from"./mime-ClqNyXPc.js";import{r as k}from"./frontmatter-BH0hi8ok.js";import{a as de,c as A,d as fe,f as j,i as pe,l as me,n as he,o as ge,r as M,s as _e,t as ve,u as ye}from"./iframe-bridge-scripts-CO0izGjW.js";import{i as be}from"./coerce-44KevvoY.js";import{n as xe}from"./base64-Cwcsjvcj.js";import{a as N,n as Se,o as Ce}from"./shadow-claw-Bg9AQ5x_.js";var we=/* @__PURE__ */ e(d(),1);function P(e){return e.replace(/^\.?\//,``).replace(/^pages\/main\//,``).toLowerCase().trim()}function F(e){return(e.split(`/`).pop()||``).toLowerCase().trim()}function I(e){return F(e).replace(/\.(js|mjs|cjs|ts)$/i,``).toLowerCase().trim()}function L(e=[],t,n){if(!Array.isArray(e)||e.length===0)return[];let r=e.map(e=>typeof e==`string`?{src:e}:e&&typeof e==`object`&&typeof e.src==`string`?e:null).filter(e=>e!==null),i=[],a=/* @__PURE__ */ new Set;for(let e of r)(e.global===!0||e.autoload===!0)&&(a.has(e.src)||(a.add(e.src),i.push(e)));if(!t&&!n)return i;let o=[];if(Array.isArray(t))o.push(...t);else if(typeof t==`string`)o.push(...t.split(/[,;\s]+/));else if(typeof t==`object`&&t){let e=t;Array.isArray(e.dependencies)?o.push(...e.dependencies):typeof e.dependencies==`string`&&o.push(...e.dependencies.split(/[,;\s]+/)),Array.isArray(e.scripts)?o.push(...e.scripts):typeof e.scripts==`string`&&o.push(...e.scripts.split(/[,;\s]+/))}if(typeof n==`string`&&n){let e=n.matchAll(/<script\b[^>]*src=["']([^"']+)["'][^>]*>/gi);for(let t of e)t[1]&&o.push(t[1]);for(let e of r){let t=[e.id,e.name,I(e.src),F(e.src)].filter(Boolean);for(let e of t)if(e.includes(`-`)&&RegExp(`<${e}[\\s>/]`,`i`).test(n)){o.push(e);break}}}let s=[];for(let e of o)if(typeof e==`string`){let t=e.trim();t&&s.push(t)}else if(e&&typeof e==`object`){let t=e.id||e.name||e.src;typeof t==`string`&&t.trim()&&s.push(t.trim())}for(let e of s){let t=e.toLowerCase(),n=P(e),o=F(e),s=I(e),c=r.find(r=>{if(r.id&&r.id.toLowerCase()===t||r.name&&r.name.toLowerCase()===t||r.src===e||r.src.toLowerCase()===t||P(r.src)===n)return!0;let i=F(r.src);if(i&&(i===o||i===t))return!0;let a=I(r.src);return!(!a||a!==s&&a!==t)});c?a.has(c.src)||(a.add(c.src),i.push(c)):console.warn(`[ShadowClaw] Script dependency "${e}" declared in page frontmatter was not found in approved customElements.scripts config.`)}return i}function Te(e){let t=(e.siteTitle||``).trim(),n=e.pageTitle?S(e.pageTitle).trim():``;if(e.isHome||!n)return t;if(!t)return n;if(n.toLowerCase()===t.toLowerCase())return t;let r=e.separator==null?` - `:e.separator;r&&!r.startsWith(` `)&&!r.endsWith(` `)&&(r=` ${r} `);let i=r.trim();return RegExp(`(?:\\s*[-|—•·]\\s*|\\s+${R(i)}\\s+)${R(t)}$`,`i`).test(n)?n:e.titleTemplate?e.titleTemplate.replace(/%%title%%|%title%/g,n).replace(/%%sitename%%|%%site%%|%sitename%|%site%/g,t).replace(/%%sep%%|%sep%/g,i).replace(/%%sitedesc%%|%%description%%|%sitedesc%|%description%/g,(e.siteDescription||``).trim()).replace(/\s+/g,` `).trim():`${n}${r}${t}`}function R(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function Ee(e,t,n){n&&(n.textContent=`Navigated to page: ${t||e.path}`)}function z(e,t){if(e===t||e===`main`&&t===`br:main`||e===`br:main`&&t===`main`)return!0;if(!e.includes(`:`)&&!t.includes(`:`))return!1;let n=e=>e.trim().replace(/:/g,`-`);return n(e)===n(t)}function B(e,t,n,r=typeof window<`u`?window.location.origin:``){let i=e.trim();if(!i||i.startsWith(`#`))return null;let a=i.split(/[?#]/,1)[0],o=a.replace(/^(?:\.\/)+/u,``),s=[];if(o.startsWith(`files/`)&&s.push(`/${o}`),a.startsWith(`/`)){let e=a.lastIndexOf(`/files/`);e>0&&s.push(a.slice(e)),s.push(a)}for(let e of s){let t=p(e);if(t&&z(t.groupId,n))return t.path}let c=y(h(n,t)),l=g(i,c,r||(typeof window<`u`?window.location.origin:``));if(!l||r&&l.origin!==r)return null;let u=p(l.pathname);return!u||!z(u.groupId,n)?null:u.path}function V(e,t,n,r,i=typeof window<`u`?window.location.origin:``){if(!e)return e;let a=i||(typeof window<`u`?window.location.origin:``),o=new DOMParser().parseFromString(e,`text/html`),s=(e,i)=>{let s=Array.from(o.querySelectorAll(e));for(let e of s){let o=(e.getAttribute(i)||``).trim();if(!o||o.startsWith(`#`)||o.startsWith(`javascript:`))continue;let s=g(o,n,a);!s||a&&s.origin!==a||(i!==`href`||_(s.pathname)||B(o,t,r,a))&&e.setAttribute(i,`${s.pathname}${s.search}${s.hash}`)}};return s(`a[href]`,`href`),s(`img[src]`,`src`),s(`audio[src]`,`src`),s(`video[src]`,`src`),s(`source[src]`,`src`),o.body.innerHTML}const De={ALLOWED_URI_REGEXP:/^(?:(?:https?|mailto|ftp|tel|file|blob|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,ADD_TAGS:[`iframe`,`figure`,`figcaption`],CUSTOM_ELEMENT_HANDLING:{tagNameCheck:e=>u(e),attributeNameCheck:()=>!0,allowCustomizedBuiltInElements:!1},ADD_ATTR:[`allow`,`allowfullscreen`,`frameborder`,`scrolling`,`referrerpolicy`,`loading`]};async function Oe({content:e,filePath:t,searchParams:n=``,groupId:a,origin:s=typeof window<`u`?window.location?.origin:``,sanitizeOptions:l=De,resolveRelativeImagesInHtmlFn:u}){let d=y(h(a,t)),f=V(e,t,d,a,s),p=u?await u(f,t,a):f,m=r(p,l),g=crypto.randomUUID().replace(/-/g,``),_=c(),v=i(g),b=typeof document<`u`?document.getElementById(`shadow-claw-site-config`):null,x=b&&b.textContent?`<script id="shadow-claw-site-config" type="application/json">${b.textContent}<\/script>`:``,S=n?`<script nonce="${g}">(function(){try{Object.defineProperty(globalThis.location,"search",{get:function(){return ${JSON.stringify(n)};},configurable:true});}catch(e){}})();<\/script>`:``,C=_.filter(e=>!e.global),ee=C.length>0&&o(m)?C.map(({src:e,hasInit:t})=>{let n=e.startsWith(`http://`)||e.startsWith(`https://`)||e.startsWith(`//`)?e:y(e.startsWith(`/`)?e:`/${e.replace(/^pages\/main\//,``)}`),r=[`<script type="module" src="${n}" nonce="${g}"><\/script>`];return t&&r.push(`<script type="module" nonce="${g}">import("${n}").then((m) => { try { if (typeof m?.init === "function") m.init(); } catch (e) { console.error("[ShadowClaw] Error executing init for " + ${JSON.stringify(n)}, e); } }).catch(() => {});<\/script>`),r.join(`
|
|
2
2
|
`)}).join(`
|
|
3
3
|
`):``,w=j();return[`<!doctype html>`,`<html class="${ye()}"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">`,`<meta http-equiv="Content-Security-Policy" content="${v}">`,`<base href="${d}" target="_blank">`,S,x,`<script nonce="${g}">${M(he)}<\/script>`,`<script nonce="${g}">${M(ve)}<\/script>`,fe(),w,ee,`</head><body class="${ye()}">`,m,`</body></html>`].join(``)}function ke(e,t){return t===0?{isPrevDisabled:!0,isNextDisabled:!0}:{isPrevDisabled:e<=0,isNextDisabled:e<0||e>=t-1}}async function Ae(e,t,n=e=>E.removeAllPages(e)){return!e||!await t({title:`Remove All Pages`,message:`Remove ALL saved pages from Pages? This cannot be undone!`,confirmLabel:`Remove All`,cancelLabel:`Cancel`})?!1:(await n(e),!0)}const H={setItem:A,deleteItem:de,clear:pe,getAll:_e,getItem:ge,putItem:A};async function je(e,t,n,r=H){switch(e){case`setItem`:await r.setItem(n,String(t.key||``),t.value);return;case`removeItem`:await r.deleteItem(n,String(t.key||``));return;case`clear`:await r.clear(n);return;case`getAllItems`:return await r.getAll(n);case`idb-get`:return await r.getItem(`${n}::idb::${t.dbName}::${t.storeName}`,String(t.key||``));case`idb-getAll`:return await r.getAll(`${n}::idb::${t.dbName}::${t.storeName}`);case`idb-put`:{let e=t.key==null?`__auto_${Date.now()}`:String(t.key);return await r.putItem(`${n}::idb::${t.dbName}::${t.storeName}`,e,t.value),e}case`idb-delete`:await r.deleteItem(`${n}::idb::${t.dbName}::${t.storeName}`,String(t.key||``));return;case`idb-clear`:await r.clear(`${n}::idb::${t.dbName}::${t.storeName}`);return;case`idb-deleteDatabase`:await r.clear(`${n}::idb::${t.dbName}::__default__`);return;case`idb-count`:{let e=await r.getAll(`${n}::idb::${t.dbName}::${t.storeName}`);return Object.keys(e).length}default:throw Error(`Unknown storage proxy method: ${e}`)}}async function Me(e,t,n,r,i,a=H){if(t)try{let o=await je(n,r,i,a);e.postMessage({type:`shadow-claw-storage-proxy-result`,requestId:t,result:o??null},`*`)}catch(n){e.postMessage({type:`shadow-claw-storage-proxy-result`,requestId:t,error:n instanceof Error?n.message:String(n)},`*`)}}function Ne({root:e,rendered:n,selectedPath:r,onIframeLoad:i}){let a=e.querySelector(`[data-pages-iframe]`);if(a instanceof HTMLIFrameElement)return a;let o=document.createElement(`iframe`);return o.className=`pages__iframe`,o.setAttribute(`data-pages-iframe`,``),o.setAttribute(`title`,r?`Preview: ${r}`:`Page preview`),o.setAttribute(`sandbox`,t()),o.setAttribute(`allow`,`fullscreen; clipboard-write`),o.hidden=!0,i&&o.addEventListener(`load`,()=>{i(o.contentWindow)}),n.before(o),o}function U(e){if(typeof e!=`string`&&typeof e!=`number`)return 0;let t=parseInt(String(e),10);return isNaN(t)||t<0?0:be(t,0,{min:0,max:86400})}async function Pe(e,t=x){if(!e)return 0;try{return U(await t(e,v.PAGES_AUTO_REFRESH_INTERVAL))}catch{return 0}}function W(e){if(!e)return``;let t=e.groupId;return t===`main`&&(t=`br:main`),`${t}\u0000${e.path}`}function G(e,t=[]){if(!e)return-1;let n=W(e);return t.findIndex(e=>W(e)===n)}function Fe(e=[]){let t=/* @__PURE__ */ new Map;return e.forEach(e=>{let n=t.get(e.groupId)||[];n.push(e),t.set(e.groupId,n)}),t}function Ie(e,t,n){if(!e)return!1;let r=e.replace(/^#/,``);if(!r)return!1;if(t&&!t.hidden){let e=t.querySelector(`[id="${r}"]`)||t.querySelector(`a[name="${r}"]`);if(e){typeof e.scrollIntoView==`function`&&e.scrollIntoView({behavior:`smooth`,block:`start`});let n=Array.from(t.querySelectorAll(`img`)).filter(e=>!e.complete);if(n.length>0){let t,r=()=>{clearTimeout(t),t=setTimeout(()=>{typeof e.scrollIntoView==`function`&&e.scrollIntoView({behavior:`smooth`,block:`start`})},50)};for(let e of n)e.addEventListener(`load`,r,{once:!0}),e.addEventListener(`error`,r,{once:!0})}return!0}}if(n&&!n.hidden){try{let e=n.contentDocument;if(e){let t=e.querySelector(`[id="${r}"]`)||e.querySelector(`a[name="${r}"]`);if(t)return typeof t.scrollIntoView==`function`&&t.scrollIntoView({behavior:`smooth`,block:`start`}),!0}}catch{}try{n.contentWindow?.postMessage({type:`shadow-claw-scroll-to-anchor`,anchor:r},`*`)}catch{}}return!1}function Le(e){let t=e.detail;return t&&t.interval!==void 0?U(t.interval):null}function Re(e,t){return!e||!t||!e.groupId||!e.path||e.path!==t.path?!1:e.groupId===t.groupId||z(e.groupId,t.groupId)}function ze(e,t){let n=e.detail;return Re(n,t)}function K(e,t){let n=[`data-no-nav`,`data-no-swipe`,`data-no-page-nav`,`data-prevent-nav`,`data-prevent-page-nav`,`data-isolate-input`,`data-isolate-navigation`,`data-game-controls`],r=e=>{if(!e||!(e instanceof HTMLElement))return!1;let t=e.tagName.toLowerCase();return!!(t===`input`||t===`textarea`||t===`select`||t===`option`||t===`iframe`||e.classList.contains(`pages__preview-frame`)||e.isContentEditable||e.contentEditable===`true`||e.getAttribute(`contenteditable`)===`true`||e.hasAttribute(`contenteditable`)||e.closest(`[data-pages-list]`)||e.closest(`[data-pages-dropdown]`)||e.closest(`.pages__sidebar`)||e.closest(`.pages__preview-frame`)||e.closest(`iframe`)||n.some(t=>e.closest(`[${t}]`)))};if(t&&r(t))return!0;if(e){let t=typeof e.composedPath==`function`?e.composedPath():[];for(let e of t)if(e instanceof HTMLElement){let t=e.tagName.toLowerCase();if(n.some(t=>e.hasAttribute(t))||t===`input`||t===`textarea`||t===`select`||t===`option`||t===`iframe`||e.classList.contains(`pages__preview-frame`)||e.isContentEditable||e.contentEditable===`true`||e.getAttribute(`contenteditable`)===`true`||e.hasAttribute(`contenteditable`))return!0}if(e.target&&r(e.target))return!0}return!1}function Be(e,t){return t||e.key!==`ArrowLeft`&&e.key!==`ArrowRight`||e.ctrlKey||e.altKey||e.metaKey?null:e.key===`ArrowLeft`?`previous`:`next`}function Ve(e,t,n,r,i,a=300,o=Date.now()){let s=i??{lastNavigationTime:0,lastDirection:null};if(!t)return s;let c=n?.activeElement||document.activeElement,l=Be(e,K(e,e.target||null)||K(void 0,c));return!l||(e.preventDefault(),s.lastDirection===l&&o-s.lastNavigationTime<a)||(s.lastNavigationTime=o,s.lastDirection=l,r(l)),s}function He(e,t,n=Date.now()){return e.button!==0||t?{mouseStartX:0,mouseStartY:0,mouseStartTime:0,isMouseDown:!1}:{mouseStartX:e.clientX,mouseStartY:e.clientY,mouseStartTime:n,isMouseDown:!0}}function Ue(e,t,n,r,i,a=Date.now(),o=50,s=600){let c=n-e,l=r-t,u=a-i;return Math.abs(c)>=o&&Math.abs(c)>Math.abs(l)&&u<=s?c<0?`next`:`previous`:null}function We(e,t,n,r,i=Date.now()){return!t.isMouseDown||n||r?null:Ue(t.mouseStartX,t.mouseStartY,e.clientX,e.clientY,t.mouseStartTime,i)}function Ge(e,t,n){if(t===n||t<0||t>=e.length||n<0||n>=e.length)return e;let r=[...e],[i]=r.splice(t,1);return r.splice(n,0,i),r}async function Ke({db:e,currentPages:t,fromIndex:n,toIndex:r,reorderStoreFn:i=(e,t)=>E.reorderPages(e,t)}){if(!e||n===r)return{reordered:!1,reorderedPages:t,movedToFirst:null};let a=Ge(t,n,r);if(a===t)return{reordered:!1,reorderedPages:t,movedToFirst:null};await i(e,a);let o=a[r]||null;return{reordered:!0,reorderedPages:a,movedToFirst:r===0?o:null}}function qe(e,t,n,r=Date.now()){if(!t.touchStartTime||n)return null;if(e.changedTouches&&e.changedTouches.length===1){let n=e.changedTouches[0].clientX,i=e.changedTouches[0].clientY;return Ue(t.touchStartX,t.touchStartY,n,i,t.touchStartTime,r)}return null}function Je(e,t,n=Date.now()){return t?{touchStartX:0,touchStartY:0,touchStartTime:0}:e.touches&&e.touches.length===1?{touchStartX:e.touches[0].clientX,touchStartY:e.touches[0].clientY,touchStartTime:n}:null}function Ye(e,t,n){return!e&&t?`render-and-timer`:e&&n?`clear-timer`:`noop`}function Xe(e,t){return!e&&t}function q(e){return/\.(html?|xhtml)$/iu.test(e)}function J(e){return/\.(md|markdown)$/iu.test(e)}function Ze(e,t,n){if(!e||!q(e))return!1;if(t&&typeof t==`object`){if(typeof t.iframe==`boolean`)return t.iframe;if(typeof t.iframe==`string`){let e=t.iframe.trim().toLowerCase();if(e===`false`||e===`0`||e===`no`)return!1;if(e===`true`||e===`1`||e===`yes`)return!0}if(typeof t.render==`string`){let e=t.render.trim().toLowerCase();if(e===`shadow`||e===`direct`||e===`shadowdom`)return!1;if(e===`iframe`)return!0}if(typeof t.shadowDom==`boolean`)return!t.shadowDom}let r=n;if(!r&&typeof document<`u`)try{let e=document.getElementById(`shadow-claw-site-config`);e?.textContent&&(r=JSON.parse(e.textContent))}catch{}if(r?.pages&&typeof r.pages==`object`){let t=r.pages,n=e.replace(/^\/+/,``).replace(/^pages\/[^/]+\//,``);if((Array.isArray(t.directPages)||Array.isArray(t.shadowDomPages))&&(t.directPages||t.shadowDomPages).some(t=>{let r=String(t).replace(/^\/+/,``).replace(/^pages\/[^/]+\//,``);return r===n||r===e}))return!1;if(Array.isArray(t.iframePages)&&t.iframePages.some(t=>{let r=String(t).replace(/^\/+/,``).replace(/^pages\/[^/]+\//,``);return r===n||r===e}))return!0;if(typeof t.iframe==`boolean`)return t.iframe;if(typeof t.iframe==`string`){let e=t.iframe.trim().toLowerCase();if(e===`false`||e===`0`||e===`no`)return!1;if(e===`true`||e===`1`||e===`yes`)return!0}if(typeof t.render==`string`){let e=t.render.trim().toLowerCase();if(e===`shadow`||e===`direct`||e===`shadowdom`)return!1;if(e===`iframe`)return!0}if(typeof t.shadowDom==`boolean`)return!t.shadowDom}return!0}function Qe(e){if(!e||typeof e!=`object`)return null;let t=e;return t.type===`shadow-claw-broadcast-result`&&typeof t.channel==`string`?{kind:`broadcast-result`,channel:t.channel,payload:t.payload}:t.type===`shadow-claw-storage-proxy`?{kind:`storage-proxy`,requestId:String(t.requestId||``),method:String(t.method||``),args:t.args&&typeof t.args==`object`?t.args:{}}:t.type===`shadow-claw-swipe`&&typeof t.direction==`string`?{kind:`swipe`,direction:t.direction}:t.type===`shadow-claw-iframe-resize`&&typeof t.height==`number`?{kind:`iframe-resize`,height:t.height}:t.type===`shadow-claw-file-viewer-link`&&typeof t.href==`string`?{kind:`file-viewer-link`,href:t.href,target:typeof t.target==`string`?t.target:void 0}:null}async function $e({db:e,groupId:t,workspacePath:n,readGroupFileBytesFn:r=ue,writeGroupFileFn:i=oe,fetchFn:a=typeof fetch<`u`?fetch:void 0}){if(e)try{let i=await r(e,t,n),a=O(n)||`image/jpeg`,o=new Uint8Array(i.byteLength);return o.set(new Uint8Array(i)),`data:${a};base64,${xe(o)}`}catch{}if(!a)return null;try{let r=n.replace(/^\/+/,``),o=[y(`/files/main/${r}`),y(`/static-main/${r}`),y(`/pages/main/${r}`)];for(let r of o)try{let o=await a(typeof window<`u`&&window.location?.origin?new URL(r,window.location.origin).toString():r);if(o.ok){let r=await o.blob();if(e)try{let a=await r.arrayBuffer();await i(e,t,n,new Uint8Array(a))}catch{}if(typeof FileReader<`u`)return await new Promise((e,t)=>{let n=new FileReader;n.onload=()=>e(n.result),n.onerror=t,n.readAsDataURL(r)});let a=await r.arrayBuffer(),s=xe(new Uint8Array(a));return`data:${r.type||O(n)||`image/jpeg`};base64,${s}`}}catch{}}catch{}return null}function Y(e){let t=e.querySelector(`[data-pages-iframe]`);if(t instanceof HTMLIFrameElement){t.removeAttribute(`srcdoc`);try{t.src=`about:blank`}catch{}t.remove()}}async function et(e,t=typeof document<`u`?document.querySelector(`shadow-claw`):null,n=ce){return t&&typeof t.requestDialog==`function`?await t.requestDialog({mode:`confirm`,...e}):(n(e.message,4500),!1)}async function X(e,t,n=x){if(!e||typeof e.transaction!=`function`)return!0;try{return le(await n(e,t),!0)}catch{return!0}}function tt(e,t,n=[]){if(e===t||z(e,t))return t;let r=n.find(t=>t.groupId===e);if(r)return r.groupId;let i=n.find(t=>z(e,t.groupId));return i?i.groupId:e||null}function nt(e,t,n,r=[],i=typeof window<`u`?window.location.origin:``){let a=e.trim();if(!a||a.startsWith(`#`))return null;let o=[],s=a.split(/[?#]/,1)[0];if(/^[a-zA-Z][a-zA-Z\d+.-]*:/u.test(s)||s.startsWith(`//`)){let e;try{e=new URL(s,i||(typeof window<`u`?window.location.origin:``))}catch{return null}if(i&&e.origin!==i)return null;s=e.pathname}let c=s.replace(/^(?:\.\/)+/u,``);if(c.startsWith(`files/`)&&o.push(`/${c}`),s.startsWith(`/`)){let e=s.lastIndexOf(`/files/`);e>0&&o.push(s.slice(e)),o.push(s)}for(let e of o){let t=p(e);if(!t)continue;let i=tt(t.groupId,n,r);if(i)return{groupId:i,path:t.path}}let l=B(a,t,n,i);return l?{groupId:n,path:l}:null}async function rt({container:e,groupId:t,filePath:n,groups:r,readImageAsDataUrlFn:i}){let a=Array.from(e.querySelectorAll(`img[src]`));a.length!==0&&await Promise.all(a.map(async e=>{let a=e.getAttribute(`src`)||``;if(!a||/^(?:blob:|data:|#)/u.test(a))return;let o=nt(a,n,t,r);if(!o)return;let s=await i(o.groupId,o.path);s&&e.setAttribute(`src`,s)}))}function it(e,t,n){return e>0&&!t&&n}function at(e){if(!e)return;let t=typeof document<`u`&&document.documentElement.classList.contains(`dark-mode`),n={};if(typeof document<`u`&&typeof getComputedStyle<`u`){let e=getComputedStyle(document.documentElement);for(let t=0;t<e.length;t++){let r=e[t];r.startsWith(`--`)&&(n[r]=e.getPropertyValue(r))}}e.postMessage({type:`shadow-claw-theme-update`,theme:t?`dark`:`light`,customProperties:n},`*`)}function ot({root:e,currentOpen:t,force:n}){if(!e)return t;let r=e.querySelector(`[data-pages-dropdown]`),i=r instanceof HTMLDetailsElement&&r.open,a;a=n===void 0?!(i||t):n;let o=e.querySelector(`.pages__sidebar`),s=e.querySelector(`.pages__content`);return o&&o.classList.toggle(`collapsed`,!a),s&&s.classList.toggle(`pages__content--sidebar-collapsed`,!a),r instanceof HTMLDetailsElement&&(a?r.setAttribute(`open`,``):r.removeAttribute(`open`)),a}const st=new CSSStyleSheet;st.replaceSync(`* {
|
|
4
4
|
box-sizing: border-box;
|