sensorium-mcp 3.1.0-refactor.18 → 3.1.0-refactor.19
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 +6 -0
- package/dist/config/agent-settings.d.ts.map +1 -1
- package/dist/config/agent-settings.js +22 -0
- package/dist/config/agent-settings.js.map +1 -1
- package/dist/config/detail-grant.d.ts +39 -0
- package/dist/config/detail-grant.d.ts.map +1 -0
- package/dist/config/detail-grant.js +61 -0
- package/dist/config/detail-grant.js.map +1 -0
- package/dist/config/index.d.ts +1 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -0
- package/dist/config/index.js.map +1 -1
- package/dist/dashboard/routes/copilot.d.ts.map +1 -1
- package/dist/dashboard/routes/copilot.js +17 -1
- 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 +9 -2
- 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 +11 -4
- package/dist/dashboard/routes.js.map +1 -1
- package/dist/dashboard/spa.html +11 -11
- package/dist/index.js +48 -13
- package/dist/index.js.map +1 -1
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +21 -2
- package/dist/lib/logger.js.map +1 -1
- package/dist/server/factory.js +16 -6
- package/dist/server/factory.js.map +1 -1
- package/dist/server/http-server.d.ts.map +1 -1
- package/dist/server/http-server.js +10 -7
- 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 +14 -8
- 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 +6 -12
- package/dist/services/background-runner.js.map +1 -1
- package/dist/services/broker-client.d.ts +181 -0
- package/dist/services/broker-client.d.ts.map +1 -0
- package/dist/services/broker-client.js +323 -0
- package/dist/services/broker-client.js.map +1 -0
- 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 +19 -24
- 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 +45 -36
- package/dist/services/copilot-spawn.service.js.map +1 -1
- package/dist/services/dispatcher/broker.d.ts +4 -3
- package/dist/services/dispatcher/broker.d.ts.map +1 -1
- package/dist/services/dispatcher/broker.js +21 -9
- package/dist/services/dispatcher/broker.js.map +1 -1
- package/dist/services/dispatcher/poller.d.ts.map +1 -1
- package/dist/services/dispatcher/poller.js +24 -5
- 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 +41 -2
- package/dist/services/flight-recorder.service.js.map +1 -1
- package/dist/services/keeper.service.d.ts +9 -0
- package/dist/services/keeper.service.d.ts.map +1 -1
- package/dist/services/keeper.service.js +147 -31
- package/dist/services/keeper.service.js.map +1 -1
- package/dist/services/process.service.d.ts +40 -62
- package/dist/services/process.service.d.ts.map +1 -1
- package/dist/services/process.service.js +118 -613
- package/dist/services/process.service.js.map +1 -1
- package/dist/services/scheduler.d.ts +1 -0
- package/dist/services/scheduler.d.ts.map +1 -1
- package/dist/services/scheduler.js +67 -12
- package/dist/services/scheduler.js.map +1 -1
- package/dist/services/self-update.service.d.ts +14 -3
- package/dist/services/self-update.service.d.ts.map +1 -1
- package/dist/services/self-update.service.js +141 -72
- package/dist/services/self-update.service.js.map +1 -1
- package/dist/services/spawn-common.d.ts +49 -23
- package/dist/services/spawn-common.d.ts.map +1 -1
- package/dist/services/spawn-common.js +262 -47
- package/dist/services/spawn-common.js.map +1 -1
- package/dist/services/spawn-exit-watcher.d.ts +32 -0
- package/dist/services/spawn-exit-watcher.d.ts.map +1 -0
- package/dist/services/spawn-exit-watcher.js +102 -0
- package/dist/services/spawn-exit-watcher.js.map +1 -0
- 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 +9 -92
- 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 +4 -3
- 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 +26 -9
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.service.js","sourceRoot":"","sources":["../../src/services/process.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"process.service.js","sourceRoot":"","sources":["../../src/services/process.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ export declare function listSchedules(threadId: number): ScheduledTask[];
|
|
|
28
28
|
* Generate a unique task ID.
|
|
29
29
|
*/
|
|
30
30
|
export declare function generateTaskId(): string;
|
|
31
|
+
export declare function matchesCron(cronExpr: string, date: Date): boolean;
|
|
31
32
|
/**
|
|
32
33
|
* Check for due tasks and return the first one that should fire.
|
|
33
34
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/services/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAaH,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKhF,qBAAa,kBAAmB,YAAW,mBAAmB;IAC5D,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE;IAI/C,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI;IAI5D,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAItC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE;CAGjD;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC;AA+B3D,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAIrD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAOxE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAQrD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CAE/D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/services/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAaH,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKhF,qBAAa,kBAAmB,YAAW,mBAAmB;IAC5D,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE;IAI/C,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI;IAI5D,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAItC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE;CAGjD;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC;AA+B3D,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAIrD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAOxE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAQrD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CAE/D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AA2DD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAWjE;AAuBD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,qBAAqB,EAAE,MAAM,EAC7B,cAAc,EAAE,OAAO,GACtB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GAAG,IAAI,CAwHhD"}
|
|
@@ -96,25 +96,72 @@ export function generateTaskId() {
|
|
|
96
96
|
/**
|
|
97
97
|
* Parse a simple cron expression (5 fields: minute hour day-of-month month day-of-week).
|
|
98
98
|
* Returns true if the given date matches the cron expression.
|
|
99
|
-
* Supports:
|
|
100
|
-
*
|
|
99
|
+
* Supports per field: `*`, exact numbers, comma-separated lists, ranges (`1-5`),
|
|
100
|
+
* whole-range steps (e.g. every 3rd value) and ranged steps (e.g. `10-19/3`).
|
|
101
101
|
*/
|
|
102
|
-
|
|
102
|
+
const CRON_FIELD_BOUNDS = [
|
|
103
|
+
{ min: 0, max: 59 }, // minute
|
|
104
|
+
{ min: 0, max: 23 }, // hour
|
|
105
|
+
{ min: 1, max: 31 }, // day-of-month
|
|
106
|
+
{ min: 1, max: 12 }, // month
|
|
107
|
+
{ min: 0, max: 6 }, // day-of-week
|
|
108
|
+
];
|
|
109
|
+
/**
|
|
110
|
+
* Test one comma-delimited term of a cron field against `value`, honouring
|
|
111
|
+
* ranges (`a-b`) and steps (`a-b/n`, `a/n`, and a bare-`*` step). `bounds`
|
|
112
|
+
* supplies the field's natural min/max so a bare-`*` step can be expanded.
|
|
113
|
+
* Returns null for a syntactically invalid term so the caller can reject it.
|
|
114
|
+
*/
|
|
115
|
+
function matchesCronTerm(term, value, bounds) {
|
|
116
|
+
const [rangePart, stepPart] = term.split("/");
|
|
117
|
+
const step = stepPart === undefined ? 1 : Number(stepPart);
|
|
118
|
+
if (!Number.isInteger(step) || step <= 0)
|
|
119
|
+
return null;
|
|
120
|
+
let start;
|
|
121
|
+
let end;
|
|
122
|
+
if (rangePart === "*" || rangePart === "") {
|
|
123
|
+
start = bounds.min;
|
|
124
|
+
end = bounds.max;
|
|
125
|
+
}
|
|
126
|
+
else if (rangePart.includes("-")) {
|
|
127
|
+
const [lo, hi] = rangePart.split("-");
|
|
128
|
+
start = Number(lo);
|
|
129
|
+
end = Number(hi);
|
|
130
|
+
if (!Number.isInteger(start) || !Number.isInteger(end))
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
start = Number(rangePart);
|
|
135
|
+
if (!Number.isInteger(start))
|
|
136
|
+
return null;
|
|
137
|
+
// A bare number with a step (`a/n`) runs from a to the field max; a bare
|
|
138
|
+
// number without a step matches only itself.
|
|
139
|
+
end = stepPart === undefined ? start : bounds.max;
|
|
140
|
+
}
|
|
141
|
+
if (start > end)
|
|
142
|
+
return null;
|
|
143
|
+
if (value < start || value > end)
|
|
144
|
+
return false;
|
|
145
|
+
return (value - start) % step === 0;
|
|
146
|
+
}
|
|
147
|
+
function matchesCronField(field, value, bounds) {
|
|
103
148
|
if (field === "*")
|
|
104
149
|
return true;
|
|
105
150
|
const parts = field.split(",").map((s) => s.trim());
|
|
106
|
-
return parts.some((p) =>
|
|
151
|
+
return parts.some((p) => matchesCronTerm(p, value, bounds) === true);
|
|
107
152
|
}
|
|
108
|
-
function matchesCron(cronExpr, date) {
|
|
153
|
+
export function matchesCron(cronExpr, date) {
|
|
109
154
|
const fields = cronExpr.trim().split(/\s+/);
|
|
110
155
|
if (fields.length !== 5)
|
|
111
156
|
return false;
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
157
|
+
const values = [
|
|
158
|
+
date.getMinutes(),
|
|
159
|
+
date.getHours(),
|
|
160
|
+
date.getDate(),
|
|
161
|
+
date.getMonth() + 1,
|
|
162
|
+
date.getDay(),
|
|
163
|
+
];
|
|
164
|
+
return fields.every((field, i) => matchesCronField(field, values[i], CRON_FIELD_BOUNDS[i]));
|
|
118
165
|
}
|
|
119
166
|
/**
|
|
120
167
|
* Find the most recent minute before `beforeDate` that matches the cron expression.
|
|
@@ -199,10 +246,18 @@ export function checkDueTasks(threadId, lastOperatorMessageAt, hasNewMessages) {
|
|
|
199
246
|
// Only fires the MOST RECENT missed occurrence (via getLastCronMatch),
|
|
200
247
|
// not every individual missed window. lastFiredAt is set to `now` so
|
|
201
248
|
// the dedup logic prevents re-firing on the next poll.
|
|
249
|
+
//
|
|
250
|
+
// The baseline is floored at the task's creation time: a task never
|
|
251
|
+
// "catches up" a cron slot that occurred BEFORE it existed. Without this
|
|
252
|
+
// floor a never-fired task (lastFiredAt undefined → 0) immediately fires
|
|
253
|
+
// the most recent past slot on creation — e.g. a "4 10-19 * * *" task
|
|
254
|
+
// created at 23:02 back-fired the 19:04 slot it never lived through.
|
|
202
255
|
const lastMatch = getLastCronMatch(task.cron, now);
|
|
203
256
|
if (lastMatch) {
|
|
204
257
|
const lastFiredTime = task.lastFiredAt ? new Date(task.lastFiredAt).getTime() : 0;
|
|
205
|
-
|
|
258
|
+
const createdTime = task.createdAt ? new Date(task.createdAt).getTime() : 0;
|
|
259
|
+
const catchUpFloor = Math.max(lastFiredTime, createdTime);
|
|
260
|
+
if (catchUpFloor < lastMatch.getTime()) {
|
|
206
261
|
if (hasNewMessages) {
|
|
207
262
|
// Operator is active — skip catch-up
|
|
208
263
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/services/scheduler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/services/scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Self-update service — polls the npm registry for the version published on
|
|
3
|
-
* the update channel and
|
|
4
|
-
*
|
|
3
|
+
* the update channel and triggers a graceful update on ANY version mismatch
|
|
4
|
+
* (newer OR older — the latter is the channel-switch rollback path).
|
|
5
|
+
*
|
|
6
|
+
* Single lifecycle owner (plan §4.5, Phase 4): this service no longer spawns
|
|
7
|
+
* its own replacement. It quiesces the agents, then asks the supervisor
|
|
8
|
+
* (POST /restart) to run the shared teardown/respawn choreography — the spawn
|
|
9
|
+
* command re-resolves the channel version by itself (npx). The pre-Phase-4
|
|
10
|
+
* self-spawn path survives only as the legacy fallback for dev mode without a
|
|
11
|
+
* supervisor, gated by the same SENSORIUM_BROKER_SPAWN cutover flag the spawn
|
|
12
|
+
* services use (see brokerSpawnMode in spawn-common.ts).
|
|
5
13
|
*
|
|
6
14
|
* Entry point: startSelfUpdatePoller({ pkgVersion, httpPort })
|
|
7
15
|
* Call once after the HTTP server is listening (HTTP mode only).
|
|
@@ -11,7 +19,10 @@
|
|
|
11
19
|
* SELF_UPDATE_POLL_INTERVAL_MS Registry check interval (default: 60000)
|
|
12
20
|
* SELF_UPDATE_MIN_UPTIME_MS Min uptime before first update (default: 600000)
|
|
13
21
|
* SELF_UPDATE_GRACE_MS Grace period for agents to observe flag (default: 30000)
|
|
14
|
-
*
|
|
22
|
+
* SENSORIUM_BROKER_SPAWN Cutover flag: 1/required = supervisor-only,
|
|
23
|
+
* 0/off = legacy self-spawn, unset = auto
|
|
24
|
+
* MCP_START_COMMAND Legacy-path replacement spawn command
|
|
25
|
+
* (default: npx -y sensorium-mcp@<target> --prefer-online)
|
|
15
26
|
*
|
|
16
27
|
* Update channel:
|
|
17
28
|
* Derived from MCP_START_COMMAND — the npm spec tag in "sensorium-mcp@<tag>"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"self-update.service.d.ts","sourceRoot":"","sources":["../../src/services/self-update.service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"self-update.service.d.ts","sourceRoot":"","sources":["../../src/services/self-update.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAsKH;;;;GAIG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuB/D;AA8LD;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA6CpD;AAMD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC5C,GAAG,IAAI,CAoBP"}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Self-update service — polls the npm registry for the version published on
|
|
3
|
-
* the update channel and
|
|
4
|
-
*
|
|
3
|
+
* the update channel and triggers a graceful update on ANY version mismatch
|
|
4
|
+
* (newer OR older — the latter is the channel-switch rollback path).
|
|
5
|
+
*
|
|
6
|
+
* Single lifecycle owner (plan §4.5, Phase 4): this service no longer spawns
|
|
7
|
+
* its own replacement. It quiesces the agents, then asks the supervisor
|
|
8
|
+
* (POST /restart) to run the shared teardown/respawn choreography — the spawn
|
|
9
|
+
* command re-resolves the channel version by itself (npx). The pre-Phase-4
|
|
10
|
+
* self-spawn path survives only as the legacy fallback for dev mode without a
|
|
11
|
+
* supervisor, gated by the same SENSORIUM_BROKER_SPAWN cutover flag the spawn
|
|
12
|
+
* services use (see brokerSpawnMode in spawn-common.ts).
|
|
5
13
|
*
|
|
6
14
|
* Entry point: startSelfUpdatePoller({ pkgVersion, httpPort })
|
|
7
15
|
* Call once after the HTTP server is listening (HTTP mode only).
|
|
@@ -11,7 +19,10 @@
|
|
|
11
19
|
* SELF_UPDATE_POLL_INTERVAL_MS Registry check interval (default: 60000)
|
|
12
20
|
* SELF_UPDATE_MIN_UPTIME_MS Min uptime before first update (default: 600000)
|
|
13
21
|
* SELF_UPDATE_GRACE_MS Grace period for agents to observe flag (default: 30000)
|
|
14
|
-
*
|
|
22
|
+
* SENSORIUM_BROKER_SPAWN Cutover flag: 1/required = supervisor-only,
|
|
23
|
+
* 0/off = legacy self-spawn, unset = auto
|
|
24
|
+
* MCP_START_COMMAND Legacy-path replacement spawn command
|
|
25
|
+
* (default: npx -y sensorium-mcp@<target> --prefer-online)
|
|
15
26
|
*
|
|
16
27
|
* Update channel:
|
|
17
28
|
* Derived from MCP_START_COMMAND — the npm spec tag in "sensorium-mcp@<tag>"
|
|
@@ -30,19 +41,31 @@ import { emitMaintenanceSignal, hasObservedMaintenance } from "./maintenance-sig
|
|
|
30
41
|
import { writeReconnectSnapshot } from "./reconnect-snapshot.service.js";
|
|
31
42
|
import { getActiveThreadIds } from "./process.service.js";
|
|
32
43
|
import { getLiveWaitingThreadIds } from "../sessions/dashboard-registry.js";
|
|
44
|
+
import { brokerRequestRestart } from "./broker-client.js";
|
|
45
|
+
import { brokerSpawnMode } from "./spawn-common.js";
|
|
33
46
|
// ---------------------------------------------------------------------------
|
|
34
47
|
// Module-level state
|
|
35
48
|
// ---------------------------------------------------------------------------
|
|
36
49
|
const DATA_DIR = join(homedir(), ".remote-copilot-mcp");
|
|
37
50
|
const FLAG_PATH = join(DATA_DIR, "maintenance.flag");
|
|
38
51
|
/** Poller state: the config trio is set once by startSelfUpdatePoller;
|
|
39
|
-
* updateInProgress is the re-entrancy guard for check/update cycles
|
|
52
|
+
* updateInProgress is the re-entrancy guard for check/update cycles;
|
|
53
|
+
* restartDelegatedAt records when the supervisor accepted a restart — this
|
|
54
|
+
* process is then living on borrowed time until the supervisor kills it, and
|
|
55
|
+
* the poller must not fire another update cycle in the interim. */
|
|
40
56
|
const state = {
|
|
41
57
|
updateInProgress: false,
|
|
58
|
+
restartDelegatedAt: 0,
|
|
42
59
|
currentVersion: "",
|
|
43
60
|
httpPort: 0,
|
|
44
61
|
beforeSpawnHook: null,
|
|
45
62
|
};
|
|
63
|
+
// How long a supervisor-accepted restart may leave this process alive before
|
|
64
|
+
// the poller concludes the teardown failed (e.g. the kill EPERM-failed — the
|
|
65
|
+
// exact unkillable class this machine has produced) and resumes update polling.
|
|
66
|
+
// Generous: the supervisor's own ready-timeout is 5 min, so 15 min of still
|
|
67
|
+
// being alive means the restart is not coming. Self-healing over latching dead.
|
|
68
|
+
const DELEGATED_RESTART_GRACE_MS = 15 * 60 * 1000;
|
|
46
69
|
// ---------------------------------------------------------------------------
|
|
47
70
|
// Helpers
|
|
48
71
|
// ---------------------------------------------------------------------------
|
|
@@ -181,15 +204,17 @@ export async function getRemoteVersion() {
|
|
|
181
204
|
}
|
|
182
205
|
}
|
|
183
206
|
/**
|
|
184
|
-
* Full update sequence:
|
|
207
|
+
* Full update sequence (plan §4.5 — the supervisor owns the mechanics):
|
|
185
208
|
* 1. Write maintenance flag (wakes all active poll loops via fs.watch)
|
|
186
209
|
* 2. Emit in-process signal (belt-and-suspenders for loops not using fs.watch)
|
|
187
210
|
* 3. Grace period (agents observe flag and return maintenance response)
|
|
188
|
-
* 4.
|
|
189
|
-
* 5.
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
211
|
+
* 4. ACK-gated quiesce, then write reconnect snapshot
|
|
212
|
+
* 5. POST /restart to the supervisor → 202, and THIS process just keeps
|
|
213
|
+
* serving until the supervisor tears it down and respawns the channel
|
|
214
|
+
* version. The supervisor owns the maintenance flag from here (it rewrites
|
|
215
|
+
* it and always clears it after the respawn) — we must not touch it again.
|
|
216
|
+
* Fallback (supervisor unreachable / old binary without /restart): the
|
|
217
|
+
* legacy self-spawn path, allowed only outside "required" broker mode.
|
|
193
218
|
*/
|
|
194
219
|
async function performUpdate(targetVersion) {
|
|
195
220
|
state.updateInProgress = true;
|
|
@@ -200,9 +225,12 @@ async function performUpdate(targetVersion) {
|
|
|
200
225
|
// Write maintenance flag
|
|
201
226
|
try {
|
|
202
227
|
mkdirSync(DATA_DIR, { recursive: true });
|
|
228
|
+
// `timestamp` is what checkMaintenanceFlag's 5-min stale auto-clear keys
|
|
229
|
+
// on (and what the supervisor's MaintenanceFlagWriter writes) — without it
|
|
230
|
+
// a flag leaked by a failed update would suppress agents forever.
|
|
203
231
|
writeFileSync(FLAG_PATH, JSON.stringify({
|
|
204
232
|
version: targetVersion,
|
|
205
|
-
|
|
233
|
+
timestamp: new Date().toISOString(),
|
|
206
234
|
}));
|
|
207
235
|
}
|
|
208
236
|
catch (err) {
|
|
@@ -222,7 +250,7 @@ async function performUpdate(targetVersion) {
|
|
|
222
250
|
await quiesceAgents();
|
|
223
251
|
// Write reconnect snapshot so the new instance offers lightweight reconnect
|
|
224
252
|
try {
|
|
225
|
-
const threadIds = getActiveThreadIds();
|
|
253
|
+
const threadIds = await getActiveThreadIds();
|
|
226
254
|
if (threadIds.length > 0) {
|
|
227
255
|
writeReconnectSnapshot(threadIds);
|
|
228
256
|
}
|
|
@@ -230,73 +258,33 @@ async function performUpdate(targetVersion) {
|
|
|
230
258
|
catch (err) {
|
|
231
259
|
log.warn(`[self-update] Reconnect snapshot failed (non-fatal): ${err}`);
|
|
232
260
|
}
|
|
233
|
-
//
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
const spawnLogPath = join(DATA_DIR, "update-spawn.log");
|
|
245
|
-
mkdirSync(DATA_DIR, { recursive: true });
|
|
246
|
-
const logFd = openSync(spawnLogPath, "a");
|
|
247
|
-
const child = spawn(cmd, [], {
|
|
248
|
-
detached: true,
|
|
249
|
-
shell: true,
|
|
250
|
-
stdio: ["ignore", logFd, logFd],
|
|
251
|
-
env: { ...process.env },
|
|
252
|
-
});
|
|
253
|
-
closeSync(logFd);
|
|
254
|
-
child.unref();
|
|
255
|
-
if (child.pid == null) {
|
|
256
|
-
throw new Error("Spawned child process has no PID — cannot proceed");
|
|
257
|
-
}
|
|
258
|
-
log.info(`[self-update] Replacement PID=${child.pid}, polling health on port ${state.httpPort}…`);
|
|
259
|
-
const healthy = await waitForHealthy(state.httpPort, targetVersion);
|
|
260
|
-
if (healthy) {
|
|
261
|
-
// The new server writes its own server.pid on startup (index.ts) with the
|
|
262
|
-
// real node PID. Do NOT overwrite here — child.pid is the transient shell
|
|
263
|
-
// PID on both Windows (cmd.exe) and Unix (/bin/sh), dead by this point.
|
|
264
|
-
// Remove maintenance flag — watcher MCPs unblock, new keepAlive threads start
|
|
265
|
-
try {
|
|
266
|
-
unlinkSync(FLAG_PATH);
|
|
267
|
-
}
|
|
268
|
-
catch {
|
|
269
|
-
/* best-effort */
|
|
270
|
-
}
|
|
271
|
-
log.info(`[self-update] Update to v${targetVersion} complete. Exiting.`);
|
|
272
|
-
process.exit(0);
|
|
273
|
-
}
|
|
274
|
-
else {
|
|
275
|
-
log.error("[self-update] New process failed to become healthy. Aborting update.");
|
|
276
|
-
// On Windows with shell:true, child.pid is the transient cmd.exe shell (already dead).
|
|
277
|
-
// Attempt kill anyway, then fall back to port-based kill on Windows.
|
|
278
|
-
try {
|
|
279
|
-
child.kill();
|
|
261
|
+
// Delegate the restart to the supervisor — the single process-lifecycle
|
|
262
|
+
// owner. It answers 202 and then runs the shared teardown/respawn
|
|
263
|
+
// choreography (PrepareShutdown → kill → spawn → wait-ready → clear flag);
|
|
264
|
+
// the spawn command re-resolves the channel version via npx by itself.
|
|
265
|
+
const mode = brokerSpawnMode();
|
|
266
|
+
if (mode !== "off") {
|
|
267
|
+
const verdict = await brokerRequestRestart(`self-update v${state.currentVersion} -> v${targetVersion}`);
|
|
268
|
+
if (verdict !== null) {
|
|
269
|
+
state.restartDelegatedAt = Date.now();
|
|
270
|
+
log.info(`[self-update] Restart ${verdict === "accepted" ? "delegated to" : "already in progress at"} the supervisor — awaiting teardown (it owns the maintenance flag now).`);
|
|
271
|
+
return;
|
|
280
272
|
}
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
273
|
+
if (mode === "required") {
|
|
274
|
+
// No fallback allowed and no restart is coming: unblock the agents by
|
|
275
|
+
// clearing our flag and retry on a later poll cycle.
|
|
276
|
+
log.error("[self-update] Supervisor unreachable (or predates /restart) and SENSORIUM_BROKER_SPAWN=required — update aborted, will retry next poll.");
|
|
285
277
|
try {
|
|
286
|
-
|
|
287
|
-
// Find and kill whatever is bound to our HTTP port
|
|
288
|
-
execSync(`for /f "tokens=5" %a in ('netstat -ano ^| findstr :${state.httpPort} ^| findstr LISTENING') do taskkill /F /PID %a`, { shell: "cmd.exe", stdio: "ignore", timeout: 10_000 });
|
|
289
|
-
log.info(`[self-update] Killed orphan process on port ${state.httpPort}`);
|
|
278
|
+
unlinkSync(FLAG_PATH);
|
|
290
279
|
}
|
|
291
280
|
catch {
|
|
292
|
-
|
|
281
|
+
/* best-effort */
|
|
293
282
|
}
|
|
283
|
+
return;
|
|
294
284
|
}
|
|
295
|
-
|
|
296
|
-
// with an orphaned spawned child that may still be starting.
|
|
297
|
-
log.error("[self-update] Exiting (HTTP server closed, cannot recover). Supervisor will restart.");
|
|
298
|
-
process.exit(1);
|
|
285
|
+
log.warn("[self-update] Supervisor unreachable (or predates /restart) — falling back to legacy self-spawn so an old supervisor binary cannot strand updates.");
|
|
299
286
|
}
|
|
287
|
+
await legacySelfSpawnUpdate(targetVersion);
|
|
300
288
|
}
|
|
301
289
|
catch (err) {
|
|
302
290
|
log.error(`[self-update] Update sequence failed: ${err}`);
|
|
@@ -311,11 +299,92 @@ async function performUpdate(targetVersion) {
|
|
|
311
299
|
state.updateInProgress = false;
|
|
312
300
|
}
|
|
313
301
|
}
|
|
302
|
+
/**
|
|
303
|
+
* Legacy self-spawn update (pre-Phase-4): close the HTTP listener, spawn the
|
|
304
|
+
* replacement ourselves, health-poll it, and exit. Kept ONLY for dev mode
|
|
305
|
+
* without a supervisor (SENSORIUM_BROKER_SPAWN=off / non-Windows) and as the
|
|
306
|
+
* auto-mode fallback behind an old supervisor binary. The netstat/taskkill
|
|
307
|
+
* orphan-hunt this path once had is gone — no shell-outs anywhere in the stack
|
|
308
|
+
* (plan §3.2); a failed replacement is now cleaned up by whoever owns process
|
|
309
|
+
* mechanics (the supervisor's kill-by-port on its next restart) or manually in
|
|
310
|
+
* true dev mode.
|
|
311
|
+
*/
|
|
312
|
+
async function legacySelfSpawnUpdate(targetVersion) {
|
|
313
|
+
// Close existing HTTP server to free the port for the replacement process
|
|
314
|
+
const beforeSpawn = state.beforeSpawnHook;
|
|
315
|
+
if (beforeSpawn) {
|
|
316
|
+
log.info("[self-update] Closing HTTP server to free port...");
|
|
317
|
+
await beforeSpawn();
|
|
318
|
+
}
|
|
319
|
+
// Spawn the replacement process (detached so it survives our exit)
|
|
320
|
+
// Pin exact version to bypass stale npx cache (EPERM prevents cache clear on Windows)
|
|
321
|
+
const defaultCmd = `npx -y sensorium-mcp@${targetVersion} --prefer-online`;
|
|
322
|
+
const cmd = process.env.MCP_START_COMMAND ?? defaultCmd;
|
|
323
|
+
log.info(`[self-update] Spawning replacement (legacy self-spawn): ${cmd}`);
|
|
324
|
+
const spawnLogPath = join(DATA_DIR, "update-spawn.log");
|
|
325
|
+
mkdirSync(DATA_DIR, { recursive: true });
|
|
326
|
+
const logFd = openSync(spawnLogPath, "a");
|
|
327
|
+
const child = spawn(cmd, [], {
|
|
328
|
+
detached: true,
|
|
329
|
+
shell: true,
|
|
330
|
+
stdio: ["ignore", logFd, logFd],
|
|
331
|
+
env: { ...process.env },
|
|
332
|
+
});
|
|
333
|
+
closeSync(logFd);
|
|
334
|
+
child.unref();
|
|
335
|
+
if (child.pid == null) {
|
|
336
|
+
throw new Error("Spawned child process has no PID — cannot proceed");
|
|
337
|
+
}
|
|
338
|
+
log.info(`[self-update] Replacement PID=${child.pid}, polling health on port ${state.httpPort}…`);
|
|
339
|
+
const healthy = await waitForHealthy(state.httpPort, targetVersion);
|
|
340
|
+
if (healthy) {
|
|
341
|
+
// The new server writes its own server.pid on startup (index.ts) with the
|
|
342
|
+
// real node PID. Do NOT overwrite here — child.pid is the transient shell
|
|
343
|
+
// PID on both Windows (cmd.exe) and Unix (/bin/sh), dead by this point.
|
|
344
|
+
// Remove maintenance flag — watcher MCPs unblock, new keepAlive threads start
|
|
345
|
+
try {
|
|
346
|
+
unlinkSync(FLAG_PATH);
|
|
347
|
+
}
|
|
348
|
+
catch {
|
|
349
|
+
/* best-effort */
|
|
350
|
+
}
|
|
351
|
+
log.info(`[self-update] Update to v${targetVersion} complete. Exiting.`);
|
|
352
|
+
process.exit(0);
|
|
353
|
+
}
|
|
354
|
+
else {
|
|
355
|
+
log.error("[self-update] New process failed to become healthy. Aborting update.");
|
|
356
|
+
// On Windows with shell:true, child.pid is the transient cmd.exe shell
|
|
357
|
+
// (already dead) — this kill is best-effort only. The old netstat/taskkill
|
|
358
|
+
// port-hunt is deliberately gone (no shell-outs).
|
|
359
|
+
try {
|
|
360
|
+
child.kill();
|
|
361
|
+
}
|
|
362
|
+
catch {
|
|
363
|
+
/* may already be dead */
|
|
364
|
+
}
|
|
365
|
+
// Leave maintenance.flag intact so a supervisor (if any) doesn't immediately
|
|
366
|
+
// race with an orphaned spawned child that may still be starting.
|
|
367
|
+
log.error("[self-update] Exiting (HTTP server closed, cannot recover). Supervisor will restart.");
|
|
368
|
+
process.exit(1);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
314
371
|
/**
|
|
315
372
|
* Run one check cycle: compare remote version to current and trigger update
|
|
316
373
|
* on any mismatch (an older remote means the channel moved back — downgrade).
|
|
317
374
|
*/
|
|
318
375
|
export async function checkForUpdate() {
|
|
376
|
+
// Once the supervisor has accepted a restart, this process is only alive
|
|
377
|
+
// until the teardown reaches it — don't start another update cycle. But a
|
|
378
|
+
// bounded wait, not a latch: if the teardown never arrives (kill failed and
|
|
379
|
+
// we survived), resume polling rather than staying pinned to a stale version
|
|
380
|
+
// forever. The orchestrator clears the maintenance flag even on failure, so
|
|
381
|
+
// a retry starts from a clean slate.
|
|
382
|
+
if (state.restartDelegatedAt !== 0) {
|
|
383
|
+
if (Date.now() - state.restartDelegatedAt < DELEGATED_RESTART_GRACE_MS)
|
|
384
|
+
return;
|
|
385
|
+
log.warn(`[self-update] Supervisor accepted a restart ${Math.round((Date.now() - state.restartDelegatedAt) / 60_000)}m ago but this process is still alive — teardown presumed failed, resuming update polling.`);
|
|
386
|
+
state.restartDelegatedAt = 0;
|
|
387
|
+
}
|
|
319
388
|
if (state.updateInProgress)
|
|
320
389
|
return;
|
|
321
390
|
state.updateInProgress = true;
|