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.
- package/bundle/{_registry.generated-7DRCE4V6.js → _registry.generated-ZJBAZMXN.js} +16 -15
- package/bundle/{_registry.generated-7DRCE4V6.js.map → _registry.generated-ZJBAZMXN.js.map} +1 -1
- package/bundle/abtars-browser.js +6 -5
- package/bundle/abtars-browser.js.map +1 -1
- package/bundle/abtars-cli.js +47 -39
- package/bundle/abtars-cli.js.map +2 -2
- package/bundle/abtars-restart.js +7 -7
- package/bundle/abtars-rss.js +2 -1
- package/bundle/abtars-rss.js.map +2 -2
- package/bundle/abtars-task.js +6 -5
- package/bundle/abtars-task.js.map +1 -1
- package/bundle/abtars-todo.js +2 -1
- package/bundle/abtars-todo.js.map +1 -1
- package/bundle/abtars.js +299 -209
- package/bundle/abtars.js.map +4 -4
- package/bundle/{acp-raw-client-AZJCEB6S.js → acp-raw-client-YTBGFN4S.js} +4 -3
- package/bundle/{acp-raw-client-AZJCEB6S.js.map → acp-raw-client-YTBGFN4S.js.map} +1 -1
- package/bundle/{action-gate-QYJL57IX.js → action-gate-YISTP773.js} +4 -3
- package/bundle/{action-gate-QYJL57IX.js.map → action-gate-YISTP773.js.map} +1 -1
- package/bundle/{agent-api-adapter-PYMNQXHE.js → agent-api-adapter-E4HWVJ32.js} +5 -4
- package/bundle/{agent-api-adapter-PYMNQXHE.js.map → agent-api-adapter-E4HWVJ32.js.map} +1 -1
- package/bundle/{agent-api-rate-limit-4GEZ4YN5.js → agent-api-rate-limit-VENFGOAD.js} +6 -5
- package/bundle/{agent-registry-563P4EUJ.js → agent-registry-DL7UT272.js} +9 -8
- package/bundle/bootstrap-V5MROD3X.js +62 -0
- package/bundle/bootstrap-V5MROD3X.js.map +7 -0
- package/bundle/{bridge-lock-transport-LXCF2IVN.js → bridge-lock-transport-BJAMHMXW.js} +6 -5
- package/bundle/{browser-2VZOGOGX.js → browser-PT54UWSW.js} +8 -7
- package/bundle/{budget-PPA7WY3D.js → budget-QNK6IIT6.js} +5 -4
- package/bundle/{budget-PPA7WY3D.js.map → budget-QNK6IIT6.js.map} +1 -1
- package/bundle/{capability-WXEA2WFK.js → capability-EKPGHQIO.js} +7 -6
- package/bundle/{chunk-C3EYYJN3.js → chunk-2BXXQG7P.js} +16 -4
- package/bundle/chunk-2BXXQG7P.js.map +7 -0
- package/bundle/{chunk-4PIVWXUJ.js → chunk-2ZD7VQRW.js} +2 -2
- package/bundle/{chunk-OY2HAK33.js → chunk-36ZEYDKZ.js} +1 -1
- package/bundle/chunk-36ZEYDKZ.js.map +7 -0
- package/bundle/{chunk-3QW2K53E.js → chunk-4IGLXZCC.js} +11 -19
- package/bundle/chunk-4IGLXZCC.js.map +7 -0
- package/bundle/{chunk-T7TAWGBX.js → chunk-52PQM4EZ.js} +2 -2
- package/bundle/{chunk-2RGR3LSV.js → chunk-5P5HF7IJ.js} +2 -2
- package/bundle/{chunk-LE23VPN3.js → chunk-63A7ZRIH.js} +4 -4
- package/bundle/{chunk-LE23VPN3.js.map → chunk-63A7ZRIH.js.map} +1 -1
- package/bundle/chunk-6IB3GVXK.js +77 -0
- package/bundle/chunk-6IB3GVXK.js.map +7 -0
- package/bundle/{chunk-OOKNHOCB.js → chunk-6S3G6GPO.js} +2 -2
- package/bundle/{chunk-E7MV7WFT.js → chunk-6VTHSN4V.js} +6 -6
- package/bundle/{chunk-NGZVJ52F.js → chunk-76YN7O3U.js} +7 -7
- package/bundle/{chunk-43DKPXTP.js → chunk-7LORCJCQ.js} +4 -4
- package/bundle/{chunk-HDOFJVFS.js → chunk-7OI46MH7.js} +3 -3
- package/bundle/{chunk-H2K23MOF.js → chunk-7XXISOHU.js} +21 -5
- package/bundle/chunk-7XXISOHU.js.map +7 -0
- package/bundle/{chunk-CB6S3ZRF.js → chunk-AFFW2LRY.js} +3 -3
- package/bundle/{chunk-TCI6FZTP.js → chunk-AHJDG6OM.js} +9 -9
- package/bundle/{chunk-NP72ZB7P.js → chunk-AMUJEP6L.js} +45 -45
- package/bundle/{chunk-NP72ZB7P.js.map → chunk-AMUJEP6L.js.map} +2 -2
- package/bundle/{chunk-BU7LTI2W.js → chunk-AWCO3DQ3.js} +6 -7
- package/bundle/chunk-AWCO3DQ3.js.map +7 -0
- package/bundle/{chunk-YME7NRGP.js → chunk-B2TIRDZC.js} +2 -2
- package/bundle/{chunk-SSCGWDIC.js → chunk-BWJ37KMW.js} +2 -2
- package/bundle/{chunk-ULO2PX3T.js → chunk-CCZ43JB7.js} +3 -3
- package/bundle/{chunk-FVUL44T4.js → chunk-CNENVY37.js} +2 -2
- package/bundle/{chunk-J5NOL4DB.js → chunk-DJOSXXM2.js} +2 -2
- package/bundle/{chunk-7RAGSHSH.js → chunk-DMDX35YT.js} +12 -10
- package/bundle/chunk-DMDX35YT.js.map +7 -0
- package/bundle/{chunk-DNDYD5SL.js → chunk-E7DZYCSF.js} +3 -3
- package/bundle/{chunk-M6Q3IQ4H.js → chunk-FF2F7ENH.js} +250 -118
- package/bundle/chunk-FF2F7ENH.js.map +7 -0
- package/bundle/{chunk-GCFIK6OB.js → chunk-FSGICOCX.js} +21 -21
- package/bundle/{chunk-IXKQ4JMX.js → chunk-GFAJSPMD.js} +33 -17
- package/bundle/chunk-GFAJSPMD.js.map +7 -0
- package/bundle/{chunk-FJF42RZY.js → chunk-GHRLO2UL.js} +3 -3
- package/bundle/{chunk-3LQOJVTB.js → chunk-HFOCNYEO.js} +1842 -1220
- package/bundle/{chunk-3LQOJVTB.js.map → chunk-HFOCNYEO.js.map} +4 -4
- package/bundle/{chunk-7WHXTCVD.js → chunk-HWFN7JGU.js} +2 -2
- package/bundle/{chunk-KBPVJGD7.js → chunk-IXGDDDAB.js} +3 -3
- package/bundle/chunk-JHLKEUHE.js +37 -0
- package/bundle/chunk-JHLKEUHE.js.map +7 -0
- package/bundle/{chunk-YEOZN5IE.js → chunk-JRGEEGZF.js} +2 -2
- package/bundle/{chunk-56D3Y44D.js → chunk-KLG4SCF7.js} +10 -10
- package/bundle/{chunk-ASYX43OU.js → chunk-LB43Q7G6.js} +26 -26
- package/bundle/{chunk-TVSPVZTX.js → chunk-LN5MNDSA.js} +3 -3
- package/bundle/{chunk-RJX45XIC.js → chunk-LPF2HELD.js} +9 -4
- package/bundle/chunk-LPF2HELD.js.map +7 -0
- package/bundle/{chunk-72T2Q7IG.js → chunk-MJACYH7A.js} +270 -282
- package/bundle/chunk-MJACYH7A.js.map +7 -0
- package/bundle/{chunk-SESM4GBM.js → chunk-MPQ2PJQX.js} +52 -25
- package/bundle/chunk-MPQ2PJQX.js.map +7 -0
- package/bundle/{chunk-FIAVVKGN.js → chunk-MTE32OQH.js} +3 -3
- package/bundle/{chunk-MV5KOWOR.js → chunk-N3Q3TASM.js} +7 -7
- package/bundle/{chunk-IQKADER4.js → chunk-O4YBJS2K.js} +2 -2
- package/bundle/{chunk-VJATH7AN.js → chunk-OOUCUCUW.js} +9 -8
- package/bundle/chunk-OOUCUCUW.js.map +7 -0
- package/bundle/{chunk-5V4VHKEA.js → chunk-OT6HLPEA.js} +3 -3
- package/bundle/{chunk-V6CV3QPH.js → chunk-OWPQIBAO.js} +2 -2
- package/bundle/{chunk-EDZGF6BC.js → chunk-QJPDBJDP.js} +11 -4
- package/bundle/chunk-QJPDBJDP.js.map +7 -0
- package/bundle/{chunk-N5VROZ7A.js → chunk-QMP2KC4W.js} +5 -5
- package/bundle/{chunk-4HNCOQSK.js → chunk-QOGZ7BFL.js} +7 -7
- package/bundle/{chunk-2LKQV2ND.js → chunk-R23FHZRY.js} +3 -3
- package/bundle/{chunk-SXNY6HC4.js → chunk-R4GYWVCR.js} +6 -6
- package/bundle/chunk-R4GYWVCR.js.map +7 -0
- package/bundle/{chunk-S7ZIGIR5.js → chunk-R76K6L6H.js} +27 -27
- package/bundle/{chunk-S7ZIGIR5.js.map → chunk-R76K6L6H.js.map} +1 -1
- package/bundle/{chunk-TY26WMQY.js → chunk-RCWQ34QR.js} +2 -2
- package/bundle/{chunk-MQJG7OJX.js → chunk-RJ2OUNFU.js} +38 -36
- package/bundle/chunk-RJ2OUNFU.js.map +7 -0
- package/bundle/{chunk-S6HEHCCG.js → chunk-RO3TAYBR.js} +83 -46
- package/bundle/chunk-RO3TAYBR.js.map +7 -0
- package/bundle/{chunk-ZOCEBV62.js → chunk-UU3RLJSD.js} +3 -3
- package/bundle/{chunk-P5O6QZDC.js → chunk-V7Y2LFO4.js} +10 -6
- package/bundle/chunk-V7Y2LFO4.js.map +7 -0
- package/bundle/{chunk-WP7FZHMI.js → chunk-W2PSVV2T.js} +2 -2
- package/bundle/{chunk-V2QIAXWZ.js → chunk-WEGFRA6G.js} +3 -3
- package/bundle/{chunk-ZY6DH2S4.js → chunk-WTIGZO3N.js} +80 -70
- package/bundle/chunk-WTIGZO3N.js.map +7 -0
- package/bundle/{chunk-O4GKI3Q3.js → chunk-X7DLKIQM.js} +4 -4
- package/bundle/{chunk-BNBC4T45.js → chunk-XZ4ZBDM5.js} +3 -3
- package/bundle/{chunk-24V4A6RP.js → chunk-YI2KSYB4.js} +4 -4
- package/bundle/{chunk-37EX63K4.js → chunk-YWHJJHJ2.js} +6998 -3621
- package/bundle/chunk-YWHJJHJ2.js.map +7 -0
- package/bundle/{chunk-IK4R3RBZ.js → chunk-YZCOA4DC.js} +3 -3
- package/bundle/{chunk-2FZJDMAF.js → chunk-ZGNSCJWH.js} +10 -10
- package/bundle/{chunk-W726UGI6.js → chunk-ZKMKAO75.js} +3 -3
- package/bundle/{chunk-WGWM4IZM.js → chunk-ZT5ZBGWS.js} +4 -4
- package/bundle/{chunk-WGWM4IZM.js.map → chunk-ZT5ZBGWS.js.map} +1 -1
- package/bundle/{commands-XXFU2ZF7.js → commands-2JQ5YTJX.js} +20 -20
- package/bundle/{config-EWDZ234X.js → config-ZEWIM5Z2.js} +8 -7
- package/bundle/{config-show-6J33O4TE.js → config-show-WBJPQPRD.js} +5 -5
- package/bundle/{context-OCS7HLJP.js → context-V75QNXB5.js} +5 -2
- package/bundle/{context-OCS7HLJP.js.map → context-V75QNXB5.js.map} +1 -1
- package/bundle/{daemon-LTDAXNA2.js → daemon-W7VQOSZC.js} +7 -7
- package/bundle/{delegation-tools-YDTWQMZD.js → delegation-tools-VGTRFQBF.js} +13 -11
- package/bundle/{registry-client-VN2MM2HI.js → deploy-5AGIULM2.js} +10 -6
- package/bundle/{deploy-lib-import-RGZJ3CGC.js → deploy-lib-import-ZBDYORN4.js} +5 -3
- package/bundle/{deps-PHSLIA77.js → deps-VB3S3RLF.js} +21 -19
- package/bundle/deps-VB3S3RLF.js.map +7 -0
- package/bundle/{direct-api-transport-OAKYQBJR.js → direct-api-transport-YSROTC35.js} +30 -28
- package/bundle/direct-api-transport-YSROTC35.js.map +7 -0
- package/bundle/{discord-adapter-WUNYPTDE.js → discord-adapter-LKBSIFLV.js} +26 -26
- package/bundle/{dist-7HEHHQI2.js → dist-KMK7TZGN.js} +376 -348
- package/bundle/dist-KMK7TZGN.js.map +7 -0
- package/bundle/{dns-wakeup-F55ALHXJ.js → dns-wakeup-KIURCCFJ.js} +4 -3
- package/bundle/{dns-wakeup-F55ALHXJ.js.map → dns-wakeup-KIURCCFJ.js.map} +1 -1
- package/bundle/{doctor-probes-3SLIUGKS.js → doctor-probes-46UKIROK.js} +4 -3
- package/bundle/{env-schema-MSDP2YBO.js → env-schema-YGHCKX5B.js} +5 -4
- package/bundle/{gossip-CS3G3447.js → gossip-VSEY2HSE.js} +7 -6
- package/bundle/{guardrails-24XK2COI.js → guardrails-U7M6H2GE.js} +6 -5
- package/bundle/{health-check-FRUNRVNQ.js → health-check-ASRLUJE5.js} +6 -2
- package/bundle/health-check-ASRLUJE5.js.map +7 -0
- package/bundle/{heartbeat-system-G4IFQXT6.js → heartbeat-system-MUXLT4E6.js} +7 -6
- package/bundle/{heartbeat-tier3-3ZO3EVXP.js → heartbeat-tier3-636ZMM4E.js} +45 -44
- package/bundle/heartbeat-tier3-636ZMM4E.js.map +7 -0
- package/bundle/{hook-system-X6INNJGV.js → hook-system-Z4XD6IM5.js} +5 -4
- package/bundle/{hotskills-6FQYTJIO.js → hotskills-AOUWVTQB.js} +7 -6
- package/bundle/{install-ZAHTZ5M5.js → install-3GGZUN22.js} +23 -20
- package/bundle/install-3GGZUN22.js.map +7 -0
- package/bundle/{install-manifest-QX7KVDCA.js → install-manifest-624KOB4S.js} +4 -3
- package/bundle/{install-manifest-QX7KVDCA.js.map → install-manifest-624KOB4S.js.map} +1 -1
- package/bundle/{irc-adapter-IEJQKKJF.js → irc-adapter-SA7GLJGR.js} +5 -4
- package/bundle/{irc-adapter-IEJQKKJF.js.map → irc-adapter-SA7GLJGR.js.map} +1 -1
- package/bundle/{irc-config-TTWNYFLH.js → irc-config-PG4X2I4M.js} +6 -5
- package/bundle/{irc-config-TTWNYFLH.js.map → irc-config-PG4X2I4M.js.map} +1 -1
- package/bundle/{kanban-board-J6RO3ZU7.js → kanban-board-4AI5Z6B5.js} +7 -5
- package/bundle/{kanban-channel-5EIXBFSA.js → kanban-channel-JMBYWGWD.js} +8 -6
- package/bundle/{lazy-require-V6EFUATC.js → lazy-require-GURNBC3C.js} +11 -6
- package/bundle/{logger-Y3VILPRH.js → logger-UQJPZMYV.js} +4 -3
- package/bundle/{logs-YS3GDURO.js → logs-2WTDLMB5.js} +5 -5
- package/bundle/{main-chat-YLZDNQPO.js → main-chat-EID5Y6H2.js} +6 -5
- package/bundle/{master-user-Z4M7KCJE.js → master-user-TKA7M2GL.js} +7 -6
- package/bundle/{media-utils-P6RZ2K3U.js → media-utils-X3UN342B.js} +44 -43
- package/bundle/{media-utils-P6RZ2K3U.js.map → media-utils-X3UN342B.js.map} +2 -2
- package/bundle/{message-pipeline-MHEBDJLH.js → message-pipeline-TAWXNEVS.js} +20 -20
- package/bundle/meta.json +9264 -8575
- package/bundle/{migrate-layout-RJJQLVGR.js → migrate-layout-KEAIIN26.js} +8 -4
- package/bundle/migrate-layout-KEAIIN26.js.map +7 -0
- package/bundle/{nerve-VZNMFDGY.js → nerve-TC34H4EL.js} +5 -4
- package/bundle/{notification-VV2OR6NW.js → notification-JQNVGICN.js} +8 -7
- package/bundle/{openrouter-credits-LXC7P4G6.js → openrouter-credits-5Q3EYWE5.js} +5 -4
- package/bundle/{openrouter-credits-LXC7P4G6.js.map → openrouter-credits-5Q3EYWE5.js.map} +1 -1
- package/bundle/{orc-KC4USP55.js → orc-74Z62W7B.js} +4 -4
- package/bundle/{orc-tools-CHRSXSAS.js → orc-tools-GME3DKIN.js} +5 -4
- package/bundle/{paths-EDK6KWHG.js → paths-BAUNPLNJ.js} +6 -2
- package/bundle/{paths-RZF6WDMG.js → paths-MZC2KU2C.js} +3 -2
- package/bundle/{peer-auth-SRONOLNG.js → peer-auth-VRO3JYL5.js} +9 -8
- package/bundle/{peer-client-VOF77T6C.js → peer-client-WLK5GZQS.js} +9 -8
- package/bundle/{peer-client-VOF77T6C.js.map → peer-client-WLK5GZQS.js.map} +1 -1
- package/bundle/{peer-config-FRWLEYQ5.js → peer-config-24WILLCJ.js} +6 -5
- package/bundle/{peer-jwt-XY3XRIA2.js → peer-jwt-ZR6RF3XM.js} +6 -5
- package/bundle/{peer-transport-UBBXTDRP.js → peer-transport-BK5VHI2M.js} +8 -7
- package/bundle/{phase-transport-4NQHZX75.js → phase-transport-7QJM7J6V.js} +18 -16
- package/bundle/{reconcile-2EUXJ6W5.js → reconcile-7N7OE2GU.js} +5 -4
- package/bundle/{reconciler-FFQGV4DO.js → reconciler-7LOOUK43.js} +13 -11
- package/bundle/{reconciler-FFQGV4DO.js.map → reconciler-7LOOUK43.js.map} +1 -1
- package/bundle/{restore-NFDE2RG6.js → restore-MENZ3I3K.js} +13 -9
- package/bundle/{restore-NFDE2RG6.js.map → restore-MENZ3I3K.js.map} +3 -3
- package/bundle/{rollback-MVZ53XS4.js → rollback-JOHY6KWW.js} +5 -5
- package/bundle/{chunk-SKY6656M.js → sandbox-runtime-T7RF4WJD.js} +11 -28
- package/bundle/{chunk-SKY6656M.js.map → sandbox-runtime-T7RF4WJD.js.map} +1 -1
- package/bundle/{self-healer-utils-KD6LV63S.js → self-healer-utils-OR2N6RLD.js} +5 -4
- package/bundle/{self-healer-utils-KD6LV63S.js.map → self-healer-utils-OR2N6RLD.js.map} +1 -1
- package/bundle/{sha-tracker-2DB4R2TW.js → sha-tracker-BXOLWZJL.js} +5 -4
- package/bundle/{skill-session-BPDVA6ZG.js → skill-session-H6EQ4NGN.js} +5 -4
- package/bundle/{skill-session-BPDVA6ZG.js.map → skill-session-H6EQ4NGN.js.map} +1 -1
- package/bundle/{skill-stats-TPD2NROA.js → skill-stats-7O777ZSZ.js} +6 -5
- package/bundle/{skill-watcher-D7QYYYON.js → skill-watcher-ZGLTDPG5.js} +6 -5
- package/bundle/{sleep-GH6DLBJJ.js → sleep-3LFZH727.js} +10 -9
- package/bundle/{soul-bundle-GXLMDBCC.js → soul-bundle-RQ2YQMJW.js} +10 -9
- package/bundle/{spin-4DBYHS3E.js → spin-76K4R6FK.js} +12 -10
- package/bundle/{spin-notifications-IKYJPER5.js → spin-notifications-LD46B4K5.js} +7 -5
- package/bundle/{spin-notifications-IKYJPER5.js.map → spin-notifications-LD46B4K5.js.map} +1 -1
- package/bundle/{spin-types-PLJH3SIK.js → spin-types-MOKTZXGB.js} +5 -4
- package/bundle/{src-SUFZ27S5.js → src-6BTCMOD3.js} +4 -4
- package/bundle/{sse-parser-anthropic-U7ILHOY5.js → sse-parser-anthropic-NV2CGBIT.js} +5 -4
- package/bundle/{sse-parser-anthropic-U7ILHOY5.js.map → sse-parser-anthropic-NV2CGBIT.js.map} +1 -1
- package/bundle/{sse-parser-responses-OI73R3AH.js → sse-parser-responses-FC3PFHQ5.js} +5 -4
- package/bundle/{sse-parser-responses-OI73R3AH.js.map → sse-parser-responses-FC3PFHQ5.js.map} +1 -1
- package/bundle/{ssrf-guard-6GP4QYVA.js → ssrf-guard-E2YPLW6G.js} +5 -4
- package/bundle/{ssrf-guard-6GP4QYVA.js.map → ssrf-guard-E2YPLW6G.js.map} +1 -1
- package/bundle/{start-JT2BPMSW.js → start-HPO5LYJP.js} +5 -5
- package/bundle/start-HPO5LYJP.js.map +7 -0
- package/bundle/{stt-KD3AABKG.js → stt-UE7EOYD7.js} +6 -5
- package/bundle/{subagent-runtime-LVECAUPV.js → subagent-runtime-4X3UHF4H.js} +6 -5
- package/bundle/system-status-PLPWV4RF.js +346 -0
- package/bundle/system-status-PLPWV4RF.js.map +7 -0
- package/bundle/{task-store-2XRDM3AW.js → task-store-RAFMDQ7N.js} +6 -5
- package/bundle/{telegram-adapter-UJ3RYYV6.js → telegram-adapter-PPXKTGOP.js} +35 -35
- package/bundle/{tool-registry-YU6WBXPA.js → tool-registry-NKIPNJZ5.js} +25 -23
- package/bundle/{tool-sandbox-RNNPDR5M.js → tool-sandbox-DQCP3UTU.js} +6 -5
- package/bundle/{transport-config-OK3MZPJK.js → transport-config-SF6GBV47.js} +9 -8
- package/bundle/{update-ENNPRW7Y.js → update-QOOGMFSJ.js} +6 -6
- package/bundle/{update-check-SJB6GV3A.js → update-check-LPZG3K5P.js} +3 -2
- package/bundle/{update-check-SJB6GV3A.js.map → update-check-LPZG3K5P.js.map} +1 -1
- package/bundle/{usage-tracker-HRSGC7QC.js → usage-tracker-TBDM4KE6.js} +2 -2
- package/bundle/{user-registry-6PUJJ5J2.js → user-registry-OYJVAHDD.js} +6 -5
- package/bundle/{wrapper-WLHLG4MI.js → wrapper-W66YICNZ.js} +3 -3
- package/bundle/{ws-peer-client-WHW3RJTD.js → ws-peer-client-G5QHOF6K.js} +15 -14
- package/bundle/{ws-peer-client-WHW3RJTD.js.map → ws-peer-client-G5QHOF6K.js.map} +2 -2
- package/package.json +3 -7
- package/scripts/emergency-deploy.sh +11 -8
- package/scripts/emergency-update.sh +156 -23
- package/templates/config/.env +1 -1
- package/templates/config/models.json +13 -0
- package/bundle/chunk-37EX63K4.js.map +0 -7
- package/bundle/chunk-3QW2K53E.js.map +0 -7
- package/bundle/chunk-72T2Q7IG.js.map +0 -7
- package/bundle/chunk-7RAGSHSH.js.map +0 -7
- package/bundle/chunk-BU7LTI2W.js.map +0 -7
- package/bundle/chunk-C3EYYJN3.js.map +0 -7
- package/bundle/chunk-CAOIIVFP.js +0 -110
- package/bundle/chunk-CAOIIVFP.js.map +0 -7
- package/bundle/chunk-EDZGF6BC.js.map +0 -7
- package/bundle/chunk-H2K23MOF.js.map +0 -7
- package/bundle/chunk-HAZHNBBY.js +0 -156
- package/bundle/chunk-HAZHNBBY.js.map +0 -7
- package/bundle/chunk-IXKQ4JMX.js.map +0 -7
- package/bundle/chunk-JAJ3DUQ2.js +0 -30
- package/bundle/chunk-JAJ3DUQ2.js.map +0 -7
- package/bundle/chunk-KMFR5AVY.js +0 -45
- package/bundle/chunk-KMFR5AVY.js.map +0 -7
- package/bundle/chunk-M6Q3IQ4H.js.map +0 -7
- package/bundle/chunk-MQJG7OJX.js.map +0 -7
- package/bundle/chunk-OY2HAK33.js.map +0 -7
- package/bundle/chunk-P5O6QZDC.js.map +0 -7
- package/bundle/chunk-RJX45XIC.js.map +0 -7
- package/bundle/chunk-S6HEHCCG.js.map +0 -7
- package/bundle/chunk-SESM4GBM.js.map +0 -7
- package/bundle/chunk-SXNY6HC4.js.map +0 -7
- package/bundle/chunk-VJATH7AN.js.map +0 -7
- package/bundle/chunk-ZY6DH2S4.js.map +0 -7
- package/bundle/deps-PHSLIA77.js.map +0 -7
- package/bundle/direct-api-transport-OAKYQBJR.js.map +0 -7
- package/bundle/dist-7HEHHQI2.js.map +0 -7
- package/bundle/health-check-FRUNRVNQ.js.map +0 -7
- package/bundle/heartbeat-tier3-3ZO3EVXP.js.map +0 -7
- package/bundle/install-ZAHTZ5M5.js.map +0 -7
- package/bundle/migrate-layout-RJJQLVGR.js.map +0 -7
- package/bundle/phase-config-V4XETN5F.js +0 -18
- package/bundle/sandbox-runtime-WHACQLLN.js +0 -22
- package/bundle/start-JT2BPMSW.js.map +0 -7
- package/bundle/system-status-XXJWTVJN.js +0 -243
- package/bundle/system-status-XXJWTVJN.js.map +0 -7
- package/bundle/user-registry-6PUJJ5J2.js.map +0 -7
- package/bundle/wrapper-WLHLG4MI.js.map +0 -7
- /package/bundle/{agent-api-rate-limit-4GEZ4YN5.js.map → agent-api-rate-limit-VENFGOAD.js.map} +0 -0
- /package/bundle/{agent-registry-563P4EUJ.js.map → agent-registry-DL7UT272.js.map} +0 -0
- /package/bundle/{bridge-lock-transport-LXCF2IVN.js.map → bridge-lock-transport-BJAMHMXW.js.map} +0 -0
- /package/bundle/{browser-2VZOGOGX.js.map → browser-PT54UWSW.js.map} +0 -0
- /package/bundle/{capability-WXEA2WFK.js.map → capability-EKPGHQIO.js.map} +0 -0
- /package/bundle/{chunk-4PIVWXUJ.js.map → chunk-2ZD7VQRW.js.map} +0 -0
- /package/bundle/{chunk-T7TAWGBX.js.map → chunk-52PQM4EZ.js.map} +0 -0
- /package/bundle/{chunk-2RGR3LSV.js.map → chunk-5P5HF7IJ.js.map} +0 -0
- /package/bundle/{chunk-OOKNHOCB.js.map → chunk-6S3G6GPO.js.map} +0 -0
- /package/bundle/{chunk-E7MV7WFT.js.map → chunk-6VTHSN4V.js.map} +0 -0
- /package/bundle/{chunk-NGZVJ52F.js.map → chunk-76YN7O3U.js.map} +0 -0
- /package/bundle/{chunk-43DKPXTP.js.map → chunk-7LORCJCQ.js.map} +0 -0
- /package/bundle/{chunk-HDOFJVFS.js.map → chunk-7OI46MH7.js.map} +0 -0
- /package/bundle/{chunk-CB6S3ZRF.js.map → chunk-AFFW2LRY.js.map} +0 -0
- /package/bundle/{chunk-TCI6FZTP.js.map → chunk-AHJDG6OM.js.map} +0 -0
- /package/bundle/{chunk-YME7NRGP.js.map → chunk-B2TIRDZC.js.map} +0 -0
- /package/bundle/{chunk-SSCGWDIC.js.map → chunk-BWJ37KMW.js.map} +0 -0
- /package/bundle/{chunk-ULO2PX3T.js.map → chunk-CCZ43JB7.js.map} +0 -0
- /package/bundle/{chunk-FVUL44T4.js.map → chunk-CNENVY37.js.map} +0 -0
- /package/bundle/{chunk-J5NOL4DB.js.map → chunk-DJOSXXM2.js.map} +0 -0
- /package/bundle/{chunk-DNDYD5SL.js.map → chunk-E7DZYCSF.js.map} +0 -0
- /package/bundle/{chunk-GCFIK6OB.js.map → chunk-FSGICOCX.js.map} +0 -0
- /package/bundle/{chunk-FJF42RZY.js.map → chunk-GHRLO2UL.js.map} +0 -0
- /package/bundle/{chunk-7WHXTCVD.js.map → chunk-HWFN7JGU.js.map} +0 -0
- /package/bundle/{chunk-KBPVJGD7.js.map → chunk-IXGDDDAB.js.map} +0 -0
- /package/bundle/{chunk-YEOZN5IE.js.map → chunk-JRGEEGZF.js.map} +0 -0
- /package/bundle/{chunk-56D3Y44D.js.map → chunk-KLG4SCF7.js.map} +0 -0
- /package/bundle/{chunk-ASYX43OU.js.map → chunk-LB43Q7G6.js.map} +0 -0
- /package/bundle/{chunk-TVSPVZTX.js.map → chunk-LN5MNDSA.js.map} +0 -0
- /package/bundle/{chunk-FIAVVKGN.js.map → chunk-MTE32OQH.js.map} +0 -0
- /package/bundle/{chunk-MV5KOWOR.js.map → chunk-N3Q3TASM.js.map} +0 -0
- /package/bundle/{chunk-IQKADER4.js.map → chunk-O4YBJS2K.js.map} +0 -0
- /package/bundle/{chunk-5V4VHKEA.js.map → chunk-OT6HLPEA.js.map} +0 -0
- /package/bundle/{chunk-V6CV3QPH.js.map → chunk-OWPQIBAO.js.map} +0 -0
- /package/bundle/{chunk-N5VROZ7A.js.map → chunk-QMP2KC4W.js.map} +0 -0
- /package/bundle/{chunk-4HNCOQSK.js.map → chunk-QOGZ7BFL.js.map} +0 -0
- /package/bundle/{chunk-2LKQV2ND.js.map → chunk-R23FHZRY.js.map} +0 -0
- /package/bundle/{chunk-TY26WMQY.js.map → chunk-RCWQ34QR.js.map} +0 -0
- /package/bundle/{chunk-ZOCEBV62.js.map → chunk-UU3RLJSD.js.map} +0 -0
- /package/bundle/{chunk-WP7FZHMI.js.map → chunk-W2PSVV2T.js.map} +0 -0
- /package/bundle/{chunk-V2QIAXWZ.js.map → chunk-WEGFRA6G.js.map} +0 -0
- /package/bundle/{chunk-O4GKI3Q3.js.map → chunk-X7DLKIQM.js.map} +0 -0
- /package/bundle/{chunk-BNBC4T45.js.map → chunk-XZ4ZBDM5.js.map} +0 -0
- /package/bundle/{chunk-24V4A6RP.js.map → chunk-YI2KSYB4.js.map} +0 -0
- /package/bundle/{chunk-IK4R3RBZ.js.map → chunk-YZCOA4DC.js.map} +0 -0
- /package/bundle/{chunk-2FZJDMAF.js.map → chunk-ZGNSCJWH.js.map} +0 -0
- /package/bundle/{chunk-W726UGI6.js.map → chunk-ZKMKAO75.js.map} +0 -0
- /package/bundle/{commands-XXFU2ZF7.js.map → commands-2JQ5YTJX.js.map} +0 -0
- /package/bundle/{config-EWDZ234X.js.map → config-ZEWIM5Z2.js.map} +0 -0
- /package/bundle/{config-show-6J33O4TE.js.map → config-show-WBJPQPRD.js.map} +0 -0
- /package/bundle/{daemon-LTDAXNA2.js.map → daemon-W7VQOSZC.js.map} +0 -0
- /package/bundle/{delegation-tools-YDTWQMZD.js.map → delegation-tools-VGTRFQBF.js.map} +0 -0
- /package/bundle/{deploy-lib-import-RGZJ3CGC.js.map → deploy-5AGIULM2.js.map} +0 -0
- /package/bundle/{doctor-probes-3SLIUGKS.js.map → deploy-lib-import-ZBDYORN4.js.map} +0 -0
- /package/bundle/{discord-adapter-WUNYPTDE.js.map → discord-adapter-LKBSIFLV.js.map} +0 -0
- /package/bundle/{env-schema-MSDP2YBO.js.map → doctor-probes-46UKIROK.js.map} +0 -0
- /package/bundle/{gossip-CS3G3447.js.map → env-schema-YGHCKX5B.js.map} +0 -0
- /package/bundle/{guardrails-24XK2COI.js.map → gossip-VSEY2HSE.js.map} +0 -0
- /package/bundle/{heartbeat-system-G4IFQXT6.js.map → guardrails-U7M6H2GE.js.map} +0 -0
- /package/bundle/{hook-system-X6INNJGV.js.map → heartbeat-system-MUXLT4E6.js.map} +0 -0
- /package/bundle/{hotskills-6FQYTJIO.js.map → hook-system-Z4XD6IM5.js.map} +0 -0
- /package/bundle/{kanban-board-J6RO3ZU7.js.map → hotskills-AOUWVTQB.js.map} +0 -0
- /package/bundle/{kanban-channel-5EIXBFSA.js.map → kanban-board-4AI5Z6B5.js.map} +0 -0
- /package/bundle/{lazy-require-V6EFUATC.js.map → kanban-channel-JMBYWGWD.js.map} +0 -0
- /package/bundle/{logger-Y3VILPRH.js.map → lazy-require-GURNBC3C.js.map} +0 -0
- /package/bundle/{main-chat-YLZDNQPO.js.map → logger-UQJPZMYV.js.map} +0 -0
- /package/bundle/{logs-YS3GDURO.js.map → logs-2WTDLMB5.js.map} +0 -0
- /package/bundle/{master-user-Z4M7KCJE.js.map → main-chat-EID5Y6H2.js.map} +0 -0
- /package/bundle/{message-pipeline-MHEBDJLH.js.map → master-user-TKA7M2GL.js.map} +0 -0
- /package/bundle/{nerve-VZNMFDGY.js.map → message-pipeline-TAWXNEVS.js.map} +0 -0
- /package/bundle/{notification-VV2OR6NW.js.map → nerve-TC34H4EL.js.map} +0 -0
- /package/bundle/{orc-tools-CHRSXSAS.js.map → notification-JQNVGICN.js.map} +0 -0
- /package/bundle/{orc-KC4USP55.js.map → orc-74Z62W7B.js.map} +0 -0
- /package/bundle/{paths-EDK6KWHG.js.map → orc-tools-GME3DKIN.js.map} +0 -0
- /package/bundle/{paths-RZF6WDMG.js.map → paths-BAUNPLNJ.js.map} +0 -0
- /package/bundle/{peer-auth-SRONOLNG.js.map → paths-MZC2KU2C.js.map} +0 -0
- /package/bundle/{peer-config-FRWLEYQ5.js.map → peer-auth-VRO3JYL5.js.map} +0 -0
- /package/bundle/{peer-jwt-XY3XRIA2.js.map → peer-config-24WILLCJ.js.map} +0 -0
- /package/bundle/{peer-transport-UBBXTDRP.js.map → peer-jwt-ZR6RF3XM.js.map} +0 -0
- /package/bundle/{phase-config-V4XETN5F.js.map → peer-transport-BK5VHI2M.js.map} +0 -0
- /package/bundle/{phase-transport-4NQHZX75.js.map → phase-transport-7QJM7J6V.js.map} +0 -0
- /package/bundle/{reconcile-2EUXJ6W5.js.map → reconcile-7N7OE2GU.js.map} +0 -0
- /package/bundle/{registry-client-VN2MM2HI.js.map → rollback-JOHY6KWW.js.map} +0 -0
- /package/bundle/{rollback-MVZ53XS4.js.map → sha-tracker-BXOLWZJL.js.map} +0 -0
- /package/bundle/{sandbox-runtime-WHACQLLN.js.map → skill-stats-7O777ZSZ.js.map} +0 -0
- /package/bundle/{sha-tracker-2DB4R2TW.js.map → skill-watcher-ZGLTDPG5.js.map} +0 -0
- /package/bundle/{skill-stats-TPD2NROA.js.map → sleep-3LFZH727.js.map} +0 -0
- /package/bundle/{skill-watcher-D7QYYYON.js.map → soul-bundle-RQ2YQMJW.js.map} +0 -0
- /package/bundle/{sleep-GH6DLBJJ.js.map → spin-76K4R6FK.js.map} +0 -0
- /package/bundle/{soul-bundle-GXLMDBCC.js.map → spin-types-MOKTZXGB.js.map} +0 -0
- /package/bundle/{spin-4DBYHS3E.js.map → src-6BTCMOD3.js.map} +0 -0
- /package/bundle/{spin-types-PLJH3SIK.js.map → stt-UE7EOYD7.js.map} +0 -0
- /package/bundle/{src-SUFZ27S5.js.map → subagent-runtime-4X3UHF4H.js.map} +0 -0
- /package/bundle/{stt-KD3AABKG.js.map → task-store-RAFMDQ7N.js.map} +0 -0
- /package/bundle/{telegram-adapter-UJ3RYYV6.js.map → telegram-adapter-PPXKTGOP.js.map} +0 -0
- /package/bundle/{subagent-runtime-LVECAUPV.js.map → tool-registry-NKIPNJZ5.js.map} +0 -0
- /package/bundle/{task-store-2XRDM3AW.js.map → tool-sandbox-DQCP3UTU.js.map} +0 -0
- /package/bundle/{tool-registry-YU6WBXPA.js.map → transport-config-SF6GBV47.js.map} +0 -0
- /package/bundle/{tool-sandbox-RNNPDR5M.js.map → update-QOOGMFSJ.js.map} +0 -0
- /package/bundle/{transport-config-OK3MZPJK.js.map → usage-tracker-TBDM4KE6.js.map} +0 -0
- /package/bundle/{update-ENNPRW7Y.js.map → user-registry-OYJVAHDD.js.map} +0 -0
- /package/bundle/{usage-tracker-HRSGC7QC.js.map → wrapper-W66YICNZ.js.map} +0 -0
package/bundle/abtars-rss.js.map
CHANGED
|
@@ -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 {
|
|
5
|
-
"mappings": "
|
|
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
|
}
|
package/bundle/abtars-task.js
CHANGED
|
@@ -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-
|
|
5
|
+
} from "./chunk-WTIGZO3N.js";
|
|
6
6
|
import {
|
|
7
7
|
readEntries,
|
|
8
8
|
readEntry,
|
|
9
9
|
removeEntry,
|
|
10
10
|
writeEntry
|
|
11
|
-
} from "./chunk-
|
|
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-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
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": "
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["readEntries"]
|
|
7
7
|
}
|
package/bundle/abtars-todo.js
CHANGED
|
@@ -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": "
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|