@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.
Files changed (61) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +34 -17
  3. package/dist/config.d.ts +16 -0
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +30 -0
  6. package/dist/config.js.map +1 -1
  7. package/dist/fff.d.ts +16 -1
  8. package/dist/fff.d.ts.map +1 -1
  9. package/dist/fff.js +139 -33
  10. package/dist/fff.js.map +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +70 -24
  13. package/dist/index.js.map +1 -1
  14. package/dist/prompt-editor.d.ts +11 -0
  15. package/dist/prompt-editor.d.ts.map +1 -0
  16. package/dist/prompt-editor.js +78 -0
  17. package/dist/prompt-editor.js.map +1 -0
  18. package/dist/render.d.ts +9 -1
  19. package/dist/render.d.ts.map +1 -1
  20. package/dist/render.js +25 -9
  21. package/dist/render.js.map +1 -1
  22. package/dist/tools/bash.d.ts.map +1 -1
  23. package/dist/tools/bash.js +79 -32
  24. package/dist/tools/bash.js.map +1 -1
  25. package/dist/tools/find.d.ts.map +1 -1
  26. package/dist/tools/find.js +29 -10
  27. package/dist/tools/find.js.map +1 -1
  28. package/dist/tools/grep.d.ts.map +1 -1
  29. package/dist/tools/grep.js +20 -10
  30. package/dist/tools/grep.js.map +1 -1
  31. package/dist/tools/ls.d.ts.map +1 -1
  32. package/dist/tools/ls.js +11 -5
  33. package/dist/tools/ls.js.map +1 -1
  34. package/dist/tools/metrics.d.ts +6 -1
  35. package/dist/tools/metrics.d.ts.map +1 -1
  36. package/dist/tools/metrics.js +21 -8
  37. package/dist/tools/metrics.js.map +1 -1
  38. package/dist/tools/read.d.ts +2 -1
  39. package/dist/tools/read.d.ts.map +1 -1
  40. package/dist/tools/read.js +97 -31
  41. package/dist/tools/read.js.map +1 -1
  42. package/dist/types.d.ts +13 -4
  43. package/dist/types.d.ts.map +1 -1
  44. package/dist/working-indicator.d.ts +39 -31
  45. package/dist/working-indicator.d.ts.map +1 -1
  46. package/dist/working-indicator.js +114 -87
  47. package/dist/working-indicator.js.map +1 -1
  48. package/package.json +1 -1
  49. package/src/config.ts +51 -0
  50. package/src/fff.ts +158 -29
  51. package/src/index.ts +77 -24
  52. package/src/prompt-editor.ts +102 -0
  53. package/src/render.ts +30 -11
  54. package/src/tools/bash.ts +100 -34
  55. package/src/tools/find.ts +39 -17
  56. package/src/tools/grep.ts +26 -15
  57. package/src/tools/ls.ts +20 -10
  58. package/src/tools/metrics.ts +28 -8
  59. package/src/tools/read.ts +126 -31
  60. package/src/types.ts +14 -4
  61. package/src/working-indicator.ts +123 -95
@@ -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
- const result = await execute(tid, params, sig, upd, ctx);
11
- const elapsedMs = performance.now() - start;
12
- const details = (result.details ?? {});
13
- details[ELAPSED_KEY] = elapsedMs;
14
- details[CHARS_KEY] = getOutputCharCount(result);
15
- result.details = details;
16
- return result;
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;AAUvD,MAAM,UAAU,sBAAsB,CAAC,OAAkB;IACxD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QAC5C,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;QAClE,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;QACjC,OAAO,CAAC,SAAS,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC/C,MAA+C,CAAC,OAAO,GAAG,OAAO,CAAC;QACnE,OAAO,MAAM,CAAC;IACf,CAAC,CAAC;AACH,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"}
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"}
@@ -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
@@ -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;AAevH,OAAO,KAAK,EAA8B,UAAU,EAA0B,MAAM,aAAa,CAAC;AAgClG,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,GACjF,IAAI,CA0JN"}
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"}
@@ -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(fillToolBackground(renderToolError(getText(result) || "Error", theme), BG_ERROR));
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.setText(note ? fillToolBackground(note, BG_BASE) : "");
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(fillToolBackground(`\n${TOOL_RESULT_INDENT}${header}`, BG_BASE));
118
+ text.setText(fillToolBody(`\n${TOOL_RESULT_INDENT}${header}\n`, BG_BASE));
104
119
  return text;
105
120
  }
106
- text.setText(fillToolBackground(`\n${TOOL_RESULT_INDENT}${theme.fg("toolTitle", theme.bold("→ read"))} ${theme.fg("toolTitle", p2)}${theme.fg("dim", off2)}\n${TOOL_RESULT_INDENT}${FG_DIM}${total} lines — ctrl+o to expand${RST}\n`, BG_BASE));
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 nw = Math.max(3, String((d.offset || 0) + total).length);
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 out = ["", `${TOOL_RESULT_INDENT}${header}`];
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 = (d.offset || 0) + i + 1;
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)) + `${FG_DIM}›${RST}` : code;
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(fillToolBackground(rendered, BG_BASE));
132
- ctx.state._rt = rendered;
133
- // Async syntax highlighting via Shiki
134
- renderFileContent(d.content, d.filePath, d.offset || 0, maxShow, cw)
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
- const padded = hl
137
- .split("\n")
138
- .map((line, index) => {
139
- const lineNo = String((d.offset || 0) + index + 1);
140
- return `${TOOL_RESULT_INDENT}${FG_LNUM}${" ".repeat(Math.max(0, nw - lineNo.length))}${lineNo}${RST} ${FG_RULE}│${RST} ${line}${RST}`;
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(fillToolBackground(`${TOOL_RESULT_INDENT}${theme.fg("dim", fc && "text" in fc ? String(fc.text).slice(0, 120) : "done")}`, BG_BASE));
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")
@@ -1 +1 @@
1
- {"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"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"}
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, string | undefined>;
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
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
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 (widget takeover).
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
- * Why a widget: the host `Loader` extends `Text` with a hardcoded paddingX=1,
9
- * and `setWorkingIndicator({ frames })` cannot change host component layout.
10
- * To render the row flush-left we hide the host loader
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> <dim interrupt hint>`, one full
15
- * sweep per phrase — `texts` rotates through phrases chapter by chapter with
16
- * a continuous spinner phase.
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
- /** Pre-colored suffix (e.g. the dim interrupt hint) appended to every frame. */
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
- /** Estimate streamed output tokens: provider `usage.output` when exposed, else visible chars ÷ 4. */
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 — the thing the frames
95
- * API could not do.
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
- /** Dynamic right-side status segment (e.g. live token count), styled dim at
106
- * render time so theme changes don't bake stale ANSI into it. */
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 Xs` derived from this). */
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 Xs`, unknown
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 milliseconds as whole seconds with compact padded units. */
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 only when its
193
- * whole-second text changes; the shimmer frame still advances every tick.
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 hint, palette, and thinking label. */
197
+ /** Structural slice of pi's Theme needed for the palette and thinking label. */
200
198
  export interface WorkingThemeLike {
201
- /** Narrowed to the only color the hint needs; pi's ThemeColor satisfies it. */
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 widget and stop the animation. */
227
+ /** Remove the indicator and stop the animation. */
221
228
  dispose(): void;
222
- /** Update the dim right-side status segment (live token count). */
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 via the widget's TUI handle. */
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
- * Take over pi's working row with our own flush-left shimmer widget.
237
+ * Install the custom working shimmer and return its lifecycle controller.
231
238
  *
232
- * Installs a zero-padding component above the editor and hides the host
233
- * loader; returns a controller the host lifecycle drives (`start` on
234
- * agent_start, `stop` on agent_end). No-op (host defaults untouched) when
235
- * disabled or the phrase list is empty.
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":"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"}
1
+ {"version":3,"file":"working-indicator.d.ts","sourceRoot":"","sources":["../src/working-indicator.ts"],"names":[],"mappings":"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"}