shadow-claw 1.59.6 → 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 +1 -1
- package/.well-known/mcp.json +1 -1
- package/README.md +6 -2
- package/dist/cli/build/build.js +1 -1
- package/dist/cli/chunk-3C5izdQW.js +1 -0
- package/dist/cli/chunk-B-75h9gX.js +1 -0
- package/dist/cli/{chunk-C9o6lXP3.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-DJqHK-qS.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-yiVdvGCJ.js → chunk-BVSC1MNQ.js} +11 -11
- package/dist/cli/{chunk-CX2itile.js → chunk-BdWcep6o.js} +1 -1
- package/dist/cli/{chunk-DLde6nuO.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-D3y7h9Xe.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-DM4xsTry.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-DB21BMqt.js +7 -0
- 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-Bc_weULz.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-C8DBACtx.js → chunk-ZxDxSSn-.js} +1 -1
- package/dist/cli/chunk-lPvFUkd5.js +7 -0
- package/dist/cli/{chunk-Ctg5L55n.js → chunk-n5s-sCdU.js} +1 -1
- package/dist/cli/{chunk-Dw8GndPD.js → chunk-nD9VPVMq.js} +1 -1
- package/dist/cli/{chunk-Cq_kQohv.js → chunk-rFuy8aS_.js} +1 -1
- package/dist/cli/{chunk-Bq38OubR.js → chunk-wjM6JXWa.js} +1 -1
- package/dist/cli/{chunk-3wTukVof.js → chunk-zcES9rut.js} +1 -1
- package/dist/cli/cli.js +3 -3
- package/dist/headless-agent.js +2 -2
- package/dist/lib/{app-routes-DJdIjp2V.js → app-routes-BXiRvlNl.js} +7 -25
- package/dist/lib/{app-routes-DJdIjp2V.js.map → app-routes-BXiRvlNl.js.map} +1 -1
- package/dist/lib/{attachment-capabilities-Dbb-4ZP5.js → attachment-capabilities-BjkEPip8.js} +2 -2
- package/dist/lib/{attachment-capabilities-Dbb-4ZP5.js.map → attachment-capabilities-BjkEPip8.js.map} +1 -1
- package/dist/lib/{channel-Dlru5ofR.js → channel-DB77spML.js} +3 -3
- package/dist/lib/{channel-Dlru5ofR.js.map → channel-DB77spML.js.map} +1 -1
- package/dist/lib/{chat-template-BuuLY8l7.js → chat-template-DPEKGJhB.js} +2 -2
- package/dist/lib/{chat-template-BuuLY8l7.js.map → chat-template-DPEKGJhB.js.map} +1 -1
- package/dist/lib/{compact-context-BtR55YPU.js → compact-context-Q9t9aL1e.js} +19 -19
- package/dist/lib/{compact-context-BtR55YPU.js.map → compact-context-Q9t9aL1e.js.map} +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.js +1 -1
- package/dist/lib/components/settings/shadow-claw-mcp-remote.js +1 -1
- package/dist/lib/components/settings/shadow-claw-networking.js +1 -1
- package/dist/lib/components/settings/shadow-claw-notifications.js +1 -1
- package/dist/lib/components/settings/shadow-claw-peerjs.js +1 -1
- package/dist/lib/components/settings/shadow-claw-storage.js +1 -1
- package/dist/lib/components/settings/shadow-claw-task-server.js +1 -1
- package/dist/lib/components/settings/shadow-claw-webvm.js +1 -1
- package/dist/lib/components/shadow-claw-a2ui.js +1 -1
- package/dist/lib/components/shadow-claw-accounts.js +1 -1
- package/dist/lib/components/shadow-claw-channel-config.js +1 -1
- package/dist/lib/components/shadow-claw-channels.js +1 -1
- package/dist/lib/components/shadow-claw-chat.js +1 -1
- package/dist/lib/components/shadow-claw-control-plane.js +1 -1
- package/dist/lib/components/shadow-claw-conversations.js +1 -1
- package/dist/lib/components/shadow-claw-file-viewer.js +1 -1
- package/dist/lib/components/shadow-claw-files.js +1 -1
- package/dist/lib/components/shadow-claw-git.js +1 -1
- package/dist/lib/components/shadow-claw-integrations.js +1 -1
- package/dist/lib/components/shadow-claw-llm.js +1 -1
- package/dist/lib/components/shadow-claw-mcp-remote.js +1 -1
- package/dist/lib/components/shadow-claw-networking.js +1 -1
- package/dist/lib/components/shadow-claw-notifications.js +1 -1
- package/dist/lib/components/shadow-claw-page-header.js +1 -1
- package/dist/lib/components/shadow-claw-pages.js +1 -1
- package/dist/lib/components/shadow-claw-peerjs.js +1 -1
- package/dist/lib/components/shadow-claw-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-DxNI3TlW.js → config-BrHR97zt.js} +2 -2
- package/dist/lib/{config-DxNI3TlW.js.map → config-BrHR97zt.js.map} +1 -1
- package/dist/lib/{configure-peer-js-ChDhOZU4.js → configure-peer-js-CgFiwoxY.js} +3 -3
- package/dist/lib/{configure-peer-js-ChDhOZU4.js.map → configure-peer-js-CgFiwoxY.js.map} +1 -1
- package/dist/lib/{connections-DC4NZkJE.js → connections-C1FWsBsE.js} +2 -2
- package/dist/lib/{connections-DC4NZkJE.js.map → connections-C1FWsBsE.js.map} +1 -1
- package/dist/lib/content/build-attachment-content-blocks.d.ts +2 -0
- package/dist/lib/{credentials-5vpz0XPk.js → credentials-CZbngHXW.js} +2 -2
- package/dist/lib/{credentials-5vpz0XPk.js.map → credentials-CZbngHXW.js.map} +1 -1
- package/dist/lib/{discover-skills-CD0sKvAI.js → discover-skills-CXyaWHKi.js} +13 -13
- package/dist/lib/{discover-skills-CD0sKvAI.js.map → discover-skills-CXyaWHKi.js.map} +1 -1
- package/dist/lib/{download-group-file-Dk3qaxhJ.js → download-group-file-D0wgg10Q.js} +2 -2
- package/dist/lib/{download-group-file-Dk3qaxhJ.js.map → download-group-file-D0wgg10Q.js.map} +1 -1
- package/dist/lib/{file-viewer-B4pRW-_G.js → file-viewer-DOfvX6yy.js} +5 -5
- package/dist/lib/{file-viewer-B4pRW-_G.js.map → file-viewer-DOfvX6yy.js.map} +1 -1
- package/dist/lib/{get-or-create-subscriber-id-HCcgDEPz.js → get-or-create-subscriber-id-wyzaML7Z.js} +2 -2
- package/dist/lib/{get-or-create-subscriber-id-HCcgDEPz.js.map → get-or-create-subscriber-id-wyzaML7Z.js.map} +1 -1
- package/dist/lib/{git-B3Q1euc5.js → git-CogDRlEz.js} +5 -5
- package/dist/lib/{git-B3Q1euc5.js.map → git-CogDRlEz.js.map} +1 -1
- package/dist/lib/{iframe-bridge-scripts-D8iuFhUk.js → iframe-bridge-scripts-Dx825LLG.js} +2 -2
- package/dist/lib/{iframe-bridge-scripts-D8iuFhUk.js.map → iframe-bridge-scripts-Dx825LLG.js.map} +1 -1
- package/dist/lib/index.js +28 -28
- package/dist/lib/{init-chat-split-resize-B0ODULx9.js → init-chat-split-resize-Cc0bd2z9.js} +2 -2
- package/dist/lib/{init-chat-split-resize-B0ODULx9.js.map → init-chat-split-resize-Cc0bd2z9.js.map} +1 -1
- package/dist/lib/{init-control-plane-C1FRRmjC.js → init-control-plane-CEGdzgWX.js} +15 -15
- package/dist/lib/{init-control-plane-C1FRRmjC.js.map → init-control-plane-CEGdzgWX.js.map} +1 -1
- package/dist/lib/{invoke-agent-CzN7sVh-.js → invoke-agent-cac3gCsj.js} +11 -11
- package/dist/lib/{invoke-agent-CzN7sVh-.js.map → invoke-agent-cac3gCsj.js.map} +1 -1
- package/dist/lib/{markdown-mbNo7cV3.js → markdown--6vTAPEH.js} +2 -2
- package/dist/lib/{markdown-mbNo7cV3.js.map → markdown--6vTAPEH.js.map} +1 -1
- package/dist/lib/{mcp-reconnect-3T7yWGEY.js → mcp-reconnect-BeqQvNWO.js} +3 -3
- package/dist/lib/{mcp-reconnect-3T7yWGEY.js.map → mcp-reconnect-BeqQvNWO.js.map} +1 -1
- package/dist/lib/{model-ranking-DGNSWYwN.js → model-ranking-BhsJV7vb.js} +2 -2
- package/dist/lib/{model-ranking-DGNSWYwN.js.map → model-ranking-BhsJV7vb.js.map} +1 -1
- package/dist/lib/{move-group-entry-NMTJ59M9.js → move-group-entry-D8dptMg0.js} +5 -5
- package/dist/lib/{move-group-entry-NMTJ59M9.js.map → move-group-entry-D8dptMg0.js.map} +1 -1
- package/dist/lib/{orchestrator-B8FV1V7x.js → orchestrator-BBAwy9Nm.js} +24 -24
- package/dist/lib/{orchestrator-B8FV1V7x.js.map → orchestrator-BBAwy9Nm.js.map} +1 -1
- package/dist/lib/{orchestrator-i_QJ-o22.js → orchestrator-cRBe3lhq.js} +11 -11
- package/dist/lib/orchestrator-cRBe3lhq.js.map +1 -0
- package/dist/lib/{parse-path-DPCn-HwI.js → parse-path-BOHQP_IQ.js} +3 -3
- package/dist/lib/{parse-path-DPCn-HwI.js.map → parse-path-BOHQP_IQ.js.map} +1 -1
- package/dist/lib/{peerjs-z5zeioPV.js → peerjs-BLg8aGUj.js} +8 -8
- package/dist/lib/{peerjs-z5zeioPV.js.map → peerjs-BLg8aGUj.js.map} +1 -1
- package/dist/lib/{process-peer-query-param-CJp7w7AU.js → process-peer-query-param-BnsVnxzH.js} +5 -5
- package/dist/lib/{process-peer-query-param-CJp7w7AU.js.map → process-peer-query-param-BnsVnxzH.js.map} +1 -1
- package/dist/lib/{process-pending-shared-payloads-B6_TlBFA.js → process-pending-shared-payloads-DBZfZOOa.js} +4 -4
- package/dist/lib/{process-pending-shared-payloads-B6_TlBFA.js.map → process-pending-shared-payloads-DBZfZOOa.js.map} +1 -1
- package/dist/lib/{process-room-query-param-C3FFGGn6.js → process-room-query-param-B8EYg_-r.js} +4 -4
- package/dist/lib/{process-room-query-param-C3FFGGn6.js.map → process-room-query-param-B8EYg_-r.js.map} +1 -1
- package/dist/lib/{provider-DcQZypu5.js → provider-BC9KPI14.js} +3 -3
- package/dist/lib/{provider-DcQZypu5.js.map → provider-BC9KPI14.js.map} +1 -1
- package/dist/lib/{push-client-Cx5rMs6J.js → push-client-CAm6UMvE.js} +5 -5
- package/dist/lib/{push-client-Cx5rMs6J.js.map → push-client-CAm6UMvE.js.map} +1 -1
- package/dist/lib/{read-group-file-bytes-CXOG_YyM.js → read-group-file-bytes-UQIk1eJG.js} +2 -2
- package/dist/lib/{read-group-file-bytes-CXOG_YyM.js.map → read-group-file-bytes-UQIk1eJG.js.map} +1 -1
- package/dist/lib/{rooms-CwlkYLDU.js → rooms-Dzphx3rK.js} +2 -2
- package/dist/lib/{rooms-CwlkYLDU.js.map → rooms-Dzphx3rK.js.map} +1 -1
- package/dist/lib/{shadow-claw-DoQ7fgl5.js → shadow-claw-CGl8tXtG.js} +17 -20
- package/dist/lib/shadow-claw-CGl8tXtG.js.map +1 -0
- package/dist/lib/{shadow-claw-a2ui-Br6qJMs1.js → shadow-claw-a2ui-lG0vQbW8.js} +2 -2
- package/dist/lib/{shadow-claw-a2ui-Br6qJMs1.js.map → shadow-claw-a2ui-lG0vQbW8.js.map} +1 -1
- package/dist/lib/{shadow-claw-accounts-BTDILfWw.js → shadow-claw-accounts-CkqyCxwp.js} +3 -3
- package/dist/lib/{shadow-claw-accounts-BTDILfWw.js.map → shadow-claw-accounts-CkqyCxwp.js.map} +1 -1
- package/dist/lib/{shadow-claw-channel-config-IKiL34tI.js → shadow-claw-channel-config-BNIWCdsL.js} +4 -4
- package/dist/lib/{shadow-claw-channel-config-IKiL34tI.js.map → shadow-claw-channel-config-BNIWCdsL.js.map} +1 -1
- package/dist/lib/{shadow-claw-channels-JgEzuHWK.js → shadow-claw-channels-C2QSn4Ew.js} +3 -3
- package/dist/lib/{shadow-claw-channels-JgEzuHWK.js.map → shadow-claw-channels-C2QSn4Ew.js.map} +1 -1
- package/dist/lib/{shadow-claw-chat-SGUDT31r.js → shadow-claw-chat-Wx3y9y6c.js} +15 -15
- package/dist/lib/{shadow-claw-chat-SGUDT31r.js.map → shadow-claw-chat-Wx3y9y6c.js.map} +1 -1
- package/dist/lib/{shadow-claw-control-plane-CRWFZ3vD.js → shadow-claw-control-plane-D5E4cFGu.js} +7 -7
- package/dist/lib/{shadow-claw-control-plane-CRWFZ3vD.js.map → shadow-claw-control-plane-D5E4cFGu.js.map} +1 -1
- package/dist/lib/{shadow-claw-conversations-D23GJ7qo.js → shadow-claw-conversations-BtDv7GRW.js} +7 -7
- package/dist/lib/{shadow-claw-conversations-D23GJ7qo.js.map → shadow-claw-conversations-BtDv7GRW.js.map} +1 -1
- package/dist/lib/{shadow-claw-file-viewer-C1V8WTiU.js → shadow-claw-file-viewer-CG40kwWV.js} +10 -10
- package/dist/lib/{shadow-claw-file-viewer-C1V8WTiU.js.map → shadow-claw-file-viewer-CG40kwWV.js.map} +1 -1
- package/dist/lib/{shadow-claw-files-DN7irmE1.js → shadow-claw-files-BOUULrlX.js} +11 -11
- package/dist/lib/{shadow-claw-files-DN7irmE1.js.map → shadow-claw-files-BOUULrlX.js.map} +1 -1
- package/dist/lib/{shadow-claw-git-D-1oIh65.js → shadow-claw-git-BeHV73_9.js} +6 -6
- package/dist/lib/{shadow-claw-git-D-1oIh65.js.map → shadow-claw-git-BeHV73_9.js.map} +1 -1
- package/dist/lib/{shadow-claw-integrations-CZjnm7cM.js → shadow-claw-integrations-RZZ-m-Id.js} +4 -4
- package/dist/lib/{shadow-claw-integrations-CZjnm7cM.js.map → shadow-claw-integrations-RZZ-m-Id.js.map} +1 -1
- package/dist/lib/{shadow-claw-llm-4Gefh5FN.js → shadow-claw-llm-KONyWKZM.js} +9 -9
- package/dist/lib/{shadow-claw-llm-4Gefh5FN.js.map → shadow-claw-llm-KONyWKZM.js.map} +1 -1
- package/dist/lib/{shadow-claw-mcp-remote-B9ssb3YV.js → shadow-claw-mcp-remote-BKFROurv.js} +4 -4
- package/dist/lib/{shadow-claw-mcp-remote-B9ssb3YV.js.map → shadow-claw-mcp-remote-BKFROurv.js.map} +1 -1
- package/dist/lib/{shadow-claw-networking-BN5BB4hb.js → shadow-claw-networking-Diy3JJkc.js} +2 -2
- package/dist/lib/{shadow-claw-networking-BN5BB4hb.js.map → shadow-claw-networking-Diy3JJkc.js.map} +1 -1
- package/dist/lib/{shadow-claw-notifications-71KARtkY.js → shadow-claw-notifications-C-upPa-4.js} +3 -3
- package/dist/lib/{shadow-claw-notifications-71KARtkY.js.map → shadow-claw-notifications-C-upPa-4.js.map} +1 -1
- package/dist/lib/{shadow-claw-page-header-DMGO-TSe.js → shadow-claw-page-header-C_Qr3xZM.js} +2 -2
- package/dist/lib/{shadow-claw-page-header-DMGO-TSe.js.map → shadow-claw-page-header-C_Qr3xZM.js.map} +1 -1
- package/dist/lib/{shadow-claw-pages-BiRM6qiA.js → shadow-claw-pages-CfAjUKgd.js} +11 -11
- package/dist/lib/{shadow-claw-pages-BiRM6qiA.js.map → shadow-claw-pages-CfAjUKgd.js.map} +1 -1
- package/dist/lib/{shadow-claw-peerjs-BZu7jNSe.js → shadow-claw-peerjs-t4YibS9s.js} +6 -6
- package/dist/lib/{shadow-claw-peerjs-BZu7jNSe.js.map → shadow-claw-peerjs-t4YibS9s.js.map} +1 -1
- package/dist/lib/{shadow-claw-provider-model-picker-BXYXEobD.js → shadow-claw-provider-model-picker-B-Ct4yW-.js} +2 -2
- package/dist/lib/{shadow-claw-provider-model-picker-BXYXEobD.js.map → shadow-claw-provider-model-picker-B-Ct4yW-.js.map} +1 -1
- package/dist/lib/{shadow-claw-settings-CcT5EK08.js → shadow-claw-settings-Cg5V0e9g.js} +7 -7
- package/dist/lib/{shadow-claw-settings-CcT5EK08.js.map → shadow-claw-settings-Cg5V0e9g.js.map} +1 -1
- package/dist/lib/{shadow-claw-storage-eTOpbvpi.js → shadow-claw-storage-C7tCnsSG.js} +5 -5
- package/dist/lib/{shadow-claw-storage-eTOpbvpi.js.map → shadow-claw-storage-C7tCnsSG.js.map} +1 -1
- package/dist/lib/{shadow-claw-task-server-DFImTUbw.js → shadow-claw-task-server-BObsRdf8.js} +2 -2
- package/dist/lib/{shadow-claw-task-server-DFImTUbw.js.map → shadow-claw-task-server-BObsRdf8.js.map} +1 -1
- package/dist/lib/{shadow-claw-tasks-BjaxsmUx.js → shadow-claw-tasks-B2EEqrcY.js} +9 -9
- package/dist/lib/{shadow-claw-tasks-BjaxsmUx.js.map → shadow-claw-tasks-B2EEqrcY.js.map} +1 -1
- package/dist/lib/{shadow-claw-terminal-C-4wreFe.js → shadow-claw-terminal-DSHfO2b9.js} +2 -2
- package/dist/lib/{shadow-claw-terminal-C-4wreFe.js.map → shadow-claw-terminal-DSHfO2b9.js.map} +1 -1
- package/dist/lib/{shadow-claw-tools-COdrGZJk.js → shadow-claw-tools-DwPBADua.js} +7 -7
- package/dist/lib/{shadow-claw-tools-COdrGZJk.js.map → shadow-claw-tools-DwPBADua.js.map} +1 -1
- package/dist/lib/{shadow-claw-webvm-sxqVjO0L.js → shadow-claw-webvm-CY4qGaMB.js} +3 -3
- package/dist/lib/{shadow-claw-webvm-sxqVjO0L.js.map → shadow-claw-webvm-CY4qGaMB.js.map} +1 -1
- package/dist/lib/{sync-web-mcp-registration-D4hdUwtv.js → sync-web-mcp-registration-BiOZvW-R.js} +6 -6
- package/dist/lib/{sync-web-mcp-registration-D4hdUwtv.js.map → sync-web-mcp-registration-BiOZvW-R.js.map} +1 -1
- package/dist/lib/{system-prompt-DT_KeYaL.js → system-prompt-CxJ3Nx4c.js} +9 -8
- package/dist/lib/system-prompt-CxJ3Nx4c.js.map +1 -0
- package/dist/lib/{tools-Beuyh8y1.js → tools-B8OJ4sMF.js} +4 -4
- package/dist/lib/{tools-Beuyh8y1.js.map → tools-B8OJ4sMF.js.map} +1 -1
- package/dist/lib/{transformers-DydnReu4.js → transformers-BMURofG6.js} +2 -2
- package/dist/lib/{transformers-DydnReu4.js.map → transformers-BMURofG6.js.map} +1 -1
- package/dist/lib/{trusted-types-CfwZl_rr.js → trusted-types-HwsGS5Nj.js} +19 -17
- package/dist/lib/{trusted-types-CfwZl_rr.js.map → trusted-types-HwsGS5Nj.js.map} +1 -1
- package/dist/lib/{upload-group-file-BbBzjTcN.js → upload-group-file-CJpoNjEb.js} +3 -3
- package/dist/lib/{upload-group-file-BbBzjTcN.js.map → upload-group-file-CJpoNjEb.js.map} +1 -1
- package/dist/lib/utils/index.js +1 -1
- package/dist/lib/utils/namespaced-storage.js +1 -1
- package/dist/lib/utils/runtime-assets.js +1 -1
- package/dist/lib/utils/utils.js +1 -1
- package/dist/lib/{webmcp-DCfAFiIO.js → webmcp-BoMTvgmX.js} +3 -3
- package/dist/lib/{webmcp-DCfAFiIO.js.map → webmcp-BoMTvgmX.js.map} +1 -1
- package/dist/lib/{write-group-file-bytes-Ccn-VFUU.js → write-group-file-bytes-CNT7DqOZ.js} +3 -3
- package/dist/lib/{write-group-file-bytes-Ccn-VFUU.js.map → write-group-file-bytes-CNT7DqOZ.js.map} +1 -1
- package/dist/public/.well-known/mcp/server-card.json +1 -1
- package/dist/public/.well-known/mcp.json +1 -1
- package/dist/public/AGENTS.md +3 -1
- package/dist/public/README.md +6 -2
- package/dist/public/agent.worker.js +1 -1
- package/dist/public/attachment-capabilities-AdwXt3--.js +1 -0
- package/dist/public/{channel-BylT3rJC.js → channel-DIpDQekL.js} +1 -1
- package/dist/public/{chat-template-DPHJy7tr.js → chat-template-CXKs8lFR.js} +1 -1
- package/dist/public/compact-context-BQ2ZXoAc.js +5 -0
- package/dist/public/{compact-context-BINQh64w.js → compact-context-dHitmPsV.js} +2 -2
- package/dist/public/config-C16fFWtP.js +1 -0
- package/dist/public/{configure-peer-js-DChhcOfe.js → configure-peer-js-DV1rqvFX.js} +1 -1
- package/dist/public/{connections-CHaw0VqP.js → connections-Dxwj8yK_.js} +1 -1
- package/dist/public/{create-model-cache-fetch-DQebkoPL.js → create-model-cache-fetch-B0mSCEk6.js} +1 -1
- package/dist/public/{credentials-CgVqS119.js → credentials-CJUQ5Ep2.js} +1 -1
- package/dist/public/{custom-element-security-kiDhPfb8.js → custom-element-security-B2daIE5r.js} +2 -2
- package/dist/public/{discover-skills-Cvmx5I9V.js → discover-skills-BWJB8HUA.js} +6 -6
- package/dist/public/docs/architecture/overview.md +1 -1
- package/dist/public/docs/example/article/index.html +29 -30
- package/dist/public/docs/example/article.html +29 -30
- package/dist/public/docs/publishing/index.html +29 -30
- package/dist/public/docs/publishing.html +29 -30
- package/dist/public/docs/skill-creator/index.html +29 -30
- package/dist/public/docs/skill-creator.html +29 -30
- 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/{download-group-file-BapoRgfU.js → download-group-file-BkMH-JKi.js} +1 -1
- package/dist/public/e2e/README.md +1 -1
- package/dist/public/{e2e-bridge-C0g8vZKr.js → e2e-bridge-lP2qqiv3.js} +1 -1
- package/dist/public/get-group-dir-D--BiEyk.js +1 -0
- package/dist/public/{get-or-create-subscriber-id-GvRZYXwA.js → get-or-create-subscriber-id-jVHnQfbr.js} +1 -1
- package/dist/public/{git-CaAAZfVd.js → git-DjmQ16rm.js} +2 -2
- package/dist/public/{iframe-bridge-scripts-BnqtKhE4.js → iframe-bridge-scripts-CO0izGjW.js} +1 -1
- package/dist/public/index.html +29 -30
- package/dist/public/index.js +1 -1
- package/dist/public/{init-chat-split-resize-Btonoy8u.js → init-chat-split-resize-C8AqCCiK.js} +1 -1
- package/dist/public/init-control-plane-Ctz7FI8M.js +1 -0
- package/dist/public/{invoke-agent-B3Osw6K7.js → invoke-agent-C_geruwq.js} +1 -1
- package/dist/public/llms.txt +1 -1
- package/dist/public/main/index.html +29 -30
- package/dist/public/main/memory/index.html +29 -30
- package/dist/public/main/memory.html +29 -30
- package/dist/public/main.html +29 -30
- package/dist/public/{markdown-CPbU4r1U.js → markdown-CDSb5Hrl.js} +1 -1
- package/dist/public/{mcp-reconnect-CzROVsXG.js → mcp-reconnect-iPZPihwX.js} +1 -1
- package/dist/public/{memory-storage-BkoMlxOr.js → memory-storage-2m7KZ-aP.js} +1 -1
- package/dist/public/{model-ranking-CK0iBo3Z.js → model-ranking-BgOSaNIy.js} +1 -1
- package/dist/public/{move-group-entry-CTxoq7lw.js → move-group-entry-QQ9Hkk54.js} +1 -1
- package/dist/public/{orchestrator-BrDjQbGf.js → orchestrator-C1kaTltu.js} +2 -2
- package/dist/public/orchestrator-Li1UAsv7.js +63 -0
- package/dist/public/{peerjs-CgF4Iz5W.js → peerjs-DbBryE-9.js} +1 -1
- package/dist/public/{process-peer-query-param-BL2k0Hu-.js → process-peer-query-param-DQIgr3KL.js} +1 -1
- package/dist/public/{process-pending-shared-payloads-C1AgGvn8.js → process-pending-shared-payloads-Ctb-TFqB.js} +1 -1
- package/dist/public/{process-room-query-param-DM0QCq3_.js → process-room-query-param-F-XnIVoZ.js} +1 -1
- package/dist/public/provider-YPZmsuHR.js +1 -0
- package/dist/public/{push-client-DJEOz7bi.js → push-client-DRx9Eggz.js} +1 -1
- package/dist/public/{rooms-C6LXIJl4.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-Bg9AQ5x_.js +1176 -0
- package/dist/public/{shadow-claw-accounts--4hd_oCz.js → shadow-claw-accounts-B3mjYI0M.js} +1 -1
- package/dist/public/{shadow-claw-card-IbNlZAdK.js → shadow-claw-card-tcXRS1GF.js} +1 -1
- package/dist/public/{shadow-claw-channels-Vq_pPGa2.js → shadow-claw-channels-BiSfLvWv.js} +1 -1
- package/dist/public/{shadow-claw-chat-D7_GS25e.js → shadow-claw-chat-N5jMsXZZ.js} +3 -3
- package/dist/public/{shadow-claw-control-plane-WTMEV8_p.js → shadow-claw-control-plane-DFVe_Xdq.js} +2 -2
- package/dist/public/{shadow-claw-conversations-CLQgU1IT.js → shadow-claw-conversations-wAR06_ya.js} +1 -1
- package/dist/public/{shadow-claw-empty-state-D4CrFGsN.js → shadow-claw-empty-state-CnPm3NVM.js} +1 -1
- package/dist/public/{shadow-claw-file-viewer-BhqiqLWQ.js → shadow-claw-file-viewer-sZN_FCDW.js} +4 -4
- package/dist/public/{shadow-claw-files-senDiG9l.js → shadow-claw-files-CnvkCbd4.js} +2 -2
- package/dist/public/{shadow-claw-git-DOOCqY23.js → shadow-claw-git-BBHfClGk.js} +2 -2
- package/dist/public/{shadow-claw-integrations-Bsvc3Agq.js → shadow-claw-integrations-DvdBqzRJ.js} +1 -1
- package/dist/public/{shadow-claw-llm-actYICAk.js → shadow-claw-llm-YfohG519.js} +2 -2
- package/dist/public/{shadow-claw-mcp-remote-BYUgrK3v.js → shadow-claw-mcp-remote-BAVbf5pi.js} +1 -1
- package/dist/public/{shadow-claw-networking-Dk3p5Ny_.js → shadow-claw-networking-CZ4LWPW7.js} +1 -1
- package/dist/public/{shadow-claw-notifications-CzPAlay8.js → shadow-claw-notifications-BHwyREkG.js} +1 -1
- package/dist/public/{shadow-claw-page-header-CjJpVkyL.js → shadow-claw-page-header-De6Qf6eY.js} +1 -1
- package/dist/public/{shadow-claw-page-header-action-button-2DH5O1TD.js → shadow-claw-page-header-action-button-FSOhTc9z.js} +1 -1
- package/dist/public/{shadow-claw-pages-3r5I-wI8.js → shadow-claw-pages-D_oPyDca.js} +6 -6
- package/dist/public/{shadow-claw-pdf-viewer-BiCEwsoY.js → shadow-claw-pdf-viewer-CrU4wqRq.js} +1 -1
- package/dist/public/{shadow-claw-settings-DgB9RSZN.js → shadow-claw-settings-DkUhvxVr.js} +2 -2
- package/dist/public/{shadow-claw-storage-JB_43nd8.js → shadow-claw-storage-D0o56Tjw.js} +1 -1
- package/dist/public/{shadow-claw-task-server-oi5UIxdA.js → shadow-claw-task-server-4rkroO9K.js} +1 -1
- package/dist/public/{shadow-claw-tasks-CnyiOt81.js → shadow-claw-tasks-BdP7lmvu.js} +3 -3
- package/dist/public/{shadow-claw-terminal-BC3RynHt.js → shadow-claw-terminal-DVHX7Fsu.js} +1 -1
- package/dist/public/{shadow-claw-toast-YjG--2Za.js → shadow-claw-toast-B9Y9tSkW.js} +1 -1
- package/dist/public/{shadow-claw-tools-Bbwk4vlT.js → shadow-claw-tools-BwwY53Lr.js} +1 -1
- package/dist/public/{shadow-claw-webvm-HZqzl2H5.js → shadow-claw-webvm-CXGdkCNM.js} +1 -1
- package/dist/public/{sync-web-mcp-registration-BaH2nAP0.js → sync-web-mcp-registration-DVK_IhXZ.js} +1 -1
- package/dist/public/{system-prompt-Dck3N8T0.js → system-prompt-BmswoQwF.js} +2 -2
- package/dist/public/{tools-DHA1dK2I.js → tools-D-52Zmfc.js} +1 -1
- package/dist/public/{transformers-C-DuTM2K.js → transformers-CQ9ss9rD.js} +1 -1
- package/dist/public/{upload-group-file-Cejr3zo1.js → upload-group-file-A8kB7lvO.js} +1 -1
- package/dist/public/{webmcp-CMRtu57-.js → webmcp-DIUZjVF5.js} +1 -1
- package/dist/public/{workbox-92eae37e.js → workbox-e4022e15.js} +1 -1
- package/dist/public/{write-group-file-CmJuVQNO.js → write-group-file-R67DjJ-q.js} +1 -1
- package/dist/public/{write-group-file-bytes-Cejr3zo1.js → write-group-file-bytes-A8kB7lvO.js} +1 -1
- package/dist/public/{zip-reader-CuQ13eLe.js → zip-reader-JHoTbATw.js} +1 -1
- package/dist/server.js +6 -6
- package/package.json +1 -1
- package/dist/cli/chunk-2gZFafgY.js +0 -1
- package/dist/cli/chunk-BFziiMKt.js +0 -7
- package/dist/cli/chunk-BM3llsxb.js +0 -1
- package/dist/cli/chunk-BUNoeMKY.js +0 -36
- package/dist/cli/chunk-Bj5qFsDi.js +0 -7
- package/dist/cli/chunk-Bj95zm-y.js +0 -1
- package/dist/cli/chunk-BpyP-esT.js +0 -1
- package/dist/cli/chunk-CX696s3_.js +0 -1
- package/dist/cli/chunk-DRxCrCAA.js +0 -139
- package/dist/cli/chunk-DjbCHa0h.js +0 -1
- package/dist/cli/chunk-Ds5-K-9o.js +0 -1
- package/dist/cli/chunk-DsQhAF31.js +0 -1
- package/dist/cli/chunk-VM-dECyG.js +0 -1
- package/dist/cli/chunk-gvNsvav0.js +0 -225
- package/dist/cli/chunk-heu2xRw1.js +0 -1
- package/dist/lib/orchestrator-i_QJ-o22.js.map +0 -1
- package/dist/lib/shadow-claw-DoQ7fgl5.js.map +0 -1
- package/dist/lib/system-prompt-DT_KeYaL.js.map +0 -1
- package/dist/public/app-routes-V_-URXc5.js +0 -1
- package/dist/public/attachment-capabilities-B6ibLwQB.js +0 -1
- package/dist/public/compact-context-CX4H8V57.js +0 -5
- package/dist/public/config-C-YdSFZB.js +0 -1
- package/dist/public/get-group-dir-DL44kvqW.js +0 -1
- package/dist/public/init-control-plane-BoJijVtf.js +0 -1
- package/dist/public/orchestrator-CaUpEVkQ.js +0 -63
- package/dist/public/provider-DNIL4-Hw.js +0 -1
- package/dist/public/shadow-claw-DdgeYPg5.js +0 -1176
|
@@ -1,1176 +0,0 @@
|
|
|
1
|
-
import{o as e,r as t}from"./config-C-YdSFZB.js";import{a as n,f as r,g as i,h as a,l as o,n as s,r as c,u as l}from"./app-routes-V_-URXc5.js";import{r as u}from"./db-BUuJo1Gf.js";import{t as d}from"./get-config-Bkvl__ZS.js";import{t as f}from"./dist-CeFyqf9k.js";import{Q as p,U as m,a as h,f as g,h as _,p as v,t as y}from"./orchestrator-CaUpEVkQ.js";import{t as b}from"./set-config-DSiuMe0k.js";import{s as ee}from"./tools-DHA1dK2I.js";import{t as te}from"./get-group-dir-DL44kvqW.js";import{n as ne}from"./write-group-file-CmJuVQNO.js";import{a as re,r as ie}from"./toast-CtIuHprH.js";import{t as ae}from"./parse-boolean-config-BigJ9U46.js";import{n as oe,r as se,t as ce}from"./constants-DiETpg52.js";import{a as le,l as ue,p as de,r as fe,t as pe}from"./transformers-C-DuTM2K.js";var x=class extends HTMLElement{static component;static styles;static template;_cleanups=[];constructor(){super();let{template:e,styles:t}=this.constructor;if(!this.shadowRoot){let t=this.attachShadow({mode:`open`});if(e&&Array.isArray(e)){let n=e.map(e=>e.cloneNode(!0));t.append(...n)}}this.shadowRoot&&t instanceof CSSStyleSheet&&(this.shadowRoot.adoptedStyleSheets=[t],this.shadowRoot.querySelectorAll(`style[data-dsd-style], link[rel="stylesheet"]:not([data-theme-stylesheet])`).forEach(e=>e.remove())),this.ensureShadowDialogs()}connectedCallback(){this.ensureShadowDialogs(),this.render()}disconnectedCallback(){this.disposeCleanups()}addCleanup(e){this._cleanups.push(e)}disposeCleanups(){this._cleanups.forEach(e=>e()),this._cleanups=[]}ensureShadowDialogs(){if(!this.shadowRoot)return;let e=this.shadowRoot.querySelectorAll(`shadow-claw-dialog`);for(let t of e)t instanceof HTMLElement&&customElements.upgrade(t),typeof t.ensureDialog==`function`&&t.ensureDialog()}render(){}};let S=!0;const C=new f.subtle.Watcher(()=>{S&&(S=!1,globalThis.queueMicrotask(me))});function me(){S=!0;for(let e of C.getPending())e.get();C.watch()}function w(e){let t,n=new f.Computed(()=>{typeof t==`function`&&t(),t=e()});return C.watch(n),n.get(),()=>{C.unwatch(n),typeof t==`function`&&t(),t=void 0}}function T(){if(typeof window>`u`&&typeof globalThis>`u`)return!1;let e=typeof window<`u`?window:globalThis;return!e.TRANSFORMERS_CONFIG&&!!(e.LanguageModel&&typeof e.LanguageModel.create==`function`||e.ai?.languageModel&&typeof e.ai.languageModel.create==`function`)}async function he(){if(!T())return!1;let e=typeof window<`u`?window:globalThis,t=e.LanguageModel||e.ai?.languageModel;if(typeof t?.availability==`function`)try{let e=await t.availability();return e!==`unavailable`&&e!==`no`}catch{return!1}return!0}function ge(e){let t=[`ShadowClaw uses the browser-native Prompt API for local, private AI inference.`,`If native browser Prompt API is unavailable, ShadowClaw falls back to running a local ONNX model in your browser (defaulting to Qwen 0.6B).`,`To enable native Prompt API: enable the Prompt API flags and optimization guide under your browser's experimental flags (chrome://flags or edge://flags).`];return e&&e.trim()&&t.push(`Details: ${e.trim()}`),{mode:`info`,title:`Prompt API Setup & Info`,message:`ShadowClaw is configured to use the browser-native Prompt API.`,details:t,confirmLabel:`OK`,autoCloseSeconds:30,links:[{label:`Prompt API Documentation`,href:`https://developer.chrome.com/docs/ai/built-in`}]}}async function _e(e,t,n){let r=await te(e,t),{dirs:i,filename:a}=ne(n),o=r;for(let e of i)o=await o.getDirectoryHandle(e);return await(await o.getFileHandle(a)).getFile()}const E=new class{_file;constructor(){this._file=new f.State(null)}closeFile(){this._file.set(null)}get file(){return this._file.get()}getFile(){return this.file}getPreviewBinaryMimeType(e){return{"3gp":`video/3gpp`,"7z":`application/x-7z-compressed`,aac:`audio/aac`,apng:`image/apng`,avi:`video/x-msvideo`,avif:`image/avif`,bin:`application/octet-stream`,bmp:`image/bmp`,db:`application/vnd.sqlite3`,dll:`application/octet-stream`,dmg:`application/octet-stream`,dylib:`application/octet-stream`,exe:`application/vnd.microsoft.portable-executable`,flac:`audio/flac`,flv:`video/x-flv`,gif:`image/gif`,gz:`application/gzip`,heic:`image/heic`,heif:`image/heif`,ico:`image/x-icon`,iso:`application/octet-stream`,jpeg:`image/jpeg`,jpg:`image/jpeg`,m4a:`audio/mp4`,m4v:`video/mp4`,mkv:`video/x-matroska`,mov:`video/mp4`,mp3:`audio/mpeg`,mp4:`video/mp4`,oga:`audio/ogg`,ogg:`audio/ogg`,ogv:`video/ogg`,png:`image/png`,rar:`application/vnd.rar`,so:`application/octet-stream`,sqlite:`application/vnd.sqlite3`,sqlite3:`application/vnd.sqlite3`,tar:`application/x-tar`,tif:`image/tiff`,tiff:`image/tiff`,wasm:`application/wasm`,wav:`audio/wav`,weba:`audio/webm`,webm:`video/webm`,webp:`image/webp`,wmv:`video/x-ms-wmv`,zip:`application/zip`}[e.toLowerCase().split(`.`).pop()||``]||``}async openFile(t,n,r=e){try{let e=n.split(`/`).pop()||n,i=/\.pdf$/i.test(e),a=this.getPreviewBinaryMimeType(e);if(i){let i=await le(t,r,n);this._file.set({name:e,path:n,groupId:r,content:``,kind:`pdf`,binaryContent:i,mimeType:`application/pdf`});return}if(a){let i=await _e(t,r,n);this._file.set({name:e,path:n,groupId:r,content:``,kind:`binary`,binaryContent:null,nativeFile:i,mimeType:a});return}let o=await ee(t,r,n);this._file.set({name:e,path:n,groupId:r,content:o,kind:`text`,binaryContent:null,mimeType:`text/plain`})}catch(e){throw console.error(`Failed to open file:`,n,e),e}}},D={Light:`light`,Dark:`dark`,System:`system`},O=`shadow-claw-theme`;function ve(){return typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}function k(e){return e===`system`?ve():e}function A(e){let t=document.documentElement;e===`dark`?(t.classList.add(`dark-mode`),t.classList.remove(`light-mode`)):(t.classList.add(`light-mode`),t.classList.remove(`dark-mode`));let n=document.querySelector(`shadow-claw`);n&&(e===`dark`?(n.classList.add(`dark-mode`),n.classList.remove(`light-mode`)):(n.classList.add(`light-mode`),n.classList.remove(`dark-mode`))),typeof document<`u`&&document.body&&(e===`dark`?(document.body.classList.add(`dark-mode`),document.body.classList.remove(`light-mode`)):(document.body.classList.add(`light-mode`),document.body.classList.remove(`dark-mode`))),window.dispatchEvent(new CustomEvent(`shadow-claw-theme-change`,{detail:{theme:e}}))}const j=g(O)||`system`,ye=k(j);A(ye);const M=new class{_resolved;_theme;constructor(){this._theme=new f.State(j),this._resolved=new f.State(ye)}getTheme(){return{theme:this.theme,resolved:this.resolved}}init(){typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-color-scheme: dark)`).addEventListener(`change`,()=>{let e=ve();_(O,`system`),A(e),this._theme.set(`system`),this._resolved.set(e)}),window.addEventListener(`storage`,e=>{let t=v(O);e.key===t&&e.newValue&&this.setTheme(e.newValue)})}get resolved(){return this._resolved.get()}setTheme(e){let t=k(e);_(O,e),A(t),this._theme.set(e),this._resolved.set(t)}get theme(){return this._theme.get()}};M.init();async function N(e,t=3){for(let n=0;n<t;n++){if(e())return;await new Promise(e=>{requestAnimationFrame(()=>e())})}}function P(e,t){let n=e.sidebarDefaultPage,r=[n,`pages`,`chat`,`tasks`,`files`];if(!t)return n===`pages`||n===`chat`||n===`tasks`||n===`files`?n:`chat`;for(let e of r){if(e===`pages`&&!t.pagesSidebarHidden)return`pages`;if(e===`chat`&&!t.chatSidebarHidden)return`chat`;if(e===`tasks`&&!t.tasksSidebarHidden)return`tasks`;if(e===`files`&&!t.filesSidebarHidden)return`files`}return`pages`}function be(e,t,n,r){return n&&t===`pages`?e.sidebarDefaultPage===`pages`?`pages`:P(e,r):t}function xe(e,t){if(!e||![`chat`,`tasks`,`files`].includes(t))return null;let n=e.querySelector(`[data-page-id="${t}"]`);if(!(n instanceof HTMLElement))return null;let r=n.querySelector(`shadow-claw-chat, shadow-claw-tasks, shadow-claw-files`),i=r instanceof HTMLElement?r.shadowRoot?.querySelector(`[data-terminal-slot]`):null;return i instanceof HTMLElement?i:null}function Se(e,t,n,r){let i=n;if(!i)return;let a=xe(e,t);if(!a)return;i.parentElement!==a&&a.appendChild(i);let o=!r;i.hidden=o,o?(a.setAttribute(`hidden`,`hidden`),e?.querySelector(`shadow-claw-terminal`)?.setAttribute(`hidden`,`hidden`)):(a.removeAttribute(`hidden`),e?.querySelector(`shadow-claw-terminal`)?.removeAttribute(`hidden`))}const Ce={pages:()=>import(`./shadow-claw-pages-3r5I-wI8.js`),chat:()=>import(`./shadow-claw-chat-D7_GS25e.js`),conversations:()=>import(`./shadow-claw-conversations-CLQgU1IT.js`),tasks:()=>import(`./shadow-claw-tasks-CnyiOt81.js`),files:()=>import(`./shadow-claw-files-senDiG9l.js`),settings:()=>import(`./shadow-claw-settings-DgB9RSZN.js`),tools:()=>import(`./shadow-claw-tools-Bbwk4vlT.js`),channels:()=>import(`./shadow-claw-channels-Vq_pPGa2.js`),terminal:()=>import(`./shadow-claw-terminal-BC3RynHt.js`),"file-viewer":()=>import(`./shadow-claw-file-viewer-BhqiqLWQ.js`),"pdf-viewer":()=>import(`./shadow-claw-pdf-viewer-BiCEwsoY.js`)},F=/* @__PURE__ */ new Map;async function I(e){let t=F.get(e);if(!t){let n=Ce[e];n?(t=n().then(()=>void 0),F.set(e,t)):t=Promise.resolve()}await t}function L(e,t,n,r,i){r&&I(`terminal`).catch(console.error),i!==null&&cancelAnimationFrame(i),i=requestAnimationFrame(()=>{i=null,Se(e,t,n,r)})}function we(e){if(!e)return[];let t=[`shadow-claw-chat`,`shadow-claw-tasks`,`shadow-claw-files`,`shadow-claw-pages`,`shadow-claw-settings`,`shadow-claw-tools`,`shadow-claw-channels`],n=[];for(let r of t){let t=e.querySelector(r);if(!(t instanceof HTMLElement))continue;let i=t.shadowRoot?.querySelector(`shadow-claw-page-header`);i instanceof HTMLElement&&n.push(i)}return n}function R(e,t){if(e)for(let n of we(e))n.setMainCollapsedOverride?.(t)}function z(e,t,n){if(!e)return;let r=e.querySelector(`.activity-log-toggle`);r instanceof HTMLButtonElement&&(r.hidden=t!==`chat`||n===0)}function Te(e){if(!e)return null;let t=e.querySelector(`.page.active`);if(!(t instanceof HTMLElement))return null;let n=t.querySelector(`shadow-claw-chat, shadow-claw-tasks, shadow-claw-files, shadow-claw-pages, shadow-claw-settings, shadow-claw-tools, shadow-claw-channels`);if(!(n instanceof HTMLElement))return null;let r=n.shadowRoot?.querySelector(`shadow-claw-page-header`);return r instanceof HTMLElement?r:null}function B(e,t){if(!e)return;let n=e.querySelector(`.header-main-toggle`);if(!(n instanceof HTMLButtonElement))return;let r=typeof t==`boolean`?t:Te(e)?.isMainCollapsed?.()??!1;n.setAttribute(`aria-label`,r?`Show action header`:`Hide action header`),n.setAttribute(`title`,r?`Show action header`:`Hide action header`),n.setAttribute(`aria-pressed`,String(r))}function V(e,t,n,r){if(!e)return;let i=e.querySelector(`.webvm-toggle`);if(!(i instanceof HTMLButtonElement))return;let a=t===`chat`||t===`files`;i.hidden=!a,i.classList.toggle(`hidden`,!a),i.classList.remove(`webvm-toggle--hidden`,`webvm-toggle--visible`,`webvm-toggle--booting`,`webvm-toggle--ready`,`webvm-toggle--error`),a?(i.classList.add(n?`webvm-toggle--visible`:`webvm-toggle--hidden`),r.ready?i.classList.add(`webvm-toggle--ready`):(r.booting||r.bootAttempted)&&i.classList.add(`webvm-toggle--booting`),i.setAttribute(`aria-label`,n?`Hide WebVM terminal`:`Show WebVM terminal`),i.setAttribute(`title`,n?`Hide WebVM terminal`:`Show WebVM terminal`),i.setAttribute(`aria-pressed`,String(n))):i.classList.add(`webvm-toggle--error`)}const H={pages:`shadow-claw-pages`,chat:`shadow-claw-chat`,tasks:`shadow-claw-tasks`,files:`shadow-claw-files`,settings:`shadow-claw-settings`,tools:`shadow-claw-tools`,channels:`shadow-claw-channels`};function U(e,t){let n=H[t];if(!n)return;let r=e.querySelector(`[data-page-id="${t}"]`);!r||r.children.length>0||r.appendChild(document.createElement(n))}function W(e,t,n,r,i,a=!0,o=!0){if(!e)return;let s=be(r,i,t.pagesSidebarHidden,t),c=!!t.chatSplitViewEnabled&&s!==`chat`,l=e.querySelector(`.main-content`),u=e.querySelector(`.chat-split-resize-handle`);if(c){I(`conversations`).catch(console.error),t.orchestrator?.ensureWorkerReady&&t.orchestrator.ensureWorkerReady(),typeof r?.loadHistory==`function`&&r.loadHistory().catch(console.error);let n=H.chat;n&&customElements.get(n)?U(e,`chat`):I(`chat`).then(()=>{e&&U(e,`chat`)}).catch(console.error),l&&l.classList.add(`split-chat-active`),u&&u.removeAttribute(`hidden`)}else l&&l.classList.remove(`split-chat-active`),u&&u.setAttribute(`hidden`,`hidden`);let d=H[s];d&&customElements.get(d)?(U(e,s),I(s).catch(console.error)):I(s).then(()=>{e&&U(e,s)}).catch(console.error),e.querySelectorAll(`.page`).forEach(e=>{e.classList.remove(`active`)}),e.querySelectorAll(`.nav-item`).forEach(e=>{e.classList.remove(`active`)});let f=e.querySelector(`[data-page-id="${s}"]`);f&&f.classList.add(`active`);let p=e.querySelector(`[data-page="${s}"]`);if(p&&p.classList.add(`active`),t.currentPage=s,a&&n&&r.setActivePage(n,s).catch(console.error),L(e,t.currentPage,t.terminalElement,t.terminalVisible,t.terminalPlacementFrame),R(e,t.headerMainCollapsedOverride),B(e,t.headerMainCollapsedOverride),z(e,t.currentPage,r.activityLog.length),V(e,t.currentPage,t.terminalVisible,t.vmStatus),o){let t=e.querySelector(`.page.active`);if(t){let e=t;typeof e.scrollTo==`function`&&e.scrollTo(0,0)}}if(s===`chat`){I(`conversations`).catch(console.error),t.orchestrator?.ensureWorkerReady&&t.orchestrator.ensureWorkerReady(),typeof r?.loadHistory==`function`&&r.loadHistory().catch(console.error);let n=e.querySelector(`shadow-claw-chat`);n&&typeof n.checkPromptApiOnboarding==`function`&&n.checkPromptApiOnboarding()}if(s===`tasks`&&(t.orchestrator?.ensureWorkerReady&&t.orchestrator.ensureWorkerReady(),n&&typeof r?.loadTasks==`function`&&r.loadTasks(n).catch(console.error)),s===`files`&&n&&r.loadFiles(n).catch(console.error),s===`pages`){let t=e.querySelector(`shadow-claw-pages`);t&&typeof t.renderSelectedPage==`function`&&(t.renderSelectedPage(),typeof t.setupAutoRefreshTimer==`function`&&t.setupAutoRefreshTimer())}}function Ee(e,t){if(!e||typeof e.querySelectorAll!=`function`)return;let n=t||(typeof window<`u`&&window.location?.href?new URL(window.location.href):null);if(!n)return;let r=n.pathname.replace(/\/+$/,``)||`/`;e.querySelectorAll(`[slot="sidebar"] a[href], [slot="sidebar-nav"] a[href], [slot="sidebar-content"] a[href], [slot="sidebar-footer"] a[href], .sidebar-custom-sections a[href]`).forEach(e=>{try{let t=e.getAttribute(`href`)||``;if(!t||t.startsWith(`#`)||t.startsWith(`javascript:`)||t.startsWith(`mailto:`)||t.startsWith(`tel:`))return;let i=new URL(t,n.origin);if(i.origin!==n.origin){e.classList.remove(`active`),e.removeAttribute(`aria-current`);return}(i.pathname.replace(/\/+$/,``)||`/`)===r&&(i.hash?i.hash===n.hash:!n.hash)?(e.classList.add(`active`),e.setAttribute(`aria-current`,`page`)):(e.classList.remove(`active`),e.removeAttribute(`aria-current`))}catch{}})}function De(e){if(!e||typeof window>`u`)return()=>{};let t=t=>Ee(e,t);t();let n=()=>t();window.addEventListener(`popstate`,n,{passive:!0});let r=e=>{let n=e?.detail?.url;if(n)try{t(new URL(n,window.location.href));return}catch{}t()};window.addEventListener(`shadow-claw-feed-scroll`,r),window.addEventListener(`shadow-claw-url-change`,r);let i=window.navigation,a=null,o=null,s=null;i&&typeof i.addEventListener==`function`&&(a=e=>{let n=e?.destination?.url;if(n)try{t(new URL(n));return}catch{}t()},o=()=>{t()},s=()=>{t()},i.addEventListener(`navigate`,a,{passive:!0}),i.addEventListener(`currententrychange`,o,{passive:!0}),i.addEventListener(`navigatesuccess`,s,{passive:!0}));let c=null,l=null,u=typeof window<`u`?window.history:null,d=null;if(u){c=u.replaceState,l=u.pushState;let e=function(e,n,r){let i=c?.apply(this,arguments);try{r?t(new URL(r.toString(),window.location.href)):t()}catch{t()}return i},n=function(e,n,r){let i=l?.apply(this,arguments);try{r?t(new URL(r.toString(),window.location.href)):t()}catch{t()}return i};u.replaceState=e,u.pushState=n,d=()=>{u.replaceState===e&&c&&(u.replaceState=c),u.pushState===n&&l&&(u.pushState=l)}}return()=>{window.removeEventListener(`popstate`,n),window.removeEventListener(`shadow-claw-feed-scroll`,r),window.removeEventListener(`shadow-claw-url-change`,r),i&&typeof i.removeEventListener==`function`&&(a&&i.removeEventListener(`navigate`,a),o&&i.removeEventListener(`currententrychange`,o),s&&i.removeEventListener(`navigatesuccess`,s)),d&&d()}}async function G(e,t,n,r,i,a){let{page:o,groupId:s,path:c,anchor:l}=a;if(!n)return;let u=o?String(o).toLowerCase():``;if(u&&r.file&&(u!==`files`||!c||c!==r.file.path||s&&s!==i.activeGroupId)){let t=e?.querySelector(`shadow-claw-file-viewer`);if(t&&typeof t.requestCloseViewer==`function`){if(!await t.requestCloseViewer())return}else r.closeFile()}if(s&&s!==i.activeGroupId?await i.switchConversation(n,s,u===`chat`):s&&(i.loadHistory(),(u===`tasks`||u===`files`)&&n&&i.loadFiles(n)),u&&(l?W(e,t,n,i,u,!0,!1):W(e,t,n,i,u)),u===`files`&&c){if(/\.[^./]+$/u.test(c))try{await r.openFile(n,c,s||i.activeGroupId),l&&await N(()=>{let t=e?.querySelector(`shadow-claw-file-viewer`);return t&&typeof t.handleAnchorNavigation==`function`?!!t.handleAnchorNavigation(l):!1})}catch(e){console.error(`Failed to open file via route navigation:`,c,e)}else try{await i.setCurrentPath(n,c),r.closeFile()}catch(e){console.error(`Failed to open folder via route navigation:`,c,e)}}if(u===`pages`){if(typeof customElements<`u`&&await customElements.whenDefined(`shadow-claw-pages`),c){let e=s||i.activeGroupId||`br:main`;if(typeof i.isPageAllowed!=`function`||i.isPageAllowed(c,e))await i.setActivePinnedPage(n,{groupId:e,path:c});else{let e=i.effectiveDefaultPage||i.pages&&i.pages[0]||null;await i.setActivePinnedPage(n,e)}}else{let e=i.effectiveDefaultPage||i.pages&&i.pages[0]||null;e&&await i.setActivePinnedPage(n,e)}let t=e?.querySelector(`shadow-claw-pages`);t&&typeof t.renderSelectedPage==`function`&&(await t.renderSelectedPage(),typeof t.setupAutoRefreshTimer==`function`&&t.setupAutoRefreshTimer(),l&&await N(()=>typeof t.handleAnchorNavigation==`function`&&!!t.handleAnchorNavigation(l),10))}Ee(t)}async function K(e,t,o,c,l,u){let d=typeof history<`u`?history.state:null,f=typeof document<`u`&&(!!document.getElementById(`postsFeed`)||!!e?.querySelector(`#postsFeed`)||!!(e?.querySelector(`shadow-claw-pages`))?.shadowRoot?.querySelector(`#postsFeed`)||!!document.querySelector(`shadow-claw`)?.shadowRoot?.querySelector(`#postsFeed`)||!!(document.querySelector(`shadow-claw`)?.shadowRoot?.querySelector(`shadow-claw-pages`))?.shadowRoot?.querySelector(`#postsFeed`)||!!document.querySelector(`shadow-claw-pages`)?.shadowRoot?.querySelector(`#postsFeed`));if((d?.inFeedScroll||d?.scrollSpy||d?.suppressRouter)&&f)return;let p=u.pathname,m=n();m!==`/`&&p.startsWith(m)&&(p=`/`+p.slice(m.length));let g=p.split(`/`).filter(Boolean),_=g.length===0||g.length===1&&g[0]===`index.html`,v=l.defaultPinnedPage||a(h()),y=v||l.effectiveDefaultPage;if(_&&y){let n={page:`pages`,groupId:y.groupId||l.activeGroupId||`br:main`,path:y.path};if(v){let e=await i(n);if(e&&e!==`/`&&typeof window<`u`&&window.history){let t=s(e);window.history.replaceState(null,``,t)}}await G(e,t,o,c,l,n);return}let b=await r(u,l.activeGroupId);b&&await G(e,t,o,c,l,b)}let q=null;function Oe(e){q=e}function ke(e,t){if(!e)return;let n=t;if(n.navigationType===`reload`)return;let r=typeof n?.destination?.getState==`function`?n.destination.getState():null,i=n.navigationType===`replace`?q:null,a=r||n?.info||i||(n.navigationType===`replace`&&typeof history<`u`?history.state:null);if(a?.inFeedScroll||a?.scrollSpy||a?.suppressRouter)return;let s=n?.destination?.url;if(typeof s!=`string`)return;let c=new URL(s);if(c.origin===window.location.origin&&!o(c.pathname)&&l(c.pathname))return{parsedUrl:c,navigateEvent:n}}function J(e,t){let n=e?.querySelector(`.app-body`);if(!(n instanceof HTMLElement))return Math.max(200,Math.min(560,t));let r=Math.max(200,n.getBoundingClientRect().width-260);return Math.max(200,Math.min(Math.min(560,r),t))}async function Y(e,n){if(e)try{await b(e,t.SIDEBAR_WIDTH,n)}catch{}}function X(e,t){let n=e?.querySelector(`.app-body`);if(!(n instanceof HTMLElement))return;let r=J(e,t);n.style.setProperty(`--sidebar-width`,`${r}px`)}async function Ae(e,n,r,i){if(!e)return;let a=e.querySelector(`.sidebar-resize-handle`);if(!(a instanceof HTMLElement))return;a.setAttribute(`tabindex`,`0`),a.setAttribute(`role`,`separator`),a.setAttribute(`aria-orientation`,`vertical`),a.setAttribute(`aria-label`,`Resize sidebar width`);let o=()=>{let t=e.querySelector(`.app-body`);if(!(t instanceof HTMLElement))return 250;let n=parseFloat(t.style.getPropertyValue(`--sidebar-width`));return Number.isFinite(n)&&n>0?n:r.getBoundingClientRect().width||250},s=()=>{let t=Math.round(J(e,o())),n=Math.round(J(e,2**53-1));a.setAttribute(`aria-valuemin`,`200`),a.setAttribute(`aria-valuemax`,String(n)),a.setAttribute(`aria-valuenow`,String(t))};try{let n=i?await d(i,t.SIDEBAR_WIDTH):void 0;typeof n==`number`&&Number.isFinite(n)&&n>0?X(e,n):X(e,250)}catch{X(e,250)}let c=null,l=0,u=0,f=t=>{if(t.pointerId!==c)return;let n=t.clientX-l;X(e,u+n),s()},p=()=>{if(c===null)return;c=null,a.classList.remove(`active`),document.removeEventListener(`pointermove`,f);let t=e.querySelector(`.app-body`);if(t instanceof HTMLElement){let e=parseFloat(t.style.getPropertyValue(`--sidebar-width`));Number.isFinite(e)&&e>0&&i&&Y(i,e)}},m=e=>{e.pointerId===c&&p()};a.addEventListener(`pointerdown`,e=>{(e.pointerType!==`mouse`||e.button===0||e.button===-1)&&(window.innerWidth<896||(e.preventDefault(),c=e.pointerId,l=e.clientX,u=r.getBoundingClientRect().width,a.classList.add(`active`),a.setPointerCapture(e.pointerId),document.addEventListener(`pointermove`,f)))}),a.addEventListener(`pointerup`,m),a.addEventListener(`pointercancel`,p),a.addEventListener(`dblclick`,()=>{X(e,250),i&&Y(i,250),s()}),a.addEventListener(`keydown`,t=>{if(window.innerWidth<896)return;let n=t.shiftKey?32:12,r=o(),a=null;t.key===`ArrowRight`?a=r+n:t.key===`ArrowLeft`?a=r-n:t.key===`Home`?a=200:t.key===`End`&&(a=J(e,2**53-1)),a!==null&&(t.preventDefault(),X(e,a),s(),i&&Y(i,J(e,o())))}),s(),n.addCleanup(()=>{p(),a.removeEventListener(`pointerup`,m),a.removeEventListener(`pointercancel`,p)})}async function Z(e,t,n){if(!t)return!1;let r=t.querySelector(`.app-dialog`),i=t.querySelector(`.app-dialog__title`),a=t.querySelector(`.app-dialog__message`),o=t.querySelector(`.app-dialog__details`),s=t.querySelector(`.app-dialog__links`),c=t.querySelector(`.app-dialog__btn--confirm`),l=t.querySelector(`.app-dialog__btn--cancel`),u=t.querySelector(`.app-dialog__countdown`);if(!r||!i||!a||!o||!s||!c||!l)return!1;r._autoCloseTimer&&=(clearInterval(r._autoCloseTimer),null),r.open&&r.close(),i.textContent=n.title,a.textContent=n.message,o.replaceChildren(),s.replaceChildren();let d=Array.isArray(n.details)?n.details:[];o.hidden=d.length===0;for(let t of d){let n=e.createElement(`li`);n.textContent=t,o.appendChild(n)}let f=Array.isArray(n.links)?n.links:[];s.hidden=f.length===0;for(let t of f){let n=e.createElement(`a`);n.className=`app-dialog__link`,n.href=t.href,n.rel=`noreferrer`,n.target=`_blank`,n.textContent=t.label,s.appendChild(n)}let p=n.mode||`confirm`,m=n.confirmLabel||(p===`info`?`OK`:`Confirm`);l.textContent=n.cancelLabel||`Cancel`,l.hidden=p===`info`;let h=null,g=()=>{h&&=(clearInterval(h),null),r._autoCloseTimer&&=null};if(typeof n.autoCloseSeconds==`number`&&n.autoCloseSeconds>0){let e=Math.max(1,Math.round(n.autoCloseSeconds));c.textContent=`${m} (${e}s)`,u&&(u.hidden=!1,u.textContent=`Auto-closing in ${e}s...`,u.setAttribute(`role`,`status`),u.setAttribute(`aria-live`,`polite`),u.setAttribute(`aria-atomic`,`true`)),h=setInterval(()=>{e--,e>0?(c.textContent=`${m} (${e}s)`,u&&(u.textContent=`Auto-closing in ${e}s...`)):(g(),r.returnValue=p===`info`?`confirm`:`cancel`,r.close(r.returnValue))},1e3),r._autoCloseTimer=h}else c.textContent=m,u&&(u.hidden=!0,u.textContent=``);return r.returnValue=``,await new Promise(e=>{let t=()=>{g(),r.removeEventListener(`close`,t),e(r.returnValue===`confirm`)};r.addEventListener(`close`,t),r.showModal()})}const je={pages:t.SIDEBAR_PAGES_HIDDEN,chat:t.SIDEBAR_CHAT_HIDDEN,tasks:t.SIDEBAR_TASKS_HIDDEN,files:t.SIDEBAR_FILES_HIDDEN};function Me(e,t,n){if(!e)return;let r=e.querySelector(`.nav-item[data-page="${t}"]`);if(r&&(r.hidden=n,r.setAttribute(`aria-hidden`,String(n))),t===`chat`){let t=e.querySelector(`shadow-claw-conversations`);t&&(t.hidden=n,t.setAttribute(`aria-hidden`,String(n)))}}function Ne(e){switch(e){case`pages`:return`pagesSidebarHidden`;case`chat`:return`chatSidebarHidden`;case`tasks`:return`tasksSidebarHidden`;case`files`:return`filesSidebarHidden`}}async function Pe(e,t,n,r){for(let[n,i]of Object.entries(je)){let a=n,o=!1;if(r)try{let e=await d(r,i);o=ae(e)}catch{o=!1}let s=Ne(a);t[s]=o,Me(e,a,o),a===`chat`&&!o&&await I(`conversations`)}}function Q(e,t,n,r,i,a){switch(i){case`pages`:t.pagesSidebarHidden=a;break;case`chat`:t.chatSidebarHidden=a,a||I(`conversations`).catch(console.error);break;case`tasks`:t.tasksSidebarHidden=a;break;case`files`:t.filesSidebarHidden=a}Me(e,i,a),a&&t.currentPage===i&&W(e,t,r,n,P(n,t))}function Fe(e,t,n,r,i){Q(e,t,n,r,`pages`,i)}function Ie(){let e=window.navigation;return!!(e&&typeof e.addEventListener==`function`&&typeof e.navigate==`function`)}function Le(e,t,n,r={}){let i=r.debounceMs??250,a=r.minSleepDurationMs??1e3,o=0,s=null,c=!1,l=e=>{e&&(c=!0),s!==null&&clearTimeout(s),s=setTimeout(()=>{s=null;let e=c;c=!1,n.ensureAllConnections({force:e})},i)},u=()=>{s!==null&&(clearTimeout(s),s=null),c=!1},d=()=>{if(t.visibilityState===`hidden`)o=Date.now(),u();else if(t.visibilityState===`visible`){let e=o>0&&Date.now()-o>=a;l(e)}},f=e=>{let n=!!(e&&e.persisted);l(n||t.visibilityState===`visible`)},p=()=>{t.visibilityState===`visible`&&l(!1)},m=()=>{l(!0)};return t.addEventListener(`visibilitychange`,d),e.addEventListener(`pageshow`,f),e.addEventListener(`focus`,p),e.addEventListener(`online`,m),()=>{u(),t.removeEventListener(`visibilitychange`,d),e.removeEventListener(`pageshow`,f),e.removeEventListener(`focus`,p),e.removeEventListener(`online`,m)}}function Re(e,t){if(!e)return;let n=e.querySelector(`shadow-claw-chat`);n&&typeof n.setActivityLogCollapsedOverride==`function`&&n.setActivityLogCollapsedOverride(t)}function ze(e,t){if(!e)return;let n=e.querySelector(`.activity-log-toggle`);if(!(n instanceof HTMLButtonElement))return;let r=typeof globalThis.matchMedia==`function`&&!globalThis.matchMedia(`(min-width: 56rem) and (min-height: 401px)`).matches,i=typeof t==`boolean`?t:r;n.setAttribute(`aria-label`,i?`Show activity log`:`Hide activity log`),n.setAttribute(`title`,i?`Show activity log`:`Hide activity log`),n.setAttribute(`aria-pressed`,String(i))}function Be(e){let t=typeof globalThis.matchMedia==`function`&&!globalThis.matchMedia(`(min-width: 56rem) and (min-height: 401px)`).matches;e.activityLogCollapsedOverride=!(typeof e.activityLogCollapsedOverride==`boolean`?e.activityLogCollapsedOverride:t),Re(e.shadowRoot,e.activityLogCollapsedOverride),ze(e.shadowRoot,e.activityLogCollapsedOverride)}function Ve(e){e.headerMainCollapsedOverride=!(typeof e.headerMainCollapsedOverride==`boolean`?e.headerMainCollapsedOverride:Te(e.shadowRoot)?.isMainCollapsed?.()??!1),R(e.shadowRoot,e.headerMainCollapsedOverride),B(e.shadowRoot,e.headerMainCollapsedOverride)}function He(e,t){t.terminalVisible=!t.terminalVisible,V(e,t.currentPage,t.terminalVisible,t.vmStatus),L(e,t.currentPage,t.terminalElement,t.terminalVisible,t.terminalPlacementFrame)}function Ue(e,t){e===D.Dark?(t.add(`dark-mode`),t.remove(`light-mode`)):(t.add(`light-mode`),t.remove(`dark-mode`))}function We(e,t){if(!e)return;let n=e.querySelector(`.sun-icon`),r=e.querySelector(`.moon-icon`);n&&r&&(t===D.Dark?(n.style.display=`block`,n.removeAttribute(`hidden`),n.classList.remove(`hidden`),r.style.display=`none`,r.setAttribute(`hidden`,`hidden`),r.classList.add(`hidden`)):(n.style.display=`none`,n.setAttribute(`hidden`,`hidden`),n.classList.add(`hidden`),r.style.display=`block`,r.removeAttribute(`hidden`),r.classList.remove(`hidden`)))}function Ge(e,t,n,r,i,a,s,c,l){if(!n||!e||!t)return;n.querySelectorAll(`.nav-item[data-page]`).forEach(e=>{let r=e;r.addEventListener(`click`,()=>{let e=r.dataset.page||P(a);n.querySelectorAll(`.nav-item`).forEach(e=>e.classList.remove(`active`)),r.classList.add(`active`),setTimeout(()=>{t.dispatchEvent(new CustomEvent(`shadow-claw-navigate`,{detail:{page:e},bubbles:!0,composed:!0}))},0)})});let u=n.getElementById(`menu-button`),d=n.querySelector(`.sidebar`);if(u&&d){u.addEventListener(`click`,()=>{d.classList.toggle(`open`)}),n.querySelectorAll(`.nav-item, .settings-btn`).forEach(t=>{t.addEventListener(`click`,()=>{e.innerWidth<896&&d.classList.remove(`open`)})}),d.addEventListener(`click`,t=>{let n=t.target;e.innerWidth<896&&n?.closest(`a, button, .nav-item, .sidebar-link, .sidebar-item`)&&d.classList.remove(`open`)}),typeof r?.addEventListener==`function`&&r.addEventListener(`click`,t=>{let n=t.target;e.innerWidth<896&&n?.closest(`[slot^="sidebar"] a, .sidebar-custom-sections a`)&&d.classList.remove(`open`)}),t.addEventListener(`click`,t=>{let n=t.composedPath();e.innerWidth<896&&d.classList.contains(`open`)&&!n.includes(d)&&!n.includes(u)&&d.classList.remove(`open`)});let a=e.matchMedia?e.matchMedia(`(min-width: 56rem)`):{matches:!1,addEventListener:()=>{},removeEventListener:()=>{}},o=e=>{e.matches&&d.classList.remove(`open`)};o(a),a.addEventListener(`change`,o),Ae(n,r,d,i)}typeof r?.addEventListener==`function`&&r.addEventListener(`click`,t=>{let n=typeof t.composedPath==`function`?t.composedPath():[],r=null;for(let e of n)if(e instanceof HTMLAnchorElement||e&&e.tagName===`A`&&e.href){r=e;break}!r&&t.target?.closest&&(r=t.target.closest(`a[href]`));let i=e.location?.origin||window.location?.origin;if(r&&i){let n=null;try{let e=typeof r.getAttribute==`function`&&r.getAttribute(`href`)||r.href;n=new URL(e,i)}catch{}n&&n.origin===i&&o(n.pathname)&&(t.preventDefault(),typeof e.location?.assign==`function`?e.location.assign(n.href):typeof window.location?.assign==`function`&&window.location.assign(n.href))}});let f=n.querySelector(`[data-action="show-settings"]`);f&&f.addEventListener(`click`,()=>{t.dispatchEvent(new CustomEvent(`shadow-claw-navigate`,{detail:{page:`settings`},bubbles:!0,composed:!0}))}),n.querySelector(`.header-main-toggle`)?.addEventListener(`click`,()=>{Ve(r)}),n.querySelector(`.activity-log-toggle`)?.addEventListener(`click`,()=>{Be(r)}),n.addEventListener(`navigate`,e=>{let n=e.detail?.page;n&&t.dispatchEvent(new CustomEvent(`shadow-claw-navigate`,{detail:{page:n},bubbles:!0,composed:!0}))}),n.addEventListener(`sidebar-pages-visibility-change`,e=>{Fe(n,r,a,i,!!e.detail?.hidden)}),n.addEventListener(`sidebar-chat-visibility-change`,e=>{Q(n,r,a,i,`chat`,!!e.detail?.hidden)}),n.addEventListener(`sidebar-tasks-visibility-change`,e=>{Q(n,r,a,i,`tasks`,!!e.detail?.hidden)}),n.addEventListener(`sidebar-files-visibility-change`,e=>{Q(n,r,a,i,`files`,!!e.detail?.hidden)}),n.addEventListener(`chat-split-view-change`,e=>{r.chatSplitViewEnabled=!!e.detail?.enabled,W(n,r,i,a,r.currentPage,!1)}),n.addEventListener(`navigate-back`,()=>t.dispatchEvent(new CustomEvent(`shadow-claw-navigate`,{detail:{page:`settings`},bubbles:!0,composed:!0})));let p=n.querySelector(`.theme-mode-toggle`);if(p&&p.addEventListener(`click`,()=>{let{resolved:e}=c.getTheme(),t=e===D.Dark?D.Light:D.Dark;c.setTheme(t)}),n.querySelector(`.webvm-toggle`)?.addEventListener(`click`,()=>He(n,r)),n.addEventListener(`shadow-claw-terminal-slot-ready`,()=>{L(n,r.currentPage,r.terminalElement,r.terminalVisible,r.terminalPlacementFrame),R(n,r.headerMainCollapsedOverride),B(n,r.headerMainCollapsedOverride)}),e.addEventListener(`resize`,()=>{r.headerMainCollapsedOverride===null&&B(n,r.headerMainCollapsedOverride)}),t.addEventListener(`shadow-claw-navigate`,r.shadowClawNav),Ie()){if(e.history&&!e.history.__scReplaceStateTracked){let t=e.history.replaceState;e.history.replaceState=function(e,n,r){return Oe(e),t.call(this,e,n,r)},e.history.__scReplaceStateTracked=!0}e.navigation.addEventListener(`navigate`,r.handleNavigationApiNavigate),r.navigationListenerAttached=!0}else r.popstateListener=t=>{let o=t?.state||e.history?.state;o?.inFeedScroll||o?.scrollSpy||o?.suppressRouter||K(n,r,i,s,a,new URL(e.location.href))},e.addEventListener(`popstate`,r.popstateListener),e.addEventListener(`hashchange`,r.popstateListener),t.addEventListener(`click`,r.fallbackClickListener),r.fallbackClickListenerAttached=!0;e.addEventListener(`shadow-claw-theme-change`,e=>{let t=e.detail.theme;We(n,t),Ue(t,r.classList)}),e.addEventListener(`shadow-claw-peer-error`,e=>{let r=e.detail,i=r.remotePeerId,a=r.error;Z(t,n,{mode:`info`,title:`Peer Connection Error`,message:i?`Failed to communicate with peer ${i}: ${a}`:`PeerJS error: ${a}`,confirmLabel:`Dismiss`,autoCloseSeconds:30})});let m=c.resolved;We(n,m),Ue(m,r.classList),r.appLifecycleCleanup&&=(r.appLifecycleCleanup(),null),r.orchestrator&&(r.appLifecycleCleanup=Le(e,t,r.orchestrator)),De(r)}function Ke(e){if(e===void 0)return;e.documentElement.classList.remove(oe,`sc-prerender-override`);let t=e.querySelector(`shadow-claw`);t?.removeAttribute(ce),t?.removeAttribute(se)}function qe(e,t){if(t.defaultPrevented||t.button!==0||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)return null;let n=t.composedPath(),r=null;for(let e of n)if(e instanceof HTMLAnchorElement){r=e;break}if(!r)return null;let i=r.getAttribute(`href`)||``;return!i||i.startsWith(`javascript:`)||i.startsWith(`mailto:`)||i.startsWith(`tel:`)||r.target&&r.target!==`_self`||r.origin!==e.origin||!l(r.pathname)||r.pathname===e.pathname&&r.search===e.search&&r.hash!==e.hash?null:(t.preventDefault(),`${r.pathname}${r.search}${r.hash}`)}async function Je(e,t,n){if(!t)return null;let r=t.querySelector(`.app-prompt-dialog`),i=t.querySelector(`.app-prompt-dialog__message`),a=t.querySelector(`.app-prompt-dialog__input-area`);if(!r||!i||!a)return null;if(r.open&&r.close(),i.textContent=n.question,a.replaceChildren(),Array.isArray(n.options)&&n.options.length>0){let t=e.createElement(`select`);t.className=`app-prompt-dialog__input`,t.name=`prompt-response`;for(let r of n.options){let n=e.createElement(`option`);n.value=r,n.textContent=r,t.appendChild(n)}a.appendChild(t)}else{let t=e.createElement(`input`);t.type=`text`,t.className=`app-prompt-dialog__input`,t.name=`prompt-response`,t.placeholder=`Enter your response...`,t.autocomplete=`off`,a.appendChild(t),setTimeout(()=>t.focus(),50)}return r.returnValue=``,await new Promise(e=>{let t=()=>{if(r.removeEventListener(`close`,t),r.returnValue===`submit`){let t=a.querySelector(`[name='prompt-response']`);e(t?t.value:null)}else e(null)};r.addEventListener(`close`,t),r.showModal()})}async function Ye(e,t,n,r){let i=await Je(e,t,r);m(n.orchestrator,r.id,i)}async function Xe(e,t,n,r){let i=r.path,a=r.groupId||t.activeGroupId;if(i&&e)for(let t=0;t<=3;t++)try{await n.openFile(e,i,a);return}catch(e){let n=e instanceof DOMException&&e.name===`NotFoundError`;if(t<3&&n){await new Promise(e=>setTimeout(e,150*(t+1)));continue}let r=e instanceof Error?e.message:String(e);ie(`Failed to open file from tool: ${r}`,5e3);return}}async function Ze(e,t,n){n?.providerId===`llamafile`?await Z(e,t,de(n.reason)):n?.providerId===`transformers_js_local`?await Z(e,t,pe(n.reason)):n?.providerId===`prompt_api`?await Z(e,t,ge(n.reason)):n?.providerId&&n.helpType&&await Z(e,t,fe(n.providerId,n.helpType,n.reason))}async function Qe(e,t,n,r,i,a){if(r&&a?.roomId&&a?.hostPeerId&&await Z(e,t,{mode:`confirm`,title:`Room invitation`,message:`${a.fromAlias||a.fromPeerId} invited you to join "${a.roomName}".`,confirmLabel:`Join`,cancelLabel:`Decline`}))try{ue(n.orchestrator,a.roomId,a.hostPeerId,a.roomName),await i.switchConversation(r,`room:${a.roomId}`),W(t,n,r,i,`chat`),re(`Joined room "${a.roomName}"`)}catch(e){let t=e instanceof Error?e.message:String(e);ie(`Failed to join room: ${t}`,6e3)}}function $e(e,t,n){let r=n.useTrailingSlash&&!t.includes(`#`)?t.endsWith(`/`)?t:t+`/`:t;n.replace?e.replaceState({},``,r):e.pushState({},``,r)}async function et(e,t,n,r,i,a,o={replace:!1}){let l=c(a),u=s(l),d=typeof window<`u`&&window.location?`${window.location.pathname}${window.location.search}${window.location.hash}`:``;d&&u===d?await G(e,t,n,r,i,a):Ie()?window.navigation.navigate(u,{history:o.replace?`replace`:`push`}):(u!==window.location.pathname&&$e(globalThis.history,u,{...o,useTrailingSlash:!1}),await G(e,t,n,r,i,a))}function tt(e){let t=String(e||`chat`).toLowerCase();return t===`chat`||t===`files`||t===`tasks`||t===`pages`||t===`settings`||t===`tools`||t===`channels`?t:`chat`}async function nt(e,t,n,r,i,a){let o=a.detail;o&&await et(e,t,n,r,i,{page:tt(String(o.page||`chat`)),groupId:o.groupId,path:o.path,anchor:o.anchor})}async function rt(e,t,n,r){await Pe(e,t,n,r)}function it(e,t,n,r){e&&(w(()=>{let t=E.file;t&&(I(`file-viewer`).then(()=>{if(e&&!e.querySelector(`shadow-claw-file-viewer`)){let t=e.querySelector(`.main-content`);if(t){let e=document.createElement(`shadow-claw-file-viewer`);e.id=`file-viewer`,t.appendChild(e)}}}).catch(console.error),t.kind===`pdf`&&I(`pdf-viewer`).catch(console.error))}),w(()=>{let e=r.state;e===`idle`&&(t.previousOrchestratorState===`thinking`||t.previousOrchestratorState===`responding`)&&re(`Response complete`,2500),t.previousOrchestratorState=e}),w(()=>{let i=r.activePage;i!==t.currentPage&&W(e,t,n,r,i,!1)}),w(()=>{r.activityLog,z(e,t.currentPage,r.activityLog.length)}))}const at=new CSSStyleSheet;at.replaceSync(`*,
|
|
2
|
-
*::before,
|
|
3
|
-
*::after {
|
|
4
|
-
box-sizing: border-box;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
.hidden,
|
|
8
|
-
[hidden] {
|
|
9
|
-
display: none !important;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
a {
|
|
13
|
-
color: var(--shadow-claw-link);
|
|
14
|
-
text-decoration: underline;
|
|
15
|
-
text-underline-offset: 0.125rem;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
a:hover {
|
|
19
|
-
color: var(--shadow-claw-link-hover);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.header {
|
|
23
|
-
align-items: center;
|
|
24
|
-
background-color: var(--shadow-claw-bg-secondary);
|
|
25
|
-
border-bottom: 0.0625rem solid var(--shadow-claw-border-color);
|
|
26
|
-
display: flex;
|
|
27
|
-
gap: 0.5rem;
|
|
28
|
-
height: 4rem;
|
|
29
|
-
justify-content: start;
|
|
30
|
-
max-height: 4rem;
|
|
31
|
-
padding: 0.5rem 1rem;
|
|
32
|
-
width: 100%;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
.header h1 {
|
|
36
|
-
align-items: center;
|
|
37
|
-
color: var(--shadow-claw-text-primary);
|
|
38
|
-
display: flex;
|
|
39
|
-
flex-direction: row;
|
|
40
|
-
margin: 0;
|
|
41
|
-
width: 100%;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
#menu-button {
|
|
45
|
-
align-items: center;
|
|
46
|
-
background: transparent;
|
|
47
|
-
border: none;
|
|
48
|
-
border-radius: 0.25rem;
|
|
49
|
-
color: var(--shadow-claw-text-secondary);
|
|
50
|
-
cursor: pointer;
|
|
51
|
-
display: flex;
|
|
52
|
-
justify-content: center;
|
|
53
|
-
padding: 0.5rem;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
#menu-button:hover,
|
|
57
|
-
.theme-toggle:hover {
|
|
58
|
-
background-color: var(--shadow-claw-bg-tertiary);
|
|
59
|
-
color: var(--shadow-claw-text-primary);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.header-actions {
|
|
63
|
-
align-items: center;
|
|
64
|
-
display: flex;
|
|
65
|
-
gap: 0.5rem;
|
|
66
|
-
margin-left: auto;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
.theme-toggle {
|
|
70
|
-
align-items: center;
|
|
71
|
-
background: transparent;
|
|
72
|
-
border: none;
|
|
73
|
-
border-radius: 0.25rem;
|
|
74
|
-
color: var(--shadow-claw-text-secondary);
|
|
75
|
-
cursor: pointer;
|
|
76
|
-
display: flex;
|
|
77
|
-
justify-content: center;
|
|
78
|
-
padding: 0.5rem;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
.theme-mode-toggle .sun-icon {
|
|
82
|
-
display: none;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
.theme-mode-toggle .moon-icon {
|
|
86
|
-
display: block;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
.theme-toggle svg {
|
|
90
|
-
transition: transform 0.2s ease;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.header-main-toggle {
|
|
94
|
-
display: var(--shadow-claw-header-main-toggle-display, block);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
.header-main-toggle[aria-pressed="true"],
|
|
98
|
-
.activity-log-toggle[aria-pressed="true"] {
|
|
99
|
-
box-shadow: 0 0 0.5rem
|
|
100
|
-
color-mix(
|
|
101
|
-
in srgb,
|
|
102
|
-
var(--shadow-claw-warning-color, #d97706) 50%,
|
|
103
|
-
transparent
|
|
104
|
-
);
|
|
105
|
-
color: var(--shadow-claw-warning-color, #d97706);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
.header-main-toggle[aria-pressed="true"] svg {
|
|
109
|
-
transform: rotate(180deg);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
.activity-log-toggle[aria-pressed="true"] svg {
|
|
113
|
-
transform: rotate(180deg);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
.webvm-toggle--booting,
|
|
117
|
-
.webvm-toggle--ready,
|
|
118
|
-
.webvm-toggle--visible {
|
|
119
|
-
color: var(--shadow-claw-success-color);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
.webvm-toggle--error {
|
|
123
|
-
color: var(--shadow-claw-error-color);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
.app {
|
|
127
|
-
background-color: var(--shadow-claw-bg-primary);
|
|
128
|
-
color: var(--shadow-claw-text-primary);
|
|
129
|
-
display: flex;
|
|
130
|
-
flex-direction: column;
|
|
131
|
-
font-family: var(--shadow-claw-font-sans);
|
|
132
|
-
/* Punch through the \`visibility: hidden\` set on the shadow-claw host
|
|
133
|
-
by the sc-prerender-override global CSS rule. The existing boot-pending
|
|
134
|
-
opacity rules still hide the real pre-rendered content; the skeleton
|
|
135
|
-
overlays and header remain fully visible. */
|
|
136
|
-
visibility: visible;
|
|
137
|
-
width: 100%;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
.app-body {
|
|
141
|
-
--sidebar-width: 15.625rem;
|
|
142
|
-
display: flex;
|
|
143
|
-
flex: 1;
|
|
144
|
-
flex-direction: row;
|
|
145
|
-
min-height: 0;
|
|
146
|
-
overflow: hidden;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
.sidebar {
|
|
150
|
-
background-color: var(--shadow-claw-bg-secondary);
|
|
151
|
-
border-right: 0.0625rem solid var(--shadow-claw-bg-tertiary);
|
|
152
|
-
display: flex;
|
|
153
|
-
flex: none;
|
|
154
|
-
flex-direction: column;
|
|
155
|
-
overflow-y: auto;
|
|
156
|
-
position: relative;
|
|
157
|
-
width: var(--sidebar-width);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
.sidebar-resize-handle {
|
|
161
|
-
background: transparent;
|
|
162
|
-
cursor: col-resize;
|
|
163
|
-
flex: none;
|
|
164
|
-
outline: none;
|
|
165
|
-
position: relative;
|
|
166
|
-
touch-action: none;
|
|
167
|
-
user-select: none;
|
|
168
|
-
width: 0.75rem;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
.sidebar-resize-handle::before {
|
|
172
|
-
background: color-mix(
|
|
173
|
-
in srgb,
|
|
174
|
-
var(--shadow-claw-bg-secondary) 72%,
|
|
175
|
-
var(--shadow-claw-border-color)
|
|
176
|
-
);
|
|
177
|
-
border: 0.0625rem solid
|
|
178
|
-
color-mix(in srgb, var(--shadow-claw-border-color) 80%, transparent);
|
|
179
|
-
border-radius: var(--shadow-claw-radius-pill);
|
|
180
|
-
content: "";
|
|
181
|
-
height: 4.25rem;
|
|
182
|
-
left: 50%;
|
|
183
|
-
position: absolute;
|
|
184
|
-
top: 50%;
|
|
185
|
-
transform: translate(-50%, -50%);
|
|
186
|
-
transition:
|
|
187
|
-
background-color 0.15s,
|
|
188
|
-
border-color 0.15s,
|
|
189
|
-
box-shadow 0.15s;
|
|
190
|
-
width: 0.5625rem;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
.sidebar-resize-handle::after {
|
|
194
|
-
background: var(--shadow-claw-border-color);
|
|
195
|
-
border-radius: var(--shadow-claw-radius-pill);
|
|
196
|
-
content: "";
|
|
197
|
-
height: 2.75rem;
|
|
198
|
-
left: 50%;
|
|
199
|
-
position: absolute;
|
|
200
|
-
top: 50%;
|
|
201
|
-
transform: translate(-50%, -50%);
|
|
202
|
-
transition: background-color 0.15s;
|
|
203
|
-
width: 0.1875rem;
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
.sidebar-resize-handle:hover::before,
|
|
207
|
-
.sidebar-resize-handle.active::before {
|
|
208
|
-
background: color-mix(
|
|
209
|
-
in srgb,
|
|
210
|
-
var(--shadow-claw-accent-primary) 20%,
|
|
211
|
-
var(--shadow-claw-bg-secondary)
|
|
212
|
-
);
|
|
213
|
-
border-color: color-mix(
|
|
214
|
-
in srgb,
|
|
215
|
-
var(--shadow-claw-accent-primary) 45%,
|
|
216
|
-
transparent
|
|
217
|
-
);
|
|
218
|
-
box-shadow: 0 0 0.5rem
|
|
219
|
-
color-mix(in srgb, var(--shadow-claw-accent-primary) 18%, transparent);
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
.sidebar-resize-handle:hover::after,
|
|
223
|
-
.sidebar-resize-handle.active::after {
|
|
224
|
-
background: var(--shadow-claw-accent-primary);
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
.sidebar-resize-handle:focus-visible::before {
|
|
228
|
-
background: color-mix(
|
|
229
|
-
in srgb,
|
|
230
|
-
var(--shadow-claw-accent-primary) 20%,
|
|
231
|
-
var(--shadow-claw-bg-secondary)
|
|
232
|
-
);
|
|
233
|
-
border-color: color-mix(
|
|
234
|
-
in srgb,
|
|
235
|
-
var(--shadow-claw-accent-primary) 45%,
|
|
236
|
-
transparent
|
|
237
|
-
);
|
|
238
|
-
box-shadow: 0 0 0.5rem
|
|
239
|
-
color-mix(in srgb, var(--shadow-claw-accent-primary) 18%, transparent);
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
.sidebar-resize-handle:focus-visible::after {
|
|
243
|
-
background: var(--shadow-claw-accent-primary);
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
.sidebar-resize-handle:focus-visible {
|
|
247
|
-
outline: 0.125rem solid
|
|
248
|
-
color-mix(in srgb, var(--shadow-claw-accent-primary) 60%, transparent);
|
|
249
|
-
outline-offset: 0.0625rem;
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
@media (max-width: 55.9375rem) {
|
|
253
|
-
.sidebar {
|
|
254
|
-
display: none;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
.sidebar.open {
|
|
258
|
-
border-radius: 0 var(--shadow-claw-radius-m) var(--shadow-claw-radius-m) 0;
|
|
259
|
-
box-shadow: var(--shadow-claw-shadow-lg);
|
|
260
|
-
display: flex;
|
|
261
|
-
height: calc(100vh - 4rem);
|
|
262
|
-
height: calc(100dvh - 4rem);
|
|
263
|
-
position: absolute;
|
|
264
|
-
width: min(85vw, 20rem);
|
|
265
|
-
z-index: 100;
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
.sidebar-resize-handle {
|
|
269
|
-
display: none;
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
@media (min-width: 56rem) {
|
|
274
|
-
#menu-button {
|
|
275
|
-
display: none;
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
.nav-menu {
|
|
280
|
-
display: var(--shadow-claw-sidebar-nav-display, flex);
|
|
281
|
-
flex-direction: column;
|
|
282
|
-
flex: none;
|
|
283
|
-
list-style: none;
|
|
284
|
-
margin: 0;
|
|
285
|
-
padding: 0.5rem;
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
.nav-menu:not(:has(.nav-item:not([hidden]))) {
|
|
289
|
-
display: none;
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
slot[name="sidebar"],
|
|
293
|
-
slot[name="sidebar-nav"],
|
|
294
|
-
slot[name="sidebar-content"],
|
|
295
|
-
slot[name="sidebar-footer"] {
|
|
296
|
-
display: block;
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
::slotted([slot="sidebar"]),
|
|
300
|
-
::slotted([slot="sidebar-nav"]),
|
|
301
|
-
::slotted([slot="sidebar-content"]),
|
|
302
|
-
::slotted([slot="sidebar-footer"]) {
|
|
303
|
-
display: block;
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
.sidebar-footer {
|
|
307
|
-
display: var(--shadow-claw-sidebar-footer-display, block);
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
.sidebar-spacer {
|
|
311
|
-
flex: 1;
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
shadow-claw-conversations {
|
|
315
|
-
display: flex;
|
|
316
|
-
flex: none;
|
|
317
|
-
flex-direction: column;
|
|
318
|
-
min-height: 0;
|
|
319
|
-
overflow: hidden;
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
.nav-item {
|
|
323
|
-
border-radius: var(--shadow-claw-radius-m);
|
|
324
|
-
color: var(--shadow-claw-text-secondary);
|
|
325
|
-
cursor: pointer;
|
|
326
|
-
font-size: var(--shadow-claw-font-size-sm);
|
|
327
|
-
font-weight: 500;
|
|
328
|
-
margin-bottom: 0.5rem;
|
|
329
|
-
padding: 0.625rem 0.75rem;
|
|
330
|
-
transition:
|
|
331
|
-
background-color 0.15s,
|
|
332
|
-
color 0.15s;
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
.nav-item:hover {
|
|
336
|
-
background-color: var(--shadow-claw-text-secondary);
|
|
337
|
-
color: var(--shadow-claw-on-primary);
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
.nav-item.active {
|
|
341
|
-
background-color: var(--shadow-claw-accent-primary);
|
|
342
|
-
color: var(--shadow-claw-on-primary);
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
.sidebar-footer {
|
|
346
|
-
border-top: 0.0625rem solid var(--shadow-claw-border-color);
|
|
347
|
-
flex: none;
|
|
348
|
-
margin-bottom: 0.5rem;
|
|
349
|
-
padding: 0.75rem;
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
.settings-btn {
|
|
353
|
-
background-color: transparent;
|
|
354
|
-
border: 0.0625rem solid var(--shadow-claw-border-color);
|
|
355
|
-
border-radius: var(--shadow-claw-radius-pill);
|
|
356
|
-
color: var(--shadow-claw-text-secondary);
|
|
357
|
-
cursor: pointer;
|
|
358
|
-
font-size: 0.8125rem;
|
|
359
|
-
padding: 0.625rem 0.75rem;
|
|
360
|
-
transition: all var(--shadow-claw-duration-min) var(--shadow-claw-ease-out);
|
|
361
|
-
width: 100%;
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
.settings-btn:hover {
|
|
365
|
-
border-color: var(--shadow-claw-text-primary);
|
|
366
|
-
box-shadow: var(--shadow-claw-shadow-md);
|
|
367
|
-
color: var(--shadow-claw-text-primary);
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
.main-content {
|
|
371
|
-
--chat-split-height: 20rem;
|
|
372
|
-
display: flex;
|
|
373
|
-
flex: 1;
|
|
374
|
-
flex-direction: column;
|
|
375
|
-
height: calc(100vh - 4rem);
|
|
376
|
-
height: calc(100dvh - 4rem);
|
|
377
|
-
min-height: 0;
|
|
378
|
-
overflow: hidden;
|
|
379
|
-
position: relative;
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
.page {
|
|
383
|
-
display: flex;
|
|
384
|
-
display: none;
|
|
385
|
-
flex: 1;
|
|
386
|
-
flex-direction: column;
|
|
387
|
-
min-height: 0;
|
|
388
|
-
overflow: auto;
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
.page.active {
|
|
392
|
-
display: flex;
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
.chat-split-resize-handle {
|
|
396
|
-
background: transparent;
|
|
397
|
-
cursor: row-resize;
|
|
398
|
-
display: none;
|
|
399
|
-
flex: none;
|
|
400
|
-
height: 0.75rem;
|
|
401
|
-
outline: none;
|
|
402
|
-
position: relative;
|
|
403
|
-
touch-action: none;
|
|
404
|
-
user-select: none;
|
|
405
|
-
width: 100%;
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
.main-content.split-chat-active .page.active {
|
|
409
|
-
order: 1;
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
.main-content.split-chat-active .chat-split-resize-handle {
|
|
413
|
-
display: flex;
|
|
414
|
-
margin-bottom: -0.375rem;
|
|
415
|
-
margin-top: -0.375rem;
|
|
416
|
-
order: 2;
|
|
417
|
-
z-index: 10;
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
.chat-split-resize-handle::before {
|
|
421
|
-
background: color-mix(
|
|
422
|
-
in srgb,
|
|
423
|
-
var(--shadow-claw-bg-secondary) 72%,
|
|
424
|
-
var(--shadow-claw-border-color)
|
|
425
|
-
);
|
|
426
|
-
border: 0.0625rem solid
|
|
427
|
-
color-mix(in srgb, var(--shadow-claw-border-color) 80%, transparent);
|
|
428
|
-
border-radius: var(--shadow-claw-radius-pill);
|
|
429
|
-
content: "";
|
|
430
|
-
height: 0.5625rem;
|
|
431
|
-
left: 50%;
|
|
432
|
-
position: absolute;
|
|
433
|
-
top: 50%;
|
|
434
|
-
transform: translate(-50%, -50%);
|
|
435
|
-
transition:
|
|
436
|
-
background-color 0.15s,
|
|
437
|
-
border-color 0.15s,
|
|
438
|
-
box-shadow 0.15s;
|
|
439
|
-
width: 4.25rem;
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
.chat-split-resize-handle::after {
|
|
443
|
-
background: var(--shadow-claw-border-color);
|
|
444
|
-
border-radius: var(--shadow-claw-radius-pill);
|
|
445
|
-
content: "";
|
|
446
|
-
height: 0.1875rem;
|
|
447
|
-
left: 50%;
|
|
448
|
-
position: absolute;
|
|
449
|
-
top: 50%;
|
|
450
|
-
transform: translate(-50%, -50%);
|
|
451
|
-
transition: background-color 0.15s;
|
|
452
|
-
width: 2.75rem;
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
.chat-split-resize-handle:hover::before,
|
|
456
|
-
.chat-split-resize-handle.active::before,
|
|
457
|
-
.chat-split-resize-handle:focus-visible::before {
|
|
458
|
-
background: color-mix(
|
|
459
|
-
in srgb,
|
|
460
|
-
var(--shadow-claw-accent-primary) 20%,
|
|
461
|
-
var(--shadow-claw-bg-secondary)
|
|
462
|
-
);
|
|
463
|
-
border-color: color-mix(
|
|
464
|
-
in srgb,
|
|
465
|
-
var(--shadow-claw-accent-primary) 45%,
|
|
466
|
-
transparent
|
|
467
|
-
);
|
|
468
|
-
box-shadow: 0 0 0.5rem
|
|
469
|
-
color-mix(in srgb, var(--shadow-claw-accent-primary) 18%, transparent);
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
.chat-split-resize-handle:hover::after,
|
|
473
|
-
.chat-split-resize-handle.active::after,
|
|
474
|
-
.chat-split-resize-handle:focus-visible::after {
|
|
475
|
-
background: var(--shadow-claw-accent-primary);
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
.chat-split-resize-handle:focus-visible {
|
|
479
|
-
outline: 0.125rem solid
|
|
480
|
-
color-mix(in srgb, var(--shadow-claw-accent-primary) 60%, transparent);
|
|
481
|
-
outline-offset: 0.0625rem;
|
|
482
|
-
}
|
|
483
|
-
|
|
484
|
-
.main-content.split-chat-active .chat-page:not(.active) {
|
|
485
|
-
border-top: 0.0625rem solid var(--shadow-claw-border-color);
|
|
486
|
-
display: flex;
|
|
487
|
-
flex: none;
|
|
488
|
-
height: var(--chat-split-height);
|
|
489
|
-
max-height: calc(100% - 6.25rem);
|
|
490
|
-
min-height: 9.375rem;
|
|
491
|
-
order: 3;
|
|
492
|
-
}
|
|
493
|
-
|
|
494
|
-
@media (max-width: 55.9375rem) {
|
|
495
|
-
.chat-split-resize-handle {
|
|
496
|
-
display: none !important;
|
|
497
|
-
}
|
|
498
|
-
|
|
499
|
-
.main-content.split-chat-active .chat-page:not(.active) {
|
|
500
|
-
display: none !important;
|
|
501
|
-
}
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
.app-dialog {
|
|
505
|
-
background: var(--shadow-claw-bg-secondary);
|
|
506
|
-
border: 0.0625rem solid var(--shadow-claw-border-color);
|
|
507
|
-
border-radius: var(--shadow-claw-radius-l);
|
|
508
|
-
box-shadow: var(--shadow-claw-shadow-lg);
|
|
509
|
-
color: var(--shadow-claw-text-primary);
|
|
510
|
-
max-width: min(90vw, 28rem);
|
|
511
|
-
padding: 0;
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
.app-dialog::backdrop {
|
|
515
|
-
background: color-mix(in srgb, black 50%, transparent);
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
.app-confirm-dialog__form {
|
|
519
|
-
display: flex;
|
|
520
|
-
flex-direction: column;
|
|
521
|
-
gap: 0.75rem;
|
|
522
|
-
margin: 0;
|
|
523
|
-
padding: 1rem;
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
.app-dialog__title {
|
|
527
|
-
font-size: 1rem;
|
|
528
|
-
margin: 0;
|
|
529
|
-
}
|
|
530
|
-
|
|
531
|
-
.app-dialog__message {
|
|
532
|
-
color: var(--shadow-claw-text-secondary);
|
|
533
|
-
margin: 0;
|
|
534
|
-
}
|
|
535
|
-
|
|
536
|
-
.app-dialog__details {
|
|
537
|
-
color: var(--shadow-claw-text-secondary);
|
|
538
|
-
display: flex;
|
|
539
|
-
flex-direction: column;
|
|
540
|
-
gap: 0.25rem;
|
|
541
|
-
margin: 0;
|
|
542
|
-
padding-left: 1rem;
|
|
543
|
-
}
|
|
544
|
-
|
|
545
|
-
.app-dialog__links {
|
|
546
|
-
display: flex;
|
|
547
|
-
flex-wrap: wrap;
|
|
548
|
-
gap: 0.5rem;
|
|
549
|
-
}
|
|
550
|
-
|
|
551
|
-
.app-dialog__link {
|
|
552
|
-
color: var(--shadow-claw-accent-primary);
|
|
553
|
-
font-size: 0.9375rem;
|
|
554
|
-
text-decoration: none;
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
.app-dialog__link:hover,
|
|
558
|
-
.app-dialog__link:focus-visible {
|
|
559
|
-
text-decoration: underline;
|
|
560
|
-
}
|
|
561
|
-
|
|
562
|
-
.app-dialog__countdown {
|
|
563
|
-
color: var(--shadow-claw-text-secondary);
|
|
564
|
-
font-size: 0.875rem;
|
|
565
|
-
margin: 0;
|
|
566
|
-
}
|
|
567
|
-
|
|
568
|
-
.app-confirm-dialog__actions {
|
|
569
|
-
display: flex;
|
|
570
|
-
gap: 0.5rem;
|
|
571
|
-
justify-content: flex-end;
|
|
572
|
-
}
|
|
573
|
-
|
|
574
|
-
.app-dialog__btn {
|
|
575
|
-
border: 0.0625rem solid var(--shadow-claw-border-color);
|
|
576
|
-
border-radius: var(--shadow-claw-radius-m);
|
|
577
|
-
cursor: pointer;
|
|
578
|
-
font: inherit;
|
|
579
|
-
padding: 0.5rem 0.75rem;
|
|
580
|
-
}
|
|
581
|
-
|
|
582
|
-
.app-dialog__btn--cancel {
|
|
583
|
-
background: var(--shadow-claw-bg-primary);
|
|
584
|
-
color: var(--shadow-claw-text-primary);
|
|
585
|
-
}
|
|
586
|
-
|
|
587
|
-
.app-dialog__btn--confirm {
|
|
588
|
-
background: var(--shadow-claw-accent-primary);
|
|
589
|
-
border-color: var(--shadow-claw-accent-primary);
|
|
590
|
-
color: var(--shadow-claw-on-primary);
|
|
591
|
-
}
|
|
592
|
-
|
|
593
|
-
.app-prompt-dialog__form {
|
|
594
|
-
display: flex;
|
|
595
|
-
flex-direction: column;
|
|
596
|
-
gap: 0.75rem;
|
|
597
|
-
margin: 0;
|
|
598
|
-
padding: 1rem;
|
|
599
|
-
}
|
|
600
|
-
|
|
601
|
-
.app-prompt-dialog__title {
|
|
602
|
-
font-size: 1rem;
|
|
603
|
-
margin: 0;
|
|
604
|
-
}
|
|
605
|
-
|
|
606
|
-
.app-prompt-dialog__message {
|
|
607
|
-
color: var(--shadow-claw-text-secondary);
|
|
608
|
-
margin: 0;
|
|
609
|
-
}
|
|
610
|
-
|
|
611
|
-
.app-prompt-dialog__input-area {
|
|
612
|
-
display: flex;
|
|
613
|
-
flex-direction: column;
|
|
614
|
-
gap: 0.5rem;
|
|
615
|
-
margin-top: 0.5rem;
|
|
616
|
-
}
|
|
617
|
-
|
|
618
|
-
.app-prompt-dialog__input {
|
|
619
|
-
background: var(--shadow-claw-bg-primary);
|
|
620
|
-
border: 0.0625rem solid var(--shadow-claw-border-color);
|
|
621
|
-
border-radius: var(--shadow-claw-radius-s);
|
|
622
|
-
color: var(--shadow-claw-text-primary);
|
|
623
|
-
font: inherit;
|
|
624
|
-
padding: 0.5rem;
|
|
625
|
-
width: 100%;
|
|
626
|
-
}
|
|
627
|
-
|
|
628
|
-
.app-prompt-dialog__actions {
|
|
629
|
-
display: flex;
|
|
630
|
-
gap: 0.5rem;
|
|
631
|
-
justify-content: flex-end;
|
|
632
|
-
margin-top: 0.5rem;
|
|
633
|
-
}
|
|
634
|
-
|
|
635
|
-
form:tool-form-active,
|
|
636
|
-
.app-confirm-dialog__form:tool-form-active,
|
|
637
|
-
.app-prompt-dialog__form:tool-form-active {
|
|
638
|
-
outline: 2px dashed var(--shadow-claw-accent-primary, #3b82f6);
|
|
639
|
-
outline-offset: 4px;
|
|
640
|
-
}
|
|
641
|
-
|
|
642
|
-
button:tool-submit-active {
|
|
643
|
-
outline: 2px dashed var(--shadow-claw-warning, #f59e0b);
|
|
644
|
-
outline-offset: 2px;
|
|
645
|
-
}
|
|
646
|
-
|
|
647
|
-
.chat-page {
|
|
648
|
-
flex-direction: column;
|
|
649
|
-
}
|
|
650
|
-
|
|
651
|
-
:host([data-prerender-no-seed="true"]) .nav-item,
|
|
652
|
-
:host([data-prerender-no-seed="true"]) shadow-claw-conversations,
|
|
653
|
-
:host([data-prerender-no-seed="true"]) .sidebar-footer,
|
|
654
|
-
:host([data-prerender-no-seed="true"]) .page.active,
|
|
655
|
-
:host([data-prerender-no-seed="true"]) shadow-claw-file-viewer,
|
|
656
|
-
:host([data-prerender-no-seed="true"]) shadow-claw-toast {
|
|
657
|
-
opacity: 1;
|
|
658
|
-
transform: translateY(0);
|
|
659
|
-
transition:
|
|
660
|
-
opacity var(--shadow-claw-duration-min) var(--shadow-claw-ease-out),
|
|
661
|
-
transform var(--shadow-claw-duration-min) var(--shadow-claw-ease-out);
|
|
662
|
-
}
|
|
663
|
-
|
|
664
|
-
:host([data-prerender-no-seed="true"][data-hydration-pending="true"]) .nav-item,
|
|
665
|
-
:host([data-prerender-no-seed="true"][data-hydration-pending="true"])
|
|
666
|
-
shadow-claw-conversations,
|
|
667
|
-
:host([data-prerender-no-seed="true"][data-hydration-pending="true"])
|
|
668
|
-
.sidebar-footer,
|
|
669
|
-
:host([data-prerender-no-seed="true"][data-hydration-pending="true"])
|
|
670
|
-
.page.active,
|
|
671
|
-
:host([data-prerender-no-seed="true"][data-hydration-pending="true"])
|
|
672
|
-
shadow-claw-file-viewer,
|
|
673
|
-
:host([data-prerender-no-seed="true"][data-hydration-pending="true"])
|
|
674
|
-
shadow-claw-toast,
|
|
675
|
-
:host([data-prerender-no-seed="true"][data-js-boot-pending="true"]) .nav-item,
|
|
676
|
-
:host([data-prerender-no-seed="true"][data-js-boot-pending="true"])
|
|
677
|
-
shadow-claw-conversations,
|
|
678
|
-
:host([data-prerender-no-seed="true"][data-js-boot-pending="true"])
|
|
679
|
-
.sidebar-footer,
|
|
680
|
-
:host([data-prerender-no-seed="true"][data-js-boot-pending="true"])
|
|
681
|
-
.page.active,
|
|
682
|
-
:host([data-prerender-no-seed="true"][data-js-boot-pending="true"])
|
|
683
|
-
shadow-claw-file-viewer,
|
|
684
|
-
:host([data-prerender-no-seed="true"][data-js-boot-pending="true"])
|
|
685
|
-
shadow-claw-toast {
|
|
686
|
-
opacity: 0;
|
|
687
|
-
pointer-events: none;
|
|
688
|
-
transform: translateY(0.25rem);
|
|
689
|
-
}
|
|
690
|
-
|
|
691
|
-
@media (prefers-reduced-motion: reduce) {
|
|
692
|
-
:host([data-prerender-no-seed="true"]) .nav-item,
|
|
693
|
-
:host([data-prerender-no-seed="true"]) shadow-claw-conversations,
|
|
694
|
-
:host([data-prerender-no-seed="true"]) .sidebar-footer,
|
|
695
|
-
:host([data-prerender-no-seed="true"]) .page.active,
|
|
696
|
-
:host([data-prerender-no-seed="true"]) shadow-claw-file-viewer,
|
|
697
|
-
:host([data-prerender-no-seed="true"]) shadow-claw-toast {
|
|
698
|
-
transform: none;
|
|
699
|
-
transition: none;
|
|
700
|
-
}
|
|
701
|
-
}
|
|
702
|
-
|
|
703
|
-
/* Premium Loading & Hydration Skeletons */
|
|
704
|
-
.sidebar-boot-skeleton {
|
|
705
|
-
background-color: var(--shadow-claw-bg-secondary);
|
|
706
|
-
bottom: 0;
|
|
707
|
-
display: flex;
|
|
708
|
-
flex-direction: column;
|
|
709
|
-
left: 0;
|
|
710
|
-
opacity: 0;
|
|
711
|
-
padding: 1rem 0.75rem;
|
|
712
|
-
pointer-events: none;
|
|
713
|
-
position: absolute;
|
|
714
|
-
right: 0;
|
|
715
|
-
top: 0;
|
|
716
|
-
transition:
|
|
717
|
-
opacity var(--shadow-claw-duration-regular) var(--shadow-claw-ease-out),
|
|
718
|
-
visibility var(--shadow-claw-duration-regular) var(--shadow-claw-ease-out);
|
|
719
|
-
visibility: hidden;
|
|
720
|
-
z-index: 10;
|
|
721
|
-
}
|
|
722
|
-
|
|
723
|
-
:host([data-js-boot-pending="true"]) .sidebar-boot-skeleton,
|
|
724
|
-
:host([data-hydration-pending="true"]) .sidebar-boot-skeleton {
|
|
725
|
-
opacity: 1;
|
|
726
|
-
pointer-events: auto;
|
|
727
|
-
visibility: visible;
|
|
728
|
-
}
|
|
729
|
-
|
|
730
|
-
.skeleton-nav-wrapper {
|
|
731
|
-
display: none;
|
|
732
|
-
flex-direction: column;
|
|
733
|
-
gap: 0.5rem;
|
|
734
|
-
margin-bottom: 0.5rem;
|
|
735
|
-
}
|
|
736
|
-
|
|
737
|
-
:host([data-prerender-no-seed="true"]) .skeleton-nav-wrapper {
|
|
738
|
-
display: flex;
|
|
739
|
-
}
|
|
740
|
-
|
|
741
|
-
.skeleton-divider {
|
|
742
|
-
border-top: 0.0625rem solid var(--shadow-claw-border-color);
|
|
743
|
-
display: none;
|
|
744
|
-
margin: 0.75rem 0;
|
|
745
|
-
}
|
|
746
|
-
|
|
747
|
-
:host([data-prerender-no-seed="true"]) .skeleton-divider {
|
|
748
|
-
display: block;
|
|
749
|
-
}
|
|
750
|
-
|
|
751
|
-
.skeleton-convo-wrapper {
|
|
752
|
-
display: flex;
|
|
753
|
-
flex-direction: column;
|
|
754
|
-
gap: 0.75rem;
|
|
755
|
-
margin-top: 0.5rem;
|
|
756
|
-
}
|
|
757
|
-
|
|
758
|
-
.skeleton-item {
|
|
759
|
-
animation: skeleton-pulse 1.8s ease-in-out infinite;
|
|
760
|
-
background: linear-gradient(
|
|
761
|
-
90deg,
|
|
762
|
-
var(--shadow-claw-bg-secondary) 25%,
|
|
763
|
-
var(--shadow-claw-bg-tertiary) 50%,
|
|
764
|
-
var(--shadow-claw-bg-secondary) 75%
|
|
765
|
-
);
|
|
766
|
-
background-size: 200% 100%;
|
|
767
|
-
}
|
|
768
|
-
|
|
769
|
-
.skeleton-nav {
|
|
770
|
-
border-radius: var(--shadow-claw-radius-m);
|
|
771
|
-
height: 2.25rem;
|
|
772
|
-
width: 100%;
|
|
773
|
-
}
|
|
774
|
-
|
|
775
|
-
/* Give items dynamic-looking varied widths for extra premium feel */
|
|
776
|
-
.skeleton-nav:nth-child(1) {
|
|
777
|
-
width: 85%;
|
|
778
|
-
}
|
|
779
|
-
|
|
780
|
-
.skeleton-nav:nth-child(2) {
|
|
781
|
-
width: 90%;
|
|
782
|
-
}
|
|
783
|
-
|
|
784
|
-
.skeleton-nav:nth-child(3) {
|
|
785
|
-
width: 75%;
|
|
786
|
-
}
|
|
787
|
-
|
|
788
|
-
.skeleton-nav:nth-child(4) {
|
|
789
|
-
width: 80%;
|
|
790
|
-
}
|
|
791
|
-
|
|
792
|
-
.skeleton-convo {
|
|
793
|
-
border-radius: var(--shadow-claw-radius-m);
|
|
794
|
-
height: 3.5rem;
|
|
795
|
-
width: 100%;
|
|
796
|
-
}
|
|
797
|
-
|
|
798
|
-
.main-content-boot-skeleton {
|
|
799
|
-
align-items: center;
|
|
800
|
-
background-color: var(--shadow-claw-bg-primary);
|
|
801
|
-
bottom: 0;
|
|
802
|
-
display: flex;
|
|
803
|
-
flex-direction: column;
|
|
804
|
-
justify-content: center;
|
|
805
|
-
left: 0;
|
|
806
|
-
opacity: 0;
|
|
807
|
-
padding: 2rem;
|
|
808
|
-
pointer-events: none;
|
|
809
|
-
position: absolute;
|
|
810
|
-
right: 0;
|
|
811
|
-
top: 0;
|
|
812
|
-
transition:
|
|
813
|
-
opacity var(--shadow-claw-duration-regular) var(--shadow-claw-ease-out),
|
|
814
|
-
visibility var(--shadow-claw-duration-regular) var(--shadow-claw-ease-out);
|
|
815
|
-
visibility: hidden;
|
|
816
|
-
z-index: 10;
|
|
817
|
-
}
|
|
818
|
-
|
|
819
|
-
:host([data-prerender-no-seed="true"][data-js-boot-pending="true"])
|
|
820
|
-
.main-content-boot-skeleton,
|
|
821
|
-
:host([data-prerender-no-seed="true"][data-hydration-pending="true"])
|
|
822
|
-
.main-content-boot-skeleton {
|
|
823
|
-
opacity: 1;
|
|
824
|
-
pointer-events: auto;
|
|
825
|
-
visibility: visible;
|
|
826
|
-
}
|
|
827
|
-
|
|
828
|
-
.boot-loading-svg {
|
|
829
|
-
color: var(--shadow-claw-text-secondary);
|
|
830
|
-
height: 4.5rem;
|
|
831
|
-
opacity: 0.85;
|
|
832
|
-
transition: color var(--shadow-claw-duration-min) var(--shadow-claw-ease-out);
|
|
833
|
-
width: 4.5rem;
|
|
834
|
-
}
|
|
835
|
-
|
|
836
|
-
.boot-loading-text {
|
|
837
|
-
color: var(--shadow-claw-text-secondary);
|
|
838
|
-
font-size: var(--shadow-claw-font-size-sm);
|
|
839
|
-
font-weight: 600;
|
|
840
|
-
letter-spacing: 0.075em;
|
|
841
|
-
margin-top: 1.25rem;
|
|
842
|
-
text-transform: uppercase;
|
|
843
|
-
}
|
|
844
|
-
|
|
845
|
-
@keyframes skeleton-pulse {
|
|
846
|
-
0% {
|
|
847
|
-
background-position: 200% 0;
|
|
848
|
-
}
|
|
849
|
-
|
|
850
|
-
100% {
|
|
851
|
-
background-position: -200% 0;
|
|
852
|
-
}
|
|
853
|
-
}
|
|
854
|
-
`);const $=new DOMParser().parseFromString(`<template>
|
|
855
|
-
<div class="app">
|
|
856
|
-
<!-- Header -->
|
|
857
|
-
<header class="header">
|
|
858
|
-
<button aria-label="Open menu" title="Open menu" id="menu-button">
|
|
859
|
-
<svg
|
|
860
|
-
height="1.5rem"
|
|
861
|
-
fill="currentColor"
|
|
862
|
-
viewBox="0 -960 960 960"
|
|
863
|
-
width="1.5rem"
|
|
864
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
865
|
-
>
|
|
866
|
-
<path d="M120-680v-80h720v80zm0 480v-80h720v80zm0-240v-80h720v80z" />
|
|
867
|
-
</svg>
|
|
868
|
-
</button>
|
|
869
|
-
<h1>
|
|
870
|
-
<slot name="header-title-link"></slot>
|
|
871
|
-
<div class="header-actions">
|
|
872
|
-
<button
|
|
873
|
-
aria-label="Toggle theme"
|
|
874
|
-
title="Toggle theme"
|
|
875
|
-
class="theme-toggle theme-mode-toggle"
|
|
876
|
-
>
|
|
877
|
-
<svg
|
|
878
|
-
class="sun-icon"
|
|
879
|
-
height="1.5rem"
|
|
880
|
-
fill="currentColor"
|
|
881
|
-
hidden
|
|
882
|
-
viewBox="0 -960 960 960"
|
|
883
|
-
width="1.5rem"
|
|
884
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
885
|
-
>
|
|
886
|
-
<path
|
|
887
|
-
d="M480-360q50 0 85-35t35-85q0-50-35-85t-85-35q-50 0-85 35t-35 85q0 50 35 85t85 35zm0 80q-83 0-141.5-58.5T280-480q0-83 58.5-141.5T480-680q83 0 141.5 58.5T680-480q0 83-58.5 141.5T480-280zM200-440H40v-80h160v80zm720 0H760v-80h160v80zM440-760v-160h80v160h-80zm0 720v-160h80v160h-80zM256-650l-101-97 57-59 96 100-52 56zm492 496-97-101 53-55 101 97-57 59zm-98-550 97-101 59 57-101 97-55-53zM158-190l97-101 55 53-101 97-51-49z"
|
|
888
|
-
/>
|
|
889
|
-
</svg>
|
|
890
|
-
<svg
|
|
891
|
-
class="moon-icon"
|
|
892
|
-
height="1.5rem"
|
|
893
|
-
fill="currentColor"
|
|
894
|
-
viewBox="0 -960 960 960"
|
|
895
|
-
width="1.5rem"
|
|
896
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
897
|
-
>
|
|
898
|
-
<path
|
|
899
|
-
d="M480-120q-150 0-255-105T120-480q0-150 105-255t255-105q14 0 27.5 1t26.5 3q-41 29-65.5 75.5T444-660q0 90 63 153t153 63q52 0 99-24.5t75-65.5q2 13 3 26.5t1 27.5q0 150-105 255T480-120zm0-80q88 0 158-48.5T740-375q-20 5-40 8t-40 3q-123 0-209.5-86.5T364-660q0-20 3-40t8-40q-74 30-122.5 100T204-480q0 116 82 198t194 82zm-12-274z"
|
|
900
|
-
/>
|
|
901
|
-
</svg>
|
|
902
|
-
</button>
|
|
903
|
-
<button
|
|
904
|
-
aria-label="Hide action header"
|
|
905
|
-
title="Hide action header"
|
|
906
|
-
aria-pressed="false"
|
|
907
|
-
class="theme-toggle header-main-toggle"
|
|
908
|
-
type="button"
|
|
909
|
-
>
|
|
910
|
-
<svg
|
|
911
|
-
height="1.5rem"
|
|
912
|
-
fill="currentColor"
|
|
913
|
-
viewBox="0 -960 960 960"
|
|
914
|
-
width="1.5rem"
|
|
915
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
916
|
-
>
|
|
917
|
-
<path
|
|
918
|
-
d="M280-200h400v-80H280v80Zm200-200L280-600l56-56 104 104v-328h80v328l104-104 56 56-200 200Z"
|
|
919
|
-
/>
|
|
920
|
-
</svg>
|
|
921
|
-
</button>
|
|
922
|
-
<button
|
|
923
|
-
aria-label="Hide activity log"
|
|
924
|
-
title="Hide activity log"
|
|
925
|
-
aria-pressed="false"
|
|
926
|
-
class="theme-toggle activity-log-toggle"
|
|
927
|
-
type="button"
|
|
928
|
-
hidden
|
|
929
|
-
>
|
|
930
|
-
<svg
|
|
931
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
932
|
-
height="24px"
|
|
933
|
-
viewBox="0 -960 960 960"
|
|
934
|
-
width="24px"
|
|
935
|
-
fill="currentColor"
|
|
936
|
-
>
|
|
937
|
-
<path
|
|
938
|
-
d="M80-600v-160q0-33 23.5-56.5T160-840h640q33 0 56.5 23.5T880-760v160h-80v-160H160v160H80Zm80 360q-33 0-56.5-23.5T80-320v-200h80v200h640v-200h80v200q0 33-23.5 56.5T800-240H160ZM40-120v-80h880v80H40Zm440-420ZM80-520v-80h240q11 0 21 6t15 16l47 93 123-215q5-9 14-14.5t20-5.5q11 0 21 5.5t15 16.5l49 98h235v80H620q-11 0-21-5.5T584-542l-26-53-123 215q-5 10-15 15t-21 5q-11 0-20.5-6T364-382l-69-138H80Z"
|
|
939
|
-
/>
|
|
940
|
-
</svg>
|
|
941
|
-
</button>
|
|
942
|
-
<button
|
|
943
|
-
aria-label="Hide WebVM terminal"
|
|
944
|
-
title="Hide WebVM terminal"
|
|
945
|
-
aria-pressed="true"
|
|
946
|
-
class="theme-toggle webvm-toggle"
|
|
947
|
-
type="button"
|
|
948
|
-
hidden
|
|
949
|
-
>
|
|
950
|
-
<svg
|
|
951
|
-
height="1.5rem"
|
|
952
|
-
fill="currentColor"
|
|
953
|
-
viewBox="0 -960 960 960"
|
|
954
|
-
width="1.5rem"
|
|
955
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
956
|
-
>
|
|
957
|
-
<path
|
|
958
|
-
d="M320-280 120-480l200-200 56 56-104 104h568v80H272l104 104-56 56Zm320 0-56-56 104-104H120v-80h568L584-624l56-56 200 200-200 200Z"
|
|
959
|
-
/>
|
|
960
|
-
</svg>
|
|
961
|
-
</button>
|
|
962
|
-
<slot name="header-actions-logo"></slot>
|
|
963
|
-
</div>
|
|
964
|
-
</h1>
|
|
965
|
-
</header>
|
|
966
|
-
|
|
967
|
-
<!-- Main Body -->
|
|
968
|
-
<div class="app-body">
|
|
969
|
-
<!-- Sidebar -->
|
|
970
|
-
<aside class="sidebar">
|
|
971
|
-
<div class="sidebar-boot-skeleton" aria-hidden="true">
|
|
972
|
-
<div class="skeleton-nav-wrapper">
|
|
973
|
-
<div class="skeleton-item skeleton-nav"></div>
|
|
974
|
-
<div class="skeleton-item skeleton-nav"></div>
|
|
975
|
-
<div class="skeleton-item skeleton-nav"></div>
|
|
976
|
-
<div class="skeleton-item skeleton-nav"></div>
|
|
977
|
-
</div>
|
|
978
|
-
<div class="skeleton-divider"></div>
|
|
979
|
-
<div class="skeleton-convo-wrapper">
|
|
980
|
-
<div class="skeleton-item skeleton-convo"></div>
|
|
981
|
-
<div class="skeleton-item skeleton-convo"></div>
|
|
982
|
-
<div class="skeleton-item skeleton-convo"></div>
|
|
983
|
-
</div>
|
|
984
|
-
</div>
|
|
985
|
-
|
|
986
|
-
<nav>
|
|
987
|
-
<ul class="nav-menu">
|
|
988
|
-
<li class="nav-item active" data-page="pages">📚 Pages</li>
|
|
989
|
-
<li class="nav-item" data-page="chat">💬 Chat</li>
|
|
990
|
-
<li class="nav-item" data-page="tasks"> ✓ Tasks</li>
|
|
991
|
-
<li class="nav-item" data-page="files">📁 Files</li>
|
|
992
|
-
</ul>
|
|
993
|
-
</nav>
|
|
994
|
-
<slot name="sidebar-nav"></slot>
|
|
995
|
-
<slot name="sidebar"></slot>
|
|
996
|
-
<slot name="sidebar-content"></slot>
|
|
997
|
-
<div class="sidebar-spacer"></div>
|
|
998
|
-
<shadow-claw-conversations></shadow-claw-conversations>
|
|
999
|
-
<slot name="sidebar-footer"></slot>
|
|
1000
|
-
<div class="sidebar-footer">
|
|
1001
|
-
<button class="settings-btn" data-action="show-settings">
|
|
1002
|
-
⚙️ Settings
|
|
1003
|
-
</button>
|
|
1004
|
-
</div>
|
|
1005
|
-
</aside>
|
|
1006
|
-
<div class="sidebar-resize-handle" title="Drag to resize sidebar"></div>
|
|
1007
|
-
|
|
1008
|
-
<!-- Main Content -->
|
|
1009
|
-
<main class="main-content">
|
|
1010
|
-
<div class="main-content-boot-skeleton" aria-hidden="true">
|
|
1011
|
-
<svg
|
|
1012
|
-
class="boot-loading-svg"
|
|
1013
|
-
viewBox="0 0 44 44"
|
|
1014
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
1015
|
-
>
|
|
1016
|
-
<g
|
|
1017
|
-
fill="none"
|
|
1018
|
-
fill-rule="evenodd"
|
|
1019
|
-
stroke-width="2"
|
|
1020
|
-
stroke="currentColor"
|
|
1021
|
-
>
|
|
1022
|
-
<circle cx="22" cy="22" r="1">
|
|
1023
|
-
<animate
|
|
1024
|
-
attributeName="r"
|
|
1025
|
-
begin="0s"
|
|
1026
|
-
dur="1.8s"
|
|
1027
|
-
values="1; 20"
|
|
1028
|
-
calcMode="spline"
|
|
1029
|
-
keyTimes="0; 1"
|
|
1030
|
-
keySplines="0.165, 0.84, 0.44, 1"
|
|
1031
|
-
repeatCount="indefinite"
|
|
1032
|
-
/>
|
|
1033
|
-
<animate
|
|
1034
|
-
attributeName="stroke-opacity"
|
|
1035
|
-
begin="0s"
|
|
1036
|
-
dur="1.8s"
|
|
1037
|
-
values="1; 0"
|
|
1038
|
-
calcMode="spline"
|
|
1039
|
-
keyTimes="0; 1"
|
|
1040
|
-
keySplines="0.3, 0.61, 0.355, 1"
|
|
1041
|
-
repeatCount="indefinite"
|
|
1042
|
-
/>
|
|
1043
|
-
</circle>
|
|
1044
|
-
<circle cx="22" cy="22" r="1">
|
|
1045
|
-
<animate
|
|
1046
|
-
attributeName="r"
|
|
1047
|
-
begin="-0.9s"
|
|
1048
|
-
dur="1.8s"
|
|
1049
|
-
values="1; 20"
|
|
1050
|
-
calcMode="spline"
|
|
1051
|
-
keyTimes="0; 1"
|
|
1052
|
-
keySplines="0.165, 0.84, 0.44, 1"
|
|
1053
|
-
repeatCount="indefinite"
|
|
1054
|
-
/>
|
|
1055
|
-
<animate
|
|
1056
|
-
attributeName="stroke-opacity"
|
|
1057
|
-
begin="-0.9s"
|
|
1058
|
-
dur="1.8s"
|
|
1059
|
-
values="1; 0"
|
|
1060
|
-
calcMode="spline"
|
|
1061
|
-
keyTimes="0; 1"
|
|
1062
|
-
keySplines="0.3, 0.61, 0.355, 1"
|
|
1063
|
-
repeatCount="indefinite"
|
|
1064
|
-
/>
|
|
1065
|
-
</circle>
|
|
1066
|
-
</g>
|
|
1067
|
-
</svg>
|
|
1068
|
-
<div class="boot-loading-text">Preparing workspace...</div>
|
|
1069
|
-
</div>
|
|
1070
|
-
|
|
1071
|
-
<!-- Chat Page — element stamped on first navigation via showPage() -->
|
|
1072
|
-
<div class="page chat-page" data-page-id="chat"></div>
|
|
1073
|
-
|
|
1074
|
-
<!-- Tasks Page — element stamped on first navigation via showPage() -->
|
|
1075
|
-
<div class="page" data-page-id="tasks"></div>
|
|
1076
|
-
|
|
1077
|
-
<!-- Files Page — element stamped on first navigation via showPage() -->
|
|
1078
|
-
<div class="page" data-page-id="files"></div>
|
|
1079
|
-
|
|
1080
|
-
<!-- Pages Page — element stamped on first navigation via showPage() -->
|
|
1081
|
-
<div class="page" data-page-id="pages"></div>
|
|
1082
|
-
|
|
1083
|
-
<!-- Settings Page — element stamped on first navigation via showPage() -->
|
|
1084
|
-
<div class="page" data-page-id="settings"></div>
|
|
1085
|
-
|
|
1086
|
-
<!-- Tools Config Page — element stamped on first navigation via showPage() -->
|
|
1087
|
-
<div class="page" data-page-id="tools"></div>
|
|
1088
|
-
|
|
1089
|
-
<!-- Channels Config Page — element stamped on first navigation via showPage() -->
|
|
1090
|
-
<div class="page" data-page-id="channels"></div>
|
|
1091
|
-
|
|
1092
|
-
<!-- Chat Split View Resize Handle -->
|
|
1093
|
-
<div
|
|
1094
|
-
class="chat-split-resize-handle"
|
|
1095
|
-
title="Drag to resize chat panel"
|
|
1096
|
-
hidden
|
|
1097
|
-
></div>
|
|
1098
|
-
|
|
1099
|
-
<!-- file-viewer is stamped lazily by setupEffects when a file is opened -->
|
|
1100
|
-
<shadow-claw-toast></shadow-claw-toast>
|
|
1101
|
-
</main>
|
|
1102
|
-
</div>
|
|
1103
|
-
|
|
1104
|
-
<shadow-claw-dialog
|
|
1105
|
-
dialog-class="app-dialog"
|
|
1106
|
-
dialog-aria-labelledby="appDialogTitle"
|
|
1107
|
-
>
|
|
1108
|
-
<form
|
|
1109
|
-
method="dialog"
|
|
1110
|
-
class="app-confirm-dialog__form"
|
|
1111
|
-
toolname="app_dialog_confirm"
|
|
1112
|
-
tooldescription="Confirm or cancel an application modal dialog prompt"
|
|
1113
|
-
>
|
|
1114
|
-
<h2 id="appDialogTitle" class="app-dialog__title">Confirm</h2>
|
|
1115
|
-
<p class="app-dialog__message"></p>
|
|
1116
|
-
<ul class="app-dialog__details" hidden></ul>
|
|
1117
|
-
<div class="app-dialog__links" hidden></div>
|
|
1118
|
-
<p
|
|
1119
|
-
class="app-dialog__countdown"
|
|
1120
|
-
hidden
|
|
1121
|
-
role="status"
|
|
1122
|
-
aria-live="polite"
|
|
1123
|
-
aria-atomic="true"
|
|
1124
|
-
></p>
|
|
1125
|
-
<div class="app-confirm-dialog__actions">
|
|
1126
|
-
<button
|
|
1127
|
-
type="submit"
|
|
1128
|
-
value="cancel"
|
|
1129
|
-
class="app-dialog__btn app-dialog__btn--cancel"
|
|
1130
|
-
>
|
|
1131
|
-
Cancel
|
|
1132
|
-
</button>
|
|
1133
|
-
<button
|
|
1134
|
-
type="submit"
|
|
1135
|
-
value="confirm"
|
|
1136
|
-
class="app-dialog__btn app-dialog__btn--confirm"
|
|
1137
|
-
>
|
|
1138
|
-
Confirm
|
|
1139
|
-
</button>
|
|
1140
|
-
</div>
|
|
1141
|
-
</form>
|
|
1142
|
-
</shadow-claw-dialog>
|
|
1143
|
-
|
|
1144
|
-
<shadow-claw-dialog
|
|
1145
|
-
dialog-class="app-dialog app-prompt-dialog"
|
|
1146
|
-
dialog-aria-labelledby="appPromptTitle"
|
|
1147
|
-
>
|
|
1148
|
-
<form
|
|
1149
|
-
method="dialog"
|
|
1150
|
-
class="app-prompt-dialog__form"
|
|
1151
|
-
toolname="app_dialog_prompt"
|
|
1152
|
-
tooldescription="Submit user response or selection to an interactive dialog prompt"
|
|
1153
|
-
>
|
|
1154
|
-
<h2 id="appPromptTitle" class="app-prompt-dialog__title">
|
|
1155
|
-
Agent Question
|
|
1156
|
-
</h2>
|
|
1157
|
-
<p class="app-prompt-dialog__message"></p>
|
|
1158
|
-
|
|
1159
|
-
<div class="app-prompt-dialog__input-area">
|
|
1160
|
-
<!-- Will be populated dynamically with either a select or text input -->
|
|
1161
|
-
</div>
|
|
1162
|
-
|
|
1163
|
-
<div class="app-prompt-dialog__actions">
|
|
1164
|
-
<button
|
|
1165
|
-
type="submit"
|
|
1166
|
-
value="submit"
|
|
1167
|
-
class="app-dialog__btn app-dialog__btn--confirm app-prompt-dialog__submit"
|
|
1168
|
-
>
|
|
1169
|
-
Submit
|
|
1170
|
-
</button>
|
|
1171
|
-
</div>
|
|
1172
|
-
</form>
|
|
1173
|
-
</shadow-claw-dialog>
|
|
1174
|
-
</div>
|
|
1175
|
-
</template>
|
|
1176
|
-
`,`text/html`),ot=$.querySelector(`template`);let st=[];st=ot?Array.from(ot.content.children):Array.from($.head.children).concat(Array.from($.body.children));var ct=st;const lt=`shadow-claw`;var ut=class extends x{static styles=at;static template=ct;activityLogCollapsedOverride=null;appLifecycleCleanup=null;chatSidebarHidden=!1;chatSplitViewEnabled=!1;currentPage=y.sidebarDefaultPage;db=null;fallbackClickListenerAttached=!1;filesSidebarHidden=!1;headerMainCollapsedOverride=null;navigationListenerAttached=!1;orchestrator;pagesSidebarHidden=!1;popstateListener=null;previousOrchestratorState=`idle`;tasksSidebarHidden=!1;terminalElement=null;terminalPlacementFrame=null;terminalVisible=!1;vmStatus={ready:!1,booting:!1,bootAttempted:!1,error:null};vmStatusCleanup=null;constructor(){super()}async connectedCallback(){if(!this.shadowRoot)throw Error(`shadowRoot not found`);let e=typeof window<`u`&&window.location?.href?new URL(window.location.href):null;await p();try{let{Orchestrator:t}=await import(`./orchestrator-BrDjQbGf.js`);await p();let n=()=>{Promise.all([import(`./shadow-claw-dialog-BVGf_c3S.js`),import(`./shadow-claw-toast-YjG--2Za.js`)]).catch(console.error)};typeof window<`u`&&`requestIdleCallback`in window?window.requestIdleCallback(n):setTimeout(n,200),await p(),this.orchestrator||=new t,this.db=await this.orchestrator.init(),await p(),await y.init(this.db,this.orchestrator),u(this.db),await p(),await this.render(),await p();let r=!this.chatSidebarHidden||!this.tasksSidebarHidden||!this.filesSidebarHidden,i=y.activePage===`pages`&&this.pagesSidebarHidden&&y.sidebarDefaultPage!==`pages`&&r||y.activePage===`chat`&&this.chatSidebarHidden||y.activePage===`tasks`&&this.tasksSidebarHidden||y.activePage===`files`&&this.filesSidebarHidden;y.hadPersistedActivePage&&!i?W(this.shadowRoot,this,this.db,y,y.activePage,!1):i?W(this.shadowRoot,this,this.db,y,P(y,this),!1):W(this.shadowRoot,this,this.db,y,y.activePage,!1),await K(this.shadowRoot,this,this.db,E,y,e||new URL(window.location.href));let a=e||(typeof window<`u`&&window.location?.href?new URL(window.location.href):null);if(a?.searchParams?.has(`peer`)){let{processPeerQueryParam:e}=await import(`./process-peer-query-param-BL2k0Hu-.js`);await e(this.shadowRoot,this,this.db,this.orchestrator)}if(a?.searchParams?.has(`room`)||a?.searchParams?.has(`host`)){let{processRoomQueryParam:e}=await import(`./process-room-query-param-DM0QCq3_.js`);await e(window,this.shadowRoot,this,this.db,this.orchestrator,y)}let o=async()=>{if(!this.db)return;let{processPendingSharedPayloads:e}=await import(`./process-pending-shared-payloads-C1AgGvn8.js`);await e(window,this.shadowRoot,this,y,E,this.db,a||new URL(window.location.href))};if(a?.searchParams?.has(`share-target`)||globalThis.__SHADOWCLAW_E2E_ENABLE__===!0?await o():typeof window<`u`&&`requestIdleCallback`in window?window.requestIdleCallback(()=>{o().catch(console.error)}):setTimeout(()=>{o().catch(console.error)},1e3),console.log(`ShadowClaw UI initialized`),typeof customElements<`u`&&await customElements.whenDefined(`shadow-claw-${this.currentPage}`),this.currentPage===`pages`){let e=this.shadowRoot?.querySelector(`shadow-claw-pages`);e&&typeof e.renderSelectedPage==`function`&&!e.renderedKey&&await e.renderSelectedPage()}let{isMemoryStorageFallbackActive:s}=await import(`./memory-storage-BkoMlxOr.js`).then(e=>e.n);if(s()){let{showWarning:e}=await import(`./toast-CtIuHprH.js`).then(e=>e.c);e(`Private Browsing / Limited Storage: Operating in temporary in-memory mode. Files and changes will not persist across page reloads.`,7e3)}y.setReady()}finally{Ke(document)}}disconnectedCallback(){if(super.disconnectedCallback(),this.vmStatusCleanup&&=(this.vmStatusCleanup(),null),this.appLifecycleCleanup&&=(this.appLifecycleCleanup(),null),this.terminalPlacementFrame!==null&&(cancelAnimationFrame(this.terminalPlacementFrame),this.terminalPlacementFrame=null),document.removeEventListener(`shadow-claw-navigate`,this.shadowClawNav),this.popstateListener&&=(window.removeEventListener(`popstate`,this.popstateListener),window.removeEventListener(`hashchange`,this.popstateListener),null),this.fallbackClickListenerAttached&&=(document.removeEventListener(`click`,this.fallbackClickListener),!1),this.navigationListenerAttached){let e=window.navigation;e&&typeof e.removeEventListener==`function`&&e.removeEventListener(`navigate`,this.handleNavigationApiNavigate),this.navigationListenerAttached=!1}}addCleanup(e){super.addCleanup(e)}fallbackClickListener=e=>{if(typeof window>`u`||!window.location)return;let t=qe(window.location,e);t&&($e(globalThis.history,t,{replace:!1,useTrailingSlash:!1}),K(this.shadowRoot,this,this.db,E,y,new URL(window.location.href)))};handleNavigationApiNavigate=e=>{let{parsedUrl:t,navigateEvent:n}=ke(this.db,e)??{};t&&n&&typeof n.intercept==`function`&&n.intercept({scroll:`manual`,handler:async()=>{let{parseRouteFromUrlAsync:e}=await import(`./app-routes-V_-URXc5.js`).then(e=>e.t),n=await e(t,y.activeGroupId);n&&await G(this.shadowRoot,this,this.db,E,y,n)}})};shadowClawNav=e=>{this.shadowRoot&&this.db&&nt(this.shadowRoot,this,this.db,E,y,e)};async render(){if(Ge(window,document,this.shadowRoot,this,this.db,y,E,M,new URL(window.location.href)),await rt(this.shadowRoot,this,y,this.db),this.db)try{let{getConfig:e}=await import(`./get-config-Bkvl__ZS.js`).then(e=>e.n),{isTruthyConfigValue:t}=await import(`./parse-boolean-config-BigJ9U46.js`).then(e=>e.r),{CONFIG_KEYS:n}=await import(`./config-C-YdSFZB.js`).then(e=>e.k),r=await e(this.db,n.CHAT_SPLIT_VIEW_ENABLED);this.chatSplitViewEnabled=t(r)}catch{this.chatSplitViewEnabled=!1}let e=this.shadowRoot?.querySelector(`.chat-split-resize-handle`);if(this.chatSplitViewEnabled&&!this.chatSidebarHidden&&this.shadowRoot&&e instanceof HTMLElement){let{initChatSplitResize:t}=await import(`./init-chat-split-resize-Btonoy8u.js`);await t(this.shadowRoot,this,e,this.db)}this.terminalElement=document.createElement(`shadow-claw-terminal`),this.terminalElement&&(this.terminalElement.orchestrator=this.orchestrator),V(this.shadowRoot,this.currentPage,this.terminalVisible,this.vmStatus),L(this.shadowRoot,this.currentPage,this.terminalElement,this.terminalVisible,this.terminalPlacementFrame),R(this.shadowRoot,this.headerMainCollapsedOverride),B(this.shadowRoot,this.headerMainCollapsedOverride),z(this.shadowRoot,this.currentPage,y.activityLog.length);let t=e=>{this.vmStatus=e,e.error&&this.terminalVisible&&(this.terminalVisible=!1,this.terminalElement&&(this.terminalElement.hidden=!0),L(this.shadowRoot,this.currentPage,this.terminalElement,this.terminalVisible,this.terminalPlacementFrame)),V(this.shadowRoot,this.currentPage,this.terminalVisible,this.vmStatus)};this.vmStatus=this.orchestrator.vmStatus||this.vmStatus,V(this.shadowRoot,this.currentPage,this.terminalVisible,this.vmStatus),this.orchestrator.events.on?.(`vm-status`,t),this.vmStatusCleanup=()=>{this.orchestrator.events.off?.(`vm-status`,t)},this.orchestrator.events.on(`open-file`,e=>Xe(this.db,y,E,e)),this.orchestrator.events.on(`provider-help`,e=>Ze(document,this.shadowRoot,e)),this.orchestrator.events.on(`room-invite`,e=>Qe(document,this.shadowRoot,this,this.db,y,e)),this.orchestrator.events.on(`ask-user`,e=>Ye(document,this.shadowRoot,this,e)),it(this.shadowRoot,this,this.db,y)}async requestDialog(e){return Z(document,this.shadowRoot,e)}};customElements.get(lt)||customElements.define(lt,ut);export{w as a,T as i,E as n,x as o,he as r,W as t};
|