@yuaone/core 0.9.10 → 0.9.11
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/dist/agent-loop.d.ts +7 -0
- package/dist/agent-loop.d.ts.map +1 -1
- package/dist/agent-loop.js +70 -19
- package/dist/agent-loop.js.map +1 -1
- package/dist/extensions/budget-wiring.d.ts +20 -0
- package/dist/extensions/budget-wiring.d.ts.map +1 -0
- package/dist/extensions/budget-wiring.js +32 -0
- package/dist/extensions/budget-wiring.js.map +1 -0
- package/dist/extensions/cap-graph-wiring.d.ts +19 -0
- package/dist/extensions/cap-graph-wiring.d.ts.map +1 -0
- package/dist/extensions/cap-graph-wiring.js +41 -0
- package/dist/extensions/cap-graph-wiring.js.map +1 -0
- package/dist/extensions/self-model-wiring.d.ts +15 -0
- package/dist/extensions/self-model-wiring.d.ts.map +1 -0
- package/dist/extensions/self-model-wiring.js +32 -0
- package/dist/extensions/self-model-wiring.js.map +1 -0
- package/dist/extensions/strategy-wiring.d.ts +21 -0
- package/dist/extensions/strategy-wiring.d.ts.map +1 -0
- package/dist/extensions/strategy-wiring.js +50 -0
- package/dist/extensions/strategy-wiring.js.map +1 -0
- package/dist/planner/risk-estimator.d.ts +1 -1
- package/dist/planner/risk-estimator.d.ts.map +1 -1
- package/dist/planner/risk-estimator.js +15 -2
- package/dist/planner/risk-estimator.js.map +1 -1
- package/dist/world-model/index.d.ts +1 -1
- package/dist/world-model/index.d.ts.map +1 -1
- package/dist/world-model/transition-model.d.ts +5 -1
- package/dist/world-model/transition-model.d.ts.map +1 -1
- package/dist/world-model/transition-model.js +6 -1
- package/dist/world-model/transition-model.js.map +1 -1
- package/package.json +1 -1
package/dist/agent-loop.d.ts
CHANGED
|
@@ -117,6 +117,8 @@ export declare class AgentLoop extends EventEmitter {
|
|
|
117
117
|
private costOptimizer;
|
|
118
118
|
private impactAnalyzer;
|
|
119
119
|
private impactHintInjected;
|
|
120
|
+
private lastImpactReport;
|
|
121
|
+
private lastImpactFilesKey;
|
|
120
122
|
private selfReflection;
|
|
121
123
|
private debateOrchestrator;
|
|
122
124
|
private continuousReflection;
|
|
@@ -432,6 +434,11 @@ export declare class AgentLoop extends EventEmitter {
|
|
|
432
434
|
* resume 또는 hard interrupt가 올 때까지 블로킹.
|
|
433
435
|
*/
|
|
434
436
|
private waitForResume;
|
|
437
|
+
/**
|
|
438
|
+
* Returns a cached ImpactReport if the same files were already analyzed,
|
|
439
|
+
* otherwise computes and caches a fresh report.
|
|
440
|
+
*/
|
|
441
|
+
private getOrComputeImpact;
|
|
435
442
|
/**
|
|
436
443
|
* 파일 변경 후 영향 분석을 실행하고 결과를 컨텍스트에 주입.
|
|
437
444
|
* 고위험 변경이면 경고를 emit.
|
package/dist/agent-loop.d.ts.map
CHANGED
|
@@ -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;AAI3C,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;AACjF,OAAO,EAEL,KAAK,WAAW,EAGjB,MAAM,0BAA0B,CAAC;AAQlC,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;AAGlD,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAEL,KAAK,gBAAgB,EAGtB,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,kBAAkB,EAAmB,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAG9D,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAyB,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAqB,MAAM,sBAAsB,CAAC;AAGzE,OAAO,EACL,oBAAoB,EACpB,KAAK,kBAAkB,EACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAqB,MAAM,sBAAsB,CAAC;AAGzE,OAAO,EAAE,kBAAkB,EAAwB,MAAM,0BAA0B,CAAC;AAGpF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAA0C,MAAM,2BAA2B,CAAC;AACvG,OAAO,EAAE,sBAAsB,EAAwB,MAAM,uBAAuB,CAAC;AAUrF,OAAO,EAAoB,KAAK,sBAAsB,EAAuC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../src/agent-loop.ts"],"names":[],"mappings":"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"}
|
package/dist/agent-loop.js
CHANGED
|
@@ -76,6 +76,10 @@ import { BudgetGovernorV2 } from "./budget-governor-v2.js";
|
|
|
76
76
|
import { CapabilityGraph } from "./capability-graph.js";
|
|
77
77
|
import { CapabilitySelfModel } from "./capability-self-model.js";
|
|
78
78
|
import { StrategyMarket } from "./strategy-market.js";
|
|
79
|
+
import { recordBudgetUsage, checkBudgetShouldHalt } from "./extensions/budget-wiring.js";
|
|
80
|
+
import { registerToolsInGraph, recordToolOutcomeInGraph } from "./extensions/cap-graph-wiring.js";
|
|
81
|
+
import { getSelfWeaknessContext } from "./extensions/self-model-wiring.js";
|
|
82
|
+
import { initMarketPlaybooks, selectMarketStrategy } from "./extensions/strategy-wiring.js";
|
|
79
83
|
/**
|
|
80
84
|
* AgentLoop — YUAN 에이전트의 핵심 실행 루프.
|
|
81
85
|
*
|
|
@@ -144,6 +148,8 @@ export class AgentLoop extends EventEmitter {
|
|
|
144
148
|
costOptimizer;
|
|
145
149
|
impactAnalyzer = null;
|
|
146
150
|
impactHintInjected = false;
|
|
151
|
+
lastImpactReport = null;
|
|
152
|
+
lastImpactFilesKey = "";
|
|
147
153
|
selfReflection = null;
|
|
148
154
|
debateOrchestrator = null;
|
|
149
155
|
continuousReflection = null;
|
|
@@ -602,6 +608,11 @@ export class AgentLoop extends EventEmitter {
|
|
|
602
608
|
}
|
|
603
609
|
}
|
|
604
610
|
}
|
|
611
|
+
// Self-model weakness context injection
|
|
612
|
+
const weaknessCtx = getSelfWeaknessContext(this.capabilitySelfModel);
|
|
613
|
+
if (weaknessCtx) {
|
|
614
|
+
this.contextManager.addMessage({ role: "system", content: weaknessCtx });
|
|
615
|
+
}
|
|
605
616
|
// SkillLearner 초기화 (경험에서 학습된 스킬 자동 로드)
|
|
606
617
|
if (this.enableSkillLearning && projectPath) {
|
|
607
618
|
try {
|
|
@@ -625,6 +636,7 @@ export class AgentLoop extends EventEmitter {
|
|
|
625
636
|
this.projectExecutive.on("event", (ev) => this.emitEvent(ev));
|
|
626
637
|
// Phase 4 remaining: SelfImprovementLoop, MetaLearningCollector, TrustEconomics
|
|
627
638
|
this.selfImprovementLoop = new SelfImprovementLoop({ projectPath });
|
|
639
|
+
this.selfImprovementLoop.on("event", (ev) => this.emitEvent(ev));
|
|
628
640
|
this.metaLearningCollector = new MetaLearningCollector({ projectPath });
|
|
629
641
|
this.trustEconomics = new TrustEconomics({ projectPath });
|
|
630
642
|
}
|
|
@@ -669,6 +681,9 @@ export class AgentLoop extends EventEmitter {
|
|
|
669
681
|
this.capabilityGraph.on("event", (ev) => this.emitEvent(ev));
|
|
670
682
|
this.capabilitySelfModel.on("event", (ev) => this.emitEvent(ev));
|
|
671
683
|
this.strategyMarket.on("event", (ev) => this.emitEvent(ev));
|
|
684
|
+
// Register known tools in capability graph
|
|
685
|
+
const toolNames = this.config.loop.tools.map((t) => t.name);
|
|
686
|
+
registerToolsInGraph(this.capabilityGraph, toolNames);
|
|
672
687
|
}
|
|
673
688
|
catch { /* non-fatal */ }
|
|
674
689
|
// HierarchicalPlanner 생성
|
|
@@ -898,6 +913,7 @@ export class AgentLoop extends EventEmitter {
|
|
|
898
913
|
// Phase 6: start task budget tracking
|
|
899
914
|
try {
|
|
900
915
|
this.budgetGovernorV2?.startTask(this.sessionId ?? "default");
|
|
916
|
+
initMarketPlaybooks(this.strategyMarket);
|
|
901
917
|
}
|
|
902
918
|
catch { /* non-fatal */ }
|
|
903
919
|
// Initialize trace recorder (once per run)
|
|
@@ -1165,6 +1181,10 @@ export class AgentLoop extends EventEmitter {
|
|
|
1165
1181
|
// Phase 4 remaining: SelfImprovementLoop + MetaLearningCollector + TrustEconomics
|
|
1166
1182
|
try {
|
|
1167
1183
|
const taskType = this.playbookLibrary?.query(userMessage)?.taskType ?? "unknown";
|
|
1184
|
+
const championPlaybook = selectMarketStrategy(this.strategyMarket, taskType);
|
|
1185
|
+
if (championPlaybook) {
|
|
1186
|
+
this.emitReasoning(`strategy champion for ${taskType}: ${championPlaybook}`);
|
|
1187
|
+
}
|
|
1168
1188
|
const toolSeq = this.allToolResults.slice(-20).map((r) => r.name);
|
|
1169
1189
|
const runSuccess = result.reason === "GOAL_ACHIEVED";
|
|
1170
1190
|
const runDurationMs = Date.now() - runStartTime;
|
|
@@ -1899,6 +1919,10 @@ export class AgentLoop extends EventEmitter {
|
|
|
1899
1919
|
iteration++;
|
|
1900
1920
|
this.iterationCount = iteration;
|
|
1901
1921
|
const iterationStart = Date.now();
|
|
1922
|
+
// Phase 6: Budget governor halt check
|
|
1923
|
+
if (checkBudgetShouldHalt(this.budgetGovernorV2, this.sessionId ?? "default")) {
|
|
1924
|
+
return { reason: "BUDGET_EXHAUSTED", tokensUsed: this.tokenUsage.total };
|
|
1925
|
+
}
|
|
1902
1926
|
// Reset per-iteration governor state
|
|
1903
1927
|
this.verifyRanThisIteration = false;
|
|
1904
1928
|
this.summarizeRanThisIteration = false;
|
|
@@ -2095,6 +2119,7 @@ export class AgentLoop extends EventEmitter {
|
|
|
2095
2119
|
this.tokenUsage.input += response.usage.input;
|
|
2096
2120
|
this.tokenUsage.output += response.usage.output;
|
|
2097
2121
|
this.tokenUsage.total += response.usage.input + response.usage.output;
|
|
2122
|
+
recordBudgetUsage(this.budgetGovernorV2, response.usage.input, response.usage.output, this.sessionId ?? "default");
|
|
2098
2123
|
this.governor.recordIteration(response.usage.input, response.usage.output);
|
|
2099
2124
|
// Role-based token budget 추적
|
|
2100
2125
|
this.tokenBudgetManager.recordUsage("executor", response.usage.input, response.usage.output);
|
|
@@ -2314,6 +2339,10 @@ export class AgentLoop extends EventEmitter {
|
|
|
2314
2339
|
const { results: toolResults, deferredFixPrompts } = await this.executeTools(response.toolCalls);
|
|
2315
2340
|
// Reflexion: 도구 결과 수집
|
|
2316
2341
|
this.allToolResults.push(...toolResults);
|
|
2342
|
+
// Phase 6: Record tool outcomes in capability graph
|
|
2343
|
+
for (const tr of toolResults) {
|
|
2344
|
+
recordToolOutcomeInGraph(this.capabilityGraph, tr.name, tr.success);
|
|
2345
|
+
}
|
|
2317
2346
|
// Accumulate tool results for proactive replanning evaluation
|
|
2318
2347
|
this.allToolResultsSinceLastReplan.push(...toolResults);
|
|
2319
2348
|
// Tool plan tracking: 실행된 도구 이름 기록
|
|
@@ -3682,6 +3711,27 @@ export class AgentLoop extends EventEmitter {
|
|
|
3682
3711
|
});
|
|
3683
3712
|
}
|
|
3684
3713
|
// ─── Impact Analysis ───
|
|
3714
|
+
/**
|
|
3715
|
+
* Returns a cached ImpactReport if the same files were already analyzed,
|
|
3716
|
+
* otherwise computes and caches a fresh report.
|
|
3717
|
+
*/
|
|
3718
|
+
async getOrComputeImpact(files) {
|
|
3719
|
+
if (!this.impactAnalyzer || files.length === 0)
|
|
3720
|
+
return null;
|
|
3721
|
+
const key = [...files].sort().join("|");
|
|
3722
|
+
if (key === this.lastImpactFilesKey && this.lastImpactReport) {
|
|
3723
|
+
return this.lastImpactReport;
|
|
3724
|
+
}
|
|
3725
|
+
try {
|
|
3726
|
+
const report = await this.impactAnalyzer.analyzeChanges(files);
|
|
3727
|
+
this.lastImpactFilesKey = key;
|
|
3728
|
+
this.lastImpactReport = report;
|
|
3729
|
+
return report;
|
|
3730
|
+
}
|
|
3731
|
+
catch {
|
|
3732
|
+
return null;
|
|
3733
|
+
}
|
|
3734
|
+
}
|
|
3685
3735
|
/**
|
|
3686
3736
|
* 파일 변경 후 영향 분석을 실행하고 결과를 컨텍스트에 주입.
|
|
3687
3737
|
* 고위험 변경이면 경고를 emit.
|
|
@@ -3689,23 +3739,20 @@ export class AgentLoop extends EventEmitter {
|
|
|
3689
3739
|
async analyzeFileImpact(filePath) {
|
|
3690
3740
|
if (!this.impactAnalyzer)
|
|
3691
3741
|
return;
|
|
3692
|
-
|
|
3693
|
-
|
|
3694
|
-
|
|
3695
|
-
|
|
3696
|
-
|
|
3697
|
-
|
|
3698
|
-
}
|
|
3699
|
-
|
|
3700
|
-
|
|
3701
|
-
|
|
3702
|
-
|
|
3703
|
-
|
|
3704
|
-
|
|
3705
|
-
}
|
|
3706
|
-
}
|
|
3707
|
-
catch {
|
|
3708
|
-
// Impact analysis 실패는 치명적이지 않음
|
|
3742
|
+
const report = await this.getOrComputeImpact([filePath]);
|
|
3743
|
+
if (!report)
|
|
3744
|
+
return;
|
|
3745
|
+
if (report.riskLevel === "high" || report.riskLevel === "critical") {
|
|
3746
|
+
this.emitEvent({
|
|
3747
|
+
kind: "agent:thinking",
|
|
3748
|
+
content: `Impact analysis: ${report.riskLevel} risk. ${report.affectedFiles.length} affected files, ${report.breakingChanges.length} breaking changes.`,
|
|
3749
|
+
});
|
|
3750
|
+
// 고위험 변경 정보를 LLM에 주입
|
|
3751
|
+
const impactPrompt = this.impactAnalyzer.formatForPrompt(report);
|
|
3752
|
+
this.contextManager.addMessage({
|
|
3753
|
+
role: "system",
|
|
3754
|
+
content: impactPrompt,
|
|
3755
|
+
});
|
|
3709
3756
|
}
|
|
3710
3757
|
}
|
|
3711
3758
|
/**
|
|
@@ -3715,8 +3762,10 @@ export class AgentLoop extends EventEmitter {
|
|
|
3715
3762
|
async maybeInjectAggregateImpactHint() {
|
|
3716
3763
|
if (!this.impactAnalyzer || this.changedFiles.length < 2)
|
|
3717
3764
|
return;
|
|
3765
|
+
const report = await this.getOrComputeImpact(this.changedFiles);
|
|
3766
|
+
if (!report)
|
|
3767
|
+
return;
|
|
3718
3768
|
try {
|
|
3719
|
-
const report = await this.impactAnalyzer.analyzeChanges(this.changedFiles);
|
|
3720
3769
|
const shouldInject = report.breakingChanges.length > 0 ||
|
|
3721
3770
|
report.deadCodeCandidates.length > 0 ||
|
|
3722
3771
|
report.testCoverage.some((t) => t.inferredCoverage === "low") ||
|
|
@@ -3762,7 +3811,9 @@ export class AgentLoop extends EventEmitter {
|
|
|
3762
3811
|
if (!this.impactAnalyzer || this.changedFiles.length === 0)
|
|
3763
3812
|
return null;
|
|
3764
3813
|
try {
|
|
3765
|
-
const report = await this.
|
|
3814
|
+
const report = await this.getOrComputeImpact(this.changedFiles);
|
|
3815
|
+
if (!report)
|
|
3816
|
+
return null;
|
|
3766
3817
|
const lines = [];
|
|
3767
3818
|
lines.push("Impact summary:");
|
|
3768
3819
|
lines.push(`- Risk: ${report.riskLevel}, affected files: ${report.affectedFiles.length}, breaking changes: ${report.breakingChanges.length}`);
|