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
|
@@ -2,36 +2,37 @@
|
|
|
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_ws
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-63A7ZRIH.js";
|
|
6
6
|
import {
|
|
7
7
|
transcribeAudio
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-UU3RLJSD.js";
|
|
9
9
|
import {
|
|
10
10
|
ModelNotFoundError
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-YWHJJHJ2.js";
|
|
12
12
|
import {
|
|
13
13
|
abmind
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-6IB3GVXK.js";
|
|
15
15
|
import {
|
|
16
16
|
fire,
|
|
17
17
|
hasHooks
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import {
|
|
20
|
-
handleNLMCommand
|
|
21
|
-
} from "./chunk-HAZHNBBY.js";
|
|
18
|
+
} from "./chunk-HWFN7JGU.js";
|
|
22
19
|
import {
|
|
23
20
|
sanitizeOutbound
|
|
24
21
|
} from "./chunk-YWZPKBO6.js";
|
|
25
22
|
import {
|
|
26
23
|
buildSoulBundle,
|
|
27
24
|
init_soul_bundle
|
|
28
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-KLG4SCF7.js";
|
|
26
|
+
import {
|
|
27
|
+
init_user_registry,
|
|
28
|
+
loadUsers
|
|
29
|
+
} from "./chunk-7LORCJCQ.js";
|
|
29
30
|
import {
|
|
30
31
|
init_spin_types,
|
|
31
32
|
parseSessionType,
|
|
32
33
|
sessionType,
|
|
33
34
|
typeLabel
|
|
34
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-52PQM4EZ.js";
|
|
35
36
|
import {
|
|
36
37
|
init_bridge_lock_transport,
|
|
37
38
|
readAndClearRestartReason,
|
|
@@ -39,14 +40,10 @@ import {
|
|
|
39
40
|
updateBridgeLockField,
|
|
40
41
|
writeForceSleep,
|
|
41
42
|
writeSleepStatus
|
|
42
|
-
} from "./chunk-
|
|
43
|
-
import {
|
|
44
|
-
init_user_registry,
|
|
45
|
-
loadUsers
|
|
46
|
-
} from "./chunk-43DKPXTP.js";
|
|
43
|
+
} from "./chunk-ZKMKAO75.js";
|
|
47
44
|
import {
|
|
48
45
|
readEntries
|
|
49
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-7OI46MH7.js";
|
|
50
47
|
import {
|
|
51
48
|
init_local_time,
|
|
52
49
|
localTime
|
|
@@ -54,11 +51,11 @@ import {
|
|
|
54
51
|
import {
|
|
55
52
|
getEnv,
|
|
56
53
|
init_env_schema
|
|
57
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-BWJ37KMW.js";
|
|
58
55
|
import {
|
|
59
56
|
init_log_and_swallow,
|
|
60
57
|
logAndSwallow
|
|
61
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-W2PSVV2T.js";
|
|
62
59
|
import {
|
|
63
60
|
init_logger,
|
|
64
61
|
logDebug,
|
|
@@ -66,20 +63,20 @@ import {
|
|
|
66
63
|
logInfo,
|
|
67
64
|
logTrace,
|
|
68
65
|
logWarn
|
|
69
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-6S3G6GPO.js";
|
|
70
67
|
import {
|
|
71
68
|
abtarsHome,
|
|
72
69
|
init_paths
|
|
73
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-7XXISOHU.js";
|
|
74
71
|
import {
|
|
75
72
|
__commonJS,
|
|
76
73
|
__require,
|
|
77
74
|
__toESM
|
|
78
75
|
} from "./chunk-7K2YZTLD.js";
|
|
79
76
|
|
|
80
|
-
// node_modules
|
|
77
|
+
// node_modules/@andresaya/edge-tts/dist/config/constants.js
|
|
81
78
|
var require_constants = __commonJS({
|
|
82
|
-
"node_modules
|
|
79
|
+
"node_modules/@andresaya/edge-tts/dist/config/constants.js"(exports) {
|
|
83
80
|
"use strict";
|
|
84
81
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
85
82
|
exports.Constants = void 0;
|
|
@@ -130,9 +127,9 @@ var require_constants = __commonJS({
|
|
|
130
127
|
}
|
|
131
128
|
});
|
|
132
129
|
|
|
133
|
-
// node_modules
|
|
130
|
+
// node_modules/@andresaya/edge-tts/dist/services/EdgeTTS.js
|
|
134
131
|
var require_EdgeTTS = __commonJS({
|
|
135
|
-
"node_modules
|
|
132
|
+
"node_modules/@andresaya/edge-tts/dist/services/EdgeTTS.js"(exports) {
|
|
136
133
|
"use strict";
|
|
137
134
|
var __importDefault = exports && exports.__importDefault || function(mod) {
|
|
138
135
|
return mod && mod.__esModule ? mod : { "default": mod };
|
|
@@ -624,9 +621,9 @@ ${SSML_text}`;
|
|
|
624
621
|
}
|
|
625
622
|
});
|
|
626
623
|
|
|
627
|
-
// node_modules
|
|
624
|
+
// node_modules/@andresaya/edge-tts/dist/index.js
|
|
628
625
|
var require_dist = __commonJS({
|
|
629
|
-
"node_modules
|
|
626
|
+
"node_modules/@andresaya/edge-tts/dist/index.js"(exports) {
|
|
630
627
|
"use strict";
|
|
631
628
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
632
629
|
exports.Constants = exports.EdgeTTS = void 0;
|
|
@@ -825,7 +822,7 @@ var commandMiddleware = async (ctx, next) => {
|
|
|
825
822
|
updateCtxStart,
|
|
826
823
|
conversationBuffer
|
|
827
824
|
} = deps;
|
|
828
|
-
const { spin } = await import("./spin-
|
|
825
|
+
const { spin } = await import("./spin-76K4R6FK.js");
|
|
829
826
|
const registry = loadUsers();
|
|
830
827
|
const resolvedUserId = msg.userId;
|
|
831
828
|
const user = registry.byUserId.get(resolvedUserId);
|
|
@@ -919,7 +916,7 @@ var busyGuardMiddleware = async (ctx, next) => {
|
|
|
919
916
|
const { msg, adapter, deps } = ctx;
|
|
920
917
|
const userId = msg.userId;
|
|
921
918
|
const activeId = deps.sessionManager.getActiveSessionId(userId, msg.platform);
|
|
922
|
-
const { spin } = await import("./spin-
|
|
919
|
+
const { spin } = await import("./spin-76K4R6FK.js");
|
|
923
920
|
const entry = spin.getSessionById(activeId);
|
|
924
921
|
if (!entry) {
|
|
925
922
|
await next();
|
|
@@ -1051,7 +1048,7 @@ async function buildPrompt(msg, text, deps, registry) {
|
|
|
1051
1048
|
const userId = msg.userId;
|
|
1052
1049
|
const sessionKey = deps.sessionManager.getActiveSessionId(userId, msg.platform);
|
|
1053
1050
|
const bufKey = `${msg.platform}:${channelId}`;
|
|
1054
|
-
const { spin } = await import("./spin-
|
|
1051
|
+
const { spin } = await import("./spin-76K4R6FK.js");
|
|
1055
1052
|
const pSession = spin.getSessionById(sessionKey);
|
|
1056
1053
|
let prompt = `[${localTime()}] ${text}`;
|
|
1057
1054
|
let imageContent;
|
|
@@ -1399,7 +1396,7 @@ function setIdleCompactReset(fn) {
|
|
|
1399
1396
|
async function resetAndPrepare(opts) {
|
|
1400
1397
|
await opts.transport.resetSession(opts.sessionKey);
|
|
1401
1398
|
if (opts.conversationBuffer && opts.bufKey) opts.conversationBuffer.clear(opts.bufKey);
|
|
1402
|
-
const { spin } = await import("./spin-
|
|
1399
|
+
const { spin } = await import("./spin-76K4R6FK.js");
|
|
1403
1400
|
const pSession = spin.getSessionById(opts.sessionKey);
|
|
1404
1401
|
if (pSession) {
|
|
1405
1402
|
pSession.seen = false;
|
|
@@ -1429,8 +1426,8 @@ async function handleInboundMessage(msg, adapter, deps) {
|
|
|
1429
1426
|
return;
|
|
1430
1427
|
}
|
|
1431
1428
|
}
|
|
1432
|
-
const { spin } = await import("./spin-
|
|
1433
|
-
const { sessionType: sessionType2 } = await import("./spin-types-
|
|
1429
|
+
const { spin } = await import("./spin-76K4R6FK.js");
|
|
1430
|
+
const { sessionType: sessionType2 } = await import("./spin-types-MOKTZXGB.js");
|
|
1434
1431
|
const switchedSession = spin.getActiveSession(msg.userId, msg.platform);
|
|
1435
1432
|
const switchedToLive = switchedSession?.transport && sessionType2(switchedSession) !== "A" && switchedSession.status === "ready";
|
|
1436
1433
|
if (switchedToLive) {
|
|
@@ -1522,7 +1519,7 @@ ${prompt}`;
|
|
|
1522
1519
|
const sessionTransport = activeSession.transport ?? transport;
|
|
1523
1520
|
logDebug(TAG3, `Route: session=${activeSessionId} type=${sessionType2(activeSession)} transport=${activeSession.transport ? "session" : "main"}`);
|
|
1524
1521
|
if ("sandboxPolicy" in sessionTransport) {
|
|
1525
|
-
const { buildPolicy } = await import("./tool-sandbox-
|
|
1522
|
+
const { buildPolicy } = await import("./tool-sandbox-DQCP3UTU.js");
|
|
1526
1523
|
sessionTransport.sandboxPolicy = buildPolicy("owner");
|
|
1527
1524
|
}
|
|
1528
1525
|
if ("isPaused" in sessionTransport) {
|
|
@@ -1865,7 +1862,7 @@ function registerCommand(name, handler) {
|
|
|
1865
1862
|
registerExact(name, handler);
|
|
1866
1863
|
}
|
|
1867
1864
|
async function handleCommand(text, ctx) {
|
|
1868
|
-
const isMaster = !ctx.userId || ctx.userId === "master" || (await import("./user-registry-
|
|
1865
|
+
const isMaster = !ctx.userId || ctx.userId === "master" || (await import("./user-registry-OYJVAHDD.js")).loadUsers().byUserId.get(ctx.userId)?.role === "master";
|
|
1869
1866
|
if (!isMaster) {
|
|
1870
1867
|
const cmd = text.split(/\s/)[0];
|
|
1871
1868
|
if (cmd.startsWith("/") && !NON_MASTER_COMMANDS.has(cmd)) {
|
|
@@ -1899,7 +1896,7 @@ Type /help for available commands.`);
|
|
|
1899
1896
|
return false;
|
|
1900
1897
|
}
|
|
1901
1898
|
async function triggerNewSession(ctx, reason = "new-session") {
|
|
1902
|
-
const { hasHooks: hasHooks2, fire: fireHook } = await import("./hook-system-
|
|
1899
|
+
const { hasHooks: hasHooks2, fire: fireHook } = await import("./hook-system-Z4XD6IM5.js");
|
|
1903
1900
|
if (hasHooks2("SessionEnd")) {
|
|
1904
1901
|
await fireHook("SessionEnd", { event: "SessionEnd", timestamp: (/* @__PURE__ */ new Date()).toISOString(), sessionKey: ctx.sessionKey, platform: ctx.platform, userId: ctx.userId, reason }).catch((err) => logAndSwallow(TAG4, "fireHook session", err));
|
|
1905
1902
|
}
|
|
@@ -1917,12 +1914,12 @@ async function triggerNewSession(ctx, reason = "new-session") {
|
|
|
1917
1914
|
}
|
|
1918
1915
|
}
|
|
1919
1916
|
async function triggerResetSession(ctx) {
|
|
1920
|
-
const { hasHooks: hasHooks2, fire: fireHook } = await import("./hook-system-
|
|
1917
|
+
const { hasHooks: hasHooks2, fire: fireHook } = await import("./hook-system-Z4XD6IM5.js");
|
|
1921
1918
|
if (hasHooks2("SessionEnd")) {
|
|
1922
1919
|
await fireHook("SessionEnd", { event: "SessionEnd", timestamp: (/* @__PURE__ */ new Date()).toISOString(), sessionKey: ctx.sessionKey, platform: ctx.platform, userId: ctx.userId, reason: "reset-transport" }).catch((err) => logAndSwallow(TAG4, "fireHook session", err));
|
|
1923
1920
|
}
|
|
1924
1921
|
await ctx.idleSave.save(ctx.sessionKey, ctx.chatId);
|
|
1925
|
-
const { clearTransportCache } = await import("./transport-config-
|
|
1922
|
+
const { clearTransportCache } = await import("./transport-config-SF6GBV47.js");
|
|
1926
1923
|
clearTransportCache();
|
|
1927
1924
|
if (ctx.rebuildTransport) await ctx.rebuildTransport();
|
|
1928
1925
|
await resetAndPrepare({
|
|
@@ -1986,7 +1983,7 @@ var TAG5 = "cmd";
|
|
|
1986
1983
|
async function handleNewReset(text, ctx) {
|
|
1987
1984
|
const isResetDefault = text.trim().toLowerCase() === "/reset default";
|
|
1988
1985
|
if (isResetDefault) {
|
|
1989
|
-
const { resetToDefaults } = await import("./transport-config-
|
|
1986
|
+
const { resetToDefaults } = await import("./transport-config-SF6GBV47.js");
|
|
1990
1987
|
resetToDefaults();
|
|
1991
1988
|
} else {
|
|
1992
1989
|
try {
|
|
@@ -2026,7 +2023,7 @@ async function handleEmergencyAlias(_text, ctx) {
|
|
|
2026
2023
|
return handleModels("/model emergency", ctx);
|
|
2027
2024
|
}
|
|
2028
2025
|
async function handleModels(text, ctx) {
|
|
2029
|
-
const { loadTransport, resolveAgent, getModelsForProvider, writeTransportConfig } = await import("./transport-config-
|
|
2026
|
+
const { loadTransport, resolveAgent, getModelsForProvider, writeTransportConfig } = await import("./transport-config-SF6GBV47.js");
|
|
2030
2027
|
const tc = loadTransport();
|
|
2031
2028
|
const prof = tc ? resolveAgent("professor", tc) : null;
|
|
2032
2029
|
const currentModel = ("currentModel" in ctx.transport ? ctx.transport.currentModel : void 0) ?? prof?.model ?? "unknown";
|
|
@@ -2044,8 +2041,8 @@ async function handleModels(text, ctx) {
|
|
|
2044
2041
|
if (tc) {
|
|
2045
2042
|
const hmProvider = tc.hailMary ? tc.providers[tc.hailMary.provider] : void 0;
|
|
2046
2043
|
if (hmProvider) {
|
|
2047
|
-
const { validateProviderReady, formatValidationError } = await import("./transport-config-
|
|
2048
|
-
const { getEnv: getEnv2 } = await import("./env-schema-
|
|
2044
|
+
const { validateProviderReady, formatValidationError } = await import("./transport-config-SF6GBV47.js");
|
|
2045
|
+
const { getEnv: getEnv2 } = await import("./env-schema-YGHCKX5B.js");
|
|
2049
2046
|
const result = validateProviderReady(tc.hailMary.provider, hmProvider, getEnv2());
|
|
2050
2047
|
if (!result.ok) {
|
|
2051
2048
|
await ctx.reply(formatValidationError(tc.hailMary.provider, result));
|
|
@@ -2058,7 +2055,7 @@ async function handleModels(text, ctx) {
|
|
|
2058
2055
|
return true;
|
|
2059
2056
|
}
|
|
2060
2057
|
if (arg === "restore") {
|
|
2061
|
-
const { restorePrevious } = await import("./transport-config-
|
|
2058
|
+
const { restorePrevious } = await import("./transport-config-SF6GBV47.js");
|
|
2062
2059
|
const result = restorePrevious();
|
|
2063
2060
|
if (!result.ok) {
|
|
2064
2061
|
await ctx.reply(`\u274C ${result.error}`);
|
|
@@ -2070,7 +2067,7 @@ async function handleModels(text, ctx) {
|
|
|
2070
2067
|
return true;
|
|
2071
2068
|
}
|
|
2072
2069
|
if (arg === "default") {
|
|
2073
|
-
const { resetToDefaults } = await import("./transport-config-
|
|
2070
|
+
const { resetToDefaults } = await import("./transport-config-SF6GBV47.js");
|
|
2074
2071
|
if (!resetToDefaults()) {
|
|
2075
2072
|
await ctx.reply("\u274C Factory config not found \u2014 run abtars install to restore.");
|
|
2076
2073
|
return true;
|
|
@@ -2096,7 +2093,7 @@ async function handleModels(text, ctx) {
|
|
|
2096
2093
|
return true;
|
|
2097
2094
|
}
|
|
2098
2095
|
const endpoint = prof.provider.endpoint ?? "http://localhost:11434/v1";
|
|
2099
|
-
const apiKey = prof.provider.apiKeyEnv ? (await import("./env-schema-
|
|
2096
|
+
const apiKey = prof.provider.apiKeyEnv ? (await import("./env-schema-YGHCKX5B.js")).getEnv().getApiKey(prof.provider.apiKeyEnv) : void 0;
|
|
2100
2097
|
const models = /* @__PURE__ */ new Set();
|
|
2101
2098
|
for (const [, agent] of Object.entries(tc.agents)) {
|
|
2102
2099
|
if (agent.provider === prof.providerName) models.add(agent.model);
|
|
@@ -2107,7 +2104,7 @@ async function handleModels(text, ctx) {
|
|
|
2107
2104
|
if (tc.hailMary?.provider === prof.providerName) models.add(tc.hailMary.model);
|
|
2108
2105
|
await ctx.reply(`\u{1FA7A} Checking ${models.size} models on ${prof.providerName}...`);
|
|
2109
2106
|
const results = [];
|
|
2110
|
-
const { loadModels } = await import("./transport-config-
|
|
2107
|
+
const { loadModels } = await import("./transport-config-SF6GBV47.js");
|
|
2111
2108
|
const catalog = loadModels();
|
|
2112
2109
|
for (const model of models) {
|
|
2113
2110
|
try {
|
|
@@ -2145,7 +2142,7 @@ async function handleModels(text, ctx) {
|
|
|
2145
2142
|
}
|
|
2146
2143
|
const { writeFileSync: writeFileSync2 } = await import("node:fs");
|
|
2147
2144
|
const { join: join4 } = await import("node:path");
|
|
2148
|
-
const { configDir } = await import("./transport-config-
|
|
2145
|
+
const { configDir } = await import("./transport-config-SF6GBV47.js");
|
|
2149
2146
|
writeFileSync2(join4(configDir(), "models.json"), JSON.stringify(catalog, null, 2) + "\n");
|
|
2150
2147
|
await ctx.reply(`\u{1FA7A} Model Health:
|
|
2151
2148
|
${results.join("\n")}`);
|
|
@@ -2168,8 +2165,8 @@ ${results.join("\n")}`);
|
|
|
2168
2165
|
return true;
|
|
2169
2166
|
}
|
|
2170
2167
|
{
|
|
2171
|
-
const { validateProviderReady, formatValidationError } = await import("./transport-config-
|
|
2172
|
-
const { getEnv: getEnv2 } = await import("./env-schema-
|
|
2168
|
+
const { validateProviderReady, formatValidationError } = await import("./transport-config-SF6GBV47.js");
|
|
2169
|
+
const { getEnv: getEnv2 } = await import("./env-schema-YGHCKX5B.js");
|
|
2173
2170
|
const result = validateProviderReady(prof.providerName, prof.provider, getEnv2());
|
|
2174
2171
|
if (!result.ok) {
|
|
2175
2172
|
await ctx.reply(formatValidationError(prof.providerName, result));
|
|
@@ -2177,7 +2174,7 @@ ${results.join("\n")}`);
|
|
|
2177
2174
|
}
|
|
2178
2175
|
}
|
|
2179
2176
|
tc.agents["professor"].model = newModel;
|
|
2180
|
-
const { cleanDemotedModels } = await import("./transport-config-
|
|
2177
|
+
const { cleanDemotedModels } = await import("./transport-config-SF6GBV47.js");
|
|
2181
2178
|
cleanDemotedModels(tc, newModel);
|
|
2182
2179
|
writeTransportConfig(tc, `professor model \u2192 ${newModel}`);
|
|
2183
2180
|
if ("setModel" in ctx.transport) {
|
|
@@ -2188,7 +2185,7 @@ ${results.join("\n")}`);
|
|
|
2188
2185
|
}
|
|
2189
2186
|
if (arg === "list" || arg.startsWith("list ")) {
|
|
2190
2187
|
const providerArg = arg.slice(5).trim();
|
|
2191
|
-
const { getAvailableProviders, getModelsForProvider: getModels } = await import("./transport-config-
|
|
2188
|
+
const { getAvailableProviders, getModelsForProvider: getModels } = await import("./transport-config-SF6GBV47.js");
|
|
2192
2189
|
if (!tc) {
|
|
2193
2190
|
await ctx.reply("\u274C transport.json not loaded");
|
|
2194
2191
|
return true;
|
|
@@ -2246,8 +2243,8 @@ Use /model quick <name> to switch.`);
|
|
|
2246
2243
|
await ctx.reply(`\u274C Provider "${providerName}" not found. Available: ${Object.keys(tc.providers).join(", ")}`);
|
|
2247
2244
|
return true;
|
|
2248
2245
|
}
|
|
2249
|
-
const { validateProviderReady, formatValidationError, loadProviderDefaults } = await import("./transport-config-
|
|
2250
|
-
const { getEnv: getEnv2 } = await import("./env-schema-
|
|
2246
|
+
const { validateProviderReady, formatValidationError, loadProviderDefaults } = await import("./transport-config-SF6GBV47.js");
|
|
2247
|
+
const { getEnv: getEnv2 } = await import("./env-schema-YGHCKX5B.js");
|
|
2251
2248
|
const validation = validateProviderReady(providerName, provider2, getEnv2());
|
|
2252
2249
|
if (!validation.ok) {
|
|
2253
2250
|
await ctx.reply(formatValidationError(providerName, validation));
|
|
@@ -2345,7 +2342,7 @@ async function handleDoctor(_text, ctx) {
|
|
|
2345
2342
|
const arg = _text.replace(/^\/(doctor|health)\s*/i, "").trim().toLowerCase();
|
|
2346
2343
|
if (arg === "fix" || arg === "fix-full") {
|
|
2347
2344
|
try {
|
|
2348
|
-
const { runFixes, runAllProbes: runAllProbes2, renderHuman: renderHuman2 } = await import("./doctor-probes-
|
|
2345
|
+
const { runFixes, runAllProbes: runAllProbes2, renderHuman: renderHuman2 } = await import("./doctor-probes-46UKIROK.js");
|
|
2349
2346
|
const fixes = await runFixes();
|
|
2350
2347
|
const fixLines = fixes.map((f) => ` ${f.success ? "+" : "x"} ${f.action}`).join("\n");
|
|
2351
2348
|
const output2 = await runAllProbes2();
|
|
@@ -2359,14 +2356,14 @@ ${renderHuman2(output2)}`);
|
|
|
2359
2356
|
return true;
|
|
2360
2357
|
}
|
|
2361
2358
|
await ctx.reply("\u{1FA7A} Running diagnostics...");
|
|
2362
|
-
const { runAllProbes, renderHuman } = await import("./doctor-probes-
|
|
2359
|
+
const { runAllProbes, renderHuman } = await import("./doctor-probes-46UKIROK.js");
|
|
2363
2360
|
const output = await runAllProbes();
|
|
2364
2361
|
await ctx.reply(renderHuman(output));
|
|
2365
2362
|
return true;
|
|
2366
2363
|
}
|
|
2367
2364
|
async function handleStatus(_text, ctx) {
|
|
2368
2365
|
if (ctx.phaseHealth && ctx.registry) {
|
|
2369
|
-
const { getSystemStatus, renderStatusText } = await import("./system-status-
|
|
2366
|
+
const { getSystemStatus, renderStatusText } = await import("./system-status-PLPWV4RF.js");
|
|
2370
2367
|
const status = await getSystemStatus({
|
|
2371
2368
|
phaseHealth: ctx.phaseHealth,
|
|
2372
2369
|
registry: ctx.registry,
|
|
@@ -2377,7 +2374,7 @@ async function handleStatus(_text, ctx) {
|
|
|
2377
2374
|
});
|
|
2378
2375
|
let text = renderStatusText(status);
|
|
2379
2376
|
if (_text.trim().toLowerCase() === "full") {
|
|
2380
|
-
const { envDump } = await import("./env-schema-
|
|
2377
|
+
const { envDump } = await import("./env-schema-YGHCKX5B.js");
|
|
2381
2378
|
const dump = envDump();
|
|
2382
2379
|
const envLines = Object.entries(dump).slice(0, 30).map(([k, v]) => ` ${k}: ${v}`);
|
|
2383
2380
|
text += "\n\n\u{1F4CB} Config (top 30):\n" + envLines.join("\n");
|
|
@@ -2399,7 +2396,7 @@ async function handleWait(text, ctx) {
|
|
|
2399
2396
|
}
|
|
2400
2397
|
async function handleStop(_text, ctx) {
|
|
2401
2398
|
await ctx.transport.sendInterrupt();
|
|
2402
|
-
const { spin } = await import("./spin-
|
|
2399
|
+
const { spin } = await import("./spin-76K4R6FK.js");
|
|
2403
2400
|
const s = spin.getSessionById(ctx.sessionKey);
|
|
2404
2401
|
if (s) s.busy = false;
|
|
2405
2402
|
await ctx.reply("\u{1F6D1} Ctrl+C sent.");
|
|
@@ -2422,7 +2419,7 @@ async function handleRestart(_text, ctx) {
|
|
|
2422
2419
|
return true;
|
|
2423
2420
|
}
|
|
2424
2421
|
async function handleHeartbeat(_text, ctx) {
|
|
2425
|
-
const { getHeartbeatInstance } = await import("./heartbeat-system-
|
|
2422
|
+
const { getHeartbeatInstance } = await import("./heartbeat-system-MUXLT4E6.js");
|
|
2426
2423
|
const hb = getHeartbeatInstance();
|
|
2427
2424
|
if (!hb) {
|
|
2428
2425
|
await ctx.reply("\u{1F493} Heartbeat not available.");
|
|
@@ -2468,13 +2465,13 @@ async function handleHealing(text, ctx) {
|
|
|
2468
2465
|
return true;
|
|
2469
2466
|
}
|
|
2470
2467
|
if (cmd === "reset") {
|
|
2471
|
-
const { resetAutofixState } = await import("./sha-tracker-
|
|
2468
|
+
const { resetAutofixState } = await import("./sha-tracker-BXOLWZJL.js");
|
|
2472
2469
|
resetAutofixState();
|
|
2473
2470
|
await ctx.reply("\u{1FA7A} Autofix state reset \u2014 all suppressed faults re-enabled.");
|
|
2474
2471
|
return true;
|
|
2475
2472
|
}
|
|
2476
2473
|
if (cmd === "list") {
|
|
2477
|
-
const { loadFixes } = await import("./sha-tracker-
|
|
2474
|
+
const { loadFixes } = await import("./sha-tracker-BXOLWZJL.js");
|
|
2478
2475
|
const { readFileSync: readFileSync3 } = await import("node:fs");
|
|
2479
2476
|
const { join: join4 } = await import("node:path");
|
|
2480
2477
|
const fixes = loadFixes();
|
|
@@ -2504,7 +2501,7 @@ ${lines.join("\n")}`);
|
|
|
2504
2501
|
await ctx.reply("Usage: /healing approve <pattern>");
|
|
2505
2502
|
return true;
|
|
2506
2503
|
}
|
|
2507
|
-
const { approveFix } = await import("./sha-tracker-
|
|
2504
|
+
const { approveFix } = await import("./sha-tracker-BXOLWZJL.js");
|
|
2508
2505
|
const ok = approveFix(pattern);
|
|
2509
2506
|
await ctx.reply(ok ? `\u2713 Approved: "${pattern}"` : `\u274C Pattern not found in self-rules.`);
|
|
2510
2507
|
return true;
|
|
@@ -2515,7 +2512,7 @@ ${lines.join("\n")}`);
|
|
|
2515
2512
|
await ctx.reply("Usage: /healing disable <pattern>");
|
|
2516
2513
|
return true;
|
|
2517
2514
|
}
|
|
2518
|
-
const { disableFix } = await import("./sha-tracker-
|
|
2515
|
+
const { disableFix } = await import("./sha-tracker-BXOLWZJL.js");
|
|
2519
2516
|
const ok = disableFix(pattern);
|
|
2520
2517
|
await ctx.reply(ok ? `\u2713 Disabled: "${pattern}"` : `\u274C Pattern not found in self-rules.`);
|
|
2521
2518
|
return true;
|
|
@@ -2530,7 +2527,7 @@ async function handleFull(_text, ctx) {
|
|
|
2530
2527
|
await ctx.reply("\u{1F4FA} Full mode is only available on Telegram.");
|
|
2531
2528
|
return true;
|
|
2532
2529
|
}
|
|
2533
|
-
const { spin } = await import("./spin-
|
|
2530
|
+
const { spin } = await import("./spin-76K4R6FK.js");
|
|
2534
2531
|
const s = spin.getSessionById(ctx.sessionKey);
|
|
2535
2532
|
if (s) s.fullMode = true;
|
|
2536
2533
|
await ctx.reply("\u{1F4FA} Full mode \u2014 sending raw output, TTS disabled.");
|
|
@@ -2541,7 +2538,7 @@ async function handleShort(_text, ctx) {
|
|
|
2541
2538
|
await ctx.reply("\u2702\uFE0F Short mode is only available on Telegram.");
|
|
2542
2539
|
return true;
|
|
2543
2540
|
}
|
|
2544
|
-
const { spin } = await import("./spin-
|
|
2541
|
+
const { spin } = await import("./spin-76K4R6FK.js");
|
|
2545
2542
|
const s = spin.getSessionById(ctx.sessionKey);
|
|
2546
2543
|
if (s) s.fullMode = false;
|
|
2547
2544
|
await ctx.reply("\u2702\uFE0F Short mode \u2014 clean responses, TTS enabled.");
|
|
@@ -2567,7 +2564,7 @@ async function buildStatusLines(ctx) {
|
|
|
2567
2564
|
if ("currentModel" in ctx.transport) {
|
|
2568
2565
|
model = ctx.transport.currentModel;
|
|
2569
2566
|
} else {
|
|
2570
|
-
const { loadTransport, resolveAgent } = await import("./transport-config-
|
|
2567
|
+
const { loadTransport, resolveAgent } = await import("./transport-config-SF6GBV47.js");
|
|
2571
2568
|
const tc2 = loadTransport();
|
|
2572
2569
|
const prof2 = tc2 ? resolveAgent("professor", tc2) : null;
|
|
2573
2570
|
model = prof2?.model ?? "unknown";
|
|
@@ -2575,9 +2572,9 @@ async function buildStatusLines(ctx) {
|
|
|
2575
2572
|
const transportStatus = ctx.transport.isReady ? "\u2713 Connected" : "\u274C Disconnected";
|
|
2576
2573
|
const uptime = formatUptime(Date.now() - ctx.startedAt);
|
|
2577
2574
|
const ctxPct = ctx.transport.contextPercent >= 0 ? `${ctx.transport.contextPercent}%` : "n/a";
|
|
2578
|
-
const { getHeartbeatInstance } = await import("./heartbeat-system-
|
|
2575
|
+
const { getHeartbeatInstance } = await import("./heartbeat-system-MUXLT4E6.js");
|
|
2579
2576
|
const hb = getHeartbeatInstance();
|
|
2580
|
-
const { loadTransport: lt, resolveAgent: ra } = await import("./transport-config-
|
|
2577
|
+
const { loadTransport: lt, resolveAgent: ra } = await import("./transport-config-SF6GBV47.js");
|
|
2581
2578
|
const tc = lt();
|
|
2582
2579
|
const prof = tc ? ra("professor", tc) : null;
|
|
2583
2580
|
const provider = prof?.providerName ?? "unknown";
|
|
@@ -2645,8 +2642,8 @@ function formatUptime(ms) {
|
|
|
2645
2642
|
return h > 0 ? `${h}h ${m}m` : `${m}m`;
|
|
2646
2643
|
}
|
|
2647
2644
|
async function handleUsage(_text, ctx) {
|
|
2648
|
-
const { readUsage, resetUsage } = await import("./usage-tracker-
|
|
2649
|
-
const { loadModels } = await import("./transport-config-
|
|
2645
|
+
const { readUsage, resetUsage } = await import("./usage-tracker-TBDM4KE6.js");
|
|
2646
|
+
const { loadModels } = await import("./transport-config-SF6GBV47.js");
|
|
2650
2647
|
const arg = _text.replace("/usage", "").trim();
|
|
2651
2648
|
if (arg === "reset") {
|
|
2652
2649
|
resetUsage();
|
|
@@ -2697,13 +2694,13 @@ async function handleUsage(_text, ctx) {
|
|
|
2697
2694
|
`;
|
|
2698
2695
|
}
|
|
2699
2696
|
}
|
|
2700
|
-
const { fetchOpenRouterCredits } = await import("./openrouter-credits-
|
|
2697
|
+
const { fetchOpenRouterCredits } = await import("./openrouter-credits-5Q3EYWE5.js");
|
|
2701
2698
|
const credits = await fetchOpenRouterCredits();
|
|
2702
2699
|
if (credits) {
|
|
2703
2700
|
msg += `
|
|
2704
2701
|
\u{1F4B3} OpenRouter: $${credits.remaining.toFixed(2)} remaining ($${credits.purchased.toFixed(2)} purchased, $${credits.used.toFixed(2)} used)`;
|
|
2705
2702
|
}
|
|
2706
|
-
const { getBudgetStatus } = await import("./budget-
|
|
2703
|
+
const { getBudgetStatus } = await import("./budget-QNK6IIT6.js");
|
|
2707
2704
|
const budgetItems = getBudgetStatus();
|
|
2708
2705
|
if (budgetItems.length > 0) {
|
|
2709
2706
|
msg += `
|
|
@@ -2720,7 +2717,7 @@ async function handleUsage(_text, ctx) {
|
|
|
2720
2717
|
return true;
|
|
2721
2718
|
}
|
|
2722
2719
|
async function handleOpenRouter(_text, ctx) {
|
|
2723
|
-
const { fetchOpenRouterCredits } = await import("./openrouter-credits-
|
|
2720
|
+
const { fetchOpenRouterCredits } = await import("./openrouter-credits-5Q3EYWE5.js");
|
|
2724
2721
|
const credits = await fetchOpenRouterCredits();
|
|
2725
2722
|
if (!credits) {
|
|
2726
2723
|
await ctx.reply("\u274C OpenRouter API key not set or request failed.");
|
|
@@ -2736,7 +2733,7 @@ Remaining: $${credits.remaining.toFixed(2)}`
|
|
|
2736
2733
|
return true;
|
|
2737
2734
|
}
|
|
2738
2735
|
async function handleWhoami(_text, ctx) {
|
|
2739
|
-
const { loadUsers: loadUsers2 } = await import("./user-registry-
|
|
2736
|
+
const { loadUsers: loadUsers2 } = await import("./user-registry-OYJVAHDD.js");
|
|
2740
2737
|
const reg = loadUsers2();
|
|
2741
2738
|
const CLASS_NAMES = ["UNCLASSIFIED", "RESTRICTED", "CONFIDENTIAL", "SECRET"];
|
|
2742
2739
|
const user = ctx.userId ? reg.byUserId.get(ctx.userId) : void 0;
|
|
@@ -2753,10 +2750,10 @@ chatId: ${ctx.chatId}`);
|
|
|
2753
2750
|
}
|
|
2754
2751
|
async function handleSoftware(_text, ctx) {
|
|
2755
2752
|
const { existsSync } = await import("node:fs");
|
|
2756
|
-
const { abtarsHome: abtarsHome2 } = await import("./paths-
|
|
2753
|
+
const { abtarsHome: abtarsHome2 } = await import("./paths-MZC2KU2C.js");
|
|
2757
2754
|
const home = abtarsHome2();
|
|
2758
2755
|
const arg = _text.replace(/^\/(software|update)\s*/i, "").trim();
|
|
2759
|
-
const { loadUsers: loadUsers2 } = await import("./user-registry-
|
|
2756
|
+
const { loadUsers: loadUsers2 } = await import("./user-registry-OYJVAHDD.js");
|
|
2760
2757
|
const user = loadUsers2().byUserId.get(ctx.userId);
|
|
2761
2758
|
const isMaster = user?.role === "master";
|
|
2762
2759
|
if (arg.startsWith("rollback")) {
|
|
@@ -2776,7 +2773,7 @@ async function handleSoftware(_text, ctx) {
|
|
|
2776
2773
|
}
|
|
2777
2774
|
await ctx.reply(`\u26A0\uFE0F Rolling back to slot ${asSlot}...`);
|
|
2778
2775
|
try {
|
|
2779
|
-
const { rollback } = await import("./rollback-
|
|
2776
|
+
const { rollback } = await import("./rollback-JOHY6KWW.js");
|
|
2780
2777
|
const code = await rollback({ to: asSlot });
|
|
2781
2778
|
if (code !== 0) {
|
|
2782
2779
|
await ctx.reply(`\u274C Rollback failed (exit ${code}).`);
|
|
@@ -2919,7 +2916,7 @@ ${stderr.slice(-300)}`).catch(() => {
|
|
|
2919
2916
|
}
|
|
2920
2917
|
const lines = ["\u{1F527} Software"];
|
|
2921
2918
|
try {
|
|
2922
|
-
const { getDeployedVersion } = await import("./paths-
|
|
2919
|
+
const { getDeployedVersion } = await import("./paths-MZC2KU2C.js");
|
|
2923
2920
|
const ver = getDeployedVersion();
|
|
2924
2921
|
const manifest = existsSync(join2(home, "manifest.json")) ? JSON.parse(readFileSync(join2(home, "manifest.json"), "utf-8")) : null;
|
|
2925
2922
|
const deployed = manifest?.activatedAt ? new Date(manifest.activatedAt).toLocaleString() : "unknown";
|
|
@@ -2936,12 +2933,12 @@ ${stderr.slice(-300)}`).catch(() => {
|
|
|
2936
2933
|
lines.push(" abtars: unknown");
|
|
2937
2934
|
}
|
|
2938
2935
|
lines.push("");
|
|
2939
|
-
const { getEnv: getEnv2 } = await import("./env-schema-
|
|
2936
|
+
const { getEnv: getEnv2 } = await import("./env-schema-YGHCKX5B.js");
|
|
2940
2937
|
const memoryProvider = getEnv2().memory;
|
|
2941
2938
|
if (memoryProvider === "abmind" || memoryProvider === "auto") {
|
|
2942
2939
|
const abmindBundlePkg = join2(home, "app", "bundle", "node_modules", "abmind", "package.json");
|
|
2943
2940
|
const abmindAppPkg = join2(home, "app", "node_modules", "abmind", "package.json");
|
|
2944
|
-
const { abmindHome: resolveAbmind } = await import("./paths-
|
|
2941
|
+
const { abmindHome: resolveAbmind } = await import("./paths-MZC2KU2C.js");
|
|
2945
2942
|
const abmHome = resolveAbmind();
|
|
2946
2943
|
const abmindManifest = join2(abmHome, "manifest.json");
|
|
2947
2944
|
const abmindPkgPath = existsSync(abmindBundlePkg) ? abmindBundlePkg : existsSync(abmindAppPkg) ? abmindAppPkg : null;
|
|
@@ -3054,6 +3051,140 @@ Cron depth: avg=${s.cronDepth.avg} max=${s.cronDepth.max}`);
|
|
|
3054
3051
|
return true;
|
|
3055
3052
|
}
|
|
3056
3053
|
|
|
3054
|
+
// src/components/nlm-command-handler.ts
|
|
3055
|
+
init_env_schema();
|
|
3056
|
+
init_logger();
|
|
3057
|
+
init_log_and_swallow();
|
|
3058
|
+
import { execFile } from "node:child_process";
|
|
3059
|
+
var TAG7 = "NLMCommand";
|
|
3060
|
+
var TIMEOUT_MS = 12e4;
|
|
3061
|
+
function loadNLMConfig() {
|
|
3062
|
+
const raw = String(getEnv().notebooklmEnabled);
|
|
3063
|
+
return {
|
|
3064
|
+
enabled: raw === "true" || raw === "1",
|
|
3065
|
+
defaultNotebook: getEnv().notebooklmDefaultNotebook
|
|
3066
|
+
};
|
|
3067
|
+
}
|
|
3068
|
+
function nlmExec(args) {
|
|
3069
|
+
const start = Date.now();
|
|
3070
|
+
logDebug(TAG7, `nlm ${args.join(" ")}`);
|
|
3071
|
+
return new Promise((resolve) => {
|
|
3072
|
+
const ac = new AbortController();
|
|
3073
|
+
const timer = setTimeout(() => ac.abort(), TIMEOUT_MS);
|
|
3074
|
+
try {
|
|
3075
|
+
execFile("nlm", args, { signal: ac.signal, maxBuffer: 10 * 1024 * 1024 }, (err, stdout, stderr) => {
|
|
3076
|
+
clearTimeout(timer);
|
|
3077
|
+
logDebug(TAG7, `nlm completed in ${Date.now() - start}ms`);
|
|
3078
|
+
if (err) {
|
|
3079
|
+
if (err.name === "AbortError" || err.code === "ABORT_ERR") {
|
|
3080
|
+
resolve({ ok: false, error: `Timeout after ${TIMEOUT_MS / 1e3}s` });
|
|
3081
|
+
return;
|
|
3082
|
+
}
|
|
3083
|
+
resolve({ ok: false, error: stderr?.trim() || err.message });
|
|
3084
|
+
return;
|
|
3085
|
+
}
|
|
3086
|
+
resolve({ ok: true, data: stdout.trim() });
|
|
3087
|
+
});
|
|
3088
|
+
} catch (err) {
|
|
3089
|
+
clearTimeout(timer);
|
|
3090
|
+
resolve({ ok: false, error: err instanceof Error ? err.message : String(err) });
|
|
3091
|
+
}
|
|
3092
|
+
});
|
|
3093
|
+
}
|
|
3094
|
+
async function handleNLMCommand(args, config) {
|
|
3095
|
+
if (!config.enabled) {
|
|
3096
|
+
return { text: "\u{1F4DA} Knowledge base is disabled." };
|
|
3097
|
+
}
|
|
3098
|
+
const parts = args.split(/\s+/).filter(Boolean);
|
|
3099
|
+
const sub = parts[0] ?? "";
|
|
3100
|
+
try {
|
|
3101
|
+
switch (sub) {
|
|
3102
|
+
case "list":
|
|
3103
|
+
return await handleList();
|
|
3104
|
+
case "create":
|
|
3105
|
+
return await handleCreate(parts.slice(1).join(" "));
|
|
3106
|
+
case "sources":
|
|
3107
|
+
return await handleSources(parts[1] ?? "");
|
|
3108
|
+
case "query":
|
|
3109
|
+
return await handleQuery(parts.slice(1).join(" "), config);
|
|
3110
|
+
default:
|
|
3111
|
+
return { text: "Usage: /nlm list | /nlm create <name> | /nlm sources <notebook-id> | /nlm query <question>" };
|
|
3112
|
+
}
|
|
3113
|
+
} catch (err) {
|
|
3114
|
+
logError(TAG7, "NLM command failed", err);
|
|
3115
|
+
return { text: `\u274C NLM error: ${err instanceof Error ? err.message : String(err)}` };
|
|
3116
|
+
}
|
|
3117
|
+
}
|
|
3118
|
+
async function handleList() {
|
|
3119
|
+
const result = await nlmExec(["notebook", "list", "--json"]);
|
|
3120
|
+
if (!result.ok) return { text: `\u274C ${result.error}` };
|
|
3121
|
+
try {
|
|
3122
|
+
const notebooks = JSON.parse(result.data);
|
|
3123
|
+
if (!Array.isArray(notebooks) || notebooks.length === 0) return { text: "\u{1F4DA} No notebooks found." };
|
|
3124
|
+
const lines = notebooks.map(
|
|
3125
|
+
(n) => `\u2022 ${n.title ?? n.name ?? "?"} (${n.id ?? n.notebook_id ?? "?"})`
|
|
3126
|
+
);
|
|
3127
|
+
return { text: `\u{1F4DA} Notebooks:
|
|
3128
|
+
|
|
3129
|
+
${lines.join("\n")}` };
|
|
3130
|
+
} catch (err) {
|
|
3131
|
+
logAndSwallow(TAG7, "JSON.parse notebook list", err);
|
|
3132
|
+
return { text: `\u{1F4DA} ${result.data}` };
|
|
3133
|
+
}
|
|
3134
|
+
}
|
|
3135
|
+
async function handleCreate(name) {
|
|
3136
|
+
if (!name) return { text: "Usage: /nlm create <name>" };
|
|
3137
|
+
const result = await nlmExec(["notebook", "create", name, "--json"]);
|
|
3138
|
+
if (!result.ok) return { text: `\u274C ${result.error}` };
|
|
3139
|
+
try {
|
|
3140
|
+
const parsed = JSON.parse(result.data);
|
|
3141
|
+
const id = parsed.notebook_id ?? parsed.id ?? "?";
|
|
3142
|
+
logInfo(TAG7, `Created notebook "${name}" \u2192 ${id}`);
|
|
3143
|
+
return { text: `\u2713 Notebook "${name}" created (${id})` };
|
|
3144
|
+
} catch (err) {
|
|
3145
|
+
logAndSwallow(TAG7, "JSON.parse notebook create", err);
|
|
3146
|
+
return { text: `\u2713 ${result.data}` };
|
|
3147
|
+
}
|
|
3148
|
+
}
|
|
3149
|
+
async function handleSources(notebookId) {
|
|
3150
|
+
if (!notebookId) return { text: "Usage: /nlm sources <notebook-id>" };
|
|
3151
|
+
const result = await nlmExec(["source", "list", notebookId, "--json"]);
|
|
3152
|
+
if (!result.ok) return { text: `\u274C ${result.error}` };
|
|
3153
|
+
try {
|
|
3154
|
+
const sources = JSON.parse(result.data);
|
|
3155
|
+
if (!Array.isArray(sources) || sources.length === 0) return { text: `\u{1F4C4} No sources in notebook.` };
|
|
3156
|
+
const lines = sources.map(
|
|
3157
|
+
(s) => `\u2022 [${s.type ?? s.source_type ?? "?"}] ${s.title ?? s.name ?? "?"}`
|
|
3158
|
+
);
|
|
3159
|
+
return { text: `\u{1F4C4} Sources:
|
|
3160
|
+
|
|
3161
|
+
${lines.join("\n")}` };
|
|
3162
|
+
} catch (err) {
|
|
3163
|
+
logAndSwallow(TAG7, "JSON.parse source list", err);
|
|
3164
|
+
return { text: `\u{1F4C4} ${result.data}` };
|
|
3165
|
+
}
|
|
3166
|
+
}
|
|
3167
|
+
async function handleQuery(question, config) {
|
|
3168
|
+
if (!question) return { text: "Usage: /nlm query <question>" };
|
|
3169
|
+
const nbId = config.defaultNotebook;
|
|
3170
|
+
if (!nbId) return { text: "\u274C No default notebook configured (NOTEBOOKLM_DEFAULT_NOTEBOOK)." };
|
|
3171
|
+
const result = await nlmExec(["notebook", "query", nbId, question, "--json"]);
|
|
3172
|
+
if (!result.ok) return { text: `\u274C ${result.error}` };
|
|
3173
|
+
try {
|
|
3174
|
+
const parsed = JSON.parse(result.data);
|
|
3175
|
+
const answer = parsed.answer ?? parsed.response ?? result.data;
|
|
3176
|
+
const sources = parsed.sources_used ?? parsed.citations ?? [];
|
|
3177
|
+
const citations = Array.isArray(sources) && sources.length > 0 ? `
|
|
3178
|
+
|
|
3179
|
+
\u{1F4CE} Sources: ${sources.map((s) => s.title ?? s.name ?? s.source_name ?? "?").join(", ")}` : "";
|
|
3180
|
+
logInfo(TAG7, `Query OK \u2014 answerLen=${String(answer).length}`);
|
|
3181
|
+
return { text: `\u{1F4DA} ${answer}${citations}` };
|
|
3182
|
+
} catch (err) {
|
|
3183
|
+
logAndSwallow(TAG7, "JSON.parse query result", err);
|
|
3184
|
+
return { text: `\u{1F4DA} ${result.data}` };
|
|
3185
|
+
}
|
|
3186
|
+
}
|
|
3187
|
+
|
|
3057
3188
|
// src/components/commands/handlers-memory.ts
|
|
3058
3189
|
async function handleMemory(_text, ctx) {
|
|
3059
3190
|
if (!ctx.memory) {
|
|
@@ -3115,7 +3246,7 @@ import { spawn } from "node:child_process";
|
|
|
3115
3246
|
import { readFileSync as readFileSync2, readdirSync as readdirSync2, unlinkSync } from "node:fs";
|
|
3116
3247
|
import { join as join3 } from "node:path";
|
|
3117
3248
|
import { platform } from "node:os";
|
|
3118
|
-
var
|
|
3249
|
+
var TAG8 = "cmd";
|
|
3119
3250
|
async function handleSleep(_text, ctx) {
|
|
3120
3251
|
const sleepStatus = readBridgeLockField("sleepStatus") ?? "awake";
|
|
3121
3252
|
const progress = ctx.sleepProgress?.();
|
|
@@ -3178,7 +3309,7 @@ async function handleSleepSub(text, ctx) {
|
|
|
3178
3309
|
}
|
|
3179
3310
|
writeForceSleep("resume via /sleep resume");
|
|
3180
3311
|
await ctx.reply("Sleep resume queued");
|
|
3181
|
-
logInfo(
|
|
3312
|
+
logInfo(TAG8, "Sleep resume triggered via /sleep resume");
|
|
3182
3313
|
return true;
|
|
3183
3314
|
}
|
|
3184
3315
|
if (sub === "now") {
|
|
@@ -3194,7 +3325,7 @@ async function handleSleepSub(text, ctx) {
|
|
|
3194
3325
|
}
|
|
3195
3326
|
writeForceSleep("fresh via /sleep now");
|
|
3196
3327
|
await ctx.reply("\u{1F4A4} Full sleep cycle initiated");
|
|
3197
|
-
logInfo(
|
|
3328
|
+
logInfo(TAG8, "Fresh sleep triggered via /sleep now");
|
|
3198
3329
|
return true;
|
|
3199
3330
|
}
|
|
3200
3331
|
await ctx.reply("Unknown subcommand. Use /sleep, /sleep resume, or /sleep now.");
|
|
@@ -3235,7 +3366,7 @@ function readLatestSleepLock(auditDir) {
|
|
|
3235
3366
|
const date = dateMatch ? `${dateMatch[1]}-${dateMatch[2]}-${dateMatch[3]}` : "unknown";
|
|
3236
3367
|
return { date, status: raw.status ?? "unknown", llmCalls: raw.llmCalls ?? 0, startedAt: raw.startedAt, steps: raw.steps ?? {} };
|
|
3237
3368
|
} catch (err) {
|
|
3238
|
-
logAndSwallow(
|
|
3369
|
+
logAndSwallow(TAG8, "readLastSleepAudit", err);
|
|
3239
3370
|
return null;
|
|
3240
3371
|
}
|
|
3241
3372
|
}
|
|
@@ -3246,10 +3377,10 @@ function todayLockPath(auditDir) {
|
|
|
3246
3377
|
}
|
|
3247
3378
|
|
|
3248
3379
|
// src/components/commands/exec-async.ts
|
|
3249
|
-
import { execFile } from "node:child_process";
|
|
3380
|
+
import { execFile as execFile2 } from "node:child_process";
|
|
3250
3381
|
function execAsync(cmd, args, timeoutMs) {
|
|
3251
3382
|
return new Promise((resolve) => {
|
|
3252
|
-
const child =
|
|
3383
|
+
const child = execFile2(cmd, args, { timeout: timeoutMs, encoding: "utf-8" }, (err, stdout) => {
|
|
3253
3384
|
resolve(err ? null : stdout.trim());
|
|
3254
3385
|
});
|
|
3255
3386
|
child.stderr?.resume();
|
|
@@ -3259,13 +3390,13 @@ function execAsync(cmd, args, timeoutMs) {
|
|
|
3259
3390
|
// src/components/commands/handlers-tasks.ts
|
|
3260
3391
|
init_logger();
|
|
3261
3392
|
init_log_and_swallow();
|
|
3262
|
-
var
|
|
3393
|
+
var TAG9 = "cmd_tasks";
|
|
3263
3394
|
async function handleTasksList(_text, ctx) {
|
|
3264
3395
|
const tz = process.env["TZ"] || Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
3265
3396
|
const now = (/* @__PURE__ */ new Date()).toLocaleString("en-GB", { timeZone: tz, dateStyle: "medium", timeStyle: "medium" });
|
|
3266
3397
|
let listing;
|
|
3267
3398
|
try {
|
|
3268
|
-
const { readEntries: readEntries2 } = await import("./task-store-
|
|
3399
|
+
const { readEntries: readEntries2 } = await import("./task-store-RAFMDQ7N.js");
|
|
3269
3400
|
const entries = readEntries2();
|
|
3270
3401
|
const active = entries.filter((e) => !e.fired);
|
|
3271
3402
|
active.sort((a, b) => {
|
|
@@ -3314,7 +3445,7 @@ async function handleTasksList(_text, ctx) {
|
|
|
3314
3445
|
if (ctx.cronCurrentJob) {
|
|
3315
3446
|
const j = ctx.cronCurrentJob;
|
|
3316
3447
|
const ago = Math.round((Date.now() - j.startedAt) / 1e3);
|
|
3317
|
-
const name = j.message.split("\n")[0].slice(0, 30);
|
|
3448
|
+
const name = (j.message.split("\n")[0] ?? "").slice(0, 30);
|
|
3318
3449
|
running = `
|
|
3319
3450
|
~ Running: ${name} (${ago}s)`;
|
|
3320
3451
|
}
|
|
@@ -3330,7 +3461,7 @@ async function handleTasksTrigger(text, ctx) {
|
|
|
3330
3461
|
return true;
|
|
3331
3462
|
}
|
|
3332
3463
|
let id = raw;
|
|
3333
|
-
const { readEntry, readEntries: readEntries2 } = await import("./task-store-
|
|
3464
|
+
const { readEntry, readEntries: readEntries2 } = await import("./task-store-RAFMDQ7N.js");
|
|
3334
3465
|
if (!readEntry(id)) {
|
|
3335
3466
|
const normalized = raw.toLowerCase().replace(/\s+/g, "-");
|
|
3336
3467
|
if (readEntry(normalized)) {
|
|
@@ -3348,7 +3479,7 @@ async function handleTasksTrigger(text, ctx) {
|
|
|
3348
3479
|
let name = id;
|
|
3349
3480
|
try {
|
|
3350
3481
|
const entry = readEntry(id);
|
|
3351
|
-
if (entry) name = entry.title || entry.message.split("\n")[0].slice(0, 30);
|
|
3482
|
+
if (entry) name = entry.title || (entry.message.split("\n")[0] ?? "").slice(0, 30);
|
|
3352
3483
|
} catch {
|
|
3353
3484
|
}
|
|
3354
3485
|
await ctx.reply(`Running task: ${name}`);
|
|
@@ -3377,7 +3508,7 @@ ${lines.join("\n") || "(no runs)"}
|
|
|
3377
3508
|
if (placeholderId !== void 0 && ctx.editReply) await ctx.editReply(placeholderId, body);
|
|
3378
3509
|
else await ctx.reply(body, { parseMode: "Markdown" });
|
|
3379
3510
|
} catch (err) {
|
|
3380
|
-
logAndSwallow(
|
|
3511
|
+
logAndSwallow(TAG9, "read task history", err);
|
|
3381
3512
|
const msg = "\u274C Failed to read history";
|
|
3382
3513
|
if (placeholderId !== void 0 && ctx.editReply) await ctx.editReply(placeholderId, msg);
|
|
3383
3514
|
else await ctx.reply(msg);
|
|
@@ -3403,7 +3534,7 @@ async function handleTaskPause(text, ctx) {
|
|
|
3403
3534
|
}
|
|
3404
3535
|
async function handleKanban(text, ctx) {
|
|
3405
3536
|
try {
|
|
3406
|
-
const { kanbanList } = await import("./kanban-board-
|
|
3537
|
+
const { kanbanList } = await import("./kanban-board-4AI5Z6B5.js");
|
|
3407
3538
|
const arg = text.replace(/^\/kanban\s*/, "").trim();
|
|
3408
3539
|
const ALLOWED_FILTERS = /* @__PURE__ */ new Set(["status", "source", "priority", "labels", "type"]);
|
|
3409
3540
|
let filterVal;
|
|
@@ -3453,9 +3584,9 @@ async function handleKanban(text, ctx) {
|
|
|
3453
3584
|
}
|
|
3454
3585
|
async function handleChannel(text, ctx) {
|
|
3455
3586
|
const args = text.replace(/^\/channel\s*/i, "").trim();
|
|
3456
|
-
const { channelRead, channelPost } = await import("./kanban-channel-
|
|
3587
|
+
const { channelRead, channelPost } = await import("./kanban-channel-JMBYWGWD.js");
|
|
3457
3588
|
if (!args) {
|
|
3458
|
-
const { kanbanList } = await import("./kanban-board-
|
|
3589
|
+
const { kanbanList } = await import("./kanban-board-4AI5Z6B5.js");
|
|
3459
3590
|
const active = kanbanList("running");
|
|
3460
3591
|
if (active.length === 0) {
|
|
3461
3592
|
await ctx.reply("No active channels.");
|
|
@@ -3501,7 +3632,7 @@ ${lines.join("\n")}`);
|
|
|
3501
3632
|
async function handleTodo(_text, ctx) {
|
|
3502
3633
|
const { existsSync, readFileSync: readFileSync3 } = await import("node:fs");
|
|
3503
3634
|
const { join: join4 } = await import("node:path");
|
|
3504
|
-
const { abtarsHome: abtarsHome2 } = await import("./paths-
|
|
3635
|
+
const { abtarsHome: abtarsHome2 } = await import("./paths-MZC2KU2C.js");
|
|
3505
3636
|
const todoPath = join4(abtarsHome2(), "workspace", "todo", "todo.md");
|
|
3506
3637
|
if (!existsSync(todoPath)) {
|
|
3507
3638
|
await ctx.reply("Todo list is empty.");
|
|
@@ -3518,16 +3649,16 @@ async function handleTodo(_text, ctx) {
|
|
|
3518
3649
|
|
|
3519
3650
|
// src/components/commands/handlers-admin.ts
|
|
3520
3651
|
init_log_and_swallow();
|
|
3521
|
-
var
|
|
3652
|
+
var TAG10 = "cmd_admin";
|
|
3522
3653
|
async function handleUsers(text, ctx) {
|
|
3523
|
-
const { loadUsers: loadUsers2 } = await import("./user-registry-
|
|
3654
|
+
const { loadUsers: loadUsers2 } = await import("./user-registry-OYJVAHDD.js");
|
|
3524
3655
|
const parts = text.trim().split(/\s+/);
|
|
3525
3656
|
const sub = parts[1];
|
|
3526
3657
|
if (sub === "approve" && parts[2]) {
|
|
3527
3658
|
const platformId = parts[2];
|
|
3528
3659
|
const { writeFileSync: writeFileSync2, readFileSync: readFileSync3 } = await import("node:fs");
|
|
3529
3660
|
const { join: join4 } = await import("node:path");
|
|
3530
|
-
const { abtarsHome: abtarsHome2 } = await import("./paths-
|
|
3661
|
+
const { abtarsHome: abtarsHome2 } = await import("./paths-MZC2KU2C.js");
|
|
3531
3662
|
const configPath = join4(abtarsHome2(), "config", "users.json");
|
|
3532
3663
|
try {
|
|
3533
3664
|
const raw = JSON.parse(readFileSync3(configPath, "utf-8"));
|
|
@@ -3549,7 +3680,7 @@ async function handleUsers(text, ctx) {
|
|
|
3549
3680
|
const targetUserId = parts[2];
|
|
3550
3681
|
const { writeFileSync: writeFileSync2, readFileSync: readFileSync3 } = await import("node:fs");
|
|
3551
3682
|
const { join: join4 } = await import("node:path");
|
|
3552
|
-
const { abtarsHome: abtarsHome2 } = await import("./paths-
|
|
3683
|
+
const { abtarsHome: abtarsHome2 } = await import("./paths-MZC2KU2C.js");
|
|
3553
3684
|
const configPath = join4(abtarsHome2(), "config", "users.json");
|
|
3554
3685
|
try {
|
|
3555
3686
|
const raw = JSON.parse(readFileSync3(configPath, "utf-8"));
|
|
@@ -3581,19 +3712,19 @@ async function handleSkills(text, ctx) {
|
|
|
3581
3712
|
await ctx.reply("Usage: /skill run <name>");
|
|
3582
3713
|
return true;
|
|
3583
3714
|
}
|
|
3584
|
-
const { launchSkill } = await import("./skill-session-
|
|
3715
|
+
const { launchSkill } = await import("./skill-session-H6EQ4NGN.js");
|
|
3585
3716
|
const err = await launchSkill(skillName, ctx.userId, String(ctx.chatId));
|
|
3586
3717
|
await ctx.reply(err ?? `* Skill "${skillName}" started.`);
|
|
3587
3718
|
return true;
|
|
3588
3719
|
}
|
|
3589
3720
|
if (args === "stop") {
|
|
3590
|
-
const { endSkillSession } = await import("./skill-session-
|
|
3721
|
+
const { endSkillSession } = await import("./skill-session-H6EQ4NGN.js");
|
|
3591
3722
|
const ended = await endSkillSession(String(ctx.chatId));
|
|
3592
3723
|
await ctx.reply(ended ? "* Skill session ended." : "No active skill session.");
|
|
3593
3724
|
return true;
|
|
3594
3725
|
}
|
|
3595
3726
|
if (args === "list") {
|
|
3596
|
-
const { listRunnableSkills } = await import("./skill-session-
|
|
3727
|
+
const { listRunnableSkills } = await import("./skill-session-H6EQ4NGN.js");
|
|
3597
3728
|
const skills2 = listRunnableSkills();
|
|
3598
3729
|
if (skills2.length === 0) {
|
|
3599
3730
|
await ctx.reply("No runnable skills (no skill.json found).");
|
|
@@ -3607,12 +3738,12 @@ Use: /skill run <name>`);
|
|
|
3607
3738
|
return true;
|
|
3608
3739
|
}
|
|
3609
3740
|
if (text.includes("reload")) {
|
|
3610
|
-
const { reloadCatalog } = await import("./hotskills-
|
|
3741
|
+
const { reloadCatalog } = await import("./hotskills-AOUWVTQB.js");
|
|
3611
3742
|
const count = reloadCatalog();
|
|
3612
3743
|
await ctx.reply(`Reloaded \u2014 ${count} skills available.`);
|
|
3613
3744
|
return true;
|
|
3614
3745
|
}
|
|
3615
|
-
const { getSkillCache } = await import("./hotskills-
|
|
3746
|
+
const { getSkillCache } = await import("./hotskills-AOUWVTQB.js");
|
|
3616
3747
|
const skills = getSkillCache();
|
|
3617
3748
|
if (skills.length === 0) {
|
|
3618
3749
|
await ctx.reply("\u{1F4DA} No skills loaded.");
|
|
@@ -3639,7 +3770,7 @@ ${sections.join("\n\n")}`);
|
|
|
3639
3770
|
return true;
|
|
3640
3771
|
}
|
|
3641
3772
|
async function handleHooks(_text, ctx) {
|
|
3642
|
-
const { getHookSummary } = await import("./hook-system-
|
|
3773
|
+
const { getHookSummary } = await import("./hook-system-Z4XD6IM5.js");
|
|
3643
3774
|
const summary = getHookSummary();
|
|
3644
3775
|
const lines = ["\u{1FA9D} Hooks:"];
|
|
3645
3776
|
for (const { event, hooks } of summary) {
|
|
@@ -3655,7 +3786,7 @@ async function handleHooks(_text, ctx) {
|
|
|
3655
3786
|
async function handleMcp(_text, ctx) {
|
|
3656
3787
|
const arg = _text.replace(/^\/mcp\s*/i, "").trim().toLowerCase();
|
|
3657
3788
|
if (arg === "start") {
|
|
3658
|
-
const { loadUsers: loadUsers2 } = await import("./user-registry-
|
|
3789
|
+
const { loadUsers: loadUsers2 } = await import("./user-registry-OYJVAHDD.js");
|
|
3659
3790
|
const registry = loadUsers2();
|
|
3660
3791
|
const user = registry.byUserId.get(ctx.userId);
|
|
3661
3792
|
if (user?.role !== "master") {
|
|
@@ -3696,7 +3827,7 @@ ${result}` : "\u{1F4E6} mcporter daemon start failed.");
|
|
|
3696
3827
|
}
|
|
3697
3828
|
body = lines.join("\n");
|
|
3698
3829
|
} catch (err) {
|
|
3699
|
-
logAndSwallow(
|
|
3830
|
+
logAndSwallow(TAG10, "JSON.parse mcp list", err);
|
|
3700
3831
|
body = "\u{1F4E6} MCP: installed, list output unparseable";
|
|
3701
3832
|
}
|
|
3702
3833
|
}
|
|
@@ -3763,7 +3894,7 @@ ${cmds.join("\n")}`);
|
|
|
3763
3894
|
return true;
|
|
3764
3895
|
}
|
|
3765
3896
|
async function handlePeers(_text, ctx) {
|
|
3766
|
-
const { getPeerTable } = await import("./gossip-
|
|
3897
|
+
const { getPeerTable } = await import("./gossip-VSEY2HSE.js");
|
|
3767
3898
|
const peers = getPeerTable(true);
|
|
3768
3899
|
if (peers.length === 0) {
|
|
3769
3900
|
await ctx.reply("No peers configured or gossip not started.");
|
|
@@ -3788,11 +3919,11 @@ ${peers.length} peer(s) (${alive} alive, ${peers.length - alive} dead)`);
|
|
|
3788
3919
|
init_logger();
|
|
3789
3920
|
init_log_and_swallow();
|
|
3790
3921
|
init_spin_types();
|
|
3791
|
-
var
|
|
3922
|
+
var TAG11 = "cmd:session";
|
|
3792
3923
|
async function handleSession(text, ctx) {
|
|
3793
3924
|
const args = text.replace(/^\/session\s*/i, "").trim();
|
|
3794
3925
|
if (!args) {
|
|
3795
|
-
const { getMasterUserId } = await import("./master-user-
|
|
3926
|
+
const { getMasterUserId } = await import("./master-user-TKA7M2GL.js");
|
|
3796
3927
|
const isMaster = ctx.userId === getMasterUserId();
|
|
3797
3928
|
await ctx.reply(ctx.sessionManager.formatList(ctx.userId, ctx.platform, isMaster));
|
|
3798
3929
|
return true;
|
|
@@ -3811,7 +3942,7 @@ async function handleSession(text, ctx) {
|
|
|
3811
3942
|
}
|
|
3812
3943
|
await ctx.reply(`\u2713 Session #${result.shortIndex} (${typeLabel(sessionType(result))}) created.`);
|
|
3813
3944
|
ctx.sessionManager.greetSession(result, ctx.chatId, ctx.userId);
|
|
3814
|
-
logInfo(
|
|
3945
|
+
logInfo(TAG11, `New session ${result.id} for ${ctx.userId}`);
|
|
3815
3946
|
return true;
|
|
3816
3947
|
}
|
|
3817
3948
|
if (args.startsWith("end")) {
|
|
@@ -3827,7 +3958,7 @@ async function handleSession(text, ctx) {
|
|
|
3827
3958
|
return true;
|
|
3828
3959
|
}
|
|
3829
3960
|
await ctx.reply(`\u2713 Session #${result.shortIndex} (${typeLabel(sessionType(result))}) ended.`);
|
|
3830
|
-
logInfo(
|
|
3961
|
+
logInfo(TAG11, `Ended session ${result.id}`);
|
|
3831
3962
|
return true;
|
|
3832
3963
|
}
|
|
3833
3964
|
if (args.startsWith("kill")) {
|
|
@@ -3847,11 +3978,11 @@ async function handleSession(text, ctx) {
|
|
|
3847
3978
|
const db = ctx.memory.db;
|
|
3848
3979
|
if (db) db.prepare("DELETE FROM messages WHERE session_id = ?").run(result.id);
|
|
3849
3980
|
} catch (err) {
|
|
3850
|
-
logAndSwallow(
|
|
3981
|
+
logAndSwallow(TAG11, "delete session messages", err);
|
|
3851
3982
|
}
|
|
3852
3983
|
}
|
|
3853
3984
|
await ctx.reply(`\u{1F5D1}\uFE0F Session #${result.shortIndex} (${typeLabel(sessionType(result))}) killed.`);
|
|
3854
|
-
logInfo(
|
|
3985
|
+
logInfo(TAG11, `Killed session ${result.id}`);
|
|
3855
3986
|
return true;
|
|
3856
3987
|
}
|
|
3857
3988
|
if (args.startsWith("pause")) {
|
|
@@ -3867,7 +3998,7 @@ async function handleSession(text, ctx) {
|
|
|
3867
3998
|
return true;
|
|
3868
3999
|
}
|
|
3869
4000
|
await ctx.reply(`\u23F8 Session #${result.shortIndex} (${typeLabel(sessionType(result))}) paused.`);
|
|
3870
|
-
logInfo(
|
|
4001
|
+
logInfo(TAG11, `Paused session ${result.id}`);
|
|
3871
4002
|
return true;
|
|
3872
4003
|
}
|
|
3873
4004
|
if (args.startsWith("resume")) {
|
|
@@ -3883,7 +4014,7 @@ async function handleSession(text, ctx) {
|
|
|
3883
4014
|
return true;
|
|
3884
4015
|
}
|
|
3885
4016
|
await ctx.reply(`\u25B6\uFE0F Session #${result.shortIndex} (${typeLabel(sessionType(result))}) resumed.`);
|
|
3886
|
-
logInfo(
|
|
4017
|
+
logInfo(TAG11, `Resumed session ${result.id}`);
|
|
3887
4018
|
return true;
|
|
3888
4019
|
}
|
|
3889
4020
|
const index = parseInt(args, 10);
|
|
@@ -3894,7 +4025,7 @@ async function handleSession(text, ctx) {
|
|
|
3894
4025
|
return true;
|
|
3895
4026
|
}
|
|
3896
4027
|
await ctx.reply(`\u{1F500} Switched to session #${result.shortIndex} (${typeLabel(sessionType(result))}).`);
|
|
3897
|
-
logInfo(
|
|
4028
|
+
logInfo(TAG11, `Switched to session ${result.id}`);
|
|
3898
4029
|
return true;
|
|
3899
4030
|
}
|
|
3900
4031
|
await ctx.reply("Usage: /session [new [browse|code|task] | end [#] | kill <#> | pause [#] | resume [#] | <#>]");
|
|
@@ -3962,6 +4093,7 @@ registerPrefix("/tasks pause ", handleTaskPause);
|
|
|
3962
4093
|
registerPrefix("/tasks resume ", handleTaskPause);
|
|
3963
4094
|
|
|
3964
4095
|
export {
|
|
4096
|
+
loadNLMConfig,
|
|
3965
4097
|
cleanResponse,
|
|
3966
4098
|
registerCommand,
|
|
3967
4099
|
handleCommand,
|
|
@@ -3974,4 +4106,4 @@ export {
|
|
|
3974
4106
|
resetAndPrepare,
|
|
3975
4107
|
handleInboundMessage
|
|
3976
4108
|
};
|
|
3977
|
-
//# sourceMappingURL=chunk-
|
|
4109
|
+
//# sourceMappingURL=chunk-FF2F7ENH.js.map
|