overmind-mcp 2.4.0 → 2.4.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 (154) hide show
  1. package/README.md +80 -107
  2. package/assets/overmind_mcp_pro_banner_v3.png +0 -0
  3. package/dist/bin/cli.js +7 -438
  4. package/dist/bin/cli.js.map +1 -1
  5. package/dist/index.d.ts +2 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +2 -3
  8. package/dist/index.js.map +1 -1
  9. package/dist/lib/config.d.ts +1 -31
  10. package/dist/lib/config.d.ts.map +1 -1
  11. package/dist/lib/config.js +27 -19
  12. package/dist/lib/config.js.map +1 -1
  13. package/dist/lib/sessions.d.ts +2 -3
  14. package/dist/lib/sessions.d.ts.map +1 -1
  15. package/dist/lib/sessions.js +25 -94
  16. package/dist/lib/sessions.js.map +1 -1
  17. package/dist/memory/MemoryFactory.d.ts +1 -15
  18. package/dist/memory/MemoryFactory.d.ts.map +1 -1
  19. package/dist/memory/MemoryFactory.js +3 -53
  20. package/dist/memory/MemoryFactory.js.map +1 -1
  21. package/dist/memory/PostgresMemoryProvider.d.ts +0 -7
  22. package/dist/memory/PostgresMemoryProvider.d.ts.map +1 -1
  23. package/dist/memory/PostgresMemoryProvider.js +105 -180
  24. package/dist/memory/PostgresMemoryProvider.js.map +1 -1
  25. package/dist/server.d.ts +0 -41
  26. package/dist/server.d.ts.map +1 -1
  27. package/dist/server.js +26 -152
  28. package/dist/server.js.map +1 -1
  29. package/dist/services/AgentManager.d.ts.map +1 -1
  30. package/dist/services/AgentManager.js +11 -67
  31. package/dist/services/AgentManager.js.map +1 -1
  32. package/dist/services/ClaudeRunner.d.ts +0 -8
  33. package/dist/services/ClaudeRunner.d.ts.map +1 -1
  34. package/dist/services/ClaudeRunner.js +213 -514
  35. package/dist/services/ClaudeRunner.js.map +1 -1
  36. package/dist/services/ClineRunner.d.ts +0 -7
  37. package/dist/services/ClineRunner.d.ts.map +1 -1
  38. package/dist/services/ClineRunner.js +11 -80
  39. package/dist/services/ClineRunner.js.map +1 -1
  40. package/dist/services/GeminiRunner.d.ts +0 -6
  41. package/dist/services/GeminiRunner.d.ts.map +1 -1
  42. package/dist/services/GeminiRunner.js +58 -285
  43. package/dist/services/GeminiRunner.js.map +1 -1
  44. package/dist/services/KiloRunner.d.ts +0 -12
  45. package/dist/services/KiloRunner.d.ts.map +1 -1
  46. package/dist/services/KiloRunner.js +57 -441
  47. package/dist/services/KiloRunner.js.map +1 -1
  48. package/dist/services/OpenClawRunner.d.ts +0 -7
  49. package/dist/services/OpenClawRunner.d.ts.map +1 -1
  50. package/dist/services/OpenClawRunner.js +11 -79
  51. package/dist/services/OpenClawRunner.js.map +1 -1
  52. package/dist/services/OpenCodeRunner.d.ts +0 -7
  53. package/dist/services/OpenCodeRunner.d.ts.map +1 -1
  54. package/dist/services/OpenCodeRunner.js +11 -79
  55. package/dist/services/OpenCodeRunner.js.map +1 -1
  56. package/dist/services/QwenRunner.d.ts +19 -0
  57. package/dist/services/QwenRunner.d.ts.map +1 -0
  58. package/dist/services/QwenRunner.js +87 -0
  59. package/dist/services/QwenRunner.js.map +1 -0
  60. package/dist/services/TraeRunner.d.ts +19 -0
  61. package/dist/services/TraeRunner.d.ts.map +1 -0
  62. package/dist/services/TraeRunner.js +88 -0
  63. package/dist/services/TraeRunner.js.map +1 -0
  64. package/dist/tools/config_example.d.ts +4 -7
  65. package/dist/tools/config_example.d.ts.map +1 -1
  66. package/dist/tools/config_example.js +86 -191
  67. package/dist/tools/config_example.js.map +1 -1
  68. package/dist/tools/create_agent.d.ts +9 -15
  69. package/dist/tools/create_agent.d.ts.map +1 -1
  70. package/dist/tools/create_agent.js +9 -8
  71. package/dist/tools/create_agent.js.map +1 -1
  72. package/dist/tools/get_agent_configs.d.ts +4 -10
  73. package/dist/tools/get_agent_configs.d.ts.map +1 -1
  74. package/dist/tools/get_agent_configs.js.map +1 -1
  75. package/dist/tools/manage_agents.d.ts +18 -36
  76. package/dist/tools/manage_agents.d.ts.map +1 -1
  77. package/dist/tools/manage_agents.js +2 -2
  78. package/dist/tools/manage_agents.js.map +1 -1
  79. package/dist/tools/manage_prompts.d.ts +8 -13
  80. package/dist/tools/manage_prompts.d.ts.map +1 -1
  81. package/dist/tools/manage_prompts.js.map +1 -1
  82. package/dist/tools/memory_runs.d.ts +4 -3
  83. package/dist/tools/memory_runs.d.ts.map +1 -1
  84. package/dist/tools/memory_runs.js.map +1 -1
  85. package/dist/tools/memory_search.d.ts +4 -3
  86. package/dist/tools/memory_search.d.ts.map +1 -1
  87. package/dist/tools/memory_search.js.map +1 -1
  88. package/dist/tools/memory_store.d.ts +5 -11
  89. package/dist/tools/memory_store.d.ts.map +1 -1
  90. package/dist/tools/memory_store.js.map +1 -1
  91. package/dist/tools/run_agent.d.ts +16 -15
  92. package/dist/tools/run_agent.d.ts.map +1 -1
  93. package/dist/tools/run_agent.js +160 -128
  94. package/dist/tools/run_agent.js.map +1 -1
  95. package/dist/tools/run_claude.d.ts +3 -8
  96. package/dist/tools/run_claude.d.ts.map +1 -1
  97. package/dist/tools/run_claude.js +41 -59
  98. package/dist/tools/run_claude.js.map +1 -1
  99. package/dist/tools/run_cline.d.ts +4 -13
  100. package/dist/tools/run_cline.d.ts.map +1 -1
  101. package/dist/tools/run_cline.js +43 -55
  102. package/dist/tools/run_cline.js.map +1 -1
  103. package/dist/tools/run_gemini.d.ts +4 -13
  104. package/dist/tools/run_gemini.d.ts.map +1 -1
  105. package/dist/tools/run_gemini.js +33 -53
  106. package/dist/tools/run_gemini.js.map +1 -1
  107. package/dist/tools/run_kilo.d.ts +7 -17
  108. package/dist/tools/run_kilo.d.ts.map +1 -1
  109. package/dist/tools/run_kilo.js +41 -68
  110. package/dist/tools/run_kilo.js.map +1 -1
  111. package/dist/tools/run_openclaw.d.ts +4 -13
  112. package/dist/tools/run_openclaw.d.ts.map +1 -1
  113. package/dist/tools/run_openclaw.js +44 -52
  114. package/dist/tools/run_openclaw.js.map +1 -1
  115. package/dist/tools/run_opencode.d.ts +4 -13
  116. package/dist/tools/run_opencode.d.ts.map +1 -1
  117. package/dist/tools/run_opencode.js +39 -52
  118. package/dist/tools/run_opencode.js.map +1 -1
  119. package/dist/tools/run_qwen.d.ts +15 -0
  120. package/dist/tools/run_qwen.d.ts.map +1 -0
  121. package/dist/tools/run_qwen.js +61 -0
  122. package/dist/tools/run_qwen.js.map +1 -0
  123. package/dist/tools/run_trae.d.ts +15 -0
  124. package/dist/tools/run_trae.d.ts.map +1 -0
  125. package/dist/tools/run_trae.js +66 -0
  126. package/dist/tools/run_trae.js.map +1 -0
  127. package/dist/tools/shell_execute.d.ts +10 -0
  128. package/dist/tools/shell_execute.d.ts.map +1 -0
  129. package/dist/tools/shell_execute.js +24 -0
  130. package/dist/tools/shell_execute.js.map +1 -0
  131. package/package.json +25 -55
  132. package/.mcp.json.example +0 -21
  133. package/assets/overmind.png +0 -0
  134. package/bin/.gitkeep +0 -0
  135. package/bin/README.md +0 -34
  136. package/bin/install-overmind-unix.sh +0 -412
  137. package/bin/install-overmind-windows.bat +0 -407
  138. package/docs/README.md +0 -128
  139. package/docs/agent_control.md +0 -656
  140. package/docs/index.html +0 -493
  141. package/docs/library.html +0 -239
  142. package/docs/prompt.html +0 -1212
  143. package/docs/script.js +0 -428
  144. package/docs/styles.css +0 -2816
  145. package/scripts/auto-changelog.mjs +0 -132
  146. package/scripts/auto-install.mjs +0 -322
  147. package/scripts/install-dependencies.mjs +0 -462
  148. package/scripts/postgres-manager.mjs +0 -219
  149. package/scripts/postinstall.mjs +0 -538
  150. package/scripts/setup-overmind-db.mjs +0 -199
  151. package/scripts/setup-windows.js +0 -266
  152. package/scripts/setup.mjs +0 -397
  153. package/scripts/test-installation.mjs +0 -158
  154. package/scripts/uninstall.mjs +0 -238
@@ -1,538 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * ═══════════════════════════════════════════════════════════════════════════════
4
- * OVERMIND-MCP - POST-INSTALL AUTOMATIQUE (SIMPLIFIÉ)
5
- * ═══════════════════════════════════════════════════════════════════════════════
6
- * Script exécuté automatiquement après npm install -g overmind-mcp
7
- * INSTALLE UNIQUEMENT :
8
- * - Vérifie Docker
9
- * - Installe PostgreSQL + pgvector (si absent)
10
- * - Copie .env.example → .env
11
- * - Copie .mcp.json.example → .mcp.json
12
- * ═══════════════════════════════════════════════════════════════════════════════
13
- */
14
-
15
- import { execSync, spawn } from 'child_process';
16
- import { existsSync, mkdirSync, writeFileSync, readFileSync } from 'fs';
17
- import { join } from 'path';
18
- import { fileURLToPath } from 'url';
19
- import { dirname } from 'path';
20
-
21
- const __filename = fileURLToPath(import.meta.url);
22
- const __dirname = dirname(__filename);
23
-
24
- const INSTALL_DIR = join(
25
- process.env.HOME || process.env.USERPROFILE || process.env.HOMEPATH,
26
- '.overmind'
27
- );
28
-
29
- // ═══════════════════════════════════════════════════════════════════════════════
30
- // COLORS
31
- // ═════════════════════════════════════════════════════════════════════════════
32
-
33
- const COLORS = {
34
- cyan: '\x1b[36m',
35
- green: '\x1b[32m',
36
- yellow: '\x1b[33m',
37
- red: '\x1b[31m',
38
- white: '\x1b[37m',
39
- reset: '\x1b[0m'
40
- };
41
-
42
- function log(color, str) {
43
- console.log(`${color}${str}${COLORS.reset}`);
44
- }
45
-
46
- function logSection(title) {
47
- console.log('\n╔══════════════════════════════════════════════════════════════════╗');
48
- console.log(`║ ${title.padEnd(64)} ║`);
49
- console.log('╚══════════════════════════════════════════════════════════════════╝');
50
- }
51
-
52
- function runCommand(cmd, options = {}) {
53
- try {
54
- return execSync(cmd, { stdio: 'pipe', encoding: 'utf8', ...options });
55
- } catch {
56
- return null;
57
- }
58
- }
59
-
60
- async function runCommandAsync(cmd, description) {
61
- return new Promise((resolve, reject) => {
62
- console.log(`🔧 ${description}`);
63
- console.log(` $ ${cmd}`);
64
-
65
- const child = spawn(cmd, { shell: true, stdio: 'inherit' });
66
-
67
- child.on('close', (code) => {
68
- if (code === 0) {
69
- console.log(`✅ ${description} terminé`);
70
- resolve(true);
71
- } else {
72
- console.error(`❌ Erreur (code ${code})`);
73
- reject(new Error(`Command failed with code ${code}`));
74
- }
75
- });
76
-
77
- child.on('error', (err) => {
78
- console.error('❌ Erreur:', err.message);
79
- reject(err);
80
- });
81
- });
82
- }
83
-
84
- // ═══════════════════════════════════════════════════════════════════════════════
85
- // INSTALLATION STEPS
86
- // ═════════════════════════════════════════════════════════════════════════════
87
-
88
- async function checkDocker() {
89
- logSection('VÉRIFICATION DOCKER');
90
-
91
- const version = runCommand('docker --version');
92
- if (!version) {
93
- log(COLORS.red, '❌ Docker non trouvé');
94
- console.log('');
95
- log(COLORS.yellow, '📥 Installation Docker requise:');
96
-
97
- const platform = process.platform;
98
- if (platform === 'win32') {
99
- console.log(' Windows: Docker Desktop, Rancher Desktop, ou Podman');
100
- console.log(' https://www.docker.com/products/docker-desktop/');
101
- } else if (platform === 'darwin') {
102
- console.log(' macOS: Docker Desktop, Colima, OrbStack, ou Podman');
103
- console.log(' https://www.docker.com/products/docker-desktop/');
104
- } else {
105
- console.log(' Linux: Docker Engine, Podman, ou rootless Docker');
106
- console.log(' https://docs.docker.com/engine/install/');
107
- console.log(' Podman: https://podman.io/getting-started/installation');
108
- }
109
-
110
- log(COLORS.cyan, '\nAprès installation de Docker, relancez: npm install -g overmind-mcp');
111
- return false;
112
- }
113
-
114
- // Détecter le type d'implémentation Docker
115
- let implType = 'Docker';
116
- try {
117
- const dockerInfo = runCommand('docker info --format "{{.ServerVersion}}"');
118
- if (dockerInfo) {
119
- // Essayer de détecter Podman
120
- const podmanCheck = runCommand('docker info --format "{{.OperatingSystem}}"');
121
- if (podmanCheck && podmanCheck.toLowerCase().includes('podman')) {
122
- implType = 'Podman';
123
- }
124
- }
125
- } catch (e) {
126
- // Ignorer les erreurs de détection
127
- }
128
-
129
- log(COLORS.green, '✅ Docker détecté: ' + version.trim());
130
- if (implType !== 'Docker') {
131
- log(COLORS.cyan, ' Implémentation: ' + implType);
132
- }
133
- return true;
134
- }
135
-
136
- async function setupPostgreSQL() {
137
- logSection('INSTALLATION POSTGRESQL + PGVECTOR');
138
-
139
- // Check if already exists
140
- const existingContainer = runCommand(
141
- 'docker ps --filter "name=postgres" --format "{{.Names}}"',
142
- { stdio: 'pipe' }
143
- );
144
-
145
- if (existingContainer) {
146
- log(COLORS.green, '✅ PostgreSQL + pgvector déjà installé');
147
- log(COLORS.cyan, ' Container: ' + existingContainer.trim());
148
- return true;
149
- }
150
-
151
- log(COLORS.yellow, '📦 Installation PostgreSQL + pgvector...');
152
-
153
- try {
154
- await runCommandAsync(
155
- 'docker pull pgvector/pgvector:pg16',
156
- 'Téléchargement image'
157
- );
158
-
159
- // Remove existing if stopped
160
- runCommand('docker rm -f overmind-postgres-pgvector', { stdio: 'pipe' });
161
-
162
- const runCmd = [
163
- 'docker', 'run', '-d',
164
- '--name', 'overmind-postgres-pgvector',
165
- '-p', '5432:5432',
166
- '-e', 'POSTGRES_PASSWORD=overmind_temp_password_change_me',
167
- '-e', 'POSTGRES_USER=postgres',
168
- '-v', 'overmind_postgres_data:/var/lib/postgresql/data',
169
- '--restart', 'unless-stopped',
170
- 'pgvector/pgvector:pg16'
171
- ].join(' ');
172
-
173
- await runCommandAsync(runCmd, 'Démarrage PostgreSQL');
174
-
175
- log(COLORS.cyan, '\n⏳ Attente démarrage PostgreSQL (20s)...');
176
- await new Promise(resolve => setTimeout(resolve, 20000));
177
-
178
- // Enable pgvector
179
- await runCommandAsync(
180
- `docker exec overmind-postgres-pgvector psql -U postgres -c "CREATE EXTENSION IF NOT EXISTS vector;"`,
181
- 'Activation pgvector'
182
- );
183
-
184
- log(COLORS.green, '\n✅ PostgreSQL + pgvector installés !');
185
- return true;
186
- } catch (error) {
187
- log(COLORS.red, '❌ Erreur installation PostgreSQL: ' + error.message);
188
- return false;
189
- }
190
- }
191
-
192
- async function setupConfigFiles() {
193
- logSection('TÉLÉCHARGEMENT CONFIGURATIONS');
194
-
195
- mkdirSync(INSTALL_DIR, { recursive: true });
196
-
197
- log(COLORS.yellow, '📥 Téléchargement fichiers de configuration...');
198
-
199
- const envExampleUrl = 'https://raw.githubusercontent.com/DeamonDev888/overmind-mcp/main/.env.example';
200
- const mcpExampleUrl = 'https://raw.githubusercontent.com/DeamonDev888/overmind-mcp/main/.mcp.json.example';
201
-
202
- try {
203
- // Télécharger .env.example
204
- const envExampleData = runCommand(`curl -sL --max-time 30 ${envExampleUrl}`);
205
- if (envExampleData) {
206
- writeFileSync(join(INSTALL_DIR, '.env.example'), envExampleData);
207
- log(COLORS.green, '✅ .env.example téléchargé');
208
- }
209
-
210
- // Télécharger .mcp.json.example
211
- const mcpExampleData = runCommand(`curl -sL --max-time 30 ${mcpExampleUrl}`);
212
- if (mcpExampleData) {
213
- writeFileSync(join(INSTALL_DIR, '.mcp.json.example'), mcpExampleData);
214
- log(COLORS.green, '✅ .mcp.json.example téléchargé');
215
- }
216
-
217
- return true;
218
- } catch (error) {
219
- log(COLORS.red, '❌ Erreur téléchargement: ' + error.message);
220
- return false;
221
- }
222
- }
223
-
224
- async function installPostgresMCP() {
225
- logSection('INSTALLATION OVERMIND-POSTGRES-MCP');
226
-
227
- log(COLORS.yellow, '📦 Installation du serveur MCP PostgreSQL...');
228
-
229
- try {
230
- // Vérifier si déjà installé
231
- const checkInstalled = runCommand('npm list -g overmind-postgres-mcp', { stdio: 'pipe' });
232
-
233
- if (checkInstalled && checkInstalled.includes('overmind-postgres-mcp')) {
234
- log(COLORS.green, '✅ overmind-postgres-mcp déjà installé');
235
- return true;
236
- }
237
-
238
- await runCommandAsync(
239
- 'npm install -g overmind-postgres-mcp',
240
- 'Installation overmind-postgres-mcp'
241
- );
242
-
243
- log(COLORS.green, '✅ overmind-postgres-mcp installé avec succès !');
244
- return true;
245
- } catch (error) {
246
- log(COLORS.yellow, "⚠️ Erreur installation overmind-postgres-mcp: " + error.message);
247
- log(COLORS.cyan, "💡 Vous pouvez l'installer manuellement: npm install -g overmind-postgres-mcp");
248
- return false; // Non bloquant
249
- }
250
- }
251
-
252
- function createEnvConfig() {
253
- logSection('CRÉATION CONFIGURATION');
254
-
255
- mkdirSync(INSTALL_DIR, { recursive: true });
256
-
257
- const envFile = join(INSTALL_DIR, '.env');
258
- const envExampleFile = join(INSTALL_DIR, '.env.example');
259
- const mcpFile = join(INSTALL_DIR, '.mcp.json');
260
- const mcpExampleFile = join(INSTALL_DIR, '.mcp.json.example');
261
- const postgresEnvFile = join(INSTALL_DIR, '.env.postgres');
262
-
263
- // Copier .env.example → .env si existe
264
- if (existsSync(envExampleFile) && !existsSync(envFile)) {
265
- let envContent;
266
-
267
- if (process.platform === 'win32') {
268
- envContent = runCommand(`type "${envExampleFile}"`, { stdio: 'pipe' });
269
- } else {
270
- envContent = runCommand(`cat "${envExampleFile}"`, { stdio: 'pipe' });
271
- }
272
-
273
- if (envContent) {
274
- writeFileSync(envFile, envContent);
275
- log(COLORS.green, '✅ .env créé (à partir de .env.example)');
276
- }
277
- }
278
-
279
- // Créer .env minimal si n'existe pas
280
- if (!existsSync(envFile)) {
281
- const envContent = `# OverMind-MCP Environment Configuration
282
- # Généré automatiquement par npm install
283
-
284
- # PostgreSQL
285
- POSTGRES_HOST=localhost
286
- POSTGRES_PORT=5432
287
- POSTGRES_USER=postgres
288
- POSTGRES_PASSWORD=overmind_temp_password_change_me
289
- POSTGRES_DB=overmind_memory
290
-
291
- # OverMind
292
- OVERMIND_WORKSPACE=${INSTALL_DIR}
293
- OVERMIND_MEMORY_TYPE=postgres
294
-
295
- # OpenTelemetry (optionnel)
296
- OTEL_ENABLED=false
297
- `;
298
- writeFileSync(envFile, envContent);
299
- log(COLORS.green, '✅ Configuration .env créée: ' + envFile);
300
- }
301
-
302
- // Créer .env.postgres pour overmind-postgres-mcp
303
- if (!existsSync(postgresEnvFile)) {
304
- const postgresEnvContent = `# OverMind-PostgreSQL-MCP Configuration
305
- # Généré automatiquement par OverMind-MCP
306
-
307
- # Activer la base de données
308
- USE_DATABASE=true
309
-
310
- # PostgreSQL Configuration (compatible OverMind)
311
- POSTGRES_HOST=localhost
312
- POSTGRES_PORT=5432
313
- POSTGRES_DATABASE=overmind_memory
314
- POSTGRES_USER=postgres
315
- POSTGRES_PASSWORD=overmind_temp_password_change_me
316
-
317
- # Additional PostgreSQL Settings
318
- POSTGRES_SSL=false
319
- POSTGRES_MAX_CONNECTIONS=10
320
- POSTGRES_IDLE_TIMEOUT=30000
321
-
322
- # Environment
323
- NODE_ENV=production
324
-
325
- # OpenRouter Configuration (Qwen3 Embedding 8B - 4096D)
326
- OPENROUTER_API_KEY=sk-or-v1-your_key_here
327
- OPENROUTER_MODEL=qwen/qwen3-embedding-8b
328
- EMBEDDING_PROVIDER=openrouter
329
- EMBEDDING_DIMENSIONS=4096
330
- EMBEDDING_CACHE_SIZE=1000
331
- `;
332
- writeFileSync(postgresEnvFile, postgresEnvContent);
333
- log(COLORS.green, '✅ Configuration .env.postgres créée: ' + postgresEnvFile);
334
- }
335
-
336
- // Copier .mcp.json.example → .mcp.json si existe
337
- if (existsSync(mcpExampleFile) && !existsSync(mcpFile)) {
338
- let mcpContent;
339
-
340
- if (process.platform === 'win32') {
341
- mcpContent = runCommand(`type "${mcpExampleFile}"`, { stdio: 'pipe' });
342
- } else {
343
- mcpContent = runCommand(`cat "${mcpExampleFile}"`, { stdio: 'pipe' });
344
- }
345
-
346
- if (mcpContent) {
347
- writeFileSync(mcpFile, mcpContent);
348
- log(COLORS.green, '✅ .mcp.json créé (à partir de .mcp.json.example)');
349
- }
350
- }
351
- }
352
-
353
- async function startPostgreSQL() {
354
- logSection('VÉRIFICATION POSTGRESQL + PGVECTOR');
355
-
356
- try {
357
- // Vérifier si PostgreSQL existe déjà (n'importe quel container postgres)
358
- const anyPostgres = runCommand(
359
- 'docker ps --filter "name=postgres" --filter "publish=5432" --format "{{.Names}}"',
360
- { stdio: 'pipe' }
361
- );
362
-
363
- if (anyPostgres) {
364
- log(COLORS.green, '✅ PostgreSQL déjà actif sur le port 5432');
365
- log(COLORS.cyan, ' Container: ' + anyPostgres.trim());
366
- log(COLORS.yellow, ' 💡 Utilisation de PostgreSQL existant (pas de création OverMind)');
367
- return true;
368
- }
369
-
370
- // Vérifier si le container OverMind existe déjà
371
- const overmindContainer = runCommand(
372
- 'docker ps -a --filter "name=overmind-postgres-pgvector" --format "{{.Names}}"',
373
- { stdio: 'pipe' }
374
- );
375
-
376
- if (overmindContainer) {
377
- log(COLORS.yellow, '⚠️ Container OverMind existe mais non démarré');
378
- await runCommandAsync(
379
- 'docker start overmind-postgres-pgvector',
380
- 'Démarrage container OverMind existant'
381
- );
382
- return true;
383
- }
384
-
385
- log(COLORS.yellow, '🚀 Création et démarrage PostgreSQL + pgvector...');
386
-
387
- await runCommandAsync(
388
- 'docker run -d --name overmind-postgres-pgvector -p 5432:5432 -e POSTGRES_PASSWORD=overmind_temp_password_change_me -e POSTGRES_USER=postgres -v overmind_postgres_data:/var/lib/postgresql/data --restart unless-stopped pgvector/pgvector:pg16',
389
- 'Création PostgreSQL OverMind'
390
- );
391
-
392
- log(COLORS.cyan, '\n⏳ Attente démarrage PostgreSQL (20s)...');
393
- await new Promise(resolve => setTimeout(resolve, 20000));
394
-
395
- return true;
396
- } catch (error) {
397
- log(COLORS.red, '\n⚠️ Erreur démarrage PostgreSQL: ' + error.message);
398
- return false;
399
- }
400
- }
401
-
402
- async function validatePostgreSQL() {
403
- logSection('VALIDATION POSTGRESQL');
404
-
405
- log(COLORS.yellow, '🔍 Vérification PostgreSQL + pgvector...\n');
406
-
407
- const containerName = runCommand(
408
- 'docker ps --filter "name=postgres" --format "{{.Names}}"',
409
- { stdio: 'pipe' }
410
- );
411
-
412
- if (containerName) {
413
- log(COLORS.green, ` ✅ PostgreSQL + pgvector: ${containerName.trim()}`);
414
- return true;
415
- } else {
416
- log(COLORS.red, ' ❌ PostgreSQL + pgvector: Non trouvé');
417
- return false;
418
- }
419
- }
420
-
421
- function showSummary() {
422
- console.log('\n╔══════════════════════════════════════════════════════════════════╗');
423
- console.log('║' + ' '.repeat(64) + '║');
424
- console.log('║' + COLORS.green + ' ✅ INSTALLATION TERMINÉE !' + COLORS.reset + ' '.repeat(33) + '║');
425
- console.log('║' + ' '.repeat(64) + '║');
426
- console.log('╚══════════════════════════════════════════════════════════════════╝');
427
- console.log('');
428
- log(COLORS.yellow, "📋 COMPOSANTS INSTALLÉS:");
429
- console.log('');
430
- console.log('┌─────────────────────────────────────────────────────────────────┐');
431
- console.log('│ ' + COLORS.cyan + 'Ouvrez votre interface Docker (Containers)' + COLORS.reset + ' │');
432
- console.log('│ ' + COLORS.cyan + 'Vous verrez le service OverMind actif:' + COLORS.reset + ' │');
433
- console.log('│ ' + COLORS.green + ' • PostgreSQL + pgvector (Mémoire Vectorielle)' + COLORS.reset + ' │');
434
- console.log('│ │');
435
- console.log('│ ' + COLORS.green + ' • overmind-postgres-mcp (Serveur MCP PostgreSQL)' + COLORS.reset + ' │');
436
- console.log('│ │');
437
- console.log('│ ' + COLORS.yellow + 'Détails de connexion:' + COLORS.reset + ' │');
438
- console.log('│ • Host: localhost:5432' + ' │');
439
- console.log('│ • User: postgres' + ' │');
440
- console.log('│ • Password: overmind_temp_password_change_me (À CHANGER !)' + ' │');
441
- console.log('│ • Extension: vector (pgvector)' + ' │');
442
- console.log('│ • Database: overmind_memory' + ' │');
443
- console.log('└─────────────────────────────────────────────────────────────────┘');
444
- console.log('');
445
- log(COLORS.yellow, "📁 FICHIERS DE CONFIGURATION:");
446
- console.log(" • ~/.overmind/.env (Configuration OverMind)");
447
- console.log(" • ~/.overmind/.env.postgres (Configuration PostgreSQL MCP)");
448
- console.log(" • ~/.overmind/.mcp.json (Configuration serveurs MCP)");
449
- console.log('');
450
- log(COLORS.yellow, "🔧 SERVEURS MCP ACTIFS:");
451
- console.log(" • overmind (Orchestration d'agents)");
452
- console.log(" • memory (Gestion mémoire vectorielle)");
453
- console.log(" • overmind-postgres (PostgreSQL vectoriel)");
454
- console.log('');
455
- log(COLORS.yellow, "📚 DOCUMENTATION:");
456
- console.log(" • https://github.com/DeamonDev888/overmind-mcp");
457
- console.log(" • https://www.npmjs.com/package/overmind-mcp");
458
- console.log(" • https://github.com/DeamonDev888/PostgreSQL-MCP-Serveur");
459
- console.log('');
460
- log(COLORS.yellow, "🎉 PROCHAINE ÉTAPE:");
461
- console.log(" • Créez votre premier agent: overmind create-agent");
462
- console.log(" • Ou listez les agents: overmind list-agents");
463
- console.log(" • Gestion PostgreSQL: overmind-postgres up/status/down");
464
- console.log('');
465
- }
466
-
467
- // ═════════════════════════════════════════════════════════════════════════════
468
- // MAIN
469
- // ═════════════════════════════════════════════════════════════════════════════
470
-
471
- async function main() {
472
- console.log('╔══════════════════════════════════════════════════════════════════╗');
473
- console.log('║' + ' '.repeat(64) + '║');
474
- console.log('║' + COLORS.cyan + ' 🚀 OVERMIND-MCP - INSTALLATION AUTOMATIQUE' + COLORS.reset + ' '.repeat(25) + '║');
475
- console.log('║' + ' '.repeat(64) + '║');
476
- console.log('╚══════════════════════════════════════════════════════════════════╝');
477
- console.log('');
478
-
479
- // Banner
480
- console.log(COLORS.cyan + 'Ce script VA installer automatiquement:' + COLORS.reset);
481
- console.log(' ✓ Vérifier Docker');
482
- console.log(' ✓ Installer PostgreSQL + pgvector (si absent)');
483
- console.log(' ✓ Télécharger fichiers de configuration');
484
- console.log(' ✓ Installer overmind-postgres-mcp');
485
- console.log(' ✓ Démarrer PostgreSQL + pgvector');
486
- console.log(' ✓ Copier .env.example → .env');
487
- console.log(' ✓ Copier .mcp.json.example → .mcp.json');
488
- console.log(' ✓ Valider PostgreSQL');
489
- console.log('');
490
-
491
- // Step 1: Check Docker
492
- const dockerOk = await checkDocker();
493
- if (!dockerOk) {
494
- return;
495
- }
496
-
497
- // Step 2: Setup PostgreSQL
498
- await setupPostgreSQL();
499
-
500
- // Step 3: Setup .env et .mcp.json
501
- createEnvConfig();
502
-
503
- // Step 4: Download config files
504
- const downloaded = await setupConfigFiles();
505
-
506
- // Step 5: Install overmind-postgres-mcp
507
- if (downloaded) {
508
- await installPostgresMCP();
509
- }
510
-
511
- // Step 6: Start PostgreSQL
512
- if (downloaded) {
513
- const started = await startPostgreSQL();
514
- if (!started) {
515
- log(COLORS.yellow, '\n⚠️ PostgreSQL non démarré automatiquement.');
516
- }
517
- }
518
-
519
- // Step 7: Validate PostgreSQL
520
- if (downloaded) {
521
- const ok = await validatePostgreSQL();
522
- if (ok) {
523
- logSection('✅ POSTGRESQL + PGVECTOR EST ACTIF');
524
- log(COLORS.green, '🎉 Installation réussie !');
525
- } else {
526
- logSection('⚠️ POSTGRESQL NON DÉMARRÉ');
527
- }
528
- }
529
-
530
- // Show final summary
531
- showSummary();
532
- }
533
-
534
- // Run main
535
- main().catch((error) => {
536
- console.error('\n❌ ERREUR FATALE:', error.message);
537
- process.exit(1);
538
- });