hyperclaw 5.2.0 → 5.2.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 (487) hide show
  1. package/README.md +3 -3
  2. package/dist/a2ui-protocol-A2xow5Ch.js +75 -0
  3. package/dist/a2ui-protocol-dTomAnFE.js +75 -0
  4. package/dist/agents-routing-95_s2yea.js +6 -0
  5. package/dist/agents-routing-Bz3SstlK.js +398 -0
  6. package/dist/agents-routing-DHDK2axt.js +6 -0
  7. package/dist/agents-routing-DRMS8Ol-.js +6 -0
  8. package/dist/agents-routing-biXULPch.js +398 -0
  9. package/dist/agents-routing-iQmIOe3k.js +398 -0
  10. package/dist/api-key-validation-BeQ2MZAT.js +64 -0
  11. package/dist/api-key-validation-C2WQk1oM.js +64 -0
  12. package/dist/api-keys-guide-2cD5Rf-K.js +149 -0
  13. package/dist/api-keys-guide-BdT2lfX6.js +149 -0
  14. package/dist/api-keys-guide-BwCIj8qd.js +149 -0
  15. package/dist/audit-1Anq45mH.js +441 -0
  16. package/dist/audit-BAVTInWP.js +441 -0
  17. package/dist/audit-CV0gLGaL.js +444 -0
  18. package/dist/audit-Dnt0XgZD.js +441 -0
  19. package/dist/audit-DqNGdIKU.js +441 -0
  20. package/dist/bounty-tools-Cx7BXUfz.js +211 -0
  21. package/dist/bounty-tools-DWvW3yc-.js +211 -0
  22. package/dist/bounty-tools-FI7DHmsS.js +211 -0
  23. package/dist/bounty-tools-cjmA3Hgk.js +211 -0
  24. package/dist/browser-tools-BGPBCApQ.js +5 -0
  25. package/dist/browser-tools-Btu_vB2d.js +179 -0
  26. package/dist/browser-tools-DF2nQ1hi.js +5 -0
  27. package/dist/browser-tools-DYx4p13A.js +179 -0
  28. package/dist/chat-4ZistSKP.js +310 -0
  29. package/dist/chat-BqiMMQc4.js +324 -0
  30. package/dist/chat-BxxYzPaz.js +324 -0
  31. package/dist/chat-C0W8lwhh.js +324 -0
  32. package/dist/chat-CKBxDWAQ.js +324 -0
  33. package/dist/chat-CkCcCkVG.js +324 -0
  34. package/dist/chat-DCOKsydK.js +310 -0
  35. package/dist/chat-DZcZ1Uli.js +310 -0
  36. package/dist/chat-DiIra4_i.js +324 -0
  37. package/dist/claw-tasks-CIkuuhga.js +80 -0
  38. package/dist/claw-tasks-CquRilLP.js +80 -0
  39. package/dist/claw-tasks-xXtZpeY0.js +80 -0
  40. package/dist/config-BEz4yNRx.js +261 -0
  41. package/dist/config-Br73VMLb.js +261 -0
  42. package/dist/config-CXqmvq_H.js +7 -0
  43. package/dist/config-D5vF0kvV.js +261 -0
  44. package/dist/config-D_6MxFk3.js +7 -0
  45. package/dist/config-b2HmFrBr.js +7 -0
  46. package/dist/connector-1H0OW1h8.js +419 -0
  47. package/dist/connector-1qpQ5L-T.js +173 -0
  48. package/dist/connector-2OVpYt0c.js +213 -0
  49. package/dist/connector-8cFkE3X4.js +552 -0
  50. package/dist/connector-B2bZD1id.js +181 -0
  51. package/dist/connector-B3W7quzD.js +568 -0
  52. package/dist/connector-B4FWhOzd.js +189 -0
  53. package/dist/connector-B5fqvoZL.js +239 -0
  54. package/dist/connector-BA8ZbhPt.js +162 -0
  55. package/dist/connector-BFl0XIwB.js +182 -0
  56. package/dist/connector-BIGRhSuN.js +419 -0
  57. package/dist/connector-BK0qVbvh.js +498 -0
  58. package/dist/connector-BMtA4KSF.js +194 -0
  59. package/dist/connector-BPIrifW-.js +218 -0
  60. package/dist/connector-BRNU-rJ4.js +225 -0
  61. package/dist/connector-BS7lvyLd.js +213 -0
  62. package/dist/connector-BZ_-UPUL.js +305 -0
  63. package/dist/connector-Bd0NZ5bT.js +189 -0
  64. package/dist/connector-BjsPwu-Y.js +531 -0
  65. package/dist/connector-BnSsjz1D.js +167 -0
  66. package/dist/connector-BrogAqVQ.js +239 -0
  67. package/dist/connector-BsVTG3U3.js +181 -0
  68. package/dist/connector-By9pLJgR.js +340 -0
  69. package/dist/connector-C7c1ASzT.js +192 -0
  70. package/dist/connector-CIj28thK.js +182 -0
  71. package/dist/connector-CJkuYNd1.js +280 -0
  72. package/dist/connector-CPcUmIHz.js +552 -0
  73. package/dist/connector-CUlP4He3.js +194 -0
  74. package/dist/connector-CZg2I8Tn.js +350 -0
  75. package/dist/connector-C_NtpthL.js +498 -0
  76. package/dist/connector-CddDB9IK.js +192 -0
  77. package/dist/connector-ChQMspky.js +167 -0
  78. package/dist/connector-ClHFpI56.js +425 -0
  79. package/dist/connector-CmhUVhMT.js +531 -0
  80. package/dist/connector-CnX7lwCt.js +425 -0
  81. package/dist/connector-D36oGwnK.js +162 -0
  82. package/dist/connector-DDJ7Nxkq.js +286 -0
  83. package/dist/connector-DDn2QDuf.js +167 -0
  84. package/dist/connector-DO_bzgJn.js +167 -0
  85. package/dist/connector-DVcRo21Y.js +568 -0
  86. package/dist/connector-DhWs2anT.js +189 -0
  87. package/dist/connector-DsY1IXMz.js +508 -0
  88. package/dist/connector-DwRF3CQg.js +218 -0
  89. package/dist/connector-HG61cV9h.js +340 -0
  90. package/dist/connector-HR28FwA5.js +181 -0
  91. package/dist/connector-K0QGRYh5.js +85 -0
  92. package/dist/connector-NliR7NZZ.js +508 -0
  93. package/dist/connector-VolY_hP4.js +350 -0
  94. package/dist/connector-Wjx9ih70.js +286 -0
  95. package/dist/connector-dfqk7NYD.js +181 -0
  96. package/dist/connector-e0W4Mpmq.js +189 -0
  97. package/dist/connector-eK6_phVW.js +280 -0
  98. package/dist/connector-l7UmCYaL.js +225 -0
  99. package/dist/connector-n2YnOJYZ.js +305 -0
  100. package/dist/connector-orobFcqE.js +531 -0
  101. package/dist/connector-r1SRYSqX.js +173 -0
  102. package/dist/connector-tZgn5_Fk.js +85 -0
  103. package/dist/connector-wm4Oe1DK.js +181 -0
  104. package/dist/cost-tracker-DHTv6zpR.js +103 -0
  105. package/dist/cost-tracker-DJ1tiKcx.js +103 -0
  106. package/dist/cost-tracker-jbK_AoIV.js +103 -0
  107. package/dist/credentials-store-C0R-pQM7.js +5 -0
  108. package/dist/credentials-store-C9HwQSY2.js +5 -0
  109. package/dist/credentials-store-D5Xw3F75.js +89 -0
  110. package/dist/credentials-store-DIPxVk51.js +86 -0
  111. package/dist/credentials-store-DU2cVTiY.js +7 -0
  112. package/dist/credentials-store-Djqi3oXC.js +5 -0
  113. package/dist/credentials-store-HwLJ3GS2.js +87 -0
  114. package/dist/credentials-store-z16XvFZ2.js +86 -0
  115. package/dist/cron-tasks-4my0PJce.js +85 -0
  116. package/dist/cron-tasks-CJkI0lo3.js +82 -0
  117. package/dist/cron-tasks-DN1YjYhK.js +82 -0
  118. package/dist/cron-tasks-DuNdK89e.js +82 -0
  119. package/dist/daemon-3xj3FVuw.js +5 -0
  120. package/dist/daemon-3zd_nupj.js +333 -0
  121. package/dist/daemon-B9-h7ryw.js +7 -0
  122. package/dist/daemon-BLC4AL9L.js +401 -0
  123. package/dist/daemon-BR1uU7jH.js +333 -0
  124. package/dist/daemon-BRdtCOoC.js +7 -0
  125. package/dist/daemon-BnmNBHY5.js +384 -0
  126. package/dist/daemon-CCxpXxSb.js +7 -0
  127. package/dist/daemon-CEUxN3SQ.js +7 -0
  128. package/dist/daemon-CHk9_ezz.js +403 -0
  129. package/dist/daemon-CgrsZ0d9.js +320 -0
  130. package/dist/daemon-DCm9RCEz.js +401 -0
  131. package/dist/daemon-DNzuDyu8.js +7 -0
  132. package/dist/daemon-DWFWCLvh.js +7 -0
  133. package/dist/daemon-DgBZaFyi.js +355 -0
  134. package/dist/daemon-Dsyjad7g.js +7 -0
  135. package/dist/daemon-DxoPIGQG.js +333 -0
  136. package/dist/daemon-MXsEPeVa.js +7 -0
  137. package/dist/daemon-rpJ-J0bv.js +403 -0
  138. package/dist/daemon-sZVjFUoX.js +7 -0
  139. package/dist/delivery-8fo4GZ-j.js +95 -0
  140. package/dist/delivery-CkxNZIsF.js +95 -0
  141. package/dist/delivery-CtbHkJbB.js +95 -0
  142. package/dist/delivery-D1z3f3KW.js +4 -0
  143. package/dist/delivery-DKGpk5M4.js +4 -0
  144. package/dist/delivery-DReKOHyM.js +95 -0
  145. package/dist/delivery-Ddn-VajP.js +4 -0
  146. package/dist/delivery-DsoxcD2z.js +4 -0
  147. package/dist/destructive-gate-CEn4BsTd.js +101 -0
  148. package/dist/destructive-gate-CgCqfKuT.js +101 -0
  149. package/dist/destructive-gate-DcEpMEqP.js +101 -0
  150. package/dist/developer-keys-7rQ8M4Qo.js +127 -0
  151. package/dist/developer-keys-BeUpyenR.js +8 -0
  152. package/dist/developer-keys-CSmzA-dl.js +127 -0
  153. package/dist/developer-keys-KFGbGuZj.js +8 -0
  154. package/dist/device-auth-store-BDhzxuPc.js +5 -0
  155. package/dist/device-auth-store-Cjyn2XeY.js +86 -0
  156. package/dist/device-auth-store-DgSabRGa.js +7 -0
  157. package/dist/device-auth-store-LKgpU74c.js +88 -0
  158. package/dist/device-auth-store-UlkrF-9_.js +5 -0
  159. package/dist/device-auth-store-yvGLuYAl.js +86 -0
  160. package/dist/doctor-BcfmNAGV.js +233 -0
  161. package/dist/doctor-CEP3UQjn.js +227 -0
  162. package/dist/doctor-CmJh0JLr.js +6 -0
  163. package/dist/doctor-CtDvddSn.js +231 -0
  164. package/dist/doctor-DPoCaXsd.js +227 -0
  165. package/dist/doctor-DPvY68XB.js +6 -0
  166. package/dist/doctor-G6EMPukm.js +6 -0
  167. package/dist/doctor-tL9TXt9y.js +6 -0
  168. package/dist/engine-1fLMFUn2.js +7 -0
  169. package/dist/engine-7lSiOc0W.js +323 -0
  170. package/dist/engine-B83pxJM4.js +318 -0
  171. package/dist/engine-B8hxtYpN.js +323 -0
  172. package/dist/engine-BfQ-vNqE.js +321 -0
  173. package/dist/engine-BlpKw8D4.js +7 -0
  174. package/dist/engine-BmN7L0jl.js +7 -0
  175. package/dist/engine-CRagwas6.js +321 -0
  176. package/dist/engine-CppTnNbG.js +7 -0
  177. package/dist/engine-CwAfDQbD.js +7 -0
  178. package/dist/engine-D5kY4hMJ.js +7 -0
  179. package/dist/engine-DQcMDIbU.js +305 -0
  180. package/dist/engine-W1I8kkgV.js +305 -0
  181. package/dist/engine-mVrq_pfQ.js +7 -0
  182. package/dist/env-resolve-BeamD7l5.js +10 -0
  183. package/dist/env-resolve-C0otwkgN.js +10 -0
  184. package/dist/env-resolve-CC_po9t5.js +10 -0
  185. package/dist/env-resolve-COjiKYD8.js +147 -0
  186. package/dist/env-resolve-CYiFHLAi.js +145 -0
  187. package/dist/env-resolve-ClZcv5-B.js +145 -0
  188. package/dist/env-resolve-DS92g2fk.js +151 -0
  189. package/dist/env-resolve-DkBUmcI3.js +10 -0
  190. package/dist/extraction-tools-6PREYSAK.js +5 -0
  191. package/dist/extraction-tools-B8F3nsLR.js +5 -0
  192. package/dist/extraction-tools-BX5HGgko.js +91 -0
  193. package/dist/extraction-tools-Co11UJdZ.js +91 -0
  194. package/dist/form_data-DDfyO9B0.js +8657 -0
  195. package/dist/form_data-DgWnyuDn.js +8657 -0
  196. package/dist/gateway-BfHcLG6d.js +194 -0
  197. package/dist/gateway-CzI8dnlS.js +196 -0
  198. package/dist/gateway-DNv10FFg.js +194 -0
  199. package/dist/gateway-DRh5v1KI.js +4 -0
  200. package/dist/gateway-DroPtqyM.js +6 -0
  201. package/dist/gateway-DyWwV0Nu.js +4 -0
  202. package/dist/gmail-watch-setup-BV4r_lgb.js +40 -0
  203. package/dist/gmail-watch-setup-CW_5D9g-.js +40 -0
  204. package/dist/gmail-watch-setup-xG9GkPwr.js +42 -0
  205. package/dist/health-CBy1PfzC.js +152 -0
  206. package/dist/health-Cq_yE5Ln.js +6 -0
  207. package/dist/heartbeat-engine-7I0dZeea.js +83 -0
  208. package/dist/heartbeat-engine-BZUNOanp.js +84 -0
  209. package/dist/heartbeat-engine-DNm8ggAs.js +83 -0
  210. package/dist/heartbeat-engine-tgK7xXmt.js +83 -0
  211. package/dist/hub-CI4qcd1b.js +515 -0
  212. package/dist/hub-CNQaC4JI.js +515 -0
  213. package/dist/hub-Co1SbxLs.js +6 -0
  214. package/dist/hub-eUh89obm.js +6 -0
  215. package/dist/hyperclawbot-Bkncybig.js +508 -0
  216. package/dist/hyperclawbot-C37Unss3.js +505 -0
  217. package/dist/hyperclawbot-CFHXZr12.js +505 -0
  218. package/dist/hyperclawbot-DGou0MZ6.js +508 -0
  219. package/dist/hyperclawbot-DnPIyjox.js +508 -0
  220. package/dist/hyperclawbot-GYFaTEgC.js +505 -0
  221. package/dist/hyperclawbot-mcLnyJyM.js +505 -0
  222. package/dist/hyperclawbot-y0i_joQK.js +505 -0
  223. package/dist/inference-BvmMO9dq.js +8 -0
  224. package/dist/inference-C2HOfRf8.js +2848 -0
  225. package/dist/inference-CKvR5Ik5.js +2841 -0
  226. package/dist/inference-DVVmhQn5.js +2841 -0
  227. package/dist/inference-DoM_iai-.js +2848 -0
  228. package/dist/inference-DwgXrvBb.js +6 -0
  229. package/dist/inference-Go1G6tnF.js +8 -0
  230. package/dist/inference-_ptQe0oG.js +2841 -0
  231. package/dist/inference-gK62s15E.js +6 -0
  232. package/dist/inference-lLDvSTR9.js +6 -0
  233. package/dist/knowledge-graph-4SxFnwEm.js +131 -0
  234. package/dist/knowledge-graph-BsH-HoUJ.js +131 -0
  235. package/dist/knowledge-graph-BxrAiV2B.js +134 -0
  236. package/dist/knowledge-graph-DCa91Nz5.js +131 -0
  237. package/dist/loader-7fz2fb92.js +400 -0
  238. package/dist/loader-B2jZXMBu.js +6 -0
  239. package/dist/loader-CbS0tIrR.js +4 -0
  240. package/dist/loader-Ckvv7vHF.js +410 -0
  241. package/dist/loader-CwOXDhFQ.js +400 -0
  242. package/dist/loader-DpEOgWXZ.js +4 -0
  243. package/dist/loader-DpYgmaul.js +4 -0
  244. package/dist/loader-DtyQP7wL.js +400 -0
  245. package/dist/logger-B3AqfQWG.js +84 -0
  246. package/dist/logger-B_q8yqmA.js +84 -0
  247. package/dist/logger-BxJklsDv.js +84 -0
  248. package/dist/logger-ry2oCfdf.js +86 -0
  249. package/dist/manager-9zwhTeQ5.js +233 -0
  250. package/dist/manager-B1RbCW6C.js +31 -0
  251. package/dist/manager-B90HEHxe.js +6 -0
  252. package/dist/manager-B94UWcTs.js +233 -0
  253. package/dist/manager-BDvL_oPs.js +4 -0
  254. package/dist/manager-BEatAtIB.js +31 -0
  255. package/dist/manager-BQf9drst.js +120 -0
  256. package/dist/manager-Bau1mIqb.js +6 -0
  257. package/dist/manager-BkqHak_e.js +247 -0
  258. package/dist/manager-BoFdZm-l.js +233 -0
  259. package/dist/manager-C2bq0AXc.js +233 -0
  260. package/dist/manager-CBe3W3eG.js +117 -0
  261. package/dist/manager-CoHr8_eJ.js +117 -0
  262. package/dist/manager-CuS13QUO.js +6 -0
  263. package/dist/manager-DO0pK2OI.js +117 -0
  264. package/dist/manager-DVetfBCH.js +6 -0
  265. package/dist/manager-Jd0qSzVe.js +35 -0
  266. package/dist/manager-TxFgaHT9.js +31 -0
  267. package/dist/manager-Yo6ZAofG.js +250 -0
  268. package/dist/mcp-B_WJiTZz.js +139 -0
  269. package/dist/mcp-DVhPLprc.js +139 -0
  270. package/dist/mcp-GWnLTVi-.js +142 -0
  271. package/dist/mcp-loader-B6xz7ftt.js +94 -0
  272. package/dist/mcp-loader-BLanJREp.js +94 -0
  273. package/dist/mcp-loader-Bx7FFxAU.js +94 -0
  274. package/dist/mcp-loader-Cr0LRQHE.js +93 -0
  275. package/dist/mcp-loader-D0rbtV3G.js +93 -0
  276. package/dist/memory-B47nvgOq.js +271 -0
  277. package/dist/memory-D-Py-cz5.js +273 -0
  278. package/dist/memory-D991eoj7.js +6 -0
  279. package/dist/memory-DoQoaHjo.js +4 -0
  280. package/dist/memory-auto-5aBZQJQY.js +5 -0
  281. package/dist/memory-auto-BTeOoLsb.js +306 -0
  282. package/dist/memory-auto-BvjfaflZ.js +5 -0
  283. package/dist/memory-auto-CSUt3aas.js +306 -0
  284. package/dist/memory-auto-CfpACu6s.js +306 -0
  285. package/dist/memory-auto-DI9Xpd-x.js +306 -0
  286. package/dist/memory-auto-D_mPVYqI.js +5 -0
  287. package/dist/memory-auto-PmKetZuo.js +5 -0
  288. package/dist/memory-auto-_Jv-Diw_.js +306 -0
  289. package/dist/memory-auto-rLBheyC0.js +5 -0
  290. package/dist/memory-integration-UFc6CdRA.js +91 -0
  291. package/dist/memory-integration-_NOy60Fj.js +91 -0
  292. package/dist/memory-integration-nbQ8esDu.js +91 -0
  293. package/dist/moltbook-B4znBD46.js +81 -0
  294. package/dist/moltbook-CGtA7Lb3.js +81 -0
  295. package/dist/moltbook-EZOfIwcN.js +81 -0
  296. package/dist/node-BvA5_2f_.js +222 -0
  297. package/dist/node-CRaZw_av.js +225 -0
  298. package/dist/node-CSOPY84m.js +222 -0
  299. package/dist/node-FPkFXYdU.js +225 -0
  300. package/dist/nodes-registry--DkZbn41.js +52 -0
  301. package/dist/nodes-registry-DYEH1aWn.js +52 -0
  302. package/dist/nodes-registry-jK7T0THg.js +52 -0
  303. package/dist/oauth-flow-B3S4T_SJ.js +147 -0
  304. package/dist/oauth-flow-CuQHP_RD.js +150 -0
  305. package/dist/oauth-flow-D_iqT6nr.js +150 -0
  306. package/dist/oauth-flow-Du2N6B2V.js +150 -0
  307. package/dist/oauth-provider-B2RBpiXg.js +111 -0
  308. package/dist/oauth-provider-C1qk9SI-.js +110 -0
  309. package/dist/oauth-provider-CDOMIZgF.js +110 -0
  310. package/dist/observability-4CyDqBWi.js +89 -0
  311. package/dist/observability-BfhV3r9r.js +89 -0
  312. package/dist/observability-DAnU8Ung.js +89 -0
  313. package/dist/onboard-3SoScSbC.js +11 -0
  314. package/dist/onboard-BAhuTUMO.js +4240 -0
  315. package/dist/onboard-BHKBzytX.js +13 -0
  316. package/dist/onboard-Bf3ht6ct.js +11 -0
  317. package/dist/onboard-Bmpa_pxc.js +3865 -0
  318. package/dist/onboard-BwFFnEDj.js +13 -0
  319. package/dist/onboard-C-0A7RKN.js +4211 -0
  320. package/dist/onboard-CCuETEUr.js +3865 -0
  321. package/dist/onboard-CDi3B996.js +13 -0
  322. package/dist/onboard-CcXqOCHa.js +3862 -0
  323. package/dist/onboard-DU3acWAq.js +13 -0
  324. package/dist/onboard-DVEFIFRj.js +11 -0
  325. package/dist/onboard-DW8b3EUP.js +4250 -0
  326. package/dist/onboard-DiDTuD7m.js +13 -0
  327. package/dist/onboard-DqamkA0I.js +11 -0
  328. package/dist/onboard-DtDFU4lV.js +3865 -0
  329. package/dist/onboard-IdhgSexF.js +11 -0
  330. package/dist/onboard-Qh-qibLR.js +3861 -0
  331. package/dist/onboard-T54jLovz.js +13 -0
  332. package/dist/onboard-nQerZcpc.js +3862 -0
  333. package/dist/onboard-qXuXl5An.js +4250 -0
  334. package/dist/onboard-xsSdyO6Y.js +3865 -0
  335. package/dist/onboard-yACJiQ6A.js +4215 -0
  336. package/dist/onboard-z1K8FTgh.js +13 -0
  337. package/dist/orchestrator-BIKrbOtx.js +6 -0
  338. package/dist/orchestrator-C71UI_0E.js +189 -0
  339. package/dist/orchestrator-CC6vuL6m.js +6 -0
  340. package/dist/orchestrator-CExmcac2.js +189 -0
  341. package/dist/orchestrator-CQm9v71d.js +6 -0
  342. package/dist/orchestrator-CSZnojZo.js +189 -0
  343. package/dist/orchestrator-Cc-gXExz.js +189 -0
  344. package/dist/orchestrator-CxySH0n5.js +6 -0
  345. package/dist/orchestrator-Cybvh-J0.js +189 -0
  346. package/dist/orchestrator-D-9pExNB.js +189 -0
  347. package/dist/orchestrator-DG-RjZIu.js +6 -0
  348. package/dist/orchestrator-DvEjhiJR.js +6 -0
  349. package/dist/orchestrator-FFpXJwSV.js +189 -0
  350. package/dist/orchestrator-mPfwBFvX.js +6 -0
  351. package/dist/osint-BIGH02i8.js +277 -0
  352. package/dist/osint-Cc2Ju-o4.js +277 -0
  353. package/dist/osint-Cg3-CYHx.js +278 -0
  354. package/dist/pairing-BRPzVXzQ.js +198 -0
  355. package/dist/pairing-Cm78Tsdx.js +4 -0
  356. package/dist/pairing-D4sA3-Ha.js +6 -0
  357. package/dist/pairing-ouc_v-OX.js +196 -0
  358. package/dist/pc-access-BZvlAXYN.js +819 -0
  359. package/dist/pc-access-CziyndiO.js +8 -0
  360. package/dist/pc-access-D5k6dAfU.js +819 -0
  361. package/dist/pc-access-DoPSPiAK.js +8 -0
  362. package/dist/pending-approval-BaKZ0b_s.js +22 -0
  363. package/dist/pending-approval-CBVZcFJn.js +22 -0
  364. package/dist/pending-approval-DiZ96D8v.js +22 -0
  365. package/dist/providers-CFQC39vg.js +5 -0
  366. package/dist/providers-DP8T0QCR.js +1089 -0
  367. package/dist/reminders-store-BSIw5Y5z.js +58 -0
  368. package/dist/reminders-store-Bus52SjO.js +58 -0
  369. package/dist/renderer-CmMjrkqN.js +225 -0
  370. package/dist/renderer-_Y9mEqMM.js +225 -0
  371. package/dist/renderer-h3ar94cf.js +228 -0
  372. package/dist/rules-D3GcY_lt.js +103 -0
  373. package/dist/rules-DFoset7W.js +103 -0
  374. package/dist/rules-eJw9i4RF.js +106 -0
  375. package/dist/run-main.js +460 -332
  376. package/dist/runner-C-syOqBr.js +1273 -0
  377. package/dist/runner-C73am--A.js +1273 -0
  378. package/dist/runner-DKLq9jhv.js +1273 -0
  379. package/dist/runner-Im-aCXhh.js +1273 -0
  380. package/dist/runner-NvAzKXbv.js +1273 -0
  381. package/dist/security-2DPBzs5F.js +4 -0
  382. package/dist/security-BhhX8wJx.js +73 -0
  383. package/dist/server-7tmTtdPU.js +4 -0
  384. package/dist/server-A38RPbRE.js +1291 -0
  385. package/dist/server-BErPWJZ5.js +4 -0
  386. package/dist/server-BKo-zifC.js +4 -0
  387. package/dist/server-Bav63Eqx.js +4 -0
  388. package/dist/server-BbWQWOH4.js +4 -0
  389. package/dist/server-BfHtA0Y2.js +1278 -0
  390. package/dist/server-BiYaxlFV.js +1287 -0
  391. package/dist/server-C6htB4FI.js +4 -0
  392. package/dist/server-CB7cjcj4.js +1278 -0
  393. package/dist/server-CNiOi5dN.js +1285 -0
  394. package/dist/server-CSC4npaT.js +1285 -0
  395. package/dist/server-CZfP2Poz.js +1278 -0
  396. package/dist/server-C_YVts3e.js +4 -0
  397. package/dist/server-CbQl0M21.js +1278 -0
  398. package/dist/server-Ct7Fl3SE.js +1285 -0
  399. package/dist/server-DRc26z9e.js +4 -0
  400. package/dist/server-DT7JjjVD.js +4 -0
  401. package/dist/server-DacRJyZn.js +4 -0
  402. package/dist/server-PCtHMXe2.js +1292 -0
  403. package/dist/session-store-7ZPOoB81.js +5 -0
  404. package/dist/session-store-BOa2y_EQ.js +5 -0
  405. package/dist/session-store-BYEr8j52.js +139 -0
  406. package/dist/session-store-Bx7lBD_a.js +141 -0
  407. package/dist/session-store-C13h7I2r.js +136 -0
  408. package/dist/session-store-CUHgJ0Xr.js +5 -0
  409. package/dist/session-store-cbtK6hx9.js +136 -0
  410. package/dist/session-store-eecMioKI.js +5 -0
  411. package/dist/sessions-tools-B5_ow-s7.js +5 -0
  412. package/dist/sessions-tools-CG2mvJo6.js +95 -0
  413. package/dist/sessions-tools-DVSejkNU.js +95 -0
  414. package/dist/sessions-tools-fOL1N3Zu.js +5 -0
  415. package/dist/skill-loader-99egKAGN.js +160 -0
  416. package/dist/skill-loader-Bl6pYxNN.js +160 -0
  417. package/dist/skill-loader-D4D5kfDu.js +7 -0
  418. package/dist/skill-loader-DwbmjEDa.js +7 -0
  419. package/dist/skill-runtime-1CrUOOGv.js +5 -0
  420. package/dist/skill-runtime-B-2O7Vgb.js +102 -0
  421. package/dist/skill-runtime-B7PutgyZ.js +5 -0
  422. package/dist/skill-runtime-BUhMkMzO.js +5 -0
  423. package/dist/skill-runtime-Bv7fCCx8.js +102 -0
  424. package/dist/skill-runtime-Bx2HHcta.js +102 -0
  425. package/dist/skill-runtime-C6HVvnmN.js +5 -0
  426. package/dist/skill-runtime-CtSykP3r.js +102 -0
  427. package/dist/skill-runtime-DZ6uJXGW.js +102 -0
  428. package/dist/skill-runtime-DaLnq_Jm.js +5 -0
  429. package/dist/skill-runtime-DpDbjL7y.js +102 -0
  430. package/dist/skill-runtime-acmnZSq7.js +102 -0
  431. package/dist/skill-runtime-dzuLMVSw.js +5 -0
  432. package/dist/skill-runtime-wiVnzSoJ.js +5 -0
  433. package/dist/src-B5lCcPXX.js +63 -0
  434. package/dist/src-B7Kxqi35.js +20 -0
  435. package/dist/src-B8DEmVd6.js +458 -0
  436. package/dist/src-BqbwzQQj.js +63 -0
  437. package/dist/src-C63ECu1t.js +63 -0
  438. package/dist/src-C65-5rOW.js +458 -0
  439. package/dist/src-CbTAVbeI.js +20 -0
  440. package/dist/src-Cmnclt47.js +63 -0
  441. package/dist/src-D0kptBSa.js +458 -0
  442. package/dist/src-DZtpIvWJ.js +63 -0
  443. package/dist/src-DjzS20TD.js +63 -0
  444. package/dist/src-DmPjS2Z4.js +458 -0
  445. package/dist/src-DmbIgW0O.js +63 -0
  446. package/dist/src-DsaXFru7.js +63 -0
  447. package/dist/src-Dt0TXI8r.js +458 -0
  448. package/dist/src-rktqvEBJ.js +458 -0
  449. package/dist/src-tI8EOp6-.js +458 -0
  450. package/dist/src-zWhGmJSN.js +458 -0
  451. package/dist/sub-agent-tools-9k60L5mn.js +39 -0
  452. package/dist/sub-agent-tools-BBJf8oPD.js +39 -0
  453. package/dist/sub-agent-tools-BVCARpnF.js +39 -0
  454. package/dist/sub-agent-tools-Cx5BB5IO.js +39 -0
  455. package/dist/sub-agent-tools-DMT7jjBc.js +39 -0
  456. package/dist/sub-agent-tools-iBQiRKg6.js +39 -0
  457. package/dist/sub-agent-tools-kr921YOA.js +39 -0
  458. package/dist/theme-CLXvI6Hr.js +183 -0
  459. package/dist/theme-DdZT-Bq4.js +10 -0
  460. package/dist/theme-GEpjn_0G.js +180 -0
  461. package/dist/theme-hOlG-hDL.js +8 -0
  462. package/dist/tool-policy-D1zWYBKm.js +189 -0
  463. package/dist/tool-policy-TmXx_fpp.js +189 -0
  464. package/dist/tool-policy-YgysHf5s.js +189 -0
  465. package/dist/tts-elevenlabs-BT4WrEwy.js +61 -0
  466. package/dist/tts-elevenlabs-C62Wnnrg.js +61 -0
  467. package/dist/tts-elevenlabs-DmEFFeR8.js +61 -0
  468. package/dist/update-check-BeAPt4-f.js +98 -0
  469. package/dist/update-check-CaHNCDqe.js +6 -0
  470. package/dist/vision-B5DQ5hYa.js +121 -0
  471. package/dist/vision-XOSSQe4m.js +121 -0
  472. package/dist/vision-sIO3kwFy.js +121 -0
  473. package/dist/vision-tools-BHogJPuK.js +5 -0
  474. package/dist/vision-tools-BZhV8wg3.js +51 -0
  475. package/dist/vision-tools-BiDKd0UA.js +5 -0
  476. package/dist/vision-tools-CdRxilYR.js +5 -0
  477. package/dist/vision-tools-DnUjpQhI.js +51 -0
  478. package/dist/vision-tools-gtUq6d-x.js +51 -0
  479. package/dist/voice-transcription-5_iQE-0C.js +138 -0
  480. package/dist/voice-transcription-C3SuzK96.js +138 -0
  481. package/dist/voice-transcription-CYFj4Iv3.js +138 -0
  482. package/dist/voice-transcription-ygmlOkky.js +138 -0
  483. package/dist/website-watch-tools-BF-wR0UI.js +5 -0
  484. package/dist/website-watch-tools-CVh7RA5-.js +139 -0
  485. package/dist/website-watch-tools-CthBrGPP.js +5 -0
  486. package/dist/website-watch-tools-Oxf8Mv4j.js +139 -0
  487. package/package.json +1 -1
package/README.md CHANGED
@@ -90,7 +90,7 @@ The wizard walks you through: AI provider → model → channels → skills. Don
90
90
  # Step 1 — Start the daemon (runs in the background, bot becomes active on Telegram/Discord/etc.)
91
91
  hyperclaw daemon start
92
92
 
93
- # Step 2 — Open the TUI dashboard to see live status, channels, logs
93
+ # Step 2 — Open the Dashboard to see live status, channels, logs
94
94
  hyperclaw dashboard
95
95
 
96
96
  # Step 3 — Or chat directly from your terminal (no Telegram needed)
@@ -111,7 +111,7 @@ hyperclaw daemon start
111
111
  └─────────────┴──────────────┘
112
112
  ```
113
113
 
114
- > **The daemon must be running** for the Telegram/Discord/WhatsApp bot to answer messages and for the TUI dashboard to show "ONLINE".
114
+ > **The daemon must be running** for the Telegram/Discord/WhatsApp bot to answer messages and for the Dashboard to show "Running".
115
115
  > On **Windows** the daemon runs via Task Scheduler (no WSL, no admin).
116
116
  > On **Linux/macOS** with `--install-daemon` it uses systemd / launchd.
117
117
 
@@ -134,7 +134,7 @@ hyperclaw dashboard
134
134
  | Start Telegram/Discord bot (background) | `hyperclaw daemon start` |
135
135
  | Stop the bot | `hyperclaw daemon stop` |
136
136
  | Check if running | `hyperclaw daemon status` |
137
- | Open TUI dashboard | `hyperclaw dashboard` |
137
+ | Open Dashboard (terminal) | `hyperclaw dashboard` |
138
138
  | Chat from terminal (no Telegram needed) | `hyperclaw chat` |
139
139
  | Run in foreground (no daemon) | `hyperclaw start` |
140
140
  | Health check | `hyperclaw doctor` |
@@ -0,0 +1,75 @@
1
+ const require_chunk = require('./chunk-jS-bbMI5.js');
2
+
3
+ //#region src/canvas/a2ui-protocol.ts
4
+ /** Map HyperClaw component type to A2UI-compatible type. */
5
+ function toA2UIType(t) {
6
+ const map = {
7
+ chart: "chart",
8
+ table: "table",
9
+ form: "form",
10
+ markdown: "markdown",
11
+ image: "image",
12
+ custom: "custom",
13
+ script: "script"
14
+ };
15
+ return map[t] || "custom";
16
+ }
17
+ /** Convert a CanvasComponent to A2UI surface. */
18
+ function componentToSurface(c) {
19
+ return {
20
+ id: c.id,
21
+ type: toA2UIType(c.type),
22
+ props: {
23
+ title: c.title,
24
+ width: c.width || "half"
25
+ },
26
+ data: c.data
27
+ };
28
+ }
29
+ /** Generate beginRendering from canvas state (full sync). */
30
+ function toBeginRendering(canvas) {
31
+ const surfaces = canvas.components.map(componentToSurface);
32
+ const dataModel = {};
33
+ for (const c of canvas.components) if (c.data != null) dataModel[c.id] = c.data;
34
+ return {
35
+ type: "beginRendering",
36
+ surfaceId: canvas.id,
37
+ surfaces,
38
+ dataModel: Object.keys(dataModel).length ? dataModel : void 0
39
+ };
40
+ }
41
+ /** Generate surfaceUpdate for newly added component. */
42
+ function toSurfaceUpdate(canvasId, component) {
43
+ return {
44
+ type: "surfaceUpdate",
45
+ surfaceId: canvasId,
46
+ surfaces: [componentToSurface(component)]
47
+ };
48
+ }
49
+ /** Generate dataModelUpdate when component data changes. */
50
+ function toDataModelUpdate(canvasId, componentId, data) {
51
+ return {
52
+ type: "dataModelUpdate",
53
+ surfaceId: canvasId,
54
+ updates: { [componentId]: data }
55
+ };
56
+ }
57
+ /** Generate deleteSurface for removed components. */
58
+ function toDeleteSurface(canvasId, componentIds) {
59
+ return {
60
+ type: "deleteSurface",
61
+ surfaceId: canvasId,
62
+ surfaceIds: componentIds
63
+ };
64
+ }
65
+ /** Serialize A2UI messages to JSONL (one message per line). */
66
+ function toJSONL(messages) {
67
+ return messages.map((m) => JSON.stringify(m)).join("\n");
68
+ }
69
+
70
+ //#endregion
71
+ exports.toBeginRendering = toBeginRendering;
72
+ exports.toDataModelUpdate = toDataModelUpdate;
73
+ exports.toDeleteSurface = toDeleteSurface;
74
+ exports.toJSONL = toJSONL;
75
+ exports.toSurfaceUpdate = toSurfaceUpdate;
@@ -0,0 +1,75 @@
1
+ const require_chunk = require('./chunk-jS-bbMI5.js');
2
+
3
+ //#region src/canvas/a2ui-protocol.ts
4
+ /** Map HyperClaw component type to A2UI-compatible type. */
5
+ function toA2UIType(t) {
6
+ const map = {
7
+ chart: "chart",
8
+ table: "table",
9
+ form: "form",
10
+ markdown: "markdown",
11
+ image: "image",
12
+ custom: "custom",
13
+ script: "script"
14
+ };
15
+ return map[t] || "custom";
16
+ }
17
+ /** Convert a CanvasComponent to A2UI surface. */
18
+ function componentToSurface(c) {
19
+ return {
20
+ id: c.id,
21
+ type: toA2UIType(c.type),
22
+ props: {
23
+ title: c.title,
24
+ width: c.width || "half"
25
+ },
26
+ data: c.data
27
+ };
28
+ }
29
+ /** Generate beginRendering from canvas state (full sync). */
30
+ function toBeginRendering(canvas) {
31
+ const surfaces = canvas.components.map(componentToSurface);
32
+ const dataModel = {};
33
+ for (const c of canvas.components) if (c.data != null) dataModel[c.id] = c.data;
34
+ return {
35
+ type: "beginRendering",
36
+ surfaceId: canvas.id,
37
+ surfaces,
38
+ dataModel: Object.keys(dataModel).length ? dataModel : void 0
39
+ };
40
+ }
41
+ /** Generate surfaceUpdate for newly added component. */
42
+ function toSurfaceUpdate(canvasId, component) {
43
+ return {
44
+ type: "surfaceUpdate",
45
+ surfaceId: canvasId,
46
+ surfaces: [componentToSurface(component)]
47
+ };
48
+ }
49
+ /** Generate dataModelUpdate when component data changes. */
50
+ function toDataModelUpdate(canvasId, componentId, data) {
51
+ return {
52
+ type: "dataModelUpdate",
53
+ surfaceId: canvasId,
54
+ updates: { [componentId]: data }
55
+ };
56
+ }
57
+ /** Generate deleteSurface for removed components. */
58
+ function toDeleteSurface(canvasId, componentIds) {
59
+ return {
60
+ type: "deleteSurface",
61
+ surfaceId: canvasId,
62
+ surfaceIds: componentIds
63
+ };
64
+ }
65
+ /** Serialize A2UI messages to JSONL (one message per line). */
66
+ function toJSONL(messages) {
67
+ return messages.map((m) => JSON.stringify(m)).join("\n");
68
+ }
69
+
70
+ //#endregion
71
+ exports.toBeginRendering = toBeginRendering;
72
+ exports.toDataModelUpdate = toDataModelUpdate;
73
+ exports.toDeleteSurface = toDeleteSurface;
74
+ exports.toJSONL = toJSONL;
75
+ exports.toSurfaceUpdate = toSurfaceUpdate;
@@ -0,0 +1,6 @@
1
+ const require_chunk = require('./chunk-jS-bbMI5.js');
2
+ require('./paths-AIyBxIzm.js');
3
+ require('./paths-DPovhojT.js');
4
+ const require_agents_routing = require('./agents-routing-biXULPch.js');
5
+
6
+ exports.AgentRouter = require_agents_routing.AgentRouter;
@@ -0,0 +1,398 @@
1
+ const require_chunk = require('./chunk-jS-bbMI5.js');
2
+ const require_paths = require('./paths-AIyBxIzm.js');
3
+ const require_paths$1 = require('./paths-DPovhojT.js');
4
+ const chalk = require_chunk.__toESM(require("chalk"));
5
+ const inquirer = require_chunk.__toESM(require("inquirer"));
6
+ const fs_extra = require_chunk.__toESM(require("fs-extra"));
7
+ const path = require_chunk.__toESM(require("path"));
8
+
9
+ //#region src/routing/session-key.ts
10
+ /**
11
+
12
+ * Compute the canonical session key for an inbound message context.
13
+
14
+ */
15
+ function computeSessionKey(ctx) {
16
+ const { agentId, channel, peerKind, peerId, threadId, topicId, dmScope } = ctx;
17
+ if (peerKind === "dm") {
18
+ if (dmScope === "main" || dmScope === void 0) return `agent:${agentId}:main`;
19
+ return `agent:${agentId}:${channel}:dm:${peerId}`;
20
+ }
21
+ if (peerKind === "group") {
22
+ let key$1 = `agent:${agentId}:${channel}:group:${peerId}`;
23
+ if (topicId) key$1 += `:topic:${topicId}`;
24
+ if (threadId) key$1 += `:thread:${threadId}`;
25
+ return key$1;
26
+ }
27
+ let key = `agent:${agentId}:${channel}:channel:${peerId}`;
28
+ if (threadId) key += `:thread:${threadId}`;
29
+ return key;
30
+ }
31
+
32
+ //#endregion
33
+ //#region src/routing/agents-routing.ts
34
+ require_paths$1.init_paths();
35
+ function defaultAgent() {
36
+ const hcDir = require_paths.getHyperClawDir();
37
+ return {
38
+ id: "main",
39
+ name: "main",
40
+ workspace: path.default.join(hcDir, "workspace"),
41
+ default: true
42
+ };
43
+ }
44
+ var AgentRouter = class {
45
+ config;
46
+ constructor(config) {
47
+ this.config = config ?? this._loadConfig();
48
+ }
49
+ _loadConfig() {
50
+ const cfgPath = require_paths.getConfigPath();
51
+ const hcDir = require_paths.getHyperClawDir();
52
+ const routingFile = path.default.join(hcDir, "routing.json");
53
+ const legacyBindingsFile = path.default.join(hcDir, "agent-bindings.json");
54
+ let fromMain = false;
55
+ try {
56
+ const mainCfg = fs_extra.default.readJsonSync(cfgPath);
57
+ const bindings = mainCfg?.bindings;
58
+ const agentsList = mainCfg?.agents?.list;
59
+ if (Array.isArray(bindings) || Array.isArray(agentsList)) {
60
+ fromMain = true;
61
+ return {
62
+ agents: { list: agentsList && agentsList.length > 0 ? agentsList : [defaultAgent()] },
63
+ bindings: Array.isArray(bindings) ? bindings : [],
64
+ session: mainCfg?.session || { dmScope: "main" },
65
+ broadcast: mainCfg?.broadcast,
66
+ channels: mainCfg?.channels
67
+ };
68
+ }
69
+ } catch {}
70
+ try {
71
+ const legacy = fs_extra.default.readJsonSync(routingFile);
72
+ if (legacy?.bindings?.length || legacy?.agents?.list?.length) return this._migrateToMain(legacy, cfgPath);
73
+ } catch {}
74
+ try {
75
+ const arr = fs_extra.default.readJsonSync(legacyBindingsFile);
76
+ if (Array.isArray(arr) && arr.length > 0) {
77
+ const bindings = arr.map((b) => ({
78
+ match: { channel: b.channelId },
79
+ agentId: b.agentName,
80
+ createdAt: (/* @__PURE__ */ new Date()).toISOString()
81
+ }));
82
+ const migrated = {
83
+ agents: { list: [defaultAgent()] },
84
+ bindings,
85
+ session: { dmScope: "main" }
86
+ };
87
+ return this._migrateToMain(migrated, cfgPath);
88
+ }
89
+ } catch {}
90
+ return {
91
+ agents: { list: [defaultAgent()] },
92
+ bindings: [],
93
+ session: { dmScope: "main" }
94
+ };
95
+ }
96
+ _migrateToMain(legacy, cfgPath) {
97
+ try {
98
+ let current = {};
99
+ if (fs_extra.default.existsSync(cfgPath)) current = fs_extra.default.readJsonSync(cfgPath);
100
+ const next = {
101
+ ...current,
102
+ bindings: legacy.bindings ?? [],
103
+ agents: {
104
+ ...current?.agents,
105
+ list: legacy.agents?.list ?? [defaultAgent()]
106
+ },
107
+ ...legacy.broadcast ? { broadcast: legacy.broadcast } : {},
108
+ ...legacy.session ? { session: legacy.session } : {}
109
+ };
110
+ fs_extra.default.ensureDirSync(path.default.dirname(cfgPath));
111
+ fs_extra.default.writeJsonSync(cfgPath, next, { spaces: 2 });
112
+ } catch (e) {
113
+ console.warn("[agents-routing] Migration write failed:", e.message);
114
+ }
115
+ return legacy;
116
+ }
117
+ async _saveConfig() {
118
+ const { ConfigStore } = await Promise.resolve().then(() => require("./config-CXqmvq_H.js"));
119
+ const store = new ConfigStore();
120
+ const current = await store.load();
121
+ await store.patch({
122
+ bindings: this.config.bindings ?? [],
123
+ agents: {
124
+ ...current?.agents,
125
+ list: this.config.agents?.list ?? [defaultAgent()]
126
+ },
127
+ ...this.config.broadcast ? { broadcast: this.config.broadcast } : {},
128
+ ...this.config.session ? { session: this.config.session } : {}
129
+ });
130
+ }
131
+ route(msg) {
132
+ const agents = this.config.agents?.list ?? [defaultAgent()];
133
+ const bindings = this.config.bindings ?? [];
134
+ const broadcastAgents = this._resolveBroadcast(msg);
135
+ const matched = this._matchBinding(msg, bindings, agents);
136
+ const agentDef = matched.agentDef;
137
+ const sessionKey = this._computeKey(msg, agentDef.id);
138
+ const skipLastRoute = msg.isDM ? this._shouldSkipLastRoute(msg) : false;
139
+ return {
140
+ agentId: agentDef.id,
141
+ agentDef,
142
+ sessionKey,
143
+ matchedBy: matched.matchedBy,
144
+ ...broadcastAgents.length > 1 ? { broadcast: broadcastAgents } : {},
145
+ ...skipLastRoute ? { skipLastRoute: true } : {}
146
+ };
147
+ }
148
+ _matchBinding(msg, bindings, agents) {
149
+ const find = (id) => agents.find((a) => a.id === id) ?? defaultAgent();
150
+ for (const b of bindings) {
151
+ if (!this._matchesFilter(msg, b.match)) continue;
152
+ return {
153
+ agentDef: find(b.agentId),
154
+ matchedBy: this._describeMatch(b.match)
155
+ };
156
+ }
157
+ const def = agents.find((a) => a.default) ?? agents[0] ?? defaultAgent();
158
+ return {
159
+ agentDef: def,
160
+ matchedBy: "default"
161
+ };
162
+ }
163
+ _matchesFilter(msg, match) {
164
+ if (match.channel && match.channel !== msg.channel) return false;
165
+ if (match.accountId && match.accountId !== "*" && match.accountId !== msg.accountId) return false;
166
+ if (match.peer) {
167
+ if (match.peer.kind !== msg.peer.kind) return false;
168
+ if (match.peer.id !== msg.peer.id) return false;
169
+ }
170
+ if (match.guildId && match.guildId !== msg.guildId) return false;
171
+ if (match.roles?.length) {
172
+ const senderRoles = msg.roles ?? [];
173
+ if (!match.roles.every((r) => senderRoles.includes(r))) return false;
174
+ }
175
+ if (match.teamId && match.teamId !== msg.teamId) return false;
176
+ return true;
177
+ }
178
+ _describeMatch(m) {
179
+ const parts = [];
180
+ if (m.channel) parts.push(`channel=${m.channel}`);
181
+ if (m.peer) parts.push(`peer=${m.peer.kind}:${m.peer.id}`);
182
+ if (m.guildId) parts.push(`guild=${m.guildId}`);
183
+ if (m.teamId) parts.push(`team=${m.teamId}`);
184
+ if (m.accountId) parts.push(`account=${m.accountId}`);
185
+ return parts.join(" ") || "channel-match";
186
+ }
187
+ _computeKey(msg, agentId) {
188
+ const dmScope = this.config.session?.dmScope ?? "main";
189
+ const ctx = {
190
+ agentId,
191
+ channel: msg.channel,
192
+ peerKind: msg.isDM ? "dm" : msg.peer.kind,
193
+ peerId: msg.peer.id,
194
+ threadId: msg.threadId,
195
+ topicId: msg.topicId,
196
+ dmScope: msg.isDM ? dmScope : void 0
197
+ };
198
+ return computeSessionKey(ctx);
199
+ }
200
+ _resolveBroadcast(msg) {
201
+ const bc = this.config.broadcast;
202
+ if (!bc) return [];
203
+ const agentIds = bc[msg.peer.id] ?? bc[msg.senderId];
204
+ if (Array.isArray(agentIds)) return agentIds;
205
+ return [];
206
+ }
207
+ /**
208
+ * Returns true when the inbound DM sender is not the pinned owner.
209
+ * Pinned owner = the single non-wildcard allowFrom entry for this channel.
210
+ */
211
+ _shouldSkipLastRoute(msg) {
212
+ const chanCfg = this.config.channels?.[msg.channel];
213
+ if (!chanCfg?.allowFrom) return false;
214
+ const nonWild = chanCfg.allowFrom.filter((id) => id !== "*" && id !== "**");
215
+ if (nonWild.length !== 1) return false;
216
+ const pinnedOwner = nonWild[0];
217
+ return msg.senderId !== pinnedOwner;
218
+ }
219
+ resolveDefaultAccount(channelId) {
220
+ return this.config.channels?.[channelId]?.defaultAccount;
221
+ }
222
+ listBindings() {
223
+ const agents = this.config.agents?.list ?? [];
224
+ const bindings = this.config.bindings ?? [];
225
+ console.log(chalk.default.bold.cyan("\n 🦅 AGENT BINDINGS\n"));
226
+ if (agents.length === 0) {
227
+ console.log(chalk.default.gray(" No agents configured.\n"));
228
+ return;
229
+ }
230
+ for (const a of agents) {
231
+ const def = a.default ? chalk.default.green(" [default]") : "";
232
+ const model = a.model ? chalk.default.gray(` model:${a.model}`) : "";
233
+ console.log(` ${chalk.default.bold(a.id)}${def} ${chalk.default.gray(a.workspace)}${model}`);
234
+ }
235
+ console.log();
236
+ if (bindings.length === 0) {
237
+ console.log(chalk.default.gray(" No explicit bindings — all traffic → default agent.\n"));
238
+ return;
239
+ }
240
+ console.log(chalk.default.bold(" Bindings:\n"));
241
+ for (const b of bindings) {
242
+ const m = b.match;
243
+ const parts = [];
244
+ if (m.channel) parts.push(chalk.default.cyan(m.channel));
245
+ if (m.peer) parts.push(`peer:${m.peer.kind}/${chalk.default.white(m.peer.id)}`);
246
+ if (m.guildId) parts.push(`guild:${chalk.default.white(m.guildId)}`);
247
+ if (m.teamId) parts.push(`team:${chalk.default.white(m.teamId)}`);
248
+ if (m.roles?.length) parts.push(`roles:[${m.roles.join(",")}]`);
249
+ if (m.accountId) parts.push(`account:${m.accountId}`);
250
+ console.log(` ${parts.join(" ")} ${chalk.default.gray("→")} ${chalk.default.bold(b.agentId)}`);
251
+ }
252
+ const bc = this.config.broadcast;
253
+ if (bc) {
254
+ console.log(chalk.default.bold("\n Broadcast groups:\n"));
255
+ const strat = bc.strategy ?? "parallel";
256
+ for (const [peerId, agents$1] of Object.entries(bc)) {
257
+ if (peerId === "strategy") continue;
258
+ if (Array.isArray(agents$1)) console.log(` ${chalk.default.white(peerId)} ${chalk.default.gray(`→ [${agents$1.join(", ")}]`)} ${chalk.default.gray(`(${strat})`)}`);
259
+ }
260
+ }
261
+ console.log();
262
+ }
263
+ async bind() {
264
+ console.log(chalk.default.cyan("\n Bind a channel/peer to an agent\n"));
265
+ const { channel, matchType } = await inquirer.default.prompt([{
266
+ type: "input",
267
+ name: "channel",
268
+ message: "Channel ID (e.g. telegram, discord, slack, whatsapp):",
269
+ validate: (v) => v.trim().length > 0 || "Required"
270
+ }, {
271
+ type: "list",
272
+ name: "matchType",
273
+ message: "Match by:",
274
+ choices: [
275
+ {
276
+ name: "Any message on this channel",
277
+ value: "channel"
278
+ },
279
+ {
280
+ name: "Specific peer (group ID, user ID, channel ID)",
281
+ value: "peer"
282
+ },
283
+ {
284
+ name: "Discord guild",
285
+ value: "guild"
286
+ },
287
+ {
288
+ name: "Slack team",
289
+ value: "team"
290
+ },
291
+ {
292
+ name: "Account ID",
293
+ value: "account"
294
+ }
295
+ ]
296
+ }]);
297
+ const match = { channel };
298
+ if (matchType === "peer") {
299
+ const { kind, peerId } = await inquirer.default.prompt([{
300
+ type: "list",
301
+ name: "kind",
302
+ message: "Peer type:",
303
+ choices: [
304
+ "group",
305
+ "channel",
306
+ "dm",
307
+ "room"
308
+ ]
309
+ }, {
310
+ type: "input",
311
+ name: "peerId",
312
+ message: "Peer ID:",
313
+ validate: (v) => v.trim().length > 0 || "Required"
314
+ }]);
315
+ match.peer = {
316
+ kind,
317
+ id: peerId
318
+ };
319
+ } else if (matchType === "guild") {
320
+ const { guildId } = await inquirer.default.prompt([{
321
+ type: "input",
322
+ name: "guildId",
323
+ message: "Discord guild ID:",
324
+ validate: (v) => v.trim().length > 0 || "Required"
325
+ }]);
326
+ match.guildId = guildId;
327
+ } else if (matchType === "team") {
328
+ const { teamId } = await inquirer.default.prompt([{
329
+ type: "input",
330
+ name: "teamId",
331
+ message: "Slack team ID:",
332
+ validate: (v) => v.trim().length > 0 || "Required"
333
+ }]);
334
+ match.teamId = teamId;
335
+ } else if (matchType === "account") {
336
+ const { accountId } = await inquirer.default.prompt([{
337
+ type: "input",
338
+ name: "accountId",
339
+ message: "Account ID:",
340
+ validate: (v) => v.trim().length > 0 || "Required"
341
+ }]);
342
+ match.accountId = accountId;
343
+ }
344
+ const agentIds = (this.config.agents?.list ?? []).map((a) => a.id);
345
+ const { agentId } = await inquirer.default.prompt([{
346
+ type: agentIds.length > 1 ? "list" : "input",
347
+ name: "agentId",
348
+ message: "Route to agent ID:",
349
+ choices: agentIds.length > 1 ? agentIds : void 0,
350
+ default: agentIds[0] ?? "main"
351
+ }]);
352
+ if (!this.config.bindings) this.config.bindings = [];
353
+ this.config.bindings.unshift({
354
+ match,
355
+ agentId,
356
+ createdAt: (/* @__PURE__ */ new Date()).toISOString()
357
+ });
358
+ await this._saveConfig();
359
+ console.log(chalk.default.green(`\n ✔ Binding added: ${channel}/${matchType} → ${agentId}\n`));
360
+ }
361
+ async unbind() {
362
+ const bindings = this.config.bindings ?? [];
363
+ if (bindings.length === 0) {
364
+ console.log(chalk.default.gray("\n No bindings to remove.\n"));
365
+ return;
366
+ }
367
+ const { toRemove } = await inquirer.default.prompt([{
368
+ type: "checkbox",
369
+ name: "toRemove",
370
+ message: "Select bindings to remove:",
371
+ choices: bindings.map((b, i) => ({
372
+ name: `${this._describeMatch(b.match)} → ${b.agentId}`,
373
+ value: i
374
+ }))
375
+ }]);
376
+ for (const idx of toRemove.sort((a, b) => b - a)) bindings.splice(idx, 1);
377
+ this.config.bindings = bindings;
378
+ await this._saveConfig();
379
+ console.log(chalk.default.green(`\n ✔ Removed ${toRemove.length} binding(s)\n`));
380
+ }
381
+ getConfig() {
382
+ return this.config;
383
+ }
384
+ getAgents() {
385
+ return this.config.agents?.list ?? [defaultAgent()];
386
+ }
387
+ getBindings() {
388
+ return this.config.bindings ?? [];
389
+ }
390
+ };
391
+
392
+ //#endregion
393
+ Object.defineProperty(exports, 'AgentRouter', {
394
+ enumerable: true,
395
+ get: function () {
396
+ return AgentRouter;
397
+ }
398
+ });
@@ -0,0 +1,6 @@
1
+ const require_chunk = require('./chunk-jS-bbMI5.js');
2
+ require('./paths-AIyBxIzm.js');
3
+ require('./paths-DPovhojT.js');
4
+ const require_agents_routing = require('./agents-routing-iQmIOe3k.js');
5
+
6
+ exports.AgentRouter = require_agents_routing.AgentRouter;
@@ -0,0 +1,6 @@
1
+ const require_chunk = require('./chunk-jS-bbMI5.js');
2
+ require('./paths-AIyBxIzm.js');
3
+ require('./paths-DPovhojT.js');
4
+ const require_agents_routing = require('./agents-routing-Bz3SstlK.js');
5
+
6
+ exports.AgentRouter = require_agents_routing.AgentRouter;