@askexenow/exe-os 0.9.159 → 0.9.161
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-XAA2YRRH.js → active-agent-SLC7NBGT.js} +2 -2
- package/dist/{active-agent-JCODH6ZT.js → active-agent-UKVJCFEF.js} +2 -2
- package/dist/{agentic-ontology-5EIAHTR4.js → agentic-ontology-F4B4DH7M.js} +1 -1
- package/dist/{backfill-metadata-2JEFIROE.js → backfill-metadata-SMFH4EJX.js} +3 -3
- package/dist/{behaviors-IFNDKKZG.js → behaviors-6CNOKKLR.js} +2 -2
- package/dist/bin/agentic-ontology-backfill.js +4 -4
- package/dist/bin/agentic-reflection-backfill.js +5 -5
- package/dist/bin/agentic-semantic-label.js +4 -4
- package/dist/bin/backfill-conversations.js +5 -5
- package/dist/bin/backfill-responses.js +5 -5
- package/dist/bin/backfill-vectors.js +6 -6
- package/dist/bin/bulk-sync-postgres.js +5 -5
- package/dist/bin/cleanup-stale-review-tasks.js +5 -5
- package/dist/bin/cli.js +13 -13
- package/dist/bin/customer-readiness.js +3 -3
- package/dist/bin/deferred-daemon-restart.js +102 -0
- package/dist/bin/exe-agent-config.js +1 -1
- package/dist/bin/exe-agent.js +7 -7
- package/dist/bin/exe-assign.js +7 -7
- package/dist/bin/exe-boot.js +12 -12
- package/dist/bin/exe-call.js +3 -3
- package/dist/bin/exe-cloud.js +3 -3
- package/dist/bin/exe-dispatch.js +5 -5
- package/dist/bin/exe-doctor.js +1 -1
- package/dist/bin/exe-export-behaviors.js +6 -6
- package/dist/bin/exe-forget.js +5 -5
- package/dist/bin/exe-gateway.js +5 -5
- package/dist/bin/exe-heartbeat.js +5 -5
- package/dist/bin/exe-kill.js +8 -8
- package/dist/bin/exe-launch-agent.js +24 -9
- package/dist/bin/exe-new-employee.js +5 -5
- package/dist/bin/exe-pending-messages.js +6 -6
- package/dist/bin/exe-pending-notifications.js +5 -5
- package/dist/bin/exe-pending-reviews.js +5 -5
- package/dist/bin/exe-rename.js +3 -3
- package/dist/bin/exe-review.js +7 -7
- package/dist/bin/exe-search.js +4 -4
- package/dist/bin/exe-session-cleanup.js +9 -9
- package/dist/bin/exe-settings.js +3 -3
- package/dist/bin/exe-start-codex.js +10 -10
- package/dist/bin/exe-start-opencode.js +7 -7
- package/dist/bin/exe-status.js +6 -6
- package/dist/bin/exe-team.js +2 -2
- package/dist/bin/git-sweep.js +5 -5
- package/dist/bin/graph-backfill.js +3 -3
- package/dist/bin/graph-export.js +4 -4
- package/dist/bin/install.js +70 -207
- package/dist/bin/intercom-check.js +4 -4
- package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
- package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
- package/dist/bin/scan-tasks.js +5 -5
- package/dist/bin/setup.js +1 -1
- package/dist/bin/shard-migrate.js +3 -3
- package/dist/{capacity-monitor-MSQGHO27.js → capacity-monitor-ORRMNHT5.js} +6 -6
- package/dist/{catchup-brief-TSMPWHXT.js → catchup-brief-MTPBB3KF.js} +7 -7
- package/dist/{chunk-VKCFXOWQ.js → chunk-2UO3QD7V.js} +1 -1
- package/dist/{chunk-KUEUXXO4.js → chunk-3U3UYYKE.js} +2 -2
- package/dist/{chunk-XFA26MHB.js → chunk-5G7BZIY3.js} +1 -1
- package/dist/{chunk-UHAED3MM.js → chunk-5OD3AFRW.js} +1 -1
- package/dist/{chunk-7WXL6XVN.js → chunk-5RWZNONS.js} +8 -8
- package/dist/{chunk-GP436PAK.js → chunk-72IIQLQ6.js} +1 -1
- package/dist/{chunk-HI5LPCAS.js → chunk-7OTFGJDW.js} +1 -1
- package/dist/{chunk-AGBFY64D.js → chunk-7RD4YGGJ.js} +1 -1
- package/dist/{chunk-BQMG77YQ.js → chunk-7SGJUQBZ.js} +1 -1
- package/dist/{chunk-SNTCGJAE.js → chunk-7X7HKWH7.js} +36 -15
- package/dist/{chunk-FVQ7BELN.js → chunk-A7HLWPKK.js} +2 -2
- package/dist/{chunk-37KXWPTL.js → chunk-A7SYUJ2W.js} +2 -2
- package/dist/{chunk-IKDK7NXN.js → chunk-BZYHF63H.js} +377 -30
- package/dist/{chunk-IJXYCSUR.js → chunk-CUQGNC3J.js} +2 -2
- package/dist/{chunk-GHB33FOB.js → chunk-D34YDPQA.js} +2 -2
- package/dist/{chunk-5HVWTVZI.js → chunk-DIRYKGUR.js} +3 -3
- package/dist/{chunk-CCOSYMVU.js → chunk-DQMGSEAJ.js} +1 -1
- package/dist/{chunk-PZWRXJBJ.js → chunk-E7HUZQ4W.js} +1 -1
- package/dist/{chunk-TLTQGQCX.js → chunk-FEP36D2I.js} +1 -1
- package/dist/{chunk-BOAP6EJD.js → chunk-FPBEJ2JV.js} +6 -6
- package/dist/{chunk-COUXA2IQ.js → chunk-FRH7EY2Z.js} +1 -1
- package/dist/{chunk-56N5BCXQ.js → chunk-G4FDG3LK.js} +3 -3
- package/dist/{chunk-ARTF7DMV.js → chunk-GFEXQ4NU.js} +2 -2
- package/dist/{chunk-CSTCUDVM.js → chunk-H3KFLVPW.js} +6 -6
- package/dist/{chunk-PQFTZDR4.js → chunk-HWVG6QXM.js} +1 -1
- package/dist/{chunk-SCZJGD2G.js → chunk-I3MRITK2.js} +1 -1
- package/dist/{chunk-H4FB7LB4.js → chunk-I67W2JMW.js} +1 -1
- package/dist/{chunk-NABY2RI6.js → chunk-IH6TK5HJ.js} +2 -2
- package/dist/{chunk-D5PHT3JX.js → chunk-J2Y7UEXH.js} +3 -3
- package/dist/{chunk-SI7P22A5.js → chunk-JKMM7UZH.js} +2 -2
- package/dist/{chunk-PWNIKVDA.js → chunk-KOJIL4NH.js} +1 -1
- package/dist/{chunk-NV3WVFZ2.js → chunk-KOO56JVC.js} +1 -1
- package/dist/{chunk-ACRIYPBC.js → chunk-KZ4AAXWM.js} +6 -6
- package/dist/{chunk-CQFBWHQT.js → chunk-LHLEFNFW.js} +1 -1
- package/dist/{chunk-2PI3WQ47.js → chunk-LJS2OZKR.js} +3 -3
- package/dist/{chunk-F6LDN5XB.js → chunk-MPCICOVG.js} +4 -4
- package/dist/{chunk-3J4AJLED.js → chunk-N27BYKRB.js} +5 -5
- package/dist/{chunk-VLQKYNIO.js → chunk-NOY424XX.js} +3 -3
- package/dist/{chunk-SPG7BS6Y.js → chunk-NP55D5Q6.js} +205 -105
- package/dist/{chunk-RUOLDPIR.js → chunk-O4HT7CKC.js} +1 -1
- package/dist/{chunk-SZERVMKQ.js → chunk-ODN7E7HJ.js} +1 -1
- package/dist/{chunk-TYOB34ZF.js → chunk-OSG4O5TU.js} +1 -1
- package/dist/{chunk-VUBQUWJH.js → chunk-PGXG2JUF.js} +1 -1
- package/dist/{chunk-3H4VU65X.js → chunk-PWMMIGVQ.js} +124 -1
- package/dist/{chunk-EWNH5O2J.js → chunk-QK5MFN77.js} +1 -1
- package/dist/{chunk-EEH5SNIW.js → chunk-S3R2FC6P.js} +3 -3
- package/dist/{chunk-OYQHH5SX.js → chunk-SARHW2CG.js} +109 -58
- package/dist/{chunk-2TKJQR7H.js → chunk-U2KFQTM5.js} +1 -1
- package/dist/{chunk-RSNIF5FB.js → chunk-UXEDBUVW.js} +5 -5
- package/dist/{chunk-7WZXLY52.js → chunk-WY2QFHBB.js} +1 -1
- package/dist/{chunk-VV6X2DRX.js → chunk-YL36L2SN.js} +1 -1
- package/dist/{chunk-RJTIEXYH.js → chunk-Z5OGXSXA.js} +2 -2
- package/dist/{chunk-5ICBFFSQ.js → chunk-Z734KCEG.js} +1 -1
- package/dist/{code-context-index-MPDSDOEL.js → code-context-index-B6VIWPSF.js} +3 -3
- package/dist/{conversation-wiki-populator-HVROKOEU.js → conversation-wiki-populator-YMNIDI4F.js} +1 -1
- package/dist/{crdt-sync-4PA3L6CQ.js → crdt-sync-6BT3YLUU.js} +1 -1
- package/dist/{crm-webhook-5RIOZV43.js → crm-webhook-YVGNLWJH.js} +2 -2
- package/dist/{cto-delegation-gate-WPYOYKCC.js → cto-delegation-gate-ACVGMP5V.js} +4 -4
- package/dist/{daemon-orchestration-WZ3ITBAJ.js → daemon-orchestration-47D3OQQV.js} +21 -7
- package/dist/{exe-drift-6U5ENBOQ.js → exe-drift-ZVZDRDN6.js} +2 -2
- package/dist/{exe-export-CJFBFOBQ.js → exe-export-E6SXUIOV.js} +4 -4
- package/dist/{exe-import-HWP2FOVB.js → exe-import-2ESJXCG6.js} +4 -4
- package/dist/{exe-key-S3Q3Q2LE.js → exe-key-FSNRXDEN.js} +1 -1
- package/dist/{fast-db-init-43JVJVVH.js → fast-db-init-FLMQJFDI.js} +1 -1
- package/dist/gateway/index.js +9 -9
- package/dist/{git-staleness-7PVIPSJZ.js → git-staleness-QSOOMGX3.js} +1 -1
- package/dist/{git-task-sweep-GXSLBPEQ.js → git-task-sweep-A4N5VNCJ.js} +5 -5
- package/dist/{global-procedures-3HLEPJTB.js → global-procedures-A2YYQL6Q.js} +2 -2
- package/dist/{graph-auto-extract-3TBVEMSM.js → graph-auto-extract-WKBJY3NQ.js} +1 -1
- package/dist/hooks/bug-report-worker.js +6 -6
- package/dist/hooks/codex-stop-task-finalizer.js +6 -6
- package/dist/hooks/commit-complete.js +35 -10
- package/dist/hooks/error-recall.js +5 -5
- package/dist/hooks/exe-heartbeat-hook.js +2 -2
- package/dist/hooks/ingest-worker.js +3 -3
- package/dist/hooks/ingest.js +5 -5
- package/dist/hooks/instructions-loaded.js +3 -3
- package/dist/hooks/notification.js +3 -3
- package/dist/hooks/post-compact.js +6 -6
- package/dist/hooks/post-tool-combined.js +5 -5
- package/dist/hooks/pre-compact.js +10 -10
- package/dist/hooks/pre-tool-use.js +10 -10
- package/dist/hooks/prompt-submit.js +16 -16
- package/dist/hooks/session-end.js +15 -15
- package/dist/hooks/session-start.js +6 -6
- package/dist/hooks/stop.js +13 -13
- package/dist/hooks/subagent-stop.js +6 -6
- package/dist/hooks/summary-worker.js +13 -13
- package/dist/index.js +14 -14
- package/dist/{installer-ZRARTRW6.js → installer-77L2ACSQ.js} +4 -4
- package/dist/{installer-BX3C5MT7.js → installer-IITLB3YS.js} +4 -4
- package/dist/{installer-STP2Z37F.js → installer-NZGIE6L4.js} +4 -4
- package/dist/lib/cloud-sync.js +3 -3
- package/dist/lib/consolidation.js +4 -4
- package/dist/lib/database.js +1 -1
- package/dist/lib/db-daemon-client.js +2 -2
- package/dist/lib/db.js +1 -1
- package/dist/lib/embedder.js +3 -3
- package/dist/lib/employee-templates.js +3 -3
- package/dist/lib/employees.js +1 -1
- package/dist/lib/exe-daemon-client.js +2 -2
- package/dist/lib/exe-daemon.js +79 -26
- package/dist/lib/hybrid-search.js +4 -4
- package/dist/lib/identity.js +1 -1
- package/dist/lib/messaging.js +5 -5
- package/dist/lib/reminders.js +2 -2
- package/dist/lib/schedules.js +4 -4
- package/dist/lib/skill-learning.js +3 -3
- package/dist/lib/store.js +3 -3
- package/dist/lib/task-router.js +2 -2
- package/dist/lib/tasks.js +5 -5
- package/dist/lib/tmux-routing.js +4 -4
- package/dist/lib/token-spend.js +2 -2
- package/dist/mcp/register-tools.js +46 -46
- package/dist/mcp/server.js +47 -47
- package/dist/mcp/tools/complete-reminder.js +3 -3
- package/dist/mcp/tools/create-reminder.js +3 -3
- package/dist/mcp/tools/create-task.js +7 -7
- package/dist/mcp/tools/deactivate-behavior.js +4 -4
- package/dist/mcp/tools/list-reminders.js +3 -3
- package/dist/mcp/tools/list-tasks.js +7 -7
- package/dist/mcp/tools/send-message.js +7 -7
- package/dist/mcp/tools/update-task.js +6 -6
- package/dist/{mcp-http-config-F7K3FSWG.js → mcp-http-config-GU7ANGPH.js} +2 -2
- package/dist/{memory-cards-B6I5ZGXM.js → memory-cards-MRF3JHTD.js} +1 -1
- package/dist/{memory-poisoning-defense-3ETR5HJJ.js → memory-poisoning-defense-UJ36FZ2U.js} +1 -1
- package/dist/{memory-queue-client-Z4Q3IX77.js → memory-queue-client-LFPZPPQA.js} +3 -3
- package/dist/{memory-reflection-B75N4BRO.js → memory-reflection-6QCSB2MQ.js} +1 -1
- package/dist/{notifications-WNSNHFH6.js → notifications-CSVHULU2.js} +4 -4
- package/dist/{orchestrator-KGIIN4BA.js → orchestrator-PWP2CALB.js} +6 -6
- package/dist/{plan-limits-LTAD6MZH.js → plan-limits-D3VGVCWX.js} +2 -2
- package/dist/{projection-worker-IEDLDFKB.js → projection-worker-QZCUNRFZ.js} +141 -2
- package/dist/{review-polling-MQ3AXSTB.js → review-polling-QH3X4ZGX.js} +5 -5
- package/dist/runtime/index.js +11 -11
- package/dist/{session-events-DUWUFNSD.js → session-events-4GDMLNBG.js} +5 -5
- package/dist/{session-kill-telemetry-SZPQAZS7.js → session-kill-telemetry-XNKGQYME.js} +2 -2
- package/dist/{session-scope-TU7M4FAA.js → session-scope-754VZARX.js} +4 -4
- package/dist/{setup-wizard-B5F7C765.js → setup-wizard-FBWZQGR4.js} +1 -1
- package/dist/{skill-refinement-RRSHVVV7.js → skill-refinement-65EE332E.js} +1 -1
- package/dist/{task-enforcement-6AAUCRFV.js → task-enforcement-Y4BZBB7O.js} +4 -4
- package/dist/{task-scope-3UOAF4QQ.js → task-scope-LMSSAAAY.js} +4 -4
- package/dist/{tasks-crud-NQLF7DVV.js → tasks-crud-GZLBSTH3.js} +4 -4
- package/dist/{tasks-review-K52CYJ3R.js → tasks-review-4MSMRTDM.js} +4 -4
- package/dist/{token-budget-6KUZD2BC.js → token-budget-6YGB6AVB.js} +1 -1
- package/dist/{tool-capability-index-4TT2VIQ2.js → tool-capability-index-6JJN6ZRC.js} +1 -1
- package/dist/{tool-telemetry-TOPP535O.js → tool-telemetry-SYTSDQBL.js} +1 -1
- package/dist/tui/App.js +17 -17
- package/dist/{tui-data-E3XA3HLZ.js → tui-data-XNWZBTZB.js} +4 -4
- package/dist/{wiki-client-NZR7RW4I.js → wiki-client-S6JKY7GG.js} +22 -1
- package/dist/{worker-gate-J5RRT27H.js → worker-gate-ULTQ3WTD.js} +1 -1
- package/dist/{workflow-engine-4U4H4V6K.js → workflow-engine-GKT7HTAK.js} +2 -2
- package/package.json +1 -1
- package/release-notes.json +142 -142
- /package/dist/{chunk-5UPBAAPS.js → chunk-2M3CULM3.js} +0 -0
- /package/dist/{chunk-PJI6UVFG.js → chunk-6IUZZMWD.js} +0 -0
- /package/dist/{chunk-33KYUOK2.js → chunk-6NSFB3JH.js} +0 -0
- /package/dist/{chunk-XMYY65PG.js → chunk-ESRI7MFI.js} +0 -0
- /package/dist/{chunk-JTS3IDOY.js → chunk-JYETM4KT.js} +0 -0
- /package/dist/{chunk-MJSWLLSM.js → chunk-KVXP2W2N.js} +0 -0
- /package/dist/{chunk-DHNTMNKR.js → chunk-MGRHSBXO.js} +0 -0
- /package/dist/{chunk-JC7GZZVA.js → chunk-X4X3J6FE.js} +0 -0
- /package/dist/{chunk-NGVIZCGB.js → chunk-ZKALIEHB.js} +0 -0
- /package/dist/{core-memory-TFPUGGWO.js → core-memory-EXKPFVIR.js} +0 -0
- /package/dist/{entity-boost-B7IGG24X.js → entity-boost-GHFPE6A2.js} +0 -0
- /package/dist/{message-queue-client-EMQYHDBK.js → message-queue-client-CHRQYBH5.js} +0 -0
- /package/dist/{wiki-acl-JDBEB5GL.js → wiki-acl-VC237WGO.js} +0 -0
|
@@ -202,8 +202,131 @@ function requestRestart(reason, opts) {
|
|
|
202
202
|
releaseLock();
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
|
+
function killOrphanedDaemons() {
|
|
206
|
+
try {
|
|
207
|
+
const pids = execSync("pgrep -f 'exe-daemon.js' 2>/dev/null || true", { encoding: "utf8", timeout: 5e3 }).trim().split("\n").filter(Boolean).map(Number).filter((n) => !isNaN(n) && n !== process.pid);
|
|
208
|
+
if (pids.length === 0) return 0;
|
|
209
|
+
for (const p of pids) {
|
|
210
|
+
try {
|
|
211
|
+
process.kill(p, "SIGTERM");
|
|
212
|
+
} catch {
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
try {
|
|
216
|
+
execSync("sleep 1");
|
|
217
|
+
} catch {
|
|
218
|
+
}
|
|
219
|
+
for (const p of pids) {
|
|
220
|
+
try {
|
|
221
|
+
process.kill(p, 0);
|
|
222
|
+
process.kill(p, "SIGKILL");
|
|
223
|
+
} catch {
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
process.stderr.write(`[restart-orchestrator] killed ${pids.length} orphaned daemon(s)
|
|
227
|
+
`);
|
|
228
|
+
logRestart({ event: "orphan_kill", count: pids.length, pids });
|
|
229
|
+
return pids.length;
|
|
230
|
+
} catch {
|
|
231
|
+
return 0;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
function killOrphanedBackfill() {
|
|
235
|
+
try {
|
|
236
|
+
const pids = execSync("pgrep -f 'backfill-vectors.js' 2>/dev/null || true", { encoding: "utf8", timeout: 5e3 }).trim().split("\n").filter(Boolean).map(Number).filter((n) => !isNaN(n) && n !== process.pid);
|
|
237
|
+
for (const p of pids) {
|
|
238
|
+
try {
|
|
239
|
+
process.kill(p, "SIGKILL");
|
|
240
|
+
} catch {
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
if (pids.length > 0) {
|
|
244
|
+
process.stderr.write(`[restart-orchestrator] killed ${pids.length} orphaned backfill worker(s)
|
|
245
|
+
`);
|
|
246
|
+
logRestart({ event: "backfill_orphan_kill", count: pids.length });
|
|
247
|
+
}
|
|
248
|
+
return pids.length;
|
|
249
|
+
} catch {
|
|
250
|
+
return 0;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
function cleanWorkerPidFiles() {
|
|
254
|
+
try {
|
|
255
|
+
if (!existsSync(WORKER_PIDS_DIR)) return;
|
|
256
|
+
for (const f of readdirSync(WORKER_PIDS_DIR)) {
|
|
257
|
+
try {
|
|
258
|
+
unlinkSync(path.join(WORKER_PIDS_DIR, f));
|
|
259
|
+
} catch {
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
} catch {
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
function updateMcpVersionMarker() {
|
|
266
|
+
try {
|
|
267
|
+
writeFileSync(MCP_VERSION_PATH, `deploy-${Date.now()}`);
|
|
268
|
+
process.stderr.write("[restart-orchestrator] MCP version marker updated \u2014 servers will hot-reload within 10s\n");
|
|
269
|
+
logRestart({ event: "mcp_marker_updated" });
|
|
270
|
+
} catch {
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
function requestDeployRestart(reason) {
|
|
274
|
+
const deployReason = reason ?? "deploy";
|
|
275
|
+
if (!acquireLock()) {
|
|
276
|
+
process.stderr.write("[restart-orchestrator] Lock held \u2014 waiting briefly for deploy\n");
|
|
277
|
+
try {
|
|
278
|
+
execSync("sleep 1");
|
|
279
|
+
} catch {
|
|
280
|
+
}
|
|
281
|
+
try {
|
|
282
|
+
unlinkSync(SPAWN_LOCK_PATH);
|
|
283
|
+
} catch {
|
|
284
|
+
}
|
|
285
|
+
if (!acquireLock()) {
|
|
286
|
+
logRestart({ event: "deploy_skipped", reason: deployReason, skip_reason: "lock_held" });
|
|
287
|
+
return { ok: false, skipped: "Another process is already restarting daemon" };
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
try {
|
|
291
|
+
try {
|
|
292
|
+
writeFileSync(RESTART_MARKER, String(Date.now()));
|
|
293
|
+
} catch {
|
|
294
|
+
}
|
|
295
|
+
logRestart({ event: "deploy_restart_initiated", reason: deployReason });
|
|
296
|
+
process.stderr.write(`[restart-orchestrator] Deploy restart \u2014 reason: ${deployReason}
|
|
297
|
+
`);
|
|
298
|
+
const pid = readDaemonPid();
|
|
299
|
+
if (pid !== null && isProcessAlive(pid)) killDaemonGracefully(pid);
|
|
300
|
+
try {
|
|
301
|
+
unlinkSync(PID_PATH);
|
|
302
|
+
} catch {
|
|
303
|
+
}
|
|
304
|
+
try {
|
|
305
|
+
unlinkSync(PID_PATH + ".lock");
|
|
306
|
+
} catch {
|
|
307
|
+
}
|
|
308
|
+
const orphansKilled = killOrphanedDaemons();
|
|
309
|
+
const backfillKilled = killOrphanedBackfill();
|
|
310
|
+
updateMcpVersionMarker();
|
|
311
|
+
cleanWorkerPidFiles();
|
|
312
|
+
try {
|
|
313
|
+
unlinkSync(SOCKET_PATH);
|
|
314
|
+
} catch {
|
|
315
|
+
}
|
|
316
|
+
try {
|
|
317
|
+
execSync("sleep 0.5");
|
|
318
|
+
} catch {
|
|
319
|
+
}
|
|
320
|
+
logRestart({ event: "deploy_restart_complete", reason: deployReason, killed_pid: pid, orphans_killed: orphansKilled, backfill_killed: backfillKilled });
|
|
321
|
+
return { ok: true, pid, reason: deployReason, orphansKilled, backfillKilled };
|
|
322
|
+
} finally {
|
|
323
|
+
releaseLock();
|
|
324
|
+
}
|
|
325
|
+
}
|
|
205
326
|
|
|
206
327
|
export {
|
|
207
328
|
logRestartEvent,
|
|
208
|
-
requestRestart
|
|
329
|
+
requestRestart,
|
|
330
|
+
updateMcpVersionMarker,
|
|
331
|
+
requestDeployRestart
|
|
209
332
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
routeTask
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QK5MFN77.js";
|
|
4
4
|
import {
|
|
5
5
|
createTaskCore,
|
|
6
6
|
employeeSessionName,
|
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
isEmployeeAlive,
|
|
10
10
|
sessionScopeFilter,
|
|
11
11
|
updateTaskStatus
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-7X7HKWH7.js";
|
|
13
13
|
import {
|
|
14
14
|
DEFAULT_COORDINATOR_TEMPLATE_NAME,
|
|
15
15
|
getCoordinatorName
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-JYETM4KT.js";
|
|
17
17
|
|
|
18
18
|
// src/runtime/orchestrator.ts
|
|
19
19
|
var STALE_THRESHOLD_MS = 2 * 60 * 60 * 1e3;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isCrdtSyncEnabled
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KVXP2W2N.js";
|
|
4
4
|
import {
|
|
5
5
|
decryptSyncBlob,
|
|
6
6
|
encryptSyncBlob,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
loadEmployees,
|
|
13
13
|
registerBinSymlinks,
|
|
14
14
|
saveEmployees
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-JYETM4KT.js";
|
|
16
16
|
import {
|
|
17
17
|
loadDeviceId
|
|
18
18
|
} from "./chunk-MVMMULOJ.js";
|
|
@@ -51,6 +51,10 @@ function decompress(input) {
|
|
|
51
51
|
function sqlSafe(v) {
|
|
52
52
|
return v === void 0 ? null : v;
|
|
53
53
|
}
|
|
54
|
+
function sqlSafeRequired(v, fallback) {
|
|
55
|
+
if (v === void 0 || v === null || v === "") return fallback;
|
|
56
|
+
return v;
|
|
57
|
+
}
|
|
54
58
|
function logError(msg) {
|
|
55
59
|
try {
|
|
56
60
|
const logPath = path.join(homedir(), ".exe-os", "workers.log");
|
|
@@ -485,7 +489,7 @@ async function cloudSync(config) {
|
|
|
485
489
|
let pulled = 0;
|
|
486
490
|
if (pullResult.records.length > 0) {
|
|
487
491
|
if (isCrdtSyncEnabled()) {
|
|
488
|
-
const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-
|
|
492
|
+
const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-6BT3YLUU.js");
|
|
489
493
|
initCrdtDoc();
|
|
490
494
|
importExistingMemories(
|
|
491
495
|
pullResult.records.map((rec) => ({
|
|
@@ -589,7 +593,14 @@ async function cloudSync(config) {
|
|
|
589
593
|
} catch (e) {
|
|
590
594
|
process.stderr.write("[cloud-sync] conflict detection query failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
591
595
|
}
|
|
592
|
-
const
|
|
596
|
+
const localDeviceId = loadDeviceId();
|
|
597
|
+
const deviceFilteredRecords = pullResult.records.filter((rec) => {
|
|
598
|
+
const authorDevice = rec.author_device_id;
|
|
599
|
+
if (!authorDevice) return true;
|
|
600
|
+
if (String(authorDevice) === localDeviceId) return true;
|
|
601
|
+
return true;
|
|
602
|
+
});
|
|
603
|
+
const stmts = deviceFilteredRecords.map((rec) => ({
|
|
593
604
|
sql: `INSERT INTO memories
|
|
594
605
|
(id, agent_id, agent_role, session_id, timestamp,
|
|
595
606
|
tool_name, project_name, has_error, raw_text, version,
|
|
@@ -616,12 +627,12 @@ async function cloudSync(config) {
|
|
|
616
627
|
strength = COALESCE(memories.strength, excluded.strength)`,
|
|
617
628
|
args: [
|
|
618
629
|
sqlSafe(rec.id),
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
630
|
+
sqlSafeRequired(rec.agent_id, "unknown"),
|
|
631
|
+
sqlSafeRequired(rec.agent_role, "employee"),
|
|
632
|
+
sqlSafeRequired(rec.session_id, "cloud-sync"),
|
|
633
|
+
sqlSafeRequired(rec.timestamp, (/* @__PURE__ */ new Date()).toISOString()),
|
|
634
|
+
sqlSafeRequired(rec.tool_name, "cloud_sync"),
|
|
635
|
+
sqlSafeRequired(rec.project_name, "unknown"),
|
|
625
636
|
sqlSafe(rec.has_error ?? 0),
|
|
626
637
|
sqlSafe(rec.raw_text ?? ""),
|
|
627
638
|
sqlSafe(rec.version ?? 0),
|
|
@@ -631,8 +642,31 @@ async function cloudSync(config) {
|
|
|
631
642
|
sqlSafe(rec.session_scope)
|
|
632
643
|
]
|
|
633
644
|
}));
|
|
634
|
-
|
|
635
|
-
|
|
645
|
+
let syncErrors = 0;
|
|
646
|
+
const BATCH_SIZE = 100;
|
|
647
|
+
for (let i = 0; i < stmts.length; i += BATCH_SIZE) {
|
|
648
|
+
const batch = stmts.slice(i, i + BATCH_SIZE);
|
|
649
|
+
try {
|
|
650
|
+
await client.batch(batch, "write");
|
|
651
|
+
} catch (batchErr) {
|
|
652
|
+
for (const stmt of batch) {
|
|
653
|
+
try {
|
|
654
|
+
await client.execute(stmt);
|
|
655
|
+
} catch (recErr) {
|
|
656
|
+
syncErrors++;
|
|
657
|
+
process.stderr.write(
|
|
658
|
+
`[cloud-sync] Skipped bad record (${recErr instanceof Error ? recErr.message : String(recErr)})
|
|
659
|
+
`
|
|
660
|
+
);
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
pulled = stmts.length - syncErrors;
|
|
666
|
+
if (syncErrors > 0) {
|
|
667
|
+
process.stderr.write(`[cloud-sync] Pull completed with ${syncErrors} skipped record(s)
|
|
668
|
+
`);
|
|
669
|
+
}
|
|
636
670
|
}
|
|
637
671
|
}
|
|
638
672
|
if (pulled > 0) {
|
|
@@ -1246,31 +1280,41 @@ async function cloudPullGlobalProcedures(config) {
|
|
|
1246
1280
|
);
|
|
1247
1281
|
if (!remoteProcs || remoteProcs.length === 0) return { pulled: 0 };
|
|
1248
1282
|
const client = getClient();
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1283
|
+
let pulled = 0;
|
|
1284
|
+
for (const p of remoteProcs) {
|
|
1285
|
+
try {
|
|
1286
|
+
await client.execute({
|
|
1287
|
+
sql: `INSERT INTO company_procedures
|
|
1288
|
+
(id, title, content, priority, domain, active, created_at, updated_at)
|
|
1289
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
1290
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
1291
|
+
title = excluded.title,
|
|
1292
|
+
content = excluded.content,
|
|
1293
|
+
priority = excluded.priority,
|
|
1294
|
+
domain = excluded.domain,
|
|
1295
|
+
active = excluded.active,
|
|
1296
|
+
updated_at = excluded.updated_at
|
|
1297
|
+
WHERE excluded.updated_at > company_procedures.updated_at`,
|
|
1298
|
+
args: [
|
|
1299
|
+
sqlSafe(p.id),
|
|
1300
|
+
sqlSafeRequired(p.title, "(untitled)"),
|
|
1301
|
+
sqlSafeRequired(p.content, ""),
|
|
1302
|
+
sqlSafe(p.priority ?? "p0"),
|
|
1303
|
+
sqlSafe(p.domain),
|
|
1304
|
+
sqlSafe(p.active ?? 1),
|
|
1305
|
+
sqlSafe(p.created_at ?? (/* @__PURE__ */ new Date()).toISOString()),
|
|
1306
|
+
sqlSafe(p.updated_at ?? (/* @__PURE__ */ new Date()).toISOString())
|
|
1307
|
+
]
|
|
1308
|
+
});
|
|
1309
|
+
pulled++;
|
|
1310
|
+
} catch (e) {
|
|
1311
|
+
process.stderr.write(
|
|
1312
|
+
`[cloud-sync] Skipping bad company_procedure record ${String(p.id).slice(0, 8)}: ${e instanceof Error ? e.message : String(e)}
|
|
1313
|
+
`
|
|
1314
|
+
);
|
|
1315
|
+
}
|
|
1316
|
+
}
|
|
1317
|
+
return { pulled };
|
|
1274
1318
|
}
|
|
1275
1319
|
async function cloudPushBehaviors(config) {
|
|
1276
1320
|
const client = getClient();
|
|
@@ -1293,27 +1337,34 @@ async function cloudPullBehaviors(config) {
|
|
|
1293
1337
|
const client = getClient();
|
|
1294
1338
|
let pulled = 0;
|
|
1295
1339
|
for (const behavior of remoteBehaviors) {
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1340
|
+
try {
|
|
1341
|
+
await client.execute({
|
|
1342
|
+
sql: `INSERT INTO behaviors
|
|
1343
|
+
(id, agent_id, project_name, domain, content, active, priority, created_at, updated_at)
|
|
1344
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
1345
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
1346
|
+
active = excluded.active,
|
|
1347
|
+
priority = excluded.priority,
|
|
1348
|
+
updated_at = excluded.updated_at`,
|
|
1349
|
+
args: [
|
|
1350
|
+
sqlSafe(behavior.id),
|
|
1351
|
+
sqlSafeRequired(behavior.agent_id, "unknown"),
|
|
1352
|
+
sqlSafe(behavior.project_name),
|
|
1353
|
+
sqlSafe(behavior.domain ?? "general"),
|
|
1354
|
+
sqlSafeRequired(behavior.content, "(empty)"),
|
|
1355
|
+
sqlSafe(behavior.active ?? 1),
|
|
1356
|
+
sqlSafe(behavior.priority ?? "p1"),
|
|
1357
|
+
sqlSafe(behavior.created_at ?? (/* @__PURE__ */ new Date()).toISOString()),
|
|
1358
|
+
sqlSafe(behavior.updated_at ?? (/* @__PURE__ */ new Date()).toISOString())
|
|
1359
|
+
]
|
|
1360
|
+
});
|
|
1361
|
+
pulled++;
|
|
1362
|
+
} catch (e) {
|
|
1363
|
+
process.stderr.write(
|
|
1364
|
+
`[cloud-sync] Skipped bad behavior record: ${e instanceof Error ? e.message : String(e)}
|
|
1365
|
+
`
|
|
1366
|
+
);
|
|
1367
|
+
}
|
|
1317
1368
|
}
|
|
1318
1369
|
return { pulled };
|
|
1319
1370
|
}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SignalAdapter
|
|
3
|
+
} from "./chunk-RJT7H2KR.js";
|
|
1
4
|
import {
|
|
2
5
|
TelegramAdapter
|
|
3
6
|
} from "./chunk-Q3V7K4ME.js";
|
|
@@ -13,13 +16,10 @@ import {
|
|
|
13
16
|
import {
|
|
14
17
|
createCRMWebhookHandler,
|
|
15
18
|
parseTwentyWebhook
|
|
16
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-HWVG6QXM.js";
|
|
17
20
|
import {
|
|
18
21
|
WhatsAppAdapter
|
|
19
22
|
} from "./chunk-ECSNSHZ7.js";
|
|
20
|
-
import {
|
|
21
|
-
SignalAdapter
|
|
22
|
-
} from "./chunk-RJT7H2KR.js";
|
|
23
23
|
import {
|
|
24
24
|
BotRegistry,
|
|
25
25
|
BotRuntime,
|
|
@@ -42,7 +42,7 @@ import {
|
|
|
42
42
|
retryWithBackoff,
|
|
43
43
|
routeMessage,
|
|
44
44
|
validateGatewayConfig
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-N27BYKRB.js";
|
|
46
46
|
import {
|
|
47
47
|
OllamaProvider
|
|
48
48
|
} from "./chunk-FWFFZGSC.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sessionScopeFilter
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7X7HKWH7.js";
|
|
4
4
|
|
|
5
5
|
// src/lib/git-task-sweep.ts
|
|
6
6
|
import { execSync } from "child_process";
|
|
@@ -178,7 +178,7 @@ async function sweepTasks(projectName, options = {}) {
|
|
|
178
178
|
}
|
|
179
179
|
if (!dryRun) {
|
|
180
180
|
try {
|
|
181
|
-
const { updateTaskStatus } = await import("./tasks-crud-
|
|
181
|
+
const { updateTaskStatus } = await import("./tasks-crud-GZLBSTH3.js");
|
|
182
182
|
await updateTaskStatus({
|
|
183
183
|
taskId: task.id,
|
|
184
184
|
status: "needs_review",
|
|
@@ -8,11 +8,11 @@ import {
|
|
|
8
8
|
searchCodeContext,
|
|
9
9
|
searchCodeContextSemantic,
|
|
10
10
|
traceCodeSymbol
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-KOO56JVC.js";
|
|
12
12
|
import "./chunk-I7AW4237.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-3H4VU65X.js";
|
|
13
|
+
import "./chunk-G4FDG3LK.js";
|
|
15
14
|
import "./chunk-CMFLJNP6.js";
|
|
15
|
+
import "./chunk-PWMMIGVQ.js";
|
|
16
16
|
import "./chunk-4GXRETYL.js";
|
|
17
17
|
import "./chunk-LYH5HE24.js";
|
|
18
18
|
import "./chunk-MLKGABMK.js";
|
package/dist/{conversation-wiki-populator-HVROKOEU.js → conversation-wiki-populator-YMNIDI4F.js}
RENAMED
|
@@ -12,7 +12,7 @@ var DEFAULT_WORKSPACE = "conversations";
|
|
|
12
12
|
var MIN_NAME_LENGTH = 3;
|
|
13
13
|
var SKIP_NAMES = /* @__PURE__ */ new Set(["unknown", "none", "n/a", "null", "undefined"]);
|
|
14
14
|
async function populateWikiFromExtraction(extraction, msg, agentResponse, agentName) {
|
|
15
|
-
const { createWikiClient, chatInWorkspace, listWorkspaces } = await import("./wiki-client-
|
|
15
|
+
const { createWikiClient, chatInWorkspace, listWorkspaces } = await import("./wiki-client-S6JKY7GG.js");
|
|
16
16
|
const client = await createWikiClient();
|
|
17
17
|
if (!client) {
|
|
18
18
|
return { created: 0, updated: 0, skipped: extraction.entities.length };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sessionScopeFilter
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7X7HKWH7.js";
|
|
4
4
|
import "./chunk-LOQCOHEW.js";
|
|
5
5
|
import "./chunk-TXSJ2L5O.js";
|
|
6
6
|
import "./chunk-64WZEXXA.js";
|
|
@@ -10,18 +10,18 @@ import "./chunk-GZIAQYGI.js";
|
|
|
10
10
|
import "./chunk-ZQX6UOP6.js";
|
|
11
11
|
import "./chunk-H2CFBUGF.js";
|
|
12
12
|
import "./chunk-NGP6LSV2.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-72IIQLQ6.js";
|
|
14
14
|
import "./chunk-OPU3NYOO.js";
|
|
15
15
|
import "./chunk-CVYC6DUW.js";
|
|
16
16
|
import "./chunk-GJV3WDWM.js";
|
|
17
17
|
import "./chunk-MP2AFCGL.js";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-2UO3QD7V.js";
|
|
19
19
|
import "./chunk-HYZV25LY.js";
|
|
20
20
|
import {
|
|
21
21
|
getClient,
|
|
22
22
|
getEmployeeByRole,
|
|
23
23
|
loadEmployeesSync
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-JYETM4KT.js";
|
|
25
25
|
import "./chunk-RVSGXGWG.js";
|
|
26
26
|
import "./chunk-FXU7JOXK.js";
|
|
27
27
|
import "./chunk-MVMMULOJ.js";
|
|
@@ -5,14 +5,17 @@ import {
|
|
|
5
5
|
COO_RESTART_COOLDOWN_MS,
|
|
6
6
|
CRASH_LOOP_THRESHOLD,
|
|
7
7
|
CRASH_LOOP_WINDOW_MS,
|
|
8
|
+
HOOK_PROCESS_PATTERNS,
|
|
8
9
|
IDLE_KILL_INTERCOM_ACK_WINDOW_MS,
|
|
9
10
|
IDLE_NUDGE_DEDUP_MS,
|
|
11
|
+
ORPHAN_MAX_AGE_SECS,
|
|
10
12
|
ORPHAN_PATTERNS,
|
|
11
13
|
ORPHAN_SIGKILL_DELAY_MS,
|
|
12
14
|
REVIEW_NUDGE_COOLDOWN_MS,
|
|
13
15
|
SESSION_CONTEXT_THRESHOLD_PCT,
|
|
14
16
|
SESSION_TTL_HOURS,
|
|
15
17
|
STUCK_TASK_GRACE_MS,
|
|
18
|
+
WORKTREE_REAPER_INTERVAL_MS,
|
|
16
19
|
_resetAutoWakeState,
|
|
17
20
|
_resetCooRestartState,
|
|
18
21
|
checkSessionTTL,
|
|
@@ -27,6 +30,8 @@ import {
|
|
|
27
30
|
createSessionTTLRealDeps,
|
|
28
31
|
createStaleReviewRealDeps,
|
|
29
32
|
createStuckTaskRealDeps,
|
|
33
|
+
createWorktreeReaperRealDeps,
|
|
34
|
+
createZombieAgentReaperRealDeps,
|
|
30
35
|
loadNudgeState,
|
|
31
36
|
pollCoordinatorContextRestart,
|
|
32
37
|
pollIdleEmployees,
|
|
@@ -34,16 +39,18 @@ import {
|
|
|
34
39
|
pollOrphanedTasks,
|
|
35
40
|
pollReviewNudge,
|
|
36
41
|
reapOrphanedMcpProcesses,
|
|
42
|
+
reapOrphanedWorktrees,
|
|
43
|
+
reapZombieAgentProcesses,
|
|
37
44
|
releaseStuckTasks,
|
|
38
45
|
saveNudgeState,
|
|
39
46
|
shouldAutoWake,
|
|
40
47
|
shouldKillIdleSession,
|
|
41
48
|
shouldKillSession,
|
|
42
49
|
shouldNudgeEmployee
|
|
43
|
-
} from "./chunk-
|
|
44
|
-
import "./chunk-
|
|
45
|
-
import "./chunk-
|
|
46
|
-
import "./chunk-
|
|
50
|
+
} from "./chunk-BZYHF63H.js";
|
|
51
|
+
import "./chunk-FRH7EY2Z.js";
|
|
52
|
+
import "./chunk-MPCICOVG.js";
|
|
53
|
+
import "./chunk-7X7HKWH7.js";
|
|
47
54
|
import "./chunk-LOQCOHEW.js";
|
|
48
55
|
import "./chunk-TXSJ2L5O.js";
|
|
49
56
|
import "./chunk-64WZEXXA.js";
|
|
@@ -53,14 +60,14 @@ import "./chunk-GZIAQYGI.js";
|
|
|
53
60
|
import "./chunk-ZQX6UOP6.js";
|
|
54
61
|
import "./chunk-H2CFBUGF.js";
|
|
55
62
|
import "./chunk-NGP6LSV2.js";
|
|
56
|
-
import "./chunk-
|
|
63
|
+
import "./chunk-72IIQLQ6.js";
|
|
57
64
|
import "./chunk-OPU3NYOO.js";
|
|
58
65
|
import "./chunk-CVYC6DUW.js";
|
|
59
66
|
import "./chunk-GJV3WDWM.js";
|
|
60
67
|
import "./chunk-MP2AFCGL.js";
|
|
61
|
-
import "./chunk-
|
|
68
|
+
import "./chunk-2UO3QD7V.js";
|
|
62
69
|
import "./chunk-HYZV25LY.js";
|
|
63
|
-
import "./chunk-
|
|
70
|
+
import "./chunk-JYETM4KT.js";
|
|
64
71
|
import "./chunk-RVSGXGWG.js";
|
|
65
72
|
import "./chunk-FXU7JOXK.js";
|
|
66
73
|
import "./chunk-MVMMULOJ.js";
|
|
@@ -74,14 +81,17 @@ export {
|
|
|
74
81
|
COO_RESTART_COOLDOWN_MS,
|
|
75
82
|
CRASH_LOOP_THRESHOLD,
|
|
76
83
|
CRASH_LOOP_WINDOW_MS,
|
|
84
|
+
HOOK_PROCESS_PATTERNS,
|
|
77
85
|
IDLE_KILL_INTERCOM_ACK_WINDOW_MS,
|
|
78
86
|
IDLE_NUDGE_DEDUP_MS,
|
|
87
|
+
ORPHAN_MAX_AGE_SECS,
|
|
79
88
|
ORPHAN_PATTERNS,
|
|
80
89
|
ORPHAN_SIGKILL_DELAY_MS,
|
|
81
90
|
REVIEW_NUDGE_COOLDOWN_MS,
|
|
82
91
|
SESSION_CONTEXT_THRESHOLD_PCT,
|
|
83
92
|
SESSION_TTL_HOURS,
|
|
84
93
|
STUCK_TASK_GRACE_MS,
|
|
94
|
+
WORKTREE_REAPER_INTERVAL_MS,
|
|
85
95
|
_resetAutoWakeState,
|
|
86
96
|
_resetCooRestartState,
|
|
87
97
|
checkSessionTTL,
|
|
@@ -96,6 +106,8 @@ export {
|
|
|
96
106
|
createSessionTTLRealDeps,
|
|
97
107
|
createStaleReviewRealDeps,
|
|
98
108
|
createStuckTaskRealDeps,
|
|
109
|
+
createWorktreeReaperRealDeps,
|
|
110
|
+
createZombieAgentReaperRealDeps,
|
|
99
111
|
loadNudgeState,
|
|
100
112
|
pollCoordinatorContextRestart,
|
|
101
113
|
pollIdleEmployees,
|
|
@@ -103,6 +115,8 @@ export {
|
|
|
103
115
|
pollOrphanedTasks,
|
|
104
116
|
pollReviewNudge,
|
|
105
117
|
reapOrphanedMcpProcesses,
|
|
118
|
+
reapOrphanedWorktrees,
|
|
119
|
+
reapZombieAgentProcesses,
|
|
106
120
|
releaseStuckTasks,
|
|
107
121
|
saveNudgeState,
|
|
108
122
|
shouldAutoWake,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runDriftProbes
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-WY2QFHBB.js";
|
|
5
|
+
import "./chunk-JYETM4KT.js";
|
|
6
6
|
import "./chunk-RVSGXGWG.js";
|
|
7
7
|
import "./chunk-FXU7JOXK.js";
|
|
8
8
|
import "./chunk-4GXRETYL.js";
|