@askexenow/exe-os 0.9.145 → 0.9.147
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/dist/{active-agent-HUDSZRUG.js → active-agent-KMQCNXXD.js} +6 -6
- package/dist/{active-agent-GJOJUEMF.js → active-agent-NCZCDDZ2.js} +6 -6
- package/dist/{agent-context-HH7TL5ZP.js → agent-context-AZTTMUHP.js} +1 -1
- package/dist/agent-heartbeat-I5UPGXAU.js +60 -0
- package/dist/{agent-loop-OCJFYO72.js → agent-loop-NUIWAL3Z.js} +1 -1
- package/dist/{agentic-ontology-5PGUVMDP.js → agentic-ontology-SQR74CO7.js} +2 -2
- package/dist/{asana-BSDR6NW4.js → asana-MRQ2OQMJ.js} +1 -1
- package/dist/assets/wezterm.lua +68 -0
- package/dist/{backfill-metadata-ZDJ5B37R.js → backfill-metadata-KMDWLDXU.js} +7 -7
- package/dist/{background-jobs-4N4JSZVZ.js → background-jobs-IUB22CRF.js} +4 -4
- package/dist/{bash-X54PZMOG.js → bash-HOHKSOU3.js} +1 -1
- package/dist/{behaviors-TXLHEM5J.js → behaviors-4U2N5L4E.js} +6 -6
- package/dist/bin/age-ontology-load.js +4 -4
- package/dist/bin/agentic-ontology-backfill.js +9 -9
- package/dist/bin/agentic-reflection-backfill.js +10 -10
- package/dist/bin/agentic-semantic-label.js +9 -9
- package/dist/bin/backfill-conversations.js +9 -9
- package/dist/bin/backfill-responses.js +9 -9
- package/dist/bin/backfill-vectors.js +12 -14
- package/dist/bin/bulk-sync-postgres.js +10 -10
- package/dist/bin/cc-doctor.js +5 -5
- package/dist/bin/cleanup-stale-review-tasks.js +12 -11
- package/dist/bin/cli.js +19 -19
- package/dist/bin/customer-readiness.js +47 -0
- package/dist/bin/exe-agent-config.js +6 -6
- package/dist/bin/exe-agent.js +8 -8
- package/dist/bin/exe-assign.js +11 -11
- package/dist/bin/exe-boot.js +39 -32
- package/dist/bin/exe-call.js +9 -11
- package/dist/bin/exe-cloud.js +10 -12
- package/dist/bin/exe-dispatch.js +12 -11
- package/dist/bin/exe-doctor.js +2 -2
- package/dist/bin/exe-export-behaviors.js +10 -10
- package/dist/bin/exe-forget.js +9 -9
- package/dist/bin/exe-gateway.js +18 -18
- package/dist/bin/exe-healthcheck.js +5 -5
- package/dist/bin/exe-heartbeat.js +19 -14
- package/dist/bin/exe-kill.js +9 -9
- package/dist/bin/exe-launch-agent.js +16 -18
- package/dist/bin/exe-new-employee.js +11 -11
- package/dist/bin/exe-pending-messages.js +13 -12
- package/dist/bin/exe-pending-notifications.js +12 -11
- package/dist/bin/exe-pending-reviews.js +20 -13
- package/dist/bin/exe-rename.js +9 -11
- package/dist/bin/exe-review.js +14 -13
- package/dist/bin/exe-search.js +8 -10
- package/dist/bin/exe-session-cleanup.js +19 -19
- package/dist/bin/exe-settings.js +11 -13
- package/dist/bin/exe-start-codex.js +15 -15
- package/dist/bin/exe-start-opencode.js +11 -11
- package/dist/bin/exe-status.js +13 -12
- package/dist/bin/exe-support.js +5 -5
- package/dist/bin/exe-team.js +6 -6
- package/dist/bin/git-sweep.js +12 -11
- package/dist/bin/graph-backfill.js +10 -10
- package/dist/bin/graph-export.js +8 -8
- package/dist/bin/graph-layer-benchmark.js +1 -1
- package/dist/bin/install.js +38 -12
- package/dist/bin/intercom-check.js +14 -8
- package/dist/bin/list-providers.js +1 -1
- package/dist/bin/postgres-agentic-reflection-backfill.js +6 -6
- package/dist/bin/postgres-agentic-semantic-backfill.js +5 -5
- package/dist/bin/pre-publish.js +2 -2
- package/dist/bin/registry-proxy.js +1 -1
- package/dist/bin/scan-tasks.js +48 -49
- package/dist/bin/setup.js +6 -5
- package/dist/bin/shard-migrate.js +8 -8
- package/dist/bin/stack-update.js +66 -10
- package/dist/bin/update.js +1 -1
- package/dist/{branding-52J2ILJX.js → branding-EHDA3CCK.js} +4 -6
- package/dist/{capacity-monitor-HWN2JX5W.js → capacity-monitor-Q5M5SVRC.js} +13 -12
- package/dist/{catchup-brief-UERCIVM5.js → catchup-brief-IPNSW7RQ.js} +14 -13
- package/dist/{chunk-GK5VMHSN.js → chunk-26UVGP3I.js} +1 -1
- package/dist/{chunk-CDDRSIGK.js → chunk-2BPO7VQF.js} +80 -70
- package/dist/{chunk-7PTII6F4.js → chunk-2OATM2JZ.js} +1 -1
- package/dist/{chunk-AJ2XDY27.js → chunk-3FIWKONP.js} +10 -12
- package/dist/{chunk-53VUIKOE.js → chunk-3MLGUSKS.js} +1 -1
- package/dist/{chunk-OYCQ6PFC.js → chunk-4EINMZNO.js} +6 -6
- package/dist/{chunk-JUITBJ7J.js → chunk-4GLEFA2X.js} +1 -1
- package/dist/{chunk-BY4OTURZ.js → chunk-4MN44ORL.js} +1 -1
- package/dist/{chunk-MUVPQCQA.js → chunk-6HFZ2KUC.js} +1 -3
- package/dist/{chunk-F7JVVLGH.js → chunk-6YUACQQA.js} +2 -4
- package/dist/{chunk-UVH6FA5E.js → chunk-7B5DQGXG.js} +1 -1
- package/dist/{chunk-XEA6DSLR.js → chunk-AERGE6GC.js} +4 -6
- package/dist/{chunk-NQAZ2CP7.js → chunk-AGFWOII2.js} +11 -11
- package/dist/{chunk-RWJY7KMP.js → chunk-ARGBV4PP.js} +46 -13
- package/dist/{chunk-VRD452MQ.js → chunk-B4HAUSVQ.js} +2 -2
- package/dist/{chunk-VX4X2O6J.js → chunk-CGQ5PWS3.js} +6 -6
- package/dist/{chunk-RNN4MZDN.js → chunk-DBXKWFTK.js} +3 -3
- package/dist/{chunk-Y2VVTK2E.js → chunk-DTLASDQM.js} +1 -1
- package/dist/{chunk-K3PSCQLK.js → chunk-DW6P7UVY.js} +4 -6
- package/dist/{chunk-B6Q6WAD7.js → chunk-EHNSK2Y4.js} +1 -1
- package/dist/{chunk-7PEYIW53.js → chunk-EHXOWGQG.js} +2 -2
- package/dist/{chunk-6BUUY7FG.js → chunk-EOO32RJZ.js} +2 -4
- package/dist/{chunk-MFGARIVE.js → chunk-EYQIEK5M.js} +2 -4
- package/dist/{chunk-NT6R4ATM.js → chunk-FG4Z2XFU.js} +1 -1
- package/dist/{chunk-32LFUJVG.js → chunk-FNMNKYVH.js} +221 -110
- package/dist/{chunk-CWPE6QVM.js → chunk-GNHN5HRQ.js} +2 -4
- package/dist/{chunk-WLEVAIL5.js → chunk-GP6G6EQI.js} +1 -1
- package/dist/{chunk-KLRP6ZG3.js → chunk-HHMHL4FB.js} +251 -96
- package/dist/{chunk-O7YD7JYE.js → chunk-I7AW4237.js} +18 -4
- package/dist/{chunk-TFZZL3QF.js → chunk-ICKEGWWP.js} +2 -4
- package/dist/{chunk-SR6D65DA.js → chunk-IFACD7E6.js} +3 -3
- package/dist/{chunk-I4WAKJ6W.js → chunk-J4RAXKTC.js} +3 -3
- package/dist/{chunk-65UQ7H5U.js → chunk-JF3Q5YKI.js} +4 -6
- package/dist/{chunk-RWURKLS3.js → chunk-JH7Z2AZ7.js} +1 -1
- package/dist/{chunk-5WTYETQO.js → chunk-K4KAPZC7.js} +4 -8
- package/dist/{chunk-G3VR3MJI.js → chunk-KIUU4PNX.js} +4 -8
- package/dist/{chunk-4F56OUR7.js → chunk-LC53LVOT.js} +2 -2
- package/dist/{chunk-W7NQE65M.js → chunk-LJML7HT2.js} +1 -1
- package/dist/{chunk-V4O2APMI.js → chunk-LL5EY6OQ.js} +1 -1
- package/dist/{chunk-DCJ42FEN.js → chunk-LWJ4AMMY.js} +2 -4
- package/dist/{chunk-GCMT6RWI.js → chunk-LYH5HE24.js} +3 -14
- package/dist/{chunk-63UVIM7S.js → chunk-MBA4NNTS.js} +2 -4
- package/dist/{chunk-7KR5PV4P.js → chunk-MKPSMRVX.js} +1 -1
- package/dist/{chunk-C4EVFN7J.js → chunk-MKUVEDUE.js} +2 -2
- package/dist/chunk-MLKGABMK.js +9 -0
- package/dist/chunk-MLXJ5EZG.js +90 -0
- package/dist/{chunk-BXCJOACQ.js → chunk-NFHFNPTN.js} +3 -5
- package/dist/{chunk-2R3N4DQY.js → chunk-NJKERRSG.js} +3 -3
- package/dist/{chunk-I5VJNTDL.js → chunk-NNT2ZNMC.js} +5 -7
- package/dist/{chunk-O7CTVDC3.js → chunk-ODEGQCWW.js} +8 -8
- package/dist/{chunk-H4YONWQX.js → chunk-ONMRBKAX.js} +229 -108
- package/dist/{chunk-NE6RPW5C.js → chunk-PMWDO5FR.js} +1 -1
- package/dist/{chunk-IPSFAUK5.js → chunk-QB66MH2V.js} +4 -4
- package/dist/{chunk-XAHIVBTU.js → chunk-QHQJ7DLL.js} +6 -6
- package/dist/{chunk-NA3MXUU6.js → chunk-TH6HTK2L.js} +17 -15
- package/dist/{chunk-H4KUTL2T.js → chunk-TKEDF7KV.js} +1 -1
- package/dist/{chunk-KHV55ME4.js → chunk-TOWAZ5IV.js} +95 -118
- package/dist/{chunk-IBVB2NGY.js → chunk-TOXHEZN5.js} +47 -4
- package/dist/{chunk-H6OEU54G.js → chunk-UJMDHPIN.js} +91 -39
- package/dist/{chunk-UWBU44UP.js → chunk-UPL5FEZY.js} +1 -1
- package/dist/{chunk-ER3UJ2VL.js → chunk-UPMKSFBU.js} +2 -2
- package/dist/{chunk-X7DJ2QZW.js → chunk-V4MKR32F.js} +4 -6
- package/dist/{chunk-HV75RBMK.js → chunk-VB23RNNI.js} +1 -1
- package/dist/{chunk-56T5TMNK.js → chunk-VK2AWQ6D.js} +2 -2
- package/dist/{chunk-UXDQ4ERA.js → chunk-VNTDQUOG.js} +21 -18
- package/dist/{chunk-KQTGSD23.js → chunk-VYVESELG.js} +13 -9
- package/dist/{chunk-S465RWY7.js → chunk-W6SKR3HZ.js} +3 -5
- package/dist/{chunk-CQCURHDV.js → chunk-X2XE65WV.js} +12 -10
- package/dist/{chunk-XQ2ZBOAD.js → chunk-XK7VZFCC.js} +22 -9
- package/dist/{chunk-5F3EXHT7.js → chunk-XMRDT4PB.js} +2 -4
- package/dist/{chunk-MPXPPKJ4.js → chunk-XWQKCCCO.js} +3 -3
- package/dist/{chunk-7APRWURX.js → chunk-Y6TS42WD.js} +10 -12
- package/dist/{chunk-WTJS6PCC.js → chunk-YOG7TWMO.js} +1 -1
- package/dist/{chunk-QSSABSCM.js → chunk-YPSN64BU.js} +6 -6
- package/dist/{chunk-WJW564IP.js → chunk-ZBA74MMX.js} +2 -2
- package/dist/{chunk-VXQDZH5T.js → chunk-ZMJHXDZR.js} +3 -3
- package/dist/{chunk-BHV7PX5V.js → chunk-ZUAXTH6Z.js} +2 -2
- package/dist/{chunk-K6MMN6AW.js → chunk-ZZLTJXKR.js} +3 -5
- package/dist/{code-context-index-SRTAWCZQ.js → code-context-index-I5A7I4JQ.js} +7 -7
- package/dist/{content-extractor-H4IPL533.js → content-extractor-M7ISRONU.js} +1 -1
- package/dist/{conversation-entity-extractor-IZ3ECP4A.js → conversation-entity-extractor-EYSI4DKM.js} +3 -3
- package/dist/{conversation-wiki-populator-K4BQXHHO.js → conversation-wiki-populator-RSJ44BRO.js} +2 -2
- package/dist/{core-memory-JZ34WT5R.js → core-memory-C3JLISAU.js} +1 -1
- package/dist/{crdt-sync-4TOVD4QN.js → crdt-sync-XMC6LT2Q.js} +2 -2
- package/dist/{crm-bridge-27QVOWPI.js → crm-bridge-4QZRMOF7.js} +1 -1
- package/dist/{crm-webhook-77XHBWL7.js → crm-webhook-QMHD5YYQ.js} +3 -3
- package/dist/{cto-delegation-gate-AWENA4VT.js → cto-delegation-gate-BTZWAA4E.js} +11 -10
- package/dist/{daemon-auth-Z7O3LO23.js → daemon-auth-F47P6HTC.js} +4 -4
- package/dist/{daemon-orchestration-BG4NPWOK.js → daemon-orchestration-HFODCB52.js} +14 -13
- package/dist/{daemon-protocol-N7MOJ4U3.js → daemon-protocol-XW2OLNBS.js} +1 -1
- package/dist/{db-backup-E34JMBZD.js → db-backup-W56YOLMC.js} +4 -4
- package/dist/{devtools-ZL5NCINM.js → devtools-5PEATRYE.js} +1 -1
- package/dist/{discord-QOFQKX6S.js → discord-LMZKIYWB.js} +1 -1
- package/dist/dispatch-ack-JYCKAWKZ.js +13 -0
- package/dist/{email-NY5HB4WA.js → email-UENAIKRN.js} +1 -1
- package/dist/{entity-boost-V6KSRGG4.js → entity-boost-LIBVNNXO.js} +2 -2
- package/dist/{exe-drift-YFWCC26O.js → exe-drift-SED6KQTZ.js} +6 -6
- package/dist/{exe-export-YRACBEUY.js → exe-export-ADSWDE5U.js} +9 -9
- package/dist/{exe-import-DY57L2OI.js → exe-import-WFLNGJZP.js} +9 -9
- package/dist/{exe-key-U2JJH4MO.js → exe-key-4L32R46F.js} +5 -7
- package/dist/{exe-org-45OTYZZJ.js → exe-org-OOO7KJVZ.js} +4 -4
- package/dist/{factory-2PB537KA.js → factory-CTFAGZUA.js} +1 -1
- package/dist/fast-db-init-HVAVS35N.js +7 -0
- package/dist/{file-edit-GSXUFUDC.js → file-edit-AZAJPCA3.js} +1 -1
- package/dist/{file-read-Z3F3PUCK.js → file-read-VACF23NC.js} +1 -1
- package/dist/{file-write-X77JXZ2C.js → file-write-B2RPT5U7.js} +1 -1
- package/dist/gateway/index.js +10 -10
- package/dist/{gateway-client-IPKKEYKY.js → gateway-client-5EUMMEZZ.js} +2 -2
- package/dist/{git-staleness-I662R7RL.js → git-staleness-BY4ZK6MW.js} +5 -5
- package/dist/{git-task-sweep-XWFCP2HA.js → git-task-sweep-RSRASAHB.js} +12 -11
- package/dist/{glob-2PWAXTZ2.js → glob-7PWH7WKL.js} +1 -1
- package/dist/{global-procedures-IEIJBCAH.js → global-procedures-EKYSVONR.js} +7 -7
- package/dist/graph-auto-extract-HWZ5GVXZ.js +161 -0
- package/dist/{graph-query-NCDYOT4Y.js → graph-query-SE6T5XC4.js} +1 -1
- package/dist/{graph-rag-2YLGRBW5.js → graph-rag-G3EG5Q6L.js} +3 -3
- package/dist/{grep-GTV6WAZ4.js → grep-HWIDXHRC.js} +1 -1
- package/dist/{hook-integrity-LLPJPAXW.js → hook-integrity-PR4BPZBT.js} +2 -2
- package/dist/hooks/bug-report-worker.js +13 -12
- package/dist/hooks/codex-stop-task-finalizer.js +16 -13
- package/dist/hooks/commit-complete.js +14 -13
- package/dist/hooks/error-recall.js +9 -12
- package/dist/hooks/exe-heartbeat-hook.js +6 -6
- package/dist/hooks/ingest-worker.js +9 -9
- package/dist/hooks/ingest.js +16 -19
- package/dist/hooks/instructions-loaded.js +7 -7
- package/dist/hooks/notification.js +12 -10
- package/dist/hooks/post-compact.js +13 -12
- package/dist/hooks/post-tool-combined.js +6 -6
- package/dist/hooks/pre-compact.js +18 -17
- package/dist/hooks/pre-tool-use.js +19 -20
- package/dist/hooks/prompt-submit.js +78 -39
- package/dist/hooks/session-end.js +22 -21
- package/dist/hooks/session-start.js +31 -25
- package/dist/hooks/stop.js +20 -22
- package/dist/hooks/subagent-stop.js +13 -12
- package/dist/hooks/summary-worker.js +21 -20
- package/dist/{hooks-UK2AYRCA.js → hooks-LDCFYHDF.js} +1 -1
- package/dist/{imessage-LINH4V4D.js → imessage-6UOZB5VN.js} +1 -1
- package/dist/index.js +19 -18
- package/dist/{installer-PB63JTTG.js → installer-RLKOACKG.js} +9 -9
- package/dist/{installer-SSR2OOLO.js → installer-W4NY3OBF.js} +13 -11
- package/dist/{installer-ZONYB3XK.js → installer-X5FEYJIA.js} +9 -9
- package/dist/{intercom-queue-MMZT2MA2.js → intercom-queue-K3DVKSPJ.js} +1 -1
- package/dist/{key-backup-status-4WKIQOAS.js → key-backup-status-ORNMJEEA.js} +4 -6
- package/dist/lib/agent-config.js +4 -4
- package/dist/lib/cloud-sync.js +8 -8
- package/dist/lib/cloudflare-dns.js +1 -1
- package/dist/lib/config.js +3 -5
- package/dist/lib/consolidation.js +8 -8
- package/dist/lib/crypto.js +1 -1
- package/dist/lib/database.js +5 -5
- package/dist/lib/db-daemon-client.js +5 -5
- package/dist/lib/db.js +5 -5
- package/dist/lib/device-registry.js +4 -6
- package/dist/lib/embedder.js +6 -6
- package/dist/lib/employee-templates.js +8 -8
- package/dist/lib/employees.js +7 -5
- package/dist/lib/error-detector.js +1 -1
- package/dist/lib/exe-daemon-client.js +5 -5
- package/dist/lib/exe-daemon.js +143 -52
- package/dist/lib/file-grep.js +1 -1
- package/dist/lib/hybrid-search.js +8 -8
- package/dist/lib/identity-templates.js +1 -1
- package/dist/lib/identity.js +5 -5
- package/dist/lib/keychain.js +1 -1
- package/dist/lib/license.js +4 -4
- package/dist/lib/messaging.js +12 -11
- package/dist/lib/post-tool-memory.js +3 -3
- package/dist/lib/registry-proxy.js +1 -1
- package/dist/lib/reminders.js +6 -6
- package/dist/lib/runtime-table.js +1 -1
- package/dist/lib/schedules.js +8 -8
- package/dist/lib/session-registry.js +1 -1
- package/dist/lib/session-wrappers.js +1 -1
- package/dist/lib/skill-learning.js +7 -7
- package/dist/lib/status-brief.js +1 -1
- package/dist/lib/store.js +7 -7
- package/dist/lib/task-router.js +6 -6
- package/dist/lib/tasks.js +14 -11
- package/dist/lib/tmux-routing.js +11 -10
- package/dist/lib/tmux-status.js +1 -1
- package/dist/lib/tmux-transport.js +1 -1
- package/dist/lib/token-spend.js +6 -6
- package/dist/lib/transport.js +1 -1
- package/dist/lib/ws-auth.js +1 -1
- package/dist/lib/ws-client.js +2 -2
- package/dist/license-gate-J5YN264E.js +14 -0
- package/dist/mcp/register-tools.js +63 -62
- package/dist/mcp/server.js +65 -64
- package/dist/mcp/tools/complete-reminder.js +7 -7
- package/dist/mcp/tools/create-reminder.js +7 -7
- package/dist/mcp/tools/create-task.js +15 -13
- package/dist/mcp/tools/deactivate-behavior.js +8 -8
- package/dist/mcp/tools/list-reminders.js +7 -7
- package/dist/mcp/tools/list-tasks.js +14 -14
- package/dist/mcp/tools/send-message.js +14 -13
- package/dist/mcp/tools/update-task.js +13 -12
- package/dist/{mcp-diagnostics-CWMVPHVC.js → mcp-diagnostics-TSBY62UQ.js} +1 -1
- package/dist/{mcp-disconnect-tracker-RM3GEERR.js → mcp-disconnect-tracker-MB23DRS6.js} +1 -1
- package/dist/{mcp-http-config-PDGSOYNQ.js → mcp-http-config-6YLW4PFG.js} +6 -6
- package/dist/{memory-cards-OLE6MGO7.js → memory-cards-UAQCO4QR.js} +5 -5
- package/dist/{memory-poisoning-defense-OOHJIXIX.js → memory-poisoning-defense-VWITZ4WO.js} +5 -7
- package/dist/{memory-queue-TGWXMENR.js → memory-queue-NYIGZNCG.js} +4 -4
- package/dist/memory-queue-client-YJOLYALV.js +15 -0
- package/dist/{memory-reflection-Z7CT6JLY.js → memory-reflection-JQC4ZSUD.js} +5 -5
- package/dist/{message-queue-client-TWIA2GIH.js → message-queue-client-NTLKYGVO.js} +1 -1
- package/dist/{notifications-SREXGSAQ.js → notifications-YDOKTVCH.js} +11 -10
- package/dist/{oauth-server-NSWGKLLA.js → oauth-server-TOWAZR4K.js} +1 -1
- package/dist/{orchestration-phase-WLQMEP4M.js → orchestration-phase-FXKZYK6R.js} +4 -4
- package/dist/{orchestrator-CHQURQSC.js → orchestrator-BZ2D6ZM6.js} +13 -12
- package/dist/{permission-presets-3XKJNM6N.js → permission-presets-E3DZK46K.js} +1 -1
- package/dist/{permissions-EZH3ULLD.js → permissions-6MCWUDCD.js} +1 -1
- package/dist/{pg-ssl-4ZNXKUNH.js → pg-ssl-7JXQFL4I.js} +1 -1
- package/dist/{plan-limits-7L75PB33.js → plan-limits-KUTODKG6.js} +7 -7
- package/dist/{preferences-K2GKUQSJ.js → preferences-ERXO6SMJ.js} +3 -3
- package/dist/{project-name-OBIDABHE.js → project-name-EWG5KAZP.js} +1 -1
- package/dist/{projection-worker-HSGE44JA.js → projection-worker-UY7R2EQJ.js} +85 -8
- package/dist/{push-notifications-EOTMKJ6B.js → push-notifications-KDYFOJRI.js} +4 -4
- package/dist/{reranker-ME4CK2ZQ.js → reranker-OMADCS3D.js} +4 -4
- package/dist/{review-gate-M3U2YAW6.js → review-gate-IUNS6GQU.js} +1 -1
- package/dist/{review-polling-DQCN4TNM.js → review-polling-DORNZ2KI.js} +12 -11
- package/dist/runtime/index.js +14 -13
- package/dist/{self-query-router-TRPHL54X.js → self-query-router-37VB3PKQ.js} +1 -1
- package/dist/{session-events-ZZBFYL5Z.js → session-events-5WR5RVDK.js} +12 -12
- package/dist/{session-kill-telemetry-MUFET632.js → session-kill-telemetry-DHSQV2CI.js} +6 -6
- package/dist/{session-scope-QUUDZM2L.js → session-scope-D4Q62ZOZ.js} +13 -13
- package/dist/setup-wizard-QVNTI3T4.js +12 -0
- package/dist/{shard-manager-VYMJM7NR.js → shard-manager-SP4YL5JQ.js} +4 -4
- package/dist/{signal-C263RUND.js → signal-7UIRTYGZ.js} +1 -1
- package/dist/{slack-N7PL6QMX.js → slack-GCOYBZUK.js} +1 -1
- package/dist/{task-enforcement-WJ3S6JTL.js → task-enforcement-OYCQXBBC.js} +11 -10
- package/dist/{task-scanner-YHWRG4ZJ.js → task-scanner-QEM5CO2Y.js} +1 -1
- package/dist/{task-scope-V2CTRHG7.js → task-scope-WWRNU2LU.js} +11 -10
- package/dist/{tasks-crud-W2XPUGKK.js → tasks-crud-75AUVZPO.js} +13 -10
- package/dist/{tasks-review-BR2SBSYG.js → tasks-review-UMZN5ZPQ.js} +11 -10
- package/dist/{telegram-B54FFOXD.js → telegram-RGVD4LUY.js} +1 -1
- package/dist/{telemetry-7IQCPV4Q.js → telemetry-43X3GT3R.js} +1 -1
- package/dist/{token-budget-H2XSWO4D.js → token-budget-62TYDIMI.js} +5 -5
- package/dist/{tool-capability-index-5X2CCGIK.js → tool-capability-index-OBZXORBP.js} +2 -2
- package/dist/{tool-gates-SGFMDREY.js → tool-gates-3IC7DK4R.js} +1 -1
- package/dist/{tool-gates-3DNTD7G3.js → tool-gates-GXSYBVK4.js} +1 -1
- package/dist/{tool-registry-2VUAZXTW.js → tool-registry-5XN3FUYL.js} +1 -1
- package/dist/{tool-telemetry-NVPSPRYP.js → tool-telemetry-JL6NY3KP.js} +2 -2
- package/dist/tui/App.js +44 -43
- package/dist/{tui-data-QN4O565C.js → tui-data-C5I2YU4C.js} +11 -10
- package/dist/{update-check-ERUKV2G6.js → update-check-MKHO7H6B.js} +1 -1
- package/dist/{webhook-L5FGAUPJ.js → webhook-LCW7UP4L.js} +1 -1
- package/dist/{webhook-pipe-B7GJCJAI.js → webhook-pipe-PJOFVBD3.js} +1 -1
- package/dist/{whatsapp-7FK2PRWO.js → whatsapp-SILL4V64.js} +1 -1
- package/dist/{whatsapp-accounts-VIHRSLGB.js → whatsapp-accounts-BWRZUY23.js} +1 -1
- package/dist/{wiki-acl-R4IIHICT.js → wiki-acl-5EC5VNYG.js} +1 -1
- package/dist/{wiki-client-EUDJA7O2.js → wiki-client-MMVRPTPK.js} +1 -1
- package/dist/{worker-gate-3KDXLIJC.js → worker-gate-Q5Y6B5N7.js} +4 -4
- package/dist/{workflow-engine-GISKRYSO.js → workflow-engine-KAKVU7NC.js} +3 -3
- package/dist/{worktree-B3FHAHEM.js → worktree-OMPQEJH7.js} +1 -1
- package/package.json +2 -2
- package/release-notes.json +126 -126
- package/src/commands/exe/setup.md +1 -1
- package/dist/chunk-PNKVD2UK.js +0 -26
- package/dist/fast-db-init-67TQTHWT.js +0 -7
- package/dist/license-gate-JY2KFIKO.js +0 -14
- package/dist/memory-queue-client-RZP5F4EA.js +0 -15
- package/dist/setup-wizard-NXWCEK63.js +0 -12
- package/dist/{chunk-D5MPHVWH.js → chunk-524VLFFY.js} +0 -0
- package/dist/{chunk-HIQ5RDA7.js → chunk-A3A2E42I.js} +0 -0
- package/dist/{chunk-APRP5D27.js → chunk-H6ADW3YC.js} +0 -0
- package/dist/{chunk-AAVODJ4F.js → chunk-J2OPV5FE.js} +0 -0
- package/dist/{chunk-DBLBWWFS.js → chunk-S6DA6UKC.js} +3 -3
- /package/dist/{chunk-F3ULERRZ.js → chunk-TSCZMB3P.js} +0 -0
- /package/dist/{chunk-2HV2EQW2.js → chunk-WRU72I4S.js} +0 -0
|
@@ -7,12 +7,12 @@ import {
|
|
|
7
7
|
pingDaemon,
|
|
8
8
|
sendDaemonRequest,
|
|
9
9
|
sendIngestRequest
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-W6SKR3HZ.js";
|
|
11
11
|
import "../chunk-3H4VU65X.js";
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-K4KAPZC7.js";
|
|
13
|
+
import "../chunk-TOWAZ5IV.js";
|
|
14
|
+
import "../chunk-LYH5HE24.js";
|
|
15
|
+
import "../chunk-MLKGABMK.js";
|
|
16
16
|
export {
|
|
17
17
|
connectEmbedDaemon,
|
|
18
18
|
disconnectClient,
|
package/dist/lib/exe-daemon.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
pushNotifyAsync
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-X2XE65WV.js";
|
|
4
4
|
import {
|
|
5
5
|
deserializeArgs,
|
|
6
6
|
serializeResultSet
|
|
@@ -9,33 +9,32 @@ import {
|
|
|
9
9
|
getMcpToolFamily,
|
|
10
10
|
inferMcpRuntime,
|
|
11
11
|
recordMcpHttpEvent
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-LWJ4AMMY.js";
|
|
13
13
|
import {
|
|
14
14
|
logRestartEvent
|
|
15
15
|
} from "../chunk-3H4VU65X.js";
|
|
16
16
|
import {
|
|
17
17
|
ensureDaemonToken
|
|
18
|
-
} from "../chunk-
|
|
18
|
+
} from "../chunk-K4KAPZC7.js";
|
|
19
19
|
import {
|
|
20
20
|
findScopedDuplicate,
|
|
21
21
|
governMemoryRecord,
|
|
22
22
|
schedulePostWriteMemoryHygiene
|
|
23
|
-
} from "../chunk-
|
|
23
|
+
} from "../chunk-524VLFFY.js";
|
|
24
24
|
import {
|
|
25
25
|
getClient,
|
|
26
26
|
isInitialized
|
|
27
|
-
} from "../chunk-
|
|
28
|
-
import "../chunk-
|
|
27
|
+
} from "../chunk-TH6HTK2L.js";
|
|
28
|
+
import "../chunk-EOO32RJZ.js";
|
|
29
29
|
import {
|
|
30
30
|
EMBEDDING_DIM
|
|
31
31
|
} from "../chunk-FXU7JOXK.js";
|
|
32
32
|
import {
|
|
33
33
|
EXE_AI_DIR,
|
|
34
|
-
MODELS_DIR
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
import "../chunk-
|
|
38
|
-
import "../chunk-PNKVD2UK.js";
|
|
34
|
+
MODELS_DIR
|
|
35
|
+
} from "../chunk-TOWAZ5IV.js";
|
|
36
|
+
import "../chunk-LYH5HE24.js";
|
|
37
|
+
import "../chunk-MLKGABMK.js";
|
|
39
38
|
|
|
40
39
|
// src/lib/exe-daemon.ts
|
|
41
40
|
import os2 from "os";
|
|
@@ -44,11 +43,9 @@ import { createServer as createHttpServer } from "http";
|
|
|
44
43
|
import { randomUUID } from "crypto";
|
|
45
44
|
import { writeFileSync as writeFileSync2, unlinkSync, mkdirSync as mkdirSync2, existsSync as existsSync3, readFileSync as readFileSync2, chmodSync } from "fs";
|
|
46
45
|
import { execFileSync as execFileSyncNode, execSync as execSyncNode } from "child_process";
|
|
47
|
-
init_config();
|
|
48
46
|
import path3 from "path";
|
|
49
47
|
|
|
50
48
|
// src/lib/orchestration-metrics.ts
|
|
51
|
-
init_config();
|
|
52
49
|
import { writeFileSync, readFileSync, existsSync } from "fs";
|
|
53
50
|
import path from "path";
|
|
54
51
|
var METRICS_PATH = path.join(EXE_AI_DIR, "orchestration-metrics.json");
|
|
@@ -491,12 +488,33 @@ async function loadModel() {
|
|
|
491
488
|
process.stderr.write("[exed] Running without embeddings \u2014 memories will have null vectors.\n");
|
|
492
489
|
}
|
|
493
490
|
}
|
|
491
|
+
var RSS_BACKPRESSURE_HIGH = 0.8;
|
|
492
|
+
var RSS_BACKPRESSURE_LOW = 0.7;
|
|
493
|
+
var _lowQueuePaused = false;
|
|
494
|
+
function isRssOverThreshold(fraction) {
|
|
495
|
+
try {
|
|
496
|
+
return process.memoryUsage.rss() > RSS_RESTART_BYTES * fraction;
|
|
497
|
+
} catch {
|
|
498
|
+
return false;
|
|
499
|
+
}
|
|
500
|
+
}
|
|
494
501
|
async function processQueue() {
|
|
495
502
|
if (_processing) return;
|
|
496
503
|
_processing = true;
|
|
497
504
|
try {
|
|
498
505
|
while (highQueue.length > 0 || lowQueue.length > 0) {
|
|
499
|
-
|
|
506
|
+
if (!_lowQueuePaused && isRssOverThreshold(RSS_BACKPRESSURE_HIGH)) {
|
|
507
|
+
_lowQueuePaused = true;
|
|
508
|
+
process.stderr.write(
|
|
509
|
+
`[exed] RSS backpressure: pausing low-priority queue (RSS > ${(RSS_BACKPRESSURE_HIGH * 100).toFixed(0)}% of restart limit). Low queue depth: ${lowQueue.length}
|
|
510
|
+
`
|
|
511
|
+
);
|
|
512
|
+
global.gc?.();
|
|
513
|
+
} else if (_lowQueuePaused && !isRssOverThreshold(RSS_BACKPRESSURE_LOW)) {
|
|
514
|
+
_lowQueuePaused = false;
|
|
515
|
+
process.stderr.write("[exed] RSS backpressure: resuming low-priority queue.\n");
|
|
516
|
+
}
|
|
517
|
+
const entry = highQueue.shift() ?? (_lowQueuePaused ? void 0 : lowQueue.shift());
|
|
500
518
|
if (!entry) break;
|
|
501
519
|
if (entry.socket.destroyed) continue;
|
|
502
520
|
try {
|
|
@@ -525,6 +543,8 @@ async function processQueue() {
|
|
|
525
543
|
error: err instanceof Error ? err.message : String(err)
|
|
526
544
|
});
|
|
527
545
|
}
|
|
546
|
+
global.gc?.();
|
|
547
|
+
await new Promise((r) => setTimeout(r, 0));
|
|
528
548
|
}
|
|
529
549
|
} finally {
|
|
530
550
|
_processing = false;
|
|
@@ -566,6 +586,22 @@ async function shutdown() {
|
|
|
566
586
|
logRestartEvent("daemon_shutdown_start", { uptime_s: Math.floor((Date.now() - _startedAt2) / 1e3), active_writes: _activeWrites, active_connections: _activeConnections });
|
|
567
587
|
resetIdleTimer();
|
|
568
588
|
flushToDisk();
|
|
589
|
+
if (process.platform === "darwin" && _llama && isRssOverThreshold(RSS_BACKPRESSURE_HIGH)) {
|
|
590
|
+
process.stderr.write(
|
|
591
|
+
`[exed] RSS CRITICAL during shutdown \u2014 fast Metal exit (skipping WAL/backup/shards).
|
|
592
|
+
`
|
|
593
|
+
);
|
|
594
|
+
try {
|
|
595
|
+
unlinkSync(SOCKET_PATH);
|
|
596
|
+
} catch {
|
|
597
|
+
}
|
|
598
|
+
try {
|
|
599
|
+
unlinkSync(PID_PATH);
|
|
600
|
+
} catch {
|
|
601
|
+
}
|
|
602
|
+
process.kill(process.pid, "SIGKILL");
|
|
603
|
+
process.exit(0);
|
|
604
|
+
}
|
|
569
605
|
if (_activeWrites > 0) {
|
|
570
606
|
process.stderr.write(`[exed] Draining ${_activeWrites} active write(s)...
|
|
571
607
|
`);
|
|
@@ -581,7 +617,7 @@ async function shutdown() {
|
|
|
581
617
|
}
|
|
582
618
|
}
|
|
583
619
|
try {
|
|
584
|
-
const { createBackup } = await import("../db-backup-
|
|
620
|
+
const { createBackup } = await import("../db-backup-W56YOLMC.js");
|
|
585
621
|
const backupPath = createBackup("pre-restart");
|
|
586
622
|
if (backupPath) {
|
|
587
623
|
process.stderr.write(`[exed] Pre-restart backup: ${backupPath}
|
|
@@ -601,12 +637,12 @@ async function shutdown() {
|
|
|
601
637
|
`);
|
|
602
638
|
}
|
|
603
639
|
try {
|
|
604
|
-
const { stopProjectionWorker } = await import("../projection-worker-
|
|
640
|
+
const { stopProjectionWorker } = await import("../projection-worker-UY7R2EQJ.js");
|
|
605
641
|
stopProjectionWorker();
|
|
606
642
|
} catch {
|
|
607
643
|
}
|
|
608
644
|
try {
|
|
609
|
-
const { disposeShards } = await import("../shard-manager-
|
|
645
|
+
const { disposeShards } = await import("../shard-manager-SP4YL5JQ.js");
|
|
610
646
|
disposeShards();
|
|
611
647
|
} catch {
|
|
612
648
|
}
|
|
@@ -947,7 +983,7 @@ async function _writeMemoryRecordInner(entry) {
|
|
|
947
983
|
const vRow = await client.execute({ sql: "SELECT version FROM memories WHERE id = ?", args: [id] });
|
|
948
984
|
const version = Number(vRow.rows[0]?.version) || 0;
|
|
949
985
|
try {
|
|
950
|
-
const { insertOntologyForMemory } = await import("../agentic-ontology-
|
|
986
|
+
const { insertOntologyForMemory } = await import("../agentic-ontology-SQR74CO7.js");
|
|
951
987
|
await insertOntologyForMemory({
|
|
952
988
|
id,
|
|
953
989
|
agent_id: record.agent_id,
|
|
@@ -975,7 +1011,7 @@ function startMemoryQueueDrain() {
|
|
|
975
1011
|
fired("memory_queue_drain");
|
|
976
1012
|
if (!await ensureStoreForPolling()) return;
|
|
977
1013
|
try {
|
|
978
|
-
const { ackQueue, claimQueue, retryQueueEntries } = await import("../memory-queue-
|
|
1014
|
+
const { ackQueue, claimQueue, retryQueueEntries } = await import("../memory-queue-NYIGZNCG.js");
|
|
979
1015
|
const lease = claimQueue();
|
|
980
1016
|
if (!lease || lease.entries.length === 0) return;
|
|
981
1017
|
acted("memory_queue_drain");
|
|
@@ -1021,7 +1057,7 @@ function startMessageQueueDrain() {
|
|
|
1021
1057
|
fired("message_queue_drain");
|
|
1022
1058
|
if (!await ensureStoreForPolling()) return;
|
|
1023
1059
|
try {
|
|
1024
|
-
const { claimMessageQueue, ackMessageQueue } = await import("../message-queue-client-
|
|
1060
|
+
const { claimMessageQueue, ackMessageQueue } = await import("../message-queue-client-NTLKYGVO.js");
|
|
1025
1061
|
const lease = claimMessageQueue();
|
|
1026
1062
|
if (!lease || lease.entries.length === 0) return;
|
|
1027
1063
|
acted("message_queue_drain");
|
|
@@ -1324,7 +1360,7 @@ async function startMcpHttpServer() {
|
|
|
1324
1360
|
throw new Error("[exed] registerAllTools not injected \u2014 call injectRegisterAllTools() before starting daemon");
|
|
1325
1361
|
}
|
|
1326
1362
|
const registerAllTools = _injectedRegisterAllTools;
|
|
1327
|
-
const { runWithAgent } = await import("../agent-context-
|
|
1363
|
+
const { runWithAgent } = await import("../agent-context-AZTTMUHP.js");
|
|
1328
1364
|
process.stderr.write("[exed] MCP HTTP: SDK imports done, initializing DB...\n");
|
|
1329
1365
|
const dbReady = await ensureStoreForPolling();
|
|
1330
1366
|
if (!dbReady) {
|
|
@@ -1334,7 +1370,7 @@ async function startMcpHttpServer() {
|
|
|
1334
1370
|
return;
|
|
1335
1371
|
}
|
|
1336
1372
|
process.stderr.write("[exed] MCP HTTP: DB ready\n");
|
|
1337
|
-
const { initLicenseGate, getCachedLicenseGate } = await import("../license-gate-
|
|
1373
|
+
const { initLicenseGate, getCachedLicenseGate } = await import("../license-gate-J5YN264E.js");
|
|
1338
1374
|
const gateResult = await initLicenseGate();
|
|
1339
1375
|
if (!gateResult.hasKey) {
|
|
1340
1376
|
process.stderr.write(
|
|
@@ -1347,8 +1383,8 @@ async function startMcpHttpServer() {
|
|
|
1347
1383
|
);
|
|
1348
1384
|
}
|
|
1349
1385
|
Promise.all([
|
|
1350
|
-
import("../tool-capability-index-
|
|
1351
|
-
import("../tool-gates-
|
|
1386
|
+
import("../tool-capability-index-OBZXORBP.js"),
|
|
1387
|
+
import("../tool-gates-3IC7DK4R.js")
|
|
1352
1388
|
]).then(async ([{ getToolCapabilityIndex }, { TOOL_CATEGORIES }]) => {
|
|
1353
1389
|
const gateState = getCachedLicenseGate();
|
|
1354
1390
|
const index = getToolCapabilityIndex();
|
|
@@ -1399,7 +1435,7 @@ async function startMcpHttpServer() {
|
|
|
1399
1435
|
}
|
|
1400
1436
|
const url = new URL(req.url || "/", `http://127.0.0.1:${MCP_HTTP_PORT}`);
|
|
1401
1437
|
try {
|
|
1402
|
-
const { handleOAuthRoute } = await import("../oauth-server-
|
|
1438
|
+
const { handleOAuthRoute } = await import("../oauth-server-TOWAZR4K.js");
|
|
1403
1439
|
const handled = await handleOAuthRoute(req, res, url, MCP_HTTP_PORT);
|
|
1404
1440
|
if (handled) return;
|
|
1405
1441
|
} catch (err) {
|
|
@@ -1417,7 +1453,7 @@ async function startMcpHttpServer() {
|
|
|
1417
1453
|
for await (const chunk of req) chunks.push(typeof chunk === "string" ? Buffer.from(chunk) : chunk);
|
|
1418
1454
|
const rawBody = Buffer.concat(chunks);
|
|
1419
1455
|
try {
|
|
1420
|
-
const { loadWebhookConfig, verifyHmac, processWebhook } = await import("../webhook-pipe-
|
|
1456
|
+
const { loadWebhookConfig, verifyHmac, processWebhook } = await import("../webhook-pipe-PJOFVBD3.js");
|
|
1421
1457
|
const webhookConfig = await loadWebhookConfig();
|
|
1422
1458
|
const serviceConfig = webhookConfig[serviceName];
|
|
1423
1459
|
if (!serviceConfig) {
|
|
@@ -1465,6 +1501,30 @@ async function startMcpHttpServer() {
|
|
|
1465
1501
|
}
|
|
1466
1502
|
return;
|
|
1467
1503
|
}
|
|
1504
|
+
if (url.pathname === "/v1/heartbeat" && req.method === "POST") {
|
|
1505
|
+
try {
|
|
1506
|
+
const chunks = [];
|
|
1507
|
+
for await (const chunk of req) chunks.push(typeof chunk === "string" ? Buffer.from(chunk) : chunk);
|
|
1508
|
+
const body = JSON.parse(Buffer.concat(chunks).toString("utf-8"));
|
|
1509
|
+
if (!body.agent_id || !body.session_name) {
|
|
1510
|
+
res.writeHead(400, { "Content-Type": "application/json" });
|
|
1511
|
+
res.end(JSON.stringify({ error: "agent_id and session_name are required" }));
|
|
1512
|
+
return;
|
|
1513
|
+
}
|
|
1514
|
+
const { recordHeartbeat } = await import("../agent-heartbeat-I5UPGXAU.js");
|
|
1515
|
+
recordHeartbeat(body.agent_id, body.session_name, {
|
|
1516
|
+
taskId: body.task_id,
|
|
1517
|
+
status: body.status,
|
|
1518
|
+
contextPct: body.context_pct
|
|
1519
|
+
});
|
|
1520
|
+
res.writeHead(200, { "Content-Type": "application/json" });
|
|
1521
|
+
res.end(JSON.stringify({ ok: true }));
|
|
1522
|
+
} catch (e) {
|
|
1523
|
+
res.writeHead(500, { "Content-Type": "application/json" });
|
|
1524
|
+
res.end(JSON.stringify({ error: e instanceof Error ? e.message : String(e) }));
|
|
1525
|
+
}
|
|
1526
|
+
return;
|
|
1527
|
+
}
|
|
1468
1528
|
if (url.pathname !== "/mcp") {
|
|
1469
1529
|
res.writeHead(404, { "Content-Type": "application/json" });
|
|
1470
1530
|
res.end(JSON.stringify({ error: "not_found" }));
|
|
@@ -1487,7 +1547,7 @@ async function startMcpHttpServer() {
|
|
|
1487
1547
|
let authed = token === _daemonToken;
|
|
1488
1548
|
if (!authed) {
|
|
1489
1549
|
try {
|
|
1490
|
-
const { verifyAccessToken } = await import("../oauth-server-
|
|
1550
|
+
const { verifyAccessToken } = await import("../oauth-server-TOWAZR4K.js");
|
|
1491
1551
|
const result = verifyAccessToken(token);
|
|
1492
1552
|
authed = result.valid;
|
|
1493
1553
|
} catch {
|
|
@@ -1646,7 +1706,7 @@ async function startMcpHttpServer() {
|
|
|
1646
1706
|
};
|
|
1647
1707
|
const sessionMcp = new McpServer({ name: "exe-os", version: "1.3.0" });
|
|
1648
1708
|
const gateState = getCachedLicenseGate();
|
|
1649
|
-
const { wrapServerWithTelemetry } = await import("../tool-telemetry-
|
|
1709
|
+
const { wrapServerWithTelemetry } = await import("../tool-telemetry-JL6NY3KP.js");
|
|
1650
1710
|
const wrappedMcp = wrapServerWithTelemetry(sessionMcp);
|
|
1651
1711
|
registerAllTools(wrappedMcp, gateState.license, gateState.hasKey);
|
|
1652
1712
|
await sessionMcp.connect(transport);
|
|
@@ -1718,7 +1778,7 @@ async function startMcpHttpServer() {
|
|
|
1718
1778
|
});
|
|
1719
1779
|
const sessionMcp = new McpServer({ name: "exe-os", version: "1.3.0" });
|
|
1720
1780
|
const gateState = getCachedLicenseGate();
|
|
1721
|
-
const { wrapServerWithTelemetry } = await import("../tool-telemetry-
|
|
1781
|
+
const { wrapServerWithTelemetry } = await import("../tool-telemetry-JL6NY3KP.js");
|
|
1722
1782
|
const wrappedMcp = wrapServerWithTelemetry(sessionMcp);
|
|
1723
1783
|
registerAllTools(wrappedMcp, gateState.license, gateState.hasKey);
|
|
1724
1784
|
await sessionMcp.connect(transport);
|
|
@@ -1740,7 +1800,7 @@ async function startMcpHttpServer() {
|
|
|
1740
1800
|
const toolName = parsedRequest?.method === "tools/call" ? parsedRequest.params?.name : void 0;
|
|
1741
1801
|
if (toolName && agentRole) {
|
|
1742
1802
|
try {
|
|
1743
|
-
const { TOOL_CATEGORIES, TOOL_GATES } = await import("../tool-gates-
|
|
1803
|
+
const { TOOL_CATEGORIES, TOOL_GATES } = await import("../tool-gates-3IC7DK4R.js");
|
|
1744
1804
|
const registerName = `register${toolName.charAt(0).toUpperCase()}${toolName.slice(1)}`;
|
|
1745
1805
|
const category = TOOL_CATEGORIES[registerName] || TOOL_CATEGORIES[toolName];
|
|
1746
1806
|
if (category) {
|
|
@@ -1905,7 +1965,7 @@ async function ensureStoreForPolling() {
|
|
|
1905
1965
|
}
|
|
1906
1966
|
}
|
|
1907
1967
|
async function startReviewPolling() {
|
|
1908
|
-
const polling = await import("../review-polling-
|
|
1968
|
+
const polling = await import("../review-polling-DORNZ2KI.js");
|
|
1909
1969
|
const state = {
|
|
1910
1970
|
lastIntercomSent: /* @__PURE__ */ new Map(),
|
|
1911
1971
|
lastNudgeSent: /* @__PURE__ */ new Map(),
|
|
@@ -1940,7 +2000,7 @@ function startSessionTTL() {
|
|
|
1940
2000
|
if (!await ensureStoreForPolling()) return;
|
|
1941
2001
|
try {
|
|
1942
2002
|
const { getClient: getClient2 } = await import("./database.js");
|
|
1943
|
-
const { checkSessionTTL, createSessionTTLRealDeps } = await import("../daemon-orchestration-
|
|
2003
|
+
const { checkSessionTTL, createSessionTTLRealDeps } = await import("../daemon-orchestration-HFODCB52.js");
|
|
1944
2004
|
const deps = createSessionTTLRealDeps(getClient2);
|
|
1945
2005
|
const killed = await checkSessionTTL(deps);
|
|
1946
2006
|
if (killed.length > 0) acted("session_ttl");
|
|
@@ -1969,7 +2029,7 @@ function startCooAutoRestart() {
|
|
|
1969
2029
|
_cooLastSeen = Date.now();
|
|
1970
2030
|
try {
|
|
1971
2031
|
const { getClient: getClient2 } = await import("./database.js");
|
|
1972
|
-
const { pollCoordinatorContextRestart, createCoordinatorRestartRealDeps } = await import("../daemon-orchestration-
|
|
2032
|
+
const { pollCoordinatorContextRestart, createCoordinatorRestartRealDeps } = await import("../daemon-orchestration-HFODCB52.js");
|
|
1973
2033
|
const deps = createCoordinatorRestartRealDeps(getClient2);
|
|
1974
2034
|
const restarted = await pollCoordinatorContextRestart(deps, process.cwd());
|
|
1975
2035
|
if (restarted.length > 0) {
|
|
@@ -1987,7 +2047,7 @@ function startCooAutoRestart() {
|
|
|
1987
2047
|
if (Date.now() - _cooLastSeen < COO_RESTART_COOLDOWN_MS) return;
|
|
1988
2048
|
process.stderr.write("[exed] COO session died \u2014 auto-restarting\n");
|
|
1989
2049
|
acted("coo_restart");
|
|
1990
|
-
const { pushNotifyAsync: pushNotifyAsync2 } = await import("../push-notifications-
|
|
2050
|
+
const { pushNotifyAsync: pushNotifyAsync2 } = await import("../push-notifications-KDYFOJRI.js");
|
|
1991
2051
|
const { listSessions } = await import("./session-registry.js");
|
|
1992
2052
|
const allSessions = listSessions();
|
|
1993
2053
|
const lastCoo = allSessions.filter((s) => isExeSession(s.windowName)).sort((a, b) => (b.registeredAt ?? "").localeCompare(a.registeredAt ?? ""))[0];
|
|
@@ -2059,11 +2119,35 @@ function startIdleKill() {
|
|
|
2059
2119
|
const tick = async () => {
|
|
2060
2120
|
fired("idle_kill");
|
|
2061
2121
|
if (!await ensureStoreForPolling()) return;
|
|
2122
|
+
try {
|
|
2123
|
+
const signalDir = path3.join(os2.homedir(), ".exe-os", "task-signals");
|
|
2124
|
+
if (existsSync3(signalDir)) {
|
|
2125
|
+
const files = (await import("fs")).readdirSync(signalDir).filter((f) => f.endsWith(".terminate"));
|
|
2126
|
+
for (const file of files) {
|
|
2127
|
+
const agentId = file.replace(".terminate", "");
|
|
2128
|
+
const signalPath = path3.join(signalDir, file);
|
|
2129
|
+
try {
|
|
2130
|
+
const sessions = execSyncNode("tmux list-sessions -F '#{session_name}' 2>/dev/null", { encoding: "utf8", timeout: 2e3 }).trim().split("\n");
|
|
2131
|
+
const match = sessions.find((s) => s.startsWith(`${agentId}-`) || s.startsWith(`${agentId}2-`) || s.startsWith(`${agentId}3-`));
|
|
2132
|
+
if (match) {
|
|
2133
|
+
execSyncNode(`tmux kill-session -t ${match} 2>/dev/null`, { timeout: 2e3 });
|
|
2134
|
+
process.stderr.write(`[exed] Auto-terminate: killed ${match} (agent ${agentId}, empty queue)
|
|
2135
|
+
`);
|
|
2136
|
+
acted("idle_kill");
|
|
2137
|
+
}
|
|
2138
|
+
unlinkSync(signalPath);
|
|
2139
|
+
} catch {
|
|
2140
|
+
unlinkSync(signalPath);
|
|
2141
|
+
}
|
|
2142
|
+
}
|
|
2143
|
+
}
|
|
2144
|
+
} catch {
|
|
2145
|
+
}
|
|
2062
2146
|
try {
|
|
2063
2147
|
const { loadConfigSync } = await import("./config.js");
|
|
2064
2148
|
const cfg = loadConfigSync();
|
|
2065
2149
|
const { getClient: getClient2 } = await import("./database.js");
|
|
2066
|
-
const { pollIdleKill, createIdleKillRealDeps } = await import("../daemon-orchestration-
|
|
2150
|
+
const { pollIdleKill, createIdleKillRealDeps } = await import("../daemon-orchestration-HFODCB52.js");
|
|
2067
2151
|
const deps = createIdleKillRealDeps(
|
|
2068
2152
|
getClient2,
|
|
2069
2153
|
cfg.sessionLifecycle.idleKillIntercomAckWindowMs
|
|
@@ -2122,7 +2206,7 @@ function startConsolidation() {
|
|
|
2122
2206
|
`);
|
|
2123
2207
|
}
|
|
2124
2208
|
try {
|
|
2125
|
-
const { createBackup } = await import("../db-backup-
|
|
2209
|
+
const { createBackup } = await import("../db-backup-W56YOLMC.js");
|
|
2126
2210
|
createBackup("pre-consolidation");
|
|
2127
2211
|
} catch (e) {
|
|
2128
2212
|
process.stderr.write("[exe-daemon] pre-consolidation backup: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
@@ -2273,7 +2357,7 @@ function startGraphExtraction() {
|
|
|
2273
2357
|
if (!await ensureStoreForPolling()) return;
|
|
2274
2358
|
const { getClient: getClient2 } = await import("./database.js");
|
|
2275
2359
|
const client = getClient2();
|
|
2276
|
-
const { extractBatch } = await import("../graph-rag-
|
|
2360
|
+
const { extractBatch } = await import("../graph-rag-G3EG5Q6L.js");
|
|
2277
2361
|
const result = await extractBatch(client, 50, config.selfQueryModel);
|
|
2278
2362
|
if (result.processed > 0) {
|
|
2279
2363
|
acted("graph_extraction");
|
|
@@ -2413,7 +2497,7 @@ function startReflectionSweep() {
|
|
|
2413
2497
|
for (const row of agents.rows) {
|
|
2414
2498
|
const agentId = row.agent_id;
|
|
2415
2499
|
try {
|
|
2416
|
-
const { runReflection } = await import("../memory-reflection-
|
|
2500
|
+
const { runReflection } = await import("../memory-reflection-JQC4ZSUD.js");
|
|
2417
2501
|
const result = await runReflection(agentId);
|
|
2418
2502
|
totalInsights += result.contradictions + result.patterns + result.summaries;
|
|
2419
2503
|
} catch (e) {
|
|
@@ -2442,7 +2526,7 @@ function startReflectionSweep() {
|
|
|
2442
2526
|
if (memories > 100 && cards < memories * 0.1) {
|
|
2443
2527
|
process.stderr.write(`[exed] Memory cards sparse (${cards} cards / ${memories} memories) \u2014 running backfill...
|
|
2444
2528
|
`);
|
|
2445
|
-
const { insertMemoryCardsForBatch } = await import("../memory-cards-
|
|
2529
|
+
const { insertMemoryCardsForBatch } = await import("../memory-cards-UAQCO4QR.js");
|
|
2446
2530
|
const batchSize = 500;
|
|
2447
2531
|
let offset = 0;
|
|
2448
2532
|
let totalCards = 0;
|
|
@@ -2485,7 +2569,7 @@ function startDatabaseBackup() {
|
|
|
2485
2569
|
const tick = async () => {
|
|
2486
2570
|
fired("db_backup");
|
|
2487
2571
|
try {
|
|
2488
|
-
const { createBackup, rotateBackups, hasBackupToday } = await import("../db-backup-
|
|
2572
|
+
const { createBackup, rotateBackups, hasBackupToday } = await import("../db-backup-W56YOLMC.js");
|
|
2489
2573
|
if (hasBackupToday("daily")) return;
|
|
2490
2574
|
const backupPath = createBackup("daily");
|
|
2491
2575
|
if (backupPath) {
|
|
@@ -2547,7 +2631,7 @@ function startIntercomQueueDrain() {
|
|
|
2547
2631
|
const tick = async () => {
|
|
2548
2632
|
fired("intercom_queue_drain");
|
|
2549
2633
|
try {
|
|
2550
|
-
const { drainQueue } = await import("../intercom-queue-
|
|
2634
|
+
const { drainQueue } = await import("../intercom-queue-K3DVKSPJ.js");
|
|
2551
2635
|
const { isSessionBusy } = await import("./tmux-routing.js");
|
|
2552
2636
|
const { sendIntercom: centralSendIntercom } = await import("./tmux-routing.js");
|
|
2553
2637
|
const result = drainQueue(
|
|
@@ -2583,7 +2667,7 @@ function startOrphanReaper() {
|
|
|
2583
2667
|
const tick = async () => {
|
|
2584
2668
|
fired("orphan_reaper");
|
|
2585
2669
|
try {
|
|
2586
|
-
const { reapOrphanedMcpProcesses, createOrphanReaperRealDeps } = await import("../daemon-orchestration-
|
|
2670
|
+
const { reapOrphanedMcpProcesses, createOrphanReaperRealDeps } = await import("../daemon-orchestration-HFODCB52.js");
|
|
2587
2671
|
const deps = createOrphanReaperRealDeps();
|
|
2588
2672
|
const reaped = await reapOrphanedMcpProcesses(deps);
|
|
2589
2673
|
if (reaped.length > 0) acted("orphan_reaper");
|
|
@@ -2610,7 +2694,7 @@ function startAutoWake() {
|
|
|
2610
2694
|
if (!await ensureStoreForPolling()) return;
|
|
2611
2695
|
try {
|
|
2612
2696
|
const { getClient: getClient2 } = await import("./database.js");
|
|
2613
|
-
const { pollOrphanedTasks, createAutoWakeRealDeps } = await import("../daemon-orchestration-
|
|
2697
|
+
const { pollOrphanedTasks, createAutoWakeRealDeps } = await import("../daemon-orchestration-HFODCB52.js");
|
|
2614
2698
|
const deps = createAutoWakeRealDeps(getClient2, process.cwd());
|
|
2615
2699
|
const woken = await pollOrphanedTasks(deps);
|
|
2616
2700
|
if (woken.length > 0) acted("auto_wake");
|
|
@@ -2683,7 +2767,7 @@ function startStuckTaskRelease() {
|
|
|
2683
2767
|
if (!await ensureStoreForPolling()) return;
|
|
2684
2768
|
try {
|
|
2685
2769
|
const { getClient: getClient2 } = await import("./database.js");
|
|
2686
|
-
const { releaseStuckTasks, createStuckTaskRealDeps } = await import("../daemon-orchestration-
|
|
2770
|
+
const { releaseStuckTasks, createStuckTaskRealDeps } = await import("../daemon-orchestration-HFODCB52.js");
|
|
2687
2771
|
const deps = createStuckTaskRealDeps(getClient2);
|
|
2688
2772
|
const released = await releaseStuckTasks(deps);
|
|
2689
2773
|
if (released.length > 0) {
|
|
@@ -2704,19 +2788,19 @@ function startStuckTaskRelease() {
|
|
|
2704
2788
|
var TOTAL_MEM_GB = os2.totalmem() / 1024 ** 3;
|
|
2705
2789
|
var RSS_WARN_BYTES = Number(process.env.EXE_RSS_WARN_MB) * 1024 * 1024 || (TOTAL_MEM_GB >= 64 ? 6 * 1024 ** 3 : TOTAL_MEM_GB >= 32 ? 4 * 1024 ** 3 : TOTAL_MEM_GB >= 16 ? 2.5 * 1024 ** 3 : 1.5 * 1024 ** 3);
|
|
2706
2790
|
var RSS_RESTART_BYTES = Number(process.env.EXE_RSS_RESTART_MB) * 1024 * 1024 || (TOTAL_MEM_GB >= 64 ? 8 * 1024 ** 3 : TOTAL_MEM_GB >= 32 ? 6 * 1024 ** 3 : TOTAL_MEM_GB >= 16 ? 4 * 1024 ** 3 : 3 * 1024 ** 3);
|
|
2707
|
-
var RSS_CHECK_INTERVAL_MS =
|
|
2791
|
+
var RSS_CHECK_INTERVAL_MS = 10 * 1e3;
|
|
2708
2792
|
var _rssWarned = false;
|
|
2709
2793
|
var TASK_ENFORCEMENT_INTERVAL_MS = 6e4;
|
|
2710
2794
|
function startTaskEnforcementScanner() {
|
|
2711
2795
|
const tick = async () => {
|
|
2712
2796
|
fired("task_enforcement");
|
|
2713
2797
|
try {
|
|
2714
|
-
const { runTaskEnforcementTick } = await import("../task-enforcement-
|
|
2798
|
+
const { runTaskEnforcementTick } = await import("../task-enforcement-OYCQXBBC.js");
|
|
2715
2799
|
const { getTransport } = await import("./transport.js");
|
|
2716
2800
|
const { loadAgentConfig } = await import("./agent-config.js");
|
|
2717
2801
|
const { getClient: getClient2 } = await import("./database.js");
|
|
2718
2802
|
const { loadEmployeesSync } = await import("./employees.js");
|
|
2719
|
-
const { sessionScopeFilter } = await import("../task-scope-
|
|
2803
|
+
const { sessionScopeFilter } = await import("../task-scope-WWRNU2LU.js");
|
|
2720
2804
|
await runTaskEnforcementTick({
|
|
2721
2805
|
transport: getTransport(),
|
|
2722
2806
|
agentConfig: loadAgentConfig(),
|
|
@@ -2852,7 +2936,7 @@ function startBackgroundJobGuardrails() {
|
|
|
2852
2936
|
const tick = async () => {
|
|
2853
2937
|
fired("background_job_guardrails");
|
|
2854
2938
|
try {
|
|
2855
|
-
const { enforceBackgroundJobGuardrails } = await import("../background-jobs-
|
|
2939
|
+
const { enforceBackgroundJobGuardrails } = await import("../background-jobs-IUB22CRF.js");
|
|
2856
2940
|
const actions = enforceBackgroundJobGuardrails();
|
|
2857
2941
|
if (actions.length > 0) {
|
|
2858
2942
|
acted("background_job_guardrails");
|
|
@@ -3061,7 +3145,7 @@ function startAutoUpdateCheck() {
|
|
|
3061
3145
|
const config = await loadConfig();
|
|
3062
3146
|
const { checkIntervalMs, autoInstall } = config.autoUpdate;
|
|
3063
3147
|
if (!autoInstall && !config.autoUpdate.checkOnBoot) return;
|
|
3064
|
-
const { checkForUpdate } = await import("../update-check-
|
|
3148
|
+
const { checkForUpdate } = await import("../update-check-MKHO7H6B.js");
|
|
3065
3149
|
const packageRoot = new URL("../..", import.meta.url).pathname;
|
|
3066
3150
|
const result = checkForUpdate(packageRoot);
|
|
3067
3151
|
if (!result.updateAvailable) return;
|
|
@@ -3215,7 +3299,7 @@ try {
|
|
|
3215
3299
|
fired("orphan_task_cleanup");
|
|
3216
3300
|
try {
|
|
3217
3301
|
if (!await ensureStoreForPolling()) return;
|
|
3218
|
-
const { cleanOrphanedTaskFiles } = await import("../tasks-crud-
|
|
3302
|
+
const { cleanOrphanedTaskFiles } = await import("../tasks-crud-75AUVZPO.js");
|
|
3219
3303
|
const count = await cleanOrphanedTaskFiles();
|
|
3220
3304
|
if (count > 0) {
|
|
3221
3305
|
acted("orphan_task_cleanup");
|
|
@@ -3237,10 +3321,17 @@ try {
|
|
|
3237
3321
|
message: "MCP HTTP server bound and ready",
|
|
3238
3322
|
data: { port: 48739 }
|
|
3239
3323
|
});
|
|
3240
|
-
|
|
3324
|
+
setInterval(async () => {
|
|
3325
|
+
try {
|
|
3326
|
+
const { cleanStaleDispatchAcks } = await import("../dispatch-ack-JYCKAWKZ.js");
|
|
3327
|
+
cleanStaleDispatchAcks();
|
|
3328
|
+
} catch {
|
|
3329
|
+
}
|
|
3330
|
+
}, 15 * 60 * 1e3);
|
|
3331
|
+
const { startToolTelemetryFlush } = await import("../tool-telemetry-JL6NY3KP.js");
|
|
3241
3332
|
startToolTelemetryFlush();
|
|
3242
3333
|
process.stderr.write("[exed] Tool telemetry started (flush every 5m)\n");
|
|
3243
|
-
const { startProjectionWorker } = await import("../projection-worker-
|
|
3334
|
+
const { startProjectionWorker } = await import("../projection-worker-UY7R2EQJ.js");
|
|
3244
3335
|
startProjectionWorker();
|
|
3245
3336
|
try {
|
|
3246
3337
|
const { loadConfig } = await import("./config.js");
|
package/dist/lib/file-grep.js
CHANGED
|
@@ -5,17 +5,17 @@ import {
|
|
|
5
5
|
recentRecords,
|
|
6
6
|
rrfMerge,
|
|
7
7
|
rrfMergeMulti
|
|
8
|
-
} from "../chunk-
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
8
|
+
} from "../chunk-AGFWOII2.js";
|
|
9
|
+
import "../chunk-Y6TS42WD.js";
|
|
10
|
+
import "../chunk-524VLFFY.js";
|
|
11
11
|
import "../chunk-MP2AFCGL.js";
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-TH6HTK2L.js";
|
|
13
|
+
import "../chunk-EOO32RJZ.js";
|
|
14
14
|
import "../chunk-FXU7JOXK.js";
|
|
15
15
|
import "../chunk-6D23UNXU.js";
|
|
16
|
-
import "../chunk-
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
16
|
+
import "../chunk-TOWAZ5IV.js";
|
|
17
|
+
import "../chunk-LYH5HE24.js";
|
|
18
|
+
import "../chunk-MLKGABMK.js";
|
|
19
19
|
export {
|
|
20
20
|
estimateCardinality,
|
|
21
21
|
hybridSearch,
|
package/dist/lib/identity.js
CHANGED
|
@@ -4,12 +4,12 @@ import {
|
|
|
4
4
|
identityPath,
|
|
5
5
|
listIdentities,
|
|
6
6
|
updateIdentity
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-TH6HTK2L.js";
|
|
8
|
+
import "../chunk-EOO32RJZ.js";
|
|
9
9
|
import "../chunk-FXU7JOXK.js";
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-TOWAZ5IV.js";
|
|
11
|
+
import "../chunk-LYH5HE24.js";
|
|
12
|
+
import "../chunk-MLKGABMK.js";
|
|
13
13
|
export {
|
|
14
14
|
getIdentity,
|
|
15
15
|
getIdentityInjection,
|
package/dist/lib/keychain.js
CHANGED
package/dist/lib/license.js
CHANGED
|
@@ -13,10 +13,10 @@ import {
|
|
|
13
13
|
startLicenseRevalidation,
|
|
14
14
|
stopLicenseRevalidation,
|
|
15
15
|
validateLicense
|
|
16
|
-
} from "../chunk-
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
19
|
-
import "../chunk-
|
|
16
|
+
} from "../chunk-NNT2ZNMC.js";
|
|
17
|
+
import "../chunk-TOWAZ5IV.js";
|
|
18
|
+
import "../chunk-LYH5HE24.js";
|
|
19
|
+
import "../chunk-MLKGABMK.js";
|
|
20
20
|
export {
|
|
21
21
|
LICENSE_PUBLIC_KEY_PEM,
|
|
22
22
|
PLAN_LIMITS,
|
package/dist/lib/messaging.js
CHANGED
|
@@ -12,8 +12,8 @@ import {
|
|
|
12
12
|
retryPendingMessages,
|
|
13
13
|
sendMessage,
|
|
14
14
|
setWsClientSend
|
|
15
|
-
} from "../chunk-
|
|
16
|
-
import "../chunk-
|
|
15
|
+
} from "../chunk-LC53LVOT.js";
|
|
16
|
+
import "../chunk-ONMRBKAX.js";
|
|
17
17
|
import "../chunk-LOQCOHEW.js";
|
|
18
18
|
import "../chunk-TXSJ2L5O.js";
|
|
19
19
|
import "../chunk-64WZEXXA.js";
|
|
@@ -21,21 +21,22 @@ import "../chunk-3TXOH3SJ.js";
|
|
|
21
21
|
import "../chunk-RLCZBSUB.js";
|
|
22
22
|
import "../chunk-GZIAQYGI.js";
|
|
23
23
|
import "../chunk-ZQX6UOP6.js";
|
|
24
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-KIUU4PNX.js";
|
|
25
25
|
import "../chunk-NGP6LSV2.js";
|
|
26
|
-
import "../chunk-
|
|
26
|
+
import "../chunk-AERGE6GC.js";
|
|
27
|
+
import "../chunk-OPU3NYOO.js";
|
|
27
28
|
import "../chunk-CVYC6DUW.js";
|
|
28
29
|
import "../chunk-GJV3WDWM.js";
|
|
29
30
|
import "../chunk-MP2AFCGL.js";
|
|
30
|
-
import "../chunk-
|
|
31
|
+
import "../chunk-DTLASDQM.js";
|
|
31
32
|
import "../chunk-HYZV25LY.js";
|
|
32
|
-
import "../chunk-
|
|
33
|
-
import "../chunk-
|
|
33
|
+
import "../chunk-TH6HTK2L.js";
|
|
34
|
+
import "../chunk-EOO32RJZ.js";
|
|
34
35
|
import "../chunk-FXU7JOXK.js";
|
|
35
|
-
import "../chunk-
|
|
36
|
-
import "../chunk-
|
|
37
|
-
import "../chunk-
|
|
38
|
-
import "../chunk-
|
|
36
|
+
import "../chunk-NNT2ZNMC.js";
|
|
37
|
+
import "../chunk-TOWAZ5IV.js";
|
|
38
|
+
import "../chunk-LYH5HE24.js";
|
|
39
|
+
import "../chunk-MLKGABMK.js";
|
|
39
40
|
export {
|
|
40
41
|
deliverLocalMessage,
|
|
41
42
|
getFailedMessages,
|