@yuaone/core 0.1.3 → 0.3.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/dist/agent-loop.d.ts +152 -0
- package/dist/agent-loop.d.ts.map +1 -1
- package/dist/agent-loop.js +893 -9
- package/dist/agent-loop.js.map +1 -1
- package/dist/benchmark-runner.d.ts +141 -0
- package/dist/benchmark-runner.d.ts.map +1 -0
- package/dist/benchmark-runner.js +526 -0
- package/dist/benchmark-runner.js.map +1 -0
- package/dist/codebase-context.d.ts +49 -0
- package/dist/codebase-context.d.ts.map +1 -1
- package/dist/codebase-context.js +146 -0
- package/dist/codebase-context.js.map +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -1
- package/dist/context-budget.d.ts +1 -1
- package/dist/context-budget.d.ts.map +1 -1
- package/dist/context-budget.js +4 -2
- package/dist/context-budget.js.map +1 -1
- package/dist/context-compressor.d.ts +1 -1
- package/dist/context-compressor.d.ts.map +1 -1
- package/dist/context-compressor.js +5 -3
- package/dist/context-compressor.js.map +1 -1
- package/dist/context-manager.d.ts +7 -1
- package/dist/context-manager.d.ts.map +1 -1
- package/dist/context-manager.js +34 -2
- package/dist/context-manager.js.map +1 -1
- package/dist/continuation-engine.d.ts +168 -0
- package/dist/continuation-engine.d.ts.map +1 -0
- package/dist/continuation-engine.js +421 -0
- package/dist/continuation-engine.js.map +1 -0
- package/dist/cost-optimizer.d.ts +159 -0
- package/dist/cost-optimizer.d.ts.map +1 -0
- package/dist/cost-optimizer.js +406 -0
- package/dist/cost-optimizer.js.map +1 -0
- package/dist/execution-engine.d.ts.map +1 -1
- package/dist/execution-engine.js +9 -4
- package/dist/execution-engine.js.map +1 -1
- package/dist/execution-policy-engine.d.ts +133 -0
- package/dist/execution-policy-engine.d.ts.map +1 -0
- package/dist/execution-policy-engine.js +367 -0
- package/dist/execution-policy-engine.js.map +1 -0
- package/dist/failure-recovery.d.ts +228 -0
- package/dist/failure-recovery.d.ts.map +1 -0
- package/dist/failure-recovery.js +664 -0
- package/dist/failure-recovery.js.map +1 -0
- package/dist/hierarchical-planner.d.ts +69 -1
- package/dist/hierarchical-planner.d.ts.map +1 -1
- package/dist/hierarchical-planner.js +117 -0
- package/dist/hierarchical-planner.js.map +1 -1
- package/dist/impact-analyzer.d.ts +92 -0
- package/dist/impact-analyzer.d.ts.map +1 -0
- package/dist/impact-analyzer.js +615 -0
- package/dist/impact-analyzer.js.map +1 -0
- package/dist/index.d.ts +28 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -1
- package/dist/llm-client.d.ts +1 -1
- package/dist/llm-client.d.ts.map +1 -1
- package/dist/llm-client.js +74 -7
- package/dist/llm-client.js.map +1 -1
- package/dist/memory-updater.d.ts +189 -0
- package/dist/memory-updater.d.ts.map +1 -0
- package/dist/memory-updater.js +481 -0
- package/dist/memory-updater.js.map +1 -0
- package/dist/prompt-defense.d.ts +59 -0
- package/dist/prompt-defense.d.ts.map +1 -0
- package/dist/prompt-defense.js +311 -0
- package/dist/prompt-defense.js.map +1 -0
- package/dist/reflexion.d.ts +211 -0
- package/dist/reflexion.d.ts.map +1 -0
- package/dist/reflexion.js +559 -0
- package/dist/reflexion.js.map +1 -0
- package/dist/system-prompt.d.ts +19 -3
- package/dist/system-prompt.d.ts.map +1 -1
- package/dist/system-prompt.js +203 -38
- package/dist/system-prompt.js.map +1 -1
- package/dist/task-classifier.d.ts +92 -0
- package/dist/task-classifier.d.ts.map +1 -0
- package/dist/task-classifier.js +566 -0
- package/dist/task-classifier.js.map +1 -0
- package/dist/token-budget.d.ts +131 -0
- package/dist/token-budget.d.ts.map +1 -0
- package/dist/token-budget.js +321 -0
- package/dist/token-budget.js.map +1 -0
- package/dist/types.d.ts +20 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +18 -1
- package/dist/types.js.map +1 -1
- package/dist/world-state.d.ts +87 -0
- package/dist/world-state.d.ts.map +1 -0
- package/dist/world-state.js +435 -0
- package/dist/world-state.js.map +1 -0
- package/package.json +11 -21
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module world-state
|
|
3
|
+
* @description Collects current project state (git, build, test, deps, files, errors)
|
|
4
|
+
* for injection into the agent's system prompt. Pure data collector — no events emitted.
|
|
5
|
+
*/
|
|
6
|
+
export interface WorldStateSnapshot {
|
|
7
|
+
git: {
|
|
8
|
+
branch: string;
|
|
9
|
+
status: "clean" | "dirty";
|
|
10
|
+
uncommittedFiles: string[];
|
|
11
|
+
recentCommits: Array<{
|
|
12
|
+
hash: string;
|
|
13
|
+
message: string;
|
|
14
|
+
date: string;
|
|
15
|
+
}>;
|
|
16
|
+
hasConflicts: boolean;
|
|
17
|
+
};
|
|
18
|
+
build: {
|
|
19
|
+
lastResult: "pass" | "fail" | "unknown";
|
|
20
|
+
errors: string[];
|
|
21
|
+
buildTool: "tsc" | "webpack" | "vite" | "esbuild" | "unknown";
|
|
22
|
+
};
|
|
23
|
+
test: {
|
|
24
|
+
lastResult: "pass" | "fail" | "unknown";
|
|
25
|
+
failingTests: string[];
|
|
26
|
+
testRunner: "jest" | "vitest" | "mocha" | "node:test" | "unknown";
|
|
27
|
+
};
|
|
28
|
+
deps: {
|
|
29
|
+
packageManager: "npm" | "pnpm" | "yarn" | "bun" | "unknown";
|
|
30
|
+
outdated: string[];
|
|
31
|
+
missing: string[];
|
|
32
|
+
};
|
|
33
|
+
files: {
|
|
34
|
+
recentlyChanged: string[];
|
|
35
|
+
totalFiles: number;
|
|
36
|
+
};
|
|
37
|
+
errors: {
|
|
38
|
+
recentRuntimeErrors: string[];
|
|
39
|
+
};
|
|
40
|
+
collectedAt: string;
|
|
41
|
+
}
|
|
42
|
+
export interface WorldStateConfig {
|
|
43
|
+
projectPath: string;
|
|
44
|
+
maxRecentCommits?: number;
|
|
45
|
+
maxRecentFiles?: number;
|
|
46
|
+
skipBuild?: boolean;
|
|
47
|
+
skipTest?: boolean;
|
|
48
|
+
skipDeps?: boolean;
|
|
49
|
+
timeoutMs?: number;
|
|
50
|
+
}
|
|
51
|
+
export declare class WorldStateCollector {
|
|
52
|
+
private readonly projectPath;
|
|
53
|
+
private readonly maxRecentCommits;
|
|
54
|
+
private readonly maxRecentFiles;
|
|
55
|
+
private readonly skipBuild;
|
|
56
|
+
private readonly skipTest;
|
|
57
|
+
private readonly skipDeps;
|
|
58
|
+
private readonly timeoutMs;
|
|
59
|
+
constructor(config: WorldStateConfig);
|
|
60
|
+
/**
|
|
61
|
+
* Collect all project state. Never throws — failed collectors return defaults.
|
|
62
|
+
*/
|
|
63
|
+
collect(): Promise<WorldStateSnapshot>;
|
|
64
|
+
/**
|
|
65
|
+
* Format snapshot as compact markdown for system prompt injection.
|
|
66
|
+
*/
|
|
67
|
+
formatForPrompt(state: WorldStateSnapshot): string;
|
|
68
|
+
collectGit(): Promise<WorldStateSnapshot["git"]>;
|
|
69
|
+
collectBuild(): Promise<WorldStateSnapshot["build"]>;
|
|
70
|
+
collectTest(): Promise<WorldStateSnapshot["test"]>;
|
|
71
|
+
collectDeps(): Promise<WorldStateSnapshot["deps"]>;
|
|
72
|
+
collectFiles(): Promise<WorldStateSnapshot["files"]>;
|
|
73
|
+
private detectBuildTool;
|
|
74
|
+
/**
|
|
75
|
+
* Check common build output locations for errors without running a build.
|
|
76
|
+
* Looks for tsbuildinfo, .next/error, dist/.error, etc.
|
|
77
|
+
*/
|
|
78
|
+
private checkBuildArtifacts;
|
|
79
|
+
private detectTestRunner;
|
|
80
|
+
private detectPackageManager;
|
|
81
|
+
/**
|
|
82
|
+
* Quick scan for missing dependencies by checking node_modules existence.
|
|
83
|
+
* Does NOT parse imports — that would be too slow for a state snapshot.
|
|
84
|
+
*/
|
|
85
|
+
private findMissingDeps;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=world-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"world-state.d.ts","sourceRoot":"","sources":["../src/world-state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE;QACH,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;QAC1B,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,aAAa,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACtE,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;IACF,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;QACxC,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;KAC/D,CAAC;IACF,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;QACxC,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;KACnE,CAAC;IACF,IAAI,EAAE;QACJ,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;QAC5D,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IACF,KAAK,EAAE;QACL,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,MAAM,EAAE;QACN,mBAAmB,EAAE,MAAM,EAAE,CAAC;KAC/B,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA+DD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,MAAM,EAAE,gBAAgB;IAUpC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAoB5C;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM;IAqE5C,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAiEhD,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAUpD,WAAW,IAAI,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IASlD,WAAW,IAAI,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAUlD,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAoC5C,eAAe;IAwB7B;;;OAGG;YACW,mBAAmB;YAuDnB,gBAAgB;YA0BhB,oBAAoB;IA2BlC;;;OAGG;YACW,eAAe;CA8B9B"}
|
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module world-state
|
|
3
|
+
* @description Collects current project state (git, build, test, deps, files, errors)
|
|
4
|
+
* for injection into the agent's system prompt. Pure data collector — no events emitted.
|
|
5
|
+
*/
|
|
6
|
+
import { execFile } from "node:child_process";
|
|
7
|
+
import { promisify } from "node:util";
|
|
8
|
+
import { access, readFile } from "node:fs/promises";
|
|
9
|
+
import { join } from "node:path";
|
|
10
|
+
const execFileAsync = promisify(execFile);
|
|
11
|
+
// ─── Defaults ───
|
|
12
|
+
const DEFAULT_MAX_RECENT_COMMITS = 10;
|
|
13
|
+
const DEFAULT_MAX_RECENT_FILES = 20;
|
|
14
|
+
const DEFAULT_TIMEOUT_MS = 10_000;
|
|
15
|
+
// ─── Helpers ───
|
|
16
|
+
/**
|
|
17
|
+
* Run a command with timeout via Promise.race.
|
|
18
|
+
* Returns stdout on success, null on any failure.
|
|
19
|
+
*/
|
|
20
|
+
async function runCmd(cmd, args, cwd, timeoutMs) {
|
|
21
|
+
try {
|
|
22
|
+
const result = await Promise.race([
|
|
23
|
+
execFileAsync(cmd, args, {
|
|
24
|
+
cwd,
|
|
25
|
+
maxBuffer: 1024 * 1024, // 1 MB
|
|
26
|
+
timeout: timeoutMs,
|
|
27
|
+
}),
|
|
28
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error("timeout")), timeoutMs)),
|
|
29
|
+
]);
|
|
30
|
+
return result.stdout;
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Check if a file exists at the given path.
|
|
38
|
+
*/
|
|
39
|
+
async function fileExists(path) {
|
|
40
|
+
try {
|
|
41
|
+
await access(path);
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Safely read and parse a JSON file. Returns null on failure.
|
|
50
|
+
*/
|
|
51
|
+
async function readJson(path) {
|
|
52
|
+
try {
|
|
53
|
+
const raw = await readFile(path, "utf-8");
|
|
54
|
+
return JSON.parse(raw);
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// ─── WorldStateCollector ───
|
|
61
|
+
export class WorldStateCollector {
|
|
62
|
+
projectPath;
|
|
63
|
+
maxRecentCommits;
|
|
64
|
+
maxRecentFiles;
|
|
65
|
+
skipBuild;
|
|
66
|
+
skipTest;
|
|
67
|
+
skipDeps;
|
|
68
|
+
timeoutMs;
|
|
69
|
+
constructor(config) {
|
|
70
|
+
this.projectPath = config.projectPath;
|
|
71
|
+
this.maxRecentCommits = config.maxRecentCommits ?? DEFAULT_MAX_RECENT_COMMITS;
|
|
72
|
+
this.maxRecentFiles = config.maxRecentFiles ?? DEFAULT_MAX_RECENT_FILES;
|
|
73
|
+
this.skipBuild = config.skipBuild ?? false;
|
|
74
|
+
this.skipTest = config.skipTest ?? true;
|
|
75
|
+
this.skipDeps = config.skipDeps ?? false;
|
|
76
|
+
this.timeoutMs = config.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Collect all project state. Never throws — failed collectors return defaults.
|
|
80
|
+
*/
|
|
81
|
+
async collect() {
|
|
82
|
+
const [git, build, test, deps, files] = await Promise.all([
|
|
83
|
+
this.collectGit(),
|
|
84
|
+
this.skipBuild ? defaultBuild() : this.collectBuild(),
|
|
85
|
+
this.skipTest ? defaultTest() : this.collectTest(),
|
|
86
|
+
this.skipDeps ? defaultDeps() : this.collectDeps(),
|
|
87
|
+
this.collectFiles(),
|
|
88
|
+
]);
|
|
89
|
+
return {
|
|
90
|
+
git,
|
|
91
|
+
build,
|
|
92
|
+
test,
|
|
93
|
+
deps,
|
|
94
|
+
files,
|
|
95
|
+
errors: { recentRuntimeErrors: [] },
|
|
96
|
+
collectedAt: new Date().toISOString(),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Format snapshot as compact markdown for system prompt injection.
|
|
101
|
+
*/
|
|
102
|
+
formatForPrompt(state) {
|
|
103
|
+
const lines = ["## Project State"];
|
|
104
|
+
// Git
|
|
105
|
+
const uncommittedCount = state.git.uncommittedFiles.length;
|
|
106
|
+
const branchInfo = uncommittedCount > 0
|
|
107
|
+
? `${state.git.branch} (${state.git.status}, ${uncommittedCount} uncommitted file${uncommittedCount !== 1 ? "s" : ""})`
|
|
108
|
+
: `${state.git.branch} (${state.git.status})`;
|
|
109
|
+
lines.push(`- **Branch:** ${branchInfo}`);
|
|
110
|
+
// Build
|
|
111
|
+
if (state.build.buildTool !== "unknown" || state.build.lastResult !== "unknown") {
|
|
112
|
+
const buildStr = state.build.buildTool !== "unknown"
|
|
113
|
+
? `${state.build.buildTool} — last: ${state.build.lastResult}`
|
|
114
|
+
: `last: ${state.build.lastResult}`;
|
|
115
|
+
lines.push(`- **Build:** ${buildStr}`);
|
|
116
|
+
if (state.build.errors.length > 0) {
|
|
117
|
+
lines.push(` - Errors: ${state.build.errors.length} (${state.build.errors.slice(0, 3).join("; ")}${state.build.errors.length > 3 ? "…" : ""})`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// Tests
|
|
121
|
+
const testSuffix = state.test.lastResult === "unknown" ? " (not run)" : "";
|
|
122
|
+
if (state.test.testRunner !== "unknown" || state.test.lastResult !== "unknown") {
|
|
123
|
+
const testStr = state.test.testRunner !== "unknown"
|
|
124
|
+
? `${state.test.testRunner} — last: ${state.test.lastResult}${testSuffix}`
|
|
125
|
+
: `last: ${state.test.lastResult}${testSuffix}`;
|
|
126
|
+
lines.push(`- **Tests:** ${testStr}`);
|
|
127
|
+
if (state.test.failingTests.length > 0) {
|
|
128
|
+
lines.push(` - Failing: ${state.test.failingTests.slice(0, 5).join(", ")}${state.test.failingTests.length > 5 ? "…" : ""}`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// Deps
|
|
132
|
+
if (state.deps.packageManager !== "unknown") {
|
|
133
|
+
let depStr = state.deps.packageManager;
|
|
134
|
+
if (state.deps.outdated.length > 0) {
|
|
135
|
+
depStr += ` — ${state.deps.outdated.length} outdated`;
|
|
136
|
+
}
|
|
137
|
+
if (state.deps.missing.length > 0) {
|
|
138
|
+
depStr += ` — ${state.deps.missing.length} missing`;
|
|
139
|
+
}
|
|
140
|
+
lines.push(`- **Deps:** ${depStr}`);
|
|
141
|
+
}
|
|
142
|
+
// Files
|
|
143
|
+
if (state.files.recentlyChanged.length > 0) {
|
|
144
|
+
lines.push(`- **Recent changes:** ${state.files.recentlyChanged.length} file${state.files.recentlyChanged.length !== 1 ? "s" : ""} changed in last 5 commits`);
|
|
145
|
+
}
|
|
146
|
+
// Conflicts
|
|
147
|
+
if (state.git.hasConflicts) {
|
|
148
|
+
lines.push("- **Conflicts:** YES — resolve before proceeding");
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
lines.push("- **Conflicts:** none");
|
|
152
|
+
}
|
|
153
|
+
// Runtime errors
|
|
154
|
+
if (state.errors.recentRuntimeErrors.length > 0) {
|
|
155
|
+
lines.push(`- **Runtime errors:** ${state.errors.recentRuntimeErrors.length}`);
|
|
156
|
+
}
|
|
157
|
+
return lines.join("\n");
|
|
158
|
+
}
|
|
159
|
+
// ─── Individual Collectors ───
|
|
160
|
+
async collectGit() {
|
|
161
|
+
try {
|
|
162
|
+
// Run all git commands in parallel
|
|
163
|
+
const [branchOut, statusOut, logOut, conflictOut] = await Promise.all([
|
|
164
|
+
runCmd("git", ["rev-parse", "--abbrev-ref", "HEAD"], this.projectPath, this.timeoutMs),
|
|
165
|
+
runCmd("git", ["status", "--porcelain"], this.projectPath, this.timeoutMs),
|
|
166
|
+
runCmd("git", ["log", `--oneline`, `--format=%H|%s|%aI`, `-${this.maxRecentCommits}`], this.projectPath, this.timeoutMs),
|
|
167
|
+
runCmd("git", ["diff", "--name-only", "--diff-filter=U"], this.projectPath, this.timeoutMs),
|
|
168
|
+
]);
|
|
169
|
+
// Branch
|
|
170
|
+
const branch = branchOut?.trim() || "unknown";
|
|
171
|
+
// Uncommitted files from porcelain status
|
|
172
|
+
const uncommittedFiles = [];
|
|
173
|
+
if (statusOut) {
|
|
174
|
+
for (const line of statusOut.split("\n")) {
|
|
175
|
+
const trimmed = line.trim();
|
|
176
|
+
if (trimmed.length > 0) {
|
|
177
|
+
// porcelain format: XY filename (first 3 chars are status + space)
|
|
178
|
+
const file = line.length > 3 ? line.substring(3).trim() : trimmed;
|
|
179
|
+
uncommittedFiles.push(file);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
const status = uncommittedFiles.length > 0 ? "dirty" : "clean";
|
|
184
|
+
// Recent commits
|
|
185
|
+
const recentCommits = [];
|
|
186
|
+
if (logOut) {
|
|
187
|
+
for (const line of logOut.split("\n")) {
|
|
188
|
+
const trimmed = line.trim();
|
|
189
|
+
if (!trimmed)
|
|
190
|
+
continue;
|
|
191
|
+
const parts = trimmed.split("|");
|
|
192
|
+
if (parts.length >= 3) {
|
|
193
|
+
recentCommits.push({
|
|
194
|
+
hash: parts[0].substring(0, 12),
|
|
195
|
+
message: parts[1],
|
|
196
|
+
date: parts[2],
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
// Merge conflicts
|
|
202
|
+
const hasConflicts = conflictOut != null && conflictOut.trim().length > 0;
|
|
203
|
+
return { branch, status, uncommittedFiles, recentCommits, hasConflicts };
|
|
204
|
+
}
|
|
205
|
+
catch {
|
|
206
|
+
return {
|
|
207
|
+
branch: "unknown",
|
|
208
|
+
status: "clean",
|
|
209
|
+
uncommittedFiles: [],
|
|
210
|
+
recentCommits: [],
|
|
211
|
+
hasConflicts: false,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
async collectBuild() {
|
|
216
|
+
try {
|
|
217
|
+
const buildTool = await this.detectBuildTool();
|
|
218
|
+
const { lastResult, errors } = await this.checkBuildArtifacts(buildTool);
|
|
219
|
+
return { lastResult, errors, buildTool };
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
return defaultBuild();
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
async collectTest() {
|
|
226
|
+
try {
|
|
227
|
+
const testRunner = await this.detectTestRunner();
|
|
228
|
+
return { lastResult: "unknown", failingTests: [], testRunner };
|
|
229
|
+
}
|
|
230
|
+
catch {
|
|
231
|
+
return defaultTest();
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
async collectDeps() {
|
|
235
|
+
try {
|
|
236
|
+
const packageManager = await this.detectPackageManager();
|
|
237
|
+
const missing = await this.findMissingDeps();
|
|
238
|
+
return { packageManager, outdated: [], missing };
|
|
239
|
+
}
|
|
240
|
+
catch {
|
|
241
|
+
return defaultDeps();
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
async collectFiles() {
|
|
245
|
+
try {
|
|
246
|
+
const [diffOut, countOut] = await Promise.all([
|
|
247
|
+
runCmd("git", ["diff", "--name-only", `HEAD~5..HEAD`], this.projectPath, this.timeoutMs),
|
|
248
|
+
runCmd("git", ["ls-files"], this.projectPath, this.timeoutMs),
|
|
249
|
+
]);
|
|
250
|
+
const recentlyChanged = [];
|
|
251
|
+
if (diffOut) {
|
|
252
|
+
for (const line of diffOut.split("\n")) {
|
|
253
|
+
const trimmed = line.trim();
|
|
254
|
+
if (trimmed && recentlyChanged.length < this.maxRecentFiles) {
|
|
255
|
+
recentlyChanged.push(trimmed);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
// Count tracked files
|
|
260
|
+
let totalFiles = 0;
|
|
261
|
+
if (countOut) {
|
|
262
|
+
totalFiles = countOut.split("\n").filter((l) => l.trim().length > 0).length;
|
|
263
|
+
}
|
|
264
|
+
return { recentlyChanged, totalFiles };
|
|
265
|
+
}
|
|
266
|
+
catch {
|
|
267
|
+
return { recentlyChanged: [], totalFiles: 0 };
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
// ─── Detection Helpers ───
|
|
271
|
+
async detectBuildTool() {
|
|
272
|
+
const checks = await Promise.all([
|
|
273
|
+
fileExists(join(this.projectPath, "tsconfig.json")),
|
|
274
|
+
fileExists(join(this.projectPath, "vite.config.ts")).then((r) => r ? r : fileExists(join(this.projectPath, "vite.config.js"))),
|
|
275
|
+
fileExists(join(this.projectPath, "webpack.config.js")).then((r) => r ? r : fileExists(join(this.projectPath, "webpack.config.ts"))),
|
|
276
|
+
fileExists(join(this.projectPath, "esbuild.config.js")).then((r) => r ? r : fileExists(join(this.projectPath, "esbuild.config.mjs"))),
|
|
277
|
+
]);
|
|
278
|
+
const [hasTsConfig, hasVite, hasWebpack, hasEsbuild] = checks;
|
|
279
|
+
// Prefer more specific build tool over tsc
|
|
280
|
+
if (hasVite)
|
|
281
|
+
return "vite";
|
|
282
|
+
if (hasWebpack)
|
|
283
|
+
return "webpack";
|
|
284
|
+
if (hasEsbuild)
|
|
285
|
+
return "esbuild";
|
|
286
|
+
if (hasTsConfig)
|
|
287
|
+
return "tsc";
|
|
288
|
+
return "unknown";
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Check common build output locations for errors without running a build.
|
|
292
|
+
* Looks for tsbuildinfo, .next/error, dist/.error, etc.
|
|
293
|
+
*/
|
|
294
|
+
async checkBuildArtifacts(buildTool) {
|
|
295
|
+
const errors = [];
|
|
296
|
+
// Check tsconfig.tsbuildinfo for last tsc run
|
|
297
|
+
if (buildTool === "tsc") {
|
|
298
|
+
const tsBuildInfo = join(this.projectPath, "tsconfig.tsbuildinfo");
|
|
299
|
+
if (await fileExists(tsBuildInfo)) {
|
|
300
|
+
// tsbuildinfo exists means last incremental build passed
|
|
301
|
+
return { lastResult: "pass", errors: [] };
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
// Check .next directory for Next.js build errors
|
|
305
|
+
const nextBuildId = join(this.projectPath, ".next", "BUILD_ID");
|
|
306
|
+
if (await fileExists(nextBuildId)) {
|
|
307
|
+
return { lastResult: "pass", errors: [] };
|
|
308
|
+
}
|
|
309
|
+
// Check for dist directory as sign of successful build
|
|
310
|
+
const distDir = join(this.projectPath, "dist");
|
|
311
|
+
if (await fileExists(distDir)) {
|
|
312
|
+
return { lastResult: "pass", errors: [] };
|
|
313
|
+
}
|
|
314
|
+
// Try running a quick tsc --noEmit to check types (only for tsc)
|
|
315
|
+
if (buildTool === "tsc") {
|
|
316
|
+
const tscOut = await runCmd("npx", ["tsc", "--noEmit", "--pretty", "false"], this.projectPath, this.timeoutMs);
|
|
317
|
+
if (tscOut === null) {
|
|
318
|
+
// tsc failed or timed out — try to get error output
|
|
319
|
+
return { lastResult: "unknown", errors: [] };
|
|
320
|
+
}
|
|
321
|
+
if (tscOut.trim().length === 0) {
|
|
322
|
+
return { lastResult: "pass", errors: [] };
|
|
323
|
+
}
|
|
324
|
+
// Parse tsc errors (first 10)
|
|
325
|
+
const errLines = tscOut
|
|
326
|
+
.split("\n")
|
|
327
|
+
.filter((l) => l.includes("error TS"))
|
|
328
|
+
.slice(0, 10);
|
|
329
|
+
return {
|
|
330
|
+
lastResult: errLines.length > 0 ? "fail" : "pass",
|
|
331
|
+
errors: errLines,
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
return { lastResult: "unknown", errors };
|
|
335
|
+
}
|
|
336
|
+
async detectTestRunner() {
|
|
337
|
+
const pkgJson = await readJson(join(this.projectPath, "package.json"));
|
|
338
|
+
if (!pkgJson)
|
|
339
|
+
return "unknown";
|
|
340
|
+
// Check scripts.test
|
|
341
|
+
const scripts = pkgJson.scripts;
|
|
342
|
+
if (scripts?.test) {
|
|
343
|
+
const testScript = scripts.test.toLowerCase();
|
|
344
|
+
if (testScript.includes("vitest"))
|
|
345
|
+
return "vitest";
|
|
346
|
+
if (testScript.includes("jest"))
|
|
347
|
+
return "jest";
|
|
348
|
+
if (testScript.includes("mocha"))
|
|
349
|
+
return "mocha";
|
|
350
|
+
if (testScript.includes("node --test") || testScript.includes("node:test"))
|
|
351
|
+
return "node:test";
|
|
352
|
+
}
|
|
353
|
+
// Check devDependencies
|
|
354
|
+
const devDeps = (pkgJson.devDependencies ?? {});
|
|
355
|
+
const deps = (pkgJson.dependencies ?? {});
|
|
356
|
+
const allDeps = { ...deps, ...devDeps };
|
|
357
|
+
if ("vitest" in allDeps)
|
|
358
|
+
return "vitest";
|
|
359
|
+
if ("jest" in allDeps)
|
|
360
|
+
return "jest";
|
|
361
|
+
if ("mocha" in allDeps)
|
|
362
|
+
return "mocha";
|
|
363
|
+
return "unknown";
|
|
364
|
+
}
|
|
365
|
+
async detectPackageManager() {
|
|
366
|
+
// 1. Check package.json packageManager field
|
|
367
|
+
const pkgJson = await readJson(join(this.projectPath, "package.json"));
|
|
368
|
+
if (pkgJson?.packageManager) {
|
|
369
|
+
const pm = pkgJson.packageManager.toLowerCase();
|
|
370
|
+
if (pm.startsWith("pnpm"))
|
|
371
|
+
return "pnpm";
|
|
372
|
+
if (pm.startsWith("yarn"))
|
|
373
|
+
return "yarn";
|
|
374
|
+
if (pm.startsWith("npm"))
|
|
375
|
+
return "npm";
|
|
376
|
+
if (pm.startsWith("bun"))
|
|
377
|
+
return "bun";
|
|
378
|
+
}
|
|
379
|
+
// 2. Check lock files
|
|
380
|
+
const lockChecks = await Promise.all([
|
|
381
|
+
fileExists(join(this.projectPath, "pnpm-lock.yaml")),
|
|
382
|
+
fileExists(join(this.projectPath, "yarn.lock")),
|
|
383
|
+
fileExists(join(this.projectPath, "package-lock.json")),
|
|
384
|
+
fileExists(join(this.projectPath, "bun.lockb")),
|
|
385
|
+
]);
|
|
386
|
+
if (lockChecks[0])
|
|
387
|
+
return "pnpm";
|
|
388
|
+
if (lockChecks[1])
|
|
389
|
+
return "yarn";
|
|
390
|
+
if (lockChecks[2])
|
|
391
|
+
return "npm";
|
|
392
|
+
if (lockChecks[3])
|
|
393
|
+
return "bun";
|
|
394
|
+
return "unknown";
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Quick scan for missing dependencies by checking node_modules existence.
|
|
398
|
+
* Does NOT parse imports — that would be too slow for a state snapshot.
|
|
399
|
+
*/
|
|
400
|
+
async findMissingDeps() {
|
|
401
|
+
const missing = [];
|
|
402
|
+
const nodeModulesPath = join(this.projectPath, "node_modules");
|
|
403
|
+
if (!(await fileExists(nodeModulesPath))) {
|
|
404
|
+
missing.push("(node_modules missing — run install)");
|
|
405
|
+
return missing;
|
|
406
|
+
}
|
|
407
|
+
// Check a few key deps from package.json
|
|
408
|
+
const pkgJson = await readJson(join(this.projectPath, "package.json"));
|
|
409
|
+
if (!pkgJson)
|
|
410
|
+
return missing;
|
|
411
|
+
const deps = (pkgJson.dependencies ?? {});
|
|
412
|
+
const depNames = Object.keys(deps).slice(0, 20); // Check first 20
|
|
413
|
+
const checks = await Promise.all(depNames.map(async (name) => {
|
|
414
|
+
const depPath = join(nodeModulesPath, name);
|
|
415
|
+
const exists = await fileExists(depPath);
|
|
416
|
+
return exists ? null : name;
|
|
417
|
+
}));
|
|
418
|
+
for (const name of checks) {
|
|
419
|
+
if (name)
|
|
420
|
+
missing.push(name);
|
|
421
|
+
}
|
|
422
|
+
return missing;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
// ─── Default State Factories ───
|
|
426
|
+
function defaultBuild() {
|
|
427
|
+
return { lastResult: "unknown", errors: [], buildTool: "unknown" };
|
|
428
|
+
}
|
|
429
|
+
function defaultTest() {
|
|
430
|
+
return { lastResult: "unknown", failingTests: [], testRunner: "unknown" };
|
|
431
|
+
}
|
|
432
|
+
function defaultDeps() {
|
|
433
|
+
return { packageManager: "unknown", outdated: [], missing: [] };
|
|
434
|
+
}
|
|
435
|
+
//# sourceMappingURL=world-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"world-state.js","sourceRoot":"","sources":["../src/world-state.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yuaone/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "YUAN Agent Core Runtime",
|
|
5
5
|
"license": "AGPL-3.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"types": "dist/index.d.ts",
|
|
9
|
-
"files": [
|
|
10
|
-
"dist/",
|
|
11
|
-
"README.md",
|
|
12
|
-
"LICENSE"
|
|
13
|
-
],
|
|
9
|
+
"files": ["dist/", "README.md", "LICENSE"],
|
|
14
10
|
"publishConfig": {
|
|
15
11
|
"access": "public"
|
|
16
12
|
},
|
|
@@ -23,16 +19,17 @@
|
|
|
23
19
|
"bugs": {
|
|
24
20
|
"url": "https://github.com/yuaone/yuan/issues"
|
|
25
21
|
},
|
|
26
|
-
"keywords": [
|
|
27
|
-
"coding-agent",
|
|
28
|
-
"ai",
|
|
29
|
-
"autonomous",
|
|
30
|
-
"agent-loop",
|
|
31
|
-
"llm"
|
|
32
|
-
],
|
|
22
|
+
"keywords": ["coding-agent", "ai", "autonomous", "agent-loop", "llm"],
|
|
33
23
|
"engines": {
|
|
34
24
|
"node": ">=18"
|
|
35
25
|
},
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "tsc",
|
|
28
|
+
"dev": "tsc --watch",
|
|
29
|
+
"clean": "rm -rf dist",
|
|
30
|
+
"lint": "tsc --noEmit",
|
|
31
|
+
"test": "node --test dist/__tests__/*.test.js"
|
|
32
|
+
},
|
|
36
33
|
"dependencies": {
|
|
37
34
|
"chokidar": "^5.0.0",
|
|
38
35
|
"openai": "^6.27.0",
|
|
@@ -40,12 +37,5 @@
|
|
|
40
37
|
},
|
|
41
38
|
"devDependencies": {
|
|
42
39
|
"typescript": "^5.7.0"
|
|
43
|
-
},
|
|
44
|
-
"scripts": {
|
|
45
|
-
"build": "tsc",
|
|
46
|
-
"dev": "tsc --watch",
|
|
47
|
-
"clean": "rm -rf dist",
|
|
48
|
-
"lint": "tsc --noEmit",
|
|
49
|
-
"test": "node --test dist/__tests__/*.test.js"
|
|
50
40
|
}
|
|
51
|
-
}
|
|
41
|
+
}
|