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