@yuaone/core 0.5.0 → 0.7.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 (62) hide show
  1. package/README.md +50 -6
  2. package/dist/agent-loop.d.ts +36 -0
  3. package/dist/agent-loop.d.ts.map +1 -1
  4. package/dist/agent-loop.js +504 -97
  5. package/dist/agent-loop.js.map +1 -1
  6. package/dist/code-indexer.d.ts +50 -0
  7. package/dist/code-indexer.d.ts.map +1 -0
  8. package/dist/code-indexer.js +199 -0
  9. package/dist/code-indexer.js.map +1 -0
  10. package/dist/failure-recovery.d.ts +15 -2
  11. package/dist/failure-recovery.d.ts.map +1 -1
  12. package/dist/failure-recovery.js +53 -2
  13. package/dist/failure-recovery.js.map +1 -1
  14. package/dist/index.d.ts +6 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +6 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/llm-client.d.ts +11 -2
  19. package/dist/llm-client.d.ts.map +1 -1
  20. package/dist/llm-client.js +23 -8
  21. package/dist/llm-client.js.map +1 -1
  22. package/dist/planner/index.d.ts +9 -0
  23. package/dist/planner/index.d.ts.map +1 -0
  24. package/dist/planner/index.js +5 -0
  25. package/dist/planner/index.js.map +1 -0
  26. package/dist/planner/milestone-checker.d.ts +48 -0
  27. package/dist/planner/milestone-checker.d.ts.map +1 -0
  28. package/dist/planner/milestone-checker.js +113 -0
  29. package/dist/planner/milestone-checker.js.map +1 -0
  30. package/dist/planner/plan-evaluator.d.ts +35 -0
  31. package/dist/planner/plan-evaluator.d.ts.map +1 -0
  32. package/dist/planner/plan-evaluator.js +92 -0
  33. package/dist/planner/plan-evaluator.js.map +1 -0
  34. package/dist/planner/replanning-engine.d.ts +37 -0
  35. package/dist/planner/replanning-engine.d.ts.map +1 -0
  36. package/dist/planner/replanning-engine.js +130 -0
  37. package/dist/planner/replanning-engine.js.map +1 -0
  38. package/dist/planner/risk-estimator.d.ts +44 -0
  39. package/dist/planner/risk-estimator.d.ts.map +1 -0
  40. package/dist/planner/risk-estimator.js +108 -0
  41. package/dist/planner/risk-estimator.js.map +1 -0
  42. package/dist/world-model/index.d.ts +8 -0
  43. package/dist/world-model/index.d.ts.map +1 -0
  44. package/dist/world-model/index.js +5 -0
  45. package/dist/world-model/index.js.map +1 -0
  46. package/dist/world-model/simulation-engine.d.ts +58 -0
  47. package/dist/world-model/simulation-engine.d.ts.map +1 -0
  48. package/dist/world-model/simulation-engine.js +191 -0
  49. package/dist/world-model/simulation-engine.js.map +1 -0
  50. package/dist/world-model/state-store.d.ts +149 -0
  51. package/dist/world-model/state-store.d.ts.map +1 -0
  52. package/dist/world-model/state-store.js +379 -0
  53. package/dist/world-model/state-store.js.map +1 -0
  54. package/dist/world-model/state-updater.d.ts +35 -0
  55. package/dist/world-model/state-updater.d.ts.map +1 -0
  56. package/dist/world-model/state-updater.js +131 -0
  57. package/dist/world-model/state-updater.js.map +1 -0
  58. package/dist/world-model/transition-model.d.ts +54 -0
  59. package/dist/world-model/transition-model.d.ts.map +1 -0
  60. package/dist/world-model/transition-model.js +240 -0
  61. package/dist/world-model/transition-model.js.map +1 -0
  62. package/package.json +1 -1
@@ -0,0 +1,131 @@
1
+ /**
2
+ * @module world-model/state-updater
3
+ * @description Updates the StateStore after actual tool execution.
4
+ * Translates real tool results into WorldState patches so the world model
5
+ * stays in sync with disk/git/build truth.
6
+ */
7
+ import { createHash } from "node:crypto";
8
+ import { readFile, stat } from "node:fs/promises";
9
+ import { resolve } from "node:path";
10
+ // ─── StateUpdater ───
11
+ export class StateUpdater {
12
+ stateStore;
13
+ projectPath;
14
+ constructor(stateStore, projectPath) {
15
+ this.stateStore = stateStore;
16
+ this.projectPath = projectPath;
17
+ }
18
+ /**
19
+ * Main method: call after every tool execution.
20
+ * Applies the appropriate patch to the StateStore based on the tool and result.
21
+ */
22
+ async applyToolResult(tool, args, result) {
23
+ const toolLower = tool.toLowerCase();
24
+ // ── File write / edit ──────────────────────────────────────────────────
25
+ if (toolLower === "file_write" || toolLower === "file_edit") {
26
+ const rawPath = args["path"] ?? args["file_path"];
27
+ const filePath = typeof rawPath === "string" ? rawPath : null;
28
+ if (result.success && filePath !== null) {
29
+ const fileState = await this.refreshFileState(filePath);
30
+ if (fileState) {
31
+ const currentGit = this.stateStore.getState().git;
32
+ const uncommittedFiles = Array.from(new Set([...currentGit.uncommittedFiles, filePath]));
33
+ const patch = {
34
+ files: [{ type: "set", path: filePath, state: fileState }],
35
+ build: { status: "unknown" },
36
+ test: { status: "unknown" },
37
+ git: { dirty: true, uncommittedFiles },
38
+ };
39
+ this.stateStore.update(patch, `${tool}:${filePath}`);
40
+ return patch;
41
+ }
42
+ }
43
+ return {};
44
+ }
45
+ // ── Shell exec ────────────────────────────────────────────────────────
46
+ if (toolLower === "shell_exec") {
47
+ const command = typeof args["command"] === "string" ? args["command"] : "";
48
+ if (/tsc|build|compile/i.test(command)) {
49
+ this.parseBuildOutput(result.output, result.success);
50
+ }
51
+ else if (/test|jest|vitest|mocha|pytest/i.test(command)) {
52
+ this.parseTestOutput(result.output, result.success);
53
+ }
54
+ // Patch was already applied inside the parse methods
55
+ return {};
56
+ }
57
+ // ── Git ops ───────────────────────────────────────────────────────────
58
+ if (toolLower === "git_ops") {
59
+ const operation = args["operation"] ?? args["command"];
60
+ const opStr = typeof operation === "string" ? operation : "";
61
+ if (opStr === "commit") {
62
+ const patch = {
63
+ git: { dirty: false, uncommittedFiles: [], stagedFiles: [] },
64
+ };
65
+ this.stateStore.update(patch, "git:commit");
66
+ return patch;
67
+ }
68
+ return {};
69
+ }
70
+ // ── Unknown / read-only tools ─────────────────────────────────────────
71
+ return {};
72
+ }
73
+ /**
74
+ * Read a file from disk and return its FileState.
75
+ * Returns null if the file cannot be read (e.g. does not exist).
76
+ */
77
+ async refreshFileState(filePath) {
78
+ const absPath = resolve(this.projectPath, filePath);
79
+ const content = await readFile(absPath, "utf-8").catch(() => null);
80
+ if (content === null)
81
+ return null;
82
+ const stats = await stat(absPath);
83
+ const hash = createHash("sha256").update(content).digest("hex").slice(0, 16);
84
+ return {
85
+ path: filePath,
86
+ exists: true,
87
+ hash,
88
+ lines: content.split("\n").length,
89
+ lastModified: stats.mtimeMs,
90
+ };
91
+ }
92
+ /**
93
+ * Parse build command output (tsc / webpack / vite / etc.) and update the
94
+ * build state in the StateStore.
95
+ */
96
+ parseBuildOutput(output, success) {
97
+ const errorLines = output
98
+ .split("\n")
99
+ .filter((line) => /error TS\d+|Error:/i.test(line))
100
+ .slice(0, 10)
101
+ .map((line) => line.trim());
102
+ const patch = {
103
+ build: {
104
+ status: success ? "pass" : "fail",
105
+ errors: errorLines,
106
+ lastRun: Date.now(),
107
+ },
108
+ };
109
+ this.stateStore.update(patch, "build:result");
110
+ }
111
+ /**
112
+ * Parse test command output (jest / vitest / mocha / pytest / etc.) and
113
+ * update the test state in the StateStore.
114
+ */
115
+ parseTestOutput(output, success) {
116
+ const failingTests = output
117
+ .split("\n")
118
+ .filter((line) => /✗|FAIL|×|failed/i.test(line))
119
+ .slice(0, 10)
120
+ .map((line) => line.trim());
121
+ const patch = {
122
+ test: {
123
+ status: success ? "pass" : "fail",
124
+ failingTests,
125
+ lastRun: Date.now(),
126
+ },
127
+ };
128
+ this.stateStore.update(patch, "test:result");
129
+ }
130
+ }
131
+ //# sourceMappingURL=state-updater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-updater.js","sourceRoot":"","sources":["../../src/world-model/state-updater.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @module world-model/transition-model
3
+ * @description Predicts how each tool call will change the WorldState.
4
+ * Uses rule-based heuristics with calibration via actual outcomes.
5
+ */
6
+ import type { WorldState } from "./state-store.js";
7
+ export interface StateDelta {
8
+ /** Files that will be modified */
9
+ filesChanged: string[];
10
+ /** Files that will be created */
11
+ filesCreated: string[];
12
+ /** Files that will be deleted */
13
+ filesDeleted: string[];
14
+ /** Does this action require a build re-run? */
15
+ buildInvalidated: boolean;
16
+ /** Does this action require a test re-run? */
17
+ testInvalidated: boolean;
18
+ /** Will git become dirty? */
19
+ gitDirty: boolean;
20
+ }
21
+ export interface StateTransition {
22
+ tool: string;
23
+ args: Record<string, unknown>;
24
+ expectedDelta: StateDelta;
25
+ /** 0.0 to 1.0 */
26
+ failureProbability: number;
27
+ /** Explanation for this probability */
28
+ reasoning: string;
29
+ }
30
+ export declare class TransitionModel {
31
+ private history;
32
+ /** Per tool-type accuracy for calibration */
33
+ private accuracy;
34
+ constructor();
35
+ /**
36
+ * Predict what will happen when a tool is called with given args.
37
+ * Uses rule-based heuristics + calibration multipliers.
38
+ */
39
+ predict(tool: string, args: Record<string, unknown>, currentState: WorldState): StateTransition;
40
+ /**
41
+ * After actual execution, calibrate the model's accuracy for this tool type.
42
+ * Uses a simple exponential moving average on the multiplier.
43
+ */
44
+ calibrate(predicted: StateTransition, actual: StateDelta, success: boolean): void;
45
+ /**
46
+ * Predict the final WorldState after executing a sequence of tool calls.
47
+ * Applies each transition's expected delta to produce the final state.
48
+ */
49
+ predictSequence(tools: Array<{
50
+ tool: string;
51
+ args: Record<string, unknown>;
52
+ }>, initialState: WorldState): WorldState;
53
+ }
54
+ //# sourceMappingURL=transition-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transition-model.d.ts","sourceRoot":"","sources":["../../src/world-model/transition-model.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,MAAM,WAAW,UAAU;IACzB,kCAAkC;IAClC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iCAAiC;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iCAAiC;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,+CAA+C;IAC/C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,8CAA8C;IAC9C,eAAe,EAAE,OAAO,CAAC;IACzB,6BAA6B;IAC7B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,aAAa,EAAE,UAAU,CAAC;IAC1B,iBAAiB;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAwCD,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAqB;IACpC,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,CAA4B;;IAO5C;;;OAGG;IACH,OAAO,CACL,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,EAAE,UAAU,GACvB,eAAe;IAoFlB;;;OAGG;IACH,SAAS,CAAC,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAuCjF;;;OAGG;IACH,eAAe,CACb,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,EAC7D,YAAY,EAAE,UAAU,GACvB,UAAU;CAsFd"}
@@ -0,0 +1,240 @@
1
+ /**
2
+ * @module world-model/transition-model
3
+ * @description Predicts how each tool call will change the WorldState.
4
+ * Uses rule-based heuristics with calibration via actual outcomes.
5
+ */
6
+ // ─── Helpers ───
7
+ function emptyDelta() {
8
+ return {
9
+ filesChanged: [],
10
+ filesCreated: [],
11
+ filesDeleted: [],
12
+ buildInvalidated: false,
13
+ testInvalidated: false,
14
+ gitDirty: false,
15
+ };
16
+ }
17
+ function getStringArg(args, ...keys) {
18
+ for (const key of keys) {
19
+ if (typeof args[key] === "string")
20
+ return args[key];
21
+ }
22
+ return undefined;
23
+ }
24
+ // ─── TransitionModel ───
25
+ export class TransitionModel {
26
+ history;
27
+ /** Per tool-type accuracy for calibration */
28
+ accuracy;
29
+ constructor() {
30
+ this.history = [];
31
+ this.accuracy = new Map();
32
+ }
33
+ /**
34
+ * Predict what will happen when a tool is called with given args.
35
+ * Uses rule-based heuristics + calibration multipliers.
36
+ */
37
+ predict(tool, args, currentState) {
38
+ const delta = emptyDelta();
39
+ let baseProbability = 0.10;
40
+ let reasoning = "unknown tool — default failure probability";
41
+ const toolLower = tool.toLowerCase();
42
+ if (toolLower === "file_write" || toolLower === "file_edit") {
43
+ const filePath = getStringArg(args, "path", "file_path");
44
+ if (filePath)
45
+ delta.filesChanged.push(filePath);
46
+ delta.buildInvalidated = true;
47
+ delta.testInvalidated = true;
48
+ delta.gitDirty = true;
49
+ baseProbability = 0.05;
50
+ reasoning = "file write/edit — rarely fails, invalidates build and tests";
51
+ }
52
+ else if (toolLower === "shell_exec") {
53
+ const command = getStringArg(args, "command", "cmd") ?? "";
54
+ const cmdLower = command.toLowerCase();
55
+ if (cmdLower.includes("tsc") || cmdLower.includes("build") || cmdLower.includes("compile")) {
56
+ // This IS the build — not invalidated
57
+ delta.buildInvalidated = false;
58
+ delta.testInvalidated = false;
59
+ // Count dirty files in currentState to scale failure probability
60
+ let changedFilesCount = 0;
61
+ for (const [, fileState] of currentState.files) {
62
+ if (fileState.exists)
63
+ changedFilesCount++;
64
+ }
65
+ baseProbability = 0.15 + 0.03 * changedFilesCount;
66
+ reasoning = `build command — base 0.15 + 0.03 × ${changedFilesCount} changed files = ${baseProbability.toFixed(3)}`;
67
+ }
68
+ else if (cmdLower.includes("test") ||
69
+ cmdLower.includes("jest") ||
70
+ cmdLower.includes("vitest") ||
71
+ cmdLower.includes("mocha")) {
72
+ // This IS the test run
73
+ delta.testInvalidated = false;
74
+ baseProbability = 0.20;
75
+ reasoning = "test command — higher baseline failure probability (0.20)";
76
+ }
77
+ else {
78
+ baseProbability = 0.10;
79
+ reasoning = "shell command — default failure probability";
80
+ }
81
+ }
82
+ else if (toolLower === "git_ops") {
83
+ const operation = getStringArg(args, "operation", "op") ?? "";
84
+ if (operation === "commit") {
85
+ delta.gitDirty = false;
86
+ baseProbability = 0.02;
87
+ reasoning = "git commit — very unlikely to fail";
88
+ }
89
+ else {
90
+ baseProbability = 0.05;
91
+ reasoning = "git operation — low failure probability";
92
+ }
93
+ }
94
+ else if (toolLower === "grep" ||
95
+ toolLower === "glob" ||
96
+ toolLower === "file_read" ||
97
+ toolLower === "code_search") {
98
+ // Read-only — no state changes
99
+ baseProbability = 0.01;
100
+ reasoning = "read-only tool — minimal failure probability";
101
+ }
102
+ // Apply calibration multiplier if available
103
+ const acc = this.accuracy.get(toolLower);
104
+ const calibratedProbability = acc
105
+ ? Math.min(1.0, baseProbability * acc.multiplier)
106
+ : baseProbability;
107
+ if (acc && acc.multiplier !== 1.0) {
108
+ reasoning += ` (calibrated ×${acc.multiplier.toFixed(2)})`;
109
+ }
110
+ return {
111
+ tool,
112
+ args,
113
+ expectedDelta: delta,
114
+ failureProbability: calibratedProbability,
115
+ reasoning,
116
+ };
117
+ }
118
+ /**
119
+ * After actual execution, calibrate the model's accuracy for this tool type.
120
+ * Uses a simple exponential moving average on the multiplier.
121
+ */
122
+ calibrate(predicted, actual, success) {
123
+ const toolLower = predicted.tool.toLowerCase();
124
+ // Record outcome
125
+ this.history.push({
126
+ predicted,
127
+ actual,
128
+ success,
129
+ timestamp: Date.now(),
130
+ });
131
+ // Update per-tool accuracy
132
+ const existing = this.accuracy.get(toolLower) ?? {
133
+ attempts: 0,
134
+ successes: 0,
135
+ multiplier: 1.0,
136
+ };
137
+ existing.attempts++;
138
+ if (success)
139
+ existing.successes++;
140
+ // Adjust multiplier: if actual failure rate differs from predicted, nudge multiplier
141
+ // Use EMA with alpha = 0.2
142
+ if (existing.attempts >= 3) {
143
+ const actualFailRate = 1 - existing.successes / existing.attempts;
144
+ const predictedFailRate = predicted.failureProbability;
145
+ if (predictedFailRate > 0) {
146
+ const ratio = actualFailRate / predictedFailRate;
147
+ const alpha = 0.2;
148
+ existing.multiplier = existing.multiplier * (1 - alpha) + ratio * alpha;
149
+ // Clamp multiplier to reasonable range
150
+ existing.multiplier = Math.max(0.1, Math.min(5.0, existing.multiplier));
151
+ }
152
+ }
153
+ this.accuracy.set(toolLower, existing);
154
+ }
155
+ /**
156
+ * Predict the final WorldState after executing a sequence of tool calls.
157
+ * Applies each transition's expected delta to produce the final state.
158
+ */
159
+ predictSequence(tools, initialState) {
160
+ // Build a lightweight mutable copy of the state for prediction
161
+ let state = {
162
+ files: new Map(initialState.files),
163
+ build: { ...initialState.build, errors: [...initialState.build.errors] },
164
+ test: { ...initialState.test, failingTests: [...initialState.test.failingTests] },
165
+ git: {
166
+ ...initialState.git,
167
+ stagedFiles: [...initialState.git.stagedFiles],
168
+ uncommittedFiles: [...initialState.git.uncommittedFiles],
169
+ },
170
+ deps: {
171
+ ...initialState.deps,
172
+ missing: [...initialState.deps.missing],
173
+ outdated: [...initialState.deps.outdated],
174
+ },
175
+ timestamp: initialState.timestamp,
176
+ };
177
+ for (const { tool, args } of tools) {
178
+ const transition = this.predict(tool, args, state);
179
+ const delta = transition.expectedDelta;
180
+ // Apply file changes
181
+ for (const path of delta.filesChanged) {
182
+ const existing = state.files.get(path);
183
+ state.files.set(path, {
184
+ path,
185
+ exists: true,
186
+ hash: "",
187
+ lines: existing?.lines ?? 0,
188
+ lastModified: Date.now(),
189
+ });
190
+ // Mark git dirty
191
+ if (delta.gitDirty && !state.git.uncommittedFiles.includes(path)) {
192
+ state.git.uncommittedFiles.push(path);
193
+ }
194
+ }
195
+ for (const path of delta.filesCreated) {
196
+ state.files.set(path, {
197
+ path,
198
+ exists: true,
199
+ hash: "",
200
+ lines: 0,
201
+ lastModified: Date.now(),
202
+ });
203
+ if (delta.gitDirty && !state.git.uncommittedFiles.includes(path)) {
204
+ state.git.uncommittedFiles.push(path);
205
+ }
206
+ }
207
+ for (const path of delta.filesDeleted) {
208
+ const existing = state.files.get(path);
209
+ if (existing) {
210
+ state.files.set(path, { ...existing, exists: false });
211
+ }
212
+ }
213
+ // Apply build/test invalidation
214
+ if (delta.buildInvalidated) {
215
+ state.build = { ...state.build, status: "unknown" };
216
+ }
217
+ if (delta.testInvalidated) {
218
+ state.test = { ...state.test, status: "unknown" };
219
+ }
220
+ // Apply git dirty
221
+ if (delta.gitDirty) {
222
+ state.git = { ...state.git, dirty: true };
223
+ }
224
+ else if (tool.toLowerCase() === "git_ops") {
225
+ // git commit clears dirty
226
+ const operation = typeof args["operation"] === "string" ? args["operation"] : "";
227
+ if (operation === "commit") {
228
+ state.git = {
229
+ ...state.git,
230
+ dirty: false,
231
+ uncommittedFiles: [],
232
+ stagedFiles: [],
233
+ };
234
+ }
235
+ }
236
+ }
237
+ return state;
238
+ }
239
+ }
240
+ //# sourceMappingURL=transition-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transition-model.js","sourceRoot":"","sources":["../../src/world-model/transition-model.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yuaone/core",
3
- "version": "0.5.0",
3
+ "version": "0.7.0",
4
4
  "description": "YUAN Agent Core Runtime",
5
5
  "license": "AGPL-3.0",
6
6
  "type": "module",