overmind-mcp 2.4.2 → 2.5.1

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 (158) hide show
  1. package/.mcp.json.example +21 -0
  2. package/README.md +107 -80
  3. package/assets/overmind.png +0 -0
  4. package/bin/.gitkeep +0 -0
  5. package/bin/README.md +34 -0
  6. package/bin/install-overmind-unix.sh +412 -0
  7. package/bin/install-overmind-windows.bat +407 -0
  8. package/dist/bin/cli.js +438 -7
  9. package/dist/bin/cli.js.map +1 -1
  10. package/dist/index.d.ts +2 -2
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +3 -2
  13. package/dist/index.js.map +1 -1
  14. package/dist/lib/config.d.ts +31 -1
  15. package/dist/lib/config.d.ts.map +1 -1
  16. package/dist/lib/config.js +19 -27
  17. package/dist/lib/config.js.map +1 -1
  18. package/dist/lib/sessions.d.ts +3 -2
  19. package/dist/lib/sessions.d.ts.map +1 -1
  20. package/dist/lib/sessions.js +94 -25
  21. package/dist/lib/sessions.js.map +1 -1
  22. package/dist/memory/MemoryFactory.d.ts +15 -1
  23. package/dist/memory/MemoryFactory.d.ts.map +1 -1
  24. package/dist/memory/MemoryFactory.js +53 -3
  25. package/dist/memory/MemoryFactory.js.map +1 -1
  26. package/dist/memory/PostgresMemoryProvider.d.ts +7 -0
  27. package/dist/memory/PostgresMemoryProvider.d.ts.map +1 -1
  28. package/dist/memory/PostgresMemoryProvider.js +180 -105
  29. package/dist/memory/PostgresMemoryProvider.js.map +1 -1
  30. package/dist/server.d.ts +41 -0
  31. package/dist/server.d.ts.map +1 -1
  32. package/dist/server.js +152 -26
  33. package/dist/server.js.map +1 -1
  34. package/dist/services/AgentManager.d.ts.map +1 -1
  35. package/dist/services/AgentManager.js +67 -11
  36. package/dist/services/AgentManager.js.map +1 -1
  37. package/dist/services/ClaudeRunner.d.ts +8 -0
  38. package/dist/services/ClaudeRunner.d.ts.map +1 -1
  39. package/dist/services/ClaudeRunner.js +514 -213
  40. package/dist/services/ClaudeRunner.js.map +1 -1
  41. package/dist/services/ClineRunner.d.ts +7 -0
  42. package/dist/services/ClineRunner.d.ts.map +1 -1
  43. package/dist/services/ClineRunner.js +80 -11
  44. package/dist/services/ClineRunner.js.map +1 -1
  45. package/dist/services/GeminiRunner.d.ts +6 -0
  46. package/dist/services/GeminiRunner.d.ts.map +1 -1
  47. package/dist/services/GeminiRunner.js +285 -58
  48. package/dist/services/GeminiRunner.js.map +1 -1
  49. package/dist/services/KiloRunner.d.ts +12 -0
  50. package/dist/services/KiloRunner.d.ts.map +1 -1
  51. package/dist/services/KiloRunner.js +441 -57
  52. package/dist/services/KiloRunner.js.map +1 -1
  53. package/dist/services/OpenClawRunner.d.ts +7 -0
  54. package/dist/services/OpenClawRunner.d.ts.map +1 -1
  55. package/dist/services/OpenClawRunner.js +79 -11
  56. package/dist/services/OpenClawRunner.js.map +1 -1
  57. package/dist/services/OpenCodeRunner.d.ts +7 -0
  58. package/dist/services/OpenCodeRunner.d.ts.map +1 -1
  59. package/dist/services/OpenCodeRunner.js +79 -11
  60. package/dist/services/OpenCodeRunner.js.map +1 -1
  61. package/dist/tools/config_example.d.ts +7 -4
  62. package/dist/tools/config_example.d.ts.map +1 -1
  63. package/dist/tools/config_example.js +191 -86
  64. package/dist/tools/config_example.js.map +1 -1
  65. package/dist/tools/create_agent.d.ts +15 -9
  66. package/dist/tools/create_agent.d.ts.map +1 -1
  67. package/dist/tools/create_agent.js +8 -9
  68. package/dist/tools/create_agent.js.map +1 -1
  69. package/dist/tools/get_agent_configs.d.ts +10 -4
  70. package/dist/tools/get_agent_configs.d.ts.map +1 -1
  71. package/dist/tools/get_agent_configs.js.map +1 -1
  72. package/dist/tools/manage_agents.d.ts +36 -18
  73. package/dist/tools/manage_agents.d.ts.map +1 -1
  74. package/dist/tools/manage_agents.js +2 -2
  75. package/dist/tools/manage_agents.js.map +1 -1
  76. package/dist/tools/manage_prompts.d.ts +13 -8
  77. package/dist/tools/manage_prompts.d.ts.map +1 -1
  78. package/dist/tools/manage_prompts.js.map +1 -1
  79. package/dist/tools/memory_runs.d.ts +3 -4
  80. package/dist/tools/memory_runs.d.ts.map +1 -1
  81. package/dist/tools/memory_runs.js.map +1 -1
  82. package/dist/tools/memory_search.d.ts +3 -4
  83. package/dist/tools/memory_search.d.ts.map +1 -1
  84. package/dist/tools/memory_search.js.map +1 -1
  85. package/dist/tools/memory_store.d.ts +11 -5
  86. package/dist/tools/memory_store.d.ts.map +1 -1
  87. package/dist/tools/memory_store.js.map +1 -1
  88. package/dist/tools/run_agent.d.ts +15 -16
  89. package/dist/tools/run_agent.d.ts.map +1 -1
  90. package/dist/tools/run_agent.js +128 -160
  91. package/dist/tools/run_agent.js.map +1 -1
  92. package/dist/tools/run_claude.d.ts +8 -3
  93. package/dist/tools/run_claude.d.ts.map +1 -1
  94. package/dist/tools/run_claude.js +59 -41
  95. package/dist/tools/run_claude.js.map +1 -1
  96. package/dist/tools/run_cline.d.ts +13 -4
  97. package/dist/tools/run_cline.d.ts.map +1 -1
  98. package/dist/tools/run_cline.js +55 -43
  99. package/dist/tools/run_cline.js.map +1 -1
  100. package/dist/tools/run_gemini.d.ts +13 -4
  101. package/dist/tools/run_gemini.d.ts.map +1 -1
  102. package/dist/tools/run_gemini.js +53 -33
  103. package/dist/tools/run_gemini.js.map +1 -1
  104. package/dist/tools/run_kilo.d.ts +17 -7
  105. package/dist/tools/run_kilo.d.ts.map +1 -1
  106. package/dist/tools/run_kilo.js +68 -41
  107. package/dist/tools/run_kilo.js.map +1 -1
  108. package/dist/tools/run_openclaw.d.ts +13 -4
  109. package/dist/tools/run_openclaw.d.ts.map +1 -1
  110. package/dist/tools/run_openclaw.js +52 -44
  111. package/dist/tools/run_openclaw.js.map +1 -1
  112. package/dist/tools/run_opencode.d.ts +13 -4
  113. package/dist/tools/run_opencode.d.ts.map +1 -1
  114. package/dist/tools/run_opencode.js +52 -39
  115. package/dist/tools/run_opencode.js.map +1 -1
  116. package/docs/README.md +128 -0
  117. package/docs/agent_control.md +656 -0
  118. package/docs/index.html +493 -0
  119. package/docs/library.html +239 -0
  120. package/docs/prompt.html +1212 -0
  121. package/docs/script.js +428 -0
  122. package/docs/styles.css +2816 -0
  123. package/package.json +55 -25
  124. package/scripts/auto-changelog.mjs +132 -0
  125. package/scripts/auto-install.mjs +322 -0
  126. package/scripts/install-dependencies.mjs +462 -0
  127. package/scripts/postgres-manager.mjs +219 -0
  128. package/scripts/postinstall.mjs +538 -0
  129. package/scripts/setup-overmind-db.mjs +199 -0
  130. package/scripts/setup-windows.js +266 -0
  131. package/scripts/setup.mjs +397 -0
  132. package/scripts/test-installation.mjs +158 -0
  133. package/scripts/uninstall.mjs +238 -0
  134. package/assets/overmind_mcp_pro_banner_v3.png +0 -0
  135. package/dist/services/QwenRunner.d.ts +0 -19
  136. package/dist/services/QwenRunner.d.ts.map +0 -1
  137. package/dist/services/QwenRunner.js +0 -87
  138. package/dist/services/QwenRunner.js.map +0 -1
  139. package/dist/services/TraeRunner.d.ts +0 -19
  140. package/dist/services/TraeRunner.d.ts.map +0 -1
  141. package/dist/services/TraeRunner.js +0 -88
  142. package/dist/services/TraeRunner.js.map +0 -1
  143. package/dist/tools/run_qwen.d.ts +0 -15
  144. package/dist/tools/run_qwen.d.ts.map +0 -1
  145. package/dist/tools/run_qwen.js +0 -61
  146. package/dist/tools/run_qwen.js.map +0 -1
  147. package/dist/tools/run_trae.d.ts +0 -15
  148. package/dist/tools/run_trae.d.ts.map +0 -1
  149. package/dist/tools/run_trae.js +0 -66
  150. package/dist/tools/run_trae.js.map +0 -1
  151. package/dist/tools/shell_execute.d.ts +0 -10
  152. package/dist/tools/shell_execute.d.ts.map +0 -1
  153. package/dist/tools/shell_execute.js +0 -24
  154. package/dist/tools/shell_execute.js.map +0 -1
  155. package/dist/tools/test_agent_control.d.ts +0 -2
  156. package/dist/tools/test_agent_control.d.ts.map +0 -1
  157. package/dist/tools/test_agent_control.js +0 -92
  158. package/dist/tools/test_agent_control.js.map +0 -1
package/dist/bin/cli.js CHANGED
@@ -2,6 +2,7 @@
2
2
  import fs from 'fs';
3
3
  import path from 'path';
4
4
  import { fileURLToPath } from 'url';
5
+ import { PassThrough } from 'stream';
5
6
  const __filename = fileURLToPath(import.meta.url);
6
7
  const __dirname = path.dirname(__filename);
7
8
  // Helper to manually parse .env without any noisy console.logs from external packages (dotenvx corrupts MCP JSON streams)
@@ -14,9 +15,7 @@ function loadEnvQuietly(envPath) {
14
15
  if (match) {
15
16
  const key = match[1];
16
17
  let value = match[2] || '';
17
- // Remove inline comments and trailing spaces
18
18
  value = value.replace(/\s*#.*$/, '').trim();
19
- // Remove surrounding quotes if present
20
19
  if (value.startsWith('"') && value.endsWith('"'))
21
20
  value = value.slice(1, -1);
22
21
  else if (value.startsWith("'") && value.endsWith("'"))
@@ -31,17 +30,447 @@ function loadEnvQuietly(envPath) {
31
30
  // Ignore silently
32
31
  }
33
32
  }
33
+ // 🪄 Auto-formatteur de .env — Classifie tous les providers connus, préserve les valeurs
34
+ function autoFormatEnvFile(envPath) {
35
+ try {
36
+ if (!fs.existsSync(envPath))
37
+ return;
38
+ const content = fs.readFileSync(envPath, 'utf8');
39
+ // Parser robuste : ignore commentaires, lit les lignes KEY=VALUE (valeur peut contenir '=')
40
+ const envVars = {};
41
+ for (const line of content.split('\n')) {
42
+ const trimmed = line.trim();
43
+ if (!trimmed || trimmed.startsWith('#'))
44
+ continue;
45
+ const eqIdx = trimmed.indexOf('=');
46
+ if (eqIdx === -1)
47
+ continue;
48
+ const key = trimmed.slice(0, eqIdx).trim();
49
+ const value = trimmed.slice(eqIdx + 1).trim();
50
+ if (key)
51
+ envVars[key] = value;
52
+ }
53
+ if (Object.keys(envVars).length === 0)
54
+ return;
55
+ const usedKeys = new Set();
56
+ // Tri naturel pour les clés avec suffixes numériques (KEY, KEY_2, KEY_3…)
57
+ function naturalSort(pairs) {
58
+ return pairs.sort((a, b) => a[0].localeCompare(b[0], undefined, { numeric: true, sensitivity: 'base' }));
59
+ }
60
+ function extract(prefix, exactMatch = false) {
61
+ const res = [];
62
+ const prefixes = Array.isArray(prefix) ? prefix : [prefix];
63
+ for (const key of Object.keys(envVars)) {
64
+ if (usedKeys.has(key))
65
+ continue;
66
+ const matches = exactMatch
67
+ ? prefixes.includes(key)
68
+ : prefixes.some((p) => key.startsWith(p));
69
+ if (matches) {
70
+ res.push([key, envVars[key]]);
71
+ usedKeys.add(key);
72
+ }
73
+ }
74
+ return naturalSort(res);
75
+ }
76
+ // ─── SECTIONS ──────────────────────────────────────────────────────────────
77
+ const sections = [
78
+ // ── Overmind Infrastructure ──
79
+ {
80
+ title: '🌐 OVERMIND CORE & INFRASTRUCTURE',
81
+ vars: extract(['OVERMIND_WORKSPACE', 'OVERMIND_MEMORY_TYPE'], true),
82
+ },
83
+ { title: '⚙️ GLOBAL SETTINGS', vars: extract(['API_TIMEOUT_MS'], true) },
84
+ { title: '🗄️ DATABASE (PostgreSQL / pgvector)', vars: extract('POSTGRES_') },
85
+ { title: '🧠 EMBEDDINGS & VECTOR MEMORY', vars: extract('OVERMIND_EMBEDDING_') },
86
+ // ── LLM Providers (Europe / USA) ──
87
+ { title: '🤖 LLM PROVIDER - Mistral AI 🇫🇷', vars: extract('MISTRAL_') },
88
+ { title: '🤖 LLM PROVIDER - OpenAI 🇺🇸', vars: extract('OPENAI_') },
89
+ { title: '🤖 LLM PROVIDER - Anthropic 🇺🇸', vars: extract('ANTHROPIC_') },
90
+ {
91
+ title: '🤖 LLM PROVIDER - Google Gemini 🇺🇸',
92
+ vars: extract(['GEMINI_API_KEY', 'GEMINI_MODEL', 'GOOGLE_API_KEY', 'GOOGLE_GENERATIVE_AI_API_KEY'], true),
93
+ },
94
+ {
95
+ title: '🤖 LLM PROVIDER - NVIDIA NIM 🇺🇸',
96
+ vars: [
97
+ ...extract(['NVAPI_KEY', 'NVIDIA_API_KEY', 'NVIDIA_API_BASE'], true),
98
+ ...extract('NVIDIA_'),
99
+ ],
100
+ },
101
+ {
102
+ title: '🤖 LLM PROVIDER - OpenRouter 🇺🇸',
103
+ vars: extract(['OPENROUTER_API_KEY', 'OPENROUTER_BASE_URL', 'OPENROUTER_MODEL'], true),
104
+ },
105
+ {
106
+ title: '🤖 LLM PROVIDER - xAI / Grok 🇺🇸',
107
+ vars: extract(['XAI_API_KEY', 'XAI_BASE_URL', 'GROK_API_KEY', 'GROK_MODEL'], true),
108
+ },
109
+ { title: '🤖 LLM PROVIDER - Groq 🇺🇸', vars: extract('GROQ_') },
110
+ { title: '🤖 LLM PROVIDER - Together AI 🇺🇸', vars: extract('TOGETHER_') },
111
+ { title: '🤖 LLM PROVIDER - Cohere 🇺🇸', vars: extract('COHERE_') },
112
+ { title: '🤖 LLM PROVIDER - Replicate 🇺🇸', vars: extract('REPLICATE_') },
113
+ {
114
+ title: '🤖 LLM PROVIDER - HuggingFace 🇺🇸',
115
+ vars: extract(['HUGGINGFACE_API_KEY', 'HF_TOKEN', 'HUGGING_FACE_HUB_TOKEN'], true),
116
+ },
117
+ { title: '🤖 LLM PROVIDER - Perplexity 🇺🇸', vars: extract('PERPLEXITY_') },
118
+ { title: '🤖 LLM PROVIDER - SambaNova 🇺🇸', vars: extract('SAMBANOVA_') },
119
+ {
120
+ title: '🤖 LLM PROVIDER - Azure OpenAI ☁️',
121
+ vars: extract([
122
+ 'AZURE_API_KEY',
123
+ 'AZURE_API_BASE',
124
+ 'AZURE_OPENAI_API_KEY',
125
+ 'AZURE_OPENAI_ENDPOINT',
126
+ 'AZURE_OPENAI_API_VERSION',
127
+ ], true),
128
+ },
129
+ {
130
+ title: '🤖 LLM PROVIDER - ElevenLabs 🎙️',
131
+ vars: extract(['ELEVENLABS_API_KEY', 'ELEVENLABS_VOICE_ID', 'ELEVENLABS_MODEL_ID'], true),
132
+ },
133
+ {
134
+ title: '🤖 LLM PROVIDER - AWS Bedrock ☁️',
135
+ vars: extract([
136
+ 'AWS_ACCESS_KEY_ID',
137
+ 'AWS_SECRET_ACCESS_KEY',
138
+ 'AWS_SESSION_TOKEN',
139
+ 'AWS_REGION',
140
+ 'AWS_DEFAULT_REGION',
141
+ 'AWS_ENDPOINT_URL',
142
+ ], true),
143
+ },
144
+ // ── LLM Providers (Chine / Asie) ──
145
+ { title: '🤖 LLM PROVIDER - DeepSeek 🇨🇳', vars: extract('DEEPSEEK_') },
146
+ { title: '🤖 LLM PROVIDER - Alibaba DashScope 🇨🇳', vars: extract('ALIBABA_') },
147
+ {
148
+ title: '🤖 LLM PROVIDER - Qwen (DashScope) 🇨🇳',
149
+ vars: extract([
150
+ 'QWEN_API_KEY',
151
+ 'QWEN_BASE_URL',
152
+ 'QWEN_MODEL',
153
+ 'DASHSCOPE_API_KEY',
154
+ 'DASHSCOPE_BASE_URL',
155
+ ], true),
156
+ },
157
+ { title: '🤖 LLM PROVIDER - SiliconFlow 🇨🇳', vars: extract('SILICONFLOW_') },
158
+ {
159
+ title: '🤖 LLM PROVIDER - Minimax 🇨🇳',
160
+ vars: [...extract('MINIMAXI_'), ...extract('MINIMAX_')],
161
+ },
162
+ { title: '🤖 LLM PROVIDER - Ilmu AI / Z.AI 🇨🇳', vars: extract('Z_AI_') },
163
+ {
164
+ title: '🤖 LLM PROVIDER - Moonshot / Kimi 🇨🇳',
165
+ vars: extract(['MOONSHOT_API_KEY', 'MOONSHOT_BASE_URL', 'MOONSHOT_MODEL', 'KIMI_API_KEY'], true),
166
+ },
167
+ {
168
+ title: '🤖 LLM PROVIDER - Baidu / ERNIE 🇨🇳',
169
+ vars: extract(['BAIDU_API_KEY', 'ERNIE_API_KEY', 'WENXIN_API_KEY'], true),
170
+ },
171
+ {
172
+ title: '🤖 LLM PROVIDER - ZhipuAI / GLM 🇨🇳',
173
+ vars: [...extract(['ZHIPU_API_KEY', 'GLM_API_KEY'], true), ...extract('ZHIPUAI_')],
174
+ },
175
+ // ── Services & Intégrations ──
176
+ {
177
+ title: '💬 SERVICE - Discord',
178
+ vars: extract([
179
+ 'DISCORD_TOKEN',
180
+ 'DISCORD_BOT_TOKEN',
181
+ 'DISCORD_CHANNEL_ID',
182
+ 'DISCORD_GUILD_ID',
183
+ 'DISCORD_WEBHOOK_URL',
184
+ 'DISCORD_CLIENT_ID',
185
+ 'DISCORD_CLIENT_SECRET',
186
+ ], true),
187
+ },
188
+ {
189
+ title: '🐦 SERVICE - Twitter / X',
190
+ vars: extract([
191
+ 'TWITTER_API_KEY',
192
+ 'TWITTER_API_SECRET',
193
+ 'TWITTER_ACCESS_TOKEN',
194
+ 'TWITTER_ACCESS_SECRET',
195
+ 'TWITTER_BEARER_TOKEN',
196
+ 'X_API_KEY',
197
+ 'X_BEARER_TOKEN',
198
+ 'X_API_SECRET',
199
+ 'X_ACCESS_TOKEN',
200
+ 'X_ACCESS_SECRET',
201
+ ], true),
202
+ },
203
+ {
204
+ title: '📱 SERVICE - Telegram',
205
+ vars: extract(['TELEGRAM_BOT_TOKEN', 'TELEGRAM_CHAT_ID'], true),
206
+ },
207
+ {
208
+ title: '📱 SERVICE - Twilio / SMS',
209
+ vars: extract([
210
+ 'TWILIO_ACCOUNT_SID',
211
+ 'TWILIO_AUTH_TOKEN',
212
+ 'TWILIO_PHONE_NUMBER',
213
+ 'TWILIO_API_KEY',
214
+ 'TWILIO_API_SECRET',
215
+ ], true),
216
+ },
217
+ {
218
+ title: '🐙 SERVICE - GitHub',
219
+ vars: extract([
220
+ 'GITHUB_TOKEN',
221
+ 'GITHUB_API_KEY',
222
+ 'GH_TOKEN',
223
+ 'GITHUB_CLIENT_ID',
224
+ 'GITHUB_CLIENT_SECRET',
225
+ ], true),
226
+ },
227
+ {
228
+ title: '▲ SERVICE - Vercel',
229
+ vars: extract([
230
+ 'VERCEL_TOKEN',
231
+ 'VERCEL_API_TOKEN',
232
+ 'VERCEL_PROJECT_ID',
233
+ 'VERCEL_ORG_ID',
234
+ 'VERCEL_TEAM_ID',
235
+ ], true),
236
+ },
237
+ {
238
+ title: '🔺 SERVICE - Supabase',
239
+ vars: extract(['SUPABASE_URL', 'SUPABASE_ANON_KEY', 'SUPABASE_SERVICE_ROLE_KEY', 'SUPABASE_JWT_SECRET'], true),
240
+ },
241
+ { title: '🎮 SERVICE - Riot Games', vars: extract(['RIOT_API_KEY', 'RIOT_REGION'], true) },
242
+ {
243
+ title: '🔍 SERVICE - Search (Serper/Tavily)',
244
+ vars: extract(['SERPER_API_KEY', 'TAVILY_API_KEY', 'SERPAPI_KEY', 'BRAVE_SEARCH_API_KEY'], true),
245
+ },
246
+ {
247
+ title: '📰 SERVICE - Market Data & News',
248
+ vars: extract([
249
+ 'FINNHUB_API_KEY',
250
+ 'NEWSAPI_KEY',
251
+ 'ALPHAVANTAGE_API_KEY',
252
+ 'POLYGON_API_KEY',
253
+ 'TIINGO_API_KEY',
254
+ ], true),
255
+ },
256
+ ];
257
+ // Clés restantes non classifiées → section fourre-tout
258
+ const uncategorized = [];
259
+ for (const key of Object.keys(envVars)) {
260
+ if (!usedKeys.has(key))
261
+ uncategorized.push([key, envVars[key]]);
262
+ }
263
+ if (uncategorized.length > 0) {
264
+ sections.push({ title: '📁 AUTRES / NON-CLASSIFIÉS', vars: naturalSort(uncategorized) });
265
+ }
266
+ // ─── RENDU ──────────────────────────────────────────────────────────────────
267
+ let newContent = '';
268
+ for (const section of sections) {
269
+ if (section.vars.length > 0) {
270
+ newContent += `# ==========================================\n`;
271
+ newContent += `# ${section.title}\n`;
272
+ newContent += `# ==========================================\n`;
273
+ for (const [k, v] of section.vars) {
274
+ newContent += `${k}=${v}\n`;
275
+ }
276
+ newContent += `\n`;
277
+ }
278
+ }
279
+ // N'écrire sur le disque que si quelque chose a changé (optimisation I/O)
280
+ if (content.trim() !== newContent.trim()) {
281
+ fs.writeFileSync(envPath, newContent.trim() + '\n', 'utf8');
282
+ }
283
+ }
284
+ catch (_e) {
285
+ // Ignorer silencieusement pour ne pas crasher le boot
286
+ }
287
+ }
288
+ const localEnvPath = path.resolve(__dirname, '../../.env');
289
+ // Auto-détection et injection de OVERMIND_WORKSPACE s'il est manquant — NE PAS écraser s'il existe déjà
290
+ try {
291
+ if (!fs.existsSync(localEnvPath)) {
292
+ const workspacePath = path.resolve(__dirname, '../../');
293
+ fs.writeFileSync(localEnvPath, `OVERMIND_WORKSPACE=${workspacePath}\n`, 'utf8');
294
+ }
295
+ else {
296
+ const currentContent = fs.readFileSync(localEnvPath, 'utf8');
297
+ // Vérifier que OVERMIND_WORKSPACE n'existe pas OU n'a pas de valeur (ligne vide)
298
+ const match = currentContent.match(/^OVERMIND_WORKSPACE=(.*)$/m);
299
+ if (!match || !match[1]?.trim()) {
300
+ const workspacePath = path.resolve(__dirname, '../../');
301
+ if (!currentContent.includes('OVERMIND_WORKSPACE=')) {
302
+ fs.appendFileSync(localEnvPath, `\nOVERMIND_WORKSPACE=${workspacePath}\n`, 'utf8');
303
+ }
304
+ else {
305
+ // Remplacer la ligne vide/videuse
306
+ const newContent = currentContent.replace(/^OVERMIND_WORKSPACE=.*$/m, `OVERMIND_WORKSPACE=${workspacePath}`);
307
+ fs.writeFileSync(localEnvPath, newContent, 'utf8');
308
+ }
309
+ }
310
+ // Si OVERMIND_WORKSPACE a déjà une valeur → ne rien faire, ne pas écraser
311
+ }
312
+ }
313
+ catch (_e) {
314
+ // Ignorer l'erreur silencieusement
315
+ }
316
+ // Classifie et réorganise automatiquement le .env à chaque démarrage d'Overmind
317
+ autoFormatEnvFile(localEnvPath);
318
+ // 🎯 Priorité de chargement (premier trouvé gagne, car loadEnvQuietly ne réécrit pas) :
319
+ // 1) $OVERMIND_ENV_FILE → fichier explicite passé par le client MCP
320
+ // 2) <process.cwd()>/.env → si lancé depuis un dossier projet
321
+ // 3) <bin>/../../.env → fallback historique (utile en dev local)
322
+ const externalEnvCandidates = [];
323
+ if (process.env.OVERMIND_ENV_FILE)
324
+ externalEnvCandidates.push(process.env.OVERMIND_ENV_FILE);
325
+ const cwdEnv = path.resolve(process.cwd(), '.env');
326
+ if (cwdEnv !== localEnvPath)
327
+ externalEnvCandidates.push(cwdEnv);
328
+ for (const candidate of externalEnvCandidates) {
329
+ loadEnvQuietly(candidate);
330
+ }
34
331
  // Load OverMind's specific environment variables
35
- loadEnvQuietly(path.resolve(__dirname, '../../.env'));
332
+ loadEnvQuietly(localEnvPath);
36
333
  // Inherit PostgreSQL Server environment variables (Database credentials, Embeddings)
37
334
  loadEnvQuietly(path.resolve(__dirname, '../../../serveur_PostGreSQL/.env'));
38
- // Suppress experimental warnings (like node:sqlite) to avoid breaking MCP handshake
39
- process.removeAllListeners('warning');
335
+ // 🔍 Vérification des configurations critiques
336
+ function checkMissingConfigs() {
337
+ const missingCore = [];
338
+ const missingDb = [];
339
+ // Vérification CORE
340
+ if (!process.env.OVERMIND_WORKSPACE)
341
+ missingCore.push('OVERMIND_WORKSPACE');
342
+ if (!process.env.OVERMIND_MEMORY_TYPE)
343
+ missingCore.push('OVERMIND_MEMORY_TYPE');
344
+ // Vérification DB
345
+ if (!process.env.POSTGRES_HOST)
346
+ missingDb.push('POSTGRES_HOST');
347
+ if (!process.env.POSTGRES_DATABASE)
348
+ missingDb.push('POSTGRES_DATABASE');
349
+ if (!process.env.POSTGRES_USER)
350
+ missingDb.push('POSTGRES_USER');
351
+ if (!process.env.POSTGRES_PASSWORD)
352
+ missingDb.push('POSTGRES_PASSWORD');
353
+ if (missingCore.length > 0) {
354
+ console.error(`\n[Overmind] ⚠️ ATTENTION : Configuration 'CORE & INFRASTRUCTURE' incomplète !`);
355
+ console.error(`[Overmind] ❌ Il manque : ${missingCore.join(', ')}\n`);
356
+ }
357
+ if (missingDb.length > 0) {
358
+ console.error(`\n[Overmind] ⚠️ ATTENTION : Configuration 'DATABASE' incomplète (Imported from postgresql-server) !`);
359
+ console.error(`[Overmind] ❌ Il manque : ${missingDb.join(', ')}\n`);
360
+ }
361
+ }
362
+ checkMissingConfigs();
363
+ import { rootLogger } from '../lib/logger.js';
364
+ // 💥 ERROR HANDLING: Catch everything to avoid silent EOFs
365
+ process.on('uncaughtException', (err) => {
366
+ rootLogger.fatal({ err }, '💥 UNCAUGHT EXCEPTION');
367
+ rootLogger.flush();
368
+ process.exit(1);
369
+ });
370
+ process.on('unhandledRejection', (reason, promise) => {
371
+ rootLogger.fatal({ reason, promise }, '💥 UNHANDLED REJECTION');
372
+ rootLogger.flush();
373
+ });
374
+ // Ensure logs are flushed on exit
375
+ process.on('SIGINT', () => {
376
+ rootLogger.info('🛑 Received SIGINT, flushing logs...');
377
+ rootLogger.flush();
378
+ process.exit(0);
379
+ });
380
+ process.on('SIGTERM', () => {
381
+ rootLogger.info('🛑 Received SIGTERM, flushing logs...');
382
+ rootLogger.flush();
383
+ process.exit(0);
384
+ });
40
385
  // 🛡️ SHIELD: Prevent any library from logging to stdout during initialization
41
386
  // This is critical for MCP servers because any non-JSON output on stdout kills the handshake (EOF).
42
- console.log = (...args) => console.error(...args);
43
- console.info = (...args) => console.error(...args);
387
+ console.log = (...args) => rootLogger.info(args.length > 1 ? { args } : args[0]);
388
+ console.info = (...args) => rootLogger.info(args.length > 1 ? { args } : args[0]);
389
+ console.warn = (...args) => rootLogger.warn(args.length > 1 ? { args } : args[0]);
390
+ console.error = (...args) => rootLogger.error(args.length > 1 ? { args } : args[0]);
391
+ // 🛡️ ULTIMATE SHIELD: Proxy process.stdout.write to redirect non-JSON data to stderr
392
+ const originalStdoutWrite = process.stdout.write.bind(process.stdout);
393
+ process.stdout.write = function (chunk, encoding, callback) {
394
+ const str = typeof chunk === 'string' ? chunk : chunk.toString();
395
+ const trimmed = str.trim();
396
+ // Handle overload: if encoding is a function, it's actually the callback
397
+ if (typeof encoding === 'function') {
398
+ callback = encoding;
399
+ encoding = undefined;
400
+ }
401
+ // Skip empty chunks or pure whitespace (often used as delimiters/keep-alive)
402
+ if (trimmed === '') {
403
+ return originalStdoutWrite(chunk, encoding, callback);
404
+ }
405
+ // Allow JSON-RPC (starts with { or [)
406
+ if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
407
+ try {
408
+ const parsed = JSON.parse(trimmed);
409
+ // BLOCK ARRAYS on stdout (Batch responses are not standard in MCP)
410
+ if (Array.isArray(parsed)) {
411
+ rootLogger.warn({ raw: str }, '🛡️ [SHIELD] Blocked array-as-JSON-RPC on stdout');
412
+ return process.stderr.write(chunk, encoding, callback);
413
+ }
414
+ // Check for JSON-RPC (Response or Notification)
415
+ if (parsed.jsonrpc === '2.0') {
416
+ return originalStdoutWrite(chunk, encoding, callback);
417
+ }
418
+ // Block non-RPC JSON
419
+ rootLogger.warn({ raw: str }, '🛡️ [SHIELD] Blocked non-JSON-RPC (Object) on stdout');
420
+ return process.stderr.write(chunk, encoding, callback);
421
+ }
422
+ catch (e) {
423
+ // Malformed JSON-like content
424
+ rootLogger.debug({ raw: str, err: e.message }, '🛡️ [SHIELD] Blocked malformed JSON-like content on stdout');
425
+ return process.stderr.write(chunk, encoding, callback);
426
+ }
427
+ }
428
+ // Redirect everything else to stderr (via Pino)
429
+ rootLogger.debug({ raw: trimmed }, '🛡️ [SHIELD] Intercepted non-JSON stdout write');
430
+ return process.stderr.write(chunk, encoding, callback);
431
+ };
432
+ // 🛡️ STDIN INTERCEPTOR: Detect and unroll JSON-RPC Batches [req1, req2]
433
+ // FastMCP/Zod only support single objects. Intercepting before FastMCP starts.
434
+ const originalStdin = process.stdin;
435
+ const stdinProxy = new PassThrough();
436
+ originalStdin.on('data', (chunk) => {
437
+ const str = chunk.toString();
438
+ const trimmed = str.trim();
439
+ // 🔍 [DEBUG] Log every incoming chunk that looks like JSON
440
+ if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
441
+ rootLogger.debug({
442
+ length: trimmed.length,
443
+ preview: trimmed.substring(0, 100),
444
+ isBatch: trimmed.startsWith('['),
445
+ }, '[SHIELD] STDIN chunk received');
446
+ }
447
+ // If it's a batch, unroll it into separate JSON chunks
448
+ if (trimmed.startsWith('[') && trimmed.endsWith(']')) {
449
+ try {
450
+ const parsed = JSON.parse(trimmed);
451
+ if (Array.isArray(parsed)) {
452
+ rootLogger.warn({ count: parsed.length }, '[SHIELD] Unrolling JSON-RPC BATCH on STDIN');
453
+ for (const item of parsed) {
454
+ stdinProxy.write(JSON.stringify(item) + '\n');
455
+ }
456
+ return;
457
+ }
458
+ }
459
+ catch (_e) {
460
+ // Not a valid batch or partial JSON, pass through as-is
461
+ }
462
+ }
463
+ stdinProxy.write(chunk);
464
+ });
465
+ // Hijack process.stdin for FastMCP and any other consumers
466
+ Object.defineProperty(process, 'stdin', {
467
+ value: stdinProxy,
468
+ writable: false,
469
+ configurable: true,
470
+ });
44
471
  // Setup completed - Dynamically import server components AFTER process.env is configured
472
+ const { initTelemetry } = await import('../lib/telemetry.js');
473
+ initTelemetry();
45
474
  const { createServer } = await import('../server.js');
46
475
  const { updateConfig } = await import('../lib/config.js');
47
476
  const cliArgs = process.argv.slice(2);
@@ -61,5 +490,7 @@ if (settingsPath || mcpPath) {
61
490
  // Do NOT log to stderr during MCP initialization as it can cause EOF errors in some clients
62
491
  }
63
492
  const server = createServer();
493
+ rootLogger.info('[Overmind] [START] Démarrage du serveur...');
64
494
  server.start({ transportType: 'stdio' });
495
+ rootLogger.info('[Overmind] [READY] Serveur prêt sur STDIO.');
65
496
  //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  export { runAgent } from './tools/run_agent.js';
2
2
  export { createServer } from './server.js';
3
3
  export { AgentManager } from './services/AgentManager.js';
4
- export { PromptManager } from './services/PromptManager.js';
5
- export { ClaudeRunner } from './services/ClaudeRunner.js';
6
4
  export { getMemoryProvider } from './memory/MemoryFactory.js';
7
5
  export { updateConfig } from './lib/config.js';
6
+ export { ClaudeRunner } from './services/ClaudeRunner.js';
7
+ export { createSwarmOrchestrator, type SwarmOrchestrator, type SwarmConfig, type SwarmTask, type SwarmResult, type AgentCapability, } from './lib/orchestration/swarm.js';
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,OAAO,EACL,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,eAAe,GACrB,MAAM,8BAA8B,CAAC"}
package/dist/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  export { runAgent } from './tools/run_agent.js';
2
2
  export { createServer } from './server.js';
3
3
  export { AgentManager } from './services/AgentManager.js';
4
- export { PromptManager } from './services/PromptManager.js';
5
- export { ClaudeRunner } from './services/ClaudeRunner.js';
6
4
  export { getMemoryProvider } from './memory/MemoryFactory.js';
7
5
  export { updateConfig } from './lib/config.js';
6
+ export { ClaudeRunner } from './services/ClaudeRunner.js';
7
+ // Swarm Orchestration
8
+ export { createSwarmOrchestrator, } from './lib/orchestration/swarm.js';
8
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,sBAAsB;AACtB,OAAO,EACL,uBAAuB,GAMxB,MAAM,8BAA8B,CAAC"}
@@ -7,7 +7,22 @@ export interface ConfigType {
7
7
  MCP: string;
8
8
  };
9
9
  };
10
+ KILO: {
11
+ CORE: string;
12
+ DEFAULT_MODEL: string;
13
+ PATHS: {
14
+ SETTINGS: string;
15
+ };
16
+ };
17
+ HERMES: {
18
+ CORE: string;
19
+ PATHS: {
20
+ SETTINGS: string;
21
+ };
22
+ };
10
23
  TIMEOUT_MS: number;
24
+ HARD_TIMEOUT_MS: number;
25
+ KEEPALIVE_INTERVAL_MS: number;
11
26
  }
12
27
  export declare const DEFAULT_CONFIG: ConfigType;
13
28
  export declare const CONFIG: {
@@ -19,10 +34,25 @@ export declare const CONFIG: {
19
34
  MCP: string;
20
35
  };
21
36
  };
37
+ KILO: {
38
+ CORE: string;
39
+ DEFAULT_MODEL: string;
40
+ PATHS: {
41
+ SETTINGS: string;
42
+ };
43
+ };
44
+ HERMES: {
45
+ CORE: string;
46
+ PATHS: {
47
+ SETTINGS: string;
48
+ };
49
+ };
22
50
  TIMEOUT_MS: number;
51
+ HARD_TIMEOUT_MS: number;
52
+ KEEPALIVE_INTERVAL_MS: number;
23
53
  };
24
54
  export declare function resetWorkspaceCache(): void;
25
55
  export declare function getWorkspaceDir(): string;
26
- export declare function resolveConfigPath(configPath: string): string;
56
+ export declare function resolveConfigPath(configPath: string, workspaceDirOverride?: string): string;
27
57
  export declare function updateConfig(newSettingsPath?: string, newMcpPath?: string): void;
28
58
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC;YACjB,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;KACH,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;CACpB;AAKD,eAAO,MAAM,cAAc,EAAE,UAU5B,CAAC;AAEF,eAAO,MAAM,MAAM;YA1BT;QACN,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC;YACjB,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;KACH;gBACW,MAAM;CAkBuB,CAAC;AAyB5C,wBAAgB,mBAAmB,SAElC;AAED,wBAAgB,eAAe,IAAI,MAAM,CA0DxC;AAKD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAa5D;AAED,wBAAgB,YAAY,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,QAGzE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC;YACjB,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;KACH,CAAC;IACF,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;KACH,CAAC;IACF,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;KACH,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAKD,eAAO,MAAM,cAAc,EAAE,UAyB5B,CAAC;AAEF,eAAO,MAAM,MAAM;YAxDT;QACN,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC;YACjB,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;KACH;UACK;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;KACH;YACO;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;KACH;gBACW,MAAM;qBACD,MAAM;2BACA,MAAM;CAiCY,CAAC;AAI5C,wBAAgB,mBAAmB,SAElC;AAED,wBAAgB,eAAe,IAAI,MAAM,CA0DxC;AAKD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM,CAa3F;AAED,wBAAgB,YAAY,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,QAGzE"}