overmind-mcp 2.5.0 → 2.6.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 +107 -80
- package/assets/overmind.png +0 -0
- package/bin/.gitkeep +0 -0
- package/bin/README.md +34 -0
- package/bin/install-overmind-unix.sh +412 -0
- package/bin/install-overmind-windows.bat +407 -0
- package/dist/bin/cli.js +438 -7
- package/dist/bin/cli.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/InstallHelper.d.ts +14 -0
- package/dist/lib/InstallHelper.d.ts.map +1 -0
- package/dist/lib/InstallHelper.js +115 -0
- package/dist/lib/InstallHelper.js.map +1 -0
- package/dist/lib/config.d.ts +31 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +19 -27
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/envUtils.d.ts +10 -0
- package/dist/lib/envUtils.d.ts.map +1 -0
- package/dist/lib/envUtils.js +24 -0
- package/dist/lib/envUtils.js.map +1 -0
- package/dist/lib/loadEnv.d.ts +2 -0
- package/dist/lib/loadEnv.d.ts.map +1 -0
- package/dist/lib/loadEnv.js +26 -0
- package/dist/lib/loadEnv.js.map +1 -0
- package/dist/lib/logger.d.ts +8 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +81 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/modelMapping.d.ts +18 -0
- package/dist/lib/modelMapping.d.ts.map +1 -0
- package/dist/lib/modelMapping.js +90 -0
- package/dist/lib/modelMapping.js.map +1 -0
- package/dist/lib/orchestration/dispatcher.d.ts +32 -0
- package/dist/lib/orchestration/dispatcher.d.ts.map +1 -0
- package/dist/lib/orchestration/dispatcher.js +113 -0
- package/dist/lib/orchestration/dispatcher.js.map +1 -0
- package/dist/lib/orchestration/swarm.d.ts +75 -0
- package/dist/lib/orchestration/swarm.d.ts.map +1 -0
- package/dist/lib/orchestration/swarm.js +239 -0
- package/dist/lib/orchestration/swarm.js.map +1 -0
- package/dist/lib/processRegistry.d.ts +10 -0
- package/dist/lib/processRegistry.d.ts.map +1 -1
- package/dist/lib/processRegistry.js +85 -29
- package/dist/lib/processRegistry.js.map +1 -1
- package/dist/lib/sessions.d.ts +3 -2
- package/dist/lib/sessions.d.ts.map +1 -1
- package/dist/lib/sessions.js +94 -25
- package/dist/lib/sessions.js.map +1 -1
- package/dist/lib/telemetry.d.ts +21 -0
- package/dist/lib/telemetry.d.ts.map +1 -0
- package/dist/lib/telemetry.js +30 -0
- package/dist/lib/telemetry.js.map +1 -0
- package/dist/memory/MemoryFactory.d.ts +15 -1
- package/dist/memory/MemoryFactory.d.ts.map +1 -1
- package/dist/memory/MemoryFactory.js +53 -3
- package/dist/memory/MemoryFactory.js.map +1 -1
- package/dist/memory/PostgresMemoryProvider.d.ts +7 -0
- package/dist/memory/PostgresMemoryProvider.d.ts.map +1 -1
- package/dist/memory/PostgresMemoryProvider.js +180 -105
- package/dist/memory/PostgresMemoryProvider.js.map +1 -1
- package/dist/server.d.ts +41 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +145 -41
- package/dist/server.js.map +1 -1
- package/dist/services/AgentManager.d.ts.map +1 -1
- package/dist/services/AgentManager.js +67 -11
- package/dist/services/AgentManager.js.map +1 -1
- package/dist/services/ClaudeRunner.d.ts +20 -0
- package/dist/services/ClaudeRunner.d.ts.map +1 -1
- package/dist/services/ClaudeRunner.js +626 -272
- package/dist/services/ClaudeRunner.js.map +1 -1
- package/dist/services/ClineRunner.d.ts +7 -0
- package/dist/services/ClineRunner.d.ts.map +1 -1
- package/dist/services/ClineRunner.js +76 -22
- package/dist/services/ClineRunner.js.map +1 -1
- package/dist/services/GeminiRunner.d.ts +6 -0
- package/dist/services/GeminiRunner.d.ts.map +1 -1
- package/dist/services/GeminiRunner.js +283 -69
- package/dist/services/GeminiRunner.js.map +1 -1
- package/dist/services/KiloRunner.d.ts +12 -0
- package/dist/services/KiloRunner.d.ts.map +1 -1
- package/dist/services/KiloRunner.js +439 -70
- package/dist/services/KiloRunner.js.map +1 -1
- package/dist/services/NousHermesRunner.d.ts +35 -0
- package/dist/services/NousHermesRunner.d.ts.map +1 -0
- package/dist/services/NousHermesRunner.js +535 -0
- package/dist/services/NousHermesRunner.js.map +1 -0
- package/dist/services/OpenClawRunner.d.ts +7 -0
- package/dist/services/OpenClawRunner.d.ts.map +1 -1
- package/dist/services/OpenClawRunner.js +75 -22
- package/dist/services/OpenClawRunner.js.map +1 -1
- package/dist/services/OpenCodeRunner.d.ts +7 -0
- package/dist/services/OpenCodeRunner.d.ts.map +1 -1
- package/dist/services/OpenCodeRunner.js +75 -22
- package/dist/services/OpenCodeRunner.js.map +1 -1
- package/dist/services/{TraeRunner.d.ts → QwenCliRunner.d.ts} +9 -2
- package/dist/services/QwenCliRunner.d.ts.map +1 -0
- package/dist/services/QwenCliRunner.js +155 -0
- package/dist/services/QwenCliRunner.js.map +1 -0
- package/dist/tools/agent_control.d.ts +2 -2
- package/dist/tools/agent_control.d.ts.map +1 -1
- package/dist/tools/agent_control.js +79 -50
- package/dist/tools/agent_control.js.map +1 -1
- package/dist/tools/config_example.d.ts +7 -4
- package/dist/tools/config_example.d.ts.map +1 -1
- package/dist/tools/config_example.js +191 -86
- package/dist/tools/config_example.js.map +1 -1
- package/dist/tools/create_agent.d.ts +13 -7
- package/dist/tools/create_agent.d.ts.map +1 -1
- package/dist/tools/create_agent.js +8 -9
- package/dist/tools/create_agent.js.map +1 -1
- package/dist/tools/get_agent_configs.d.ts +10 -4
- package/dist/tools/get_agent_configs.d.ts.map +1 -1
- package/dist/tools/get_agent_configs.js.map +1 -1
- package/dist/tools/initialization_check.d.ts +2 -0
- package/dist/tools/initialization_check.d.ts.map +1 -0
- package/dist/tools/initialization_check.js +23 -0
- package/dist/tools/initialization_check.js.map +1 -0
- package/dist/tools/manage_agents.d.ts +34 -16
- package/dist/tools/manage_agents.d.ts.map +1 -1
- package/dist/tools/manage_agents.js +2 -2
- package/dist/tools/manage_agents.js.map +1 -1
- package/dist/tools/manage_prompts.d.ts +13 -8
- package/dist/tools/manage_prompts.d.ts.map +1 -1
- package/dist/tools/manage_prompts.js.map +1 -1
- package/dist/tools/memory_runs.d.ts +3 -4
- package/dist/tools/memory_runs.d.ts.map +1 -1
- package/dist/tools/memory_runs.js.map +1 -1
- package/dist/tools/memory_search.d.ts +3 -4
- package/dist/tools/memory_search.d.ts.map +1 -1
- package/dist/tools/memory_search.js.map +1 -1
- package/dist/tools/memory_store.d.ts +10 -4
- package/dist/tools/memory_store.d.ts.map +1 -1
- package/dist/tools/memory_store.js.map +1 -1
- package/dist/tools/run_agent.d.ts +14 -14
- package/dist/tools/run_agent.d.ts.map +1 -1
- package/dist/tools/run_agent.js +135 -156
- package/dist/tools/run_agent.js.map +1 -1
- package/dist/tools/run_agent_cli.d.ts +21 -0
- package/dist/tools/run_agent_cli.d.ts.map +1 -0
- package/dist/tools/run_agent_cli.js +137 -0
- package/dist/tools/run_agent_cli.js.map +1 -0
- package/dist/tools/run_agents_parallel.d.ts +35 -0
- package/dist/tools/run_agents_parallel.d.ts.map +1 -0
- package/dist/tools/run_agents_parallel.js +28 -0
- package/dist/tools/run_agents_parallel.js.map +1 -0
- package/dist/tools/run_claude.d.ts +9 -3
- package/dist/tools/run_claude.d.ts.map +1 -1
- package/dist/tools/run_claude.js +67 -41
- package/dist/tools/run_claude.js.map +1 -1
- package/dist/tools/run_cline.d.ts +13 -4
- package/dist/tools/run_cline.d.ts.map +1 -1
- package/dist/tools/run_cline.js +55 -43
- package/dist/tools/run_cline.js.map +1 -1
- package/dist/tools/run_gemini.d.ts +13 -4
- package/dist/tools/run_gemini.d.ts.map +1 -1
- package/dist/tools/run_gemini.js +53 -33
- package/dist/tools/run_gemini.js.map +1 -1
- package/dist/tools/run_hermes.d.ts +25 -0
- package/dist/tools/run_hermes.d.ts.map +1 -0
- package/dist/tools/run_hermes.js +93 -0
- package/dist/tools/run_hermes.js.map +1 -0
- package/dist/tools/run_kilo.d.ts +17 -7
- package/dist/tools/run_kilo.d.ts.map +1 -1
- package/dist/tools/run_kilo.js +68 -41
- package/dist/tools/run_kilo.js.map +1 -1
- package/dist/tools/run_openclaw.d.ts +13 -4
- package/dist/tools/run_openclaw.d.ts.map +1 -1
- package/dist/tools/run_openclaw.js +52 -44
- package/dist/tools/run_openclaw.js.map +1 -1
- package/dist/tools/run_opencode.d.ts +13 -4
- package/dist/tools/run_opencode.d.ts.map +1 -1
- package/dist/tools/run_opencode.js +52 -39
- package/dist/tools/run_opencode.js.map +1 -1
- package/dist/tools/run_qwencli.d.ts +24 -0
- package/dist/tools/run_qwencli.d.ts.map +1 -0
- package/dist/tools/run_qwencli.js +59 -0
- package/dist/tools/run_qwencli.js.map +1 -0
- package/docs/README.md +128 -0
- package/docs/agent_control.md +656 -0
- package/docs/index.html +493 -0
- package/docs/library.html +239 -0
- package/docs/prompt.html +1212 -0
- package/docs/script.js +428 -0
- package/docs/styles.css +2816 -0
- package/package.json +54 -25
- package/scripts/auto-changelog.mjs +132 -0
- package/scripts/auto-install.mjs +322 -0
- package/scripts/install-dependencies.mjs +462 -0
- package/scripts/postgres-manager.mjs +219 -0
- package/scripts/postinstall.mjs +538 -0
- package/scripts/setup-overmind-db.mjs +199 -0
- package/scripts/setup-windows.js +266 -0
- package/scripts/setup.mjs +397 -0
- package/scripts/test-installation.mjs +158 -0
- package/scripts/uninstall.mjs +238 -0
- package/assets/overmind_mcp_pro_banner_v3.png +0 -0
- package/dist/services/QwenRunner.d.ts +0 -19
- package/dist/services/QwenRunner.d.ts.map +0 -1
- package/dist/services/QwenRunner.js +0 -102
- package/dist/services/QwenRunner.js.map +0 -1
- package/dist/services/TraeRunner.d.ts.map +0 -1
- package/dist/services/TraeRunner.js +0 -103
- package/dist/services/TraeRunner.js.map +0 -1
- package/dist/tools/run_qwen.d.ts +0 -15
- package/dist/tools/run_qwen.d.ts.map +0 -1
- package/dist/tools/run_qwen.js +0 -61
- package/dist/tools/run_qwen.js.map +0 -1
- package/dist/tools/run_trae.d.ts +0 -15
- package/dist/tools/run_trae.d.ts.map +0 -1
- package/dist/tools/run_trae.js +0 -66
- package/dist/tools/run_trae.js.map +0 -1
- package/dist/tools/shell_execute.d.ts +0 -10
- package/dist/tools/shell_execute.d.ts.map +0 -1
- package/dist/tools/shell_execute.js +0 -24
- package/dist/tools/shell_execute.js.map +0 -1
- package/dist/tools/test_agent_control.d.ts +0 -2
- package/dist/tools/test_agent_control.d.ts.map +0 -1
- package/dist/tools/test_agent_control.js +0 -92
- package/dist/tools/test_agent_control.js.map +0 -1
|
@@ -1,5 +1,45 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import fs from 'fs/promises';
|
|
2
3
|
import { getProcessStatus, killAgent, } from '../lib/processRegistry.js';
|
|
4
|
+
const LOG_TAIL_BYTES = 64 * 1024; // 64 KiB — enough for most agent outputs, bounded for MCP payloads.
|
|
5
|
+
/**
|
|
6
|
+
* Read the last N bytes of a log file. Returns empty string on any error
|
|
7
|
+
* (file missing, permission denied, etc.) — callers gracefully fall back to
|
|
8
|
+
* `entry.outputBuffer`.
|
|
9
|
+
*/
|
|
10
|
+
async function readLogTail(logFile, maxBytes = LOG_TAIL_BYTES) {
|
|
11
|
+
try {
|
|
12
|
+
const handle = await fs.open(logFile, 'r');
|
|
13
|
+
try {
|
|
14
|
+
const stat = await handle.stat();
|
|
15
|
+
const size = stat.size;
|
|
16
|
+
const readLen = Math.min(size, maxBytes);
|
|
17
|
+
const offset = size - readLen;
|
|
18
|
+
const buf = Buffer.alloc(readLen);
|
|
19
|
+
await handle.read(buf, 0, readLen, offset);
|
|
20
|
+
return buf.toString('utf-8');
|
|
21
|
+
}
|
|
22
|
+
finally {
|
|
23
|
+
await handle.close();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return '';
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Returns the effective output for an entry: log file tail for detached agents,
|
|
32
|
+
* `outputBuffer` for attached agents. Detached agents have empty buffers because
|
|
33
|
+
* their stdout/stderr go directly to disk (parent has no pipe to drain).
|
|
34
|
+
*/
|
|
35
|
+
async function getEffectiveOutput(entry) {
|
|
36
|
+
if (entry.logFile) {
|
|
37
|
+
const tail = await readLogTail(entry.logFile);
|
|
38
|
+
if (tail)
|
|
39
|
+
return tail;
|
|
40
|
+
}
|
|
41
|
+
return entry.outputBuffer || '';
|
|
42
|
+
}
|
|
3
43
|
/**
|
|
4
44
|
* agent_control — Outil MCP unifié pour contrôler le cycle de vie des agents OverMind
|
|
5
45
|
* ================================================================================
|
|
@@ -98,11 +138,13 @@ export const agentControlSchema = z
|
|
|
98
138
|
})
|
|
99
139
|
.passthrough();
|
|
100
140
|
/** Construit un rapport d'état formaté depuis une ProcessEntry */
|
|
101
|
-
function formatStatus(entry,
|
|
141
|
+
function formatStatus(entry, output) {
|
|
102
142
|
const lines = [];
|
|
103
143
|
lines.push(`**Agent:** ${entry.agentName}`);
|
|
104
144
|
lines.push(`**Runner:** ${entry.runner || 'inconnu'}`);
|
|
105
145
|
lines.push(`**Status:** ${entry.status}`);
|
|
146
|
+
if (entry.detached)
|
|
147
|
+
lines.push(`**Mode:** detached`);
|
|
106
148
|
lines.push(`**Started:** ${new Date(entry.ts).toISOString()}`);
|
|
107
149
|
if (entry.pid)
|
|
108
150
|
lines.push(`**PID:** ${entry.pid}`);
|
|
@@ -114,11 +156,12 @@ function formatStatus(entry, _action) {
|
|
|
114
156
|
if (entry.lastOutputAt) {
|
|
115
157
|
lines.push(`**Last Output:** ${new Date(entry.lastOutputAt).toISOString()}`);
|
|
116
158
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
159
|
+
if (entry.logFile)
|
|
160
|
+
lines.push(`**Log File:** ${entry.logFile}`);
|
|
161
|
+
if (output.length > 0) {
|
|
162
|
+
lines.push(`\n**Output (${output.length} chars):**`);
|
|
120
163
|
// On limite l'output dans le rapport à 2000 derniers caractères
|
|
121
|
-
const preview =
|
|
164
|
+
const preview = output.slice(-2000);
|
|
122
165
|
lines.push('```');
|
|
123
166
|
lines.push(preview);
|
|
124
167
|
lines.push('```');
|
|
@@ -146,10 +189,11 @@ async function doStatus(agentName, runner, configPath) {
|
|
|
146
189
|
if ('error' in resolved) {
|
|
147
190
|
return { content: [{ type: 'text', text: resolved.error }], isError: true };
|
|
148
191
|
}
|
|
149
|
-
const
|
|
192
|
+
const isError = resolved.status === 'failed' || resolved.status === 'orphaned';
|
|
193
|
+
const output = await getEffectiveOutput(resolved);
|
|
150
194
|
return {
|
|
151
|
-
content: [{ type: 'text', text: formatStatus(resolved,
|
|
152
|
-
isError
|
|
195
|
+
content: [{ type: 'text', text: formatStatus(resolved, output) }],
|
|
196
|
+
isError,
|
|
153
197
|
};
|
|
154
198
|
}
|
|
155
199
|
/** Action STREAM — lecture + complétude */
|
|
@@ -161,7 +205,7 @@ async function doStream(agentName, runner, configPath, sinceTimestamp) {
|
|
|
161
205
|
const isComplete = resolved.status === 'done' ||
|
|
162
206
|
resolved.status === 'failed' ||
|
|
163
207
|
resolved.status === 'orphaned';
|
|
164
|
-
const output = resolved
|
|
208
|
+
const output = await getEffectiveOutput(resolved);
|
|
165
209
|
// Filtering by sinceTimestamp is best-effort if lastOutputAt is available
|
|
166
210
|
if (sinceTimestamp && resolved.lastOutputAt && resolved.lastOutputAt > sinceTimestamp) {
|
|
167
211
|
// NOTE: per-chunk timestamps ne sont pas encore implémentés dans processRegistry.
|
|
@@ -171,19 +215,23 @@ async function doStream(agentName, runner, configPath, sinceTimestamp) {
|
|
|
171
215
|
const lines = [];
|
|
172
216
|
lines.push(`**Agent:** ${resolved.agentName}`);
|
|
173
217
|
lines.push(`**Status:** ${resolved.status}`);
|
|
218
|
+
if (resolved.detached)
|
|
219
|
+
lines.push(`**Mode:** detached`);
|
|
174
220
|
lines.push(`**isComplete:** ${isComplete}`);
|
|
175
221
|
if (resolved.pid)
|
|
176
222
|
lines.push(`**PID:** ${resolved.pid}`);
|
|
177
223
|
if (resolved.lastOutputAt) {
|
|
178
224
|
lines.push(`**Last Output At:** ${new Date(resolved.lastOutputAt).toISOString()}`);
|
|
179
225
|
}
|
|
226
|
+
if (resolved.logFile)
|
|
227
|
+
lines.push(`**Log File:** ${resolved.logFile}`);
|
|
180
228
|
lines.push(`\n**Output (${output.length} chars):**`);
|
|
181
229
|
lines.push('```');
|
|
182
230
|
lines.push(output || '(no output yet)');
|
|
183
231
|
lines.push('```');
|
|
184
232
|
return {
|
|
185
233
|
content: [{ type: 'text', text: lines.join('\n') }],
|
|
186
|
-
isError:
|
|
234
|
+
isError: resolved.status === 'failed' || resolved.status === 'orphaned',
|
|
187
235
|
};
|
|
188
236
|
}
|
|
189
237
|
/** Action KILL — destruction */
|
|
@@ -232,32 +280,31 @@ async function doKill(agentName, runner, configPath) {
|
|
|
232
280
|
async function doWait(agentName, runner, configPath, timeoutMs) {
|
|
233
281
|
const start = Date.now();
|
|
234
282
|
const pollInterval = 1000; // 1 seconde entre chaque poll
|
|
283
|
+
const buildTerminalResult = async (resolved) => {
|
|
284
|
+
const output = await getEffectiveOutput(resolved);
|
|
285
|
+
if (resolved.status === 'done') {
|
|
286
|
+
return {
|
|
287
|
+
content: [{ type: 'text', text: output || 'Agent terminé avec succès.' }],
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
return {
|
|
291
|
+
content: [
|
|
292
|
+
{
|
|
293
|
+
type: 'text',
|
|
294
|
+
text: `Agent terminé avec erreur (${resolved.status}):\n\n${output || 'N/A'}`,
|
|
295
|
+
},
|
|
296
|
+
],
|
|
297
|
+
isError: true,
|
|
298
|
+
};
|
|
299
|
+
};
|
|
235
300
|
// Premier check immédiat
|
|
236
301
|
{
|
|
237
302
|
const resolved = await resolveEntry(agentName, runner, configPath);
|
|
238
303
|
if ('error' in resolved) {
|
|
239
304
|
return { content: [{ type: 'text', text: resolved.error }], isError: true };
|
|
240
305
|
}
|
|
241
|
-
if (resolved.status
|
|
242
|
-
return
|
|
243
|
-
content: [
|
|
244
|
-
{
|
|
245
|
-
type: 'text',
|
|
246
|
-
text: resolved.outputBuffer || 'Agent terminé avec succès.',
|
|
247
|
-
},
|
|
248
|
-
],
|
|
249
|
-
};
|
|
250
|
-
}
|
|
251
|
-
if (resolved.status === 'failed' || resolved.status === 'orphaned') {
|
|
252
|
-
return {
|
|
253
|
-
content: [
|
|
254
|
-
{
|
|
255
|
-
type: 'text',
|
|
256
|
-
text: `Agent terminé avec erreur (${resolved.status}):\n\n${resolved.outputBuffer || 'N/A'}`,
|
|
257
|
-
},
|
|
258
|
-
],
|
|
259
|
-
isError: true,
|
|
260
|
-
};
|
|
306
|
+
if (resolved.status !== 'running') {
|
|
307
|
+
return buildTerminalResult(resolved);
|
|
261
308
|
}
|
|
262
309
|
}
|
|
263
310
|
// Boucle de polling
|
|
@@ -267,26 +314,8 @@ async function doWait(agentName, runner, configPath, timeoutMs) {
|
|
|
267
314
|
if ('error' in resolved) {
|
|
268
315
|
return { content: [{ type: 'text', text: resolved.error }], isError: true };
|
|
269
316
|
}
|
|
270
|
-
if (resolved.status
|
|
271
|
-
return
|
|
272
|
-
content: [
|
|
273
|
-
{
|
|
274
|
-
type: 'text',
|
|
275
|
-
text: resolved.outputBuffer || 'Agent terminé avec succès.',
|
|
276
|
-
},
|
|
277
|
-
],
|
|
278
|
-
};
|
|
279
|
-
}
|
|
280
|
-
if (resolved.status === 'failed' || resolved.status === 'orphaned') {
|
|
281
|
-
return {
|
|
282
|
-
content: [
|
|
283
|
-
{
|
|
284
|
-
type: 'text',
|
|
285
|
-
text: `Agent terminé avec erreur (${resolved.status}):\n\n${resolved.outputBuffer || 'N/A'}`,
|
|
286
|
-
},
|
|
287
|
-
],
|
|
288
|
-
isError: true,
|
|
289
|
-
};
|
|
317
|
+
if (resolved.status !== 'running') {
|
|
318
|
+
return buildTerminalResult(resolved);
|
|
290
319
|
}
|
|
291
320
|
// Status still 'running' — continue polling
|
|
292
321
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent_control.js","sourceRoot":"","sources":["../../src/tools/agent_control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,SAAS,GAEV,MAAM,2BAA2B,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AAEH,kFAAkF;AAElF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACnE,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;SACxF,QAAQ,EAAE;SACV,QAAQ,CAAC,oEAAoE,CAAC;IACjF,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qDAAqD,CAAC;IAClE,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;SAC1C,QAAQ,CACP,uBAAuB;QACrB,2EAA2E;QAC3E,8DAA8D;QAC9D,8DAA8D;QAC9D,oEAAoE,CACvE;IACH,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,4DAA4D,CAAC;IACzE,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iFAAiF,CAAC;CAC/F,CAAC;KACD,WAAW,EAAE,CAAC;AAWjB,kEAAkE;AAClE,SAAS,YAAY,CAAC,KAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"agent_control.js","sourceRoot":"","sources":["../../src/tools/agent_control.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const configExampleSchema: z.ZodObject<{
|
|
3
3
|
provider: z.ZodEnum<{
|
|
4
|
+
ilmu: "ilmu";
|
|
4
5
|
glm: "glm";
|
|
5
6
|
minimax: "minimax";
|
|
6
7
|
openrouter: "openrouter";
|
|
8
|
+
overmind: "overmind";
|
|
9
|
+
minimaxi: "minimaxi";
|
|
7
10
|
}>;
|
|
8
|
-
}, z.core.$
|
|
11
|
+
}, z.core.$loose>;
|
|
9
12
|
export declare function configExample(args: z.infer<typeof configExampleSchema>): Promise<{
|
|
10
|
-
content:
|
|
11
|
-
type:
|
|
13
|
+
content: {
|
|
14
|
+
type: "text";
|
|
12
15
|
text: string;
|
|
13
|
-
}
|
|
16
|
+
}[];
|
|
14
17
|
}>;
|
|
15
18
|
//# sourceMappingURL=config_example.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config_example.d.ts","sourceRoot":"","sources":["../../src/tools/config_example.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"config_example.d.ts","sourceRoot":"","sources":["../../src/tools/config_example.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;iBAMhB,CAAC;AAEjB,wBAAsB,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC;;;;;GA4Q5E"}
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export const configExampleSchema = z
|
|
2
|
+
export const configExampleSchema = z
|
|
3
|
+
.object({
|
|
3
4
|
provider: z
|
|
4
|
-
.enum(['glm', 'minimax', 'openrouter'])
|
|
5
|
+
.enum(['glm', 'minimax', 'openrouter', 'ilmu', 'minimaxi', 'overmind'])
|
|
5
6
|
.describe('Le fournisseur pour lequel vous voulez un exemple de configuration.'),
|
|
6
|
-
})
|
|
7
|
+
})
|
|
8
|
+
.passthrough();
|
|
7
9
|
export async function configExample(args) {
|
|
8
10
|
const { provider } = args;
|
|
9
11
|
let text = '';
|
|
12
|
+
const interpolationNotice = `
|
|
13
|
+
💡 **NOUVEAUTÉ : INTERPOLATION DE VARIABLES**
|
|
14
|
+
Vous pouvez désormais utiliser des variables du fichier \`.env\` dans vos fichiers \`settings_[agent].json\`.
|
|
15
|
+
Les variables commençant par \`$\` seront automatiquement remplacées par leur valeur réelle au moment de l'exécution.
|
|
16
|
+
`;
|
|
10
17
|
switch (provider) {
|
|
11
18
|
case 'glm':
|
|
12
19
|
text = `🚀 **EXEMPLE DE CONFIGURATION POUR GLM / Z.AI (ANTHROPIC PROXY)**
|
|
@@ -15,13 +22,10 @@ export async function configExample(args) {
|
|
|
15
22
|
\`\`\`json
|
|
16
23
|
{
|
|
17
24
|
"env": {
|
|
18
|
-
"ANTHROPIC_MODEL": "
|
|
19
|
-
"ANTHROPIC_AUTH_TOKEN": "
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-4.7",
|
|
23
|
-
"ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-4.7",
|
|
24
|
-
"API_TIMEOUT_MS": "3000000"
|
|
25
|
+
"ANTHROPIC_MODEL": "$ANTHROPIC_MODEL_Z",
|
|
26
|
+
"ANTHROPIC_AUTH_TOKEN": "$ANTHROPIC_AUTH_TOKEN_Y",
|
|
27
|
+
"ANTHROPIC_AUTH_TOKEN_FALLBACK": "$ANTHROPIC_AUTH_TOKEN_E",
|
|
28
|
+
"ANTHROPIC_BASE_URL": "$ANTHROPIC_BASE_URL_Z"
|
|
25
29
|
},
|
|
26
30
|
"enableAllProjectMcpServers": false,
|
|
27
31
|
"enabledMcpjsonServers": [
|
|
@@ -33,27 +37,49 @@ export async function configExample(args) {
|
|
|
33
37
|
}
|
|
34
38
|
\`\`\`
|
|
35
39
|
|
|
36
|
-
### 📂 .
|
|
40
|
+
### 📂 .env correspondant
|
|
41
|
+
\`\`\`
|
|
42
|
+
# Z.AI Configuration
|
|
43
|
+
ANTHROPIC_BASE_URL_Z=https://api.z.ai/api/anthropic
|
|
44
|
+
ANTHROPIC_MODEL_Z=glm-5.1
|
|
45
|
+
ANTHROPIC_AUTH_TOKEN_Y=your_primary_token_here
|
|
46
|
+
ANTHROPIC_AUTH_TOKEN_E=your_fallback_token_here
|
|
47
|
+
\`\`\`
|
|
48
|
+
|
|
49
|
+
**Modèles GLM disponibles :**
|
|
50
|
+
- \`glm-5.1\` - Flagship modèle (recommandé)
|
|
51
|
+
- \`glm-5\` - Performances solides
|
|
52
|
+
- \`glm-4.5-air\` - Modèle léger et coût-efficace
|
|
53
|
+
|
|
54
|
+
**Fallback automatique :**
|
|
55
|
+
- Utilise \`ANTHROPIC_AUTH_TOKEN_Y\` par défaut
|
|
56
|
+
- En cas d'erreur 401/429/5xx, bascule automatiquement sur \`ANTHROPIC_AUTH_TOKEN_E\`
|
|
57
|
+
|
|
58
|
+
${interpolationNotice}`;
|
|
59
|
+
break;
|
|
60
|
+
case 'ilmu':
|
|
61
|
+
text = `🚀 **EXEMPLE DE CONFIGURATION POUR ILMU AI**
|
|
62
|
+
|
|
63
|
+
### 📂 settings_[nom_agent].json
|
|
37
64
|
\`\`\`json
|
|
38
65
|
{
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
66
|
+
"env": {
|
|
67
|
+
"ANTHROPIC_MODEL": "$Z_AI_MODEL", // Interpolé depuis le .env
|
|
68
|
+
"ANTHROPIC_AUTH_TOKEN": "$Z_AI_API_KEY",
|
|
69
|
+
"ANTHROPIC_BASE_URL": "$Z_AI_BASE_URL",
|
|
70
|
+
"API_TIMEOUT_MS": "900000"
|
|
71
|
+
},
|
|
72
|
+
"enableAllProjectMcpServers": false,
|
|
73
|
+
"enabledMcpjsonServers": [
|
|
74
|
+
"postgresql-server",
|
|
75
|
+
"memory",
|
|
76
|
+
"discord-server"
|
|
77
|
+
],
|
|
78
|
+
"agent": "ilmu_agent",
|
|
79
|
+
"runner": "kilo"
|
|
53
80
|
}
|
|
54
81
|
\`\`\`
|
|
55
|
-
|
|
56
|
-
💡 *Note: Le fichier .mcp.[nom].json doit être placé directement dans le dossier .claude/.*`;
|
|
82
|
+
${interpolationNotice}`;
|
|
57
83
|
break;
|
|
58
84
|
case 'minimax':
|
|
59
85
|
text = `🚀 **EXEMPLE DE CONFIGURATION POUR MINIMAX (VIA PROXY ANTHROPIC)**
|
|
@@ -63,50 +89,20 @@ export async function configExample(args) {
|
|
|
63
89
|
{
|
|
64
90
|
"env": {
|
|
65
91
|
"ANTHROPIC_BASE_URL": "https://api.minimax.io/anthropic",
|
|
66
|
-
"ANTHROPIC_AUTH_TOKEN": "
|
|
92
|
+
"ANTHROPIC_AUTH_TOKEN": "$MINIMAX_API_KEY", // Utilisez une variable .env
|
|
67
93
|
"API_TIMEOUT_MS": "3000000",
|
|
68
94
|
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": 1,
|
|
69
|
-
"ANTHROPIC_MODEL": "The_Chaos_Prophet",
|
|
95
|
+
"ANTHROPIC_MODEL": "The_Chaos_Prophet",
|
|
70
96
|
"ANTHROPIC_SMALL_FAST_MODEL": "MiniMax-M2",
|
|
71
97
|
"ANTHROPIC_DEFAULT_SONNET_MODEL": "MiniMax-M2",
|
|
72
98
|
"ANTHROPIC_DEFAULT_OPUS_MODEL": "MiniMax-M2",
|
|
73
99
|
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "MiniMax-M2"
|
|
74
100
|
},
|
|
75
|
-
"enableAllProjectMcpServers": false,
|
|
76
|
-
"enabledMcpjsonServers": [
|
|
77
|
-
"postgresql-server",
|
|
78
|
-
"news-server"
|
|
79
|
-
],
|
|
80
101
|
"agent": "nom_agent",
|
|
81
102
|
"runner": "claude"
|
|
82
103
|
}
|
|
83
104
|
\`\`\`
|
|
84
|
-
|
|
85
|
-
### 📂 .mcp.[nom_agent].json
|
|
86
|
-
\`\`\`json
|
|
87
|
-
{
|
|
88
|
-
"mcpServers": {
|
|
89
|
-
"postgresql-server": {
|
|
90
|
-
"command": "node",
|
|
91
|
-
"args": ["chemin/serveur_PostGreSQL/dist/index.js"]
|
|
92
|
-
},
|
|
93
|
-
"news-server": {
|
|
94
|
-
"command": "node",
|
|
95
|
-
"args": ["chemin/NEWS/dist/src/server.js"]
|
|
96
|
-
},
|
|
97
|
-
"memory": {
|
|
98
|
-
"command": "node",
|
|
99
|
-
"args": ["chemin/Workflow/dist/bin/cli.js", "--memory-only"]
|
|
100
|
-
},
|
|
101
|
-
"x-mcp-server": {
|
|
102
|
-
"command": "node",
|
|
103
|
-
"args": ["chemin/X/dist/src/server.js"]
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
\`\`\`
|
|
108
|
-
|
|
109
|
-
💡 *Note: Ce fichier permet d'isoler les serveurs MCP accessibles précisément par cet agent.*`;
|
|
105
|
+
${interpolationNotice}`;
|
|
110
106
|
break;
|
|
111
107
|
case 'openrouter':
|
|
112
108
|
text = `🚀 **EXEMPLE DE CONFIGURATION POUR OPENROUTER (VIA PROXY ANTHROPIC)**
|
|
@@ -116,50 +112,159 @@ export async function configExample(args) {
|
|
|
116
112
|
{
|
|
117
113
|
"env": {
|
|
118
114
|
"ANTHROPIC_BASE_URL": "https://openrouter.ai/api/v1",
|
|
119
|
-
"ANTHROPIC_AUTH_TOKEN": "
|
|
115
|
+
"ANTHROPIC_AUTH_TOKEN": "$OPENROUTER_API_KEY", // Utilisez une variable .env
|
|
120
116
|
"API_TIMEOUT_MS": "3000000",
|
|
121
117
|
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": 1,
|
|
122
|
-
"ANTHROPIC_MODEL": "
|
|
118
|
+
"ANTHROPIC_MODEL": "anthropic/claude-3-5-sonnet",
|
|
123
119
|
"ANTHROPIC_SMALL_FAST_MODEL": "anthropic/claude-3-haiku",
|
|
124
120
|
"ANTHROPIC_DEFAULT_SONNET_MODEL": "anthropic/claude-3-5-sonnet",
|
|
125
121
|
"ANTHROPIC_DEFAULT_OPUS_MODEL": "anthropic/claude-3-opus",
|
|
126
122
|
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "anthropic/claude-3-haiku"
|
|
127
123
|
},
|
|
128
|
-
"enableAllProjectMcpServers": false,
|
|
129
|
-
"enabledMcpjsonServers": [
|
|
130
|
-
"postgresql-server",
|
|
131
|
-
"news-server"
|
|
132
|
-
],
|
|
133
124
|
"agent": "nom_agent",
|
|
134
125
|
"runner": "claude"
|
|
135
126
|
}
|
|
136
127
|
\`\`\`
|
|
128
|
+
${interpolationNotice}`;
|
|
129
|
+
break;
|
|
130
|
+
case 'minimaxi':
|
|
131
|
+
text = `🚀 **EXEMPLE DE CONFIGURATION POUR MINIMAXI (VERSION ALTERNATIVE)**
|
|
137
132
|
|
|
138
|
-
### 📂
|
|
133
|
+
### 📂 settings_[nom_agent].json
|
|
139
134
|
\`\`\`json
|
|
140
135
|
{
|
|
141
|
-
"
|
|
142
|
-
"
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
"
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
"
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
136
|
+
"env": {
|
|
137
|
+
"ANTHROPIC_MODEL": "MiniMax-Text-01",
|
|
138
|
+
"ANTHROPIC_AUTH_TOKEN": "$MINIMAXI_API_KEY", // Configuré dans le .env
|
|
139
|
+
"ANTHROPIC_BASE_URL": "$MINIMAXI_BASE_URL",
|
|
140
|
+
"ANTHROPIC_SMALL_FAST_MODEL": "MiniMax-Text-01",
|
|
141
|
+
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "MiniMax-Text-01",
|
|
142
|
+
"ANTHROPIC_DEFAULT_OPUS_MODEL": "MiniMax-Text-01",
|
|
143
|
+
"ANTHROPIC_DEFAULT_SONNET_MODEL": "MiniMax-Text-01",
|
|
144
|
+
"API_TIMEOUT_MS": "900000",
|
|
145
|
+
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
|
|
146
|
+
"agent": "minimax_agent"
|
|
147
|
+
},
|
|
148
|
+
"agent": "minimax_agent",
|
|
149
|
+
"runner": "claude"
|
|
150
|
+
}
|
|
151
|
+
\`\`\`
|
|
152
|
+
${interpolationNotice}`;
|
|
153
|
+
break;
|
|
154
|
+
// ─── OVERMIND: Guide complet $VAR + FALLBACK TOKENS ───
|
|
155
|
+
case 'overmind':
|
|
156
|
+
text = `🎯 **GUIDE COMPLET : SUBSTITUTION $VAR ET FALLBACK TOKENS**
|
|
157
|
+
|
|
158
|
+
Overmind supporte deux mécanismes puissants pour vos agents :
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
### 1️⃣ SUBSTITUTION $VAR (tous les runners)
|
|
163
|
+
|
|
164
|
+
Les settings de vos agents peuvent référencer des variables d'environnement du \`.env\` avec la syntaxe \`$NOM_VARIABLE\`.
|
|
165
|
+
|
|
166
|
+
\`\`\`json
|
|
167
|
+
{
|
|
168
|
+
"env": {
|
|
169
|
+
"ANTHROPIC_AUTH_TOKEN": "$ANTHROPIC_AUTH_TOKEN_1",
|
|
170
|
+
"ANTHROPIC_BASE_URL": "$Z_AI_BASE_URL"
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
\`\`\`
|
|
174
|
+
|
|
175
|
+
Au runtime, Overmind remplace automatiquement \`$ANTHROPIC_AUTH_TOKEN_1\` par sa valeur réelle depuis le \`.env\`.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
### 2️⃣ RETRY AUTOMATIQUE SUR ERREUR (ClaudeRunner + KiloRunner)
|
|
180
|
+
|
|
181
|
+
Quand une erreur se produit, Overmind peut RETENTER automatiquement avec des tokens de secours.
|
|
182
|
+
|
|
183
|
+
**Erreurs retryables :**
|
|
184
|
+
- **401** : Auth failure (token invalide/expiré)
|
|
185
|
+
- **429** : Rate limit / quota exhausted (limite atteinte)
|
|
186
|
+
- **500, 502, 503** : Server error (erreur serveur)
|
|
187
|
+
|
|
188
|
+
**Détection texte stderr :** \`401\`, \`unauthorized\`, \`invalid api key\`, \`authentication failed\`, \`auth error\`, \`429\`, \`rate limit\`, \`quota exhausted\`, \`limit exhausted\`, \`503\`, \`service unavailable\`, \`500\`, \`internal server error\`
|
|
189
|
+
|
|
190
|
+
**Flow :** Token primaire → AUTH_FALLBACK_1 → AUTH_FALLBACK_2 → AUTH_FALLBACK_3 → ÉCHEC
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
### 📂 EXEMPLE COMPLET : ClaudeRunner avec 3 fallback tokens
|
|
195
|
+
|
|
196
|
+
\`\`\`json
|
|
197
|
+
{
|
|
198
|
+
"model": "claude-sonnet-4-20250514",
|
|
199
|
+
"env": {
|
|
200
|
+
"ANTHROPIC_AUTH_TOKEN": "$ANTHROPIC_AUTH_TOKEN", // Token principal
|
|
201
|
+
"AUTH_FALLBACK_1": "$ANTHROPIC_AUTH_TOKEN_2", // Si 401/429/5xx
|
|
202
|
+
"AUTH_FALLBACK_2": "$ANTHROPIC_AUTH_TOKEN_3", // Si encore échoué
|
|
203
|
+
"AUTH_FALLBACK_3": "$ANTHROPIC_AUTH_TOKEN_4" // Dernier recours
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
\`\`\`
|
|
207
|
+
|
|
208
|
+
**.env associé :**
|
|
209
|
+
\`\`\`
|
|
210
|
+
ANTHROPIC_AUTH_TOKEN=sk-cp-primary... # Token principal ( utilisation normale )
|
|
211
|
+
ANTHROPIC_AUTH_TOKEN_2=sk-cp-xxx... # Fallback #1
|
|
212
|
+
ANTHROPIC_AUTH_TOKEN_3=sk-cp-yyy... # Fallback #2
|
|
213
|
+
ANTHROPIC_AUTH_TOKEN_4=sk-cp-zzz... # Fallback #3
|
|
214
|
+
\`\`\`
|
|
215
|
+
|
|
216
|
+
**Comment ça marche :**
|
|
217
|
+
1. L'agent commence avec \`ANTHROPIC_AUTH_TOKEN\` = \`$ANTHROPIC_AUTH_TOKEN\` → résolu → \`sk-cp-primary...\`
|
|
218
|
+
2. Si erreur 401/429/5xx → retry avec \`AUTH_FALLBACK_1\` → \`sk-cp-xxx...\`
|
|
219
|
+
3. Si encore échec → retry avec \`AUTH_FALLBACK_2\` → \`sk-cp-yyy...\`
|
|
220
|
+
4. Si encore échec → retry avec \`AUTH_FALLBACK_3\` → \`sk-cp-zzz...\`
|
|
221
|
+
5. Si encore échec → \`RETRYABLE_ERROR_ALL_FALLBACKS_EXHAUSTED\`
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
### 📂 EXEMPLE COMPLET : KiloRunner avec fallback
|
|
226
|
+
|
|
227
|
+
\`\`\`json
|
|
228
|
+
{
|
|
229
|
+
"model": "claude-sonnet-4-20250514",
|
|
230
|
+
"env": {
|
|
231
|
+
"OPENAI_API_KEY": "$ANTHROPIC_AUTH_TOKEN", // Clé primaire Kilo
|
|
232
|
+
"AUTH_FALLBACK_1": "$ANTHROPIC_AUTH_TOKEN_2", // Fallback #1
|
|
233
|
+
"AUTH_FALLBACK_2": "$ANTHROPIC_AUTH_TOKEN_3", // Fallback #2
|
|
234
|
+
"AUTH_FALLBACK_3": "$ANTHROPIC_AUTH_TOKEN_4" // Fallback #3
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
\`\`\`
|
|
238
|
+
|
|
239
|
+
> Kilo utilise \`OPENAI_API_KEY\` comme clé primaire (compatible OpenAI / OpenRouter / etc.).
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
### 📂 EXEMPLE : Variable $VAR simple (sans fallback)
|
|
244
|
+
|
|
245
|
+
\`\`\`json
|
|
246
|
+
{
|
|
247
|
+
"model": "claude-sonnet-4-20250514",
|
|
248
|
+
"env": {
|
|
249
|
+
"ANTHROPIC_AUTH_TOKEN": "$ANTHROPIC_AUTH_TOKEN",
|
|
250
|
+
"ANTHROPIC_BASE_URL": "$Z_AI_BASE_URL",
|
|
251
|
+
"API_TIMEOUT_MS": "$API_TIMEOUT_MS"
|
|
158
252
|
}
|
|
159
253
|
}
|
|
160
254
|
\`\`\`
|
|
161
255
|
|
|
162
|
-
|
|
256
|
+
Les \`$VAR\` peuvent être sur n'importe quelle valeur de \`env\`.
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
### ⚠️ RÈGLES IMPORTANTES
|
|
261
|
+
|
|
262
|
+
- Les clés \`AUTH_FALLBACK_1\`, \`AUTH_FALLBACK_2\`, \`AUTH_FALLBACK_3\` sont réservées par Overmind pour le retry automatique.
|
|
263
|
+
- La substitution est à **un seul niveau** : \`$MINIMAXI_API_KEY\` est remplacé, mais pas récursivement.
|
|
264
|
+
- Les tokens sont résolus **avant** le spawn de l'agent.
|
|
265
|
+
- Le retry fonctionne sur erreur **401 (auth), 429 (rate limit), 500/502/503 (server error)** — pas sur les erreurs de réseau simples (timeout, DNS...).
|
|
266
|
+
- Chaque token fallback ne sera testé qu'une seule fois par session d'agent.
|
|
267
|
+
- Si tous les fallbacks sont épuisés, l'erreur finale est \`RETRYABLE_ERROR_ALL_FALLBACKS_EXHAUSTED\`.`;
|
|
163
268
|
break;
|
|
164
269
|
}
|
|
165
270
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config_example.js","sourceRoot":"","sources":["../../src/tools/config_example.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"config_example.js","sourceRoot":"","sources":["../../src/tools/config_example.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC;SACR,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;SACtE,QAAQ,CAAC,qEAAqE,CAAC;CACnF,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAyC;IAC3E,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC1B,IAAI,IAAI,GAAG,EAAE,CAAC;IAEd,MAAM,mBAAmB,GAAG;;;;GAI3B,CAAC;IAEF,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,KAAK;YACR,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuCX,mBAAmB,EAAE,CAAC;YAClB,MAAM;QACR,KAAK,MAAM;YACT,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;EAqBX,mBAAmB,EAAE,CAAC;YAClB,MAAM;QACR,KAAK,SAAS;YACZ,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;EAoBX,mBAAmB,EAAE,CAAC;YAClB,MAAM;QACR,KAAK,YAAY;YACf,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;EAoBX,mBAAmB,EAAE,CAAC;YAClB,MAAM;QACR,KAAK,UAAU;YACb,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;EAqBX,mBAAmB,EAAE,CAAC;YAClB,MAAM;QAER,yDAAyD;QACzD,KAAK,UAAU;YACb,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uGA+G0F,CAAC;YAClG,MAAM;IACV,CAAC;IAED,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;KAC3C,CAAC;AACJ,CAAC"}
|