@simosphere/tokenizer-speedup 0.7.4 → 0.8.1

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 (41) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README-plugin.md +17 -1
  3. package/README.de.md +41 -1
  4. package/README.md +41 -1
  5. package/dist/cli/analyze.js +1 -1
  6. package/dist/cli/config-cmd.js +1 -1
  7. package/dist/cli/index.js +1 -1
  8. package/dist/cli/init-cmd.js +1 -0
  9. package/dist/cli/setup-cmd.js +1 -1
  10. package/dist/cloud/stripe-checkout.js +1 -1
  11. package/dist/cloud/stripe-config.js +1 -1
  12. package/dist/cloud/stripe-usage.js +1 -1
  13. package/dist/cloud/stripe-webhooks.js +1 -1
  14. package/dist/cloud/subscription-store.js +1 -1
  15. package/dist/manifest.json +37 -32
  16. package/dist/mcp/index.js +2 -0
  17. package/dist/mcp/resources.js +1 -0
  18. package/dist/mcp/session.js +1 -0
  19. package/dist/mcp/tools.js +1 -0
  20. package/dist/plugin/cli.js +1 -1
  21. package/dist/plugin/config-loader.js +1 -1
  22. package/dist/plugin/context-compressor.js +1 -1
  23. package/dist/plugin/hook-dispatcher.js +1 -1
  24. package/dist/plugin/metering-client.js +1 -1
  25. package/dist/plugin/metrics-collector.js +1 -1
  26. package/dist/plugin/onboarding.js +1 -1
  27. package/dist/plugin/precompact-handler.js +1 -1
  28. package/dist/plugin/report.js +1 -1
  29. package/dist/plugin/rule-analytics-store.js +1 -1
  30. package/dist/plugin/rule-analytics.js +1 -1
  31. package/dist/plugin/rule-engine.js +1 -1
  32. package/dist/plugin/rule-sharing.js +1 -1
  33. package/dist/plugin/rule-suggest.js +1 -1
  34. package/dist/plugin/session-start.js +1 -1
  35. package/dist/plugin/smart-context.js +1 -1
  36. package/dist/shared/license.js +1 -1
  37. package/dist/shared/providers/claude-provider.js +1 -1
  38. package/dist/shared/providers/openai-provider.js +1 -1
  39. package/dist/shared/token-counter.js +1 -1
  40. package/dist/shared/token-provider.js +1 -1
  41. package/package.json +7 -3
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tokenizer-speedup",
3
- "version": "0.7.4",
3
+ "version": "0.8.1",
4
4
  "description": "Intelligent context optimization for LLM sessions — save 30-60% on tokens",
5
5
  "author": {
6
6
  "name": "SIMO GmbH",
package/README-plugin.md CHANGED
@@ -16,6 +16,22 @@ tsu setup --api-key YOUR_KEY
16
16
 
17
17
  The `tsu setup` command configures Claude Code hooks automatically and stores your API key. Restart Claude Code after setup.
18
18
 
19
+ ## Claude Desktop (MCP)
20
+
21
+ Since v0.8.0, an MCP server (`tsu-mcp`) is included. Add to `claude_desktop_config.json`:
22
+
23
+ ```json
24
+ {
25
+ "mcpServers": {
26
+ "tokenizer-speedup": {
27
+ "command": "tsu-mcp"
28
+ }
29
+ }
30
+ }
31
+ ```
32
+
33
+ Tools: `optimize-context`, `analyze-tokens`, `get-savings`
34
+
19
35
  ## How It Works
20
36
 
21
37
  1. **Context Gating** — YAML rules detect what you're working on and load only relevant context
@@ -60,7 +76,7 @@ metering:
60
76
  ## Requirements
61
77
 
62
78
  - Node.js 20+
63
- - Claude Code
79
+ - Claude Code or Claude Desktop
64
80
 
65
81
  ## Links
66
82
 
package/README.de.md CHANGED
@@ -72,6 +72,45 @@ Claude Code neu starten. Fertig.
72
72
 
73
73
  API-Schlüssel erhalten Sie auf [tokenizer-speedup.simosphereai.com](https://tokenizer-speedup.simosphereai.com).
74
74
 
75
+ ## Claude Desktop (MCP)
76
+
77
+ Seit v0.8.0 enthält TokenizerSpeedUp einen MCP-Server für Claude Desktop.
78
+
79
+ ### Einrichtung
80
+
81
+ ```bash
82
+ npm install -g @simosphere/tokenizer-speedup
83
+ ```
84
+
85
+ Fügen Sie folgendes in Ihre `claude_desktop_config.json` ein:
86
+
87
+ ```json
88
+ {
89
+ "mcpServers": {
90
+ "tokenizer-speedup": {
91
+ "command": "tsu-mcp"
92
+ }
93
+ }
94
+ }
95
+ ```
96
+
97
+ Claude Desktop neu starten.
98
+
99
+ ### Verfügbare Tools
100
+
101
+ | Tool | Beschreibung |
102
+ |---|---|
103
+ | `optimize-context` | LLM-Kontext für einen gegebenen Prompt optimieren |
104
+ | `analyze-tokens` | Tokens für Text oder Dateien zählen und schätzen |
105
+ | `get-savings` | Kumulative Session-Einsparungen zurückgeben |
106
+
107
+ ### Verfügbare Ressourcen
108
+
109
+ | Ressource | Beschreibung |
110
+ |---|---|
111
+ | `config://current` | Aktuelle YAML-Konfiguration |
112
+ | `report://savings` | Session-Einsparungsbericht |
113
+
75
114
  ## Ergebnisse
76
115
 
77
116
  Reale Daten der SIMO GmbH (2 Wochen):
@@ -147,11 +186,12 @@ Claude Code
147
186
  - **Rule Engine** — YAML-Konfiguration, Node.js Parser
148
187
  - **Token Meter** — gpt-tokenizer (lokal)
149
188
  - **Cloud** — Metering API + Dashboard + Stripe Billing
189
+ - **MCP Server** — JSON-RPC über stdio, für Claude Desktop
150
190
 
151
191
  ## Voraussetzungen
152
192
 
153
193
  - Node.js 20+
154
- - Claude Code
194
+ - Claude Code oder Claude Desktop
155
195
 
156
196
  ## Links
157
197
 
package/README.md CHANGED
@@ -72,6 +72,45 @@ Restart Claude Code. Done.
72
72
 
73
73
  Get your API key at [tokenizer-speedup.simosphereai.com](https://tokenizer-speedup.simosphereai.com).
74
74
 
75
+ ## Claude Desktop (MCP)
76
+
77
+ Since v0.8.0, TokenizerSpeedUp includes an MCP server for Claude Desktop.
78
+
79
+ ### Setup
80
+
81
+ ```bash
82
+ npm install -g @simosphere/tokenizer-speedup
83
+ ```
84
+
85
+ Add to your `claude_desktop_config.json`:
86
+
87
+ ```json
88
+ {
89
+ "mcpServers": {
90
+ "tokenizer-speedup": {
91
+ "command": "tsu-mcp"
92
+ }
93
+ }
94
+ }
95
+ ```
96
+
97
+ Restart Claude Desktop.
98
+
99
+ ### Available Tools
100
+
101
+ | Tool | Description |
102
+ |---|---|
103
+ | `optimize-context` | Optimize LLM context for a given prompt |
104
+ | `analyze-tokens` | Count and estimate tokens for text or files |
105
+ | `get-savings` | Return cumulative session savings metrics |
106
+
107
+ ### Available Resources
108
+
109
+ | Resource | Description |
110
+ |---|---|
111
+ | `config://current` | Current YAML configuration |
112
+ | `report://savings` | Session savings report |
113
+
75
114
  ## Results
76
115
 
77
116
  Real-world data from SIMO GmbH (2 weeks):
@@ -147,11 +186,12 @@ Claude Code
147
186
  - **Rule Engine** — YAML config, Node.js parser
148
187
  - **Token Meter** — gpt-tokenizer (local)
149
188
  - **Cloud** — Metering API + Dashboard + Stripe Billing
189
+ - **MCP Server** — JSON-RPC over stdio, for Claude Desktop
150
190
 
151
191
  ## Requirements
152
192
 
153
193
  - Node.js 20+
154
- - Claude Code
194
+ - Claude Code or Claude Desktop
155
195
 
156
196
  ## Links
157
197
 
@@ -1 +1 @@
1
- const _0x5259c3=_0x3348;(function(_0x11b825,_0x207b8c){const _0x40e6a6=_0x3348,_0x4d1fc3=_0x11b825();while(!![]){try{const _0x1e8e6f=parseInt(_0x40e6a6(0x165))/0x1*(-parseInt(_0x40e6a6(0x174))/0x2)+-parseInt(_0x40e6a6(0x172))/0x3*(-parseInt(_0x40e6a6(0x168))/0x4)+-parseInt(_0x40e6a6(0x167))/0x5*(parseInt(_0x40e6a6(0x16b))/0x6)+parseInt(_0x40e6a6(0x163))/0x7+parseInt(_0x40e6a6(0x16f))/0x8+parseInt(_0x40e6a6(0x16a))/0x9+-parseInt(_0x40e6a6(0x16c))/0xa;if(_0x1e8e6f===_0x207b8c)break;else _0x4d1fc3['push'](_0x4d1fc3['shift']());}catch(_0x569507){_0x4d1fc3['push'](_0x4d1fc3['shift']());}}}(_0x860a,0xad929));function _0x860a(){const _0x5e148a=['305253udDZnF','86070SjsVzv','6120750fgaNRF','openai','claude','2812184XQbFht','filter','fLAFs','219nsFicv','countTokens','22ipNSEB','gFpOX','leVGT','5887644yvDAfb','QrbjG','30937GwjjRE','gpt-4o','290nIDaqG','69524FfEzNy','split'];_0x860a=function(){return _0x5e148a;};return _0x860a();}import{readFileSync}from'node:fs';import'../shared/providers/claude-provider.js';import'../shared/providers/openai-provider.js';import{createTokenProvider}from'../shared/token-provider.js';export function analyzeText(_0x1acc81,_0x4ab9b3=_0x5259c3(0x16e),_0x3a741c){const _0x23655e=_0x5259c3,_0x5654ed={'QrbjG':'claude-sonnet-4-20250514','YIbhU':_0x23655e(0x166)},_0x84fb69=_0x3a741c??('claude'===_0x4ab9b3?_0x5654ed[_0x23655e(0x164)]:_0x5654ed['YIbhU']),_0x5c05e6=createTokenProvider(_0x4ab9b3,_0x84fb69),_0x1d1c24=_0x1acc81[_0x23655e(0x169)](/\s+/)[_0x23655e(0x170)](Boolean)['length'];return{'tokens':_0x5c05e6[_0x23655e(0x173)](_0x1acc81),'estimate':_0x5c05e6['estimateTokens'](_0x1acc81),'provider':_0x4ab9b3,'model':_0x84fb69,'chars':_0x1acc81['length'],'words':_0x1d1c24};}function _0x3348(_0x3aff35,_0x1ea973){_0x3aff35=_0x3aff35-0x162;const _0x860a9f=_0x860a();let _0x334852=_0x860a9f[_0x3aff35];return _0x334852;}export function analyzeFile(_0x407290,_0x5ddfe4=_0x5259c3(0x16e),_0x11070d){const _0x517829=_0x5259c3,_0x5b7959={'fLAFs':function(_0x479d97,_0x39fb77,_0x445e58){return _0x479d97(_0x39fb77,_0x445e58);},'leVGT':'utf-8'};return analyzeText(_0x5b7959[_0x517829(0x171)](readFileSync,_0x407290,_0x5b7959[_0x517829(0x162)]),_0x5ddfe4,_0x11070d);}export function compareProviders(_0x17d16f){const _0x2905cd=_0x5259c3,_0x32d9fa={'gFpOX':function(_0x397a3d,_0x4a44ee,_0x3c85bc){return _0x397a3d(_0x4a44ee,_0x3c85bc);}};return{'claude':_0x32d9fa[_0x2905cd(0x175)](analyzeText,_0x17d16f,_0x2905cd(0x16e)),'openai':analyzeText(_0x17d16f,_0x2905cd(0x16d))};}
1
+ const _0x3e2d52=_0x7acd;function _0x1828(){const _0x15e84f=['162RDKleY','CmORl','192130IxQHIK','5384460xcgUHy','4617277SDJPmu','6293432IcgASF','jWTrm','9rneTum','249NyDJra','estimateTokens','1243882FGcalo','2HVrqIK','uXpJf','11OtGSkN','1108IvFXlt','gpt-4o','split','16874830osDekM','claude','countTokens','openai','length'];_0x1828=function(){return _0x15e84f;};return _0x1828();}(function(_0x52e083,_0x57cfb0){const _0x3f28d7=_0x7acd,_0x3f5ea6=_0x52e083();while(!![]){try{const _0x1c324b=parseInt(_0x3f28d7(0x176))/0x1*(parseInt(_0x3f28d7(0x175))/0x2)+parseInt(_0x3f28d7(0x173))/0x3*(parseInt(_0x3f28d7(0x179))/0x4)+parseInt(_0x3f28d7(0x16d))/0x5*(parseInt(_0x3f28d7(0x16b))/0x6)+parseInt(_0x3f28d7(0x16f))/0x7+-parseInt(_0x3f28d7(0x170))/0x8*(parseInt(_0x3f28d7(0x172))/0x9)+-parseInt(_0x3f28d7(0x17c))/0xa+-parseInt(_0x3f28d7(0x178))/0xb*(-parseInt(_0x3f28d7(0x16e))/0xc);if(_0x1c324b===_0x57cfb0)break;else _0x3f5ea6['push'](_0x3f5ea6['shift']());}catch(_0x3ac803){_0x3f5ea6['push'](_0x3f5ea6['shift']());}}}(_0x1828,0xe5221));import{readFileSync}from'node:fs';import'../shared/providers/claude-provider.js';function _0x7acd(_0x15fd48,_0x5196e7){_0x15fd48=_0x15fd48-0x16b;const _0x1828f2=_0x1828();let _0x7acdd2=_0x1828f2[_0x15fd48];return _0x7acdd2;}import'../shared/providers/openai-provider.js';import{createTokenProvider}from'../shared/token-provider.js';export function analyzeText(_0x22cfdc,_0x1c72dc=_0x3e2d52(0x17d),_0x1f1908){const _0x44eca8=_0x3e2d52,_0xc33abf={'rqSaR':'claude','CmORl':_0x44eca8(0x17a),'WQxbx':function(_0xc130e3,_0x53bab9,_0x1f5562){return _0xc130e3(_0x53bab9,_0x1f5562);}},_0x5ad55e=_0x1f1908??(_0xc33abf['rqSaR']===_0x1c72dc?'claude-sonnet-4-20250514':_0xc33abf[_0x44eca8(0x16c)]),_0x567a35=_0xc33abf['WQxbx'](createTokenProvider,_0x1c72dc,_0x5ad55e),_0x21fba9=_0x22cfdc[_0x44eca8(0x17b)](/\s+/)['filter'](Boolean)['length'];return{'tokens':_0x567a35[_0x44eca8(0x17e)](_0x22cfdc),'estimate':_0x567a35[_0x44eca8(0x174)](_0x22cfdc),'provider':_0x1c72dc,'model':_0x5ad55e,'chars':_0x22cfdc[_0x44eca8(0x180)],'words':_0x21fba9};}export function analyzeFile(_0x3e956f,_0x1aecba=_0x3e2d52(0x17d),_0x355183){const _0x5ef5b1=_0x3e2d52,_0x58fdec={'mCtNB':function(_0x165867,_0x3f562e,_0x85f7ab,_0x1434ca){return _0x165867(_0x3f562e,_0x85f7ab,_0x1434ca);},'jWTrm':'utf-8'};return _0x58fdec['mCtNB'](analyzeText,readFileSync(_0x3e956f,_0x58fdec[_0x5ef5b1(0x171)]),_0x1aecba,_0x355183);}export function compareProviders(_0x2b65b7){const _0x1430e0=_0x3e2d52,_0x27424c={'NOAMP':function(_0x357af6,_0x599dc8,_0x2082a9){return _0x357af6(_0x599dc8,_0x2082a9);},'uXpJf':_0x1430e0(0x17f)};return{'claude':_0x27424c['NOAMP'](analyzeText,_0x2b65b7,_0x1430e0(0x17d)),'openai':analyzeText(_0x2b65b7,_0x27424c[_0x1430e0(0x177)])};}
@@ -1 +1 @@
1
- (function(_0x13f1ad,_0x283aea){const _0x42762a=_0x30e1,_0x283da8=_0x13f1ad();while(!![]){try{const _0x38f449=parseInt(_0x42762a(0xb8))/0x1+parseInt(_0x42762a(0xbb))/0x2+parseInt(_0x42762a(0xbd))/0x3+-parseInt(_0x42762a(0xbf))/0x4+-parseInt(_0x42762a(0xba))/0x5*(-parseInt(_0x42762a(0xc0))/0x6)+parseInt(_0x42762a(0xbe))/0x7+-parseInt(_0x42762a(0xbc))/0x8;if(_0x38f449===_0x283aea)break;else _0x283da8['push'](_0x283da8['shift']());}catch(_0xe0df2c){_0x283da8['push'](_0x283da8['shift']());}}}(_0x43a9,0xdad7d));import'../shared/providers/claude-provider.js';function _0x30e1(_0x3a549b,_0x5cbb6f){_0x3a549b=_0x3a549b-0xb8;const _0x43a96e=_0x43a9();let _0x30e180=_0x43a96e[_0x3a549b];return _0x30e180;}function _0x43a9(){const _0x27bf9c=['2010978UgsmVz','3997539vXdqJh','2158744ngSzJh','246UnXlVw','425129lsKHRo','length','112505bAVjOi','2616758KVFJtU','19691080tohtOt'];_0x43a9=function(){return _0x27bf9c;};return _0x43a9();}import'../shared/providers/openai-provider.js';import{parseConfig}from'../plugin/config-loader.js';export function validateConfigYaml(_0x28dfee){const _0x59ccf4=_0x30e1;try{const _0x3f077c=parseConfig(_0x28dfee);return{'valid':!0x0,'provider':_0x3f077c['provider'],'model':_0x3f077c['model'],'ruleCount':_0x3f077c['rules'][_0x59ccf4(0xb9)]};}catch(_0x32d42b){return{'valid':!0x1,'provider':'','model':'','ruleCount':0x0,'error':_0x32d42b['message']};}}
1
+ (function(_0x523b16,_0x546548){const _0x34e4bc=_0xc4c4,_0x244a56=_0x523b16();while(!![]){try{const _0x1720f1=parseInt(_0x34e4bc(0x7f))/0x1+parseInt(_0x34e4bc(0x7a))/0x2+parseInt(_0x34e4bc(0x80))/0x3*(parseInt(_0x34e4bc(0x85))/0x4)+parseInt(_0x34e4bc(0x7e))/0x5*(-parseInt(_0x34e4bc(0x84))/0x6)+parseInt(_0x34e4bc(0x79))/0x7*(parseInt(_0x34e4bc(0x78))/0x8)+parseInt(_0x34e4bc(0x83))/0x9*(-parseInt(_0x34e4bc(0x7d))/0xa)+parseInt(_0x34e4bc(0x86))/0xb;if(_0x1720f1===_0x546548)break;else _0x244a56['push'](_0x244a56['shift']());}catch(_0x41da88){_0x244a56['push'](_0x244a56['shift']());}}}(_0x1a33,0x3a623));function _0xc4c4(_0x5f2532,_0x23b635){_0x5f2532=_0x5f2532-0x78;const _0x1a33f3=_0x1a33();let _0xc4c495=_0x1a33f3[_0x5f2532];return _0xc4c495;}import'../shared/providers/claude-provider.js';import'../shared/providers/openai-provider.js';import{parseConfig}from'../plugin/config-loader.js';function _0x1a33(){const _0x288133=['model','provider','230tNWJZt','5hGlaXN','214767rEezLh','131190pxXSMb','IoEcc','rules','166599eRcypW','987402OpejjH','8ojxrwj','1124860HtcTaz','538528wcqoNg','35dcjGid','176784bWevRp'];_0x1a33=function(){return _0x288133;};return _0x1a33();}export function validateConfigYaml(_0x1a51c1){const _0xd2b3a5=_0xc4c4,_0x17d4a6={'IoEcc':function(_0x5412ee,_0x41f2c1){return _0x5412ee(_0x41f2c1);}};try{const _0x297c29=_0x17d4a6[_0xd2b3a5(0x81)](parseConfig,_0x1a51c1);return{'valid':!0x0,'provider':_0x297c29[_0xd2b3a5(0x7c)],'model':_0x297c29[_0xd2b3a5(0x7b)],'ruleCount':_0x297c29[_0xd2b3a5(0x82)]['length']};}catch(_0x4f641e){return{'valid':!0x1,'provider':'','model':'','ruleCount':0x0,'error':_0x4f641e['message']};}}
package/dist/cli/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const _0x533665=_0x8fd7;(function(_0x3f2219,_0x164348){const _0x325cb5=_0x8fd7,_0x32e0cc=_0x3f2219();while(!![]){try{const _0x572951=parseInt(_0x325cb5(0xf9))/0x1*(parseInt(_0x325cb5(0xe9))/0x2)+parseInt(_0x325cb5(0xe6))/0x3*(parseInt(_0x325cb5(0x107))/0x4)+parseInt(_0x325cb5(0x111))/0x5+parseInt(_0x325cb5(0x10b))/0x6+parseInt(_0x325cb5(0xf7))/0x7*(-parseInt(_0x325cb5(0xe1))/0x8)+-parseInt(_0x325cb5(0x106))/0x9*(-parseInt(_0x325cb5(0x10d))/0xa)+parseInt(_0x325cb5(0x112))/0xb*(-parseInt(_0x325cb5(0xf5))/0xc);if(_0x572951===_0x164348)break;else _0x32e0cc['push'](_0x32e0cc['shift']());}catch(_0xec0a44){_0x32e0cc['push'](_0x32e0cc['shift']());}}}(_0x22f4,0x8df13));import{Command}from'commander';import'../shared/providers/claude-provider.js';import'../shared/providers/openai-provider.js';import{createTokenProvider}from'../shared/token-provider.js';function _0x22f4(){const _0x249cb2=['0.7.4','name','Validate\x20configuration\x20file','Analyze\x20inline\x20text\x20instead\x20of\x20file','LLM\x20provider\x20(claude,\x20openai)','message','216896SWKWbN','tokenizer-speedup.yaml','--api-key\x20<key>','YLQTZ','includes','2279961RauDQN','AxIQI','AgPrD','2078BbMBwm','description','-p,\x20--provider\x20<provider>','log','argument','WNfZF','action','rules','[file]','rJKXk','claude-sonnet-4-20250514','apiKey','12yomntL','option','238kekgIJ','config','478wUFIet','../plugin/config-loader.js','Configure\x20TokenizerSpeedUp\x20with\x20your\x20API\x20key\x20and\x20register\x20Claude\x20Code\x20hooks','File\x20to\x20analyze','fTuBs','command','rNlJw','addHelpText','exitCode','setup','wXkIN','sZyFX','stringify','2675565CRmska','4TRarrT','requiredOption','cli/index','Error:\x20','430374xhqskG','argv','30xXgaLO','XyYJf','error','length','183580KInSFF','8290986cvEgsG','provider','utf-8','text','model'];_0x22f4=function(){return _0x249cb2;};return _0x22f4();}import{readFileSync,realpathSync}from'node:fs';import{runSetup}from'./setup-cmd.js';function _0x8fd7(_0x3a7ef4,_0x361bcd){_0x3a7ef4=_0x3a7ef4-0xdb;const _0x22f45f=_0x22f4();let _0x8fd7c7=_0x22f45f[_0x3a7ef4];return _0x8fd7c7;}export function buildCLI(){const _0x2484dd=_0x8fd7,_0x475efe={'rJKXk':function(_0x23fcdc,_0x5deb3a){return _0x23fcdc===_0x5deb3a;},'AxIQI':'gpt-4o','wXkIN':'Error:\x20provide\x20a\x20file\x20argument\x20or\x20--text\x20option','eKEZt':function(_0x1eb5f3,_0x25706d){return _0x1eb5f3>_0x25706d;},'Aecvc':function(_0x5b215c,_0x2f8318){return _0x5b215c??_0x2f8318;},'WNfZF':function(_0x1b7371,_0x4b5208,_0x257571){return _0x1b7371(_0x4b5208,_0x257571);},'fTuBs':function(_0x16b82e,_0x57f554){return _0x16b82e(_0x57f554);},'rNlJw':'Your\x20TokenizerSpeedUp\x20API\x20key\x20(get\x20one\x20at\x20https://tokenizer-speedup.simosphereai.com)','MjnFY':'Analyze\x20token\x20count\x20of\x20a\x20file\x20or\x20text','YLQTZ':_0x2484dd(0xeb),'AgPrD':'claude','PelOx':'-m,\x20--model\x20<model>','sZyFX':'Model\x20name','cdrkM':'-t,\x20--text\x20<text>','FFxrN':_0x2484dd(0xf8),'xnpPl':_0x2484dd(0xdd),'XyYJf':_0x2484dd(0xf1),'iZsxw':'Config\x20file\x20path','JkICn':_0x2484dd(0xe2)},_0x6bc258=new Command();return _0x6bc258[_0x2484dd(0xdc)]('tsu')[_0x2484dd(0xea)]('TokenizerSpeedUp\x20—\x20Multi-LLM\x20Token\x20Optimization\x20CLI')['version'](_0x2484dd(0xdb))[_0x2484dd(0x100)]('after','\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'),_0x6bc258[_0x2484dd(0xfe)](_0x2484dd(0x102))['description'](_0x2484dd(0xfb))[_0x2484dd(0x108)](_0x2484dd(0xe3),_0x475efe[_0x2484dd(0xff)])['action'](_0x1001c3=>{const _0x23b0a4=_0x2484dd;runSetup(_0x1001c3[_0x23b0a4(0xf4)]);}),_0x6bc258['command']('analyze')[_0x2484dd(0xea)](_0x475efe['MjnFY'])[_0x2484dd(0xed)]('[file]',_0x2484dd(0xfc))['option'](_0x475efe[_0x2484dd(0xe4)],_0x2484dd(0xdf),_0x475efe[_0x2484dd(0xe8)])[_0x2484dd(0xf6)](_0x475efe['PelOx'],_0x475efe[_0x2484dd(0x104)])[_0x2484dd(0xf6)](_0x475efe['cdrkM'],_0x2484dd(0xde))[_0x2484dd(0xef)]((_0x394e9c,_0x40a41c)=>{const _0x288e80=_0x2484dd,_0x4a042f=_0x40a41c[_0x288e80(0x116)]??(_0x475efe[_0x288e80(0xf2)]('claude',_0x40a41c[_0x288e80(0x113)])?_0x288e80(0xf3):_0x475efe[_0x288e80(0xe7)]);let _0xb878cd,_0x2f2513;try{_0xb878cd=createTokenProvider(_0x40a41c[_0x288e80(0x113)],_0x4a042f);}catch(_0x13f61f){return console['error'](_0x288e80(0x10a)+_0x13f61f[_0x288e80(0xe0)]),void(process[_0x288e80(0x101)]=0x1);}if(void 0x0!==_0x40a41c[_0x288e80(0x115)])_0x2f2513=_0x40a41c[_0x288e80(0x115)];else{if(!_0x394e9c)return console[_0x288e80(0x10f)](_0x475efe[_0x288e80(0x103)]),void(process[_0x288e80(0x101)]=0x1);_0x2f2513=readFileSync(_0x394e9c,'utf-8');}_0x475efe['eKEZt'](_0x2f2513[_0x288e80(0x110)],0x7a120)&&console[_0x288e80(0x10f)]('Warning:\x20large\x20input\x20('+(_0x2f2513[_0x288e80(0x110)]/0x3e8)['toFixed'](0x0)+'K\x20chars)\x20—\x20processing\x20may\x20be\x20slow.');const _0x1d6fc0=_0xb878cd['countTokens'](_0x2f2513),_0x3de2a9=_0xb878cd['estimateTokens'](_0x2f2513);console['log'](JSON['stringify']({'file':_0x475efe['Aecvc'](_0x394e9c,'(inline)'),'tokens':_0x1d6fc0,'estimate':_0x3de2a9,'provider':_0x40a41c['provider'],'model':_0x4a042f}));}),_0x6bc258['command'](_0x475efe['FFxrN'])[_0x2484dd(0xea)](_0x475efe['xnpPl'])[_0x2484dd(0xed)](_0x475efe[_0x2484dd(0x10e)],_0x475efe['iZsxw'],_0x475efe['JkICn'])['action'](async _0x174bfd=>{const _0x1def43=_0x2484dd;try{const _0x4f6f96=_0x475efe[_0x1def43(0xee)](readFileSync,_0x174bfd,_0x1def43(0x114)),{parseConfig:_0x17e74d}=await import(_0x1def43(0xfa)),_0x1698a8=_0x475efe[_0x1def43(0xfd)](_0x17e74d,_0x4f6f96);console['log'](JSON[_0x1def43(0x105)]({'valid':!0x0,'provider':_0x1698a8['provider'],'model':_0x1698a8['model'],'ruleCount':_0x1698a8[_0x1def43(0xf0)]['length']}));}catch(_0x171f05){console[_0x1def43(0xec)](JSON['stringify']({'valid':!0x1,'error':_0x171f05[_0x1def43(0xe0)]})),process[_0x1def43(0x101)]=0x1;}}),_0x6bc258;}const resolvedArgv1=((()=>{const _0x4bf85a=_0x8fd7;try{return realpathSync(process[_0x4bf85a(0x10c)][0x1]??'')['replace'](/\\/g,'/');}catch{return process['argv'][0x1]?.['replace'](/\\/g,'/')??'';}})());resolvedArgv1[_0x533665(0xe5)](_0x533665(0x109))&&buildCLI()['parse']();
2
+ (function(_0x32a066,_0x18e508){const _0x33b292=_0x15d8,_0x625718=_0x32a066();while(!![]){try{const _0x281826=parseInt(_0x33b292(0x194))/0x1+parseInt(_0x33b292(0x19f))/0x2+parseInt(_0x33b292(0x18e))/0x3*(-parseInt(_0x33b292(0x1aa))/0x4)+-parseInt(_0x33b292(0x197))/0x5*(parseInt(_0x33b292(0x187))/0x6)+parseInt(_0x33b292(0x184))/0x7*(parseInt(_0x33b292(0x19b))/0x8)+-parseInt(_0x33b292(0x1a7))/0x9*(-parseInt(_0x33b292(0x1a2))/0xa)+parseInt(_0x33b292(0x1ad))/0xb*(-parseInt(_0x33b292(0x1a8))/0xc);if(_0x281826===_0x18e508)break;else _0x625718['push'](_0x625718['shift']());}catch(_0x4204e9){_0x625718['push'](_0x625718['shift']());}}}(_0x2b9a,0x7b157));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,realpathSync}from'node:fs';import{runSetup}from'./setup-cmd.js';function _0x2b9a(){const _0x3ae18b=['-m,\x20--model\x20<model>','claude-sonnet-4-20250514','Model\x20name','VVIbp','8523zKbVgM','474972gfsHRU','lghRF','58184VLIrFS','IDgUw','Wqopq','451RuaCZG','K\x20chars)\x20—\x20processing\x20may\x20be\x20slow.','\x0aExamples:\x0a\x20\x20$\x20tsu\x20setup\x20--api-key\x20YOUR_KEY\x20\x20\x20Configure\x20and\x20register\x20Claude\x20Code\x20hooks\x0a\x20\x20$\x20tsu\x20init\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Create\x20starter\x20tokenizer-speedup.yaml\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.\x20Optional:\x20tsu\x20init\x20(creates\x20project-level\x20config)\x0a\x20\x204.\x20Restart\x20Claude\x20Code\x20—\x20the\x20plugin\x20activates\x20automatically\x0a\x0aConfiguration\x20(tokenizer-speedup.yaml):\x0a\x20\x20Place\x20in\x20your\x20project\x20root.\x20Defines\x20keyword\x20triggers,\x20file\x20patterns,\x0a\x20\x20and\x20token\x20limits.\x20Run\x20\x27tsu\x20init\x27\x20to\x20generate\x20a\x20starter\x20config.\x0a\x20\x20Docs:\x20https://tokenizer-speedup.simosphereai.com/#integration\x0a','LLM\x20provider\x20(claude,\x20openai)','replace','message','requiredOption','after','LEnHs','argument','wEFEL','length','claude','Analyze\x20token\x20count\x20of\x20a\x20file\x20or\x20text','description','stringify','rules','utf-8','-p,\x20--provider\x20<provider>','[file]','3954734SljSpz','version','0.8.1','12zqnuNZ','1.4','toFixed','argv','GDgXM','error','1.3','54vgmsmj','aJBGU','hEMVG','apiKey','-t,\x20--text\x20<text>','action','954868bsnRzZ','analyze','tsu','1816985xQaaRM','iCxkP','Config\x20file\x20path','option','8zWgmWS','command','provider','Configure\x20TokenizerSpeedUp\x20with\x20your\x20API\x20key\x20and\x20register\x20Claude\x20Code\x20hooks','1920654DaBSoA','Create\x20a\x20starter\x20tokenizer-speedup.yaml\x20in\x20the\x20current\x20directory','setup','6710qzsaDr'];_0x2b9a=function(){return _0x3ae18b;};return _0x2b9a();}function _0x15d8(_0x1881e9,_0x207245){_0x1881e9=_0x1881e9-0x17e;const _0x2b9af9=_0x2b9a();let _0x15d857=_0x2b9af9[_0x1881e9];return _0x15d857;}import{runInit}from'./init-cmd.js';export function buildCLI(){const _0x57f048=_0x15d8,_0x3fa04a={'bMrRa':_0x57f048(0x1b9),'RbjIw':_0x57f048(0x1a4),'SSVzh':'gpt-4o','IDgUw':'Error:\x20provide\x20a\x20file\x20argument\x20or\x20--text\x20option','iCxkP':function(_0x49f6ba,_0x51f172){return _0x49f6ba>_0x51f172;},'QYFvR':function(_0x201654,_0x3297a0){return _0x201654===_0x3297a0;},'IKArJ':'openai','TDpdh':_0x57f048(0x18d),'vAGGs':_0x57f048(0x188),'CsdQP':function(_0x502482,_0x26e811,_0x5e7220){return _0x502482(_0x26e811,_0x5e7220);},'gSxAV':_0x57f048(0x181),'wEFEL':'TokenizerSpeedUp\x20—\x20Multi-LLM\x20Token\x20Optimization\x20CLI','Wqopq':_0x57f048(0x186),'HkYlG':_0x57f048(0x1b4),'dngpB':_0x57f048(0x1af),'LEnHs':_0x57f048(0x1a1),'aJBGU':'--api-key\x20<key>','ApKQz':_0x57f048(0x195),'VVIbp':_0x57f048(0x1ba),'hEMVG':_0x57f048(0x183),'GDgXM':_0x57f048(0x182),'lghRF':_0x57f048(0x1b0),'urRWO':'config'},_0x21bc71=new Command();return _0x21bc71['name'](_0x57f048(0x196))[_0x57f048(0x17e)](_0x3fa04a[_0x57f048(0x1b7)])[_0x57f048(0x185)](_0x3fa04a[_0x57f048(0x1ac)])['addHelpText'](_0x3fa04a['HkYlG'],_0x3fa04a['dngpB']),_0x21bc71[_0x57f048(0x19c)](_0x3fa04a[_0x57f048(0x1b5)])['description'](_0x57f048(0x19e))[_0x57f048(0x1b3)](_0x3fa04a[_0x57f048(0x18f)],'Your\x20TokenizerSpeedUp\x20API\x20key\x20(get\x20one\x20at\x20https://tokenizer-speedup.simosphereai.com)')['action'](_0x106960=>{const _0x407adb=_0x57f048;runSetup(_0x106960[_0x407adb(0x191)]);}),_0x21bc71['command'](_0x3fa04a['ApKQz'])['description'](_0x3fa04a[_0x57f048(0x1a6)])[_0x57f048(0x1b6)](_0x3fa04a[_0x57f048(0x190)],'File\x20to\x20analyze')[_0x57f048(0x19a)](_0x3fa04a[_0x57f048(0x18b)],_0x3fa04a[_0x57f048(0x1a9)],_0x3fa04a['bMrRa'])['option'](_0x57f048(0x1a3),_0x57f048(0x1a5))['option'](_0x57f048(0x192),'Analyze\x20inline\x20text\x20instead\x20of\x20file')['action']((_0xd53d9a,_0x4f9c68)=>{const _0x4bd8eb=_0x57f048,_0x1e9126=_0x4f9c68['model']??(_0x3fa04a['bMrRa']===_0x4f9c68[_0x4bd8eb(0x19d)]?_0x3fa04a['RbjIw']:_0x3fa04a['SSVzh']);let _0x494566,_0xfb6153;try{_0x494566=createTokenProvider(_0x4f9c68['provider'],_0x1e9126);}catch(_0x2241ee){return console[_0x4bd8eb(0x18c)]('Error:\x20'+_0x2241ee[_0x4bd8eb(0x1b2)]),void(process['exitCode']=0x1);}if(void 0x0!==_0x4f9c68['text'])_0xfb6153=_0x4f9c68['text'];else{if(!_0xd53d9a)return console['error'](_0x3fa04a[_0x4bd8eb(0x1ab)]),void(process['exitCode']=0x1);_0xfb6153=readFileSync(_0xd53d9a,_0x4bd8eb(0x181));}_0x3fa04a[_0x4bd8eb(0x198)](_0xfb6153['length'],0x7a120)&&console['error']('Warning:\x20large\x20input\x20('+(_0xfb6153[_0x4bd8eb(0x1b8)]/0x3e8)[_0x4bd8eb(0x189)](0x0)+_0x4bd8eb(0x1ae));const _0xc246cb=_0x494566['countTokens'](_0xfb6153),_0x4ec280=_0x494566['estimateTokens'](_0xfb6153);console['log'](JSON['stringify']({'file':_0xd53d9a??'(inline)','tokens':_0xc246cb,'tokens_method':'BPE\x20tokenizer\x20(accurate)','estimate':_0x4ec280,'estimate_method':'word\x20heuristic\x20(words\x20×\x20'+(_0x3fa04a['QYFvR'](_0x3fa04a['IKArJ'],_0x4f9c68[_0x4bd8eb(0x19d)])?_0x3fa04a['TDpdh']:_0x3fa04a['vAGGs'])+')','provider':_0x4f9c68['provider'],'model':_0x1e9126}));}),_0x21bc71[_0x57f048(0x19c)](_0x3fa04a['urRWO'])['description']('Validate\x20configuration\x20file')['argument'](_0x3fa04a['hEMVG'],_0x57f048(0x199),'tokenizer-speedup.yaml')['action'](async _0x25e4f1=>{const _0x13c26b=_0x57f048;try{const _0x56a5b2=_0x3fa04a['CsdQP'](readFileSync,_0x25e4f1,_0x3fa04a['gSxAV']),{parseConfig:_0x183187}=await import('../plugin/config-loader.js'),_0x3a9775=_0x183187(_0x56a5b2);console['log'](JSON['stringify']({'valid':!0x0,'provider':_0x3a9775[_0x13c26b(0x19d)],'model':_0x3a9775['model'],'ruleCount':_0x3a9775[_0x13c26b(0x180)][_0x13c26b(0x1b8)]}));}catch(_0x4f9c93){console['log'](JSON[_0x13c26b(0x17f)]({'valid':!0x1,'error':_0x4f9c93['message']})),process['exitCode']=0x1;}}),_0x21bc71['command']('init')[_0x57f048(0x17e)](_0x57f048(0x1a0))[_0x57f048(0x193)](()=>{runInit();}),_0x21bc71;}const resolvedArgv1=((()=>{const _0x451b3b=_0x15d8;try{return realpathSync(process[_0x451b3b(0x18a)][0x1]??'')['replace'](/\\/g,'/');}catch{return process['argv'][0x1]?.[_0x451b3b(0x1b1)](/\\/g,'/')??'';}})());resolvedArgv1['includes']('cli/index')&&buildCLI()['parse']();
@@ -0,0 +1 @@
1
+ const _0x340214=_0x398f;(function(_0xc6b7d4,_0x23b794){const _0x348504=_0x398f,_0xb03cbd=_0xc6b7d4();while(!![]){try{const _0xbbc43f=parseInt(_0x348504(0x11f))/0x1+-parseInt(_0x348504(0x128))/0x2+parseInt(_0x348504(0x11e))/0x3*(-parseInt(_0x348504(0x120))/0x4)+-parseInt(_0x348504(0x11c))/0x5+-parseInt(_0x348504(0x125))/0x6*(parseInt(_0x348504(0x129))/0x7)+-parseInt(_0x348504(0x121))/0x8+-parseInt(_0x348504(0x119))/0x9*(-parseInt(_0x348504(0x127))/0xa);if(_0xbbc43f===_0x23b794)break;else _0xb03cbd['push'](_0xb03cbd['shift']());}catch(_0x5c9863){_0xb03cbd['push'](_0xb03cbd['shift']());}}}(_0x24fb,0x3a555));import{writeFileSync,existsSync}from'node:fs';import{join}from'node:path';const STARTER_CONFIG=_0x340214(0x12c);function _0x24fb(){const _0x31801e=['208387wHQROJ','24UVlLhF','1731624UXSRFz','DngtI','Next\x20steps:','sUIxS','12NansIU','\x20\x201.\x20Edit\x20the\x20rules\x20to\x20match\x20your\x20project\x20structure','3020170AaHHoW','853036xurpsY','929894VhJRak','utf-8','LyMxD','#\x20tokenizer-speedup.yaml\x20—\x20Project\x20Configuration\x0a#\x20Docs:\x20https://tokenizer-speedup.simosphereai.com/#integration\x0aversion:\x201\x0a\x0arules:\x0a\x20\x20-\x20trigger:\x20[\x22fix\x22,\x20\x22bug\x22,\x20\x22error\x22,\x20\x22crash\x22]\x0a\x20\x20\x20\x20load:\x20\x22docs/lessons-learned/*.md\x22\x0a\x20\x20\x20\x20max_tokens:\x202000\x0a\x0a\x20\x20-\x20trigger:\x20[\x22design\x22,\x20\x22brand\x22,\x20\x22theme\x22]\x0a\x20\x20\x20\x20load:\x20\x22docs/design/*.md\x22\x0a\x20\x20\x20\x20summary_only:\x20true\x0a\x0acontext_limits:\x0a\x20\x20max_injected_tokens:\x204000\x0a\x20\x20max_file_tokens:\x201500\x0a\x20\x20compress_above:\x20800\x0a\x0ametering:\x0a\x20\x20endpoint:\x20\x22https://api.simosphere.ai/v1/meter\x22\x0a\x20\x20batch_interval:\x2060\x0a\x20\x20send_content:\x20false\x0a','cwd','tokenizer-speedup.yaml\x20already\x20exists\x20in\x20this\x20directory.','45liRApt','sMRqt','NlqmI','1811290qTyEUN','log','104313nvlgfC'];_0x24fb=function(){return _0x31801e;};return _0x24fb();}function _0x398f(_0x156a6f,_0x17b7a8){_0x156a6f=_0x156a6f-0x118;const _0x24fb73=_0x24fb();let _0x398f82=_0x24fb73[_0x156a6f];return _0x398f82;}export function runInit(){const _0x28bc03=_0x340214,_0x89ede7={'LyMxD':function(_0x106e3f,_0x2f126d,_0x4c6ea4){return _0x106e3f(_0x2f126d,_0x4c6ea4);},'sMRqt':'tokenizer-speedup.yaml','PsWsk':_0x28bc03(0x118),'sUIxS':_0x28bc03(0x12a),'yJXlK':_0x28bc03(0x123),'NlqmI':_0x28bc03(0x126),'DngtI':'\x20\x202.\x20Run:\x20tsu\x20config\x20tokenizer-speedup.yaml\x20\x20(to\x20validate)'},_0x4fa5cf=_0x89ede7[_0x28bc03(0x12b)](join,process[_0x28bc03(0x12d)](),_0x89ede7[_0x28bc03(0x11a)]);if(existsSync(_0x4fa5cf))return console['error'](_0x89ede7['PsWsk']),void(process['exitCode']=0x1);writeFileSync(_0x4fa5cf,STARTER_CONFIG,_0x89ede7[_0x28bc03(0x124)]),console[_0x28bc03(0x11d)]('Created\x20tokenizer-speedup.yaml'),console['log'](''),console[_0x28bc03(0x11d)](_0x89ede7['yJXlK']),console['log'](_0x89ede7[_0x28bc03(0x11b)]),console['log'](_0x89ede7[_0x28bc03(0x122)]),console[_0x28bc03(0x11d)]('\x20\x203.\x20Restart\x20Claude\x20Code\x20to\x20pick\x20up\x20the\x20new\x20config');}
@@ -1 +1 @@
1
- const _0x2583ba=_0x2317;(function(_0x4d3510,_0x25d5d8){const _0x1ba371=_0x2317,_0x229628=_0x4d3510();while(!![]){try{const _0x3f6665=-parseInt(_0x1ba371(0x1e5))/0x1+-parseInt(_0x1ba371(0x1e9))/0x2*(-parseInt(_0x1ba371(0x1ff))/0x3)+-parseInt(_0x1ba371(0x1ee))/0x4*(-parseInt(_0x1ba371(0x1f0))/0x5)+-parseInt(_0x1ba371(0x1f5))/0x6+parseInt(_0x1ba371(0x1ef))/0x7*(parseInt(_0x1ba371(0x1fd))/0x8)+parseInt(_0x1ba371(0x200))/0x9+-parseInt(_0x1ba371(0x1fe))/0xa;if(_0x3f6665===_0x25d5d8)break;else _0x229628['push'](_0x229628['shift']());}catch(_0x10c574){_0x229628['push'](_0x229628['shift']());}}}(_0x3e78,0x58f88));import{readFileSync,writeFileSync,mkdirSync}from'node:fs';import{join}from'node:path';import{homedir}from'node:os';const CONFIG_DIR=join(homedir(),'.config','tokenizer-speedup'),CONFIG_FILE=join(CONFIG_DIR,_0x2583ba(0x1ec)),CLAUDE_SETTINGS_FILE=join(homedir(),'.claude',_0x2583ba(0x1e7));export function runSetup(_0x27f32f){const _0x4d21f4=_0x2583ba,_0x24e5fe={'NYdFc':'✅\x20API\x20key\x20saved\x20successfully.','hCgYV':_0x4d21f4(0x1eb),'gTdVb':'✅\x20Hooks\x20registered\x20in\x20Claude\x20Code\x20settings.'};try{if(!_0x27f32f||0x0===_0x27f32f['trim']()[_0x4d21f4(0x1f4)])return console['error'](_0x4d21f4(0x202)),void(process['exitCode']=0x1);if(_0x27f32f[_0x4d21f4(0x1e8)]()[_0x4d21f4(0x1f4)]<0x8)return console['error']('❌\x20API\x20key\x20is\x20too\x20short\x20(minimum\x208\x20characters).'),void(process[_0x4d21f4(0x204)]=0x1);saveApiKey(_0x27f32f[_0x4d21f4(0x1e8)]()),console['log'](_0x24e5fe[_0x4d21f4(0x1e6)]),console['log'](_0x24e5fe[_0x4d21f4(0x1f9)]),registerHooks(),console['log'](_0x24e5fe[_0x4d21f4(0x1f7)]),console['log'](''),console[_0x4d21f4(0x1f3)]('Setup\x20complete.\x20Please\x20restart\x20Claude\x20Code\x20to\x20activate\x20the\x20plugin.');}catch(_0x5943ee){console[_0x4d21f4(0x203)](_0x4d21f4(0x1f2)+_0x5943ee['message']),process['exitCode']=0x1;}}function saveApiKey(_0x2fa3c8){const _0x36abcd=_0x2583ba,_0x2242a7={'Krxur':_0x36abcd(0x1f6),'oGYzA':function(_0x3c4787,_0x42908d){return _0x3c4787+_0x42908d;}};mkdirSync(CONFIG_DIR,{'recursive':!0x0});let _0x196c2a={};try{_0x196c2a=JSON['parse'](readFileSync(CONFIG_FILE,_0x2242a7[_0x36abcd(0x1fa)]));}catch{}_0x196c2a['apiKey']=_0x2fa3c8,writeFileSync(CONFIG_FILE,_0x2242a7['oGYzA'](JSON[_0x36abcd(0x1ed)](_0x196c2a,null,0x2),'\x0a'),_0x2242a7[_0x36abcd(0x1fa)]);}function _0x3e78(){const _0x37b861=['5425880GCDgYR','3hLuRyI','4110192uAoBvQ','MraSQ','❌\x20API\x20key\x20cannot\x20be\x20empty.','error','exitCode','708682vQcCcf','NYdFc','settings.local.json','trim','1300408rBPNul','command','⚠️\x20\x20Claude\x20Code\x20will\x20restart\x20automatically\x20to\x20load\x20the\x20plugin.\x20This\x20is\x20expected\x20behavior.','config.json','stringify','263372fKhAMD','35lnxkeo','15gJRSRC','JxODq','❌\x20Setup\x20failed:\x20','log','length','2255892PPyMJB','utf-8','gTdVb','ZvgQm','hCgYV','Krxur','parse','dieIt','1099608YCrpyx'];_0x3e78=function(){return _0x37b861;};return _0x3e78();}function _0x2317(_0x56721f,_0xee2385){_0x56721f=_0x56721f-0x1e5;const _0x3e7827=_0x3e78();let _0x23179e=_0x3e7827[_0x56721f];return _0x23179e;}function registerHooks(){const _0xeec747=_0x2583ba,_0x1992f1={'ZvgQm':function(_0x26652d,_0x4a6a1a,_0x541135){return _0x26652d(_0x4a6a1a,_0x541135);},'JxODq':function(_0x4fc184,_0x401995,_0x156d13){return _0x4fc184(_0x401995,_0x156d13);},'MraSQ':'.claude','mdXdE':_0xeec747(0x1f6),'wiGLP':'command','YhXlU':'tokenizer-speedup','dieIt':function(_0x4fbfa6,_0x484170,_0x5803b6,_0x513af2){return _0x4fbfa6(_0x484170,_0x5803b6,_0x513af2);}};_0x1992f1[_0xeec747(0x1f8)](mkdirSync,_0x1992f1['JxODq'](join,homedir(),_0x1992f1[_0xeec747(0x201)]),{'recursive':!0x0});let _0x296bf1={};try{_0x296bf1=JSON['parse'](_0x1992f1[_0xeec747(0x1f1)](readFileSync,CLAUDE_SETTINGS_FILE,_0x1992f1['mdXdE']));}catch{}const _0x2b182b=_0x296bf1['hooks']??{};_0x2b182b['UserPromptSubmit']=[{'matcher':'','hooks':[{'type':_0x1992f1['wiGLP'],'command':_0x1992f1['YhXlU']}]}],_0x2b182b['Stop']=[{'matcher':'','hooks':[{'type':_0xeec747(0x1ea),'command':_0x1992f1['YhXlU'],'timeout':0xa}]}],_0x296bf1['hooks']=_0x2b182b,_0x1992f1[_0xeec747(0x1fc)](writeFileSync,CLAUDE_SETTINGS_FILE,JSON['stringify'](_0x296bf1,null,0x2)+'\x0a',_0x1992f1['mdXdE']);}export function loadApiKeyFromConfig(){const _0x2e3f83=_0x2583ba;try{return JSON[_0x2e3f83(0x1fb)](readFileSync(CONFIG_FILE,_0x2e3f83(0x1f6)))['apiKey']??void 0x0;}catch{return;}}
1
+ const _0x2ea414=_0x47ca;(function(_0x180775,_0x2a7616){const _0x3d7547=_0x47ca,_0xc36563=_0x180775();while(!![]){try{const _0xd2aa14=-parseInt(_0x3d7547(0xaa))/0x1+-parseInt(_0x3d7547(0xb1))/0x2+parseInt(_0x3d7547(0xa8))/0x3*(parseInt(_0x3d7547(0xba))/0x4)+parseInt(_0x3d7547(0xc5))/0x5*(parseInt(_0x3d7547(0xc0))/0x6)+parseInt(_0x3d7547(0xae))/0x7*(parseInt(_0x3d7547(0xc1))/0x8)+-parseInt(_0x3d7547(0xb8))/0x9+parseInt(_0x3d7547(0xb2))/0xa*(parseInt(_0x3d7547(0xaf))/0xb);if(_0xd2aa14===_0x2a7616)break;else _0xc36563['push'](_0xc36563['shift']());}catch(_0x4db728){_0xc36563['push'](_0xc36563['shift']());}}}(_0x214b,0x2b139));function _0x47ca(_0x33a50b,_0x2bb688){_0x33a50b=_0x33a50b-0xa1;const _0x214b91=_0x214b();let _0x47ca82=_0x214b91[_0x33a50b];return _0x47ca82;}import{readFileSync,writeFileSync,mkdirSync}from'node:fs';import{join}from'node:path';import{homedir}from'node:os';const CONFIG_DIR=join(homedir(),_0x2ea414(0xa1),_0x2ea414(0xa7)),CONFIG_FILE=join(CONFIG_DIR,_0x2ea414(0xad)),CLAUDE_SETTINGS_FILE=join(homedir(),_0x2ea414(0xbc),'settings.local.json');export function runSetup(_0x5cf9f0){const _0x2144f4=_0x2ea414,_0x1677de={'hZFIw':'❌\x20API\x20key\x20is\x20too\x20short\x20(minimum\x208\x20characters).','izOBA':_0x2144f4(0xb5),'SXyXC':'⚠️\x20\x20Claude\x20Code\x20will\x20restart\x20automatically\x20to\x20load\x20the\x20plugin.\x20This\x20is\x20expected\x20behavior.','LQtIo':function(_0xc5b71b){return _0xc5b71b();},'wqAjZ':'✅\x20Hooks\x20registered\x20in\x20Claude\x20Code\x20settings.'};try{if(!_0x5cf9f0||0x0===_0x5cf9f0[_0x2144f4(0xa2)]()['length'])return console['error'](_0x2144f4(0xbe)),void(process[_0x2144f4(0xac)]=0x1);if(_0x5cf9f0[_0x2144f4(0xa2)]()['length']<0x8)return console['error'](_0x1677de[_0x2144f4(0xa4)]),void(process['exitCode']=0x1);saveApiKey(_0x5cf9f0[_0x2144f4(0xa2)]()),console['log'](_0x1677de[_0x2144f4(0xc3)]),console[_0x2144f4(0xa9)](_0x1677de[_0x2144f4(0xb9)]),_0x1677de['LQtIo'](registerHooks),console['log'](_0x1677de['wqAjZ']),console['log'](''),console['log'](_0x2144f4(0xab));}catch(_0x222f3d){console['error'](_0x2144f4(0xbb)+_0x222f3d[_0x2144f4(0xc4)]),process[_0x2144f4(0xac)]=0x1;}}function saveApiKey(_0x2eb432){const _0x4c8fc1=_0x2ea414;mkdirSync(CONFIG_DIR,{'recursive':!0x0});let _0x4808fc={};try{_0x4808fc=JSON[_0x4c8fc1(0xa6)](readFileSync(CONFIG_FILE,'utf-8'));}catch{}_0x4808fc['apiKey']=_0x2eb432,writeFileSync(CONFIG_FILE,JSON[_0x4c8fc1(0xc6)](_0x4808fc,null,0x2)+'\x0a','utf-8');}function _0x214b(){const _0x3eff36=['parse','tokenizer-speedup','24234vmUFXl','log','336689NenDFY','Setup\x20complete.\x20Please\x20restart\x20Claude\x20Code\x20to\x20activate\x20the\x20plugin.','exitCode','config.json','112XIxRYs','2310913tTEjFS','utf-8','668224ijSjmg','20kACeym','wedbJ','UiBHI','✅\x20API\x20key\x20saved\x20successfully.','hooks','ItWRu','1368504CZkxFr','SXyXC','96hTITKB','❌\x20Setup\x20failed:\x20','.claude','SessionStart','❌\x20API\x20key\x20cannot\x20be\x20empty.','UserPromptSubmit','12FwfccS','130064jSIpzk','dlKbB','izOBA','message','312830USurzX','stringify','cAnsm','.config','trim','command','hZFIw','vdaSM'];_0x214b=function(){return _0x3eff36;};return _0x214b();}function registerHooks(){const _0xbc515e=_0x2ea414,_0xcaa7a8={'BcciB':function(_0x2c914e,_0x269ceb,_0x113551){return _0x2c914e(_0x269ceb,_0x113551);},'VbkkG':_0xbc515e(0xbc),'cAnsm':function(_0x2d0951,_0x419e40,_0x1274a7){return _0x2d0951(_0x419e40,_0x1274a7);},'ItWRu':'startup|resume|clear|compact','dlKbB':_0xbc515e(0xa7),'UiBHI':'command','XupBB':function(_0x344a45,_0x1cb2d8,_0x3b9b29,_0x5c9d3b){return _0x344a45(_0x1cb2d8,_0x3b9b29,_0x5c9d3b);},'wedbJ':function(_0x23aedb,_0x3a5031){return _0x23aedb+_0x3a5031;},'zCLjc':'utf-8'};_0xcaa7a8['BcciB'](mkdirSync,join(homedir(),_0xcaa7a8['VbkkG']),{'recursive':!0x0});let _0x313bc1={};try{_0x313bc1=JSON['parse'](_0xcaa7a8[_0xbc515e(0xc7)](readFileSync,CLAUDE_SETTINGS_FILE,_0xbc515e(0xb0)));}catch{}const _0x367c4d=_0x313bc1[_0xbc515e(0xb6)]??{};_0x367c4d[_0xbc515e(0xbd)]=[{'matcher':_0xcaa7a8[_0xbc515e(0xb7)],'hooks':[{'type':_0xbc515e(0xa3),'command':_0xcaa7a8[_0xbc515e(0xc2)],'timeout':0x5}]}],_0x367c4d[_0xbc515e(0xbf)]=[{'matcher':'','hooks':[{'type':_0xcaa7a8['UiBHI'],'command':_0xcaa7a8[_0xbc515e(0xc2)]}]}],_0x367c4d['PreCompact']=[{'matcher':'','hooks':[{'type':_0xbc515e(0xa3),'command':_0xcaa7a8['dlKbB'],'timeout':0xa}]}],_0x367c4d['Stop']=[{'matcher':'','hooks':[{'type':_0xcaa7a8[_0xbc515e(0xb4)],'command':'tokenizer-speedup','timeout':0xa}]}],_0x313bc1[_0xbc515e(0xb6)]=_0x367c4d,_0xcaa7a8['XupBB'](writeFileSync,CLAUDE_SETTINGS_FILE,_0xcaa7a8[_0xbc515e(0xb3)](JSON['stringify'](_0x313bc1,null,0x2),'\x0a'),_0xcaa7a8['zCLjc']);}export function loadApiKeyFromConfig(){const _0x519a57=_0x2ea414,_0x5bf6f1={'vdaSM':_0x519a57(0xb0)};try{return JSON[_0x519a57(0xa6)](readFileSync(CONFIG_FILE,_0x5bf6f1[_0x519a57(0xa5)]))['apiKey']??void 0x0;}catch{return;}}
@@ -1 +1 @@
1
- (function(_0x27a6a9,_0x48c54e){const _0x23c912=_0x4f39,_0x46f64b=_0x27a6a9();while(!![]){try{const _0x1da112=-parseInt(_0x23c912(0x74))/0x1*(-parseInt(_0x23c912(0x79))/0x2)+-parseInt(_0x23c912(0x6e))/0x3*(-parseInt(_0x23c912(0x70))/0x4)+-parseInt(_0x23c912(0x76))/0x5*(-parseInt(_0x23c912(0x71))/0x6)+-parseInt(_0x23c912(0x6d))/0x7+parseInt(_0x23c912(0x6f))/0x8*(-parseInt(_0x23c912(0x7b))/0x9)+parseInt(_0x23c912(0x72))/0xa*(-parseInt(_0x23c912(0x73))/0xb)+-parseInt(_0x23c912(0x77))/0xc*(-parseInt(_0x23c912(0x78))/0xd);if(_0x1da112===_0x48c54e)break;else _0x46f64b['push'](_0x46f64b['shift']());}catch(_0x3ea3de){_0x46f64b['push'](_0x46f64b['shift']());}}}(_0x462e,0xd0bfb));export function buildCheckoutParams(_0x403987){const _0x1e67db=_0x4f39,_0x253055={'MmJAP':_0x1e67db(0x7a)},_0x325382=[{'price':_0x403987[_0x1e67db(0x6c)],'quantity':0x1}];return _0x403987[_0x1e67db(0x75)]&&_0x325382['push']({'price':_0x403987['meteredPriceId']}),{'customer':_0x403987['customerId'],'mode':_0x253055['MmJAP'],'line_items':_0x325382,'success_url':_0x403987['successUrl'],'cancel_url':_0x403987['cancelUrl'],'metadata':{'tier':_0x403987['tier']}};}function _0x4f39(_0x3029dd,_0x58a08c){_0x3029dd=_0x3029dd-0x6c;const _0x462ed5=_0x462e();let _0x4f3917=_0x462ed5[_0x3029dd];return _0x4f3917;}function _0x462e(){const _0x2b219e=['meteredPriceId','5vcrEcS','24sfddIz','10942672DuLHbq','455234dgPvwr','subscription','9475965NwSKbg','recurringPriceId','7716499DvLCdn','366OuGudu','8UkyACr','7564TPYHOi','9448836fbAKbC','40iCHHAl','1942424medQRU','1XMfFWr'];_0x462e=function(){return _0x2b219e;};return _0x462e();}
1
+ (function(_0x2010ff,_0x314fbb){const _0x4956fe=_0x5801,_0x402593=_0x2010ff();while(!![]){try{const _0x12e1f5=-parseInt(_0x4956fe(0xd7))/0x1+parseInt(_0x4956fe(0xdf))/0x2*(parseInt(_0x4956fe(0xd6))/0x3)+parseInt(_0x4956fe(0xe0))/0x4+parseInt(_0x4956fe(0xd9))/0x5+-parseInt(_0x4956fe(0xd5))/0x6+parseInt(_0x4956fe(0xdd))/0x7*(-parseInt(_0x4956fe(0xdc))/0x8)+-parseInt(_0x4956fe(0xd8))/0x9*(-parseInt(_0x4956fe(0xdb))/0xa);if(_0x12e1f5===_0x314fbb)break;else _0x402593['push'](_0x402593['shift']());}catch(_0x154cbf){_0x402593['push'](_0x402593['shift']());}}}(_0x1964,0x2bd8f));export function buildCheckoutParams(_0x3bdd60){const _0xfc5318=_0x5801,_0xdac372=[{'price':_0x3bdd60['recurringPriceId'],'quantity':0x1}];return _0x3bdd60['meteredPriceId']&&_0xdac372['push']({'price':_0x3bdd60[_0xfc5318(0xda)]}),{'customer':_0x3bdd60[_0xfc5318(0xe2)],'mode':_0xfc5318(0xe3),'line_items':_0xdac372,'success_url':_0x3bdd60[_0xfc5318(0xe1)],'cancel_url':_0x3bdd60[_0xfc5318(0xde)],'metadata':{'tier':_0x3bdd60['tier']}};}function _0x5801(_0xa598e3,_0x143a5b){_0xa598e3=_0xa598e3-0xd5;const _0x19642f=_0x1964();let _0x580188=_0x19642f[_0xa598e3];return _0x580188;}function _0x1964(){const _0x3ca468=['customerId','subscription','1015668QJwvRy','144123DsVwLB','42607qIzaVY','9uFsJnn','211400hqUWvO','meteredPriceId','4313020vtqVhS','2780440Iceylc','7TbKyPi','cancelUrl','6HqtKqp','485336FUqAbH','successUrl'];_0x1964=function(){return _0x3ca468;};return _0x1964();}
@@ -1 +1 @@
1
- const _0x45ec3c=_0x512b;function _0x512b(_0x5ca010,_0x28a237){_0x5ca010=_0x5ca010-0x16b;const _0x1501ae=_0x1501();let _0x512b9f=_0x1501ae[_0x5ca010];return _0x512b9f;}function _0x1501(){const _0x5f4e91=['TokenizerSpeedUp\x20Pro','6927010anTjNn','Per-seat\x20pricing.\x20$15/mo/seat\x20+\x208%\x20of\x20savings\x20over\x201M\x20tokens.','11JATHGW','3318SzpifS','32VsUooO','1038243rhmZhz','Unlimited\x20optimization.\x20$5/mo\x20+\x2010%\x20of\x20savings\x20over\x20500K\x20tokens.','5525829SBBiwn','4wJgBYj','2170KYwOJH','302218myMdmz','204XWqVQr','379929xCnTZL','1195YpCiiK'];_0x1501=function(){return _0x5f4e91;};return _0x1501();}(function(_0x1faeda,_0x3b29a7){const _0x4749c8=_0x512b,_0x4356df=_0x1faeda();while(!![]){try{const _0x1ebf40=-parseInt(_0x4749c8(0x174))/0x1*(parseInt(_0x4749c8(0x16c))/0x2)+parseInt(_0x4749c8(0x177))/0x3*(parseInt(_0x4749c8(0x16b))/0x4)+parseInt(_0x4749c8(0x170))/0x5*(-parseInt(_0x4749c8(0x175))/0x6)+-parseInt(_0x4749c8(0x16d))/0x7*(parseInt(_0x4749c8(0x176))/0x8)+parseInt(_0x4749c8(0x179))/0x9+-parseInt(_0x4749c8(0x172))/0xa+-parseInt(_0x4749c8(0x16f))/0xb*(-parseInt(_0x4749c8(0x16e))/0xc);if(_0x1ebf40===_0x3b29a7)break;else _0x4356df['push'](_0x4356df['shift']());}catch(_0x46cd0b){_0x4356df['push'](_0x4356df['shift']());}}}(_0x1501,0x8347e));export const STRIPE_CONFIG={'free':{'name':'TokenizerSpeedUp\x20Free','description':'Up\x20to\x20100K\x20tokens\x20saved/month.\x20Basic\x20dashboard.','recurringPrice':0x0},'pro':{'name':_0x45ec3c(0x171),'description':_0x45ec3c(0x178),'recurringPrice':0x1f4,'meteredUnitAmount':0x1e},'team':{'name':'TokenizerSpeedUp\x20Team','description':_0x45ec3c(0x173),'recurringPrice':0x5dc,'meteredUnitAmount':0x18}};
1
+ function _0x5e3a(){const _0x866b5c=['Unlimited\x20optimization.\x20$5/mo\x20+\x2010%\x20of\x20savings\x20over\x20500K\x20tokens.','2870GvfLzE','Up\x20to\x20100K\x20tokens\x20saved/month.\x20Basic\x20dashboard.','50EdgACB','489408UwRaFN','65532YveqoN','98340RyPdRT','7734noHmNW','9DIckPw','240VQjkft','7516460YfsnES','460176BpWRVz','468689JPiEDV','Per-seat\x20pricing.\x20$15/mo/seat\x20+\x208%\x20of\x20savings\x20over\x201M\x20tokens.','99TtovGq','TokenizerSpeedUp\x20Team'];_0x5e3a=function(){return _0x866b5c;};return _0x5e3a();}const _0x44231c=_0x5613;(function(_0x5858b5,_0x3dcb58){const _0x2ea4c7=_0x5613,_0x40bfd2=_0x5858b5();while(!![]){try{const _0x32f0f8=parseInt(_0x2ea4c7(0x140))/0x1+-parseInt(_0x2ea4c7(0x138))/0x2*(parseInt(_0x2ea4c7(0x13c))/0x3)+parseInt(_0x2ea4c7(0x139))/0x4*(parseInt(_0x2ea4c7(0x137))/0x5)+parseInt(_0x2ea4c7(0x13b))/0x6*(parseInt(_0x2ea4c7(0x135))/0x7)+parseInt(_0x2ea4c7(0x13f))/0x8*(parseInt(_0x2ea4c7(0x142))/0x9)+-parseInt(_0x2ea4c7(0x13e))/0xa+parseInt(_0x2ea4c7(0x13a))/0xb*(parseInt(_0x2ea4c7(0x13d))/0xc);if(_0x32f0f8===_0x3dcb58)break;else _0x40bfd2['push'](_0x40bfd2['shift']());}catch(_0x2680ea){_0x40bfd2['push'](_0x40bfd2['shift']());}}}(_0x5e3a,0x76d89));function _0x5613(_0x5bf38d,_0xf7c750){_0x5bf38d=_0x5bf38d-0x135;const _0x5e3a75=_0x5e3a();let _0x561319=_0x5e3a75[_0x5bf38d];return _0x561319;}export const STRIPE_CONFIG={'free':{'name':'TokenizerSpeedUp\x20Free','description':_0x44231c(0x136),'recurringPrice':0x0},'pro':{'name':'TokenizerSpeedUp\x20Pro','description':_0x44231c(0x144),'recurringPrice':0x1f4,'meteredUnitAmount':0x1e},'team':{'name':_0x44231c(0x143),'description':_0x44231c(0x141),'recurringPrice':0x5dc,'meteredUnitAmount':0x18}};
@@ -1 +1 @@
1
- const _0x23a0ad=_0x35ba;function _0x35ba(_0x599b89,_0x515aa3){_0x599b89=_0x599b89-0x1c9;const _0x2e427b=_0x2e42();let _0x35ba11=_0x2e427b[_0x599b89];return _0x35ba11;}function _0x2e42(){const _0x3f8c70=['17155180LgFays','qIptI','1750216eDaNdE','9880038SMWoYJ','meteredUnitAmount','set','pro','floor','2250072UiyYIR','zLLYV','chargeableUnits','4910045tOqMCe','max','4723137gffINd','unitRate','allowance','5548968xdzUXb'];_0x2e42=function(){return _0x3f8c70;};return _0x2e42();}(function(_0x3d87e6,_0x1b1c93){const _0x39e9bd=_0x35ba,_0x1d934e=_0x3d87e6();while(!![]){try{const _0x142f18=parseInt(_0x39e9bd(0x1d0))/0x1+parseInt(_0x39e9bd(0x1d6))/0x2+-parseInt(_0x39e9bd(0x1ca))/0x3+parseInt(_0x39e9bd(0x1cd))/0x4+-parseInt(_0x39e9bd(0x1d9))/0x5+parseInt(_0x39e9bd(0x1d1))/0x6+-parseInt(_0x39e9bd(0x1ce))/0x7;if(_0x142f18===_0x1b1c93)break;else _0x1d934e['push'](_0x1d934e['shift']());}catch(_0x3748d6){_0x1d934e['push'](_0x1d934e['shift']());}}}(_0x2e42,0xdc397));import{STRIPE_CONFIG}from'./stripe-config.js';const TIER_LIMITS={'free':{'allowance':0x186a0,'unitRate':0x0},'pro':{'allowance':0x7a120,'unitRate':STRIPE_CONFIG[_0x23a0ad(0x1d4)][_0x23a0ad(0x1d2)]},'team':{'allowance':0xf4240,'unitRate':STRIPE_CONFIG['team'][_0x23a0ad(0x1d2)]}};export function calculateUsageCharge(_0x9207a9,_0x39f52b){const _0x42d23c=_0x23a0ad,_0x4011de={'qIptI':function(_0xde690,_0x3e11c7){return _0xde690-_0x3e11c7;},'KVeIK':function(_0x48aed9,_0x48896d){return _0x48aed9*_0x48896d;}},_0x2c9513=TIER_LIMITS[_0x9207a9];if(0x0===_0x2c9513[_0x42d23c(0x1cb)])return{'tier':_0x9207a9,'tokensSaved':_0x39f52b,'freeAllowance':_0x2c9513[_0x42d23c(0x1cc)],'chargeableTokens':0x0,'chargeableUnits':0x0,'unitRate':0x0,'amount':0x0};const _0x2dfb8a=Math[_0x42d23c(0x1c9)](0x0,_0x4011de[_0x42d23c(0x1cf)](_0x39f52b,_0x2c9513['allowance'])),_0x2a2bc8=Math['ceil'](_0x2dfb8a/0x186a0),_0x373632=_0x4011de['KVeIK'](_0x2a2bc8,_0x2c9513[_0x42d23c(0x1cb)]);return{'tier':_0x9207a9,'tokensSaved':_0x39f52b,'freeAllowance':_0x2c9513['allowance'],'chargeableTokens':_0x2dfb8a,'chargeableUnits':_0x2a2bc8,'unitRate':_0x2c9513[_0x42d23c(0x1cb)],'amount':_0x373632};}export function buildUsageRecord(_0x42171e,_0x38a766){const _0x34a2a6=_0x23a0ad,_0x5d2948={'oroQn':_0x34a2a6(0x1d3),'eawab':function(_0x3f877a,_0xeb5cbe){return _0x3f877a/_0xeb5cbe;}};return{'subscription_item':_0x42171e,'quantity':_0x38a766,'action':_0x5d2948['oroQn'],'timestamp':Math[_0x34a2a6(0x1d5)](_0x5d2948['eawab'](Date['now'](),0x3e8))};}export function prepareUsageSync(_0x2a72c5,_0x1bb4c5,_0x30bfb6){const _0x5130f5=_0x23a0ad,_0x2ebd99={'zLLYV':function(_0x152615,_0x4ede41,_0xf84f45){return _0x152615(_0x4ede41,_0xf84f45);}};if(!_0x30bfb6)return{'synced':!0x1,'subscriptionItemId':'','chargeableUnits':0x0,'tier':_0x2a72c5,'error':'no\x20subscription_item_id'};const _0x25fea0=_0x2ebd99[_0x5130f5(0x1d7)](calculateUsageCharge,_0x2a72c5,_0x1bb4c5);if(0x0===_0x25fea0['chargeableUnits'])return{'synced':!0x0,'subscriptionItemId':_0x30bfb6,'chargeableUnits':0x0,'tier':_0x2a72c5};return buildUsageRecord(_0x30bfb6,_0x25fea0[_0x5130f5(0x1d8)]),{'synced':!0x0,'subscriptionItemId':_0x30bfb6,'chargeableUnits':_0x25fea0[_0x5130f5(0x1d8)],'tier':_0x2a72c5};}
1
+ const _0x4912a7=_0x38bf;(function(_0x22c0a0,_0x1aa283){const _0x23071b=_0x38bf,_0x32c4b0=_0x22c0a0();while(!![]){try{const _0x543269=parseInt(_0x23071b(0xec))/0x1+-parseInt(_0x23071b(0xeb))/0x2*(parseInt(_0x23071b(0xf2))/0x3)+parseInt(_0x23071b(0xf4))/0x4*(parseInt(_0x23071b(0xf0))/0x5)+parseInt(_0x23071b(0xf3))/0x6+parseInt(_0x23071b(0xe6))/0x7+-parseInt(_0x23071b(0xed))/0x8+-parseInt(_0x23071b(0xe5))/0x9*(parseInt(_0x23071b(0xe7))/0xa);if(_0x543269===_0x1aa283)break;else _0x32c4b0['push'](_0x32c4b0['shift']());}catch(_0x2a0d57){_0x32c4b0['push'](_0x32c4b0['shift']());}}}(_0x20a5,0x67809));import{STRIPE_CONFIG}from'./stripe-config.js';function _0x38bf(_0x129dd4,_0x58ef43){_0x129dd4=_0x129dd4-0xe4;const _0x20a58b=_0x20a5();let _0x38bffe=_0x20a58b[_0x129dd4];return _0x38bffe;}const TIER_LIMITS={'free':{'allowance':0x186a0,'unitRate':0x0},'pro':{'allowance':0x7a120,'unitRate':STRIPE_CONFIG['pro']['meteredUnitAmount']},'team':{'allowance':0xf4240,'unitRate':STRIPE_CONFIG['team'][_0x4912a7(0xe8)]}};function _0x20a5(){const _0x2b60c7=['3595392zNAxqZ','2145036FDIKjz','allowance','1269CEmnsW','2152892iQhPyE','66650TOvnFk','meteredUnitAmount','now','Cmwhe','1528gAGYjg','349063wgcRPK','2094784ilGXVq','set','ceil','5vSTtEN','chargeableUnits','654ejnDKE'];_0x20a5=function(){return _0x2b60c7;};return _0x20a5();}export function calculateUsageCharge(_0x5cebd6,_0x5ef848){const _0x14071f=_0x4912a7,_0x54279d={'Cmwhe':function(_0x5cb03a,_0x1fe888){return _0x5cb03a/_0x1fe888;}},_0x46a1c5=TIER_LIMITS[_0x5cebd6];if(0x0===_0x46a1c5['unitRate'])return{'tier':_0x5cebd6,'tokensSaved':_0x5ef848,'freeAllowance':_0x46a1c5[_0x14071f(0xe4)],'chargeableTokens':0x0,'chargeableUnits':0x0,'unitRate':0x0,'amount':0x0};const _0x31ba00=Math['max'](0x0,_0x5ef848-_0x46a1c5['allowance']),_0x144bfd=Math[_0x14071f(0xef)](_0x54279d[_0x14071f(0xea)](_0x31ba00,0x186a0)),_0x1c0b1c=_0x144bfd*_0x46a1c5['unitRate'];return{'tier':_0x5cebd6,'tokensSaved':_0x5ef848,'freeAllowance':_0x46a1c5['allowance'],'chargeableTokens':_0x31ba00,'chargeableUnits':_0x144bfd,'unitRate':_0x46a1c5['unitRate'],'amount':_0x1c0b1c};}export function buildUsageRecord(_0x43a86d,_0x3b27fa){const _0x214672=_0x4912a7;return{'subscription_item':_0x43a86d,'quantity':_0x3b27fa,'action':_0x214672(0xee),'timestamp':Math['floor'](Date[_0x214672(0xe9)]()/0x3e8)};}export function prepareUsageSync(_0x3cf6ea,_0x5fcb98,_0xc39621){const _0x3535be=_0x4912a7,_0x525385={'riSwQ':function(_0x2af171,_0x1aece1){return _0x2af171===_0x1aece1;}};if(!_0xc39621)return{'synced':!0x1,'subscriptionItemId':'','chargeableUnits':0x0,'tier':_0x3cf6ea,'error':'no\x20subscription_item_id'};const _0x5d91f5=calculateUsageCharge(_0x3cf6ea,_0x5fcb98);if(_0x525385['riSwQ'](0x0,_0x5d91f5['chargeableUnits']))return{'synced':!0x0,'subscriptionItemId':_0xc39621,'chargeableUnits':0x0,'tier':_0x3cf6ea};return buildUsageRecord(_0xc39621,_0x5d91f5['chargeableUnits']),{'synced':!0x0,'subscriptionItemId':_0xc39621,'chargeableUnits':_0x5d91f5[_0x3535be(0xf1)],'tier':_0x3cf6ea};}
@@ -1 +1 @@
1
- (function(_0xa8ec47,_0x56b4e6){const _0x2acf3a=_0x5c39,_0x598c85=_0xa8ec47();while(!![]){try{const _0x526163=-parseInt(_0x2acf3a(0x179))/0x1+-parseInt(_0x2acf3a(0x183))/0x2*(parseInt(_0x2acf3a(0x180))/0x3)+parseInt(_0x2acf3a(0x18c))/0x4*(parseInt(_0x2acf3a(0x18e))/0x5)+-parseInt(_0x2acf3a(0x181))/0x6*(-parseInt(_0x2acf3a(0x184))/0x7)+-parseInt(_0x2acf3a(0x189))/0x8+parseInt(_0x2acf3a(0x18a))/0x9*(parseInt(_0x2acf3a(0x17f))/0xa)+-parseInt(_0x2acf3a(0x186))/0xb;if(_0x526163===_0x56b4e6)break;else _0x598c85['push'](_0x598c85['shift']());}catch(_0x53525c){_0x598c85['push'](_0x598c85['shift']());}}}(_0x429b,0x22e27));export function handleWebhookEvent(_0x4d7ccd,_0x5877f8){const _0x45b621=_0x5c39,_0x36b3ba={'xTFcy':'invoice.paid','TwiDH':'customer.subscription.updated','BPWtP':'subscription_updated','aBSVU':function(_0x3ed390,_0x595b4d){return _0x3ed390(_0x595b4d);},'lONTo':_0x45b621(0x191),'ZvGrk':'free'};switch(_0x4d7ccd[_0x45b621(0x185)]){case _0x36b3ba['xTFcy']:{const _0x1be965=_0x4d7ccd['data']['object'];return{'handled':!0x0,'action':_0x45b621(0x177),'customerId':_0x1be965['customer'],'subscriptionId':_0x1be965['subscription']};}case _0x36b3ba['TwiDH']:{const _0x4dfda2=_0x4d7ccd['data'][_0x45b621(0x18f)],_0x215aa2={'handled':!0x0,'action':_0x36b3ba[_0x45b621(0x17a)],'customerId':_0x4dfda2[_0x45b621(0x17b)],'subscriptionId':_0x4dfda2['id']};return _0x5877f8&&_0x5877f8['upsert']({'id':_0x4dfda2['id'],'customerId':_0x4dfda2[_0x45b621(0x17b)],'status':_0x4dfda2['status']||'active','tier':_0x4dfda2['metadata']?.[_0x45b621(0x17c)]||_0x45b621(0x190),'currentPeriodEnd':_0x4dfda2['current_period_end']||0x0,'meteredSubscriptionItemId':_0x36b3ba['aBSVU'](extractMeteredItemId,_0x4dfda2),'updatedAt':''}),_0x215aa2;}case _0x45b621(0x182):{const _0x14804c=_0x4d7ccd['data'][_0x45b621(0x18f)],_0x4a6e93={'handled':!0x0,'action':_0x36b3ba['lONTo'],'customerId':_0x14804c['customer'],'subscriptionId':_0x14804c['id']};return _0x5877f8&&_0x5877f8[_0x45b621(0x17d)]({'id':_0x14804c['id'],'customerId':_0x14804c[_0x45b621(0x17b)],'status':'canceled','tier':_0x14804c['metadata']?.[_0x45b621(0x17c)]||_0x36b3ba[_0x45b621(0x18d)],'currentPeriodEnd':_0x14804c[_0x45b621(0x178)]||0x0,'updatedAt':''}),_0x4a6e93;}default:return{'handled':!0x1,'action':'ignored'};}}function _0x5c39(_0x558b5b,_0x1bd363){_0x558b5b=_0x558b5b-0x177;const _0x429b17=_0x429b();let _0x5c39a7=_0x429b17[_0x558b5b];return _0x5c39a7;}function _0x429b(){const _0x57eec1=['metered','8RvfTGZ','ZvGrk','700745uZtYKT','object','free','subscription_canceled','invoice_paid','current_period_end','169169VzeXJQ','BPWtP','customer','tier','upsert','data','10iMoAvb','555171pXKJtW','1633206fFLTdd','customer.subscription.deleted','2gIApmT','7gRZVKF','type','2344958mSEIDC','find','recurring','223568fPCXGP','1671642mNDMgD'];_0x429b=function(){return _0x57eec1;};return _0x429b();}function extractMeteredItemId(_0x3047b6){const _0x504a01=_0x5c39,_0x4be0d6=_0x3047b6['items'];if(!_0x4be0d6?.[_0x504a01(0x17e)])return;const _0x3e69d4=_0x4be0d6['data'][_0x504a01(0x187)](_0x4791ba=>_0x504a01(0x18b)===_0x4791ba['price']?.[_0x504a01(0x188)]?.['usage_type']);return _0x3e69d4?.['id'];}
1
+ (function(_0x4a53f,_0x1764b7){const _0x364d7b=_0x5aae,_0x5d8759=_0x4a53f();while(!![]){try{const _0x2a2a80=parseInt(_0x364d7b(0x17a))/0x1*(-parseInt(_0x364d7b(0x174))/0x2)+-parseInt(_0x364d7b(0x186))/0x3+-parseInt(_0x364d7b(0x16d))/0x4*(parseInt(_0x364d7b(0x16e))/0x5)+-parseInt(_0x364d7b(0x184))/0x6+parseInt(_0x364d7b(0x17e))/0x7*(parseInt(_0x364d7b(0x175))/0x8)+-parseInt(_0x364d7b(0x16c))/0x9*(parseInt(_0x364d7b(0x185))/0xa)+parseInt(_0x364d7b(0x181))/0xb;if(_0x2a2a80===_0x1764b7)break;else _0x5d8759['push'](_0x5d8759['shift']());}catch(_0x500178){_0x5d8759['push'](_0x5d8759['shift']());}}}(_0x5386,0x69b93));export function handleWebhookEvent(_0x3ca04f,_0x23a3e1){const _0x39cb3f=_0x5aae,_0x414fd8={'ozEJA':_0x39cb3f(0x172),'XHpMc':_0x39cb3f(0x183),'rqBaG':function(_0x3a96d0,_0x3bd892){return _0x3a96d0(_0x3bd892);},'AwrmF':_0x39cb3f(0x17f),'WzHAL':_0x39cb3f(0x179)};switch(_0x3ca04f['type']){case _0x39cb3f(0x17b):{const _0x454f56=_0x3ca04f['data'][_0x39cb3f(0x17c)];return{'handled':!0x0,'action':_0x39cb3f(0x180),'customerId':_0x454f56['customer'],'subscriptionId':_0x454f56[_0x39cb3f(0x178)]};}case _0x414fd8[_0x39cb3f(0x168)]:{const _0x47065a=_0x3ca04f[_0x39cb3f(0x170)][_0x39cb3f(0x17c)],_0x28052a={'handled':!0x0,'action':_0x39cb3f(0x169),'customerId':_0x47065a[_0x39cb3f(0x16a)],'subscriptionId':_0x47065a['id']};return _0x23a3e1&&_0x23a3e1[_0x39cb3f(0x16f)]({'id':_0x47065a['id'],'customerId':_0x47065a['customer'],'status':_0x47065a[_0x39cb3f(0x171)]||_0x414fd8[_0x39cb3f(0x16b)],'tier':_0x47065a['metadata']?.[_0x39cb3f(0x17d)]||'free','currentPeriodEnd':_0x47065a[_0x39cb3f(0x177)]||0x0,'meteredSubscriptionItemId':_0x414fd8['rqBaG'](extractMeteredItemId,_0x47065a),'updatedAt':''}),_0x28052a;}case'customer.subscription.deleted':{const _0x26e0e7=_0x3ca04f['data']['object'],_0x53b098={'handled':!0x0,'action':'subscription_canceled','customerId':_0x26e0e7[_0x39cb3f(0x16a)],'subscriptionId':_0x26e0e7['id']};return _0x23a3e1&&_0x23a3e1['upsert']({'id':_0x26e0e7['id'],'customerId':_0x26e0e7[_0x39cb3f(0x16a)],'status':_0x414fd8[_0x39cb3f(0x173)],'tier':_0x26e0e7['metadata']?.[_0x39cb3f(0x17d)]||_0x414fd8['WzHAL'],'currentPeriodEnd':_0x26e0e7[_0x39cb3f(0x177)]||0x0,'updatedAt':''}),_0x53b098;}default:return{'handled':!0x1,'action':'ignored'};}}function _0x5386(){const _0x2e7ba9=['115270MNkbDp','3370784IFeYoY','items','current_period_end','subscription','free','9QOsNlO','invoice.paid','object','tier','14peeFZU','canceled','invoice_paid','27583787nloXaU','recurring','active','3005694AIXhZb','1521160hhjgse','2491902PIfuYZ','ozEJA','subscription_updated','customer','XHpMc','45QINUVK','4DuVjri','1531960hicnZX','upsert','data','status','customer.subscription.updated','AwrmF'];_0x5386=function(){return _0x2e7ba9;};return _0x5386();}function _0x5aae(_0x42bb77,_0x55493d){_0x42bb77=_0x42bb77-0x168;const _0x53864f=_0x5386();let _0x5aae53=_0x53864f[_0x42bb77];return _0x5aae53;}function extractMeteredItemId(_0x531a45){const _0x54ac2b=_0x5aae,_0x3a7565=_0x531a45[_0x54ac2b(0x176)];if(!_0x3a7565?.[_0x54ac2b(0x170)])return;const _0x779d5f=_0x3a7565[_0x54ac2b(0x170)]['find'](_0xd2b2ca=>'metered'===_0xd2b2ca['price']?.[_0x54ac2b(0x182)]?.['usage_type']);return _0x779d5f?.['id'];}
@@ -1 +1 @@
1
- function _0x144a(){const _0x638725=['8275725OrOMFO','subs','upsert','61913VQLvxj','get','updatedAt','21ORejWw','953475OazLuX','32586eHGQIo','2045196EnQPoE','values','361808YredSr','60lHqttU','816156pHOLcf'];_0x144a=function(){return _0x638725;};return _0x144a();}const _0x4aec0f=_0x3289;function _0x3289(_0x5a8edf,_0x6f2cfd){_0x5a8edf=_0x5a8edf-0x84;const _0x144aa6=_0x144a();let _0x3289cc=_0x144aa6[_0x5a8edf];return _0x3289cc;}(function(_0x384cb6,_0x124f55){const _0x1a35e=_0x3289,_0xae3793=_0x384cb6();while(!![]){try{const _0x5c4336=-parseInt(_0x1a35e(0x91))/0x1+parseInt(_0x1a35e(0x88))/0x2*(parseInt(_0x1a35e(0x8c))/0x3)+parseInt(_0x1a35e(0x8d))/0x4+parseInt(_0x1a35e(0x87))/0x5+parseInt(_0x1a35e(0x89))/0x6+parseInt(_0x1a35e(0x86))/0x7*(parseInt(_0x1a35e(0x8b))/0x8)+-parseInt(_0x1a35e(0x8e))/0x9;if(_0x5c4336===_0x124f55)break;else _0xae3793['push'](_0xae3793['shift']());}catch(_0x40010a){_0xae3793['push'](_0xae3793['shift']());}}}(_0x144a,0x34a94));export class MemorySubscriptionStore{[_0x4aec0f(0x8f)]=new Map();[_0x4aec0f(0x90)](_0x15e057){const _0x1a82bf=_0x4aec0f;_0x15e057[_0x1a82bf(0x85)]=new Date()['toISOString'](),this[_0x1a82bf(0x8f)]['set'](_0x15e057['id'],_0x15e057);}['getByCustomerId'](_0x218662){const _0x33cc49=_0x4aec0f;for(const _0x5ed709 of this[_0x33cc49(0x8f)]['values']())if(_0x5ed709['customerId']===_0x218662)return _0x5ed709;}['getBySubscriptionId'](_0xc5c012){const _0x143898=_0x4aec0f;return this[_0x143898(0x8f)][_0x143898(0x84)](_0xc5c012);}['list'](){const _0x3981ac=_0x4aec0f;return[...this['subs'][_0x3981ac(0x8a)]()];}}
1
+ const _0x4705b1=_0x35ab;(function(_0x4a4aa2,_0x4a5e51){const _0x33f67b=_0x35ab,_0x548d78=_0x4a4aa2();while(!![]){try{const _0x31821c=parseInt(_0x33f67b(0xf3))/0x1+parseInt(_0x33f67b(0xfd))/0x2*(parseInt(_0x33f67b(0x100))/0x3)+parseInt(_0x33f67b(0xf2))/0x4*(-parseInt(_0x33f67b(0xfc))/0x5)+parseInt(_0x33f67b(0xff))/0x6*(-parseInt(_0x33f67b(0x101))/0x7)+-parseInt(_0x33f67b(0xf4))/0x8*(parseInt(_0x33f67b(0xfb))/0x9)+-parseInt(_0x33f67b(0xfa))/0xa+parseInt(_0x33f67b(0xf5))/0xb;if(_0x31821c===_0x4a5e51)break;else _0x548d78['push'](_0x548d78['shift']());}catch(_0x36469d){_0x548d78['push'](_0x548d78['shift']());}}}(_0x2e0f,0x19514));export class MemorySubscriptionStore{[_0x4705b1(0xf9)]=new Map();[_0x4705b1(0xf6)](_0x53a104){_0x53a104['updatedAt']=new Date()['toISOString'](),this['subs']['set'](_0x53a104['id'],_0x53a104);}['getByCustomerId'](_0x793d73){const _0x2908d2=_0x4705b1,_0x1c8a8a={'uEDOg':function(_0x2729ef,_0x34cdaa){return _0x2729ef===_0x34cdaa;}};for(const _0x38e9d8 of this['subs'][_0x2908d2(0xf8)]())if(_0x1c8a8a[_0x2908d2(0xfe)](_0x38e9d8['customerId'],_0x793d73))return _0x38e9d8;}[_0x4705b1(0xf7)](_0x2be55d){return this['subs']['get'](_0x2be55d);}['list'](){return[...this['subs']['values']()];}}function _0x35ab(_0x5b02f9,_0x54de49){_0x5b02f9=_0x5b02f9-0xf2;const _0x2e0fd7=_0x2e0f();let _0x35ab08=_0x2e0fd7[_0x5b02f9];return _0x35ab08;}function _0x2e0f(){const _0x36cd6d=['14744VSwNdo','6273960uZItRb','upsert','getBySubscriptionId','values','subs','1339270bPtNvU','594aqurPI','147020glshCU','3458DOerRn','uEDOg','36582iZtxJd','21yYyvtN','175GnNpUq','24jzMshf','105651owrdyX'];_0x2e0f=function(){return _0x36cd6d;};return _0x2e0f();}
@@ -1,37 +1,42 @@
1
1
  {
2
- "version": "0.7.4",
3
- "build": "2026-03-05T07:28:48.533Z",
2
+ "version": "0.8.1",
3
+ "build": "2026-03-06T08:02:05.507Z",
4
4
  "files": {
5
- "cli/analyze.js": "sha256:de1b97165c9428156ac7fce78f5f4783f29303d4d32cd54ddabdc4c7d7ee3e13",
6
- "cli/config-cmd.js": "sha256:99b666d2a5d0d5d83cbf0d549334ffa4956564a2a34f0e7051add2b6ee719f81",
7
- "cli/index.js": "sha256:b84bc6e8fa322addaa6230dd20e52451d7325c73781c69612c9fe9b37b993d28",
8
- "cli/setup-cmd.js": "sha256:845081b06056c8f5c63efd6ecda2e2b2279b7b29c8db8d2321bf53a746fbae1b",
9
- "cloud/stripe-checkout.js": "sha256:63600859eec26b903f937b28bfa1009c55ef9d450c8bb161dcb118edbd5a6b1a",
10
- "cloud/stripe-config.js": "sha256:1b3c87b018011b268f2a2691b96f997d2152086dd11abac8f04d68854b95e21d",
11
- "cloud/stripe-usage.js": "sha256:904e4a816b6c5d24658d645570bf690fc52c95f975bc3ef7ec0b383e0c1c08f2",
12
- "cloud/stripe-webhooks.js": "sha256:57c55429df008a54445d914174d0d25ad18209bac2b1bd4ca5fd77ead557139c",
13
- "cloud/subscription-store.js": "sha256:4e8096575ff8145102ccee5e472a17fd8bb79fd3b4e871a633f3a1e95d31f0a6",
14
- "plugin/cli.js": "sha256:8e8269fc4aadcca233f8a4072d8b80b2c6c4fa7b2ce833c55785131f2dc66f10",
15
- "plugin/config-loader.js": "sha256:f26093ca5dbd3d1795adc7c74245b4f71565899b52b67c1a0431fe50c23674fd",
16
- "plugin/context-compressor.js": "sha256:8e1121d6197278823a6119785646d39d9d0d9e7d34a3b1dc83f12cc6e8f4ce6d",
17
- "plugin/hook-dispatcher.js": "sha256:b0c83d61618c09243cb6386c3eab24dd2b862bf79e9c08d83ee810d0672fd5bd",
18
- "plugin/metering-client.js": "sha256:e61ce0ee45184f562c6e3a491263cd3402cf6eff824dfc4aeac0f8b36472e9dd",
19
- "plugin/metrics-collector.js": "sha256:0670a0d7217681febeea6e501038ac5560c1c94a8af0506f57b658ca229cb62d",
20
- "plugin/onboarding.js": "sha256:97b330d6e1fb1e109bf8491e2377c607d5210847293a78f65d023d59924f8903",
21
- "plugin/precompact-handler.js": "sha256:7b6cfa55eed307108d9be50d26db0c9ec1b587970c87e184778a5620de89f603",
22
- "plugin/report.js": "sha256:10d2b4b87e33bcfc02f47819054a8248009b0fbae01953a594fee81ad656b2d4",
23
- "plugin/rule-analytics-store.js": "sha256:48961785ac7f3315b5ca75e08e6fd1e55ce3b250a060c08ea481a1b06d3db319",
24
- "plugin/rule-analytics.js": "sha256:f638b35b1dbc5ff6bb21d9bfb869276de920edcce753394eb04fd61a82ff817b",
25
- "plugin/rule-engine.js": "sha256:49c94d8bb152cfd8f22fbf51e72434ad6691616ff58cccdaef2a6e355b5550a3",
26
- "plugin/rule-sharing.js": "sha256:3b3a1568c638576abfd1a55e6464686ff0e260b179225953c30c397ffd894356",
27
- "plugin/rule-suggest.js": "sha256:95eb716c9eab8510f901a419e22ad1a6392506aa6018d478308cd75c63e6a04e",
28
- "plugin/session-start.js": "sha256:dfb970dbea11f455fda7a5967f872f16274a6fa611bcc6c330c2eeb46903aeae",
29
- "plugin/smart-context.js": "sha256:a5e86917b0349e3cea56206df66eb397e2fcc445dbe59380f2772cc15ec9866f",
30
- "shared/license.js": "sha256:081d8d02faa1eca18ba1c7dc17de820e519ad80e1fd7834fa5436f4129f09c91",
31
- "shared/providers/claude-provider.js": "sha256:1baa81d1b24e5b1c87785cd5436f3ad6396c998f47b1ab351e6b0a90c0ddc5cd",
32
- "shared/providers/openai-provider.js": "sha256:46f3ce3aead8812c9655e35e5ad27aaccaaef25eb431597089884c62bcb4d9e1",
33
- "shared/token-counter.js": "sha256:e043a9a56141c173a4a9aa0ce978bb0c96571520bb766f12cdade2d638a8c002",
34
- "shared/token-provider.js": "sha256:063e73d5dbaef5162bb04cf9c605dd6b881e26111975e267d12b4b2e3e81700e",
5
+ "cli/analyze.js": "sha256:a6da07b9f07ca3bf6d56d6ca605b7e53a8b4dc99002e93b16643be9ef7b8cd46",
6
+ "cli/config-cmd.js": "sha256:6751758f20479858ad4788a2fbd5093591f48f060558dd0d7d02166da3d0f8c0",
7
+ "cli/index.js": "sha256:45c708613f0d81c908be0d23035b536552206ac57ff58513f8a6bda451163b57",
8
+ "cli/init-cmd.js": "sha256:0b7cbe89847db71df46f00a9581f801070b3ef259cf816bb463543c76ceaf17c",
9
+ "cli/setup-cmd.js": "sha256:c4fae763e73d12cd01171d9a820e6f7ecce0862dc8aaed80ddad692c92b60100",
10
+ "cloud/stripe-checkout.js": "sha256:932ee0d2025c8cb170cc9b6fe86def9929eef6be613619db4bbdd5ab622e809e",
11
+ "cloud/stripe-config.js": "sha256:35f6ef8518f77c416886d95695abc58b56d1c7ed5b0e5c255b8795b882c59603",
12
+ "cloud/stripe-usage.js": "sha256:704d58ceab47b44adf02ca55cd223a455c5c659b0b1e5569409e34065567a86b",
13
+ "cloud/stripe-webhooks.js": "sha256:c70b0ceeb9b705ae8176d45585dff063e33bf957f97a02ae48815222bd15aac8",
14
+ "cloud/subscription-store.js": "sha256:5a4cc951ca16499f0e91219439a31d243f2b105ee5cea5721706fdd21e42a6be",
15
+ "mcp/index.js": "sha256:d3959c17b2cba73c29e588e34b83abfdc115767d13b0fe2c671c24b7c774823c",
16
+ "mcp/resources.js": "sha256:5f5e36ad6d20d2219fd335e4ee5b49a732daccf3b3907da3025ace0bcad1663f",
17
+ "mcp/session.js": "sha256:7aa976c1e4df4a092c68c415fb42dda4294d97e348d007edac5042646862f4ed",
18
+ "mcp/tools.js": "sha256:aa815f5f807d0ba3f3eb2c6bcf85b578d727fd6e35aa96c849795c28d12863dd",
19
+ "plugin/cli.js": "sha256:14f75597ad5638c4336a5b6c40429e83caacce17cb4c84804d748c7a7f44a7d2",
20
+ "plugin/config-loader.js": "sha256:2cf1b0c7dcf25b7b5323342080932da807b6c23f5314949a9176dc38fe86fd4b",
21
+ "plugin/context-compressor.js": "sha256:546503e95e6627da78d17c1bad15b416ae8f72e4d5f0b51a4c41ba2a1ca482f8",
22
+ "plugin/hook-dispatcher.js": "sha256:8dc48ee8fe77d6df320fbe7ffd2c4bb4ef1a68eed155db71896e389737b2d518",
23
+ "plugin/metering-client.js": "sha256:e3021425b8652173a82efd4c80c5806743833ca251c6b96ce342fbdb17bc0114",
24
+ "plugin/metrics-collector.js": "sha256:e5f76e59fca916a20cf96d3a90dd69261bf616853c7deb2240a15d3cf2dfc849",
25
+ "plugin/onboarding.js": "sha256:b7b8820c54bdb95d5b5f974fb1cd2e12d5991a7b8b7a7469aec354a7a4e2ec06",
26
+ "plugin/precompact-handler.js": "sha256:17d16a5f59df46ef267b27d0b4fc20e38be5bcc6941cee5eabb0c1daaae64894",
27
+ "plugin/report.js": "sha256:9daff0042b8e9fe2bd0fc6f913256f60992c91316bf9301f5dd01e2fc38269c2",
28
+ "plugin/rule-analytics-store.js": "sha256:dc43b03800d54f92203d0708bd7f8b274b0c34b63244591a39495c001eb926c2",
29
+ "plugin/rule-analytics.js": "sha256:8cbe6c33ba85b73e04e4c7ac70d7ce518105a449d9cc8600d3a52981dbd34474",
30
+ "plugin/rule-engine.js": "sha256:5bd06e650c4d44ab51fd8d30c07138d6a24d6d042e417e44075a13fada4ed5f4",
31
+ "plugin/rule-sharing.js": "sha256:56334e01c285cb431ae7308f8e36a4f7869d18dce5e6627fc8f332784ccefeda",
32
+ "plugin/rule-suggest.js": "sha256:35376afd45b087ad07eae5bc093b0998c80cd840fc3bb4984ae0309ff3e321e2",
33
+ "plugin/session-start.js": "sha256:623284ca5a09970cce4d326dae243f0bccf8791c99dd24e68765eec72ecb67ed",
34
+ "plugin/smart-context.js": "sha256:fceb4e17d91974590a8751663cb6e5cda77f6bf878375cd89a54fe798a3a4400",
35
+ "shared/license.js": "sha256:cbd16f82da7040f5690b5b4da909bc642b0dee0d730cb917c8fc462a296315b5",
36
+ "shared/providers/claude-provider.js": "sha256:9a3ba3b59eb631db5f4eed86788233f9f5294d9bb9f143ce9f9439f51640b142",
37
+ "shared/providers/openai-provider.js": "sha256:9186756e6ed2020e376ea07cbf45c00afe072fa841015974fb33393a62ffb8cb",
38
+ "shared/token-counter.js": "sha256:2eeb8c67c99c42a2d888b51da6a5691247d7d8207b150245be2f81080cb9daae",
39
+ "shared/token-provider.js": "sha256:48c9e51680eabfbfd5527f0e477f03ea3ef42977c9f176eb79a0ed64aebf5e03",
35
40
  "shared/types.js": "sha256:56e1b0c10087ee6ff7f949b15d1ef63cb11228ff93a159a52f9ad7ef851e4e02"
36
41
  }
37
42
  }
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ const _0x316ca5=_0x5668;(function(_0x4bc693,_0x37765f){const _0x1d65db=_0x5668,_0x51f485=_0x4bc693();while(!![]){try{const _0x544e6d=parseInt(_0x1d65db(0xe2))/0x1+-parseInt(_0x1d65db(0xe5))/0x2*(-parseInt(_0x1d65db(0xf0))/0x3)+parseInt(_0x1d65db(0xeb))/0x4*(parseInt(_0x1d65db(0xe8))/0x5)+parseInt(_0x1d65db(0xed))/0x6+-parseInt(_0x1d65db(0xef))/0x7*(parseInt(_0x1d65db(0xe3))/0x8)+-parseInt(_0x1d65db(0xea))/0x9*(parseInt(_0x1d65db(0xee))/0xa)+-parseInt(_0x1d65db(0xec))/0xb;if(_0x544e6d===_0x37765f)break;else _0x51f485['push'](_0x51f485['shift']());}catch(_0x4534f1){_0x51f485['push'](_0x51f485['shift']());}}}(_0x3fb5,0x94a06));import'../shared/providers/claude-provider.js';function _0x5668(_0x33bec0,_0x1d612a){_0x33bec0=_0x33bec0-0xe2;const _0x3fb53e=_0x3fb5();let _0x566812=_0x3fb53e[_0x33bec0];return _0x566812;}import'../shared/providers/openai-provider.js';import{McpServer}from'@modelcontextprotocol/sdk/server/mcp.js';import{StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';import{createSession}from'./session.js';import{registerTools}from'./tools.js';function _0x3fb5(){const _0x36aa59=['763574kFrxEv','tokenizer-speedup\x20MCP\x20server\x20running','fsYZO','775iXAepN','connect','9558414gvvKHU','23628IWJhXi','14952553OuwKjk','4513110aqjQzd','10qsEuPZ','1442ifBWNT','9oZvHpw','lsCja','0.8.1','exit','SIGINT','666710EJYvZQ','17464xjWBDf','catch'];_0x3fb5=function(){return _0x36aa59;};return _0x3fb5();}import{registerResources}from'./resources.js';async function main(){const _0x152f97=_0x5668,_0x1d1e30={'lsCja':'tokenizer-speedup','fsYZO':function(_0x397d4d,_0x46cef7,_0xc233a3){return _0x397d4d(_0x46cef7,_0xc233a3);}},_0x3f1026=new McpServer({'name':_0x1d1e30[_0x152f97(0xf1)],'version':_0x152f97(0xf2)}),_0xb37286=createSession();_0x1d1e30[_0x152f97(0xe7)](registerTools,_0x3f1026,_0xb37286),_0x1d1e30[_0x152f97(0xe7)](registerResources,_0x3f1026,_0xb37286),process['on'](_0x152f97(0xf4),()=>{const _0x2436e3=_0x152f97;try{_0xb37286['getDispatcher']()['handleSessionStop']();}catch{}process[_0x2436e3(0xf3)](0x0);});const _0x58c338=new StdioServerTransport();await _0x3f1026[_0x152f97(0xe9)](_0x58c338),console['error'](_0x152f97(0xe6));}main()[_0x316ca5(0xe4)](_0x1628b1=>{const _0x1b6e1d=_0x316ca5;console['error']('tokenizer-speedup\x20MCP\x20server\x20failed\x20to\x20start:',_0x1628b1),process[_0x1b6e1d(0xf3)](0x1);});
@@ -0,0 +1 @@
1
+ function _0x1c0c(){const _0x172400=['Returns\x20an\x20aggregated\x20report\x20of\x20token\x20savings\x20across\x20all\x20recorded\x20sessions,\x20including\x20baseline\x20vs.\x20optimized\x20counts,\x20cost\x20estimates,\x20and\x20rule\x20trigger\x20statistics.','report','application/json','tokenizer-speedup://report','4706552zHOhuU','95196LUFhYC','stringify','29160261klrVNY','108717iWqIaS','16vtzbTg','6ScCSKe','registerResource','5331720KrGFmb','hkfEQ','3422487tYlHfu','href','5706480jmCtWa','tokenizer-speedup://config'];_0x1c0c=function(){return _0x172400;};return _0x1c0c();}(function(_0x31043f,_0x3f41c8){const _0x44b61b=_0x5ba5,_0x54d404=_0x31043f();while(!![]){try{const _0x543d86=-parseInt(_0x44b61b(0x12f))/0x1*(parseInt(_0x44b61b(0x13d))/0x2)+parseInt(_0x44b61b(0x134))/0x3+-parseInt(_0x44b61b(0x13c))/0x4+-parseInt(_0x44b61b(0x136))/0x5+-parseInt(_0x44b61b(0x130))/0x6*(parseInt(_0x44b61b(0x140))/0x7)+-parseInt(_0x44b61b(0x132))/0x8+parseInt(_0x44b61b(0x13f))/0x9;if(_0x543d86===_0x3f41c8)break;else _0x54d404['push'](_0x54d404['shift']());}catch(_0xf8076d){_0x54d404['push'](_0x54d404['shift']());}}}(_0x1c0c,0x97360));import{generateReport}from'../plugin/report.js';function _0x5ba5(_0x33b6cc,_0x4b6442){_0x33b6cc=_0x33b6cc-0x12f;const _0x1c0c96=_0x1c0c();let _0x5ba58d=_0x1c0c96[_0x33b6cc];return _0x5ba58d;}export function registerResources(_0x498949,_0x21cbfd){const _0x5bbf47=_0x5ba5,_0x11262a={'YdyFl':_0x5bbf47(0x13a),'hkfEQ':_0x5bbf47(0x139),'HDMeh':_0x5bbf47(0x13b),'MCScJ':_0x5bbf47(0x138)};_0x498949['registerResource']('config',_0x5bbf47(0x137),{'title':'TokenizerSpeedUp\x20Configuration','description':'Returns\x20the\x20current\x20YAML-based\x20plugin\x20configuration\x20as\x20JSON,\x20including\x20rules,\x20context\x20limits,\x20and\x20metering\x20settings.','mimeType':_0x11262a['YdyFl']},async _0xf9d2b=>{const _0x1e0381=_0x5bbf47,_0x380f73=_0x21cbfd['getConfig']();return{'contents':[{'uri':_0xf9d2b[_0x1e0381(0x135)],'text':JSON['stringify'](_0x380f73,null,0x2)}]};}),_0x498949[_0x5bbf47(0x131)](_0x11262a[_0x5bbf47(0x133)],_0x11262a['HDMeh'],{'title':'TokenizerSpeedUp\x20Savings\x20Report','description':_0x11262a['MCScJ'],'mimeType':_0x11262a['YdyFl']},async _0x4815a=>{const _0x4cfeb4=_0x5bbf47;try{const _0x1fa0e7=generateReport(_0x21cbfd['projectRoot']);return{'contents':[{'uri':_0x4815a['href'],'text':JSON['stringify'](_0x1fa0e7,null,0x2)}]};}catch{return{'contents':[{'uri':_0x4815a[_0x4cfeb4(0x135)],'text':JSON[_0x4cfeb4(0x13e)]({'message':'No\x20metrics\x20data\x20available\x20yet.\x20Run\x20at\x20least\x20one\x20optimized\x20session\x20to\x20generate\x20a\x20report.','sessions_count':0x0,'total_baseline':0x0,'total_optimized':0x0,'total_delta':0x0,'savings_percent':0x0,'total_prompts':0x0,'rules_triggered':{},'estimated_cost_saved_usd':0x0,'period_start':'','period_end':''},null,0x2)}]};}});}
@@ -0,0 +1 @@
1
+ const _0x5cb64a=_0x5b88;(function(_0x57bde9,_0x372f82){const _0x403f7c=_0x5b88,_0x5aa177=_0x57bde9();while(!![]){try{const _0x45625c=parseInt(_0x403f7c(0xa4))/0x1*(-parseInt(_0x403f7c(0xaa))/0x2)+-parseInt(_0x403f7c(0xa6))/0x3+-parseInt(_0x403f7c(0xb6))/0x4+parseInt(_0x403f7c(0xaf))/0x5*(parseInt(_0x403f7c(0xa5))/0x6)+-parseInt(_0x403f7c(0xa8))/0x7*(parseInt(_0x403f7c(0xae))/0x8)+-parseInt(_0x403f7c(0xb0))/0x9*(-parseInt(_0x403f7c(0xac))/0xa)+parseInt(_0x403f7c(0xa7))/0xb*(parseInt(_0x403f7c(0xad))/0xc);if(_0x45625c===_0x372f82)break;else _0x5aa177['push'](_0x5aa177['shift']());}catch(_0x9e64e9){_0x5aa177['push'](_0x5aa177['shift']());}}}(_0x239a,0x49cbf));import{loadConfig,DEFAULT_LIMITS,DEFAULT_METERING}from'../plugin/config-loader.js';import{HookDispatcher}from'../plugin/hook-dispatcher.js';import{MetricsCollector}from'../plugin/metrics-collector.js';import{createTokenProvider}from'../shared/token-provider.js';function _0x239a(){const _0x6004b9=['7aWECwc','1592310oZlUvS','856341DSieAJ','33bXpdTM','7iTTebh','now','168218lbQWpP','claude-sonnet-4-20250514','99490IzaPWx','6791688Kfktss','2627368HpuWQz','5GosgEB','9kXBuiy','YXvwJ','claude','model','hqaoM','provider','1873416cdwGkf'];_0x239a=function(){return _0x6004b9;};return _0x239a();}function _0x5b88(_0x2d5a6e,_0xc540ea){_0x2d5a6e=_0x2d5a6e-0xa4;const _0x239a5a=_0x239a();let _0x5b88e5=_0x239a5a[_0x2d5a6e];return _0x5b88e5;}const DEFAULT_CONFIG={'version':0x1,'provider':_0x5cb64a(0xb2),'model':_0x5cb64a(0xab),'rules':[],'context_limits':DEFAULT_LIMITS,'metering':DEFAULT_METERING};export function createSession(_0x56a10a){const _0x4bd2c8=_0x5cb64a,_0x25ab21={'Efnrg':function(_0x43b10d,_0x5e7701){return _0x43b10d(_0x5e7701);},'hqaoM':function(_0x8551df,_0x23e35c){return _0x8551df(_0x23e35c);},'YXvwJ':function(_0x3eed77,_0x4ed86e,_0x3ec95f){return _0x3eed77(_0x4ed86e,_0x3ec95f);}};let _0x12df8d=_0x56a10a??process['cwd'](),_0x5b8f21=null,_0x3f34a2=null;const _0x461af0='mcp-session-'+Date[_0x4bd2c8(0xa9)]();let _0x328190=new MetricsCollector(_0x12df8d,_0x461af0);const _0x5abd5c={get 'projectRoot'(){return _0x12df8d;},get 'config'(){return _0x5b8f21;},get 'collector'(){return _0x328190;},get 'sessionId'(){return _0x461af0;},'getConfig':()=>(_0x5b8f21||(_0x5b8f21=(function(){const _0x24ea8f=_0x4bd2c8;try{return _0x25ab21['Efnrg'](loadConfig,_0x12df8d);}catch{return _0x25ab21[_0x24ea8f(0xb4)](structuredClone,DEFAULT_CONFIG);}}())),_0x5b8f21),'getDispatcher'(){if(!_0x3f34a2){const _0x13989b=_0x5abd5c['getConfig']();_0x3f34a2=new HookDispatcher(_0x13989b,_0x12df8d,_0x461af0);}return _0x3f34a2;},'getTokenProvider'(_0x54ebdd,_0x3f09a7){const _0x4d9495=_0x4bd2c8,_0x2a1756=_0x5abd5c['getConfig']();return _0x25ab21[_0x4d9495(0xb1)](createTokenProvider,_0x54ebdd??_0x2a1756[_0x4d9495(0xb5)],_0x3f09a7??_0x2a1756[_0x4d9495(0xb3)]);},'setProjectRoot'(_0x1c0194){_0x12df8d=_0x1c0194,_0x5b8f21=null,_0x3f34a2=null,_0x328190=new MetricsCollector(_0x12df8d,_0x461af0);}};return _0x5abd5c;}
@@ -0,0 +1 @@
1
+ function _0x56cc(){const _0x451412=['412447hLXrHc','string','YvLIi','provider','get-savings','Inline\x20text\x20to\x20analyze','registerTool','UserPromptSubmit','startsWith','gViiB','projectRoot','openai','vnRej','Optimize\x20LLM\x20context\x20for\x20a\x20given\x20prompt.\x20Returns\x20matched\x20rules,\x20injected\x20context\x20and\x20token\x20savings.','text','114yzFidS','177420QhvQRM','map','word\x20heuristic\x20(words\x20×\x20','eXHDo','6944896WhsJrB','knVJl','Failed\x20to\x20read\x20file:\x20','2243415uyHDae','stringify','XtlvW','describe','10227FgaHqE','MbOoF','optional','vgWCU','total_baseline','3342IrBeLp','getConfig','getDispatcher','rules_triggered','svcAJ','prompts_count','analyze-tokens','getSessionSummary','Path\x20to\x20a\x20file\x20to\x20analyze','utf-8','message','countTokens','total_delta','matchAll','7152euDkQH','PMaKA','file_path\x20escapes\x20project\x20root.','9508194vXFxNj','1.3'];_0x56cc=function(){return _0x451412;};return _0x56cc();}(function(_0x5aa626,_0x35e89b){const _0x578456=_0x32af,_0x428394=_0x5aa626();while(!![]){try{const _0x382f89=-parseInt(_0x578456(0xd4))/0x1+-parseInt(_0x578456(0xcf))/0x2*(parseInt(_0x578456(0xb0))/0x3)+-parseInt(_0x578456(0xb1))/0x4+parseInt(_0x578456(0xb8))/0x5+-parseInt(_0x578456(0xc1))/0x6*(-parseInt(_0x578456(0xbc))/0x7)+parseInt(_0x578456(0xb5))/0x8+-parseInt(_0x578456(0xd2))/0x9;if(_0x382f89===_0x35e89b)break;else _0x428394['push'](_0x428394['shift']());}catch(_0x306b98){_0x428394['push'](_0x428394['shift']());}}}(_0x56cc,0x75888));import{readFile}from'node:fs/promises';function _0x32af(_0x4027e2,_0x539617){_0x4027e2=_0x4027e2-0xae;const _0x56cc51=_0x56cc();let _0x32afed=_0x56cc51[_0x4027e2];return _0x32afed;}import{resolve,normalize}from'node:path';import{z}from'zod';import{countTokens}from'../shared/token-counter.js';export function registerTools(_0x4f13a1,_0x2cd184){const _0x332e76=_0x32af,_0x35a5ea={'gViiB':function(_0x56b232,_0xb8d734){return _0x56b232-_0xb8d734;},'xHNQn':function(_0x55ed84,_0x370d5b){return _0x55ed84>_0x370d5b;},'PMaKA':'text','znlaB':function(_0x245c96,_0x144adc){return _0x245c96===_0x144adc;},'MbOoF':'Either\x20text\x20or\x20file_path\x20must\x20be\x20provided.','gjkyA':_0x332e76(0xdf),'YvLIi':function(_0x4955a1,_0x17b38b){return _0x4955a1 instanceof _0x17b38b;},'vgWCU':function(_0xa55614,_0x4ff24a){return _0xa55614(_0x4ff24a);},'svcAJ':function(_0x3f7f77,_0x39dac3,_0x26b218){return _0x3f7f77(_0x39dac3,_0x26b218);},'vnRej':function(_0x27b376,_0x349e36,_0x113db3){return _0x27b376(_0x349e36,_0x113db3);},'KAGUG':_0x332e76(0xca),'khSGB':function(_0xb56b0d,_0x2d3315){return _0xb56b0d(_0x2d3315);},'XtlvW':_0x332e76(0xd3),'AiPMj':_0x332e76(0xae),'EAinb':'The\x20user\x20prompt\x20to\x20optimize','ezKWL':'Optional\x20project\x20root\x20path;\x20re-loads\x20config\x20if\x20provided','HglkK':_0x332e76(0xc7),'otuEZ':'Count\x20and\x20estimate\x20tokens\x20for\x20a\x20given\x20text\x20or\x20file.\x20Returns\x20exact\x20BPE\x20count\x20and\x20word-based\x20heuristic\x20estimate.','iFQeJ':_0x332e76(0xd9),'eXHDo':'LLM\x20provider\x20(claude,\x20openai).\x20Defaults\x20to\x20config\x20provider.','knVJl':'Model\x20name.\x20Defaults\x20to\x20config\x20model.','PQjem':_0x332e76(0xd8)};_0x4f13a1['registerTool']('optimize-context',{'description':_0x35a5ea['AiPMj'],'inputSchema':{'prompt':z[_0x332e76(0xd5)]()['describe'](_0x35a5ea['EAinb']),'project_path':z['string']()[_0x332e76(0xbe)]()[_0x332e76(0xbb)](_0x35a5ea['ezKWL'])}},async({prompt:_0x131dd1,project_path:_0x4ab0ed})=>{const _0x581aaa=_0x332e76;_0x4ab0ed&&_0x2cd184['setProjectRoot'](_0x4ab0ed);const _0x226917=_0x2cd184[_0x581aaa(0xc3)](),_0x2dbe8b=_0x226917[_0x581aaa(0xc8)](),_0x64830b={'session_id':_0x2cd184['sessionId'],'cwd':_0x2cd184['projectRoot'],'prompt':_0x131dd1,'hook_event_name':_0x581aaa(0xdb)},_0x411592=_0x226917['handleUserPromptSubmit'](_0x64830b),_0x31ed51=_0x35a5ea[_0x581aaa(0xdd)](_0x226917['getSessionSummary']()[_0x581aaa(0xcd)],_0x2dbe8b[_0x581aaa(0xcd)]),_0x5824a2=_0x411592['additionalContext']??'',_0x4cb919=_0x35a5ea['xHNQn'](_0x5824a2['length'],0x0)?countTokens(_0x5824a2):0x0,_0x47fe2c=[..._0x5824a2[_0x581aaa(0xce)](/^\[([^\]]+)\]/gm)][_0x581aaa(0xb2)](_0x573fa8=>_0x573fa8[0x1]),_0x18571d={'context':_0x5824a2,'rules_matched':_0x47fe2c,'tokens_injected':_0x4cb919,'tokens_saved':_0x31ed51};return{'content':[{'type':_0x35a5ea[_0x581aaa(0xd0)],'text':JSON[_0x581aaa(0xb9)](_0x18571d)}]};}),_0x4f13a1[_0x332e76(0xda)](_0x35a5ea['HglkK'],{'description':_0x35a5ea['otuEZ'],'inputSchema':{'text':z['string']()['optional']()['describe'](_0x35a5ea['iFQeJ']),'file_path':z[_0x332e76(0xd5)]()[_0x332e76(0xbe)]()['describe'](_0x332e76(0xc9)),'provider':z['string']()[_0x332e76(0xbe)]()[_0x332e76(0xbb)](_0x35a5ea[_0x332e76(0xb4)]),'model':z['string']()['optional']()[_0x332e76(0xbb)](_0x35a5ea[_0x332e76(0xb6)])}},async({text:_0x2521b7,file_path:_0x165b54,provider:_0x4e7f06,model:_0xd2b554})=>{const _0x192e90=_0x332e76;if(_0x35a5ea['znlaB'](void 0x0,_0x2521b7)&&void 0x0===_0x165b54)return{'content':[{'type':'text','text':JSON[_0x192e90(0xb9)]({'error':_0x35a5ea[_0x192e90(0xbd)]})}],'isError':!0x0};const _0xf9aec7=_0x4e7f06??_0x2cd184[_0x192e90(0xc2)]()[_0x192e90(0xd7)],_0x217871=_0xd2b554??(_0x35a5ea['gjkyA']===_0xf9aec7?'gpt-4o':_0x2cd184[_0x192e90(0xc2)]()['model']);let _0x2cc406,_0x2f0b33;try{_0x2cc406=_0x2cd184['getTokenProvider'](_0xf9aec7,_0x217871);}catch(_0x25c762){const _0x8544d=_0x35a5ea['YvLIi'](_0x25c762,Error)?_0x25c762[_0x192e90(0xcb)]:_0x35a5ea[_0x192e90(0xbf)](String,_0x25c762);return{'content':[{'type':_0x35a5ea['PMaKA'],'text':JSON[_0x192e90(0xb9)]({'error':_0x8544d})}],'isError':!0x0};}if(void 0x0!==_0x2521b7)_0x2f0b33=_0x2521b7;else{const _0x1aacf3=normalize(_0x2cd184[_0x192e90(0xde)]),_0x548e4d=_0x35a5ea['vgWCU'](normalize,_0x35a5ea[_0x192e90(0xc5)](resolve,_0x1aacf3,_0x165b54));if(!_0x548e4d[_0x192e90(0xdc)](_0x1aacf3))return{'content':[{'type':_0x35a5ea[_0x192e90(0xd0)],'text':JSON['stringify']({'error':_0x192e90(0xd1)})}],'isError':!0x0};try{_0x2f0b33=await _0x35a5ea[_0x192e90(0xe0)](readFile,_0x548e4d,_0x35a5ea['KAGUG']);}catch(_0x592153){const _0x17152c=_0x35a5ea[_0x192e90(0xd6)](_0x592153,Error)?_0x592153[_0x192e90(0xcb)]:_0x35a5ea['khSGB'](String,_0x592153);return{'content':[{'type':_0x35a5ea['PMaKA'],'text':JSON[_0x192e90(0xb9)]({'error':_0x192e90(0xb7)+_0x17152c})}],'isError':!0x0};}}const _0xd2d7e8={'tokens':_0x2cc406[_0x192e90(0xcc)](_0x2f0b33),'tokens_method':'BPE\x20tokenizer\x20(accurate)','estimate':_0x2cc406['estimateTokens'](_0x2f0b33),'estimate_method':_0x192e90(0xb3)+(_0x35a5ea['znlaB'](_0x35a5ea['gjkyA'],_0xf9aec7)?_0x35a5ea[_0x192e90(0xba)]:'1.4')+')','provider':_0xf9aec7,'model':_0x217871};return{'content':[{'type':_0x35a5ea['PMaKA'],'text':JSON['stringify'](_0xd2d7e8)}]};}),_0x4f13a1['registerTool'](_0x35a5ea['PQjem'],{'description':'Return\x20cumulative\x20token\x20savings\x20for\x20the\x20current\x20MCP\x20session.\x20Shows\x20baseline\x20vs\x20optimized\x20token\x20counts\x20and\x20per-rule\x20trigger\x20counts.'},async()=>{const _0x2bdde8=_0x332e76,_0x32928a=_0x2cd184[_0x2bdde8(0xc3)]()['getSessionSummary'](),_0x2036b5={'baseline_tokens':_0x32928a[_0x2bdde8(0xc0)],'optimized_tokens':_0x32928a['total_optimized'],'saved_tokens':_0x32928a['total_delta'],'saved_percent':_0x32928a['savings_percent'],'prompts_count':_0x32928a[_0x2bdde8(0xc6)],'rules_triggered':_0x32928a[_0x2bdde8(0xc4)]};return{'content':[{'type':_0x2bdde8(0xaf),'text':JSON[_0x2bdde8(0xb9)](_0x2036b5)}]};});}
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const _0x48fd4c=_0xea48;(function(_0x4b3336,_0x3ff85f){const _0x6c95c0=_0xea48,_0x449250=_0x4b3336();while(!![]){try{const _0x89a70e=parseInt(_0x6c95c0(0x120))/0x1+-parseInt(_0x6c95c0(0x110))/0x2*(parseInt(_0x6c95c0(0x11d))/0x3)+-parseInt(_0x6c95c0(0x128))/0x4*(-parseInt(_0x6c95c0(0x114))/0x5)+-parseInt(_0x6c95c0(0x11c))/0x6+parseInt(_0x6c95c0(0x11b))/0x7*(parseInt(_0x6c95c0(0x12a))/0x8)+-parseInt(_0x6c95c0(0x119))/0x9*(-parseInt(_0x6c95c0(0x112))/0xa)+parseInt(_0x6c95c0(0x111))/0xb*(parseInt(_0x6c95c0(0x125))/0xc);if(_0x89a70e===_0x3ff85f)break;else _0x449250['push'](_0x449250['shift']());}catch(_0xb9b7a8){_0x449250['push'](_0x449250['shift']());}}}(_0x330d,0x587a8));import{resolve}from'node:path';function _0xea48(_0x1b651e,_0x37492e){_0x1b651e=_0x1b651e-0x110;const _0x330dd2=_0x330d();let _0xea4892=_0x330dd2[_0x1b651e];return _0xea4892;}import{loadConfig}from'./config-loader.js';function _0x330d(){const _0x3ad850=['exit','utf-8','provider','metering','hook_event_name','1390NkyTCW','836SnDMjC','33890LhZCQv','cwd','77590VpoLGN','QMJKe','QcUiC','additionalContext','handlePreCompact','135RuncGS','write','2753177WjOYoT','3835344kknVVT','2094vgeHlg','parse','filter','36970WjaYdE','handleSessionStop','kmbYC','model','prompt','146532Fnxzlv','ZOdOK','session_id','20FvJsST','send','8VABQMR'];_0x330d=function(){return _0x3ad850;};return _0x330d();}import{HookDispatcher}from'./hook-dispatcher.js';import{buildSessionStartContext}from'./session-start.js';import{buildSmartContext}from'./smart-context.js';import{MeteringClient,buildMeterPayload}from'./metering-client.js';import{loadApiKeyFromConfig}from'../cli/setup-cmd.js';if(!process.env.TOKENIZER_API_KEY){const t=loadApiKeyFromConfig();t&&(process.env.TOKENIZER_API_KEY=t);}async function main(){const _0x537e38=_0xea48,_0x1d2a35={'QcUiC':_0x537e38(0x12c),'ZOdOK':function(_0x321423,_0x1466a9){return _0x321423(_0x1466a9);},'NAHdr':function(_0x2e4b5d,_0x47ff9f,_0xa0eaa3){return _0x2e4b5d(_0x47ff9f,_0xa0eaa3);},'pqjZS':'../..','QMJKe':'SessionStart','kmbYC':'UserPromptSubmit','bTlmb':function(_0x437e89,_0x202d8f){return _0x437e89(_0x202d8f);}},_0x11a082=[];for await(const _0x44cf62 of process['stdin'])_0x11a082['push'](_0x44cf62);const _0x2415f2=Buffer['concat'](_0x11a082)['toString'](_0x1d2a35[_0x537e38(0x116)]);let _0x5312fd;try{_0x5312fd=JSON[_0x537e38(0x11e)](_0x2415f2);}catch{process[_0x537e38(0x12b)](0x0);}const _0x52b002=_0x5312fd[_0x537e38(0x113)]||process[_0x537e38(0x113)](),_0x37b295=_0x5312fd[_0x537e38(0x12f)];let _0x2b634e;try{_0x2b634e=_0x1d2a35[_0x537e38(0x126)](loadConfig,_0x52b002);}catch{const _0x4040ec=process.env.CLAUDE_PLUGIN_ROOT||_0x1d2a35['NAHdr'](resolve,import.meta.dirname,_0x1d2a35['pqjZS']);_0x2b634e=_0x1d2a35['ZOdOK'](loadConfig,_0x4040ec);}const _0x58cb74=new HookDispatcher(_0x2b634e,_0x52b002,_0x5312fd[_0x537e38(0x127)]);let _0x32640b={};switch(_0x37b295){case _0x1d2a35[_0x537e38(0x115)]:_0x32640b=buildSessionStartContext({'cwd':_0x52b002});break;case _0x1d2a35[_0x537e38(0x122)]:{const _0x5f12db=_0x58cb74['handleUserPromptSubmit'](_0x5312fd),_0x78dc06=_0x1d2a35['bTlmb'](buildSmartContext,{'prompt':_0x5312fd[_0x537e38(0x124)]||'','cwd':_0x52b002}),_0x2862d9=[_0x5f12db[_0x537e38(0x117)],_0x78dc06[_0x537e38(0x117)]][_0x537e38(0x11f)](Boolean);_0x32640b=_0x2862d9['length']>0x0?{'additionalContext':_0x2862d9['join']('\x0a')}:{};break;}case'PreCompact':_0x32640b=_0x58cb74[_0x537e38(0x118)](_0x5312fd);break;case'Stop':{const _0x374a36=_0x58cb74[_0x537e38(0x121)](),_0x101ee3=new MeteringClient(_0x2b634e[_0x537e38(0x12e)]['endpoint']),_0x5ac8fc=buildMeterPayload(_0x374a36,{'provider':_0x2b634e[_0x537e38(0x12d)],'model':_0x2b634e[_0x537e38(0x123)]});await _0x101ee3[_0x537e38(0x129)](_0x5ac8fc);break;}}process['stdout'][_0x537e38(0x11a)](JSON['stringify'](_0x32640b)),process[_0x537e38(0x12b)](0x0);}main()['catch'](()=>process[_0x48fd4c(0x12b)](0x0));
2
+ const _0x675cc2=_0x52ba;(function(_0x39aecc,_0x2c7fcb){const _0xa18c03=_0x52ba,_0x4b10b2=_0x39aecc();while(!![]){try{const _0x274c55=-parseInt(_0xa18c03(0xe7))/0x1+-parseInt(_0xa18c03(0xf4))/0x2*(-parseInt(_0xa18c03(0xef))/0x3)+parseInt(_0xa18c03(0xfa))/0x4+-parseInt(_0xa18c03(0xea))/0x5*(-parseInt(_0xa18c03(0xe8))/0x6)+parseInt(_0xa18c03(0xe9))/0x7+-parseInt(_0xa18c03(0xf3))/0x8*(parseInt(_0xa18c03(0xf5))/0x9)+parseInt(_0xa18c03(0xdf))/0xa*(-parseInt(_0xa18c03(0xeb))/0xb);if(_0x274c55===_0x2c7fcb)break;else _0x4b10b2['push'](_0x4b10b2['shift']());}catch(_0x43d872){_0x4b10b2['push'](_0x4b10b2['shift']());}}}(_0x325e,0x38e89));import{resolve}from'node:path';function _0x325e(){const _0x4dc60a=['stringify','handleSessionStop','model','catch','200993eLhvNy','230346InDLbW','2121182DAKvlh','55Javaua','340406lTGkUo','push','join','PreCompact','57021AgpYZG','endpoint','../..','stdout','8ZYHdqO','10xepQon','237753eadHgK','handleUserPromptSubmit','write','hook_event_name','JYTgI','788692PJdEvd','provider','additionalContext','180IpmeUZ','prompt','exit','length'];_0x325e=function(){return _0x4dc60a;};return _0x325e();}import{loadConfig}from'./config-loader.js';import{HookDispatcher}from'./hook-dispatcher.js';import{buildSessionStartContext}from'./session-start.js';import{buildSmartContext}from'./smart-context.js';import{MeteringClient,buildMeterPayload}from'./metering-client.js';import{loadApiKeyFromConfig}from'../cli/setup-cmd.js';if(!process.env.TOKENIZER_API_KEY){const t=loadApiKeyFromConfig();t&&(process.env.TOKENIZER_API_KEY=t);}function _0x52ba(_0x41df62,_0x1356ed){_0x41df62=_0x41df62-0xdf;const _0x325ef8=_0x325e();let _0x52bae3=_0x325ef8[_0x41df62];return _0x52bae3;}async function main(){const _0x492f23=_0x52ba,_0x40e21f={'JYTgI':function(_0x20e6db,_0x433500){return _0x20e6db(_0x433500);},'wQFcj':_0x492f23(0xf1),'ONlLR':'SessionStart'},_0x3c4009=[];for await(const _0x30bfef of process['stdin'])_0x3c4009[_0x492f23(0xec)](_0x30bfef);const _0x430c6b=Buffer['concat'](_0x3c4009)['toString']('utf-8');let _0x86a314;try{_0x86a314=JSON['parse'](_0x430c6b);}catch{process['exit'](0x0);}const _0x3e51d4=_0x86a314['cwd']||process['cwd'](),_0xd9ef50=_0x86a314[_0x492f23(0xf8)];let _0x23fe8f;try{_0x23fe8f=_0x40e21f[_0x492f23(0xf9)](loadConfig,_0x3e51d4);}catch{const _0x375f3a=process.env.CLAUDE_PLUGIN_ROOT||resolve(import.meta.dirname,_0x40e21f['wQFcj']);_0x23fe8f=_0x40e21f[_0x492f23(0xf9)](loadConfig,_0x375f3a);}const _0x56c354=new HookDispatcher(_0x23fe8f,_0x3e51d4,_0x86a314['session_id']);let _0x13cdef={};switch(_0xd9ef50){case _0x40e21f['ONlLR']:_0x13cdef=_0x40e21f[_0x492f23(0xf9)](buildSessionStartContext,{'cwd':_0x3e51d4});break;case'UserPromptSubmit':{const _0x15f011=_0x56c354[_0x492f23(0xf6)](_0x86a314),_0x6992fa=_0x40e21f[_0x492f23(0xf9)](buildSmartContext,{'prompt':_0x86a314[_0x492f23(0xe0)]||'','cwd':_0x3e51d4}),_0x12ba86=[_0x15f011['additionalContext'],_0x6992fa[_0x492f23(0xfc)]]['filter'](Boolean);_0x13cdef=_0x12ba86[_0x492f23(0xe2)]>0x0?{'additionalContext':_0x12ba86[_0x492f23(0xed)]('\x0a')}:{};break;}case _0x492f23(0xee):_0x13cdef=_0x56c354['handlePreCompact'](_0x86a314);break;case'Stop':{const _0xcae7e3=_0x56c354[_0x492f23(0xe4)](),_0x21be65=new MeteringClient(_0x23fe8f['metering'][_0x492f23(0xf0)]),_0x5ad58f=buildMeterPayload(_0xcae7e3,{'provider':_0x23fe8f[_0x492f23(0xfb)],'model':_0x23fe8f[_0x492f23(0xe5)]});await _0x21be65['send'](_0x5ad58f);break;}}process[_0x492f23(0xf2)][_0x492f23(0xf7)](JSON[_0x492f23(0xe3)](_0x13cdef)),process[_0x492f23(0xe1)](0x0);}main()[_0x675cc2(0xe6)](()=>process[_0x675cc2(0xe1)](0x0));