@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
package/dist/kernel.d.ts
ADDED
|
@@ -0,0 +1,564 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module kernel
|
|
3
|
+
* @description YUAN Agent Kernel — 4 Core Abstractions (SSOT)
|
|
4
|
+
*
|
|
5
|
+
* 1. AgentSession (KernelSession) — 실행 단위의 단일 진실 원본
|
|
6
|
+
* 2. PlanGraph (PlanGraphManager) — 계획의 운영 상태 관리
|
|
7
|
+
* 3. ToolContract (ToolContractRegistry) — 도구 계약 SSOT
|
|
8
|
+
* 4. EventLog — 모든 것을 이벤트로 기록
|
|
9
|
+
*
|
|
10
|
+
* 이 파일의 인터페이스와 클래스를 시스템 전체에서 SSOT로 참조한다.
|
|
11
|
+
*/
|
|
12
|
+
import type { ExecutionPlan, ToolDefinition } from "./types.js";
|
|
13
|
+
/** 승인 대기 정보 */
|
|
14
|
+
export interface PendingApprovalInfo {
|
|
15
|
+
/** 고유 ID */
|
|
16
|
+
id: string;
|
|
17
|
+
/** 도구 이름 */
|
|
18
|
+
toolName: string;
|
|
19
|
+
/** 도구 인자 */
|
|
20
|
+
toolInput: Record<string, unknown>;
|
|
21
|
+
/** 위험도 */
|
|
22
|
+
risk: "low" | "medium" | "high" | "critical";
|
|
23
|
+
/** 유저에게 보여줄 설명 */
|
|
24
|
+
description: string;
|
|
25
|
+
/** 요청 시각 (epoch ms) */
|
|
26
|
+
requestedAt: number;
|
|
27
|
+
/** 타임아웃 (ms) */
|
|
28
|
+
timeoutMs: number;
|
|
29
|
+
}
|
|
30
|
+
/** 승인 기록 */
|
|
31
|
+
export interface ApprovalRecord {
|
|
32
|
+
/** 고유 ID */
|
|
33
|
+
id: string;
|
|
34
|
+
/** 도구 이름 */
|
|
35
|
+
toolName: string;
|
|
36
|
+
/** 위험도 */
|
|
37
|
+
risk: string;
|
|
38
|
+
/** 유저 응답 */
|
|
39
|
+
response: "approve" | "reject" | "always_approve";
|
|
40
|
+
/** 응답 시각 (epoch ms) */
|
|
41
|
+
respondedAt: number;
|
|
42
|
+
}
|
|
43
|
+
/** 세션 체크포인트 — 복구 지점 */
|
|
44
|
+
export interface SessionCheckpoint {
|
|
45
|
+
/** 체크포인트 ID */
|
|
46
|
+
id: string;
|
|
47
|
+
/** 생성 시각 (epoch ms) */
|
|
48
|
+
timestamp: number;
|
|
49
|
+
/** 체크포인트 시점의 phase */
|
|
50
|
+
phase: string;
|
|
51
|
+
/** 반복 횟수 */
|
|
52
|
+
iterationCount: number;
|
|
53
|
+
/** 토큰 사용량 */
|
|
54
|
+
tokenUsage: {
|
|
55
|
+
input: number;
|
|
56
|
+
output: number;
|
|
57
|
+
};
|
|
58
|
+
/** 변경된 파일 경로 목록 */
|
|
59
|
+
changedFiles: string[];
|
|
60
|
+
/** 체크포인트 요약 */
|
|
61
|
+
summary: string;
|
|
62
|
+
/** 작업 메모리 (자유 형식) */
|
|
63
|
+
workingMemory: Record<string, unknown>;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* KernelSession — 에이전트 실행 단위의 전체 상태.
|
|
67
|
+
*
|
|
68
|
+
* AgentLoop, Governor, Planner 등 모든 모듈이 이 인터페이스를 통해
|
|
69
|
+
* 세션 상태를 조회/변경한다.
|
|
70
|
+
*/
|
|
71
|
+
export interface KernelSession {
|
|
72
|
+
/** 세션 고유 ID */
|
|
73
|
+
id: string;
|
|
74
|
+
/** 실행 고유 ID (같은 세션의 재실행 구분) */
|
|
75
|
+
runId: string;
|
|
76
|
+
/** 에이전트에게 주어진 목표 */
|
|
77
|
+
goal: string;
|
|
78
|
+
/** 실행 모드 ("code" | "review" | "debug" 등) */
|
|
79
|
+
mode: string;
|
|
80
|
+
/** 프로젝트 루트 경로 */
|
|
81
|
+
projectPath: string;
|
|
82
|
+
/** 프로젝트 이름 */
|
|
83
|
+
projectName: string;
|
|
84
|
+
/** 현재 상태 머신 phase */
|
|
85
|
+
phase: string;
|
|
86
|
+
/** 세션 상태 */
|
|
87
|
+
status: "initializing" | "running" | "paused" | "waiting_approval" | "completed" | "failed" | "stopped";
|
|
88
|
+
/** 변경된 파일 경로 집합 */
|
|
89
|
+
changedFiles: Set<string>;
|
|
90
|
+
/** 파일별 원본 스냅샷 (변경 전 내용) */
|
|
91
|
+
originalSnapshots: Map<string, string>;
|
|
92
|
+
/** 현재 작업 중인 파일 */
|
|
93
|
+
activeFiles: Set<string>;
|
|
94
|
+
/** 현재 계획 ID (없으면 null) */
|
|
95
|
+
currentPlan: string | null;
|
|
96
|
+
/** 현재 진행 중인 단계 인덱스 */
|
|
97
|
+
currentStep: number;
|
|
98
|
+
/** 토큰 예산 */
|
|
99
|
+
tokenBudget: {
|
|
100
|
+
total: number;
|
|
101
|
+
used: {
|
|
102
|
+
input: number;
|
|
103
|
+
output: number;
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
/** 반복 예산 */
|
|
107
|
+
iterationBudget: {
|
|
108
|
+
max: number;
|
|
109
|
+
current: number;
|
|
110
|
+
};
|
|
111
|
+
/** 현재 대기 중인 승인 (없으면 null) */
|
|
112
|
+
pendingApproval: PendingApprovalInfo | null;
|
|
113
|
+
/** 승인 히스토리 */
|
|
114
|
+
approvalHistory: ApprovalRecord[];
|
|
115
|
+
/** 체크포인트 목록 */
|
|
116
|
+
checkpoints: SessionCheckpoint[];
|
|
117
|
+
/** 마지막 체크포인트 시각 (epoch ms) */
|
|
118
|
+
lastCheckpointAt: number;
|
|
119
|
+
/** 현재 등록된 도구 이름 목록 */
|
|
120
|
+
activeTools: string[];
|
|
121
|
+
/** 생성 시각 (epoch ms) */
|
|
122
|
+
createdAt: number;
|
|
123
|
+
/** 마지막 업데이트 시각 (epoch ms) */
|
|
124
|
+
updatedAt: number;
|
|
125
|
+
/** 실행 시작 시각 (epoch ms, 미시작이면 null) */
|
|
126
|
+
startedAt: number | null;
|
|
127
|
+
/** 완료 시각 (epoch ms, 미완료면 null) */
|
|
128
|
+
completedAt: number | null;
|
|
129
|
+
/** 프로젝트 메모리 파일 경로 (YUAN.md) */
|
|
130
|
+
projectMemoryPath: string;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* PlanGraph는 ExecutionPlan을 런타임 상태로 래핑한다.
|
|
134
|
+
* LLM이 계획을 생성하고, PlanGraph가 실행 상태를 관리한다.
|
|
135
|
+
*/
|
|
136
|
+
/** 계획 노드의 상태 */
|
|
137
|
+
export type PlanNodeStatus = "pending" | "ready" | "running" | "completed" | "failed" | "skipped" | "blocked";
|
|
138
|
+
/** 계획 그래프의 개별 노드 */
|
|
139
|
+
export interface PlanNode {
|
|
140
|
+
/** 노드 ID */
|
|
141
|
+
id: string;
|
|
142
|
+
/** 노드 목표 */
|
|
143
|
+
goal: string;
|
|
144
|
+
/** 대상 파일 */
|
|
145
|
+
targetFiles: string[];
|
|
146
|
+
/** 필요한 도구 */
|
|
147
|
+
tools: string[];
|
|
148
|
+
/** 의존하는 노드 ID 목록 */
|
|
149
|
+
dependsOn: string[];
|
|
150
|
+
/** 현재 상태 */
|
|
151
|
+
status: PlanNodeStatus;
|
|
152
|
+
/** 실행 시작 시각 */
|
|
153
|
+
startedAt: number | null;
|
|
154
|
+
/** 완료 시각 */
|
|
155
|
+
completedAt: number | null;
|
|
156
|
+
/** 실행 결과 요약 */
|
|
157
|
+
result: string | null;
|
|
158
|
+
/** 에러 메시지 */
|
|
159
|
+
error: string | null;
|
|
160
|
+
/** 변경된 파일 */
|
|
161
|
+
changedFiles: string[];
|
|
162
|
+
/** 토큰 사용량 */
|
|
163
|
+
tokensUsed: {
|
|
164
|
+
input: number;
|
|
165
|
+
output: number;
|
|
166
|
+
};
|
|
167
|
+
/** 시도 횟수 */
|
|
168
|
+
attempts: number;
|
|
169
|
+
/** 최대 시도 횟수 */
|
|
170
|
+
maxAttempts: number;
|
|
171
|
+
}
|
|
172
|
+
/** 계획 그래프의 전체 상태 */
|
|
173
|
+
export interface PlanGraphState {
|
|
174
|
+
/** 그래프 ID */
|
|
175
|
+
id: string;
|
|
176
|
+
/** 소속 세션 ID */
|
|
177
|
+
sessionId: string;
|
|
178
|
+
/** 전체 목표 */
|
|
179
|
+
goal: string;
|
|
180
|
+
/** 노드 맵 (id → PlanNode) */
|
|
181
|
+
nodes: Map<string, PlanNode>;
|
|
182
|
+
/** 완료된 노드 ID */
|
|
183
|
+
completedNodes: string[];
|
|
184
|
+
/** 실행 중인 노드 ID */
|
|
185
|
+
runningNodes: string[];
|
|
186
|
+
/** 대기 중인 노드 ID */
|
|
187
|
+
pendingNodes: string[];
|
|
188
|
+
/** 실패한 노드 ID */
|
|
189
|
+
failedNodes: string[];
|
|
190
|
+
/** 건너뛴 노드 ID */
|
|
191
|
+
skippedNodes: string[];
|
|
192
|
+
/** 전체 토큰 사용량 */
|
|
193
|
+
totalTokensUsed: {
|
|
194
|
+
input: number;
|
|
195
|
+
output: number;
|
|
196
|
+
};
|
|
197
|
+
/** 그래프 시작 시각 */
|
|
198
|
+
startedAt: number;
|
|
199
|
+
/** 예상 완료 시각 (없으면 null) */
|
|
200
|
+
estimatedCompletion: number | null;
|
|
201
|
+
/** 크리티컬 패스 (가장 긴 의존 체인) */
|
|
202
|
+
criticalPath: string[];
|
|
203
|
+
/** 병렬 실행 가능한 노드 그룹 */
|
|
204
|
+
parallelGroups: string[][];
|
|
205
|
+
}
|
|
206
|
+
/** 노드 추가 시 시스템이 자동으로 채우는 필드를 제외한 입력 타입 */
|
|
207
|
+
type PlanNodeInput = Omit<PlanNode, "status" | "startedAt" | "completedAt" | "result" | "error" | "changedFiles" | "tokensUsed" | "attempts" | "maxAttempts">;
|
|
208
|
+
/**
|
|
209
|
+
* PlanGraphManager — 계획 그래프의 상태 전이를 관리.
|
|
210
|
+
*
|
|
211
|
+
* - 노드 추가/제거
|
|
212
|
+
* - 의존성 기반 ready 판정
|
|
213
|
+
* - 상태 전이 (pending → ready → running → completed/failed/skipped)
|
|
214
|
+
* - 재시도 관리
|
|
215
|
+
* - 직렬화/역직렬화
|
|
216
|
+
*/
|
|
217
|
+
export declare class PlanGraphManager {
|
|
218
|
+
private state;
|
|
219
|
+
constructor(sessionId: string, goal: string);
|
|
220
|
+
/**
|
|
221
|
+
* ExecutionPlan으로부터 PlanGraphManager를 생성.
|
|
222
|
+
* 각 PlanStep을 PlanNode로 변환하고 의존성을 연결한다.
|
|
223
|
+
*/
|
|
224
|
+
static fromExecutionPlan(sessionId: string, plan: ExecutionPlan): PlanGraphManager;
|
|
225
|
+
/**
|
|
226
|
+
* 노드 추가. 런타임 상태 필드는 기본값으로 초기화.
|
|
227
|
+
*/
|
|
228
|
+
addNode(input: PlanNodeInput): void;
|
|
229
|
+
/**
|
|
230
|
+
* 노드를 ready 상태로 전환 (의존성이 모두 완료됨).
|
|
231
|
+
*/
|
|
232
|
+
markReady(nodeId: string): void;
|
|
233
|
+
/**
|
|
234
|
+
* 노드를 running 상태로 전환 (실행 시작).
|
|
235
|
+
*/
|
|
236
|
+
markRunning(nodeId: string): void;
|
|
237
|
+
/**
|
|
238
|
+
* 노드를 completed 상태로 전환 (성공적으로 완료).
|
|
239
|
+
*/
|
|
240
|
+
markCompleted(nodeId: string, result: string, changedFiles: string[], tokensUsed: {
|
|
241
|
+
input: number;
|
|
242
|
+
output: number;
|
|
243
|
+
}): void;
|
|
244
|
+
/**
|
|
245
|
+
* 노드를 failed 상태로 전환.
|
|
246
|
+
*/
|
|
247
|
+
markFailed(nodeId: string, error: string): void;
|
|
248
|
+
/**
|
|
249
|
+
* 노드를 skipped 상태로 전환.
|
|
250
|
+
*/
|
|
251
|
+
markSkipped(nodeId: string, reason: string): void;
|
|
252
|
+
/**
|
|
253
|
+
* 실패한 노드를 재시도. maxAttempts 초과 시 false 반환.
|
|
254
|
+
*/
|
|
255
|
+
retry(nodeId: string): boolean;
|
|
256
|
+
/**
|
|
257
|
+
* 의존성이 모두 완료되어 실행 가능한 노드 목록.
|
|
258
|
+
*/
|
|
259
|
+
getReadyNodes(): PlanNode[];
|
|
260
|
+
/** 노드 조회 */
|
|
261
|
+
getNode(id: string): PlanNode | undefined;
|
|
262
|
+
/** 전체 상태 (읽기 전용) */
|
|
263
|
+
getState(): Readonly<PlanGraphState>;
|
|
264
|
+
/**
|
|
265
|
+
* 모든 노드가 종료 상태(completed/failed/skipped)인지 확인.
|
|
266
|
+
*/
|
|
267
|
+
isComplete(): boolean;
|
|
268
|
+
/** 진행률 */
|
|
269
|
+
getProgress(): {
|
|
270
|
+
completed: number;
|
|
271
|
+
total: number;
|
|
272
|
+
percent: number;
|
|
273
|
+
};
|
|
274
|
+
/**
|
|
275
|
+
* 의존성 완료 후 ready 상태로 전환할 수 있는 노드를 업데이트.
|
|
276
|
+
* @returns 새로 ready가 된 노드 ID 목록
|
|
277
|
+
*/
|
|
278
|
+
updateReadyNodes(): string[];
|
|
279
|
+
/** JSON 직렬화 (Map/Set → 배열 변환) */
|
|
280
|
+
toJSON(): Record<string, unknown>;
|
|
281
|
+
/** JSON에서 PlanGraphManager 복구 */
|
|
282
|
+
static fromJSON(json: Record<string, unknown>): PlanGraphManager;
|
|
283
|
+
/** 노드 존재 확인 (없으면 throw) */
|
|
284
|
+
private requireNode;
|
|
285
|
+
/** 상태별 노드 목록 재계산 */
|
|
286
|
+
private rebuildComputedState;
|
|
287
|
+
/** 실패/스킵된 노드에 의존하는 노드를 blocked 상태로 전환 */
|
|
288
|
+
private blockDependents;
|
|
289
|
+
/** 크리티컬 패스 계산 (가장 긴 의존 체인) */
|
|
290
|
+
private computeCriticalPath;
|
|
291
|
+
/** 병렬 실행 가능한 노드 그룹 계산 (토폴로지 레벨별) */
|
|
292
|
+
private computeParallelGroups;
|
|
293
|
+
}
|
|
294
|
+
/** 도구 입력 스키마 */
|
|
295
|
+
export interface ToolInputSchema {
|
|
296
|
+
type: "object";
|
|
297
|
+
properties: Record<string, {
|
|
298
|
+
type: string;
|
|
299
|
+
description: string;
|
|
300
|
+
required?: boolean;
|
|
301
|
+
enum?: string[];
|
|
302
|
+
default?: unknown;
|
|
303
|
+
/** 정규식 검증 패턴 */
|
|
304
|
+
pattern?: string;
|
|
305
|
+
/** 최대 길이 */
|
|
306
|
+
maxLength?: number;
|
|
307
|
+
}>;
|
|
308
|
+
required: string[];
|
|
309
|
+
}
|
|
310
|
+
/** 도구 출력 스키마 */
|
|
311
|
+
export interface ToolOutputSchema {
|
|
312
|
+
/** 출력 타입 ("string" | "object") */
|
|
313
|
+
type: string;
|
|
314
|
+
/** 최대 출력 토큰 수 */
|
|
315
|
+
maxLength: number;
|
|
316
|
+
/** 초과 시 잘라내기 전략 */
|
|
317
|
+
truncateStrategy: "tail" | "head" | "middle";
|
|
318
|
+
}
|
|
319
|
+
/** 도구 권한 */
|
|
320
|
+
export interface ToolPermissions {
|
|
321
|
+
fileRead: boolean;
|
|
322
|
+
fileWrite: boolean;
|
|
323
|
+
fileDelete: boolean;
|
|
324
|
+
shellExec: boolean;
|
|
325
|
+
networkAccess: boolean;
|
|
326
|
+
gitOps: boolean;
|
|
327
|
+
/** 허용된 경로 패턴 (glob). 빈 배열 = 제한 없음 */
|
|
328
|
+
allowedPaths: string[];
|
|
329
|
+
/** 차단된 경로 패턴 (glob) */
|
|
330
|
+
blockedPaths: string[];
|
|
331
|
+
}
|
|
332
|
+
/** 도구 승인 정책 */
|
|
333
|
+
export interface ToolApprovalPolicy {
|
|
334
|
+
/** 승인 필요 여부 */
|
|
335
|
+
requiresApproval: boolean;
|
|
336
|
+
/** 자동 승인 조건 */
|
|
337
|
+
autoApproveConditions: AutoApproveCondition[];
|
|
338
|
+
/** 위험도 */
|
|
339
|
+
risk: "low" | "medium" | "high" | "critical";
|
|
340
|
+
/** 승인 대기 타임아웃 (ms) */
|
|
341
|
+
timeout: number;
|
|
342
|
+
}
|
|
343
|
+
/** 자동 승인 조건 */
|
|
344
|
+
export interface AutoApproveCondition {
|
|
345
|
+
/** 조건 유형 */
|
|
346
|
+
type: "always" | "same_tool" | "same_file" | "below_risk" | "user_setting";
|
|
347
|
+
/** 조건 값 (유형에 따라 해석) */
|
|
348
|
+
value?: string;
|
|
349
|
+
}
|
|
350
|
+
/** 도구 보안 정책 */
|
|
351
|
+
export interface ToolSecurityPolicy {
|
|
352
|
+
/** 샌드박스 티어 (0–4, 설계 문서 참조) */
|
|
353
|
+
sandboxTier: number;
|
|
354
|
+
/** 입력 살균 여부 */
|
|
355
|
+
inputSanitization: boolean;
|
|
356
|
+
/** 출력 살균 여부 */
|
|
357
|
+
outputSanitization: boolean;
|
|
358
|
+
/** 최대 실행 시간 (ms) */
|
|
359
|
+
maxExecutionTime: number;
|
|
360
|
+
/** 거부할 정규식 패턴 */
|
|
361
|
+
blockedPatterns: string[];
|
|
362
|
+
/** 모든 호출을 감사 로그에 기록 */
|
|
363
|
+
auditLog: boolean;
|
|
364
|
+
}
|
|
365
|
+
/** 도구 실행 제약 */
|
|
366
|
+
export interface ToolConstraints {
|
|
367
|
+
/** 반복당 최대 호출 수 */
|
|
368
|
+
maxCallsPerIteration: number;
|
|
369
|
+
/** 세션당 최대 호출 수 */
|
|
370
|
+
maxCallsPerSession: number;
|
|
371
|
+
/** 호출 간 최소 대기 시간 (ms) */
|
|
372
|
+
cooldownMs: number;
|
|
373
|
+
/** 다른 도구와 병렬 실행 가능 여부 */
|
|
374
|
+
parallelizable: boolean;
|
|
375
|
+
/** 프로젝트 컨텍스트 필요 여부 */
|
|
376
|
+
requiresProject: boolean;
|
|
377
|
+
/** 지원 언어 (빈 배열 = 전체) */
|
|
378
|
+
supportedLanguages: string[];
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* ToolContract — 도구의 전체 계약.
|
|
382
|
+
*
|
|
383
|
+
* 이름, 스키마, 권한, 승인 정책, 보안 정책, 실행 제약을 하나로 묶는다.
|
|
384
|
+
* 모든 도구는 이 계약을 준수해야 한다.
|
|
385
|
+
*/
|
|
386
|
+
export interface ToolContract {
|
|
387
|
+
/** 도구 이름 (snake_case) */
|
|
388
|
+
name: string;
|
|
389
|
+
/** 도구 설명 */
|
|
390
|
+
description: string;
|
|
391
|
+
/** 입력 스키마 */
|
|
392
|
+
inputSchema: ToolInputSchema;
|
|
393
|
+
/** 출력 스키마 */
|
|
394
|
+
outputSchema: ToolOutputSchema;
|
|
395
|
+
/** 권한 */
|
|
396
|
+
permissions: ToolPermissions;
|
|
397
|
+
/** 승인 정책 */
|
|
398
|
+
approvalPolicy: ToolApprovalPolicy;
|
|
399
|
+
/** 보안 정책 */
|
|
400
|
+
securityPolicy: ToolSecurityPolicy;
|
|
401
|
+
/** 실행 제약 */
|
|
402
|
+
constraints: ToolConstraints;
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* ToolContractRegistry — 도구 계약 레지스트리.
|
|
406
|
+
*
|
|
407
|
+
* 모든 도구의 계약을 등록, 조회, 검증한다.
|
|
408
|
+
* LLM에게 전달할 ToolDefinition 목록도 여기서 생성.
|
|
409
|
+
*/
|
|
410
|
+
export declare class ToolContractRegistry {
|
|
411
|
+
private contracts;
|
|
412
|
+
/** 계약 등록 */
|
|
413
|
+
register(contract: ToolContract): void;
|
|
414
|
+
/** 계약 조회 */
|
|
415
|
+
get(name: string): ToolContract | undefined;
|
|
416
|
+
/** 전체 계약 목록 */
|
|
417
|
+
getAll(): ToolContract[];
|
|
418
|
+
/**
|
|
419
|
+
* 도구 호출 입력을 계약에 대해 검증.
|
|
420
|
+
* @returns { valid, errors } — errors는 빈 배열이면 유효
|
|
421
|
+
*/
|
|
422
|
+
validate(name: string, input: Record<string, unknown>): {
|
|
423
|
+
valid: boolean;
|
|
424
|
+
errors: string[];
|
|
425
|
+
};
|
|
426
|
+
/**
|
|
427
|
+
* 도구 호출에 승인이 필요한지 판단.
|
|
428
|
+
* @param autoApproveSettings 자동 승인된 도구/설정 목록
|
|
429
|
+
*/
|
|
430
|
+
needsApproval(name: string, _input: Record<string, unknown>, autoApproveSettings: string[]): boolean;
|
|
431
|
+
/**
|
|
432
|
+
* 특정 권한을 가진 도구 목록 필터링.
|
|
433
|
+
*/
|
|
434
|
+
getToolsWithPermission(permission: keyof ToolPermissions): ToolContract[];
|
|
435
|
+
/**
|
|
436
|
+
* LLM에 전달할 ToolDefinition 배열 생성.
|
|
437
|
+
*/
|
|
438
|
+
toToolDefinitions(): ToolDefinition[];
|
|
439
|
+
/**
|
|
440
|
+
* YUAN 기본 9개 도구의 계약을 생성.
|
|
441
|
+
*/
|
|
442
|
+
static createDefaultContracts(): ToolContractRegistry;
|
|
443
|
+
}
|
|
444
|
+
/** 커널 이벤트 타입 */
|
|
445
|
+
export type KernelEventType = "session:start" | "session:pause" | "session:resume" | "session:complete" | "session:fail" | "session:stop" | "plan:created" | "plan:updated" | "plan:node_ready" | "plan:node_running" | "plan:node_completed" | "plan:node_failed" | "plan:replan" | "tool:call" | "tool:result" | "tool:error" | "tool:approval_needed" | "tool:approved" | "tool:rejected" | "file:read" | "file:write" | "file:edit" | "file:delete" | "file:snapshot" | "verify:start" | "verify:pass" | "verify:concern" | "verify:fail" | "llm:request" | "llm:response" | "llm:text_delta" | "llm:thinking" | "agent:monologue" | "agent:decision" | "agent:learning" | "checkpoint:created" | "checkpoint:restored" | "context:summarized" | "context:evicted" | "context:warning" | "context:overflow";
|
|
446
|
+
/** 커널 이벤트 — 시스템의 모든 이벤트를 통일된 구조로 기록 */
|
|
447
|
+
export interface KernelEvent {
|
|
448
|
+
/** 이벤트 고유 ID */
|
|
449
|
+
id: string;
|
|
450
|
+
/** 단조 증가 시퀀스 번호 */
|
|
451
|
+
seq: number;
|
|
452
|
+
/** 이벤트 타입 */
|
|
453
|
+
type: KernelEventType;
|
|
454
|
+
/** 소속 세션 ID */
|
|
455
|
+
sessionId: string;
|
|
456
|
+
/** 발생 시각 (epoch ms) */
|
|
457
|
+
timestamp: number;
|
|
458
|
+
/** 이벤트 데이터 (타입별 자유 형식) */
|
|
459
|
+
data: Record<string, unknown>;
|
|
460
|
+
/** 원인 이벤트 ID (인과 체인) */
|
|
461
|
+
parentEventId?: string;
|
|
462
|
+
/** 관련 계획 노드 ID */
|
|
463
|
+
planNodeId?: string;
|
|
464
|
+
/** 관련 도구 이름 */
|
|
465
|
+
toolName?: string;
|
|
466
|
+
/** 관련 파일 경로 */
|
|
467
|
+
file?: string;
|
|
468
|
+
/** 이 이벤트의 토큰 비용 */
|
|
469
|
+
tokenCost?: number;
|
|
470
|
+
}
|
|
471
|
+
/** 이벤트 리스너 타입 */
|
|
472
|
+
type EventListener = (event: KernelEvent) => void;
|
|
473
|
+
/**
|
|
474
|
+
* EventLog — 순서가 보장되는 이벤트 스트림 관리.
|
|
475
|
+
*
|
|
476
|
+
* - append: 이벤트 추가 (id, seq, timestamp 자동 설정)
|
|
477
|
+
* - on: 타입별 구독 ("*"로 전체 구독)
|
|
478
|
+
* - query: 타입/세션/노드/범위별 조회
|
|
479
|
+
* - analysis: 타임라인, 도구 통계, 토큰 사용량
|
|
480
|
+
* - replay: 비동기 이벤트 재생
|
|
481
|
+
* - persistence: JSON 직렬화/역직렬화
|
|
482
|
+
*/
|
|
483
|
+
export declare class EventLog {
|
|
484
|
+
private events;
|
|
485
|
+
private seqCounter;
|
|
486
|
+
private readonly maxSize;
|
|
487
|
+
private listeners;
|
|
488
|
+
/**
|
|
489
|
+
* @param maxSize 최대 이벤트 보관 수 (기본 10000)
|
|
490
|
+
*/
|
|
491
|
+
constructor(maxSize?: number);
|
|
492
|
+
/**
|
|
493
|
+
* 이벤트 추가. id, seq, timestamp를 자동으로 설정한다.
|
|
494
|
+
* maxSize 초과 시 가장 오래된 이벤트를 제거.
|
|
495
|
+
*/
|
|
496
|
+
append(event: Omit<KernelEvent, "id" | "seq" | "timestamp">): KernelEvent;
|
|
497
|
+
/**
|
|
498
|
+
* 이벤트 구독. "*"로 모든 이벤트를 구독할 수 있다.
|
|
499
|
+
* @returns 구독 해제 함수
|
|
500
|
+
*/
|
|
501
|
+
on(type: KernelEventType | "*", listener: EventListener): () => void;
|
|
502
|
+
/** 전체 이벤트 목록 (읽기 전용) */
|
|
503
|
+
getAll(): readonly KernelEvent[];
|
|
504
|
+
/** 타입별 이벤트 조회 */
|
|
505
|
+
getByType(type: KernelEventType): KernelEvent[];
|
|
506
|
+
/** 세션별 이벤트 조회 */
|
|
507
|
+
getBySession(sessionId: string): KernelEvent[];
|
|
508
|
+
/** 계획 노드별 이벤트 조회 */
|
|
509
|
+
getByPlanNode(nodeId: string): KernelEvent[];
|
|
510
|
+
/** 시퀀스 범위로 이벤트 조회 */
|
|
511
|
+
getRange(fromSeq: number, toSeq?: number): KernelEvent[];
|
|
512
|
+
/** 마지막 N개 이벤트 조회 */
|
|
513
|
+
getLast(n: number): KernelEvent[];
|
|
514
|
+
/**
|
|
515
|
+
* 세션 타임라인 — 이벤트를 phase 전이 기준으로 그룹화.
|
|
516
|
+
*/
|
|
517
|
+
getTimeline(sessionId: string): {
|
|
518
|
+
phase: string;
|
|
519
|
+
events: KernelEvent[];
|
|
520
|
+
duration: number;
|
|
521
|
+
}[];
|
|
522
|
+
/**
|
|
523
|
+
* 에이전트 의사결정 로그 (type === "agent:decision").
|
|
524
|
+
*/
|
|
525
|
+
getDecisionLog(sessionId: string): KernelEvent[];
|
|
526
|
+
/**
|
|
527
|
+
* 도구별 통계 — 호출 수, 에러 수, 평균 실행 시간.
|
|
528
|
+
*/
|
|
529
|
+
getToolStats(sessionId: string): {
|
|
530
|
+
tool: string;
|
|
531
|
+
calls: number;
|
|
532
|
+
errors: number;
|
|
533
|
+
avgDuration: number;
|
|
534
|
+
}[];
|
|
535
|
+
/**
|
|
536
|
+
* 세션별 토큰 사용량 — 전체 + phase별 분류.
|
|
537
|
+
*/
|
|
538
|
+
getTokenUsage(sessionId: string): {
|
|
539
|
+
total: number;
|
|
540
|
+
byPhase: Record<string, number>;
|
|
541
|
+
};
|
|
542
|
+
/**
|
|
543
|
+
* 비동기 이벤트 재생 — 지정 시퀀스부터 이벤트를 순서대로 yield.
|
|
544
|
+
* @param fromSeq 시작 시퀀스 번호
|
|
545
|
+
* @param speed 재생 속도 배율 (1 = 실시간, 2 = 2배속). 0이면 즉시.
|
|
546
|
+
*/
|
|
547
|
+
replay(fromSeq: number, speed?: number): AsyncGenerator<KernelEvent>;
|
|
548
|
+
/** JSON 직렬화 */
|
|
549
|
+
toJSON(): Record<string, unknown>;
|
|
550
|
+
/** JSON에서 EventLog 복구 */
|
|
551
|
+
static fromJSON(json: Record<string, unknown>): EventLog;
|
|
552
|
+
/**
|
|
553
|
+
* 오래된 이벤트를 제거.
|
|
554
|
+
* @param keepLast 유지할 최근 이벤트 수 (기본: maxSize의 절반)
|
|
555
|
+
* @returns 제거된 이벤트 수
|
|
556
|
+
*/
|
|
557
|
+
prune(keepLast?: number): number;
|
|
558
|
+
/** 리스너에게 이벤트 통지 */
|
|
559
|
+
private notifyListeners;
|
|
560
|
+
/** 이벤트 타입에서 phase 감지 */
|
|
561
|
+
private detectPhase;
|
|
562
|
+
}
|
|
563
|
+
export {};
|
|
564
|
+
//# sourceMappingURL=kernel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../src/kernel.ts"],"names":[],"mappings":"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"}
|