abtars 0.3.4-alpha.7 → 0.3.4

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 (348) hide show
  1. package/bundle/{_registry.generated-WGR4WOPT.js → _registry.generated-AVR7DK2A.js} +17 -14
  2. package/bundle/{_registry.generated-WGR4WOPT.js.map → _registry.generated-AVR7DK2A.js.map} +1 -1
  3. package/bundle/{abmind-lazy-7Z44NODV.js → abmind-lazy-E3YCFKQ5.js} +15 -5
  4. package/bundle/abtars-browser.js +4 -4
  5. package/bundle/abtars-cli.js +23 -13
  6. package/bundle/abtars-cli.js.map +2 -2
  7. package/bundle/abtars-restart.js +3 -3
  8. package/bundle/abtars-task.js +3 -3
  9. package/bundle/abtars-task.js.map +2 -2
  10. package/bundle/abtars.js +610 -455
  11. package/bundle/abtars.js.map +4 -4
  12. package/bundle/{acp-raw-client-E6FM45NC.js → acp-raw-client-UCNK3OTU.js} +2 -2
  13. package/bundle/{action-gate-G2V47NHW.js → action-gate-V4FCBHFB.js} +2 -2
  14. package/bundle/{agent-api-adapter-YAHKQMMZ.js → agent-api-adapter-7HEPYSIN.js} +3 -3
  15. package/bundle/{agent-api-rate-limit-WCFXJMGY.js → agent-api-rate-limit-RZSAM3SW.js} +4 -4
  16. package/bundle/{agent-registry-GI6CLT3Z.js → agent-registry-46A2R5KP.js} +7 -7
  17. package/bundle/{bootstrap-X2QYIZIJ.js → bootstrap-MIHJJSWU.js} +2 -2
  18. package/bundle/{bridge-lock-transport-4ZH7QTJP.js → bridge-lock-transport-7RSN7OLJ.js} +4 -4
  19. package/bundle/{browser-DMARZJIN.js → browser-F6BCWJWW.js} +6 -6
  20. package/bundle/{budget-45QOBDWA.js → budget-WUM3SPKW.js} +3 -3
  21. package/bundle/{capability-JFWX3IQF.js → capability-QVRKGRFC.js} +5 -5
  22. package/bundle/{chunk-YSKCQH6E.js → chunk-2IYJ4I66.js} +2 -2
  23. package/bundle/{chunk-KTYGKPYM.js → chunk-2NLUT5S2.js} +6 -6
  24. package/bundle/chunk-3BG3AIDP.js +191 -0
  25. package/bundle/chunk-3BG3AIDP.js.map +7 -0
  26. package/bundle/{chunk-OKAQICWY.js → chunk-3GQX34S2.js} +3 -3
  27. package/bundle/{chunk-QROWBWLL.js → chunk-3XZ773BS.js} +2 -2
  28. package/bundle/{chunk-DYBW4XXL.js → chunk-467SRLLR.js} +2 -2
  29. package/bundle/{chunk-LGP6TYFI.js → chunk-4AILRHUI.js} +97 -8
  30. package/bundle/chunk-4AILRHUI.js.map +7 -0
  31. package/bundle/{chunk-GPZNXY2U.js → chunk-4S3H4OK7.js} +4 -4
  32. package/bundle/{chunk-NDCRWEEJ.js → chunk-4Y5MJQRE.js} +6 -6
  33. package/bundle/{chunk-FRKW6LWB.js → chunk-55UWKI5C.js} +3 -3
  34. package/bundle/{chunk-4UL3KINB.js → chunk-5PNJFDSW.js} +8 -8
  35. package/bundle/{chunk-LUNA6PM5.js → chunk-5RVOEFGT.js} +4 -2
  36. package/bundle/{chunk-LUNA6PM5.js.map → chunk-5RVOEFGT.js.map} +2 -2
  37. package/bundle/{chunk-OXTSWQCX.js → chunk-5Y3FJ2Y7.js} +2 -2
  38. package/bundle/{chunk-TMUYFERL.js → chunk-6B5ZFUPD.js} +2 -2
  39. package/bundle/{chunk-65VCEC32.js → chunk-6PA5JBUU.js} +2 -2
  40. package/bundle/chunk-BNXV7SZI.js +195 -0
  41. package/bundle/chunk-BNXV7SZI.js.map +7 -0
  42. package/bundle/{chunk-AFREM7FX.js → chunk-CK7YTA2F.js} +2 -2
  43. package/bundle/{chunk-NRUSRJXR.js → chunk-DZJ5QZFD.js} +2 -2
  44. package/bundle/{chunk-YRSMGJFP.js → chunk-E67KESEG.js} +2 -2
  45. package/bundle/{chunk-ZV4IWKDJ.js → chunk-E7XD5UGB.js} +3 -3
  46. package/bundle/{chunk-GXL7HJPT.js → chunk-EAX5ZZUL.js} +63 -39
  47. package/bundle/chunk-EAX5ZZUL.js.map +7 -0
  48. package/bundle/{chunk-PEDX56EL.js → chunk-EFGBM555.js} +2 -2
  49. package/bundle/{chunk-EQSG2CRM.js → chunk-FGYDIX54.js} +22 -15
  50. package/bundle/chunk-FGYDIX54.js.map +7 -0
  51. package/bundle/{chunk-XWRADSXO.js → chunk-GF6NVNA7.js} +15 -5
  52. package/bundle/chunk-GF6NVNA7.js.map +7 -0
  53. package/bundle/{chunk-SIFPBTI4.js → chunk-HGSHCQ5F.js} +113 -73
  54. package/bundle/chunk-HGSHCQ5F.js.map +7 -0
  55. package/bundle/{chunk-YRU2K3O6.js → chunk-IMIGG5EO.js} +39 -39
  56. package/bundle/chunk-IMIGG5EO.js.map +7 -0
  57. package/bundle/{chunk-W4EA4GCA.js → chunk-ITOFPJAV.js} +43 -31
  58. package/bundle/chunk-ITOFPJAV.js.map +7 -0
  59. package/bundle/{chunk-UPRZDU6T.js → chunk-IY6UKLPS.js} +3 -3
  60. package/bundle/{chunk-EUZDKV3C.js → chunk-J4RUFAPK.js} +3 -3
  61. package/bundle/{chunk-HZDLFLRP.js → chunk-J7DRPVMU.js} +35 -5
  62. package/bundle/chunk-J7DRPVMU.js.map +7 -0
  63. package/bundle/{chunk-EGL6UMAO.js → chunk-JG4BKXBN.js} +7 -1
  64. package/bundle/chunk-JG4BKXBN.js.map +7 -0
  65. package/bundle/{chunk-5B5B6EHL.js → chunk-JLWYPGWI.js} +5 -5
  66. package/bundle/{chunk-5QUTMUIK.js → chunk-JXYWDAHD.js} +12 -12
  67. package/bundle/{chunk-GRVWZO4C.js → chunk-KOSFXW2S.js} +24 -3
  68. package/bundle/{chunk-GRVWZO4C.js.map → chunk-KOSFXW2S.js.map} +1 -1
  69. package/bundle/{chunk-ONBF5DDU.js → chunk-L72RIPEC.js} +248 -182
  70. package/bundle/chunk-L72RIPEC.js.map +7 -0
  71. package/bundle/{chunk-TEFZ4JA4.js → chunk-NHPLD3C7.js} +2 -2
  72. package/bundle/{chunk-2KC5G3EA.js → chunk-OWUO5RS3.js} +5 -5
  73. package/bundle/{chunk-4MULJ5SS.js → chunk-OY4Q6AMY.js} +71 -49
  74. package/bundle/chunk-OY4Q6AMY.js.map +7 -0
  75. package/bundle/{chunk-WBTJ2E62.js → chunk-P3NODAHF.js} +2 -5
  76. package/bundle/{chunk-WBTJ2E62.js.map → chunk-P3NODAHF.js.map} +2 -2
  77. package/bundle/{chunk-BROFMHC2.js → chunk-PB5GF4FG.js} +334 -237
  78. package/bundle/chunk-PB5GF4FG.js.map +7 -0
  79. package/bundle/{chunk-WYHGNI56.js → chunk-PMD5BLFS.js} +6 -6
  80. package/bundle/{chunk-URQPDCK5.js → chunk-Q66LQMMZ.js} +3 -3
  81. package/bundle/{chunk-HKRSMUXJ.js → chunk-SC2Y5NR2.js} +71 -132
  82. package/bundle/chunk-SC2Y5NR2.js.map +7 -0
  83. package/bundle/chunk-SFL4EPCZ.js +555 -0
  84. package/bundle/chunk-SFL4EPCZ.js.map +7 -0
  85. package/bundle/{chunk-LDUOOKQY.js → chunk-SJPUNDZ3.js} +5 -5
  86. package/bundle/{chunk-LDUOOKQY.js.map → chunk-SJPUNDZ3.js.map} +1 -1
  87. package/bundle/{chunk-JQDJPUHM.js → chunk-TWB2ZGVH.js} +2 -2
  88. package/bundle/{chunk-IJT4KWXT.js → chunk-U4U47YE7.js} +2 -2
  89. package/bundle/{chunk-2FAZIA37.js → chunk-W546CU3A.js} +3 -3
  90. package/bundle/chunk-WC5O5KOE.js +211 -0
  91. package/bundle/chunk-WC5O5KOE.js.map +7 -0
  92. package/bundle/{chunk-JNIHEDKF.js → chunk-XPWYDNWL.js} +2 -2
  93. package/bundle/{chunk-GWILHZPT.js → chunk-XRTXYN66.js} +10 -7
  94. package/bundle/{chunk-GWILHZPT.js.map → chunk-XRTXYN66.js.map} +2 -2
  95. package/bundle/{chunk-EFJVUJBE.js → chunk-Y5FEFKGM.js} +6 -6
  96. package/bundle/chunk-YJZE4OK3.js +169 -0
  97. package/bundle/chunk-YJZE4OK3.js.map +7 -0
  98. package/bundle/{chunk-GVM5YU5I.js → chunk-Z4FZPB42.js} +2 -2
  99. package/bundle/{chunk-7BSQ5UQO.js → chunk-ZSIDQ66D.js} +3 -3
  100. package/bundle/{chunk-XX6BGTPO.js → chunk-ZZZCJJEO.js} +4 -4
  101. package/bundle/{commands-XYEGVUZF.js → commands-2ZW6CMLC.js} +17 -16
  102. package/bundle/{config-M3P5IOAI.js → config-YMY5YHKN.js} +6 -6
  103. package/bundle/{context-2RJHC2LE.js → context-CL2RSLII.js} +7 -5
  104. package/bundle/context-CL2RSLII.js.map +7 -0
  105. package/bundle/{daemon-TB23FFWY.js → daemon-D7SU63OY.js} +3 -3
  106. package/bundle/{delegation-tools-QKNYQGTQ.js → delegation-tools-WS7Z56KZ.js} +12 -12
  107. package/bundle/{deploy-EPDWNHJU.js → deploy-AMTVKIMU.js} +2 -2
  108. package/bundle/{deps-WVK553KF.js → deps-T63AVJKJ.js} +3 -3
  109. package/bundle/{direct-api-transport-E3LNDBJT.js → direct-api-transport-QNNY2WWP.js} +56 -33
  110. package/bundle/direct-api-transport-QNNY2WWP.js.map +7 -0
  111. package/bundle/{discord-adapter-IT3KP3VB.js → discord-adapter-ABAD56Y2.js} +21 -20
  112. package/bundle/{discord-adapter-IT3KP3VB.js.map → discord-adapter-ABAD56Y2.js.map} +1 -1
  113. package/bundle/{dns-wakeup-IDOJIXBX.js → dns-wakeup-V3LEFXPE.js} +9 -33
  114. package/bundle/dns-wakeup-V3LEFXPE.js.map +7 -0
  115. package/bundle/{doctor-probes-B54JFIW3.js → doctor-probes-O6YI6XSZ.js} +6 -2
  116. package/bundle/{env-schema-4JXQUOH4.js → env-schema-B5RB32DC.js} +3 -3
  117. package/bundle/{gossip-3C3BSNPN.js → gossip-SKRCPOBS.js} +9 -5
  118. package/bundle/{guardrails-DL7ZSWVN.js → guardrails-64GQ5Y5K.js} +4 -4
  119. package/bundle/{heartbeat-system-MVTRS4GP.js → heartbeat-system-X4MUTKJD.js} +6 -6
  120. package/bundle/{heartbeat-tier3-ABWL3P7M.js → heartbeat-tier3-2PTPWEQQ.js} +53 -76
  121. package/bundle/heartbeat-tier3-2PTPWEQQ.js.map +7 -0
  122. package/bundle/{hook-system-M3POLUIB.js → hook-system-YB635OC4.js} +3 -3
  123. package/bundle/{hotskills-FWX4QI7V.js → hotskills-Q75D2DK3.js} +5 -5
  124. package/bundle/{install-OS3CU7NF.js → install-RFKKFSGS.js} +17 -30
  125. package/bundle/install-RFKKFSGS.js.map +7 -0
  126. package/bundle/{install-manifest-5PPWMD2W.js → install-manifest-J7ICPCJN.js} +2 -2
  127. package/bundle/{irc-adapter-PTTZD32W.js → irc-adapter-TVEV4R6H.js} +3 -3
  128. package/bundle/{irc-config-CP7ZMUOX.js → irc-config-M676FOFI.js} +4 -4
  129. package/bundle/{kanban-board-M326B2XJ.js → kanban-board-DLEJUCNN.js} +9 -7
  130. package/bundle/{kanban-channel-IJ52OMNA.js → kanban-channel-XOLUHJZJ.js} +6 -6
  131. package/bundle/kanban-delivery-C4QPBNPX.js +45 -0
  132. package/bundle/kanban-delivery-C4QPBNPX.js.map +7 -0
  133. package/bundle/{lazy-require-KCRVT4SI.js → lazy-require-JKQSALXN.js} +3 -3
  134. package/bundle/{logger-OWCSNYCA.js → logger-3EGHBD4R.js} +2 -2
  135. package/bundle/{main-chat-ZNUZCTNS.js → main-chat-3H63REKK.js} +4 -4
  136. package/bundle/{master-user-HSKM4ZFN.js → master-user-MUBUP3KD.js} +5 -5
  137. package/bundle/{media-utils-3ZYOD7SK.js → media-utils-HUUIALAJ.js} +3 -3
  138. package/bundle/{message-pipeline-P5GAQU4Z.js → message-pipeline-GRDRWONR.js} +17 -16
  139. package/bundle/meta.json +3699 -3138
  140. package/bundle/{metrics-collector-L3VPEHII.js → metrics-collector-YMUGY3PI.js} +31 -2
  141. package/bundle/metrics-collector-YMUGY3PI.js.map +7 -0
  142. package/bundle/{model-health-registry-MLEIZSTV.js → model-health-registry-QADMFQFQ.js} +2 -2
  143. package/bundle/{nerve-IGSXBKZZ.js → nerve-QPAEBRKX.js} +3 -3
  144. package/bundle/{notification-BFSIEECG.js → notification-3JICGXWU.js} +6 -6
  145. package/bundle/{openrouter-credits-NTVZDRYM.js → openrouter-credits-7NEIPYJN.js} +3 -3
  146. package/bundle/{orc-tools-4CHEFWSN.js → orc-tools-UZVPONKY.js} +5 -3
  147. package/bundle/{peer-auth-QC4EF2PM.js → peer-auth-RI43DKJE.js} +24 -15
  148. package/bundle/{peer-client-RGEU5HOK.js → peer-client-UITTMWJ2.js} +34 -29
  149. package/bundle/peer-client-UITTMWJ2.js.map +7 -0
  150. package/bundle/{peer-config-TN55LFDC.js → peer-config-URM7DCW6.js} +9 -4
  151. package/bundle/{peer-transport-I6JPLFZ2.js → peer-transport-SI7I72DB.js} +12 -10
  152. package/bundle/{phase-transport-PGKU2KD4.js → phase-transport-ESWWACZI.js} +17 -17
  153. package/bundle/{reconcile-CTFCLQRN.js → reconcile-GFDQYNBD.js} +3 -3
  154. package/bundle/{reconciler-EBKH3JNU.js → reconciler-IEUJXJN2.js} +12 -12
  155. package/bundle/{restore-IFHPI7I7.js → restore-FARTGLQQ.js} +3 -3
  156. package/bundle/{rollback-ANRI3T5Z.js → rollback-GEWPZABG.js} +2 -2
  157. package/bundle/{sandbox-runtime-QROWHDCS.js → sandbox-runtime-DV6E25J6.js} +2 -2
  158. package/bundle/{self-healer-utils-IFAYOQO2.js → self-healer-utils-P4SKNNEM.js} +3 -3
  159. package/bundle/{sha-tracker-ZWBP6CIJ.js → sha-tracker-77SHLYNY.js} +3 -3
  160. package/bundle/{skill-session-BMSRQSHV.js → skill-session-5HSMXY54.js} +3 -3
  161. package/bundle/{skill-stats-JORH5DGM.js → skill-stats-MI3RSWWL.js} +4 -4
  162. package/bundle/{skill-watcher-E4MGLKLS.js → skill-watcher-5L7JE6TN.js} +4 -4
  163. package/bundle/{sleep-36XS6MHJ.js → sleep-I4JFASCY.js} +11 -8
  164. package/bundle/{soul-bundle-VWAVHCZ6.js → soul-bundle-522C3IRH.js} +9 -8
  165. package/bundle/{spin-TI3TSVVT.js → spin-VHNGNWTD.js} +11 -11
  166. package/bundle/{spin-notifications-SE2HVZI7.js → spin-notifications-7NC5XZEM.js} +5 -5
  167. package/bundle/{spin-types-BLPYAETA.js → spin-types-C5KOQOPD.js} +7 -3
  168. package/bundle/{sse-parser-anthropic-A6R4Z2TB.js → sse-parser-anthropic-MMTVWHLI.js} +3 -3
  169. package/bundle/{sse-parser-responses-HSZY3QGJ.js → sse-parser-responses-3AOFN64C.js} +3 -3
  170. package/bundle/{ssrf-guard-O6SHIK6Q.js → ssrf-guard-U2JA72TC.js} +3 -3
  171. package/bundle/{start-7QZIWO3S.js → start-H5IUFAWF.js} +4 -2
  172. package/bundle/{start-7QZIWO3S.js.map → start-H5IUFAWF.js.map} +2 -2
  173. package/bundle/{stt-LGVPXMVR.js → stt-PSOPPBV4.js} +4 -4
  174. package/bundle/{system-status-JZU5FO7B.js → system-status-4LYGOFNO.js} +38 -24
  175. package/bundle/system-status-4LYGOFNO.js.map +7 -0
  176. package/bundle/{task-store-W5BFIAIH.js → task-store-MNCW42BW.js} +4 -4
  177. package/bundle/{telegram-adapter-H6PMFPMB.js → telegram-adapter-O6KIZDY6.js} +69 -46
  178. package/bundle/telegram-adapter-O6KIZDY6.js.map +7 -0
  179. package/bundle/{tool-registry-IZX2IOBM.js → tool-registry-JJMWCQKZ.js} +26 -24
  180. package/bundle/{tool-sandbox-4UC6GAKA.js → tool-sandbox-CNL6V6IH.js} +4 -4
  181. package/bundle/{transport-config-KBF5W2DP.js → transport-config-6MB2K2XC.js} +7 -7
  182. package/bundle/tribe-GDTFYJTK.js +111 -0
  183. package/bundle/tribe-GDTFYJTK.js.map +7 -0
  184. package/bundle/{update-MESYO4LO.js → update-HGQAOC5L.js} +3 -3
  185. package/bundle/{usage-tracker-NXD364VX.js → usage-tracker-SR4BI6ZT.js} +2 -2
  186. package/bundle/{user-registry-35BW4XKM.js → user-registry-4PACZJIJ.js} +4 -4
  187. package/bundle/wire-platform-KKPWNNNQ.js +88 -0
  188. package/bundle/wire-platform-KKPWNNNQ.js.map +7 -0
  189. package/bundle/ws-peer-client-U3NNPOK7.js +370 -0
  190. package/bundle/ws-peer-client-U3NNPOK7.js.map +7 -0
  191. package/package.json +1 -1
  192. package/scripts/abtars-watchdog.service +2 -1
  193. package/scripts/abtars-watchdog.sh +1 -5
  194. package/scripts/emergency-deploy.sh +2 -2
  195. package/scripts/emergency-update.sh +88 -41
  196. package/bundle/chunk-3AAENI2K.js +0 -210
  197. package/bundle/chunk-3AAENI2K.js.map +0 -7
  198. package/bundle/chunk-4MULJ5SS.js.map +0 -7
  199. package/bundle/chunk-4S554KLW.js +0 -105
  200. package/bundle/chunk-4S554KLW.js.map +0 -7
  201. package/bundle/chunk-5GCLBUBS.js +0 -257
  202. package/bundle/chunk-5GCLBUBS.js.map +0 -7
  203. package/bundle/chunk-BROFMHC2.js.map +0 -7
  204. package/bundle/chunk-EGL6UMAO.js.map +0 -7
  205. package/bundle/chunk-EQSG2CRM.js.map +0 -7
  206. package/bundle/chunk-GXL7HJPT.js.map +0 -7
  207. package/bundle/chunk-HKRSMUXJ.js.map +0 -7
  208. package/bundle/chunk-HT2BPTZY.js +0 -241
  209. package/bundle/chunk-HT2BPTZY.js.map +0 -7
  210. package/bundle/chunk-HZDLFLRP.js.map +0 -7
  211. package/bundle/chunk-IKUZPMVA.js +0 -82
  212. package/bundle/chunk-IKUZPMVA.js.map +0 -7
  213. package/bundle/chunk-LGP6TYFI.js.map +0 -7
  214. package/bundle/chunk-ONBF5DDU.js.map +0 -7
  215. package/bundle/chunk-RWRRGE4U.js +0 -72
  216. package/bundle/chunk-RWRRGE4U.js.map +0 -7
  217. package/bundle/chunk-SIFPBTI4.js.map +0 -7
  218. package/bundle/chunk-VUIX5AGB.js +0 -65
  219. package/bundle/chunk-VUIX5AGB.js.map +0 -7
  220. package/bundle/chunk-W4EA4GCA.js.map +0 -7
  221. package/bundle/chunk-XWRADSXO.js.map +0 -7
  222. package/bundle/chunk-Y76VUJSF.js +0 -75
  223. package/bundle/chunk-Y76VUJSF.js.map +0 -7
  224. package/bundle/chunk-YRU2K3O6.js.map +0 -7
  225. package/bundle/context-2RJHC2LE.js.map +0 -7
  226. package/bundle/direct-api-transport-E3LNDBJT.js.map +0 -7
  227. package/bundle/dns-wakeup-IDOJIXBX.js.map +0 -7
  228. package/bundle/heartbeat-tier3-ABWL3P7M.js.map +0 -7
  229. package/bundle/install-OS3CU7NF.js.map +0 -7
  230. package/bundle/metrics-collector-L3VPEHII.js.map +0 -7
  231. package/bundle/peer-client-RGEU5HOK.js.map +0 -7
  232. package/bundle/peer-jwt-NCCPXJRX.js +0 -18
  233. package/bundle/public/css/dashboard.css +0 -542
  234. package/bundle/public/index.html +0 -180
  235. package/bundle/public/js/app.js +0 -437
  236. package/bundle/public/memory-universe.js +0 -384
  237. package/bundle/stream-single-RFJNUTL6.js +0 -34
  238. package/bundle/stream-single-RFJNUTL6.js.map +0 -7
  239. package/bundle/subagent-runtime-5QUVES3W.js +0 -14
  240. package/bundle/system-status-JZU5FO7B.js.map +0 -7
  241. package/bundle/telegram-adapter-H6PMFPMB.js.map +0 -7
  242. package/bundle/usage-tracker-NXD364VX.js.map +0 -7
  243. package/bundle/user-registry-35BW4XKM.js.map +0 -7
  244. package/bundle/ws-peer-client-AIXCXF7V.js +0 -173
  245. package/bundle/ws-peer-client-AIXCXF7V.js.map +0 -7
  246. /package/bundle/{abmind-lazy-7Z44NODV.js.map → abmind-lazy-E3YCFKQ5.js.map} +0 -0
  247. /package/bundle/{acp-raw-client-E6FM45NC.js.map → acp-raw-client-UCNK3OTU.js.map} +0 -0
  248. /package/bundle/{action-gate-G2V47NHW.js.map → action-gate-V4FCBHFB.js.map} +0 -0
  249. /package/bundle/{agent-api-adapter-YAHKQMMZ.js.map → agent-api-adapter-7HEPYSIN.js.map} +0 -0
  250. /package/bundle/{agent-api-rate-limit-WCFXJMGY.js.map → agent-api-rate-limit-RZSAM3SW.js.map} +0 -0
  251. /package/bundle/{agent-registry-GI6CLT3Z.js.map → agent-registry-46A2R5KP.js.map} +0 -0
  252. /package/bundle/{bootstrap-X2QYIZIJ.js.map → bootstrap-MIHJJSWU.js.map} +0 -0
  253. /package/bundle/{bridge-lock-transport-4ZH7QTJP.js.map → bridge-lock-transport-7RSN7OLJ.js.map} +0 -0
  254. /package/bundle/{browser-DMARZJIN.js.map → browser-F6BCWJWW.js.map} +0 -0
  255. /package/bundle/{budget-45QOBDWA.js.map → budget-WUM3SPKW.js.map} +0 -0
  256. /package/bundle/{capability-JFWX3IQF.js.map → capability-QVRKGRFC.js.map} +0 -0
  257. /package/bundle/{chunk-YSKCQH6E.js.map → chunk-2IYJ4I66.js.map} +0 -0
  258. /package/bundle/{chunk-KTYGKPYM.js.map → chunk-2NLUT5S2.js.map} +0 -0
  259. /package/bundle/{chunk-OKAQICWY.js.map → chunk-3GQX34S2.js.map} +0 -0
  260. /package/bundle/{chunk-QROWBWLL.js.map → chunk-3XZ773BS.js.map} +0 -0
  261. /package/bundle/{chunk-DYBW4XXL.js.map → chunk-467SRLLR.js.map} +0 -0
  262. /package/bundle/{chunk-GPZNXY2U.js.map → chunk-4S3H4OK7.js.map} +0 -0
  263. /package/bundle/{chunk-NDCRWEEJ.js.map → chunk-4Y5MJQRE.js.map} +0 -0
  264. /package/bundle/{chunk-FRKW6LWB.js.map → chunk-55UWKI5C.js.map} +0 -0
  265. /package/bundle/{chunk-4UL3KINB.js.map → chunk-5PNJFDSW.js.map} +0 -0
  266. /package/bundle/{chunk-OXTSWQCX.js.map → chunk-5Y3FJ2Y7.js.map} +0 -0
  267. /package/bundle/{chunk-TMUYFERL.js.map → chunk-6B5ZFUPD.js.map} +0 -0
  268. /package/bundle/{chunk-65VCEC32.js.map → chunk-6PA5JBUU.js.map} +0 -0
  269. /package/bundle/{chunk-AFREM7FX.js.map → chunk-CK7YTA2F.js.map} +0 -0
  270. /package/bundle/{chunk-NRUSRJXR.js.map → chunk-DZJ5QZFD.js.map} +0 -0
  271. /package/bundle/{chunk-YRSMGJFP.js.map → chunk-E67KESEG.js.map} +0 -0
  272. /package/bundle/{chunk-ZV4IWKDJ.js.map → chunk-E7XD5UGB.js.map} +0 -0
  273. /package/bundle/{chunk-PEDX56EL.js.map → chunk-EFGBM555.js.map} +0 -0
  274. /package/bundle/{chunk-UPRZDU6T.js.map → chunk-IY6UKLPS.js.map} +0 -0
  275. /package/bundle/{chunk-EUZDKV3C.js.map → chunk-J4RUFAPK.js.map} +0 -0
  276. /package/bundle/{chunk-5B5B6EHL.js.map → chunk-JLWYPGWI.js.map} +0 -0
  277. /package/bundle/{chunk-5QUTMUIK.js.map → chunk-JXYWDAHD.js.map} +0 -0
  278. /package/bundle/{chunk-TEFZ4JA4.js.map → chunk-NHPLD3C7.js.map} +0 -0
  279. /package/bundle/{chunk-2KC5G3EA.js.map → chunk-OWUO5RS3.js.map} +0 -0
  280. /package/bundle/{chunk-WYHGNI56.js.map → chunk-PMD5BLFS.js.map} +0 -0
  281. /package/bundle/{chunk-URQPDCK5.js.map → chunk-Q66LQMMZ.js.map} +0 -0
  282. /package/bundle/{chunk-JQDJPUHM.js.map → chunk-TWB2ZGVH.js.map} +0 -0
  283. /package/bundle/{chunk-IJT4KWXT.js.map → chunk-U4U47YE7.js.map} +0 -0
  284. /package/bundle/{chunk-2FAZIA37.js.map → chunk-W546CU3A.js.map} +0 -0
  285. /package/bundle/{chunk-JNIHEDKF.js.map → chunk-XPWYDNWL.js.map} +0 -0
  286. /package/bundle/{chunk-EFJVUJBE.js.map → chunk-Y5FEFKGM.js.map} +0 -0
  287. /package/bundle/{chunk-GVM5YU5I.js.map → chunk-Z4FZPB42.js.map} +0 -0
  288. /package/bundle/{chunk-7BSQ5UQO.js.map → chunk-ZSIDQ66D.js.map} +0 -0
  289. /package/bundle/{chunk-XX6BGTPO.js.map → chunk-ZZZCJJEO.js.map} +0 -0
  290. /package/bundle/{commands-XYEGVUZF.js.map → commands-2ZW6CMLC.js.map} +0 -0
  291. /package/bundle/{config-M3P5IOAI.js.map → config-YMY5YHKN.js.map} +0 -0
  292. /package/bundle/{daemon-TB23FFWY.js.map → daemon-D7SU63OY.js.map} +0 -0
  293. /package/bundle/{delegation-tools-QKNYQGTQ.js.map → delegation-tools-WS7Z56KZ.js.map} +0 -0
  294. /package/bundle/{deploy-EPDWNHJU.js.map → deploy-AMTVKIMU.js.map} +0 -0
  295. /package/bundle/{deps-WVK553KF.js.map → deps-T63AVJKJ.js.map} +0 -0
  296. /package/bundle/{doctor-probes-B54JFIW3.js.map → doctor-probes-O6YI6XSZ.js.map} +0 -0
  297. /package/bundle/{env-schema-4JXQUOH4.js.map → env-schema-B5RB32DC.js.map} +0 -0
  298. /package/bundle/{gossip-3C3BSNPN.js.map → gossip-SKRCPOBS.js.map} +0 -0
  299. /package/bundle/{guardrails-DL7ZSWVN.js.map → guardrails-64GQ5Y5K.js.map} +0 -0
  300. /package/bundle/{heartbeat-system-MVTRS4GP.js.map → heartbeat-system-X4MUTKJD.js.map} +0 -0
  301. /package/bundle/{hook-system-M3POLUIB.js.map → hook-system-YB635OC4.js.map} +0 -0
  302. /package/bundle/{hotskills-FWX4QI7V.js.map → hotskills-Q75D2DK3.js.map} +0 -0
  303. /package/bundle/{install-manifest-5PPWMD2W.js.map → install-manifest-J7ICPCJN.js.map} +0 -0
  304. /package/bundle/{irc-adapter-PTTZD32W.js.map → irc-adapter-TVEV4R6H.js.map} +0 -0
  305. /package/bundle/{irc-config-CP7ZMUOX.js.map → irc-config-M676FOFI.js.map} +0 -0
  306. /package/bundle/{kanban-board-M326B2XJ.js.map → kanban-board-DLEJUCNN.js.map} +0 -0
  307. /package/bundle/{kanban-channel-IJ52OMNA.js.map → kanban-channel-XOLUHJZJ.js.map} +0 -0
  308. /package/bundle/{lazy-require-KCRVT4SI.js.map → lazy-require-JKQSALXN.js.map} +0 -0
  309. /package/bundle/{logger-OWCSNYCA.js.map → logger-3EGHBD4R.js.map} +0 -0
  310. /package/bundle/{main-chat-ZNUZCTNS.js.map → main-chat-3H63REKK.js.map} +0 -0
  311. /package/bundle/{master-user-HSKM4ZFN.js.map → master-user-MUBUP3KD.js.map} +0 -0
  312. /package/bundle/{media-utils-3ZYOD7SK.js.map → media-utils-HUUIALAJ.js.map} +0 -0
  313. /package/bundle/{message-pipeline-P5GAQU4Z.js.map → message-pipeline-GRDRWONR.js.map} +0 -0
  314. /package/bundle/{model-health-registry-MLEIZSTV.js.map → model-health-registry-QADMFQFQ.js.map} +0 -0
  315. /package/bundle/{nerve-IGSXBKZZ.js.map → nerve-QPAEBRKX.js.map} +0 -0
  316. /package/bundle/{notification-BFSIEECG.js.map → notification-3JICGXWU.js.map} +0 -0
  317. /package/bundle/{openrouter-credits-NTVZDRYM.js.map → openrouter-credits-7NEIPYJN.js.map} +0 -0
  318. /package/bundle/{orc-tools-4CHEFWSN.js.map → orc-tools-UZVPONKY.js.map} +0 -0
  319. /package/bundle/{peer-auth-QC4EF2PM.js.map → peer-auth-RI43DKJE.js.map} +0 -0
  320. /package/bundle/{peer-config-TN55LFDC.js.map → peer-config-URM7DCW6.js.map} +0 -0
  321. /package/bundle/{peer-jwt-NCCPXJRX.js.map → peer-transport-SI7I72DB.js.map} +0 -0
  322. /package/bundle/{peer-transport-I6JPLFZ2.js.map → phase-transport-ESWWACZI.js.map} +0 -0
  323. /package/bundle/{phase-transport-PGKU2KD4.js.map → reconcile-GFDQYNBD.js.map} +0 -0
  324. /package/bundle/{reconciler-EBKH3JNU.js.map → reconciler-IEUJXJN2.js.map} +0 -0
  325. /package/bundle/{restore-IFHPI7I7.js.map → restore-FARTGLQQ.js.map} +0 -0
  326. /package/bundle/{reconcile-CTFCLQRN.js.map → rollback-GEWPZABG.js.map} +0 -0
  327. /package/bundle/{sandbox-runtime-QROWHDCS.js.map → sandbox-runtime-DV6E25J6.js.map} +0 -0
  328. /package/bundle/{self-healer-utils-IFAYOQO2.js.map → self-healer-utils-P4SKNNEM.js.map} +0 -0
  329. /package/bundle/{rollback-ANRI3T5Z.js.map → sha-tracker-77SHLYNY.js.map} +0 -0
  330. /package/bundle/{skill-session-BMSRQSHV.js.map → skill-session-5HSMXY54.js.map} +0 -0
  331. /package/bundle/{sha-tracker-ZWBP6CIJ.js.map → skill-stats-MI3RSWWL.js.map} +0 -0
  332. /package/bundle/{skill-stats-JORH5DGM.js.map → skill-watcher-5L7JE6TN.js.map} +0 -0
  333. /package/bundle/{skill-watcher-E4MGLKLS.js.map → sleep-I4JFASCY.js.map} +0 -0
  334. /package/bundle/{sleep-36XS6MHJ.js.map → soul-bundle-522C3IRH.js.map} +0 -0
  335. /package/bundle/{soul-bundle-VWAVHCZ6.js.map → spin-VHNGNWTD.js.map} +0 -0
  336. /package/bundle/{spin-notifications-SE2HVZI7.js.map → spin-notifications-7NC5XZEM.js.map} +0 -0
  337. /package/bundle/{spin-TI3TSVVT.js.map → spin-types-C5KOQOPD.js.map} +0 -0
  338. /package/bundle/{sse-parser-anthropic-A6R4Z2TB.js.map → sse-parser-anthropic-MMTVWHLI.js.map} +0 -0
  339. /package/bundle/{sse-parser-responses-HSZY3QGJ.js.map → sse-parser-responses-3AOFN64C.js.map} +0 -0
  340. /package/bundle/{ssrf-guard-O6SHIK6Q.js.map → ssrf-guard-U2JA72TC.js.map} +0 -0
  341. /package/bundle/{spin-types-BLPYAETA.js.map → stt-PSOPPBV4.js.map} +0 -0
  342. /package/bundle/{stt-LGVPXMVR.js.map → task-store-MNCW42BW.js.map} +0 -0
  343. /package/bundle/{subagent-runtime-5QUVES3W.js.map → tool-registry-JJMWCQKZ.js.map} +0 -0
  344. /package/bundle/{task-store-W5BFIAIH.js.map → tool-sandbox-CNL6V6IH.js.map} +0 -0
  345. /package/bundle/{tool-registry-IZX2IOBM.js.map → transport-config-6MB2K2XC.js.map} +0 -0
  346. /package/bundle/{tool-sandbox-4UC6GAKA.js.map → update-HGQAOC5L.js.map} +0 -0
  347. /package/bundle/{transport-config-KBF5W2DP.js.map → usage-tracker-SR4BI6ZT.js.map} +0 -0
  348. /package/bundle/{update-MESYO4LO.js.map → user-registry-4PACZJIJ.js.map} +0 -0
@@ -1,105 +0,0 @@
1
- #!/usr/bin/env node
2
- import { createRequire as __bundleCreateRequire } from 'node:module'; import { fileURLToPath as __bundleFileURLToPath } from 'node:url'; import { dirname as __bundleDirname } from 'node:path'; const require = __bundleCreateRequire(import.meta.url); const __chunk_filename = __bundleFileURLToPath(import.meta.url); const __chunk_dirname = __bundleDirname(__chunk_filename);
3
- import {
4
- PEERS_SCHEMA,
5
- init_config_validator,
6
- validateShape
7
- } from "./chunk-LUNA6PM5.js";
8
- import {
9
- init_logger,
10
- logInfo,
11
- logWarn
12
- } from "./chunk-GWILHZPT.js";
13
- import {
14
- abtarsHome,
15
- init_paths
16
- } from "./chunk-GALQBVKO.js";
17
- import {
18
- __esm,
19
- __export
20
- } from "./chunk-7K2YZTLD.js";
21
-
22
- // src/components/peer-config.ts
23
- var peer_config_exports = {};
24
- __export(peer_config_exports, {
25
- clearPeerConfigCache: () => clearPeerConfigCache,
26
- loadPeerConfig: () => loadPeerConfig
27
- });
28
- import { existsSync, readFileSync } from "node:fs";
29
- import { join } from "node:path";
30
- function loadPeerConfig() {
31
- if (_config) return _config;
32
- const p = join(abtarsHome(), "config", "peers.json");
33
- if (!existsSync(p)) {
34
- _config = { self: { name: "default" }, peers: {}, ...DEFAULTS };
35
- return _config;
36
- }
37
- try {
38
- const raw = JSON.parse(readFileSync(p, "utf-8"));
39
- validateShape(raw, PEERS_SCHEMA, "peers.json");
40
- const peers = {};
41
- if (raw.peers && typeof raw.peers === "object") {
42
- for (const [name, entry] of Object.entries(raw.peers)) {
43
- const e = entry;
44
- if (typeof e.host === "string" && typeof e.port === "number" && typeof e.token === "string") {
45
- peers[name] = {
46
- host: e.host,
47
- port: e.port,
48
- token: e.token,
49
- ...typeof e.trust === "number" ? { trust: e.trust } : {},
50
- ...e.mode === "signed" ? { mode: "signed" } : {},
51
- ...typeof e.verifyKey === "string" ? { verifyKey: e.verifyKey } : {},
52
- ...typeof e.udpPort === "number" ? { udpPort: e.udpPort } : {},
53
- ...typeof e.certFingerprint === "string" ? { certFingerprint: e.certFingerprint } : {},
54
- ...typeof e.certPem === "string" ? { certPem: e.certPem } : {},
55
- ...Array.isArray(e.allowedTools) ? { allowedTools: e.allowedTools } : {},
56
- ...Array.isArray(e.allowedRead) ? { allowedRead: e.allowedRead } : {},
57
- ...Array.isArray(e.allowedWrite) ? { allowedWrite: e.allowedWrite } : {}
58
- };
59
- } else {
60
- logWarn(TAG, `Skipped peer '${name}' \u2014 missing host/port/token`);
61
- }
62
- }
63
- }
64
- _config = {
65
- self: {
66
- name: typeof raw.self?.name === "string" ? raw.self.name : "default",
67
- ...typeof raw.self?.signingKey === "string" ? { signingKey: raw.self.signingKey } : {},
68
- ...typeof raw.self?.udpPort === "number" ? { udpPort: raw.self.udpPort } : {}
69
- },
70
- peers,
71
- ...typeof raw.gossipSecret === "string" ? { gossipSecret: raw.gossipSecret } : {},
72
- maxHops: typeof raw.maxHops === "number" ? raw.maxHops : DEFAULTS.maxHops,
73
- timeoutMs: typeof raw.timeoutMs === "number" ? raw.timeoutMs : DEFAULTS.timeoutMs
74
- };
75
- const names = Object.keys(peers);
76
- if (names.length > 0) logInfo(TAG, `Loaded ${names.length} peer(s): ${names.join(", ")} (self: ${_config.self.name})`);
77
- return _config;
78
- } catch (err) {
79
- logWarn(TAG, `Failed to parse peers.json: ${err instanceof Error ? err.message : String(err)}`);
80
- _config = { self: { name: "default" }, peers: {}, ...DEFAULTS };
81
- return _config;
82
- }
83
- }
84
- function clearPeerConfigCache() {
85
- _config = null;
86
- }
87
- var TAG, DEFAULTS, _config;
88
- var init_peer_config = __esm({
89
- "src/components/peer-config.ts"() {
90
- init_paths();
91
- init_logger();
92
- init_config_validator();
93
- TAG = "peer-config";
94
- DEFAULTS = { maxHops: 12, timeoutMs: 6e4 };
95
- _config = null;
96
- }
97
- });
98
-
99
- export {
100
- loadPeerConfig,
101
- clearPeerConfigCache,
102
- peer_config_exports,
103
- init_peer_config
104
- };
105
- //# sourceMappingURL=chunk-4S554KLW.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/peer-config.ts"],
4
- "sourcesContent": ["/**\n * peer-config.ts \u2014 load and validate ~/.abtars/config/peers.json (#392).\n */\n\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { abtarsHome } from \"../paths.js\";\nimport { logInfo, logWarn } from \"./logger.js\";\nimport { validateShape, PEERS_SCHEMA } from \"./config-validator.js\";\n\nconst TAG = \"peer-config\";\n\nexport interface PeerEntry {\n host: string;\n port: number;\n token: string;\n trust?: number;\n mode?: \"plain\" | \"signed\";\n verifyKey?: string;\n udpPort?: number;\n certFingerprint?: string;\n certPem?: string;\n allowedTools?: string[];\n allowedRead?: string[];\n allowedWrite?: string[];\n transport?: \"http\" | \"ws-outbound\";\n}\n\nexport interface PeerConfig {\n self: { name: string; signingKey?: string; udpPort?: number };\n peers: Record<string, PeerEntry>;\n gossipSecret?: string;\n maxHops: number;\n timeoutMs: number;\n}\n\nconst DEFAULTS: Omit<PeerConfig, \"peers\" | \"self\"> = { maxHops: 12, timeoutMs: 60000 };\n\nlet _config: PeerConfig | null = null;\n\nexport function loadPeerConfig(): PeerConfig {\n if (_config) return _config;\n const p = join(abtarsHome(), \"config\", \"peers.json\");\n if (!existsSync(p)) {\n _config = { self: { name: \"default\" }, peers: {}, ...DEFAULTS };\n return _config;\n }\n try {\n const raw = JSON.parse(readFileSync(p, \"utf-8\"));\n validateShape(raw, PEERS_SCHEMA, \"peers.json\");\n const peers: Record<string, PeerEntry> = {};\n if (raw.peers && typeof raw.peers === \"object\") {\n for (const [name, entry] of Object.entries(raw.peers)) {\n const e = entry as Record<string, unknown>;\n if (typeof e.host === \"string\" && typeof e.port === \"number\" && typeof e.token === \"string\") {\n peers[name] = {\n host: e.host, port: e.port, token: e.token,\n ...(typeof e.trust === \"number\" ? { trust: e.trust } : {}),\n ...(e.mode === \"signed\" ? { mode: \"signed\" as const } : {}),\n ...(typeof e.verifyKey === \"string\" ? { verifyKey: e.verifyKey } : {}),\n ...(typeof e.udpPort === \"number\" ? { udpPort: e.udpPort } : {}),\n ...(typeof e.certFingerprint === \"string\" ? { certFingerprint: e.certFingerprint } : {}),\n ...(typeof e.certPem === \"string\" ? { certPem: e.certPem } : {}),\n ...(Array.isArray(e.allowedTools) ? { allowedTools: e.allowedTools as string[] } : {}),\n ...(Array.isArray(e.allowedRead) ? { allowedRead: e.allowedRead as string[] } : {}),\n ...(Array.isArray(e.allowedWrite) ? { allowedWrite: e.allowedWrite as string[] } : {}),\n };\n } else {\n logWarn(TAG, `Skipped peer '${name}' \u2014 missing host/port/token`);\n }\n }\n }\n _config = {\n self: {\n name: typeof raw.self?.name === \"string\" ? raw.self.name : \"default\",\n ...(typeof raw.self?.signingKey === \"string\" ? { signingKey: raw.self.signingKey } : {}),\n ...(typeof raw.self?.udpPort === \"number\" ? { udpPort: raw.self.udpPort } : {}),\n },\n peers,\n ...(typeof raw.gossipSecret === \"string\" ? { gossipSecret: raw.gossipSecret } : {}),\n maxHops: typeof raw.maxHops === \"number\" ? raw.maxHops : DEFAULTS.maxHops,\n timeoutMs: typeof raw.timeoutMs === \"number\" ? raw.timeoutMs : DEFAULTS.timeoutMs,\n };\n const names = Object.keys(peers);\n if (names.length > 0) logInfo(TAG, `Loaded ${names.length} peer(s): ${names.join(\", \")} (self: ${_config.self.name})`);\n return _config;\n } catch (err) {\n logWarn(TAG, `Failed to parse peers.json: ${err instanceof Error ? err.message : String(err)}`);\n _config = { self: { name: \"default\" }, peers: {}, ...DEFAULTS };\n return _config;\n }\n}\n\nexport function clearPeerConfigCache(): void { _config = null; }\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,257 +0,0 @@
1
- #!/usr/bin/env node
2
- import { createRequire as __bundleCreateRequire } from 'node:module'; import { fileURLToPath as __bundleFileURLToPath } from 'node:url'; import { dirname as __bundleDirname } from 'node:path'; const require = __bundleCreateRequire(import.meta.url); const __chunk_filename = __bundleFileURLToPath(import.meta.url); const __chunk_dirname = __bundleDirname(__chunk_filename);
3
- import {
4
- getAlivePeers,
5
- init_gossip
6
- } from "./chunk-HT2BPTZY.js";
7
- import {
8
- init_peer_config,
9
- loadPeerConfig
10
- } from "./chunk-4S554KLW.js";
11
- import {
12
- init_logger,
13
- logDebug,
14
- logInfo,
15
- logTrace
16
- } from "./chunk-GWILHZPT.js";
17
- import {
18
- __esm
19
- } from "./chunk-7K2YZTLD.js";
20
-
21
- // src/components/peer-transport/http-transport.ts
22
- function resolvePeer(peers, name) {
23
- const key = Object.keys(peers).find((k) => k.toLowerCase() === name.toLowerCase());
24
- if (!key || !peers[key]) throw new Error(`Unknown peer '${name}'. Available: ${Object.keys(peers).join(", ")}`);
25
- return peers[key];
26
- }
27
- var TAG, HttpTransport;
28
- var init_http_transport = __esm({
29
- "src/components/peer-transport/http-transport.ts"() {
30
- "use strict";
31
- init_gossip();
32
- init_peer_config();
33
- init_logger();
34
- TAG = "http-transport";
35
- HttpTransport = class {
36
- handlers = [];
37
- wsClients = /* @__PURE__ */ new Map();
38
- /** Init WS connections for all ws-outbound peers. Call on boot. */
39
- async initWsConnections() {
40
- const config = loadPeerConfig();
41
- const { WsPeerClient: Client } = await import("./ws-peer-client-AIXCXF7V.js");
42
- for (const [name, entry] of Object.entries(config.peers)) {
43
- if (entry.transport !== "ws-outbound") continue;
44
- const client = new Client(name, entry);
45
- client.onPush((method, payload) => {
46
- if (method === "callback") {
47
- const p = payload;
48
- import("./kanban-board-M326B2XJ.js").then(({ kanbanList, kanbanComplete, kanbanFail, kanbanAddTokens }) => {
49
- const cards = kanbanList("running", "status").filter((c) => {
50
- if (c.type !== "remote") return false;
51
- try {
52
- const m = JSON.parse(c.notes ?? "{}");
53
- return m.peer === name && m.remote_task_id === p.task_id;
54
- } catch {
55
- return false;
56
- }
57
- });
58
- if (!cards.length) return;
59
- const card = cards[0];
60
- if (p.tokens_used) kanbanAddTokens(card.id, p.tokens_used);
61
- if (p.status === "done") kanbanComplete(card.id, null, p.result_summary ?? "");
62
- else kanbanFail(card.id, p.error ?? "remote failure");
63
- import("./nerve-IGSXBKZZ.js").then(({ nerve }) => nerve.emit(p.status === "done" ? "card:done" : "card:failed", card.id));
64
- }).catch(() => {
65
- });
66
- } else if (method === "channel") {
67
- const p = payload;
68
- import("./kanban-channel-IJ52OMNA.js").then(({ channelPost }) => {
69
- channelPost(p.card_id, p.from_agent, "ALL", p.message);
70
- }).catch(() => {
71
- });
72
- }
73
- for (const h of this.handlers) h(name, { type: method, payload });
74
- });
75
- client.connect();
76
- this.wsClients.set(name, client);
77
- logInfo(TAG, `WS outbound: connecting to ${name}`);
78
- }
79
- }
80
- /** Check if a peer is reachable via WS. */
81
- hasWsConnection(peer) {
82
- return this.wsClients.get(peer)?.connected ?? false;
83
- }
84
- discover() {
85
- return getAlivePeers();
86
- }
87
- async send(peer, message) {
88
- if (message.type === "ask") {
89
- const { callPeer } = await import("./peer-client-RGEU5HOK.js");
90
- const config = loadPeerConfig();
91
- return callPeer(peer, message.payload.prompt, config.maxHops);
92
- }
93
- if (message.type === "task" && message.payload.action === "callback") {
94
- const config = loadPeerConfig();
95
- const entry = resolvePeer(config.peers, peer);
96
- logDebug(TAG, `\u2192 callback ${peer}: task_id=${message.payload.task_id} status=${message.payload.status}`);
97
- logTrace(TAG, `\u2192 callback ${peer} result: ${String(message.payload.result_summary ?? "").slice(0, 200)}`);
98
- const payload = { task_id: message.payload.task_id, status: message.payload.status, result_summary: message.payload.result_summary, error: message.payload.error };
99
- if (message.payload.artifacts) payload.artifacts = message.payload.artifacts;
100
- const ws = this.wsClients.get(peer);
101
- if (ws?.connected) {
102
- await ws.send("callback", payload);
103
- logInfo(TAG, `CALLBACK ${peer} (ws) task_id=${message.payload.task_id}`);
104
- return;
105
- }
106
- const body = JSON.stringify(payload);
107
- return this.httpCall(entry, peer, "POST", "/v1/callbacks", body);
108
- }
109
- if (message.type === "task") return this.delegateTask(peer, message.payload.goal, message.payload);
110
- if (message.type === "check") return this.checkTask(peer, message.payload.taskId);
111
- if (message.type === "terminate") return this.terminateTask(peer, message.payload.taskId);
112
- throw new Error(`Unknown message type: ${message.type}`);
113
- }
114
- async broadcast(message) {
115
- const peers = this.discover();
116
- await Promise.allSettled(peers.map((p) => this.send(p.name, message)));
117
- }
118
- onMessage(handler) {
119
- this.handlers.push(handler);
120
- }
121
- /** Called by agent-api-server when an inbound peer message arrives. */
122
- dispatchInbound(from, message) {
123
- for (const h of this.handlers) {
124
- try {
125
- h(from, message);
126
- } catch {
127
- }
128
- }
129
- }
130
- async delegateTask(peer, goal, opts) {
131
- const config = loadPeerConfig();
132
- const entry = resolvePeer(config.peers, peer);
133
- logDebug(TAG, `\u2192 peer_delegate ${peer}: priority=${opts?.priority ?? "MEDIUM"}, goal=${goal.length}ch`);
134
- logTrace(TAG, `\u2192 peer_delegate ${peer} goal: ${goal.slice(0, 300)}`);
135
- if (opts?.artifacts?.length) {
136
- const MAX_SINGLE = 14e5;
137
- const MAX_TOTAL = 5e6;
138
- let total = 0;
139
- for (const a of opts.artifacts) {
140
- if (a.content.length > MAX_SINGLE) throw new Error(`Artifact '${a.name}' exceeds 1.4MB limit (${a.content.length} bytes)`);
141
- total += a.content.length;
142
- }
143
- if (total > MAX_TOTAL) throw new Error(`Total artifacts exceed 5MB limit (${total} bytes)`);
144
- }
145
- const payload = { goal, priority: opts?.priority ?? "MEDIUM", context: opts?.context, callback_peer: config.self.name };
146
- if (opts?.artifacts?.length) payload.artifacts = opts.artifacts;
147
- const ws = this.wsClients.get(peer);
148
- if (ws?.connected) {
149
- const result = await ws.send("delegate", payload);
150
- logInfo(TAG, `PEER_DELEGATE ${peer} (ws) \u2192 remote#${result.taskId} (${goal.length}ch)`);
151
- return { taskId: result.taskId, remoteSessionId: result.session_id };
152
- }
153
- const body = JSON.stringify(payload);
154
- const response = await this.httpCall(entry, peer, "POST", "/v1/tasks", body);
155
- const parsed = JSON.parse(response);
156
- logInfo(TAG, `PEER_DELEGATE ${peer} \u2192 remote#${parsed.task_id} (${goal.length}ch)`);
157
- return { taskId: parsed.task_id, remoteSessionId: parsed.session_id };
158
- }
159
- async checkTask(peer, taskId) {
160
- const config = loadPeerConfig();
161
- const entry = resolvePeer(config.peers, peer);
162
- logDebug(TAG, `\u2192 peer_check ${peer}#${taskId}`);
163
- const response = await this.httpCall(entry, peer, "GET", `/v1/tasks/${taskId}`);
164
- const parsed = JSON.parse(response);
165
- logDebug(TAG, `\u2190 peer_check ${peer}#${taskId}: status=${parsed.status}`);
166
- logTrace(TAG, `\u2190 peer_check ${peer}#${taskId} result: ${(parsed.result_summary ?? "").slice(0, 200)}`);
167
- return {
168
- taskId: parsed.id ?? taskId,
169
- status: parsed.status,
170
- result: parsed.result_summary,
171
- error: parsed.error,
172
- tokensUsed: parsed.tokens_used
173
- };
174
- }
175
- async terminateTask(peer, taskId) {
176
- const config = loadPeerConfig();
177
- const entry = resolvePeer(config.peers, peer);
178
- logDebug(TAG, `\u2192 peer_terminate ${peer}#${taskId}`);
179
- await this.httpCall(entry, peer, "DELETE", `/v1/tasks/${taskId}`);
180
- logInfo(TAG, `PEER_TERMINATE ${peer}#${taskId}`);
181
- }
182
- /** #949: Push a channel message to a remote peer. */
183
- async pushChannelMessage(peer, cardId, from, message, createdAt) {
184
- const config = loadPeerConfig();
185
- const entry = resolvePeer(config.peers, peer);
186
- await this.httpCall(entry, peer, "POST", `/v1/tasks/${cardId}/messages`, JSON.stringify({ from_agent: from, message, created_at: createdAt }));
187
- }
188
- async httpCall(entry, peerName, method, path, body) {
189
- const { mintPeerJwt, signBody, tlsOptions } = await import("./peer-auth-QC4EF2PM.js");
190
- const jwt = mintPeerJwt(peerName);
191
- const finalBody = body ? await signBody(peerName, body) : void 0;
192
- const tls = tlsOptions(entry);
193
- const http = await import("node:https");
194
- return new Promise((resolve, reject) => {
195
- const headers = {
196
- "Authorization": `Bearer ${jwt}`,
197
- "Content-Type": "application/json"
198
- };
199
- if (finalBody) headers["Content-Length"] = String(Buffer.byteLength(finalBody));
200
- const req = http.request({
201
- hostname: entry.host,
202
- port: entry.port,
203
- path,
204
- method,
205
- headers,
206
- timeout: 6e4,
207
- ...tls
208
- }, (res) => {
209
- let data = "";
210
- res.on("data", (c) => data += c);
211
- res.on("end", () => {
212
- if (res.statusCode >= 400) {
213
- reject(new Error(`Peer ${peerName} returned ${res.statusCode}: ${data.slice(0, 200)}`));
214
- return;
215
- }
216
- resolve(data);
217
- });
218
- });
219
- req.on("timeout", () => {
220
- req.destroy();
221
- reject(new Error(`Peer ${peerName} timeout`));
222
- });
223
- req.on("error", (err) => reject(new Error(`Peer ${peerName} unreachable: ${err.message}`)));
224
- if (finalBody) req.write(finalBody);
225
- req.end();
226
- });
227
- }
228
- };
229
- }
230
- });
231
-
232
- // src/components/peer-transport/index.ts
233
- function getPeerTransport() {
234
- if (!_instance) _instance = new HttpTransport();
235
- return _instance;
236
- }
237
- async function initPeerTransport() {
238
- const transport = getPeerTransport();
239
- await transport.initWsConnections();
240
- }
241
- var _instance;
242
- var init_peer_transport = __esm({
243
- "src/components/peer-transport/index.ts"() {
244
- init_http_transport();
245
- init_gossip();
246
- init_http_transport();
247
- _instance = null;
248
- }
249
- });
250
-
251
- export {
252
- HttpTransport,
253
- getPeerTransport,
254
- initPeerTransport,
255
- init_peer_transport
256
- };
257
- //# sourceMappingURL=chunk-5GCLBUBS.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/peer-transport/http-transport.ts", "../src/components/peer-transport/index.ts"],
4
- "sourcesContent": ["/**\n * peer-transport/http-transport.ts \u2014 HTTP implementation of PeerTransport (#911).\n *\n * Wraps existing peer-client.ts (JWT auth, TLS, Ed25519 signing) behind the\n * PeerTransport interface. discover() reads peers.json (static).\n */\n\nimport type { PeerTransport, PeerCard, PeerMessage, TaskResult } from \"./interface.js\";\nimport { getAlivePeers } from \"./gossip.js\";\nimport { loadPeerConfig, type PeerEntry } from \"../peer-config.js\";\nimport { logInfo, logDebug, logTrace } from \"../logger.js\";\nimport type { WsPeerClient } from \"./ws-peer-client.js\";\n\nconst TAG = \"http-transport\";\n\nexport class HttpTransport implements PeerTransport {\n private handlers: Array<(from: string, message: PeerMessage) => void> = [];\n private wsClients = new Map<string, WsPeerClient>();\n\n /** Init WS connections for all ws-outbound peers. Call on boot. */\n async initWsConnections(): Promise<void> {\n const config = loadPeerConfig();\n const { WsPeerClient: Client } = await import(\"./ws-peer-client.js\");\n for (const [name, entry] of Object.entries(config.peers)) {\n if (entry.transport !== \"ws-outbound\") continue;\n const client = new Client(name, entry);\n client.onPush((method, payload) => {\n if (method === \"callback\") {\n // Inbound callback from peer \u2014 fire as if it arrived via HTTP /v1/callbacks\n const p = payload as { task_id: number; status: string; result_summary?: string; error?: string; tokens_used?: number };\n import(\"../tasks/kanban-board.js\").then(({ kanbanList, kanbanComplete, kanbanFail, kanbanAddTokens }) => {\n const cards = kanbanList(\"running\", \"status\").filter(c => {\n if (c.type !== \"remote\") return false;\n try { const m = JSON.parse(c.notes ?? \"{}\"); return m.peer === name && m.remote_task_id === p.task_id; } catch { return false; }\n });\n if (!cards.length) return;\n const card = cards[0]!;\n if (p.tokens_used) kanbanAddTokens(card.id, p.tokens_used);\n if (p.status === \"done\") kanbanComplete(card.id, null, p.result_summary ?? \"\");\n else kanbanFail(card.id, p.error ?? \"remote failure\");\n import(\"../nerve.js\").then(({ nerve }) => nerve.emit(p.status === \"done\" ? \"card:done\" : \"card:failed\", card.id));\n }).catch(() => {});\n } else if (method === \"channel\") {\n // Inbound channel message from peer\n const p = payload as { card_id: number; from_agent: string; message: string; created_at: string };\n import(\"../tasks/kanban-channel.js\").then(({ channelPost }) => {\n channelPost(p.card_id, p.from_agent, \"ALL\", p.message);\n }).catch(() => {});\n }\n for (const h of this.handlers) h(name, { type: method as any, payload: payload as any });\n });\n client.connect();\n this.wsClients.set(name, client);\n logInfo(TAG, `WS outbound: connecting to ${name}`);\n }\n }\n\n /** Check if a peer is reachable via WS. */\n hasWsConnection(peer: string): boolean {\n return this.wsClients.get(peer)?.connected ?? false;\n }\n\n discover(): PeerCard[] {\n return getAlivePeers();\n }\n\n async send(peer: string, message: PeerMessage): Promise<unknown> {\n if (message.type === \"ask\") {\n const { callPeer } = await import(\"../peer-client.js\");\n const config = loadPeerConfig();\n return callPeer(peer, message.payload.prompt as string, config.maxHops);\n }\n if (message.type === \"task\" && message.payload.action === \"callback\") {\n const config = loadPeerConfig();\n const entry = resolvePeer(config.peers, peer);\n logDebug(TAG, `\u2192 callback ${peer}: task_id=${message.payload.task_id} status=${message.payload.status}`);\n logTrace(TAG, `\u2192 callback ${peer} result: ${String(message.payload.result_summary ?? \"\").slice(0, 200)}`);\n const payload: Record<string, unknown> = { task_id: message.payload.task_id, status: message.payload.status, result_summary: message.payload.result_summary, error: message.payload.error };\n if (message.payload.artifacts) payload.artifacts = message.payload.artifacts;\n\n // #972: Push via WS if connected\n const ws = this.wsClients.get(peer);\n if (ws?.connected) {\n await ws.send(\"callback\", payload);\n logInfo(TAG, `CALLBACK ${peer} (ws) task_id=${message.payload.task_id}`);\n return;\n }\n\n const body = JSON.stringify(payload);\n return this.httpCall(entry, peer, \"POST\", \"/v1/callbacks\", body);\n }\n if (message.type === \"task\") return this.delegateTask(peer, message.payload.goal as string, message.payload as any);\n if (message.type === \"check\") return this.checkTask(peer, message.payload.taskId as number);\n if (message.type === \"terminate\") return this.terminateTask(peer, message.payload.taskId as number);\n throw new Error(`Unknown message type: ${message.type}`);\n }\n\n async broadcast(message: PeerMessage): Promise<void> {\n const peers = this.discover();\n await Promise.allSettled(peers.map(p => this.send(p.name, message)));\n }\n\n onMessage(handler: (from: string, message: PeerMessage) => void): void {\n this.handlers.push(handler);\n }\n\n /** Called by agent-api-server when an inbound peer message arrives. */\n dispatchInbound(from: string, message: PeerMessage): void {\n for (const h of this.handlers) { try { h(from, message); } catch {} }\n }\n\n async delegateTask(peer: string, goal: string, opts?: { priority?: string; context?: string; artifacts?: Array<{ name: string; content: string }> }): Promise<{ taskId: number; remoteSessionId?: string }> {\n const config = loadPeerConfig();\n const entry = resolvePeer(config.peers, peer);\n\n // Callback: remote peer looks us up in its peers.json by name\n\n logDebug(TAG, `\u2192 peer_delegate ${peer}: priority=${opts?.priority ?? \"MEDIUM\"}, goal=${goal.length}ch`);\n logTrace(TAG, `\u2192 peer_delegate ${peer} goal: ${goal.slice(0, 300)}`);\n\n // Size guard for artifacts (#928)\n if (opts?.artifacts?.length) {\n const MAX_SINGLE = 1_400_000; // 1.4MB base64 per artifact\n const MAX_TOTAL = 5_000_000; // 5MB total\n let total = 0;\n for (const a of opts.artifacts) {\n if (a.content.length > MAX_SINGLE) throw new Error(`Artifact '${a.name}' exceeds 1.4MB limit (${a.content.length} bytes)`);\n total += a.content.length;\n }\n if (total > MAX_TOTAL) throw new Error(`Total artifacts exceed 5MB limit (${total} bytes)`);\n }\n\n const payload: Record<string, unknown> = { goal, priority: opts?.priority ?? \"MEDIUM\", context: opts?.context, callback_peer: config.self.name };\n if (opts?.artifacts?.length) payload.artifacts = opts.artifacts;\n\n // #972: Route via WS if connected, otherwise HTTP\n const ws = this.wsClients.get(peer);\n if (ws?.connected) {\n const result = await ws.send(\"delegate\", payload) as any;\n logInfo(TAG, `PEER_DELEGATE ${peer} (ws) \u2192 remote#${result.taskId} (${goal.length}ch)`);\n return { taskId: result.taskId, remoteSessionId: result.session_id };\n }\n\n const body = JSON.stringify(payload);\n const response = await this.httpCall(entry, peer, \"POST\", \"/v1/tasks\", body);\n const parsed = JSON.parse(response);\n logInfo(TAG, `PEER_DELEGATE ${peer} \u2192 remote#${parsed.task_id} (${goal.length}ch)`);\n return { taskId: parsed.task_id, remoteSessionId: parsed.session_id };\n }\n\n async checkTask(peer: string, taskId: number): Promise<TaskResult> {\n const config = loadPeerConfig();\n const entry = resolvePeer(config.peers, peer);\n logDebug(TAG, `\u2192 peer_check ${peer}#${taskId}`);\n const response = await this.httpCall(entry, peer, \"GET\", `/v1/tasks/${taskId}`);\n const parsed = JSON.parse(response);\n logDebug(TAG, `\u2190 peer_check ${peer}#${taskId}: status=${parsed.status}`);\n logTrace(TAG, `\u2190 peer_check ${peer}#${taskId} result: ${(parsed.result_summary ?? \"\").slice(0, 200)}`);\n return {\n taskId: parsed.id ?? taskId,\n status: parsed.status,\n result: parsed.result_summary,\n error: parsed.error,\n tokensUsed: parsed.tokens_used,\n };\n }\n\n async terminateTask(peer: string, taskId: number): Promise<void> {\n const config = loadPeerConfig();\n const entry = resolvePeer(config.peers, peer);\n logDebug(TAG, `\u2192 peer_terminate ${peer}#${taskId}`);\n await this.httpCall(entry, peer, \"DELETE\", `/v1/tasks/${taskId}`);\n logInfo(TAG, `PEER_TERMINATE ${peer}#${taskId}`);\n }\n\n /** #949: Push a channel message to a remote peer. */\n async pushChannelMessage(peer: string, cardId: number, from: string, message: string, createdAt: string): Promise<void> {\n const config = loadPeerConfig();\n const entry = resolvePeer(config.peers, peer);\n await this.httpCall(entry, peer, \"POST\", `/v1/tasks/${cardId}/messages`, JSON.stringify({ from_agent: from, message, created_at: createdAt }));\n }\n\n private async httpCall(entry: PeerEntry, peerName: string, method: string, path: string, body?: string): Promise<string> {\n const { mintPeerJwt, signBody, tlsOptions } = await import(\"./peer-auth.js\");\n const jwt = mintPeerJwt(peerName);\n const finalBody = body ? await signBody(peerName, body) : undefined;\n const tls = tlsOptions(entry);\n const http = await import(\"node:https\");\n\n return new Promise((resolve, reject) => {\n const headers: Record<string, string> = {\n \"Authorization\": `Bearer ${jwt}`,\n \"Content-Type\": \"application/json\",\n };\n if (finalBody) headers[\"Content-Length\"] = String(Buffer.byteLength(finalBody));\n\n const req = http.request({\n hostname: entry.host,\n port: entry.port,\n path,\n method,\n headers,\n timeout: 60_000,\n ...tls,\n } as any, (res: any) => {\n let data = \"\";\n res.on(\"data\", (c: any) => data += c);\n res.on(\"end\", () => {\n if (res.statusCode >= 400) {\n reject(new Error(`Peer ${peerName} returned ${res.statusCode}: ${data.slice(0, 200)}`));\n return;\n }\n resolve(data);\n });\n });\n req.on(\"timeout\", () => { req.destroy(); reject(new Error(`Peer ${peerName} timeout`)); });\n req.on(\"error\", (err: Error) => reject(new Error(`Peer ${peerName} unreachable: ${err.message}`)));\n if (finalBody) req.write(finalBody);\n req.end();\n });\n }\n}\n\nfunction resolvePeer(peers: Record<string, PeerEntry>, name: string): PeerEntry {\n const key = Object.keys(peers).find(k => k.toLowerCase() === name.toLowerCase());\n if (!key || !peers[key]) throw new Error(`Unknown peer '${name}'. Available: ${Object.keys(peers).join(\", \")}`);\n return peers[key];\n}\n", "/**\n * peer-transport/index.ts \u2014 Factory + singleton (#911).\n */\n\nexport type { PeerTransport, PeerCard, PeerMessage, TaskResult, PeerHealth } from \"./interface.js\";\nexport { HttpTransport } from \"./http-transport.js\";\nexport { startGossipListener, gossipBroadcast, getAlivePeers, getPeerTable, setGossipInterval, stopGossipListener } from \"./gossip.js\";\n\nimport { HttpTransport } from \"./http-transport.js\";\nimport type { PeerTransport } from \"./interface.js\";\n\nlet _instance: PeerTransport | null = null;\n\n/** Get the singleton PeerTransport instance. */\nexport function getPeerTransport(): PeerTransport {\n if (!_instance) _instance = new HttpTransport();\n return _instance;\n}\n\n/** Initialize peer transport + WS outbound connections. Call at boot. */\nexport async function initPeerTransport(): Promise<void> {\n const transport = getPeerTransport() as HttpTransport;\n await transport.initWsConnections();\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }