overmind-mcp 2.4.2 → 2.5.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.
Files changed (93) hide show
  1. package/dist/bin/cli.js +0 -0
  2. package/dist/server.d.ts.map +1 -1
  3. package/dist/server.js +22 -0
  4. package/dist/server.js.map +1 -1
  5. package/dist/services/ClaudeRunner.d.ts.map +1 -1
  6. package/dist/services/ClaudeRunner.js +88 -16
  7. package/dist/services/ClaudeRunner.js.map +1 -1
  8. package/dist/services/ClineRunner.d.ts.map +1 -1
  9. package/dist/services/ClineRunner.js +18 -3
  10. package/dist/services/ClineRunner.js.map +1 -1
  11. package/dist/services/GeminiRunner.d.ts.map +1 -1
  12. package/dist/services/GeminiRunner.js +14 -1
  13. package/dist/services/GeminiRunner.js.map +1 -1
  14. package/dist/services/KiloRunner.d.ts.map +1 -1
  15. package/dist/services/KiloRunner.js +18 -3
  16. package/dist/services/KiloRunner.js.map +1 -1
  17. package/dist/services/OpenClawRunner.d.ts.map +1 -1
  18. package/dist/services/OpenClawRunner.js +18 -3
  19. package/dist/services/OpenClawRunner.js.map +1 -1
  20. package/dist/services/OpenCodeRunner.d.ts.map +1 -1
  21. package/dist/services/OpenCodeRunner.js +18 -3
  22. package/dist/services/OpenCodeRunner.js.map +1 -1
  23. package/dist/services/QwenRunner.d.ts.map +1 -1
  24. package/dist/services/QwenRunner.js +18 -3
  25. package/dist/services/QwenRunner.js.map +1 -1
  26. package/dist/services/TraeRunner.d.ts.map +1 -1
  27. package/dist/services/TraeRunner.js +18 -3
  28. package/dist/services/TraeRunner.js.map +1 -1
  29. package/dist/tools/agent_control.d.ts +2 -2
  30. package/dist/tools/create_agent.d.ts +2 -2
  31. package/dist/tools/manage_agents.d.ts +2 -2
  32. package/dist/tools/run_agent.d.ts +2 -2
  33. package/package.json +83 -84
  34. package/dist/lib/InstallHelper.d.ts +0 -14
  35. package/dist/lib/InstallHelper.d.ts.map +0 -1
  36. package/dist/lib/InstallHelper.js +0 -113
  37. package/dist/lib/InstallHelper.js.map +0 -1
  38. package/dist/lib/envUtils.d.ts +0 -10
  39. package/dist/lib/envUtils.d.ts.map +0 -1
  40. package/dist/lib/envUtils.js +0 -24
  41. package/dist/lib/envUtils.js.map +0 -1
  42. package/dist/lib/loadEnv.d.ts +0 -2
  43. package/dist/lib/loadEnv.d.ts.map +0 -1
  44. package/dist/lib/loadEnv.js +0 -26
  45. package/dist/lib/loadEnv.js.map +0 -1
  46. package/dist/lib/logger.d.ts +0 -8
  47. package/dist/lib/logger.d.ts.map +0 -1
  48. package/dist/lib/logger.js +0 -81
  49. package/dist/lib/logger.js.map +0 -1
  50. package/dist/lib/modelMapping.d.ts +0 -18
  51. package/dist/lib/modelMapping.d.ts.map +0 -1
  52. package/dist/lib/modelMapping.js +0 -90
  53. package/dist/lib/modelMapping.js.map +0 -1
  54. package/dist/lib/orchestration/dispatcher.d.ts +0 -32
  55. package/dist/lib/orchestration/dispatcher.d.ts.map +0 -1
  56. package/dist/lib/orchestration/dispatcher.js +0 -113
  57. package/dist/lib/orchestration/dispatcher.js.map +0 -1
  58. package/dist/lib/orchestration/swarm.d.ts +0 -75
  59. package/dist/lib/orchestration/swarm.d.ts.map +0 -1
  60. package/dist/lib/orchestration/swarm.js +0 -238
  61. package/dist/lib/orchestration/swarm.js.map +0 -1
  62. package/dist/lib/telemetry.d.ts +0 -21
  63. package/dist/lib/telemetry.d.ts.map +0 -1
  64. package/dist/lib/telemetry.js +0 -30
  65. package/dist/lib/telemetry.js.map +0 -1
  66. package/dist/services/NousHermesRunner.d.ts +0 -28
  67. package/dist/services/NousHermesRunner.d.ts.map +0 -1
  68. package/dist/services/NousHermesRunner.js +0 -460
  69. package/dist/services/NousHermesRunner.js.map +0 -1
  70. package/dist/services/QwenCliRunner.d.ts +0 -26
  71. package/dist/services/QwenCliRunner.d.ts.map +0 -1
  72. package/dist/services/QwenCliRunner.js +0 -155
  73. package/dist/services/QwenCliRunner.js.map +0 -1
  74. package/dist/tools/initialization_check.d.ts +0 -2
  75. package/dist/tools/initialization_check.d.ts.map +0 -1
  76. package/dist/tools/initialization_check.js +0 -23
  77. package/dist/tools/initialization_check.js.map +0 -1
  78. package/dist/tools/run_agent_cli.d.ts +0 -21
  79. package/dist/tools/run_agent_cli.d.ts.map +0 -1
  80. package/dist/tools/run_agent_cli.js +0 -129
  81. package/dist/tools/run_agent_cli.js.map +0 -1
  82. package/dist/tools/run_agents_parallel.d.ts +0 -34
  83. package/dist/tools/run_agents_parallel.d.ts.map +0 -1
  84. package/dist/tools/run_agents_parallel.js +0 -28
  85. package/dist/tools/run_agents_parallel.js.map +0 -1
  86. package/dist/tools/run_hermes.d.ts +0 -25
  87. package/dist/tools/run_hermes.d.ts.map +0 -1
  88. package/dist/tools/run_hermes.js +0 -93
  89. package/dist/tools/run_hermes.js.map +0 -1
  90. package/dist/tools/run_qwencli.d.ts +0 -24
  91. package/dist/tools/run_qwencli.d.ts.map +0 -1
  92. package/dist/tools/run_qwencli.js +0 -59
  93. package/dist/tools/run_qwencli.js.map +0 -1
@@ -1,460 +0,0 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import { spawn } from 'child_process';
4
- import { exec } from 'child_process';
5
- import { promisify } from 'util';
6
- import { CONFIG, resolveConfigPath } from '../lib/config.js';
7
- import { getLastSessionId, saveSessionId } from '../lib/sessions.js';
8
- import { interpolateEnvVars } from '../lib/envUtils.js';
9
- import { resolveKiloModel } from '../lib/modelMapping.js';
10
- import { withSpan } from '../lib/telemetry.js';
11
- import pino from 'pino';
12
- import { registerProcess, appendOutput, updateProcessStatus, } from '../lib/processRegistry.js';
13
- const execAsync = promisify(exec);
14
- const logger = pino({ name: 'NousHermesRunner' });
15
- /**
16
- * Find hermes binary across platforms (Windows, Linux, macOS)
17
- * Priority: HERMES_BIN_PATH env > PATH > platform-specific paths > pip show
18
- */
19
- async function findHermesBinary() {
20
- const isWin = process.platform === 'win32';
21
- // 1. Check environment variable first (allows users to override)
22
- if (process.env.HERMES_BIN_PATH) {
23
- if (fs.existsSync(process.env.HERMES_BIN_PATH)) {
24
- logger.info({ path: process.env.HERMES_BIN_PATH }, 'Using HERMES_BIN_PATH');
25
- return process.env.HERMES_BIN_PATH;
26
- }
27
- }
28
- // 2. Try to find via PATH
29
- try {
30
- const command = isWin ? 'where hermes' : 'which hermes';
31
- const { stdout } = await execAsync(command);
32
- const hermesPath = stdout.trim().split('\n')[0];
33
- if (hermesPath && fs.existsSync(hermesPath)) {
34
- logger.info({ path: hermesPath }, 'Found hermes in PATH');
35
- return hermesPath;
36
- }
37
- }
38
- catch {
39
- // Not found in PATH
40
- }
41
- // 3. Platform-specific paths
42
- const platformPaths = isWin
43
- ? [
44
- path.join(process.env.LOCALAPPDATA || '', 'Programs', 'Python', 'Python312', 'Scripts', 'hermes.exe'),
45
- path.join(process.env.APPDATA || '', 'Python', 'Python312', 'Scripts', 'hermes.exe'),
46
- path.join(process.env.LOCALAPPDATA || '', 'Programs', 'Python', 'Python311', 'Scripts', 'hermes.exe'),
47
- path.join(process.env.APPDATA || '', 'Python', 'Python311', 'Scripts', 'hermes.exe'),
48
- 'C:\\Python312\\Scripts\\hermes.exe',
49
- 'C:\\Python311\\Scripts\\hermes.exe',
50
- 'C:\\Program Files\\Hermes\\hermes.exe',
51
- ]
52
- : [
53
- path.join(process.env.HOME || '', '.local', 'bin', 'hermes'),
54
- path.join(process.env.HOME || '', 'miniconda3', 'bin', 'hermes'),
55
- path.join(process.env.HOME || '', 'anaconda3', 'bin', 'hermes'),
56
- '/usr/local/bin/hermes',
57
- '/usr/bin/hermes',
58
- '/opt/homebrew/bin/hermes',
59
- ];
60
- for (const p of platformPaths) {
61
- if (fs.existsSync(p)) {
62
- logger.info({ path: p }, 'Found hermes at platform path');
63
- return p;
64
- }
65
- }
66
- // 4. Try pip show to find installation
67
- try {
68
- const { stdout } = await execAsync('pip show hermes-agent 2>/dev/null || pip3 show hermes-agent');
69
- const match = stdout.match(/Location:\s*(.+)/);
70
- if (match) {
71
- const sitePackages = match[1].trim();
72
- const hermesPath = isWin
73
- ? path.join(sitePackages, 'Scripts', 'hermes.exe')
74
- : path.join(sitePackages, 'bin', 'hermes');
75
- if (fs.existsSync(hermesPath)) {
76
- logger.info({ path: hermesPath }, 'Found hermes via pip show');
77
- return hermesPath;
78
- }
79
- }
80
- }
81
- catch {
82
- // pip show failed
83
- }
84
- // 5. Fallback to 'hermes' and let spawn fail with proper error
85
- logger.warn('hermes binary not found, using "hermes" command');
86
- return 'hermes';
87
- }
88
- export class NousHermesRunner {
89
- timeoutMs;
90
- tempFiles = [];
91
- MAX_BUF = 10 * 1024 * 1024; // 10MB buffer limit
92
- constructor() {
93
- this.timeoutMs = CONFIG.TIMEOUT_MS || 900000; // 15 min default
94
- }
95
- cleanupTempFiles() {
96
- for (const tempFile of this.tempFiles) {
97
- try {
98
- if (fs.existsSync(tempFile)) {
99
- fs.unlinkSync(tempFile);
100
- logger.debug({ tempFile }, 'Cleaned up temp file');
101
- }
102
- }
103
- catch (err) {
104
- logger.warn({ tempFile, error: err }, 'Failed to cleanup temp file');
105
- }
106
- }
107
- this.tempFiles = [];
108
- }
109
- async runAgent(options) {
110
- return runAgentWrapper.call(this, options);
111
- }
112
- async runAgentInternal(options) {
113
- const { prompt, agentName, autoResume, silent } = options;
114
- let { sessionId } = options;
115
- // --- Auto Resume ---
116
- if (autoResume && agentName && !sessionId) {
117
- const lastId = await getLastSessionId(agentName, options.configPath, 'hermes');
118
- if (lastId) {
119
- sessionId = lastId;
120
- }
121
- }
122
- const agentCustomEnv = {
123
- ...process.env,
124
- PYTHONIOENCODING: 'utf-8',
125
- PYTHONUTF8: '1',
126
- PYTHONUNBUFFERED: '1',
127
- PYTHONLEGACYWINDOWSSTDIO: '1',
128
- TERM: 'emacs',
129
- PROMPT_TOOLKIT_NO_INTERACTIVE: '1',
130
- // Force non-interactive for prompt_toolkit
131
- ANSICON: '1',
132
- // Map OpenRouter key if needed
133
- OPENROUTER_API_KEY: process.env.OPENROUTER_API_KEY || process.env.OVERMIND_EMBEDDING_KEY,
134
- // Map NVIDIA NIM key
135
- NVIDIA_API_KEY: process.env.NVIDIA_API_KEY || process.env.NVAPI_KEY,
136
- NVIDIA_API_BASE: process.env.NVIDIA_API_BASE || 'https://integrate.api.nvidia.com/v1',
137
- ...(agentName ? { OVERMIND_AGENT_NAME: agentName } : {}),
138
- };
139
- // --- Isolation / Settings / Prompt ---
140
- const overmindHermesPath = path.resolve(process.cwd(), '.overmind', 'hermes', agentName ? `agent_${agentName}` : 'central');
141
- const overmindHermesSubPath = path.join(overmindHermesPath, '.hermes');
142
- if (!fs.existsSync(overmindHermesSubPath)) {
143
- fs.mkdirSync(overmindHermesSubPath, { recursive: true });
144
- }
145
- // On définit l'environnement pour Hermes
146
- // IMPORTANT: HERMES_HOME doit pointer vers le dossier contenant config.yaml
147
- agentCustomEnv.HERMES_HOME = overmindHermesSubPath;
148
- if (process.platform === 'win32') {
149
- agentCustomEnv.USERPROFILE = overmindHermesPath;
150
- }
151
- else {
152
- agentCustomEnv.HOME = overmindHermesPath;
153
- }
154
- let systemPrompt = '';
155
- if (agentName) {
156
- try {
157
- const settingsDir = path.dirname(CONFIG.CLAUDE.PATHS.SETTINGS);
158
- const agentSettingsPath = resolveConfigPath(path.join(settingsDir, `settings_${agentName}.json`), options.configPath);
159
- if (!fs.existsSync(agentSettingsPath)) {
160
- // Lister les agents disponibles pour aider au debugging
161
- let availableAgents = [];
162
- try {
163
- const files = fs.readdirSync(settingsDir);
164
- availableAgents = files
165
- .filter((f) => f.startsWith('settings_') && f.endsWith('.json'))
166
- .map((f) => f.replace('settings_', '').replace('.json', ''));
167
- }
168
- catch (e) {
169
- logger.warn({ settingsDir, error: e }, 'Error reading settings directory');
170
- }
171
- return {
172
- result: '',
173
- error: `INVALID_AGENT: Agent Hermes "${agentName}" non trouvé.
174
- Veuillez utiliser 'create_agent' au préalable.
175
- Fichier attendu: ${agentSettingsPath}
176
- ${availableAgents.length > 0 ? `Agents disponibles: ${availableAgents.join(', ')}` : 'Aucun agent disponible'}
177
- `
178
- .replace(/\s+/g, ' ')
179
- .trim(),
180
- };
181
- }
182
- const settings = JSON.parse(fs.readFileSync(agentSettingsPath, 'utf8'));
183
- if (!options.model && settings.model) {
184
- options.model = settings.model;
185
- }
186
- if (!options.model && settings.env?.ANTHROPIC_MODEL) {
187
- options.model = settings.env.ANTHROPIC_MODEL;
188
- }
189
- if (settings.env) {
190
- // Fusion intelligente : préserver les clés critiques (API keys)
191
- const criticalKeys = [
192
- 'OPENROUTER_API_KEY',
193
- 'NVIDIA_API_KEY',
194
- 'NVIDIA_API_BASE',
195
- 'OVERMIND_EMBEDDING_KEY',
196
- 'OPENAI_API_KEY',
197
- 'OPENAI_API_BASE',
198
- 'OPENAI_BASE_URL',
199
- 'MISTRAL_API_KEY',
200
- 'MISTRAL_API_KEY_2',
201
- 'MISTRAL_API_KEY_3',
202
- 'MISTRAL_API_KEY_4',
203
- 'MISTRAL_API_KEY_5',
204
- 'MISTRAL_API_KEY_6',
205
- 'MISTRAL_API_KEY_7',
206
- ];
207
- let envCopy = { ...settings.env };
208
- // --- ENV VARIABLE SUBSTITUTION ($VAR_NAME) ---
209
- envCopy = interpolateEnvVars(envCopy);
210
- for (const key of criticalKeys) {
211
- if (agentCustomEnv[key] && !envCopy[key]) {
212
- envCopy[key] = agentCustomEnv[key];
213
- }
214
- }
215
- Object.assign(agentCustomEnv, envCopy);
216
- }
217
- // --- Load System Prompt (agents/agentName.md) ---
218
- const agentPromptPath = resolveConfigPath(path.join(path.dirname(settingsDir), 'agents', `${agentName}.md`), options.configPath);
219
- if (fs.existsSync(agentPromptPath)) {
220
- systemPrompt = fs.readFileSync(agentPromptPath, 'utf8');
221
- }
222
- // --- MCP Config Translation (JSON -> YAML for Hermes) ---
223
- const agentMcpPath = resolveConfigPath(path.join(path.dirname(settingsDir), `.mcp.${agentName}.json`), options.configPath);
224
- if (fs.existsSync(agentMcpPath)) {
225
- try {
226
- const mcpConfig = JSON.parse(fs.readFileSync(agentMcpPath, 'utf8'));
227
- const hermesConfigDir = overmindHermesSubPath;
228
- if (!fs.existsSync(hermesConfigDir))
229
- fs.mkdirSync(hermesConfigDir, { recursive: true });
230
- const mcpJsonPath = path.join(hermesConfigDir, 'mcp.json');
231
- const configYamlPath = path.join(hermesConfigDir, 'config.yaml');
232
- // Helper pour convertir le format MCP JSON vers le format mcp.json Hermes (identique à Claude Desktop)
233
- fs.writeFileSync(mcpJsonPath, JSON.stringify(mcpConfig, null, 2), 'utf8');
234
- // Generer aussi config.yaml (format snake_case attendu par Hermes)
235
- let yamlContent = 'mcp_servers:\n';
236
- for (const [name, server] of Object.entries(mcpConfig.mcpServers || {})) {
237
- const s = server;
238
- yamlContent += ` ${name}:\n`;
239
- if (s.command)
240
- yamlContent += ` command: "${s.command}"\n`;
241
- if (s.args && Array.isArray(s.args)) {
242
- yamlContent += ` args:\n`;
243
- for (const arg of s.args) {
244
- yamlContent += ` - "${String(arg).replace(/"/g, '\\"')}"\n`;
245
- }
246
- }
247
- if (s.env && typeof s.env === 'object') {
248
- yamlContent += ` env:\n`;
249
- for (const [k, v] of Object.entries(s.env)) {
250
- yamlContent += ` ${k}: "${String(v).replace(/"/g, '\\"')}"\n`;
251
- }
252
- }
253
- if (s.url)
254
- yamlContent += ` url: "${s.url}"\n`;
255
- }
256
- fs.writeFileSync(configYamlPath, yamlContent, 'utf8');
257
- if (!silent)
258
- console.error(`[NousHermesRunner] 🛠️ Hermes configs (mcp.json & config.yaml) generated in ${hermesConfigDir}`);
259
- }
260
- catch (err) {
261
- logger.error({ error: err }, 'Error translating MCP config');
262
- }
263
- }
264
- }
265
- catch (e) {
266
- if (e instanceof Error && e.message?.includes('INVALID_AGENT'))
267
- throw e;
268
- logger.warn({ agentName, error: e }, 'Error processing agent settings');
269
- }
270
- }
271
- // --- CLI Arguments & Prompt Handling ---
272
- const finalPrompt = systemPrompt ? `${systemPrompt}\n\n[USER QUERY]:\n${prompt}` : prompt;
273
- // Tronquer si nécessaire pour éviter les limites Windows (8191)
274
- const MAX_PROMPT_LEN = 7000;
275
- let cliPrompt = finalPrompt;
276
- if (cliPrompt.length > MAX_PROMPT_LEN) {
277
- console.warn(`[NousHermesRunner] ⚠️ Prompt tronqué de ${cliPrompt.length} à ${MAX_PROMPT_LEN} chars`);
278
- cliPrompt = cliPrompt.substring(0, MAX_PROMPT_LEN);
279
- }
280
- // En version 0.11.0, on simplifie pour éviter les erreurs d'arguments
281
- const cleanArgs = ['chat', '-q', cliPrompt, '--source', 'tool', '-Q'];
282
- if (!silent)
283
- cleanArgs.push('-v');
284
- // --- Model & Provider selection ---
285
- const DEFAULT_MODEL = 'tencent/hy3-preview:free'; // Modèle OpenRouter gratuit
286
- const originalModel = options.model || DEFAULT_MODEL;
287
- const model = resolveKiloModel(originalModel);
288
- const isNvidiaModel = model.includes('deepseek') || model.includes('nvidia');
289
- const hasNvidiaKey = !!(agentCustomEnv.NVIDIA_API_KEY || agentCustomEnv.NVAPI_KEY);
290
- const lowModel = model.toLowerCase();
291
- const isOpenAIModel = lowModel.includes('gpt') ||
292
- lowModel.includes('o1') ||
293
- lowModel.includes('o3') ||
294
- lowModel.includes('minimax') ||
295
- lowModel.includes('glm');
296
- const hasOpenAIKey = !!agentCustomEnv.OPENAI_API_KEY;
297
- const isMistralModel = model.includes('mistral') || model.includes('codestral') || model.includes('devstral');
298
- const hasMistralKey = !!agentCustomEnv.MISTRAL_API_KEY;
299
- cleanArgs.push('--model', model);
300
- if (isOpenAIModel && hasOpenAIKey) {
301
- logger.info({ model, provider: 'openai' }, 'Using OpenAI provider');
302
- cleanArgs.push('--provider', 'openai');
303
- // Nettoyage des clés conflictuelles
304
- delete agentCustomEnv.OPENROUTER_API_KEY;
305
- delete agentCustomEnv.NVIDIA_API_KEY;
306
- delete agentCustomEnv.NVAPI_KEY;
307
- }
308
- else if (isMistralModel && hasMistralKey) {
309
- logger.info({ model, provider: 'mistral' }, 'Using Mistral provider');
310
- cleanArgs.push('--provider', 'mistral');
311
- // Nettoyage des clés conflictuelles
312
- delete agentCustomEnv.OPENROUTER_API_KEY;
313
- delete agentCustomEnv.NVIDIA_API_KEY;
314
- delete agentCustomEnv.NVAPI_KEY;
315
- delete agentCustomEnv.OPENAI_API_KEY;
316
- }
317
- else if (isNvidiaModel && hasNvidiaKey) {
318
- logger.info({ model, provider: 'nvidia' }, 'Using NVIDIA NIM provider');
319
- cleanArgs.push('--provider', 'nvidia');
320
- }
321
- else {
322
- // Fallback OpenRouter pour tout le reste ou si clé NIM manquante
323
- logger.info({ model, provider: 'openrouter' }, 'Using OpenRouter provider');
324
- cleanArgs.push('--provider', 'openrouter');
325
- }
326
- // --- Find Hermes Binary (cross-platform) ---
327
- const spawnCommand = await findHermesBinary();
328
- if (!silent) {
329
- logger.info({ command: spawnCommand, args: cleanArgs }, 'Starting Hermes Agent');
330
- }
331
- // Track temp files for MCP config
332
- const mcpJsonPath = path.join(overmindHermesSubPath, 'mcp.json');
333
- const configYamlPath = path.join(overmindHermesSubPath, 'config.yaml');
334
- this.tempFiles.push(mcpJsonPath, configYamlPath);
335
- return new Promise((resolve) => {
336
- let resolved = false;
337
- const safeResolve = (value) => {
338
- if (!resolved) {
339
- resolved = true;
340
- resolve(value);
341
- }
342
- };
343
- const child = spawn(spawnCommand, cleanArgs, {
344
- cwd: options.cwd || process.cwd(),
345
- shell: true, // TRUE: permet de résoudre via PATH et gère les wrappers Python/Scripts sur Windows
346
- windowsHide: true,
347
- env: agentCustomEnv,
348
- });
349
- if (child.pid) {
350
- void registerProcess(child.pid, { agentName: agentName || '', runner: 'hermes', configPath: options.configPath });
351
- }
352
- let stdout = '';
353
- let stderr = '';
354
- child.stdout?.on('data', (d) => {
355
- const chunk = d.toString();
356
- if (child.pid)
357
- void appendOutput(child.pid, chunk, options.configPath);
358
- if (stdout.length + chunk.length > this.MAX_BUF) {
359
- stdout = stdout.slice(-this.MAX_BUF);
360
- }
361
- stdout += chunk;
362
- if (!silent) {
363
- process.stderr.write(`[Hermes] ${chunk}`);
364
- }
365
- });
366
- child.stderr?.on('data', (d) => {
367
- const chunk = d.toString();
368
- if (stderr.length + chunk.length > this.MAX_BUF) {
369
- stderr = stderr.slice(-this.MAX_BUF);
370
- }
371
- stderr += chunk;
372
- if (!silent) {
373
- process.stderr.write(`[Hermes:ERR] ${chunk}`);
374
- }
375
- });
376
- const timeout = setTimeout(() => {
377
- child.kill();
378
- // Fallback to SIGKILL after 5 seconds if process still running
379
- setTimeout(() => {
380
- if (!child.killed) {
381
- child.kill('SIGKILL');
382
- }
383
- }, 5000);
384
- if (child.pid)
385
- void updateProcessStatus(child.pid, 'failed', null, options.configPath);
386
- safeResolve({
387
- result: stdout.trim(),
388
- error: 'TIMEOUT',
389
- rawOutput: stdout + '\n\n' + stderr,
390
- model,
391
- nickname: originalModel !== model ? originalModel : undefined,
392
- });
393
- }, this.timeoutMs);
394
- child.on('close', async (code) => {
395
- clearTimeout(timeout);
396
- if (child.pid)
397
- void updateProcessStatus(child.pid, code === 0 ? 'done' : 'failed', code, options.configPath);
398
- if (code !== 0 && !stdout) {
399
- return safeResolve({
400
- result: '',
401
- error: `EXIT_CODE_${code}`,
402
- rawOutput: stderr || stdout,
403
- model,
404
- nickname: originalModel !== model ? originalModel : undefined,
405
- });
406
- }
407
- safeResolve({
408
- result: stdout.trim(),
409
- sessionId: sessionId,
410
- rawOutput: stdout,
411
- model,
412
- nickname: originalModel !== model ? originalModel : undefined,
413
- });
414
- });
415
- child.on('error', (err) => {
416
- clearTimeout(timeout);
417
- if (child.pid)
418
- void updateProcessStatus(child.pid, 'failed', null, options.configPath);
419
- safeResolve({ result: '', error: `SPAWN_ERROR: ${err.message}`, rawOutput: '' });
420
- });
421
- if (child.stdin) {
422
- child.stdin.end();
423
- }
424
- });
425
- }
426
- }
427
- /**
428
- * Run agent with proper cleanup and telemetry
429
- */
430
- async function runAgentWrapper(options) {
431
- try {
432
- const result = await withSpan('hermes.runAgent', async (span) => {
433
- span.setAttribute('agentName', options.agentName || '');
434
- span.setAttribute('model', options.model || '');
435
- span.setAttribute('runner', 'hermes');
436
- return await this.runAgentInternal(options);
437
- }, {
438
- agentName: options.agentName || '',
439
- model: options.model || '',
440
- runner: 'hermes',
441
- });
442
- // Cleanup on success
443
- this.cleanupTempFiles();
444
- // Save session if needed
445
- if (options.agentName && result.sessionId) {
446
- await saveSessionId(options.agentName, result.sessionId, options.configPath, 'hermes');
447
- }
448
- return result;
449
- }
450
- catch (error) {
451
- // Cleanup on error
452
- this.cleanupTempFiles();
453
- logger.error({
454
- error: error instanceof Error ? error.message : String(error),
455
- agentName: options.agentName,
456
- }, 'Hermes runner failed');
457
- throw error;
458
- }
459
- }
460
- //# sourceMappingURL=NousHermesRunner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NousHermesRunner.js","sourceRoot":"","sources":["../../src/services/NousHermesRunner.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- export interface RunAgentOptions {
2
- prompt: string;
3
- agentName?: string;
4
- sessionId?: string;
5
- autoResume?: boolean;
6
- cwd?: string;
7
- configPath?: string;
8
- silent?: boolean;
9
- }
10
- export interface RunAgentResult {
11
- result: string;
12
- sessionId?: string;
13
- error?: string;
14
- rawOutput?: string;
15
- }
16
- export declare class QwenCLIRunner {
17
- private config;
18
- private timeoutMs;
19
- private tempFiles;
20
- private MAX_BUF;
21
- constructor();
22
- private cleanupTempFiles;
23
- runAgent(options: RunAgentOptions): Promise<RunAgentResult>;
24
- private runAgentInternal;
25
- }
26
- //# sourceMappingURL=QwenCliRunner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QwenCliRunner.d.ts","sourceRoot":"","sources":["../../src/services/QwenCliRunner.ts"],"names":[],"mappings":"AAgBA,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;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;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,aAAa;IACxB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,OAAO,CAAoB;;IAOnC,OAAO,CAAC,gBAAgB;IAclB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;YAgBnD,gBAAgB;CAuH/B"}