@blockrun/clawrouter 0.12.101 → 0.12.103

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 (281) hide show
  1. package/dist/cli.d.ts +0 -15
  2. package/dist/cli.js +80069 -273
  3. package/dist/cli.js.map +1 -1
  4. package/dist/index.d.ts +1406 -34
  5. package/dist/index.js +81085 -1075
  6. package/dist/index.js.map +1 -1
  7. package/package.json +1 -1
  8. package/dist/auth.d.ts +0 -82
  9. package/dist/auth.d.ts.map +0 -1
  10. package/dist/auth.js +0 -388
  11. package/dist/auth.js.map +0 -1
  12. package/dist/balance.d.ts +0 -97
  13. package/dist/balance.d.ts.map +0 -1
  14. package/dist/balance.js +0 -157
  15. package/dist/balance.js.map +0 -1
  16. package/dist/cli.d.ts.map +0 -1
  17. package/dist/compression/codebook.d.ts +0 -24
  18. package/dist/compression/codebook.d.ts.map +0 -1
  19. package/dist/compression/codebook.js +0 -119
  20. package/dist/compression/codebook.js.map +0 -1
  21. package/dist/compression/index.d.ts +0 -33
  22. package/dist/compression/index.d.ts.map +0 -1
  23. package/dist/compression/index.js +0 -246
  24. package/dist/compression/index.js.map +0 -1
  25. package/dist/compression/layers/deduplication.d.ts +0 -28
  26. package/dist/compression/layers/deduplication.d.ts.map +0 -1
  27. package/dist/compression/layers/deduplication.js +0 -101
  28. package/dist/compression/layers/deduplication.js.map +0 -1
  29. package/dist/compression/layers/dictionary.d.ts +0 -21
  30. package/dist/compression/layers/dictionary.d.ts.map +0 -1
  31. package/dist/compression/layers/dictionary.js +0 -73
  32. package/dist/compression/layers/dictionary.js.map +0 -1
  33. package/dist/compression/layers/dynamic-codebook.d.ts +0 -26
  34. package/dist/compression/layers/dynamic-codebook.d.ts.map +0 -1
  35. package/dist/compression/layers/dynamic-codebook.js +0 -149
  36. package/dist/compression/layers/dynamic-codebook.js.map +0 -1
  37. package/dist/compression/layers/json-compact.d.ts +0 -23
  38. package/dist/compression/layers/json-compact.d.ts.map +0 -1
  39. package/dist/compression/layers/json-compact.js +0 -79
  40. package/dist/compression/layers/json-compact.js.map +0 -1
  41. package/dist/compression/layers/observation.d.ts +0 -21
  42. package/dist/compression/layers/observation.d.ts.map +0 -1
  43. package/dist/compression/layers/observation.js +0 -130
  44. package/dist/compression/layers/observation.js.map +0 -1
  45. package/dist/compression/layers/paths.d.ts +0 -24
  46. package/dist/compression/layers/paths.d.ts.map +0 -1
  47. package/dist/compression/layers/paths.js +0 -110
  48. package/dist/compression/layers/paths.js.map +0 -1
  49. package/dist/compression/layers/whitespace.d.ts +0 -27
  50. package/dist/compression/layers/whitespace.d.ts.map +0 -1
  51. package/dist/compression/layers/whitespace.js +0 -60
  52. package/dist/compression/layers/whitespace.js.map +0 -1
  53. package/dist/compression/types.d.ts +0 -84
  54. package/dist/compression/types.d.ts.map +0 -1
  55. package/dist/compression/types.js +0 -27
  56. package/dist/compression/types.js.map +0 -1
  57. package/dist/config.d.ts +0 -12
  58. package/dist/config.d.ts.map +0 -1
  59. package/dist/config.js +0 -22
  60. package/dist/config.js.map +0 -1
  61. package/dist/dedup.d.ts +0 -34
  62. package/dist/dedup.d.ts.map +0 -1
  63. package/dist/dedup.js +0 -150
  64. package/dist/dedup.js.map +0 -1
  65. package/dist/doctor.d.ts +0 -8
  66. package/dist/doctor.d.ts.map +0 -1
  67. package/dist/doctor.js +0 -375
  68. package/dist/doctor.js.map +0 -1
  69. package/dist/error-classification.test.d.ts +0 -2
  70. package/dist/error-classification.test.d.ts.map +0 -1
  71. package/dist/error-classification.test.js +0 -59
  72. package/dist/error-classification.test.js.map +0 -1
  73. package/dist/errors.d.ts +0 -54
  74. package/dist/errors.d.ts.map +0 -1
  75. package/dist/errors.js +0 -85
  76. package/dist/errors.js.map +0 -1
  77. package/dist/exclude-models.d.ts +0 -28
  78. package/dist/exclude-models.d.ts.map +0 -1
  79. package/dist/exclude-models.integration.test.d.ts +0 -2
  80. package/dist/exclude-models.integration.test.d.ts.map +0 -1
  81. package/dist/exclude-models.integration.test.js +0 -46
  82. package/dist/exclude-models.integration.test.js.map +0 -1
  83. package/dist/exclude-models.js +0 -70
  84. package/dist/exclude-models.js.map +0 -1
  85. package/dist/exclude-models.test.d.ts +0 -5
  86. package/dist/exclude-models.test.d.ts.map +0 -1
  87. package/dist/exclude-models.test.js +0 -95
  88. package/dist/exclude-models.test.js.map +0 -1
  89. package/dist/fs-read.d.ts +0 -11
  90. package/dist/fs-read.d.ts.map +0 -1
  91. package/dist/fs-read.js +0 -47
  92. package/dist/fs-read.js.map +0 -1
  93. package/dist/index.d.ts.map +0 -1
  94. package/dist/journal.d.ts +0 -67
  95. package/dist/journal.d.ts.map +0 -1
  96. package/dist/journal.js +0 -184
  97. package/dist/journal.js.map +0 -1
  98. package/dist/journal.test.d.ts +0 -2
  99. package/dist/journal.test.d.ts.map +0 -1
  100. package/dist/journal.test.js +0 -201
  101. package/dist/journal.test.js.map +0 -1
  102. package/dist/logger.d.ts +0 -33
  103. package/dist/logger.d.ts.map +0 -1
  104. package/dist/logger.js +0 -35
  105. package/dist/logger.js.map +0 -1
  106. package/dist/models.d.ts +0 -107
  107. package/dist/models.d.ts.map +0 -1
  108. package/dist/models.js +0 -941
  109. package/dist/models.js.map +0 -1
  110. package/dist/models.test.d.ts +0 -2
  111. package/dist/models.test.d.ts.map +0 -1
  112. package/dist/models.test.js +0 -38
  113. package/dist/models.test.js.map +0 -1
  114. package/dist/partners/index.d.ts +0 -8
  115. package/dist/partners/index.d.ts.map +0 -1
  116. package/dist/partners/index.js +0 -6
  117. package/dist/partners/index.js.map +0 -1
  118. package/dist/partners/registry.d.ts +0 -51
  119. package/dist/partners/registry.d.ts.map +0 -1
  120. package/dist/partners/registry.js +0 -256
  121. package/dist/partners/registry.js.map +0 -1
  122. package/dist/partners/tools.d.ts +0 -24
  123. package/dist/partners/tools.d.ts.map +0 -1
  124. package/dist/partners/tools.js +0 -97
  125. package/dist/partners/tools.js.map +0 -1
  126. package/dist/payment-preauth.d.ts +0 -17
  127. package/dist/payment-preauth.d.ts.map +0 -1
  128. package/dist/payment-preauth.js +0 -102
  129. package/dist/payment-preauth.js.map +0 -1
  130. package/dist/provider.d.ts +0 -19
  131. package/dist/provider.d.ts.map +0 -1
  132. package/dist/provider.js +0 -45
  133. package/dist/provider.js.map +0 -1
  134. package/dist/proxy.d.ts +0 -210
  135. package/dist/proxy.d.ts.map +0 -1
  136. package/dist/proxy.debrand.test.d.ts +0 -2
  137. package/dist/proxy.debrand.test.d.ts.map +0 -1
  138. package/dist/proxy.debrand.test.js +0 -101
  139. package/dist/proxy.debrand.test.js.map +0 -1
  140. package/dist/proxy.degraded-response.test.d.ts +0 -2
  141. package/dist/proxy.degraded-response.test.d.ts.map +0 -1
  142. package/dist/proxy.degraded-response.test.js +0 -105
  143. package/dist/proxy.degraded-response.test.js.map +0 -1
  144. package/dist/proxy.image-download.test.d.ts +0 -2
  145. package/dist/proxy.image-download.test.d.ts.map +0 -1
  146. package/dist/proxy.image-download.test.js +0 -92
  147. package/dist/proxy.image-download.test.js.map +0 -1
  148. package/dist/proxy.js +0 -3810
  149. package/dist/proxy.js.map +0 -1
  150. package/dist/proxy.models-endpoint.test.d.ts +0 -2
  151. package/dist/proxy.models-endpoint.test.d.ts.map +0 -1
  152. package/dist/proxy.models-endpoint.test.js +0 -19
  153. package/dist/proxy.models-endpoint.test.js.map +0 -1
  154. package/dist/proxy.multiturn-thinking.test.d.ts +0 -2
  155. package/dist/proxy.multiturn-thinking.test.d.ts.map +0 -1
  156. package/dist/proxy.multiturn-thinking.test.js +0 -82
  157. package/dist/proxy.multiturn-thinking.test.js.map +0 -1
  158. package/dist/proxy.payment-chain-reuse.test.d.ts +0 -2
  159. package/dist/proxy.payment-chain-reuse.test.d.ts.map +0 -1
  160. package/dist/proxy.payment-chain-reuse.test.js +0 -30
  161. package/dist/proxy.payment-chain-reuse.test.js.map +0 -1
  162. package/dist/proxy.solana-resilience.test.d.ts +0 -12
  163. package/dist/proxy.solana-resilience.test.d.ts.map +0 -1
  164. package/dist/proxy.solana-resilience.test.js +0 -39
  165. package/dist/proxy.solana-resilience.test.js.map +0 -1
  166. package/dist/report.d.ts +0 -6
  167. package/dist/report.d.ts.map +0 -1
  168. package/dist/report.js +0 -44
  169. package/dist/report.js.map +0 -1
  170. package/dist/response-cache.advanced.test.d.ts +0 -2
  171. package/dist/response-cache.advanced.test.d.ts.map +0 -1
  172. package/dist/response-cache.advanced.test.js +0 -566
  173. package/dist/response-cache.advanced.test.js.map +0 -1
  174. package/dist/response-cache.d.ts +0 -85
  175. package/dist/response-cache.d.ts.map +0 -1
  176. package/dist/response-cache.edge-cases.test.d.ts +0 -2
  177. package/dist/response-cache.edge-cases.test.d.ts.map +0 -1
  178. package/dist/response-cache.edge-cases.test.js +0 -488
  179. package/dist/response-cache.edge-cases.test.js.map +0 -1
  180. package/dist/response-cache.extreme.test.d.ts +0 -2
  181. package/dist/response-cache.extreme.test.d.ts.map +0 -1
  182. package/dist/response-cache.extreme.test.js +0 -561
  183. package/dist/response-cache.extreme.test.js.map +0 -1
  184. package/dist/response-cache.js +0 -240
  185. package/dist/response-cache.js.map +0 -1
  186. package/dist/response-cache.test.d.ts +0 -2
  187. package/dist/response-cache.test.d.ts.map +0 -1
  188. package/dist/response-cache.test.js +0 -242
  189. package/dist/response-cache.test.js.map +0 -1
  190. package/dist/retry.d.ts +0 -42
  191. package/dist/retry.d.ts.map +0 -1
  192. package/dist/retry.js +0 -99
  193. package/dist/retry.js.map +0 -1
  194. package/dist/router/config.d.ts +0 -11
  195. package/dist/router/config.d.ts.map +0 -1
  196. package/dist/router/config.js +0 -1215
  197. package/dist/router/config.js.map +0 -1
  198. package/dist/router/index.d.ts +0 -18
  199. package/dist/router/index.d.ts.map +0 -1
  200. package/dist/router/index.js +0 -19
  201. package/dist/router/index.js.map +0 -1
  202. package/dist/router/llm-classifier.d.ts +0 -29
  203. package/dist/router/llm-classifier.d.ts.map +0 -1
  204. package/dist/router/llm-classifier.js +0 -99
  205. package/dist/router/llm-classifier.js.map +0 -1
  206. package/dist/router/rules.d.ts +0 -12
  207. package/dist/router/rules.d.ts.map +0 -1
  208. package/dist/router/rules.js +0 -202
  209. package/dist/router/rules.js.map +0 -1
  210. package/dist/router/selector.d.ts +0 -58
  211. package/dist/router/selector.d.ts.map +0 -1
  212. package/dist/router/selector.js +0 -165
  213. package/dist/router/selector.js.map +0 -1
  214. package/dist/router/selector.test.d.ts +0 -2
  215. package/dist/router/selector.test.d.ts.map +0 -1
  216. package/dist/router/selector.test.js +0 -67
  217. package/dist/router/selector.test.js.map +0 -1
  218. package/dist/router/strategy.d.ts +0 -19
  219. package/dist/router/strategy.d.ts.map +0 -1
  220. package/dist/router/strategy.js +0 -138
  221. package/dist/router/strategy.js.map +0 -1
  222. package/dist/router/strategy.test.d.ts +0 -2
  223. package/dist/router/strategy.test.d.ts.map +0 -1
  224. package/dist/router/strategy.test.js +0 -131
  225. package/dist/router/strategy.test.js.map +0 -1
  226. package/dist/router/types.d.ts +0 -127
  227. package/dist/router/types.d.ts.map +0 -1
  228. package/dist/router/types.js +0 -11
  229. package/dist/router/types.js.map +0 -1
  230. package/dist/session.d.ts +0 -124
  231. package/dist/session.d.ts.map +0 -1
  232. package/dist/session.js +0 -256
  233. package/dist/session.js.map +0 -1
  234. package/dist/session.test.d.ts +0 -2
  235. package/dist/session.test.d.ts.map +0 -1
  236. package/dist/session.test.js +0 -163
  237. package/dist/session.test.js.map +0 -1
  238. package/dist/solana-balance.d.ts +0 -48
  239. package/dist/solana-balance.d.ts.map +0 -1
  240. package/dist/solana-balance.js +0 -142
  241. package/dist/solana-balance.js.map +0 -1
  242. package/dist/spend-control.d.ts +0 -112
  243. package/dist/spend-control.d.ts.map +0 -1
  244. package/dist/spend-control.js +0 -278
  245. package/dist/spend-control.js.map +0 -1
  246. package/dist/spend-control.test.d.ts +0 -5
  247. package/dist/spend-control.test.d.ts.map +0 -1
  248. package/dist/spend-control.test.js +0 -210
  249. package/dist/spend-control.test.js.map +0 -1
  250. package/dist/stats.d.ts +0 -64
  251. package/dist/stats.d.ts.map +0 -1
  252. package/dist/stats.js +0 -295
  253. package/dist/stats.js.map +0 -1
  254. package/dist/types.d.ts +0 -150
  255. package/dist/types.d.ts.map +0 -1
  256. package/dist/types.js +0 -9
  257. package/dist/types.js.map +0 -1
  258. package/dist/update-hint.test.d.ts +0 -9
  259. package/dist/update-hint.test.d.ts.map +0 -1
  260. package/dist/update-hint.test.js +0 -156
  261. package/dist/update-hint.test.js.map +0 -1
  262. package/dist/updater.d.ts +0 -10
  263. package/dist/updater.d.ts.map +0 -1
  264. package/dist/updater.js +0 -55
  265. package/dist/updater.js.map +0 -1
  266. package/dist/version.d.ts +0 -3
  267. package/dist/version.d.ts.map +0 -1
  268. package/dist/version.js +0 -16
  269. package/dist/version.js.map +0 -1
  270. package/dist/wallet.d.ts +0 -52
  271. package/dist/wallet.d.ts.map +0 -1
  272. package/dist/wallet.js +0 -94
  273. package/dist/wallet.js.map +0 -1
  274. package/dist/wallet.test.d.ts +0 -6
  275. package/dist/wallet.test.d.ts.map +0 -1
  276. package/dist/wallet.test.js +0 -117
  277. package/dist/wallet.test.js.map +0 -1
  278. package/dist/x402-sdk.test.d.ts +0 -6
  279. package/dist/x402-sdk.test.d.ts.map +0 -1
  280. package/dist/x402-sdk.test.js +0 -161
  281. package/dist/x402-sdk.test.js.map +0 -1
@@ -1,130 +0,0 @@
1
- /**
2
- * L6: Observation Compression (AGGRESSIVE)
3
- *
4
- * Inspired by claw-compactor's 97% compression on tool results.
5
- * Tool call results (especially large ones) are summarized to key info only.
6
- *
7
- * This is the biggest compression win - tool outputs can be 10KB+ but
8
- * only ~200 chars of actual useful information.
9
- */
10
- // Max length for tool results before compression kicks in
11
- const TOOL_RESULT_THRESHOLD = 500;
12
- // Max length to compress tool results down to
13
- const COMPRESSED_RESULT_MAX = 300;
14
- /**
15
- * Extract key information from tool result.
16
- * Keeps: errors, key values, status, first/last important lines.
17
- */
18
- function compressToolResult(content) {
19
- if (!content || content.length <= TOOL_RESULT_THRESHOLD) {
20
- return content;
21
- }
22
- const lines = content
23
- .split("\n")
24
- .map((l) => l.trim())
25
- .filter(Boolean);
26
- // Priority 1: Error messages (always keep)
27
- const errorLines = lines.filter((l) => /error|exception|failed|denied|refused|timeout|invalid/i.test(l) && l.length < 200);
28
- // Priority 2: Status/result lines
29
- const statusLines = lines.filter((l) => /success|complete|created|updated|found|result|status|total|count/i.test(l) && l.length < 150);
30
- // Priority 3: Key JSON fields (extract important values)
31
- const jsonMatches = [];
32
- const jsonPattern = /"(id|name|status|error|message|count|total|url|path)":\s*"?([^",}\n]+)"?/gi;
33
- let match;
34
- while ((match = jsonPattern.exec(content)) !== null) {
35
- jsonMatches.push(`${match[1]}: ${match[2].slice(0, 50)}`);
36
- }
37
- // Priority 4: First and last meaningful lines
38
- const firstLine = lines[0]?.slice(0, 100);
39
- const lastLine = lines.length > 1 ? lines[lines.length - 1]?.slice(0, 100) : "";
40
- // Build compressed observation
41
- const parts = [];
42
- if (errorLines.length > 0) {
43
- parts.push("[ERR] " + errorLines.slice(0, 3).join(" | "));
44
- }
45
- if (statusLines.length > 0) {
46
- parts.push(statusLines.slice(0, 3).join(" | "));
47
- }
48
- if (jsonMatches.length > 0) {
49
- parts.push(jsonMatches.slice(0, 5).join(", "));
50
- }
51
- if (parts.length === 0) {
52
- // Fallback: keep first/last lines with truncation marker
53
- parts.push(firstLine || "");
54
- if (lines.length > 2) {
55
- parts.push(`[...${lines.length - 2} lines...]`);
56
- }
57
- if (lastLine && lastLine !== firstLine) {
58
- parts.push(lastLine);
59
- }
60
- }
61
- let result = parts.join("\n");
62
- // Final length cap
63
- if (result.length > COMPRESSED_RESULT_MAX) {
64
- result = result.slice(0, COMPRESSED_RESULT_MAX - 20) + "\n[...truncated]";
65
- }
66
- return result;
67
- }
68
- /**
69
- * Compress large repeated content blocks.
70
- * Detects when same large block appears multiple times.
71
- */
72
- function deduplicateLargeBlocks(messages) {
73
- const blockHashes = new Map(); // hash -> first occurrence index
74
- let charsSaved = 0;
75
- const result = messages.map((msg, idx) => {
76
- // Only process string content (skip arrays for multimodal messages)
77
- if (!msg.content || typeof msg.content !== "string" || msg.content.length < 500) {
78
- return msg;
79
- }
80
- // Hash first 200 chars as block identifier
81
- const blockKey = msg.content.slice(0, 200);
82
- if (blockHashes.has(blockKey)) {
83
- const firstIdx = blockHashes.get(blockKey);
84
- const original = msg.content;
85
- const compressed = `[See message #${firstIdx + 1} - same content]`;
86
- charsSaved += original.length - compressed.length;
87
- return { ...msg, content: compressed };
88
- }
89
- blockHashes.set(blockKey, idx);
90
- return msg;
91
- });
92
- return { messages: result, charsSaved };
93
- }
94
- /**
95
- * Compress tool results in messages.
96
- */
97
- export function compressObservations(messages) {
98
- let charsSaved = 0;
99
- let observationsCompressed = 0;
100
- // First pass: compress individual tool results
101
- let result = messages.map((msg) => {
102
- // Only compress tool role messages (these are tool call results)
103
- // Only process string content (skip arrays for multimodal messages)
104
- if (msg.role !== "tool" || !msg.content || typeof msg.content !== "string") {
105
- return msg;
106
- }
107
- const original = msg.content;
108
- if (original.length <= TOOL_RESULT_THRESHOLD) {
109
- return msg;
110
- }
111
- const compressed = compressToolResult(original);
112
- const saved = original.length - compressed.length;
113
- if (saved > 50) {
114
- charsSaved += saved;
115
- observationsCompressed++;
116
- return { ...msg, content: compressed };
117
- }
118
- return msg;
119
- });
120
- // Second pass: deduplicate large repeated blocks
121
- const dedupResult = deduplicateLargeBlocks(result);
122
- result = dedupResult.messages;
123
- charsSaved += dedupResult.charsSaved;
124
- return {
125
- messages: result,
126
- charsSaved,
127
- observationsCompressed,
128
- };
129
- }
130
- //# sourceMappingURL=observation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"observation.js","sourceRoot":"","sources":["../../../src/compression/layers/observation.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- /**
2
- * Layer 4: Path Shortening
3
- *
4
- * Detects common filesystem path prefixes and replaces them with short codes.
5
- * Common in coding assistant contexts with repeated file paths.
6
- *
7
- * Safe for LLM: Lossless abbreviation with path map header.
8
- * Expected savings: 1-3%
9
- */
10
- import { NormalizedMessage } from "../types.js";
11
- export interface PathShorteningResult {
12
- messages: NormalizedMessage[];
13
- pathMap: Record<string, string>;
14
- charsSaved: number;
15
- }
16
- /**
17
- * Apply path shortening to all messages.
18
- */
19
- export declare function shortenPaths(messages: NormalizedMessage[]): PathShorteningResult;
20
- /**
21
- * Generate the path map header for the codebook.
22
- */
23
- export declare function generatePathMapHeader(pathMap: Record<string, string>): string;
24
- //# sourceMappingURL=paths.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/compression/layers/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAgDD;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,oBAAoB,CAwDhF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAQ7E"}
@@ -1,110 +0,0 @@
1
- /**
2
- * Layer 4: Path Shortening
3
- *
4
- * Detects common filesystem path prefixes and replaces them with short codes.
5
- * Common in coding assistant contexts with repeated file paths.
6
- *
7
- * Safe for LLM: Lossless abbreviation with path map header.
8
- * Expected savings: 1-3%
9
- */
10
- // Regex to match filesystem paths
11
- const PATH_REGEX = /(?:\/[\w.-]+){3,}/g;
12
- /**
13
- * Extract all paths from messages and find common prefixes.
14
- */
15
- function extractPaths(messages) {
16
- const paths = [];
17
- for (const message of messages) {
18
- // Only process string content (skip arrays for multimodal messages)
19
- if (!message.content || typeof message.content !== "string")
20
- continue;
21
- const matches = message.content.match(PATH_REGEX);
22
- if (matches) {
23
- paths.push(...matches);
24
- }
25
- }
26
- return paths;
27
- }
28
- /**
29
- * Group paths by their common prefixes.
30
- * Returns prefixes that appear at least 3 times.
31
- */
32
- function findFrequentPrefixes(paths) {
33
- const prefixCounts = new Map();
34
- for (const path of paths) {
35
- const parts = path.split("/").filter(Boolean);
36
- // Try prefixes of different lengths
37
- for (let i = 2; i < parts.length; i++) {
38
- const prefix = "/" + parts.slice(0, i).join("/") + "/";
39
- prefixCounts.set(prefix, (prefixCounts.get(prefix) || 0) + 1);
40
- }
41
- }
42
- // Return prefixes that appear 3+ times, sorted by length (longest first)
43
- return Array.from(prefixCounts.entries())
44
- .filter(([, count]) => count >= 3)
45
- .sort((a, b) => b[0].length - a[0].length)
46
- .slice(0, 5) // Max 5 path codes
47
- .map(([prefix]) => prefix);
48
- }
49
- /**
50
- * Apply path shortening to all messages.
51
- */
52
- export function shortenPaths(messages) {
53
- const allPaths = extractPaths(messages);
54
- if (allPaths.length < 5) {
55
- // Not enough paths to benefit from shortening
56
- return {
57
- messages,
58
- pathMap: {},
59
- charsSaved: 0,
60
- };
61
- }
62
- const prefixes = findFrequentPrefixes(allPaths);
63
- if (prefixes.length === 0) {
64
- return {
65
- messages,
66
- pathMap: {},
67
- charsSaved: 0,
68
- };
69
- }
70
- // Create path map
71
- const pathMap = {};
72
- prefixes.forEach((prefix, i) => {
73
- pathMap[`$P${i + 1}`] = prefix;
74
- });
75
- // Replace paths in messages
76
- let charsSaved = 0;
77
- const result = messages.map((message) => {
78
- // Only process string content (skip arrays for multimodal messages)
79
- if (!message.content || typeof message.content !== "string")
80
- return message;
81
- let content = message.content;
82
- const originalLength = content.length;
83
- // Replace prefixes (longest first to avoid partial replacements)
84
- for (const [code, prefix] of Object.entries(pathMap)) {
85
- content = content.split(prefix).join(code + "/");
86
- }
87
- charsSaved += originalLength - content.length;
88
- return {
89
- ...message,
90
- content,
91
- };
92
- });
93
- return {
94
- messages: result,
95
- pathMap,
96
- charsSaved,
97
- };
98
- }
99
- /**
100
- * Generate the path map header for the codebook.
101
- */
102
- export function generatePathMapHeader(pathMap) {
103
- if (Object.keys(pathMap).length === 0)
104
- return "";
105
- const entries = Object.entries(pathMap)
106
- .map(([code, path]) => `${code}=${path}`)
107
- .join(", ");
108
- return `[Paths: ${entries}]`;
109
- }
110
- //# sourceMappingURL=paths.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/compression/layers/paths.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- /**
2
- * Layer 2: Whitespace Normalization
3
- *
4
- * Reduces excessive whitespace without changing semantic meaning.
5
- *
6
- * Safe for LLM: Tokenizers normalize whitespace anyway.
7
- * Expected savings: 3-8%
8
- */
9
- import { NormalizedMessage } from "../types.js";
10
- export interface WhitespaceResult {
11
- messages: NormalizedMessage[];
12
- charsSaved: number;
13
- }
14
- /**
15
- * Normalize whitespace in a string.
16
- *
17
- * - Max 2 consecutive newlines
18
- * - Remove trailing whitespace from lines
19
- * - Normalize tabs to spaces
20
- * - Trim start/end
21
- */
22
- export declare function normalizeWhitespace(content: string): string;
23
- /**
24
- * Apply whitespace normalization to all messages.
25
- */
26
- export declare function normalizeMessagesWhitespace(messages: NormalizedMessage[]): WhitespaceResult;
27
- //# sourceMappingURL=whitespace.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"whitespace.d.ts","sourceRoot":"","sources":["../../../src/compression/layers/whitespace.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAsB3D;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,gBAAgB,CAqB3F"}
@@ -1,60 +0,0 @@
1
- /**
2
- * Layer 2: Whitespace Normalization
3
- *
4
- * Reduces excessive whitespace without changing semantic meaning.
5
- *
6
- * Safe for LLM: Tokenizers normalize whitespace anyway.
7
- * Expected savings: 3-8%
8
- */
9
- /**
10
- * Normalize whitespace in a string.
11
- *
12
- * - Max 2 consecutive newlines
13
- * - Remove trailing whitespace from lines
14
- * - Normalize tabs to spaces
15
- * - Trim start/end
16
- */
17
- export function normalizeWhitespace(content) {
18
- // Defensive type check - content might be array/object for multimodal messages
19
- if (!content || typeof content !== "string")
20
- return content;
21
- return (content
22
- // Normalize line endings
23
- .replace(/\r\n/g, "\n")
24
- .replace(/\r/g, "\n")
25
- // Max 2 consecutive newlines (preserve paragraph breaks)
26
- .replace(/\n{3,}/g, "\n\n")
27
- // Remove trailing whitespace from each line
28
- .replace(/[ \t]+$/gm, "")
29
- // Normalize multiple spaces to single (except at line start for indentation)
30
- .replace(/([^\n]) {2,}/g, "$1 ")
31
- // Reduce excessive indentation (more than 8 spaces → 2 spaces per level)
32
- .replace(/^[ ]{8,}/gm, (match) => " ".repeat(Math.ceil(match.length / 4)))
33
- // Normalize tabs to 2 spaces
34
- .replace(/\t/g, " ")
35
- // Trim
36
- .trim());
37
- }
38
- /**
39
- * Apply whitespace normalization to all messages.
40
- */
41
- export function normalizeMessagesWhitespace(messages) {
42
- let charsSaved = 0;
43
- const result = messages.map((message) => {
44
- // Only process string content (skip arrays for multimodal messages)
45
- if (!message.content || typeof message.content !== "string")
46
- return message;
47
- const originalLength = message.content.length;
48
- const normalizedContent = normalizeWhitespace(message.content);
49
- charsSaved += originalLength - normalizedContent.length;
50
- return {
51
- ...message,
52
- content: normalizedContent,
53
- };
54
- });
55
- return {
56
- messages: result,
57
- charsSaved,
58
- };
59
- }
60
- //# sourceMappingURL=whitespace.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"whitespace.js","sourceRoot":"","sources":["../../../src/compression/layers/whitespace.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,+EAA+E;IAC/E,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAiB,CAAC;IAEtE,OAAO,CACL,OAAO;QACL,yBAAyB;SACxB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;SACtB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;QACrB,yDAAyD;SACxD,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,4CAA4C;SAC3C,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;QACzB,6EAA6E;SAC5E,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC;QAChC,yEAAyE;SACxE,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3E,6BAA6B;SAC5B,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;QACrB,OAAO;SACN,IAAI,EAAE,CACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,QAA6B;IACvE,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACtC,oEAAoE;QACpE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC;QAE5E,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QAC9C,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/D,UAAU,IAAI,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC;QAExD,OAAO;YACL,GAAG,OAAO;YACV,OAAO,EAAE,iBAAiB;SAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ,EAAE,MAAM;QAChB,UAAU;KACX,CAAC;AACJ,CAAC"}
@@ -1,84 +0,0 @@
1
- /**
2
- * LLM-Safe Context Compression Types
3
- *
4
- * Types for the 7-layer compression system that reduces token usage
5
- * while preserving semantic meaning for LLM queries.
6
- */
7
- export interface ContentPart {
8
- type: "text" | "image_url";
9
- text?: string;
10
- image_url?: {
11
- url: string;
12
- detail?: "low" | "high" | "auto";
13
- };
14
- }
15
- export interface NormalizedMessage {
16
- role: "system" | "user" | "assistant" | "tool";
17
- content: string | ContentPart[] | null;
18
- tool_call_id?: string;
19
- tool_calls?: ToolCall[];
20
- name?: string;
21
- }
22
- export interface ToolCall {
23
- id: string;
24
- type: "function";
25
- function: {
26
- name: string;
27
- arguments: string;
28
- };
29
- }
30
- export interface CompressionConfig {
31
- enabled: boolean;
32
- preserveRaw: boolean;
33
- layers: {
34
- deduplication: boolean;
35
- whitespace: boolean;
36
- dictionary: boolean;
37
- paths: boolean;
38
- jsonCompact: boolean;
39
- observation: boolean;
40
- dynamicCodebook: boolean;
41
- };
42
- dictionary: {
43
- maxEntries: number;
44
- minPhraseLength: number;
45
- includeCodebookHeader: boolean;
46
- };
47
- }
48
- export interface CompressionStats {
49
- duplicatesRemoved: number;
50
- whitespaceSavedChars: number;
51
- dictionarySubstitutions: number;
52
- pathsShortened: number;
53
- jsonCompactedChars: number;
54
- observationsCompressed: number;
55
- observationCharsSaved: number;
56
- dynamicSubstitutions: number;
57
- dynamicCharsSaved: number;
58
- }
59
- export interface CompressionResult {
60
- messages: NormalizedMessage[];
61
- originalMessages: NormalizedMessage[];
62
- originalChars: number;
63
- compressedChars: number;
64
- compressionRatio: number;
65
- stats: CompressionStats;
66
- codebook: Record<string, string>;
67
- pathMap: Record<string, string>;
68
- dynamicCodes: Record<string, string>;
69
- }
70
- export interface CompressionLogData {
71
- enabled: boolean;
72
- ratio: number;
73
- original_chars: number;
74
- compressed_chars: number;
75
- stats: {
76
- duplicates_removed: number;
77
- whitespace_saved: number;
78
- dictionary_subs: number;
79
- paths_shortened: number;
80
- json_compacted: number;
81
- };
82
- }
83
- export declare const DEFAULT_COMPRESSION_CONFIG: CompressionConfig;
84
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/compression/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;KAClC,CAAC;CACH;AAID,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAGD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IAGrB,MAAM,EAAE;QACN,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;QACpB,KAAK,EAAE,OAAO,CAAC;QACf,WAAW,EAAE,OAAO,CAAC;QACrB,WAAW,EAAE,OAAO,CAAC;QACrB,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;IAGF,UAAU,EAAE;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;QACxB,qBAAqB,EAAE,OAAO,CAAC;KAChC,CAAC;CACH;AAGD,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,MAAM,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAGD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;IAGtC,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IAGzB,KAAK,EAAE,gBAAgB,CAAC;IAGxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAGD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE;QACL,kBAAkB,EAAE,MAAM,CAAC;QAC3B,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAID,eAAO,MAAM,0BAA0B,EAAE,iBAiBxC,CAAC"}
@@ -1,27 +0,0 @@
1
- /**
2
- * LLM-Safe Context Compression Types
3
- *
4
- * Types for the 7-layer compression system that reduces token usage
5
- * while preserving semantic meaning for LLM queries.
6
- */
7
- // Default configuration - CONSERVATIVE settings for model compatibility
8
- // Only enable layers that don't require the model to decode anything
9
- export const DEFAULT_COMPRESSION_CONFIG = {
10
- enabled: true,
11
- preserveRaw: true,
12
- layers: {
13
- deduplication: true, // Safe: removes duplicate messages
14
- whitespace: true, // Safe: normalizes whitespace
15
- dictionary: false, // DISABLED: requires model to understand codebook
16
- paths: false, // DISABLED: requires model to understand path codes
17
- jsonCompact: true, // Safe: just removes JSON whitespace
18
- observation: false, // DISABLED: may lose important context
19
- dynamicCodebook: false, // DISABLED: requires model to understand codes
20
- },
21
- dictionary: {
22
- maxEntries: 50,
23
- minPhraseLength: 15,
24
- includeCodebookHeader: false, // No codebook header needed
25
- },
26
- };
27
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/compression/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsGH,wEAAwE;AACxE,qEAAqE;AACrE,MAAM,CAAC,MAAM,0BAA0B,GAAsB;IAC3D,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE;QACN,aAAa,EAAE,IAAI,EAAE,mCAAmC;QACxD,UAAU,EAAE,IAAI,EAAE,8BAA8B;QAChD,UAAU,EAAE,KAAK,EAAE,kDAAkD;QACrE,KAAK,EAAE,KAAK,EAAE,oDAAoD;QAClE,WAAW,EAAE,IAAI,EAAE,qCAAqC;QACxD,WAAW,EAAE,KAAK,EAAE,uCAAuC;QAC3D,eAAe,EAAE,KAAK,EAAE,+CAA+C;KACxE;IACD,UAAU,EAAE;QACV,UAAU,EAAE,EAAE;QACd,eAAe,EAAE,EAAE;QACnB,qBAAqB,EAAE,KAAK,EAAE,4BAA4B;KAC3D;CACF,CAAC"}
package/dist/config.d.ts DELETED
@@ -1,12 +0,0 @@
1
- /**
2
- * Configuration Module
3
- *
4
- * Reads environment variables at module load time.
5
- * Separated from network code to avoid security scanner false positives.
6
- */
7
- /**
8
- * Proxy port configuration - resolved once at module load.
9
- * Reads BLOCKRUN_PROXY_PORT env var or defaults to 8402.
10
- */
11
- export declare const PROXY_PORT: number;
12
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;GAGG;AACH,eAAO,MAAM,UAAU,QASnB,CAAC"}
package/dist/config.js DELETED
@@ -1,22 +0,0 @@
1
- /**
2
- * Configuration Module
3
- *
4
- * Reads environment variables at module load time.
5
- * Separated from network code to avoid security scanner false positives.
6
- */
7
- const DEFAULT_PORT = 8402;
8
- /**
9
- * Proxy port configuration - resolved once at module load.
10
- * Reads BLOCKRUN_PROXY_PORT env var or defaults to 8402.
11
- */
12
- export const PROXY_PORT = (() => {
13
- const envPort = process["env"].BLOCKRUN_PROXY_PORT;
14
- if (envPort) {
15
- const parsed = parseInt(envPort, 10);
16
- if (!isNaN(parsed) && parsed > 0 && parsed < 65536) {
17
- return parsed;
18
- }
19
- }
20
- return DEFAULT_PORT;
21
- })();
22
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC;IACnD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;YACnD,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC,EAAE,CAAC"}
package/dist/dedup.d.ts DELETED
@@ -1,34 +0,0 @@
1
- /**
2
- * Request Deduplication
3
- *
4
- * Prevents double-charging when OpenClaw retries a request after timeout.
5
- * Tracks in-flight requests and caches completed responses for a short TTL.
6
- */
7
- export type CachedResponse = {
8
- status: number;
9
- headers: Record<string, string>;
10
- body: Buffer;
11
- completedAt: number;
12
- };
13
- export declare class RequestDeduplicator {
14
- private inflight;
15
- private completed;
16
- private ttlMs;
17
- constructor(ttlMs?: number);
18
- /** Hash request body to create a dedup key. */
19
- static hash(body: Buffer): string;
20
- /** Check if a response is cached for this key. */
21
- getCached(key: string): CachedResponse | undefined;
22
- /** Check if a request with this key is currently in-flight. Returns a promise to wait on. */
23
- getInflight(key: string): Promise<CachedResponse> | undefined;
24
- /** Mark a request as in-flight. */
25
- markInflight(key: string): void;
26
- /** Complete an in-flight request — cache result and notify waiters. */
27
- complete(key: string, result: CachedResponse): void;
28
- /** Remove an in-flight entry on error (don't cache failures).
29
- * Also rejects any waiters so they can retry independently. */
30
- removeInflight(key: string): void;
31
- /** Prune expired completed entries. */
32
- private prune;
33
- }
34
- //# sourceMappingURL=dedup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dedup.d.ts","sourceRoot":"","sources":["../src/dedup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAuDF,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,KAAK,CAAS;gBAEV,KAAK,SAAiB;IAIlC,+CAA+C;IAC/C,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAgBjC,kDAAkD;IAClD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAUlD,6FAA6F;IAC7F,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS;IAQ7D,mCAAmC;IACnC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAM/B,uEAAuE;IACvE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IAiBnD;oEACgE;IAChE,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAsBjC,uCAAuC;IACvC,OAAO,CAAC,KAAK;CAQd"}