overmind-mcp 2.5.0 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/.mcp.json.example +21 -0
  2. package/README.md +107 -80
  3. package/assets/overmind.png +0 -0
  4. package/bin/.gitkeep +0 -0
  5. package/bin/README.md +34 -0
  6. package/bin/install-overmind-unix.sh +412 -0
  7. package/bin/install-overmind-windows.bat +407 -0
  8. package/dist/bin/cli.js +438 -7
  9. package/dist/bin/cli.js.map +1 -1
  10. package/dist/index.d.ts +2 -2
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +3 -2
  13. package/dist/index.js.map +1 -1
  14. package/dist/lib/InstallHelper.d.ts +14 -0
  15. package/dist/lib/InstallHelper.d.ts.map +1 -0
  16. package/dist/lib/InstallHelper.js +115 -0
  17. package/dist/lib/InstallHelper.js.map +1 -0
  18. package/dist/lib/config.d.ts +31 -1
  19. package/dist/lib/config.d.ts.map +1 -1
  20. package/dist/lib/config.js +19 -27
  21. package/dist/lib/config.js.map +1 -1
  22. package/dist/lib/envUtils.d.ts +10 -0
  23. package/dist/lib/envUtils.d.ts.map +1 -0
  24. package/dist/lib/envUtils.js +24 -0
  25. package/dist/lib/envUtils.js.map +1 -0
  26. package/dist/lib/loadEnv.d.ts +2 -0
  27. package/dist/lib/loadEnv.d.ts.map +1 -0
  28. package/dist/lib/loadEnv.js +26 -0
  29. package/dist/lib/loadEnv.js.map +1 -0
  30. package/dist/lib/logger.d.ts +8 -0
  31. package/dist/lib/logger.d.ts.map +1 -0
  32. package/dist/lib/logger.js +81 -0
  33. package/dist/lib/logger.js.map +1 -0
  34. package/dist/lib/modelMapping.d.ts +18 -0
  35. package/dist/lib/modelMapping.d.ts.map +1 -0
  36. package/dist/lib/modelMapping.js +90 -0
  37. package/dist/lib/modelMapping.js.map +1 -0
  38. package/dist/lib/orchestration/dispatcher.d.ts +32 -0
  39. package/dist/lib/orchestration/dispatcher.d.ts.map +1 -0
  40. package/dist/lib/orchestration/dispatcher.js +113 -0
  41. package/dist/lib/orchestration/dispatcher.js.map +1 -0
  42. package/dist/lib/orchestration/swarm.d.ts +75 -0
  43. package/dist/lib/orchestration/swarm.d.ts.map +1 -0
  44. package/dist/lib/orchestration/swarm.js +239 -0
  45. package/dist/lib/orchestration/swarm.js.map +1 -0
  46. package/dist/lib/processRegistry.d.ts +10 -0
  47. package/dist/lib/processRegistry.d.ts.map +1 -1
  48. package/dist/lib/processRegistry.js +85 -29
  49. package/dist/lib/processRegistry.js.map +1 -1
  50. package/dist/lib/sessions.d.ts +3 -2
  51. package/dist/lib/sessions.d.ts.map +1 -1
  52. package/dist/lib/sessions.js +94 -25
  53. package/dist/lib/sessions.js.map +1 -1
  54. package/dist/lib/telemetry.d.ts +21 -0
  55. package/dist/lib/telemetry.d.ts.map +1 -0
  56. package/dist/lib/telemetry.js +30 -0
  57. package/dist/lib/telemetry.js.map +1 -0
  58. package/dist/memory/MemoryFactory.d.ts +15 -1
  59. package/dist/memory/MemoryFactory.d.ts.map +1 -1
  60. package/dist/memory/MemoryFactory.js +53 -3
  61. package/dist/memory/MemoryFactory.js.map +1 -1
  62. package/dist/memory/PostgresMemoryProvider.d.ts +7 -0
  63. package/dist/memory/PostgresMemoryProvider.d.ts.map +1 -1
  64. package/dist/memory/PostgresMemoryProvider.js +180 -105
  65. package/dist/memory/PostgresMemoryProvider.js.map +1 -1
  66. package/dist/server.d.ts +41 -0
  67. package/dist/server.d.ts.map +1 -1
  68. package/dist/server.js +145 -41
  69. package/dist/server.js.map +1 -1
  70. package/dist/services/AgentManager.d.ts.map +1 -1
  71. package/dist/services/AgentManager.js +67 -11
  72. package/dist/services/AgentManager.js.map +1 -1
  73. package/dist/services/ClaudeRunner.d.ts +20 -0
  74. package/dist/services/ClaudeRunner.d.ts.map +1 -1
  75. package/dist/services/ClaudeRunner.js +626 -272
  76. package/dist/services/ClaudeRunner.js.map +1 -1
  77. package/dist/services/ClineRunner.d.ts +7 -0
  78. package/dist/services/ClineRunner.d.ts.map +1 -1
  79. package/dist/services/ClineRunner.js +76 -22
  80. package/dist/services/ClineRunner.js.map +1 -1
  81. package/dist/services/GeminiRunner.d.ts +6 -0
  82. package/dist/services/GeminiRunner.d.ts.map +1 -1
  83. package/dist/services/GeminiRunner.js +283 -69
  84. package/dist/services/GeminiRunner.js.map +1 -1
  85. package/dist/services/KiloRunner.d.ts +12 -0
  86. package/dist/services/KiloRunner.d.ts.map +1 -1
  87. package/dist/services/KiloRunner.js +439 -70
  88. package/dist/services/KiloRunner.js.map +1 -1
  89. package/dist/services/NousHermesRunner.d.ts +35 -0
  90. package/dist/services/NousHermesRunner.d.ts.map +1 -0
  91. package/dist/services/NousHermesRunner.js +535 -0
  92. package/dist/services/NousHermesRunner.js.map +1 -0
  93. package/dist/services/OpenClawRunner.d.ts +7 -0
  94. package/dist/services/OpenClawRunner.d.ts.map +1 -1
  95. package/dist/services/OpenClawRunner.js +75 -22
  96. package/dist/services/OpenClawRunner.js.map +1 -1
  97. package/dist/services/OpenCodeRunner.d.ts +7 -0
  98. package/dist/services/OpenCodeRunner.d.ts.map +1 -1
  99. package/dist/services/OpenCodeRunner.js +75 -22
  100. package/dist/services/OpenCodeRunner.js.map +1 -1
  101. package/dist/services/{TraeRunner.d.ts → QwenCliRunner.d.ts} +9 -2
  102. package/dist/services/QwenCliRunner.d.ts.map +1 -0
  103. package/dist/services/QwenCliRunner.js +155 -0
  104. package/dist/services/QwenCliRunner.js.map +1 -0
  105. package/dist/tools/agent_control.d.ts +2 -2
  106. package/dist/tools/agent_control.d.ts.map +1 -1
  107. package/dist/tools/agent_control.js +79 -50
  108. package/dist/tools/agent_control.js.map +1 -1
  109. package/dist/tools/config_example.d.ts +7 -4
  110. package/dist/tools/config_example.d.ts.map +1 -1
  111. package/dist/tools/config_example.js +191 -86
  112. package/dist/tools/config_example.js.map +1 -1
  113. package/dist/tools/create_agent.d.ts +13 -7
  114. package/dist/tools/create_agent.d.ts.map +1 -1
  115. package/dist/tools/create_agent.js +8 -9
  116. package/dist/tools/create_agent.js.map +1 -1
  117. package/dist/tools/get_agent_configs.d.ts +10 -4
  118. package/dist/tools/get_agent_configs.d.ts.map +1 -1
  119. package/dist/tools/get_agent_configs.js.map +1 -1
  120. package/dist/tools/initialization_check.d.ts +2 -0
  121. package/dist/tools/initialization_check.d.ts.map +1 -0
  122. package/dist/tools/initialization_check.js +23 -0
  123. package/dist/tools/initialization_check.js.map +1 -0
  124. package/dist/tools/manage_agents.d.ts +34 -16
  125. package/dist/tools/manage_agents.d.ts.map +1 -1
  126. package/dist/tools/manage_agents.js +2 -2
  127. package/dist/tools/manage_agents.js.map +1 -1
  128. package/dist/tools/manage_prompts.d.ts +13 -8
  129. package/dist/tools/manage_prompts.d.ts.map +1 -1
  130. package/dist/tools/manage_prompts.js.map +1 -1
  131. package/dist/tools/memory_runs.d.ts +3 -4
  132. package/dist/tools/memory_runs.d.ts.map +1 -1
  133. package/dist/tools/memory_runs.js.map +1 -1
  134. package/dist/tools/memory_search.d.ts +3 -4
  135. package/dist/tools/memory_search.d.ts.map +1 -1
  136. package/dist/tools/memory_search.js.map +1 -1
  137. package/dist/tools/memory_store.d.ts +10 -4
  138. package/dist/tools/memory_store.d.ts.map +1 -1
  139. package/dist/tools/memory_store.js.map +1 -1
  140. package/dist/tools/run_agent.d.ts +14 -14
  141. package/dist/tools/run_agent.d.ts.map +1 -1
  142. package/dist/tools/run_agent.js +135 -156
  143. package/dist/tools/run_agent.js.map +1 -1
  144. package/dist/tools/run_agent_cli.d.ts +21 -0
  145. package/dist/tools/run_agent_cli.d.ts.map +1 -0
  146. package/dist/tools/run_agent_cli.js +137 -0
  147. package/dist/tools/run_agent_cli.js.map +1 -0
  148. package/dist/tools/run_agents_parallel.d.ts +35 -0
  149. package/dist/tools/run_agents_parallel.d.ts.map +1 -0
  150. package/dist/tools/run_agents_parallel.js +28 -0
  151. package/dist/tools/run_agents_parallel.js.map +1 -0
  152. package/dist/tools/run_claude.d.ts +9 -3
  153. package/dist/tools/run_claude.d.ts.map +1 -1
  154. package/dist/tools/run_claude.js +67 -41
  155. package/dist/tools/run_claude.js.map +1 -1
  156. package/dist/tools/run_cline.d.ts +13 -4
  157. package/dist/tools/run_cline.d.ts.map +1 -1
  158. package/dist/tools/run_cline.js +55 -43
  159. package/dist/tools/run_cline.js.map +1 -1
  160. package/dist/tools/run_gemini.d.ts +13 -4
  161. package/dist/tools/run_gemini.d.ts.map +1 -1
  162. package/dist/tools/run_gemini.js +53 -33
  163. package/dist/tools/run_gemini.js.map +1 -1
  164. package/dist/tools/run_hermes.d.ts +25 -0
  165. package/dist/tools/run_hermes.d.ts.map +1 -0
  166. package/dist/tools/run_hermes.js +93 -0
  167. package/dist/tools/run_hermes.js.map +1 -0
  168. package/dist/tools/run_kilo.d.ts +17 -7
  169. package/dist/tools/run_kilo.d.ts.map +1 -1
  170. package/dist/tools/run_kilo.js +68 -41
  171. package/dist/tools/run_kilo.js.map +1 -1
  172. package/dist/tools/run_openclaw.d.ts +13 -4
  173. package/dist/tools/run_openclaw.d.ts.map +1 -1
  174. package/dist/tools/run_openclaw.js +52 -44
  175. package/dist/tools/run_openclaw.js.map +1 -1
  176. package/dist/tools/run_opencode.d.ts +13 -4
  177. package/dist/tools/run_opencode.d.ts.map +1 -1
  178. package/dist/tools/run_opencode.js +52 -39
  179. package/dist/tools/run_opencode.js.map +1 -1
  180. package/dist/tools/run_qwencli.d.ts +24 -0
  181. package/dist/tools/run_qwencli.d.ts.map +1 -0
  182. package/dist/tools/run_qwencli.js +59 -0
  183. package/dist/tools/run_qwencli.js.map +1 -0
  184. package/docs/README.md +128 -0
  185. package/docs/agent_control.md +656 -0
  186. package/docs/index.html +493 -0
  187. package/docs/library.html +239 -0
  188. package/docs/prompt.html +1212 -0
  189. package/docs/script.js +428 -0
  190. package/docs/styles.css +2816 -0
  191. package/package.json +54 -25
  192. package/scripts/auto-changelog.mjs +132 -0
  193. package/scripts/auto-install.mjs +322 -0
  194. package/scripts/install-dependencies.mjs +462 -0
  195. package/scripts/postgres-manager.mjs +219 -0
  196. package/scripts/postinstall.mjs +538 -0
  197. package/scripts/setup-overmind-db.mjs +199 -0
  198. package/scripts/setup-windows.js +266 -0
  199. package/scripts/setup.mjs +397 -0
  200. package/scripts/test-installation.mjs +158 -0
  201. package/scripts/uninstall.mjs +238 -0
  202. package/assets/overmind_mcp_pro_banner_v3.png +0 -0
  203. package/dist/services/QwenRunner.d.ts +0 -19
  204. package/dist/services/QwenRunner.d.ts.map +0 -1
  205. package/dist/services/QwenRunner.js +0 -102
  206. package/dist/services/QwenRunner.js.map +0 -1
  207. package/dist/services/TraeRunner.d.ts.map +0 -1
  208. package/dist/services/TraeRunner.js +0 -103
  209. package/dist/services/TraeRunner.js.map +0 -1
  210. package/dist/tools/run_qwen.d.ts +0 -15
  211. package/dist/tools/run_qwen.d.ts.map +0 -1
  212. package/dist/tools/run_qwen.js +0 -61
  213. package/dist/tools/run_qwen.js.map +0 -1
  214. package/dist/tools/run_trae.d.ts +0 -15
  215. package/dist/tools/run_trae.d.ts.map +0 -1
  216. package/dist/tools/run_trae.js +0 -66
  217. package/dist/tools/run_trae.js.map +0 -1
  218. package/dist/tools/shell_execute.d.ts +0 -10
  219. package/dist/tools/shell_execute.d.ts.map +0 -1
  220. package/dist/tools/shell_execute.js +0 -24
  221. package/dist/tools/shell_execute.js.map +0 -1
  222. package/dist/tools/test_agent_control.d.ts +0 -2
  223. package/dist/tools/test_agent_control.d.ts.map +0 -1
  224. package/dist/tools/test_agent_control.js +0 -92
  225. package/dist/tools/test_agent_control.js.map +0 -1
@@ -0,0 +1,535 @@
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
+ // Sur Windows, child.kill() ne tue que le wrapper cmd.exe — le child réel devient
16
+ // orphelin. On utilise taskkill /F /T pour propager au sous-arbre complet.
17
+ const killProcessTree = (child) => {
18
+ if (!child || child.exitCode !== null)
19
+ return;
20
+ if (process.platform === 'win32' && child.pid) {
21
+ exec(`taskkill /F /T /PID ${child.pid}`, () => {
22
+ // taskkill peut échouer si déjà mort — ignoré
23
+ });
24
+ }
25
+ else {
26
+ try {
27
+ child.kill('SIGTERM');
28
+ }
29
+ catch {
30
+ // Ignored
31
+ }
32
+ setTimeout(() => {
33
+ if (child.exitCode === null && !child.killed) {
34
+ try {
35
+ child.kill('SIGKILL');
36
+ }
37
+ catch {
38
+ // Ignored
39
+ }
40
+ }
41
+ }, 5000);
42
+ }
43
+ };
44
+ /**
45
+ * Find hermes binary across platforms (Windows, Linux, macOS)
46
+ * Priority: HERMES_BIN_PATH env > PATH > platform-specific paths > pip show
47
+ */
48
+ async function findHermesBinary() {
49
+ const isWin = process.platform === 'win32';
50
+ // 1. Check environment variable first (allows users to override)
51
+ if (process.env.HERMES_BIN_PATH) {
52
+ if (fs.existsSync(process.env.HERMES_BIN_PATH)) {
53
+ logger.info({ path: process.env.HERMES_BIN_PATH }, 'Using HERMES_BIN_PATH');
54
+ return process.env.HERMES_BIN_PATH;
55
+ }
56
+ }
57
+ // 2. Try to find via PATH
58
+ try {
59
+ const command = isWin ? 'where hermes' : 'which hermes';
60
+ const { stdout } = await execAsync(command);
61
+ const hermesPath = stdout.trim().split('\n')[0];
62
+ if (hermesPath && fs.existsSync(hermesPath)) {
63
+ logger.info({ path: hermesPath }, 'Found hermes in PATH');
64
+ return hermesPath;
65
+ }
66
+ }
67
+ catch {
68
+ // Not found in PATH
69
+ }
70
+ // 3. Platform-specific paths
71
+ const platformPaths = isWin
72
+ ? [
73
+ // Officiel installer Windows (install.ps1) — chemin natif
74
+ path.join(process.env.LOCALAPPDATA || '', 'hermes', 'bin', 'hermes.exe'),
75
+ path.join(process.env.LOCALAPPDATA || '', 'hermes', 'hermes.exe'),
76
+ // Fallback installations via pip (legacy)
77
+ path.join(process.env.LOCALAPPDATA || '', 'Programs', 'Python', 'Python312', 'Scripts', 'hermes.exe'),
78
+ path.join(process.env.APPDATA || '', 'Python', 'Python312', 'Scripts', 'hermes.exe'),
79
+ path.join(process.env.LOCALAPPDATA || '', 'Programs', 'Python', 'Python311', 'Scripts', 'hermes.exe'),
80
+ path.join(process.env.APPDATA || '', 'Python', 'Python311', 'Scripts', 'hermes.exe'),
81
+ 'C:\\Python312\\Scripts\\hermes.exe',
82
+ 'C:\\Python311\\Scripts\\hermes.exe',
83
+ 'C:\\Program Files\\Hermes\\hermes.exe',
84
+ ]
85
+ : [
86
+ path.join(process.env.HOME || '', '.local', 'bin', 'hermes'),
87
+ path.join(process.env.HOME || '', 'miniconda3', 'bin', 'hermes'),
88
+ path.join(process.env.HOME || '', 'anaconda3', 'bin', 'hermes'),
89
+ '/usr/local/bin/hermes',
90
+ '/usr/bin/hermes',
91
+ '/opt/homebrew/bin/hermes',
92
+ ];
93
+ for (const p of platformPaths) {
94
+ if (fs.existsSync(p)) {
95
+ logger.info({ path: p }, 'Found hermes at platform path');
96
+ return p;
97
+ }
98
+ }
99
+ // 4. Try pip show to find installation
100
+ try {
101
+ const { stdout } = await execAsync('pip show hermes-agent 2>/dev/null || pip3 show hermes-agent');
102
+ const match = stdout.match(/Location:\s*(.+)/);
103
+ if (match) {
104
+ const sitePackages = match[1].trim();
105
+ const hermesPath = isWin
106
+ ? path.join(sitePackages, 'Scripts', 'hermes.exe')
107
+ : path.join(sitePackages, 'bin', 'hermes');
108
+ if (fs.existsSync(hermesPath)) {
109
+ logger.info({ path: hermesPath }, 'Found hermes via pip show');
110
+ return hermesPath;
111
+ }
112
+ }
113
+ }
114
+ catch {
115
+ // pip show failed
116
+ }
117
+ // 5. Fallback to 'hermes' and let spawn fail with proper error
118
+ logger.warn('hermes binary not found, using "hermes" command');
119
+ return 'hermes';
120
+ }
121
+ /**
122
+ * NousHermesRunner — Runner polyglote pour Hermes Agent.
123
+ * • Providers : OpenAI, MiniMax, Zhipu/GLM, Mistral, NVIDIA NIM, OpenRouter (fallback)
124
+ * • Lit settings/agents/.mcp depuis .claude/ comme les autres runners
125
+ * • Interpolation $VAR et ${VAR} sur tout settings + mcp config (via envUtils)
126
+ * • Isolation : .overmind/hermes/agent_<name>/ (HERMES_HOME)
127
+ */
128
+ export class NousHermesRunner {
129
+ timeoutMs;
130
+ tempFiles = [];
131
+ MAX_BUF = 10 * 1024 * 1024; // 10MB buffer limit
132
+ constructor() {
133
+ this.timeoutMs = CONFIG.TIMEOUT_MS || 900000; // 15 min default
134
+ }
135
+ cleanupTempFiles() {
136
+ for (const tempFile of this.tempFiles) {
137
+ try {
138
+ if (fs.existsSync(tempFile)) {
139
+ fs.unlinkSync(tempFile);
140
+ logger.debug({ tempFile }, 'Cleaned up temp file');
141
+ }
142
+ }
143
+ catch (err) {
144
+ logger.warn({ tempFile, error: err }, 'Failed to cleanup temp file');
145
+ }
146
+ }
147
+ this.tempFiles = [];
148
+ }
149
+ async runAgent(options) {
150
+ return runAgentWrapper.call(this, options);
151
+ }
152
+ async runAgentInternal(options) {
153
+ const { prompt, agentName, autoResume, silent } = options;
154
+ let { sessionId } = options;
155
+ // --- Auto Resume ---
156
+ if (autoResume && agentName && !sessionId) {
157
+ const lastId = await getLastSessionId(agentName, options.configPath, 'hermes');
158
+ if (lastId) {
159
+ sessionId = lastId;
160
+ }
161
+ }
162
+ const agentCustomEnv = {
163
+ ...process.env,
164
+ PYTHONIOENCODING: 'utf-8',
165
+ PYTHONUTF8: '1',
166
+ PYTHONUNBUFFERED: '1',
167
+ PYTHONLEGACYWINDOWSSTDIO: '1',
168
+ TERM: 'emacs',
169
+ PROMPT_TOOLKIT_NO_INTERACTIVE: '1',
170
+ // Force non-interactive for prompt_toolkit
171
+ ANSICON: '1',
172
+ // Map OpenRouter key if needed
173
+ OPENROUTER_API_KEY: process.env.OPENROUTER_API_KEY || process.env.OVERMIND_EMBEDDING_KEY,
174
+ // Map NVIDIA NIM key
175
+ NVIDIA_API_KEY: process.env.NVIDIA_API_KEY || process.env.NVAPI_KEY,
176
+ NVIDIA_API_BASE: process.env.NVIDIA_API_BASE || 'https://integrate.api.nvidia.com/v1',
177
+ ...(agentName ? { OVERMIND_AGENT_NAME: agentName } : {}),
178
+ };
179
+ // --- Isolation / Settings / Prompt ---
180
+ const overmindHermesPath = path.resolve(process.cwd(), '.overmind', 'hermes', agentName ? `agent_${agentName}` : 'central');
181
+ const overmindHermesSubPath = path.join(overmindHermesPath, '.hermes');
182
+ if (!fs.existsSync(overmindHermesSubPath)) {
183
+ fs.mkdirSync(overmindHermesSubPath, { recursive: true });
184
+ }
185
+ // On définit l'environnement pour Hermes
186
+ // IMPORTANT: HERMES_HOME doit pointer vers le dossier contenant config.yaml
187
+ agentCustomEnv.HERMES_HOME = overmindHermesSubPath;
188
+ if (process.platform === 'win32') {
189
+ agentCustomEnv.USERPROFILE = overmindHermesPath;
190
+ }
191
+ else {
192
+ agentCustomEnv.HOME = overmindHermesPath;
193
+ }
194
+ let systemPrompt = '';
195
+ if (agentName) {
196
+ try {
197
+ const settingsDir = path.dirname(CONFIG.CLAUDE.PATHS.SETTINGS);
198
+ const agentSettingsPath = resolveConfigPath(path.join(settingsDir, `settings_${agentName}.json`), options.configPath);
199
+ if (!fs.existsSync(agentSettingsPath)) {
200
+ // Lister les agents disponibles pour aider au debugging
201
+ let availableAgents = [];
202
+ try {
203
+ const files = fs.readdirSync(settingsDir);
204
+ availableAgents = files
205
+ .filter((f) => f.startsWith('settings_') && f.endsWith('.json'))
206
+ .map((f) => f.replace('settings_', '').replace('.json', ''));
207
+ }
208
+ catch (e) {
209
+ logger.warn({ settingsDir, error: e }, 'Error reading settings directory');
210
+ }
211
+ return {
212
+ result: '',
213
+ error: `INVALID_AGENT: Agent Hermes "${agentName}" non trouvé.
214
+ Veuillez utiliser 'create_agent' au préalable.
215
+ Fichier attendu: ${agentSettingsPath}
216
+ ${availableAgents.length > 0 ? `Agents disponibles: ${availableAgents.join(', ')}` : 'Aucun agent disponible'}
217
+ `
218
+ .replace(/\s+/g, ' ')
219
+ .trim(),
220
+ };
221
+ }
222
+ const rawSettings = JSON.parse(fs.readFileSync(agentSettingsPath, 'utf8'));
223
+ const settings = interpolateEnvVars(rawSettings);
224
+ if (!options.model && settings.model) {
225
+ options.model = settings.model;
226
+ }
227
+ if (!options.model && settings.env?.ANTHROPIC_MODEL) {
228
+ options.model = settings.env.ANTHROPIC_MODEL;
229
+ }
230
+ if (settings.env) {
231
+ // Fusion intelligente : préserver les clés critiques (API keys)
232
+ const criticalKeys = [
233
+ // OpenAI
234
+ 'OPENAI_API_KEY',
235
+ 'OPENAI_API_BASE',
236
+ 'OPENAI_BASE_URL',
237
+ // Mistral
238
+ 'MISTRAL_API_KEY',
239
+ 'MISTRAL_API_KEY_2',
240
+ 'MISTRAL_API_KEY_3',
241
+ 'MISTRAL_API_KEY_4',
242
+ 'MISTRAL_API_KEY_5',
243
+ 'MISTRAL_API_KEY_6',
244
+ 'MISTRAL_API_KEY_7',
245
+ // NVIDIA
246
+ 'NVIDIA_API_KEY',
247
+ 'NVAPI_KEY',
248
+ 'NVIDIA_API_BASE',
249
+ // OpenRouter / Overmind
250
+ 'OPENROUTER_API_KEY',
251
+ 'OVERMIND_EMBEDDING_KEY',
252
+ // MiniMax
253
+ 'MINIMAXI_API_KEY',
254
+ // ZhipuAI / GLM
255
+ 'Z_AI_API_KEY',
256
+ // Google / Gemini
257
+ 'GOOGLE_API_KEY',
258
+ 'GEMINI_API_KEY',
259
+ // Anthropic
260
+ 'ANTHROPIC_API_KEY',
261
+ 'ANTHROPIC_AUTH_TOKEN',
262
+ ];
263
+ const envCopy = { ...settings.env };
264
+ for (const key of criticalKeys) {
265
+ if (agentCustomEnv[key] && !envCopy[key]) {
266
+ envCopy[key] = agentCustomEnv[key];
267
+ }
268
+ }
269
+ Object.assign(agentCustomEnv, envCopy);
270
+ }
271
+ // --- Load System Prompt (agents/agentName.md) ---
272
+ const agentPromptPath = resolveConfigPath(path.join(path.dirname(settingsDir), 'agents', `${agentName}.md`), options.configPath);
273
+ if (fs.existsSync(agentPromptPath)) {
274
+ systemPrompt = fs.readFileSync(agentPromptPath, 'utf8');
275
+ }
276
+ // --- MCP Config Translation (JSON -> YAML for Hermes) ---
277
+ const agentMcpPath = resolveConfigPath(path.join(path.dirname(settingsDir), `.mcp.${agentName}.json`), options.configPath);
278
+ if (fs.existsSync(agentMcpPath)) {
279
+ try {
280
+ const rawMcpConfig = JSON.parse(fs.readFileSync(agentMcpPath, 'utf8'));
281
+ const mcpConfig = interpolateEnvVars(rawMcpConfig);
282
+ const hermesConfigDir = overmindHermesSubPath;
283
+ if (!fs.existsSync(hermesConfigDir))
284
+ fs.mkdirSync(hermesConfigDir, { recursive: true });
285
+ const mcpJsonPath = path.join(hermesConfigDir, 'mcp.json');
286
+ const configYamlPath = path.join(hermesConfigDir, 'config.yaml');
287
+ // Helper pour convertir le format MCP JSON vers le format mcp.json Hermes (identique à Claude Desktop)
288
+ fs.writeFileSync(mcpJsonPath, JSON.stringify(mcpConfig, null, 2), 'utf8');
289
+ // Generer aussi config.yaml (format snake_case attendu par Hermes)
290
+ let yamlContent = 'mcp_servers:\n';
291
+ for (const [name, server] of Object.entries(mcpConfig.mcpServers || {})) {
292
+ const s = server;
293
+ yamlContent += ` ${name}:\n`;
294
+ if (s.command)
295
+ yamlContent += ` command: "${s.command}"\n`;
296
+ if (s.args && Array.isArray(s.args)) {
297
+ yamlContent += ` args:\n`;
298
+ for (const arg of s.args) {
299
+ yamlContent += ` - "${String(arg).replace(/"/g, '\\"')}"\n`;
300
+ }
301
+ }
302
+ if (s.env && typeof s.env === 'object') {
303
+ yamlContent += ` env:\n`;
304
+ for (const [k, v] of Object.entries(s.env)) {
305
+ yamlContent += ` ${k}: "${String(v).replace(/"/g, '\\"')}"\n`;
306
+ }
307
+ }
308
+ if (s.url)
309
+ yamlContent += ` url: "${s.url}"\n`;
310
+ }
311
+ fs.writeFileSync(configYamlPath, yamlContent, 'utf8');
312
+ if (!silent)
313
+ console.error(`[NousHermesRunner] 🛠️ Hermes configs (mcp.json & config.yaml) generated in ${hermesConfigDir}`);
314
+ }
315
+ catch (err) {
316
+ logger.error({ error: err }, 'Error translating MCP config');
317
+ }
318
+ }
319
+ }
320
+ catch (e) {
321
+ if (e instanceof Error && e.message?.includes('INVALID_AGENT'))
322
+ throw e;
323
+ logger.warn({ agentName, error: e }, 'Error processing agent settings');
324
+ }
325
+ }
326
+ // --- CLI Arguments & Prompt Handling ---
327
+ const finalPrompt = systemPrompt ? `${systemPrompt}\n\n[USER QUERY]:\n${prompt}` : prompt;
328
+ // Tronquer si nécessaire pour éviter les limites Windows (8191)
329
+ const MAX_PROMPT_LEN = 7000;
330
+ let cliPrompt = finalPrompt;
331
+ if (cliPrompt.length > MAX_PROMPT_LEN) {
332
+ console.warn(`[NousHermesRunner] ⚠️ Prompt tronqué de ${cliPrompt.length} à ${MAX_PROMPT_LEN} chars`);
333
+ cliPrompt = cliPrompt.substring(0, MAX_PROMPT_LEN);
334
+ }
335
+ // En version 0.11.0, on simplifie pour éviter les erreurs d'arguments
336
+ const cleanArgs = ['chat', '-q', cliPrompt, '--source', 'tool', '-Q'];
337
+ if (!silent)
338
+ cleanArgs.push('-v');
339
+ // --- Model & Provider selection ---
340
+ const DEFAULT_MODEL = 'tencent/hy3-preview:free'; // Modèle OpenRouter gratuit
341
+ const originalModel = options.model || DEFAULT_MODEL;
342
+ const model = resolveKiloModel(originalModel);
343
+ const isNvidiaModel = model.includes('deepseek') || model.includes('nvidia');
344
+ const hasNvidiaKey = !!(agentCustomEnv.NVIDIA_API_KEY || agentCustomEnv.NVAPI_KEY);
345
+ const lowModel = model.toLowerCase();
346
+ const isOpenAIModel = lowModel.includes('gpt') ||
347
+ lowModel.includes('o1') ||
348
+ lowModel.includes('o3');
349
+ const hasOpenAIKey = !!agentCustomEnv.OPENAI_API_KEY;
350
+ const isMiniMaxModel = lowModel.includes('minimax');
351
+ const hasMiniMaxKey = !!agentCustomEnv.MINIMAXI_API_KEY;
352
+ const isGLMModel = lowModel.includes('glm');
353
+ const hasGLMKey = !!agentCustomEnv.Z_AI_API_KEY;
354
+ const isMistralModel = model.includes('mistral') || model.includes('codestral') || model.includes('devstral');
355
+ const hasMistralKey = !!agentCustomEnv.MISTRAL_API_KEY;
356
+ cleanArgs.push('--model', model);
357
+ if (isOpenAIModel && hasOpenAIKey) {
358
+ logger.info({ model, provider: 'openai' }, 'Using OpenAI provider');
359
+ cleanArgs.push('--provider', 'openai');
360
+ // Nettoyage des clés conflictuelles
361
+ delete agentCustomEnv.OPENROUTER_API_KEY;
362
+ delete agentCustomEnv.NVIDIA_API_KEY;
363
+ delete agentCustomEnv.NVAPI_KEY;
364
+ delete agentCustomEnv.MINIMAXI_API_KEY;
365
+ delete agentCustomEnv.Z_AI_API_KEY;
366
+ }
367
+ else if (isMiniMaxModel && hasMiniMaxKey) {
368
+ logger.info({ model, provider: 'minimax' }, 'Using MiniMax provider');
369
+ cleanArgs.push('--provider', 'minimax');
370
+ // Nettoyage des clés conflictuelles
371
+ delete agentCustomEnv.OPENROUTER_API_KEY;
372
+ delete agentCustomEnv.NVIDIA_API_KEY;
373
+ delete agentCustomEnv.NVAPI_KEY;
374
+ delete agentCustomEnv.OPENAI_API_KEY;
375
+ delete agentCustomEnv.Z_AI_API_KEY;
376
+ }
377
+ else if (isGLMModel && hasGLMKey) {
378
+ logger.info({ model, provider: 'zhipuai' }, 'Using ZhipuAI/GLM provider');
379
+ cleanArgs.push('--provider', 'zhipuai');
380
+ // Nettoyage des clés conflictuelles
381
+ delete agentCustomEnv.OPENROUTER_API_KEY;
382
+ delete agentCustomEnv.NVIDIA_API_KEY;
383
+ delete agentCustomEnv.NVAPI_KEY;
384
+ delete agentCustomEnv.OPENAI_API_KEY;
385
+ delete agentCustomEnv.MINIMAXI_API_KEY;
386
+ }
387
+ else if (isMistralModel && hasMistralKey) {
388
+ logger.info({ model, provider: 'mistral' }, 'Using Mistral provider');
389
+ cleanArgs.push('--provider', 'mistral');
390
+ // Nettoyage des clés conflictuelles
391
+ delete agentCustomEnv.OPENROUTER_API_KEY;
392
+ delete agentCustomEnv.NVIDIA_API_KEY;
393
+ delete agentCustomEnv.NVAPI_KEY;
394
+ delete agentCustomEnv.OPENAI_API_KEY;
395
+ }
396
+ else if (isNvidiaModel && hasNvidiaKey) {
397
+ logger.info({ model, provider: 'nvidia' }, 'Using NVIDIA NIM provider');
398
+ cleanArgs.push('--provider', 'nvidia');
399
+ }
400
+ else {
401
+ // Fallback OpenRouter pour tout le reste ou si clé NIM manquante
402
+ logger.info({ model, provider: 'openrouter' }, 'Using OpenRouter provider');
403
+ cleanArgs.push('--provider', 'openrouter');
404
+ }
405
+ // --- Find Hermes Binary (cross-platform) ---
406
+ const spawnCommand = await findHermesBinary();
407
+ if (!silent) {
408
+ logger.info({ command: spawnCommand, args: cleanArgs }, 'Starting Hermes Agent');
409
+ }
410
+ // Track temp files for MCP config
411
+ const mcpJsonPath = path.join(overmindHermesSubPath, 'mcp.json');
412
+ const configYamlPath = path.join(overmindHermesSubPath, 'config.yaml');
413
+ this.tempFiles.push(mcpJsonPath, configYamlPath);
414
+ return new Promise((resolve) => {
415
+ let resolved = false;
416
+ const safeResolve = (value) => {
417
+ if (!resolved) {
418
+ resolved = true;
419
+ resolve(value);
420
+ }
421
+ };
422
+ // shell: false if absolute path (direct binary), true if just "hermes" (needs PATH resolution)
423
+ const useShell = !path.isAbsolute(spawnCommand);
424
+ const child = spawn(spawnCommand, cleanArgs, {
425
+ cwd: options.cwd || process.cwd(),
426
+ shell: useShell,
427
+ windowsHide: true,
428
+ env: agentCustomEnv,
429
+ });
430
+ if (child.pid) {
431
+ void registerProcess(child.pid, { agentName: agentName || '', runner: 'hermes', configPath: options.configPath });
432
+ }
433
+ let stdout = '';
434
+ let stderr = '';
435
+ child.stdout?.on('data', (d) => {
436
+ const chunk = d.toString();
437
+ if (child.pid)
438
+ void appendOutput(child.pid, chunk, options.configPath);
439
+ if (stdout.length + chunk.length > this.MAX_BUF) {
440
+ stdout = stdout.slice(-this.MAX_BUF);
441
+ }
442
+ stdout += chunk;
443
+ if (!silent) {
444
+ process.stderr.write(`[Hermes] ${chunk}`);
445
+ }
446
+ });
447
+ child.stderr?.on('data', (d) => {
448
+ const chunk = d.toString();
449
+ if (stderr.length + chunk.length > this.MAX_BUF) {
450
+ stderr = stderr.slice(-this.MAX_BUF);
451
+ }
452
+ stderr += chunk;
453
+ if (!silent) {
454
+ process.stderr.write(`[Hermes:ERR] ${chunk}`);
455
+ }
456
+ });
457
+ const timeout = setTimeout(() => {
458
+ killProcessTree(child);
459
+ if (child.pid)
460
+ void updateProcessStatus(child.pid, 'failed', null, options.configPath);
461
+ safeResolve({
462
+ result: stdout.trim(),
463
+ error: 'TIMEOUT',
464
+ rawOutput: stdout + '\n\n' + stderr,
465
+ model,
466
+ nickname: originalModel !== model ? originalModel : undefined,
467
+ });
468
+ }, this.timeoutMs);
469
+ child.on('close', async (code) => {
470
+ clearTimeout(timeout);
471
+ if (child.pid)
472
+ void updateProcessStatus(child.pid, code === 0 ? 'done' : 'failed', code, options.configPath);
473
+ if (code !== 0 && !stdout) {
474
+ return safeResolve({
475
+ result: '',
476
+ error: `EXIT_CODE_${code}`,
477
+ rawOutput: stderr || stdout,
478
+ model,
479
+ nickname: originalModel !== model ? originalModel : undefined,
480
+ });
481
+ }
482
+ safeResolve({
483
+ result: stdout.trim(),
484
+ sessionId: sessionId,
485
+ rawOutput: stdout,
486
+ model,
487
+ nickname: originalModel !== model ? originalModel : undefined,
488
+ });
489
+ });
490
+ child.on('error', (err) => {
491
+ clearTimeout(timeout);
492
+ if (child.pid)
493
+ void updateProcessStatus(child.pid, 'failed', null, options.configPath);
494
+ safeResolve({ result: '', error: `SPAWN_ERROR: ${err.message}`, rawOutput: '' });
495
+ });
496
+ if (child.stdin) {
497
+ child.stdin.end();
498
+ }
499
+ });
500
+ }
501
+ }
502
+ /**
503
+ * Run agent with proper cleanup and telemetry
504
+ */
505
+ async function runAgentWrapper(options) {
506
+ try {
507
+ const result = await withSpan('hermes.runAgent', async (span) => {
508
+ span.setAttribute('agentName', options.agentName || '');
509
+ span.setAttribute('model', options.model || '');
510
+ span.setAttribute('runner', 'hermes');
511
+ return await this.runAgentInternal(options);
512
+ }, {
513
+ agentName: options.agentName || '',
514
+ model: options.model || '',
515
+ runner: 'hermes',
516
+ });
517
+ // Cleanup on success
518
+ this.cleanupTempFiles();
519
+ // Save session if needed
520
+ if (options.agentName && result.sessionId) {
521
+ await saveSessionId(options.agentName, result.sessionId, options.configPath, 'hermes');
522
+ }
523
+ return result;
524
+ }
525
+ catch (error) {
526
+ // Cleanup on error
527
+ this.cleanupTempFiles();
528
+ logger.error({
529
+ error: error instanceof Error ? error.message : String(error),
530
+ agentName: options.agentName,
531
+ }, 'Hermes runner failed');
532
+ throw error;
533
+ }
534
+ }
535
+ //# sourceMappingURL=NousHermesRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NousHermesRunner.js","sourceRoot":"","sources":["../../src/services/NousHermesRunner.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,9 @@ export interface RunAgentOptions {
3
3
  agentName?: string;
4
4
  sessionId?: string;
5
5
  autoResume?: boolean;
6
+ cwd?: string;
7
+ configPath?: string;
8
+ silent?: boolean;
6
9
  }
7
10
  export interface RunAgentResult {
8
11
  result: string;
@@ -13,7 +16,11 @@ export interface RunAgentResult {
13
16
  export declare class OpenClawRunner {
14
17
  private config;
15
18
  private timeoutMs;
19
+ private tempFiles;
20
+ private MAX_BUF;
16
21
  constructor();
22
+ private cleanupTempFiles;
17
23
  runAgent(options: RunAgentOptions): Promise<RunAgentResult>;
24
+ private runAgentInternal;
18
25
  }
19
26
  //# sourceMappingURL=OpenClawRunner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenClawRunner.d.ts","sourceRoot":"","sources":["../../src/services/OpenClawRunner.ts"],"names":[],"mappings":"AAOA,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,cAAc;IACzB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAS;;IAOpB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;CAoGlE"}
1
+ {"version":3,"file":"OpenClawRunner.d.ts","sourceRoot":"","sources":["../../src/services/OpenClawRunner.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,cAAc;IACzB,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;CAsH/B"}