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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-spawn.service.js","sourceRoot":"","sources":["../../src/services/agent-spawn.service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAkB,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAiB,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EACL,UAAU,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"agent-spawn.service.js","sourceRoot":"","sources":["../../src/services/agent-spawn.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"background-runner.d.ts","sourceRoot":"","sources":["../../src/services/background-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAW5E,UAAU,oBAAoB;IAC5B,WAAW,EAAE,MAAM,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IACnD,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,sBAAsB,CAAC;IACxC,GAAG,EAAE;QACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,CAAC;CACH;AAED,qBAAa,mBAAmB;IAIlB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,SAAS,CAAwC;IACzD,OAAO,CAAC,oBAAoB,CAAuB;gBAEtB,IAAI,EAAE,oBAAoB;IAEvD,KAAK,IAAI,IAAI;IA0Bb,IAAI,IAAI,IAAI;YAOE,gBAAgB;
|
|
1
|
+
{"version":3,"file":"background-runner.d.ts","sourceRoot":"","sources":["../../src/services/background-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAW5E,UAAU,oBAAoB;IAC5B,WAAW,EAAE,MAAM,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IACnD,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,sBAAsB,CAAC;IACxC,GAAG,EAAE;QACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,CAAC;CACH;AAED,qBAAa,mBAAmB;IAIlB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,SAAS,CAAwC;IACzD,OAAO,CAAC,oBAAoB,CAAuB;gBAEtB,IAAI,EAAE,oBAAoB;IAEvD,KAAK,IAAI,IAAI;IA0Bb,IAAI,IAAI,IAAI;YAOE,gBAAgB;YA4BhB,kBAAkB;YA0ClB,qBAAqB;CAqCpC"}
|
|
@@ -2,7 +2,7 @@ import { rotateAllDailySessions } from "./daily-session.js";
|
|
|
2
2
|
import { cleanupExpiredWorkers } from "./worker-cleanup.service.js";
|
|
3
3
|
import { errorMessage } from "../lib/utils.js";
|
|
4
4
|
import { getAllThreads } from "../data/memory/thread-registry.js";
|
|
5
|
-
import { isThreadRunning, spawnedThreads } from "./process.service.js";
|
|
5
|
+
import { isThreadRunning, spawnedThreads, sweepOrphanDescendants } from "./process.service.js";
|
|
6
6
|
import { decommissionWorker } from "./worker-cleanup.service.js";
|
|
7
7
|
import { hasRunToday } from "../data/daily-marker.js";
|
|
8
8
|
const DAILY_ROTATION_INTERVAL_MS = 5 * 60_000;
|
|
@@ -50,17 +50,23 @@ export class BackgroundJobRunner {
|
|
|
50
50
|
catch (err) {
|
|
51
51
|
this.deps.log.error(`Expired worker cleanup error: ${errorMessage(err)}`);
|
|
52
52
|
}
|
|
53
|
-
//
|
|
54
|
-
//
|
|
55
|
-
//
|
|
56
|
-
//
|
|
53
|
+
// Piggyback the orphan-descendant sweep on the same cadence and (single)
|
|
54
|
+
// process snapshot budget — no new timer. It records lineage for live threads
|
|
55
|
+
// and logs (or, behind ORPHAN_SWEEP_KILL, reaps) grandchildren whose middle
|
|
56
|
+
// parent died on its own. Failures here must not affect worker cleanup.
|
|
57
|
+
try {
|
|
58
|
+
await sweepOrphanDescendants();
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
this.deps.log.error(`Orphan-descendant sweep error: ${errorMessage(err)}`);
|
|
62
|
+
}
|
|
57
63
|
}
|
|
58
64
|
async runDeadWorkerSweep() {
|
|
59
65
|
try {
|
|
60
66
|
const db = this.deps.getMemoryDb();
|
|
61
67
|
const workers = getAllThreads(db).filter((t) => t.type === "worker" && (t.status === "active" || t.status === "exited"));
|
|
62
68
|
for (const w of workers) {
|
|
63
|
-
if (!
|
|
69
|
+
if (!isThreadRunning(w.threadId)) {
|
|
64
70
|
const inMemory = spawnedThreads.some((t) => t.threadId === w.threadId);
|
|
65
71
|
try {
|
|
66
72
|
if (inMemory) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"background-runner.js","sourceRoot":"","sources":["../../src/services/background-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"background-runner.js","sourceRoot":"","sources":["../../src/services/background-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
import type { ThreadLifecycleService } from "./thread-lifecycle.service.js";
|
|
6
6
|
import { type SpawnResult } from "./spawn-common.js";
|
|
7
7
|
export declare const resolveClaudePath: () => string | null;
|
|
8
|
-
export declare function spawnAgentProcess(claudePath: string, name: string, threadId: number, threadLifecycle: ThreadLifecycleService, workingDirectory?: string, memorySourceThreadId?: number, threadType?: "worker" | "branch", modelOverride?: string):
|
|
8
|
+
export declare function spawnAgentProcess(claudePath: string, name: string, threadId: number, threadLifecycle: ThreadLifecycleService, workingDirectory?: string, memorySourceThreadId?: number, threadType?: "worker" | "branch", modelOverride?: string): SpawnResult;
|
|
9
9
|
//# sourceMappingURL=claude-spawn.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-spawn.service.d.ts","sourceRoot":"","sources":["../../src/services/claude-spawn.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"claude-spawn.service.d.ts","sourceRoot":"","sources":["../../src/services/claude-spawn.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2BH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E,OAAO,EAYL,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,iBAAiB,QAAO,MAAM,GAAG,IAQ7C,CAAC;AAqDF,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,sBAAsB,EACvC,gBAAgB,CAAC,EAAE,MAAM,EACzB,oBAAoB,CAAC,EAAE,MAAM,EAC7B,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAChC,aAAa,CAAC,EAAE,MAAM,GACrB,WAAW,CA+Hb"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Claude-specific spawn logic: CLI-path resolution and the Claude Code process
|
|
3
3
|
* launch (per-thread config dir, OAuth-token handling, git-bash discovery).
|
|
4
4
|
*/
|
|
5
|
+
import { spawn } from "node:child_process";
|
|
5
6
|
import { copyFileSync, existsSync, mkdirSync, unlinkSync, readFileSync, writeFileSync, } from "node:fs";
|
|
6
7
|
import { homedir } from "node:os";
|
|
7
8
|
import { join } from "node:path";
|
|
@@ -10,7 +11,7 @@ import { log } from "../lib/logger.js";
|
|
|
10
11
|
import { errorMessage } from "../lib/utils.js";
|
|
11
12
|
import { PROCESS_BASE_DIR, PROCESS_LOGS_DIR } from "./process.service.js";
|
|
12
13
|
import { buildClaudeMcpConfig } from "./mcp-config.service.js";
|
|
13
|
-
import { sanitizeSpawnEnv, resolveCliPath, resolveWindowsCliPath, normalizeWorkingDirectory, isStartupCleanupInProgress, checkSpawnPreconditions, buildThreadLogPath, buildSessionPrompt,
|
|
14
|
+
import { sanitizeSpawnEnv, resolveCliPath, resolveWindowsCliPath, normalizeWorkingDirectory, isStartupCleanupInProgress, checkSpawnPreconditions, buildThreadLogPath, buildSessionPrompt, detachedChildOptions, launchAgentChild, stripDenylistedEnvVars, } from "./spawn-common.js";
|
|
14
15
|
export const resolveClaudePath = () => {
|
|
15
16
|
const envCmd = process.env.CLAUDE_CLI_CMD ?? getClaudeCliPath();
|
|
16
17
|
if (envCmd)
|
|
@@ -72,7 +73,7 @@ function buildClaudeDebugArgs(threadId) {
|
|
|
72
73
|
return [];
|
|
73
74
|
}
|
|
74
75
|
}
|
|
75
|
-
export
|
|
76
|
+
export function spawnAgentProcess(claudePath, name, threadId, threadLifecycle, workingDirectory, memorySourceThreadId, threadType, modelOverride) {
|
|
76
77
|
if (isStartupCleanupInProgress())
|
|
77
78
|
return { error: "Server startup cleanup in progress - try again in a few seconds" };
|
|
78
79
|
const pre = checkSpawnPreconditions("Claude");
|
|
@@ -169,12 +170,7 @@ export async function spawnAgentProcess(claudePath, name, threadId, threadLifecy
|
|
|
169
170
|
break;
|
|
170
171
|
}
|
|
171
172
|
}
|
|
172
|
-
|
|
173
|
-
? modelOverride
|
|
174
|
-
: threadType === "worker"
|
|
175
|
-
? process.env.CLAUDE_WORKER_MODEL || getDefaultWorkerModel()
|
|
176
|
-
: process.env.CLAUDE_MODEL || getDefaultThreadModel();
|
|
177
|
-
return launchAgent({
|
|
173
|
+
return launchAgentChild({
|
|
178
174
|
threadId,
|
|
179
175
|
name,
|
|
180
176
|
logFilePath,
|
|
@@ -182,23 +178,27 @@ export async function spawnAgentProcess(claudePath, name, threadId, threadLifecy
|
|
|
182
178
|
agentLabel: "Claude",
|
|
183
179
|
memorySourceThreadId,
|
|
184
180
|
threadType,
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
181
|
+
spawnChild: (outFd) => {
|
|
182
|
+
const claudeModel = modelOverride
|
|
183
|
+
? modelOverride
|
|
184
|
+
: threadType === "worker"
|
|
185
|
+
? process.env.CLAUDE_WORKER_MODEL || getDefaultWorkerModel()
|
|
186
|
+
: process.env.CLAUDE_MODEL || getDefaultThreadModel();
|
|
187
|
+
return spawn(claudePath, [
|
|
188
|
+
"--verbose",
|
|
189
|
+
"--dangerously-skip-permissions",
|
|
190
|
+
// DIAGNOSTIC (logging-only): agent-side api+mcp debug to a file (not stdout).
|
|
191
|
+
...buildClaudeDebugArgs(threadId),
|
|
192
|
+
"--mcp-config",
|
|
193
|
+
effectiveConfigPath,
|
|
194
|
+
"--model",
|
|
195
|
+
claudeModel,
|
|
196
|
+
"-p",
|
|
197
|
+
buildSessionPrompt(name, threadId),
|
|
198
|
+
"--output-format",
|
|
199
|
+
"stream-json",
|
|
200
|
+
], detachedChildOptions(claudePath, outFd, spawnEnv, workingDirectory));
|
|
201
|
+
},
|
|
202
202
|
}, threadLifecycle);
|
|
203
203
|
}
|
|
204
204
|
//# sourceMappingURL=claude-spawn.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-spawn.service.js","sourceRoot":"","sources":["../../src/services/claude-spawn.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"claude-spawn.service.js","sourceRoot":"","sources":["../../src/services/claude-spawn.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
import type { ThreadLifecycleService } from "./thread-lifecycle.service.js";
|
|
6
6
|
import { type SpawnResult } from "./spawn-common.js";
|
|
7
7
|
export declare const resolveCodexPath: () => string | null;
|
|
8
|
-
export declare function spawnCodexProcess(codexPath: string, name: string, threadId: number, threadLifecycle: ThreadLifecycleService, workingDirectory?: string, memorySourceThreadId?: number, threadType?: "worker" | "branch"):
|
|
8
|
+
export declare function spawnCodexProcess(codexPath: string, name: string, threadId: number, threadLifecycle: ThreadLifecycleService, workingDirectory?: string, memorySourceThreadId?: number, threadType?: "worker" | "branch"): SpawnResult;
|
|
9
9
|
//# sourceMappingURL=codex-spawn.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-spawn.service.d.ts","sourceRoot":"","sources":["../../src/services/codex-spawn.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E,OAAO,
|
|
1
|
+
{"version":3,"file":"codex-spawn.service.d.ts","sourceRoot":"","sources":["../../src/services/codex-spawn.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E,OAAO,EASL,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAK3B,eAAO,MAAM,gBAAgB,QAAO,MAAM,GAAG,IAC4C,CAAC;AA6E1F,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,sBAAsB,EACvC,gBAAgB,CAAC,EAAE,MAAM,EACzB,oBAAoB,CAAC,EAAE,MAAM,EAC7B,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAC/B,WAAW,CA2Eb"}
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
* Codex-specific spawn logic: CLI/native-exe resolution (including Volta layout
|
|
3
3
|
* discovery on Windows) and the Codex `exec` process launch.
|
|
4
4
|
*/
|
|
5
|
-
import { spawnSync } from "node:child_process";
|
|
5
|
+
import { spawn, spawnSync } from "node:child_process";
|
|
6
6
|
import { existsSync, readdirSync } from "node:fs";
|
|
7
7
|
import { homedir } from "node:os";
|
|
8
8
|
import { join } from "node:path";
|
|
9
9
|
import { log } from "../lib/logger.js";
|
|
10
10
|
import { PROCESS_BASE_DIR } from "./process.service.js";
|
|
11
11
|
import { buildCodexMcpArgs } from "./mcp-config.service.js";
|
|
12
|
-
import { sanitizeSpawnEnv, resolveCliPath, resolveWindowsCliPath, normalizeWorkingDirectory, checkSpawnPreconditions, buildThreadLogPath,
|
|
12
|
+
import { sanitizeSpawnEnv, resolveCliPath, resolveWindowsCliPath, normalizeWorkingDirectory, checkSpawnPreconditions, buildThreadLogPath, detachedChildOptions, launchAgentChild, } from "./spawn-common.js";
|
|
13
13
|
const CODEX_HOME_DIR = join(PROCESS_BASE_DIR, "codex-home");
|
|
14
14
|
const DEFAULT_CODEX_MODEL = "";
|
|
15
15
|
export const resolveCodexPath = () => process.platform === "win32" ? resolveWindowsCliPath("codex") : resolveCliPath("codex");
|
|
@@ -58,7 +58,7 @@ const resolveCodexExe = () => {
|
|
|
58
58
|
return null;
|
|
59
59
|
}
|
|
60
60
|
};
|
|
61
|
-
export
|
|
61
|
+
export function spawnCodexProcess(codexPath, name, threadId, threadLifecycle, workingDirectory, memorySourceThreadId, threadType) {
|
|
62
62
|
const pre = checkSpawnPreconditions("Codex");
|
|
63
63
|
if ("error" in pre)
|
|
64
64
|
return pre;
|
|
@@ -85,16 +85,7 @@ export async function spawnCodexProcess(codexPath, name, threadId, threadLifecyc
|
|
|
85
85
|
...(pre.transport.secret ? { SENSORIUM_MCP_SECRET: pre.transport.secret } : {}),
|
|
86
86
|
...mcpEnv,
|
|
87
87
|
});
|
|
88
|
-
|
|
89
|
-
// native codex.exe when present, else node.exe + codex.js (Volta layout), else
|
|
90
|
-
// the .cmd shim as-is.
|
|
91
|
-
const nativeExe = resolveCodexExe();
|
|
92
|
-
const nodeExeResult = !nativeExe && process.platform === "win32" && /\.(cmd|bat)$/i.test(codexPath)
|
|
93
|
-
? resolveCodexNodeExe()
|
|
94
|
-
: null;
|
|
95
|
-
const exe = nativeExe ?? nodeExeResult?.nodeExe ?? codexPath;
|
|
96
|
-
const args = nodeExeResult ? [nodeExeResult.codexJs, ...cliArgs] : cliArgs;
|
|
97
|
-
return launchAgent({
|
|
88
|
+
return launchAgentChild({
|
|
98
89
|
threadId,
|
|
99
90
|
name,
|
|
100
91
|
logFilePath,
|
|
@@ -102,12 +93,26 @@ export async function spawnCodexProcess(codexPath, name, threadId, threadLifecyc
|
|
|
102
93
|
agentLabel: "Codex",
|
|
103
94
|
memorySourceThreadId,
|
|
104
95
|
threadType,
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
96
|
+
spawnChild: (outFd) => {
|
|
97
|
+
const nativeExe = resolveCodexExe();
|
|
98
|
+
const nodeExeResult = !nativeExe && process.platform === "win32" && /\.(cmd|bat)$/i.test(codexPath)
|
|
99
|
+
? resolveCodexNodeExe()
|
|
100
|
+
: null;
|
|
101
|
+
// stdin stays a pipe — the autonomous-loop prompt is delivered over it below.
|
|
102
|
+
const child = nativeExe
|
|
103
|
+
? spawn(nativeExe, cliArgs, detachedChildOptions(nativeExe, outFd, spawnEnv, workingDirectory, "pipe"))
|
|
104
|
+
: nodeExeResult
|
|
105
|
+
? spawn(nodeExeResult.nodeExe, [nodeExeResult.codexJs, ...cliArgs], detachedChildOptions(nodeExeResult.nodeExe, outFd, spawnEnv, workingDirectory, "pipe"))
|
|
106
|
+
: spawn(codexPath, cliArgs, detachedChildOptions(codexPath, outFd, spawnEnv, workingDirectory, "pipe"));
|
|
107
|
+
try {
|
|
108
|
+
child.stdin?.write(prompt + "\n");
|
|
109
|
+
child.stdin?.end();
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
/* child died at spawn — the exit handler reports it */
|
|
113
|
+
}
|
|
114
|
+
return child;
|
|
115
|
+
},
|
|
111
116
|
}, threadLifecycle);
|
|
112
117
|
}
|
|
113
118
|
//# sourceMappingURL=codex-spawn.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-spawn.service.js","sourceRoot":"","sources":["../../src/services/codex-spawn.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"codex-spawn.service.js","sourceRoot":"","sources":["../../src/services/codex-spawn.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
import type { ThreadLifecycleService } from "./thread-lifecycle.service.js";
|
|
7
7
|
import { type SpawnResult } from "./spawn-common.js";
|
|
8
8
|
export declare const resolveCopilotPath: () => string | null;
|
|
9
|
-
export declare function spawnCopilotProcess(copilotPath: string, name: string, threadId: number, threadLifecycle: ThreadLifecycleService, workingDirectory?: string, memorySourceThreadId?: number, threadType?: "worker" | "branch"):
|
|
9
|
+
export declare function spawnCopilotProcess(copilotPath: string, name: string, threadId: number, threadLifecycle: ThreadLifecycleService, workingDirectory?: string, memorySourceThreadId?: number, threadType?: "worker" | "branch"): SpawnResult;
|
|
10
10
|
//# sourceMappingURL=copilot-spawn.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-spawn.service.d.ts","sourceRoot":"","sources":["../../src/services/copilot-spawn.service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"copilot-spawn.service.d.ts","sourceRoot":"","sources":["../../src/services/copilot-spawn.service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E,OAAO,EAWL,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAsE3B,eAAO,MAAM,kBAAkB,QAAO,MAAM,GAAG,IAGL,CAAC;AAE3C,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,sBAAsB,EACvC,gBAAgB,CAAC,EAAE,MAAM,EACzB,oBAAoB,CAAC,EAAE,MAAM,EAC7B,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAC/B,WAAW,CAwDb"}
|
|
@@ -3,13 +3,14 @@
|
|
|
3
3
|
* workspace setup, and the Copilot process launch driven by dashboard settings
|
|
4
4
|
* (model + optional BYOK / OpenRouter provider).
|
|
5
5
|
*/
|
|
6
|
+
import { spawn } from "node:child_process";
|
|
6
7
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
7
8
|
import { homedir } from "node:os";
|
|
8
9
|
import { join } from "node:path";
|
|
9
|
-
import { getCopilotSpawnEnv, getCopilotCustomEnvVars
|
|
10
|
+
import { getCopilotSpawnEnv, getCopilotCustomEnvVars } from "../config/index.js";
|
|
10
11
|
import { PROCESS_BASE_DIR } from "./process.service.js";
|
|
11
12
|
import { buildCopilotMcpConfig } from "./mcp-config.service.js";
|
|
12
|
-
import { sanitizeSpawnEnv, resolveCliPath, resolveWindowsCliPath, normalizeWorkingDirectory, checkSpawnPreconditions, buildThreadLogPath, buildSessionPrompt,
|
|
13
|
+
import { sanitizeSpawnEnv, resolveCliPath, resolveWindowsCliPath, normalizeWorkingDirectory, checkSpawnPreconditions, buildThreadLogPath, buildSessionPrompt, detachedChildOptions, launchAgentChild, stripDenylistedEnvVars, } from "./spawn-common.js";
|
|
13
14
|
const COPILOT_HOME_DIR = "copilot-home";
|
|
14
15
|
// Provider env vars that BYOK controls. Listed so a spawn can explicitly unset
|
|
15
16
|
// any ambient values when BYOK is disabled — keeping the dashboard settings, not
|
|
@@ -63,13 +64,6 @@ function writeCopilotIdentity(copilotHome) {
|
|
|
63
64
|
};
|
|
64
65
|
writeFileSync(targetPath, JSON.stringify(merged, null, 2), "utf-8");
|
|
65
66
|
}
|
|
66
|
-
// The Copilot CLI reads the model + reasoning knobs from its own home settings.json.
|
|
67
|
-
// Writing it here (instead of passing --model) sidesteps GitHub's intermittent
|
|
68
|
-
// "Model not available" rejections on the flag path.
|
|
69
|
-
function writeCopilotSettings(copilotHome, model) {
|
|
70
|
-
mkdirSync(copilotHome, { recursive: true });
|
|
71
|
-
writeFileSync(join(copilotHome, "settings.json"), JSON.stringify({ model, effortLevel: getCopilotEffortLevel(), contextTier: getCopilotContextTier() }, null, 2), "utf-8");
|
|
72
|
-
}
|
|
73
67
|
function ensureCopilotWorkspace(baseDir) {
|
|
74
68
|
const wsDir = join(baseDir, "copilot-workspace");
|
|
75
69
|
mkdirSync(wsDir, { recursive: true });
|
|
@@ -81,7 +75,7 @@ function ensureCopilotWorkspace(baseDir) {
|
|
|
81
75
|
export const resolveCopilotPath = () => process.platform === "win32"
|
|
82
76
|
? resolveWindowsCliPath("copilot")
|
|
83
77
|
: resolveCliPath("copilot", /\.exe$/i);
|
|
84
|
-
export
|
|
78
|
+
export function spawnCopilotProcess(copilotPath, name, threadId, threadLifecycle, workingDirectory, memorySourceThreadId, threadType) {
|
|
85
79
|
const pre = checkSpawnPreconditions("Copilot");
|
|
86
80
|
if ("error" in pre)
|
|
87
81
|
return pre;
|
|
@@ -92,29 +86,7 @@ export async function spawnCopilotProcess(copilotPath, name, threadId, threadLif
|
|
|
92
86
|
writeCopilotInstructions(copilotHomeDir);
|
|
93
87
|
writeCopilotIdentity(copilotHomeDir);
|
|
94
88
|
const logFilePath = buildThreadLogPath(name, threadId, "json");
|
|
95
|
-
|
|
96
|
-
// drive both the model and (optionally) a BYOK provider; provider vars the
|
|
97
|
-
// settings don't supply are explicitly unset so ambient env can't silently
|
|
98
|
-
// keep BYOK on.
|
|
99
|
-
const copilotEnv = getCopilotSpawnEnv();
|
|
100
|
-
const model = copilotEnv.COPILOT_MODEL;
|
|
101
|
-
writeCopilotSettings(copilotHomeDir, model);
|
|
102
|
-
const providerEnv = {};
|
|
103
|
-
for (const k of COPILOT_PROVIDER_ENV_KEYS)
|
|
104
|
-
providerEnv[k] = copilotEnv[k];
|
|
105
|
-
// Custom vars first so the locked built-ins/provider vars that follow win;
|
|
106
|
-
// denylisted keys are stripped so a custom entry can't re-inject a BYOK secret.
|
|
107
|
-
const customEnv = stripDenylistedEnvVars(getCopilotCustomEnvVars());
|
|
108
|
-
const spawnEnv = sanitizeSpawnEnv({
|
|
109
|
-
...customEnv,
|
|
110
|
-
COPILOT_HOME: copilotHomeDir,
|
|
111
|
-
COPILOT_MODEL: model,
|
|
112
|
-
...providerEnv,
|
|
113
|
-
...(memorySourceThreadId !== undefined
|
|
114
|
-
? { MEMORY_SOURCE_THREAD_ID: String(memorySourceThreadId) }
|
|
115
|
-
: {}),
|
|
116
|
-
});
|
|
117
|
-
return launchAgent({
|
|
89
|
+
return launchAgentChild({
|
|
118
90
|
threadId,
|
|
119
91
|
name,
|
|
120
92
|
logFilePath,
|
|
@@ -122,18 +94,37 @@ export async function spawnCopilotProcess(copilotPath, name, threadId, threadLif
|
|
|
122
94
|
agentLabel: "Copilot",
|
|
123
95
|
memorySourceThreadId,
|
|
124
96
|
threadType,
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
97
|
+
spawnChild: (outFd) => {
|
|
98
|
+
// Copilot model + BYOK provider config come from dashboard settings. Settings
|
|
99
|
+
// drive both the model and (optionally) a BYOK provider; provider vars the
|
|
100
|
+
// settings don't supply are explicitly unset so ambient env can't silently
|
|
101
|
+
// keep BYOK on.
|
|
102
|
+
const copilotEnv = getCopilotSpawnEnv();
|
|
103
|
+
const model = copilotEnv.COPILOT_MODEL;
|
|
104
|
+
const providerEnv = {};
|
|
105
|
+
for (const k of COPILOT_PROVIDER_ENV_KEYS)
|
|
106
|
+
providerEnv[k] = copilotEnv[k];
|
|
107
|
+
// Custom vars first so the locked built-ins/provider vars that follow win;
|
|
108
|
+
// denylisted keys are stripped so a custom entry can't re-inject a BYOK secret.
|
|
109
|
+
const customEnv = stripDenylistedEnvVars(getCopilotCustomEnvVars());
|
|
110
|
+
const spawnEnv = sanitizeSpawnEnv({
|
|
111
|
+
...customEnv,
|
|
112
|
+
COPILOT_HOME: copilotHomeDir,
|
|
113
|
+
COPILOT_MODEL: model,
|
|
114
|
+
...providerEnv,
|
|
115
|
+
...(memorySourceThreadId !== undefined
|
|
116
|
+
? { MEMORY_SOURCE_THREAD_ID: String(memorySourceThreadId) }
|
|
117
|
+
: {}),
|
|
118
|
+
});
|
|
119
|
+
return spawn(copilotPath, [
|
|
120
|
+
"-p",
|
|
121
|
+
buildSessionPrompt(name, threadId),
|
|
122
|
+
"--allow-all-tools",
|
|
123
|
+
"--model",
|
|
124
|
+
model,
|
|
125
|
+
"--autopilot",
|
|
126
|
+
], detachedChildOptions(copilotPath, outFd, spawnEnv, workingDirectory));
|
|
127
|
+
},
|
|
137
128
|
}, threadLifecycle);
|
|
138
129
|
}
|
|
139
130
|
//# sourceMappingURL=copilot-spawn.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-spawn.service.js","sourceRoot":"","sources":["../../src/services/copilot-spawn.service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,
|
|
1
|
+
{"version":3,"file":"copilot-spawn.service.js","sourceRoot":"","sources":["../../src/services/copilot-spawn.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poller.d.ts","sourceRoot":"","sources":["../../../src/services/dispatcher/poller.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAyB,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"poller.d.ts","sourceRoot":"","sources":["../../../src/services/dispatcher/poller.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAyB,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAyY5E;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAkHhG"}
|
|
@@ -10,14 +10,10 @@ import { log } from "../../lib/logger.js";
|
|
|
10
10
|
import { errorMessage } from "../../lib/utils.js";
|
|
11
11
|
import { appendToThread, ensureDirs, injectOperatorMessage, OFFSET_FILE, readOffset, resolveThreadForTopic, writeOffset, writeReactionFile, } from "./broker.js";
|
|
12
12
|
// ── /mode + /prompts commands: handled specially (side-effect / keyboard) ──
|
|
13
|
-
import { getPredefinedPrompts, setThreadConversationMode,
|
|
13
|
+
import { getPredefinedPrompts, setThreadConversationMode, } from "../../config/index.js";
|
|
14
14
|
import { registerTopic } from "../../sessions/topic-registry.js";
|
|
15
15
|
import { readLock, refreshLock, removeLock, tryAcquireLock, tryAcquireLockWithRetry, } from "./lock.js";
|
|
16
16
|
const MODE_PATTERN = /^\/mode\s+(concise|voice)\s*$/i;
|
|
17
|
-
// `/detail off` (also `/detailed off`) revokes the grant; `/detail` (also
|
|
18
|
-
// `/detailed`) opens one. Off is matched first so it never falls through to on.
|
|
19
|
-
const DETAIL_OFF_PATTERN = /^\/detail(?:ed)?\s+off\s*$/i;
|
|
20
|
-
const DETAIL_ON_PATTERN = /^\/detail(?:ed)?\s*$/i;
|
|
21
17
|
// Verbatim /prompts command (optionally addressed as /prompts@botname).
|
|
22
18
|
// Intentionally exact-match, never a "contains" test — a stray "/prompts"
|
|
23
19
|
// inside a longer sentence must reach the agent as normal text.
|
|
@@ -296,29 +292,14 @@ async function pollOnce(telegram, chatId) {
|
|
|
296
292
|
},
|
|
297
293
|
};
|
|
298
294
|
try {
|
|
299
|
-
//
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
const modeMatch = trimmed.match(MODE_PATTERN);
|
|
304
|
-
if (modeMatch) {
|
|
305
|
-
// /mode — persists conversation mode to settings.
|
|
295
|
+
// Handle /mode command (side-effect: persists mode to settings)
|
|
296
|
+
if (stored.message.text) {
|
|
297
|
+
const modeMatch = stored.message.text.trim().match(MODE_PATTERN);
|
|
298
|
+
if (modeMatch && typeof threadId === "number") {
|
|
306
299
|
const mode = modeMatch[1].toLowerCase();
|
|
307
300
|
setThreadConversationMode(threadId, mode);
|
|
308
301
|
stored.message.text = `Conversation mode switched to "${mode}".`;
|
|
309
302
|
}
|
|
310
|
-
else if (DETAIL_OFF_PATTERN.test(trimmed)) {
|
|
311
|
-
// /detail off — close the detail window immediately.
|
|
312
|
-
revokeDetailGrant(threadId);
|
|
313
|
-
stored.message.text = "Detail mode OFF.";
|
|
314
|
-
}
|
|
315
|
-
else if (DETAIL_ON_PATTERN.test(trimmed)) {
|
|
316
|
-
// /detail — grant one over-cap report (or DETAIL_GRANT_MINUTES).
|
|
317
|
-
grantDetailWindow(threadId);
|
|
318
|
-
stored.message.text =
|
|
319
|
-
`Detail mode ON — your next long report (or the next ${DETAIL_GRANT_MINUTES} min) ` +
|
|
320
|
-
"will pass the length cap in full.";
|
|
321
|
-
}
|
|
322
303
|
}
|
|
323
304
|
appendToThread(threadId, stored);
|
|
324
305
|
committedOffset = u.update_id + 1;
|