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
@@ -10,6 +10,7 @@ var SEVEN_DAYS_MS = 7 * 24 * 60 * 60 * 1e3;
10
10
  var latencies = /* @__PURE__ */ new Map();
11
11
  var counters = /* @__PURE__ */ new Map();
12
12
  var cronDepthSamples = [];
13
+ var compactionSavings = [];
13
14
  var metricsPath = "";
14
15
  function initMetrics(home) {
15
16
  const metricsDir = join(home, "metrics");
@@ -43,6 +44,19 @@ function recordCronDepth(depth) {
43
44
  if (cronDepthSamples.length >= RING_SIZE) cronDepthSamples.shift();
44
45
  cronDepthSamples.push(depth);
45
46
  }
47
+ function recordCompaction(event) {
48
+ if (metricsPath) {
49
+ try {
50
+ appendFileSync(metricsPath, JSON.stringify({ type: "compaction", ...event }) + "\n");
51
+ } catch {
52
+ }
53
+ }
54
+ if (event.level === "skipped") return;
55
+ recordLatency("compaction", event.durationMs);
56
+ recordCall("compaction", event.level !== "failed" && !event.failureReason);
57
+ if (compactionSavings.length >= RING_SIZE) compactionSavings.shift();
58
+ compactionSavings.push(event.savingsPct);
59
+ }
46
60
  function percentile(sorted, pct) {
47
61
  if (sorted.length === 0) return 0;
48
62
  const idx = Math.min(Math.floor(sorted.length * pct), sorted.length - 1);
@@ -80,7 +94,21 @@ function getMetricsSummary() {
80
94
  const cronAvg = cronSorted.length > 0 ? Math.round(cronSorted.reduce((a, b) => a + b, 0) / cronSorted.length) : 0;
81
95
  const sleepCounter = counters.get("sleep");
82
96
  const sleep = sleepCounter ? { calls: sleepCounter.calls, failures: sleepCounter.failures } : null;
83
- return { llm, recall, cronDepth: { avg: cronAvg, max: cronMax }, sleep };
97
+ let compaction = null;
98
+ const compactionBucket = latencies.get("compaction");
99
+ if (compactionBucket && compactionBucket.samples.length > 0) {
100
+ const sorted = [...compactionBucket.samples].sort((a, b) => a - b);
101
+ const counter = counters.get("compaction");
102
+ const avgSavings = compactionSavings.length > 0 ? compactionSavings.reduce((a, b) => a + b, 0) / compactionSavings.length : 0;
103
+ compaction = {
104
+ count: counter?.calls ?? sorted.length,
105
+ failures: counter?.failures ?? 0,
106
+ p50: Math.round(percentile(sorted, 0.5)),
107
+ p95: Math.round(percentile(sorted, 0.95)),
108
+ avgSavingsPct: Math.round(avgSavings * 100)
109
+ };
110
+ }
111
+ return { llm, recall, cronDepth: { avg: cronAvg, max: cronMax }, sleep, compaction };
84
112
  }
85
113
  function flushToFile() {
86
114
  if (!metricsPath) return;
@@ -113,7 +141,8 @@ export {
113
141
  initMetrics,
114
142
  pruneMetricsFile,
115
143
  recordCall,
144
+ recordCompaction,
116
145
  recordCronDepth,
117
146
  recordLatency
118
147
  };
119
- //# sourceMappingURL=metrics-collector-L3VPEHII.js.map
148
+ //# sourceMappingURL=metrics-collector-YMUGY3PI.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/metrics-collector.ts"],
4
+ "sourcesContent": ["/**\n * metrics-collector.ts \u2014 Lightweight in-process metrics collection (#832).\n * Ring buffers for latencies, daily counters, JSONL persistence.\n */\nimport { appendFileSync, readFileSync, writeFileSync, existsSync, mkdirSync } from \"node:fs\";\nimport { join } from \"node:path\";\n\nimport type { CompactionEvent } from \"abmind\";\n\nconst RING_SIZE = 100;\nconst SEVEN_DAYS_MS = 7 * 24 * 60 * 60 * 1000;\n\ninterface LatencyBucket {\n samples: number[];\n idx: number;\n}\n\ninterface DailyCounter {\n date: string;\n calls: number;\n failures: number;\n}\n\nconst latencies = new Map<string, LatencyBucket>();\nconst counters = new Map<string, DailyCounter>();\nlet cronDepthSamples: number[] = [];\nlet compactionSavings: number[] = [];\nlet metricsPath = \"\";\n\nexport function initMetrics(home: string): void {\n const metricsDir = join(home, \"metrics\");\n if (!existsSync(metricsDir)) mkdirSync(metricsDir, { recursive: true });\n metricsPath = join(metricsDir, \"metrics.jsonl\");\n}\n\nexport function recordLatency(key: string, durationMs: number): void {\n let bucket = latencies.get(key);\n if (!bucket) { bucket = { samples: [], idx: 0 }; latencies.set(key, bucket); }\n if (bucket.samples.length < RING_SIZE) {\n bucket.samples.push(durationMs);\n } else {\n bucket.samples[bucket.idx] = durationMs;\n }\n bucket.idx = (bucket.idx + 1) % RING_SIZE;\n}\n\nexport function recordCall(key: string, success: boolean): void {\n const today = new Date().toISOString().slice(0, 10);\n let c = counters.get(key);\n if (!c || c.date !== today) { c = { date: today, calls: 0, failures: 0 }; counters.set(key, c); }\n c.calls++;\n if (!success) c.failures++;\n}\n\nexport function recordCronDepth(depth: number): void {\n if (cronDepthSamples.length >= RING_SIZE) cronDepthSamples.shift();\n cronDepthSamples.push(depth);\n}\n\n/**\n * Record a compaction pass (#1022). Always persists the full event to metrics.jsonl\n * (audit trail). Skipped passes are audit-only \u2014 they do no work, so they don't\n * enter the latency/savings/call aggregates.\n */\nexport function recordCompaction(event: CompactionEvent): void {\n if (metricsPath) {\n try { appendFileSync(metricsPath, JSON.stringify({ type: \"compaction\", ...event }) + \"\\n\"); }\n catch { /* non-fatal */ }\n }\n if (event.level === \"skipped\") return;\n recordLatency(\"compaction\", event.durationMs);\n recordCall(\"compaction\", event.level !== \"failed\" && !event.failureReason);\n if (compactionSavings.length >= RING_SIZE) compactionSavings.shift();\n compactionSavings.push(event.savingsPct);\n}\n\nfunction percentile(sorted: number[], pct: number): number {\n if (sorted.length === 0) return 0;\n const idx = Math.min(Math.floor(sorted.length * pct), sorted.length - 1);\n return sorted[idx]!;\n}\n\nexport interface MetricsSummary {\n llm: Record<string, { p50: number; p95: number; max: number; calls: number; failures: number }>;\n recall: { p50: number; p95: number; calls: number } | null;\n cronDepth: { avg: number; max: number };\n sleep: { calls: number; failures: number } | null;\n compaction: { count: number; failures: number; p50: number; p95: number; avgSavingsPct: number } | null;\n}\n\nexport function getMetricsSummary(): MetricsSummary {\n const llm: MetricsSummary[\"llm\"] = {};\n\n // Include all keys that have latency OR counter data\n const llmKeys = new Set<string>();\n for (const key of latencies.keys()) { if (key.startsWith(\"llm:\")) llmKeys.add(key.slice(4)); }\n for (const key of counters.keys()) { if (key.startsWith(\"llm:\")) llmKeys.add(key.slice(4)); }\n\n for (const model of llmKeys) {\n const bucket = latencies.get(`llm:${model}`);\n const sorted = bucket ? [...bucket.samples].sort((a, b) => a - b) : [];\n const counter = counters.get(`llm:${model}`);\n llm[model] = {\n p50: Math.round(percentile(sorted, 0.5)),\n p95: Math.round(percentile(sorted, 0.95)),\n max: sorted.length > 0 ? Math.round(sorted[sorted.length - 1]!) : 0,\n calls: counter?.calls ?? 0,\n failures: counter?.failures ?? 0,\n };\n }\n\n let recall: MetricsSummary[\"recall\"] = null;\n const recallBucket = latencies.get(\"recall\");\n if (recallBucket && recallBucket.samples.length > 0) {\n const sorted = [...recallBucket.samples].sort((a, b) => a - b);\n recall = { p50: Math.round(percentile(sorted, 0.5)), p95: Math.round(percentile(sorted, 0.95)), calls: sorted.length };\n }\n\n const cronSorted = [...cronDepthSamples];\n const cronMax = cronSorted.length > 0 ? Math.max(...cronSorted) : 0;\n const cronAvg = cronSorted.length > 0 ? Math.round(cronSorted.reduce((a, b) => a + b, 0) / cronSorted.length) : 0;\n\n const sleepCounter = counters.get(\"sleep\");\n const sleep = sleepCounter ? { calls: sleepCounter.calls, failures: sleepCounter.failures } : null;\n\n let compaction: MetricsSummary[\"compaction\"] = null;\n const compactionBucket = latencies.get(\"compaction\");\n if (compactionBucket && compactionBucket.samples.length > 0) {\n const sorted = [...compactionBucket.samples].sort((a, b) => a - b);\n const counter = counters.get(\"compaction\");\n const avgSavings = compactionSavings.length > 0\n ? compactionSavings.reduce((a, b) => a + b, 0) / compactionSavings.length\n : 0;\n compaction = {\n count: counter?.calls ?? sorted.length,\n failures: counter?.failures ?? 0,\n p50: Math.round(percentile(sorted, 0.5)),\n p95: Math.round(percentile(sorted, 0.95)),\n avgSavingsPct: Math.round(avgSavings * 100),\n };\n }\n\n return { llm, recall, cronDepth: { avg: cronAvg, max: cronMax }, sleep, compaction };\n}\n\nexport function flushToFile(): void {\n if (!metricsPath) return;\n try {\n const summary = getMetricsSummary();\n const line = JSON.stringify({ ts: Date.now(), ...summary }) + \"\\n\";\n appendFileSync(metricsPath, line);\n } catch { /* non-fatal */ }\n}\n\n/** Housekeeping: remove lines older than 7 days. */\nexport function pruneMetricsFile(): void {\n if (!metricsPath || !existsSync(metricsPath)) return;\n try {\n const cutoff = Date.now() - SEVEN_DAYS_MS;\n const lines = readFileSync(metricsPath, \"utf-8\").split(\"\\n\").filter(Boolean);\n const kept = lines.filter(line => {\n try { return JSON.parse(line).ts >= cutoff; } catch { return false; }\n });\n writeFileSync(metricsPath, kept.join(\"\\n\") + (kept.length > 0 ? \"\\n\" : \"\"));\n } catch { /* non-fatal */ }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -3,10 +3,10 @@
3
3
  import {
4
4
  ModelHealthRegistry,
5
5
  classifyError
6
- } from "./chunk-EGL6UMAO.js";
6
+ } from "./chunk-JG4BKXBN.js";
7
7
  import "./chunk-7K2YZTLD.js";
8
8
  export {
9
9
  ModelHealthRegistry,
10
10
  classifyError
11
11
  };
12
- //# sourceMappingURL=model-health-registry-MLEIZSTV.js.map
12
+ //# sourceMappingURL=model-health-registry-QADMFQFQ.js.map
@@ -3,8 +3,8 @@
3
3
  import {
4
4
  init_nerve,
5
5
  nerve
6
- } from "./chunk-OXTSWQCX.js";
7
- import "./chunk-GWILHZPT.js";
6
+ } from "./chunk-5Y3FJ2Y7.js";
7
+ import "./chunk-XRTXYN66.js";
8
8
  import "./chunk-GALQBVKO.js";
9
9
  import "./chunk-O7KQG6ME.js";
10
10
  import "./chunk-7K2YZTLD.js";
@@ -12,4 +12,4 @@ init_nerve();
12
12
  export {
13
13
  nerve
14
14
  };
15
- //# sourceMappingURL=nerve-IGSXBKZZ.js.map
15
+ //# sourceMappingURL=nerve-QPAEBRKX.js.map
@@ -2,16 +2,16 @@
2
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
3
  import {
4
4
  sendNotification
5
- } from "./chunk-7BSQ5UQO.js";
6
- import "./chunk-FRKW6LWB.js";
5
+ } from "./chunk-ZSIDQ66D.js";
6
+ import "./chunk-55UWKI5C.js";
7
7
  import "./chunk-YWZPKBO6.js";
8
- import "./chunk-65VCEC32.js";
9
- import "./chunk-YSKCQH6E.js";
10
- import "./chunk-GWILHZPT.js";
8
+ import "./chunk-6PA5JBUU.js";
9
+ import "./chunk-2IYJ4I66.js";
10
+ import "./chunk-XRTXYN66.js";
11
11
  import "./chunk-GALQBVKO.js";
12
12
  import "./chunk-O7KQG6ME.js";
13
13
  import "./chunk-7K2YZTLD.js";
14
14
  export {
15
15
  sendNotification
16
16
  };
17
- //# sourceMappingURL=notification-BFSIEECG.js.map
17
+ //# sourceMappingURL=notification-3JICGXWU.js.map
@@ -3,8 +3,8 @@
3
3
  import {
4
4
  getEnv,
5
5
  init_env_schema
6
- } from "./chunk-65VCEC32.js";
7
- import "./chunk-GWILHZPT.js";
6
+ } from "./chunk-6PA5JBUU.js";
7
+ import "./chunk-XRTXYN66.js";
8
8
  import "./chunk-GALQBVKO.js";
9
9
  import "./chunk-O7KQG6ME.js";
10
10
  import "./chunk-7K2YZTLD.js";
@@ -31,4 +31,4 @@ async function fetchOpenRouterCredits() {
31
31
  export {
32
32
  fetchOpenRouterCredits
33
33
  };
34
- //# sourceMappingURL=openrouter-credits-NTVZDRYM.js.map
34
+ //# sourceMappingURL=openrouter-credits-7NEIPYJN.js.map
@@ -4,9 +4,10 @@ import {
4
4
  getActiveOrcCard,
5
5
  getOrcTools,
6
6
  init_orc_tools,
7
+ isActiveCardPeerSourced,
7
8
  setActiveOrcCard
8
- } from "./chunk-XWRADSXO.js";
9
- import "./chunk-GWILHZPT.js";
9
+ } from "./chunk-GF6NVNA7.js";
10
+ import "./chunk-XRTXYN66.js";
10
11
  import "./chunk-GALQBVKO.js";
11
12
  import "./chunk-O7KQG6ME.js";
12
13
  import "./chunk-7K2YZTLD.js";
@@ -14,6 +15,7 @@ init_orc_tools();
14
15
  export {
15
16
  getActiveOrcCard,
16
17
  getOrcTools,
18
+ isActiveCardPeerSourced,
17
19
  setActiveOrcCard
18
20
  };
19
- //# sourceMappingURL=orc-tools-4CHEFWSN.js.map
21
+ //# sourceMappingURL=orc-tools-UZVPONKY.js.map
@@ -1,23 +1,32 @@
1
1
  #!/usr/bin/env node
2
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
3
  import {
4
+ generateTlsCert,
4
5
  init_peer_auth,
5
- mintPeerJwt,
6
- signBody,
7
- tlsOptions
8
- } from "./chunk-VUIX5AGB.js";
9
- import "./chunk-4S554KLW.js";
10
- import "./chunk-LUNA6PM5.js";
11
- import "./chunk-RWRRGE4U.js";
12
- import "./chunk-YSKCQH6E.js";
13
- import "./chunk-GWILHZPT.js";
14
- import "./chunk-GALQBVKO.js";
15
- import "./chunk-O7KQG6ME.js";
6
+ isNonceSeen,
7
+ macTribe,
8
+ recordNonce,
9
+ signAck,
10
+ signEnroll,
11
+ signRequest,
12
+ verifyAck,
13
+ verifyEnroll,
14
+ verifyRequest,
15
+ verifyServerCert
16
+ } from "./chunk-WC5O5KOE.js";
16
17
  import "./chunk-7K2YZTLD.js";
17
18
  init_peer_auth();
18
19
  export {
19
- mintPeerJwt,
20
- signBody,
21
- tlsOptions
20
+ generateTlsCert,
21
+ isNonceSeen,
22
+ macTribe,
23
+ recordNonce,
24
+ signAck,
25
+ signEnroll,
26
+ signRequest,
27
+ verifyAck,
28
+ verifyEnroll,
29
+ verifyRequest,
30
+ verifyServerCert
22
31
  };
23
- //# sourceMappingURL=peer-auth-QC4EF2PM.js.map
32
+ //# sourceMappingURL=peer-auth-RI43DKJE.js.map
@@ -2,18 +2,18 @@
2
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
3
  import {
4
4
  init_peer_config,
5
- loadPeerConfig
6
- } from "./chunk-4S554KLW.js";
7
- import "./chunk-LUNA6PM5.js";
5
+ loadPeerConfig,
6
+ peer_config_exports
7
+ } from "./chunk-3BG3AIDP.js";
8
+ import "./chunk-5RVOEFGT.js";
8
9
  import {
9
- init_peer_jwt,
10
- peer_jwt_exports
11
- } from "./chunk-RWRRGE4U.js";
12
- import "./chunk-YSKCQH6E.js";
10
+ init_peer_auth,
11
+ peer_auth_exports
12
+ } from "./chunk-WC5O5KOE.js";
13
13
  import {
14
14
  init_logger,
15
15
  logInfo
16
- } from "./chunk-GWILHZPT.js";
16
+ } from "./chunk-XRTXYN66.js";
17
17
  import "./chunk-GALQBVKO.js";
18
18
  import "./chunk-O7KQG6ME.js";
19
19
  import {
@@ -23,7 +23,6 @@ import {
23
23
  } from "./chunk-7K2YZTLD.js";
24
24
 
25
25
  // src/components/peer-client.ts
26
- import { request as httpsRequest } from "node:https";
27
26
  function setCurrentPeerHops(hops) {
28
27
  _currentHops = hops;
29
28
  }
@@ -53,9 +52,9 @@ async function callPeer(peerName, prompt, hops, opts) {
53
52
  if (err instanceof PeerCallError && (err.code === "unreachable" || err.code === "timeout") && peer.udpPort && !opts?.skipWakeup) {
54
53
  logInfo(TAG, `Direct call failed (${err.code}) \u2014 UDP callback request \u2192 ${peerKey}`);
55
54
  const { registerPending, rejectPending } = await import("./pending-callback-NHFHL2JC.js");
56
- const { sendWakeup } = await import("./dns-wakeup-IDOJIXBX.js");
55
+ const { sendWakeup } = await import("./dns-wakeup-V3LEFXPE.js");
57
56
  const resultPromise = registerPending(peerKey, signedPrompt);
58
- sendWakeup(peerKey, peer.host, peer.udpPort, peer.token);
57
+ sendWakeup(peerKey, peer.host, peer.udpPort);
59
58
  const timeout = setTimeout(() => rejectPending(peerKey, "callback timeout (60s)"), 6e4);
60
59
  try {
61
60
  const answer = await resultPromise;
@@ -71,27 +70,33 @@ async function callPeer(peerName, prompt, hops, opts) {
71
70
  }
72
71
  }
73
72
  function postCompletion(peer, peerName, prompt, hops, timeoutMs, selfName) {
74
- const { signJwt } = (init_peer_jwt(), __toCommonJS(peer_jwt_exports));
75
- const now = Math.floor(Date.now() / 1e3);
76
- const jwt = signJwt({ iss: selfName, aud: peerName, iat: now, exp: now + 60 }, peer.token);
73
+ const { signRequest, verifyServerCert } = (init_peer_auth(), __toCommonJS(peer_auth_exports));
74
+ const { loadPeerConfig: loadPeerConfig2 } = (init_peer_config(), __toCommonJS(peer_config_exports));
75
+ const config = loadPeerConfig2();
77
76
  const body = JSON.stringify({
78
77
  model: "default",
79
78
  messages: [{ role: "user", content: prompt }]
80
79
  });
81
- return new Promise((resolve, reject) => {
82
- const useTls = !!(peer.certFingerprint || peer.certPem);
83
- const requestFn = useTls ? httpsRequest : __require("node:http").request;
84
- const tlsOpts = useTls ? {
85
- minVersion: "TLSv1.3",
86
- rejectUnauthorized: true,
87
- ...peer.certPem ? { ca: [peer.certPem] } : {},
88
- checkServerIdentity: (_hostname, cert) => {
89
- if (peer.certFingerprint && cert.fingerprint256 !== peer.certFingerprint) {
90
- return new Error(`Cert fingerprint mismatch: expected ${peer.certFingerprint}, got ${cert.fingerprint256}`);
91
- }
92
- return void 0;
80
+ const sigHeaders = signRequest("POST", "/v1/chat/completions", body, config.self.signingKey, selfName);
81
+ const useTls = !!peer.verifyKey;
82
+ const requestFn = useTls ? __require("node:https").request : __require("node:http").request;
83
+ const tlsOpts = useTls ? {
84
+ minVersion: "TLSv1.3",
85
+ rejectUnauthorized: true,
86
+ checkServerIdentity: (_hostname, cert) => {
87
+ if (!cert.raw) return new Error("No cert from peer");
88
+ const certDerB64 = cert.raw.toString("base64");
89
+ const certPemBlock = `-----BEGIN CERTIFICATE-----
90
+ ${certDerB64.match(/.{1,64}/g).join("\n")}
91
+ -----END CERTIFICATE-----
92
+ `;
93
+ if (!verifyServerCert(certPemBlock, peer.verifyKey)) {
94
+ return new Error(`Cert key != enrolled verifyKey for ${peerName}`);
93
95
  }
94
- } : {};
96
+ return void 0;
97
+ }
98
+ } : {};
99
+ return new Promise((resolve, reject) => {
95
100
  const req = requestFn({
96
101
  hostname: peer.host,
97
102
  port: peer.port,
@@ -100,7 +105,7 @@ function postCompletion(peer, peerName, prompt, hops, timeoutMs, selfName) {
100
105
  headers: {
101
106
  "Content-Type": "application/json",
102
107
  "Content-Length": Buffer.byteLength(body),
103
- "Authorization": `Bearer ${jwt}`,
108
+ ...sigHeaders,
104
109
  "X-Peer-Hops": String(hops)
105
110
  },
106
111
  timeout: timeoutMs,
@@ -162,4 +167,4 @@ export {
162
167
  getCurrentPeerHops,
163
168
  setCurrentPeerHops
164
169
  };
165
- //# sourceMappingURL=peer-client-RGEU5HOK.js.map
170
+ //# sourceMappingURL=peer-client-UITTMWJ2.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/peer-client.ts"],
4
+ "sourcesContent": ["/**\n * peer-client.ts \u2014 HTTP client for peer_session tool (#392).\n * POST /v1/chat/completions with Ed25519 sig auth + TLS cert verify (#1293).\n */\n\nimport { loadPeerConfig, type PeerEntry } from \"./peer-config.js\";\nimport { logInfo } from \"./logger.js\";\n\nconst TAG = \"peer-client\";\n\nexport type PeerError = \"timeout\" | \"unreachable\" | \"hop_exceeded\" | \"auth_failed\" | \"peer_error\" | \"unknown_peer\";\n\n/**\n * Module-level hop budget for the current request. Set by agent-api-server\n * before dispatching a prompt that came with X-Peer-Hops. Read by peer_session\n * tool to know what hops value to forward. Safe in single-threaded Node\n * because agent-api-server processes one prompt at a time per session.\n */\nlet _currentHops: number | null = null;\nexport function setCurrentPeerHops(hops: number | null): void { _currentHops = hops; }\nexport function getCurrentPeerHops(): number | null { return _currentHops; }\n\nexport class PeerCallError extends Error {\n constructor(public readonly code: PeerError, message: string) {\n super(message);\n this.name = \"PeerCallError\";\n }\n}\n\n/**\n * Call a peer's /v1/chat/completions endpoint.\n * @param peerName \u2014 key in peers.json\n * @param prompt \u2014 user message to send\n * @param hops \u2014 remaining hop budget (decremented before sending)\n */\nexport async function callPeer(peerName: string, prompt: string, hops: number, opts?: { skipWakeup?: boolean }): Promise<string> {\n const config = loadPeerConfig();\n const peerKey = Object.keys(config.peers).find(k => k.toLowerCase() === peerName.toLowerCase());\n const peer = peerKey ? config.peers[peerKey] : undefined;\n if (!peer) {\n const available = Object.keys(config.peers).join(\", \") || \"(none)\";\n throw new PeerCallError(\"unknown_peer\", `Unknown peer '${peerName}'. Available: ${available}`);\n }\n\n // Sign outgoing message if we have a signing key (#416)\n let signedPrompt = prompt;\n if (config.self.signingKey) {\n const { signMessage } = await import(\"./digital-signature.js\");\n const { tag } = signMessage(config.self.signingKey, config.self.name, peerName, prompt);\n signedPrompt = `${prompt} ${tag}`;\n }\n\n const start = Date.now();\n try {\n const response = await postCompletion(peer, peerName, signedPrompt, hops, config.timeoutMs, config.self.name);\n logInfo(TAG, `PEER_CALL ${peerName} \u2014 ${prompt.length}ch \u2192 ${response.length}ch (${Date.now() - start}ms, hops=${hops})`);\n return response;\n } catch (err) {\n if (err instanceof PeerCallError && (err.code === \"unreachable\" || err.code === \"timeout\") && peer.udpPort && !opts?.skipWakeup) {\n logInfo(TAG, `Direct call failed (${err.code}) \u2014 UDP callback request \u2192 ${peerKey}`);\n const { registerPending, rejectPending } = await import(\"./pending-callback.js\");\n const { sendWakeup } = await import(\"./dns-wakeup.js\");\n const resultPromise = registerPending(peerKey!, signedPrompt);\n sendWakeup(peerKey!, peer.host, peer.udpPort);\n // Wait up to 60s for the peer to call back with the answer\n const timeout = setTimeout(() => rejectPending(peerKey!, \"callback timeout (60s)\"), 60000);\n try {\n const answer = await resultPromise;\n clearTimeout(timeout);\n logInfo(TAG, `PEER_CALL ${peerName} (via callback) \u2014 ${prompt.length}ch \u2192 ${answer.length}ch (${Date.now() - start}ms)`);\n return answer;\n } catch (cbErr) {\n clearTimeout(timeout);\n throw new PeerCallError(\"timeout\", `Callback failed: ${cbErr instanceof Error ? cbErr.message : String(cbErr)}`);\n }\n }\n throw err;\n }\n}\n\nfunction postCompletion(peer: PeerEntry, peerName: string, prompt: string, hops: number, timeoutMs: number, selfName: string): Promise<string> {\n const { signRequest, verifyServerCert } = require(\"./peer-transport/peer-auth.js\") as typeof import(\"./peer-transport/peer-auth.js\");\n const { loadPeerConfig } = require(\"./peer-config.js\") as typeof import(\"./peer-config.js\");\n const config = loadPeerConfig();\n\n const body = JSON.stringify({\n model: \"default\",\n messages: [{ role: \"user\", content: prompt }],\n });\n\n const sigHeaders = signRequest(\"POST\", \"/v1/chat/completions\", body, config.self.signingKey, selfName);\n\n const useTls = !!(peer.verifyKey);\n const requestFn = useTls\n ? (require(\"node:https\") as typeof import(\"node:https\")).request\n : require(\"node:http\").request;\n\n const tlsOpts = useTls ? {\n minVersion: \"TLSv1.3\" as const,\n rejectUnauthorized: true,\n checkServerIdentity: (_hostname: string, cert: { raw?: Buffer }) => {\n if (!cert.raw) return new Error(\"No cert from peer\");\n const certDerB64 = cert.raw.toString(\"base64\");\n const certPemBlock = `-----BEGIN CERTIFICATE-----\\n${certDerB64.match(/.{1,64}/g)!.join(\"\\n\")}\\n-----END CERTIFICATE-----\\n`;\n if (!verifyServerCert(certPemBlock, peer.verifyKey)) {\n return new Error(`Cert key != enrolled verifyKey for ${peerName}`);\n }\n return undefined;\n },\n } : {};\n\n return new Promise((resolve, reject) => {\n const req = requestFn({\n hostname: peer.host,\n port: peer.port,\n path: \"/v1/chat/completions\",\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Content-Length\": Buffer.byteLength(body),\n ...sigHeaders,\n \"X-Peer-Hops\": String(hops),\n },\n timeout: timeoutMs,\n ...tlsOpts,\n } as any, (res: any) => {\n let data = \"\";\n res.on(\"data\", (c: any) => data += c);\n res.on(\"end\", () => {\n if (res.statusCode === 401 || res.statusCode === 403) {\n reject(new PeerCallError(\"auth_failed\", `Peer rejected auth (${res.statusCode})`));\n return;\n }\n if (res.statusCode === 429 || res.statusCode === 508) {\n reject(new PeerCallError(\"hop_exceeded\", `Peer refused \u2014 hop limit reached`));\n return;\n }\n if (res.statusCode && res.statusCode >= 400) {\n reject(new PeerCallError(\"peer_error\", `Peer returned ${res.statusCode}: ${data.slice(0, 200)}`));\n return;\n }\n try {\n const parsed = JSON.parse(data);\n const content = parsed?.choices?.[0]?.message?.content ?? \"\";\n resolve(content);\n } catch {\n reject(new PeerCallError(\"peer_error\", `Peer returned non-JSON: ${data.slice(0, 100)}`));\n }\n });\n });\n req.on(\"timeout\", () => { req.destroy(); reject(new PeerCallError(\"timeout\", `Peer '${peer.host}:${peer.port}' timed out (${timeoutMs}ms)`)); });\n req.on(\"error\", (err: Error) => reject(new PeerCallError(\"unreachable\", `Peer unreachable: ${err.message}`)));\n req.write(body);\n req.end();\n });\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["loadPeerConfig"]
7
+ }
@@ -1,18 +1,23 @@
1
1
  #!/usr/bin/env node
2
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
3
  import {
4
+ bootstrapIdentity,
4
5
  clearPeerConfigCache,
6
+ deriveVerifyKey,
5
7
  init_peer_config,
6
8
  loadPeerConfig
7
- } from "./chunk-4S554KLW.js";
8
- import "./chunk-LUNA6PM5.js";
9
- import "./chunk-GWILHZPT.js";
9
+ } from "./chunk-3BG3AIDP.js";
10
+ import "./chunk-5RVOEFGT.js";
11
+ import "./chunk-WC5O5KOE.js";
12
+ import "./chunk-XRTXYN66.js";
10
13
  import "./chunk-GALQBVKO.js";
11
14
  import "./chunk-O7KQG6ME.js";
12
15
  import "./chunk-7K2YZTLD.js";
13
16
  init_peer_config();
14
17
  export {
18
+ bootstrapIdentity,
15
19
  clearPeerConfigCache,
20
+ deriveVerifyKey,
16
21
  loadPeerConfig
17
22
  };
18
- //# sourceMappingURL=peer-config-TN55LFDC.js.map
23
+ //# sourceMappingURL=peer-config-URM7DCW6.js.map
@@ -2,21 +2,23 @@
2
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
3
  import {
4
4
  HttpTransport,
5
- getPeerTransport,
6
- initPeerTransport,
7
- init_peer_transport
8
- } from "./chunk-5GCLBUBS.js";
9
- import {
10
5
  getAlivePeers,
11
6
  getPeerTable,
7
+ getPeerTransport,
12
8
  gossipBroadcast,
9
+ initPeerTransport,
10
+ init_peer_transport,
13
11
  setGossipInterval,
14
12
  startGossipListener,
15
13
  stopGossipListener
16
- } from "./chunk-HT2BPTZY.js";
17
- import "./chunk-4S554KLW.js";
18
- import "./chunk-LUNA6PM5.js";
19
- import "./chunk-GWILHZPT.js";
14
+ } from "./chunk-SFL4EPCZ.js";
15
+ import "./chunk-KOSFXW2S.js";
16
+ import "./chunk-3BG3AIDP.js";
17
+ import "./chunk-5RVOEFGT.js";
18
+ import "./chunk-WC5O5KOE.js";
19
+ import "./chunk-N5KN3LGD.js";
20
+ import "./chunk-2IYJ4I66.js";
21
+ import "./chunk-XRTXYN66.js";
20
22
  import "./chunk-GALQBVKO.js";
21
23
  import "./chunk-O7KQG6ME.js";
22
24
  import "./chunk-7K2YZTLD.js";
@@ -32,4 +34,4 @@ export {
32
34
  startGossipListener,
33
35
  stopGossipListener
34
36
  };
35
- //# sourceMappingURL=peer-transport-I6JPLFZ2.js.map
37
+ //# sourceMappingURL=peer-transport-SI7I72DB.js.map
@@ -4,23 +4,23 @@ import {
4
4
  buildTransport,
5
5
  phaseTransport,
6
6
  rebuildTransport
7
- } from "./chunk-YRU2K3O6.js";
8
- import "./chunk-JQDJPUHM.js";
9
- import "./chunk-GXL7HJPT.js";
10
- import "./chunk-5QUTMUIK.js";
11
- import "./chunk-ONBF5DDU.js";
12
- import "./chunk-IKUZPMVA.js";
13
- import "./chunk-AFREM7FX.js";
14
- import "./chunk-ZV4IWKDJ.js";
15
- import "./chunk-Y76VUJSF.js";
16
- import "./chunk-GRVWZO4C.js";
17
- import "./chunk-EQSG2CRM.js";
18
- import "./chunk-GVM5YU5I.js";
19
- import "./chunk-OXTSWQCX.js";
7
+ } from "./chunk-IMIGG5EO.js";
8
+ import "./chunk-TWB2ZGVH.js";
9
+ import "./chunk-EAX5ZZUL.js";
10
+ import "./chunk-JXYWDAHD.js";
11
+ import "./chunk-L72RIPEC.js";
12
+ import "./chunk-BNXV7SZI.js";
13
+ import "./chunk-YJZE4OK3.js";
14
+ import "./chunk-CK7YTA2F.js";
15
+ import "./chunk-E7XD5UGB.js";
16
+ import "./chunk-KOSFXW2S.js";
17
+ import "./chunk-FGYDIX54.js";
18
+ import "./chunk-Z4FZPB42.js";
19
+ import "./chunk-5Y3FJ2Y7.js";
20
20
  import "./chunk-N5KN3LGD.js";
21
- import "./chunk-65VCEC32.js";
22
- import "./chunk-YSKCQH6E.js";
23
- import "./chunk-GWILHZPT.js";
21
+ import "./chunk-6PA5JBUU.js";
22
+ import "./chunk-2IYJ4I66.js";
23
+ import "./chunk-XRTXYN66.js";
24
24
  import "./chunk-GALQBVKO.js";
25
25
  import "./chunk-O7KQG6ME.js";
26
26
  import "./chunk-7K2YZTLD.js";
@@ -29,4 +29,4 @@ export {
29
29
  phaseTransport,
30
30
  rebuildTransport
31
31
  };
32
- //# sourceMappingURL=phase-transport-PGKU2KD4.js.map
32
+ //# sourceMappingURL=phase-transport-ESWWACZI.js.map
@@ -3,8 +3,8 @@
3
3
  import {
4
4
  migrate,
5
5
  reconcile
6
- } from "./chunk-QROWBWLL.js";
7
- import "./chunk-GWILHZPT.js";
6
+ } from "./chunk-3XZ773BS.js";
7
+ import "./chunk-XRTXYN66.js";
8
8
  import "./chunk-GALQBVKO.js";
9
9
  import "./chunk-O7KQG6ME.js";
10
10
  import "./chunk-7K2YZTLD.js";
@@ -12,4 +12,4 @@ export {
12
12
  migrate,
13
13
  reconcile
14
14
  };
15
- //# sourceMappingURL=reconcile-CTFCLQRN.js.map
15
+ //# sourceMappingURL=reconcile-GFDQYNBD.js.map
@@ -3,14 +3,14 @@
3
3
  import {
4
4
  init_spin,
5
5
  spin
6
- } from "./chunk-ONBF5DDU.js";
6
+ } from "./chunk-L72RIPEC.js";
7
+ import "./chunk-BNXV7SZI.js";
7
8
  import {
8
9
  init_kanban_channel,
9
10
  kanban_channel_exports
10
- } from "./chunk-KTYGKPYM.js";
11
- import "./chunk-AFREM7FX.js";
12
- import "./chunk-ZV4IWKDJ.js";
13
- import "./chunk-Y76VUJSF.js";
11
+ } from "./chunk-2NLUT5S2.js";
12
+ import "./chunk-CK7YTA2F.js";
13
+ import "./chunk-E7XD5UGB.js";
14
14
  import {
15
15
  cascadeFail,
16
16
  init_kanban_board,
@@ -21,19 +21,19 @@ import {
21
21
  kanbanGetChildren,
22
22
  kanbanList,
23
23
  kanbanUpdate
24
- } from "./chunk-EQSG2CRM.js";
25
- import "./chunk-GVM5YU5I.js";
24
+ } from "./chunk-FGYDIX54.js";
25
+ import "./chunk-Z4FZPB42.js";
26
26
  import {
27
27
  init_nerve,
28
28
  nerve
29
- } from "./chunk-OXTSWQCX.js";
30
- import "./chunk-65VCEC32.js";
31
- import "./chunk-YSKCQH6E.js";
29
+ } from "./chunk-5Y3FJ2Y7.js";
30
+ import "./chunk-6PA5JBUU.js";
31
+ import "./chunk-2IYJ4I66.js";
32
32
  import {
33
33
  init_logger,
34
34
  logInfo,
35
35
  logWarn
36
- } from "./chunk-GWILHZPT.js";
36
+ } from "./chunk-XRTXYN66.js";
37
37
  import "./chunk-GALQBVKO.js";
38
38
  import "./chunk-O7KQG6ME.js";
39
39
  import {
@@ -140,4 +140,4 @@ function isStale(card) {
140
140
  export {
141
141
  startReconciler
142
142
  };
143
- //# sourceMappingURL=reconciler-EBKH3JNU.js.map
143
+ //# sourceMappingURL=reconciler-IEUJXJN2.js.map
@@ -2,12 +2,12 @@
2
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
3
  import {
4
4
  reconcile
5
- } from "./chunk-QROWBWLL.js";
5
+ } from "./chunk-3XZ773BS.js";
6
6
  import {
7
7
  printBanner
8
8
  } from "./chunk-YDY6QVWJ.js";
9
9
  import "./chunk-5NY2YULC.js";
10
- import "./chunk-GWILHZPT.js";
10
+ import "./chunk-XRTXYN66.js";
11
11
  import {
12
12
  abmindHome,
13
13
  abtarsHome,
@@ -201,4 +201,4 @@ function decryptFile(inputPath, outputPath, keyPath) {
201
201
  export {
202
202
  restore
203
203
  };
204
- //# sourceMappingURL=restore-IFHPI7I7.js.map
204
+ //# sourceMappingURL=restore-FARTGLQQ.js.map
@@ -2,7 +2,7 @@
2
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
3
  import {
4
4
  rollback
5
- } from "./chunk-HZDLFLRP.js";
5
+ } from "./chunk-J7DRPVMU.js";
6
6
  import "./chunk-YDY6QVWJ.js";
7
7
  import "./chunk-5NY2YULC.js";
8
8
  import "./chunk-O7KQG6ME.js";
@@ -10,4 +10,4 @@ import "./chunk-7K2YZTLD.js";
10
10
  export {
11
11
  rollback
12
12
  };
13
- //# sourceMappingURL=rollback-ANRI3T5Z.js.map
13
+ //# sourceMappingURL=rollback-GEWPZABG.js.map
@@ -4,7 +4,7 @@ import {
4
4
  init_logger,
5
5
  logError,
6
6
  logInfo
7
- } from "./chunk-GWILHZPT.js";
7
+ } from "./chunk-XRTXYN66.js";
8
8
  import "./chunk-GALQBVKO.js";
9
9
  import "./chunk-O7KQG6ME.js";
10
10
  import "./chunk-7K2YZTLD.js";
@@ -93,4 +93,4 @@ export {
93
93
  killSandbox,
94
94
  spawnSandbox
95
95
  };
96
- //# sourceMappingURL=sandbox-runtime-QROWHDCS.js.map
96
+ //# sourceMappingURL=sandbox-runtime-DV6E25J6.js.map
@@ -3,11 +3,11 @@
3
3
  import {
4
4
  init_log_and_swallow,
5
5
  logAndSwallow
6
- } from "./chunk-YSKCQH6E.js";
6
+ } from "./chunk-2IYJ4I66.js";
7
7
  import {
8
8
  init_logger,
9
9
  logInfo
10
- } from "./chunk-GWILHZPT.js";
10
+ } from "./chunk-XRTXYN66.js";
11
11
  import "./chunk-GALQBVKO.js";
12
12
  import "./chunk-O7KQG6ME.js";
13
13
  import "./chunk-7K2YZTLD.js";
@@ -42,4 +42,4 @@ function healPort(port) {
42
42
  export {
43
43
  healPort
44
44
  };
45
- //# sourceMappingURL=self-healer-utils-IFAYOQO2.js.map
45
+ //# sourceMappingURL=self-healer-utils-P4SKNNEM.js.map