abtars 0.2.1-alpha.8 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/README.md +98 -42
  2. package/bundle/{_registry.generated-ADOYFJJ4.js → _registry.generated-FNJOX7VV.js} +19 -16
  3. package/bundle/{_registry.generated-ADOYFJJ4.js.map → _registry.generated-FNJOX7VV.js.map} +1 -1
  4. package/bundle/abtars-browser.js +5 -6
  5. package/bundle/abtars-browser.js.map +2 -2
  6. package/bundle/abtars-cli.js +339 -271
  7. package/bundle/abtars-cli.js.map +4 -4
  8. package/bundle/abtars-restart.js +4 -4
  9. package/bundle/abtars-rss.js +25 -81
  10. package/bundle/abtars-rss.js.map +2 -2
  11. package/bundle/abtars-task.js +4 -5
  12. package/bundle/abtars-task.js.map +2 -2
  13. package/bundle/abtars-todo.js +133 -0
  14. package/bundle/abtars-todo.js.map +7 -0
  15. package/bundle/abtars.js +239 -155
  16. package/bundle/abtars.js.map +3 -3
  17. package/bundle/action-gate-DYV2XQBP.js +191 -0
  18. package/bundle/action-gate-DYV2XQBP.js.map +7 -0
  19. package/bundle/{agent-api-rate-limit-C25WGSFF.js → agent-api-rate-limit-R2OFAQ3N.js} +4 -4
  20. package/bundle/{agent-registry-SYUFNSVB.js → agent-registry-S2MNHQYQ.js} +8 -8
  21. package/bundle/{bridge-lock-transport-HO545SBK.js → bridge-lock-transport-N6OGDOSE.js} +5 -5
  22. package/bundle/{browse-delivery-VTLEAVYA.js → browse-delivery-DXGMDMXA.js} +8 -7
  23. package/bundle/{browser-REIXOJ6S.js → browser-QMYGSP5W.js} +11 -10
  24. package/bundle/{capability-ILW3D5HS.js → capability-733TLH4W.js} +6 -6
  25. package/bundle/{chunk-ZVDVNSXK.js → chunk-2SWKJX64.js} +7 -7
  26. package/bundle/{chunk-PZE3J7ER.js → chunk-3OXQWII3.js} +2 -2
  27. package/bundle/{chunk-R36WIOYX.js → chunk-3X6VGRL6.js} +33 -6
  28. package/bundle/chunk-3X6VGRL6.js.map +7 -0
  29. package/bundle/{chunk-4KJ76TTE.js → chunk-4XW7YA3K.js} +3 -3
  30. package/bundle/{chunk-Q62SXS73.js → chunk-BBDKU4EH.js} +9 -9
  31. package/bundle/{chunk-EX2SRTUE.js → chunk-CYSGXNBY.js} +2 -2
  32. package/bundle/{chunk-LYEAHE5V.js → chunk-DCY7DGMT.js} +2 -2
  33. package/bundle/chunk-DGS7J4P6.js +13 -0
  34. package/bundle/chunk-DGS7J4P6.js.map +7 -0
  35. package/bundle/{chunk-LDKSCXGL.js → chunk-DHPFI7OF.js} +8 -6
  36. package/bundle/{chunk-LDKSCXGL.js.map → chunk-DHPFI7OF.js.map} +1 -1
  37. package/bundle/{chunk-G6IXMYIO.js → chunk-DO4INSXE.js} +2 -2
  38. package/bundle/{chunk-VA5WKN3Z.js → chunk-EGA6JQVV.js} +4 -4
  39. package/bundle/chunk-EKHNWFEQ.js +85 -0
  40. package/bundle/chunk-EKHNWFEQ.js.map +7 -0
  41. package/bundle/{chunk-URAQLQ2U.js → chunk-F3HMZFIL.js} +4 -4
  42. package/bundle/{chunk-OOKLEC6V.js → chunk-FY3QUO2L.js} +7 -7
  43. package/bundle/{chunk-2BY6I4P5.js → chunk-GUTRAMK3.js} +2 -2
  44. package/bundle/{chunk-GPL57SRN.js → chunk-H7RX7UCR.js} +3 -3
  45. package/bundle/{chunk-BYDUMHXT.js → chunk-HAF2AFBW.js} +2 -2
  46. package/bundle/{chunk-A5OJYQNU.js → chunk-HCYENZAB.js} +49 -22
  47. package/bundle/chunk-HCYENZAB.js.map +7 -0
  48. package/bundle/{chunk-OZ4IZFV4.js → chunk-HJQZP5CK.js} +9 -9
  49. package/bundle/{chunk-OZ4IZFV4.js.map → chunk-HJQZP5CK.js.map} +2 -2
  50. package/bundle/{chunk-HEHD3GG5.js → chunk-ITB2K6LI.js} +6 -13
  51. package/bundle/{chunk-HEHD3GG5.js.map → chunk-ITB2K6LI.js.map} +3 -3
  52. package/bundle/{chunk-KSEIWT4T.js → chunk-JFKOPNKL.js} +10 -10
  53. package/bundle/chunk-JFKOPNKL.js.map +7 -0
  54. package/bundle/{chunk-4BUOO6WI.js → chunk-KL5QRHHK.js} +31 -11
  55. package/bundle/chunk-KL5QRHHK.js.map +7 -0
  56. package/bundle/{chunk-KFENC7BM.js → chunk-L33WNMCP.js} +2 -2
  57. package/bundle/{chunk-JRG4EFMP.js → chunk-LBMETTUP.js} +3 -3
  58. package/bundle/{chunk-TYVI3ZWA.js → chunk-LJAG2URA.js} +10 -7
  59. package/bundle/chunk-LJAG2URA.js.map +7 -0
  60. package/bundle/{chunk-RV54J75Q.js → chunk-MHK4UPM6.js} +13 -12
  61. package/bundle/chunk-MHK4UPM6.js.map +7 -0
  62. package/bundle/chunk-NIYVCGBC.js +330 -0
  63. package/bundle/chunk-NIYVCGBC.js.map +7 -0
  64. package/bundle/{chunk-P2BZSLJJ.js → chunk-OGZXYN6E.js} +392 -125
  65. package/bundle/chunk-OGZXYN6E.js.map +7 -0
  66. package/bundle/{chunk-TOUZC6NR.js → chunk-OKMN6J4Z.js} +3 -3
  67. package/bundle/{chunk-CELR236Q.js → chunk-Q7CH5DA3.js} +2 -2
  68. package/bundle/{chunk-XZSYMCLF.js → chunk-QIAFGDRL.js} +7 -7
  69. package/bundle/chunk-RITEGAW6.js +138 -0
  70. package/bundle/chunk-RITEGAW6.js.map +7 -0
  71. package/bundle/{chunk-UDZIZB5F.js → chunk-RTL7HO3N.js} +3 -3
  72. package/bundle/{chunk-ITG6XGBS.js → chunk-SA44ITVX.js} +10 -10
  73. package/bundle/{chunk-3MO2MDXJ.js → chunk-SA6YEFNG.js} +3 -3
  74. package/bundle/{chunk-GBBTK6H2.js → chunk-SRFEIZQT.js} +4 -4
  75. package/bundle/{chunk-ELRAH7VL.js → chunk-VXUVKC66.js} +3 -3
  76. package/bundle/{chunk-X5FBUA53.js → chunk-WLAVZSVZ.js} +69 -30
  77. package/bundle/chunk-WLAVZSVZ.js.map +7 -0
  78. package/bundle/{chunk-RSWUPUNA.js → chunk-WMWI3SJ7.js} +30 -6
  79. package/bundle/chunk-WMWI3SJ7.js.map +7 -0
  80. package/bundle/{chunk-MJ6PHMOK.js → chunk-WW5F2DCO.js} +11 -2
  81. package/bundle/chunk-WW5F2DCO.js.map +7 -0
  82. package/bundle/chunk-YWZPKBO6.js +22 -0
  83. package/bundle/chunk-YWZPKBO6.js.map +7 -0
  84. package/bundle/{chunk-KWBGYWDO.js → chunk-Z4SWEFIY.js} +12 -14
  85. package/bundle/chunk-Z4SWEFIY.js.map +7 -0
  86. package/bundle/chunk-ZAA7B5BN.js +22 -0
  87. package/bundle/chunk-ZAA7B5BN.js.map +7 -0
  88. package/bundle/{commands-WUGPBPHI.js → commands-AXW7L2MZ.js} +15 -14
  89. package/bundle/{config-DQIGDX4W.js → config-NDEYF4AQ.js} +7 -7
  90. package/bundle/{daemon-NPKYZ3CJ.js → daemon-WOQXCKNL.js} +4 -4
  91. package/bundle/{delegation-tools-6FICZQ5G.js → delegation-tools-Z5OM3TXS.js} +5 -5
  92. package/bundle/{deploy-lib-import-SBKXDD3F.js → deploy-lib-import-6VJTYXEG.js} +2 -2
  93. package/bundle/{deps-HN6CEXA4.js → deps-65V7XXG4.js} +4 -4
  94. package/bundle/{direct-api-transport-TRV45NO6.js → direct-api-transport-LSAUIP5S.js} +27 -15
  95. package/bundle/direct-api-transport-LSAUIP5S.js.map +7 -0
  96. package/bundle/{discord-adapter-WA2MFRK3.js → discord-adapter-LNWTIOUK.js} +27 -24
  97. package/bundle/discord-adapter-LNWTIOUK.js.map +7 -0
  98. package/bundle/{dns-wakeup-RYOCQ6GR.js → dns-wakeup-N46RPU5E.js} +3 -3
  99. package/bundle/{doctor-R54GZPKL.js → doctor-PIPSGI3H.js} +18 -7
  100. package/bundle/{doctor-R54GZPKL.js.map → doctor-PIPSGI3H.js.map} +2 -2
  101. package/bundle/{ensure-invariants-BJIEOSJ2.js → ensure-invariants-3NOBCYWS.js} +4 -4
  102. package/bundle/{env-schema-XCPAJ6IZ.js → env-schema-T43X43BU.js} +4 -4
  103. package/bundle/{hook-system-POI5VRIX.js → hook-system-ZCVOFFRD.js} +4 -4
  104. package/bundle/hotskills-DTROJY6G.js +17 -0
  105. package/bundle/{install-GEXWJYJC.js → install-FZT43PTH.js} +3 -3
  106. package/bundle/{install-manifest-QRWID3KZ.js → install-manifest-KBYD7SAY.js} +3 -3
  107. package/bundle/{irc-adapter-AIEP6OX6.js → irc-adapter-HXO5D4SW.js} +3 -3
  108. package/bundle/{irc-config-6VY67UPQ.js → irc-config-XN5VW2V4.js} +5 -5
  109. package/bundle/{lazy-require-UFYFFX2R.js → lazy-require-R3JYCV5M.js} +4 -4
  110. package/bundle/{media-utils-MOE36VWY.js → media-utils-W7XW3SVV.js} +4 -4
  111. package/bundle/{message-pipeline-2MBT44FO.js → message-pipeline-QX272U5X.js} +17 -14
  112. package/bundle/meta.json +2965 -2294
  113. package/bundle/{notification-U6F5ZBSG.js → notification-ULESRDHB.js} +7 -6
  114. package/bundle/{openrouter-credits-7XXO6QGQ.js → openrouter-credits-PLIKRY5D.js} +4 -4
  115. package/bundle/{paths-ZJYIDND2.js → paths-QQM74XYT.js} +4 -2
  116. package/bundle/{peer-client-T44VI7NB.js → peer-client-D2F5QWRV.js} +8 -8
  117. package/bundle/{peer-config-D5A4454H.js → peer-config-5SUIBJLG.js} +5 -5
  118. package/bundle/{phase-transport-FEZ4SIJJ.js → phase-transport-BSGROTHY.js} +10 -10
  119. package/bundle/restore-Z6MF54HS.js +151 -0
  120. package/bundle/restore-Z6MF54HS.js.map +7 -0
  121. package/bundle/{install-SH4UVUXQ.js → rollback-5RXXLUD6.js} +5 -7
  122. package/bundle/{self-healer-utils-7NFH22VJ.js → self-healer-utils-WPKOVXJD.js} +4 -4
  123. package/bundle/{skill-stats-IPVKMWN3.js → skill-stats-NHNH47QW.js} +5 -5
  124. package/bundle/{sleep-BPWX3FCN.js → sleep-K7EXAFGW.js} +8 -8
  125. package/bundle/{soul-bundle-BRIUDEQ2.js → soul-bundle-QTPWDJB2.js} +7 -7
  126. package/bundle/{soul-loader-GBXJ7EBH.js → soul-loader-LCPTN4PK.js} +8 -8
  127. package/bundle/{sse-parser-anthropic-H42TTLBD.js → sse-parser-anthropic-PYDJM3UC.js} +4 -4
  128. package/bundle/{sse-parser-responses-WG2LY2ML.js → sse-parser-responses-FYT7A5WT.js} +4 -4
  129. package/bundle/{ssrf-guard-E2KBBC5E.js → ssrf-guard-R4P5OCTO.js} +4 -4
  130. package/bundle/{start-CBVKNEAT.js → start-4DNURGIY.js} +1 -1
  131. package/bundle/{stt-CF3CPFDC.js → stt-YN77NND6.js} +5 -5
  132. package/bundle/{subagent-runtime-4MTYUBIZ.js → subagent-runtime-FQAT3564.js} +5 -5
  133. package/bundle/system-event-buffer-OEPPNUGK.js +17 -0
  134. package/bundle/system-event-buffer-OEPPNUGK.js.map +7 -0
  135. package/bundle/{system-message-TALP6GP2.js → system-message-BRU267FW.js} +3 -3
  136. package/bundle/{system-status-GLYXXDE3.js → system-status-7K2QTH3J.js} +58 -51
  137. package/bundle/system-status-7K2QTH3J.js.map +7 -0
  138. package/bundle/{hotskills-6ECHLXTJ.js → task-failure-buffer-DPM5MWZ5.js} +8 -7
  139. package/bundle/{task-store-LC7ZMS72.js → task-store-VCBHAB43.js} +5 -5
  140. package/bundle/{telegram-adapter-BJJYXN7J.js → telegram-adapter-LXLSG4SK.js} +51 -33
  141. package/bundle/telegram-adapter-LXLSG4SK.js.map +7 -0
  142. package/bundle/{tool-registry-T7XLTI2Q.js → tool-registry-5PXNSYOI.js} +12 -9
  143. package/bundle/{tool-sandbox-OZMXJZLQ.js → tool-sandbox-TLAL55QP.js} +5 -5
  144. package/bundle/{transport-config-G5NKQXPJ.js → transport-config-JIKHB7GT.js} +8 -8
  145. package/bundle/update-check-AJMIBQGQ.js +81 -0
  146. package/bundle/update-check-AJMIBQGQ.js.map +7 -0
  147. package/bundle/{user-registry-NUVNEHJU.js → user-registry-PEFDZ5AV.js} +5 -5
  148. package/core/skills/tools/rss/SKILL.md +51 -0
  149. package/install-manifest.json +4 -2
  150. package/package.json +4 -4
  151. package/scripts/build-and-deploy.sh +28 -0
  152. package/scripts/daily-backup.sh +1 -79
  153. package/scripts/doctor.sh +38 -0
  154. package/scripts/emergency-deploy.sh +95 -0
  155. package/scripts/watchdog.sh +51 -5
  156. package/bundle/chunk-4BUOO6WI.js.map +0 -7
  157. package/bundle/chunk-A5OJYQNU.js.map +0 -7
  158. package/bundle/chunk-JX3ZZU3O.js +0 -82
  159. package/bundle/chunk-JX3ZZU3O.js.map +0 -7
  160. package/bundle/chunk-KJOCXWJ5.js +0 -131
  161. package/bundle/chunk-KJOCXWJ5.js.map +0 -7
  162. package/bundle/chunk-KSEIWT4T.js.map +0 -7
  163. package/bundle/chunk-KWBGYWDO.js.map +0 -7
  164. package/bundle/chunk-MJ6PHMOK.js.map +0 -7
  165. package/bundle/chunk-P2BZSLJJ.js.map +0 -7
  166. package/bundle/chunk-R36WIOYX.js.map +0 -7
  167. package/bundle/chunk-RE3F3CFW.js +0 -300
  168. package/bundle/chunk-RE3F3CFW.js.map +0 -7
  169. package/bundle/chunk-RJJWPMUZ.js +0 -411
  170. package/bundle/chunk-RJJWPMUZ.js.map +0 -7
  171. package/bundle/chunk-RSWUPUNA.js.map +0 -7
  172. package/bundle/chunk-RV54J75Q.js.map +0 -7
  173. package/bundle/chunk-RVERPUHT.js +0 -289
  174. package/bundle/chunk-RVERPUHT.js.map +0 -7
  175. package/bundle/chunk-TYVI3ZWA.js.map +0 -7
  176. package/bundle/chunk-X5FBUA53.js.map +0 -7
  177. package/bundle/deploy-lib-import-HCMZCKZD.js +0 -50
  178. package/bundle/direct-api-transport-TRV45NO6.js.map +0 -7
  179. package/bundle/discord-adapter-WA2MFRK3.js.map +0 -7
  180. package/bundle/restore-ROJF22R2.js +0 -47
  181. package/bundle/restore-ROJF22R2.js.map +0 -7
  182. package/bundle/system-status-GLYXXDE3.js.map +0 -7
  183. package/bundle/telegram-adapter-BJJYXN7J.js.map +0 -7
  184. package/bundle/update-check-O5MS6B3L.js +0 -13
  185. package/bundle/user-registry-NUVNEHJU.js.map +0 -7
  186. /package/bundle/{agent-api-rate-limit-C25WGSFF.js.map → agent-api-rate-limit-R2OFAQ3N.js.map} +0 -0
  187. /package/bundle/{agent-registry-SYUFNSVB.js.map → agent-registry-S2MNHQYQ.js.map} +0 -0
  188. /package/bundle/{bridge-lock-transport-HO545SBK.js.map → bridge-lock-transport-N6OGDOSE.js.map} +0 -0
  189. /package/bundle/{browse-delivery-VTLEAVYA.js.map → browse-delivery-DXGMDMXA.js.map} +0 -0
  190. /package/bundle/{browser-REIXOJ6S.js.map → browser-QMYGSP5W.js.map} +0 -0
  191. /package/bundle/{capability-ILW3D5HS.js.map → capability-733TLH4W.js.map} +0 -0
  192. /package/bundle/{chunk-ZVDVNSXK.js.map → chunk-2SWKJX64.js.map} +0 -0
  193. /package/bundle/{chunk-PZE3J7ER.js.map → chunk-3OXQWII3.js.map} +0 -0
  194. /package/bundle/{chunk-4KJ76TTE.js.map → chunk-4XW7YA3K.js.map} +0 -0
  195. /package/bundle/{chunk-Q62SXS73.js.map → chunk-BBDKU4EH.js.map} +0 -0
  196. /package/bundle/{chunk-EX2SRTUE.js.map → chunk-CYSGXNBY.js.map} +0 -0
  197. /package/bundle/{chunk-LYEAHE5V.js.map → chunk-DCY7DGMT.js.map} +0 -0
  198. /package/bundle/{chunk-G6IXMYIO.js.map → chunk-DO4INSXE.js.map} +0 -0
  199. /package/bundle/{chunk-VA5WKN3Z.js.map → chunk-EGA6JQVV.js.map} +0 -0
  200. /package/bundle/{chunk-URAQLQ2U.js.map → chunk-F3HMZFIL.js.map} +0 -0
  201. /package/bundle/{chunk-OOKLEC6V.js.map → chunk-FY3QUO2L.js.map} +0 -0
  202. /package/bundle/{chunk-2BY6I4P5.js.map → chunk-GUTRAMK3.js.map} +0 -0
  203. /package/bundle/{chunk-GPL57SRN.js.map → chunk-H7RX7UCR.js.map} +0 -0
  204. /package/bundle/{chunk-BYDUMHXT.js.map → chunk-HAF2AFBW.js.map} +0 -0
  205. /package/bundle/{chunk-KFENC7BM.js.map → chunk-L33WNMCP.js.map} +0 -0
  206. /package/bundle/{chunk-JRG4EFMP.js.map → chunk-LBMETTUP.js.map} +0 -0
  207. /package/bundle/{chunk-TOUZC6NR.js.map → chunk-OKMN6J4Z.js.map} +0 -0
  208. /package/bundle/{chunk-CELR236Q.js.map → chunk-Q7CH5DA3.js.map} +0 -0
  209. /package/bundle/{chunk-XZSYMCLF.js.map → chunk-QIAFGDRL.js.map} +0 -0
  210. /package/bundle/{chunk-UDZIZB5F.js.map → chunk-RTL7HO3N.js.map} +0 -0
  211. /package/bundle/{chunk-ITG6XGBS.js.map → chunk-SA44ITVX.js.map} +0 -0
  212. /package/bundle/{chunk-3MO2MDXJ.js.map → chunk-SA6YEFNG.js.map} +0 -0
  213. /package/bundle/{chunk-GBBTK6H2.js.map → chunk-SRFEIZQT.js.map} +0 -0
  214. /package/bundle/{chunk-ELRAH7VL.js.map → chunk-VXUVKC66.js.map} +0 -0
  215. /package/bundle/{commands-WUGPBPHI.js.map → commands-AXW7L2MZ.js.map} +0 -0
  216. /package/bundle/{config-DQIGDX4W.js.map → config-NDEYF4AQ.js.map} +0 -0
  217. /package/bundle/{daemon-NPKYZ3CJ.js.map → daemon-WOQXCKNL.js.map} +0 -0
  218. /package/bundle/{delegation-tools-6FICZQ5G.js.map → delegation-tools-Z5OM3TXS.js.map} +0 -0
  219. /package/bundle/{deploy-lib-import-HCMZCKZD.js.map → deploy-lib-import-6VJTYXEG.js.map} +0 -0
  220. /package/bundle/{deps-HN6CEXA4.js.map → deps-65V7XXG4.js.map} +0 -0
  221. /package/bundle/{dns-wakeup-RYOCQ6GR.js.map → dns-wakeup-N46RPU5E.js.map} +0 -0
  222. /package/bundle/{ensure-invariants-BJIEOSJ2.js.map → ensure-invariants-3NOBCYWS.js.map} +0 -0
  223. /package/bundle/{deploy-lib-import-SBKXDD3F.js.map → env-schema-T43X43BU.js.map} +0 -0
  224. /package/bundle/{env-schema-XCPAJ6IZ.js.map → hook-system-ZCVOFFRD.js.map} +0 -0
  225. /package/bundle/{hook-system-POI5VRIX.js.map → hotskills-DTROJY6G.js.map} +0 -0
  226. /package/bundle/{hotskills-6ECHLXTJ.js.map → install-FZT43PTH.js.map} +0 -0
  227. /package/bundle/{install-manifest-QRWID3KZ.js.map → install-manifest-KBYD7SAY.js.map} +0 -0
  228. /package/bundle/{irc-adapter-AIEP6OX6.js.map → irc-adapter-HXO5D4SW.js.map} +0 -0
  229. /package/bundle/{irc-config-6VY67UPQ.js.map → irc-config-XN5VW2V4.js.map} +0 -0
  230. /package/bundle/{install-GEXWJYJC.js.map → lazy-require-R3JYCV5M.js.map} +0 -0
  231. /package/bundle/{media-utils-MOE36VWY.js.map → media-utils-W7XW3SVV.js.map} +0 -0
  232. /package/bundle/{install-SH4UVUXQ.js.map → message-pipeline-QX272U5X.js.map} +0 -0
  233. /package/bundle/{lazy-require-UFYFFX2R.js.map → notification-ULESRDHB.js.map} +0 -0
  234. /package/bundle/{openrouter-credits-7XXO6QGQ.js.map → openrouter-credits-PLIKRY5D.js.map} +0 -0
  235. /package/bundle/{message-pipeline-2MBT44FO.js.map → paths-QQM74XYT.js.map} +0 -0
  236. /package/bundle/{peer-client-T44VI7NB.js.map → peer-client-D2F5QWRV.js.map} +0 -0
  237. /package/bundle/{notification-U6F5ZBSG.js.map → peer-config-5SUIBJLG.js.map} +0 -0
  238. /package/bundle/{paths-ZJYIDND2.js.map → phase-transport-BSGROTHY.js.map} +0 -0
  239. /package/bundle/{peer-config-D5A4454H.js.map → rollback-5RXXLUD6.js.map} +0 -0
  240. /package/bundle/{self-healer-utils-7NFH22VJ.js.map → self-healer-utils-WPKOVXJD.js.map} +0 -0
  241. /package/bundle/{phase-transport-FEZ4SIJJ.js.map → skill-stats-NHNH47QW.js.map} +0 -0
  242. /package/bundle/{skill-stats-IPVKMWN3.js.map → sleep-K7EXAFGW.js.map} +0 -0
  243. /package/bundle/{sleep-BPWX3FCN.js.map → soul-bundle-QTPWDJB2.js.map} +0 -0
  244. /package/bundle/{soul-bundle-BRIUDEQ2.js.map → soul-loader-LCPTN4PK.js.map} +0 -0
  245. /package/bundle/{sse-parser-anthropic-H42TTLBD.js.map → sse-parser-anthropic-PYDJM3UC.js.map} +0 -0
  246. /package/bundle/{sse-parser-responses-WG2LY2ML.js.map → sse-parser-responses-FYT7A5WT.js.map} +0 -0
  247. /package/bundle/{ssrf-guard-E2KBBC5E.js.map → ssrf-guard-R4P5OCTO.js.map} +0 -0
  248. /package/bundle/{start-CBVKNEAT.js.map → start-4DNURGIY.js.map} +0 -0
  249. /package/bundle/{soul-loader-GBXJ7EBH.js.map → stt-YN77NND6.js.map} +0 -0
  250. /package/bundle/{stt-CF3CPFDC.js.map → subagent-runtime-FQAT3564.js.map} +0 -0
  251. /package/bundle/{system-message-TALP6GP2.js.map → system-message-BRU267FW.js.map} +0 -0
  252. /package/bundle/{subagent-runtime-4MTYUBIZ.js.map → task-failure-buffer-DPM5MWZ5.js.map} +0 -0
  253. /package/bundle/{task-store-LC7ZMS72.js.map → task-store-VCBHAB43.js.map} +0 -0
  254. /package/bundle/{tool-registry-T7XLTI2Q.js.map → tool-registry-5PXNSYOI.js.map} +0 -0
  255. /package/bundle/{tool-sandbox-OZMXJZLQ.js.map → tool-sandbox-TLAL55QP.js.map} +0 -0
  256. /package/bundle/{transport-config-G5NKQXPJ.js.map → transport-config-JIKHB7GT.js.map} +0 -0
  257. /package/bundle/{update-check-O5MS6B3L.js.map → user-registry-PEFDZ5AV.js.map} +0 -0
@@ -1,43 +1,35 @@
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
- init_update_check,
5
- update_check_exports
6
- } from "./chunk-JX3ZZU3O.js";
4
+ hotskills_exports,
5
+ init_hotskills
6
+ } from "./chunk-NIYVCGBC.js";
7
7
  import {
8
8
  init_log_and_swallow,
9
9
  logAndSwallow
10
- } from "./chunk-EX2SRTUE.js";
11
- import "./chunk-2BY6I4P5.js";
12
- import "./chunk-MJ6PHMOK.js";
10
+ } from "./chunk-CYSGXNBY.js";
11
+ import "./chunk-GUTRAMK3.js";
12
+ import "./chunk-WW5F2DCO.js";
13
13
  import {
14
+ __require,
14
15
  __toCommonJS
15
16
  } from "./chunk-7K2YZTLD.js";
16
17
 
17
18
  // src/components/system-status.ts
18
19
  init_log_and_swallow();
19
- import { readFileSync, readlinkSync, existsSync } from "node:fs";
20
- import { join, basename } from "node:path";
20
+ import { readFileSync } from "node:fs";
21
+ import { join } from "node:path";
21
22
  import { homedir } from "node:os";
22
- var TAG = "system_status";
23
23
  async function getSystemStatus(ctx) {
24
- let version = "?";
25
- let commit = "?";
26
- try {
27
- const target = basename(readlinkSync(join(homedir(), ".abtars", "current")));
28
- const dash = target.lastIndexOf("-");
29
- if (dash > 0) {
30
- version = target.slice(0, dash);
31
- commit = target.slice(dash + 1);
32
- }
33
- } catch (err) {
34
- logAndSwallow("system_status", "op", err);
35
- }
24
+ const { getDeployedVersion } = await import("./paths-QQM74XYT.js");
25
+ const deployed = getDeployedVersion();
26
+ const version = deployed.version;
27
+ const commit = deployed.commit || "?";
36
28
  let model = "unknown";
37
29
  let transportType = "unknown";
38
30
  let transportProvider = "unknown";
39
31
  try {
40
- const { loadTransport, resolveAgent } = await import("./transport-config-G5NKQXPJ.js");
32
+ const { loadTransport, resolveAgent } = await import("./transport-config-JIKHB7GT.js");
41
33
  const tc = loadTransport();
42
34
  const prof = tc ? resolveAgent("professor", tc) : null;
43
35
  if (prof) {
@@ -81,7 +73,7 @@ async function getSystemStatus(ctx) {
81
73
  }
82
74
  let tasks = { recurring: 0, pending: 0, paused: 0 };
83
75
  try {
84
- const { readEntries } = await import("./task-store-LC7ZMS72.js");
76
+ const { readEntries } = await import("./task-store-VCBHAB43.js");
85
77
  const entries = readEntries();
86
78
  tasks = {
87
79
  recurring: entries.filter((e) => e.schedule && !e.paused).length,
@@ -100,6 +92,18 @@ async function getSystemStatus(ctx) {
100
92
  } catch (err) {
101
93
  logAndSwallow("system_status", "op", err);
102
94
  }
95
+ let contextPercent = -1;
96
+ try {
97
+ const lock = JSON.parse(readFileSync(ctx.bridgeLockPath, "utf-8"));
98
+ if (typeof lock.contextPercent === "number") contextPercent = lock.contextPercent;
99
+ } catch {
100
+ }
101
+ let sleepStatus = null;
102
+ try {
103
+ const lock = JSON.parse(readFileSync(ctx.bridgeLockPath, "utf-8"));
104
+ sleepStatus = lock.sleepStatus ?? null;
105
+ } catch {
106
+ }
103
107
  return {
104
108
  version,
105
109
  commit,
@@ -108,6 +112,8 @@ async function getSystemStatus(ctx) {
108
112
  transportProvider,
109
113
  transportReady: ctx.transport?.isReady ?? false,
110
114
  uptimeMs: Date.now() - ctx.startedAt,
115
+ contextPercent,
116
+ sleepStatus,
111
117
  subsystems,
112
118
  tasks,
113
119
  lastBackup
@@ -128,41 +134,42 @@ function phaseToService(phaseName) {
128
134
  }
129
135
  function renderStatusText(status) {
130
136
  const uptime = formatUptime(status.uptimeMs);
137
+ const name = process.env["AGENT_NAME"] ?? process.env["BOT_NAME"] ?? "abtars";
131
138
  const lines = [
132
- `abTARS v${status.version} (${status.commit})`
139
+ `\u{1F60A} ${name} \u2014 online`,
140
+ ` PID ${process.pid} (up ${uptime})`
133
141
  ];
134
142
  try {
135
- const abmindManifest = join(homedir(), ".abmind", "manifest.json");
136
- if (existsSync(abmindManifest)) {
137
- const m = JSON.parse(readFileSync(abmindManifest, "utf-8"));
138
- const ver = m.version?.replace(/-[a-f0-9]{7,}$/, "") || null;
139
- const commit = m.commit?.slice(0, 7) ?? "";
140
- if (ver) {
141
- lines.push(`abmind v${ver}${commit ? ` (${commit})` : ""}`);
142
- } else {
143
- lines.push("abmind: installed (version unknown)");
144
- }
145
- } else {
146
- lines.push("abmind: not installed");
143
+ const { execFileSync } = __require("node:child_process");
144
+ const wdPid = execFileSync("pgrep", ["-f", "watchdog.sh"], { encoding: "utf-8", timeout: 2e3 }).trim().split("\n")[0];
145
+ if (wdPid) lines.push(` Watchdog: PID ${wdPid} (bash)`);
146
+ else lines.push(" Watchdog: not running");
147
+ } catch {
148
+ lines.push(" Watchdog: not detected");
149
+ }
150
+ const platforms = status.subsystems.find((s) => s.name === "phasePlatforms");
151
+ if (platforms?.detail) lines.push(` Platforms: ${platforms.detail}`);
152
+ lines.push(` Model: ${status.model.split("/").pop() ?? status.model}`);
153
+ if (status.contextPercent >= 0) lines.push(` Context: ${status.contextPercent}%`);
154
+ try {
155
+ const lock = JSON.parse(readFileSync(join(homedir(), ".abtars", "bridge.lock"), "utf-8"));
156
+ if (lock.lastPromptAt) {
157
+ const ago = Math.round((Date.now() - lock.lastPromptAt) / 1e3);
158
+ lines.push(` Last prompt: ${ago < 60 ? `${ago}s ago` : `${Math.round(ago / 60)}m ago`}`);
147
159
  }
148
- } catch (err) {
149
- logAndSwallow(TAG, "read abmind manifest", err);
160
+ } catch {
150
161
  }
162
+ if (status.sleepStatus) lines.push(` Sleep: ${status.sleepStatus}`);
151
163
  try {
152
- const { checkForUpdate } = (init_update_check(), __toCommonJS(update_check_exports));
153
- const result = checkForUpdate("abtars", status.version);
154
- if (result?.updateAvailable) {
155
- lines.push(`\u{1F4E6} Update available: ${result.current} \u2192 ${result.latest}`);
164
+ const { getSkillCache } = (init_hotskills(), __toCommonJS(hotskills_exports));
165
+ const skills = getSkillCache();
166
+ if (skills.length > 0) {
167
+ const active = skills.filter((s) => !s.skipped).length;
168
+ lines.push(` Skills: ${active} active`);
156
169
  }
157
- } catch (err) {
158
- logAndSwallow(TAG, "update check", err);
170
+ } catch {
159
171
  }
160
- lines.push(
161
- `\u{1F916} Model: ${status.model}`,
162
- `\u23F1\uFE0F Uptime: ${uptime}`,
163
- "",
164
- "\u{1F3E5} Subsystems:"
165
- );
172
+ lines.push("", "\u{1F3E5} Subsystems:");
166
173
  for (const s of status.subsystems) {
167
174
  const icon = s.status === "ok" ? "\u2713" : s.status === "skipped" ? "\u25CB" : "\u2717";
168
175
  const label = s.name.replace("phase", "").replace(/([A-Z])/g, " $1").trim().toLowerCase();
@@ -187,4 +194,4 @@ export {
187
194
  getSystemStatus,
188
195
  renderStatusText
189
196
  };
190
- //# sourceMappingURL=system-status-GLYXXDE3.js.map
197
+ //# sourceMappingURL=system-status-7K2QTH3J.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/system-status.ts"],
4
+ "sourcesContent": ["/**\n * system-status.ts \u2014 Single source of truth for bridge status.\n * One collector, many renderers. Used by /status (text), dashboard (HTML), future API (JSON).\n */\n\nimport { logAndSwallow } from \"./log-and-swallow.js\";\nimport { readFileSync, existsSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { homedir } from \"node:os\";\nimport type { ServiceState } from \"./service-registry.js\";\n\nconst TAG = \"system_status\";\n\nexport interface SubsystemHealth {\n name: string;\n status: \"ok\" | \"failed\" | \"skipped\" | \"stopped\" | \"retrying\";\n detail?: string;\n}\n\nexport interface SystemStatus {\n version: string;\n commit: string;\n model: string;\n transportType: string;\n transportProvider: string;\n transportReady: boolean;\n uptimeMs: number;\n contextPercent: number;\n sleepStatus: string | null;\n subsystems: SubsystemHealth[];\n tasks: { recurring: number; pending: number; paused: number };\n lastBackup: string | null;\n}\n\nexport interface StatusContext {\n phaseHealth: Map<string, { status: \"ok\" | \"failed\" | \"skipped\"; error?: string }>;\n registry: { getStates(): Record<string, ServiceState> };\n transport: { isReady: boolean } | null;\n startedAt: number;\n bridgeLockPath: string;\n heartbeat: { intervalMs: number } | null;\n}\n\nexport async function getSystemStatus(ctx: StatusContext): Promise<SystemStatus> {\n // Version + commit from manifest.json (single source of truth)\n const { getDeployedVersion } = await import(\"../paths.js\");\n const deployed = getDeployedVersion();\n const version = deployed.version;\n const commit = deployed.commit || \"?\";\n\n // Model + transport\n let model = \"unknown\";\n let transportType = \"unknown\";\n let transportProvider = \"unknown\";\n try {\n const { loadTransport, resolveAgent } = await import(\"./transport-config.js\");\n const tc = loadTransport();\n const prof = tc ? resolveAgent(\"professor\", tc) : null;\n if (prof) {\n model = prof.model;\n transportType = (prof.provider.transport ?? \"acp\").toUpperCase();\n transportProvider = prof.providerName ?? \"unknown\";\n }\n } catch (err) { logAndSwallow(\"system_status\", \"op\", err); }\n\n // Subsystem health: merge phaseHealth + ServiceRegistry live state\n const serviceStates = ctx.registry.getStates();\n const subsystems: SubsystemHealth[] = [];\n\n for (const [name, health] of ctx.phaseHealth) {\n const entry: SubsystemHealth = { name, status: health.status };\n\n // For platform services, override with live ServiceRegistry state\n const svcName = phaseToService(name);\n if (svcName && serviceStates[svcName]) {\n const svc = serviceStates[svcName] as ServiceState;\n if (health.status === \"ok\" && !svc.running) {\n entry.status = svc.retrying ? \"retrying\" : \"stopped\";\n }\n if (svc.retrying) {\n entry.detail = `retry #${svc.retrying.attempt}`;\n }\n }\n\n // Add contextual detail for specific phases\n if (name === \"phaseTransport\" && health.status === \"ok\" && ctx.transport) {\n entry.detail = `${transportType} (${transportProvider}), ${ctx.transport.isReady ? \"ready\" : \"not ready\"}`;\n }\n if (name === \"phaseHeartbeat\" && health.status === \"ok\" && ctx.heartbeat) {\n try {\n const lock = JSON.parse(readFileSync(ctx.bridgeLockPath, \"utf-8\"));\n const ago = Math.round((Date.now() - (lock.lastHeartbeat || 0)) / 60000);\n entry.detail = `${Math.round(ctx.heartbeat.intervalMs / 1000)}s, last tick ${ago}m ago`;\n } catch (err) { logAndSwallow(\"system_status\", \"op\", err); }\n }\n if (name === \"phaseDashboard\" && health.status === \"ok\") {\n entry.detail = `:${process.env[\"WEB_PORT\"] || \"3000\"}`;\n }\n\n subsystems.push(entry);\n }\n\n // Tasks\n let tasks = { recurring: 0, pending: 0, paused: 0 };\n try {\n const { readEntries } = await import(\"./tasks/task-store.js\");\n const entries = readEntries();\n tasks = {\n recurring: entries.filter((e: any) => e.schedule && !e.paused).length,\n pending: entries.filter((e: any) => !e.fired && !e.schedule).length,\n paused: entries.filter((e: any) => e.paused).length,\n };\n } catch (err) { logAndSwallow(\"system_status\", \"op\", err); }\n\n // Last backup\n let lastBackup: string | null = null;\n try {\n const { readdirSync } = await import(\"node:fs\");\n const bd = join(homedir(), \".backup-abtars\");\n const bk = readdirSync(bd).filter((f: string) => f.startsWith(\"abtars-\")).sort();\n if (bk.length > 0) lastBackup = bk[bk.length - 1] ?? null;\n } catch (err) { logAndSwallow(\"system_status\", \"op\", err); }\n\n // Context percent from bridge.lock\n let contextPercent = -1;\n try {\n const lock = JSON.parse(readFileSync(ctx.bridgeLockPath, \"utf-8\"));\n if (typeof lock.contextPercent === \"number\") contextPercent = lock.contextPercent;\n } catch { /* ignore */ }\n\n // Sleep status\n let sleepStatus: string | null = null;\n try {\n const lock = JSON.parse(readFileSync(ctx.bridgeLockPath, \"utf-8\"));\n sleepStatus = lock.sleepStatus ?? null;\n } catch { /* ignore */ }\n\n return {\n version,\n commit,\n model,\n transportType,\n transportProvider,\n transportReady: ctx.transport?.isReady ?? false,\n uptimeMs: Date.now() - ctx.startedAt,\n contextPercent,\n sleepStatus,\n subsystems,\n tasks,\n lastBackup,\n };\n}\n\n/** Map phase names to ServiceRegistry service names (for live state merge). */\nfunction phaseToService(phaseName: string): string | null {\n switch (phaseName) {\n case \"phasePlatforms\": return null; // platforms registers telegram + discord separately\n case \"phaseDashboard\": return null;\n case \"phaseAgentApi\": return \"agent-api\";\n default: return null;\n }\n}\n\n/** Render SystemStatus as plain text for Telegram/Discord /status command. */\nexport function renderStatusText(status: SystemStatus): string {\n const uptime = formatUptime(status.uptimeMs);\n const name = process.env[\"AGENT_NAME\"] ?? process.env[\"BOT_NAME\"] ?? \"abtars\";\n const lines: string[] = [\n `\uD83D\uDE0A ${name} \u2014 online`,\n ` PID ${process.pid} (up ${uptime})`,\n ];\n\n // Watchdog\n try {\n const { execFileSync } = require(\"node:child_process\") as typeof import(\"node:child_process\");\n const wdPid = execFileSync(\"pgrep\", [\"-f\", \"watchdog.sh\"], { encoding: \"utf-8\", timeout: 2000 }).trim().split(\"\\n\")[0];\n if (wdPid) lines.push(` Watchdog: PID ${wdPid} (bash)`);\n else lines.push(\" Watchdog: not running\");\n } catch { lines.push(\" Watchdog: not detected\"); }\n\n // Platforms\n const platforms = status.subsystems.find(s => s.name === \"phasePlatforms\");\n if (platforms?.detail) lines.push(` Platforms: ${platforms.detail}`);\n\n // Model + context\n lines.push(` Model: ${status.model.split(\"/\").pop() ?? status.model}`);\n if (status.contextPercent >= 0) lines.push(` Context: ${status.contextPercent}%`);\n\n // Last prompt\n try {\n const lock = JSON.parse(readFileSync(join(homedir(), \".abtars\", \"bridge.lock\"), \"utf-8\"));\n if (lock.lastPromptAt) {\n const ago = Math.round((Date.now() - lock.lastPromptAt) / 1000);\n lines.push(` Last prompt: ${ago < 60 ? `${ago}s ago` : `${Math.round(ago / 60)}m ago`}`);\n }\n } catch { /* no lock */ }\n\n // Sleep\n if (status.sleepStatus) lines.push(` Sleep: ${status.sleepStatus}`);\n\n // Skills\n try {\n const { getSkillCache } = require(\"../capabilities/hotskills/index.js\") as typeof import(\"../capabilities/hotskills/index.js\");\n const skills = getSkillCache();\n if (skills.length > 0) {\n const active = skills.filter(s => !s.skipped).length;\n lines.push(` Skills: ${active} active`);\n }\n } catch { /* hotskills not loaded */ }\n\n lines.push(\"\", \"\uD83C\uDFE5 Subsystems:\");\n\n for (const s of status.subsystems) {\n const icon = s.status === \"ok\" ? \"\u2713\" : s.status === \"skipped\" ? \"\u25CB\" : \"\u2717\";\n const label = s.name.replace(\"phase\", \"\").replace(/([A-Z])/g, \" $1\").trim().toLowerCase();\n const detail = s.detail ? ` \u2014 ${s.detail}` : \"\";\n lines.push(` ${icon} ${label}${detail}`);\n }\n\n lines.push(\"\");\n lines.push(`\u23F0 Tasks: ${status.tasks.recurring} recurring, ${status.tasks.pending} pending${status.tasks.paused ? `, ${status.tasks.paused} paused` : \"\"}`);\n if (status.lastBackup) lines.push(`\uD83D\uDCBE Last backup: ${status.lastBackup}`);\n\n return lines.join(\"\\n\");\n}\n\nfunction formatUptime(ms: number): string {\n const s = Math.floor(ms / 1000);\n const m = Math.floor(s / 60) % 60;\n const h = Math.floor(s / 3600) % 24;\n const d = Math.floor(s / 86400);\n if (d > 0) return `${d}d ${h}h ${m}m`;\n if (h > 0) return `${h}h ${m}m`;\n return `${m}m`;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,13 +1,14 @@
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
- register
5
- } from "./chunk-RE3F3CFW.js";
6
- import "./chunk-EX2SRTUE.js";
7
- import "./chunk-2BY6I4P5.js";
8
- import "./chunk-MJ6PHMOK.js";
4
+ addTaskFailure,
5
+ drainTaskFailures,
6
+ hasTaskFailures
7
+ } from "./chunk-ZAA7B5BN.js";
9
8
  import "./chunk-7K2YZTLD.js";
10
9
  export {
11
- register
10
+ addTaskFailure,
11
+ drainTaskFailures,
12
+ hasTaskFailures
12
13
  };
13
- //# sourceMappingURL=hotskills-6ECHLXTJ.js.map
14
+ //# sourceMappingURL=task-failure-buffer-DPM5MWZ5.js.map
@@ -7,10 +7,10 @@ import {
7
7
  recordRun,
8
8
  removeEntry,
9
9
  writeEntry
10
- } from "./chunk-GPL57SRN.js";
11
- import "./chunk-EX2SRTUE.js";
12
- import "./chunk-2BY6I4P5.js";
13
- import "./chunk-MJ6PHMOK.js";
10
+ } from "./chunk-H7RX7UCR.js";
11
+ import "./chunk-CYSGXNBY.js";
12
+ import "./chunk-GUTRAMK3.js";
13
+ import "./chunk-WW5F2DCO.js";
14
14
  import "./chunk-7K2YZTLD.js";
15
15
  export {
16
16
  closeDb,
@@ -20,4 +20,4 @@ export {
20
20
  removeEntry,
21
21
  writeEntry
22
22
  };
23
- //# sourceMappingURL=task-store-LC7ZMS72.js.map
23
+ //# sourceMappingURL=task-store-VCBHAB43.js.map
@@ -4,47 +4,49 @@ import {
4
4
  BOT_COMMANDS,
5
5
  ResponseFormatter,
6
6
  SecurityGate,
7
- emojiToScore
8
- } from "./chunk-R36WIOYX.js";
7
+ emojiToScore,
8
+ emojiToTag
9
+ } from "./chunk-3X6VGRL6.js";
9
10
  import {
10
11
  cleanResponse,
11
12
  formatReactionSignal,
12
13
  handleInboundMessage,
13
14
  resetAndPrepare,
14
15
  routeReaction
15
- } from "./chunk-P2BZSLJJ.js";
16
+ } from "./chunk-OGZXYN6E.js";
16
17
  import "./chunk-NIRYBWUW.js";
17
- import "./chunk-3MO2MDXJ.js";
18
- import "./chunk-RV54J75Q.js";
19
- import "./chunk-KFENC7BM.js";
20
- import "./chunk-OZ4IZFV4.js";
18
+ import "./chunk-SA6YEFNG.js";
19
+ import "./chunk-MHK4UPM6.js";
20
+ import "./chunk-YWZPKBO6.js";
21
+ import "./chunk-L33WNMCP.js";
22
+ import "./chunk-HJQZP5CK.js";
23
+ import "./chunk-JAJ3DUQ2.js";
24
+ import "./chunk-DO4INSXE.js";
25
+ import "./chunk-RTL7HO3N.js";
21
26
  import {
22
27
  loadUsers
23
- } from "./chunk-GBBTK6H2.js";
24
- import "./chunk-JAJ3DUQ2.js";
25
- import "./chunk-G6IXMYIO.js";
26
- import "./chunk-UDZIZB5F.js";
27
- import "./chunk-GPL57SRN.js";
28
+ } from "./chunk-SRFEIZQT.js";
29
+ import "./chunk-H7RX7UCR.js";
28
30
  import "./chunk-MZWMYN4O.js";
29
- import {
30
- init_log_and_swallow,
31
- logAndSwallow
32
- } from "./chunk-EX2SRTUE.js";
33
31
  import {
34
32
  getEnv,
35
33
  init_env_schema
36
- } from "./chunk-PZE3J7ER.js";
34
+ } from "./chunk-3OXQWII3.js";
35
+ import {
36
+ init_log_and_swallow,
37
+ logAndSwallow
38
+ } from "./chunk-CYSGXNBY.js";
37
39
  import {
38
40
  init_logger,
39
41
  logDebug,
40
42
  logError,
41
43
  logInfo,
42
44
  logWarn
43
- } from "./chunk-2BY6I4P5.js";
45
+ } from "./chunk-GUTRAMK3.js";
44
46
  import {
45
47
  abtarsHome,
46
48
  init_paths
47
- } from "./chunk-MJ6PHMOK.js";
49
+ } from "./chunk-WW5F2DCO.js";
48
50
  import "./chunk-7K2YZTLD.js";
49
51
 
50
52
  // src/platforms/telegram/telegram-adapter.ts
@@ -397,7 +399,7 @@ async function handleModelPickerCallback(data, chatId, api, state, deps) {
397
399
  }
398
400
  if (target.startsWith("p:")) {
399
401
  const agent = target.slice(2);
400
- const { loadTransport, resolveAgent, getAvailableProviders, getModelsForProvider } = await import("./transport-config-G5NKQXPJ.js");
402
+ const { loadTransport, resolveAgent, getAvailableProviders, getModelsForProvider } = await import("./transport-config-JIKHB7GT.js");
401
403
  const tc = loadTransport();
402
404
  if (!tc) {
403
405
  await api.sendMessage(chatId, "\u274C transport.json not loaded");
@@ -422,7 +424,7 @@ async function handleModelPickerCallback(data, chatId, api, state, deps) {
422
424
  if (target.startsWith("s:")) {
423
425
  const slot = target.slice(2);
424
426
  state._pendingSlot = slot;
425
- const { loadTransport, resolveAgent, getAvailableProviders, getModelsForProvider } = await import("./transport-config-G5NKQXPJ.js");
427
+ const { loadTransport, resolveAgent, getAvailableProviders, getModelsForProvider } = await import("./transport-config-JIKHB7GT.js");
426
428
  const tc = loadTransport();
427
429
  if (!tc) {
428
430
  await api.sendMessage(chatId, "\u274C transport.json not loaded");
@@ -442,7 +444,7 @@ async function handleModelPickerCallback(data, chatId, api, state, deps) {
442
444
  }
443
445
  } else if (data.startsWith("mslot:")) {
444
446
  const agent = data.slice(6);
445
- const { loadTransport, resolveAgent, getAvailableProviders, getModelsForProvider } = await import("./transport-config-G5NKQXPJ.js");
447
+ const { loadTransport, resolveAgent, getAvailableProviders, getModelsForProvider } = await import("./transport-config-JIKHB7GT.js");
446
448
  const tc = loadTransport();
447
449
  if (!tc) {
448
450
  await api.sendMessage(chatId, "\u274C transport.json not loaded");
@@ -480,7 +482,7 @@ async function handleModelPickerCallback(data, chatId, api, state, deps) {
480
482
  await api.sendMessage(chatId, `\u{1F50C} Pick provider:`, { reply_markup: { inline_keyboard: buttons } });
481
483
  } else if (data.startsWith("mprov:")) {
482
484
  const [, agent, providerName] = data.split(":");
483
- const { loadTransport, getModelsForProvider, formatRank, formatCost } = await import("./transport-config-G5NKQXPJ.js");
485
+ const { loadTransport, getModelsForProvider, formatRank, formatCost } = await import("./transport-config-JIKHB7GT.js");
484
486
  const tc = loadTransport();
485
487
  let models = getModelsForProvider(providerName);
486
488
  const providerConfig = tc?.providers[providerName];
@@ -496,7 +498,7 @@ async function handleModelPickerCallback(data, chatId, api, state, deps) {
496
498
  await api.sendMessage(chatId, `\u{1F4CB} Models on ${providerName}:`, { reply_markup: { inline_keyboard: buttons } });
497
499
  } else if (data.startsWith("mpos:")) {
498
500
  const [, , , slot] = data.split(":");
499
- const { loadTransport, resolveAgent, getAvailableProviders, getModelsForProvider } = await import("./transport-config-G5NKQXPJ.js");
501
+ const { loadTransport, resolveAgent, getAvailableProviders, getModelsForProvider } = await import("./transport-config-JIKHB7GT.js");
500
502
  const tc = loadTransport();
501
503
  if (!tc) {
502
504
  await api.sendMessage(chatId, "\u274C transport.json not loaded");
@@ -527,7 +529,7 @@ async function handleModelPickerCallback(data, chatId, api, state, deps) {
527
529
  await api.sendMessage(chatId, `\u{1F50C} Provider for ${slotLabel}:`, { reply_markup: { inline_keyboard: buttons } });
528
530
  } else if (data.startsWith("mprov2:")) {
529
531
  const [, slot, providerName] = data.split(":");
530
- const { getModelsForProvider, formatRank, formatCost, loadTransport } = await import("./transport-config-G5NKQXPJ.js");
532
+ const { getModelsForProvider, formatRank, formatCost, loadTransport } = await import("./transport-config-JIKHB7GT.js");
531
533
  const tc = loadTransport();
532
534
  const providerConfig = tc?.providers[providerName];
533
535
  let models = getModelsForProvider(providerName);
@@ -550,7 +552,7 @@ async function handleModelPickerCallback(data, chatId, api, state, deps) {
550
552
  const slot = state._pendingSlot ?? "professor";
551
553
  state._pendingSlot = void 0;
552
554
  state._modelPickerCache = [];
553
- const { loadTransport, writeTransportConfig, resolveAgent, getModelsForProvider, validateProviderReady, formatValidationError } = await import("./transport-config-G5NKQXPJ.js");
555
+ const { loadTransport, writeTransportConfig, resolveAgent, getModelsForProvider, validateProviderReady, formatValidationError } = await import("./transport-config-JIKHB7GT.js");
554
556
  const tc = loadTransport();
555
557
  if (!tc) {
556
558
  await api.sendMessage(chatId, "\u274C transport.json not loaded");
@@ -594,14 +596,14 @@ async function handleModelPickerCallback(data, chatId, api, state, deps) {
594
596
  if (!tc.agents["professor"]) tc.agents["professor"] = { model: "", provider: "" };
595
597
  if (!tc.agents["professor"].fallbacks) tc.agents["professor"].fallbacks = [];
596
598
  tc.agents["professor"].fallbacks[fbIndex] = { model, provider: providerName };
597
- const { cleanDemotedModels } = await import("./transport-config-G5NKQXPJ.js");
599
+ const { cleanDemotedModels } = await import("./transport-config-JIKHB7GT.js");
598
600
  cleanDemotedModels(tc, model);
599
601
  writeTransportConfig(tc, `professor fallback ${fbIndex + 1} \u2192 ${model} (${providerName})`);
600
602
  await api.sendMessage(chatId, `\u2705 Fallback ${fbIndex + 1} \u2192 ${model} (${providerName})`);
601
603
  } else {
602
604
  const oldProvider = tc.agents[agentKey]?.provider;
603
605
  tc.agents[agentKey] = { ...tc.agents[agentKey], model, provider: providerName };
604
- const { cleanDemotedModels } = await import("./transport-config-G5NKQXPJ.js");
606
+ const { cleanDemotedModels } = await import("./transport-config-JIKHB7GT.js");
605
607
  cleanDemotedModels(tc, model);
606
608
  writeTransportConfig(tc, `${agentKey} \u2192 ${model} (${providerName})`);
607
609
  const providerChanged = oldProvider !== providerName;
@@ -826,6 +828,10 @@ var TelegramAdapter = class {
826
828
  if (chatId2) await this.api.sendMessage(chatId2, `\u274C Model switch failed: ${err instanceof Error ? err.message : String(err)}`);
827
829
  }
828
830
  }
831
+ } else if (data.startsWith("auth:")) {
832
+ if (this.deps.actionGate?.handleCallback(data)) {
833
+ await this.api.sendMessage(chatId2, "\u2713 Responded.");
834
+ }
829
835
  }
830
836
  } catch (err) {
831
837
  logWarn(TAG4, `Callback handler error: ${err instanceof Error ? err.message : String(err)}`);
@@ -871,7 +877,7 @@ var TelegramAdapter = class {
871
877
  await this.setReaction(String(chatId), messageId, "\u{1F440}");
872
878
  const voiceFile = message.voice || message.audio;
873
879
  const audioBuffer = await this.downloadVoice(voiceFile.file_id);
874
- const { transcribeAudio } = await import("./stt-CF3CPFDC.js");
880
+ const { transcribeAudio } = await import("./stt-YN77NND6.js");
875
881
  const result = await transcribeAudio(audioBuffer, "voice.ogg", this.deps.pipeline.sttConfig);
876
882
  const transcript = result.text;
877
883
  if (!transcript) {
@@ -924,7 +930,7 @@ var TelegramAdapter = class {
924
930
  let mediaPath;
925
931
  if ((hasPhoto || hasDocument) && this.securityGate.authorizeById(String(message.from?.id))) {
926
932
  try {
927
- const { saveInboundMedia } = await import("./media-utils-MOE36VWY.js");
933
+ const { saveInboundMedia } = await import("./media-utils-W7XW3SVV.js");
928
934
  let fileId;
929
935
  let extHint;
930
936
  let claimedMime;
@@ -958,7 +964,7 @@ ${text}`;
958
964
  }
959
965
  if (reply?.photo?.length && !mediaPath && this.securityGate.authorizeById(String(message.from?.id))) {
960
966
  try {
961
- const { saveInboundMedia } = await import("./media-utils-MOE36VWY.js");
967
+ const { saveInboundMedia } = await import("./media-utils-W7XW3SVV.js");
962
968
  const photo = reply.photo[reply.photo.length - 1];
963
969
  const buf = await this.downloadVoice(photo.file_id);
964
970
  const saved = await saveInboundMedia(buf, chatId, { extHint: ".jpg" });
@@ -1012,8 +1018,20 @@ ${text}`;
1012
1018
  const route = routeReaction(isAuthorized, reaction.chat.type);
1013
1019
  if (isAuthorized && this.deps.memory) {
1014
1020
  const score = emojiToScore(emojis[0]);
1015
- const updated = this.deps.memory.updateEmotionByPlatformId(loadUsers().byPlatformId.get(`telegram:${chatId}`)?.userId ?? "master", reaction.message_id, score);
1021
+ const tag = emojiToTag(emojis[0]);
1022
+ const updated = this.deps.memory.updateEmotionByPlatformId(loadUsers().byPlatformId.get(`telegram:${chatId}`)?.userId ?? "master", reaction.message_id, score, tag);
1016
1023
  if (updated) logDebug(TAG4, `Emotion score ${score} set on platform msg ${reaction.message_id}`);
1024
+ const { getRecalledIdsForMessage } = await import("./message-pipeline-QX272U5X.js");
1025
+ const recalledIds = getRecalledIdsForMessage(reaction.message_id);
1026
+ if (recalledIds && recalledIds.length > 0) {
1027
+ if (score < 0) {
1028
+ this.deps.memory.bumpRejectedCount(recalledIds);
1029
+ logDebug(TAG4, `Recall rejection: ${recalledIds.length} memories penalized (emoji ${emojis[0]})`);
1030
+ } else if (score > 0) {
1031
+ this.deps.memory.bumpCitedCount(recalledIds);
1032
+ logDebug(TAG4, `Recall confirmed: ${recalledIds.length} memories boosted (emoji ${emojis[0]})`);
1033
+ }
1034
+ }
1017
1035
  }
1018
1036
  if (route === "discard") {
1019
1037
  logDebug(TAG4, `Unauthorized reaction from user ${user.id}, discarding`);
@@ -1059,4 +1077,4 @@ export {
1059
1077
  TELEGRAM_CAPABILITIES,
1060
1078
  TelegramAdapter
1061
1079
  };
1062
- //# sourceMappingURL=telegram-adapter-BJJYXN7J.js.map
1080
+ //# sourceMappingURL=telegram-adapter-LXLSG4SK.js.map