overmind-mcp 2.8.3 → 2.8.6
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 +20 -20
- package/README.md +143 -143
- package/bin/overmind-pool.mjs +248 -248
- package/dist/bin/cli.js.map +1 -1
- package/dist/lib/config.d.ts +1 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +2 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/orchestration/dispatcher.d.ts.map +1 -1
- package/dist/lib/orchestration/dispatcher.js +0 -1
- package/dist/lib/orchestration/dispatcher.js.map +1 -1
- package/dist/services/AntigravityRunner.d.ts +42 -0
- package/dist/services/AntigravityRunner.d.ts.map +1 -0
- package/dist/services/AntigravityRunner.js +404 -0
- package/dist/services/AntigravityRunner.js.map +1 -0
- package/dist/services/ClaudeRunner.d.ts.map +1 -1
- package/dist/services/ClaudeRunner.js.map +1 -1
- package/dist/services/GeminiRunner.d.ts +22 -0
- package/dist/services/GeminiRunner.d.ts.map +1 -1
- package/dist/services/GeminiRunner.js +115 -91
- package/dist/services/GeminiRunner.js.map +1 -1
- package/dist/services/KiloRunner.d.ts.map +1 -1
- package/dist/services/KiloRunner.js +6 -1
- package/dist/services/KiloRunner.js.map +1 -1
- package/dist/services/NousHermesRunner.d.ts +1 -0
- package/dist/services/NousHermesRunner.d.ts.map +1 -1
- package/dist/services/NousHermesRunner.js +366 -555
- package/dist/services/NousHermesRunner.js.map +1 -1
- package/dist/tools/config_example.d.ts +1 -0
- package/dist/tools/config_example.d.ts.map +1 -1
- package/dist/tools/config_example.js +45 -2
- package/dist/tools/config_example.js.map +1 -1
- package/dist/tools/manage_agents.d.ts +1 -1
- package/dist/tools/run_agent.d.ts +1 -0
- package/dist/tools/run_agent.d.ts.map +1 -1
- package/dist/tools/run_agent.js +27 -3
- package/dist/tools/run_agent.js.map +1 -1
- package/dist/tools/run_agents_parallel.d.ts +1 -0
- package/dist/tools/run_agents_parallel.d.ts.map +1 -1
- package/dist/tools/run_gemini.d.ts +13 -0
- package/dist/tools/run_gemini.d.ts.map +1 -1
- package/dist/tools/run_gemini.js +6 -2
- package/dist/tools/run_gemini.js.map +1 -1
- package/docs/agent-http-tutorial.md +524 -524
- package/docs/provider-config-map.md +379 -0
- package/package.json +1 -1
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
# Hermes x Overmind — Config Provider Map
|
|
2
|
+
|
|
3
|
+
## Ordre de resolution (qui gagne, qui perd)
|
|
4
|
+
|
|
5
|
+
Chaque variable suit cette priorite (la premiere gagne):
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
HERMES_HOME/.env (C:\Users\Deamon\AppData\Local\hermes\.env)
|
|
9
|
+
↓
|
|
10
|
+
settings_[agent].json → env (apres interpolation $VAR par process.env)
|
|
11
|
+
↓
|
|
12
|
+
Workflow/.env (C:\Users\Deamon\Desktop\Backup\Serveur MCP\Workflow\.env)
|
|
13
|
+
↓
|
|
14
|
+
process.env (env du parent, heredite par le spawn)
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**MAIS** pour `OPENROUTER_API_KEY` uniquement:
|
|
18
|
+
- Hermes lit d'abord `HERMES_HOME/.env` puis `os.environ`
|
|
19
|
+
- Si present dans `auth.json` avec status `exhausted` → skip
|
|
20
|
+
- Si present dans `HERMES_HOME/.env` (meme vide `""`) → **PREND LA PRIORITE sur process.env**
|
|
21
|
+
|
|
22
|
+
**MAIS** pour tous les autres providers (zai, minimax-cn, etc.):
|
|
23
|
+
- Hermes lit `HERMES_HOME/.env` → si vide/null → lit `os.environ`
|
|
24
|
+
- `os.environ` contient tout ce que le parent a passe (donc le `.env` du Workflow)
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Les 4 fichiers cles
|
|
29
|
+
|
|
30
|
+
| Fichier | Role |
|
|
31
|
+
|---|---|
|
|
32
|
+
| `HERMES_HOME/.env` | API keys globales Hermes |
|
|
33
|
+
| `Workflow/.env` | Variables du workflow (DB, tokens, etc.) |
|
|
34
|
+
| `settings_[agent].json` | Config par agent (model, provider, tokens, MCP) |
|
|
35
|
+
| `HERMES_HOME/.hermes/config.yaml` | Config systeme Hermes (model.default, provider, etc.) |
|
|
36
|
+
| `HERMES_HOME/auth.json` | Credential pool — status des tokens (ok/exhausted) |
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Provider → Ce qu'Hermes attend
|
|
41
|
+
|
|
42
|
+
### Z.AI (id: `zai`)
|
|
43
|
+
|
|
44
|
+
| Param | Valeur attendue | Source dans Hermes |
|
|
45
|
+
|---|---|---|
|
|
46
|
+
| Provider ID | `zai` | config.yaml ou settings |
|
|
47
|
+
| API Key | Une de: `GLM_API_KEY`, `ZAI_API_KEY`, `Z_AI_API_KEY` | `HERMES_HOME/.env` → `os.environ` |
|
|
48
|
+
| Base URL | `https://api.z.ai/api/paas/v4` | hardcoded dans ProviderConfig |
|
|
49
|
+
| Model | `glm-5.1` | settings `env.ANTHROPIC_MODEL` |
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
// settings_[agent].json — Z.AI correct
|
|
53
|
+
{
|
|
54
|
+
"env": {
|
|
55
|
+
"ANTHROPIC_AUTH_TOKEN": "$GLM_API_KEY",
|
|
56
|
+
"ANTHROPIC_BASE_URL": "https://api.z.ai/api/paas/v4",
|
|
57
|
+
"ANTHROPIC_MODEL": "glm-5.1"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# .env minimal pour Z.AI
|
|
64
|
+
GLM_API_KEY=ton_token_zai_ici
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**auth.json** stocke aussi la cle sous `Z_AI_API_KEY` (label: `GLM_API_KEY`, status: `ok`).
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
### MiniMax CN (id: `minimax-cn`)
|
|
72
|
+
|
|
73
|
+
| Param | Valeur attendue | Source dans Hermes |
|
|
74
|
+
|---|---|---|
|
|
75
|
+
| Provider ID | `minimax-cn` | config.yaml ou settings |
|
|
76
|
+
| API Key | `MINIMAX_CN_API_KEY` **uniquement** | `HERMES_HOME/.env` → `os.environ` |
|
|
77
|
+
| Base URL | `https://api.minimaxi.com/anthropic` | hardcoded dans ProviderConfig |
|
|
78
|
+
| Model | `MiniMax-M2.7` | settings `env.ANTHROPIC_MODEL` |
|
|
79
|
+
|
|
80
|
+
```json
|
|
81
|
+
// settings_[agent].json — MiniMax correct
|
|
82
|
+
{
|
|
83
|
+
"env": {
|
|
84
|
+
"ANTHROPIC_AUTH_TOKEN": "$MINIMAX_CN_API_KEY",
|
|
85
|
+
"ANTHROPIC_BASE_URL": "https://api.minimaxi.com/anthropic",
|
|
86
|
+
"ANTHROPIC_MODEL": "MiniMax-M2.7"
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# .env minimal pour MiniMax
|
|
93
|
+
MINIMAX_CN_API_KEY=ton_token_minimax_ici
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**auth.json** stocke sous `MINIMAX_CN_API_KEY`.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
### OpenRouter — BANNIR pour LLM
|
|
101
|
+
|
|
102
|
+
| Param | Valeur attendue | Source |
|
|
103
|
+
|---|---|---|
|
|
104
|
+
| Provider ID | — | Ne PAS utiliser |
|
|
105
|
+
| API Key | `OPENROUTER_API_KEY` | `HERMES_HOME/.env` → `os.environ` |
|
|
106
|
+
| Base URL | `https://openrouter.ai/api/v1` | hardcoded |
|
|
107
|
+
| Guardrail | — | Force 404 si active |
|
|
108
|
+
|
|
109
|
+
**PROBLEME:** Si `OPENROUTER_API_KEY` est present (meme dans `OVERMIND_EMBEDDING_KEY` route via NousHermesRunner), Hermes le detecte et tente OpenRouter pour l'inference.
|
|
110
|
+
|
|
111
|
+
**auth.json** a une entree OpenRouter — si le status est `exhausted`, Hermes ne retries plus mais peut quand meme picker le provider "openrouter" dans le credential pool.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Comment Hermes decide quel provider utiliser
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
1. Si `provider` explicite dans settings.json → utilise ce provider
|
|
119
|
+
2. Sinon si `ANTHROPIC_BASE_URL` contient openrouter → "openrouter"
|
|
120
|
+
3. Sinon lit model name → compare avec model_defaults par provider
|
|
121
|
+
- "glm-*" → "zai"
|
|
122
|
+
- "MiniMax-*" → "minimax-cn"
|
|
123
|
+
4. Sinon fallback: "minimax-cn" (model.default dans config.yaml)
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Le model resolve le provider. Donc `ANTHROPIC_MODEL=glm-5.1` sans provider explicite → `zai`. `ANTHROPIC_MODEL=MiniMax-M2.7` → `minimax-cn`.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Comment NousHermesRunner passe les vars a Hermes
|
|
131
|
+
|
|
132
|
+
Le runner lit `settings_[agent].json` → applique `interpolateEnvVars()` qui remplace `$VAR` par `process.env[VAR]` → envoie le tout dans `agentCustomEnv` au processus Hermes.
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
// Ce que NousHermesRunner.ts passe a Hermes (ligne 261-269)
|
|
136
|
+
const agentCustomEnv = {
|
|
137
|
+
...process.env, // HERMES_HOME/.env + Workflow/.env fusionnes
|
|
138
|
+
PYTHONIOENCODING: 'utf-8', // ...
|
|
139
|
+
OPENROUTER_API_KEY: process.env.OPENROUTER_API_KEY || '', // VIDE maintenant (fixe)
|
|
140
|
+
NVIDIA_API_KEY: process.env.NVIDIA_API_KEY || process.env.NVAPI_KEY,
|
|
141
|
+
ANTHROPIC_AUTH_TOKEN: s.env.ANTHROPIC_AUTH_TOKEN, // deja interpolate
|
|
142
|
+
ANTHROPIC_BASE_URL: s.env.ANTHROPIC_BASE_URL, // deja interpolate
|
|
143
|
+
ANTHROPIC_MODEL: s.env.ANTHROPIC_MODEL, // deja interpolate
|
|
144
|
+
};
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Puis lance Hermes avec `--env-file` pour discord_llm + Workflow `.env` (via startpipeline.js).
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Le probleme de OPENROUTER_API_KEY
|
|
152
|
+
|
|
153
|
+
**AVANT le fix:**
|
|
154
|
+
```typescript
|
|
155
|
+
OPENROUTER_API_KEY: process.env.OPENROUTER_API_KEY || process.env.OVERMIND_EMBEDDING_KEY,
|
|
156
|
+
```
|
|
157
|
+
→ Si `OPENROUTER_API_KEY` vide mais `OVERMIND_EMBEDDING_KEY` present → passe quand meme une cle OpenRouter a Hermes → Hermes detecte `OPENROUTER_API_KEY` dans credential pool → tente OpenRouter → 404 guardrail.
|
|
158
|
+
|
|
159
|
+
**APRES le fix:**
|
|
160
|
+
```typescript
|
|
161
|
+
OPENROUTER_API_KEY: process.env.OPENROUTER_API_KEY || '',
|
|
162
|
+
```
|
|
163
|
+
→ `OVERMIND_EMBEDDING_KEY` n'est plus redirige. Si `OPENROUTER_API_KEY` absent du `.env`, Hermes recoit string vide et ne pick pas OpenRouter.
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Comment Hermes obtient la API Key (le vrai flux)
|
|
168
|
+
|
|
169
|
+
Le `ANTHROPIC_AUTH_TOKEN` dans `settings.json` **ne passe pas directement** dans le body de la requete API. Hermes utilise son propre credential pool:
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
settings_[agent].json
|
|
173
|
+
"env": {
|
|
174
|
+
"ANTHROPIC_AUTH_TOKEN": "$GLM_API_KEY", ← Runner remplace $GLM_API_KEY → "token_reel"
|
|
175
|
+
"ANTHROPIC_BASE_URL": "https://api.z.ai/api/paas/v4",
|
|
176
|
+
"ANTHROPIC_MODEL": "glm-5.1"
|
|
177
|
+
}
|
|
178
|
+
↓ (interpolateEnvVars par NousHermesRunner)
|
|
179
|
+
agentCustomEnv envoye a Hermes:
|
|
180
|
+
ANTHROPIC_AUTH_TOKEN=token_reel
|
|
181
|
+
ANTHROPIC_BASE_URL=https://api.z.ai/api/paas/v4
|
|
182
|
+
ANTHROPIC_MODEL=glm-5.1
|
|
183
|
+
|
|
184
|
+
MAIS Hermes ne lit PAS ANTHROPIC_AUTH_TOKEN directement.
|
|
185
|
+
Hermes lit le CREDENTIAL POOL (auth.json) + les .env vars listees dans api_key_env_vars.
|
|
186
|
+
|
|
187
|
+
Credential pool est seed par:
|
|
188
|
+
GLM_API_KEY, ZAI_API_KEY, Z_AI_API_KEY → "zai"
|
|
189
|
+
MINIMAX_CN_API_KEY → "minimax-cn"
|
|
190
|
+
|
|
191
|
+
Le ANTHROPIC_AUTH_TOKEN dans settings.json sert a RIEN pour le credential pool.
|
|
192
|
+
Il est juste envoye dans agentCustomEnv mais Hermes l'ignore.
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Le `$GLM_API_KEY` dans `ANTHROPIC_AUTH_TOKEN` est juste une convenience pour que le token traverse le runner et arrive dans `process.env` du subprocess Hermes. C'est `process.env.GLM_API_KEY` qui seed le credential pool.
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Le flow complet (Z.AI par exemple)
|
|
200
|
+
|
|
201
|
+
1. `Workflow/.env` contient `GLM_API_KEY=<VOTRE_TOKEN_ZAI>`
|
|
202
|
+
2. `startpipeline.js` charge `.env` → `process.env.GLM_API_KEY`
|
|
203
|
+
3. ` NousHermesRunner` lit `settings_zai.json` → `interpolateEnvVars()`
|
|
204
|
+
- `$GLM_API_KEY` → `process.env["GLM_API_KEY"]` → `"<TOKEN>"`
|
|
205
|
+
- `ANTHROPIC_AUTH_TOKEN="<TOKEN>"` (valeur concrete maintenant)
|
|
206
|
+
4. `agentCustomEnv` envoye a Hermes:
|
|
207
|
+
- `ANTHROPIC_AUTH_TOKEN=<TOKEN>`
|
|
208
|
+
- `ANTHROPIC_BASE_URL=https://api.z.ai/api/paas/v4`
|
|
209
|
+
- `ANTHROPIC_MODEL=glm-5.1`
|
|
210
|
+
5. Hermes fait son propre lookup:
|
|
211
|
+
- `load_pool("zai")` → `_resolve_api_key_provider_secret("zai")`
|
|
212
|
+
- Cherche `GLM_API_KEY` via `_get_env_prefer_dotenv()` dans `HERMES_HOME/.env` puis `os.environ`
|
|
213
|
+
- Trouve `GLM_API_KEY=<TOKEN>` dans `os.environ` (herite du parent)
|
|
214
|
+
- Stocke dans `auth.json` avec status `ok`
|
|
215
|
+
6. API call → utilise le credential pool entry pour `zai`
|
|
216
|
+
|
|
217
|
+
**Meme valeur, deux lectures differentes** — les deux convergent parce que le token est identique dans `HERMES_HOME/.env` et dans `process.env` (qui herite du `.env` charge). Si `GLM_API_KEY` est absent du `.env` mais present dans `HERMES_HOME/.env` → ca marche aussi (HERMES_HOME/.env est lu en priorite par `_get_env_prefer_dotenv`).
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## OPENROUTER et Les Embeddings
|
|
222
|
+
|
|
223
|
+
**`OVERMIND_EMBEDDING_KEY`** = clef OpenRouter pour les **embeddings uniquement** (PostgresMemoryProvider du Workflow). Elle est dans le `.env` Overmind par defaut. Hermes n'a pas besoin de la voir pour l'LLM inference.
|
|
224
|
+
|
|
225
|
+
**NousHermesRunner ne doit jamais forwarder de clef OpenRouter a Hermes.** OpenRouter n'est pas un provider LLM dans ce setup. Si `OPENROUTER_API_KEY` arrive jusqu'a Hermes, il detecte la clef et tente OpenRouter pour l'inference → 404 guardrail.
|
|
226
|
+
|
|
227
|
+
**Fix applique:**
|
|
228
|
+
```typescript
|
|
229
|
+
OPENROUTER_API_KEY: process.env.OPENROUTER_API_KEY || '',
|
|
230
|
+
```
|
|
231
|
+
On envoit un string vide si absent, pour etre explicite: "OpenRouter nest pas configure pour LLM ici."
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## Checklist pour ajouter un nouveau provider
|
|
236
|
+
|
|
237
|
+
1. **Verifier le ProviderConfig** dans `hermes-agent/hermes_cli/auth.py`
|
|
238
|
+
- Verifier `api_key_env_vars` (les vars que Hermes cherche)
|
|
239
|
+
- Verifier `inference_base_url` (URL par defaut)
|
|
240
|
+
- Verifier `base_url_env_var` (optionnel, surcharge URL)
|
|
241
|
+
|
|
242
|
+
2. **Ajouter dans Workflow/.env**
|
|
243
|
+
```bash
|
|
244
|
+
MAISON_API_KEY=cle_api_du_fournisseur
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
3. **Ajouter dans settings_[agent].json**
|
|
248
|
+
```json
|
|
249
|
+
{
|
|
250
|
+
"env": {
|
|
251
|
+
"ANTHROPIC_AUTH_TOKEN": "$MAISON_API_KEY",
|
|
252
|
+
"ANTHROPIC_BASE_URL": "https://api.fournisseur.com/v1",
|
|
253
|
+
"ANTHROPIC_MODEL": "model-name"
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
4. **Verifier auth.json** — apres premiere utilisation, Hermes stocke le token avec status.
|
|
259
|
+
- Si `exhausted` → Hermes skip ce provider automatiquement
|
|
260
|
+
- Si `ok` → utilise le token
|
|
261
|
+
|
|
262
|
+
5. **NE JAMAIS** faire de mapping `AUTRE_CHOSE_API_KEY → OPENROUTER_API_KEY` — ca force OpenRouter.
|
|
263
|
+
|
|
264
|
+
6. **Pour eviter OpenRouter:** pas de `OPENROUTER_API_KEY` dans `HERMES_HOME/.env`
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Resume
|
|
269
|
+
|
|
270
|
+
|| Tu veux... | Utilise ces vars |
|
|
271
|
+
|---|---|
|
|
272
|
+
| Z.AI (glm-5.1) | `GLM_API_KEY` dans `.env` + settings `$GLM_API_KEY` |
|
|
273
|
+
| MiniMax CN | `MINIMAX_CN_API_KEY` dans `.env` + settings `$MINIMAX_CN_API_KEY` |
|
|
274
|
+
| Embeddings OpenRouter | `OVERMIND_EMBEDDING_KEY` (pour embeddings, PAS LLM) |
|
|
275
|
+
| Eviter OpenRouter LLM | Pas de `OPENROUTER_API_KEY` dans `HERMES_HOME/.env` |
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## Gemini / Antigravity (id: `gemini`)
|
|
280
|
+
|
|
281
|
+
**Ancien `gemini-cli` (npm `@google/gemini-cli`) est remplacé.**
|
|
282
|
+
|
|
283
|
+
Le runner `gemini` dans Overmind utilise maintenant **Antigravity CLI**, bundlé dans **Antigravity IDE**. Le fichier `GeminiRunner.ts` a été refactorisé pour utiliser le CLI d'Antigravity au lieu du package npm `gemini-cli`.
|
|
284
|
+
|
|
285
|
+
### Ce qui a changé
|
|
286
|
+
|
|
287
|
+
| Avant | Après |
|
|
288
|
+
|---|---|
|
|
289
|
+
| `GeminiRunner` → spawn `node .../@google/gemini-cli/bundle/gemini.js` | `GeminiRunner` → spawn `Antigravity IDE.exe` avec `--mode`, `--prompt-file`, etc. |
|
|
290
|
+
| Auth via sync `.gemini/` OAuth | Auth via OAuth interne Antigravity (pas de sync) |
|
|
291
|
+
| Config `.overmind/gemini/` | Config `.antigravity/<agent>/` local |
|
|
292
|
+
| Modes limitées | Modes: GENERAL, CONTEXT_CHECK, PLAN, COMMAND, CASCADE, EVAL, ANTIGRAVITY_REVIEW, MQUERY, COMMIT_MESSAGE, CHECKPOINT, FAST_APPLY |
|
|
293
|
+
|
|
294
|
+
### Installation
|
|
295
|
+
|
|
296
|
+
Antigravity IDE est déjà installé sur cette machine:
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
C:\Users\Deamon\AppData\Local\Programs\Antigravity IDE\Antigravity IDE.exe
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
Le runner vérifie sa présence et retourne `ANTIGRAVITY_NOT_INSTALLED` si absent.
|
|
303
|
+
|
|
304
|
+
### Chemins clés
|
|
305
|
+
|
|
306
|
+
| Ressource | Path |
|
|
307
|
+
|---|---|
|
|
308
|
+
| CLI Executable | `C:\Users\Deamon\AppData\Local\Programs\Antigravity IDE\Antigravity IDE.exe` |
|
|
309
|
+
| Resources App | `C:\Users\Deamon\AppData\Local\Programs\Antigravity IDE\resources\app` |
|
|
310
|
+
| Language Server | `C:\Users\Deamon\AppData\Local\Programs\Antigravity IDE\resources\app\bin\language_server_windows_x64.exe` |
|
|
311
|
+
| CLI Node | `C:\Users\Deamon\AppData\Local\Programs\Antigravity IDE\resources\app\out\cli.js` |
|
|
312
|
+
|
|
313
|
+
### Utilisation Overmind (run_agent)
|
|
314
|
+
|
|
315
|
+
Le runner `gemini` est utilisé via `run_agent.ts` — même nom, nouvelle implémentation:
|
|
316
|
+
|
|
317
|
+
```typescript
|
|
318
|
+
// run_agent avec runner: 'gemini'
|
|
319
|
+
const result = await runAgent({
|
|
320
|
+
runner: 'gemini', // ← GeminiRunner qui utilise Antigravity CLI en interne
|
|
321
|
+
prompt: 'Analyse ce code',
|
|
322
|
+
agentName: 'expert_python',
|
|
323
|
+
mode: 'GENERAL', // GENERAL, PLAN, COMMAND, CASCADE, EVAL, etc.
|
|
324
|
+
autoResume: false,
|
|
325
|
+
configPath: './Workflow',
|
|
326
|
+
});
|
|
327
|
+
|
|
328
|
+
// ou directement via run_gemini.ts
|
|
329
|
+
const result = await runGeminiAgent({
|
|
330
|
+
prompt: '...',
|
|
331
|
+
mode: 'PLAN',
|
|
332
|
+
});
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Modes Antigravity (paramètre `mode`)
|
|
336
|
+
|
|
337
|
+
| Mode | Usage |
|
|
338
|
+
|---|---|
|
|
339
|
+
| `GENERAL` | Mode par défaut, tâches polyvalentes |
|
|
340
|
+
| `CONTEXT_CHECK` | Vérification de contexte code |
|
|
341
|
+
| `PLAN` | Planification de tâches complexes |
|
|
342
|
+
| `COMMAND` | Exécution de commandes shell |
|
|
343
|
+
| `CASCADE` | Exécution en cascade multi-agents |
|
|
344
|
+
| `EVAL` | Évaluation et revue de code |
|
|
345
|
+
| `ANTIGRAVITY_REVIEW` | Revue automatique Antigravity |
|
|
346
|
+
| `MQUERY` | Recherche multi-source |
|
|
347
|
+
| `COMMIT_MESSAGE` | Génération de messages de commit |
|
|
348
|
+
| `CHECKPOINT` | Sauvegarde de checkpoint |
|
|
349
|
+
| `FAST_APPLY` | Application rapide de patches |
|
|
350
|
+
|
|
351
|
+
### Configuration agent
|
|
352
|
+
|
|
353
|
+
Chaque agent peut avoir sa config dans `.antigravity/agent_<nom>/`:
|
|
354
|
+
- `mcp.json` — serveurs MCP actifs
|
|
355
|
+
- Session store — sessions Gemini persistées
|
|
356
|
+
|
|
357
|
+
### Différences avec l'ancien gemini-cli (npm)
|
|
358
|
+
|
|
359
|
+
```json
|
|
360
|
+
// settings_<agent>.json — Antigravity
|
|
361
|
+
{
|
|
362
|
+
"env": {
|
|
363
|
+
"ANTIGRAVITY_MODE": "GENERAL",
|
|
364
|
+
"ANTIGRAVITY_DIR": ".antigravity/agent_<name>"
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
### Vérification installation
|
|
370
|
+
|
|
371
|
+
```typescript
|
|
372
|
+
import { isAntigravityInstalled } from './services/AntigravityRunner.js';
|
|
373
|
+
|
|
374
|
+
if (isAntigravityInstalled()) {
|
|
375
|
+
console.log('Antigravity IDE est installé');
|
|
376
|
+
} else {
|
|
377
|
+
console.log('Antigravity IDE non trouvé');
|
|
378
|
+
}
|
|
379
|
+
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "overmind-mcp",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.6",
|
|
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",
|