context-compress 2026.6.0 → 2026.7.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.
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/README.md +14 -0
- package/dist/bench/quality.d.ts +46 -0
- package/dist/bench/quality.d.ts.map +1 -0
- package/dist/bench/quality.js +118 -0
- package/dist/bench/quality.js.map +1 -0
- package/dist/bench/run.d.ts +2 -0
- package/dist/bench/run.d.ts.map +1 -0
- package/dist/bench/run.js +4 -0
- package/dist/bench/run.js.map +1 -0
- package/dist/cli/filter.d.ts.map +1 -1
- package/dist/cli/filter.js +13 -1
- package/dist/cli/filter.js.map +1 -1
- package/dist/cli/index.js +0 -0
- package/dist/cli/uninstall.d.ts.map +1 -1
- package/dist/cli/uninstall.js +4 -2
- package/dist/cli/uninstall.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +11 -0
- package/dist/config.js.map +1 -1
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +32 -8
- package/dist/executor.js.map +1 -1
- package/dist/format-filter.d.ts +63 -0
- package/dist/format-filter.d.ts.map +1 -0
- package/dist/format-filter.js +331 -0
- package/dist/format-filter.js.map +1 -0
- package/dist/logger.d.ts +4 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +14 -1
- package/dist/logger.js.map +1 -1
- package/dist/runtime/index.d.ts +2 -2
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +37 -20
- package/dist/runtime/index.js.map +1 -1
- package/dist/server.bundle.mjs +479 -110
- package/dist/server.bundle.mjs.map +4 -4
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +5 -2
- package/dist/server.js.map +1 -1
- package/dist/stats.d.ts.map +1 -1
- package/dist/stats.js +19 -1
- package/dist/stats.js.map +1 -1
- package/dist/store.d.ts +1 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +20 -2
- package/dist/store.js.map +1 -1
- package/dist/tools/batch-execute.d.ts.map +1 -1
- package/dist/tools/batch-execute.js +20 -2
- package/dist/tools/batch-execute.js.map +1 -1
- package/dist/util/auto-mode.d.ts +8 -0
- package/dist/util/auto-mode.d.ts.map +1 -1
- package/dist/util/auto-mode.js +40 -26
- package/dist/util/auto-mode.js.map +1 -1
- package/dist/util/fetch-code.d.ts.map +1 -1
- package/dist/util/fetch-code.js +2 -48
- package/dist/util/fetch-code.js.map +1 -1
- package/dist/util/html-to-markdown.d.ts +17 -0
- package/dist/util/html-to-markdown.d.ts.map +1 -0
- package/dist/util/html-to-markdown.js +66 -0
- package/dist/util/html-to-markdown.js.map +1 -0
- package/dist/util/intent-filter.d.ts +12 -3
- package/dist/util/intent-filter.d.ts.map +1 -1
- package/dist/util/intent-filter.js +61 -8
- package/dist/util/intent-filter.js.map +1 -1
- package/dist/util/regret.d.ts +54 -0
- package/dist/util/regret.d.ts.map +1 -0
- package/dist/util/regret.js +107 -0
- package/dist/util/regret.js.map +1 -0
- package/docs/quality-regression-report.md +20 -0
- package/package.json +2 -1
package/dist/executor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format-aware compression.
|
|
3
|
+
*
|
|
4
|
+
* Command-specific filters (filters.ts) only fire when the command is
|
|
5
|
+
* recognized (git, npm, docker, …). A huge amount of large output comes from
|
|
6
|
+
* commands we DON'T recognize — arbitrary tools that emit JSON, NDJSON, or
|
|
7
|
+
* repetitive log lines. This module compresses by *shape of the output* rather
|
|
8
|
+
* than by command name, so it catches that long tail.
|
|
9
|
+
*
|
|
10
|
+
* Design constraint — avoid "action-grammar destruction" (the failure mode of
|
|
11
|
+
* token-level compressors like LLMLingua-2 in agent settings): we never remove
|
|
12
|
+
* or reorder tokens *within* a structural unit. We operate on whole units —
|
|
13
|
+
* minify JSON losslessly, collapse homogeneous array elements, and fold
|
|
14
|
+
* repeated log lines into `template ×count` — and we always keep at least one
|
|
15
|
+
* verbatim exemplar plus every error/warning line intact. The result is either
|
|
16
|
+
* still-valid structured data or a clearly-labelled summary, never a mangled
|
|
17
|
+
* half-token soup that a downstream parser or the model would choke on.
|
|
18
|
+
*/
|
|
19
|
+
import type { FilterMode } from "./filters.js";
|
|
20
|
+
export type OutputFormat = "json" | "ndjson" | "logs" | "plain";
|
|
21
|
+
export interface FormatFilterResult {
|
|
22
|
+
output: string;
|
|
23
|
+
filtered: boolean;
|
|
24
|
+
format: OutputFormat;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Detect the shape of an output buffer. Deliberately cheap and conservative —
|
|
28
|
+
* when in doubt, returns "plain" so nothing is touched.
|
|
29
|
+
*/
|
|
30
|
+
export declare function detectFormat(text: string): OutputFormat;
|
|
31
|
+
/**
|
|
32
|
+
* Replace the *variable* parts of a line with stable placeholders so that
|
|
33
|
+
* structurally-identical lines map to the same template. Order matters:
|
|
34
|
+
* masks that would otherwise swallow more specific patterns run later.
|
|
35
|
+
*/
|
|
36
|
+
export declare function maskVariables(line: string): string;
|
|
37
|
+
/** Lines we never fold away, regardless of repetition; also error-salient lines to surface. */
|
|
38
|
+
export declare const ERROR_LINE: RegExp;
|
|
39
|
+
/**
|
|
40
|
+
* Pull up to `max` distinct error/warning lines from raw output, in order.
|
|
41
|
+
* Used as a safety net so the most task-critical lines survive any summary.
|
|
42
|
+
*/
|
|
43
|
+
export declare function extractErrorLines(text: string, max?: number): string[];
|
|
44
|
+
/**
|
|
45
|
+
* Fold repeated log lines into `template ×count`, preserving first-appearance
|
|
46
|
+
* order and keeping one verbatim exemplar per template. Error/warning lines are
|
|
47
|
+
* always emitted verbatim and never merged.
|
|
48
|
+
*/
|
|
49
|
+
export declare function compressLogs(text: string): FormatFilterResult;
|
|
50
|
+
/** Compress NDJSON: fold structurally-identical records into a schema + count. */
|
|
51
|
+
export declare function compressNdjson(text: string, mode: FilterMode): FormatFilterResult;
|
|
52
|
+
/** Compress a single JSON document. */
|
|
53
|
+
export declare function compressJson(text: string, mode: FilterMode): FormatFilterResult;
|
|
54
|
+
/**
|
|
55
|
+
* Entry point: detect the output's format and apply the matching structural
|
|
56
|
+
* compressor. Returns the input unchanged (filtered:false) when the format is
|
|
57
|
+
* plain, too small to bother, or compression didn't actually shrink it.
|
|
58
|
+
*
|
|
59
|
+
* Conservative mode is a no-op — callers already short-circuit it, but we guard
|
|
60
|
+
* here too so this is safe to call unconditionally.
|
|
61
|
+
*/
|
|
62
|
+
export declare function applyFormatFilter(text: string, mode: FilterMode): FormatFilterResult;
|
|
63
|
+
//# sourceMappingURL=format-filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-filter.d.ts","sourceRoot":"","sources":["../src/format-filter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEhE,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;CACrB;AAaD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CASvD;AA2DD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAyBlD;AAED,+FAA+F;AAC/F,eAAO,MAAM,UAAU,QACwD,CAAC;AAGhF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,MAAM,EAAE,CAWjE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAyC7D;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,kBAAkB,CAsCjF;AAED,uCAAuC;AACvC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,kBAAkB,CAe/E;AAkDD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,kBAAkB,CAkBpF"}
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format-aware compression.
|
|
3
|
+
*
|
|
4
|
+
* Command-specific filters (filters.ts) only fire when the command is
|
|
5
|
+
* recognized (git, npm, docker, …). A huge amount of large output comes from
|
|
6
|
+
* commands we DON'T recognize — arbitrary tools that emit JSON, NDJSON, or
|
|
7
|
+
* repetitive log lines. This module compresses by *shape of the output* rather
|
|
8
|
+
* than by command name, so it catches that long tail.
|
|
9
|
+
*
|
|
10
|
+
* Design constraint — avoid "action-grammar destruction" (the failure mode of
|
|
11
|
+
* token-level compressors like LLMLingua-2 in agent settings): we never remove
|
|
12
|
+
* or reorder tokens *within* a structural unit. We operate on whole units —
|
|
13
|
+
* minify JSON losslessly, collapse homogeneous array elements, and fold
|
|
14
|
+
* repeated log lines into `template ×count` — and we always keep at least one
|
|
15
|
+
* verbatim exemplar plus every error/warning line intact. The result is either
|
|
16
|
+
* still-valid structured data or a clearly-labelled summary, never a mangled
|
|
17
|
+
* half-token soup that a downstream parser or the model would choke on.
|
|
18
|
+
*/
|
|
19
|
+
/** Below this many bytes, structural compression isn't worth the fidelity risk. */
|
|
20
|
+
const MIN_BYTES_JSON = 1_000;
|
|
21
|
+
const MIN_LINES_LOGS = 30;
|
|
22
|
+
/** Homogeneous arrays longer than this get collapsed (aggressive) or flagged (balanced). */
|
|
23
|
+
const ARRAY_COLLAPSE_THRESHOLD = 20;
|
|
24
|
+
const ARRAY_KEEP_HEAD = 3;
|
|
25
|
+
/** String values longer than this are truncated in aggressive mode. */
|
|
26
|
+
const LONG_STRING_LIMIT = 500;
|
|
27
|
+
/**
|
|
28
|
+
* Detect the shape of an output buffer. Deliberately cheap and conservative —
|
|
29
|
+
* when in doubt, returns "plain" so nothing is touched.
|
|
30
|
+
*/
|
|
31
|
+
export function detectFormat(text) {
|
|
32
|
+
const trimmed = text.trim();
|
|
33
|
+
if (!trimmed)
|
|
34
|
+
return "plain";
|
|
35
|
+
if (isWholeJson(trimmed))
|
|
36
|
+
return "json";
|
|
37
|
+
const lines = trimmed.split("\n");
|
|
38
|
+
if (isNdjson(lines))
|
|
39
|
+
return "ndjson";
|
|
40
|
+
if (isLogs(lines))
|
|
41
|
+
return "logs";
|
|
42
|
+
return "plain";
|
|
43
|
+
}
|
|
44
|
+
function isWholeJson(trimmed) {
|
|
45
|
+
const wrapped = (trimmed.startsWith("{") && trimmed.endsWith("}")) ||
|
|
46
|
+
(trimmed.startsWith("[") && trimmed.endsWith("]"));
|
|
47
|
+
return wrapped && tryParse(trimmed);
|
|
48
|
+
}
|
|
49
|
+
/** NDJSON: most non-empty lines independently parse as JSON objects/arrays. */
|
|
50
|
+
function isNdjson(lines) {
|
|
51
|
+
if (lines.length < 3)
|
|
52
|
+
return false;
|
|
53
|
+
let jsonLines = 0;
|
|
54
|
+
let sampled = 0;
|
|
55
|
+
for (const line of lines) {
|
|
56
|
+
const l = line.trim();
|
|
57
|
+
if (!l)
|
|
58
|
+
continue;
|
|
59
|
+
sampled++;
|
|
60
|
+
if (sampled > 50)
|
|
61
|
+
break; // sampling cap — don't parse megabytes
|
|
62
|
+
if ((l.startsWith("{") || l.startsWith("[")) && tryParse(l))
|
|
63
|
+
jsonLines++;
|
|
64
|
+
}
|
|
65
|
+
return sampled > 0 && jsonLines / sampled >= 0.8;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Logs: many lines that (a) look log-like — leading timestamp or level token —
|
|
69
|
+
* and (b) collapse to far fewer templates once variables are masked. Both
|
|
70
|
+
* conditions are required so repetitive *prose* isn't mistaken for logs.
|
|
71
|
+
*/
|
|
72
|
+
function isLogs(lines) {
|
|
73
|
+
if (lines.length < MIN_LINES_LOGS)
|
|
74
|
+
return false;
|
|
75
|
+
const templates = new Set();
|
|
76
|
+
let counted = 0;
|
|
77
|
+
let logLike = 0;
|
|
78
|
+
for (const line of lines) {
|
|
79
|
+
if (!line.trim())
|
|
80
|
+
continue;
|
|
81
|
+
counted++;
|
|
82
|
+
templates.add(maskVariables(line));
|
|
83
|
+
if (LOG_LINE.test(line))
|
|
84
|
+
logLike++;
|
|
85
|
+
if (counted > 200)
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
const repetitive = counted >= MIN_LINES_LOGS && templates.size <= counted * 0.5;
|
|
89
|
+
const structured = counted > 0 && logLike / counted >= 0.5;
|
|
90
|
+
return repetitive && structured;
|
|
91
|
+
}
|
|
92
|
+
/** A line looks log-like if it opens with a timestamp/clock or carries a level token. */
|
|
93
|
+
const LOG_LINE = /^\s*(?:\[?\d{4}-\d{2}-\d{2}|\[?\d{2}:\d{2}:\d{2})|\b(?:TRACE|DEBUG|INFO|WARN(?:ING)?|ERROR|FATAL|PANIC)\b/;
|
|
94
|
+
function tryParse(s) {
|
|
95
|
+
try {
|
|
96
|
+
JSON.parse(s);
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Replace the *variable* parts of a line with stable placeholders so that
|
|
105
|
+
* structurally-identical lines map to the same template. Order matters:
|
|
106
|
+
* masks that would otherwise swallow more specific patterns run later.
|
|
107
|
+
*/
|
|
108
|
+
export function maskVariables(line) {
|
|
109
|
+
return (line
|
|
110
|
+
// ISO-ish timestamps and clock times
|
|
111
|
+
.replace(/\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(?:[.,]\d+)?(?:Z|[+-]\d{2}:?\d{2})?/g, "<TS>")
|
|
112
|
+
.replace(/\b\d{2}:\d{2}:\d{2}(?:[.,]\d+)?\b/g, "<TIME>")
|
|
113
|
+
// UUIDs
|
|
114
|
+
.replace(/\b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\b/g, "<UUID>")
|
|
115
|
+
// Hex blobs / hashes (sha, object ids)
|
|
116
|
+
.replace(/\b0x[0-9a-fA-F]+\b/g, "<HEX>")
|
|
117
|
+
.replace(/\b[0-9a-fA-F]{7,}\b/g, "<HASH>")
|
|
118
|
+
// IPv4 (+ optional port)
|
|
119
|
+
.replace(/\b\d{1,3}(?:\.\d{1,3}){3}(?::\d+)?\b/g, "<IP>")
|
|
120
|
+
// Absolute-ish paths
|
|
121
|
+
.replace(/(?:\/[\w.\-]+){2,}/g, "<PATH>")
|
|
122
|
+
// Quoted strings
|
|
123
|
+
.replace(/"[^"]*"/g, '"<STR>"')
|
|
124
|
+
.replace(/'[^']*'/g, "'<STR>'")
|
|
125
|
+
// Any remaining digit run last (masks unit-suffixed numbers like "13ms"
|
|
126
|
+
// too; the specific patterns above already consumed structured values).
|
|
127
|
+
.replace(/\d+/g, "<N>"));
|
|
128
|
+
}
|
|
129
|
+
/** Lines we never fold away, regardless of repetition; also error-salient lines to surface. */
|
|
130
|
+
export const ERROR_LINE = /\b(error|err|fatal|panic|exception|traceback|warn|warning|failed|failure)\b/i;
|
|
131
|
+
const KEEP_VERBATIM = ERROR_LINE;
|
|
132
|
+
/**
|
|
133
|
+
* Pull up to `max` distinct error/warning lines from raw output, in order.
|
|
134
|
+
* Used as a safety net so the most task-critical lines survive any summary.
|
|
135
|
+
*/
|
|
136
|
+
export function extractErrorLines(text, max = 5) {
|
|
137
|
+
const out = [];
|
|
138
|
+
const seen = new Set();
|
|
139
|
+
for (const line of text.split("\n")) {
|
|
140
|
+
const t = line.trim();
|
|
141
|
+
if (!t || !ERROR_LINE.test(t) || seen.has(t))
|
|
142
|
+
continue;
|
|
143
|
+
seen.add(t);
|
|
144
|
+
out.push(t);
|
|
145
|
+
if (out.length >= max)
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
return out;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Fold repeated log lines into `template ×count`, preserving first-appearance
|
|
152
|
+
* order and keeping one verbatim exemplar per template. Error/warning lines are
|
|
153
|
+
* always emitted verbatim and never merged.
|
|
154
|
+
*/
|
|
155
|
+
export function compressLogs(text) {
|
|
156
|
+
const lines = text.split("\n");
|
|
157
|
+
// Ordered list of groups, each keyed by its masked template.
|
|
158
|
+
const order = [];
|
|
159
|
+
const groups = new Map();
|
|
160
|
+
const verbatim = [];
|
|
161
|
+
lines.forEach((line, index) => {
|
|
162
|
+
if (!line.trim())
|
|
163
|
+
return;
|
|
164
|
+
if (KEEP_VERBATIM.test(line)) {
|
|
165
|
+
verbatim.push({ index, line });
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
const key = maskVariables(line);
|
|
169
|
+
const g = groups.get(key);
|
|
170
|
+
if (g) {
|
|
171
|
+
g.count++;
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
groups.set(key, { first: line, count: 1 });
|
|
175
|
+
order.push(key);
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
const parts = [];
|
|
179
|
+
for (const key of order) {
|
|
180
|
+
const g = groups.get(key);
|
|
181
|
+
if (!g)
|
|
182
|
+
continue;
|
|
183
|
+
if (g.count === 1) {
|
|
184
|
+
parts.push(g.first);
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
parts.push(`${g.first}\n … ×${g.count} similar lines (template: ${truncate(key, 120)})`);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
let out = parts.join("\n");
|
|
191
|
+
if (verbatim.length > 0) {
|
|
192
|
+
out += `\n\n${verbatim.length} error/warning line(s) preserved verbatim:\n`;
|
|
193
|
+
out += verbatim.map((v) => v.line).join("\n");
|
|
194
|
+
}
|
|
195
|
+
return { output: out, filtered: out.length < text.length, format: "logs" };
|
|
196
|
+
}
|
|
197
|
+
/** Compress NDJSON: fold structurally-identical records into a schema + count. */
|
|
198
|
+
export function compressNdjson(text, mode) {
|
|
199
|
+
const lines = text.split("\n").filter((l) => l.trim());
|
|
200
|
+
const shapes = new Map();
|
|
201
|
+
const order = [];
|
|
202
|
+
let parsedAll = true;
|
|
203
|
+
for (const line of lines) {
|
|
204
|
+
let obj;
|
|
205
|
+
try {
|
|
206
|
+
obj = JSON.parse(line);
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
parsedAll = false;
|
|
210
|
+
break;
|
|
211
|
+
}
|
|
212
|
+
const shape = shapeOf(obj);
|
|
213
|
+
const s = shapes.get(shape);
|
|
214
|
+
if (s) {
|
|
215
|
+
s.count++;
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
shapes.set(shape, { first: line, count: 1 });
|
|
219
|
+
order.push(shape);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
if (!parsedAll)
|
|
223
|
+
return { output: text, filtered: false, format: "ndjson" };
|
|
224
|
+
// If every record shares one shape and there are many, summarize hard.
|
|
225
|
+
const parts = [`NDJSON: ${lines.length} records, ${order.length} distinct shape(s).`];
|
|
226
|
+
for (const shape of order) {
|
|
227
|
+
const g = shapes.get(shape);
|
|
228
|
+
if (!g)
|
|
229
|
+
continue;
|
|
230
|
+
const keep = mode === "aggressive" ? 1 : ARRAY_KEEP_HEAD;
|
|
231
|
+
parts.push(`\nshape ${shape} — ${g.count} record(s). Example:`);
|
|
232
|
+
parts.push(minifyJson(g.first, mode));
|
|
233
|
+
if (g.count > keep)
|
|
234
|
+
parts.push(`… (${g.count - 1} more of this shape)`);
|
|
235
|
+
}
|
|
236
|
+
const out = parts.join("\n");
|
|
237
|
+
return { output: out, filtered: out.length < text.length, format: "ndjson" };
|
|
238
|
+
}
|
|
239
|
+
/** Compress a single JSON document. */
|
|
240
|
+
export function compressJson(text, mode) {
|
|
241
|
+
let parsed;
|
|
242
|
+
try {
|
|
243
|
+
parsed = JSON.parse(text);
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
return { output: text, filtered: false, format: "json" };
|
|
247
|
+
}
|
|
248
|
+
// Aggressive: recursively collapse long homogeneous arrays and long strings.
|
|
249
|
+
const value = mode === "aggressive" ? summarizeValue(parsed) : parsed;
|
|
250
|
+
// Balanced: lossless minify. Aggressive: minify the summarized structure.
|
|
251
|
+
const out = JSON.stringify(value);
|
|
252
|
+
// Only claim a win if we actually got smaller.
|
|
253
|
+
if (out.length >= text.length)
|
|
254
|
+
return { output: text, filtered: false, format: "json" };
|
|
255
|
+
return { output: out, filtered: true, format: "json" };
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Recursively summarize a parsed JSON value (aggressive mode only):
|
|
259
|
+
* - arrays longer than the threshold → keep head + `{ "…": "N more items" }`
|
|
260
|
+
* - strings longer than the limit → truncate with a char count
|
|
261
|
+
* Object keys are preserved (they carry structure/meaning).
|
|
262
|
+
*/
|
|
263
|
+
function summarizeValue(value) {
|
|
264
|
+
if (Array.isArray(value)) {
|
|
265
|
+
const mapped = value.slice(0, ARRAY_COLLAPSE_THRESHOLD).map(summarizeValue);
|
|
266
|
+
if (value.length > ARRAY_COLLAPSE_THRESHOLD) {
|
|
267
|
+
mapped.splice(ARRAY_KEEP_HEAD);
|
|
268
|
+
mapped.push({ "…": `${value.length - ARRAY_KEEP_HEAD} more items (search to retrieve)` });
|
|
269
|
+
}
|
|
270
|
+
return mapped;
|
|
271
|
+
}
|
|
272
|
+
if (value && typeof value === "object") {
|
|
273
|
+
const out = {};
|
|
274
|
+
for (const [k, v] of Object.entries(value))
|
|
275
|
+
out[k] = summarizeValue(v);
|
|
276
|
+
return out;
|
|
277
|
+
}
|
|
278
|
+
if (typeof value === "string" && value.length > LONG_STRING_LIMIT) {
|
|
279
|
+
return `${value.slice(0, LONG_STRING_LIMIT)}…(${value.length} chars)`;
|
|
280
|
+
}
|
|
281
|
+
return value;
|
|
282
|
+
}
|
|
283
|
+
/** A stable structural signature of a JSON value (keys + value kinds, not data). */
|
|
284
|
+
function shapeOf(value) {
|
|
285
|
+
if (Array.isArray(value))
|
|
286
|
+
return `[${value.length ? shapeOf(value[0]) : ""}]`;
|
|
287
|
+
if (value && typeof value === "object") {
|
|
288
|
+
return `{${Object.keys(value).sort().join(",")}}`;
|
|
289
|
+
}
|
|
290
|
+
return typeof value;
|
|
291
|
+
}
|
|
292
|
+
function minifyJson(line, mode) {
|
|
293
|
+
try {
|
|
294
|
+
const v = mode === "aggressive" ? summarizeValue(JSON.parse(line)) : JSON.parse(line);
|
|
295
|
+
return JSON.stringify(v);
|
|
296
|
+
}
|
|
297
|
+
catch {
|
|
298
|
+
return line;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
function truncate(s, n) {
|
|
302
|
+
return s.length > n ? `${s.slice(0, n)}…` : s;
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Entry point: detect the output's format and apply the matching structural
|
|
306
|
+
* compressor. Returns the input unchanged (filtered:false) when the format is
|
|
307
|
+
* plain, too small to bother, or compression didn't actually shrink it.
|
|
308
|
+
*
|
|
309
|
+
* Conservative mode is a no-op — callers already short-circuit it, but we guard
|
|
310
|
+
* here too so this is safe to call unconditionally.
|
|
311
|
+
*/
|
|
312
|
+
export function applyFormatFilter(text, mode) {
|
|
313
|
+
if (mode === "conservative")
|
|
314
|
+
return { output: text, filtered: false, format: "plain" };
|
|
315
|
+
const format = detectFormat(text);
|
|
316
|
+
switch (format) {
|
|
317
|
+
case "json":
|
|
318
|
+
if (Buffer.byteLength(text) < MIN_BYTES_JSON)
|
|
319
|
+
return { output: text, filtered: false, format };
|
|
320
|
+
return compressJson(text, mode);
|
|
321
|
+
case "ndjson":
|
|
322
|
+
if (Buffer.byteLength(text) < MIN_BYTES_JSON)
|
|
323
|
+
return { output: text, filtered: false, format };
|
|
324
|
+
return compressNdjson(text, mode);
|
|
325
|
+
case "logs":
|
|
326
|
+
return compressLogs(text);
|
|
327
|
+
default:
|
|
328
|
+
return { output: text, filtered: false, format: "plain" };
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
//# sourceMappingURL=format-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-filter.js","sourceRoot":"","sources":["../src/format-filter.ts"],"names":[],"mappings":"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"}
|
package/dist/logger.d.ts
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
+
/** Inject the debug flag, decoupling the logger from the config singleton. */
|
|
2
|
+
export declare function configureLogger(debugEnabled: boolean): void;
|
|
3
|
+
/** Reset injected state (used by tests). */
|
|
4
|
+
export declare function resetLogger(): void;
|
|
1
5
|
export declare function debug(...args: unknown[]): void;
|
|
2
6
|
//# sourceMappingURL=logger.d.ts.map
|
package/dist/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAOA,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,YAAY,EAAE,OAAO,GAAG,IAAI,CAE3D;AAED,4CAA4C;AAC5C,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED,wBAAgB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAK9C"}
|
package/dist/logger.js
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
import { getConfig } from "./config.js";
|
|
2
|
+
// When set, this takes precedence over the global config singleton. Lets the
|
|
3
|
+
// entrypoint inject the resolved debug flag (`configureLogger(config.debug)`)
|
|
4
|
+
// instead of the logger reaching back into the config singleton on every call.
|
|
5
|
+
let debugOverride = null;
|
|
6
|
+
/** Inject the debug flag, decoupling the logger from the config singleton. */
|
|
7
|
+
export function configureLogger(debugEnabled) {
|
|
8
|
+
debugOverride = debugEnabled;
|
|
9
|
+
}
|
|
10
|
+
/** Reset injected state (used by tests). */
|
|
11
|
+
export function resetLogger() {
|
|
12
|
+
debugOverride = null;
|
|
13
|
+
}
|
|
2
14
|
export function debug(...args) {
|
|
3
|
-
|
|
15
|
+
const enabled = debugOverride ?? getConfig().debug;
|
|
16
|
+
if (enabled) {
|
|
4
17
|
process.stderr.write(`[context-compress] ${args.map(String).join(" ")}\n`);
|
|
5
18
|
}
|
|
6
19
|
}
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,UAAU,KAAK,CAAC,GAAG,IAAe;IACvC,IAAI,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,6EAA6E;AAC7E,8EAA8E;AAC9E,+EAA+E;AAC/E,IAAI,aAAa,GAAmB,IAAI,CAAC;AAEzC,8EAA8E;AAC9E,MAAM,UAAU,eAAe,CAAC,YAAqB;IACpD,aAAa,GAAG,YAAY,CAAC;AAC9B,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,WAAW;IAC1B,aAAa,GAAG,IAAI,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAG,IAAe;IACvC,MAAM,OAAO,GAAG,aAAa,IAAI,SAAS,EAAE,CAAC,KAAK,CAAC;IACnD,IAAI,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC;AACF,CAAC"}
|
package/dist/runtime/index.d.ts
CHANGED
|
@@ -6,9 +6,9 @@ export type RuntimeMap = Map<Language, {
|
|
|
6
6
|
runtime: string;
|
|
7
7
|
}>;
|
|
8
8
|
/**
|
|
9
|
-
* Detect all available runtimes
|
|
9
|
+
* Detect all available runtimes by scanning PATH (no subprocesses spawned).
|
|
10
10
|
*/
|
|
11
|
-
export declare function detectRuntimes():
|
|
11
|
+
export declare function detectRuntimes(): RuntimeMap;
|
|
12
12
|
/**
|
|
13
13
|
* Get a human-readable summary of detected runtimes.
|
|
14
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAelD,QAAA,MAAM,WAAW,EAAE,cAAc,EAYhC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAsCpF;;GAEG;AACH,wBAAgB,cAAc,IAAI,UAAU,CAc3C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAM9D;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAGpD;AAED,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/runtime/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { constants, accessSync } from "node:fs";
|
|
2
|
+
import { delimiter, join } from "node:path";
|
|
3
3
|
import { debug } from "../logger.js";
|
|
4
4
|
// Import all language plugins
|
|
5
5
|
import { elixirPlugin } from "./languages/elixir.js";
|
|
@@ -13,7 +13,6 @@ import { rubyPlugin } from "./languages/ruby.js";
|
|
|
13
13
|
import { rustPlugin } from "./languages/rust.js";
|
|
14
14
|
import { shellPlugin } from "./languages/shell.js";
|
|
15
15
|
import { typescriptPlugin } from "./languages/typescript.js";
|
|
16
|
-
const execAsync = promisify(exec);
|
|
17
16
|
const ALL_PLUGINS = [
|
|
18
17
|
javascriptPlugin,
|
|
19
18
|
typescriptPlugin,
|
|
@@ -27,10 +26,35 @@ const ALL_PLUGINS = [
|
|
|
27
26
|
rPlugin,
|
|
28
27
|
elixirPlugin,
|
|
29
28
|
];
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
const PATH_DIRS = (process.env.PATH ?? "").split(delimiter).filter(Boolean);
|
|
30
|
+
const WIN_EXTS = (process.env.PATHEXT ?? ".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean);
|
|
31
|
+
/**
|
|
32
|
+
* Check whether an executable is on PATH by scanning the filesystem directly.
|
|
33
|
+
*
|
|
34
|
+
* This replaces the previous shell-based `command -v ${cmd}` / `where ${cmd}`,
|
|
35
|
+
* which both interpolated `cmd` into a shell string and spawned one shell per
|
|
36
|
+
* candidate (~19 processes across all plugins). Scanning PATH with `accessSync`
|
|
37
|
+
* spawns nothing and never touches a shell, eliminating both the injection
|
|
38
|
+
* surface and the process-spawn overhead.
|
|
39
|
+
*/
|
|
40
|
+
function commandExists(cmd) {
|
|
41
|
+
// Names with a path separator are resolved relative to cwd, not PATH.
|
|
42
|
+
if (cmd.includes("/") || cmd.includes("\\")) {
|
|
43
|
+
return isExecutable(cmd);
|
|
44
|
+
}
|
|
45
|
+
const exts = process.platform === "win32" ? WIN_EXTS : [""];
|
|
46
|
+
for (const dir of PATH_DIRS) {
|
|
47
|
+
for (const ext of exts) {
|
|
48
|
+
if (isExecutable(join(dir, cmd + ext)))
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
function isExecutable(filePath) {
|
|
32
55
|
try {
|
|
33
|
-
|
|
56
|
+
// On Windows the executable bit is not meaningful; existence is enough.
|
|
57
|
+
accessSync(filePath, process.platform === "win32" ? constants.F_OK : constants.X_OK);
|
|
34
58
|
return true;
|
|
35
59
|
}
|
|
36
60
|
catch {
|
|
@@ -38,25 +62,18 @@ async function commandExists(cmd) {
|
|
|
38
62
|
}
|
|
39
63
|
}
|
|
40
64
|
/**
|
|
41
|
-
* Detect all available runtimes
|
|
65
|
+
* Detect all available runtimes by scanning PATH (no subprocesses spawned).
|
|
42
66
|
*/
|
|
43
|
-
export
|
|
67
|
+
export function detectRuntimes() {
|
|
44
68
|
const map = new Map();
|
|
45
|
-
|
|
46
|
-
const tasks = ALL_PLUGINS.map(async (plugin) => {
|
|
69
|
+
for (const plugin of ALL_PLUGINS) {
|
|
47
70
|
for (const candidate of plugin.runtimeCandidates) {
|
|
48
|
-
if (
|
|
49
|
-
|
|
71
|
+
if (commandExists(candidate)) {
|
|
72
|
+
map.set(plugin.language, { plugin, runtime: candidate });
|
|
73
|
+
debug(`Detected ${plugin.language}: ${candidate}`);
|
|
74
|
+
break;
|
|
50
75
|
}
|
|
51
76
|
}
|
|
52
|
-
return null;
|
|
53
|
-
});
|
|
54
|
-
const results = await Promise.all(tasks);
|
|
55
|
-
for (const result of results) {
|
|
56
|
-
if (result) {
|
|
57
|
-
map.set(result.plugin.language, result);
|
|
58
|
-
debug(`Detected ${result.plugin.language}: ${result.runtime}`);
|
|
59
|
-
}
|
|
60
77
|
}
|
|
61
78
|
return map;
|
|
62
79
|
}
|