@sean.holung/minicode 0.3.4 → 0.3.5

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 (52) hide show
  1. package/README.md +5 -3
  2. package/dist/scripts/run-benchmarks.js +73 -28
  3. package/dist/src/benchmark/runner.js +142 -59
  4. package/dist/src/indexer/project-index.js +49 -13
  5. package/dist/src/serve/agent-bridge.js +12 -3
  6. package/dist/src/serve/mcp-server.js +70 -21
  7. package/dist/src/serve/server.js +37 -4
  8. package/dist/src/shared/graph-symbols.js +82 -0
  9. package/dist/src/shared/symbol-resolution.js +33 -0
  10. package/dist/src/tools/find-path.js +15 -6
  11. package/dist/src/tools/find-references.js +7 -2
  12. package/dist/src/tools/get-dependencies.js +8 -3
  13. package/dist/src/tools/read-symbol.js +9 -3
  14. package/dist/src/tools/registry.js +4 -1
  15. package/dist/src/tools/search-code-map.js +18 -3
  16. package/dist/src/web/app.js +154 -33
  17. package/dist/tests/benchmark-harness.test.js +100 -0
  18. package/dist/tests/file-tools.test.js +34 -1
  19. package/dist/tests/find-path.test.js +43 -2
  20. package/dist/tests/find-references.test.js +49 -0
  21. package/dist/tests/get-dependencies.test.js +23 -0
  22. package/dist/tests/graph-symbols.test.js +45 -0
  23. package/dist/tests/indexer.test.js +6 -0
  24. package/dist/tests/read-symbol.test.js +35 -0
  25. package/dist/tests/request-tracker.test.js +15 -0
  26. package/dist/tests/run-benchmarks.test.js +117 -33
  27. package/dist/tests/search-code-map.test.js +2 -0
  28. package/dist/tests/serve.integration.test.js +109 -3
  29. package/dist/tests/session-ui.test.js +2 -0
  30. package/node_modules/@minicode/agent-sdk/dist/src/agent/agent.d.ts.map +1 -1
  31. package/node_modules/@minicode/agent-sdk/dist/src/agent/agent.js +2 -1
  32. package/node_modules/@minicode/agent-sdk/dist/src/agent/agent.js.map +1 -1
  33. package/node_modules/@minicode/agent-sdk/dist/src/index.d.ts +1 -1
  34. package/node_modules/@minicode/agent-sdk/dist/src/index.d.ts.map +1 -1
  35. package/node_modules/@minicode/agent-sdk/dist/src/index.js.map +1 -1
  36. package/node_modules/@minicode/agent-sdk/dist/src/indexer/types.d.ts +3 -0
  37. package/node_modules/@minicode/agent-sdk/dist/src/indexer/types.d.ts.map +1 -1
  38. package/node_modules/@minicode/agent-sdk/dist/src/tools/registry.d.ts +3 -0
  39. package/node_modules/@minicode/agent-sdk/dist/src/tools/registry.d.ts.map +1 -1
  40. package/node_modules/@minicode/agent-sdk/dist/src/tools/registry.js +4 -1
  41. package/node_modules/@minicode/agent-sdk/dist/src/tools/registry.js.map +1 -1
  42. package/node_modules/@minicode/agent-sdk/dist/src/tools/run-command.d.ts +11 -1
  43. package/node_modules/@minicode/agent-sdk/dist/src/tools/run-command.d.ts.map +1 -1
  44. package/node_modules/@minicode/agent-sdk/dist/src/tools/run-command.js +4 -1
  45. package/node_modules/@minicode/agent-sdk/dist/src/tools/run-command.js.map +1 -1
  46. package/node_modules/@minicode/agent-sdk/dist/src/tools/search.d.ts.map +1 -1
  47. package/node_modules/@minicode/agent-sdk/dist/src/tools/search.js +16 -8
  48. package/node_modules/@minicode/agent-sdk/dist/src/tools/search.js.map +1 -1
  49. package/node_modules/@minicode/agent-sdk/dist/tests/file-tools.test.js +19 -2
  50. package/node_modules/@minicode/agent-sdk/dist/tests/file-tools.test.js.map +1 -1
  51. package/node_modules/@minicode/agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
  52. package/package.json +1 -1
@@ -232,6 +232,12 @@ export class Employee {
232
232
  const resolved = index.getSymbol("Employee");
233
233
  assert.ok(resolved, "bare lookup should still resolve one of the colliding symbols");
234
234
  assert.ok(resolved.displayName === "Employee (class)" || resolved.displayName === "Employee (interface)", "resolved symbol should use a disambiguated display name");
235
+ const matches = index.getSymbolMatches("Employee");
236
+ assert.equal(matches.length, 2, "should list every colliding symbol for ambiguous lookups");
237
+ assert.deepEqual(matches.map((symbol) => symbol.displayName).sort(), ["Employee (class)", "Employee (interface)"].sort());
238
+ assert.deepEqual(matches.map((symbol) => symbol.qualifiedName).sort(), [employeeClass.qualifiedName, employeeInterface.qualifiedName].sort());
239
+ assert.deepEqual(index.getSymbolMatches("Employee (class)").map((symbol) => symbol.qualifiedName), [employeeClass.qualifiedName]);
240
+ assert.deepEqual(index.getSymbolMatches("Employee#class").map((symbol) => symbol.qualifiedName), [employeeClass.qualifiedName]);
235
241
  });
236
242
  test("TypeScript plugin indexes class expressions assigned to variables", () => {
237
243
  const code = `const MyClass = class MyClass {
@@ -1,6 +1,8 @@
1
1
  import assert from "node:assert/strict";
2
2
  import path from "node:path";
3
3
  import { test } from "node:test";
4
+ import { mkdtemp, writeFile } from "node:fs/promises";
5
+ import { tmpdir } from "node:os";
4
6
  import { buildProjectIndex } from "../src/indexer/project-index.js";
5
7
  import { createReadSymbolTool } from "../src/tools/read-symbol.js";
6
8
  import { createToolRegistry } from "../src/tools/registry.js";
@@ -73,6 +75,39 @@ test("read_symbol includes Referenced Types section for createToolRegistry", asy
73
75
  assert.ok(result.includes("# createToolRegistry"));
74
76
  assert.ok(result.includes("src/tools/registry.ts"));
75
77
  });
78
+ test("read_symbol returns disambiguation list for ambiguous bare symbol names", async () => {
79
+ const workspaceRoot = await mkdtemp(path.join(tmpdir(), "minicode-read-symbol-collisions-"));
80
+ await writeFile(path.join(workspaceRoot, "sample.ts"), `export type Review = { id: string };
81
+
82
+ export class Review {
83
+ constructor(public id: string) {}
84
+ }
85
+ `, "utf8");
86
+ const config = createTestAgentConfig(workspaceRoot);
87
+ const projectIndex = await buildProjectIndex(workspaceRoot);
88
+ const tool = createReadSymbolTool(config, projectIndex);
89
+ const result = await tool.execute({ name: "Review" });
90
+ assert.ok(result.includes('Symbol "Review" is ambiguous'));
91
+ assert.ok(result.includes("Review (type)"));
92
+ assert.ok(result.includes("Review (class)"));
93
+ assert.ok(result.includes("qualified: Review#type"));
94
+ assert.ok(result.includes("qualified: Review#class"));
95
+ });
96
+ test("read_symbol accepts qualified names for colliding symbols", async () => {
97
+ const workspaceRoot = await mkdtemp(path.join(tmpdir(), "minicode-read-symbol-qualified-"));
98
+ await writeFile(path.join(workspaceRoot, "sample.ts"), `export type Review = { id: string };
99
+
100
+ export class Review {
101
+ constructor(public id: string) {}
102
+ }
103
+ `, "utf8");
104
+ const config = createTestAgentConfig(workspaceRoot);
105
+ const projectIndex = await buildProjectIndex(workspaceRoot);
106
+ const tool = createReadSymbolTool(config, projectIndex);
107
+ const result = await tool.execute({ name: "Review#class", includeBody: false });
108
+ assert.ok(result.includes("# Review (class) (class)"));
109
+ assert.ok(result.includes("sample.ts"));
110
+ });
76
111
  test("read_symbol is not in tool registry when projectIndex is undefined", () => {
77
112
  const config = createTestAgentConfig("/tmp");
78
113
  const registry = createToolRegistry(config);
@@ -0,0 +1,15 @@
1
+ import assert from "node:assert/strict";
2
+ import { test } from "node:test";
3
+ import { createLatestRequestTracker } from "../src/web/request-tracker.js";
4
+ test("latest request tracker only accepts the most recent request token", () => {
5
+ const tracker = createLatestRequestTracker();
6
+ const first = tracker.begin();
7
+ const second = tracker.begin();
8
+ assert.equal(tracker.isCurrent(first), false);
9
+ assert.equal(tracker.isCurrent(second), true);
10
+ });
11
+ test("latest request tracker treats the current token as active until superseded", () => {
12
+ const tracker = createLatestRequestTracker();
13
+ const token = tracker.begin();
14
+ assert.equal(tracker.isCurrent(token), true);
15
+ });
@@ -3,7 +3,7 @@ import { mkdtemp, mkdir, writeFile, rm } from "node:fs/promises";
3
3
  import path from "node:path";
4
4
  import { tmpdir } from "node:os";
5
5
  import { test } from "node:test";
6
- import { parseArgs, buildConfig, loadTasks } from "../scripts/run-benchmarks.js";
6
+ import { parseArgs, buildConfig, loadTasks, getBenchmarkConfigPath } from "../scripts/run-benchmarks.js";
7
7
  // ─── parseArgs ────────────────────────────────────────────────────
8
8
  test("parseArgs: defaults to variant 'ci' with no flags", () => {
9
9
  const args = parseArgs([]);
@@ -43,52 +43,136 @@ test("parseArgs: ignores unknown flags", () => {
43
43
  assert.equal(args.variant, "test");
44
44
  });
45
45
  // ─── buildConfig ──────────────────────────────────────────────────
46
- test("buildConfig: returns defaults when no env vars set", () => {
47
- const originalProvider = process.env.MODEL_PROVIDER;
48
- const originalModel = process.env.MODEL;
49
- delete process.env.MODEL_PROVIDER;
50
- delete process.env.MODEL;
46
+ test("getBenchmarkConfigPath resolves under benchmarks/", () => {
47
+ const repoRoot = "/tmp/minicode-repo";
48
+ assert.equal(getBenchmarkConfigPath(repoRoot), path.join(repoRoot, "benchmarks", "benchmark.config.json"));
49
+ });
50
+ test("buildConfig: reads benchmark config file defaults", async () => {
51
+ const tmpRoot = await mkdtemp(path.join(tmpdir(), "bench-config-root-"));
52
+ const configPath = path.join(tmpRoot, "benchmarks", "benchmark.config.json");
53
+ await mkdir(path.dirname(configPath), { recursive: true });
54
+ await writeFile(configPath, JSON.stringify({
55
+ modelProvider: "openai-compatible",
56
+ model: "google/gemini-3-flash-preview",
57
+ openAiBaseUrl: "https://openrouter.ai/api/v1",
58
+ maxSteps: 42,
59
+ maxContextTokens: 12345,
60
+ }));
51
61
  try {
52
- const config = buildConfig();
62
+ const config = buildConfig({
63
+ repoRoot: tmpRoot,
64
+ env: {},
65
+ homeEnvPath: path.join(tmpRoot, ".missing-home-env"),
66
+ configPath,
67
+ });
53
68
  assert.equal(config.modelProvider, "openai-compatible");
54
- assert.equal(config.model, "test-model");
55
- assert.equal(config.maxSteps, 50);
56
- assert.equal(config.maxTokens, 4096);
69
+ assert.equal(config.model, "google/gemini-3-flash-preview");
70
+ assert.equal(config.openAiBaseUrl, "https://openrouter.ai/api/v1");
71
+ assert.equal(config.maxSteps, 42);
72
+ assert.equal(config.maxContextTokens, 12345);
73
+ }
74
+ finally {
75
+ await rm(tmpRoot, { recursive: true, force: true });
76
+ }
77
+ });
78
+ test("buildConfig: home .env provides benchmark API keys", async () => {
79
+ const tmpRoot = await mkdtemp(path.join(tmpdir(), "bench-config-home-env-"));
80
+ const configPath = path.join(tmpRoot, "benchmarks", "benchmark.config.json");
81
+ const homeEnvPath = path.join(tmpRoot, "home.env");
82
+ await mkdir(path.dirname(configPath), { recursive: true });
83
+ await writeFile(configPath, JSON.stringify({
84
+ modelProvider: "openai-compatible",
85
+ model: "google/gemini-3-flash-preview",
86
+ openAiBaseUrl: "https://openrouter.ai/api/v1",
87
+ }));
88
+ await writeFile(homeEnvPath, "OPENROUTER_API_KEY=test-openrouter-key\n");
89
+ try {
90
+ const config = buildConfig({
91
+ repoRoot: tmpRoot,
92
+ env: {},
93
+ homeEnvPath,
94
+ configPath,
95
+ });
96
+ assert.equal(config.openAiApiKey, "test-openrouter-key");
97
+ }
98
+ finally {
99
+ await rm(tmpRoot, { recursive: true, force: true });
100
+ }
101
+ });
102
+ test("buildConfig: benchmark config wins over home .env for non-secret settings", async () => {
103
+ const tmpRoot = await mkdtemp(path.join(tmpdir(), "bench-config-env-"));
104
+ const configPath = path.join(tmpRoot, "benchmarks", "benchmark.config.json");
105
+ const homeEnvPath = path.join(tmpRoot, "home.env");
106
+ await mkdir(path.dirname(configPath), { recursive: true });
107
+ await writeFile(configPath, JSON.stringify({
108
+ modelProvider: "openai-compatible",
109
+ model: "google/gemini-3-flash-preview",
110
+ openAiBaseUrl: "https://openrouter.ai/api/v1",
111
+ maxContextTokens: 32000,
112
+ }));
113
+ await writeFile(homeEnvPath, "MODEL=google/gemini-home\nOPENAI_BASE_URL=https://example.invalid/v1\nOPENROUTER_API_KEY=home-openrouter-key\n");
114
+ try {
115
+ const config = buildConfig({
116
+ repoRoot: tmpRoot,
117
+ env: {},
118
+ homeEnvPath,
119
+ configPath,
120
+ });
121
+ assert.equal(config.modelProvider, "openai-compatible");
122
+ assert.equal(config.model, "google/gemini-3-flash-preview");
123
+ assert.equal(config.openAiBaseUrl, "https://openrouter.ai/api/v1");
124
+ assert.equal(config.openAiApiKey, "home-openrouter-key");
57
125
  assert.equal(config.maxContextTokens, 32000);
58
- assert.equal(config.confirmDestructive, false);
59
126
  }
60
127
  finally {
61
- if (originalProvider !== undefined)
62
- process.env.MODEL_PROVIDER = originalProvider;
63
- if (originalModel !== undefined)
64
- process.env.MODEL = originalModel;
128
+ await rm(tmpRoot, { recursive: true, force: true });
65
129
  }
66
130
  });
67
- test("buildConfig: reads MODEL_PROVIDER and MODEL from env", () => {
68
- const originalProvider = process.env.MODEL_PROVIDER;
69
- const originalModel = process.env.MODEL;
70
- process.env.MODEL_PROVIDER = "anthropic";
71
- process.env.MODEL = "claude-test";
131
+ test("buildConfig: shell env overrides benchmark config and home env", async () => {
132
+ const tmpRoot = await mkdtemp(path.join(tmpdir(), "bench-config-shell-env-"));
133
+ const configPath = path.join(tmpRoot, "benchmarks", "benchmark.config.json");
134
+ const homeEnvPath = path.join(tmpRoot, "home.env");
135
+ await mkdir(path.dirname(configPath), { recursive: true });
136
+ await writeFile(configPath, JSON.stringify({
137
+ modelProvider: "openai-compatible",
138
+ model: "google/gemini-3-flash-preview",
139
+ openAiBaseUrl: "https://openrouter.ai/api/v1",
140
+ maxContextTokens: 32000,
141
+ }));
142
+ await writeFile(homeEnvPath, "OPENROUTER_API_KEY=home-openrouter-key\n");
72
143
  try {
73
- const config = buildConfig();
144
+ const config = buildConfig({
145
+ repoRoot: tmpRoot,
146
+ env: {
147
+ MODEL_PROVIDER: "anthropic",
148
+ MODEL: "claude-test",
149
+ OPENAI_BASE_URL: "https://override.example/v1",
150
+ MAX_CONTEXT_TOKENS: "64000",
151
+ },
152
+ homeEnvPath,
153
+ configPath,
154
+ });
74
155
  assert.equal(config.modelProvider, "anthropic");
75
156
  assert.equal(config.model, "claude-test");
157
+ assert.equal(config.openAiBaseUrl, "https://override.example/v1");
158
+ assert.equal(config.maxContextTokens, 64000);
76
159
  }
77
160
  finally {
78
- if (originalProvider !== undefined) {
79
- process.env.MODEL_PROVIDER = originalProvider;
80
- }
81
- else {
82
- delete process.env.MODEL_PROVIDER;
83
- }
84
- if (originalModel !== undefined) {
85
- process.env.MODEL = originalModel;
86
- }
87
- else {
88
- delete process.env.MODEL;
89
- }
161
+ await rm(tmpRoot, { recursive: true, force: true });
90
162
  }
91
163
  });
164
+ test("buildConfig: falls back to hardcoded defaults when config file is missing", () => {
165
+ const config = buildConfig({
166
+ repoRoot: "/tmp/bench-missing-config",
167
+ env: {},
168
+ homeEnvPath: "/tmp/bench-missing-home-env",
169
+ configPath: "/tmp/bench-missing-config/benchmarks/missing.json",
170
+ });
171
+ assert.equal(config.modelProvider, "openai-compatible");
172
+ assert.equal(config.model, "test-model");
173
+ assert.equal(config.openAiBaseUrl, "http://localhost:1234/v1");
174
+ assert.equal(config.maxSteps, 50);
175
+ });
92
176
  // ─── loadTasks ────────────────────────────────────────────────────
93
177
  let tmpDir;
94
178
  async function setupTempTasks() {
@@ -45,4 +45,6 @@ export class Employee {
45
45
  const result = await tool.execute({ pattern: "Employee" });
46
46
  assert.ok(result.includes("Employee (interface)"));
47
47
  assert.ok(result.includes("Employee (class)"));
48
+ assert.ok(result.includes("qualified: Employee#interface"));
49
+ assert.ok(result.includes("qualified: Employee#class"));
48
50
  });
@@ -84,11 +84,19 @@ class MockBridge extends AgentBridge {
84
84
  ];
85
85
  }
86
86
  getSymbol(name) {
87
- const syms = this.getSymbols();
88
- const match = syms.find((s) => s.qualifiedName === name || s.name === name);
87
+ const [match] = this.getSymbolMatches(name);
89
88
  if (!match)
90
89
  return undefined;
91
- return { ...match, dependencies: [], kind: match.kind };
90
+ return match;
91
+ }
92
+ getSymbolMatches(name) {
93
+ return this.getSymbols()
94
+ .filter((s) => s.qualifiedName === name || s.name === name)
95
+ .map((match) => ({
96
+ ...match,
97
+ dependencies: [],
98
+ kind: match.kind,
99
+ }));
92
100
  }
93
101
  getDependencies(symbolName) {
94
102
  if (symbolName === "foo") {
@@ -247,6 +255,59 @@ class MockBridge extends AgentBridge {
247
255
  return `Interpreting ${findingId}...`;
248
256
  }
249
257
  }
258
+ class AmbiguousMockBridge extends MockBridge {
259
+ getSymbols() {
260
+ return [
261
+ ...super.getSymbols(),
262
+ {
263
+ name: "Review (type)",
264
+ qualifiedName: "Review#type",
265
+ kind: "type",
266
+ filePath: "src/review.ts",
267
+ startLine: 1,
268
+ endLine: 1,
269
+ signature: "type Review = { id: string }",
270
+ exported: true,
271
+ },
272
+ {
273
+ name: "Review (class)",
274
+ qualifiedName: "Review#class",
275
+ kind: "class",
276
+ filePath: "src/review.ts",
277
+ startLine: 3,
278
+ endLine: 7,
279
+ signature: "class Review",
280
+ exported: true,
281
+ },
282
+ ];
283
+ }
284
+ getSymbolMatches(name) {
285
+ if (name === "Review") {
286
+ return this.getSymbols()
287
+ .filter((symbol) => symbol.qualifiedName.startsWith("Review#"))
288
+ .map((match) => ({
289
+ ...match,
290
+ dependencies: [],
291
+ kind: match.kind,
292
+ }));
293
+ }
294
+ return super.getSymbolMatches(name);
295
+ }
296
+ }
297
+ class EmptySessionsBridge extends MockBridge {
298
+ async listSess() {
299
+ return [];
300
+ }
301
+ async saveSess(label) {
302
+ return {
303
+ id: "sess-1",
304
+ label: label ?? "auto-label",
305
+ createdAt: "2026-01-01T00:00:00.000Z",
306
+ savedAt: "2026-01-01T00:00:00.000Z",
307
+ messageCount: 1,
308
+ };
309
+ }
310
+ }
250
311
  // ── Test harness ──
251
312
  let activeServer;
252
313
  function startTestServer(bridge) {
@@ -332,6 +393,24 @@ test("POST /api/sessions/save saves a session", async () => {
332
393
  const body = (await res.json());
333
394
  assert.equal(body.label, "my-save");
334
395
  });
396
+ test("session APIs support the first save when no sessions exist yet", async () => {
397
+ const bridge = new EmptySessionsBridge();
398
+ const base = await startTestServer(bridge);
399
+ const listRes = await fetch(`${base}/api/sessions`);
400
+ assert.equal(listRes.status, 200);
401
+ const listBody = (await listRes.json());
402
+ assert.equal(listBody.sessions.length, 0);
403
+ assert.equal(listBody.currentSessionId, "sess-1");
404
+ const saveRes = await fetch(`${base}/api/sessions/save`, {
405
+ method: "POST",
406
+ headers: { "Content-Type": "application/json" },
407
+ body: JSON.stringify({}),
408
+ });
409
+ assert.equal(saveRes.status, 200);
410
+ const saveBody = (await saveRes.json());
411
+ assert.equal(saveBody.id, "sess-1");
412
+ assert.equal(saveBody.label, "auto-label");
413
+ });
335
414
  test("POST /api/sessions/load returns 404 for unknown session", async () => {
336
415
  const bridge = new MockBridge();
337
416
  const base = await startTestServer(bridge);
@@ -570,6 +649,15 @@ test("GET /api/symbols/:name/dependencies returns 404 for unknown symbol", async
570
649
  const res = await fetch(`${base}/api/symbols/nonexistent/dependencies`);
571
650
  assert.equal(res.status, 404);
572
651
  });
652
+ test("GET /api/symbols/:name/dependencies returns 409 for ambiguous symbol", async () => {
653
+ const bridge = new AmbiguousMockBridge();
654
+ const base = await startTestServer(bridge);
655
+ const res = await fetch(`${base}/api/symbols/Review/dependencies`);
656
+ assert.equal(res.status, 409);
657
+ const body = (await res.json());
658
+ assert.equal(body.error, 'Symbol "Review" is ambiguous');
659
+ assert.deepEqual(body.candidates.map((candidate) => candidate.qualifiedName).sort(), ["Review#class", "Review#type"]);
660
+ });
573
661
  test("GET /api/symbols/:name/references returns references", async () => {
574
662
  const bridge = new MockBridge();
575
663
  const base = await startTestServer(bridge);
@@ -586,6 +674,15 @@ test("GET /api/symbols/:name/references returns 404 for unknown symbol", async (
586
674
  const res = await fetch(`${base}/api/symbols/nonexistent/references`);
587
675
  assert.equal(res.status, 404);
588
676
  });
677
+ test("GET /api/symbols/:name/references returns 409 for ambiguous symbol", async () => {
678
+ const bridge = new AmbiguousMockBridge();
679
+ const base = await startTestServer(bridge);
680
+ const res = await fetch(`${base}/api/symbols/Review/references`);
681
+ assert.equal(res.status, 409);
682
+ const body = (await res.json());
683
+ assert.equal(body.error, 'Symbol "Review" is ambiguous');
684
+ assert.deepEqual(body.candidates.map((candidate) => candidate.qualifiedName).sort(), ["Review#class", "Review#type"]);
685
+ });
589
686
  test("GET /api/code-map returns code map", async () => {
590
687
  const bridge = new MockBridge();
591
688
  const base = await startTestServer(bridge);
@@ -741,6 +838,15 @@ test("GET /api/symbols/:name/source returns 404 for unknown symbol", async () =>
741
838
  const body = (await res.json());
742
839
  assert.ok(body.error.includes("nonexistent"));
743
840
  });
841
+ test("GET /api/symbols/:name/source returns 409 for ambiguous symbol", async () => {
842
+ const bridge = new AmbiguousMockBridge();
843
+ const base = await startTestServer(bridge);
844
+ const res = await fetch(`${base}/api/symbols/Review/source`);
845
+ assert.equal(res.status, 409);
846
+ const body = (await res.json());
847
+ assert.equal(body.error, 'Symbol "Review" is ambiguous');
848
+ assert.deepEqual(body.candidates.map((candidate) => candidate.qualifiedName).sort(), ["Review#class", "Review#type"]);
849
+ });
744
850
  test("GET /api/symbols/:name/source returns 500 when file is missing", async () => {
745
851
  const bridge = new MockBridge();
746
852
  const base = await startTestServer(bridge);
@@ -18,4 +18,6 @@ test("built JS contains active saved session update logic", () => {
18
18
  assert.ok(js.includes("activeSavedSession"), "JS should track the active saved session");
19
19
  assert.ok(js.includes("currentSessionId"), "JS should read the current session id from the sessions API");
20
20
  assert.ok(js.includes("Session updated:"), "JS should emit the update confirmation message");
21
+ assert.ok(js.includes("sessionRefreshTracker"), "JS should guard session list refreshes against stale responses");
22
+ assert.ok(js.includes('saveBtn.setAttribute("disabled", "true")'), "JS should disable saving while the first save is in flight");
21
23
  });
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/agent/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/agent/agent.ts"],"names":[],"mappings":"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"}
@@ -157,7 +157,8 @@ export class CodingAgent {
157
157
  };
158
158
  }
159
159
  setReasoningEffort(effort) {
160
- const { reasoningEffort: _, ...rest } = this.config;
160
+ const rest = { ...this.config };
161
+ delete rest.reasoningEffort;
161
162
  this.config = effort ? { ...rest, reasoningEffort: effort } : { ...rest };
162
163
  }
163
164
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/agent/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/agent/agent.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export { createWriteFileTool, type WriteFileHooks } from "./tools/write-file.js"
8
8
  export { createEditFileTool, type EditFileHooks } from "./tools/edit-file.js";
9
9
  export { createSearchTool } from "./tools/search.js";
10
10
  export { createListFilesTool } from "./tools/list-files.js";
11
- export { createRunCommandTool } from "./tools/run-command.js";
11
+ export { createRunCommandTool, type RunCommandHooks } from "./tools/run-command.js";
12
12
  export { expectNonEmptyString, expectOptionalBoolean, expectOptionalNumber, formatWithLineNumbers, toJson, } from "./tools/helpers.js";
13
13
  export { ensureStepWithinLimit, isDestructiveCommand, isWithinWorkspacePath, normalizeWorkspaceRoot, resolveWorkspacePath, validateCommand, validateFileReadSize, validatePath, } from "./safety/guardrails.js";
14
14
  export { buildSystemPrompt, } from "./prompt/system-prompt.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,aAAa,EACb,eAAe,EACf,cAAc,EACd,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,WAAW,EACX,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG5F,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,MAAM,GACP,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,YAAY,GACb,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,YAAY,EACV,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,UAAU,GACX,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,aAAa,EACb,eAAe,EACf,cAAc,EACd,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,WAAW,EACX,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG5F,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGpF,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,MAAM,GACP,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,YAAY,GACb,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,YAAY,EACV,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,UAAU,GACX,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAgBA,gBAAgB;AAChB,OAAO,EACL,WAAW,GAQZ,MAAM,kBAAkB,CAAC;AAE1B,UAAU;AACV,OAAO,EAAE,OAAO,EAA+C,MAAM,sBAAsB,CAAC;AAE5F,gBAAgB;AAChB,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAEvE,4BAA4B;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAuB,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAsB,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,eAAe;AACf,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,MAAM,GACP,MAAM,oBAAoB,CAAC;AAE5B,sBAAsB;AACtB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,YAAY,GACb,MAAM,wBAAwB,CAAC;AAEhC,gBAAgB;AAChB,OAAO,EACL,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAEnC,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAgBA,gBAAgB;AAChB,OAAO,EACL,WAAW,GAQZ,MAAM,kBAAkB,CAAC;AAE1B,UAAU;AACV,OAAO,EAAE,OAAO,EAA+C,MAAM,sBAAsB,CAAC;AAE5F,gBAAgB;AAChB,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAEvE,4BAA4B;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAuB,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAsB,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAwB,MAAM,wBAAwB,CAAC;AAEpF,eAAe;AACf,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,MAAM,GACP,MAAM,oBAAoB,CAAC;AAE5B,sBAAsB;AACtB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,YAAY,GACb,MAAM,wBAAwB,CAAC;AAEhC,gBAAgB;AAChB,OAAO,EACL,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAEnC,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC"}
@@ -62,6 +62,7 @@ export interface ProjectIndex {
62
62
  projectFiles: Map<string, string>;
63
63
  workspaceRoot: string;
64
64
  getSymbol(name: string): IndexedSymbol | undefined;
65
+ getSymbolMatches(name: string): IndexedSymbol[];
65
66
  getSymbolsInFile(filePath: string): IndexedSymbol[];
66
67
  getDependencyCone(symbolName: string, depth?: number): IndexedSymbol[];
67
68
  getCodeMap(tokenBudget?: number, focusSymbols?: Set<string>): CodeMapResult;
@@ -71,5 +72,7 @@ export interface ProjectIndex {
71
72
  findPathToEntryPoint(symbolName: string, maxDepth?: number): IndexedSymbol[][];
72
73
  /** Re-index a file after it has been modified. Updates symbols and dependency edges. */
73
74
  reindexFile(filePath: string, content: string): void;
75
+ /** Re-scan the workspace from disk and rebuild indexed files, symbols, and dependency edges in place. */
76
+ refreshFromWorkspace(): Promise<void>;
74
77
  }
75
78
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/indexer/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/indexer/types.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,18 @@
1
1
  import type { AgentConfig, ToolDefinition, ToolSchema } from "../agent/types.js";
2
2
  import type { EditFileHooks } from "./edit-file.js";
3
+ import type { RunCommandHooks } from "./run-command.js";
3
4
  import type { WriteFileHooks } from "./write-file.js";
4
5
  export interface CoreToolHooks {
5
6
  afterWrite?: WriteFileHooks["afterWrite"];
6
7
  afterEdit?: EditFileHooks["afterEdit"];
8
+ afterCommand?: RunCommandHooks["afterCommand"];
7
9
  }
8
10
  export declare class ToolRegistry {
9
11
  private readonly toolsByName;
10
12
  constructor(tools: ToolDefinition[]);
11
13
  static createDefault(config: AgentConfig, hooks?: CoreToolHooks): ToolRegistry;
12
14
  getToolSchemas(): ToolSchema[];
15
+ getDefinitions(): ToolDefinition[];
13
16
  execute(name: string, input: unknown): Promise<string>;
14
17
  }
15
18
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAuBtD,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IAC1C,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;CACxC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqC;gBAErD,KAAK,EAAE,cAAc,EAAE;IASnC,MAAM,CAAC,aAAa,CAClB,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,aAAa,GACpB,YAAY;IAYf,cAAc,IAAI,UAAU,EAAE;IAIxB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CAe7D"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAuBtD,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IAC1C,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;CAChD;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqC;gBAErD,KAAK,EAAE,cAAc,EAAE;IASnC,MAAM,CAAC,aAAa,CAClB,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,aAAa,GACpB,YAAY;IAYf,cAAc,IAAI,UAAU,EAAE;IAI9B,cAAc,IAAI,cAAc,EAAE;IAI5B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CAe7D"}
@@ -34,13 +34,16 @@ export class ToolRegistry {
34
34
  createEditFileTool(config, hooks ? { afterEdit: hooks.afterEdit } : undefined),
35
35
  createSearchTool(config),
36
36
  createListFilesTool(config),
37
- createRunCommandTool(config),
37
+ createRunCommandTool(config, hooks ? { afterCommand: hooks.afterCommand } : undefined),
38
38
  ];
39
39
  return new ToolRegistry(tools);
40
40
  }
41
41
  getToolSchemas() {
42
42
  return [...this.toolsByName.values()].map(toToolSchema);
43
43
  }
44
+ getDefinitions() {
45
+ return [...this.toolsByName.values()];
46
+ }
44
47
  async execute(name, input) {
45
48
  const tool = this.toolsByName.get(name);
46
49
  if (!tool) {