@sean.holung/minicode 0.3.2 → 0.3.3

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 (107) hide show
  1. package/README.md +48 -43
  2. package/dist/scripts/run-benchmarks.js +147 -0
  3. package/dist/src/agent/config.js +149 -40
  4. package/dist/src/agent/editable-config.js +314 -0
  5. package/dist/src/analysis/structural-analysis.js +379 -0
  6. package/dist/src/benchmark/evaluator.js +79 -0
  7. package/dist/src/benchmark/index.js +4 -0
  8. package/dist/src/benchmark/reporter.js +177 -0
  9. package/dist/src/benchmark/runner.js +100 -0
  10. package/dist/src/benchmark/task-loader.js +78 -0
  11. package/dist/src/benchmark/types.js +5 -0
  12. package/dist/src/cli/args.js +10 -0
  13. package/dist/src/cli/config-slash-command.js +135 -0
  14. package/dist/src/cli/plugin-install.js +69 -0
  15. package/dist/src/index.js +76 -6
  16. package/dist/src/indexer/cache.js +6 -4
  17. package/dist/src/indexer/code-map.js +41 -13
  18. package/dist/src/indexer/plugins/typescript.js +70 -23
  19. package/dist/src/indexer/project-index.js +175 -36
  20. package/dist/src/indexer/symbol-names.js +92 -0
  21. package/dist/src/model-utils.js +18 -0
  22. package/dist/src/serve/agent-bridge.js +203 -24
  23. package/dist/src/serve/mcp-server.js +405 -0
  24. package/dist/src/serve/server.js +165 -10
  25. package/dist/src/serve/websocket.js +8 -0
  26. package/dist/src/shared/graph-styles.js +119 -0
  27. package/dist/src/tools/find-path.js +75 -0
  28. package/dist/src/tools/find-references.js +7 -2
  29. package/dist/src/tools/get-dependencies.js +3 -2
  30. package/dist/src/tools/read-symbol.js +12 -5
  31. package/dist/src/tools/registry.js +3 -1
  32. package/dist/src/tools/search-code-map.js +4 -2
  33. package/dist/src/ui/app.js +1 -1
  34. package/dist/src/ui/cli-ink.js +79 -4
  35. package/dist/src/ui/components/header-bar.js +6 -2
  36. package/dist/src/ui/state/ui-store.js +5 -0
  37. package/dist/src/web/app.js +1124 -176
  38. package/dist/src/web/index.html +113 -3
  39. package/dist/src/web/style.css +973 -55
  40. package/dist/tests/agent.test.js +31 -0
  41. package/dist/tests/analysis-helpers.test.js +89 -0
  42. package/dist/tests/analysis-ui.test.js +29 -0
  43. package/dist/tests/benchmark-harness.test.js +527 -0
  44. package/dist/tests/config-api.test.js +143 -0
  45. package/dist/tests/config-integration.test.js +751 -0
  46. package/dist/tests/config-slash-command.test.js +106 -0
  47. package/dist/tests/config.test.js +42 -1
  48. package/dist/tests/context-indicator.test.js +220 -0
  49. package/dist/tests/editable-config.test.js +109 -0
  50. package/dist/tests/find-path.test.js +183 -0
  51. package/dist/tests/focus-tracker.test.js +62 -0
  52. package/dist/tests/graph-onboarding.test.js +55 -0
  53. package/dist/tests/graph-styles.test.js +65 -0
  54. package/dist/tests/indexer.test.js +137 -0
  55. package/dist/tests/mcp-and-plugin.test.js +186 -0
  56. package/dist/tests/model-client-openai.test.js +29 -0
  57. package/dist/tests/model-selection.test.js +136 -0
  58. package/dist/tests/model-utils.test.js +22 -0
  59. package/dist/tests/reasoning-effort.test.js +264 -0
  60. package/dist/tests/run-benchmarks.test.js +161 -0
  61. package/dist/tests/search-code-map.test.js +18 -0
  62. package/dist/tests/serve.integration.test.js +218 -2
  63. package/dist/tests/session-ui.test.js +21 -0
  64. package/dist/tests/session.test.js +50 -0
  65. package/dist/tests/settings-ui.test.js +30 -0
  66. package/dist/tests/structural-analysis.test.js +218 -0
  67. package/node_modules/@minicode/agent-sdk/README.md +80 -51
  68. package/node_modules/@minicode/agent-sdk/dist/src/agent/agent.d.ts +16 -5
  69. package/node_modules/@minicode/agent-sdk/dist/src/agent/agent.d.ts.map +1 -1
  70. package/node_modules/@minicode/agent-sdk/dist/src/agent/agent.js +51 -33
  71. package/node_modules/@minicode/agent-sdk/dist/src/agent/agent.js.map +1 -1
  72. package/node_modules/@minicode/agent-sdk/dist/src/agent/types.d.ts +14 -0
  73. package/node_modules/@minicode/agent-sdk/dist/src/agent/types.d.ts.map +1 -1
  74. package/node_modules/@minicode/agent-sdk/dist/src/index.d.ts +3 -2
  75. package/node_modules/@minicode/agent-sdk/dist/src/index.d.ts.map +1 -1
  76. package/node_modules/@minicode/agent-sdk/dist/src/index.js +2 -0
  77. package/node_modules/@minicode/agent-sdk/dist/src/index.js.map +1 -1
  78. package/node_modules/@minicode/agent-sdk/dist/src/indexer/focus-tracker.d.ts +35 -0
  79. package/node_modules/@minicode/agent-sdk/dist/src/indexer/focus-tracker.d.ts.map +1 -0
  80. package/node_modules/@minicode/agent-sdk/dist/src/indexer/focus-tracker.js +64 -0
  81. package/node_modules/@minicode/agent-sdk/dist/src/indexer/focus-tracker.js.map +1 -0
  82. package/node_modules/@minicode/agent-sdk/dist/src/indexer/types.d.ts +7 -0
  83. package/node_modules/@minicode/agent-sdk/dist/src/indexer/types.d.ts.map +1 -1
  84. package/node_modules/@minicode/agent-sdk/dist/src/model/client.d.ts +5 -1
  85. package/node_modules/@minicode/agent-sdk/dist/src/model/client.d.ts.map +1 -1
  86. package/node_modules/@minicode/agent-sdk/dist/src/model/client.js +83 -11
  87. package/node_modules/@minicode/agent-sdk/dist/src/model/client.js.map +1 -1
  88. package/node_modules/@minicode/agent-sdk/dist/src/safety/guardrails.d.ts +1 -0
  89. package/node_modules/@minicode/agent-sdk/dist/src/safety/guardrails.d.ts.map +1 -1
  90. package/node_modules/@minicode/agent-sdk/dist/src/safety/guardrails.js +8 -1
  91. package/node_modules/@minicode/agent-sdk/dist/src/safety/guardrails.js.map +1 -1
  92. package/node_modules/@minicode/agent-sdk/dist/src/session/session.d.ts.map +1 -1
  93. package/node_modules/@minicode/agent-sdk/dist/src/session/session.js +4 -1
  94. package/node_modules/@minicode/agent-sdk/dist/src/session/session.js.map +1 -1
  95. package/node_modules/@minicode/agent-sdk/dist/tests/agent.test.js +3 -1
  96. package/node_modules/@minicode/agent-sdk/dist/tests/agent.test.js.map +1 -1
  97. package/node_modules/@minicode/agent-sdk/dist/tests/guardrails.test.js +8 -2
  98. package/node_modules/@minicode/agent-sdk/dist/tests/guardrails.test.js.map +1 -1
  99. package/node_modules/@minicode/agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
  100. package/package.json +9 -5
  101. package/plugin/.claude-plugin/plugin.json +12 -0
  102. package/plugin/.mcp.json +8 -0
  103. package/plugin/CLAUDE.md +26 -0
  104. package/plugin/skills/analyze/SKILL.md +12 -0
  105. package/plugin/skills/focus/SKILL.md +20 -0
  106. package/plugin/skills/graph/SKILL.md +13 -0
  107. package/plugin/skills/symbols/SKILL.md +13 -0
@@ -1,14 +1,21 @@
1
- # @minicode/agent-sdk
2
-
3
- Reusable agent runtime SDK extracted from minicode. Provides everything needed to build an AI coding agent: model clients, tool registry, session management, safety guardrails, and a turn-based agent loop.
4
-
5
- ## Installation
6
-
7
- ```bash
8
- npm install @minicode/agent-sdk
9
- ```
10
-
11
- > **Note:** Requires Node.js >= 22.0.0
1
+ # @minicode/agent-sdk
2
+
3
+ Reusable agent runtime SDK extracted from minicode. Provides everything needed to build an AI coding agent: model clients, tool registry, session management, safety guardrails, and a turn-based agent loop.
4
+
5
+ ## Installation
6
+
7
+ This package currently lives as a private workspace package inside the minicode repo:
8
+
9
+ ```bash
10
+ git clone https://github.com/sean1588/minicode.git
11
+ cd minicode
12
+ npm install
13
+ npm run build --workspace=packages/agent-sdk
14
+ ```
15
+
16
+ > **Note:** `packages/agent-sdk/package.json` is currently marked `private`, so treat this README as documentation for the in-repo SDK surface rather than a published npm package.
17
+ >
18
+ > **Requires:** Node.js >= 22.0.0
12
19
 
13
20
  ## Quick Start
14
21
 
@@ -23,22 +30,26 @@ import {
23
30
  import type { AgentConfig } from "@minicode/agent-sdk";
24
31
 
25
32
  // 1. Define your agent configuration
26
- const config: AgentConfig = {
27
- modelProvider: "anthropic",
28
- model: "claude-sonnet-4-20250514",
29
- maxSteps: 20,
30
- maxTokens: 4096,
31
- maxContextTokens: 100_000,
32
- workspaceRoot: process.cwd(),
33
- commandTimeoutMs: 30_000,
34
- maxFileSizeBytes: 1_000_000,
35
- commandDenylist: [/rm\s+-rf\s+\//],
36
- confirmDestructive: true,
37
- keepRecentMessages: 10,
38
- loopDetectionWindow: 10,
39
- maxToolOutputChars: 12_000,
40
- openAiBaseUrl: "",
41
- };
33
+ const config: AgentConfig = {
34
+ modelProvider: "anthropic",
35
+ model: "claude-sonnet-4-20250514",
36
+ maxSteps: 20,
37
+ maxTokens: 4096,
38
+ maxContextTokens: 32_000,
39
+ workspaceRoot: process.cwd(),
40
+ commandTimeoutMs: 30_000,
41
+ maxFileSizeBytes: 1_000_000,
42
+ commandDenylist: [/rm\s+-rf\s+\//],
43
+ confirmDestructive: true,
44
+ keepRecentMessages: 12,
45
+ loopDetectionWindow: 6,
46
+ maxToolOutputChars: 8_000,
47
+ openAiBaseUrl: "",
48
+ enableFileReadDedup: true,
49
+ enableAdaptiveKeepRecent: true,
50
+ enableToolOutputTruncation: true,
51
+ compactionThreshold: 0.8,
52
+ };
42
53
 
43
54
  // 2. Create the model client, tool registry, and agent
44
55
  const modelClient = new AnthropicModelClient(); // reads ANTHROPIC_API_KEY from env
@@ -138,11 +149,19 @@ const agent = new CodingAgent({
138
149
 
139
150
  Register your own tools alongside or instead of the built-in ones:
140
151
 
141
- ```typescript
142
- import { ToolRegistry } from "@minicode/agent-sdk";
143
- import type { ToolDefinition } from "@minicode/agent-sdk";
144
-
145
- const myTool: ToolDefinition = {
152
+ ```typescript
153
+ import {
154
+ ToolRegistry,
155
+ createReadFileTool,
156
+ createWriteFileTool,
157
+ createEditFileTool,
158
+ createSearchTool,
159
+ createListFilesTool,
160
+ createRunCommandTool,
161
+ } from "@minicode/agent-sdk";
162
+ import type { ToolDefinition } from "@minicode/agent-sdk";
163
+
164
+ const myTool: ToolDefinition = {
146
165
  name: "get_weather",
147
166
  description: "Get the current weather for a city.",
148
167
  inputSchema: {
@@ -159,25 +178,31 @@ const myTool: ToolDefinition = {
159
178
  },
160
179
  };
161
180
 
162
- // Option A: Only custom tools
163
- const registry = new ToolRegistry([myTool]);
164
-
165
- // Option B: Built-in tools + custom tools
166
- const builtIn = ToolRegistry.createDefault(config);
167
- const combined = new ToolRegistry([
168
- ...builtIn.getToolSchemas().map(() => myTool), // just an example
169
- myTool,
170
- ]);
171
- ```
172
-
173
- ## Tool Hooks (Indexer Integration)
174
-
175
- When integrating with a project indexer, use `CoreToolHooks` to get notified after file writes/edits:
181
+ // Option A: Only custom tools
182
+ const registry = new ToolRegistry([myTool]);
183
+
184
+ // Option B: Built-in tools + custom tools
185
+ const combined = new ToolRegistry([
186
+ createReadFileTool(config),
187
+ createWriteFileTool(config),
188
+ createEditFileTool(config),
189
+ createSearchTool(config),
190
+ createListFilesTool(config),
191
+ createRunCommandTool(config),
192
+ myTool,
193
+ ]);
194
+ ```
195
+
196
+ In practice, the simplest pattern is usually to create the built-in registry and wrap or extend it in your own application code. The SDK does not currently expose a public "appendTool" helper.
197
+
198
+ ## Tool Hooks (Indexer Integration)
199
+
200
+ When integrating with a project indexer, use `CoreToolHooks` to get notified after file writes/edits:
176
201
 
177
202
  ```typescript
178
203
  import { ToolRegistry } from "@minicode/agent-sdk";
179
204
 
180
- const toolRegistry = ToolRegistry.createDefault(config, {
205
+ const toolRegistry = ToolRegistry.createDefault(config, {
181
206
  afterWrite: (relativePath, content) => {
182
207
  // Re-index the file after it's written
183
208
  projectIndex.reindexFile(relativePath, content);
@@ -186,10 +211,14 @@ const toolRegistry = ToolRegistry.createDefault(config, {
186
211
  // Re-index the file after it's edited
187
212
  projectIndex.reindexFile(relativePath, content);
188
213
  },
189
- });
190
- ```
191
-
192
- ## Safety Guardrails
214
+ });
215
+ ```
216
+
217
+ ## Indexer boundary
218
+
219
+ The SDK exports indexer and plugin _types_ such as `LanguagePlugin`, `IndexedSymbol`, and `DependencyEdge`, but it does not currently ship the full project indexer implementation that the minicode CLI uses for its TypeScript/JavaScript graph tools. In the current repo layout, the richer indexer lives in the top-level `src/indexer/` directory.
220
+
221
+ ## Safety Guardrails
193
222
 
194
223
  The SDK includes built-in safety features:
195
224
 
@@ -27,10 +27,15 @@ export type UiUpdateToolCallEnd = {
27
27
  result: string;
28
28
  elapsedMs: number;
29
29
  };
30
- export type UiUpdate = UiUpdateThinking | UiUpdateStreamingChunk | UiUpdateStep | UiUpdateToolCallStart | UiUpdateToolCallEnd;
30
+ export type UiUpdateContextStatus = {
31
+ type: "context_status";
32
+ contextTokens: number;
33
+ maxContextTokens: number;
34
+ };
35
+ export type UiUpdate = UiUpdateThinking | UiUpdateStreamingChunk | UiUpdateStep | UiUpdateToolCallStart | UiUpdateToolCallEnd | UiUpdateContextStatus;
31
36
  export declare class CodingAgent {
32
37
  private readonly session;
33
- private readonly config;
38
+ private config;
34
39
  private readonly modelClient;
35
40
  private readonly toolRegistry;
36
41
  private readonly getCodeMap;
@@ -44,14 +49,15 @@ export declare class CodingAgent {
44
49
  * Persists across turns so the code map stays focused on the
45
50
  * current area of interest.
46
51
  */
47
- private readonly focusedSymbols;
48
- private focusGeneration;
52
+ private readonly focusTracker;
49
53
  /**
50
54
  * Cache of recently read file paths (key: "path:offset:limit") to avoid
51
55
  * sending duplicate full file contents through the context window.
52
56
  * Maps to the step number when the file was last read.
53
57
  */
54
58
  private readonly fileReadCache;
59
+ /** Cached system prompt for when dynamic prompts are disabled. */
60
+ private cachedSystemPrompt;
55
61
  constructor(params: {
56
62
  config: AgentConfig;
57
63
  modelClient: ModelClient;
@@ -66,13 +72,18 @@ export declare class CodingAgent {
66
72
  });
67
73
  private verboseLog;
68
74
  getSession(): Session;
75
+ getReasoningEffort(): AgentConfig["reasoningEffort"];
76
+ getContextStatus(): {
77
+ contextTokens: number;
78
+ maxContextTokens: number;
79
+ };
80
+ setReasoningEffort(effort: AgentConfig["reasoningEffort"]): void;
69
81
  /**
70
82
  * Manually compact the conversation context.
71
83
  * Uses LLM-based summarization when compactionModel is configured,
72
84
  * otherwise falls back to mechanical compaction.
73
85
  */
74
86
  compactContext(): Promise<CompactionResult | null>;
75
- private addFocusSymbol;
76
87
  private getFocusSet;
77
88
  /**
78
89
  * Check whether a previously-read file's content is still present in the
@@ -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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"}
@@ -1,6 +1,7 @@
1
1
  import { buildSystemPrompt } from "../prompt/system-prompt.js";
2
- import { ensureStepWithinLimit } from "../safety/guardrails.js";
2
+ import { ensureStepWithinLimit, formatStepLimitMessage } from "../safety/guardrails.js";
3
3
  import { Session } from "../session/session.js";
4
+ import { FocusTracker } from "../indexer/focus-tracker.js";
4
5
  function stableSerialize(value) {
5
6
  if (Array.isArray(value)) {
6
7
  return `[${value.map((item) => stableSerialize(item)).join(",")}]`;
@@ -42,7 +43,6 @@ function extractFocusSymbol(toolCall) {
42
43
  }
43
44
  const VERBOSE_SEP = "\u2500".repeat(60);
44
45
  const PROGRESS_THINKING_MAX = 200;
45
- const MAX_FOCUS_SYMBOLS = 30;
46
46
  /**
47
47
  * Content-aware truncation for tool outputs.
48
48
  * Different tools benefit from different truncation strategies:
@@ -114,14 +114,15 @@ export class CodingAgent {
114
114
  * Persists across turns so the code map stays focused on the
115
115
  * current area of interest.
116
116
  */
117
- focusedSymbols = new Map();
118
- focusGeneration = 0;
117
+ focusTracker = new FocusTracker();
119
118
  /**
120
119
  * Cache of recently read file paths (key: "path:offset:limit") to avoid
121
120
  * sending duplicate full file contents through the context window.
122
121
  * Maps to the step number when the file was last read.
123
122
  */
124
123
  fileReadCache = new Map();
124
+ /** Cached system prompt for when dynamic prompts are disabled. */
125
+ cachedSystemPrompt;
125
126
  constructor(params) {
126
127
  this.config = params.config;
127
128
  this.modelClient = params.modelClient;
@@ -146,6 +147,19 @@ export class CodingAgent {
146
147
  getSession() {
147
148
  return this.session;
148
149
  }
150
+ getReasoningEffort() {
151
+ return this.config.reasoningEffort;
152
+ }
153
+ getContextStatus() {
154
+ return {
155
+ contextTokens: this.session.getTokenEstimate(),
156
+ maxContextTokens: this.config.maxContextTokens,
157
+ };
158
+ }
159
+ setReasoningEffort(effort) {
160
+ const { reasoningEffort: _, ...rest } = this.config;
161
+ this.config = effort ? { ...rest, reasoningEffort: effort } : { ...rest };
162
+ }
149
163
  /**
150
164
  * Manually compact the conversation context.
151
165
  * Uses LLM-based summarization when compactionModel is configured,
@@ -158,28 +172,9 @@ export class CodingAgent {
158
172
  ? this.session.compactWithLlm(keepRecent, this.modelClient, compactionModel)
159
173
  : this.session.compact(keepRecent);
160
174
  }
161
- addFocusSymbol(name) {
162
- this.focusGeneration += 1;
163
- this.focusedSymbols.set(name, this.focusGeneration);
164
- // Evict oldest if over limit
165
- if (this.focusedSymbols.size > MAX_FOCUS_SYMBOLS) {
166
- let oldestKey = null;
167
- let oldestGen = Infinity;
168
- for (const [key, gen] of this.focusedSymbols) {
169
- if (gen < oldestGen) {
170
- oldestGen = gen;
171
- oldestKey = key;
172
- }
173
- }
174
- if (oldestKey) {
175
- this.focusedSymbols.delete(oldestKey);
176
- }
177
- }
178
- }
179
175
  getFocusSet() {
180
- return this.focusedSymbols.size > 0
181
- ? new Set(this.focusedSymbols.keys())
182
- : undefined;
176
+ const symbols = this.focusTracker.getFocusedSymbols();
177
+ return symbols.size > 0 ? symbols : undefined;
183
178
  }
184
179
  /**
185
180
  * Check whether a previously-read file's content is still present in the
@@ -242,12 +237,32 @@ export class CodingAgent {
242
237
  }
243
238
  }
244
239
  this.session.trim(this.config.maxContextTokens, effectiveKeepRecent);
245
- // Rebuild system prompt each step with the latest focus set,
246
- // so the code map dynamically adapts as the agent explores symbols.
247
- const codeMapResult = this.getCodeMap?.(this.getFocusSet());
248
- const basePrompt = buildSystemPrompt(this.config, toolSchemas, codeMapResult);
249
- const suffix = this.getSystemPromptSuffix?.();
250
- const systemPrompt = suffix ? basePrompt + "\n\n" + suffix : basePrompt;
240
+ // Broadcast current context size so UIs can display a fill indicator.
241
+ if (this.onUiUpdate) {
242
+ this.onUiUpdate({
243
+ type: "context_status",
244
+ contextTokens: this.session.getTokenEstimate(),
245
+ maxContextTokens: this.config.maxContextTokens,
246
+ });
247
+ }
248
+ // When enableDynamicPrompt is true (default), rebuild the system prompt
249
+ // each step with the latest focus set so the code map dynamically adapts.
250
+ // When false, build once and cache — this keeps the prompt prefix stable
251
+ // across turns, improving KV cache hit rates for local models.
252
+ const dynamicPrompt = this.config.enableDynamicPrompt !== false;
253
+ let systemPrompt;
254
+ if (dynamicPrompt || !this.cachedSystemPrompt) {
255
+ const codeMapResult = this.getCodeMap?.(dynamicPrompt ? this.getFocusSet() : undefined);
256
+ const basePrompt = buildSystemPrompt(this.config, toolSchemas, codeMapResult);
257
+ const suffix = this.getSystemPromptSuffix?.();
258
+ systemPrompt = suffix ? basePrompt + "\n\n" + suffix : basePrompt;
259
+ if (!dynamicPrompt) {
260
+ this.cachedSystemPrompt = systemPrompt;
261
+ }
262
+ }
263
+ else {
264
+ systemPrompt = this.cachedSystemPrompt;
265
+ }
251
266
  const messages = this.session.getMessages();
252
267
  if (this.verbose) {
253
268
  this.verboseLog(`\n${VERBOSE_SEP}`);
@@ -263,6 +278,9 @@ export class CodingAgent {
263
278
  messages,
264
279
  tools: toolSchemas,
265
280
  maxTokens: this.config.maxTokens,
281
+ ...(this.config.reasoningEffort
282
+ ? { reasoningEffort: this.config.reasoningEffort }
283
+ : {}),
266
284
  ...(this.onUiUpdate
267
285
  ? {
268
286
  onStream: (chunk) => {
@@ -347,7 +365,7 @@ export class CodingAgent {
347
365
  // Track symbol focus from symbol-aware tool calls
348
366
  const focusSymbol = extractFocusSymbol(toolCall);
349
367
  if (focusSymbol) {
350
- this.addFocusSymbol(focusSymbol);
368
+ this.focusTracker.addSymbol(focusSymbol);
351
369
  }
352
370
  if (this.onProgress) {
353
371
  this.onProgress(`tool_call: ${formatToolCallForProgress(toolCall)}`);
@@ -414,7 +432,7 @@ export class CodingAgent {
414
432
  });
415
433
  }
416
434
  }
417
- const stepLimitMessage = "Reached the maximum number of steps for this turn. I stopped to avoid an infinite loop.";
435
+ const stepLimitMessage = formatStepLimitMessage(this.config.maxSteps);
418
436
  this.session.addMessage({
419
437
  role: "assistant",
420
438
  content: stepLimitMessage,
@@ -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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"}
@@ -19,6 +19,8 @@ export interface ToolResultMessage {
19
19
  content: string;
20
20
  }
21
21
  export type SessionMessage = UserMessage | AssistantMessage | ToolResultMessage;
22
+ /** Valid reasoning effort levels for models that support reasoning tokens. */
23
+ export type ReasoningEffort = "xhigh" | "high" | "medium" | "low" | "minimal" | "none";
22
24
  export interface AgentConfig {
23
25
  modelProvider: "anthropic" | "openai-compatible";
24
26
  model: string;
@@ -45,6 +47,10 @@ export interface AgentConfig {
45
47
  compactionThreshold?: number;
46
48
  /** Model to use for LLM-based compaction. When set, compaction uses an LLM to summarize instead of mechanical truncation. */
47
49
  compactionModel?: string;
50
+ /** Reasoning effort level for models that support reasoning tokens. When unset, no reasoning parameters are sent. */
51
+ reasoningEffort?: ReasoningEffort;
52
+ /** Rebuild the system prompt (including code map) every agent step. Disabling improves KV cache hit rates for local models. Default: true */
53
+ enableDynamicPrompt?: boolean;
48
54
  }
49
55
  export interface ToolSchema {
50
56
  name: string;
@@ -66,6 +72,11 @@ export interface ModelResponse {
66
72
  outputTokens: number;
67
73
  };
68
74
  }
75
+ /** Describes a model available from the provider. */
76
+ export interface ModelInfo {
77
+ id: string;
78
+ name?: string;
79
+ }
69
80
  export interface ModelClient {
70
81
  chat(params: {
71
82
  model: string;
@@ -73,8 +84,11 @@ export interface ModelClient {
73
84
  messages: SessionMessage[];
74
85
  tools: ToolSchema[];
75
86
  maxTokens: number;
87
+ reasoningEffort?: ReasoningEffort;
76
88
  onStream?: (chunk: string) => void;
77
89
  signal?: AbortSignal;
78
90
  }): Promise<ModelResponse>;
91
+ /** List models available from the provider. Returns empty array on failure. */
92
+ listModels?(): Promise<ModelInfo[]>;
79
93
  }
80
94
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agent/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agent/types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- export type { AgentConfig, AssistantMessage, ModelClient, ModelResponse, SessionMessage, ToolCall, ToolDefinition, ToolResultMessage, ToolSchema, UserMessage, } from "./agent/types.js";
2
- export { CodingAgent, type UiUpdate, type UiUpdateThinking, type UiUpdateStreamingChunk, type UiUpdateStep, type UiUpdateToolCallStart, type UiUpdateToolCallEnd, } from "./agent/agent.js";
1
+ export type { AgentConfig, AssistantMessage, ModelClient, ModelInfo, ModelResponse, ReasoningEffort, SessionMessage, ToolCall, ToolDefinition, ToolResultMessage, ToolSchema, UserMessage, } from "./agent/types.js";
2
+ export { CodingAgent, type UiUpdate, type UiUpdateThinking, type UiUpdateStreamingChunk, type UiUpdateStep, type UiUpdateToolCallStart, type UiUpdateToolCallEnd, type UiUpdateContextStatus, } from "./agent/agent.js";
3
3
  export { Session, type SessionSnapshot, type CompactionResult } from "./session/session.js";
4
4
  export { AnthropicModelClient, OpenAICompatibleModelClient, createModelClient, } from "./model/client.js";
5
5
  export { ToolRegistry, type CoreToolHooks } from "./tools/registry.js";
@@ -12,5 +12,6 @@ export { createRunCommandTool } 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";
15
+ export { FocusTracker } from "./indexer/focus-tracker.js";
15
16
  export type { CodeMapResult, DependencyEdge, DependencyEdgeKind, IndexedSymbol, LanguagePlugin, ProjectIndex, SymbolKind, } from "./indexer/types.js";
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -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,aAAa,EACb,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,GACzB,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,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,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"}
@@ -19,4 +19,6 @@ export { expectNonEmptyString, expectOptionalBoolean, expectOptionalNumber, form
19
19
  export { ensureStepWithinLimit, isDestructiveCommand, isWithinWorkspacePath, normalizeWorkspaceRoot, resolveWorkspacePath, validateCommand, validateFileReadSize, validatePath, } from "./safety/guardrails.js";
20
20
  // System prompt
21
21
  export { buildSystemPrompt, } from "./prompt/system-prompt.js";
22
+ // Focus tracker
23
+ export { FocusTracker } from "./indexer/focus-tracker.js";
22
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAcA,gBAAgB;AAChB,OAAO,EACL,WAAW,GAOZ,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"}
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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Tracks which symbols the user/agent is actively working with.
3
+ * Used to dynamically re-rank the code map so that relevant symbols
4
+ * survive truncation within the fixed token budget.
5
+ *
6
+ * Focus is derived from:
7
+ * - Symbol names in tool calls (read_symbol, find_references, get_dependencies)
8
+ * - Symbol names mentioned in user messages (fuzzy match against index)
9
+ */
10
+ export declare class FocusTracker {
11
+ private readonly focused;
12
+ private generation;
13
+ /**
14
+ * Record a symbol as being actively focused on.
15
+ * More recent additions have higher priority.
16
+ */
17
+ addSymbol(qualifiedName: string): void;
18
+ /**
19
+ * Record multiple symbols at once (e.g. from dependency expansion).
20
+ */
21
+ addSymbols(qualifiedNames: string[]): void;
22
+ /**
23
+ * Get the current set of focused symbol qualified names.
24
+ */
25
+ getFocusedSymbols(): Set<string>;
26
+ /**
27
+ * Check if a symbol is currently focused.
28
+ */
29
+ hasFocus(qualifiedName: string): boolean;
30
+ /**
31
+ * Clear all focus tracking.
32
+ */
33
+ clear(): void;
34
+ }
35
+ //# sourceMappingURL=focus-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-tracker.d.ts","sourceRoot":"","sources":["../../../src/indexer/focus-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,UAAU,CAAK;IAEvB;;;OAGG;IACH,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;IAoBtC;;OAEG;IACH,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI;IAM1C;;OAEG;IACH,iBAAiB,IAAI,GAAG,CAAC,MAAM,CAAC;IAIhC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAIxC;;OAEG;IACH,KAAK,IAAI,IAAI;CAId"}