overmind-mcp 2.8.3 → 2.8.7
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/.mcp.json.example +20 -20
- package/README.md +143 -143
- package/bin/launch.bat +40 -0
- package/bin/launch.js +78 -0
- package/bin/launch.sh +46 -0
- package/bin/overmind-pool.mjs +248 -248
- package/bin/restart_mcp.bat +3 -0
- package/bin/start_server.bat +3 -0
- package/bin/test_mcp.bat +4 -0
- package/dist/bin/cli.js +13 -0
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/launch.js +78 -0
- package/dist/bridge/BridgeProxy.d.ts +52 -0
- package/dist/bridge/BridgeProxy.d.ts.map +1 -0
- package/dist/bridge/BridgeProxy.js +265 -0
- package/dist/bridge/BridgeProxy.js.map +1 -0
- package/dist/bridge/OverBridgeService.d.ts +96 -0
- package/dist/bridge/OverBridgeService.d.ts.map +1 -0
- package/dist/bridge/OverBridgeService.js +334 -0
- package/dist/bridge/OverBridgeService.js.map +1 -0
- package/dist/bridge/index.d.ts +11 -0
- package/dist/bridge/index.d.ts.map +1 -0
- package/dist/bridge/index.js +11 -0
- package/dist/bridge/index.js.map +1 -0
- package/dist/bridge/types.d.ts +132 -0
- package/dist/bridge/types.d.ts.map +1 -0
- package/dist/bridge/types.js +19 -0
- package/dist/bridge/types.js.map +1 -0
- package/dist/bridge/utils.d.ts +48 -0
- package/dist/bridge/utils.d.ts.map +1 -0
- package/dist/bridge/utils.js +128 -0
- package/dist/bridge/utils.js.map +1 -0
- package/dist/lib/config.d.ts +1 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +13 -5
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/envUtils.d.ts +2 -0
- package/dist/lib/envUtils.d.ts.map +1 -1
- package/dist/lib/envUtils.js +13 -2
- package/dist/lib/envUtils.js.map +1 -1
- package/dist/lib/logger.js +1 -1
- package/dist/lib/orchestration/dispatcher.d.ts.map +1 -1
- package/dist/lib/orchestration/dispatcher.js +0 -1
- package/dist/lib/orchestration/dispatcher.js.map +1 -1
- package/dist/lib/processRegistry.d.ts.map +1 -1
- package/dist/lib/processRegistry.js +34 -21
- package/dist/lib/processRegistry.js.map +1 -1
- package/dist/memory/PostgresMemoryProvider.d.ts.map +1 -1
- package/dist/memory/PostgresMemoryProvider.js +14 -3
- package/dist/memory/PostgresMemoryProvider.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -1
- package/dist/server.js.map +1 -1
- package/dist/services/AgentManager.d.ts.map +1 -1
- package/dist/services/AgentManager.js +473 -97
- package/dist/services/AgentManager.js.map +1 -1
- package/dist/services/ClaudeRunner.d.ts.map +1 -1
- package/dist/services/ClaudeRunner.js.map +1 -1
- package/dist/services/GeminiRunner.d.ts +26 -2
- package/dist/services/GeminiRunner.d.ts.map +1 -1
- package/dist/services/GeminiRunner.js +146 -136
- package/dist/services/GeminiRunner.js.map +1 -1
- package/dist/services/KiloRunner.d.ts.map +1 -1
- package/dist/services/KiloRunner.js +6 -1
- package/dist/services/KiloRunner.js.map +1 -1
- package/dist/services/NousHermesRunner.d.ts +1 -0
- package/dist/services/NousHermesRunner.d.ts.map +1 -1
- package/dist/services/NousHermesRunner.js +476 -549
- package/dist/services/NousHermesRunner.js.map +1 -1
- package/dist/tools/agent_control.d.ts +1 -1
- package/dist/tools/agent_control.d.ts.map +1 -1
- package/dist/tools/agent_control.js +4 -3
- package/dist/tools/agent_control.js.map +1 -1
- package/dist/tools/config_example.d.ts +1 -0
- package/dist/tools/config_example.d.ts.map +1 -1
- package/dist/tools/config_example.js +45 -2
- package/dist/tools/config_example.js.map +1 -1
- package/dist/tools/create_agent.d.ts +1 -1
- package/dist/tools/manage_agents.d.ts +2 -2
- package/dist/tools/run_agent.d.ts +2 -1
- package/dist/tools/run_agent.d.ts.map +1 -1
- package/dist/tools/run_agent.js +30 -3
- package/dist/tools/run_agent.js.map +1 -1
- package/dist/tools/run_agents_parallel.d.ts +2 -1
- package/dist/tools/run_agents_parallel.d.ts.map +1 -1
- package/dist/tools/run_gemini.d.ts +13 -0
- package/dist/tools/run_gemini.d.ts.map +1 -1
- package/dist/tools/run_gemini.js +6 -2
- package/dist/tools/run_gemini.js.map +1 -1
- package/dist/tools/run_hermes.d.ts +1 -0
- package/dist/tools/run_hermes.d.ts.map +1 -1
- package/dist/tools/run_hermes.js +22 -15
- package/dist/tools/run_hermes.js.map +1 -1
- package/docs/agent-http-tutorial.md +524 -524
- package/docs/provider-config-map.md +444 -0
- package/package.json +8 -10
- package/scripts/_db_check.py +10 -0
- package/scripts/status_check.py +20 -0
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ╔══════════════════════════════════════════════════════════════════════╗
|
|
3
|
+
* ║ OVERMIND BRIDGE — OverBridgeService (High-Level API) ║
|
|
4
|
+
* ║ ║
|
|
5
|
+
* ║ API haut niveau : agents, memory, cron, runs, sessions. ║
|
|
6
|
+
* ║ Wrappe BridgeProxy pour fournir des méthodes métier claires. ║
|
|
7
|
+
* ║ ║
|
|
8
|
+
* ║ ARCHITECTURE ║
|
|
9
|
+
* ║ ───────────── ║
|
|
10
|
+
* ║ App/Route → OverBridgeService → BridgeProxy → Overmind MCP ║
|
|
11
|
+
* ╚══════════════════════════════════════════════════════════════════════╝
|
|
12
|
+
*/
|
|
13
|
+
import { BridgeProxy } from './BridgeProxy.js';
|
|
14
|
+
import { extractSessionIdFromContent, validatePrompt, validateAgentName, formatDiscordContext, } from './utils.js';
|
|
15
|
+
// ─── OverBridgeService ─────────────────────────────────────────────────────
|
|
16
|
+
export class OverBridgeService {
|
|
17
|
+
proxy;
|
|
18
|
+
session;
|
|
19
|
+
heartbeatInterval;
|
|
20
|
+
constructor(config, logger, initialSessionId) {
|
|
21
|
+
this.proxy = new BridgeProxy(config, undefined, logger);
|
|
22
|
+
this.session = {
|
|
23
|
+
currentSessionId: initialSessionId,
|
|
24
|
+
lastActivityAt: Date.now(),
|
|
25
|
+
messageCount: 0,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
get proxyAccess() {
|
|
29
|
+
return this.proxy;
|
|
30
|
+
}
|
|
31
|
+
get sessionId() {
|
|
32
|
+
return this.session.currentSessionId;
|
|
33
|
+
}
|
|
34
|
+
get sessionInfo() {
|
|
35
|
+
return { ...this.session };
|
|
36
|
+
}
|
|
37
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
38
|
+
// LIFECYCLE & HEARTBEAT
|
|
39
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
40
|
+
/**
|
|
41
|
+
* Initialise la connexion au serveur MCP, vérifie la santé initiale
|
|
42
|
+
* et configure éventuellement un heartbeat périodique.
|
|
43
|
+
*/
|
|
44
|
+
async connect(healthCheckIntervalMs) {
|
|
45
|
+
this.proxy.log.info('🔌 Connecting to Overmind MCP server...');
|
|
46
|
+
const status = await this.proxy.healthCheck();
|
|
47
|
+
this.proxy.log.info(`🔌 Status: ${status.status} (latency: ${status.latencyMs ?? '?'}ms)`);
|
|
48
|
+
if (healthCheckIntervalMs) {
|
|
49
|
+
if (this.heartbeatInterval) {
|
|
50
|
+
clearInterval(this.heartbeatInterval);
|
|
51
|
+
}
|
|
52
|
+
this.heartbeatInterval = setInterval(async () => {
|
|
53
|
+
const pingStatus = await this.proxy.healthCheck();
|
|
54
|
+
if (pingStatus.status === 'offline') {
|
|
55
|
+
this.proxy.log.warn('💓 Heartbeat failed: server is offline');
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
this.proxy.log.debug(`💓 Heartbeat: ${pingStatus.status}`);
|
|
59
|
+
}
|
|
60
|
+
}, healthCheckIntervalMs);
|
|
61
|
+
}
|
|
62
|
+
return status;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Ferme proprement le service en annulant le heartbeat actif.
|
|
66
|
+
*/
|
|
67
|
+
disconnect() {
|
|
68
|
+
if (this.heartbeatInterval) {
|
|
69
|
+
clearInterval(this.heartbeatInterval);
|
|
70
|
+
this.heartbeatInterval = undefined;
|
|
71
|
+
this.proxy.log.info('🔌 Disconnected and stopped heartbeat.');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
75
|
+
// SESSION MANAGEMENT
|
|
76
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
77
|
+
/** Force un reset de session — le prochain appel démarre une nouvelle session */
|
|
78
|
+
resetSession() {
|
|
79
|
+
this.proxy.log.info('🔄 Session reset');
|
|
80
|
+
this.session.currentSessionId = undefined;
|
|
81
|
+
this.session.messageCount = 0;
|
|
82
|
+
}
|
|
83
|
+
/** Force un sessionId spécifique (ex: reçu d'un env var) */
|
|
84
|
+
setSession(id) {
|
|
85
|
+
this.session.currentSessionId = id;
|
|
86
|
+
this.session.lastActivityAt = Date.now();
|
|
87
|
+
this.proxy.log.info(`🔗 Session set: ${id}`);
|
|
88
|
+
}
|
|
89
|
+
updateSession(newId) {
|
|
90
|
+
if (newId) {
|
|
91
|
+
this.session.currentSessionId = newId;
|
|
92
|
+
}
|
|
93
|
+
this.session.lastActivityAt = Date.now();
|
|
94
|
+
this.session.messageCount++;
|
|
95
|
+
}
|
|
96
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
97
|
+
// AGENT EXECUTION
|
|
98
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
99
|
+
/**
|
|
100
|
+
* Exécute un agent via `run_agent`.
|
|
101
|
+
* Gère automatiquement la session continuity.
|
|
102
|
+
*/
|
|
103
|
+
async runAgent(options) {
|
|
104
|
+
validatePrompt(options.prompt);
|
|
105
|
+
validateAgentName(options.agentName);
|
|
106
|
+
const args = {
|
|
107
|
+
runner: options.runner,
|
|
108
|
+
prompt: options.prompt,
|
|
109
|
+
agentName: options.agentName,
|
|
110
|
+
sessionId: this.session.currentSessionId || undefined,
|
|
111
|
+
autoResume: options.autoResume ?? (this.session.currentSessionId ? false : true),
|
|
112
|
+
silent: options.silent ?? false,
|
|
113
|
+
};
|
|
114
|
+
if (options.path)
|
|
115
|
+
args.path = options.path;
|
|
116
|
+
if (options.model)
|
|
117
|
+
args.model = options.model;
|
|
118
|
+
if (options.mode)
|
|
119
|
+
args.mode = options.mode;
|
|
120
|
+
if (options.config)
|
|
121
|
+
args.config = options.config;
|
|
122
|
+
try {
|
|
123
|
+
const result = await this.proxy.call('run_agent', args, this.proxy.agentTimeout);
|
|
124
|
+
return this._processAgentResponse(result);
|
|
125
|
+
}
|
|
126
|
+
catch (err) {
|
|
127
|
+
const error = err;
|
|
128
|
+
// Timeout = agent travaille toujours, pas une erreur fatale
|
|
129
|
+
if (error?.code === 'ETIMEDOUT' || error?.code === 'EBODYREAD') {
|
|
130
|
+
this.proxy.log.warn(`⏱️ Agent timeout (${error.code}) — ${options.agentName}`);
|
|
131
|
+
return {
|
|
132
|
+
content: [{
|
|
133
|
+
type: 'text',
|
|
134
|
+
text: `⏱️ **Timeout — l'agent travaille toujours.**\n\nL'agent a besoin de plus de temps pour cette tâche.\nUtilise \`agent_control(status)\` pour vérifier.`,
|
|
135
|
+
}],
|
|
136
|
+
isError: false,
|
|
137
|
+
sessionId: this.session.currentSessionId,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
throw err;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Raccourci : run agent avec contexte Discord auto-formaté.
|
|
145
|
+
*/
|
|
146
|
+
async runAgentForDiscord(agentName, runner, message, discordContext) {
|
|
147
|
+
const prompt = formatDiscordContext({ ...discordContext, message });
|
|
148
|
+
return this.runAgent({ runner, prompt, agentName });
|
|
149
|
+
}
|
|
150
|
+
_processAgentResponse(result) {
|
|
151
|
+
if (result.error) {
|
|
152
|
+
return {
|
|
153
|
+
content: [{ type: 'text', text: `MCP Error ${result.error.code}: ${result.error.message}` }],
|
|
154
|
+
isError: true,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
const content = result.result?.content || [];
|
|
158
|
+
const isError = result.result?.isError || false;
|
|
159
|
+
// Extraction sessionId — 3 sources : result, contenu textuel, conservation
|
|
160
|
+
let foundId = result.result?.sessionId;
|
|
161
|
+
if (!foundId)
|
|
162
|
+
foundId = extractSessionIdFromContent(content);
|
|
163
|
+
if (!foundId && this.session.currentSessionId) {
|
|
164
|
+
this.proxy.log.info('🔒 No new sessionId — keeping previous');
|
|
165
|
+
foundId = this.session.currentSessionId;
|
|
166
|
+
}
|
|
167
|
+
this.updateSession(foundId);
|
|
168
|
+
return { content, isError, sessionId: foundId };
|
|
169
|
+
}
|
|
170
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
171
|
+
// AGENT CONTROL
|
|
172
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
173
|
+
/** Status d'un agent en cours */
|
|
174
|
+
async agentStatus(options) {
|
|
175
|
+
const result = await this.proxy.call('agent_control', {
|
|
176
|
+
agentName: options.agentName,
|
|
177
|
+
action: options.action,
|
|
178
|
+
runner: options.runner,
|
|
179
|
+
sinceTimestamp: options.sinceTimestamp,
|
|
180
|
+
timeoutMs: options.timeoutMs,
|
|
181
|
+
});
|
|
182
|
+
return this._processAgentResponse(result);
|
|
183
|
+
}
|
|
184
|
+
/** Kill un agent */
|
|
185
|
+
async killAgent(agentName, runner) {
|
|
186
|
+
return this.agentStatus({ agentName, action: 'kill', runner });
|
|
187
|
+
}
|
|
188
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
189
|
+
// MEMORY
|
|
190
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
191
|
+
/** Recherche sémantique dans la mémoire Overmind */
|
|
192
|
+
async memorySearch(options) {
|
|
193
|
+
const result = await this.proxy.call('memory_search', {
|
|
194
|
+
query: options.query,
|
|
195
|
+
agent_name: options.agent_name,
|
|
196
|
+
limit: options.limit ?? 10,
|
|
197
|
+
include_runs: options.include_runs ?? false,
|
|
198
|
+
});
|
|
199
|
+
return this._processAgentResponse(result);
|
|
200
|
+
}
|
|
201
|
+
/** Stocke une connaissance dans la mémoire Overmind */
|
|
202
|
+
async memoryStore(options) {
|
|
203
|
+
const result = await this.proxy.call('memory_store', {
|
|
204
|
+
text: options.text,
|
|
205
|
+
agent_name: options.agent_name,
|
|
206
|
+
source: options.source ?? 'user',
|
|
207
|
+
});
|
|
208
|
+
return this._processAgentResponse(result);
|
|
209
|
+
}
|
|
210
|
+
/** Historique et statistiques des runs en mémoire */
|
|
211
|
+
async memoryRuns(options) {
|
|
212
|
+
const result = await this.proxy.call('memory_runs', {
|
|
213
|
+
runner: options?.runner,
|
|
214
|
+
limit: options?.limit,
|
|
215
|
+
stats: options?.stats,
|
|
216
|
+
agent_name: options?.agent_name,
|
|
217
|
+
});
|
|
218
|
+
return this._processAgentResponse(result);
|
|
219
|
+
}
|
|
220
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
221
|
+
// AGENTS MANAGEMENT
|
|
222
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
223
|
+
/** Liste tous les agents disponibles */
|
|
224
|
+
async listAgents(details = false) {
|
|
225
|
+
const result = await this.proxy.call('list_agents', { details });
|
|
226
|
+
return this._processAgentResponse(result);
|
|
227
|
+
}
|
|
228
|
+
/** Crée un nouvel agent */
|
|
229
|
+
async createAgent(name, runner, prompt, model, copyEnvFrom, mode, cliPath) {
|
|
230
|
+
const args = { name, runner, prompt };
|
|
231
|
+
if (model)
|
|
232
|
+
args.model = model;
|
|
233
|
+
if (copyEnvFrom)
|
|
234
|
+
args.copyEnvFrom = copyEnvFrom;
|
|
235
|
+
if (mode)
|
|
236
|
+
args.mode = mode;
|
|
237
|
+
if (cliPath)
|
|
238
|
+
args.cliPath = cliPath;
|
|
239
|
+
const result = await this.proxy.call('create_agent', args);
|
|
240
|
+
return this._processAgentResponse(result);
|
|
241
|
+
}
|
|
242
|
+
/** Supprime un agent */
|
|
243
|
+
async deleteAgent(name) {
|
|
244
|
+
const result = await this.proxy.call('delete_agent', { name });
|
|
245
|
+
return this._processAgentResponse(result);
|
|
246
|
+
}
|
|
247
|
+
/** Récupère la configuration détaillée d'un agent */
|
|
248
|
+
async getAgentConfigs(name) {
|
|
249
|
+
const result = await this.proxy.call('get_agent_configs', { name });
|
|
250
|
+
return this._processAgentResponse(result);
|
|
251
|
+
}
|
|
252
|
+
/** Met à jour la configuration d'un agent */
|
|
253
|
+
async updateAgentConfig(options) {
|
|
254
|
+
const result = await this.proxy.call('update_agent_config', {
|
|
255
|
+
name: options.name,
|
|
256
|
+
model: options.model,
|
|
257
|
+
mcpServers: options.mcpServers,
|
|
258
|
+
env: options.env,
|
|
259
|
+
runner: options.runner,
|
|
260
|
+
mode: options.mode,
|
|
261
|
+
cliPath: options.cliPath,
|
|
262
|
+
file: options.file,
|
|
263
|
+
content: options.content,
|
|
264
|
+
});
|
|
265
|
+
return this._processAgentResponse(result);
|
|
266
|
+
}
|
|
267
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
268
|
+
// PROMPTS MANAGEMENT
|
|
269
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
270
|
+
/** Crée ou écrase un fichier prompt */
|
|
271
|
+
async createPrompt(options) {
|
|
272
|
+
const result = await this.proxy.call('create_prompt', {
|
|
273
|
+
name: options.name,
|
|
274
|
+
content: options.content,
|
|
275
|
+
});
|
|
276
|
+
return this._processAgentResponse(result);
|
|
277
|
+
}
|
|
278
|
+
/** Modifie un prompt par recherche-remplacement */
|
|
279
|
+
async editPrompt(options) {
|
|
280
|
+
const result = await this.proxy.call('edit_prompt', {
|
|
281
|
+
name: options.name,
|
|
282
|
+
search: options.search,
|
|
283
|
+
replace: options.replace,
|
|
284
|
+
});
|
|
285
|
+
return this._processAgentResponse(result);
|
|
286
|
+
}
|
|
287
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
288
|
+
// PARALLEL EXECUTION
|
|
289
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
290
|
+
/** Lance plusieurs agents en parallèle via run_agents_parallel */
|
|
291
|
+
async runParallel(agents, waitAll = true) {
|
|
292
|
+
const result = await this.proxy.call('run_agents_parallel', {
|
|
293
|
+
agents: agents.map((a) => ({
|
|
294
|
+
runner: a.runner,
|
|
295
|
+
prompt: a.prompt,
|
|
296
|
+
agentName: a.agentName,
|
|
297
|
+
taskId: a.taskId,
|
|
298
|
+
path: a.path,
|
|
299
|
+
model: a.model,
|
|
300
|
+
mode: a.mode,
|
|
301
|
+
})),
|
|
302
|
+
waitAll,
|
|
303
|
+
}, undefined);
|
|
304
|
+
return this._processAgentResponse(result);
|
|
305
|
+
}
|
|
306
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
307
|
+
// BATCH OPERATIONS
|
|
308
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
309
|
+
/** Recherche séquentielle groupée en mémoire */
|
|
310
|
+
async batchSearch(queries, agentName, limit) {
|
|
311
|
+
const results = [];
|
|
312
|
+
for (const query of queries) {
|
|
313
|
+
results.push(await this.memorySearch({ query, agent_name: agentName, limit }));
|
|
314
|
+
}
|
|
315
|
+
return results;
|
|
316
|
+
}
|
|
317
|
+
/** Stockage séquentiel groupé en mémoire */
|
|
318
|
+
async batchStore(texts, agentName) {
|
|
319
|
+
const results = [];
|
|
320
|
+
for (const t of texts) {
|
|
321
|
+
results.push(await this.memoryStore({ text: t.text, agent_name: agentName, source: t.source }));
|
|
322
|
+
}
|
|
323
|
+
return results;
|
|
324
|
+
}
|
|
325
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
326
|
+
// CONVENIENCE
|
|
327
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
328
|
+
/** Appel MCP raw — pour les tools non wrappés */
|
|
329
|
+
async rawCall(toolName, args, timeoutMs) {
|
|
330
|
+
const result = await this.proxy.call(toolName, args, timeoutMs);
|
|
331
|
+
return this._processAgentResponse(result);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
//# sourceMappingURL=OverBridgeService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OverBridgeService.js","sourceRoot":"","sources":["../../src/bridge/OverBridgeService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ╔══════════════════════════════════════════════════════════════════════╗
|
|
3
|
+
* ║ OVERMIND BRIDGE — Barrel Export ║
|
|
4
|
+
* ║ Expose les APIs client et les types associés ║
|
|
5
|
+
* ╚══════════════════════════════════════════════════════════════════════╝
|
|
6
|
+
*/
|
|
7
|
+
export { BridgeProxy } from './BridgeProxy.js';
|
|
8
|
+
export { OverBridgeService } from './OverBridgeService.js';
|
|
9
|
+
export * from './types.js';
|
|
10
|
+
export { createBridgeLogger, parseMcpResponseBody, validatePrompt, validateAgentName, formatDiscordContext, type BridgeLogger, type LogLevel, } from './utils.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,QAAQ,GACd,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ╔══════════════════════════════════════════════════════════════════════╗
|
|
3
|
+
* ║ OVERMIND BRIDGE — Barrel Export ║
|
|
4
|
+
* ║ Expose les APIs client et les types associés ║
|
|
5
|
+
* ╚══════════════════════════════════════════════════════════════════════╝
|
|
6
|
+
*/
|
|
7
|
+
export { BridgeProxy } from './BridgeProxy.js';
|
|
8
|
+
export { OverBridgeService } from './OverBridgeService.js';
|
|
9
|
+
export * from './types.js';
|
|
10
|
+
export { createBridgeLogger, parseMcpResponseBody, validatePrompt, validateAgentName, formatDiscordContext, } from './utils.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,GAGrB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ╔══════════════════════════════════════════════════════════════════════╗
|
|
3
|
+
* ║ OVERMIND BRIDGE — Types & Interfaces ║
|
|
4
|
+
* ║ Contrats partagés pour le transport JSON-RPC 2.0 ║
|
|
5
|
+
* ╚══════════════════════════════════════════════════════════════════════╝
|
|
6
|
+
*/
|
|
7
|
+
export interface JsonRpcRequest {
|
|
8
|
+
jsonrpc: '2.0';
|
|
9
|
+
id: number | string;
|
|
10
|
+
method: string;
|
|
11
|
+
params: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
export interface McpResponse {
|
|
14
|
+
jsonrpc: '2.0';
|
|
15
|
+
id: number | string;
|
|
16
|
+
result?: {
|
|
17
|
+
content?: Array<McpContent>;
|
|
18
|
+
isError?: boolean;
|
|
19
|
+
sessionId?: string;
|
|
20
|
+
[key: string]: unknown;
|
|
21
|
+
};
|
|
22
|
+
error?: McpError;
|
|
23
|
+
}
|
|
24
|
+
export interface McpContent {
|
|
25
|
+
type: string;
|
|
26
|
+
text: string;
|
|
27
|
+
}
|
|
28
|
+
export interface McpError {
|
|
29
|
+
code: number;
|
|
30
|
+
message: string;
|
|
31
|
+
data?: unknown;
|
|
32
|
+
}
|
|
33
|
+
export type RunnerType = 'claude' | 'gemini' | 'antigravity' | 'kilo' | 'qwencli' | 'openclaw' | 'cline' | 'opencode' | 'hermes';
|
|
34
|
+
export interface RunAgentOptions {
|
|
35
|
+
runner: RunnerType;
|
|
36
|
+
prompt: string;
|
|
37
|
+
agentName: string;
|
|
38
|
+
sessionId?: string;
|
|
39
|
+
autoResume?: boolean;
|
|
40
|
+
silent?: boolean;
|
|
41
|
+
path?: string;
|
|
42
|
+
model?: string;
|
|
43
|
+
mode?: string;
|
|
44
|
+
config?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface AgentResult {
|
|
47
|
+
content: Array<McpContent>;
|
|
48
|
+
isError: boolean;
|
|
49
|
+
sessionId?: string;
|
|
50
|
+
}
|
|
51
|
+
export type AgentAction = 'status' | 'stream' | 'kill' | 'wait';
|
|
52
|
+
export interface AgentControlOptions {
|
|
53
|
+
agentName: string;
|
|
54
|
+
action: AgentAction;
|
|
55
|
+
runner?: RunnerType;
|
|
56
|
+
sinceTimestamp?: number;
|
|
57
|
+
timeoutMs?: number;
|
|
58
|
+
}
|
|
59
|
+
export interface MemorySearchOptions {
|
|
60
|
+
query: string;
|
|
61
|
+
agent_name?: string;
|
|
62
|
+
limit?: number;
|
|
63
|
+
include_runs?: boolean;
|
|
64
|
+
}
|
|
65
|
+
export interface MemoryStoreOptions {
|
|
66
|
+
text: string;
|
|
67
|
+
agent_name?: string;
|
|
68
|
+
source?: 'user' | 'agent' | 'pattern' | 'error' | 'decision';
|
|
69
|
+
}
|
|
70
|
+
export interface MemoryRunsOptions {
|
|
71
|
+
runner?: string;
|
|
72
|
+
limit?: number;
|
|
73
|
+
stats?: boolean;
|
|
74
|
+
agent_name?: string;
|
|
75
|
+
}
|
|
76
|
+
export interface UpdateAgentConfigOptions {
|
|
77
|
+
name: string;
|
|
78
|
+
model?: string;
|
|
79
|
+
mcpServers?: string[];
|
|
80
|
+
env?: Record<string, string>;
|
|
81
|
+
runner?: RunnerType;
|
|
82
|
+
mode?: 'code' | 'architect' | 'ask' | 'debug' | 'orchestrator' | 'plan' | 'act';
|
|
83
|
+
cliPath?: string;
|
|
84
|
+
file?: 'prompt.md' | 'settings.json' | '.mcp.json' | 'skill.md';
|
|
85
|
+
content?: string;
|
|
86
|
+
}
|
|
87
|
+
export interface CreatePromptOptions {
|
|
88
|
+
name: string;
|
|
89
|
+
content: string;
|
|
90
|
+
}
|
|
91
|
+
export interface EditPromptOptions {
|
|
92
|
+
name: string;
|
|
93
|
+
search: string;
|
|
94
|
+
replace: string;
|
|
95
|
+
}
|
|
96
|
+
export interface BridgeConfig {
|
|
97
|
+
/** URL du serveur MCP Overmind (default: http://localhost:3099/mcp) */
|
|
98
|
+
mcpUrl: string;
|
|
99
|
+
/** Timeout par défaut en ms pour les appels MCP (default: 60_000) */
|
|
100
|
+
defaultTimeoutMs: number;
|
|
101
|
+
/** Timeout pour run_agent en ms (default: 3_600_000 = 1h) */
|
|
102
|
+
agentTimeoutMs: number;
|
|
103
|
+
/** Nombre max de retry sur erreurs transitoires (default: 2) */
|
|
104
|
+
maxRetries: number;
|
|
105
|
+
/** Délai entre les retry en ms (default: 2_000) */
|
|
106
|
+
retryDelayMs: number;
|
|
107
|
+
}
|
|
108
|
+
export declare const DEFAULT_BRIDGE_CONFIG: BridgeConfig;
|
|
109
|
+
export type CircuitState = 'closed' | 'open' | 'half-open';
|
|
110
|
+
export interface CircuitBreakerConfig {
|
|
111
|
+
/** Nombre d'échecs avant ouverture (default: 5) */
|
|
112
|
+
failureThreshold: number;
|
|
113
|
+
/** Temps en ms avant tentative half-open (default: 30_000) */
|
|
114
|
+
resetTimeoutMs: number;
|
|
115
|
+
/** Nombre de succès consécutifs pour fermer (default: 3) */
|
|
116
|
+
successThreshold: number;
|
|
117
|
+
}
|
|
118
|
+
export declare const DEFAULT_CIRCUIT_CONFIG: CircuitBreakerConfig;
|
|
119
|
+
export interface SessionState {
|
|
120
|
+
currentSessionId: string | undefined;
|
|
121
|
+
lastActivityAt: number;
|
|
122
|
+
messageCount: number;
|
|
123
|
+
}
|
|
124
|
+
export interface HealthStatus {
|
|
125
|
+
status: 'online' | 'degraded' | 'offline';
|
|
126
|
+
mcpUrl: string;
|
|
127
|
+
circuitState: CircuitState;
|
|
128
|
+
session?: SessionState;
|
|
129
|
+
latencyMs?: number;
|
|
130
|
+
checkedAt: number;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bridge/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ╔══════════════════════════════════════════════════════════════════════╗
|
|
3
|
+
* ║ OVERMIND BRIDGE — Types & Interfaces ║
|
|
4
|
+
* ║ Contrats partagés pour le transport JSON-RPC 2.0 ║
|
|
5
|
+
* ╚══════════════════════════════════════════════════════════════════════╝
|
|
6
|
+
*/
|
|
7
|
+
export const DEFAULT_BRIDGE_CONFIG = {
|
|
8
|
+
mcpUrl: 'http://localhost:3099/mcp',
|
|
9
|
+
defaultTimeoutMs: 60_000,
|
|
10
|
+
agentTimeoutMs: 3_600_000, // 1h
|
|
11
|
+
maxRetries: 2,
|
|
12
|
+
retryDelayMs: 2_000,
|
|
13
|
+
};
|
|
14
|
+
export const DEFAULT_CIRCUIT_CONFIG = {
|
|
15
|
+
failureThreshold: 5,
|
|
16
|
+
resetTimeoutMs: 30_000,
|
|
17
|
+
successThreshold: 3,
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/bridge/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8IH,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,MAAM,EAAE,2BAA2B;IACnC,gBAAgB,EAAE,MAAM;IACxB,cAAc,EAAE,SAAS,EAAE,KAAK;IAChC,UAAU,EAAE,CAAC;IACb,YAAY,EAAE,KAAK;CACpB,CAAC;AAeF,MAAM,CAAC,MAAM,sBAAsB,GAAyB;IAC1D,gBAAgB,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM;IACtB,gBAAgB,EAAE,CAAC;CACpB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ╔══════════════════════════════════════════════════════════════════════╗
|
|
3
|
+
* ║ OVERMIND BRIDGE — Helpers & Utilities ║
|
|
4
|
+
* ║ retry, logging, SSE parsing, validation ║
|
|
5
|
+
* ╚══════════════════════════════════════════════════════════════════════╝
|
|
6
|
+
*/
|
|
7
|
+
import type { McpResponse } from './types.js';
|
|
8
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
9
|
+
export interface BridgeLogger {
|
|
10
|
+
debug(msg: string, meta?: Record<string, unknown>): void;
|
|
11
|
+
info(msg: string, meta?: Record<string, unknown>): void;
|
|
12
|
+
warn(msg: string, meta?: Record<string, unknown>): void;
|
|
13
|
+
error(msg: string, meta?: Record<string, unknown>): void;
|
|
14
|
+
}
|
|
15
|
+
/** Crée un logger simple prefixé — peut être remplacé par pino/winston */
|
|
16
|
+
export declare function createBridgeLogger(prefix: string): BridgeLogger;
|
|
17
|
+
/**
|
|
18
|
+
* Parse une réponse SSE (text/event-stream) ligne par ligne.
|
|
19
|
+
* Retourne le premier objet JSON-RPC valide trouvé dans les lignes "data:".
|
|
20
|
+
*/
|
|
21
|
+
export declare function parseSseText(text: string): McpResponse | null;
|
|
22
|
+
/**
|
|
23
|
+
* Parse le body d'une réponse MCP : SSE d'abord, fallback JSON brut.
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseMcpResponseBody(text: string): McpResponse;
|
|
26
|
+
export interface RetryOptions {
|
|
27
|
+
maxAttempts: number;
|
|
28
|
+
delayMs: number;
|
|
29
|
+
/** Codes d'erreur qui méritent un retry (default: ETIMEDOUT, EBODYREAD, ECONNRESET) */
|
|
30
|
+
retryableCodes?: string[];
|
|
31
|
+
}
|
|
32
|
+
export declare function withRetry<T>(fn: () => Promise<T>, opts: RetryOptions, logger?: BridgeLogger): Promise<T>;
|
|
33
|
+
export declare function validatePrompt(prompt: unknown): string;
|
|
34
|
+
export declare function validateAgentName(name: unknown): string;
|
|
35
|
+
export declare function sleep(ms: number): Promise<void>;
|
|
36
|
+
/** Extrait un sessionId depuis un marqueur textuel "SESSION_ID: xxx" */
|
|
37
|
+
export declare function extractSessionIdFromContent(content: Array<{
|
|
38
|
+
type: string;
|
|
39
|
+
text: string;
|
|
40
|
+
}>): string | undefined;
|
|
41
|
+
/** Formate un contexte Discord pour l'injection dans le prompt agent */
|
|
42
|
+
export declare function formatDiscordContext(params: {
|
|
43
|
+
channelId?: string;
|
|
44
|
+
userId?: string;
|
|
45
|
+
username?: string;
|
|
46
|
+
message: string;
|
|
47
|
+
}): string;
|
|
48
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC1D;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAc/D;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAc7D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAgB9D;AAID,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAID,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,IAAI,EAAE,YAAY,EAClB,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,CAAC,CAAC,CAsBZ;AAID,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAKtD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CASvD;AAID,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED,wEAAwE;AACxE,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAC7C,MAAM,GAAG,SAAS,CAMpB;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAYT"}
|