@heyhuynhgiabuu/pi-pretty 0.6.6 → 0.6.7
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/CHANGELOG.md +17 -0
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +15 -5
- package/dist/render.js.map +1 -1
- package/dist/tools/grep.d.ts.map +1 -1
- package/dist/tools/grep.js +42 -11
- package/dist/tools/grep.js.map +1 -1
- package/package.json +1 -1
- package/src/render.ts +90 -53
- package/src/tools/grep.ts +63 -13
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.6.7] - 2026-06-21
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- **Module loading crash before factory execution** — The v0.6.6 fix wrapped
|
|
8
|
+
`import("@earendil-works/pi-coding-agent")` in a try-catch block inside the
|
|
9
|
+
extension factory, but two files (`src/tools/grep.ts` and `src/render.ts`) had
|
|
10
|
+
**top-level value imports** from `@earendil-works/pi-coding-agent` (`keyHint`)
|
|
11
|
+
and `@earendil-works/pi-tui` (`truncateToWidth`). These compiled to top-level
|
|
12
|
+
`require()` calls that executed during **jiti module loading** (before the
|
|
13
|
+
factory), causing the extension to crash before the try-catch could fire.
|
|
14
|
+
|
|
15
|
+
Fix:
|
|
16
|
+
- `grep.ts`: replaced `import { keyHint }` with inline fallback text
|
|
17
|
+
- `render.ts`: replaced `import { truncateToWidth }` with lazy `require()`
|
|
18
|
+
inside a helper function (avoids top-level evaluation)
|
|
19
|
+
|
|
3
20
|
## [0.6.6] - 2026-06-21
|
|
4
21
|
|
|
5
22
|
### Fixed
|
package/dist/render.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkCH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,IAAI,aAAa,EAAE,MAAM,YAAY,CAAC;AAqE5E,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAS5D;AAUD,eAAO,MAAM,gBAAgB,oCAAkC,CAAC;AAEhE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkC1D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,SAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAUrF;AAeD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAO1F;AAMD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAKvE;AAMD,wBAAsB,iBAAiB,CACtC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,SAAI,EACV,QAAQ,SAAoB,EAC5B,KAAK,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAcjB;AAMD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAiBzG;AAMD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAwBlE;AAMD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAmCzE;AAMD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0CtF;AAMD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,IACtC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,SAAS,EAAE,KAAK,aAAa,SAO3E;AAED,wBAAgB,gBAAgB,KACvB,QAAQ,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,OAAO,EAAE,OAAO,SAAS,EAAE,KAAK,aAAa,SAqB7G"}
|
package/dist/render.js
CHANGED
|
@@ -20,10 +20,16 @@ exports.renderGrepResults = renderGrepResults;
|
|
|
20
20
|
exports.makeRenderCall = makeRenderCall;
|
|
21
21
|
exports.makeRenderResult = makeRenderResult;
|
|
22
22
|
const cli_1 = require("@shikijs/cli");
|
|
23
|
-
const pi_tui_1 = require("@earendil-works/pi-tui");
|
|
24
23
|
const node_path_1 = require("node:path");
|
|
25
24
|
const config_js_1 = require("./config.js");
|
|
26
25
|
const helpers_js_1 = require("./helpers.js");
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
// Lazy imports — avoid top-level require() that blocks module loading
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
/** Lazy accessor to pi-tui's truncateToWidth */
|
|
30
|
+
function _truncateToWidth(text, maxWidth, ellipsis, pad) {
|
|
31
|
+
return require("@earendil-works/pi-tui").truncateToWidth(text, maxWidth, ellipsis, pad);
|
|
32
|
+
}
|
|
27
33
|
const DEFAULT_THEME = "github-dark";
|
|
28
34
|
function resolveTheme() {
|
|
29
35
|
const env = process.env.PRETTY_THEME;
|
|
@@ -143,7 +149,7 @@ function fillToolBackground(text, bg = config_js_1.BG_BASE, width) {
|
|
|
143
149
|
return text
|
|
144
150
|
.split("\n")
|
|
145
151
|
.map((line) => {
|
|
146
|
-
const fitted = width ? (
|
|
152
|
+
const fitted = width ? _truncateToWidth(line, width, "") : line;
|
|
147
153
|
const stripped = preserveBoxBackground(fitted);
|
|
148
154
|
// Apply background to the entire line
|
|
149
155
|
return bg ? bg + stripped : stripped;
|
|
@@ -191,7 +197,7 @@ async function renderFileContent(content, filePath, offset = 0, maxLines = confi
|
|
|
191
197
|
const tw = width ?? (0, config_js_1.termWidth)();
|
|
192
198
|
const out = [];
|
|
193
199
|
for (const line of hl) {
|
|
194
|
-
out.push((
|
|
200
|
+
out.push(_truncateToWidth(line ?? "", Math.max(1, tw), `${config_js_1.FG_DIM}›`));
|
|
195
201
|
}
|
|
196
202
|
return out.join("\n");
|
|
197
203
|
}
|
|
@@ -265,7 +271,9 @@ function renderFindResults(text, theme) {
|
|
|
265
271
|
out.push(dirColored);
|
|
266
272
|
for (let i = 0; i < files.length; i++) {
|
|
267
273
|
if (count >= config_js_1.MAX_PREVIEW_LINES) {
|
|
268
|
-
const more = theme
|
|
274
|
+
const more = theme
|
|
275
|
+
? theme.fg("dim", `… ${lines.length - count} more files`)
|
|
276
|
+
: `${config_js_1.FG_DIM}… ${lines.length - count} more files${config_js_1.RST}`;
|
|
269
277
|
out.push(` ${more}`);
|
|
270
278
|
return out.join("\n");
|
|
271
279
|
}
|
|
@@ -289,7 +297,9 @@ async function renderGrepResults(text, pattern) {
|
|
|
289
297
|
try {
|
|
290
298
|
re = new RegExp(`(${pattern})`, "gi");
|
|
291
299
|
}
|
|
292
|
-
catch {
|
|
300
|
+
catch {
|
|
301
|
+
/* skip highlighting */
|
|
302
|
+
}
|
|
293
303
|
for (const line of lines) {
|
|
294
304
|
if (count >= config_js_1.MAX_PREVIEW_LINES) {
|
|
295
305
|
out.push(`${config_js_1.FG_DIM} … more matches${config_js_1.RST}`);
|
package/dist/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/grep.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grep.d.ts","sourceRoot":"","sources":["../../src/tools/grep.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"grep.d.ts","sourceRoot":"","sources":["../../src/tools/grep.ts"],"names":[],"mappings":"AAEA,OAAO,EAEN,KAAK,YAAY,EAGjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAe,oBAAoB,EAAyC,MAAM,aAAa,CAAC;AAYxH,wBAAgB,gBAAgB,CAC/B,EAAE,EAAE,YAAY,EAChB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,EACnD,OAAO,EAAE,UAAU,EACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK;IAAE,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACjF,IAAI,CA6IN"}
|
package/dist/tools/grep.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
/* pi-pretty: grep tool -- FFF-backed text search with SDK fallback. */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.registerGrepTool = registerGrepTool;
|
|
5
|
-
const pi_coding_agent_1 = require("@earendil-works/pi-coding-agent");
|
|
6
5
|
const config_js_1 = require("../config.js");
|
|
7
6
|
const helpers_js_1 = require("../helpers.js");
|
|
8
7
|
const metrics_js_1 = require("./metrics.js");
|
|
@@ -11,7 +10,11 @@ const fff_helpers_js_1 = require("../fff-helpers.js");
|
|
|
11
10
|
const notices_js_1 = require("../notices.js");
|
|
12
11
|
const invalidArg = "<missing>";
|
|
13
12
|
function registerGrepTool(pi, cwd, fffService, sdkTool, TextComp) {
|
|
14
|
-
const T = TextComp ??
|
|
13
|
+
const T = TextComp ??
|
|
14
|
+
(() => {
|
|
15
|
+
const m = require("@earendil-works/pi-tui");
|
|
16
|
+
return m.Text;
|
|
17
|
+
})();
|
|
15
18
|
const home = process.env.HOME ?? "";
|
|
16
19
|
pi.registerTool({
|
|
17
20
|
name: "grep",
|
|
@@ -33,7 +36,12 @@ function registerGrepTool(pi, cwd, fffService, sdkTool, TextComp) {
|
|
|
33
36
|
if (!fff)
|
|
34
37
|
throw new Error("FFF finder not available");
|
|
35
38
|
const effectiveLimit = Math.max(1, limit);
|
|
36
|
-
const grepResult = fff.grep(pattern, {
|
|
39
|
+
const grepResult = fff.grep(pattern, {
|
|
40
|
+
pageSize: effectiveLimit,
|
|
41
|
+
mode: literal ? "plain" : "regex",
|
|
42
|
+
beforeContext: context,
|
|
43
|
+
afterContext: context,
|
|
44
|
+
});
|
|
37
45
|
if (grepResult.ok) {
|
|
38
46
|
const grep = grepResult.value;
|
|
39
47
|
const items = grep.items.slice(0, effectiveLimit);
|
|
@@ -50,18 +58,36 @@ function registerGrepTool(pi, cwd, fffService, sdkTool, TextComp) {
|
|
|
50
58
|
notices.push(`More results available: cursor="${cursorId}"`);
|
|
51
59
|
}
|
|
52
60
|
const text = appendNotices((0, fff_helpers_js_1.fffFormatGrepText)(items, effectiveLimit), notices);
|
|
53
|
-
return {
|
|
61
|
+
return {
|
|
62
|
+
content: [{ type: "text", text }],
|
|
63
|
+
details: {
|
|
64
|
+
_type: "grepResult",
|
|
65
|
+
text,
|
|
66
|
+
pattern,
|
|
67
|
+
matchCount: items.length,
|
|
68
|
+
},
|
|
69
|
+
};
|
|
54
70
|
}
|
|
55
71
|
}
|
|
56
|
-
catch {
|
|
72
|
+
catch {
|
|
73
|
+
/* fall through */
|
|
74
|
+
}
|
|
57
75
|
}
|
|
58
|
-
const result = await sdkTool.execute(tid, p, sig, undefined, ctx);
|
|
76
|
+
const result = (await sdkTool.execute(tid, p, sig, undefined, ctx));
|
|
59
77
|
for (const c of (result.content ?? [])) {
|
|
60
78
|
if (c.type === "text")
|
|
61
79
|
c.text = (0, helpers_js_1.normalizeLineEndings)(c.text);
|
|
62
80
|
}
|
|
63
|
-
const tc = (result.content ?? [])
|
|
64
|
-
|
|
81
|
+
const tc = (result.content ?? [])
|
|
82
|
+
.filter((c) => c.type === "text")
|
|
83
|
+
.map((c) => c.text)
|
|
84
|
+
.join("\n") ?? "";
|
|
85
|
+
result.details = {
|
|
86
|
+
_type: "grepResult",
|
|
87
|
+
text: tc,
|
|
88
|
+
pattern,
|
|
89
|
+
matchCount: tc ? tc.trim().split("\n").filter(Boolean).length : 0,
|
|
90
|
+
};
|
|
65
91
|
return result;
|
|
66
92
|
}),
|
|
67
93
|
renderCall(args, theme, ctx) {
|
|
@@ -89,7 +115,10 @@ function registerGrepTool(pi, cwd, fffService, sdkTool, TextComp) {
|
|
|
89
115
|
(0, config_js_1.resolveBaseBackground)(theme);
|
|
90
116
|
const text = ctx.lastComponent ?? new T("", 0, 0);
|
|
91
117
|
if (ctx.isError) {
|
|
92
|
-
text.setText((0, render_js_1.renderToolError)((result.content ?? [])
|
|
118
|
+
text.setText((0, render_js_1.renderToolError)((result.content ?? [])
|
|
119
|
+
.filter((c) => c.type === "text")
|
|
120
|
+
.map((c) => c.text)
|
|
121
|
+
.join("\n") || "Error", theme));
|
|
93
122
|
return text;
|
|
94
123
|
}
|
|
95
124
|
const d = result.details;
|
|
@@ -105,7 +134,7 @@ function registerGrepTool(pi, cwd, fffService, sdkTool, TextComp) {
|
|
|
105
134
|
out.push(theme.fg("toolOutput", line));
|
|
106
135
|
}
|
|
107
136
|
if (remaining > 0) {
|
|
108
|
-
out.push(theme.fg("muted", `… (${remaining} more ${remaining === 1 ? "line" : "lines"},
|
|
137
|
+
out.push(theme.fg("muted", `… (${remaining} more ${remaining === 1 ? "line" : "lines"}, to expand)`));
|
|
109
138
|
}
|
|
110
139
|
const body = out.map((l) => ` ${l}`).join("\n") + "\n\n";
|
|
111
140
|
text.setText((0, render_js_1.fillToolBackground)(body, ctx.isError ? config_js_1.BG_ERROR : undefined));
|
|
@@ -118,5 +147,7 @@ function registerGrepTool(pi, cwd, fffService, sdkTool, TextComp) {
|
|
|
118
147
|
},
|
|
119
148
|
});
|
|
120
149
|
}
|
|
121
|
-
function appendNotices(text, notices) {
|
|
150
|
+
function appendNotices(text, notices) {
|
|
151
|
+
return notices.length ? `${text}\n\n[${notices.join(". ")}]` : text;
|
|
152
|
+
}
|
|
122
153
|
//# sourceMappingURL=grep.js.map
|
package/dist/tools/grep.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grep.js","sourceRoot":"","sources":["../../src/tools/grep.ts"],"names":[],"mappings":";AAAA,uEAAuE;;
|
|
1
|
+
{"version":3,"file":"grep.js","sourceRoot":"","sources":["../../src/tools/grep.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/render.ts
CHANGED
|
@@ -7,22 +7,48 @@
|
|
|
7
7
|
|
|
8
8
|
import type { BundledLanguage } from "shiki";
|
|
9
9
|
import { codeToANSI } from "@shikijs/cli";
|
|
10
|
-
import { truncateToWidth } from "@earendil-works/pi-tui";
|
|
11
10
|
import { basename, dirname } from "node:path";
|
|
12
11
|
|
|
13
12
|
import {
|
|
14
|
-
RST,
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
RST,
|
|
14
|
+
FG_LNUM,
|
|
15
|
+
FG_DIM,
|
|
16
|
+
FG_RULE,
|
|
17
|
+
FG_GREEN,
|
|
18
|
+
FG_RED,
|
|
19
|
+
FG_YELLOW,
|
|
20
|
+
FG_BLUE,
|
|
21
|
+
BG_BASE,
|
|
22
|
+
BG_ERROR,
|
|
23
|
+
dirIcon,
|
|
24
|
+
detectLang,
|
|
25
|
+
termWidth,
|
|
26
|
+
MAX_PREVIEW_LINES,
|
|
27
|
+
MAX_HL_CHARS,
|
|
28
|
+
CACHE_LIMIT,
|
|
17
29
|
resolveBaseBackground,
|
|
18
30
|
} from "./config.js";
|
|
19
31
|
import {
|
|
20
|
-
normalizeLineEndings,
|
|
21
|
-
|
|
32
|
+
normalizeLineEndings,
|
|
33
|
+
humanSize,
|
|
34
|
+
formatElapsedMs,
|
|
35
|
+
formatCharCount,
|
|
36
|
+
ELAPSED_KEY,
|
|
37
|
+
CHARS_KEY,
|
|
38
|
+
compactErrorLines,
|
|
22
39
|
} from "./helpers.js";
|
|
23
40
|
import type { AgentToolResult } from "@earendil-works/pi-coding-agent";
|
|
24
41
|
import type { ThemeLike, RenderCtxLike as RenderContext } from "./types.js";
|
|
25
42
|
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
// Lazy imports — avoid top-level require() that blocks module loading
|
|
45
|
+
// ---------------------------------------------------------------------------
|
|
46
|
+
|
|
47
|
+
/** Lazy accessor to pi-tui's truncateToWidth */
|
|
48
|
+
function _truncateToWidth(text: string, maxWidth: number, ellipsis?: string, pad?: boolean): string {
|
|
49
|
+
return require("@earendil-works/pi-tui").truncateToWidth(text, maxWidth, ellipsis, pad);
|
|
50
|
+
}
|
|
51
|
+
|
|
26
52
|
// ---------------------------------------------------------------------------
|
|
27
53
|
// Shiki ANSI cache
|
|
28
54
|
// ---------------------------------------------------------------------------
|
|
@@ -113,9 +139,15 @@ export function preserveBoxBackground(ansi: string): string {
|
|
|
113
139
|
if (code === 38) {
|
|
114
140
|
// Foreground extended — keep entire sequence
|
|
115
141
|
kept.push(parts[i]);
|
|
116
|
-
if (parts[i + 1] === "5") {
|
|
117
|
-
|
|
118
|
-
|
|
142
|
+
if (parts[i + 1] === "5") {
|
|
143
|
+
kept.push(parts[i + 1]);
|
|
144
|
+
i += 2;
|
|
145
|
+
} else if (parts[i + 1] === "2") {
|
|
146
|
+
kept.push(parts[i + 1], parts[i + 2], parts[i + 3], parts[i + 4]);
|
|
147
|
+
i += 5;
|
|
148
|
+
} else {
|
|
149
|
+
i++;
|
|
150
|
+
}
|
|
119
151
|
} else if (code === 48) {
|
|
120
152
|
// Background extended — skip entirely
|
|
121
153
|
if (parts[i + 1] === "5") i += 3;
|
|
@@ -136,7 +168,7 @@ export function fillToolBackground(text: string, bg = BG_BASE, width?: number):
|
|
|
136
168
|
return text
|
|
137
169
|
.split("\n")
|
|
138
170
|
.map((line) => {
|
|
139
|
-
const fitted = width ?
|
|
171
|
+
const fitted = width ? _truncateToWidth(line, width, "") : line;
|
|
140
172
|
const stripped = preserveBoxBackground(fitted);
|
|
141
173
|
// Apply background to the entire line
|
|
142
174
|
return bg ? bg + stripped : stripped;
|
|
@@ -198,7 +230,7 @@ export async function renderFileContent(
|
|
|
198
230
|
|
|
199
231
|
const out: string[] = [];
|
|
200
232
|
for (const line of hl) {
|
|
201
|
-
out.push(
|
|
233
|
+
out.push(_truncateToWidth(line ?? "", Math.max(1, tw), `${FG_DIM}›`));
|
|
202
234
|
}
|
|
203
235
|
return out.join("\n");
|
|
204
236
|
}
|
|
@@ -210,9 +242,10 @@ export async function renderFileContent(
|
|
|
210
242
|
export function renderBashOutput(text: string, exitCode: number | null): { summary: string; body: string } {
|
|
211
243
|
const isOk = exitCode === 0;
|
|
212
244
|
const statusIcon = isOk ? "✓" : "✗";
|
|
213
|
-
const codeStr =
|
|
214
|
-
|
|
215
|
-
|
|
245
|
+
const codeStr =
|
|
246
|
+
exitCode !== null
|
|
247
|
+
? `${isOk ? FG_GREEN : FG_RED}${statusIcon} exit ${exitCode}${RST}`
|
|
248
|
+
: `${FG_YELLOW}⚡ killed${RST}`;
|
|
216
249
|
|
|
217
250
|
const lines = text.split("\n");
|
|
218
251
|
const maxShow = MAX_PREVIEW_LINES;
|
|
@@ -255,44 +288,46 @@ export function renderTree(text: string, _basePath: string): string {
|
|
|
255
288
|
return out.join("\n");
|
|
256
289
|
}
|
|
257
290
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
291
|
+
// ---------------------------------------------------------------------------
|
|
292
|
+
// Find — grouped file list (plain, no tree characters or icons)
|
|
293
|
+
// ---------------------------------------------------------------------------
|
|
294
|
+
|
|
295
|
+
export function renderFindResults(text: string, theme?: ThemeLike): string {
|
|
296
|
+
const lines = text.trim().split("\n").filter(Boolean);
|
|
297
|
+
if (!lines.length) return theme ? theme.fg("dim", "(no matches)") : `${FG_DIM}(no matches)${RST}`;
|
|
298
|
+
|
|
299
|
+
const groups = new Map<string, string[]>();
|
|
300
|
+
for (const line of lines) {
|
|
301
|
+
const trimmed = line.trim();
|
|
302
|
+
const dir = dirname(trimmed) || ".";
|
|
303
|
+
const file = basename(trimmed);
|
|
304
|
+
if (!groups.has(dir)) groups.set(dir, []);
|
|
305
|
+
const bucket = groups.get(dir);
|
|
306
|
+
if (bucket) bucket.push(file);
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
const out: string[] = [];
|
|
310
|
+
let count = 0;
|
|
311
|
+
|
|
312
|
+
for (const [dir, files] of groups) {
|
|
313
|
+
if (count > 0) out.push("");
|
|
314
|
+
const dirColored = theme ? theme.fg("accent", theme.bold(`${dir}/`)) : `${FG_BLUE}\x1b[1m${dir}/${RST}`;
|
|
315
|
+
out.push(dirColored);
|
|
316
|
+
for (let i = 0; i < files.length; i++) {
|
|
317
|
+
if (count >= MAX_PREVIEW_LINES) {
|
|
318
|
+
const more = theme
|
|
319
|
+
? theme.fg("dim", `… ${lines.length - count} more files`)
|
|
320
|
+
: `${FG_DIM}… ${lines.length - count} more files${RST}`;
|
|
321
|
+
out.push(` ${more}`);
|
|
322
|
+
return out.join("\n");
|
|
323
|
+
}
|
|
324
|
+
out.push(` ${files[i]}`);
|
|
325
|
+
count++;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
return out.join("\n");
|
|
330
|
+
}
|
|
296
331
|
|
|
297
332
|
// ---------------------------------------------------------------------------
|
|
298
333
|
// Grep — highlighted matches with line numbers
|
|
@@ -309,7 +344,9 @@ export async function renderGrepResults(text: string, pattern: string): Promise<
|
|
|
309
344
|
let re: RegExp | null = null;
|
|
310
345
|
try {
|
|
311
346
|
re = new RegExp(`(${pattern})`, "gi");
|
|
312
|
-
} catch {
|
|
347
|
+
} catch {
|
|
348
|
+
/* skip highlighting */
|
|
349
|
+
}
|
|
313
350
|
|
|
314
351
|
for (const line of lines) {
|
|
315
352
|
if (count >= MAX_PREVIEW_LINES) {
|
package/src/tools/grep.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
/* pi-pretty: grep tool -- FFF-backed text search with SDK fallback. */
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
type ToolDefinition,
|
|
5
|
+
type ExtensionAPI,
|
|
6
|
+
type ExtensionContext,
|
|
7
|
+
type AgentToolResult,
|
|
8
|
+
} from "@earendil-works/pi-coding-agent";
|
|
4
9
|
import type { SdkToolDef, GrepDetails, FffServiceWithCursor, TextContent, ThemeLike, RenderCtxLike } from "../types.js";
|
|
5
|
-
import { keyHint } from "@earendil-works/pi-coding-agent";
|
|
6
10
|
import { MAX_PREVIEW_LINES, BG_ERROR, resolveBaseBackground } from "../config.js";
|
|
7
11
|
import { shortPath, normalizeLineEndings } from "../helpers.js";
|
|
8
12
|
import { wrapExecuteWithMetrics } from "./metrics.js";
|
|
@@ -21,7 +25,14 @@ export function registerGrepTool(
|
|
|
21
25
|
sdkTool: SdkToolDef,
|
|
22
26
|
TextComp?: new (t?: string, x?: number, y?: number) => { setText(v: string): void },
|
|
23
27
|
): void {
|
|
24
|
-
const T =
|
|
28
|
+
const T =
|
|
29
|
+
TextComp ??
|
|
30
|
+
(() => {
|
|
31
|
+
const m = require("@earendil-works/pi-tui") as {
|
|
32
|
+
Text: new (t?: string, x?: number, y?: number) => { setText(v: string): void };
|
|
33
|
+
};
|
|
34
|
+
return m.Text;
|
|
35
|
+
})();
|
|
25
36
|
const home = process.env.HOME ?? "";
|
|
26
37
|
|
|
27
38
|
pi.registerTool({
|
|
@@ -45,7 +56,12 @@ export function registerGrepTool(
|
|
|
45
56
|
const fff = fffService.getFinder();
|
|
46
57
|
if (!fff) throw new Error("FFF finder not available");
|
|
47
58
|
const effectiveLimit = Math.max(1, limit);
|
|
48
|
-
const grepResult = fff.grep(pattern, {
|
|
59
|
+
const grepResult = fff.grep(pattern, {
|
|
60
|
+
pageSize: effectiveLimit,
|
|
61
|
+
mode: literal ? "plain" : "regex",
|
|
62
|
+
beforeContext: context,
|
|
63
|
+
afterContext: context,
|
|
64
|
+
});
|
|
49
65
|
if (grepResult.ok) {
|
|
50
66
|
const grep = grepResult.value;
|
|
51
67
|
const items = grep.items.slice(0, effectiveLimit);
|
|
@@ -59,15 +75,36 @@ export function registerGrepTool(
|
|
|
59
75
|
notices.push(`More results available: cursor="${cursorId}"`);
|
|
60
76
|
}
|
|
61
77
|
const text = appendNotices(fffFormatGrepText(items, effectiveLimit), notices);
|
|
62
|
-
return {
|
|
78
|
+
return {
|
|
79
|
+
content: [{ type: "text" as const, text }],
|
|
80
|
+
details: {
|
|
81
|
+
_type: "grepResult",
|
|
82
|
+
text,
|
|
83
|
+
pattern,
|
|
84
|
+
matchCount: items.length,
|
|
85
|
+
} as GrepDetails,
|
|
86
|
+
};
|
|
63
87
|
}
|
|
64
|
-
} catch {
|
|
88
|
+
} catch {
|
|
89
|
+
/* fall through */
|
|
90
|
+
}
|
|
65
91
|
}
|
|
66
92
|
|
|
67
|
-
const result = await sdkTool.execute(tid, p, sig, undefined, ctx) as Result;
|
|
68
|
-
for (const c of (result.content ?? []) as any[]) {
|
|
69
|
-
|
|
70
|
-
|
|
93
|
+
const result = (await sdkTool.execute(tid, p, sig, undefined, ctx)) as Result;
|
|
94
|
+
for (const c of (result.content ?? []) as any[]) {
|
|
95
|
+
if (c.type === "text") c.text = normalizeLineEndings(c.text);
|
|
96
|
+
}
|
|
97
|
+
const tc =
|
|
98
|
+
((result.content ?? []) as TextContent[])
|
|
99
|
+
.filter((c) => c.type === "text")
|
|
100
|
+
.map((c) => c.text)
|
|
101
|
+
.join("\n") ?? "";
|
|
102
|
+
result.details = {
|
|
103
|
+
_type: "grepResult",
|
|
104
|
+
text: tc,
|
|
105
|
+
pattern,
|
|
106
|
+
matchCount: tc ? tc.trim().split("\n").filter(Boolean).length : 0,
|
|
107
|
+
} as GrepDetails;
|
|
71
108
|
return result;
|
|
72
109
|
}),
|
|
73
110
|
|
|
@@ -92,7 +129,18 @@ export function registerGrepTool(
|
|
|
92
129
|
renderResult(result: Result, _opt: unknown, theme: ThemeLike, ctx: RenderCtxLike) {
|
|
93
130
|
resolveBaseBackground(theme);
|
|
94
131
|
const text = ctx.lastComponent ?? new T("", 0, 0);
|
|
95
|
-
if (ctx.isError) {
|
|
132
|
+
if (ctx.isError) {
|
|
133
|
+
text.setText(
|
|
134
|
+
renderToolError(
|
|
135
|
+
((result.content ?? []) as TextContent[])
|
|
136
|
+
.filter((c) => c.type === "text")
|
|
137
|
+
.map((c) => c.text)
|
|
138
|
+
.join("\n") || "Error",
|
|
139
|
+
theme,
|
|
140
|
+
),
|
|
141
|
+
);
|
|
142
|
+
return text;
|
|
143
|
+
}
|
|
96
144
|
const d = result.details as GrepDetails | undefined;
|
|
97
145
|
if (d?._type === "grepResult" && d.text) {
|
|
98
146
|
const lines = d.text.split("\n");
|
|
@@ -105,7 +153,7 @@ export function registerGrepTool(
|
|
|
105
153
|
out.push(theme.fg("toolOutput", line));
|
|
106
154
|
}
|
|
107
155
|
if (remaining > 0) {
|
|
108
|
-
out.push(theme.fg("muted", `… (${remaining} more ${remaining === 1 ? "line" : "lines"},
|
|
156
|
+
out.push(theme.fg("muted", `… (${remaining} more ${remaining === 1 ? "line" : "lines"}, to expand)`));
|
|
109
157
|
}
|
|
110
158
|
const body = out.map((l) => ` ${l}`).join("\n") + "\n\n";
|
|
111
159
|
text.setText(fillToolBackground(body, ctx.isError ? BG_ERROR : undefined));
|
|
@@ -119,4 +167,6 @@ export function registerGrepTool(
|
|
|
119
167
|
} as unknown as ToolDefinition<any, any, any>);
|
|
120
168
|
}
|
|
121
169
|
|
|
122
|
-
function appendNotices(text: string, notices: string[]): string {
|
|
170
|
+
function appendNotices(text: string, notices: string[]): string {
|
|
171
|
+
return notices.length ? `${text}\n\n[${notices.join(". ")}]` : text;
|
|
172
|
+
}
|