overmind-mcp 1.5.8 → 1.5.9

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 (52) hide show
  1. package/dist/server.js +6 -6
  2. package/dist/services/AgentManager.d.ts.map +1 -1
  3. package/dist/services/AgentManager.js +25 -2
  4. package/dist/services/AgentManager.js.map +1 -1
  5. package/dist/services/ClaudeRunner.d.ts.map +1 -1
  6. package/dist/services/ClaudeRunner.js +51 -266
  7. package/dist/services/ClaudeRunner.js.map +1 -1
  8. package/dist/services/GeminiRunner.d.ts +1 -0
  9. package/dist/services/GeminiRunner.d.ts.map +1 -1
  10. package/dist/services/GeminiRunner.js +39 -16
  11. package/dist/services/GeminiRunner.js.map +1 -1
  12. package/dist/services/NousHermesRunner.d.ts.map +1 -1
  13. package/dist/services/NousHermesRunner.js +159 -23
  14. package/dist/services/NousHermesRunner.js.map +1 -1
  15. package/dist/test_all_mistral.d.ts +2 -0
  16. package/dist/test_all_mistral.d.ts.map +1 -0
  17. package/dist/test_all_mistral.js +23 -0
  18. package/dist/test_all_mistral.js.map +1 -0
  19. package/dist/test_hermes.d.ts +2 -0
  20. package/dist/test_hermes.d.ts.map +1 -0
  21. package/dist/test_hermes.js +16 -0
  22. package/dist/test_hermes.js.map +1 -0
  23. package/dist/tools/config_example.d.ts +1 -1
  24. package/dist/tools/memory_store.d.ts +1 -1
  25. package/dist/tools/run_agent.js +1 -1
  26. package/dist/tools/run_agent.js.map +1 -1
  27. package/dist/tools/run_claude.d.ts.map +1 -1
  28. package/dist/tools/run_claude.js +4 -3
  29. package/dist/tools/run_claude.js.map +1 -1
  30. package/dist/tools/run_cline.d.ts.map +1 -1
  31. package/dist/tools/run_cline.js +6 -1
  32. package/dist/tools/run_cline.js.map +1 -1
  33. package/dist/tools/run_gemini.d.ts +2 -0
  34. package/dist/tools/run_gemini.d.ts.map +1 -1
  35. package/dist/tools/run_gemini.js +7 -1
  36. package/dist/tools/run_gemini.js.map +1 -1
  37. package/dist/tools/run_hermes.d.ts.map +1 -1
  38. package/dist/tools/run_hermes.js +16 -2
  39. package/dist/tools/run_hermes.js.map +1 -1
  40. package/dist/tools/run_kilo.d.ts.map +1 -1
  41. package/dist/tools/run_kilo.js +6 -1
  42. package/dist/tools/run_kilo.js.map +1 -1
  43. package/dist/tools/run_openclaw.d.ts.map +1 -1
  44. package/dist/tools/run_openclaw.js +6 -1
  45. package/dist/tools/run_openclaw.js.map +1 -1
  46. package/dist/tools/run_opencode.d.ts.map +1 -1
  47. package/dist/tools/run_opencode.js +6 -1
  48. package/dist/tools/run_opencode.js.map +1 -1
  49. package/dist/tools/run_qwencli.d.ts.map +1 -1
  50. package/dist/tools/run_qwencli.js +6 -1
  51. package/dist/tools/run_qwencli.js.map +1 -1
  52. package/package.json +1 -1
package/dist/server.js CHANGED
@@ -29,13 +29,13 @@ export function createServer(name = 'OverMind-MCP') {
29
29
  - opencode: OpenCode (opencode run)
30
30
  - hermes: Nous Hermes Agent (Nécessite 'create_agent' au préalable)
31
31
 
32
- **Modèles Kilo (Alias Gratuits):**
33
- | Nom Amical | ID Technique | Description |
32
+ **Modèles recommandés :**
33
+ | Fournisseur | Modèle recommandé | Usage |
34
34
  | :--- | :--- | :--- |
35
- | **step 3.5 flash** | stepfun/step-3.5-flash:free | Modèle StepFun gratuit (262K context) |
36
- | **grok code** | x-ai/grok-code-fast-1:optimized:free | Grok Optimized gratuit (256K context) |
37
- | **elephant** | openrouter/elephant-alpha | Elephant Alpha gratuit (262K context) |
38
- | **free** | kilo-auto/free | Modèle Kilo Auto gratuit (204K context) |
35
+ | **Mistral** | **Devstral 2** (\`codestral-latest\`) | Expert Coding & Développement |
36
+ | **Mistral** | **Mistral Large 3** (\`mistral-large-latest\`) | Raisonnement & Architecture |
37
+ | **Kilo** | **step 3.5 flash** | Polyvalent (262K context) |
38
+ | **Kilo** | **free** | Modèle par défaut gratuit |
39
39
 
40
40
  **Parameters:**
41
41
  - runner: Type de runner (claude, gemini, etc.)
@@ -1 +1 @@
1
- {"version":3,"file":"AgentManager.d.ts","sourceRoot":"","sources":["../../src/services/AgentManager.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,GAAG,eAAe,GAAG,WAAW,GAAG,UAAU,CAAC;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAS;gBAEd,eAAe,CAAC,EAAE,MAAM;YAQtB,sBAAsB;IAW9B,UAAU,CAAC,OAAO,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA0DvD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAuBhF,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA4I/E,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAwIlE,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAkCxE"}
1
+ {"version":3,"file":"AgentManager.d.ts","sourceRoot":"","sources":["../../src/services/AgentManager.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,GAAG,eAAe,GAAG,WAAW,GAAG,UAAU,CAAC;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAS;gBAEd,eAAe,CAAC,EAAE,MAAM;YAQtB,sBAAsB;IAW9B,UAAU,CAAC,OAAO,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA0EvD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAuBhF,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA4I/E,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAwIlE,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAkCxE"}
@@ -41,8 +41,29 @@ export class AgentManager {
41
41
  try {
42
42
  const settingsContent = await fs.readFile(settingsPath, 'utf-8');
43
43
  const settings = JSON.parse(settingsContent);
44
- const model = settings.env?.ANTHROPIC_MODEL || 'settings-default';
44
+ const model = settings.env?.ANTHROPIC_MODEL || settings.model || 'settings-default';
45
+ const runner = settings.runner || 'claude';
45
46
  const servers = settings.enabledMcpjsonServers || [];
47
+ // Inférence du provider
48
+ let provider = settings.provider || settings.env?.PROVIDER || 'auto';
49
+ if (provider === 'auto') {
50
+ if (settings.env?.MISTRAL_API_KEY)
51
+ provider = 'mistral';
52
+ else if (settings.env?.OPENAI_API_KEY)
53
+ provider = 'openai';
54
+ else if (settings.env?.NVIDIA_API_KEY || settings.env?.NVAPI_KEY)
55
+ provider = 'nvidia';
56
+ else if (settings.env?.GEMINI_API_KEY)
57
+ provider = 'google';
58
+ else if (model.includes('mistral') || model.includes('codestral') || model.includes('devstral'))
59
+ provider = 'mistral';
60
+ else if (model.includes('gpt-'))
61
+ provider = 'openai';
62
+ else if (model.includes('gemini'))
63
+ provider = 'google';
64
+ else if (model.includes('claude'))
65
+ provider = 'anthropic';
66
+ }
46
67
  const serverStatus = servers.map((s) => {
47
68
  if (availableServers.includes(s))
48
69
  return s;
@@ -53,7 +74,9 @@ export class AgentManager {
53
74
  ? `${s} (⚠️ Nom incorrect ? Suggestion: **${suggestion}**)`
54
75
  : `${s} (⚠️ Absent de mcp.json)`;
55
76
  });
56
- info += `\n - Modèle : ${model}`;
77
+ info += `\n - Runner : ${runner}`;
78
+ info += `\n - Model : ${model}`;
79
+ info += `\n - Provider: ${provider}`;
57
80
  info += `\n - Serveurs MCP : ${servers.length > 0 ? serverStatus.join(', ') : 'Aucun'}`;
58
81
  }
59
82
  catch (_e) {
@@ -1 +1 @@
1
- {"version":3,"file":"AgentManager.js","sourceRoot":"","sources":["../../src/services/AgentManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentManager.js","sourceRoot":"","sources":["../../src/services/AgentManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ClaudeRunner.d.ts","sourceRoot":"","sources":["../../src/services/ClaudeRunner.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;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,YAAY;IACvB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAS;;IAOpB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;CAwelE"}
1
+ {"version":3,"file":"ClaudeRunner.d.ts","sourceRoot":"","sources":["../../src/services/ClaudeRunner.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;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,YAAY;IACvB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAS;;IAOpB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;CAiPlE"}
@@ -1,5 +1,4 @@
1
1
  import fs from 'fs';
2
- import os from 'os';
3
2
  import path from 'path';
4
3
  import { spawn } from 'child_process';
5
4
  import { CONFIG, resolveConfigPath } from '../lib/config.js';
@@ -28,87 +27,34 @@ export class ClaudeRunner {
28
27
  const settingsDir = path.dirname(PATHS.SETTINGS);
29
28
  const specificSettingsPath = resolveConfigPath(path.join(settingsDir, `settings_${agentName}.json`), options.configPath);
30
29
  if (!fs.existsSync(specificSettingsPath)) {
31
- // Lister les agents disponibles pour aider au debugging
32
- let availableAgents = [];
33
- try {
34
- const files = fs.readdirSync(settingsDir);
35
- availableAgents = files
36
- .filter(f => f.startsWith('settings_') && f.endsWith('.json'))
37
- .map(f => f.replace('settings_', '').replace('.json', ''));
38
- }
39
- catch (_e) {
40
- // Ignore error reading directory
41
- }
42
30
  return {
43
31
  result: '',
44
- error: `INVALID_AGENT: Agent "${agentName}" non trouvé.
45
- Fichier attendu: ${specificSettingsPath}
46
- Répertoire config: ${path.dirname(PATHS.SETTINGS)}
47
- ${availableAgents.length > 0 ? `Agents disponibles: ${availableAgents.join(', ')}` : 'Aucun agent disponible'}
48
- `.replace(/\s+/g, ' ').trim(),
32
+ error: `INVALID_AGENT: Agent "${agentName}" non trouvé.`,
49
33
  };
50
34
  }
51
35
  settingsPath = specificSettingsPath;
52
36
  }
53
- const cwd = process.cwd();
54
37
  let mcpPath = resolveConfigPath(PATHS.MCP, options.configPath);
55
38
  let tmpMcpPathToDelete = null;
56
39
  let customTimeoutMs = this.timeoutMs;
57
- // Vérifier si le fichier MCP existe
58
- if (!fs.existsSync(mcpPath)) {
59
- return {
60
- result: '',
61
- error: `MISSING_MCP: Fichier de configuration MCP introuvable.
62
- Fichier attendu: ${mcpPath}
63
- Veuillez vérifier que le fichier .mcp.json existe dans le répertoire de configuration.
64
- `.replace(/\s+/g, ' ').trim(),
65
- };
66
- }
67
- // --- Isolation ---
68
- let finalSettingsPath = settingsPath;
69
- let agentSettingsPath = settingsPath;
70
40
  if (agentName) {
71
41
  try {
72
- agentSettingsPath = resolveConfigPath(path.join(path.dirname(PATHS.SETTINGS), `settings_${agentName}.json`), options.configPath);
42
+ const agentSettingsPath = resolveConfigPath(path.join(path.dirname(PATHS.SETTINGS), `settings_${agentName}.json`), options.configPath);
73
43
  if (fs.existsSync(agentSettingsPath)) {
74
44
  const settings = JSON.parse(fs.readFileSync(agentSettingsPath, 'utf8'));
75
45
  if (settings.env) {
76
46
  Object.assign(agentCustomEnv, settings.env);
77
- if (!agentCustomEnv.ANTHROPIC_MODEL && (settings.env.ANTHROPIC_MODEL || settings.env.ANTHROPIC_DEFAULT_SONNET_MODEL)) {
78
- agentCustomEnv.ANTHROPIC_MODEL = (settings.env.ANTHROPIC_DEFAULT_SONNET_MODEL && settings.env.ANTHROPIC_DEFAULT_SONNET_MODEL.includes('claude'))
79
- ? settings.env.ANTHROPIC_DEFAULT_SONNET_MODEL
80
- : 'claude-sonnet-4-6';
81
- }
82
- // --- SMART NICKNAME FALLBACK ---
83
- const currentModel = settings.env.ANTHROPIC_MODEL;
84
- const isTechnicalModelId = currentModel && (currentModel.includes('claude') ||
85
- currentModel.includes('gpt') ||
86
- currentModel.includes('glm') ||
87
- currentModel.includes('minimax') ||
88
- currentModel.includes('deepseek') ||
89
- currentModel.includes('moonshot'));
90
- if (currentModel && !isTechnicalModelId) {
91
- // Si le modèle est un surnom, on l'utilise pour l'affichage mais on remet un vrai ID de modèle pour l'API
92
- agentCustomEnv.AGENT_NICKNAME = currentModel;
93
- // On utilise le modèle Sonnet par défaut ou la valeur configurée si elle semble valide
94
- agentCustomEnv.ANTHROPIC_MODEL = (settings.env.ANTHROPIC_DEFAULT_SONNET_MODEL && settings.env.ANTHROPIC_DEFAULT_SONNET_MODEL.includes('claude'))
95
- ? settings.env.ANTHROPIC_DEFAULT_SONNET_MODEL
96
- : 'claude-sonnet-4-6';
97
- }
98
47
  if (settings.env.AGENT_TIMEOUT_MS || settings.env.API_TIMEOUT_MS) {
99
48
  const timeoutValue = settings.env.AGENT_TIMEOUT_MS || settings.env.API_TIMEOUT_MS;
100
49
  customTimeoutMs = parseInt(timeoutValue, 10) || customTimeoutMs;
101
50
  }
102
51
  }
103
- // Utiliser directement le fichier MCP spécifique de l'agent s'il existe
104
52
  const agentMcpPath = resolveConfigPath(path.join(path.dirname(PATHS.SETTINGS), `.mcp.${agentName}.json`));
105
53
  if (fs.existsSync(agentMcpPath)) {
106
- // Utiliser le fichier MCP spécifique à l'agent directement
107
54
  mcpPath = agentMcpPath;
108
55
  }
109
56
  else if (settings.enableAllProjectMcpServers === false &&
110
57
  Array.isArray(settings.enabledMcpjsonServers)) {
111
- // Fallback: utiliser le fichier MCP général avec filtrage
112
58
  if (fs.existsSync(mcpPath)) {
113
59
  const fullMcp = JSON.parse(fs.readFileSync(mcpPath, 'utf8'));
114
60
  const filteredMcp = { mcpServers: {} };
@@ -125,315 +71,154 @@ export class ClaudeRunner {
125
71
  }
126
72
  }
127
73
  }
128
- catch (_e) {
129
- // Warning
130
- }
131
- // Utiliser directement le fichier settings original sans copie temporaire
132
- finalSettingsPath = agentSettingsPath;
133
- }
134
- const relativeMcp = path.relative(cwd, mcpPath);
135
- if (!relativeMcp.startsWith('..') && !path.isAbsolute(relativeMcp)) {
136
- mcpPath = relativeMcp.startsWith('./') ? relativeMcp : `./${relativeMcp}`;
137
- }
138
- let tmpSettingsPathToDelete = null;
139
- // Validation des chemins pour Windows
140
- if (process.platform === 'win32') {
141
- // S'assurer que les chemins sont valides et accessibles
142
- if (settingsPath && !fs.existsSync(settingsPath)) {
143
- return {
144
- result: '',
145
- error: `SETTINGS_NOT_FOUND: ${settingsPath}`,
146
- };
147
- }
148
- if (mcpPath && !fs.existsSync(mcpPath)) {
149
- return {
150
- result: '',
151
- error: `MCP_CONFIG_NOT_FOUND: ${mcpPath}`,
152
- };
153
- }
154
- }
155
- if (agentCustomEnv.AGENT_NICKNAME) {
156
- try {
157
- // On crée un fichier settings temporaire pour substituer le surnom par un vrai modèle
158
- // car le CLI Claude ne valide pas les surnoms dynamiques en interne
159
- const settings = JSON.parse(fs.readFileSync(settingsPath, 'utf8'));
160
- const tempSettings = JSON.parse(JSON.stringify(settings));
161
- tempSettings.env.ANTHROPIC_MODEL = agentCustomEnv.ANTHROPIC_MODEL;
162
- const tmpSettingsPath = path.join(os.tmpdir(), `settings-${agentName || 'agent'}-${Date.now()}.json`);
163
- fs.writeFileSync(tmpSettingsPath, JSON.stringify(tempSettings, null, 2));
164
- finalSettingsPath = tmpSettingsPath;
165
- tmpSettingsPathToDelete = tmpSettingsPath;
166
- }
167
74
  catch (e) {
168
- console.error(`[ClaudeRunner] ⚠️ Erreur lors de la création du settings temporaire: ${e}`);
75
+ console.error(`[ClaudeRunner] ⚠️ Error processing agent settings: ${e}`);
169
76
  }
170
77
  }
171
78
  const argsSpawn = [];
172
- const debugInfo = `[ClaudeRunner] 🔍 PERMISSIONS="${PERMISSIONS}" CORE="${CORE}"`;
173
- console.error(debugInfo);
174
- // Also write to file for debugging
175
- fs.appendFileSync('C:\\SierraChart\\ACS_Source\\BTCacsil\\btc_ingest\\logs\\claude_runner_debug.log', `${new Date().toISOString()} ${debugInfo}\n`);
176
- if (CORE) {
79
+ if (CORE)
177
80
  argsSpawn.push(...CORE.split(' ').filter(Boolean));
178
- }
179
81
  if (PERMISSIONS)
180
82
  argsSpawn.push(...PERMISSIONS.split(' ').filter(Boolean));
181
- const fullArgsInfo = `[ClaudeRunner] 🔍 Full args: ${JSON.stringify(argsSpawn)}`;
182
- console.error(fullArgsInfo);
183
- fs.appendFileSync('C:\\SierraChart\\ACS_Source\\BTCacsil\\btc_ingest\\logs\\claude_runner_debug.log', `${new Date().toISOString()} ${fullArgsInfo}\n`);
184
- // DÉCISION IMPORTANTE: On n'ajoute pas de guillemets manuels ici, spawn s'en occupe
185
- argsSpawn.push('--settings', finalSettingsPath);
83
+ argsSpawn.push('--settings', settingsPath);
186
84
  argsSpawn.push('--mcp-config', mcpPath);
187
85
  argsSpawn.push('--output-format', 'json');
188
- if (sessionId && sessionId.trim() !== "") {
189
- argsSpawn.push("--resume", sessionId);
190
- }
191
- // --- MODEL & NICKNAME FLAGS ---
192
- const modelToUse = agentCustomEnv.ANTHROPIC_MODEL || 'claude-sonnet-4-6';
193
- console.error(`[ClaudeRunner] 🛠️ Model override: ${modelToUse}`);
194
- argsSpawn.push('--model', modelToUse);
195
- if (agentCustomEnv.AGENT_NICKNAME) {
196
- console.error(`[ClaudeRunner] 👤 Nickname: ${agentCustomEnv.AGENT_NICKNAME}`);
197
- argsSpawn.push('--name', agentCustomEnv.AGENT_NICKNAME);
86
+ if (sessionId)
87
+ argsSpawn.push('--resume', sessionId);
88
+ if (agentCustomEnv.ANTHROPIC_MODEL) {
89
+ argsSpawn.push('--model', agentCustomEnv.ANTHROPIC_MODEL);
198
90
  }
199
- else if (agentName) {
91
+ if (agentName)
200
92
  argsSpawn.push('--name', agentName);
201
- }
202
- // --- AGENTIC OPTIMIZATIONS ---
203
- // Disable tools for strict JSON output agents (prevents hallucinated tool calls)
204
- if (prompt.toLowerCase().includes('[strict json mode]')) {
205
- argsSpawn.push('--tools', 'none');
206
- }
207
93
  return new Promise((resolve) => {
94
+ let resolved = false;
95
+ const safeResolve = (value) => {
96
+ if (!resolved) {
97
+ resolved = true;
98
+ resolve(value);
99
+ }
100
+ };
208
101
  const cleanupTmpFiles = () => {
209
102
  if (tmpMcpPathToDelete && fs.existsSync(tmpMcpPathToDelete)) {
210
103
  try {
211
104
  fs.unlinkSync(tmpMcpPathToDelete);
212
105
  }
213
- catch (_e) {
214
- // Ignore deletion errors
215
- }
216
- }
217
- if (tmpSettingsPathToDelete && fs.existsSync(tmpSettingsPathToDelete)) {
218
- try {
219
- fs.unlinkSync(tmpSettingsPathToDelete);
220
- }
221
- catch (_e) {
222
- // Ignore deletion errors
106
+ catch {
107
+ // Ignored
223
108
  }
224
109
  }
225
110
  };
226
- const isWin = process.platform === 'win32';
227
111
  let command = 'claude';
228
112
  let spawnArgs = [];
229
- // Resolve Agent Prompt
230
- let agentPromptPath = '';
231
- if (agentName) {
232
- agentPromptPath = resolveConfigPath(path.join(path.dirname(PATHS.SETTINGS), 'agents', `${agentName}.md`), options.configPath);
233
- if (!fs.existsSync(agentPromptPath)) {
234
- agentPromptPath = resolveConfigPath(path.join(path.dirname(path.dirname(PATHS.SETTINGS)), 'agents', `${agentName}.md`), options.configPath);
235
- }
236
- }
237
- const isNarrator = agentName === 'sentinel_cortex' || (agentPromptPath && fs.existsSync(agentPromptPath));
238
- let finalPrompt = prompt;
239
- if (agentPromptPath && fs.existsSync(agentPromptPath)) {
240
- const systemPrompt = fs.readFileSync(agentPromptPath, 'utf8');
241
- if (!isNarrator) {
242
- finalPrompt = `${systemPrompt}\n\n[USER QUERY]:\n${prompt}`;
243
- }
244
- }
245
- if (isWin) {
246
- // Sous Windows, TOUJOURS utiliser cmd.exe pour garantir la compatibilité
247
- // Le spawn direct de claude.cmd peut échouer avec EINVAL dans certains contextes
113
+ if (process.platform === 'win32') {
248
114
  command = 'cmd.exe';
249
115
  spawnArgs = ['/c', 'claude', ...argsSpawn, '-p'];
250
116
  }
251
117
  else {
252
118
  spawnArgs = [...argsSpawn, '-p'];
253
119
  }
254
- if (agentName && !options.silent) {
255
- agentCustomEnv.OVERMIND_AGENT_NAME = agentName;
256
- const id = agentCustomEnv.AGENT_NICKNAME || agentName;
257
- console.error(`[ClaudeRunner] 🚀 Démarrage de l'agent ${id}...`);
258
- console.error(`[ClaudeRunner] 📏 Prompt Size: ${finalPrompt.length} chars`);
259
- // Debug: Log la commande pour faciliter le troubleshooting
260
- console.error(`[ClaudeRunner] 🔧 Full Args: ${command} ${spawnArgs.join(' ')}`);
261
- if (process.env.DEBUG_CLAUDE_RUNNER) {
262
- console.error(`[ClaudeRunner] 🔧 Command: ${command}`);
263
- console.error(`[ClaudeRunner] 🔧 Args: ${spawnArgs.slice(0, 3).join(' ')}... (${spawnArgs.length} args total)`);
264
- }
265
- }
266
120
  const child = spawn(command, spawnArgs, {
267
- stdio: ['pipe', 'pipe', 'pipe'],
268
121
  cwd: options.cwd || process.cwd(),
269
122
  windowsHide: true,
270
123
  env: { ...process.env, ...agentCustomEnv },
271
124
  shell: false,
272
125
  });
273
- // Écrire le prompt via stdin (important: le faire avant d'écouter les événements)
274
- if (child.stdin) {
275
- try {
276
- // S'assurer que le prompt ne contient pas de surrogates isolés (casse l'encodage UTF-8)
277
- const sanitizedPrompt = finalPrompt.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g, '');
278
- child.stdin.write(sanitizedPrompt);
279
- child.stdin.end();
280
- }
281
- catch (stdinError) {
282
- console.error(`[ClaudeRunner] ⚠️ Stdin write error: ${stdinError}`);
283
- // On continue quand même,某些cas le process peut démarrer sans stdin
284
- }
285
- }
286
- // Gestion robuste des erreurs de spawn immédiates
287
- child.on('error', (spawnError) => {
288
- console.error(`[ClaudeRunner] ❌ Spawn Error: ${spawnError.message}`);
289
- if (spawnError.message.includes('EINVAL')) {
290
- console.error(`[ClaudeRunner] 🔧 Debug Info:`);
291
- console.error(`[ClaudeRunner] - Platform: ${process.platform}`);
292
- console.error(`[ClaudeRunner] - Command: ${command}`);
293
- console.error(`[ClaudeRunner] - Args count: ${spawnArgs.length}`);
294
- console.error(`[ClaudeRunner] - CWD: ${process.cwd()}`);
295
- }
296
- clearTimeout(timeout);
297
- cleanupTmpFiles();
298
- resolve({
299
- result: '',
300
- error: `SPAWN_ERROR: ${spawnError.message}`,
301
- rawOutput: spawnError.message,
302
- });
303
- });
304
126
  let stdout = '';
305
127
  let stderr = '';
306
128
  if (child.stdout) {
307
129
  child.stdout.on('data', (d) => {
308
130
  const chunk = d.toString();
309
131
  stdout += chunk;
310
- if (agentName && !options.silent) {
311
- const id = agentCustomEnv.AGENT_NICKNAME || agentName;
312
- process.stderr.write(`[ClaudeRunner:${id}] ${chunk}`);
313
- }
132
+ if (agentName && !options.silent)
133
+ process.stderr.write(`[ClaudeRunner:${agentName}] ${chunk}`);
314
134
  });
315
135
  }
316
136
  if (child.stderr) {
317
137
  child.stderr.on('data', (d) => {
318
138
  const chunk = d.toString();
319
139
  stderr += chunk;
320
- if (agentName && !options.silent) {
321
- const id = agentCustomEnv.AGENT_NICKNAME || agentName;
322
- process.stderr.write(`[ClaudeRunner:${id}:ERR] ${chunk}`);
323
- }
140
+ if (agentName && !options.silent)
141
+ process.stderr.write(`[ClaudeRunner:${agentName}:ERR] ${chunk}`);
324
142
  });
325
143
  }
144
+ if (child.stdin) {
145
+ child.stdin.write(prompt);
146
+ child.stdin.end();
147
+ }
148
+ let killTimer = null;
326
149
  const timeout = setTimeout(() => {
327
150
  child.kill();
151
+ killTimer = setTimeout(() => {
152
+ if (!child.killed)
153
+ child.kill('SIGKILL');
154
+ }, 5000);
328
155
  cleanupTmpFiles();
329
- resolve({ result: '', error: `TIMEOUT`, rawOutput: stdout + '\n\n' + stderr });
156
+ safeResolve({ result: '', error: 'TIMEOUT', rawOutput: stdout + stderr });
330
157
  }, customTimeoutMs);
158
+ child.on('error', (err) => {
159
+ clearTimeout(timeout);
160
+ if (killTimer)
161
+ clearTimeout(killTimer);
162
+ cleanupTmpFiles();
163
+ safeResolve({ result: '', error: `SPAWN_ERROR: ${err.message}`, rawOutput: '' });
164
+ });
331
165
  child.on('close', async (code) => {
332
166
  clearTimeout(timeout);
167
+ if (killTimer)
168
+ clearTimeout(killTimer);
333
169
  cleanupTmpFiles();
334
- const detectError = (text) => {
335
- const lower = text.toLowerCase();
336
- if (lower.includes('api key') || lower.includes('auth') || lower.includes('401')) {
337
- return '🔑 Erreur Auth/API Key (Clé invalide ou manquante)';
338
- }
339
- if (lower.includes('quota') || lower.includes('exceeded') || lower.includes('429')) {
340
- return '📊 Quota dépassé (API Key épuisée)';
341
- }
342
- if (lower.includes('rate limit')) {
343
- return '⏳ Rate limit atteint';
344
- }
345
- if (lower.includes('model') && lower.includes('404')) {
346
- return '🤖 Modèle introuvable';
347
- }
348
- if (lower.includes('connection') || lower.includes('econnrefused')) {
349
- return '🌐 Erreur de connexion (réseau ou API indisponible)';
350
- }
351
- if (lower.includes('timeout')) {
352
- return '⏱️ Timeout de la requête';
353
- }
354
- return null;
355
- };
356
- // Gestion améliorée des codes de sortie
357
- if (code !== 0) {
358
- const specificError = detectError(stderr || stdout);
359
- if (specificError) {
360
- return resolve({
361
- result: '',
362
- error: specificError,
363
- rawOutput: stderr || stdout,
364
- });
365
- }
366
- // Si code != 0 mais qu'il y a du stdout, on tente de parser
367
- if (!stdout) {
368
- return resolve({
369
- result: '',
370
- error: `EXIT_CODE_${code}${stderr ? `: ${stderr.substring(0, 100)}` : ''}`,
371
- rawOutput: stderr,
372
- });
373
- }
374
- }
375
170
  const fullRaw = stdout + (stderr ? `\n\n--- STDERR ---\n${stderr}` : '');
376
171
  try {
377
- // Robust JSON extraction from stdout
378
172
  let jsonEnvelope = null;
379
173
  const trimmedStdout = stdout.trim();
380
174
  try {
381
175
  jsonEnvelope = JSON.parse(trimmedStdout);
382
176
  }
383
- catch (_) {
384
- // If direct parse fails, try to find the last JSON object in the output
385
- // (claude CLI sometimes outputs logs before the JSON envelope)
177
+ catch {
386
178
  const lastBrace = trimmedStdout.lastIndexOf('}');
387
179
  const firstBrace = trimmedStdout.lastIndexOf('{', lastBrace);
388
180
  if (firstBrace !== -1 && lastBrace !== -1) {
389
181
  try {
390
182
  jsonEnvelope = JSON.parse(trimmedStdout.substring(firstBrace, lastBrace + 1));
391
183
  }
392
- catch (__) {
393
- // Still failed
184
+ catch {
185
+ // Ignored
394
186
  }
395
187
  }
396
188
  }
397
- console.error(`[ClaudeRunner] 🔍 jsonEnvelope keys: ${jsonEnvelope ? Object.keys(jsonEnvelope).join(', ') : 'null'}`);
398
- console.error(`[ClaudeRunner] 🔍 jsonEnvelope.result type: ${typeof jsonEnvelope?.result}, length: ${typeof jsonEnvelope?.result === 'string' ? jsonEnvelope.result.length : 'N/A'}`);
399
189
  if (jsonEnvelope) {
400
190
  let foundSessionId = sessionId;
401
191
  if (jsonEnvelope.session_id && agentName) {
402
192
  foundSessionId = jsonEnvelope.session_id;
403
193
  await saveSessionId(agentName, jsonEnvelope.session_id, options.configPath);
404
194
  }
405
- return resolve({
195
+ return safeResolve({
406
196
  result: jsonEnvelope.reply || jsonEnvelope.result || stdout.trim(),
407
197
  sessionId: foundSessionId,
408
198
  rawOutput: stdout,
409
199
  });
410
200
  }
411
- // Fallback to raw text if no JSON found but code was 0
412
201
  if (code === 0) {
413
- return resolve({
202
+ return safeResolve({
414
203
  result: stdout.trim(),
415
204
  sessionId,
416
205
  rawOutput: stdout,
417
206
  });
418
207
  }
419
- resolve({
208
+ safeResolve({
420
209
  result: '',
421
- error: 'JSON_PARSE_ERROR',
210
+ error: code !== 0 ? `EXIT_CODE_${code}` : 'JSON_PARSE_ERROR',
422
211
  rawOutput: fullRaw,
423
212
  });
424
213
  }
425
214
  catch (error) {
426
- resolve({
215
+ safeResolve({
427
216
  result: '',
428
217
  error: `INTERNAL_ERROR: ${error instanceof Error ? error.message : String(error)}`,
429
218
  rawOutput: fullRaw,
430
219
  });
431
220
  }
432
221
  });
433
- child.on('error', (err) => {
434
- cleanupTmpFiles();
435
- resolve({ result: '', error: err.message, rawOutput: '' });
436
- });
437
222
  });
438
223
  }
439
224
  }