@prestyj/cli 5.32.1 → 5.32.2

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.
@@ -0,0 +1,203 @@
1
+ /**
2
+ * Shape-aware compaction for routine command output that is small enough to
3
+ * skip truncation (`renderBashOutput`'s under-limit path), where GG used to
4
+ * pass every byte through.
5
+ *
6
+ * The idea comes from rtk (rtk-ai/rtk), measured in the gg-bench goal
7
+ * (2026-10-24): on medium-sized output GG returned raw, rtk cut `git log` 58%,
8
+ * `git status` 60%, `ls -la` 80% and an all-green vitest run 99%. It also hid
9
+ * 676 of 726 `find` results and made failing vitest output 74% larger. So this
10
+ * copies only the lossless or near-lossless parts:
11
+ *
12
+ * - `git log` (default format): one header line per commit — 12-char hash,
13
+ * decorations, ISO-ish date, author + email — and the message, without the
14
+ * `commit`/`Author:`/`Date:` labels, blank separators and 4-space indent.
15
+ * - `git status` (long format): drops the `(use "git …")` hint lines only.
16
+ * - `ls -l`/`-la`: when every entry shares one owner and group, states them
17
+ * once and drops the link-count/owner/group columns.
18
+ * - all-green vitest/jest runs: replaces the per-FILE pass lines with a count.
19
+ * Per-test lines (`✓ name 542ms`, failures, skips) and the summary stay,
20
+ * because the compactor's failing-test carry-forward reads test-level lines.
21
+ *
22
+ * Never touched: failing test runs, file lists (`find`, `grep`), file dumps
23
+ * that don't match these shapes. Every transform is gated on an unambiguous
24
+ * shape and returns its input unchanged when anything doesn't fit.
25
+ */
26
+ export function compactRoutineOutput(raw) {
27
+ let text = raw;
28
+ text = compactGitLog(text);
29
+ text = compactGitStatus(text);
30
+ text = compactLsLong(text);
31
+ text = compactPassingTestRun(text);
32
+ return text;
33
+ }
34
+ /* ------------------------------------------------------------------ */
35
+ /* git log */
36
+ /* ------------------------------------------------------------------ */
37
+ const COMMIT_LINE = /^commit ([0-9a-f]{40})((?: \(.*\))?)$/;
38
+ const MONTHS = {
39
+ Jan: "01",
40
+ Feb: "02",
41
+ Mar: "03",
42
+ Apr: "04",
43
+ May: "05",
44
+ Jun: "06",
45
+ Jul: "07",
46
+ Aug: "08",
47
+ Sep: "09",
48
+ Oct: "10",
49
+ Nov: "11",
50
+ Dec: "12",
51
+ };
52
+ /** git's default date: `Sat Oct 24 01:23:14 2026 +0800`. */
53
+ const GIT_DEFAULT_DATE = /^\w{3} (\w{3}) (\d{1,2}) (\d{2}:\d{2}:\d{2}) (\d{4}) ([+-]\d{4})$/;
54
+ function compactDate(date) {
55
+ const m = GIT_DEFAULT_DATE.exec(date);
56
+ const month = m ? MONTHS[m[1]] : undefined;
57
+ if (!m || !month)
58
+ return date;
59
+ return `${m[4]}-${month}-${m[2].padStart(2, "0")} ${m[3]} ${m[5]}`;
60
+ }
61
+ export function compactGitLog(text) {
62
+ if (!/^commit [0-9a-f]{40}/m.test(text) || !/^Author: /m.test(text))
63
+ return text;
64
+ const lines = text.split("\n");
65
+ const out = [];
66
+ let changed = false;
67
+ let i = 0;
68
+ while (i < lines.length) {
69
+ const commit = COMMIT_LINE.exec(lines[i]);
70
+ if (!commit) {
71
+ out.push(lines[i]);
72
+ i++;
73
+ continue;
74
+ }
75
+ let j = i + 1;
76
+ let merge = "";
77
+ if (lines[j]?.startsWith("Merge: ")) {
78
+ merge = ` merge ${lines[j].slice("Merge: ".length).trim()}`;
79
+ j++;
80
+ }
81
+ const author = /^Author:\s+(.+)$/.exec(lines[j] ?? "");
82
+ const date = author ? /^Date:\s+(.+)$/.exec(lines[j + 1] ?? "") : null;
83
+ if (!author || !date || lines[j + 2] !== "") {
84
+ out.push(lines[i]);
85
+ i++;
86
+ continue;
87
+ }
88
+ j += 3;
89
+ // Message: 4-space-indented lines, with blank lines allowed between them.
90
+ const message = [];
91
+ while (j < lines.length) {
92
+ if (lines[j].startsWith(" ")) {
93
+ message.push(lines[j].slice(4));
94
+ j++;
95
+ }
96
+ else if (lines[j] === "" && lines[j + 1]?.startsWith(" ")) {
97
+ message.push("");
98
+ j++;
99
+ }
100
+ else
101
+ break;
102
+ }
103
+ const [subject = "", ...body] = message;
104
+ // Subject and body are separated by one blank line in git's layout.
105
+ if (body[0] === "")
106
+ body.shift();
107
+ out.push(`${commit[1].slice(0, 12)}${commit[2]} ${compactDate(date[1])} ${author[1]}${merge}`, ` ${subject}`, ...body.map((line) => (line ? ` ${line}` : "")));
108
+ // Drop the separator blank before the next commit; keep it before a diff.
109
+ if (lines[j] === "" && COMMIT_LINE.test(lines[j + 1] ?? ""))
110
+ j++;
111
+ changed = true;
112
+ i = j;
113
+ }
114
+ return changed ? out.join("\n") : text;
115
+ }
116
+ /* ------------------------------------------------------------------ */
117
+ /* git status */
118
+ /* ------------------------------------------------------------------ */
119
+ const STATUS_SECTION = /^(?:On branch \S+|HEAD detached (?:at|from) \S+|Changes to be committed:|Changes not staged for commit:|Untracked files:|Unmerged paths:)$/m;
120
+ const STATUS_HINT = /^\s+\((?:use "git [^"]*"(?:,? (?:and\/or|or) "git [^"]*")*[^()]*|commit or discard the untracked or modified content in submodules)\)$/;
121
+ export function compactGitStatus(text) {
122
+ if (!STATUS_SECTION.test(text))
123
+ return text;
124
+ const lines = text.split("\n");
125
+ const kept = lines.filter((line) => !STATUS_HINT.test(line));
126
+ return kept.length === lines.length ? text : kept.join("\n");
127
+ }
128
+ /* ------------------------------------------------------------------ */
129
+ /* ls -l / ls -la */
130
+ /* ------------------------------------------------------------------ */
131
+ /** perms, links, owner, group, then size (`1234`, `10K`, or `8, 1` for devices). */
132
+ const LS_ENTRY = /^([bcdlps-][rwxsStT-]{9}[@+.]?)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\d[\d.,]*[KMGTPB]?,?\s.*)$/;
133
+ const MIN_LS_ENTRIES = 5;
134
+ export function compactLsLong(text) {
135
+ if (!/^total \d+/m.test(text))
136
+ return text;
137
+ const lines = text.split("\n");
138
+ const out = [];
139
+ let changed = false;
140
+ let i = 0;
141
+ while (i < lines.length) {
142
+ if (!/^total \d+$/.test(lines[i])) {
143
+ out.push(lines[i]);
144
+ i++;
145
+ continue;
146
+ }
147
+ let j = i + 1;
148
+ const entries = [];
149
+ while (j < lines.length) {
150
+ const m = LS_ENTRY.exec(lines[j]);
151
+ if (!m)
152
+ break;
153
+ entries.push(m);
154
+ j++;
155
+ }
156
+ const blockEnds = j >= lines.length || lines[j] === "";
157
+ const owner = entries[0]?.[3];
158
+ const group = entries[0]?.[4];
159
+ const uniform = entries.every((m) => m[3] === owner && m[4] === group);
160
+ if (!blockEnds || entries.length < MIN_LS_ENTRIES || !uniform) {
161
+ out.push(...lines.slice(i, j));
162
+ i = j;
163
+ continue;
164
+ }
165
+ out.push(`${lines[i]} (owner ${owner}, group ${group} for all entries; link counts omitted)`);
166
+ for (const m of entries)
167
+ out.push(`${m[1]} ${m[5]}`);
168
+ changed = true;
169
+ i = j;
170
+ }
171
+ return changed ? out.join("\n") : text;
172
+ }
173
+ /* ------------------------------------------------------------------ */
174
+ /* all-green vitest / jest runs */
175
+ /* ------------------------------------------------------------------ */
176
+ /** A file-level vitest pass line: ` ✓ src/a.test.ts (12 tests) 3ms` — no skips. */
177
+ const VITEST_FILE_PASS = /^ ?[✓√] \S+ \(\d+ tests?\)(?: \d+(?:\.\d+)?m?s)?$/;
178
+ const JEST_FILE_PASS = /^ ?PASS \S+(?: \(\d+(?:\.\d+)? ?m?s\))?$/;
179
+ const ANY_FAILURE = /\b\d+ failed\b|^\s*(?:FAIL|[×✕❯])\s/m;
180
+ export function compactPassingTestRun(text) {
181
+ const vitest = /^\s*Test Files\s+\d+ passed/m.test(text);
182
+ const jest = /^Test Suites:\s+\d+ passed, \d+ total/m.test(text);
183
+ if ((!vitest && !jest) || ANY_FAILURE.test(text))
184
+ return text;
185
+ const fileLine = vitest ? VITEST_FILE_PASS : JEST_FILE_PASS;
186
+ const lines = text.split("\n");
187
+ const count = lines.filter((line) => fileLine.test(line)).length;
188
+ if (count < 2)
189
+ return text;
190
+ const out = [];
191
+ let noted = false;
192
+ for (const line of lines) {
193
+ if (!fileLine.test(line)) {
194
+ out.push(line);
195
+ }
196
+ else if (!noted) {
197
+ out.push(`[${count} passing test files not listed — all passed; summary below]`);
198
+ noted = true;
199
+ }
200
+ }
201
+ return out.join("\n");
202
+ }
203
+ //# sourceMappingURL=routine-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routine-output.js","sourceRoot":"","sources":["../../src/tools/routine-output.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prestyj/cli",
3
- "version": "5.32.1",
3
+ "version": "5.32.2",
4
4
  "type": "module",
5
5
  "description": "Lean CLI coding agent for 12 LLM providers and local models, with OAuth for Anthropic, OpenAI and Gemini",
6
6
  "license": "MIT",
@@ -115,10 +115,10 @@
115
115
  "typescript-language-server": "^5.3.0",
116
116
  "wrap-ansi": "^10.0.0",
117
117
  "zod": "^4.5.4",
118
- "@prestyj/ai": "5.32.1",
119
- "@prestyj/core": "5.32.1",
120
- "@prestyj/agent": "5.32.1",
121
- "@prestyj/pixel": "4.3.101"
118
+ "@prestyj/agent": "5.32.2",
119
+ "@prestyj/ai": "5.32.2",
120
+ "@prestyj/pixel": "4.3.101",
121
+ "@prestyj/core": "5.32.2"
122
122
  },
123
123
  "optionalDependencies": {
124
124
  "@huggingface/transformers": "4.2.0",