overmind-mcp 2.4.2 → 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/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/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/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 +152 -26
- 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 +514 -213
- 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 +80 -11
- 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 +285 -58
- 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 +441 -57
- package/dist/services/KiloRunner.js.map +1 -1
- package/dist/services/OpenClawRunner.d.ts +7 -0
- package/dist/services/OpenClawRunner.d.ts.map +1 -1
- package/dist/services/OpenClawRunner.js +79 -11
- 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 +79 -11
- package/dist/services/OpenCodeRunner.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 +15 -9
- 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/manage_agents.d.ts +36 -18
- 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 +15 -16
- 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_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_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/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 +55 -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 -87
- package/dist/services/QwenRunner.js.map +0 -1
- package/dist/services/TraeRunner.d.ts +0 -19
- package/dist/services/TraeRunner.d.ts.map +0 -1
- package/dist/services/TraeRunner.js +0 -88
- 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
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* ═══════════════════════════════════════════════════════════════════════════════
|
|
4
|
+
* UNINSTALL SCRIPT — OverMind-MCP
|
|
5
|
+
* ═══════════════════════════════════════════════════════════════════════════════
|
|
6
|
+
* Désinstallation propre : supprime containers, volumes, images, config.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* overmind uninstall # interactif (recommandé)
|
|
10
|
+
* overmind uninstall --force # skip prompts,Tout supprime
|
|
11
|
+
* ═══════════════════════════════════════════════════════════════════════════════
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import { execSync } from 'child_process';
|
|
15
|
+
import { existsSync, rmSync } from 'fs';
|
|
16
|
+
import { join, dirname } from 'path';
|
|
17
|
+
import { fileURLToPath } from 'url';
|
|
18
|
+
import { createInterface } from 'readline';
|
|
19
|
+
|
|
20
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
21
|
+
const __dirname = dirname(__filename);
|
|
22
|
+
|
|
23
|
+
const INSTALL_DIR = join(process.env.HOME || process.env.USERPROFILE || process.env.HOMEPATH, '.overmind');
|
|
24
|
+
const FORCE = process.argv.includes('--force');
|
|
25
|
+
|
|
26
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
27
|
+
// UTILS
|
|
28
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
29
|
+
|
|
30
|
+
function p(prompt) {
|
|
31
|
+
return new Promise((resolve) => {
|
|
32
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
33
|
+
rl.question(prompt, (answer) => { rl.close(); resolve(answer); });
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
async function yesNo(question, def = false) {
|
|
38
|
+
const answer = await p(`${question} ${def ? '[Y/n]' : '[y/N]'}: `);
|
|
39
|
+
return answer.toLowerCase().startsWith('y');
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function log(msg) { console.log(msg); }
|
|
43
|
+
function section(title) {
|
|
44
|
+
console.log(`\n╔${'═'.repeat(68)}╗`);
|
|
45
|
+
console.log(`║ ${title.padEnd(66)} ║`);
|
|
46
|
+
console.log(`╚${'═'.repeat(68)}╝`);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function cmd(command, label) {
|
|
50
|
+
try {
|
|
51
|
+
execSync(command, { stdio: 'pipe' });
|
|
52
|
+
log(`✅ ${label}`);
|
|
53
|
+
return true;
|
|
54
|
+
} catch (e) {
|
|
55
|
+
const msg = e.message || '';
|
|
56
|
+
if (msg.includes('No such container') || msg.includes('no such container')) {
|
|
57
|
+
log(`⚠️ ${label} (déjà absent)`);
|
|
58
|
+
} else if (msg.includes('No such volume')) {
|
|
59
|
+
log(`⚠️ ${label} (volume déjà absent)`);
|
|
60
|
+
} else {
|
|
61
|
+
log(`❌ ${label} — ${msg.split('\n')[0]}`);
|
|
62
|
+
}
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
68
|
+
// DETECTION & LISTING
|
|
69
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
70
|
+
|
|
71
|
+
function listContainers() {
|
|
72
|
+
// ⚠️ CORRECTION CRITIQUE: Ne cibler que les containers OverMind, pas les containers personnels
|
|
73
|
+
// Les containers personnels comme "postgres-pgvector" ne doivent JAMAIS être supprimés
|
|
74
|
+
const overmindContainers = [
|
|
75
|
+
'overmind-postgres-pgvector', // Container créé par OverMind 2.2.0+
|
|
76
|
+
];
|
|
77
|
+
|
|
78
|
+
return overmindContainers.filter((containerName) => {
|
|
79
|
+
try {
|
|
80
|
+
execSync(`docker inspect ${containerName}`, { stdio: 'pipe' });
|
|
81
|
+
return true;
|
|
82
|
+
} catch { return false; }
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function listVolumes() {
|
|
87
|
+
// ⚠️ CORRECTION CRITIQUE: Ne cibler que les volumes OverMind, pas les volumes personnels
|
|
88
|
+
const overmindVolumes = [
|
|
89
|
+
'overmind_postgres_data',
|
|
90
|
+
];
|
|
91
|
+
|
|
92
|
+
return overmindVolumes.filter((volumeName) => {
|
|
93
|
+
try {
|
|
94
|
+
execSync(`docker volume inspect ${volumeName}`, { stdio: 'pipe' });
|
|
95
|
+
return true;
|
|
96
|
+
} catch { return false; }
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function listImages() {
|
|
101
|
+
const imgs = ['pgvector/pgvector:pg16'];
|
|
102
|
+
return imgs.filter((img) => {
|
|
103
|
+
try {
|
|
104
|
+
execSync(`docker image inspect ${img}`, { stdio: 'pipe' });
|
|
105
|
+
return true;
|
|
106
|
+
} catch { return false; }
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
111
|
+
// MAIN
|
|
112
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
113
|
+
|
|
114
|
+
async function main() {
|
|
115
|
+
console.log(`\n╔${'═'.repeat(68)}╗`);
|
|
116
|
+
console.log(`║ ║`);
|
|
117
|
+
console.log(`║ 🧹 OVERMIND-MCP — DÉSINSTALLATION PROPRE ║`);
|
|
118
|
+
console.log(`║ ║`);
|
|
119
|
+
console.log(`╚${'═'.repeat(68)}╝`);
|
|
120
|
+
|
|
121
|
+
// ⚠️ AVERTISSEMENT DE SÉCURITÉ
|
|
122
|
+
console.log('\n⚠️ SÉCURITÉ: Ce script ne supprime QUE les containers/volumes OverMind.');
|
|
123
|
+
console.log(' Vos containers personnels (comme postgres-pgvector) sont PROTÉGÉS.');
|
|
124
|
+
console.log(' Seuls les containers commençant par "overmind-" seront supprimés.\n');
|
|
125
|
+
|
|
126
|
+
// ── 1. Containers actifs ──────────────────────────────────────────────
|
|
127
|
+
const containers = listContainers();
|
|
128
|
+
const volumes = listVolumes();
|
|
129
|
+
const images = listImages();
|
|
130
|
+
const hasInstallDir = existsSync(INSTALL_DIR);
|
|
131
|
+
|
|
132
|
+
if (!containers.length && !volumes.length && !images.length && !hasInstallDir) {
|
|
133
|
+
log('\n✅ OverMind-MCP ne laisse aucune trace détectable.');
|
|
134
|
+
log(' Supprimez le package manuellement :\n npm uninstall -g overmind-mcp\n');
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
log('\n📋 Éléments OverMind détectés sur cette machine :\n');
|
|
139
|
+
|
|
140
|
+
if (containers.length) {
|
|
141
|
+
log(' Containers :');
|
|
142
|
+
containers.forEach((c) => log(` - ${c}`));
|
|
143
|
+
} else {
|
|
144
|
+
log(' Containers : aucun');
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
if (volumes.length) {
|
|
148
|
+
log(' Volumes Docker :');
|
|
149
|
+
volumes.forEach((v) => log(` - ${v}`));
|
|
150
|
+
} else {
|
|
151
|
+
log(' Volumes Docker : aucun');
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
if (images.length) {
|
|
155
|
+
log(' Images Docker (↺ réutilisables) :');
|
|
156
|
+
images.forEach((i) => log(` - ${i}`));
|
|
157
|
+
} else {
|
|
158
|
+
log(' Images Docker : aucune');
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (hasInstallDir) {
|
|
162
|
+
log(` Config ~/.overmind/ : présent`);
|
|
163
|
+
} else {
|
|
164
|
+
log(' Config ~/.overmind/ : absent');
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
if (FORCE) {
|
|
168
|
+
log('\n⚠️ Mode --force : suppression sans confirmation.\n');
|
|
169
|
+
} else {
|
|
170
|
+
log('\n⏳ Les données des volumes Docker seront DÉTRUITES.\n');
|
|
171
|
+
const confirm = await yesNo('Procéder à la désinstallation ?');
|
|
172
|
+
if (!confirm) { log('\n🛑 Annulé.'); return; }
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// ── 2. Stop & remove containers ───────────────────────────────────────
|
|
176
|
+
section('SUPPRESSION CONTENEURS');
|
|
177
|
+
for (const c of containers) {
|
|
178
|
+
cmd(`docker stop ${c}`, `Stop ${c}`);
|
|
179
|
+
cmd(`docker rm -f ${c}`, `Remove ${c}`);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// ── 3. Remove volumes ─────────────────────────────────────────────────
|
|
183
|
+
if (FORCE || await yesNo('\n🗑️ Supprimer les volumes Docker (DESTRUCTIF) ?')) {
|
|
184
|
+
section('SUPPRESSION VOLUMES');
|
|
185
|
+
for (const v of volumes) {
|
|
186
|
+
cmd(`docker volume rm ${v}`, `Remove volume ${v}`);
|
|
187
|
+
}
|
|
188
|
+
} else {
|
|
189
|
+
log('\n⚠️ Volumes conservés (données PostgreSQL intactes).');
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
// ── 4. Remove images ────────────────────────────────────────────────────
|
|
193
|
+
if (FORCE || await yesNo('\n🗑️ Supprimer les images OverMind Docker (~3-4 GB) ?')) {
|
|
194
|
+
section('SUPPRESSION IMAGES');
|
|
195
|
+
for (const img of images) {
|
|
196
|
+
cmd(`docker rmi ${img}`, `Remove image ${img}`);
|
|
197
|
+
}
|
|
198
|
+
} else {
|
|
199
|
+
log('\n⚠️ Images conservées.');
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
// ── 5. Remove ~/.overmind ──────────────────────────────────────────────
|
|
203
|
+
if (FORCE || await yesNo('\n📁 Supprimer ~/.overmind/ (config + .env avec credentials) ?')) {
|
|
204
|
+
section('SUPPRESSION CONFIG');
|
|
205
|
+
if (existsSync(INSTALL_DIR)) {
|
|
206
|
+
try {
|
|
207
|
+
rmSync(INSTALL_DIR, { recursive: true, force: true });
|
|
208
|
+
log(`✅ ~/.overmind/ supprimé`);
|
|
209
|
+
} catch (e) {
|
|
210
|
+
log(`❌ ~/.overmind/ : ${e.message.split('\n')[0]}`);
|
|
211
|
+
}
|
|
212
|
+
} else {
|
|
213
|
+
log('⚠️ ~/.overmind/ déjà absent');
|
|
214
|
+
}
|
|
215
|
+
} else {
|
|
216
|
+
log('\n⚠️ Config ~/.overmind/ conservée.');
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// ── Done ───────────────────────────────────────────────────────────────
|
|
220
|
+
section('DÉSINSTALLATION TERMINÉE');
|
|
221
|
+
console.log(`
|
|
222
|
+
✅ OverMind-MCP a été retiré proprement.
|
|
223
|
+
|
|
224
|
+
📋 Pour désinstaller complètement le package NPM :
|
|
225
|
+
npm uninstall -g overmind-mcp
|
|
226
|
+
|
|
227
|
+
💡 Si vous réinstallez plus tard :
|
|
228
|
+
npm install -g overmind-mcp
|
|
229
|
+
overmind-setup --full # (si vous voulez le Mode Avancé)
|
|
230
|
+
|
|
231
|
+
══════════════════════════════════════════════════════════════════════
|
|
232
|
+
`);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
main().catch((e) => {
|
|
236
|
+
console.error('\n❌ ERREUR FATALE:', e.message);
|
|
237
|
+
process.exit(1);
|
|
238
|
+
});
|
|
Binary file
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export interface RunAgentOptions {
|
|
2
|
-
prompt: string;
|
|
3
|
-
agentName?: string;
|
|
4
|
-
sessionId?: string;
|
|
5
|
-
autoResume?: boolean;
|
|
6
|
-
}
|
|
7
|
-
export interface RunAgentResult {
|
|
8
|
-
result: string;
|
|
9
|
-
sessionId?: string;
|
|
10
|
-
error?: string;
|
|
11
|
-
rawOutput?: string;
|
|
12
|
-
}
|
|
13
|
-
export declare class QwenRunner {
|
|
14
|
-
private config;
|
|
15
|
-
private timeoutMs;
|
|
16
|
-
constructor();
|
|
17
|
-
runAgent(options: RunAgentOptions): Promise<RunAgentResult>;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=QwenRunner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QwenRunner.d.ts","sourceRoot":"","sources":["../../src/services/QwenRunner.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAS;;IAOpB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;CAsFlE"}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import { spawn } from 'child_process';
|
|
4
|
-
import { CONFIG, resolveConfigPath } from '../lib/config.js';
|
|
5
|
-
import { getLastSessionId, saveSessionId } from '../lib/sessions.js';
|
|
6
|
-
export class QwenRunner {
|
|
7
|
-
config;
|
|
8
|
-
timeoutMs;
|
|
9
|
-
constructor() {
|
|
10
|
-
this.config = CONFIG.CLAUDE;
|
|
11
|
-
this.timeoutMs = CONFIG.TIMEOUT_MS || 30000;
|
|
12
|
-
}
|
|
13
|
-
async runAgent(options) {
|
|
14
|
-
const { prompt, agentName, autoResume } = options;
|
|
15
|
-
let { sessionId } = options;
|
|
16
|
-
const { PATHS } = this.config;
|
|
17
|
-
// --- Auto Resume ---
|
|
18
|
-
if (autoResume && agentName && !sessionId) {
|
|
19
|
-
const lastId = await getLastSessionId(agentName);
|
|
20
|
-
if (lastId) {
|
|
21
|
-
sessionId = lastId;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
let customTimeoutMs = this.timeoutMs;
|
|
25
|
-
// --- Isolation ---
|
|
26
|
-
if (agentName) {
|
|
27
|
-
try {
|
|
28
|
-
const agentSettingsPath = resolveConfigPath(path.join(path.dirname(PATHS.SETTINGS), `settings_${agentName}.json`));
|
|
29
|
-
if (fs.existsSync(agentSettingsPath)) {
|
|
30
|
-
const settings = JSON.parse(fs.readFileSync(agentSettingsPath, 'utf8'));
|
|
31
|
-
if (settings.env && settings.env.AGENT_TIMEOUT_MS) {
|
|
32
|
-
customTimeoutMs = parseInt(settings.env.AGENT_TIMEOUT_MS, 10) || customTimeoutMs;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
catch (_e) {
|
|
37
|
-
// silent
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
// qwen-code CLI: `qwen -p "prompt"` (non-interactive mode via stdin)
|
|
41
|
-
const argsSpawn = ['-p', prompt];
|
|
42
|
-
return new Promise((resolve) => {
|
|
43
|
-
const isWin = process.platform === 'win32';
|
|
44
|
-
// `qwen` binary from @qwen-code/qwen-code global install
|
|
45
|
-
const command = isWin ? 'qwen.cmd' : 'qwen';
|
|
46
|
-
const child = spawn(command, argsSpawn, {
|
|
47
|
-
cwd: process.cwd(),
|
|
48
|
-
shell: isWin,
|
|
49
|
-
windowsHide: true,
|
|
50
|
-
env: {
|
|
51
|
-
...process.env,
|
|
52
|
-
...(agentName ? { OVERMIND_AGENT_NAME: agentName } : {}),
|
|
53
|
-
},
|
|
54
|
-
});
|
|
55
|
-
let stdout = '';
|
|
56
|
-
let stderr = '';
|
|
57
|
-
if (child.stdout)
|
|
58
|
-
child.stdout.on('data', (d) => (stdout += d.toString()));
|
|
59
|
-
if (child.stderr)
|
|
60
|
-
child.stderr.on('data', (d) => (stderr += d.toString()));
|
|
61
|
-
const timeout = setTimeout(() => {
|
|
62
|
-
child.kill();
|
|
63
|
-
resolve({ result: '', error: 'TIMEOUT', rawOutput: stdout });
|
|
64
|
-
}, customTimeoutMs);
|
|
65
|
-
child.on('close', async (code) => {
|
|
66
|
-
clearTimeout(timeout);
|
|
67
|
-
if (code !== 0 && !stdout) {
|
|
68
|
-
return resolve({ result: '', error: `EXIT_CODE_${code}`, rawOutput: stderr });
|
|
69
|
-
}
|
|
70
|
-
if (agentName && sessionId) {
|
|
71
|
-
await saveSessionId(agentName, sessionId);
|
|
72
|
-
}
|
|
73
|
-
resolve({
|
|
74
|
-
result: stdout.trim(),
|
|
75
|
-
sessionId,
|
|
76
|
-
rawOutput: stdout,
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
child.on('error', (err) => {
|
|
80
|
-
resolve({ result: '', error: err.message, rawOutput: '' });
|
|
81
|
-
});
|
|
82
|
-
if (child.stdin)
|
|
83
|
-
child.stdin.end();
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
//# sourceMappingURL=QwenRunner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QwenRunner.js","sourceRoot":"","sources":["../../src/services/QwenRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export interface RunAgentOptions {
|
|
2
|
-
prompt: string;
|
|
3
|
-
agentName?: string;
|
|
4
|
-
sessionId?: string;
|
|
5
|
-
autoResume?: boolean;
|
|
6
|
-
}
|
|
7
|
-
export interface RunAgentResult {
|
|
8
|
-
result: string;
|
|
9
|
-
sessionId?: string;
|
|
10
|
-
error?: string;
|
|
11
|
-
rawOutput?: string;
|
|
12
|
-
}
|
|
13
|
-
export declare class TraeRunner {
|
|
14
|
-
private config;
|
|
15
|
-
private timeoutMs;
|
|
16
|
-
constructor();
|
|
17
|
-
runAgent(options: RunAgentOptions): Promise<RunAgentResult>;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=TraeRunner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TraeRunner.d.ts","sourceRoot":"","sources":["../../src/services/TraeRunner.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAS;;IAOpB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;CAsFlE"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import { spawn } from 'child_process';
|
|
4
|
-
import { CONFIG, resolveConfigPath } from '../lib/config.js';
|
|
5
|
-
import { getLastSessionId, saveSessionId } from '../lib/sessions.js';
|
|
6
|
-
export class TraeRunner {
|
|
7
|
-
config;
|
|
8
|
-
timeoutMs;
|
|
9
|
-
constructor() {
|
|
10
|
-
this.config = CONFIG.CLAUDE;
|
|
11
|
-
this.timeoutMs = CONFIG.TIMEOUT_MS || 60000; // Trae may need more time
|
|
12
|
-
}
|
|
13
|
-
async runAgent(options) {
|
|
14
|
-
const { prompt, agentName, autoResume } = options;
|
|
15
|
-
let { sessionId } = options;
|
|
16
|
-
const { PATHS } = this.config;
|
|
17
|
-
// --- Auto Resume ---
|
|
18
|
-
if (autoResume && agentName && !sessionId) {
|
|
19
|
-
const lastId = await getLastSessionId(agentName);
|
|
20
|
-
if (lastId) {
|
|
21
|
-
sessionId = lastId;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
let customTimeoutMs = this.timeoutMs;
|
|
25
|
-
// --- Isolation ---
|
|
26
|
-
if (agentName) {
|
|
27
|
-
try {
|
|
28
|
-
const agentSettingsPath = resolveConfigPath(path.join(path.dirname(PATHS.SETTINGS), `settings_${agentName}.json`));
|
|
29
|
-
if (fs.existsSync(agentSettingsPath)) {
|
|
30
|
-
const settings = JSON.parse(fs.readFileSync(agentSettingsPath, 'utf8'));
|
|
31
|
-
if (settings.env && settings.env.AGENT_TIMEOUT_MS) {
|
|
32
|
-
customTimeoutMs = parseInt(settings.env.AGENT_TIMEOUT_MS, 10) || customTimeoutMs;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
catch (_e) {
|
|
37
|
-
// silent
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
// Trae CLI: `trae solo "prompt"` for SOLO agentic mode
|
|
41
|
-
const argsSpawn = ['solo', '--headless', prompt];
|
|
42
|
-
if (sessionId)
|
|
43
|
-
argsSpawn.push('--session', sessionId);
|
|
44
|
-
return new Promise((resolve) => {
|
|
45
|
-
const isWin = process.platform === 'win32';
|
|
46
|
-
const command = isWin ? 'trae.exe' : 'trae';
|
|
47
|
-
const child = spawn(command, argsSpawn, {
|
|
48
|
-
cwd: process.cwd(),
|
|
49
|
-
shell: isWin,
|
|
50
|
-
windowsHide: true,
|
|
51
|
-
env: {
|
|
52
|
-
...process.env,
|
|
53
|
-
...(agentName ? { OVERMIND_AGENT_NAME: agentName } : {}),
|
|
54
|
-
},
|
|
55
|
-
});
|
|
56
|
-
let stdout = '';
|
|
57
|
-
let stderr = '';
|
|
58
|
-
if (child.stdout)
|
|
59
|
-
child.stdout.on('data', (d) => (stdout += d.toString()));
|
|
60
|
-
if (child.stderr)
|
|
61
|
-
child.stderr.on('data', (d) => (stderr += d.toString()));
|
|
62
|
-
const timeout = setTimeout(() => {
|
|
63
|
-
child.kill();
|
|
64
|
-
resolve({ result: '', error: 'TIMEOUT', rawOutput: stdout });
|
|
65
|
-
}, customTimeoutMs);
|
|
66
|
-
child.on('close', async (code) => {
|
|
67
|
-
clearTimeout(timeout);
|
|
68
|
-
if (code !== 0 && !stdout) {
|
|
69
|
-
return resolve({ result: '', error: `EXIT_CODE_${code}`, rawOutput: stderr });
|
|
70
|
-
}
|
|
71
|
-
if (agentName && sessionId) {
|
|
72
|
-
await saveSessionId(agentName, sessionId);
|
|
73
|
-
}
|
|
74
|
-
resolve({
|
|
75
|
-
result: stdout.trim(),
|
|
76
|
-
sessionId,
|
|
77
|
-
rawOutput: stdout,
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
child.on('error', (err) => {
|
|
81
|
-
resolve({ result: '', error: err.message, rawOutput: '' });
|
|
82
|
-
});
|
|
83
|
-
if (child.stdin)
|
|
84
|
-
child.stdin.end();
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=TraeRunner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TraeRunner.js","sourceRoot":"","sources":["../../src/services/TraeRunner.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/run_qwen.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export declare const runQwenSchema: z.ZodObject<{
|
|
3
|
-
prompt: z.ZodString;
|
|
4
|
-
sessionId: z.ZodOptional<z.ZodString>;
|
|
5
|
-
agentName: z.ZodOptional<z.ZodString>;
|
|
6
|
-
autoResume: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
7
|
-
}, z.core.$strip>;
|
|
8
|
-
export declare function runQwenAgent(args: z.infer<typeof runQwenSchema>): Promise<{
|
|
9
|
-
content: Array<{
|
|
10
|
-
type: 'text';
|
|
11
|
-
text: string;
|
|
12
|
-
}>;
|
|
13
|
-
isError?: boolean;
|
|
14
|
-
}>;
|
|
15
|
-
//# sourceMappingURL=run_qwen.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run_qwen.d.ts","sourceRoot":"","sources":["../../src/tools/run_qwen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,aAAa;;;;;iBAiBxB,CAAC;AAEH,wBAAsB,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GAAG,OAAO,CAAC;IAC/E,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,CA6CD"}
|
package/dist/tools/run_qwen.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { QwenRunner } from '../services/QwenRunner.js';
|
|
3
|
-
import { storeRun } from '../memory/MemoryFactory.js';
|
|
4
|
-
export const runQwenSchema = z.object({
|
|
5
|
-
prompt: z.string().describe("Le prompt à envoyer à l'agent Qwen Code"),
|
|
6
|
-
sessionId: z
|
|
7
|
-
.string()
|
|
8
|
-
.optional()
|
|
9
|
-
.describe('ID de session pour continuer une conversation (manuel)'),
|
|
10
|
-
agentName: z
|
|
11
|
-
.string()
|
|
12
|
-
.optional()
|
|
13
|
-
.describe("Nom de l'agent (pour logging/monitoring et persistance)"),
|
|
14
|
-
autoResume: z
|
|
15
|
-
.boolean()
|
|
16
|
-
.optional()
|
|
17
|
-
.default(false)
|
|
18
|
-
.describe('Si true (et agentName fourni), reprend automatiquement la dernière conversation de cet agent'),
|
|
19
|
-
});
|
|
20
|
-
export async function runQwenAgent(args) {
|
|
21
|
-
const runner = new QwenRunner();
|
|
22
|
-
const { prompt, agentName, autoResume, sessionId } = args;
|
|
23
|
-
const start = Date.now();
|
|
24
|
-
const result = await runner.runAgent({ prompt, agentName, autoResume, sessionId });
|
|
25
|
-
const durationMs = Date.now() - start;
|
|
26
|
-
// Auto-instrumentation
|
|
27
|
-
storeRun({
|
|
28
|
-
runner: 'qwen',
|
|
29
|
-
agentName,
|
|
30
|
-
prompt,
|
|
31
|
-
result: result.result,
|
|
32
|
-
error: result.error,
|
|
33
|
-
durationMs,
|
|
34
|
-
success: !result.error,
|
|
35
|
-
sessionId: result.sessionId,
|
|
36
|
-
});
|
|
37
|
-
if (result.error === 'INVALID_AGENT') {
|
|
38
|
-
return {
|
|
39
|
-
content: [
|
|
40
|
-
{
|
|
41
|
-
type: 'text',
|
|
42
|
-
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.`,
|
|
43
|
-
},
|
|
44
|
-
],
|
|
45
|
-
isError: true,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
if (result.error) {
|
|
49
|
-
return {
|
|
50
|
-
content: [{ type: 'text', text: `❌ Erreur lors de l'exécution Qwen Code: ${result.error}` }],
|
|
51
|
-
isError: true,
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
return {
|
|
55
|
-
content: [
|
|
56
|
-
{ type: 'text', text: result.result },
|
|
57
|
-
{ type: 'text', text: `RAW: ${result.rawOutput}` },
|
|
58
|
-
],
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=run_qwen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run_qwen.js","sourceRoot":"","sources":["../../src/tools/run_qwen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IACtE,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,wDAAwD,CAAC;IACrE,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,yDAAyD,CAAC;IACtE,UAAU,EAAE,CAAC;SACV,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,8FAA8F,CAC/F;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAmC;IAIpE,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAE1D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;IAEtC,uBAAuB;IACvB,QAAQ,CAAC;QACP,MAAM,EAAE,MAAM;QACd,SAAS;QACT,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU;QACV,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK;QACtB,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;QACrC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,gDAAgD,SAAS,sIAAsI;iBACtM;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,2CAA2C,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YAC5F,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE;YACrC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,MAAM,CAAC,SAAS,EAAE,EAAE;SACnD;KACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/run_trae.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export declare const runTraeSchema: z.ZodObject<{
|
|
3
|
-
prompt: z.ZodString;
|
|
4
|
-
sessionId: z.ZodOptional<z.ZodString>;
|
|
5
|
-
agentName: z.ZodOptional<z.ZodString>;
|
|
6
|
-
autoResume: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
7
|
-
}, z.core.$strip>;
|
|
8
|
-
export declare function runTraeAgent(args: z.infer<typeof runTraeSchema>): Promise<{
|
|
9
|
-
content: Array<{
|
|
10
|
-
type: 'text';
|
|
11
|
-
text: string;
|
|
12
|
-
}>;
|
|
13
|
-
isError?: boolean;
|
|
14
|
-
}>;
|
|
15
|
-
//# sourceMappingURL=run_trae.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run_trae.d.ts","sourceRoot":"","sources":["../../src/tools/run_trae.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,aAAa;;;;;iBAiBxB,CAAC;AAEH,wBAAsB,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GAAG,OAAO,CAAC;IAC/E,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,CAkDD"}
|
package/dist/tools/run_trae.js
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { TraeRunner } from '../services/TraeRunner.js';
|
|
3
|
-
import { storeRun } from '../memory/MemoryFactory.js';
|
|
4
|
-
export const runTraeSchema = z.object({
|
|
5
|
-
prompt: z.string().describe("Le prompt à envoyer à l'agent Trae (mode SOLO)"),
|
|
6
|
-
sessionId: z
|
|
7
|
-
.string()
|
|
8
|
-
.optional()
|
|
9
|
-
.describe('ID de session pour continuer une conversation (manuel)'),
|
|
10
|
-
agentName: z
|
|
11
|
-
.string()
|
|
12
|
-
.optional()
|
|
13
|
-
.describe("Nom de l'agent (pour logging/monitoring et persistance)"),
|
|
14
|
-
autoResume: z
|
|
15
|
-
.boolean()
|
|
16
|
-
.optional()
|
|
17
|
-
.default(false)
|
|
18
|
-
.describe('Si true (et agentName fourni), reprend automatiquement la dernière conversation de cet agent'),
|
|
19
|
-
});
|
|
20
|
-
export async function runTraeAgent(args) {
|
|
21
|
-
const runner = new TraeRunner();
|
|
22
|
-
const { prompt, agentName, autoResume, sessionId } = args;
|
|
23
|
-
const start = Date.now();
|
|
24
|
-
const result = await runner.runAgent({ prompt, agentName, autoResume, sessionId });
|
|
25
|
-
const durationMs = Date.now() - start;
|
|
26
|
-
// Auto-instrumentation
|
|
27
|
-
storeRun({
|
|
28
|
-
runner: 'trae',
|
|
29
|
-
agentName,
|
|
30
|
-
prompt,
|
|
31
|
-
result: result.result,
|
|
32
|
-
error: result.error,
|
|
33
|
-
durationMs,
|
|
34
|
-
success: !result.error,
|
|
35
|
-
sessionId: result.sessionId,
|
|
36
|
-
});
|
|
37
|
-
if (result.error === 'INVALID_AGENT') {
|
|
38
|
-
return {
|
|
39
|
-
content: [
|
|
40
|
-
{
|
|
41
|
-
type: 'text',
|
|
42
|
-
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.`,
|
|
43
|
-
},
|
|
44
|
-
],
|
|
45
|
-
isError: true,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
if (result.error) {
|
|
49
|
-
return {
|
|
50
|
-
content: [
|
|
51
|
-
{
|
|
52
|
-
type: 'text',
|
|
53
|
-
text: `❌ Erreur lors de l'exécution Trae: ${result.error}\n\n💡 **Note:** Trae requiert une installation locale (trae.ai/download). Vérifiez que le binaire \`trae\` est dans votre PATH.`,
|
|
54
|
-
},
|
|
55
|
-
],
|
|
56
|
-
isError: true,
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
return {
|
|
60
|
-
content: [
|
|
61
|
-
{ type: 'text', text: result.result },
|
|
62
|
-
{ type: 'text', text: `RAW: ${result.rawOutput}` },
|
|
63
|
-
],
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=run_trae.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run_trae.js","sourceRoot":"","sources":["../../src/tools/run_trae.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IAC7E,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,wDAAwD,CAAC;IACrE,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,yDAAyD,CAAC;IACtE,UAAU,EAAE,CAAC;SACV,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,8FAA8F,CAC/F;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAmC;IAIpE,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAE1D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;IAEtC,uBAAuB;IACvB,QAAQ,CAAC;QACP,MAAM,EAAE,MAAM;QACd,SAAS;QACT,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU;QACV,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK;QACtB,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;QACrC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,gDAAgD,SAAS,sIAAsI;iBACtM;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,sCAAsC,MAAM,CAAC,KAAK,kIAAkI;iBAC3L;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE;YACrC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,MAAM,CAAC,SAAS,EAAE,EAAE;SACnD;KACF,CAAC;AACJ,CAAC"}
|