@songsid/agend 2.1.2-beta.43 → 2.1.2-beta.45
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/backend/codex.js +1 -0
- package/dist/backend/codex.js.map +1 -1
- package/dist/cli.js +4 -1
- package/dist/cli.js.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/daemon.d.ts +27 -0
- package/dist/daemon.js +80 -2
- package/dist/daemon.js.map +1 -1
- package/dist/fleet-manager.d.ts +10 -1
- package/dist/fleet-manager.js +82 -3
- package/dist/fleet-manager.js.map +1 -1
- package/dist/instance-lifecycle.d.ts +8 -0
- package/dist/instance-lifecycle.js +41 -4
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/outbound-handlers.d.ts +2 -0
- package/dist/outbound-handlers.js +60 -9
- package/dist/outbound-handlers.js.map +1 -1
- package/dist/types.d.ts +7 -0
- package/package.json +1 -1
package/dist/config.js
CHANGED
|
@@ -41,6 +41,7 @@ export const DEFAULT_DAILY_SUMMARY = {
|
|
|
41
41
|
};
|
|
42
42
|
export const DEFAULT_INSTANCE_CONFIG = {
|
|
43
43
|
auto_pause_after: 0, // minutes; 0 = disabled (opt-in)
|
|
44
|
+
mcp_auto_restart: true, // restart (idle-gated) when the MCP server dies
|
|
44
45
|
kiro_ui: "legacy",
|
|
45
46
|
terminal: {
|
|
46
47
|
enabled: true,
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon.d.ts
CHANGED
|
@@ -305,6 +305,21 @@ export declare class Daemon extends EventEmitter {
|
|
|
305
305
|
private static readonly MCP_DEATH_COOLDOWN_MS;
|
|
306
306
|
private lastMcpDeathNotifiedAt;
|
|
307
307
|
private mcpDeathNotifiedForPid;
|
|
308
|
+
/**
|
|
309
|
+
* Ceiling on how long a dead MCP server waits for an idle window before the
|
|
310
|
+
* auto-restart fires anyway. A toolless instance cannot reply or report, so
|
|
311
|
+
* whatever a very long turn produces is stranded until the restart happens —
|
|
312
|
+
* past this point interrupting the turn costs less than staying mute.
|
|
313
|
+
*/
|
|
314
|
+
private static readonly MCP_RESTART_MAX_WAIT_MS;
|
|
315
|
+
/**
|
|
316
|
+
* Sticky "restart to revive the MCP server as soon as the pane idles" — same
|
|
317
|
+
* shape as pausePending, because the death is usually detected mid-turn when
|
|
318
|
+
* an immediate restart would destroy in-flight work. Cleared when the server
|
|
319
|
+
* turns up alive again (operator restarted, CLI reconnected) before we fire.
|
|
320
|
+
*/
|
|
321
|
+
private mcpRestartPending;
|
|
322
|
+
private mcpRestartStaleTimer;
|
|
308
323
|
/** Prevent in-flight monitor callbacks from re-arming after a pause. */
|
|
309
324
|
private runtimeMonitorsFrozen;
|
|
310
325
|
private errorWaitingForRecovery;
|
|
@@ -314,6 +329,8 @@ export declare class Daemon extends EventEmitter {
|
|
|
314
329
|
/** Whether this instance is in an abnormal error state (auto-pause is normal). */
|
|
315
330
|
get isErrorState(): boolean;
|
|
316
331
|
get isPaused(): boolean;
|
|
332
|
+
/** Current CLI process state for status surfaces and recovery commands. */
|
|
333
|
+
getProcessStatus(): "running" | "crashed" | "stopped";
|
|
317
334
|
get lastPausedAt(): number | null;
|
|
318
335
|
private getPauseWakeState;
|
|
319
336
|
/** Whether this instance is in a crash loop (3+ consecutive crashes). */
|
|
@@ -346,6 +363,16 @@ export declare class Daemon extends EventEmitter {
|
|
|
346
363
|
* tools — hence notify, and let the operator decide about restarting.
|
|
347
364
|
*/
|
|
348
365
|
private checkMcpServerAlive;
|
|
366
|
+
/**
|
|
367
|
+
* Arm an automatic instance restart to revive a dead MCP server. Fires on the
|
|
368
|
+
* next busy→idle edge — or immediately when the pane is already idle, which is
|
|
369
|
+
* the common case for a collab/chat instance parked between messages (no edge
|
|
370
|
+
* would ever come). A turn that outlives MCP_RESTART_MAX_WAIT_MS is
|
|
371
|
+
* force-restarted: see that constant for why staying mute costs more.
|
|
372
|
+
*/
|
|
373
|
+
private armMcpRestartWhenIdle;
|
|
374
|
+
private fireMcpRestartRequest;
|
|
375
|
+
private clearMcpRestartRequest;
|
|
349
376
|
private startHealthCheck;
|
|
350
377
|
/**
|
|
351
378
|
* Publish pane-process availability separately from idle/working/stuck.
|
package/dist/daemon.js
CHANGED
|
@@ -595,6 +595,21 @@ export class Daemon extends EventEmitter {
|
|
|
595
595
|
static MCP_DEATH_COOLDOWN_MS = 5 * 60_000;
|
|
596
596
|
lastMcpDeathNotifiedAt = 0;
|
|
597
597
|
mcpDeathNotifiedForPid = null;
|
|
598
|
+
/**
|
|
599
|
+
* Ceiling on how long a dead MCP server waits for an idle window before the
|
|
600
|
+
* auto-restart fires anyway. A toolless instance cannot reply or report, so
|
|
601
|
+
* whatever a very long turn produces is stranded until the restart happens —
|
|
602
|
+
* past this point interrupting the turn costs less than staying mute.
|
|
603
|
+
*/
|
|
604
|
+
static MCP_RESTART_MAX_WAIT_MS = 30 * 60_000;
|
|
605
|
+
/**
|
|
606
|
+
* Sticky "restart to revive the MCP server as soon as the pane idles" — same
|
|
607
|
+
* shape as pausePending, because the death is usually detected mid-turn when
|
|
608
|
+
* an immediate restart would destroy in-flight work. Cleared when the server
|
|
609
|
+
* turns up alive again (operator restarted, CLI reconnected) before we fire.
|
|
610
|
+
*/
|
|
611
|
+
mcpRestartPending = false;
|
|
612
|
+
mcpRestartStaleTimer = null;
|
|
598
613
|
/** Prevent in-flight monitor callbacks from re-arming after a pause. */
|
|
599
614
|
runtimeMonitorsFrozen = false;
|
|
600
615
|
errorWaitingForRecovery = false; // true = error detected, waiting for ready pattern
|
|
@@ -606,6 +621,10 @@ export class Daemon extends EventEmitter {
|
|
|
606
621
|
return this.errorWaitingForRecovery || (this.healthCheckPaused && !this.isPaused) || Daemon.tmuxServerPaused;
|
|
607
622
|
}
|
|
608
623
|
get isPaused() { return this.pauseWakeState !== "active"; }
|
|
624
|
+
/** Current CLI process state for status surfaces and recovery commands. */
|
|
625
|
+
getProcessStatus() {
|
|
626
|
+
return this.processStatus;
|
|
627
|
+
}
|
|
609
628
|
get lastPausedAt() { return this.autoPauseController.lastPausedAt; }
|
|
610
629
|
getPauseWakeState() { return this.pauseWakeState; }
|
|
611
630
|
/** Whether this instance is in a crash loop (3+ consecutive crashes). */
|
|
@@ -982,6 +1001,7 @@ export class Daemon extends EventEmitter {
|
|
|
982
1001
|
return;
|
|
983
1002
|
if (status.state === "alive") {
|
|
984
1003
|
this.mcpDeathNotifiedForPid = null; // the CLI respawned it — re-arm
|
|
1004
|
+
this.clearMcpRestartRequest(); // tools are back — stand down a pending auto-restart
|
|
985
1005
|
return;
|
|
986
1006
|
}
|
|
987
1007
|
// Dead: report once per pid, and at most once per cooldown window.
|
|
@@ -991,8 +1011,56 @@ export class Daemon extends EventEmitter {
|
|
|
991
1011
|
return;
|
|
992
1012
|
this.mcpDeathNotifiedForPid = status.pid;
|
|
993
1013
|
this.lastMcpDeathNotifiedAt = Date.now();
|
|
994
|
-
this.
|
|
995
|
-
this.
|
|
1014
|
+
const autoRestart = this.config.mcp_auto_restart !== false;
|
|
1015
|
+
this.logger.error({ pid: status.pid, autoRestart }, "MCP server process is gone — instance has no agend tools");
|
|
1016
|
+
this.emit("mcp_died", { name: this.name, pid: status.pid, autoRestart });
|
|
1017
|
+
if (autoRestart)
|
|
1018
|
+
this.armMcpRestartWhenIdle();
|
|
1019
|
+
}
|
|
1020
|
+
/**
|
|
1021
|
+
* Arm an automatic instance restart to revive a dead MCP server. Fires on the
|
|
1022
|
+
* next busy→idle edge — or immediately when the pane is already idle, which is
|
|
1023
|
+
* the common case for a collab/chat instance parked between messages (no edge
|
|
1024
|
+
* would ever come). A turn that outlives MCP_RESTART_MAX_WAIT_MS is
|
|
1025
|
+
* force-restarted: see that constant for why staying mute costs more.
|
|
1026
|
+
*/
|
|
1027
|
+
armMcpRestartWhenIdle() {
|
|
1028
|
+
if (this.mcpRestartPending)
|
|
1029
|
+
return;
|
|
1030
|
+
this.mcpRestartPending = true;
|
|
1031
|
+
this.mcpRestartStaleTimer = setTimeout(() => {
|
|
1032
|
+
this.mcpRestartStaleTimer = null;
|
|
1033
|
+
if (!this.mcpRestartPending || this.runtimeMonitorsFrozen)
|
|
1034
|
+
return;
|
|
1035
|
+
this.fireMcpRestartRequest("stale_timeout");
|
|
1036
|
+
}, Daemon.MCP_RESTART_MAX_WAIT_MS);
|
|
1037
|
+
this.mcpRestartStaleTimer.unref?.();
|
|
1038
|
+
if (this.instanceState === "idle" && this.pasteQueueDepth === 0) {
|
|
1039
|
+
this.fireMcpRestartRequest("already_idle");
|
|
1040
|
+
}
|
|
1041
|
+
}
|
|
1042
|
+
fireMcpRestartRequest(trigger) {
|
|
1043
|
+
// A recovery is already reshaping the CLI: crash-loop handling
|
|
1044
|
+
// (healthCheckPaused), a respawn in flight (spawning), or a pause
|
|
1045
|
+
// (isPaused / frozen monitors). Each of those paths ends in a fresh CLI —
|
|
1046
|
+
// and with it a fresh MCP server — or in supervision ending, where a
|
|
1047
|
+
// restart on top would fight the recovery. Either way the revival restart
|
|
1048
|
+
// is moot: cancel it rather than defer it.
|
|
1049
|
+
if (this.healthCheckPaused || this.spawning || this.isPaused || this.runtimeMonitorsFrozen) {
|
|
1050
|
+
this.logger.warn({ trigger }, "MCP revival restart cancelled — instance is already pausing/spawning/recovering");
|
|
1051
|
+
this.clearMcpRestartRequest();
|
|
1052
|
+
return;
|
|
1053
|
+
}
|
|
1054
|
+
this.clearMcpRestartRequest();
|
|
1055
|
+
this.logger.warn({ trigger }, "Requesting instance restart to revive its MCP server");
|
|
1056
|
+
this.emit("mcp_restart_requested", { name: this.name, trigger });
|
|
1057
|
+
}
|
|
1058
|
+
clearMcpRestartRequest() {
|
|
1059
|
+
this.mcpRestartPending = false;
|
|
1060
|
+
if (this.mcpRestartStaleTimer) {
|
|
1061
|
+
clearTimeout(this.mcpRestartStaleTimer);
|
|
1062
|
+
this.mcpRestartStaleTimer = null;
|
|
1063
|
+
}
|
|
996
1064
|
}
|
|
997
1065
|
startHealthCheck() {
|
|
998
1066
|
if (this.runtimeMonitorsFrozen || this.healthCheckTimer)
|
|
@@ -1811,6 +1879,12 @@ export class Daemon extends EventEmitter {
|
|
|
1811
1879
|
this.emit("auto_pause_requested", { name: this.name, idleSince: snapshot.stateChangedAt });
|
|
1812
1880
|
return;
|
|
1813
1881
|
}
|
|
1882
|
+
// A restart deferred by a dead MCP server: the turn it must not interrupt is
|
|
1883
|
+
// over. Skip auto-pause evaluation this tick — the restart supersedes it.
|
|
1884
|
+
if (this.mcpRestartPending && snapshot.state === "idle" && this.pasteQueueDepth === 0) {
|
|
1885
|
+
this.fireMcpRestartRequest("idle_edge");
|
|
1886
|
+
return;
|
|
1887
|
+
}
|
|
1814
1888
|
if (!this.pauseRequested && this.pasteQueueDepth === 0 && this.autoPauseController.observe(snapshot.state)) {
|
|
1815
1889
|
this.pauseRequested = true;
|
|
1816
1890
|
this.emit("auto_pause_requested", { name: this.name, idleSince: snapshot.stateChangedAt });
|
|
@@ -2023,6 +2097,10 @@ export class Daemon extends EventEmitter {
|
|
|
2023
2097
|
clearInterval(this.errorMonitorTimer);
|
|
2024
2098
|
this.errorMonitorTimer = null;
|
|
2025
2099
|
}
|
|
2100
|
+
// A pause or stop tears the CLI down anyway — the respawn brings a fresh MCP
|
|
2101
|
+
// server, so a deferred MCP-revival restart is moot (and its timer must not
|
|
2102
|
+
// fire into a stopped daemon).
|
|
2103
|
+
this.clearMcpRestartRequest();
|
|
2026
2104
|
this.interactivePromptDetector.reset();
|
|
2027
2105
|
this.stopInstanceStateMonitor();
|
|
2028
2106
|
this.transcriptMonitor?.stop();
|