@askexenow/exe-os 0.9.239 → 0.9.243
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/deploy/compose/.env.customer.example +12 -0
- package/deploy/compose/.env.example +13 -1
- package/deploy/compose/cloudflared/config.yml.example +23 -4
- package/deploy/compose/docker-compose.yml +27 -7
- package/deploy/compose/generate-env.ts +49 -1
- package/deploy/compose/init-db.sql +10 -2
- package/deploy/stack-manifests/v0.9.json +113 -9
- package/dist/{active-agent-7MIVNARP.js → active-agent-KO4ZWDXE.js} +4 -4
- package/dist/{active-agent-55C5Y3XL.js → active-agent-KP2O52HA.js} +4 -4
- package/dist/{agentic-ontology-NCAQIQQI.js → agentic-ontology-DXE5J6I5.js} +1 -1
- package/dist/{backfill-metadata-3JP7EZ2U.js → backfill-metadata-DFTIGPXP.js} +7 -7
- package/dist/{background-jobs-RWL46VRD.js → background-jobs-CRXY7T4Y.js} +2 -2
- package/dist/{behaviors-6BGALYGW.js → behaviors-BL3QCHBT.js} +4 -4
- package/dist/bin/age-ontology-load.js +2 -2
- 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 +11 -11
- package/dist/bin/bulk-sync-postgres.js +10 -10
- package/dist/bin/cc-doctor.js +3 -3
- package/dist/bin/cleanup-stale-review-tasks.js +13 -13
- package/dist/bin/cli.js +27 -22
- package/dist/bin/exe-agent-config.js +4 -4
- package/dist/bin/exe-agent.js +8 -8
- package/dist/bin/exe-assign.js +11 -11
- package/dist/bin/exe-boot.js +22 -22
- package/dist/bin/exe-call.js +5 -5
- package/dist/bin/exe-cloud.js +8 -8
- package/dist/bin/exe-dispatch.js +13 -13
- package/dist/bin/exe-doctor.js +1 -1
- package/dist/bin/exe-export-behaviors.js +10 -10
- package/dist/bin/exe-forget.js +9 -9
- package/dist/bin/exe-gateway.js +8 -8
- package/dist/bin/exe-healthcheck.js +3 -3
- package/dist/bin/exe-heartbeat.js +13 -13
- package/dist/bin/exe-kill.js +18 -18
- package/dist/bin/exe-launch-agent.js +22 -22
- package/dist/bin/exe-new-employee.js +8 -8
- package/dist/bin/exe-pending-messages.js +14 -14
- package/dist/bin/exe-pending-notifications.js +13 -13
- package/dist/bin/exe-pending-reviews.js +13 -13
- package/dist/bin/exe-rename.js +5 -5
- package/dist/bin/exe-review.js +17 -17
- package/dist/bin/exe-search.js +8 -8
- package/dist/bin/exe-session-cleanup.js +20 -20
- package/dist/bin/exe-settings.js +7 -7
- package/dist/bin/exe-start-codex.js +14 -14
- package/dist/bin/exe-start-opencode.js +11 -11
- package/dist/bin/exe-status.js +14 -14
- package/dist/bin/exe-support.js +3 -3
- package/dist/bin/exe-team.js +4 -4
- package/dist/bin/git-sweep.js +13 -13
- package/dist/bin/graph-backfill.js +8 -8
- package/dist/bin/graph-export.js +8 -8
- package/dist/bin/import-history.js +10 -10
- package/dist/bin/install.js +7 -7
- package/dist/bin/intercom-check.js +4 -4
- package/dist/bin/mcp-sessions.js +2 -2
- package/dist/bin/orchestration-metrics.js +5 -5
- package/dist/bin/postgres-agentic-reflection-backfill.js +4 -4
- package/dist/bin/postgres-agentic-semantic-backfill.js +3 -3
- package/dist/bin/scan-tasks.js +13 -13
- package/dist/bin/setup.js +3 -3
- package/dist/bin/shard-migrate.js +8 -8
- package/dist/bin/stack-update.js +324 -20
- package/dist/bin/verify-stack.js +3 -383
- package/dist/bin/vps-backup.js +8 -160
- package/dist/bin/vps-health-gate.js +10 -220
- package/dist/{branding-I7YYX4FM.js → branding-XWMO5EDR.js} +1 -1
- package/dist/{capacity-monitor-IFCZKRPG.js → capacity-monitor-4CSBC7AP.js} +14 -14
- package/dist/{catchup-brief-PIDRWXOW.js → catchup-brief-LF5Z6Q6E.js} +17 -17
- package/dist/{chunk-FGJUGDNM.js → chunk-222SI7QC.js} +14 -14
- package/dist/{chunk-JZMVLAZ2.js → chunk-2WBBVEIB.js} +1 -1
- package/dist/{chunk-JDOE33C2.js → chunk-3V53HH5T.js} +4 -4
- package/dist/{chunk-2KZSKURT.js → chunk-57SULZJ2.js} +3 -3
- package/dist/{chunk-QI4IXJN7.js → chunk-5CHYEKMH.js} +7 -4
- package/dist/chunk-5DMAMQNU.js +168 -0
- package/dist/{chunk-PLQAFB3Z.js → chunk-5JIG2FP2.js} +1 -1
- package/dist/{chunk-UWQ3XCDG.js → chunk-5WK7X5CF.js} +2 -2
- package/dist/{chunk-DDPAQ4LT.js → chunk-6JAGJN77.js} +2 -2
- package/dist/{chunk-7F37NMKB.js → chunk-73UE2PHT.js} +1 -1
- package/dist/{chunk-JL3K5OTS.js → chunk-7IZWLMTP.js} +1 -1
- package/dist/{chunk-ELRRL2NC.js → chunk-A4K2ZT6N.js} +4 -4
- package/dist/{chunk-GWYADLIW.js → chunk-AHXEU5XB.js} +1 -1
- package/dist/{chunk-WSHMBME6.js → chunk-AWRL5FGM.js} +19 -78
- package/dist/{chunk-OMPCFLWA.js → chunk-BSPOEYAO.js} +1 -1
- package/dist/{chunk-DHVC4RN7.js → chunk-CBDPEJOR.js} +5 -5
- package/dist/{chunk-2H55BIV2.js → chunk-CEJO7244.js} +2 -2
- package/dist/{chunk-FKWZVO2T.js → chunk-CPXGLSIL.js} +3 -3
- package/dist/{chunk-HX5G4AS4.js → chunk-CWITU7DW.js} +2 -2
- package/dist/{chunk-5GG7MTRJ.js → chunk-DGBGIXCC.js} +4 -4
- package/dist/{chunk-IQXPMK46.js → chunk-DLZYAYVM.js} +60 -14
- package/dist/{chunk-PPYWQV2M.js → chunk-DR5BGWFR.js} +2 -2
- package/dist/{chunk-BZWKTFEB.js → chunk-ENVRFBTB.js} +2 -2
- package/dist/{chunk-DUVO2PUJ.js → chunk-F3GM6OOP.js} +4 -4
- package/dist/{chunk-HNLPLLE6.js → chunk-F7JLZXHC.js} +60 -26
- package/dist/{chunk-AL4DRC5H.js → chunk-FFLILAG6.js} +1 -1
- package/dist/{chunk-BZNI4OK5.js → chunk-GHEWRYMY.js} +18 -2
- package/dist/{chunk-C7SFJO5F.js → chunk-GHT4REOS.js} +5 -5
- package/dist/{chunk-FBWUJEXS.js → chunk-HANG6NLF.js} +4 -6
- package/dist/{chunk-5NJ4A4ZA.js → chunk-HCBMPZDT.js} +1 -1
- package/dist/chunk-HOGTZLVU.js +244 -0
- package/dist/{chunk-IQSCZDBQ.js → chunk-I5PIBL56.js} +3 -3
- package/dist/chunk-IRHNV4GY.js +388 -0
- package/dist/{chunk-F4TCKCKK.js → chunk-ITZVPCBQ.js} +33 -12
- package/dist/{chunk-4HROS3GJ.js → chunk-IZVKWBIP.js} +1 -1
- package/dist/{chunk-DKI5BTBC.js → chunk-J7V7LPPX.js} +2 -2
- package/dist/{chunk-TOZ5NN5V.js → chunk-JLKUVK5J.js} +1 -1
- package/dist/{chunk-4SC65UBG.js → chunk-JLNXKG3K.js} +1 -1
- package/dist/{chunk-KVSQOG3W.js → chunk-K2BDE2B5.js} +4 -4
- package/dist/{chunk-KDJRFJDL.js → chunk-K333WOW4.js} +30 -2
- package/dist/{chunk-6LBCUA2A.js → chunk-KEZXW3RP.js} +1 -1
- package/dist/{chunk-W7G3GY4I.js → chunk-KLQI7QY4.js} +3 -3
- package/dist/{chunk-UODVZGBQ.js → chunk-KN7LPTIB.js} +1 -1
- package/dist/{chunk-ESKBZN4Q.js → chunk-L4WRH3DL.js} +1 -1
- package/dist/{chunk-VFQKKMKE.js → chunk-LAOB5BKV.js} +2 -2
- package/dist/{chunk-MAN5LZQ4.js → chunk-LQSFP2BV.js} +1 -1
- package/dist/{chunk-EJ7LOTV2.js → chunk-LSFHEMVI.js} +9 -9
- package/dist/{chunk-RA2RO27E.js → chunk-MCESA5UW.js} +2 -2
- package/dist/{chunk-UPMHG7ET.js → chunk-MEIHREPM.js} +1 -1
- package/dist/{chunk-D5C56WO3.js → chunk-MOZ2YQ54.js} +1 -1
- package/dist/{chunk-CLGB3FGL.js → chunk-MPX3TRMQ.js} +2 -2
- package/dist/{chunk-5R75ODPS.js → chunk-NBY6R37W.js} +61 -232
- package/dist/{chunk-RWFGXC35.js → chunk-NEYQAEYU.js} +7 -7
- package/dist/{chunk-MBHZDXGN.js → chunk-NL35XNLI.js} +1 -1
- package/dist/{chunk-TPQVLYSV.js → chunk-NLGMHPEN.js} +1 -1
- package/dist/{chunk-5LMH4YHG.js → chunk-NRVV4Y5V.js} +4 -4
- package/dist/{chunk-GN5VHPPR.js → chunk-NVZR7T4E.js} +1 -1
- package/dist/{chunk-Y2L7RMGH.js → chunk-NWBHL5PI.js} +1 -1
- package/dist/{chunk-YPYDLW75.js → chunk-OEMX65EA.js} +1 -1
- package/dist/{chunk-UAFUGPKO.js → chunk-ONAQAL3O.js} +1 -1
- package/dist/{chunk-AVM7XZE4.js → chunk-OWQ3CCYJ.js} +7 -6
- package/dist/{chunk-K525WLL7.js → chunk-PI6V23GF.js} +5 -4
- package/dist/{chunk-AURM7FOT.js → chunk-Q2OAQPWY.js} +1 -1
- package/dist/{chunk-FB5VRO5S.js → chunk-QLDWASTX.js} +28 -32
- package/dist/{chunk-EPWDTS2Q.js → chunk-QMTGMCWB.js} +1 -1
- package/dist/{chunk-VI2FJY2M.js → chunk-QP4FHME2.js} +2 -2
- package/dist/{chunk-NJWK6J4N.js → chunk-QUNKPR6Y.js} +5 -5
- package/dist/{chunk-O6DAF2TY.js → chunk-QUZVAHO7.js} +2 -2
- package/dist/{chunk-VHKL4S4T.js → chunk-RRHSONV5.js} +2 -2
- package/dist/{chunk-GPF6X6HE.js → chunk-RYDHEWYY.js} +2 -2
- package/dist/{chunk-C2YS2AA6.js → chunk-U7WOVXBB.js} +2 -2
- package/dist/chunk-UIRWDGMB.js +230 -0
- package/dist/{chunk-FE45RXGC.js → chunk-V2GZMY6O.js} +1 -1
- package/dist/{chunk-PATCHPNY.js → chunk-VHALWCUO.js} +1 -1
- package/dist/{chunk-HLZSC5WK.js → chunk-VQAP35DA.js} +20 -18
- package/dist/{chunk-452XB7OZ.js → chunk-VRIMTCX2.js} +1 -1
- package/dist/{chunk-SUNYJ6YE.js → chunk-VT2B5BHM.js} +1 -1
- package/dist/{chunk-UZIJDYDA.js → chunk-VWVJVQDH.js} +2 -2
- package/dist/{chunk-TRZ5KA2R.js → chunk-VXIMSRTO.js} +2 -2
- package/dist/{chunk-DAZIV4QZ.js → chunk-WCXZF42W.js} +1 -1
- package/dist/{chunk-6OJJF4WP.js → chunk-XJUUWHVN.js} +1 -1
- package/dist/{chunk-F7LU65PQ.js → chunk-Y25OJWOQ.js} +14 -2
- package/dist/{chunk-2ORPA23Y.js → chunk-YMXXD2GW.js} +36 -8
- package/dist/{chunk-5WLMF6PL.js → chunk-YMZHTTOQ.js} +1 -1
- package/dist/{chunk-7DIDOQCX.js → chunk-YRVW57UW.js} +139 -125
- package/dist/{chunk-BRFH5X7G.js → chunk-Z7VDUS6L.js} +1 -1
- package/dist/{chunk-YFE6W75D.js → chunk-ZKFPHJIJ.js} +1 -1
- package/dist/{chunk-5WUTKDH6.js → chunk-ZVXJSQOR.js} +1 -1
- package/dist/{co-activation-VB4CJQZB.js → co-activation-L6I2LSJO.js} +3 -3
- package/dist/{co-occurrence-XZQJJIBM.js → co-occurrence-QARWYUAY.js} +3 -3
- package/dist/{code-context-index-FCQOPUEA.js → code-context-index-UIYQRDHD.js} +4 -4
- package/dist/{content-extractor-SPSH5X33.js → content-extractor-EYRVGD6O.js} +2 -2
- package/dist/{conversation-wiki-populator-YU35LNRK.js → conversation-wiki-populator-L7O6F3BB.js} +1 -1
- package/dist/{crdt-sync-KXETGV45.js → crdt-sync-R6YROKDH.js} +1 -1
- package/dist/{crm-webhook-JMOAHTJ6.js → crm-webhook-WK3PYJJK.js} +2 -2
- package/dist/{cto-delegation-gate-IJ3KQIKF.js → cto-delegation-gate-5JZORQIT.js} +12 -12
- package/dist/{daemon-auth-2IZACWSG.js → daemon-auth-2HEOL6VG.js} +2 -2
- package/dist/{daemon-orchestration-ZCY4GEI3.js → daemon-orchestration-BJ3T5MMF.js} +16 -15
- package/dist/{db-backup-HLX5OLIV.js → db-backup-EWS52P2W.js} +2 -2
- package/dist/{dreaming-2CJML3TU.js → dreaming-BOSBDRI3.js} +13 -13
- package/dist/{entity-boost-T5IYWWDZ.js → entity-boost-6ZVX7DFB.js} +26 -2
- package/dist/{exe-drift-P5OIRNSH.js → exe-drift-WRE6RADZ.js} +4 -4
- package/dist/{exe-export-QQL2H322.js → exe-export-7N5PBCMK.js} +8 -8
- package/dist/{exe-import-V4RJCUEP.js → exe-import-YOOE7S3H.js} +8 -8
- package/dist/{exe-key-MENJGDD7.js → exe-key-GXJSTCX2.js} +4 -4
- package/dist/{exe-org-3FNET2J7.js → exe-org-42YMQL75.js} +2 -2
- package/dist/{exe-snapshot-YRARQE7F.js → exe-snapshot-ODUCFW7G.js} +18 -18
- package/dist/{fast-db-init-HIJWWKAO.js → fast-db-init-YSR7RMVZ.js} +1 -1
- package/dist/{founder-context-BQ5NBDUV.js → founder-context-Q2HUCZX4.js} +2 -2
- package/dist/gateway/index.js +9 -9
- package/dist/{gateway-client-YGSA5QMC.js → gateway-client-4QXHKN5C.js} +1 -1
- package/dist/{git-staleness-IHTKCUMN.js → git-staleness-BJDTCDPC.js} +3 -3
- package/dist/{git-task-sweep-5ZPNQS7Y.js → git-task-sweep-L3U3T5HM.js} +13 -13
- package/dist/{global-procedures-XHDIZRJU.js → global-procedures-HCHEHKY2.js} +4 -4
- package/dist/{graph-auto-extract-5TPT67GP.js → graph-auto-extract-FP5C76LS.js} +3 -3
- package/dist/{hook-integrity-SB53Y7UK.js → hook-integrity-2OU3T6UC.js} +1 -1
- package/dist/hooks/bug-report-worker.js +15 -14
- package/dist/hooks/codex-stop-task-finalizer.js +15 -14
- package/dist/hooks/commit-complete.js +16 -16
- package/dist/hooks/error-recall.js +10 -10
- package/dist/hooks/exe-heartbeat-hook.js +5 -5
- package/dist/hooks/ingest-worker.js +8 -8
- package/dist/hooks/ingest.js +13 -13
- package/dist/hooks/instructions-loaded.js +7 -7
- package/dist/hooks/manifest.json +20 -20
- package/dist/hooks/notification.js +6 -6
- package/dist/hooks/post-compact.js +15 -15
- package/dist/hooks/post-tool-combined.js +7 -7
- package/dist/hooks/pre-compact.js +20 -20
- package/dist/hooks/pre-tool-use.js +28 -25
- package/dist/hooks/prompt-submit.js +62 -31
- package/dist/hooks/session-end.js +26 -26
- package/dist/hooks/session-start.js +39 -15
- package/dist/hooks/stop.js +22 -22
- package/dist/hooks/subagent-stop.js +15 -15
- package/dist/hooks/summary-worker.js +32 -27
- package/dist/index.js +21 -21
- package/dist/{installer-AMZM4MLS.js → installer-AWMUCRN4.js} +7 -7
- package/dist/{installer-KT5FW4CN.js → installer-HB3NH6FG.js} +9 -9
- package/dist/{installer-HW74W3IT.js → installer-RU6EVOBL.js} +6 -6
- package/dist/{intercom-queue-RNM6EPGA.js → intercom-queue-A6UJEFIF.js} +1 -1
- package/dist/{key-backup-status-OZ2CXUDW.js → key-backup-status-4YKCV4ZV.js} +1 -1
- package/dist/lib/agent-config.js +2 -2
- package/dist/lib/cloud-sync.js +10 -8
- package/dist/lib/config.js +1 -1
- package/dist/lib/consolidation.js +8 -8
- package/dist/lib/database.js +3 -3
- package/dist/lib/db-daemon-client.js +3 -3
- package/dist/lib/db.js +3 -3
- package/dist/lib/device-registry.js +1 -1
- package/dist/lib/embedder.js +4 -4
- package/dist/lib/employee-templates.js +5 -5
- package/dist/lib/employees.js +3 -3
- package/dist/lib/exe-daemon-client.js +3 -3
- package/dist/lib/exe-daemon.js +105 -74
- package/dist/lib/hybrid-search.js +8 -8
- package/dist/lib/identity.js +3 -3
- package/dist/lib/keychain.js +1 -1
- package/dist/lib/license.js +2 -2
- package/dist/lib/messaging.js +13 -13
- package/dist/lib/post-tool-memory.js +3 -3
- package/dist/lib/reminders.js +4 -4
- package/dist/lib/schedules.js +8 -8
- package/dist/lib/session-registry.js +5 -5
- package/dist/lib/skill-learning.js +5 -5
- package/dist/lib/store.js +7 -7
- package/dist/lib/task-router.js +4 -4
- package/dist/lib/tasks.js +14 -13
- package/dist/lib/tmux-routing.js +12 -12
- package/dist/lib/token-spend.js +4 -4
- package/dist/lib/ws-client.js +1 -1
- package/dist/{license-gate-XJDIL6OZ.js → license-gate-6JQQFBHS.js} +3 -3
- package/dist/mcp/register-tools.js +68 -67
- package/dist/mcp/server.js +70 -69
- package/dist/mcp/tools/complete-reminder.js +5 -5
- package/dist/mcp/tools/create-reminder.js +5 -5
- package/dist/mcp/tools/create-task.js +16 -15
- package/dist/mcp/tools/deactivate-behavior.js +6 -6
- package/dist/mcp/tools/list-reminders.js +5 -5
- package/dist/mcp/tools/list-tasks.js +16 -15
- package/dist/mcp/tools/send-message.js +15 -15
- package/dist/mcp/tools/update-task.js +15 -14
- package/dist/{mcp-http-config-BXX3RZPR.js → mcp-http-config-XIJR5P2Z.js} +4 -4
- package/dist/{memory-cards-KRTP5GFM.js → memory-cards-H4BJJ5OK.js} +3 -3
- package/dist/{memory-graph-extractor-G532PUHC.js → memory-graph-extractor-SDGM3GVR.js} +4 -4
- package/dist/{memory-poisoning-defense-HJM3FQA3.js → memory-poisoning-defense-UVU67DGJ.js} +3 -3
- package/dist/{memory-queue-FTNBWLS4.js → memory-queue-FNT5WHXP.js} +2 -2
- package/dist/{memory-queue-client-DHSHEIHQ.js → memory-queue-client-JZCFYTWQ.js} +5 -5
- package/dist/{memory-reflection-RANRFUQL.js → memory-reflection-GGB5K35L.js} +3 -3
- package/dist/{notifications-4P2PVEOT.js → notifications-P3XQZDTH.js} +12 -12
- package/dist/{orchestration-events-IYTASMSN.js → orchestration-events-25WEKUKH.js} +4 -4
- package/dist/{orchestration-phase-SGA7PJ5G.js → orchestration-phase-C26XVKLZ.js} +2 -2
- package/dist/{orchestrator-VKVHZ4MV.js → orchestrator-VIXTY4E4.js} +14 -14
- package/dist/{pipeline-router-E4L5BDXN.js → pipeline-router-S5PE5U6B.js} +4 -4
- package/dist/{plan-limits-5O5QG55H.js → plan-limits-DGIVM42H.js} +5 -5
- package/dist/{prediction-log-OMWHW7FL.js → prediction-log-DOEOHDHS.js} +1 -1
- package/dist/{project-boot-WMI6CWRX.js → project-boot-4ZL2W7DN.js} +12 -2
- package/dist/{projection-worker-54KRNQSO.js → projection-worker-GG2W5OM3.js} +3 -3
- package/dist/{push-notifications-E2XXEWJZ.js → push-notifications-AMHVR6DF.js} +2 -2
- package/dist/{reranker-4NTUFNYT.js → reranker-UCPLQZE2.js} +2 -2
- package/dist/{review-polling-BFRJDLUA.js → review-polling-P2MWEXLR.js} +13 -13
- package/dist/runtime/index.js +15 -15
- package/dist/{session-events-KCZCWGE4.js → session-events-5CD66R6U.js} +13 -13
- package/dist/{session-kill-telemetry-TMNIDYWY.js → session-kill-telemetry-7FBHTEDN.js} +4 -4
- package/dist/{session-scope-DRZBQ32Y.js → session-scope-VMIPAZU7.js} +12 -12
- package/dist/{setup-wizard-TQKGDAHO.js → setup-wizard-BNR47URR.js} +3 -3
- package/dist/{shard-manager-G6MHCO7X.js → shard-manager-VGA2TYHM.js} +2 -2
- package/dist/{skill-refinement-Z5SWD3AM.js → skill-refinement-NRG4WWRW.js} +3 -3
- package/dist/stack-release-PFZI22WC.js +521 -0
- package/dist/{stack-update-NO5MNARG.js → stack-update-JIWJGGLX.js} +3 -3
- package/dist/{steward-gate-7DWYS5AT.js → steward-gate-L7DJMF4C.js} +4 -4
- package/dist/{task-enforcement-2VL5J6JJ.js → task-enforcement-XQL77PZH.js} +52 -12
- package/dist/{task-scope-YHALISIB.js → task-scope-R3XKBIHL.js} +12 -12
- package/dist/{tasks-crud-JXZEBZFR.js → tasks-crud-DQOG2NPG.js} +12 -12
- package/dist/tasks-notify-4EQYG52H.js +37 -0
- package/dist/{tasks-review-PGPYJQF5.js → tasks-review-XPFJ4DSJ.js} +12 -12
- package/dist/{telemetry-upload-H7OJNBIF.js → telemetry-upload-OT5B5HUY.js} +7 -7
- package/dist/{token-budget-JJ7JQIA2.js → token-budget-D2LQKCAV.js} +3 -3
- package/dist/{tool-capability-index-WIV4K3FB.js → tool-capability-index-FAJ5ZHDF.js} +1 -1
- package/dist/{tool-telemetry-W4LFCHFT.js → tool-telemetry-QIF5BCLF.js} +1 -1
- package/dist/tui/App.js +26 -26
- package/dist/{tui-data-72U6N2DC.js → tui-data-UEV2QOR3.js} +108 -12
- package/dist/{whatsapp-config-W63RQ3AU.js → whatsapp-config-GOSELKTE.js} +7 -0
- package/dist/{worker-gate-SCSN6IHI.js → worker-gate-PRCKA23W.js} +2 -2
- package/dist/{workflow-engine-OICYBE4F.js → workflow-engine-7X6LLH3M.js} +2 -2
- package/dist/{worktree-JXN4RCWC.js → worktree-RICSCT2S.js} +5 -5
- package/package.json +1 -1
- package/release-notes.json +137 -297
- package/stack.release.json +4 -3
- package/dist/preflight-EAH2MI76.js +0 -287
- /package/dist/{chunk-H42LEGLB.js → chunk-AQBEG33D.js} +0 -0
- /package/dist/{chunk-AU5426YP.js → chunk-B7JGEDVE.js} +0 -0
- /package/dist/{chunk-YFDDTHNM.js → chunk-JXI4XUTV.js} +0 -0
- /package/dist/{chunk-SNYDRHV3.js → chunk-U3DUFHOT.js} +0 -0
- /package/dist/{chunk-N2XUH2HQ.js → chunk-VBPC7IC7.js} +0 -0
- /package/dist/{chunk-HTUJBTBM.js → chunk-VUS6WXQ3.js} +0 -0
- /package/dist/{chunk-NOLIN2YI.js → chunk-XAYRZHLV.js} +0 -0
- /package/dist/{core-memory-VOBGGB2Q.js → core-memory-4KAIKQRQ.js} +0 -0
- /package/dist/{message-queue-client-KAJN6TIJ.js → message-queue-client-S6W5VMJV.js} +0 -0
- /package/dist/{oauth-server-QEXRSXEP.js → oauth-server-2ESBZB7F.js} +0 -0
- /package/dist/{webhook-pipe-LY4XEDL7.js → webhook-pipe-ZRUVOG5H.js} +0 -0
- /package/dist/{wiki-acl-M3OR547L.js → wiki-acl-MFLSS6DE.js} +0 -0
- /package/dist/{wiki-client-MAFYBXCQ.js → wiki-client-GBPR45BQ.js} +0 -0
package/dist/lib/exe-daemon.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
pushNotifyAsync
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-L4WRH3DL.js";
|
|
4
4
|
import {
|
|
5
5
|
deserializeArgs,
|
|
6
6
|
serializeResultSet
|
|
@@ -9,16 +9,16 @@ import {
|
|
|
9
9
|
getMcpToolFamily,
|
|
10
10
|
inferMcpRuntime,
|
|
11
11
|
recordMcpHttpEvent
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-KN7LPTIB.js";
|
|
13
13
|
import {
|
|
14
14
|
ensureDaemonToken
|
|
15
|
-
} from "../chunk-
|
|
15
|
+
} from "../chunk-7IZWLMTP.js";
|
|
16
16
|
import {
|
|
17
17
|
findScopedDuplicate,
|
|
18
18
|
governMemoryRecord,
|
|
19
19
|
schedulePostWriteMemoryHygiene
|
|
20
|
-
} from "../chunk-
|
|
21
|
-
import "../chunk-
|
|
20
|
+
} from "../chunk-IZVKWBIP.js";
|
|
21
|
+
import "../chunk-Y25OJWOQ.js";
|
|
22
22
|
import {
|
|
23
23
|
logRestartEvent
|
|
24
24
|
} from "../chunk-PWMMIGVQ.js";
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
import {
|
|
29
29
|
EXE_AI_DIR,
|
|
30
30
|
MODELS_DIR
|
|
31
|
-
} from "../chunk-
|
|
31
|
+
} from "../chunk-VXIMSRTO.js";
|
|
32
32
|
import "../chunk-LYH5HE24.js";
|
|
33
33
|
import "../chunk-MLKGABMK.js";
|
|
34
34
|
|
|
@@ -606,6 +606,7 @@ async function runOrchestrationTick() {
|
|
|
606
606
|
}
|
|
607
607
|
} finally {
|
|
608
608
|
_orchestrationBusy = false;
|
|
609
|
+
if (typeof globalThis.gc === "function") globalThis.gc();
|
|
609
610
|
}
|
|
610
611
|
}
|
|
611
612
|
var execFileAsync = promisify(execFileNode);
|
|
@@ -1117,7 +1118,7 @@ async function shutdown() {
|
|
|
1117
1118
|
}
|
|
1118
1119
|
}
|
|
1119
1120
|
try {
|
|
1120
|
-
const { createBackupAsync } = await import("../db-backup-
|
|
1121
|
+
const { createBackupAsync } = await import("../db-backup-EWS52P2W.js");
|
|
1121
1122
|
const backupPath = await createBackupAsync("pre-restart");
|
|
1122
1123
|
if (backupPath) {
|
|
1123
1124
|
process.stderr.write(`[exed] Pre-restart backup: ${backupPath}
|
|
@@ -1140,12 +1141,12 @@ async function shutdown() {
|
|
|
1140
1141
|
`);
|
|
1141
1142
|
}
|
|
1142
1143
|
try {
|
|
1143
|
-
const { stopProjectionWorker } = await import("../projection-worker-
|
|
1144
|
+
const { stopProjectionWorker } = await import("../projection-worker-GG2W5OM3.js");
|
|
1144
1145
|
stopProjectionWorker();
|
|
1145
1146
|
} catch {
|
|
1146
1147
|
}
|
|
1147
1148
|
try {
|
|
1148
|
-
const { disposeShards } = await import("../shard-manager-
|
|
1149
|
+
const { disposeShards } = await import("../shard-manager-VGA2TYHM.js");
|
|
1149
1150
|
disposeShards();
|
|
1150
1151
|
} catch {
|
|
1151
1152
|
}
|
|
@@ -1210,7 +1211,7 @@ async function handleHealthCheck(socket, requestId) {
|
|
|
1210
1211
|
let pipelineStatus = "unknown";
|
|
1211
1212
|
if (dbConnected) {
|
|
1212
1213
|
try {
|
|
1213
|
-
await import("../pipeline-router-
|
|
1214
|
+
await import("../pipeline-router-S5PE5U6B.js");
|
|
1214
1215
|
pipelineStatus = "ok";
|
|
1215
1216
|
} catch {
|
|
1216
1217
|
pipelineStatus = "unavailable";
|
|
@@ -1517,7 +1518,7 @@ async function _writeMemoryRecordInner(entry) {
|
|
|
1517
1518
|
const vRow = await client.execute({ sql: "SELECT version FROM memories WHERE id = ?", args: [id] });
|
|
1518
1519
|
const version = Number(vRow.rows[0]?.version) || 0;
|
|
1519
1520
|
try {
|
|
1520
|
-
const { insertOntologyForMemory } = await import("../agentic-ontology-
|
|
1521
|
+
const { insertOntologyForMemory } = await import("../agentic-ontology-DXE5J6I5.js");
|
|
1521
1522
|
await insertOntologyForMemory({
|
|
1522
1523
|
id,
|
|
1523
1524
|
agent_id: record.agent_id,
|
|
@@ -1545,7 +1546,7 @@ function startMemoryQueueDrain() {
|
|
|
1545
1546
|
fired("memory_queue_drain");
|
|
1546
1547
|
if (!await ensureStoreForPolling()) return;
|
|
1547
1548
|
try {
|
|
1548
|
-
const { ackQueue, claimQueue, retryQueueEntries } = await import("../memory-queue-
|
|
1549
|
+
const { ackQueue, claimQueue, retryQueueEntries } = await import("../memory-queue-FNT5WHXP.js");
|
|
1549
1550
|
const lease = claimQueue();
|
|
1550
1551
|
if (!lease || lease.entries.length === 0) return;
|
|
1551
1552
|
acted("memory_queue_drain");
|
|
@@ -1591,7 +1592,7 @@ function startMessageQueueDrain() {
|
|
|
1591
1592
|
fired("message_queue_drain");
|
|
1592
1593
|
if (!await ensureStoreForPolling()) return;
|
|
1593
1594
|
try {
|
|
1594
|
-
const { claimMessageQueue, ackMessageQueue } = await import("../message-queue-client-
|
|
1595
|
+
const { claimMessageQueue, ackMessageQueue } = await import("../message-queue-client-S6W5VMJV.js");
|
|
1595
1596
|
const lease = claimMessageQueue();
|
|
1596
1597
|
if (!lease || lease.entries.length === 0) return;
|
|
1597
1598
|
acted("message_queue_drain");
|
|
@@ -1835,7 +1836,6 @@ async function startMcpHttpServer() {
|
|
|
1835
1836
|
return parsed > 0 ? parsed : fallback;
|
|
1836
1837
|
}, closeMcpSession2 = function(sid, reason) {
|
|
1837
1838
|
const transport = transports.get(sid);
|
|
1838
|
-
if (!transport) return;
|
|
1839
1839
|
transports.delete(sid);
|
|
1840
1840
|
sessionLastSeen.delete(sid);
|
|
1841
1841
|
sessionOwnerKeys.delete(sid);
|
|
@@ -1845,11 +1845,13 @@ async function startMcpHttpServer() {
|
|
|
1845
1845
|
sessionDetails.delete(sid);
|
|
1846
1846
|
const sessionMcp = sessionServers.get(sid);
|
|
1847
1847
|
sessionServers.delete(sid);
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1848
|
+
if (transport) {
|
|
1849
|
+
try {
|
|
1850
|
+
void transport.close();
|
|
1851
|
+
} catch (e) {
|
|
1852
|
+
process.stderr.write(`[exed] MCP transport close failed for ${sid}: ${e instanceof Error ? e.message : String(e)}
|
|
1852
1853
|
`);
|
|
1854
|
+
}
|
|
1853
1855
|
}
|
|
1854
1856
|
try {
|
|
1855
1857
|
const maybeClosable = sessionMcp;
|
|
@@ -1890,16 +1892,9 @@ async function startMcpHttpServer() {
|
|
|
1890
1892
|
const ZOMBIE_THRESHOLD_MS = 30 * 60 * 1e3;
|
|
1891
1893
|
for (const [sid, lastSeen] of sessionLastSeen) {
|
|
1892
1894
|
if (now - lastSeen > ZOMBIE_THRESHOLD_MS) {
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
try {
|
|
1896
|
-
void transport.close();
|
|
1897
|
-
} catch {
|
|
1898
|
-
}
|
|
1899
|
-
transports.delete(sid);
|
|
1900
|
-
process.stderr.write(`[exed] MCP session ${sid.slice(0, 8)}\u2026 zombie transport freed (inactive ${Math.round((now - lastSeen) / 6e4)}m)
|
|
1895
|
+
closeMcpSession2(sid, "zombie_full_cleanup");
|
|
1896
|
+
process.stderr.write(`[exed] MCP session ${sid.slice(0, 8)}\u2026 fully released (inactive ${Math.round((now - lastSeen) / 6e4)}m)
|
|
1901
1897
|
`);
|
|
1902
|
-
}
|
|
1903
1898
|
}
|
|
1904
1899
|
}
|
|
1905
1900
|
const mem = process.memoryUsage();
|
|
@@ -1950,7 +1945,7 @@ async function startMcpHttpServer() {
|
|
|
1950
1945
|
}
|
|
1951
1946
|
process.stderr.write("[exed] MCP HTTP: DB ready\n");
|
|
1952
1947
|
_storeInitialized = true;
|
|
1953
|
-
const { initLicenseGate, getCachedLicenseGate } = await import("../license-gate-
|
|
1948
|
+
const { initLicenseGate, getCachedLicenseGate } = await import("../license-gate-6JQQFBHS.js");
|
|
1954
1949
|
const gateResult = await initLicenseGate();
|
|
1955
1950
|
if (!gateResult.hasKey) {
|
|
1956
1951
|
process.stderr.write(
|
|
@@ -1965,13 +1960,13 @@ async function startMcpHttpServer() {
|
|
|
1965
1960
|
let _cachedWrapTelemetry = null;
|
|
1966
1961
|
async function getWrapTelemetry() {
|
|
1967
1962
|
if (!_cachedWrapTelemetry) {
|
|
1968
|
-
const { wrapServerWithTelemetry } = await import("../tool-telemetry-
|
|
1963
|
+
const { wrapServerWithTelemetry } = await import("../tool-telemetry-QIF5BCLF.js");
|
|
1969
1964
|
_cachedWrapTelemetry = wrapServerWithTelemetry;
|
|
1970
1965
|
}
|
|
1971
1966
|
return _cachedWrapTelemetry;
|
|
1972
1967
|
}
|
|
1973
1968
|
Promise.all([
|
|
1974
|
-
import("../tool-capability-index-
|
|
1969
|
+
import("../tool-capability-index-FAJ5ZHDF.js"),
|
|
1975
1970
|
import("../tool-gates-3IC7DK4R.js")
|
|
1976
1971
|
]).then(async ([{ getToolCapabilityIndex }, { TOOL_CATEGORIES }]) => {
|
|
1977
1972
|
const gateState = getCachedLicenseGate();
|
|
@@ -2066,7 +2061,7 @@ async function startMcpHttpServer() {
|
|
|
2066
2061
|
}
|
|
2067
2062
|
const url = new URL(req.url || "/", `http://127.0.0.1:${MCP_HTTP_PORT}`);
|
|
2068
2063
|
try {
|
|
2069
|
-
const { handleOAuthRoute } = await import("../oauth-server-
|
|
2064
|
+
const { handleOAuthRoute } = await import("../oauth-server-2ESBZB7F.js");
|
|
2070
2065
|
const handled = await handleOAuthRoute(req, res, url, MCP_HTTP_PORT);
|
|
2071
2066
|
if (handled) return;
|
|
2072
2067
|
} catch (err) {
|
|
@@ -2084,7 +2079,7 @@ async function startMcpHttpServer() {
|
|
|
2084
2079
|
for await (const chunk of req) chunks.push(typeof chunk === "string" ? Buffer.from(chunk) : chunk);
|
|
2085
2080
|
const rawBody = Buffer.concat(chunks);
|
|
2086
2081
|
try {
|
|
2087
|
-
const { loadWebhookConfig, verifyHmac, processWebhook } = await import("../webhook-pipe-
|
|
2082
|
+
const { loadWebhookConfig, verifyHmac, processWebhook } = await import("../webhook-pipe-ZRUVOG5H.js");
|
|
2088
2083
|
const webhookConfig = await loadWebhookConfig();
|
|
2089
2084
|
const serviceConfig = webhookConfig[serviceName];
|
|
2090
2085
|
if (!serviceConfig) {
|
|
@@ -2159,7 +2154,7 @@ async function startMcpHttpServer() {
|
|
|
2159
2154
|
contextPct: body.context_pct
|
|
2160
2155
|
});
|
|
2161
2156
|
if (body.context_pct !== void 0 && body.context_pct > 70) {
|
|
2162
|
-
void import("../orchestration-events-
|
|
2157
|
+
void import("../orchestration-events-25WEKUKH.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
|
|
2163
2158
|
recordOE({
|
|
2164
2159
|
eventType: "context.pressure",
|
|
2165
2160
|
source: "exe-daemon.heartbeat",
|
|
@@ -2212,7 +2207,7 @@ async function startMcpHttpServer() {
|
|
|
2212
2207
|
let authed = token === _daemonToken;
|
|
2213
2208
|
if (!authed) {
|
|
2214
2209
|
try {
|
|
2215
|
-
const { verifyAccessToken } = await import("../oauth-server-
|
|
2210
|
+
const { verifyAccessToken } = await import("../oauth-server-2ESBZB7F.js");
|
|
2216
2211
|
const result = verifyAccessToken(token);
|
|
2217
2212
|
authed = result.valid;
|
|
2218
2213
|
} catch {
|
|
@@ -2680,13 +2675,13 @@ async function ensureStoreForPolling() {
|
|
|
2680
2675
|
}
|
|
2681
2676
|
}
|
|
2682
2677
|
async function startReviewPolling() {
|
|
2683
|
-
const polling = await import("../review-polling-
|
|
2678
|
+
const polling = await import("../review-polling-P2MWEXLR.js");
|
|
2684
2679
|
const state = {
|
|
2685
2680
|
lastIntercomSent: /* @__PURE__ */ new Map(),
|
|
2686
2681
|
lastNudgeSent: /* @__PURE__ */ new Map(),
|
|
2687
2682
|
intervalMs: REVIEW_POLL_INTERVAL_MS
|
|
2688
2683
|
};
|
|
2689
|
-
const { pollReviewNudge, createReviewNudgeRealDeps, loadNudgeState } = await import("../daemon-orchestration-
|
|
2684
|
+
const { pollReviewNudge, createReviewNudgeRealDeps, loadNudgeState } = await import("../daemon-orchestration-BJ3T5MMF.js");
|
|
2690
2685
|
const nudgeState = loadNudgeState();
|
|
2691
2686
|
const tick = async () => traceDaemonTimer("review_polling", async () => {
|
|
2692
2687
|
fired("review_polling");
|
|
@@ -2729,7 +2724,7 @@ function startSessionTTL() {
|
|
|
2729
2724
|
if (!await ensureStoreForPolling()) return;
|
|
2730
2725
|
try {
|
|
2731
2726
|
const { getClient } = await import("./database.js");
|
|
2732
|
-
const { checkSessionTTL, createSessionTTLRealDeps } = await import("../daemon-orchestration-
|
|
2727
|
+
const { checkSessionTTL, createSessionTTLRealDeps } = await import("../daemon-orchestration-BJ3T5MMF.js");
|
|
2733
2728
|
const deps = createSessionTTLRealDeps(getClient);
|
|
2734
2729
|
const killed = await checkSessionTTL(deps);
|
|
2735
2730
|
if (killed.length > 0) acted("session_ttl");
|
|
@@ -2777,7 +2772,7 @@ function startIdleKill() {
|
|
|
2777
2772
|
const cfg = await getCachedConfig();
|
|
2778
2773
|
if (!cfg) return;
|
|
2779
2774
|
const { getClient } = await import("./database.js");
|
|
2780
|
-
const { pollIdleKill, createIdleKillRealDeps } = await import("../daemon-orchestration-
|
|
2775
|
+
const { pollIdleKill, createIdleKillRealDeps } = await import("../daemon-orchestration-BJ3T5MMF.js");
|
|
2781
2776
|
const { sessions: liveSessions, paneCache, aliveSessions } = await getSharedOrchestrationCaches();
|
|
2782
2777
|
const realDeps = createIdleKillRealDeps(
|
|
2783
2778
|
getClient,
|
|
@@ -2846,7 +2841,7 @@ function startConsolidation() {
|
|
|
2846
2841
|
`);
|
|
2847
2842
|
}
|
|
2848
2843
|
try {
|
|
2849
|
-
const { createBackupAsync } = await import("../db-backup-
|
|
2844
|
+
const { createBackupAsync } = await import("../db-backup-EWS52P2W.js");
|
|
2850
2845
|
await createBackupAsync("pre-consolidation");
|
|
2851
2846
|
} catch (e) {
|
|
2852
2847
|
process.stderr.write("[exe-daemon] pre-consolidation backup: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
@@ -3029,7 +3024,7 @@ function startSkillRefinement() {
|
|
|
3029
3024
|
if (!shouldRunHeavyJob("skill_refinement")) return;
|
|
3030
3025
|
try {
|
|
3031
3026
|
if (!await ensureStoreForPolling()) return;
|
|
3032
|
-
const { runSkillRefinement } = await import("../skill-refinement-
|
|
3027
|
+
const { runSkillRefinement } = await import("../skill-refinement-NRG4WWRW.js");
|
|
3033
3028
|
const result = await runSkillRefinement();
|
|
3034
3029
|
if (result.reviewed > 0) {
|
|
3035
3030
|
acted("skill_refinement");
|
|
@@ -3374,6 +3369,7 @@ async function refreshAgentData() {
|
|
|
3374
3369
|
`);
|
|
3375
3370
|
} finally {
|
|
3376
3371
|
_agentRefreshInFlight = false;
|
|
3372
|
+
if (typeof globalThis.gc === "function") globalThis.gc();
|
|
3377
3373
|
}
|
|
3378
3374
|
}
|
|
3379
3375
|
function startAgentStats() {
|
|
@@ -3433,7 +3429,7 @@ function startReflectionSweep() {
|
|
|
3433
3429
|
);
|
|
3434
3430
|
let runReflection;
|
|
3435
3431
|
try {
|
|
3436
|
-
({ runReflection } = await import("../memory-reflection-
|
|
3432
|
+
({ runReflection } = await import("../memory-reflection-GGB5K35L.js"));
|
|
3437
3433
|
} catch (importErr) {
|
|
3438
3434
|
_reflectionImportFailed = true;
|
|
3439
3435
|
process.stderr.write(`[exed] Reflection module unavailable (stale chunk hash?) \u2014 disabled until daemon restart: ${importErr instanceof Error ? importErr.message : String(importErr)}
|
|
@@ -3472,7 +3468,7 @@ function startReflectionSweep() {
|
|
|
3472
3468
|
if (memories > 100 && cards < memories * 0.1) {
|
|
3473
3469
|
process.stderr.write(`[exed] Memory cards sparse (${cards} cards / ${memories} memories) \u2014 running backfill...
|
|
3474
3470
|
`);
|
|
3475
|
-
const { insertMemoryCardsForBatch } = await import("../memory-cards-
|
|
3471
|
+
const { insertMemoryCardsForBatch } = await import("../memory-cards-H4BJJ5OK.js");
|
|
3476
3472
|
const batchSize = 500;
|
|
3477
3473
|
let offset = 0;
|
|
3478
3474
|
let totalCards = 0;
|
|
@@ -3517,7 +3513,7 @@ function startDatabaseBackup() {
|
|
|
3517
3513
|
fired("db_backup");
|
|
3518
3514
|
if (!shouldRunHeavyJob("db_backup")) return;
|
|
3519
3515
|
try {
|
|
3520
|
-
const { createBackupAsync, rotateBackups, hasBackupToday } = await import("../db-backup-
|
|
3516
|
+
const { createBackupAsync, rotateBackups, hasBackupToday } = await import("../db-backup-EWS52P2W.js");
|
|
3521
3517
|
if (hasBackupToday("daily")) return;
|
|
3522
3518
|
const backupPath = await createBackupAsync("daily");
|
|
3523
3519
|
if (backupPath) {
|
|
@@ -3579,14 +3575,16 @@ function startIntercomQueueDrain() {
|
|
|
3579
3575
|
const tick = async () => traceDaemonTimer("intercom_queue_drain", async () => {
|
|
3580
3576
|
fired("intercom_queue_drain");
|
|
3581
3577
|
try {
|
|
3582
|
-
const { drainQueue } = await import("../intercom-queue-
|
|
3578
|
+
const { drainQueue } = await import("../intercom-queue-A6UJEFIF.js");
|
|
3583
3579
|
const { isSessionBusy } = await import("./tmux-routing.js");
|
|
3584
3580
|
const { sendIntercom: centralSendIntercom } = await import("./tmux-routing.js");
|
|
3585
3581
|
const result = drainQueue(
|
|
3586
3582
|
(session) => isSessionBusy(session),
|
|
3587
|
-
(session) => {
|
|
3583
|
+
(session, item) => {
|
|
3588
3584
|
try {
|
|
3589
|
-
const outcome = centralSendIntercom(session
|
|
3585
|
+
const outcome = centralSendIntercom(session, {
|
|
3586
|
+
reason: item.intercomReason ?? "nudge"
|
|
3587
|
+
});
|
|
3590
3588
|
return outcome !== "failed";
|
|
3591
3589
|
} catch (e) {
|
|
3592
3590
|
process.stderr.write("[exe-daemon] intercom send to " + session + ": " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
@@ -3615,7 +3613,7 @@ function startOrphanReaper() {
|
|
|
3615
3613
|
const tick = async () => traceDaemonTimer("orphan_reaper", async () => {
|
|
3616
3614
|
fired("orphan_reaper");
|
|
3617
3615
|
try {
|
|
3618
|
-
const { reapOrphanedMcpProcesses, createOrphanReaperRealDeps } = await import("../daemon-orchestration-
|
|
3616
|
+
const { reapOrphanedMcpProcesses, createOrphanReaperRealDeps } = await import("../daemon-orchestration-BJ3T5MMF.js");
|
|
3619
3617
|
const deps = createOrphanReaperRealDeps();
|
|
3620
3618
|
const reaped = await reapOrphanedMcpProcesses(deps);
|
|
3621
3619
|
if (reaped.length > 0) acted("orphan_reaper");
|
|
@@ -3624,11 +3622,14 @@ function startOrphanReaper() {
|
|
|
3624
3622
|
`);
|
|
3625
3623
|
}
|
|
3626
3624
|
} catch (err) {
|
|
3627
|
-
|
|
3625
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
3626
|
+
if (!msg.includes("ENOBUFS")) {
|
|
3627
|
+
process.stderr.write(`[exed] Orphan reaper error: ${msg}
|
|
3628
3628
|
`);
|
|
3629
|
+
}
|
|
3629
3630
|
}
|
|
3631
|
+
await yieldToEventLoop();
|
|
3630
3632
|
});
|
|
3631
|
-
void tick();
|
|
3632
3633
|
const timer = setInterval(() => void tick(), ORPHAN_REAP_INTERVAL_MS);
|
|
3633
3634
|
timer.unref();
|
|
3634
3635
|
process.stderr.write(`[exed] Orphan reaper started (every ${ORPHAN_REAP_INTERVAL_MS / 6e4}m)
|
|
@@ -3639,7 +3640,7 @@ function startZombieAgentReaper() {
|
|
|
3639
3640
|
const tick = async () => traceDaemonTimer("zombie_agent_reaper", async () => {
|
|
3640
3641
|
fired("zombie_agent_reaper");
|
|
3641
3642
|
try {
|
|
3642
|
-
const { reapZombieAgentProcesses, createZombieAgentReaperRealDeps } = await import("../daemon-orchestration-
|
|
3643
|
+
const { reapZombieAgentProcesses, createZombieAgentReaperRealDeps } = await import("../daemon-orchestration-BJ3T5MMF.js");
|
|
3643
3644
|
const deps = createZombieAgentReaperRealDeps();
|
|
3644
3645
|
const reaped = reapZombieAgentProcesses(deps);
|
|
3645
3646
|
if (reaped.length > 0) acted("zombie_agent_reaper");
|
|
@@ -3648,11 +3649,14 @@ function startZombieAgentReaper() {
|
|
|
3648
3649
|
`);
|
|
3649
3650
|
}
|
|
3650
3651
|
} catch (err) {
|
|
3651
|
-
|
|
3652
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
3653
|
+
if (!msg.includes("ENOBUFS")) {
|
|
3654
|
+
process.stderr.write(`[exed] Zombie agent reaper error: ${msg}
|
|
3652
3655
|
`);
|
|
3656
|
+
}
|
|
3653
3657
|
}
|
|
3658
|
+
await yieldToEventLoop();
|
|
3654
3659
|
});
|
|
3655
|
-
void tick();
|
|
3656
3660
|
const timer = setInterval(() => void tick(), ZOMBIE_AGENT_REAP_INTERVAL_MS);
|
|
3657
3661
|
timer.unref();
|
|
3658
3662
|
process.stderr.write(`[exed] Zombie agent reaper started (every ${ZOMBIE_AGENT_REAP_INTERVAL_MS / 6e4}m)
|
|
@@ -3662,7 +3666,7 @@ function startWorktreeReaper() {
|
|
|
3662
3666
|
const tick = async () => traceDaemonTimer("worktree_reaper", async () => {
|
|
3663
3667
|
fired("worktree_reaper");
|
|
3664
3668
|
try {
|
|
3665
|
-
const { reapOrphanedWorktrees, createWorktreeReaperRealDeps } = await import("../daemon-orchestration-
|
|
3669
|
+
const { reapOrphanedWorktrees, createWorktreeReaperRealDeps } = await import("../daemon-orchestration-BJ3T5MMF.js");
|
|
3666
3670
|
const deps = await createWorktreeReaperRealDeps();
|
|
3667
3671
|
const result = await reapOrphanedWorktrees(deps);
|
|
3668
3672
|
if (result.pruned.length > 0) {
|
|
@@ -3717,7 +3721,7 @@ function startStuckTaskRelease() {
|
|
|
3717
3721
|
if (!await ensureStoreForPolling()) return;
|
|
3718
3722
|
try {
|
|
3719
3723
|
const { getClient } = await import("./database.js");
|
|
3720
|
-
const { releaseStuckTasks, createStuckTaskRealDeps } = await import("../daemon-orchestration-
|
|
3724
|
+
const { releaseStuckTasks, createStuckTaskRealDeps } = await import("../daemon-orchestration-BJ3T5MMF.js");
|
|
3721
3725
|
const deps = createStuckTaskRealDeps(getClient);
|
|
3722
3726
|
const released = await releaseStuckTasks(deps);
|
|
3723
3727
|
if (released.length > 0) {
|
|
@@ -3735,9 +3739,8 @@ function startStuckTaskRelease() {
|
|
|
3735
3739
|
process.stderr.write(`[exed] Stuck-task release started (every ${STUCK_TASK_CHECK_INTERVAL_MS / 1e3}s)
|
|
3736
3740
|
`);
|
|
3737
3741
|
}
|
|
3738
|
-
var
|
|
3739
|
-
var
|
|
3740
|
-
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);
|
|
3742
|
+
var RSS_WARN_BYTES = Number(process.env.EXE_RSS_WARN_MB) * 1024 * 1024 || 1.5 * 1024 ** 3;
|
|
3743
|
+
var RSS_RESTART_BYTES = Number(process.env.EXE_RSS_RESTART_MB) * 1024 * 1024 || 2.5 * 1024 ** 3;
|
|
3741
3744
|
var RSS_CHECK_INTERVAL_MS = 10 * 1e3;
|
|
3742
3745
|
var HEAP_WARN_FRACTION = 0.7;
|
|
3743
3746
|
var HEAP_RESTART_FRACTION = 0.9;
|
|
@@ -3768,10 +3771,11 @@ function startExternalRssWatchdog() {
|
|
|
3768
3771
|
const restartBytes = Number(workerData.restartBytes);
|
|
3769
3772
|
const checkMs = Number(workerData.checkMs);
|
|
3770
3773
|
const markerPath = String(workerData.markerPath);
|
|
3774
|
+
const safeCwd = String(workerData.cwd || "/");
|
|
3771
3775
|
let terminating = false;
|
|
3772
3776
|
|
|
3773
3777
|
function readRssBytes(cb) {
|
|
3774
|
-
execFile("ps", ["-o", "rss=", "-p", String(pid)], { encoding: "utf8", timeout: 5000 }, (err, stdout) => {
|
|
3778
|
+
execFile("ps", ["-o", "rss=", "-p", String(pid)], { cwd: safeCwd, encoding: "utf8", timeout: 5000 }, (err, stdout) => {
|
|
3775
3779
|
if (err) return cb(null);
|
|
3776
3780
|
const rssKb = Number(String(stdout || "").trim());
|
|
3777
3781
|
cb(Number.isFinite(rssKb) && rssKb > 0 ? rssKb * 1024 : null);
|
|
@@ -3797,7 +3801,8 @@ function startExternalRssWatchdog() {
|
|
|
3797
3801
|
pid: process.pid,
|
|
3798
3802
|
restartBytes: RSS_RESTART_BYTES,
|
|
3799
3803
|
checkMs: RSS_CHECK_INTERVAL_MS,
|
|
3800
|
-
markerPath: OOM_MARKER_PATH
|
|
3804
|
+
markerPath: OOM_MARKER_PATH,
|
|
3805
|
+
cwd: os2.homedir()
|
|
3801
3806
|
}
|
|
3802
3807
|
});
|
|
3803
3808
|
worker.unref();
|
|
@@ -3820,12 +3825,12 @@ function startTaskEnforcementScanner() {
|
|
|
3820
3825
|
const tick = async () => traceDaemonTimer("task_enforcement", async () => {
|
|
3821
3826
|
fired("task_enforcement");
|
|
3822
3827
|
try {
|
|
3823
|
-
const { runTaskEnforcementTick } = await import("../task-enforcement-
|
|
3828
|
+
const { runTaskEnforcementTick } = await import("../task-enforcement-XQL77PZH.js");
|
|
3824
3829
|
const { getTransport } = await import("./transport.js");
|
|
3825
3830
|
const { loadAgentConfig } = await import("./agent-config.js");
|
|
3826
3831
|
const { getClient } = await import("./database.js");
|
|
3827
3832
|
const { loadEmployeesSync } = await import("./employees.js");
|
|
3828
|
-
const { sessionScopeFilter } = await import("../task-scope-
|
|
3833
|
+
const { sessionScopeFilter } = await import("../task-scope-R3XKBIHL.js");
|
|
3829
3834
|
const transport = getTransport();
|
|
3830
3835
|
const { sessions: allSessions, paneCache, aliveSessions } = await getSharedOrchestrationCaches();
|
|
3831
3836
|
await yieldToEventLoop();
|
|
@@ -3836,6 +3841,10 @@ function startTaskEnforcementScanner() {
|
|
|
3836
3841
|
sendKeysLiteral: transport.sendKeysLiteral?.bind(transport),
|
|
3837
3842
|
isAlive: (session) => aliveSessions.has(session)
|
|
3838
3843
|
};
|
|
3844
|
+
const { checkAutoWakeGates } = await import("../daemon-orchestration-BJ3T5MMF.js");
|
|
3845
|
+
const { ensureEmployee } = await import("./tmux-routing.js");
|
|
3846
|
+
const { shouldAutoInstance } = await import("./employees.js");
|
|
3847
|
+
const projectDir = process.cwd();
|
|
3839
3848
|
await runTaskEnforcementTick({
|
|
3840
3849
|
transport: enforcementTransport,
|
|
3841
3850
|
agentConfig: loadAgentConfig(),
|
|
@@ -3843,7 +3852,20 @@ function startTaskEnforcementScanner() {
|
|
|
3843
3852
|
client: await getClient(),
|
|
3844
3853
|
scopeFilter: sessionScopeFilter(),
|
|
3845
3854
|
capturePaneAsync,
|
|
3846
|
-
paneCache
|
|
3855
|
+
paneCache,
|
|
3856
|
+
// Reviewer auto-spawn: spawn dead reviewer sessions that have needs_review tasks.
|
|
3857
|
+
// Uses the same gates as auto-wake (CPU pressure, crash loop, worker_gate limits).
|
|
3858
|
+
reviewerSpawn: (reviewerName, sessionScope) => {
|
|
3859
|
+
const gateReason = checkAutoWakeGates(`reviewer::${reviewerName}::${sessionScope}`, Date.now());
|
|
3860
|
+
if (gateReason) {
|
|
3861
|
+
process.stderr.write(
|
|
3862
|
+
`[exed] Reviewer auto-spawn GATED: ${reviewerName} in ${sessionScope} \u2014 ${gateReason}
|
|
3863
|
+
`
|
|
3864
|
+
);
|
|
3865
|
+
return null;
|
|
3866
|
+
}
|
|
3867
|
+
return ensureEmployee(reviewerName, sessionScope, projectDir, shouldAutoInstance(reviewerName));
|
|
3868
|
+
}
|
|
3847
3869
|
});
|
|
3848
3870
|
acted("task_enforcement");
|
|
3849
3871
|
} catch (err) {
|
|
@@ -3901,10 +3923,19 @@ function startRssWatchdog() {
|
|
|
3901
3923
|
if (rss > RSS_WARN_BYTES && !_rssWarned) {
|
|
3902
3924
|
acted("rss_watchdog");
|
|
3903
3925
|
_rssWarned = true;
|
|
3904
|
-
|
|
3905
|
-
|
|
3926
|
+
if (typeof globalThis.gc === "function") {
|
|
3927
|
+
globalThis.gc();
|
|
3928
|
+
const afterGc = process.memoryUsage();
|
|
3929
|
+
process.stderr.write(
|
|
3930
|
+
`[exed] RSS WARNING: ${(rss / 1024 / 1024).toFixed(0)} MB \u2192 GC \u2192 ${(afterGc.rss / 1024 / 1024).toFixed(0)} MB (heap used: ${(afterGc.heapUsed / 1024 / 1024).toFixed(0)} MB, external: ${(afterGc.external / 1024 / 1024).toFixed(0)} MB, arrayBuffers: ${(afterGc.arrayBuffers / 1024 / 1024).toFixed(0)} MB)
|
|
3906
3931
|
`
|
|
3907
|
-
|
|
3932
|
+
);
|
|
3933
|
+
} else {
|
|
3934
|
+
process.stderr.write(
|
|
3935
|
+
`[exed] RSS WARNING: ${(rss / 1024 / 1024).toFixed(0)} MB (heap used: ${(mem.heapUsed / 1024 / 1024).toFixed(0)} MB, external: ${(mem.external / 1024 / 1024).toFixed(0)} MB, arrayBuffers: ${(mem.arrayBuffers / 1024 / 1024).toFixed(0)} MB)
|
|
3936
|
+
`
|
|
3937
|
+
);
|
|
3938
|
+
}
|
|
3908
3939
|
} else if (rss < RSS_WARN_BYTES && _rssWarned) {
|
|
3909
3940
|
_rssWarned = false;
|
|
3910
3941
|
}
|
|
@@ -4026,7 +4057,7 @@ function startBackgroundJobGuardrails() {
|
|
|
4026
4057
|
const tick = async () => traceDaemonTimer("background_job_guardrails", async () => {
|
|
4027
4058
|
fired("background_job_guardrails");
|
|
4028
4059
|
try {
|
|
4029
|
-
const { enforceBackgroundJobGuardrails } = await import("../background-jobs-
|
|
4060
|
+
const { enforceBackgroundJobGuardrails } = await import("../background-jobs-CRXY7T4Y.js");
|
|
4030
4061
|
const actions = enforceBackgroundJobGuardrails();
|
|
4031
4062
|
if (actions.length > 0) {
|
|
4032
4063
|
acted("background_job_guardrails");
|
|
@@ -4384,7 +4415,7 @@ try {
|
|
|
4384
4415
|
const msg = `[exed] EVENT LOOP BLOCKED ${(lag / 1e3).toFixed(1)}s \u2014 MCP UNRESPONSIVE. Sessions will die.`;
|
|
4385
4416
|
process.stderr.write(msg + "\n");
|
|
4386
4417
|
logDaemonHealth({ event: "event_loop_blocked", pid: process.pid, message: msg, data: { lagMs: lag } });
|
|
4387
|
-
void import("../orchestration-events-
|
|
4418
|
+
void import("../orchestration-events-25WEKUKH.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
|
|
4388
4419
|
recordOE({ eventType: "daemon.event_loop_blocked", source: "exe-daemon.lagDetector", severity: "error", durationMs: lag });
|
|
4389
4420
|
}).catch(() => {
|
|
4390
4421
|
});
|
|
@@ -4479,7 +4510,7 @@ try {
|
|
|
4479
4510
|
});
|
|
4480
4511
|
if (Number(res.rowsAffected ?? 0) > 0) {
|
|
4481
4512
|
synced++;
|
|
4482
|
-
void import("../orchestration-events-
|
|
4513
|
+
void import("../orchestration-events-25WEKUKH.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
|
|
4483
4514
|
recordOE({
|
|
4484
4515
|
eventType: "task_file.resynced",
|
|
4485
4516
|
source: "exe-daemon.taskFileResync",
|
|
@@ -4513,7 +4544,7 @@ try {
|
|
|
4513
4544
|
fired("task_group_barriers");
|
|
4514
4545
|
if (!await ensureStoreForPolling()) return;
|
|
4515
4546
|
try {
|
|
4516
|
-
const { pollTaskGroupBarriers } = await import("../daemon-orchestration-
|
|
4547
|
+
const { pollTaskGroupBarriers } = await import("../daemon-orchestration-BJ3T5MMF.js");
|
|
4517
4548
|
const firedCount = await pollTaskGroupBarriers();
|
|
4518
4549
|
if (firedCount > 0) {
|
|
4519
4550
|
acted("task_group_barriers");
|
|
@@ -4535,7 +4566,7 @@ try {
|
|
|
4535
4566
|
fired("checkpoint_gc");
|
|
4536
4567
|
if (!await ensureStoreForPolling()) return;
|
|
4537
4568
|
try {
|
|
4538
|
-
const { gcStaleCheckpoints } = await import("../daemon-orchestration-
|
|
4569
|
+
const { gcStaleCheckpoints } = await import("../daemon-orchestration-BJ3T5MMF.js");
|
|
4539
4570
|
const cleared = await gcStaleCheckpoints();
|
|
4540
4571
|
if (cleared > 0) {
|
|
4541
4572
|
acted("checkpoint_gc");
|
|
@@ -4633,7 +4664,7 @@ try {
|
|
|
4633
4664
|
fired("orphan_task_cleanup");
|
|
4634
4665
|
try {
|
|
4635
4666
|
if (!await ensureStoreForPolling()) return;
|
|
4636
|
-
const { cleanOrphanedTaskFiles, checkTaskFileConsistency } = await import("../tasks-crud-
|
|
4667
|
+
const { cleanOrphanedTaskFiles, checkTaskFileConsistency } = await import("../tasks-crud-DQOG2NPG.js");
|
|
4637
4668
|
const count = await cleanOrphanedTaskFiles();
|
|
4638
4669
|
if (count > 0) {
|
|
4639
4670
|
acted("orphan_task_cleanup");
|
|
@@ -4671,7 +4702,7 @@ try {
|
|
|
4671
4702
|
const TELEMETRY_DAILY_MS = 24 * 60 * 60 * 1e3;
|
|
4672
4703
|
const telemetryDaily = async () => {
|
|
4673
4704
|
try {
|
|
4674
|
-
const { sendTelemetry, isTelemetryEnabled } = await import("../telemetry-upload-
|
|
4705
|
+
const { sendTelemetry, isTelemetryEnabled } = await import("../telemetry-upload-OT5B5HUY.js");
|
|
4675
4706
|
if (!isTelemetryEnabled()) return;
|
|
4676
4707
|
const { upstream } = await sendTelemetry(24);
|
|
4677
4708
|
if (upstream.startsWith("sent")) {
|
|
@@ -4686,12 +4717,12 @@ try {
|
|
|
4686
4717
|
setTimeout(telemetryDaily, 2 * 60 * 1e3);
|
|
4687
4718
|
const dailyTimer = setInterval(telemetryDaily, TELEMETRY_DAILY_MS);
|
|
4688
4719
|
dailyTimer.unref();
|
|
4689
|
-
const { startToolTelemetryFlush } = await import("../tool-telemetry-
|
|
4720
|
+
const { startToolTelemetryFlush } = await import("../tool-telemetry-QIF5BCLF.js");
|
|
4690
4721
|
startToolTelemetryFlush();
|
|
4691
4722
|
process.stderr.write("[exed] Tool telemetry started (flush every 5m)\n");
|
|
4692
4723
|
setTimeout(async () => {
|
|
4693
4724
|
try {
|
|
4694
|
-
const { startProjectionWorker } = await import("../projection-worker-
|
|
4725
|
+
const { startProjectionWorker } = await import("../projection-worker-GG2W5OM3.js");
|
|
4695
4726
|
startProjectionWorker();
|
|
4696
4727
|
} catch {
|
|
4697
4728
|
}
|
|
@@ -5,17 +5,17 @@ import {
|
|
|
5
5
|
recentRecords,
|
|
6
6
|
rrfMerge,
|
|
7
7
|
rrfMergeMulti
|
|
8
|
-
} from "../chunk-
|
|
9
|
-
import "../chunk-
|
|
8
|
+
} from "../chunk-DLZYAYVM.js";
|
|
9
|
+
import "../chunk-222SI7QC.js";
|
|
10
10
|
import "../chunk-CHCA3ZM2.js";
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-IZVKWBIP.js";
|
|
12
|
+
import "../chunk-Y25OJWOQ.js";
|
|
13
13
|
import "../chunk-MP2AFCGL.js";
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
14
|
+
import "../chunk-CEJO7244.js";
|
|
15
|
+
import "../chunk-AWRL5FGM.js";
|
|
16
16
|
import "../chunk-FXU7JOXK.js";
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
17
|
+
import "../chunk-K333WOW4.js";
|
|
18
|
+
import "../chunk-VXIMSRTO.js";
|
|
19
19
|
import "../chunk-LYH5HE24.js";
|
|
20
20
|
import "../chunk-MLKGABMK.js";
|
|
21
21
|
export {
|
package/dist/lib/identity.js
CHANGED
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
identityPath,
|
|
5
5
|
listIdentities,
|
|
6
6
|
updateIdentity
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-CEJO7244.js";
|
|
8
|
+
import "../chunk-AWRL5FGM.js";
|
|
9
9
|
import "../chunk-FXU7JOXK.js";
|
|
10
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-VXIMSRTO.js";
|
|
11
11
|
import "../chunk-LYH5HE24.js";
|
|
12
12
|
import "../chunk-MLKGABMK.js";
|
|
13
13
|
export {
|
package/dist/lib/keychain.js
CHANGED
package/dist/lib/license.js
CHANGED
|
@@ -13,8 +13,8 @@ import {
|
|
|
13
13
|
startLicenseRevalidation,
|
|
14
14
|
stopLicenseRevalidation,
|
|
15
15
|
validateLicense
|
|
16
|
-
} from "../chunk-
|
|
17
|
-
import "../chunk-
|
|
16
|
+
} from "../chunk-MOZ2YQ54.js";
|
|
17
|
+
import "../chunk-VXIMSRTO.js";
|
|
18
18
|
import "../chunk-LYH5HE24.js";
|
|
19
19
|
import "../chunk-MLKGABMK.js";
|
|
20
20
|
export {
|