overmind-mcp 3.5.2 → 3.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.
- package/dist/bridge/BridgeProxy.d.ts +4 -2
- package/dist/bridge/BridgeProxy.d.ts.map +1 -1
- package/dist/bridge/BridgeProxy.js +31 -13
- package/dist/bridge/BridgeProxy.js.map +1 -1
- package/dist/bridge/types.d.ts +1 -1
- package/dist/bridge/types.d.ts.map +1 -1
- package/dist/bridge/types.js +4 -2
- package/dist/bridge/types.js.map +1 -1
- package/docs/overmind-bridge-commands-reference.md +438 -0
- package/docs/overmind-bridge-persistent-agents.md +393 -822
- package/package.json +1 -1
- package/docs/SOUL_pdf_bon_travail_v2.md +0 -132
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* ║ ║
|
|
9
9
|
* ║ ARCHITECTURE ║
|
|
10
10
|
* ║ ───────────── ║
|
|
11
|
-
* ║ OverBridgeService → BridgeProxy → HTTP
|
|
11
|
+
* ║ OverBridgeService → BridgeProxy → HTTP [::1]:3099/mcp ║
|
|
12
12
|
* ║ → Overmind MCP Server ║
|
|
13
13
|
* ╚══════════════════════════════════════════════════════════════════════╝
|
|
14
14
|
*/
|
|
@@ -38,7 +38,9 @@ export declare class BridgeProxy {
|
|
|
38
38
|
*/
|
|
39
39
|
call(toolName: string, args: Record<string, unknown>, timeoutMs?: number): Promise<McpResponse>;
|
|
40
40
|
/**
|
|
41
|
-
* Envoie
|
|
41
|
+
* Envoie un ping HTTP au serveur MCP.
|
|
42
|
+
* Utilise un simple GET /health (plus léger que le handshake JSON-RPC complet).
|
|
43
|
+
* Fallback: POST /mcp avec Accept SSE (si /health n'existe pas).
|
|
42
44
|
*/
|
|
43
45
|
ping(timeoutMs?: number): Promise<boolean>;
|
|
44
46
|
healthCheck(): Promise<HealthStatus>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BridgeProxy.d.ts","sourceRoot":"","sources":["../../src/bridge/BridgeProxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,WAAW,EAEZ,MAAM,YAAY,CAAC;AAEpB,OAAO,
|
|
1
|
+
{"version":3,"file":"BridgeProxy.d.ts","sourceRoot":"","sources":["../../src/bridge/BridgeProxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,WAAW,EAEZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAqE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAkDlH,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;gBAGzB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,EAC9B,aAAa,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAC7C,MAAM,CAAC,EAAE,YAAY;IAOvB,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,iBAAiB,IAAI,OAAO,YAAY,EAAE,aAAa,EAAE,CAE5D;IAED,IAAI,YAAY,IAAI,YAAY,CAE/B;IAID;;;;;;;;;;;OAWG;IACG,IAAI,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC;IAqDvB;;;;OAIG;IACG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgD1C,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;YAuB5B,MAAM;IA6CpB;;;;;OAKG;YACW,SAAS;CAkDxB"}
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
* ║ ║
|
|
9
9
|
* ║ ARCHITECTURE ║
|
|
10
10
|
* ║ ───────────── ║
|
|
11
|
-
* ║ OverBridgeService → BridgeProxy → HTTP
|
|
11
|
+
* ║ OverBridgeService → BridgeProxy → HTTP [::1]:3099/mcp ║
|
|
12
12
|
* ║ → Overmind MCP Server ║
|
|
13
13
|
* ╚══════════════════════════════════════════════════════════════════════╝
|
|
14
14
|
*/
|
|
15
15
|
import { DEFAULT_BRIDGE_CONFIG, DEFAULT_CIRCUIT_CONFIG } from './types.js';
|
|
16
|
-
import { createBridgeLogger, parseMcpResponseBody, withRetry } from './utils.js';
|
|
16
|
+
import { createBridgeLogger, parseMcpResponseBody, parseSseText, withRetry } from './utils.js';
|
|
17
17
|
// ─── Circuit Breaker ───────────────────────────────────────────────────────
|
|
18
18
|
class CircuitBreaker {
|
|
19
19
|
config;
|
|
@@ -130,24 +130,37 @@ export class BridgeProxy {
|
|
|
130
130
|
}
|
|
131
131
|
// ─── JSON-RPC Protocol Ping ──────────────────────────────────────────────
|
|
132
132
|
/**
|
|
133
|
-
* Envoie
|
|
133
|
+
* Envoie un ping HTTP au serveur MCP.
|
|
134
|
+
* Utilise un simple GET /health (plus léger que le handshake JSON-RPC complet).
|
|
135
|
+
* Fallback: POST /mcp avec Accept SSE (si /health n'existe pas).
|
|
134
136
|
*/
|
|
135
137
|
async ping(timeoutMs) {
|
|
136
138
|
const timeout = timeoutMs ?? 5_000;
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
-
id: this.rpcId++,
|
|
140
|
-
method: 'ping',
|
|
141
|
-
params: {},
|
|
142
|
-
};
|
|
139
|
+
const controller = new AbortController();
|
|
140
|
+
const timer = setTimeout(() => controller.abort(), timeout);
|
|
143
141
|
try {
|
|
144
|
-
|
|
145
|
-
const
|
|
146
|
-
|
|
142
|
+
// Strategy: try GET /health first (lightweight, FastMCP exposes it)
|
|
143
|
+
const healthUrl = this.config.mcpUrl.replace(/\/mcp\/?$/, '/health');
|
|
144
|
+
let response = await fetch(healthUrl, {
|
|
145
|
+
method: 'GET',
|
|
146
|
+
signal: controller.signal,
|
|
147
|
+
});
|
|
148
|
+
if (response.ok) {
|
|
149
|
+
clearTimeout(timer);
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
// Fallback: POST /mcp with SSE Accept (real MCP ping)
|
|
153
|
+
const request = {
|
|
154
|
+
jsonrpc: '2.0',
|
|
155
|
+
id: this.rpcId++,
|
|
156
|
+
method: 'ping',
|
|
157
|
+
params: {},
|
|
158
|
+
};
|
|
159
|
+
response = await fetch(this.config.mcpUrl, {
|
|
147
160
|
method: 'POST',
|
|
148
161
|
headers: {
|
|
149
162
|
'Content-Type': 'application/json',
|
|
150
|
-
Accept: 'application/json',
|
|
163
|
+
Accept: 'application/json, text/event-stream',
|
|
151
164
|
},
|
|
152
165
|
body: JSON.stringify(request),
|
|
153
166
|
signal: controller.signal,
|
|
@@ -156,10 +169,15 @@ export class BridgeProxy {
|
|
|
156
169
|
if (!response.ok)
|
|
157
170
|
return false;
|
|
158
171
|
const bodyText = await response.text();
|
|
172
|
+
// Accept both SSE and plain JSON
|
|
173
|
+
const sse = parseSseText(bodyText);
|
|
174
|
+
if (sse)
|
|
175
|
+
return !sse.error;
|
|
159
176
|
const parsed = JSON.parse(bodyText.trim());
|
|
160
177
|
return parsed && parsed.jsonrpc === '2.0' && !parsed.error;
|
|
161
178
|
}
|
|
162
179
|
catch {
|
|
180
|
+
clearTimeout(timer);
|
|
163
181
|
return false;
|
|
164
182
|
}
|
|
165
183
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BridgeProxy.js","sourceRoot":"","sources":["../../src/bridge/BridgeProxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAUH,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"BridgeProxy.js","sourceRoot":"","sources":["../../src/bridge/BridgeProxy.ts"],"names":[],"mappings":"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"}
|
package/dist/bridge/types.d.ts
CHANGED
|
@@ -99,7 +99,7 @@ export interface McpServerSpec {
|
|
|
99
99
|
url: string;
|
|
100
100
|
}
|
|
101
101
|
export interface BridgeConfig {
|
|
102
|
-
/** URL du serveur MCP Overmind (default: http://
|
|
102
|
+
/** URL du serveur MCP Overmind (default: http://[::1]:3099/mcp — IPv6 loopback) */
|
|
103
103
|
mcpUrl: string;
|
|
104
104
|
/** Timeout par défaut en ms pour les appels MCP (default: 60_000) */
|
|
105
105
|
defaultTimeoutMs: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bridge/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bridge/types.ts"],"names":[],"mappings":"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"}
|
package/dist/bridge/types.js
CHANGED
|
@@ -5,13 +5,15 @@
|
|
|
5
5
|
* ╚══════════════════════════════════════════════════════════════════════╝
|
|
6
6
|
*/
|
|
7
7
|
export const DEFAULT_BRIDGE_CONFIG = {
|
|
8
|
-
|
|
8
|
+
// [::1] = IPv6 loopback — the Overmind MCP server binds on [::1]:3099 by default.
|
|
9
|
+
// Using 'localhost' can resolve to 127.0.0.1 (IPv4) and fail with ECONNREFUSED on Windows.
|
|
10
|
+
mcpUrl: 'http://[::1]:3099/mcp',
|
|
9
11
|
defaultTimeoutMs: 60_000,
|
|
10
12
|
agentTimeoutMs: 3_600_000, // 1h
|
|
11
13
|
maxRetries: 2,
|
|
12
14
|
retryDelayMs: 2_000,
|
|
13
15
|
defaultMcpServers: [
|
|
14
|
-
{ name: 'memory', transport: 'httpStream', url: 'http://
|
|
16
|
+
{ name: 'memory', transport: 'httpStream', url: 'http://[::1]:3099/mcp' },
|
|
15
17
|
],
|
|
16
18
|
};
|
|
17
19
|
export const DEFAULT_CIRCUIT_CONFIG = {
|
package/dist/bridge/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/bridge/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwJH,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/bridge/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwJH,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,kFAAkF;IAClF,2FAA2F;IAC3F,MAAM,EAAE,uBAAuB;IAC/B,gBAAgB,EAAE,MAAM;IACxB,cAAc,EAAE,SAAS,EAAE,KAAK;IAChC,UAAU,EAAE,CAAC;IACb,YAAY,EAAE,KAAK;IACnB,iBAAiB,EAAE;QACjB,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE,uBAAuB,EAAE;KAC1E;CACF,CAAC;AAeF,MAAM,CAAC,MAAM,sBAAsB,GAAyB;IAC1D,gBAAgB,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM;IACtB,gBAAgB,EAAE,CAAC;CACpB,CAAC"}
|
|
@@ -0,0 +1,438 @@
|
|
|
1
|
+
# 📋 Référence Complète — Commandes A2A & RPC Overmind Bridge
|
|
2
|
+
|
|
3
|
+
> **Version**: Overmind v3.5.2 + NEXUS V17 (6 bridges isolés P2P)
|
|
4
|
+
> **Date**: 2026-07-10
|
|
5
|
+
> **Portée**: Code source Overmind + bridges NEXUS + discord_llm
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Table des Matières
|
|
10
|
+
|
|
11
|
+
1. [Architecture Corrigée](#architecture-corrigée)
|
|
12
|
+
2. [Services Partagés](#services-partagés)
|
|
13
|
+
3. [Commandes RPC par Bridge (NEXUS)](#commandes-rpc-par-bridge-nexus)
|
|
14
|
+
4. [Commandes RPC OverBridgeServer (Overmind)](#commandes-rpc-overbridgeserver-overmind)
|
|
15
|
+
5. [Commandes A2A Hub (MCP Tool)](#commandes-a2a-hub-mcp-tool)
|
|
16
|
+
6. [Commandes CLI overmind-bridge](#commandes-cli-overmind-bridge)
|
|
17
|
+
7. [Commandes Hermes Profile Management](#commandes-hermes-profile-management)
|
|
18
|
+
8. [Scripts Helper d'Installation](#scripts-helper-dinstallation)
|
|
19
|
+
9. [Bugs Source Corrigés](#bugs-source-corrigés)
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Architecture Corrigée
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
┌────────────────────────────────────────────────────────────────────┐
|
|
27
|
+
│ 6 BRIDGES ISOLÉS — P2P │
|
|
28
|
+
│ │
|
|
29
|
+
│ :3101 nexus_master 4 RPC: status/broadcast/pipeline/fanout │
|
|
30
|
+
│ :3102 nexus_trader 2 RPC: trade.request/trade.analysis │
|
|
31
|
+
│ :3103 nexus_risk_manager 3 RPC: validate/drawdown/feedback │
|
|
32
|
+
│ :3104 nexus_healer 3 RPC: fixed/failed/diagnose │
|
|
33
|
+
│ :3105 nexus_researcher 2 RPC: query/summarize │
|
|
34
|
+
│ :3106 nexus_publisher 3 RPC: trade-open/trade-close/signal │
|
|
35
|
+
│ │
|
|
36
|
+
│ TOTAL: 17 RPC methods │
|
|
37
|
+
│ │
|
|
38
|
+
│ A2A = HTTP POST inter-bridges (chaque bridge a ses propres clients)│
|
|
39
|
+
│ │
|
|
40
|
+
│ SERVICES PARTAGÉS: │
|
|
41
|
+
│ :3099 Overmind MCP Server (routing central) │
|
|
42
|
+
│ :8642 Hermes Gateway API (X-Hermes-Profile routing) │
|
|
43
|
+
│ :5432 PostgreSQL (MessageLog + Memory) │
|
|
44
|
+
└────────────────────────────────────────────────────────────────────┘
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Services Partagés
|
|
50
|
+
|
|
51
|
+
| Service | Port | URL | Rôle |
|
|
52
|
+
|---------|------|-----|------|
|
|
53
|
+
| **Overmind MCP** | :3099 | `http://[::1]:3099/mcp` | 14 tools: run_agent, a2a_hub, agent_control, memory_*, create_agent, etc. |
|
|
54
|
+
| **Hermes Gateway** | :8642 | `http://127.0.0.1:8642` | API Server HTTP+SSE (OpenAI-compatible) |
|
|
55
|
+
| **PostgreSQL** | :5432 | `localhost` | MessageLog (bridge_messages) + Memory (pgvector) |
|
|
56
|
+
| **Hyperliquid MCP** | :3150 | `http://localhost:3150` | Trading data (NEXUS-specific, roadmap) |
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Commandes RPC par Bridge (NEXUS)
|
|
61
|
+
|
|
62
|
+
Chaque bridge expose `POST /rpc` (JSON-RPC 2.0) + `GET /health` + `POST /shutdown`.
|
|
63
|
+
|
|
64
|
+
### Format de Requête
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
curl -X POST http://127.0.0.1:<PORT>/rpc \
|
|
68
|
+
-H "Content-Type: application/json" \
|
|
69
|
+
-d '{"jsonrpc":"2.0","id":"<id>","method":"<method>","params":{...}}'
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### :3101 — nexus_master (Orchestrateur)
|
|
73
|
+
|
|
74
|
+
| Méthode | Params | Description |
|
|
75
|
+
|---------|--------|-------------|
|
|
76
|
+
| `health.ping` | — | Ping local (toujours OK) |
|
|
77
|
+
| `master.status` | — | Agrège la santé des 6 bridges en temps réel |
|
|
78
|
+
| `master.broadcast` | `{ message: string }` | Fan-out un prompt aux 5 peer bridges |
|
|
79
|
+
| `master.pipeline` | `{ steps: [{ peer, prompt }] }` | Chaîne séquentielle A→B→C entre bridges |
|
|
80
|
+
| `master.fanout` | `{ peers: string[], prompt, merge? }` | Parallèle N bridges + merge (concat/best/first_success) |
|
|
81
|
+
|
|
82
|
+
**Exemples:**
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# Status réseau complet
|
|
86
|
+
curl -s -X POST http://127.0.0.1:3101/rpc \
|
|
87
|
+
-H "Content-Type: application/json" \
|
|
88
|
+
-d '{"jsonrpc":"2.0","id":"1","method":"master.status"}'
|
|
89
|
+
|
|
90
|
+
# Broadcast à tous les peers
|
|
91
|
+
curl -s -X POST http://127.0.0.1:3101/rpc \
|
|
92
|
+
-H "Content-Type: application/json" \
|
|
93
|
+
-d '{"jsonrpc":"2.0","id":"2","method":"master.broadcast","params":{"message":"Alerte marché"}}'
|
|
94
|
+
|
|
95
|
+
# Pipeline: researcher → trader → publisher
|
|
96
|
+
curl -s -X POST http://127.0.0.1:3101/rpc \
|
|
97
|
+
-H "Content-Type: application/json" \
|
|
98
|
+
-d '{"jsonrpc":"2.0","id":"3","method":"master.pipeline","params":{"steps":[{"peer":"researcher","prompt":"Analyse BTC"},{"peer":"trader","prompt":"Décide trade"},{"peer":"publisher","prompt":"Publie signal"}]}}'
|
|
99
|
+
|
|
100
|
+
# Fanout parallèle + merge best
|
|
101
|
+
curl -s -X POST http://127.0.0.1:3101/rpc \
|
|
102
|
+
-H "Content-Type: application/json" \
|
|
103
|
+
-d '{"jsonrpc":"2.0","id":"4","method":"master.fanout","params":{"peers":["researcher","trader"],"prompt":"BTC outlook","merge":"best"}}'
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### :3102 — nexus_trader (Exécution + Analyse)
|
|
107
|
+
|
|
108
|
+
| Méthode | Params | Description |
|
|
109
|
+
|---------|--------|-------------|
|
|
110
|
+
| `trade.request` | `{ symbol, side, quantity, entryPrice?, stopLoss?, takeProfit? }` | Valide via risk, notifie publisher |
|
|
111
|
+
| `trade.analysis` | `{ symbol, timeframe? }` | Délègue au researcher |
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
curl -s -X POST http://127.0.0.1:3102/rpc \
|
|
115
|
+
-H "Content-Type: application/json" \
|
|
116
|
+
-d '{"jsonrpc":"2.0","id":"1","method":"trade.request","params":{"symbol":"BTC","side":"BUY","quantity":0.1}}'
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### :3103 — nexus_risk_manager (Validation + Drawdown)
|
|
120
|
+
|
|
121
|
+
| Méthode | Params | Description |
|
|
122
|
+
|---------|--------|-------------|
|
|
123
|
+
| `risk.validate` | `{ symbol, side, quantity, entryPrice?, stopLoss?, takeProfit? }` | Valide un trade proposé |
|
|
124
|
+
| `risk.drawdown` | — | Vérifie le drawdown actuel du portfolio |
|
|
125
|
+
| `risk.feedback` | `{ message, type, suggestedParams? }` | Feedback au trader |
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
curl -s -X POST http://127.0.0.1:3103/rpc \
|
|
129
|
+
-H "Content-Type: application/json" \
|
|
130
|
+
-d '{"jsonrpc":"2.0","id":"1","method":"risk.validate","params":{"symbol":"BTC","side":"BUY","quantity":0.1}}'
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### :3104 — nexus_healer (Auto-réparation)
|
|
134
|
+
|
|
135
|
+
| Méthode | Params | Description |
|
|
136
|
+
|---------|--------|-------------|
|
|
137
|
+
| `heal.fixed` | `{ module, resolution, durationMs? }` | Notifie qu'un module a été réparé |
|
|
138
|
+
| `heal.failed` | `{ module, error, attempts }` | Notifie qu'une réparation a échoué |
|
|
139
|
+
| `heal.diagnose` | `{ module }` | Diagnostique l'état d'un module |
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
curl -s -X POST http://127.0.0.1:3104/rpc \
|
|
143
|
+
-H "Content-Type: application/json" \
|
|
144
|
+
-d '{"jsonrpc":"2.0","id":"1","method":"heal.diagnose","params":{"module":"brain"}}'
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### :3105 — nexus_researcher (Recherche + Summarization)
|
|
148
|
+
|
|
149
|
+
| Méthode | Params | Description |
|
|
150
|
+
|---------|--------|-------------|
|
|
151
|
+
| `research.query` | `{ topic, depth? }` | Lance une recherche sur un sujet |
|
|
152
|
+
| `research.summarize` | `{ sourceIds: string[] }` | Résume des sources |
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
curl -s -X POST http://127.0.0.1:3105/rpc \
|
|
156
|
+
-H "Content-Type: application/json" \
|
|
157
|
+
-d '{"jsonrpc":"2.0","id":"1","method":"research.query","params":{"topic":"BTC trends","depth":"deep"}}'
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### :3106 — nexus_publisher (Notifications + Signaux)
|
|
161
|
+
|
|
162
|
+
| Méthode | Params | Description |
|
|
163
|
+
|---------|--------|-------------|
|
|
164
|
+
| `publish.trade-open` | `{ symbol, side, quantity, entryPrice, timestamp }` | Notifie l'ouverture d'un trade |
|
|
165
|
+
| `publish.trade-close` | `{ symbol, side, quantity, exitPrice, pnl?, reason? }` | Notifie la fermeture d'un trade |
|
|
166
|
+
| `publish.signal` | `{ message, channel? }` | Publie un signal sur un canal |
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
curl -s -X POST http://127.0.0.1:3106/rpc \
|
|
170
|
+
-H "Content-Type: application/json" \
|
|
171
|
+
-d '{"jsonrpc":"2.0","id":"1","method":"publish.signal","params":{"message":"BTC bullish signal","channel":"trading"}}'
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Endpoints Communs (tous les bridges)
|
|
175
|
+
|
|
176
|
+
| Endpoint | Méthode HTTP | Description |
|
|
177
|
+
|----------|-------------|-------------|
|
|
178
|
+
| `/health` | GET | `{ agent, status, uptime, rpcMethods[], peerCount }` |
|
|
179
|
+
| `/rpc` | POST | JSON-RPC 2.0 dispatcher |
|
|
180
|
+
| `/shutdown` | POST | Arrêt propre du bridge |
|
|
181
|
+
|
|
182
|
+
### Routage RPC Interne
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
POST /rpc → dispatchRpc(method)
|
|
186
|
+
1. health.ping → local (toujours)
|
|
187
|
+
2. Méthode locale (registerRpcMethod) → handler local
|
|
188
|
+
3. Sinon → forwardToMcp() → POST http://[::1]:3099/mcp
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Commandes RPC OverBridgeServer (Overmind)
|
|
194
|
+
|
|
195
|
+
Le `OverBridgeServer` (port 3100 par défaut, ou via discord_llm :3001) expose **24 méthodes JSON-RPC** :
|
|
196
|
+
|
|
197
|
+
### Agents (10 méthodes)
|
|
198
|
+
|
|
199
|
+
| Méthode | Params | Description |
|
|
200
|
+
|---------|--------|-------------|
|
|
201
|
+
| `agent.run` | `agentName, runner, prompt, sessionId?, model?, externalKey?` | Lance un agent |
|
|
202
|
+
| `agent.a2a` | `fromAgent, toAgent, runner, prompt, model?` | A→B (Agent-to-Agent) |
|
|
203
|
+
| `agent.broadcast` | `fromAgent, runner, prompt, targets[]?, race?` | 1→N fan-out global |
|
|
204
|
+
| `agent.pipeline` | `initiator, runner, prompt, steps[], accumulateContext?` | Chaîne A→B→C |
|
|
205
|
+
| `agent.fanout` | `fromAgent, runner, prompt, targets[], mergeStrategy?` | 1→N + merge |
|
|
206
|
+
| `agent.delegate` | `fromAgent, toAgent, runner, prompt, async?, callbackUrl?` | Fire-and-forget |
|
|
207
|
+
| `agent.query` | `fromAgent, runner, prompt, targets[], agentTimeoutMs?` | Multi-agent query |
|
|
208
|
+
| `agent.status` | `agentName, action?, runner?` | Status live |
|
|
209
|
+
| `agent.list` | `status?, runner?` | Liste des agents |
|
|
210
|
+
| `agent.kill` | `agentName, runner?` | Kill un agent |
|
|
211
|
+
|
|
212
|
+
### Messages (4 méthodes)
|
|
213
|
+
|
|
214
|
+
| Méthode | Params | Description |
|
|
215
|
+
|---------|--------|-------------|
|
|
216
|
+
| `message.history` | `toAgent?, fromAgent?, status?, limit?, offset?, sinceHours?` | Historique paginé |
|
|
217
|
+
| `message.get` | `id` (UUID) | Récupère un message |
|
|
218
|
+
| `message.replay` | `id` (UUID) | Rejoue un message |
|
|
219
|
+
| `message.stats` | — | Stats globales |
|
|
220
|
+
|
|
221
|
+
### Sessions (4 méthodes)
|
|
222
|
+
|
|
223
|
+
| Méthode | Params | Description |
|
|
224
|
+
|---------|--------|-------------|
|
|
225
|
+
| `session.get` | `externalKey, agentName` | Session d'un utilisateur |
|
|
226
|
+
| `session.list` | — | Toutes les sessions |
|
|
227
|
+
| `session.delete` | `externalKey, agentName` | Supprime une session |
|
|
228
|
+
| `session.stats` | — | Stats des sessions |
|
|
229
|
+
|
|
230
|
+
### Autres (6 méthodes)
|
|
231
|
+
|
|
232
|
+
| Méthode | Description |
|
|
233
|
+
|---------|-------------|
|
|
234
|
+
| `health.ping` | Liveness check |
|
|
235
|
+
| `webhook.sms` | Adapt + auto-dispatch webhook SMS |
|
|
236
|
+
| `GET /health` | Healthcheck enrichi |
|
|
237
|
+
| `POST /webhook/:provider` | Webhook HTTP (voipms, twilio, discord) |
|
|
238
|
+
| `GET /f/:filename` | Static file serve |
|
|
239
|
+
| `OPTIONS *` | CORS preflight |
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## Commandes A2A Hub (MCP Tool)
|
|
244
|
+
|
|
245
|
+
Le tool MCP `a2a_hub` expose 8 actions pour la communication inter-agents :
|
|
246
|
+
|
|
247
|
+
| Action | Params | Description |
|
|
248
|
+
|--------|--------|-------------|
|
|
249
|
+
| `discover` | — | Liste tous les agents avec statut temps réel |
|
|
250
|
+
| `status` | `target` | État détaillé d'un agent |
|
|
251
|
+
| `send` | `target, message` | Message synchrone A→B |
|
|
252
|
+
| `delegate` | `target, message, callbackUrl?` | Tâche async (retourne taskId) |
|
|
253
|
+
| `pipeline` | `message, steps[]` | Chaîne séquentielle A→B→C |
|
|
254
|
+
| `fanout` | `targets[], message, mergeStrategy?` | 1→N parallèle + merge |
|
|
255
|
+
| `query` | `targets[], message` | Question rapide multi-agents |
|
|
256
|
+
| `broadcast` | `message, race?` | Message global à tous |
|
|
257
|
+
|
|
258
|
+
```python
|
|
259
|
+
# Exemples
|
|
260
|
+
a2a_hub(action="discover")
|
|
261
|
+
a2a_hub(action="send", target="nexus_trader", message="Analyse BTC")
|
|
262
|
+
a2a_hub(action="pipeline", message="Analyse le marché", steps=[{"agentName":"nexus_researcher"},{"agentName":"nexus_trader"}])
|
|
263
|
+
a2a_hub(action="fanout", targets=["nexus_trader","nexus_risk_manager"], message="BTC?", mergeStrategy="best")
|
|
264
|
+
a2a_hub(action="broadcast", message="Alerte!", race=true)
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## Commandes CLI overmind-bridge
|
|
270
|
+
|
|
271
|
+
### Démarrer le serveur
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
overmind-bridge server --port 3100
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
### Appels one-shot
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
# Flag direct
|
|
281
|
+
overmind-bridge call agent.run --agent nexus_master --runner hermes --prompt "Analyse BTC"
|
|
282
|
+
|
|
283
|
+
# Stdin
|
|
284
|
+
echo "Analyse BTC" | overmind-bridge call agent.run --agent nexus_master --runner hermes --prompt-stdin
|
|
285
|
+
|
|
286
|
+
# Fichier + variables
|
|
287
|
+
overmind-bridge call agent.run --agent nexus_master --runner hermes \
|
|
288
|
+
--prompt-file ./brief.txt --var ticker=BTC
|
|
289
|
+
|
|
290
|
+
# A2A
|
|
291
|
+
overmind-bridge call agent.a2a --from nexus_master --to nexus_trader --runner hermes \
|
|
292
|
+
--prompt "Valide mon analyse"
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
### Gestion
|
|
296
|
+
|
|
297
|
+
```bash
|
|
298
|
+
overmind-bridge status # Status de tous les agents
|
|
299
|
+
overmind-bridge health # Health du serveur
|
|
300
|
+
overmind-bridge replay --id 7f3e8a1b-... # Replay un message
|
|
301
|
+
overmind-bridge sessions list # Liste des sessions
|
|
302
|
+
overmind-bridge sessions get --key "+141****7735" --agent pdf_bon_travail
|
|
303
|
+
overmind-bridge sessions rm --key "+141****7735" --agent pdf_bon_travail
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## Commandes Hermes Profile Management
|
|
309
|
+
|
|
310
|
+
### Créer un agent
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
# Via MCP tool
|
|
314
|
+
create_agent(name: "trader_btc", runner: "hermes", prompt: "...", model: "glm-5.2")
|
|
315
|
+
|
|
316
|
+
# Via CLI
|
|
317
|
+
hermes profile create trader_btc --no-alias --description "Trader BTC"
|
|
318
|
+
hermes -p trader_btc config set model.provider z-ai
|
|
319
|
+
hermes -p trader_btc config set model.model glm-5.2
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
### Gérer les profils
|
|
323
|
+
|
|
324
|
+
```bash
|
|
325
|
+
hermes profile list # Lister
|
|
326
|
+
hermes profile show nexus_master # Détails
|
|
327
|
+
hermes profile delete nexus_master --yes # Supprimer
|
|
328
|
+
hermes -p nexus_master config set model.model "MiniMax-M3" # Changer modèle
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
### Lancer un agent
|
|
332
|
+
|
|
333
|
+
```bash
|
|
334
|
+
# Via Gateway HTTP (recommandé — zero subprocess)
|
|
335
|
+
run_agent(runner: "hermes", agentName: "nexus_master", prompt: "...")
|
|
336
|
+
|
|
337
|
+
# Via CLI
|
|
338
|
+
hermes -p nexus_master chat -q "Analyse le BTC" -Q --yolo
|
|
339
|
+
|
|
340
|
+
# Via curl direct sur le Gateway
|
|
341
|
+
curl -X POST http://127.0.0.1:8642/v1/chat/completions \
|
|
342
|
+
-H "Content-Type: application/json" \
|
|
343
|
+
-H "Authorization: Bearer ${API_SERVER_KEY}" \
|
|
344
|
+
-H "X-Hermes-Profile: nexus_master" \
|
|
345
|
+
-d '{"model":"glm-5.2","messages":[{"role":"user","content":"..."}],"stream":true}'
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
## Scripts Helper d'Installation
|
|
351
|
+
|
|
352
|
+
### NEXUS — Démarrage et gestion
|
|
353
|
+
|
|
354
|
+
| Script | Usage | Description |
|
|
355
|
+
|--------|-------|-------------|
|
|
356
|
+
| `scripts/start-all-bridges.cjs` | `node scripts/start-all-bridges.cjs` | Démarre les 6 bridges en parallèle |
|
|
357
|
+
| `scripts/stop-all-bridges.cjs` | `node scripts/stop-all-bridges.cjs` | Arrête les 6 bridges |
|
|
358
|
+
| `scripts/status-bridges.cjs` | `node scripts/status-bridges.cjs` | Status de chaque bridge |
|
|
359
|
+
| `scripts/seed-bridges.cjs` | `node scripts/seed-bridges.cjs` | Crée la structure + .env pour les 6 |
|
|
360
|
+
| `scripts/test-a2a.cjs` | `node scripts/test-a2a.cjs` | Test E2A inter-bridges |
|
|
361
|
+
| `scripts/postbuild.cjs` | `node scripts/postbuild.cjs` | Copie config + .env vers dist |
|
|
362
|
+
|
|
363
|
+
### Overmind — Build et install
|
|
364
|
+
|
|
365
|
+
```bash
|
|
366
|
+
# Build complet
|
|
367
|
+
cd Workflow && npm run build
|
|
368
|
+
|
|
369
|
+
# Lint
|
|
370
|
+
npm run lint
|
|
371
|
+
|
|
372
|
+
# Test
|
|
373
|
+
npm run test
|
|
374
|
+
|
|
375
|
+
# Vérification installation
|
|
376
|
+
npm run verify-install
|
|
377
|
+
|
|
378
|
+
# Setup complet (Docker + Postgres + MCP)
|
|
379
|
+
npm run setup
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
### discord_llm — Build et démarrage
|
|
383
|
+
|
|
384
|
+
```bash
|
|
385
|
+
cd discord_llm && npm run build && npm start
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
### Hermes Gateway — Activation
|
|
389
|
+
|
|
390
|
+
```bash
|
|
391
|
+
# Config dans config.yaml
|
|
392
|
+
gateway:
|
|
393
|
+
platforms:
|
|
394
|
+
api_server:
|
|
395
|
+
enabled: true
|
|
396
|
+
|
|
397
|
+
# .env
|
|
398
|
+
API_SERVER_KEY=<key>
|
|
399
|
+
API_SERVER_ENABLED=1
|
|
400
|
+
|
|
401
|
+
# Redémarrer
|
|
402
|
+
hermes gateway restart
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
## Bugs Source Corrigés
|
|
408
|
+
|
|
409
|
+
### Overmind (Workflow/src/bridge/)
|
|
410
|
+
|
|
411
|
+
| Bug | Fichier | Fix |
|
|
412
|
+
|-----|---------|-----|
|
|
413
|
+
| `localhost` au lieu de `[::1]` (IPv4/IPv6 mismatch Windows) | `types.ts:159` | → `http://[::1]:3099/mcp` |
|
|
414
|
+
| `ping()` sans SSE Accept header (FastMCP rejette) | `BridgeProxy.ts:181` | → Ajout `Accept: text/event-stream` + fallback `GET /health` |
|
|
415
|
+
| `parseSseText` non importé dans `BridgeProxy` | `BridgeProxy.ts:25` | → Ajout import |
|
|
416
|
+
| Commentaire doc `localhost:3099` | `BridgeProxy.ts:11` | → `[::1]:3099` |
|
|
417
|
+
|
|
418
|
+
### NEXUS (Nexus/common/ + bridges/)
|
|
419
|
+
|
|
420
|
+
| Bug | Fichier | Fix |
|
|
421
|
+
|-----|---------|-----|
|
|
422
|
+
| MCP URL `/rpc` au lieu de `/mcp` (FastMCP 404) | `BaseBridge.ts:227` | → `${mcpBase}/mcp` avec SSE parsing |
|
|
423
|
+
| Timeout MCP hardcodé 60s | `BaseBridge.ts:232` | → `config.mcpTimeoutMs` (120s défaut) |
|
|
424
|
+
| `Date.now()` comme ID JSON-RPC (collision) | `BridgeClient.ts:36` | → `crypto.randomUUID()` |
|
|
425
|
+
| `appendFileSync` (sync I/O dans hot path) | `logger.ts:71` | → `appendFile` async + rotation 50MB |
|
|
426
|
+
| Méthodes RPC custom forwardées au MCP (404) | `BaseBridge.ts:174` | → `registerRpcMethod()` + dispatch local |
|
|
427
|
+
| `.env` introuvable après build (dist vs src) | `config.ts:20` | → `candidatePaths[]` multi-niveaux |
|
|
428
|
+
| `postbuild.cjs` ne copiait pas les `.env` | `postbuild.cjs` | → Ajout section 2: copy bridges/.env |
|
|
429
|
+
| `*/` dans JSDoc cassait le parser CJS | `postbuild.cjs:5` | → Reworded comment |
|
|
430
|
+
| Pas de graceful shutdown SIGINT/SIGTERM | `bridge.ts` (×6) | → Ajout handler `process.on('SIGINT')` |
|
|
431
|
+
| Pas de keep-alive HTTP (TCP handshake chaque call) | `BridgeClient.ts` | → `HttpAgent({ keepAlive: true })` partagé |
|
|
432
|
+
|
|
433
|
+
### discord_llm
|
|
434
|
+
|
|
435
|
+
| Bug | Fichier | Fix |
|
|
436
|
+
|-----|---------|-----|
|
|
437
|
+
| `localhost:3099` au lieu de `[::1]:3099` | `overmind-bridge.ts:63` | → `http://[::1]:3099/mcp` |
|
|
438
|
+
| `no-useless-assignment` lint errors | `overmind-bridge.ts:255,278` | → `let mcpStatus: string` (sans init) |
|