overmind-mcp 2.8.8 → 2.8.10
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.
- package/bin/install-overmind-native.sh +220 -0
- package/package.json +3 -2
- package/scripts/install-native.mjs +86 -0
- package/scripts/postgres-manager.mjs +219 -219
- package/scripts/postinstall.mjs +45 -1
- package/scripts/setup.mjs +395 -395
|
@@ -1,219 +1,219 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* ═══════════════════════════════════════════════════════════════════════════════
|
|
4
|
-
* POSTGRES-MANAGER - Gestion PostgreSQL OverMind
|
|
5
|
-
* ═══════════════════════════════════════════════════════════════════════════════
|
|
6
|
-
* Script simplifié pour gérer PostgreSQL + pgvector OverMind
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* overmind-postgres up Démarrer PostgreSQL
|
|
10
|
-
* overmind-postgres down Arrêter PostgreSQL
|
|
11
|
-
* overmind-postgres status Vérifier l'état
|
|
12
|
-
* overmind-postgres logs Voir les logs
|
|
13
|
-
* overmind-postgres reset Réinitialiser (⚠️ supprime les données)
|
|
14
|
-
* ═══════════════════════════════════════════════════════════════════════════════
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import { execSync } from 'child_process';
|
|
18
|
-
import { existsSync } from 'fs';
|
|
19
|
-
import { join } from 'path';
|
|
20
|
-
import { fileURLToPath } from 'url';
|
|
21
|
-
import { dirname } from 'path';
|
|
22
|
-
|
|
23
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
24
|
-
const __dirname = dirname(__filename);
|
|
25
|
-
|
|
26
|
-
const PROJECT_ROOT = join(__dirname, '..');
|
|
27
|
-
const COMPOSE_FILE = join(PROJECT_ROOT, 'docker', 'docker-compose.yml');
|
|
28
|
-
|
|
29
|
-
// ═══════════════════════════════════════════════════════════════════════════════
|
|
30
|
-
// UTILS
|
|
31
|
-
// ═══════════════════════════════════════════════════════════════════════════════
|
|
32
|
-
|
|
33
|
-
function logSection(title) {
|
|
34
|
-
console.log('\n╔══════════════════════════════════════════════════════════════════╗');
|
|
35
|
-
console.log(`║ ${title.padEnd(64)} ║`);
|
|
36
|
-
console.log('╚══════════════════════════════════════════════════════════════════╝');
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
function runCommand(cmd, options = {}) {
|
|
40
|
-
try {
|
|
41
|
-
return execSync(cmd, { stdio: 'inherit', ...options });
|
|
42
|
-
} catch (error) {
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// ═══════════════════════════════════════════════════════════════════════════════
|
|
48
|
-
// COMMANDS
|
|
49
|
-
// ═══════════════════════════════════════════════════════════════════════════════
|
|
50
|
-
|
|
51
|
-
function commandUp() {
|
|
52
|
-
logSection('DÉMARRAGE POSTGRESQL OVERMIND');
|
|
53
|
-
|
|
54
|
-
if (!existsSync(COMPOSE_FILE)) {
|
|
55
|
-
console.error('❌ Fichier docker-compose.yml non trouvé');
|
|
56
|
-
process.exit(1);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
try {
|
|
60
|
-
runCommand(`docker-compose -f "${COMPOSE_FILE}" up -d`);
|
|
61
|
-
console.log('');
|
|
62
|
-
console.log('✅ PostgreSQL + pgvector démarré avec succès !');
|
|
63
|
-
console.log('');
|
|
64
|
-
console.log('📊 Connexion:');
|
|
65
|
-
console.log(' Host: localhost:5432');
|
|
66
|
-
console.log(' Database: overmind_memory');
|
|
67
|
-
console.log(' User: postgres');
|
|
68
|
-
console.log(' Password: overmind_temp_password_change_me');
|
|
69
|
-
console.log('');
|
|
70
|
-
console.log('💪 Extensions: pgvector (4096D) activé');
|
|
71
|
-
console.log('');
|
|
72
|
-
} catch (error) {
|
|
73
|
-
console.error('❌ Erreur démarrage PostgreSQL:', error.message);
|
|
74
|
-
process.exit(1);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
function commandDown() {
|
|
79
|
-
logSection('ARRÊT POSTGRESQL OVERMIND');
|
|
80
|
-
|
|
81
|
-
if (!existsSync(COMPOSE_FILE)) {
|
|
82
|
-
console.error('❌ Fichier docker-compose.yml non trouvé');
|
|
83
|
-
process.exit(1);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
try {
|
|
87
|
-
runCommand(`docker-compose -f "${COMPOSE_FILE}" down`);
|
|
88
|
-
console.log('');
|
|
89
|
-
console.log('✅ PostgreSQL arrêté avec succès !');
|
|
90
|
-
console.log('');
|
|
91
|
-
console.log('💡 Les données sont conservées dans le volume Docker.');
|
|
92
|
-
console.log('');
|
|
93
|
-
} catch (error) {
|
|
94
|
-
console.error('❌ Erreur arrêt PostgreSQL:', error.message);
|
|
95
|
-
process.exit(1);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
function commandStatus() {
|
|
100
|
-
logSection('ÉTAT POSTGRESQL OVERMIND');
|
|
101
|
-
|
|
102
|
-
if (!existsSync(COMPOSE_FILE)) {
|
|
103
|
-
console.error('❌ Fichier docker-compose.yml non trouvé');
|
|
104
|
-
process.exit(1);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
try {
|
|
108
|
-
runCommand(`docker-compose -f "${COMPOSE_FILE}" ps`);
|
|
109
|
-
} catch (error) {
|
|
110
|
-
console.error('❌ Erreur vérification état:', error.message);
|
|
111
|
-
process.exit(1);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
function commandLogs() {
|
|
116
|
-
logSection('LOGS POSTGRESQL OVERMIND');
|
|
117
|
-
console.log(' (Ctrl+C pour sortir)');
|
|
118
|
-
console.log('');
|
|
119
|
-
|
|
120
|
-
if (!existsSync(COMPOSE_FILE)) {
|
|
121
|
-
console.error('❌ Fichier docker-compose.yml non trouvé');
|
|
122
|
-
process.exit(1);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
try {
|
|
126
|
-
runCommand(`docker-compose -f "${COMPOSE_FILE}" logs -f`);
|
|
127
|
-
} catch (error) {
|
|
128
|
-
// Ignore Ctrl+C
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
function commandReset() {
|
|
133
|
-
logSection('RÉINITIALISATION POSTGRESQL OVERMIND');
|
|
134
|
-
console.log('');
|
|
135
|
-
console.log('⚠️ ATTENTION: Cette commande va SUPPRIMER TOUTES LES DONNÉES !');
|
|
136
|
-
console.log('');
|
|
137
|
-
|
|
138
|
-
const { confirm } = require('minimist')(process.argv.slice(2));
|
|
139
|
-
if (!confirm) {
|
|
140
|
-
console.log('❌ Annulé. Pour confirmer, utilisez: --confirm');
|
|
141
|
-
console.log(' overmind-postgres reset --confirm');
|
|
142
|
-
process.exit(0);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
if (!existsSync(COMPOSE_FILE)) {
|
|
146
|
-
console.error('❌ Fichier docker-compose.yml non trouvé');
|
|
147
|
-
process.exit(1);
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
try {
|
|
151
|
-
console.log('🛑 Arrêt PostgreSQL...');
|
|
152
|
-
runCommand(`docker-compose -f "${COMPOSE_FILE}" down -v`);
|
|
153
|
-
|
|
154
|
-
console.log('🗑️ Suppression du volume Docker...');
|
|
155
|
-
runCommand('docker volume rm overmind-postgres-data', { stdio: 'inherit' });
|
|
156
|
-
|
|
157
|
-
console.log('');
|
|
158
|
-
console.log('✅ PostgreSQL réinitialisé avec succès !');
|
|
159
|
-
console.log('');
|
|
160
|
-
console.log('📊 Prochaine étape:');
|
|
161
|
-
console.log(' overmind-postgres up');
|
|
162
|
-
console.log('');
|
|
163
|
-
} catch (error) {
|
|
164
|
-
console.error('❌ Erreur réinitialisation:', error.message);
|
|
165
|
-
process.exit(1);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
function showHelp() {
|
|
170
|
-
console.log('╔══════════════════════════════════════════════════════════════════╗');
|
|
171
|
-
console.log('║ POSTGRES-MANAGER: Gestion PostgreSQL OverMind ║');
|
|
172
|
-
console.log('╠════════════════════════════════════════════════════════════════╣');
|
|
173
|
-
console.log('║ Usage: ║');
|
|
174
|
-
console.log('║ overmind-postgres up Démarrer PostgreSQL ║');
|
|
175
|
-
console.log('║ overmind-postgres down Arrêter PostgreSQL ║');
|
|
176
|
-
console.log('║ overmind-postgres status Verifier l\'etat ║');
|
|
177
|
-
console.log('║ overmind-postgres logs Voir les logs en temps réel ║');
|
|
178
|
-
console.log('║ overmind-postgres reset Réinitialiser (⚠️ données) ║');
|
|
179
|
-
console.log('║ ║');
|
|
180
|
-
console.log('║ Configuration: ║');
|
|
181
|
-
console.log('║ Host: localhost:5432 ║');
|
|
182
|
-
console.log('║ Database: overmind_memory ║');
|
|
183
|
-
console.log('║ User: postgres ║');
|
|
184
|
-
console.log('║ Extension: pgvector (4096D) ║');
|
|
185
|
-
console.log('║ ║');
|
|
186
|
-
console.log('║ Intégration OverMind: ║');
|
|
187
|
-
console.log('║ • Agents stockés dans overmind_agents ║');
|
|
188
|
-
console.log('║ • Mémoires vectorielles dans overmind_memories ║');
|
|
189
|
-
console.log('║ • Sessions dans overmind_sessions ║');
|
|
190
|
-
console.log('╚══════════════════════════════════════════════════════════════════╝');
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
// ═══════════════════════════════════════════════════════════════════════════════
|
|
194
|
-
// MAIN
|
|
195
|
-
// ═══════════════════════════════════════════════════════════════════════════════
|
|
196
|
-
|
|
197
|
-
const command = process.argv[2] || 'help';
|
|
198
|
-
|
|
199
|
-
switch (command) {
|
|
200
|
-
case 'up':
|
|
201
|
-
commandUp();
|
|
202
|
-
break;
|
|
203
|
-
case 'down':
|
|
204
|
-
commandDown();
|
|
205
|
-
break;
|
|
206
|
-
case 'status':
|
|
207
|
-
commandStatus();
|
|
208
|
-
break;
|
|
209
|
-
case 'logs':
|
|
210
|
-
commandLogs();
|
|
211
|
-
break;
|
|
212
|
-
case 'reset':
|
|
213
|
-
commandReset();
|
|
214
|
-
break;
|
|
215
|
-
case 'help':
|
|
216
|
-
default:
|
|
217
|
-
showHelp();
|
|
218
|
-
break;
|
|
219
|
-
}
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* ═══════════════════════════════════════════════════════════════════════════════
|
|
4
|
+
* POSTGRES-MANAGER - Gestion PostgreSQL OverMind
|
|
5
|
+
* ═══════════════════════════════════════════════════════════════════════════════
|
|
6
|
+
* Script simplifié pour gérer PostgreSQL + pgvector OverMind
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* overmind-postgres up Démarrer PostgreSQL
|
|
10
|
+
* overmind-postgres down Arrêter PostgreSQL
|
|
11
|
+
* overmind-postgres status Vérifier l'état
|
|
12
|
+
* overmind-postgres logs Voir les logs
|
|
13
|
+
* overmind-postgres reset Réinitialiser (⚠️ supprime les données)
|
|
14
|
+
* ═══════════════════════════════════════════════════════════════════════════════
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { execSync } from 'child_process';
|
|
18
|
+
import { existsSync } from 'fs';
|
|
19
|
+
import { join } from 'path';
|
|
20
|
+
import { fileURLToPath } from 'url';
|
|
21
|
+
import { dirname } from 'path';
|
|
22
|
+
|
|
23
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
24
|
+
const __dirname = dirname(__filename);
|
|
25
|
+
|
|
26
|
+
const PROJECT_ROOT = join(__dirname, '..');
|
|
27
|
+
const COMPOSE_FILE = join(PROJECT_ROOT, 'docker', 'docker-compose.yml');
|
|
28
|
+
|
|
29
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
30
|
+
// UTILS
|
|
31
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
32
|
+
|
|
33
|
+
function logSection(title) {
|
|
34
|
+
console.log('\n╔══════════════════════════════════════════════════════════════════╗');
|
|
35
|
+
console.log(`║ ${title.padEnd(64)} ║`);
|
|
36
|
+
console.log('╚══════════════════════════════════════════════════════════════════╝');
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function runCommand(cmd, options = {}) {
|
|
40
|
+
try {
|
|
41
|
+
return execSync(cmd, { stdio: 'inherit', ...options });
|
|
42
|
+
} catch (error) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
48
|
+
// COMMANDS
|
|
49
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
50
|
+
|
|
51
|
+
function commandUp() {
|
|
52
|
+
logSection('DÉMARRAGE POSTGRESQL OVERMIND');
|
|
53
|
+
|
|
54
|
+
if (!existsSync(COMPOSE_FILE)) {
|
|
55
|
+
console.error('❌ Fichier docker-compose.yml non trouvé');
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
try {
|
|
60
|
+
runCommand(`docker-compose -f "${COMPOSE_FILE}" up -d`);
|
|
61
|
+
console.log('');
|
|
62
|
+
console.log('✅ PostgreSQL + pgvector démarré avec succès !');
|
|
63
|
+
console.log('');
|
|
64
|
+
console.log('📊 Connexion:');
|
|
65
|
+
console.log(' Host: localhost:5432');
|
|
66
|
+
console.log(' Database: overmind_memory');
|
|
67
|
+
console.log(' User: postgres');
|
|
68
|
+
console.log(' Password: overmind_temp_password_change_me');
|
|
69
|
+
console.log('');
|
|
70
|
+
console.log('💪 Extensions: pgvector (4096D) activé');
|
|
71
|
+
console.log('');
|
|
72
|
+
} catch (error) {
|
|
73
|
+
console.error('❌ Erreur démarrage PostgreSQL:', error.message);
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function commandDown() {
|
|
79
|
+
logSection('ARRÊT POSTGRESQL OVERMIND');
|
|
80
|
+
|
|
81
|
+
if (!existsSync(COMPOSE_FILE)) {
|
|
82
|
+
console.error('❌ Fichier docker-compose.yml non trouvé');
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
try {
|
|
87
|
+
runCommand(`docker-compose -f "${COMPOSE_FILE}" down`);
|
|
88
|
+
console.log('');
|
|
89
|
+
console.log('✅ PostgreSQL arrêté avec succès !');
|
|
90
|
+
console.log('');
|
|
91
|
+
console.log('💡 Les données sont conservées dans le volume Docker.');
|
|
92
|
+
console.log('');
|
|
93
|
+
} catch (error) {
|
|
94
|
+
console.error('❌ Erreur arrêt PostgreSQL:', error.message);
|
|
95
|
+
process.exit(1);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function commandStatus() {
|
|
100
|
+
logSection('ÉTAT POSTGRESQL OVERMIND');
|
|
101
|
+
|
|
102
|
+
if (!existsSync(COMPOSE_FILE)) {
|
|
103
|
+
console.error('❌ Fichier docker-compose.yml non trouvé');
|
|
104
|
+
process.exit(1);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
try {
|
|
108
|
+
runCommand(`docker-compose -f "${COMPOSE_FILE}" ps`);
|
|
109
|
+
} catch (error) {
|
|
110
|
+
console.error('❌ Erreur vérification état:', error.message);
|
|
111
|
+
process.exit(1);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function commandLogs() {
|
|
116
|
+
logSection('LOGS POSTGRESQL OVERMIND');
|
|
117
|
+
console.log(' (Ctrl+C pour sortir)');
|
|
118
|
+
console.log('');
|
|
119
|
+
|
|
120
|
+
if (!existsSync(COMPOSE_FILE)) {
|
|
121
|
+
console.error('❌ Fichier docker-compose.yml non trouvé');
|
|
122
|
+
process.exit(1);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
try {
|
|
126
|
+
runCommand(`docker-compose -f "${COMPOSE_FILE}" logs -f`);
|
|
127
|
+
} catch (error) {
|
|
128
|
+
// Ignore Ctrl+C
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function commandReset() {
|
|
133
|
+
logSection('RÉINITIALISATION POSTGRESQL OVERMIND');
|
|
134
|
+
console.log('');
|
|
135
|
+
console.log('⚠️ ATTENTION: Cette commande va SUPPRIMER TOUTES LES DONNÉES !');
|
|
136
|
+
console.log('');
|
|
137
|
+
|
|
138
|
+
const { confirm } = require('minimist')(process.argv.slice(2));
|
|
139
|
+
if (!confirm) {
|
|
140
|
+
console.log('❌ Annulé. Pour confirmer, utilisez: --confirm');
|
|
141
|
+
console.log(' overmind-postgres reset --confirm');
|
|
142
|
+
process.exit(0);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
if (!existsSync(COMPOSE_FILE)) {
|
|
146
|
+
console.error('❌ Fichier docker-compose.yml non trouvé');
|
|
147
|
+
process.exit(1);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
try {
|
|
151
|
+
console.log('🛑 Arrêt PostgreSQL...');
|
|
152
|
+
runCommand(`docker-compose -f "${COMPOSE_FILE}" down -v`);
|
|
153
|
+
|
|
154
|
+
console.log('🗑️ Suppression du volume Docker...');
|
|
155
|
+
runCommand('docker volume rm overmind-postgres-data', { stdio: 'inherit' });
|
|
156
|
+
|
|
157
|
+
console.log('');
|
|
158
|
+
console.log('✅ PostgreSQL réinitialisé avec succès !');
|
|
159
|
+
console.log('');
|
|
160
|
+
console.log('📊 Prochaine étape:');
|
|
161
|
+
console.log(' overmind-postgres up');
|
|
162
|
+
console.log('');
|
|
163
|
+
} catch (error) {
|
|
164
|
+
console.error('❌ Erreur réinitialisation:', error.message);
|
|
165
|
+
process.exit(1);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
function showHelp() {
|
|
170
|
+
console.log('╔══════════════════════════════════════════════════════════════════╗');
|
|
171
|
+
console.log('║ POSTGRES-MANAGER: Gestion PostgreSQL OverMind ║');
|
|
172
|
+
console.log('╠════════════════════════════════════════════════════════════════╣');
|
|
173
|
+
console.log('║ Usage: ║');
|
|
174
|
+
console.log('║ overmind-postgres up Démarrer PostgreSQL ║');
|
|
175
|
+
console.log('║ overmind-postgres down Arrêter PostgreSQL ║');
|
|
176
|
+
console.log('║ overmind-postgres status Verifier l\'etat ║');
|
|
177
|
+
console.log('║ overmind-postgres logs Voir les logs en temps réel ║');
|
|
178
|
+
console.log('║ overmind-postgres reset Réinitialiser (⚠️ données) ║');
|
|
179
|
+
console.log('║ ║');
|
|
180
|
+
console.log('║ Configuration: ║');
|
|
181
|
+
console.log('║ Host: localhost:5432 ║');
|
|
182
|
+
console.log('║ Database: overmind_memory ║');
|
|
183
|
+
console.log('║ User: postgres ║');
|
|
184
|
+
console.log('║ Extension: pgvector (4096D) ║');
|
|
185
|
+
console.log('║ ║');
|
|
186
|
+
console.log('║ Intégration OverMind: ║');
|
|
187
|
+
console.log('║ • Agents stockés dans overmind_agents ║');
|
|
188
|
+
console.log('║ • Mémoires vectorielles dans overmind_memories ║');
|
|
189
|
+
console.log('║ • Sessions dans overmind_sessions ║');
|
|
190
|
+
console.log('╚══════════════════════════════════════════════════════════════════╝');
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
194
|
+
// MAIN
|
|
195
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
196
|
+
|
|
197
|
+
const command = process.argv[2] || 'help';
|
|
198
|
+
|
|
199
|
+
switch (command) {
|
|
200
|
+
case 'up':
|
|
201
|
+
commandUp();
|
|
202
|
+
break;
|
|
203
|
+
case 'down':
|
|
204
|
+
commandDown();
|
|
205
|
+
break;
|
|
206
|
+
case 'status':
|
|
207
|
+
commandStatus();
|
|
208
|
+
break;
|
|
209
|
+
case 'logs':
|
|
210
|
+
commandLogs();
|
|
211
|
+
break;
|
|
212
|
+
case 'reset':
|
|
213
|
+
commandReset();
|
|
214
|
+
break;
|
|
215
|
+
case 'help':
|
|
216
|
+
default:
|
|
217
|
+
showHelp();
|
|
218
|
+
break;
|
|
219
|
+
}
|
package/scripts/postinstall.mjs
CHANGED
|
@@ -83,7 +83,41 @@ async function runCommandAsync(cmd, description) {
|
|
|
83
83
|
|
|
84
84
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
85
85
|
// INSTALLATION STEPS
|
|
86
|
-
//
|
|
86
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Détecte si on doit proposer le mode natif (sans Docker).
|
|
90
|
+
* Critères : --native explicite, OU pas de Docker + Linux.
|
|
91
|
+
*/
|
|
92
|
+
function shouldOfferNative() {
|
|
93
|
+
if (process.argv.includes('--native')) return { native: true, reason: 'flag --native' };
|
|
94
|
+
|
|
95
|
+
const isLinux = process.platform === 'linux';
|
|
96
|
+
const hasDocker = runCommand('docker --version');
|
|
97
|
+
if (isLinux && !hasDocker) {
|
|
98
|
+
return { native: true, reason: 'Linux détecté, Docker absent' };
|
|
99
|
+
}
|
|
100
|
+
return { native: false };
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
async function offerNativeInstall(reason) {
|
|
104
|
+
logSection('🐧 MODE NATIF SANS DOCKER DISPONIBLE');
|
|
105
|
+
log(COLORS.yellow, `Raison : ${reason}`);
|
|
106
|
+
log(COLORS.cyan, '');
|
|
107
|
+
log(COLORS.cyan, 'Ce package supporte aussi une installation 100% native (sans Docker) :');
|
|
108
|
+
log(COLORS.cyan, ' • PostgreSQL 18 + pgvector via apt');
|
|
109
|
+
log(COLORS.cyan, ' • Services systemd (overmind-mcp, overmind-postgres-mcp)');
|
|
110
|
+
log(COLORS.cyan, ' • Bind 127.0.0.1 (plus sûr)');
|
|
111
|
+
log(COLORS.cyan, '');
|
|
112
|
+
log(COLORS.green, 'Pour lancer l\'install native :');
|
|
113
|
+
log(COLORS.white, ' sudo overmind-install-native');
|
|
114
|
+
log(COLORS.cyan, '');
|
|
115
|
+
log(COLORS.cyan, 'Le script natif est embarqué dans le package à :');
|
|
116
|
+
log(COLORS.white, ' /usr/lib/node_modules/overmind-mcp/bin/install-overmind-native.sh');
|
|
117
|
+
log(COLORS.cyan, '');
|
|
118
|
+
log(COLORS.cyan, 'Si Docker est intentionnel, poursuivez ci-dessous.');
|
|
119
|
+
log(COLORS.cyan, '');
|
|
120
|
+
}
|
|
87
121
|
|
|
88
122
|
async function checkDocker() {
|
|
89
123
|
logSection('VÉRIFICATION DOCKER');
|
|
@@ -478,6 +512,16 @@ async function main() {
|
|
|
478
512
|
console.log(' ✓ Valider PostgreSQL');
|
|
479
513
|
console.log('');
|
|
480
514
|
|
|
515
|
+
// Step 0: Offre install native (non bloquant)
|
|
516
|
+
const nativeOffer = shouldOfferNative();
|
|
517
|
+
if (nativeOffer.native) {
|
|
518
|
+
await offerNativeInstall(nativeOffer.reason);
|
|
519
|
+
if (process.argv.includes('--native-only')) {
|
|
520
|
+
log(COLORS.green, '→ --native-only : on s\'arrête là. Lance sudo overmind-install-native quand prêt.');
|
|
521
|
+
return;
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
|
|
481
525
|
// Step 1: Check Docker
|
|
482
526
|
const dockerOk = await checkDocker();
|
|
483
527
|
if (!dockerOk) {
|