abtars 0.3.3 → 0.3.4-alpha.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 (384) hide show
  1. package/bundle/{_registry.generated-7DRCE4V6.js → _registry.generated-ZJBAZMXN.js} +16 -15
  2. package/bundle/{_registry.generated-7DRCE4V6.js.map → _registry.generated-ZJBAZMXN.js.map} +1 -1
  3. package/bundle/abtars-browser.js +6 -5
  4. package/bundle/abtars-browser.js.map +1 -1
  5. package/bundle/abtars-cli.js +47 -39
  6. package/bundle/abtars-cli.js.map +2 -2
  7. package/bundle/abtars-restart.js +7 -7
  8. package/bundle/abtars-rss.js +2 -1
  9. package/bundle/abtars-rss.js.map +2 -2
  10. package/bundle/abtars-task.js +6 -5
  11. package/bundle/abtars-task.js.map +1 -1
  12. package/bundle/abtars-todo.js +2 -1
  13. package/bundle/abtars-todo.js.map +1 -1
  14. package/bundle/abtars.js +299 -209
  15. package/bundle/abtars.js.map +4 -4
  16. package/bundle/{acp-raw-client-AZJCEB6S.js → acp-raw-client-YTBGFN4S.js} +4 -3
  17. package/bundle/{acp-raw-client-AZJCEB6S.js.map → acp-raw-client-YTBGFN4S.js.map} +1 -1
  18. package/bundle/{action-gate-QYJL57IX.js → action-gate-YISTP773.js} +4 -3
  19. package/bundle/{action-gate-QYJL57IX.js.map → action-gate-YISTP773.js.map} +1 -1
  20. package/bundle/{agent-api-adapter-PYMNQXHE.js → agent-api-adapter-E4HWVJ32.js} +5 -4
  21. package/bundle/{agent-api-adapter-PYMNQXHE.js.map → agent-api-adapter-E4HWVJ32.js.map} +1 -1
  22. package/bundle/{agent-api-rate-limit-4GEZ4YN5.js → agent-api-rate-limit-VENFGOAD.js} +6 -5
  23. package/bundle/{agent-registry-563P4EUJ.js → agent-registry-DL7UT272.js} +9 -8
  24. package/bundle/bootstrap-V5MROD3X.js +62 -0
  25. package/bundle/bootstrap-V5MROD3X.js.map +7 -0
  26. package/bundle/{bridge-lock-transport-LXCF2IVN.js → bridge-lock-transport-BJAMHMXW.js} +6 -5
  27. package/bundle/{browser-2VZOGOGX.js → browser-PT54UWSW.js} +8 -7
  28. package/bundle/{budget-PPA7WY3D.js → budget-QNK6IIT6.js} +5 -4
  29. package/bundle/{budget-PPA7WY3D.js.map → budget-QNK6IIT6.js.map} +1 -1
  30. package/bundle/{capability-WXEA2WFK.js → capability-EKPGHQIO.js} +7 -6
  31. package/bundle/{chunk-C3EYYJN3.js → chunk-2BXXQG7P.js} +16 -4
  32. package/bundle/chunk-2BXXQG7P.js.map +7 -0
  33. package/bundle/{chunk-4PIVWXUJ.js → chunk-2ZD7VQRW.js} +2 -2
  34. package/bundle/{chunk-OY2HAK33.js → chunk-36ZEYDKZ.js} +1 -1
  35. package/bundle/chunk-36ZEYDKZ.js.map +7 -0
  36. package/bundle/{chunk-3QW2K53E.js → chunk-4IGLXZCC.js} +11 -19
  37. package/bundle/chunk-4IGLXZCC.js.map +7 -0
  38. package/bundle/{chunk-T7TAWGBX.js → chunk-52PQM4EZ.js} +2 -2
  39. package/bundle/{chunk-2RGR3LSV.js → chunk-5P5HF7IJ.js} +2 -2
  40. package/bundle/{chunk-LE23VPN3.js → chunk-63A7ZRIH.js} +4 -4
  41. package/bundle/{chunk-LE23VPN3.js.map → chunk-63A7ZRIH.js.map} +1 -1
  42. package/bundle/chunk-6IB3GVXK.js +77 -0
  43. package/bundle/chunk-6IB3GVXK.js.map +7 -0
  44. package/bundle/{chunk-OOKNHOCB.js → chunk-6S3G6GPO.js} +2 -2
  45. package/bundle/{chunk-E7MV7WFT.js → chunk-6VTHSN4V.js} +6 -6
  46. package/bundle/{chunk-NGZVJ52F.js → chunk-76YN7O3U.js} +7 -7
  47. package/bundle/{chunk-43DKPXTP.js → chunk-7LORCJCQ.js} +4 -4
  48. package/bundle/{chunk-HDOFJVFS.js → chunk-7OI46MH7.js} +3 -3
  49. package/bundle/{chunk-H2K23MOF.js → chunk-7XXISOHU.js} +21 -5
  50. package/bundle/chunk-7XXISOHU.js.map +7 -0
  51. package/bundle/{chunk-CB6S3ZRF.js → chunk-AFFW2LRY.js} +3 -3
  52. package/bundle/{chunk-TCI6FZTP.js → chunk-AHJDG6OM.js} +9 -9
  53. package/bundle/{chunk-NP72ZB7P.js → chunk-AMUJEP6L.js} +45 -45
  54. package/bundle/{chunk-NP72ZB7P.js.map → chunk-AMUJEP6L.js.map} +2 -2
  55. package/bundle/{chunk-BU7LTI2W.js → chunk-AWCO3DQ3.js} +6 -7
  56. package/bundle/chunk-AWCO3DQ3.js.map +7 -0
  57. package/bundle/{chunk-YME7NRGP.js → chunk-B2TIRDZC.js} +2 -2
  58. package/bundle/{chunk-SSCGWDIC.js → chunk-BWJ37KMW.js} +2 -2
  59. package/bundle/{chunk-ULO2PX3T.js → chunk-CCZ43JB7.js} +3 -3
  60. package/bundle/{chunk-FVUL44T4.js → chunk-CNENVY37.js} +2 -2
  61. package/bundle/{chunk-J5NOL4DB.js → chunk-DJOSXXM2.js} +2 -2
  62. package/bundle/{chunk-7RAGSHSH.js → chunk-DMDX35YT.js} +12 -10
  63. package/bundle/chunk-DMDX35YT.js.map +7 -0
  64. package/bundle/{chunk-DNDYD5SL.js → chunk-E7DZYCSF.js} +3 -3
  65. package/bundle/{chunk-M6Q3IQ4H.js → chunk-FF2F7ENH.js} +250 -118
  66. package/bundle/chunk-FF2F7ENH.js.map +7 -0
  67. package/bundle/{chunk-GCFIK6OB.js → chunk-FSGICOCX.js} +21 -21
  68. package/bundle/{chunk-IXKQ4JMX.js → chunk-GFAJSPMD.js} +33 -17
  69. package/bundle/chunk-GFAJSPMD.js.map +7 -0
  70. package/bundle/{chunk-FJF42RZY.js → chunk-GHRLO2UL.js} +3 -3
  71. package/bundle/{chunk-3LQOJVTB.js → chunk-HFOCNYEO.js} +1842 -1220
  72. package/bundle/{chunk-3LQOJVTB.js.map → chunk-HFOCNYEO.js.map} +4 -4
  73. package/bundle/{chunk-7WHXTCVD.js → chunk-HWFN7JGU.js} +2 -2
  74. package/bundle/{chunk-KBPVJGD7.js → chunk-IXGDDDAB.js} +3 -3
  75. package/bundle/chunk-JHLKEUHE.js +37 -0
  76. package/bundle/chunk-JHLKEUHE.js.map +7 -0
  77. package/bundle/{chunk-YEOZN5IE.js → chunk-JRGEEGZF.js} +2 -2
  78. package/bundle/{chunk-56D3Y44D.js → chunk-KLG4SCF7.js} +10 -10
  79. package/bundle/{chunk-ASYX43OU.js → chunk-LB43Q7G6.js} +26 -26
  80. package/bundle/{chunk-TVSPVZTX.js → chunk-LN5MNDSA.js} +3 -3
  81. package/bundle/{chunk-RJX45XIC.js → chunk-LPF2HELD.js} +9 -4
  82. package/bundle/chunk-LPF2HELD.js.map +7 -0
  83. package/bundle/{chunk-72T2Q7IG.js → chunk-MJACYH7A.js} +270 -282
  84. package/bundle/chunk-MJACYH7A.js.map +7 -0
  85. package/bundle/{chunk-SESM4GBM.js → chunk-MPQ2PJQX.js} +52 -25
  86. package/bundle/chunk-MPQ2PJQX.js.map +7 -0
  87. package/bundle/{chunk-FIAVVKGN.js → chunk-MTE32OQH.js} +3 -3
  88. package/bundle/{chunk-MV5KOWOR.js → chunk-N3Q3TASM.js} +7 -7
  89. package/bundle/{chunk-IQKADER4.js → chunk-O4YBJS2K.js} +2 -2
  90. package/bundle/{chunk-VJATH7AN.js → chunk-OOUCUCUW.js} +9 -8
  91. package/bundle/chunk-OOUCUCUW.js.map +7 -0
  92. package/bundle/{chunk-5V4VHKEA.js → chunk-OT6HLPEA.js} +3 -3
  93. package/bundle/{chunk-V6CV3QPH.js → chunk-OWPQIBAO.js} +2 -2
  94. package/bundle/{chunk-EDZGF6BC.js → chunk-QJPDBJDP.js} +11 -4
  95. package/bundle/chunk-QJPDBJDP.js.map +7 -0
  96. package/bundle/{chunk-N5VROZ7A.js → chunk-QMP2KC4W.js} +5 -5
  97. package/bundle/{chunk-4HNCOQSK.js → chunk-QOGZ7BFL.js} +7 -7
  98. package/bundle/{chunk-2LKQV2ND.js → chunk-R23FHZRY.js} +3 -3
  99. package/bundle/{chunk-SXNY6HC4.js → chunk-R4GYWVCR.js} +6 -6
  100. package/bundle/chunk-R4GYWVCR.js.map +7 -0
  101. package/bundle/{chunk-S7ZIGIR5.js → chunk-R76K6L6H.js} +27 -27
  102. package/bundle/{chunk-S7ZIGIR5.js.map → chunk-R76K6L6H.js.map} +1 -1
  103. package/bundle/{chunk-TY26WMQY.js → chunk-RCWQ34QR.js} +2 -2
  104. package/bundle/{chunk-MQJG7OJX.js → chunk-RJ2OUNFU.js} +38 -36
  105. package/bundle/chunk-RJ2OUNFU.js.map +7 -0
  106. package/bundle/{chunk-S6HEHCCG.js → chunk-RO3TAYBR.js} +83 -46
  107. package/bundle/chunk-RO3TAYBR.js.map +7 -0
  108. package/bundle/{chunk-ZOCEBV62.js → chunk-UU3RLJSD.js} +3 -3
  109. package/bundle/{chunk-P5O6QZDC.js → chunk-V7Y2LFO4.js} +10 -6
  110. package/bundle/chunk-V7Y2LFO4.js.map +7 -0
  111. package/bundle/{chunk-WP7FZHMI.js → chunk-W2PSVV2T.js} +2 -2
  112. package/bundle/{chunk-V2QIAXWZ.js → chunk-WEGFRA6G.js} +3 -3
  113. package/bundle/{chunk-ZY6DH2S4.js → chunk-WTIGZO3N.js} +80 -70
  114. package/bundle/chunk-WTIGZO3N.js.map +7 -0
  115. package/bundle/{chunk-O4GKI3Q3.js → chunk-X7DLKIQM.js} +4 -4
  116. package/bundle/{chunk-BNBC4T45.js → chunk-XZ4ZBDM5.js} +3 -3
  117. package/bundle/{chunk-24V4A6RP.js → chunk-YI2KSYB4.js} +4 -4
  118. package/bundle/{chunk-37EX63K4.js → chunk-YWHJJHJ2.js} +6998 -3621
  119. package/bundle/chunk-YWHJJHJ2.js.map +7 -0
  120. package/bundle/{chunk-IK4R3RBZ.js → chunk-YZCOA4DC.js} +3 -3
  121. package/bundle/{chunk-2FZJDMAF.js → chunk-ZGNSCJWH.js} +10 -10
  122. package/bundle/{chunk-W726UGI6.js → chunk-ZKMKAO75.js} +3 -3
  123. package/bundle/{chunk-WGWM4IZM.js → chunk-ZT5ZBGWS.js} +4 -4
  124. package/bundle/{chunk-WGWM4IZM.js.map → chunk-ZT5ZBGWS.js.map} +1 -1
  125. package/bundle/{commands-XXFU2ZF7.js → commands-2JQ5YTJX.js} +20 -20
  126. package/bundle/{config-EWDZ234X.js → config-ZEWIM5Z2.js} +8 -7
  127. package/bundle/{config-show-6J33O4TE.js → config-show-WBJPQPRD.js} +5 -5
  128. package/bundle/{context-OCS7HLJP.js → context-V75QNXB5.js} +5 -2
  129. package/bundle/{context-OCS7HLJP.js.map → context-V75QNXB5.js.map} +1 -1
  130. package/bundle/{daemon-LTDAXNA2.js → daemon-W7VQOSZC.js} +7 -7
  131. package/bundle/{delegation-tools-YDTWQMZD.js → delegation-tools-VGTRFQBF.js} +13 -11
  132. package/bundle/{registry-client-VN2MM2HI.js → deploy-5AGIULM2.js} +10 -6
  133. package/bundle/{deploy-lib-import-RGZJ3CGC.js → deploy-lib-import-ZBDYORN4.js} +5 -3
  134. package/bundle/{deps-PHSLIA77.js → deps-VB3S3RLF.js} +21 -19
  135. package/bundle/deps-VB3S3RLF.js.map +7 -0
  136. package/bundle/{direct-api-transport-OAKYQBJR.js → direct-api-transport-YSROTC35.js} +30 -28
  137. package/bundle/direct-api-transport-YSROTC35.js.map +7 -0
  138. package/bundle/{discord-adapter-WUNYPTDE.js → discord-adapter-LKBSIFLV.js} +26 -26
  139. package/bundle/{dist-7HEHHQI2.js → dist-KMK7TZGN.js} +376 -348
  140. package/bundle/dist-KMK7TZGN.js.map +7 -0
  141. package/bundle/{dns-wakeup-F55ALHXJ.js → dns-wakeup-KIURCCFJ.js} +4 -3
  142. package/bundle/{dns-wakeup-F55ALHXJ.js.map → dns-wakeup-KIURCCFJ.js.map} +1 -1
  143. package/bundle/{doctor-probes-3SLIUGKS.js → doctor-probes-46UKIROK.js} +4 -3
  144. package/bundle/{env-schema-MSDP2YBO.js → env-schema-YGHCKX5B.js} +5 -4
  145. package/bundle/{gossip-CS3G3447.js → gossip-VSEY2HSE.js} +7 -6
  146. package/bundle/{guardrails-24XK2COI.js → guardrails-U7M6H2GE.js} +6 -5
  147. package/bundle/{health-check-FRUNRVNQ.js → health-check-ASRLUJE5.js} +6 -2
  148. package/bundle/health-check-ASRLUJE5.js.map +7 -0
  149. package/bundle/{heartbeat-system-G4IFQXT6.js → heartbeat-system-MUXLT4E6.js} +7 -6
  150. package/bundle/{heartbeat-tier3-3ZO3EVXP.js → heartbeat-tier3-636ZMM4E.js} +45 -44
  151. package/bundle/heartbeat-tier3-636ZMM4E.js.map +7 -0
  152. package/bundle/{hook-system-X6INNJGV.js → hook-system-Z4XD6IM5.js} +5 -4
  153. package/bundle/{hotskills-6FQYTJIO.js → hotskills-AOUWVTQB.js} +7 -6
  154. package/bundle/{install-ZAHTZ5M5.js → install-3GGZUN22.js} +23 -20
  155. package/bundle/install-3GGZUN22.js.map +7 -0
  156. package/bundle/{install-manifest-QX7KVDCA.js → install-manifest-624KOB4S.js} +4 -3
  157. package/bundle/{install-manifest-QX7KVDCA.js.map → install-manifest-624KOB4S.js.map} +1 -1
  158. package/bundle/{irc-adapter-IEJQKKJF.js → irc-adapter-SA7GLJGR.js} +5 -4
  159. package/bundle/{irc-adapter-IEJQKKJF.js.map → irc-adapter-SA7GLJGR.js.map} +1 -1
  160. package/bundle/{irc-config-TTWNYFLH.js → irc-config-PG4X2I4M.js} +6 -5
  161. package/bundle/{irc-config-TTWNYFLH.js.map → irc-config-PG4X2I4M.js.map} +1 -1
  162. package/bundle/{kanban-board-J6RO3ZU7.js → kanban-board-4AI5Z6B5.js} +7 -5
  163. package/bundle/{kanban-channel-5EIXBFSA.js → kanban-channel-JMBYWGWD.js} +8 -6
  164. package/bundle/{lazy-require-V6EFUATC.js → lazy-require-GURNBC3C.js} +11 -6
  165. package/bundle/{logger-Y3VILPRH.js → logger-UQJPZMYV.js} +4 -3
  166. package/bundle/{logs-YS3GDURO.js → logs-2WTDLMB5.js} +5 -5
  167. package/bundle/{main-chat-YLZDNQPO.js → main-chat-EID5Y6H2.js} +6 -5
  168. package/bundle/{master-user-Z4M7KCJE.js → master-user-TKA7M2GL.js} +7 -6
  169. package/bundle/{media-utils-P6RZ2K3U.js → media-utils-X3UN342B.js} +44 -43
  170. package/bundle/{media-utils-P6RZ2K3U.js.map → media-utils-X3UN342B.js.map} +2 -2
  171. package/bundle/{message-pipeline-MHEBDJLH.js → message-pipeline-TAWXNEVS.js} +20 -20
  172. package/bundle/meta.json +9264 -8575
  173. package/bundle/{migrate-layout-RJJQLVGR.js → migrate-layout-KEAIIN26.js} +8 -4
  174. package/bundle/migrate-layout-KEAIIN26.js.map +7 -0
  175. package/bundle/{nerve-VZNMFDGY.js → nerve-TC34H4EL.js} +5 -4
  176. package/bundle/{notification-VV2OR6NW.js → notification-JQNVGICN.js} +8 -7
  177. package/bundle/{openrouter-credits-LXC7P4G6.js → openrouter-credits-5Q3EYWE5.js} +5 -4
  178. package/bundle/{openrouter-credits-LXC7P4G6.js.map → openrouter-credits-5Q3EYWE5.js.map} +1 -1
  179. package/bundle/{orc-KC4USP55.js → orc-74Z62W7B.js} +4 -4
  180. package/bundle/{orc-tools-CHRSXSAS.js → orc-tools-GME3DKIN.js} +5 -4
  181. package/bundle/{paths-EDK6KWHG.js → paths-BAUNPLNJ.js} +6 -2
  182. package/bundle/{paths-RZF6WDMG.js → paths-MZC2KU2C.js} +3 -2
  183. package/bundle/{peer-auth-SRONOLNG.js → peer-auth-VRO3JYL5.js} +9 -8
  184. package/bundle/{peer-client-VOF77T6C.js → peer-client-WLK5GZQS.js} +9 -8
  185. package/bundle/{peer-client-VOF77T6C.js.map → peer-client-WLK5GZQS.js.map} +1 -1
  186. package/bundle/{peer-config-FRWLEYQ5.js → peer-config-24WILLCJ.js} +6 -5
  187. package/bundle/{peer-jwt-XY3XRIA2.js → peer-jwt-ZR6RF3XM.js} +6 -5
  188. package/bundle/{peer-transport-UBBXTDRP.js → peer-transport-BK5VHI2M.js} +8 -7
  189. package/bundle/{phase-transport-4NQHZX75.js → phase-transport-7QJM7J6V.js} +18 -16
  190. package/bundle/{reconcile-2EUXJ6W5.js → reconcile-7N7OE2GU.js} +5 -4
  191. package/bundle/{reconciler-FFQGV4DO.js → reconciler-7LOOUK43.js} +13 -11
  192. package/bundle/{reconciler-FFQGV4DO.js.map → reconciler-7LOOUK43.js.map} +1 -1
  193. package/bundle/{restore-NFDE2RG6.js → restore-MENZ3I3K.js} +13 -9
  194. package/bundle/{restore-NFDE2RG6.js.map → restore-MENZ3I3K.js.map} +3 -3
  195. package/bundle/{rollback-MVZ53XS4.js → rollback-JOHY6KWW.js} +5 -5
  196. package/bundle/{chunk-SKY6656M.js → sandbox-runtime-T7RF4WJD.js} +11 -28
  197. package/bundle/{chunk-SKY6656M.js.map → sandbox-runtime-T7RF4WJD.js.map} +1 -1
  198. package/bundle/{self-healer-utils-KD6LV63S.js → self-healer-utils-OR2N6RLD.js} +5 -4
  199. package/bundle/{self-healer-utils-KD6LV63S.js.map → self-healer-utils-OR2N6RLD.js.map} +1 -1
  200. package/bundle/{sha-tracker-2DB4R2TW.js → sha-tracker-BXOLWZJL.js} +5 -4
  201. package/bundle/{skill-session-BPDVA6ZG.js → skill-session-H6EQ4NGN.js} +5 -4
  202. package/bundle/{skill-session-BPDVA6ZG.js.map → skill-session-H6EQ4NGN.js.map} +1 -1
  203. package/bundle/{skill-stats-TPD2NROA.js → skill-stats-7O777ZSZ.js} +6 -5
  204. package/bundle/{skill-watcher-D7QYYYON.js → skill-watcher-ZGLTDPG5.js} +6 -5
  205. package/bundle/{sleep-GH6DLBJJ.js → sleep-3LFZH727.js} +10 -9
  206. package/bundle/{soul-bundle-GXLMDBCC.js → soul-bundle-RQ2YQMJW.js} +10 -9
  207. package/bundle/{spin-4DBYHS3E.js → spin-76K4R6FK.js} +12 -10
  208. package/bundle/{spin-notifications-IKYJPER5.js → spin-notifications-LD46B4K5.js} +7 -5
  209. package/bundle/{spin-notifications-IKYJPER5.js.map → spin-notifications-LD46B4K5.js.map} +1 -1
  210. package/bundle/{spin-types-PLJH3SIK.js → spin-types-MOKTZXGB.js} +5 -4
  211. package/bundle/{src-SUFZ27S5.js → src-6BTCMOD3.js} +4 -4
  212. package/bundle/{sse-parser-anthropic-U7ILHOY5.js → sse-parser-anthropic-NV2CGBIT.js} +5 -4
  213. package/bundle/{sse-parser-anthropic-U7ILHOY5.js.map → sse-parser-anthropic-NV2CGBIT.js.map} +1 -1
  214. package/bundle/{sse-parser-responses-OI73R3AH.js → sse-parser-responses-FC3PFHQ5.js} +5 -4
  215. package/bundle/{sse-parser-responses-OI73R3AH.js.map → sse-parser-responses-FC3PFHQ5.js.map} +1 -1
  216. package/bundle/{ssrf-guard-6GP4QYVA.js → ssrf-guard-E2YPLW6G.js} +5 -4
  217. package/bundle/{ssrf-guard-6GP4QYVA.js.map → ssrf-guard-E2YPLW6G.js.map} +1 -1
  218. package/bundle/{start-JT2BPMSW.js → start-HPO5LYJP.js} +5 -5
  219. package/bundle/start-HPO5LYJP.js.map +7 -0
  220. package/bundle/{stt-KD3AABKG.js → stt-UE7EOYD7.js} +6 -5
  221. package/bundle/{subagent-runtime-LVECAUPV.js → subagent-runtime-4X3UHF4H.js} +6 -5
  222. package/bundle/system-status-PLPWV4RF.js +346 -0
  223. package/bundle/system-status-PLPWV4RF.js.map +7 -0
  224. package/bundle/{task-store-2XRDM3AW.js → task-store-RAFMDQ7N.js} +6 -5
  225. package/bundle/{telegram-adapter-UJ3RYYV6.js → telegram-adapter-PPXKTGOP.js} +35 -35
  226. package/bundle/{tool-registry-YU6WBXPA.js → tool-registry-NKIPNJZ5.js} +25 -23
  227. package/bundle/{tool-sandbox-RNNPDR5M.js → tool-sandbox-DQCP3UTU.js} +6 -5
  228. package/bundle/{transport-config-OK3MZPJK.js → transport-config-SF6GBV47.js} +9 -8
  229. package/bundle/{update-ENNPRW7Y.js → update-QOOGMFSJ.js} +6 -6
  230. package/bundle/{update-check-SJB6GV3A.js → update-check-LPZG3K5P.js} +3 -2
  231. package/bundle/{update-check-SJB6GV3A.js.map → update-check-LPZG3K5P.js.map} +1 -1
  232. package/bundle/{usage-tracker-HRSGC7QC.js → usage-tracker-TBDM4KE6.js} +2 -2
  233. package/bundle/{user-registry-6PUJJ5J2.js → user-registry-OYJVAHDD.js} +6 -5
  234. package/bundle/{wrapper-WLHLG4MI.js → wrapper-W66YICNZ.js} +3 -3
  235. package/bundle/{ws-peer-client-WHW3RJTD.js → ws-peer-client-G5QHOF6K.js} +15 -14
  236. package/bundle/{ws-peer-client-WHW3RJTD.js.map → ws-peer-client-G5QHOF6K.js.map} +2 -2
  237. package/package.json +3 -7
  238. package/scripts/emergency-deploy.sh +11 -8
  239. package/scripts/emergency-update.sh +156 -23
  240. package/templates/config/.env +1 -1
  241. package/templates/config/models.json +13 -0
  242. package/bundle/chunk-37EX63K4.js.map +0 -7
  243. package/bundle/chunk-3QW2K53E.js.map +0 -7
  244. package/bundle/chunk-72T2Q7IG.js.map +0 -7
  245. package/bundle/chunk-7RAGSHSH.js.map +0 -7
  246. package/bundle/chunk-BU7LTI2W.js.map +0 -7
  247. package/bundle/chunk-C3EYYJN3.js.map +0 -7
  248. package/bundle/chunk-CAOIIVFP.js +0 -110
  249. package/bundle/chunk-CAOIIVFP.js.map +0 -7
  250. package/bundle/chunk-EDZGF6BC.js.map +0 -7
  251. package/bundle/chunk-H2K23MOF.js.map +0 -7
  252. package/bundle/chunk-HAZHNBBY.js +0 -156
  253. package/bundle/chunk-HAZHNBBY.js.map +0 -7
  254. package/bundle/chunk-IXKQ4JMX.js.map +0 -7
  255. package/bundle/chunk-JAJ3DUQ2.js +0 -30
  256. package/bundle/chunk-JAJ3DUQ2.js.map +0 -7
  257. package/bundle/chunk-KMFR5AVY.js +0 -45
  258. package/bundle/chunk-KMFR5AVY.js.map +0 -7
  259. package/bundle/chunk-M6Q3IQ4H.js.map +0 -7
  260. package/bundle/chunk-MQJG7OJX.js.map +0 -7
  261. package/bundle/chunk-OY2HAK33.js.map +0 -7
  262. package/bundle/chunk-P5O6QZDC.js.map +0 -7
  263. package/bundle/chunk-RJX45XIC.js.map +0 -7
  264. package/bundle/chunk-S6HEHCCG.js.map +0 -7
  265. package/bundle/chunk-SESM4GBM.js.map +0 -7
  266. package/bundle/chunk-SXNY6HC4.js.map +0 -7
  267. package/bundle/chunk-VJATH7AN.js.map +0 -7
  268. package/bundle/chunk-ZY6DH2S4.js.map +0 -7
  269. package/bundle/deps-PHSLIA77.js.map +0 -7
  270. package/bundle/direct-api-transport-OAKYQBJR.js.map +0 -7
  271. package/bundle/dist-7HEHHQI2.js.map +0 -7
  272. package/bundle/health-check-FRUNRVNQ.js.map +0 -7
  273. package/bundle/heartbeat-tier3-3ZO3EVXP.js.map +0 -7
  274. package/bundle/install-ZAHTZ5M5.js.map +0 -7
  275. package/bundle/migrate-layout-RJJQLVGR.js.map +0 -7
  276. package/bundle/phase-config-V4XETN5F.js +0 -18
  277. package/bundle/sandbox-runtime-WHACQLLN.js +0 -22
  278. package/bundle/start-JT2BPMSW.js.map +0 -7
  279. package/bundle/system-status-XXJWTVJN.js +0 -243
  280. package/bundle/system-status-XXJWTVJN.js.map +0 -7
  281. package/bundle/user-registry-6PUJJ5J2.js.map +0 -7
  282. package/bundle/wrapper-WLHLG4MI.js.map +0 -7
  283. /package/bundle/{agent-api-rate-limit-4GEZ4YN5.js.map → agent-api-rate-limit-VENFGOAD.js.map} +0 -0
  284. /package/bundle/{agent-registry-563P4EUJ.js.map → agent-registry-DL7UT272.js.map} +0 -0
  285. /package/bundle/{bridge-lock-transport-LXCF2IVN.js.map → bridge-lock-transport-BJAMHMXW.js.map} +0 -0
  286. /package/bundle/{browser-2VZOGOGX.js.map → browser-PT54UWSW.js.map} +0 -0
  287. /package/bundle/{capability-WXEA2WFK.js.map → capability-EKPGHQIO.js.map} +0 -0
  288. /package/bundle/{chunk-4PIVWXUJ.js.map → chunk-2ZD7VQRW.js.map} +0 -0
  289. /package/bundle/{chunk-T7TAWGBX.js.map → chunk-52PQM4EZ.js.map} +0 -0
  290. /package/bundle/{chunk-2RGR3LSV.js.map → chunk-5P5HF7IJ.js.map} +0 -0
  291. /package/bundle/{chunk-OOKNHOCB.js.map → chunk-6S3G6GPO.js.map} +0 -0
  292. /package/bundle/{chunk-E7MV7WFT.js.map → chunk-6VTHSN4V.js.map} +0 -0
  293. /package/bundle/{chunk-NGZVJ52F.js.map → chunk-76YN7O3U.js.map} +0 -0
  294. /package/bundle/{chunk-43DKPXTP.js.map → chunk-7LORCJCQ.js.map} +0 -0
  295. /package/bundle/{chunk-HDOFJVFS.js.map → chunk-7OI46MH7.js.map} +0 -0
  296. /package/bundle/{chunk-CB6S3ZRF.js.map → chunk-AFFW2LRY.js.map} +0 -0
  297. /package/bundle/{chunk-TCI6FZTP.js.map → chunk-AHJDG6OM.js.map} +0 -0
  298. /package/bundle/{chunk-YME7NRGP.js.map → chunk-B2TIRDZC.js.map} +0 -0
  299. /package/bundle/{chunk-SSCGWDIC.js.map → chunk-BWJ37KMW.js.map} +0 -0
  300. /package/bundle/{chunk-ULO2PX3T.js.map → chunk-CCZ43JB7.js.map} +0 -0
  301. /package/bundle/{chunk-FVUL44T4.js.map → chunk-CNENVY37.js.map} +0 -0
  302. /package/bundle/{chunk-J5NOL4DB.js.map → chunk-DJOSXXM2.js.map} +0 -0
  303. /package/bundle/{chunk-DNDYD5SL.js.map → chunk-E7DZYCSF.js.map} +0 -0
  304. /package/bundle/{chunk-GCFIK6OB.js.map → chunk-FSGICOCX.js.map} +0 -0
  305. /package/bundle/{chunk-FJF42RZY.js.map → chunk-GHRLO2UL.js.map} +0 -0
  306. /package/bundle/{chunk-7WHXTCVD.js.map → chunk-HWFN7JGU.js.map} +0 -0
  307. /package/bundle/{chunk-KBPVJGD7.js.map → chunk-IXGDDDAB.js.map} +0 -0
  308. /package/bundle/{chunk-YEOZN5IE.js.map → chunk-JRGEEGZF.js.map} +0 -0
  309. /package/bundle/{chunk-56D3Y44D.js.map → chunk-KLG4SCF7.js.map} +0 -0
  310. /package/bundle/{chunk-ASYX43OU.js.map → chunk-LB43Q7G6.js.map} +0 -0
  311. /package/bundle/{chunk-TVSPVZTX.js.map → chunk-LN5MNDSA.js.map} +0 -0
  312. /package/bundle/{chunk-FIAVVKGN.js.map → chunk-MTE32OQH.js.map} +0 -0
  313. /package/bundle/{chunk-MV5KOWOR.js.map → chunk-N3Q3TASM.js.map} +0 -0
  314. /package/bundle/{chunk-IQKADER4.js.map → chunk-O4YBJS2K.js.map} +0 -0
  315. /package/bundle/{chunk-5V4VHKEA.js.map → chunk-OT6HLPEA.js.map} +0 -0
  316. /package/bundle/{chunk-V6CV3QPH.js.map → chunk-OWPQIBAO.js.map} +0 -0
  317. /package/bundle/{chunk-N5VROZ7A.js.map → chunk-QMP2KC4W.js.map} +0 -0
  318. /package/bundle/{chunk-4HNCOQSK.js.map → chunk-QOGZ7BFL.js.map} +0 -0
  319. /package/bundle/{chunk-2LKQV2ND.js.map → chunk-R23FHZRY.js.map} +0 -0
  320. /package/bundle/{chunk-TY26WMQY.js.map → chunk-RCWQ34QR.js.map} +0 -0
  321. /package/bundle/{chunk-ZOCEBV62.js.map → chunk-UU3RLJSD.js.map} +0 -0
  322. /package/bundle/{chunk-WP7FZHMI.js.map → chunk-W2PSVV2T.js.map} +0 -0
  323. /package/bundle/{chunk-V2QIAXWZ.js.map → chunk-WEGFRA6G.js.map} +0 -0
  324. /package/bundle/{chunk-O4GKI3Q3.js.map → chunk-X7DLKIQM.js.map} +0 -0
  325. /package/bundle/{chunk-BNBC4T45.js.map → chunk-XZ4ZBDM5.js.map} +0 -0
  326. /package/bundle/{chunk-24V4A6RP.js.map → chunk-YI2KSYB4.js.map} +0 -0
  327. /package/bundle/{chunk-IK4R3RBZ.js.map → chunk-YZCOA4DC.js.map} +0 -0
  328. /package/bundle/{chunk-2FZJDMAF.js.map → chunk-ZGNSCJWH.js.map} +0 -0
  329. /package/bundle/{chunk-W726UGI6.js.map → chunk-ZKMKAO75.js.map} +0 -0
  330. /package/bundle/{commands-XXFU2ZF7.js.map → commands-2JQ5YTJX.js.map} +0 -0
  331. /package/bundle/{config-EWDZ234X.js.map → config-ZEWIM5Z2.js.map} +0 -0
  332. /package/bundle/{config-show-6J33O4TE.js.map → config-show-WBJPQPRD.js.map} +0 -0
  333. /package/bundle/{daemon-LTDAXNA2.js.map → daemon-W7VQOSZC.js.map} +0 -0
  334. /package/bundle/{delegation-tools-YDTWQMZD.js.map → delegation-tools-VGTRFQBF.js.map} +0 -0
  335. /package/bundle/{deploy-lib-import-RGZJ3CGC.js.map → deploy-5AGIULM2.js.map} +0 -0
  336. /package/bundle/{doctor-probes-3SLIUGKS.js.map → deploy-lib-import-ZBDYORN4.js.map} +0 -0
  337. /package/bundle/{discord-adapter-WUNYPTDE.js.map → discord-adapter-LKBSIFLV.js.map} +0 -0
  338. /package/bundle/{env-schema-MSDP2YBO.js.map → doctor-probes-46UKIROK.js.map} +0 -0
  339. /package/bundle/{gossip-CS3G3447.js.map → env-schema-YGHCKX5B.js.map} +0 -0
  340. /package/bundle/{guardrails-24XK2COI.js.map → gossip-VSEY2HSE.js.map} +0 -0
  341. /package/bundle/{heartbeat-system-G4IFQXT6.js.map → guardrails-U7M6H2GE.js.map} +0 -0
  342. /package/bundle/{hook-system-X6INNJGV.js.map → heartbeat-system-MUXLT4E6.js.map} +0 -0
  343. /package/bundle/{hotskills-6FQYTJIO.js.map → hook-system-Z4XD6IM5.js.map} +0 -0
  344. /package/bundle/{kanban-board-J6RO3ZU7.js.map → hotskills-AOUWVTQB.js.map} +0 -0
  345. /package/bundle/{kanban-channel-5EIXBFSA.js.map → kanban-board-4AI5Z6B5.js.map} +0 -0
  346. /package/bundle/{lazy-require-V6EFUATC.js.map → kanban-channel-JMBYWGWD.js.map} +0 -0
  347. /package/bundle/{logger-Y3VILPRH.js.map → lazy-require-GURNBC3C.js.map} +0 -0
  348. /package/bundle/{main-chat-YLZDNQPO.js.map → logger-UQJPZMYV.js.map} +0 -0
  349. /package/bundle/{logs-YS3GDURO.js.map → logs-2WTDLMB5.js.map} +0 -0
  350. /package/bundle/{master-user-Z4M7KCJE.js.map → main-chat-EID5Y6H2.js.map} +0 -0
  351. /package/bundle/{message-pipeline-MHEBDJLH.js.map → master-user-TKA7M2GL.js.map} +0 -0
  352. /package/bundle/{nerve-VZNMFDGY.js.map → message-pipeline-TAWXNEVS.js.map} +0 -0
  353. /package/bundle/{notification-VV2OR6NW.js.map → nerve-TC34H4EL.js.map} +0 -0
  354. /package/bundle/{orc-tools-CHRSXSAS.js.map → notification-JQNVGICN.js.map} +0 -0
  355. /package/bundle/{orc-KC4USP55.js.map → orc-74Z62W7B.js.map} +0 -0
  356. /package/bundle/{paths-EDK6KWHG.js.map → orc-tools-GME3DKIN.js.map} +0 -0
  357. /package/bundle/{paths-RZF6WDMG.js.map → paths-BAUNPLNJ.js.map} +0 -0
  358. /package/bundle/{peer-auth-SRONOLNG.js.map → paths-MZC2KU2C.js.map} +0 -0
  359. /package/bundle/{peer-config-FRWLEYQ5.js.map → peer-auth-VRO3JYL5.js.map} +0 -0
  360. /package/bundle/{peer-jwt-XY3XRIA2.js.map → peer-config-24WILLCJ.js.map} +0 -0
  361. /package/bundle/{peer-transport-UBBXTDRP.js.map → peer-jwt-ZR6RF3XM.js.map} +0 -0
  362. /package/bundle/{phase-config-V4XETN5F.js.map → peer-transport-BK5VHI2M.js.map} +0 -0
  363. /package/bundle/{phase-transport-4NQHZX75.js.map → phase-transport-7QJM7J6V.js.map} +0 -0
  364. /package/bundle/{reconcile-2EUXJ6W5.js.map → reconcile-7N7OE2GU.js.map} +0 -0
  365. /package/bundle/{registry-client-VN2MM2HI.js.map → rollback-JOHY6KWW.js.map} +0 -0
  366. /package/bundle/{rollback-MVZ53XS4.js.map → sha-tracker-BXOLWZJL.js.map} +0 -0
  367. /package/bundle/{sandbox-runtime-WHACQLLN.js.map → skill-stats-7O777ZSZ.js.map} +0 -0
  368. /package/bundle/{sha-tracker-2DB4R2TW.js.map → skill-watcher-ZGLTDPG5.js.map} +0 -0
  369. /package/bundle/{skill-stats-TPD2NROA.js.map → sleep-3LFZH727.js.map} +0 -0
  370. /package/bundle/{skill-watcher-D7QYYYON.js.map → soul-bundle-RQ2YQMJW.js.map} +0 -0
  371. /package/bundle/{sleep-GH6DLBJJ.js.map → spin-76K4R6FK.js.map} +0 -0
  372. /package/bundle/{soul-bundle-GXLMDBCC.js.map → spin-types-MOKTZXGB.js.map} +0 -0
  373. /package/bundle/{spin-4DBYHS3E.js.map → src-6BTCMOD3.js.map} +0 -0
  374. /package/bundle/{spin-types-PLJH3SIK.js.map → stt-UE7EOYD7.js.map} +0 -0
  375. /package/bundle/{src-SUFZ27S5.js.map → subagent-runtime-4X3UHF4H.js.map} +0 -0
  376. /package/bundle/{stt-KD3AABKG.js.map → task-store-RAFMDQ7N.js.map} +0 -0
  377. /package/bundle/{telegram-adapter-UJ3RYYV6.js.map → telegram-adapter-PPXKTGOP.js.map} +0 -0
  378. /package/bundle/{subagent-runtime-LVECAUPV.js.map → tool-registry-NKIPNJZ5.js.map} +0 -0
  379. /package/bundle/{task-store-2XRDM3AW.js.map → tool-sandbox-DQCP3UTU.js.map} +0 -0
  380. /package/bundle/{tool-registry-YU6WBXPA.js.map → transport-config-SF6GBV47.js.map} +0 -0
  381. /package/bundle/{tool-sandbox-RNNPDR5M.js.map → update-QOOGMFSJ.js.map} +0 -0
  382. /package/bundle/{transport-config-OK3MZPJK.js.map → usage-tracker-TBDM4KE6.js.map} +0 -0
  383. /package/bundle/{update-ENNPRW7Y.js.map → user-registry-OYJVAHDD.js.map} +0 -0
  384. /package/bundle/{usage-tracker-HRSGC7QC.js.map → wrapper-W66YICNZ.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/cli/abtars-rss.ts"],
4
- "sourcesContent": ["/**\n * abtars-rss \u2014 fetch RSS/Atom feeds, output JSON\n *\n * Usage:\n * abtars-rss --feeds <path> # fetch feeds from JSON file\n * abtars-rss --feeds <path> --hours 48\n *\n * Reads: a feeds.json file (array of {url, name, keywords?})\n * Writes: ~/.abtars/workspace/rss/<feedname>/<date>.json\n */\n\nimport { readFileSync, writeFileSync, mkdirSync } from \"node:fs\";\nimport { join, basename } from \"node:path\";\nimport { homedir } from \"node:os\";\nimport { abtarsHome } from \"../paths.js\";\n\ninterface FeedConfig {\n url: string;\n name: string;\n keywords?: string[];\n}\n\ninterface RssItem {\n title: string;\n link: string;\n summary: string;\n date: string;\n source: string;\n}\n\nconst UA = \"abtars-rss/1.0\";\n\nfunction tag(xml: string, name: string): string {\n const m = xml.match(new RegExp(`<${name}[^>]*>(?:<!\\\\[CDATA\\\\[)?([\\\\s\\\\S]*?)(?:\\\\]\\\\]>)?</${name}>`, \"i\"));\n return m?.[1]?.trim() ?? \"\";\n}\n\nfunction attrHref(xml: string): string {\n const m = xml.match(/<link[^>]+href=\"([^\"]+)\"/i);\n return m?.[1] ?? \"\";\n}\n\nfunction parseXmlFeed(xml: string, source: string): RssItem[] {\n const items: RssItem[] = [];\n for (const m of xml.matchAll(/<item>([\\s\\S]*?)<\\/item>/gi)) {\n const c = m[1] ?? \"\";\n items.push({ title: tag(c, \"title\"), link: tag(c, \"link\") || attrHref(c), summary: tag(c, \"description\").replace(/<[^>]+>/g, \"\").slice(0, 300), date: tag(c, \"pubDate\"), source });\n }\n for (const m of xml.matchAll(/<entry>([\\s\\S]*?)<\\/entry>/gi)) {\n const c = m[1] ?? \"\";\n items.push({ title: tag(c, \"title\"), link: attrHref(c) || tag(c, \"link\"), summary: (tag(c, \"summary\") || tag(c, \"content\")).replace(/<[^>]+>/g, \"\").slice(0, 300), date: tag(c, \"updated\") || tag(c, \"published\"), source });\n }\n return items;\n}\n\nfunction parseEdgarJson(json: string, source: string): RssItem[] {\n try {\n const data = JSON.parse(json);\n return (data.hits?.hits ?? []).map((h: any) => ({\n title: h._source?.display_names?.join(\", \") + \" \u2014 \" + h._source?.form_type,\n link: `https://www.sec.gov/Archives/edgar/data/${h._source?.entity_id}/${h._source?.file_num}`,\n summary: (h._source?.file_description ?? \"\").slice(0, 300),\n date: h._source?.file_date ?? \"\",\n source,\n }));\n } catch { return []; }\n}\n\nasync function fetchFeed(url: string): Promise<string> {\n const res = await fetch(url, { headers: { \"User-Agent\": UA }, signal: AbortSignal.timeout(15000) });\n if (!res.ok) throw new Error(`${res.status} ${res.statusText}`);\n return res.text();\n}\n\nfunction filterByAge(items: RssItem[], hours: number): RssItem[] {\n const cutoff = Date.now() - hours * 60 * 60 * 1000;\n return items.filter((item) => {\n if (!item.date) return true;\n const ts = new Date(item.date).getTime();\n return isNaN(ts) || ts > cutoff;\n });\n}\n\nfunction filterByKeywords(items: RssItem[], keywords: string[]): RssItem[] {\n if (keywords.length === 0) return items;\n const lower = keywords.map((k) => k.toLowerCase());\n return items.filter((item) => {\n const text = `${item.title} ${item.summary}`.toLowerCase();\n return lower.some((kw) => text.includes(kw));\n });\n}\n\nasync function main(): Promise<void> {\n const args = process.argv.slice(2);\n const feedsIdx = args.indexOf(\"--feeds\");\n if (feedsIdx === -1 || !args[feedsIdx + 1]) {\n console.error(\"Usage: abtars-rss --feeds <path.json> [--hours N]\");\n process.exit(1);\n }\n const feedsPath = args[feedsIdx + 1]!;\n const hours = parseInt(args.find((_, i, a) => a[i - 1] === \"--hours\") ?? \"24\", 10);\n\n const feeds: FeedConfig[] = JSON.parse(readFileSync(feedsPath, \"utf-8\"));\n const outDir = join(abtarsHome(), \"workspace\", \"rss\");\n\n console.error(`Fetching ${feeds.length} feeds...`);\n\n const allItems: RssItem[] = [];\n for (const feed of feeds) {\n try {\n console.error(` ${feed.name}...`);\n const body = await fetchFeed(feed.url);\n let items = body.trimStart().startsWith(\"{\") ? parseEdgarJson(body, feed.name) : parseXmlFeed(body, feed.name);\n if (feed.keywords) items = filterByKeywords(items, feed.keywords);\n allItems.push(...items);\n } catch (e: any) {\n console.error(` \u26A0 ${feed.name} failed: ${e.message}`);\n }\n }\n\n const filtered = filterByAge(allItems, hours);\n const seen = new Set<string>();\n const deduped = filtered.filter((item) => {\n const key = item.title.toLowerCase().replace(/[^a-z0-9]/g, \"\").slice(0, 60);\n if (seen.has(key)) return false;\n seen.add(key);\n return true;\n });\n\n const date = new Date().toISOString().slice(0, 10);\n const feedName = basename(feedsPath, \".json\").replace(/_feeds$/, \"\");\n const feedOutDir = join(outDir, feedName);\n mkdirSync(feedOutDir, { recursive: true });\n const outFile = join(feedOutDir, `${date}.json`);\n const payload = { date, hours, totalFeeds: feeds.length, totalItems: deduped.length, items: deduped };\n writeFileSync(outFile, JSON.stringify(payload, null, 2), \"utf-8\");\n\n console.error(`\uD83D\uDCC4 ${deduped.length} items \u2192 ${outFile}`);\n console.log(JSON.stringify(payload, null, 2));\n}\n\nmain().catch((err) => { console.error(`Fatal: ${err.message}`); process.exit(1); });\n\n// Hard 60s process timeout \u2014 prevents hanging indefinitely on slow feeds\nsetTimeout(() => { console.error(\"Timeout: 60s exceeded\"); process.exit(1); }, 60_000).unref();\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * abtars-rss \u2014 fetch RSS/Atom feeds, output JSON\n *\n * Usage:\n * abtars-rss --feeds <path> # fetch feeds from JSON file\n * abtars-rss --feeds <path> --hours 48\n *\n * Reads: a feeds.json file (array of {url, name, keywords?})\n * Writes: ~/.abtars/workspace/rss/<feedname>/<date>.json\n */\n\nimport { readFileSync, writeFileSync, mkdirSync } from \"node:fs\";\nimport { join, basename } from \"node:path\";\nimport { abtarsHome } from \"../paths.js\";\n\ninterface FeedConfig {\n url: string;\n name: string;\n keywords?: string[];\n}\n\ninterface RssItem {\n title: string;\n link: string;\n summary: string;\n date: string;\n source: string;\n}\n\nconst UA = \"abtars-rss/1.0\";\n\nfunction tag(xml: string, name: string): string {\n const m = xml.match(new RegExp(`<${name}[^>]*>(?:<!\\\\[CDATA\\\\[)?([\\\\s\\\\S]*?)(?:\\\\]\\\\]>)?</${name}>`, \"i\"));\n return m?.[1]?.trim() ?? \"\";\n}\n\nfunction attrHref(xml: string): string {\n const m = xml.match(/<link[^>]+href=\"([^\"]+)\"/i);\n return m?.[1] ?? \"\";\n}\n\nfunction parseXmlFeed(xml: string, source: string): RssItem[] {\n const items: RssItem[] = [];\n for (const m of xml.matchAll(/<item>([\\s\\S]*?)<\\/item>/gi)) {\n const c = m[1] ?? \"\";\n items.push({ title: tag(c, \"title\"), link: tag(c, \"link\") || attrHref(c), summary: tag(c, \"description\").replace(/<[^>]+>/g, \"\").slice(0, 300), date: tag(c, \"pubDate\"), source });\n }\n for (const m of xml.matchAll(/<entry>([\\s\\S]*?)<\\/entry>/gi)) {\n const c = m[1] ?? \"\";\n items.push({ title: tag(c, \"title\"), link: attrHref(c) || tag(c, \"link\"), summary: (tag(c, \"summary\") || tag(c, \"content\")).replace(/<[^>]+>/g, \"\").slice(0, 300), date: tag(c, \"updated\") || tag(c, \"published\"), source });\n }\n return items;\n}\n\nfunction parseEdgarJson(json: string, source: string): RssItem[] {\n try {\n const data = JSON.parse(json);\n return (data.hits?.hits ?? []).map((h: any) => ({\n title: h._source?.display_names?.join(\", \") + \" \u2014 \" + h._source?.form_type,\n link: `https://www.sec.gov/Archives/edgar/data/${h._source?.entity_id}/${h._source?.file_num}`,\n summary: (h._source?.file_description ?? \"\").slice(0, 300),\n date: h._source?.file_date ?? \"\",\n source,\n }));\n } catch { return []; }\n}\n\nasync function fetchFeed(url: string): Promise<string> {\n const res = await fetch(url, { headers: { \"User-Agent\": UA }, signal: AbortSignal.timeout(15000) });\n if (!res.ok) throw new Error(`${res.status} ${res.statusText}`);\n return res.text();\n}\n\nfunction filterByAge(items: RssItem[], hours: number): RssItem[] {\n const cutoff = Date.now() - hours * 60 * 60 * 1000;\n return items.filter((item) => {\n if (!item.date) return true;\n const ts = new Date(item.date).getTime();\n return isNaN(ts) || ts > cutoff;\n });\n}\n\nfunction filterByKeywords(items: RssItem[], keywords: string[]): RssItem[] {\n if (keywords.length === 0) return items;\n const lower = keywords.map((k) => k.toLowerCase());\n return items.filter((item) => {\n const text = `${item.title} ${item.summary}`.toLowerCase();\n return lower.some((kw) => text.includes(kw));\n });\n}\n\nasync function main(): Promise<void> {\n const args = process.argv.slice(2);\n const feedsIdx = args.indexOf(\"--feeds\");\n if (feedsIdx === -1 || !args[feedsIdx + 1]) {\n console.error(\"Usage: abtars-rss --feeds <path.json> [--hours N]\");\n process.exit(1);\n }\n const feedsPath = args[feedsIdx + 1]!;\n const hours = parseInt(args.find((_, i, a) => a[i - 1] === \"--hours\") ?? \"24\", 10);\n\n const feeds: FeedConfig[] = JSON.parse(readFileSync(feedsPath, \"utf-8\"));\n const outDir = join(abtarsHome(), \"workspace\", \"rss\");\n\n console.error(`Fetching ${feeds.length} feeds...`);\n\n const allItems: RssItem[] = [];\n for (const feed of feeds) {\n try {\n console.error(` ${feed.name}...`);\n const body = await fetchFeed(feed.url);\n let items = body.trimStart().startsWith(\"{\") ? parseEdgarJson(body, feed.name) : parseXmlFeed(body, feed.name);\n if (feed.keywords) items = filterByKeywords(items, feed.keywords);\n allItems.push(...items);\n } catch (e: any) {\n console.error(` \u26A0 ${feed.name} failed: ${e.message}`);\n }\n }\n\n const filtered = filterByAge(allItems, hours);\n const seen = new Set<string>();\n const deduped = filtered.filter((item) => {\n const key = item.title.toLowerCase().replace(/[^a-z0-9]/g, \"\").slice(0, 60);\n if (seen.has(key)) return false;\n seen.add(key);\n return true;\n });\n\n const date = new Date().toISOString().slice(0, 10);\n const feedName = basename(feedsPath, \".json\").replace(/_feeds$/, \"\");\n const feedOutDir = join(outDir, feedName);\n mkdirSync(feedOutDir, { recursive: true });\n const outFile = join(feedOutDir, `${date}.json`);\n const payload = { date, hours, totalFeeds: feeds.length, totalItems: deduped.length, items: deduped };\n writeFileSync(outFile, JSON.stringify(payload, null, 2), \"utf-8\");\n\n console.error(`\uD83D\uDCC4 ${deduped.length} items \u2192 ${outFile}`);\n console.log(JSON.stringify(payload, null, 2));\n}\n\nmain().catch((err) => { console.error(`Fatal: ${err.message}`); process.exit(1); });\n\n// Hard 60s process timeout \u2014 prevents hanging indefinitely on slow feeds\nsetTimeout(() => { console.error(\"Timeout: 60s exceeded\"); process.exit(1); }, 60_000).unref();\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -2,20 +2,21 @@
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
  require_dist
5
- } from "./chunk-ZY6DH2S4.js";
5
+ } from "./chunk-WTIGZO3N.js";
6
6
  import {
7
7
  readEntries,
8
8
  readEntry,
9
9
  removeEntry,
10
10
  writeEntry
11
- } from "./chunk-HDOFJVFS.js";
11
+ } from "./chunk-7OI46MH7.js";
12
12
  import {
13
13
  init_local_time,
14
14
  localISO
15
15
  } from "./chunk-N5KN3LGD.js";
16
- import "./chunk-WP7FZHMI.js";
17
- import "./chunk-OOKNHOCB.js";
18
- import "./chunk-H2K23MOF.js";
16
+ import "./chunk-W2PSVV2T.js";
17
+ import "./chunk-6S3G6GPO.js";
18
+ import "./chunk-7XXISOHU.js";
19
+ import "./chunk-2BXXQG7P.js";
19
20
  import {
20
21
  __toESM
21
22
  } from "./chunk-7K2YZTLD.js";
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/cli/abtars-task.ts"],
4
4
  "sourcesContent": ["/**\n * abtars-task \u2014 schedule time-based reminders and tasks.\n *\n * Usage:\n * abtars-task add --at \"2026-03-16T08:00\" --message \"Remind about cookies\" --chat-id 7773842843 --type reminder\n * abtars-task list\n * abtars-task remove <id>\n *\n * File: ~/.abtars/tasks/tasks.json\n */\n\nimport { localISO } from \"../utils/local-time.js\";\nimport { randomBytes } from \"node:crypto\";\nimport { readEntries as dbReadEntries, readEntry, writeEntry, removeEntry as dbRemoveEntry } from \"../components/tasks/task-store.js\";\n\n\nexport interface CronEntry {\n id: string;\n title?: string;\n fireAt: number;\n message: string;\n chatId: number;\n type: \"reminder\" | \"task\";\n executor?: \"agent\" | \"script\" | \"orc\";\n schedule?: string;\n catchUp?: number; // hours: max delay after fireAt before skipping to next. 0 = no catch-up (default).\n priority?: \"high\" | \"medium\" | \"low\";\n taskFile?: string;\n targetUserId?: string; // #936: route task output to this user's session via spin.injectGreeting()\n agent?: string; // #935: session type \u2014 professor, browsie, coding, dreamy\n deliveryMethod?: \"inline\" | \"report\"; // #1118: inline = chat message, report = file document\n deliveryMode?: \"silent\" | \"deliver\" | \"announce\"; // #1193: silent = no output, deliver = drop to chat, announce = agent speaks\n paused?: boolean;\n maxRunsPerDay?: number;\n consecutiveFails?: number;\n agentFollowUp?: boolean;\n agentMessage?: string;\n fired: boolean;\n createdAt: number;\n lastRanAt?: number;\n retryAfter?: number;\n _prevFireAt?: number;\n _retrying?: boolean;\n history?: { ts: number; exitCode?: number }[];\n}\n\nexport function readEntries(): CronEntry[] {\n return dbReadEntries();\n}\n\ninterface AddArgs {\n id?: string;\n at?: string;\n message?: string;\n chatId?: string;\n type?: string;\n executor?: string;\n schedule?: string;\n title?: string;\n taskFile?: string;\n agent?: string;\n targetUserId?: string;\n}\n\nfunction parseAddArgs(args: string[]): AddArgs {\n const parsed: AddArgs = {};\n for (let i = 0; i < args.length; i++) {\n switch (args[i]) {\n case \"--id\": parsed.id = args[++i] ?? \"\"; break;\n case \"--at\": parsed.at = args[++i] ?? \"\"; break;\n case \"--message\": parsed.message = args[++i] ?? \"\"; break;\n case \"--chat-id\": parsed.chatId = args[++i] ?? \"\"; break;\n case \"--type\": parsed.type = args[++i] ?? \"\"; break;\n case \"--executor\": parsed.executor = args[++i] ?? \"\"; break;\n case \"--schedule\": parsed.schedule = args[++i] ?? \"\"; break;\n case \"--title\": parsed.title = args[++i] ?? \"\"; break;\n case \"--task-file\": parsed.taskFile = args[++i] ?? \"\"; break;\n case \"--agent\": parsed.agent = args[++i] ?? \"\"; break;\n case \"--target-user\": parsed.targetUserId = args[++i] ?? \"\"; break;\n }\n }\n return parsed;\n}\n\nimport { CronExpressionParser } from \"cron-parser\";\n\nfunction add(args: string[]): void {\n const parsed = parseAddArgs(args);\n if (!parsed.at && !parsed.schedule) { console.log(JSON.stringify({ ok: false, error: \"--at or --schedule is required\" })); process.exit(1); }\n if (parsed.at && parsed.schedule) { console.log(JSON.stringify({ ok: false, error: \"use --at (one-shot) or --schedule (recurring), not both\" })); process.exit(1); }\n if (!parsed.message) { console.log(JSON.stringify({ ok: false, error: \"--message is required\" })); process.exit(1); }\n if (!parsed.title) { console.log(JSON.stringify({ ok: false, error: \"--title is required\" })); process.exit(1); }\n if (!parsed.chatId) { console.log(JSON.stringify({ ok: false, error: \"--chat-id is required\" })); process.exit(1); }\n\n let fireAt: number;\n let schedule: string | undefined;\n\n if (parsed.schedule) {\n try {\n const expr = CronExpressionParser.parse(parsed.schedule);\n fireAt = expr.next().getTime();\n schedule = parsed.schedule;\n } catch {\n console.log(JSON.stringify({ ok: false, error: \"Invalid --schedule cron expression\" })); process.exit(1);\n }\n } else {\n fireAt = new Date(parsed.at!).getTime();\n if (!Number.isFinite(fireAt)) { console.log(JSON.stringify({ ok: false, error: \"Invalid --at date\" })); process.exit(1); }\n }\n\n const chatId = parseInt(parsed.chatId, 10);\n if (!Number.isFinite(chatId)) { console.log(JSON.stringify({ ok: false, error: \"Invalid --chat-id\" })); process.exit(1); }\n\n const type = (parsed.type ?? \"reminder\") as CronEntry[\"type\"];\n if (type !== \"reminder\" && type !== \"task\") { console.log(JSON.stringify({ ok: false, error: \"--type must be reminder or task\" })); process.exit(1); }\n\n const executor = (parsed.executor ?? \"agent\") as NonNullable<CronEntry[\"executor\"]>;\n if (executor !== \"agent\" && executor !== \"script\" && executor !== \"orc\") { console.log(JSON.stringify({ ok: false, error: \"--executor must be agent, script, or orc\" })); process.exit(1); }\n\n const entry: CronEntry = {\n id: parsed.id || randomBytes(3).toString(\"hex\"),\n title: parsed.title,\n fireAt: fireAt!,\n message: parsed.message,\n chatId,\n type,\n executor,\n ...(schedule ? { schedule } : {}),\n ...(parsed.taskFile ? { taskFile: parsed.taskFile } : {}),\n ...(parsed.agent ? { agent: parsed.agent } : {}),\n ...(parsed.targetUserId ? { targetUserId: parsed.targetUserId } : {}),\n fired: false,\n createdAt: Date.now(),\n };\n\n const entries = dbReadEntries();\n\n // Dedup: reject if a recurring entry with same schedule+message+chatId already exists\n if (schedule) {\n const dup = entries.find(e => e.schedule === schedule && e.message === entry.message && e.chatId === chatId && !e.paused);\n if (dup) { console.log(JSON.stringify({ ok: false, error: \"duplicate\", existing_id: dup.id })); process.exit(1); }\n }\n\n writeEntry(entry);\n console.log(JSON.stringify({ ok: true, action: \"added\", id: entry.id, fireAt: localISO(new Date(fireAt!)), ...(schedule ? { schedule } : {}) }));\n}\n\nfunction listEntries(): void {\n const entries = readEntries().filter(e => !e.fired || e.schedule);\n if (entries.length === 0) {\n console.log(JSON.stringify({ ok: true, entries: [], message: \"No pending cron entries\" }));\n return;\n }\n const display = entries.map(e => ({\n id: e.id,\n fireAt: localISO(new Date(e.fireAt)),\n message: e.message,\n chatId: e.chatId,\n type: e.type,\n ...(e.executor ? { executor: e.executor } : {}),\n ...(e.schedule ? { schedule: e.schedule } : {}),\n ...(e.priority ? { priority: e.priority } : {}),\n ...(e.paused ? { paused: true } : {}),\n ...(e.lastRanAt ? { lastRanAt: localISO(new Date(e.lastRanAt)) } : {}),\n ...(e.history?.length ? { history: e.history } : {}),\n }));\n console.log(JSON.stringify({ ok: true, entries: display }));\n}\n\nfunction remove(id: string): void {\n if (!dbRemoveEntry(id)) { console.log(JSON.stringify({ ok: false, error: `Entry ${id} not found` })); process.exit(1); }\n console.log(JSON.stringify({ ok: true, action: \"removed\", id }));\n}\n\nfunction pause(id: string): void {\n const entry = readEntry(id);\n if (!entry) { console.log(JSON.stringify({ ok: false, error: `Entry ${id} not found` })); process.exit(1); }\n entry.paused = true;\n writeEntry(entry);\n console.log(JSON.stringify({ ok: true, action: \"paused\", id }));\n}\n\nfunction resume(id: string): void {\n const entry = readEntry(id);\n if (!entry) { console.log(JSON.stringify({ ok: false, error: `Entry ${id} not found` })); process.exit(1); }\n entry.paused = false;\n entry.consecutiveFails = 0;\n writeEntry(entry);\n console.log(JSON.stringify({ ok: true, action: \"resumed\", id }));\n}\n\nfunction showHistory(id: string): void {\n const entry = readEntry(id);\n if (!entry) { console.log(JSON.stringify({ ok: false, error: `Entry ${id} not found` })); process.exit(1); }\n const runs = (entry.history ?? []).map(h => ({\n ranAt: localISO(new Date(h.ts)),\n ...(h.exitCode !== undefined ? { exitCode: h.exitCode } : {}),\n }));\n console.log(JSON.stringify({ ok: true, id, message: entry.message.slice(0, 80), runs }));\n}\n\n// --- CLI entry point ---\n\nexport function main(argv: string[] = process.argv): void {\n if (argv.includes('--help')) {\n console.log(`abtars-task \u2014 schedule time-based reminders and tasks.\n\nUsage:\n abtars-task add --at \"2026-03-16T08:00\" --message \"...\" --chat-id ID --type reminder\n abtars-task add --schedule \"0 9 * * *\" --message \"...\" --chat-id ID --type task\n abtars-task list\n abtars-task remove <id>\n abtars-task pause <id>\n abtars-task resume <id>\n abtars-task history <id>`);\n process.exit(0);\n }\n\n const args = argv.slice(2);\n const command = args[0];\n\n switch (command) {\n case \"add\":\n add(args.slice(1));\n break;\n case \"list\":\n listEntries();\n break;\n case \"remove\": {\n const id = args[1];\n if (!id) { console.log(JSON.stringify({ ok: false, error: \"Usage: abtars-task remove <id>\" })); process.exit(1); }\n remove(id);\n break;\n }\n case \"pause\": {\n const id = args[1];\n if (!id) { console.log(JSON.stringify({ ok: false, error: \"Usage: abtars-task pause <id>\" })); process.exit(1); }\n pause(id);\n break;\n }\n case \"resume\": {\n const id = args[1];\n if (!id) { console.log(JSON.stringify({ ok: false, error: \"Usage: abtars-task resume <id>\" })); process.exit(1); }\n resume(id);\n break;\n }\n case \"history\": {\n const id = args[1];\n if (!id) { console.log(JSON.stringify({ ok: false, error: \"Usage: abtars-task history <id>\" })); process.exit(1); }\n showHistory(id);\n break;\n }\n default:\n console.log(JSON.stringify({ ok: false, error: \"Usage: abtars-task <add|list|remove|pause|resume|history> [args]\" }));\n process.exit(1);\n }\n}\n\nconst isDirectRun = process.argv[1]?.endsWith(\"abtars-task.ts\") ||\n process.argv[1]?.endsWith(\"abtars-task.js\");\nif (isDirectRun) main();\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["readEntries"]
7
7
  }
@@ -6,7 +6,8 @@ import {
6
6
  import {
7
7
  abtarsHome,
8
8
  init_paths
9
- } from "./chunk-H2K23MOF.js";
9
+ } from "./chunk-7XXISOHU.js";
10
+ import "./chunk-2BXXQG7P.js";
10
11
  import "./chunk-7K2YZTLD.js";
11
12
 
12
13
  // src/cli/abtars-todo.ts
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/cli/abtars-todo.ts"],
4
4
  "sourcesContent": ["/**\n * abtars-todo \u2014 persistent todo list CLI.\n *\n * Usage:\n * abtars-todo add \"Export X/Twitter session cookies\"\n * abtars-todo list\n * abtars-todo done 3\n * abtars-todo remove 3\n *\n * File: ~/.abtars/workspace/todo/todo.md\n */\nimport { existsSync, mkdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { abtarsHome } from \"../paths.js\";\nimport { localDate } from \"../utils/date.js\";\n\nconst todoPath = (): string => join(abtarsHome(), \"workspace\", \"todo\", \"todo.md\");\nconst HEADER = \"# Todo List\\n\";\n\nfunction ensureFile(): void {\n const p = todoPath();\n const dir = join(abtarsHome(), \"workspace\", \"todo\");\n if (!existsSync(dir)) mkdirSync(dir, { recursive: true });\n if (!existsSync(p)) writeFileSync(p, HEADER, \"utf-8\");\n}\n\nfunction readLines(): string[] {\n ensureFile();\n return readFileSync(todoPath(), \"utf-8\").split(\"\\n\");\n}\n\nfunction writeLines(lines: string[]): void {\n writeFileSync(todoPath(), lines.join(\"\\n\"), \"utf-8\");\n}\n\n/** Find indices of todo item lines (- [ ] or - [x]) */\nfunction itemIndices(lines: string[]): number[] {\n return lines.reduce<number[]>((acc, line, i) => {\n if (/^- \\[[ x]\\] /.test(line)) acc.push(i);\n return acc;\n }, []);\n}\n\nfunction add(description: string): void {\n ensureFile();\n const date = localDate();\n const entry = `- [ ] ${date}: ${description}\\n`;\n const content = readFileSync(todoPath(), \"utf-8\");\n writeFileSync(todoPath(), content.endsWith(\"\\n\") ? content + entry : content + \"\\n\" + entry, \"utf-8\");\n console.log(JSON.stringify({ ok: true, action: \"added\", description }));\n}\n\nfunction list(): void {\n const lines = readLines();\n const items = lines.filter(l => /^- \\[[ x]\\] /.test(l));\n if (items.length === 0) {\n console.log(JSON.stringify({ ok: true, items: [], message: \"Todo list is empty\" }));\n return;\n }\n // Print raw for agent readability\n console.log(items.join(\"\\n\"));\n}\n\nfunction done(lineNum: number): void {\n const lines = readLines();\n const indices = itemIndices(lines);\n if (lineNum < 1 || lineNum > indices.length) {\n console.log(JSON.stringify({ ok: false, error: `Invalid item number ${lineNum}. Have ${indices.length} items.` }));\n process.exit(1);\n }\n const idx = indices[lineNum - 1]!;\n lines[idx] = lines[idx]!.replace(\"- [ ]\", \"- [x]\");\n writeLines(lines);\n console.log(JSON.stringify({ ok: true, action: \"done\", item: lineNum }));\n}\n\nfunction remove(lineNum: number): void {\n const lines = readLines();\n const indices = itemIndices(lines);\n if (lineNum < 1 || lineNum > indices.length) {\n console.log(JSON.stringify({ ok: false, error: `Invalid item number ${lineNum}. Have ${indices.length} items.` }));\n process.exit(1);\n }\n const idx = indices[lineNum - 1]!;\n lines.splice(idx, 1);\n writeLines(lines);\n console.log(JSON.stringify({ ok: true, action: \"removed\", item: lineNum }));\n}\n\n// --- CLI entry point ---\n\nexport function main(argv: string[] = process.argv): void {\n const args = argv.slice(2);\n\n if (args.includes('--help')) {\n console.log(`Usage:\n abtars-todo add \"description\"\n abtars-todo list\n abtars-todo done <number>\n abtars-todo remove <number>\n\nFile: ~/.abtars/memory/todo.md`);\n process.exit(0);\n }\n\n const command = args[0];\n\n switch (command) {\n case \"add\": {\n const desc = args[1];\n if (!desc) { console.log(JSON.stringify({ ok: false, error: \"Usage: abtars-todo add \\\"description\\\"\" })); process.exit(1); }\n add(desc);\n break;\n }\n case \"list\":\n list();\n break;\n case \"done\": {\n const n = parseInt(args[1] ?? \"\", 10);\n if (!Number.isFinite(n)) { console.log(JSON.stringify({ ok: false, error: \"Usage: abtars-todo done <number>\" })); process.exit(1); }\n done(n);\n break;\n }\n case \"remove\": {\n const n = parseInt(args[1] ?? \"\", 10);\n if (!Number.isFinite(n)) { console.log(JSON.stringify({ ok: false, error: \"Usage: abtars-todo remove <number>\" })); process.exit(1); }\n remove(n);\n break;\n }\n default:\n console.log(JSON.stringify({ ok: false, error: \"Usage: abtars-todo <add|list|done|remove> [args]\" }));\n process.exit(1);\n }\n}\n\nconst isDirectRun = process.argv[1]?.endsWith(\"abtars-todo.ts\") ||\n process.argv[1]?.endsWith(\"abtars-todo.js\");\nif (isDirectRun) main();\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }