@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.
Files changed (235) hide show
  1. package/LICENSE +663 -0
  2. package/README.md +15 -0
  3. package/dist/__tests__/context-manager.test.d.ts +6 -0
  4. package/dist/__tests__/context-manager.test.d.ts.map +1 -0
  5. package/dist/__tests__/context-manager.test.js +220 -0
  6. package/dist/__tests__/context-manager.test.js.map +1 -0
  7. package/dist/__tests__/governor.test.d.ts +6 -0
  8. package/dist/__tests__/governor.test.d.ts.map +1 -0
  9. package/dist/__tests__/governor.test.js +210 -0
  10. package/dist/__tests__/governor.test.js.map +1 -0
  11. package/dist/__tests__/model-router.test.d.ts +6 -0
  12. package/dist/__tests__/model-router.test.d.ts.map +1 -0
  13. package/dist/__tests__/model-router.test.js +329 -0
  14. package/dist/__tests__/model-router.test.js.map +1 -0
  15. package/dist/agent-logger.d.ts +384 -0
  16. package/dist/agent-logger.d.ts.map +1 -0
  17. package/dist/agent-logger.js +820 -0
  18. package/dist/agent-logger.js.map +1 -0
  19. package/dist/agent-loop.d.ts +163 -0
  20. package/dist/agent-loop.d.ts.map +1 -0
  21. package/dist/agent-loop.js +609 -0
  22. package/dist/agent-loop.js.map +1 -0
  23. package/dist/agent-modes.d.ts +85 -0
  24. package/dist/agent-modes.d.ts.map +1 -0
  25. package/dist/agent-modes.js +418 -0
  26. package/dist/agent-modes.js.map +1 -0
  27. package/dist/approval.d.ts +137 -0
  28. package/dist/approval.d.ts.map +1 -0
  29. package/dist/approval.js +299 -0
  30. package/dist/approval.js.map +1 -0
  31. package/dist/async-completion-queue.d.ts +56 -0
  32. package/dist/async-completion-queue.d.ts.map +1 -0
  33. package/dist/async-completion-queue.js +77 -0
  34. package/dist/async-completion-queue.js.map +1 -0
  35. package/dist/auto-fix.d.ts +174 -0
  36. package/dist/auto-fix.d.ts.map +1 -0
  37. package/dist/auto-fix.js +319 -0
  38. package/dist/auto-fix.js.map +1 -0
  39. package/dist/codebase-context.d.ts +396 -0
  40. package/dist/codebase-context.d.ts.map +1 -0
  41. package/dist/codebase-context.js +1260 -0
  42. package/dist/codebase-context.js.map +1 -0
  43. package/dist/conflict-resolver.d.ts +191 -0
  44. package/dist/conflict-resolver.d.ts.map +1 -0
  45. package/dist/conflict-resolver.js +524 -0
  46. package/dist/conflict-resolver.js.map +1 -0
  47. package/dist/constants.d.ts +52 -0
  48. package/dist/constants.d.ts.map +1 -0
  49. package/dist/constants.js +141 -0
  50. package/dist/constants.js.map +1 -0
  51. package/dist/context-budget.d.ts +435 -0
  52. package/dist/context-budget.d.ts.map +1 -0
  53. package/dist/context-budget.js +903 -0
  54. package/dist/context-budget.js.map +1 -0
  55. package/dist/context-compressor.d.ts +143 -0
  56. package/dist/context-compressor.d.ts.map +1 -0
  57. package/dist/context-compressor.js +511 -0
  58. package/dist/context-compressor.js.map +1 -0
  59. package/dist/context-manager.d.ts +112 -0
  60. package/dist/context-manager.d.ts.map +1 -0
  61. package/dist/context-manager.js +247 -0
  62. package/dist/context-manager.js.map +1 -0
  63. package/dist/continuous-reflection.d.ts +267 -0
  64. package/dist/continuous-reflection.d.ts.map +1 -0
  65. package/dist/continuous-reflection.js +338 -0
  66. package/dist/continuous-reflection.js.map +1 -0
  67. package/dist/cross-file-refactor.d.ts +352 -0
  68. package/dist/cross-file-refactor.d.ts.map +1 -0
  69. package/dist/cross-file-refactor.js +1544 -0
  70. package/dist/cross-file-refactor.js.map +1 -0
  71. package/dist/dag-orchestrator.d.ts +138 -0
  72. package/dist/dag-orchestrator.d.ts.map +1 -0
  73. package/dist/dag-orchestrator.js +379 -0
  74. package/dist/dag-orchestrator.js.map +1 -0
  75. package/dist/debate-orchestrator.d.ts +301 -0
  76. package/dist/debate-orchestrator.d.ts.map +1 -0
  77. package/dist/debate-orchestrator.js +719 -0
  78. package/dist/debate-orchestrator.js.map +1 -0
  79. package/dist/dependency-analyzer.d.ts +113 -0
  80. package/dist/dependency-analyzer.d.ts.map +1 -0
  81. package/dist/dependency-analyzer.js +444 -0
  82. package/dist/dependency-analyzer.js.map +1 -0
  83. package/dist/design-loop.d.ts +59 -0
  84. package/dist/design-loop.d.ts.map +1 -0
  85. package/dist/design-loop.js +344 -0
  86. package/dist/design-loop.js.map +1 -0
  87. package/dist/doc-intelligence.d.ts +383 -0
  88. package/dist/doc-intelligence.d.ts.map +1 -0
  89. package/dist/doc-intelligence.js +1307 -0
  90. package/dist/doc-intelligence.js.map +1 -0
  91. package/dist/dynamic-role-generator.d.ts +76 -0
  92. package/dist/dynamic-role-generator.d.ts.map +1 -0
  93. package/dist/dynamic-role-generator.js +194 -0
  94. package/dist/dynamic-role-generator.js.map +1 -0
  95. package/dist/errors.d.ts +69 -0
  96. package/dist/errors.d.ts.map +1 -0
  97. package/dist/errors.js +102 -0
  98. package/dist/errors.js.map +1 -0
  99. package/dist/event-bus.d.ts +159 -0
  100. package/dist/event-bus.d.ts.map +1 -0
  101. package/dist/event-bus.js +305 -0
  102. package/dist/event-bus.js.map +1 -0
  103. package/dist/execution-engine.d.ts +425 -0
  104. package/dist/execution-engine.d.ts.map +1 -0
  105. package/dist/execution-engine.js +1555 -0
  106. package/dist/execution-engine.js.map +1 -0
  107. package/dist/git-intelligence.d.ts +306 -0
  108. package/dist/git-intelligence.d.ts.map +1 -0
  109. package/dist/git-intelligence.js +1099 -0
  110. package/dist/git-intelligence.js.map +1 -0
  111. package/dist/governor.d.ts +77 -0
  112. package/dist/governor.d.ts.map +1 -0
  113. package/dist/governor.js +161 -0
  114. package/dist/governor.js.map +1 -0
  115. package/dist/hierarchical-planner.d.ts +313 -0
  116. package/dist/hierarchical-planner.d.ts.map +1 -0
  117. package/dist/hierarchical-planner.js +981 -0
  118. package/dist/hierarchical-planner.js.map +1 -0
  119. package/dist/index.d.ts +121 -0
  120. package/dist/index.d.ts.map +1 -0
  121. package/dist/index.js +123 -0
  122. package/dist/index.js.map +1 -0
  123. package/dist/intent-inference.d.ts +103 -0
  124. package/dist/intent-inference.d.ts.map +1 -0
  125. package/dist/intent-inference.js +605 -0
  126. package/dist/intent-inference.js.map +1 -0
  127. package/dist/interrupt-manager.d.ts +143 -0
  128. package/dist/interrupt-manager.d.ts.map +1 -0
  129. package/dist/interrupt-manager.js +196 -0
  130. package/dist/interrupt-manager.js.map +1 -0
  131. package/dist/kernel.d.ts +564 -0
  132. package/dist/kernel.d.ts.map +1 -0
  133. package/dist/kernel.js +1419 -0
  134. package/dist/kernel.js.map +1 -0
  135. package/dist/language-support.d.ts +232 -0
  136. package/dist/language-support.d.ts.map +1 -0
  137. package/dist/language-support.js +1134 -0
  138. package/dist/language-support.js.map +1 -0
  139. package/dist/llm-client.d.ts +82 -0
  140. package/dist/llm-client.d.ts.map +1 -0
  141. package/dist/llm-client.js +475 -0
  142. package/dist/llm-client.js.map +1 -0
  143. package/dist/mcp-client.d.ts +232 -0
  144. package/dist/mcp-client.d.ts.map +1 -0
  145. package/dist/mcp-client.js +718 -0
  146. package/dist/mcp-client.js.map +1 -0
  147. package/dist/memory-manager.d.ts +200 -0
  148. package/dist/memory-manager.d.ts.map +1 -0
  149. package/dist/memory-manager.js +568 -0
  150. package/dist/memory-manager.js.map +1 -0
  151. package/dist/memory.d.ts +87 -0
  152. package/dist/memory.d.ts.map +1 -0
  153. package/dist/memory.js +341 -0
  154. package/dist/memory.js.map +1 -0
  155. package/dist/model-router.d.ts +245 -0
  156. package/dist/model-router.d.ts.map +1 -0
  157. package/dist/model-router.js +632 -0
  158. package/dist/model-router.js.map +1 -0
  159. package/dist/parallel-executor.d.ts +125 -0
  160. package/dist/parallel-executor.d.ts.map +1 -0
  161. package/dist/parallel-executor.js +201 -0
  162. package/dist/parallel-executor.js.map +1 -0
  163. package/dist/perf-optimizer.d.ts +212 -0
  164. package/dist/perf-optimizer.d.ts.map +1 -0
  165. package/dist/perf-optimizer.js +721 -0
  166. package/dist/perf-optimizer.js.map +1 -0
  167. package/dist/persona.d.ts +305 -0
  168. package/dist/persona.d.ts.map +1 -0
  169. package/dist/persona.js +887 -0
  170. package/dist/persona.js.map +1 -0
  171. package/dist/planner.d.ts +70 -0
  172. package/dist/planner.d.ts.map +1 -0
  173. package/dist/planner.js +264 -0
  174. package/dist/planner.js.map +1 -0
  175. package/dist/qa-pipeline.d.ts +365 -0
  176. package/dist/qa-pipeline.d.ts.map +1 -0
  177. package/dist/qa-pipeline.js +1352 -0
  178. package/dist/qa-pipeline.js.map +1 -0
  179. package/dist/reasoning-adapter.d.ts +116 -0
  180. package/dist/reasoning-adapter.d.ts.map +1 -0
  181. package/dist/reasoning-adapter.js +187 -0
  182. package/dist/reasoning-adapter.js.map +1 -0
  183. package/dist/role-registry.d.ts +55 -0
  184. package/dist/role-registry.d.ts.map +1 -0
  185. package/dist/role-registry.js +192 -0
  186. package/dist/role-registry.js.map +1 -0
  187. package/dist/sandbox-tiers.d.ts +327 -0
  188. package/dist/sandbox-tiers.d.ts.map +1 -0
  189. package/dist/sandbox-tiers.js +928 -0
  190. package/dist/sandbox-tiers.js.map +1 -0
  191. package/dist/security-scanner.d.ts +222 -0
  192. package/dist/security-scanner.d.ts.map +1 -0
  193. package/dist/security-scanner.js +1129 -0
  194. package/dist/security-scanner.js.map +1 -0
  195. package/dist/security.d.ts +93 -0
  196. package/dist/security.d.ts.map +1 -0
  197. package/dist/security.js +393 -0
  198. package/dist/security.js.map +1 -0
  199. package/dist/self-reflection.d.ts +397 -0
  200. package/dist/self-reflection.d.ts.map +1 -0
  201. package/dist/self-reflection.js +908 -0
  202. package/dist/self-reflection.js.map +1 -0
  203. package/dist/session-persistence.d.ts +191 -0
  204. package/dist/session-persistence.d.ts.map +1 -0
  205. package/dist/session-persistence.js +395 -0
  206. package/dist/session-persistence.js.map +1 -0
  207. package/dist/speculative-executor.d.ts +210 -0
  208. package/dist/speculative-executor.d.ts.map +1 -0
  209. package/dist/speculative-executor.js +618 -0
  210. package/dist/speculative-executor.js.map +1 -0
  211. package/dist/state-machine.d.ts +289 -0
  212. package/dist/state-machine.d.ts.map +1 -0
  213. package/dist/state-machine.js +695 -0
  214. package/dist/state-machine.js.map +1 -0
  215. package/dist/sub-agent.d.ts +177 -0
  216. package/dist/sub-agent.d.ts.map +1 -0
  217. package/dist/sub-agent.js +303 -0
  218. package/dist/sub-agent.js.map +1 -0
  219. package/dist/system-prompt.d.ts +26 -0
  220. package/dist/system-prompt.d.ts.map +1 -0
  221. package/dist/system-prompt.js +84 -0
  222. package/dist/system-prompt.js.map +1 -0
  223. package/dist/test-intelligence.d.ts +439 -0
  224. package/dist/test-intelligence.d.ts.map +1 -0
  225. package/dist/test-intelligence.js +1165 -0
  226. package/dist/test-intelligence.js.map +1 -0
  227. package/dist/types.d.ts +632 -0
  228. package/dist/types.d.ts.map +1 -0
  229. package/dist/types.js +6 -0
  230. package/dist/types.js.map +1 -0
  231. package/dist/vector-index.d.ts +314 -0
  232. package/dist/vector-index.d.ts.map +1 -0
  233. package/dist/vector-index.js +618 -0
  234. package/dist/vector-index.js.map +1 -0
  235. package/package.json +41 -0
@@ -0,0 +1,210 @@
1
+ /**
2
+ * @module speculative-executor
3
+ * @description Speculative Execution — 2~3개의 서로 다른 접근법을 병렬로 시도하여
4
+ * 최적의 결과를 선택하는 모듈.
5
+ *
6
+ * conservative(안전/최소 변경), aggressive(대담한 리팩토링),
7
+ * creative(새로운 패러다임) 전략을 동시에 실행하고, 빌드·테스트·품질 점수로 승자를 결정한다.
8
+ */
9
+ import { EventEmitter } from "node:events";
10
+ import type { BYOKConfig, ToolExecutor } from "./types.js";
11
+ /** Speculative Execution 설정 */
12
+ export interface SpeculativeConfig {
13
+ /** 최대 병렬 접근법 수 (기본 3) */
14
+ maxApproaches: number;
15
+ /** 접근법별 타임아웃 ms (기본 120_000) */
16
+ approachTimeout: number;
17
+ /** 최소 품질 점수 (0–100, 기본 60) */
18
+ minQualityThreshold: number;
19
+ /** BYOK 설정 (LLM 호출용) */
20
+ byokConfig: BYOKConfig;
21
+ /** 프로젝트 루트 경로 */
22
+ projectPath: string;
23
+ }
24
+ /** 접근법 전략 유형 */
25
+ export type ApproachStrategy = "conservative" | "aggressive" | "creative";
26
+ /** 개별 접근법 */
27
+ export interface Approach {
28
+ /** 고유 ID */
29
+ id: string;
30
+ /** 전략 유형 */
31
+ strategy: ApproachStrategy;
32
+ /** 접근법 설명 */
33
+ description: string;
34
+ /** 시스템 프롬프트에 추가할 델타 */
35
+ systemPromptDelta: string;
36
+ }
37
+ /** 접근법 실행 결과 */
38
+ export interface ApproachResult {
39
+ /** 해당 접근법 */
40
+ approach: Approach;
41
+ /** 성공 여부 */
42
+ success: boolean;
43
+ /** 변경된 파일 맵 (path → newContent) */
44
+ changes: Map<string, string>;
45
+ /** 빌드 통과 여부 */
46
+ buildPassed: boolean;
47
+ /** 테스트 통과 여부 */
48
+ testPassed: boolean;
49
+ /** 품질 점수 (0–100) */
50
+ qualityScore: number;
51
+ /** 사용된 토큰 수 */
52
+ tokensUsed: number;
53
+ /** 소요 시간 ms */
54
+ durationMs: number;
55
+ /** 실패 시 에러 메시지 */
56
+ error?: string;
57
+ }
58
+ /** Speculative Execution 최종 결과 */
59
+ export interface SpeculativeResult {
60
+ /** 선택된 최적 접근법 (없으면 null) */
61
+ winner: ApproachResult | null;
62
+ /** 모든 접근법 결과 */
63
+ allResults: ApproachResult[];
64
+ /** 승자 선택 사유 */
65
+ selectionReason: string;
66
+ /** 전체 접근법 합산 토큰 사용량 */
67
+ totalTokensUsed: number;
68
+ /** 실패한 접근법에서 얻은 학습 */
69
+ learnings: string[];
70
+ }
71
+ export interface SpeculativeExecutorEvents {
72
+ "speculative:start": [payload: {
73
+ goal: string;
74
+ approachCount: number;
75
+ }];
76
+ "speculative:approach:start": [payload: {
77
+ approach: Approach;
78
+ }];
79
+ "speculative:approach:complete": [payload: {
80
+ result: ApproachResult;
81
+ }];
82
+ "speculative:evaluation": [payload: {
83
+ allResults: ApproachResult[];
84
+ winner: ApproachResult | null;
85
+ }];
86
+ "speculative:complete": [payload: {
87
+ result: SpeculativeResult;
88
+ }];
89
+ }
90
+ /**
91
+ * Speculative Execution 엔진.
92
+ *
93
+ * 2~3개의 서로 다른 접근법을 병렬로 시도하고,
94
+ * 빌드/테스트/품질 점수를 기반으로 최적의 결과를 선택한다.
95
+ *
96
+ * @example
97
+ * ```ts
98
+ * const executor = new SpeculativeExecutor({
99
+ * maxApproaches: 3,
100
+ * approachTimeout: 120_000,
101
+ * minQualityThreshold: 60,
102
+ * byokConfig: { provider: "anthropic", apiKey: "sk-..." },
103
+ * projectPath: "/path/to/project",
104
+ * });
105
+ *
106
+ * executor.on("speculative:complete", ({ result }) => {
107
+ * console.log("Winner:", result.winner?.approach.strategy);
108
+ * });
109
+ *
110
+ * const result = await executor.execute("Add error handling to all API routes", toolExecutor);
111
+ * ```
112
+ */
113
+ export declare class SpeculativeExecutor extends EventEmitter<SpeculativeExecutorEvents> {
114
+ private readonly config;
115
+ private readonly llmClient;
116
+ constructor(config: SpeculativeConfig);
117
+ /**
118
+ * 리소스 정리. 내부 LLM 클라이언트를 해제하고 이벤트 리스너를 제거한다.
119
+ */
120
+ destroy(): void;
121
+ /**
122
+ * LLM을 사용하여 2~3개의 접근법을 생성한다.
123
+ * @param goal 달성할 목표
124
+ * @param codebaseContext 프로젝트 컨텍스트 (파일 구조, 기존 패턴 등)
125
+ * @returns 생성된 접근법 목록
126
+ */
127
+ generateApproaches(goal: string, codebaseContext: string): Promise<Approach[]>;
128
+ /**
129
+ * 단일 접근법을 실행한다.
130
+ * ToolExecutor를 사용하여 도구 호출을 수행하고, 변경 사항을 추적한다.
131
+ * @param approach 실행할 접근법
132
+ * @param goal 달성할 목표
133
+ * @param toolExecutor 도구 실행기
134
+ * @returns 접근법 실행 결과
135
+ */
136
+ executeApproach(approach: Approach, goal: string, toolExecutor: ToolExecutor): Promise<ApproachResult>;
137
+ /**
138
+ * 모든 접근법 결과를 평가하여 최적의 결과를 선택한다.
139
+ *
140
+ * 평가 기준 (가중치 순서):
141
+ * 1. buildPassed (+40점)
142
+ * 2. testPassed (+30점)
143
+ * 3. 변경 파일 수가 적을수록 (+10점)
144
+ * 4. 토큰 사용량이 적을수록 (+10점)
145
+ * 5. LLM 품질 평가 (+10점)
146
+ *
147
+ * @param results 모든 접근법 결과
148
+ * @returns 최적 결과 (모두 기준 미달이면 null)
149
+ */
150
+ evaluateResults(results: ApproachResult[]): ApproachResult | null;
151
+ /**
152
+ * 메인 실행 메서드. 접근법 생성 → 병렬 실행 → 평가 → 최적 결과 반환.
153
+ * @param goal 달성할 목표
154
+ * @param toolExecutor 도구 실행기
155
+ * @param codebaseContext 프로젝트 컨텍스트 (선택)
156
+ * @returns Speculative Execution 결과
157
+ */
158
+ execute(goal: string, toolExecutor: ToolExecutor, codebaseContext?: string): Promise<SpeculativeResult>;
159
+ /**
160
+ * 도구 호출에서 파일 변경을 추적한다.
161
+ */
162
+ private trackFileChanges;
163
+ /**
164
+ * 빌드 검증 — shell_exec로 tsc --noEmit 실행.
165
+ */
166
+ private verifyBuild;
167
+ /**
168
+ * 테스트 검증 — shell_exec로 테스트 실행.
169
+ */
170
+ private verifyTests;
171
+ /**
172
+ * 품질 점수 계산 (0–100).
173
+ *
174
+ * - buildPassed: +40
175
+ * - testPassed: +30
176
+ * - 변경 파일 수 적을수록: +10
177
+ * - 토큰 효율: +10
178
+ * - LLM 품질 평가: +10
179
+ */
180
+ private calculateQualityScore;
181
+ /**
182
+ * LLM에 코드 변경 품질 평가 요청 (0–10점 → 0–10 범위).
183
+ */
184
+ private llmQualityAssessment;
185
+ /**
186
+ * 복합 점수 계산 (평가 정렬용).
187
+ */
188
+ private compositeScore;
189
+ /**
190
+ * 실패한 접근법에서 학습 포인트를 추출한다.
191
+ */
192
+ private extractLearnings;
193
+ /**
194
+ * 승자 선택 이유를 생성한다.
195
+ */
196
+ private buildSelectionReason;
197
+ /**
198
+ * Promise에 타임아웃을 적용한다.
199
+ */
200
+ private withTimeout;
201
+ /**
202
+ * LLM이 유효한 접근법을 생성하지 못했을 때 사용하는 기본 접근법.
203
+ */
204
+ private getDefaultApproaches;
205
+ /**
206
+ * 안전한 JSON 파싱 (실패 시 null 반환).
207
+ */
208
+ private safeParseJSON;
209
+ }
210
+ //# sourceMappingURL=speculative-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speculative-executor.d.ts","sourceRoot":"","sources":["../src/speculative-executor.ts"],"names":[],"mappings":"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"}