export interface RemoteTransport { send(request: McpJsonRpcRequest): Promise; close(): Promise; } export interface McpJsonRpcRequest { jsonrpc: '2.0'; id: string; method: string; params?: Record; } export interface McpJsonRpcResponse { jsonrpc: '2.0'; id: string; result?: T; error?: { code: number; message: string; data?: unknown; }; } export interface RemoteAgentConfig { type: 'mcp-http'; url: string; apiKey?: string; headers?: Record; timeoutMs?: number; agentId?: string; tools?: { query?: string; execute?: string; }; } export interface RemoteProviderConfig { id: string; type: 'remote'; location: string; external_agent_id?: string; display_name?: string; description?: string; timeout?: { query?: number; execute?: number; }; apiKey?: string; headers?: Record; } export interface RemoteAgentQueryRequest { agentId: string; query: string; context?: string; model?: string; platform?: string; messages?: Array<{ text: string; isAssistant: boolean; metadata?: Record; }>; } export interface RemoteAgentExecuteRequest { agentId: string; task: string; context?: string; model?: string; platform?: string; messages?: Array<{ text: string; isAssistant: boolean; metadata?: Record; }>; } export interface RemoteAgentResponse { content: Array<{ type: string; text: string; }>; success?: boolean; error?: string; [key: string]: unknown; } export interface ToolNameMapping { query: string; execute: string; } export interface RemoteAgentDescriptor { localAgentId: string; remoteAgentId: string; config: RemoteAgentConfig; }