shadow-claw 1.59.7 → 1.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/.well-known/mcp/server-card.json +4 -12
  2. package/.well-known/mcp.json +4 -12
  3. package/README.md +6 -2
  4. package/dist/cli/build/build.js +1 -1
  5. package/dist/cli/{chunk-DDvuLVfW.js → chunk-3C5izdQW.js} +1 -1
  6. package/dist/cli/chunk-B-75h9gX.js +1 -0
  7. package/dist/cli/{chunk-hVf839t7.js → chunk-B7Kn-otm.js} +1 -1
  8. package/dist/cli/{chunk-YX32FcN7.js → chunk-BBczgswQ.js} +1 -1
  9. package/dist/cli/{chunk-DcNxjqH6.js → chunk-BE-lYWcn.js} +1 -1
  10. package/dist/cli/{chunk-CQaCgswD.js → chunk-BECr0WxI.js} +11 -11
  11. package/dist/cli/chunk-BEz1PD1_.js +1 -0
  12. package/dist/cli/chunk-BLzI1Fp2.js +1 -0
  13. package/dist/cli/{chunk-B3TrWbca.js → chunk-BVSC1MNQ.js} +11 -11
  14. package/dist/cli/{chunk-D_te8ufL.js → chunk-BdWcep6o.js} +1 -1
  15. package/dist/cli/{chunk-SRBRVorc.js → chunk-BfTpnSS4.js} +1 -1
  16. package/dist/cli/{chunk-D2_eAO83.js → chunk-BgvqTf7w.js} +1 -1
  17. package/dist/cli/chunk-BwsJfUT3.js +1 -0
  18. package/dist/cli/{chunk--PFY91kE.js → chunk-C9b4b7c_.js} +1 -1
  19. package/dist/cli/{chunk-SxK79JmB.js → chunk-CAw9XYFe.js} +1 -1
  20. package/dist/cli/chunk-CFCcbFs2.js +396 -0
  21. package/dist/cli/{chunk-Cnjb8Usu.js → chunk-CTarF4FC.js} +1 -1
  22. package/dist/cli/{chunk-3vNYrs_L.js → chunk-Cbq5hpjb.js} +4 -4
  23. package/dist/cli/chunk-CjTjKy_v.js +310 -0
  24. package/dist/cli/chunk-Cjyu4cr_.js +36 -0
  25. package/dist/cli/{chunk-DUGZPka_.js → chunk-ClMKygjZ.js} +1 -1
  26. package/dist/cli/chunk-Cppnq1KF.js +1 -0
  27. package/dist/cli/{chunk-DvemF16v.js → chunk-D9QCNFMO.js} +1 -1
  28. package/dist/cli/{chunk-iB8OoMmW.js → chunk-DB21BMqt.js} +1 -1
  29. package/dist/cli/{chunk-_Vo-o_e3.js → chunk-DHoIWvCc.js} +1 -1
  30. package/dist/cli/chunk-DZEN9T5y.js +1 -0
  31. package/dist/cli/{chunk-5rLO4DWS.js → chunk-Dl14OyYO.js} +9 -9
  32. package/dist/cli/chunk-Dl_vv0dI.js +1 -0
  33. package/dist/cli/chunk-Dpmfhlyl.js +1 -0
  34. package/dist/cli/{chunk-BrR1DOBS.js → chunk-Du7Xtucq.js} +1 -1
  35. package/dist/cli/{chunk-B88Z8T_9.js → chunk-DxcDFUi_.js} +1 -1
  36. package/dist/cli/{chunk-Dt7-hzJU.js → chunk-DyyEWbV7.js} +1 -1
  37. package/dist/cli/chunk-N0x3mXU0.js +1 -0
  38. package/dist/cli/{chunk-CGoE4llV.js → chunk-V-w0Bata.js} +1 -1
  39. package/dist/cli/{chunk-CncW6_WL.js → chunk-ZxDxSSn-.js} +1 -1
  40. package/dist/cli/{chunk-CZdCRqNe.js → chunk-lPvFUkd5.js} +1 -1
  41. package/dist/cli/{chunk-66BvqAV0.js → chunk-n5s-sCdU.js} +1 -1
  42. package/dist/cli/{chunk-CAAeGOdy.js → chunk-nD9VPVMq.js} +1 -1
  43. package/dist/cli/{chunk-DMs7kREC.js → chunk-rFuy8aS_.js} +1 -1
  44. package/dist/cli/{chunk-B0qusANw.js → chunk-wjM6JXWa.js} +1 -1
  45. package/dist/cli/{chunk-DhOU6GYX.js → chunk-zcES9rut.js} +1 -1
  46. package/dist/cli/cli.js +3 -3
  47. package/dist/headless-agent.js +1 -1
  48. package/dist/lib/{channel-mmdGzPkT.js → channel-DB77spML.js} +2 -2
  49. package/dist/lib/{channel-mmdGzPkT.js.map → channel-DB77spML.js.map} +1 -1
  50. package/dist/lib/{compact-context-CY9BBlUQ.js → compact-context-Q9t9aL1e.js} +7 -7
  51. package/dist/lib/{compact-context-CY9BBlUQ.js.map → compact-context-Q9t9aL1e.js.map} +1 -1
  52. package/dist/lib/components/index.js +21 -21
  53. package/dist/lib/components/settings/shadow-claw-channel-config.js +1 -1
  54. package/dist/lib/components/settings/shadow-claw-control-plane.js +1 -1
  55. package/dist/lib/components/settings/shadow-claw-git.js +1 -1
  56. package/dist/lib/components/settings/shadow-claw-llm.js +1 -1
  57. package/dist/lib/components/settings/shadow-claw-networking.js +1 -1
  58. package/dist/lib/components/settings/shadow-claw-notifications.js +1 -1
  59. package/dist/lib/components/settings/shadow-claw-peerjs.js +1 -1
  60. package/dist/lib/components/settings/shadow-claw-storage.js +1 -1
  61. package/dist/lib/components/settings/shadow-claw-task-server.js +1 -1
  62. package/dist/lib/components/settings/shadow-claw-webvm.js +1 -1
  63. package/dist/lib/components/shadow-claw-channel-config.js +1 -1
  64. package/dist/lib/components/shadow-claw-channels.js +1 -1
  65. package/dist/lib/components/shadow-claw-chat.js +1 -1
  66. package/dist/lib/components/shadow-claw-control-plane.js +1 -1
  67. package/dist/lib/components/shadow-claw-conversations.js +1 -1
  68. package/dist/lib/components/shadow-claw-file-viewer.js +1 -1
  69. package/dist/lib/components/shadow-claw-files.js +1 -1
  70. package/dist/lib/components/shadow-claw-git.js +1 -1
  71. package/dist/lib/components/shadow-claw-llm.js +1 -1
  72. package/dist/lib/components/shadow-claw-networking.js +1 -1
  73. package/dist/lib/components/shadow-claw-notifications.js +1 -1
  74. package/dist/lib/components/shadow-claw-pages.js +1 -1
  75. package/dist/lib/components/shadow-claw-peerjs.js +1 -1
  76. package/dist/lib/components/shadow-claw-settings.js +1 -1
  77. package/dist/lib/components/shadow-claw-storage.js +1 -1
  78. package/dist/lib/components/shadow-claw-task-server.js +1 -1
  79. package/dist/lib/components/shadow-claw-tasks.js +1 -1
  80. package/dist/lib/components/shadow-claw-terminal.js +1 -1
  81. package/dist/lib/components/shadow-claw-tools.js +1 -1
  82. package/dist/lib/components/shadow-claw-webvm.js +1 -1
  83. package/dist/lib/components/shadow-claw.js +1 -1
  84. package/dist/lib/{configure-peer-js-ccNvax2N.js → configure-peer-js-CgFiwoxY.js} +2 -2
  85. package/dist/lib/{configure-peer-js-ccNvax2N.js.map → configure-peer-js-CgFiwoxY.js.map} +1 -1
  86. package/dist/lib/content/build-attachment-content-blocks.d.ts +2 -0
  87. package/dist/lib/{discover-skills-OwlQ2sXA.js → discover-skills-CXyaWHKi.js} +5 -5
  88. package/dist/lib/{discover-skills-OwlQ2sXA.js.map → discover-skills-CXyaWHKi.js.map} +1 -1
  89. package/dist/lib/{git-D2J_j9X9.js → git-CogDRlEz.js} +2 -2
  90. package/dist/lib/{git-D2J_j9X9.js.map → git-CogDRlEz.js.map} +1 -1
  91. package/dist/lib/index.js +21 -21
  92. package/dist/lib/{init-control-plane-B7blDVIE.js → init-control-plane-CEGdzgWX.js} +7 -7
  93. package/dist/lib/{init-control-plane-B7blDVIE.js.map → init-control-plane-CEGdzgWX.js.map} +1 -1
  94. package/dist/lib/{invoke-agent-SxvudiDT.js → invoke-agent-cac3gCsj.js} +6 -6
  95. package/dist/lib/{invoke-agent-SxvudiDT.js.map → invoke-agent-cac3gCsj.js.map} +1 -1
  96. package/dist/lib/{move-group-entry-DDpjxa10.js → move-group-entry-D8dptMg0.js} +2 -2
  97. package/dist/lib/{move-group-entry-DDpjxa10.js.map → move-group-entry-D8dptMg0.js.map} +1 -1
  98. package/dist/lib/{orchestrator-C7fkh7T7.js → orchestrator-BBAwy9Nm.js} +12 -12
  99. package/dist/lib/{orchestrator-C7fkh7T7.js.map → orchestrator-BBAwy9Nm.js.map} +1 -1
  100. package/dist/lib/{orchestrator-CCARkxQC.js → orchestrator-cRBe3lhq.js} +2 -2
  101. package/dist/lib/{orchestrator-CCARkxQC.js.map → orchestrator-cRBe3lhq.js.map} +1 -1
  102. package/dist/lib/{peerjs-Bfw_FWLB.js → peerjs-BLg8aGUj.js} +3 -3
  103. package/dist/lib/{peerjs-Bfw_FWLB.js.map → peerjs-BLg8aGUj.js.map} +1 -1
  104. package/dist/lib/{process-peer-query-param-BxYiZNdf.js → process-peer-query-param-BnsVnxzH.js} +5 -5
  105. package/dist/lib/{process-peer-query-param-BxYiZNdf.js.map → process-peer-query-param-BnsVnxzH.js.map} +1 -1
  106. package/dist/lib/{process-pending-shared-payloads-DPIbwRb3.js → process-pending-shared-payloads-DBZfZOOa.js} +2 -2
  107. package/dist/lib/{process-pending-shared-payloads-DPIbwRb3.js.map → process-pending-shared-payloads-DBZfZOOa.js.map} +1 -1
  108. package/dist/lib/{process-room-query-param-B2_d50nE.js → process-room-query-param-B8EYg_-r.js} +4 -4
  109. package/dist/lib/{process-room-query-param-B2_d50nE.js.map → process-room-query-param-B8EYg_-r.js.map} +1 -1
  110. package/dist/lib/{push-client-rrjTdc-U.js → push-client-CAm6UMvE.js} +3 -3
  111. package/dist/lib/{push-client-rrjTdc-U.js.map → push-client-CAm6UMvE.js.map} +1 -1
  112. package/dist/lib/{rooms-bwGoYb1q.js → rooms-Dzphx3rK.js} +2 -2
  113. package/dist/lib/{rooms-bwGoYb1q.js.map → rooms-Dzphx3rK.js.map} +1 -1
  114. package/dist/lib/{shadow-claw-CypGVlVO.js → shadow-claw-CGl8tXtG.js} +6 -6
  115. package/dist/lib/{shadow-claw-CypGVlVO.js.map → shadow-claw-CGl8tXtG.js.map} +1 -1
  116. package/dist/lib/{shadow-claw-channel-config-DJpDovkF.js → shadow-claw-channel-config-BNIWCdsL.js} +4 -4
  117. package/dist/lib/{shadow-claw-channel-config-DJpDovkF.js.map → shadow-claw-channel-config-BNIWCdsL.js.map} +1 -1
  118. package/dist/lib/{shadow-claw-channels-DJLwRovH.js → shadow-claw-channels-C2QSn4Ew.js} +2 -2
  119. package/dist/lib/{shadow-claw-channels-DJLwRovH.js.map → shadow-claw-channels-C2QSn4Ew.js.map} +1 -1
  120. package/dist/lib/{shadow-claw-chat-B92cPaft.js → shadow-claw-chat-Wx3y9y6c.js} +3 -3
  121. package/dist/lib/{shadow-claw-chat-B92cPaft.js.map → shadow-claw-chat-Wx3y9y6c.js.map} +1 -1
  122. package/dist/lib/{shadow-claw-control-plane-fvn-qyHj.js → shadow-claw-control-plane-D5E4cFGu.js} +6 -6
  123. package/dist/lib/{shadow-claw-control-plane-fvn-qyHj.js.map → shadow-claw-control-plane-D5E4cFGu.js.map} +1 -1
  124. package/dist/lib/{shadow-claw-conversations-CsVyDOny.js → shadow-claw-conversations-BtDv7GRW.js} +2 -2
  125. package/dist/lib/{shadow-claw-conversations-CsVyDOny.js.map → shadow-claw-conversations-BtDv7GRW.js.map} +1 -1
  126. package/dist/lib/{shadow-claw-file-viewer-DFfyP7s5.js → shadow-claw-file-viewer-CG40kwWV.js} +2 -2
  127. package/dist/lib/{shadow-claw-file-viewer-DFfyP7s5.js.map → shadow-claw-file-viewer-CG40kwWV.js.map} +1 -1
  128. package/dist/lib/{shadow-claw-files-cT6HL7ye.js → shadow-claw-files-BOUULrlX.js} +3 -3
  129. package/dist/lib/{shadow-claw-files-cT6HL7ye.js.map → shadow-claw-files-BOUULrlX.js.map} +1 -1
  130. package/dist/lib/{shadow-claw-git-Cv9mQgTx.js → shadow-claw-git-BeHV73_9.js} +3 -3
  131. package/dist/lib/{shadow-claw-git-Cv9mQgTx.js.map → shadow-claw-git-BeHV73_9.js.map} +1 -1
  132. package/dist/lib/{shadow-claw-llm-CKOYzPDp.js → shadow-claw-llm-KONyWKZM.js} +2 -2
  133. package/dist/lib/{shadow-claw-llm-CKOYzPDp.js.map → shadow-claw-llm-KONyWKZM.js.map} +1 -1
  134. package/dist/lib/{shadow-claw-networking-DYfiUQaH.js → shadow-claw-networking-Diy3JJkc.js} +2 -2
  135. package/dist/lib/{shadow-claw-networking-DYfiUQaH.js.map → shadow-claw-networking-Diy3JJkc.js.map} +1 -1
  136. package/dist/lib/{shadow-claw-notifications-JJlzriuX.js → shadow-claw-notifications-C-upPa-4.js} +2 -2
  137. package/dist/lib/{shadow-claw-notifications-JJlzriuX.js.map → shadow-claw-notifications-C-upPa-4.js.map} +1 -1
  138. package/dist/lib/{shadow-claw-pages-BCo3ihZI.js → shadow-claw-pages-CfAjUKgd.js} +2 -2
  139. package/dist/lib/{shadow-claw-pages-BCo3ihZI.js.map → shadow-claw-pages-CfAjUKgd.js.map} +1 -1
  140. package/dist/lib/{shadow-claw-peerjs-CFNjfrY5.js → shadow-claw-peerjs-t4YibS9s.js} +5 -5
  141. package/dist/lib/{shadow-claw-peerjs-CFNjfrY5.js.map → shadow-claw-peerjs-t4YibS9s.js.map} +1 -1
  142. package/dist/lib/{shadow-claw-settings-BMwne0bh.js → shadow-claw-settings-Cg5V0e9g.js} +2 -2
  143. package/dist/lib/{shadow-claw-settings-BMwne0bh.js.map → shadow-claw-settings-Cg5V0e9g.js.map} +1 -1
  144. package/dist/lib/{shadow-claw-storage-DUY8B9m-.js → shadow-claw-storage-C7tCnsSG.js} +2 -2
  145. package/dist/lib/{shadow-claw-storage-DUY8B9m-.js.map → shadow-claw-storage-C7tCnsSG.js.map} +1 -1
  146. package/dist/lib/{shadow-claw-task-server-yWeoA3eL.js → shadow-claw-task-server-BObsRdf8.js} +2 -2
  147. package/dist/lib/{shadow-claw-task-server-yWeoA3eL.js.map → shadow-claw-task-server-BObsRdf8.js.map} +1 -1
  148. package/dist/lib/{shadow-claw-tasks-Bg0uM15I.js → shadow-claw-tasks-B2EEqrcY.js} +3 -3
  149. package/dist/lib/{shadow-claw-tasks-Bg0uM15I.js.map → shadow-claw-tasks-B2EEqrcY.js.map} +1 -1
  150. package/dist/lib/{shadow-claw-terminal-fyJPppY_.js → shadow-claw-terminal-DSHfO2b9.js} +2 -2
  151. package/dist/lib/{shadow-claw-terminal-fyJPppY_.js.map → shadow-claw-terminal-DSHfO2b9.js.map} +1 -1
  152. package/dist/lib/{shadow-claw-tools-D0T8m3go.js → shadow-claw-tools-DwPBADua.js} +3 -3
  153. package/dist/lib/{shadow-claw-tools-D0T8m3go.js.map → shadow-claw-tools-DwPBADua.js.map} +1 -1
  154. package/dist/lib/{shadow-claw-webvm-CQvzJwKI.js → shadow-claw-webvm-CY4qGaMB.js} +2 -2
  155. package/dist/lib/{shadow-claw-webvm-CQvzJwKI.js.map → shadow-claw-webvm-CY4qGaMB.js.map} +1 -1
  156. package/dist/lib/{sync-web-mcp-registration-BFtG_4kx.js → sync-web-mcp-registration-BiOZvW-R.js} +3 -3
  157. package/dist/lib/{sync-web-mcp-registration-BFtG_4kx.js.map → sync-web-mcp-registration-BiOZvW-R.js.map} +1 -1
  158. package/dist/lib/{system-prompt-bhGRLoL2.js → system-prompt-CxJ3Nx4c.js} +4 -3
  159. package/dist/lib/system-prompt-CxJ3Nx4c.js.map +1 -0
  160. package/dist/public/.well-known/mcp/server-card.json +4 -12
  161. package/dist/public/.well-known/mcp.json +4 -12
  162. package/dist/public/AGENTS.md +3 -1
  163. package/dist/public/README.md +6 -2
  164. package/dist/public/agent.worker.js +1 -1
  165. package/dist/public/{channel-Dk7wl-Av.js → channel-DIpDQekL.js} +1 -1
  166. package/dist/public/{chat-template-BwAnTFKf.js → chat-template-CXKs8lFR.js} +1 -1
  167. package/dist/public/compact-context-BQ2ZXoAc.js +5 -0
  168. package/dist/public/{compact-context-fOTqwKF6.js → compact-context-dHitmPsV.js} +2 -2
  169. package/dist/public/{configure-peer-js-BOV0tR6G.js → configure-peer-js-DV1rqvFX.js} +1 -1
  170. package/dist/public/{create-model-cache-fetch-DSAFjOwc.js → create-model-cache-fetch-B0mSCEk6.js} +1 -1
  171. package/dist/public/{discover-skills-D1sNTy2r.js → discover-skills-BWJB8HUA.js} +1 -1
  172. package/dist/public/docs/architecture/overview.md +1 -1
  173. package/dist/public/docs/example/article/index.html +21 -21
  174. package/dist/public/docs/example/article.html +21 -21
  175. package/dist/public/docs/publishing/index.html +21 -21
  176. package/dist/public/docs/publishing.html +21 -21
  177. package/dist/public/docs/skill-creator/index.html +21 -21
  178. package/dist/public/docs/skill-creator.html +21 -21
  179. package/dist/public/docs/subsystems/attachment-capabilities.md +14 -1
  180. package/dist/public/docs/subsystems/cli.md +95 -51
  181. package/dist/public/docs/subsystems/pages.md +5 -0
  182. package/dist/public/e2e/README.md +1 -1
  183. package/dist/public/{e2e-bridge-Cz95DLlb.js → e2e-bridge-lP2qqiv3.js} +1 -1
  184. package/dist/public/{git-BmMlwIMP.js → git-DjmQ16rm.js} +1 -1
  185. package/dist/public/{iframe-bridge-scripts-Cibg0m6A.js → iframe-bridge-scripts-CO0izGjW.js} +1 -1
  186. package/dist/public/index.html +21 -21
  187. package/dist/public/index.js +1 -1
  188. package/dist/public/{init-control-plane-Cb31yLTY.js → init-control-plane-Ctz7FI8M.js} +1 -1
  189. package/dist/public/{invoke-agent-CN7mSV0Z.js → invoke-agent-C_geruwq.js} +1 -1
  190. package/dist/public/llms.txt +1 -1
  191. package/dist/public/main/index.html +21 -21
  192. package/dist/public/main/memory/index.html +21 -21
  193. package/dist/public/main/memory.html +21 -21
  194. package/dist/public/main.html +21 -21
  195. package/dist/public/{move-group-entry-CXneuNVa.js → move-group-entry-QQ9Hkk54.js} +1 -1
  196. package/dist/public/{orchestrator-Dyylc8IU.js → orchestrator-C1kaTltu.js} +2 -2
  197. package/dist/public/{orchestrator-DBO4NZqd.js → orchestrator-Li1UAsv7.js} +1 -1
  198. package/dist/public/{peerjs-l0jiBoh6.js → peerjs-DbBryE-9.js} +1 -1
  199. package/dist/public/{process-peer-query-param-s-aSP1Rq.js → process-peer-query-param-DQIgr3KL.js} +1 -1
  200. package/dist/public/{process-pending-shared-payloads-BN3GigPT.js → process-pending-shared-payloads-Ctb-TFqB.js} +1 -1
  201. package/dist/public/{process-room-query-param-B2Qe0F0M.js → process-room-query-param-F-XnIVoZ.js} +1 -1
  202. package/dist/public/{push-client-B2LC8Qp9.js → push-client-DRx9Eggz.js} +1 -1
  203. package/dist/public/{rooms-ChCEOvkw.js → rooms-BurBI7is.js} +1 -1
  204. package/dist/public/service-worker/init.js +1 -1
  205. package/dist/public/service-worker.js +1 -1
  206. package/dist/public/{shadow-claw-Br8mWDUx.js → shadow-claw-Bg9AQ5x_.js} +2 -2
  207. package/dist/public/{shadow-claw-accounts-Dm6G7KMP.js → shadow-claw-accounts-B3mjYI0M.js} +1 -1
  208. package/dist/public/{shadow-claw-card-CggS8uSa.js → shadow-claw-card-tcXRS1GF.js} +1 -1
  209. package/dist/public/{shadow-claw-channels-088vhuWO.js → shadow-claw-channels-BiSfLvWv.js} +1 -1
  210. package/dist/public/{shadow-claw-chat-BRwRlq-n.js → shadow-claw-chat-N5jMsXZZ.js} +1 -1
  211. package/dist/public/{shadow-claw-control-plane-rhKACK85.js → shadow-claw-control-plane-DFVe_Xdq.js} +2 -2
  212. package/dist/public/{shadow-claw-conversations-CF_yUfKl.js → shadow-claw-conversations-wAR06_ya.js} +1 -1
  213. package/dist/public/{shadow-claw-empty-state-CkpOSXCS.js → shadow-claw-empty-state-CnPm3NVM.js} +1 -1
  214. package/dist/public/{shadow-claw-file-viewer-DWCejuY3.js → shadow-claw-file-viewer-sZN_FCDW.js} +2 -2
  215. package/dist/public/{shadow-claw-files-L6_ioyzh.js → shadow-claw-files-CnvkCbd4.js} +2 -2
  216. package/dist/public/{shadow-claw-git-DsdkwLqQ.js → shadow-claw-git-BBHfClGk.js} +2 -2
  217. package/dist/public/{shadow-claw-integrations-CSbRTOm3.js → shadow-claw-integrations-DvdBqzRJ.js} +1 -1
  218. package/dist/public/{shadow-claw-llm-BitaeAVc.js → shadow-claw-llm-YfohG519.js} +1 -1
  219. package/dist/public/{shadow-claw-mcp-remote-gSbV5riy.js → shadow-claw-mcp-remote-BAVbf5pi.js} +1 -1
  220. package/dist/public/{shadow-claw-networking-Dn_y6Cl9.js → shadow-claw-networking-CZ4LWPW7.js} +1 -1
  221. package/dist/public/{shadow-claw-notifications-Cj4Lqx8U.js → shadow-claw-notifications-BHwyREkG.js} +1 -1
  222. package/dist/public/{shadow-claw-page-header-DR4OZFt2.js → shadow-claw-page-header-De6Qf6eY.js} +1 -1
  223. package/dist/public/{shadow-claw-page-header-action-button-BnCV_2Kb.js → shadow-claw-page-header-action-button-FSOhTc9z.js} +1 -1
  224. package/dist/public/{shadow-claw-pages-mpDOtNYj.js → shadow-claw-pages-D_oPyDca.js} +1 -1
  225. package/dist/public/{shadow-claw-pdf-viewer-DZ_84qJH.js → shadow-claw-pdf-viewer-CrU4wqRq.js} +1 -1
  226. package/dist/public/{shadow-claw-settings-CfFTYTEy.js → shadow-claw-settings-DkUhvxVr.js} +2 -2
  227. package/dist/public/{shadow-claw-storage-DLmiT4bG.js → shadow-claw-storage-D0o56Tjw.js} +1 -1
  228. package/dist/public/{shadow-claw-task-server-BoMBCsiS.js → shadow-claw-task-server-4rkroO9K.js} +1 -1
  229. package/dist/public/{shadow-claw-tasks-ChEp1j7x.js → shadow-claw-tasks-BdP7lmvu.js} +1 -1
  230. package/dist/public/{shadow-claw-terminal-BaoVbOda.js → shadow-claw-terminal-DVHX7Fsu.js} +1 -1
  231. package/dist/public/{shadow-claw-toast-e8oz7z6Z.js → shadow-claw-toast-B9Y9tSkW.js} +1 -1
  232. package/dist/public/{shadow-claw-tools-BYjUBiJz.js → shadow-claw-tools-BwwY53Lr.js} +1 -1
  233. package/dist/public/{shadow-claw-webvm-xGb13TME.js → shadow-claw-webvm-CXGdkCNM.js} +1 -1
  234. package/dist/public/{sync-web-mcp-registration-CQluj-Kz.js → sync-web-mcp-registration-DVK_IhXZ.js} +1 -1
  235. package/dist/public/{system-prompt-CTJn0tK-.js → system-prompt-BmswoQwF.js} +2 -2
  236. package/dist/public/{workbox-92eae37e.js → workbox-e4022e15.js} +1 -1
  237. package/dist/public/{zip-reader-DN7FB-Q0.js → zip-reader-JHoTbATw.js} +1 -1
  238. package/dist/server.js +5 -5
  239. package/package.json +1 -1
  240. package/dist/cli/chunk-2gZFafgY.js +0 -1
  241. package/dist/cli/chunk-BCjL0JXf.js +0 -1
  242. package/dist/cli/chunk-BNcu1oiT.js +0 -1
  243. package/dist/cli/chunk-BUNoeMKY.js +0 -36
  244. package/dist/cli/chunk-C5ypckWC.js +0 -225
  245. package/dist/cli/chunk-CFxww5Yz.js +0 -1
  246. package/dist/cli/chunk-CGIgtL6R.js +0 -1
  247. package/dist/cli/chunk-CafdvLx-.js +0 -1
  248. package/dist/cli/chunk-Dhap1VwA.js +0 -1
  249. package/dist/cli/chunk-Ds5-K-9o.js +0 -1
  250. package/dist/cli/chunk-DwvavohW.js +0 -1
  251. package/dist/cli/chunk-_a0CkUNS.js +0 -139
  252. package/dist/lib/system-prompt-bhGRLoL2.js.map +0 -1
  253. package/dist/public/compact-context-CX4H8V57.js +0 -5
@@ -1 +1 @@
1
- {"version":3,"file":"shadow-claw-notifications-JJlzriuX.js","names":["shadowClawNotificationsStyles","shadowClawNotificationsTemplate"],"sources":["../../src/components/settings/shadow-claw-notifications/shadow-claw-notifications.ts"],"sourcesContent":["import {\n getCurrentSubscription,\n getPushFetchOptions,\n getPushUrl,\n subscribeToPush,\n unsubscribeFromPush,\n} from \"../../../subsystems/notifications/push-client.js\";\n\nimport { CONFIG_KEYS } from \"../../../config/config.js\";\nimport { getDb } from \"../../../db/db.js\";\nimport { getConfig } from \"../../../db/get-config.js\";\nimport { setConfig } from \"../../../db/set-config.js\";\nimport { showError, showSuccess } from \"../../../ui/toast.js\";\n\nimport \"../../common/shadow-claw-empty-state/shadow-claw-empty-state.js\";\n\nimport ShadowClawElement from \"../../shadow-claw-element.js\";\nimport shadowClawNotificationsStyles from \"./shadow-claw-notifications.css\" with { type: \"css\" };\nimport shadowClawNotificationsTemplate from \"./shadow-claw-notifications.html\" with { type: \"html\" };\n\nconst elementName = \"shadow-claw-notifications\";\n\n/**\n * Settings sub-component for Web Push Notification management:\n * subscribe/unsubscribe toggle, subscription list, send test notification.\n */\nexport class ShadowClawNotifications extends ShadowClawElement {\n static styles = shadowClawNotificationsStyles;\n static template = shadowClawNotificationsTemplate;\n\n public _backendAvailable: boolean = true;\n public _selectedId: number | null = null;\n public _subscribed: boolean = false;\n public _subscriptions: Array<{\n id: number;\n endpoint: string;\n created_at: string;\n }> = [];\n\n constructor() {\n super();\n }\n\n async connectedCallback() {\n const root = this.shadowRoot;\n if (!root) {\n throw new Error(\"shadowRoot not found\");\n }\n\n await this.refreshState();\n await this.loadProxyConfig();\n await this.loadSubscriptions();\n\n this.bindEventListeners();\n }\n\n bindEventListeners() {\n const root = this.shadowRoot;\n if (!root) {\n return;\n }\n\n root\n .querySelector('[data-action=\"toggle-push\"]')\n ?.addEventListener(\"click\", () => this.handleToggle());\n\n root\n .querySelector('[data-action=\"send-notification\"]')\n ?.addEventListener(\"click\", () => this.handleSendNotification());\n\n root\n .querySelector('[data-action=\"delete-subscription\"]')\n ?.addEventListener(\"click\", () => this.handleDeleteSubscription());\n\n root\n .querySelector('[data-action=\"refresh-subscriptions\"]')\n ?.addEventListener(\"click\", () => this.loadSubscriptions());\n\n root\n .querySelector('[data-input=\"push-proxy-url\"]')\n ?.addEventListener(\"change\", (e) => this.handleProxyUrlChange(e));\n }\n\n renderSubscriptionList() {\n const root = this.shadowRoot;\n if (!root) {\n return;\n }\n\n const list = root.querySelector('[data-info=\"subscription-list\"]');\n if (!list) {\n return;\n }\n\n list.replaceChildren();\n\n if (this._subscriptions.length === 0) {\n const message = this._backendAvailable\n ? \"No subscriptions stored.\"\n : \"⚠️ Backend services unavailable (push notification server is not running).\";\n\n const emptyState = document.createElement(\"shadow-claw-empty-state\");\n emptyState.setAttribute(\"compact\", \"\");\n emptyState.setAttribute(\"message\", message);\n list.append(emptyState);\n\n return;\n }\n\n this._subscriptions.forEach((sub) => {\n const shortId = `#${sub.id}`;\n const endpointShort =\n sub.endpoint.length > 60 ? `…${sub.endpoint.slice(-56)}` : sub.endpoint;\n const date = sub.created_at || \"\";\n\n const item = document.createElement(\"div\");\n item.className = `subscription-item${this._selectedId === sub.id ? \" selected\" : \"\"}`;\n item.setAttribute(\"data-sub-id\", String(sub.id));\n item.setAttribute(\"data-endpoint\", sub.endpoint);\n\n const idEl = document.createElement(\"span\");\n idEl.className = \"subscription-id\";\n idEl.title = sub.endpoint;\n idEl.textContent = `${shortId} ${endpointShort}`;\n\n const dateEl = document.createElement(\"span\");\n dateEl.className = \"subscription-date\";\n dateEl.textContent = date;\n\n item.append(idEl, dateEl);\n\n item.addEventListener(\"click\", () => {\n this._selectedId = sub.id;\n this.renderSubscriptionList();\n this.updateActionButtons();\n });\n\n list.append(item);\n });\n }\n\n updateActionButtons() {\n const root = this.shadowRoot;\n if (!root) {\n return;\n }\n\n const hasSelection = this._selectedId != null;\n const sendBtn = root.querySelector(\n '[data-action=\"send-notification\"]',\n ) as HTMLButtonElement | null;\n const deleteBtn = root.querySelector(\n '[data-action=\"delete-subscription\"]',\n ) as HTMLButtonElement | null;\n\n if (sendBtn) {\n sendBtn.disabled = !hasSelection;\n }\n\n if (deleteBtn) {\n deleteBtn.disabled = !hasSelection;\n }\n }\n\n updateToggle() {\n const root = this.shadowRoot;\n if (!root) {\n return;\n }\n\n const toggle = root.querySelector('[data-action=\"toggle-push\"]');\n const status = root.querySelector('[data-info=\"subscription-status\"]');\n\n if (toggle) {\n toggle.setAttribute(\"aria-checked\", String(this._subscribed));\n }\n\n if (status) {\n status.textContent = this._subscribed ? \"Enabled\" : \"Disabled\";\n }\n }\n\n async handleDeleteSubscription() {\n if (this._selectedId == null) {\n return;\n }\n\n try {\n const url = await getPushUrl(`/push/subscription/${this._selectedId}`);\n const res = await fetch(\n url,\n getPushFetchOptions(url, {\n method: \"DELETE\",\n }),\n );\n\n if (res.ok) {\n showSuccess(\"Subscription deleted.\");\n await this.loadSubscriptions();\n } else {\n showError(\"Failed to delete subscription.\");\n }\n } catch (err) {\n showError(`Delete failed: ${(err as Error).message}`);\n }\n }\n\n async handleProxyUrlChange(e: Event) {\n const input = e.target as HTMLInputElement;\n const value = input.value.trim();\n\n try {\n const db = await getDb();\n await setConfig(db, CONFIG_KEYS.PUSH_PROXY_URL, value);\n showSuccess(\"Push proxy URL updated.\");\n await this.loadSubscriptions();\n } catch (err) {\n showError(`Failed to save proxy URL: ${(err as Error).message}`);\n }\n }\n\n async handleSendNotification() {\n if (this._selectedId == null) {\n return;\n }\n\n const root = this.shadowRoot;\n if (!root) {\n return;\n }\n\n const input = root.querySelector(\n '[data-input=\"notification-text\"]',\n ) as HTMLInputElement | null;\n const payload = input?.value?.trim() || \"Test notification from ShadowClaw\";\n\n const sub = this._subscriptions.find((s) => s.id === this._selectedId);\n if (!sub) {\n return;\n }\n\n try {\n const url = await getPushUrl(\"/push/send\");\n const res = await fetch(\n url,\n getPushFetchOptions(url, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ endpoint: sub.endpoint, payload }),\n }),\n );\n\n if (res.ok) {\n showSuccess(\"Notification sent!\");\n } else if (res.status === 410) {\n showError(\"Subscription expired and was removed.\");\n await this.loadSubscriptions();\n } else {\n const data = await res.json().catch(() => ({}));\n showError(`Failed to send: ${data.error || res.statusText}`);\n }\n } catch (err) {\n showError(`Send failed: ${(err as Error).message}`);\n }\n }\n\n async handleToggle() {\n try {\n if (this._subscribed) {\n await unsubscribeFromPush();\n this._subscribed = false;\n showSuccess(\"Push notifications disabled.\");\n } else {\n await subscribeToPush();\n this._subscribed = true;\n showSuccess(\"Push notifications enabled!\");\n }\n\n this.updateToggle();\n await this.loadSubscriptions();\n } catch (err) {\n showError(`Push notification error: ${(err as Error).message}`);\n }\n }\n\n async loadProxyConfig() {\n const root = this.shadowRoot;\n if (!root) {\n return;\n }\n\n const db = await getDb();\n const proxyUrl = await getConfig(db, CONFIG_KEYS.PUSH_PROXY_URL);\n const input = root.querySelector(\n '[data-input=\"push-proxy-url\"]',\n ) as HTMLInputElement | null;\n\n if (input) {\n input.value = proxyUrl || \"\";\n }\n }\n\n /**\n * Load all stored subscriptions from the server.\n */\n async loadSubscriptions() {\n const root = this.shadowRoot;\n if (!root) {\n return;\n }\n\n try {\n const isStaticHost =\n typeof location !== \"undefined\" &&\n (location.protocol === \"file:\" ||\n location.hostname.endsWith(\".github.io\") ||\n location.hostname.endsWith(\".pages.dev\"));\n\n const db = await getDb();\n const proxyUrl =\n (await getConfig(db, CONFIG_KEYS.PUSH_PROXY_URL)) ||\n (typeof localStorage !== \"undefined\"\n ? localStorage.getItem(CONFIG_KEYS.PUSH_PROXY_URL)\n : null);\n\n if (isStaticHost && !proxyUrl) {\n this._subscriptions = [];\n this._backendAvailable = false;\n this._selectedId = null;\n this.renderSubscriptionList();\n this.updateActionButtons();\n return;\n }\n\n const url = await getPushUrl(\"/push/subscriptions\");\n const res = await fetch(url, getPushFetchOptions(url));\n\n if (!res.ok) {\n this._subscriptions = [];\n this._backendAvailable = false;\n this._selectedId = null;\n this.renderSubscriptionList();\n this.updateActionButtons();\n return;\n }\n\n this._subscriptions = await res.json();\n this._backendAvailable = true;\n } catch {\n this._subscriptions = [];\n this._backendAvailable = false;\n }\n\n this._selectedId = null;\n this.renderSubscriptionList();\n this.updateActionButtons();\n }\n\n /**\n * Check current subscription state and update the toggle.\n */\n async refreshState() {\n try {\n const sub = await getCurrentSubscription();\n this._subscribed = !!sub;\n this.updateToggle();\n } catch {\n // Service worker may not be ready\n this._subscribed = false;\n this.updateToggle();\n }\n }\n}\n\n/**\n * Encode a string safe for use as an HTML attribute value.\n */\ncustomElements.define(elementName, ShadowClawNotifications);\n"],"mappings":"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"}
1
+ {"version":3,"file":"shadow-claw-notifications-C-upPa-4.js","names":["shadowClawNotificationsStyles","shadowClawNotificationsTemplate"],"sources":["../../src/components/settings/shadow-claw-notifications/shadow-claw-notifications.ts"],"sourcesContent":["import {\n getCurrentSubscription,\n getPushFetchOptions,\n getPushUrl,\n subscribeToPush,\n unsubscribeFromPush,\n} from \"../../../subsystems/notifications/push-client.js\";\n\nimport { CONFIG_KEYS } from \"../../../config/config.js\";\nimport { getDb } from \"../../../db/db.js\";\nimport { getConfig } from \"../../../db/get-config.js\";\nimport { setConfig } from \"../../../db/set-config.js\";\nimport { showError, showSuccess } from \"../../../ui/toast.js\";\n\nimport \"../../common/shadow-claw-empty-state/shadow-claw-empty-state.js\";\n\nimport ShadowClawElement from \"../../shadow-claw-element.js\";\nimport shadowClawNotificationsStyles from \"./shadow-claw-notifications.css\" with { type: \"css\" };\nimport shadowClawNotificationsTemplate from \"./shadow-claw-notifications.html\" with { type: \"html\" };\n\nconst elementName = \"shadow-claw-notifications\";\n\n/**\n * Settings sub-component for Web Push Notification management:\n * subscribe/unsubscribe toggle, subscription list, send test notification.\n */\nexport class ShadowClawNotifications extends ShadowClawElement {\n static styles = shadowClawNotificationsStyles;\n static template = shadowClawNotificationsTemplate;\n\n public _backendAvailable: boolean = true;\n public _selectedId: number | null = null;\n public _subscribed: boolean = false;\n public _subscriptions: Array<{\n id: number;\n endpoint: string;\n created_at: string;\n }> = [];\n\n constructor() {\n super();\n }\n\n async connectedCallback() {\n const root = this.shadowRoot;\n if (!root) {\n throw new Error(\"shadowRoot not found\");\n }\n\n await this.refreshState();\n await this.loadProxyConfig();\n await this.loadSubscriptions();\n\n this.bindEventListeners();\n }\n\n bindEventListeners() {\n const root = this.shadowRoot;\n if (!root) {\n return;\n }\n\n root\n .querySelector('[data-action=\"toggle-push\"]')\n ?.addEventListener(\"click\", () => this.handleToggle());\n\n root\n .querySelector('[data-action=\"send-notification\"]')\n ?.addEventListener(\"click\", () => this.handleSendNotification());\n\n root\n .querySelector('[data-action=\"delete-subscription\"]')\n ?.addEventListener(\"click\", () => this.handleDeleteSubscription());\n\n root\n .querySelector('[data-action=\"refresh-subscriptions\"]')\n ?.addEventListener(\"click\", () => this.loadSubscriptions());\n\n root\n .querySelector('[data-input=\"push-proxy-url\"]')\n ?.addEventListener(\"change\", (e) => this.handleProxyUrlChange(e));\n }\n\n renderSubscriptionList() {\n const root = this.shadowRoot;\n if (!root) {\n return;\n }\n\n const list = root.querySelector('[data-info=\"subscription-list\"]');\n if (!list) {\n return;\n }\n\n list.replaceChildren();\n\n if (this._subscriptions.length === 0) {\n const message = this._backendAvailable\n ? \"No subscriptions stored.\"\n : \"⚠️ Backend services unavailable (push notification server is not running).\";\n\n const emptyState = document.createElement(\"shadow-claw-empty-state\");\n emptyState.setAttribute(\"compact\", \"\");\n emptyState.setAttribute(\"message\", message);\n list.append(emptyState);\n\n return;\n }\n\n this._subscriptions.forEach((sub) => {\n const shortId = `#${sub.id}`;\n const endpointShort =\n sub.endpoint.length > 60 ? `…${sub.endpoint.slice(-56)}` : sub.endpoint;\n const date = sub.created_at || \"\";\n\n const item = document.createElement(\"div\");\n item.className = `subscription-item${this._selectedId === sub.id ? \" selected\" : \"\"}`;\n item.setAttribute(\"data-sub-id\", String(sub.id));\n item.setAttribute(\"data-endpoint\", sub.endpoint);\n\n const idEl = document.createElement(\"span\");\n idEl.className = \"subscription-id\";\n idEl.title = sub.endpoint;\n idEl.textContent = `${shortId} ${endpointShort}`;\n\n const dateEl = document.createElement(\"span\");\n dateEl.className = \"subscription-date\";\n dateEl.textContent = date;\n\n item.append(idEl, dateEl);\n\n item.addEventListener(\"click\", () => {\n this._selectedId = sub.id;\n this.renderSubscriptionList();\n this.updateActionButtons();\n });\n\n list.append(item);\n });\n }\n\n updateActionButtons() {\n const root = this.shadowRoot;\n if (!root) {\n return;\n }\n\n const hasSelection = this._selectedId != null;\n const sendBtn = root.querySelector(\n '[data-action=\"send-notification\"]',\n ) as HTMLButtonElement | null;\n const deleteBtn = root.querySelector(\n '[data-action=\"delete-subscription\"]',\n ) as HTMLButtonElement | null;\n\n if (sendBtn) {\n sendBtn.disabled = !hasSelection;\n }\n\n if (deleteBtn) {\n deleteBtn.disabled = !hasSelection;\n }\n }\n\n updateToggle() {\n const root = this.shadowRoot;\n if (!root) {\n return;\n }\n\n const toggle = root.querySelector('[data-action=\"toggle-push\"]');\n const status = root.querySelector('[data-info=\"subscription-status\"]');\n\n if (toggle) {\n toggle.setAttribute(\"aria-checked\", String(this._subscribed));\n }\n\n if (status) {\n status.textContent = this._subscribed ? \"Enabled\" : \"Disabled\";\n }\n }\n\n async handleDeleteSubscription() {\n if (this._selectedId == null) {\n return;\n }\n\n try {\n const url = await getPushUrl(`/push/subscription/${this._selectedId}`);\n const res = await fetch(\n url,\n getPushFetchOptions(url, {\n method: \"DELETE\",\n }),\n );\n\n if (res.ok) {\n showSuccess(\"Subscription deleted.\");\n await this.loadSubscriptions();\n } else {\n showError(\"Failed to delete subscription.\");\n }\n } catch (err) {\n showError(`Delete failed: ${(err as Error).message}`);\n }\n }\n\n async handleProxyUrlChange(e: Event) {\n const input = e.target as HTMLInputElement;\n const value = input.value.trim();\n\n try {\n const db = await getDb();\n await setConfig(db, CONFIG_KEYS.PUSH_PROXY_URL, value);\n showSuccess(\"Push proxy URL updated.\");\n await this.loadSubscriptions();\n } catch (err) {\n showError(`Failed to save proxy URL: ${(err as Error).message}`);\n }\n }\n\n async handleSendNotification() {\n if (this._selectedId == null) {\n return;\n }\n\n const root = this.shadowRoot;\n if (!root) {\n return;\n }\n\n const input = root.querySelector(\n '[data-input=\"notification-text\"]',\n ) as HTMLInputElement | null;\n const payload = input?.value?.trim() || \"Test notification from ShadowClaw\";\n\n const sub = this._subscriptions.find((s) => s.id === this._selectedId);\n if (!sub) {\n return;\n }\n\n try {\n const url = await getPushUrl(\"/push/send\");\n const res = await fetch(\n url,\n getPushFetchOptions(url, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ endpoint: sub.endpoint, payload }),\n }),\n );\n\n if (res.ok) {\n showSuccess(\"Notification sent!\");\n } else if (res.status === 410) {\n showError(\"Subscription expired and was removed.\");\n await this.loadSubscriptions();\n } else {\n const data = await res.json().catch(() => ({}));\n showError(`Failed to send: ${data.error || res.statusText}`);\n }\n } catch (err) {\n showError(`Send failed: ${(err as Error).message}`);\n }\n }\n\n async handleToggle() {\n try {\n if (this._subscribed) {\n await unsubscribeFromPush();\n this._subscribed = false;\n showSuccess(\"Push notifications disabled.\");\n } else {\n await subscribeToPush();\n this._subscribed = true;\n showSuccess(\"Push notifications enabled!\");\n }\n\n this.updateToggle();\n await this.loadSubscriptions();\n } catch (err) {\n showError(`Push notification error: ${(err as Error).message}`);\n }\n }\n\n async loadProxyConfig() {\n const root = this.shadowRoot;\n if (!root) {\n return;\n }\n\n const db = await getDb();\n const proxyUrl = await getConfig(db, CONFIG_KEYS.PUSH_PROXY_URL);\n const input = root.querySelector(\n '[data-input=\"push-proxy-url\"]',\n ) as HTMLInputElement | null;\n\n if (input) {\n input.value = proxyUrl || \"\";\n }\n }\n\n /**\n * Load all stored subscriptions from the server.\n */\n async loadSubscriptions() {\n const root = this.shadowRoot;\n if (!root) {\n return;\n }\n\n try {\n const isStaticHost =\n typeof location !== \"undefined\" &&\n (location.protocol === \"file:\" ||\n location.hostname.endsWith(\".github.io\") ||\n location.hostname.endsWith(\".pages.dev\"));\n\n const db = await getDb();\n const proxyUrl =\n (await getConfig(db, CONFIG_KEYS.PUSH_PROXY_URL)) ||\n (typeof localStorage !== \"undefined\"\n ? localStorage.getItem(CONFIG_KEYS.PUSH_PROXY_URL)\n : null);\n\n if (isStaticHost && !proxyUrl) {\n this._subscriptions = [];\n this._backendAvailable = false;\n this._selectedId = null;\n this.renderSubscriptionList();\n this.updateActionButtons();\n return;\n }\n\n const url = await getPushUrl(\"/push/subscriptions\");\n const res = await fetch(url, getPushFetchOptions(url));\n\n if (!res.ok) {\n this._subscriptions = [];\n this._backendAvailable = false;\n this._selectedId = null;\n this.renderSubscriptionList();\n this.updateActionButtons();\n return;\n }\n\n this._subscriptions = await res.json();\n this._backendAvailable = true;\n } catch {\n this._subscriptions = [];\n this._backendAvailable = false;\n }\n\n this._selectedId = null;\n this.renderSubscriptionList();\n this.updateActionButtons();\n }\n\n /**\n * Check current subscription state and update the toggle.\n */\n async refreshState() {\n try {\n const sub = await getCurrentSubscription();\n this._subscribed = !!sub;\n this.updateToggle();\n } catch {\n // Service worker may not be ready\n this._subscribed = false;\n this.updateToggle();\n }\n }\n}\n\n/**\n * Encode a string safe for use as an HTML attribute value.\n */\ncustomElements.define(elementName, ShadowClawNotifications);\n"],"mappings":"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"}
@@ -8,7 +8,7 @@ import { c as isFeedRoute, f as resolveHrefAgainstRoute, l as isPossibleAppRoute
8
8
  import { d as readGroupFile, o as writeGroupFile, t as toolsStore } from "./tools-B8OJ4sMF.js";
9
9
  import { t as readGroupFileBytes } from "./read-group-file-bytes-UQIk1eJG.js";
10
10
  import { t as fileViewerStore } from "./file-viewer-DOfvX6yy.js";
11
- import { a as getStaticPageContent, i as getSiteConfigSeoSettings, t as orchestratorStore } from "./orchestrator-CCARkxQC.js";
11
+ import { a as getStaticPageContent, i as getSiteConfigSeoSettings, t as orchestratorStore } from "./orchestrator-cRBe3lhq.js";
12
12
  import { d as getIframeCsp, f as getIframeSandboxPolicy, h as loadApprovedCustomElementScript, m as isApprovedScript, n as setSanitizedHtml, p as hasApprovedCustomElement, r as setTrustedSrcdoc, t as sanitizeSrcdocHtml, u as getApprovedCustomElementScriptDescriptors, w as isAllowedCustomElement } from "./trusted-types-HwsGS5Nj.js";
13
13
  import { getNamespacedItem, removeNamespacedItem, setNamespacedItem } from "./utils/namespaced-storage.js";
14
14
  import { a as showSuccess, r as showError, s as showWarning } from "./toast-Ck7OIKDf.js";
@@ -2764,4 +2764,4 @@ if (!customElements.get(elementName)) customElements.define(elementName, ShadowC
2764
2764
 
2765
2765
  //#endregion
2766
2766
  export { ShadowClawPages as t };
2767
- //# sourceMappingURL=shadow-claw-pages-BCo3ihZI.js.map
2767
+ //# sourceMappingURL=shadow-claw-pages-CfAjUKgd.js.map