@ramtinj95/opencode-tokenscope 1.6.2 → 1.6.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 +3 -2
- package/dist/tokenscope-lib/config.d.ts +1 -0
- package/dist/tokenscope-lib/config.d.ts.map +1 -1
- package/dist/tokenscope-lib/config.js +23 -4
- package/dist/tokenscope-lib/config.js.map +1 -1
- package/dist/tokenscope.d.ts.map +1 -1
- package/dist/tokenscope.js +9 -2
- package/dist/tokenscope.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -33,6 +33,7 @@ description: Analyze token usage across the current session with detailed breakd
|
|
|
33
33
|
---
|
|
34
34
|
|
|
35
35
|
Call the tokenscope tool directly without delegating to other agents.
|
|
36
|
+
Leave sessionID unset unless the user explicitly asked to analyze a different session.
|
|
36
37
|
Then cat the token-usage-output.txt. DONT DO ANYTHING ELSE WITH THE OUTPUT.
|
|
37
38
|
EOF
|
|
38
39
|
```
|
|
@@ -62,7 +63,7 @@ Then restart OpenCode and run `/tokenscope`
|
|
|
62
63
|
|---------------------------|----------|
|
|
63
64
|
| `"@ramtinj95/opencode-tokenscope"` | Uses the version installed at install time. **Never auto-updates.** |
|
|
64
65
|
| `"@ramtinj95/opencode-tokenscope@latest"` | Fetches latest version **every time OpenCode starts**. |
|
|
65
|
-
| `"@ramtinj95/opencode-tokenscope@1.6.
|
|
66
|
+
| `"@ramtinj95/opencode-tokenscope@1.6.3"` | Pins to exact version 1.6.3. Never updates. |
|
|
66
67
|
|
|
67
68
|
To manually update:
|
|
68
69
|
```bash
|
|
@@ -101,7 +102,7 @@ The plugin will:
|
|
|
101
102
|
|
|
102
103
|
### Options
|
|
103
104
|
|
|
104
|
-
- **sessionID**:
|
|
105
|
+
- **sessionID**: Optional explicit session ID. Leave unset to analyze the current session; blank values are ignored
|
|
105
106
|
- **limitMessages**: Limit entries shown per category (1-10, default: 3)
|
|
106
107
|
- **includeSubagents**: Include subagent child session costs (default: true)
|
|
107
108
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { TokenizerSpec, ModelPricing, TokenscopeConfig } from "./types";
|
|
2
2
|
export declare const DEFAULT_ENTRY_LIMIT = 3;
|
|
3
|
+
export declare function resolveBundledAssetPath(filename: string, moduleDir?: string): Promise<string>;
|
|
3
4
|
export declare function loadModelPricing(): Promise<Record<string, ModelPricing>>;
|
|
4
5
|
export declare const DEFAULT_TOKENSCOPE_CONFIG: TokenscopeConfig;
|
|
5
6
|
export declare function loadTokenscopeConfig(): Promise<TokenscopeConfig>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../tokenscope-lib/config.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE5E,eAAO,MAAM,mBAAmB,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../tokenscope-lib/config.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE5E,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAKpC,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,SAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBvG;AAKD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAY9E;AAID,eAAO,MAAM,yBAAyB,EAAE,gBAMvC,CAAA;AAaD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CActE;AAGD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiBnD,CAAA;AAGD,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA2BlE,CAAA;AAGD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAK3D,CAAA"}
|
|
@@ -4,16 +4,34 @@ import fs from "fs/promises";
|
|
|
4
4
|
import { homedir } from "os";
|
|
5
5
|
import { fileURLToPath } from "url";
|
|
6
6
|
export const DEFAULT_ENTRY_LIMIT = 3;
|
|
7
|
-
const
|
|
8
|
-
const BUNDLED_TOKENSCOPE_CONFIG_PATH = path.join(PACKAGE_ROOT, "tokenscope-config.json");
|
|
7
|
+
const MODULE_DIR = path.dirname(fileURLToPath(import.meta.url));
|
|
9
8
|
const USER_TOKENSCOPE_CONFIG_PATH = path.join(homedir(), ".config", "opencode", "tokenscope-config.json");
|
|
9
|
+
const BUNDLED_ASSET_PATH_CACHE = new Map();
|
|
10
|
+
export async function resolveBundledAssetPath(filename, moduleDir = MODULE_DIR) {
|
|
11
|
+
const cacheKey = `${moduleDir}:${filename}`;
|
|
12
|
+
const cached = BUNDLED_ASSET_PATH_CACHE.get(cacheKey);
|
|
13
|
+
if (cached)
|
|
14
|
+
return cached;
|
|
15
|
+
const candidates = [path.join(moduleDir, "..", filename), path.join(moduleDir, "../..", filename)];
|
|
16
|
+
for (const candidate of candidates) {
|
|
17
|
+
try {
|
|
18
|
+
await fs.access(candidate);
|
|
19
|
+
BUNDLED_ASSET_PATH_CACHE.set(cacheKey, candidate);
|
|
20
|
+
return candidate;
|
|
21
|
+
}
|
|
22
|
+
catch { }
|
|
23
|
+
}
|
|
24
|
+
const fallback = candidates[0];
|
|
25
|
+
BUNDLED_ASSET_PATH_CACHE.set(cacheKey, fallback);
|
|
26
|
+
return fallback;
|
|
27
|
+
}
|
|
10
28
|
// Pricing cache
|
|
11
29
|
let PRICING_CACHE = null;
|
|
12
30
|
export async function loadModelPricing() {
|
|
13
31
|
if (PRICING_CACHE)
|
|
14
32
|
return PRICING_CACHE;
|
|
15
33
|
try {
|
|
16
|
-
const modelsPath =
|
|
34
|
+
const modelsPath = await resolveBundledAssetPath("models.json");
|
|
17
35
|
const data = await fs.readFile(modelsPath, "utf8");
|
|
18
36
|
PRICING_CACHE = JSON.parse(data);
|
|
19
37
|
return PRICING_CACHE;
|
|
@@ -45,7 +63,8 @@ export async function loadTokenscopeConfig() {
|
|
|
45
63
|
if (TOKENSCOPE_CONFIG_CACHE)
|
|
46
64
|
return TOKENSCOPE_CONFIG_CACHE;
|
|
47
65
|
const userConfig = await readTokenscopeConfigFile(USER_TOKENSCOPE_CONFIG_PATH);
|
|
48
|
-
const
|
|
66
|
+
const bundledConfigPath = userConfig ? null : await resolveBundledAssetPath("tokenscope-config.json");
|
|
67
|
+
const bundledConfig = bundledConfigPath ? await readTokenscopeConfigFile(bundledConfigPath) : null;
|
|
49
68
|
TOKENSCOPE_CONFIG_CACHE = {
|
|
50
69
|
...DEFAULT_TOKENSCOPE_CONFIG,
|
|
51
70
|
...(bundledConfig ?? {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../tokenscope-lib/config.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAE1D,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,MAAM,aAAa,CAAA;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAGnC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAA;AACpC,MAAM,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../tokenscope-lib/config.ts"],"names":[],"mappings":"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"}
|
package/dist/tokenscope.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenscope.d.ts","sourceRoot":"","sources":["../tokenscope.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"tokenscope.d.ts","sourceRoot":"","sources":["../tokenscope.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAiEjD,eAAO,MAAM,mBAAmB,EAAE,MA0KjC,CAAA;AAGD,eAAe,mBAAmB,CAAA"}
|
package/dist/tokenscope.js
CHANGED
|
@@ -50,6 +50,10 @@ function buildFailureReport(sessionID, warnings, fatalMessage) {
|
|
|
50
50
|
lines.push("Try again after switching to a supported model or updating the plugin.");
|
|
51
51
|
return lines.join("\n");
|
|
52
52
|
}
|
|
53
|
+
function normalizeSessionID(sessionID) {
|
|
54
|
+
const normalized = sessionID?.trim();
|
|
55
|
+
return normalized ? normalized : undefined;
|
|
56
|
+
}
|
|
53
57
|
export const TokenAnalyzerPlugin = async ({ client, serverUrl, directory }) => {
|
|
54
58
|
const pricingData = await loadModelPricing();
|
|
55
59
|
const config = await loadTokenscopeConfig();
|
|
@@ -62,7 +66,10 @@ export const TokenAnalyzerPlugin = async ({ client, serverUrl, directory }) => {
|
|
|
62
66
|
description: "Analyze token usage across the current session with detailed breakdowns by category (system, user, assistant, tools, reasoning). " +
|
|
63
67
|
"Provides visual charts, identifies top token consumers, and includes costs from subagent (Task tool) child sessions.",
|
|
64
68
|
args: {
|
|
65
|
-
sessionID: tool.schema
|
|
69
|
+
sessionID: tool.schema
|
|
70
|
+
.string()
|
|
71
|
+
.optional()
|
|
72
|
+
.describe("Optional explicit session ID. Leave unset to analyze the current session."),
|
|
66
73
|
limitMessages: tool.schema.number().int().min(1).max(10).optional(),
|
|
67
74
|
includeSubagents: tool.schema
|
|
68
75
|
.boolean()
|
|
@@ -79,7 +86,7 @@ export const TokenAnalyzerPlugin = async ({ client, serverUrl, directory }) => {
|
|
|
79
86
|
const skillAnalyzer = new SkillAnalyzer(client, tokenizerManager, serverUrl, directory, warnings);
|
|
80
87
|
const formatter = new OutputFormatter(costCalculator);
|
|
81
88
|
formatter.setConfig(config);
|
|
82
|
-
const sessionID = args.sessionID ?? context.sessionID;
|
|
89
|
+
const sessionID = normalizeSessionID(args.sessionID) ?? normalizeSessionID(context.sessionID);
|
|
83
90
|
if (!sessionID) {
|
|
84
91
|
const output = buildFailureReport(undefined, warnings.list(), "No session ID available for token analysis");
|
|
85
92
|
const writeError = await writeReport(outputPath, output);
|
package/dist/tokenscope.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenscope.js","sourceRoot":"","sources":["../tokenscope.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tokenscope.js","sourceRoot":"","sources":["../tokenscope.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": "@ramtinj95/opencode-tokenscope",
|
|
4
|
-
"version": "1.6.
|
|
4
|
+
"version": "1.6.3",
|
|
5
5
|
"description": "OpenCode plugin for detailed token usage analysis with breakdowns by category, visual charts, and subagent cost tracking",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/tokenscope.js",
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"scripts": {
|
|
10
10
|
"clean": "rm -rf dist",
|
|
11
11
|
"build": "npm run clean && tsc",
|
|
12
|
+
"test": "bun test",
|
|
12
13
|
"prepublishOnly": "npm run build",
|
|
13
14
|
"typecheck": "tsc --noEmit"
|
|
14
15
|
},
|