abtars 0.3.4-alpha.0 → 0.3.4-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/{_registry.generated-7DRCE4V6.js → _registry.generated-RC6PEH6Z.js} +16 -15
- package/bundle/{_registry.generated-7DRCE4V6.js.map → _registry.generated-RC6PEH6Z.js.map} +1 -1
- package/bundle/abtars-browser.js +6 -5
- package/bundle/abtars-browser.js.map +1 -1
- package/bundle/abtars-cli.js +73 -46
- package/bundle/abtars-cli.js.map +3 -3
- 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 +307 -212
- package/bundle/abtars.js.map +4 -4
- package/bundle/{acp-raw-client-AZJCEB6S.js → acp-raw-client-E6FM45NC.js} +4 -3
- package/bundle/{acp-raw-client-AZJCEB6S.js.map → acp-raw-client-E6FM45NC.js.map} +1 -1
- package/bundle/{action-gate-QYJL57IX.js → action-gate-G2V47NHW.js} +4 -3
- package/bundle/{action-gate-QYJL57IX.js.map → action-gate-G2V47NHW.js.map} +1 -1
- package/bundle/{agent-api-adapter-PYMNQXHE.js → agent-api-adapter-PTJYZKQK.js} +5 -4
- package/bundle/{agent-api-adapter-PYMNQXHE.js.map → agent-api-adapter-PTJYZKQK.js.map} +1 -1
- package/bundle/{agent-api-rate-limit-4GEZ4YN5.js → agent-api-rate-limit-WCFXJMGY.js} +6 -5
- package/bundle/{agent-registry-563P4EUJ.js → agent-registry-GU7ABOK5.js} +9 -8
- package/bundle/bootstrap-POWWTU6I.js +63 -0
- package/bundle/bootstrap-POWWTU6I.js.map +7 -0
- package/bundle/{bridge-lock-transport-LXCF2IVN.js → bridge-lock-transport-4ZH7QTJP.js} +6 -5
- package/bundle/{browser-2VZOGOGX.js → browser-EJNS35NT.js} +8 -7
- package/bundle/{budget-PPA7WY3D.js → budget-45QOBDWA.js} +5 -4
- package/bundle/{budget-PPA7WY3D.js.map → budget-45QOBDWA.js.map} +1 -1
- package/bundle/{capability-WXEA2WFK.js → capability-JFWX3IQF.js} +7 -6
- package/bundle/{chunk-CB6S3ZRF.js → chunk-2FAZIA37.js} +3 -3
- package/bundle/{chunk-VJATH7AN.js → chunk-2KC5G3EA.js} +9 -8
- package/bundle/chunk-2KC5G3EA.js.map +7 -0
- package/bundle/{chunk-OY2HAK33.js → chunk-36ZEYDKZ.js} +1 -1
- package/bundle/chunk-36ZEYDKZ.js.map +7 -0
- package/bundle/{chunk-2FZJDMAF.js → chunk-3CACHBDI.js} +10 -10
- package/bundle/{chunk-O4GKI3Q3.js → chunk-4S554KLW.js} +4 -4
- package/bundle/{chunk-3QW2K53E.js → chunk-5GCLBUBS.js} +11 -19
- package/bundle/chunk-5GCLBUBS.js.map +7 -0
- package/bundle/{chunk-RJX45XIC.js → chunk-5HDSQFT6.js} +9 -4
- package/bundle/chunk-5HDSQFT6.js.map +7 -0
- package/bundle/{chunk-EDZGF6BC.js → chunk-5NY2YULC.js} +11 -4
- package/bundle/chunk-5NY2YULC.js.map +7 -0
- 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-SSCGWDIC.js → chunk-65VCEC32.js} +2 -2
- package/bundle/{chunk-V2QIAXWZ.js → chunk-7BSQ5UQO.js} +3 -3
- package/bundle/{chunk-E7MV7WFT.js → chunk-7Z3HBPRY.js} +6 -6
- package/bundle/{chunk-TY26WMQY.js → chunk-AFREM7FX.js} +2 -2
- package/bundle/{chunk-GCFIK6OB.js → chunk-AO32N2VB.js} +92 -20
- package/bundle/chunk-AO32N2VB.js.map +7 -0
- package/bundle/{chunk-N5VROZ7A.js → chunk-B6ZN6COK.js} +5 -5
- package/bundle/{chunk-M6Q3IQ4H.js → chunk-BFDBGESM.js} +259 -122
- package/bundle/chunk-BFDBGESM.js.map +7 -0
- package/bundle/{chunk-YEOZN5IE.js → chunk-DYBW4XXL.js} +2 -2
- package/bundle/{chunk-56D3Y44D.js → chunk-EFJVUJBE.js} +10 -10
- package/bundle/{chunk-S6HEHCCG.js → chunk-EQSG2CRM.js} +83 -46
- package/bundle/chunk-EQSG2CRM.js.map +7 -0
- package/bundle/{chunk-FIAVVKGN.js → chunk-EUZDKV3C.js} +3 -3
- package/bundle/{chunk-2LKQV2ND.js → chunk-FRKW6LWB.js} +3 -3
- package/bundle/{chunk-H2K23MOF.js → chunk-GALQBVKO.js} +21 -5
- package/bundle/chunk-GALQBVKO.js.map +7 -0
- package/bundle/{chunk-DNDYD5SL.js → chunk-GP4XUKI5.js} +3 -3
- package/bundle/{chunk-SXNY6HC4.js → chunk-GPZNXY2U.js} +6 -6
- package/bundle/chunk-GPZNXY2U.js.map +7 -0
- package/bundle/{chunk-W726UGI6.js → chunk-GRVWZO4C.js} +3 -3
- package/bundle/{chunk-IXKQ4JMX.js → chunk-GVM5YU5I.js} +33 -17
- package/bundle/chunk-GVM5YU5I.js.map +7 -0
- package/bundle/{chunk-OOKNHOCB.js → chunk-GWILHZPT.js} +2 -2
- 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-NP72ZB7P.js → chunk-HMKVL7AX.js} +53 -47
- package/bundle/chunk-HMKVL7AX.js.map +7 -0
- package/bundle/{chunk-BNBC4T45.js → chunk-HT2BPTZY.js} +3 -3
- package/bundle/{chunk-BU7LTI2W.js → chunk-HZDLFLRP.js} +6 -7
- package/bundle/chunk-HZDLFLRP.js.map +7 -0
- package/bundle/{chunk-FVUL44T4.js → chunk-IJT4KWXT.js} +2 -2
- package/bundle/{chunk-IK4R3RBZ.js → chunk-JNIHEDKF.js} +3 -3
- package/bundle/{chunk-J5NOL4DB.js → chunk-JQDJPUHM.js} +16 -6
- package/bundle/chunk-JQDJPUHM.js.map +7 -0
- package/bundle/{chunk-SESM4GBM.js → chunk-KTYGKPYM.js} +52 -25
- package/bundle/chunk-KTYGKPYM.js.map +7 -0
- package/bundle/chunk-LME23AA2.js +37 -0
- package/bundle/chunk-LME23AA2.js.map +7 -0
- package/bundle/{chunk-4PIVWXUJ.js → chunk-LUNA6PM5.js} +2 -2
- package/bundle/{chunk-37EX63K4.js → chunk-LUW62WGO.js} +6998 -3621
- package/bundle/chunk-LUW62WGO.js.map +7 -0
- package/bundle/{chunk-MV5KOWOR.js → chunk-NDCRWEEJ.js} +7 -7
- package/bundle/{chunk-7WHXTCVD.js → chunk-NRUSRJXR.js} +8 -3
- package/bundle/chunk-NRUSRJXR.js.map +7 -0
- package/bundle/{chunk-C3EYYJN3.js → chunk-O7KQG6ME.js} +17 -5
- package/bundle/chunk-O7KQG6ME.js.map +7 -0
- package/bundle/{chunk-ZOCEBV62.js → chunk-OKAQICWY.js} +3 -3
- package/bundle/{chunk-TCI6FZTP.js → chunk-OLAURO5G.js} +9 -9
- package/bundle/{chunk-YME7NRGP.js → chunk-OXTSWQCX.js} +2 -2
- package/bundle/{chunk-HDOFJVFS.js → chunk-PEDX56EL.js} +3 -3
- package/bundle/{chunk-7RAGSHSH.js → chunk-PROPYS3P.js} +12 -10
- package/bundle/chunk-PROPYS3P.js.map +7 -0
- package/bundle/{chunk-ASYX43OU.js → chunk-Q32H6VPU.js} +26 -26
- package/bundle/{chunk-P5O6QZDC.js → chunk-QROWBWLL.js} +10 -6
- package/bundle/chunk-QROWBWLL.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-MQJG7OJX.js → chunk-RIHQ37U5.js} +38 -36
- package/bundle/chunk-RIHQ37U5.js.map +7 -0
- package/bundle/{chunk-IQKADER4.js → chunk-RWRRGE4U.js} +2 -2
- package/bundle/{chunk-72T2Q7IG.js → chunk-S5GD5EJ5.js} +271 -282
- package/bundle/chunk-S5GD5EJ5.js.map +7 -0
- package/bundle/{chunk-ULO2PX3T.js → chunk-TEFZ4JA4.js} +3 -3
- package/bundle/{chunk-2RGR3LSV.js → chunk-TMUYFERL.js} +2 -2
- package/bundle/{chunk-KBPVJGD7.js → chunk-URQPDCK5.js} +3 -3
- package/bundle/chunk-UUIHL65U.js +77 -0
- package/bundle/chunk-UUIHL65U.js.map +7 -0
- package/bundle/{chunk-FJF42RZY.js → chunk-VUIX5AGB.js} +3 -3
- package/bundle/{chunk-5V4VHKEA.js → chunk-WBTJ2E62.js} +5 -4
- package/bundle/chunk-WBTJ2E62.js.map +7 -0
- package/bundle/{chunk-ZY6DH2S4.js → chunk-WTIGZO3N.js} +80 -70
- package/bundle/chunk-WTIGZO3N.js.map +7 -0
- package/bundle/{chunk-4HNCOQSK.js → chunk-WYHGNI56.js} +7 -7
- package/bundle/{chunk-24V4A6RP.js → chunk-XX6BGTPO.js} +4 -4
- package/bundle/{chunk-T7TAWGBX.js → chunk-Y76VUJSF.js} +2 -2
- package/bundle/{chunk-TVSPVZTX.js → chunk-YDY6QVWJ.js} +3 -3
- package/bundle/{chunk-V6CV3QPH.js → chunk-YRSMGJFP.js} +2 -2
- package/bundle/{chunk-WP7FZHMI.js → chunk-YSKCQH6E.js} +2 -2
- package/bundle/{chunk-NGZVJ52F.js → chunk-ZKJOFASV.js} +7 -7
- package/bundle/{chunk-WGWM4IZM.js → chunk-ZT5ZBGWS.js} +4 -4
- package/bundle/{chunk-WGWM4IZM.js.map → chunk-ZT5ZBGWS.js.map} +1 -1
- package/bundle/{chunk-43DKPXTP.js → chunk-ZV4IWKDJ.js} +4 -4
- package/bundle/{commands-XXFU2ZF7.js → commands-EWA4HNCM.js} +20 -20
- package/bundle/{config-EWDZ234X.js → config-M3P5IOAI.js} +8 -7
- package/bundle/{config-show-6J33O4TE.js → config-show-3DHPP26D.js} +5 -5
- package/bundle/{context-OCS7HLJP.js → context-5P7IYYU2.js} +5 -2
- package/bundle/{context-OCS7HLJP.js.map → context-5P7IYYU2.js.map} +1 -1
- package/bundle/{daemon-LTDAXNA2.js → daemon-TB23FFWY.js} +7 -7
- package/bundle/{delegation-tools-YDTWQMZD.js → delegation-tools-P2SCNL23.js} +14 -11
- package/bundle/{registry-client-VN2MM2HI.js → deploy-YYUCGGP3.js} +10 -6
- package/bundle/{deploy-lib-import-RGZJ3CGC.js → deploy-lib-import-T3UP4G6G.js} +5 -3
- package/bundle/{deps-PHSLIA77.js → deps-WVK553KF.js} +21 -19
- package/bundle/deps-WVK553KF.js.map +7 -0
- package/bundle/{direct-api-transport-OAKYQBJR.js → direct-api-transport-WQ6HA5OX.js} +30 -28
- package/bundle/direct-api-transport-WQ6HA5OX.js.map +7 -0
- package/bundle/{discord-adapter-WUNYPTDE.js → discord-adapter-4TTETYDI.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-IDOJIXBX.js} +4 -3
- package/bundle/{dns-wakeup-F55ALHXJ.js.map → dns-wakeup-IDOJIXBX.js.map} +1 -1
- package/bundle/{doctor-probes-3SLIUGKS.js → doctor-probes-VDWFJKUB.js} +4 -3
- package/bundle/{env-schema-MSDP2YBO.js → env-schema-4JXQUOH4.js} +5 -4
- package/bundle/{gossip-CS3G3447.js → gossip-3C3BSNPN.js} +7 -6
- package/bundle/{guardrails-24XK2COI.js → guardrails-DL7ZSWVN.js} +6 -5
- package/bundle/{health-check-FRUNRVNQ.js → health-check-YKWFD2LZ.js} +5 -6
- package/bundle/{health-check-FRUNRVNQ.js.map → health-check-YKWFD2LZ.js.map} +2 -2
- package/bundle/{heartbeat-system-G4IFQXT6.js → heartbeat-system-TDDIOVTC.js} +7 -6
- package/bundle/{heartbeat-tier3-3ZO3EVXP.js → heartbeat-tier3-55T2HUNE.js} +45 -44
- package/bundle/heartbeat-tier3-55T2HUNE.js.map +7 -0
- package/bundle/{hook-system-X6INNJGV.js → hook-system-M3POLUIB.js} +5 -4
- package/bundle/{hotskills-6FQYTJIO.js → hotskills-FWX4QI7V.js} +7 -6
- package/bundle/{install-ZAHTZ5M5.js → install-4MXBYIUG.js} +23 -20
- package/bundle/install-4MXBYIUG.js.map +7 -0
- package/bundle/{install-manifest-QX7KVDCA.js → install-manifest-5PPWMD2W.js} +4 -3
- package/bundle/{install-manifest-QX7KVDCA.js.map → install-manifest-5PPWMD2W.js.map} +1 -1
- package/bundle/{irc-adapter-IEJQKKJF.js → irc-adapter-PTTZD32W.js} +5 -4
- package/bundle/{irc-adapter-IEJQKKJF.js.map → irc-adapter-PTTZD32W.js.map} +1 -1
- package/bundle/{irc-config-TTWNYFLH.js → irc-config-CP7ZMUOX.js} +6 -5
- package/bundle/{irc-config-TTWNYFLH.js.map → irc-config-CP7ZMUOX.js.map} +1 -1
- package/bundle/{kanban-board-J6RO3ZU7.js → kanban-board-M326B2XJ.js} +7 -5
- package/bundle/{kanban-channel-5EIXBFSA.js → kanban-channel-IJ52OMNA.js} +8 -6
- package/bundle/{lazy-require-V6EFUATC.js → lazy-require-KCRVT4SI.js} +11 -6
- package/bundle/{logger-Y3VILPRH.js → logger-OWCSNYCA.js} +4 -3
- package/bundle/{logs-YS3GDURO.js → logs-FXS4SCEM.js} +5 -5
- package/bundle/{main-chat-YLZDNQPO.js → main-chat-ZNUZCTNS.js} +6 -5
- package/bundle/{master-user-Z4M7KCJE.js → master-user-HSKM4ZFN.js} +7 -6
- package/bundle/{media-utils-P6RZ2K3U.js → media-utils-3ZYOD7SK.js} +44 -43
- package/bundle/{media-utils-P6RZ2K3U.js.map → media-utils-3ZYOD7SK.js.map} +2 -2
- package/bundle/{message-pipeline-MHEBDJLH.js → message-pipeline-KSONH4MT.js} +20 -20
- package/bundle/meta.json +9327 -8582
- package/bundle/{migrate-layout-RJJQLVGR.js → migrate-layout-IJIEJY3A.js} +8 -4
- package/bundle/migrate-layout-IJIEJY3A.js.map +7 -0
- package/bundle/{nerve-VZNMFDGY.js → nerve-IGSXBKZZ.js} +5 -4
- package/bundle/{notification-VV2OR6NW.js → notification-BFSIEECG.js} +8 -7
- package/bundle/{openrouter-credits-LXC7P4G6.js → openrouter-credits-NTVZDRYM.js} +5 -4
- package/bundle/{openrouter-credits-LXC7P4G6.js.map → openrouter-credits-NTVZDRYM.js.map} +1 -1
- package/bundle/{orc-KC4USP55.js → orc-EIGVTHAV.js} +4 -4
- package/bundle/{orc-tools-CHRSXSAS.js → orc-tools-A3G7WCSJ.js} +5 -4
- package/bundle/{paths-EDK6KWHG.js → paths-3ZVW3NFL.js} +6 -2
- package/bundle/{paths-RZF6WDMG.js → paths-X4LRYUI6.js} +3 -2
- package/bundle/{peer-auth-SRONOLNG.js → peer-auth-QC4EF2PM.js} +9 -8
- package/bundle/{peer-client-VOF77T6C.js → peer-client-RGEU5HOK.js} +9 -8
- package/bundle/{peer-client-VOF77T6C.js.map → peer-client-RGEU5HOK.js.map} +1 -1
- package/bundle/{peer-config-FRWLEYQ5.js → peer-config-TN55LFDC.js} +6 -5
- package/bundle/{peer-jwt-XY3XRIA2.js → peer-jwt-NCCPXJRX.js} +6 -5
- package/bundle/{peer-transport-UBBXTDRP.js → peer-transport-I6JPLFZ2.js} +8 -7
- package/bundle/{phase-transport-4NQHZX75.js → phase-transport-2BRWACDF.js} +18 -16
- package/bundle/public/css/dashboard.css +542 -0
- package/bundle/public/index.html +180 -0
- package/bundle/public/js/app.js +437 -0
- package/bundle/public/memory-universe.js +384 -0
- package/bundle/{reconcile-2EUXJ6W5.js → reconcile-CTFCLQRN.js} +5 -4
- package/bundle/{reconciler-FFQGV4DO.js → reconciler-FHESO6OC.js} +14 -11
- package/bundle/{reconciler-FFQGV4DO.js.map → reconciler-FHESO6OC.js.map} +1 -1
- package/bundle/{restore-NFDE2RG6.js → restore-IFHPI7I7.js} +13 -9
- package/bundle/{restore-NFDE2RG6.js.map → restore-IFHPI7I7.js.map} +3 -3
- package/bundle/{rollback-MVZ53XS4.js → rollback-ANRI3T5Z.js} +5 -5
- package/bundle/{chunk-SKY6656M.js → sandbox-runtime-QROWHDCS.js} +11 -28
- package/bundle/{chunk-SKY6656M.js.map → sandbox-runtime-QROWHDCS.js.map} +1 -1
- package/bundle/{self-healer-utils-KD6LV63S.js → self-healer-utils-IFAYOQO2.js} +5 -4
- package/bundle/{self-healer-utils-KD6LV63S.js.map → self-healer-utils-IFAYOQO2.js.map} +1 -1
- package/bundle/{sha-tracker-2DB4R2TW.js → sha-tracker-ZWBP6CIJ.js} +5 -4
- package/bundle/{skill-session-BPDVA6ZG.js → skill-session-AXBDQSLQ.js} +5 -4
- package/bundle/{skill-session-BPDVA6ZG.js.map → skill-session-AXBDQSLQ.js.map} +1 -1
- package/bundle/{skill-stats-TPD2NROA.js → skill-stats-JORH5DGM.js} +6 -5
- package/bundle/{skill-watcher-D7QYYYON.js → skill-watcher-E4MGLKLS.js} +6 -5
- package/bundle/{sleep-GH6DLBJJ.js → sleep-SRCSXY6T.js} +10 -9
- package/bundle/{soul-bundle-GXLMDBCC.js → soul-bundle-VWAVHCZ6.js} +10 -9
- package/bundle/{spin-4DBYHS3E.js → spin-IMW2MZOH.js} +13 -10
- package/bundle/{spin-notifications-IKYJPER5.js → spin-notifications-SE2HVZI7.js} +7 -5
- package/bundle/{spin-notifications-IKYJPER5.js.map → spin-notifications-SE2HVZI7.js.map} +1 -1
- package/bundle/{spin-types-PLJH3SIK.js → spin-types-BLPYAETA.js} +5 -4
- package/bundle/{src-SUFZ27S5.js → src-6BTCMOD3.js} +4 -4
- package/bundle/{sse-parser-anthropic-U7ILHOY5.js → sse-parser-anthropic-A6R4Z2TB.js} +5 -4
- package/bundle/{sse-parser-anthropic-U7ILHOY5.js.map → sse-parser-anthropic-A6R4Z2TB.js.map} +1 -1
- package/bundle/{sse-parser-responses-OI73R3AH.js → sse-parser-responses-HSZY3QGJ.js} +5 -4
- package/bundle/{sse-parser-responses-OI73R3AH.js.map → sse-parser-responses-HSZY3QGJ.js.map} +1 -1
- package/bundle/{ssrf-guard-6GP4QYVA.js → ssrf-guard-O6SHIK6Q.js} +5 -4
- package/bundle/{ssrf-guard-6GP4QYVA.js.map → ssrf-guard-O6SHIK6Q.js.map} +1 -1
- package/bundle/{start-JT2BPMSW.js → start-7QZIWO3S.js} +5 -5
- package/bundle/start-7QZIWO3S.js.map +7 -0
- package/bundle/{stt-KD3AABKG.js → stt-LGVPXMVR.js} +6 -5
- package/bundle/{subagent-runtime-LVECAUPV.js → subagent-runtime-3UJB4HUB.js} +6 -5
- package/bundle/system-status-ATGKRRQI.js +349 -0
- package/bundle/system-status-ATGKRRQI.js.map +7 -0
- package/bundle/{task-store-2XRDM3AW.js → task-store-W5BFIAIH.js} +6 -5
- package/bundle/{telegram-adapter-UJ3RYYV6.js → telegram-adapter-7G773NII.js} +35 -35
- package/bundle/{tool-registry-YU6WBXPA.js → tool-registry-J6TE3I2T.js} +25 -23
- package/bundle/{tool-sandbox-RNNPDR5M.js → tool-sandbox-4UC6GAKA.js} +6 -5
- package/bundle/{transport-config-OK3MZPJK.js → transport-config-KBF5W2DP.js} +9 -8
- package/bundle/{update-ENNPRW7Y.js → update-424ZZQQ6.js} +6 -6
- package/bundle/{update-check-SJB6GV3A.js → update-check-7UWKBJOP.js} +3 -2
- package/bundle/{update-check-SJB6GV3A.js.map → update-check-7UWKBJOP.js.map} +1 -1
- package/bundle/{usage-tracker-HRSGC7QC.js → usage-tracker-NXD364VX.js} +2 -2
- package/bundle/{user-registry-6PUJJ5J2.js → user-registry-35BW4XKM.js} +6 -5
- package/bundle/{wrapper-WLHLG4MI.js → wrapper-W66YICNZ.js} +3 -3
- package/bundle/{ws-peer-client-WHW3RJTD.js → ws-peer-client-AIXCXF7V.js} +15 -14
- package/bundle/{ws-peer-client-WHW3RJTD.js.map → ws-peer-client-AIXCXF7V.js.map} +2 -2
- package/package.json +4 -8
- 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-5V4VHKEA.js.map +0 -7
- package/bundle/chunk-72T2Q7IG.js.map +0 -7
- package/bundle/chunk-7RAGSHSH.js.map +0 -7
- package/bundle/chunk-7WHXTCVD.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-GCFIK6OB.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-J5NOL4DB.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-NP72ZB7P.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/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-WCFXJMGY.js.map} +0 -0
- /package/bundle/{agent-registry-563P4EUJ.js.map → agent-registry-GU7ABOK5.js.map} +0 -0
- /package/bundle/{bridge-lock-transport-LXCF2IVN.js.map → bridge-lock-transport-4ZH7QTJP.js.map} +0 -0
- /package/bundle/{browser-2VZOGOGX.js.map → browser-EJNS35NT.js.map} +0 -0
- /package/bundle/{capability-WXEA2WFK.js.map → capability-JFWX3IQF.js.map} +0 -0
- /package/bundle/{chunk-CB6S3ZRF.js.map → chunk-2FAZIA37.js.map} +0 -0
- /package/bundle/{chunk-2FZJDMAF.js.map → chunk-3CACHBDI.js.map} +0 -0
- /package/bundle/{chunk-O4GKI3Q3.js.map → chunk-4S554KLW.js.map} +0 -0
- /package/bundle/{chunk-SSCGWDIC.js.map → chunk-65VCEC32.js.map} +0 -0
- /package/bundle/{chunk-V2QIAXWZ.js.map → chunk-7BSQ5UQO.js.map} +0 -0
- /package/bundle/{chunk-E7MV7WFT.js.map → chunk-7Z3HBPRY.js.map} +0 -0
- /package/bundle/{chunk-TY26WMQY.js.map → chunk-AFREM7FX.js.map} +0 -0
- /package/bundle/{chunk-N5VROZ7A.js.map → chunk-B6ZN6COK.js.map} +0 -0
- /package/bundle/{chunk-YEOZN5IE.js.map → chunk-DYBW4XXL.js.map} +0 -0
- /package/bundle/{chunk-56D3Y44D.js.map → chunk-EFJVUJBE.js.map} +0 -0
- /package/bundle/{chunk-FIAVVKGN.js.map → chunk-EUZDKV3C.js.map} +0 -0
- /package/bundle/{chunk-2LKQV2ND.js.map → chunk-FRKW6LWB.js.map} +0 -0
- /package/bundle/{chunk-DNDYD5SL.js.map → chunk-GP4XUKI5.js.map} +0 -0
- /package/bundle/{chunk-W726UGI6.js.map → chunk-GRVWZO4C.js.map} +0 -0
- /package/bundle/{chunk-OOKNHOCB.js.map → chunk-GWILHZPT.js.map} +0 -0
- /package/bundle/{chunk-BNBC4T45.js.map → chunk-HT2BPTZY.js.map} +0 -0
- /package/bundle/{chunk-FVUL44T4.js.map → chunk-IJT4KWXT.js.map} +0 -0
- /package/bundle/{chunk-IK4R3RBZ.js.map → chunk-JNIHEDKF.js.map} +0 -0
- /package/bundle/{chunk-4PIVWXUJ.js.map → chunk-LUNA6PM5.js.map} +0 -0
- /package/bundle/{chunk-MV5KOWOR.js.map → chunk-NDCRWEEJ.js.map} +0 -0
- /package/bundle/{chunk-ZOCEBV62.js.map → chunk-OKAQICWY.js.map} +0 -0
- /package/bundle/{chunk-TCI6FZTP.js.map → chunk-OLAURO5G.js.map} +0 -0
- /package/bundle/{chunk-YME7NRGP.js.map → chunk-OXTSWQCX.js.map} +0 -0
- /package/bundle/{chunk-HDOFJVFS.js.map → chunk-PEDX56EL.js.map} +0 -0
- /package/bundle/{chunk-ASYX43OU.js.map → chunk-Q32H6VPU.js.map} +0 -0
- /package/bundle/{chunk-IQKADER4.js.map → chunk-RWRRGE4U.js.map} +0 -0
- /package/bundle/{chunk-ULO2PX3T.js.map → chunk-TEFZ4JA4.js.map} +0 -0
- /package/bundle/{chunk-2RGR3LSV.js.map → chunk-TMUYFERL.js.map} +0 -0
- /package/bundle/{chunk-KBPVJGD7.js.map → chunk-URQPDCK5.js.map} +0 -0
- /package/bundle/{chunk-FJF42RZY.js.map → chunk-VUIX5AGB.js.map} +0 -0
- /package/bundle/{chunk-4HNCOQSK.js.map → chunk-WYHGNI56.js.map} +0 -0
- /package/bundle/{chunk-24V4A6RP.js.map → chunk-XX6BGTPO.js.map} +0 -0
- /package/bundle/{chunk-T7TAWGBX.js.map → chunk-Y76VUJSF.js.map} +0 -0
- /package/bundle/{chunk-TVSPVZTX.js.map → chunk-YDY6QVWJ.js.map} +0 -0
- /package/bundle/{chunk-V6CV3QPH.js.map → chunk-YRSMGJFP.js.map} +0 -0
- /package/bundle/{chunk-WP7FZHMI.js.map → chunk-YSKCQH6E.js.map} +0 -0
- /package/bundle/{chunk-NGZVJ52F.js.map → chunk-ZKJOFASV.js.map} +0 -0
- /package/bundle/{chunk-43DKPXTP.js.map → chunk-ZV4IWKDJ.js.map} +0 -0
- /package/bundle/{commands-XXFU2ZF7.js.map → commands-EWA4HNCM.js.map} +0 -0
- /package/bundle/{config-EWDZ234X.js.map → config-M3P5IOAI.js.map} +0 -0
- /package/bundle/{config-show-6J33O4TE.js.map → config-show-3DHPP26D.js.map} +0 -0
- /package/bundle/{daemon-LTDAXNA2.js.map → daemon-TB23FFWY.js.map} +0 -0
- /package/bundle/{delegation-tools-YDTWQMZD.js.map → delegation-tools-P2SCNL23.js.map} +0 -0
- /package/bundle/{deploy-lib-import-RGZJ3CGC.js.map → deploy-YYUCGGP3.js.map} +0 -0
- /package/bundle/{doctor-probes-3SLIUGKS.js.map → deploy-lib-import-T3UP4G6G.js.map} +0 -0
- /package/bundle/{discord-adapter-WUNYPTDE.js.map → discord-adapter-4TTETYDI.js.map} +0 -0
- /package/bundle/{env-schema-MSDP2YBO.js.map → doctor-probes-VDWFJKUB.js.map} +0 -0
- /package/bundle/{gossip-CS3G3447.js.map → env-schema-4JXQUOH4.js.map} +0 -0
- /package/bundle/{guardrails-24XK2COI.js.map → gossip-3C3BSNPN.js.map} +0 -0
- /package/bundle/{heartbeat-system-G4IFQXT6.js.map → guardrails-DL7ZSWVN.js.map} +0 -0
- /package/bundle/{hook-system-X6INNJGV.js.map → heartbeat-system-TDDIOVTC.js.map} +0 -0
- /package/bundle/{hotskills-6FQYTJIO.js.map → hook-system-M3POLUIB.js.map} +0 -0
- /package/bundle/{kanban-board-J6RO3ZU7.js.map → hotskills-FWX4QI7V.js.map} +0 -0
- /package/bundle/{kanban-channel-5EIXBFSA.js.map → kanban-board-M326B2XJ.js.map} +0 -0
- /package/bundle/{lazy-require-V6EFUATC.js.map → kanban-channel-IJ52OMNA.js.map} +0 -0
- /package/bundle/{logger-Y3VILPRH.js.map → lazy-require-KCRVT4SI.js.map} +0 -0
- /package/bundle/{main-chat-YLZDNQPO.js.map → logger-OWCSNYCA.js.map} +0 -0
- /package/bundle/{logs-YS3GDURO.js.map → logs-FXS4SCEM.js.map} +0 -0
- /package/bundle/{master-user-Z4M7KCJE.js.map → main-chat-ZNUZCTNS.js.map} +0 -0
- /package/bundle/{message-pipeline-MHEBDJLH.js.map → master-user-HSKM4ZFN.js.map} +0 -0
- /package/bundle/{nerve-VZNMFDGY.js.map → message-pipeline-KSONH4MT.js.map} +0 -0
- /package/bundle/{notification-VV2OR6NW.js.map → nerve-IGSXBKZZ.js.map} +0 -0
- /package/bundle/{orc-tools-CHRSXSAS.js.map → notification-BFSIEECG.js.map} +0 -0
- /package/bundle/{orc-KC4USP55.js.map → orc-EIGVTHAV.js.map} +0 -0
- /package/bundle/{paths-EDK6KWHG.js.map → orc-tools-A3G7WCSJ.js.map} +0 -0
- /package/bundle/{paths-RZF6WDMG.js.map → paths-3ZVW3NFL.js.map} +0 -0
- /package/bundle/{peer-auth-SRONOLNG.js.map → paths-X4LRYUI6.js.map} +0 -0
- /package/bundle/{peer-config-FRWLEYQ5.js.map → peer-auth-QC4EF2PM.js.map} +0 -0
- /package/bundle/{peer-jwt-XY3XRIA2.js.map → peer-config-TN55LFDC.js.map} +0 -0
- /package/bundle/{peer-transport-UBBXTDRP.js.map → peer-jwt-NCCPXJRX.js.map} +0 -0
- /package/bundle/{phase-config-V4XETN5F.js.map → peer-transport-I6JPLFZ2.js.map} +0 -0
- /package/bundle/{phase-transport-4NQHZX75.js.map → phase-transport-2BRWACDF.js.map} +0 -0
- /package/bundle/{reconcile-2EUXJ6W5.js.map → reconcile-CTFCLQRN.js.map} +0 -0
- /package/bundle/{registry-client-VN2MM2HI.js.map → rollback-ANRI3T5Z.js.map} +0 -0
- /package/bundle/{rollback-MVZ53XS4.js.map → sha-tracker-ZWBP6CIJ.js.map} +0 -0
- /package/bundle/{sandbox-runtime-WHACQLLN.js.map → skill-stats-JORH5DGM.js.map} +0 -0
- /package/bundle/{sha-tracker-2DB4R2TW.js.map → skill-watcher-E4MGLKLS.js.map} +0 -0
- /package/bundle/{skill-stats-TPD2NROA.js.map → sleep-SRCSXY6T.js.map} +0 -0
- /package/bundle/{skill-watcher-D7QYYYON.js.map → soul-bundle-VWAVHCZ6.js.map} +0 -0
- /package/bundle/{sleep-GH6DLBJJ.js.map → spin-IMW2MZOH.js.map} +0 -0
- /package/bundle/{soul-bundle-GXLMDBCC.js.map → spin-types-BLPYAETA.js.map} +0 -0
- /package/bundle/{spin-4DBYHS3E.js.map → src-6BTCMOD3.js.map} +0 -0
- /package/bundle/{spin-types-PLJH3SIK.js.map → stt-LGVPXMVR.js.map} +0 -0
- /package/bundle/{src-SUFZ27S5.js.map → subagent-runtime-3UJB4HUB.js.map} +0 -0
- /package/bundle/{stt-KD3AABKG.js.map → task-store-W5BFIAIH.js.map} +0 -0
- /package/bundle/{telegram-adapter-UJ3RYYV6.js.map → telegram-adapter-7G773NII.js.map} +0 -0
- /package/bundle/{subagent-runtime-LVECAUPV.js.map → tool-registry-J6TE3I2T.js.map} +0 -0
- /package/bundle/{task-store-2XRDM3AW.js.map → tool-sandbox-4UC6GAKA.js.map} +0 -0
- /package/bundle/{tool-registry-YU6WBXPA.js.map → transport-config-KBF5W2DP.js.map} +0 -0
- /package/bundle/{tool-sandbox-RNNPDR5M.js.map → update-424ZZQQ6.js.map} +0 -0
- /package/bundle/{transport-config-OK3MZPJK.js.map → usage-tracker-NXD364VX.js.map} +0 -0
- /package/bundle/{update-ENNPRW7Y.js.map → user-registry-35BW4XKM.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-OKAQICWY.js";
|
|
9
9
|
import {
|
|
10
10
|
ModelNotFoundError
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-LUW62WGO.js";
|
|
12
12
|
import {
|
|
13
13
|
abmind
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-UUIHL65U.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-NRUSRJXR.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-EFJVUJBE.js";
|
|
26
|
+
import {
|
|
27
|
+
init_user_registry,
|
|
28
|
+
loadUsers
|
|
29
|
+
} from "./chunk-ZV4IWKDJ.js";
|
|
29
30
|
import {
|
|
30
31
|
init_spin_types,
|
|
31
32
|
parseSessionType,
|
|
32
33
|
sessionType,
|
|
33
34
|
typeLabel
|
|
34
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-Y76VUJSF.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-GRVWZO4C.js";
|
|
47
44
|
import {
|
|
48
45
|
readEntries
|
|
49
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-PEDX56EL.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-65VCEC32.js";
|
|
58
55
|
import {
|
|
59
56
|
init_log_and_swallow,
|
|
60
57
|
logAndSwallow
|
|
61
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-YSKCQH6E.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-GWILHZPT.js";
|
|
70
67
|
import {
|
|
71
68
|
abtarsHome,
|
|
72
69
|
init_paths
|
|
73
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-GALQBVKO.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-IMW2MZOH.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-IMW2MZOH.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-IMW2MZOH.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-IMW2MZOH.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-IMW2MZOH.js");
|
|
1430
|
+
const { sessionType: sessionType2 } = await import("./spin-types-BLPYAETA.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-4UC6GAKA.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-35BW4XKM.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-M3POLUIB.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-M3POLUIB.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-KBF5W2DP.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-KBF5W2DP.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-KBF5W2DP.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-KBF5W2DP.js");
|
|
2045
|
+
const { getEnv: getEnv2 } = await import("./env-schema-4JXQUOH4.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-KBF5W2DP.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-KBF5W2DP.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-4JXQUOH4.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-KBF5W2DP.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-KBF5W2DP.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-KBF5W2DP.js");
|
|
2169
|
+
const { getEnv: getEnv2 } = await import("./env-schema-4JXQUOH4.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-KBF5W2DP.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-KBF5W2DP.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-KBF5W2DP.js");
|
|
2247
|
+
const { getEnv: getEnv2 } = await import("./env-schema-4JXQUOH4.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-VDWFJKUB.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-VDWFJKUB.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-ATGKRRQI.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-4JXQUOH4.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-IMW2MZOH.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-TDDIOVTC.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-ZWBP6CIJ.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-ZWBP6CIJ.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-ZWBP6CIJ.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-ZWBP6CIJ.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-IMW2MZOH.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-IMW2MZOH.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-KBF5W2DP.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-TDDIOVTC.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-KBF5W2DP.js");
|
|
2581
2578
|
const tc = lt();
|
|
2582
2579
|
const prof = tc ? ra("professor", tc) : null;
|
|
2583
2580
|
const provider = prof?.providerName ?? "unknown";
|
|
@@ -2601,10 +2598,15 @@ async function buildStatusLines(ctx) {
|
|
|
2601
2598
|
lines.push(`\u{1F50C} Capabilities: ${ctx.loadedCapabilities.join(", ")}`);
|
|
2602
2599
|
}
|
|
2603
2600
|
try {
|
|
2604
|
-
const { readdirSync: readdirSync3 } = await import("node:fs");
|
|
2605
|
-
const
|
|
2606
|
-
const
|
|
2607
|
-
|
|
2601
|
+
const { readdirSync: readdirSync3, existsSync } = await import("node:fs");
|
|
2602
|
+
const { abmindHome } = await import("./paths-X4LRYUI6.js");
|
|
2603
|
+
const sleepDir = join2(abmindHome(), "memory", "sleep");
|
|
2604
|
+
if (!existsSync(sleepDir)) {
|
|
2605
|
+
lines.push("\u{1F634} Last sleep: (never)");
|
|
2606
|
+
} else {
|
|
2607
|
+
const files = readdirSync3(sleepDir).filter((f) => f.startsWith("sleep_")).sort();
|
|
2608
|
+
lines.push(`\u{1F634} Last sleep: ${files.length > 0 ? files[files.length - 1] : "(never)"}`);
|
|
2609
|
+
}
|
|
2608
2610
|
} catch {
|
|
2609
2611
|
lines.push("\u{1F634} Last sleep: (unknown)");
|
|
2610
2612
|
}
|
|
@@ -2645,8 +2647,8 @@ function formatUptime(ms) {
|
|
|
2645
2647
|
return h > 0 ? `${h}h ${m}m` : `${m}m`;
|
|
2646
2648
|
}
|
|
2647
2649
|
async function handleUsage(_text, ctx) {
|
|
2648
|
-
const { readUsage, resetUsage } = await import("./usage-tracker-
|
|
2649
|
-
const { loadModels } = await import("./transport-config-
|
|
2650
|
+
const { readUsage, resetUsage } = await import("./usage-tracker-NXD364VX.js");
|
|
2651
|
+
const { loadModels } = await import("./transport-config-KBF5W2DP.js");
|
|
2650
2652
|
const arg = _text.replace("/usage", "").trim();
|
|
2651
2653
|
if (arg === "reset") {
|
|
2652
2654
|
resetUsage();
|
|
@@ -2697,13 +2699,13 @@ async function handleUsage(_text, ctx) {
|
|
|
2697
2699
|
`;
|
|
2698
2700
|
}
|
|
2699
2701
|
}
|
|
2700
|
-
const { fetchOpenRouterCredits } = await import("./openrouter-credits-
|
|
2702
|
+
const { fetchOpenRouterCredits } = await import("./openrouter-credits-NTVZDRYM.js");
|
|
2701
2703
|
const credits = await fetchOpenRouterCredits();
|
|
2702
2704
|
if (credits) {
|
|
2703
2705
|
msg += `
|
|
2704
2706
|
\u{1F4B3} OpenRouter: $${credits.remaining.toFixed(2)} remaining ($${credits.purchased.toFixed(2)} purchased, $${credits.used.toFixed(2)} used)`;
|
|
2705
2707
|
}
|
|
2706
|
-
const { getBudgetStatus } = await import("./budget-
|
|
2708
|
+
const { getBudgetStatus } = await import("./budget-45QOBDWA.js");
|
|
2707
2709
|
const budgetItems = getBudgetStatus();
|
|
2708
2710
|
if (budgetItems.length > 0) {
|
|
2709
2711
|
msg += `
|
|
@@ -2720,7 +2722,7 @@ async function handleUsage(_text, ctx) {
|
|
|
2720
2722
|
return true;
|
|
2721
2723
|
}
|
|
2722
2724
|
async function handleOpenRouter(_text, ctx) {
|
|
2723
|
-
const { fetchOpenRouterCredits } = await import("./openrouter-credits-
|
|
2725
|
+
const { fetchOpenRouterCredits } = await import("./openrouter-credits-NTVZDRYM.js");
|
|
2724
2726
|
const credits = await fetchOpenRouterCredits();
|
|
2725
2727
|
if (!credits) {
|
|
2726
2728
|
await ctx.reply("\u274C OpenRouter API key not set or request failed.");
|
|
@@ -2736,7 +2738,7 @@ Remaining: $${credits.remaining.toFixed(2)}`
|
|
|
2736
2738
|
return true;
|
|
2737
2739
|
}
|
|
2738
2740
|
async function handleWhoami(_text, ctx) {
|
|
2739
|
-
const { loadUsers: loadUsers2 } = await import("./user-registry-
|
|
2741
|
+
const { loadUsers: loadUsers2 } = await import("./user-registry-35BW4XKM.js");
|
|
2740
2742
|
const reg = loadUsers2();
|
|
2741
2743
|
const CLASS_NAMES = ["UNCLASSIFIED", "RESTRICTED", "CONFIDENTIAL", "SECRET"];
|
|
2742
2744
|
const user = ctx.userId ? reg.byUserId.get(ctx.userId) : void 0;
|
|
@@ -2753,10 +2755,10 @@ chatId: ${ctx.chatId}`);
|
|
|
2753
2755
|
}
|
|
2754
2756
|
async function handleSoftware(_text, ctx) {
|
|
2755
2757
|
const { existsSync } = await import("node:fs");
|
|
2756
|
-
const { abtarsHome: abtarsHome2 } = await import("./paths-
|
|
2758
|
+
const { abtarsHome: abtarsHome2 } = await import("./paths-X4LRYUI6.js");
|
|
2757
2759
|
const home = abtarsHome2();
|
|
2758
2760
|
const arg = _text.replace(/^\/(software|update)\s*/i, "").trim();
|
|
2759
|
-
const { loadUsers: loadUsers2 } = await import("./user-registry-
|
|
2761
|
+
const { loadUsers: loadUsers2 } = await import("./user-registry-35BW4XKM.js");
|
|
2760
2762
|
const user = loadUsers2().byUserId.get(ctx.userId);
|
|
2761
2763
|
const isMaster = user?.role === "master";
|
|
2762
2764
|
if (arg.startsWith("rollback")) {
|
|
@@ -2776,7 +2778,7 @@ async function handleSoftware(_text, ctx) {
|
|
|
2776
2778
|
}
|
|
2777
2779
|
await ctx.reply(`\u26A0\uFE0F Rolling back to slot ${asSlot}...`);
|
|
2778
2780
|
try {
|
|
2779
|
-
const { rollback } = await import("./rollback-
|
|
2781
|
+
const { rollback } = await import("./rollback-ANRI3T5Z.js");
|
|
2780
2782
|
const code = await rollback({ to: asSlot });
|
|
2781
2783
|
if (code !== 0) {
|
|
2782
2784
|
await ctx.reply(`\u274C Rollback failed (exit ${code}).`);
|
|
@@ -2919,7 +2921,7 @@ ${stderr.slice(-300)}`).catch(() => {
|
|
|
2919
2921
|
}
|
|
2920
2922
|
const lines = ["\u{1F527} Software"];
|
|
2921
2923
|
try {
|
|
2922
|
-
const { getDeployedVersion } = await import("./paths-
|
|
2924
|
+
const { getDeployedVersion } = await import("./paths-X4LRYUI6.js");
|
|
2923
2925
|
const ver = getDeployedVersion();
|
|
2924
2926
|
const manifest = existsSync(join2(home, "manifest.json")) ? JSON.parse(readFileSync(join2(home, "manifest.json"), "utf-8")) : null;
|
|
2925
2927
|
const deployed = manifest?.activatedAt ? new Date(manifest.activatedAt).toLocaleString() : "unknown";
|
|
@@ -2936,12 +2938,12 @@ ${stderr.slice(-300)}`).catch(() => {
|
|
|
2936
2938
|
lines.push(" abtars: unknown");
|
|
2937
2939
|
}
|
|
2938
2940
|
lines.push("");
|
|
2939
|
-
const { getEnv: getEnv2 } = await import("./env-schema-
|
|
2941
|
+
const { getEnv: getEnv2 } = await import("./env-schema-4JXQUOH4.js");
|
|
2940
2942
|
const memoryProvider = getEnv2().memory;
|
|
2941
2943
|
if (memoryProvider === "abmind" || memoryProvider === "auto") {
|
|
2942
2944
|
const abmindBundlePkg = join2(home, "app", "bundle", "node_modules", "abmind", "package.json");
|
|
2943
2945
|
const abmindAppPkg = join2(home, "app", "node_modules", "abmind", "package.json");
|
|
2944
|
-
const { abmindHome: resolveAbmind } = await import("./paths-
|
|
2946
|
+
const { abmindHome: resolveAbmind } = await import("./paths-X4LRYUI6.js");
|
|
2945
2947
|
const abmHome = resolveAbmind();
|
|
2946
2948
|
const abmindManifest = join2(abmHome, "manifest.json");
|
|
2947
2949
|
const abmindPkgPath = existsSync(abmindBundlePkg) ? abmindBundlePkg : existsSync(abmindAppPkg) ? abmindAppPkg : null;
|
|
@@ -3054,6 +3056,140 @@ Cron depth: avg=${s.cronDepth.avg} max=${s.cronDepth.max}`);
|
|
|
3054
3056
|
return true;
|
|
3055
3057
|
}
|
|
3056
3058
|
|
|
3059
|
+
// src/components/nlm-command-handler.ts
|
|
3060
|
+
init_env_schema();
|
|
3061
|
+
init_logger();
|
|
3062
|
+
init_log_and_swallow();
|
|
3063
|
+
import { execFile } from "node:child_process";
|
|
3064
|
+
var TAG7 = "NLMCommand";
|
|
3065
|
+
var TIMEOUT_MS = 12e4;
|
|
3066
|
+
function loadNLMConfig() {
|
|
3067
|
+
const raw = String(getEnv().notebooklmEnabled);
|
|
3068
|
+
return {
|
|
3069
|
+
enabled: raw === "true" || raw === "1",
|
|
3070
|
+
defaultNotebook: getEnv().notebooklmDefaultNotebook
|
|
3071
|
+
};
|
|
3072
|
+
}
|
|
3073
|
+
function nlmExec(args) {
|
|
3074
|
+
const start = Date.now();
|
|
3075
|
+
logDebug(TAG7, `nlm ${args.join(" ")}`);
|
|
3076
|
+
return new Promise((resolve) => {
|
|
3077
|
+
const ac = new AbortController();
|
|
3078
|
+
const timer = setTimeout(() => ac.abort(), TIMEOUT_MS);
|
|
3079
|
+
try {
|
|
3080
|
+
execFile("nlm", args, { signal: ac.signal, maxBuffer: 10 * 1024 * 1024 }, (err, stdout, stderr) => {
|
|
3081
|
+
clearTimeout(timer);
|
|
3082
|
+
logDebug(TAG7, `nlm completed in ${Date.now() - start}ms`);
|
|
3083
|
+
if (err) {
|
|
3084
|
+
if (err.name === "AbortError" || err.code === "ABORT_ERR") {
|
|
3085
|
+
resolve({ ok: false, error: `Timeout after ${TIMEOUT_MS / 1e3}s` });
|
|
3086
|
+
return;
|
|
3087
|
+
}
|
|
3088
|
+
resolve({ ok: false, error: stderr?.trim() || err.message });
|
|
3089
|
+
return;
|
|
3090
|
+
}
|
|
3091
|
+
resolve({ ok: true, data: stdout.trim() });
|
|
3092
|
+
});
|
|
3093
|
+
} catch (err) {
|
|
3094
|
+
clearTimeout(timer);
|
|
3095
|
+
resolve({ ok: false, error: err instanceof Error ? err.message : String(err) });
|
|
3096
|
+
}
|
|
3097
|
+
});
|
|
3098
|
+
}
|
|
3099
|
+
async function handleNLMCommand(args, config) {
|
|
3100
|
+
if (!config.enabled) {
|
|
3101
|
+
return { text: "\u{1F4DA} Knowledge base is disabled." };
|
|
3102
|
+
}
|
|
3103
|
+
const parts = args.split(/\s+/).filter(Boolean);
|
|
3104
|
+
const sub = parts[0] ?? "";
|
|
3105
|
+
try {
|
|
3106
|
+
switch (sub) {
|
|
3107
|
+
case "list":
|
|
3108
|
+
return await handleList();
|
|
3109
|
+
case "create":
|
|
3110
|
+
return await handleCreate(parts.slice(1).join(" "));
|
|
3111
|
+
case "sources":
|
|
3112
|
+
return await handleSources(parts[1] ?? "");
|
|
3113
|
+
case "query":
|
|
3114
|
+
return await handleQuery(parts.slice(1).join(" "), config);
|
|
3115
|
+
default:
|
|
3116
|
+
return { text: "Usage: /nlm list | /nlm create <name> | /nlm sources <notebook-id> | /nlm query <question>" };
|
|
3117
|
+
}
|
|
3118
|
+
} catch (err) {
|
|
3119
|
+
logError(TAG7, "NLM command failed", err);
|
|
3120
|
+
return { text: `\u274C NLM error: ${err instanceof Error ? err.message : String(err)}` };
|
|
3121
|
+
}
|
|
3122
|
+
}
|
|
3123
|
+
async function handleList() {
|
|
3124
|
+
const result = await nlmExec(["notebook", "list", "--json"]);
|
|
3125
|
+
if (!result.ok) return { text: `\u274C ${result.error}` };
|
|
3126
|
+
try {
|
|
3127
|
+
const notebooks = JSON.parse(result.data);
|
|
3128
|
+
if (!Array.isArray(notebooks) || notebooks.length === 0) return { text: "\u{1F4DA} No notebooks found." };
|
|
3129
|
+
const lines = notebooks.map(
|
|
3130
|
+
(n) => `\u2022 ${n.title ?? n.name ?? "?"} (${n.id ?? n.notebook_id ?? "?"})`
|
|
3131
|
+
);
|
|
3132
|
+
return { text: `\u{1F4DA} Notebooks:
|
|
3133
|
+
|
|
3134
|
+
${lines.join("\n")}` };
|
|
3135
|
+
} catch (err) {
|
|
3136
|
+
logAndSwallow(TAG7, "JSON.parse notebook list", err);
|
|
3137
|
+
return { text: `\u{1F4DA} ${result.data}` };
|
|
3138
|
+
}
|
|
3139
|
+
}
|
|
3140
|
+
async function handleCreate(name) {
|
|
3141
|
+
if (!name) return { text: "Usage: /nlm create <name>" };
|
|
3142
|
+
const result = await nlmExec(["notebook", "create", name, "--json"]);
|
|
3143
|
+
if (!result.ok) return { text: `\u274C ${result.error}` };
|
|
3144
|
+
try {
|
|
3145
|
+
const parsed = JSON.parse(result.data);
|
|
3146
|
+
const id = parsed.notebook_id ?? parsed.id ?? "?";
|
|
3147
|
+
logInfo(TAG7, `Created notebook "${name}" \u2192 ${id}`);
|
|
3148
|
+
return { text: `\u2713 Notebook "${name}" created (${id})` };
|
|
3149
|
+
} catch (err) {
|
|
3150
|
+
logAndSwallow(TAG7, "JSON.parse notebook create", err);
|
|
3151
|
+
return { text: `\u2713 ${result.data}` };
|
|
3152
|
+
}
|
|
3153
|
+
}
|
|
3154
|
+
async function handleSources(notebookId) {
|
|
3155
|
+
if (!notebookId) return { text: "Usage: /nlm sources <notebook-id>" };
|
|
3156
|
+
const result = await nlmExec(["source", "list", notebookId, "--json"]);
|
|
3157
|
+
if (!result.ok) return { text: `\u274C ${result.error}` };
|
|
3158
|
+
try {
|
|
3159
|
+
const sources = JSON.parse(result.data);
|
|
3160
|
+
if (!Array.isArray(sources) || sources.length === 0) return { text: `\u{1F4C4} No sources in notebook.` };
|
|
3161
|
+
const lines = sources.map(
|
|
3162
|
+
(s) => `\u2022 [${s.type ?? s.source_type ?? "?"}] ${s.title ?? s.name ?? "?"}`
|
|
3163
|
+
);
|
|
3164
|
+
return { text: `\u{1F4C4} Sources:
|
|
3165
|
+
|
|
3166
|
+
${lines.join("\n")}` };
|
|
3167
|
+
} catch (err) {
|
|
3168
|
+
logAndSwallow(TAG7, "JSON.parse source list", err);
|
|
3169
|
+
return { text: `\u{1F4C4} ${result.data}` };
|
|
3170
|
+
}
|
|
3171
|
+
}
|
|
3172
|
+
async function handleQuery(question, config) {
|
|
3173
|
+
if (!question) return { text: "Usage: /nlm query <question>" };
|
|
3174
|
+
const nbId = config.defaultNotebook;
|
|
3175
|
+
if (!nbId) return { text: "\u274C No default notebook configured (NOTEBOOKLM_DEFAULT_NOTEBOOK)." };
|
|
3176
|
+
const result = await nlmExec(["notebook", "query", nbId, question, "--json"]);
|
|
3177
|
+
if (!result.ok) return { text: `\u274C ${result.error}` };
|
|
3178
|
+
try {
|
|
3179
|
+
const parsed = JSON.parse(result.data);
|
|
3180
|
+
const answer = parsed.answer ?? parsed.response ?? result.data;
|
|
3181
|
+
const sources = parsed.sources_used ?? parsed.citations ?? [];
|
|
3182
|
+
const citations = Array.isArray(sources) && sources.length > 0 ? `
|
|
3183
|
+
|
|
3184
|
+
\u{1F4CE} Sources: ${sources.map((s) => s.title ?? s.name ?? s.source_name ?? "?").join(", ")}` : "";
|
|
3185
|
+
logInfo(TAG7, `Query OK \u2014 answerLen=${String(answer).length}`);
|
|
3186
|
+
return { text: `\u{1F4DA} ${answer}${citations}` };
|
|
3187
|
+
} catch (err) {
|
|
3188
|
+
logAndSwallow(TAG7, "JSON.parse query result", err);
|
|
3189
|
+
return { text: `\u{1F4DA} ${result.data}` };
|
|
3190
|
+
}
|
|
3191
|
+
}
|
|
3192
|
+
|
|
3057
3193
|
// src/components/commands/handlers-memory.ts
|
|
3058
3194
|
async function handleMemory(_text, ctx) {
|
|
3059
3195
|
if (!ctx.memory) {
|
|
@@ -3115,7 +3251,7 @@ import { spawn } from "node:child_process";
|
|
|
3115
3251
|
import { readFileSync as readFileSync2, readdirSync as readdirSync2, unlinkSync } from "node:fs";
|
|
3116
3252
|
import { join as join3 } from "node:path";
|
|
3117
3253
|
import { platform } from "node:os";
|
|
3118
|
-
var
|
|
3254
|
+
var TAG8 = "cmd";
|
|
3119
3255
|
async function handleSleep(_text, ctx) {
|
|
3120
3256
|
const sleepStatus = readBridgeLockField("sleepStatus") ?? "awake";
|
|
3121
3257
|
const progress = ctx.sleepProgress?.();
|
|
@@ -3178,7 +3314,7 @@ async function handleSleepSub(text, ctx) {
|
|
|
3178
3314
|
}
|
|
3179
3315
|
writeForceSleep("resume via /sleep resume");
|
|
3180
3316
|
await ctx.reply("Sleep resume queued");
|
|
3181
|
-
logInfo(
|
|
3317
|
+
logInfo(TAG8, "Sleep resume triggered via /sleep resume");
|
|
3182
3318
|
return true;
|
|
3183
3319
|
}
|
|
3184
3320
|
if (sub === "now") {
|
|
@@ -3194,7 +3330,7 @@ async function handleSleepSub(text, ctx) {
|
|
|
3194
3330
|
}
|
|
3195
3331
|
writeForceSleep("fresh via /sleep now");
|
|
3196
3332
|
await ctx.reply("\u{1F4A4} Full sleep cycle initiated");
|
|
3197
|
-
logInfo(
|
|
3333
|
+
logInfo(TAG8, "Fresh sleep triggered via /sleep now");
|
|
3198
3334
|
return true;
|
|
3199
3335
|
}
|
|
3200
3336
|
await ctx.reply("Unknown subcommand. Use /sleep, /sleep resume, or /sleep now.");
|
|
@@ -3235,7 +3371,7 @@ function readLatestSleepLock(auditDir) {
|
|
|
3235
3371
|
const date = dateMatch ? `${dateMatch[1]}-${dateMatch[2]}-${dateMatch[3]}` : "unknown";
|
|
3236
3372
|
return { date, status: raw.status ?? "unknown", llmCalls: raw.llmCalls ?? 0, startedAt: raw.startedAt, steps: raw.steps ?? {} };
|
|
3237
3373
|
} catch (err) {
|
|
3238
|
-
logAndSwallow(
|
|
3374
|
+
logAndSwallow(TAG8, "readLastSleepAudit", err);
|
|
3239
3375
|
return null;
|
|
3240
3376
|
}
|
|
3241
3377
|
}
|
|
@@ -3246,10 +3382,10 @@ function todayLockPath(auditDir) {
|
|
|
3246
3382
|
}
|
|
3247
3383
|
|
|
3248
3384
|
// src/components/commands/exec-async.ts
|
|
3249
|
-
import { execFile } from "node:child_process";
|
|
3385
|
+
import { execFile as execFile2 } from "node:child_process";
|
|
3250
3386
|
function execAsync(cmd, args, timeoutMs) {
|
|
3251
3387
|
return new Promise((resolve) => {
|
|
3252
|
-
const child =
|
|
3388
|
+
const child = execFile2(cmd, args, { timeout: timeoutMs, encoding: "utf-8" }, (err, stdout) => {
|
|
3253
3389
|
resolve(err ? null : stdout.trim());
|
|
3254
3390
|
});
|
|
3255
3391
|
child.stderr?.resume();
|
|
@@ -3259,13 +3395,13 @@ function execAsync(cmd, args, timeoutMs) {
|
|
|
3259
3395
|
// src/components/commands/handlers-tasks.ts
|
|
3260
3396
|
init_logger();
|
|
3261
3397
|
init_log_and_swallow();
|
|
3262
|
-
var
|
|
3398
|
+
var TAG9 = "cmd_tasks";
|
|
3263
3399
|
async function handleTasksList(_text, ctx) {
|
|
3264
3400
|
const tz = process.env["TZ"] || Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
3265
3401
|
const now = (/* @__PURE__ */ new Date()).toLocaleString("en-GB", { timeZone: tz, dateStyle: "medium", timeStyle: "medium" });
|
|
3266
3402
|
let listing;
|
|
3267
3403
|
try {
|
|
3268
|
-
const { readEntries: readEntries2 } = await import("./task-store-
|
|
3404
|
+
const { readEntries: readEntries2 } = await import("./task-store-W5BFIAIH.js");
|
|
3269
3405
|
const entries = readEntries2();
|
|
3270
3406
|
const active = entries.filter((e) => !e.fired);
|
|
3271
3407
|
active.sort((a, b) => {
|
|
@@ -3314,7 +3450,7 @@ async function handleTasksList(_text, ctx) {
|
|
|
3314
3450
|
if (ctx.cronCurrentJob) {
|
|
3315
3451
|
const j = ctx.cronCurrentJob;
|
|
3316
3452
|
const ago = Math.round((Date.now() - j.startedAt) / 1e3);
|
|
3317
|
-
const name = j.message.split("\n")[0].slice(0, 30);
|
|
3453
|
+
const name = (j.message.split("\n")[0] ?? "").slice(0, 30);
|
|
3318
3454
|
running = `
|
|
3319
3455
|
~ Running: ${name} (${ago}s)`;
|
|
3320
3456
|
}
|
|
@@ -3330,7 +3466,7 @@ async function handleTasksTrigger(text, ctx) {
|
|
|
3330
3466
|
return true;
|
|
3331
3467
|
}
|
|
3332
3468
|
let id = raw;
|
|
3333
|
-
const { readEntry, readEntries: readEntries2 } = await import("./task-store-
|
|
3469
|
+
const { readEntry, readEntries: readEntries2 } = await import("./task-store-W5BFIAIH.js");
|
|
3334
3470
|
if (!readEntry(id)) {
|
|
3335
3471
|
const normalized = raw.toLowerCase().replace(/\s+/g, "-");
|
|
3336
3472
|
if (readEntry(normalized)) {
|
|
@@ -3348,7 +3484,7 @@ async function handleTasksTrigger(text, ctx) {
|
|
|
3348
3484
|
let name = id;
|
|
3349
3485
|
try {
|
|
3350
3486
|
const entry = readEntry(id);
|
|
3351
|
-
if (entry) name = entry.title || entry.message.split("\n")[0].slice(0, 30);
|
|
3487
|
+
if (entry) name = entry.title || (entry.message.split("\n")[0] ?? "").slice(0, 30);
|
|
3352
3488
|
} catch {
|
|
3353
3489
|
}
|
|
3354
3490
|
await ctx.reply(`Running task: ${name}`);
|
|
@@ -3377,7 +3513,7 @@ ${lines.join("\n") || "(no runs)"}
|
|
|
3377
3513
|
if (placeholderId !== void 0 && ctx.editReply) await ctx.editReply(placeholderId, body);
|
|
3378
3514
|
else await ctx.reply(body, { parseMode: "Markdown" });
|
|
3379
3515
|
} catch (err) {
|
|
3380
|
-
logAndSwallow(
|
|
3516
|
+
logAndSwallow(TAG9, "read task history", err);
|
|
3381
3517
|
const msg = "\u274C Failed to read history";
|
|
3382
3518
|
if (placeholderId !== void 0 && ctx.editReply) await ctx.editReply(placeholderId, msg);
|
|
3383
3519
|
else await ctx.reply(msg);
|
|
@@ -3403,7 +3539,7 @@ async function handleTaskPause(text, ctx) {
|
|
|
3403
3539
|
}
|
|
3404
3540
|
async function handleKanban(text, ctx) {
|
|
3405
3541
|
try {
|
|
3406
|
-
const { kanbanList } = await import("./kanban-board-
|
|
3542
|
+
const { kanbanList } = await import("./kanban-board-M326B2XJ.js");
|
|
3407
3543
|
const arg = text.replace(/^\/kanban\s*/, "").trim();
|
|
3408
3544
|
const ALLOWED_FILTERS = /* @__PURE__ */ new Set(["status", "source", "priority", "labels", "type"]);
|
|
3409
3545
|
let filterVal;
|
|
@@ -3453,9 +3589,9 @@ async function handleKanban(text, ctx) {
|
|
|
3453
3589
|
}
|
|
3454
3590
|
async function handleChannel(text, ctx) {
|
|
3455
3591
|
const args = text.replace(/^\/channel\s*/i, "").trim();
|
|
3456
|
-
const { channelRead, channelPost } = await import("./kanban-channel-
|
|
3592
|
+
const { channelRead, channelPost } = await import("./kanban-channel-IJ52OMNA.js");
|
|
3457
3593
|
if (!args) {
|
|
3458
|
-
const { kanbanList } = await import("./kanban-board-
|
|
3594
|
+
const { kanbanList } = await import("./kanban-board-M326B2XJ.js");
|
|
3459
3595
|
const active = kanbanList("running");
|
|
3460
3596
|
if (active.length === 0) {
|
|
3461
3597
|
await ctx.reply("No active channels.");
|
|
@@ -3501,7 +3637,7 @@ ${lines.join("\n")}`);
|
|
|
3501
3637
|
async function handleTodo(_text, ctx) {
|
|
3502
3638
|
const { existsSync, readFileSync: readFileSync3 } = await import("node:fs");
|
|
3503
3639
|
const { join: join4 } = await import("node:path");
|
|
3504
|
-
const { abtarsHome: abtarsHome2 } = await import("./paths-
|
|
3640
|
+
const { abtarsHome: abtarsHome2 } = await import("./paths-X4LRYUI6.js");
|
|
3505
3641
|
const todoPath = join4(abtarsHome2(), "workspace", "todo", "todo.md");
|
|
3506
3642
|
if (!existsSync(todoPath)) {
|
|
3507
3643
|
await ctx.reply("Todo list is empty.");
|
|
@@ -3518,16 +3654,16 @@ async function handleTodo(_text, ctx) {
|
|
|
3518
3654
|
|
|
3519
3655
|
// src/components/commands/handlers-admin.ts
|
|
3520
3656
|
init_log_and_swallow();
|
|
3521
|
-
var
|
|
3657
|
+
var TAG10 = "cmd_admin";
|
|
3522
3658
|
async function handleUsers(text, ctx) {
|
|
3523
|
-
const { loadUsers: loadUsers2 } = await import("./user-registry-
|
|
3659
|
+
const { loadUsers: loadUsers2 } = await import("./user-registry-35BW4XKM.js");
|
|
3524
3660
|
const parts = text.trim().split(/\s+/);
|
|
3525
3661
|
const sub = parts[1];
|
|
3526
3662
|
if (sub === "approve" && parts[2]) {
|
|
3527
3663
|
const platformId = parts[2];
|
|
3528
3664
|
const { writeFileSync: writeFileSync2, readFileSync: readFileSync3 } = await import("node:fs");
|
|
3529
3665
|
const { join: join4 } = await import("node:path");
|
|
3530
|
-
const { abtarsHome: abtarsHome2 } = await import("./paths-
|
|
3666
|
+
const { abtarsHome: abtarsHome2 } = await import("./paths-X4LRYUI6.js");
|
|
3531
3667
|
const configPath = join4(abtarsHome2(), "config", "users.json");
|
|
3532
3668
|
try {
|
|
3533
3669
|
const raw = JSON.parse(readFileSync3(configPath, "utf-8"));
|
|
@@ -3549,7 +3685,7 @@ async function handleUsers(text, ctx) {
|
|
|
3549
3685
|
const targetUserId = parts[2];
|
|
3550
3686
|
const { writeFileSync: writeFileSync2, readFileSync: readFileSync3 } = await import("node:fs");
|
|
3551
3687
|
const { join: join4 } = await import("node:path");
|
|
3552
|
-
const { abtarsHome: abtarsHome2 } = await import("./paths-
|
|
3688
|
+
const { abtarsHome: abtarsHome2 } = await import("./paths-X4LRYUI6.js");
|
|
3553
3689
|
const configPath = join4(abtarsHome2(), "config", "users.json");
|
|
3554
3690
|
try {
|
|
3555
3691
|
const raw = JSON.parse(readFileSync3(configPath, "utf-8"));
|
|
@@ -3581,19 +3717,19 @@ async function handleSkills(text, ctx) {
|
|
|
3581
3717
|
await ctx.reply("Usage: /skill run <name>");
|
|
3582
3718
|
return true;
|
|
3583
3719
|
}
|
|
3584
|
-
const { launchSkill } = await import("./skill-session-
|
|
3720
|
+
const { launchSkill } = await import("./skill-session-AXBDQSLQ.js");
|
|
3585
3721
|
const err = await launchSkill(skillName, ctx.userId, String(ctx.chatId));
|
|
3586
3722
|
await ctx.reply(err ?? `* Skill "${skillName}" started.`);
|
|
3587
3723
|
return true;
|
|
3588
3724
|
}
|
|
3589
3725
|
if (args === "stop") {
|
|
3590
|
-
const { endSkillSession } = await import("./skill-session-
|
|
3726
|
+
const { endSkillSession } = await import("./skill-session-AXBDQSLQ.js");
|
|
3591
3727
|
const ended = await endSkillSession(String(ctx.chatId));
|
|
3592
3728
|
await ctx.reply(ended ? "* Skill session ended." : "No active skill session.");
|
|
3593
3729
|
return true;
|
|
3594
3730
|
}
|
|
3595
3731
|
if (args === "list") {
|
|
3596
|
-
const { listRunnableSkills } = await import("./skill-session-
|
|
3732
|
+
const { listRunnableSkills } = await import("./skill-session-AXBDQSLQ.js");
|
|
3597
3733
|
const skills2 = listRunnableSkills();
|
|
3598
3734
|
if (skills2.length === 0) {
|
|
3599
3735
|
await ctx.reply("No runnable skills (no skill.json found).");
|
|
@@ -3607,12 +3743,12 @@ Use: /skill run <name>`);
|
|
|
3607
3743
|
return true;
|
|
3608
3744
|
}
|
|
3609
3745
|
if (text.includes("reload")) {
|
|
3610
|
-
const { reloadCatalog } = await import("./hotskills-
|
|
3746
|
+
const { reloadCatalog } = await import("./hotskills-FWX4QI7V.js");
|
|
3611
3747
|
const count = reloadCatalog();
|
|
3612
3748
|
await ctx.reply(`Reloaded \u2014 ${count} skills available.`);
|
|
3613
3749
|
return true;
|
|
3614
3750
|
}
|
|
3615
|
-
const { getSkillCache } = await import("./hotskills-
|
|
3751
|
+
const { getSkillCache } = await import("./hotskills-FWX4QI7V.js");
|
|
3616
3752
|
const skills = getSkillCache();
|
|
3617
3753
|
if (skills.length === 0) {
|
|
3618
3754
|
await ctx.reply("\u{1F4DA} No skills loaded.");
|
|
@@ -3639,7 +3775,7 @@ ${sections.join("\n\n")}`);
|
|
|
3639
3775
|
return true;
|
|
3640
3776
|
}
|
|
3641
3777
|
async function handleHooks(_text, ctx) {
|
|
3642
|
-
const { getHookSummary } = await import("./hook-system-
|
|
3778
|
+
const { getHookSummary } = await import("./hook-system-M3POLUIB.js");
|
|
3643
3779
|
const summary = getHookSummary();
|
|
3644
3780
|
const lines = ["\u{1FA9D} Hooks:"];
|
|
3645
3781
|
for (const { event, hooks } of summary) {
|
|
@@ -3655,7 +3791,7 @@ async function handleHooks(_text, ctx) {
|
|
|
3655
3791
|
async function handleMcp(_text, ctx) {
|
|
3656
3792
|
const arg = _text.replace(/^\/mcp\s*/i, "").trim().toLowerCase();
|
|
3657
3793
|
if (arg === "start") {
|
|
3658
|
-
const { loadUsers: loadUsers2 } = await import("./user-registry-
|
|
3794
|
+
const { loadUsers: loadUsers2 } = await import("./user-registry-35BW4XKM.js");
|
|
3659
3795
|
const registry = loadUsers2();
|
|
3660
3796
|
const user = registry.byUserId.get(ctx.userId);
|
|
3661
3797
|
if (user?.role !== "master") {
|
|
@@ -3696,7 +3832,7 @@ ${result}` : "\u{1F4E6} mcporter daemon start failed.");
|
|
|
3696
3832
|
}
|
|
3697
3833
|
body = lines.join("\n");
|
|
3698
3834
|
} catch (err) {
|
|
3699
|
-
logAndSwallow(
|
|
3835
|
+
logAndSwallow(TAG10, "JSON.parse mcp list", err);
|
|
3700
3836
|
body = "\u{1F4E6} MCP: installed, list output unparseable";
|
|
3701
3837
|
}
|
|
3702
3838
|
}
|
|
@@ -3763,7 +3899,7 @@ ${cmds.join("\n")}`);
|
|
|
3763
3899
|
return true;
|
|
3764
3900
|
}
|
|
3765
3901
|
async function handlePeers(_text, ctx) {
|
|
3766
|
-
const { getPeerTable } = await import("./gossip-
|
|
3902
|
+
const { getPeerTable } = await import("./gossip-3C3BSNPN.js");
|
|
3767
3903
|
const peers = getPeerTable(true);
|
|
3768
3904
|
if (peers.length === 0) {
|
|
3769
3905
|
await ctx.reply("No peers configured or gossip not started.");
|
|
@@ -3788,11 +3924,11 @@ ${peers.length} peer(s) (${alive} alive, ${peers.length - alive} dead)`);
|
|
|
3788
3924
|
init_logger();
|
|
3789
3925
|
init_log_and_swallow();
|
|
3790
3926
|
init_spin_types();
|
|
3791
|
-
var
|
|
3927
|
+
var TAG11 = "cmd:session";
|
|
3792
3928
|
async function handleSession(text, ctx) {
|
|
3793
3929
|
const args = text.replace(/^\/session\s*/i, "").trim();
|
|
3794
3930
|
if (!args) {
|
|
3795
|
-
const { getMasterUserId } = await import("./master-user-
|
|
3931
|
+
const { getMasterUserId } = await import("./master-user-HSKM4ZFN.js");
|
|
3796
3932
|
const isMaster = ctx.userId === getMasterUserId();
|
|
3797
3933
|
await ctx.reply(ctx.sessionManager.formatList(ctx.userId, ctx.platform, isMaster));
|
|
3798
3934
|
return true;
|
|
@@ -3811,7 +3947,7 @@ async function handleSession(text, ctx) {
|
|
|
3811
3947
|
}
|
|
3812
3948
|
await ctx.reply(`\u2713 Session #${result.shortIndex} (${typeLabel(sessionType(result))}) created.`);
|
|
3813
3949
|
ctx.sessionManager.greetSession(result, ctx.chatId, ctx.userId);
|
|
3814
|
-
logInfo(
|
|
3950
|
+
logInfo(TAG11, `New session ${result.id} for ${ctx.userId}`);
|
|
3815
3951
|
return true;
|
|
3816
3952
|
}
|
|
3817
3953
|
if (args.startsWith("end")) {
|
|
@@ -3827,7 +3963,7 @@ async function handleSession(text, ctx) {
|
|
|
3827
3963
|
return true;
|
|
3828
3964
|
}
|
|
3829
3965
|
await ctx.reply(`\u2713 Session #${result.shortIndex} (${typeLabel(sessionType(result))}) ended.`);
|
|
3830
|
-
logInfo(
|
|
3966
|
+
logInfo(TAG11, `Ended session ${result.id}`);
|
|
3831
3967
|
return true;
|
|
3832
3968
|
}
|
|
3833
3969
|
if (args.startsWith("kill")) {
|
|
@@ -3847,11 +3983,11 @@ async function handleSession(text, ctx) {
|
|
|
3847
3983
|
const db = ctx.memory.db;
|
|
3848
3984
|
if (db) db.prepare("DELETE FROM messages WHERE session_id = ?").run(result.id);
|
|
3849
3985
|
} catch (err) {
|
|
3850
|
-
logAndSwallow(
|
|
3986
|
+
logAndSwallow(TAG11, "delete session messages", err);
|
|
3851
3987
|
}
|
|
3852
3988
|
}
|
|
3853
3989
|
await ctx.reply(`\u{1F5D1}\uFE0F Session #${result.shortIndex} (${typeLabel(sessionType(result))}) killed.`);
|
|
3854
|
-
logInfo(
|
|
3990
|
+
logInfo(TAG11, `Killed session ${result.id}`);
|
|
3855
3991
|
return true;
|
|
3856
3992
|
}
|
|
3857
3993
|
if (args.startsWith("pause")) {
|
|
@@ -3867,7 +4003,7 @@ async function handleSession(text, ctx) {
|
|
|
3867
4003
|
return true;
|
|
3868
4004
|
}
|
|
3869
4005
|
await ctx.reply(`\u23F8 Session #${result.shortIndex} (${typeLabel(sessionType(result))}) paused.`);
|
|
3870
|
-
logInfo(
|
|
4006
|
+
logInfo(TAG11, `Paused session ${result.id}`);
|
|
3871
4007
|
return true;
|
|
3872
4008
|
}
|
|
3873
4009
|
if (args.startsWith("resume")) {
|
|
@@ -3883,7 +4019,7 @@ async function handleSession(text, ctx) {
|
|
|
3883
4019
|
return true;
|
|
3884
4020
|
}
|
|
3885
4021
|
await ctx.reply(`\u25B6\uFE0F Session #${result.shortIndex} (${typeLabel(sessionType(result))}) resumed.`);
|
|
3886
|
-
logInfo(
|
|
4022
|
+
logInfo(TAG11, `Resumed session ${result.id}`);
|
|
3887
4023
|
return true;
|
|
3888
4024
|
}
|
|
3889
4025
|
const index = parseInt(args, 10);
|
|
@@ -3894,7 +4030,7 @@ async function handleSession(text, ctx) {
|
|
|
3894
4030
|
return true;
|
|
3895
4031
|
}
|
|
3896
4032
|
await ctx.reply(`\u{1F500} Switched to session #${result.shortIndex} (${typeLabel(sessionType(result))}).`);
|
|
3897
|
-
logInfo(
|
|
4033
|
+
logInfo(TAG11, `Switched to session ${result.id}`);
|
|
3898
4034
|
return true;
|
|
3899
4035
|
}
|
|
3900
4036
|
await ctx.reply("Usage: /session [new [browse|code|task] | end [#] | kill <#> | pause [#] | resume [#] | <#>]");
|
|
@@ -3962,6 +4098,7 @@ registerPrefix("/tasks pause ", handleTaskPause);
|
|
|
3962
4098
|
registerPrefix("/tasks resume ", handleTaskPause);
|
|
3963
4099
|
|
|
3964
4100
|
export {
|
|
4101
|
+
loadNLMConfig,
|
|
3965
4102
|
cleanResponse,
|
|
3966
4103
|
registerCommand,
|
|
3967
4104
|
handleCommand,
|
|
@@ -3974,4 +4111,4 @@ export {
|
|
|
3974
4111
|
resetAndPrepare,
|
|
3975
4112
|
handleInboundMessage
|
|
3976
4113
|
};
|
|
3977
|
-
//# sourceMappingURL=chunk-
|
|
4114
|
+
//# sourceMappingURL=chunk-BFDBGESM.js.map
|