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,595 @@
1
+ # Guide Workflow Client OverMind
2
+
3
+ ## 🎯 Architecture
4
+
5
+ ```
6
+ VOTRE APPLICATION
7
+
8
+ OVERMIND-BRIDGE (Wrapper)
9
+
10
+ runAgent() (OverMind-MCP)
11
+
12
+ AGENT LLM (Claude/Gemini/Kilo)
13
+ ```
14
+
15
+ ---
16
+
17
+ ## 📦 Étape 1: Créer le Bridge (overmind-bridge.ts)
18
+
19
+ Le **bridge** est votre service wrapper qui simplifie l'interaction avec OverMind.
20
+
21
+ ### Code Complet
22
+
23
+ ```typescript
24
+ /**
25
+ * OVERMIND-BRIDGE SERVICE
26
+ * Pont universel pour piloter Overmind programmatiquement
27
+ */
28
+
29
+ import "./env.js"; // ⚠️ OBLIGATOIRE EN PREMIER (initialisation contexte)
30
+
31
+ import { runAgent, getMemoryProvider } from "overmind-mcp";
32
+ import { RunnerType } from "./types.js";
33
+
34
+ export interface ExecutionResult {
35
+ success: boolean;
36
+ output?: string;
37
+ error: string;
38
+ duration: number;
39
+ }
40
+
41
+ export class OvermindBridge {
42
+ /**
43
+ * Exécute un agent IA avec une mission
44
+ * @param agentName Nom de l'agent configuré
45
+ * @param mission Prompt/instruction
46
+ * @param runner Type de moteur (claude/gemini/kilo/etc)
47
+ * @returns Résultat de l'exécution
48
+ */
49
+ async request(
50
+ agentName: string,
51
+ mission: string,
52
+ runner: RunnerType = "claude",
53
+ autoResume: boolean = true,
54
+ cwd?: string,
55
+ ): Promise<ExecutionResult> {
56
+ const start = Date.now();
57
+ try {
58
+ const result = await runAgent({
59
+ // @ts-expect-error - overmind-mcp uses 'qwen' internally
60
+ runner: runner === "qwencli" ? "qwen" : runner,
61
+ agentName,
62
+ prompt: mission,
63
+ autoResume,
64
+ cwd,
65
+ });
66
+
67
+ const duration = ((Date.now() - start) / 1000).toFixed(1);
68
+
69
+ if (result.isError) {
70
+ const errorText = result.content.find((c) => c.type === "text")?.text || "Unknown error";
71
+ return {
72
+ success: false,
73
+ error: errorText,
74
+ duration: parseFloat(duration),
75
+ };
76
+ }
77
+
78
+ const outputText = result.content.find((c) => c.type === "text")?.text || "";
79
+
80
+ return {
81
+ success: true,
82
+ output: outputText,
83
+ duration: parseFloat(duration),
84
+ error: "",
85
+ };
86
+ } catch (error: unknown) {
87
+ const msg = error instanceof Error ? error.message : String(error);
88
+ console.error(`[OvermindBridge] 💀 CRITICAL ERROR:`, msg);
89
+ return {
90
+ success: false,
91
+ error: msg,
92
+ duration: 0,
93
+ };
94
+ }
95
+ }
96
+
97
+ /**
98
+ * Enregistre une connaissance dans la mémoire Overmind
99
+ */
100
+ async memory_store(
101
+ text: string,
102
+ source: "user" | "agent" | "pattern" | "decision" = "agent",
103
+ ): Promise<string> {
104
+ try {
105
+ return await getMemoryProvider().storeKnowledge({ text, source });
106
+ } catch (err) {
107
+ console.error(`[OvermindBridge] 🧠 Memory Store Error:`, err);
108
+ return "";
109
+ }
110
+ }
111
+
112
+ /**
113
+ * Recherche dans la mémoire Overmind (RAG)
114
+ */
115
+ async memory_search(
116
+ query: string,
117
+ limit: number = 5,
118
+ ): Promise<Array<{ text: string; score: number }>> {
119
+ try {
120
+ return await getMemoryProvider().searchMemory({ query, limit });
121
+ } catch (err) {
122
+ console.error(`[OvermindBridge] 🔍 Memory Search Error:`, err);
123
+ return [];
124
+ }
125
+ }
126
+ }
127
+
128
+ // Instance singleton
129
+ export const overmind = new OvermindBridge();
130
+ ```
131
+
132
+ ### Points Clés
133
+
134
+ ✅ `import "./env.js"` **OBLIGATOIRE EN PREMIER** (initialisation contexte)
135
+ ✅ Wrapper autour de `runAgent()` avec gestion d'erreurs
136
+ ✅ Méthodes helper: `memory_store()` et `memory_search()`
137
+ ✅ Instance singleton `overmind` pour usage facile
138
+
139
+ ---
140
+
141
+ ## 📋 Étape 2: Créer un Job/Workflow
142
+
143
+ ### Structure d'un Job
144
+
145
+ ```typescript
146
+ import { overmind } from "../overmind-bridge.js";
147
+ import type { JobConfig } from "../types.js";
148
+
149
+ export const config: JobConfig = {
150
+ id: "001",
151
+ name: "Maintenance Agent Divers",
152
+ agent: "mainteneur_agent_divers",
153
+ mission: "OBJECTIF : Atteindre 0 défaut...",
154
+ runner: "claude",
155
+ frequency: JobFrequency.DAILY,
156
+ autoResume: false,
157
+ scheduleTime: { hour: 0, minute: 0 },
158
+ };
159
+
160
+ async function runStandalone() {
161
+ const res = await overmind.request(
162
+ config.agent,
163
+ config.mission,
164
+ config.runner,
165
+ config.autoResume,
166
+ "C:\\path\\to\\project", // cwd optionnel
167
+ );
168
+
169
+ if (res.success) {
170
+ console.log(`✅ Succès en ${res.duration}s`);
171
+ console.log(res.output);
172
+
173
+ // Mémoriser le résultat
174
+ await overmind.memory_store("Job 001 complété avec succès", "agent");
175
+ } else {
176
+ console.error(`❌ Erreur: ${res.error}`);
177
+ }
178
+ }
179
+
180
+ // Exécution standalone
181
+ if (process.argv[1] && path.resolve(process.argv[1]) === path.resolve(__filename)) {
182
+ runStandalone().catch((err) => {
183
+ console.error(err);
184
+ process.exit(1);
185
+ });
186
+ }
187
+ ```
188
+
189
+ ---
190
+
191
+ ## 🚀 Étape 3: Patterns de Workflows
192
+
193
+ ### Pattern 1: Maintenance Zero Tolerance
194
+
195
+ ```typescript
196
+ const zeroTolerancePrompt = `[ZERO TOLERANCE PROTOCOL v14.4] :
197
+ 1. TARGET : Tu es dans C:\\path\\to\\project.
198
+ 2. EXECUTE : npm run lint, npm run build, npm run test.
199
+ 3. ANALYZE : S'il y a le MOINDRE warning, CORRIGE-LES immédiatement.
200
+ 4. FINAL CHECK : Relance le cycle jusqu'à ZERO défaut.
201
+ 5. STATUS : Score final 100/100 exigé.`;
202
+
203
+ const res = await overmind.request(
204
+ "mainteneur_agent_divers",
205
+ zeroTolerancePrompt,
206
+ "claude",
207
+ false,
208
+ "C:\\path\\to\\project"
209
+ );
210
+ ```
211
+
212
+ ### Pattern 2: Workflow Multi-Étapes
213
+
214
+ ```typescript
215
+ // Étape 1: Analyser
216
+ const analysis = await overmind.request(
217
+ "analyste",
218
+ "Analyse ce code et identifie les problèmes..."
219
+ );
220
+
221
+ if (!analysis.success) {
222
+ throw new Error(analysis.error);
223
+ }
224
+
225
+ // Étape 2: Corriger
226
+ const fix = await overmind.request(
227
+ "correcteur",
228
+ `Corrige les problèmes identifiés: ${analysis.output}`
229
+ );
230
+
231
+ // Étape 3: Vérifier
232
+ const verify = await overmind.request(
233
+ "verificateur",
234
+ "Vérifie que tout est corrigé..."
235
+ );
236
+ ```
237
+
238
+ ### Pattern 3: Workflow Multi-Agents Parallèle
239
+
240
+ ```typescript
241
+ import { runAgents_parallel } from "overmind-mcp";
242
+
243
+ // Exécuter 3 agents en parallèle
244
+ const results = await runAgents_parallel({
245
+ agents: [
246
+ {
247
+ taskId: "lint",
248
+ runner: "claude",
249
+ agentName: "linter",
250
+ prompt: "Exécute npm run lint et corrige les warnings"
251
+ },
252
+ {
253
+ taskId: "build",
254
+ runner: "claude",
255
+ agentName: "builder",
256
+ prompt: "Exécute npm run build et corrige les erreurs"
257
+ },
258
+ {
259
+ taskId: "test",
260
+ runner: "claude",
261
+ agentName: "tester",
262
+ prompt: "Exécute npm run test et corrige les failures"
263
+ }
264
+ ],
265
+ waitAll: true // Attendre tous les agents
266
+ });
267
+ ```
268
+
269
+ ### Pattern 4: Retry avec Fallback
270
+
271
+ ```typescript
272
+ async function executeWithRetry(
273
+ agentName: string,
274
+ mission: string,
275
+ maxRetries: number = 3
276
+ ) {
277
+ for (let i = 0; i < maxRetries; i++) {
278
+ const res = await overmind.request(agentName, mission);
279
+
280
+ if (res.success) {
281
+ return res;
282
+ }
283
+
284
+ console.warn(`Tentative ${i + 1}/${maxRetries} échouée`);
285
+
286
+ if (i < maxRetries - 1) {
287
+ // Attendre avant retry
288
+ await new Promise(resolve => setTimeout(resolve, 2000));
289
+ }
290
+ }
291
+
292
+ throw new Error("Échec après " + maxRetries + " tentatives");
293
+ }
294
+ ```
295
+
296
+ ### Pattern 5: Workflow avec Mémoire
297
+
298
+ ```typescript
299
+ // 1. Rechercher dans la mémoire
300
+ const previous = await overmind.memory_search("maintenance workflow");
301
+
302
+ // 2. Créer le prompt avec contexte
303
+ const contextPrompt = `
304
+ CONTEXTE HISTORIQUE :
305
+ ${previous.map(r => r.text).join("\n")}
306
+
307
+ MISSION ACTUELLE :
308
+ Maintenance Zero Tolerance du projet...
309
+ `;
310
+
311
+ // 3. Exécuter
312
+ const res = await overmind.request("mainteneur", contextPrompt);
313
+
314
+ // 4. Mémoriser le résultat
315
+ if (res.success) {
316
+ await overmind.memory_store(
317
+ `Maintenance complétée: ${res.output.substring(0, 100)}...`,
318
+ "agent"
319
+ );
320
+ }
321
+ ```
322
+
323
+ ---
324
+
325
+ ## 🎨 Étape 4: Types et Configurations
326
+
327
+ ### types.ts
328
+
329
+ ```typescript
330
+ export type RunnerType =
331
+ | "claude"
332
+ | "gemini"
333
+ | "kilo"
334
+ | "qwencli"
335
+ | "openclaw"
336
+ | "cline"
337
+ | "opencode"
338
+ | "hermes";
339
+
340
+ export enum JobFrequency {
341
+ MANUAL = "MANUAL",
342
+ HOURLY = "HOURLY",
343
+ DAILY = "DAILY",
344
+ WEEKLY = "WEEKLY",
345
+ MONTHLY = "MONTHLY",
346
+ }
347
+
348
+ export interface JobConfig {
349
+ id: string;
350
+ name: string;
351
+ agent: string;
352
+ shortDescription: string;
353
+ mission: string;
354
+ runner: RunnerType;
355
+ frequency: JobFrequency;
356
+ autoResume: boolean;
357
+ scheduleTime?: { hour: number; minute: number };
358
+ secondScheduleTime?: { hour: number; minute: number };
359
+ }
360
+ ```
361
+
362
+ ---
363
+
364
+ ## 🔧 Étape 5: Bonnes Pratiques
365
+
366
+ ### ✅ À Faire
367
+
368
+ 1. **Initialiser le contexte en premier**
369
+ ```typescript
370
+ import "./env.js"; // TOUJOURS EN PREMIER
371
+ ```
372
+
373
+ 2. **Gérer les erreurs**
374
+ ```typescript
375
+ try {
376
+ const res = await overmind.request(...);
377
+ if (!res.success) {
378
+ console.error(res.error);
379
+ return;
380
+ }
381
+ } catch (err) {
382
+ console.error(err);
383
+ }
384
+ ```
385
+
386
+ 3. **Spécifier le cwd**
387
+ ```typescript
388
+ const res = await overmind.request(
389
+ agent,
390
+ mission,
391
+ runner,
392
+ false,
393
+ "C:\\path\\to\\project" // cwd explicite
394
+ );
395
+ ```
396
+
397
+ 4. **Utiliser la mémoire**
398
+ ```typescript
399
+ await overmind.memory_store("Information importante", "user");
400
+ const results = await overmind.memory_search("requete");
401
+ ```
402
+
403
+ 5. **Logger les durées**
404
+ ```typescript
405
+ console.log(`Terminé en ${res.duration}s`);
406
+ ```
407
+
408
+ ### ❌ À Éviter
409
+
410
+ 1. **Oublier l'initialisation du contexte**
411
+ ```typescript
412
+ // ❌ FAUX
413
+ import { runAgent } from "overmind-mcp";
414
+
415
+ // ✅ CORRECT
416
+ import "./env.js";
417
+ import { runAgent } from "overmind-mcp";
418
+ ```
419
+
420
+ 2. **Ignorer les erreurs**
421
+ ```typescript
422
+ // ❌ FAUX
423
+ await overmind.request(agent, mission);
424
+
425
+ // ✅ CORRECT
426
+ const res = await overmind.request(agent, mission);
427
+ if (!res.success) {
428
+ // Gérer l'erreur
429
+ }
430
+ ```
431
+
432
+ 3. **Prompt trop vague**
433
+ ```typescript
434
+ // ❌ FAUX
435
+ await overmind.request(agent, "Corrige les erreurs");
436
+
437
+ // ✅ CORRECT
438
+ const prompt = `[ZERO TOLERANCE PROTOCOL] :
439
+ 1. Exécute npm run lint
440
+ 2. Corrige TOUTES les erreurs
441
+ 3. Relance jusqu'à 0 défaut`;
442
+ ```
443
+
444
+ ---
445
+
446
+ ## 📚 Étape 6: Exemples Complets
447
+
448
+ ### Exemple 1: Job de Maintenance Complet
449
+
450
+ ```typescript
451
+ import { overmind } from "../overmind-bridge.js";
452
+ import type { JobConfig } from "../types.js";
453
+ import { JobFrequency } from "../types.js";
454
+ import path from "path";
455
+ import { fileURLToPath } from "url";
456
+
457
+ export const config: JobConfig = {
458
+ id: "001",
459
+ name: "Maintenance Zero Tolerance",
460
+ agent: "mainteneur",
461
+ shortDescription: "Lint/Build/Test complet",
462
+ mission: `OBJECTIF 0 DÉFAUT (v14.4) :
463
+ 1. LINT : Atteindre 0 warning via 'npm run lint'
464
+ 2. BUILD : Atteindre 0 erreur via 'npm run build'
465
+ 3. TEST : 100% réussite via 'npm run test'
466
+ 4. FIXING : Corriger activement tout écart`,
467
+ runner: "claude",
468
+ frequency: JobFrequency.DAILY,
469
+ autoResume: false,
470
+ scheduleTime: { hour: 0, minute: 0 },
471
+ };
472
+
473
+ async function runStandalone() {
474
+ console.log(`🚀 [MISSION: ${config.id}] ${config.name}`);
475
+ const startTime = Date.now();
476
+
477
+ try {
478
+ const prompt = `[ZERO TOLERANCE PROTOCOL v14.4] :
479
+ 1. TARGET : Tu es dans C:\\path\\to\\project.
480
+ 2. EXECUTE : npm run lint, npm run build, npm run test.
481
+ 3. ANALYZE : S'il y a le MOINDRE warning, CORRIGE-LES.
482
+ 4. FINAL CHECK : Relance jusqu'à ZERO défaut.
483
+ 5. STATUS : Score final 100/100 exigé.
484
+
485
+ ${config.mission}`;
486
+
487
+ const res = await overmind.request(
488
+ config.agent,
489
+ prompt,
490
+ config.runner,
491
+ false,
492
+ "C:\\path\\to\\project"
493
+ );
494
+
495
+ const duration = ((Date.now() - startTime) / 1000).toFixed(1);
496
+
497
+ if (res.success) {
498
+ console.log(`✅ Terminé en ${duration}s`);
499
+ console.log(res.output);
500
+
501
+ await overmind.memory_store(
502
+ `Job ${config.id} complété avec succès (0 défaut)`,
503
+ "agent"
504
+ );
505
+ } else {
506
+ console.error(`❌ Erreur: ${res.error}`);
507
+ }
508
+ } catch (err) {
509
+ console.error("Erreur critique:", err);
510
+ }
511
+ }
512
+
513
+ // Exécution standalone
514
+ const __filename = fileURLToPath(import.meta.url);
515
+ if (process.argv[1] && path.resolve(process.argv[1]) === path.resolve(__filename)) {
516
+ runStandalone().catch((err) => {
517
+ console.error(err);
518
+ process.exit(1);
519
+ });
520
+ }
521
+ ```
522
+
523
+ ### Exemple 2: Workflow Multi-Projets
524
+
525
+ ```typescript
526
+ import { overmind } from "../overmind-bridge.js";
527
+
528
+ const PROJECTS = [
529
+ { name: "agent-divers", path: "C:\\SierraChart\\ACS_Source\\BTCacsil\\agent_multi" },
530
+ { name: "workflow", path: "C:\\Users\\Deamon\\Desktop\\Backup\\Serveur MCP\\Workflow" },
531
+ ];
532
+
533
+ async function maintenanceAllProjects() {
534
+ const results = [];
535
+
536
+ for (const project of PROJECTS) {
537
+ console.log(`\n🔧 Maintenance de ${project.name}...`);
538
+
539
+ const res = await overmind.request(
540
+ "mainteneur",
541
+ `[MAINTENANCE PROJECT: ${project.name}]
542
+ 1. cd ${project.path}
543
+ 2. npm run lint
544
+ 3. npm run build
545
+ 4. npm run test
546
+ 5. Corriger tous les défauts`,
547
+ "claude",
548
+ false,
549
+ project.path
550
+ );
551
+
552
+ results.push({
553
+ project: project.name,
554
+ success: res.success,
555
+ duration: res.duration,
556
+ output: res.output?.substring(0, 200) + "..."
557
+ });
558
+ }
559
+
560
+ // Rapport final
561
+ console.log("\n📊 RAPPORT GLOBAL:");
562
+ results.forEach(r => {
563
+ const icon = r.success ? "✅" : "❌";
564
+ console.log(`${icon} ${r.project}: ${r.duration}s`);
565
+ });
566
+
567
+ // Mémoriser
568
+ const successCount = results.filter(r => r.success).length;
569
+ await overmind.memory_store(
570
+ `Maintenance multi-projets: ${successCount}/${results.length} réussis`,
571
+ "agent"
572
+ );
573
+ }
574
+
575
+ maintenanceAllProjects().catch(console.error);
576
+ ```
577
+
578
+ ---
579
+
580
+ ## 🎯 Conclusion
581
+
582
+ **Workflow Client OverMind = 3 Étapes**:
583
+
584
+ 1. **overmind-bridge.ts** - Wrapper service autour de `runAgent()`
585
+ 2. **jobs/JOB_XXX.ts** - Configurations et logique métier
586
+ 3. **runStandalone()** - Exécution avec gestion d'erreurs
587
+
588
+ **Points Clés**:
589
+ - ✅ `import "./env.js"` OBLIGATOIRE EN PREMIER
590
+ - ✅ Gestion d'erreurs robuste
591
+ - ✅ Mémoire vectorielle pour persistence
592
+ - ✅ Multi-agents parallèle possibles
593
+ - ✅ Retry et fallback automatiques
594
+
595
+ **Architecture = Flexibilité Maximale**: Vous pouvez créer n'importe quel workflow en combinant ces patterns.
@@ -0,0 +1,101 @@
1
+ # 📁 Structure du Projet OverMind MCP
2
+
3
+ Organisation des dossiers et fichiers pour une meilleure navigation et maintenance.
4
+
5
+ ## 📂 Arborescence
6
+
7
+ ```
8
+ Workflow/
9
+ ├── 📦 bin/ # Scripts d'installation
10
+ │ ├── install-overmind-unix.sh
11
+ │ ├── install-overmind-windows.bat
12
+ │ └── README.md
13
+ ├── 📋 changelog/ # Historique des versions
14
+ │ ├── CHANGELOG.md
15
+ │ ├── CHANGELOG.2.0.7.md
16
+ │ ├── CHANGELOG_ENV_FIX.md
17
+ │ └── README.md
18
+ ├── 🐳 docker/ # Configuration Docker
19
+ │ ├── docker-compose.yml
20
+ │ └── README.md
21
+ ├── 🗄️ db/ # Scripts base de données
22
+ │ ├── init-db.sql
23
+ │ ├── init-overmind-db.sql
24
+ │ └── README.md
25
+ ├── ⚙️ config/ # Configurations MCP
26
+ │ ├── mcp-config.json
27
+ │ └── README.md
28
+ ├── 📚 docs/ # Documentation complète
29
+ │ ├── api/ # Documentation API
30
+ │ ├── guides/ # Guides d'utilisation
31
+ │ └── tools.md # Référence des outils
32
+ ├── 🔧 scripts/ # Scripts de maintenance
33
+ │ ├── setup.mjs
34
+ │ ├── postgres-manager.mjs
35
+ │ └── uninstall.mjs
36
+ ├── 💻 src/ # Code source
37
+ │ ├── bin/ # Points d'entrée CLI
38
+ │ ├── lib/ # Bibliothèques partagées
39
+ │ ├── services/ # Services métier
40
+ │ ├── tools/ # Outils MCP
41
+ │ └── server.ts # Serveur MCP principal
42
+ ├── 🧪 tests/ # Tests unitaires
43
+ └── 📦 assets/ # Ressources (images, bannières)
44
+ ```
45
+
46
+ ## 🎯 Organisation par type de fichier
47
+
48
+ ### 📦 bin/ - Scripts d'installation
49
+ Contient les scripts pour installer OverMind MCP sur différents systèmes.
50
+
51
+ ### 📋 changelog/ - Historique des versions
52
+ Tous les changelogs organisés par version avec format standardisé.
53
+
54
+ ### 🐳 docker/ - Configuration Docker
55
+ Stack Docker Compose avec tous les services nécessaires.
56
+
57
+ ### 🗄️ db/ - Scripts base de données
58
+ Scripts SQL pour l'initialisation et la maintenance PostgreSQL.
59
+
60
+ ### ⚙️ config/ - Configurations MCP
61
+ Exemples de configurations MCP pour différents scénarios d'utilisation.
62
+
63
+ ## 🔍 Navigation rapide
64
+
65
+ ### Pour les développeurs
66
+ ```bash
67
+ # Installer
68
+ bin/install-overmind-unix.sh
69
+
70
+ # Démarrer Docker
71
+ cd docker && docker-compose up -d
72
+
73
+ # Initialiser la BD
74
+ cat db/init-overmind-db.sql | docker exec -i overmind-postgres-pgvector psql -U postgres
75
+ ```
76
+
77
+ ### Pour les utilisateurs
78
+ ```bash
79
+ # Voir les changelogs
80
+ ls changelog/
81
+
82
+ # Lire la doc d'un dossier
83
+ cat config/README.md
84
+ cat docker/README.md
85
+ ```
86
+
87
+ ## 📝 Conventions
88
+
89
+ ### Nouveaux fichiers
90
+ - **Scripts** → `bin/`
91
+ - **Changelogs** → `changelog/`
92
+ - **Docker** → `docker/`
93
+ - **SQL** → `db/`
94
+ - **Config** → `config/`
95
+ - **Documentation** → `docs/`
96
+
97
+ ### Avantages de cette organisation
98
+ 1. **Navigation claire** - Chaque type de fichier a son emplacement
99
+ 2. **Maintenance facilitée** - Scripts et config regroupés
100
+ 3. **Documentation contextuelle** - README dans chaque dossier
101
+ 4. **Professional** - Structure organisée selon les standards Node.js