overmind-mcp 2.2.4 → 2.3.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 (74) hide show
  1. package/.mcp.json.example +21 -0
  2. package/README.md +59 -6
  3. package/bin/.gitkeep +0 -0
  4. package/bin/README.md +34 -0
  5. package/dist/lib/InstallHelper.js +1 -1
  6. package/dist/lib/processRegistry.d.ts +71 -0
  7. package/dist/lib/processRegistry.d.ts.map +1 -0
  8. package/dist/lib/processRegistry.js +275 -0
  9. package/dist/lib/processRegistry.js.map +1 -0
  10. package/dist/server.d.ts +14 -1
  11. package/dist/server.d.ts.map +1 -1
  12. package/dist/server.js +58 -1
  13. package/dist/server.js.map +1 -1
  14. package/dist/services/ClaudeRunner.d.ts.map +1 -1
  15. package/dist/services/ClaudeRunner.js +59 -4
  16. package/dist/services/ClaudeRunner.js.map +1 -1
  17. package/dist/services/ClineRunner.d.ts.map +1 -1
  18. package/dist/services/ClineRunner.js +12 -1
  19. package/dist/services/ClineRunner.js.map +1 -1
  20. package/dist/services/GeminiRunner.d.ts.map +1 -1
  21. package/dist/services/GeminiRunner.js +18 -0
  22. package/dist/services/GeminiRunner.js.map +1 -1
  23. package/dist/services/KiloRunner.d.ts.map +1 -1
  24. package/dist/services/KiloRunner.js +28 -1
  25. package/dist/services/KiloRunner.js.map +1 -1
  26. package/dist/services/NousHermesRunner.d.ts.map +1 -1
  27. package/dist/services/NousHermesRunner.js +18 -5
  28. package/dist/services/NousHermesRunner.js.map +1 -1
  29. package/dist/services/OpenClawRunner.d.ts.map +1 -1
  30. package/dist/services/OpenClawRunner.js +12 -2
  31. package/dist/services/OpenClawRunner.js.map +1 -1
  32. package/dist/services/OpenCodeRunner.d.ts.map +1 -1
  33. package/dist/services/OpenCodeRunner.js +12 -1
  34. package/dist/services/OpenCodeRunner.js.map +1 -1
  35. package/dist/services/QwenCliRunner.d.ts.map +1 -1
  36. package/dist/services/QwenCliRunner.js +12 -1
  37. package/dist/services/QwenCliRunner.js.map +1 -1
  38. package/dist/tools/config_example.d.ts.map +1 -1
  39. package/dist/tools/config_example.js +23 -7
  40. package/dist/tools/config_example.js.map +1 -1
  41. package/dist/tools/get_agent_status.d.ts +29 -0
  42. package/dist/tools/get_agent_status.d.ts.map +1 -0
  43. package/dist/tools/get_agent_status.js +45 -0
  44. package/dist/tools/get_agent_status.js.map +1 -0
  45. package/dist/tools/kill_agent.d.ts +22 -0
  46. package/dist/tools/kill_agent.d.ts.map +1 -0
  47. package/dist/tools/kill_agent.js +33 -0
  48. package/dist/tools/kill_agent.js.map +1 -0
  49. package/dist/tools/stream_agent_output.d.ts +30 -0
  50. package/dist/tools/stream_agent_output.d.ts.map +1 -0
  51. package/dist/tools/stream_agent_output.js +44 -0
  52. package/dist/tools/stream_agent_output.js.map +1 -0
  53. package/dist/tools/wait_agent.d.ts +30 -0
  54. package/dist/tools/wait_agent.d.ts.map +1 -0
  55. package/dist/tools/wait_agent.js +68 -0
  56. package/dist/tools/wait_agent.js.map +1 -0
  57. package/docs/ASYNC_AGENT_INTEGRATION.md +311 -0
  58. package/docs/INDEX.md +144 -144
  59. package/docs/docs/OVERMIND_WORKFLOW_GUIDE.md +595 -0
  60. package/docs/docs/PROJECT_STRUCTURE.md +101 -0
  61. package/docs/docs/README_POSTGRES_INTEGRATION.md +229 -0
  62. package/package.json +5 -5
  63. package/scripts/auto-install.mjs +8 -8
  64. package/scripts/postgres-manager.mjs +1 -1
  65. package/scripts/postinstall.mjs +2 -2
  66. package/scripts/setup.mjs +8 -5
  67. package/docs/guides/DEPLOYMENT.md +0 -418
  68. package/docs/guides/SWARM_USAGE.md +0 -444
  69. /package/{install-overmind-unix.sh → bin/install-overmind-unix.sh} +0 -0
  70. /package/{install-overmind-windows.bat → bin/install-overmind-windows.bat} +0 -0
  71. /package/docs/{api/prompt → prompt}/Claude_code.md +0 -0
  72. /package/docs/{api/prompt → prompt}/Kilo.md +0 -0
  73. /package/docs/{api/prompt → prompt}/Kilo_Hermes.md +0 -0
  74. /package/docs/{api/prompt → prompt}/Minimax4.md +0 -0
@@ -0,0 +1,21 @@
1
+ {
2
+ "mcpServers": {
3
+ "overmind": {
4
+ "command": "overmind",
5
+ "description": "OverMind-MCP principal - Orchestration d'agents IA"
6
+ },
7
+ "memory": {
8
+ "command": "overmind",
9
+ "args": ["--memory-only"],
10
+ "description": "OverMind-MCP mémoire - Gestion mémoire vectorielle"
11
+ },
12
+ "overmind-postgres": {
13
+ "command": "overmind-postgres-mcp",
14
+ "description": "OverMind-PostgreSQL-MCP - Serveur PostgreSQL vectoriel optimisé pour OverMind"
15
+ }
16
+ },
17
+ "description": "Configuration MCP OverMind-MCP optimisée pour installation globale npm",
18
+ "version": "2.2.6",
19
+ "installation": "npm install -g overmind-mcp",
20
+ "note": "Après installation globale, les commandes 'overmind' et 'overmind-postgres-mcp' sont disponibles directement dans le système. Cette configuration utilise les binaires globaux installés par npm."
21
+ }
package/README.md CHANGED
@@ -118,12 +118,65 @@ if (!isError) {
118
118
 
119
119
  ## 📂 Structure du Projet
120
120
 
121
- - `src/services/` : Le cœur du système (Logique métier isolée en services).
122
- - `src/tools/` : Les outils MCP qui appellent les services.
123
- - `src/bin/cli.ts` : Le point d'entrée exécutable pour le terminal.
124
- - `src/server.ts` : La définition du serveur FastMCP.
125
- - `src/index.ts` : Les exports publics (API de la bibliothèque).
126
- - `.claude/` : Stockage des agents (Prompts `.md` et Settings `.json`).
121
+ OverMind-MCP est organisé de manière modulaire pour faciliter la navigation et la maintenance.
122
+
123
+ ```
124
+ Workflow/
125
+ ├── 📦 bin/ # Scripts d'installation
126
+ ├── 📋 changelog/ # Historique des versions
127
+ ├── 🐳 docker/ # Configuration Docker
128
+ ├── 🗄️ db/ # Scripts base de données
129
+ ├── ⚙️ config/ # Configurations MCP
130
+ ├── 📚 docs/ # Documentation complète
131
+ ├── 💻 src/ # Code source
132
+ │ ├── bin/ # Points d'entrée CLI
133
+ │ ├── lib/ # Bibliothèques partagées
134
+ │ ├── services/ # Services métier
135
+ │ └── tools/ # Outils MCP
136
+ ├── 🧪 tests/ # Tests unitaires
137
+ └── 🔧 scripts/ # Scripts de maintenance
138
+ ```
139
+
140
+ **📖 Documentation détaillée** : Voir [PROJECT_STRUCTURE.md](PROJECT_STRUCTURE.md) pour une explication complète de chaque dossier.
141
+
142
+ **Points clés :**
143
+ - `src/services/` : Le cœur du système (Logique métier isolée en services)
144
+ - `src/tools/` : Les outils MCP qui appellent les services
145
+ - `src/bin/cli.ts` : Le point d'entrée exécutable pour le terminal
146
+ - `src/server.ts` : La définition du serveur FastMCP
147
+ - `.claude/` : Stockage des agents (Prompts `.md` et Settings `.json`)
148
+
149
+ ---
150
+
151
+ ## ⚙️ Configuration MCP (après installation globale)
152
+
153
+ Après `npm install -g overmind-mcp`, voici la configuration MCP recommandée pour votre client (Claude Code, Cline, etc.) :
154
+
155
+ ```json
156
+ {
157
+ "mcpServers": {
158
+ "overmind": {
159
+ "command": "overmind",
160
+ "description": "OverMind-MCP principal - Orchestration d'agents IA"
161
+ },
162
+ "memory": {
163
+ "command": "overmind",
164
+ "args": ["--memory-only"],
165
+ "description": "OverMind-MCP mémoire - Gestion mémoire vectorielle"
166
+ },
167
+ "overmind-postgres": {
168
+ "command": "overmind-postgres-mcp",
169
+ "description": "OverMind-PostgreSQL-MCP - Serveur PostgreSQL vectoriel optimisé pour OverMind"
170
+ }
171
+ },
172
+ "description": "Configuration MCP OverMind-MCP optimisée pour installation globale npm",
173
+ "version": "2.2.6",
174
+ "installation": "npm install -g overmind-mcp",
175
+ "note": "Après installation globale, les commandes 'overmind' et 'overmind-postgres-mcp' sont disponibles directement dans le système. Cette configuration utilise les binaires globaux installés par npm."
176
+ }
177
+ ```
178
+
179
+ **📖 Exemples de configuration détaillée** : Voir `config/README.md` pour plus de scénarios d'utilisation.
127
180
 
128
181
  ---
129
182
 
package/bin/.gitkeep ADDED
File without changes
package/bin/README.md ADDED
@@ -0,0 +1,34 @@
1
+ # 📦 Installation Scripts
2
+
3
+ Ce dossier contient les scripts d'installation d'OverMind MCP.
4
+
5
+ ## 📜 Fichiers
6
+
7
+ - **install-overmind-unix.sh** - Script d'installation pour Linux/macOS
8
+ - **install-overmind-windows.bat** - Script d'installation pour Windows
9
+
10
+ ## 🚀 Utilisation
11
+
12
+ ### Windows
13
+ ```batch
14
+ cd bin
15
+ install-overmind-windows.bat
16
+ ```
17
+
18
+ ### Linux/macOS
19
+ ```bash
20
+ cd bin
21
+ chmod +x install-overmind-unix.sh
22
+ ./install-overmind-unix.sh
23
+ ```
24
+
25
+ ## 📋 Ce qui est installé
26
+
27
+ - OverMind MCP (NPM package)
28
+ - PostgreSQL + pgvector (Docker)
29
+ - RabbitMQ (Docker)
30
+ - Temporal (Docker)
31
+ - Prometheus (Docker)
32
+ - Grafana (Docker)
33
+ - Jaeger (Docker)
34
+ - Redis (Docker)
@@ -63,7 +63,7 @@ export const CLIS_METADATA = {
63
63
  name: 'Trae CLI',
64
64
  command: 'trae',
65
65
  versionCmd: 'trae --version',
66
- installCmd: 'https://www.trae.ai/download',
66
+ installCmd: 'npm install -g @trae-ai/trae',
67
67
  url: 'https://www.trae.ai/',
68
68
  },
69
69
  };
@@ -0,0 +1,71 @@
1
+ export type ProcessStatus = 'running' | 'done' | 'failed' | 'orphaned';
2
+ export interface ProcessEntry {
3
+ id: string;
4
+ ts: number;
5
+ pid?: number;
6
+ runner?: string;
7
+ agentName: string;
8
+ status: ProcessStatus;
9
+ outputBuffer: string;
10
+ exitCode?: number | null;
11
+ lastOutputAt?: number;
12
+ }
13
+ /**
14
+ * Check if a PID is still alive on the system.
15
+ */
16
+ export declare function isPidAlive(pid: number): Promise<boolean>;
17
+ /**
18
+ * Kill a process tree (PID + all children) — Windows or Unix.
19
+ */
20
+ export declare function killProcessTree(pid: number): Promise<void>;
21
+ /**
22
+ * Register a new running process. Called immediately after spawn(),
23
+ * before sessionId is known.
24
+ */
25
+ export declare function registerProcess(pid: number, meta: {
26
+ agentName: string;
27
+ runner?: string;
28
+ configPath?: string;
29
+ }): Promise<void>;
30
+ /**
31
+ * Link a sessionId to an already-registered PID.
32
+ * Called when the runner emits a sessionId for the first time.
33
+ */
34
+ export declare function linkSessionToPid(sessionId: string, pid: number, configPath?: string): Promise<void>;
35
+ /**
36
+ * Update output buffer for a running process.
37
+ * Called in stdout 'data' handler to enable live streaming.
38
+ */
39
+ export declare function appendOutput(pid: number, chunk: string, configPath?: string): Promise<void>;
40
+ /**
41
+ * Mark a process as done/failed/orphaned.
42
+ */
43
+ export declare function updateProcessStatus(pid: number, status: ProcessStatus, exitCode?: number | null, configPath?: string): Promise<void>;
44
+ /**
45
+ * Get current status + output for an agent.
46
+ */
47
+ export declare function getProcessStatus(agentName: string, runner?: string, configPath?: string): Promise<ProcessEntry | null>;
48
+ /**
49
+ * Kill a running agent by PID.
50
+ */
51
+ export declare function killAgent(agentName: string, runner?: string, configPath?: string): Promise<{
52
+ killed: boolean;
53
+ pid?: number;
54
+ }>;
55
+ /**
56
+ * Unregister (remove) a process entry. Call after TTL expires.
57
+ */
58
+ export declare function unregisterProcess(pid: number, configPath?: string): Promise<void>;
59
+ /**
60
+ * Scan all entries and clean up dead processes and old entries.
61
+ * Called on startup and periodically.
62
+ */
63
+ export declare function cleanupRegistry(configPath?: string): Promise<{
64
+ orphaned: number;
65
+ expired: number;
66
+ }>;
67
+ /**
68
+ * Get all running processes.
69
+ */
70
+ export declare function getRunningProcesses(configPath?: string): Promise<ProcessEntry[]>;
71
+ //# sourceMappingURL=processRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processRegistry.d.ts","sourceRoot":"","sources":["../../src/lib/processRegistry.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEvE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAmCD;;GAEG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAY9D;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IACJ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,aAAa,EACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EACxB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAsB9B;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAuB5C;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAuCD;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,EAAE,CAAC,CAmBzB"}
@@ -0,0 +1,275 @@
1
+ import fs from 'fs/promises';
2
+ import path from 'path';
3
+ import { exec } from 'child_process';
4
+ import { promisify } from 'util';
5
+ import { Mutex } from 'async-mutex';
6
+ 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);
13
+ }
14
+ function buildKey(runner, agentName) {
15
+ return runner ? `${runner}:${agentName}` : agentName;
16
+ }
17
+ async function readStore(workspaceDir) {
18
+ const filePath = getSessionsPath(workspaceDir);
19
+ try {
20
+ const content = await fs.readFile(filePath, 'utf-8');
21
+ return { store: JSON.parse(content), path: filePath };
22
+ }
23
+ catch {
24
+ return { store: {}, path: filePath };
25
+ }
26
+ }
27
+ async function writeStore(store, filePath) {
28
+ const dir = path.dirname(filePath);
29
+ await fs.mkdir(dir, { recursive: true });
30
+ await fs.writeFile(filePath, JSON.stringify(store, null, 2), 'utf-8');
31
+ }
32
+ /**
33
+ * Check if a PID is still alive on the system.
34
+ */
35
+ export async function isPidAlive(pid) {
36
+ try {
37
+ if (process.platform === 'win32') {
38
+ await execAsync(`tasklist /FI "PID eq ${pid}" /FO CSV /NH`);
39
+ return true;
40
+ }
41
+ else {
42
+ await execAsync(`kill -0 ${pid}`);
43
+ return true;
44
+ }
45
+ }
46
+ catch {
47
+ return false;
48
+ }
49
+ }
50
+ /**
51
+ * Kill a process tree (PID + all children) — Windows or Unix.
52
+ */
53
+ export async function killProcessTree(pid) {
54
+ try {
55
+ if (process.platform === 'win32') {
56
+ await execAsync(`taskkill /F /T /PID ${pid}`);
57
+ }
58
+ else {
59
+ await execAsync(`kill -9 ${pid}`);
60
+ }
61
+ }
62
+ catch {
63
+ // Process may have already exited — that's fine
64
+ }
65
+ }
66
+ /**
67
+ * Register a new running process. Called immediately after spawn(),
68
+ * before sessionId is known.
69
+ */
70
+ export async function registerProcess(pid, meta) {
71
+ return registryMutex.runExclusive(async () => {
72
+ const { store, path: filePath } = await readStore(meta.configPath);
73
+ const key = buildKey(meta.runner, meta.agentName);
74
+ // Preserve existing id/ts if any (legacy entry), just update pid/status
75
+ const existing = store[key];
76
+ const entry = typeof existing === 'object' && existing !== null
77
+ ? { ...existing, pid, status: 'running', outputBuffer: existing.outputBuffer || '' }
78
+ : {
79
+ id: '',
80
+ ts: Date.now(),
81
+ pid,
82
+ runner: meta.runner,
83
+ agentName: meta.agentName,
84
+ status: 'running',
85
+ outputBuffer: '',
86
+ };
87
+ store[key] = entry;
88
+ await writeStore(store, filePath);
89
+ });
90
+ }
91
+ /**
92
+ * Link a sessionId to an already-registered PID.
93
+ * Called when the runner emits a sessionId for the first time.
94
+ */
95
+ export async function linkSessionToPid(sessionId, pid, configPath) {
96
+ return registryMutex.runExclusive(async () => {
97
+ const { store, path: filePath } = await readStore(configPath);
98
+ for (const key of Object.keys(store)) {
99
+ const entry = store[key];
100
+ if (typeof entry === 'object' && entry !== null && entry.pid === pid && !entry.id) {
101
+ entry.id = sessionId;
102
+ entry.ts = Date.now();
103
+ entry.lastOutputAt = Date.now();
104
+ store[key] = entry;
105
+ await writeStore(store, filePath);
106
+ return;
107
+ }
108
+ }
109
+ });
110
+ }
111
+ /**
112
+ * Update output buffer for a running process.
113
+ * Called in stdout 'data' handler to enable live streaming.
114
+ */
115
+ export async function appendOutput(pid, chunk, configPath) {
116
+ return registryMutex.runExclusive(async () => {
117
+ const { store, path: filePath } = await readStore(configPath);
118
+ for (const key of Object.keys(store)) {
119
+ const entry = store[key];
120
+ if (typeof entry === 'object' && entry !== null && entry.pid === pid) {
121
+ entry.outputBuffer += chunk;
122
+ entry.lastOutputAt = Date.now();
123
+ store[key] = entry;
124
+ await writeStore(store, filePath);
125
+ return;
126
+ }
127
+ }
128
+ });
129
+ }
130
+ /**
131
+ * Mark a process as done/failed/orphaned.
132
+ */
133
+ export async function updateProcessStatus(pid, status, exitCode, configPath) {
134
+ return registryMutex.runExclusive(async () => {
135
+ const { store, path: filePath } = await readStore(configPath);
136
+ for (const key of Object.keys(store)) {
137
+ const entry = store[key];
138
+ if (typeof entry === 'object' && entry !== null && entry.pid === pid) {
139
+ entry.status = status;
140
+ entry.exitCode = exitCode ?? null;
141
+ entry.lastOutputAt = Date.now();
142
+ store[key] = entry;
143
+ await writeStore(store, filePath);
144
+ return;
145
+ }
146
+ }
147
+ });
148
+ }
149
+ /**
150
+ * Get current status + output for an agent.
151
+ */
152
+ export async function getProcessStatus(agentName, runner, configPath) {
153
+ return registryMutex.runExclusive(async () => {
154
+ const { store } = await readStore(configPath);
155
+ const key = buildKey(runner, agentName);
156
+ const entry = store[key];
157
+ if (!entry)
158
+ return null;
159
+ if (typeof entry === 'string') {
160
+ return { id: entry, ts: Date.now(), agentName, status: 'done', outputBuffer: '' };
161
+ }
162
+ // Check if running process is actually dead
163
+ if (entry.status === 'running' && entry.pid) {
164
+ const alive = await isPidAlive(entry.pid);
165
+ if (!alive) {
166
+ entry.status = 'orphaned';
167
+ }
168
+ }
169
+ return entry;
170
+ });
171
+ }
172
+ /**
173
+ * Kill a running agent by PID.
174
+ */
175
+ export async function killAgent(agentName, runner, configPath) {
176
+ return registryMutex.runExclusive(async () => {
177
+ const { store, path: filePath } = await readStore(configPath);
178
+ const key = buildKey(runner, agentName);
179
+ const entry = store[key];
180
+ if (!entry || typeof entry !== 'object' || entry.status !== 'running') {
181
+ return { killed: false };
182
+ }
183
+ const pid = entry.pid;
184
+ if (!pid)
185
+ return { killed: false };
186
+ await killProcessTree(pid);
187
+ entry.status = 'failed';
188
+ entry.exitCode = null;
189
+ entry.lastOutputAt = Date.now();
190
+ store[key] = entry;
191
+ await writeStore(store, filePath);
192
+ return { killed: true, pid };
193
+ });
194
+ }
195
+ /**
196
+ * Unregister (remove) a process entry. Call after TTL expires.
197
+ */
198
+ export async function unregisterProcess(pid, configPath) {
199
+ return registryMutex.runExclusive(async () => {
200
+ const { store, path: filePath } = await readStore(configPath);
201
+ let changed = false;
202
+ for (const key of Object.keys(store)) {
203
+ const entry = store[key];
204
+ if (typeof entry === 'object' && entry !== null && entry.pid === pid) {
205
+ delete store[key];
206
+ changed = true;
207
+ }
208
+ }
209
+ if (changed) {
210
+ await writeStore(store, filePath);
211
+ }
212
+ });
213
+ }
214
+ /**
215
+ * Scan all entries and clean up dead processes and old entries.
216
+ * Called on startup and periodically.
217
+ */
218
+ export async function cleanupRegistry(configPath) {
219
+ return registryMutex.runExclusive(async () => {
220
+ const { store, path: filePath } = await readStore(configPath);
221
+ const now = Date.now();
222
+ let orphaned = 0;
223
+ let expired = 0;
224
+ let changed = false;
225
+ for (const key of Object.keys(store)) {
226
+ const entry = store[key];
227
+ if (typeof entry !== 'object' || entry === null)
228
+ continue;
229
+ // Check running processes
230
+ if (entry.status === 'running' && entry.pid) {
231
+ const alive = await isPidAlive(entry.pid);
232
+ if (!alive) {
233
+ entry.status = 'orphaned';
234
+ orphaned++;
235
+ changed = true;
236
+ }
237
+ }
238
+ // TTL cleanup for done/failed/orphaned
239
+ if (entry.status !== 'running') {
240
+ const age = now - (entry.lastOutputAt || entry.ts);
241
+ if (age > PROCESS_TTL_MS) {
242
+ delete store[key];
243
+ expired++;
244
+ changed = true;
245
+ }
246
+ }
247
+ }
248
+ if (changed) {
249
+ await writeStore(store, filePath);
250
+ }
251
+ return { orphaned, expired };
252
+ });
253
+ }
254
+ /**
255
+ * Get all running processes.
256
+ */
257
+ export async function getRunningProcesses(configPath) {
258
+ return registryMutex.runExclusive(async () => {
259
+ const { store } = await readStore(configPath);
260
+ const result = [];
261
+ for (const entry of Object.values(store)) {
262
+ if (typeof entry === 'object' && entry !== null && entry.status === 'running') {
263
+ if (entry.pid) {
264
+ const alive = await isPidAlive(entry.pid);
265
+ if (!alive) {
266
+ entry.status = 'orphaned';
267
+ }
268
+ }
269
+ result.push(entry);
270
+ }
271
+ }
272
+ return result;
273
+ });
274
+ }
275
+ //# sourceMappingURL=processRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processRegistry.js","sourceRoot":"","sources":["../../src/lib/processRegistry.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -22,7 +22,7 @@
22
22
  * 2. L'importer dans server.ts → import { <nom> } from './tools/<nom>.js'
23
23
  * 3. Ajouter server.addTool() → name, description, parameters, execute
24
24
  *
25
- * ─── LISTE DES 13 OUTILS ─────────────────────────────────────────────────
25
+ * ─── LISTE DES 17 OUTILS ─────────────────────────────────────────────────
26
26
  *
27
27
  * 1. run_agent → src/tools/run_agent.ts
28
28
  * 2. run_agents_parallel → src/tools/run_agents_parallel.ts
@@ -30,6 +30,19 @@
30
30
  * 4. list_agents → src/tools/manage_agents.ts
31
31
  * 5. delete_agent → src/tools/manage_agents.ts
32
32
  * 6. update_agent_config → src/tools/manage_agents.ts
33
+ * 7. get_agent_configs → src/tools/get_agent_configs.ts
34
+ * 8. memory_search → src/tools/memory_search.ts
35
+ * 9. memory_store → src/tools/memory_store.ts
36
+ * 10. memory_runs → src/tools/memory_runs.ts
37
+ * 11. create_prompt → src/tools/manage_prompts.ts
38
+ * 12. edit_prompt → src/tools/manage_prompts.ts
39
+ * 13. config_example → src/tools/config_example.ts
40
+ * 14. get_agent_status → src/tools/get_agent_status.ts
41
+ * 15. stream_agent_output → src/tools/stream_agent_output.ts
42
+ * 16. kill_agent → src/tools/kill_agent.ts
43
+ * 17. wait_agent → src/tools/wait_agent.ts
44
+ * 5. delete_agent → src/tools/manage_agents.ts
45
+ * 6. update_agent_config → src/tools/manage_agents.ts
33
46
  * 7. create_prompt → src/tools/manage_prompts.ts
34
47
  * 8. edit_prompt → src/tools/manage_prompts.ts
35
48
  * 9. memory_search → src/tools/memory_search.ts
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AA+BlC,wBAAgB,YAAY,CAAC,IAAI,GAAE,MAAuB,iDAwKzD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAmClC,wBAAgB,YAAY,CAAC,IAAI,GAAE,MAAuB,iDAoNzD"}
package/dist/server.js CHANGED
@@ -22,7 +22,7 @@
22
22
  * 2. L'importer dans server.ts → import { <nom> } from './tools/<nom>.js'
23
23
  * 3. Ajouter server.addTool() → name, description, parameters, execute
24
24
  *
25
- * ─── LISTE DES 13 OUTILS ─────────────────────────────────────────────────
25
+ * ─── LISTE DES 17 OUTILS ─────────────────────────────────────────────────
26
26
  *
27
27
  * 1. run_agent → src/tools/run_agent.ts
28
28
  * 2. run_agents_parallel → src/tools/run_agents_parallel.ts
@@ -30,6 +30,19 @@
30
30
  * 4. list_agents → src/tools/manage_agents.ts
31
31
  * 5. delete_agent → src/tools/manage_agents.ts
32
32
  * 6. update_agent_config → src/tools/manage_agents.ts
33
+ * 7. get_agent_configs → src/tools/get_agent_configs.ts
34
+ * 8. memory_search → src/tools/memory_search.ts
35
+ * 9. memory_store → src/tools/memory_store.ts
36
+ * 10. memory_runs → src/tools/memory_runs.ts
37
+ * 11. create_prompt → src/tools/manage_prompts.ts
38
+ * 12. edit_prompt → src/tools/manage_prompts.ts
39
+ * 13. config_example → src/tools/config_example.ts
40
+ * 14. get_agent_status → src/tools/get_agent_status.ts
41
+ * 15. stream_agent_output → src/tools/stream_agent_output.ts
42
+ * 16. kill_agent → src/tools/kill_agent.ts
43
+ * 17. wait_agent → src/tools/wait_agent.ts
44
+ * 5. delete_agent → src/tools/manage_agents.ts
45
+ * 6. update_agent_config → src/tools/manage_agents.ts
33
46
  * 7. create_prompt → src/tools/manage_prompts.ts
34
47
  * 8. edit_prompt → src/tools/manage_prompts.ts
35
48
  * 9. memory_search → src/tools/memory_search.ts
@@ -50,6 +63,10 @@ import { createPrompt, createPromptSchema, editPrompt, editPromptSchema, } from
50
63
  import { listAgents, listAgentsSchema, deleteAgent, deleteAgentSchema, updateAgentConfig, updateAgentConfigSchema, } from './tools/manage_agents.js';
51
64
  import { getAgentConfigs, getAgentConfigsSchema } from './tools/get_agent_configs.js';
52
65
  import { configExample, configExampleSchema } from './tools/config_example.js';
66
+ import { getAgentStatusTool, getAgentStatusSchema } from './tools/get_agent_status.js';
67
+ import { streamAgentOutputTool, streamAgentOutputSchema } from './tools/stream_agent_output.js';
68
+ import { killAgentTool, killAgentSchema } from './tools/kill_agent.js';
69
+ import { waitAgentTool, waitAgentSchema } from './tools/wait_agent.js';
53
70
  function wrapExecute(toolName, fn) {
54
71
  return (...args) => withSpan(`tool.${toolName}`, () => fn(...args));
55
72
  }
@@ -200,6 +217,46 @@ create_agent(name: "planner", runner: "cline", mode: "plan", prompt: "Tu es un p
200
217
  parameters: configExampleSchema,
201
218
  execute: configExample,
202
219
  });
220
+ // ─── 14. get_agent_status ───────────────────────────────────────────────────
221
+ server.addTool({
222
+ name: 'get_agent_status',
223
+ description: `Retourne le statut courant + output buffer d'un agent en exécution.
224
+ Utilise le Process Registry pour suivre les agents via leur PID.
225
+
226
+ **Retourne:**
227
+ - status: running | done | failed | orphaned
228
+ - pid: идентификатор процесса
229
+ - outputBuffer: sortie collectée en temps réel
230
+ - sessionId: ID de session si disponible`,
231
+ parameters: getAgentStatusSchema,
232
+ execute: wrapExecute('get_agent_status', getAgentStatusTool),
233
+ });
234
+ // ─── 15. stream_agent_output ────────────────────────────────────────────────
235
+ server.addTool({
236
+ name: 'stream_agent_output',
237
+ description: `Streaming de la sortie d'un agent en temps réel.
238
+ Retourne tout le output buffer accumulé depuis le début (ou depuis sinceTimestamp).`,
239
+ parameters: streamAgentOutputSchema,
240
+ execute: wrapExecute('stream_agent_output', streamAgentOutputTool),
241
+ });
242
+ // ─── 16. kill_agent ─────────────────────────────────────────────────────────
243
+ server.addTool({
244
+ name: 'kill_agent',
245
+ description: `Tue un agent en cours d'exécution par son PID.
246
+ Sur Windows: taskkill /F /T /PID. Sur Unix: kill -9.
247
+ Retourne { killed: true, pid } si succès.`,
248
+ parameters: killAgentSchema,
249
+ execute: wrapExecute('kill_agent', killAgentTool),
250
+ });
251
+ // ─── 17. wait_agent ─────────────────────────────────────────────────────────
252
+ server.addTool({
253
+ name: 'wait_agent',
254
+ description: `Attend qu'un agent termine son exécution.
255
+ Polling toutes les 1s jusqu'à status != 'running' ou timeout.
256
+ Retourne le résultat final ou l'erreur.`,
257
+ parameters: waitAgentSchema,
258
+ execute: wrapExecute('wait_agent', waitAgentTool),
259
+ });
203
260
  return server;
204
261
  }
205
262
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ClaudeRunner.d.ts","sourceRoot":"","sources":["../../src/services/ClaudeRunner.ts"],"names":[],"mappings":"AAuDA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAS;;IAOpB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;CAqjBlE"}
1
+ {"version":3,"file":"ClaudeRunner.d.ts","sourceRoot":"","sources":["../../src/services/ClaudeRunner.ts"],"names":[],"mappings":"AAkEA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAS;;IAOpB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;CA+mBlE"}