@sean.holung/minicode 0.2.2 → 0.2.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.
- package/README.md +7 -4
- package/dist/src/agent/config.js +14 -2
- package/dist/src/index.js +16 -2
- package/dist/src/indexer/code-map.js +52 -5
- package/dist/src/indexer/focus-tracker.js +63 -0
- package/dist/src/indexer/project-index.js +2 -2
- package/dist/src/ui/cli-ink.js +22 -2
- package/dist/tests/agent.test.js +62 -0
- package/node_modules/@minicode/agent-sdk/dist/src/agent/agent.d.ts +30 -1
- package/node_modules/@minicode/agent-sdk/dist/src/agent/agent.d.ts.map +1 -1
- package/node_modules/@minicode/agent-sdk/dist/src/agent/agent.js +212 -8
- package/node_modules/@minicode/agent-sdk/dist/src/agent/agent.js.map +1 -1
- package/node_modules/@minicode/agent-sdk/dist/src/agent/types.d.ts +10 -0
- package/node_modules/@minicode/agent-sdk/dist/src/agent/types.d.ts.map +1 -1
- package/node_modules/@minicode/agent-sdk/dist/src/index.d.ts +1 -1
- package/node_modules/@minicode/agent-sdk/dist/src/index.d.ts.map +1 -1
- package/node_modules/@minicode/agent-sdk/dist/src/index.js.map +1 -1
- package/node_modules/@minicode/agent-sdk/dist/src/session/session.d.ts +51 -1
- package/node_modules/@minicode/agent-sdk/dist/src/session/session.d.ts.map +1 -1
- package/node_modules/@minicode/agent-sdk/dist/src/session/session.js +210 -2
- package/node_modules/@minicode/agent-sdk/dist/src/session/session.js.map +1 -1
- package/node_modules/@minicode/agent-sdk/dist/tests/session.test.js +75 -0
- package/node_modules/@minicode/agent-sdk/dist/tests/session.test.js.map +1 -1
- package/node_modules/@minicode/agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -23,8 +23,81 @@ function formatToolCallForProgress(toolCall, maxArgsLen = 100) {
|
|
|
23
23
|
: argsStr;
|
|
24
24
|
return `${toolCall.name}(${truncated})`;
|
|
25
25
|
}
|
|
26
|
+
/** Tools whose "name" input parameter refers to a symbol in the index. */
|
|
27
|
+
const SYMBOL_TOOLS = new Set([
|
|
28
|
+
"read_symbol",
|
|
29
|
+
"find_references",
|
|
30
|
+
"get_dependencies",
|
|
31
|
+
"search_code_map",
|
|
32
|
+
]);
|
|
33
|
+
/**
|
|
34
|
+
* Extract the symbol name from a tool call input if the tool is symbol-aware.
|
|
35
|
+
*/
|
|
36
|
+
function extractFocusSymbol(toolCall) {
|
|
37
|
+
if (!SYMBOL_TOOLS.has(toolCall.name)) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
const name = toolCall.input.name ?? toolCall.input.symbol ?? toolCall.input.query;
|
|
41
|
+
return typeof name === "string" && name.length > 0 ? name : undefined;
|
|
42
|
+
}
|
|
26
43
|
const VERBOSE_SEP = "\u2500".repeat(60);
|
|
27
44
|
const PROGRESS_THINKING_MAX = 200;
|
|
45
|
+
const MAX_FOCUS_SYMBOLS = 30;
|
|
46
|
+
/**
|
|
47
|
+
* Content-aware truncation for tool outputs.
|
|
48
|
+
* Different tools benefit from different truncation strategies:
|
|
49
|
+
* - read_file: No truncation — the model needs exact text for edits
|
|
50
|
+
* - run_command: Keep tail (errors/results are at the end)
|
|
51
|
+
* - search: Keep head with a match count footer
|
|
52
|
+
* - default: Keep head (existing behavior)
|
|
53
|
+
*/
|
|
54
|
+
function truncateToolOutput(toolName, output, maxChars) {
|
|
55
|
+
// Never truncate read_file — the model needs exact content for edits
|
|
56
|
+
if (toolName === "read_file") {
|
|
57
|
+
return output;
|
|
58
|
+
}
|
|
59
|
+
if (maxChars <= 0 || output.length <= maxChars) {
|
|
60
|
+
return output;
|
|
61
|
+
}
|
|
62
|
+
const totalLen = output.length;
|
|
63
|
+
const overflowNote = `\n\n[... truncated, ${totalLen - maxChars} more chars ...]`;
|
|
64
|
+
if (toolName === "run_command") {
|
|
65
|
+
// Keep tail — errors and results are usually at the end
|
|
66
|
+
const tailChars = Math.floor(maxChars * 0.8);
|
|
67
|
+
const headChars = maxChars - tailChars;
|
|
68
|
+
const head = output.slice(0, headChars);
|
|
69
|
+
const tail = output.slice(totalLen - tailChars);
|
|
70
|
+
return `${head}\n\n[... ${totalLen - headChars - tailChars} chars omitted ...]\n\n${tail}`;
|
|
71
|
+
}
|
|
72
|
+
if (toolName === "search") {
|
|
73
|
+
// Keep head with match count
|
|
74
|
+
const lines = output.split("\n");
|
|
75
|
+
const truncated = output.slice(0, maxChars);
|
|
76
|
+
const shownLines = truncated.split("\n").length;
|
|
77
|
+
return `${truncated}\n\n[... showing ~${shownLines} of ${lines.length} match lines, ${totalLen - maxChars} more chars ...]`;
|
|
78
|
+
}
|
|
79
|
+
// Default: head-only (existing behavior)
|
|
80
|
+
return `${output.slice(0, maxChars)}${overflowNote}`;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Compute an effective keepRecentMessages that scales proportionally
|
|
84
|
+
* with context fullness. When context is lightly used, keep the full
|
|
85
|
+
* configured amount. As context fills up, reduce to allow more
|
|
86
|
+
* aggressive trimming/compaction.
|
|
87
|
+
*
|
|
88
|
+
* At ≤50% usage: keep full configured value (e.g. 12)
|
|
89
|
+
* At 100% usage: keep minimum of 4
|
|
90
|
+
*/
|
|
91
|
+
function computeEffectiveKeepRecent(configKeepRecent, currentTokens, maxTokens) {
|
|
92
|
+
const MIN_KEEP = 4;
|
|
93
|
+
const usageRatio = Math.min(currentTokens / maxTokens, 1);
|
|
94
|
+
if (usageRatio <= 0.5) {
|
|
95
|
+
return configKeepRecent;
|
|
96
|
+
}
|
|
97
|
+
// Linear scale from configKeepRecent at 50% → MIN_KEEP at 100%
|
|
98
|
+
const scale = 1 - (usageRatio - 0.5) / 0.5;
|
|
99
|
+
return Math.max(MIN_KEEP, Math.round(MIN_KEEP + (configKeepRecent - MIN_KEEP) * scale));
|
|
100
|
+
}
|
|
28
101
|
export class CodingAgent {
|
|
29
102
|
session;
|
|
30
103
|
config;
|
|
@@ -34,6 +107,19 @@ export class CodingAgent {
|
|
|
34
107
|
verbose;
|
|
35
108
|
onProgress;
|
|
36
109
|
onUiUpdate;
|
|
110
|
+
/**
|
|
111
|
+
* Tracks symbol names the user/agent has been working with.
|
|
112
|
+
* Persists across turns so the code map stays focused on the
|
|
113
|
+
* current area of interest.
|
|
114
|
+
*/
|
|
115
|
+
focusedSymbols = new Map();
|
|
116
|
+
focusGeneration = 0;
|
|
117
|
+
/**
|
|
118
|
+
* Cache of recently read file paths (key: "path:offset:limit") to avoid
|
|
119
|
+
* sending duplicate full file contents through the context window.
|
|
120
|
+
* Maps to the step number when the file was last read.
|
|
121
|
+
*/
|
|
122
|
+
fileReadCache = new Map();
|
|
37
123
|
constructor(params) {
|
|
38
124
|
this.config = params.config;
|
|
39
125
|
this.modelClient = params.modelClient;
|
|
@@ -47,14 +133,65 @@ export class CodingAgent {
|
|
|
47
133
|
getSession() {
|
|
48
134
|
return this.session;
|
|
49
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* Manually compact the conversation context.
|
|
138
|
+
* Uses LLM-based summarization when compactionModel is configured,
|
|
139
|
+
* otherwise falls back to mechanical compaction.
|
|
140
|
+
*/
|
|
141
|
+
async compactContext() {
|
|
142
|
+
const keepRecent = this.config.keepRecentMessages;
|
|
143
|
+
const compactionModel = this.config.compactionModel;
|
|
144
|
+
return compactionModel
|
|
145
|
+
? this.session.compactWithLlm(keepRecent, this.modelClient, compactionModel)
|
|
146
|
+
: this.session.compact(keepRecent);
|
|
147
|
+
}
|
|
148
|
+
addFocusSymbol(name) {
|
|
149
|
+
this.focusGeneration += 1;
|
|
150
|
+
this.focusedSymbols.set(name, this.focusGeneration);
|
|
151
|
+
// Evict oldest if over limit
|
|
152
|
+
if (this.focusedSymbols.size > MAX_FOCUS_SYMBOLS) {
|
|
153
|
+
let oldestKey = null;
|
|
154
|
+
let oldestGen = Infinity;
|
|
155
|
+
for (const [key, gen] of this.focusedSymbols) {
|
|
156
|
+
if (gen < oldestGen) {
|
|
157
|
+
oldestGen = gen;
|
|
158
|
+
oldestKey = key;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
if (oldestKey) {
|
|
162
|
+
this.focusedSymbols.delete(oldestKey);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
getFocusSet() {
|
|
167
|
+
return this.focusedSymbols.size > 0
|
|
168
|
+
? new Set(this.focusedSymbols.keys())
|
|
169
|
+
: undefined;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Check whether a previously-read file's content is still present in the
|
|
173
|
+
* session context (i.e. hasn't been trimmed/compacted away). We look for
|
|
174
|
+
* a tool message from "read_file" whose content still contains the file
|
|
175
|
+
* path and hasn't been replaced with a summary stub.
|
|
176
|
+
*/
|
|
177
|
+
isFileReadStillInContext(filePath) {
|
|
178
|
+
const messages = this.session.getMessages();
|
|
179
|
+
for (const msg of messages) {
|
|
180
|
+
if (msg.role === "tool" &&
|
|
181
|
+
msg.toolName === "read_file" &&
|
|
182
|
+
msg.content.includes(filePath) &&
|
|
183
|
+
!msg.content.startsWith("[summary:")) {
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
50
189
|
async runTurn(userMessage, options) {
|
|
51
190
|
this.session.addMessage({
|
|
52
191
|
role: "user",
|
|
53
192
|
content: userMessage,
|
|
54
193
|
});
|
|
55
194
|
const toolSchemas = this.toolRegistry.getToolSchemas();
|
|
56
|
-
const codeMapResult = this.getCodeMap?.();
|
|
57
|
-
const systemPrompt = buildSystemPrompt(this.config, toolSchemas, codeMapResult);
|
|
58
195
|
const recentToolCallFingerprints = [];
|
|
59
196
|
let totalInputTokens = 0;
|
|
60
197
|
let totalOutputTokens = 0;
|
|
@@ -63,7 +200,39 @@ export class CodingAgent {
|
|
|
63
200
|
if (this.onUiUpdate) {
|
|
64
201
|
this.onUiUpdate({ type: "step", step });
|
|
65
202
|
}
|
|
66
|
-
|
|
203
|
+
// Compute effective keepRecentMessages based on context fullness
|
|
204
|
+
// (only when adaptive scaling is enabled).
|
|
205
|
+
const effectiveKeepRecent = this.config.enableAdaptiveKeepRecent
|
|
206
|
+
? computeEffectiveKeepRecent(this.config.keepRecentMessages, this.session.getTokenEstimate(), this.config.maxContextTokens)
|
|
207
|
+
: this.config.keepRecentMessages;
|
|
208
|
+
// Auto-compact when context exceeds the configured threshold.
|
|
209
|
+
// When compactionModel is set, use LLM-based summarization for higher
|
|
210
|
+
// quality summaries. Otherwise, fall back to mechanical compaction.
|
|
211
|
+
const compactionThreshold = this.config.compactionThreshold;
|
|
212
|
+
if (compactionThreshold !== undefined && this.session.shouldCompact(this.config.maxContextTokens, compactionThreshold)) {
|
|
213
|
+
const compactionModel = this.config.compactionModel;
|
|
214
|
+
const result = compactionModel
|
|
215
|
+
? await this.session.compactWithLlm(effectiveKeepRecent, this.modelClient, compactionModel)
|
|
216
|
+
: this.session.compact(effectiveKeepRecent);
|
|
217
|
+
if (result && this.onProgress) {
|
|
218
|
+
const method = compactionModel ? "LLM" : "mechanical";
|
|
219
|
+
this.onProgress(`context compacted (${method}): ${result.removedMessages} messages summarized, ` +
|
|
220
|
+
`${result.previousTokens} → ${result.newTokens} tokens`);
|
|
221
|
+
}
|
|
222
|
+
if (result && this.onUiUpdate) {
|
|
223
|
+
const method = compactionModel ? "LLM" : "mechanical";
|
|
224
|
+
this.onUiUpdate({
|
|
225
|
+
type: "thinking",
|
|
226
|
+
content: `Context compacted (${method}): ${result.removedMessages} messages summarized, ` +
|
|
227
|
+
`${result.previousTokens} → ${result.newTokens} tokens`,
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
this.session.trim(this.config.maxContextTokens, effectiveKeepRecent);
|
|
232
|
+
// Rebuild system prompt each step with the latest focus set,
|
|
233
|
+
// so the code map dynamically adapts as the agent explores symbols.
|
|
234
|
+
const codeMapResult = this.getCodeMap?.(this.getFocusSet());
|
|
235
|
+
const systemPrompt = buildSystemPrompt(this.config, toolSchemas, codeMapResult);
|
|
67
236
|
const messages = this.session.getMessages();
|
|
68
237
|
if (this.verbose) {
|
|
69
238
|
console.error(`\n${VERBOSE_SEP}`);
|
|
@@ -128,9 +297,16 @@ export class CodingAgent {
|
|
|
128
297
|
this.onUiUpdate({ type: "thinking", content: truncated });
|
|
129
298
|
}
|
|
130
299
|
}
|
|
300
|
+
// Cap thinking text stored in context. The model's reasoning before
|
|
301
|
+
// a tool call is not useful on subsequent steps — only the intent
|
|
302
|
+
// matters. Keep the opening (which captures the decision) and trim
|
|
303
|
+
// the tail. The UI already received the full text via onUiUpdate.
|
|
304
|
+
const thinkingContent = response.text.length > PROGRESS_THINKING_MAX
|
|
305
|
+
? response.text.slice(0, PROGRESS_THINKING_MAX) + "..."
|
|
306
|
+
: response.text;
|
|
131
307
|
this.session.addMessage({
|
|
132
308
|
role: "assistant",
|
|
133
|
-
content:
|
|
309
|
+
content: thinkingContent,
|
|
134
310
|
toolCalls: response.toolCalls,
|
|
135
311
|
});
|
|
136
312
|
for (const toolCall of response.toolCalls) {
|
|
@@ -153,6 +329,11 @@ export class CodingAgent {
|
|
|
153
329
|
streamed: false,
|
|
154
330
|
};
|
|
155
331
|
}
|
|
332
|
+
// Track symbol focus from symbol-aware tool calls
|
|
333
|
+
const focusSymbol = extractFocusSymbol(toolCall);
|
|
334
|
+
if (focusSymbol) {
|
|
335
|
+
this.addFocusSymbol(focusSymbol);
|
|
336
|
+
}
|
|
156
337
|
if (this.onProgress) {
|
|
157
338
|
this.onProgress(`tool_call: ${formatToolCallForProgress(toolCall)}`);
|
|
158
339
|
}
|
|
@@ -168,11 +349,34 @@ export class CodingAgent {
|
|
|
168
349
|
console.error(`[verbose] Tool: ${toolCall.name}`);
|
|
169
350
|
console.error("Arguments:", JSON.stringify(toolCall.input, null, 2));
|
|
170
351
|
}
|
|
352
|
+
let toolResult;
|
|
171
353
|
const toolStartMs = Date.now();
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
354
|
+
// Optionally deduplicate read_file calls when enabled.
|
|
355
|
+
if (this.config.enableFileReadDedup && toolCall.name === "read_file") {
|
|
356
|
+
const cacheKey = `${toolCall.input.path}:${toolCall.input.offset ?? ""}:${toolCall.input.limit ?? ""}`;
|
|
357
|
+
const cachedStep = this.fileReadCache.get(cacheKey);
|
|
358
|
+
const canDedup = cachedStep !== undefined && this.isFileReadStillInContext(String(toolCall.input.path));
|
|
359
|
+
if (canDedup) {
|
|
360
|
+
toolResult = `[File "${toolCall.input.path}" was already read at step ${cachedStep}. Refer to that earlier output.]`;
|
|
361
|
+
}
|
|
362
|
+
else {
|
|
363
|
+
toolResult = await this.toolRegistry.execute(toolCall.name, toolCall.input);
|
|
364
|
+
this.fileReadCache.set(cacheKey, step);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
toolResult = await this.toolRegistry.execute(toolCall.name, toolCall.input);
|
|
369
|
+
}
|
|
370
|
+
// Apply content-aware truncation when enabled, otherwise
|
|
371
|
+
// fall back to simple head-only truncation.
|
|
372
|
+
if (this.config.enableToolOutputTruncation) {
|
|
373
|
+
toolResult = truncateToolOutput(toolCall.name, toolResult, this.config.maxToolOutputChars);
|
|
374
|
+
}
|
|
375
|
+
else {
|
|
376
|
+
const maxChars = this.config.maxToolOutputChars;
|
|
377
|
+
if (maxChars > 0 && toolResult.length > maxChars) {
|
|
378
|
+
toolResult = `${toolResult.slice(0, maxChars)}\n\n[... truncated, ${toolResult.length - maxChars} more chars ...]`;
|
|
379
|
+
}
|
|
176
380
|
}
|
|
177
381
|
if (this.onUiUpdate) {
|
|
178
382
|
this.onUiUpdate({
|
|
@@ -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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"}
|
|
@@ -35,6 +35,16 @@ export interface AgentConfig {
|
|
|
35
35
|
maxToolOutputChars: number;
|
|
36
36
|
openAiBaseUrl: string;
|
|
37
37
|
openAiApiKey?: string;
|
|
38
|
+
/** Deduplicate repeated read_file calls for the same file within a turn. Default: false */
|
|
39
|
+
enableFileReadDedup?: boolean;
|
|
40
|
+
/** Scale keepRecentMessages down as context fills up. Default: false */
|
|
41
|
+
enableAdaptiveKeepRecent?: boolean;
|
|
42
|
+
/** Apply content-aware truncation strategies per tool type. Default: false */
|
|
43
|
+
enableToolOutputTruncation?: boolean;
|
|
44
|
+
/** Context fullness ratio (0-1) at which compaction triggers. Default: undefined (no auto-compaction) */
|
|
45
|
+
compactionThreshold?: number;
|
|
46
|
+
/** Model to use for LLM-based compaction. When set, compaction uses an LLM to summarize instead of mechanical truncation. */
|
|
47
|
+
compactionModel?: string;
|
|
38
48
|
}
|
|
39
49
|
export interface ToolSchema {
|
|
40
50
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agent/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;AAEhF,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,WAAW,GAAG,mBAAmB,CAAC;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agent/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type { AgentConfig, AssistantMessage, ModelClient, ModelResponse, SessionMessage, ToolCall, ToolDefinition, ToolResultMessage, ToolSchema, UserMessage, } from "./agent/types.js";
|
|
2
2
|
export { CodingAgent, type UiUpdate, type UiUpdateThinking, type UiUpdateStreamingChunk, type UiUpdateStep, type UiUpdateToolCallStart, type UiUpdateToolCallEnd, } from "./agent/agent.js";
|
|
3
|
-
export { Session, type SessionSnapshot } from "./session/session.js";
|
|
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";
|
|
6
6
|
export { createReadFileTool } from "./tools/read-file.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,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,MAAM,sBAAsB,CAAC;
|
|
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,EACjB,KAAK,aAAa,GACnB,MAAM,2BAA2B,CAAC"}
|
|
@@ -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,
|
|
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,GAElB,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
import type { SessionMessage } from "../agent/types.js";
|
|
1
|
+
import type { ModelClient, SessionMessage } from "../agent/types.js";
|
|
2
2
|
export interface SessionSnapshot {
|
|
3
3
|
id: string;
|
|
4
4
|
createdAt: string;
|
|
5
5
|
messages: SessionMessage[];
|
|
6
6
|
}
|
|
7
|
+
export interface CompactionResult {
|
|
8
|
+
removedMessages: number;
|
|
9
|
+
summaryTokens: number;
|
|
10
|
+
previousTokens: number;
|
|
11
|
+
newTokens: number;
|
|
12
|
+
}
|
|
7
13
|
export declare class Session {
|
|
8
14
|
readonly id: string;
|
|
9
15
|
readonly createdAt: Date;
|
|
@@ -14,7 +20,51 @@ export declare class Session {
|
|
|
14
20
|
addMessage(message: SessionMessage): void;
|
|
15
21
|
getMessages(): SessionMessage[];
|
|
16
22
|
getTokenEstimate(): number;
|
|
23
|
+
/**
|
|
24
|
+
* Progressive context eviction with three phases:
|
|
25
|
+
*
|
|
26
|
+
* Phase 1 — Shrink: Replace old tool result contents with compact summaries.
|
|
27
|
+
* Tool outputs are ephemeral (file contents, search results) — the model
|
|
28
|
+
* already extracted what it needed. Shrinking preserves the *fact* that a
|
|
29
|
+
* tool was called and a rough sense of the result, without the full payload.
|
|
30
|
+
*
|
|
31
|
+
* Phase 2 — Drop: Remove the oldest complete message chunks (assistant +
|
|
32
|
+
* tool results, or standalone messages) as before.
|
|
33
|
+
*
|
|
34
|
+
* Phase 3 — Emergency: If still over budget after dropping all removable
|
|
35
|
+
* messages, shrink tool results in the protected (recent) window too.
|
|
36
|
+
*/
|
|
17
37
|
trim(maxTokens: number, keepRecentMessages: number): void;
|
|
38
|
+
/**
|
|
39
|
+
* Compact the conversation by summarizing old messages into a single
|
|
40
|
+
* context summary message. This preserves the *meaning* of prior exchanges
|
|
41
|
+
* while dramatically reducing token count.
|
|
42
|
+
*
|
|
43
|
+
* @param keepRecentMessages Number of recent messages to preserve verbatim.
|
|
44
|
+
* @returns CompactionResult with stats, or null if nothing to compact.
|
|
45
|
+
*/
|
|
46
|
+
compact(keepRecentMessages: number): CompactionResult | null;
|
|
47
|
+
/**
|
|
48
|
+
* Compact the conversation using an LLM to produce a high-quality summary.
|
|
49
|
+
* The LLM can identify what matters (decisions, modified files, user intent)
|
|
50
|
+
* rather than blindly truncating. Falls back to mechanical compaction on error.
|
|
51
|
+
*
|
|
52
|
+
* @param keepRecentMessages Number of recent messages to preserve verbatim.
|
|
53
|
+
* @param modelClient The model client to use for the summarization call.
|
|
54
|
+
* @param compactionModel The model ID to use (e.g. "zai-org/glm-4.7-flash").
|
|
55
|
+
* @returns CompactionResult with stats, or null if nothing to compact.
|
|
56
|
+
*/
|
|
57
|
+
compactWithLlm(keepRecentMessages: number, modelClient: ModelClient, compactionModel: string): Promise<CompactionResult | null>;
|
|
58
|
+
/**
|
|
59
|
+
* Check whether compaction should be auto-triggered.
|
|
60
|
+
* Returns true when token usage exceeds the given threshold ratio.
|
|
61
|
+
*/
|
|
62
|
+
shouldCompact(maxTokens: number, thresholdRatio?: number): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Shrink tool result messages in the given range by replacing their
|
|
65
|
+
* content with a compact summary. Already-summarized messages are skipped.
|
|
66
|
+
*/
|
|
67
|
+
private shrinkToolResults;
|
|
18
68
|
private getProtectedStart;
|
|
19
69
|
private removeOldestChunk;
|
|
20
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/session/session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/session/session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA6BrE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,OAAO;IAClB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IAEzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;gBAEhC,EAAE,GAAE,MAAqB,EAAE,SAAS,CAAC,EAAE,IAAI;IAMvD,MAAM,IAAI,eAAe;IAQzB,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO;IAQnD,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIzC,WAAW,IAAI,cAAc,EAAE;IAI/B,gBAAgB,IAAI,MAAM;IAO1B;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,IAAI;IAiCzD;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAwE5D;;;;;;;;;OASG;IACG,cAAc,CAClB,kBAAkB,EAAE,MAAM,EAC1B,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAgFnC;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,SAAM,GAAG,OAAO;IAI/D;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,iBAAiB;IAyBzB,OAAO,CAAC,iBAAiB;CAyC1B"}
|