overmind-mcp
Version:
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
57 lines • 2.9 kB
TypeScript
/**
* ╔══════════════════════════════════════════════════════════════════════╗
* ║ OVERMIND BRIDGE — Helpers & Utilities ║
* ║ retry, logging, SSE parsing, validation ║
* ╚══════════════════════════════════════════════════════════════════════╝
*/
import type { McpResponse } from './types.js';
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
export interface BridgeLogger {
debug(msg: string, meta?: Record<string, unknown>): void;
info(msg: string, meta?: Record<string, unknown>): void;
warn(msg: string, meta?: Record<string, unknown>): void;
error(msg: string, meta?: Record<string, unknown>): void;
}
/** Crée un logger simple prefixé — peut être remplacé par pino/winston */
export declare function createBridgeLogger(prefix: string): BridgeLogger;
/**
* Parse une réponse SSE (text/event-stream) ligne par ligne.
* Retourne le premier objet JSON-RPC valide trouvé dans les lignes "data:".
*/
export declare function parseSseText(text: string): McpResponse | null;
/**
* Parse le body d'une réponse MCP : SSE d'abord, fallback JSON brut.
*/
export declare function parseMcpResponseBody(text: string): McpResponse;
export interface RetryOptions {
maxAttempts: number;
delayMs: number;
/** Codes d'erreur qui méritent un retry (default: ETIMEDOUT, EBODYREAD, ECONNRESET) */
retryableCodes?: string[];
}
export declare function withRetry<T>(fn: () => Promise<T>, opts: RetryOptions, logger?: BridgeLogger): Promise<T>;
export declare function validatePrompt(prompt: unknown): string;
export declare function validateAgentName(name: unknown): string;
export declare function sleep(ms: number): Promise<void>;
/** Extrait un sessionId depuis un marqueur textuel "SESSION_ID: xxx" */
export declare function extractSessionIdFromContent(content: Array<{
type: string;
text: string;
}>): string | undefined;
/** Formate un contexte Discord pour l'injection dans le prompt agent */
export declare function formatDiscordContext(params: {
channelId?: string;
userId?: string;
username?: string;
message: string;
}): string;
/**
* Interpolation de variables ${var} dans un template.
* Utilisé par ScenarioLoader, PromptSource, et le CLI.
*
* Supporte :
* - ${var} → remplacé par vars[var] si défini, sinon laissé tel quel
* - ${var:-def} → valeur par défaut si vars[var] est undefined
*/
export declare function interpolate(template: string, vars?: Record<string, string | undefined>): string;
//# sourceMappingURL=utils.d.ts.map