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.
- package/.mcp.json.example +21 -0
- package/README.md +59 -6
- package/bin/.gitkeep +0 -0
- package/bin/README.md +34 -0
- package/dist/lib/InstallHelper.js +1 -1
- package/dist/lib/processRegistry.d.ts +71 -0
- package/dist/lib/processRegistry.d.ts.map +1 -0
- package/dist/lib/processRegistry.js +275 -0
- package/dist/lib/processRegistry.js.map +1 -0
- package/dist/server.d.ts +14 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +58 -1
- package/dist/server.js.map +1 -1
- package/dist/services/ClaudeRunner.d.ts.map +1 -1
- package/dist/services/ClaudeRunner.js +59 -4
- package/dist/services/ClaudeRunner.js.map +1 -1
- package/dist/services/ClineRunner.d.ts.map +1 -1
- package/dist/services/ClineRunner.js +12 -1
- package/dist/services/ClineRunner.js.map +1 -1
- package/dist/services/GeminiRunner.d.ts.map +1 -1
- package/dist/services/GeminiRunner.js +18 -0
- package/dist/services/GeminiRunner.js.map +1 -1
- package/dist/services/KiloRunner.d.ts.map +1 -1
- package/dist/services/KiloRunner.js +28 -1
- package/dist/services/KiloRunner.js.map +1 -1
- package/dist/services/NousHermesRunner.d.ts.map +1 -1
- package/dist/services/NousHermesRunner.js +18 -5
- package/dist/services/NousHermesRunner.js.map +1 -1
- package/dist/services/OpenClawRunner.d.ts.map +1 -1
- package/dist/services/OpenClawRunner.js +12 -2
- package/dist/services/OpenClawRunner.js.map +1 -1
- package/dist/services/OpenCodeRunner.d.ts.map +1 -1
- package/dist/services/OpenCodeRunner.js +12 -1
- package/dist/services/OpenCodeRunner.js.map +1 -1
- package/dist/services/QwenCliRunner.d.ts.map +1 -1
- package/dist/services/QwenCliRunner.js +12 -1
- package/dist/services/QwenCliRunner.js.map +1 -1
- package/dist/tools/config_example.d.ts.map +1 -1
- package/dist/tools/config_example.js +23 -7
- package/dist/tools/config_example.js.map +1 -1
- package/dist/tools/get_agent_status.d.ts +29 -0
- package/dist/tools/get_agent_status.d.ts.map +1 -0
- package/dist/tools/get_agent_status.js +45 -0
- package/dist/tools/get_agent_status.js.map +1 -0
- package/dist/tools/kill_agent.d.ts +22 -0
- package/dist/tools/kill_agent.d.ts.map +1 -0
- package/dist/tools/kill_agent.js +33 -0
- package/dist/tools/kill_agent.js.map +1 -0
- package/dist/tools/stream_agent_output.d.ts +30 -0
- package/dist/tools/stream_agent_output.d.ts.map +1 -0
- package/dist/tools/stream_agent_output.js +44 -0
- package/dist/tools/stream_agent_output.js.map +1 -0
- package/dist/tools/wait_agent.d.ts +30 -0
- package/dist/tools/wait_agent.d.ts.map +1 -0
- package/dist/tools/wait_agent.js +68 -0
- package/dist/tools/wait_agent.js.map +1 -0
- package/docs/ASYNC_AGENT_INTEGRATION.md +311 -0
- package/docs/INDEX.md +144 -144
- package/docs/docs/OVERMIND_WORKFLOW_GUIDE.md +595 -0
- package/docs/docs/PROJECT_STRUCTURE.md +101 -0
- package/docs/docs/README_POSTGRES_INTEGRATION.md +229 -0
- package/package.json +5 -5
- package/scripts/auto-install.mjs +8 -8
- package/scripts/postgres-manager.mjs +1 -1
- package/scripts/postinstall.mjs +2 -2
- package/scripts/setup.mjs +8 -5
- package/docs/guides/DEPLOYMENT.md +0 -418
- package/docs/guides/SWARM_USAGE.md +0 -444
- /package/{install-overmind-unix.sh → bin/install-overmind-unix.sh} +0 -0
- /package/{install-overmind-windows.bat → bin/install-overmind-windows.bat} +0 -0
- /package/docs/{api/prompt → prompt}/Claude_code.md +0 -0
- /package/docs/{api/prompt → prompt}/Kilo.md +0 -0
- /package/docs/{api/prompt → prompt}/Kilo_Hermes.md +0 -0
- /package/docs/{api/prompt → prompt}/Minimax4.md +0 -0
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
# 🔗 PostgreSQL Integration Guide
|
|
2
|
+
|
|
3
|
+
Guide complet pour intégrer et utiliser PostgreSQL avec l'extension pgvector dans OverMind MCP.
|
|
4
|
+
|
|
5
|
+
## 📋 Table des matières
|
|
6
|
+
|
|
7
|
+
- [Installation](#installation)
|
|
8
|
+
- [Configuration](#configuration)
|
|
9
|
+
- [Utilisation](#utilisation)
|
|
10
|
+
- [Performance](#performance)
|
|
11
|
+
- [Dépannage](#dépannage)
|
|
12
|
+
|
|
13
|
+
## 🚀 Installation
|
|
14
|
+
|
|
15
|
+
### Via Docker (Recommandé)
|
|
16
|
+
|
|
17
|
+
L'installation automatique est gérée par les scripts d'installation :
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Windows
|
|
21
|
+
bin/install-overmind-windows.bat
|
|
22
|
+
|
|
23
|
+
# Linux/macOS
|
|
24
|
+
bin/install-overmind-unix.sh
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Le script crée automatiquement :
|
|
28
|
+
- Container Docker `overmind-postgres-pgvector`
|
|
29
|
+
- Extension pgvector (4096 dimensions)
|
|
30
|
+
- Base de données `overmind_memory`
|
|
31
|
+
- Tables et index nécessaires
|
|
32
|
+
|
|
33
|
+
### Manuelle
|
|
34
|
+
|
|
35
|
+
Si vous préférez installer PostgreSQL manuellement :
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# Installer PostgreSQL
|
|
39
|
+
sudo apt-get install postgresql postgresql-contrib
|
|
40
|
+
|
|
41
|
+
# Installer l'extension pgvector
|
|
42
|
+
# Suivre les instructions sur : https://github.com/pgvector/pgvector
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## ⚙️ Configuration
|
|
46
|
+
|
|
47
|
+
### Variables d'environnement
|
|
48
|
+
|
|
49
|
+
Créer ou modifier `.env` :
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# PostgreSQL
|
|
53
|
+
POSTGRES_HOST=localhost
|
|
54
|
+
POSTGRES_PORT=5432
|
|
55
|
+
POSTGRES_USER=postgres
|
|
56
|
+
POSTGRES_PASSWORD=your_secure_password
|
|
57
|
+
POSTGRES_DB=overmind_memory
|
|
58
|
+
|
|
59
|
+
# OverMind Memory (optionnel)
|
|
60
|
+
OVERMIND_MEMORY_TYPE=postgres
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Vérification
|
|
64
|
+
|
|
65
|
+
Tester la connexion :
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
docker exec overmind-postgres-pgvector psql -U postgres -c "SELECT extname FROM pg_extension WHERE extname = 'vector';"
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Doit retourner : `vector`
|
|
72
|
+
|
|
73
|
+
## 🎯 Utilisation
|
|
74
|
+
|
|
75
|
+
### Avec OverMind MCP
|
|
76
|
+
|
|
77
|
+
Les outils MCP suivants utilisent PostgreSQL :
|
|
78
|
+
|
|
79
|
+
#### 1. **memory_search** - Recherche sémantique
|
|
80
|
+
```json
|
|
81
|
+
{
|
|
82
|
+
"jsonrpc": "2.0",
|
|
83
|
+
"id": 1,
|
|
84
|
+
"method": "tools/call",
|
|
85
|
+
"params": {
|
|
86
|
+
"name": "memory_search",
|
|
87
|
+
"arguments": {
|
|
88
|
+
"query": "agents IA performants",
|
|
89
|
+
"agentName": "my_agent",
|
|
90
|
+
"limit": 5
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
#### 2. **memory_store** - Stocker des connaissances
|
|
97
|
+
```json
|
|
98
|
+
{
|
|
99
|
+
"jsonrpc": "2.0",
|
|
100
|
+
"id": 1,
|
|
101
|
+
"method": "tools/call",
|
|
102
|
+
"params": {
|
|
103
|
+
"name": "memory_store",
|
|
104
|
+
"arguments": {
|
|
105
|
+
"text": "Les agents GLM-5.1 sont très performants",
|
|
106
|
+
"source": "user"
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
#### 3. **MCP_PG_VECTOR** - Requêtes SQL directes
|
|
113
|
+
```json
|
|
114
|
+
{
|
|
115
|
+
"jsonrpc": "2.0",
|
|
116
|
+
"id": 1,
|
|
117
|
+
"method": "tools/call",
|
|
118
|
+
"params": {
|
|
119
|
+
"name": "MCP_PG_VECTOR",
|
|
120
|
+
"arguments": {
|
|
121
|
+
"sql": "SELECT * FROM agents_metadata LIMIT 10"
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Via CLI OverMind
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
# Rechercher dans la mémoire
|
|
131
|
+
overmind memory_search "agents performants" --agent my_agent
|
|
132
|
+
|
|
133
|
+
# Stocker une information
|
|
134
|
+
overmind memory_store "Nouveau conseil de test" --source user
|
|
135
|
+
|
|
136
|
+
# Voir les statistiques
|
|
137
|
+
overmind pgvector_stats --table embeddings
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## 📊 Performance
|
|
141
|
+
|
|
142
|
+
### Recherche vectorielle
|
|
143
|
+
|
|
144
|
+
#### Spécifications
|
|
145
|
+
- **Dimensions** : 4096 (Qwen 8B embeddings)
|
|
146
|
+
- **Index** : HNSW (Hierarchical Navigable Small World)
|
|
147
|
+
- **Distance** : Cosine similarity
|
|
148
|
+
|
|
149
|
+
#### Benchmark
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
# Test de performance
|
|
153
|
+
overmind intelligent_search "test query" --table embeddings --topK 10
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Optimisations
|
|
157
|
+
|
|
158
|
+
1. **Index HNSW** - Recherche approximative ultra-rapide
|
|
159
|
+
2. **Cache embeddings** - Réduit les calculs répétitifs
|
|
160
|
+
3. **Recherche hybride** - Combine texte et vecteur pour meilleurs résultats
|
|
161
|
+
|
|
162
|
+
## 🔧 Dépannage
|
|
163
|
+
|
|
164
|
+
### Problèmes courants
|
|
165
|
+
|
|
166
|
+
#### Erreur "extension vector does not exist"
|
|
167
|
+
```bash
|
|
168
|
+
# Créer l'extension
|
|
169
|
+
docker exec overmind-postgres-pgvector psql -U postgres -c "CREATE EXTENSION vector;"
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
#### Erreur "connection refused"
|
|
173
|
+
```bash
|
|
174
|
+
# Vérifier que PostgreSQL tourne
|
|
175
|
+
docker ps | grep overmind-postgres
|
|
176
|
+
|
|
177
|
+
# Vérifier les ports
|
|
178
|
+
netstat -an | grep 5432
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
#### Performance lente
|
|
182
|
+
```bash
|
|
183
|
+
# Vérifier les statistiques
|
|
184
|
+
overmind pgvector_stats --table embeddings
|
|
185
|
+
|
|
186
|
+
# Recréer les index si nécessaire
|
|
187
|
+
overmind manage_vectors --action optimize --table embeddings
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## 📚 Documentation avancée
|
|
191
|
+
|
|
192
|
+
### Schéma de la base
|
|
193
|
+
|
|
194
|
+
```sql
|
|
195
|
+
-- Tables principales
|
|
196
|
+
agents_metadata -- Métadonnées des agents
|
|
197
|
+
conversations -- Historique des conversations
|
|
198
|
+
embeddings -- Vecteurs pour recherche sémantique
|
|
199
|
+
agent_knowledge -- Connaissances des agents
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### Recherche hybride
|
|
203
|
+
|
|
204
|
+
Combiner recherche textuelle et vectorielle :
|
|
205
|
+
|
|
206
|
+
```sql
|
|
207
|
+
SELECT
|
|
208
|
+
id,
|
|
209
|
+
content,
|
|
210
|
+
embedding <=> '[...]' AS vector_distance,
|
|
211
|
+
ts_rank(content_fts, query) AS text_rank
|
|
212
|
+
FROM embeddings
|
|
213
|
+
WHERE content_fts @@ query
|
|
214
|
+
ORDER BY vector_distance ASC
|
|
215
|
+
LIMIT 10;
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
## 🚀 Bonnes pratiques
|
|
219
|
+
|
|
220
|
+
1. **Backup régulier** : `docker exec overmind-postgres pg_dump -U postgres overmind_memory > backup.sql`
|
|
221
|
+
2. **Monitoring** : Utiliser Grafana dashboard pour surveiller les performances
|
|
222
|
+
3. **Maintenance** : `overmind manage_vectors --action optimize --table embeddings` hebdomadairement
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
**Pour plus d'informations** :
|
|
227
|
+
- Guide principal : `../README.md`
|
|
228
|
+
- Docker : `../docker/README.md`
|
|
229
|
+
- Scripts DB : `../db/README.md`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "overmind-mcp",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"preferGlobal": true,
|
|
5
5
|
"description": "Orchestrateur universel agents IA multi-modeles via MCP. Inclut le protocole 'Custom-Nickname' pour identifier vos agents avec des surnoms originaux (The Chaos Prophet, Shadow Sniper, etc.), l'isolation mémoire (Private Memory Context) et le support pour QwenCli et Nous Hermes. Installation automatique des dépendances Docker (PostgreSQL, pgvector) inclus.",
|
|
6
6
|
"type": "module",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"README.md",
|
|
26
26
|
"docs",
|
|
27
27
|
"scripts",
|
|
28
|
-
"
|
|
29
|
-
"
|
|
28
|
+
"bin",
|
|
29
|
+
".mcp.json.example"
|
|
30
30
|
],
|
|
31
31
|
"scripts": {
|
|
32
32
|
"build": "tsc",
|
|
@@ -116,8 +116,8 @@
|
|
|
116
116
|
"pino-pretty": "^13.1.3",
|
|
117
117
|
"pino-roll": "^2.2.0",
|
|
118
118
|
"tinyglobby": "^0.2.16",
|
|
119
|
-
"
|
|
120
|
-
"
|
|
119
|
+
"tslib": "^2.0.0",
|
|
120
|
+
"zod": "^4.3.6"
|
|
121
121
|
},
|
|
122
122
|
"peerDependencies": {
|
|
123
123
|
"tslib": "^2.0.0"
|
package/scripts/auto-install.mjs
CHANGED
|
@@ -136,13 +136,13 @@ async function setupInfrastructure() {
|
|
|
136
136
|
const exportersUrl = 'https://raw.githubusercontent.com/DeamonDev888/overmind-mcp/main/docker-compose.exporters.yml';
|
|
137
137
|
|
|
138
138
|
try {
|
|
139
|
-
const composeData = runCommand(`curl -sL ${composeUrl}`);
|
|
139
|
+
const composeData = runCommand(`curl -sL --max-time 30 ${composeUrl}`);
|
|
140
140
|
if (composeData) {
|
|
141
141
|
writeFileSync(join(INSTALL_DIR, 'docker-compose.yml'), composeData);
|
|
142
142
|
console.log('✅ docker-compose.yml téléchargé');
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
-
const exportersData = runCommand(`curl -sL ${exportersUrl}`);
|
|
145
|
+
const exportersData = runCommand(`curl -sL --max-time 30 ${exportersUrl}`);
|
|
146
146
|
if (exportersData) {
|
|
147
147
|
writeFileSync(join(INSTALL_DIR, 'docker-compose.exporters.yml'), exportersData);
|
|
148
148
|
console.log('✅ docker-compose.exporters.yml téléchargé');
|
|
@@ -190,12 +190,12 @@ async function validateServices() {
|
|
|
190
190
|
console.log('');
|
|
191
191
|
|
|
192
192
|
const services = [
|
|
193
|
-
{ name: 'PostgreSQL', filter: 'postgres', check: 'pg_isready' },
|
|
194
|
-
{ name: 'RabbitMQ', filter: 'rabbitmq', check: null },
|
|
195
|
-
{ name: 'Temporal', filter: 'temporal', check: null },
|
|
196
|
-
{ name: 'Prometheus', filter: 'prometheus', check: null },
|
|
197
|
-
{ name: 'Grafana', filter: 'grafana', check: null },
|
|
198
|
-
{ name: 'Jaeger', filter: 'jaeger', check: null },
|
|
193
|
+
{ name: 'PostgreSQL', filter: 'overmind-postgres-pgvector', check: 'pg_isready' },
|
|
194
|
+
{ name: 'RabbitMQ', filter: 'overmind-rabbitmq', check: null },
|
|
195
|
+
{ name: 'Temporal', filter: 'overmind-temporal', check: null },
|
|
196
|
+
{ name: 'Prometheus', filter: 'overmind-prometheus', check: null },
|
|
197
|
+
{ name: 'Grafana', filter: 'overmind-grafana', check: null },
|
|
198
|
+
{ name: 'Jaeger', filter: 'overmind-jaeger', check: null },
|
|
199
199
|
];
|
|
200
200
|
|
|
201
201
|
let allRunning = true;
|
|
@@ -173,7 +173,7 @@ function showHelp() {
|
|
|
173
173
|
console.log('║ Usage: ║');
|
|
174
174
|
console.log('║ overmind-postgres up Démarrer PostgreSQL ║');
|
|
175
175
|
console.log('║ overmind-postgres down Arrêter PostgreSQL ║');
|
|
176
|
-
console.log('║ overmind-postgres status
|
|
176
|
+
console.log('║ overmind-postgres status Verifier l\'etat ║');
|
|
177
177
|
console.log('║ overmind-postgres logs Voir les logs en temps réel ║');
|
|
178
178
|
console.log('║ overmind-postgres reset Réinitialiser (⚠️ données) ║');
|
|
179
179
|
console.log('║ ║');
|
package/scripts/postinstall.mjs
CHANGED
|
@@ -201,14 +201,14 @@ async function setupConfigFiles() {
|
|
|
201
201
|
|
|
202
202
|
try {
|
|
203
203
|
// Télécharger .env.example
|
|
204
|
-
const envExampleData = runCommand(`curl -sL ${envExampleUrl}`);
|
|
204
|
+
const envExampleData = runCommand(`curl -sL --max-time 30 ${envExampleUrl}`);
|
|
205
205
|
if (envExampleData) {
|
|
206
206
|
writeFileSync(join(INSTALL_DIR, '.env.example'), envExampleData);
|
|
207
207
|
log(COLORS.green, '✅ .env.example téléchargé');
|
|
208
208
|
}
|
|
209
209
|
|
|
210
210
|
// Télécharger .mcp.json.example
|
|
211
|
-
const mcpExampleData = runCommand(`curl -sL ${mcpExampleUrl}`);
|
|
211
|
+
const mcpExampleData = runCommand(`curl -sL --max-time 30 ${mcpExampleUrl}`);
|
|
212
212
|
if (mcpExampleData) {
|
|
213
213
|
writeFileSync(join(INSTALL_DIR, '.mcp.json.example'), mcpExampleData);
|
|
214
214
|
log(COLORS.green, '✅ .mcp.json.example téléchargé');
|
package/scripts/setup.mjs
CHANGED
|
@@ -175,11 +175,11 @@ async function installPostgreSQL() {
|
|
|
175
175
|
execSync('docker pull pgvector/pgvector:pg16', { stdio: 'inherit' });
|
|
176
176
|
|
|
177
177
|
console.log('🚀 Démarrage container PostgreSQL...');
|
|
178
|
-
const runCommand = `docker run -d --name postgres-pgvector \\
|
|
178
|
+
const runCommand = `docker run -d --name overmind-postgres-pgvector \\
|
|
179
179
|
-p 5432:5432 \\
|
|
180
180
|
-e POSTGRES_PASSWORD=overmind_temp_password_change_me \\
|
|
181
181
|
-e POSTGRES_USER=postgres \\
|
|
182
|
-
-v
|
|
182
|
+
-v overmind_postgres_data:/var/lib/postgresql/data \\
|
|
183
183
|
--restart unless-stopped \\
|
|
184
184
|
pgvector/pgvector:pg16`;
|
|
185
185
|
|
|
@@ -192,7 +192,7 @@ async function installPostgreSQL() {
|
|
|
192
192
|
// Verify pgvector
|
|
193
193
|
console.log('🔍 Vérification pgvector...');
|
|
194
194
|
await runCommandAsync(
|
|
195
|
-
'docker exec postgres-pgvector psql -U postgres -c "CREATE EXTENSION IF NOT EXISTS vector;"',
|
|
195
|
+
'docker exec overmind-postgres-pgvector psql -U postgres -c "CREATE EXTENSION IF NOT EXISTS vector;"',
|
|
196
196
|
'Activation pgvector'
|
|
197
197
|
);
|
|
198
198
|
|
|
@@ -268,13 +268,16 @@ async function startDockerServices() {
|
|
|
268
268
|
async function createOvermindDatabase() {
|
|
269
269
|
logSection('CRÉATION BASE OVERMIND');
|
|
270
270
|
|
|
271
|
-
// Import and run setup-overmind-db.mjs
|
|
272
271
|
const setupDbPath = join(__dirname, 'setup-overmind-db.mjs');
|
|
272
|
+
const destDbDir = INSTALL_DIR;
|
|
273
|
+
const destDbPath = join(destDbDir, 'setup-overmind-db.mjs');
|
|
273
274
|
|
|
274
275
|
try {
|
|
276
|
+
if (!existsSync(destDbDir)) {
|
|
277
|
+
mkdirSync(destDbDir, { recursive: true });
|
|
278
|
+
}
|
|
275
279
|
copyFileSync(setupDbPath, destDbPath);
|
|
276
280
|
|
|
277
|
-
// Run it
|
|
278
281
|
await runCommandAsync(
|
|
279
282
|
`node "${destDbPath}"`,
|
|
280
283
|
'Initialisation DB OverMind'
|