mnemos-coder
Version:
CLI-based coding agent with graph-based execution loop and terminal UI
79 lines • 2.39 kB
TypeScript
/**
* Main Agent class - TypeScript version of seahorse agent.py
* Implements the same processing pattern with tool calling support
*/
import { MCPClient } from './mcp-client-sdk.js';
export interface AgentResponse {
type: 'llm_response' | 'tool_call' | 'tool_response' | 'tool_error' | 'status' | 'error' | 'delegation' | 'subagent_response' | 'completion';
content: any;
iteration?: number;
subagentName?: string;
}
export interface ToolCall {
name: string;
arguments: Record<string, any>;
}
export interface ToolResult {
server_name?: string;
tool_name: string;
arguments: Record<string, any>;
result?: any;
error?: string;
success: boolean;
}
export declare class SeahorseAgent {
private llmClient;
private mcpClient;
private subagentManager;
private contextMemory;
private enhancedContext;
private autoContext;
private maxIterations;
private systemPrompt;
private sessionId;
private projectRoot;
private logger;
constructor(sessionId?: string, projectRoot?: string);
private generateSessionId;
initialize(): Promise<void>;
processQuery(query: string, stream?: boolean): AsyncGenerator<AgentResponse, void, unknown>;
private simplifiedProcess;
private buildSystemPrompt;
private parseToolCalls;
executeToolCall(toolCall: ToolCall): Promise<ToolResult>;
/**
* Execute Task tool for subagent delegation
*/
private executeTaskTool;
private formatToolResults;
/**
* 사용 가능한 subagent 목록 반환
*/
getAvailableSubagents(): import("./subagents/types.js").SubagentConfig[];
/**
* 특정 subagent로 직접 실행 (CLI나 테스트용)
*/
executeWithSubagent(subagentName: string, query: string): AsyncGenerator<AgentResponse, void, unknown>;
shutdown(): Promise<void>;
/**
* Get MCP client for direct access
*/
getMcpClient(): MCPClient;
/**
* Update session ID (for session switching)
*/
setSessionId(sessionId: string): Promise<void>;
/**
* Get current session ID
*/
getSessionId(): string;
/**
* Get conversation history for display
*/
getConversationHistory(limit?: number): Promise<any[]>;
/**
* Clear current session history
*/
clearSession(): Promise<void>;
}
//# sourceMappingURL=agent.d.ts.map