UNPKG

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
/** * ╔══════════════════════════════════════════════════════════════════════╗ * ║ 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