@tarquinen/opencode-dcp 0.2.7 → 0.2.8
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 +2 -18
- package/dist/lib/janitor.d.ts +4 -0
- package/dist/lib/janitor.d.ts.map +1 -1
- package/dist/lib/janitor.js +62 -25
- package/dist/lib/janitor.js.map +1 -1
- package/dist/lib/tokenizer.d.ts +24 -0
- package/dist/lib/tokenizer.d.ts.map +1 -0
- package/dist/lib/tokenizer.js +49 -0
- package/dist/lib/tokenizer.js.map +1 -0
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -106,22 +106,6 @@ The global config (`~/.config/opencode/dcp.jsonc`) is automatically created on f
|
|
|
106
106
|
|
|
107
107
|
After modifying the configuration, restart OpenCode for changes to take effect.
|
|
108
108
|
|
|
109
|
-
OpenCode automatically installs plugins from npm to `~/.cache/opencode/node_modules/`. To force an update to the latest version:
|
|
110
|
-
|
|
111
|
-
```bash
|
|
112
|
-
cd ~/.cache/opencode
|
|
113
|
-
rm -rf node_modules/@tarquinen
|
|
114
|
-
sed -i.bak '/"@tarquinen\/opencode-dcp"/d' package.json
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
Then restart OpenCode, and it will automatically install the latest version.
|
|
118
|
-
|
|
119
|
-
To check your current version:
|
|
120
|
-
|
|
121
|
-
```bash
|
|
122
|
-
cat ~/.cache/opencode/node_modules/@tarquinen/opencode-dcp/package.json | grep version
|
|
123
|
-
```
|
|
124
|
-
|
|
125
109
|
To check the latest available version:
|
|
126
110
|
|
|
127
111
|
```bash
|
|
@@ -130,12 +114,12 @@ npm view @tarquinen/opencode-dcp version
|
|
|
130
114
|
|
|
131
115
|
### Version Pinning
|
|
132
116
|
|
|
133
|
-
If you want to ensure a specific version is always used, you can pin it in your config:
|
|
117
|
+
If you want to ensure a specific version is always used or update your version, you can pin it in your config:
|
|
134
118
|
|
|
135
119
|
```json
|
|
136
120
|
{
|
|
137
121
|
"plugin": [
|
|
138
|
-
"@tarquinen/opencode-dcp@0.2.
|
|
122
|
+
"@tarquinen/opencode-dcp@0.2.7"
|
|
139
123
|
]
|
|
140
124
|
}
|
|
141
125
|
```
|
package/dist/lib/janitor.d.ts
CHANGED
|
@@ -14,6 +14,10 @@ export declare class Janitor {
|
|
|
14
14
|
modelID: string;
|
|
15
15
|
}>, configModel?: string | undefined, // Format: "provider/model"
|
|
16
16
|
showModelErrorToasts?: boolean);
|
|
17
|
+
/**
|
|
18
|
+
* Sends an ignored message to the session UI (user sees it, AI doesn't)
|
|
19
|
+
*/
|
|
20
|
+
private sendIgnoredMessage;
|
|
17
21
|
run(sessionID: string): Promise<void>;
|
|
18
22
|
}
|
|
19
23
|
//# sourceMappingURL=janitor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"janitor.d.ts","sourceRoot":"","sources":["../../lib/janitor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"janitor.d.ts","sourceRoot":"","sources":["../../lib/janitor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAK3C,qBAAa,OAAO;IAEZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW,CAAC;IACpB,OAAO,CAAC,oBAAoB;gBAPpB,MAAM,EAAE,GAAG,EACX,YAAY,EAAE,YAAY,EAC1B,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;IAGhD;;OAEG;YACW,kBAAkB;IA4B1B,GAAG,CAAC,SAAS,EAAE,MAAM;CAid9B"}
|
package/dist/lib/janitor.js
CHANGED
|
@@ -2,6 +2,7 @@ import { generateObject } from "ai";
|
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { buildAnalysisPrompt } from "./prompt";
|
|
4
4
|
import { selectModel, extractModelFromSession } from "./model-selector";
|
|
5
|
+
import { estimateTokensBatch, formatTokenCount } from "./tokenizer";
|
|
5
6
|
export class Janitor {
|
|
6
7
|
client;
|
|
7
8
|
stateManager;
|
|
@@ -23,6 +24,37 @@ export class Janitor {
|
|
|
23
24
|
this.configModel = configModel;
|
|
24
25
|
this.showModelErrorToasts = showModelErrorToasts;
|
|
25
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Sends an ignored message to the session UI (user sees it, AI doesn't)
|
|
29
|
+
*/
|
|
30
|
+
async sendIgnoredMessage(sessionID, text) {
|
|
31
|
+
try {
|
|
32
|
+
await this.client.session.prompt({
|
|
33
|
+
path: {
|
|
34
|
+
id: sessionID
|
|
35
|
+
},
|
|
36
|
+
body: {
|
|
37
|
+
noReply: true, // Don't wait for AI response
|
|
38
|
+
parts: [{
|
|
39
|
+
type: 'text',
|
|
40
|
+
text: text,
|
|
41
|
+
ignored: true
|
|
42
|
+
}]
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
this.logger.debug("janitor", "Sent ignored message to session", {
|
|
46
|
+
sessionID,
|
|
47
|
+
textLength: text.length
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
this.logger.error("janitor", "Failed to send ignored message", {
|
|
52
|
+
sessionID,
|
|
53
|
+
error: error.message
|
|
54
|
+
});
|
|
55
|
+
// Don't fail the operation if sending the message fails
|
|
56
|
+
}
|
|
57
|
+
}
|
|
26
58
|
async run(sessionID) {
|
|
27
59
|
this.logger.info("janitor", "Starting analysis", { sessionID });
|
|
28
60
|
try {
|
|
@@ -283,16 +315,28 @@ export class Janitor {
|
|
|
283
315
|
newlyPrunedCount: newlyPrunedIds.length,
|
|
284
316
|
newlyPrunedIds: newlyPrunedIds
|
|
285
317
|
});
|
|
286
|
-
// Calculate
|
|
287
|
-
|
|
318
|
+
// Calculate token savings from newly pruned tool outputs
|
|
319
|
+
// Use accurate tokenization with gpt-tokenizer
|
|
320
|
+
let totalTokensSaved = 0;
|
|
321
|
+
const outputsToTokenize = [];
|
|
288
322
|
for (const prunedId of newlyPrunedIds) {
|
|
289
323
|
const output = toolOutputs.get(prunedId);
|
|
290
324
|
if (output) {
|
|
291
|
-
|
|
325
|
+
outputsToTokenize.push(output);
|
|
292
326
|
}
|
|
293
327
|
}
|
|
294
|
-
|
|
295
|
-
|
|
328
|
+
if (outputsToTokenize.length > 0) {
|
|
329
|
+
// Use batch tokenization for efficiency
|
|
330
|
+
const tokenCounts = estimateTokensBatch(outputsToTokenize, this.logger);
|
|
331
|
+
totalTokensSaved = tokenCounts.reduce((sum, count) => sum + count, 0);
|
|
332
|
+
this.logger.debug("janitor", "Token estimation complete", {
|
|
333
|
+
sessionID,
|
|
334
|
+
outputCount: outputsToTokenize.length,
|
|
335
|
+
totalTokens: totalTokensSaved,
|
|
336
|
+
avgTokensPerOutput: Math.round(totalTokensSaved / outputsToTokenize.length)
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
const estimatedTokensSaved = totalTokensSaved;
|
|
296
340
|
// Merge newly pruned IDs with existing ones (using expanded IDs)
|
|
297
341
|
const allPrunedIds = [...new Set([...alreadyPrunedIds, ...finalPrunedIds])];
|
|
298
342
|
await this.stateManager.set(sessionID, allPrunedIds);
|
|
@@ -344,30 +388,30 @@ export class Janitor {
|
|
|
344
388
|
if (metadata.parameters) {
|
|
345
389
|
// For read tool, show filePath
|
|
346
390
|
if (toolName === "read" && metadata.parameters.filePath) {
|
|
347
|
-
paramInfo = truncate(shortenPath(metadata.parameters.filePath),
|
|
391
|
+
paramInfo = truncate(shortenPath(metadata.parameters.filePath), 80);
|
|
348
392
|
}
|
|
349
393
|
// For list tool, show path
|
|
350
394
|
else if (toolName === "list" && metadata.parameters.path) {
|
|
351
|
-
paramInfo = truncate(shortenPath(metadata.parameters.path),
|
|
395
|
+
paramInfo = truncate(shortenPath(metadata.parameters.path), 80);
|
|
352
396
|
}
|
|
353
397
|
// For bash/command tools, prefer description over command
|
|
354
398
|
else if (toolName === "bash") {
|
|
355
399
|
if (metadata.parameters.description) {
|
|
356
|
-
paramInfo = truncate(metadata.parameters.description,
|
|
400
|
+
paramInfo = truncate(metadata.parameters.description, 80);
|
|
357
401
|
}
|
|
358
402
|
else if (metadata.parameters.command) {
|
|
359
|
-
paramInfo = truncate(metadata.parameters.command,
|
|
403
|
+
paramInfo = truncate(metadata.parameters.command, 80);
|
|
360
404
|
}
|
|
361
405
|
}
|
|
362
406
|
// For other tools, show the first relevant parameter
|
|
363
407
|
else if (metadata.parameters.path) {
|
|
364
|
-
paramInfo = truncate(shortenPath(metadata.parameters.path),
|
|
408
|
+
paramInfo = truncate(shortenPath(metadata.parameters.path), 80);
|
|
365
409
|
}
|
|
366
410
|
else if (metadata.parameters.pattern) {
|
|
367
|
-
paramInfo = truncate(metadata.parameters.pattern,
|
|
411
|
+
paramInfo = truncate(metadata.parameters.pattern, 80);
|
|
368
412
|
}
|
|
369
413
|
else if (metadata.parameters.command) {
|
|
370
|
-
paramInfo = truncate(metadata.parameters.command,
|
|
414
|
+
paramInfo = truncate(metadata.parameters.command, 80);
|
|
371
415
|
}
|
|
372
416
|
}
|
|
373
417
|
if (paramInfo) {
|
|
@@ -381,10 +425,10 @@ export class Janitor {
|
|
|
381
425
|
});
|
|
382
426
|
}
|
|
383
427
|
}
|
|
384
|
-
// Format the message with tool details
|
|
428
|
+
// Format the message with tool details using improved UI
|
|
385
429
|
const toolText = newlyPrunedIds.length === 1 ? 'tool' : 'tools';
|
|
386
|
-
const
|
|
387
|
-
let message =
|
|
430
|
+
const tokensFormatted = formatTokenCount(estimatedTokensSaved);
|
|
431
|
+
let message = `🧹 DCP: Saved ~${tokensFormatted} tokens (${newlyPrunedIds.length} ${toolText} pruned)\n`;
|
|
388
432
|
for (const [toolName, params] of toolsSummary.entries()) {
|
|
389
433
|
if (params.length > 0) {
|
|
390
434
|
message += `\n${toolName} (${params.length}):\n`;
|
|
@@ -403,19 +447,12 @@ export class Janitor {
|
|
|
403
447
|
}
|
|
404
448
|
}
|
|
405
449
|
}
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
message: message.trim(),
|
|
410
|
-
variant: "success",
|
|
411
|
-
duration: 8000 // Longer duration since we're showing more info
|
|
412
|
-
}
|
|
413
|
-
});
|
|
414
|
-
this.logger.info("janitor", "Toast notification shown", {
|
|
450
|
+
// Send as an ignored message (user sees, AI doesn't)
|
|
451
|
+
await this.sendIgnoredMessage(sessionID, message.trim());
|
|
452
|
+
this.logger.info("janitor", "Pruning notification sent", {
|
|
415
453
|
sessionID,
|
|
416
454
|
prunedCount: newlyPrunedIds.length,
|
|
417
455
|
estimatedTokensSaved,
|
|
418
|
-
totalCharsSaved,
|
|
419
456
|
toolsSummary: Array.from(toolsSummary.entries())
|
|
420
457
|
});
|
|
421
458
|
}
|
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,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token counting utilities using gpt-tokenizer
|
|
3
|
+
*
|
|
4
|
+
* Uses gpt-tokenizer to provide token counts for text content.
|
|
5
|
+
* Works with any LLM provider - provides accurate counts for OpenAI models
|
|
6
|
+
* and reasonable approximations for other providers.
|
|
7
|
+
*/
|
|
8
|
+
import type { Logger } from './logger';
|
|
9
|
+
/**
|
|
10
|
+
* Batch estimates tokens for multiple text samples
|
|
11
|
+
*
|
|
12
|
+
* @param texts - Array of text strings to tokenize
|
|
13
|
+
* @param logger - Optional logger instance
|
|
14
|
+
* @returns Array of token counts
|
|
15
|
+
*/
|
|
16
|
+
export declare function estimateTokensBatch(texts: string[], logger?: Logger): number[];
|
|
17
|
+
/**
|
|
18
|
+
* Formats token count for display (e.g., 1500 -> "1.5K", 50 -> "50")
|
|
19
|
+
*
|
|
20
|
+
* @param tokens - Number of tokens
|
|
21
|
+
* @returns Formatted string
|
|
22
|
+
*/
|
|
23
|
+
export declare function formatTokenCount(tokens: number): string;
|
|
24
|
+
//# sourceMappingURL=tokenizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../../lib/tokenizer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEtC;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,CAAC,EAAE,MAAM,GAChB,MAAM,EAAE,CAsBV;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKvD"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token counting utilities using gpt-tokenizer
|
|
3
|
+
*
|
|
4
|
+
* Uses gpt-tokenizer to provide token counts for text content.
|
|
5
|
+
* Works with any LLM provider - provides accurate counts for OpenAI models
|
|
6
|
+
* and reasonable approximations for other providers.
|
|
7
|
+
*/
|
|
8
|
+
import { encode } from 'gpt-tokenizer';
|
|
9
|
+
/**
|
|
10
|
+
* Batch estimates tokens for multiple text samples
|
|
11
|
+
*
|
|
12
|
+
* @param texts - Array of text strings to tokenize
|
|
13
|
+
* @param logger - Optional logger instance
|
|
14
|
+
* @returns Array of token counts
|
|
15
|
+
*/
|
|
16
|
+
export function estimateTokensBatch(texts, logger) {
|
|
17
|
+
try {
|
|
18
|
+
const results = texts.map(text => {
|
|
19
|
+
const tokens = encode(text);
|
|
20
|
+
return tokens.length;
|
|
21
|
+
});
|
|
22
|
+
logger?.debug('tokenizer', 'Batch token estimation complete', {
|
|
23
|
+
batchSize: texts.length,
|
|
24
|
+
totalTokens: results.reduce((sum, count) => sum + count, 0),
|
|
25
|
+
avgTokensPerText: Math.round(results.reduce((sum, count) => sum + count, 0) / results.length)
|
|
26
|
+
});
|
|
27
|
+
return results;
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
logger?.warn('tokenizer', 'Batch tokenization failed, using fallback', {
|
|
31
|
+
error: error.message
|
|
32
|
+
});
|
|
33
|
+
// Fallback to character-based estimation
|
|
34
|
+
return texts.map(text => Math.round(text.length / 4));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Formats token count for display (e.g., 1500 -> "1.5K", 50 -> "50")
|
|
39
|
+
*
|
|
40
|
+
* @param tokens - Number of tokens
|
|
41
|
+
* @returns Formatted string
|
|
42
|
+
*/
|
|
43
|
+
export function formatTokenCount(tokens) {
|
|
44
|
+
if (tokens >= 1000) {
|
|
45
|
+
return `${(tokens / 1000).toFixed(1)}K`.replace('.0K', 'K');
|
|
46
|
+
}
|
|
47
|
+
return tokens.toString();
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=tokenizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../../lib/tokenizer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAGtC;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAC/B,KAAe,EACf,MAAe;IAEf,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YAC3B,OAAO,MAAM,CAAC,MAAM,CAAA;QACxB,CAAC,CAAC,CAAA;QAEF,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,iCAAiC,EAAE;YAC1D,SAAS,EAAE,KAAK,CAAC,MAAM;YACvB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;YAC3D,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;SAChG,CAAC,CAAA;QAEF,OAAO,OAAO,CAAA;IAClB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,2CAA2C,EAAE;YACnE,KAAK,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAA;QAEF,yCAAyC;QACzC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;IACzD,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC3C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAC/D,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAA;AAC5B,CAAC"}
|
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.2.
|
|
4
|
+
"version": "0.2.8",
|
|
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",
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"@opencode-ai/sdk": "latest",
|
|
42
42
|
"@tarquinen/opencode-auth-provider": "^0.1.3",
|
|
43
43
|
"ai": "^5.0.98",
|
|
44
|
+
"gpt-tokenizer": "^3.4.0",
|
|
44
45
|
"jsonc-parser": "^3.3.1",
|
|
45
46
|
"zod": "^4.1.12"
|
|
46
47
|
},
|