squeezr-ai 1.46.2 → 1.80.6

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 (119) hide show
  1. package/README.md +189 -315
  2. package/bin/squeezr.js +2535 -2251
  3. package/dist/__tests__/aiRateLimit.test.d.ts +1 -0
  4. package/dist/__tests__/aiRateLimit.test.js +20 -0
  5. package/dist/__tests__/attachmentDedup.test.d.ts +1 -0
  6. package/dist/__tests__/attachmentDedup.test.js +89 -0
  7. package/dist/__tests__/compressibilityProbe.test.d.ts +1 -0
  8. package/dist/__tests__/compressibilityProbe.test.js +45 -0
  9. package/dist/__tests__/compressionGuard.test.d.ts +1 -0
  10. package/dist/__tests__/compressionGuard.test.js +57 -0
  11. package/dist/__tests__/compressor.test.js +104 -51
  12. package/dist/__tests__/diffRead.test.d.ts +1 -0
  13. package/dist/__tests__/diffRead.test.js +83 -0
  14. package/dist/__tests__/glossaryStore.test.d.ts +1 -0
  15. package/dist/__tests__/glossaryStore.test.js +37 -0
  16. package/dist/__tests__/glossarySub.test.d.ts +1 -0
  17. package/dist/__tests__/glossarySub.test.js +162 -0
  18. package/dist/__tests__/imageDedup.test.d.ts +1 -0
  19. package/dist/__tests__/imageDedup.test.js +80 -0
  20. package/dist/__tests__/largeBlock.test.d.ts +1 -0
  21. package/dist/__tests__/largeBlock.test.js +35 -0
  22. package/dist/__tests__/mcpFilter.test.d.ts +1 -0
  23. package/dist/__tests__/mcpFilter.test.js +87 -0
  24. package/dist/__tests__/newFeatures.test.d.ts +1 -0
  25. package/dist/__tests__/newFeatures.test.js +124 -0
  26. package/dist/__tests__/qualityHarness.test.d.ts +1 -0
  27. package/dist/__tests__/qualityHarness.test.js +98 -0
  28. package/dist/__tests__/rateLimitHeaders.test.js +6 -0
  29. package/dist/__tests__/requestCapture.test.d.ts +1 -0
  30. package/dist/__tests__/requestCapture.test.js +37 -0
  31. package/dist/__tests__/skillDedup.test.d.ts +1 -0
  32. package/dist/__tests__/skillDedup.test.js +57 -0
  33. package/dist/__tests__/staleTurns.test.d.ts +1 -0
  34. package/dist/__tests__/staleTurns.test.js +113 -0
  35. package/dist/__tests__/structuredGuard.test.d.ts +1 -0
  36. package/dist/__tests__/structuredGuard.test.js +72 -0
  37. package/dist/__tests__/toolDescComp.test.d.ts +1 -0
  38. package/dist/__tests__/toolDescComp.test.js +157 -0
  39. package/dist/__tests__/toolResultDedup.test.d.ts +1 -0
  40. package/dist/__tests__/toolResultDedup.test.js +40 -0
  41. package/dist/aiRateLimit.d.ts +19 -0
  42. package/dist/aiRateLimit.js +35 -0
  43. package/dist/aiToggle.d.ts +14 -0
  44. package/dist/aiToggle.js +53 -0
  45. package/dist/attachmentCompress.d.ts +9 -0
  46. package/dist/attachmentCompress.js +211 -0
  47. package/dist/attachmentDedup.d.ts +9 -0
  48. package/dist/attachmentDedup.js +89 -0
  49. package/dist/bypass.d.ts +6 -3
  50. package/dist/bypass.js +37 -5
  51. package/dist/cache.d.ts +3 -0
  52. package/dist/cache.js +10 -0
  53. package/dist/circuitBreaker.d.ts +4 -2
  54. package/dist/circuitBreaker.js +6 -3
  55. package/dist/compressibilityProbe.d.ts +8 -0
  56. package/dist/compressibilityProbe.js +47 -0
  57. package/dist/compressionGuard.d.ts +31 -0
  58. package/dist/compressionGuard.js +101 -0
  59. package/dist/compressor.d.ts +51 -1
  60. package/dist/compressor.js +599 -73
  61. package/dist/config.d.ts +21 -1
  62. package/dist/config.js +58 -2
  63. package/dist/dashboard.d.ts +3 -1
  64. package/dist/dashboard.js +2163 -1655
  65. package/dist/diffRead.d.ts +9 -0
  66. package/dist/diffRead.js +149 -0
  67. package/dist/expand.d.ts +2 -0
  68. package/dist/expand.js +6 -0
  69. package/dist/glossaryStore.d.ts +28 -0
  70. package/dist/glossaryStore.js +131 -0
  71. package/dist/glossarySub.d.ts +38 -0
  72. package/dist/glossarySub.js +123 -0
  73. package/dist/history.d.ts +35 -1
  74. package/dist/history.js +31 -5
  75. package/dist/identGlossary.d.ts +20 -0
  76. package/dist/identGlossary.js +215 -0
  77. package/dist/imageDedup.d.ts +12 -0
  78. package/dist/imageDedup.js +98 -0
  79. package/dist/index.js +7 -0
  80. package/dist/limits.d.ts +5 -2
  81. package/dist/limits.js +47 -4
  82. package/dist/logFeed.d.ts +10 -0
  83. package/dist/logFeed.js +42 -0
  84. package/dist/mcpFilter.d.ts +43 -0
  85. package/dist/mcpFilter.js +89 -0
  86. package/dist/mcpToolFilter.d.ts +32 -0
  87. package/dist/mcpToolFilter.js +140 -0
  88. package/dist/probePort.js +5 -1
  89. package/dist/promptCache.d.ts +44 -0
  90. package/dist/promptCache.js +121 -0
  91. package/dist/qualityGovernor.d.ts +11 -0
  92. package/dist/qualityGovernor.js +69 -0
  93. package/dist/requestCapture.d.ts +21 -0
  94. package/dist/requestCapture.js +79 -0
  95. package/dist/semanticRead.d.ts +9 -0
  96. package/dist/semanticRead.js +188 -0
  97. package/dist/server.js +1398 -992
  98. package/dist/sessionCache.js +9 -2
  99. package/dist/skillDedup.d.ts +5 -0
  100. package/dist/skillDedup.js +89 -0
  101. package/dist/staleTurnSummary.d.ts +9 -0
  102. package/dist/staleTurnSummary.js +110 -0
  103. package/dist/staleTurns.d.ts +14 -0
  104. package/dist/staleTurns.js +80 -0
  105. package/dist/stats.d.ts +16 -3
  106. package/dist/stats.js +157 -21
  107. package/dist/stockToolDescs.d.ts +12 -0
  108. package/dist/stockToolDescs.js +69 -0
  109. package/dist/structuredGuard.d.ts +25 -0
  110. package/dist/structuredGuard.js +116 -0
  111. package/dist/systemPrompt.js +6 -2
  112. package/dist/systemSectioning.d.ts +21 -0
  113. package/dist/systemSectioning.js +111 -0
  114. package/dist/toolDescComp.d.ts +30 -0
  115. package/dist/toolDescComp.js +81 -0
  116. package/dist/toolResultDedup.d.ts +9 -0
  117. package/dist/toolResultDedup.js +88 -0
  118. package/package.json +69 -66
  119. package/squeezr.toml +18 -1
@@ -8,6 +8,7 @@ export interface Savings {
8
8
  tool: string;
9
9
  savedChars: number;
10
10
  originalChars: number;
11
+ count?: number;
11
12
  }>;
12
13
  dryRun: boolean;
13
14
  sessionCacheHits: number;
@@ -15,10 +16,59 @@ export interface Savings {
15
16
  dedupSavedChars?: number;
16
17
  aiSavedChars?: number;
17
18
  overheadChars?: number;
19
+ toolDescSavedChars?: number;
20
+ mcpFilterSavedChars?: number;
21
+ staleTurnsSavedChars?: number;
22
+ skillDedupSavedChars?: number;
23
+ syspromptSavedChars?: number;
24
+ localAiCalls?: number;
25
+ localAiSavedChars?: number;
26
+ compressibleOriginalChars?: number;
27
+ nonCachedOriginalChars?: number;
28
+ nonCachedSavedChars?: number;
18
29
  detMs?: number;
19
30
  aiMs?: number;
20
31
  }
21
32
  export declare function getCache(config: Config): CompressionCache;
33
+ export declare const aiUsageCounters: {
34
+ calls: number;
35
+ inputTokens: number;
36
+ outputTokens: number;
37
+ };
38
+ export declare const localAiUsageCounters: {
39
+ calls: number;
40
+ inputTokens: number;
41
+ outputTokens: number;
42
+ };
43
+ export declare const compressionGuardCounters: {
44
+ accepted: number;
45
+ rejected: number;
46
+ retriedOk: number;
47
+ };
48
+ export declare const aiUsageByModel: Record<string, {
49
+ calls: number;
50
+ inputTokens: number;
51
+ outputTokens: number;
52
+ }>;
53
+ export declare const aiUsageToday: {
54
+ date: string;
55
+ cloudCalls: number;
56
+ cloudInputTokens: number;
57
+ cloudOutputTokens: number;
58
+ localCalls: number;
59
+ localInputTokens: number;
60
+ localOutputTokens: number;
61
+ };
62
+ /**
63
+ * True when the Anthropic credential is a Claude Code / Claude Desktop OAuth
64
+ * subscription token (sk-ant-oat...) or any non-`sk-` bearer. A Haiku compression
65
+ * call made with such a token bills against the user's OWN 5h plan quota — it burns
66
+ * the plan instead of saving it. We must NEVER auto-route compression to Haiku on
67
+ * these keys; only an explicit, billed API key (sk-ant-api...) is safe for Haiku.
68
+ */
69
+ export declare function isOAuthSubscriptionKey(apiKey: string): boolean;
70
+ export declare function splitOnLines(text: string, maxChars: number): string[];
71
+ export declare function compressLargeText(text: string, baseUrl: string, model: string, extra?: string): Promise<string>;
22
72
  interface AnthropicMessage {
23
73
  role: string;
24
74
  content: string | Array<{
@@ -52,5 +102,5 @@ interface GeminiContent {
52
102
  }>;
53
103
  }
54
104
  export declare function compressGeminiContents(contents: GeminiContent[], apiKey: string, config: Config): Promise<[GeminiContent[], Savings]>;
55
- export declare function emptySavings(dryRun?: boolean, detSavedChars?: number, dedupSavedChars?: number, detMs?: number): Savings;
105
+ export declare function emptySavings(dryRun?: boolean, detSavedChars?: number, dedupSavedChars?: number, detMs?: number, byTool?: Savings['byTool'], compressibleOriginalChars?: number): Savings;
56
106
  export {};