@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.
Files changed (95) hide show
  1. package/dist/agent-loop.d.ts +152 -0
  2. package/dist/agent-loop.d.ts.map +1 -1
  3. package/dist/agent-loop.js +893 -9
  4. package/dist/agent-loop.js.map +1 -1
  5. package/dist/benchmark-runner.d.ts +141 -0
  6. package/dist/benchmark-runner.d.ts.map +1 -0
  7. package/dist/benchmark-runner.js +526 -0
  8. package/dist/benchmark-runner.js.map +1 -0
  9. package/dist/codebase-context.d.ts +49 -0
  10. package/dist/codebase-context.d.ts.map +1 -1
  11. package/dist/codebase-context.js +146 -0
  12. package/dist/codebase-context.js.map +1 -1
  13. package/dist/constants.d.ts.map +1 -1
  14. package/dist/constants.js +8 -0
  15. package/dist/constants.js.map +1 -1
  16. package/dist/context-budget.d.ts +1 -1
  17. package/dist/context-budget.d.ts.map +1 -1
  18. package/dist/context-budget.js +4 -2
  19. package/dist/context-budget.js.map +1 -1
  20. package/dist/context-compressor.d.ts +1 -1
  21. package/dist/context-compressor.d.ts.map +1 -1
  22. package/dist/context-compressor.js +5 -3
  23. package/dist/context-compressor.js.map +1 -1
  24. package/dist/context-manager.d.ts +7 -1
  25. package/dist/context-manager.d.ts.map +1 -1
  26. package/dist/context-manager.js +34 -2
  27. package/dist/context-manager.js.map +1 -1
  28. package/dist/continuation-engine.d.ts +168 -0
  29. package/dist/continuation-engine.d.ts.map +1 -0
  30. package/dist/continuation-engine.js +421 -0
  31. package/dist/continuation-engine.js.map +1 -0
  32. package/dist/cost-optimizer.d.ts +159 -0
  33. package/dist/cost-optimizer.d.ts.map +1 -0
  34. package/dist/cost-optimizer.js +406 -0
  35. package/dist/cost-optimizer.js.map +1 -0
  36. package/dist/execution-engine.d.ts.map +1 -1
  37. package/dist/execution-engine.js +9 -4
  38. package/dist/execution-engine.js.map +1 -1
  39. package/dist/execution-policy-engine.d.ts +133 -0
  40. package/dist/execution-policy-engine.d.ts.map +1 -0
  41. package/dist/execution-policy-engine.js +367 -0
  42. package/dist/execution-policy-engine.js.map +1 -0
  43. package/dist/failure-recovery.d.ts +228 -0
  44. package/dist/failure-recovery.d.ts.map +1 -0
  45. package/dist/failure-recovery.js +664 -0
  46. package/dist/failure-recovery.js.map +1 -0
  47. package/dist/hierarchical-planner.d.ts +69 -1
  48. package/dist/hierarchical-planner.d.ts.map +1 -1
  49. package/dist/hierarchical-planner.js +117 -0
  50. package/dist/hierarchical-planner.js.map +1 -1
  51. package/dist/impact-analyzer.d.ts +92 -0
  52. package/dist/impact-analyzer.d.ts.map +1 -0
  53. package/dist/impact-analyzer.js +615 -0
  54. package/dist/impact-analyzer.js.map +1 -0
  55. package/dist/index.d.ts +28 -3
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +27 -0
  58. package/dist/index.js.map +1 -1
  59. package/dist/llm-client.d.ts +1 -1
  60. package/dist/llm-client.d.ts.map +1 -1
  61. package/dist/llm-client.js +74 -7
  62. package/dist/llm-client.js.map +1 -1
  63. package/dist/memory-updater.d.ts +189 -0
  64. package/dist/memory-updater.d.ts.map +1 -0
  65. package/dist/memory-updater.js +481 -0
  66. package/dist/memory-updater.js.map +1 -0
  67. package/dist/prompt-defense.d.ts +59 -0
  68. package/dist/prompt-defense.d.ts.map +1 -0
  69. package/dist/prompt-defense.js +311 -0
  70. package/dist/prompt-defense.js.map +1 -0
  71. package/dist/reflexion.d.ts +211 -0
  72. package/dist/reflexion.d.ts.map +1 -0
  73. package/dist/reflexion.js +559 -0
  74. package/dist/reflexion.js.map +1 -0
  75. package/dist/system-prompt.d.ts +19 -3
  76. package/dist/system-prompt.d.ts.map +1 -1
  77. package/dist/system-prompt.js +203 -38
  78. package/dist/system-prompt.js.map +1 -1
  79. package/dist/task-classifier.d.ts +92 -0
  80. package/dist/task-classifier.d.ts.map +1 -0
  81. package/dist/task-classifier.js +566 -0
  82. package/dist/task-classifier.js.map +1 -0
  83. package/dist/token-budget.d.ts +131 -0
  84. package/dist/token-budget.d.ts.map +1 -0
  85. package/dist/token-budget.js +321 -0
  86. package/dist/token-budget.js.map +1 -0
  87. package/dist/types.d.ts +20 -2
  88. package/dist/types.d.ts.map +1 -1
  89. package/dist/types.js +18 -1
  90. package/dist/types.js.map +1 -1
  91. package/dist/world-state.d.ts +87 -0
  92. package/dist/world-state.d.ts.map +1 -0
  93. package/dist/world-state.js +435 -0
  94. package/dist/world-state.js.map +1 -0
  95. package/package.json +11 -21
@@ -0,0 +1,526 @@
1
+ /**
2
+ * @module benchmark-runner
3
+ * @description Runs benchmarks against the YUAN coding agent to measure performance objectively.
4
+ *
5
+ * The BenchmarkRunner does NOT instantiate AgentLoop directly (avoiding circular dependencies).
6
+ * Instead, it records task specs and validates results. The actual agent execution is performed
7
+ * by the caller (CLI or test harness) which passes in AgentLoop results.
8
+ */
9
+ import { mkdir, readdir, readFile, writeFile, rename } from "fs/promises";
10
+ import { join } from "path";
11
+ import { exec } from "child_process";
12
+ import { randomUUID } from "crypto";
13
+ // ─── Cost Constants ───
14
+ /** Approximate cost per 1M tokens for estimation (Claude Sonnet-class) */
15
+ const COST_PER_MILLION_INPUT = 3.0;
16
+ const COST_PER_MILLION_OUTPUT = 15.0;
17
+ /** Rough ratio: assume 70% input, 30% output */
18
+ const INPUT_RATIO = 0.7;
19
+ const OUTPUT_RATIO = 0.3;
20
+ // ─── Helpers ───
21
+ /**
22
+ * Execute a shell command with timeout. Returns { stdout, stderr, exitCode }.
23
+ */
24
+ function execWithTimeout(command, cwd, timeoutMs) {
25
+ return new Promise((resolve) => {
26
+ const child = exec(command, { cwd, timeout: timeoutMs, maxBuffer: 10 * 1024 * 1024 }, (error, stdout, stderr) => {
27
+ resolve({
28
+ stdout: typeof stdout === "string" ? stdout : "",
29
+ stderr: typeof stderr === "string" ? stderr : "",
30
+ exitCode: error ? error.code ?? 1 : 0,
31
+ });
32
+ });
33
+ // Safety: kill if still running after timeout + grace period
34
+ setTimeout(() => {
35
+ try {
36
+ child.kill("SIGKILL");
37
+ }
38
+ catch {
39
+ // process already exited
40
+ }
41
+ }, timeoutMs + 5000);
42
+ });
43
+ }
44
+ /**
45
+ * Estimate USD cost from token count.
46
+ */
47
+ function estimateCostUSD(tokens) {
48
+ const inputTokens = tokens * INPUT_RATIO;
49
+ const outputTokens = tokens * OUTPUT_RATIO;
50
+ return (inputTokens / 1_000_000) * COST_PER_MILLION_INPUT + (outputTokens / 1_000_000) * COST_PER_MILLION_OUTPUT;
51
+ }
52
+ /**
53
+ * Atomic write: write to temp file then rename.
54
+ */
55
+ async function atomicWrite(filePath, content) {
56
+ const tmpPath = filePath + `.tmp.${randomUUID().slice(0, 8)}`;
57
+ await writeFile(tmpPath, content, "utf-8");
58
+ await rename(tmpPath, filePath);
59
+ }
60
+ /**
61
+ * List files that changed between two directory snapshots (shallow compare by mtime/size).
62
+ * Returns relative paths.
63
+ */
64
+ async function listChangedFiles(originalDir, modifiedDir) {
65
+ const changed = [];
66
+ async function walk(dir, base) {
67
+ const { readdir: rd, stat } = await import("fs/promises");
68
+ let entries;
69
+ try {
70
+ entries = await rd(dir, { withFileTypes: true });
71
+ }
72
+ catch {
73
+ return;
74
+ }
75
+ for (const entry of entries) {
76
+ const rel = base ? `${base}/${entry.name}` : entry.name;
77
+ const fullPath = join(dir, entry.name);
78
+ if (entry.isDirectory()) {
79
+ // Skip node_modules, .git, etc.
80
+ if (entry.name === "node_modules" || entry.name === ".git")
81
+ continue;
82
+ await walk(fullPath, rel);
83
+ }
84
+ else if (entry.isFile()) {
85
+ const origPath = join(originalDir, rel);
86
+ try {
87
+ const [origStat, modStat] = await Promise.all([stat(origPath), stat(fullPath)]);
88
+ if (origStat.mtimeMs !== modStat.mtimeMs || origStat.size !== modStat.size) {
89
+ changed.push(rel);
90
+ }
91
+ }
92
+ catch {
93
+ // File exists in modified but not original → new file
94
+ changed.push(rel);
95
+ }
96
+ }
97
+ }
98
+ }
99
+ await walk(modifiedDir, "");
100
+ return changed;
101
+ }
102
+ // ─── BenchmarkRunner ───
103
+ export class BenchmarkRunner {
104
+ config;
105
+ constructor(config) {
106
+ this.config = {
107
+ resultsDir: config.resultsDir || ".yuan/benchmarks",
108
+ maxConcurrent: config.maxConcurrent ?? 1,
109
+ saveResults: config.saveResults ?? true,
110
+ compareBaseline: config.compareBaseline ?? true,
111
+ };
112
+ }
113
+ /**
114
+ * Run a single benchmark task.
115
+ *
116
+ * This method prepares the working directory and validates the result,
117
+ * but does NOT call AgentLoop itself. The caller is responsible for
118
+ * actually running the agent between `runTask` setup and finalization.
119
+ *
120
+ * If `agentResult` is provided, it is used directly. Otherwise, a
121
+ * placeholder result is returned indicating the task is ready for execution.
122
+ */
123
+ async runTask(task, agentResult) {
124
+ const startTime = Date.now();
125
+ const timeoutMs = task.timeoutMs ?? 300_000;
126
+ const errors = [];
127
+ // If no agent result provided, return a placeholder indicating setup-only mode
128
+ if (!agentResult) {
129
+ return {
130
+ taskId: task.id,
131
+ taskName: task.name,
132
+ success: false,
133
+ tokensUsed: 0,
134
+ durationMs: Date.now() - startTime,
135
+ filesChanged: [],
136
+ errors: ["no_agent_result: task prepared but agent was not executed"],
137
+ terminationReason: "no_execution",
138
+ };
139
+ }
140
+ // Validate with validation script if provided
141
+ let validationOutput;
142
+ let validationPassed = true;
143
+ if (task.validationScript) {
144
+ try {
145
+ const result = await execWithTimeout(task.validationScript, task.setupDir, Math.min(timeoutMs, 60_000));
146
+ validationOutput = result.stdout + (result.stderr ? `\n[stderr] ${result.stderr}` : "");
147
+ if (result.exitCode !== 0) {
148
+ validationPassed = false;
149
+ errors.push(`validation_failed: exit code ${result.exitCode}`);
150
+ }
151
+ }
152
+ catch (err) {
153
+ validationPassed = false;
154
+ const msg = err instanceof Error ? err.message : String(err);
155
+ errors.push(`validation_error: ${msg}`);
156
+ }
157
+ }
158
+ // Check expected files if specified
159
+ if (task.expectedFiles && task.expectedFiles.length > 0) {
160
+ const missing = task.expectedFiles.filter((f) => !agentResult.filesChanged.includes(f));
161
+ if (missing.length > 0) {
162
+ errors.push(`missing_expected_files: ${missing.join(", ")}`);
163
+ }
164
+ }
165
+ // Merge agent errors
166
+ errors.push(...agentResult.errors);
167
+ // Determine success: no fatal errors and validation passed
168
+ const success = validationPassed && agentResult.errors.length === 0;
169
+ const durationMs = Date.now() - startTime;
170
+ return {
171
+ taskId: task.id,
172
+ taskName: task.name,
173
+ success,
174
+ tokensUsed: agentResult.tokensUsed,
175
+ durationMs,
176
+ filesChanged: agentResult.filesChanged,
177
+ errors,
178
+ validationOutput,
179
+ terminationReason: agentResult.terminationReason,
180
+ };
181
+ }
182
+ /**
183
+ * Run all tasks in a benchmark suite.
184
+ *
185
+ * Tasks are run sequentially by default, or concurrently up to maxConcurrent.
186
+ * Each task must be provided with an agent result via the `taskResults` map.
187
+ */
188
+ async runSuite(tasks, taskResults) {
189
+ const results = [];
190
+ const maxConcurrent = this.config.maxConcurrent;
191
+ if (maxConcurrent <= 1) {
192
+ // Sequential execution
193
+ for (const task of tasks) {
194
+ const agentResult = taskResults?.get(task.id);
195
+ const result = await this.runTask(task, agentResult);
196
+ results.push(result);
197
+ }
198
+ }
199
+ else {
200
+ // Concurrent execution in batches
201
+ for (let i = 0; i < tasks.length; i += maxConcurrent) {
202
+ const batch = tasks.slice(i, i + maxConcurrent);
203
+ const batchResults = await Promise.all(batch.map((task) => {
204
+ const agentResult = taskResults?.get(task.id);
205
+ return this.runTask(task, agentResult);
206
+ }));
207
+ results.push(...batchResults);
208
+ }
209
+ }
210
+ // Aggregate stats
211
+ const passed = results.filter((r) => r.success).length;
212
+ const failed = results.length - passed;
213
+ const totalTokens = results.reduce((sum, r) => sum + r.tokensUsed, 0);
214
+ const totalDuration = results.reduce((sum, r) => sum + r.durationMs, 0);
215
+ // Group by category
216
+ const byCategory = {};
217
+ for (const task of tasks) {
218
+ if (!byCategory[task.category]) {
219
+ byCategory[task.category] = { passed: 0, total: 0 };
220
+ }
221
+ byCategory[task.category].total++;
222
+ const result = results.find((r) => r.taskId === task.id);
223
+ if (result?.success) {
224
+ byCategory[task.category].passed++;
225
+ }
226
+ }
227
+ // Group by difficulty
228
+ const byDifficulty = {};
229
+ for (const task of tasks) {
230
+ if (!byDifficulty[task.difficulty]) {
231
+ byDifficulty[task.difficulty] = { passed: 0, total: 0 };
232
+ }
233
+ byDifficulty[task.difficulty].total++;
234
+ const result = results.find((r) => r.taskId === task.id);
235
+ if (result?.success) {
236
+ byDifficulty[task.difficulty].passed++;
237
+ }
238
+ }
239
+ // Compare with baseline if enabled
240
+ let regressions = [];
241
+ let improvements = [];
242
+ if (this.config.compareBaseline) {
243
+ const baseline = await this.loadBaseline();
244
+ if (baseline) {
245
+ const summary = {
246
+ totalTasks: tasks.length,
247
+ passed,
248
+ failed,
249
+ successRate: tasks.length > 0 ? passed / tasks.length : 0,
250
+ avgTokensPerTask: tasks.length > 0 ? totalTokens / tasks.length : 0,
251
+ avgDurationMs: tasks.length > 0 ? totalDuration / tasks.length : 0,
252
+ totalCostEstimateUSD: estimateCostUSD(totalTokens),
253
+ byCategory,
254
+ byDifficulty,
255
+ regressions: [],
256
+ improvements: [],
257
+ timestamp: new Date().toISOString(),
258
+ results,
259
+ };
260
+ const comparison = this.compareWithBaseline(summary, baseline);
261
+ regressions = comparison.regressions;
262
+ improvements = comparison.improvements;
263
+ }
264
+ }
265
+ const summary = {
266
+ totalTasks: tasks.length,
267
+ passed,
268
+ failed,
269
+ successRate: tasks.length > 0 ? passed / tasks.length : 0,
270
+ avgTokensPerTask: tasks.length > 0 ? totalTokens / tasks.length : 0,
271
+ avgDurationMs: tasks.length > 0 ? totalDuration / tasks.length : 0,
272
+ totalCostEstimateUSD: estimateCostUSD(totalTokens),
273
+ byCategory,
274
+ byDifficulty,
275
+ regressions,
276
+ improvements,
277
+ timestamp: new Date().toISOString(),
278
+ results,
279
+ };
280
+ // Save results if configured
281
+ if (this.config.saveResults) {
282
+ await this.saveResults(summary);
283
+ }
284
+ return summary;
285
+ }
286
+ /**
287
+ * Load the most recent baseline benchmark result from resultsDir.
288
+ * Returns null if no previous results exist.
289
+ */
290
+ async loadBaseline() {
291
+ try {
292
+ const files = await readdir(this.config.resultsDir);
293
+ const benchmarkFiles = files
294
+ .filter((f) => f.startsWith("benchmark-") && f.endsWith(".json"))
295
+ .sort()
296
+ .reverse();
297
+ if (benchmarkFiles.length === 0)
298
+ return null;
299
+ const latestFile = join(this.config.resultsDir, benchmarkFiles[0]);
300
+ const content = await readFile(latestFile, "utf-8");
301
+ return JSON.parse(content);
302
+ }
303
+ catch {
304
+ return null;
305
+ }
306
+ }
307
+ /**
308
+ * Save benchmark results to disk with atomic write.
309
+ * Returns the path to the saved file.
310
+ */
311
+ async saveResults(summary) {
312
+ await mkdir(this.config.resultsDir, { recursive: true });
313
+ // Format timestamp for filename: 2026-03-09T12-30-00Z
314
+ const ts = summary.timestamp.replace(/:/g, "-").replace(/\.\d+Z$/, "Z");
315
+ const filename = `benchmark-${ts}.json`;
316
+ const filePath = join(this.config.resultsDir, filename);
317
+ const content = JSON.stringify(summary, null, 2);
318
+ await atomicWrite(filePath, content);
319
+ return filePath;
320
+ }
321
+ /**
322
+ * Compare current results with a baseline.
323
+ * Identifies regressions (was pass, now fail) and improvements (was fail, now pass).
324
+ */
325
+ compareWithBaseline(current, baseline) {
326
+ const regressions = [];
327
+ const improvements = [];
328
+ // Build lookup maps from results arrays
329
+ const baselineMap = new Map();
330
+ for (const result of baseline.results ?? []) {
331
+ baselineMap.set(result.taskId, result.success);
332
+ }
333
+ const currentMap = new Map();
334
+ for (const result of current.results ?? []) {
335
+ currentMap.set(result.taskId, result.success);
336
+ }
337
+ // Compare tasks that exist in both runs
338
+ for (const [taskId, currentSuccess] of currentMap) {
339
+ const baselineSuccess = baselineMap.get(taskId);
340
+ if (baselineSuccess === undefined)
341
+ continue; // New task, skip
342
+ if (baselineSuccess && !currentSuccess) {
343
+ regressions.push(taskId);
344
+ }
345
+ else if (!baselineSuccess && currentSuccess) {
346
+ improvements.push(taskId);
347
+ }
348
+ }
349
+ return { regressions, improvements };
350
+ }
351
+ /**
352
+ * Generate a Markdown report from benchmark summary.
353
+ */
354
+ generateReport(summary) {
355
+ const lines = [];
356
+ lines.push("# YUAN Benchmark Report");
357
+ lines.push("");
358
+ lines.push(`**Date:** ${summary.timestamp}`);
359
+ lines.push("");
360
+ // ─── Overview ───
361
+ lines.push("## Overview");
362
+ lines.push("");
363
+ lines.push("| Metric | Value |");
364
+ lines.push("|--------|-------|");
365
+ lines.push(`| Total Tasks | ${summary.totalTasks} |`);
366
+ lines.push(`| Passed | ${summary.passed} |`);
367
+ lines.push(`| Failed | ${summary.failed} |`);
368
+ lines.push(`| Success Rate | ${(summary.successRate * 100).toFixed(1)}% |`);
369
+ lines.push(`| Avg Tokens/Task | ${Math.round(summary.avgTokensPerTask).toLocaleString()} |`);
370
+ lines.push(`| Avg Duration/Task | ${(summary.avgDurationMs / 1000).toFixed(1)}s |`);
371
+ lines.push(`| Est. Total Cost | $${summary.totalCostEstimateUSD.toFixed(4)} |`);
372
+ lines.push("");
373
+ // ─── By Category ───
374
+ lines.push("## Results by Category");
375
+ lines.push("");
376
+ lines.push("| Category | Passed | Total | Rate |");
377
+ lines.push("|----------|--------|-------|------|");
378
+ for (const [category, stats] of Object.entries(summary.byCategory)) {
379
+ const rate = stats.total > 0 ? ((stats.passed / stats.total) * 100).toFixed(0) : "0";
380
+ lines.push(`| ${category} | ${stats.passed} | ${stats.total} | ${rate}% |`);
381
+ }
382
+ lines.push("");
383
+ // ─── By Difficulty ───
384
+ lines.push("## Results by Difficulty");
385
+ lines.push("");
386
+ lines.push("| Difficulty | Passed | Total | Rate |");
387
+ lines.push("|------------|--------|-------|------|");
388
+ for (const [difficulty, stats] of Object.entries(summary.byDifficulty)) {
389
+ const rate = stats.total > 0 ? ((stats.passed / stats.total) * 100).toFixed(0) : "0";
390
+ lines.push(`| ${difficulty} | ${stats.passed} | ${stats.total} | ${rate}% |`);
391
+ }
392
+ lines.push("");
393
+ // ─── Regressions & Improvements ───
394
+ if (summary.regressions.length > 0) {
395
+ lines.push("## Regressions");
396
+ lines.push("");
397
+ lines.push("Tasks that previously passed but now fail:");
398
+ lines.push("");
399
+ for (const id of summary.regressions) {
400
+ lines.push(`- \`${id}\``);
401
+ }
402
+ lines.push("");
403
+ }
404
+ if (summary.improvements.length > 0) {
405
+ lines.push("## Improvements");
406
+ lines.push("");
407
+ lines.push("Tasks that previously failed but now pass:");
408
+ lines.push("");
409
+ for (const id of summary.improvements) {
410
+ lines.push(`- \`${id}\``);
411
+ }
412
+ lines.push("");
413
+ }
414
+ // ─── Individual Results ───
415
+ if (summary.results && summary.results.length > 0) {
416
+ lines.push("## Task Details");
417
+ lines.push("");
418
+ lines.push("| Task | Status | Tokens | Duration | Reason |");
419
+ lines.push("|------|--------|--------|----------|--------|");
420
+ for (const r of summary.results) {
421
+ const status = r.success ? "PASS" : "FAIL";
422
+ const tokens = r.tokensUsed.toLocaleString();
423
+ const duration = `${(r.durationMs / 1000).toFixed(1)}s`;
424
+ const reason = r.terminationReason.slice(0, 40);
425
+ lines.push(`| ${r.taskName} | ${status} | ${tokens} | ${duration} | ${reason} |`);
426
+ }
427
+ lines.push("");
428
+ // ─── Error Details ───
429
+ const failedResults = summary.results.filter((r) => !r.success && r.errors.length > 0);
430
+ if (failedResults.length > 0) {
431
+ lines.push("## Error Details");
432
+ lines.push("");
433
+ for (const r of failedResults) {
434
+ lines.push(`### ${r.taskName} (\`${r.taskId}\`)`);
435
+ lines.push("");
436
+ for (const err of r.errors) {
437
+ lines.push(`- ${err}`);
438
+ }
439
+ if (r.validationOutput) {
440
+ lines.push("");
441
+ lines.push("**Validation output:**");
442
+ lines.push("```");
443
+ lines.push(r.validationOutput.slice(0, 500));
444
+ lines.push("```");
445
+ }
446
+ lines.push("");
447
+ }
448
+ }
449
+ }
450
+ return lines.join("\n");
451
+ }
452
+ /**
453
+ * Built-in sample tasks for quick testing.
454
+ * These are simple tasks that can validate the benchmark infrastructure itself.
455
+ */
456
+ static getSampleTasks() {
457
+ return [
458
+ {
459
+ id: "fix-typo",
460
+ name: "Fix Typo",
461
+ description: "Fix a typo in a README file: 'recieve' should be 'receive'",
462
+ category: "bug_fix",
463
+ difficulty: "easy",
464
+ setupDir: "",
465
+ prompt: "Fix the typo in README.md: 'recieve' should be 'receive'",
466
+ expectedFiles: ["README.md"],
467
+ validationScript: "grep -q 'receive' README.md && ! grep -q 'recieve' README.md",
468
+ maxTokens: 1000,
469
+ timeoutMs: 60_000,
470
+ },
471
+ {
472
+ id: "add-function",
473
+ name: "Add Function",
474
+ description: "Add a simple utility function that returns the sum of two numbers",
475
+ category: "feature",
476
+ difficulty: "easy",
477
+ setupDir: "",
478
+ prompt: "Add an exported function 'add(a: number, b: number): number' to src/utils.ts that returns the sum of a and b",
479
+ expectedFiles: ["src/utils.ts"],
480
+ validationScript: "grep -q 'export function add' src/utils.ts",
481
+ maxTokens: 2000,
482
+ timeoutMs: 60_000,
483
+ },
484
+ {
485
+ id: "rename-variable",
486
+ name: "Rename Variable",
487
+ description: "Rename all occurrences of 'data' to 'payload' in src/handler.ts",
488
+ category: "refactor",
489
+ difficulty: "medium",
490
+ setupDir: "",
491
+ prompt: "Rename the variable 'data' to 'payload' in src/handler.ts (all occurrences)",
492
+ expectedFiles: ["src/handler.ts"],
493
+ validationScript: "grep -q 'payload' src/handler.ts && ! grep -q 'const data' src/handler.ts",
494
+ maxTokens: 5000,
495
+ timeoutMs: 120_000,
496
+ },
497
+ {
498
+ id: "add-unit-test",
499
+ name: "Add Unit Test",
500
+ description: "Add unit tests for the multiply function in src/math.ts",
501
+ category: "test",
502
+ difficulty: "medium",
503
+ setupDir: "",
504
+ prompt: "Write unit tests for the multiply(a, b) function in src/math.ts. Create src/__tests__/math.test.ts with at least 3 test cases including edge cases (zero, negative numbers).",
505
+ expectedFiles: ["src/__tests__/math.test.ts"],
506
+ validationScript: "test -f src/__tests__/math.test.ts && grep -c 'test\\|it(' src/__tests__/math.test.ts",
507
+ maxTokens: 8000,
508
+ timeoutMs: 180_000,
509
+ },
510
+ {
511
+ id: "multi-file-refactor",
512
+ name: "Multi-File Refactor",
513
+ description: "Extract a shared interface from two files that define similar types, and update both files to import from the shared module",
514
+ category: "refactor",
515
+ difficulty: "hard",
516
+ setupDir: "",
517
+ prompt: "Both src/user-service.ts and src/admin-service.ts define a 'UserRecord' interface with the same fields. Extract it to src/types/user.ts and update both files to import from there.",
518
+ expectedFiles: ["src/types/user.ts", "src/user-service.ts", "src/admin-service.ts"],
519
+ validationScript: 'test -f src/types/user.ts && grep -q "import.*UserRecord.*from" src/user-service.ts && grep -q "import.*UserRecord.*from" src/admin-service.ts',
520
+ maxTokens: 15000,
521
+ timeoutMs: 300_000,
522
+ },
523
+ ];
524
+ }
525
+ }
526
+ //# sourceMappingURL=benchmark-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"benchmark-runner.js","sourceRoot":"","sources":["../src/benchmark-runner.ts"],"names":[],"mappings":"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"}
@@ -131,6 +131,24 @@ export interface BlastRadiusResult {
131
131
  /** Overall risk assessment */
132
132
  riskLevel: "low" | "medium" | "high";
133
133
  }
134
+ /** A file related through the import graph. */
135
+ export interface RelatedFile {
136
+ /** Absolute file path */
137
+ path: string;
138
+ /** How this file is related to the queried file */
139
+ relation: "imports" | "imported_by" | "co_changed";
140
+ /** Distance in the import graph from the queried file */
141
+ depth: number;
142
+ }
143
+ /** An entry in a call chain search result. */
144
+ export interface CallChainEntry {
145
+ /** Absolute file path containing the call */
146
+ file: string;
147
+ /** Line number of the call site (1-based) */
148
+ line: number;
149
+ /** Source line text around the call */
150
+ context: string;
151
+ }
134
152
  /**
135
153
  * Codebase Context Engine — indexes TypeScript/JavaScript projects and provides
136
154
  * symbol lookup, call graph analysis, blast radius estimation, and semantic search.
@@ -228,6 +246,37 @@ export declare class CodebaseContext {
228
246
  * @returns Blast radius analysis
229
247
  */
230
248
  getBlastRadius(file: string): BlastRadiusResult;
249
+ /**
250
+ * Find files related to the given file through imports/exports.
251
+ * Walks the import graph up to `maxDepth` hops.
252
+ *
253
+ * @param filePath - Absolute or project-relative path of the file
254
+ * @param maxDepth - Maximum depth to walk (default 2)
255
+ * @returns Array of related files with relation type and depth
256
+ */
257
+ getRelatedFiles(filePath: string, maxDepth?: number): Promise<RelatedFile[]>;
258
+ /**
259
+ * Find where a function is called across the project.
260
+ * Searches all indexed file contents for occurrences of the function name
261
+ * that look like call sites.
262
+ *
263
+ * @param functionName - Name of the function to search for
264
+ * @param filePath - File where the function is defined (excluded from results)
265
+ * @returns Array of call chain entries with file, line, and context
266
+ */
267
+ getCallChain(functionName: string, filePath: string): Promise<CallChainEntry[]>;
268
+ /**
269
+ * Calculate the impact radius of a file — how many files depend on it
270
+ * directly and transitively, with a risk score.
271
+ *
272
+ * @param filePath - Absolute or project-relative path of the file
273
+ * @returns Direct/transitive dependent counts and a risk score
274
+ */
275
+ getImpactRadius(filePath: string): Promise<{
276
+ directDependents: number;
277
+ transitiveDependents: number;
278
+ riskScore: number;
279
+ }>;
231
280
  /**
232
281
  * Search symbols by a query string using token-based fuzzy matching.
233
282
  * Splits the query into tokens and scores symbols by match count against
@@ -1 +1 @@
1
- {"version":3,"file":"codebase-context.d.ts","sourceRoot":"","sources":["../src/codebase-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codebase-context.d.ts","sourceRoot":"","sources":["../src/codebase-context.ts"],"names":[],"mappings":"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"}