@tarquinen/opencode-dcp 0.2.8 → 0.3.1
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 +73 -49
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +79 -15
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts +1 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +19 -7
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/deduplicator.d.ts +50 -0
- package/dist/lib/deduplicator.d.ts.map +1 -0
- package/dist/lib/deduplicator.js +181 -0
- package/dist/lib/deduplicator.js.map +1 -0
- package/dist/lib/janitor.d.ts +30 -1
- package/dist/lib/janitor.d.ts.map +1 -1
- package/dist/lib/janitor.js +380 -237
- package/dist/lib/janitor.js.map +1 -1
- package/dist/lib/logger.d.ts +8 -1
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +43 -1
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/prompt.d.ts.map +1 -1
- package/dist/lib/prompt.js +77 -5
- package/dist/lib/prompt.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,7 +6,23 @@ Automatically reduces token usage in OpenCode by removing obsolete tool outputs
|
|
|
6
6
|
|
|
7
7
|
## What It Does
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
This plugin automatically optimizes token usage by identifying and removing redundant or obsolete tool outputs from your conversation history. It operates in two modes:
|
|
10
|
+
|
|
11
|
+
### Pruning Modes
|
|
12
|
+
|
|
13
|
+
**Auto Mode** (`"auto"`): Fast, deterministic duplicate removal
|
|
14
|
+
- Removes duplicate tool calls (same tool + identical parameters)
|
|
15
|
+
- Keeps only the most recent occurrence of each duplicate
|
|
16
|
+
- Zero LLM inference costs
|
|
17
|
+
- Instant, predictable results
|
|
18
|
+
|
|
19
|
+
**Smart Mode** (`"smart"`): Comprehensive intelligent pruning (recommended)
|
|
20
|
+
- Phase 1: Automatic duplicate removal (same as auto mode)
|
|
21
|
+
- Phase 2: AI analysis to identify obsolete outputs (superseded information, dead-end exploration, etc.)
|
|
22
|
+
- Maximum token savings
|
|
23
|
+
- Small LLM cost for analysis (reduced by deduplication first)
|
|
24
|
+
|
|
25
|
+
When your session becomes idle, the plugin analyzes your conversation and prunes tool outputs that are no longer relevant, saving tokens and reducing costs.
|
|
10
26
|
|
|
11
27
|
## Installation
|
|
12
28
|
|
|
@@ -27,84 +43,92 @@ Restart OpenCode. The plugin will automatically start optimizing your sessions.
|
|
|
27
43
|
|
|
28
44
|
## Configuration
|
|
29
45
|
|
|
30
|
-
|
|
46
|
+
### Available Options
|
|
31
47
|
|
|
32
|
-
-
|
|
33
|
-
-
|
|
48
|
+
- **`enabled`** (boolean, default: `true`) - Enable/disable the plugin
|
|
49
|
+
- **`debug`** (boolean, default: `false`) - Enable detailed logging to `~/.config/opencode/logs/dcp/`
|
|
50
|
+
- **`model`** (string, optional) - Specific model for analysis (e.g., `"anthropic/claude-haiku-4-5"`). Uses session model or smart fallbacks when not specified.
|
|
51
|
+
- **`showModelErrorToasts`** (boolean, default: `true`) - Show notifications when model selection falls back
|
|
52
|
+
- **`pruningMode`** (string, default: `"smart"`) - Pruning strategy:
|
|
53
|
+
- `"auto"`: Fast duplicate removal only (zero LLM cost)
|
|
54
|
+
- `"smart"`: Deduplication + AI analysis (recommended, maximum savings)
|
|
55
|
+
- **`protectedTools`** (string[], default: `["task", "todowrite", "todoread"]`) - Tools that should never be pruned
|
|
34
56
|
|
|
35
|
-
|
|
57
|
+
Example configuration:
|
|
36
58
|
|
|
37
59
|
```jsonc
|
|
38
60
|
{
|
|
39
|
-
// Enable or disable the Dynamic Context Pruning plugin
|
|
40
61
|
"enabled": true,
|
|
41
|
-
|
|
42
|
-
// Enable debug logging to ~/.config/opencode/logs/dcp/YYYY-MM-DD.log
|
|
43
62
|
"debug": false,
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
// "model": "anthropic/claude-haiku-4-5",
|
|
47
|
-
|
|
48
|
-
// Show toast notifications when model selection fails and falls back
|
|
49
|
-
"showModelErrorToasts": true,
|
|
50
|
-
|
|
51
|
-
// List of tools that should never be pruned from context
|
|
52
|
-
// The 'task' tool is protected by default to preserve subagent coordination
|
|
53
|
-
"protectedTools": ["task"]
|
|
63
|
+
"pruningMode": "smart",
|
|
64
|
+
"protectedTools": ["task", "todowrite", "todoread"]
|
|
54
65
|
}
|
|
55
66
|
```
|
|
56
67
|
|
|
57
68
|
### Configuration Hierarchy
|
|
58
69
|
|
|
59
|
-
1. **
|
|
60
|
-
2. **Global config** (`~/.config/opencode/dcp.jsonc`) - Overrides defaults
|
|
61
|
-
3. **Project config** (`.opencode/dcp.jsonc`) - Overrides global config
|
|
70
|
+
1. **Built-in defaults** → 2. **Global config** (`~/.config/opencode/dcp.jsonc`) → 3. **Project config** (`.opencode/dcp.jsonc`)
|
|
62
71
|
|
|
63
|
-
|
|
64
|
-
- Set global defaults for all projects
|
|
65
|
-
- Override settings per-project (e.g., disable for sensitive projects, use different models)
|
|
66
|
-
- Commit project config to version control for team consistency
|
|
67
|
-
|
|
68
|
-
### Creating Project-Level Config
|
|
69
|
-
|
|
70
|
-
To create a project-specific configuration:
|
|
71
|
-
|
|
72
|
-
1. Create `.opencode` directory in your project root (if it doesn't exist)
|
|
73
|
-
2. Create `dcp.jsonc` file inside `.opencode/`
|
|
74
|
-
3. Add your project-specific settings
|
|
72
|
+
The global config is automatically created on first run. Create project configs manually to override settings per-project:
|
|
75
73
|
|
|
76
74
|
```bash
|
|
77
|
-
# In your project directory
|
|
78
75
|
mkdir -p .opencode
|
|
79
76
|
cat > .opencode/dcp.jsonc << 'EOF'
|
|
80
77
|
{
|
|
81
|
-
// Project-specific DCP settings
|
|
82
78
|
"debug": true,
|
|
83
|
-
"
|
|
79
|
+
"pruningMode": "auto"
|
|
84
80
|
}
|
|
85
81
|
EOF
|
|
86
82
|
```
|
|
87
83
|
|
|
88
|
-
|
|
84
|
+
After modifying configuration, restart OpenCode for changes to take effect.
|
|
85
|
+
|
|
86
|
+
### Choosing a Pruning Mode
|
|
89
87
|
|
|
90
|
-
|
|
88
|
+
**Use Auto Mode (`"auto"`) when:**
|
|
89
|
+
- Minimizing costs is critical (zero LLM inference for pruning)
|
|
90
|
+
- You have many repetitive tool calls (file re-reads, repeated commands)
|
|
91
|
+
- You want predictable, deterministic behavior
|
|
92
|
+
- You're debugging or testing and need consistent results
|
|
91
93
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
+
**Use Smart Mode (`"smart"`) when:**
|
|
95
|
+
- You want maximum token savings (recommended for most users)
|
|
96
|
+
- Your workflow has both duplicates and obsolete exploration
|
|
97
|
+
- You're willing to incur small LLM costs for comprehensive pruning
|
|
98
|
+
- You want the plugin to intelligently identify superseded information
|
|
94
99
|
|
|
95
|
-
|
|
96
|
-
Enable detailed debug logging. Logs are written to `~/.config/opencode/logs/dcp/YYYY-MM-DD.log`.
|
|
100
|
+
**Example notification formats:**
|
|
97
101
|
|
|
98
|
-
|
|
99
|
-
|
|
102
|
+
Auto mode:
|
|
103
|
+
```
|
|
104
|
+
🧹 DCP: Saved ~1.2K tokens (5 duplicate tools removed)
|
|
100
105
|
|
|
101
|
-
|
|
102
|
-
|
|
106
|
+
read (3 duplicates):
|
|
107
|
+
~/project/src/index.ts (2× duplicate)
|
|
108
|
+
~/project/lib/utils.ts (1× duplicate)
|
|
103
109
|
|
|
104
|
-
|
|
105
|
-
|
|
110
|
+
bash (2 duplicates):
|
|
111
|
+
Run tests (2× duplicate)
|
|
112
|
+
```
|
|
106
113
|
|
|
107
|
-
|
|
114
|
+
Smart mode:
|
|
115
|
+
```
|
|
116
|
+
🧹 DCP: Saved ~3.4K tokens (8 tools pruned)
|
|
117
|
+
|
|
118
|
+
📦 Duplicates removed (5):
|
|
119
|
+
read:
|
|
120
|
+
~/project/src/index.ts (3×)
|
|
121
|
+
~/project/lib/utils.ts (2×)
|
|
122
|
+
bash:
|
|
123
|
+
Run tests (2×)
|
|
124
|
+
|
|
125
|
+
🤖 LLM analysis (3):
|
|
126
|
+
grep (2):
|
|
127
|
+
pattern: "old.*function"
|
|
128
|
+
pattern: "deprecated"
|
|
129
|
+
list (1):
|
|
130
|
+
~/project/temp
|
|
131
|
+
```
|
|
108
132
|
|
|
109
133
|
To check the latest available version:
|
|
110
134
|
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAuCjD,QAAA,MAAM,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAuCjD,QAAA,MAAM,MAAM,EAAE,MA4aK,CAAA;AAEnB,eAAe,MAAM,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -44,7 +44,7 @@ const plugin = (async (ctx) => {
|
|
|
44
44
|
const stateManager = new StateManager();
|
|
45
45
|
const toolParametersCache = new Map(); // callID -> parameters
|
|
46
46
|
const modelCache = new Map(); // sessionID -> model info
|
|
47
|
-
const janitor = new Janitor(ctx.client, stateManager, logger, toolParametersCache, config.protectedTools, modelCache, config.model, config.showModelErrorToasts);
|
|
47
|
+
const janitor = new Janitor(ctx.client, stateManager, logger, toolParametersCache, config.protectedTools, modelCache, config.model, config.showModelErrorToasts, config.pruningMode);
|
|
48
48
|
const cacheToolParameters = (messages, component) => {
|
|
49
49
|
for (const message of messages) {
|
|
50
50
|
if (message.role !== 'assistant' || !Array.isArray(message.tool_calls)) {
|
|
@@ -88,29 +88,34 @@ const plugin = (async (ctx) => {
|
|
|
88
88
|
});
|
|
89
89
|
// Cache tool parameters for janitor metadata
|
|
90
90
|
cacheToolParameters(body.messages, "global-fetch");
|
|
91
|
+
// Always save wrapped context if debug is enabled (even when no tool messages)
|
|
92
|
+
// This captures janitor's AI inference which has messageCount=1 (just prompt)
|
|
93
|
+
const shouldLogAllRequests = logger.enabled;
|
|
91
94
|
// Check for tool messages that might need pruning
|
|
92
95
|
const toolMessages = body.messages.filter((m) => m.role === 'tool');
|
|
96
|
+
// Collect all pruned IDs across all sessions (excluding subagents)
|
|
97
|
+
// This is safe because tool_call_ids are globally unique
|
|
98
|
+
const allSessions = await ctx.client.session.list();
|
|
99
|
+
const allPrunedIds = new Set();
|
|
100
|
+
if (allSessions.data) {
|
|
101
|
+
for (const session of allSessions.data) {
|
|
102
|
+
// Skip subagent sessions (don't log - it's normal and would spam logs)
|
|
103
|
+
if (session.parentID) {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
const prunedIds = await stateManager.get(session.id);
|
|
107
|
+
prunedIds.forEach(id => allPrunedIds.add(id));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Only process tool message replacement if there are tool messages
|
|
93
111
|
if (toolMessages.length > 0) {
|
|
94
112
|
logger.debug("global-fetch", "Found tool messages in request", {
|
|
95
113
|
toolMessageCount: toolMessages.length,
|
|
96
114
|
toolCallIds: toolMessages.map((m) => m.tool_call_id).slice(0, 5)
|
|
97
115
|
});
|
|
98
|
-
// Collect all pruned IDs across all sessions (excluding subagents)
|
|
99
|
-
// This is safe because tool_call_ids are globally unique
|
|
100
|
-
const allSessions = await ctx.client.session.list();
|
|
101
|
-
const allPrunedIds = new Set();
|
|
102
|
-
if (allSessions.data) {
|
|
103
|
-
for (const session of allSessions.data) {
|
|
104
|
-
// Skip subagent sessions (don't log - it's normal and would spam logs)
|
|
105
|
-
if (session.parentID) {
|
|
106
|
-
continue;
|
|
107
|
-
}
|
|
108
|
-
const prunedIds = await stateManager.get(session.id);
|
|
109
|
-
prunedIds.forEach(id => allPrunedIds.add(id));
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
116
|
if (allPrunedIds.size > 0) {
|
|
113
117
|
let replacedCount = 0;
|
|
118
|
+
const originalMessages = JSON.parse(JSON.stringify(body.messages)); // Deep copy for logging
|
|
114
119
|
body.messages = body.messages.map((m) => {
|
|
115
120
|
// Normalize ID to lowercase for case-insensitive matching
|
|
116
121
|
if (m.role === 'tool' && allPrunedIds.has(m.tool_call_id?.toLowerCase())) {
|
|
@@ -128,11 +133,61 @@ const plugin = (async (ctx) => {
|
|
|
128
133
|
replacedCount: replacedCount,
|
|
129
134
|
totalMessages: body.messages.length
|
|
130
135
|
});
|
|
136
|
+
// Save wrapped context to file if debug is enabled
|
|
137
|
+
await logger.saveWrappedContext("global", // Use "global" as session ID since we don't know which session this is
|
|
138
|
+
body.messages, {
|
|
139
|
+
url: typeof input === 'string' ? input : 'URL object',
|
|
140
|
+
totalPrunedIds: allPrunedIds.size,
|
|
141
|
+
replacedCount,
|
|
142
|
+
totalMessages: body.messages.length,
|
|
143
|
+
originalMessageCount: originalMessages.length
|
|
144
|
+
});
|
|
131
145
|
// Update the request body with modified messages
|
|
132
146
|
init.body = JSON.stringify(body);
|
|
133
147
|
}
|
|
148
|
+
else if (shouldLogAllRequests) {
|
|
149
|
+
// Log even when no replacements occurred (tool messages exist but none were pruned)
|
|
150
|
+
await logger.saveWrappedContext("global", body.messages, {
|
|
151
|
+
url: typeof input === 'string' ? input : 'URL object',
|
|
152
|
+
totalPrunedIds: allPrunedIds.size,
|
|
153
|
+
replacedCount: 0,
|
|
154
|
+
totalMessages: body.messages.length,
|
|
155
|
+
toolMessageCount: toolMessages.length,
|
|
156
|
+
note: "Tool messages exist but none were replaced"
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
else if (shouldLogAllRequests) {
|
|
161
|
+
// Log when tool messages exist but no pruned IDs exist yet
|
|
162
|
+
await logger.saveWrappedContext("global", body.messages, {
|
|
163
|
+
url: typeof input === 'string' ? input : 'URL object',
|
|
164
|
+
totalPrunedIds: 0,
|
|
165
|
+
replacedCount: 0,
|
|
166
|
+
totalMessages: body.messages.length,
|
|
167
|
+
toolMessageCount: toolMessages.length,
|
|
168
|
+
note: "No pruned IDs exist yet"
|
|
169
|
+
});
|
|
134
170
|
}
|
|
135
171
|
}
|
|
172
|
+
else if (shouldLogAllRequests) {
|
|
173
|
+
// Log requests with NO tool messages (e.g., janitor's shadow inference)
|
|
174
|
+
// Detect if this is a janitor request by checking the prompt content
|
|
175
|
+
const isJanitorRequest = body.messages.length === 1 &&
|
|
176
|
+
body.messages[0]?.role === 'user' &&
|
|
177
|
+
typeof body.messages[0]?.content === 'string' &&
|
|
178
|
+
body.messages[0].content.includes('conversation analyzer that identifies obsolete tool outputs');
|
|
179
|
+
const sessionId = isJanitorRequest ? "janitor-shadow" : "global";
|
|
180
|
+
await logger.saveWrappedContext(sessionId, body.messages, {
|
|
181
|
+
url: typeof input === 'string' ? input : 'URL object',
|
|
182
|
+
totalPrunedIds: allPrunedIds.size,
|
|
183
|
+
replacedCount: 0,
|
|
184
|
+
totalMessages: body.messages.length,
|
|
185
|
+
toolMessageCount: 0,
|
|
186
|
+
note: isJanitorRequest
|
|
187
|
+
? "Janitor shadow inference with embedded session history in prompt"
|
|
188
|
+
: "No tool messages in request (likely title generation or other inference)"
|
|
189
|
+
});
|
|
190
|
+
}
|
|
136
191
|
}
|
|
137
192
|
}
|
|
138
193
|
catch (e) {
|
|
@@ -146,6 +201,7 @@ const plugin = (async (ctx) => {
|
|
|
146
201
|
debug: config.debug,
|
|
147
202
|
protectedTools: config.protectedTools,
|
|
148
203
|
model: config.model,
|
|
204
|
+
pruningMode: config.pruningMode,
|
|
149
205
|
globalConfigFile: join(homedir(), ".config", "opencode", "dcp.jsonc"),
|
|
150
206
|
projectConfigFile: ctx.directory ? join(ctx.directory, ".opencode", "dcp.jsonc") : "N/A",
|
|
151
207
|
logDirectory: join(homedir(), ".config", "opencode", "logs", "dcp"),
|
|
@@ -317,6 +373,14 @@ const plugin = (async (ctx) => {
|
|
|
317
373
|
totalToolCount: remainingToolMessages.length,
|
|
318
374
|
toolCallIds: remainingToolMessages.map((m) => m.tool_call_id)
|
|
319
375
|
});
|
|
376
|
+
// Save wrapped context to file if debug is enabled
|
|
377
|
+
await logger.saveWrappedContext(sessionId, body.messages, {
|
|
378
|
+
url: typeof fetchInput === 'string' ? fetchInput : 'URL object',
|
|
379
|
+
totalMessages: originalMessageCount,
|
|
380
|
+
replacedCount: prunedThisRequest,
|
|
381
|
+
prunedIds,
|
|
382
|
+
wrapper: 'session-specific'
|
|
383
|
+
});
|
|
320
384
|
// Update the request body with modified messages
|
|
321
385
|
init.body = JSON.stringify(body);
|
|
322
386
|
parsedBody = body;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.d.ts
CHANGED
package/dist/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oBAAoB,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,WAAW,EAAE,MAAM,GAAG,OAAO,CAAA;CAChC;AAwHD;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,YAAY,CA4CzD"}
|
package/dist/lib/config.js
CHANGED
|
@@ -7,8 +7,9 @@ import { Logger } from './logger';
|
|
|
7
7
|
const defaultConfig = {
|
|
8
8
|
enabled: true, // Plugin is enabled by default
|
|
9
9
|
debug: false, // Disable debug logging by default
|
|
10
|
-
protectedTools: ['task'], // Tools that should never be pruned
|
|
11
|
-
showModelErrorToasts: true // Show model error toasts by default
|
|
10
|
+
protectedTools: ['task', 'todowrite', 'todoread'], // Tools that should never be pruned (including stateful tools)
|
|
11
|
+
showModelErrorToasts: true, // Show model error toasts by default
|
|
12
|
+
pruningMode: 'smart' // Default to smart mode (deduplication + LLM analysis)
|
|
12
13
|
};
|
|
13
14
|
const GLOBAL_CONFIG_DIR = join(homedir(), '.config', 'opencode');
|
|
14
15
|
const GLOBAL_CONFIG_PATH_JSONC = join(GLOBAL_CONFIG_DIR, 'dcp.jsonc');
|
|
@@ -73,7 +74,10 @@ function createDefaultConfig() {
|
|
|
73
74
|
// Enable or disable the Dynamic Context Pruning plugin
|
|
74
75
|
"enabled": true,
|
|
75
76
|
|
|
76
|
-
// Enable debug logging to ~/.config/opencode/logs/dcp/
|
|
77
|
+
// Enable debug logging to ~/.config/opencode/logs/dcp/
|
|
78
|
+
// Outputs include:
|
|
79
|
+
// - daily/YYYY-MM-DD.log (plugin activity, decisions, errors)
|
|
80
|
+
// - ai-context/*.json (messages sent to AI after pruning)
|
|
77
81
|
"debug": false,
|
|
78
82
|
|
|
79
83
|
// Optional: Specify a model to use for analysis instead of the session model
|
|
@@ -85,9 +89,15 @@ function createDefaultConfig() {
|
|
|
85
89
|
// Set to false to disable these informational toasts
|
|
86
90
|
"showModelErrorToasts": true,
|
|
87
91
|
|
|
92
|
+
// Pruning strategy:
|
|
93
|
+
// "auto": Automatic duplicate removal only (fast, no LLM cost)
|
|
94
|
+
// "smart": Deduplication + AI analysis for intelligent pruning (recommended)
|
|
95
|
+
"pruningMode": "smart",
|
|
96
|
+
|
|
88
97
|
// List of tools that should never be pruned from context
|
|
89
|
-
//
|
|
90
|
-
"
|
|
98
|
+
// "task": Each subagent invocation is intentional
|
|
99
|
+
// "todowrite"/"todoread": Stateful tools where each call matters
|
|
100
|
+
"protectedTools": ["task", "todowrite", "todoread"]
|
|
91
101
|
}
|
|
92
102
|
`;
|
|
93
103
|
writeFileSync(GLOBAL_CONFIG_PATH_JSONC, configContent, 'utf-8');
|
|
@@ -132,7 +142,8 @@ export function getConfig(ctx) {
|
|
|
132
142
|
debug: globalConfig.debug ?? config.debug,
|
|
133
143
|
protectedTools: globalConfig.protectedTools ?? config.protectedTools,
|
|
134
144
|
model: globalConfig.model ?? config.model,
|
|
135
|
-
showModelErrorToasts: globalConfig.showModelErrorToasts ?? config.showModelErrorToasts
|
|
145
|
+
showModelErrorToasts: globalConfig.showModelErrorToasts ?? config.showModelErrorToasts,
|
|
146
|
+
pruningMode: globalConfig.pruningMode ?? config.pruningMode
|
|
136
147
|
};
|
|
137
148
|
logger.info('config', 'Loaded global config', { path: configPaths.global });
|
|
138
149
|
}
|
|
@@ -151,7 +162,8 @@ export function getConfig(ctx) {
|
|
|
151
162
|
debug: projectConfig.debug ?? config.debug,
|
|
152
163
|
protectedTools: projectConfig.protectedTools ?? config.protectedTools,
|
|
153
164
|
model: projectConfig.model ?? config.model,
|
|
154
|
-
showModelErrorToasts: projectConfig.showModelErrorToasts ?? config.showModelErrorToasts
|
|
165
|
+
showModelErrorToasts: projectConfig.showModelErrorToasts ?? config.showModelErrorToasts,
|
|
166
|
+
pruningMode: projectConfig.pruningMode ?? config.pruningMode
|
|
155
167
|
};
|
|
156
168
|
logger.info('config', 'Loaded project config (overrides global)', { path: configPaths.project });
|
|
157
169
|
}
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AACjF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deduplicator Module
|
|
3
|
+
*
|
|
4
|
+
* Handles automatic detection and removal of duplicate tool calls based on
|
|
5
|
+
* tool name + parameter signature matching.
|
|
6
|
+
*/
|
|
7
|
+
export interface DuplicateDetectionResult {
|
|
8
|
+
duplicateIds: string[];
|
|
9
|
+
deduplicationDetails: Map<string, {
|
|
10
|
+
toolName: string;
|
|
11
|
+
parameterKey: string;
|
|
12
|
+
duplicateCount: number;
|
|
13
|
+
prunedIds: string[];
|
|
14
|
+
keptId: string;
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Detects duplicate tool calls based on tool name + parameter signature
|
|
19
|
+
* Keeps only the most recent occurrence of each duplicate set
|
|
20
|
+
* Respects protected tools - they are never deduplicated
|
|
21
|
+
*/
|
|
22
|
+
export declare function detectDuplicates(toolMetadata: Map<string, {
|
|
23
|
+
tool: string;
|
|
24
|
+
parameters?: any;
|
|
25
|
+
}>, unprunedToolCallIds: string[], // In chronological order
|
|
26
|
+
protectedTools: string[]): DuplicateDetectionResult;
|
|
27
|
+
/**
|
|
28
|
+
* Extract human-readable parameter key for notifications
|
|
29
|
+
* Supports all ACTIVE OpenCode tools with appropriate parameter extraction
|
|
30
|
+
*
|
|
31
|
+
* ACTIVE Tools (always available):
|
|
32
|
+
* - File: read, write, edit
|
|
33
|
+
* - Search: list, glob, grep
|
|
34
|
+
* - Execution: bash
|
|
35
|
+
* - Agent: task
|
|
36
|
+
* - Web: webfetch
|
|
37
|
+
* - Todo: todowrite, todoread
|
|
38
|
+
*
|
|
39
|
+
* CONDITIONAL Tools (may be disabled):
|
|
40
|
+
* - batch (experimental.batch_tool flag)
|
|
41
|
+
* - websearch, codesearch (OPENCODE_EXPERIMENTAL_EXA flag)
|
|
42
|
+
*
|
|
43
|
+
* INACTIVE Tools (exist but not registered, skip):
|
|
44
|
+
* - multiedit, patch, lsp_diagnostics, lsp_hover
|
|
45
|
+
*/
|
|
46
|
+
export declare function extractParameterKey(metadata: {
|
|
47
|
+
tool: string;
|
|
48
|
+
parameters?: any;
|
|
49
|
+
}): string;
|
|
50
|
+
//# sourceMappingURL=deduplicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deduplicator.d.ts","sourceRoot":"","sources":["../../lib/deduplicator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,wBAAwB;IACrC,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE;QAC9B,QAAQ,EAAE,MAAM,CAAA;QAChB,YAAY,EAAE,MAAM,CAAA;QACpB,cAAc,EAAE,MAAM,CAAA;QACtB,SAAS,EAAE,MAAM,EAAE,CAAA;QACnB,MAAM,EAAE,MAAM,CAAA;KACjB,CAAC,CAAA;CACL;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC5B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC,EAC7D,mBAAmB,EAAE,MAAM,EAAE,EAAG,yBAAyB;AACzD,cAAc,EAAE,MAAM,EAAE,GACzB,wBAAwB,CA0C1B;AAgDD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,GAAG,CAAA;CAAE,GAAG,MAAM,CAwExF"}
|