overmind-mcp 3.4.1 → 3.4.2

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.
@@ -1,28 +1,22 @@
1
1
  /**
2
2
  * ═══════════════════════════════════════════════════════════════════════════
3
- * A2A Hub — Outil MCP unifié pour la communication Agent-to-Agent
3
+ * A2A Hub — Outil MCP pour la communication Agent-to-Agent
4
4
  * ═══════════════════════════════════════════════════════════════════════════
5
5
  *
6
- * Cet outil donne aux agents une vue complète du système multi-agents:
6
+ * Architecture distribuee chaque worker est un serveur HTTP independant:
7
7
  *
8
- * - LISTER tous les agents persistants (Hermes profiles + live registry)
9
- * - VOIR ce que chaque agent fait en temps réel (status, busy/idle, dernière activité)
10
- * - DELEGUER une tâche à un autre agent (async avec callback)
11
- * - PIPELINE chainé (A→B→C avec passing de contexte)
12
- * - FANOUT parallèle (1→N + merge des résultats)
13
- * - QUERY multi-agents (poser une question à plusieurs agents simultanément)
14
- * - BROADCAST (message global à tous les agents online)
8
+ * discord-master (:discord) routes !trade TV Analyst :3002
9
+ * routes !sniper Sniperbot :3001
15
10
  *
16
- * L'agent qui appelle cet outil découvre AUTOMATIQUEMENT:
17
- * - Quels agents existent sur le système (profiles Hermes)
18
- * - Leur status (online/busy/idle/offline)
19
- * - Leur runner (hermes, claude, kilo, etc.)
20
- * - Leur modèle LLM
21
- * - Leur dernière activité
22
- * - Le compteur A2A (combien de messages envoyés/reçus)
11
+ * a2a_hub parle DIRECTEMENT aux workers HTTP:
12
+ * POST :300X/send → message synchrone
13
+ * GET :300X/health status live
23
14
  *
24
- * Aucune configuration manuelle — l'outil scanne ~/.overmind/hermes/profiles/
25
- * et croise avec le registry live du bridge.
15
+ * Decouverte automatique:
16
+ * 1. Scan ports 3001-3020 (workers connus)
17
+ * 2. Scan ~/.overmind/hermes/profiles/ (agents Hermes)
18
+ * 3. Cross-reference: profile ↔ worker port
19
+ * 4. Lit ~/.overmind/bridge/workers.json si present
26
20
  */
27
21
  import { z } from 'zod';
28
22
  export declare const a2aHubSchema: z.ZodObject<{
@@ -31,10 +25,10 @@ export declare const a2aHubSchema: z.ZodObject<{
31
25
  send: "send";
32
26
  status: "status";
33
27
  query: "query";
28
+ discover: "discover";
34
29
  delegate: "delegate";
35
30
  fanout: "fanout";
36
31
  broadcast: "broadcast";
37
- discover: "discover";
38
32
  }>;
39
33
  target: z.ZodOptional<z.ZodString>;
40
34
  message: z.ZodOptional<z.ZodString>;
@@ -43,8 +37,6 @@ export declare const a2aHubSchema: z.ZodObject<{
43
37
  agentName: z.ZodString;
44
38
  promptPrefix: z.ZodOptional<z.ZodString>;
45
39
  }, z.core.$strip>>>;
46
- runner: z.ZodDefault<z.ZodOptional<z.ZodString>>;
47
- model: z.ZodOptional<z.ZodString>;
48
40
  mergeStrategy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
49
41
  concat: "concat";
50
42
  best: "best";
@@ -53,9 +45,9 @@ export declare const a2aHubSchema: z.ZodObject<{
53
45
  }>>>;
54
46
  race: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
55
47
  async: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
56
- callbackUrl: z.ZodOptional<z.ZodString>;
57
48
  accumulateContext: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
58
49
  timeoutMs: z.ZodOptional<z.ZodNumber>;
50
+ model: z.ZodOptional<z.ZodString>;
59
51
  }, z.core.$strip>;
60
52
  export declare function a2aHub(args: z.infer<typeof a2aHubSchema>): Promise<{
61
53
  content: {
@@ -1 +1 @@
1
- {"version":3,"file":"a2a_hub.d.ts","sourceRoot":"","sources":["../../src/tools/a2a_hub.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoMxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyEvB,CAAC;AAIH,wBAAsB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC;;;;;;;;;;;;GAoe9D"}
1
+ {"version":3,"file":"a2a_hub.d.ts","sourceRoot":"","sources":["../../src/tools/a2a_hub.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmSxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgEvB,CAAC;AAiCH,wBAAsB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC;;;;;;;;;;;;GAse9D"}
@@ -1,44 +1,125 @@
1
1
  /**
2
2
  * ═══════════════════════════════════════════════════════════════════════════
3
- * A2A Hub — Outil MCP unifié pour la communication Agent-to-Agent
3
+ * A2A Hub — Outil MCP pour la communication Agent-to-Agent
4
4
  * ═══════════════════════════════════════════════════════════════════════════
5
5
  *
6
- * Cet outil donne aux agents une vue complète du système multi-agents:
6
+ * Architecture distribuee chaque worker est un serveur HTTP independant:
7
7
  *
8
- * - LISTER tous les agents persistants (Hermes profiles + live registry)
9
- * - VOIR ce que chaque agent fait en temps réel (status, busy/idle, dernière activité)
10
- * - DELEGUER une tâche à un autre agent (async avec callback)
11
- * - PIPELINE chainé (A→B→C avec passing de contexte)
12
- * - FANOUT parallèle (1→N + merge des résultats)
13
- * - QUERY multi-agents (poser une question à plusieurs agents simultanément)
14
- * - BROADCAST (message global à tous les agents online)
8
+ * discord-master (:discord) routes !trade TV Analyst :3002
9
+ * routes !sniper Sniperbot :3001
15
10
  *
16
- * L'agent qui appelle cet outil découvre AUTOMATIQUEMENT:
17
- * - Quels agents existent sur le système (profiles Hermes)
18
- * - Leur status (online/busy/idle/offline)
19
- * - Leur runner (hermes, claude, kilo, etc.)
20
- * - Leur modèle LLM
21
- * - Leur dernière activité
22
- * - Le compteur A2A (combien de messages envoyés/reçus)
11
+ * a2a_hub parle DIRECTEMENT aux workers HTTP:
12
+ * POST :300X/send → message synchrone
13
+ * GET :300X/health status live
23
14
  *
24
- * Aucune configuration manuelle — l'outil scanne ~/.overmind/hermes/profiles/
25
- * et croise avec le registry live du bridge.
15
+ * Decouverte automatique:
16
+ * 1. Scan ports 3001-3020 (workers connus)
17
+ * 2. Scan ~/.overmind/hermes/profiles/ (agents Hermes)
18
+ * 3. Cross-reference: profile ↔ worker port
19
+ * 4. Lit ~/.overmind/bridge/workers.json si present
26
20
  */
27
21
  import { z } from 'zod';
28
22
  import { execSync } from 'child_process';
29
23
  import fs from 'fs';
30
24
  import path from 'path';
31
25
  import os from 'os';
32
- // ─── Discovery: scan profiles + live status ────────────────────────────────
26
+ // ─── HTTP Helper (curl synchrone) ──────────────────────────────────────────
27
+ function httpGet(url, timeoutMs = 5000) {
28
+ try {
29
+ const result = execSync(`curl -s -m ${Math.floor(timeoutMs / 1000)} "${url}" 2>/dev/null`, {
30
+ encoding: 'utf8',
31
+ timeout: timeoutMs + 1000,
32
+ });
33
+ return JSON.parse(result);
34
+ }
35
+ catch {
36
+ return null;
37
+ }
38
+ }
39
+ function httpPost(url, body, timeoutMs = 300000) {
40
+ const payload = JSON.stringify(body);
41
+ try {
42
+ const escapedPayload = payload.replace(/'/g, "'\\''");
43
+ const result = execSync(`curl -s -m ${Math.floor(timeoutMs / 1000)} -X POST "${url}" -H "Content-Type: application/json" -d '${escapedPayload}' 2>/dev/null`, { encoding: 'utf8', timeout: timeoutMs + 1000, maxBuffer: 50 * 1024 * 1024 });
44
+ return JSON.parse(result);
45
+ }
46
+ catch {
47
+ return null;
48
+ }
49
+ }
50
+ // ─── Worker Discovery ──────────────────────────────────────────────────────
51
+ function discoverWorkers() {
52
+ const workers = [];
53
+ const workersJsonPath = path.join(os.homedir(), '.overmind', 'bridge', 'workers.json');
54
+ // 1. Try reading workers registry
55
+ let knownPorts = [];
56
+ if (fs.existsSync(workersJsonPath)) {
57
+ try {
58
+ const data = JSON.parse(fs.readFileSync(workersJsonPath, 'utf8'));
59
+ if (Array.isArray(data.workers)) {
60
+ knownPorts = data.workers.map((w) => ({
61
+ port: w.port,
62
+ agentName: w.agentName || 'unknown',
63
+ }));
64
+ }
65
+ }
66
+ catch {
67
+ // ignore
68
+ }
69
+ }
70
+ // 2. Fallback: scan ports 3001-3020
71
+ if (knownPorts.length === 0) {
72
+ knownPorts = [];
73
+ for (let port = 3001; port <= 3020; port++) {
74
+ knownPorts.push({ port, agentName: '' });
75
+ }
76
+ }
77
+ // 3. Probe each port
78
+ for (const { port, agentName } of knownPorts) {
79
+ const url = `http://localhost:${port}`;
80
+ const health = httpGet(`${url}/health`, 3000);
81
+ if (health) {
82
+ // Worker is online — extract agent name from health
83
+ const detectedAgent = agentName ||
84
+ health.agent ||
85
+ health.agentName ||
86
+ health.service ||
87
+ 'unknown';
88
+ workers.push({
89
+ port,
90
+ url,
91
+ online: true,
92
+ agentName: detectedAgent,
93
+ health,
94
+ });
95
+ }
96
+ else {
97
+ // Check if port is listening at all
98
+ workers.push({
99
+ port,
100
+ url,
101
+ online: false,
102
+ agentName: agentName || '',
103
+ });
104
+ }
105
+ }
106
+ return workers;
107
+ }
108
+ // ─── Agent Discovery ───────────────────────────────────────────────────────
33
109
  function discoverAgents() {
34
110
  const home = os.homedir();
35
- const profilesDir = process.platform === 'win32'
36
- ? path.join(home, '.overmind', 'hermes', 'profiles')
37
- : path.join(home, '.overmind', 'hermes', 'profiles');
38
- const bridgeUrl = process.env.OVERMIND_BRIDGE_URL || 'http://localhost:3100/rpc';
111
+ const profilesDir = path.join(home, '.overmind', 'hermes', 'profiles');
39
112
  const selfAgent = process.env.OVERMIND_AGENT_NAME || null;
40
113
  const agents = [];
41
- // 1. Scan Hermes profiles
114
+ const workers = discoverWorkers();
115
+ // Build worker lookup: agentName → worker
116
+ const workerByAgent = new Map();
117
+ for (const w of workers) {
118
+ if (w.online && w.agentName && w.agentName !== 'unknown') {
119
+ workerByAgent.set(w.agentName, w);
120
+ }
121
+ }
122
+ // Scan Hermes profiles
42
123
  if (fs.existsSync(profilesDir)) {
43
124
  const entries = fs.readdirSync(profilesDir, { withFileTypes: true });
44
125
  for (const entry of entries) {
@@ -51,12 +132,12 @@ function discoverAgents() {
51
132
  let provider = 'unknown';
52
133
  if (fs.existsSync(configPath)) {
53
134
  const config = fs.readFileSync(configPath, 'utf8');
54
- const modelMatch = config.match(/model:\s*(.+)/);
55
- const providerMatch = config.match(/provider:\s*(.+)/);
135
+ const modelMatch = config.match(/^\s*model:\s*(?!provider)(.+)/m);
136
+ const providerMatch = config.match(/^\s*provider:\s*(.+)/m);
56
137
  if (modelMatch)
57
- model = modelMatch[1].trim();
138
+ model = modelMatch[1].trim().replace(/['"]/g, '');
58
139
  if (providerMatch)
59
- provider = providerMatch[1].trim();
140
+ provider = providerMatch[1].trim().replace(/['"]/g, '');
60
141
  }
61
142
  // Read profile.yaml for description
62
143
  const profileYamlPath = path.join(profilePath, 'profile.yaml');
@@ -92,119 +173,96 @@ function discoverAgents() {
92
173
  }
93
174
  // Check memory
94
175
  const hasMemory = fs.existsSync(path.join(profilePath, 'memories', 'MEMORY.md'));
95
- // Last activity (state.db mtime)
176
+ // Last activity
96
177
  let lastActivity = null;
97
178
  const stateDb = path.join(profilePath, 'state.db');
98
179
  if (fs.existsSync(stateDb)) {
99
180
  try {
100
- const stat = fs.statSync(stateDb);
101
- lastActivity = stat.mtime.toISOString();
181
+ lastActivity = fs.statSync(stateDb).mtime.toISOString();
102
182
  }
103
183
  catch {
104
184
  // ignore
105
185
  }
106
186
  }
187
+ // Cross-reference with workers
188
+ const worker = workerByAgent.get(entry.name);
107
189
  agents.push({
108
190
  name: entry.name,
109
- runner: 'hermes',
110
191
  model,
111
- status: 'unknown', // Will be enriched from bridge if available
112
192
  provider,
113
- lastActivity,
193
+ status: worker ? 'online' : 'offline',
194
+ workerPort: worker?.port ?? null,
195
+ workerUrl: worker?.url ?? null,
114
196
  description,
115
197
  skillsCount,
116
198
  hasMemory,
117
- a2aCapabilities: ['delegate', 'pipeline', 'fanout', 'query', 'broadcast', 'a2a'],
199
+ lastActivity,
118
200
  });
119
201
  }
120
202
  }
121
- // 2. Try to get live status from bridge
122
- let bridgeOnline = false;
123
- try {
124
- const healthUrl = bridgeUrl.replace('/rpc', '/health');
125
- const result = execSync(`curl -s -m 3 "${healthUrl}" 2>/dev/null || echo '{}'`, {
126
- encoding: 'utf8',
127
- timeout: 5000,
128
- });
129
- const health = JSON.parse(result);
130
- bridgeOnline = health.status === 'online' || health.status === 'degraded';
131
- // Enrich agents with live status from registry
132
- if (health.agents && Array.isArray(health.agents)) {
133
- for (const liveAgent of health.agents) {
134
- const found = agents.find((a) => a.name === liveAgent.name);
135
- if (found) {
136
- found.status = liveAgent.status;
137
- }
138
- }
139
- }
140
- }
141
- catch {
142
- // Bridge not reachable — agents keep 'unknown' status
143
- }
144
- // Default 'offline' for agents we couldn't reach
145
- for (const a of agents) {
146
- if (a.status === 'unknown')
147
- a.status = 'offline';
148
- }
149
203
  return {
150
204
  totalAgents: agents.length,
151
- onlineAgents: agents.filter((a) => a.status === 'online').length,
152
- busyAgents: agents.filter((a) => a.status === 'busy').length,
205
+ onlineWorkers: workers.filter((w) => w.online).length,
153
206
  agents,
207
+ workers,
154
208
  selfAgent,
155
- bridgeUrl,
156
- bridgeOnline,
157
209
  };
158
210
  }
159
- // ─── RPC Helper ────────────────────────────────────────────────────────────
160
- function rpcCall(method, params) {
161
- const bridgeUrl = process.env.OVERMIND_BRIDGE_URL || 'http://localhost:3100/rpc';
162
- const payload = JSON.stringify({
163
- jsonrpc: '2.0',
164
- id: Date.now(),
165
- method,
166
- params,
167
- });
168
- try {
169
- const result = execSync(`curl -s -m 300 -X POST "${bridgeUrl}" -H "Content-Type: application/json" -d '${payload.replace(/'/g, "'\\''")}' 2>/dev/null`, { encoding: 'utf8', timeout: 310000, maxBuffer: 50 * 1024 * 1024 });
170
- const response = JSON.parse(result);
171
- if (response.error) {
172
- return {
173
- error: response.error.message,
174
- code: response.error.code,
175
- };
176
- }
177
- return response.result;
211
+ // ─── Send message to a worker ──────────────────────────────────────────────
212
+ function sendToWorker(port, message, opts = {}) {
213
+ const url = `http://localhost:${port}/send`;
214
+ const body = {
215
+ message,
216
+ userId: `a2a_${process.env.OVERMIND_AGENT_NAME || 'system'}`,
217
+ username: process.env.OVERMIND_AGENT_NAME || 'A2A Hub',
218
+ channelId: 'a2a',
219
+ };
220
+ if (opts.model)
221
+ body.model = opts.model;
222
+ const response = httpPost(url, body, opts.timeoutMs ?? 300000);
223
+ if (response === null) {
224
+ return { success: false, text: `Worker :${port} injoignable`, raw: null };
178
225
  }
179
- catch (err) {
180
- return { error: err.message };
226
+ if (response.error) {
227
+ return {
228
+ success: false,
229
+ text: `Erreur :${port}: ${response.error}`,
230
+ raw: response,
231
+ };
181
232
  }
233
+ // Workers may return { result, content, response, output }
234
+ const text = response.result ||
235
+ response.response ||
236
+ response.output ||
237
+ (Array.isArray(response.content)
238
+ ? response.content.map((c) => c.text || '').join('\n')
239
+ : '') ||
240
+ JSON.stringify(response);
241
+ return { success: true, text, raw: response };
182
242
  }
183
243
  // ─── Schema ────────────────────────────────────────────────────────────────
184
244
  export const a2aHubSchema = z.object({
185
245
  action: z
186
246
  .enum(['discover', 'status', 'send', 'delegate', 'pipeline', 'fanout', 'query', 'broadcast'])
187
- .describe("Action à effectuer: discover=liste tous les agents, status=état d'un agent, send=message synchrone, delegate=async+callback, pipeline=chaîne A→B→C, fanout=1→N parallèle+merge, query=question multi-agents, broadcast=message global"),
188
- // ─── Target (for send/delegate/status) ──────────────────────────────────
189
- target: z.string().optional().describe("Nom de l'agent cible (ex: 'sniperbot_analyst')"),
190
- // ─── Message ─────────────────────────────────────────────────────────────
247
+ .describe("Action: discover=liste tous les agents+workers, status=état d'un worker, send=message synchrone, delegate=async, pipeline=chaîne A→B→C, fanout=1→N+merge, query=multi-agents, broadcast=global"),
248
+ target: z
249
+ .string()
250
+ .optional()
251
+ .describe("Nom de l'agent cible (ex: 'sniperbot_analyst') OU port du worker (ex: '3001')"),
191
252
  message: z.string().optional().describe('Le message/prompt à envoyer aux agents'),
192
- // ─── Targets (for fanout/query/broadcast/pipeline) ──────────────────────
193
253
  targets: z
194
254
  .array(z.string())
195
255
  .optional()
196
- .describe('Liste des agents cibles (pour fanout/query). Si absent pour broadcast → tous les agents online'),
197
- // ─── Pipeline steps ──────────────────────────────────────────────────────
256
+ .describe('Liste des agents cibles (noms ou ports) pour fanout/query/broadcast'),
198
257
  steps: z
199
258
  .array(z.object({
200
- agentName: z.string(),
259
+ agentName: z
260
+ .string()
261
+ .describe("Nom de l'agent ou port (ex: 'sniperbot_analyst' ou '3001')"),
201
262
  promptPrefix: z.string().optional(),
202
263
  }))
203
264
  .optional()
204
265
  .describe('Étapes de la pipeline (pour action=pipeline)'),
205
- // ─── Options ─────────────────────────────────────────────────────────────
206
- runner: z.string().optional().default('hermes').describe('Runner à utiliser (default: hermes)'),
207
- model: z.string().optional().describe('Modèle LLM à utiliser (override)'),
208
266
  mergeStrategy: z
209
267
  .enum(['concat', 'best', 'vote', 'first_success'])
210
268
  .optional()
@@ -214,232 +272,225 @@ export const a2aHubSchema = z.object({
214
272
  .boolean()
215
273
  .optional()
216
274
  .default(false)
217
- .describe("Pour broadcast: si true, retourne dès qu'un agent répond"),
275
+ .describe('Pour broadcast: si true, premier qui répond gagne'),
218
276
  async: z
219
277
  .boolean()
220
278
  .optional()
221
279
  .default(true)
222
- .describe('Pour delegate: si true (default), retourne immédiatement avec un taskId'),
223
- callbackUrl: z
224
- .string()
225
- .optional()
226
- .describe("Pour delegate: URL appelée quand l'agent termine (POST result)"),
280
+ .describe('Pour delegate: si true (default), retourne immédiatement'),
227
281
  accumulateContext: z
228
282
  .boolean()
229
283
  .optional()
230
284
  .default(false)
231
- .describe('Pour pipeline: si true, chaque step reçoit tous les outputs précédents'),
285
+ .describe('Pour pipeline: chaque step reçoit tous les outputs précédents'),
232
286
  timeoutMs: z
233
287
  .number()
234
288
  .int()
235
- .min(1000)
236
- .max(3600000)
289
+ .min(5000)
290
+ .max(600000)
237
291
  .optional()
238
- .describe('Timeout en ms (défaut selon action)'),
292
+ .describe('Timeout par agent en ms (default: 300000 = 5min)'),
293
+ model: z.string().optional().describe('Modèle LLM override'),
239
294
  });
295
+ // ─── Resolve agent name to worker port ─────────────────────────────────────
296
+ function resolveTarget(target, discovery) {
297
+ // If target is a port number
298
+ const portMatch = target.match(/^(\d{4,5})$/);
299
+ if (portMatch) {
300
+ const port = parseInt(portMatch[1], 10);
301
+ const worker = discovery.workers.find((w) => w.port === port);
302
+ return { port, agentName: worker?.agentName || target };
303
+ }
304
+ // If target is an agent name, find its worker
305
+ const agent = discovery.agents.find((a) => a.name === target);
306
+ if (agent?.workerPort) {
307
+ return { port: agent.workerPort, agentName: target };
308
+ }
309
+ // Try online workers
310
+ const worker = discovery.workers.find((w) => w.online && w.agentName === target);
311
+ if (worker) {
312
+ return { port: worker.port, agentName: target };
313
+ }
314
+ return { port: null, agentName: target };
315
+ }
240
316
  // ─── Execute ───────────────────────────────────────────────────────────────
241
317
  export async function a2aHub(args) {
242
318
  const selfAgent = process.env.OVERMIND_AGENT_NAME || 'unknown';
243
- const { action } = args;
319
+ const timeout = args.timeoutMs ?? 300000;
244
320
  try {
245
- switch (action) {
321
+ switch (args.action) {
246
322
  // ═══════════════════════════════════════════════════════════════════════
247
- // DISCOVER — Liste TOUS les agents + leur status temps réel
323
+ // DISCOVER
248
324
  // ═══════════════════════════════════════════════════════════════════════
249
325
  case 'discover': {
250
- const discovery = discoverAgents();
326
+ const d = discoverAgents();
251
327
  const lines = [
252
328
  `🌐 **A2A Hub — Découverte du système multi-agents**`,
253
329
  ``,
254
- `**Self:** ${discovery.selfAgent || '(inconnu)'}`,
255
- `**Bridge:** ${discovery.bridgeUrl} (${discovery.bridgeOnline ? '✅ online' : '❌ offline'})`,
256
- `**Total agents:** ${discovery.totalAgents} | **Online:** ${discovery.onlineAgents} | **Busy:** ${discovery.busyAgents}`,
330
+ `**Self:** ${d.selfAgent || '(inconnu)'}`,
331
+ `**Workers online:** ${d.onlineWorkers}`,
332
+ `**Total agents:** ${d.totalAgents}`,
333
+ ``,
334
+ `### Workers HTTP`,
257
335
  ``,
258
336
  ];
259
- if (discovery.agents.length === 0) {
337
+ const onlineWorkers = d.workers.filter((w) => w.online);
338
+ if (onlineWorkers.length === 0) {
339
+ lines.push('Aucun worker HTTP en ligne.');
340
+ }
341
+ else {
342
+ lines.push('| Port | Agent | Status | URL |');
343
+ lines.push('|------|-------|--------|-----|');
344
+ for (const w of onlineWorkers) {
345
+ lines.push(`| :${w.port} | ${w.agentName} | 🟢 online | ${w.url} |`);
346
+ }
347
+ }
348
+ lines.push('');
349
+ lines.push('### Agents Hermes');
350
+ lines.push('');
351
+ if (d.agents.length === 0) {
260
352
  lines.push('Aucun agent trouvé dans ~/.overmind/hermes/profiles/');
261
353
  }
262
354
  else {
263
- lines.push('| Agent | Status | Model | Provider | Skills | Description |');
264
- lines.push('|-------|--------|-------|----------|--------|-------------|');
265
- for (const a of discovery.agents) {
266
- const statusIcon = a.status === 'online'
267
- ? '🟢'
268
- : a.status === 'busy'
269
- ? '🟡'
270
- : a.status === 'idle'
271
- ? '⚪'
272
- : '🔴';
273
- lines.push(`| ${a.name === selfAgent ? '**' + a.name + ' (self)**' : a.name} | ${statusIcon} ${a.status} | ${a.model} | ${a.provider} | ${a.skillsCount} | ${a.description.slice(0, 40)} |`);
355
+ lines.push('| Agent | Status | Worker | Model | Provider | Skills | Description |');
356
+ lines.push('|-------|--------|--------|-------|----------|--------|-------------|');
357
+ for (const a of d.agents) {
358
+ const statusIcon = a.status === 'online' ? '🟢' : '🔴';
359
+ const workerInfo = a.workerPort ? `:${a.workerPort}` : '';
360
+ const nameDisplay = a.name === selfAgent ? `**${a.name} (self)**` : a.name;
361
+ lines.push(`| ${nameDisplay} | ${statusIcon} ${a.status} | ${workerInfo} | ${a.model} | ${a.provider} | ${a.skillsCount} | ${a.description.slice(0, 40)} |`);
274
362
  }
275
- lines.push('');
276
- lines.push('**Capacités A2A disponibles:**');
277
- lines.push(' • `send` — Message synchrone A→B');
278
- lines.push(' • `delegate` — Tâche async + callback');
279
- lines.push(' • `pipeline` — Chaîne A→B→C');
280
- lines.push(' • `fanout` — 1→N parallèle + merge');
281
- lines.push(' • `query` — Question multi-agents');
282
- lines.push(' • `broadcast` — Message global');
283
363
  }
284
- return {
285
- content: [{ type: 'text', text: lines.join('\n') }],
286
- };
364
+ lines.push('');
365
+ lines.push('**Actions disponibles:** send, delegate, pipeline, fanout, query, broadcast');
366
+ lines.push('**Exemple:** a2a_hub(action: "send", target: "sniperbot_analyst", message: "Analyse BTC")');
367
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
287
368
  }
288
369
  // ═══════════════════════════════════════════════════════════════════════
289
- // STATUS — État détaillé d'un agent
370
+ // STATUS
290
371
  // ═══════════════════════════════════════════════════════════════════════
291
372
  case 'status': {
292
373
  if (!args.target) {
293
374
  return {
294
- content: [
295
- {
296
- type: 'text',
297
- text: '❌ Paramètre `target` requis pour action=status',
298
- },
299
- ],
375
+ content: [{ type: 'text', text: '❌ `target` requis (nom ou port)' }],
300
376
  isError: true,
301
377
  };
302
378
  }
303
- const result = rpcCall('agent.status', {
304
- agentName: args.target,
305
- runner: args.runner,
306
- action: 'status',
307
- });
308
- const r = result;
309
- if (r.error) {
379
+ const d = discoverAgents();
380
+ const { port, agentName } = resolveTarget(args.target, d);
381
+ if (!port) {
310
382
  return {
311
383
  content: [
312
- {
313
- type: 'text',
314
- text: `❌ Erreur status ${args.target}: ${r.error}`,
315
- },
384
+ { type: 'text', text: `❌ Worker pour "${args.target}" introuvable` },
316
385
  ],
317
386
  isError: true,
318
387
  };
319
388
  }
320
- const local = (r.local || r.result?.local);
321
- const lines = [`📊 **Status: ${args.target}**`, ``];
322
- if (local) {
323
- lines.push(`**État local:** ${local.status || 'unknown'}`);
324
- lines.push(`**Runner:** ${local.runner || 'unknown'}`);
325
- lines.push(`**Total runs:** ${local.totalRuns || 0}`);
326
- lines.push(`**Erreurs:** ${local.totalErrors || 0}`);
327
- lines.push(`**A2A reçus:** ${local.a2aReceived || 0}`);
328
- lines.push(`**A2A envoyés:** ${local.a2aSent || 0}`);
329
- if (local.currentSessionId) {
330
- lines.push(`**Session:** ${local.currentSessionId}`);
331
- }
332
- if (local.lastActivityAt) {
333
- lines.push(`**Dernière activité:** ${new Date(local.lastActivityAt).toISOString()}`);
334
- }
389
+ const health = httpGet(`http://localhost:${port}/health`);
390
+ if (!health) {
391
+ return {
392
+ content: [{ type: 'text', text: `❌ Worker :${port} injoignable` }],
393
+ isError: true,
394
+ };
335
395
  }
336
- return {
337
- content: [{ type: 'text', text: lines.join('\n') }],
338
- };
396
+ const lines = [`📊 **Status: ${agentName} (:${port})**`, ``];
397
+ for (const [key, value] of Object.entries(health)) {
398
+ lines.push(`**${key}:** ${typeof value === 'object' ? JSON.stringify(value).slice(0, 100) : value}`);
399
+ }
400
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
339
401
  }
340
402
  // ═══════════════════════════════════════════════════════════════════════
341
- // SEND — Message synchrone A→B (via agent.a2a)
403
+ // SEND
342
404
  // ═══════════════════════════════════════════════════════════════════════
343
405
  case 'send': {
344
406
  if (!args.target || !args.message) {
407
+ return {
408
+ content: [{ type: 'text', text: '❌ `target` et `message` requis' }],
409
+ isError: true,
410
+ };
411
+ }
412
+ const d = discoverAgents();
413
+ const { port, agentName } = resolveTarget(args.target, d);
414
+ if (!port) {
345
415
  return {
346
416
  content: [
347
417
  {
348
418
  type: 'text',
349
- text: '❌ Paramètres `target` et `message` requis pour action=send',
419
+ text: `❌ Worker pour "${args.target}" introuvable. Utilisez action=discover pour lister les agents.`,
350
420
  },
351
421
  ],
352
422
  isError: true,
353
423
  };
354
424
  }
355
- const result = rpcCall('agent.a2a', {
356
- fromAgent: selfAgent,
357
- toAgent: args.target,
358
- runner: args.runner,
359
- prompt: args.message,
360
- ...(args.model ? { model: args.model } : {}),
425
+ const enrichedMessage = `[A2A — Message from ${selfAgent}]\n${args.message}`;
426
+ const result = sendToWorker(port, enrichedMessage, {
427
+ model: args.model,
428
+ timeoutMs: timeout,
361
429
  });
362
- const r = result;
363
- if (r.error) {
430
+ if (!result.success) {
364
431
  return {
365
- content: [
366
- {
367
- type: 'text',
368
- text: `❌ Erreur send → ${args.target}: ${r.error}`,
369
- },
370
- ],
432
+ content: [{ type: 'text', text: `❌ ${result.text}` }],
371
433
  isError: true,
372
434
  };
373
435
  }
374
- const content = (r.content || []);
375
- const responseText = content.map((c) => c.text).join('\n');
376
436
  return {
377
437
  content: [
378
438
  {
379
439
  type: 'text',
380
- text: `📤 **Message envoyé à ${args.target}**\n\n${responseText}`,
440
+ text: `📤 **Message envoyé à ${agentName} (:${port})**\n\n${result.text}`,
381
441
  },
382
442
  ],
383
443
  };
384
444
  }
385
445
  // ═══════════════════════════════════════════════════════════════════════
386
- // DELEGATE — Async fire-and-forget + callback
446
+ // DELEGATE (async fire and forget)
387
447
  // ═══════════════════════════════════════════════════════════════════════
388
448
  case 'delegate': {
389
449
  if (!args.target || !args.message) {
390
450
  return {
391
- content: [
392
- {
393
- type: 'text',
394
- text: '❌ Paramètres `target` et `message` requis pour action=delegate',
395
- },
396
- ],
451
+ content: [{ type: 'text', text: '❌ `target` et `message` requis' }],
397
452
  isError: true,
398
453
  };
399
454
  }
400
- const result = rpcCall('agent.delegate', {
401
- fromAgent: selfAgent,
402
- toAgent: args.target,
403
- runner: args.runner,
404
- prompt: args.message,
405
- async: args.async,
406
- ...(args.model ? { model: args.model } : {}),
407
- ...(args.callbackUrl ? { callbackUrl: args.callbackUrl } : {}),
408
- });
409
- const r = result;
410
- if (r.error) {
455
+ const d = discoverAgents();
456
+ const { port, agentName } = resolveTarget(args.target, d);
457
+ if (!port) {
411
458
  return {
412
459
  content: [
413
- {
414
- type: 'text',
415
- text: `❌ Erreur delegate → ${args.target}: ${r.error}`,
416
- },
460
+ { type: 'text', text: `❌ Worker pour "${args.target}" introuvable` },
417
461
  ],
418
462
  isError: true,
419
463
  };
420
464
  }
421
- if (args.async) {
422
- return {
423
- content: [
424
- {
425
- type: 'text',
426
- text: `🤝 **Tâche déléguée à ${args.target}**\n\n**TaskId:** ${r.taskId}\n**Status:** ${r.status}\n${r.message || ''}`,
427
- },
428
- ],
429
- };
465
+ // Fire and forget — don't wait for response
466
+ const enrichedMessage = `[A2A — Delegate from ${selfAgent}]\n${args.message}`;
467
+ const url = `http://localhost:${port}/send`;
468
+ const body = {
469
+ message: enrichedMessage,
470
+ userId: `a2a_${selfAgent}`,
471
+ username: selfAgent,
472
+ channelId: 'a2a_delegate',
473
+ ...(args.model ? { model: args.model } : {}),
474
+ };
475
+ // Spawn curl in background (fire-and-forget)
476
+ try {
477
+ const payload = JSON.stringify(body).replace(/'/g, "'\\''");
478
+ execSync(`nohup curl -s -m ${Math.floor(timeout / 1000)} -X POST "${url}" -H "Content-Type: application/json" -d '${payload}' > /dev/null 2>&1 &`, { timeout: 2000 });
479
+ }
480
+ catch {
481
+ // ignore — fire and forget
430
482
  }
431
- const content = (r.content || []);
432
483
  return {
433
484
  content: [
434
485
  {
435
486
  type: 'text',
436
- text: `✅ **${args.target} a terminé**\n\n${content.map((c) => c.text).join('\n')}`,
487
+ text: `🤝 **Tâche déléguée à ${agentName} (:${port})**\n\nLe worker traite la requête en arrière-plan. Le résultat sera disponible dans sa session.`,
437
488
  },
438
489
  ],
439
490
  };
440
491
  }
441
492
  // ═══════════════════════════════════════════════════════════════════════
442
- // PIPELINE — Chaîne séquentielle A→B→C
493
+ // PIPELINE
443
494
  // ═══════════════════════════════════════════════════════════════════════
444
495
  case 'pipeline': {
445
496
  if (!args.message || !args.steps || args.steps.length === 0) {
@@ -447,201 +498,227 @@ export async function a2aHub(args) {
447
498
  content: [
448
499
  {
449
500
  type: 'text',
450
- text: "Paramètres `message` (prompt initial) et `steps` (chaîne d'agents) requis pour action=pipeline",
501
+ text: '❌ `message` (prompt initial) et `steps` requis pour pipeline',
451
502
  },
452
503
  ],
453
504
  isError: true,
454
505
  };
455
506
  }
456
- const result = rpcCall('agent.pipeline', {
457
- initiator: selfAgent,
458
- runner: args.runner,
459
- prompt: args.message,
460
- steps: args.steps,
461
- accumulateContext: args.accumulateContext,
462
- ...(args.timeoutMs ? { totalTimeoutMs: args.timeoutMs } : {}),
463
- });
464
- const r = result;
465
- if (r.error) {
466
- return {
467
- content: [
468
- {
469
- type: 'text',
470
- text: `❌ Erreur pipeline: ${r.error}`,
471
- },
472
- ],
473
- isError: true,
474
- };
507
+ const d = discoverAgents();
508
+ const outputs = [];
509
+ let currentPrompt = args.message;
510
+ for (let i = 0; i < args.steps.length; i++) {
511
+ const step = args.steps[i];
512
+ const { port, agentName } = resolveTarget(step.agentName, d);
513
+ if (!port) {
514
+ outputs.push({ agent: step.agentName, output: 'Worker introuvable', success: false });
515
+ break;
516
+ }
517
+ const stepPrompt = (step.promptPrefix ? step.promptPrefix + '\n\n' : '') +
518
+ `[Pipeline Step ${i + 1}/${args.steps.length}]\n${currentPrompt}`;
519
+ const result = sendToWorker(port, stepPrompt, { timeoutMs: timeout });
520
+ outputs.push({
521
+ agent: `${agentName} (:${port})`,
522
+ output: result.text,
523
+ success: result.success,
524
+ });
525
+ if (!result.success)
526
+ break;
527
+ currentPrompt = args.accumulateContext
528
+ ? outputs.map((o) => `[${o.agent}]: ${o.output}`).join('\n\n---\n\n')
529
+ : result.text;
475
530
  }
476
- const outputs = (r.outputs || []);
477
531
  const lines = [
478
- `🔗 **Pipeline terminé** (${r.executedSteps}/${r.totalSteps} steps)`,
532
+ `🔗 **Pipeline terminé** (${outputs.length}/${args.steps.length} steps)`,
479
533
  ``,
480
534
  ];
481
535
  for (const o of outputs) {
482
- lines.push(`**${o.success ? '✅' : '❌'} ${o.agentName}:**`);
483
- lines.push(o.output.slice(0, 500) + (o.output.length > 500 ? '...' : ''));
536
+ lines.push(`**${o.success ? '✅' : '❌'} ${o.agent}:**`);
537
+ lines.push(o.output.slice(0, 800) + (o.output.length > 800 ? '...' : ''));
484
538
  lines.push('');
485
539
  }
486
- lines.push(`**Output final:**`);
487
- lines.push((r.finalOutput || '').slice(0, 1000));
488
- return {
489
- content: [{ type: 'text', text: lines.join('\n') }],
490
- };
540
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
491
541
  }
492
542
  // ═══════════════════════════════════════════════════════════════════════
493
- // FANOUT — 1→N parallèle + merge
543
+ // FANOUT
494
544
  // ═══════════════════════════════════════════════════════════════════════
495
545
  case 'fanout': {
496
546
  if (!args.message || !args.targets || args.targets.length === 0) {
497
547
  return {
498
- content: [
499
- {
500
- type: 'text',
501
- text: '❌ Paramètres `message` et `targets` requis pour action=fanout',
502
- },
503
- ],
548
+ content: [{ type: 'text', text: '❌ `message` et `targets` requis' }],
504
549
  isError: true,
505
550
  };
506
551
  }
507
- const result = rpcCall('agent.fanout', {
508
- fromAgent: selfAgent,
509
- runner: args.runner,
510
- prompt: args.message,
511
- targets: args.targets,
512
- mergeStrategy: args.mergeStrategy,
513
- ...(args.model ? { model: args.model } : {}),
514
- ...(args.timeoutMs ? { agentTimeoutMs: args.timeoutMs } : {}),
515
- });
516
- const r = result;
517
- if (r.error) {
518
- return {
519
- content: [
520
- {
521
- type: 'text',
522
- text: `❌ Erreur fanout: ${r.error}`,
523
- },
524
- ],
525
- isError: true,
526
- };
552
+ const d = discoverAgents();
553
+ const enrichedMessage = `[A2A — Fanout from ${selfAgent}]\n${args.message}`;
554
+ // Run all in parallel
555
+ const results = args.targets
556
+ .map((target) => {
557
+ const { port } = resolveTarget(target, d);
558
+ if (!port) {
559
+ return { agent: target, success: false, text: 'Worker introuvable' };
560
+ }
561
+ return sendToWorker(port, enrichedMessage, { model: args.model, timeoutMs: timeout });
562
+ })
563
+ .map((r, i) => ({
564
+ agent: args.targets[i],
565
+ success: r.success,
566
+ text: r.text,
567
+ }));
568
+ // Merge
569
+ let merged;
570
+ let winner;
571
+ switch (args.mergeStrategy) {
572
+ case 'first_success': {
573
+ const first = results.find((r) => r.success);
574
+ merged = first ? first.text : 'Tous ont échoué';
575
+ winner = first?.agent;
576
+ break;
577
+ }
578
+ case 'best': {
579
+ const sorted = results
580
+ .filter((r) => r.success)
581
+ .sort((a, b) => b.text.length - a.text.length);
582
+ merged = sorted.length > 0 ? sorted[0].text : 'Tous ont échoué';
583
+ winner = sorted[0]?.agent;
584
+ break;
585
+ }
586
+ case 'concat':
587
+ default: {
588
+ merged = results
589
+ .map((r) => `### ${r.agent}${r.success ? '' : ' (ÉCHEC)'}\n${r.text}`)
590
+ .join('\n\n---\n\n');
591
+ break;
592
+ }
527
593
  }
594
+ const successCount = results.filter((r) => r.success).length;
528
595
  const lines = [
529
- `🌐 **Fanout terminé** (${r.successCount}/${r.totalResults} succès, merge=${r.mergeStrategy})`,
530
- ...(r.winner ? [`**Gagnant:** ${r.winner}`] : []),
596
+ `🌐 **Fanout** (${successCount}/${results.length} succès, merge=${args.mergeStrategy})`,
597
+ ...(winner ? [`**Gagnant:** ${winner}`] : []),
531
598
  ``,
532
- `**Résultat fusionné:**`,
533
- (r.merged || '').slice(0, 2000),
599
+ merged.slice(0, 3000),
534
600
  ];
535
- return {
536
- content: [{ type: 'text', text: lines.join('\n') }],
537
- };
601
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
538
602
  }
539
603
  // ═══════════════════════════════════════════════════════════════════════
540
- // QUERY — Question multi-agents rapide
604
+ // QUERY
541
605
  // ═══════════════════════════════════════════════════════════════════════
542
606
  case 'query': {
543
607
  if (!args.message || !args.targets || args.targets.length === 0) {
544
608
  return {
545
- content: [
546
- {
547
- type: 'text',
548
- text: '❌ Paramètres `message` et `targets` requis pour action=query',
549
- },
550
- ],
609
+ content: [{ type: 'text', text: '❌ `message` et `targets` requis' }],
551
610
  isError: true,
552
611
  };
553
612
  }
554
- const result = rpcCall('agent.query', {
555
- fromAgent: selfAgent,
556
- runner: args.runner,
557
- prompt: args.message,
558
- targets: args.targets,
559
- ...(args.model ? { model: args.model } : {}),
560
- ...(args.timeoutMs ? { agentTimeoutMs: args.timeoutMs } : {}),
561
- });
562
- const r = result;
563
- if (r.error) {
564
- return {
565
- content: [
566
- {
567
- type: 'text',
568
- text: `❌ Erreur query: ${r.error}`,
569
- },
570
- ],
571
- isError: true,
572
- };
573
- }
574
- const results = (r.results || []);
613
+ const d = discoverAgents();
614
+ const enrichedMessage = `[A2A — Query from ${selfAgent}]\n${args.message}`;
615
+ const queryTimeout = Math.min(timeout, 60000);
616
+ const results = args.targets
617
+ .map((target) => {
618
+ const { port } = resolveTarget(target, d);
619
+ if (!port) {
620
+ return { agent: target, success: false, text: 'Worker introuvable' };
621
+ }
622
+ return sendToWorker(port, enrichedMessage, {
623
+ model: args.model,
624
+ timeoutMs: queryTimeout,
625
+ });
626
+ })
627
+ .map((r, i) => ({
628
+ agent: args.targets[i],
629
+ success: r.success,
630
+ text: r.text,
631
+ }));
575
632
  const lines = [
576
- `❓ **Query multi-agents** (${r.successCount}/${r.totalQueried} réponses)`,
633
+ `❓ **Query multi-agents** (${results.filter((r) => r.success).length}/${results.length} réponses)`,
577
634
  ``,
578
635
  ];
579
- for (const res of results) {
580
- lines.push(`**${res.success ? '✅' : '❌'} ${res.agentName}:**`);
581
- lines.push(res.text.slice(0, 500) + (res.text.length > 500 ? '...' : ''));
636
+ for (const r of results) {
637
+ lines.push(`**${r.success ? '✅' : '❌'} ${r.agent}:**`);
638
+ lines.push(r.text.slice(0, 500) + (r.text.length > 500 ? '...' : ''));
582
639
  lines.push('');
583
640
  }
584
- return {
585
- content: [{ type: 'text', text: lines.join('\n') }],
586
- };
641
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
587
642
  }
588
643
  // ═══════════════════════════════════════════════════════════════════════
589
- // BROADCAST — Message global à tous les agents online
644
+ // BROADCAST
590
645
  // ═══════════════════════════════════════════════════════════════════════
591
646
  case 'broadcast': {
592
647
  if (!args.message) {
593
648
  return {
594
- content: [
595
- {
596
- type: 'text',
597
- text: '❌ Paramètre `message` requis pour action=broadcast',
598
- },
599
- ],
649
+ content: [{ type: 'text', text: '❌ `message` requis' }],
600
650
  isError: true,
601
651
  };
602
652
  }
603
- const result = rpcCall('agent.broadcast', {
604
- fromAgent: selfAgent,
605
- runner: args.runner,
606
- prompt: args.message,
607
- race: args.race,
608
- ...(args.targets ? { targets: args.targets } : {}),
609
- ...(args.model ? { model: args.model } : {}),
610
- ...(args.timeoutMs ? { agentTimeoutMs: args.timeoutMs } : {}),
611
- });
612
- const r = result;
613
- if (r.error) {
653
+ const d = discoverAgents();
654
+ // Determine targets
655
+ let targetWorkers;
656
+ if (args.targets && args.targets.length > 0) {
657
+ // Resolve each target to a worker
658
+ targetWorkers = args.targets
659
+ .map((t) => {
660
+ const { port } = resolveTarget(t, d);
661
+ return d.workers.find((w) => w.port === port);
662
+ })
663
+ .filter((w) => w !== undefined);
664
+ }
665
+ else {
666
+ // All online workers
667
+ targetWorkers = d.workers.filter((w) => w.online);
668
+ }
669
+ if (targetWorkers.length === 0) {
614
670
  return {
615
- content: [
616
- {
617
- type: 'text',
618
- text: `❌ Erreur broadcast: ${r.error}`,
619
- },
620
- ],
671
+ content: [{ type: 'text', text: '❌ Aucun worker online pour broadcast' }],
621
672
  isError: true,
622
673
  };
623
674
  }
624
- const results = (r.results || []);
625
- const lines = [
626
- `📡 **Broadcast ${r.race ? '(race mode)' : ''}** — ${r.successCount}/${r.total} succès`,
627
- ``,
628
- ];
629
- for (const res of results) {
630
- const text = res.content?.map((c) => c.text).join('\n') || res.error || '';
631
- lines.push(`**${res.success ? '✅' : '❌'} ${res.agentName}:**`);
632
- lines.push(text.slice(0, 300) + (text.length > 300 ? '...' : ''));
675
+ const enrichedMessage = `[A2A Broadcast from ${selfAgent}]\n${args.message}`;
676
+ if (args.race) {
677
+ // First to respond wins
678
+ for (const w of targetWorkers) {
679
+ const result = sendToWorker(w.port, enrichedMessage, {
680
+ model: args.model,
681
+ timeoutMs: timeout,
682
+ });
683
+ if (result.success) {
684
+ return {
685
+ content: [
686
+ {
687
+ type: 'text',
688
+ text: `📡 **Broadcast race — ${w.agentName} (:${w.port}) a gagné!**\n\n${result.text}`,
689
+ },
690
+ ],
691
+ };
692
+ }
693
+ }
694
+ return {
695
+ content: [{ type: 'text', text: '❌ Tous les workers ont échoué' }],
696
+ isError: true,
697
+ };
698
+ }
699
+ // Send to all in parallel
700
+ const results = targetWorkers.map((w) => {
701
+ const r = sendToWorker(w.port, enrichedMessage, {
702
+ model: args.model,
703
+ timeoutMs: timeout,
704
+ });
705
+ return { agent: `${w.agentName} (:${w.port})`, success: r.success, text: r.text };
706
+ });
707
+ const successCount = results.filter((r) => r.success).length;
708
+ const lines = [`📡 **Broadcast** — ${successCount}/${results.length} succès`, ``];
709
+ for (const r of results) {
710
+ lines.push(`**${r.success ? '✅' : '❌'} ${r.agent}:**`);
711
+ lines.push(r.text.slice(0, 300) + (r.text.length > 300 ? '...' : ''));
633
712
  lines.push('');
634
713
  }
635
- return {
636
- content: [{ type: 'text', text: lines.join('\n') }],
637
- };
714
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
638
715
  }
639
716
  default:
640
717
  return {
641
718
  content: [
642
719
  {
643
720
  type: 'text',
644
- text: `❌ Action inconnue: ${action}. Actions: discover, status, send, delegate, pipeline, fanout, query, broadcast`,
721
+ text: `❌ Action inconnue: ${args.action}`,
645
722
  },
646
723
  ],
647
724
  isError: true,
@@ -1 +1 @@
1
- {"version":3,"file":"a2a_hub.js","sourceRoot":"","sources":["../../src/tools/a2a_hub.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"a2a_hub.js","sourceRoot":"","sources":["../../src/tools/a2a_hub.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "overmind-mcp",
3
- "version": "3.4.1",
3
+ "version": "3.4.2",
4
4
  "description": "Orchestrateur universel agents IA multi-modeles via MCP. Inclut le protocole 'Custom-Nickname' pour identifier vos agents avec des surnoms originaux (The Chaos Prophet, Shadow Sniper, etc.), l'isolation mémoire (Private Memory Context) et le support pour QwenCli et Nous Hermes. Installation automatique des dépendances Docker (PostgreSQL, pgvector) inclus.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",