@tarquinen/opencode-dcp 0.3.10 → 0.3.12
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 +13 -95
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/janitor.d.ts +11 -3
- package/dist/lib/janitor.d.ts.map +1 -1
- package/dist/lib/janitor.js +47 -17
- package/dist/lib/janitor.js.map +1 -1
- package/dist/lib/version-checker.d.ts +20 -0
- package/dist/lib/version-checker.d.ts.map +1 -0
- package/dist/lib/version-checker.js +84 -0
- package/dist/lib/version-checker.js.map +1 -0
- package/package.json +4 -2
- package/dist/lib/state.d.ts +0 -13
- package/dist/lib/state.d.ts.map +0 -1
- package/dist/lib/state.js +0 -24
- package/dist/lib/state.js.map +0 -1
package/README.md
CHANGED
|
@@ -6,23 +6,9 @@ Automatically reduces token usage in OpenCode by removing obsolete tool outputs
|
|
|
6
6
|
|
|
7
7
|
## What It Does
|
|
8
8
|
|
|
9
|
-
This plugin automatically optimizes token usage by identifying and removing redundant or obsolete tool outputs from your conversation history.
|
|
9
|
+
This plugin automatically optimizes token usage by identifying and removing redundant or obsolete tool outputs from your conversation history.
|
|
10
10
|
|
|
11
|
-
|
|
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.
|
|
11
|
+

|
|
26
12
|
|
|
27
13
|
## Installation
|
|
28
14
|
|
|
@@ -39,10 +25,19 @@ Add to your OpenCode configuration:
|
|
|
39
25
|
}
|
|
40
26
|
```
|
|
41
27
|
|
|
28
|
+
> **Note:** OpenCode's `plugin` arrays are not merged between global and project configs—project config completely overrides global. If you have plugins in your global config and add a project config, include all desired plugins in the project config.
|
|
29
|
+
|
|
42
30
|
Restart OpenCode. The plugin will automatically start optimizing your sessions.
|
|
43
31
|
|
|
44
32
|
## Configuration
|
|
45
33
|
|
|
34
|
+
DCP uses its own configuration file, separate from OpenCode's `opencode.json`:
|
|
35
|
+
|
|
36
|
+
- **Global:** `~/.config/opencode/dcp.jsonc`
|
|
37
|
+
- **Project:** `.opencode/dcp.jsonc`
|
|
38
|
+
|
|
39
|
+
The global config is automatically created on first run. Create a project config to override settings per-project.
|
|
40
|
+
|
|
46
41
|
### Available Options
|
|
47
42
|
|
|
48
43
|
- **`enabled`** (boolean, default: `true`) - Enable/disable the plugin
|
|
@@ -72,87 +67,10 @@ Example configuration:
|
|
|
72
67
|
|
|
73
68
|
### Configuration Hierarchy
|
|
74
69
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
The global config is automatically created on first run. Create project configs manually to override settings per-project:
|
|
78
|
-
|
|
79
|
-
```bash
|
|
80
|
-
mkdir -p .opencode
|
|
81
|
-
cat > .opencode/dcp.jsonc << 'EOF'
|
|
82
|
-
{
|
|
83
|
-
"debug": true,
|
|
84
|
-
"pruningMode": "auto"
|
|
85
|
-
}
|
|
86
|
-
EOF
|
|
87
|
-
```
|
|
70
|
+
Settings are merged in order: **Built-in defaults** → **Global config** → **Project config**
|
|
88
71
|
|
|
89
72
|
After modifying configuration, restart OpenCode for changes to take effect.
|
|
90
73
|
|
|
91
|
-
### Choosing a Pruning Mode
|
|
92
|
-
|
|
93
|
-
**Use Auto Mode (`"auto"`) when:**
|
|
94
|
-
- Minimizing costs is critical (zero LLM inference for pruning)
|
|
95
|
-
- You have many repetitive tool calls (file re-reads, repeated commands)
|
|
96
|
-
- You want predictable, deterministic behavior
|
|
97
|
-
- You're debugging or testing and need consistent results
|
|
98
|
-
|
|
99
|
-
**Use Smart Mode (`"smart"`) when:**
|
|
100
|
-
- You want maximum token savings (recommended for most users)
|
|
101
|
-
- Your workflow has both duplicates and obsolete exploration
|
|
102
|
-
- You're willing to incur small LLM costs for comprehensive pruning
|
|
103
|
-
- You want the plugin to intelligently identify superseded information
|
|
104
|
-
|
|
105
|
-
**Example notification formats:**
|
|
106
|
-
|
|
107
|
-
**Detailed mode** (default):
|
|
108
|
-
|
|
109
|
-
Auto mode:
|
|
110
|
-
```
|
|
111
|
-
🧹 DCP: Saved ~1.2K tokens (5 duplicate tools removed)
|
|
112
|
-
|
|
113
|
-
read (3 duplicates):
|
|
114
|
-
~/project/src/index.ts (2× duplicate)
|
|
115
|
-
~/project/lib/utils.ts (1× duplicate)
|
|
116
|
-
|
|
117
|
-
bash (2 duplicates):
|
|
118
|
-
Run tests (2× duplicate)
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
Smart mode:
|
|
122
|
-
```
|
|
123
|
-
🧹 DCP: Saved ~3.4K tokens (8 tools pruned)
|
|
124
|
-
|
|
125
|
-
📦 Duplicates removed (5):
|
|
126
|
-
read:
|
|
127
|
-
~/project/src/index.ts (3×)
|
|
128
|
-
~/project/lib/utils.ts (2×)
|
|
129
|
-
bash:
|
|
130
|
-
Run tests (2×)
|
|
131
|
-
|
|
132
|
-
🤖 LLM analysis (3):
|
|
133
|
-
grep (2):
|
|
134
|
-
pattern: "old.*function"
|
|
135
|
-
pattern: "deprecated"
|
|
136
|
-
list (1):
|
|
137
|
-
~/project/temp
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
**Minimal mode** (`"pruning_summary": "minimal"`):
|
|
141
|
-
```
|
|
142
|
-
🧹 DCP: Saved ~3.4K tokens (8 tools pruned)
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
**Off mode** (`"pruning_summary": "off"`):
|
|
146
|
-
```
|
|
147
|
-
(No notification displayed - silent pruning)
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
To check the latest available version:
|
|
151
|
-
|
|
152
|
-
```bash
|
|
153
|
-
npm view @tarquinen/opencode-dcp version
|
|
154
|
-
```
|
|
155
|
-
|
|
156
74
|
### Version Pinning
|
|
157
75
|
|
|
158
76
|
If you want to ensure a specific version is always used or update your version, you can pin it in your config:
|
|
@@ -160,7 +78,7 @@ If you want to ensure a specific version is always used or update your version,
|
|
|
160
78
|
```json
|
|
161
79
|
{
|
|
162
80
|
"plugin": [
|
|
163
|
-
"@tarquinen/opencode-dcp@0.
|
|
81
|
+
"@tarquinen/opencode-dcp@0.3.12"
|
|
164
82
|
]
|
|
165
83
|
}
|
|
166
84
|
```
|
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;AAoBjD,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;AAoBjD,QAAA,MAAM,MAAM,EAAE,MA0KK,CAAA;AAEnB,eAAe,MAAM,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getConfig } from "./lib/config";
|
|
2
2
|
import { Logger } from "./lib/logger";
|
|
3
|
-
import { StateManager } from "./lib/state";
|
|
4
3
|
import { Janitor } from "./lib/janitor";
|
|
4
|
+
import { checkForUpdates } from "./lib/version-checker";
|
|
5
5
|
/**
|
|
6
6
|
* Checks if a session is a subagent (child session)
|
|
7
7
|
* Subagent sessions should skip pruning operations
|
|
@@ -28,10 +28,11 @@ const plugin = (async (ctx) => {
|
|
|
28
28
|
}
|
|
29
29
|
// Logger uses ~/.config/opencode/logs/dcp/ for consistent log location
|
|
30
30
|
const logger = new Logger(config.debug);
|
|
31
|
-
const
|
|
31
|
+
const prunedIdsState = new Map();
|
|
32
|
+
const statsState = new Map();
|
|
32
33
|
const toolParametersCache = new Map(); // callID -> parameters
|
|
33
34
|
const modelCache = new Map(); // sessionID -> model info
|
|
34
|
-
const janitor = new Janitor(ctx.client,
|
|
35
|
+
const janitor = new Janitor(ctx.client, prunedIdsState, statsState, logger, toolParametersCache, config.protectedTools, modelCache, config.model, config.showModelErrorToasts, config.pruningMode, config.pruning_summary, ctx.directory);
|
|
35
36
|
const cacheToolParameters = (messages) => {
|
|
36
37
|
for (const message of messages) {
|
|
37
38
|
if (message.role !== 'assistant' || !Array.isArray(message.tool_calls)) {
|
|
@@ -76,8 +77,8 @@ const plugin = (async (ctx) => {
|
|
|
76
77
|
for (const session of allSessions.data) {
|
|
77
78
|
if (session.parentID)
|
|
78
79
|
continue; // Skip subagent sessions
|
|
79
|
-
const prunedIds =
|
|
80
|
-
prunedIds.forEach(id => allPrunedIds.add(id));
|
|
80
|
+
const prunedIds = prunedIdsState.get(session.id) ?? [];
|
|
81
|
+
prunedIds.forEach((id) => allPrunedIds.add(id));
|
|
81
82
|
}
|
|
82
83
|
}
|
|
83
84
|
// Only process tool message replacement if there are tool messages and pruned IDs
|
|
@@ -123,6 +124,8 @@ const plugin = (async (ctx) => {
|
|
|
123
124
|
mode: config.pruningMode,
|
|
124
125
|
model: config.model || "auto"
|
|
125
126
|
});
|
|
127
|
+
// Check for updates on launch (fire and forget)
|
|
128
|
+
checkForUpdates(ctx.client).catch(() => { });
|
|
126
129
|
return {
|
|
127
130
|
/**
|
|
128
131
|
* Event Hook: Triggers janitor analysis when session becomes idle
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/janitor.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import type { Logger } from "./logger";
|
|
2
|
-
|
|
2
|
+
export interface SessionStats {
|
|
3
|
+
totalToolsPruned: number;
|
|
4
|
+
totalTokensSaved: number;
|
|
5
|
+
}
|
|
3
6
|
export declare class Janitor {
|
|
4
7
|
private client;
|
|
5
|
-
private
|
|
8
|
+
private prunedIdsState;
|
|
9
|
+
private statsState;
|
|
6
10
|
private logger;
|
|
7
11
|
private toolParametersCache;
|
|
8
12
|
private protectedTools;
|
|
@@ -12,7 +16,7 @@ export declare class Janitor {
|
|
|
12
16
|
private pruningMode;
|
|
13
17
|
private pruningSummary;
|
|
14
18
|
private workingDirectory?;
|
|
15
|
-
constructor(client: any,
|
|
19
|
+
constructor(client: any, prunedIdsState: Map<string, string[]>, statsState: Map<string, SessionStats>, logger: Logger, toolParametersCache: Map<string, any>, protectedTools: string[], modelCache: Map<string, {
|
|
16
20
|
providerID: string;
|
|
17
21
|
modelID: string;
|
|
18
22
|
}>, configModel?: string | undefined, // Format: "provider/model"
|
|
@@ -29,6 +33,10 @@ export declare class Janitor {
|
|
|
29
33
|
* Helper function to shorten paths for display
|
|
30
34
|
*/
|
|
31
35
|
private shortenPath;
|
|
36
|
+
/**
|
|
37
|
+
* Shorten a single path string
|
|
38
|
+
*/
|
|
39
|
+
private shortenSinglePath;
|
|
32
40
|
/**
|
|
33
41
|
* Replace pruned tool outputs with placeholder text to save tokens in janitor context
|
|
34
42
|
* This applies the same replacement logic as the global fetch wrapper, but for the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"janitor.d.ts","sourceRoot":"","sources":["../../lib/janitor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"janitor.d.ts","sourceRoot":"","sources":["../../lib/janitor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAMtC,MAAM,WAAW,YAAY;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;CAC3B;AAED,qBAAa,OAAO;IAEZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW,CAAC;IACpB,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,gBAAgB,CAAC;gBAXjB,MAAM,EAAE,GAAG,EACX,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACrC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACrC,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EACrC,cAAc,EAAE,MAAM,EAAE,EACxB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,EAChE,WAAW,CAAC,EAAE,MAAM,YAAA,EAAE,2BAA2B;IACjD,oBAAoB,GAAE,OAAc,EAAE,yCAAyC;IAC/E,WAAW,GAAE,MAAM,GAAG,OAAiB,EAAE,mBAAmB;IAC5D,cAAc,GAAE,KAAK,GAAG,SAAS,GAAG,UAAuB,EAAE,0BAA0B;IACvF,gBAAgB,CAAC,EAAE,MAAM,YAAA;IAGrC;;OAEG;YACW,kBAAkB;IAsB1B,GAAG,CAAC,SAAS,EAAE,MAAM;IAkR3B;;OAEG;IACH,OAAO,CAAC,WAAW;IAcnB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA0CzB;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IA8BhC;;OAEG;YACW,oBAAoB;IAmBlC;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAoCzB;;OAEG;YACW,uBAAuB;IAqBrC;;OAEG;YACW,wBAAwB;IA8DtC;;OAEG;YACW,yBAAyB;CA0F1C"}
|
package/dist/lib/janitor.js
CHANGED
|
@@ -5,7 +5,8 @@ import { estimateTokensBatch, formatTokenCount } from "./tokenizer";
|
|
|
5
5
|
import { detectDuplicates, extractParameterKey } from "./deduplicator";
|
|
6
6
|
export class Janitor {
|
|
7
7
|
client;
|
|
8
|
-
|
|
8
|
+
prunedIdsState;
|
|
9
|
+
statsState;
|
|
9
10
|
logger;
|
|
10
11
|
toolParametersCache;
|
|
11
12
|
protectedTools;
|
|
@@ -15,14 +16,15 @@ export class Janitor {
|
|
|
15
16
|
pruningMode;
|
|
16
17
|
pruningSummary;
|
|
17
18
|
workingDirectory;
|
|
18
|
-
constructor(client,
|
|
19
|
+
constructor(client, prunedIdsState, statsState, logger, toolParametersCache, protectedTools, modelCache, configModel, // Format: "provider/model"
|
|
19
20
|
showModelErrorToasts = true, // Whether to show toast for model errors
|
|
20
21
|
pruningMode = "smart", // Pruning strategy
|
|
21
22
|
pruningSummary = "detailed", // UI summary display mode
|
|
22
23
|
workingDirectory // Current working directory for relative path display
|
|
23
24
|
) {
|
|
24
25
|
this.client = client;
|
|
25
|
-
this.
|
|
26
|
+
this.prunedIdsState = prunedIdsState;
|
|
27
|
+
this.statsState = statsState;
|
|
26
28
|
this.logger = logger;
|
|
27
29
|
this.toolParametersCache = toolParametersCache;
|
|
28
30
|
this.protectedTools = protectedTools;
|
|
@@ -117,7 +119,7 @@ export class Janitor {
|
|
|
117
119
|
}
|
|
118
120
|
}
|
|
119
121
|
// Get already pruned IDs to filter them out
|
|
120
|
-
const alreadyPrunedIds =
|
|
122
|
+
const alreadyPrunedIds = this.prunedIdsState.get(sessionID) ?? [];
|
|
121
123
|
const unprunedToolCallIds = toolCallIds.filter(id => !alreadyPrunedIds.includes(id));
|
|
122
124
|
// If there are no unpruned tool calls, skip analysis
|
|
123
125
|
if (unprunedToolCallIds.length === 0) {
|
|
@@ -242,7 +244,12 @@ export class Janitor {
|
|
|
242
244
|
// Calculate token savings once (used by both notification and log)
|
|
243
245
|
const tokensSaved = await this.calculateTokensSaved(finalNewlyPrunedIds, toolOutputs);
|
|
244
246
|
// Accumulate session stats (for showing cumulative totals in UI)
|
|
245
|
-
const
|
|
247
|
+
const currentStats = this.statsState.get(sessionID) ?? { totalToolsPruned: 0, totalTokensSaved: 0 };
|
|
248
|
+
const sessionStats = {
|
|
249
|
+
totalToolsPruned: currentStats.totalToolsPruned + finalNewlyPrunedIds.length,
|
|
250
|
+
totalTokensSaved: currentStats.totalTokensSaved + tokensSaved
|
|
251
|
+
};
|
|
252
|
+
this.statsState.set(sessionID, sessionStats);
|
|
246
253
|
if (this.pruningMode === "auto") {
|
|
247
254
|
await this.sendAutoModeNotification(sessionID, deduplicatedIds, deduplicationDetails, tokensSaved, sessionStats);
|
|
248
255
|
}
|
|
@@ -254,7 +261,7 @@ export class Janitor {
|
|
|
254
261
|
// ============================================================
|
|
255
262
|
// Merge newly pruned IDs with existing ones (using expanded IDs)
|
|
256
263
|
const allPrunedIds = [...new Set([...alreadyPrunedIds, ...finalPrunedIds])];
|
|
257
|
-
|
|
264
|
+
this.prunedIdsState.set(sessionID, allPrunedIds);
|
|
258
265
|
// Log final summary
|
|
259
266
|
// Format: "Pruned 5/5 tools (~4.2K tokens), 0 kept" or with breakdown if both duplicate and llm
|
|
260
267
|
const prunedCount = finalNewlyPrunedIds.length;
|
|
@@ -274,9 +281,34 @@ export class Janitor {
|
|
|
274
281
|
/**
|
|
275
282
|
* Helper function to shorten paths for display
|
|
276
283
|
*/
|
|
277
|
-
shortenPath(
|
|
278
|
-
//
|
|
284
|
+
shortenPath(input) {
|
|
285
|
+
// Handle compound strings like: "pattern" in /absolute/path
|
|
286
|
+
// Extract and shorten just the path portion
|
|
287
|
+
const inPathMatch = input.match(/^(.+) in (.+)$/);
|
|
288
|
+
if (inPathMatch) {
|
|
289
|
+
const prefix = inPathMatch[1];
|
|
290
|
+
const pathPart = inPathMatch[2];
|
|
291
|
+
const shortenedPath = this.shortenSinglePath(pathPart);
|
|
292
|
+
return `${prefix} in ${shortenedPath}`;
|
|
293
|
+
}
|
|
294
|
+
return this.shortenSinglePath(input);
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Shorten a single path string
|
|
298
|
+
*/
|
|
299
|
+
shortenSinglePath(path) {
|
|
279
300
|
const homeDir = require('os').homedir();
|
|
301
|
+
// Strip working directory FIRST (before ~ replacement) for cleaner relative paths
|
|
302
|
+
if (this.workingDirectory) {
|
|
303
|
+
if (path.startsWith(this.workingDirectory + '/')) {
|
|
304
|
+
return path.slice(this.workingDirectory.length + 1);
|
|
305
|
+
}
|
|
306
|
+
// Exact match (the directory itself)
|
|
307
|
+
if (path === this.workingDirectory) {
|
|
308
|
+
return '.';
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
// Replace home directory with ~
|
|
280
312
|
if (path.startsWith(homeDir)) {
|
|
281
313
|
path = '~' + path.slice(homeDir.length);
|
|
282
314
|
}
|
|
@@ -285,19 +317,17 @@ export class Janitor {
|
|
|
285
317
|
if (nodeModulesMatch) {
|
|
286
318
|
return `${nodeModulesMatch[1]}/${nodeModulesMatch[2]}`;
|
|
287
319
|
}
|
|
288
|
-
//
|
|
320
|
+
// Try matching against ~ version of working directory (for paths already with ~)
|
|
289
321
|
if (this.workingDirectory) {
|
|
290
|
-
// Try to match against the absolute working directory first
|
|
291
|
-
if (path.startsWith(this.workingDirectory + '/')) {
|
|
292
|
-
return path.slice(this.workingDirectory.length + 1);
|
|
293
|
-
}
|
|
294
|
-
// Also try matching against ~ version of working directory
|
|
295
322
|
const workingDirWithTilde = this.workingDirectory.startsWith(homeDir)
|
|
296
323
|
? '~' + this.workingDirectory.slice(homeDir.length)
|
|
297
324
|
: null;
|
|
298
325
|
if (workingDirWithTilde && path.startsWith(workingDirWithTilde + '/')) {
|
|
299
326
|
return path.slice(workingDirWithTilde.length + 1);
|
|
300
327
|
}
|
|
328
|
+
if (workingDirWithTilde && path === workingDirWithTilde) {
|
|
329
|
+
return '.';
|
|
330
|
+
}
|
|
301
331
|
}
|
|
302
332
|
return path;
|
|
303
333
|
}
|
|
@@ -402,7 +432,7 @@ export class Janitor {
|
|
|
402
432
|
let message = `🧹 DCP: Saved ~${tokensFormatted} tokens (${totalPruned} ${toolText} pruned)`;
|
|
403
433
|
// Add session totals if there's been more than one pruning run
|
|
404
434
|
if (sessionStats.totalToolsPruned > totalPruned) {
|
|
405
|
-
message += ` │ Session:
|
|
435
|
+
message += ` │ Session: ~${formatTokenCount(sessionStats.totalTokensSaved)} tokens, ${sessionStats.totalToolsPruned} tools`;
|
|
406
436
|
}
|
|
407
437
|
await this.sendIgnoredMessage(sessionID, message);
|
|
408
438
|
}
|
|
@@ -426,7 +456,7 @@ export class Janitor {
|
|
|
426
456
|
let message = `🧹 DCP: Saved ~${tokensFormatted} tokens (${deduplicatedIds.length} duplicate ${toolText} removed)`;
|
|
427
457
|
// Add session totals if there's been more than one pruning run
|
|
428
458
|
if (sessionStats.totalToolsPruned > deduplicatedIds.length) {
|
|
429
|
-
message += ` │ Session:
|
|
459
|
+
message += ` │ Session: ~${formatTokenCount(sessionStats.totalTokensSaved)} tokens, ${sessionStats.totalToolsPruned} tools`;
|
|
430
460
|
}
|
|
431
461
|
message += '\n';
|
|
432
462
|
// Group by tool type
|
|
@@ -475,7 +505,7 @@ export class Janitor {
|
|
|
475
505
|
let message = `🧹 DCP: Saved ~${tokensFormatted} tokens (${totalPruned} tool${totalPruned > 1 ? 's' : ''} pruned)`;
|
|
476
506
|
// Add session totals if there's been more than one pruning run
|
|
477
507
|
if (sessionStats.totalToolsPruned > totalPruned) {
|
|
478
|
-
message += ` │ Session:
|
|
508
|
+
message += ` │ Session: ~${formatTokenCount(sessionStats.totalTokensSaved)} tokens, ${sessionStats.totalToolsPruned} tools`;
|
|
479
509
|
}
|
|
480
510
|
message += '\n';
|
|
481
511
|
// Section 1: Deduplicated tools
|
package/dist/lib/janitor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"janitor.js","sourceRoot":"","sources":["../../lib/janitor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"janitor.js","sourceRoot":"","sources":["../../lib/janitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const PACKAGE_NAME = "@tarquinen/opencode-dcp";
|
|
2
|
+
export declare const NPM_REGISTRY_URL = "https://registry.npmjs.org/@tarquinen/opencode-dcp/latest";
|
|
3
|
+
/**
|
|
4
|
+
* Gets the local package version from package.json
|
|
5
|
+
*/
|
|
6
|
+
export declare function getLocalVersion(): string;
|
|
7
|
+
/**
|
|
8
|
+
* Fetches the latest version from npm registry
|
|
9
|
+
*/
|
|
10
|
+
export declare function getNpmVersion(): Promise<string | null>;
|
|
11
|
+
/**
|
|
12
|
+
* Compares semver versions. Returns true if remote > local
|
|
13
|
+
*/
|
|
14
|
+
export declare function isOutdated(local: string, remote: string): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Checks for updates and shows a toast if outdated.
|
|
17
|
+
* Fire-and-forget: does not throw, logs errors silently.
|
|
18
|
+
*/
|
|
19
|
+
export declare function checkForUpdates(client: any): Promise<void>;
|
|
20
|
+
//# sourceMappingURL=version-checker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-checker.d.ts","sourceRoot":"","sources":["../../lib/version-checker.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,4BAA4B,CAAA;AACrD,eAAO,MAAM,gBAAgB,8DAAsD,CAAA;AAMnF;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAQxC;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiB5D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAWjE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBhE"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// version-checker.ts - Checks for DCP updates on npm and shows toast notification
|
|
2
|
+
import { readFileSync } from 'fs';
|
|
3
|
+
import { join, dirname } from 'path';
|
|
4
|
+
import { fileURLToPath } from 'url';
|
|
5
|
+
export const PACKAGE_NAME = '@tarquinen/opencode-dcp';
|
|
6
|
+
export const NPM_REGISTRY_URL = `https://registry.npmjs.org/${PACKAGE_NAME}/latest`;
|
|
7
|
+
// ESM-compatible __dirname
|
|
8
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
9
|
+
const __dirname = dirname(__filename);
|
|
10
|
+
/**
|
|
11
|
+
* Gets the local package version from package.json
|
|
12
|
+
*/
|
|
13
|
+
export function getLocalVersion() {
|
|
14
|
+
try {
|
|
15
|
+
const pkgPath = join(__dirname, '../package.json');
|
|
16
|
+
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
17
|
+
return pkg.version;
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return '0.0.0';
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Fetches the latest version from npm registry
|
|
25
|
+
*/
|
|
26
|
+
export async function getNpmVersion() {
|
|
27
|
+
try {
|
|
28
|
+
const controller = new AbortController();
|
|
29
|
+
const timeout = setTimeout(() => controller.abort(), 5000); // 5s timeout
|
|
30
|
+
const res = await fetch(NPM_REGISTRY_URL, {
|
|
31
|
+
signal: controller.signal,
|
|
32
|
+
headers: { 'Accept': 'application/json' }
|
|
33
|
+
});
|
|
34
|
+
clearTimeout(timeout);
|
|
35
|
+
if (!res.ok)
|
|
36
|
+
return null;
|
|
37
|
+
const data = await res.json();
|
|
38
|
+
return data.version ?? null;
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Compares semver versions. Returns true if remote > local
|
|
46
|
+
*/
|
|
47
|
+
export function isOutdated(local, remote) {
|
|
48
|
+
const parseVersion = (v) => v.split('.').map(n => parseInt(n, 10) || 0);
|
|
49
|
+
const [localParts, remoteParts] = [parseVersion(local), parseVersion(remote)];
|
|
50
|
+
for (let i = 0; i < Math.max(localParts.length, remoteParts.length); i++) {
|
|
51
|
+
const l = localParts[i] ?? 0;
|
|
52
|
+
const r = remoteParts[i] ?? 0;
|
|
53
|
+
if (r > l)
|
|
54
|
+
return true;
|
|
55
|
+
if (l > r)
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Checks for updates and shows a toast if outdated.
|
|
62
|
+
* Fire-and-forget: does not throw, logs errors silently.
|
|
63
|
+
*/
|
|
64
|
+
export async function checkForUpdates(client) {
|
|
65
|
+
try {
|
|
66
|
+
const local = getLocalVersion();
|
|
67
|
+
const npm = await getNpmVersion();
|
|
68
|
+
if (!npm || !isOutdated(local, npm)) {
|
|
69
|
+
return; // Up to date or couldn't fetch
|
|
70
|
+
}
|
|
71
|
+
await client.tui.showToast({
|
|
72
|
+
body: {
|
|
73
|
+
title: "DCP: Update available",
|
|
74
|
+
message: `v${local} → v${npm}\nUpdate opencode.jsonc: ${PACKAGE_NAME}@${npm}`,
|
|
75
|
+
variant: "info",
|
|
76
|
+
duration: 6000
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
// Silently fail - version check is non-critical
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=version-checker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-checker.js","sourceRoot":"","sources":["../../lib/version-checker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@tarquinen/opencode-dcp",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.12",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "OpenCode plugin that optimizes token usage by pruning obsolete tool outputs from conversation context",
|
|
7
7
|
"main": "./dist/index.js",
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
"postbuild": "rm -rf dist/logs",
|
|
13
13
|
"prepublishOnly": "npm run build",
|
|
14
14
|
"dev": "opencode plugin dev",
|
|
15
|
-
"typecheck": "tsc --noEmit"
|
|
15
|
+
"typecheck": "tsc --noEmit",
|
|
16
|
+
"test": "node --import tsx --test tests/*.test.ts"
|
|
16
17
|
},
|
|
17
18
|
"keywords": [
|
|
18
19
|
"opencode",
|
|
@@ -48,6 +49,7 @@
|
|
|
48
49
|
"devDependencies": {
|
|
49
50
|
"@opencode-ai/plugin": ">=0.13.7",
|
|
50
51
|
"@types/node": "^24.10.1",
|
|
52
|
+
"tsx": "^4.20.6",
|
|
51
53
|
"typescript": "^5.9.3"
|
|
52
54
|
},
|
|
53
55
|
"files": [
|
package/dist/lib/state.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export interface SessionStats {
|
|
2
|
-
totalToolsPruned: number;
|
|
3
|
-
totalTokensSaved: number;
|
|
4
|
-
}
|
|
5
|
-
export declare class StateManager {
|
|
6
|
-
private state;
|
|
7
|
-
private stats;
|
|
8
|
-
get(sessionID: string): Promise<string[]>;
|
|
9
|
-
set(sessionID: string, prunedIds: string[]): Promise<void>;
|
|
10
|
-
getStats(sessionID: string): Promise<SessionStats>;
|
|
11
|
-
addStats(sessionID: string, toolsPruned: number, tokensSaved: number): Promise<SessionStats>;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=state.d.ts.map
|
package/dist/lib/state.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../lib/state.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;CAC3B;AAED,qBAAa,YAAY;IACrB,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,KAAK,CAAuC;IAE9C,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIzC,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIlD,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CASrG"}
|
package/dist/lib/state.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
// lib/state.ts
|
|
2
|
-
export class StateManager {
|
|
3
|
-
state = new Map();
|
|
4
|
-
stats = new Map();
|
|
5
|
-
async get(sessionID) {
|
|
6
|
-
return this.state.get(sessionID) ?? [];
|
|
7
|
-
}
|
|
8
|
-
async set(sessionID, prunedIds) {
|
|
9
|
-
this.state.set(sessionID, prunedIds);
|
|
10
|
-
}
|
|
11
|
-
async getStats(sessionID) {
|
|
12
|
-
return this.stats.get(sessionID) ?? { totalToolsPruned: 0, totalTokensSaved: 0 };
|
|
13
|
-
}
|
|
14
|
-
async addStats(sessionID, toolsPruned, tokensSaved) {
|
|
15
|
-
const current = await this.getStats(sessionID);
|
|
16
|
-
const updated = {
|
|
17
|
-
totalToolsPruned: current.totalToolsPruned + toolsPruned,
|
|
18
|
-
totalTokensSaved: current.totalTokensSaved + tokensSaved
|
|
19
|
-
};
|
|
20
|
-
this.stats.set(sessionID, updated);
|
|
21
|
-
return updated;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=state.js.map
|
package/dist/lib/state.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../lib/state.ts"],"names":[],"mappings":"AAAA,eAAe;AAOf,MAAM,OAAO,YAAY;IACb,KAAK,GAA0B,IAAI,GAAG,EAAE,CAAA;IACxC,KAAK,GAA8B,IAAI,GAAG,EAAE,CAAA;IAEpD,KAAK,CAAC,GAAG,CAAC,SAAiB;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,SAAiB,EAAE,SAAmB;QAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAA;IACpF,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,WAAmB,EAAE,WAAmB;QACtE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC9C,MAAM,OAAO,GAAiB;YAC1B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,GAAG,WAAW;YACxD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,GAAG,WAAW;SAC3D,CAAA;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAClC,OAAO,OAAO,CAAA;IAClB,CAAC;CACJ"}
|