@alyibrahim/claude-statusline 1.2.1 → 1.3.0

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.
Files changed (2) hide show
  1. package/package.json +6 -6
  2. package/statusline.js +2 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alyibrahim/claude-statusline",
3
- "version": "1.2.1",
3
+ "version": "1.3.0",
4
4
  "description": "Rich statusline for Claude Code — model, context bar, real-time token tracking, git branch, rate limits, and session stats. Rust binary, ~5ms startup.",
5
5
  "keywords": [
6
6
  "claude",
@@ -47,11 +47,11 @@
47
47
  ],
48
48
  "license": "MIT",
49
49
  "optionalDependencies": {
50
- "@alyibrahim/claude-statusline-linux-x64": "1.2.0",
51
- "@alyibrahim/claude-statusline-linux-arm64": "1.2.0",
52
- "@alyibrahim/claude-statusline-darwin-x64": "1.2.0",
53
- "@alyibrahim/claude-statusline-darwin-arm64": "1.2.0",
54
- "@alyibrahim/claude-statusline-win32-x64": "1.2.0"
50
+ "@alyibrahim/claude-statusline-linux-x64": "1.3.0",
51
+ "@alyibrahim/claude-statusline-linux-arm64": "1.3.0",
52
+ "@alyibrahim/claude-statusline-darwin-x64": "1.3.0",
53
+ "@alyibrahim/claude-statusline-darwin-arm64": "1.3.0",
54
+ "@alyibrahim/claude-statusline-win32-x64": "1.3.0"
55
55
  },
56
56
  "devDependencies": {
57
57
  "jest": "^29.0.0"
package/statusline.js CHANGED
@@ -39,7 +39,7 @@ function readSessionTokens(claudeDir, session, absDir) {
39
39
  const entry = JSON.parse(line);
40
40
  if (entry.type === 'assistant' && entry.message?.usage) {
41
41
  const u = entry.message.usage;
42
- totalIn += (u.input_tokens || 0) + (u.cache_read_input_tokens || 0) + (u.cache_creation_input_tokens || 0);
42
+ totalIn += (u.input_tokens || 0) + Math.round((u.cache_read_input_tokens || 0) * 0.1) + (u.cache_creation_input_tokens || 0);
43
43
  totalOut += (u.output_tokens || 0);
44
44
  }
45
45
  } catch (e) {}
@@ -208,9 +208,8 @@ process.stdin.on('end', () => {
208
208
  const totalOut = jsonlTok && jsonlTok.totalOut > (stdinOut ?? 0) ? jsonlTok.totalOut : stdinOut;
209
209
  let tokenDisplay = '';
210
210
  if (totalIn != null || totalOut != null || jsonlTok) {
211
- const total = (totalIn ?? 0) + (totalOut ?? 0);
212
211
  const fmt = n => n >= 1000 ? `${(n / 1000).toFixed(1)}k` : String(n);
213
- tokenDisplay = `\x1b[2m│\x1b[0m \x1b[97m${fmt(total)} tok\x1b[0m`;
212
+ tokenDisplay = `\x1b[2m│\x1b[0m \x1b[97m${fmt(totalIn ?? 0)} ${fmt(totalOut ?? 0)}↑\x1b[0m`;
214
213
  }
215
214
 
216
215
  const usageContent = [u7d, u5h].filter(Boolean).join(' ');