overmind-mcp 2.6.1 → 2.8.0

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.
Files changed (121) hide show
  1. package/.mcp.json.example +41 -21
  2. package/README.md +179 -187
  3. package/bin/README.md +44 -34
  4. package/bin/install-overmind-windows.bat +56 -12
  5. package/dist/bin/cli.js +115 -24
  6. package/dist/bin/cli.js.map +1 -1
  7. package/dist/bin/overmind-client.d.ts +77 -0
  8. package/dist/bin/overmind-client.d.ts.map +1 -0
  9. package/dist/bin/overmind-client.js +221 -0
  10. package/dist/bin/overmind-client.js.map +1 -0
  11. package/dist/lib/agent_lifecycle.d.ts +91 -0
  12. package/dist/lib/agent_lifecycle.d.ts.map +1 -0
  13. package/dist/lib/agent_lifecycle.js +155 -0
  14. package/dist/lib/agent_lifecycle.js.map +1 -0
  15. package/dist/lib/config.d.ts +5 -26
  16. package/dist/lib/config.d.ts.map +1 -1
  17. package/dist/lib/config.js +33 -12
  18. package/dist/lib/config.js.map +1 -1
  19. package/dist/lib/envUtils.d.ts +1 -1
  20. package/dist/lib/envUtils.d.ts.map +1 -1
  21. package/dist/lib/envUtils.js +11 -4
  22. package/dist/lib/envUtils.js.map +1 -1
  23. package/dist/lib/loadEnv.d.ts.map +1 -1
  24. package/dist/lib/loadEnv.js +9 -4
  25. package/dist/lib/loadEnv.js.map +1 -1
  26. package/dist/lib/logger.d.ts.map +1 -1
  27. package/dist/lib/logger.js +20 -4
  28. package/dist/lib/logger.js.map +1 -1
  29. package/dist/lib/orchestration/dispatcher.d.ts.map +1 -1
  30. package/dist/lib/orchestration/dispatcher.js +10 -1
  31. package/dist/lib/orchestration/dispatcher.js.map +1 -1
  32. package/dist/lib/orchestration/swarm.d.ts +1 -0
  33. package/dist/lib/orchestration/swarm.d.ts.map +1 -1
  34. package/dist/lib/orchestration/swarm.js +11 -9
  35. package/dist/lib/orchestration/swarm.js.map +1 -1
  36. package/dist/lib/processRegistry.d.ts +2 -50
  37. package/dist/lib/processRegistry.d.ts.map +1 -1
  38. package/dist/lib/processRegistry.js +191 -286
  39. package/dist/lib/processRegistry.js.map +1 -1
  40. package/dist/memory/MemoryFactory.d.ts.map +1 -1
  41. package/dist/memory/MemoryFactory.js +2 -1
  42. package/dist/memory/MemoryFactory.js.map +1 -1
  43. package/dist/memory/PostgresMemoryProvider.d.ts +1 -0
  44. package/dist/memory/PostgresMemoryProvider.d.ts.map +1 -1
  45. package/dist/memory/PostgresMemoryProvider.js +22 -3
  46. package/dist/memory/PostgresMemoryProvider.js.map +1 -1
  47. package/dist/server.d.ts +1 -1
  48. package/dist/server.d.ts.map +1 -1
  49. package/dist/server.js +84 -80
  50. package/dist/server.js.map +1 -1
  51. package/dist/services/AgentManager.d.ts +1 -0
  52. package/dist/services/AgentManager.d.ts.map +1 -1
  53. package/dist/services/AgentManager.js +27 -1
  54. package/dist/services/AgentManager.js.map +1 -1
  55. package/dist/services/ClaudeRunner.d.ts +0 -12
  56. package/dist/services/ClaudeRunner.d.ts.map +1 -1
  57. package/dist/services/ClaudeRunner.js +26 -132
  58. package/dist/services/ClaudeRunner.js.map +1 -1
  59. package/dist/services/ClineRunner.d.ts.map +1 -1
  60. package/dist/services/ClineRunner.js +16 -7
  61. package/dist/services/ClineRunner.js.map +1 -1
  62. package/dist/services/GeminiRunner.d.ts.map +1 -1
  63. package/dist/services/GeminiRunner.js +13 -6
  64. package/dist/services/GeminiRunner.js.map +1 -1
  65. package/dist/services/KiloRunner.d.ts.map +1 -1
  66. package/dist/services/KiloRunner.js +7 -4
  67. package/dist/services/KiloRunner.js.map +1 -1
  68. package/dist/services/NousHermesRunner.d.ts +4 -0
  69. package/dist/services/NousHermesRunner.d.ts.map +1 -1
  70. package/dist/services/NousHermesRunner.js +131 -34
  71. package/dist/services/NousHermesRunner.js.map +1 -1
  72. package/dist/services/OpenClawRunner.d.ts.map +1 -1
  73. package/dist/services/OpenClawRunner.js +16 -7
  74. package/dist/services/OpenClawRunner.js.map +1 -1
  75. package/dist/services/OpenCodeRunner.d.ts.map +1 -1
  76. package/dist/services/OpenCodeRunner.js +16 -7
  77. package/dist/services/OpenCodeRunner.js.map +1 -1
  78. package/dist/services/PromptManager.d.ts.map +1 -1
  79. package/dist/services/PromptManager.js +4 -0
  80. package/dist/services/PromptManager.js.map +1 -1
  81. package/dist/services/QwenCliRunner.d.ts.map +1 -1
  82. package/dist/services/QwenCliRunner.js +16 -7
  83. package/dist/services/QwenCliRunner.js.map +1 -1
  84. package/dist/tools/agent_control.d.ts +2 -69
  85. package/dist/tools/agent_control.d.ts.map +1 -1
  86. package/dist/tools/agent_control.js +191 -275
  87. package/dist/tools/agent_control.js.map +1 -1
  88. package/dist/tools/config_example.d.ts +2 -2
  89. package/dist/tools/config_example.d.ts.map +1 -1
  90. package/dist/tools/config_example.js +2 -4
  91. package/dist/tools/config_example.js.map +1 -1
  92. package/dist/tools/create_agent.d.ts.map +1 -1
  93. package/dist/tools/create_agent.js +11 -0
  94. package/dist/tools/create_agent.js.map +1 -1
  95. package/dist/tools/manage_agents.d.ts.map +1 -1
  96. package/dist/tools/manage_agents.js +3 -2
  97. package/dist/tools/manage_agents.js.map +1 -1
  98. package/dist/tools/memory_store.d.ts +1 -1
  99. package/dist/tools/run_agent.d.ts +1 -2
  100. package/dist/tools/run_agent.d.ts.map +1 -1
  101. package/dist/tools/run_agent.js +1 -13
  102. package/dist/tools/run_agent.js.map +1 -1
  103. package/dist/tools/run_agent_cli.d.ts +4 -10
  104. package/dist/tools/run_agent_cli.d.ts.map +1 -1
  105. package/dist/tools/run_agent_cli.js +11 -91
  106. package/dist/tools/run_agent_cli.js.map +1 -1
  107. package/dist/tools/run_agents_parallel.d.ts +1 -2
  108. package/dist/tools/run_agents_parallel.d.ts.map +1 -1
  109. package/dist/tools/run_claude.d.ts +0 -1
  110. package/dist/tools/run_claude.d.ts.map +1 -1
  111. package/dist/tools/run_claude.js +1 -9
  112. package/dist/tools/run_claude.js.map +1 -1
  113. package/dist/tools/run_hermes.d.ts +1 -0
  114. package/dist/tools/run_hermes.d.ts.map +1 -1
  115. package/dist/tools/run_hermes.js +4 -3
  116. package/dist/tools/run_hermes.js.map +1 -1
  117. package/docs/agent-http-tutorial.md +527 -0
  118. package/package.json +114 -112
  119. package/scripts/postgres-manager.mjs +0 -0
  120. package/scripts/setup.mjs +0 -0
  121. package/scripts/uninstall.mjs +0 -0
@@ -1,350 +1,255 @@
1
+ /**
2
+ * processRegistry.ts — Persistence layer (disk) + OS-level kill helpers
3
+ * =====================================================================
4
+ *
5
+ * ONLY handles:
6
+ * - Read/write ProcessEntry to .claude/process-registry.json
7
+ * - Background sweeper (cleanupRegistry every 5min)
8
+ * - OS-level killProcessTree + isPidAlive (Windows tasklist / Unix kill -0)
9
+ *
10
+ * Hot-path state (outputBuffer, live status) lives in agent_lifecycle.
11
+ */
1
12
  import fs from 'fs/promises';
2
13
  import path from 'path';
3
- import { exec } from 'child_process';
4
- import { promisify } from 'util';
5
- import { Mutex } from 'async-mutex';
14
+ import { spawn } from 'child_process';
6
15
  import { getWorkspaceDir } from './config.js';
7
- const execAsync = promisify(exec);
8
- const registryMutex = new Mutex();
9
- const SESSIONS_FILE = '.claude/sessions.json';
10
- const PROCESS_TTL_MS = 60 * 60 * 1000; // 1h after done/failed → cleanup
11
- function getSessionsPath(workspaceDir) {
12
- return path.resolve(workspaceDir || getWorkspaceDir(), SESSIONS_FILE);
16
+ const REGISTRY_FILE = '.claude/process-registry.json';
17
+ const PROCESS_TTL_MS = 60 * 60 * 1000;
18
+ const CLEANUP_INTERVAL_MS = 5 * 60 * 1000;
19
+ // ─── Path helpers ─────────────────────────────────────────────────────────────
20
+ function getRegistryPath(workspaceDir) {
21
+ return path.resolve(workspaceDir || getWorkspaceDir(), REGISTRY_FILE);
13
22
  }
14
23
  function buildKey(runner, agentName) {
15
24
  return runner ? `${runner}:${agentName}` : agentName;
16
25
  }
17
- /**
18
- * Normalize any stored value into a full ProcessEntry.
19
- *
20
- * Two legacy shapes coexist with current full entries in sessions.json:
21
- * 1. String: `"agent": "sessionId"` — predates the registry, just an id.
22
- * 2. Partial object: `"runner:agent": { id, ts }` — early registry, no status/buffer fields.
23
- *
24
- * Without normalization, callers see `undefined` for `agentName`, `runner`, `status`,
25
- * and `outputBuffer` when they hit a legacy partial. We recover `runner`/`agentName`
26
- * from the key (the `runner:agentName` convention from buildKey) and default
27
- * `status` to 'done' since legacy entries are not actively tracked.
28
- */
29
- function normalizeEntry(raw, key) {
30
- if (raw === undefined || raw === null)
31
- return null;
32
- const colonIdx = key.indexOf(':');
33
- const runnerFromKey = colonIdx >= 0 ? key.slice(0, colonIdx) : undefined;
34
- const agentNameFromKey = colonIdx >= 0 ? key.slice(colonIdx + 1) : key;
35
- if (typeof raw === 'string') {
36
- return {
37
- id: raw,
38
- ts: Date.now(),
39
- runner: runnerFromKey,
40
- agentName: agentNameFromKey,
41
- status: 'done',
42
- outputBuffer: '',
43
- };
44
- }
45
- return {
46
- id: typeof raw.id === 'string' ? raw.id : '',
47
- ts: typeof raw.ts === 'number' ? raw.ts : Date.now(),
48
- pid: raw.pid,
49
- runner: raw.runner ?? runnerFromKey,
50
- agentName: raw.agentName ?? agentNameFromKey,
51
- status: raw.status ?? 'done',
52
- outputBuffer: typeof raw.outputBuffer === 'string' ? raw.outputBuffer : '',
53
- exitCode: raw.exitCode,
54
- lastOutputAt: raw.lastOutputAt,
55
- logFile: typeof raw.logFile === 'string' ? raw.logFile : undefined,
56
- detached: typeof raw.detached === 'boolean' ? raw.detached : undefined,
57
- };
58
- }
26
+ // ─── Disk persistence ──────────────────────────────────────────────────────────
59
27
  async function readStore(workspaceDir) {
60
- const filePath = getSessionsPath(workspaceDir);
28
+ const filePath = getRegistryPath(workspaceDir);
61
29
  try {
62
30
  const content = await fs.readFile(filePath, 'utf-8');
63
31
  return { store: JSON.parse(content), path: filePath };
64
32
  }
65
33
  catch {
66
- return { store: {}, path: filePath };
34
+ return { store: { processes: {}, version: 2 }, path: filePath };
67
35
  }
68
36
  }
37
+ let writeTimer = null;
38
+ let writePending = false;
39
+ const pendingWrites = new Map();
69
40
  async function writeStore(store, filePath) {
70
- const dir = path.dirname(filePath);
71
- await fs.mkdir(dir, { recursive: true });
72
- await fs.writeFile(filePath, JSON.stringify(store, null, 2), 'utf-8');
41
+ pendingWrites.set(filePath, store);
42
+ if (writePending)
43
+ return;
44
+ writePending = true;
45
+ await new Promise((resolve) => {
46
+ writeTimer = setTimeout(async () => {
47
+ writePending = false;
48
+ writeTimer = null;
49
+ const entries = new Map(pendingWrites);
50
+ pendingWrites.clear();
51
+ for (const [fPath, s] of entries) {
52
+ try {
53
+ await fs.mkdir(path.dirname(fPath), { recursive: true });
54
+ const tmp = fPath + '.tmp.' + Math.random().toString(36).slice(2);
55
+ await fs.writeFile(tmp, JSON.stringify(s, null, 2), 'utf-8');
56
+ await fs.rename(tmp, fPath);
57
+ }
58
+ catch (e) {
59
+ console.error(`[ProcessRegistry] Write failed for ${fPath}:`, e);
60
+ }
61
+ }
62
+ resolve();
63
+ }, 250);
64
+ });
73
65
  }
74
- /**
75
- * Check if a PID is still alive on the system.
76
- * On Windows: parse tasklist output to verify the PID actually appears.
77
- * On Unix: use `kill -0` which returns error if process doesn't exist.
78
- */
66
+ // ─── OS-level process utilities ───────────────────────────────────────────────
67
+ const pidCache = new Map();
68
+ const PID_CACHE_TTL = 2000;
79
69
  export async function isPidAlive(pid) {
70
+ if (!Number.isFinite(pid) || pid <= 0)
71
+ return false;
72
+ const cached = pidCache.get(pid);
73
+ if (cached && Date.now() - cached.ts < PID_CACHE_TTL)
74
+ return cached.alive;
80
75
  try {
81
76
  if (process.platform === 'win32') {
82
- const { stdout } = await execAsync(`tasklist /FI "PID eq ${pid}" /FO CSV /NH`);
83
- // tasklist returns "INFO: No tasks are running." with exit code 0 when no match
84
- const trimmed = stdout.trim();
85
- if (trimmed.includes('No tasks are running') || !trimmed) {
86
- return false;
87
- }
88
- // Output format: "imagename","pid","sessionname","sessionnum","memory"
89
- // If PID appears, it will be in the second CSV field
90
- const lines = trimmed.split('\n');
91
- for (const line of lines) {
92
- const parts = line.split(',');
93
- if (parts.length >= 2) {
94
- const pidStr = parts[1].replace(/"/g, '').trim();
95
- if (pidStr === String(pid)) {
96
- return true;
97
- }
98
- }
99
- }
100
- return false;
77
+ const result = await new Promise((resolve) => {
78
+ const child = spawn('tasklist', ['/FI', `PID eq ${pid}`, '/FO', 'CSV', '/NH'], {
79
+ windowsHide: true,
80
+ stdio: ['pipe', 'pipe', 'pipe'],
81
+ });
82
+ let out = '';
83
+ child.stdout.on('data', (d) => { out += d.toString(); });
84
+ child.on('close', () => {
85
+ const trimmed = out.trim();
86
+ resolve(!trimmed.includes('No tasks are running') && trimmed.includes(String(pid)));
87
+ });
88
+ child.on('error', () => resolve(false));
89
+ });
90
+ pidCache.set(pid, { alive: result, ts: Date.now() });
91
+ return result;
101
92
  }
102
93
  else {
103
- await execAsync(`kill -0 ${pid}`);
104
- return true;
94
+ const { execFileSync } = await import('child_process');
95
+ try {
96
+ execFileSync('kill', ['-0', String(pid)], { timeout: 2000 });
97
+ pidCache.set(pid, { alive: true, ts: Date.now() });
98
+ return true;
99
+ }
100
+ catch {
101
+ pidCache.set(pid, { alive: false, ts: Date.now() });
102
+ return false;
103
+ }
105
104
  }
106
105
  }
107
106
  catch {
108
107
  return false;
109
108
  }
110
109
  }
111
- /**
112
- * Kill a process tree (PID + all children) — Windows or Unix.
113
- */
114
110
  export async function killProcessTree(pid) {
111
+ if (!Number.isFinite(pid) || pid <= 0)
112
+ return;
115
113
  try {
116
114
  if (process.platform === 'win32') {
117
- await execAsync(`taskkill /F /T /PID ${pid}`);
115
+ await new Promise((resolve) => {
116
+ const child = spawn('taskkill', ['/F', '/T', '/PID', String(pid)], {
117
+ windowsHide: true,
118
+ stdio: 'pipe',
119
+ });
120
+ child.on('close', () => resolve());
121
+ child.on('error', () => resolve());
122
+ });
118
123
  }
119
124
  else {
120
- await execAsync(`kill -9 ${pid}`);
125
+ await new Promise((resolve) => {
126
+ const child = spawn('kill', ['-9', String(pid)], { stdio: 'pipe' });
127
+ child.on('close', () => resolve());
128
+ child.on('error', () => resolve());
129
+ });
121
130
  }
131
+ pidCache.delete(pid);
122
132
  }
123
133
  catch {
124
- // Process may have already exited that's fine
134
+ // Already dead — fine
125
135
  }
126
136
  }
127
- /**
128
- * Register a new running process. Called immediately after spawn(),
129
- * before sessionId is known.
130
- */
137
+ // ─── Registry operations ──────────────────────────────────────────────────────
131
138
  export async function registerProcess(pid, meta) {
132
- return registryMutex.runExclusive(async () => {
133
- const { store, path: filePath } = await readStore(meta.configPath);
134
- const key = buildKey(meta.runner, meta.agentName);
135
- // Preserve existing id/ts if any (legacy entry), reset status to running.
136
- // Always overwrite agentName/runner from meta so legacy partials are repaired.
137
- const existing = normalizeEntry(store[key], key);
138
- const entry = {
139
- id: existing?.id ?? '',
140
- ts: existing?.ts ?? Date.now(),
141
- pid,
142
- runner: meta.runner,
143
- agentName: meta.agentName,
144
- status: 'running',
145
- outputBuffer: existing?.outputBuffer ?? '',
146
- logFile: meta.logFile,
147
- detached: meta.detached,
148
- };
149
- store[key] = entry;
150
- await writeStore(store, filePath);
151
- });
139
+ const { store, path: filePath } = await readStore(meta.configPath);
140
+ const key = buildKey(meta.runner, meta.agentName);
141
+ store.processes[key] = {
142
+ id: '',
143
+ ts: Date.now(),
144
+ pid,
145
+ runner: meta.runner,
146
+ agentName: meta.agentName,
147
+ status: 'running',
148
+ exitCode: null,
149
+ };
150
+ await writeStore(store, filePath);
152
151
  }
153
- /**
154
- * Link a sessionId to an already-registered PID.
155
- * Called when the runner emits a sessionId for the first time.
156
- */
157
152
  export async function linkSessionToPid(sessionId, pid, configPath) {
158
- return registryMutex.runExclusive(async () => {
159
- const { store, path: filePath } = await readStore(configPath);
160
- for (const key of Object.keys(store)) {
161
- const entry = store[key];
162
- if (typeof entry === 'object' && entry !== null && entry.pid === pid && !entry.id) {
163
- entry.id = sessionId;
164
- entry.ts = Date.now();
165
- entry.lastOutputAt = Date.now();
166
- store[key] = entry;
167
- await writeStore(store, filePath);
168
- return;
169
- }
153
+ const { store, path: filePath } = await readStore(configPath);
154
+ for (const key of Object.keys(store.processes)) {
155
+ const entry = store.processes[key];
156
+ if (entry.pid === pid) {
157
+ entry.id = sessionId;
158
+ entry.ts = Date.now();
159
+ store.processes[key] = entry;
160
+ await writeStore(store, filePath);
161
+ return;
170
162
  }
171
- });
163
+ }
172
164
  }
173
- /**
174
- * Update output buffer for a running process.
175
- * Called in stdout 'data' handler to enable live streaming.
176
- */
165
+ /** appendOutput — NO-OP: agent_lifecycle handles output in RAM */
177
166
  export async function appendOutput(pid, chunk, configPath) {
178
- return registryMutex.runExclusive(async () => {
179
- const { store, path: filePath } = await readStore(configPath);
180
- for (const key of Object.keys(store)) {
181
- const entry = store[key];
182
- if (typeof entry === 'object' && entry !== null && entry.pid === pid) {
183
- entry.outputBuffer += chunk;
184
- entry.lastOutputAt = Date.now();
185
- store[key] = entry;
186
- await writeStore(store, filePath);
187
- return;
188
- }
189
- }
190
- });
167
+ void pid;
168
+ void chunk;
169
+ void configPath;
191
170
  }
192
- /**
193
- * Mark a process as done/failed/orphaned.
194
- */
195
171
  export async function updateProcessStatus(pid, status, exitCode, configPath) {
196
- return registryMutex.runExclusive(async () => {
197
- const { store, path: filePath } = await readStore(configPath);
198
- for (const key of Object.keys(store)) {
199
- const entry = store[key];
200
- if (typeof entry === 'object' && entry !== null && entry.pid === pid) {
201
- entry.status = status;
202
- entry.exitCode = exitCode ?? null;
203
- entry.lastOutputAt = Date.now();
204
- store[key] = entry;
205
- await writeStore(store, filePath);
206
- return;
207
- }
172
+ const { store, path: filePath } = await readStore(configPath);
173
+ for (const key of Object.keys(store.processes)) {
174
+ const entry = store.processes[key];
175
+ if (entry.pid === pid) {
176
+ entry.status = status;
177
+ entry.exitCode = exitCode ?? null;
178
+ entry.lastOutputAt = Date.now();
179
+ store.processes[key] = entry;
180
+ await writeStore(store, filePath);
181
+ return;
208
182
  }
209
- });
183
+ }
210
184
  }
211
- /**
212
- * Get current status + output for an agent.
213
- */
214
185
  export async function getProcessStatus(agentName, runner, configPath) {
215
- return registryMutex.runExclusive(async () => {
216
- const { store } = await readStore(configPath);
217
- const key = buildKey(runner, agentName);
218
- const entry = normalizeEntry(store[key], key);
219
- if (!entry)
220
- return null;
221
- // Check if running process is actually dead.
222
- // For detached agents, a dead PID is the normal completion path → 'done'.
223
- // For attached agents, it means the parent's close handler never fired → 'orphaned'.
224
- if (entry.status === 'running' && entry.pid) {
225
- const alive = await isPidAlive(entry.pid);
226
- if (!alive) {
227
- entry.status = entry.detached ? 'done' : 'orphaned';
228
- }
229
- }
230
- return entry;
231
- });
186
+ const { store } = await readStore(configPath);
187
+ const key = buildKey(runner, agentName);
188
+ return store.processes[key] ?? null;
232
189
  }
233
- /**
234
- * Kill a running agent by PID.
235
- */
236
190
  export async function killAgent(agentName, runner, configPath) {
237
- return registryMutex.runExclusive(async () => {
238
- const { store, path: filePath } = await readStore(configPath);
239
- const key = buildKey(runner, agentName);
240
- const entry = store[key];
241
- if (!entry || typeof entry !== 'object' || entry.status !== 'running') {
242
- return { killed: false };
243
- }
244
- const pid = entry.pid;
245
- if (!pid)
246
- return { killed: false };
191
+ const { store, path: filePath } = await readStore(configPath);
192
+ const key = buildKey(runner, agentName);
193
+ const entry = store.processes[key];
194
+ if (!entry || entry.status !== 'running')
195
+ return { killed: false };
196
+ const pid = entry.pid;
197
+ if (pid)
247
198
  await killProcessTree(pid);
248
- entry.status = 'failed';
249
- entry.exitCode = null;
250
- entry.lastOutputAt = Date.now();
251
- store[key] = entry;
252
- await writeStore(store, filePath);
253
- return { killed: true, pid };
254
- });
199
+ entry.status = 'failed';
200
+ entry.exitCode = null;
201
+ entry.lastOutputAt = Date.now();
202
+ store.processes[key] = entry;
203
+ await writeStore(store, filePath);
204
+ return { killed: true, pid };
255
205
  }
256
- /**
257
- * Unregister (remove) a process entry. Call after TTL expires.
258
- */
259
206
  export async function unregisterProcess(pid, configPath) {
260
- return registryMutex.runExclusive(async () => {
261
- const { store, path: filePath } = await readStore(configPath);
262
- let changed = false;
263
- for (const key of Object.keys(store)) {
264
- const raw = store[key];
265
- if (typeof raw === 'object' && raw !== null && raw.pid === pid) {
266
- tryDeleteLogFile(raw.logFile);
267
- delete store[key];
268
- changed = true;
269
- }
207
+ const { store, path: filePath } = await readStore(configPath);
208
+ let changed = false;
209
+ for (const key of Object.keys(store.processes)) {
210
+ if (store.processes[key].pid === pid) {
211
+ delete store.processes[key];
212
+ changed = true;
270
213
  }
271
- if (changed) {
272
- await writeStore(store, filePath);
273
- }
274
- });
275
- }
276
- /** Best-effort log file deletion. Swallows errors — caller is in cleanup path. */
277
- function tryDeleteLogFile(logFile) {
278
- if (!logFile)
279
- return;
280
- fs.unlink(logFile).catch(() => {
281
- // Already gone or locked — nothing we can do here.
282
- });
214
+ }
215
+ if (changed)
216
+ await writeStore(store, filePath);
283
217
  }
284
- /**
285
- * Scan all entries and clean up dead processes and old entries.
286
- * Called on startup and periodically.
287
- */
288
218
  export async function cleanupRegistry(configPath) {
289
- return registryMutex.runExclusive(async () => {
290
- const { store, path: filePath } = await readStore(configPath);
291
- const now = Date.now();
292
- let orphaned = 0;
293
- let expired = 0;
294
- let changed = false;
295
- for (const key of Object.keys(store)) {
296
- const raw = store[key];
297
- const entry = normalizeEntry(raw, key);
298
- if (!entry)
299
- continue;
300
- // Check running processes
301
- if (entry.status === 'running' && entry.pid) {
302
- const alive = await isPidAlive(entry.pid);
303
- if (!alive) {
304
- entry.status = entry.detached ? 'done' : 'orphaned';
305
- store[key] = entry;
306
- if (!entry.detached)
307
- orphaned++;
308
- changed = true;
309
- }
310
- }
311
- // TTL cleanup for done/failed/orphaned
312
- if (entry.status !== 'running') {
313
- const age = now - (entry.lastOutputAt ?? entry.ts);
314
- if (age > PROCESS_TTL_MS) {
315
- tryDeleteLogFile(entry.logFile);
316
- delete store[key];
317
- expired++;
318
- changed = true;
319
- }
219
+ const { store, path: filePath } = await readStore(configPath);
220
+ const now = Date.now();
221
+ let orphaned = 0;
222
+ let expired = 0;
223
+ let changed = false;
224
+ for (const key of Object.keys(store.processes)) {
225
+ const entry = store.processes[key];
226
+ if (entry.status === 'running' && entry.pid) {
227
+ const alive = await isPidAlive(entry.pid);
228
+ if (!alive) {
229
+ entry.status = 'orphaned';
230
+ orphaned++;
231
+ changed = true;
320
232
  }
321
233
  }
322
- if (changed) {
323
- await writeStore(store, filePath);
234
+ if (entry.status !== 'running') {
235
+ const age = now - (entry.lastOutputAt || entry.ts);
236
+ if (age > PROCESS_TTL_MS) {
237
+ delete store.processes[key];
238
+ expired++;
239
+ changed = true;
240
+ }
324
241
  }
325
- return { orphaned, expired };
326
- });
242
+ }
243
+ if (changed)
244
+ await writeStore(store, filePath);
245
+ return { orphaned, expired };
327
246
  }
328
- /**
329
- * Get all running processes.
330
- */
331
247
  export async function getRunningProcesses(configPath) {
332
- return registryMutex.runExclusive(async () => {
333
- const { store } = await readStore(configPath);
334
- const result = [];
335
- for (const key of Object.keys(store)) {
336
- const entry = normalizeEntry(store[key], key);
337
- if (entry && entry.status === 'running') {
338
- if (entry.pid) {
339
- const alive = await isPidAlive(entry.pid);
340
- if (!alive) {
341
- entry.status = entry.detached ? 'done' : 'orphaned';
342
- }
343
- }
344
- result.push(entry);
345
- }
346
- }
347
- return result;
348
- });
248
+ const { store } = await readStore(configPath);
249
+ return Object.values(store.processes).filter((e) => e.status === 'running');
250
+ }
251
+ export function startAutoCleanup(configPath) {
252
+ cleanupRegistry(configPath).catch(() => { });
253
+ setInterval(() => { cleanupRegistry(configPath).catch(() => { }); }, CLEANUP_INTERVAL_MS);
349
254
  }
350
255
  //# sourceMappingURL=processRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processRegistry.js","sourceRoot":"","sources":["../../src/lib/processRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processRegistry.js","sourceRoot":"","sources":["../../src/lib/processRegistry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryFactory.d.ts","sourceRoot":"","sources":["../../src/memory/MemoryFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAc5D,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAEzG;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAIlD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAElD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CASxC;AAKD;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBtE"}
1
+ {"version":3,"file":"MemoryFactory.d.ts","sourceRoot":"","sources":["../../src/memory/MemoryFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAc5D,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAEzG;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAIlD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAElD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CASxC;AAKD;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBtE"}
@@ -63,7 +63,8 @@ export async function storeRun(params) {
63
63
  agentName: params.agentName,
64
64
  }, 'CRITICAL: Failed to store run in memory - database may be unavailable!');
65
65
  // Re-throw so the runner can report this to the user
66
- throw new Error(`MEMORY_UNAVAILABLE: ${err.message}`, { cause: error });
66
+ // Don't leak connection details keep error generic, details in logs
67
+ throw new Error('MEMORY_UNAVAILABLE: Database operation failed — check server logs', { cause: error });
67
68
  }
68
69
  }
69
70
  //# sourceMappingURL=MemoryFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryFactory.js","sourceRoot":"","sources":["../../src/memory/MemoryFactory.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;AAE/C,IAAI,SAAS,GAA0B,IAAI,CAAC;AAC5C,IAAI,cAAc,GAAG,IAAI,CAAC;AAC1B,IAAI,YAAY,GAAkB,IAAI,CAAC;AAEvC,6BAA6B;AAC7B,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAEzG;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAChC,SAAS,GAAG,IAAI,sBAAsB,EAAE,CAAC;IACzC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,2BAA2B,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAC7C,cAAc,GAAG,KAAK,CAAC;QACvB,YAAY,GAAG,KAAK,EAAE,OAAO,IAAI,OAAO,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,qCAAqC,CAAC,CAAC;QAExF,uEAAuE;IACzE,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;AAChE,CAAC;AAED,4BAA4B;AAC5B,iBAAiB,EAAE,CAAC;AAEpB;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAsB;IACnD,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IACrC,IAAI,CAAC;QACH,cAAc,GAAG,IAAI,CAAC;QACtB,YAAY,GAAG,IAAI,CAAC;QACpB,OAAO,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,cAAc,GAAG,KAAK,CAAC;QACvB,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC;YACX,KAAK,EAAE,GAAG,CAAC,OAAO;YAClB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,EAAE,wEAAwE,CAAC,CAAC;QAE7E,qDAAqD;QACrD,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"MemoryFactory.js","sourceRoot":"","sources":["../../src/memory/MemoryFactory.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;AAE/C,IAAI,SAAS,GAA0B,IAAI,CAAC;AAC5C,IAAI,cAAc,GAAG,IAAI,CAAC;AAC1B,IAAI,YAAY,GAAkB,IAAI,CAAC;AAEvC,6BAA6B;AAC7B,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAEzG;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAChC,SAAS,GAAG,IAAI,sBAAsB,EAAE,CAAC;IACzC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,2BAA2B,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAC7C,cAAc,GAAG,KAAK,CAAC;QACvB,YAAY,GAAG,KAAK,EAAE,OAAO,IAAI,OAAO,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,qCAAqC,CAAC,CAAC;QAExF,uEAAuE;IACzE,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;AAChE,CAAC;AAED,4BAA4B;AAC5B,iBAAiB,EAAE,CAAC;AAEpB;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAsB;IACnD,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IACrC,IAAI,CAAC;QACH,cAAc,GAAG,IAAI,CAAC;QACtB,YAAY,GAAG,IAAI,CAAC;QACpB,OAAO,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,cAAc,GAAG,KAAK,CAAC;QACvB,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC;YACX,KAAK,EAAE,GAAG,CAAC,OAAO;YAClB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,EAAE,wEAAwE,CAAC,CAAC;QAE7E,qDAAqD;QACrD,sEAAsE;QACtE,MAAM,IAAI,KAAK,CAAC,mEAAmE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACzG,CAAC;AACH,CAAC"}
@@ -11,6 +11,7 @@ export declare class PostgresMemoryProvider implements MemoryProvider {
11
11
  private coreDbName;
12
12
  private dbVectorSupport;
13
13
  private dbCreationInProgress;
14
+ private poolCleanupHandlers;
14
15
  constructor();
15
16
  private sanitizeIdentifier;
16
17
  private getDbName;
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresMemoryProvider.d.ts","sourceRoot":"","sources":["../../src/memory/PostgresMemoryProvider.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,cAAc,EACd,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAgBpB,UAAU,aAAa;IACrB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CACxC;AAMD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAGzE;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAE3E;AA6BD,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,eAAe,CAAO;IAC9B,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,oBAAoB,CAAqB;;IAOjD,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,SAAS;YAKH,UAAU;YAqEV,oBAAoB;YA+FpB,YAAY;IAoGpB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IA8CjD,cAAc,CAAC,MAAM,EAAE;QAC3B,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,MAAM,CAAC;IA4Bb,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAkEjE,aAAa,CAAC,MAAM,EAAE;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAsBjB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAuBzD"}
1
+ {"version":3,"file":"PostgresMemoryProvider.d.ts","sourceRoot":"","sources":["../../src/memory/PostgresMemoryProvider.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,cAAc,EACd,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAgBpB,UAAU,aAAa;IACrB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CACxC;AAMD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAGzE;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAE3E;AA6BD,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,eAAe,CAAO;IAC9B,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,oBAAoB,CAAqB;IACjD,OAAO,CAAC,mBAAmB,CAAiC;;IAO5D,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,SAAS;YAKH,UAAU;YAqFV,oBAAoB;YAmGpB,YAAY;IAoGpB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IA8CjD,cAAc,CAAC,MAAM,EAAE;QAC3B,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,MAAM,CAAC;IA4Bb,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAkEjE,aAAa,CAAC,MAAM,EAAE;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAsBjB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAuBzD"}