abtars 0.2.1-alpha.9 → 0.2.2

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 (309) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/README.md +93 -34
  3. package/bundle/{_registry.generated-ADOYFJJ4.js → _registry.generated-KYX63MGY.js} +19 -16
  4. package/bundle/{_registry.generated-ADOYFJJ4.js.map → _registry.generated-KYX63MGY.js.map} +1 -1
  5. package/bundle/abtars-browser.js +5 -6
  6. package/bundle/abtars-browser.js.map +2 -2
  7. package/bundle/abtars-cli.js +205 -179
  8. package/bundle/abtars-cli.js.map +4 -4
  9. package/bundle/abtars-restart.js +4 -4
  10. package/bundle/abtars-rss.js +25 -81
  11. package/bundle/abtars-rss.js.map +2 -2
  12. package/bundle/abtars-task.js +4 -5
  13. package/bundle/abtars-task.js.map +2 -2
  14. package/bundle/abtars-todo.js +133 -0
  15. package/bundle/abtars-todo.js.map +7 -0
  16. package/bundle/abtars.js +305 -182
  17. package/bundle/abtars.js.map +3 -3
  18. package/bundle/action-gate-DYV2XQBP.js +191 -0
  19. package/bundle/action-gate-DYV2XQBP.js.map +7 -0
  20. package/bundle/{agent-api-rate-limit-C25WGSFF.js → agent-api-rate-limit-R2OFAQ3N.js} +4 -4
  21. package/bundle/{agent-registry-SYUFNSVB.js → agent-registry-5VL5KI6U.js} +8 -8
  22. package/bundle/agent-registry-PIS5XJHX.js +19 -0
  23. package/bundle/{bridge-lock-transport-HO545SBK.js → bridge-lock-transport-N6OGDOSE.js} +5 -5
  24. package/bundle/{browse-delivery-VTLEAVYA.js → browse-delivery-DXGMDMXA.js} +8 -7
  25. package/bundle/{browser-REIXOJ6S.js → browser-QMYGSP5W.js} +11 -10
  26. package/bundle/{capability-ILW3D5HS.js → capability-733TLH4W.js} +6 -6
  27. package/bundle/chunk-3IPMKYYH.js +672 -0
  28. package/bundle/chunk-3IPMKYYH.js.map +7 -0
  29. package/bundle/{chunk-PZE3J7ER.js → chunk-3OXQWII3.js} +2 -2
  30. package/bundle/{chunk-X5FBUA53.js → chunk-4WKWPU6U.js} +137 -30
  31. package/bundle/chunk-4WKWPU6U.js.map +7 -0
  32. package/bundle/{chunk-4KJ76TTE.js → chunk-4XW7YA3K.js} +3 -3
  33. package/bundle/{chunk-A5OJYQNU.js → chunk-5WFIAUQC.js} +49 -22
  34. package/bundle/chunk-5WFIAUQC.js.map +7 -0
  35. package/bundle/{chunk-ZVDVNSXK.js → chunk-7WFE2JI5.js} +7 -7
  36. package/bundle/{chunk-R36WIOYX.js → chunk-B52YRWR6.js} +34 -6
  37. package/bundle/chunk-B52YRWR6.js.map +7 -0
  38. package/bundle/{chunk-Q62SXS73.js → chunk-BBDKU4EH.js} +9 -9
  39. package/bundle/chunk-BBTQKKDO.js +258 -0
  40. package/bundle/chunk-BBTQKKDO.js.map +7 -0
  41. package/bundle/{chunk-EX2SRTUE.js → chunk-CYSGXNBY.js} +2 -2
  42. package/bundle/{chunk-LYEAHE5V.js → chunk-DCY7DGMT.js} +2 -2
  43. package/bundle/chunk-DGS7J4P6.js +13 -0
  44. package/bundle/chunk-DGS7J4P6.js.map +7 -0
  45. package/bundle/{chunk-LDKSCXGL.js → chunk-DHPFI7OF.js} +8 -6
  46. package/bundle/{chunk-LDKSCXGL.js.map → chunk-DHPFI7OF.js.map} +1 -1
  47. package/bundle/{chunk-G6IXMYIO.js → chunk-DO4INSXE.js} +2 -2
  48. package/bundle/{chunk-VA5WKN3Z.js → chunk-EGA6JQVV.js} +4 -4
  49. package/bundle/chunk-EKHNWFEQ.js +85 -0
  50. package/bundle/chunk-EKHNWFEQ.js.map +7 -0
  51. package/bundle/{chunk-URAQLQ2U.js → chunk-F3HMZFIL.js} +4 -4
  52. package/bundle/{chunk-OOKLEC6V.js → chunk-FY3QUO2L.js} +7 -7
  53. package/bundle/{chunk-2BY6I4P5.js → chunk-GUTRAMK3.js} +2 -2
  54. package/bundle/chunk-GXKJKYU4.js +1089 -0
  55. package/bundle/chunk-GXKJKYU4.js.map +7 -0
  56. package/bundle/{chunk-GPL57SRN.js → chunk-H7RX7UCR.js} +3 -3
  57. package/bundle/{chunk-BYDUMHXT.js → chunk-HAF2AFBW.js} +2 -2
  58. package/bundle/chunk-HAS5NEK7.js +189 -0
  59. package/bundle/chunk-HAS5NEK7.js.map +7 -0
  60. package/bundle/chunk-HB54S5OY.js +4036 -0
  61. package/bundle/chunk-HB54S5OY.js.map +7 -0
  62. package/bundle/{chunk-OZ4IZFV4.js → chunk-HJQZP5CK.js} +9 -9
  63. package/bundle/{chunk-OZ4IZFV4.js.map → chunk-HJQZP5CK.js.map} +2 -2
  64. package/bundle/{chunk-HEHD3GG5.js → chunk-ITB2K6LI.js} +6 -13
  65. package/bundle/{chunk-HEHD3GG5.js.map → chunk-ITB2K6LI.js.map} +3 -3
  66. package/bundle/{chunk-KSEIWT4T.js → chunk-JFKOPNKL.js} +10 -10
  67. package/bundle/chunk-JFKOPNKL.js.map +7 -0
  68. package/bundle/{chunk-KFENC7BM.js → chunk-L33WNMCP.js} +2 -2
  69. package/bundle/{chunk-JRG4EFMP.js → chunk-LBMETTUP.js} +3 -3
  70. package/bundle/{chunk-TYVI3ZWA.js → chunk-LJAG2URA.js} +10 -7
  71. package/bundle/chunk-LJAG2URA.js.map +7 -0
  72. package/bundle/{chunk-KWBGYWDO.js → chunk-N24ROESF.js} +15 -17
  73. package/bundle/chunk-N24ROESF.js.map +7 -0
  74. package/bundle/{chunk-P2BZSLJJ.js → chunk-N7UG4FID.js} +448 -129
  75. package/bundle/chunk-N7UG4FID.js.map +7 -0
  76. package/bundle/chunk-NIYVCGBC.js +330 -0
  77. package/bundle/chunk-NIYVCGBC.js.map +7 -0
  78. package/bundle/{chunk-TOUZC6NR.js → chunk-OKMN6J4Z.js} +3 -3
  79. package/bundle/{chunk-RV54J75Q.js → chunk-PKHYCNTT.js} +13 -12
  80. package/bundle/chunk-PKHYCNTT.js.map +7 -0
  81. package/bundle/{chunk-XZSYMCLF.js → chunk-PUDGA4RR.js} +7 -7
  82. package/bundle/{chunk-CELR236Q.js → chunk-Q7CH5DA3.js} +2 -2
  83. package/bundle/chunk-QSC6QZ44.js +183 -0
  84. package/bundle/chunk-QSC6QZ44.js.map +7 -0
  85. package/bundle/chunk-RITEGAW6.js +138 -0
  86. package/bundle/chunk-RITEGAW6.js.map +7 -0
  87. package/bundle/{chunk-UDZIZB5F.js → chunk-RTL7HO3N.js} +3 -3
  88. package/bundle/{chunk-ITG6XGBS.js → chunk-SA44ITVX.js} +10 -10
  89. package/bundle/{chunk-3MO2MDXJ.js → chunk-SA6YEFNG.js} +3 -3
  90. package/bundle/{chunk-4BUOO6WI.js → chunk-SMZQDMSZ.js} +31 -11
  91. package/bundle/chunk-SMZQDMSZ.js.map +7 -0
  92. package/bundle/{chunk-GBBTK6H2.js → chunk-SRFEIZQT.js} +4 -4
  93. package/bundle/{chunk-ELRAH7VL.js → chunk-VXUVKC66.js} +3 -3
  94. package/bundle/chunk-VY2BUO6L.js +4035 -0
  95. package/bundle/chunk-VY2BUO6L.js.map +7 -0
  96. package/bundle/chunk-W6ELWLAR.js +143 -0
  97. package/bundle/chunk-W6ELWLAR.js.map +7 -0
  98. package/bundle/{chunk-RSWUPUNA.js → chunk-WMWI3SJ7.js} +30 -6
  99. package/bundle/chunk-WMWI3SJ7.js.map +7 -0
  100. package/bundle/{chunk-MJ6PHMOK.js → chunk-WW5F2DCO.js} +11 -2
  101. package/bundle/chunk-WW5F2DCO.js.map +7 -0
  102. package/bundle/chunk-Y2XBDQP3.js +4055 -0
  103. package/bundle/chunk-Y2XBDQP3.js.map +7 -0
  104. package/bundle/chunk-YMGX6HNP.js +131 -0
  105. package/bundle/chunk-YMGX6HNP.js.map +7 -0
  106. package/bundle/chunk-YWZPKBO6.js +22 -0
  107. package/bundle/chunk-YWZPKBO6.js.map +7 -0
  108. package/bundle/chunk-ZAA7B5BN.js +22 -0
  109. package/bundle/chunk-ZAA7B5BN.js.map +7 -0
  110. package/bundle/{commands-WUGPBPHI.js → commands-IGRSOSK6.js} +15 -14
  111. package/bundle/commands-LAWVNQTO.js +34 -0
  112. package/bundle/commands-RBWY7YXB.js +34 -0
  113. package/bundle/commands-XFZNMZN6.js +34 -0
  114. package/bundle/{config-DQIGDX4W.js → config-NDEYF4AQ.js} +7 -7
  115. package/bundle/{daemon-NPKYZ3CJ.js → daemon-WOQXCKNL.js} +4 -4
  116. package/bundle/{delegation-tools-6FICZQ5G.js → delegation-tools-Z5OM3TXS.js} +5 -5
  117. package/bundle/{deploy-lib-import-SBKXDD3F.js → deploy-lib-import-6VJTYXEG.js} +2 -2
  118. package/bundle/{deps-HN6CEXA4.js → deps-65V7XXG4.js} +4 -4
  119. package/bundle/{direct-api-transport-TRV45NO6.js → direct-api-transport-OZICXTWQ.js} +43 -15
  120. package/bundle/direct-api-transport-OZICXTWQ.js.map +7 -0
  121. package/bundle/direct-api-transport-QIWA5ES2.js +889 -0
  122. package/bundle/direct-api-transport-QIWA5ES2.js.map +7 -0
  123. package/bundle/{discord-adapter-WA2MFRK3.js → discord-adapter-JFIIVG34.js} +27 -24
  124. package/bundle/discord-adapter-JFIIVG34.js.map +7 -0
  125. package/bundle/discord-adapter-U3FA5OTY.js +589 -0
  126. package/bundle/discord-adapter-U3FA5OTY.js.map +7 -0
  127. package/bundle/discord-adapter-W6L5KJ6T.js +589 -0
  128. package/bundle/discord-adapter-W6L5KJ6T.js.map +7 -0
  129. package/bundle/discord-adapter-WWM6ROTW.js +589 -0
  130. package/bundle/discord-adapter-WWM6ROTW.js.map +7 -0
  131. package/bundle/{dns-wakeup-RYOCQ6GR.js → dns-wakeup-N46RPU5E.js} +3 -3
  132. package/bundle/{doctor-R54GZPKL.js → doctor-PIPSGI3H.js} +18 -7
  133. package/bundle/{doctor-R54GZPKL.js.map → doctor-PIPSGI3H.js.map} +2 -2
  134. package/bundle/{ensure-invariants-BJIEOSJ2.js → ensure-invariants-3NOBCYWS.js} +4 -4
  135. package/bundle/{env-schema-XCPAJ6IZ.js → env-schema-T43X43BU.js} +4 -4
  136. package/bundle/{hook-system-POI5VRIX.js → hook-system-ZCVOFFRD.js} +4 -4
  137. package/bundle/hotskills-DTROJY6G.js +17 -0
  138. package/bundle/{install-SH4UVUXQ.js → install-I3CXVW52.js} +3 -3
  139. package/bundle/{install-manifest-QRWID3KZ.js → install-manifest-KBYD7SAY.js} +3 -3
  140. package/bundle/{irc-adapter-AIEP6OX6.js → irc-adapter-HXO5D4SW.js} +3 -3
  141. package/bundle/{irc-config-6VY67UPQ.js → irc-config-XN5VW2V4.js} +5 -5
  142. package/bundle/kanban-board-6Q5E5GEB.js +31 -0
  143. package/bundle/kanban-board-I52RHNHQ.js +31 -0
  144. package/bundle/{lazy-require-UFYFFX2R.js → lazy-require-R3JYCV5M.js} +4 -4
  145. package/bundle/{media-utils-MOE36VWY.js → media-utils-W7XW3SVV.js} +4 -4
  146. package/bundle/{message-pipeline-2MBT44FO.js → message-pipeline-4CTBJ6K2.js} +17 -14
  147. package/bundle/message-pipeline-4KL7OWUH.js +38 -0
  148. package/bundle/message-pipeline-GFKSHRFU.js +38 -0
  149. package/bundle/message-pipeline-TGI2WJJM.js +38 -0
  150. package/bundle/meta.json +3181 -2356
  151. package/bundle/{notification-U6F5ZBSG.js → notification-ULESRDHB.js} +7 -6
  152. package/bundle/{openrouter-credits-7XXO6QGQ.js → openrouter-credits-PLIKRY5D.js} +4 -4
  153. package/bundle/{paths-ZJYIDND2.js → paths-QQM74XYT.js} +4 -2
  154. package/bundle/{peer-client-T44VI7NB.js → peer-client-D2F5QWRV.js} +8 -8
  155. package/bundle/{peer-config-D5A4454H.js → peer-config-5SUIBJLG.js} +5 -5
  156. package/bundle/{phase-transport-FEZ4SIJJ.js → phase-transport-INFD6ELA.js} +10 -10
  157. package/bundle/phase-transport-KXFZ5BVF.js +23 -0
  158. package/bundle/{restore-MFSW3EBL.js → restore-Z6MF54HS.js} +4 -4
  159. package/bundle/{restore-MFSW3EBL.js.map → restore-Z6MF54HS.js.map} +2 -2
  160. package/bundle/{update-check-O5MS6B3L.js → rollback-5RXXLUD6.js} +5 -7
  161. package/bundle/{self-healer-utils-7NFH22VJ.js → self-healer-utils-WPKOVXJD.js} +4 -4
  162. package/bundle/{skill-stats-IPVKMWN3.js → skill-stats-NHNH47QW.js} +5 -5
  163. package/bundle/{sleep-BPWX3FCN.js → sleep-ENFZFUJJ.js} +8 -8
  164. package/bundle/sleep-ENFZFUJJ.js.map +7 -0
  165. package/bundle/{soul-bundle-BRIUDEQ2.js → soul-bundle-QTPWDJB2.js} +7 -7
  166. package/bundle/soul-bundle-QTPWDJB2.js.map +7 -0
  167. package/bundle/{soul-loader-GBXJ7EBH.js → soul-loader-LCPTN4PK.js} +8 -8
  168. package/bundle/soul-loader-LCPTN4PK.js.map +7 -0
  169. package/bundle/{sse-parser-anthropic-H42TTLBD.js → sse-parser-anthropic-PYDJM3UC.js} +4 -4
  170. package/bundle/{sse-parser-responses-WG2LY2ML.js → sse-parser-responses-FYT7A5WT.js} +4 -4
  171. package/bundle/{ssrf-guard-E2KBBC5E.js → ssrf-guard-R4P5OCTO.js} +4 -4
  172. package/bundle/{start-CBVKNEAT.js → start-4DNURGIY.js} +1 -1
  173. package/bundle/{stt-CF3CPFDC.js → stt-YN77NND6.js} +5 -5
  174. package/bundle/stt-YN77NND6.js.map +7 -0
  175. package/bundle/{subagent-runtime-4MTYUBIZ.js → subagent-runtime-5AYOXOU2.js} +5 -5
  176. package/bundle/subagent-runtime-5AYOXOU2.js.map +7 -0
  177. package/bundle/subagent-runtime-VKTX6Q2M.js +13 -0
  178. package/bundle/subagent-runtime-VKTX6Q2M.js.map +7 -0
  179. package/bundle/system-event-buffer-OEPPNUGK.js +17 -0
  180. package/bundle/system-event-buffer-OEPPNUGK.js.map +7 -0
  181. package/bundle/{system-message-TALP6GP2.js → system-message-BRU267FW.js} +3 -3
  182. package/bundle/{system-status-GLYXXDE3.js → system-status-7K2QTH3J.js} +58 -51
  183. package/bundle/system-status-7K2QTH3J.js.map +7 -0
  184. package/bundle/{hotskills-6ECHLXTJ.js → task-failure-buffer-DPM5MWZ5.js} +8 -7
  185. package/bundle/task-failure-buffer-DPM5MWZ5.js.map +7 -0
  186. package/bundle/{task-store-LC7ZMS72.js → task-store-VCBHAB43.js} +5 -5
  187. package/bundle/task-store-VCBHAB43.js.map +7 -0
  188. package/bundle/{telegram-adapter-BJJYXN7J.js → telegram-adapter-4KI4CJPG.js} +51 -33
  189. package/bundle/telegram-adapter-4KI4CJPG.js.map +7 -0
  190. package/bundle/telegram-adapter-76B4JRJJ.js +1080 -0
  191. package/bundle/telegram-adapter-76B4JRJJ.js.map +7 -0
  192. package/bundle/telegram-adapter-VZA74EMT.js +1080 -0
  193. package/bundle/telegram-adapter-VZA74EMT.js.map +7 -0
  194. package/bundle/telegram-adapter-ZO2CLU22.js +1080 -0
  195. package/bundle/telegram-adapter-ZO2CLU22.js.map +7 -0
  196. package/bundle/{tool-registry-T7XLTI2Q.js → tool-registry-CG7GIS64.js} +13 -9
  197. package/bundle/tool-registry-CG7GIS64.js.map +7 -0
  198. package/bundle/tool-registry-TGNU5AMG.js +43 -0
  199. package/bundle/tool-registry-TGNU5AMG.js.map +7 -0
  200. package/bundle/{tool-sandbox-OZMXJZLQ.js → tool-sandbox-TLAL55QP.js} +5 -5
  201. package/bundle/tool-sandbox-TLAL55QP.js.map +7 -0
  202. package/bundle/{transport-config-G5NKQXPJ.js → transport-config-JIKHB7GT.js} +8 -8
  203. package/bundle/transport-config-JIKHB7GT.js.map +7 -0
  204. package/bundle/update-check-AJMIBQGQ.js +81 -0
  205. package/bundle/update-check-AJMIBQGQ.js.map +7 -0
  206. package/bundle/{user-registry-NUVNEHJU.js → user-registry-PEFDZ5AV.js} +5 -5
  207. package/bundle/user-registry-PEFDZ5AV.js.map +7 -0
  208. package/core/skills/tools/gmail/SKILL.md +5 -14
  209. package/core/skills/tools/rss/SKILL.md +51 -0
  210. package/install-manifest.json +8 -2
  211. package/package.json +4 -2
  212. package/scripts/abtars-daemon.service +3 -0
  213. package/scripts/abtars@.service +3 -0
  214. package/scripts/build-and-deploy.sh +68 -0
  215. package/scripts/doctor.sh +38 -0
  216. package/scripts/emergency-deploy.sh +95 -0
  217. package/scripts/watchdog.sh +51 -5
  218. package/bundle/chunk-4BUOO6WI.js.map +0 -7
  219. package/bundle/chunk-A5OJYQNU.js.map +0 -7
  220. package/bundle/chunk-JX3ZZU3O.js +0 -82
  221. package/bundle/chunk-JX3ZZU3O.js.map +0 -7
  222. package/bundle/chunk-KJOCXWJ5.js +0 -131
  223. package/bundle/chunk-KJOCXWJ5.js.map +0 -7
  224. package/bundle/chunk-KSEIWT4T.js.map +0 -7
  225. package/bundle/chunk-KWBGYWDO.js.map +0 -7
  226. package/bundle/chunk-MJ6PHMOK.js.map +0 -7
  227. package/bundle/chunk-P2BZSLJJ.js.map +0 -7
  228. package/bundle/chunk-R36WIOYX.js.map +0 -7
  229. package/bundle/chunk-RE3F3CFW.js +0 -300
  230. package/bundle/chunk-RE3F3CFW.js.map +0 -7
  231. package/bundle/chunk-RSWUPUNA.js.map +0 -7
  232. package/bundle/chunk-RV54J75Q.js.map +0 -7
  233. package/bundle/chunk-TYVI3ZWA.js.map +0 -7
  234. package/bundle/chunk-X5FBUA53.js.map +0 -7
  235. package/bundle/direct-api-transport-TRV45NO6.js.map +0 -7
  236. package/bundle/discord-adapter-WA2MFRK3.js.map +0 -7
  237. package/bundle/system-status-GLYXXDE3.js.map +0 -7
  238. package/bundle/telegram-adapter-BJJYXN7J.js.map +0 -7
  239. /package/bundle/{agent-api-rate-limit-C25WGSFF.js.map → agent-api-rate-limit-R2OFAQ3N.js.map} +0 -0
  240. /package/bundle/{agent-registry-SYUFNSVB.js.map → agent-registry-5VL5KI6U.js.map} +0 -0
  241. /package/bundle/{bridge-lock-transport-HO545SBK.js.map → agent-registry-PIS5XJHX.js.map} +0 -0
  242. /package/bundle/{browse-delivery-VTLEAVYA.js.map → bridge-lock-transport-N6OGDOSE.js.map} +0 -0
  243. /package/bundle/{browser-REIXOJ6S.js.map → browse-delivery-DXGMDMXA.js.map} +0 -0
  244. /package/bundle/{capability-ILW3D5HS.js.map → browser-QMYGSP5W.js.map} +0 -0
  245. /package/bundle/{commands-WUGPBPHI.js.map → capability-733TLH4W.js.map} +0 -0
  246. /package/bundle/{chunk-PZE3J7ER.js.map → chunk-3OXQWII3.js.map} +0 -0
  247. /package/bundle/{chunk-4KJ76TTE.js.map → chunk-4XW7YA3K.js.map} +0 -0
  248. /package/bundle/{chunk-ZVDVNSXK.js.map → chunk-7WFE2JI5.js.map} +0 -0
  249. /package/bundle/{chunk-Q62SXS73.js.map → chunk-BBDKU4EH.js.map} +0 -0
  250. /package/bundle/{chunk-EX2SRTUE.js.map → chunk-CYSGXNBY.js.map} +0 -0
  251. /package/bundle/{chunk-LYEAHE5V.js.map → chunk-DCY7DGMT.js.map} +0 -0
  252. /package/bundle/{chunk-G6IXMYIO.js.map → chunk-DO4INSXE.js.map} +0 -0
  253. /package/bundle/{chunk-VA5WKN3Z.js.map → chunk-EGA6JQVV.js.map} +0 -0
  254. /package/bundle/{chunk-URAQLQ2U.js.map → chunk-F3HMZFIL.js.map} +0 -0
  255. /package/bundle/{chunk-OOKLEC6V.js.map → chunk-FY3QUO2L.js.map} +0 -0
  256. /package/bundle/{chunk-2BY6I4P5.js.map → chunk-GUTRAMK3.js.map} +0 -0
  257. /package/bundle/{chunk-GPL57SRN.js.map → chunk-H7RX7UCR.js.map} +0 -0
  258. /package/bundle/{chunk-BYDUMHXT.js.map → chunk-HAF2AFBW.js.map} +0 -0
  259. /package/bundle/{chunk-KFENC7BM.js.map → chunk-L33WNMCP.js.map} +0 -0
  260. /package/bundle/{chunk-JRG4EFMP.js.map → chunk-LBMETTUP.js.map} +0 -0
  261. /package/bundle/{chunk-TOUZC6NR.js.map → chunk-OKMN6J4Z.js.map} +0 -0
  262. /package/bundle/{chunk-XZSYMCLF.js.map → chunk-PUDGA4RR.js.map} +0 -0
  263. /package/bundle/{chunk-CELR236Q.js.map → chunk-Q7CH5DA3.js.map} +0 -0
  264. /package/bundle/{chunk-UDZIZB5F.js.map → chunk-RTL7HO3N.js.map} +0 -0
  265. /package/bundle/{chunk-ITG6XGBS.js.map → chunk-SA44ITVX.js.map} +0 -0
  266. /package/bundle/{chunk-3MO2MDXJ.js.map → chunk-SA6YEFNG.js.map} +0 -0
  267. /package/bundle/{chunk-GBBTK6H2.js.map → chunk-SRFEIZQT.js.map} +0 -0
  268. /package/bundle/{chunk-ELRAH7VL.js.map → chunk-VXUVKC66.js.map} +0 -0
  269. /package/bundle/{config-DQIGDX4W.js.map → commands-IGRSOSK6.js.map} +0 -0
  270. /package/bundle/{delegation-tools-6FICZQ5G.js.map → commands-LAWVNQTO.js.map} +0 -0
  271. /package/bundle/{deploy-lib-import-SBKXDD3F.js.map → commands-RBWY7YXB.js.map} +0 -0
  272. /package/bundle/{env-schema-XCPAJ6IZ.js.map → commands-XFZNMZN6.js.map} +0 -0
  273. /package/bundle/{hook-system-POI5VRIX.js.map → config-NDEYF4AQ.js.map} +0 -0
  274. /package/bundle/{daemon-NPKYZ3CJ.js.map → daemon-WOQXCKNL.js.map} +0 -0
  275. /package/bundle/{hotskills-6ECHLXTJ.js.map → delegation-tools-Z5OM3TXS.js.map} +0 -0
  276. /package/bundle/{install-SH4UVUXQ.js.map → deploy-lib-import-6VJTYXEG.js.map} +0 -0
  277. /package/bundle/{deps-HN6CEXA4.js.map → deps-65V7XXG4.js.map} +0 -0
  278. /package/bundle/{dns-wakeup-RYOCQ6GR.js.map → dns-wakeup-N46RPU5E.js.map} +0 -0
  279. /package/bundle/{ensure-invariants-BJIEOSJ2.js.map → ensure-invariants-3NOBCYWS.js.map} +0 -0
  280. /package/bundle/{lazy-require-UFYFFX2R.js.map → env-schema-T43X43BU.js.map} +0 -0
  281. /package/bundle/{message-pipeline-2MBT44FO.js.map → hook-system-ZCVOFFRD.js.map} +0 -0
  282. /package/bundle/{notification-U6F5ZBSG.js.map → hotskills-DTROJY6G.js.map} +0 -0
  283. /package/bundle/{paths-ZJYIDND2.js.map → install-I3CXVW52.js.map} +0 -0
  284. /package/bundle/{install-manifest-QRWID3KZ.js.map → install-manifest-KBYD7SAY.js.map} +0 -0
  285. /package/bundle/{irc-adapter-AIEP6OX6.js.map → irc-adapter-HXO5D4SW.js.map} +0 -0
  286. /package/bundle/{irc-config-6VY67UPQ.js.map → irc-config-XN5VW2V4.js.map} +0 -0
  287. /package/bundle/{peer-config-D5A4454H.js.map → kanban-board-6Q5E5GEB.js.map} +0 -0
  288. /package/bundle/{phase-transport-FEZ4SIJJ.js.map → kanban-board-I52RHNHQ.js.map} +0 -0
  289. /package/bundle/{skill-stats-IPVKMWN3.js.map → lazy-require-R3JYCV5M.js.map} +0 -0
  290. /package/bundle/{media-utils-MOE36VWY.js.map → media-utils-W7XW3SVV.js.map} +0 -0
  291. /package/bundle/{sleep-BPWX3FCN.js.map → message-pipeline-4CTBJ6K2.js.map} +0 -0
  292. /package/bundle/{soul-bundle-BRIUDEQ2.js.map → message-pipeline-4KL7OWUH.js.map} +0 -0
  293. /package/bundle/{soul-loader-GBXJ7EBH.js.map → message-pipeline-GFKSHRFU.js.map} +0 -0
  294. /package/bundle/{stt-CF3CPFDC.js.map → message-pipeline-TGI2WJJM.js.map} +0 -0
  295. /package/bundle/{subagent-runtime-4MTYUBIZ.js.map → notification-ULESRDHB.js.map} +0 -0
  296. /package/bundle/{openrouter-credits-7XXO6QGQ.js.map → openrouter-credits-PLIKRY5D.js.map} +0 -0
  297. /package/bundle/{task-store-LC7ZMS72.js.map → paths-QQM74XYT.js.map} +0 -0
  298. /package/bundle/{peer-client-T44VI7NB.js.map → peer-client-D2F5QWRV.js.map} +0 -0
  299. /package/bundle/{tool-registry-T7XLTI2Q.js.map → peer-config-5SUIBJLG.js.map} +0 -0
  300. /package/bundle/{tool-sandbox-OZMXJZLQ.js.map → phase-transport-INFD6ELA.js.map} +0 -0
  301. /package/bundle/{transport-config-G5NKQXPJ.js.map → phase-transport-KXFZ5BVF.js.map} +0 -0
  302. /package/bundle/{update-check-O5MS6B3L.js.map → rollback-5RXXLUD6.js.map} +0 -0
  303. /package/bundle/{self-healer-utils-7NFH22VJ.js.map → self-healer-utils-WPKOVXJD.js.map} +0 -0
  304. /package/bundle/{user-registry-NUVNEHJU.js.map → skill-stats-NHNH47QW.js.map} +0 -0
  305. /package/bundle/{sse-parser-anthropic-H42TTLBD.js.map → sse-parser-anthropic-PYDJM3UC.js.map} +0 -0
  306. /package/bundle/{sse-parser-responses-WG2LY2ML.js.map → sse-parser-responses-FYT7A5WT.js.map} +0 -0
  307. /package/bundle/{ssrf-guard-E2KBBC5E.js.map → ssrf-guard-R4P5OCTO.js.map} +0 -0
  308. /package/bundle/{start-CBVKNEAT.js.map → start-4DNURGIY.js.map} +0 -0
  309. /package/bundle/{system-message-TALP6GP2.js.map → system-message-BRU267FW.js.map} +0 -0
@@ -2,13 +2,14 @@
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-TYVI3ZWA.js";
6
- import "./chunk-EX2SRTUE.js";
7
- import "./chunk-PZE3J7ER.js";
8
- import "./chunk-2BY6I4P5.js";
9
- import "./chunk-MJ6PHMOK.js";
5
+ } from "./chunk-LJAG2URA.js";
6
+ import "./chunk-YWZPKBO6.js";
7
+ import "./chunk-3OXQWII3.js";
8
+ import "./chunk-CYSGXNBY.js";
9
+ import "./chunk-GUTRAMK3.js";
10
+ import "./chunk-WW5F2DCO.js";
10
11
  import "./chunk-7K2YZTLD.js";
11
12
  export {
12
13
  sendNotification
13
14
  };
14
- //# sourceMappingURL=notification-U6F5ZBSG.js.map
15
+ //# sourceMappingURL=notification-ULESRDHB.js.map
@@ -3,9 +3,9 @@
3
3
  import {
4
4
  getEnv,
5
5
  init_env_schema
6
- } from "./chunk-PZE3J7ER.js";
7
- import "./chunk-2BY6I4P5.js";
8
- import "./chunk-MJ6PHMOK.js";
6
+ } from "./chunk-3OXQWII3.js";
7
+ import "./chunk-GUTRAMK3.js";
8
+ import "./chunk-WW5F2DCO.js";
9
9
  import "./chunk-7K2YZTLD.js";
10
10
 
11
11
  // src/components/openrouter-credits.ts
@@ -30,4 +30,4 @@ async function fetchOpenRouterCredits() {
30
30
  export {
31
31
  fetchOpenRouterCredits
32
32
  };
33
- //# sourceMappingURL=openrouter-credits-7XXO6QGQ.js.map
33
+ //# sourceMappingURL=openrouter-credits-PLIKRY5D.js.map
@@ -3,16 +3,18 @@
3
3
  import {
4
4
  abtarsHome,
5
5
  ensureDir,
6
+ getDeployedVersion,
6
7
  init_paths,
7
8
  reportsDir,
8
9
  setLazyRoots
9
- } from "./chunk-MJ6PHMOK.js";
10
+ } from "./chunk-WW5F2DCO.js";
10
11
  import "./chunk-7K2YZTLD.js";
11
12
  init_paths();
12
13
  export {
13
14
  abtarsHome,
14
15
  ensureDir,
16
+ getDeployedVersion,
15
17
  reportsDir,
16
18
  setLazyRoots
17
19
  };
18
- //# sourceMappingURL=paths-ZJYIDND2.js.map
20
+ //# sourceMappingURL=paths-QQM74XYT.js.map
@@ -3,18 +3,18 @@
3
3
  import {
4
4
  init_peer_jwt,
5
5
  peer_jwt_exports
6
- } from "./chunk-CELR236Q.js";
6
+ } from "./chunk-Q7CH5DA3.js";
7
7
  import {
8
8
  init_peer_config,
9
9
  loadPeerConfig
10
- } from "./chunk-VA5WKN3Z.js";
11
- import "./chunk-LYEAHE5V.js";
12
- import "./chunk-EX2SRTUE.js";
10
+ } from "./chunk-EGA6JQVV.js";
11
+ import "./chunk-DCY7DGMT.js";
12
+ import "./chunk-CYSGXNBY.js";
13
13
  import {
14
14
  init_logger,
15
15
  logInfo
16
- } from "./chunk-2BY6I4P5.js";
17
- import "./chunk-MJ6PHMOK.js";
16
+ } from "./chunk-GUTRAMK3.js";
17
+ import "./chunk-WW5F2DCO.js";
18
18
  import {
19
19
  __require,
20
20
  __toCommonJS
@@ -62,7 +62,7 @@ async function callPeer(peerName, prompt, hops, opts) {
62
62
  if (err instanceof PeerCallError && (err.code === "unreachable" || err.code === "timeout") && peer.udpPort && !opts?.skipWakeup) {
63
63
  logInfo(TAG, `Direct call failed (${err.code}) \u2014 UDP callback request \u2192 ${peerKey}`);
64
64
  const { registerPending, rejectPending } = await import("./pending-callback-6KLBSHLX.js");
65
- const { sendWakeup } = await import("./dns-wakeup-RYOCQ6GR.js");
65
+ const { sendWakeup } = await import("./dns-wakeup-N46RPU5E.js");
66
66
  const resultPromise = registerPending(peerKey, signedPrompt);
67
67
  sendWakeup(peerKey, peer.host, peer.udpPort, peer.token);
68
68
  const timeout = setTimeout(() => rejectPending(peerKey, "callback timeout (60s)"), 6e4);
@@ -154,4 +154,4 @@ export {
154
154
  getCurrentPeerHops,
155
155
  setCurrentPeerHops
156
156
  };
157
- //# sourceMappingURL=peer-client-T44VI7NB.js.map
157
+ //# sourceMappingURL=peer-client-D2F5QWRV.js.map
@@ -4,14 +4,14 @@ import {
4
4
  clearPeerConfigCache,
5
5
  init_peer_config,
6
6
  loadPeerConfig
7
- } from "./chunk-VA5WKN3Z.js";
8
- import "./chunk-LYEAHE5V.js";
9
- import "./chunk-2BY6I4P5.js";
10
- import "./chunk-MJ6PHMOK.js";
7
+ } from "./chunk-EGA6JQVV.js";
8
+ import "./chunk-DCY7DGMT.js";
9
+ import "./chunk-GUTRAMK3.js";
10
+ import "./chunk-WW5F2DCO.js";
11
11
  import "./chunk-7K2YZTLD.js";
12
12
  init_peer_config();
13
13
  export {
14
14
  clearPeerConfigCache,
15
15
  loadPeerConfig
16
16
  };
17
- //# sourceMappingURL=peer-config-D5A4454H.js.map
17
+ //# sourceMappingURL=peer-config-5SUIBJLG.js.map
@@ -4,20 +4,20 @@ import {
4
4
  buildTransport,
5
5
  phaseTransport,
6
6
  rebuildTransport
7
- } from "./chunk-A5OJYQNU.js";
8
- import "./chunk-ZVDVNSXK.js";
9
- import "./chunk-RV54J75Q.js";
10
- import "./chunk-GBBTK6H2.js";
11
- import "./chunk-UDZIZB5F.js";
7
+ } from "./chunk-5WFIAUQC.js";
8
+ import "./chunk-HAS5NEK7.js";
9
+ import "./chunk-PKHYCNTT.js";
10
+ import "./chunk-RTL7HO3N.js";
11
+ import "./chunk-SRFEIZQT.js";
12
12
  import "./chunk-MZWMYN4O.js";
13
- import "./chunk-EX2SRTUE.js";
14
- import "./chunk-PZE3J7ER.js";
15
- import "./chunk-2BY6I4P5.js";
16
- import "./chunk-MJ6PHMOK.js";
13
+ import "./chunk-3OXQWII3.js";
14
+ import "./chunk-CYSGXNBY.js";
15
+ import "./chunk-GUTRAMK3.js";
16
+ import "./chunk-WW5F2DCO.js";
17
17
  import "./chunk-7K2YZTLD.js";
18
18
  export {
19
19
  buildTransport,
20
20
  phaseTransport,
21
21
  rebuildTransport
22
22
  };
23
- //# sourceMappingURL=phase-transport-FEZ4SIJJ.js.map
23
+ //# sourceMappingURL=phase-transport-INFD6ELA.js.map
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire as __bundleCreateRequire } from 'node:module'; import { fileURLToPath as __bundleFileURLToPath } from 'node:url'; import { dirname as __bundleDirname } from 'node:path'; const require = __bundleCreateRequire(import.meta.url); const __chunk_filename = __bundleFileURLToPath(import.meta.url); const __chunk_dirname = __bundleDirname(__chunk_filename);
3
+ import {
4
+ buildTransport,
5
+ phaseTransport,
6
+ rebuildTransport
7
+ } from "./chunk-3IPMKYYH.js";
8
+ import "./chunk-7WFE2JI5.js";
9
+ import "./chunk-PKHYCNTT.js";
10
+ import "./chunk-RTL7HO3N.js";
11
+ import "./chunk-SRFEIZQT.js";
12
+ import "./chunk-MZWMYN4O.js";
13
+ import "./chunk-3OXQWII3.js";
14
+ import "./chunk-CYSGXNBY.js";
15
+ import "./chunk-GUTRAMK3.js";
16
+ import "./chunk-WW5F2DCO.js";
17
+ import "./chunk-7K2YZTLD.js";
18
+ export {
19
+ buildTransport,
20
+ phaseTransport,
21
+ rebuildTransport
22
+ };
23
+ //# sourceMappingURL=phase-transport-KXFZ5BVF.js.map
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  abtarsHome,
5
5
  init_paths
6
- } from "./chunk-MJ6PHMOK.js";
6
+ } from "./chunk-WW5F2DCO.js";
7
7
  import "./chunk-7K2YZTLD.js";
8
8
 
9
9
  // src/cli/commands/restore.ts
@@ -90,13 +90,13 @@ function extractZip(archivePath, destDir) {
90
90
  if (is7z) {
91
91
  result = spawnSync(
92
92
  "7z",
93
- ["x", `-o${destDir}`, "-aoa", "-xr!releases", "-xr!current", "-xr!bin", archivePath],
93
+ ["x", `-o${destDir}`, "-aoa", "-xr!releases", "-xr!current", "-xr!bin", "-xr!manifest.json", archivePath],
94
94
  { encoding: "utf-8", stdio: "inherit" }
95
95
  );
96
96
  } else {
97
97
  result = spawnSync(
98
98
  "unzip",
99
- ["-o", archivePath, "-d", destDir, "-x", "releases/*", "current/*", "bin/*"],
99
+ ["-o", archivePath, "-d", destDir, "-x", "releases/*", "current/*", "bin/*", "manifest.json"],
100
100
  { encoding: "utf-8", stdio: "inherit" }
101
101
  );
102
102
  }
@@ -148,4 +148,4 @@ function decryptFile(inputPath, outputPath, keyPath) {
148
148
  export {
149
149
  restore
150
150
  };
151
- //# sourceMappingURL=restore-MFSW3EBL.js.map
151
+ //# sourceMappingURL=restore-Z6MF54HS.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/cli/commands/restore.ts"],
4
- "sourcesContent": ["/**\n * `abtars restore` \u2014 restore from backup archive, auto-detect type.\n *\n * .abm \u2192 delegate to abmind restore\n * .zip/.7z \u2192 extract to ~/.abtars/ + find sibling .abm \u2192 restore both\n * .enc \u2192 find sibling .abm first (restore \u2192 key exists) \u2192 decrypt \u2192 extract\n * --config \u2192 zip only, skip abmind\n * --passphrase \u2192 passed through to abmind restore\n */\n\nimport { existsSync, readdirSync, readFileSync, unlinkSync, writeFileSync } from \"node:fs\";\nimport { join, dirname, basename } from \"node:path\";\nimport { spawnSync } from \"node:child_process\";\nimport { createDecipheriv, hkdfSync } from \"node:crypto\";\nimport { abtarsHome } from \"../../paths.js\";\n\nexport interface RestoreOpts {\n config?: boolean;\n passphrase?: string;\n}\n\nexport async function restore(archivePath: string, opts: RestoreOpts = {}): Promise<number> {\n if (!archivePath) {\n process.stderr.write(\"Usage: abtars restore <file.zip|.7z|.abm|.enc> [--config] [--passphrase <p>]\\n\");\n return 1;\n }\n if (!existsSync(archivePath)) {\n process.stderr.write(`File not found: ${archivePath}\\n`);\n return 1;\n }\n\n // Direct .abm \u2192 delegate entirely to abmind restore\n if (archivePath.endsWith(\".abm\")) {\n return restoreAbmind(archivePath, opts.passphrase);\n }\n\n // .enc \u2192 restore sibling .abm first (ensures key exists), then decrypt\n if (archivePath.endsWith(\".enc\")) {\n // Find sibling .abm\n const date = extractDate(archivePath);\n const dir = dirname(archivePath);\n const sibling = findSiblingAbm(dir, date);\n\n if (!opts.config && sibling) {\n const rc = restoreAbmind(sibling, opts.passphrase);\n if (rc !== 0) return rc;\n }\n\n // Decrypt .enc \u2192 temp zip\n const abmindHome = process.env[\"ABMIND_HOME\"] ?? join(dirname(abtarsHome()), \".abmind\");\n const keyPath = join(abmindHome, \"secret\", \"abmind.key\");\n if (!existsSync(keyPath)) {\n process.stderr.write(\"Error: abmind.key not found \u2014 run `abmind restore <file.abm>` first to recreate it, then retry.\\n\");\n return 1;\n }\n\n const tmpZip = join(process.env[\"TMPDIR\"] ?? \"/tmp\", `abtars-restore-${Date.now()}.zip`);\n const ok = decryptFile(archivePath, tmpZip, keyPath);\n if (!ok) return 1;\n process.stdout.write(\"\u2713 decrypted\\n\");\n\n // Extract the decrypted zip\n const rc = extractZip(tmpZip, abtarsHome());\n try { unlinkSync(tmpZip); } catch { /* ignore */ }\n return rc;\n }\n\n // .zip/.7z\n if (!opts.config) {\n // Restore sibling .abm first\n const date = extractDate(archivePath);\n const dir = dirname(archivePath);\n const sibling = findSiblingAbm(dir, date);\n if (sibling) {\n const rc = restoreAbmind(sibling, opts.passphrase);\n if (rc !== 0) return rc;\n } else {\n process.stdout.write(\"\u2139 no sibling .abm found \u2014 memory not restored\\n\");\n }\n }\n\n // Extract zip to ~/.abtars/\n return extractZip(archivePath, abtarsHome());\n}\n\nfunction restoreAbmind(abmPath: string, passphrase?: string): number {\n const args = [\"restore\", \"--input\", abmPath, \"--mode\", \"merge\"];\n if (passphrase) args.push(\"--passphrase\", passphrase);\n\n const envPassphrase = process.env[\"ABMIND_BACKUP_PASSPHRASE\"];\n const env = { ...process.env };\n if (!passphrase && envPassphrase) {\n env[\"ABMIND_BACKUP_PASSPHRASE\"] = envPassphrase;\n }\n\n const result = spawnSync(\"abmind\", args, { encoding: \"utf-8\", stdio: \"inherit\", env });\n if (result.status !== 0) {\n process.stderr.write(\"abmind restore failed\\n\");\n return 1;\n }\n process.stdout.write(\"\u2713 abmind memory restored\\n\");\n return 0;\n}\n\nfunction extractZip(archivePath: string, destDir: string): number {\n const is7z = archivePath.endsWith(\".7z\");\n\n // Sanity check\n const listCmd = is7z\n ? spawnSync(\"7z\", [\"l\", archivePath], { encoding: \"utf-8\" })\n : spawnSync(\"unzip\", [\"-l\", archivePath], { encoding: \"utf-8\" });\n if (!listCmd.stdout?.includes(\"config/\")) {\n process.stderr.write(\"Error: archive does not contain config/ \u2014 not a valid abtars backup\\n\");\n return 1;\n }\n\n // Extract, excluding binary dirs\n let result;\n if (is7z) {\n result = spawnSync(\"7z\", [\"x\", `-o${destDir}`, \"-aoa\", \"-xr!releases\", \"-xr!current\", \"-xr!bin\", archivePath],\n { encoding: \"utf-8\", stdio: \"inherit\" });\n } else {\n result = spawnSync(\"unzip\", [\"-o\", archivePath, \"-d\", destDir, \"-x\", \"releases/*\", \"current/*\", \"bin/*\"],\n { encoding: \"utf-8\", stdio: \"inherit\" });\n }\n\n if (result.status !== 0) {\n process.stderr.write(\"Restore extract failed\\n\");\n return 1;\n }\n\n process.stdout.write(`\u2713 Restored to ${destDir}\\n`);\n return 0;\n}\n\nfunction extractDate(filePath: string): string | null {\n const name = basename(filePath);\n const match = name.match(/(\\d{4}-\\d{2}-\\d{2})/);\n return match?.[1] ?? null;\n}\n\nfunction findSiblingAbm(dir: string, date: string | null): string | null {\n if (!existsSync(dir)) return null;\n const files = readdirSync(dir).filter(f => f.endsWith(\".abm\"));\n if (date) {\n const exact = files.find(f => f.includes(date));\n if (exact) return join(dir, exact);\n }\n // Fallback: latest .abm in the dir\n const sorted = files.sort().reverse();\n return sorted[0] ? join(dir, sorted[0]) : null;\n}\n\nfunction decryptFile(inputPath: string, outputPath: string, keyPath: string): boolean {\n const master = Buffer.from(readFileSync(keyPath, \"utf-8\").trim(), \"hex\");\n const key = Buffer.from(hkdfSync(\"sha256\", master, \"\", \"abtars-backup-v1\", 32));\n\n const buf = readFileSync(inputPath);\n if (buf.length < 28) { // 12 iv + 16 tag minimum\n process.stderr.write(\"Error: encrypted file too small\\n\");\n return false;\n }\n\n const iv = buf.subarray(0, 12);\n const tag = buf.subarray(buf.length - 16);\n const ciphertext = buf.subarray(12, buf.length - 16);\n\n try {\n const decipher = createDecipheriv(\"aes-256-gcm\", key, iv);\n decipher.setAuthTag(tag);\n const decrypted = Buffer.concat([decipher.update(ciphertext), decipher.final()]);\n writeFileSync(outputPath, decrypted);\n return true;\n } catch {\n process.stderr.write(\"Error: decryption failed \u2014 wrong key or corrupted file\\n\");\n return false;\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * `abtars restore` \u2014 restore from backup archive, auto-detect type.\n *\n * .abm \u2192 delegate to abmind restore\n * .zip/.7z \u2192 extract to ~/.abtars/ + find sibling .abm \u2192 restore both\n * .enc \u2192 find sibling .abm first (restore \u2192 key exists) \u2192 decrypt \u2192 extract\n * --config \u2192 zip only, skip abmind\n * --passphrase \u2192 passed through to abmind restore\n */\n\nimport { existsSync, readdirSync, readFileSync, unlinkSync, writeFileSync } from \"node:fs\";\nimport { join, dirname, basename } from \"node:path\";\nimport { spawnSync } from \"node:child_process\";\nimport { createDecipheriv, hkdfSync } from \"node:crypto\";\nimport { abtarsHome } from \"../../paths.js\";\n\nexport interface RestoreOpts {\n config?: boolean;\n passphrase?: string;\n}\n\nexport async function restore(archivePath: string, opts: RestoreOpts = {}): Promise<number> {\n if (!archivePath) {\n process.stderr.write(\"Usage: abtars restore <file.zip|.7z|.abm|.enc> [--config] [--passphrase <p>]\\n\");\n return 1;\n }\n if (!existsSync(archivePath)) {\n process.stderr.write(`File not found: ${archivePath}\\n`);\n return 1;\n }\n\n // Direct .abm \u2192 delegate entirely to abmind restore\n if (archivePath.endsWith(\".abm\")) {\n return restoreAbmind(archivePath, opts.passphrase);\n }\n\n // .enc \u2192 restore sibling .abm first (ensures key exists), then decrypt\n if (archivePath.endsWith(\".enc\")) {\n // Find sibling .abm\n const date = extractDate(archivePath);\n const dir = dirname(archivePath);\n const sibling = findSiblingAbm(dir, date);\n\n if (!opts.config && sibling) {\n const rc = restoreAbmind(sibling, opts.passphrase);\n if (rc !== 0) return rc;\n }\n\n // Decrypt .enc \u2192 temp zip\n const abmindHome = process.env[\"ABMIND_HOME\"] ?? join(dirname(abtarsHome()), \".abmind\");\n const keyPath = join(abmindHome, \"secret\", \"abmind.key\");\n if (!existsSync(keyPath)) {\n process.stderr.write(\"Error: abmind.key not found \u2014 run `abmind restore <file.abm>` first to recreate it, then retry.\\n\");\n return 1;\n }\n\n const tmpZip = join(process.env[\"TMPDIR\"] ?? \"/tmp\", `abtars-restore-${Date.now()}.zip`);\n const ok = decryptFile(archivePath, tmpZip, keyPath);\n if (!ok) return 1;\n process.stdout.write(\"\u2713 decrypted\\n\");\n\n // Extract the decrypted zip\n const rc = extractZip(tmpZip, abtarsHome());\n try { unlinkSync(tmpZip); } catch { /* ignore */ }\n return rc;\n }\n\n // .zip/.7z\n if (!opts.config) {\n // Restore sibling .abm first\n const date = extractDate(archivePath);\n const dir = dirname(archivePath);\n const sibling = findSiblingAbm(dir, date);\n if (sibling) {\n const rc = restoreAbmind(sibling, opts.passphrase);\n if (rc !== 0) return rc;\n } else {\n process.stdout.write(\"\u2139 no sibling .abm found \u2014 memory not restored\\n\");\n }\n }\n\n // Extract zip to ~/.abtars/\n return extractZip(archivePath, abtarsHome());\n}\n\nfunction restoreAbmind(abmPath: string, passphrase?: string): number {\n const args = [\"restore\", \"--input\", abmPath, \"--mode\", \"merge\"];\n if (passphrase) args.push(\"--passphrase\", passphrase);\n\n const envPassphrase = process.env[\"ABMIND_BACKUP_PASSPHRASE\"];\n const env = { ...process.env };\n if (!passphrase && envPassphrase) {\n env[\"ABMIND_BACKUP_PASSPHRASE\"] = envPassphrase;\n }\n\n const result = spawnSync(\"abmind\", args, { encoding: \"utf-8\", stdio: \"inherit\", env });\n if (result.status !== 0) {\n process.stderr.write(\"abmind restore failed\\n\");\n return 1;\n }\n process.stdout.write(\"\u2713 abmind memory restored\\n\");\n return 0;\n}\n\nfunction extractZip(archivePath: string, destDir: string): number {\n const is7z = archivePath.endsWith(\".7z\");\n\n // Sanity check\n const listCmd = is7z\n ? spawnSync(\"7z\", [\"l\", archivePath], { encoding: \"utf-8\" })\n : spawnSync(\"unzip\", [\"-l\", archivePath], { encoding: \"utf-8\" });\n if (!listCmd.stdout?.includes(\"config/\")) {\n process.stderr.write(\"Error: archive does not contain config/ \u2014 not a valid abtars backup\\n\");\n return 1;\n }\n\n // Extract, excluding binary dirs + manifest (install state, not user data)\n let result;\n if (is7z) {\n result = spawnSync(\"7z\", [\"x\", `-o${destDir}`, \"-aoa\", \"-xr!releases\", \"-xr!current\", \"-xr!bin\", \"-xr!manifest.json\", archivePath],\n { encoding: \"utf-8\", stdio: \"inherit\" });\n } else {\n result = spawnSync(\"unzip\", [\"-o\", archivePath, \"-d\", destDir, \"-x\", \"releases/*\", \"current/*\", \"bin/*\", \"manifest.json\"],\n { encoding: \"utf-8\", stdio: \"inherit\" });\n }\n\n if (result.status !== 0) {\n process.stderr.write(\"Restore extract failed\\n\");\n return 1;\n }\n\n process.stdout.write(`\u2713 Restored to ${destDir}\\n`);\n return 0;\n}\n\nfunction extractDate(filePath: string): string | null {\n const name = basename(filePath);\n const match = name.match(/(\\d{4}-\\d{2}-\\d{2})/);\n return match?.[1] ?? null;\n}\n\nfunction findSiblingAbm(dir: string, date: string | null): string | null {\n if (!existsSync(dir)) return null;\n const files = readdirSync(dir).filter(f => f.endsWith(\".abm\"));\n if (date) {\n const exact = files.find(f => f.includes(date));\n if (exact) return join(dir, exact);\n }\n // Fallback: latest .abm in the dir\n const sorted = files.sort().reverse();\n return sorted[0] ? join(dir, sorted[0]) : null;\n}\n\nfunction decryptFile(inputPath: string, outputPath: string, keyPath: string): boolean {\n const master = Buffer.from(readFileSync(keyPath, \"utf-8\").trim(), \"hex\");\n const key = Buffer.from(hkdfSync(\"sha256\", master, \"\", \"abtars-backup-v1\", 32));\n\n const buf = readFileSync(inputPath);\n if (buf.length < 28) { // 12 iv + 16 tag minimum\n process.stderr.write(\"Error: encrypted file too small\\n\");\n return false;\n }\n\n const iv = buf.subarray(0, 12);\n const tag = buf.subarray(buf.length - 16);\n const ciphertext = buf.subarray(12, buf.length - 16);\n\n try {\n const decipher = createDecipheriv(\"aes-256-gcm\", key, iv);\n decipher.setAuthTag(tag);\n const decrypted = Buffer.concat([decipher.update(ciphertext), decipher.final()]);\n writeFileSync(outputPath, decrypted);\n return true;\n } catch {\n process.stderr.write(\"Error: decryption failed \u2014 wrong key or corrupted file\\n\");\n return false;\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["rc"]
7
7
  }
@@ -1,13 +1,11 @@
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
- checkForUpdate,
5
- init_update_check
6
- } from "./chunk-JX3ZZU3O.js";
7
- import "./chunk-MJ6PHMOK.js";
4
+ rollback
5
+ } from "./chunk-EKHNWFEQ.js";
6
+ import "./chunk-WMWI3SJ7.js";
8
7
  import "./chunk-7K2YZTLD.js";
9
- init_update_check();
10
8
  export {
11
- checkForUpdate
9
+ rollback
12
10
  };
13
- //# sourceMappingURL=update-check-O5MS6B3L.js.map
11
+ //# sourceMappingURL=rollback-5RXXLUD6.js.map
@@ -3,12 +3,12 @@
3
3
  import {
4
4
  init_log_and_swallow,
5
5
  logAndSwallow
6
- } from "./chunk-EX2SRTUE.js";
6
+ } from "./chunk-CYSGXNBY.js";
7
7
  import {
8
8
  init_logger,
9
9
  logInfo
10
- } from "./chunk-2BY6I4P5.js";
11
- import "./chunk-MJ6PHMOK.js";
10
+ } from "./chunk-GUTRAMK3.js";
11
+ import "./chunk-WW5F2DCO.js";
12
12
  import "./chunk-7K2YZTLD.js";
13
13
 
14
14
  // src/components/self-healer-utils.ts
@@ -41,4 +41,4 @@ function healPort(port) {
41
41
  export {
42
42
  healPort
43
43
  };
44
- //# sourceMappingURL=self-healer-utils-7NFH22VJ.js.map
44
+ //# sourceMappingURL=self-healer-utils-WPKOVXJD.js.map
@@ -7,10 +7,10 @@ import {
7
7
  flush,
8
8
  init,
9
9
  setProvenance
10
- } from "./chunk-ELRAH7VL.js";
11
- import "./chunk-EX2SRTUE.js";
12
- import "./chunk-2BY6I4P5.js";
13
- import "./chunk-MJ6PHMOK.js";
10
+ } from "./chunk-VXUVKC66.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
  _getStats,
@@ -20,4 +20,4 @@ export {
20
20
  init,
21
21
  setProvenance
22
22
  };
23
- //# sourceMappingURL=skill-stats-IPVKMWN3.js.map
23
+ //# sourceMappingURL=skill-stats-NHNH47QW.js.map
@@ -3,18 +3,18 @@
3
3
  import {
4
4
  createSleepHandle,
5
5
  register
6
- } from "./chunk-KWBGYWDO.js";
6
+ } from "./chunk-N24ROESF.js";
7
+ import "./chunk-HAF2AFBW.js";
7
8
  import "./chunk-JAJ3DUQ2.js";
8
- import "./chunk-BYDUMHXT.js";
9
- import "./chunk-UDZIZB5F.js";
9
+ import "./chunk-RTL7HO3N.js";
10
10
  import "./chunk-MZWMYN4O.js";
11
- import "./chunk-EX2SRTUE.js";
12
- import "./chunk-PZE3J7ER.js";
13
- import "./chunk-2BY6I4P5.js";
14
- import "./chunk-MJ6PHMOK.js";
11
+ import "./chunk-3OXQWII3.js";
12
+ import "./chunk-CYSGXNBY.js";
13
+ import "./chunk-GUTRAMK3.js";
14
+ import "./chunk-WW5F2DCO.js";
15
15
  import "./chunk-7K2YZTLD.js";
16
16
  export {
17
17
  createSleepHandle,
18
18
  register
19
19
  };
20
- //# sourceMappingURL=sleep-BPWX3FCN.js.map
20
+ //# sourceMappingURL=sleep-ENFZFUJJ.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -2,14 +2,14 @@
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
  buildSoulBundle
5
- } from "./chunk-OZ4IZFV4.js";
6
- import "./chunk-GBBTK6H2.js";
7
- import "./chunk-EX2SRTUE.js";
8
- import "./chunk-PZE3J7ER.js";
9
- import "./chunk-2BY6I4P5.js";
10
- import "./chunk-MJ6PHMOK.js";
5
+ } from "./chunk-HJQZP5CK.js";
6
+ import "./chunk-SRFEIZQT.js";
7
+ import "./chunk-3OXQWII3.js";
8
+ import "./chunk-CYSGXNBY.js";
9
+ import "./chunk-GUTRAMK3.js";
10
+ import "./chunk-WW5F2DCO.js";
11
11
  import "./chunk-7K2YZTLD.js";
12
12
  export {
13
13
  buildSoulBundle
14
14
  };
15
- //# sourceMappingURL=soul-bundle-BRIUDEQ2.js.map
15
+ //# sourceMappingURL=soul-bundle-QTPWDJB2.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -3,16 +3,16 @@
3
3
  import {
4
4
  loadMinimalSoul,
5
5
  loadSoulBundle
6
- } from "./chunk-KFENC7BM.js";
7
- import "./chunk-OZ4IZFV4.js";
8
- import "./chunk-GBBTK6H2.js";
9
- import "./chunk-EX2SRTUE.js";
10
- import "./chunk-PZE3J7ER.js";
11
- import "./chunk-2BY6I4P5.js";
12
- import "./chunk-MJ6PHMOK.js";
6
+ } from "./chunk-L33WNMCP.js";
7
+ import "./chunk-HJQZP5CK.js";
8
+ import "./chunk-SRFEIZQT.js";
9
+ import "./chunk-3OXQWII3.js";
10
+ import "./chunk-CYSGXNBY.js";
11
+ import "./chunk-GUTRAMK3.js";
12
+ import "./chunk-WW5F2DCO.js";
13
13
  import "./chunk-7K2YZTLD.js";
14
14
  export {
15
15
  loadMinimalSoul,
16
16
  loadSoulBundle
17
17
  };
18
- //# sourceMappingURL=soul-loader-GBXJ7EBH.js.map
18
+ //# sourceMappingURL=soul-loader-LCPTN4PK.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -3,9 +3,9 @@
3
3
  import {
4
4
  init_log_and_swallow,
5
5
  logAndSwallow
6
- } from "./chunk-EX2SRTUE.js";
7
- import "./chunk-2BY6I4P5.js";
8
- import "./chunk-MJ6PHMOK.js";
6
+ } from "./chunk-CYSGXNBY.js";
7
+ import "./chunk-GUTRAMK3.js";
8
+ import "./chunk-WW5F2DCO.js";
9
9
  import "./chunk-7K2YZTLD.js";
10
10
 
11
11
  // src/components/transport/sse-parser-anthropic.ts
@@ -70,4 +70,4 @@ async function* parseAnthropicSSE(response, signal) {
70
70
  export {
71
71
  parseAnthropicSSE
72
72
  };
73
- //# sourceMappingURL=sse-parser-anthropic-H42TTLBD.js.map
73
+ //# sourceMappingURL=sse-parser-anthropic-PYDJM3UC.js.map
@@ -3,9 +3,9 @@
3
3
  import {
4
4
  init_log_and_swallow,
5
5
  logAndSwallow
6
- } from "./chunk-EX2SRTUE.js";
7
- import "./chunk-2BY6I4P5.js";
8
- import "./chunk-MJ6PHMOK.js";
6
+ } from "./chunk-CYSGXNBY.js";
7
+ import "./chunk-GUTRAMK3.js";
8
+ import "./chunk-WW5F2DCO.js";
9
9
  import "./chunk-7K2YZTLD.js";
10
10
 
11
11
  // src/components/transport/sse-parser-responses.ts
@@ -61,4 +61,4 @@ async function* parseResponsesSSE(response, signal) {
61
61
  export {
62
62
  parseResponsesSSE
63
63
  };
64
- //# sourceMappingURL=sse-parser-responses-WG2LY2ML.js.map
64
+ //# sourceMappingURL=sse-parser-responses-FYT7A5WT.js.map
@@ -3,9 +3,9 @@
3
3
  import {
4
4
  init_log_and_swallow,
5
5
  logAndSwallow
6
- } from "./chunk-EX2SRTUE.js";
7
- import "./chunk-2BY6I4P5.js";
8
- import "./chunk-MJ6PHMOK.js";
6
+ } from "./chunk-CYSGXNBY.js";
7
+ import "./chunk-GUTRAMK3.js";
8
+ import "./chunk-WW5F2DCO.js";
9
9
  import "./chunk-7K2YZTLD.js";
10
10
 
11
11
  // src/capabilities/browser/ssrf-guard.ts
@@ -62,4 +62,4 @@ async function isPrivateHost(hostname) {
62
62
  export {
63
63
  isPrivateHost
64
64
  };
65
- //# sourceMappingURL=ssrf-guard-E2KBBC5E.js.map
65
+ //# sourceMappingURL=ssrf-guard-R4P5OCTO.js.map
@@ -33,4 +33,4 @@ async function start() {
33
33
  export {
34
34
  start
35
35
  };
36
- //# sourceMappingURL=start-CBVKNEAT.js.map
36
+ //# sourceMappingURL=start-4DNURGIY.js.map
@@ -3,13 +3,13 @@
3
3
  import {
4
4
  LANGUAGE_HINT_PROMPT,
5
5
  transcribeAudio
6
- } from "./chunk-3MO2MDXJ.js";
7
- import "./chunk-EX2SRTUE.js";
8
- import "./chunk-2BY6I4P5.js";
9
- import "./chunk-MJ6PHMOK.js";
6
+ } from "./chunk-SA6YEFNG.js";
7
+ import "./chunk-CYSGXNBY.js";
8
+ import "./chunk-GUTRAMK3.js";
9
+ import "./chunk-WW5F2DCO.js";
10
10
  import "./chunk-7K2YZTLD.js";
11
11
  export {
12
12
  LANGUAGE_HINT_PROMPT,
13
13
  transcribeAudio
14
14
  };
15
- //# sourceMappingURL=stt-CF3CPFDC.js.map
15
+ //# sourceMappingURL=stt-YN77NND6.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -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
  SubagentRuntime
5
- } from "./chunk-XZSYMCLF.js";
6
- import "./chunk-EX2SRTUE.js";
7
- import "./chunk-2BY6I4P5.js";
8
- import "./chunk-MJ6PHMOK.js";
5
+ } from "./chunk-QSC6QZ44.js";
6
+ import "./chunk-CYSGXNBY.js";
7
+ import "./chunk-GUTRAMK3.js";
8
+ import "./chunk-WW5F2DCO.js";
9
9
  import "./chunk-7K2YZTLD.js";
10
10
  export {
11
11
  SubagentRuntime
12
12
  };
13
- //# sourceMappingURL=subagent-runtime-4MTYUBIZ.js.map
13
+ //# sourceMappingURL=subagent-runtime-5AYOXOU2.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire as __bundleCreateRequire } from 'node:module'; import { fileURLToPath as __bundleFileURLToPath } from 'node:url'; import { dirname as __bundleDirname } from 'node:path'; const require = __bundleCreateRequire(import.meta.url); const __chunk_filename = __bundleFileURLToPath(import.meta.url); const __chunk_dirname = __bundleDirname(__chunk_filename);
3
+ import {
4
+ SubagentRuntime
5
+ } from "./chunk-PUDGA4RR.js";
6
+ import "./chunk-CYSGXNBY.js";
7
+ import "./chunk-GUTRAMK3.js";
8
+ import "./chunk-WW5F2DCO.js";
9
+ import "./chunk-7K2YZTLD.js";
10
+ export {
11
+ SubagentRuntime
12
+ };
13
+ //# sourceMappingURL=subagent-runtime-VKTX6Q2M.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire as __bundleCreateRequire } from 'node:module'; import { fileURLToPath as __bundleFileURLToPath } from 'node:url'; import { dirname as __bundleDirname } from 'node:path'; const require = __bundleCreateRequire(import.meta.url); const __chunk_filename = __bundleFileURLToPath(import.meta.url); const __chunk_dirname = __bundleDirname(__chunk_filename);
3
+ import "./chunk-7K2YZTLD.js";
4
+
5
+ // src/components/system-event-buffer.ts
6
+ var buffer = [];
7
+ function bufferSystemEvent(message) {
8
+ buffer.push(message);
9
+ }
10
+ function drainSystemEvents() {
11
+ return buffer.splice(0);
12
+ }
13
+ export {
14
+ bufferSystemEvent,
15
+ drainSystemEvents
16
+ };
17
+ //# sourceMappingURL=system-event-buffer-OEPPNUGK.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/system-event-buffer.ts"],
4
+ "sourcesContent": ["/**\n * system-event-buffer.ts \u2014 Buffers silent system events for injection (#844).\n * Drained before each prompt in the message pipeline.\n */\n\nconst buffer: string[] = [];\n\nexport function bufferSystemEvent(message: string): void {\n buffer.push(message);\n}\n\nexport function drainSystemEvents(): string[] {\n return buffer.splice(0);\n}\n"],
5
+ "mappings": ";;;;;AAKA,IAAM,SAAmB,CAAC;AAEnB,SAAS,kBAAkB,SAAuB;AACvD,SAAO,KAAK,OAAO;AACrB;AAEO,SAAS,oBAA8B;AAC5C,SAAO,OAAO,OAAO,CAAC;AACxB;",
6
+ "names": []
7
+ }
@@ -4,8 +4,8 @@ import {
4
4
  init_logger,
5
5
  logInfo,
6
6
  logWarn
7
- } from "./chunk-2BY6I4P5.js";
8
- import "./chunk-MJ6PHMOK.js";
7
+ } from "./chunk-GUTRAMK3.js";
8
+ import "./chunk-WW5F2DCO.js";
9
9
  import "./chunk-7K2YZTLD.js";
10
10
 
11
11
  // src/components/system-message.ts
@@ -28,4 +28,4 @@ export {
28
28
  initSystemMessage,
29
29
  sendSystemMessage
30
30
  };
31
- //# sourceMappingURL=system-message-TALP6GP2.js.map
31
+ //# sourceMappingURL=system-message-BRU267FW.js.map