@simosphere/tokenizer-speedup 0.7.0 → 0.7.2
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/.claude-plugin/plugin.json +1 -1
- package/README.de.md +173 -0
- package/README.md +173 -0
- package/dist/cli/analyze.js +1 -1
- package/dist/cli/config-cmd.js +1 -1
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +2 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/setup-cmd.js +1 -1
- package/dist/cli/setup-cmd.js.map +1 -1
- package/dist/cloud/stripe-checkout.js +1 -1
- package/dist/cloud/stripe-config.js +1 -1
- package/dist/cloud/stripe-usage.js +1 -1
- package/dist/cloud/stripe-webhooks.js +1 -1
- package/dist/cloud/subscription-store.js +1 -1
- package/dist/manifest.json +34 -34
- package/dist/plugin/cli.d.ts +1 -0
- package/dist/plugin/cli.js +2 -1
- package/dist/plugin/cli.js.map +1 -1
- package/dist/plugin/config-loader.js +1 -1
- package/dist/plugin/context-compressor.js +1 -1
- package/dist/plugin/hook-dispatcher.js +1 -1
- package/dist/plugin/metering-client.js +1 -1
- package/dist/plugin/metrics-collector.js +1 -1
- package/dist/plugin/onboarding.js +1 -1
- package/dist/plugin/precompact-handler.js +1 -1
- package/dist/plugin/report.js +1 -1
- package/dist/plugin/rule-analytics-store.js +1 -1
- package/dist/plugin/rule-analytics.js +1 -1
- package/dist/plugin/rule-engine.js +1 -1
- package/dist/plugin/rule-sharing.js +1 -1
- package/dist/plugin/rule-suggest.js +1 -1
- package/dist/plugin/session-start.js +1 -1
- package/dist/plugin/smart-context.js +1 -1
- package/dist/shared/license.js +1 -1
- package/dist/shared/providers/claude-provider.js +1 -1
- package/dist/shared/providers/openai-provider.js +1 -1
- package/dist/shared/token-counter.js +1 -1
- package/dist/shared/token-provider.js +1 -1
- package/package.json +25 -2
package/README.de.md
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<picture>
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset=".github/simosphere-logo.svg">
|
|
4
|
+
<source media="(prefers-color-scheme: light)" srcset=".github/simosphere-logo-dark.svg">
|
|
5
|
+
<img src=".github/simosphere-logo-dark.svg" alt="SIMOSphere AI" width="280">
|
|
6
|
+
</picture>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<h1 align="center">TokenizerSpeedUp</h1>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<strong>Weniger zahlen. Mehr bekommen.</strong><br>
|
|
13
|
+
Intelligente Kontext-Optimierung für Claude Code Sessions.
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
<p align="center">
|
|
17
|
+
<a href="https://www.npmjs.com/package/@simosphere/tokenizer-speedup"><img src="https://img.shields.io/npm/v/@simosphere/tokenizer-speedup?color=5EBFBF&label=npm" alt="npm Version"></a>
|
|
18
|
+
<a href="https://github.com/SIMOSphereOS/tokenizer-speedup/actions"><img src="https://img.shields.io/github/actions/workflow/status/SIMOSphereOS/tokenizer-speedup/ci.yml?branch=main&color=5EBFBF&label=CI" alt="CI"></a>
|
|
19
|
+
<img src="https://img.shields.io/badge/node-%3E%3D20-5EBFBF" alt="Node.js >=20">
|
|
20
|
+
<img src="https://img.shields.io/badge/Lizenz-BSL--1.1-5EBFBF" alt="Lizenz BSL-1.1">
|
|
21
|
+
</p>
|
|
22
|
+
|
|
23
|
+
<p align="center">
|
|
24
|
+
<a href="https://tokenizer-speedup.simosphereai.com">Website</a> ·
|
|
25
|
+
<a href="https://github.com/SIMOSphereOS/tokenizer-speedup/wiki">Dokumentation</a> ·
|
|
26
|
+
<a href="./README.md">English</a>
|
|
27
|
+
</p>
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Das Problem
|
|
32
|
+
|
|
33
|
+
Jede Claude Code Session lädt Kontext — `CLAUDE.md`, Projekt-Docs, Feature-Spezifikationen, Lessons Learned. Das meiste davon wird für die aktuelle Aufgabe nicht gebraucht, verbraucht aber jedes Mal Tausende Tokens.
|
|
34
|
+
|
|
35
|
+
**TokenizerSpeedUp** erkennt, woran Sie arbeiten, und lädt nur den relevanten Kontext. Das Ergebnis: **30-60% weniger Tokens** pro Session.
|
|
36
|
+
|
|
37
|
+
## So funktioniert's
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
Prompt: "Fix den Authentifizierungs-Bug"
|
|
41
|
+
|
|
|
42
|
+
Keyword-Erkennung
|
|
43
|
+
[fix] [bug] erkannt
|
|
44
|
+
|
|
|
45
|
+
Rule Engine lädt nur:
|
|
46
|
+
docs/lessons-learned/*.md
|
|
47
|
+
|
|
|
48
|
+
Kontext-Kompression
|
|
49
|
+
(Zusammenfassungen bei Bedarf)
|
|
50
|
+
|
|
|
51
|
+
Optimierter Kontext injiziert
|
|
52
|
+
2.300 Tokens statt 5.000
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
| Schicht | Funktion |
|
|
56
|
+
|---|---|
|
|
57
|
+
| **Context Gating** | YAML-Regeln erkennen Keywords und laden nur passende Docs |
|
|
58
|
+
| **Context Compression** | Zusammenfassungen statt voller Dateien wo sinnvoll |
|
|
59
|
+
| **Session Intelligence** | Proaktives Kontext-Management gegen Compacting |
|
|
60
|
+
|
|
61
|
+
## Schnellstart
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# Global installieren
|
|
65
|
+
npm install -g @simosphere/tokenizer-speedup
|
|
66
|
+
|
|
67
|
+
# Setup mit API-Schlüssel
|
|
68
|
+
tsu setup --api-key IHR_KEY
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Claude Code neu starten. Fertig.
|
|
72
|
+
|
|
73
|
+
API-Schlüssel erhalten Sie auf [tokenizer-speedup.simosphereai.com](https://tokenizer-speedup.simosphereai.com).
|
|
74
|
+
|
|
75
|
+
## Ergebnisse
|
|
76
|
+
|
|
77
|
+
Reale Daten der SIMO GmbH (2 Wochen):
|
|
78
|
+
|
|
79
|
+
| Metrik | Wert |
|
|
80
|
+
|---|---|
|
|
81
|
+
| Token-Reduktion | **54%** |
|
|
82
|
+
| Vorher | 550 Zeilen / ~5.000 Tokens |
|
|
83
|
+
| Nachher | 251 Zeilen / ~2.300 Tokens |
|
|
84
|
+
| Monatliche Ersparnis | **$36** |
|
|
85
|
+
| ROI | **1:6,7** |
|
|
86
|
+
|
|
87
|
+
## Konfiguration
|
|
88
|
+
|
|
89
|
+
Erstellen Sie eine `tokenizer-speedup.yaml` im Projekt-Root:
|
|
90
|
+
|
|
91
|
+
```yaml
|
|
92
|
+
version: 1
|
|
93
|
+
rules:
|
|
94
|
+
- trigger: [fix, bug, error]
|
|
95
|
+
load: docs/lessons-learned/*.md
|
|
96
|
+
max_tokens: 2000
|
|
97
|
+
|
|
98
|
+
- trigger: [design, architecture]
|
|
99
|
+
load: docs/decisions/*.md
|
|
100
|
+
summary_only: true
|
|
101
|
+
|
|
102
|
+
- trigger: [feature, implement]
|
|
103
|
+
load: docs/features/*.md
|
|
104
|
+
max_tokens: 4000
|
|
105
|
+
|
|
106
|
+
context_limits:
|
|
107
|
+
max_injected_tokens: 8000
|
|
108
|
+
max_file_tokens: 4000
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Details in der [Konfiguration](https://github.com/SIMOSphereOS/tokenizer-speedup/wiki/Configuration) im Wiki.
|
|
112
|
+
|
|
113
|
+
## CLI
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
tsu setup --api-key KEY # Plugin + Hooks konfigurieren
|
|
117
|
+
tsu analyze datei.md # Tokens in einer Datei zählen
|
|
118
|
+
tsu config # YAML-Config validieren
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Preise
|
|
122
|
+
|
|
123
|
+
| Free | Pro | Team |
|
|
124
|
+
|---|---|---|
|
|
125
|
+
| $0/Monat | $5/Monat | $15/Seat/Monat |
|
|
126
|
+
| 100K Tokens gespart | Unbegrenzt | Unbegrenzt |
|
|
127
|
+
| Basis-Dashboard | Volles Analytics | Admin-Dashboard |
|
|
128
|
+
| Standard-Regeln | Eigene Regeln | Team-weite Synchronisation |
|
|
129
|
+
|
|
130
|
+
## Datenschutz
|
|
131
|
+
|
|
132
|
+
- Ihre Prompts **verlassen nie Ihren Rechner**
|
|
133
|
+
- Nur anonyme Token-Zähler werden übermittelt
|
|
134
|
+
- Kein Tracking, keine Analytics-Cookies
|
|
135
|
+
- Open-Source-Kern — jederzeit prüf- und auditierbar
|
|
136
|
+
|
|
137
|
+
## Architektur
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
Claude Code
|
|
141
|
+
|
|
|
142
|
+
|-- UserPromptSubmit --> Rule Engine --> Kontext-Injektion
|
|
143
|
+
|-- Stop --> Metering Client --> Cloud API
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
- **Plugin** — Bash/Node.js, Claude Code Hooks API
|
|
147
|
+
- **Rule Engine** — YAML-Konfiguration, Node.js Parser
|
|
148
|
+
- **Token Meter** — gpt-tokenizer (lokal)
|
|
149
|
+
- **Cloud** — Metering API + Dashboard + Stripe Billing
|
|
150
|
+
|
|
151
|
+
## Voraussetzungen
|
|
152
|
+
|
|
153
|
+
- Node.js 20+
|
|
154
|
+
- Claude Code
|
|
155
|
+
|
|
156
|
+
## Links
|
|
157
|
+
|
|
158
|
+
- [Website](https://tokenizer-speedup.simosphereai.com)
|
|
159
|
+
- [npm-Paket](https://www.npmjs.com/package/@simosphere/tokenizer-speedup)
|
|
160
|
+
- [Wiki / Dokumentation](https://github.com/SIMOSphereOS/tokenizer-speedup/wiki)
|
|
161
|
+
- [Datenschutzerklärung](https://tokenizer-speedup.simosphereai.com/privacy)
|
|
162
|
+
- [AGB](https://tokenizer-speedup.simosphereai.com/terms)
|
|
163
|
+
|
|
164
|
+
## Lizenz
|
|
165
|
+
|
|
166
|
+
Business Source License 1.1 (BSL-1.1)
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
<p align="center">
|
|
171
|
+
Mit Präzision entwickelt von <a href="https://simo-online.com"><strong>SIMO GmbH</strong></a><br>
|
|
172
|
+
Aschaffenburg, Deutschland
|
|
173
|
+
</p>
|
package/README.md
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<picture>
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset=".github/simosphere-logo.svg">
|
|
4
|
+
<source media="(prefers-color-scheme: light)" srcset=".github/simosphere-logo-dark.svg">
|
|
5
|
+
<img src=".github/simosphere-logo-dark.svg" alt="SIMOSphere AI" width="280">
|
|
6
|
+
</picture>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<h1 align="center">TokenizerSpeedUp</h1>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<strong>Pay less. Get more.</strong><br>
|
|
13
|
+
Intelligent context optimization for Claude Code sessions.
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
<p align="center">
|
|
17
|
+
<a href="https://www.npmjs.com/package/@simosphere/tokenizer-speedup"><img src="https://img.shields.io/npm/v/@simosphere/tokenizer-speedup?color=5EBFBF&label=npm" alt="npm version"></a>
|
|
18
|
+
<a href="https://github.com/SIMOSphereOS/tokenizer-speedup/actions"><img src="https://img.shields.io/github/actions/workflow/status/SIMOSphereOS/tokenizer-speedup/ci.yml?branch=main&color=5EBFBF&label=CI" alt="CI"></a>
|
|
19
|
+
<img src="https://img.shields.io/badge/node-%3E%3D20-5EBFBF" alt="Node.js >=20">
|
|
20
|
+
<img src="https://img.shields.io/badge/license-BSL--1.1-5EBFBF" alt="License BSL-1.1">
|
|
21
|
+
</p>
|
|
22
|
+
|
|
23
|
+
<p align="center">
|
|
24
|
+
<a href="https://tokenizer-speedup.simosphereai.com">Website</a> ·
|
|
25
|
+
<a href="https://github.com/SIMOSphereOS/tokenizer-speedup/wiki">Documentation</a> ·
|
|
26
|
+
<a href="./README.de.md">Deutsch</a>
|
|
27
|
+
</p>
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## The Problem
|
|
32
|
+
|
|
33
|
+
Every Claude Code session loads context — `CLAUDE.md`, project docs, feature specs, lessons learned. Most of it isn't needed for the current task, yet it consumes thousands of tokens every time.
|
|
34
|
+
|
|
35
|
+
**TokenizerSpeedUp** detects what you're working on and loads only the relevant context. The result: **30-60% fewer tokens** per session.
|
|
36
|
+
|
|
37
|
+
## How It Works
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
Prompt: "fix the authentication bug"
|
|
41
|
+
|
|
|
42
|
+
Keyword Detection
|
|
43
|
+
[fix] [bug] matched
|
|
44
|
+
|
|
|
45
|
+
Rule Engine loads only:
|
|
46
|
+
docs/lessons-learned/*.md
|
|
47
|
+
|
|
|
48
|
+
Context Compression
|
|
49
|
+
(summaries if needed)
|
|
50
|
+
|
|
|
51
|
+
Optimized context injected
|
|
52
|
+
2,300 tokens instead of 5,000
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
| Layer | Function |
|
|
56
|
+
|---|---|
|
|
57
|
+
| **Context Gating** | YAML rules detect keywords and load only matching docs |
|
|
58
|
+
| **Context Compression** | Summaries instead of full files when appropriate |
|
|
59
|
+
| **Session Intelligence** | Proactive context management to avoid compacting |
|
|
60
|
+
|
|
61
|
+
## Quick Start
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# Install globally
|
|
65
|
+
npm install -g @simosphere/tokenizer-speedup
|
|
66
|
+
|
|
67
|
+
# Setup with your API key
|
|
68
|
+
tsu setup --api-key YOUR_KEY
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Restart Claude Code. Done.
|
|
72
|
+
|
|
73
|
+
Get your API key at [tokenizer-speedup.simosphereai.com](https://tokenizer-speedup.simosphereai.com).
|
|
74
|
+
|
|
75
|
+
## Results
|
|
76
|
+
|
|
77
|
+
Real-world data from SIMO GmbH (2 weeks):
|
|
78
|
+
|
|
79
|
+
| Metric | Value |
|
|
80
|
+
|---|---|
|
|
81
|
+
| Token reduction | **54%** |
|
|
82
|
+
| Before | 550 lines / ~5,000 tokens |
|
|
83
|
+
| After | 251 lines / ~2,300 tokens |
|
|
84
|
+
| Monthly savings | **$36** |
|
|
85
|
+
| ROI | **1:6.7** |
|
|
86
|
+
|
|
87
|
+
## Configuration
|
|
88
|
+
|
|
89
|
+
Create a `tokenizer-speedup.yaml` in your project root:
|
|
90
|
+
|
|
91
|
+
```yaml
|
|
92
|
+
version: 1
|
|
93
|
+
rules:
|
|
94
|
+
- trigger: [fix, bug, error]
|
|
95
|
+
load: docs/lessons-learned/*.md
|
|
96
|
+
max_tokens: 2000
|
|
97
|
+
|
|
98
|
+
- trigger: [design, architecture]
|
|
99
|
+
load: docs/decisions/*.md
|
|
100
|
+
summary_only: true
|
|
101
|
+
|
|
102
|
+
- trigger: [feature, implement]
|
|
103
|
+
load: docs/features/*.md
|
|
104
|
+
max_tokens: 4000
|
|
105
|
+
|
|
106
|
+
context_limits:
|
|
107
|
+
max_injected_tokens: 8000
|
|
108
|
+
max_file_tokens: 4000
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
See [Configuration](https://github.com/SIMOSphereOS/tokenizer-speedup/wiki/Configuration) in the wiki for details.
|
|
112
|
+
|
|
113
|
+
## CLI
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
tsu setup --api-key KEY # Configure plugin + hooks
|
|
117
|
+
tsu analyze file.md # Count tokens in a file
|
|
118
|
+
tsu config # Validate YAML config
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Pricing
|
|
122
|
+
|
|
123
|
+
| Free | Pro | Team |
|
|
124
|
+
|---|---|---|
|
|
125
|
+
| $0/month | $5/month | $15/seat/month |
|
|
126
|
+
| 100K tokens saved | Unlimited | Unlimited |
|
|
127
|
+
| Basic dashboard | Full analytics | Admin dashboard |
|
|
128
|
+
| Default rules | Custom rules | Team-wide sync |
|
|
129
|
+
|
|
130
|
+
## Privacy
|
|
131
|
+
|
|
132
|
+
- Your prompts **never leave your machine**
|
|
133
|
+
- Only anonymous token counters are transmitted
|
|
134
|
+
- No tracking, no analytics cookies
|
|
135
|
+
- Open source core — inspect and audit anytime
|
|
136
|
+
|
|
137
|
+
## Architecture
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
Claude Code
|
|
141
|
+
|
|
|
142
|
+
|-- UserPromptSubmit --> Rule Engine --> Context Injection
|
|
143
|
+
|-- Stop --> Metering Client --> Cloud API
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
- **Plugin** — Bash/Node.js, Claude Code Hooks API
|
|
147
|
+
- **Rule Engine** — YAML config, Node.js parser
|
|
148
|
+
- **Token Meter** — gpt-tokenizer (local)
|
|
149
|
+
- **Cloud** — Metering API + Dashboard + Stripe Billing
|
|
150
|
+
|
|
151
|
+
## Requirements
|
|
152
|
+
|
|
153
|
+
- Node.js 20+
|
|
154
|
+
- Claude Code
|
|
155
|
+
|
|
156
|
+
## Links
|
|
157
|
+
|
|
158
|
+
- [Website](https://tokenizer-speedup.simosphereai.com)
|
|
159
|
+
- [npm Package](https://www.npmjs.com/package/@simosphere/tokenizer-speedup)
|
|
160
|
+
- [Wiki / Documentation](https://github.com/SIMOSphereOS/tokenizer-speedup/wiki)
|
|
161
|
+
- [Privacy Policy](https://tokenizer-speedup.simosphereai.com/privacy)
|
|
162
|
+
- [Terms of Service](https://tokenizer-speedup.simosphereai.com/terms)
|
|
163
|
+
|
|
164
|
+
## License
|
|
165
|
+
|
|
166
|
+
Business Source License 1.1 (BSL-1.1)
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
<p align="center">
|
|
171
|
+
Made with precision by <a href="https://simo-online.com"><strong>SIMO GmbH</strong></a><br>
|
|
172
|
+
Aschaffenburg, Germany
|
|
173
|
+
</p>
|
package/dist/cli/analyze.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x324465=_0x342d;function _0x3bca(){const _0x2fb572=['LQUHh','397246lYmdax','3255483TZTbJW','8pcuVrr','102FerhLg','xZulD','9QvTpSI','14119hEYsTO','1GCGDZV','estimateTokens','1382530wyDAsu','GQgiD','utf-8','437525leHWWn','954IohRmD','length','claude','2362120sShGdG','BgLGY'];_0x3bca=function(){return _0x2fb572;};return _0x3bca();}(function(_0x272f77,_0xe41205){const _0x428edb=_0x342d,_0x3f5c4f=_0x272f77();while(!![]){try{const _0x12fb45=-parseInt(_0x428edb(0x1af))/0x1*(-parseInt(_0x428edb(0x1a8))/0x2)+-parseInt(_0x428edb(0x1b5))/0x3*(-parseInt(_0x428edb(0x1aa))/0x4)+parseInt(_0x428edb(0x1b4))/0x5+parseInt(_0x428edb(0x1ab))/0x6*(parseInt(_0x428edb(0x1ae))/0x7)+parseInt(_0x428edb(0x1b8))/0x8*(parseInt(_0x428edb(0x1ad))/0x9)+-parseInt(_0x428edb(0x1b1))/0xa+-parseInt(_0x428edb(0x1a9))/0xb;if(_0x12fb45===_0xe41205)break;else _0x3f5c4f['push'](_0x3f5c4f['shift']());}catch(_0x32dd75){_0x3f5c4f['push'](_0x3f5c4f['shift']());}}}(_0x3bca,0x2c760));import{readFileSync}from'node:fs';import'../shared/providers/claude-provider.js';import'../shared/providers/openai-provider.js';function _0x342d(_0x3351dd,_0x2328d3){_0x3351dd=_0x3351dd-0x1a6;const _0x3bcac6=_0x3bca();let _0x342d8b=_0x3bcac6[_0x3351dd];return _0x342d8b;}import{createTokenProvider}from'../shared/token-provider.js';export function analyzeText(_0x33560e,_0x3ef345='claude',_0x1ff1de){const _0x1e5edf=_0x342d,_0x550842={'GQgiD':function(_0x5f3e9e,_0x3c3271){return _0x5f3e9e===_0x3c3271;},'odimT':'claude','BgLGY':'claude-sonnet-4-20250514','LQUHh':function(_0x4ee392,_0x285143,_0x3892e6){return _0x4ee392(_0x285143,_0x3892e6);}},_0x275b62=_0x1ff1de??(_0x550842[_0x1e5edf(0x1b2)](_0x550842['odimT'],_0x3ef345)?_0x550842[_0x1e5edf(0x1a6)]:'gpt-4o'),_0x7d9cff=_0x550842[_0x1e5edf(0x1a7)](createTokenProvider,_0x3ef345,_0x275b62),_0x2b4099=_0x33560e['split'](/\s+/)['filter'](Boolean)[_0x1e5edf(0x1b6)];return{'tokens':_0x7d9cff['countTokens'](_0x33560e),'estimate':_0x7d9cff[_0x1e5edf(0x1b0)](_0x33560e),'provider':_0x3ef345,'model':_0x275b62,'chars':_0x33560e[_0x1e5edf(0x1b6)],'words':_0x2b4099};}export function analyzeFile(_0x384e75,_0x3e469c=_0x324465(0x1b7),_0x293977){const _0x62ded6=_0x324465,_0x2ed158={'qlhkH':function(_0x42f7a3,_0x55e533,_0x1c174c,_0x54a44a){return _0x42f7a3(_0x55e533,_0x1c174c,_0x54a44a);},'xZulD':_0x62ded6(0x1b3)};return _0x2ed158['qlhkH'](analyzeText,readFileSync(_0x384e75,_0x2ed158[_0x62ded6(0x1ac)]),_0x3e469c,_0x293977);}export function compareProviders(_0x5e7bda){const _0x186be8={'QAZEX':'openai'};return{'claude':analyzeText(_0x5e7bda,'claude'),'openai':analyzeText(_0x5e7bda,_0x186be8['QAZEX'])};}
|
package/dist/cli/config-cmd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x15cfaa,_0x1ddf1b){const _0x290e5b=_0x4293,_0x223855=_0x15cfaa();while(!![]){try{const _0x32599b=parseInt(_0x290e5b(0x1e3))/0x1*(-parseInt(_0x290e5b(0x1df))/0x2)+parseInt(_0x290e5b(0x1e5))/0x3*(-parseInt(_0x290e5b(0x1e4))/0x4)+-parseInt(_0x290e5b(0x1e0))/0x5+-parseInt(_0x290e5b(0x1e6))/0x6*(parseInt(_0x290e5b(0x1de))/0x7)+parseInt(_0x290e5b(0x1e2))/0x8+-parseInt(_0x290e5b(0x1e1))/0x9+parseInt(_0x290e5b(0x1dd))/0xa;if(_0x32599b===_0x1ddf1b)break;else _0x223855['push'](_0x223855['shift']());}catch(_0x4f404b){_0x223855['push'](_0x223855['shift']());}}}(_0x5959,0x8dee7));function _0x4293(_0x43fa59,_0x507bc9){_0x43fa59=_0x43fa59-0x1dc;const _0x595964=_0x5959();let _0x429311=_0x595964[_0x43fa59];return _0x429311;}import'../shared/providers/claude-provider.js';import'../shared/providers/openai-provider.js';import{parseConfig}from'../plugin/config-loader.js';export function validateConfigYaml(_0x59745f){const _0x1ae43f=_0x4293,_0xd213bc={'JBbbc':function(_0x33e3ec,_0x1871b0){return _0x33e3ec(_0x1871b0);}};try{const _0x206771=_0xd213bc['JBbbc'](parseConfig,_0x59745f);return{'valid':!0x0,'provider':_0x206771['provider'],'model':_0x206771['model'],'ruleCount':_0x206771[_0x1ae43f(0x1e7)]['length']};}catch(_0x33db3){return{'valid':!0x1,'provider':'','model':'','ruleCount':0x0,'error':_0x33db3[_0x1ae43f(0x1dc)]};}}function _0x5959(){const _0x1ddcbe=['89712GCJTuN','8612880iZpRiq','40trQjBl','12qjeZoW','745383FiXhqj','1584TFTbIt','rules','message','13298780mAXEDP','20552hZTdRu','8974lzAtLy','576010sUPABE'];_0x5959=function(){return _0x1ddcbe;};return _0x5959();}
|
package/dist/cli/index.d.ts
CHANGED
package/dist/cli/index.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
function _0x3b59(){const _0x32ff3c=['UStZC','XpCjw','TokenizerSpeedUp\x20—\x20Multi-LLM\x20Token\x20Optimization\x20CLI','324472IxfmBX','321063BaKFSg','2570616IKWVOv','0.7.2','NHaJo','config','action','claude-sonnet-4-20250514','hiEqK','argument','--api-key\x20<key>','stringify','../plugin/config-loader.js','provider','after','2YohggL','WkHju','includes','Analyze\x20inline\x20text\x20instead\x20of\x20file','text','Configure\x20TokenizerSpeedUp\x20with\x20your\x20API\x20key\x20and\x20register\x20Claude\x20Code\x20hooks','20WKDdIh','547579uyJeeJ','MUonJ','yEYFV','rules','claude','YTJHq','-p,\x20--provider\x20<provider>','Config\x20file\x20path','zbeqQ','model','1020CvMMcL','argv','requiredOption','\x0aExamples:\x0a\x20\x20$\x20tsu\x20setup\x20--api-key\x20YOUR_KEY\x20\x20\x20Configure\x20with\x20your\x20API\x20key\x0a\x20\x20$\x20tsu\x20analyze\x20src/index.ts\x20\x20\x20\x20\x20\x20\x20Count\x20tokens\x20in\x20a\x20file\x0a\x20\x20$\x20tsu\x20analyze\x20--text\x20\x22Hello\x22\x20\x20\x20\x20\x20Count\x20tokens\x20in\x20inline\x20text\x0a\x20\x20$\x20tsu\x20config\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Validate\x20tokenizer-speedup.yaml\x0a\x0aQuick\x20Start:\x0a\x20\x201.\x20Get\x20your\x20free\x20API\x20key\x20at\x20https://tokenizer-speedup.simosphereai.com\x0a\x20\x202.\x20Run:\x20tsu\x20setup\x20--api-key\x20YOUR_KEY\x0a\x20\x203.\x20Restart\x20Claude\x20Code\x20—\x20the\x20plugin\x20activates\x20automatically\x0a\x0aDocs:\x20https://tokenizer-speedup.simosphereai.com\x0a','cli/index','jZdVJ','log','wsetC','20wKGbrL','command','setup','length','Nhquh','utf-8','naBuy','description','Your\x20TokenizerSpeedUp\x20API\x20key\x20(get\x20one\x20at\x20https://tokenizer-speedup.simosphereai.com)','4700509stJwFL','message','gpt-4o','8345ZhSfAk','Model\x20name','2816289TdWmzX'];_0x3b59=function(){return _0x32ff3c;};return _0x3b59();}function _0x57c3(_0x1ce0f9,_0x6c98de){_0x1ce0f9=_0x1ce0f9-0x132;const _0x3b59dd=_0x3b59();let _0x57c38a=_0x3b59dd[_0x1ce0f9];return _0x57c38a;}const _0x5801d5=_0x57c3;(function(_0x6556d8,_0x7402b1){const _0x2675be=_0x57c3,_0x96631e=_0x6556d8();while(!![]){try{const _0x441279=-parseInt(_0x2675be(0x169))/0x1*(parseInt(_0x2675be(0x162))/0x2)+parseInt(_0x2675be(0x154))/0x3*(parseInt(_0x2675be(0x141))/0x4)+parseInt(_0x2675be(0x14d))/0x5*(-parseInt(_0x2675be(0x139))/0x6)+-parseInt(_0x2675be(0x14f))/0x7+-parseInt(_0x2675be(0x153))/0x8+parseInt(_0x2675be(0x155))/0x9+-parseInt(_0x2675be(0x168))/0xa*(-parseInt(_0x2675be(0x14a))/0xb);if(_0x441279===_0x7402b1)break;else _0x96631e['push'](_0x96631e['shift']());}catch(_0x29ad1d){_0x96631e['push'](_0x96631e['shift']());}}}(_0x3b59,0x61f14));import{Command}from'commander';import'../shared/providers/claude-provider.js';import'../shared/providers/openai-provider.js';import{createTokenProvider}from'../shared/token-provider.js';import{readFileSync}from'node:fs';import{runSetup}from'./setup-cmd.js';export function buildCLI(){const _0x3a421f=_0x57c3,_0x5cf02d={'jBXaU':function(_0x570c8d,_0x533240){return _0x570c8d(_0x533240);},'aWuTU':function(_0x8d85e1,_0x2df72d){return _0x8d85e1===_0x2df72d;},'eRLKP':_0x3a421f(0x15a),'WkHju':_0x3a421f(0x14c),'YTJHq':function(_0x5795dd,_0x17642f,_0x521dc9){return _0x5795dd(_0x17642f,_0x521dc9);},'KgDdA':'Error:\x20provide\x20a\x20file\x20argument\x20or\x20--text\x20option','naBuy':_0x3a421f(0x15f),'KVsbM':function(_0x268368,_0x207ce8){return _0x268368(_0x207ce8);},'Nhquh':_0x3a421f(0x156),'NHaJo':_0x3a421f(0x167),'cRWKF':'analyze','hiEqK':'File\x20to\x20analyze','UStZC':_0x3a421f(0x135),'fuqEV':'LLM\x20provider\x20(claude,\x20openai)','MUonJ':_0x3a421f(0x133),'XpCjw':'-m,\x20--model\x20<model>','yEYFV':_0x3a421f(0x165),'jZdVJ':'Validate\x20configuration\x20file','zbeqQ':_0x3a421f(0x136),'wsetC':'tokenizer-speedup.yaml'},_0x46bc01=new Command();return _0x46bc01['name']('tsu')['description'](_0x3a421f(0x152))['version'](_0x5cf02d[_0x3a421f(0x145)])['addHelpText'](_0x3a421f(0x161),_0x3a421f(0x13c)),_0x46bc01['command'](_0x3a421f(0x143))[_0x3a421f(0x148)](_0x5cf02d[_0x3a421f(0x157)])[_0x3a421f(0x13b)](_0x3a421f(0x15d),_0x3a421f(0x149))[_0x3a421f(0x159)](_0x149316=>{_0x5cf02d['jBXaU'](runSetup,_0x149316['apiKey']);}),_0x46bc01['command'](_0x5cf02d['cRWKF'])['description']('Analyze\x20token\x20count\x20of\x20a\x20file\x20or\x20text')[_0x3a421f(0x15c)]('[file]',_0x5cf02d[_0x3a421f(0x15b)])['option'](_0x5cf02d[_0x3a421f(0x150)],_0x5cf02d['fuqEV'],_0x5cf02d[_0x3a421f(0x16a)])['option'](_0x5cf02d[_0x3a421f(0x151)],_0x3a421f(0x14e))['option']('-t,\x20--text\x20<text>',_0x5cf02d[_0x3a421f(0x16b)])['action']((_0x4963fe,_0xb0561d)=>{const _0x41dc9e=_0x3a421f,_0x51e795=_0xb0561d[_0x41dc9e(0x138)]??(_0x5cf02d['aWuTU'](_0x41dc9e(0x133),_0xb0561d['provider'])?_0x5cf02d['eRLKP']:_0x5cf02d[_0x41dc9e(0x163)]),_0x5997ca=_0x5cf02d[_0x41dc9e(0x134)](createTokenProvider,_0xb0561d[_0x41dc9e(0x160)],_0x51e795);let _0x2bd429;if(_0xb0561d[_0x41dc9e(0x166)])_0x2bd429=_0xb0561d[_0x41dc9e(0x166)];else{if(!_0x4963fe)return console['error'](_0x5cf02d['KgDdA']),void(process['exitCode']=0x1);_0x2bd429=readFileSync(_0x4963fe,_0x41dc9e(0x146));}const _0x4b3c88=_0x5997ca['countTokens'](_0x2bd429),_0x2daa7a=_0x5997ca['estimateTokens'](_0x2bd429);console[_0x41dc9e(0x13f)](JSON[_0x41dc9e(0x15e)]({'file':_0x4963fe??'(inline)','tokens':_0x4b3c88,'estimate':_0x2daa7a,'provider':_0xb0561d['provider'],'model':_0x51e795}));}),_0x46bc01[_0x3a421f(0x142)](_0x3a421f(0x158))['description'](_0x5cf02d[_0x3a421f(0x13e)])[_0x3a421f(0x15c)]('[file]',_0x5cf02d[_0x3a421f(0x137)],_0x5cf02d[_0x3a421f(0x140)])['action'](async _0x2062f3=>{const _0xad7096=_0x3a421f;try{const _0x7a6047=_0x5cf02d['YTJHq'](readFileSync,_0x2062f3,'utf-8'),{parseConfig:_0x3ac976}=await import(_0x5cf02d[_0xad7096(0x147)]),_0x5683ec=_0x5cf02d['KVsbM'](_0x3ac976,_0x7a6047);console['log'](JSON[_0xad7096(0x15e)]({'valid':!0x0,'provider':_0x5683ec[_0xad7096(0x160)],'model':_0x5683ec['model'],'ruleCount':_0x5683ec[_0xad7096(0x132)][_0xad7096(0x144)]}));}catch(_0xd292a5){console[_0xad7096(0x13f)](JSON['stringify']({'valid':!0x1,'error':_0xd292a5[_0xad7096(0x14b)]})),process['exitCode']=0x1;}}),_0x46bc01;}process[_0x5801d5(0x13a)][0x1]?.['replace'](/\\/g,'/')[_0x5801d5(0x164)](_0x5801d5(0x13d))&&buildCLI()['parse']();
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,wCAAwC,CAAC;AAChD,OAAO,wCAAwC,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,UAAU,QAAQ;IACtB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,KAAK,CAAC;SACX,WAAW,CAAC,qDAAqD,CAAC;SAClE,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;CAazB,CAAC,CAAC;IAED,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,6EAA6E,CAAC;SAC1F,cAAc,CAAC,iBAAiB,EAAE,uFAAuF,CAAC;SAC1H,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,uCAAuC,CAAC;SACpD,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACrC,MAAM,CAAC,2BAA2B,EAAE,+BAA+B,EAAE,QAAQ,CAAC;SAC9E,MAAM,CAAC,qBAAqB,EAAE,YAAY,CAAC;SAC3C,MAAM,CAAC,mBAAmB,EAAE,qCAAqC,CAAC;SAClE,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACzG,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAEnE,IAAI,IAAY,CAAC;QACjB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;aAAM,IAAI,IAAI,EAAE,CAAC;YAChB,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACjE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YACzB,IAAI,EAAE,IAAI,IAAI,UAAU;YACxB,MAAM;YACN,QAAQ;YACR,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,aAAa;SACrB,CAAC,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,6BAA6B,CAAC;SAC1C,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,EAAE,wBAAwB,CAAC;SAChE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC5C,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACzB,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;aAC/B,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACzB,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,GAAG,CAAC,OAAO;aACnB,CAAC,CAAC,CAAC;YACJ,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;IAC/D,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC;AACrB,CAAC"}
|
package/dist/cli/setup-cmd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x1a0665=_0x2f24;(function(_0x185a2e,_0x31a24b){const _0x5e4349=_0x2f24,_0x48f23b=_0x185a2e();while(!![]){try{const _0x2801de=-parseInt(_0x5e4349(0xd5))/0x1+parseInt(_0x5e4349(0xe1))/0x2+-parseInt(_0x5e4349(0xdd))/0x3*(-parseInt(_0x5e4349(0xd6))/0x4)+-parseInt(_0x5e4349(0xda))/0x5+parseInt(_0x5e4349(0xed))/0x6+-parseInt(_0x5e4349(0xe2))/0x7*(parseInt(_0x5e4349(0xe0))/0x8)+-parseInt(_0x5e4349(0xea))/0x9*(-parseInt(_0x5e4349(0xe4))/0xa);if(_0x2801de===_0x31a24b)break;else _0x48f23b['push'](_0x48f23b['shift']());}catch(_0xbfd017){_0x48f23b['push'](_0x48f23b['shift']());}}}(_0x16db,0x58a76));import{readFileSync,writeFileSync,mkdirSync}from'node:fs';import{join}from'node:path';import{homedir}from'node:os';const CONFIG_DIR=join(homedir(),'.config',_0x1a0665(0xe9)),CONFIG_FILE=join(CONFIG_DIR,'config.json'),CLAUDE_SETTINGS_FILE=join(homedir(),_0x1a0665(0xdb),'settings.local.json');export function runSetup(_0x36a5dd){const _0x27aa30=_0x1a0665,_0x2a5734={'jNHUf':_0x27aa30(0xd9)};try{saveApiKey(_0x36a5dd),console['log'](_0x27aa30(0xe8)),console[_0x27aa30(0xeb)](_0x2a5734['jNHUf']),registerHooks(),console[_0x27aa30(0xeb)]('✅\x20Hooks\x20registered\x20in\x20Claude\x20Code\x20settings.'),console['log'](''),console[_0x27aa30(0xeb)](_0x27aa30(0xe5));}catch(_0x3ab640){console[_0x27aa30(0xd7)](_0x27aa30(0xe6)+_0x3ab640['message']),process['exitCode']=0x1;}}function _0x2f24(_0x418df6,_0xd161c5){_0x418df6=_0x418df6-0xd5;const _0x16db4e=_0x16db();let _0x2f2421=_0x16db4e[_0x418df6];return _0x2f2421;}function saveApiKey(_0x1f00e0){const _0x4db8b4=_0x1a0665,_0x1e1bbf={'WYVMV':_0x4db8b4(0xe3)};mkdirSync(CONFIG_DIR,{'recursive':!0x0});let _0x5352cb={};try{_0x5352cb=JSON['parse'](readFileSync(CONFIG_FILE,_0x1e1bbf[_0x4db8b4(0xd8)]));}catch{}_0x5352cb['apiKey']=_0x1f00e0,writeFileSync(CONFIG_FILE,JSON[_0x4db8b4(0xde)](_0x5352cb,null,0x2)+'\x0a',_0x1e1bbf['WYVMV']);}function registerHooks(){const _0xfaa54=_0x1a0665,_0x58ea21={'BVJgr':_0xfaa54(0xec),'BvLPs':_0xfaa54(0xe9)};mkdirSync(join(homedir(),_0xfaa54(0xdb)),{'recursive':!0x0});let _0x46af5c={};try{_0x46af5c=JSON['parse'](readFileSync(CLAUDE_SETTINGS_FILE,'utf-8'));}catch{}const _0x5e5ed6=_0x46af5c[_0xfaa54(0xdc)]??{};_0x5e5ed6['UserPromptSubmit']=[{'matcher':'','hooks':[{'type':'command','command':_0xfaa54(0xe9)}]}],_0x5e5ed6[_0xfaa54(0xdf)]=[{'matcher':'','hooks':[{'type':_0x58ea21['BVJgr'],'command':_0x58ea21['BvLPs'],'timeout':0xa}]}],_0x46af5c['hooks']=_0x5e5ed6,writeFileSync(CLAUDE_SETTINGS_FILE,JSON[_0xfaa54(0xde)](_0x46af5c,null,0x2)+'\x0a','utf-8');}export function loadApiKeyFromConfig(){const _0x1dacf5=_0x1a0665;try{return JSON[_0x1dacf5(0xe7)](readFileSync(CONFIG_FILE,_0x1dacf5(0xe3)))['apiKey']??void 0x0;}catch{return;}}function _0x16db(){const _0x38e0eb=['command','3301770dromEO','25150dSYNPL','4136QIPahU','error','WYVMV','⚠️\x20\x20Claude\x20Code\x20will\x20restart\x20automatically\x20to\x20load\x20the\x20plugin.\x20This\x20is\x20expected\x20behavior.','3374900hvuyTD','.claude','hooks','1335kexqPl','stringify','Stop','16hiBLDs','994248gGAqUn','1662052AVRsgc','utf-8','30ucbMBl','Setup\x20complete.\x20Please\x20restart\x20Claude\x20Code\x20to\x20activate\x20the\x20plugin.','❌\x20Setup\x20failed:\x20','parse','✅\x20API\x20key\x20saved\x20successfully.','tokenizer-speedup','91737BXqvfL','log'];_0x16db=function(){return _0x38e0eb;};return _0x16db();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-cmd.js","sourceRoot":"","sources":["../../src/cli/setup-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOlC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;AACnE,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACpD,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC;AAE/E,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,uBAAuB;
|
|
1
|
+
{"version":3,"file":"setup-cmd.js","sourceRoot":"","sources":["../../src/cli/setup-cmd.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x326b6e,_0x128189){const _0x1c5619=_0x3385,_0xd1a0a5=_0x326b6e();while(!![]){try{const _0x3dc82e=parseInt(_0x1c5619(0x16a))/0x1+-parseInt(_0x1c5619(0x162))/0x2+parseInt(_0x1c5619(0x164))/0x3+-parseInt(_0x1c5619(0x169))/0x4+-parseInt(_0x1c5619(0x167))/0x5*(parseInt(_0x1c5619(0x16c))/0x6)+parseInt(_0x1c5619(0x163))/0x7+-parseInt(_0x1c5619(0x168))/0x8;if(_0x3dc82e===_0x128189)break;else _0xd1a0a5['push'](_0xd1a0a5['shift']());}catch(_0x2773e7){_0xd1a0a5['push'](_0xd1a0a5['shift']());}}}(_0x2205,0x3ea9a));function _0x3385(_0x49285e,_0x2c858b){_0x49285e=_0x49285e-0x161;const _0x220505=_0x2205();let _0x338519=_0x220505[_0x49285e];return _0x338519;}export function buildCheckoutParams(_0x375ee5){const _0x45ff54=_0x3385,_0x17c13f={'CZOhJ':_0x45ff54(0x161)},_0x3c6e27=[{'price':_0x375ee5['recurringPriceId'],'quantity':0x1}];return _0x375ee5[_0x45ff54(0x166)]&&_0x3c6e27['push']({'price':_0x375ee5[_0x45ff54(0x166)]}),{'customer':_0x375ee5['customerId'],'mode':_0x17c13f['CZOhJ'],'line_items':_0x3c6e27,'success_url':_0x375ee5[_0x45ff54(0x165)],'cancel_url':_0x375ee5[_0x45ff54(0x16b)],'metadata':{'tier':_0x375ee5[_0x45ff54(0x16d)]}};}function _0x2205(){const _0x2699a6=['54491lYnDAO','cancelUrl','12tsHbQY','tier','subscription','188948EttNyq','2591470HFPRQr','1496652PrqZer','successUrl','meteredPriceId','123780YGkUgB','590256qCaQOI','1796604xWmFzp'];_0x2205=function(){return _0x2699a6;};return _0x2205();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const _0x1a9d39=_0xa590;(function(_0x2ef087,_0x4bd6f8){const _0x4bd8c8=_0xa590,_0x4f7483=_0x2ef087();while(!![]){try{const _0x54112f=parseInt(_0x4bd8c8(0xab))/0x1*(-parseInt(_0x4bd8c8(0xb3))/0x2)+parseInt(_0x4bd8c8(0xb4))/0x3*(-parseInt(_0x4bd8c8(0xac))/0x4)+parseInt(_0x4bd8c8(0xb1))/0x5*(parseInt(_0x4bd8c8(0xb2))/0x6)+-parseInt(_0x4bd8c8(0xa7))/0x7*(parseInt(_0x4bd8c8(0xaa))/0x8)+parseInt(_0x4bd8c8(0xa8))/0x9+parseInt(_0x4bd8c8(0xa6))/0xa+-parseInt(_0x4bd8c8(0xa9))/0xb*(-parseInt(_0x4bd8c8(0xae))/0xc);if(_0x54112f===_0x4bd6f8)break;else _0x4f7483['push'](_0x4f7483['shift']());}catch(_0x1a1309){_0x4f7483['push'](_0x4f7483['shift']());}}}(_0x4956,0x6be5e));export const STRIPE_CONFIG={'free':{'name':_0x1a9d39(0xad),'description':'Up\x20to\x20100K\x20tokens\x20saved/month.\x20Basic\x20dashboard.','recurringPrice':0x0},'pro':{'name':'TokenizerSpeedUp\x20Pro','description':_0x1a9d39(0xb0),'recurringPrice':0x1f4,'meteredUnitAmount':0x1e},'team':{'name':_0x1a9d39(0xaf),'description':'Per-seat\x20pricing.\x20$15/mo/seat\x20+\x208%\x20of\x20savings\x20over\x201M\x20tokens.','recurringPrice':0x5dc,'meteredUnitAmount':0x18}};function _0xa590(_0x210041,_0x76a9f7){_0x210041=_0x210041-0xa6;const _0x495664=_0x4956();let _0xa59041=_0x495664[_0x210041];return _0xa59041;}function _0x4956(){const _0x5c4f67=['354lhRyxP','4178jdSbOQ','1353gLoYgy','6816100PubIPb','21izWBhN','1239561CwBLjC','22KcyrPT','1175192NCuIzb','265LGwAUX','4468wApMBb','TokenizerSpeedUp\x20Free','6406068sxrDpR','TokenizerSpeedUp\x20Team','Unlimited\x20optimization.\x20$5/mo\x20+\x2010%\x20of\x20savings\x20over\x20500K\x20tokens.','4490nMEcKk'];_0x4956=function(){return _0x5c4f67;};return _0x4956();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const _0x391ca7=_0x5eb4;(function(_0x2ea063,_0x2010a8){const _0x40dac2=_0x5eb4,_0x14c203=_0x2ea063();while(!![]){try{const _0x7a46ea=parseInt(_0x40dac2(0x164))/0x1*(-parseInt(_0x40dac2(0x169))/0x2)+parseInt(_0x40dac2(0x16f))/0x3*(-parseInt(_0x40dac2(0x16c))/0x4)+-parseInt(_0x40dac2(0x172))/0x5+parseInt(_0x40dac2(0x16a))/0x6+parseInt(_0x40dac2(0x160))/0x7+parseInt(_0x40dac2(0x171))/0x8+parseInt(_0x40dac2(0x16d))/0x9;if(_0x7a46ea===_0x2010a8)break;else _0x14c203['push'](_0x14c203['shift']());}catch(_0x13ad50){_0x14c203['push'](_0x14c203['shift']());}}}(_0x4847,0xad2dc));import{STRIPE_CONFIG}from'./stripe-config.js';const TIER_LIMITS={'free':{'allowance':0x186a0,'unitRate':0x0},'pro':{'allowance':0x7a120,'unitRate':STRIPE_CONFIG['pro']['meteredUnitAmount']},'team':{'allowance':0xf4240,'unitRate':STRIPE_CONFIG[_0x391ca7(0x167)][_0x391ca7(0x163)]}};export function calculateUsageCharge(_0xce62c4,_0x1ee207){const _0x4e21aa=_0x391ca7,_0x2e630c={'RxGMw':function(_0x4dc80d,_0x55c78f){return _0x4dc80d===_0x55c78f;},'ATlMy':function(_0x3e0c2d,_0x545cde){return _0x3e0c2d-_0x545cde;},'BRvsl':function(_0x19c71d,_0x50b53e){return _0x19c71d*_0x50b53e;}},_0x20c48a=TIER_LIMITS[_0xce62c4];if(_0x2e630c['RxGMw'](0x0,_0x20c48a[_0x4e21aa(0x162)]))return{'tier':_0xce62c4,'tokensSaved':_0x1ee207,'freeAllowance':_0x20c48a[_0x4e21aa(0x16b)],'chargeableTokens':0x0,'chargeableUnits':0x0,'unitRate':0x0,'amount':0x0};const _0x41535a=Math['max'](0x0,_0x2e630c[_0x4e21aa(0x16e)](_0x1ee207,_0x20c48a[_0x4e21aa(0x16b)])),_0x5b8520=Math['ceil'](_0x41535a/0x186a0),_0x2916c1=_0x2e630c['BRvsl'](_0x5b8520,_0x20c48a['unitRate']);return{'tier':_0xce62c4,'tokensSaved':_0x1ee207,'freeAllowance':_0x20c48a[_0x4e21aa(0x16b)],'chargeableTokens':_0x41535a,'chargeableUnits':_0x5b8520,'unitRate':_0x20c48a[_0x4e21aa(0x162)],'amount':_0x2916c1};}export function buildUsageRecord(_0x3470e1,_0x3bfa98){const _0x5e5929=_0x391ca7,_0x3b106a={'AuJoQ':function(_0x52883d,_0x5a7523){return _0x52883d/_0x5a7523;}};return{'subscription_item':_0x3470e1,'quantity':_0x3bfa98,'action':'set','timestamp':Math[_0x5e5929(0x168)](_0x3b106a[_0x5e5929(0x165)](Date[_0x5e5929(0x166)](),0x3e8))};}function _0x5eb4(_0x49f49e,_0x58940f){_0x49f49e=_0x49f49e-0x160;const _0x484760=_0x4847();let _0x5eb4c6=_0x484760[_0x49f49e];return _0x5eb4c6;}function _0x4847(){const _0x23339a=['59658DvRzha','chargeableUnits','9627168KvPJCY','5326740VEPWIj','1720187nTOQAE','no\x20subscription_item_id','unitRate','meteredUnitAmount','277227vOoBpl','AuJoQ','now','team','floor','10WkzmGj','4374762mSUUqB','allowance','32ecDekM','10274823XXMQLU','ATlMy'];_0x4847=function(){return _0x23339a;};return _0x4847();}export function prepareUsageSync(_0x48c94e,_0x4f86ad,_0x267d1a){const _0x44cbe9=_0x391ca7,_0x4f69bf={'dEbfV':function(_0x2ed71f,_0x53e75f,_0x1e0cdd){return _0x2ed71f(_0x53e75f,_0x1e0cdd);}};if(!_0x267d1a)return{'synced':!0x1,'subscriptionItemId':'','chargeableUnits':0x0,'tier':_0x48c94e,'error':_0x44cbe9(0x161)};const _0x56c1e5=_0x4f69bf['dEbfV'](calculateUsageCharge,_0x48c94e,_0x4f86ad);if(0x0===_0x56c1e5[_0x44cbe9(0x170)])return{'synced':!0x0,'subscriptionItemId':_0x267d1a,'chargeableUnits':0x0,'tier':_0x48c94e};return buildUsageRecord(_0x267d1a,_0x56c1e5['chargeableUnits']),{'synced':!0x0,'subscriptionItemId':_0x267d1a,'chargeableUnits':_0x56c1e5['chargeableUnits'],'tier':_0x48c94e};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x340f9e,_0x253701){const _0x525076=_0x2808,_0x5cbafd=_0x340f9e();while(!![]){try{const _0x4268d1=-parseInt(_0x525076(0x139))/0x1+-parseInt(_0x525076(0x13c))/0x2*(parseInt(_0x525076(0x138))/0x3)+-parseInt(_0x525076(0x137))/0x4+parseInt(_0x525076(0x13f))/0x5*(-parseInt(_0x525076(0x130))/0x6)+-parseInt(_0x525076(0x133))/0x7+parseInt(_0x525076(0x134))/0x8*(parseInt(_0x525076(0x136))/0x9)+parseInt(_0x525076(0x132))/0xa;if(_0x4268d1===_0x253701)break;else _0x5cbafd['push'](_0x5cbafd['shift']());}catch(_0x459653){_0x5cbafd['push'](_0x5cbafd['shift']());}}}(_0x5c6f,0x86de0));function _0x2808(_0x15b621,_0xfcabf7){_0x15b621=_0x15b621-0x129;const _0x5c6f70=_0x5c6f();let _0x2808fc=_0x5c6f70[_0x15b621];return _0x2808fc;}function _0x5c6f(){const _0x2f1e8f=['subscription','customer','upsert','object','current_period_end','data','FGltW','metadata','3510522XzAMKL','tier','25377950hjupcd','4647223GuJitJ','841200eTuhTW','free','45mBhnvm','354268ZkevPx','3BllzIX','1051716fEmxdt','price','invoice_paid','243740xDnBMc','kPFCo','items','5etTzdl'];_0x5c6f=function(){return _0x2f1e8f;};return _0x5c6f();}export function handleWebhookEvent(_0x2ba340,_0x5176cf){const _0xcfb63f=_0x2808,_0x2131cf={'kPFCo':'invoice.paid','ZsXSN':'customer.subscription.updated','FGltW':'subscription_updated','xaLhi':'active','MBLTi':'customer.subscription.deleted','oOUCt':'subscription_canceled'};switch(_0x2ba340['type']){case _0x2131cf[_0xcfb63f(0x13d)]:{const _0x4dd452=_0x2ba340['data']['object'];return{'handled':!0x0,'action':_0xcfb63f(0x13b),'customerId':_0x4dd452['customer'],'subscriptionId':_0x4dd452[_0xcfb63f(0x140)]};}case _0x2131cf['ZsXSN']:{const _0x5de321=_0x2ba340['data'][_0xcfb63f(0x12b)],_0x4fc443={'handled':!0x0,'action':_0x2131cf[_0xcfb63f(0x12e)],'customerId':_0x5de321[_0xcfb63f(0x129)],'subscriptionId':_0x5de321['id']};return _0x5176cf&&_0x5176cf[_0xcfb63f(0x12a)]({'id':_0x5de321['id'],'customerId':_0x5de321['customer'],'status':_0x5de321['status']||_0x2131cf['xaLhi'],'tier':_0x5de321[_0xcfb63f(0x12f)]?.[_0xcfb63f(0x131)]||_0xcfb63f(0x135),'currentPeriodEnd':_0x5de321[_0xcfb63f(0x12c)]||0x0,'meteredSubscriptionItemId':extractMeteredItemId(_0x5de321),'updatedAt':''}),_0x4fc443;}case _0x2131cf['MBLTi']:{const _0x4627e3=_0x2ba340['data']['object'],_0x46cf6b={'handled':!0x0,'action':_0x2131cf['oOUCt'],'customerId':_0x4627e3['customer'],'subscriptionId':_0x4627e3['id']};return _0x5176cf&&_0x5176cf['upsert']({'id':_0x4627e3['id'],'customerId':_0x4627e3['customer'],'status':'canceled','tier':_0x4627e3['metadata']?.['tier']||'free','currentPeriodEnd':_0x4627e3['current_period_end']||0x0,'updatedAt':''}),_0x46cf6b;}default:return{'handled':!0x1,'action':'ignored'};}}function extractMeteredItemId(_0x14a0c4){const _0x28b193=_0x2808,_0x2a3387=_0x14a0c4[_0x28b193(0x13e)];if(!_0x2a3387?.[_0x28b193(0x12d)])return;const _0x5b1ff3=_0x2a3387['data']['find'](_0x2c0b91=>'metered'===_0x2c0b91[_0x28b193(0x13a)]?.['recurring']?.['usage_type']);return _0x5b1ff3?.['id'];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function _0x42ab(_0x262a93,_0x3ecda8){_0x262a93=_0x262a93-0x76;const _0x53a81b=_0x53a8();let _0x42ab4b=_0x53a81b[_0x262a93];return _0x42ab4b;}const _0x5f14b2=_0x42ab;function _0x53a8(){const _0x503ab7=['3574140XcBZLy','2034ohvzXE','getBySubscriptionId','subs','8714748wjycBG','set','4984959KNewny','getByCustomerId','46072ALrKbL','2228248AdPqHK','values','63465XGydgs','655668HisYTi','6xBAXyl'];_0x53a8=function(){return _0x503ab7;};return _0x53a8();}(function(_0x4f65f9,_0x4f970a){const _0x2a2582=_0x42ab,_0x466c03=_0x4f65f9();while(!![]){try{const _0x162008=-parseInt(_0x2a2582(0x7e))/0x1+-parseInt(_0x2a2582(0x7c))/0x2+parseInt(_0x2a2582(0x80))/0x3*(parseInt(_0x2a2582(0x7f))/0x4)+parseInt(_0x2a2582(0x81))/0x5+parseInt(_0x2a2582(0x77))/0x6+parseInt(_0x2a2582(0x79))/0x7+-parseInt(_0x2a2582(0x7b))/0x8*(parseInt(_0x2a2582(0x82))/0x9);if(_0x162008===_0x4f970a)break;else _0x466c03['push'](_0x466c03['shift']());}catch(_0x171519){_0x466c03['push'](_0x466c03['shift']());}}}(_0x53a8,0xb1c46));export class MemorySubscriptionStore{['subs']=new Map();['upsert'](_0x1c2dde){const _0x404d56=_0x42ab;_0x1c2dde['updatedAt']=new Date()['toISOString'](),this['subs'][_0x404d56(0x78)](_0x1c2dde['id'],_0x1c2dde);}[_0x5f14b2(0x7a)](_0xffb945){const _0x1358c4=_0x5f14b2;for(const _0x4d900d of this['subs'][_0x1358c4(0x7d)]())if(_0x4d900d['customerId']===_0xffb945)return _0x4d900d;}[_0x5f14b2(0x83)](_0x551d40){return this['subs']['get'](_0x551d40);}['list'](){const _0x843bbc=_0x5f14b2;return[...this[_0x843bbc(0x76)][_0x843bbc(0x7d)]()];}}
|