sensorium-mcp 3.1.0-refactor.17 → 3.1.0-refactor.18
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/config/agent-settings.d.ts +0 -6
- package/dist/config/agent-settings.d.ts.map +1 -1
- package/dist/config/agent-settings.js +0 -22
- package/dist/config/agent-settings.js.map +1 -1
- package/dist/config/index.d.ts +0 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +0 -1
- package/dist/config/index.js.map +1 -1
- package/dist/dashboard/routes/copilot.d.ts.map +1 -1
- package/dist/dashboard/routes/copilot.js +1 -17
- package/dist/dashboard/routes/copilot.js.map +1 -1
- package/dist/dashboard/routes/threads-read.d.ts.map +1 -1
- package/dist/dashboard/routes/threads-read.js +2 -9
- package/dist/dashboard/routes/threads-read.js.map +1 -1
- package/dist/dashboard/routes/threads.js +3 -3
- package/dist/dashboard/routes/threads.js.map +1 -1
- package/dist/dashboard/routes.d.ts.map +1 -1
- package/dist/dashboard/routes.js +4 -11
- package/dist/dashboard/routes.js.map +1 -1
- package/dist/dashboard/spa.html +11 -11
- package/dist/index.js +13 -48
- package/dist/index.js.map +1 -1
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +2 -21
- package/dist/lib/logger.js.map +1 -1
- package/dist/server/factory.js +6 -16
- package/dist/server/factory.js.map +1 -1
- package/dist/server/http-server.d.ts.map +1 -1
- package/dist/server/http-server.js +7 -10
- package/dist/server/http-server.js.map +1 -1
- package/dist/services/agent-spawn.service.d.ts +3 -3
- package/dist/services/agent-spawn.service.d.ts.map +1 -1
- package/dist/services/agent-spawn.service.js +8 -14
- package/dist/services/agent-spawn.service.js.map +1 -1
- package/dist/services/background-runner.d.ts.map +1 -1
- package/dist/services/background-runner.js +12 -6
- package/dist/services/background-runner.js.map +1 -1
- package/dist/services/claude-spawn.service.d.ts +1 -1
- package/dist/services/claude-spawn.service.d.ts.map +1 -1
- package/dist/services/claude-spawn.service.js +25 -25
- package/dist/services/claude-spawn.service.js.map +1 -1
- package/dist/services/codex-spawn.service.d.ts +1 -1
- package/dist/services/codex-spawn.service.d.ts.map +1 -1
- package/dist/services/codex-spawn.service.js +24 -19
- package/dist/services/codex-spawn.service.js.map +1 -1
- package/dist/services/copilot-spawn.service.d.ts +1 -1
- package/dist/services/copilot-spawn.service.d.ts.map +1 -1
- package/dist/services/copilot-spawn.service.js +36 -45
- package/dist/services/copilot-spawn.service.js.map +1 -1
- package/dist/services/dispatcher/poller.d.ts.map +1 -1
- package/dist/services/dispatcher/poller.js +5 -24
- package/dist/services/dispatcher/poller.js.map +1 -1
- package/dist/services/flight-recorder.service.d.ts.map +1 -1
- package/dist/services/flight-recorder.service.js +2 -41
- package/dist/services/flight-recorder.service.js.map +1 -1
- package/dist/services/keeper.service.d.ts +0 -9
- package/dist/services/keeper.service.d.ts.map +1 -1
- package/dist/services/keeper.service.js +31 -147
- package/dist/services/keeper.service.js.map +1 -1
- package/dist/services/process.service.d.ts +62 -40
- package/dist/services/process.service.d.ts.map +1 -1
- package/dist/services/process.service.js +613 -118
- package/dist/services/process.service.js.map +1 -1
- package/dist/services/scheduler.d.ts +0 -1
- package/dist/services/scheduler.d.ts.map +1 -1
- package/dist/services/scheduler.js +11 -58
- package/dist/services/scheduler.js.map +1 -1
- package/dist/services/self-update.service.d.ts +3 -14
- package/dist/services/self-update.service.d.ts.map +1 -1
- package/dist/services/self-update.service.js +72 -141
- package/dist/services/self-update.service.js.map +1 -1
- package/dist/services/spawn-common.d.ts +23 -49
- package/dist/services/spawn-common.d.ts.map +1 -1
- package/dist/services/spawn-common.js +47 -262
- package/dist/services/spawn-common.js.map +1 -1
- package/dist/services/thread-health.service.d.ts +1 -1
- package/dist/services/thread-health.service.d.ts.map +1 -1
- package/dist/services/thread-health.service.js +6 -6
- package/dist/services/thread-health.service.js.map +1 -1
- package/dist/services/worker-cleanup.service.d.ts.map +1 -1
- package/dist/services/worker-cleanup.service.js +92 -9
- package/dist/services/worker-cleanup.service.js.map +1 -1
- package/dist/tools/defs/session-defs.js +1 -1
- package/dist/tools/defs/session-defs.js.map +1 -1
- package/dist/tools/defs/utility-defs.d.ts.map +1 -1
- package/dist/tools/defs/utility-defs.js +3 -4
- package/dist/tools/defs/utility-defs.js.map +1 -1
- package/dist/tools/delegate-tool.d.ts +1 -1
- package/dist/tools/delegate-tool.d.ts.map +1 -1
- package/dist/tools/delegate-tool.js +5 -5
- package/dist/tools/delegate-tool.js.map +1 -1
- package/dist/tools/session-tools.d.ts.map +1 -1
- package/dist/tools/session-tools.js +9 -26
- package/dist/tools/session-tools.js.map +1 -1
- package/dist/tools/utility-tools.js +1 -1
- package/dist/tools/utility-tools.js.map +1 -1
- package/package.json +1 -1
- package/dist/config/detail-grant.d.ts +0 -39
- package/dist/config/detail-grant.d.ts.map +0 -1
- package/dist/config/detail-grant.js +0 -61
- package/dist/config/detail-grant.js.map +0 -1
- package/dist/services/broker-client.d.ts +0 -181
- package/dist/services/broker-client.d.ts.map +0 -1
- package/dist/services/broker-client.js +0 -323
- package/dist/services/broker-client.js.map +0 -1
- package/dist/services/spawn-exit-watcher.d.ts +0 -32
- package/dist/services/spawn-exit-watcher.d.ts.map +0 -1
- package/dist/services/spawn-exit-watcher.js +0 -102
- package/dist/services/spawn-exit-watcher.js.map +0 -1
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* agent module stay focused on its own CLI invocation without duplicating the
|
|
9
9
|
* lifecycle plumbing.
|
|
10
10
|
*/
|
|
11
|
+
import { type ChildProcess, type SpawnOptions } from "node:child_process";
|
|
11
12
|
import { type ThreadLifecycleService } from "./thread-lifecycle.service.js";
|
|
12
13
|
import type { SensoriumTransport } from "./mcp-config.service.js";
|
|
13
14
|
/** Result shape shared by every spawn function. */
|
|
@@ -27,8 +28,6 @@ export declare const sanitizeSpawnEnv: (extra?: Record<string, string | undefine
|
|
|
27
28
|
* separately and are unaffected.
|
|
28
29
|
*/
|
|
29
30
|
export declare const stripDenylistedEnvVars: (vars: Record<string, string>) => Record<string, string>;
|
|
30
|
-
/** Test hook: clear the CLI resolution cache. */
|
|
31
|
-
export declare function resetCliPathCacheForTest(): void;
|
|
32
31
|
export declare const resolveCliPath: (name: string, prefer?: RegExp) => string | null;
|
|
33
32
|
/** On Windows: prefer .exe, fall back to .cmd, refuse extensionless shims (e.g. Volta). */
|
|
34
33
|
export declare function resolveWindowsCliPath(name: string): string | null;
|
|
@@ -52,12 +51,14 @@ export declare function buildThreadLogPath(name: string, threadId: number, ext:
|
|
|
52
51
|
* delivers its own autonomous-loop prompt over stdin instead). */
|
|
53
52
|
export declare const buildSessionPrompt: (name: string, threadId: number) => string;
|
|
54
53
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
54
|
+
* Spawn options shared by every agent child: detached from this (ephemeral)
|
|
55
|
+
* server process, stdout/stderr on the child-owned log fd, and .cmd/.bat
|
|
56
|
+
* launched through a shell on Windows. `stdin` defaults to "ignore"; Codex
|
|
57
|
+
* passes "pipe" because it delivers its prompt over stdin.
|
|
59
58
|
*/
|
|
60
|
-
export
|
|
59
|
+
export declare function detachedChildOptions(cliPath: string, outFd: number, env: NodeJS.ProcessEnv, cwd: string | undefined, stdin?: "ignore" | "pipe"): SpawnOptions;
|
|
60
|
+
interface RegisterSpawnOpts {
|
|
61
|
+
child: ChildProcess;
|
|
61
62
|
threadId: number;
|
|
62
63
|
name: string;
|
|
63
64
|
logFilePath: string;
|
|
@@ -65,50 +66,23 @@ export interface AgentLaunchPlan {
|
|
|
65
66
|
agentLabel: string;
|
|
66
67
|
memorySourceThreadId?: number;
|
|
67
68
|
threadType?: "worker" | "branch";
|
|
68
|
-
exe: string;
|
|
69
|
-
args: string[];
|
|
70
|
-
env: NodeJS.ProcessEnv;
|
|
71
|
-
cwd?: string;
|
|
72
|
-
/** Prompt-sized payload written to the child's stdin then EOF'd (Codex);
|
|
73
|
-
* undefined → stdin ignored/NUL. */
|
|
74
|
-
stdinData?: string;
|
|
75
69
|
}
|
|
76
|
-
export type BrokerSpawnMode = "required" | "auto" | "off";
|
|
77
70
|
/**
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
* SENSORIUM_BROKER_SPAWN=0 legacy local spawning only;
|
|
82
|
-
* unset auto — broker first, and if it is unreachable or
|
|
83
|
-
* predates /proc/spawn, WARN and spawn locally so
|
|
84
|
-
* an MCP update cannot strand agents behind an
|
|
85
|
-
* old supervisor binary. Locally-spawned processes
|
|
86
|
-
* are adopted into jobs+registry by the
|
|
87
|
-
* supervisor's boot reconciliation / /proc/adopt.
|
|
88
|
-
* Job objects are Windows-only, so non-Windows resolves to "off" unless forced.
|
|
89
|
-
*/
|
|
90
|
-
export declare function brokerSpawnMode(): BrokerSpawnMode;
|
|
91
|
-
export declare function spawnReconcileDelayForTest(ms: number | null): void;
|
|
92
|
-
/**
|
|
93
|
-
* Launch an agent process for a thread. Broker path first (the supervisor owns
|
|
94
|
-
* spawn/observe/kill; children land in the thread's job object so the whole
|
|
95
|
-
* tree stays killable), legacy local path per the cutover flag above.
|
|
96
|
-
*
|
|
97
|
-
* Duplicate-agent guarantee: the legacy local fallback runs ONLY on definitive
|
|
98
|
-
* evidence that the broker created nothing — a spawn error answer, an absent
|
|
99
|
-
* endpoint (404/401), or a connection that was never established. An uncertain
|
|
100
|
-
* outcome (timeout, dropped connection) goes through reconcileUncertainSpawn
|
|
101
|
-
* instead, so no timeout value can ever yield two agents for one thread.
|
|
71
|
+
* Shared tail of every agent spawn: open the log fd, run the agent-specific
|
|
72
|
+
* spawn callback, register the child for lifecycle bookkeeping, and translate
|
|
73
|
+
* any exception into an error result.
|
|
102
74
|
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
* supervisor opening the file handle (spawn-to-file-fd, plan §6 "keep").
|
|
75
|
+
* stdout/stderr go to a file descriptor the CHILD owns, not a pipe drained by
|
|
76
|
+
* this (ephemeral) server process. A pipe's only reader is this node process;
|
|
77
|
+
* when it dies on a self-update/restart the orphaned, detached child keeps
|
|
78
|
+
* writing, the ~64KB OS pipe buffer fills, and the next write() blocks the
|
|
79
|
+
* child's event loop forever — killing MCP polling, the API stream and any
|
|
80
|
+
* reconnect (the exact zombie we saw on thread 20869). A file fd is duplicated
|
|
81
|
+
* into the child at spawn and drained by the OS, so it survives our restarts.
|
|
82
|
+
* (64KB blocking is a PIPE phenomenon, not a file.)
|
|
112
83
|
*/
|
|
113
|
-
export declare function
|
|
84
|
+
export declare function launchAgentChild(opts: Omit<RegisterSpawnOpts, "child"> & {
|
|
85
|
+
spawnChild: (outFd: number) => ChildProcess;
|
|
86
|
+
}, threadLifecycle: ThreadLifecycleService): SpawnResult;
|
|
87
|
+
export {};
|
|
114
88
|
//# sourceMappingURL=spawn-common.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-common.d.ts","sourceRoot":"","sources":["../../src/services/spawn-common.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"spawn-common.d.ts","sourceRoot":"","sources":["../../src/services/spawn-common.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAa,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA8BrF,OAAO,EAAe,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AA6BlE,mDAAmD;AACnD,MAAM,MAAM,WAAW,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAwB/E,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KAAG,MAAM,CAAC,UAKpF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAI1F,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,KAAG,MAAM,GAAG,IAsBvE,CAAC;AAEF,2FAA2F;AAC3F,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAwBjE;AASD,eAAO,MAAM,yBAAyB,GAAI,mBAAmB,MAAM,KAAG,MAAM,GAAG,SAK9E,CAAC;AAOF,eAAO,MAAM,0BAA0B,QAAO,OAAmC,CAAC;AAClF,eAAO,MAAM,2BAA2B,GAAI,GAAG,OAAO,KAAG,IAExD,CAAC;AAQF;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,GACjB;IAAE,SAAS,EAAE,kBAAkB,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAYvD;AAED,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAMhG;AAED;kEACkE;AAClE,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,EAAE,UAAU,MAAM,KAAG,MACkD,CAAC;AAEvH;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,KAAK,GAAE,QAAQ,GAAG,MAAiB,GAClC,YAAY,CASd;AAID,UAAU,iBAAiB;IACzB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAClC;AAoOD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG;IAAE,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,YAAY,CAAA;CAAE,EACxF,eAAe,EAAE,sBAAsB,GACtC,WAAW,CAmBb"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* agent module stay focused on its own CLI invocation without duplicating the
|
|
9
9
|
* lifecycle plumbing.
|
|
10
10
|
*/
|
|
11
|
-
import {
|
|
11
|
+
import { spawnSync } from "node:child_process";
|
|
12
12
|
import { closeSync, existsSync, fstatSync, openSync, readSync, unlinkSync, writeFileSync, readFileSync, } from "node:fs";
|
|
13
13
|
import { tmpdir } from "node:os";
|
|
14
14
|
import { join } from "node:path";
|
|
@@ -21,8 +21,6 @@ import { errorMessage } from "../lib/utils.js";
|
|
|
21
21
|
import { deleteTelegramTopicByBotApi } from "./topic.service.js";
|
|
22
22
|
import { PROCESS_PIDS_DIR, PENDING_TASKS_DIR, THREAD_LOGS_DIR, spawnedThreads, wasTaskConsumed, clearTaskConsumed, } from "./process.service.js";
|
|
23
23
|
import { ThreadState } from "./thread-lifecycle.service.js";
|
|
24
|
-
import { brokerSpawn, brokerListThread } from "./broker-client.js";
|
|
25
|
-
import { watchBrokerSpawnExit } from "./spawn-exit-watcher.js";
|
|
26
24
|
import { decommissionWorker, clearWorkerGrace } from "./worker-cleanup.service.js";
|
|
27
25
|
import { writeThreadHeartbeatSync, clearThreadHeartbeat } from "../data/file-storage.js";
|
|
28
26
|
// ── Worker respawn (failed MCP-handshake recovery) ──────────────────────────
|
|
@@ -94,79 +92,54 @@ export const stripDenylistedEnvVars = (vars) => {
|
|
|
94
92
|
out[k] = v;
|
|
95
93
|
return out;
|
|
96
94
|
};
|
|
97
|
-
// CLI paths are resolved through a synchronous `where`/`which` child — the one
|
|
98
|
-
// remaining shell-out on the spawn path, and a sync child can block the event
|
|
99
|
-
// loop for its full 5s timeout under AV/EDR pressure. Installed CLI locations
|
|
100
|
-
// do not move during a server's lifetime, so resolve each name ONCE and serve
|
|
101
|
-
// every later spawn from this cache (null results are cached too: a missing CLI
|
|
102
|
-
// stays missing until a restart, and hammering `where` for it each spawn is the
|
|
103
|
-
// exact stall this avoids). The env override is read fresh on every call.
|
|
104
|
-
const cliPathCache = new Map();
|
|
105
|
-
/** Test hook: clear the CLI resolution cache. */
|
|
106
|
-
export function resetCliPathCacheForTest() {
|
|
107
|
-
cliPathCache.clear();
|
|
108
|
-
}
|
|
109
95
|
export const resolveCliPath = (name, prefer) => {
|
|
110
96
|
const envCmd = process.env[`${name.toUpperCase()}_CLI_CMD`];
|
|
111
97
|
if (envCmd)
|
|
112
98
|
return envCmd;
|
|
113
|
-
const cacheKey = `posix:${name}:${prefer?.source ?? ""}`;
|
|
114
|
-
if (cliPathCache.has(cacheKey))
|
|
115
|
-
return cliPathCache.get(cacheKey);
|
|
116
|
-
let resolved = null;
|
|
117
99
|
try {
|
|
118
100
|
const result = spawnSync(process.platform === "win32" ? "where" : "which", [name], {
|
|
119
101
|
timeout: 5000,
|
|
120
102
|
encoding: "utf-8",
|
|
121
103
|
windowsHide: true,
|
|
122
104
|
});
|
|
123
|
-
if (result.status
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
105
|
+
if (result.status !== 0 || !result.stdout)
|
|
106
|
+
return null;
|
|
107
|
+
const candidates = result.stdout
|
|
108
|
+
.trim()
|
|
109
|
+
.split(/\r?\n/)
|
|
110
|
+
.map((s) => s.trim())
|
|
111
|
+
.filter(Boolean);
|
|
112
|
+
return prefer ? (candidates.find((p) => prefer.test(p)) ?? candidates[0]) : candidates[0];
|
|
131
113
|
}
|
|
132
114
|
catch (err) {
|
|
133
115
|
log.debug(`[spawn] CLI resolution for ${name} failed: ${err instanceof Error ? err.message : err}`);
|
|
116
|
+
return null;
|
|
134
117
|
}
|
|
135
|
-
cliPathCache.set(cacheKey, resolved ?? null);
|
|
136
|
-
return resolved ?? null;
|
|
137
118
|
};
|
|
138
119
|
/** On Windows: prefer .exe, fall back to .cmd, refuse extensionless shims (e.g. Volta). */
|
|
139
120
|
export function resolveWindowsCliPath(name) {
|
|
140
121
|
const envCmd = process.env[`${name.toUpperCase()}_CLI_CMD`];
|
|
141
122
|
if (envCmd)
|
|
142
123
|
return envCmd;
|
|
143
|
-
const cacheKey = `win:${name}`;
|
|
144
|
-
if (cliPathCache.has(cacheKey))
|
|
145
|
-
return cliPathCache.get(cacheKey);
|
|
146
|
-
let resolved = null;
|
|
147
124
|
try {
|
|
148
125
|
const result = spawnSync("where", [name], {
|
|
149
126
|
timeout: 5000,
|
|
150
127
|
encoding: "utf-8",
|
|
151
128
|
windowsHide: true,
|
|
152
129
|
});
|
|
153
|
-
if (result.status
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
candidates.find((p) => /\.cmd$/i.test(p)) ??
|
|
162
|
-
null;
|
|
163
|
-
}
|
|
130
|
+
if (result.status !== 0 || !result.stdout)
|
|
131
|
+
return null;
|
|
132
|
+
const candidates = result.stdout
|
|
133
|
+
.trim()
|
|
134
|
+
.split(/\r?\n/)
|
|
135
|
+
.map((s) => s.trim())
|
|
136
|
+
.filter(Boolean);
|
|
137
|
+
return (candidates.find((p) => /\.exe$/i.test(p)) ?? candidates.find((p) => /\.cmd$/i.test(p)) ?? null);
|
|
164
138
|
}
|
|
165
139
|
catch (err) {
|
|
166
140
|
log.debug(`[spawn] Windows CLI resolution for ${name} failed: ${err instanceof Error ? err.message : err}`);
|
|
141
|
+
return null;
|
|
167
142
|
}
|
|
168
|
-
cliPathCache.set(cacheKey, resolved);
|
|
169
|
-
return resolved;
|
|
170
143
|
}
|
|
171
144
|
/** Parse MCP transport from env. Returns null if port is not set or invalid. */
|
|
172
145
|
function parseSensoriumTransport() {
|
|
@@ -191,10 +164,9 @@ export const setStartupCleanupInProgress = (v) => {
|
|
|
191
164
|
};
|
|
192
165
|
// ── Shared spawn choreography ───────────────────────────────────────────────
|
|
193
166
|
// The pieces every agent spawn goes through in the same order: preflight
|
|
194
|
-
// checks, log-path construction, common spawn options, and the
|
|
195
|
-
// tail (
|
|
196
|
-
//
|
|
197
|
-
// prompt delivery.
|
|
167
|
+
// checks, log-path construction, common spawn options, and the fd/register
|
|
168
|
+
// tail (launchAgentChild below). Agent modules keep only their own CLI
|
|
169
|
+
// quirks: env building, argument lists and prompt delivery.
|
|
198
170
|
/**
|
|
199
171
|
* Shared spawn preflight: refuse when the dashboard's max-concurrent-threads
|
|
200
172
|
* limit is already reached, then require the MCP HTTP transport. Kept here so
|
|
@@ -228,7 +200,7 @@ export const buildSessionPrompt = (name, threadId) => `Start remote session with
|
|
|
228
200
|
* launched through a shell on Windows. `stdin` defaults to "ignore"; Codex
|
|
229
201
|
* passes "pipe" because it delivers its prompt over stdin.
|
|
230
202
|
*/
|
|
231
|
-
function detachedChildOptions(cliPath, outFd, env, cwd, stdin = "ignore") {
|
|
203
|
+
export function detachedChildOptions(cliPath, outFd, env, cwd, stdin = "ignore") {
|
|
232
204
|
return {
|
|
233
205
|
stdio: [stdin, outFd, outFd],
|
|
234
206
|
shell: process.platform === "win32" && /\.(cmd|bat)$/i.test(cliPath),
|
|
@@ -295,7 +267,7 @@ async function handleProcessExit(code, threadId, pid, pidFilePath, entry, proces
|
|
|
295
267
|
const reg = getThread(db, threadId);
|
|
296
268
|
const agentType = (reg?.client ?? getAgentType());
|
|
297
269
|
const { dispatchSpawn } = await import("./agent-spawn.service.js");
|
|
298
|
-
const res =
|
|
270
|
+
const res = dispatchSpawn(agentType, entry.name, threadId, threadLifecycle, reg?.workingDirectory ?? undefined, entry.memorySourceThreadId ?? reg?.rootThreadId ?? undefined, "worker", db);
|
|
299
271
|
if ("pid" in res) {
|
|
300
272
|
log.info(`[respawn] worker thread ${threadId} relaunched as PID=${res.pid}`);
|
|
301
273
|
return; // task file preserved for the new process — skip decommission
|
|
@@ -376,7 +348,7 @@ async function handleProcessExit(code, threadId, pid, pidFilePath, entry, proces
|
|
|
376
348
|
}
|
|
377
349
|
}
|
|
378
350
|
function registerSpawnedProcess(opts, threadLifecycle) {
|
|
379
|
-
const pid = opts.pid;
|
|
351
|
+
const pid = opts.child.pid;
|
|
380
352
|
if (pid === undefined)
|
|
381
353
|
return {
|
|
382
354
|
error: `${opts.agentLabel} process spawned but PID is undefined - spawn may have failed.`,
|
|
@@ -387,8 +359,7 @@ function registerSpawnedProcess(opts, threadLifecycle) {
|
|
|
387
359
|
pid,
|
|
388
360
|
name: opts.name,
|
|
389
361
|
configPath: opts.configPath,
|
|
390
|
-
startedAt:
|
|
391
|
-
...(opts.startTimeTicks ? { startTimeTicks: opts.startTimeTicks } : {}),
|
|
362
|
+
startedAt: Date.now(),
|
|
392
363
|
...(opts.threadType ? { threadType: opts.threadType } : {}),
|
|
393
364
|
}), "utf-8");
|
|
394
365
|
}
|
|
@@ -401,7 +372,7 @@ function registerSpawnedProcess(opts, threadLifecycle) {
|
|
|
401
372
|
pid,
|
|
402
373
|
threadId: opts.threadId,
|
|
403
374
|
name: opts.name,
|
|
404
|
-
startedAt:
|
|
375
|
+
startedAt: Date.now(),
|
|
405
376
|
createdAt: Date.now(),
|
|
406
377
|
logFile: opts.logFilePath,
|
|
407
378
|
...(opts.memorySourceThreadId !== undefined
|
|
@@ -410,205 +381,33 @@ function registerSpawnedProcess(opts, threadLifecycle) {
|
|
|
410
381
|
...(opts.threadType ? { threadType: opts.threadType } : {}),
|
|
411
382
|
};
|
|
412
383
|
spawnedThreads.push(entry);
|
|
413
|
-
opts.
|
|
384
|
+
opts.child.on("exit", (code) => {
|
|
414
385
|
handleProcessExit(code, opts.threadId, pid, pidFilePath, entry, opts.agentLabel, threadLifecycle).catch((err) => log.warn(`[exit] cleanup failed: ${err}`));
|
|
415
386
|
});
|
|
416
|
-
opts.unref
|
|
417
|
-
log.info(`[start_thread] Spawned ${opts.agentLabel} process PID=${pid} for thread ${opts.threadId} ("${opts.name}")
|
|
387
|
+
opts.child.unref();
|
|
388
|
+
log.info(`[start_thread] Spawned ${opts.agentLabel} process PID=${pid} for thread ${opts.threadId} ("${opts.name}")`);
|
|
418
389
|
return { pid, logFile: opts.logFilePath };
|
|
419
390
|
}
|
|
420
391
|
/**
|
|
421
|
-
*
|
|
422
|
-
*
|
|
423
|
-
*
|
|
424
|
-
* SENSORIUM_BROKER_SPAWN=0 legacy local spawning only;
|
|
425
|
-
* unset auto — broker first, and if it is unreachable or
|
|
426
|
-
* predates /proc/spawn, WARN and spawn locally so
|
|
427
|
-
* an MCP update cannot strand agents behind an
|
|
428
|
-
* old supervisor binary. Locally-spawned processes
|
|
429
|
-
* are adopted into jobs+registry by the
|
|
430
|
-
* supervisor's boot reconciliation / /proc/adopt.
|
|
431
|
-
* Job objects are Windows-only, so non-Windows resolves to "off" unless forced.
|
|
432
|
-
*/
|
|
433
|
-
export function brokerSpawnMode() {
|
|
434
|
-
const raw = (process.env.SENSORIUM_BROKER_SPAWN ?? "").trim().toLowerCase();
|
|
435
|
-
if (["1", "true", "on", "required"].includes(raw))
|
|
436
|
-
return "required";
|
|
437
|
-
if (["0", "false", "off"].includes(raw))
|
|
438
|
-
return "off";
|
|
439
|
-
return process.platform === "win32" ? "auto" : "off";
|
|
440
|
-
}
|
|
441
|
-
const envToStringRecord = (env) => {
|
|
442
|
-
const out = {};
|
|
443
|
-
for (const [k, v] of Object.entries(env))
|
|
444
|
-
if (v !== undefined)
|
|
445
|
-
out[k] = v;
|
|
446
|
-
return out;
|
|
447
|
-
};
|
|
448
|
-
/** Register a broker-owned process (fresh spawn, idempotent hit, or a reconcile
|
|
449
|
-
* adoption): PID file, spawnedThreads[], and the polling exit watcher. */
|
|
450
|
-
function registerBrokerOwnedProcess(plan, proc, threadLifecycle) {
|
|
451
|
-
return registerSpawnedProcess({
|
|
452
|
-
pid: proc.pid,
|
|
453
|
-
startedAt: proc.startTimeMs,
|
|
454
|
-
startTimeTicks: proc.startTimeTicks || undefined,
|
|
455
|
-
spawnedVia: "broker",
|
|
456
|
-
attachExit: (onExit) => watchBrokerSpawnExit({
|
|
457
|
-
pid: proc.pid,
|
|
458
|
-
threadId: plan.threadId,
|
|
459
|
-
startedAtMs: proc.startTimeMs,
|
|
460
|
-
startTimeTicks: proc.startTimeTicks || undefined,
|
|
461
|
-
onExit,
|
|
462
|
-
}),
|
|
463
|
-
threadId: plan.threadId,
|
|
464
|
-
name: plan.name,
|
|
465
|
-
logFilePath: plan.logFilePath,
|
|
466
|
-
configPath: plan.configPath,
|
|
467
|
-
agentLabel: plan.agentLabel,
|
|
468
|
-
memorySourceThreadId: plan.memorySourceThreadId,
|
|
469
|
-
threadType: plan.threadType,
|
|
470
|
-
}, threadLifecycle);
|
|
471
|
-
}
|
|
472
|
-
// Reconcile pacing after an UNCERTAIN spawn outcome. The delay matches the
|
|
473
|
-
// broker client's unreachable cooldown so each attempt gets a fresh probe
|
|
474
|
-
// rather than a cached failure. Three rounds bound the worst case (wedged-but-
|
|
475
|
-
// accepting supervisor) to ~2 min; a still-unverifiable spawn then fails LOUDLY
|
|
476
|
-
// and the keeper retries later — safely, because spawn is idempotent.
|
|
477
|
-
const SPAWN_RECONCILE_ATTEMPTS = 3;
|
|
478
|
-
const SPAWN_RECONCILE_DELAY_MS = 5000;
|
|
479
|
-
/** Test hook: shrink the reconcile pacing. Null restores the default. */
|
|
480
|
-
let reconcileDelayOverride = null;
|
|
481
|
-
export function spawnReconcileDelayForTest(ms) {
|
|
482
|
-
reconcileDelayOverride = ms;
|
|
483
|
-
}
|
|
484
|
-
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
485
|
-
/**
|
|
486
|
-
* The reconcile contract for an uncertain broker spawn (timeout / connection
|
|
487
|
-
* lost mid-flight): the request MAY have created a process, so a blind local
|
|
488
|
-
* spawn is forbidden — no timeout value may ever produce two agents for one
|
|
489
|
-
* thread. Instead:
|
|
490
|
-
* 1. Ask the broker registry (/proc/list) — a live process there IS the
|
|
491
|
-
* thread's agent: adopt it.
|
|
492
|
-
* 2. Otherwise retry the spawn — idempotent by threadId server-side, so the
|
|
493
|
-
* retry either creates the one process or returns the one that exists.
|
|
494
|
-
* 3. Still unverifiable after the attempts → fail loudly. NEVER local-spawn:
|
|
495
|
-
* the keeper's next cycle retries against the same idempotent contract.
|
|
496
|
-
*/
|
|
497
|
-
async function reconcileUncertainSpawn(plan, spec, threadLifecycle, firstDetail) {
|
|
498
|
-
log.warn(`[spawn] broker spawn outcome UNCERTAIN for ${plan.agentLabel} thread ${plan.threadId} (${firstDetail}) — reconciling against the broker registry; a blind local spawn is forbidden here`);
|
|
499
|
-
for (let attempt = 1; attempt <= SPAWN_RECONCILE_ATTEMPTS; attempt++) {
|
|
500
|
-
const list = await brokerListThread(plan.threadId);
|
|
501
|
-
if (list && list.processes.length > 0) {
|
|
502
|
-
const root = list.processes[0];
|
|
503
|
-
if (root.startTimeTicks || root.startTimeMs) {
|
|
504
|
-
log.warn(`[spawn] reconcile attempt ${attempt}: broker has live pid ${root.pid} for thread ${plan.threadId} — adopting it as the agent (the uncertain spawn DID land)`);
|
|
505
|
-
return registerBrokerOwnedProcess(plan, { pid: root.pid, startTimeTicks: root.startTimeTicks, startTimeMs: root.startTimeMs }, threadLifecycle);
|
|
506
|
-
}
|
|
507
|
-
// Entry without identity: the pid vanished between the broker's job read
|
|
508
|
-
// and its snapshot — likely mid-death. Let the next attempt see clearly.
|
|
509
|
-
}
|
|
510
|
-
else {
|
|
511
|
-
// Broker unreachable OR answered "no live process". Either way the spawn
|
|
512
|
-
// retry is safe: idempotent server-side, it can never create a second
|
|
513
|
-
// process — and if the first request is still in flight it serializes on
|
|
514
|
-
// the broker's per-thread lock and returns that process.
|
|
515
|
-
const retry = await brokerSpawn(spec);
|
|
516
|
-
if ("pid" in retry) {
|
|
517
|
-
if (retry.existing)
|
|
518
|
-
log.warn(`[spawn] reconcile attempt ${attempt}: idempotent spawn returned the EXISTING live pid ${retry.pid} for thread ${plan.threadId} — adopted, no duplicate created`);
|
|
519
|
-
return registerBrokerOwnedProcess(plan, retry, threadLifecycle);
|
|
520
|
-
}
|
|
521
|
-
if ("error" in retry) {
|
|
522
|
-
// Definitive: the broker checked (no live process) and CreateProcess
|
|
523
|
-
// failed. Nothing is running for this thread.
|
|
524
|
-
return {
|
|
525
|
-
error: `Broker spawn failed for ${plan.agentLabel} thread ${plan.threadId}: ${retry.error}`,
|
|
526
|
-
};
|
|
527
|
-
}
|
|
528
|
-
// unavailable/uncertain → the broker may have died AFTER creating the
|
|
529
|
-
// process (it survives — the job handle is pinned into the child). Keep
|
|
530
|
-
// reconciling; never blind-spawn.
|
|
531
|
-
}
|
|
532
|
-
if (attempt < SPAWN_RECONCILE_ATTEMPTS)
|
|
533
|
-
await sleep(reconcileDelayOverride ?? SPAWN_RECONCILE_DELAY_MS);
|
|
534
|
-
}
|
|
535
|
-
return {
|
|
536
|
-
error: `Broker spawn for ${plan.agentLabel} thread ${plan.threadId} remained unverifiable after ` +
|
|
537
|
-
`${SPAWN_RECONCILE_ATTEMPTS} reconcile attempts — refusing a blind local spawn (a broker-side ` +
|
|
538
|
-
`process may exist). The next spawn attempt reconciles again safely.`,
|
|
539
|
-
};
|
|
540
|
-
}
|
|
541
|
-
/**
|
|
542
|
-
* Launch an agent process for a thread. Broker path first (the supervisor owns
|
|
543
|
-
* spawn/observe/kill; children land in the thread's job object so the whole
|
|
544
|
-
* tree stays killable), legacy local path per the cutover flag above.
|
|
545
|
-
*
|
|
546
|
-
* Duplicate-agent guarantee: the legacy local fallback runs ONLY on definitive
|
|
547
|
-
* evidence that the broker created nothing — a spawn error answer, an absent
|
|
548
|
-
* endpoint (404/401), or a connection that was never established. An uncertain
|
|
549
|
-
* outcome (timeout, dropped connection) goes through reconcileUncertainSpawn
|
|
550
|
-
* instead, so no timeout value can ever yield two agents for one thread.
|
|
392
|
+
* Shared tail of every agent spawn: open the log fd, run the agent-specific
|
|
393
|
+
* spawn callback, register the child for lifecycle bookkeeping, and translate
|
|
394
|
+
* any exception into an error result.
|
|
551
395
|
*
|
|
552
|
-
*
|
|
553
|
-
*
|
|
554
|
-
*
|
|
555
|
-
*
|
|
556
|
-
*
|
|
557
|
-
*
|
|
558
|
-
*
|
|
559
|
-
*
|
|
560
|
-
* supervisor opening the file handle (spawn-to-file-fd, plan §6 "keep").
|
|
396
|
+
* stdout/stderr go to a file descriptor the CHILD owns, not a pipe drained by
|
|
397
|
+
* this (ephemeral) server process. A pipe's only reader is this node process;
|
|
398
|
+
* when it dies on a self-update/restart the orphaned, detached child keeps
|
|
399
|
+
* writing, the ~64KB OS pipe buffer fills, and the next write() blocks the
|
|
400
|
+
* child's event loop forever — killing MCP polling, the API stream and any
|
|
401
|
+
* reconnect (the exact zombie we saw on thread 20869). A file fd is duplicated
|
|
402
|
+
* into the child at spawn and drained by the OS, so it survives our restarts.
|
|
403
|
+
* (64KB blocking is a PIPE phenomenon, not a file.)
|
|
561
404
|
*/
|
|
562
|
-
export
|
|
563
|
-
const mode = brokerSpawnMode();
|
|
564
|
-
if (mode !== "off") {
|
|
565
|
-
const role = plan.threadType ?? "agent";
|
|
566
|
-
const spec = {
|
|
567
|
-
threadId: plan.threadId,
|
|
568
|
-
role,
|
|
569
|
-
exe: plan.exe,
|
|
570
|
-
args: plan.args,
|
|
571
|
-
env: envToStringRecord(plan.env),
|
|
572
|
-
cwd: plan.cwd,
|
|
573
|
-
logFilePath: plan.logFilePath,
|
|
574
|
-
stdinData: plan.stdinData,
|
|
575
|
-
};
|
|
576
|
-
const spawned = await brokerSpawn(spec);
|
|
577
|
-
if ("pid" in spawned) {
|
|
578
|
-
if (spawned.existing)
|
|
579
|
-
log.warn(`[spawn] broker returned the EXISTING live pid ${spawned.pid} for thread ${plan.threadId} (idempotent hit) — adopting it instead of double-spawning`);
|
|
580
|
-
return registerBrokerOwnedProcess(plan, spawned, threadLifecycle);
|
|
581
|
-
}
|
|
582
|
-
if ("uncertain" in spawned)
|
|
583
|
-
return reconcileUncertainSpawn(plan, spec, threadLifecycle, spawned.uncertain);
|
|
584
|
-
// A failed spawn must NEVER look like success (hard criterion 5): both
|
|
585
|
-
// remaining outcomes are loud and DEFINITIVE (no process was created);
|
|
586
|
-
// they differ only in whether a legacy local spawn is allowed to take over.
|
|
587
|
-
const detail = "error" in spawned ? spawned.error : spawned.unavailable;
|
|
588
|
-
if (mode === "required") {
|
|
589
|
-
log.error(`[spawn] BROKER spawn FAILED for ${plan.agentLabel} thread ${plan.threadId}: ${detail} — SENSORIUM_BROKER_SPAWN=1 forbids the local fallback; spawn failed`);
|
|
590
|
-
return { error: `Broker spawn failed for ${plan.agentLabel} thread ${plan.threadId}: ${detail}` };
|
|
591
|
-
}
|
|
592
|
-
log.warn(`[spawn] broker spawn unavailable for ${plan.agentLabel} thread ${plan.threadId} (${detail}) — falling back to LOCAL spawn; the process runs outside job containment until the supervisor's boot reconciliation adopts it`);
|
|
593
|
-
}
|
|
594
|
-
return launchLocalChild(plan, threadLifecycle);
|
|
595
|
-
}
|
|
596
|
-
/** Legacy local spawn — the pre-Phase-3 mechanics, kept verbatim behind the flag. */
|
|
597
|
-
function launchLocalChild(plan, threadLifecycle) {
|
|
405
|
+
export function launchAgentChild(opts, threadLifecycle) {
|
|
598
406
|
try {
|
|
599
|
-
const outFd = openSync(
|
|
600
|
-
let child;
|
|
407
|
+
const outFd = openSync(opts.logFilePath, "a");
|
|
601
408
|
try {
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
try {
|
|
605
|
-
child.stdin?.write(plan.stdinData);
|
|
606
|
-
child.stdin?.end();
|
|
607
|
-
}
|
|
608
|
-
catch {
|
|
609
|
-
/* child died at spawn — the exit handler reports it */
|
|
610
|
-
}
|
|
611
|
-
}
|
|
409
|
+
const { spawnChild, ...reg } = opts;
|
|
410
|
+
return registerSpawnedProcess({ ...reg, child: spawnChild(outFd) }, threadLifecycle);
|
|
612
411
|
}
|
|
613
412
|
finally {
|
|
614
413
|
// Parent no longer needs the fd — the child holds its own duplicated handle.
|
|
@@ -616,26 +415,12 @@ function launchLocalChild(plan, threadLifecycle) {
|
|
|
616
415
|
closeSync(outFd);
|
|
617
416
|
}
|
|
618
417
|
catch (err) {
|
|
619
|
-
log.debug(`[spawn] closeSync log fd failed for thread ${
|
|
418
|
+
log.debug(`[spawn] closeSync log fd failed for thread ${opts.threadId}: ${errorMessage(err)}`);
|
|
620
419
|
}
|
|
621
420
|
}
|
|
622
|
-
return registerSpawnedProcess({
|
|
623
|
-
pid: child.pid,
|
|
624
|
-
startedAt: Date.now(),
|
|
625
|
-
spawnedVia: "local",
|
|
626
|
-
attachExit: (onExit) => child.on("exit", (code) => onExit(code)),
|
|
627
|
-
unref: () => child.unref(),
|
|
628
|
-
threadId: plan.threadId,
|
|
629
|
-
name: plan.name,
|
|
630
|
-
logFilePath: plan.logFilePath,
|
|
631
|
-
configPath: plan.configPath,
|
|
632
|
-
agentLabel: plan.agentLabel,
|
|
633
|
-
memorySourceThreadId: plan.memorySourceThreadId,
|
|
634
|
-
threadType: plan.threadType,
|
|
635
|
-
}, threadLifecycle);
|
|
636
421
|
}
|
|
637
422
|
catch (err) {
|
|
638
|
-
return { error: `Failed to spawn ${
|
|
423
|
+
return { error: `Failed to spawn ${opts.agentLabel} process: ${errorMessage(err)}` };
|
|
639
424
|
}
|
|
640
425
|
}
|
|
641
426
|
//# sourceMappingURL=spawn-common.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-common.js","sourceRoot":"","sources":["../../src/services/spawn-common.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spawn-common.js","sourceRoot":"","sources":["../../src/services/spawn-common.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,6 @@ export interface ThreadsHealthOptions {
|
|
|
32
32
|
* Hidden threads are still counted in a roll-up line, so nothing is silently
|
|
33
33
|
* dropped; pass `status: "all"` or `includeDead: true` to see them.
|
|
34
34
|
*/
|
|
35
|
-
export declare function getThreadsHealth(getMemoryDb: () => ReturnType<typeof initMemoryDb>, options?: ThreadsHealthOptions):
|
|
35
|
+
export declare function getThreadsHealth(getMemoryDb: () => ReturnType<typeof initMemoryDb>, options?: ThreadsHealthOptions): string;
|
|
36
36
|
export {};
|
|
37
37
|
//# sourceMappingURL=thread-health.service.d.ts.map
|