@heyhuynhgiabuu/pi-pretty 0.6.26 → 0.6.28
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 +25 -0
- package/README.md +34 -17
- package/dist/config.d.ts +16 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +30 -0
- package/dist/config.js.map +1 -1
- package/dist/fff.d.ts +16 -1
- package/dist/fff.d.ts.map +1 -1
- package/dist/fff.js +139 -33
- package/dist/fff.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +70 -24
- package/dist/index.js.map +1 -1
- package/dist/prompt-editor.d.ts +11 -0
- package/dist/prompt-editor.d.ts.map +1 -0
- package/dist/prompt-editor.js +78 -0
- package/dist/prompt-editor.js.map +1 -0
- package/dist/render.d.ts +9 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +25 -9
- package/dist/render.js.map +1 -1
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +79 -32
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/find.d.ts.map +1 -1
- package/dist/tools/find.js +29 -10
- package/dist/tools/find.js.map +1 -1
- package/dist/tools/grep.d.ts.map +1 -1
- package/dist/tools/grep.js +20 -10
- package/dist/tools/grep.js.map +1 -1
- package/dist/tools/ls.d.ts.map +1 -1
- package/dist/tools/ls.js +11 -5
- package/dist/tools/ls.js.map +1 -1
- package/dist/tools/metrics.d.ts +6 -1
- package/dist/tools/metrics.d.ts.map +1 -1
- package/dist/tools/metrics.js +21 -8
- package/dist/tools/metrics.js.map +1 -1
- package/dist/tools/read.d.ts +2 -1
- package/dist/tools/read.d.ts.map +1 -1
- package/dist/tools/read.js +97 -31
- package/dist/tools/read.js.map +1 -1
- package/dist/types.d.ts +13 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/working-indicator.d.ts +39 -31
- package/dist/working-indicator.d.ts.map +1 -1
- package/dist/working-indicator.js +114 -87
- package/dist/working-indicator.js.map +1 -1
- package/package.json +1 -1
- package/src/config.ts +51 -0
- package/src/fff.ts +158 -29
- package/src/index.ts +77 -24
- package/src/prompt-editor.ts +102 -0
- package/src/render.ts +30 -11
- package/src/tools/bash.ts +100 -34
- package/src/tools/find.ts +39 -17
- package/src/tools/grep.ts +26 -15
- package/src/tools/ls.ts +20 -10
- package/src/tools/metrics.ts +28 -8
- package/src/tools/read.ts +126 -31
- package/src/types.ts +14 -4
- package/src/working-indicator.ts +123 -95
package/dist/tools/metrics.js
CHANGED
|
@@ -4,18 +4,31 @@
|
|
|
4
4
|
* Wraps execute functions to record performance metadata in result.details.
|
|
5
5
|
*/
|
|
6
6
|
import { CHARS_KEY, ELAPSED_KEY } from "../helpers.js";
|
|
7
|
-
export function wrapExecuteWithMetrics(execute) {
|
|
7
|
+
export function wrapExecuteWithMetrics(execute, onRejected) {
|
|
8
8
|
return async (tid, params, sig, upd, ctx) => {
|
|
9
9
|
const start = performance.now();
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
try {
|
|
11
|
+
const result = await execute(tid, params, sig, upd, ctx);
|
|
12
|
+
const elapsedMs = performance.now() - start;
|
|
13
|
+
const details = (result.details ?? {});
|
|
14
|
+
details[ELAPSED_KEY] = elapsedMs;
|
|
15
|
+
details[CHARS_KEY] = getOutputCharCount(result);
|
|
16
|
+
result.details = details;
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
onRejected?.(tid, {
|
|
21
|
+
elapsedMs: performance.now() - start,
|
|
22
|
+
chars: getErrorCharCount(error),
|
|
23
|
+
});
|
|
24
|
+
throw error;
|
|
25
|
+
}
|
|
17
26
|
};
|
|
18
27
|
}
|
|
28
|
+
function getErrorCharCount(error) {
|
|
29
|
+
const text = error instanceof Error ? error.message : String(error);
|
|
30
|
+
return text.replace(/\r/g, "").length;
|
|
31
|
+
}
|
|
19
32
|
function getOutputCharCount(result) {
|
|
20
33
|
const content = result.content;
|
|
21
34
|
if (!Array.isArray(content))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/tools/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/tools/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAiBvD,MAAM,UAAU,sBAAsB,CAAC,OAAkB,EAAE,UAAqC;IAC/F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACzD,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YAC5C,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;YAClE,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;YACjC,OAAO,CAAC,SAAS,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC/C,MAA+C,CAAC,OAAO,GAAG,OAAO,CAAC;YACnE,OAAO,MAAM,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,UAAU,EAAE,CAAC,GAAG,EAAE;gBACjB,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK;gBACpC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC;aAC/B,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACxC,MAAM,IAAI,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;AACvC,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAgC;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,CAAC;IACtC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QACpC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC"}
|
package/dist/tools/read.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
2
|
+
import { renderFileContent } from "../render.js";
|
|
2
3
|
import type { SdkToolDef } from "../types.js";
|
|
3
4
|
export declare function registerReadTool(pi: ExtensionAPI, cwd: string, _fffService: unknown, sdkTool: SdkToolDef, TextComp?: new (t?: string, x?: number, y?: number) => {
|
|
4
5
|
setText(v: string): void;
|
|
5
|
-
}): void;
|
|
6
|
+
}, renderContent?: typeof renderFileContent): void;
|
|
6
7
|
//# sourceMappingURL=read.d.ts.map
|
package/dist/tools/read.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAmB,YAAY,EAAoC,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAmB,YAAY,EAAoC,MAAM,iCAAiC,CAAC;AAcvH,OAAO,EAAoC,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAEpG,OAAO,KAAK,EAA8B,UAAU,EAA0B,MAAM,aAAa,CAAC;AA2ClG,wBAAgB,gBAAgB,CAC/B,EAAE,EAAE,YAAY,EAChB,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,OAAO,EACpB,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,EACnF,aAAa,GAAE,OAAO,iBAAqC,GACzD,IAAI,CAyKN"}
|
package/dist/tools/read.js
CHANGED
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
/* pi-pretty: read tool -- file reading with syntax highlighting and inline image support. */
|
|
2
|
-
import { basename, dirname } from "node:path";
|
|
2
|
+
import { basename, dirname, isAbsolute, relative, resolve, sep } from "node:path";
|
|
3
|
+
import { getReadmePath } from "@earendil-works/pi-coding-agent";
|
|
3
4
|
import { BG_BASE, BG_ERROR, FG_DIM, FG_LNUM, FG_RULE, RST, resolveBaseBackground, TOOL_RESULT_INDENT, termWidth, } from "../config.js";
|
|
4
5
|
import { normalizeLineEndings, shortPath } from "../helpers.js";
|
|
5
|
-
import { fillToolBackground, renderFileContent, renderToolError } from "../render.js";
|
|
6
|
+
import { fillToolBackground, fillToolBody, renderFileContent, renderToolError } from "../render.js";
|
|
6
7
|
import { resolveTextCtor } from "../tui-text.js";
|
|
7
8
|
import { wrapExecuteWithMetrics } from "./metrics.js";
|
|
9
|
+
function getPiDocsLabel(filePath, cwd) {
|
|
10
|
+
const packageRoot = dirname(getReadmePath());
|
|
11
|
+
const relativePath = relative(resolve(packageRoot), resolve(cwd, filePath));
|
|
12
|
+
if (relativePath === "" || relativePath === ".." || relativePath.startsWith(`..${sep}`) || isAbsolute(relativePath)) {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
const label = relativePath.split(sep).join("/");
|
|
16
|
+
return label === "README.md" || label.startsWith("docs/") || label.startsWith("examples/") ? label : undefined;
|
|
17
|
+
}
|
|
8
18
|
function getSkillName(filePath, content) {
|
|
9
19
|
if (basename(filePath) !== "SKILL.md")
|
|
10
20
|
return undefined;
|
|
@@ -30,7 +40,7 @@ function renderSkillHeader(skillName, expanded, theme) {
|
|
|
30
40
|
const hint = theme.fg("dim", `ctrl+o to ${expanded ? "collapse" : "expand"}`);
|
|
31
41
|
return `${label} ${name} ${hint}`;
|
|
32
42
|
}
|
|
33
|
-
export function registerReadTool(pi, cwd, _fffService, sdkTool, TextComp) {
|
|
43
|
+
export function registerReadTool(pi, cwd, _fffService, sdkTool, TextComp, renderContent = renderFileContent) {
|
|
34
44
|
const TC = resolveTextCtor(TextComp);
|
|
35
45
|
const home = process.env.HOME ?? "";
|
|
36
46
|
pi.registerTool({
|
|
@@ -38,6 +48,9 @@ export function registerReadTool(pi, cwd, _fffService, sdkTool, TextComp) {
|
|
|
38
48
|
label: "Read",
|
|
39
49
|
description: sdkTool.description ?? "Read file contents",
|
|
40
50
|
parameters: sdkTool.parameters,
|
|
51
|
+
promptSnippet: sdkTool.promptSnippet,
|
|
52
|
+
promptGuidelines: sdkTool.promptGuidelines,
|
|
53
|
+
constrainedSampling: sdkTool.constrainedSampling,
|
|
41
54
|
renderShell: "self",
|
|
42
55
|
execute: wrapExecuteWithMetrics(async (tid, params, sig, _upd, ctx) => {
|
|
43
56
|
const p = params;
|
|
@@ -69,14 +82,15 @@ export function registerReadTool(pi, cwd, _fffService, sdkTool, TextComp) {
|
|
|
69
82
|
}
|
|
70
83
|
const path = String(args.path ?? "");
|
|
71
84
|
const label = theme.fg("error", theme.bold("→ read"));
|
|
72
|
-
text.setText(fillToolBackground(`\n${TOOL_RESULT_INDENT}${label} ${theme.fg("toolTitle", path)}`, BG_ERROR));
|
|
85
|
+
text.setText(fillToolBackground(`\n${TOOL_RESULT_INDENT}${label} ${theme.fg("toolTitle", path)}\n`, BG_ERROR));
|
|
73
86
|
return text;
|
|
74
87
|
},
|
|
75
88
|
renderResult(result, _opt, theme, ctx) {
|
|
76
89
|
resolveBaseBackground(theme);
|
|
90
|
+
const renderToken = nextReadRenderToken(ctx);
|
|
77
91
|
const text = ctx.lastComponent ?? new TC("", 0, 0);
|
|
78
92
|
if (ctx.isError) {
|
|
79
|
-
text.setText(
|
|
93
|
+
text.setText(renderToolError(getText(result) || "Error", theme));
|
|
80
94
|
return text;
|
|
81
95
|
}
|
|
82
96
|
const d = result.details;
|
|
@@ -85,7 +99,8 @@ export function registerReadTool(pi, cwd, _fffService, sdkTool, TextComp) {
|
|
|
85
99
|
// or unsupported by the terminal.
|
|
86
100
|
if (d?._type === "readImage") {
|
|
87
101
|
const note = getText(result);
|
|
88
|
-
text
|
|
102
|
+
// Keep fallback text visually separated from the preceding tool row.
|
|
103
|
+
text.setText(note ? fillToolBody(`\n${note}`, BG_BASE) : "");
|
|
89
104
|
return text;
|
|
90
105
|
}
|
|
91
106
|
// File content — line-numbered display
|
|
@@ -100,62 +115,113 @@ export function registerReadTool(pi, cwd, _fffService, sdkTool, TextComp) {
|
|
|
100
115
|
if (!ctx.expanded) {
|
|
101
116
|
if (skillName) {
|
|
102
117
|
const header = renderSkillHeader(skillName, false, theme);
|
|
103
|
-
text.setText(
|
|
118
|
+
text.setText(fillToolBody(`\n${TOOL_RESULT_INDENT}${header}\n`, BG_BASE));
|
|
104
119
|
return text;
|
|
105
120
|
}
|
|
106
|
-
|
|
121
|
+
const docsLabel = getPiDocsLabel(filePath, cwd);
|
|
122
|
+
const title = docsLabel
|
|
123
|
+
? `${theme.fg("toolTitle", theme.bold("→ read docs"))} ${theme.fg("toolTitle", docsLabel)}`
|
|
124
|
+
: `${theme.fg("toolTitle", theme.bold("→ read"))} ${theme.fg("toolTitle", p2)}`;
|
|
125
|
+
text.setText(fillToolBody(`\n${TOOL_RESULT_INDENT}${title}${theme.fg("dim", off2)} ${FG_DIM}${total} lines — ctrl+o to expand${RST}`, BG_BASE));
|
|
107
126
|
return text;
|
|
108
127
|
}
|
|
109
128
|
const maxShow = lines.length;
|
|
110
129
|
const show = lines.slice(0, maxShow);
|
|
111
|
-
const
|
|
130
|
+
const offset = d.offset || 0;
|
|
131
|
+
const nw = Math.max(3, String(offset + total).length);
|
|
112
132
|
const gw = nw + 3;
|
|
113
133
|
const cw = Math.max(1, tw - gw);
|
|
114
134
|
const header = skillName
|
|
115
135
|
? renderSkillHeader(skillName, true, theme)
|
|
116
136
|
: `${theme.fg("toolTitle", theme.bold("→ read"))} ${theme.fg("toolTitle", p2)}${theme.fg("dim", off2)}`;
|
|
117
|
-
const
|
|
137
|
+
const highlightRequest = {
|
|
138
|
+
content: d.content,
|
|
139
|
+
filePath: d.filePath,
|
|
140
|
+
offset,
|
|
141
|
+
maxLines: maxShow,
|
|
142
|
+
width: cw,
|
|
143
|
+
};
|
|
144
|
+
const cachedHighlight = getCachedReadHighlight(ctx, highlightRequest);
|
|
145
|
+
if (cachedHighlight !== undefined) {
|
|
146
|
+
const highlighted = buildHighlightedRead(cachedHighlight, header, skillName, offset, nw, tw);
|
|
147
|
+
text.setText(fillToolBody(highlighted, BG_BASE));
|
|
148
|
+
return text;
|
|
149
|
+
}
|
|
150
|
+
const out = ["", `${TOOL_RESULT_INDENT}${header}`, ""];
|
|
118
151
|
out.push(`${TOOL_RESULT_INDENT}${FG_RULE}${"─".repeat(tw - 1)}${RST}`);
|
|
119
152
|
for (let i = 0; i < show.length; i++) {
|
|
120
|
-
const ln =
|
|
153
|
+
const ln = offset + i + 1;
|
|
121
154
|
const code = show[i] ?? "";
|
|
122
|
-
const display = code.length > cw ? code.slice(0, Math.max(0, cw - 1))
|
|
155
|
+
const display = code.length > cw ? `${code.slice(0, Math.max(0, cw - 1))}${FG_DIM}›${RST}` : code;
|
|
123
156
|
const lineNo = String(ln);
|
|
124
157
|
out.push(`${TOOL_RESULT_INDENT}${FG_LNUM}${" ".repeat(Math.max(0, nw - lineNo.length))}${lineNo}${RST} ${FG_RULE}│${RST} ${display}${RST}`);
|
|
125
158
|
}
|
|
126
159
|
if (total > maxShow) {
|
|
127
160
|
out.push(`${TOOL_RESULT_INDENT}${FG_DIM}… ${total - maxShow} more lines (${total} total)${RST}`);
|
|
128
161
|
}
|
|
129
|
-
out.push("");
|
|
130
162
|
const rendered = out.join("\n");
|
|
131
|
-
text.setText(
|
|
132
|
-
|
|
133
|
-
//
|
|
134
|
-
|
|
163
|
+
text.setText(fillToolBody(rendered, BG_BASE));
|
|
164
|
+
// Async syntax highlighting via Shiki. The component is reused across
|
|
165
|
+
// expansion changes, so stale work must not restore an older view.
|
|
166
|
+
renderContent(d.content, d.filePath, offset, maxShow, cw)
|
|
135
167
|
.then((hl) => {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
.join("\n");
|
|
143
|
-
const divider = skillName
|
|
144
|
-
? `${TOOL_RESULT_INDENT}${FG_RULE}${"─".repeat(Math.max(1, tw - 1))}${RST}\n`
|
|
145
|
-
: "";
|
|
146
|
-
const rendered = `\n${TOOL_RESULT_INDENT}${header}\n${divider}${padded}\n`;
|
|
147
|
-
text.setText(fillToolBackground(rendered, BG_BASE));
|
|
148
|
-
ctx.state._rt = rendered;
|
|
168
|
+
if (!isCurrentReadRender(ctx, renderToken))
|
|
169
|
+
return;
|
|
170
|
+
setCachedReadHighlight(ctx, highlightRequest, hl);
|
|
171
|
+
const highlighted = buildHighlightedRead(hl, header, skillName, offset, nw, tw);
|
|
172
|
+
text.setText(fillToolBody(highlighted, BG_BASE));
|
|
173
|
+
ctx.invalidate?.();
|
|
149
174
|
})
|
|
150
175
|
.catch(() => { });
|
|
151
176
|
return text;
|
|
152
177
|
}
|
|
153
178
|
const fc = result.content?.[0];
|
|
154
|
-
text.setText(
|
|
179
|
+
text.setText(fillToolBody(`${TOOL_RESULT_INDENT}${theme.fg("dim", fc && "text" in fc ? String(fc.text).slice(0, 120) : "done")}`, BG_BASE));
|
|
155
180
|
return text;
|
|
156
181
|
},
|
|
157
182
|
});
|
|
158
183
|
}
|
|
184
|
+
const READ_RENDER_TOKEN = "__piPrettyReadRenderToken";
|
|
185
|
+
const READ_HIGHLIGHT_CACHE = "__piPrettyReadHighlightCache";
|
|
186
|
+
function nextReadRenderToken(ctx) {
|
|
187
|
+
const state = ctx.state;
|
|
188
|
+
const token = typeof state[READ_RENDER_TOKEN] === "number" ? state[READ_RENDER_TOKEN] + 1 : 1;
|
|
189
|
+
state[READ_RENDER_TOKEN] = token;
|
|
190
|
+
return token;
|
|
191
|
+
}
|
|
192
|
+
function isCurrentReadRender(ctx, token) {
|
|
193
|
+
return ctx.state[READ_RENDER_TOKEN] === token;
|
|
194
|
+
}
|
|
195
|
+
function getCachedReadHighlight(ctx, request) {
|
|
196
|
+
const cache = ctx.state[READ_HIGHLIGHT_CACHE];
|
|
197
|
+
if (!cache)
|
|
198
|
+
return undefined;
|
|
199
|
+
if (cache.content !== request.content ||
|
|
200
|
+
cache.filePath !== request.filePath ||
|
|
201
|
+
cache.offset !== request.offset ||
|
|
202
|
+
cache.maxLines !== request.maxLines ||
|
|
203
|
+
cache.width !== request.width) {
|
|
204
|
+
return undefined;
|
|
205
|
+
}
|
|
206
|
+
return cache.highlighted;
|
|
207
|
+
}
|
|
208
|
+
function setCachedReadHighlight(ctx, request, highlighted) {
|
|
209
|
+
ctx.state[READ_HIGHLIGHT_CACHE] = {
|
|
210
|
+
...request,
|
|
211
|
+
highlighted,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
function buildHighlightedRead(highlighted, header, skillName, offset, nw, tw) {
|
|
215
|
+
const padded = highlighted
|
|
216
|
+
.split("\n")
|
|
217
|
+
.map((line, index) => {
|
|
218
|
+
const lineNo = String(offset + index + 1);
|
|
219
|
+
return `${TOOL_RESULT_INDENT}${FG_LNUM}${" ".repeat(Math.max(0, nw - lineNo.length))}${lineNo}${RST} ${FG_RULE}│${RST} ${line}${RST}`;
|
|
220
|
+
})
|
|
221
|
+
.join("\n");
|
|
222
|
+
const divider = skillName ? `${TOOL_RESULT_INDENT}${FG_RULE}${"─".repeat(Math.max(1, tw - 1))}${RST}\n` : "";
|
|
223
|
+
return `\n${TOOL_RESULT_INDENT}${header}\n\n${divider}${padded}`;
|
|
224
|
+
}
|
|
159
225
|
function getText(result) {
|
|
160
226
|
return ((result.content ?? [])
|
|
161
227
|
.filter((c) => c.type === "text")
|
package/dist/tools/read.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAE7F,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EACN,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,EACP,OAAO,EACP,GAAG,EACH,qBAAqB,EACrB,kBAAkB,EAClB,SAAS,GACT,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAItD,SAAS,YAAY,CAAC,QAAgB,EAAE,OAAe;IACtD,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IAExD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,CAAC;QACjF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACtG,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7C,CAAC;IACF,CAAC;IAED,OAAO,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAiB,EAAE,QAAiB,EAAE,KAAgB;IAChF,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9E,OAAO,GAAG,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC/B,EAAgB,EAChB,GAAW,EACX,WAAoB,EACpB,OAAmB,EACnB,QAAmF;IAEnF,MAAM,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAEpC,EAAE,CAAC,YAAY,CAAC;QACf,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,oBAAoB;QACxD,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,WAAW,EAAE,MAAM;QAEnB,OAAO,EAAE,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAqB,EAAE,EAAE;YACvF,MAAM,CAAC,GAAG,MAAa,CAAC;YACxB,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAW,CAAC;YAE9E,MAAM,UAAU,GAAI,MAAM,CAAC,OAAiB,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;YACnF,IAAI,UAAU,EAAE,CAAC;gBAChB,MAAM,CAAC,OAAO,GAAG;oBAChB,KAAK,EAAE,WAAW;oBAClB,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;iBACf,CAAC;gBACjB,OAAO,MAAM,CAAC;YACf,CAAC;YAED,MAAM,EAAE,GAAG,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,OAAO,GAAG;gBAChB,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;gBAC9B,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACnD,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAC1B,CAAC;YACjB,OAAO,MAAM,CAAC;QACf,CAAC,CAAC;QAEF,UAAU,CAAC,IAAS,EAAE,KAAgB,EAAE,GAAkB;YACzD,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAE7B,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACjB,OAAO,IAAI,CAAC;YACb,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACrC,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,kBAAkB,GAAG,KAAK,IAAI,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC7G,OAAO,IAAI,CAAC;QACb,CAAC;QAED,YAAY,CAAC,MAAc,EAAE,IAAa,EAAE,KAAgB,EAAE,GAAkB;YAC/E,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAE7B,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAEnD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAC/F,OAAO,IAAI,CAAC;YACb,CAAC;YAED,MAAM,CAAC,GAAG,MAAM,CAAC,OAAkC,CAAC;YAEpD,0EAA0E;YAC1E,6EAA6E;YAC7E,kCAAkC;YAClC,IAAI,CAAC,EAAE,KAAK,KAAK,WAAW,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5D,OAAO,IAAI,CAAC;YACb,CAAC;YAED,uCAAuC;YACvC,IAAI,CAAC,EAAE,KAAK,KAAK,UAAU,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC1C,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACpC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;gBAC1C,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;gBACpD,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACnB,IAAI,SAAS,EAAE,CAAC;wBACf,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;wBAC1D,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,kBAAkB,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;wBAC9E,OAAO,IAAI,CAAC;oBACb,CAAC;oBACD,IAAI,CAAC,OAAO,CACX,kBAAkB,CACjB,KAAK,kBAAkB,GAAG,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,kBAAkB,GAAG,MAAM,GAAG,KAAK,4BAA4B,GAAG,IAAI,EACrM,OAAO,CACP,CACD,CAAC;oBACF,OAAO,IAAI,CAAC;gBACb,CAAC;gBACD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBACrC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC/D,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAClB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBAEhC,MAAM,MAAM,GAAG,SAAS;oBACvB,CAAC,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;oBAC3C,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;gBACzG,MAAM,GAAG,GAAa,CAAC,EAAE,EAAE,GAAG,kBAAkB,GAAG,MAAM,EAAE,CAAC,CAAC;gBAC7D,GAAG,CAAC,IAAI,CAAC,GAAG,kBAAkB,GAAG,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;gBACvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACnC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;oBAClG,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC1B,GAAG,CAAC,IAAI,CACP,GAAG,kBAAkB,GAAG,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,IAAI,OAAO,IAAI,GAAG,IAAI,OAAO,GAAG,GAAG,EAAE,CACjI,CAAC;gBACH,CAAC;gBACD,IAAI,KAAK,GAAG,OAAO,EAAE,CAAC;oBACrB,GAAG,CAAC,IAAI,CAAC,GAAG,kBAAkB,GAAG,MAAM,KAAK,KAAK,GAAG,OAAO,gBAAgB,KAAK,UAAU,GAAG,EAAE,CAAC,CAAC;gBAClG,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACb,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;gBACnD,GAAW,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC;gBAElC,sCAAsC;gBACtC,iBAAiB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;qBAClE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;oBACZ,MAAM,MAAM,GAAG,EAAE;yBACf,KAAK,CAAC,IAAI,CAAC;yBACX,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;wBACpB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;wBACnD,OAAO,GAAG,kBAAkB,GAAG,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,IAAI,OAAO,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;oBACvI,CAAC,CAAC;yBACD,IAAI,CAAC,IAAI,CAAC,CAAC;oBACb,MAAM,OAAO,GAAG,SAAS;wBACxB,CAAC,CAAC,GAAG,kBAAkB,GAAG,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI;wBAC7E,CAAC,CAAC,EAAE,CAAC;oBACN,MAAM,QAAQ,GAAG,KAAK,kBAAkB,GAAG,MAAM,KAAK,OAAO,GAAG,MAAM,IAAI,CAAC;oBAC3E,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;oBACnD,GAAW,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC;gBACnC,CAAC,CAAC;qBACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAElB,OAAO,IAAI,CAAC;YACb,CAAC;YAED,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,OAAO,CACX,kBAAkB,CACjB,GAAG,kBAAkB,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EACtG,OAAO,CACP,CACD,CAAC;YACF,OAAO,IAAI,CAAC;QACb,CAAC;KAC2C,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,OAAO,CAAC,MAAc;IAC9B,OAAO,CACL,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAmB;SACvC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAClB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* pi-pretty shared types.
|
|
3
3
|
*/
|
|
4
|
-
import type { ImageContent, TextContent } from "@earendil-works/pi-ai";
|
|
5
|
-
import type { AgentToolResult } from "@earendil-works/pi-coding-agent";
|
|
4
|
+
import type { ConstrainedSamplingConfig, ImageContent, TextContent } from "@earendil-works/pi-ai";
|
|
5
|
+
import type { AgentToolResult, CustomEditor } from "@earendil-works/pi-coding-agent";
|
|
6
|
+
import type { FffInitOptions } from "./fff.js";
|
|
6
7
|
export type { FileFinder, FileItem, GrepCursor, GrepMatch, GrepResult, SearchResult } from "@ff-labs/fff-node";
|
|
7
8
|
export type ToolContent = TextContent | ImageContent;
|
|
8
9
|
export type { ImageContent, TextContent };
|
|
@@ -13,9 +14,11 @@ export interface ThemeLike {
|
|
|
13
14
|
}
|
|
14
15
|
export interface RenderCtxLike {
|
|
15
16
|
lastComponent?: ComponentLike;
|
|
17
|
+
toolCallId?: string;
|
|
16
18
|
isError?: boolean;
|
|
17
|
-
state: Record<string,
|
|
19
|
+
state: Record<string, unknown>;
|
|
18
20
|
expanded?: boolean;
|
|
21
|
+
invalidate?: () => void;
|
|
19
22
|
}
|
|
20
23
|
export interface TextLike {
|
|
21
24
|
setText(v: string): void;
|
|
@@ -98,6 +101,9 @@ export interface SdkToolDef {
|
|
|
98
101
|
description?: string;
|
|
99
102
|
label?: string;
|
|
100
103
|
parameters?: unknown;
|
|
104
|
+
promptSnippet?: string;
|
|
105
|
+
promptGuidelines?: string[];
|
|
106
|
+
constrainedSampling?: false | ConstrainedSamplingConfig;
|
|
101
107
|
execute: (...args: any[]) => Promise<AgentToolResult<any>>;
|
|
102
108
|
}
|
|
103
109
|
export interface SdkTools {
|
|
@@ -125,7 +131,7 @@ export interface FffServiceWithCursor extends FffServiceLike {
|
|
|
125
131
|
}
|
|
126
132
|
/** FFF lifecycle interface (used by session lifecycle code). */
|
|
127
133
|
export interface FffService extends FffServiceWithCursor {
|
|
128
|
-
ensureFinder(cwd: string): Promise<void>;
|
|
134
|
+
ensureFinder(cwd: string, options?: FffInitOptions): Promise<void>;
|
|
129
135
|
destroy(): void;
|
|
130
136
|
isModuleLoaded(): boolean;
|
|
131
137
|
tryLoadModule(): Promise<boolean>;
|
|
@@ -134,6 +140,7 @@ export interface CursorStore {
|
|
|
134
140
|
store(cursor: unknown): string;
|
|
135
141
|
get(id: string): unknown | undefined;
|
|
136
142
|
}
|
|
143
|
+
export type CustomEditorConstructor = new (...args: ConstructorParameters<typeof CustomEditor>) => CustomEditor;
|
|
137
144
|
export interface PiPrettyDeps {
|
|
138
145
|
sdk?: SdkTools;
|
|
139
146
|
TextComponent?: new (text?: string, x?: number, y?: number) => ComponentLike;
|
|
@@ -142,5 +149,7 @@ export interface PiPrettyDeps {
|
|
|
142
149
|
* to the package export. Injectable so tests can verify against the exact
|
|
143
150
|
* class instance they construct rows from. */
|
|
144
151
|
assistantMessageComponent?: unknown;
|
|
152
|
+
/** Host CustomEditor class for the live prompt icon; defaults to the package export. */
|
|
153
|
+
customEditorClass?: CustomEditorConstructor;
|
|
145
154
|
}
|
|
146
155
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* omp-style shimmer working indicator
|
|
2
|
+
* omp-style shimmer working indicator.
|
|
3
3
|
*
|
|
4
4
|
* Ports the shimmer sweep from oh-my-pi's `modes/theme/shimmer.ts`: the sweep
|
|
5
5
|
* is discretized into one pre-rendered frame per band position, cycled at
|
|
6
6
|
* 1000/30 ms so the band travels 30 cells/second — omp's exact speed.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* (`setWorkingVisible(false)`) and install our own zero-padding component via
|
|
12
|
-
* `setWidget(..., "aboveEditor")`, animating it with a 33ms interval.
|
|
8
|
+
* On hosts that expose Pi's embedded working-status API, frames are delegated
|
|
9
|
+
* to the host so the row is rendered in the editor's top border. Older hosts
|
|
10
|
+
* without that API use the zero-padding widget fallback above the editor.
|
|
13
11
|
*
|
|
14
|
-
* Frame layout: `<dim spinner> <shimmer text
|
|
15
|
-
*
|
|
16
|
-
*
|
|
12
|
+
* Frame layout: `<dim spinner> <shimmer text>`, one full sweep per phrase —
|
|
13
|
+
* `texts` rotates through phrases chapter by chapter with a continuous spinner
|
|
14
|
+
* phase. The extension adds no interrupt hint or token-count suffix.
|
|
17
15
|
*/
|
|
18
16
|
import { type ThinkingIndicatorConfig, type WorkingIndicatorConfig } from "./config.js";
|
|
19
17
|
/** One cell per frame at 33ms = omp's 30 cells/second band speed. */
|
|
@@ -32,6 +30,7 @@ export interface WorkingIndicatorSettings {
|
|
|
32
30
|
mode: WorkingIndicatorMode;
|
|
33
31
|
palette: WorkingIndicatorPalette;
|
|
34
32
|
bold: boolean;
|
|
33
|
+
/** @deprecated Retained for config compatibility; no interrupt hint is rendered. */
|
|
35
34
|
hint: boolean;
|
|
36
35
|
/** Tint mid/high tiers (and dim the spinner) with a per-session accent color. */
|
|
37
36
|
sessionAccent: boolean;
|
|
@@ -70,7 +69,7 @@ export interface WorkingFrameOptions {
|
|
|
70
69
|
spinnerColor?: string;
|
|
71
70
|
/** Wrap every frame in italic (pi's hidden-thinking label is italic). */
|
|
72
71
|
italic?: boolean;
|
|
73
|
-
/**
|
|
72
|
+
/** @deprecated Retained for call-site compatibility; suffixes are not rendered. */
|
|
74
73
|
hint?: string;
|
|
75
74
|
intervalMs?: number;
|
|
76
75
|
}
|
|
@@ -83,7 +82,7 @@ export declare function buildWorkingFrames(texts: string[], options: WorkingFram
|
|
|
83
82
|
frames: string[];
|
|
84
83
|
intervalMs: number;
|
|
85
84
|
};
|
|
86
|
-
/**
|
|
85
|
+
/** @deprecated The working row no longer displays token stats. */
|
|
87
86
|
export declare function workingTokens(message: unknown): number;
|
|
88
87
|
/** Slice of the pi-tui TUI instance the widget needs. */
|
|
89
88
|
export interface WidgetTuiLike {
|
|
@@ -91,8 +90,8 @@ export interface WidgetTuiLike {
|
|
|
91
90
|
}
|
|
92
91
|
/**
|
|
93
92
|
* Zero-padding working-row component. The host renders whatever `render()`
|
|
94
|
-
* returns with no margins, so the row sits flush-left
|
|
95
|
-
*
|
|
93
|
+
* returns with no margins, so the legacy widget row sits flush-left without
|
|
94
|
+
* relying on the host loader's padding.
|
|
96
95
|
*/
|
|
97
96
|
export declare class WorkingWidget {
|
|
98
97
|
#private;
|
|
@@ -102,9 +101,8 @@ export declare class WorkingWidget {
|
|
|
102
101
|
* ticker) reuse this widget's TUI handle instead of relying on natural
|
|
103
102
|
* streaming renders. */
|
|
104
103
|
requestRender(): void;
|
|
105
|
-
/**
|
|
106
|
-
|
|
107
|
-
setStats(text: string | undefined): void;
|
|
104
|
+
/** @deprecated Token stats are owned by Pi and are no longer rendered here. */
|
|
105
|
+
setStats(_text: string | undefined): void;
|
|
108
106
|
start(): void;
|
|
109
107
|
stop(): void;
|
|
110
108
|
/** Flush-left single line; invisible (no lines) while stopped. */
|
|
@@ -130,7 +128,7 @@ export interface PerRowThinkingLabels {
|
|
|
130
128
|
/** Mark the message currently streaming a thinking block (its row animates). */
|
|
131
129
|
setActive(timestamp: number): void;
|
|
132
130
|
/** Freeze a message's completed thinking duration in ms (its row shows
|
|
133
|
-
* `Thought for
|
|
131
|
+
* `Thought for X` derived from this). */
|
|
134
132
|
complete(timestamp: number, durationMs: number): void;
|
|
135
133
|
/** Drop the active mark (run ended); completed rows keep their durations. */
|
|
136
134
|
clearActive(): void;
|
|
@@ -141,7 +139,7 @@ export interface PerRowThinkingLabels {
|
|
|
141
139
|
* Intercept the host's per-row label fan-out method
|
|
142
140
|
* (`AssistantMessageComponent.prototype.setHiddenThinkingLabel`): each row
|
|
143
141
|
* substitutes the incoming global label with its own — the streaming row
|
|
144
|
-
* animates, completed rows stay frozen at their own `Thought for
|
|
142
|
+
* animates, completed rows stay frozen at their own `Thought for X`, unknown
|
|
145
143
|
* rows fall back to pi's default. Any per-call failure passes the incoming
|
|
146
144
|
* label through unchanged, so a host internals change degrades to pi-pretty's
|
|
147
145
|
* global-label behavior instead of breaking. Durations live per session.
|
|
@@ -166,7 +164,7 @@ export interface ThinkingTimer {
|
|
|
166
164
|
/** Restore pi's default label and make the timer terminal. */
|
|
167
165
|
restore(): void;
|
|
168
166
|
}
|
|
169
|
-
/** Format elapsed
|
|
167
|
+
/** Format sub-second elapsed time as milliseconds, then use compact whole seconds. */
|
|
170
168
|
export declare function formatThinkingDuration(elapsedMs: number): string;
|
|
171
169
|
/**
|
|
172
170
|
* Couple elapsed-time wording to the label animator through an injected clock.
|
|
@@ -189,26 +187,35 @@ export declare function thinkingBlockActive(message: unknown): boolean;
|
|
|
189
187
|
* the working row. Pi renders the label as static italic `thinkingText` text;
|
|
190
188
|
* the only extension lever is `setHiddenThinkingLabel(label)`, which rebuilds
|
|
191
189
|
* chat children, so index.ts drives it at 30fps only while the streaming
|
|
192
|
-
* message's last block is thinking. The elapsed label is rebuilt
|
|
193
|
-
*
|
|
190
|
+
* message's last block is thinking. The elapsed label is rebuilt when its
|
|
191
|
+
* displayed duration changes; the shimmer frame still advances every tick.
|
|
194
192
|
*
|
|
195
193
|
* Tiers: low = theme `thinkingText` (pi's own label look), mid/high = session
|
|
196
194
|
* accent when enabled; every frame is italic like pi's label; no spinner.
|
|
197
195
|
*/
|
|
198
196
|
export declare function createThinkingLabelAnimator(ui: ThinkingUiLike, workSettings: WorkingIndicatorSettings, sessionName?: string, thinking?: ThinkingIndicatorSettings): ThinkingLabelAnimator;
|
|
199
|
-
/** Structural slice of pi's Theme needed for the
|
|
197
|
+
/** Structural slice of pi's Theme needed for the palette and thinking label. */
|
|
200
198
|
export interface WorkingThemeLike {
|
|
201
|
-
/**
|
|
199
|
+
/** Retained for compatibility with older theme adapters. */
|
|
202
200
|
fg?: (name: "dim", text: string) => string;
|
|
203
201
|
getFgAnsi?: (name: "dim" | "muted" | "accent" | "thinkingText") => string;
|
|
204
202
|
}
|
|
203
|
+
export interface WorkingStatusOptionsLike {
|
|
204
|
+
frames?: string[];
|
|
205
|
+
intervalMs?: number;
|
|
206
|
+
}
|
|
205
207
|
export interface WorkingUiLike {
|
|
206
208
|
theme?: WorkingThemeLike;
|
|
209
|
+
/** Hosts with Pi's embedded working-status API render this in the editor border. */
|
|
210
|
+
setWorkingIndicator?: (options?: WorkingStatusOptionsLike) => void;
|
|
211
|
+
/** Clear the host message appended after a custom native frame. */
|
|
212
|
+
setWorkingMessage?: (message?: string) => void;
|
|
207
213
|
setWorkingVisible(visible: boolean): void;
|
|
208
214
|
setWidget(key: string, factory: ((tui: WidgetTuiLike, theme: unknown) => WorkingWidget) | undefined, options?: {
|
|
209
215
|
placement?: "aboveEditor" | "belowEditor";
|
|
210
216
|
}): void;
|
|
211
217
|
}
|
|
218
|
+
/** @deprecated Retained for compatibility with the former hint-resolution seam. */
|
|
212
219
|
export interface KeybindingsLike {
|
|
213
220
|
getKeys(name: string): string[];
|
|
214
221
|
}
|
|
@@ -217,22 +224,23 @@ export interface WorkingIndicatorController {
|
|
|
217
224
|
start(): void;
|
|
218
225
|
/** Streaming ended — hide the row and pause the animation. */
|
|
219
226
|
stop(): void;
|
|
220
|
-
/** Remove the
|
|
227
|
+
/** Remove the indicator and stop the animation. */
|
|
221
228
|
dispose(): void;
|
|
222
|
-
/**
|
|
229
|
+
/** @deprecated Token stats are owned by Pi and are no longer rendered here. */
|
|
223
230
|
setStats(text: string | undefined): void;
|
|
224
|
-
/** Request a host render
|
|
231
|
+
/** Request a host render for consumers that drive another animated label. */
|
|
225
232
|
requestRender(): void;
|
|
226
233
|
/** Pre-rendered frames (exposed for diagnostics). */
|
|
227
234
|
readonly frames: readonly string[];
|
|
228
235
|
}
|
|
229
236
|
/**
|
|
230
|
-
*
|
|
237
|
+
* Install the custom working shimmer and return its lifecycle controller.
|
|
231
238
|
*
|
|
232
|
-
*
|
|
233
|
-
*
|
|
234
|
-
*
|
|
235
|
-
*
|
|
239
|
+
* Current Pi hosts receive the pre-rendered frames through the embedded
|
|
240
|
+
* working-status API, which places them in the editor's top border. Older
|
|
241
|
+
* hosts use a zero-padding widget above the editor. The host lifecycle drives
|
|
242
|
+
* the controller (`start` on agent_start, `stop` on agent_end); disabled or
|
|
243
|
+
* empty phrase settings leave host defaults untouched.
|
|
236
244
|
*/
|
|
237
245
|
export declare function installWorkingIndicator(ui: WorkingUiLike, settings: WorkingIndicatorSettings, deps?: {
|
|
238
246
|
getKeybindings?: () => KeybindingsLike | undefined | Promise<KeybindingsLike | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"working-indicator.d.ts","sourceRoot":"","sources":["../src/working-indicator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"working-indicator.d.ts","sourceRoot":"","sources":["../src/working-indicator.ts"],"names":[],"mappings":"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"}
|