shadow-claw 1.40.1 → 1.41.1

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 (325) hide show
  1. package/.well-known/mcp/server-card.json +1 -1
  2. package/.well-known/mcp.json +1 -1
  3. package/README.md +2 -1
  4. package/dist/cli/build/build.js +1 -1
  5. package/dist/cli/{chunk-Bfz2NYgD.js → chunk-0IeC97mU.js} +7 -7
  6. package/dist/cli/chunk-3oLxlxPn.js +1 -0
  7. package/dist/cli/chunk-63s8NnIS.js +93 -0
  8. package/dist/cli/{chunk-BXg4-9Rq2.js → chunk-8CrZyP1b2.js} +1 -1
  9. package/dist/cli/{chunk-BP5Hg6CM.js → chunk-B--ueArB.js} +1 -1
  10. package/dist/cli/chunk-BATVgkFY.js +17 -0
  11. package/dist/cli/chunk-BIh7rXlJ2.js +1 -0
  12. package/dist/cli/{chunk-Drr0VSGA2.js → chunk-BKnTOLLS2.js} +1 -1
  13. package/dist/cli/{chunk-C5PuRV08.js → chunk-BLMC1Bxv.js} +1 -1
  14. package/dist/cli/{chunk-B2tNSlFy2.js → chunk-BOigzz2U2.js} +1 -1
  15. package/dist/cli/{chunk-DOf3DZdR.js → chunk-BOzn335y.js} +1 -1
  16. package/dist/cli/chunk-BjOeVLb42.js +1 -0
  17. package/dist/cli/{chunk-DqTx0rRp2.js → chunk-Bjqh5_SU2.js} +1 -1
  18. package/dist/cli/chunk-BqWBd_jF2.js +1 -0
  19. package/dist/cli/{chunk-DIbSoQmd2.js → chunk-C6FFByBU2.js} +2 -2
  20. package/dist/cli/{chunk-Drq18VZe.js → chunk-C9-aL3rF.js} +1 -1
  21. package/dist/cli/{chunk-BUhqHeEA2.js → chunk-C9czddEh2.js} +2 -2
  22. package/dist/cli/chunk-CCx8WOwz2.js +1 -0
  23. package/dist/cli/{chunk-BkMSjVJb.js → chunk-CK6ejMig.js} +1 -1
  24. package/dist/cli/chunk-CUUERioR2.js +1 -0
  25. package/dist/cli/chunk-CXAobnJd.js +1 -0
  26. package/dist/cli/chunk-CY1X0pOF2.js +1 -0
  27. package/dist/cli/chunk-CZvvgLVv.js +1 -0
  28. package/dist/cli/chunk-CbcwbfJB.js +1 -0
  29. package/dist/cli/{chunk-quilB3TV2.js → chunk-Ci9OJGcd2.js} +1 -1
  30. package/dist/cli/chunk-Cj9wl0qx.js +1 -0
  31. package/dist/cli/{chunk-3gRhOmGo2.js → chunk-CjJsVrKI2.js} +1 -1
  32. package/dist/cli/{chunk-CmEfzm-_.js → chunk-ClPZ4Rea.js} +1 -1
  33. package/dist/cli/chunk-Cmdxoq9q.js +13 -0
  34. package/dist/cli/{chunk-WMPAfIvV2.js → chunk-DHJCGRuG2.js} +1 -1
  35. package/dist/cli/{chunk-C7Y2xIk4.js → chunk-DKVkYTV9.js} +1 -1
  36. package/dist/cli/chunk-DR2XtWRo.js +1 -0
  37. package/dist/cli/{chunk-BiVJVh_S.js → chunk-DUlIqkaX.js} +7 -7
  38. package/dist/cli/{chunk-CkpueGaZ2.js → chunk-DjWle8FF2.js} +1 -1
  39. package/dist/cli/{chunk-CSvHmNOk.js → chunk-DmRXVLfy.js} +1 -1
  40. package/dist/cli/{chunk-BT1xXZn72.js → chunk-HlSiTC-u2.js} +1 -1
  41. package/dist/cli/{chunk-da0bsiOn.js → chunk-P4JSeFBI.js} +1 -1
  42. package/dist/cli/chunk-UcNbHaRQ.js +1 -0
  43. package/dist/cli/{chunk-BXFHFbEd.js → chunk-UweLmfQS.js} +1 -1
  44. package/dist/cli/{chunk-CGiXWHTi2.js → chunk-gwpxl-0W2.js} +1 -1
  45. package/dist/cli/{chunk-NH8koEis2.js → chunk-nmDhxXH_2.js} +1 -1
  46. package/dist/cli/chunk-p0n_c-I2.js +1 -0
  47. package/dist/cli/{chunk-D7xP72La.js → chunk-q7r4FosZ.js} +1 -1
  48. package/dist/cli/cli.js +1 -1
  49. package/dist/cli/prerender/dsd-shell/prerender-dsd-shell.js +1 -1
  50. package/dist/electron/main.cjs +1 -1
  51. package/dist/headless-agent.js +1 -1
  52. package/dist/lib/{app-routes-BAEMLu9g.js → app-routes-CKkiX12g.js} +7 -2
  53. package/dist/lib/app-routes-CKkiX12g.js.map +1 -0
  54. package/dist/lib/components/index.js +26 -26
  55. package/dist/lib/components/settings/shadow-claw-accounts.js +1 -1
  56. package/dist/lib/components/settings/shadow-claw-channel-config.js +1 -1
  57. package/dist/lib/components/settings/shadow-claw-control-plane.js +1 -1
  58. package/dist/lib/components/settings/shadow-claw-git.js +1 -1
  59. package/dist/lib/components/settings/shadow-claw-integrations.js +1 -1
  60. package/dist/lib/components/settings/shadow-claw-llm.js +1 -1
  61. package/dist/lib/components/settings/shadow-claw-mcp-remote.js +1 -1
  62. package/dist/lib/components/settings/shadow-claw-networking.js +1 -1
  63. package/dist/lib/components/settings/shadow-claw-notifications.js +1 -1
  64. package/dist/lib/components/settings/shadow-claw-peerjs.js +1 -1
  65. package/dist/lib/components/settings/shadow-claw-storage.js +1 -1
  66. package/dist/lib/components/settings/shadow-claw-task-server.js +1 -1
  67. package/dist/lib/components/settings/shadow-claw-webvm.js +1 -1
  68. package/dist/lib/components/shadow-claw/utils/syncSlottedSidebarActiveLinks.d.ts +10 -0
  69. package/dist/lib/components/shadow-claw-a2ui.js +1 -1
  70. package/dist/lib/components/shadow-claw-accounts.js +1 -1
  71. package/dist/lib/components/shadow-claw-channel-config.js +1 -1
  72. package/dist/lib/components/shadow-claw-channels.js +1 -1
  73. package/dist/lib/components/shadow-claw-chat.js +1 -1
  74. package/dist/lib/components/shadow-claw-control-plane.js +1 -1
  75. package/dist/lib/components/shadow-claw-conversations.js +1 -1
  76. package/dist/lib/components/shadow-claw-file-viewer.js +1 -1
  77. package/dist/lib/components/shadow-claw-files.js +1 -1
  78. package/dist/lib/components/shadow-claw-git.js +1 -1
  79. package/dist/lib/components/shadow-claw-integrations.js +1 -1
  80. package/dist/lib/components/shadow-claw-llm.js +1 -1
  81. package/dist/lib/components/shadow-claw-mcp-remote.js +1 -1
  82. package/dist/lib/components/shadow-claw-networking.js +1 -1
  83. package/dist/lib/components/shadow-claw-notifications.js +1 -1
  84. package/dist/lib/components/shadow-claw-page-header.js +1 -1
  85. package/dist/lib/components/shadow-claw-pages.js +1 -1
  86. package/dist/lib/components/shadow-claw-peerjs.js +1 -1
  87. package/dist/lib/components/shadow-claw-settings.js +1 -1
  88. package/dist/lib/components/shadow-claw-storage.js +1 -1
  89. package/dist/lib/components/shadow-claw-task-server.js +1 -1
  90. package/dist/lib/components/shadow-claw-tasks.js +1 -1
  91. package/dist/lib/components/shadow-claw-terminal.js +1 -1
  92. package/dist/lib/components/shadow-claw-tools.js +1 -1
  93. package/dist/lib/components/shadow-claw-webvm.js +1 -1
  94. package/dist/lib/components/shadow-claw.js +1 -1
  95. package/dist/lib/{config-CPHDmyTx.js → config-DZkF9LiO.js} +2 -2
  96. package/dist/lib/{config-CPHDmyTx.js.map → config-DZkF9LiO.js.map} +1 -1
  97. package/dist/lib/{configurePeerJs-BsJoycQd.js → configurePeerJs-B3IE9BY2.js} +3 -3
  98. package/dist/lib/{configurePeerJs-BsJoycQd.js.map → configurePeerJs-B3IE9BY2.js.map} +1 -1
  99. package/dist/lib/{connections-BdIru7bF.js → connections-CalJGWvZ.js} +2 -2
  100. package/dist/lib/{connections-BdIru7bF.js.map → connections-CalJGWvZ.js.map} +1 -1
  101. package/dist/lib/{downloadGroupFile-Dn0KsMlV.js → downloadGroupFile-DDE1fIhJ.js} +2 -2
  102. package/dist/lib/{downloadGroupFile-Dn0KsMlV.js.map → downloadGroupFile-DDE1fIhJ.js.map} +1 -1
  103. package/dist/lib/{file-viewer-BYrXXu-X.js → file-viewer-Bll2EoGc.js} +5 -5
  104. package/dist/lib/{file-viewer-BYrXXu-X.js.map → file-viewer-Bll2EoGc.js.map} +1 -1
  105. package/dist/lib/{getGroupDir-DF-RZO8X.js → getGroupDir-MHv7Lvmp.js} +4 -4
  106. package/dist/lib/{getGroupDir-DF-RZO8X.js.map → getGroupDir-MHv7Lvmp.js.map} +1 -1
  107. package/dist/lib/{git-s_0cgKm1.js → git-Bv_M3dgw.js} +3 -3
  108. package/dist/lib/{git-s_0cgKm1.js.map → git-Bv_M3dgw.js.map} +1 -1
  109. package/dist/lib/{iframe-sanitizer-DFdda1jJ.js → iframe-sanitizer-C7ZGDjEI.js} +2 -2
  110. package/dist/lib/{iframe-sanitizer-DFdda1jJ.js.map → iframe-sanitizer-C7ZGDjEI.js.map} +1 -1
  111. package/dist/lib/{iframe-storage-proxy-qrhZmQyO.js → iframe-storage-proxy-CR8ZYHPd.js} +2 -2
  112. package/dist/lib/{iframe-storage-proxy-qrhZmQyO.js.map → iframe-storage-proxy-CR8ZYHPd.js.map} +1 -1
  113. package/dist/lib/index.js +27 -27
  114. package/dist/lib/{initChatSplitResize-DuNlwCuI.js → initChatSplitResize-DiKTI-wk.js} +2 -2
  115. package/dist/lib/{initChatSplitResize-DuNlwCuI.js.map → initChatSplitResize-DiKTI-wk.js.map} +1 -1
  116. package/dist/lib/{initControlPlane-D4UZ4EhV.js → initControlPlane-CzjtQ4aM.js} +15 -15
  117. package/dist/lib/{initControlPlane-D4UZ4EhV.js.map → initControlPlane-CzjtQ4aM.js.map} +1 -1
  118. package/dist/lib/{markdown-CRRwbN9h.js → markdown-k8wA9LKy.js} +4 -4
  119. package/dist/lib/{markdown-CRRwbN9h.js.map → markdown-k8wA9LKy.js.map} +1 -1
  120. package/dist/lib/{mcp-reconnect-COdZ-cea.js → mcp-reconnect-CGIdfZnS.js} +2 -2
  121. package/dist/lib/{mcp-reconnect-COdZ-cea.js.map → mcp-reconnect-CGIdfZnS.js.map} +1 -1
  122. package/dist/lib/{memoryStorage-BsMe2FOQ.js → memoryStorage-DL-Bo3dh.js} +2 -2
  123. package/dist/lib/{memoryStorage-BsMe2FOQ.js.map → memoryStorage-DL-Bo3dh.js.map} +1 -1
  124. package/dist/lib/{orchestrator-D9f5fDCb.js → orchestrator-DKHCoikY.js} +11 -11
  125. package/dist/lib/{orchestrator-D9f5fDCb.js.map → orchestrator-DKHCoikY.js.map} +1 -1
  126. package/dist/lib/{orchestrator-CMN43L0F.js → orchestrator-Dn1ZOz9B.js} +12 -12
  127. package/dist/lib/{orchestrator-CMN43L0F.js.map → orchestrator-Dn1ZOz9B.js.map} +1 -1
  128. package/dist/lib/{peerjs-6u8KtenE.js → peerjs-BK41iBvP.js} +7 -7
  129. package/dist/lib/{peerjs-6u8KtenE.js.map → peerjs-BK41iBvP.js.map} +1 -1
  130. package/dist/lib/{push-client-DCnB2-OU.js → push-client-DKgVFD2Z.js} +3 -3
  131. package/dist/lib/{push-client-DCnB2-OU.js.map → push-client-DKgVFD2Z.js.map} +1 -1
  132. package/dist/lib/{readGroupFileBytes-nKNJ6sbl.js → readGroupFileBytes-CgU_UfGv.js} +2 -2
  133. package/dist/lib/{readGroupFileBytes-nKNJ6sbl.js.map → readGroupFileBytes-CgU_UfGv.js.map} +1 -1
  134. package/dist/lib/{shadow-claw-4x3LqlII.js → shadow-claw-CtCj5Rn_.js} +121 -16
  135. package/dist/lib/shadow-claw-CtCj5Rn_.js.map +1 -0
  136. package/dist/lib/{shadow-claw-a2ui-Dipe8nY2.js → shadow-claw-a2ui-CvK5w940.js} +2 -2
  137. package/dist/lib/{shadow-claw-a2ui-Dipe8nY2.js.map → shadow-claw-a2ui-CvK5w940.js.map} +1 -1
  138. package/dist/lib/{shadow-claw-accounts-BgCkz3Zv.js → shadow-claw-accounts-Br3XdHro.js} +3 -3
  139. package/dist/lib/{shadow-claw-accounts-BgCkz3Zv.js.map → shadow-claw-accounts-Br3XdHro.js.map} +1 -1
  140. package/dist/lib/{shadow-claw-channel-config-CIm_Bxd2.js → shadow-claw-channel-config-Da2dN19M.js} +3 -3
  141. package/dist/lib/{shadow-claw-channel-config-CIm_Bxd2.js.map → shadow-claw-channel-config-Da2dN19M.js.map} +1 -1
  142. package/dist/lib/{shadow-claw-channels-CaceK52s.js → shadow-claw-channels-BofYHgz8.js} +3 -3
  143. package/dist/lib/{shadow-claw-channels-CaceK52s.js.map → shadow-claw-channels-BofYHgz8.js.map} +1 -1
  144. package/dist/lib/{shadow-claw-chat-BD18-mAR.js → shadow-claw-chat-Dw32DPV2.js} +12 -12
  145. package/dist/lib/{shadow-claw-chat-BD18-mAR.js.map → shadow-claw-chat-Dw32DPV2.js.map} +1 -1
  146. package/dist/lib/{shadow-claw-control-plane-U6LsfRPm.js → shadow-claw-control-plane-CwFotFDh.js} +7 -7
  147. package/dist/lib/{shadow-claw-control-plane-U6LsfRPm.js.map → shadow-claw-control-plane-CwFotFDh.js.map} +1 -1
  148. package/dist/lib/{shadow-claw-conversations-CDsza_oB.js → shadow-claw-conversations-0UXge23k.js} +5 -5
  149. package/dist/lib/{shadow-claw-conversations-CDsza_oB.js.map → shadow-claw-conversations-0UXge23k.js.map} +1 -1
  150. package/dist/lib/{shadow-claw-file-viewer-CuDhkVcL.js → shadow-claw-file-viewer-CAsn9NxH.js} +10 -10
  151. package/dist/lib/{shadow-claw-file-viewer-CuDhkVcL.js.map → shadow-claw-file-viewer-CAsn9NxH.js.map} +1 -1
  152. package/dist/lib/{shadow-claw-files-BI0P3m8a.js → shadow-claw-files-xGGhsHNH.js} +9 -9
  153. package/dist/lib/{shadow-claw-files-BI0P3m8a.js.map → shadow-claw-files-xGGhsHNH.js.map} +1 -1
  154. package/dist/lib/{shadow-claw-git-xRApLEMN.js → shadow-claw-git-B606hcMU.js} +6 -6
  155. package/dist/lib/{shadow-claw-git-xRApLEMN.js.map → shadow-claw-git-B606hcMU.js.map} +1 -1
  156. package/dist/lib/{shadow-claw-integrations-B2e1Nfg1.js → shadow-claw-integrations-Bwq5cba1.js} +4 -4
  157. package/dist/lib/{shadow-claw-integrations-B2e1Nfg1.js.map → shadow-claw-integrations-Bwq5cba1.js.map} +1 -1
  158. package/dist/lib/{shadow-claw-llm-Bc2mWuGb.js → shadow-claw-llm-BgpcMBIy.js} +6 -6
  159. package/dist/lib/{shadow-claw-llm-Bc2mWuGb.js.map → shadow-claw-llm-BgpcMBIy.js.map} +1 -1
  160. package/dist/lib/{shadow-claw-mcp-remote-D_Bh3aeC.js → shadow-claw-mcp-remote-DvQCA-Bk.js} +4 -4
  161. package/dist/lib/{shadow-claw-mcp-remote-D_Bh3aeC.js.map → shadow-claw-mcp-remote-DvQCA-Bk.js.map} +1 -1
  162. package/dist/lib/{shadow-claw-networking-F5W3n5ci.js → shadow-claw-networking-Cxvf9c7E.js} +2 -2
  163. package/dist/lib/{shadow-claw-networking-F5W3n5ci.js.map → shadow-claw-networking-Cxvf9c7E.js.map} +1 -1
  164. package/dist/lib/{shadow-claw-notifications-lvMt9WJ1.js → shadow-claw-notifications-CGVcFYBy.js} +3 -3
  165. package/dist/lib/{shadow-claw-notifications-lvMt9WJ1.js.map → shadow-claw-notifications-CGVcFYBy.js.map} +1 -1
  166. package/dist/lib/{shadow-claw-page-header-6gq6EMqX.js → shadow-claw-page-header-DAYz3I_o.js} +2 -2
  167. package/dist/lib/{shadow-claw-page-header-6gq6EMqX.js.map → shadow-claw-page-header-DAYz3I_o.js.map} +1 -1
  168. package/dist/lib/{shadow-claw-pages-Bo8_z2S-.js → shadow-claw-pages-BLeEZb9k.js} +24 -12
  169. package/dist/lib/shadow-claw-pages-BLeEZb9k.js.map +1 -0
  170. package/dist/lib/{shadow-claw-peerjs-DRTLCVDQ.js → shadow-claw-peerjs-BcFnbK74.js} +3 -3
  171. package/dist/lib/{shadow-claw-peerjs-DRTLCVDQ.js.map → shadow-claw-peerjs-BcFnbK74.js.map} +1 -1
  172. package/dist/lib/{shadow-claw-settings-D00B4p4L.js → shadow-claw-settings-B7o0Z4hu.js} +9 -9
  173. package/dist/lib/{shadow-claw-settings-D00B4p4L.js.map → shadow-claw-settings-B7o0Z4hu.js.map} +1 -1
  174. package/dist/lib/{shadow-claw-storage-DgMe7-Zo.js → shadow-claw-storage-afMVqB7E.js} +5 -5
  175. package/dist/lib/{shadow-claw-storage-DgMe7-Zo.js.map → shadow-claw-storage-afMVqB7E.js.map} +1 -1
  176. package/dist/lib/{shadow-claw-task-server-D103YOuI.js → shadow-claw-task-server-B9-MQjl6.js} +2 -2
  177. package/dist/lib/{shadow-claw-task-server-D103YOuI.js.map → shadow-claw-task-server-B9-MQjl6.js.map} +1 -1
  178. package/dist/lib/{shadow-claw-tasks-6OhALkq1.js → shadow-claw-tasks-Dc4BC-t-.js} +8 -8
  179. package/dist/lib/{shadow-claw-tasks-6OhALkq1.js.map → shadow-claw-tasks-Dc4BC-t-.js.map} +1 -1
  180. package/dist/lib/{shadow-claw-terminal-BGtxA1qD.js → shadow-claw-terminal-BINcTdsk.js} +2 -2
  181. package/dist/lib/{shadow-claw-terminal-BGtxA1qD.js.map → shadow-claw-terminal-BINcTdsk.js.map} +1 -1
  182. package/dist/lib/{shadow-claw-tools-OeIwAnnd.js → shadow-claw-tools-BjFgXNLR.js} +7 -7
  183. package/dist/lib/{shadow-claw-tools-OeIwAnnd.js.map → shadow-claw-tools-BjFgXNLR.js.map} +1 -1
  184. package/dist/lib/{shadow-claw-webvm-gVFZ197u.js → shadow-claw-webvm-Xe3ByMDw.js} +3 -3
  185. package/dist/lib/{shadow-claw-webvm-gVFZ197u.js.map → shadow-claw-webvm-Xe3ByMDw.js.map} +1 -1
  186. package/dist/lib/subsystems/mcp/webmcp.d.ts +64 -0
  187. package/dist/lib/{syncWebMcpRegistration-Bbph0XZl.js → syncWebMcpRegistration-D7alChz0.js} +21 -6
  188. package/dist/lib/syncWebMcpRegistration-D7alChz0.js.map +1 -0
  189. package/dist/lib/{tools-D0OlSzMD.js → tools-Cmhpk3X8.js} +4 -4
  190. package/dist/lib/{tools-D0OlSzMD.js.map → tools-Cmhpk3X8.js.map} +1 -1
  191. package/dist/lib/utils/index.js +1 -1
  192. package/dist/lib/utils/namespacedStorage.js +1 -1
  193. package/dist/lib/utils/utils.js +1 -1
  194. package/dist/lib/{utils-DYdrO2KI.js → utils-CzgKe_XZ.js} +4 -4
  195. package/dist/lib/{utils-DYdrO2KI.js.map → utils-CzgKe_XZ.js.map} +1 -1
  196. package/dist/lib/{webmcp-D2bocsgh.js → webmcp-oEP9YpR2.js} +119 -3
  197. package/dist/lib/{webmcp-D2bocsgh.js.map → webmcp-oEP9YpR2.js.map} +1 -1
  198. package/dist/public/.well-known/mcp/server-card.json +1 -1
  199. package/dist/public/.well-known/mcp.json +1 -1
  200. package/dist/public/AGENTS.md +8 -2
  201. package/dist/public/README.md +2 -1
  202. package/dist/public/agent.worker.js +1 -1
  203. package/dist/public/app-routes-C6-H2zPH.js +1 -0
  204. package/dist/public/components/shadow-claw/shadow-claw.css +1 -1
  205. package/dist/public/components/shadow-claw/shadow-claw.html +1 -1
  206. package/dist/public/components/shadow-claw-pages/shadow-claw-pages.css +1 -1
  207. package/dist/public/{config-D4lVqMs8.js → config-Dewnqegf.js} +1 -1
  208. package/dist/public/{configurePeerJs-DDOAVSaH.js → configurePeerJs-CaPU2sN5.js} +1 -1
  209. package/dist/public/{connections-CiukjGiH.js → connections-CwE7jE9l.js} +1 -1
  210. package/dist/public/{custom-element-security-piU2U-Ec.js → custom-element-security-DLgHMf5R.js} +1 -1
  211. package/dist/public/docs/README.md +1 -0
  212. package/dist/public/docs/example/article/index.html +4 -4
  213. package/dist/public/docs/guides/publishing-to-github-pages.md +95 -6
  214. package/dist/public/docs/publishing/index.html +4 -4
  215. package/dist/public/docs/skill-creator/index.html +4 -4
  216. package/dist/public/docs/subsystems/pages.md +10 -3
  217. package/dist/public/docs/subsystems/theming.md +242 -0
  218. package/dist/public/docs/subsystems/webmcp.md +89 -1
  219. package/dist/public/{downloadGroupFile-BiZQYY-O.js → downloadGroupFile-ChWHuap_.js} +1 -1
  220. package/dist/public/e2e/README.md +3 -2
  221. package/dist/public/{e2e-bridge-CybB810Q.js → e2e-bridge-BkaldjV2.js} +1 -1
  222. package/dist/public/{file-viewer-DLUBvOVD.js → file-viewer-Df4qUJCn.js} +1 -1
  223. package/dist/public/{getGroupDir-CLz5c8cg.js → getGroupDir-CeSr4fzS.js} +1 -1
  224. package/dist/public/{git-Ba8AeviI.js → git-Bscc1tK-.js} +2 -2
  225. package/dist/public/{iframe-sanitizer-CKOO7cxp.js → iframe-sanitizer-BVdkQsor.js} +1 -1
  226. package/dist/public/{iframe-storage-proxy-BvRiccH0.js → iframe-storage-proxy-Cg8aFw7o.js} +1 -1
  227. package/dist/public/index.css +1 -1
  228. package/dist/public/index.html +4 -4
  229. package/dist/public/index.js +1 -1
  230. package/dist/public/{initChatSplitResize-osJXM2gu.js → initChatSplitResize-C3Rp1LeZ.js} +1 -1
  231. package/dist/public/{initControlPlane-CNggzsRw.js → initControlPlane-C1pnzG16.js} +1 -1
  232. package/dist/public/llms.txt +2 -2
  233. package/dist/public/main/index.html +4 -4
  234. package/dist/public/main/memory/index.html +4 -4
  235. package/dist/public/{markdown-CZA-Ye2Q.js → markdown-D3A902nT.js} +1 -1
  236. package/dist/public/{mcp-reconnect-BK1bYBdC.js → mcp-reconnect-BJWxQBm_.js} +1 -1
  237. package/dist/public/{memoryStorage-Bew1X8Uy.js → memoryStorage-ykv-Ri-y.js} +1 -1
  238. package/dist/public/{orchestrator-D6tel2Zp.js → orchestrator-BVnC4Vtt.js} +2 -2
  239. package/dist/public/{orchestrator-Dc_Q73La.js → orchestrator-CQcc7OFA.js} +2 -2
  240. package/dist/public/{peerjs-CYs1F7sq.js → peerjs-CYC2cI1Y.js} +1 -1
  241. package/dist/public/{push-client-_HUyJlFJ.js → push-client-BJrnOULM.js} +1 -1
  242. package/dist/public/service-worker/fetch-proxy.js +1 -1
  243. package/dist/public/service-worker.js +1 -1
  244. package/dist/public/{shadow-claw-Dabb2AEp.js → shadow-claw-WwfOu-tu.js} +33 -3
  245. package/dist/public/{shadow-claw-accounts-BqGrm47Z.js → shadow-claw-accounts-BFZxrPsH.js} +1 -1
  246. package/dist/public/{shadow-claw-channels-Ci2UPaaA.js → shadow-claw-channels-C0w0c1EF.js} +1 -1
  247. package/dist/public/{shadow-claw-chat-BxR6cBYQ.js → shadow-claw-chat-DIJ0A-QN.js} +1 -1
  248. package/dist/public/{shadow-claw-control-plane-C1A-CZ9H.js → shadow-claw-control-plane-DZoxUd-1.js} +2 -2
  249. package/dist/public/{shadow-claw-conversations-DcwG05-H.js → shadow-claw-conversations-DMyG_5zj.js} +1 -1
  250. package/dist/public/{shadow-claw-file-viewer-CDs1QGXk.js → shadow-claw-file-viewer-DYgZjZb9.js} +1 -1
  251. package/dist/public/{shadow-claw-files-B774Xz1d.js → shadow-claw-files-DIOUdKJr.js} +1 -1
  252. package/dist/public/{shadow-claw-git-CTIPP0vs.js → shadow-claw-git-if5S0QJr.js} +2 -2
  253. package/dist/public/{shadow-claw-integrations-CjtkA6l0.js → shadow-claw-integrations-BQt4hcWe.js} +1 -1
  254. package/dist/public/{shadow-claw-llm-DfmITHde.js → shadow-claw-llm-9uf1KFA0.js} +2 -2
  255. package/dist/public/{shadow-claw-mcp-remote-BPuV22So.js → shadow-claw-mcp-remote-COpNIzJd.js} +1 -1
  256. package/dist/public/{shadow-claw-networking-DEMMygy0.js → shadow-claw-networking-AOVRUn6B.js} +1 -1
  257. package/dist/public/{shadow-claw-notifications-B9Xhcj1P.js → shadow-claw-notifications-CKB-W1TA.js} +1 -1
  258. package/dist/public/{shadow-claw-page-header-CAXokjQy.js → shadow-claw-page-header-D4LmUigA.js} +1 -1
  259. package/dist/public/{shadow-claw-pages-BRQw8bTm.js → shadow-claw-pages-BpHRY4vH.js} +12 -3
  260. package/dist/public/{shadow-claw-settings-BGrDNyqh.js → shadow-claw-settings-CE-aUo_J.js} +3 -3
  261. package/dist/public/{shadow-claw-storage-DK3pf11w.js → shadow-claw-storage-CFKC-Y3V.js} +1 -1
  262. package/dist/public/{shadow-claw-task-server-CMp5Vjza.js → shadow-claw-task-server-B_ZjqK4B.js} +1 -1
  263. package/dist/public/{shadow-claw-tasks-BO8aXM2B.js → shadow-claw-tasks-CGsEv48K.js} +1 -1
  264. package/dist/public/{shadow-claw-terminal-BSeTuyDa.js → shadow-claw-terminal-DcaS7cPH.js} +1 -1
  265. package/dist/public/{shadow-claw-tools-Bj6DLZ-2.js → shadow-claw-tools-Cnu9hKy0.js} +1 -1
  266. package/dist/public/{shadow-claw-webvm-M7d5RH8H.js → shadow-claw-webvm-BB8SFvJ8.js} +1 -1
  267. package/dist/public/syncWebMcpRegistration-D2Zx4oA1.js +1 -0
  268. package/dist/public/theme-init.js +1 -1
  269. package/dist/public/{tools-nysPKnGT.js → tools-sOLCHTj8.js} +1 -1
  270. package/dist/public/{webmcp-Bo3KTgRb.js → webmcp-YFt6vM1_.js} +1 -1
  271. package/dist/server.js +188 -188
  272. package/package.json +1 -1
  273. package/src/cli/build/build.ts +18 -11
  274. package/src/cli/prerender/dsd-shell/prerender-dsd-shell.test.ts +4 -1
  275. package/src/cli/prerender/dsd-shell/prerender-dsd-shell.ts +13 -1
  276. package/src/cli/prerender/pretty-paths/prerender-pretty-paths.ts +22 -0
  277. package/src/cli/prerender/utils/insert-before-closing-head.test.ts +34 -1
  278. package/src/cli/prerender/utils/insert-before-closing-head.ts +20 -6
  279. package/src/cli/site-config/apply.test.ts +90 -0
  280. package/src/cli/site-config/apply.ts +189 -22
  281. package/src/components/shadow-claw/shadow-claw.css +26 -0
  282. package/src/components/shadow-claw/shadow-claw.html +4 -0
  283. package/src/components/shadow-claw/utils/applyRoute.ts +3 -0
  284. package/src/components/shadow-claw/utils/bindEventListeners.test.ts +6 -0
  285. package/src/components/shadow-claw/utils/bindEventListeners.ts +30 -1
  286. package/src/components/shadow-claw/utils/getRoute.test.ts +52 -0
  287. package/src/components/shadow-claw/utils/getRoute.ts +18 -0
  288. package/src/components/shadow-claw/utils/navigateToRoute.test.ts +21 -0
  289. package/src/components/shadow-claw/utils/navigateToRoute.ts +10 -0
  290. package/src/components/shadow-claw/utils/sidebarVisibility.ts +12 -4
  291. package/src/components/shadow-claw/utils/syncSlottedSidebarActiveLinks.test.ts +93 -0
  292. package/src/components/shadow-claw/utils/syncSlottedSidebarActiveLinks.ts +100 -0
  293. package/src/components/shadow-claw-pages/shadow-claw-pages.css +10 -1
  294. package/src/components/shadow-claw-pages/utils/removePreviewIframe.ts +3 -0
  295. package/src/core/orchestrator/utils/syncWebMcpRegistration.test.ts +52 -0
  296. package/src/core/orchestrator/utils/syncWebMcpRegistration.ts +28 -1
  297. package/src/server/middleware/static-files.test.ts +36 -0
  298. package/src/server/middleware/static-files.ts +14 -6
  299. package/src/storage/staticRouting.test.ts +36 -0
  300. package/src/storage/staticRouting.ts +31 -3
  301. package/src/subsystems/mcp/webmcp.test.ts +255 -0
  302. package/src/subsystems/mcp/webmcp.ts +253 -0
  303. package/dist/cli/chunk-00GAzVPl2.js +0 -1
  304. package/dist/cli/chunk-2hnFoNNC.js +0 -1
  305. package/dist/cli/chunk-BKQL4nzF2.js +0 -1
  306. package/dist/cli/chunk-BQ4K3fqj2.js +0 -1
  307. package/dist/cli/chunk-BVCGo6uf2.js +0 -1
  308. package/dist/cli/chunk-Bc9nRNyN.js +0 -11
  309. package/dist/cli/chunk-BcTH_-FL.js +0 -1
  310. package/dist/cli/chunk-BmD_sPRt.js +0 -1
  311. package/dist/cli/chunk-BsxNqqer.js +0 -1
  312. package/dist/cli/chunk-CCcF5T-c.js +0 -1
  313. package/dist/cli/chunk-CFhvwUeL.js +0 -91
  314. package/dist/cli/chunk-CwWtvULn.js +0 -1
  315. package/dist/cli/chunk-DID5VvOG.js +0 -17
  316. package/dist/cli/chunk-Drf-hXIR2.js +0 -1
  317. package/dist/cli/chunk-Dt5HNYVi.js +0 -1
  318. package/dist/cli/chunk-DwZQi9Ax.js +0 -1
  319. package/dist/cli/chunk-m9ZX7TyF2.js +0 -1
  320. package/dist/lib/app-routes-BAEMLu9g.js.map +0 -1
  321. package/dist/lib/shadow-claw-4x3LqlII.js.map +0 -1
  322. package/dist/lib/shadow-claw-pages-Bo8_z2S-.js.map +0 -1
  323. package/dist/lib/syncWebMcpRegistration-Bbph0XZl.js.map +0 -1
  324. package/dist/public/app-routes-BMQ4HFaM.js +0 -1
  325. package/dist/public/syncWebMcpRegistration-4bT0YUyZ.js +0 -1
@@ -36,4 +36,4 @@ const shadowClawImportScripts = (...urls) => {
36
36
 
37
37
  shadowClawNativeImportScripts(...urls.map((url) => shadowClawServiceWorkerTrustedTypesPolicy.createScriptURL(url)));
38
38
  };
39
- if(!self.define){let e,a={};const s=(s,c)=>(s=new URL(s+".js",c).href,a[s]||new Promise(a=>{if("document"in self){const e=document.createElement("script");e.src=s,e.onload=a,document.head.appendChild(e)}else e=s,shadowClawImportScripts(s),a()}).then(()=>{let e=a[s];if(!e)throw new Error(`Module ${s} didn’t register its module`);return e}));self.define=(c,o)=>{const i=e||("document"in self?document.currentScript.src:"")||location.href;if(a[i])return;let d={};const r=e=>s(e,i),n={module:{uri:i},exports:d,require:r};a[i]=Promise.all(c.map(e=>n[e]||r(e))).then(e=>(o(...e),d))}}define(["./workbox-92eae37e"],function(e){"use strict";shadowClawImportScripts("service-worker/fetch-proxy.js","service-worker/push-handler.js","service-worker/share-target.js"),self.addEventListener("message",e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()}),e.clientsClaim(),e.precacheAndRoute([{url:"index.css",revision:"411cebe9d73dc845bdbe6dc25374886d"},{url:"subsystems/channels/bindings/webrtc-datachannel/v1/index.css",revision:"84ea62c12532f5339a455f7da8e47048"},{url:"components/shadow-claw-tools/shadow-claw-tools.css",revision:"83e53f4fc50714d75f4f223c8cc1126b"},{url:"components/shadow-claw-toast/shadow-claw-toast.css",revision:"4ce2dcc1c81363147fa0a5e79474aed3"},{url:"components/shadow-claw-terminal/shadow-claw-terminal.css",revision:"34974a6d9a97832231fd931006a071d1"},{url:"components/shadow-claw-tasks/shadow-claw-tasks.css",revision:"520159be0d18dc3caad54e9e1dc1eb1b"},{url:"components/shadow-claw-settings/shadow-claw-settings.css",revision:"ad9bba0bb9beb555b3b43a90e590dfa1"},{url:"components/shadow-claw-pdf-viewer/shadow-claw-pdf-viewer.css",revision:"4c02b802e45b7e2377ecd915909ddf1c"},{url:"components/shadow-claw-pages/shadow-claw-pages.css",revision:"8ad238a0442ad57c12fe1c2094215cef"},{url:"components/shadow-claw-page-header/shadow-claw-page-header.css",revision:"5af6ca91ae275bdbb7f0f6bc470c83df"},{url:"components/shadow-claw-files/shadow-claw-files.css",revision:"8ea713f1228d9638039afde711505bab"},{url:"components/shadow-claw-file-viewer/shadow-claw-file-viewer.css",revision:"08101d1aefc62f51c5bff42cd468e663"},{url:"components/shadow-claw-file-viewer/highlightjs-atom-one-dark.min.css",revision:"70ec8740925f3c6615ec654090b9e2ce"},{url:"components/shadow-claw-conversations/shadow-claw-conversations.css",revision:"a941256c23d142754ea3c7e9b416f784"},{url:"components/shadow-claw-chat/shadow-claw-chat.css",revision:"b6c9d27682fce5e686696943ae1bf9b8"},{url:"components/shadow-claw-channels/shadow-claw-channels.css",revision:"431a76502c7ba3f8c83bb572f0afd71f"},{url:"components/shadow-claw-a2ui/shadow-claw-a2ui.css",revision:"d05fdf188a8295021735e601bcc5b743"},{url:"components/shadow-claw/shadow-claw.css",revision:"81482994292b2b187885d08316ef8a81"},{url:"components/settings/shadow-claw-webvm/shadow-claw-webvm.css",revision:"f8167aff26a24125d7b9b23aee8f728a"},{url:"components/settings/shadow-claw-task-server/shadow-claw-task-server.css",revision:"f6e534a6023b143270e772c7ee6119a0"},{url:"components/settings/shadow-claw-storage/shadow-claw-storage.css",revision:"dd8009443e450b709657368a19974f09"},{url:"components/settings/shadow-claw-peerjs/shadow-claw-peerjs.css",revision:"81e589816bc4fd4da2c7d688b3db5ba9"},{url:"components/settings/shadow-claw-notifications/shadow-claw-notifications.css",revision:"32804d3923655ae18f137db78bfaccfa"},{url:"components/settings/shadow-claw-networking/shadow-claw-networking.css",revision:"f186e80f555986dc26ab392cf7c29e92"},{url:"components/settings/shadow-claw-mcp-remote/shadow-claw-mcp-remote.css",revision:"c9be041c099a1d4733ed14a87ee37bfa"},{url:"components/settings/shadow-claw-llm/shadow-claw-llm.css",revision:"8703cbfc0af3167237d71d7e3f5da4f5"},{url:"components/settings/shadow-claw-integrations/shadow-claw-integrations.css",revision:"d7b9e45ff13eecf7c6571ed755dc8358"},{url:"components/settings/shadow-claw-git/shadow-claw-git.css",revision:"eab353bd20d322d0c87a7a53e639c2a6"},{url:"components/settings/shadow-claw-control-plane/shadow-claw-control-plane.css",revision:"2cc9185fc887fb10055d9edd405bd59c"},{url:"components/settings/shadow-claw-channel-config/shadow-claw-channel-config.css",revision:"c6da4c8aa3ad1b6359e6cb7af9d5f267"},{url:"components/settings/shadow-claw-accounts/shadow-claw-accounts.css",revision:"f9a43c87ce69b7be36ad18100311c14e"},{url:"components/common/shadow-claw-provider-module-settings/shadow-claw-provider-module-settings.css",revision:"b6bbdcee11cf8fd83c411f6734e10da8"},{url:"components/common/shadow-claw-provider-model-picker/shadow-claw-provider-model-picker.css",revision:"65f56fa4a760d0207440697739be250a"},{url:"components/common/shadow-claw-page-header-action-button/shadow-claw-page-header-action-button.css",revision:"192878cb48a9bb8cf206cea1672ec390"},{url:"components/common/shadow-claw-empty-state/shadow-claw-empty-state.css",revision:"001dbd8ee37eccb2b865795cb75b32e8"},{url:"components/common/shadow-claw-card/shadow-claw-card.css",revision:"ea9fb2a5ee318103b19fdf5df14dd2ea"},{url:"components/common/shadow-claw-actions/shadow-claw-actions.css",revision:"330a4d63944580d4dc150d7c08379f26"},{url:"bindings/webrtc-datachannel/v1/index.css",revision:"8c0f3bcf62cbe9579d136150c5288ba8"},{url:"index.html",revision:"732dcaf9b55033d05316b869f40175f6"},{url:"404.html",revision:"74bc1afc55391d3ff43b99e39de1c72f"},{url:"subsystems/channels/bindings/webrtc-datachannel/v1/index.html",revision:"d6e785383b73b911b8593265c36eaecd"},{url:"static-main/index.html",revision:"38e716481eecfdb88c3349562d815f10"},{url:"static-main/~/docs/example/article.html",revision:"cb73f16b2098cf2e77db992b6b286805"},{url:"share/share-target.html",revision:"ea535454fa33b093d0ee59fddc6f5c02"},{url:"pages/main/index.html",revision:"38e716481eecfdb88c3349562d815f10"},{url:"pages/main/~/docs/example/article.html",revision:"cb73f16b2098cf2e77db992b6b286805"},{url:"main/index.html",revision:"732dcaf9b55033d05316b869f40175f6"},{url:"main/memory/index.html",revision:"0826aaff0b5e2019e87e24ee0bf6414e"},{url:"files/main/index.html",revision:"38e716481eecfdb88c3349562d815f10"},{url:"files/main/~/docs/example/article.html",revision:"cb73f16b2098cf2e77db992b6b286805"},{url:"docs/skill-creator/index.html",revision:"d3ee872e1d15f3c860caad2078d3c6f8"},{url:"docs/publishing/index.html",revision:"4adb771197d3771ee6c6d0d440a4cc57"},{url:"docs/example/article/index.html",revision:"7686d43bca0df28523d5e029cd64d02c"},{url:"components/shadow-claw-tools/shadow-claw-tools.html",revision:"323310ef472dd2974ff78db1afbdd02c"},{url:"components/shadow-claw-toast/shadow-claw-toast.html",revision:"83ef4f69b85bc562f3e41d2038a75298"},{url:"components/shadow-claw-terminal/shadow-claw-terminal.html",revision:"d4a9d42553a49cccdabe858a1bcdfb6d"},{url:"components/shadow-claw-tasks/shadow-claw-tasks.html",revision:"6dde9f871430da8bb157d57f05876572"},{url:"components/shadow-claw-settings/shadow-claw-settings.html",revision:"dd5421c221ad0d1e11602b0466636eb0"},{url:"components/shadow-claw-pdf-viewer/shadow-claw-pdf-viewer.html",revision:"8b1d69f282f194a98c9e9e7a2eb87009"},{url:"components/shadow-claw-pages/shadow-claw-pages.html",revision:"0f03cef912be6910360117da9b98f94a"},{url:"components/shadow-claw-page-header/shadow-claw-page-header.html",revision:"9dd0f64e1c4d31367923ae2e56662b5e"},{url:"components/shadow-claw-files/shadow-claw-files.html",revision:"7727f97dd065000b055d303d5d8a671a"},{url:"components/shadow-claw-file-viewer/shadow-claw-file-viewer.html",revision:"ff21f570a074f875b13e20fc47f54b93"},{url:"components/shadow-claw-conversations/shadow-claw-conversations.html",revision:"e1dda7d82b02568714a37db5905f8dfd"},{url:"components/shadow-claw-chat/shadow-claw-chat.html",revision:"83927b073730bce66081aa1d720351c7"},{url:"components/shadow-claw-channels/shadow-claw-channels.html",revision:"ee52d98315e62d80086d156608a94e05"},{url:"components/shadow-claw-a2ui/shadow-claw-a2ui.html",revision:"04363cb02303c1f31ad6951105e2b630"},{url:"components/shadow-claw/shadow-claw.html",revision:"f06a2944fa75b8325f8a226c5429cb9a"},{url:"components/settings/shadow-claw-webvm/shadow-claw-webvm.html",revision:"b41ff0201055fc03963a115cbeef4de6"},{url:"components/settings/shadow-claw-task-server/shadow-claw-task-server.html",revision:"9e715d1a569b1e589834ffa77a109a95"},{url:"components/settings/shadow-claw-storage/shadow-claw-storage.html",revision:"33501ece794e35a2948ea03df57d47cc"},{url:"components/settings/shadow-claw-peerjs/shadow-claw-peerjs.html",revision:"40d51a573cfef6fda61358fc25d806b3"},{url:"components/settings/shadow-claw-notifications/shadow-claw-notifications.html",revision:"74d4d4d3f2b368d971e74cf9e600d6bf"},{url:"components/settings/shadow-claw-networking/shadow-claw-networking.html",revision:"bca46b725edc47a4ed30cb5e2ed4d8be"},{url:"components/settings/shadow-claw-mcp-remote/shadow-claw-mcp-remote.html",revision:"595f5626bd4a024572393c39aefe6155"},{url:"components/settings/shadow-claw-llm/shadow-claw-llm.html",revision:"ba05b5e3536c9d4a8f400696aad239b7"},{url:"components/settings/shadow-claw-integrations/shadow-claw-integrations.html",revision:"12a847b968869c521b6d17285211cf8a"},{url:"components/settings/shadow-claw-git/shadow-claw-git.html",revision:"7f0d55e8f5c74b30f2ee02cab5af93e3"},{url:"components/settings/shadow-claw-control-plane/shadow-claw-control-plane.html",revision:"83a363c0cc27bec61f7fc3126990b3b8"},{url:"components/settings/shadow-claw-channel-config/shadow-claw-channel-config.html",revision:"38805e60640572b4ada99d11343a64dd"},{url:"components/settings/shadow-claw-accounts/shadow-claw-accounts.html",revision:"6537ff4c3ee01a3107e8b138425812b9"},{url:"components/common/shadow-claw-provider-module-settings/shadow-claw-provider-module-settings.html",revision:"4022e66f6cd3ac15723063c394e429c2"},{url:"components/common/shadow-claw-provider-model-picker/shadow-claw-provider-model-picker.html",revision:"ce6d7fcbdaf710d498cdd650597d86c1"},{url:"components/common/shadow-claw-page-header-action-button/shadow-claw-page-header-action-button.html",revision:"89fa6723613dad5fcc9773685846a81f"},{url:"components/common/shadow-claw-empty-state/shadow-claw-empty-state.html",revision:"f1304d2789cf72435301709539f67a58"},{url:"components/common/shadow-claw-card/shadow-claw-card.html",revision:"332bf79a4dbd90356ea4982fc28f0312"},{url:"components/common/shadow-claw-actions/shadow-claw-actions.html",revision:"cbfba0838bc7cf14f38b80473e0d7cca"},{url:"bindings/webrtc-datachannel/v1/index.html",revision:"7f7ae8499f2c25e8e94409fa272f9f73"},{url:"favicon.ico",revision:"58fff7908409f246a6228529f384802e"},{url:"assets/icons/favicon.ico",revision:"58fff7908409f246a6228529f384802e"},{url:"static-routing.json",revision:"36f9e3515f28f864c4b329a9b3c7020a"},{url:"static-main-manifest.json",revision:"959aaefa4960add61f4f337126c3b5c7"},{url:"manifest.json",revision:"62f8d50f4e8fd710cb66c883f94b1c48"},{url:"writer-DSCZugcv.js",revision:"aa52e090e23fb66e87ae150868b73617"},{url:"writer-DKYhUsR4.js",revision:"2c1ebca2bcb7c424b3c40a335208f9f3"},{url:"webmcp-Bo3KTgRb.js",revision:"6247588e7944cfc805357755cea52f26"},{url:"webllm-_JXFm0yh.js",revision:"9eb250fab559a4b9781d8a3d8ed35ec7"},{url:"webllm-BDMz9yZR.js",revision:"86ffb13f1b7691d5d39b7a44210761ba"},{url:"ulid-BY7rQVLN.js",revision:"e1f3add55342551fd82b63ca9c9fa3ed"},{url:"txPromise-C2iYogHX.js",revision:"74a1df07fb201bd47d0a318f30b6f527"},{url:"translator-HKOMI-RS.js",revision:"0442e3e7545bf383ce11ad047ca3b4c8"},{url:"translator-CGBLZJIJ.js",revision:"484866c38f92eed3b1073f3a2cf63614"},{url:"transformers-js.worker.js",revision:"85d9dc5f8e5f3a31cddb9a7e7288504e"},{url:"transformers-BTGkWJf4.js",revision:"50bb330f47facc065c63f9d684375a58"},{url:"transformers--9oz-RLQ.js",revision:"b81607b6adb3b7b3a956301d3510c91e"},{url:"tools-vzWYHFBC.js",revision:"b8e70b785c14b2e2de15cde940497b51"},{url:"tools-nysPKnGT.js",revision:"0856cc0fd9a5b906591fef2e433e13cb"},{url:"tools-Day-D-vL.js",revision:"c10a562cce98174f91470e6cdafb0f14"},{url:"toast-BXgUfbyh.js",revision:"b7c62da49835547bd07f2010219562bd"},{url:"theme-init.js",revision:"8be9481cf42b1c5fa97853b8365cc1b0"},{url:"syncWebMcpRegistration-4bT0YUyZ.js",revision:"6dfcd918755f5829ff17c8c2cd5a9868"},{url:"summarizer-P3JHUhJ4.js",revision:"c61ee9cefeca591ad5618d95d153a2f4"},{url:"summarizer-CweqtGSY.js",revision:"fc2cafa5615e2284fbe262cc416fa32c"},{url:"shadow-claw-webvm-M7d5RH8H.js",revision:"62fb3e9704c68c642b16dd28a9d7deeb"},{url:"shadow-claw-tools-Bj6DLZ-2.js",revision:"76c49389b874b483bc509d75e4a2a7d9"},{url:"shadow-claw-toast-C_zXWKX9.js",revision:"b6a160902a77d1197facbca3603d990a"},{url:"shadow-claw-terminal-BSeTuyDa.js",revision:"818e1789b2be743bdd72be05b213212e"},{url:"shadow-claw-tasks-BO8aXM2B.js",revision:"aaeac16dd7bfe41b893edaae1ddc04c2"},{url:"shadow-claw-task-server-CMp5Vjza.js",revision:"f54e88d144101b5f4cf80efe4f86c128"},{url:"shadow-claw-storage-DK3pf11w.js",revision:"9d30d76dedd57afccceade1e967271d2"},{url:"shadow-claw-settings-BGrDNyqh.js",revision:"97c20722ca37b55df96b98ac17e73575"},{url:"shadow-claw-pdf-viewer-gOiW-_Bh.js",revision:"e84932e68c4b1a60d8d72b37cfc1c920"},{url:"shadow-claw-pages-BRQw8bTm.js",revision:"8efe43ff1eaf6e66c8421bd416af8ece"},{url:"shadow-claw-page-header-action-button-Bmua3mAb.js",revision:"2e4b1fc665cfcf6a51510a08ba0a5da0"},{url:"shadow-claw-page-header-CAXokjQy.js",revision:"8cb4cd1b9553604539b2baf095b7ed89"},{url:"shadow-claw-notifications-B9Xhcj1P.js",revision:"a5ec9c0aca0987e161431d800c603956"},{url:"shadow-claw-networking-DEMMygy0.js",revision:"5bd1dbbf7a4c14436263b4ffa314fef0"},{url:"shadow-claw-mcp-remote-BPuV22So.js",revision:"b526171aae63744e9d2fe1849881740a"},{url:"shadow-claw-llm-DfmITHde.js",revision:"ac2c6cce4d04d865af22306eac8439f9"},{url:"shadow-claw-integrations-CjtkA6l0.js",revision:"55a8e3d22e52d237a5de95a000fe5820"},{url:"shadow-claw-git-CTIPP0vs.js",revision:"bcea82dea5c7ad4fc35cda7824a7a0d5"},{url:"shadow-claw-files-B774Xz1d.js",revision:"48822d2210187226455778f2ada6b93b"},{url:"shadow-claw-file-viewer-CDs1QGXk.js",revision:"f1f8b7f8ecc641c40d3637267aaa6550"},{url:"shadow-claw-empty-state-CkvLk0-B.js",revision:"1ef0891c108feeab7b5ca2f38ed07abf"},{url:"shadow-claw-element-DIrv3P6A.js",revision:"740ad3d06fc485e6ab3d815d996036ee"},{url:"shadow-claw-dialog-BrOwAOdk.js",revision:"cef105280f387f95d4763386497c3de9"},{url:"shadow-claw-conversations-DcwG05-H.js",revision:"da9c335e9d0e7b4c7fab6d69e6146791"},{url:"shadow-claw-control-plane-C1A-CZ9H.js",revision:"7a6afa39bcab548f47a8c401231a528f"},{url:"shadow-claw-chat-BxR6cBYQ.js",revision:"8a4c93a96b76697970856e86647da094"},{url:"shadow-claw-channels-Ci2UPaaA.js",revision:"a403d33019845a5af0da2a6e0b89da41"},{url:"shadow-claw-card-DCxWEHgX.js",revision:"16fb58ffeced559d6ae06ad22dc83449"},{url:"shadow-claw-accounts-BqGrm47Z.js",revision:"d883ac4d322369c2bb92a4f1d4375019"},{url:"shadow-claw-Dabb2AEp.js",revision:"8374c2a17bf2bab6f3aaf1a3a5215164"},{url:"setConfig-DdSThoKj.js",revision:"c8468805ffd4cffac5c56b089a278ba6"},{url:"rolldown-runtime-aKtaBQYM.js",revision:"fe1c45aeeb5cda97a4081341cf8c64f0"},{url:"rewriter-CxdIIXnr.js",revision:"7fc8f9305671e6294279be5cd6055784"},{url:"rewriter-BLblP4kZ.js",revision:"2a9589202c37a5526d03e1ad2a4bbbf7"},{url:"push-client-_HUyJlFJ.js",revision:"c93d19b3a5ba03336b173d930d90e9de"},{url:"prompt-utils-DpfOVJQv-DorZAfZa.js",revision:"8d5a0482b00cf39c6d8ba0096bbce45e"},{url:"prompt-api-polyfill-DbfS1Lze.js",revision:"34df66e2fcb99a0cd133c7aceb7e183a"},{url:"prompt-api-polyfill-Bpb3g6PM.js",revision:"ad0fdd2c2d028167256c55596a697665"},{url:"prompt-api-OUOP-B-R.js",revision:"668dec7b318ba116659a49a0648c8a28"},{url:"peerjs-CYs1F7sq.js",revision:"865938c1361dd158b24bd0e5c1db8cb2"},{url:"pdf.worker.js",revision:"b169314e56c737213dba6418ab0b6512"},{url:"parseConfigBoolean-ByjZr9OM.js",revision:"3c1af0a9fb09aac85793c7e514ecd9c8"},{url:"orchestrator-Dc_Q73La.js",revision:"582e351bcd2dc6520f38fd00f9cdf93c"},{url:"orchestrator-D6tel2Zp.js",revision:"e78430cdadff81dd6c0b0abed1faae34"},{url:"openai-DMG0vGCO.js",revision:"df9e8ac844b0d28349f23e0cfe7f5850"},{url:"openai-DFvWOhYR.js",revision:"2632c6c496b38c86d2facad810255b6e"},{url:"model-ranking-C60HgQ2c.js",revision:"1d4e60595bf418902c8845d595dea242"},{url:"memoryStorage-Bew1X8Uy.js",revision:"bc1a9624bbe401c5147e3f861b2c3a58"},{url:"mcp-reconnect-BK1bYBdC.js",revision:"bd1d18dfd4c03178ea763a4beba0e933"},{url:"markdown-CZA-Ye2Q.js",revision:"1189cbfb646b16254e34005fd4edfebf"},{url:"language-detector-DOtU3K2z.js",revision:"98fab7d797a22dff65667cd9a4fe7d26"},{url:"language-detector-BRaioT2A.js",revision:"1ba06db21f47352e1ab970aeff923fe2"},{url:"is-typed-array-CnI-JI7u.js",revision:"8fa25cfae743242964b3f06ed67f6297"},{url:"initControlPlane-DnVdYOPe.js",revision:"b3929dc85c26416e81958c1f2c32ece4"},{url:"initControlPlane-CNggzsRw.js",revision:"40939fe96d49b994a35ad21c30cacfd0"},{url:"initChatSplitResize-osJXM2gu.js",revision:"4d7a895335f8f436bdbf29454b7c9d2a"},{url:"index.js",revision:"15a7503249ecdc4c71c1fa9ed06526fc"},{url:"iframe-storage-proxy-BvRiccH0.js",revision:"58acf97666f12aad6c1271aa3e5744e8"},{url:"iframe-sanitizer-CKOO7cxp.js",revision:"b9183ad55002c1002b31509e047377f8"},{url:"headless-BbtDA5cs.js",revision:"529c506ef1a2dbb425367d6fcaa6f490"},{url:"git-CS7jNXY4.js",revision:"32615331b0323826b33f327301f979c9"},{url:"git-Ba8AeviI.js",revision:"bbff780e6f23c09c971cbac81bd797d0"},{url:"getGroupDir-CLz5c8cg.js",revision:"93ab337e215a15bc42d143d81bba859e"},{url:"getConfig-4saf0Tkq.js",revision:"780d39ddfdf762ce720d202109fdf83a"},{url:"getAllTasks-CKZML6au.js",revision:"d1fd6769d57e12c0ca78f6fa9f71e6ef"},{url:"gemini-C4EOz8c4.js",revision:"92e9e18cb67f66af84aad790ccf35762"},{url:"firebase-CuxChDPd.js",revision:"c6f7f8621434c83c73aa2516ab73ed63"},{url:"firebase-BKi8D3q5.js",revision:"114f1f181b229e8b46a8be3c0abeb3a1"},{url:"file-viewer-DLUBvOVD.js",revision:"ae31226dbf3ba6401086b34655d3d3da"},{url:"effect-BJCrpFdp.js",revision:"853102f8a6f55c95dfa3fc82f9e0e3fb"},{url:"e2e-bridge-CybB810Q.js",revision:"37341e1ff9fbea0b2004dda71c83f44f"},{url:"downloadGroupFile-BiZQYY-O.js",revision:"25ff3b8a1c959055c1a0941ae72c9119"},{url:"dist-DUy1CvmT.js",revision:"8f723f5280a9a0153814b2010a389dea"},{url:"dist-B9m1QM9v.js",revision:"54b15459024339745e68780b3493fcd0"},{url:"defaults-DwNb0lWM-Drx4e34U.js",revision:"07f566607c044acac4fce8fb133d7837"},{url:"custom-element-security-piU2U-Ec.js",revision:"51b05a37641d92c072f4de2a094d83d0"},{url:"crypto-browserify-U1v0eryt.js",revision:"9ec767425b59e5d2796b521157dad059"},{url:"crypto-browserify-B0z4QnB8.js",revision:"247ca3e52ef33c59adda8b8d1f954acf"},{url:"crypto-C8c5wMzN.js",revision:"2e4e24021e870c5fda72a84c0875677b"},{url:"constants-DiETpg52.js",revision:"c9f220286288beca5e353a2ac1b9d7a4"},{url:"constants-BR3kgTKA.js",revision:"4db79026565dcb309e0462d27c05ef8e"},{url:"connections-CiukjGiH.js",revision:"ceed006a54deba5adece531f1a88dd33"},{url:"configurePeerJs-DDOAVSaH.js",revision:"313d3ba70f24cf82f0aab0828f66d884"},{url:"config-D4lVqMs8.js",revision:"fcb9ed4e2ae6b0d123064ddebc0ef82a"},{url:"bundler-0if-QelV.js",revision:"b3656ce7ef711de0b6975db785cde1c0"},{url:"buffer-9oRIc-5Z.js",revision:"5f8bcab43db1e23f92aae427e03fbb5a"},{url:"browser-nBz_r6l4.js",revision:"e7d5c0309995473bf0dd730d3575a102"},{url:"base-task-model-CYkpwnvU-DS4fzK9O.js",revision:"3786720aea61a5be150fb388767c844b"},{url:"base-task-model-CYkpwnvU-D-idZRbr.js",revision:"5d9f4020612c5a65ad0111b10e1780e4"},{url:"backup-controller-CvzDOq4T.js",revision:"bc3e84fcc8df8c5d18ed903487df3d83"},{url:"app-routes-BMQ4HFaM.js",revision:"254eb72a2d89b010f1d3420eef40cf99"},{url:"agent.worker.js",revision:"263f40dac0bf8100d35d3fac9684bcc4"},{url:"assets/iframe-storage-bridge.js",revision:"63df93333e520c84c9850ec0371894bd"},{url:"assets/file-viewer-preview-bridge.js",revision:"2c82c9cbe0d1a0554952c9b4f237b613"},{url:"assets/screenshots/xt-ml.github.io_shadow-claw-template-1024x768.png",revision:"1cc2cf3bfac85210d6d47f98a25bae84"},{url:"assets/screenshots/xt-ml.github.io_shadow-claw-agent-cli-weather-1024x768.png",revision:"a7c3d784e410c3284da9c2842f16842c"},{url:"assets/screenshots/shadow-claw-screenshot-731x1045.png",revision:"f3b9e801298660c14976d22f20a0c243"},{url:"assets/screenshots/shadow-claw-screenshot-1920x1052.png",revision:"16f391d0bbc913ec5aa239c8d577c7a4"},{url:"assets/screenshots/shadow-claw-screenshot-1024x768.png",revision:"3ee54a033db17e3bf3dfb7d0a11ab4e1"},{url:"assets/screenshots/kherrick.github.io_pwgen-knowledge-hub-1024x768.png",revision:"94ace19b1968a1955661d4390f9e11f4"},{url:"assets/screenshots/kherrick.github.io_block-garden-knowledge-hub-1024x768.png",revision:"fe5531f3dde6781830c3e5a5d9a3e705"},{url:"assets/icons/96.png",revision:"f91548690416c59ceb56cdb99809b955"},{url:"assets/icons/72.png",revision:"cba8470097972bdbc5d9a06fe67bfcf2"},{url:"assets/icons/512.png",revision:"ec2a8f28b812a0c2665a04cb3c535aab"},{url:"assets/icons/48.png",revision:"29eb2f38df4d5a6385399a04d7bdef00"},{url:"assets/icons/192.png",revision:"bf98264d7a62a47542e577245a292b77"},{url:"assets/icons/180.png",revision:"69128cf857af09292bb06fac0df9938b"},{url:"assets/icons/152.png",revision:"645ae818149dc508cc6146d620120db2"},{url:"assets/icons/128.png",revision:"84678d51d243c104d0c85a4e909fd0a6"},{url:"assets/icons/1024.png",revision:"ae17c81b3b93137df1702de6a9fcdab6"}],{}),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html"),{allowlist:[/^\/$/,/^\/(chat|files|pages|tasks|settings)(?:\/.*)?$/]})),e.registerRoute(({url:e,sameOrigin:a})=>{if(e.pathname.startsWith("/assets/v86.9pfs/"))return!1;const s=e.hostname.toLowerCase();if("huggingface.co"===s||s.endsWith(".huggingface.co")||s.endsWith(".hf.co")||"hf.co"===s||"hf-mirror.com"===s||s.endsWith(".hf-mirror.com")||"cdnjs.cloudflare.com"===s||"esm.sh"===s||s.endsWith(".esm.sh")||"unpkg.com"===s||"cdn.jsdelivr.net"===s||s.endsWith(".jsdelivr.net")||"esm.run"===s||"openrouter.ai"===s||s.endsWith(".openrouter.ai")||"api.telegram.org"===s)return!1;if(e.pathname.startsWith("/api/control/"))return!1;const c=e.pathname.endsWith("/share/share-target.html"),o="/proxy"===e.pathname||e.pathname.startsWith("/git-proxy/")||c||e.pathname.startsWith("/push/")||e.pathname.startsWith("/schedule/")||e.pathname.startsWith("/telegram/");return(!("localhost"===s||"127.0.0.1"===s||"::1"===s||"[::1]"===s)||!o)&&("boolean"!=typeof a||a)},new e.NetworkFirst({cacheName:"shadow-claw-cache",plugins:[new e.ExpirationPlugin({maxAgeSeconds:31536e3})]}),"GET")});
39
+ if(!self.define){let e,s={};const a=(a,c)=>(a=new URL(a+".js",c).href,s[a]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=a,e.onload=s,document.head.appendChild(e)}else e=a,shadowClawImportScripts(a),s()}).then(()=>{let e=s[a];if(!e)throw new Error(`Module ${a} didn’t register its module`);return e}));self.define=(c,o)=>{const i=e||("document"in self?document.currentScript.src:"")||location.href;if(s[i])return;let r={};const d=e=>a(e,i),n={module:{uri:i},exports:r,require:d};s[i]=Promise.all(c.map(e=>n[e]||d(e))).then(e=>(o(...e),r))}}define(["./workbox-92eae37e"],function(e){"use strict";shadowClawImportScripts("service-worker/fetch-proxy.js","service-worker/push-handler.js","service-worker/share-target.js"),self.addEventListener("message",e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()}),e.clientsClaim(),e.precacheAndRoute([{url:"index.css",revision:"0bb433592cf356af77b6fc4ce7222bb7"},{url:"subsystems/channels/bindings/webrtc-datachannel/v1/index.css",revision:"84ea62c12532f5339a455f7da8e47048"},{url:"components/shadow-claw-tools/shadow-claw-tools.css",revision:"83e53f4fc50714d75f4f223c8cc1126b"},{url:"components/shadow-claw-toast/shadow-claw-toast.css",revision:"4ce2dcc1c81363147fa0a5e79474aed3"},{url:"components/shadow-claw-terminal/shadow-claw-terminal.css",revision:"34974a6d9a97832231fd931006a071d1"},{url:"components/shadow-claw-tasks/shadow-claw-tasks.css",revision:"520159be0d18dc3caad54e9e1dc1eb1b"},{url:"components/shadow-claw-settings/shadow-claw-settings.css",revision:"ad9bba0bb9beb555b3b43a90e590dfa1"},{url:"components/shadow-claw-pdf-viewer/shadow-claw-pdf-viewer.css",revision:"4c02b802e45b7e2377ecd915909ddf1c"},{url:"components/shadow-claw-pages/shadow-claw-pages.css",revision:"69d6da8098f4c55b70e4fcb1842e5d10"},{url:"components/shadow-claw-page-header/shadow-claw-page-header.css",revision:"5af6ca91ae275bdbb7f0f6bc470c83df"},{url:"components/shadow-claw-files/shadow-claw-files.css",revision:"8ea713f1228d9638039afde711505bab"},{url:"components/shadow-claw-file-viewer/shadow-claw-file-viewer.css",revision:"08101d1aefc62f51c5bff42cd468e663"},{url:"components/shadow-claw-file-viewer/highlightjs-atom-one-dark.min.css",revision:"70ec8740925f3c6615ec654090b9e2ce"},{url:"components/shadow-claw-conversations/shadow-claw-conversations.css",revision:"a941256c23d142754ea3c7e9b416f784"},{url:"components/shadow-claw-chat/shadow-claw-chat.css",revision:"b6c9d27682fce5e686696943ae1bf9b8"},{url:"components/shadow-claw-channels/shadow-claw-channels.css",revision:"431a76502c7ba3f8c83bb572f0afd71f"},{url:"components/shadow-claw-a2ui/shadow-claw-a2ui.css",revision:"d05fdf188a8295021735e601bcc5b743"},{url:"components/shadow-claw/shadow-claw.css",revision:"b3dfcb1b88a1fe668f0c8a4a7f96d6f8"},{url:"components/settings/shadow-claw-webvm/shadow-claw-webvm.css",revision:"f8167aff26a24125d7b9b23aee8f728a"},{url:"components/settings/shadow-claw-task-server/shadow-claw-task-server.css",revision:"f6e534a6023b143270e772c7ee6119a0"},{url:"components/settings/shadow-claw-storage/shadow-claw-storage.css",revision:"dd8009443e450b709657368a19974f09"},{url:"components/settings/shadow-claw-peerjs/shadow-claw-peerjs.css",revision:"81e589816bc4fd4da2c7d688b3db5ba9"},{url:"components/settings/shadow-claw-notifications/shadow-claw-notifications.css",revision:"32804d3923655ae18f137db78bfaccfa"},{url:"components/settings/shadow-claw-networking/shadow-claw-networking.css",revision:"f186e80f555986dc26ab392cf7c29e92"},{url:"components/settings/shadow-claw-mcp-remote/shadow-claw-mcp-remote.css",revision:"c9be041c099a1d4733ed14a87ee37bfa"},{url:"components/settings/shadow-claw-llm/shadow-claw-llm.css",revision:"8703cbfc0af3167237d71d7e3f5da4f5"},{url:"components/settings/shadow-claw-integrations/shadow-claw-integrations.css",revision:"d7b9e45ff13eecf7c6571ed755dc8358"},{url:"components/settings/shadow-claw-git/shadow-claw-git.css",revision:"eab353bd20d322d0c87a7a53e639c2a6"},{url:"components/settings/shadow-claw-control-plane/shadow-claw-control-plane.css",revision:"2cc9185fc887fb10055d9edd405bd59c"},{url:"components/settings/shadow-claw-channel-config/shadow-claw-channel-config.css",revision:"c6da4c8aa3ad1b6359e6cb7af9d5f267"},{url:"components/settings/shadow-claw-accounts/shadow-claw-accounts.css",revision:"f9a43c87ce69b7be36ad18100311c14e"},{url:"components/common/shadow-claw-provider-module-settings/shadow-claw-provider-module-settings.css",revision:"b6bbdcee11cf8fd83c411f6734e10da8"},{url:"components/common/shadow-claw-provider-model-picker/shadow-claw-provider-model-picker.css",revision:"65f56fa4a760d0207440697739be250a"},{url:"components/common/shadow-claw-page-header-action-button/shadow-claw-page-header-action-button.css",revision:"192878cb48a9bb8cf206cea1672ec390"},{url:"components/common/shadow-claw-empty-state/shadow-claw-empty-state.css",revision:"001dbd8ee37eccb2b865795cb75b32e8"},{url:"components/common/shadow-claw-card/shadow-claw-card.css",revision:"ea9fb2a5ee318103b19fdf5df14dd2ea"},{url:"components/common/shadow-claw-actions/shadow-claw-actions.css",revision:"330a4d63944580d4dc150d7c08379f26"},{url:"bindings/webrtc-datachannel/v1/index.css",revision:"8c0f3bcf62cbe9579d136150c5288ba8"},{url:"index.html",revision:"f096d3d532ac9a3d31e28f2253348717"},{url:"404.html",revision:"74bc1afc55391d3ff43b99e39de1c72f"},{url:"subsystems/channels/bindings/webrtc-datachannel/v1/index.html",revision:"d6e785383b73b911b8593265c36eaecd"},{url:"static-main/index.html",revision:"38e716481eecfdb88c3349562d815f10"},{url:"static-main/~/docs/example/article.html",revision:"cb73f16b2098cf2e77db992b6b286805"},{url:"share/share-target.html",revision:"ea535454fa33b093d0ee59fddc6f5c02"},{url:"pages/main/index.html",revision:"38e716481eecfdb88c3349562d815f10"},{url:"pages/main/~/docs/example/article.html",revision:"cb73f16b2098cf2e77db992b6b286805"},{url:"main/index.html",revision:"f096d3d532ac9a3d31e28f2253348717"},{url:"main/memory/index.html",revision:"2c06051e39d7f49c3f22689ef0c43b92"},{url:"files/main/index.html",revision:"38e716481eecfdb88c3349562d815f10"},{url:"files/main/~/docs/example/article.html",revision:"cb73f16b2098cf2e77db992b6b286805"},{url:"docs/skill-creator/index.html",revision:"26415352760fe1911518d147f1d0e430"},{url:"docs/publishing/index.html",revision:"62a0697e29f0378e937d4181180e4776"},{url:"docs/example/article/index.html",revision:"ed4508d9b66971857d6b73004d8e09f0"},{url:"components/shadow-claw-tools/shadow-claw-tools.html",revision:"323310ef472dd2974ff78db1afbdd02c"},{url:"components/shadow-claw-toast/shadow-claw-toast.html",revision:"83ef4f69b85bc562f3e41d2038a75298"},{url:"components/shadow-claw-terminal/shadow-claw-terminal.html",revision:"d4a9d42553a49cccdabe858a1bcdfb6d"},{url:"components/shadow-claw-tasks/shadow-claw-tasks.html",revision:"6dde9f871430da8bb157d57f05876572"},{url:"components/shadow-claw-settings/shadow-claw-settings.html",revision:"dd5421c221ad0d1e11602b0466636eb0"},{url:"components/shadow-claw-pdf-viewer/shadow-claw-pdf-viewer.html",revision:"8b1d69f282f194a98c9e9e7a2eb87009"},{url:"components/shadow-claw-pages/shadow-claw-pages.html",revision:"0f03cef912be6910360117da9b98f94a"},{url:"components/shadow-claw-page-header/shadow-claw-page-header.html",revision:"9dd0f64e1c4d31367923ae2e56662b5e"},{url:"components/shadow-claw-files/shadow-claw-files.html",revision:"7727f97dd065000b055d303d5d8a671a"},{url:"components/shadow-claw-file-viewer/shadow-claw-file-viewer.html",revision:"ff21f570a074f875b13e20fc47f54b93"},{url:"components/shadow-claw-conversations/shadow-claw-conversations.html",revision:"e1dda7d82b02568714a37db5905f8dfd"},{url:"components/shadow-claw-chat/shadow-claw-chat.html",revision:"83927b073730bce66081aa1d720351c7"},{url:"components/shadow-claw-channels/shadow-claw-channels.html",revision:"ee52d98315e62d80086d156608a94e05"},{url:"components/shadow-claw-a2ui/shadow-claw-a2ui.html",revision:"04363cb02303c1f31ad6951105e2b630"},{url:"components/shadow-claw/shadow-claw.html",revision:"6053ef3e7ca69b3df17539e153dbc278"},{url:"components/settings/shadow-claw-webvm/shadow-claw-webvm.html",revision:"b41ff0201055fc03963a115cbeef4de6"},{url:"components/settings/shadow-claw-task-server/shadow-claw-task-server.html",revision:"9e715d1a569b1e589834ffa77a109a95"},{url:"components/settings/shadow-claw-storage/shadow-claw-storage.html",revision:"33501ece794e35a2948ea03df57d47cc"},{url:"components/settings/shadow-claw-peerjs/shadow-claw-peerjs.html",revision:"40d51a573cfef6fda61358fc25d806b3"},{url:"components/settings/shadow-claw-notifications/shadow-claw-notifications.html",revision:"74d4d4d3f2b368d971e74cf9e600d6bf"},{url:"components/settings/shadow-claw-networking/shadow-claw-networking.html",revision:"bca46b725edc47a4ed30cb5e2ed4d8be"},{url:"components/settings/shadow-claw-mcp-remote/shadow-claw-mcp-remote.html",revision:"595f5626bd4a024572393c39aefe6155"},{url:"components/settings/shadow-claw-llm/shadow-claw-llm.html",revision:"ba05b5e3536c9d4a8f400696aad239b7"},{url:"components/settings/shadow-claw-integrations/shadow-claw-integrations.html",revision:"12a847b968869c521b6d17285211cf8a"},{url:"components/settings/shadow-claw-git/shadow-claw-git.html",revision:"7f0d55e8f5c74b30f2ee02cab5af93e3"},{url:"components/settings/shadow-claw-control-plane/shadow-claw-control-plane.html",revision:"83a363c0cc27bec61f7fc3126990b3b8"},{url:"components/settings/shadow-claw-channel-config/shadow-claw-channel-config.html",revision:"38805e60640572b4ada99d11343a64dd"},{url:"components/settings/shadow-claw-accounts/shadow-claw-accounts.html",revision:"6537ff4c3ee01a3107e8b138425812b9"},{url:"components/common/shadow-claw-provider-module-settings/shadow-claw-provider-module-settings.html",revision:"4022e66f6cd3ac15723063c394e429c2"},{url:"components/common/shadow-claw-provider-model-picker/shadow-claw-provider-model-picker.html",revision:"ce6d7fcbdaf710d498cdd650597d86c1"},{url:"components/common/shadow-claw-page-header-action-button/shadow-claw-page-header-action-button.html",revision:"89fa6723613dad5fcc9773685846a81f"},{url:"components/common/shadow-claw-empty-state/shadow-claw-empty-state.html",revision:"f1304d2789cf72435301709539f67a58"},{url:"components/common/shadow-claw-card/shadow-claw-card.html",revision:"332bf79a4dbd90356ea4982fc28f0312"},{url:"components/common/shadow-claw-actions/shadow-claw-actions.html",revision:"cbfba0838bc7cf14f38b80473e0d7cca"},{url:"bindings/webrtc-datachannel/v1/index.html",revision:"7f7ae8499f2c25e8e94409fa272f9f73"},{url:"favicon.ico",revision:"58fff7908409f246a6228529f384802e"},{url:"assets/icons/favicon.ico",revision:"58fff7908409f246a6228529f384802e"},{url:"static-routing.json",revision:"36f9e3515f28f864c4b329a9b3c7020a"},{url:"static-main-manifest.json",revision:"959aaefa4960add61f4f337126c3b5c7"},{url:"manifest.json",revision:"62f8d50f4e8fd710cb66c883f94b1c48"},{url:"writer-DSCZugcv.js",revision:"aa52e090e23fb66e87ae150868b73617"},{url:"writer-DKYhUsR4.js",revision:"2c1ebca2bcb7c424b3c40a335208f9f3"},{url:"webmcp-YFt6vM1_.js",revision:"aa8287c30873689d3c1cb7817872c042"},{url:"webllm-_JXFm0yh.js",revision:"9eb250fab559a4b9781d8a3d8ed35ec7"},{url:"webllm-BDMz9yZR.js",revision:"86ffb13f1b7691d5d39b7a44210761ba"},{url:"ulid-BY7rQVLN.js",revision:"e1f3add55342551fd82b63ca9c9fa3ed"},{url:"txPromise-C2iYogHX.js",revision:"74a1df07fb201bd47d0a318f30b6f527"},{url:"translator-HKOMI-RS.js",revision:"0442e3e7545bf383ce11ad047ca3b4c8"},{url:"translator-CGBLZJIJ.js",revision:"484866c38f92eed3b1073f3a2cf63614"},{url:"transformers-js.worker.js",revision:"85d9dc5f8e5f3a31cddb9a7e7288504e"},{url:"transformers-BTGkWJf4.js",revision:"50bb330f47facc065c63f9d684375a58"},{url:"transformers--9oz-RLQ.js",revision:"b81607b6adb3b7b3a956301d3510c91e"},{url:"tools-vzWYHFBC.js",revision:"b8e70b785c14b2e2de15cde940497b51"},{url:"tools-sOLCHTj8.js",revision:"5bfc681366b4ea0ce06ef319388ea698"},{url:"tools-Day-D-vL.js",revision:"c10a562cce98174f91470e6cdafb0f14"},{url:"toast-BXgUfbyh.js",revision:"b7c62da49835547bd07f2010219562bd"},{url:"theme-init.js",revision:"f9c1051cc2da3732c08954c434475545"},{url:"syncWebMcpRegistration-D2Zx4oA1.js",revision:"7f43bd2b90edf32cb4218574cf35dd77"},{url:"summarizer-P3JHUhJ4.js",revision:"c61ee9cefeca591ad5618d95d153a2f4"},{url:"summarizer-CweqtGSY.js",revision:"fc2cafa5615e2284fbe262cc416fa32c"},{url:"shadow-claw-webvm-BB8SFvJ8.js",revision:"8df1211abe07a45257fa3167f495ec43"},{url:"shadow-claw-tools-Cnu9hKy0.js",revision:"52c4d176bce1a846b7ce8b50336bec4c"},{url:"shadow-claw-toast-C_zXWKX9.js",revision:"b6a160902a77d1197facbca3603d990a"},{url:"shadow-claw-terminal-DcaS7cPH.js",revision:"683c2ef31d0999826b63616b28fcad9d"},{url:"shadow-claw-tasks-CGsEv48K.js",revision:"7656eed343bd5c709126112b480a5039"},{url:"shadow-claw-task-server-B_ZjqK4B.js",revision:"4b4aafa6b486e174798e9324deeeaca5"},{url:"shadow-claw-storage-CFKC-Y3V.js",revision:"6c8858be5796429c7b702de553e40013"},{url:"shadow-claw-settings-CE-aUo_J.js",revision:"dbdd70daf9cd83471d494715620d338a"},{url:"shadow-claw-pdf-viewer-gOiW-_Bh.js",revision:"e84932e68c4b1a60d8d72b37cfc1c920"},{url:"shadow-claw-pages-BpHRY4vH.js",revision:"dedb79711affb134e72e24b89d8d4f71"},{url:"shadow-claw-page-header-action-button-Bmua3mAb.js",revision:"2e4b1fc665cfcf6a51510a08ba0a5da0"},{url:"shadow-claw-page-header-D4LmUigA.js",revision:"1ca21ac71a1059cca4750727eb454719"},{url:"shadow-claw-notifications-CKB-W1TA.js",revision:"6b8e024bb312f55f8ed6bee9f1c26bef"},{url:"shadow-claw-networking-AOVRUn6B.js",revision:"b11d09c76d68c2c231039ff3dafc9ba8"},{url:"shadow-claw-mcp-remote-COpNIzJd.js",revision:"60b9fe8293242adc01a2a466e547cbbb"},{url:"shadow-claw-llm-9uf1KFA0.js",revision:"94cd9111bfb48a1ef3faed64bc05dd58"},{url:"shadow-claw-integrations-BQt4hcWe.js",revision:"0745a1aac88d2be5c57de30e75f41f76"},{url:"shadow-claw-git-if5S0QJr.js",revision:"0d98d518f98e6f47d7b1e80624f5b4cf"},{url:"shadow-claw-files-DIOUdKJr.js",revision:"283f3998502a367a1056241ada8a445d"},{url:"shadow-claw-file-viewer-DYgZjZb9.js",revision:"bbe7be070d0864ffa530b5a7d31822c1"},{url:"shadow-claw-empty-state-CkvLk0-B.js",revision:"1ef0891c108feeab7b5ca2f38ed07abf"},{url:"shadow-claw-element-DIrv3P6A.js",revision:"740ad3d06fc485e6ab3d815d996036ee"},{url:"shadow-claw-dialog-BrOwAOdk.js",revision:"cef105280f387f95d4763386497c3de9"},{url:"shadow-claw-conversations-DMyG_5zj.js",revision:"dfa03240c12bf415c8a18aea310f877e"},{url:"shadow-claw-control-plane-DZoxUd-1.js",revision:"a10860fed723fb6235cd25306adcee76"},{url:"shadow-claw-chat-DIJ0A-QN.js",revision:"9967b73a46d13bab57c3cf939789de0c"},{url:"shadow-claw-channels-C0w0c1EF.js",revision:"b53c6d7d004f56fe71af001b5ff83523"},{url:"shadow-claw-card-DCxWEHgX.js",revision:"16fb58ffeced559d6ae06ad22dc83449"},{url:"shadow-claw-accounts-BFZxrPsH.js",revision:"6c28c571049f9b853b7b5a994985c2b2"},{url:"shadow-claw-WwfOu-tu.js",revision:"b3f3926fa3c88b4eaddcc7d27e452dca"},{url:"setConfig-DdSThoKj.js",revision:"c8468805ffd4cffac5c56b089a278ba6"},{url:"rolldown-runtime-aKtaBQYM.js",revision:"fe1c45aeeb5cda97a4081341cf8c64f0"},{url:"rewriter-CxdIIXnr.js",revision:"7fc8f9305671e6294279be5cd6055784"},{url:"rewriter-BLblP4kZ.js",revision:"2a9589202c37a5526d03e1ad2a4bbbf7"},{url:"push-client-BJrnOULM.js",revision:"6cc68c1d735ed5d72605727240e7ab55"},{url:"prompt-utils-DpfOVJQv-DorZAfZa.js",revision:"8d5a0482b00cf39c6d8ba0096bbce45e"},{url:"prompt-api-polyfill-DbfS1Lze.js",revision:"34df66e2fcb99a0cd133c7aceb7e183a"},{url:"prompt-api-polyfill-Bpb3g6PM.js",revision:"ad0fdd2c2d028167256c55596a697665"},{url:"prompt-api-OUOP-B-R.js",revision:"668dec7b318ba116659a49a0648c8a28"},{url:"peerjs-CYC2cI1Y.js",revision:"f3fd11bbb7b35a8492686f7b0c67967e"},{url:"pdf.worker.js",revision:"b169314e56c737213dba6418ab0b6512"},{url:"parseConfigBoolean-ByjZr9OM.js",revision:"3c1af0a9fb09aac85793c7e514ecd9c8"},{url:"orchestrator-CQcc7OFA.js",revision:"983c7246331211d08068433a0ae48dd7"},{url:"orchestrator-BVnC4Vtt.js",revision:"9ba4fa811c670b2b3ff4d28bbeb1d063"},{url:"openai-DMG0vGCO.js",revision:"df9e8ac844b0d28349f23e0cfe7f5850"},{url:"openai-DFvWOhYR.js",revision:"2632c6c496b38c86d2facad810255b6e"},{url:"model-ranking-C60HgQ2c.js",revision:"1d4e60595bf418902c8845d595dea242"},{url:"memoryStorage-ykv-Ri-y.js",revision:"28816b40081caa4ff2031b699b39f667"},{url:"mcp-reconnect-BJWxQBm_.js",revision:"eec8dc8c9420b14a272d99a9000e71c4"},{url:"markdown-D3A902nT.js",revision:"da7cbdee786a7bc7361e5586c64bdd82"},{url:"language-detector-DOtU3K2z.js",revision:"98fab7d797a22dff65667cd9a4fe7d26"},{url:"language-detector-BRaioT2A.js",revision:"1ba06db21f47352e1ab970aeff923fe2"},{url:"is-typed-array-CnI-JI7u.js",revision:"8fa25cfae743242964b3f06ed67f6297"},{url:"initControlPlane-DnVdYOPe.js",revision:"b3929dc85c26416e81958c1f2c32ece4"},{url:"initControlPlane-C1pnzG16.js",revision:"31fed5c23cbe291e9f8b0e738a71351d"},{url:"initChatSplitResize-C3Rp1LeZ.js",revision:"3baf075920b001fef6e93baf84edbde4"},{url:"index.js",revision:"3776dc6c1cc6ec2ab6d9d64d449cf2fa"},{url:"iframe-storage-proxy-Cg8aFw7o.js",revision:"25b86017e9f9a08f680cc5d74b3224a6"},{url:"iframe-sanitizer-BVdkQsor.js",revision:"98a0156153d28b7308f0502cb764001c"},{url:"headless-BbtDA5cs.js",revision:"529c506ef1a2dbb425367d6fcaa6f490"},{url:"git-CS7jNXY4.js",revision:"32615331b0323826b33f327301f979c9"},{url:"git-Bscc1tK-.js",revision:"218d92c5a0ee81d2cec03895344eb40b"},{url:"getGroupDir-CeSr4fzS.js",revision:"c27504ab35a34a099e96ad13dda91bb6"},{url:"getConfig-4saf0Tkq.js",revision:"780d39ddfdf762ce720d202109fdf83a"},{url:"getAllTasks-CKZML6au.js",revision:"d1fd6769d57e12c0ca78f6fa9f71e6ef"},{url:"gemini-C4EOz8c4.js",revision:"92e9e18cb67f66af84aad790ccf35762"},{url:"firebase-CuxChDPd.js",revision:"c6f7f8621434c83c73aa2516ab73ed63"},{url:"firebase-BKi8D3q5.js",revision:"114f1f181b229e8b46a8be3c0abeb3a1"},{url:"file-viewer-Df4qUJCn.js",revision:"9b7cba1245a45a3f46a6d975368299d7"},{url:"effect-BJCrpFdp.js",revision:"853102f8a6f55c95dfa3fc82f9e0e3fb"},{url:"e2e-bridge-BkaldjV2.js",revision:"72e86967e58a12ec15d9aca901541ddd"},{url:"downloadGroupFile-ChWHuap_.js",revision:"8778347dc1b6cb4e957f3d85761b9608"},{url:"dist-DUy1CvmT.js",revision:"8f723f5280a9a0153814b2010a389dea"},{url:"dist-B9m1QM9v.js",revision:"54b15459024339745e68780b3493fcd0"},{url:"defaults-DwNb0lWM-Drx4e34U.js",revision:"07f566607c044acac4fce8fb133d7837"},{url:"custom-element-security-DLgHMf5R.js",revision:"0f28cb9a01fa611ce14aaa22f6f109cc"},{url:"crypto-browserify-U1v0eryt.js",revision:"9ec767425b59e5d2796b521157dad059"},{url:"crypto-browserify-B0z4QnB8.js",revision:"247ca3e52ef33c59adda8b8d1f954acf"},{url:"crypto-C8c5wMzN.js",revision:"2e4e24021e870c5fda72a84c0875677b"},{url:"constants-DiETpg52.js",revision:"c9f220286288beca5e353a2ac1b9d7a4"},{url:"constants-BR3kgTKA.js",revision:"4db79026565dcb309e0462d27c05ef8e"},{url:"connections-CwE7jE9l.js",revision:"e57bbdbd8c160655b420ac59439643b9"},{url:"configurePeerJs-CaPU2sN5.js",revision:"f5557ddc74a0c4912319d020759edc90"},{url:"config-Dewnqegf.js",revision:"77b1492ec818064b44d9891d432609e8"},{url:"bundler-0if-QelV.js",revision:"b3656ce7ef711de0b6975db785cde1c0"},{url:"buffer-9oRIc-5Z.js",revision:"5f8bcab43db1e23f92aae427e03fbb5a"},{url:"browser-nBz_r6l4.js",revision:"e7d5c0309995473bf0dd730d3575a102"},{url:"base-task-model-CYkpwnvU-DS4fzK9O.js",revision:"3786720aea61a5be150fb388767c844b"},{url:"base-task-model-CYkpwnvU-D-idZRbr.js",revision:"5d9f4020612c5a65ad0111b10e1780e4"},{url:"backup-controller-CvzDOq4T.js",revision:"bc3e84fcc8df8c5d18ed903487df3d83"},{url:"app-routes-C6-H2zPH.js",revision:"79e9d780b7663cade0052ff947f9991e"},{url:"agent.worker.js",revision:"04273ddf7ef4cc94abb6355ac0e9b69f"},{url:"assets/iframe-storage-bridge.js",revision:"63df93333e520c84c9850ec0371894bd"},{url:"assets/file-viewer-preview-bridge.js",revision:"2c82c9cbe0d1a0554952c9b4f237b613"},{url:"assets/screenshots/xt-ml.github.io_shadow-claw-template-1024x768.png",revision:"1cc2cf3bfac85210d6d47f98a25bae84"},{url:"assets/screenshots/xt-ml.github.io_shadow-claw-agent-cli-weather-1024x768.png",revision:"a7c3d784e410c3284da9c2842f16842c"},{url:"assets/screenshots/shadow-claw-screenshot-731x1045.png",revision:"f3b9e801298660c14976d22f20a0c243"},{url:"assets/screenshots/shadow-claw-screenshot-1920x1052.png",revision:"16f391d0bbc913ec5aa239c8d577c7a4"},{url:"assets/screenshots/shadow-claw-screenshot-1024x768.png",revision:"3ee54a033db17e3bf3dfb7d0a11ab4e1"},{url:"assets/screenshots/kherrick.github.io_pwgen-knowledge-hub-1024x768.png",revision:"94ace19b1968a1955661d4390f9e11f4"},{url:"assets/screenshots/kherrick.github.io_block-garden-knowledge-hub-1024x768.png",revision:"fe5531f3dde6781830c3e5a5d9a3e705"},{url:"assets/icons/96.png",revision:"f91548690416c59ceb56cdb99809b955"},{url:"assets/icons/72.png",revision:"cba8470097972bdbc5d9a06fe67bfcf2"},{url:"assets/icons/512.png",revision:"ec2a8f28b812a0c2665a04cb3c535aab"},{url:"assets/icons/48.png",revision:"29eb2f38df4d5a6385399a04d7bdef00"},{url:"assets/icons/192.png",revision:"bf98264d7a62a47542e577245a292b77"},{url:"assets/icons/180.png",revision:"69128cf857af09292bb06fac0df9938b"},{url:"assets/icons/152.png",revision:"645ae818149dc508cc6146d620120db2"},{url:"assets/icons/128.png",revision:"84678d51d243c104d0c85a4e909fd0a6"},{url:"assets/icons/1024.png",revision:"ae17c81b3b93137df1702de6a9fcdab6"}],{}),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html"),{allowlist:[/^\/$/,/^\/(chat|files|pages|tasks|settings)(?:\/.*)?$/]})),e.registerRoute(({url:e,sameOrigin:s})=>{if(e.pathname.startsWith("/assets/v86.9pfs/"))return!1;const a=e.hostname.toLowerCase();if("huggingface.co"===a||a.endsWith(".huggingface.co")||a.endsWith(".hf.co")||"hf.co"===a||"hf-mirror.com"===a||a.endsWith(".hf-mirror.com")||"cdnjs.cloudflare.com"===a||"esm.sh"===a||a.endsWith(".esm.sh")||"unpkg.com"===a||"cdn.jsdelivr.net"===a||a.endsWith(".jsdelivr.net")||"esm.run"===a||"openrouter.ai"===a||a.endsWith(".openrouter.ai")||"api.telegram.org"===a)return!1;if(e.pathname.startsWith("/api/control/"))return!1;const c=e.pathname.endsWith("/share/share-target.html"),o="/proxy"===e.pathname||e.pathname.startsWith("/git-proxy/")||c||e.pathname.startsWith("/push/")||e.pathname.startsWith("/schedule/")||e.pathname.startsWith("/telegram/");return(!("localhost"===a||"127.0.0.1"===a||"::1"===a||"[::1]"===a)||!o)&&("boolean"!=typeof s||s)},new e.NetworkFirst({cacheName:"shadow-claw-cache",plugins:[new e.ExpirationPlugin({maxAgeSeconds:31536e3})]}),"GET")});
@@ -1,6 +1,6 @@
1
- import{r as e}from"./config-D4lVqMs8.js";import{c as t,n,r,u as i}from"./app-routes-BMQ4HFaM.js";import{i as a}from"./txPromise-C2iYogHX.js";import{t as o}from"./getConfig-4saf0Tkq.js";import{t as s}from"./dist-B9m1QM9v.js";import{R as c,Zt as l,a as u,c as d,lt as f,o as p,st as m,t as h,vt as g,w as ee,xn as te,xt as _}from"./orchestrator-D6tel2Zp.js";import{o as ne}from"./tools-nysPKnGT.js";import{t as re}from"./setConfig-DdSThoKj.js";import{t as v}from"./ulid-BY7rQVLN.js";import{a as y,r as b}from"./toast-BXgUfbyh.js";import{n as ie,r as ae,t as oe}from"./constants-DiETpg52.js";import{t as se}from"./shadow-claw-element-DIrv3P6A.js";import{t as x}from"./effect-BJCrpFdp.js";import{t as ce}from"./prompt-api-OUOP-B-R.js";import{t as S}from"./configurePeerJs-DDOAVSaH.js";import{t as C}from"./file-viewer-DLUBvOVD.js";import{t as le}from"./parseConfigBoolean-ByjZr9OM.js";const w={Light:`light`,Dark:`dark`,System:`system`},T=`shadow-claw-theme`;function ue(){return typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}function E(e){return e===`system`?ue():e}function D(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`))),window.dispatchEvent(new CustomEvent(`shadow-claw-theme-change`,{detail:{theme:e}}))}const O=u(T)||`system`,k=E(O);D(k);const A=new class{_resolved;_theme;constructor(){this._theme=new s.State(O),this._resolved=new s.State(k)}getTheme(){return{theme:this.theme,resolved:this.resolved}}init(){typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-color-scheme: dark)`).addEventListener(`change`,()=>{let e=ue();d(T,`system`),D(e),this._theme.set(`system`),this._resolved.set(e)}),window.addEventListener(`storage`,e=>{let t=p(T);e.key===t&&e.newValue&&this.setTheme(e.newValue)})}get resolved(){return this._resolved.get()}setTheme(e){let t=E(e);d(T,e),D(t),this._theme.set(e),this._resolved.set(t)}get theme(){return this._theme.get()}};A.init();async function j(e,t=3){for(let n=0;n<t;n++){if(e())return;await new Promise(e=>{requestAnimationFrame(()=>e())})}}function M(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 de(e,t,n){return n&&t===`pages`?M(e):t}function fe(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 pe(e,t,n,r){let i=n;if(!i)return;let a=fe(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 me={pages:()=>import(`./shadow-claw-pages-BRQw8bTm.js`),chat:()=>import(`./shadow-claw-chat-BxR6cBYQ.js`),tasks:()=>import(`./shadow-claw-tasks-BO8aXM2B.js`),files:()=>import(`./shadow-claw-files-B774Xz1d.js`),settings:()=>import(`./shadow-claw-settings-BGrDNyqh.js`),tools:()=>import(`./shadow-claw-tools-Bj6DLZ-2.js`),channels:()=>import(`./shadow-claw-channels-Ci2UPaaA.js`),terminal:()=>import(`./shadow-claw-terminal-BSeTuyDa.js`),"file-viewer":()=>import(`./shadow-claw-file-viewer-CDs1QGXk.js`),"pdf-viewer":()=>import(`./shadow-claw-pdf-viewer-gOiW-_Bh.js`)},N=new Map;async function P(e){let t=N.get(e);if(!t){let n=me[e];n?(t=n().then(()=>void 0),N.set(e,t)):t=Promise.resolve()}await t}function F(e,t,n,r,i){r&&P(`terminal`).catch(console.error),i!==null&&cancelAnimationFrame(i),i=requestAnimationFrame(()=>{i=null,pe(e,t,n,r)})}function he(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 I(e,t){if(e)for(let n of he(e))n.setMainCollapsedOverride?.(t)}function L(e,t,n){if(!e)return;let r=e.querySelector(`.activity-log-toggle`);r instanceof HTMLButtonElement&&(r.hidden=t!==`chat`||n===0)}function R(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 z(e,t){if(!e)return;let n=e.querySelector(`.header-main-toggle`);if(!(n instanceof HTMLButtonElement))return;let r=typeof t==`boolean`?t:R(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 B(e,t,n,r){if(!e)return;let i=e.querySelector(`.webvm-toggle`);if(!(i instanceof HTMLButtonElement))return;let a=t===`chat`||t===`files`;if(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(`webvm-toggle--error`);return}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))}const V={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 H(e,t){let n=V[t];if(!n)return;let r=e.querySelector(`[data-page-id="${t}"]`);!r||r.children.length>0||r.appendChild(document.createElement(n))}function U(e,t,n,r,i,a=!0){if(!e)return;let o=de(r,i,t.pagesSidebarHidden),s=!!t.chatSplitViewEnabled&&o!==`chat`,c=e.querySelector(`.main-content`),l=e.querySelector(`.chat-split-resize-handle`);if(s){let t=V.chat;t&&customElements.get(t)?H(e,`chat`):P(`chat`).then(()=>{e&&H(e,`chat`)}).catch(console.error),c&&c.classList.add(`split-chat-active`),l&&l.removeAttribute(`hidden`)}else c&&c.classList.remove(`split-chat-active`),l&&l.setAttribute(`hidden`,`hidden`);let u=V[o];u&&customElements.get(u)?H(e,o):P(o).then(()=>{e&&H(e,o)}).catch(console.error),e.querySelectorAll(`.page`).forEach(e=>{e.classList.remove(`active`)}),e.querySelectorAll(`.nav-item`).forEach(e=>{e.classList.remove(`active`)});let d=e.querySelector(`[data-page-id="${o}"]`);d&&d.classList.add(`active`);let f=e.querySelector(`[data-page="${o}"]`);f&&f.classList.add(`active`),t.currentPage=o,a&&n&&r.setActivePage(n,o).catch(console.error),F(e,t.currentPage,t.terminalElement,t.terminalVisible,t.terminalPlacementFrame),I(e,t.headerMainCollapsedOverride),z(e,t.headerMainCollapsedOverride),L(e,t.currentPage,r.activityLog.length),B(e,t.currentPage,t.terminalVisible,t.vmStatus);let p=e.querySelector(`.page.active`);if(p){let e=p;typeof e.scrollTo==`function`&&e.scrollTo(0,0)}if(o===`chat`){let t=e.querySelector(`shadow-claw-chat`);t&&typeof t.checkPromptApiOnboarding==`function`&&t.checkPromptApiOnboarding()}if(o===`files`&&n&&r.loadFiles(n).catch(console.error),o===`pages`){let t=e.querySelector(`shadow-claw-pages`);t&&typeof t.renderSelectedPage==`function`&&(t.renderSelectedPage(),typeof t.setupAutoRefreshTimer==`function`&&t.setupAutoRefreshTimer())}}async function W(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&&U(e,t,n,i,u),u===`files`&&c)if(/\.[^./]+$/u.test(c))try{await r.openFile(n,c,s||i.activeGroupId),l&&await j(()=>{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)await i.setActivePinnedPage(n,{groupId:s||i.activeGroupId||`br:main`,path:c});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 j(()=>typeof t.handleAnchorNavigation==`function`&&!!t.handleAnchorNavigation(l)))}}async function G(e,t,n,r,a,o){let s=await i(o,a.activeGroupId);s&&await W(e,t,n,r,a,s)}function K(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 q(t,n){if(t)try{await re(t,e.SIDEBAR_WIDTH,n)}catch{}}function J(e,t){let n=e?.querySelector(`.app-body`);if(!(n instanceof HTMLElement))return;let r=K(e,t);n.style.setProperty(`--sidebar-width`,`${r}px`)}async function ge(t,n,r,i){if(!t)return;let a=t.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 s=()=>{let e=t.querySelector(`.app-body`);if(!(e instanceof HTMLElement))return 250;let n=parseFloat(e.style.getPropertyValue(`--sidebar-width`));return Number.isFinite(n)&&n>0?n:r.getBoundingClientRect().width||250},c=()=>{let e=Math.round(K(t,s())),n=Math.round(K(t,2**53-1));a.setAttribute(`aria-valuemin`,`200`),a.setAttribute(`aria-valuemax`,String(n)),a.setAttribute(`aria-valuenow`,String(e))};try{let n=i?await o(i,e.SIDEBAR_WIDTH):void 0;typeof n==`number`&&Number.isFinite(n)&&n>0?J(t,n):J(t,250)}catch{J(t,250)}let l=null,u=0,d=0,f=e=>{if(e.pointerId!==l)return;let n=e.clientX-u;J(t,d+n),c()},p=()=>{if(l===null)return;l=null,a.classList.remove(`active`),document.removeEventListener(`pointermove`,f);let e=t.querySelector(`.app-body`);if(e instanceof HTMLElement){let t=parseFloat(e.style.getPropertyValue(`--sidebar-width`));Number.isFinite(t)&&t>0&&i&&q(i,t)}},m=e=>{e.pointerId===l&&p()};a.addEventListener(`pointerdown`,e=>{e.pointerType===`mouse`&&e.button!==0&&e.button!==-1||window.innerWidth<896||(e.preventDefault(),l=e.pointerId,u=e.clientX,d=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`,()=>{J(t,250),i&&q(i,250),c()}),a.addEventListener(`keydown`,e=>{if(window.innerWidth<896)return;let n=e.shiftKey?32:12,r=s(),a=null;e.key===`ArrowRight`?a=r+n:e.key===`ArrowLeft`?a=r-n:e.key===`Home`?a=200:e.key===`End`&&(a=K(t,2**53-1)),a!==null&&(e.preventDefault(),J(t,a),c(),i&&q(i,K(t,s())))}),c(),n.addCleanup(()=>{p(),a.removeEventListener(`pointerup`,m),a.removeEventListener(`pointercancel`,p)})}async function Y(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 _e={pages:e.SIDEBAR_PAGES_HIDDEN,chat:e.SIDEBAR_CHAT_HIDDEN,tasks:e.SIDEBAR_TASKS_HIDDEN,files:e.SIDEBAR_FILES_HIDDEN};function X(e,t,n){if(!e)return;let r=e.querySelector(`.nav-item[data-page="${t}"]`);r&&(r.hidden=n,r.setAttribute(`aria-hidden`,String(n)))}function ve(e){switch(e){case`pages`:return`pagesSidebarHidden`;case`chat`:return`chatSidebarHidden`;case`tasks`:return`tasksSidebarHidden`;case`files`:return`filesSidebarHidden`}}async function ye(e,t,n,r){for(let[n,i]of Object.entries(_e)){let a=n,s=!1;if(r)try{s=le(await o(r,i))}catch{s=!1}let c=ve(a);t[c]=s,X(e,a,s)}}function Z(e,t,n,r,i,a){switch(i){case`pages`:t.pagesSidebarHidden=a;break;case`chat`:t.chatSidebarHidden=a;break;case`tasks`:t.tasksSidebarHidden=a;break;case`files`:t.filesSidebarHidden=a;break}X(e,i,a),a&&t.currentPage===i&&U(e,t,r,n,M(n,t))}function be(e,t,n,r,i){Z(e,t,n,r,`pages`,i)}function Q(){let e=window.navigation;return!!(e&&typeof e.addEventListener==`function`&&typeof e.navigate==`function`)}function xe(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 Se(e,t){if(!e)return;let n=e.querySelector(`shadow-claw-chat`);n&&typeof n.setActivityLogCollapsedOverride==`function`&&n.setActivityLogCollapsedOverride(t)}function Ce(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 we(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),Se(e.shadowRoot,e.activityLogCollapsedOverride),Ce(e.shadowRoot,e.activityLogCollapsedOverride)}function Te(e){e.headerMainCollapsedOverride=!(typeof e.headerMainCollapsedOverride==`boolean`?e.headerMainCollapsedOverride:R(e.shadowRoot)?.isMainCollapsed?.()??!1),I(e.shadowRoot,e.headerMainCollapsedOverride),z(e.shadowRoot,e.headerMainCollapsedOverride)}function Ee(e,t){t.terminalVisible=!t.terminalVisible,B(e,t.currentPage,t.terminalVisible,t.vmStatus),F(e,t.currentPage,t.terminalElement,t.terminalVisible,t.terminalPlacementFrame)}function De(e,t){e===w.Dark?(t.add(`dark-mode`),t.remove(`light-mode`)):(t.add(`light-mode`),t.remove(`dark-mode`))}function Oe(e,t){if(!e)return;let n=e.querySelector(`.sun-icon`),r=e.querySelector(`.moon-icon`);n&&r&&(t===w.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 ke(e,t,n,r,i,a,o,s,c){if(!n||!e||!t)return;n.querySelectorAll(`.nav-item[data-page]`).forEach(e=>{let r=e;r.addEventListener(`click`,()=>{let e=r.dataset.page||M(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 l=n.getElementById(`menu-button`),u=n.querySelector(`.sidebar`);if(l&&u){l.addEventListener(`click`,()=>{u.classList.toggle(`open`)}),n.querySelectorAll(`.nav-item, .settings-btn`).forEach(t=>{t.addEventListener(`click`,()=>{e.innerWidth<896&&u.classList.remove(`open`)})}),t.addEventListener(`click`,t=>{let n=t.composedPath();e.innerWidth<896&&u.classList.contains(`open`)&&!n.includes(u)&&!n.includes(l)&&u.classList.remove(`open`)});let a=e.matchMedia?e.matchMedia(`(min-width: 56rem)`):{matches:!1,addEventListener:()=>{},removeEventListener:()=>{}},o=e=>{e.matches&&u.classList.remove(`open`)};o(a),a.addEventListener(`change`,o),ge(n,r,u,i)}let d=n.querySelector(`[data-action="show-settings"]`);d&&d.addEventListener(`click`,()=>{t.dispatchEvent(new CustomEvent(`shadow-claw-navigate`,{detail:{page:`settings`},bubbles:!0,composed:!0}))}),n.querySelector(`.header-main-toggle`)?.addEventListener(`click`,()=>{Te(r)}),n.querySelector(`.activity-log-toggle`)?.addEventListener(`click`,()=>{we(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=>{be(n,r,a,i,!!e.detail?.hidden)}),n.addEventListener(`sidebar-chat-visibility-change`,e=>{Z(n,r,a,i,`chat`,!!e.detail?.hidden)}),n.addEventListener(`sidebar-tasks-visibility-change`,e=>{Z(n,r,a,i,`tasks`,!!e.detail?.hidden)}),n.addEventListener(`sidebar-files-visibility-change`,e=>{Z(n,r,a,i,`files`,!!e.detail?.hidden)}),n.addEventListener(`chat-split-view-change`,e=>{r.chatSplitViewEnabled=!!e.detail?.enabled,U(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 f=n.querySelector(`.theme-mode-toggle`);f&&f.addEventListener(`click`,()=>{let{resolved:e}=s.getTheme(),t=e===w.Dark?w.Light:w.Dark;s.setTheme(t)}),n.querySelector(`.webvm-toggle`)?.addEventListener(`click`,()=>Ee(n,r)),n.addEventListener(`shadow-claw-terminal-slot-ready`,()=>{F(n,r.currentPage,r.terminalElement,r.terminalVisible,r.terminalPlacementFrame),I(n,r.headerMainCollapsedOverride),z(n,r.headerMainCollapsedOverride)}),e.addEventListener(`resize`,()=>{r.headerMainCollapsedOverride===null&&z(n,r.headerMainCollapsedOverride)}),t.addEventListener(`shadow-claw-navigate`,r.shadowClawNav),Q()?(e.navigation.addEventListener(`navigate`,r.handleNavigationApiNavigate),r.navigationListenerAttached=!0):(r.popstateListener=()=>{G(n,r,i,o,a,new URL(e.location.href))},e.addEventListener(`popstate`,r.popstateListener),t.addEventListener(`click`,r.fallbackClickListener),r.fallbackClickListenerAttached=!0),e.addEventListener(`shadow-claw-theme-change`,e=>{let t=e.detail.theme;Oe(n,t),De(t,r.classList)}),e.addEventListener(`shadow-claw-peer-error`,e=>{let r=e.detail,i=r.remotePeerId,a=r.error;Y(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 p=s.resolved;Oe(n,p),De(p,r.classList),r.appLifecycleCleanup&&=(r.appLifecycleCleanup(),null),r.orchestrator&&(r.appLifecycleCleanup=xe(e,t,r.orchestrator))}function Ae(e){if(e===void 0)return;e.documentElement.classList.remove(ie,`sc-prerender-override`);let t=e.querySelector(`shadow-claw`);t?.removeAttribute(oe),t?.removeAttribute(ae)}function je(e,n){if(!e)return;let r=n;if(r.navigationType===`reload`)return;let i=r?.destination?.url;if(typeof i!=`string`)return;let a=new URL(i);if(a.origin===window.location.origin&&t(a.pathname))return{parsedUrl:a,navigateEvent:r}}function Me(e,n){if(n.defaultPrevented||n.button!==0||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey)return null;let r=n.composedPath(),i=null;for(let e of r)if(e instanceof HTMLAnchorElement){i=e;break}if(!i)return null;let a=i.getAttribute(`href`)||``;return!a||a.startsWith(`javascript:`)||a.startsWith(`mailto:`)||a.startsWith(`tel:`)||i.target&&i.target!==`_self`||i.origin!==e.origin||!t(i.pathname)||i.pathname===e.pathname&&i.search===e.search&&i.hash!==e.hash?null:(n.preventDefault(),`${i.pathname}${i.search}${i.hash}`)}async function Ne(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 Pe(e,t,n,r){let i=await Ne(e,t,r);ee(n.orchestrator,r.id,i)}async function Fe(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}b(`Failed to open file from tool: ${e instanceof Error?e.message:String(e)}`,5e3);return}}async function Ie(e,t,n){n?.providerId===`llamafile`?await Y(e,t,f(n.reason)):n?.providerId===`transformers_js_local`?await Y(e,t,m(n.reason)):n?.providerId===`prompt_api`?await Y(e,t,ce(n.reason)):n?.providerId&&n.helpType&&await Y(e,t,te(n.providerId,n.helpType,n.reason))}async function Le(e,t,n,r,i,a){if(!(!r||!a?.roomId||!a?.hostPeerId)&&await Y(e,t,{mode:`confirm`,title:`Room invitation`,message:`${a.fromAlias||a.fromPeerId} invited you to join "${a.roomName}".`,confirmLabel:`Join`,cancelLabel:`Decline`}))try{c(n.orchestrator,a.roomId,a.hostPeerId,a.roomName),await i.switchConversation(r,`room:${a.roomId}`),U(t,n,r,i,`chat`),y(`Joined room "${a.roomName}"`)}catch(e){b(`Failed to join room: ${e instanceof Error?e.message:String(e)}`,6e3)}}function Re(e,t,n){let r=n.useTrailingSlash&&!t.includes(`#`)?t.endsWith(`/`)?t:t+`/`:t;n.replace?e.replaceState({},``,r):e.pushState({},``,r)}async function ze(e,t,i,a,o,s,c={replace:!1}){let l=n(r(s));if(Q()){window.navigation.navigate(l,{history:c.replace?`replace`:`push`});return}l!==window.location.pathname&&Re(globalThis.history,l,{...c,useTrailingSlash:!1}),await W(e,t,i,a,o,s)}function Be(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 Ve(e,t,n,r,i,a){let o=a.detail;o&&await ze(e,t,n,r,i,{page:Be(String(o.page||`chat`)),groupId:o.groupId,path:o.path,anchor:o.anchor})}async function He(e,t,n,r){await ye(e,t,n,r)}async function Ue(e,t,n,r){if(!n)return;let i=new URL(window.location?.href||`http://localhost/`),a=i.searchParams.get(`peer`);if(!a)return;let o=a.trim();if(o)try{let a=g(r),s=a.myPeerId;s||=v().toLowerCase();let c=new Set(a.trustedPeerIds);c.add(o),await S(r,n,s,Array.from(c),a.serverHost,a.serverPort,a.serverPath,a.serverSecure),a.enabled||await _(r,n,`peerjs`,!0);let l=await h.ensurePeerConversation(n,o);await h.switchConversation(n,l),U(e,t,n,h,`chat`),i.searchParams.delete(`peer`);let u=`${i.pathname}${i.search}${i.hash}`;window.history.replaceState({},``,u||`/`),y(`Connected to Peer: ${o.substring(0,8)}`)}catch(e){b(`Failed to process peer parameter: ${e instanceof Error?e.message:String(e)}`,6e3)}}const We=`pendingShares`;function Ge(e){return{id:typeof e?.id==`string`?e.id:``,createdAt:typeof e?.createdAt==`number`?e.createdAt:0,title:typeof e?.title==`string`?e.title:``,text:typeof e?.text==`string`?e.text:``,url:typeof e?.url==`string`?e.url:``,fileName:typeof e?.fileName==`string`?e.fileName:``,fileType:typeof e?.fileType==`string`?e.fileType:``,fileBytes:e?.fileBytes instanceof ArrayBuffer?e.fileBytes:null}}async function Ke(e){return!e||typeof e.transaction!=`function`?[]:new Promise((t,n)=>{let r;try{r=e.transaction(We,`readwrite`)}catch(e){if(e instanceof DOMException&&e.name===`NotFoundError`){t([]);return}n(e);return}let i=r.objectStore(We),a=i.getAll();a.onerror=()=>{n(a.error||Error(`Failed to read pending shares`))},a.onsuccess=()=>{let e=Array.isArray(a.result)?a.result.map(Ge).filter(e=>typeof e.id==`string`&&e.id.length>0).sort((e,t)=>e.createdAt-t.createdAt):[],r=i.clear();r.onerror=()=>{n(r.error||Error(`Failed to clear pending shares`))},r.onsuccess=()=>{t(e)}},r.onabort=()=>{n(r.error||Error(`Pending share transaction aborted`))}})}function qe(e){let t=[`# Shared Content`,``];return e.title&&t.push(`Title: ${e.title}`),e.url&&t.push(`URL: ${e.url}`),e.text&&t.push(``,e.text),t.join(`
1
+ import{r as e}from"./config-Dewnqegf.js";import{c as t,n,r,u as i}from"./app-routes-C6-H2zPH.js";import{i as a}from"./txPromise-C2iYogHX.js";import{t as o}from"./getConfig-4saf0Tkq.js";import{t as s}from"./dist-B9m1QM9v.js";import{R as c,Zt as l,a as u,c as d,lt as f,o as p,st as m,t as h,vt as g,w as ee,xn as te,xt as _}from"./orchestrator-BVnC4Vtt.js";import{o as ne}from"./tools-sOLCHTj8.js";import{t as re}from"./setConfig-DdSThoKj.js";import{t as v}from"./ulid-BY7rQVLN.js";import{a as y,r as b}from"./toast-BXgUfbyh.js";import{n as ie,r as ae,t as oe}from"./constants-DiETpg52.js";import{t as se}from"./shadow-claw-element-DIrv3P6A.js";import{t as x}from"./effect-BJCrpFdp.js";import{t as ce}from"./prompt-api-OUOP-B-R.js";import{t as S}from"./configurePeerJs-CaPU2sN5.js";import{t as C}from"./file-viewer-Df4qUJCn.js";import{t as le}from"./parseConfigBoolean-ByjZr9OM.js";const w={Light:`light`,Dark:`dark`,System:`system`},T=`shadow-claw-theme`;function E(){return typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}function ue(e){return e===`system`?E():e}function D(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`))),window.dispatchEvent(new CustomEvent(`shadow-claw-theme-change`,{detail:{theme:e}}))}const O=u(T)||`system`,k=ue(O);D(k);const A=new class{_resolved;_theme;constructor(){this._theme=new s.State(O),this._resolved=new s.State(k)}getTheme(){return{theme:this.theme,resolved:this.resolved}}init(){typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-color-scheme: dark)`).addEventListener(`change`,()=>{let e=E();d(T,`system`),D(e),this._theme.set(`system`),this._resolved.set(e)}),window.addEventListener(`storage`,e=>{let t=p(T);e.key===t&&e.newValue&&this.setTheme(e.newValue)})}get resolved(){return this._resolved.get()}setTheme(e){let t=ue(e);d(T,e),D(t),this._theme.set(e),this._resolved.set(t)}get theme(){return this._theme.get()}};A.init();async function j(e,t=3){for(let n=0;n<t;n++){if(e())return;await new Promise(e=>{requestAnimationFrame(()=>e())})}}function M(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 de(e,t,n){return n&&t===`pages`?M(e):t}function fe(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 pe(e,t,n,r){let i=n;if(!i)return;let a=fe(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 me={pages:()=>import(`./shadow-claw-pages-BpHRY4vH.js`),chat:()=>import(`./shadow-claw-chat-DIJ0A-QN.js`),tasks:()=>import(`./shadow-claw-tasks-CGsEv48K.js`),files:()=>import(`./shadow-claw-files-DIOUdKJr.js`),settings:()=>import(`./shadow-claw-settings-CE-aUo_J.js`),tools:()=>import(`./shadow-claw-tools-Cnu9hKy0.js`),channels:()=>import(`./shadow-claw-channels-C0w0c1EF.js`),terminal:()=>import(`./shadow-claw-terminal-DcaS7cPH.js`),"file-viewer":()=>import(`./shadow-claw-file-viewer-DYgZjZb9.js`),"pdf-viewer":()=>import(`./shadow-claw-pdf-viewer-gOiW-_Bh.js`)},N=new Map;async function P(e){let t=N.get(e);if(!t){let n=me[e];n?(t=n().then(()=>void 0),N.set(e,t)):t=Promise.resolve()}await t}function F(e,t,n,r,i){r&&P(`terminal`).catch(console.error),i!==null&&cancelAnimationFrame(i),i=requestAnimationFrame(()=>{i=null,pe(e,t,n,r)})}function he(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 I(e,t){if(e)for(let n of he(e))n.setMainCollapsedOverride?.(t)}function L(e,t,n){if(!e)return;let r=e.querySelector(`.activity-log-toggle`);r instanceof HTMLButtonElement&&(r.hidden=t!==`chat`||n===0)}function R(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 z(e,t){if(!e)return;let n=e.querySelector(`.header-main-toggle`);if(!(n instanceof HTMLButtonElement))return;let r=typeof t==`boolean`?t:R(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 B(e,t,n,r){if(!e)return;let i=e.querySelector(`.webvm-toggle`);if(!(i instanceof HTMLButtonElement))return;let a=t===`chat`||t===`files`;if(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(`webvm-toggle--error`);return}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))}const V={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 H(e,t){let n=V[t];if(!n)return;let r=e.querySelector(`[data-page-id="${t}"]`);!r||r.children.length>0||r.appendChild(document.createElement(n))}function U(e,t,n,r,i,a=!0){if(!e)return;let o=de(r,i,t.pagesSidebarHidden),s=!!t.chatSplitViewEnabled&&o!==`chat`,c=e.querySelector(`.main-content`),l=e.querySelector(`.chat-split-resize-handle`);if(s){let t=V.chat;t&&customElements.get(t)?H(e,`chat`):P(`chat`).then(()=>{e&&H(e,`chat`)}).catch(console.error),c&&c.classList.add(`split-chat-active`),l&&l.removeAttribute(`hidden`)}else c&&c.classList.remove(`split-chat-active`),l&&l.setAttribute(`hidden`,`hidden`);let u=V[o];u&&customElements.get(u)?H(e,o):P(o).then(()=>{e&&H(e,o)}).catch(console.error),e.querySelectorAll(`.page`).forEach(e=>{e.classList.remove(`active`)}),e.querySelectorAll(`.nav-item`).forEach(e=>{e.classList.remove(`active`)});let d=e.querySelector(`[data-page-id="${o}"]`);d&&d.classList.add(`active`);let f=e.querySelector(`[data-page="${o}"]`);f&&f.classList.add(`active`),t.currentPage=o,a&&n&&r.setActivePage(n,o).catch(console.error),F(e,t.currentPage,t.terminalElement,t.terminalVisible,t.terminalPlacementFrame),I(e,t.headerMainCollapsedOverride),z(e,t.headerMainCollapsedOverride),L(e,t.currentPage,r.activityLog.length),B(e,t.currentPage,t.terminalVisible,t.vmStatus);let p=e.querySelector(`.page.active`);if(p){let e=p;typeof e.scrollTo==`function`&&e.scrollTo(0,0)}if(o===`chat`){let t=e.querySelector(`shadow-claw-chat`);t&&typeof t.checkPromptApiOnboarding==`function`&&t.checkPromptApiOnboarding()}if(o===`files`&&n&&r.loadFiles(n).catch(console.error),o===`pages`){let t=e.querySelector(`shadow-claw-pages`);t&&typeof t.renderSelectedPage==`function`&&(t.renderSelectedPage(),typeof t.setupAutoRefreshTimer==`function`&&t.setupAutoRefreshTimer())}}function W(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 ge(e){if(!e||typeof window>`u`)return()=>{};let t=()=>W(e);t(),window.addEventListener(`popstate`,t,{passive:!0});let n=window.navigation;return n&&typeof n.addEventListener==`function`&&n.addEventListener(`navigate`,t,{passive:!0}),()=>{window.removeEventListener(`popstate`,t),n&&typeof n.removeEventListener==`function`&&n.removeEventListener(`navigate`,t)}}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&&U(e,t,n,i,u),u===`files`&&c)if(/\.[^./]+$/u.test(c))try{await r.openFile(n,c,s||i.activeGroupId),l&&await j(()=>{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)await i.setActivePinnedPage(n,{groupId:s||i.activeGroupId||`br:main`,path:c});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 j(()=>typeof t.handleAnchorNavigation==`function`&&!!t.handleAnchorNavigation(l)))}W(t)}async function K(e,t,n,r,a,o){let s=await i(o,a.activeGroupId);s&&await G(e,t,n,r,a,s)}function q(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 J(t,n){if(t)try{await re(t,e.SIDEBAR_WIDTH,n)}catch{}}function Y(e,t){let n=e?.querySelector(`.app-body`);if(!(n instanceof HTMLElement))return;let r=q(e,t);n.style.setProperty(`--sidebar-width`,`${r}px`)}async function _e(t,n,r,i){if(!t)return;let a=t.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 s=()=>{let e=t.querySelector(`.app-body`);if(!(e instanceof HTMLElement))return 250;let n=parseFloat(e.style.getPropertyValue(`--sidebar-width`));return Number.isFinite(n)&&n>0?n:r.getBoundingClientRect().width||250},c=()=>{let e=Math.round(q(t,s())),n=Math.round(q(t,2**53-1));a.setAttribute(`aria-valuemin`,`200`),a.setAttribute(`aria-valuemax`,String(n)),a.setAttribute(`aria-valuenow`,String(e))};try{let n=i?await o(i,e.SIDEBAR_WIDTH):void 0;typeof n==`number`&&Number.isFinite(n)&&n>0?Y(t,n):Y(t,250)}catch{Y(t,250)}let l=null,u=0,d=0,f=e=>{if(e.pointerId!==l)return;let n=e.clientX-u;Y(t,d+n),c()},p=()=>{if(l===null)return;l=null,a.classList.remove(`active`),document.removeEventListener(`pointermove`,f);let e=t.querySelector(`.app-body`);if(e instanceof HTMLElement){let t=parseFloat(e.style.getPropertyValue(`--sidebar-width`));Number.isFinite(t)&&t>0&&i&&J(i,t)}},m=e=>{e.pointerId===l&&p()};a.addEventListener(`pointerdown`,e=>{e.pointerType===`mouse`&&e.button!==0&&e.button!==-1||window.innerWidth<896||(e.preventDefault(),l=e.pointerId,u=e.clientX,d=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`,()=>{Y(t,250),i&&J(i,250),c()}),a.addEventListener(`keydown`,e=>{if(window.innerWidth<896)return;let n=e.shiftKey?32:12,r=s(),a=null;e.key===`ArrowRight`?a=r+n:e.key===`ArrowLeft`?a=r-n:e.key===`Home`?a=200:e.key===`End`&&(a=q(t,2**53-1)),a!==null&&(e.preventDefault(),Y(t,a),c(),i&&J(i,q(t,s())))}),c(),n.addCleanup(()=>{p(),a.removeEventListener(`pointerup`,m),a.removeEventListener(`pointercancel`,p)})}async function X(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 ve={pages:e.SIDEBAR_PAGES_HIDDEN,chat:e.SIDEBAR_CHAT_HIDDEN,tasks:e.SIDEBAR_TASKS_HIDDEN,files:e.SIDEBAR_FILES_HIDDEN};function Z(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 ye(e){switch(e){case`pages`:return`pagesSidebarHidden`;case`chat`:return`chatSidebarHidden`;case`tasks`:return`tasksSidebarHidden`;case`files`:return`filesSidebarHidden`}}async function be(e,t,n,r){for(let[n,i]of Object.entries(ve)){let a=n,s=!1;if(r)try{s=le(await o(r,i))}catch{s=!1}let c=ye(a);t[c]=s,Z(e,a,s)}}function Q(e,t,n,r,i,a){switch(i){case`pages`:t.pagesSidebarHidden=a;break;case`chat`:t.chatSidebarHidden=a;break;case`tasks`:t.tasksSidebarHidden=a;break;case`files`:t.filesSidebarHidden=a;break}Z(e,i,a),a&&t.currentPage===i&&U(e,t,r,n,M(n,t))}function xe(e,t,n,r,i){Q(e,t,n,r,`pages`,i)}function Se(){let e=window.navigation;return!!(e&&typeof e.addEventListener==`function`&&typeof e.navigate==`function`)}function Ce(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 we(e,t){if(!e)return;let n=e.querySelector(`shadow-claw-chat`);n&&typeof n.setActivityLogCollapsedOverride==`function`&&n.setActivityLogCollapsedOverride(t)}function Te(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 Ee(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),we(e.shadowRoot,e.activityLogCollapsedOverride),Te(e.shadowRoot,e.activityLogCollapsedOverride)}function De(e){e.headerMainCollapsedOverride=!(typeof e.headerMainCollapsedOverride==`boolean`?e.headerMainCollapsedOverride:R(e.shadowRoot)?.isMainCollapsed?.()??!1),I(e.shadowRoot,e.headerMainCollapsedOverride),z(e.shadowRoot,e.headerMainCollapsedOverride)}function Oe(e,t){t.terminalVisible=!t.terminalVisible,B(e,t.currentPage,t.terminalVisible,t.vmStatus),F(e,t.currentPage,t.terminalElement,t.terminalVisible,t.terminalPlacementFrame)}function ke(e,t){e===w.Dark?(t.add(`dark-mode`),t.remove(`light-mode`)):(t.add(`light-mode`),t.remove(`dark-mode`))}function Ae(e,t){if(!e)return;let n=e.querySelector(`.sun-icon`),r=e.querySelector(`.moon-icon`);n&&r&&(t===w.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 je(e,t,n,r,i,a,o,s,c){if(!n||!e||!t)return;n.querySelectorAll(`.nav-item[data-page]`).forEach(e=>{let r=e;r.addEventListener(`click`,()=>{let e=r.dataset.page||M(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 l=n.getElementById(`menu-button`),u=n.querySelector(`.sidebar`);if(l&&u){l.addEventListener(`click`,()=>{u.classList.toggle(`open`)}),n.querySelectorAll(`.nav-item, .settings-btn`).forEach(t=>{t.addEventListener(`click`,()=>{e.innerWidth<896&&u.classList.remove(`open`)})}),u.addEventListener(`click`,t=>{let n=t.target;e.innerWidth<896&&n?.closest(`a, button, .nav-item, .sidebar-link, .sidebar-item`)&&u.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`)&&u.classList.remove(`open`)}),t.addEventListener(`click`,t=>{let n=t.composedPath();e.innerWidth<896&&u.classList.contains(`open`)&&!n.includes(u)&&!n.includes(l)&&u.classList.remove(`open`)});let a=e.matchMedia?e.matchMedia(`(min-width: 56rem)`):{matches:!1,addEventListener:()=>{},removeEventListener:()=>{}},o=e=>{e.matches&&u.classList.remove(`open`)};o(a),a.addEventListener(`change`,o),_e(n,r,u,i)}let d=n.querySelector(`[data-action="show-settings"]`);d&&d.addEventListener(`click`,()=>{t.dispatchEvent(new CustomEvent(`shadow-claw-navigate`,{detail:{page:`settings`},bubbles:!0,composed:!0}))}),n.querySelector(`.header-main-toggle`)?.addEventListener(`click`,()=>{De(r)}),n.querySelector(`.activity-log-toggle`)?.addEventListener(`click`,()=>{Ee(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=>{xe(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,U(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 f=n.querySelector(`.theme-mode-toggle`);f&&f.addEventListener(`click`,()=>{let{resolved:e}=s.getTheme(),t=e===w.Dark?w.Light:w.Dark;s.setTheme(t)}),n.querySelector(`.webvm-toggle`)?.addEventListener(`click`,()=>Oe(n,r)),n.addEventListener(`shadow-claw-terminal-slot-ready`,()=>{F(n,r.currentPage,r.terminalElement,r.terminalVisible,r.terminalPlacementFrame),I(n,r.headerMainCollapsedOverride),z(n,r.headerMainCollapsedOverride)}),e.addEventListener(`resize`,()=>{r.headerMainCollapsedOverride===null&&z(n,r.headerMainCollapsedOverride)}),t.addEventListener(`shadow-claw-navigate`,r.shadowClawNav),Se()?(e.navigation.addEventListener(`navigate`,r.handleNavigationApiNavigate),r.navigationListenerAttached=!0):(r.popstateListener=t=>{let s=t?.state||e.history?.state;s?.inFeedScroll||s?.scrollSpy||s?.suppressRouter||K(n,r,i,o,a,new URL(e.location.href))},e.addEventListener(`popstate`,r.popstateListener),t.addEventListener(`click`,r.fallbackClickListener),r.fallbackClickListenerAttached=!0),e.addEventListener(`shadow-claw-theme-change`,e=>{let t=e.detail.theme;Ae(n,t),ke(t,r.classList)}),e.addEventListener(`shadow-claw-peer-error`,e=>{let r=e.detail,i=r.remotePeerId,a=r.error;X(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 p=s.resolved;Ae(n,p),ke(p,r.classList),r.appLifecycleCleanup&&=(r.appLifecycleCleanup(),null),r.orchestrator&&(r.appLifecycleCleanup=Ce(e,t,r.orchestrator)),ge(r)}function Me(e){if(e===void 0)return;e.documentElement.classList.remove(ie,`sc-prerender-override`);let t=e.querySelector(`shadow-claw`);t?.removeAttribute(oe),t?.removeAttribute(ae)}function Ne(e,n){if(!e)return;let r=n;if(r.navigationType===`reload`)return;let i=(typeof r?.destination?.getState==`function`?r.destination.getState():null)||(r.navigationType===`replace`&&typeof history<`u`?history.state:null);if(i?.inFeedScroll||i?.scrollSpy||i?.suppressRouter)return;let a=r?.destination?.url;if(typeof a!=`string`)return;let o=new URL(a);if(o.origin===window.location.origin&&t(o.pathname))return{parsedUrl:o,navigateEvent:r}}function Pe(e,n){if(n.defaultPrevented||n.button!==0||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey)return null;let r=n.composedPath(),i=null;for(let e of r)if(e instanceof HTMLAnchorElement){i=e;break}if(!i)return null;let a=i.getAttribute(`href`)||``;return!a||a.startsWith(`javascript:`)||a.startsWith(`mailto:`)||a.startsWith(`tel:`)||i.target&&i.target!==`_self`||i.origin!==e.origin||!t(i.pathname)||i.pathname===e.pathname&&i.search===e.search&&i.hash!==e.hash?null:(n.preventDefault(),`${i.pathname}${i.search}${i.hash}`)}async function Fe(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 Ie(e,t,n,r){let i=await Fe(e,t,r);ee(n.orchestrator,r.id,i)}async function Le(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}b(`Failed to open file from tool: ${e instanceof Error?e.message:String(e)}`,5e3);return}}async function Re(e,t,n){n?.providerId===`llamafile`?await X(e,t,f(n.reason)):n?.providerId===`transformers_js_local`?await X(e,t,m(n.reason)):n?.providerId===`prompt_api`?await X(e,t,ce(n.reason)):n?.providerId&&n.helpType&&await X(e,t,te(n.providerId,n.helpType,n.reason))}async function ze(e,t,n,r,i,a){if(!(!r||!a?.roomId||!a?.hostPeerId)&&await X(e,t,{mode:`confirm`,title:`Room invitation`,message:`${a.fromAlias||a.fromPeerId} invited you to join "${a.roomName}".`,confirmLabel:`Join`,cancelLabel:`Decline`}))try{c(n.orchestrator,a.roomId,a.hostPeerId,a.roomName),await i.switchConversation(r,`room:${a.roomId}`),U(t,n,r,i,`chat`),y(`Joined room "${a.roomName}"`)}catch(e){b(`Failed to join room: ${e instanceof Error?e.message:String(e)}`,6e3)}}function Be(e,t,n){let r=n.useTrailingSlash&&!t.includes(`#`)?t.endsWith(`/`)?t:t+`/`:t;n.replace?e.replaceState({},``,r):e.pushState({},``,r)}async function Ve(e,t,i,a,o,s,c={replace:!1}){let l=n(r(s)),u=typeof window<`u`&&window.location?`${window.location.pathname}${window.location.search}${window.location.hash}`:``;if(u&&l===u){await G(e,t,i,a,o,s);return}if(Se()){window.navigation.navigate(l,{history:c.replace?`replace`:`push`});return}l!==window.location.pathname&&Be(globalThis.history,l,{...c,useTrailingSlash:!1}),await G(e,t,i,a,o,s)}function He(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 Ue(e,t,n,r,i,a){let o=a.detail;o&&await Ve(e,t,n,r,i,{page:He(String(o.page||`chat`)),groupId:o.groupId,path:o.path,anchor:o.anchor})}async function We(e,t,n,r){await be(e,t,n,r)}async function Ge(e,t,n,r){if(!n)return;let i=new URL(window.location?.href||`http://localhost/`),a=i.searchParams.get(`peer`);if(!a)return;let o=a.trim();if(o)try{let a=g(r),s=a.myPeerId;s||=v().toLowerCase();let c=new Set(a.trustedPeerIds);c.add(o),await S(r,n,s,Array.from(c),a.serverHost,a.serverPort,a.serverPath,a.serverSecure),a.enabled||await _(r,n,`peerjs`,!0);let l=await h.ensurePeerConversation(n,o);await h.switchConversation(n,l),U(e,t,n,h,`chat`),i.searchParams.delete(`peer`);let u=`${i.pathname}${i.search}${i.hash}`;window.history.replaceState({},``,u||`/`),y(`Connected to Peer: ${o.substring(0,8)}`)}catch(e){b(`Failed to process peer parameter: ${e instanceof Error?e.message:String(e)}`,6e3)}}const Ke=`pendingShares`;function qe(e){return{id:typeof e?.id==`string`?e.id:``,createdAt:typeof e?.createdAt==`number`?e.createdAt:0,title:typeof e?.title==`string`?e.title:``,text:typeof e?.text==`string`?e.text:``,url:typeof e?.url==`string`?e.url:``,fileName:typeof e?.fileName==`string`?e.fileName:``,fileType:typeof e?.fileType==`string`?e.fileType:``,fileBytes:e?.fileBytes instanceof ArrayBuffer?e.fileBytes:null}}async function Je(e){return!e||typeof e.transaction!=`function`?[]:new Promise((t,n)=>{let r;try{r=e.transaction(Ke,`readwrite`)}catch(e){if(e instanceof DOMException&&e.name===`NotFoundError`){t([]);return}n(e);return}let i=r.objectStore(Ke),a=i.getAll();a.onerror=()=>{n(a.error||Error(`Failed to read pending shares`))},a.onsuccess=()=>{let e=Array.isArray(a.result)?a.result.map(qe).filter(e=>typeof e.id==`string`&&e.id.length>0).sort((e,t)=>e.createdAt-t.createdAt):[],r=i.clear();r.onerror=()=>{n(r.error||Error(`Failed to clear pending shares`))},r.onsuccess=()=>{t(e)}},r.onabort=()=>{n(r.error||Error(`Pending share transaction aborted`))}})}function Ye(e){let t=[`# Shared Content`,``];return e.title&&t.push(`Title: ${e.title}`),e.url&&t.push(`URL: ${e.url}`),e.text&&t.push(``,e.text),t.join(`
2
2
  `).trim()+`
3
- `}async function Je(e,t){let n=new Date,r=`Shared Files ${`${String(n.getFullYear())}-${String(n.getMonth()+1).padStart(2,`0`)}-${String(n.getDate()).padStart(2,`0`)}`}`,i=t.groups.find(e=>e.name===r);return i?(await t.switchConversation(e,i.groupId),i.groupId):(await t.createConversation(e,r)).groupId}function Ye(e,t){return(e.replace(/\\/g,`/`).split(`/`).filter(Boolean).pop()||``).replace(/\s+/g,`-`).replace(/[^A-Za-z0-9._-]/g,`-`).replace(/-+/g,`-`).replace(/^-+|-+$/g,``)||`${t}.txt`}async function Xe(e,t,n,r,i,a,o){if(!a)return;let s=await Ke(a);if(s.length!==0)try{let c=await Je(a,r),u=[];for(let e=0;e<s.length;e++){let t=s[e],n=`shared-${Date.now()}-${e+1}`;if(t.fileBytes instanceof ArrayBuffer){let e=Ye(t.fileName||(t.fileType===`application/pdf`?`${n}.pdf`:`${n}.bin`),n);await l(a,c,e,new Uint8Array(t.fileBytes)),u.push(e);continue}let r=Ye(t.fileName||`${n}.md`,n);await ne(a,c,r,qe(t)),u.push(r)}await r.loadFiles(a),U(t,n,a,r,`files`),u.length>0&&await i.openFile(a,u[0],c),y(`Imported ${u.length} shared item${u.length===1?``:`s`}.`);let d=o;if(d.searchParams.has(`share-target`)){d.searchParams.delete(`share-target`);let t=`${d.pathname}${d.search}${d.hash}`;e.history.replaceState({},``,t||`/`)}}catch(e){b(`Failed to import shared content: ${e instanceof Error?e.message:String(e)}`,6e3)}}async function Ze(e,t,n,r,i,a){if(!r)return;let o=new URL(window.location?.href||`http://localhost/`),s=(o.searchParams.get(`room`)||``).trim(),l=(o.searchParams.get(`host`)||``).trim(),u=(o.searchParams.get(`name`)||``).trim()||`Room`;if(!(!s||!l))try{let d=g(i),f=d.myPeerId;f||=v().toLowerCase();let p=new Set(d.trustedPeerIds);p.add(l),await S(i,r,f,Array.from(p),d.serverHost,d.serverPort,d.serverPath,d.serverSecure),d.enabled||await _(i,r,`peerjs`,!0),c(i,s,l,u),await a.switchConversation(r,`room:${s}`),U(t,n,r,a,`chat`),o.searchParams.delete(`room`),o.searchParams.delete(`host`),o.searchParams.delete(`name`);let m=`${o.pathname}${o.search}${o.hash}`;e.history.replaceState({},``,m||`/`),y(`Joined room "${u}"`)}catch(e){b(`Failed to join room: ${e instanceof Error?e.message:String(e)}`,6e3)}}function Qe(e,t,n,r){e&&(x(()=>{let t=C.file;t&&(P(`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`&&P(`pdf-viewer`).catch(console.error))}),x(()=>{let e=r.state;e===`idle`&&(t.previousOrchestratorState===`thinking`||t.previousOrchestratorState===`responding`)&&y(`Response complete`,2500),t.previousOrchestratorState=e}),x(()=>{let i=r.activePage;i!==t.currentPage&&U(e,t,n,r,i,!1)}),x(()=>{r.activityLog,L(e,t.currentPage,r.activityLog.length)}))}const $e=new CSSStyleSheet;$e.replaceSync(`*,
3
+ `}async function Xe(e,t){let n=new Date,r=`Shared Files ${`${String(n.getFullYear())}-${String(n.getMonth()+1).padStart(2,`0`)}-${String(n.getDate()).padStart(2,`0`)}`}`,i=t.groups.find(e=>e.name===r);return i?(await t.switchConversation(e,i.groupId),i.groupId):(await t.createConversation(e,r)).groupId}function Ze(e,t){return(e.replace(/\\/g,`/`).split(`/`).filter(Boolean).pop()||``).replace(/\s+/g,`-`).replace(/[^A-Za-z0-9._-]/g,`-`).replace(/-+/g,`-`).replace(/^-+|-+$/g,``)||`${t}.txt`}async function Qe(e,t,n,r,i,a,o){if(!a)return;let s=await Je(a);if(s.length!==0)try{let c=await Xe(a,r),u=[];for(let e=0;e<s.length;e++){let t=s[e],n=`shared-${Date.now()}-${e+1}`;if(t.fileBytes instanceof ArrayBuffer){let e=Ze(t.fileName||(t.fileType===`application/pdf`?`${n}.pdf`:`${n}.bin`),n);await l(a,c,e,new Uint8Array(t.fileBytes)),u.push(e);continue}let r=Ze(t.fileName||`${n}.md`,n);await ne(a,c,r,Ye(t)),u.push(r)}await r.loadFiles(a),U(t,n,a,r,`files`),u.length>0&&await i.openFile(a,u[0],c),y(`Imported ${u.length} shared item${u.length===1?``:`s`}.`);let d=o;if(d.searchParams.has(`share-target`)){d.searchParams.delete(`share-target`);let t=`${d.pathname}${d.search}${d.hash}`;e.history.replaceState({},``,t||`/`)}}catch(e){b(`Failed to import shared content: ${e instanceof Error?e.message:String(e)}`,6e3)}}async function $e(e,t,n,r,i,a){if(!r)return;let o=new URL(window.location?.href||`http://localhost/`),s=(o.searchParams.get(`room`)||``).trim(),l=(o.searchParams.get(`host`)||``).trim(),u=(o.searchParams.get(`name`)||``).trim()||`Room`;if(!(!s||!l))try{let d=g(i),f=d.myPeerId;f||=v().toLowerCase();let p=new Set(d.trustedPeerIds);p.add(l),await S(i,r,f,Array.from(p),d.serverHost,d.serverPort,d.serverPath,d.serverSecure),d.enabled||await _(i,r,`peerjs`,!0),c(i,s,l,u),await a.switchConversation(r,`room:${s}`),U(t,n,r,a,`chat`),o.searchParams.delete(`room`),o.searchParams.delete(`host`),o.searchParams.delete(`name`);let m=`${o.pathname}${o.search}${o.hash}`;e.history.replaceState({},``,m||`/`),y(`Joined room "${u}"`)}catch(e){b(`Failed to join room: ${e instanceof Error?e.message:String(e)}`,6e3)}}function et(e,t,n,r){e&&(x(()=>{let t=C.file;t&&(P(`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`&&P(`pdf-viewer`).catch(console.error))}),x(()=>{let e=r.state;e===`idle`&&(t.previousOrchestratorState===`thinking`||t.previousOrchestratorState===`responding`)&&y(`Response complete`,2500),t.previousOrchestratorState=e}),x(()=>{let i=r.activePage;i!==t.currentPage&&U(e,t,n,r,i,!1)}),x(()=>{r.activityLog,L(e,t.currentPage,r.activityLog.length)}))}const tt=new CSSStyleSheet;tt.replaceSync(`*,
4
4
  *::before,
5
5
  *::after {
6
6
  box-sizing: border-box;
@@ -92,6 +92,10 @@ a:hover {
92
92
  transition: transform 0.2s ease;
93
93
  }
94
94
 
95
+ .header-main-toggle {
96
+ display: var(--shadow-claw-header-main-toggle-display, block);
97
+ }
98
+
95
99
  .header-main-toggle[aria-pressed="true"],
96
100
  .activity-log-toggle[aria-pressed="true"] {
97
101
  box-shadow: 0 0 0.5rem
@@ -281,6 +285,28 @@ a:hover {
281
285
  padding: 0.5rem;
282
286
  }
283
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
+
284
310
  .sidebar-spacer {
285
311
  flex: 1;
286
312
  }
@@ -951,8 +977,12 @@ shadow-claw-conversations {
951
977
  <li class="nav-item" data-page="files">📁 Files</li>
952
978
  </ul>
953
979
  </nav>
980
+ <slot name="sidebar-nav"></slot>
981
+ <slot name="sidebar"></slot>
982
+ <slot name="sidebar-content"></slot>
954
983
  <div class="sidebar-spacer"></div>
955
984
  <shadow-claw-conversations></shadow-claw-conversations>
985
+ <slot name="sidebar-footer"></slot>
956
986
  <div class="sidebar-footer">
957
987
  <button class="settings-btn" data-action="show-settings">
958
988
  ⚙️ Settings
@@ -1121,4 +1151,4 @@ shadow-claw-conversations {
1121
1151
  </shadow-claw-dialog>
1122
1152
  </div>
1123
1153
  </template>
1124
- `,`text/html`),et=$.querySelector(`template`);let tt=[];tt=et?Array.from(et.content.children):Array.from($.head.children).concat(Array.from($.body.children));var nt=tt;const rt=`shadow-claw`;var it=class extends se{static styles=$e;static template=nt;activityLogCollapsedOverride=null;appLifecycleCleanup=null;chatSidebarHidden=!1;chatSplitViewEnabled=!1;currentPage=h.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`);try{let{Orchestrator:e}=await import(`./orchestrator-Dc_Q73La.js`);Promise.all([import(`./shadow-claw-conversations-DcwG05-H.js`),import(`./shadow-claw-dialog-BrOwAOdk.js`),import(`./shadow-claw-toast-C_zXWKX9.js`)]).catch(console.error),await new Promise(e=>{`requestIdleCallback`in window?window.requestIdleCallback(()=>e(null)):setTimeout(e,0)}),this.orchestrator||=new e,this.db=await this.orchestrator.init(),await h.init(this.db,this.orchestrator),a(this.db),await this.render();let t=h.activePage===`pages`&&this.pagesSidebarHidden||h.activePage===`chat`&&this.chatSidebarHidden||h.activePage===`tasks`&&this.tasksSidebarHidden||h.activePage===`files`&&this.filesSidebarHidden;h.hadPersistedActivePage&&!t?U(this.shadowRoot,this,this.db,h,h.activePage,!1):t?U(this.shadowRoot,this,this.db,h,M(h,this),!1):U(this.shadowRoot,this,this.db,h,h.activePage,!1),await G(this.shadowRoot,this,this.db,C,h,new URL(window.location.href)),await Ue(this.shadowRoot,this,this.db,this.orchestrator),await Ze(window,this.shadowRoot,this,this.db,this.orchestrator,h),await Xe(window,this.shadowRoot,this,h,C,this.db,new URL(window.location.href)),console.log(`ShadowClaw UI initialized`),typeof customElements<`u`&&await customElements.whenDefined(`shadow-claw-${this.currentPage}`);let{isMemoryStorageFallbackActive:n}=await import(`./memoryStorage-Bew1X8Uy.js`).then(e=>e.n);if(n()){let{showWarning:e}=await import(`./toast-BXgUfbyh.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)}h.setReady()}finally{Ae(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),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=Me(window.location,e);t&&(Re(globalThis.history,t,{replace:!1,useTrailingSlash:!1}),G(this.shadowRoot,this,this.db,C,h,new URL(window.location.href)))};handleNavigationApiNavigate=e=>{let{parsedUrl:t,navigateEvent:n}=je(this.db,e)??{};!t||!n||typeof n.intercept==`function`&&n.intercept({handler:async()=>{let{parseRouteFromUrlAsync:e}=await import(`./app-routes-BMQ4HFaM.js`).then(e=>e.t),n=await e(t,h.activeGroupId);n&&await W(this.shadowRoot,this,this.db,C,h,n)}})};shadowClawNav=e=>{!this.shadowRoot||!this.db||Ve(this.shadowRoot,this,this.db,C,h,e)};async render(){if(ke(window,document,this.shadowRoot,this,this.db,h,C,A,new URL(window.location.href)),await He(this.shadowRoot,this,h,this.db),this.db)try{let{getConfig:e}=await import(`./getConfig-4saf0Tkq.js`).then(e=>e.n),{parseConfigBoolean:t}=await import(`./parseConfigBoolean-ByjZr9OM.js`).then(e=>e.n),{CONFIG_KEYS:n}=await import(`./config-D4lVqMs8.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.shadowRoot&&e instanceof HTMLElement){let{initChatSplitResize:t}=await import(`./initChatSplitResize-osJXM2gu.js`);await t(this.shadowRoot,this,e,this.db)}this.terminalElement=document.createElement(`shadow-claw-terminal`),this.terminalElement&&(this.terminalElement.orchestrator=this.orchestrator),B(this.shadowRoot,this.currentPage,this.terminalVisible,this.vmStatus),F(this.shadowRoot,this.currentPage,this.terminalElement,this.terminalVisible,this.terminalPlacementFrame),I(this.shadowRoot,this.headerMainCollapsedOverride),z(this.shadowRoot,this.headerMainCollapsedOverride),L(this.shadowRoot,this.currentPage,h.activityLog.length);let t=e=>{this.vmStatus=e,e.error&&this.terminalVisible&&(this.terminalVisible=!1,this.terminalElement&&(this.terminalElement.hidden=!0),F(this.shadowRoot,this.currentPage,this.terminalElement,this.terminalVisible,this.terminalPlacementFrame)),B(this.shadowRoot,this.currentPage,this.terminalVisible,this.vmStatus)};this.vmStatus=this.orchestrator.vmStatus||this.vmStatus,B(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=>Fe(this.db,h,C,e)),this.orchestrator.events.on(`provider-help`,e=>Ie(document,this.shadowRoot,e)),this.orchestrator.events.on(`room-invite`,e=>Le(document,this.shadowRoot,this,this.db,h,e)),this.orchestrator.events.on(`ask-user`,e=>Pe(document,this.shadowRoot,this,e)),Qe(this.shadowRoot,this,this.db,h)}async requestDialog(e){return Y(document,this.shadowRoot,e)}};customElements.get(rt)||customElements.define(rt,it);
1154
+ `,`text/html`),nt=$.querySelector(`template`);let rt=[];rt=nt?Array.from(nt.content.children):Array.from($.head.children).concat(Array.from($.body.children));var it=rt;const at=`shadow-claw`;var ot=class extends se{static styles=tt;static template=it;activityLogCollapsedOverride=null;appLifecycleCleanup=null;chatSidebarHidden=!1;chatSplitViewEnabled=!1;currentPage=h.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`);try{let{Orchestrator:e}=await import(`./orchestrator-CQcc7OFA.js`);Promise.all([import(`./shadow-claw-conversations-DMyG_5zj.js`),import(`./shadow-claw-dialog-BrOwAOdk.js`),import(`./shadow-claw-toast-C_zXWKX9.js`)]).catch(console.error),await new Promise(e=>{`requestIdleCallback`in window?window.requestIdleCallback(()=>e(null)):setTimeout(e,0)}),this.orchestrator||=new e,this.db=await this.orchestrator.init(),await h.init(this.db,this.orchestrator),a(this.db),await this.render();let t=h.activePage===`pages`&&this.pagesSidebarHidden||h.activePage===`chat`&&this.chatSidebarHidden||h.activePage===`tasks`&&this.tasksSidebarHidden||h.activePage===`files`&&this.filesSidebarHidden;h.hadPersistedActivePage&&!t?U(this.shadowRoot,this,this.db,h,h.activePage,!1):t?U(this.shadowRoot,this,this.db,h,M(h,this),!1):U(this.shadowRoot,this,this.db,h,h.activePage,!1),await K(this.shadowRoot,this,this.db,C,h,new URL(window.location.href)),await Ge(this.shadowRoot,this,this.db,this.orchestrator),await $e(window,this.shadowRoot,this,this.db,this.orchestrator,h),await Qe(window,this.shadowRoot,this,h,C,this.db,new URL(window.location.href)),console.log(`ShadowClaw UI initialized`),typeof customElements<`u`&&await customElements.whenDefined(`shadow-claw-${this.currentPage}`);let{isMemoryStorageFallbackActive:n}=await import(`./memoryStorage-ykv-Ri-y.js`).then(e=>e.n);if(n()){let{showWarning:e}=await import(`./toast-BXgUfbyh.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)}h.setReady()}finally{Me(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),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=Pe(window.location,e);t&&(Be(globalThis.history,t,{replace:!1,useTrailingSlash:!1}),K(this.shadowRoot,this,this.db,C,h,new URL(window.location.href)))};handleNavigationApiNavigate=e=>{let{parsedUrl:t,navigateEvent:n}=Ne(this.db,e)??{};!t||!n||typeof n.intercept==`function`&&n.intercept({handler:async()=>{let{parseRouteFromUrlAsync:e}=await import(`./app-routes-C6-H2zPH.js`).then(e=>e.t),n=await e(t,h.activeGroupId);n&&await G(this.shadowRoot,this,this.db,C,h,n)}})};shadowClawNav=e=>{!this.shadowRoot||!this.db||Ue(this.shadowRoot,this,this.db,C,h,e)};async render(){if(je(window,document,this.shadowRoot,this,this.db,h,C,A,new URL(window.location.href)),await We(this.shadowRoot,this,h,this.db),this.db)try{let{getConfig:e}=await import(`./getConfig-4saf0Tkq.js`).then(e=>e.n),{parseConfigBoolean:t}=await import(`./parseConfigBoolean-ByjZr9OM.js`).then(e=>e.n),{CONFIG_KEYS:n}=await import(`./config-Dewnqegf.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.shadowRoot&&e instanceof HTMLElement){let{initChatSplitResize:t}=await import(`./initChatSplitResize-C3Rp1LeZ.js`);await t(this.shadowRoot,this,e,this.db)}this.terminalElement=document.createElement(`shadow-claw-terminal`),this.terminalElement&&(this.terminalElement.orchestrator=this.orchestrator),B(this.shadowRoot,this.currentPage,this.terminalVisible,this.vmStatus),F(this.shadowRoot,this.currentPage,this.terminalElement,this.terminalVisible,this.terminalPlacementFrame),I(this.shadowRoot,this.headerMainCollapsedOverride),z(this.shadowRoot,this.headerMainCollapsedOverride),L(this.shadowRoot,this.currentPage,h.activityLog.length);let t=e=>{this.vmStatus=e,e.error&&this.terminalVisible&&(this.terminalVisible=!1,this.terminalElement&&(this.terminalElement.hidden=!0),F(this.shadowRoot,this.currentPage,this.terminalElement,this.terminalVisible,this.terminalPlacementFrame)),B(this.shadowRoot,this.currentPage,this.terminalVisible,this.vmStatus)};this.vmStatus=this.orchestrator.vmStatus||this.vmStatus,B(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=>Le(this.db,h,C,e)),this.orchestrator.events.on(`provider-help`,e=>Re(document,this.shadowRoot,e)),this.orchestrator.events.on(`room-invite`,e=>ze(document,this.shadowRoot,this,this.db,h,e)),this.orchestrator.events.on(`ask-user`,e=>Ie(document,this.shadowRoot,this,e)),et(this.shadowRoot,this,this.db,h)}async requestDialog(e){return X(document,this.shadowRoot,e)}};customElements.get(at)||customElements.define(at,ot);
@@ -1,4 +1,4 @@
1
- import{b as e,r as t}from"./config-D4lVqMs8.js";import{r as n}from"./txPromise-C2iYogHX.js";import{t as r}from"./getConfig-4saf0Tkq.js";import{d as i,g as a}from"./custom-element-security-piU2U-Ec.js";import{a as o,r as s}from"./toast-BXgUfbyh.js";import{t as c}from"./shadow-claw-element-DIrv3P6A.js";import"./shadow-claw-card-DCxWEHgX.js";import"./shadow-claw-empty-state-CkvLk0-B.js";function l(e){return!e||e.authMode===`token`||e.authMode===`token`?`token`:e.authMode===`basic`?`basic`:e.authMode===`oauth`||e.oauthProviderId||e.oauthClientId||e.oauthClientSecret||e.refreshToken||e.accessTokenExpiresAt||e.tokenType||e.oauthReauthRequired?`oauth`:`token`}const u=new CSSStyleSheet;u.replaceSync(`*,
1
+ import{b as e,r as t}from"./config-Dewnqegf.js";import{r as n}from"./txPromise-C2iYogHX.js";import{t as r}from"./getConfig-4saf0Tkq.js";import{d as i,g as a}from"./custom-element-security-DLgHMf5R.js";import{a as o,r as s}from"./toast-BXgUfbyh.js";import{t as c}from"./shadow-claw-element-DIrv3P6A.js";import"./shadow-claw-card-DCxWEHgX.js";import"./shadow-claw-empty-state-CkvLk0-B.js";function l(e){return!e||e.authMode===`token`||e.authMode===`token`?`token`:e.authMode===`basic`?`basic`:e.authMode===`oauth`||e.oauthProviderId||e.oauthClientId||e.oauthClientSecret||e.refreshToken||e.accessTokenExpiresAt||e.tokenType||e.oauthReauthRequired?`oauth`:`token`}const u=new CSSStyleSheet;u.replaceSync(`*,
2
2
  *::before,
3
3
  *::after {
4
4
  font-family: var(--shadow-claw-font-sans);
@@ -1,4 +1,4 @@
1
- import{i as e,t}from"./rolldown-runtime-aKtaBQYM.js";import{r as n}from"./txPromise-C2iYogHX.js";import{B as r,F as i,L as a,_t as o,mt as s,nt as c,pt as l,qt as u,rt as d,t as f,vt as p,xt as m,yt as h,z as g}from"./orchestrator-D6tel2Zp.js";import{t as _}from"./ulid-BY7rQVLN.js";import{a as v,r as y,s as b}from"./toast-BXgUfbyh.js";import{t as x}from"./shadow-claw-element-DIrv3P6A.js";import{t as S}from"./effect-BJCrpFdp.js";import"./shadow-claw-page-header-action-button-Bmua3mAb.js";import{t as C}from"./configurePeerJs-DDOAVSaH.js";import"./shadow-claw-page-header-CAXokjQy.js";var w=t(((e,t)=>{t.exports=function(){return typeof Promise==`function`&&Promise.prototype&&Promise.prototype.then}})),T=t((e=>{let t,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(e){if(!e)throw Error(`"version" cannot be null or undefined`);if(e<1||e>40)throw Error(`"version" should be in range from 1 to 40`);return e*4+17},e.getSymbolTotalCodewords=function(e){return n[e]},e.getBCHDigit=function(e){let t=0;for(;e!==0;)t++,e>>>=1;return t},e.setToSJISFunction=function(e){if(typeof e!=`function`)throw Error(`"toSJISFunc" is not a valid function.`);t=e},e.isKanjiModeEnabled=function(){return t!==void 0},e.toSJIS=function(e){return t(e)}})),E=t((e=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`l`:case`low`:return e.L;case`m`:case`medium`:return e.M;case`q`:case`quartile`:return e.Q;case`h`:case`high`:return e.H;default:throw Error(`Unknown EC Level: `+t)}}e.isValid=function(e){return e&&e.bit!==void 0&&e.bit>=0&&e.bit<4},e.from=function(n,r){if(e.isValid(n))return n;try{return t(n)}catch{return r}}})),D=t(((e,t)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(e){let t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(let n=0;n<t;n++)this.putBit((e>>>t-n-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},t.exports=n})),ee=t(((e,t)=>{function n(e){if(!e||e<1)throw Error(`BitMatrix size must be defined and greater than 0`);this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}n.prototype.set=function(e,t,n,r){let i=e*this.size+t;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(e,t){return this.data[e*this.size+t]},n.prototype.xor=function(e,t,n){this.data[e*this.size+t]^=n},n.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]},t.exports=n})),te=t((e=>{let t=T().getSymbolSize;e.getRowColCoords=function(e){if(e===1)return[];let n=Math.floor(e/7)+2,r=t(e),i=r===145?26:Math.ceil((r-13)/(2*n-2))*2,a=[r-7];for(let e=1;e<n-1;e++)a[e]=a[e-1]-i;return a.push(6),a.reverse()},e.getPositions=function(t){let n=[],r=e.getRowColCoords(t),i=r.length;for(let e=0;e<i;e++)for(let t=0;t<i;t++)e===0&&t===0||e===0&&t===i-1||e===i-1&&t===0||n.push([r[e],r[t]]);return n}})),ne=t((e=>{let t=T().getSymbolSize;e.getPositions=function(e){let n=t(e);return[[0,0],[n-7,0],[0,n-7]]}})),O=t((e=>{e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};let t={N1:3,N2:3,N3:40,N4:10};e.isValid=function(e){return e!=null&&e!==``&&!isNaN(e)&&e>=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){let n=e.size,r=0,i=0,a=0,o=null,s=null;for(let c=0;c<n;c++){i=a=0,o=s=null;for(let l=0;l<n;l++){let n=e.get(c,l);n===o?i++:(i>=5&&(r+=t.N1+(i-5)),o=n,i=1),n=e.get(l,c),n===s?a++:(a>=5&&(r+=t.N1+(a-5)),s=n,a=1)}i>=5&&(r+=t.N1+(i-5)),a>=5&&(r+=t.N1+(a-5))}return r},e.getPenaltyN2=function(e){let n=e.size,r=0;for(let t=0;t<n-1;t++)for(let i=0;i<n-1;i++){let n=e.get(t,i)+e.get(t,i+1)+e.get(t+1,i)+e.get(t+1,i+1);(n===4||n===0)&&r++}return r*t.N2},e.getPenaltyN3=function(e){let n=e.size,r=0,i=0,a=0;for(let t=0;t<n;t++){i=a=0;for(let o=0;o<n;o++)i=i<<1&2047|e.get(t,o),o>=10&&(i===1488||i===93)&&r++,a=a<<1&2047|e.get(o,t),o>=10&&(a===1488||a===93)&&r++}return r*t.N3},e.getPenaltyN4=function(e){let n=0,r=e.data.length;for(let t=0;t<r;t++)n+=e.data[t];return Math.abs(Math.ceil(n*100/r/5)-10)*t.N4};function n(t,n,r){switch(t){case e.Patterns.PATTERN000:return(n+r)%2==0;case e.Patterns.PATTERN001:return n%2==0;case e.Patterns.PATTERN010:return r%3==0;case e.Patterns.PATTERN011:return(n+r)%3==0;case e.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2==0;case e.Patterns.PATTERN101:return n*r%2+n*r%3==0;case e.Patterns.PATTERN110:return(n*r%2+n*r%3)%2==0;case e.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2==0;default:throw Error(`bad maskPattern:`+t)}}e.applyMask=function(e,t){let r=t.size;for(let i=0;i<r;i++)for(let a=0;a<r;a++)t.isReserved(a,i)||t.xor(a,i,n(e,a,i))},e.getBestMask=function(t,n){let r=Object.keys(e.Patterns).length,i=0,a=1/0;for(let o=0;o<r;o++){n(o),e.applyMask(o,t);let r=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(o,t),r<a&&(a=r,i=o)}return i}})),k=t((e=>{let t=E(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(e,r){switch(r){case t.L:return n[(e-1)*4+0];case t.M:return n[(e-1)*4+1];case t.Q:return n[(e-1)*4+2];case t.H:return n[(e-1)*4+3];default:return}},e.getTotalCodewordsCount=function(e,n){switch(n){case t.L:return r[(e-1)*4+0];case t.M:return r[(e-1)*4+1];case t.Q:return r[(e-1)*4+2];case t.H:return r[(e-1)*4+3];default:return}}})),re=t((e=>{let t=new Uint8Array(512),n=new Uint8Array(256);(function(){let e=1;for(let r=0;r<255;r++)t[r]=e,n[e]=r,e<<=1,e&256&&(e^=285);for(let e=255;e<512;e++)t[e]=t[e-255]})(),e.log=function(e){if(e<1)throw Error(`log(`+e+`)`);return n[e]},e.exp=function(e){return t[e]},e.mul=function(e,r){return e===0||r===0?0:t[n[e]+n[r]]}})),A=t((e=>{let t=re();e.mul=function(e,n){let r=new Uint8Array(e.length+n.length-1);for(let i=0;i<e.length;i++)for(let a=0;a<n.length;a++)r[i+a]^=t.mul(e[i],n[a]);return r},e.mod=function(e,n){let r=new Uint8Array(e);for(;r.length-n.length>=0;){let e=r[0];for(let i=0;i<n.length;i++)r[i]^=t.mul(n[i],e);let i=0;for(;i<r.length&&r[i]===0;)i++;r=r.slice(i)}return r},e.generateECPolynomial=function(n){let r=new Uint8Array([1]);for(let i=0;i<n;i++)r=e.mul(r,new Uint8Array([1,t.exp(i)]));return r}})),ie=t(((e,t)=>{let n=A();function r(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(e){this.degree=e,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(e){if(!this.genPoly)throw Error(`Encoder not initialized`);let t=new Uint8Array(e.length+this.degree);t.set(e);let r=n.mod(t,this.genPoly),i=this.degree-r.length;if(i>0){let e=new Uint8Array(this.degree);return e.set(r,i),e}return r},t.exports=r})),j=t((e=>{e.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}})),M=t((e=>{let t=`(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+`;t=t.replace(/u/g,`\\u`);let n=`(?:(?![A-Z0-9 $%*+\\-./:]|`+t+`)(?:.|[\r
1
+ import{i as e,t}from"./rolldown-runtime-aKtaBQYM.js";import{r as n}from"./txPromise-C2iYogHX.js";import{B as r,F as i,L as a,_t as o,mt as s,nt as c,pt as l,qt as u,rt as d,t as f,vt as p,xt as m,yt as h,z as g}from"./orchestrator-BVnC4Vtt.js";import{t as _}from"./ulid-BY7rQVLN.js";import{a as v,r as y,s as b}from"./toast-BXgUfbyh.js";import{t as x}from"./shadow-claw-element-DIrv3P6A.js";import{t as S}from"./effect-BJCrpFdp.js";import"./shadow-claw-page-header-action-button-Bmua3mAb.js";import{t as C}from"./configurePeerJs-CaPU2sN5.js";import"./shadow-claw-page-header-D4LmUigA.js";var w=t(((e,t)=>{t.exports=function(){return typeof Promise==`function`&&Promise.prototype&&Promise.prototype.then}})),T=t((e=>{let t,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(e){if(!e)throw Error(`"version" cannot be null or undefined`);if(e<1||e>40)throw Error(`"version" should be in range from 1 to 40`);return e*4+17},e.getSymbolTotalCodewords=function(e){return n[e]},e.getBCHDigit=function(e){let t=0;for(;e!==0;)t++,e>>>=1;return t},e.setToSJISFunction=function(e){if(typeof e!=`function`)throw Error(`"toSJISFunc" is not a valid function.`);t=e},e.isKanjiModeEnabled=function(){return t!==void 0},e.toSJIS=function(e){return t(e)}})),E=t((e=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`l`:case`low`:return e.L;case`m`:case`medium`:return e.M;case`q`:case`quartile`:return e.Q;case`h`:case`high`:return e.H;default:throw Error(`Unknown EC Level: `+t)}}e.isValid=function(e){return e&&e.bit!==void 0&&e.bit>=0&&e.bit<4},e.from=function(n,r){if(e.isValid(n))return n;try{return t(n)}catch{return r}}})),D=t(((e,t)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(e){let t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(let n=0;n<t;n++)this.putBit((e>>>t-n-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},t.exports=n})),ee=t(((e,t)=>{function n(e){if(!e||e<1)throw Error(`BitMatrix size must be defined and greater than 0`);this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}n.prototype.set=function(e,t,n,r){let i=e*this.size+t;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(e,t){return this.data[e*this.size+t]},n.prototype.xor=function(e,t,n){this.data[e*this.size+t]^=n},n.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]},t.exports=n})),te=t((e=>{let t=T().getSymbolSize;e.getRowColCoords=function(e){if(e===1)return[];let n=Math.floor(e/7)+2,r=t(e),i=r===145?26:Math.ceil((r-13)/(2*n-2))*2,a=[r-7];for(let e=1;e<n-1;e++)a[e]=a[e-1]-i;return a.push(6),a.reverse()},e.getPositions=function(t){let n=[],r=e.getRowColCoords(t),i=r.length;for(let e=0;e<i;e++)for(let t=0;t<i;t++)e===0&&t===0||e===0&&t===i-1||e===i-1&&t===0||n.push([r[e],r[t]]);return n}})),ne=t((e=>{let t=T().getSymbolSize;e.getPositions=function(e){let n=t(e);return[[0,0],[n-7,0],[0,n-7]]}})),O=t((e=>{e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};let t={N1:3,N2:3,N3:40,N4:10};e.isValid=function(e){return e!=null&&e!==``&&!isNaN(e)&&e>=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){let n=e.size,r=0,i=0,a=0,o=null,s=null;for(let c=0;c<n;c++){i=a=0,o=s=null;for(let l=0;l<n;l++){let n=e.get(c,l);n===o?i++:(i>=5&&(r+=t.N1+(i-5)),o=n,i=1),n=e.get(l,c),n===s?a++:(a>=5&&(r+=t.N1+(a-5)),s=n,a=1)}i>=5&&(r+=t.N1+(i-5)),a>=5&&(r+=t.N1+(a-5))}return r},e.getPenaltyN2=function(e){let n=e.size,r=0;for(let t=0;t<n-1;t++)for(let i=0;i<n-1;i++){let n=e.get(t,i)+e.get(t,i+1)+e.get(t+1,i)+e.get(t+1,i+1);(n===4||n===0)&&r++}return r*t.N2},e.getPenaltyN3=function(e){let n=e.size,r=0,i=0,a=0;for(let t=0;t<n;t++){i=a=0;for(let o=0;o<n;o++)i=i<<1&2047|e.get(t,o),o>=10&&(i===1488||i===93)&&r++,a=a<<1&2047|e.get(o,t),o>=10&&(a===1488||a===93)&&r++}return r*t.N3},e.getPenaltyN4=function(e){let n=0,r=e.data.length;for(let t=0;t<r;t++)n+=e.data[t];return Math.abs(Math.ceil(n*100/r/5)-10)*t.N4};function n(t,n,r){switch(t){case e.Patterns.PATTERN000:return(n+r)%2==0;case e.Patterns.PATTERN001:return n%2==0;case e.Patterns.PATTERN010:return r%3==0;case e.Patterns.PATTERN011:return(n+r)%3==0;case e.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2==0;case e.Patterns.PATTERN101:return n*r%2+n*r%3==0;case e.Patterns.PATTERN110:return(n*r%2+n*r%3)%2==0;case e.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2==0;default:throw Error(`bad maskPattern:`+t)}}e.applyMask=function(e,t){let r=t.size;for(let i=0;i<r;i++)for(let a=0;a<r;a++)t.isReserved(a,i)||t.xor(a,i,n(e,a,i))},e.getBestMask=function(t,n){let r=Object.keys(e.Patterns).length,i=0,a=1/0;for(let o=0;o<r;o++){n(o),e.applyMask(o,t);let r=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(o,t),r<a&&(a=r,i=o)}return i}})),k=t((e=>{let t=E(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(e,r){switch(r){case t.L:return n[(e-1)*4+0];case t.M:return n[(e-1)*4+1];case t.Q:return n[(e-1)*4+2];case t.H:return n[(e-1)*4+3];default:return}},e.getTotalCodewordsCount=function(e,n){switch(n){case t.L:return r[(e-1)*4+0];case t.M:return r[(e-1)*4+1];case t.Q:return r[(e-1)*4+2];case t.H:return r[(e-1)*4+3];default:return}}})),re=t((e=>{let t=new Uint8Array(512),n=new Uint8Array(256);(function(){let e=1;for(let r=0;r<255;r++)t[r]=e,n[e]=r,e<<=1,e&256&&(e^=285);for(let e=255;e<512;e++)t[e]=t[e-255]})(),e.log=function(e){if(e<1)throw Error(`log(`+e+`)`);return n[e]},e.exp=function(e){return t[e]},e.mul=function(e,r){return e===0||r===0?0:t[n[e]+n[r]]}})),A=t((e=>{let t=re();e.mul=function(e,n){let r=new Uint8Array(e.length+n.length-1);for(let i=0;i<e.length;i++)for(let a=0;a<n.length;a++)r[i+a]^=t.mul(e[i],n[a]);return r},e.mod=function(e,n){let r=new Uint8Array(e);for(;r.length-n.length>=0;){let e=r[0];for(let i=0;i<n.length;i++)r[i]^=t.mul(n[i],e);let i=0;for(;i<r.length&&r[i]===0;)i++;r=r.slice(i)}return r},e.generateECPolynomial=function(n){let r=new Uint8Array([1]);for(let i=0;i<n;i++)r=e.mul(r,new Uint8Array([1,t.exp(i)]));return r}})),ie=t(((e,t)=>{let n=A();function r(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(e){this.degree=e,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(e){if(!this.genPoly)throw Error(`Encoder not initialized`);let t=new Uint8Array(e.length+this.degree);t.set(e);let r=n.mod(t,this.genPoly),i=this.degree-r.length;if(i>0){let e=new Uint8Array(this.degree);return e.set(r,i),e}return r},t.exports=r})),j=t((e=>{e.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}})),M=t((e=>{let t=`(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+`;t=t.replace(/u/g,`\\u`);let n=`(?:(?![A-Z0-9 $%*+\\-./:]|`+t+`)(?:.|[\r
2
2
  ]))+`;e.KANJI=new RegExp(t,`g`),e.BYTE_KANJI=RegExp(`[^A-Z0-9 $%*+\\-./:]+`,`g`),e.BYTE=new RegExp(n,`g`),e.NUMERIC=RegExp(`[0-9]+`,`g`),e.ALPHANUMERIC=RegExp(`[A-Z $%*+\\-./:]+`,`g`);let r=RegExp(`^`+t+`$`),i=RegExp(`^[0-9]+$`),a=RegExp(`^[A-Z0-9 $%*+\\-./:]+$`);e.testKanji=function(e){return r.test(e)},e.testNumeric=function(e){return i.test(e)},e.testAlphanumeric=function(e){return a.test(e)}})),N=t((e=>{let t=j(),n=M();e.NUMERIC={id:`Numeric`,bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:`Alphanumeric`,bit:2,ccBits:[9,11,13]},e.BYTE={id:`Byte`,bit:4,ccBits:[8,16,16]},e.KANJI={id:`Kanji`,bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(e,n){if(!e.ccBits)throw Error(`Invalid mode: `+e);if(!t.isValid(n))throw Error(`Invalid version: `+n);return n>=1&&n<10?e.ccBits[0]:n<27?e.ccBits[1]:e.ccBits[2]},e.getBestModeForData=function(t){return n.testNumeric(t)?e.NUMERIC:n.testAlphanumeric(t)?e.ALPHANUMERIC:n.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(e){if(e&&e.id)return e.id;throw Error(`Invalid mode`)},e.isValid=function(e){return e&&e.bit&&e.ccBits};function r(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`numeric`:return e.NUMERIC;case`alphanumeric`:return e.ALPHANUMERIC;case`kanji`:return e.KANJI;case`byte`:return e.BYTE;default:throw Error(`Unknown mode: `+t)}}e.from=function(t,n){if(e.isValid(t))return t;try{return r(t)}catch{return n}}})),ae=t((e=>{let t=T(),n=k(),r=E(),i=N(),a=j(),o=7973,s=t.getBCHDigit(o);function c(t,n,r){for(let i=1;i<=40;i++)if(n<=e.getCapacity(i,r,t))return i}function l(e,t){return i.getCharCountIndicator(e,t)+4}function u(e,t){let n=0;return e.forEach(function(e){let r=l(e.mode,t);n+=r+e.getBitsLength()}),n}function d(t,n){for(let r=1;r<=40;r++)if(u(t,r)<=e.getCapacity(r,n,i.MIXED))return r}e.from=function(e,t){return a.isValid(e)?parseInt(e,10):t},e.getCapacity=function(e,r,o){if(!a.isValid(e))throw Error(`Invalid QR Code version`);o===void 0&&(o=i.BYTE);let s=(t.getSymbolTotalCodewords(e)-n.getTotalCodewordsCount(e,r))*8;if(o===i.MIXED)return s;let c=s-l(o,e);switch(o){case i.NUMERIC:return Math.floor(c/10*3);case i.ALPHANUMERIC:return Math.floor(c/11*2);case i.KANJI:return Math.floor(c/13);case i.BYTE:default:return Math.floor(c/8)}},e.getBestVersionForData=function(e,t){let n,i=r.from(t,r.M);if(Array.isArray(e)){if(e.length>1)return d(e,i);if(e.length===0)return 1;n=e[0]}else n=e;return c(n.mode,n.getLength(),i)},e.getEncodedBits=function(e){if(!a.isValid(e)||e<7)throw Error(`Invalid QR Code version`);let n=e<<12;for(;t.getBCHDigit(n)-s>=0;)n^=o<<t.getBCHDigit(n)-s;return e<<12|n}})),oe=t((e=>{let t=T(),n=1335,r=t.getBCHDigit(n);e.getEncodedBits=function(e,i){let a=e.bit<<3|i,o=a<<10;for(;t.getBCHDigit(o)-r>=0;)o^=n<<t.getBCHDigit(o)-r;return(a<<10|o)^21522}})),se=t(((e,t)=>{let n=N();function r(e){this.mode=n.NUMERIC,this.data=e.toString()}r.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){let t,n,r;for(t=0;t+3<=this.data.length;t+=3)n=this.data.substr(t,3),r=parseInt(n,10),e.put(r,10);let i=this.data.length-t;i>0&&(n=this.data.substr(t),r=parseInt(n,10),e.put(r,i*3+1))},t.exports=r})),ce=t(((e,t)=>{let n=N(),r=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`.split(``);function i(e){this.mode=n.ALPHANUMERIC,this.data=e}i.getBitsLength=function(e){return 11*Math.floor(e/2)+e%2*6},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t;for(t=0;t+2<=this.data.length;t+=2){let n=r.indexOf(this.data[t])*45;n+=r.indexOf(this.data[t+1]),e.put(n,11)}this.data.length%2&&e.put(r.indexOf(this.data[t]),6)},t.exports=i})),le=t(((e,t)=>{let n=N();function r(e){this.mode=n.BYTE,typeof e==`string`?this.data=new TextEncoder().encode(e):this.data=new Uint8Array(e)}r.getBitsLength=function(e){return e*8},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){for(let t=0,n=this.data.length;t<n;t++)e.put(this.data[t],8)},t.exports=r})),ue=t(((e,t)=>{let n=N(),r=T();function i(e){this.mode=n.KANJI,this.data=e}i.getBitsLength=function(e){return e*13},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t;for(t=0;t<this.data.length;t++){let n=r.toSJIS(this.data[t]);if(n>=33088&&n<=40956)n-=33088;else if(n>=57408&&n<=60351)n-=49472;else throw Error(`Invalid SJIS character: `+this.data[t]+`
3
3
  Make sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),e.put(n,13)}},t.exports=i})),de=t(((e,t)=>{var n={single_source_shortest_paths:function(e,t,r){var i={},a={};a[t]=0;var o=n.PriorityQueue.make();o.push(t,0);for(var s,c,l,u,d,f,p,m,h;!o.empty();)for(l in s=o.pop(),c=s.value,u=s.cost,d=e[c]||{},d)d.hasOwnProperty(l)&&(f=d[l],p=u+f,m=a[l],h=a[l]===void 0,(h||m>p)&&(a[l]=p,o.push(l,p),i[l]=c));if(r!==void 0&&a[r]===void 0){var g=[`Could not find a path from `,t,` to `,r,`.`].join(``);throw Error(g)}return i},extract_shortest_path_from_predecessor_list:function(e,t){for(var n=[],r=t;r;)n.push(r),e[r],r=e[r];return n.reverse(),n},find_path:function(e,t,r){var i=n.single_source_shortest_paths(e,t,r);return n.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(e){var t=n.PriorityQueue,r={},i;for(i in e||={},t)t.hasOwnProperty(i)&&(r[i]=t[i]);return r.queue=[],r.sorter=e.sorter||t.default_sorter,r},default_sorter:function(e,t){return e.cost-t.cost},push:function(e,t){var n={value:e,cost:t};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};t!==void 0&&(t.exports=n)})),fe=t((e=>{let t=N(),n=se(),r=ce(),i=le(),a=ue(),o=M(),s=T(),c=de();function l(e){return unescape(encodeURIComponent(e)).length}function u(e,t,n){let r=[],i;for(;(i=e.exec(n))!==null;)r.push({data:i[0],index:i.index,mode:t,length:i[0].length});return r}function d(e){let n=u(o.NUMERIC,t.NUMERIC,e),r=u(o.ALPHANUMERIC,t.ALPHANUMERIC,e),i,a;return s.isKanjiModeEnabled()?(i=u(o.BYTE,t.BYTE,e),a=u(o.KANJI,t.KANJI,e)):(i=u(o.BYTE_KANJI,t.BYTE,e),a=[]),n.concat(r,i,a).sort(function(e,t){return e.index-t.index}).map(function(e){return{data:e.data,mode:e.mode,length:e.length}})}function f(e,o){switch(o){case t.NUMERIC:return n.getBitsLength(e);case t.ALPHANUMERIC:return r.getBitsLength(e);case t.KANJI:return a.getBitsLength(e);case t.BYTE:return i.getBitsLength(e)}}function p(e){return e.reduce(function(e,t){let n=e.length-1>=0?e[e.length-1]:null;return n&&n.mode===t.mode?(e[e.length-1].data+=t.data,e):(e.push(t),e)},[])}function m(e){let n=[];for(let r=0;r<e.length;r++){let i=e[r];switch(i.mode){case t.NUMERIC:n.push([i,{data:i.data,mode:t.ALPHANUMERIC,length:i.length},{data:i.data,mode:t.BYTE,length:i.length}]);break;case t.ALPHANUMERIC:n.push([i,{data:i.data,mode:t.BYTE,length:i.length}]);break;case t.KANJI:n.push([i,{data:i.data,mode:t.BYTE,length:l(i.data)}]);break;case t.BYTE:n.push([{data:i.data,mode:t.BYTE,length:l(i.data)}])}}return n}function h(e,n){let r={},i={start:{}},a=[`start`];for(let o=0;o<e.length;o++){let s=e[o],c=[];for(let e=0;e<s.length;e++){let l=s[e],u=``+o+e;c.push(u),r[u]={node:l,lastCount:0},i[u]={};for(let e=0;e<a.length;e++){let o=a[e];r[o]&&r[o].node.mode===l.mode?(i[o][u]=f(r[o].lastCount+l.length,l.mode)-f(r[o].lastCount,l.mode),r[o].lastCount+=l.length):(r[o]&&(r[o].lastCount=l.length),i[o][u]=f(l.length,l.mode)+4+t.getCharCountIndicator(l.mode,n))}}a=c}for(let e=0;e<a.length;e++)i[a[e]].end=0;return{map:i,table:r}}function g(e,o){let c,l=t.getBestModeForData(e);if(c=t.from(o,l),c!==t.BYTE&&c.bit<l.bit)throw Error(`"`+e+`" cannot be encoded with mode `+t.toString(c)+`.
4
4
  Suggested mode is: `+t.toString(l));switch(c===t.KANJI&&!s.isKanjiModeEnabled()&&(c=t.BYTE),c){case t.NUMERIC:return new n(e);case t.ALPHANUMERIC:return new r(e);case t.KANJI:return new a(e);case t.BYTE:return new i(e)}}e.fromArray=function(e){return e.reduce(function(e,t){return typeof t==`string`?e.push(g(t,null)):t.data&&e.push(g(t.data,t.mode)),e},[])},e.fromString=function(t,n){let r=h(m(d(t,s.isKanjiModeEnabled())),n),i=c.find_path(r.map,`start`,`end`),a=[];for(let e=1;e<i.length-1;e++)a.push(r.table[i[e]].node);return e.fromArray(p(a))},e.rawSplit=function(t){return e.fromArray(d(t,s.isKanjiModeEnabled()))}})),pe=t((e=>{let t=T(),n=E(),r=D(),i=ee(),a=te(),o=ne(),s=O(),c=k(),l=ie(),u=ae(),d=oe(),f=N(),p=fe();function m(e,t){let n=e.size,r=o.getPositions(t);for(let t=0;t<r.length;t++){let i=r[t][0],a=r[t][1];for(let t=-1;t<=7;t++)if(!(i+t<=-1||n<=i+t))for(let r=-1;r<=7;r++)a+r<=-1||n<=a+r||(t>=0&&t<=6&&(r===0||r===6)||r>=0&&r<=6&&(t===0||t===6)||t>=2&&t<=4&&r>=2&&r<=4?e.set(i+t,a+r,!0,!0):e.set(i+t,a+r,!1,!0))}}function h(e){let t=e.size;for(let n=8;n<t-8;n++){let t=n%2==0;e.set(n,6,t,!0),e.set(6,n,t,!0)}}function g(e,t){let n=a.getPositions(t);for(let t=0;t<n.length;t++){let r=n[t][0],i=n[t][1];for(let t=-2;t<=2;t++)for(let n=-2;n<=2;n++)t===-2||t===2||n===-2||n===2||t===0&&n===0?e.set(r+t,i+n,!0,!0):e.set(r+t,i+n,!1,!0)}}function _(e,t){let n=e.size,r=u.getEncodedBits(t),i,a,o;for(let t=0;t<18;t++)i=Math.floor(t/3),a=t%3+n-8-3,o=(r>>t&1)==1,e.set(i,a,o,!0),e.set(a,i,o,!0)}function v(e,t,n){let r=e.size,i=d.getEncodedBits(t,n),a,o;for(a=0;a<15;a++)o=(i>>a&1)==1,a<6?e.set(a,8,o,!0):a<8?e.set(a+1,8,o,!0):e.set(r-15+a,8,o,!0),a<8?e.set(8,r-a-1,o,!0):a<9?e.set(8,15-a-1+1,o,!0):e.set(8,15-a-1,o,!0);e.set(r-8,8,1,!0)}function y(e,t){let n=e.size,r=-1,i=n-1,a=7,o=0;for(let s=n-1;s>0;s-=2)for(s===6&&s--;;){for(let n=0;n<2;n++)if(!e.isReserved(i,s-n)){let r=!1;o<t.length&&(r=(t[o]>>>a&1)==1),e.set(i,s-n,r),a--,a===-1&&(o++,a=7)}if(i+=r,i<0||n<=i){i-=r,r=-r;break}}}function b(e,n,i){let a=new r;i.forEach(function(t){a.put(t.mode.bit,4),a.put(t.getLength(),f.getCharCountIndicator(t.mode,e)),t.write(a)});let o=(t.getSymbolTotalCodewords(e)-c.getTotalCodewordsCount(e,n))*8;for(a.getLengthInBits()+4<=o&&a.put(0,4);a.getLengthInBits()%8!=0;)a.putBit(0);let s=(o-a.getLengthInBits())/8;for(let e=0;e<s;e++)a.put(e%2?17:236,8);return x(a,e,n)}function x(e,n,r){let i=t.getSymbolTotalCodewords(n),a=i-c.getTotalCodewordsCount(n,r),o=c.getBlocksCount(n,r),s=o-i%o,u=Math.floor(i/o),d=Math.floor(a/o),f=d+1,p=u-d,m=new l(p),h=0,g=Array(o),_=Array(o),v=0,y=new Uint8Array(e.buffer);for(let e=0;e<o;e++){let t=e<s?d:f;g[e]=y.slice(h,h+t),_[e]=m.encode(g[e]),h+=t,v=Math.max(v,t)}let b=new Uint8Array(i),x=0,S,C;for(S=0;S<v;S++)for(C=0;C<o;C++)S<g[C].length&&(b[x++]=g[C][S]);for(S=0;S<p;S++)for(C=0;C<o;C++)b[x++]=_[C][S];return b}function S(e,n,r,a){let o;if(Array.isArray(e))o=p.fromArray(e);else if(typeof e==`string`){let t=n;if(!t){let n=p.rawSplit(e);t=u.getBestVersionForData(n,r)}o=p.fromString(e,t||40)}else throw Error(`Invalid data`);let c=u.getBestVersionForData(o,r);if(!c)throw Error(`The amount of data is too big to be stored in a QR Code`);if(!n)n=c;else if(n<c)throw Error(`
@@ -1,4 +1,4 @@
1
- import{i as e,r as t,t as n}from"./rolldown-runtime-aKtaBQYM.js";import{c as r,r as i}from"./config-D4lVqMs8.js";import{i as a}from"./app-routes-BMQ4HFaM.js";import{n as o,r as s,t as c}from"./txPromise-C2iYogHX.js";import{t as l}from"./getConfig-4saf0Tkq.js";import{t as u}from"./browser-nBz_r6l4.js";import{_ as d,d as f,v as p,y as m}from"./custom-element-security-piU2U-Ec.js";import{t as h}from"./dist-B9m1QM9v.js";import{Qt as g,Tt as _,a as v,gn as y,hn as b,mn as x,pn as S,t as C,u as w,vn as T}from"./orchestrator-D6tel2Zp.js";import{t as E}from"./setConfig-DdSThoKj.js";import{t as D}from"./buffer-9oRIc-5Z.js";import{a as O,i as k,r as A,s as j}from"./toast-BXgUfbyh.js";import{n as M}from"./e2e-bridge-CybB810Q.js";import{t as N}from"./shadow-claw-element-DIrv3P6A.js";import{t as P}from"./effect-BJCrpFdp.js";import{i as F,n as I,r as L}from"./prompt-api-OUOP-B-R.js";import"./shadow-claw-page-header-action-button-Bmua3mAb.js";import"./shadow-claw-page-header-CAXokjQy.js";import{t as R}from"./markdown-CZA-Ye2Q.js";import{a as z,n as B}from"./peerjs-CYs1F7sq.js";import{t as V}from"./downloadGroupFile-BiZQYY-O.js";import{t as H}from"./file-viewer-DLUBvOVD.js";import"./shadow-claw-dialog-BrOwAOdk.js"
1
+ import{i as e,r as t,t as n}from"./rolldown-runtime-aKtaBQYM.js";import{c as r,r as i}from"./config-Dewnqegf.js";import{i as a}from"./app-routes-C6-H2zPH.js";import{n as o,r as s,t as c}from"./txPromise-C2iYogHX.js";import{t as l}from"./getConfig-4saf0Tkq.js";import{t as u}from"./browser-nBz_r6l4.js";import{_ as d,d as f,v as p,y as m}from"./custom-element-security-DLgHMf5R.js";import{t as h}from"./dist-B9m1QM9v.js";import{Qt as g,Tt as _,a as v,gn as y,hn as b,mn as x,pn as S,t as C,u as w,vn as T}from"./orchestrator-BVnC4Vtt.js";import{t as E}from"./setConfig-DdSThoKj.js";import{t as D}from"./buffer-9oRIc-5Z.js";import{a as O,i as k,r as A,s as j}from"./toast-BXgUfbyh.js";import{n as M}from"./e2e-bridge-BkaldjV2.js";import{t as N}from"./shadow-claw-element-DIrv3P6A.js";import{t as P}from"./effect-BJCrpFdp.js";import{i as F,n as I,r as L}from"./prompt-api-OUOP-B-R.js";import"./shadow-claw-page-header-action-button-Bmua3mAb.js";import"./shadow-claw-page-header-D4LmUigA.js";import{t as R}from"./markdown-D3A902nT.js";import{a as z,n as B}from"./peerjs-CYC2cI1Y.js";import{t as V}from"./downloadGroupFile-ChWHuap_.js";import{t as H}from"./file-viewer-Df4qUJCn.js";import"./shadow-claw-dialog-BrOwAOdk.js"
2
2
  /*!
3
3
 
4
4
  JSZip v3.10.1 - A JavaScript class for generating and reading zip files
@@ -1,4 +1,4 @@
1
- import{r as e}from"./config-D4lVqMs8.js";import{r as t}from"./txPromise-C2iYogHX.js";import{t as n}from"./getConfig-4saf0Tkq.js";import{t as r}from"./orchestrator-D6tel2Zp.js";import{t as i}from"./setConfig-DdSThoKj.js";import{a,r as o}from"./toast-BXgUfbyh.js";import{t as s}from"./shadow-claw-element-DIrv3P6A.js";import{t as c}from"./effect-BJCrpFdp.js";const l=new CSSStyleSheet;l.replaceSync(`*,
1
+ import{r as e}from"./config-Dewnqegf.js";import{r as t}from"./txPromise-C2iYogHX.js";import{t as n}from"./getConfig-4saf0Tkq.js";import{t as r}from"./orchestrator-BVnC4Vtt.js";import{t as i}from"./setConfig-DdSThoKj.js";import{a,r as o}from"./toast-BXgUfbyh.js";import{t as s}from"./shadow-claw-element-DIrv3P6A.js";import{t as c}from"./effect-BJCrpFdp.js";const l=new CSSStyleSheet;l.replaceSync(`*,
2
2
  *::before,
3
3
  *::after {
4
4
  font-family: var(--shadow-claw-font-sans);
@@ -240,4 +240,4 @@ import{r as e}from"./config-D4lVqMs8.js";import{r as t}from"./txPromise-C2iYogHX
240
240
  </div>
241
241
  </div>
242
242
  </template>
243
- `,`text/html`),d=u.querySelector(`template`);let f=[];f=d?Array.from(d.content.children):Array.from(u.head.children).concat(Array.from(u.body.children));var p=f;const m=`shadow-claw-control-plane`;function h(e){try{let t=new URL(e).hostname.toLowerCase();if(t===`localhost`||t===`127.0.0.1`||t===`::1`||t===`[::1]`)return`loopback`;if(/^(10\.|172\.(1[6-9]|2\d|3[01])\.|192\.168\.)/.test(t)||!t.includes(`.`)||t.endsWith(`.local`)||t.endsWith(`.lan`)||t.endsWith(`.home`)||t.endsWith(`.internal`))return`private`}catch{}}var g=class extends s{static styles=l;static template=p;db;orchestrator;constructor(){super(),this.db=null,this.orchestrator=null}async connectedCallback(){if(!this.shadowRoot)throw Error(`shadowRoot not found`);this.db=await t(),this.orchestrator=r.orchestrator,this.bindEventListeners(),this.setupEffects(),await this.render()}bindEventListeners(){let e=this.shadowRoot;e&&(e.querySelector(`[data-action="save-control-plane-transport"]`)?.addEventListener(`click`,()=>{this.saveControlPlaneTransport()}),e.querySelector(`[data-action="save-control-plane-url"]`)?.addEventListener(`click`,()=>{this.saveControlPlaneUrl()}),e.querySelector(`[data-action="test-control-plane-connection"]`)?.addEventListener(`click`,()=>{this.testControlPlaneConnection()}),e.querySelector(`[data-setting="control-plane-enabled-toggle"]`)?.addEventListener(`change`,e=>{let t=e.target;this.saveControlPlaneEnabled(t.checked)}))}setupEffects(){c(()=>{r.ready&&(this.orchestrator=r.orchestrator,this.render())})}async probeControlPlane(e){let t;try{t=new URL(e)}catch{return{success:!1,error:`Invalid URL format: "${e}"`}}let n=h(e),r={method:`GET`,cache:`no-store`,mode:`cors`};n&&(r.targetAddressSpace=n);try{let e=new URL(`/api/control/health`,t).toString(),n=await fetch(e,r);if(n.status===404){let e=new URL(`/api/control/messages`,t).toString();n=await fetch(e,{...r,method:`OPTIONS`})}return n.ok||n.status===204||n.status===401?{success:!0}:{success:!1,error:`Server responded with HTTP ${n.status} (${n.statusText||`Error`})`}}catch(e){return{success:!1,error:e instanceof Error?e.message:String(e)}}}async render(){let t=this.shadowRoot;if(!t)return;let r=t.querySelector(`[data-setting="control-plane-enabled-toggle"]`);if(r&&this.db)try{let{isControlPlaneEnabled:e}=await import(`./initControlPlane-CNggzsRw.js`);r.checked=await e(this.db)}catch{r.checked=!1}let i=t.querySelector(`[data-setting="control-plane-url-input"]`);if(i&&this.db)try{i.value=await n(this.db,e.CONTROL_PLANE_URL)||``}catch{i.value=``}let a=t.querySelector(`[data-setting="control-plane-transport-select"]`);if(a&&this.db)try{a.value=await n(this.db,e.CONTROL_PLANE_TRANSPORT)||`sse`}catch{a.value=`sse`}}async requestAppDialog(e){let t=document.querySelector(`shadow-claw`);return t&&typeof t.requestDialog==`function`?await t.requestDialog(e):!1}async saveControlPlaneEnabled(t){if(this.db)try{if(t){let t=await n(this.db,e.CONTROL_PLANE_URL)||`http://127.0.0.1:8888`;this.probeControlPlane(t)}if(await i(this.db,e.CONTROL_PLANE_ENABLED,t?`true`:`false`),typeof localStorage<`u`)try{localStorage.setItem(e.CONTROL_PLANE_ENABLED,t?`true`:`false`)}catch{}let{ensureControlPlaneConnected:r,stopControlPlaneClient:o,shouldConnectControlPlane:s}=await import(`./initControlPlane-CNggzsRw.js`);t?(s()&&await r({orchestrator:this.orchestrator||void 0,db:this.db,force:!0}),a(`Control plane client enabled and connected`,3e3)):(o(),a(`Control plane client disabled`,3e3))}catch(e){o(`Error saving Control Plane setting: `+(e instanceof Error?e.message:String(e)),6e3)}}async saveControlPlaneTransport(){if(!this.db)return;let t=this.shadowRoot;if(!t)return;let n=t.querySelector(`[data-setting="control-plane-transport-select"]`);if(!n)return;let r=n.value===`websocket`?`websocket`:`sse`;try{if(await i(this.db,e.CONTROL_PLANE_TRANSPORT,r),typeof localStorage<`u`)try{localStorage.setItem(e.CONTROL_PLANE_TRANSPORT,r)}catch{}let{isControlPlaneEnabled:t,ensureControlPlaneConnected:n,shouldConnectControlPlane:o}=await import(`./initControlPlane-CNggzsRw.js`);await t(this.db)&&o()&&await n({orchestrator:this.orchestrator||void 0,db:this.db,force:!0,transport:r}),a(`Control Plane transport saved: ${r.toUpperCase()}`,3e3)}catch(e){o(`Error saving Control Plane transport: `+(e instanceof Error?e.message:String(e)),6e3)}}async saveControlPlaneUrl(){if(!this.db)return;let t=this.shadowRoot;if(!t)return;let n=t.querySelector(`[data-setting="control-plane-url-input"]`);if(!n)return;let r=n.value.trim();try{if(r&&this.probeControlPlane(r),await i(this.db,e.CONTROL_PLANE_URL,r),typeof localStorage<`u`)try{r?localStorage.setItem(e.CONTROL_PLANE_URL,r):localStorage.removeItem(e.CONTROL_PLANE_URL)}catch{}let{isControlPlaneEnabled:t,ensureControlPlaneConnected:n,shouldConnectControlPlane:o}=await import(`./initControlPlane-CNggzsRw.js`);await t(this.db)&&o()&&await n({orchestrator:this.orchestrator||void 0,db:this.db,force:!0}),a(r?`Control Plane URL saved: ${r}`:`Control Plane URL reset to default`,3e3)}catch(e){o(`Error saving Control Plane URL: `+(e instanceof Error?e.message:String(e)),6e3)}}async testControlPlaneConnection(){let e=this.shadowRoot;if(!e)return!1;let t=e.querySelector(`[data-setting="control-plane-url-input"]`),n=e.querySelector(`[data-action="test-control-plane-connection"]`),r=t?.value.trim()||`http://127.0.0.1:8888`;n&&(n.disabled=!0,n.textContent=`⏳ Testing...`);try{let e=await this.probeControlPlane(r);return e.success?(a(`Successfully reached Control Plane at ${r}`,4e3),!0):(o(`Connection test failed: ${e.error||`Unknown connection error`}`,6e3),await this.requestAppDialog({title:`Control Plane Connection Failed`,message:`Unable to connect to "${r}".\n\n• TLS / Certificate: If using HTTPS with a self-signed certificate, ensure the certificate is installed and trusted in Chrome (chrome://certificate-manager/localcerts/usercerts).\n• Chrome Permissions: In Site Settings, ensure "Local network access" is allowed.\n• Server Status: Verify the ShadowClaw dev server is running and listening on this host/port.`,confirmLabel:`OK`}),!1)}finally{n&&(n.disabled=!1,n.textContent=`🔌 Test Connection`)}}};customElements.get(m)||customElements.define(m,g);export{g as ShadowClawControlPlane,h as getControlPlaneTargetAddressSpace};
243
+ `,`text/html`),d=u.querySelector(`template`);let f=[];f=d?Array.from(d.content.children):Array.from(u.head.children).concat(Array.from(u.body.children));var p=f;const m=`shadow-claw-control-plane`;function h(e){try{let t=new URL(e).hostname.toLowerCase();if(t===`localhost`||t===`127.0.0.1`||t===`::1`||t===`[::1]`)return`loopback`;if(/^(10\.|172\.(1[6-9]|2\d|3[01])\.|192\.168\.)/.test(t)||!t.includes(`.`)||t.endsWith(`.local`)||t.endsWith(`.lan`)||t.endsWith(`.home`)||t.endsWith(`.internal`))return`private`}catch{}}var g=class extends s{static styles=l;static template=p;db;orchestrator;constructor(){super(),this.db=null,this.orchestrator=null}async connectedCallback(){if(!this.shadowRoot)throw Error(`shadowRoot not found`);this.db=await t(),this.orchestrator=r.orchestrator,this.bindEventListeners(),this.setupEffects(),await this.render()}bindEventListeners(){let e=this.shadowRoot;e&&(e.querySelector(`[data-action="save-control-plane-transport"]`)?.addEventListener(`click`,()=>{this.saveControlPlaneTransport()}),e.querySelector(`[data-action="save-control-plane-url"]`)?.addEventListener(`click`,()=>{this.saveControlPlaneUrl()}),e.querySelector(`[data-action="test-control-plane-connection"]`)?.addEventListener(`click`,()=>{this.testControlPlaneConnection()}),e.querySelector(`[data-setting="control-plane-enabled-toggle"]`)?.addEventListener(`change`,e=>{let t=e.target;this.saveControlPlaneEnabled(t.checked)}))}setupEffects(){c(()=>{r.ready&&(this.orchestrator=r.orchestrator,this.render())})}async probeControlPlane(e){let t;try{t=new URL(e)}catch{return{success:!1,error:`Invalid URL format: "${e}"`}}let n=h(e),r={method:`GET`,cache:`no-store`,mode:`cors`};n&&(r.targetAddressSpace=n);try{let e=new URL(`/api/control/health`,t).toString(),n=await fetch(e,r);if(n.status===404){let e=new URL(`/api/control/messages`,t).toString();n=await fetch(e,{...r,method:`OPTIONS`})}return n.ok||n.status===204||n.status===401?{success:!0}:{success:!1,error:`Server responded with HTTP ${n.status} (${n.statusText||`Error`})`}}catch(e){return{success:!1,error:e instanceof Error?e.message:String(e)}}}async render(){let t=this.shadowRoot;if(!t)return;let r=t.querySelector(`[data-setting="control-plane-enabled-toggle"]`);if(r&&this.db)try{let{isControlPlaneEnabled:e}=await import(`./initControlPlane-C1pnzG16.js`);r.checked=await e(this.db)}catch{r.checked=!1}let i=t.querySelector(`[data-setting="control-plane-url-input"]`);if(i&&this.db)try{i.value=await n(this.db,e.CONTROL_PLANE_URL)||``}catch{i.value=``}let a=t.querySelector(`[data-setting="control-plane-transport-select"]`);if(a&&this.db)try{a.value=await n(this.db,e.CONTROL_PLANE_TRANSPORT)||`sse`}catch{a.value=`sse`}}async requestAppDialog(e){let t=document.querySelector(`shadow-claw`);return t&&typeof t.requestDialog==`function`?await t.requestDialog(e):!1}async saveControlPlaneEnabled(t){if(this.db)try{if(t){let t=await n(this.db,e.CONTROL_PLANE_URL)||`http://127.0.0.1:8888`;this.probeControlPlane(t)}if(await i(this.db,e.CONTROL_PLANE_ENABLED,t?`true`:`false`),typeof localStorage<`u`)try{localStorage.setItem(e.CONTROL_PLANE_ENABLED,t?`true`:`false`)}catch{}let{ensureControlPlaneConnected:r,stopControlPlaneClient:o,shouldConnectControlPlane:s}=await import(`./initControlPlane-C1pnzG16.js`);t?(s()&&await r({orchestrator:this.orchestrator||void 0,db:this.db,force:!0}),a(`Control plane client enabled and connected`,3e3)):(o(),a(`Control plane client disabled`,3e3))}catch(e){o(`Error saving Control Plane setting: `+(e instanceof Error?e.message:String(e)),6e3)}}async saveControlPlaneTransport(){if(!this.db)return;let t=this.shadowRoot;if(!t)return;let n=t.querySelector(`[data-setting="control-plane-transport-select"]`);if(!n)return;let r=n.value===`websocket`?`websocket`:`sse`;try{if(await i(this.db,e.CONTROL_PLANE_TRANSPORT,r),typeof localStorage<`u`)try{localStorage.setItem(e.CONTROL_PLANE_TRANSPORT,r)}catch{}let{isControlPlaneEnabled:t,ensureControlPlaneConnected:n,shouldConnectControlPlane:o}=await import(`./initControlPlane-C1pnzG16.js`);await t(this.db)&&o()&&await n({orchestrator:this.orchestrator||void 0,db:this.db,force:!0,transport:r}),a(`Control Plane transport saved: ${r.toUpperCase()}`,3e3)}catch(e){o(`Error saving Control Plane transport: `+(e instanceof Error?e.message:String(e)),6e3)}}async saveControlPlaneUrl(){if(!this.db)return;let t=this.shadowRoot;if(!t)return;let n=t.querySelector(`[data-setting="control-plane-url-input"]`);if(!n)return;let r=n.value.trim();try{if(r&&this.probeControlPlane(r),await i(this.db,e.CONTROL_PLANE_URL,r),typeof localStorage<`u`)try{r?localStorage.setItem(e.CONTROL_PLANE_URL,r):localStorage.removeItem(e.CONTROL_PLANE_URL)}catch{}let{isControlPlaneEnabled:t,ensureControlPlaneConnected:n,shouldConnectControlPlane:o}=await import(`./initControlPlane-C1pnzG16.js`);await t(this.db)&&o()&&await n({orchestrator:this.orchestrator||void 0,db:this.db,force:!0}),a(r?`Control Plane URL saved: ${r}`:`Control Plane URL reset to default`,3e3)}catch(e){o(`Error saving Control Plane URL: `+(e instanceof Error?e.message:String(e)),6e3)}}async testControlPlaneConnection(){let e=this.shadowRoot;if(!e)return!1;let t=e.querySelector(`[data-setting="control-plane-url-input"]`),n=e.querySelector(`[data-action="test-control-plane-connection"]`),r=t?.value.trim()||`http://127.0.0.1:8888`;n&&(n.disabled=!0,n.textContent=`⏳ Testing...`);try{let e=await this.probeControlPlane(r);return e.success?(a(`Successfully reached Control Plane at ${r}`,4e3),!0):(o(`Connection test failed: ${e.error||`Unknown connection error`}`,6e3),await this.requestAppDialog({title:`Control Plane Connection Failed`,message:`Unable to connect to "${r}".\n\n• TLS / Certificate: If using HTTPS with a self-signed certificate, ensure the certificate is installed and trusted in Chrome (chrome://certificate-manager/localcerts/usercerts).\n• Chrome Permissions: In Site Settings, ensure "Local network access" is allowed.\n• Server Status: Verify the ShadowClaw dev server is running and listening on this host/port.`,confirmLabel:`OK`}),!1)}finally{n&&(n.disabled=!1,n.textContent=`🔌 Test Connection`)}}};customElements.get(m)||customElements.define(m,g);export{g as ShadowClawControlPlane,h as getControlPlaneTargetAddressSpace};
@@ -1,4 +1,4 @@
1
- import{r as e}from"./config-D4lVqMs8.js";import{r as t}from"./txPromise-C2iYogHX.js";import{t as n}from"./getConfig-4saf0Tkq.js";import{d as r}from"./custom-element-security-piU2U-Ec.js";import{K as i,Y as a,t as o}from"./orchestrator-D6tel2Zp.js";import{t as s,u as c}from"./tools-nysPKnGT.js";import{t as l}from"./setConfig-DdSThoKj.js";import{t as u}from"./tools-Day-D-vL.js";import"./tools-vzWYHFBC.js";import{t as d}from"./shadow-claw-element-DIrv3P6A.js";import{t as f}from"./effect-BJCrpFdp.js";import{n as p}from"./model-ranking-C60HgQ2c.js";import"./shadow-claw-dialog-BrOwAOdk.js";const m=new CSSStyleSheet;m.replaceSync(`:host {
1
+ import{r as e}from"./config-Dewnqegf.js";import{r as t}from"./txPromise-C2iYogHX.js";import{t as n}from"./getConfig-4saf0Tkq.js";import{d as r}from"./custom-element-security-DLgHMf5R.js";import{K as i,Y as a,t as o}from"./orchestrator-BVnC4Vtt.js";import{t as s,u as c}from"./tools-sOLCHTj8.js";import{t as l}from"./setConfig-DdSThoKj.js";import{t as u}from"./tools-Day-D-vL.js";import"./tools-vzWYHFBC.js";import{t as d}from"./shadow-claw-element-DIrv3P6A.js";import{t as f}from"./effect-BJCrpFdp.js";import{n as p}from"./model-ranking-C60HgQ2c.js";import"./shadow-claw-dialog-BrOwAOdk.js";const m=new CSSStyleSheet;m.replaceSync(`:host {
2
2
  display: block;
3
3
  }
4
4
 
@@ -1,4 +1,4 @@
1
- import{r as e}from"./config-D4lVqMs8.js";import{c as t,d as n,i as r,n as i,o as a,s as o}from"./app-routes-BMQ4HFaM.js";import{r as s}from"./txPromise-C2iYogHX.js";import{t as c}from"./getConfig-4saf0Tkq.js";import{a as l,c as u,d,f,i as p,n as m,p as h,r as g,u as _}from"./custom-element-security-piU2U-Ec.js";import{Qt as v,_n as y,pn as b,t as x}from"./orchestrator-D6tel2Zp.js";import{o as S,t as C}from"./tools-nysPKnGT.js";import{a as w,r as T}from"./toast-BXgUfbyh.js";import{t as E}from"./shadow-claw-element-DIrv3P6A.js";import{t as D}from"./effect-BJCrpFdp.js";import{n as O,r as k,t as A}from"./markdown-CZA-Ye2Q.js";import{t as j}from"./file-viewer-DLUBvOVD.js";import"./shadow-claw-dialog-BrOwAOdk.js";import{a as M,c as N,i as P,l as F,n as I,o as L,r as R,s as z,t as B}from"./iframe-storage-proxy-BvRiccH0.js";const V=new CSSStyleSheet;V.replaceSync(`*,
1
+ import{r as e}from"./config-Dewnqegf.js";import{c as t,d as n,i as r,n as i,o as a,s as o}from"./app-routes-C6-H2zPH.js";import{r as s}from"./txPromise-C2iYogHX.js";import{t as c}from"./getConfig-4saf0Tkq.js";import{a as l,c as u,d,f,i as p,n as m,p as h,r as g,u as _}from"./custom-element-security-DLgHMf5R.js";import{Qt as v,_n as y,pn as b,t as x}from"./orchestrator-BVnC4Vtt.js";import{o as S,t as C}from"./tools-sOLCHTj8.js";import{a as w,r as T}from"./toast-BXgUfbyh.js";import{t as E}from"./shadow-claw-element-DIrv3P6A.js";import{t as D}from"./effect-BJCrpFdp.js";import{n as O,r as k,t as A}from"./markdown-D3A902nT.js";import{t as j}from"./file-viewer-Df4qUJCn.js";import"./shadow-claw-dialog-BrOwAOdk.js";import{a as M,c as N,i as P,l as F,n as I,o as L,r as R,s as z,t as B}from"./iframe-storage-proxy-Cg8aFw7o.js";const V=new CSSStyleSheet;V.replaceSync(`*,
2
2
  *::before,
3
3
  *::after {
4
4
  box-sizing: border-box;