toonify-mcp 0.2.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.es.md +270 -0
  2. package/README.id.md +270 -0
  3. package/README.ja.md +270 -0
  4. package/README.md +21 -10
  5. package/README.vi.md +270 -0
  6. package/README.zh-CN.md +270 -0
  7. package/README.zh-TW.md +27 -16
  8. package/dist/metrics/metrics-collector.d.ts +2 -0
  9. package/dist/metrics/metrics-collector.d.ts.map +1 -1
  10. package/dist/metrics/metrics-collector.js +43 -8
  11. package/dist/metrics/metrics-collector.js.map +1 -1
  12. package/dist/optimizer/caching/cache-optimizer.d.ts +53 -0
  13. package/dist/optimizer/caching/cache-optimizer.d.ts.map +1 -0
  14. package/dist/optimizer/caching/cache-optimizer.js +176 -0
  15. package/dist/optimizer/caching/cache-optimizer.js.map +1 -0
  16. package/dist/optimizer/caching/cache-strategies.d.ts +19 -0
  17. package/dist/optimizer/caching/cache-strategies.d.ts.map +1 -0
  18. package/dist/optimizer/caching/cache-strategies.js +62 -0
  19. package/dist/optimizer/caching/cache-strategies.js.map +1 -0
  20. package/dist/optimizer/caching/cache-types.d.ts +36 -0
  21. package/dist/optimizer/caching/cache-types.d.ts.map +1 -0
  22. package/dist/optimizer/caching/cache-types.js +5 -0
  23. package/dist/optimizer/caching/cache-types.js.map +1 -0
  24. package/dist/optimizer/caching/index.d.ts +7 -0
  25. package/dist/optimizer/caching/index.d.ts.map +1 -0
  26. package/dist/optimizer/caching/index.js +7 -0
  27. package/dist/optimizer/caching/index.js.map +1 -0
  28. package/dist/optimizer/multilingual/index.d.ts +7 -0
  29. package/dist/optimizer/multilingual/index.d.ts.map +1 -0
  30. package/dist/optimizer/multilingual/index.js +7 -0
  31. package/dist/optimizer/multilingual/index.js.map +1 -0
  32. package/dist/optimizer/multilingual/language-detector.d.ts +43 -0
  33. package/dist/optimizer/multilingual/language-detector.d.ts.map +1 -0
  34. package/dist/optimizer/multilingual/language-detector.js +161 -0
  35. package/dist/optimizer/multilingual/language-detector.js.map +1 -0
  36. package/dist/optimizer/multilingual/language-profiles.d.ts +34 -0
  37. package/dist/optimizer/multilingual/language-profiles.d.ts.map +1 -0
  38. package/dist/optimizer/multilingual/language-profiles.js +196 -0
  39. package/dist/optimizer/multilingual/language-profiles.js.map +1 -0
  40. package/dist/optimizer/multilingual/tokenizer-adapter.d.ts +47 -0
  41. package/dist/optimizer/multilingual/tokenizer-adapter.d.ts.map +1 -0
  42. package/dist/optimizer/multilingual/tokenizer-adapter.js +96 -0
  43. package/dist/optimizer/multilingual/tokenizer-adapter.js.map +1 -0
  44. package/dist/optimizer/token-optimizer.d.ts +11 -1
  45. package/dist/optimizer/token-optimizer.d.ts.map +1 -1
  46. package/dist/optimizer/token-optimizer.js +49 -8
  47. package/dist/optimizer/token-optimizer.js.map +1 -1
  48. package/dist/optimizer/types.d.ts +15 -0
  49. package/dist/optimizer/types.d.ts.map +1 -1
  50. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language-profiles.js","sourceRoot":"","sources":["../../../src/optimizer/multilingual/language-profiles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Tokenizer adapter with multilingual support
3
+ */
4
+ import type { LanguageProfile } from './language-profiles.js';
5
+ export interface TokenEstimate {
6
+ tokens: number;
7
+ language: LanguageProfile;
8
+ confidence: number;
9
+ baseTokens: number;
10
+ multiplier: number;
11
+ }
12
+ export declare class MultilingualTokenizer {
13
+ private baseTokenizer;
14
+ private languageDetector;
15
+ private cacheEnabled;
16
+ private cache;
17
+ constructor(model?: string, cacheEnabled?: boolean);
18
+ /**
19
+ * Count tokens with language awareness
20
+ */
21
+ encode(text: string): TokenEstimate;
22
+ /**
23
+ * Simple token count (just returns number for compatibility)
24
+ */
25
+ count(text: string): number;
26
+ /**
27
+ * Get base tokens without language adjustment
28
+ */
29
+ countBase(text: string): number;
30
+ /**
31
+ * Analyze language distribution in text
32
+ */
33
+ analyze(text: string): {
34
+ estimate: TokenEstimate;
35
+ allLanguages: LanguageProfile[];
36
+ isMixed: boolean;
37
+ };
38
+ /**
39
+ * Clear token cache
40
+ */
41
+ clearCache(): void;
42
+ /**
43
+ * Free tokenizer resources
44
+ */
45
+ free(): void;
46
+ }
47
+ //# sourceMappingURL=tokenizer-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizer-adapter.d.ts","sourceRoot":"","sources":["../../../src/optimizer/multilingual/tokenizer-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,aAAa,CAAW;IAChC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,KAAK,CAA6B;gBAGxC,KAAK,GAAE,MAAgB,EACvB,YAAY,GAAE,OAAc;IAQ9B;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAuCnC;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI3B;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI/B;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG;QACrB,QAAQ,EAAE,aAAa,CAAC;QACxB,YAAY,EAAE,eAAe,EAAE,CAAC;QAChC,OAAO,EAAE,OAAO,CAAC;KAClB;IAiBD;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,IAAI,IAAI,IAAI;CAIb"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Tokenizer adapter with multilingual support
3
+ */
4
+ import { encoding_for_model } from 'tiktoken';
5
+ import { LanguageDetector } from './language-detector.js';
6
+ export class MultilingualTokenizer {
7
+ baseTokenizer;
8
+ languageDetector;
9
+ cacheEnabled;
10
+ cache;
11
+ constructor(model = 'gpt-4', cacheEnabled = true) {
12
+ this.baseTokenizer = encoding_for_model(model);
13
+ this.languageDetector = new LanguageDetector();
14
+ this.cacheEnabled = cacheEnabled;
15
+ this.cache = new Map();
16
+ }
17
+ /**
18
+ * Count tokens with language awareness
19
+ */
20
+ encode(text) {
21
+ // Check cache first
22
+ if (this.cacheEnabled && this.cache.has(text)) {
23
+ return this.cache.get(text);
24
+ }
25
+ // Get base token count
26
+ const baseTokens = this.baseTokenizer.encode(text).length;
27
+ // Detect language
28
+ const detection = this.languageDetector.detect(text);
29
+ // Apply language multiplier
30
+ const multiplier = detection.language.tokenMultiplier;
31
+ const adjustedTokens = Math.ceil(baseTokens * multiplier);
32
+ const estimate = {
33
+ tokens: adjustedTokens,
34
+ language: detection.language,
35
+ confidence: detection.confidence,
36
+ baseTokens,
37
+ multiplier
38
+ };
39
+ // Cache result
40
+ if (this.cacheEnabled) {
41
+ // Limit cache size to prevent memory issues
42
+ if (this.cache.size > 1000) {
43
+ const firstKey = this.cache.keys().next().value;
44
+ if (firstKey !== undefined) {
45
+ this.cache.delete(firstKey);
46
+ }
47
+ }
48
+ this.cache.set(text, estimate);
49
+ }
50
+ return estimate;
51
+ }
52
+ /**
53
+ * Simple token count (just returns number for compatibility)
54
+ */
55
+ count(text) {
56
+ return this.encode(text).tokens;
57
+ }
58
+ /**
59
+ * Get base tokens without language adjustment
60
+ */
61
+ countBase(text) {
62
+ return this.baseTokenizer.encode(text).length;
63
+ }
64
+ /**
65
+ * Analyze language distribution in text
66
+ */
67
+ analyze(text) {
68
+ const analysis = this.languageDetector.analyze(text);
69
+ const baseTokens = this.baseTokenizer.encode(text).length;
70
+ return {
71
+ estimate: {
72
+ tokens: Math.ceil(baseTokens * analysis.estimatedMultiplier),
73
+ language: analysis.primary.language,
74
+ confidence: analysis.primary.confidence,
75
+ baseTokens,
76
+ multiplier: analysis.estimatedMultiplier
77
+ },
78
+ allLanguages: analysis.all,
79
+ isMixed: analysis.isMixed
80
+ };
81
+ }
82
+ /**
83
+ * Clear token cache
84
+ */
85
+ clearCache() {
86
+ this.cache.clear();
87
+ }
88
+ /**
89
+ * Free tokenizer resources
90
+ */
91
+ free() {
92
+ this.baseTokenizer.free();
93
+ this.cache.clear();
94
+ }
95
+ }
96
+ //# sourceMappingURL=tokenizer-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizer-adapter.js","sourceRoot":"","sources":["../../../src/optimizer/multilingual/tokenizer-adapter.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,11 @@
2
2
  * TokenOptimizer: Core optimization logic using Toonify
3
3
  */
4
4
  import type { OptimizationResult, ToolMetadata, OptimizationConfig } from './types.js';
5
+ import { CacheOptimizer } from './caching/index.js';
5
6
  export declare class TokenOptimizer {
6
7
  private config;
7
8
  private tokenEncoder;
9
+ private cacheOptimizer;
8
10
  constructor(config?: Partial<OptimizationConfig>);
9
11
  /**
10
12
  * Main optimization method
@@ -23,12 +25,20 @@ export declare class TokenOptimizer {
23
25
  */
24
26
  private parseSimpleCSV;
25
27
  /**
26
- * Count tokens in text
28
+ * Count tokens in text with language awareness
27
29
  */
28
30
  private countTokens;
31
+ /**
32
+ * Get detailed token estimate with language info
33
+ */
34
+ private getTokenEstimate;
29
35
  /**
30
36
  * Check if tool should be skipped
31
37
  */
32
38
  private shouldSkipTool;
39
+ /**
40
+ * Get cache optimizer instance for external access
41
+ */
42
+ getCacheOptimizer(): CacheOptimizer;
33
43
  }
34
44
  //# sourceMappingURL=token-optimizer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-optimizer.d.ts","sourceRoot":"","sources":["../../src/optimizer/token-optimizer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EAEZ,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,YAAY,CAAC;gBAET,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM;IAcpD;;OAEG;IACG,QAAQ,CACZ,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,kBAAkB,CAAC;IA2F9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA4B5B;;OAEG;IACH,OAAO,CAAC,YAAY;IAiBpB;;OAEG;IACH,OAAO,CAAC,cAAc;IActB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,cAAc;CAMvB"}
1
+ {"version":3,"file":"token-optimizer.d.ts","sourceRoot":"","sources":["../../src/optimizer/token-optimizer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EAEZ,kBAAkB,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,cAAc,CAAiB;gBAE3B,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM;IA4BpD;;OAEG;IACG,QAAQ,CACZ,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,kBAAkB,CAAC;IA8G9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA4B5B;;OAEG;IACH,OAAO,CAAC,YAAY;IAiBpB;;OAEG;IACH,OAAO,CAAC,cAAc;IActB;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IACH,iBAAiB,IAAI,cAAc;CAGpC"}
@@ -2,11 +2,13 @@
2
2
  * TokenOptimizer: Core optimization logic using Toonify
3
3
  */
4
4
  import { encode as toonEncode } from '@toon-format/toon';
5
- import { encoding_for_model } from 'tiktoken';
6
5
  import yaml from 'yaml';
6
+ import { CacheOptimizer } from './caching/index.js';
7
+ import { MultilingualTokenizer } from './multilingual/index.js';
7
8
  export class TokenOptimizer {
8
9
  config;
9
10
  tokenEncoder;
11
+ cacheOptimizer;
10
12
  constructor(config = {}) {
11
13
  this.config = {
12
14
  enabled: true,
@@ -14,10 +16,23 @@ export class TokenOptimizer {
14
16
  minSavingsThreshold: 30,
15
17
  maxProcessingTime: 50,
16
18
  skipToolPatterns: [],
19
+ caching: {
20
+ enabled: true,
21
+ provider: 'auto',
22
+ ttl: '1hour',
23
+ cacheStaticPrompts: true,
24
+ minCacheableTokens: 1024
25
+ },
26
+ multilingual: {
27
+ enabled: true,
28
+ defaultLanguage: 'en'
29
+ },
17
30
  ...config
18
31
  };
19
- // Use Claude tokenizer
20
- this.tokenEncoder = encoding_for_model('gpt-4');
32
+ // v0.3.0: Use multilingual tokenizer
33
+ this.tokenEncoder = new MultilingualTokenizer('gpt-4', true);
34
+ // Initialize cache optimizer
35
+ this.cacheOptimizer = new CacheOptimizer(this.config.caching);
21
36
  }
22
37
  /**
23
38
  * Main optimization method
@@ -80,17 +95,28 @@ export class TokenOptimizer {
80
95
  reason: `Processing timeout: ${elapsed}ms`
81
96
  };
82
97
  }
98
+ // v0.3.0: Wrap with caching structure
99
+ const cachedContent = this.cacheOptimizer.wrapWithCaching(toonContent, metadata?.toolName || 'unknown', structuredData.type, originalTokens, optimizedTokens);
100
+ // Calculate additional savings from caching
101
+ // Assume 90% cache hit rate after first request
102
+ const cacheSavings = cachedContent.cacheBreakpoint ?
103
+ Math.floor(tokenSavings * 0.9) : 0;
83
104
  return {
84
105
  optimized: true,
85
106
  originalContent: content,
86
- optimizedContent: toonContent,
107
+ optimizedContent: cachedContent.cacheBreakpoint ?
108
+ cachedContent.staticPrefix + cachedContent.dynamicContent :
109
+ cachedContent.dynamicContent,
87
110
  originalTokens,
88
111
  optimizedTokens,
89
112
  savings: {
90
113
  tokens: tokenSavings,
91
- percentage: savingsPercentage
114
+ percentage: savingsPercentage,
115
+ withCaching: cacheSavings
92
116
  },
93
- format: structuredData.type
117
+ format: structuredData.type,
118
+ cachedContent,
119
+ cacheMetrics: this.cacheOptimizer.getMetrics()
94
120
  };
95
121
  }
96
122
  catch (error) {
@@ -168,10 +194,19 @@ export class TokenOptimizer {
168
194
  });
169
195
  }
170
196
  /**
171
- * Count tokens in text
197
+ * Count tokens in text with language awareness
172
198
  */
173
199
  countTokens(text) {
174
- return this.tokenEncoder.encode(text).length;
200
+ if (!this.config.multilingual?.enabled) {
201
+ return this.tokenEncoder.countBase(text);
202
+ }
203
+ return this.tokenEncoder.count(text);
204
+ }
205
+ /**
206
+ * Get detailed token estimate with language info
207
+ */
208
+ getTokenEstimate(text) {
209
+ return this.tokenEncoder.encode(text);
175
210
  }
176
211
  /**
177
212
  * Check if tool should be skipped
@@ -182,5 +217,11 @@ export class TokenOptimizer {
182
217
  return regex.test(toolName);
183
218
  }) ?? false;
184
219
  }
220
+ /**
221
+ * Get cache optimizer instance for external access
222
+ */
223
+ getCacheOptimizer() {
224
+ return this.cacheOptimizer;
225
+ }
185
226
  }
186
227
  //# sourceMappingURL=token-optimizer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-optimizer.js","sourceRoot":"","sources":["../../src/optimizer/token-optimizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-optimizer.js","sourceRoot":"","sources":["../../src/optimizer/token-optimizer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,UAAU,EAAwB,MAAM,mBAAmB,CAAC;AAC/E,OAAO,IAAI,MAAM,MAAM,CAAC;AAOxB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,OAAO,cAAc;IACjB,MAAM,CAAqB;IAC3B,YAAY,CAAwB;IACpC,cAAc,CAAiB;IAEvC,YAAY,SAAsC,EAAE;QAClD,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,IAAI;YACb,kBAAkB,EAAE,EAAE;YACtB,mBAAmB,EAAE,EAAE;YACvB,iBAAiB,EAAE,EAAE;YACrB,gBAAgB,EAAE,EAAE;YACpB,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,MAAM;gBAChB,GAAG,EAAE,OAAO;gBACZ,kBAAkB,EAAE,IAAI;gBACxB,kBAAkB,EAAE,IAAI;aACzB;YACD,YAAY,EAAE;gBACZ,OAAO,EAAE,IAAI;gBACb,eAAe,EAAE,IAAI;aACtB;YACD,GAAG,MAAM;SACV,CAAC;QAEF,qCAAqC;QACrC,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAE7D,6BAA6B;QAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CACZ,OAAe,EACf,QAAuB;QAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,oDAAoD;QACpD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACjD,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;gBACzC,MAAM,EAAE,mBAAmB;aAC5B,CAAC;QACJ,CAAC;QAED,qCAAqC;QACrC,IAAI,QAAQ,EAAE,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjE,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;gBACzC,MAAM,EAAE,QAAQ,QAAQ,CAAC,QAAQ,eAAe;aACjD,CAAC;QACJ,CAAC;QAED,yBAAyB;QACzB,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;gBACzC,MAAM,EAAE,qBAAqB;aAC9B,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,yBAAyB;YACzB,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAEpD,eAAe;YACf,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAEtD,oBAAoB;YACpB,MAAM,YAAY,GAAG,cAAc,GAAG,eAAe,CAAC;YACtD,MAAM,iBAAiB,GAAG,CAAC,YAAY,GAAG,cAAc,CAAC,GAAG,GAAG,CAAC;YAEhE,uBAAuB;YACvB,IAAI,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;gBACxD,OAAO;oBACL,SAAS,EAAE,KAAK;oBAChB,eAAe,EAAE,OAAO;oBACxB,cAAc;oBACd,MAAM,EAAE,oBAAoB,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;iBAC5D,CAAC;YACJ,CAAC;YAED,wBAAwB;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACvC,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBAC5C,OAAO;oBACL,SAAS,EAAE,KAAK;oBAChB,eAAe,EAAE,OAAO;oBACxB,cAAc;oBACd,MAAM,EAAE,uBAAuB,OAAO,IAAI;iBAC3C,CAAC;YACJ,CAAC;YAED,sCAAsC;YACtC,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CACvD,WAAW,EACX,QAAQ,EAAE,QAAQ,IAAI,SAAS,EAC/B,cAAc,CAAC,IAAI,EACnB,cAAc,EACd,eAAe,CAChB,CAAC;YAEF,4CAA4C;YAC5C,gDAAgD;YAChD,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;gBAClD,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAErC,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,eAAe,EAAE,OAAO;gBACxB,gBAAgB,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;oBAC/C,aAAa,CAAC,YAAY,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;oBAC3D,aAAa,CAAC,cAAc;gBAC9B,cAAc;gBACd,eAAe;gBACf,OAAO,EAAE;oBACP,MAAM,EAAE,YAAY;oBACpB,UAAU,EAAE,iBAAiB;oBAC7B,WAAW,EAAE,YAAY;iBAC1B;gBACD,MAAM,EAAE,cAAc,CAAC,IAAI;gBAC3B,aAAa;gBACb,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;aAC/C,CAAC;QAEJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,2BAA2B;YAC3B,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;gBACzC,MAAM,EAAE,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE;aACvE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,OAAe;QAC1C,iBAAiB;QACjB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;YACjD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAEV,WAAW;QACX,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;YACjD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAEV,6BAA6B;QAC7B,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;gBAC1C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;YAChD,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,OAAe;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAEnC,MAAM,eAAe,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAC5D,IAAI,eAAe,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAExC,+CAA+C;QAC/C,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACnD,IAAI,MAAM,KAAK,eAAe;gBAAE,aAAa,EAAE,CAAC;QAClD,CAAC;QAED,OAAO,aAAa,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,OAAe;QACpC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAEvD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAClD,MAAM,GAAG,GAAQ,EAAE,CAAC;YACpB,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,IAAY;QAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,IAAY;QACnC,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,QAAgB;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YAClD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;YAClC,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC,CAAC,IAAI,KAAK,CAAC;IACd,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;CACF"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Type definitions for token optimization
3
3
  */
4
+ import type { CacheConfig, CachedContent, CacheMetrics } from './caching/cache-types.js';
4
5
  export interface OptimizationResult {
5
6
  optimized: boolean;
6
7
  originalContent: string;
@@ -10,14 +11,18 @@ export interface OptimizationResult {
10
11
  savings?: {
11
12
  tokens: number;
12
13
  percentage: number;
14
+ withCaching?: number;
13
15
  };
14
16
  format?: 'json' | 'csv' | 'yaml' | 'unknown';
15
17
  reason?: string;
18
+ cachedContent?: CachedContent;
19
+ cacheMetrics?: CacheMetrics;
16
20
  }
17
21
  export interface ToolMetadata {
18
22
  toolName: string;
19
23
  contentType?: string;
20
24
  size: number;
25
+ modelId?: string;
21
26
  }
22
27
  export interface StructuredData {
23
28
  type: 'json' | 'csv' | 'yaml';
@@ -30,6 +35,11 @@ export interface OptimizationConfig {
30
35
  minSavingsThreshold: number;
31
36
  maxProcessingTime: number;
32
37
  skipToolPatterns?: string[];
38
+ caching?: CacheConfig;
39
+ multilingual?: {
40
+ enabled: boolean;
41
+ defaultLanguage: string;
42
+ };
33
43
  }
34
44
  export interface TokenStats {
35
45
  totalRequests: number;
@@ -38,5 +48,10 @@ export interface TokenStats {
38
48
  tokensAfterOptimization: number;
39
49
  totalSavings: number;
40
50
  averageSavingsPercentage: number;
51
+ cacheHits?: number;
52
+ cacheMisses?: number;
53
+ cacheHitRate?: number;
54
+ estimatedCacheSavings?: number;
41
55
  }
56
+ export type { CacheConfig, CachedContent, CacheMetrics } from './caching/cache-types.js';
42
57
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/optimizer/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IAC9B,IAAI,EAAE,GAAG,CAAC;IACV,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB,EAAE,MAAM,CAAC;CAClC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/optimizer/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEzF,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IAC9B,IAAI,EAAE,GAAG,CAAC;IACV,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB,EAAE,MAAM,CAAC;IAEjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAGD,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "toonify-mcp",
3
- "version": "0.2.3",
4
- "description": "MCP server + Claude Code Plugin for TOON format token optimization. Automatic 60%+ token reduction on JSON/CSV/YAML data via PostToolUse hook interception.",
3
+ "version": "0.3.0",
4
+ "description": "MCP server + Claude Code Plugin for TOON format token optimization. Reduces token usage by 30-65% (typically 50-55%) on JSON/CSV/YAML data via multilingual-aware optimization.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "bin": {