mnemos-coder
Version:
CLI-based coding agent with graph-based execution loop and terminal UI
120 lines • 3.44 kB
TypeScript
/**
* 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