@yuaone/core 0.1.3 → 0.2.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 (63) hide show
  1. package/dist/agent-loop.d.ts +112 -0
  2. package/dist/agent-loop.d.ts.map +1 -1
  3. package/dist/agent-loop.js +715 -9
  4. package/dist/agent-loop.js.map +1 -1
  5. package/dist/constants.d.ts.map +1 -1
  6. package/dist/constants.js +8 -0
  7. package/dist/constants.js.map +1 -1
  8. package/dist/context-budget.d.ts +1 -1
  9. package/dist/context-budget.d.ts.map +1 -1
  10. package/dist/context-budget.js +4 -2
  11. package/dist/context-budget.js.map +1 -1
  12. package/dist/context-compressor.d.ts +1 -1
  13. package/dist/context-compressor.d.ts.map +1 -1
  14. package/dist/context-compressor.js +5 -3
  15. package/dist/context-compressor.js.map +1 -1
  16. package/dist/context-manager.d.ts +7 -1
  17. package/dist/context-manager.d.ts.map +1 -1
  18. package/dist/context-manager.js +34 -2
  19. package/dist/context-manager.js.map +1 -1
  20. package/dist/continuation-engine.d.ts +168 -0
  21. package/dist/continuation-engine.d.ts.map +1 -0
  22. package/dist/continuation-engine.js +421 -0
  23. package/dist/continuation-engine.js.map +1 -0
  24. package/dist/execution-engine.d.ts.map +1 -1
  25. package/dist/execution-engine.js +9 -4
  26. package/dist/execution-engine.js.map +1 -1
  27. package/dist/index.d.ts +14 -1
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +14 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/llm-client.d.ts +1 -1
  32. package/dist/llm-client.d.ts.map +1 -1
  33. package/dist/llm-client.js +74 -7
  34. package/dist/llm-client.js.map +1 -1
  35. package/dist/memory-updater.d.ts +189 -0
  36. package/dist/memory-updater.d.ts.map +1 -0
  37. package/dist/memory-updater.js +481 -0
  38. package/dist/memory-updater.js.map +1 -0
  39. package/dist/prompt-defense.d.ts +59 -0
  40. package/dist/prompt-defense.d.ts.map +1 -0
  41. package/dist/prompt-defense.js +311 -0
  42. package/dist/prompt-defense.js.map +1 -0
  43. package/dist/reflexion.d.ts +211 -0
  44. package/dist/reflexion.d.ts.map +1 -0
  45. package/dist/reflexion.js +559 -0
  46. package/dist/reflexion.js.map +1 -0
  47. package/dist/system-prompt.d.ts +19 -3
  48. package/dist/system-prompt.d.ts.map +1 -1
  49. package/dist/system-prompt.js +203 -38
  50. package/dist/system-prompt.js.map +1 -1
  51. package/dist/task-classifier.d.ts +92 -0
  52. package/dist/task-classifier.d.ts.map +1 -0
  53. package/dist/task-classifier.js +566 -0
  54. package/dist/task-classifier.js.map +1 -0
  55. package/dist/token-budget.d.ts +131 -0
  56. package/dist/token-budget.d.ts.map +1 -0
  57. package/dist/token-budget.js +321 -0
  58. package/dist/token-budget.js.map +1 -0
  59. package/dist/types.d.ts +20 -2
  60. package/dist/types.d.ts.map +1 -1
  61. package/dist/types.js +18 -1
  62. package/dist/types.js.map +1 -1
  63. package/package.json +1 -1
@@ -14,6 +14,11 @@ import { ApprovalManager, type ApprovalHandler, type AutoApprovalConfig } from "
14
14
  import { AutoFixLoop, type AutoFixConfig } from "./auto-fix.js";
15
15
  import { InterruptManager } from "./interrupt-manager.js";
16
16
  import type { InterruptSignal } from "./types.js";
17
+ import { type EnvironmentInfo } from "./system-prompt.js";
18
+ import { type HierarchicalPlan } from "./hierarchical-planner.js";
19
+ import { TokenBudgetManager } from "./token-budget.js";
20
+ import { ContinuationEngine } from "./continuation-engine.js";
21
+ import { type MCPServerConfig } from "./mcp-client.js";
17
22
  /** AgentLoop 설정 */
18
23
  export interface AgentLoopOptions {
19
24
  /** 에이전트 설정 */
@@ -32,6 +37,16 @@ export interface AgentLoopOptions {
32
37
  autoFixConfig?: Partial<AutoFixConfig>;
33
38
  /** 인터럽트 매니저 (외부에서 주입, 미지정 시 내부 생성) */
34
39
  interruptManager?: InterruptManager;
40
+ /** Memory 자동 로드/저장 활성화 (기본 true) */
41
+ enableMemory?: boolean;
42
+ /** 환경 정보 (시스템 프롬프트에 포함) */
43
+ environment?: EnvironmentInfo;
44
+ /** 자동 플래닝 활성화 (복잡한 태스크 감지 시 계획 수립, 기본 true) */
45
+ enablePlanning?: boolean;
46
+ /** 플래닝이 필요한 최소 복잡도 (기본 "moderate") */
47
+ planningThreshold?: "simple" | "moderate" | "complex";
48
+ /** MCP 서버 설정 (외부 도구 연동) */
49
+ mcpServerConfigs?: MCPServerConfig[];
35
50
  }
36
51
  /**
37
52
  * AgentLoop — YUAN 에이전트의 핵심 실행 루프.
@@ -69,15 +84,55 @@ export declare class AgentLoop extends EventEmitter {
69
84
  private readonly approvalManager;
70
85
  private readonly autoFixLoop;
71
86
  private readonly interruptManager;
87
+ private readonly enableMemory;
88
+ private readonly enablePlanning;
89
+ private readonly planningThreshold;
90
+ private readonly environment?;
91
+ private yuanMemory;
92
+ private memoryManager;
93
+ private planner;
94
+ private activePlan;
95
+ private taskClassifier;
96
+ private promptDefense;
97
+ private reflexionEngine;
98
+ private tokenBudgetManager;
99
+ private allToolResults;
100
+ private currentTaskIndex;
101
+ private changedFiles;
72
102
  private aborted;
103
+ private initialized;
104
+ private continuationEngine;
105
+ private mcpClient;
106
+ private mcpToolDefinitions;
107
+ private readonly mcpServerConfigs;
108
+ private memoryUpdater;
109
+ private checkpointSaved;
110
+ private iterationCount;
73
111
  private tokenUsage;
74
112
  constructor(options: AgentLoopOptions);
113
+ /**
114
+ * Memory와 프로젝트 컨텍스트를 로드하여 시스템 프롬프트를 갱신.
115
+ * run() 호출 전에 한 번 호출하면 메모리가 자동으로 주입된다.
116
+ * 이미 초기화되었으면 스킵.
117
+ */
118
+ init(): Promise<void>;
119
+ /**
120
+ * MemoryManager의 학습/실패 기록을 시스템 메시지로 변환.
121
+ */
122
+ private buildMemoryContext;
75
123
  /**
76
124
  * 에이전트 루프를 실행.
125
+ * 첫 호출 시 자동으로 Memory와 프로젝트 컨텍스트를 로드한다.
77
126
  * @param userMessage 사용자의 요청 메시지
78
127
  * @returns 종료 사유 및 결과
79
128
  */
80
129
  run(userMessage: string): Promise<AgentTermination>;
130
+ /**
131
+ * 에이전트 실행 완료 후 메모리를 자동 업데이트한다.
132
+ * - 변경된 파일 목록 기록
133
+ * - 성공/실패 패턴 학습
134
+ */
135
+ private updateMemoryAfterRun;
81
136
  /**
82
137
  * 실행 중인 루프를 중단.
83
138
  */
@@ -112,6 +167,38 @@ export declare class AgentLoop extends EventEmitter {
112
167
  * 수정 시도 기록 등을 조회할 때 사용.
113
168
  */
114
169
  getAutoFixLoop(): AutoFixLoop;
170
+ /**
171
+ * TokenBudgetManager 인스턴스를 반환.
172
+ * 역할별 토큰 사용량 조회/리밸런싱에 사용.
173
+ */
174
+ getTokenBudgetManager(): TokenBudgetManager;
175
+ /**
176
+ * 사용자 메시지의 복잡도를 감지하고, 복잡한 태스크이면 계획을 수립하여 컨텍스트에 주입.
177
+ *
178
+ * 복잡도 판단 기준:
179
+ * - 메시지 길이, 파일/작업 수 언급, 키워드 패턴
180
+ * - "trivial"/"simple" → 플래닝 스킵 (LLM이 직접 처리)
181
+ * - "moderate" 이상 → HierarchicalPlanner로 L1+L2 계획 수립
182
+ */
183
+ private maybeCreatePlan;
184
+ /**
185
+ * 사용자 메시지에서 태스크 복잡도를 휴리스틱으로 추정.
186
+ * LLM 호출 없이 빠르게 결정 (토큰 절약).
187
+ */
188
+ private detectComplexity;
189
+ /**
190
+ * HierarchicalPlan을 LLM이 따라갈 수 있는 컨텍스트 메시지로 포맷.
191
+ */
192
+ private formatPlanForContext;
193
+ /**
194
+ * 실행 중 에러 발생 시 리플래닝을 시도한다.
195
+ * @returns 리플래닝 성공 시 true (계속 진행), 실패 시 false
196
+ */
197
+ private attemptReplan;
198
+ /**
199
+ * 현재 활성 플랜을 반환 (외부에서 진행 상황 조회용).
200
+ */
201
+ getActivePlan(): HierarchicalPlan | null;
115
202
  private executeLoop;
116
203
  /**
117
204
  * LLM을 스트리밍 모드로 호출하여 text delta를 실시간 emit.
@@ -146,6 +233,25 @@ export declare class AgentLoop extends EventEmitter {
146
233
  * 도구 인자를 파싱하는 헬퍼.
147
234
  */
148
235
  private parseToolArgs;
236
+ /**
237
+ * 토큰 예산 소진 임박 시 자동 체크포인트를 저장한다.
238
+ * 현재 진행 상태, 변경 파일, 에러 등을 직렬화.
239
+ */
240
+ private saveAutoCheckpoint;
241
+ /**
242
+ * 현재 plan에서 진행 상황을 추출한다.
243
+ */
244
+ private extractProgress;
245
+ /**
246
+ * 현재 작업 메모리 요약을 생성한다.
247
+ * 최근 도구 결과와 LLM 응답의 핵심만 추출.
248
+ */
249
+ private buildWorkingMemorySummary;
250
+ /**
251
+ * ContinuationEngine 인스턴스를 반환한다.
252
+ * 외부에서 체크포인트 조회/관리에 사용.
253
+ */
254
+ getContinuationEngine(): ContinuationEngine | null;
149
255
  /**
150
256
  * InterruptManager 이벤트를 AgentLoop에 연결한다.
151
257
  * - soft interrupt: 피드백을 user 메시지로 주입
@@ -157,6 +263,12 @@ export declare class AgentLoop extends EventEmitter {
157
263
  * resume 또는 hard interrupt가 올 때까지 블로킹.
158
264
  */
159
265
  private waitForResume;
266
+ /** MCP 도구인지 확인 */
267
+ private isMCPTool;
268
+ /** MCP 도구 실행 (callToolAsYuan 활용) */
269
+ private executeMCPTool;
270
+ /** MCP 클라이언트 정리 (세션 종료 시 호출) */
271
+ dispose(): Promise<void>;
160
272
  private emitEvent;
161
273
  private handleFatalError;
162
274
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../src/agent-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EACV,WAAW,EAEX,gBAAgB,EAChB,OAAO,EAGP,YAAY,EACZ,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAkB,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAQjF,OAAO,EACL,eAAe,EACf,KAAK,eAAe,EAEpB,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,WAAW,EACX,KAAK,aAAa,EAEnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,mBAAmB;AACnB,MAAM,WAAW,gBAAgB;IAC/B,cAAc;IACd,MAAM,EAAE,WAAW,CAAC;IACpB,aAAa;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,+BAA+B;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,wBAAwB;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC9C,gBAAgB;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7C,2BAA2B;IAC3B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,kBAAkB;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACvC,sCAAsC;IACtC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAKhB;gBAEU,OAAO,EAAE,gBAAgB;IA0CrC;;;;OAIG;IACG,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkBzD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAcxC;;;OAGG;IACH,mBAAmB,IAAI,gBAAgB;IAIvC;;OAEG;IACH,aAAa,IAAI,QAAQ,CAAC,UAAU,CAAC;IAIrC;;OAEG;IACH,UAAU,IAAI,OAAO,EAAE;IAIvB;;;OAGG;IACH,kBAAkB,IAAI,eAAe;IAIrC;;;OAGG;IACH,cAAc,IAAI,WAAW;YAMf,WAAW;IAyIzB;;;OAGG;YACW,gBAAgB;IAoD9B;;;;;;;OAOG;YACW,YAAY;IA+H1B;;;OAGG;YACW,cAAc;IAiB5B;;;OAGG;YACW,qBAAqB;IA8BnC;;;OAGG;YACW,mBAAmB;IA0DjC;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAe/B;;;OAGG;IACH,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,gBAAgB;CAWzB"}
1
+ {"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../src/agent-loop.ts"],"names":[],"mappings":"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"}