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
@@ -1,4 +1,4 @@
1
- import{n as e,t}from"./chunk-DSAjCI7h.js";import{t as n}from"./chunk-DxIsgrAF.js";import{n as r,r as i,t as a}from"./chunk-BQCWtrzh.js";import{a as o,c as s,i as c,l,n as u,o as d,r as f,s as p,t as m}from"./chunk-Drq18VZe.js";import{C as h,S as g,T as _,b as v,c as y,f as ee,m as b,n as te,o as x,p as ne,r as S,u as re,v as ie,w as ae,x as oe,y as se}from"./chunk-BcTH_-FL.js";import{i as ce,n as le,t as ue}from"./chunk-DFLqhyP_.js";import{t as C}from"./chunk-Dhh0lHO6.js";import{a as de,i as fe,o as pe,r as me}from"./chunk-da0bsiOn.js";import{a as he,i as ge,n as _e,o as ve,r as ye,s as be,t as xe}from"./chunk-CmEfzm-_.js";import"./chunk-CKTtKg5g2.js";import{n as Se,r as Ce,t as we}from"./chunk-JGMWNwO92.js";import{n as Te,t as Ee}from"./chunk-BDSNQ5RN2.js";import{r as De,t as Oe}from"./chunk-D5-oZBwJ2.js";import{t as ke}from"./chunk-WU98h6LV2.js";import{a as Ae,c as je,d as Me,f as Ne,h as Pe,i as Fe,l as Ie,m as Le,n as Re,o as ze,p as Be,r as Ve,s as He,t as Ue,u as We}from"./chunk-ZJVBMLyZ2.js";import{t as Ge}from"./chunk-CeGMLWmo.js";import{n as Ke,r as qe,t as Je}from"./chunk-CLS1vG53.js";import{r as Ye}from"./chunk-BbpS-dVt.js";import{A as Xe,B as Ze,C as Qe,D as $e,E as et,F as tt,H as nt,I as rt,L as it,M as at,N as ot,O as st,P as ct,S as lt,T as ut,V as dt,_ as ft,a as pt,b as mt,c as ht,d as gt,f as w,g as _t,h as vt,i as yt,j as bt,k as xt,l as St,m as Ct,n as wt,o as Tt,p as T,r as Et,s as Dt,t as Ot,u as kt,v as E,w as At,x as jt,y as Mt,z as Nt}from"./chunk-DbzWyaHV.js";import{n as Pt}from"./chunk-DVKHLRUO.js";import{n as Ft,t as It}from"./chunk-DCswFaKf2.js";import{t as Lt}from"./chunk-CvoMdhST2.js";import{a as Rt,c as zt,d as D,l as Bt,o as Vt,s as Ht,t as Ut,u as Wt}from"./chunk-NH8koEis2.js";import{a as Gt,i as Kt,t as qt}from"./chunk-FEL5dv0w2.js";import{t as Jt}from"./chunk-WMPAfIvV2.js";import Yt from"process";import"buffer";import{lookup as Xt}from"node:dns";function O(e){if(!e||e===`/`)return`/`;let t=e.endsWith(`/`)&&e!==`/`?e.slice(0,-1):e;t.startsWith(`/`)||(t=`/${t}`);let n=t.split(`/`).filter(e=>e&&e!==`.`),r=[];for(let e of n)e===`..`?r.pop():r.push(e);return`/${r.join(`/`)}`||`/`}function Zt(e,t){if(e.includes(`\0`))throw Error(`ENOENT: path contains null byte, ${t} '${e}'`)}function Qt(e){let t=O(e);if(t===`/`)return`/`;let n=t.lastIndexOf(`/`);return n===0?`/`:t.slice(0,n)}function $t(e,t){return t.startsWith(`/`)?O(t):O(e===`/`?`/${t}`:`${e}/${t}`)}function en(e,t){return e===`/`?`/${t}`:`${e}/${t}`}function tn(e,t){return t.startsWith(`/`)?O(t):O(en(Qt(e),t))}var nn=Object.defineProperty,rn=(e,t,n)=>t in e?nn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,an=(e,t,n)=>(rn(e,typeof t==`symbol`?t:t+``,n),n),on=(e,t,n)=>{if(!t.has(e))throw TypeError(`Cannot `+n)},sn=(e,t)=>{if(Object(t)!==t)throw TypeError(`Cannot use the "in" operator on this value`);return e.has(t)},cn=(e,t,n)=>{if(t.has(e))throw TypeError(`Cannot add the same private member more than once`);t instanceof WeakSet?t.add(e):t.set(e,n)},ln=(e,t,n)=>(on(e,t,`access private method`),n);
1
+ import{n as e,t}from"./chunk-DSAjCI7h.js";import{t as n}from"./chunk-DxIsgrAF.js";import{n as r,r as i,t as a}from"./chunk-BQCWtrzh.js";import{a as o,c as s,i as c,l,n as u,o as d,r as f,s as p,t as m}from"./chunk-B--ueArB.js";import{C as h,S as g,T as _,b as v,c as y,f as ee,m as b,n as te,o as x,p as ne,r as S,u as re,v as ie,w as ae,x as oe,y as se}from"./chunk-CXAobnJd.js";import{i as ce,n as le,t as ue}from"./chunk-DFLqhyP_.js";import{t as C}from"./chunk-Dhh0lHO6.js";import{a as de,i as fe,o as pe,r as me}from"./chunk-P4JSeFBI.js";import{a as he,i as ge,n as _e,o as ve,r as ye,s as be,t as xe}from"./chunk-q7r4FosZ.js";import"./chunk-CKTtKg5g2.js";import{n as Se,r as Ce,t as we}from"./chunk-JGMWNwO92.js";import{n as Te,t as Ee}from"./chunk-BDSNQ5RN2.js";import{r as De,t as Oe}from"./chunk-D5-oZBwJ2.js";import{t as ke}from"./chunk-WU98h6LV2.js";import{a as Ae,c as je,d as Me,f as Ne,h as Pe,i as Fe,l as Ie,m as Le,n as Re,o as ze,p as Be,r as Ve,s as He,t as Ue,u as We}from"./chunk-ZJVBMLyZ2.js";import{t as Ge}from"./chunk-CeGMLWmo.js";import{n as Ke,r as qe,t as Je}from"./chunk-CLS1vG53.js";import{r as Ye}from"./chunk-BbpS-dVt.js";import{A as Xe,B as Ze,C as Qe,D as $e,E as et,F as tt,H as nt,I as rt,L as it,M as at,N as ot,O as st,P as ct,S as lt,T as ut,V as dt,_ as ft,a as pt,b as mt,c as ht,d as gt,f as w,g as _t,h as vt,i as yt,j as bt,k as xt,l as St,m as Ct,n as wt,o as Tt,p as T,r as Et,s as Dt,t as Ot,u as kt,v as E,w as At,x as jt,y as Mt,z as Nt}from"./chunk-DbzWyaHV.js";import{n as Pt}from"./chunk-DVKHLRUO.js";import{n as Ft,t as It}from"./chunk-DCswFaKf2.js";import{t as Lt}from"./chunk-CvoMdhST2.js";import{a as Rt,c as zt,d as D,l as Bt,o as Vt,s as Ht,t as Ut,u as Wt}from"./chunk-nmDhxXH_2.js";import{a as Gt,i as Kt,t as qt}from"./chunk-FEL5dv0w2.js";import{t as Jt}from"./chunk-8CrZyP1b2.js";import Yt from"process";import"buffer";import{lookup as Xt}from"node:dns";function O(e){if(!e||e===`/`)return`/`;let t=e.endsWith(`/`)&&e!==`/`?e.slice(0,-1):e;t.startsWith(`/`)||(t=`/${t}`);let n=t.split(`/`).filter(e=>e&&e!==`.`),r=[];for(let e of n)e===`..`?r.pop():r.push(e);return`/${r.join(`/`)}`||`/`}function Zt(e,t){if(e.includes(`\0`))throw Error(`ENOENT: path contains null byte, ${t} '${e}'`)}function Qt(e){let t=O(e);if(t===`/`)return`/`;let n=t.lastIndexOf(`/`);return n===0?`/`:t.slice(0,n)}function $t(e,t){return t.startsWith(`/`)?O(t):O(e===`/`?`/${t}`:`${e}/${t}`)}function en(e,t){return e===`/`?`/${t}`:`${e}/${t}`}function tn(e,t){return t.startsWith(`/`)?O(t):O(en(Qt(e),t))}var nn=Object.defineProperty,rn=(e,t,n)=>t in e?nn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,an=(e,t,n)=>(rn(e,typeof t==`symbol`?t:t+``,n),n),on=(e,t,n)=>{if(!t.has(e))throw TypeError(`Cannot `+n)},sn=(e,t)=>{if(Object(t)!==t)throw TypeError(`Cannot use the "in" operator on this value`);return e.has(t)},cn=(e,t,n)=>{if(t.has(e))throw TypeError(`Cannot add the same private member more than once`);t instanceof WeakSet?t.add(e):t.set(e,n)},ln=(e,t,n)=>(on(e,t,`access private method`),n);
2
2
  /**
3
3
  * @license
4
4
  * Copyright Google LLC All Rights Reserved.
@@ -959,7 +959,7 @@ const restoreGlobals = applyGlobalShadows();
959
959
 
960
960
  `).trim()}function Nh(e){let t=/<\|tool_call>call:([a-zA-Z_][a-zA-Z0-9_]*)(\{[\s\S]*?\})?<tool_call\|>/g,n=[];return{toolBlocks:n,residualText:e.replace(t,(e,t,r)=>{let i={};if(r)try{let e=JSON.parse(r);e&&typeof e==`object`&&!Array.isArray(e)&&(i=e)}catch{}return n.push({type:`tool_use`,id:`mesh_llm_call_${Date.now()}_${Math.random().toString(36).slice(2)}`,name:t,input:i}),``}).replace(/^[ \t]+$/gm,``).replace(/\n{3,}/g,`
961
961
 
962
- `).trim()}}function Ph(e){if(!e||!Array.isArray(e.content))return e;let t=[],n=!1;for(let r of e.content){if(r.type!==`text`){t.push(r);continue}let{toolBlocks:e,residualText:i}=Nh(Mh(r.text));i&&t.push({type:`text`,text:i}),e.length>0&&(n=!0,t.push(...e))}return{...e,content:t,stop_reason:n||e.stop_reason===`tool_use`?`tool_use`:e.stop_reason}}const Fh={openai:Oh,anthropic:kh,google:jh,"mesh-llm":class extends Oh{parseResponse(e){return Ph(super.parseResponse(e))}}};function Ih(e){let t=Fh[e.format];if(!t)throw Error(`Unsupported provider format: ${e.format}`);return new t(e)}function Lh(e,t,n,r){return Ih(e).formatRequest(t,n,r)}function Rh(e){let t=e.toLowerCase();return t===`none`?0:t===`max`||t===`xhigh`?.95:t===`high`?.8:t===`medium`?.5:t===`low`?.2:t===`minimal`?.1:0}function zh(e,t){return Ih(e).parseResponse(t)}function Bh(e){let t=_.getModelInfo(e);if(t?.contextWindow)return t.contextWindow;let n=e.toLowerCase();return n.includes(`gpt-4.1`)?1047576:n.includes(`gpt-5`)?4e5:n.includes(`gpt-4o`)||n.includes(`gpt-4-turbo`)?128e3:n===`gpt-4`||n.startsWith(`gpt-4-`)?8192:n.includes(`gpt-3.5-turbo`)?16385:n.includes(`gpt-3.5`)?4096:n.includes(`o1`)||n.includes(`o3`)||n.includes(`o4`)?2e5:n.includes(`claude-opus-4`)||n.includes(`claude-sonnet-4`)?1e6:n.includes(`claude`)?2e5:n.includes(`gemini-nano`)?4096:n.includes(`gemini-1.5-pro`)?2097152:n.includes(`gemini-2.5`)||n.includes(`gemini-2.0`)||n.includes(`gemini-1.5`)?1048576:n.includes(`gemini-1.0`)||n.includes(`gemini-pro`)?32768:n.includes(`gemini`)?1048576:n.includes(`llama-3.1`)||n.includes(`llama-3-1`)?128e3:n.includes(`llama-3`)?8192:n.includes(`llama`)?4096:n.includes(`gemma-4-12b`)||n.includes(`gemma-4-26b`)||n.includes(`gemma-4-31b`)||n.includes(`gemma-4-e9b`)||n.includes(`gemma-4-e27b`)?256e3:n.includes(`gemma-4`)||n.includes(`gemma 4`)||n.includes(`gemma-3-4b`)||n.includes(`gemma-3-12b`)||n.includes(`gemma-3-27b`)?128e3:n.includes(`gemma-3`)||n.includes(`gemma 3`)?32e3:n.includes(`gemma-2`)||n.includes(`gemma-7b`)||n.includes(`gemma-2b`)||n.includes(`gemma`)?8192:n.includes(`mistral-large`)?128e3:n.includes(`mistral`)?32e3:n.includes(`amazon.titan`)?8192:n.includes(`amazon.nova-micro`)||n.includes(`nova-micro`)?128e3:n.includes(`amazon.nova`)||n.includes(`nova-pro`)||n.includes(`nova-lite`)?3e5:n.includes(`ai21`)?8192:n.includes(`cohere`)||n.includes(`phi-4-mini`)?128e3:n.includes(`phi-4`)?16384:n.includes(`phi-3.5`)||n.includes(`128k`)?128e3:n.includes(`phi-3`)?4096:n.includes(`qwen3.5`)?262144:n.includes(`qwen3-0.6b`)||n.includes(`qwen3-1.7b`)?40960:n.includes(`qwen3`)?128e3:n===`mesh`?242144:4096}function Vh(e,t){if(e===`translate`)return`Translate the following text from ${t.sourceLanguage||`auto`} to ${t.targetLanguage}. Provide ONLY the raw translated text without commentary or quotation marks:\n\n${t.text}`;if(e===`summarize`)return`Summarize the following text (type: ${t.type||`tldr`}, format: ${t.format||`plain-text`}, length: ${t.length||`medium`}). Provide ONLY the summary:\n\n${t.text}`;if(e===`write`)return`Draft content for the following request (context: ${t.context||`none`}):\n\n${t.prompt}`;if(e===`rewrite`)return`Rewrite the following text (tone: ${t.tone||`standard`}, length: ${t.length||`as-is`}):\n\n${t.text}`;if(e===`proofread`)return`Proofread and correct grammar, spelling, and style in the following text. Provide ONLY the corrected text:\n\n${t.text}`;if(e===`detect-language`)return`Detect the language of the following text. Return ONLY a JSON array of objects with "detectedLanguage" (BCP 47 code) and "confidence" (0.0 - 1.0), e.g. [{"detectedLanguage":"en","confidence":0.99}]:\n\n${t.text}`;if(e===`semantic-embedder`)return`Provide a concise semantic description/representation for the following content:\n\n${JSON.stringify(t.text)}`;throw Error(`Unknown native AI task type: ${e}`)}async function Hh(e){if(e.toolsBackendPref)return e.toolsBackendPref;if(e.db)try{let{getConfig:t}=await import(`./chunk-0WvYaMdi.js`),n=await t(e.db,S.BUILTIN_AI_TOOLS_BACKEND);if(n)return n}catch{}return`active_provider`}async function Uh(e,t,n){if(n.apiKey!==void 0)return n.apiKey;if(Yt!==void 0&&Yt.env){let e=Yt.env.SHADOW_CLAW_API_KEY;if(e)return e;switch(t){case`openrouter`:if(Yt.env.OPENROUTER_API_KEY)return Yt.env.OPENROUTER_API_KEY;break;case`huggingface`:if(Yt.env.HUGGINGFACE_API_KEY||Yt.env.HF_TOKEN)return Yt.env.HUGGINGFACE_API_KEY||Yt.env.HF_TOKEN||``;break;case`gemini_proxy`:if(Yt.env.GEMINI_API_KEY)return Yt.env.GEMINI_API_KEY;break}let n=`${t.toUpperCase()}_API_KEY`;if(Yt.env[n])return Yt.env[n]}if(n.db)try{let{getConfig:e}=await import(`./chunk-0WvYaMdi.js`),r=await e(n.db,`api_key:${t}`)||await e(n.db,`apiKey`);if(r)return r}catch{}return``}async function Wh(e){let{taskType:t,input:n,onProgress:r}=e;if(await Hh(e)===`local`){if(t===`summarize`)return await Xp(n.text,{...n,onProgress:r});if(t===`write`)return await Zp(n.prompt,{...n,onProgress:r});if(t===`rewrite`)return await Qp(n.text,{...n,onProgress:r});if(t===`proofread`)return await tm(n.text,{...n,onProgress:r});if(t===`detect-language`)return await $p(n.text,{onProgress:r});if(t===`translate`)return await em(n.text,{sourceLanguage:n.sourceLanguage||`auto`,targetLanguage:n.targetLanguage||`en`,...n,onProgress:r});if(t===`semantic-embedder`)return await nm(n.text,{...n,onProgress:r});throw Error(`Unknown native AI task: ${t}`)}let a=i()?`openrouter`:`prompt_api`,o=e.providerId;if(!o&&e.db)try{let{getConfig:t}=await import(`./chunk-0WvYaMdi.js`);o=await t(e.db,S.PROVIDER)||a}catch{}o||=Yt!==void 0&&(Yt.env.SHADOW_CLAW_PROVIDER||Yt.env.SHADOW_CLAW_DEFAULT_PROVIDER)||a;let s=Vh(t,n);if(o===`prompt_api`){await Jp();let e=globalThis,n=e.LanguageModel||e.ai?.languageModel;if(n&&typeof n.create==`function`){let e;try{e=await n.create()}catch(e){console.warn(`Prompt API session creation failed in active provider task:`,e)}if(e)try{let n=await e.prompt(s),r=String(n||``).trim();if(t===`detect-language`)try{let e=JSON.parse(r);return Array.isArray(e)?e:[e]}catch{return[{detectedLanguage:`en`,confidence:.8}]}return r}finally{typeof e.destroy==`function`&&e.destroy()}}}let c=v(o);if(!c||!c.baseUrl||c.baseUrl.startsWith(`builtin://`)||c.baseUrl.startsWith(`local://`)||c.format===`prompt_api`||c.format===`transformers_js`){if(t===`summarize`)return await Xp(n.text,n);if(t===`write`)return await Zp(n.prompt,n);if(t===`rewrite`)return await Qp(n.text,n);if(t===`proofread`)return await tm(n.text,n);if(t===`detect-language`)return await $p(n.text);if(t===`translate`)return await em(n.text,{sourceLanguage:n.sourceLanguage||`auto`,targetLanguage:n.targetLanguage||`en`,...n});if(t===`semantic-embedder`)return await nm(n.text,n);throw Error(`Provider ${o} not found and no local fallback available`)}let l=await Uh(c,o,e);if(c.requiresApiKey!==!1&&!l)throw Error(`Provider "${c.name||o}" requires an API key for task "${t}". Please provide an API key or configure tools backend.`);let u=e.model||c.defaultModel||`default`,d={...Eh(c,l),...e.headers||{}},f=Lh(c,[{role:`user`,content:s}],[],{maxTokens:e.maxTokens||2048,model:u,system:`You are a specialized text task assistant. Fulfill the user request directly and accurately without conversational filler.`}),p=await fetch(c.baseUrl,{body:JSON.stringify(f),headers:d,method:`POST`});if(!p.ok){let e=await p.text();throw Error(`Active provider task API error ${p.status}: ${e}`)}let m=zh(c,await p.json()).content?.filter(e=>e.type===`text`)?.map(e=>e.text)?.join(``)?.trim()||``;if(t===`detect-language`)try{let e=JSON.parse(m);return Array.isArray(e)?e:[e]}catch{return[{detectedLanguage:`en`,confidence:.8}]}return m}let Gh=null;function Kh(e){Gh=e}async function qh(e,t,r,a){if(Gh)return await Gh(t,r,e,a);if(i()){let n=a?.invokeContext;return await Wh({taskType:t,input:r,groupId:e,providerId:n?.provider,model:n?.model,apiKey:n?.apiKey,maxTokens:n?.maxTokens,headers:n?.providerHeaders,db:a?.db||n?.db})}let o=n();return j({type:`request-native-ai-task`,payload:{id:o,groupId:e,taskType:t,input:r}}),await new Promise((e,t)=>{globalThis.pendingNativeAiResolvers=globalThis.pendingNativeAiResolvers||{},globalThis.pendingNativeAiResolvers[o]={resolve:e,reject:t}})}async function Jh(e,t,n){let r=String(e.text||``).trim();if(!r)return`Error: text is required for summarize_text`;try{return await qh(t,`summarize`,{text:r,type:e.type,format:e.format,length:e.length,preference:e.preference,context:e.context},n)}catch(e){return`Error summarizing text: ${e instanceof Error?e.message:String(e)}`}}async function Yh(e,t,n){let r=String(e.prompt||``).trim();if(!r)return`Error: prompt is required for write_text`;try{return await qh(t,`write`,{prompt:r,context:e.context},n)}catch(e){return`Error writing text: ${e instanceof Error?e.message:String(e)}`}}async function Xh(e,t,n){let r=String(e.text||``).trim();if(!r)return`Error: text is required for rewrite_text`;try{return await qh(t,`rewrite`,{text:r,tone:e.tone,length:e.length,context:e.context},n)}catch(e){return`Error rewriting text: ${e instanceof Error?e.message:String(e)}`}}async function Zh(e,t,n){let r=String(e.text||``).trim();if(!r)return`Error: text is required for proofread_text`;try{return await qh(t,`proofread`,{text:r,context:e.context},n)}catch(e){return`Error proofreading text: ${e instanceof Error?e.message:String(e)}`}}async function Qh(e,t,n){let r=String(e.text||``).trim();if(!r)return`Error: text is required for detect_language`;try{let e=await qh(t,`detect-language`,{text:r},n);return typeof e==`string`?e:JSON.stringify(e,null,2)}catch(e){return`Error detecting language: ${e instanceof Error?e.message:String(e)}`}}async function $h(e,t,n){let r=String(e.text||``).trim(),i=String(e.sourceLanguage||``).trim(),a=String(e.targetLanguage||``).trim();if(!r||!i||!a)return`Error: text, sourceLanguage, and targetLanguage are required for translate_text`;try{return await qh(t,`translate`,{text:r,sourceLanguage:i,targetLanguage:a},n)}catch(e){return`Error translating text: ${e instanceof Error?e.message:String(e)}`}}async function eg(e,t,n){let r=e.text;if(!r||Array.isArray(r)&&r.length===0)return`Error: text is required for embed_text`;try{let i=await qh(t,`semantic-embedder`,{text:r,taskType:e.taskType},n);return typeof i==`string`?i:JSON.stringify(i,null,2)}catch(e){return`Error generating embeddings: ${e instanceof Error?e.message:String(e)}`}}async function tg(e,t={}){let{maxRetries:n=3,baseDelayMs:r=1e3,maxDelayMs:i=3e4,jitterFactor:a=.5,shouldRetry:o=()=>!0,onRetry:s,signal:c}=t,l;for(let t=0;t<=n;t++){if(c?.aborted)throw c.reason??new DOMException(`Aborted`,`AbortError`);try{return await e()}catch(e){if(l=e,e instanceof DOMException&&e.name===`AbortError`||e instanceof Error&&e.name===`AbortError`)throw e;if(t>=n||!o(e,t+1))break;let u=wp(t,r,i,a);s&&s(t+1,n,u,e),await Tp(u,c)}}throw l}const ng=new Set([408,429,500,502,503,504]);function rg(e){return/network|ECONNRESET|ECONNREFUSED|ETIMEDOUT|fetch failed|EAI_AGAIN|EAI_NONAME|getaddrinfo/i.test(e.message)}function ig(e){if(e instanceof TypeError)return!0;if(typeof e?.status==`number`)return ng.has(e.status);if(e instanceof Error){let t=e.message.match(/\b(4\d{2}|5\d{2})\b/);if(t)return ng.has(Number(t[1]));if(rg(e))return!0}return!1}function ag(e){return e instanceof TypeError?!0:e&&typeof e.status==`number`?ng.has(e.status):e instanceof Error&&rg(e)}const og=new Set([`create_task`,`update_task`,`delete_task`,`enable_task`,`disable_task`,`send_notification`,`create_room`,`invite_to_room`,`leave_room`]);function sg(e){if(!Array.isArray(e))return null;let t=e.map(e=>typeof e==`string`?e:typeof e?.name==`string`?e.name:null).filter(Boolean);return new Set(t)}function cg(e,t){let n=sg(t);return n&&!n.has(e)?`Tool "${e}" is not allowed in the current context. Do not call it again. Use one of the available tools or ask for help.`:null}function lg(e,t,n){return(t||n)&&e===`run_task`?`Tool "run_task" cannot be called from within a task execution to prevent infinite loops.`:null}function ug(e,t){return t&&og.has(e)?`Tool "${e}" is not allowed during scheduled task execution to prevent recursion.`:null}function dg(e){return i()&&a.has(e)?`Tool "${e}" is not available in headless CLI mode. It requires a browser UI.`:null}function fg(e,t={}){return cg(e,t.allowedTools)||lg(e,t.isScheduledTask,t.isTaskExecution)||ug(e,t.isScheduledTask)||dg(e)||null}async function pg(e,t,n,r,i={},a){let o=await zt(e,r,t);if(!o)return`Unknown tool: ${t}`;let s=i.declarativeDepth||0;if(s>=8)return`Tool error (${t}): declarative tool nesting limit exceeded.`;if(o.execution.type===`tool`){let c=o.execution.name;return c?await a(e,c,o.execution.input?{...n,...o.execution.input}:n,r,{...i,declarativeDepth:s+1}):`Tool error (${t}): declarative tool target is missing.`}return o.execution.type===`bash`?await uf(e,{command:o.execution.command,stdin:JSON.stringify(n)},r):await Am(e,{code:o.execution.code,data:JSON.stringify(n)})}let mg=null;async function hg(){return mg||=import(`./chunk-quilB3TV2.js`),mg}async function gg(e,t,n,r){let i=await hg();return await Qf(e,t,n,r,{configKeys:{GIT_CORS_PROXY:S.GIT_CORS_PROXY,GIT_PROXY_URL:S.GIT_PROXY_URL,GIT_AUTHOR_NAME:S.GIT_AUTHOR_NAME,GIT_AUTHOR_EMAIL:S.GIT_AUTHOR_EMAIL},getConfig:C,getGroupDir:c,getProxyUrl:i.getProxyUrl,getRemoteUrl:i.getRemoteUrl,gitAdd:i.gitAdd,gitBranch:i.gitBranch,gitCheckout:i.gitCheckout,gitClone:i.gitClone,gitCommit:i.gitCommit,gitConfig:i.gitConfig,gitDeleteBranch:i.gitDeleteBranch,gitDeleteRepo:i.gitDeleteRepo,gitDiff:i.gitDiff,gitFetch:i.gitFetch,gitInit:i.gitInit,gitListBranches:i.gitListBranches,gitListRepos:i.gitListRepos,gitListTags:i.gitListTags,gitLog:i.gitLog,gitMerge:i.gitMerge,gitPull:i.gitPull,gitPush:i.gitPush,gitReadFileAtRef:i.gitReadFileAtRef,gitRemote:i.gitRemote,gitReset:i.gitReset,gitShow:i.gitShow,gitStatus:i.gitStatus,gitTag:i.gitTag,gitUnstage:i.gitUnstage,readGroupFile:Wt,resolveGitCredentials:ii})}const V=new Map;V.set(`bash`,(e,t,n)=>uf(e,t,n)),V.set(`read_file`,(e,t,n)=>th(e,t,n)),V.set(`open_file`,(e,t,n)=>$m(e,t,n)),V.set(`attach_file_to_chat`,(e,t,n)=>Bm(e,t,n)),V.set(`send_file`,(e,t,n)=>ah(e,t,n)),V.set(`write_file`,(e,t,n)=>sh(e,t,n)),V.set(`delete_file`,(e,t,n)=>Jm(e,t,n)),V.set(`move_file`,(e,t,n)=>Qm(e,t,n)),V.set(`copy_file`,(e,t,n)=>Gm(e,t,n)),V.set(`create_directory`,(e,t,n)=>Km(e,t,n)),V.set(`patch_file`,(e,t,n)=>eh(e,t,n)),V.set(`list_files`,(e,t,n)=>Xm(e,t,n)),V.set(`manage_tools`,(e,t,n)=>Nm(t,n)),V.set(`list_tool_profiles`,e=>Mm(e)),V.set(`fetch_url`,(e,t,n)=>Kf(e,t,n,{buildAuthHeaders:Zr,fetchImpl:fetch,fetchMaxResponse:ee,isRetryableFetchError:ag,post:j,resolveGitCredentials:ii,resolveServiceCredentials:qr,retryableStatusCodes:ng,stripHtml:Hi,uploadGroupFile:be,withRetry:tg})),V.set(`fetch_file`,(e,t,n)=>Wf(e,t,n,{buildAuthHeaders:Zr,fetchImpl:fetch,isRetryableFetchError:ag,post:j,resolveGitCredentials:ii,resolveServiceCredentials:qr,retryableStatusCodes:ng,uploadGroupFile:be,withRetry:tg,writeGroupFile:Ht})),V.set(`update_memory`,(e,t,n)=>oh(e,t,n)),V.set(`create_task`,(e,t,n)=>dm(t,n)),V.set(`javascript`,(e,t)=>Am(e,t)),V.set(`activate_skill`,(e,t,n)=>fh(e,t,n)),V.set(`list_tasks`,(e,t,n)=>gm(e,n)),V.set(`update_task`,(e,t,n)=>vm(e,t,n)),V.set(`enable_task`,(e,t,n)=>hm(e,t,n)),V.set(`disable_task`,(e,t,n)=>mm(e,t,n)),V.set(`delete_task`,(e,t,n)=>fm(t,n)),V.set(`run_task`,(e,t,n)=>_m(e,t,n)),V.set(`clear_chat`,(e,t,n)=>bm(n)),V.set(`show_toast`,(e,t)=>Lm(t)),V.set(`send_notification`,(e,t,n)=>Im(t,n)),V.set(`create_room`,(e,t)=>cp(t)),V.set(`invite_to_room`,(e,t,n)=>dp(t,n)),V.set(`leave_room`,(e,t,n)=>fp(t,n)),V.set(`list_room_members`,(e,t,n)=>pp(e,t,n)),V.set(`prompt_peer`,(e,t,n)=>_p(e,t,n)),V.set(`list_peers`,(e,t,n)=>vp(e,t,n));const _g=(e,t,n)=>Ff(e,t,n);V.set(`manage_email`,_g),V.set(`manage_integration`,_g),V.set(`email_read_messages`,(e,t,n)=>vg(e,`manage_email`,{...t,action:`read_messages`},n)),V.set(`integration_read_messages`,(e,t,n)=>vg(e,`manage_email`,{...t,action:`read_messages`},n)),V.set(`email_send_message`,(e,t,n)=>vg(e,`manage_email`,{...t,action:`send_message`},n)),V.set(`integration_send_message`,(e,t,n)=>vg(e,`manage_email`,{...t,action:`send_message`},n)),V.set(`remote_mcp_list_tools`,(e,t,n)=>op(e,t,n,{callRemoteMcpTool:Ni,listRemoteMcpTools:Mi,McpReauthRequiredError:bi,post:j})),V.set(`remote_mcp_call_tool`,(e,t,n)=>sp(e,t,n,{callRemoteMcpTool:Ni,listRemoteMcpTools:Mi,McpReauthRequiredError:bi,post:j}));for(let e of[`git_clone`,`git_checkout`,`git_branch`,`git_status`,`git_add`,`git_log`,`git_diff`,`git_branches`,`git_list_repos`,`git_delete_repo`,`git_commit`,`git_pull`,`git_push`,`git_merge`,`git_reset`,`git_fetch`,`git_read_file_at_ref`,`git_show`,`git_delete_branch`,`git_init`,`git_tag`,`git_remote`,`git_config`,`git_unstage`])V.set(e,(t,n,r)=>gg(t,e,n,r));V.set(`list_components`,()=>jm()),V.set(`render_component`,(e,t,n)=>Fm(t,n)),V.set(`spawn_subagent`,async(e,t,n,r)=>r?.invokeContext?await um(t,n,r.invokeContext):`Error: spawn_subagent requires an active agent invocation context. This tool cannot be called directly.`),V.set(`get_current_time`,(e,t)=>xm(t)),V.set(`search_files`,(e,t,n)=>ih(e,t,n,{maxFileBytes:Er.searchFilesMaxFileBytes,maxFilesVisited:Er.searchFilesMaxFilesVisited,skipDirs:Er.searchFilesSkipDirsSet})),V.set(`diff_files`,(e,t,n)=>Ym(e,t,n)),V.set(`ask_user`,(e,t,n)=>ym(t,n)),V.set(`web_search`,(e,t)=>Rm(t)),V.set(`summarize_text`,(e,t,n,r)=>Jh(t,n,{db:e,invokeContext:r?.invokeContext})),V.set(`write_text`,(e,t,n,r)=>Yh(t,n,{db:e,invokeContext:r?.invokeContext})),V.set(`rewrite_text`,(e,t,n,r)=>Xh(t,n,{db:e,invokeContext:r?.invokeContext})),V.set(`proofread_text`,(e,t,n,r)=>Zh(t,n,{db:e,invokeContext:r?.invokeContext})),V.set(`detect_language`,(e,t,n,r)=>Qh(t,n,{db:e,invokeContext:r?.invokeContext})),V.set(`translate_text`,(e,t,n,r)=>$h(t,n,{db:e,invokeContext:r?.invokeContext})),V.set(`embed_text`,(e,t,n,r)=>eg(t,n,{db:e,invokeContext:r?.invokeContext}));async function vg(e,t,n,r,i={}){try{let a=fg(t,i);if(a)return a;let o=V.get(t);return o?await o(e,n,r,i):await pg(e,t,n,r,i,vg)}catch(e){return`Tool error (${t}): ${e instanceof Error?e.message:String(e)}`}}const yg=840*1024*1024;var bg=class{emitter;expectedTotalBytes;logEvents;suppressInitialZero;_hasEmitted=!1;hasStreamEvents=!1;urlBytesMap=new Map;maxProgressFraction=0;maxLoadedBytes=0;maxEffectiveTotal=0;lastReportedMessage=``;lastReportedFraction=null;constructor(e,t){this.emitter=e,this.expectedTotalBytes=t?.expectedTotalBytes===void 0?yg:t.expectedTotalBytes,this.logEvents=t?.logEvents??!1,this.suppressInitialZero=t?.suppressInitialZero??!1}get hasEmitted(){return this._hasEmitted}markActive(){this._hasEmitted=!0}onStreamProgress(e,t,n,r=!1){if(!Number.isFinite(t)||t<0)return;this.hasStreamEvents=!0,this.urlBytesMap.set(e,{received:t,total:n,complete:r});let i=0,a=0,o=this.urlBytesMap.size>0;for(let e of this.urlBytesMap.values())i+=e.received,e.total!=null&&Number.isFinite(e.total)&&e.total>0&&(a+=e.total),e.complete||(o=!1);let s=this.maxEffectiveTotal,c=this.expectedTotalBytes>0?this.expectedTotalBytes:0,l=Math.max(a,c);this.maxEffectiveTotal=Math.max(this.maxEffectiveTotal,l);let u=this.maxEffectiveTotal;if(this.maxLoadedBytes=Math.max(this.maxLoadedBytes,i),u>0){let e=Math.min(1,Math.max(0,this.maxLoadedBytes/u)),t=o?e:Math.min(.99,e);u>s&&s>0?this.maxProgressFraction=t:this.maxProgressFraction=Math.max(this.maxProgressFraction,t);let n=`Downloading Prompt API model... (${(this.maxLoadedBytes/(1024*1024)).toFixed(1)} / ${(u/(1024*1024)).toFixed(1)} MB · ${Math.min(o?100:99,Math.round(this.maxProgressFraction*100))}%)`;this.emit(this.maxProgressFraction,n)}else{let e=`Downloading Prompt API model... (${(this.maxLoadedBytes/(1024*1024)).toFixed(1)} MB downloaded)`;this.emit(null,e)}}onProgressEvent(e){let t=Number(e?.loaded),n=Number(e?.total);if(this.logEvents&&console.log(`[PromptApiProgressAggregator] onProgressEvent:`,{loaded:t,total:n,type:e?.type}),!(!Number.isFinite(t)||t<0)&&!(this.hasStreamEvents&&t<=1)&&!(this.suppressInitialZero&&!this._hasEmitted&&t===0&&(!Number.isFinite(n)||n<=1))){if(Number.isFinite(n)&&n>1){let e=this.expectedTotalBytes>0?this.expectedTotalBytes:0,r=Math.max(n,e,this.maxEffectiveTotal);this.maxEffectiveTotal=r,this.maxLoadedBytes=Math.max(this.maxLoadedBytes,t);let i=Math.min(.99,this.maxLoadedBytes/r);this.maxProgressFraction=Math.max(this.maxProgressFraction,i);let a=(this.maxLoadedBytes/(1024*1024)).toFixed(1),o=(r/(1024*1024)).toFixed(1),s=Math.round(this.maxProgressFraction*100);this.emit(this.maxProgressFraction,`Downloading Prompt API model... (${a} / ${o} MB · ${s}%)`);return}if(t>=0&&t<=1){let e=Math.max(0,Math.min(1,t)),n=e>=1?.99:e;this.maxProgressFraction=Math.max(this.maxProgressFraction,n);let r=Math.max(this.maxEffectiveTotal,this.expectedTotalBytes);if(r>0){let e=(Math.round(this.maxProgressFraction*r)/(1024*1024)).toFixed(1),t=(r/(1024*1024)).toFixed(1),n=Math.round(this.maxProgressFraction*100);this.emit(this.maxProgressFraction,`Downloading Prompt API model... (${e} / ${t} MB · ${n}%)`)}else{let e=Math.round(this.maxProgressFraction*100);this.emit(this.maxProgressFraction,`Downloading Prompt API model... ${e}%`)}return}if(t>1){this.maxLoadedBytes=Math.max(this.maxLoadedBytes,t);let e=Math.max(this.maxEffectiveTotal,this.expectedTotalBytes);if(e>0){let t=Math.max(this.maxLoadedBytes,e),n=Math.min(.99,this.maxLoadedBytes/t);this.maxProgressFraction=Math.max(this.maxProgressFraction,n);let r=(this.maxLoadedBytes/(1024*1024)).toFixed(1),i=(t/(1024*1024)).toFixed(1),a=Math.round(this.maxProgressFraction*100);this.emit(this.maxProgressFraction,`Downloading Prompt API model... (${r} / ${i} MB · ${a}%)`)}else{let e=(this.maxLoadedBytes/(1024*1024)).toFixed(1);this.emit(null,`Downloading Prompt API model... (${e} MB downloaded)`)}return}}}onDone(){this.maxProgressFraction=1,this.emitter(`done`,1,`Prompt API model ready.`)}onError(e){let t=e instanceof Error?e.message:String(e);this.emitter(`error`,null,t)}emit(e,t){this._hasEmitted=!0,!(this.lastReportedMessage===t&&this.lastReportedFraction===e)&&(this.lastReportedMessage=t,this.lastReportedFraction=e,this.emitter(`running`,e,t))}},xg=Object.defineProperty,Sg=(e,t,n)=>t in e?xg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Cg=(e,t,n)=>(Sg(e,typeof t==`symbol`?t:t+``,n),n),H=Object.freeze({Text:`Text`,NumericLiteral:`NumericLiteral`,StringLiteral:`StringLiteral`,Identifier:`Identifier`,Equals:`Equals`,OpenParen:`OpenParen`,CloseParen:`CloseParen`,OpenStatement:`OpenStatement`,CloseStatement:`CloseStatement`,OpenExpression:`OpenExpression`,CloseExpression:`CloseExpression`,OpenSquareBracket:`OpenSquareBracket`,CloseSquareBracket:`CloseSquareBracket`,OpenCurlyBracket:`OpenCurlyBracket`,CloseCurlyBracket:`CloseCurlyBracket`,Comma:`Comma`,Dot:`Dot`,Colon:`Colon`,Pipe:`Pipe`,CallOperator:`CallOperator`,AdditiveBinaryOperator:`AdditiveBinaryOperator`,MultiplicativeBinaryOperator:`MultiplicativeBinaryOperator`,ExponentiationBinaryOperator:`ExponentiationBinaryOperator`,ComparisonBinaryOperator:`ComparisonBinaryOperator`,UnaryOperator:`UnaryOperator`,Comment:`Comment`}),wg=class{constructor(e,t){this.value=e,this.type=t}};function Tg(e){return/\w/.test(e)}function Eg(e){return/[0-9]/.test(e)}function Dg(e){return/\s/.test(e)}var Og=[[`{%`,H.OpenStatement],[`%}`,H.CloseStatement],[`{{`,H.OpenExpression],[`}}`,H.CloseExpression],[`(`,H.OpenParen],[`)`,H.CloseParen],[`{`,H.OpenCurlyBracket],[`}`,H.CloseCurlyBracket],[`[`,H.OpenSquareBracket],[`]`,H.CloseSquareBracket],[`,`,H.Comma],[`.`,H.Dot],[`:`,H.Colon],[`|`,H.Pipe],[`<=`,H.ComparisonBinaryOperator],[`>=`,H.ComparisonBinaryOperator],[`==`,H.ComparisonBinaryOperator],[`!=`,H.ComparisonBinaryOperator],[`<`,H.ComparisonBinaryOperator],[`>`,H.ComparisonBinaryOperator],[`+`,H.AdditiveBinaryOperator],[`-`,H.AdditiveBinaryOperator],[`~`,H.AdditiveBinaryOperator],[`**`,H.ExponentiationBinaryOperator],[`*`,H.MultiplicativeBinaryOperator],[`//`,H.MultiplicativeBinaryOperator],[`/`,H.MultiplicativeBinaryOperator],[`%`,H.MultiplicativeBinaryOperator],[`=`,H.Equals]],kg=new Map([[`n`,`
962
+ `).trim()}}function Ph(e){if(!e||!Array.isArray(e.content))return e;let t=[],n=!1;for(let r of e.content){if(r.type!==`text`){t.push(r);continue}let{toolBlocks:e,residualText:i}=Nh(Mh(r.text));i&&t.push({type:`text`,text:i}),e.length>0&&(n=!0,t.push(...e))}return{...e,content:t,stop_reason:n||e.stop_reason===`tool_use`?`tool_use`:e.stop_reason}}const Fh={openai:Oh,anthropic:kh,google:jh,"mesh-llm":class extends Oh{parseResponse(e){return Ph(super.parseResponse(e))}}};function Ih(e){let t=Fh[e.format];if(!t)throw Error(`Unsupported provider format: ${e.format}`);return new t(e)}function Lh(e,t,n,r){return Ih(e).formatRequest(t,n,r)}function Rh(e){let t=e.toLowerCase();return t===`none`?0:t===`max`||t===`xhigh`?.95:t===`high`?.8:t===`medium`?.5:t===`low`?.2:t===`minimal`?.1:0}function zh(e,t){return Ih(e).parseResponse(t)}function Bh(e){let t=_.getModelInfo(e);if(t?.contextWindow)return t.contextWindow;let n=e.toLowerCase();return n.includes(`gpt-4.1`)?1047576:n.includes(`gpt-5`)?4e5:n.includes(`gpt-4o`)||n.includes(`gpt-4-turbo`)?128e3:n===`gpt-4`||n.startsWith(`gpt-4-`)?8192:n.includes(`gpt-3.5-turbo`)?16385:n.includes(`gpt-3.5`)?4096:n.includes(`o1`)||n.includes(`o3`)||n.includes(`o4`)?2e5:n.includes(`claude-opus-4`)||n.includes(`claude-sonnet-4`)?1e6:n.includes(`claude`)?2e5:n.includes(`gemini-nano`)?4096:n.includes(`gemini-1.5-pro`)?2097152:n.includes(`gemini-2.5`)||n.includes(`gemini-2.0`)||n.includes(`gemini-1.5`)?1048576:n.includes(`gemini-1.0`)||n.includes(`gemini-pro`)?32768:n.includes(`gemini`)?1048576:n.includes(`llama-3.1`)||n.includes(`llama-3-1`)?128e3:n.includes(`llama-3`)?8192:n.includes(`llama`)?4096:n.includes(`gemma-4-12b`)||n.includes(`gemma-4-26b`)||n.includes(`gemma-4-31b`)||n.includes(`gemma-4-e9b`)||n.includes(`gemma-4-e27b`)?256e3:n.includes(`gemma-4`)||n.includes(`gemma 4`)||n.includes(`gemma-3-4b`)||n.includes(`gemma-3-12b`)||n.includes(`gemma-3-27b`)?128e3:n.includes(`gemma-3`)||n.includes(`gemma 3`)?32e3:n.includes(`gemma-2`)||n.includes(`gemma-7b`)||n.includes(`gemma-2b`)||n.includes(`gemma`)?8192:n.includes(`mistral-large`)?128e3:n.includes(`mistral`)?32e3:n.includes(`amazon.titan`)?8192:n.includes(`amazon.nova-micro`)||n.includes(`nova-micro`)?128e3:n.includes(`amazon.nova`)||n.includes(`nova-pro`)||n.includes(`nova-lite`)?3e5:n.includes(`ai21`)?8192:n.includes(`cohere`)||n.includes(`phi-4-mini`)?128e3:n.includes(`phi-4`)?16384:n.includes(`phi-3.5`)||n.includes(`128k`)?128e3:n.includes(`phi-3`)?4096:n.includes(`qwen3.5`)?262144:n.includes(`qwen3-0.6b`)||n.includes(`qwen3-1.7b`)?40960:n.includes(`qwen3`)?128e3:n===`mesh`?242144:4096}function Vh(e,t){if(e===`translate`)return`Translate the following text from ${t.sourceLanguage||`auto`} to ${t.targetLanguage}. Provide ONLY the raw translated text without commentary or quotation marks:\n\n${t.text}`;if(e===`summarize`)return`Summarize the following text (type: ${t.type||`tldr`}, format: ${t.format||`plain-text`}, length: ${t.length||`medium`}). Provide ONLY the summary:\n\n${t.text}`;if(e===`write`)return`Draft content for the following request (context: ${t.context||`none`}):\n\n${t.prompt}`;if(e===`rewrite`)return`Rewrite the following text (tone: ${t.tone||`standard`}, length: ${t.length||`as-is`}):\n\n${t.text}`;if(e===`proofread`)return`Proofread and correct grammar, spelling, and style in the following text. Provide ONLY the corrected text:\n\n${t.text}`;if(e===`detect-language`)return`Detect the language of the following text. Return ONLY a JSON array of objects with "detectedLanguage" (BCP 47 code) and "confidence" (0.0 - 1.0), e.g. [{"detectedLanguage":"en","confidence":0.99}]:\n\n${t.text}`;if(e===`semantic-embedder`)return`Provide a concise semantic description/representation for the following content:\n\n${JSON.stringify(t.text)}`;throw Error(`Unknown native AI task type: ${e}`)}async function Hh(e){if(e.toolsBackendPref)return e.toolsBackendPref;if(e.db)try{let{getConfig:t}=await import(`./chunk-0WvYaMdi.js`),n=await t(e.db,S.BUILTIN_AI_TOOLS_BACKEND);if(n)return n}catch{}return`active_provider`}async function Uh(e,t,n){if(n.apiKey!==void 0)return n.apiKey;if(Yt!==void 0&&Yt.env){let e=Yt.env.SHADOW_CLAW_API_KEY;if(e)return e;switch(t){case`openrouter`:if(Yt.env.OPENROUTER_API_KEY)return Yt.env.OPENROUTER_API_KEY;break;case`huggingface`:if(Yt.env.HUGGINGFACE_API_KEY||Yt.env.HF_TOKEN)return Yt.env.HUGGINGFACE_API_KEY||Yt.env.HF_TOKEN||``;break;case`gemini_proxy`:if(Yt.env.GEMINI_API_KEY)return Yt.env.GEMINI_API_KEY;break}let n=`${t.toUpperCase()}_API_KEY`;if(Yt.env[n])return Yt.env[n]}if(n.db)try{let{getConfig:e}=await import(`./chunk-0WvYaMdi.js`),r=await e(n.db,`api_key:${t}`)||await e(n.db,`apiKey`);if(r)return r}catch{}return``}async function Wh(e){let{taskType:t,input:n,onProgress:r}=e;if(await Hh(e)===`local`){if(t===`summarize`)return await Xp(n.text,{...n,onProgress:r});if(t===`write`)return await Zp(n.prompt,{...n,onProgress:r});if(t===`rewrite`)return await Qp(n.text,{...n,onProgress:r});if(t===`proofread`)return await tm(n.text,{...n,onProgress:r});if(t===`detect-language`)return await $p(n.text,{onProgress:r});if(t===`translate`)return await em(n.text,{sourceLanguage:n.sourceLanguage||`auto`,targetLanguage:n.targetLanguage||`en`,...n,onProgress:r});if(t===`semantic-embedder`)return await nm(n.text,{...n,onProgress:r});throw Error(`Unknown native AI task: ${t}`)}let a=i()?`openrouter`:`prompt_api`,o=e.providerId;if(!o&&e.db)try{let{getConfig:t}=await import(`./chunk-0WvYaMdi.js`);o=await t(e.db,S.PROVIDER)||a}catch{}o||=Yt!==void 0&&(Yt.env.SHADOW_CLAW_PROVIDER||Yt.env.SHADOW_CLAW_DEFAULT_PROVIDER)||a;let s=Vh(t,n);if(o===`prompt_api`){await Jp();let e=globalThis,n=e.LanguageModel||e.ai?.languageModel;if(n&&typeof n.create==`function`){let e;try{e=await n.create()}catch(e){console.warn(`Prompt API session creation failed in active provider task:`,e)}if(e)try{let n=await e.prompt(s),r=String(n||``).trim();if(t===`detect-language`)try{let e=JSON.parse(r);return Array.isArray(e)?e:[e]}catch{return[{detectedLanguage:`en`,confidence:.8}]}return r}finally{typeof e.destroy==`function`&&e.destroy()}}}let c=v(o);if(!c||!c.baseUrl||c.baseUrl.startsWith(`builtin://`)||c.baseUrl.startsWith(`local://`)||c.format===`prompt_api`||c.format===`transformers_js`){if(t===`summarize`)return await Xp(n.text,n);if(t===`write`)return await Zp(n.prompt,n);if(t===`rewrite`)return await Qp(n.text,n);if(t===`proofread`)return await tm(n.text,n);if(t===`detect-language`)return await $p(n.text);if(t===`translate`)return await em(n.text,{sourceLanguage:n.sourceLanguage||`auto`,targetLanguage:n.targetLanguage||`en`,...n});if(t===`semantic-embedder`)return await nm(n.text,n);throw Error(`Provider ${o} not found and no local fallback available`)}let l=await Uh(c,o,e);if(c.requiresApiKey!==!1&&!l)throw Error(`Provider "${c.name||o}" requires an API key for task "${t}". Please provide an API key or configure tools backend.`);let u=e.model||c.defaultModel||`default`,d={...Eh(c,l),...e.headers||{}},f=Lh(c,[{role:`user`,content:s}],[],{maxTokens:e.maxTokens||2048,model:u,system:`You are a specialized text task assistant. Fulfill the user request directly and accurately without conversational filler.`}),p=await fetch(c.baseUrl,{body:JSON.stringify(f),headers:d,method:`POST`});if(!p.ok){let e=await p.text();throw Error(`Active provider task API error ${p.status}: ${e}`)}let m=zh(c,await p.json()).content?.filter(e=>e.type===`text`)?.map(e=>e.text)?.join(``)?.trim()||``;if(t===`detect-language`)try{let e=JSON.parse(m);return Array.isArray(e)?e:[e]}catch{return[{detectedLanguage:`en`,confidence:.8}]}return m}let Gh=null;function Kh(e){Gh=e}async function qh(e,t,r,a){if(Gh)return await Gh(t,r,e,a);if(i()){let n=a?.invokeContext;return await Wh({taskType:t,input:r,groupId:e,providerId:n?.provider,model:n?.model,apiKey:n?.apiKey,maxTokens:n?.maxTokens,headers:n?.providerHeaders,db:a?.db||n?.db})}let o=n();return j({type:`request-native-ai-task`,payload:{id:o,groupId:e,taskType:t,input:r}}),await new Promise((e,t)=>{globalThis.pendingNativeAiResolvers=globalThis.pendingNativeAiResolvers||{},globalThis.pendingNativeAiResolvers[o]={resolve:e,reject:t}})}async function Jh(e,t,n){let r=String(e.text||``).trim();if(!r)return`Error: text is required for summarize_text`;try{return await qh(t,`summarize`,{text:r,type:e.type,format:e.format,length:e.length,preference:e.preference,context:e.context},n)}catch(e){return`Error summarizing text: ${e instanceof Error?e.message:String(e)}`}}async function Yh(e,t,n){let r=String(e.prompt||``).trim();if(!r)return`Error: prompt is required for write_text`;try{return await qh(t,`write`,{prompt:r,context:e.context},n)}catch(e){return`Error writing text: ${e instanceof Error?e.message:String(e)}`}}async function Xh(e,t,n){let r=String(e.text||``).trim();if(!r)return`Error: text is required for rewrite_text`;try{return await qh(t,`rewrite`,{text:r,tone:e.tone,length:e.length,context:e.context},n)}catch(e){return`Error rewriting text: ${e instanceof Error?e.message:String(e)}`}}async function Zh(e,t,n){let r=String(e.text||``).trim();if(!r)return`Error: text is required for proofread_text`;try{return await qh(t,`proofread`,{text:r,context:e.context},n)}catch(e){return`Error proofreading text: ${e instanceof Error?e.message:String(e)}`}}async function Qh(e,t,n){let r=String(e.text||``).trim();if(!r)return`Error: text is required for detect_language`;try{let e=await qh(t,`detect-language`,{text:r},n);return typeof e==`string`?e:JSON.stringify(e,null,2)}catch(e){return`Error detecting language: ${e instanceof Error?e.message:String(e)}`}}async function $h(e,t,n){let r=String(e.text||``).trim(),i=String(e.sourceLanguage||``).trim(),a=String(e.targetLanguage||``).trim();if(!r||!i||!a)return`Error: text, sourceLanguage, and targetLanguage are required for translate_text`;try{return await qh(t,`translate`,{text:r,sourceLanguage:i,targetLanguage:a},n)}catch(e){return`Error translating text: ${e instanceof Error?e.message:String(e)}`}}async function eg(e,t,n){let r=e.text;if(!r||Array.isArray(r)&&r.length===0)return`Error: text is required for embed_text`;try{let i=await qh(t,`semantic-embedder`,{text:r,taskType:e.taskType},n);return typeof i==`string`?i:JSON.stringify(i,null,2)}catch(e){return`Error generating embeddings: ${e instanceof Error?e.message:String(e)}`}}async function tg(e,t={}){let{maxRetries:n=3,baseDelayMs:r=1e3,maxDelayMs:i=3e4,jitterFactor:a=.5,shouldRetry:o=()=>!0,onRetry:s,signal:c}=t,l;for(let t=0;t<=n;t++){if(c?.aborted)throw c.reason??new DOMException(`Aborted`,`AbortError`);try{return await e()}catch(e){if(l=e,e instanceof DOMException&&e.name===`AbortError`||e instanceof Error&&e.name===`AbortError`)throw e;if(t>=n||!o(e,t+1))break;let u=wp(t,r,i,a);s&&s(t+1,n,u,e),await Tp(u,c)}}throw l}const ng=new Set([408,429,500,502,503,504]);function rg(e){return/network|ECONNRESET|ECONNREFUSED|ETIMEDOUT|fetch failed|EAI_AGAIN|EAI_NONAME|getaddrinfo/i.test(e.message)}function ig(e){if(e instanceof TypeError)return!0;if(typeof e?.status==`number`)return ng.has(e.status);if(e instanceof Error){let t=e.message.match(/\b(4\d{2}|5\d{2})\b/);if(t)return ng.has(Number(t[1]));if(rg(e))return!0}return!1}function ag(e){return e instanceof TypeError?!0:e&&typeof e.status==`number`?ng.has(e.status):e instanceof Error&&rg(e)}const og=new Set([`create_task`,`update_task`,`delete_task`,`enable_task`,`disable_task`,`send_notification`,`create_room`,`invite_to_room`,`leave_room`]);function sg(e){if(!Array.isArray(e))return null;let t=e.map(e=>typeof e==`string`?e:typeof e?.name==`string`?e.name:null).filter(Boolean);return new Set(t)}function cg(e,t){let n=sg(t);return n&&!n.has(e)?`Tool "${e}" is not allowed in the current context. Do not call it again. Use one of the available tools or ask for help.`:null}function lg(e,t,n){return(t||n)&&e===`run_task`?`Tool "run_task" cannot be called from within a task execution to prevent infinite loops.`:null}function ug(e,t){return t&&og.has(e)?`Tool "${e}" is not allowed during scheduled task execution to prevent recursion.`:null}function dg(e){return i()&&a.has(e)?`Tool "${e}" is not available in headless CLI mode. It requires a browser UI.`:null}function fg(e,t={}){return cg(e,t.allowedTools)||lg(e,t.isScheduledTask,t.isTaskExecution)||ug(e,t.isScheduledTask)||dg(e)||null}async function pg(e,t,n,r,i={},a){let o=await zt(e,r,t);if(!o)return`Unknown tool: ${t}`;let s=i.declarativeDepth||0;if(s>=8)return`Tool error (${t}): declarative tool nesting limit exceeded.`;if(o.execution.type===`tool`){let c=o.execution.name;return c?await a(e,c,o.execution.input?{...n,...o.execution.input}:n,r,{...i,declarativeDepth:s+1}):`Tool error (${t}): declarative tool target is missing.`}return o.execution.type===`bash`?await uf(e,{command:o.execution.command,stdin:JSON.stringify(n)},r):await Am(e,{code:o.execution.code,data:JSON.stringify(n)})}let mg=null;async function hg(){return mg||=import(`./chunk-Ci9OJGcd2.js`),mg}async function gg(e,t,n,r){let i=await hg();return await Qf(e,t,n,r,{configKeys:{GIT_CORS_PROXY:S.GIT_CORS_PROXY,GIT_PROXY_URL:S.GIT_PROXY_URL,GIT_AUTHOR_NAME:S.GIT_AUTHOR_NAME,GIT_AUTHOR_EMAIL:S.GIT_AUTHOR_EMAIL},getConfig:C,getGroupDir:c,getProxyUrl:i.getProxyUrl,getRemoteUrl:i.getRemoteUrl,gitAdd:i.gitAdd,gitBranch:i.gitBranch,gitCheckout:i.gitCheckout,gitClone:i.gitClone,gitCommit:i.gitCommit,gitConfig:i.gitConfig,gitDeleteBranch:i.gitDeleteBranch,gitDeleteRepo:i.gitDeleteRepo,gitDiff:i.gitDiff,gitFetch:i.gitFetch,gitInit:i.gitInit,gitListBranches:i.gitListBranches,gitListRepos:i.gitListRepos,gitListTags:i.gitListTags,gitLog:i.gitLog,gitMerge:i.gitMerge,gitPull:i.gitPull,gitPush:i.gitPush,gitReadFileAtRef:i.gitReadFileAtRef,gitRemote:i.gitRemote,gitReset:i.gitReset,gitShow:i.gitShow,gitStatus:i.gitStatus,gitTag:i.gitTag,gitUnstage:i.gitUnstage,readGroupFile:Wt,resolveGitCredentials:ii})}const V=new Map;V.set(`bash`,(e,t,n)=>uf(e,t,n)),V.set(`read_file`,(e,t,n)=>th(e,t,n)),V.set(`open_file`,(e,t,n)=>$m(e,t,n)),V.set(`attach_file_to_chat`,(e,t,n)=>Bm(e,t,n)),V.set(`send_file`,(e,t,n)=>ah(e,t,n)),V.set(`write_file`,(e,t,n)=>sh(e,t,n)),V.set(`delete_file`,(e,t,n)=>Jm(e,t,n)),V.set(`move_file`,(e,t,n)=>Qm(e,t,n)),V.set(`copy_file`,(e,t,n)=>Gm(e,t,n)),V.set(`create_directory`,(e,t,n)=>Km(e,t,n)),V.set(`patch_file`,(e,t,n)=>eh(e,t,n)),V.set(`list_files`,(e,t,n)=>Xm(e,t,n)),V.set(`manage_tools`,(e,t,n)=>Nm(t,n)),V.set(`list_tool_profiles`,e=>Mm(e)),V.set(`fetch_url`,(e,t,n)=>Kf(e,t,n,{buildAuthHeaders:Zr,fetchImpl:fetch,fetchMaxResponse:ee,isRetryableFetchError:ag,post:j,resolveGitCredentials:ii,resolveServiceCredentials:qr,retryableStatusCodes:ng,stripHtml:Hi,uploadGroupFile:be,withRetry:tg})),V.set(`fetch_file`,(e,t,n)=>Wf(e,t,n,{buildAuthHeaders:Zr,fetchImpl:fetch,isRetryableFetchError:ag,post:j,resolveGitCredentials:ii,resolveServiceCredentials:qr,retryableStatusCodes:ng,uploadGroupFile:be,withRetry:tg,writeGroupFile:Ht})),V.set(`update_memory`,(e,t,n)=>oh(e,t,n)),V.set(`create_task`,(e,t,n)=>dm(t,n)),V.set(`javascript`,(e,t)=>Am(e,t)),V.set(`activate_skill`,(e,t,n)=>fh(e,t,n)),V.set(`list_tasks`,(e,t,n)=>gm(e,n)),V.set(`update_task`,(e,t,n)=>vm(e,t,n)),V.set(`enable_task`,(e,t,n)=>hm(e,t,n)),V.set(`disable_task`,(e,t,n)=>mm(e,t,n)),V.set(`delete_task`,(e,t,n)=>fm(t,n)),V.set(`run_task`,(e,t,n)=>_m(e,t,n)),V.set(`clear_chat`,(e,t,n)=>bm(n)),V.set(`show_toast`,(e,t)=>Lm(t)),V.set(`send_notification`,(e,t,n)=>Im(t,n)),V.set(`create_room`,(e,t)=>cp(t)),V.set(`invite_to_room`,(e,t,n)=>dp(t,n)),V.set(`leave_room`,(e,t,n)=>fp(t,n)),V.set(`list_room_members`,(e,t,n)=>pp(e,t,n)),V.set(`prompt_peer`,(e,t,n)=>_p(e,t,n)),V.set(`list_peers`,(e,t,n)=>vp(e,t,n));const _g=(e,t,n)=>Ff(e,t,n);V.set(`manage_email`,_g),V.set(`manage_integration`,_g),V.set(`email_read_messages`,(e,t,n)=>vg(e,`manage_email`,{...t,action:`read_messages`},n)),V.set(`integration_read_messages`,(e,t,n)=>vg(e,`manage_email`,{...t,action:`read_messages`},n)),V.set(`email_send_message`,(e,t,n)=>vg(e,`manage_email`,{...t,action:`send_message`},n)),V.set(`integration_send_message`,(e,t,n)=>vg(e,`manage_email`,{...t,action:`send_message`},n)),V.set(`remote_mcp_list_tools`,(e,t,n)=>op(e,t,n,{callRemoteMcpTool:Ni,listRemoteMcpTools:Mi,McpReauthRequiredError:bi,post:j})),V.set(`remote_mcp_call_tool`,(e,t,n)=>sp(e,t,n,{callRemoteMcpTool:Ni,listRemoteMcpTools:Mi,McpReauthRequiredError:bi,post:j}));for(let e of[`git_clone`,`git_checkout`,`git_branch`,`git_status`,`git_add`,`git_log`,`git_diff`,`git_branches`,`git_list_repos`,`git_delete_repo`,`git_commit`,`git_pull`,`git_push`,`git_merge`,`git_reset`,`git_fetch`,`git_read_file_at_ref`,`git_show`,`git_delete_branch`,`git_init`,`git_tag`,`git_remote`,`git_config`,`git_unstage`])V.set(e,(t,n,r)=>gg(t,e,n,r));V.set(`list_components`,()=>jm()),V.set(`render_component`,(e,t,n)=>Fm(t,n)),V.set(`spawn_subagent`,async(e,t,n,r)=>r?.invokeContext?await um(t,n,r.invokeContext):`Error: spawn_subagent requires an active agent invocation context. This tool cannot be called directly.`),V.set(`get_current_time`,(e,t)=>xm(t)),V.set(`search_files`,(e,t,n)=>ih(e,t,n,{maxFileBytes:Er.searchFilesMaxFileBytes,maxFilesVisited:Er.searchFilesMaxFilesVisited,skipDirs:Er.searchFilesSkipDirsSet})),V.set(`diff_files`,(e,t,n)=>Ym(e,t,n)),V.set(`ask_user`,(e,t,n)=>ym(t,n)),V.set(`web_search`,(e,t)=>Rm(t)),V.set(`summarize_text`,(e,t,n,r)=>Jh(t,n,{db:e,invokeContext:r?.invokeContext})),V.set(`write_text`,(e,t,n,r)=>Yh(t,n,{db:e,invokeContext:r?.invokeContext})),V.set(`rewrite_text`,(e,t,n,r)=>Xh(t,n,{db:e,invokeContext:r?.invokeContext})),V.set(`proofread_text`,(e,t,n,r)=>Zh(t,n,{db:e,invokeContext:r?.invokeContext})),V.set(`detect_language`,(e,t,n,r)=>Qh(t,n,{db:e,invokeContext:r?.invokeContext})),V.set(`translate_text`,(e,t,n,r)=>$h(t,n,{db:e,invokeContext:r?.invokeContext})),V.set(`embed_text`,(e,t,n,r)=>eg(t,n,{db:e,invokeContext:r?.invokeContext}));async function vg(e,t,n,r,i={}){try{let a=fg(t,i);if(a)return a;let o=V.get(t);return o?await o(e,n,r,i):await pg(e,t,n,r,i,vg)}catch(e){return`Tool error (${t}): ${e instanceof Error?e.message:String(e)}`}}const yg=840*1024*1024;var bg=class{emitter;expectedTotalBytes;logEvents;suppressInitialZero;_hasEmitted=!1;hasStreamEvents=!1;urlBytesMap=new Map;maxProgressFraction=0;maxLoadedBytes=0;maxEffectiveTotal=0;lastReportedMessage=``;lastReportedFraction=null;constructor(e,t){this.emitter=e,this.expectedTotalBytes=t?.expectedTotalBytes===void 0?yg:t.expectedTotalBytes,this.logEvents=t?.logEvents??!1,this.suppressInitialZero=t?.suppressInitialZero??!1}get hasEmitted(){return this._hasEmitted}markActive(){this._hasEmitted=!0}onStreamProgress(e,t,n,r=!1){if(!Number.isFinite(t)||t<0)return;this.hasStreamEvents=!0,this.urlBytesMap.set(e,{received:t,total:n,complete:r});let i=0,a=0,o=this.urlBytesMap.size>0;for(let e of this.urlBytesMap.values())i+=e.received,e.total!=null&&Number.isFinite(e.total)&&e.total>0&&(a+=e.total),e.complete||(o=!1);let s=this.maxEffectiveTotal,c=this.expectedTotalBytes>0?this.expectedTotalBytes:0,l=Math.max(a,c);this.maxEffectiveTotal=Math.max(this.maxEffectiveTotal,l);let u=this.maxEffectiveTotal;if(this.maxLoadedBytes=Math.max(this.maxLoadedBytes,i),u>0){let e=Math.min(1,Math.max(0,this.maxLoadedBytes/u)),t=o?e:Math.min(.99,e);u>s&&s>0?this.maxProgressFraction=t:this.maxProgressFraction=Math.max(this.maxProgressFraction,t);let n=`Downloading Prompt API model... (${(this.maxLoadedBytes/(1024*1024)).toFixed(1)} / ${(u/(1024*1024)).toFixed(1)} MB · ${Math.min(o?100:99,Math.round(this.maxProgressFraction*100))}%)`;this.emit(this.maxProgressFraction,n)}else{let e=`Downloading Prompt API model... (${(this.maxLoadedBytes/(1024*1024)).toFixed(1)} MB downloaded)`;this.emit(null,e)}}onProgressEvent(e){let t=Number(e?.loaded),n=Number(e?.total);if(this.logEvents&&console.log(`[PromptApiProgressAggregator] onProgressEvent:`,{loaded:t,total:n,type:e?.type}),!(!Number.isFinite(t)||t<0)&&!(this.hasStreamEvents&&t<=1)&&!(this.suppressInitialZero&&!this._hasEmitted&&t===0&&(!Number.isFinite(n)||n<=1))){if(Number.isFinite(n)&&n>1){let e=this.expectedTotalBytes>0?this.expectedTotalBytes:0,r=Math.max(n,e,this.maxEffectiveTotal);this.maxEffectiveTotal=r,this.maxLoadedBytes=Math.max(this.maxLoadedBytes,t);let i=Math.min(.99,this.maxLoadedBytes/r);this.maxProgressFraction=Math.max(this.maxProgressFraction,i);let a=(this.maxLoadedBytes/(1024*1024)).toFixed(1),o=(r/(1024*1024)).toFixed(1),s=Math.round(this.maxProgressFraction*100);this.emit(this.maxProgressFraction,`Downloading Prompt API model... (${a} / ${o} MB · ${s}%)`);return}if(t>=0&&t<=1){let e=Math.max(0,Math.min(1,t)),n=e>=1?.99:e;this.maxProgressFraction=Math.max(this.maxProgressFraction,n);let r=Math.max(this.maxEffectiveTotal,this.expectedTotalBytes);if(r>0){let e=(Math.round(this.maxProgressFraction*r)/(1024*1024)).toFixed(1),t=(r/(1024*1024)).toFixed(1),n=Math.round(this.maxProgressFraction*100);this.emit(this.maxProgressFraction,`Downloading Prompt API model... (${e} / ${t} MB · ${n}%)`)}else{let e=Math.round(this.maxProgressFraction*100);this.emit(this.maxProgressFraction,`Downloading Prompt API model... ${e}%`)}return}if(t>1){this.maxLoadedBytes=Math.max(this.maxLoadedBytes,t);let e=Math.max(this.maxEffectiveTotal,this.expectedTotalBytes);if(e>0){let t=Math.max(this.maxLoadedBytes,e),n=Math.min(.99,this.maxLoadedBytes/t);this.maxProgressFraction=Math.max(this.maxProgressFraction,n);let r=(this.maxLoadedBytes/(1024*1024)).toFixed(1),i=(t/(1024*1024)).toFixed(1),a=Math.round(this.maxProgressFraction*100);this.emit(this.maxProgressFraction,`Downloading Prompt API model... (${r} / ${i} MB · ${a}%)`)}else{let e=(this.maxLoadedBytes/(1024*1024)).toFixed(1);this.emit(null,`Downloading Prompt API model... (${e} MB downloaded)`)}return}}}onDone(){this.maxProgressFraction=1,this.emitter(`done`,1,`Prompt API model ready.`)}onError(e){let t=e instanceof Error?e.message:String(e);this.emitter(`error`,null,t)}emit(e,t){this._hasEmitted=!0,!(this.lastReportedMessage===t&&this.lastReportedFraction===e)&&(this.lastReportedMessage=t,this.lastReportedFraction=e,this.emitter(`running`,e,t))}},xg=Object.defineProperty,Sg=(e,t,n)=>t in e?xg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Cg=(e,t,n)=>(Sg(e,typeof t==`symbol`?t:t+``,n),n),H=Object.freeze({Text:`Text`,NumericLiteral:`NumericLiteral`,StringLiteral:`StringLiteral`,Identifier:`Identifier`,Equals:`Equals`,OpenParen:`OpenParen`,CloseParen:`CloseParen`,OpenStatement:`OpenStatement`,CloseStatement:`CloseStatement`,OpenExpression:`OpenExpression`,CloseExpression:`CloseExpression`,OpenSquareBracket:`OpenSquareBracket`,CloseSquareBracket:`CloseSquareBracket`,OpenCurlyBracket:`OpenCurlyBracket`,CloseCurlyBracket:`CloseCurlyBracket`,Comma:`Comma`,Dot:`Dot`,Colon:`Colon`,Pipe:`Pipe`,CallOperator:`CallOperator`,AdditiveBinaryOperator:`AdditiveBinaryOperator`,MultiplicativeBinaryOperator:`MultiplicativeBinaryOperator`,ExponentiationBinaryOperator:`ExponentiationBinaryOperator`,ComparisonBinaryOperator:`ComparisonBinaryOperator`,UnaryOperator:`UnaryOperator`,Comment:`Comment`}),wg=class{constructor(e,t){this.value=e,this.type=t}};function Tg(e){return/\w/.test(e)}function Eg(e){return/[0-9]/.test(e)}function Dg(e){return/\s/.test(e)}var Og=[[`{%`,H.OpenStatement],[`%}`,H.CloseStatement],[`{{`,H.OpenExpression],[`}}`,H.CloseExpression],[`(`,H.OpenParen],[`)`,H.CloseParen],[`{`,H.OpenCurlyBracket],[`}`,H.CloseCurlyBracket],[`[`,H.OpenSquareBracket],[`]`,H.CloseSquareBracket],[`,`,H.Comma],[`.`,H.Dot],[`:`,H.Colon],[`|`,H.Pipe],[`<=`,H.ComparisonBinaryOperator],[`>=`,H.ComparisonBinaryOperator],[`==`,H.ComparisonBinaryOperator],[`!=`,H.ComparisonBinaryOperator],[`<`,H.ComparisonBinaryOperator],[`>`,H.ComparisonBinaryOperator],[`+`,H.AdditiveBinaryOperator],[`-`,H.AdditiveBinaryOperator],[`~`,H.AdditiveBinaryOperator],[`**`,H.ExponentiationBinaryOperator],[`*`,H.MultiplicativeBinaryOperator],[`//`,H.MultiplicativeBinaryOperator],[`/`,H.MultiplicativeBinaryOperator],[`%`,H.MultiplicativeBinaryOperator],[`=`,H.Equals]],kg=new Map([[`n`,`
963
963
  `],[`t`,` `],[`r`,`\r`],[`b`,`\b`],[`f`,`\f`],[`v`,`\v`],[`'`,`'`],[`"`,`"`],[`\\`,`\\`]]);function Ag(e,t={}){return e.endsWith(`
964
964
  `)&&(e=e.slice(0,-1)),t.lstrip_blocks&&(e=e.replace(/^[ \t]*({[#%-])/gm,`$1`)),t.trim_blocks&&(e=e.replace(/([#%-]})\n/g,`$1`)),e.replace(/(\s*){%(-?)\s*(?:end)?generation\s*(-?)%}(\s*)/gs,(e,t,n,r,i)=>(n?``:t)+(r?``:i))}function jg(e,t={}){let n=[],r=Ag(e,t),i=0,a=0,o=e=>{let t=``;for(;e(r[i]);){if(r[i]===`\\`){if(++i,i>=r.length)throw SyntaxError(`Unexpected end of input`);let e=r[i++],n=kg.get(e);if(n===void 0)throw SyntaxError(`Unexpected escaped character: ${e}`);t+=n;continue}if(t+=r[i++],i>=r.length)throw SyntaxError(`Unexpected end of input`)}return t},s=()=>{let e=n.at(-1);e&&e.type===H.Text&&(e.value=e.value.trimEnd(),e.value===``&&n.pop())},c=()=>{for(;i<r.length&&Dg(r[i]);)++i};main:for(;i<r.length;){let e=n.at(-1)?.type;if(e===void 0||e===H.CloseStatement||e===H.CloseExpression||e===H.Comment){let e=``;for(;i<r.length&&!(r[i]===`{`&&(r[i+1]===`%`||r[i+1]===`{`||r[i+1]===`#`));)e+=r[i++];if(e.length>0){n.push(new wg(e,H.Text));continue}}if(r[i]===`{`&&r[i+1]===`#`){i+=2;let e=r[i]===`-`;e&&++i;let t=``;for(;r[i]!==`#`||r[i+1]!==`}`;){if(i+2>=r.length)throw SyntaxError(`Missing end of comment tag`);t+=r[i++]}let a=t.endsWith(`-`);a&&(t=t.slice(0,-1)),e&&s(),n.push(new wg(t,H.Comment)),i+=2,a&&c();continue}if(r.slice(i,i+3)===`{%-`){s(),n.push(new wg(`{%`,H.OpenStatement)),i+=3;continue}if(r.slice(i,i+3)===`{{-`){s(),n.push(new wg(`{{`,H.OpenExpression)),a=0,i+=3;continue}if(o(Dg),r.slice(i,i+3)===`-%}`){n.push(new wg(`%}`,H.CloseStatement)),i+=3,c();continue}if(r.slice(i,i+3)===`-}}`){n.push(new wg(`}}`,H.CloseExpression)),i+=3,c();continue}let t=r[i];if(t===`-`||t===`+`){let e=n.at(-1)?.type;if(e===H.Text||e===void 0)throw SyntaxError(`Unexpected character: ${t}`);switch(e){case H.Identifier:case H.NumericLiteral:case H.StringLiteral:case H.CloseParen:case H.CloseSquareBracket:break;default:{++i;let e=o(Eg);if(e.length>0&&r[i]===`.`&&Eg(r[i+1])){++i;let t=o(Eg);e=`${e}.${t}`}n.push(new wg(`${t}${e}`,e.length>0?H.NumericLiteral:H.UnaryOperator));continue}}}for(let[e,t]of Og)if(!(e===`}}`&&a>0)&&r.slice(i,i+e.length)===e){n.push(new wg(e,t)),t===H.OpenExpression?a=0:t===H.OpenCurlyBracket?++a:t===H.CloseCurlyBracket&&--a,i+=e.length;continue main}if(t===`'`||t===`"`){++i;let e=o(e=>e!==t);n.push(new wg(e,H.StringLiteral)),++i;continue}if(Eg(t)){let e=o(Eg);if(n.at(-1)?.type!==H.Dot&&r[i]===`.`&&Eg(r[i+1])){++i;let t=o(Eg);e=`${e}.${t}`}n.push(new wg(e,H.NumericLiteral));continue}if(Tg(t)){let e=o(Tg);n.push(new wg(e,H.Identifier));continue}throw SyntaxError(`Unexpected character: ${t}`)}return n}var Mg=class{type=`Statement`},Ng=class extends Mg{constructor(e){super(),this.body=e}type=`Program`},Pg=class extends Mg{constructor(e,t,n){super(),this.test=e,this.body=t,this.alternate=n}type=`If`},Fg=class extends Mg{constructor(e,t,n,r){super(),this.loopvar=e,this.iterable=t,this.body=n,this.defaultBlock=r}type=`For`},Ig=class extends Mg{type=`Break`},Lg=class extends Mg{type=`Continue`},Rg=class extends Mg{constructor(e,t,n){super(),this.assignee=e,this.value=t,this.body=n}type=`Set`},zg=class extends Mg{constructor(e,t,n){super(),this.name=e,this.args=t,this.body=n}type=`Macro`},Bg=class extends Mg{constructor(e){super(),this.value=e}type=`Comment`},Vg=class extends Mg{type=`Expression`},Hg=class extends Vg{constructor(e,t,n){super(),this.object=e,this.property=t,this.computed=n}type=`MemberExpression`},Ug=class extends Vg{constructor(e,t){super(),this.callee=e,this.args=t}type=`CallExpression`},Wg=class extends Vg{constructor(e){super(),this.value=e}type=`Identifier`},Gg=class extends Vg{constructor(e){super(),this.value=e}type=`Literal`},Kg=class extends Gg{type=`IntegerLiteral`},qg=class extends Gg{type=`FloatLiteral`},Jg=class extends Gg{type=`StringLiteral`},Yg=class extends Gg{type=`ArrayLiteral`},Xg=class extends Gg{type=`TupleLiteral`},Zg=class extends Gg{type=`ObjectLiteral`},Qg=class extends Vg{constructor(e,t,n){super(),this.operator=e,this.left=t,this.right=n}type=`BinaryExpression`},$g=class extends Vg{constructor(e,t){super(),this.operand=e,this.filter=t}type=`FilterExpression`},e_=class extends Mg{constructor(e,t){super(),this.filter=e,this.body=t}type=`FilterStatement`},t_=class extends Vg{constructor(e,t){super(),this.lhs=e,this.test=t}type=`SelectExpression`},n_=class extends Vg{constructor(e,t,n){super(),this.operand=e,this.negate=t,this.test=n}type=`TestExpression`},r_=class extends Vg{constructor(e,t){super(),this.operator=e,this.argument=t}type=`UnaryExpression`},i_=class extends Vg{constructor(e=void 0,t=void 0,n=void 0){super(),this.start=e,this.stop=t,this.step=n}type=`SliceExpression`},a_=class extends Vg{constructor(e,t){super(),this.key=e,this.value=t}type=`KeywordArgumentExpression`},o_=class extends Vg{constructor(e){super(),this.argument=e}type=`SpreadExpression`},s_=class extends Vg{constructor(e){super(),this.argument=e}type=`KeywordSpreadExpression`},c_=class extends Mg{constructor(e,t,n){super(),this.call=e,this.callerArgs=t,this.body=n}type=`CallStatement`},l_=class extends Vg{constructor(e,t,n){super(),this.condition=e,this.trueExpr=t,this.falseExpr=n}type=`Ternary`};function u_(e){let t=new Ng([]),n=0;function r(t,r){let i=e[n++];if(!i||i.type!==t)throw Error(`Parser Error: ${r}. ${i.type} !== ${t}.`);return i}function i(e){if(!c(e))throw SyntaxError(`Expected ${e}`);++n}function a(){switch(e[n].type){case H.Comment:return new Bg(e[n++].value);case H.Text:return l();case H.OpenStatement:return u();case H.OpenExpression:return d();default:throw SyntaxError(`Unexpected token type: ${e[n].type}`)}}function o(...t){return n+t.length<=e.length&&t.every((t,r)=>t===e[n+r].type)}function s(...t){return e[n]?.type===H.OpenStatement&&e[n+1]?.type===H.Identifier&&t.includes(e[n+1]?.value)}function c(...t){return n+t.length<=e.length&&t.every((t,r)=>e[n+r].type===`Identifier`&&t===e[n+r].value)}function l(){return new Jg(r(H.Text,`Expected text token`).value)}function u(){if(r(H.OpenStatement,`Expected opening statement token`),e[n].type!==H.Identifier)throw SyntaxError(`Unknown statement, got ${e[n].type}`);let t=e[n].value,c;switch(t){case`set`:++n,c=f();break;case`if`:++n,c=p(),r(H.OpenStatement,`Expected {% token`),i(`endif`),r(H.CloseStatement,`Expected %} token`);break;case`macro`:++n,c=m(),r(H.OpenStatement,`Expected {% token`),i(`endmacro`),r(H.CloseStatement,`Expected %} token`);break;case`for`:++n,c=g(),r(H.OpenStatement,`Expected {% token`),i(`endfor`),r(H.CloseStatement,`Expected %} token`);break;case`call`:{++n;let e=null;o(H.OpenParen)&&(e=re(`parameters`));let t=de();if(t.type!==`Identifier`)throw SyntaxError(`Expected identifier following call statement`);let l=re(`call`);r(H.CloseStatement,`Expected closing statement token`);let u=[];for(;!s(`endcall`);)u.push(a());r(H.OpenStatement,`Expected '{%'`),i(`endcall`),r(H.CloseStatement,`Expected closing statement token`),c=new c_(new Ug(t,l),e,u);break}case`break`:++n,r(H.CloseStatement,`Expected closing statement token`),c=new Ig;break;case`continue`:++n,r(H.CloseStatement,`Expected closing statement token`),c=new Lg;break;case`filter`:{++n;let e=de();e instanceof Wg&&o(H.OpenParen)&&(e=S(e)),r(H.CloseStatement,`Expected closing statement token`);let t=[];for(;!s(`endfilter`);)t.push(a());r(H.OpenStatement,`Expected '{%'`),i(`endfilter`),r(H.CloseStatement,`Expected '%}'`),c=new e_(e,t);break}default:throw SyntaxError(`Unknown statement type: ${t}`)}return c}function d(){r(H.OpenExpression,`Expected opening expression token`);let e=_();return r(H.CloseExpression,`Expected closing expression token`),e}function f(){let e=h(),t=null,c=[];if(o(H.Equals))++n,t=h();else{for(r(H.CloseStatement,`Expected %} token`);!s(`endset`);)c.push(a());r(H.OpenStatement,`Expected {% token`),i(`endset`)}return r(H.CloseStatement,`Expected closing statement token`),new Rg(e,t,c)}function p(){let e=_();r(H.CloseStatement,`Expected closing statement token`);let t=[],i=[];for(;!s(`elif`,`else`,`endif`);)t.push(a());if(s(`elif`)){++n,++n;let e=p();i.push(e)}else if(s(`else`))for(++n,++n,r(H.CloseStatement,`Expected closing statement token`);!s(`endif`);)i.push(a());return new Pg(e,t,i)}function m(){let e=de();if(e.type!==`Identifier`)throw SyntaxError(`Expected identifier following macro statement`);let t=re(`parameters`);r(H.CloseStatement,`Expected closing statement token`);let n=[];for(;!s(`endmacro`);)n.push(a());return new zg(e,t,n)}function h(e=!1){let t=e?de:_,r=[t()],i=o(H.Comma);for(;i&&(++n,r.push(t()),o(H.Comma)););return i?new Xg(r):r[0]}function g(){let e=h(!0);if(!(e instanceof Wg||e instanceof Xg))throw SyntaxError(`Expected identifier/tuple for the loop variable, got ${e.type} instead`);if(!c(`in`))throw SyntaxError("Expected `in` keyword following loop variable");++n;let t=_();r(H.CloseStatement,`Expected closing statement token`);let i=[];for(;!s(`endfor`,`else`);)i.push(a());let o=[];if(s(`else`))for(++n,++n,r(H.CloseStatement,`Expected closing statement token`);!s(`endfor`);)o.push(a());return new Fg(e,t,i,o)}function _(){return v()}function v(){let e=y();if(c(`if`)){++n;let t=y();return c(`else`)?(++n,new l_(t,e,v())):new t_(e,t)}return e}function y(){let t=ee();for(;c(`or`);){let r=e[n];++n;let i=ee();t=new Qg(r,t,i)}return t}function ee(){let t=b();for(;c(`and`);){let r=e[n];++n;let i=b();t=new Qg(r,t,i)}return t}function b(){let t;for(;c(`not`);){let r=e[n];++n,t=new r_(r,b())}return t??te()}function te(){let t=x();for(;;){let r;if(c(`not`,`in`))r=new wg(`not in`,H.Identifier),n+=2;else if(c(`in`))r=e[n++];else if(o(H.ComparisonBinaryOperator))r=e[n++];else break;let i=x();t=new Qg(r,t,i)}return t}function x(){let t=se();for(;o(H.AdditiveBinaryOperator);){let r=e[n];++n;let i=se();t=new Qg(r,t,i)}return t}function ne(){let e=oe(de());return o(H.OpenParen)?S(e):e}function S(e){let t=new Ug(e,re(`call`));return t=oe(t),o(H.OpenParen)&&(t=S(t)),t}function re(e){r(H.OpenParen,`Expected opening parenthesis for arguments list`);let t=ie(e);return r(H.CloseParen,`Expected closing parenthesis for arguments list`),t}function ie(t){let r=[],i=new Set,a=!1,s=!1;for(;!o(H.CloseParen);){let c=o(H.ExponentiationBinaryOperator),l=o(H.MultiplicativeBinaryOperator)&&e[n].value===`*`;if(t===`parameters`&&(c||l))throw SyntaxError(`Argument unpacking is not allowed in parameter declarations`);if(c){if(++n,r.push(new s_(_())),o(H.Comma)&&++n,!o(H.CloseParen))throw SyntaxError("Expected closing parenthesis: `**` must be applied to the final argument");break}let u;if(l){if(s)throw SyntaxError("Only one `*` argument unpacking is allowed");s=!0,++n,u=new o_(_())}else{if(u=_(),o(H.Equals)){if(++n,!(u instanceof Wg))throw SyntaxError(t===`parameters`?`Expected identifier for parameter declaration`:`Expected identifier for keyword argument`);let e=_();u=new a_(u,e)}if(t===`parameters`){if(!(u instanceof Wg||u instanceof a_))throw SyntaxError(`Expected identifier for parameter declaration`);let e=u instanceof Wg?u.value:u.key.value;if(i.has(e))throw SyntaxError(`Duplicate parameter name: ${e}`);i.add(e)}if(u instanceof a_)a=!0;else if(a)throw SyntaxError(t===`call`?`Positional arguments must come before keyword arguments`:`Non-default argument follows default argument`);else if(s)throw SyntaxError("Positional arguments must not follow `*` argument unpacking")}r.push(u),o(H.Comma)&&++n}return r}function ae(){let e=[],t=!1;for(;!o(H.CloseSquareBracket);)o(H.Colon)?(e.push(void 0),++n,t=!0):(e.push(_()),o(H.Colon)&&(++n,t=!0));if(e.length===0)throw SyntaxError(`Expected at least one argument for member/slice expression`);if(t){if(e.length>3)throw SyntaxError(`Expected 0-3 arguments for slice expression`);return new i_(...e)}return e[0]}function oe(t){for(;o(H.Dot)||o(H.OpenSquareBracket);){let i=e[n];++n;let a,o=i.type===H.OpenSquareBracket;if(o)a=ae(),r(H.CloseSquareBracket,`Expected closing square bracket`);else if(a=de(),a.type!==`Identifier`&&a.type!==`IntegerLiteral`)throw SyntaxError(`Expected identifier or integer following dot operator`);t=new Hg(t,a,o)}return t}function se(){let t=ce();for(;o(H.MultiplicativeBinaryOperator);){let r=e[n++],i=ce();t=new Qg(r,t,i)}return t}function ce(){let t=le();for(;o(H.ExponentiationBinaryOperator);){let r=e[n++],i=le();t=new Qg(r,t,i)}return t}function le(){let e=ue();for(;c(`is`);){++n;let t=c(`not`);t&&++n;let r=de();if(!(r instanceof Wg))throw SyntaxError(`Expected identifier for the test`);e=new n_(e,t,r)}return e}function ue(){let e=C();for(;o(H.Pipe);){++n;let t=de();if(!(t instanceof Wg))throw SyntaxError(`Expected identifier for the filter`);o(H.OpenParen)&&(t=S(t)),e=new $g(e,t)}return e}function C(){let t=e[n];if(t&&(t.type===H.UnaryOperator||t.type===H.AdditiveBinaryOperator)&&(t.value===`-`||t.value===`+`)){let t=e[n++];return new r_(t,C())}return ne()}function de(){let t=e[n++];switch(t.type){case H.NumericLiteral:{let e=t.value;return e.includes(`.`)?new qg(Number(e)):new Kg(Number(e))}case H.StringLiteral:{let r=t.value;for(;o(H.StringLiteral);)r+=e[n++].value;return new Jg(r)}case H.Identifier:return new Wg(t.value);case H.OpenParen:{let e=h();return r(H.CloseParen,"Expected closing parenthesis, got ${tokens[current].type} instead."),e}case H.OpenSquareBracket:{let e=[];for(;!o(H.CloseSquareBracket);)e.push(_()),o(H.Comma)&&++n;return++n,new Yg(e)}case H.OpenCurlyBracket:{let e=new Map;for(;!o(H.CloseCurlyBracket);){let t=_();r(H.Colon,`Expected colon between key and value in object literal`);let i=_();e.set(t,i),o(H.Comma)&&++n}return++n,new Zg(e)}default:throw SyntaxError(`Unexpected token: ${t.type}`)}}for(;n<e.length;)t.body.push(a());return t}function d_(e,t,n=1){if(t===void 0&&(t=e,e=0),n===0)throw Error(`range() step must not be zero`);let r=[];if(n>0)for(let i=e;i<t;i+=n)r.push(i);else for(let i=e;i>t;i+=n)r.push(i);return r}function f_(e,t,n,r=1){let i=Math.sign(r);i>=0?(t=(t??=0)<0?Math.max(e.length+t,0):Math.min(t,e.length),n=(n??=e.length)<0?Math.max(e.length+n,0):Math.min(n,e.length)):(t=(t??=e.length-1)<0?Math.max(e.length+t,-1):Math.min(t,e.length-1),n=(n??=-1)<-1?Math.max(e.length+n,-1):Math.min(n,e.length-1));let a=[];for(let o=t;i*o<i*n;o+=r)a.push(e[o]);return a}function p_(e){return e.replace(/\b\w/g,e=>e.toUpperCase())}function m_(e){return h_(new Date,e)}function h_(e,t){let n=new Intl.DateTimeFormat(void 0,{month:`long`}),r=new Intl.DateTimeFormat(void 0,{month:`short`}),i=e=>e<10?`0`+e:e.toString();return t.replace(/%[YmdbBHM%]/g,t=>{switch(t){case`%Y`:return e.getFullYear().toString();case`%m`:return i(e.getMonth()+1);case`%d`:return i(e.getDate());case`%b`:return r.format(e);case`%B`:return n.format(e);case`%H`:return i(e.getHours());case`%M`:return i(e.getMinutes());case`%%`:return`%`;default:return t}})}function g_(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function __(e,t,n,r){if(r===0)return e;let i=r==null||r<0?1/0:r,a=t.length===0?RegExp(`(?=)`,`gu`):new RegExp(g_(t),`gu`);return e.replaceAll(a,e=>i>0?(--i,n):e)}var v_=class extends Error{},y_=class extends Error{},b_=new Map,x_=class{type=`RuntimeValue`;value;get builtins(){return b_}constructor(e=void 0){this.value=e}__bool__(){return new K(!!this.value)}toString(){return String(this.value)}},U=class extends x_{type=`IntegerValue`},W=class extends x_{type=`FloatValue`;toString(){return Object.is(this.value,-0)?`-0.0`:this.value%1==0?this.value.toFixed(1):this.value.toString()}},G=class extends x_{type=`StringValue`;_builtins;get builtins(){return this._builtins??=new Map([[`upper`,new J(()=>new G(this.value.toUpperCase()))],[`lower`,new J(()=>new G(this.value.toLowerCase()))],[`strip`,new J(()=>new G(this.value.trim()))],[`title`,new J(()=>new G(p_(this.value)))],[`capitalize`,new J(()=>new G(this.value.charAt(0).toUpperCase()+this.value.slice(1)))],[`length`,new U(this.value.length)],[`rstrip`,new J(()=>new G(this.value.trimEnd()))],[`lstrip`,new J(()=>new G(this.value.trimStart()))],[`startswith`,new J(e=>{if(e.length===0)throw Error(`startswith() requires at least one argument`);let t=e[0];if(t instanceof G)return new K(this.value.startsWith(t.value));if(t instanceof q){for(let e of t.value){if(!(e instanceof G))throw Error(`startswith() tuple elements must be strings`);if(this.value.startsWith(e.value))return new K(!0)}return new K(!1)}throw Error(`startswith() argument must be a string or tuple of strings`)})],[`endswith`,new J(e=>{if(e.length===0)throw Error(`endswith() requires at least one argument`);let t=e[0];if(t instanceof G)return new K(this.value.endsWith(t.value));if(t instanceof q){for(let e of t.value){if(!(e instanceof G))throw Error(`endswith() tuple elements must be strings`);if(this.value.endsWith(e.value))return new K(!0)}return new K(!1)}throw Error(`endswith() argument must be a string or tuple of strings`)})],[`split`,new J(e=>{let t=e[0]??new Y;if(!(t instanceof G||t instanceof Y))throw Error(`sep argument must be a string or null`);let n=e[1]??new U(-1);if(!(n instanceof U))throw Error(`maxsplit argument must be a number`);let r=[];if(t instanceof Y){let e=this.value.trimStart();for(let{0:t,index:i}of e.matchAll(/\S+/g)){if(n.value!==-1&&r.length>=n.value&&i!==void 0){r.push(t+e.slice(i+t.length));break}r.push(t)}}else{if(t.value===``)throw Error(`empty separator`);r=this.value.split(t.value),n.value!==-1&&r.length>n.value&&r.push(r.splice(n.value).join(t.value))}return new q(r.map(e=>new G(e)))})],[`replace`,new J(e=>{if(e.length<2)throw Error(`replace() requires at least two arguments`);let t=e[0],n=e[1];if(!(t instanceof G&&n instanceof G))throw Error(`replace() arguments must be strings`);let r;if(r=e.length>2?e[2].type===`KeywordArgumentsValue`?e[2].value.get(`count`)??new Y:e[2]:new Y,!(r instanceof U||r instanceof Y))throw Error(`replace() count argument must be a number or null`);return new G(__(this.value,t.value,n.value,r.value))})]])}},K=class extends x_{type=`BooleanValue`},S_=/[\x7f-\uffff]/g;function C_(e){return e.replace(S_,e=>`\\u`+e.charCodeAt(0).toString(16).padStart(4,`0`))}function w_(e,t={},n=0,r=!0){let{indent:i=null,ensureAscii:a=!1,separators:o=null,sortKeys:s=!1}=t,c,l;switch(o?[c,l]=o:i?(c=`,`,l=`: `):(c=`, `,l=`: `),e.type){case`NullValue`:return`null`;case`UndefinedValue`:return r?`null`:`undefined`;case`IntegerValue`:case`FloatValue`:case`BooleanValue`:return JSON.stringify(e.value);case`StringValue`:{let t=JSON.stringify(e.value);return a&&(t=C_(t)),t}case`ArrayValue`:case`NamespaceValue`:case`ObjectValue`:{let o=i?` `.repeat(i):``,u=`
965
965
  `+o.repeat(n),d=u+o;if(e.type===`ArrayValue`){let a=e.value.map(e=>w_(e,t,n+1,r));return i?`[${d}${a.join(`${c}${d}`)}${u}]`:`[${a.join(c)}]`}else{let o=Array.from(e.value.entries());s&&(o=o.sort(([e],[t])=>e.localeCompare(t)));let f=o.map(([e,o])=>{let s=JSON.stringify(e);a&&(s=C_(s));let c=`${s}${l}${w_(o,t,n+1,r)}`;return i?`${d}${c}`:c});return i?`{${f.join(c)}${u}}`:`{${f.join(c)}}`}}default:throw Error(`Cannot convert to JSON: ${e.type}`)}}var T_=class extends x_{type=`ObjectValue`;_builtins;__bool__(){return new K(this.value.size>0)}get builtins(){return this._builtins??=new Map([[`get`,new J(([e,t])=>{if(!(e instanceof G))throw Error(`Object key must be a string: got ${e.type}`);return this.value.get(e.value)??t??new Y})],[`items`,new J(()=>this.items())],[`keys`,new J(()=>this.keys())],[`values`,new J(()=>this.values())],[`dictsort`,new J(e=>{let t=new Map,n=e.filter(e=>e instanceof E_?(t=e.value,!1):!0),r=n.at(0)??t.get(`case_sensitive`)??new K(!1);if(!(r instanceof K))throw Error(`case_sensitive must be a boolean`);let i=n.at(1)??t.get(`by`)??new G(`key`);if(!(i instanceof G))throw Error(`by must be a string`);if(![`key`,`value`].includes(i.value))throw Error(`by must be either 'key' or 'value'`);let a=n.at(2)??t.get(`reverse`)??new K(!1);if(!(a instanceof K))throw Error(`reverse must be a boolean`);return new q(Array.from(this.value.entries()).map(([e,t])=>new q([new G(e),t])).sort((e,t)=>{let n=i.value===`key`?0:1,o=e.value[n],s=t.value[n],c=L_(o,s,r.value);return a.value?-c:c}))})]])}items(){return new q(Array.from(this.value.entries()).map(([e,t])=>new q([new G(e),t])))}keys(){return new q(Array.from(this.value.keys()).map(e=>new G(e)))}values(){return new q(Array.from(this.value.values()))}toString(){return w_(this,{},0,!1)}},E_=class extends T_{type=`KeywordArgumentsValue`},D_=class extends x_{type=`NamespaceValue`;toString(){return w_(this,{},0,!1)}},q=class extends x_{type=`ArrayValue`;_builtins;get builtins(){return this._builtins??=new Map([[`length`,new U(this.value.length)]])}__bool__(){return new K(this.value.length>0)}toString(){return w_(this,{},0,!1)}},O_=class extends q{type=`TupleValue`},J=class extends x_{type=`FunctionValue`},Y=class extends x_{type=`NullValue`},X=class extends x_{type=`UndefinedValue`};function k_(e){let t;if(e instanceof q?t=e.value:e instanceof G&&(t=Array.from(e.value,e=>new G(e))),!t||t.length!==2)throw Error(`namespace expected an object or an iterable of [key, value] pairs`);let[n,r]=t;if(!(n instanceof G))throw Error(`namespace keys must be strings`);return[n,r]}var A_=class{constructor(e){this.parent=e}variables=new Map([[`namespace`,new J(e=>{let t=e.slice(),n;if(t.at(-1)instanceof E_&&(n=t.pop()),t.length>1)throw Error(`namespace expected at most 1 argument, got ${t.length}`);let r=new Map;if(t.length===1){let e=t[0];if(e instanceof T_)for(let[t,n]of e.value)r.set(t,n);else if(e instanceof q)for(let t of e.value){let[e,n]=k_(t);r.set(e.value,n)}else throw Error(`'${e.type}' object is not iterable`)}if(n)for(let[e,t]of n.value)r.set(e,t);return new D_(r)})]]);tests=A_.TESTS;set(e,t){return this.declareVariable(e,H_(t))}declareVariable(e,t){if(this.variables.has(e))throw SyntaxError(`Variable already declared: ${e}`);return this.variables.set(e,t),t}setVariable(e,t){return this.variables.set(e,t),t}resolve(e){if(this.variables.has(e))return this;if(this.parent)return this.parent.resolve(e);throw Error(`Unknown variable: ${e}`)}lookupVariable(e){try{return this.resolve(e).variables.get(e)??new X}catch{return new X}}},j_=A_;Cg(j_,`TESTS`,new Map([[`boolean`,e=>e.type===`BooleanValue`],[`callable`,e=>e instanceof J],[`odd`,e=>{if(!(e instanceof U))throw Error(`cannot odd on ${e.type}`);return e.value%2!=0}],[`even`,e=>{if(!(e instanceof U))throw Error(`cannot even on ${e.type}`);return e.value%2==0}],[`false`,e=>e.type===`BooleanValue`&&!e.value],[`true`,e=>e.type===`BooleanValue`&&e.value],[`none`,e=>e.type===`NullValue`],[`string`,e=>e.type===`StringValue`],[`number`,e=>e instanceof U||e instanceof W],[`integer`,e=>e instanceof U],[`iterable`,e=>e.type===`ArrayValue`||e.type===`StringValue`],[`mapping`,e=>e instanceof T_],[`sequence`,e=>e instanceof q||e instanceof T_||e instanceof G],[`lower`,e=>{let t=e.value;return e.type===`StringValue`&&t===t.toLowerCase()}],[`upper`,e=>{let t=e.value;return e.type===`StringValue`&&t===t.toUpperCase()}],[`none`,e=>e.type===`NullValue`],[`defined`,e=>e.type!==`UndefinedValue`],[`undefined`,e=>e.type===`UndefinedValue`],[`equalto`,(e,t)=>e.value===t.value],[`eq`,(e,t)=>e.value===t.value]]));function M_(e){e.set(`false`,!1),e.set(`true`,!0),e.set(`none`,null),e.set(`raise_exception`,e=>{throw Error(e)}),e.set(`range`,d_),e.set(`strftime_now`,m_),e.set(`True`,!0),e.set(`False`,!1),e.set(`None`,null)}function N_(e){return e instanceof T_||e instanceof D_}function P_(e){return e instanceof U||e instanceof W||e instanceof K}function F_(e){return e instanceof K?Number(e.value):e.value}function I_(e,t){let n=t.split(`.`),r=e;for(let e of n)if(N_(r))r=r.value.get(e)??new X;else if(r instanceof q){let t=parseInt(e,10);if(!isNaN(t)&&t>=0&&t<r.value.length)r=r.value[t];else return new X}else return new X;return r}function L_(e,t,n=!1){if(e instanceof Y&&t instanceof Y)return 0;if(e instanceof Y||t instanceof Y)throw Error(`Cannot compare ${e.type} with ${t.type}`);if(e instanceof X&&t instanceof X)return 0;if(e instanceof X||t instanceof X)throw Error(`Cannot compare ${e.type} with ${t.type}`);if(P_(e)&&P_(t)){let n=F_(e),r=F_(t);return n<r?-1:+(n>r)}if(e.type!==t.type)throw Error(`Cannot compare different types: ${e.type} and ${t.type}`);switch(e.type){case`StringValue`:{let r=e.value,i=t.value;return n||(r=r.toLowerCase(),i=i.toLowerCase()),r<i?-1:+(r>i)}default:throw Error(`Cannot compare type: ${e.type}`)}}function R_(e){if(e.type===`Identifier`)return{name:e.value};let t=e;return{name:t.key.value,defaultValue:t.value}}function z_(e){return e===`kwargs`||e===`varargs`}function B_(e,t){let n=new Set,r=new Set,i=e=>{z_(e)&&n.add(e)},a=e=>{if(e.type===`Identifier`)i(e.value);else if(e.type===`TupleLiteral`)for(let t of e.value)a(t)},o=e=>{i(R_(e).name)},s=e=>{for(let t of e){let e=R_(t);e.defaultValue&&l(e.defaultValue)}},c=e=>{e.type===`CallExpression`&&l(e.args)},l=e=>{if(Array.isArray(e)){for(let t of e)l(t);return}if(e instanceof Map){for(let[t,n]of e)l(t),l(n);return}if(e instanceof Mg)switch(e.type){case`For`:{let t=e;if(a(t.loopvar),t.iterable.type===`SelectExpression`){let e=t.iterable;l(e.lhs),l(t.body),l(t.defaultBlock),l(e.test);return}l(t.iterable),l(t.body),l(t.defaultBlock);return}case`Set`:{let t=e;a(t.assignee),l(t.value),l(t.body);return}case`Macro`:{let t=e;for(let e of t.args)o(e);s(t.args),l(t.body);return}case`CallStatement`:{let t=e;l(t.call);for(let e of t.callerArgs??[])o(e);s(t.callerArgs??[]),l(t.body);return}case`FilterStatement`:{let t=e;l(t.body),c(t.filter);return}case`Identifier`:{let t=e.value;z_(t)&&!n.has(t)&&r.add(t);return}case`MemberExpression`:{let t=e;l(t.object),t.computed&&l(t.property);return}case`FilterExpression`:{let t=e;l(t.operand),c(t.filter);return}case`TestExpression`:l(e.operand);return;case`SelectExpression`:{let t=e;l(t.test),l(t.lhs);return}case`KeywordArgumentExpression`:l(e.value);return;default:for(let t of Object.values(e))l(t)}};for(let t of e)o(t);return l(t),r}var V_=class{global;constructor(e){this.global=e??new j_}run(e){return this.evaluate(e,this.global)}evaluateBinaryExpression(e,t){let n=this.evaluate(e.left,t);switch(e.operator.value){case`and`:return n.__bool__().value?this.evaluate(e.right,t):n;case`or`:return n.__bool__().value?n:this.evaluate(e.right,t)}let r=this.evaluate(e.right,t);switch(e.operator.value){case`==`:return new K(n.value==r.value);case`!=`:return new K(n.value!=r.value)}if(n instanceof X||r instanceof X){if(r instanceof X&&[`in`,`not in`].includes(e.operator.value))return new K(e.operator.value===`not in`);throw Error(`Cannot perform operation ${e.operator.value} on undefined values`)}else if(n instanceof Y||r instanceof Y)throw Error(`Cannot perform operation on null values`);else if(e.operator.value===`~`)return new G(n.value.toString()+r.value.toString());else if(e.operator.value===`**`&&P_(n)&&P_(r)){let e=F_(n),t=F_(r);if(e===0&&t<0)throw Error(`0.0 cannot be raised to a negative power`);let i=e**t;if(!Number.isFinite(i))throw Error(`Exponentiation result is not a finite real number`);return n instanceof W||r instanceof W||t<0?new W(i):new U(i)}else if((n instanceof U||n instanceof W)&&(r instanceof U||r instanceof W)){let t=n.value,i=r.value;switch(e.operator.value){case`+`:case`-`:case`*`:{let a=e.operator.value===`+`?t+i:e.operator.value===`-`?t-i:t*i;return n instanceof W||r instanceof W?new W(a):new U(a)}case`/`:return new W(t/i);case`//`:{let e=Math.floor(t/i);return n instanceof W||r instanceof W?new W(e):new U(e)}case`%`:{let e=t%i;return n instanceof W||r instanceof W?new W(e):new U(e)}case`<`:return new K(t<i);case`>`:return new K(t>i);case`>=`:return new K(t>=i);case`<=`:return new K(t<=i)}}else if(n instanceof q&&r instanceof q)switch(e.operator.value){case`+`:return new q(n.value.concat(r.value))}else if(r instanceof q){let t=r.value.find(e=>e.value===n.value)!==void 0;switch(e.operator.value){case`in`:return new K(t);case`not in`:return new K(!t)}}if(n instanceof G||r instanceof G)switch(e.operator.value){case`+`:return new G(n.value.toString()+r.value.toString())}if(n instanceof G&&r instanceof G)switch(e.operator.value){case`in`:return new K(r.value.includes(n.value));case`not in`:return new K(!r.value.includes(n.value))}if(n instanceof G&&r instanceof T_)switch(e.operator.value){case`in`:return new K(r.value.has(n.value));case`not in`:return new K(!r.value.has(n.value))}throw SyntaxError(`Unknown operator "${e.operator.value}" between ${n.type} and ${r.type}`)}evaluateArguments(e,t){let n=[],r=new Map,i=(e,t)=>{if(r.has(e))throw Error(`Got multiple values for keyword argument '${e}'`);r.set(e,t)};for(let r of e)if(r.type===`SpreadExpression`){let e=r,i=this.evaluate(e.argument,t);if(!(i instanceof q))throw Error(`Cannot unpack non-iterable type: ${i.type}`);for(let e of i.value)n.push(e)}else r.type!==`KeywordArgumentExpression`&&r.type!==`KeywordSpreadExpression`&&n.push(this.evaluate(r,t));for(let n of e)if(n.type===`KeywordArgumentExpression`){let e=n;i(e.key.value,this.evaluate(e.value,t))}else if(n.type===`KeywordSpreadExpression`){let e=n,r=this.evaluate(e.argument,t);if(!(r instanceof T_))throw Error(`Argument after ** must be a mapping, not ${r.type}`);for(let[e,t]of r.value)i(e,t)}return[n,r]}applyFilter(e,t,n){if(t.type===`Identifier`){let r=t;if(r.value===`safe`)return e;if(r.value===`tojson`)return new G(w_(e,{}));if(e instanceof q)switch(r.value){case`list`:return e;case`first`:return e.value[0];case`last`:return e.value[e.value.length-1];case`length`:return new U(e.value.length);case`reverse`:return new q(e.value.slice().reverse());case`sort`:return new q(e.value.slice().sort((e,t)=>L_(e,t,!1)));case`join`:return new G(e.value.map(e=>e.value).join(``));case`string`:return new G(w_(e,{},0,!1));case`unique`:{let t=new Set,n=[];for(let r of e.value)t.has(r.value)||(t.add(r.value),n.push(r));return new q(n)}default:throw Error(`Unknown ArrayValue filter: ${r.value}`)}else if(e instanceof G)switch(r.value){case`length`:case`upper`:case`lower`:case`title`:case`capitalize`:{let t=e.builtins.get(r.value);if(t instanceof J)return t.value([],n);if(t instanceof U)return t;throw Error(`Unknown StringValue filter: ${r.value}`)}case`trim`:return new G(e.value.trim());case`indent`:return new G(e.value.split(`
@@ -1,2 +1,2 @@
1
- import{r as e}from"./chunk-BQCWtrzh.js";import{h as t,r as n,w as r}from"./chunk-BcTH_-FL.js";import"./chunk-DFLqhyP_.js";import{t as i}from"./chunk-Dhh0lHO6.js";import{a}from"./chunk-BXFHFbEd.js";import{t as o}from"./chunk-da0bsiOn.js";async function s(e,...t){let n=e;for(let e of t){let t=await n.getDirectoryHandle(e,{create:!0});if(typeof n.isSameEntry==`function`&&await n.isSameEntry(t))throw Error(`Directory navigation failed: "${e}" resolved to the same directory as its parent. The stored directory handle may be stale — try re-selecting the storage folder.`);n=t}return n}let c=null;async function l(e,t){try{return await e.entries().next(),`granted`}catch{return t}}function u(){let e=r();return e?`${t}-${e}`:t}async function d(){try{if(typeof navigator<`u`&&navigator.storage&&typeof navigator.storage.getDirectory==`function`){let e=await navigator.storage.getDirectory(),t=u();return await e.getDirectoryHandle(t,{create:!0})}}catch(e){console.warn(`OPFS is unavailable (e.g. Firefox Private Browsing). Using in-memory storage fallback:`,e)}return a()}function f(e){if(!e||typeof e!=`object`)return!1;let t=globalThis.FileSystemDirectoryHandle;return t!==void 0&&e instanceof t||typeof e.getDirectoryHandle==`function`&&typeof e.getFileHandle==`function`}async function p(e){if(c)return c;try{let t=await i(e,n.STORAGE_HANDLE);if(f(t)){let e=t;if(typeof e.queryPermission==`function`&&await e.queryPermission({mode:`readwrite`})!==`granted`&&typeof e.requestPermission==`function`)try{await e.requestPermission({mode:`readwrite`})}catch{}return e}}catch(e){console.warn(`Failed to retrieve local storage handle from DB:`,e)}return d()}function m(e){c=e}function h(){c=null}function g(e){return e instanceof DOMException&&e.name===`InvalidStateError`}async function _(e){if(c)try{let e=await c.queryPermission({mode:`readwrite`});return{type:`local`,permission:e===`granted`?`granted`:await l(c,e),name:c.name}}catch{console.warn(`Getting storage status failed for explicit storage root.`)}try{let t=await i(e,n.STORAGE_HANDLE);if(f(t)){let e=t,n=await e.queryPermission({mode:`readwrite`});return{type:`local`,permission:n===`granted`?`granted`:await l(e,n),name:e.name}}}catch(e){console.warn(`Failed to check storage status:`,e)}return{type:`opfs`,permission:`granted`,name:`OPFS`}}async function v(t,n){let r=await p(t);return e()?r:s(r,`groups`,n.replace(/:/g,`-`))}function y(e){let t=e.replace(/\\/g,`/`).replace(/^\/home\/user\//,`/`).replace(/^\/+/,``).split(`/`).filter(Boolean);if(t.length===0)throw Error(`Empty file path`);let n=t.pop();if(t.some(e=>e===`..`||e===`.`)||n===`..`||n===`.`){let t=Error(`SecurityError: Path traversal is not allowed: "${e}"`);throw t.name=`SecurityError`,t}return{dirs:t,filename:n||``}}async function b(e,t){let n=e?.createWritable,r=Reflect.get(e,`createWriteable`),i=typeof n==`function`?n.bind(e):typeof r==`function`?r.bind(e):null;if(i){let e=await i();await e.write(S(t)),await e.close();return}if(typeof e.createSyncAccessHandle==`function`){let n=await e.createSyncAccessHandle();try{let e=await C(t);n.truncate(0),n.write(e,{at:0}),typeof n.flush==`function`&&n.flush()}finally{n.close()}return}throw Error(`Writable file streams are not supported by this browser/storage backend.`)}async function x(e,t){if(typeof globalThis.Worker!=`function`)throw Error(`Writable file streams are not supported by this browser/storage backend.`);let n=await C(t);return new Promise((t,r)=>{let i=``,a=null;try{let e=[`self.onmessage = async (e) => {`,` try {`,` const { pathSegments, bytes } = e.data;`,` let dir = await navigator.storage.getDirectory();`,` for (let i = 0; i < pathSegments.length - 1; i++) {`,` dir = await dir.getDirectoryHandle(pathSegments[i], { create: true });`,` }`,` const filename = pathSegments[pathSegments.length - 1];`,` const fh = await dir.getFileHandle(filename, { create: true });`,` const h = await fh.createSyncAccessHandle();`,` try {`,` h.truncate(0);`,` h.write(bytes, { at: 0 });`,` if (typeof h.flush === 'function') h.flush();`,` } finally { h.close(); }`,` self.postMessage({ ok: true });`,` } catch (err) {`,` self.postMessage({ error: err.message || String(err) });`,` }`,`};`].join(`
1
+ import{r as e}from"./chunk-BQCWtrzh.js";import{h as t,r as n,w as r}from"./chunk-CXAobnJd.js";import"./chunk-DFLqhyP_.js";import{t as i}from"./chunk-Dhh0lHO6.js";import{a}from"./chunk-UweLmfQS.js";import{t as o}from"./chunk-DmRXVLfy.js";async function s(e,...t){let n=e;for(let e of t){let t=await n.getDirectoryHandle(e,{create:!0});if(typeof n.isSameEntry==`function`&&await n.isSameEntry(t))throw Error(`Directory navigation failed: "${e}" resolved to the same directory as its parent. The stored directory handle may be stale — try re-selecting the storage folder.`);n=t}return n}let c=null;async function l(e,t){try{return await e.entries().next(),`granted`}catch{return t}}function u(){let e=r();return e?`${t}-${e}`:t}async function d(){try{if(typeof navigator<`u`&&navigator.storage&&typeof navigator.storage.getDirectory==`function`){let e=await navigator.storage.getDirectory(),t=u();return await e.getDirectoryHandle(t,{create:!0})}}catch(e){console.warn(`OPFS is unavailable (e.g. Firefox Private Browsing). Using in-memory storage fallback:`,e)}return a()}function f(e){if(!e||typeof e!=`object`)return!1;let t=globalThis.FileSystemDirectoryHandle;return t!==void 0&&e instanceof t||typeof e.getDirectoryHandle==`function`&&typeof e.getFileHandle==`function`}async function p(e){if(c)return c;try{let t=await i(e,n.STORAGE_HANDLE);if(f(t)){let e=t;if(typeof e.queryPermission==`function`&&await e.queryPermission({mode:`readwrite`})!==`granted`&&typeof e.requestPermission==`function`)try{await e.requestPermission({mode:`readwrite`})}catch{}return e}}catch(e){console.warn(`Failed to retrieve local storage handle from DB:`,e)}return d()}function m(e){c=e}function h(){c=null}function g(e){return e instanceof DOMException&&e.name===`InvalidStateError`}async function _(e){if(c)try{let e=await c.queryPermission({mode:`readwrite`});return{type:`local`,permission:e===`granted`?`granted`:await l(c,e),name:c.name}}catch{console.warn(`Getting storage status failed for explicit storage root.`)}try{let t=await i(e,n.STORAGE_HANDLE);if(f(t)){let e=t,n=await e.queryPermission({mode:`readwrite`});return{type:`local`,permission:n===`granted`?`granted`:await l(e,n),name:e.name}}}catch(e){console.warn(`Failed to check storage status:`,e)}return{type:`opfs`,permission:`granted`,name:`OPFS`}}async function v(t,n){let r=await p(t);return e()?r:s(r,`groups`,n.replace(/:/g,`-`))}function y(e){let t=e.replace(/\\/g,`/`).replace(/^\/home\/user\//,`/`).replace(/^\/+/,``).split(`/`).filter(Boolean);if(t.length===0)throw Error(`Empty file path`);let n=t.pop();if(t.some(e=>e===`..`||e===`.`)||n===`..`||n===`.`){let t=Error(`SecurityError: Path traversal is not allowed: "${e}"`);throw t.name=`SecurityError`,t}return{dirs:t,filename:n||``}}async function b(e,t){let n=e?.createWritable,r=Reflect.get(e,`createWriteable`),i=typeof n==`function`?n.bind(e):typeof r==`function`?r.bind(e):null;if(i){let e=await i();await e.write(S(t)),await e.close();return}if(typeof e.createSyncAccessHandle==`function`){let n=await e.createSyncAccessHandle();try{let e=await C(t);n.truncate(0),n.write(e,{at:0}),typeof n.flush==`function`&&n.flush()}finally{n.close()}return}throw Error(`Writable file streams are not supported by this browser/storage backend.`)}async function x(e,t){if(typeof globalThis.Worker!=`function`)throw Error(`Writable file streams are not supported by this browser/storage backend.`);let n=await C(t);return new Promise((t,r)=>{let i=``,a=null;try{let e=[`self.onmessage = async (e) => {`,` try {`,` const { pathSegments, bytes } = e.data;`,` let dir = await navigator.storage.getDirectory();`,` for (let i = 0; i < pathSegments.length - 1; i++) {`,` dir = await dir.getDirectoryHandle(pathSegments[i], { create: true });`,` }`,` const filename = pathSegments[pathSegments.length - 1];`,` const fh = await dir.getFileHandle(filename, { create: true });`,` const h = await fh.createSyncAccessHandle();`,` try {`,` h.truncate(0);`,` h.write(bytes, { at: 0 });`,` if (typeof h.flush === 'function') h.flush();`,` } finally { h.close(); }`,` self.postMessage({ ok: true });`,` } catch (err) {`,` self.postMessage({ error: err.message || String(err) });`,` }`,`};`].join(`
2
2
  `);i=URL.createObjectURL(new Blob([e],{type:`text/javascript`})),a=new Worker(o(i))}catch{i&&URL.revokeObjectURL(i),r(Error(`Writable file streams are not supported by this browser/storage backend.`));return}let s=()=>{a&&a.terminate(),URL.revokeObjectURL(i)};a.onmessage=e=>{s(),e.data?.error?r(Error(e.data.error)):t()},a.onerror=e=>{s(),r(Error(e.message||`Worker file write failed`))},a.postMessage({pathSegments:e,bytes:n},[n.buffer])})}function S(e){if(typeof e==`string`||e instanceof Blob)return e;if(e instanceof Uint8Array){let t=new Uint8Array(e.byteLength);return t.set(e),new Blob([t])}return new Blob([e])}async function C(e){return e instanceof Uint8Array?e:typeof e==`string`?new TextEncoder().encode(e):e instanceof Blob?new Uint8Array(await e.arrayBuffer()):e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array}export{u as a,h as c,v as i,g as l,x as n,p as o,y as r,_ as s,b as t,m as u};
@@ -1,4 +1,4 @@
1
- import{n as e,t}from"./chunk-DSAjCI7h.js";import{t as n}from"./chunk-DxIsgrAF.js";import{n as r,r as i,t as a}from"./chunk-BQCWtrzh.js";import{a as o,c as s,i as c,l,n as u,o as d,r as f,s as p,t as m}from"./chunk-BP5Hg6CM.js";import{C as h,S as g,T as _,b as v,c as y,f as ee,m as te,n as ne,o as b,p as re,r as x,u as ie,v as ae,w as oe,x as se,y as ce}from"./chunk-BcTH_-FL.js";import{i as le,n as ue,t as de}from"./chunk-DFLqhyP_.js";import{t as S}from"./chunk-Dhh0lHO6.js";import{a as fe,i as pe,o as me,r as he}from"./chunk-CSvHmNOk.js";import{a as ge,i as _e,n as ve,o as ye,r as be,s as xe,t as Se}from"./chunk-D7xP72La.js";import{t as Ce}from"./chunk-CvoMdhST2.js";import{a as we,c as Te,d as C,l as Ee,o as De,s as w,t as Oe,u as ke}from"./chunk-3gRhOmGo2.js";import{a as Ae,i as je,t as Me}from"./chunk-FEL5dv0w2.js";import{t as Ne}from"./chunk-BXg4-9Rq2.js";import{Bash as Pe,InMemoryFs as Fe}from"just-bash";var Ie=Object.defineProperty,Le=(e,t,n)=>t in e?Ie(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Re=(e,t,n)=>(Le(e,typeof t==`symbol`?t:t+``,n),n),ze=(e,t,n)=>{if(!t.has(e))throw TypeError(`Cannot `+n)},Be=(e,t)=>{if(Object(t)!==t)throw TypeError(`Cannot use the "in" operator on this value`);return e.has(t)},Ve=(e,t,n)=>{if(t.has(e))throw TypeError(`Cannot add the same private member more than once`);t instanceof WeakSet?t.add(e):t.set(e,n)},He=(e,t,n)=>(ze(e,t,`access private method`),n);
1
+ import{n as e,t}from"./chunk-DSAjCI7h.js";import{t as n}from"./chunk-DxIsgrAF.js";import{n as r,r as i,t as a}from"./chunk-BQCWtrzh.js";import{a as o,c as s,i as c,l,n as u,o as d,r as f,s as p,t as m}from"./chunk-C9-aL3rF.js";import{C as h,S as g,T as _,b as v,c as y,f as ee,m as te,n as ne,o as b,p as re,r as x,u as ie,v as ae,w as oe,x as se,y as ce}from"./chunk-CXAobnJd.js";import{i as le,n as ue,t as de}from"./chunk-DFLqhyP_.js";import{t as S}from"./chunk-Dhh0lHO6.js";import{a as fe,i as pe,o as me,r as he}from"./chunk-DmRXVLfy.js";import{a as ge,i as _e,n as ve,o as ye,r as be,s as xe,t as Se}from"./chunk-ClPZ4Rea.js";import{t as Ce}from"./chunk-CvoMdhST2.js";import{a as we,c as Te,d as C,l as Ee,o as De,s as w,t as Oe,u as ke}from"./chunk-CjJsVrKI2.js";import{a as Ae,i as je,t as Me}from"./chunk-FEL5dv0w2.js";import{t as Ne}from"./chunk-DHJCGRuG2.js";import{Bash as Pe,InMemoryFs as Fe}from"just-bash";var Ie=Object.defineProperty,Le=(e,t,n)=>t in e?Ie(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Re=(e,t,n)=>(Le(e,typeof t==`symbol`?t:t+``,n),n),ze=(e,t,n)=>{if(!t.has(e))throw TypeError(`Cannot `+n)},Be=(e,t)=>{if(Object(t)!==t)throw TypeError(`Cannot use the "in" operator on this value`);return e.has(t)},Ve=(e,t,n)=>{if(t.has(e))throw TypeError(`Cannot add the same private member more than once`);t instanceof WeakSet?t.add(e):t.set(e,n)},He=(e,t,n)=>(ze(e,t,`access private method`),n);
2
2
  /**
3
3
  * @license
4
4
  * Copyright Google LLC All Rights Reserved.
@@ -253,7 +253,7 @@ const restoreGlobals = applyGlobalShadows();
253
253
 
254
254
  `).trim()}function ic(e){let t=/<\|tool_call>call:([a-zA-Z_][a-zA-Z0-9_]*)(\{[\s\S]*?\})?<tool_call\|>/g,n=[];return{toolBlocks:n,residualText:e.replace(t,(e,t,r)=>{let i={};if(r)try{let e=JSON.parse(r);e&&typeof e==`object`&&!Array.isArray(e)&&(i=e)}catch{}return n.push({type:`tool_use`,id:`mesh_llm_call_${Date.now()}_${Math.random().toString(36).slice(2)}`,name:t,input:i}),``}).replace(/^[ \t]+$/gm,``).replace(/\n{3,}/g,`
255
255
 
256
- `).trim()}}function ac(e){if(!e||!Array.isArray(e.content))return e;let t=[],n=!1;for(let r of e.content){if(r.type!==`text`){t.push(r);continue}let{toolBlocks:e,residualText:i}=ic(rc(r.text));i&&t.push({type:`text`,text:i}),e.length>0&&(n=!0,t.push(...e))}return{...e,content:t,stop_reason:n||e.stop_reason===`tool_use`?`tool_use`:e.stop_reason}}const oc={openai:$s,anthropic:ec,google:nc,"mesh-llm":class extends $s{parseResponse(e){return ac(super.parseResponse(e))}}};function sc(e){let t=oc[e.format];if(!t)throw Error(`Unsupported provider format: ${e.format}`);return new t(e)}function cc(e,t,n,r){return sc(e).formatRequest(t,n,r)}function lc(e){let t=e.toLowerCase();return t===`none`?0:t===`max`||t===`xhigh`?.95:t===`high`?.8:t===`medium`?.5:t===`low`?.2:t===`minimal`?.1:0}function uc(e,t){return sc(e).parseResponse(t)}function dc(e){let t=_.getModelInfo(e);if(t?.contextWindow)return t.contextWindow;let n=e.toLowerCase();return n.includes(`gpt-4.1`)?1047576:n.includes(`gpt-5`)?4e5:n.includes(`gpt-4o`)||n.includes(`gpt-4-turbo`)?128e3:n===`gpt-4`||n.startsWith(`gpt-4-`)?8192:n.includes(`gpt-3.5-turbo`)?16385:n.includes(`gpt-3.5`)?4096:n.includes(`o1`)||n.includes(`o3`)||n.includes(`o4`)?2e5:n.includes(`claude-opus-4`)||n.includes(`claude-sonnet-4`)?1e6:n.includes(`claude`)?2e5:n.includes(`gemini-nano`)?4096:n.includes(`gemini-1.5-pro`)?2097152:n.includes(`gemini-2.5`)||n.includes(`gemini-2.0`)||n.includes(`gemini-1.5`)?1048576:n.includes(`gemini-1.0`)||n.includes(`gemini-pro`)?32768:n.includes(`gemini`)?1048576:n.includes(`llama-3.1`)||n.includes(`llama-3-1`)?128e3:n.includes(`llama-3`)?8192:n.includes(`llama`)?4096:n.includes(`gemma-4-12b`)||n.includes(`gemma-4-26b`)||n.includes(`gemma-4-31b`)||n.includes(`gemma-4-e9b`)||n.includes(`gemma-4-e27b`)?256e3:n.includes(`gemma-4`)||n.includes(`gemma 4`)||n.includes(`gemma-3-4b`)||n.includes(`gemma-3-12b`)||n.includes(`gemma-3-27b`)?128e3:n.includes(`gemma-3`)||n.includes(`gemma 3`)?32e3:n.includes(`gemma-2`)||n.includes(`gemma-7b`)||n.includes(`gemma-2b`)||n.includes(`gemma`)?8192:n.includes(`mistral-large`)?128e3:n.includes(`mistral`)?32e3:n.includes(`amazon.titan`)?8192:n.includes(`amazon.nova-micro`)||n.includes(`nova-micro`)?128e3:n.includes(`amazon.nova`)||n.includes(`nova-pro`)||n.includes(`nova-lite`)?3e5:n.includes(`ai21`)?8192:n.includes(`cohere`)||n.includes(`phi-4-mini`)?128e3:n.includes(`phi-4`)?16384:n.includes(`phi-3.5`)||n.includes(`128k`)?128e3:n.includes(`phi-3`)?4096:n.includes(`qwen3.5`)?262144:n.includes(`qwen3-0.6b`)||n.includes(`qwen3-1.7b`)?40960:n.includes(`qwen3`)?128e3:n===`mesh`?242144:4096}function fc(e,t){if(e===`translate`)return`Translate the following text from ${t.sourceLanguage||`auto`} to ${t.targetLanguage}. Provide ONLY the raw translated text without commentary or quotation marks:\n\n${t.text}`;if(e===`summarize`)return`Summarize the following text (type: ${t.type||`tldr`}, format: ${t.format||`plain-text`}, length: ${t.length||`medium`}). Provide ONLY the summary:\n\n${t.text}`;if(e===`write`)return`Draft content for the following request (context: ${t.context||`none`}):\n\n${t.prompt}`;if(e===`rewrite`)return`Rewrite the following text (tone: ${t.tone||`standard`}, length: ${t.length||`as-is`}):\n\n${t.text}`;if(e===`proofread`)return`Proofread and correct grammar, spelling, and style in the following text. Provide ONLY the corrected text:\n\n${t.text}`;if(e===`detect-language`)return`Detect the language of the following text. Return ONLY a JSON array of objects with "detectedLanguage" (BCP 47 code) and "confidence" (0.0 - 1.0), e.g. [{"detectedLanguage":"en","confidence":0.99}]:\n\n${t.text}`;if(e===`semantic-embedder`)return`Provide a concise semantic description/representation for the following content:\n\n${JSON.stringify(t.text)}`;throw Error(`Unknown native AI task type: ${e}`)}async function pc(e){if(e.toolsBackendPref)return e.toolsBackendPref;if(e.db)try{let{getConfig:t}=await import(`./chunk-0WvYaMdi.js`),n=await t(e.db,x.BUILTIN_AI_TOOLS_BACKEND);if(n)return n}catch{}return`active_provider`}async function mc(e,t,n){if(n.apiKey!==void 0)return n.apiKey;if(typeof process<`u`&&process.env){let e=process.env.SHADOW_CLAW_API_KEY;if(e)return e;switch(t){case`openrouter`:if(process.env.OPENROUTER_API_KEY)return process.env.OPENROUTER_API_KEY;break;case`huggingface`:if(process.env.HUGGINGFACE_API_KEY||process.env.HF_TOKEN)return process.env.HUGGINGFACE_API_KEY||process.env.HF_TOKEN||``;break;case`gemini_proxy`:if(process.env.GEMINI_API_KEY)return process.env.GEMINI_API_KEY;break}let n=`${t.toUpperCase()}_API_KEY`;if(process.env[n])return process.env[n]}if(n.db)try{let{getConfig:e}=await import(`./chunk-0WvYaMdi.js`),r=await e(n.db,`api_key:${t}`)||await e(n.db,`apiKey`);if(r)return r}catch{}return``}async function hc(e){let{taskType:t,input:n,onProgress:r}=e;if(await pc(e)===`local`){if(t===`summarize`)return await xo(n.text,{...n,onProgress:r});if(t===`write`)return await So(n.prompt,{...n,onProgress:r});if(t===`rewrite`)return await Co(n.text,{...n,onProgress:r});if(t===`proofread`)return await Eo(n.text,{...n,onProgress:r});if(t===`detect-language`)return await wo(n.text,{onProgress:r});if(t===`translate`)return await To(n.text,{sourceLanguage:n.sourceLanguage||`auto`,targetLanguage:n.targetLanguage||`en`,...n,onProgress:r});if(t===`semantic-embedder`)return await Do(n.text,{...n,onProgress:r});throw Error(`Unknown native AI task: ${t}`)}let a=i()?`openrouter`:`prompt_api`,o=e.providerId;if(!o&&e.db)try{let{getConfig:t}=await import(`./chunk-0WvYaMdi.js`);o=await t(e.db,x.PROVIDER)||a}catch{}o||=typeof process<`u`&&(process.env.SHADOW_CLAW_PROVIDER||process.env.SHADOW_CLAW_DEFAULT_PROVIDER)||a;let s=fc(t,n);if(o===`prompt_api`){await yo();let e=globalThis,n=e.LanguageModel||e.ai?.languageModel;if(n&&typeof n.create==`function`){let e;try{e=await n.create()}catch(e){console.warn(`Prompt API session creation failed in active provider task:`,e)}if(e)try{let n=await e.prompt(s),r=String(n||``).trim();if(t===`detect-language`)try{let e=JSON.parse(r);return Array.isArray(e)?e:[e]}catch{return[{detectedLanguage:`en`,confidence:.8}]}return r}finally{typeof e.destroy==`function`&&e.destroy()}}}let c=v(o);if(!c||!c.baseUrl||c.baseUrl.startsWith(`builtin://`)||c.baseUrl.startsWith(`local://`)||c.format===`prompt_api`||c.format===`transformers_js`){if(t===`summarize`)return await xo(n.text,n);if(t===`write`)return await So(n.prompt,n);if(t===`rewrite`)return await Co(n.text,n);if(t===`proofread`)return await Eo(n.text,n);if(t===`detect-language`)return await wo(n.text);if(t===`translate`)return await To(n.text,{sourceLanguage:n.sourceLanguage||`auto`,targetLanguage:n.targetLanguage||`en`,...n});if(t===`semantic-embedder`)return await Do(n.text,n);throw Error(`Provider ${o} not found and no local fallback available`)}let l=await mc(c,o,e);if(c.requiresApiKey!==!1&&!l)throw Error(`Provider "${c.name||o}" requires an API key for task "${t}". Please provide an API key or configure tools backend.`);let u=e.model||c.defaultModel||`default`,d={...Zs(c,l),...e.headers||{}},f=cc(c,[{role:`user`,content:s}],[],{maxTokens:e.maxTokens||2048,model:u,system:`You are a specialized text task assistant. Fulfill the user request directly and accurately without conversational filler.`}),p=await fetch(c.baseUrl,{body:JSON.stringify(f),headers:d,method:`POST`});if(!p.ok){let e=await p.text();throw Error(`Active provider task API error ${p.status}: ${e}`)}let m=uc(c,await p.json()).content?.filter(e=>e.type===`text`)?.map(e=>e.text)?.join(``)?.trim()||``;if(t===`detect-language`)try{let e=JSON.parse(m);return Array.isArray(e)?e:[e]}catch{return[{detectedLanguage:`en`,confidence:.8}]}return m}let gc=null;function _c(e){gc=e}async function vc(e,t,r,a){if(gc)return await gc(t,r,e,a);if(i()){let n=a?.invokeContext;return await hc({taskType:t,input:r,groupId:e,providerId:n?.provider,model:n?.model,apiKey:n?.apiKey,maxTokens:n?.maxTokens,headers:n?.providerHeaders,db:a?.db||n?.db})}let o=n();return A({type:`request-native-ai-task`,payload:{id:o,groupId:e,taskType:t,input:r}}),await new Promise((e,t)=>{globalThis.pendingNativeAiResolvers=globalThis.pendingNativeAiResolvers||{},globalThis.pendingNativeAiResolvers[o]={resolve:e,reject:t}})}async function yc(e,t,n){let r=String(e.text||``).trim();if(!r)return`Error: text is required for summarize_text`;try{return await vc(t,`summarize`,{text:r,type:e.type,format:e.format,length:e.length,preference:e.preference,context:e.context},n)}catch(e){return`Error summarizing text: ${e instanceof Error?e.message:String(e)}`}}async function bc(e,t,n){let r=String(e.prompt||``).trim();if(!r)return`Error: prompt is required for write_text`;try{return await vc(t,`write`,{prompt:r,context:e.context},n)}catch(e){return`Error writing text: ${e instanceof Error?e.message:String(e)}`}}async function xc(e,t,n){let r=String(e.text||``).trim();if(!r)return`Error: text is required for rewrite_text`;try{return await vc(t,`rewrite`,{text:r,tone:e.tone,length:e.length,context:e.context},n)}catch(e){return`Error rewriting text: ${e instanceof Error?e.message:String(e)}`}}async function Sc(e,t,n){let r=String(e.text||``).trim();if(!r)return`Error: text is required for proofread_text`;try{return await vc(t,`proofread`,{text:r,context:e.context},n)}catch(e){return`Error proofreading text: ${e instanceof Error?e.message:String(e)}`}}async function Cc(e,t,n){let r=String(e.text||``).trim();if(!r)return`Error: text is required for detect_language`;try{let e=await vc(t,`detect-language`,{text:r},n);return typeof e==`string`?e:JSON.stringify(e,null,2)}catch(e){return`Error detecting language: ${e instanceof Error?e.message:String(e)}`}}async function wc(e,t,n){let r=String(e.text||``).trim(),i=String(e.sourceLanguage||``).trim(),a=String(e.targetLanguage||``).trim();if(!r||!i||!a)return`Error: text, sourceLanguage, and targetLanguage are required for translate_text`;try{return await vc(t,`translate`,{text:r,sourceLanguage:i,targetLanguage:a},n)}catch(e){return`Error translating text: ${e instanceof Error?e.message:String(e)}`}}async function Tc(e,t,n){let r=e.text;if(!r||Array.isArray(r)&&r.length===0)return`Error: text is required for embed_text`;try{let i=await vc(t,`semantic-embedder`,{text:r,taskType:e.taskType},n);return typeof i==`string`?i:JSON.stringify(i,null,2)}catch(e){return`Error generating embeddings: ${e instanceof Error?e.message:String(e)}`}}async function Ec(e,t={}){let{maxRetries:n=3,baseDelayMs:r=1e3,maxDelayMs:i=3e4,jitterFactor:a=.5,shouldRetry:o=()=>!0,onRetry:s,signal:c}=t,l;for(let t=0;t<=n;t++){if(c?.aborted)throw c.reason??new DOMException(`Aborted`,`AbortError`);try{return await e()}catch(e){if(l=e,e instanceof DOMException&&e.name===`AbortError`||e instanceof Error&&e.name===`AbortError`)throw e;if(t>=n||!o(e,t+1))break;let u=Ja(t,r,i,a);s&&s(t+1,n,u,e),await Ya(u,c)}}throw l}const Dc=new Set([408,429,500,502,503,504]);function Oc(e){return/network|ECONNRESET|ECONNREFUSED|ETIMEDOUT|fetch failed|EAI_AGAIN|EAI_NONAME|getaddrinfo/i.test(e.message)}function kc(e){if(e instanceof TypeError)return!0;if(typeof e?.status==`number`)return Dc.has(e.status);if(e instanceof Error){let t=e.message.match(/\b(4\d{2}|5\d{2})\b/);if(t)return Dc.has(Number(t[1]));if(Oc(e))return!0}return!1}function Ac(e){return e instanceof TypeError?!0:e&&typeof e.status==`number`?Dc.has(e.status):e instanceof Error&&Oc(e)}const jc=new Set([`create_task`,`update_task`,`delete_task`,`enable_task`,`disable_task`,`send_notification`,`create_room`,`invite_to_room`,`leave_room`]);function Mc(e){if(!Array.isArray(e))return null;let t=e.map(e=>typeof e==`string`?e:typeof e?.name==`string`?e.name:null).filter(Boolean);return new Set(t)}function Nc(e,t){let n=Mc(t);return n&&!n.has(e)?`Tool "${e}" is not allowed in the current context. Do not call it again. Use one of the available tools or ask for help.`:null}function Pc(e,t,n){return(t||n)&&e===`run_task`?`Tool "run_task" cannot be called from within a task execution to prevent infinite loops.`:null}function Fc(e,t){return t&&jc.has(e)?`Tool "${e}" is not allowed during scheduled task execution to prevent recursion.`:null}function Ic(e){return i()&&a.has(e)?`Tool "${e}" is not available in headless CLI mode. It requires a browser UI.`:null}function Lc(e,t={}){return Nc(e,t.allowedTools)||Pc(e,t.isScheduledTask,t.isTaskExecution)||Fc(e,t.isScheduledTask)||Ic(e)||null}async function Rc(e,t,n,r,i={},a){let o=await Te(e,r,t);if(!o)return`Unknown tool: ${t}`;let s=i.declarativeDepth||0;if(s>=8)return`Tool error (${t}): declarative tool nesting limit exceeded.`;if(o.execution.type===`tool`){let c=o.execution.name;return c?await a(e,c,o.execution.input?{...n,...o.execution.input}:n,r,{...i,declarativeDepth:s+1}):`Tool error (${t}): declarative tool target is missing.`}return o.execution.type===`bash`?await Pi(e,{command:o.execution.command,stdin:JSON.stringify(n)},r):await ts(e,{code:o.execution.code,data:JSON.stringify(n)})}let zc=null;async function Bc(){return zc||=import(`./chunk-B2tNSlFy2.js`),zc}async function Vc(e,t,n,r){let i=await Bc();return await Sa(e,t,n,r,{configKeys:{GIT_CORS_PROXY:x.GIT_CORS_PROXY,GIT_PROXY_URL:x.GIT_PROXY_URL,GIT_AUTHOR_NAME:x.GIT_AUTHOR_NAME,GIT_AUTHOR_EMAIL:x.GIT_AUTHOR_EMAIL},getConfig:S,getGroupDir:c,getProxyUrl:i.getProxyUrl,getRemoteUrl:i.getRemoteUrl,gitAdd:i.gitAdd,gitBranch:i.gitBranch,gitCheckout:i.gitCheckout,gitClone:i.gitClone,gitCommit:i.gitCommit,gitConfig:i.gitConfig,gitDeleteBranch:i.gitDeleteBranch,gitDeleteRepo:i.gitDeleteRepo,gitDiff:i.gitDiff,gitFetch:i.gitFetch,gitInit:i.gitInit,gitListBranches:i.gitListBranches,gitListRepos:i.gitListRepos,gitListTags:i.gitListTags,gitLog:i.gitLog,gitMerge:i.gitMerge,gitPull:i.gitPull,gitPush:i.gitPush,gitReadFileAtRef:i.gitReadFileAtRef,gitRemote:i.gitRemote,gitReset:i.gitReset,gitShow:i.gitShow,gitStatus:i.gitStatus,gitTag:i.gitTag,gitUnstage:i.gitUnstage,readGroupFile:ke,resolveGitCredentials:Fn})}const N=new Map;N.set(`bash`,(e,t,n)=>Pi(e,t,n)),N.set(`read_file`,(e,t,n)=>Es(e,t,n)),N.set(`open_file`,(e,t,n)=>ws(e,t,n)),N.set(`attach_file_to_chat`,(e,t,n)=>ds(e,t,n)),N.set(`send_file`,(e,t,n)=>As(e,t,n)),N.set(`write_file`,(e,t,n)=>Ms(e,t,n)),N.set(`delete_file`,(e,t,n)=>ys(e,t,n)),N.set(`move_file`,(e,t,n)=>Cs(e,t,n)),N.set(`copy_file`,(e,t,n)=>gs(e,t,n)),N.set(`create_directory`,(e,t,n)=>_s(e,t,n)),N.set(`patch_file`,(e,t,n)=>Ts(e,t,n)),N.set(`list_files`,(e,t,n)=>xs(e,t,n)),N.set(`manage_tools`,(e,t,n)=>is(t,n)),N.set(`list_tool_profiles`,e=>rs(e)),N.set(`fetch_url`,(e,t,n)=>ga(e,t,n,{buildAuthHeaders:On,fetchImpl:fetch,fetchMaxResponse:ee,isRetryableFetchError:Ac,post:A,resolveGitCredentials:Fn,resolveServiceCredentials:wn,retryableStatusCodes:Dc,stripHtml:yr,uploadGroupFile:xe,withRetry:Ec})),N.set(`fetch_file`,(e,t,n)=>ma(e,t,n,{buildAuthHeaders:On,fetchImpl:fetch,isRetryableFetchError:Ac,post:A,resolveGitCredentials:Fn,resolveServiceCredentials:wn,retryableStatusCodes:Dc,uploadGroupFile:xe,withRetry:Ec,writeGroupFile:w})),N.set(`update_memory`,(e,t,n)=>js(e,t,n)),N.set(`create_task`,(e,t,n)=>Io(t,n)),N.set(`javascript`,(e,t)=>ts(e,t)),N.set(`activate_skill`,(e,t,n)=>Ls(e,t,n)),N.set(`list_tasks`,(e,t,n)=>Vo(e,n)),N.set(`update_task`,(e,t,n)=>Uo(e,t,n)),N.set(`enable_task`,(e,t,n)=>Bo(e,t,n)),N.set(`disable_task`,(e,t,n)=>zo(e,t,n)),N.set(`delete_task`,(e,t,n)=>Lo(t,n)),N.set(`run_task`,(e,t,n)=>Ho(e,t,n)),N.set(`clear_chat`,(e,t,n)=>Go(n)),N.set(`show_toast`,(e,t)=>cs(t)),N.set(`send_notification`,(e,t,n)=>ss(t,n)),N.set(`create_room`,(e,t)=>Ma(t)),N.set(`invite_to_room`,(e,t,n)=>Fa(t,n)),N.set(`leave_room`,(e,t,n)=>Ia(t,n)),N.set(`list_room_members`,(e,t,n)=>La(e,t,n)),N.set(`prompt_peer`,(e,t,n)=>Va(e,t,n)),N.set(`list_peers`,(e,t,n)=>Ha(e,t,n));const Hc=(e,t,n)=>aa(e,t,n);N.set(`manage_email`,Hc),N.set(`manage_integration`,Hc),N.set(`email_read_messages`,(e,t,n)=>Uc(e,`manage_email`,{...t,action:`read_messages`},n)),N.set(`integration_read_messages`,(e,t,n)=>Uc(e,`manage_email`,{...t,action:`read_messages`},n)),N.set(`email_send_message`,(e,t,n)=>Uc(e,`manage_email`,{...t,action:`send_message`},n)),N.set(`integration_send_message`,(e,t,n)=>Uc(e,`manage_email`,{...t,action:`send_message`},n)),N.set(`remote_mcp_list_tools`,(e,t,n)=>Aa(e,t,n,{callRemoteMcpTool:ur,listRemoteMcpTools:lr,McpReauthRequiredError:Zn,post:A})),N.set(`remote_mcp_call_tool`,(e,t,n)=>ja(e,t,n,{callRemoteMcpTool:ur,listRemoteMcpTools:lr,McpReauthRequiredError:Zn,post:A}));for(let e of[`git_clone`,`git_checkout`,`git_branch`,`git_status`,`git_add`,`git_log`,`git_diff`,`git_branches`,`git_list_repos`,`git_delete_repo`,`git_commit`,`git_pull`,`git_push`,`git_merge`,`git_reset`,`git_fetch`,`git_read_file_at_ref`,`git_show`,`git_delete_branch`,`git_init`,`git_tag`,`git_remote`,`git_config`,`git_unstage`])N.set(e,(t,n,r)=>Vc(t,e,n,r));N.set(`list_components`,()=>ns()),N.set(`render_component`,(e,t,n)=>os(t,n)),N.set(`spawn_subagent`,async(e,t,n,r)=>r?.invokeContext?await Fo(t,n,r.invokeContext):`Error: spawn_subagent requires an active agent invocation context. This tool cannot be called directly.`),N.set(`get_current_time`,(e,t)=>Ko(t)),N.set(`search_files`,(e,t,n)=>ks(e,t,n,{maxFileBytes:k.searchFilesMaxFileBytes,maxFilesVisited:k.searchFilesMaxFilesVisited,skipDirs:k.searchFilesSkipDirsSet})),N.set(`diff_files`,(e,t,n)=>bs(e,t,n)),N.set(`ask_user`,(e,t,n)=>Wo(t,n)),N.set(`web_search`,(e,t)=>ls(t)),N.set(`summarize_text`,(e,t,n,r)=>yc(t,n,{db:e,invokeContext:r?.invokeContext})),N.set(`write_text`,(e,t,n,r)=>bc(t,n,{db:e,invokeContext:r?.invokeContext})),N.set(`rewrite_text`,(e,t,n,r)=>xc(t,n,{db:e,invokeContext:r?.invokeContext})),N.set(`proofread_text`,(e,t,n,r)=>Sc(t,n,{db:e,invokeContext:r?.invokeContext})),N.set(`detect_language`,(e,t,n,r)=>Cc(t,n,{db:e,invokeContext:r?.invokeContext})),N.set(`translate_text`,(e,t,n,r)=>wc(t,n,{db:e,invokeContext:r?.invokeContext})),N.set(`embed_text`,(e,t,n,r)=>Tc(t,n,{db:e,invokeContext:r?.invokeContext}));async function Uc(e,t,n,r,i={}){try{let a=Lc(t,i);if(a)return a;let o=N.get(t);return o?await o(e,n,r,i):await Rc(e,t,n,r,i,Uc)}catch(e){return`Tool error (${t}): ${e instanceof Error?e.message:String(e)}`}}const Wc=840*1024*1024;var Gc=class{emitter;expectedTotalBytes;logEvents;suppressInitialZero;_hasEmitted=!1;hasStreamEvents=!1;urlBytesMap=new Map;maxProgressFraction=0;maxLoadedBytes=0;maxEffectiveTotal=0;lastReportedMessage=``;lastReportedFraction=null;constructor(e,t){this.emitter=e,this.expectedTotalBytes=t?.expectedTotalBytes===void 0?Wc:t.expectedTotalBytes,this.logEvents=t?.logEvents??!1,this.suppressInitialZero=t?.suppressInitialZero??!1}get hasEmitted(){return this._hasEmitted}markActive(){this._hasEmitted=!0}onStreamProgress(e,t,n,r=!1){if(!Number.isFinite(t)||t<0)return;this.hasStreamEvents=!0,this.urlBytesMap.set(e,{received:t,total:n,complete:r});let i=0,a=0,o=this.urlBytesMap.size>0;for(let e of this.urlBytesMap.values())i+=e.received,e.total!=null&&Number.isFinite(e.total)&&e.total>0&&(a+=e.total),e.complete||(o=!1);let s=this.maxEffectiveTotal,c=this.expectedTotalBytes>0?this.expectedTotalBytes:0,l=Math.max(a,c);this.maxEffectiveTotal=Math.max(this.maxEffectiveTotal,l);let u=this.maxEffectiveTotal;if(this.maxLoadedBytes=Math.max(this.maxLoadedBytes,i),u>0){let e=Math.min(1,Math.max(0,this.maxLoadedBytes/u)),t=o?e:Math.min(.99,e);u>s&&s>0?this.maxProgressFraction=t:this.maxProgressFraction=Math.max(this.maxProgressFraction,t);let n=`Downloading Prompt API model... (${(this.maxLoadedBytes/(1024*1024)).toFixed(1)} / ${(u/(1024*1024)).toFixed(1)} MB · ${Math.min(o?100:99,Math.round(this.maxProgressFraction*100))}%)`;this.emit(this.maxProgressFraction,n)}else{let e=`Downloading Prompt API model... (${(this.maxLoadedBytes/(1024*1024)).toFixed(1)} MB downloaded)`;this.emit(null,e)}}onProgressEvent(e){let t=Number(e?.loaded),n=Number(e?.total);if(this.logEvents&&console.log(`[PromptApiProgressAggregator] onProgressEvent:`,{loaded:t,total:n,type:e?.type}),!(!Number.isFinite(t)||t<0)&&!(this.hasStreamEvents&&t<=1)&&!(this.suppressInitialZero&&!this._hasEmitted&&t===0&&(!Number.isFinite(n)||n<=1))){if(Number.isFinite(n)&&n>1){let e=this.expectedTotalBytes>0?this.expectedTotalBytes:0,r=Math.max(n,e,this.maxEffectiveTotal);this.maxEffectiveTotal=r,this.maxLoadedBytes=Math.max(this.maxLoadedBytes,t);let i=Math.min(.99,this.maxLoadedBytes/r);this.maxProgressFraction=Math.max(this.maxProgressFraction,i);let a=(this.maxLoadedBytes/(1024*1024)).toFixed(1),o=(r/(1024*1024)).toFixed(1),s=Math.round(this.maxProgressFraction*100);this.emit(this.maxProgressFraction,`Downloading Prompt API model... (${a} / ${o} MB · ${s}%)`);return}if(t>=0&&t<=1){let e=Math.max(0,Math.min(1,t)),n=e>=1?.99:e;this.maxProgressFraction=Math.max(this.maxProgressFraction,n);let r=Math.max(this.maxEffectiveTotal,this.expectedTotalBytes);if(r>0){let e=(Math.round(this.maxProgressFraction*r)/(1024*1024)).toFixed(1),t=(r/(1024*1024)).toFixed(1),n=Math.round(this.maxProgressFraction*100);this.emit(this.maxProgressFraction,`Downloading Prompt API model... (${e} / ${t} MB · ${n}%)`)}else{let e=Math.round(this.maxProgressFraction*100);this.emit(this.maxProgressFraction,`Downloading Prompt API model... ${e}%`)}return}if(t>1){this.maxLoadedBytes=Math.max(this.maxLoadedBytes,t);let e=Math.max(this.maxEffectiveTotal,this.expectedTotalBytes);if(e>0){let t=Math.max(this.maxLoadedBytes,e),n=Math.min(.99,this.maxLoadedBytes/t);this.maxProgressFraction=Math.max(this.maxProgressFraction,n);let r=(this.maxLoadedBytes/(1024*1024)).toFixed(1),i=(t/(1024*1024)).toFixed(1),a=Math.round(this.maxProgressFraction*100);this.emit(this.maxProgressFraction,`Downloading Prompt API model... (${r} / ${i} MB · ${a}%)`)}else{let e=(this.maxLoadedBytes/(1024*1024)).toFixed(1);this.emit(null,`Downloading Prompt API model... (${e} MB downloaded)`)}return}}}onDone(){this.maxProgressFraction=1,this.emitter(`done`,1,`Prompt API model ready.`)}onError(e){let t=e instanceof Error?e.message:String(e);this.emitter(`error`,null,t)}emit(e,t){this._hasEmitted=!0,!(this.lastReportedMessage===t&&this.lastReportedFraction===e)&&(this.lastReportedMessage=t,this.lastReportedFraction=e,this.emitter(`running`,e,t))}},Kc=Object.defineProperty,qc=(e,t,n)=>t in e?Kc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Jc=(e,t,n)=>(qc(e,typeof t==`symbol`?t:t+``,n),n),P=Object.freeze({Text:`Text`,NumericLiteral:`NumericLiteral`,StringLiteral:`StringLiteral`,Identifier:`Identifier`,Equals:`Equals`,OpenParen:`OpenParen`,CloseParen:`CloseParen`,OpenStatement:`OpenStatement`,CloseStatement:`CloseStatement`,OpenExpression:`OpenExpression`,CloseExpression:`CloseExpression`,OpenSquareBracket:`OpenSquareBracket`,CloseSquareBracket:`CloseSquareBracket`,OpenCurlyBracket:`OpenCurlyBracket`,CloseCurlyBracket:`CloseCurlyBracket`,Comma:`Comma`,Dot:`Dot`,Colon:`Colon`,Pipe:`Pipe`,CallOperator:`CallOperator`,AdditiveBinaryOperator:`AdditiveBinaryOperator`,MultiplicativeBinaryOperator:`MultiplicativeBinaryOperator`,ExponentiationBinaryOperator:`ExponentiationBinaryOperator`,ComparisonBinaryOperator:`ComparisonBinaryOperator`,UnaryOperator:`UnaryOperator`,Comment:`Comment`}),F=class{constructor(e,t){this.value=e,this.type=t}};function Yc(e){return/\w/.test(e)}function Xc(e){return/[0-9]/.test(e)}function Zc(e){return/\s/.test(e)}var Qc=[[`{%`,P.OpenStatement],[`%}`,P.CloseStatement],[`{{`,P.OpenExpression],[`}}`,P.CloseExpression],[`(`,P.OpenParen],[`)`,P.CloseParen],[`{`,P.OpenCurlyBracket],[`}`,P.CloseCurlyBracket],[`[`,P.OpenSquareBracket],[`]`,P.CloseSquareBracket],[`,`,P.Comma],[`.`,P.Dot],[`:`,P.Colon],[`|`,P.Pipe],[`<=`,P.ComparisonBinaryOperator],[`>=`,P.ComparisonBinaryOperator],[`==`,P.ComparisonBinaryOperator],[`!=`,P.ComparisonBinaryOperator],[`<`,P.ComparisonBinaryOperator],[`>`,P.ComparisonBinaryOperator],[`+`,P.AdditiveBinaryOperator],[`-`,P.AdditiveBinaryOperator],[`~`,P.AdditiveBinaryOperator],[`**`,P.ExponentiationBinaryOperator],[`*`,P.MultiplicativeBinaryOperator],[`//`,P.MultiplicativeBinaryOperator],[`/`,P.MultiplicativeBinaryOperator],[`%`,P.MultiplicativeBinaryOperator],[`=`,P.Equals]],$c=new Map([[`n`,`
256
+ `).trim()}}function ac(e){if(!e||!Array.isArray(e.content))return e;let t=[],n=!1;for(let r of e.content){if(r.type!==`text`){t.push(r);continue}let{toolBlocks:e,residualText:i}=ic(rc(r.text));i&&t.push({type:`text`,text:i}),e.length>0&&(n=!0,t.push(...e))}return{...e,content:t,stop_reason:n||e.stop_reason===`tool_use`?`tool_use`:e.stop_reason}}const oc={openai:$s,anthropic:ec,google:nc,"mesh-llm":class extends $s{parseResponse(e){return ac(super.parseResponse(e))}}};function sc(e){let t=oc[e.format];if(!t)throw Error(`Unsupported provider format: ${e.format}`);return new t(e)}function cc(e,t,n,r){return sc(e).formatRequest(t,n,r)}function lc(e){let t=e.toLowerCase();return t===`none`?0:t===`max`||t===`xhigh`?.95:t===`high`?.8:t===`medium`?.5:t===`low`?.2:t===`minimal`?.1:0}function uc(e,t){return sc(e).parseResponse(t)}function dc(e){let t=_.getModelInfo(e);if(t?.contextWindow)return t.contextWindow;let n=e.toLowerCase();return n.includes(`gpt-4.1`)?1047576:n.includes(`gpt-5`)?4e5:n.includes(`gpt-4o`)||n.includes(`gpt-4-turbo`)?128e3:n===`gpt-4`||n.startsWith(`gpt-4-`)?8192:n.includes(`gpt-3.5-turbo`)?16385:n.includes(`gpt-3.5`)?4096:n.includes(`o1`)||n.includes(`o3`)||n.includes(`o4`)?2e5:n.includes(`claude-opus-4`)||n.includes(`claude-sonnet-4`)?1e6:n.includes(`claude`)?2e5:n.includes(`gemini-nano`)?4096:n.includes(`gemini-1.5-pro`)?2097152:n.includes(`gemini-2.5`)||n.includes(`gemini-2.0`)||n.includes(`gemini-1.5`)?1048576:n.includes(`gemini-1.0`)||n.includes(`gemini-pro`)?32768:n.includes(`gemini`)?1048576:n.includes(`llama-3.1`)||n.includes(`llama-3-1`)?128e3:n.includes(`llama-3`)?8192:n.includes(`llama`)?4096:n.includes(`gemma-4-12b`)||n.includes(`gemma-4-26b`)||n.includes(`gemma-4-31b`)||n.includes(`gemma-4-e9b`)||n.includes(`gemma-4-e27b`)?256e3:n.includes(`gemma-4`)||n.includes(`gemma 4`)||n.includes(`gemma-3-4b`)||n.includes(`gemma-3-12b`)||n.includes(`gemma-3-27b`)?128e3:n.includes(`gemma-3`)||n.includes(`gemma 3`)?32e3:n.includes(`gemma-2`)||n.includes(`gemma-7b`)||n.includes(`gemma-2b`)||n.includes(`gemma`)?8192:n.includes(`mistral-large`)?128e3:n.includes(`mistral`)?32e3:n.includes(`amazon.titan`)?8192:n.includes(`amazon.nova-micro`)||n.includes(`nova-micro`)?128e3:n.includes(`amazon.nova`)||n.includes(`nova-pro`)||n.includes(`nova-lite`)?3e5:n.includes(`ai21`)?8192:n.includes(`cohere`)||n.includes(`phi-4-mini`)?128e3:n.includes(`phi-4`)?16384:n.includes(`phi-3.5`)||n.includes(`128k`)?128e3:n.includes(`phi-3`)?4096:n.includes(`qwen3.5`)?262144:n.includes(`qwen3-0.6b`)||n.includes(`qwen3-1.7b`)?40960:n.includes(`qwen3`)?128e3:n===`mesh`?242144:4096}function fc(e,t){if(e===`translate`)return`Translate the following text from ${t.sourceLanguage||`auto`} to ${t.targetLanguage}. Provide ONLY the raw translated text without commentary or quotation marks:\n\n${t.text}`;if(e===`summarize`)return`Summarize the following text (type: ${t.type||`tldr`}, format: ${t.format||`plain-text`}, length: ${t.length||`medium`}). Provide ONLY the summary:\n\n${t.text}`;if(e===`write`)return`Draft content for the following request (context: ${t.context||`none`}):\n\n${t.prompt}`;if(e===`rewrite`)return`Rewrite the following text (tone: ${t.tone||`standard`}, length: ${t.length||`as-is`}):\n\n${t.text}`;if(e===`proofread`)return`Proofread and correct grammar, spelling, and style in the following text. Provide ONLY the corrected text:\n\n${t.text}`;if(e===`detect-language`)return`Detect the language of the following text. Return ONLY a JSON array of objects with "detectedLanguage" (BCP 47 code) and "confidence" (0.0 - 1.0), e.g. [{"detectedLanguage":"en","confidence":0.99}]:\n\n${t.text}`;if(e===`semantic-embedder`)return`Provide a concise semantic description/representation for the following content:\n\n${JSON.stringify(t.text)}`;throw Error(`Unknown native AI task type: ${e}`)}async function pc(e){if(e.toolsBackendPref)return e.toolsBackendPref;if(e.db)try{let{getConfig:t}=await import(`./chunk-0WvYaMdi.js`),n=await t(e.db,x.BUILTIN_AI_TOOLS_BACKEND);if(n)return n}catch{}return`active_provider`}async function mc(e,t,n){if(n.apiKey!==void 0)return n.apiKey;if(typeof process<`u`&&process.env){let e=process.env.SHADOW_CLAW_API_KEY;if(e)return e;switch(t){case`openrouter`:if(process.env.OPENROUTER_API_KEY)return process.env.OPENROUTER_API_KEY;break;case`huggingface`:if(process.env.HUGGINGFACE_API_KEY||process.env.HF_TOKEN)return process.env.HUGGINGFACE_API_KEY||process.env.HF_TOKEN||``;break;case`gemini_proxy`:if(process.env.GEMINI_API_KEY)return process.env.GEMINI_API_KEY;break}let n=`${t.toUpperCase()}_API_KEY`;if(process.env[n])return process.env[n]}if(n.db)try{let{getConfig:e}=await import(`./chunk-0WvYaMdi.js`),r=await e(n.db,`api_key:${t}`)||await e(n.db,`apiKey`);if(r)return r}catch{}return``}async function hc(e){let{taskType:t,input:n,onProgress:r}=e;if(await pc(e)===`local`){if(t===`summarize`)return await xo(n.text,{...n,onProgress:r});if(t===`write`)return await So(n.prompt,{...n,onProgress:r});if(t===`rewrite`)return await Co(n.text,{...n,onProgress:r});if(t===`proofread`)return await Eo(n.text,{...n,onProgress:r});if(t===`detect-language`)return await wo(n.text,{onProgress:r});if(t===`translate`)return await To(n.text,{sourceLanguage:n.sourceLanguage||`auto`,targetLanguage:n.targetLanguage||`en`,...n,onProgress:r});if(t===`semantic-embedder`)return await Do(n.text,{...n,onProgress:r});throw Error(`Unknown native AI task: ${t}`)}let a=i()?`openrouter`:`prompt_api`,o=e.providerId;if(!o&&e.db)try{let{getConfig:t}=await import(`./chunk-0WvYaMdi.js`);o=await t(e.db,x.PROVIDER)||a}catch{}o||=typeof process<`u`&&(process.env.SHADOW_CLAW_PROVIDER||process.env.SHADOW_CLAW_DEFAULT_PROVIDER)||a;let s=fc(t,n);if(o===`prompt_api`){await yo();let e=globalThis,n=e.LanguageModel||e.ai?.languageModel;if(n&&typeof n.create==`function`){let e;try{e=await n.create()}catch(e){console.warn(`Prompt API session creation failed in active provider task:`,e)}if(e)try{let n=await e.prompt(s),r=String(n||``).trim();if(t===`detect-language`)try{let e=JSON.parse(r);return Array.isArray(e)?e:[e]}catch{return[{detectedLanguage:`en`,confidence:.8}]}return r}finally{typeof e.destroy==`function`&&e.destroy()}}}let c=v(o);if(!c||!c.baseUrl||c.baseUrl.startsWith(`builtin://`)||c.baseUrl.startsWith(`local://`)||c.format===`prompt_api`||c.format===`transformers_js`){if(t===`summarize`)return await xo(n.text,n);if(t===`write`)return await So(n.prompt,n);if(t===`rewrite`)return await Co(n.text,n);if(t===`proofread`)return await Eo(n.text,n);if(t===`detect-language`)return await wo(n.text);if(t===`translate`)return await To(n.text,{sourceLanguage:n.sourceLanguage||`auto`,targetLanguage:n.targetLanguage||`en`,...n});if(t===`semantic-embedder`)return await Do(n.text,n);throw Error(`Provider ${o} not found and no local fallback available`)}let l=await mc(c,o,e);if(c.requiresApiKey!==!1&&!l)throw Error(`Provider "${c.name||o}" requires an API key for task "${t}". Please provide an API key or configure tools backend.`);let u=e.model||c.defaultModel||`default`,d={...Zs(c,l),...e.headers||{}},f=cc(c,[{role:`user`,content:s}],[],{maxTokens:e.maxTokens||2048,model:u,system:`You are a specialized text task assistant. Fulfill the user request directly and accurately without conversational filler.`}),p=await fetch(c.baseUrl,{body:JSON.stringify(f),headers:d,method:`POST`});if(!p.ok){let e=await p.text();throw Error(`Active provider task API error ${p.status}: ${e}`)}let m=uc(c,await p.json()).content?.filter(e=>e.type===`text`)?.map(e=>e.text)?.join(``)?.trim()||``;if(t===`detect-language`)try{let e=JSON.parse(m);return Array.isArray(e)?e:[e]}catch{return[{detectedLanguage:`en`,confidence:.8}]}return m}let gc=null;function _c(e){gc=e}async function vc(e,t,r,a){if(gc)return await gc(t,r,e,a);if(i()){let n=a?.invokeContext;return await hc({taskType:t,input:r,groupId:e,providerId:n?.provider,model:n?.model,apiKey:n?.apiKey,maxTokens:n?.maxTokens,headers:n?.providerHeaders,db:a?.db||n?.db})}let o=n();return A({type:`request-native-ai-task`,payload:{id:o,groupId:e,taskType:t,input:r}}),await new Promise((e,t)=>{globalThis.pendingNativeAiResolvers=globalThis.pendingNativeAiResolvers||{},globalThis.pendingNativeAiResolvers[o]={resolve:e,reject:t}})}async function yc(e,t,n){let r=String(e.text||``).trim();if(!r)return`Error: text is required for summarize_text`;try{return await vc(t,`summarize`,{text:r,type:e.type,format:e.format,length:e.length,preference:e.preference,context:e.context},n)}catch(e){return`Error summarizing text: ${e instanceof Error?e.message:String(e)}`}}async function bc(e,t,n){let r=String(e.prompt||``).trim();if(!r)return`Error: prompt is required for write_text`;try{return await vc(t,`write`,{prompt:r,context:e.context},n)}catch(e){return`Error writing text: ${e instanceof Error?e.message:String(e)}`}}async function xc(e,t,n){let r=String(e.text||``).trim();if(!r)return`Error: text is required for rewrite_text`;try{return await vc(t,`rewrite`,{text:r,tone:e.tone,length:e.length,context:e.context},n)}catch(e){return`Error rewriting text: ${e instanceof Error?e.message:String(e)}`}}async function Sc(e,t,n){let r=String(e.text||``).trim();if(!r)return`Error: text is required for proofread_text`;try{return await vc(t,`proofread`,{text:r,context:e.context},n)}catch(e){return`Error proofreading text: ${e instanceof Error?e.message:String(e)}`}}async function Cc(e,t,n){let r=String(e.text||``).trim();if(!r)return`Error: text is required for detect_language`;try{let e=await vc(t,`detect-language`,{text:r},n);return typeof e==`string`?e:JSON.stringify(e,null,2)}catch(e){return`Error detecting language: ${e instanceof Error?e.message:String(e)}`}}async function wc(e,t,n){let r=String(e.text||``).trim(),i=String(e.sourceLanguage||``).trim(),a=String(e.targetLanguage||``).trim();if(!r||!i||!a)return`Error: text, sourceLanguage, and targetLanguage are required for translate_text`;try{return await vc(t,`translate`,{text:r,sourceLanguage:i,targetLanguage:a},n)}catch(e){return`Error translating text: ${e instanceof Error?e.message:String(e)}`}}async function Tc(e,t,n){let r=e.text;if(!r||Array.isArray(r)&&r.length===0)return`Error: text is required for embed_text`;try{let i=await vc(t,`semantic-embedder`,{text:r,taskType:e.taskType},n);return typeof i==`string`?i:JSON.stringify(i,null,2)}catch(e){return`Error generating embeddings: ${e instanceof Error?e.message:String(e)}`}}async function Ec(e,t={}){let{maxRetries:n=3,baseDelayMs:r=1e3,maxDelayMs:i=3e4,jitterFactor:a=.5,shouldRetry:o=()=>!0,onRetry:s,signal:c}=t,l;for(let t=0;t<=n;t++){if(c?.aborted)throw c.reason??new DOMException(`Aborted`,`AbortError`);try{return await e()}catch(e){if(l=e,e instanceof DOMException&&e.name===`AbortError`||e instanceof Error&&e.name===`AbortError`)throw e;if(t>=n||!o(e,t+1))break;let u=Ja(t,r,i,a);s&&s(t+1,n,u,e),await Ya(u,c)}}throw l}const Dc=new Set([408,429,500,502,503,504]);function Oc(e){return/network|ECONNRESET|ECONNREFUSED|ETIMEDOUT|fetch failed|EAI_AGAIN|EAI_NONAME|getaddrinfo/i.test(e.message)}function kc(e){if(e instanceof TypeError)return!0;if(typeof e?.status==`number`)return Dc.has(e.status);if(e instanceof Error){let t=e.message.match(/\b(4\d{2}|5\d{2})\b/);if(t)return Dc.has(Number(t[1]));if(Oc(e))return!0}return!1}function Ac(e){return e instanceof TypeError?!0:e&&typeof e.status==`number`?Dc.has(e.status):e instanceof Error&&Oc(e)}const jc=new Set([`create_task`,`update_task`,`delete_task`,`enable_task`,`disable_task`,`send_notification`,`create_room`,`invite_to_room`,`leave_room`]);function Mc(e){if(!Array.isArray(e))return null;let t=e.map(e=>typeof e==`string`?e:typeof e?.name==`string`?e.name:null).filter(Boolean);return new Set(t)}function Nc(e,t){let n=Mc(t);return n&&!n.has(e)?`Tool "${e}" is not allowed in the current context. Do not call it again. Use one of the available tools or ask for help.`:null}function Pc(e,t,n){return(t||n)&&e===`run_task`?`Tool "run_task" cannot be called from within a task execution to prevent infinite loops.`:null}function Fc(e,t){return t&&jc.has(e)?`Tool "${e}" is not allowed during scheduled task execution to prevent recursion.`:null}function Ic(e){return i()&&a.has(e)?`Tool "${e}" is not available in headless CLI mode. It requires a browser UI.`:null}function Lc(e,t={}){return Nc(e,t.allowedTools)||Pc(e,t.isScheduledTask,t.isTaskExecution)||Fc(e,t.isScheduledTask)||Ic(e)||null}async function Rc(e,t,n,r,i={},a){let o=await Te(e,r,t);if(!o)return`Unknown tool: ${t}`;let s=i.declarativeDepth||0;if(s>=8)return`Tool error (${t}): declarative tool nesting limit exceeded.`;if(o.execution.type===`tool`){let c=o.execution.name;return c?await a(e,c,o.execution.input?{...n,...o.execution.input}:n,r,{...i,declarativeDepth:s+1}):`Tool error (${t}): declarative tool target is missing.`}return o.execution.type===`bash`?await Pi(e,{command:o.execution.command,stdin:JSON.stringify(n)},r):await ts(e,{code:o.execution.code,data:JSON.stringify(n)})}let zc=null;async function Bc(){return zc||=import(`./chunk-BOigzz2U2.js`),zc}async function Vc(e,t,n,r){let i=await Bc();return await Sa(e,t,n,r,{configKeys:{GIT_CORS_PROXY:x.GIT_CORS_PROXY,GIT_PROXY_URL:x.GIT_PROXY_URL,GIT_AUTHOR_NAME:x.GIT_AUTHOR_NAME,GIT_AUTHOR_EMAIL:x.GIT_AUTHOR_EMAIL},getConfig:S,getGroupDir:c,getProxyUrl:i.getProxyUrl,getRemoteUrl:i.getRemoteUrl,gitAdd:i.gitAdd,gitBranch:i.gitBranch,gitCheckout:i.gitCheckout,gitClone:i.gitClone,gitCommit:i.gitCommit,gitConfig:i.gitConfig,gitDeleteBranch:i.gitDeleteBranch,gitDeleteRepo:i.gitDeleteRepo,gitDiff:i.gitDiff,gitFetch:i.gitFetch,gitInit:i.gitInit,gitListBranches:i.gitListBranches,gitListRepos:i.gitListRepos,gitListTags:i.gitListTags,gitLog:i.gitLog,gitMerge:i.gitMerge,gitPull:i.gitPull,gitPush:i.gitPush,gitReadFileAtRef:i.gitReadFileAtRef,gitRemote:i.gitRemote,gitReset:i.gitReset,gitShow:i.gitShow,gitStatus:i.gitStatus,gitTag:i.gitTag,gitUnstage:i.gitUnstage,readGroupFile:ke,resolveGitCredentials:Fn})}const N=new Map;N.set(`bash`,(e,t,n)=>Pi(e,t,n)),N.set(`read_file`,(e,t,n)=>Es(e,t,n)),N.set(`open_file`,(e,t,n)=>ws(e,t,n)),N.set(`attach_file_to_chat`,(e,t,n)=>ds(e,t,n)),N.set(`send_file`,(e,t,n)=>As(e,t,n)),N.set(`write_file`,(e,t,n)=>Ms(e,t,n)),N.set(`delete_file`,(e,t,n)=>ys(e,t,n)),N.set(`move_file`,(e,t,n)=>Cs(e,t,n)),N.set(`copy_file`,(e,t,n)=>gs(e,t,n)),N.set(`create_directory`,(e,t,n)=>_s(e,t,n)),N.set(`patch_file`,(e,t,n)=>Ts(e,t,n)),N.set(`list_files`,(e,t,n)=>xs(e,t,n)),N.set(`manage_tools`,(e,t,n)=>is(t,n)),N.set(`list_tool_profiles`,e=>rs(e)),N.set(`fetch_url`,(e,t,n)=>ga(e,t,n,{buildAuthHeaders:On,fetchImpl:fetch,fetchMaxResponse:ee,isRetryableFetchError:Ac,post:A,resolveGitCredentials:Fn,resolveServiceCredentials:wn,retryableStatusCodes:Dc,stripHtml:yr,uploadGroupFile:xe,withRetry:Ec})),N.set(`fetch_file`,(e,t,n)=>ma(e,t,n,{buildAuthHeaders:On,fetchImpl:fetch,isRetryableFetchError:Ac,post:A,resolveGitCredentials:Fn,resolveServiceCredentials:wn,retryableStatusCodes:Dc,uploadGroupFile:xe,withRetry:Ec,writeGroupFile:w})),N.set(`update_memory`,(e,t,n)=>js(e,t,n)),N.set(`create_task`,(e,t,n)=>Io(t,n)),N.set(`javascript`,(e,t)=>ts(e,t)),N.set(`activate_skill`,(e,t,n)=>Ls(e,t,n)),N.set(`list_tasks`,(e,t,n)=>Vo(e,n)),N.set(`update_task`,(e,t,n)=>Uo(e,t,n)),N.set(`enable_task`,(e,t,n)=>Bo(e,t,n)),N.set(`disable_task`,(e,t,n)=>zo(e,t,n)),N.set(`delete_task`,(e,t,n)=>Lo(t,n)),N.set(`run_task`,(e,t,n)=>Ho(e,t,n)),N.set(`clear_chat`,(e,t,n)=>Go(n)),N.set(`show_toast`,(e,t)=>cs(t)),N.set(`send_notification`,(e,t,n)=>ss(t,n)),N.set(`create_room`,(e,t)=>Ma(t)),N.set(`invite_to_room`,(e,t,n)=>Fa(t,n)),N.set(`leave_room`,(e,t,n)=>Ia(t,n)),N.set(`list_room_members`,(e,t,n)=>La(e,t,n)),N.set(`prompt_peer`,(e,t,n)=>Va(e,t,n)),N.set(`list_peers`,(e,t,n)=>Ha(e,t,n));const Hc=(e,t,n)=>aa(e,t,n);N.set(`manage_email`,Hc),N.set(`manage_integration`,Hc),N.set(`email_read_messages`,(e,t,n)=>Uc(e,`manage_email`,{...t,action:`read_messages`},n)),N.set(`integration_read_messages`,(e,t,n)=>Uc(e,`manage_email`,{...t,action:`read_messages`},n)),N.set(`email_send_message`,(e,t,n)=>Uc(e,`manage_email`,{...t,action:`send_message`},n)),N.set(`integration_send_message`,(e,t,n)=>Uc(e,`manage_email`,{...t,action:`send_message`},n)),N.set(`remote_mcp_list_tools`,(e,t,n)=>Aa(e,t,n,{callRemoteMcpTool:ur,listRemoteMcpTools:lr,McpReauthRequiredError:Zn,post:A})),N.set(`remote_mcp_call_tool`,(e,t,n)=>ja(e,t,n,{callRemoteMcpTool:ur,listRemoteMcpTools:lr,McpReauthRequiredError:Zn,post:A}));for(let e of[`git_clone`,`git_checkout`,`git_branch`,`git_status`,`git_add`,`git_log`,`git_diff`,`git_branches`,`git_list_repos`,`git_delete_repo`,`git_commit`,`git_pull`,`git_push`,`git_merge`,`git_reset`,`git_fetch`,`git_read_file_at_ref`,`git_show`,`git_delete_branch`,`git_init`,`git_tag`,`git_remote`,`git_config`,`git_unstage`])N.set(e,(t,n,r)=>Vc(t,e,n,r));N.set(`list_components`,()=>ns()),N.set(`render_component`,(e,t,n)=>os(t,n)),N.set(`spawn_subagent`,async(e,t,n,r)=>r?.invokeContext?await Fo(t,n,r.invokeContext):`Error: spawn_subagent requires an active agent invocation context. This tool cannot be called directly.`),N.set(`get_current_time`,(e,t)=>Ko(t)),N.set(`search_files`,(e,t,n)=>ks(e,t,n,{maxFileBytes:k.searchFilesMaxFileBytes,maxFilesVisited:k.searchFilesMaxFilesVisited,skipDirs:k.searchFilesSkipDirsSet})),N.set(`diff_files`,(e,t,n)=>bs(e,t,n)),N.set(`ask_user`,(e,t,n)=>Wo(t,n)),N.set(`web_search`,(e,t)=>ls(t)),N.set(`summarize_text`,(e,t,n,r)=>yc(t,n,{db:e,invokeContext:r?.invokeContext})),N.set(`write_text`,(e,t,n,r)=>bc(t,n,{db:e,invokeContext:r?.invokeContext})),N.set(`rewrite_text`,(e,t,n,r)=>xc(t,n,{db:e,invokeContext:r?.invokeContext})),N.set(`proofread_text`,(e,t,n,r)=>Sc(t,n,{db:e,invokeContext:r?.invokeContext})),N.set(`detect_language`,(e,t,n,r)=>Cc(t,n,{db:e,invokeContext:r?.invokeContext})),N.set(`translate_text`,(e,t,n,r)=>wc(t,n,{db:e,invokeContext:r?.invokeContext})),N.set(`embed_text`,(e,t,n,r)=>Tc(t,n,{db:e,invokeContext:r?.invokeContext}));async function Uc(e,t,n,r,i={}){try{let a=Lc(t,i);if(a)return a;let o=N.get(t);return o?await o(e,n,r,i):await Rc(e,t,n,r,i,Uc)}catch(e){return`Tool error (${t}): ${e instanceof Error?e.message:String(e)}`}}const Wc=840*1024*1024;var Gc=class{emitter;expectedTotalBytes;logEvents;suppressInitialZero;_hasEmitted=!1;hasStreamEvents=!1;urlBytesMap=new Map;maxProgressFraction=0;maxLoadedBytes=0;maxEffectiveTotal=0;lastReportedMessage=``;lastReportedFraction=null;constructor(e,t){this.emitter=e,this.expectedTotalBytes=t?.expectedTotalBytes===void 0?Wc:t.expectedTotalBytes,this.logEvents=t?.logEvents??!1,this.suppressInitialZero=t?.suppressInitialZero??!1}get hasEmitted(){return this._hasEmitted}markActive(){this._hasEmitted=!0}onStreamProgress(e,t,n,r=!1){if(!Number.isFinite(t)||t<0)return;this.hasStreamEvents=!0,this.urlBytesMap.set(e,{received:t,total:n,complete:r});let i=0,a=0,o=this.urlBytesMap.size>0;for(let e of this.urlBytesMap.values())i+=e.received,e.total!=null&&Number.isFinite(e.total)&&e.total>0&&(a+=e.total),e.complete||(o=!1);let s=this.maxEffectiveTotal,c=this.expectedTotalBytes>0?this.expectedTotalBytes:0,l=Math.max(a,c);this.maxEffectiveTotal=Math.max(this.maxEffectiveTotal,l);let u=this.maxEffectiveTotal;if(this.maxLoadedBytes=Math.max(this.maxLoadedBytes,i),u>0){let e=Math.min(1,Math.max(0,this.maxLoadedBytes/u)),t=o?e:Math.min(.99,e);u>s&&s>0?this.maxProgressFraction=t:this.maxProgressFraction=Math.max(this.maxProgressFraction,t);let n=`Downloading Prompt API model... (${(this.maxLoadedBytes/(1024*1024)).toFixed(1)} / ${(u/(1024*1024)).toFixed(1)} MB · ${Math.min(o?100:99,Math.round(this.maxProgressFraction*100))}%)`;this.emit(this.maxProgressFraction,n)}else{let e=`Downloading Prompt API model... (${(this.maxLoadedBytes/(1024*1024)).toFixed(1)} MB downloaded)`;this.emit(null,e)}}onProgressEvent(e){let t=Number(e?.loaded),n=Number(e?.total);if(this.logEvents&&console.log(`[PromptApiProgressAggregator] onProgressEvent:`,{loaded:t,total:n,type:e?.type}),!(!Number.isFinite(t)||t<0)&&!(this.hasStreamEvents&&t<=1)&&!(this.suppressInitialZero&&!this._hasEmitted&&t===0&&(!Number.isFinite(n)||n<=1))){if(Number.isFinite(n)&&n>1){let e=this.expectedTotalBytes>0?this.expectedTotalBytes:0,r=Math.max(n,e,this.maxEffectiveTotal);this.maxEffectiveTotal=r,this.maxLoadedBytes=Math.max(this.maxLoadedBytes,t);let i=Math.min(.99,this.maxLoadedBytes/r);this.maxProgressFraction=Math.max(this.maxProgressFraction,i);let a=(this.maxLoadedBytes/(1024*1024)).toFixed(1),o=(r/(1024*1024)).toFixed(1),s=Math.round(this.maxProgressFraction*100);this.emit(this.maxProgressFraction,`Downloading Prompt API model... (${a} / ${o} MB · ${s}%)`);return}if(t>=0&&t<=1){let e=Math.max(0,Math.min(1,t)),n=e>=1?.99:e;this.maxProgressFraction=Math.max(this.maxProgressFraction,n);let r=Math.max(this.maxEffectiveTotal,this.expectedTotalBytes);if(r>0){let e=(Math.round(this.maxProgressFraction*r)/(1024*1024)).toFixed(1),t=(r/(1024*1024)).toFixed(1),n=Math.round(this.maxProgressFraction*100);this.emit(this.maxProgressFraction,`Downloading Prompt API model... (${e} / ${t} MB · ${n}%)`)}else{let e=Math.round(this.maxProgressFraction*100);this.emit(this.maxProgressFraction,`Downloading Prompt API model... ${e}%`)}return}if(t>1){this.maxLoadedBytes=Math.max(this.maxLoadedBytes,t);let e=Math.max(this.maxEffectiveTotal,this.expectedTotalBytes);if(e>0){let t=Math.max(this.maxLoadedBytes,e),n=Math.min(.99,this.maxLoadedBytes/t);this.maxProgressFraction=Math.max(this.maxProgressFraction,n);let r=(this.maxLoadedBytes/(1024*1024)).toFixed(1),i=(t/(1024*1024)).toFixed(1),a=Math.round(this.maxProgressFraction*100);this.emit(this.maxProgressFraction,`Downloading Prompt API model... (${r} / ${i} MB · ${a}%)`)}else{let e=(this.maxLoadedBytes/(1024*1024)).toFixed(1);this.emit(null,`Downloading Prompt API model... (${e} MB downloaded)`)}return}}}onDone(){this.maxProgressFraction=1,this.emitter(`done`,1,`Prompt API model ready.`)}onError(e){let t=e instanceof Error?e.message:String(e);this.emitter(`error`,null,t)}emit(e,t){this._hasEmitted=!0,!(this.lastReportedMessage===t&&this.lastReportedFraction===e)&&(this.lastReportedMessage=t,this.lastReportedFraction=e,this.emitter(`running`,e,t))}},Kc=Object.defineProperty,qc=(e,t,n)=>t in e?Kc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Jc=(e,t,n)=>(qc(e,typeof t==`symbol`?t:t+``,n),n),P=Object.freeze({Text:`Text`,NumericLiteral:`NumericLiteral`,StringLiteral:`StringLiteral`,Identifier:`Identifier`,Equals:`Equals`,OpenParen:`OpenParen`,CloseParen:`CloseParen`,OpenStatement:`OpenStatement`,CloseStatement:`CloseStatement`,OpenExpression:`OpenExpression`,CloseExpression:`CloseExpression`,OpenSquareBracket:`OpenSquareBracket`,CloseSquareBracket:`CloseSquareBracket`,OpenCurlyBracket:`OpenCurlyBracket`,CloseCurlyBracket:`CloseCurlyBracket`,Comma:`Comma`,Dot:`Dot`,Colon:`Colon`,Pipe:`Pipe`,CallOperator:`CallOperator`,AdditiveBinaryOperator:`AdditiveBinaryOperator`,MultiplicativeBinaryOperator:`MultiplicativeBinaryOperator`,ExponentiationBinaryOperator:`ExponentiationBinaryOperator`,ComparisonBinaryOperator:`ComparisonBinaryOperator`,UnaryOperator:`UnaryOperator`,Comment:`Comment`}),F=class{constructor(e,t){this.value=e,this.type=t}};function Yc(e){return/\w/.test(e)}function Xc(e){return/[0-9]/.test(e)}function Zc(e){return/\s/.test(e)}var Qc=[[`{%`,P.OpenStatement],[`%}`,P.CloseStatement],[`{{`,P.OpenExpression],[`}}`,P.CloseExpression],[`(`,P.OpenParen],[`)`,P.CloseParen],[`{`,P.OpenCurlyBracket],[`}`,P.CloseCurlyBracket],[`[`,P.OpenSquareBracket],[`]`,P.CloseSquareBracket],[`,`,P.Comma],[`.`,P.Dot],[`:`,P.Colon],[`|`,P.Pipe],[`<=`,P.ComparisonBinaryOperator],[`>=`,P.ComparisonBinaryOperator],[`==`,P.ComparisonBinaryOperator],[`!=`,P.ComparisonBinaryOperator],[`<`,P.ComparisonBinaryOperator],[`>`,P.ComparisonBinaryOperator],[`+`,P.AdditiveBinaryOperator],[`-`,P.AdditiveBinaryOperator],[`~`,P.AdditiveBinaryOperator],[`**`,P.ExponentiationBinaryOperator],[`*`,P.MultiplicativeBinaryOperator],[`//`,P.MultiplicativeBinaryOperator],[`/`,P.MultiplicativeBinaryOperator],[`%`,P.MultiplicativeBinaryOperator],[`=`,P.Equals]],$c=new Map([[`n`,`
257
257
  `],[`t`,` `],[`r`,`\r`],[`b`,`\b`],[`f`,`\f`],[`v`,`\v`],[`'`,`'`],[`"`,`"`],[`\\`,`\\`]]);function el(e,t={}){return e.endsWith(`
258
258
  `)&&(e=e.slice(0,-1)),t.lstrip_blocks&&(e=e.replace(/^[ \t]*({[#%-])/gm,`$1`)),t.trim_blocks&&(e=e.replace(/([#%-]})\n/g,`$1`)),e.replace(/(\s*){%(-?)\s*(?:end)?generation\s*(-?)%}(\s*)/gs,(e,t,n,r,i)=>(n?``:t)+(r?``:i))}function tl(e,t={}){let n=[],r=el(e,t),i=0,a=0,o=e=>{let t=``;for(;e(r[i]);){if(r[i]===`\\`){if(++i,i>=r.length)throw SyntaxError(`Unexpected end of input`);let e=r[i++],n=$c.get(e);if(n===void 0)throw SyntaxError(`Unexpected escaped character: ${e}`);t+=n;continue}if(t+=r[i++],i>=r.length)throw SyntaxError(`Unexpected end of input`)}return t},s=()=>{let e=n.at(-1);e&&e.type===P.Text&&(e.value=e.value.trimEnd(),e.value===``&&n.pop())},c=()=>{for(;i<r.length&&Zc(r[i]);)++i};main:for(;i<r.length;){let e=n.at(-1)?.type;if(e===void 0||e===P.CloseStatement||e===P.CloseExpression||e===P.Comment){let e=``;for(;i<r.length&&!(r[i]===`{`&&(r[i+1]===`%`||r[i+1]===`{`||r[i+1]===`#`));)e+=r[i++];if(e.length>0){n.push(new F(e,P.Text));continue}}if(r[i]===`{`&&r[i+1]===`#`){i+=2;let e=r[i]===`-`;e&&++i;let t=``;for(;r[i]!==`#`||r[i+1]!==`}`;){if(i+2>=r.length)throw SyntaxError(`Missing end of comment tag`);t+=r[i++]}let a=t.endsWith(`-`);a&&(t=t.slice(0,-1)),e&&s(),n.push(new F(t,P.Comment)),i+=2,a&&c();continue}if(r.slice(i,i+3)===`{%-`){s(),n.push(new F(`{%`,P.OpenStatement)),i+=3;continue}if(r.slice(i,i+3)===`{{-`){s(),n.push(new F(`{{`,P.OpenExpression)),a=0,i+=3;continue}if(o(Zc),r.slice(i,i+3)===`-%}`){n.push(new F(`%}`,P.CloseStatement)),i+=3,c();continue}if(r.slice(i,i+3)===`-}}`){n.push(new F(`}}`,P.CloseExpression)),i+=3,c();continue}let t=r[i];if(t===`-`||t===`+`){let e=n.at(-1)?.type;if(e===P.Text||e===void 0)throw SyntaxError(`Unexpected character: ${t}`);switch(e){case P.Identifier:case P.NumericLiteral:case P.StringLiteral:case P.CloseParen:case P.CloseSquareBracket:break;default:{++i;let e=o(Xc);if(e.length>0&&r[i]===`.`&&Xc(r[i+1])){++i;let t=o(Xc);e=`${e}.${t}`}n.push(new F(`${t}${e}`,e.length>0?P.NumericLiteral:P.UnaryOperator));continue}}}for(let[e,t]of Qc)if(!(e===`}}`&&a>0)&&r.slice(i,i+e.length)===e){n.push(new F(e,t)),t===P.OpenExpression?a=0:t===P.OpenCurlyBracket?++a:t===P.CloseCurlyBracket&&--a,i+=e.length;continue main}if(t===`'`||t===`"`){++i;let e=o(e=>e!==t);n.push(new F(e,P.StringLiteral)),++i;continue}if(Xc(t)){let e=o(Xc);if(n.at(-1)?.type!==P.Dot&&r[i]===`.`&&Xc(r[i+1])){++i;let t=o(Xc);e=`${e}.${t}`}n.push(new F(e,P.NumericLiteral));continue}if(Yc(t)){let e=o(Yc);n.push(new F(e,P.Identifier));continue}throw SyntaxError(`Unexpected character: ${t}`)}return n}var I=class{type=`Statement`},nl=class extends I{constructor(e){super(),this.body=e}type=`Program`},rl=class extends I{constructor(e,t,n){super(),this.test=e,this.body=t,this.alternate=n}type=`If`},il=class extends I{constructor(e,t,n,r){super(),this.loopvar=e,this.iterable=t,this.body=n,this.defaultBlock=r}type=`For`},al=class extends I{type=`Break`},ol=class extends I{type=`Continue`},sl=class extends I{constructor(e,t,n){super(),this.assignee=e,this.value=t,this.body=n}type=`Set`},cl=class extends I{constructor(e,t,n){super(),this.name=e,this.args=t,this.body=n}type=`Macro`},ll=class extends I{constructor(e){super(),this.value=e}type=`Comment`},L=class extends I{type=`Expression`},ul=class extends L{constructor(e,t,n){super(),this.object=e,this.property=t,this.computed=n}type=`MemberExpression`},dl=class extends L{constructor(e,t){super(),this.callee=e,this.args=t}type=`CallExpression`},fl=class extends L{constructor(e){super(),this.value=e}type=`Identifier`},pl=class extends L{constructor(e){super(),this.value=e}type=`Literal`},ml=class extends pl{type=`IntegerLiteral`},hl=class extends pl{type=`FloatLiteral`},gl=class extends pl{type=`StringLiteral`},_l=class extends pl{type=`ArrayLiteral`},vl=class extends pl{type=`TupleLiteral`},yl=class extends pl{type=`ObjectLiteral`},bl=class extends L{constructor(e,t,n){super(),this.operator=e,this.left=t,this.right=n}type=`BinaryExpression`},xl=class extends L{constructor(e,t){super(),this.operand=e,this.filter=t}type=`FilterExpression`},Sl=class extends I{constructor(e,t){super(),this.filter=e,this.body=t}type=`FilterStatement`},Cl=class extends L{constructor(e,t){super(),this.lhs=e,this.test=t}type=`SelectExpression`},wl=class extends L{constructor(e,t,n){super(),this.operand=e,this.negate=t,this.test=n}type=`TestExpression`},Tl=class extends L{constructor(e,t){super(),this.operator=e,this.argument=t}type=`UnaryExpression`},El=class extends L{constructor(e=void 0,t=void 0,n=void 0){super(),this.start=e,this.stop=t,this.step=n}type=`SliceExpression`},Dl=class extends L{constructor(e,t){super(),this.key=e,this.value=t}type=`KeywordArgumentExpression`},Ol=class extends L{constructor(e){super(),this.argument=e}type=`SpreadExpression`},kl=class extends L{constructor(e){super(),this.argument=e}type=`KeywordSpreadExpression`},Al=class extends I{constructor(e,t,n){super(),this.call=e,this.callerArgs=t,this.body=n}type=`CallStatement`},jl=class extends L{constructor(e,t,n){super(),this.condition=e,this.trueExpr=t,this.falseExpr=n}type=`Ternary`};function Ml(e){let t=new nl([]),n=0;function r(t,r){let i=e[n++];if(!i||i.type!==t)throw Error(`Parser Error: ${r}. ${i.type} !== ${t}.`);return i}function i(e){if(!c(e))throw SyntaxError(`Expected ${e}`);++n}function a(){switch(e[n].type){case P.Comment:return new ll(e[n++].value);case P.Text:return l();case P.OpenStatement:return u();case P.OpenExpression:return d();default:throw SyntaxError(`Unexpected token type: ${e[n].type}`)}}function o(...t){return n+t.length<=e.length&&t.every((t,r)=>t===e[n+r].type)}function s(...t){return e[n]?.type===P.OpenStatement&&e[n+1]?.type===P.Identifier&&t.includes(e[n+1]?.value)}function c(...t){return n+t.length<=e.length&&t.every((t,r)=>e[n+r].type===`Identifier`&&t===e[n+r].value)}function l(){return new gl(r(P.Text,`Expected text token`).value)}function u(){if(r(P.OpenStatement,`Expected opening statement token`),e[n].type!==P.Identifier)throw SyntaxError(`Unknown statement, got ${e[n].type}`);let t=e[n].value,c;switch(t){case`set`:++n,c=f();break;case`if`:++n,c=p(),r(P.OpenStatement,`Expected {% token`),i(`endif`),r(P.CloseStatement,`Expected %} token`);break;case`macro`:++n,c=m(),r(P.OpenStatement,`Expected {% token`),i(`endmacro`),r(P.CloseStatement,`Expected %} token`);break;case`for`:++n,c=g(),r(P.OpenStatement,`Expected {% token`),i(`endfor`),r(P.CloseStatement,`Expected %} token`);break;case`call`:{++n;let e=null;o(P.OpenParen)&&(e=ie(`parameters`));let t=fe();if(t.type!==`Identifier`)throw SyntaxError(`Expected identifier following call statement`);let l=ie(`call`);r(P.CloseStatement,`Expected closing statement token`);let u=[];for(;!s(`endcall`);)u.push(a());r(P.OpenStatement,`Expected '{%'`),i(`endcall`),r(P.CloseStatement,`Expected closing statement token`),c=new Al(new dl(t,l),e,u);break}case`break`:++n,r(P.CloseStatement,`Expected closing statement token`),c=new al;break;case`continue`:++n,r(P.CloseStatement,`Expected closing statement token`),c=new ol;break;case`filter`:{++n;let e=fe();e instanceof fl&&o(P.OpenParen)&&(e=x(e)),r(P.CloseStatement,`Expected closing statement token`);let t=[];for(;!s(`endfilter`);)t.push(a());r(P.OpenStatement,`Expected '{%'`),i(`endfilter`),r(P.CloseStatement,`Expected '%}'`),c=new Sl(e,t);break}default:throw SyntaxError(`Unknown statement type: ${t}`)}return c}function d(){r(P.OpenExpression,`Expected opening expression token`);let e=_();return r(P.CloseExpression,`Expected closing expression token`),e}function f(){let e=h(),t=null,c=[];if(o(P.Equals))++n,t=h();else{for(r(P.CloseStatement,`Expected %} token`);!s(`endset`);)c.push(a());r(P.OpenStatement,`Expected {% token`),i(`endset`)}return r(P.CloseStatement,`Expected closing statement token`),new sl(e,t,c)}function p(){let e=_();r(P.CloseStatement,`Expected closing statement token`);let t=[],i=[];for(;!s(`elif`,`else`,`endif`);)t.push(a());if(s(`elif`)){++n,++n;let e=p();i.push(e)}else if(s(`else`))for(++n,++n,r(P.CloseStatement,`Expected closing statement token`);!s(`endif`);)i.push(a());return new rl(e,t,i)}function m(){let e=fe();if(e.type!==`Identifier`)throw SyntaxError(`Expected identifier following macro statement`);let t=ie(`parameters`);r(P.CloseStatement,`Expected closing statement token`);let n=[];for(;!s(`endmacro`);)n.push(a());return new cl(e,t,n)}function h(e=!1){let t=e?fe:_,r=[t()],i=o(P.Comma);for(;i&&(++n,r.push(t()),o(P.Comma)););return i?new vl(r):r[0]}function g(){let e=h(!0);if(!(e instanceof fl||e instanceof vl))throw SyntaxError(`Expected identifier/tuple for the loop variable, got ${e.type} instead`);if(!c(`in`))throw SyntaxError("Expected `in` keyword following loop variable");++n;let t=_();r(P.CloseStatement,`Expected closing statement token`);let i=[];for(;!s(`endfor`,`else`);)i.push(a());let o=[];if(s(`else`))for(++n,++n,r(P.CloseStatement,`Expected closing statement token`);!s(`endfor`);)o.push(a());return new il(e,t,i,o)}function _(){return v()}function v(){let e=y();if(c(`if`)){++n;let t=y();return c(`else`)?(++n,new jl(t,e,v())):new Cl(e,t)}return e}function y(){let t=ee();for(;c(`or`);){let r=e[n];++n;let i=ee();t=new bl(r,t,i)}return t}function ee(){let t=te();for(;c(`and`);){let r=e[n];++n;let i=te();t=new bl(r,t,i)}return t}function te(){let t;for(;c(`not`);){let r=e[n];++n,t=new Tl(r,te())}return t??ne()}function ne(){let t=b();for(;;){let r;if(c(`not`,`in`))r=new F(`not in`,P.Identifier),n+=2;else if(c(`in`))r=e[n++];else if(o(P.ComparisonBinaryOperator))r=e[n++];else break;let i=b();t=new bl(r,t,i)}return t}function b(){let t=ce();for(;o(P.AdditiveBinaryOperator);){let r=e[n];++n;let i=ce();t=new bl(r,t,i)}return t}function re(){let e=se(fe());return o(P.OpenParen)?x(e):e}function x(e){let t=new dl(e,ie(`call`));return t=se(t),o(P.OpenParen)&&(t=x(t)),t}function ie(e){r(P.OpenParen,`Expected opening parenthesis for arguments list`);let t=ae(e);return r(P.CloseParen,`Expected closing parenthesis for arguments list`),t}function ae(t){let r=[],i=new Set,a=!1,s=!1;for(;!o(P.CloseParen);){let c=o(P.ExponentiationBinaryOperator),l=o(P.MultiplicativeBinaryOperator)&&e[n].value===`*`;if(t===`parameters`&&(c||l))throw SyntaxError(`Argument unpacking is not allowed in parameter declarations`);if(c){if(++n,r.push(new kl(_())),o(P.Comma)&&++n,!o(P.CloseParen))throw SyntaxError("Expected closing parenthesis: `**` must be applied to the final argument");break}let u;if(l){if(s)throw SyntaxError("Only one `*` argument unpacking is allowed");s=!0,++n,u=new Ol(_())}else{if(u=_(),o(P.Equals)){if(++n,!(u instanceof fl))throw SyntaxError(t===`parameters`?`Expected identifier for parameter declaration`:`Expected identifier for keyword argument`);let e=_();u=new Dl(u,e)}if(t===`parameters`){if(!(u instanceof fl||u instanceof Dl))throw SyntaxError(`Expected identifier for parameter declaration`);let e=u instanceof fl?u.value:u.key.value;if(i.has(e))throw SyntaxError(`Duplicate parameter name: ${e}`);i.add(e)}if(u instanceof Dl)a=!0;else if(a)throw SyntaxError(t===`call`?`Positional arguments must come before keyword arguments`:`Non-default argument follows default argument`);else if(s)throw SyntaxError("Positional arguments must not follow `*` argument unpacking")}r.push(u),o(P.Comma)&&++n}return r}function oe(){let e=[],t=!1;for(;!o(P.CloseSquareBracket);)o(P.Colon)?(e.push(void 0),++n,t=!0):(e.push(_()),o(P.Colon)&&(++n,t=!0));if(e.length===0)throw SyntaxError(`Expected at least one argument for member/slice expression`);if(t){if(e.length>3)throw SyntaxError(`Expected 0-3 arguments for slice expression`);return new El(...e)}return e[0]}function se(t){for(;o(P.Dot)||o(P.OpenSquareBracket);){let i=e[n];++n;let a,o=i.type===P.OpenSquareBracket;if(o)a=oe(),r(P.CloseSquareBracket,`Expected closing square bracket`);else if(a=fe(),a.type!==`Identifier`&&a.type!==`IntegerLiteral`)throw SyntaxError(`Expected identifier or integer following dot operator`);t=new ul(t,a,o)}return t}function ce(){let t=le();for(;o(P.MultiplicativeBinaryOperator);){let r=e[n++],i=le();t=new bl(r,t,i)}return t}function le(){let t=ue();for(;o(P.ExponentiationBinaryOperator);){let r=e[n++],i=ue();t=new bl(r,t,i)}return t}function ue(){let e=de();for(;c(`is`);){++n;let t=c(`not`);t&&++n;let r=fe();if(!(r instanceof fl))throw SyntaxError(`Expected identifier for the test`);e=new wl(e,t,r)}return e}function de(){let e=S();for(;o(P.Pipe);){++n;let t=fe();if(!(t instanceof fl))throw SyntaxError(`Expected identifier for the filter`);o(P.OpenParen)&&(t=x(t)),e=new xl(e,t)}return e}function S(){let t=e[n];if(t&&(t.type===P.UnaryOperator||t.type===P.AdditiveBinaryOperator)&&(t.value===`-`||t.value===`+`)){let t=e[n++];return new Tl(t,S())}return re()}function fe(){let t=e[n++];switch(t.type){case P.NumericLiteral:{let e=t.value;return e.includes(`.`)?new hl(Number(e)):new ml(Number(e))}case P.StringLiteral:{let r=t.value;for(;o(P.StringLiteral);)r+=e[n++].value;return new gl(r)}case P.Identifier:return new fl(t.value);case P.OpenParen:{let e=h();return r(P.CloseParen,"Expected closing parenthesis, got ${tokens[current].type} instead."),e}case P.OpenSquareBracket:{let e=[];for(;!o(P.CloseSquareBracket);)e.push(_()),o(P.Comma)&&++n;return++n,new _l(e)}case P.OpenCurlyBracket:{let e=new Map;for(;!o(P.CloseCurlyBracket);){let t=_();r(P.Colon,`Expected colon between key and value in object literal`);let i=_();e.set(t,i),o(P.Comma)&&++n}return++n,new yl(e)}default:throw SyntaxError(`Unexpected token: ${t.type}`)}}for(;n<e.length;)t.body.push(a());return t}function Nl(e,t,n=1){if(t===void 0&&(t=e,e=0),n===0)throw Error(`range() step must not be zero`);let r=[];if(n>0)for(let i=e;i<t;i+=n)r.push(i);else for(let i=e;i>t;i+=n)r.push(i);return r}function Pl(e,t,n,r=1){let i=Math.sign(r);i>=0?(t=(t??=0)<0?Math.max(e.length+t,0):Math.min(t,e.length),n=(n??=e.length)<0?Math.max(e.length+n,0):Math.min(n,e.length)):(t=(t??=e.length-1)<0?Math.max(e.length+t,-1):Math.min(t,e.length-1),n=(n??=-1)<-1?Math.max(e.length+n,-1):Math.min(n,e.length-1));let a=[];for(let o=t;i*o<i*n;o+=r)a.push(e[o]);return a}function Fl(e){return e.replace(/\b\w/g,e=>e.toUpperCase())}function Il(e){return Ll(new Date,e)}function Ll(e,t){let n=new Intl.DateTimeFormat(void 0,{month:`long`}),r=new Intl.DateTimeFormat(void 0,{month:`short`}),i=e=>e<10?`0`+e:e.toString();return t.replace(/%[YmdbBHM%]/g,t=>{switch(t){case`%Y`:return e.getFullYear().toString();case`%m`:return i(e.getMonth()+1);case`%d`:return i(e.getDate());case`%b`:return r.format(e);case`%B`:return n.format(e);case`%H`:return i(e.getHours());case`%M`:return i(e.getMinutes());case`%%`:return`%`;default:return t}})}function Rl(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function zl(e,t,n,r){if(r===0)return e;let i=r==null||r<0?1/0:r,a=t.length===0?RegExp(`(?=)`,`gu`):new RegExp(Rl(t),`gu`);return e.replaceAll(a,e=>i>0?(--i,n):e)}var Bl=class extends Error{},Vl=class extends Error{},Hl=new Map,Ul=class{type=`RuntimeValue`;value;get builtins(){return Hl}constructor(e=void 0){this.value=e}__bool__(){return new V(!!this.value)}toString(){return String(this.value)}},R=class extends Ul{type=`IntegerValue`},z=class extends Ul{type=`FloatValue`;toString(){return Object.is(this.value,-0)?`-0.0`:this.value%1==0?this.value.toFixed(1):this.value.toString()}},B=class extends Ul{type=`StringValue`;_builtins;get builtins(){return this._builtins??=new Map([[`upper`,new W(()=>new B(this.value.toUpperCase()))],[`lower`,new W(()=>new B(this.value.toLowerCase()))],[`strip`,new W(()=>new B(this.value.trim()))],[`title`,new W(()=>new B(Fl(this.value)))],[`capitalize`,new W(()=>new B(this.value.charAt(0).toUpperCase()+this.value.slice(1)))],[`length`,new R(this.value.length)],[`rstrip`,new W(()=>new B(this.value.trimEnd()))],[`lstrip`,new W(()=>new B(this.value.trimStart()))],[`startswith`,new W(e=>{if(e.length===0)throw Error(`startswith() requires at least one argument`);let t=e[0];if(t instanceof B)return new V(this.value.startsWith(t.value));if(t instanceof U){for(let e of t.value){if(!(e instanceof B))throw Error(`startswith() tuple elements must be strings`);if(this.value.startsWith(e.value))return new V(!0)}return new V(!1)}throw Error(`startswith() argument must be a string or tuple of strings`)})],[`endswith`,new W(e=>{if(e.length===0)throw Error(`endswith() requires at least one argument`);let t=e[0];if(t instanceof B)return new V(this.value.endsWith(t.value));if(t instanceof U){for(let e of t.value){if(!(e instanceof B))throw Error(`endswith() tuple elements must be strings`);if(this.value.endsWith(e.value))return new V(!0)}return new V(!1)}throw Error(`endswith() argument must be a string or tuple of strings`)})],[`split`,new W(e=>{let t=e[0]??new G;if(!(t instanceof B||t instanceof G))throw Error(`sep argument must be a string or null`);let n=e[1]??new R(-1);if(!(n instanceof R))throw Error(`maxsplit argument must be a number`);let r=[];if(t instanceof G){let e=this.value.trimStart();for(let{0:t,index:i}of e.matchAll(/\S+/g)){if(n.value!==-1&&r.length>=n.value&&i!==void 0){r.push(t+e.slice(i+t.length));break}r.push(t)}}else{if(t.value===``)throw Error(`empty separator`);r=this.value.split(t.value),n.value!==-1&&r.length>n.value&&r.push(r.splice(n.value).join(t.value))}return new U(r.map(e=>new B(e)))})],[`replace`,new W(e=>{if(e.length<2)throw Error(`replace() requires at least two arguments`);let t=e[0],n=e[1];if(!(t instanceof B&&n instanceof B))throw Error(`replace() arguments must be strings`);let r;if(r=e.length>2?e[2].type===`KeywordArgumentsValue`?e[2].value.get(`count`)??new G:e[2]:new G,!(r instanceof R||r instanceof G))throw Error(`replace() count argument must be a number or null`);return new B(zl(this.value,t.value,n.value,r.value))})]])}},V=class extends Ul{type=`BooleanValue`},Wl=/[\x7f-\uffff]/g;function Gl(e){return e.replace(Wl,e=>`\\u`+e.charCodeAt(0).toString(16).padStart(4,`0`))}function Kl(e,t={},n=0,r=!0){let{indent:i=null,ensureAscii:a=!1,separators:o=null,sortKeys:s=!1}=t,c,l;switch(o?[c,l]=o:i?(c=`,`,l=`: `):(c=`, `,l=`: `),e.type){case`NullValue`:return`null`;case`UndefinedValue`:return r?`null`:`undefined`;case`IntegerValue`:case`FloatValue`:case`BooleanValue`:return JSON.stringify(e.value);case`StringValue`:{let t=JSON.stringify(e.value);return a&&(t=Gl(t)),t}case`ArrayValue`:case`NamespaceValue`:case`ObjectValue`:{let o=i?` `.repeat(i):``,u=`
259
259
  `+o.repeat(n),d=u+o;if(e.type===`ArrayValue`){let a=e.value.map(e=>Kl(e,t,n+1,r));return i?`[${d}${a.join(`${c}${d}`)}${u}]`:`[${a.join(c)}]`}else{let o=Array.from(e.value.entries());s&&(o=o.sort(([e],[t])=>e.localeCompare(t)));let f=o.map(([e,o])=>{let s=JSON.stringify(e);a&&(s=Gl(s));let c=`${s}${l}${Kl(o,t,n+1,r)}`;return i?`${d}${c}`:c});return i?`{${f.join(c)}${u}}`:`{${f.join(c)}}`}}default:throw Error(`Cannot convert to JSON: ${e.type}`)}}var H=class extends Ul{type=`ObjectValue`;_builtins;__bool__(){return new V(this.value.size>0)}get builtins(){return this._builtins??=new Map([[`get`,new W(([e,t])=>{if(!(e instanceof B))throw Error(`Object key must be a string: got ${e.type}`);return this.value.get(e.value)??t??new G})],[`items`,new W(()=>this.items())],[`keys`,new W(()=>this.keys())],[`values`,new W(()=>this.values())],[`dictsort`,new W(e=>{let t=new Map,n=e.filter(e=>e instanceof ql?(t=e.value,!1):!0),r=n.at(0)??t.get(`case_sensitive`)??new V(!1);if(!(r instanceof V))throw Error(`case_sensitive must be a boolean`);let i=n.at(1)??t.get(`by`)??new B(`key`);if(!(i instanceof B))throw Error(`by must be a string`);if(![`key`,`value`].includes(i.value))throw Error(`by must be either 'key' or 'value'`);let a=n.at(2)??t.get(`reverse`)??new V(!1);if(!(a instanceof V))throw Error(`reverse must be a boolean`);return new U(Array.from(this.value.entries()).map(([e,t])=>new U([new B(e),t])).sort((e,t)=>{let n=i.value===`key`?0:1,o=e.value[n],s=t.value[n],c=iu(o,s,r.value);return a.value?-c:c}))})]])}items(){return new U(Array.from(this.value.entries()).map(([e,t])=>new U([new B(e),t])))}keys(){return new U(Array.from(this.value.keys()).map(e=>new B(e)))}values(){return new U(Array.from(this.value.values()))}toString(){return Kl(this,{},0,!1)}},ql=class extends H{type=`KeywordArgumentsValue`},Jl=class extends Ul{type=`NamespaceValue`;toString(){return Kl(this,{},0,!1)}},U=class extends Ul{type=`ArrayValue`;_builtins;get builtins(){return this._builtins??=new Map([[`length`,new R(this.value.length)]])}__bool__(){return new V(this.value.length>0)}toString(){return Kl(this,{},0,!1)}},Yl=class extends U{type=`TupleValue`},W=class extends Ul{type=`FunctionValue`},G=class extends Ul{type=`NullValue`},K=class extends Ul{type=`UndefinedValue`};function Xl(e){let t;if(e instanceof U?t=e.value:e instanceof B&&(t=Array.from(e.value,e=>new B(e))),!t||t.length!==2)throw Error(`namespace expected an object or an iterable of [key, value] pairs`);let[n,r]=t;if(!(n instanceof B))throw Error(`namespace keys must be strings`);return[n,r]}var Zl=class{constructor(e){this.parent=e}variables=new Map([[`namespace`,new W(e=>{let t=e.slice(),n;if(t.at(-1)instanceof ql&&(n=t.pop()),t.length>1)throw Error(`namespace expected at most 1 argument, got ${t.length}`);let r=new Map;if(t.length===1){let e=t[0];if(e instanceof H)for(let[t,n]of e.value)r.set(t,n);else if(e instanceof U)for(let t of e.value){let[e,n]=Xl(t);r.set(e.value,n)}else throw Error(`'${e.type}' object is not iterable`)}if(n)for(let[e,t]of n.value)r.set(e,t);return new Jl(r)})]]);tests=Zl.TESTS;set(e,t){return this.declareVariable(e,lu(t))}declareVariable(e,t){if(this.variables.has(e))throw SyntaxError(`Variable already declared: ${e}`);return this.variables.set(e,t),t}setVariable(e,t){return this.variables.set(e,t),t}resolve(e){if(this.variables.has(e))return this;if(this.parent)return this.parent.resolve(e);throw Error(`Unknown variable: ${e}`)}lookupVariable(e){try{return this.resolve(e).variables.get(e)??new K}catch{return new K}}},Ql=Zl;Jc(Ql,`TESTS`,new Map([[`boolean`,e=>e.type===`BooleanValue`],[`callable`,e=>e instanceof W],[`odd`,e=>{if(!(e instanceof R))throw Error(`cannot odd on ${e.type}`);return e.value%2!=0}],[`even`,e=>{if(!(e instanceof R))throw Error(`cannot even on ${e.type}`);return e.value%2==0}],[`false`,e=>e.type===`BooleanValue`&&!e.value],[`true`,e=>e.type===`BooleanValue`&&e.value],[`none`,e=>e.type===`NullValue`],[`string`,e=>e.type===`StringValue`],[`number`,e=>e instanceof R||e instanceof z],[`integer`,e=>e instanceof R],[`iterable`,e=>e.type===`ArrayValue`||e.type===`StringValue`],[`mapping`,e=>e instanceof H],[`sequence`,e=>e instanceof U||e instanceof H||e instanceof B],[`lower`,e=>{let t=e.value;return e.type===`StringValue`&&t===t.toLowerCase()}],[`upper`,e=>{let t=e.value;return e.type===`StringValue`&&t===t.toUpperCase()}],[`none`,e=>e.type===`NullValue`],[`defined`,e=>e.type!==`UndefinedValue`],[`undefined`,e=>e.type===`UndefinedValue`],[`equalto`,(e,t)=>e.value===t.value],[`eq`,(e,t)=>e.value===t.value]]));function $l(e){e.set(`false`,!1),e.set(`true`,!0),e.set(`none`,null),e.set(`raise_exception`,e=>{throw Error(e)}),e.set(`range`,Nl),e.set(`strftime_now`,Il),e.set(`True`,!0),e.set(`False`,!1),e.set(`None`,null)}function eu(e){return e instanceof H||e instanceof Jl}function tu(e){return e instanceof R||e instanceof z||e instanceof V}function nu(e){return e instanceof V?Number(e.value):e.value}function ru(e,t){let n=t.split(`.`),r=e;for(let e of n)if(eu(r))r=r.value.get(e)??new K;else if(r instanceof U){let t=parseInt(e,10);if(!isNaN(t)&&t>=0&&t<r.value.length)r=r.value[t];else return new K}else return new K;return r}function iu(e,t,n=!1){if(e instanceof G&&t instanceof G)return 0;if(e instanceof G||t instanceof G)throw Error(`Cannot compare ${e.type} with ${t.type}`);if(e instanceof K&&t instanceof K)return 0;if(e instanceof K||t instanceof K)throw Error(`Cannot compare ${e.type} with ${t.type}`);if(tu(e)&&tu(t)){let n=nu(e),r=nu(t);return n<r?-1:+(n>r)}if(e.type!==t.type)throw Error(`Cannot compare different types: ${e.type} and ${t.type}`);switch(e.type){case`StringValue`:{let r=e.value,i=t.value;return n||(r=r.toLowerCase(),i=i.toLowerCase()),r<i?-1:+(r>i)}default:throw Error(`Cannot compare type: ${e.type}`)}}function au(e){if(e.type===`Identifier`)return{name:e.value};let t=e;return{name:t.key.value,defaultValue:t.value}}function ou(e){return e===`kwargs`||e===`varargs`}function su(e,t){let n=new Set,r=new Set,i=e=>{ou(e)&&n.add(e)},a=e=>{if(e.type===`Identifier`)i(e.value);else if(e.type===`TupleLiteral`)for(let t of e.value)a(t)},o=e=>{i(au(e).name)},s=e=>{for(let t of e){let e=au(t);e.defaultValue&&l(e.defaultValue)}},c=e=>{e.type===`CallExpression`&&l(e.args)},l=e=>{if(Array.isArray(e)){for(let t of e)l(t);return}if(e instanceof Map){for(let[t,n]of e)l(t),l(n);return}if(e instanceof I)switch(e.type){case`For`:{let t=e;if(a(t.loopvar),t.iterable.type===`SelectExpression`){let e=t.iterable;l(e.lhs),l(t.body),l(t.defaultBlock),l(e.test);return}l(t.iterable),l(t.body),l(t.defaultBlock);return}case`Set`:{let t=e;a(t.assignee),l(t.value),l(t.body);return}case`Macro`:{let t=e;for(let e of t.args)o(e);s(t.args),l(t.body);return}case`CallStatement`:{let t=e;l(t.call);for(let e of t.callerArgs??[])o(e);s(t.callerArgs??[]),l(t.body);return}case`FilterStatement`:{let t=e;l(t.body),c(t.filter);return}case`Identifier`:{let t=e.value;ou(t)&&!n.has(t)&&r.add(t);return}case`MemberExpression`:{let t=e;l(t.object),t.computed&&l(t.property);return}case`FilterExpression`:{let t=e;l(t.operand),c(t.filter);return}case`TestExpression`:l(e.operand);return;case`SelectExpression`:{let t=e;l(t.test),l(t.lhs);return}case`KeywordArgumentExpression`:l(e.value);return;default:for(let t of Object.values(e))l(t)}};for(let t of e)o(t);return l(t),r}var cu=class{global;constructor(e){this.global=e??new Ql}run(e){return this.evaluate(e,this.global)}evaluateBinaryExpression(e,t){let n=this.evaluate(e.left,t);switch(e.operator.value){case`and`:return n.__bool__().value?this.evaluate(e.right,t):n;case`or`:return n.__bool__().value?n:this.evaluate(e.right,t)}let r=this.evaluate(e.right,t);switch(e.operator.value){case`==`:return new V(n.value==r.value);case`!=`:return new V(n.value!=r.value)}if(n instanceof K||r instanceof K){if(r instanceof K&&[`in`,`not in`].includes(e.operator.value))return new V(e.operator.value===`not in`);throw Error(`Cannot perform operation ${e.operator.value} on undefined values`)}else if(n instanceof G||r instanceof G)throw Error(`Cannot perform operation on null values`);else if(e.operator.value===`~`)return new B(n.value.toString()+r.value.toString());else if(e.operator.value===`**`&&tu(n)&&tu(r)){let e=nu(n),t=nu(r);if(e===0&&t<0)throw Error(`0.0 cannot be raised to a negative power`);let i=e**t;if(!Number.isFinite(i))throw Error(`Exponentiation result is not a finite real number`);return n instanceof z||r instanceof z||t<0?new z(i):new R(i)}else if((n instanceof R||n instanceof z)&&(r instanceof R||r instanceof z)){let t=n.value,i=r.value;switch(e.operator.value){case`+`:case`-`:case`*`:{let a=e.operator.value===`+`?t+i:e.operator.value===`-`?t-i:t*i;return n instanceof z||r instanceof z?new z(a):new R(a)}case`/`:return new z(t/i);case`//`:{let e=Math.floor(t/i);return n instanceof z||r instanceof z?new z(e):new R(e)}case`%`:{let e=t%i;return n instanceof z||r instanceof z?new z(e):new R(e)}case`<`:return new V(t<i);case`>`:return new V(t>i);case`>=`:return new V(t>=i);case`<=`:return new V(t<=i)}}else if(n instanceof U&&r instanceof U)switch(e.operator.value){case`+`:return new U(n.value.concat(r.value))}else if(r instanceof U){let t=r.value.find(e=>e.value===n.value)!==void 0;switch(e.operator.value){case`in`:return new V(t);case`not in`:return new V(!t)}}if(n instanceof B||r instanceof B)switch(e.operator.value){case`+`:return new B(n.value.toString()+r.value.toString())}if(n instanceof B&&r instanceof B)switch(e.operator.value){case`in`:return new V(r.value.includes(n.value));case`not in`:return new V(!r.value.includes(n.value))}if(n instanceof B&&r instanceof H)switch(e.operator.value){case`in`:return new V(r.value.has(n.value));case`not in`:return new V(!r.value.has(n.value))}throw SyntaxError(`Unknown operator "${e.operator.value}" between ${n.type} and ${r.type}`)}evaluateArguments(e,t){let n=[],r=new Map,i=(e,t)=>{if(r.has(e))throw Error(`Got multiple values for keyword argument '${e}'`);r.set(e,t)};for(let r of e)if(r.type===`SpreadExpression`){let e=r,i=this.evaluate(e.argument,t);if(!(i instanceof U))throw Error(`Cannot unpack non-iterable type: ${i.type}`);for(let e of i.value)n.push(e)}else r.type!==`KeywordArgumentExpression`&&r.type!==`KeywordSpreadExpression`&&n.push(this.evaluate(r,t));for(let n of e)if(n.type===`KeywordArgumentExpression`){let e=n;i(e.key.value,this.evaluate(e.value,t))}else if(n.type===`KeywordSpreadExpression`){let e=n,r=this.evaluate(e.argument,t);if(!(r instanceof H))throw Error(`Argument after ** must be a mapping, not ${r.type}`);for(let[e,t]of r.value)i(e,t)}return[n,r]}applyFilter(e,t,n){if(t.type===`Identifier`){let r=t;if(r.value===`safe`)return e;if(r.value===`tojson`)return new B(Kl(e,{}));if(e instanceof U)switch(r.value){case`list`:return e;case`first`:return e.value[0];case`last`:return e.value[e.value.length-1];case`length`:return new R(e.value.length);case`reverse`:return new U(e.value.slice().reverse());case`sort`:return new U(e.value.slice().sort((e,t)=>iu(e,t,!1)));case`join`:return new B(e.value.map(e=>e.value).join(``));case`string`:return new B(Kl(e,{},0,!1));case`unique`:{let t=new Set,n=[];for(let r of e.value)t.has(r.value)||(t.add(r.value),n.push(r));return new U(n)}default:throw Error(`Unknown ArrayValue filter: ${r.value}`)}else if(e instanceof B)switch(r.value){case`length`:case`upper`:case`lower`:case`title`:case`capitalize`:{let t=e.builtins.get(r.value);if(t instanceof W)return t.value([],n);if(t instanceof R)return t;throw Error(`Unknown StringValue filter: ${r.value}`)}case`trim`:return new B(e.value.trim());case`indent`:return new B(e.value.split(`
@@ -0,0 +1 @@
1
+ import{t as e}from"./chunk-DHJCGRuG2.js";export{e as fetchDiscoveryManifest};
@@ -1,3 +1,3 @@
1
- import{a as e,n as t,o as n,r}from"./chunk-DHi40kQk.js";import{o as i}from"./chunk-CmEfzm-_.js";import a from"node:fs";import o from"node:path";import s from"process";import{Buffer as c}from"buffer";import l from"node:http";import{tmpdir as u}from"node:os";function d(e){return i(e,{replacement:`-`,fallback:`attachment`,stripLeadingDots:!0,collapseReplacement:!0,stripControlChars:!0})}function f(e={}){let t=e.agent!==!1,n;if(e.workspace)n=o.resolve(e.workspace);else{let e=o.join(u(),`shadow-claw`);a.mkdirSync(e,{recursive:!0}),n=a.mkdtempSync(o.join(e,`workspace-`))}let r=e.transfersDir||o.join(n,`transfers`),i={"send-message":async(n,r)=>{let i=n?.text??n?.prompt??n?.message;if(!i||typeof i!=`string`||!i.trim())throw Error(`Missing text or prompt parameter`);let a=r?.remotePeerId||`remote`,o=n.groupId||`peer:${a}`;if(!t)return e.verbose&&console.log(`[webrtc-listen] Message received from ${a} (agent disabled): "${i.trim()}"`),{success:!0,queued:!0,groupId:o,text:`Message received (agent disabled)`};e.verbose&&console.log(`[webrtc-listen] Prompt from ${a}: "${i.length>80?i.slice(0,77)+`...`:i}"`);let s=await(e.runAgent||(async(e,t)=>{let{runAgentRun:n}=await import(`./chunk-BsxNqqer.js`);return n(e,t)}))(i.trim(),{workspace:e.workspace,cacheDir:e.cacheDir,model:e.model,provider:e.provider,apiKey:e.apiKey,systemPrompt:e.systemPrompt,systemPromptFile:e.systemPromptFile,tools:e.tools,allowInternet:e.allowInternet,group:o,quiet:!e.verbose,stream:!1});if(!s?.success)throw Error(s?.error||`Agent execution failed`);return{success:!0,reply:s.response,text:s.response,model:s.model,provider:s.provider,groupId:o}},prompt:async(e,t)=>i[`send-message`](e,t),"send-file":async(n,i)=>{let{fileName:s,data:l,prompt:u,groupId:f}=n||{};if(!s||typeof s!=`string`||!l)throw Error(`Missing fileName or data in send-file args`);let p=d(s);await a.promises.mkdir(r,{recursive:!0});let m=o.join(r,p),h=c.isBuffer(l)?l:c.from(l,`base64`);await a.promises.writeFile(m,h);let g=i?.remotePeerId||`remote`,_=f||`peer:${g}`;e.verbose&&console.log(`[webrtc-listen] Saved file "${p}" (${h.length} bytes) to ${m}`);let v;if(u&&typeof u==`string`&&u.trim()&&t){let t=await(e.runAgent||(async(e,t)=>{let{runAgentRun:n}=await import(`./chunk-BsxNqqer.js`);return n(e,t)}))(`[Attached file: ${p} (${h.length} bytes) saved at ${m}]\n\n${u.trim()}`,{workspace:e.workspace,cacheDir:e.cacheDir,model:e.model,provider:e.provider,apiKey:e.apiKey,systemPrompt:e.systemPrompt,systemPromptFile:e.systemPromptFile,tools:e.tools,allowInternet:e.allowInternet,group:_,quiet:!e.verbose,stream:!1});t?.success&&(v=t.response)}return{success:!0,fileName:p,path:m,size:h.length,reply:v,text:v}},"transfer-file":async(e,t)=>i[`send-file`](e,t),"list-tools":async()=>{try{let{TOOL_DEFINITIONS:e}=await import(`./chunk-C0xoMqcL2.js`);return{tools:e.map(e=>e.name)}}catch{return{tools:[]}}},ping:async t=>({ok:!0,peerId:e.peerId||``,timestamp:Date.now()})};return i}function p(t,n){return new Promise((r,i)=>{let s=e(n);try{a.unlinkSync(s)}catch{}try{a.mkdirSync(o.dirname(s),{recursive:!0})}catch{}let c=l.createServer(async(e,n)=>{if(e.method===`GET`&&e.url===`/ping`){n.writeHead(200,{"Content-Type":`application/json`}),n.end(JSON.stringify({ok:!0,peerId:t.cliPeerId}));return}if(e.method===`GET`&&e.url===`/clients`){let e=Array.from(t._connections.keys()).map(e=>{let n=t._peerCards?.get(e);return{clientId:e,peerId:e,deviceLabel:n?.name||`Browser Peer (${e})`,capabilities:n?.capabilities||[`webrtc`,`peerjs`],version:n?.version||`1.0.0`,transport:`webrtc`,connectedAt:Date.now(),lastSeen:Date.now()}});n.writeHead(200,{"Content-Type":`application/json`}),n.end(JSON.stringify({ok:!0,clients:e}));return}if(e.method===`POST`&&e.url===`/command`){let r=``;e.on(`data`,e=>r+=e),e.on(`end`,async()=>{try{let{targetPeerId:e,action:i,args:a,timeoutMs:o}=JSON.parse(r);if(!e){n.writeHead(400,{"Content-Type":`application/json`}),n.end(JSON.stringify({error:`targetPeerId is required`}));return}let s=t._connections.get(e);if(!s){let r=Array.from(t._connections.keys());n.writeHead(503,{"Content-Type":`application/json`}),n.end(JSON.stringify({error:`No DataChannel open to peer "${e}". Make sure the browser has connected to this listener first.`+(r.length?` Connected peers: ${r.join(`, `)}`:` No peers are currently connected.`)}));return}let c=`${Date.now()}-${Math.random().toString(36).slice(2)}`,l={id:c,type:`command:execute`,payload:{commandId:c,action:i,args:a||{}}},u=await new Promise((e,n)=>{let r=setTimeout(()=>{t._pendingIpc.delete(c),n(Error(`Command "${i}" timed out after ${o||3e4}ms`))},o||3e4);t._pendingIpc.set(c,t=>{clearTimeout(r),e(t)});try{s.send(l)}catch(e){clearTimeout(r),t._pendingIpc.delete(c),n(e)}});n.writeHead(200,{"Content-Type":`application/json`}),n.end(JSON.stringify(u))}catch(e){n.writeHead(500,{"Content-Type":`application/json`}),n.end(JSON.stringify({error:e.message}))}});return}n.writeHead(404),n.end()});c.listen(s,()=>{console.log(`[webrtc-listen] IPC socket: ${s}`),r(c)}),c.on(`error`,i)})}async function m(e={}){let i=e.host||s.env.SHADOWCLAW_HOST||`127.0.0.1`,a=e.port?parseInt(String(e.port),10):parseInt(s.env.SHADOWCLAW_PORT||`8888`,10),o=e.path||`/`,c=!!(e.secure||e.https||[`1`,`true`,`yes`].includes((s.env.SHADOWCLAW_HTTPS||``).toLowerCase().trim())),l=!!(e.insecure===!1||[`0`,`false`,`no`].includes((s.env.SHADOWCLAW_TLS_REJECT_UNAUTHORIZED||``).toLowerCase().trim())),u=e.trustedPeer?Array.isArray(e.trustedPeer)?e.trustedPeer:[e.trustedPeer]:[],d=n(e.peerId,e.cacheDir);console.log(`WebRTC CLI Peer ID : ${d}`),console.log(`Signaling server : ${c?`wss`:`ws`}://${i}:${a}${o}`),c&&!l&&console.log(`TLS verification : disabled (self-signed cert allowed)`),u.length>0?console.log(`Trusted peers : ${u.join(`, `)}`):console.log(`Trusted peers : (any — add --trusted-peer <id> to restrict)`),console.log(``),console.log(`Add this CLI Peer ID as a trusted peer in the browser:`),console.log(` Settings → WebRTC/PeerJS → Trusted Peer IDs → "${d}"`),console.log(``);let m={...f({...e,peerId:d}),...e.handlers||{}},h=new t({host:i,port:a,path:o,secure:c,rejectUnauthorized:l,trustedPeerIds:u,peerId:e.peerId,cacheDir:e.cacheDir,renewPeerId:!!e.renewPeerId,verbose:!!e.verbose,handlers:m}),g=new Map;h._pendingIpc=g;let _=h._setupConnection.bind(h);h._setupConnection=function(e,t){_(e,t),e.on(`data`,e=>{let t=e;if(typeof e==`string`)try{t=JSON.parse(e)}catch{return}if(!(!t||typeof t!=`object`)&&t.type===`command:result`){let e=t.payload||{},n=g.get(e.commandId);n&&(g.delete(e.commandId),n(e))}})};let v=t=>{if(console.log(`
1
+ import{a as e,n as t,o as n,r}from"./chunk-DHi40kQk.js";import{o as i}from"./chunk-q7r4FosZ.js";import a from"node:fs";import o from"node:path";import s from"process";import{Buffer as c}from"buffer";import l from"node:http";import{tmpdir as u}from"node:os";function d(e){return i(e,{replacement:`-`,fallback:`attachment`,stripLeadingDots:!0,collapseReplacement:!0,stripControlChars:!0})}function f(e={}){let t=e.agent!==!1,n;if(e.workspace)n=o.resolve(e.workspace);else{let e=o.join(u(),`shadow-claw`);a.mkdirSync(e,{recursive:!0}),n=a.mkdtempSync(o.join(e,`workspace-`))}let r=e.transfersDir||o.join(n,`transfers`),i={"send-message":async(n,r)=>{let i=n?.text??n?.prompt??n?.message;if(!i||typeof i!=`string`||!i.trim())throw Error(`Missing text or prompt parameter`);let a=r?.remotePeerId||`remote`,o=n.groupId||`peer:${a}`;if(!t)return e.verbose&&console.log(`[webrtc-listen] Message received from ${a} (agent disabled): "${i.trim()}"`),{success:!0,queued:!0,groupId:o,text:`Message received (agent disabled)`};e.verbose&&console.log(`[webrtc-listen] Prompt from ${a}: "${i.length>80?i.slice(0,77)+`...`:i}"`);let s=await(e.runAgent||(async(e,t)=>{let{runAgentRun:n}=await import(`./chunk-Cj9wl0qx.js`);return n(e,t)}))(i.trim(),{workspace:e.workspace,cacheDir:e.cacheDir,model:e.model,provider:e.provider,apiKey:e.apiKey,systemPrompt:e.systemPrompt,systemPromptFile:e.systemPromptFile,tools:e.tools,allowInternet:e.allowInternet,group:o,quiet:!e.verbose,stream:!1});if(!s?.success)throw Error(s?.error||`Agent execution failed`);return{success:!0,reply:s.response,text:s.response,model:s.model,provider:s.provider,groupId:o}},prompt:async(e,t)=>i[`send-message`](e,t),"send-file":async(n,i)=>{let{fileName:s,data:l,prompt:u,groupId:f}=n||{};if(!s||typeof s!=`string`||!l)throw Error(`Missing fileName or data in send-file args`);let p=d(s);await a.promises.mkdir(r,{recursive:!0});let m=o.join(r,p),h=c.isBuffer(l)?l:c.from(l,`base64`);await a.promises.writeFile(m,h);let g=i?.remotePeerId||`remote`,_=f||`peer:${g}`;e.verbose&&console.log(`[webrtc-listen] Saved file "${p}" (${h.length} bytes) to ${m}`);let v;if(u&&typeof u==`string`&&u.trim()&&t){let t=await(e.runAgent||(async(e,t)=>{let{runAgentRun:n}=await import(`./chunk-Cj9wl0qx.js`);return n(e,t)}))(`[Attached file: ${p} (${h.length} bytes) saved at ${m}]\n\n${u.trim()}`,{workspace:e.workspace,cacheDir:e.cacheDir,model:e.model,provider:e.provider,apiKey:e.apiKey,systemPrompt:e.systemPrompt,systemPromptFile:e.systemPromptFile,tools:e.tools,allowInternet:e.allowInternet,group:_,quiet:!e.verbose,stream:!1});t?.success&&(v=t.response)}return{success:!0,fileName:p,path:m,size:h.length,reply:v,text:v}},"transfer-file":async(e,t)=>i[`send-file`](e,t),"list-tools":async()=>{try{let{TOOL_DEFINITIONS:e}=await import(`./chunk-C0xoMqcL2.js`);return{tools:e.map(e=>e.name)}}catch{return{tools:[]}}},ping:async t=>({ok:!0,peerId:e.peerId||``,timestamp:Date.now()})};return i}function p(t,n){return new Promise((r,i)=>{let s=e(n);try{a.unlinkSync(s)}catch{}try{a.mkdirSync(o.dirname(s),{recursive:!0})}catch{}let c=l.createServer(async(e,n)=>{if(e.method===`GET`&&e.url===`/ping`){n.writeHead(200,{"Content-Type":`application/json`}),n.end(JSON.stringify({ok:!0,peerId:t.cliPeerId}));return}if(e.method===`GET`&&e.url===`/clients`){let e=Array.from(t._connections.keys()).map(e=>{let n=t._peerCards?.get(e);return{clientId:e,peerId:e,deviceLabel:n?.name||`Browser Peer (${e})`,capabilities:n?.capabilities||[`webrtc`,`peerjs`],version:n?.version||`1.0.0`,transport:`webrtc`,connectedAt:Date.now(),lastSeen:Date.now()}});n.writeHead(200,{"Content-Type":`application/json`}),n.end(JSON.stringify({ok:!0,clients:e}));return}if(e.method===`POST`&&e.url===`/command`){let r=``;e.on(`data`,e=>r+=e),e.on(`end`,async()=>{try{let{targetPeerId:e,action:i,args:a,timeoutMs:o}=JSON.parse(r);if(!e){n.writeHead(400,{"Content-Type":`application/json`}),n.end(JSON.stringify({error:`targetPeerId is required`}));return}let s=t._connections.get(e);if(!s){let r=Array.from(t._connections.keys());n.writeHead(503,{"Content-Type":`application/json`}),n.end(JSON.stringify({error:`No DataChannel open to peer "${e}". Make sure the browser has connected to this listener first.`+(r.length?` Connected peers: ${r.join(`, `)}`:` No peers are currently connected.`)}));return}let c=`${Date.now()}-${Math.random().toString(36).slice(2)}`,l={id:c,type:`command:execute`,payload:{commandId:c,action:i,args:a||{}}},u=await new Promise((e,n)=>{let r=setTimeout(()=>{t._pendingIpc.delete(c),n(Error(`Command "${i}" timed out after ${o||3e4}ms`))},o||3e4);t._pendingIpc.set(c,t=>{clearTimeout(r),e(t)});try{s.send(l)}catch(e){clearTimeout(r),t._pendingIpc.delete(c),n(e)}});n.writeHead(200,{"Content-Type":`application/json`}),n.end(JSON.stringify(u))}catch(e){n.writeHead(500,{"Content-Type":`application/json`}),n.end(JSON.stringify({error:e.message}))}});return}n.writeHead(404),n.end()});c.listen(s,()=>{console.log(`[webrtc-listen] IPC socket: ${s}`),r(c)}),c.on(`error`,i)})}async function m(e={}){let i=e.host||s.env.SHADOWCLAW_HOST||`127.0.0.1`,a=e.port?parseInt(String(e.port),10):parseInt(s.env.SHADOWCLAW_PORT||`8888`,10),o=e.path||`/`,c=!!(e.secure||e.https||[`1`,`true`,`yes`].includes((s.env.SHADOWCLAW_HTTPS||``).toLowerCase().trim())),l=!!(e.insecure===!1||[`0`,`false`,`no`].includes((s.env.SHADOWCLAW_TLS_REJECT_UNAUTHORIZED||``).toLowerCase().trim())),u=e.trustedPeer?Array.isArray(e.trustedPeer)?e.trustedPeer:[e.trustedPeer]:[],d=n(e.peerId,e.cacheDir);console.log(`WebRTC CLI Peer ID : ${d}`),console.log(`Signaling server : ${c?`wss`:`ws`}://${i}:${a}${o}`),c&&!l&&console.log(`TLS verification : disabled (self-signed cert allowed)`),u.length>0?console.log(`Trusted peers : ${u.join(`, `)}`):console.log(`Trusted peers : (any — add --trusted-peer <id> to restrict)`),console.log(``),console.log(`Add this CLI Peer ID as a trusted peer in the browser:`),console.log(` Settings → WebRTC/PeerJS → Trusted Peer IDs → "${d}"`),console.log(``);let m={...f({...e,peerId:d}),...e.handlers||{}},h=new t({host:i,port:a,path:o,secure:c,rejectUnauthorized:l,trustedPeerIds:u,peerId:e.peerId,cacheDir:e.cacheDir,renewPeerId:!!e.renewPeerId,verbose:!!e.verbose,handlers:m}),g=new Map;h._pendingIpc=g;let _=h._setupConnection.bind(h);h._setupConnection=function(e,t){_(e,t),e.on(`data`,e=>{let t=e;if(typeof e==`string`)try{t=JSON.parse(e)}catch{return}if(!(!t||typeof t!=`object`)&&t.type===`command:result`){let e=t.payload||{},n=g.get(e.commandId);n&&(g.delete(e.commandId),n(e))}})};let v=t=>{if(console.log(`
2
2
  [webrtc-listen] Shutting down…`),r(e.cacheDir),t)try{t.close()}catch{}h.close(),s.exit(0)};try{await h.start();let t=await p(h,e.cacheDir);s.on(`SIGINT`,()=>v(t)),s.on(`SIGTERM`,()=>v(t)),console.log(`[webrtc-listen] Ready. Run commands with:
3
3
  node bin/cli.mjs send --transport webrtc --client <browser-peer-id> "message"`),await new Promise(()=>{})}catch(t){r(e.cacheDir),console.error(`Error starting WebRTC listener: ${t.message}`),s.exitCode=1}}export{m as n,p as r,f as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./chunk-8CrZyP1b2.js";export{e as fetchDiscoveryManifest};
@@ -0,0 +1 @@
1
+ const e=new class{loading=!1;models=new Map;getModelInfo(e){if(!e||typeof e!=`string`)return null;let t=e.toLowerCase().trim(),n=this.models.get(t);if(n)return n;if(t.includes(`/`)){let e=t.split(`/`).pop();if(e&&this.models.has(e))return this.models.get(e)}else for(let[e,n]of this.models.entries())if(e.endsWith(`/${t}`))return n;if(t.includes(`:`)){let e=t.split(`:`)[0],n=this.getModelInfo(e);if(n)return n}return null}registerModelInfo(e,t){this.models.set(e.toLowerCase(),t)}clear(){this.models.clear()}async fetchModelInfo(e,t,n){if(e.modelsUrl){this.loading=!0;try{let r=new Headers;if(r.set(`Content-Type`,`application/json`),e.headers)for(let[t,n]of Object.entries(e.headers))r.set(t,n);if(n)for(let[e,t]of Object.entries(n))r.set(e,t);if(t&&e.apiKeyHeader){let n=e.apiKeyHeaderFormat;r.set(e.apiKeyHeader,n?n.replace(`{key}`,t):t)}let i=await fetch(e.modelsUrl,{headers:r});if(!i.ok)throw Error(`HTTP ${i.status} ${i.statusText}`);let a=await i.json(),o=Array.isArray(a.data)?a.data:Array.isArray(a.models)?a.models:[];for(let e of o){if(!e.id)continue;let t=e.context_length??e.context_window??0,n=e.max_completion_tokens||e.per_request_limits?.completion_tokens||e.top_provider?.max_completion_tokens||null,r=typeof e.supports_tools==`boolean`?e.supports_tools:typeof e.supportsTools==`boolean`?e.supportsTools:void 0,i=this.extractModalities(e,`input`),a=this.extractModalities(e,`output`),o=this.modalitiesInclude(i,`image`,`vision`),s=this.modalitiesInclude(i,`audio`,`voice`,`hearing`),c=this.modalitiesInclude(i,`video`),l=e.id===`openrouter/free`||this.supportedParametersInclude(e,`image`,`vision`,`audio`,`tool`,`structured`),u=this.extractReasoning(e),d=typeof e.supports_prompt_caching==`boolean`?e.supports_prompt_caching:typeof e.supportsPromptCaching==`boolean`?e.supportsPromptCaching:this.supportedParametersInclude(e,`cache_control`,`prompt_caching`)?!0:void 0;!t&&Array.isArray(e.providers)&&e.providers.length>0&&(t=e.providers[0]?.context_length||0),this.registerModelInfo(e.id,{contextWindow:t,maxOutput:n,...r!==void 0&&{supportsTools:r},...i.length>0&&{inputModalities:i},...a.length>0&&{outputModalities:a},...o!==void 0&&{supportsImageInput:o},...s!==void 0&&{supportsAudioInput:s},...c!==void 0&&{supportsVideoInput:c},...u&&{reasoning:u},...l&&{routesByRequestFeatures:l},...d!==void 0&&{supportsPromptCaching:d}})}o.length>0&&console.log(`[ModelRegistry] Registered ${o.length} models for provider "${e.id}"`)}catch(t){console.error(`[ModelRegistry] Error fetching models for ${e.id}:`,t)}finally{this.loading=!1}}}extractModalities(e,t){let n=t===`input`?e.input_modalities||e.inputModalities:e.output_modalities||e.outputModalities,r=e.architecture||{},i=t===`input`?r.input_modalities||r.inputModalities:r.output_modalities||r.outputModalities,a=typeof r.modality==`string`?r.modality:``,o=this.parseArchitectureModality(a,t),s=[...this.normalizeStringArray(n),...this.normalizeStringArray(i),...o];return Array.from(new Set(s))}extractReasoning(e){let t=e?.reasoning;if(!t||typeof t!=`object`)return;let n=this.normalizeStringArray(t.supported_efforts),r=typeof t.default_effort==`string`?t.default_effort.toLowerCase():void 0,i=typeof t.default_enabled==`boolean`?t.default_enabled:void 0,a=typeof t.supports_max_tokens==`boolean`?t.supports_max_tokens:void 0,o=typeof t.mandatory==`boolean`?t.mandatory:void 0;if(!(n.length===0&&r===void 0&&i===void 0&&a===void 0&&o===void 0))return{...n.length>0&&{supportedEfforts:n},...r!==void 0&&{defaultEffort:r},...i!==void 0&&{defaultEnabled:i},...a!==void 0&&{supportsMaxTokens:a},...o!==void 0&&{mandatory:o}}}modalitiesInclude(e,...t){if(e.length!==0)return t.some(t=>e.some(e=>e.includes(t)))}normalizeStringArray(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).map(e=>e.toLowerCase()):[]}parseArchitectureModality(e,t){if(!e)return[];let[n=``,r=``]=e.toLowerCase().split(`->`).map(e=>e.trim());return(t===`input`?n:r).split(/[+,/\s]+/).map(e=>e.trim()).filter(Boolean)}supportedParametersInclude(e,...t){let n=this.normalizeStringArray(e.supported_parameters||e.supportedParameters);return t.some(e=>n.some(t=>t.includes(e)))}};function t(e){return e.replace(/^\/+|\/+$/g,``)}function n(e){let n=t(e);return n.endsWith(`/index.html`)?n=n.slice(0,-11):n.endsWith(`index.html`)&&(n=n.slice(0,-10)),t(n)}function r(e){let n=t(e),r=n.split(`/`).filter(Boolean);if(r.length===0)return null;let i=r[0].toLowerCase();if(i===`pages`){if(r.length>=3){let e=r[1];return{page:`pages`,groupId:e===`main`?`br:main`:e.startsWith(`br-`)?`br:${e.slice(3)}`:e,path:r.slice(2).join(`/`)}}return{page:`pages`,groupId:`br:main`,path:r.slice(1).join(`/`)}}if(i===`files`){let e=r[1]||`main`;return{page:`files`,groupId:e===`main`?`br:main`:e.startsWith(`br-`)?`br:${e.slice(3)}`:e,path:r.slice(2).join(`/`)||void 0}}if(i===`chat`){let e=r[1]||`main`;return{page:`chat`,groupId:e===`main`?`br:main`:e.startsWith(`br-`)?`br:${e.slice(3)}`:e}}if(i===`tasks`){let e=r[1]||`main`;return{page:`tasks`,groupId:e===`main`?`br:main`:e.startsWith(`br-`)?`br:${e.slice(3)}`:e}}return i===`main`?{page:`pages`,groupId:`br:main`,path:r.slice(1).join(`/`)}:{page:`pages`,groupId:`br:main`,path:n}}function i(){if(typeof document<`u`){let e=document.getElementById(`shadow-claw-static-routing`);if(e&&e.textContent)try{let t=JSON.parse(e.textContent);if(t&&typeof t==`object`&&t.routes)return t}catch(e){console.warn(`Failed to parse embedded static routing manifest:`,e)}}return null}function a(e,t){let a=t||i();if(!a||!a.routes)return null;let o=n(e);for(let[e,t]of Object.entries(a.routes))if(!(!t||!t.prettyPath)&&n(t.prettyPath)===o)return r(e);return null}let o=null;const s=new Set([`chat`,`files`,`tasks`,`pages`,`settings`,`tools`,`channels`]);function c(){o=null}typeof globalThis<`u`&&(globalThis.__applyBasePathCacheReset=c);function l(){let e=typeof window<`u`?window:typeof self<`u`?self:globalThis;if(e&&e.__SHADOWCLAW_DEPLOY_ID__){let t=String(e.__SHADOWCLAW_DEPLOY_ID__).trim();if(t)return t.replace(/[^a-zA-Z0-9_-]/g,`-`)}let t=globalThis.process;if(t&&t.env&&t.env.SHADOWCLAW_DEPLOY_ID){let e=String(t.env.SHADOWCLAW_DEPLOY_ID).trim();if(e)return e.replace(/[^a-zA-Z0-9_-]/g,`-`)}let n=u();return!n||n===`/`?``:n.replace(/^\/+|\/+$/g,``).replace(/[^a-zA-Z0-9_-]/g,`-`)}function u(){if(o!==null)return o;if((typeof window>`u`||globalThis.WorkerGlobalScope!==void 0&&typeof self<`u`&&self instanceof globalThis.WorkerGlobalScope)&&typeof self<`u`&&self.location){let e=(self.location.pathname||`/`).split(`/`).filter(Boolean);if(e.length<=1)return o=`/`,o;let t=e[0].toLowerCase(),n=t===`service-worker.js`||t===`sw.js`||t===`manifest.json`||t===`sitemap.xml`||t===`favicon.ico`||t===`index.html`||t===`service-worker`||t===`assets`||t===`dist`||t===`public`;if(n&&e.length===2)return o=`/`,o;if(!n)return o=`/`+e[0]+`/`,o}let e=typeof window<`u`&&window.location?window.location:typeof self<`u`&&self.location?self.location:null;if(!e)return`/`;if(typeof document<`u`&&typeof document.querySelector==`function`){let t=document.querySelector(`base[href]`);if(t){let n=t.getAttribute(`href`);if(n)try{let t=new URL(n,e.origin).pathname;return t.endsWith(`/`)||(t+=`/`),o=t,o}catch{}}}let t=e.pathname||`/`;if(t===`/`)return o=`/`,o;let n=t.split(`/`).filter(Boolean),r=n.findIndex(e=>s.has(e.toLowerCase()));return r>=0?r===0?(o=`/`,o):(o=`/`+n.slice(0,r).join(`/`)+`/`,o):a(t)?(o=`/`,o):n.length===1&&!t.includes(`.`)?(o=`/`+n[0]+`/`,o):(o=`/`,o)}function d(e){let t=u();if(t===`/`)return e;let[n,...r]=e.split(/(?=[?#])/);if(n===t||n.startsWith(t))return e;let i=t+(n.startsWith(`/`)?n.slice(1):n);return i=i.replace(/\/{2,}/g,`/`),i+r.join(``)}const f=`ShadowClaw`;function p(e){let t=e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return RegExp(`(^|\\s)@${t}\\b`,`i`)}p(f);const m=8192,h=[{pattern:`claude-fable-5`,maxTokens:128e3},{pattern:`claude-sonnet-5`,maxTokens:128e3},{pattern:`claude-opus-5`,maxTokens:128e3},{pattern:`claude-opus-4-8`,maxTokens:128e3},{pattern:`claude-opus-4`,maxTokens:128e3},{pattern:`claude-sonnet-4`,maxTokens:64e3},{pattern:`claude-haiku-4`,maxTokens:64e3},{pattern:`claude-3-5`,maxTokens:8192},{pattern:`claude-3`,maxTokens:4096},{pattern:`gpt-5`,maxTokens:128e3},{pattern:`gpt-4o`,maxTokens:16384},{pattern:`gpt-4.1`,maxTokens:32768},{pattern:`gpt-4-turbo`,maxTokens:4096},{pattern:`gpt-4`,maxTokens:8192},{pattern:`gpt-3.5`,maxTokens:4096},{pattern:`qwen-2.5`,maxTokens:32768},{pattern:`Qwen3.5`,maxTokens:32768},{pattern:`qwen3.5`,maxTokens:32768},{pattern:`Qwen3`,maxTokens:32768},{pattern:`qwen3`,maxTokens:32768},{pattern:`gemma-4`,maxTokens:16384},{pattern:`gemini-nano`,maxTokens:4096},{pattern:`phi-mini`,maxTokens:9216},{pattern:`aion`,maxTokens:9216},{pattern:`gemma-3-1b-it-ONNX-GQA`,maxTokens:32768},{pattern:`gemma-3-1b-it-ONNX`,maxTokens:32768},{pattern:`gemma-3`,maxTokens:32768},{pattern:`Qwen3-0.6B-ONNX`,maxTokens:32768},{pattern:`Qwen3.5`,maxTokens:32768},{pattern:`Llama-3.2`,maxTokens:32768},{pattern:`SmolLM`,maxTokens:8192},{pattern:`DeepSeek-R1`,maxTokens:32768},{pattern:`Phi-4`,maxTokens:16384},{pattern:`Phi-3.5`,maxTokens:16384},{pattern:`LFM2`,maxTokens:16384},{pattern:`gpt-oss`,maxTokens:32768},{pattern:`browser-built-in`,maxTokens:4096},{pattern:`mesh`,maxTokens:32768},{pattern:`openrouter/free`,maxTokens:32768},{pattern:`qwen3:8b`,maxTokens:4096},{pattern:`llama3:8b`,maxTokens:8192}];function g(t){if(!t)return m;let n=e.getModelInfo(t);if(n){if(typeof n.maxOutput==`number`){let e=n.contextWindow?Math.max(8192,Math.floor(n.contextWindow/2)):32768;return Math.min(n.maxOutput,e)}if(n.contextWindow){let e;return e=n.contextWindow>=2e5?131072:n.contextWindow>=1e5?65536:32768,Math.min(e,Math.floor(n.contextWindow/2))}}for(let{pattern:e,maxTokens:n}of h)if(t.includes(e))return n;return m}const _=102400,v=1800,y=`wss://relay.widgetry.org/`;function b(){let e=l();return e?`shadowclaw-${e}`:`shadowclaw`}b();const x=`shadowclaw`,S=`br:main`,C=`server:main`,w={github:{providerId:`github`,name:`GitHub`,aliases:[`github`,`api.github.com`],modes:[`oauth`,`token`],defaultMode:`oauth`,serviceTypes:[`http_api`,`git_remote`],authTypes:[`token`,`oauth`],tokenAuth:{token:{headerName:`Authorization`,headerPrefix:`token `},oauth:{headerName:`Authorization`,headerPrefix:`Bearer `}},oauth:{authorizeUrl:`https://github.com/login/oauth/authorize`,tokenUrl:`https://github.com/login/oauth/access_token`,defaultScopes:[`repo`,`read:user`],usePkce:!0,clientAuthMethod:`request_body`,scopeSeparator:`space`}},gitlab:{providerId:`gitlab`,name:`GitLab`,aliases:[`gitlab`,`gitlab.com`],modes:[`oauth`,`token`],defaultMode:`oauth`,serviceTypes:[`http_api`,`git_remote`],authTypes:[`token`,`oauth`],tokenAuth:{token:{headerName:`PRIVATE-TOKEN`,headerPrefix:``},oauth:{headerName:`Authorization`,headerPrefix:`Bearer `}},tokenAuthByServiceType:{git_remote:{token:{headerName:`Authorization`,headerPrefix:`Bearer `},oauth:{headerName:`Authorization`,headerPrefix:`Bearer `}}},oauth:{authorizeUrl:`https://gitlab.com/oauth/authorize`,tokenUrl:`https://gitlab.com/oauth/token`,defaultScopes:[`read_api`,`read_user`],usePkce:!0,clientAuthMethod:`request_body`,scopeSeparator:`space`}},figma:{providerId:`figma`,name:`Figma`,aliases:[`figma`,`api.figma.com`],modes:[`oauth`,`token`],defaultMode:`oauth`,serviceTypes:[`http_api`],authTypes:[`token`,`oauth`],tokenAuth:{token:{headerName:`X-Figma-Token`,headerPrefix:``},oauth:{headerName:`Authorization`,headerPrefix:`Bearer `}},oauth:{authorizeUrl:`https://www.figma.com/oauth`,tokenUrl:`https://api.figma.com/v1/oauth/token`,refreshUrl:`https://api.figma.com/v1/oauth/refresh`,defaultScopes:[],usePkce:!0,clientAuthMethod:`basic_header`,scopeSeparator:`space`}},notion:{providerId:`notion`,name:`Notion`,aliases:[`notion`,`api.notion.com`,`notion.so`],modes:[`oauth`,`token`],defaultMode:`oauth`,serviceTypes:[`http_api`],authTypes:[`token`,`oauth`],tokenAuth:{token:{headerName:`Authorization`,headerPrefix:`Bearer `},oauth:{headerName:`Authorization`,headerPrefix:`Bearer `}},oauth:{authorizeUrl:`https://api.notion.com/v1/oauth/authorize`,tokenUrl:`https://api.notion.com/v1/oauth/token`,defaultScopes:[],usePkce:!0,clientAuthMethod:`basic_header`,scopeSeparator:`space`}},microsoft_graph:{providerId:`microsoft_graph`,name:`Microsoft Graph`,aliases:[`microsoft`,`graph.microsoft.com`,`microsoft_graph`],modes:[`oauth`,`token`],defaultMode:`oauth`,serviceTypes:[`http_api`],authTypes:[`token`,`oauth`],tokenAuth:{token:{headerName:`Authorization`,headerPrefix:`Bearer `},oauth:{headerName:`Authorization`,headerPrefix:`Bearer `}},oauth:{authorizeUrl:`https://login.microsoftonline.com/common/oauth2/v2.0/authorize`,tokenUrl:`https://login.microsoftonline.com/common/oauth2/v2.0/token`,defaultScopes:[`openid`,`profile`,`offline_access`,`User.Read`],usePkce:!0,clientAuthMethod:`request_body`,scopeSeparator:`space`}},yahoo_mail:{providerId:`yahoo_mail`,name:`Yahoo Mail`,aliases:[`yahoo`,`yahoo_mail`,`mail.yahoo.com`],modes:[`oauth`,`token`],defaultMode:`oauth`,serviceTypes:[`http_api`],authTypes:[`token`,`oauth`],tokenAuth:{token:{headerName:`Authorization`,headerPrefix:`Bearer `},oauth:{headerName:`Authorization`,headerPrefix:`Bearer `}},oauth:{authorizeUrl:`https://api.login.yahoo.com/oauth2/request_auth`,tokenUrl:`https://api.login.yahoo.com/oauth2/get_token`,defaultScopes:[`mail-r`,`mail-w`],usePkce:!0,clientAuthMethod:`request_body`,scopeSeparator:`space`}},google:{providerId:`google`,name:`Google`,aliases:[`google`,`googleapis.com`],modes:[`oauth`,`token`],defaultMode:`oauth`,serviceTypes:[`http_api`],authTypes:[`token`,`oauth`],tokenAuth:{token:{headerName:`Authorization`,headerPrefix:`Bearer `},oauth:{headerName:`Authorization`,headerPrefix:`Bearer `}},oauth:{authorizeUrl:`https://accounts.google.com/o/oauth2/v2/auth`,tokenUrl:`https://oauth2.googleapis.com/token`,defaultScopes:[`openid`,`profile`,`email`],usePkce:!0,clientAuthMethod:`request_body`,scopeSeparator:`space`}},atlassian:{providerId:`atlassian`,name:`Atlassian`,aliases:[`atlassian`,`api.atlassian.com`],modes:[`oauth`,`token`,`basic`],defaultMode:`basic`,serviceTypes:[`http_api`,`git_remote`],authTypes:[`token`,`oauth`,`basic_userpass`],tokenAuth:{token:{headerName:`Authorization`,headerPrefix:`Bearer `},oauth:{headerName:`Authorization`,headerPrefix:`Bearer `},basic:{headerName:`Authorization`,headerPrefix:`Basic `}},oauth:{authorizeUrl:`https://auth.atlassian.com/authorize`,tokenUrl:`https://auth.atlassian.com/oauth/token`,defaultScopes:[],usePkce:!0,clientAuthMethod:`request_body`,scopeSeparator:`space`}},slack:{providerId:`slack`,name:`Slack`,aliases:[`slack`,`slack.com`],modes:[`oauth`,`token`],defaultMode:`oauth`,serviceTypes:[`http_api`],authTypes:[`token`,`oauth`],tokenAuth:{token:{headerName:`Authorization`,headerPrefix:`Bearer `},oauth:{headerName:`Authorization`,headerPrefix:`Bearer `}},oauth:{authorizeUrl:`https://slack.com/oauth/v2/authorize`,tokenUrl:`https://slack.com/api/oauth.v2.access`,defaultScopes:[],usePkce:!1,clientAuthMethod:`request_body`,scopeSeparator:`comma`}},linear:{providerId:`linear`,name:`Linear`,aliases:[`linear`,`api.linear.app`,`linear.app`],modes:[`oauth`,`token`],defaultMode:`oauth`,serviceTypes:[`http_api`],authTypes:[`token`,`oauth`],tokenAuth:{token:{headerName:`Authorization`,headerPrefix:`Bearer `},oauth:{headerName:`Authorization`,headerPrefix:`Bearer `}},oauth:{authorizeUrl:`https://linear.app/oauth/authorize`,tokenUrl:`https://api.linear.app/oauth/token`,defaultScopes:[],usePkce:!0,clientAuthMethod:`request_body`,scopeSeparator:`space`}},azure_devops:{providerId:`azure_devops`,name:`Azure DevOps`,aliases:[`azure_devops`,`dev.azure.com`],modes:[`oauth`,`token`],defaultMode:`oauth`,serviceTypes:[`http_api`,`git_remote`],authTypes:[`token`,`oauth`,`basic_userpass`,`ssh_key`],tokenAuth:{token:{headerName:`Authorization`,headerPrefix:`Bearer `},oauth:{headerName:`Authorization`,headerPrefix:`Bearer `}},tokenAuthByServiceType:{git_remote:{token:{headerName:`Authorization`,headerPrefix:`Basic `},oauth:{headerName:`Authorization`,headerPrefix:`Basic `}}},oauth:{authorizeUrl:`https://app.vssps.visualstudio.com/oauth2/authorize`,tokenUrl:`https://app.vssps.visualstudio.com/oauth2/token`,defaultScopes:[`vso.code`,`vso.profile`,`offline_access`],usePkce:!1,clientAuthMethod:`request_body`,scopeSeparator:`space`}},custom_mcp:{providerId:`custom_mcp`,name:`Custom MCP`,aliases:[`custom_mcp`],modes:[`oauth`,`token`],defaultMode:`oauth`,serviceTypes:[`mcp_remote`,`webmcp_local`],authTypes:[`none`,`token`,`oauth`,`custom_header`,`ssh_key`],tokenAuth:{token:{headerName:`Authorization`,headerPrefix:`Bearer `},oauth:{headerName:`Authorization`,headerPrefix:`Bearer `}},oauth:{authorizeUrl:`https://example.com/oauth/authorize`,tokenUrl:`https://example.com/oauth/token`,defaultScopes:[],usePkce:!0,clientAuthMethod:`request_body`,scopeSeparator:`space`}}},T=Object.fromEntries(Object.values(w).filter(e=>!!e.oauth).map(e=>{let t=e.oauth;return[e.providerId,{id:e.providerId,name:e.name,authorizeUrl:t.authorizeUrl,tokenUrl:t.tokenUrl,redirectUri:t.redirectUri,defaultScopes:t.defaultScopes,usePkce:t.usePkce,clientAuthMethod:t.clientAuthMethod,scopeSeparator:t.scopeSeparator}]}));Object.fromEntries(Object.values(w).map(e=>[e.providerId,{providerId:e.providerId,modes:e.modes,defaultMode:e.defaultMode}]));const E={openrouter:{id:`openrouter`,name:`OpenRouter`,baseUrl:`https://openrouter.ai/api/v1/chat/completions`,format:`openai`,apiKeyHeader:`Authorization`,apiKeyHeaderFormat:`Bearer {key}`,headers:{"HTTP-Referer":`https://xt-ml.github.io/shadow-claw/`,"X-OpenRouter-Title":`ShadowClaw`},defaultModel:`openrouter/free`,modelsUrl:`https://openrouter.ai/api/v1/models`,requiresApiKey:!0,supportsStreaming:!0,reasoningParam:`reasoning`},huggingface:{id:`huggingface`,name:`HuggingFace`,baseUrl:`https://router.huggingface.co/v1/chat/completions`,format:`openai`,apiKeyHeader:`Authorization`,apiKeyHeaderFormat:`Bearer {key}`,headers:{},defaultModel:`meta-llama/Llama-3.1-8B-Instruct`,modelsUrl:`https://router.huggingface.co/v1/models`,requiresApiKey:!0,supportsStreaming:!0},bedrock_proxy:{id:`bedrock_proxy`,name:`AWS Bedrock (Local Proxy)`,baseUrl:`http://localhost:8888/bedrock-proxy/invoke`,format:`anthropic`,apiKeyHeader:`Authorization`,headers:{},defaultModel:`anthropic.claude-sonnet-4-6-v1:0`,modelsUrl:`http://localhost:8888/bedrock-proxy/models`,requiresApiKey:!1,supportsStreaming:!0,reasoningParam:`thinking`},gemini_proxy:{id:`gemini_proxy`,name:`Gemini (Local Proxy)`,baseUrl:`http://localhost:8888/gemini-proxy/chat/completions`,format:`openai`,apiKeyHeader:`x-goog-api-key`,headers:{},defaultModel:`gemini-2.0-flash`,modelsUrl:`http://localhost:8888/gemini-proxy/models`,requiresApiKey:!0,supportsStreaming:!0,reasoningParam:`thinkingConfig`},vertex_ai:{id:`vertex_ai`,name:`Vertex AI (Local Proxy)`,baseUrl:`http://localhost:8888/vertex-ai-proxy/chat/completions`,format:`openai`,apiKeyHeader:`x-vertex-project`,headers:{},defaultModel:`gemini-2.5-flash`,modelsUrl:`http://localhost:8888/vertex-ai-proxy/models`,requiresApiKey:!0,supportsStreaming:!0,reasoningParam:`thinkingConfig`},"mesh-llm":{id:`mesh-llm`,name:`Mesh LLM (Local Proxy)`,baseUrl:`http://localhost:8888/mesh-llm-proxy/chat/completions`,format:`mesh-llm`,apiKeyHeader:`Authorization`,headers:{},defaultModel:`mesh`,modelsUrl:`http://localhost:8888/mesh-llm-proxy/models`,requiresApiKey:!1,supportsStreaming:!0},ollama:{id:`ollama`,name:`Ollama (Local Proxy)`,baseUrl:`http://localhost:8888/ollama-proxy/chat/completions`,format:`openai`,apiKeyHeader:`Authorization`,headers:{},defaultModel:`qwen3:8b`,modelsUrl:`http://localhost:8888/ollama-proxy/models`,requiresApiKey:!1,supportsStreaming:!0},llamafile:{id:`llamafile`,name:`Llamafile (Local Proxy)`,baseUrl:`http://localhost:8888/llamafile-proxy/chat/completions`,format:`openai`,apiKeyHeader:`Authorization`,headers:{},defaultModel:`Qwen3.5-9B-Q5_K_S`,modelsUrl:`http://localhost:8888/llamafile-proxy/models`,requiresApiKey:!1,supportsStreaming:!0},transformers_js_local:{id:`transformers_js_local`,name:`Transformers.js (Local Proxy)`,baseUrl:`http://localhost:8888/transformers-js-proxy/chat/completions`,format:`openai`,apiKeyHeader:`Authorization`,headers:{},defaultModel:`onnx-community/Qwen3-0.6B-ONNX`,modelsUrl:`http://localhost:8888/transformers-js-proxy/models`,models:[`onnx-community/DeepSeek-R1-Distill-Qwen-1.5B-ONNX`,`onnx-community/gemma-3-1b-it-ONNX-GQA`,`onnx-community/gemma-3-1b-it-ONNX`,`onnx-community/gemma-4-E2B-it-ONNX`,`onnx-community/gemma-4-E2B-it-qat-mobile-ONNX`,`onnx-community/gemma-4-E4B-it-ONNX`,`onnx-community/gemma-4-E4B-it-qat-mobile-ONNX`,`onnx-community/gemma-4-E9B-it-ONNX`,`onnx-community/gemma-4-12B-it-ONNX`,`onnx-community/gemma-4-12B-it-qat-mobile-ONNX`,`onnx-community/gemma-4-E27B-it-ONNX`,`onnx-community/gpt-oss-20b-ONNX`,`onnx-community/LFM2-1.2B-ONNX`,`onnx-community/Llama-3.2-1B-Instruct-ONNX`,`onnx-community/Llama-3.2-3B-Instruct-ONNX`,`onnx-community/Phi-3.5-mini-instruct-onnx-web`,`onnx-community/Phi-4-mini-instruct-ONNX`,`onnx-community/Qwen3-0.6B-ONNX`,`onnx-community/Qwen3.5-0.8B-ONNX-OPT`,`onnx-community/Qwen3.5-4B-ONNX-OPT`,`HuggingFaceTB/SmolLM3-3B-ONNX`,`LiquidAI/LFM2.5-1.2B-Thinking-ONNX`,`webgpu/Qwen3-4B-ONNX`],requiresApiKey:!1,supportsStreaming:!0},transformers_js_browser:{id:`transformers_js_browser`,name:`Transformers.js (Browser)`,baseUrl:`local://transformers-js`,format:`transformers_js`,apiKeyHeader:`Authorization`,headers:{},defaultModel:`onnx-community/Qwen3-0.6B-ONNX`,modelsUrl:`https://huggingface.co/api/models?author=onnx-community`,models:[`onnx-community/Qwen3-0.6B-ONNX`,`onnx-community/gemma-3-1b-it-ONNX`,`onnx-community/gemma-3-1b-it-ONNX-GQA`,`onnx-community/gemma-4-E2B-it-ONNX`,`onnx-community/gemma-4-E4B-it-ONNX`,`onnx-community/gemma-4-E9B-it-ONNX`,`onnx-community/gemma-4-E27B-it-ONNX`,`onnx-community/gemma-4-12B-it-ONNX`,`onnx-community/gemma-4-E2B-it-qat-mobile-ONNX`,`onnx-community/gemma-4-E4B-it-qat-mobile-ONNX`,`onnx-community/gemma-4-12B-it-qat-mobile-ONNX`,`onnx-community/Phi-3.5-mini-instruct-onnx-web`,`onnx-community/Phi-4-mini-instruct-ONNX`,`onnx-community/Llama-3.2-1B-Instruct-ONNX`,`onnx-community/Llama-3.2-3B-Instruct-ONNX`,`webgpu/Qwen3-4B-ONNX`,`onnx-community/DeepSeek-R1-Distill-Qwen-1.5B-ONNX`,`onnx-community/gpt-oss-20b-ONNX`,`onnx-community/LFM2-1.2B-ONNX`,`LiquidAI/LFM2.5-1.2B-Thinking-ONNX`,`HuggingFaceTB/SmolLM3-3B-ONNX`,`onnx-community/Qwen3.5-0.8B-ONNX-OPT`,`onnx-community/Qwen3.5-4B-ONNX-OPT`],requiresApiKey:!1,supportsStreaming:!1},litert_lm_browser:{id:`litert_lm_browser`,name:`LiteRT-LM (Browser)`,baseUrl:`local://litert-lm`,format:`transformers_js`,apiKeyHeader:`Authorization`,headers:{},defaultModel:`litert-community/gemma-4-E2B-it-litert-lm`,models:[`litert-community/gemma-4-E2B-it-litert-lm`,`litert-community/gemma-4-E4B-it-litert-lm`],requiresApiKey:!1,supportsStreaming:!1},prompt_api:{id:`prompt_api`,name:`Prompt API (Browser)`,baseUrl:`builtin://language-model`,format:`prompt_api`,apiKeyHeader:`Authorization`,headers:{},defaultModel:`browser-built-in`,models:[`browser-built-in`],requiresApiKey:!1,supportsStreaming:!1}};function D(e){return E[e]||null}function O(){return E.prompt_api}function k(){return Object.keys(E)}function A(e){return`api_key:${e}`}function j(e){return w[e]||null}function M(e,t,n=`http_api`){let r=j(e);return r&&(r.tokenAuthByServiceType?.[n]?.[t]||r.tokenAuth[t])||null}const N={ACTIVE_TOOL_PROFILE:`active_tool_profile`,ACTIVITY_LOG_DISK_LOGGING_ENABLED:`activity_log_disk_logging_enabled`,ALLOWED_CUSTOM_ELEMENTS:`allowed_custom_elements`,ALLOWED_CUSTOM_ELEMENT_HOST_PATTERNS:`allowed_custom_element_host_patterns`,ALLOWED_IFRAME_HOST_PATTERNS:`allowed_iframe_host_patterns`,API_KEY:`api_key`,ASSISTANT_NAME:`assistant_name`,BEDROCK_AUTH_MODE:`bedrock_auth_mode`,BEDROCK_PROFILE_FALLBACK:`bedrock_profile_fallback`,BEDROCK_REGION_FALLBACK:`bedrock_region_fallback`,BUILTIN_AI_SUBAGENT_ROUTING:`builtin_ai_subagent_routing`,BUILTIN_AI_TOOLS_BACKEND:`builtin_ai_tools_backend`,CHANNEL_ENABLED_PREFIX:`channel_enabled:`,CHAT_INPUT_AREA_HEIGHT:`chat_input_area_height`,CHAT_SPLIT_VIEW_ENABLED:`chat_split_view_enabled`,CHAT_SPLIT_VIEW_HEIGHT:`chat_split_view_height`,COMPACTION_ENGINE_PREFERENCE:`compaction_engine_preference`,CONTEXT_COMPRESSION_ENABLED:`context_compression_enabled`,CONTROL_PLANE_CLIENT_ID:`control_plane_client_id`,CONTROL_PLANE_ENABLED:`control_plane_enabled`,CONTROL_PLANE_TRANSPORT:`control_plane_transport`,CONTROL_PLANE_URL:`control_plane_url`,CONVERSATIONS_HEIGHT:`conversations_height`,CUSTOM_TOOLS:`custom_tools`,DB_MIGRATED_FROM_LEGACY:`db_migrated_from_legacy`,DECLARATIVE_TOOLS_ENABLED:`declarative_tools_enabled`,DEFAULT_PINNED_PAGE:`default_pinned_page`,DIRECT_TOOL_COMMAND_POLICY:`direct_tool_command_policy`,ENABLED_TOOLS:`enabled_tools`,FILES_UPLOAD_APPEND_ULID:`files_upload_append_ulid`,GIT_ACCOUNTS:`git_accounts`,GIT_AUTHOR_EMAIL:`git_author_email`,GIT_AUTHOR_NAME:`git_author_name`,GIT_CORS_PROXY:`git_cors_proxy`,GIT_DEFAULT_ACCOUNT:`git_default_account`,GIT_PASSWORD:`git_password`,GIT_PROXY_URL:`git_proxy_url`,GIT_TOKEN:`git_token`,GIT_USERNAME:`git_username`,IMESSAGE_API_KEY:`imessage_api_key`,IMESSAGE_CHAT_IDS:`imessage_chat_ids`,IMESSAGE_SERVER_URL:`imessage_server_url`,INTEGRATION_CONNECTIONS:`integration_connections`,MARKDOWN_FRONTMATTER_CHAT:`markdown_frontmatter_chat`,MARKDOWN_FRONTMATTER_FILE_VIEWER:`markdown_frontmatter_file_viewer`,MARKDOWN_FRONTMATTER_PAGES:`markdown_frontmatter_pages`,MARKDOWN_FRONTMATTER_TASKS:`markdown_frontmatter_tasks`,LAST_ACTIVE_GROUP:`last_active_group`,LAST_ACTIVE_PAGE:`last_active_page`,LAST_SELECTED_PINNED_PAGE:`last_selected_pinned_page`,LLAMAFILE_HOST:`llamafile_host`,LLAMAFILE_MODE:`llamafile_mode`,LLAMAFILE_OFFLINE:`llamafile_offline`,LLAMAFILE_PORT:`llamafile_port`,MAIN_GROUP_INDEX_SUPPRESSED:`main_group_index_suppressed`,MAIN_GROUP_README_SUPPRESSED:`main_group_readme_suppressed`,MAX_ITERATIONS:`max_iterations`,MAX_TOKENS:`max_tokens`,MESH_LLM_HOST:`mesh_llm_host`,MODEL:`model`,OAUTH_PROVIDER_DEFINITIONS:`oauth_provider_definitions`,OPFS_MIGRATED_FROM_LEGACY:`opfs_migrated_from_legacy`,OVERRIDE_PRERENDER_SKELETON:`override_prerender_skeleton`,PAGES_AUTO_REFRESH_INTERVAL:`pages_auto_refresh_interval`,PAGES_LIST:`pages_list`,PASSPHRASE_SALT:`passphrase_salt`,PASSPHRASE_VERIFY:`passphrase_verify`,PROMPT_API_BACKEND:`prompt_api_backend`,PROMPT_API_DTYPE_STRATEGY:`prompt_api_dtype_strategy`,PROMPT_API_FALLBACK_MODEL:`prompt_api_fallback_model`,PROMPT_API_ONBOARDING_SEEN:`prompt_api_onboarding_seen`,PEERJS_MY_ALIAS:`peerjs_my_alias`,PEERJS_MY_PEER_ID:`peerjs_my_peer_id`,PEERJS_PEER_ALIASES:`peerjs_peer_aliases`,PEERJS_SERVER_HOST:`peerjs_server_host`,PEERJS_SERVER_PATH:`peerjs_server_path`,PEERJS_SERVER_PORT:`peerjs_server_port`,PEERJS_SERVER_SECURE:`peerjs_server_secure`,PEERJS_TRUSTED_PEER_IDS:`peerjs_trusted_peer_ids`,PROVIDER:`provider`,PROXY_URL:`proxy_url`,PUSH_PROXY_URL:`push_proxy_url`,RATE_LIMIT_AUTO_ADAPT:`rate_limit_auto_adapt`,RATE_LIMIT_CALLS_PER_MINUTE:`rate_limit_calls_per_minute`,REASONING_EFFORT:`reasoning_effort`,REMOTE_MCP_CONNECTIONS:`remote_mcp_connections`,SERVICE_ACCOUNTS:`service_accounts`,SERVICE_DEFAULT_ACCOUNT:`service_default_account`,SIDEBAR_CHAT_HIDDEN:`sidebar_chat_hidden`,SIDEBAR_DEFAULT_PAGE:`sidebar_default_page`,SIDEBAR_FILES_HIDDEN:`sidebar_files_hidden`,SIDEBAR_PAGES_HIDDEN:`sidebar_pages_hidden`,SIDEBAR_TASKS_HIDDEN:`sidebar_tasks_hidden`,SIDEBAR_WIDTH:`sidebar_width`,SITE_CONFIG_SEEDED:`site_config_seeded`,STATIC_MAIN_SITE_SEEDED:`static_main_site_seeded`,STORAGE_HANDLE:`storage_handle`,SUBSCRIBER_ID:`subscriber_id`,STREAMING_ENABLED:`streaming_enabled`,SUBAGENT_MAX_PARALLEL:`subagent_max_parallel`,SUBAGENT_WORKSPACE_MODE:`subagent_workspace_mode`,SUPPRESSED_PAGES_LIST:`suppressed_pages_list`,SYSTEM_PROMPT_OVERRIDE:`system_prompt_override`,TASK_SERVER_ENABLED:`task_server_enabled`,TASK_SERVER_URL:`task_server_url`,TASK_SYNC_OUTBOX:`task_sync_outbox`,TELEGRAM_BOT_TOKEN:`telegram_bot_token`,TELEGRAM_CHAT_IDS:`telegram_chat_ids`,TELEGRAM_USE_PROXY:`telegram_use_proxy`,TOOL_PROFILES:`tool_profiles`,TRANSFORMERS_JS_BACKEND:`transformers_js_backend`,TRANSFORMERS_JS_DTYPE_STRATEGY:`transformers_js_dtype_strategy`,TRIGGER_PATTERN:`trigger_pattern`,USE_PROXY:`use_proxy`,VAPID_SUBJECT:`vapid_subject`,VM_BASH_FULL_INTERNET_ACCESS:`vm_bash_full_internet_access`,VM_BASH_TIMEOUT_SEC:`vm_bash_timeout_sec`,VM_BOOT_HOST:`vm_boot_host`,VM_BOOT_MODE:`vm_boot_mode`,VM_NETWORK_RELAY_URL:`vm_network_relay_url`,WEBMCP_MODE:`webmcp_mode`,WEBMCP_TOOLS_ENABLED:`webmcp_tools_enabled`,WEB_SEARCH_PROXY_URL:`web_search_proxy_url`,WEB_SEARCH_URL:`web_search_url`,WEB_SEARCH_USE_PROXY:`web_search_use_proxy`,SEARCH_FILES_MAX_FILE_BYTES:`search_files_max_file_bytes`,SEARCH_FILES_MAX_FILES_VISITED:`search_files_max_files_visited`,SEARCH_FILES_SKIP_DIRS:`search_files_skip_dirs`},P=`localhost`,F=8888,I=`automatic`,L=`onnx-community/Qwen3-0.6B-ONNX`;export{d as C,M as S,e as T,O as _,F as a,D as b,L as c,y as d,_ as f,k as g,x as h,P as i,C as l,T as m,v as n,S as o,w as p,N as r,m as s,f as t,I as u,j as v,l as w,A as x,g as y};
@@ -0,0 +1 @@
1
+ import{r as e}from"./chunk-C9czddEh2.js";export{e as orchestratorStore};
@@ -0,0 +1 @@
1
+ import{n as e}from"./chunk-BOzn335y.js";export{e as runWebRtcListenCommand};
@@ -0,0 +1 @@
1
+ import{t as e}from"./chunk-BLMC1Bxv.js";export{e as getAgentCore};