claude-token-saver 3.40.0 → 3.41.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.
package/README.ko.md CHANGED
@@ -1,17 +1,30 @@
1
- [English](./README.md) · **한국어**
1
+ <div align="center">
2
2
 
3
- [![npm](https://img.shields.io/npm/v/claude-token-saver.svg)](https://www.npmjs.com/package/claude-token-saver)
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/rootstudioyaml/sprag/main/site/assets/logo/sprag-lockup.svg">
5
+ <img alt="Sprag" src="https://raw.githubusercontent.com/rootstudioyaml/sprag/main/site/assets/logo/sprag-lockup-light.svg" width="220">
6
+ </picture>
4
7
 
5
- 🌐 **[sprag.io](https://sprag.io)** · 프로젝트 사이트 (claude-token-saver는 **Sprag**로 이름을 바꾸는 중입니다)
8
+ **AI 코딩 에이전트용 품질 래칫. 같은 실수는 번 없습니다.**
6
9
 
7
- # claude-token-saver
10
+ [![npm](https://img.shields.io/npm/v/sprag-cli.svg?label=sprag-cli)](https://www.npmjs.com/package/sprag-cli)
11
+ [![downloads](https://img.shields.io/npm/dm/claude-token-saver.svg)](https://www.npmjs.com/package/claude-token-saver)
12
+ [![license](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)
13
+
14
+ [sprag.io](https://sprag.io) · [벤치마크](./docs/BENCHMARK.md) · [English](./README.md)
15
+
16
+ </div>
17
+
18
+ ---
19
+
20
+ # Sprag (claude-token-saver)
8
21
 
9
22
  **아낀 돈을 두 줄로 보여 줍니다.** 비싼 모델이 반복하던 쉬운 작업을 싼 모델로 내려보내고, 모델이 읽지 못하는 문서를 Markdown 으로 바꿉니다. 두 절감액 모두 추정이 아니라 원장 기록입니다. 의존성 0, 설치 한 줄.
10
23
 
11
24
  ![statusline 예시. 첫 줄은 라우팅 절감액, 둘째 줄은 문서 변환 절감액, 셋째 줄은 진단 칩입니다](./docs/statusline.png)
12
25
 
13
26
  ```bash
14
- npm i -g claude-token-saver
27
+ npm i -g sprag-cli # or: npm i -g claude-token-saver (same package, old name)
15
28
  ```
16
29
 
17
30
  숫자 네 개가 이 도구의 전부입니다.
package/README.md CHANGED
@@ -1,17 +1,30 @@
1
- **English** · [한국어](./README.ko.md)
1
+ <div align="center">
2
2
 
3
- [![npm](https://img.shields.io/npm/v/claude-token-saver.svg)](https://www.npmjs.com/package/claude-token-saver)
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/rootstudioyaml/sprag/main/site/assets/logo/sprag-lockup.svg">
5
+ <img alt="Sprag" src="https://raw.githubusercontent.com/rootstudioyaml/sprag/main/site/assets/logo/sprag-lockup-light.svg" width="220">
6
+ </picture>
4
7
 
5
- 🌐 **[sprag.io](https://sprag.io)** · project site (claude-token-saver is being renamed to **Sprag**)
8
+ **A quality ratchet for AI coding agents. Mistakes never repeat.**
6
9
 
7
- # claude-token-saver
10
+ [![npm](https://img.shields.io/npm/v/sprag-cli.svg?label=sprag-cli)](https://www.npmjs.com/package/sprag-cli)
11
+ [![downloads](https://img.shields.io/npm/dm/claude-token-saver.svg)](https://www.npmjs.com/package/claude-token-saver)
12
+ [![license](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)
13
+
14
+ [sprag.io](https://sprag.io) · [Benchmark](./docs/BENCHMARK.md) · [한국어](./README.ko.md)
15
+
16
+ </div>
17
+
18
+ ---
19
+
20
+ # Sprag (claude-token-saver)
8
21
 
9
22
  **Shows what it saved, on two lines.** It moves the easy work your expensive model keeps repeating onto cheaper ones, and turns documents the model cannot read into Markdown. Both figures are ledger entries rather than estimates, and whichever saved more takes the top line. Zero dependencies, one-line install.
10
23
 
11
24
  ![statusline example — routing savings on row 1, document conversion savings on row 2, diagnostics on row 3](./docs/statusline.png)
12
25
 
13
26
  ```bash
14
- npm i -g claude-token-saver
27
+ npm i -g sprag-cli # or: npm i -g claude-token-saver (same package, old name)
15
28
  ```
16
29
 
17
30
  Four numbers are the whole pitch.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "claude-token-saver",
3
- "version": "3.40.0",
4
- "description": "Route the easy work your expensive Claude model keeps repeating down to haiku/sonnet \u2014 post-hoc session analysis, no realtime router, no extra LLM calls.",
3
+ "version": "3.41.0",
4
+ "description": "Legacy name of sprag-cli (Sprag) - same tool, kept publishing so existing installs stay current. Prefer: npm i -g sprag-cli",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "sprag": "bin/cli.js",
@@ -10,7 +10,8 @@
10
10
  "scripts": {
11
11
  "test": "node --test",
12
12
  "docs:statusline": "node scripts/docs-statusline.mjs",
13
- "postinstall": "node bin/cli.js install || true"
13
+ "postinstall": "node bin/cli.js install || true",
14
+ "publish:legacy": "node scripts/publish-legacy.mjs"
14
15
  },
15
16
  "files": [
16
17
  "bin/",
@@ -25,6 +26,10 @@
25
26
  "node": ">=18"
26
27
  },
27
28
  "keywords": [
29
+ "sprag",
30
+ "ratchet",
31
+ "harness",
32
+ "ai-agent",
28
33
  "claude",
29
34
  "claude-code",
30
35
  "anthropic",
@@ -43,7 +48,6 @@
43
48
  "claude-code-statusline",
44
49
  "claude-code-cost",
45
50
  "model-fitting",
46
- "ratchet",
47
51
  "agent-harness"
48
52
  ],
49
53
  "license": "MIT",
@@ -23,7 +23,10 @@ import { fileURLToPath } from 'node:url';
23
23
  import { userDataDir } from './paths.js';
24
24
  import { debug } from './debug.js';
25
25
 
26
- const PKG_NAME = 'claude-token-saver';
26
+ // Whichever name this copy was installed under (sprag-cli or the legacy
27
+ // claude-token-saver) is the one whose registry entry must be consulted.
28
+ import { createRequire } from 'node:module';
29
+ const PKG_NAME = createRequire(import.meta.url)('../package.json').name;
27
30
  const CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000; // 24h — the registry is not a health endpoint
28
31
  const FETCH_TIMEOUT_MS = 5000;
29
32