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

82 lines • 4.38 kB
/** * ╔══════════════════════════════════════════════════════════════════════╗ * ║ OVERMIND BRIDGE — DirectiveParser (Agent-Side Protocol) ║ * ║ ║ * ║ Permet aux agents d'injecter des directives structurées dans ║ * ║ leurs réponses textuelles. Le bridge les extrait et les exécute. ║ * ║ ║ * ║ PATTERN ║ * ║ ─────── ║ * ║ Inspiré du `CONTEXT_UPDATE: step=X employe_id=Y` de bt-sms. ║ * ║ ║ * ║ L'agent écrit dans sa réponse : ║ * ║ ║ * ║ "Voici mon analyse. ║ * ║ SESSION_ID: hermes-sess-abc123 ║ * ║ CONTEXT_UPDATE: step=awaiting_description employe_id=42 ║ * ║ BRIDGE_NEXT: agent=scout prompt=\"Analyse BTC\" ║ * ║ BRIDGE_END" ║ * ║ ║ * ║ Le bridge : ║ * ║ 1. Extrait SESSION_ID, l'assigne au store ║ * ║ 2. Patche le context (state machine) ║ * ║ 3. Lance automatiquement un nouveau call vers scout ║ * ║ 4. Supprime les directives du texte retourné au client ║ * ║ ║ * ║ DIRECTIVES SUPPORTÉES ║ * ║ ────────────────────── ║ * ║ - SESSION_ID: <id> → assigne le sessionId ║ * ║ - CONTEXT_UPDATE: k=v k=v → patche le context ║ * ║ - BRIDGE_NEXT: method=X ... → déclenche un appel suivant ║ * ║ - BRIDGE_END → arrête la chaîne de next calls ║ * ║ - BRIDGE_HINT: <text> → tag/metadata (no action) ║ * ╚══════════════════════════════════════════════════════════════════════╝ */ import { type BridgeLogger } from './utils.js'; import type { JsonRpcRequest } from './OverBridgeServer.js'; export type DirectiveAction = { kind: 'session'; sessionId: string; } | { kind: 'context'; patch: Record<string, string>; } | { kind: 'next'; call: JsonRpcRequest; } | { kind: 'end'; } | { kind: 'hint'; text: string; }; export interface ParsedDirectives { /** Texte original sans les directives (propre, pour le client) */ cleanText: string; /** Directives extraites, dans l'ordre */ actions: DirectiveAction[]; /** Erreurs de parsing (lignes mal formées, ignorées mais loguées) */ errors: string[]; } export interface DirectiveParserOptions { /** Logger */ logger?: BridgeLogger; } export declare class DirectiveParser { private readonly log; constructor(opts?: DirectiveParserOptions); /** * Parse un texte de réponse d'agent et extrait les directives. * Lignes de directive : `DIRECTIVE_NAME: value`. */ parse(responseText: string): ParsedDirectives; /** * Parse une directive individuelle. Retourne null si nom inconnu. */ private parseDirective; } /** * Parse un format "key=value key2='value with spaces' key3="value with quotes"". * Supporte quotes simples, doubles, et backslash escape. */ export declare function parseKeyValueArgs(input: string): Record<string, string>; //# sourceMappingURL=DirectiveParser.d.ts.map