pi-agent-flow 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/agents/audit.md +3 -0
  2. package/agents/build.md +3 -0
  3. package/agents/craft.md +3 -0
  4. package/agents/debug.md +3 -0
  5. package/agents/ideas.md +3 -0
  6. package/agents/scout.md +5 -0
  7. package/dist/batch/batch-bash.d.ts.map +1 -1
  8. package/dist/batch/batch-bash.js +27 -4
  9. package/dist/batch/batch-bash.js.map +1 -1
  10. package/dist/batch/constants.d.ts +12 -0
  11. package/dist/batch/constants.d.ts.map +1 -1
  12. package/dist/batch/constants.js +46 -0
  13. package/dist/batch/constants.js.map +1 -1
  14. package/dist/batch/execute.d.ts.map +1 -1
  15. package/dist/batch/execute.js +117 -4
  16. package/dist/batch/execute.js.map +1 -1
  17. package/dist/batch/shell-compress.d.ts +25 -0
  18. package/dist/batch/shell-compress.d.ts.map +1 -0
  19. package/dist/batch/shell-compress.js +602 -0
  20. package/dist/batch/shell-compress.js.map +1 -0
  21. package/dist/batch/symbols.d.ts.map +1 -1
  22. package/dist/batch/symbols.js +12 -7
  23. package/dist/batch/symbols.js.map +1 -1
  24. package/dist/config/config.d.ts +5 -0
  25. package/dist/config/config.d.ts.map +1 -1
  26. package/dist/config/config.js +63 -0
  27. package/dist/config/config.js.map +1 -1
  28. package/dist/config/models.d.ts +2 -0
  29. package/dist/config/models.d.ts.map +1 -0
  30. package/dist/config/models.js +49 -0
  31. package/dist/config/models.js.map +1 -0
  32. package/dist/config/settings-resolver.js +2 -2
  33. package/dist/config/settings-resolver.js.map +1 -1
  34. package/dist/core/agents.js +2 -2
  35. package/dist/core/agents.js.map +1 -1
  36. package/dist/core/delegation.d.ts +1 -1
  37. package/dist/core/delegation.d.ts.map +1 -1
  38. package/dist/core/delegation.js +6 -13
  39. package/dist/core/delegation.js.map +1 -1
  40. package/dist/core/executor.d.ts +7 -0
  41. package/dist/core/executor.d.ts.map +1 -1
  42. package/dist/core/executor.js +5 -1
  43. package/dist/core/executor.js.map +1 -1
  44. package/dist/core/flow.d.ts +9 -0
  45. package/dist/core/flow.d.ts.map +1 -1
  46. package/dist/core/flow.js +24 -28
  47. package/dist/core/flow.js.map +1 -1
  48. package/dist/core/session-mode.d.ts +1 -1
  49. package/dist/core/session-mode.d.ts.map +1 -1
  50. package/dist/core/session-mode.js +2 -1
  51. package/dist/core/session-mode.js.map +1 -1
  52. package/dist/flow/auto-warp.d.ts +12 -0
  53. package/dist/flow/auto-warp.d.ts.map +1 -0
  54. package/dist/flow/auto-warp.js +29 -0
  55. package/dist/flow/auto-warp.js.map +1 -0
  56. package/dist/flow/command.d.ts.map +1 -1
  57. package/dist/flow/command.js +7 -2
  58. package/dist/flow/command.js.map +1 -1
  59. package/dist/flow/continuation.d.ts.map +1 -1
  60. package/dist/flow/continuation.js +50 -13
  61. package/dist/flow/continuation.js.map +1 -1
  62. package/dist/flow/index.d.ts +4 -1
  63. package/dist/flow/index.d.ts.map +1 -1
  64. package/dist/flow/index.js +4 -1
  65. package/dist/flow/index.js.map +1 -1
  66. package/dist/flow/loop-command.d.ts +8 -0
  67. package/dist/flow/loop-command.d.ts.map +1 -0
  68. package/dist/flow/loop-command.js +99 -0
  69. package/dist/flow/loop-command.js.map +1 -0
  70. package/dist/flow/loop-templates.d.ts +7 -0
  71. package/dist/flow/loop-templates.d.ts.map +1 -0
  72. package/dist/flow/loop-templates.js +38 -0
  73. package/dist/flow/loop-templates.js.map +1 -0
  74. package/dist/flow/loop.d.ts +19 -0
  75. package/dist/flow/loop.d.ts.map +1 -0
  76. package/dist/flow/loop.js +95 -0
  77. package/dist/flow/loop.js.map +1 -0
  78. package/dist/flow/perform-warp.d.ts +28 -0
  79. package/dist/flow/perform-warp.d.ts.map +1 -0
  80. package/dist/flow/perform-warp.js +127 -0
  81. package/dist/flow/perform-warp.js.map +1 -0
  82. package/dist/flow/settings-command.d.ts.map +1 -1
  83. package/dist/flow/settings-command.js +89 -3
  84. package/dist/flow/settings-command.js.map +1 -1
  85. package/dist/flow/store.d.ts +3 -3
  86. package/dist/flow/store.d.ts.map +1 -1
  87. package/dist/flow/store.js +24 -16
  88. package/dist/flow/store.js.map +1 -1
  89. package/dist/flow/template-shared.d.ts +9 -0
  90. package/dist/flow/template-shared.d.ts.map +1 -0
  91. package/dist/flow/template-shared.js +13 -0
  92. package/dist/flow/template-shared.js.map +1 -0
  93. package/dist/flow/template-strings.d.ts.map +1 -1
  94. package/dist/flow/template-strings.js +2 -5
  95. package/dist/flow/template-strings.js.map +1 -1
  96. package/dist/flow/types.d.ts +15 -9
  97. package/dist/flow/types.d.ts.map +1 -1
  98. package/dist/flow/warp-command.d.ts +0 -1
  99. package/dist/flow/warp-command.d.ts.map +1 -1
  100. package/dist/flow/warp-command.js +21 -282
  101. package/dist/flow/warp-command.js.map +1 -1
  102. package/dist/flow/warp-utils.d.ts +11 -0
  103. package/dist/flow/warp-utils.d.ts.map +1 -0
  104. package/dist/flow/warp-utils.js +187 -0
  105. package/dist/flow/warp-utils.js.map +1 -0
  106. package/dist/index.d.ts +3 -2
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +17 -7
  109. package/dist/index.js.map +1 -1
  110. package/dist/snapshot/cli-args.d.ts +1 -0
  111. package/dist/snapshot/cli-args.d.ts.map +1 -1
  112. package/dist/snapshot/cli-args.js +12 -0
  113. package/dist/snapshot/cli-args.js.map +1 -1
  114. package/dist/snapshot/snapshot.d.ts +22 -19
  115. package/dist/snapshot/snapshot.d.ts.map +1 -1
  116. package/dist/snapshot/snapshot.js +1012 -149
  117. package/dist/snapshot/snapshot.js.map +1 -1
  118. package/dist/steering/sliding-prompt.d.ts.map +1 -1
  119. package/dist/steering/sliding-prompt.js +3 -0
  120. package/dist/steering/sliding-prompt.js.map +1 -1
  121. package/dist/tools/timed-bash.d.ts.map +1 -1
  122. package/dist/tools/timed-bash.js +9 -0
  123. package/dist/tools/timed-bash.js.map +1 -1
  124. package/dist/tui/render-utils.d.ts +5 -1
  125. package/dist/tui/render-utils.d.ts.map +1 -1
  126. package/dist/tui/render-utils.js +38 -10
  127. package/dist/tui/render-utils.js.map +1 -1
  128. package/dist/tui/render.d.ts.map +1 -1
  129. package/dist/tui/render.js +55 -82
  130. package/dist/tui/render.js.map +1 -1
  131. package/dist/tui/scramble/constants.d.ts +8 -8
  132. package/dist/tui/scramble/constants.d.ts.map +1 -1
  133. package/dist/tui/scramble/constants.js +7 -7
  134. package/dist/tui/scramble/constants.js.map +1 -1
  135. package/dist/tui/scramble/manager.d.ts +0 -4
  136. package/dist/tui/scramble/manager.d.ts.map +1 -1
  137. package/dist/tui/scramble/manager.js +2 -62
  138. package/dist/tui/scramble/manager.js.map +1 -1
  139. package/dist/types/flow.d.ts +2 -0
  140. package/dist/types/flow.d.ts.map +1 -1
  141. package/dist/types/flow.js.map +1 -1
  142. package/dist/types/output.d.ts +6 -0
  143. package/dist/types/output.d.ts.map +1 -1
  144. package/package.json +1 -1
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Shell output compression pipeline for batch bash tool.
3
+ *
4
+ * Classifies commands by output policy, applies specific compressors for
5
+ * known tools (git, npm, cargo), and falls back through a tiered cleanup
6
+ * chain. Compression runs BEFORE truncation; truncation remains the safety net.
7
+ */
8
+ export declare enum OutputPolicy {
9
+ Passthrough = 0,
10
+ Verbatim = 1,
11
+ Compressible = 2
12
+ }
13
+ export declare function classify(command: string): OutputPolicy;
14
+ export interface CompressionResult {
15
+ stdout: string;
16
+ stderr: string;
17
+ savingsPct: number;
18
+ }
19
+ export declare function compressOutput(command: string, stdout: string, stderr: string): CompressionResult;
20
+ export declare function estimateTokens(text: string): number;
21
+ export declare function stripAnsi(text: string): string;
22
+ export declare function terseFilter(output: string): string;
23
+ export declare function lightweightCleanup(output: string): string;
24
+ export declare function truncateWithSafetyScan(lines: string[]): string | null;
25
+ //# sourceMappingURL=shell-compress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell-compress.d.ts","sourceRoot":"","sources":["../../src/batch/shell-compress.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAkBH,oBAAY,YAAY;IACvB,WAAW,IAAI;IACf,QAAQ,IAAI;IACZ,YAAY,IAAI;CAChB;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAItD;AAuDD,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,cAAc,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACZ,iBAAiB,CA8DnB;AAMD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AA4BD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA4BlD;AAkCD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAOzD;AAMD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CA8BrE"}
@@ -0,0 +1,602 @@
1
+ /**
2
+ * Shell output compression pipeline for batch bash tool.
3
+ *
4
+ * Classifies commands by output policy, applies specific compressors for
5
+ * known tools (git, npm, cargo), and falls back through a tiered cleanup
6
+ * chain. Compression runs BEFORE truncation; truncation remains the safety net.
7
+ */
8
+ import { COMPRESS_TOKEN_FLOOR, COMPRESS_VERBATIM_MAX_TOKENS, COMPRESS_SAFETY_SCAN_HEAD, COMPRESS_SAFETY_SCAN_TAIL, COMPRESS_SAFETY_SCAN_MAX_NEEDLES, COMPRESS_TERSE_MIN_SAVINGS_PCT, COMPRESS_PASSTHROUGH_PATTERNS, COMPRESS_VERBATIM_PATTERNS, COMPRESS_SAFETY_NEEDLES, } from "./constants.js";
9
+ // ---------------------------------------------------------------------------
10
+ // Output policy
11
+ // ---------------------------------------------------------------------------
12
+ export var OutputPolicy;
13
+ (function (OutputPolicy) {
14
+ OutputPolicy[OutputPolicy["Passthrough"] = 0] = "Passthrough";
15
+ OutputPolicy[OutputPolicy["Verbatim"] = 1] = "Verbatim";
16
+ OutputPolicy[OutputPolicy["Compressible"] = 2] = "Compressible";
17
+ })(OutputPolicy || (OutputPolicy = {}));
18
+ export function classify(command) {
19
+ if (isPassthroughCommand(command))
20
+ return OutputPolicy.Passthrough;
21
+ if (isVerbatimCommand(command))
22
+ return OutputPolicy.Verbatim;
23
+ return OutputPolicy.Compressible;
24
+ }
25
+ function isPassthroughCommand(cmd) {
26
+ const lower = cmd.toLowerCase();
27
+ if (COMPRESS_PASSTHROUGH_PATTERNS.some((p) => p.test(lower)))
28
+ return true;
29
+ const tokens = lower.trim().split(/\s+/);
30
+ const base = tokens[0] ?? "";
31
+ // Base commands that are always passthrough
32
+ const alwaysPassthrough = new Set(["pi", "lean-ctx", "live-server", "nodemon", "webpack-dev-server", "watch"]);
33
+ if (alwaysPassthrough.has(base))
34
+ return true;
35
+ // CLI auth tools — only login/auth subcommands
36
+ if (base === "az" || base === "gcloud" || base === "firebase") {
37
+ return tokens.slice(1).some((t) => t === "login" || t === "auth");
38
+ }
39
+ // Package managers — specific subcommands only
40
+ if (base === "npm" || base === "yarn" || base === "pnpm") {
41
+ for (let i = 1; i < tokens.length; i++) {
42
+ if (tokens[i] === "start")
43
+ return true;
44
+ if (tokens[i] === "run" && ["dev", "watch", "serve"].includes(tokens[i + 1]))
45
+ return true;
46
+ }
47
+ return false;
48
+ }
49
+ // Cargo
50
+ if (base === "cargo") {
51
+ return tokens.slice(1).some((t) => t === "watch" || t === "run");
52
+ }
53
+ // Python http.server
54
+ if (base === "python" || base === "python3") {
55
+ return tokens.includes("-m") && tokens.includes("http.server");
56
+ }
57
+ // Vite — dev server when invoked as 'vite' or 'vite dev'
58
+ if (base === "vite") {
59
+ return tokens.length === 1 || tokens[1] === "dev";
60
+ }
61
+ return false;
62
+ }
63
+ function isVerbatimCommand(cmd) {
64
+ const lower = cmd.toLowerCase();
65
+ if (COMPRESS_VERBATIM_PATTERNS.some((p) => p.test(lower)))
66
+ return true;
67
+ return false;
68
+ }
69
+ export function compressOutput(command, stdout, stderr) {
70
+ const original = stdout + stderr;
71
+ if (estimateTokens(original) < COMPRESS_TOKEN_FLOOR) {
72
+ return { stdout, stderr, savingsPct: 0 };
73
+ }
74
+ const policy = classify(command);
75
+ if (policy === OutputPolicy.Passthrough) {
76
+ return { stdout, stderr, savingsPct: 0 };
77
+ }
78
+ if (policy === OutputPolicy.Verbatim) {
79
+ const cOut = truncateVerbatim(stdout);
80
+ const cErr = truncateVerbatim(stderr);
81
+ const compressed = cOut + cErr;
82
+ return {
83
+ stdout: cOut,
84
+ stderr: cErr,
85
+ savingsPct: calcSavings(original, compressed),
86
+ };
87
+ }
88
+ // Compressible pipeline
89
+ const patternStdout = trySpecificPattern(command, stdout) ?? stdout;
90
+ const patternStderr = trySpecificPattern(command, stderr) ?? stderr;
91
+ // Tier 1: terse filter on pattern result (or raw if no pattern matched)
92
+ const tOut = terseFilter(patternStdout);
93
+ const tErr = terseFilter(patternStderr);
94
+ if (shorterThan(tOut + tErr, original, COMPRESS_TERSE_MIN_SAVINGS_PCT)) {
95
+ return {
96
+ stdout: tOut,
97
+ stderr: tErr,
98
+ savingsPct: calcSavings(original, tOut + tErr),
99
+ };
100
+ }
101
+ // Tier 2: lightweight cleanup on original
102
+ const lOut = lightweightCleanup(stdout);
103
+ const lErr = lightweightCleanup(stderr);
104
+ if (shorterThan(lOut + lErr, original, 0)) {
105
+ return {
106
+ stdout: lOut,
107
+ stderr: lErr,
108
+ savingsPct: calcSavings(original, lOut + lErr),
109
+ };
110
+ }
111
+ // Tier 3: safety-scan truncation on lightweight-cleanup result
112
+ const sOut = truncateWithSafetyScan(lOut.split("\n")) ?? lOut;
113
+ const sErr = truncateWithSafetyScan(lErr.split("\n")) ?? lErr;
114
+ if (shorterThan(sOut + sErr, original, 0)) {
115
+ return {
116
+ stdout: sOut,
117
+ stderr: sErr,
118
+ savingsPct: calcSavings(original, sOut + sErr),
119
+ };
120
+ }
121
+ // Nothing helped — return original
122
+ return { stdout, stderr, savingsPct: 0 };
123
+ }
124
+ // ---------------------------------------------------------------------------
125
+ // Helpers
126
+ // ---------------------------------------------------------------------------
127
+ export function estimateTokens(text) {
128
+ return Math.ceil(text.length / 4);
129
+ }
130
+ export function stripAnsi(text) {
131
+ return text.replace(/\x1b\[[0-9;]*[a-zA-Z]/g, "");
132
+ }
133
+ function calcSavings(original, compressed) {
134
+ if (!original)
135
+ return 0;
136
+ return Math.max(0, Math.round(((original.length - compressed.length) / original.length) * 100));
137
+ }
138
+ function shorterThan(candidate, baseline, minPct) {
139
+ if (!baseline)
140
+ return false;
141
+ const saved = ((baseline.length - candidate.length) / baseline.length) * 100;
142
+ return saved > minPct;
143
+ }
144
+ function truncateVerbatim(text) {
145
+ if (!text)
146
+ return text;
147
+ if (estimateTokens(text) <= COMPRESS_VERBATIM_MAX_TOKENS)
148
+ return text;
149
+ const lines = text.split("\n");
150
+ const head = 30;
151
+ const tail = 20;
152
+ if (lines.length <= head + tail)
153
+ return text;
154
+ const kept = [...lines.slice(0, head), `[${lines.length - head - tail} lines omitted]`, ...lines.slice(-tail)];
155
+ return kept.join("\n");
156
+ }
157
+ // ---------------------------------------------------------------------------
158
+ // Terse filter
159
+ // ---------------------------------------------------------------------------
160
+ export function terseFilter(output) {
161
+ if (!output)
162
+ return output;
163
+ let result = output;
164
+ // 1. Strip ANSI escape codes
165
+ result = stripAnsi(result);
166
+ // 2. Strip \r progress lines (lines that start with \r)
167
+ let lines = result.split("\n");
168
+ lines = lines.filter((line) => !line.startsWith("\r"));
169
+ // 3. Collapse runs of 3+ blank lines to 1 blank line
170
+ lines = collapseBlankLines(lines, 3);
171
+ // 4. Strip pure decoration lines
172
+ const decorationRe = /^[\s\u2500\u2550\u2502\u258C\u2504\u2508\u256D\u2570\u2503\u2523\u2517\u2533\u253B\u252B\u2554\u2557\u255A\u255D\u2551\u250C\u2510\u2518\u2524\u251C\u2534\u252C]+$/;
173
+ lines = lines.filter((line) => !decorationRe.test(line));
174
+ // 5. Strip trailing whitespace per line
175
+ lines = lines.map((line) => line.trimEnd());
176
+ result = lines.join("\n");
177
+ // Quality gate: if result is <3% shorter, return original
178
+ if (!shorterThan(result, output, COMPRESS_TERSE_MIN_SAVINGS_PCT)) {
179
+ return output;
180
+ }
181
+ return result;
182
+ }
183
+ function collapseBlankLines(lines, threshold) {
184
+ const result = [];
185
+ let blankRun = 0;
186
+ for (const line of lines) {
187
+ if (line.trim() === "") {
188
+ blankRun++;
189
+ }
190
+ else {
191
+ if (blankRun >= threshold) {
192
+ result.push("");
193
+ }
194
+ else {
195
+ for (let i = 0; i < blankRun; i++) {
196
+ result.push("");
197
+ }
198
+ }
199
+ result.push(line);
200
+ blankRun = 0;
201
+ }
202
+ }
203
+ if (blankRun >= threshold) {
204
+ result.push("");
205
+ }
206
+ else {
207
+ for (let i = 0; i < blankRun; i++) {
208
+ result.push("");
209
+ }
210
+ }
211
+ return result;
212
+ }
213
+ // ---------------------------------------------------------------------------
214
+ // Lightweight cleanup
215
+ // ---------------------------------------------------------------------------
216
+ export function lightweightCleanup(output) {
217
+ if (!output)
218
+ return output;
219
+ let result = stripAnsi(output);
220
+ let lines = result.split("\n");
221
+ lines = lines.map((line) => line.trimEnd());
222
+ lines = collapseBlankLines(lines, 3);
223
+ return lines.join("\n");
224
+ }
225
+ // ---------------------------------------------------------------------------
226
+ // Safety-scan truncation
227
+ // ---------------------------------------------------------------------------
228
+ export function truncateWithSafetyScan(lines) {
229
+ if (lines.length <= COMPRESS_SAFETY_SCAN_HEAD + COMPRESS_SAFETY_SCAN_TAIL) {
230
+ return null;
231
+ }
232
+ const head = lines.slice(0, COMPRESS_SAFETY_SCAN_HEAD);
233
+ const tail = lines.slice(-COMPRESS_SAFETY_SCAN_TAIL);
234
+ const middle = lines.slice(COMPRESS_SAFETY_SCAN_HEAD, -COMPRESS_SAFETY_SCAN_TAIL);
235
+ const safetyRe = new RegExp("\\b(" + COMPRESS_SAFETY_NEEDLES.map((n) => escapeRegex(n)).join("|") + ")\\b", "i");
236
+ const safetyLines = middle.filter((line) => safetyRe.test(line));
237
+ const keptSafety = safetyLines.slice(0, COMPRESS_SAFETY_SCAN_MAX_NEEDLES);
238
+ const kept = [...head];
239
+ if (keptSafety.length > 0) {
240
+ kept.push(`[${middle.length} lines omitted, ${keptSafety.length} safety-relevant lines preserved]`);
241
+ kept.push(...keptSafety);
242
+ }
243
+ else {
244
+ kept.push(`[${middle.length} lines omitted]`);
245
+ }
246
+ kept.push(...tail);
247
+ const result = kept.join("\n");
248
+ const original = lines.join("\n");
249
+ if (!shorterThan(result, original, 0))
250
+ return null;
251
+ return result;
252
+ }
253
+ function escapeRegex(str) {
254
+ return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
255
+ }
256
+ // ---------------------------------------------------------------------------
257
+ // Specific pattern dispatch
258
+ // ---------------------------------------------------------------------------
259
+ function trySpecificPattern(command, output) {
260
+ const lower = command.toLowerCase();
261
+ if (lower.startsWith("git ")) {
262
+ if (lower.includes(" log"))
263
+ return gitLogCompress(command, output);
264
+ if (lower.includes(" commit"))
265
+ return gitCommitCompress(command, output);
266
+ if (lower.includes(" push"))
267
+ return gitPushCompress(command, output);
268
+ }
269
+ if (lower.startsWith("npm ") || lower.startsWith("pnpm ") || lower.startsWith("yarn ")) {
270
+ if (lower.includes(" install") || lower.includes(" ci") || lower.includes(" add "))
271
+ return npmInstallCompress(command, output);
272
+ if (lower.includes(" test") || lower.includes(" run test"))
273
+ return npmTestCompress(command, output);
274
+ }
275
+ if (lower.startsWith("cargo ")) {
276
+ return cargoCompress(command, output);
277
+ }
278
+ return null;
279
+ }
280
+ // ---------------------------------------------------------------------------
281
+ // Git log compressor
282
+ // ---------------------------------------------------------------------------
283
+ function gitLogCompress(command, output) {
284
+ if (!output.trim())
285
+ return output;
286
+ const lines = output.split("\n");
287
+ const lower = command.toLowerCase();
288
+ // --oneline variant
289
+ if (lower.includes("--oneline") || lines[0]?.match(/^[a-f0-9]{7,}\s/)) {
290
+ return gitOnelineCompress(lines);
291
+ }
292
+ // --stat variant: keep stat lines, strip Author/Date/Merge headers
293
+ if (lower.includes("--stat")) {
294
+ return gitStatCompress(lines);
295
+ }
296
+ // Full log with diffs
297
+ return gitFullLogCompress(output);
298
+ }
299
+ function gitOnelineCompress(lines) {
300
+ const nonEmpty = lines.filter((l) => l.trim());
301
+ if (nonEmpty.length <= 100)
302
+ return lines.join("\n");
303
+ const kept = nonEmpty.slice(0, 100);
304
+ return kept.join("\n") + `\n...(${nonEmpty.length - 100} more)`;
305
+ }
306
+ function gitStatCompress(lines) {
307
+ const out = [];
308
+ for (const line of lines) {
309
+ const trimmed = line.trim();
310
+ if (!trimmed)
311
+ continue;
312
+ if (/^(Author|Date|Merge):/.test(trimmed))
313
+ continue;
314
+ if (/^commit\s+[a-f0-9]+/.test(trimmed)) {
315
+ out.push(trimmed.split(" ")[1].slice(0, 7));
316
+ continue;
317
+ }
318
+ // Keep stat and summary lines
319
+ if (/\d+ files? changed/.test(trimmed) || /^.+\|\s*\d+\s*[+-]*$/.test(trimmed)) {
320
+ out.push(trimmed);
321
+ }
322
+ }
323
+ return out.join("\n");
324
+ }
325
+ function gitFullLogCompress(output) {
326
+ const blocks = parseCommitBlocks(output);
327
+ if (blocks.length === 0)
328
+ return output;
329
+ let totalAdd = 0;
330
+ let totalDel = 0;
331
+ if (blocks.length <= 3) {
332
+ return blocks
333
+ .map((b) => formatCommitBlock(b, true))
334
+ .join("\n");
335
+ }
336
+ if (blocks.length <= 20) {
337
+ const parts = [];
338
+ blocks.forEach((b, i) => {
339
+ const full = i === 0;
340
+ parts.push(formatCommitBlock(b, full));
341
+ const s = parseDiffStat(b.stat || b.diff);
342
+ totalAdd += s.add;
343
+ totalDel += s.del;
344
+ });
345
+ return parts.join("\n");
346
+ }
347
+ // >20 commits
348
+ const lines = [];
349
+ blocks.forEach((b) => {
350
+ lines.push(`${b.hash} ${b.message}`);
351
+ const s = parseDiffStat(b.stat || b.diff);
352
+ totalAdd += s.add;
353
+ totalDel += s.del;
354
+ });
355
+ lines.push(`[${blocks.length} commits, +${totalAdd}/-${totalDel}]`);
356
+ return lines.join("\n");
357
+ }
358
+ function parseCommitBlocks(output) {
359
+ const rawBlocks = output.split(/^commit ([a-f0-9]{7,})/m).slice(1);
360
+ const blocks = [];
361
+ for (let i = 0; i < rawBlocks.length; i += 2) {
362
+ const hash = rawBlocks[i]?.trim().slice(0, 7) ?? "";
363
+ const body = rawBlocks[i + 1] ?? "";
364
+ const lines = body.split("\n");
365
+ let message = "";
366
+ let inDiff = false;
367
+ let inMessage = false;
368
+ const diffLines = [];
369
+ let statLine = "";
370
+ for (const line of lines) {
371
+ if (line.startsWith("diff --git")) {
372
+ inDiff = true;
373
+ inMessage = false;
374
+ }
375
+ if (inDiff) {
376
+ diffLines.push(line);
377
+ if (/\d+ files? changed/.test(line)) {
378
+ statLine = line.trim();
379
+ }
380
+ continue;
381
+ }
382
+ if (!inDiff && /\d+ files? changed/.test(line)) {
383
+ statLine = line.trim();
384
+ continue;
385
+ }
386
+ if (line.trim() === "") {
387
+ if (inMessage)
388
+ inMessage = false;
389
+ continue;
390
+ }
391
+ if (line.match(/^(Author|Date|Merge):/))
392
+ continue;
393
+ if (!inMessage && line.startsWith(" ")) {
394
+ inMessage = true;
395
+ message = line.trim();
396
+ }
397
+ }
398
+ blocks.push({
399
+ hash,
400
+ message,
401
+ diff: diffLines.join("\n"),
402
+ stat: statLine,
403
+ });
404
+ }
405
+ return blocks;
406
+ }
407
+ function formatCommitBlock(block, fullDiff) {
408
+ if (fullDiff && block.diff) {
409
+ const lines = block.diff.split("\n").filter((l) => l.trim());
410
+ return `${block.hash} ${block.message}\n${lines.slice(0, 30).join("\n")}`;
411
+ }
412
+ const s = parseDiffStat(block.stat || block.diff);
413
+ return `${block.hash} ${block.message} [${s.files} files] +${s.add}/-${s.del}`;
414
+ }
415
+ function parseDiffStat(text) {
416
+ const m = text.match(/(\d+) files? changed(?:,?\s*(\d+) insertions?\(\+\))?(?:,?\s*(\d+) deletions?\(-\))?/);
417
+ if (m) {
418
+ return { files: parseInt(m[1], 10), add: parseInt(m[2] ?? "0", 10), del: parseInt(m[3] ?? "0", 10) };
419
+ }
420
+ return { files: 0, add: 0, del: 0 };
421
+ }
422
+ // ---------------------------------------------------------------------------
423
+ // Git commit compressor
424
+ // ---------------------------------------------------------------------------
425
+ function gitCommitCompress(_command, output) {
426
+ const lines = output.split("\n");
427
+ let commitIdx = -1;
428
+ for (let i = 0; i < lines.length; i++) {
429
+ if (/^\[[^\]]+\s+[a-f0-9]+\]/.test(lines[i])) {
430
+ commitIdx = i;
431
+ break;
432
+ }
433
+ }
434
+ if (commitIdx === -1) {
435
+ // No recognisable commit line — fall back to terse filter behaviour later
436
+ return output;
437
+ }
438
+ const hookLines = lines.slice(0, commitIdx).filter((l) => l.trim());
439
+ const commitAndAfter = lines.slice(commitIdx);
440
+ // Hook summary
441
+ const failedLines = hookLines.filter((l) => /(fail|error)/i.test(l));
442
+ const passed = hookLines.length - failedLines.length;
443
+ const hookSummary = failedLines.length === 0
444
+ ? `${passed} hooks passed`
445
+ : `${passed} passed, ${failedLines.length} failed`;
446
+ const failedDetail = failedLines.length > 0
447
+ ? "\n" + failedLines.slice(0, 5).join("\n")
448
+ : "";
449
+ // Commit line + stats
450
+ const commitLine = commitAndAfter[0] ?? "";
451
+ const match = commitLine.match(/^\[([^\]]+)\s+([a-f0-9]+)\]\s*(.*)$/);
452
+ let commitSummary = commitLine;
453
+ if (match) {
454
+ const branch = match[1];
455
+ const hash = match[2].slice(0, 7);
456
+ const message = match[3];
457
+ const statText = commitAndAfter.slice(1).join("\n");
458
+ const s = parseDiffStat(statText);
459
+ commitSummary = `${hash} (${branch}) ${message} [${s.files} files, +${s.add}/-${s.del}]`;
460
+ }
461
+ return hookSummary + failedDetail + "\n" + commitSummary;
462
+ }
463
+ // ---------------------------------------------------------------------------
464
+ // Git push compressor
465
+ // ---------------------------------------------------------------------------
466
+ function gitPushCompress(_command, output) {
467
+ const lines = output.split("\n").filter((l) => l.trim());
468
+ if (lines.some((l) => l.includes("Everything up-to-date"))) {
469
+ return "ok (up-to-date)";
470
+ }
471
+ const kept = [];
472
+ for (const line of lines) {
473
+ if (line.includes("->")) {
474
+ kept.push(line);
475
+ continue;
476
+ }
477
+ if (/\brejected\b/i.test(line)) {
478
+ kept.push(line);
479
+ continue;
480
+ }
481
+ if (line.startsWith("remote:"))
482
+ continue;
483
+ // Keep other non-empty lines as "key lines"
484
+ if (line.trim())
485
+ kept.push(line);
486
+ }
487
+ if (kept.length === 0)
488
+ return output.trim();
489
+ return kept.join("\n");
490
+ }
491
+ // ---------------------------------------------------------------------------
492
+ // npm install compressor
493
+ // ---------------------------------------------------------------------------
494
+ function npmInstallCompress(_command, output) {
495
+ const lines = output.split("\n");
496
+ const treeLineRe = /^\+\s+.*@\d/;
497
+ const summaryRe = /added\s+\d+\s+packages?\s+in/;
498
+ const nonTree = lines.filter((l) => !treeLineRe.test(l));
499
+ const summary = nonTree.find((l) => summaryRe.test(l));
500
+ if (summary) {
501
+ return summary.trim();
502
+ }
503
+ // No summary — keep last 3 non-tree lines
504
+ const last = nonTree.filter((l) => l.trim()).slice(-3);
505
+ if (last.length)
506
+ return last.join("\n");
507
+ return output.trim();
508
+ }
509
+ // ---------------------------------------------------------------------------
510
+ // npm test compressor
511
+ // ---------------------------------------------------------------------------
512
+ function npmTestCompress(_command, output) {
513
+ const keepRe = /^(PASS|FAIL|Test Suites:|Tests:|Snapshots:|Time:)/;
514
+ const errorBlockRe = /\b(error|failed|fail)\b|ERR!/i;
515
+ const lines = output.split("\n");
516
+ const kept = [];
517
+ let inErrorBlock = false;
518
+ let errorBlockIndent = null;
519
+ for (const line of lines) {
520
+ if (keepRe.test(line)) {
521
+ kept.push(line);
522
+ continue;
523
+ }
524
+ // Start of error/failure detail block
525
+ if (errorBlockRe.test(line) && !inErrorBlock) {
526
+ inErrorBlock = true;
527
+ errorBlockIndent = line.match(/^(\s*)/)?.[1]?.length ?? 0;
528
+ kept.push(line);
529
+ continue;
530
+ }
531
+ if (inErrorBlock) {
532
+ const indent = line.match(/^(\s*)/)?.[1]?.length ?? 0;
533
+ // Continue block while indented or blank
534
+ if (line.trim() === "" || indent > (errorBlockIndent ?? 0)) {
535
+ kept.push(line);
536
+ continue;
537
+ }
538
+ inErrorBlock = false;
539
+ errorBlockIndent = null;
540
+ }
541
+ }
542
+ if (kept.length === 0)
543
+ return output.trim();
544
+ return kept.join("\n");
545
+ }
546
+ // ---------------------------------------------------------------------------
547
+ // Cargo compressor
548
+ // ---------------------------------------------------------------------------
549
+ function cargoCompress(_command, output) {
550
+ const lines = output.split("\n");
551
+ let compilingCount = 0;
552
+ let errorCount = 0;
553
+ let warningCount = 0;
554
+ let firstError = null;
555
+ let firstWarning = null;
556
+ const kept = [];
557
+ for (const line of lines) {
558
+ const trimmed = line.trim();
559
+ if (!trimmed)
560
+ continue;
561
+ if (/^Compiling\s+\S+\s+v\d/.test(trimmed)) {
562
+ compilingCount++;
563
+ continue;
564
+ }
565
+ if (/^Downloading\s+/.test(trimmed)) {
566
+ continue;
567
+ }
568
+ if (/^test result:/.test(trimmed) || /^running\s+\d+\s+tests?/.test(trimmed)) {
569
+ kept.push(trimmed);
570
+ continue;
571
+ }
572
+ if (/^Finished/.test(trimmed) || /^Release/.test(trimmed)) {
573
+ kept.push(trimmed);
574
+ continue;
575
+ }
576
+ if (/\berror\b/i.test(trimmed) && !firstError) {
577
+ firstError = trimmed;
578
+ }
579
+ if (/\berror\b/i.test(trimmed)) {
580
+ errorCount++;
581
+ continue;
582
+ }
583
+ if (/\bwarning\b/i.test(trimmed) && !firstWarning) {
584
+ firstWarning = trimmed;
585
+ }
586
+ if (/\bwarning\b/i.test(trimmed)) {
587
+ warningCount++;
588
+ continue;
589
+ }
590
+ // Keep lines that don't match any stripping rule
591
+ kept.push(trimmed);
592
+ }
593
+ const summary = [];
594
+ if (compilingCount > 0)
595
+ summary.push(`compiled ${compilingCount} crates`);
596
+ if (firstError)
597
+ summary.push(firstError + (errorCount > 1 ? ` (+${errorCount - 1} more)` : ""));
598
+ if (firstWarning)
599
+ summary.push(firstWarning + (warningCount > 1 ? ` (+${warningCount - 1} more)` : ""));
600
+ return [...summary, ...kept].join("\n");
601
+ }
602
+ //# sourceMappingURL=shell-compress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell-compress.js","sourceRoot":"","sources":["../../src/batch/shell-compress.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../../src/batch/symbols.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAGN,KAAK,cAAc,EAEnB,MAAM,gBAAgB,CAAC;AAgSxB,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,cAAc,CAuCrF"}
1
+ {"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../../src/batch/symbols.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAGN,KAAK,cAAc,EAEnB,MAAM,gBAAgB,CAAC;AAsSxB,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,cAAc,CAuCrF"}