import { type McpServerConfig } from './client.js'; import type { ToolDef } from '../api/types.js'; export type McpStatus = 'connecting' | 'connected' | 'disconnected' | 'error'; /** * Inicia/para servidores MCP declarados en sq.toml, recoge sus tools y las * expone al resto de sq. Se encarga de enrutar las tool_call al server * correcto usando el prefijo `:`. * * Mantiene el `spec` original de cada server para poder reconectar después * de desconectar (necesario para el picker `/mcp`). */ export declare class McpManager { private servers; /** * Arranca todos los servers de la config. NO bloquea — registra los servers * como `connecting` y lanza los `connect()` en background. El REPL aparece * inmediatamente y los servers se van conectando a medida que responden * (o fallan con timeout). Si el usuario abre `/mcp` antes de que terminen, * ve el status en tiempo real. */ start(specs: McpServerConfig[]): void; /** Conecta un server por nombre. Devuelve true si quedó connected. */ connect(name: string): Promise; /** Desconecta un server por nombre. Idempotente. */ disconnect(name: string): void; /** Stop + connect (para reintentar tras fallo o relanzar el subproceso). */ restart(name: string): Promise; /** Lista todas las tools expuestas por los servers connected. */ getAllTools(): ToolDef[]; /** * Parsea el nombre compuesto `__` y localiza * el entry cuyo nombre saneado empareja. Necesario porque el nombre puede * contener caracteres que tuvimos que reemplazar por `_` al enviarlo al LLM. */ private findServer; /** True si el nombre de la tool pertenece a algún MCP server connected. */ isMcpTool(toolName: string): boolean; /** Proxy a tools/call del server correspondiente. */ callTool(toolName: string, input: Record): Promise; stopAll(): void; /** Nombres de los servers connected (para welcome banner). */ getActiveServers(): string[]; /** Snapshot completo para el picker `/mcp`. */ list(): Array<{ name: string; status: McpStatus; command: string; args: string[]; toolCount: number; lastError?: string; }>; } //# sourceMappingURL=manager.d.ts.map