UNPKG

mnemos-coder

Version:

CLI-based coding agent with graph-based execution loop and terminal UI

120 lines 3.44 kB
/** * Subagent Manager - Claude Code 스타일의 subagent 관리 시스템 * 작업을 분석하고 적절한 subagent에게 위임 */ import { MCPClient } from '../mcp-client-sdk.js'; import { ISubagentManager, ISubagent, SubagentConfig, SubagentContext, SubagentResponse, SubagentMatch, TaskDelegation } from './types.js'; import { SubagentRegistry, ToolSpec } from './SubagentRegistry.js'; export declare class SubagentManager implements ISubagentManager { private subagents; private subagentConfigs; private activeTasks; private llmClient; private sharedMCPClient; private taskIdCounter; private externalConfig; private registry; private logger; constructor(sharedMCPClient?: MCPClient); /** * Get loaded subagents for external access */ getSubagents(): Map<string, ISubagent>; /** * 초기화 - 모든 사용 가능한 subagent 로드 */ initialize(): Promise<void>; /** * 디렉토리에서 subagent 설정 로드 */ private loadSubagentsFromDirectory; /** * Markdown 파일에서 subagent 설정 파싱 */ private parseSubagentFile; /** * 간단한 YAML 파싱 (키:값 형태만) */ private parseSimpleYAML; /** * Load subagents from configuration file */ private loadSubagentsFromConfig; /** * Create a generic subagent from config */ private createGenericSubagent; /** * Load external configuration from .mnemos/subagents-config.json */ private loadExternalConfig; /** * Create default configuration file */ private createDefaultConfigFile; /** * Get LLM config for a specific profile */ private getLLMConfigForProfile; /** * Subagent 로드 */ loadSubagent(config: SubagentConfig): Promise<void>; /** * 작업에 가장 적합한 subagent 찾기 */ findBestSubagent(taskDescription: string): Promise<SubagentMatch | null>; /** * LLM을 사용해서 subagent 적합성 평가 */ private evaluateSubagentFit; /** * LLM 실패 시 키워드 기반 fallback 평가 */ private fallbackEvaluateSubagentFit; /** * 두 문자열 간의 공통 단어 비율 */ private getCommonWords; /** * 작업 위임 */ delegateTask(taskDescription: string, context: SubagentContext): Promise<string>; /** * 작업 결과 조회 */ getTaskResult(taskId: string): Promise<TaskDelegation | null>; /** * 사용 가능한 subagent 목록 */ listAvailableSubagents(): SubagentConfig[]; /** * Get SubagentRegistry instance */ getRegistry(): SubagentRegistry | null; /** * Get dynamic Task tool specification */ getTaskToolSpec(): ToolSpec | null; /** * Get system prompt fragment with subagent information */ getSystemPromptFragment(): string; /** * Validate subagent name */ validateSubagentName(name: string): boolean; /** * 특정 subagent로 실행 */ executeWithSubagent(subagentName: string, query: string, context: SubagentContext): AsyncGenerator<SubagentResponse, void, unknown>; /** * Subagent 인스턴스 생성 */ private createSubagentInstance; /** * 모든 subagent 종료 */ shutdown(): Promise<void>; } //# sourceMappingURL=SubagentManager.d.ts.map