@yuaone/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +663 -0
- package/README.md +15 -0
- package/dist/__tests__/context-manager.test.d.ts +6 -0
- package/dist/__tests__/context-manager.test.d.ts.map +1 -0
- package/dist/__tests__/context-manager.test.js +220 -0
- package/dist/__tests__/context-manager.test.js.map +1 -0
- package/dist/__tests__/governor.test.d.ts +6 -0
- package/dist/__tests__/governor.test.d.ts.map +1 -0
- package/dist/__tests__/governor.test.js +210 -0
- package/dist/__tests__/governor.test.js.map +1 -0
- package/dist/__tests__/model-router.test.d.ts +6 -0
- package/dist/__tests__/model-router.test.d.ts.map +1 -0
- package/dist/__tests__/model-router.test.js +329 -0
- package/dist/__tests__/model-router.test.js.map +1 -0
- package/dist/agent-logger.d.ts +384 -0
- package/dist/agent-logger.d.ts.map +1 -0
- package/dist/agent-logger.js +820 -0
- package/dist/agent-logger.js.map +1 -0
- package/dist/agent-loop.d.ts +163 -0
- package/dist/agent-loop.d.ts.map +1 -0
- package/dist/agent-loop.js +609 -0
- package/dist/agent-loop.js.map +1 -0
- package/dist/agent-modes.d.ts +85 -0
- package/dist/agent-modes.d.ts.map +1 -0
- package/dist/agent-modes.js +418 -0
- package/dist/agent-modes.js.map +1 -0
- package/dist/approval.d.ts +137 -0
- package/dist/approval.d.ts.map +1 -0
- package/dist/approval.js +299 -0
- package/dist/approval.js.map +1 -0
- package/dist/async-completion-queue.d.ts +56 -0
- package/dist/async-completion-queue.d.ts.map +1 -0
- package/dist/async-completion-queue.js +77 -0
- package/dist/async-completion-queue.js.map +1 -0
- package/dist/auto-fix.d.ts +174 -0
- package/dist/auto-fix.d.ts.map +1 -0
- package/dist/auto-fix.js +319 -0
- package/dist/auto-fix.js.map +1 -0
- package/dist/codebase-context.d.ts +396 -0
- package/dist/codebase-context.d.ts.map +1 -0
- package/dist/codebase-context.js +1260 -0
- package/dist/codebase-context.js.map +1 -0
- package/dist/conflict-resolver.d.ts +191 -0
- package/dist/conflict-resolver.d.ts.map +1 -0
- package/dist/conflict-resolver.js +524 -0
- package/dist/conflict-resolver.js.map +1 -0
- package/dist/constants.d.ts +52 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +141 -0
- package/dist/constants.js.map +1 -0
- package/dist/context-budget.d.ts +435 -0
- package/dist/context-budget.d.ts.map +1 -0
- package/dist/context-budget.js +903 -0
- package/dist/context-budget.js.map +1 -0
- package/dist/context-compressor.d.ts +143 -0
- package/dist/context-compressor.d.ts.map +1 -0
- package/dist/context-compressor.js +511 -0
- package/dist/context-compressor.js.map +1 -0
- package/dist/context-manager.d.ts +112 -0
- package/dist/context-manager.d.ts.map +1 -0
- package/dist/context-manager.js +247 -0
- package/dist/context-manager.js.map +1 -0
- package/dist/continuous-reflection.d.ts +267 -0
- package/dist/continuous-reflection.d.ts.map +1 -0
- package/dist/continuous-reflection.js +338 -0
- package/dist/continuous-reflection.js.map +1 -0
- package/dist/cross-file-refactor.d.ts +352 -0
- package/dist/cross-file-refactor.d.ts.map +1 -0
- package/dist/cross-file-refactor.js +1544 -0
- package/dist/cross-file-refactor.js.map +1 -0
- package/dist/dag-orchestrator.d.ts +138 -0
- package/dist/dag-orchestrator.d.ts.map +1 -0
- package/dist/dag-orchestrator.js +379 -0
- package/dist/dag-orchestrator.js.map +1 -0
- package/dist/debate-orchestrator.d.ts +301 -0
- package/dist/debate-orchestrator.d.ts.map +1 -0
- package/dist/debate-orchestrator.js +719 -0
- package/dist/debate-orchestrator.js.map +1 -0
- package/dist/dependency-analyzer.d.ts +113 -0
- package/dist/dependency-analyzer.d.ts.map +1 -0
- package/dist/dependency-analyzer.js +444 -0
- package/dist/dependency-analyzer.js.map +1 -0
- package/dist/design-loop.d.ts +59 -0
- package/dist/design-loop.d.ts.map +1 -0
- package/dist/design-loop.js +344 -0
- package/dist/design-loop.js.map +1 -0
- package/dist/doc-intelligence.d.ts +383 -0
- package/dist/doc-intelligence.d.ts.map +1 -0
- package/dist/doc-intelligence.js +1307 -0
- package/dist/doc-intelligence.js.map +1 -0
- package/dist/dynamic-role-generator.d.ts +76 -0
- package/dist/dynamic-role-generator.d.ts.map +1 -0
- package/dist/dynamic-role-generator.js +194 -0
- package/dist/dynamic-role-generator.js.map +1 -0
- package/dist/errors.d.ts +69 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +102 -0
- package/dist/errors.js.map +1 -0
- package/dist/event-bus.d.ts +159 -0
- package/dist/event-bus.d.ts.map +1 -0
- package/dist/event-bus.js +305 -0
- package/dist/event-bus.js.map +1 -0
- package/dist/execution-engine.d.ts +425 -0
- package/dist/execution-engine.d.ts.map +1 -0
- package/dist/execution-engine.js +1555 -0
- package/dist/execution-engine.js.map +1 -0
- package/dist/git-intelligence.d.ts +306 -0
- package/dist/git-intelligence.d.ts.map +1 -0
- package/dist/git-intelligence.js +1099 -0
- package/dist/git-intelligence.js.map +1 -0
- package/dist/governor.d.ts +77 -0
- package/dist/governor.d.ts.map +1 -0
- package/dist/governor.js +161 -0
- package/dist/governor.js.map +1 -0
- package/dist/hierarchical-planner.d.ts +313 -0
- package/dist/hierarchical-planner.d.ts.map +1 -0
- package/dist/hierarchical-planner.js +981 -0
- package/dist/hierarchical-planner.js.map +1 -0
- package/dist/index.d.ts +121 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +123 -0
- package/dist/index.js.map +1 -0
- package/dist/intent-inference.d.ts +103 -0
- package/dist/intent-inference.d.ts.map +1 -0
- package/dist/intent-inference.js +605 -0
- package/dist/intent-inference.js.map +1 -0
- package/dist/interrupt-manager.d.ts +143 -0
- package/dist/interrupt-manager.d.ts.map +1 -0
- package/dist/interrupt-manager.js +196 -0
- package/dist/interrupt-manager.js.map +1 -0
- package/dist/kernel.d.ts +564 -0
- package/dist/kernel.d.ts.map +1 -0
- package/dist/kernel.js +1419 -0
- package/dist/kernel.js.map +1 -0
- package/dist/language-support.d.ts +232 -0
- package/dist/language-support.d.ts.map +1 -0
- package/dist/language-support.js +1134 -0
- package/dist/language-support.js.map +1 -0
- package/dist/llm-client.d.ts +82 -0
- package/dist/llm-client.d.ts.map +1 -0
- package/dist/llm-client.js +475 -0
- package/dist/llm-client.js.map +1 -0
- package/dist/mcp-client.d.ts +232 -0
- package/dist/mcp-client.d.ts.map +1 -0
- package/dist/mcp-client.js +718 -0
- package/dist/mcp-client.js.map +1 -0
- package/dist/memory-manager.d.ts +200 -0
- package/dist/memory-manager.d.ts.map +1 -0
- package/dist/memory-manager.js +568 -0
- package/dist/memory-manager.js.map +1 -0
- package/dist/memory.d.ts +87 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +341 -0
- package/dist/memory.js.map +1 -0
- package/dist/model-router.d.ts +245 -0
- package/dist/model-router.d.ts.map +1 -0
- package/dist/model-router.js +632 -0
- package/dist/model-router.js.map +1 -0
- package/dist/parallel-executor.d.ts +125 -0
- package/dist/parallel-executor.d.ts.map +1 -0
- package/dist/parallel-executor.js +201 -0
- package/dist/parallel-executor.js.map +1 -0
- package/dist/perf-optimizer.d.ts +212 -0
- package/dist/perf-optimizer.d.ts.map +1 -0
- package/dist/perf-optimizer.js +721 -0
- package/dist/perf-optimizer.js.map +1 -0
- package/dist/persona.d.ts +305 -0
- package/dist/persona.d.ts.map +1 -0
- package/dist/persona.js +887 -0
- package/dist/persona.js.map +1 -0
- package/dist/planner.d.ts +70 -0
- package/dist/planner.d.ts.map +1 -0
- package/dist/planner.js +264 -0
- package/dist/planner.js.map +1 -0
- package/dist/qa-pipeline.d.ts +365 -0
- package/dist/qa-pipeline.d.ts.map +1 -0
- package/dist/qa-pipeline.js +1352 -0
- package/dist/qa-pipeline.js.map +1 -0
- package/dist/reasoning-adapter.d.ts +116 -0
- package/dist/reasoning-adapter.d.ts.map +1 -0
- package/dist/reasoning-adapter.js +187 -0
- package/dist/reasoning-adapter.js.map +1 -0
- package/dist/role-registry.d.ts +55 -0
- package/dist/role-registry.d.ts.map +1 -0
- package/dist/role-registry.js +192 -0
- package/dist/role-registry.js.map +1 -0
- package/dist/sandbox-tiers.d.ts +327 -0
- package/dist/sandbox-tiers.d.ts.map +1 -0
- package/dist/sandbox-tiers.js +928 -0
- package/dist/sandbox-tiers.js.map +1 -0
- package/dist/security-scanner.d.ts +222 -0
- package/dist/security-scanner.d.ts.map +1 -0
- package/dist/security-scanner.js +1129 -0
- package/dist/security-scanner.js.map +1 -0
- package/dist/security.d.ts +93 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +393 -0
- package/dist/security.js.map +1 -0
- package/dist/self-reflection.d.ts +397 -0
- package/dist/self-reflection.d.ts.map +1 -0
- package/dist/self-reflection.js +908 -0
- package/dist/self-reflection.js.map +1 -0
- package/dist/session-persistence.d.ts +191 -0
- package/dist/session-persistence.d.ts.map +1 -0
- package/dist/session-persistence.js +395 -0
- package/dist/session-persistence.js.map +1 -0
- package/dist/speculative-executor.d.ts +210 -0
- package/dist/speculative-executor.d.ts.map +1 -0
- package/dist/speculative-executor.js +618 -0
- package/dist/speculative-executor.js.map +1 -0
- package/dist/state-machine.d.ts +289 -0
- package/dist/state-machine.d.ts.map +1 -0
- package/dist/state-machine.js +695 -0
- package/dist/state-machine.js.map +1 -0
- package/dist/sub-agent.d.ts +177 -0
- package/dist/sub-agent.d.ts.map +1 -0
- package/dist/sub-agent.js +303 -0
- package/dist/sub-agent.js.map +1 -0
- package/dist/system-prompt.d.ts +26 -0
- package/dist/system-prompt.d.ts.map +1 -0
- package/dist/system-prompt.js +84 -0
- package/dist/system-prompt.js.map +1 -0
- package/dist/test-intelligence.d.ts +439 -0
- package/dist/test-intelligence.d.ts.map +1 -0
- package/dist/test-intelligence.js +1165 -0
- package/dist/test-intelligence.js.map +1 -0
- package/dist/types.d.ts +632 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/vector-index.d.ts +314 -0
- package/dist/vector-index.d.ts.map +1 -0
- package/dist/vector-index.js +618 -0
- package/dist/vector-index.js.map +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module execution-engine
|
|
3
|
+
* @description Top-level Execution Engine — StateMachine(brain) ↔ AgentLoop(hands) 오케스트레이터.
|
|
4
|
+
*
|
|
5
|
+
* 모든 하위 시스템을 연결하여 사용자 목표를 end-to-end로 실행한다:
|
|
6
|
+
* - **StateMachine** — phase 전이 (analyze → plan → implement → verify → done)
|
|
7
|
+
* - **AgentLoop** — LLM ↔ Tool 반복 실행 (implement/fix phase)
|
|
8
|
+
* - **HierarchicalPlanner** — 3-level 계획 수립 (plan phase)
|
|
9
|
+
* - **SelfReflection** — 6-dimension 심층 검증 (verify phase)
|
|
10
|
+
* - **CodebaseContext** — 코드베이스 인덱싱/검색 (analyze phase)
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const engine = new ExecutionEngine({
|
|
15
|
+
* byokConfig: { provider: "anthropic", apiKey: "sk-..." },
|
|
16
|
+
* projectPath: "/my/project",
|
|
17
|
+
* toolExecutor: myExecutor,
|
|
18
|
+
* maxIterations: 100,
|
|
19
|
+
* totalTokenBudget: 500_000,
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* engine.on("phase:enter", (phase) => console.log(`Phase: ${phase}`));
|
|
23
|
+
* engine.on("monologue", (entry) => console.log(entry.thought));
|
|
24
|
+
*
|
|
25
|
+
* const result = await engine.execute("Add error handling to all API routes");
|
|
26
|
+
* console.log(result.success, result.summary);
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
import { EventEmitter } from "node:events";
|
|
30
|
+
import type { BYOKConfig, ToolExecutor, AgentTermination } from "./types.js";
|
|
31
|
+
import { AgentLogger } from "./agent-logger.js";
|
|
32
|
+
import type { LoggerConfig } from "./agent-logger.js";
|
|
33
|
+
import type { GovernorConfig } from "./governor.js";
|
|
34
|
+
import type { ContextManagerConfig } from "./context-manager.js";
|
|
35
|
+
import type { ApprovalHandler, AutoApprovalConfig } from "./approval.js";
|
|
36
|
+
import type { AutoFixConfig } from "./auto-fix.js";
|
|
37
|
+
import { type AgentPhase } from "./state-machine.js";
|
|
38
|
+
import { type HierarchicalPlan } from "./hierarchical-planner.js";
|
|
39
|
+
import { type DeepVerifyResult, type MonologueEntry, type ReflectionLearning } from "./self-reflection.js";
|
|
40
|
+
import { PlanGraphManager } from "./kernel.js";
|
|
41
|
+
import { SessionPersistence } from "./session-persistence.js";
|
|
42
|
+
import type { SandboxTier } from "./sandbox-tiers.js";
|
|
43
|
+
/** ExecutionEngine 설정 */
|
|
44
|
+
export interface ExecutionEngineConfig {
|
|
45
|
+
/** BYOK LLM 설정 */
|
|
46
|
+
byokConfig: BYOKConfig;
|
|
47
|
+
/** 프로젝트 루트 경로 */
|
|
48
|
+
projectPath: string;
|
|
49
|
+
/** 도구 실행기 */
|
|
50
|
+
toolExecutor: ToolExecutor;
|
|
51
|
+
/** 최대 반복 횟수 (기본 100) */
|
|
52
|
+
maxIterations?: number;
|
|
53
|
+
/** 전체 토큰 예산 (기본 500,000) */
|
|
54
|
+
totalTokenBudget?: number;
|
|
55
|
+
/** 최대 수정 시도 횟수 (기본 3) */
|
|
56
|
+
maxFixAttempts?: number;
|
|
57
|
+
/** 코드베이스 인덱싱 활성화 (기본 true) */
|
|
58
|
+
enableCodebaseIndex?: boolean;
|
|
59
|
+
/** 3-level 계층적 계획 활성화 (기본 true) */
|
|
60
|
+
enableHierarchicalPlanning?: boolean;
|
|
61
|
+
/** 6-dimension 심층 검증 활성화 (기본 true) */
|
|
62
|
+
enableDeepVerify?: boolean;
|
|
63
|
+
/** 내적 독백 활성화 (기본 true) */
|
|
64
|
+
enableMonologue?: boolean;
|
|
65
|
+
/** 학습 기록 활성화 (기본 true) */
|
|
66
|
+
enableLearning?: boolean;
|
|
67
|
+
/** 단순 태스크 시 design phase 스킵 (기본 true) */
|
|
68
|
+
skipDesignForSimple?: boolean;
|
|
69
|
+
/** 병렬 실행 활성화 (기본 true) */
|
|
70
|
+
enableParallel?: boolean;
|
|
71
|
+
/** Governor 설정 오버라이드 */
|
|
72
|
+
governorConfig?: GovernorConfig;
|
|
73
|
+
/** ContextManager 설정 오버라이드 */
|
|
74
|
+
contextConfig?: Partial<ContextManagerConfig>;
|
|
75
|
+
/** 자동 승인 설정 오버라이드 */
|
|
76
|
+
approvalConfig?: Partial<AutoApprovalConfig>;
|
|
77
|
+
/** 승인 핸들러 (CLI/UI에서 등록) */
|
|
78
|
+
approvalHandler?: ApprovalHandler;
|
|
79
|
+
/** 자동 수정 루프 설정 오버라이드 */
|
|
80
|
+
autoFixConfig?: Partial<AutoFixConfig>;
|
|
81
|
+
/** 구조화된 실행 로거 (미제공 시 기본 생성) */
|
|
82
|
+
logger?: AgentLogger;
|
|
83
|
+
/** 로거 설정 (logger 미제공 시 기본 로거 생성에 사용) */
|
|
84
|
+
loggerConfig?: Partial<LoggerConfig>;
|
|
85
|
+
/** 세션 영속성 핸들러 (체크포인트 저장용, 미제공 시 비활성) */
|
|
86
|
+
sessionPersistence?: SessionPersistence | null;
|
|
87
|
+
/** 세션 ID (resume 시 기존 세션 ID 전달) */
|
|
88
|
+
sessionId?: string;
|
|
89
|
+
/** 병렬 실행 활성화 — PlanGraph DAG 기반 (기본 true) */
|
|
90
|
+
enableParallelExecution?: boolean;
|
|
91
|
+
/** 최대 동시 병렬 에이전트 수 (기본 3) */
|
|
92
|
+
maxParallelAgents?: number;
|
|
93
|
+
/** 벡터 검색 활성화 — pgvector 기반 시맨틱 검색 (기본 false, pgvector 필요) */
|
|
94
|
+
enableVectorSearch?: boolean;
|
|
95
|
+
/** MCP server configurations for external tool integration (기본 undefined — disabled) */
|
|
96
|
+
mcpServerConfigs?: Array<{
|
|
97
|
+
name: string;
|
|
98
|
+
command: string;
|
|
99
|
+
args?: string[];
|
|
100
|
+
}>;
|
|
101
|
+
/** 성능 추적 활성화 (기본 false) */
|
|
102
|
+
enablePerfTracking?: boolean;
|
|
103
|
+
/** 샌드박스 보안 격리 활성화 (기본 false) */
|
|
104
|
+
enableSandbox?: boolean;
|
|
105
|
+
/** 샌드박스 기본 티어 (기본 2 — Project-Scoped) */
|
|
106
|
+
sandboxTier?: SandboxTier;
|
|
107
|
+
/** Multi-agent debate verification 활성화 (기본 false) */
|
|
108
|
+
enableDebate?: boolean;
|
|
109
|
+
/** Security DAST scanning in verify phase 활성화 (기본 false) */
|
|
110
|
+
enableSecurityScan?: boolean;
|
|
111
|
+
/** Documentation intelligence in verify phase 활성화 (기본 false) */
|
|
112
|
+
enableDocGeneration?: boolean;
|
|
113
|
+
/** Intent inference pre-processing 활성화 (기본 true — 모호한 입력에만 활성) */
|
|
114
|
+
enableIntentInference?: boolean;
|
|
115
|
+
/** Speculative execution 활성화 (기본 false — 비용이 높으므로 opt-in) */
|
|
116
|
+
enableSpeculative?: boolean;
|
|
117
|
+
/** Speculative execution 시 최대 접근법 수 (기본 3) */
|
|
118
|
+
speculativeMaxApproaches?: number;
|
|
119
|
+
}
|
|
120
|
+
/** ExecutionEngine 실행 결과 */
|
|
121
|
+
export interface ExecutionResult {
|
|
122
|
+
/** 성공 여부 */
|
|
123
|
+
success: boolean;
|
|
124
|
+
/** AgentLoop 종료 사유 (마지막 loop의 종료 사유, 있으면) */
|
|
125
|
+
termination: AgentTermination;
|
|
126
|
+
/** StateMachine 최종 phase */
|
|
127
|
+
finalPhase: AgentPhase;
|
|
128
|
+
/** 변경된 파일 목록 */
|
|
129
|
+
changedFiles: string[];
|
|
130
|
+
/** 실행 요약 */
|
|
131
|
+
summary: string;
|
|
132
|
+
/** 총 토큰 사용량 */
|
|
133
|
+
totalTokens: {
|
|
134
|
+
input: number;
|
|
135
|
+
output: number;
|
|
136
|
+
};
|
|
137
|
+
/** 총 반복 횟수 */
|
|
138
|
+
totalIterations: number;
|
|
139
|
+
/** 총 도구 호출 횟수 */
|
|
140
|
+
totalToolCalls: number;
|
|
141
|
+
/** 실행 시간 (ms) */
|
|
142
|
+
durationMs: number;
|
|
143
|
+
/** 심층 검증 결과 (마지막 verify phase) */
|
|
144
|
+
verifyResult?: DeepVerifyResult;
|
|
145
|
+
/** 내적 독백 기록 */
|
|
146
|
+
monologue: MonologueEntry[];
|
|
147
|
+
/** 학습 기록 */
|
|
148
|
+
learnings: ReflectionLearning[];
|
|
149
|
+
/** 사용된 계획 */
|
|
150
|
+
plan?: HierarchicalPlan;
|
|
151
|
+
}
|
|
152
|
+
/** ExecutionEngine 이벤트 정의 */
|
|
153
|
+
export interface ExecutionEngineEvents {
|
|
154
|
+
/** 실행 시작 */
|
|
155
|
+
"engine:start": (goal: string) => void;
|
|
156
|
+
/** 실행 완료 */
|
|
157
|
+
"engine:complete": (result: ExecutionResult) => void;
|
|
158
|
+
/** 실행 에러 */
|
|
159
|
+
"engine:error": (error: Error) => void;
|
|
160
|
+
/** Phase 진입 */
|
|
161
|
+
"phase:enter": (phase: AgentPhase) => void;
|
|
162
|
+
/** Phase 퇴장 */
|
|
163
|
+
"phase:exit": (phase: AgentPhase) => void;
|
|
164
|
+
/** 내적 독백 항목 */
|
|
165
|
+
monologue: (entry: MonologueEntry) => void;
|
|
166
|
+
/** 도구 호출 */
|
|
167
|
+
"tool:call": (name: string, input: unknown) => void;
|
|
168
|
+
/** 도구 결과 */
|
|
169
|
+
"tool:result": (name: string, output: string) => void;
|
|
170
|
+
/** 검증 결과 */
|
|
171
|
+
"verify:result": (result: DeepVerifyResult) => void;
|
|
172
|
+
/** AgentLoop 텍스트 델타 패스스루 */
|
|
173
|
+
text_delta: (text: string) => void;
|
|
174
|
+
/** AgentLoop 사고 패스스루 */
|
|
175
|
+
thinking: (text: string) => void;
|
|
176
|
+
/** 사용자 위임 (delegate phase에서 질문 전달) */
|
|
177
|
+
"engine:delegate": (question: string) => void;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* ExecutionEngine — YUAN 에이전트의 최상위 오케스트레이터.
|
|
181
|
+
*
|
|
182
|
+
* StateMachine이 phase 전이를 결정하고,
|
|
183
|
+
* ExecutionEngine이 각 phase에서 적절한 하위 시스템을 호출한다.
|
|
184
|
+
*
|
|
185
|
+
* - **analyze**: CodebaseContext로 프로젝트 구조 파악
|
|
186
|
+
* - **design**: LLM으로 접근법 제안
|
|
187
|
+
* - **plan**: HierarchicalPlanner로 3-level 계획 수립
|
|
188
|
+
* - **implement**: AgentLoop로 LLM ↔ Tool 반복 실행
|
|
189
|
+
* - **verify**: SelfReflection.deepVerify로 6-dimension 검증
|
|
190
|
+
* - **fix**: AgentLoop로 에러 수정
|
|
191
|
+
* - **replan**: HierarchicalPlanner.replan으로 재계획
|
|
192
|
+
*/
|
|
193
|
+
export declare class ExecutionEngine extends EventEmitter {
|
|
194
|
+
private readonly config;
|
|
195
|
+
private readonly llmClient;
|
|
196
|
+
private readonly reflection;
|
|
197
|
+
private codebaseContext;
|
|
198
|
+
private vectorIndex;
|
|
199
|
+
private stateMachine;
|
|
200
|
+
private abortController;
|
|
201
|
+
private readonly changedFiles;
|
|
202
|
+
private readonly originalFiles;
|
|
203
|
+
private lastTermination;
|
|
204
|
+
private lastVerifyResult;
|
|
205
|
+
private hierarchicalPlan;
|
|
206
|
+
private planGraph;
|
|
207
|
+
private sessionId;
|
|
208
|
+
private readonly _logger;
|
|
209
|
+
private readonly sessionPersistence;
|
|
210
|
+
/** DAG 기반 병렬 실행 결과 캐시 (stepIndex → StepResult) */
|
|
211
|
+
private parallelStepResults;
|
|
212
|
+
/** DAG 기반 병렬 실행이 완료되었는지 */
|
|
213
|
+
private parallelExecutionDone;
|
|
214
|
+
/** MCP server configurations (stored from constructor config) */
|
|
215
|
+
private readonly mcpServerConfigs;
|
|
216
|
+
/** MCP Client — external tool bridge (null if disabled) */
|
|
217
|
+
private mcpClient;
|
|
218
|
+
/** MCP tool definitions discovered at runtime */
|
|
219
|
+
private mcpToolDefinitions;
|
|
220
|
+
/** Performance optimizer (null if disabled) */
|
|
221
|
+
private perfOptimizer;
|
|
222
|
+
/** Sandbox manager for tool call validation (null if disabled) */
|
|
223
|
+
private sandboxManager;
|
|
224
|
+
constructor(config: ExecutionEngineConfig);
|
|
225
|
+
/** 실행 로거 — 실행 후 로그 조회에 사용 */
|
|
226
|
+
get logger(): AgentLogger;
|
|
227
|
+
/** 현재 PlanGraphManager 인스턴스 (계획 진행 상태 조회용) */
|
|
228
|
+
get currentPlanGraph(): PlanGraphManager | null;
|
|
229
|
+
/**
|
|
230
|
+
* 현재 계획의 진행 상황을 반환한다.
|
|
231
|
+
* PlanGraphManager가 없으면 null을 반환한다.
|
|
232
|
+
*
|
|
233
|
+
* @returns 진행 상황 객체 또는 null
|
|
234
|
+
*/
|
|
235
|
+
getPlanProgress(): {
|
|
236
|
+
completed: number;
|
|
237
|
+
total: number;
|
|
238
|
+
percent: number;
|
|
239
|
+
running: string[];
|
|
240
|
+
failed: string[];
|
|
241
|
+
} | null;
|
|
242
|
+
/**
|
|
243
|
+
* 사용자 목표를 end-to-end로 실행한다.
|
|
244
|
+
*
|
|
245
|
+
* 내부적으로 StateMachine을 생성하고, 각 phase에 대한 콜백을 연결하여
|
|
246
|
+
* idle → analyze → plan → implement → verify → done까지 자동 진행한다.
|
|
247
|
+
*
|
|
248
|
+
* @param goal - 사용자의 실행 목표
|
|
249
|
+
* @returns 실행 결과 (성공 여부, 변경 파일, 토큰 사용량 등)
|
|
250
|
+
*/
|
|
251
|
+
execute(goal: string): Promise<ExecutionResult>;
|
|
252
|
+
/**
|
|
253
|
+
* 런타임 상태를 디스크에 체크포인트로 저장한다.
|
|
254
|
+
* sessionPersistence가 없으면 아무것도 하지 않는다.
|
|
255
|
+
* 실패해도 실행을 중단하지 않는다 (경고 로그만 남김).
|
|
256
|
+
*
|
|
257
|
+
* @param stepIndex - 현재 step 인덱스 (있으면)
|
|
258
|
+
*/
|
|
259
|
+
private checkpoint;
|
|
260
|
+
/**
|
|
261
|
+
* 실행을 중단한다.
|
|
262
|
+
* 현재 진행 중인 AgentLoop와 StateMachine이 다음 체크포인트에서 중단된다.
|
|
263
|
+
*/
|
|
264
|
+
abort(): void;
|
|
265
|
+
/**
|
|
266
|
+
* StateMachine에 주입할 콜백 컨텍스트를 생성한다.
|
|
267
|
+
* 각 콜백이 적절한 하위 시스템(AgentLoop, HierarchicalPlanner 등)을 호출한다.
|
|
268
|
+
*/
|
|
269
|
+
private buildStateMachineContext;
|
|
270
|
+
/**
|
|
271
|
+
* analyze phase 콜백 — CodebaseContext + LLM으로 목표를 분석한다.
|
|
272
|
+
*
|
|
273
|
+
* @param goal - 사용자 목표
|
|
274
|
+
* @param state - 현재 에이전트 상태
|
|
275
|
+
* @returns 복잡도 판정과 분석 컨텍스트
|
|
276
|
+
*/
|
|
277
|
+
private analyzeGoal;
|
|
278
|
+
/**
|
|
279
|
+
* design phase 콜백 — LLM에게 구현 접근법 제안을 요청한다.
|
|
280
|
+
*
|
|
281
|
+
* @param goal - 사용자 목표
|
|
282
|
+
* @param context - analyze phase에서 수집한 컨텍스트
|
|
283
|
+
* @returns 제안된 접근법 목록
|
|
284
|
+
*/
|
|
285
|
+
private designApproaches;
|
|
286
|
+
/**
|
|
287
|
+
* plan phase 콜백 — HierarchicalPlanner로 3-level 실행 계획을 수립한다.
|
|
288
|
+
*
|
|
289
|
+
* @param goal - 사용자 목표
|
|
290
|
+
* @param approach - 선택된 접근법
|
|
291
|
+
* @returns 실행 계획 (ExecutionPlan 형식)
|
|
292
|
+
*/
|
|
293
|
+
private createPlan;
|
|
294
|
+
/**
|
|
295
|
+
* 병렬 실행 가능 여부에 따라 DAG 기반 병렬 실행 또는 단일 step 실행을 선택한다.
|
|
296
|
+
*
|
|
297
|
+
* StateMachine의 `handleParallel` phase에서 호출될 때:
|
|
298
|
+
* - 첫 호출 시 DAG 기반 병렬 실행을 수행하고 모든 결과를 캐시한다.
|
|
299
|
+
* - 이후 호출은 캐시에서 결과를 반환한다.
|
|
300
|
+
*
|
|
301
|
+
* StateMachine의 `handleImplement` phase에서 호출될 때:
|
|
302
|
+
* - 기존 순차 실행을 그대로 사용한다.
|
|
303
|
+
*
|
|
304
|
+
* @param plan - 실행 계획
|
|
305
|
+
* @param stepIndex - 실행할 step 인덱스
|
|
306
|
+
* @param state - 현재 에이전트 상태
|
|
307
|
+
* @returns step 실행 결과
|
|
308
|
+
*/
|
|
309
|
+
private executeStepWithParallel;
|
|
310
|
+
/**
|
|
311
|
+
* PlanGraph DAG 기반 병렬 step 실행.
|
|
312
|
+
*
|
|
313
|
+
* PlanGraphManager의 의존성 그래프를 따라:
|
|
314
|
+
* 1. 의존성이 모두 완료된 ready 노드를 가져온다.
|
|
315
|
+
* 2. maxParallelAgents만큼 동시에 실행한다.
|
|
316
|
+
* 3. 완료되면 의존 노드를 ready로 전환하고 반복한다.
|
|
317
|
+
* 4. 모든 노드가 종료 상태가 될 때까지 반복한다.
|
|
318
|
+
*
|
|
319
|
+
* @param plan - 실행 계획
|
|
320
|
+
* @param state - 현재 에이전트 상태
|
|
321
|
+
*/
|
|
322
|
+
private executeStepsWithDAG;
|
|
323
|
+
/**
|
|
324
|
+
* implement phase 콜백 — AgentLoop로 개별 step을 실행한다.
|
|
325
|
+
*
|
|
326
|
+
* @param plan - 실행 계획
|
|
327
|
+
* @param stepIndex - 실행할 step 인덱스
|
|
328
|
+
* @param state - 현재 에이전트 상태
|
|
329
|
+
* @returns step 실행 결과
|
|
330
|
+
*/
|
|
331
|
+
private executeStep;
|
|
332
|
+
/**
|
|
333
|
+
* verify phase 콜백 — SelfReflection.deepVerify로 6-dimension 검증을 수행한다.
|
|
334
|
+
*
|
|
335
|
+
* @param state - 현재 에이전트 상태
|
|
336
|
+
* @returns 검증 결과 (StateMachine VerifyResult 형식)
|
|
337
|
+
*/
|
|
338
|
+
private verifyWork;
|
|
339
|
+
/**
|
|
340
|
+
* fix phase 콜백 — AgentLoop로 에러를 수정한다.
|
|
341
|
+
*
|
|
342
|
+
* @param errors - 수정할 에러 목록
|
|
343
|
+
* @param state - 현재 에이전트 상태
|
|
344
|
+
* @returns 수정 시도 결과
|
|
345
|
+
*/
|
|
346
|
+
private fixErrors;
|
|
347
|
+
/**
|
|
348
|
+
* replan phase 콜백 — HierarchicalPlanner.replan으로 재계획을 수립한다.
|
|
349
|
+
*
|
|
350
|
+
* @param state - 현재 에이전트 상태
|
|
351
|
+
* @returns 새로운 실행 계획
|
|
352
|
+
*/
|
|
353
|
+
private replanWork;
|
|
354
|
+
/**
|
|
355
|
+
* delegate phase 콜백 — 사용자에게 질문을 전달하고 응답을 대기한다.
|
|
356
|
+
*
|
|
357
|
+
* 현재 구현에서는 기본 응답을 반환한다.
|
|
358
|
+
* 실제 환경에서는 이벤트를 emit하고 외부 응답을 대기해야 한다.
|
|
359
|
+
*
|
|
360
|
+
* @param question - 사용자에게 전달할 질문
|
|
361
|
+
* @returns 사용자 응답
|
|
362
|
+
*/
|
|
363
|
+
private delegateToUser;
|
|
364
|
+
/**
|
|
365
|
+
* 변경 전 파일 내용을 스냅샷으로 저장한다.
|
|
366
|
+
* 이미 스냅샷이 있는 파일은 건너뛴다 (최초 원본만 보존).
|
|
367
|
+
*
|
|
368
|
+
* @param files - 스냅샷할 파일 경로 목록
|
|
369
|
+
*/
|
|
370
|
+
private snapshotFiles;
|
|
371
|
+
/**
|
|
372
|
+
* 개별 step 실행을 위한 AgentLoop 인스턴스를 생성한다.
|
|
373
|
+
*
|
|
374
|
+
* @param systemPrompt - step별 시스템 프롬프트
|
|
375
|
+
* @returns 새 AgentLoop 인스턴스
|
|
376
|
+
*/
|
|
377
|
+
private createAgentLoop;
|
|
378
|
+
/**
|
|
379
|
+
* AgentLoop 이벤트를 ExecutionEngine 이벤트로 전파한다.
|
|
380
|
+
*
|
|
381
|
+
* @param loop - 이벤트를 연결할 AgentLoop 인스턴스
|
|
382
|
+
*/
|
|
383
|
+
private wireAgentLoopEvents;
|
|
384
|
+
/**
|
|
385
|
+
* analyze phase용 분석 프롬프트를 생성한다.
|
|
386
|
+
*
|
|
387
|
+
* @param goal - 사용자 목표
|
|
388
|
+
* @param codebaseStats - CodebaseContext 통계
|
|
389
|
+
* @returns 시스템 프롬프트
|
|
390
|
+
*/
|
|
391
|
+
private buildAnalysisPrompt;
|
|
392
|
+
/**
|
|
393
|
+
* 개별 step 실행을 위한 시스템 프롬프트를 생성한다.
|
|
394
|
+
*
|
|
395
|
+
* @param plan - 전체 실행 계획
|
|
396
|
+
* @param step - 현재 step
|
|
397
|
+
* @param stepIndex - step 인덱스
|
|
398
|
+
* @returns 시스템 프롬프트
|
|
399
|
+
*/
|
|
400
|
+
private buildStepPrompt;
|
|
401
|
+
/**
|
|
402
|
+
* DeepVerifyResult를 StateMachine의 VerifyResult 형식으로 변환한다.
|
|
403
|
+
*
|
|
404
|
+
* @param deep - 6-dimension 심층 검증 결과
|
|
405
|
+
* @returns StateMachine VerifyResult
|
|
406
|
+
*/
|
|
407
|
+
private mapVerifyResult;
|
|
408
|
+
/**
|
|
409
|
+
* StateMachine 최종 상태에서 ExecutionResult를 생성한다.
|
|
410
|
+
*
|
|
411
|
+
* @param smState - StateMachine 최종 상태
|
|
412
|
+
* @param startTime - 실행 시작 시각 (epoch ms)
|
|
413
|
+
* @returns 실행 결과
|
|
414
|
+
*/
|
|
415
|
+
private buildResult;
|
|
416
|
+
/**
|
|
417
|
+
* JSON 문자열에서 JSON 블록을 추출한다.
|
|
418
|
+
* markdown 코드 펜스 또는 순수 JSON을 처리한다.
|
|
419
|
+
*
|
|
420
|
+
* @param content - 원본 문자열
|
|
421
|
+
* @returns 추출된 JSON 문자열
|
|
422
|
+
*/
|
|
423
|
+
private extractJson;
|
|
424
|
+
}
|
|
425
|
+
//# sourceMappingURL=execution-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-engine.d.ts","sourceRoot":"","sources":["../src/execution-engine.ts"],"names":[],"mappings":"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"}
|