overmind-mcp 2.5.0 β 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +113 -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 +238 -0
- package/dist/lib/orchestration/swarm.js.map +1 -0
- 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 +8 -0
- package/dist/services/ClaudeRunner.d.ts.map +1 -1
- package/dist/services/ClaudeRunner.js +510 -281
- 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/{QwenRunner.d.ts β NousHermesRunner.d.ts} +12 -3
- package/dist/services/NousHermesRunner.d.ts.map +1 -0
- package/dist/services/NousHermesRunner.js +460 -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/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 +11 -5
- 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 +13 -14
- package/dist/tools/run_agent.d.ts.map +1 -1
- package/dist/tools/run_agent.js +128 -160
- 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 +129 -0
- package/dist/tools/run_agent_cli.js.map +1 -0
- package/dist/tools/run_agents_parallel.d.ts +34 -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 +8 -3
- package/dist/tools/run_claude.d.ts.map +1 -1
- package/dist/tools/run_claude.js +59 -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 +114 -83
- 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.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
package/dist/tools/run_agent.js
CHANGED
|
@@ -1,175 +1,143 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
import { runClaudeAgent } from './run_claude.js';
|
|
3
|
+
import { runGeminiAgent } from './run_gemini.js';
|
|
4
|
+
import { runKiloAgent } from './run_kilo.js';
|
|
5
|
+
import { runQwenCLIAgent } from './run_qwencli.js';
|
|
6
|
+
import { runOpenClawAgent } from './run_openclaw.js';
|
|
7
|
+
import { runClineAgent } from './run_cline.js';
|
|
8
|
+
import { runOpenCodeAgent } from './run_opencode.js';
|
|
9
|
+
import { runHermesAgent } from './run_hermes.js';
|
|
10
|
+
import { verifyInstallation } from '../lib/InstallHelper.js';
|
|
11
|
+
import { withSpan } from '../lib/telemetry.js';
|
|
12
|
+
// Schema unified for all runners
|
|
13
|
+
export const runAgentSchema = z
|
|
14
|
+
.object({
|
|
13
15
|
runner: z
|
|
14
|
-
.enum(['claude', 'gemini', 'kilo', '
|
|
15
|
-
.describe('Type de runner
|
|
16
|
-
prompt: z.string().describe("Le prompt
|
|
17
|
-
sessionId: z
|
|
18
|
-
.string()
|
|
19
|
-
.optional()
|
|
20
|
-
.describe('ID de session pour continuer une conversation (manuel)'),
|
|
16
|
+
.enum(['claude', 'gemini', 'kilo', 'qwencli', 'openclaw', 'cline', 'opencode', 'hermes'])
|
|
17
|
+
.describe('Type de runner a utiliser'),
|
|
18
|
+
prompt: z.string().min(1, 'prompt vide interdit').describe("Le prompt a envoyer a l'agent"),
|
|
19
|
+
sessionId: z.string().optional().describe('Session ID'),
|
|
21
20
|
agentName: z
|
|
22
21
|
.string()
|
|
22
|
+
.regex(/^[a-zA-Z0-9_-]+$/, 'agentName ne doit contenir que des caractères alphanumériques, tirets ou underscores')
|
|
23
23
|
.optional()
|
|
24
|
-
.describe("Nom de l'agent
|
|
25
|
-
autoResume: z
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
.enum(['code', 'architect', 'ask', 'debug', 'orchestrator', 'plan', 'act'])
|
|
24
|
+
.describe("Nom de l'agent"),
|
|
25
|
+
autoResume: z.boolean().optional().default(false).describe('Auto resume session'),
|
|
26
|
+
mode: z.string().optional().describe('Mode specifique'),
|
|
27
|
+
path: z.string().optional().describe('Working directory'),
|
|
28
|
+
config: z.string().optional().describe('Config directory'),
|
|
29
|
+
silent: z.boolean().optional().default(false).describe('Silent mode'),
|
|
30
|
+
model: z
|
|
31
|
+
.string()
|
|
33
32
|
.optional()
|
|
34
|
-
.describe(
|
|
33
|
+
.describe("Nom du modèle. Pour Hermes : priorité OpenAI ou NVIDIA. Pour Kilo (gratuits) : 'tencent/hy3-preview:free' ou 'step 3.5 flash'."),
|
|
34
|
+
})
|
|
35
|
+
.passthrough();
|
|
36
|
+
// Validation stricte des paramètres pour chaque runner (remplace les casts dangereux)
|
|
37
|
+
const validateAndExtractParams = (params, schema) => {
|
|
38
|
+
return schema.parse(params);
|
|
39
|
+
};
|
|
40
|
+
// SchΓ©mas de validation pour chaque runner (basΓ©s sur leurs signatures rΓ©elles)
|
|
41
|
+
const claudeParamsSchema = z.object({
|
|
42
|
+
prompt: z.string(),
|
|
43
|
+
sessionId: z.string().optional(),
|
|
44
|
+
agentName: z.string().optional(),
|
|
45
|
+
autoResume: z.boolean().default(false),
|
|
46
|
+
model: z.string().optional(),
|
|
47
|
+
path: z.string().optional(),
|
|
48
|
+
config: z.string().optional(),
|
|
49
|
+
silent: z.boolean().default(false),
|
|
50
|
+
signal: z.custom().optional(),
|
|
35
51
|
});
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
sessionId,
|
|
81
|
-
mode: mode,
|
|
82
|
-
});
|
|
83
|
-
break;
|
|
84
|
-
}
|
|
85
|
-
case 'opencode': {
|
|
86
|
-
const openCodeRunner = new OpenCodeRunner();
|
|
87
|
-
result = await openCodeRunner.runAgent({ prompt, agentName, autoResume, sessionId });
|
|
88
|
-
break;
|
|
89
|
-
}
|
|
90
|
-
case 'trae': {
|
|
91
|
-
const traeRunner = new TraeRunner();
|
|
92
|
-
result = await traeRunner.runAgent({ prompt, agentName, autoResume, sessionId });
|
|
93
|
-
break;
|
|
94
|
-
}
|
|
95
|
-
default:
|
|
96
|
-
return {
|
|
97
|
-
content: [
|
|
98
|
-
{
|
|
99
|
-
type: 'text',
|
|
100
|
-
text: `β Runner inconnu: ${runner}\n\nRunners disponibles: claude, gemini, kilo, qwen, openclaw, cline, opencode, trae`,
|
|
101
|
-
},
|
|
102
|
-
],
|
|
103
|
-
isError: true,
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
catch (error) {
|
|
108
|
-
return {
|
|
109
|
-
content: [
|
|
110
|
-
{
|
|
111
|
-
type: 'text',
|
|
112
|
-
text: `β Erreur lors de l'exΓ©cution du runner ${runner}: ${error instanceof Error ? error.message : String(error)}`,
|
|
113
|
-
},
|
|
114
|
-
],
|
|
115
|
-
isError: true,
|
|
116
|
-
};
|
|
52
|
+
const kiloParamsSchema = z.object({
|
|
53
|
+
prompt: z.string(),
|
|
54
|
+
sessionId: z.string().optional(),
|
|
55
|
+
agentName: z.string().optional(),
|
|
56
|
+
autoResume: z.boolean().default(false),
|
|
57
|
+
model: z.string().optional(),
|
|
58
|
+
path: z.string().optional(),
|
|
59
|
+
config: z.string().optional(),
|
|
60
|
+
silent: z.boolean().default(false),
|
|
61
|
+
mode: z.enum(['code', 'architect', 'ask', 'debug', 'orchestrator']).optional(),
|
|
62
|
+
signal: z.custom().optional(),
|
|
63
|
+
});
|
|
64
|
+
const clineParamsSchema = z.object({
|
|
65
|
+
prompt: z.string(),
|
|
66
|
+
sessionId: z.string().optional(),
|
|
67
|
+
agentName: z.string().optional(),
|
|
68
|
+
autoResume: z.boolean().default(false),
|
|
69
|
+
model: z.string().optional(),
|
|
70
|
+
path: z.string().optional(),
|
|
71
|
+
config: z.string().optional(),
|
|
72
|
+
silent: z.boolean().default(false),
|
|
73
|
+
mode: z.enum(['plan', 'act']).optional(),
|
|
74
|
+
signal: z.custom().optional(),
|
|
75
|
+
});
|
|
76
|
+
const genericParamsSchema = z.object({
|
|
77
|
+
prompt: z.string(),
|
|
78
|
+
sessionId: z.string().optional(),
|
|
79
|
+
agentName: z.string().optional(),
|
|
80
|
+
autoResume: z.boolean().default(false),
|
|
81
|
+
model: z.string().optional(),
|
|
82
|
+
path: z.string().optional(),
|
|
83
|
+
config: z.string().optional(),
|
|
84
|
+
silent: z.boolean().default(false),
|
|
85
|
+
signal: z.custom().optional(),
|
|
86
|
+
});
|
|
87
|
+
// Validation manuelle des modes (dΓ©placΓ©e ici pour compatibilitΓ© FastMCP)
|
|
88
|
+
const RUNNER_MODES = {
|
|
89
|
+
kilo: ['code', 'architect', 'ask', 'debug', 'orchestrator'],
|
|
90
|
+
cline: ['plan', 'act'],
|
|
91
|
+
};
|
|
92
|
+
function validateMode(runner, mode) {
|
|
93
|
+
const allowed = RUNNER_MODES[runner];
|
|
94
|
+
if (mode && allowed && !allowed.includes(mode)) {
|
|
95
|
+
throw new Error(`mode "${mode}" non supportΓ© par runner "${runner}". AutorisΓ©s : ${allowed.join('|')}`);
|
|
117
96
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
Promise.resolve(storeRun({
|
|
121
|
-
runner,
|
|
122
|
-
agentName,
|
|
123
|
-
prompt,
|
|
124
|
-
result: result.result,
|
|
125
|
-
error: result.error,
|
|
126
|
-
durationMs,
|
|
127
|
-
success: !result.error,
|
|
128
|
-
sessionId: result.sessionId,
|
|
129
|
-
})).catch(() => {
|
|
130
|
-
/* silent β la mΓ©moire ne doit jamais bloquer le runner */
|
|
131
|
-
});
|
|
132
|
-
// Gestion des erreurs spΓ©cifiques
|
|
133
|
-
if (result.error === 'INVALID_AGENT') {
|
|
134
|
-
return {
|
|
135
|
-
content: [
|
|
136
|
-
{
|
|
137
|
-
type: 'text',
|
|
138
|
-
text: `β **Erreur Configuration Agent**\n\nL'agent '${agentName}' est introuvable ou mal configurΓ©.\n\nπ‘ **Solution:**\nUtilisez l'outil \`create_agent\` pour crΓ©er cet agent avant de l'exΓ©cuter.`,
|
|
139
|
-
},
|
|
140
|
-
],
|
|
141
|
-
isError: true,
|
|
142
|
-
};
|
|
97
|
+
if (mode && !allowed) {
|
|
98
|
+
throw new Error(`runner "${runner}" n'accepte pas de mode`);
|
|
143
99
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
if (result.error) {
|
|
100
|
+
}
|
|
101
|
+
export async function runAgent(args) {
|
|
102
|
+
const { runner, mode, ...params } = args;
|
|
103
|
+
// Validation des modes
|
|
104
|
+
validateMode(runner, mode);
|
|
105
|
+
// VΓ©rification de l'installation avec logging
|
|
106
|
+
const check = await verifyInstallation(runner);
|
|
107
|
+
if (!check.ok) {
|
|
108
|
+
const errorMsg = check.message || `CLI non installΓ©e pour runner "${runner}"`;
|
|
109
|
+
console.error(`[runAgent] Installation check failed for ${runner}:`, errorMsg);
|
|
157
110
|
return {
|
|
158
|
-
content: [
|
|
159
|
-
{
|
|
160
|
-
type: 'text',
|
|
161
|
-
text: `β Erreur lors de l'exΓ©cution du runner ${runner}: ${result.error}${result.rawOutput ? `\n\nπ **DΓ©tails:**\n\`\`\`text\n${result.rawOutput}\n\`\`\`` : ''}`,
|
|
162
|
-
},
|
|
163
|
-
],
|
|
111
|
+
content: [{ type: 'text', text: errorMsg }],
|
|
164
112
|
isError: true,
|
|
165
113
|
};
|
|
166
114
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
115
|
+
// ExΓ©cution avec telemetry
|
|
116
|
+
return withSpan('runAgent.execute', async () => {
|
|
117
|
+
switch (runner) {
|
|
118
|
+
case 'claude':
|
|
119
|
+
return runClaudeAgent(validateAndExtractParams(params, claudeParamsSchema));
|
|
120
|
+
case 'gemini':
|
|
121
|
+
return runGeminiAgent(validateAndExtractParams(params, genericParamsSchema));
|
|
122
|
+
case 'kilo':
|
|
123
|
+
return runKiloAgent(validateAndExtractParams(params, kiloParamsSchema));
|
|
124
|
+
case 'qwencli':
|
|
125
|
+
return runQwenCLIAgent(validateAndExtractParams(params, genericParamsSchema));
|
|
126
|
+
case 'openclaw':
|
|
127
|
+
return runOpenClawAgent(validateAndExtractParams(params, genericParamsSchema));
|
|
128
|
+
case 'cline':
|
|
129
|
+
return runClineAgent(validateAndExtractParams(params, clineParamsSchema));
|
|
130
|
+
case 'opencode':
|
|
131
|
+
return runOpenCodeAgent(validateAndExtractParams(params, genericParamsSchema));
|
|
132
|
+
case 'hermes':
|
|
133
|
+
return runHermesAgent(validateAndExtractParams(params, genericParamsSchema));
|
|
134
|
+
default: {
|
|
135
|
+
// Ce cas est thΓ©oriquement impossible grΓ’ce Γ la validation Zod de l'enum
|
|
136
|
+
const error = `Runner inconnu: ${runner}`;
|
|
137
|
+
console.error(`[runAgent] ${error}`);
|
|
138
|
+
throw new Error(error);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}, { runner, agentName: params.agentName || '', mode: mode || '' });
|
|
174
142
|
}
|
|
175
143
|
//# sourceMappingURL=run_agent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run_agent.js","sourceRoot":"","sources":["../../src/tools/run_agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"run_agent.js","sourceRoot":"","sources":["../../src/tools/run_agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
3
|
+
* β π OVERMIND CLI TESTER β Mode Dual β
|
|
4
|
+
* β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
|
|
5
|
+
* β --lib : appelle runAgent() directement (rapide, in-proc) β
|
|
6
|
+
* β --mcp : spawn le serveur MCP + appel via SDK officiel β
|
|
7
|
+
* β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
|
|
8
|
+
* β USAGE β
|
|
9
|
+
* β npx tsx src/tools/run_agent_cli.ts [--lib|--mcp] β
|
|
10
|
+
* β <runner> <agentName> <prompt> [model] β
|
|
11
|
+
* β β
|
|
12
|
+
* β EXEMPLES β
|
|
13
|
+
* β npx tsx src/tools/run_agent_cli.ts --lib β
|
|
14
|
+
* β kilo sniper_analyst "Analyse le marchΓ©" β
|
|
15
|
+
* β β
|
|
16
|
+
* β npx tsx src/tools/run_agent_cli.ts --mcp β
|
|
17
|
+
* β kilo mistral_test_kilo_1 "Hello" mistral-large-latest β
|
|
18
|
+
* ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
19
|
+
*/
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=run_agent_cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run_agent_cli.d.ts","sourceRoot":"","sources":["../../src/tools/run_agent_cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
3
|
+
* β π OVERMIND CLI TESTER β Mode Dual β
|
|
4
|
+
* β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
|
|
5
|
+
* β --lib : appelle runAgent() directement (rapide, in-proc) β
|
|
6
|
+
* β --mcp : spawn le serveur MCP + appel via SDK officiel β
|
|
7
|
+
* β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
|
|
8
|
+
* β USAGE β
|
|
9
|
+
* β npx tsx src/tools/run_agent_cli.ts [--lib|--mcp] β
|
|
10
|
+
* β <runner> <agentName> <prompt> [model] β
|
|
11
|
+
* β β
|
|
12
|
+
* β EXEMPLES β
|
|
13
|
+
* β npx tsx src/tools/run_agent_cli.ts --lib β
|
|
14
|
+
* β kilo sniper_analyst "Analyse le marchΓ©" β
|
|
15
|
+
* β β
|
|
16
|
+
* β npx tsx src/tools/run_agent_cli.ts --mcp β
|
|
17
|
+
* β kilo mistral_test_kilo_1 "Hello" mistral-large-latest β
|
|
18
|
+
* ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
19
|
+
*/
|
|
20
|
+
// βββ ENV: chargΓ©e en tout premier (avant tout import qui lirait process.env) ββββ
|
|
21
|
+
import { fileURLToPath } from 'url';
|
|
22
|
+
import path from 'path';
|
|
23
|
+
import fs from 'fs';
|
|
24
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
25
|
+
const __dirname = path.dirname(__filename);
|
|
26
|
+
// RΓ©solution du .env relatif au projet (src/tools β ../../.env)
|
|
27
|
+
const envPath = path.resolve(__dirname, '../../.env');
|
|
28
|
+
if (fs.existsSync(envPath)) {
|
|
29
|
+
const { config } = await import('dotenv');
|
|
30
|
+
config({ path: envPath });
|
|
31
|
+
}
|
|
32
|
+
// βββ Imports mΓ©tier βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
33
|
+
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
34
|
+
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
35
|
+
import { runAgent } from './run_agent.js';
|
|
36
|
+
// βββ Parsing des arguments βββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
37
|
+
const argv = process.argv.slice(2);
|
|
38
|
+
// Premier arg optionnel : mode
|
|
39
|
+
let mode = 'lib'; // dΓ©faut : lib
|
|
40
|
+
let rest = argv;
|
|
41
|
+
if (argv[0] === '--lib') {
|
|
42
|
+
mode = 'lib';
|
|
43
|
+
rest = argv.slice(1);
|
|
44
|
+
}
|
|
45
|
+
else if (argv[0] === '--mcp') {
|
|
46
|
+
mode = 'mcp';
|
|
47
|
+
rest = argv.slice(1);
|
|
48
|
+
}
|
|
49
|
+
if (rest.length < 3) {
|
|
50
|
+
console.error('\nβ ParamΓ¨tres manquants !');
|
|
51
|
+
console.error('Usage: npx tsx src/tools/run_agent_cli.ts [--lib|--mcp] <runner> <agentName> <prompt> [model]\n');
|
|
52
|
+
console.error('Modes:');
|
|
53
|
+
console.error(' --lib (dΓ©faut) : appel direct Γ runAgent() β rapide, sans serveur');
|
|
54
|
+
console.error(' --mcp : spawn du serveur MCP + appel via SDK officiel\n');
|
|
55
|
+
console.error('Runners: claude, gemini, kilo, qwencli, openclaw, cline, opencode, hermes\n');
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
const [runner, agentName, prompt, model] = rest;
|
|
59
|
+
// βββ MODE LIB ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
60
|
+
async function runViaLib() {
|
|
61
|
+
console.error(`\n[CLI:lib] π€ runner="${runner}" agent="${agentName}"${model ? ` modΓ¨le="${model}"` : ''}`);
|
|
62
|
+
const result = await runAgent({
|
|
63
|
+
runner: runner,
|
|
64
|
+
agentName,
|
|
65
|
+
prompt,
|
|
66
|
+
model,
|
|
67
|
+
autoResume: true,
|
|
68
|
+
silent: false,
|
|
69
|
+
});
|
|
70
|
+
console.log('\nββ RΓ©sultat ββββββββββββββββββββββββββββββββββββββββββββββ');
|
|
71
|
+
console.log(JSON.stringify(result, null, 2));
|
|
72
|
+
}
|
|
73
|
+
// βββ MODE MCP ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
74
|
+
async function runViaMcp() {
|
|
75
|
+
// Chemin vers le binaire compilΓ©, rΓ©solu relativement Γ ce fichier
|
|
76
|
+
// src/tools/run_agent_cli.ts β dist/bin/cli.js
|
|
77
|
+
const serverBin = path.resolve(__dirname, '../../dist/bin/cli.js');
|
|
78
|
+
if (!fs.existsSync(serverBin)) {
|
|
79
|
+
console.error(`\nβ Binaire serveur introuvable : ${serverBin}`);
|
|
80
|
+
console.error(" Lancez d'abord : pnpm run build\n");
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
console.error(`\n[CLI:mcp] π DΓ©marrage du serveur MCP : node ${serverBin}`);
|
|
84
|
+
console.error(`[CLI:mcp] π€ runner="${runner}" agent="${agentName}"${model ? ` modΓ¨le="${model}"` : ''}\n`);
|
|
85
|
+
// Le serveur hΓ©rite de process.env (donc du .env dΓ©jΓ chargΓ©)
|
|
86
|
+
const transport = new StdioClientTransport({
|
|
87
|
+
command: 'node',
|
|
88
|
+
args: ['--no-warnings', serverBin],
|
|
89
|
+
env: { ...process.env },
|
|
90
|
+
});
|
|
91
|
+
const client = new Client({ name: 'overmind-cli-tester', version: '1.0.0' }, { capabilities: {} });
|
|
92
|
+
try {
|
|
93
|
+
await client.connect(transport);
|
|
94
|
+
// Listing des outils disponibles (optionnel, utile pour le debug)
|
|
95
|
+
const { tools } = await client.listTools();
|
|
96
|
+
console.error(`[CLI:mcp] β
ConnectΓ© β ${tools.length} outil(s) disponible(s) : ${tools.map((t) => t.name).join(', ')}\n`);
|
|
97
|
+
const args = {
|
|
98
|
+
runner,
|
|
99
|
+
agentName,
|
|
100
|
+
prompt,
|
|
101
|
+
autoResume: true,
|
|
102
|
+
silent: false,
|
|
103
|
+
};
|
|
104
|
+
if (model)
|
|
105
|
+
args.model = model;
|
|
106
|
+
console.error(`[CLI:mcp] π€ Appel run_agentβ¦`);
|
|
107
|
+
const result = await client.callTool({ name: 'run_agent', arguments: args });
|
|
108
|
+
console.log('\nββ RΓ©sultat MCP ββββββββββββββββββββββββββββββββββββββββββ');
|
|
109
|
+
console.log(JSON.stringify(result, null, 2));
|
|
110
|
+
}
|
|
111
|
+
finally {
|
|
112
|
+
await transport.close();
|
|
113
|
+
console.error('\n[CLI:mcp] π Connexion fermΓ©e.');
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// βββ Dispatch ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
117
|
+
try {
|
|
118
|
+
if (mode === 'mcp') {
|
|
119
|
+
await runViaMcp();
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
await runViaLib();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch (err) {
|
|
126
|
+
console.error('\nπ₯ Erreur fatale :', err);
|
|
127
|
+
process.exit(1);
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=run_agent_cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run_agent_cli.js","sourceRoot":"","sources":["../../src/tools/run_agent_cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const runAgentsParallelSchema: z.ZodObject<{
|
|
3
|
+
agents: z.ZodArray<z.ZodObject<{
|
|
4
|
+
runner: z.ZodEnum<{
|
|
5
|
+
claude: "claude";
|
|
6
|
+
gemini: "gemini";
|
|
7
|
+
kilo: "kilo";
|
|
8
|
+
qwencli: "qwencli";
|
|
9
|
+
hermes: "hermes";
|
|
10
|
+
openclaw: "openclaw";
|
|
11
|
+
cline: "cline";
|
|
12
|
+
opencode: "opencode";
|
|
13
|
+
}>;
|
|
14
|
+
prompt: z.ZodString;
|
|
15
|
+
sessionId: z.ZodOptional<z.ZodString>;
|
|
16
|
+
agentName: z.ZodOptional<z.ZodString>;
|
|
17
|
+
autoResume: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
18
|
+
mode: z.ZodOptional<z.ZodString>;
|
|
19
|
+
path: z.ZodOptional<z.ZodString>;
|
|
20
|
+
config: z.ZodOptional<z.ZodString>;
|
|
21
|
+
silent: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
22
|
+
model: z.ZodOptional<z.ZodString>;
|
|
23
|
+
taskId: z.ZodOptional<z.ZodString>;
|
|
24
|
+
}, z.core.$loose>>;
|
|
25
|
+
waitAll: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
26
|
+
}, z.core.$strip>;
|
|
27
|
+
export declare function runAgentsParallel(args: z.infer<typeof runAgentsParallelSchema>): Promise<{
|
|
28
|
+
content: [{
|
|
29
|
+
type: "text";
|
|
30
|
+
text: string;
|
|
31
|
+
}];
|
|
32
|
+
isError: boolean;
|
|
33
|
+
}>;
|
|
34
|
+
//# sourceMappingURL=run_agents_parallel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run_agents_parallel.d.ts","sourceRoot":"","sources":["../../src/tools/run_agents_parallel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;iBAelC,CAAC;AAIH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC;;;;;;GAGpF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { runAgentSchema } from './run_agent.js';
|
|
3
|
+
import { dispatchAgents } from '../lib/orchestration/dispatcher.js';
|
|
4
|
+
// βββ Schema ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
5
|
+
const AgentTaskSchema = runAgentSchema.extend({
|
|
6
|
+
taskId: z
|
|
7
|
+
.string()
|
|
8
|
+
.optional()
|
|
9
|
+
.describe("Identifiant optionnel pour la tΓ’che (ex: 'build', 'lint', 'test')"),
|
|
10
|
+
});
|
|
11
|
+
export const runAgentsParallelSchema = z.object({
|
|
12
|
+
agents: z
|
|
13
|
+
.array(AgentTaskSchema)
|
|
14
|
+
.min(1, 'Au moins un agent requis.')
|
|
15
|
+
.max(10, 'Maximum 10 agents en parallèle.')
|
|
16
|
+
.describe('Liste des agents Γ lancer en parallΓ¨le. Chaque entrΓ©e est un appel run_agent complet (runner, prompt, agentName, model, path, modeβ¦).'),
|
|
17
|
+
waitAll: z
|
|
18
|
+
.boolean()
|
|
19
|
+
.optional()
|
|
20
|
+
.default(true)
|
|
21
|
+
.describe('Si true (défaut), attend que TOUS les agents terminent avant de retourner le résultat. Si false, retourne dès que le premier réussit.'),
|
|
22
|
+
});
|
|
23
|
+
// βββ Tool ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
24
|
+
export async function runAgentsParallel(args) {
|
|
25
|
+
const { agents, waitAll } = args;
|
|
26
|
+
return dispatchAgents(agents, { waitAll });
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=run_agents_parallel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run_agents_parallel.js","sourceRoot":"","sources":["../../src/tools/run_agents_parallel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,gFAAgF;AAEhF,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC;IAC5C,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mEAAmE,CAAC;CACjF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,eAAe,CAAC;SACtB,GAAG,CAAC,CAAC,EAAE,2BAA2B,CAAC;SACnC,GAAG,CAAC,EAAE,EAAE,iCAAiC,CAAC;SAC1C,QAAQ,CACP,uIAAuI,CACxI;IACH,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CACP,uIAAuI,CACxI;CACJ,CAAC,CAAC;AAEH,gFAAgF;AAEhF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAA6C;IACnF,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjC,OAAO,cAAc,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const runClaudeSchema: z.ZodObject<{
|
|
3
3
|
prompt: z.ZodString;
|
|
4
4
|
sessionId: z.ZodOptional<z.ZodString>;
|
|
5
5
|
agentName: z.ZodOptional<z.ZodString>;
|
|
6
6
|
autoResume: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
model: z.ZodOptional<z.ZodString>;
|
|
8
|
+
path: z.ZodOptional<z.ZodString>;
|
|
9
|
+
config: z.ZodOptional<z.ZodString>;
|
|
10
|
+
silent: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
11
|
+
signal: z.ZodOptional<z.ZodCustom<AbortSignal, AbortSignal>>;
|
|
12
|
+
}, z.core.$loose>;
|
|
13
|
+
export declare function runClaudeAgent(args: z.infer<typeof runClaudeSchema>): Promise<{
|
|
9
14
|
content: Array<{
|
|
10
15
|
type: 'text';
|
|
11
16
|
text: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run_claude.d.ts","sourceRoot":"","sources":["../../src/tools/run_claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"run_claude.d.ts","sourceRoot":"","sources":["../../src/tools/run_claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,eAAe;;;;;;;;;;iBAqBZ,CAAC;AAEjB,wBAAsB,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,GAAG,OAAO,CAAC;IACnF,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC,CAgGD"}
|