@heyhuynhgiabuu/pi-pretty 0.6.16 → 0.6.18

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 (77) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +6 -16
  3. package/dist/config.d.ts +1 -0
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +61 -18
  6. package/dist/config.js.map +1 -1
  7. package/dist/expand.d.ts +0 -6
  8. package/dist/expand.d.ts.map +1 -1
  9. package/dist/expand.js +0 -13
  10. package/dist/expand.js.map +1 -1
  11. package/dist/image.js +1 -1
  12. package/dist/index.d.ts +1 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +18 -21
  15. package/dist/index.js.map +1 -1
  16. package/dist/render.d.ts +5 -7
  17. package/dist/render.d.ts.map +1 -1
  18. package/dist/render.js +16 -16
  19. package/dist/render.js.map +1 -1
  20. package/dist/tools/bash.d.ts +1 -1
  21. package/dist/tools/bash.d.ts.map +1 -1
  22. package/dist/tools/bash.js +18 -23
  23. package/dist/tools/bash.js.map +1 -1
  24. package/dist/tools/find.d.ts +2 -2
  25. package/dist/tools/find.d.ts.map +1 -1
  26. package/dist/tools/find.js +12 -8
  27. package/dist/tools/find.js.map +1 -1
  28. package/dist/tools/grep.d.ts +2 -2
  29. package/dist/tools/grep.d.ts.map +1 -1
  30. package/dist/tools/grep.js +5 -5
  31. package/dist/tools/grep.js.map +1 -1
  32. package/dist/tools/labels.d.ts +2 -0
  33. package/dist/tools/labels.d.ts.map +1 -0
  34. package/dist/tools/labels.js +7 -0
  35. package/dist/tools/labels.js.map +1 -0
  36. package/dist/tools/ls.d.ts +1 -1
  37. package/dist/tools/ls.d.ts.map +1 -1
  38. package/dist/tools/ls.js +1 -1
  39. package/dist/tools/ls.js.map +1 -1
  40. package/dist/tools/read.d.ts +1 -1
  41. package/dist/tools/read.d.ts.map +1 -1
  42. package/dist/tools/read.js +22 -40
  43. package/dist/tools/read.js.map +1 -1
  44. package/dist/tui-text.d.ts +2 -20
  45. package/dist/tui-text.d.ts.map +1 -1
  46. package/dist/tui-text.js +3 -46
  47. package/dist/tui-text.js.map +1 -1
  48. package/dist/types.d.ts +3 -27
  49. package/dist/types.d.ts.map +1 -1
  50. package/package.json +4 -4
  51. package/src/collapsed-hint.ts +1 -1
  52. package/src/config.ts +67 -22
  53. package/src/expand.ts +0 -14
  54. package/src/find-glob.ts +1 -1
  55. package/src/image.ts +1 -1
  56. package/src/index.ts +25 -34
  57. package/src/notices.ts +1 -1
  58. package/src/render.ts +44 -43
  59. package/src/tools/bash.ts +24 -48
  60. package/src/tools/find.ts +22 -36
  61. package/src/tools/grep.ts +12 -15
  62. package/src/tools/labels.ts +3 -0
  63. package/src/tools/ls.ts +16 -10
  64. package/src/tools/metrics.ts +1 -1
  65. package/src/tools/read.ts +39 -59
  66. package/src/tui-text.ts +10 -49
  67. package/src/types.ts +3 -35
  68. package/dist/multi-grep-fallback.d.ts +0 -30
  69. package/dist/multi-grep-fallback.d.ts.map +0 -1
  70. package/dist/multi-grep-fallback.js +0 -205
  71. package/dist/multi-grep-fallback.js.map +0 -1
  72. package/dist/tools/multi-grep.d.ts +0 -7
  73. package/dist/tools/multi-grep.d.ts.map +0 -1
  74. package/dist/tools/multi-grep.js +0 -298
  75. package/dist/tools/multi-grep.js.map +0 -1
  76. package/src/multi-grep-fallback.ts +0 -248
  77. package/src/tools/multi-grep.ts +0 -339
@@ -2,22 +2,12 @@
2
2
  /* pi-pretty: read tool -- file reading with syntax highlighting and inline image support. */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.registerReadTool = registerReadTool;
5
+ const pi_tui_1 = require("@earendil-works/pi-tui");
5
6
  const config_js_1 = require("../config.js");
6
7
  const helpers_js_1 = require("../helpers.js");
7
- const metrics_js_1 = require("./metrics.js");
8
8
  const render_js_1 = require("../render.js");
9
9
  const tui_text_js_1 = require("../tui-text.js");
10
- // Simple terminal image support check
11
- function isImageTerminal() {
12
- const term = (process.env.TERM_PROGRAM ?? process.env.TERM ?? "").toLowerCase();
13
- const proto = (process.env.PRETTY_IMAGE_PROTOCOL ?? "").toLowerCase();
14
- if (proto === "kitty" || proto === "iterm2")
15
- return true;
16
- if (proto === "none")
17
- return false;
18
- return (["ghostty", "kitty", "iterm.app", "wezterm", "mintty"].some((t) => term.includes(t)) ||
19
- process.env.LC_TERMINAL === "iTerm2");
20
- }
10
+ const metrics_js_1 = require("./metrics.js");
21
11
  function registerReadTool(pi, cwd, _fffService, sdkTool, TextComp) {
22
12
  const TC = (0, tui_text_js_1.resolveTextCtor)(TextComp);
23
13
  const home = process.env.HOME ?? "";
@@ -53,39 +43,31 @@ function registerReadTool(pi, cwd, _fffService, sdkTool, TextComp) {
53
43
  renderCall(args, theme, ctx) {
54
44
  (0, config_js_1.resolveBaseBackground)(theme);
55
45
  const text = ctx.lastComponent ?? new TC("", 0, 0);
56
- text.setText("");
46
+ if (!ctx.isError) {
47
+ text.setText("");
48
+ return text;
49
+ }
50
+ const path = String(args.path ?? "");
51
+ const label = theme.fg("error", theme.bold("→ read"));
52
+ text.setText((0, render_js_1.fillToolBackground)(`\n${config_js_1.TOOL_RESULT_INDENT}${label} ${theme.fg("toolTitle", path)}`, config_js_1.BG_ERROR));
57
53
  return text;
58
54
  },
59
55
  renderResult(result, _opt, theme, ctx) {
60
56
  (0, config_js_1.resolveBaseBackground)(theme);
61
57
  const text = ctx.lastComponent ?? new TC("", 0, 0);
62
58
  if (ctx.isError) {
63
- text.setText((0, render_js_1.renderToolError)(getText(result) || "Error", theme));
59
+ text.setText((0, render_js_1.fillToolBackground)((0, render_js_1.renderToolError)(getText(result) || "Error", theme), config_js_1.BG_ERROR));
64
60
  return text;
65
61
  }
66
62
  const d = result.details;
67
- // Image rendering
63
+ // Image rendering — use pi-tui Image component
68
64
  if (d?._type === "readImage") {
69
- if (ctx.showImages && isImageTerminal()) {
70
- try {
71
- const T = require("@earendil-works/pi-tui").Text;
72
- const img = new T("", 0, 0);
73
- if (d.mimeType.startsWith("image/svg")) {
74
- img.setText(d.data);
75
- }
76
- else {
77
- const pngData = require("@earendil-works/pi-coding-agent").convertToPng?.(d.data) ?? d.data;
78
- img.setText(`\x1b_Ga=T,f=100,m=${d.mimeType === "image/png" ? "1" : "0"};${pngData}\x1b\\\\`);
79
- }
80
- return img;
81
- }
82
- catch {
83
- /* fall through */
84
- }
85
- }
86
- const fc = result.content?.[0];
87
- text.setText((0, render_js_1.fillToolBackground)(`${config_js_1.TOOL_RESULT_INDENT}${theme.fg("dim", fc && "text" in fc ? String(fc.text).slice(0, 80) : `[image: ${d.filePath}]`)}`));
88
- return text;
65
+ const mimeType = d.mimeType.startsWith("image/svg") ? "image/svg+xml" : d.mimeType;
66
+ return new pi_tui_1.Image(d.data, mimeType, {
67
+ fallbackColor: (text) => theme.fg("toolTitle", text),
68
+ }, {
69
+ filename: d.filePath,
70
+ });
89
71
  }
90
72
  // File content — line-numbered display
91
73
  if (d?._type === "readFile" && d.content) {
@@ -95,7 +77,7 @@ function registerReadTool(pi, cwd, _fffService, sdkTool, TextComp) {
95
77
  const p2 = (0, helpers_js_1.shortPath)(cwd, home, String(d.filePath ?? ""));
96
78
  const off2 = typeof d.offset === "number" ? `:${d.offset}` : "";
97
79
  if (!ctx.expanded) {
98
- text.setText((0, render_js_1.fillToolBackground)(`\n${config_js_1.TOOL_RESULT_INDENT}${theme.fg("toolTitle", theme.bold("read"))} ${theme.fg("accent", p2)}${theme.fg("dim", off2)}\n${config_js_1.TOOL_RESULT_INDENT}${config_js_1.FG_DIM}${total} lines — ctrl+o to expand${config_js_1.RST}\n`));
80
+ text.setText((0, render_js_1.fillToolBackground)(`\n${config_js_1.TOOL_RESULT_INDENT}${theme.fg("toolTitle", theme.bold("→ read"))} ${theme.fg("toolTitle", p2)}${theme.fg("dim", off2)}\n${config_js_1.TOOL_RESULT_INDENT}${config_js_1.FG_DIM}${total} lines — ctrl+o to expand${config_js_1.RST}\n`, config_js_1.BG_BASE));
99
81
  return text;
100
82
  }
101
83
  const maxShow = lines.length;
@@ -103,7 +85,7 @@ function registerReadTool(pi, cwd, _fffService, sdkTool, TextComp) {
103
85
  const nw = Math.max(3, String(total).length);
104
86
  const gw = nw + 3;
105
87
  const cw = Math.max(1, tw - gw);
106
- const header = `${theme.fg("toolTitle", theme.bold("read"))} ${theme.fg("accent", p2)}${theme.fg("dim", off2)}`;
88
+ const header = `${theme.fg("toolTitle", theme.bold("→ read"))} ${theme.fg("toolTitle", p2)}${theme.fg("dim", off2)}`;
107
89
  const out = ["", `${config_js_1.TOOL_RESULT_INDENT}${header}`];
108
90
  out.push(`${config_js_1.TOOL_RESULT_INDENT}${config_js_1.FG_RULE}${"─".repeat(tw - 1)}${config_js_1.RST}`);
109
91
  for (let i = 0; i < show.length; i++) {
@@ -118,7 +100,7 @@ function registerReadTool(pi, cwd, _fffService, sdkTool, TextComp) {
118
100
  }
119
101
  out.push("");
120
102
  const rendered = out.join("\n");
121
- text.setText((0, render_js_1.fillToolBackground)(rendered));
103
+ text.setText((0, render_js_1.fillToolBackground)(rendered, config_js_1.BG_BASE));
122
104
  ctx.state._rt = rendered;
123
105
  // Async syntax highlighting via Shiki
124
106
  (0, render_js_1.renderFileContent)(d.content, d.filePath, d.offset || 0, maxShow, tw)
@@ -128,14 +110,14 @@ function registerReadTool(pi, cwd, _fffService, sdkTool, TextComp) {
128
110
  .map((l) => `${config_js_1.TOOL_RESULT_INDENT}${l}`)
129
111
  .join("\n");
130
112
  const rendered = `\n${config_js_1.TOOL_RESULT_INDENT}${header}\n${padded}\n`;
131
- text.setText((0, render_js_1.fillToolBackground)(rendered));
113
+ text.setText((0, render_js_1.fillToolBackground)(rendered, config_js_1.BG_BASE));
132
114
  ctx.state._rt = rendered;
133
115
  })
134
116
  .catch(() => { });
135
117
  return text;
136
118
  }
137
119
  const fc = result.content?.[0];
138
- text.setText((0, render_js_1.fillToolBackground)(`${config_js_1.TOOL_RESULT_INDENT}${theme.fg("dim", fc && "text" in fc ? String(fc.text).slice(0, 120) : "done")}`));
120
+ text.setText((0, render_js_1.fillToolBackground)(`${config_js_1.TOOL_RESULT_INDENT}${theme.fg("dim", fc && "text" in fc ? String(fc.text).slice(0, 120) : "done")}`, config_js_1.BG_BASE));
139
121
  return text;
140
122
  },
141
123
  });
@@ -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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"}
@@ -1,25 +1,7 @@
1
- /**
2
- * Lazy resolver for pi-tui Text constructor.
3
- *
4
- * Returns the real Text class from @earendil-works/pi-tui, or a stub when
5
- * pi-tui is unavailable (e.g. not in jiti's alias map). This avoids crashing
6
- * during tool registration when pi-tui isn't aliased.
7
- *
8
- * The resolution is cached — the require() call happens at most once.
9
- */
10
- type TextCtor = new (t?: string, x?: number, y?: number) => {
11
- setText(v: string): void;
12
- [k: string]: any;
1
+ type TextCtor = new (text?: string, paddingX?: number, paddingY?: number) => {
2
+ setText(value: string): void;
13
3
  };
14
- /**
15
- * Returns a Text constructor, always valid. Falls back to StubText if
16
- * @earendil-works/pi-tui is unavailable (caught and cached).
17
- */
18
4
  export declare function getTextCtor(): TextCtor;
19
- /**
20
- * Returns TextComp if provided, otherwise the lazy-resolved Text constructor.
21
- * Always returns a valid constructor (never undefined/null).
22
- */
23
5
  export declare function resolveTextCtor(TextComp?: TextCtor): TextCtor;
24
6
  export {};
25
7
  //# sourceMappingURL=tui-text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tui-text.d.ts","sourceRoot":"","sources":["../src/tui-text.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,KAAK,QAAQ,GAAG,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK;IAAE,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC;AA8B3G;;;GAGG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAEtC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAE7D"}
1
+ {"version":3,"file":"tui-text.d.ts","sourceRoot":"","sources":["../src/tui-text.ts"],"names":[],"mappings":"AAEA,KAAK,QAAQ,GAAG,KACf,IAAI,CAAC,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,KACb;IACJ,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,wBAAgB,WAAW,IAAI,QAAQ,CAEtC;AAED,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAE7D"}
package/dist/tui-text.js CHANGED
@@ -1,55 +1,12 @@
1
1
  "use strict";
2
- /**
3
- * Lazy resolver for pi-tui Text constructor.
4
- *
5
- * Returns the real Text class from @earendil-works/pi-tui, or a stub when
6
- * pi-tui is unavailable (e.g. not in jiti's alias map). This avoids crashing
7
- * during tool registration when pi-tui isn't aliased.
8
- *
9
- * The resolution is cached — the require() call happens at most once.
10
- */
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.getTextCtor = getTextCtor;
13
4
  exports.resolveTextCtor = resolveTextCtor;
14
- /** No-op stub that satisfies the Text interface so rendering doesn't crash. */
15
- class StubText {
16
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
- constructor(_t, _x, _y) {
18
- // no-op
19
- }
20
- setText(_v) {
21
- // no-op — pi-tui not available
22
- }
23
- }
24
- let _ctor = null;
25
- let _resolved = false;
26
- function resolve() {
27
- if (_resolved)
28
- return _ctor;
29
- _resolved = true;
30
- try {
31
- // eslint-disable-next-line @typescript-eslint/no-var-requires
32
- const { Text } = require("@earendil-works/pi-tui");
33
- _ctor = Text;
34
- return _ctor;
35
- }
36
- catch {
37
- _ctor = StubText;
38
- return _ctor;
39
- }
40
- }
41
- /**
42
- * Returns a Text constructor, always valid. Falls back to StubText if
43
- * @earendil-works/pi-tui is unavailable (caught and cached).
44
- */
5
+ const pi_tui_1 = require("@earendil-works/pi-tui");
45
6
  function getTextCtor() {
46
- return resolve();
7
+ return pi_tui_1.Text;
47
8
  }
48
- /**
49
- * Returns TextComp if provided, otherwise the lazy-resolved Text constructor.
50
- * Always returns a valid constructor (never undefined/null).
51
- */
52
9
  function resolveTextCtor(TextComp) {
53
- return TextComp ?? resolve();
10
+ return TextComp ?? pi_tui_1.Text;
54
11
  }
55
12
  //# sourceMappingURL=tui-text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tui-text.js","sourceRoot":"","sources":["../src/tui-text.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAqCH,kCAEC;AAMD,0CAEC;AA1CD,+EAA+E;AAC/E,MAAM,QAAQ;IACb,6DAA6D;IAC7D,YAAY,EAAW,EAAE,EAAW,EAAE,EAAW;QAChD,QAAQ;IACT,CAAC;IACD,OAAO,CAAC,EAAU;QACjB,+BAA+B;IAChC,CAAC;CACD;AAED,IAAI,KAAK,GAAoB,IAAI,CAAC;AAClC,IAAI,SAAS,GAAG,KAAK,CAAC;AAEtB,SAAS,OAAO;IACf,IAAI,SAAS;QAAE,OAAO,KAAM,CAAC;IAC7B,SAAS,GAAG,IAAI,CAAC;IACjB,IAAI,CAAC;QACJ,8DAA8D;QAC9D,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAuB,CAAC;QACzE,KAAK,GAAG,IAAI,CAAC;QACb,OAAO,KAAK,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACR,KAAK,GAAG,QAAQ,CAAC;QACjB,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW;IAC1B,OAAO,OAAO,EAAE,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,QAAmB;IAClD,OAAO,QAAQ,IAAI,OAAO,EAAE,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"tui-text.js","sourceRoot":"","sources":["../src/tui-text.ts"],"names":[],"mappings":";;AAUA,kCAEC;AAED,0CAEC;AAhBD,mDAA8C;AAU9C,SAAgB,WAAW;IAC1B,OAAO,aAAI,CAAC;AACb,CAAC;AAED,SAAgB,eAAe,CAAC,QAAmB;IAClD,OAAO,QAAQ,IAAI,aAAI,CAAC;AACzB,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * pi-pretty shared types.
3
3
  */
4
- import type { TextContent, ImageContent } from "@earendil-works/pi-ai";
4
+ import type { ImageContent, TextContent } from "@earendil-works/pi-ai";
5
5
  import type { AgentToolResult } from "@earendil-works/pi-coding-agent";
6
- export type { FileFinder, FileItem, GrepResult, SearchResult, GrepMatch, GrepCursor } from "@ff-labs/fff-node";
6
+ export type { FileFinder, FileItem, GrepCursor, GrepMatch, GrepResult, SearchResult } from "@ff-labs/fff-node";
7
7
  export type ToolContent = TextContent | ImageContent;
8
- export type { TextContent, ImageContent };
8
+ export type { ImageContent, TextContent };
9
9
  export interface ThemeLike {
10
10
  fg: (key: string, text: string) => string;
11
11
  bold: (text: string) => string;
@@ -91,13 +91,6 @@ export interface GrepInput {
91
91
  literal?: boolean;
92
92
  ignoreCase?: boolean;
93
93
  }
94
- export interface MultiGrepInput {
95
- patterns: string[];
96
- path?: string;
97
- constraints?: string;
98
- context?: number;
99
- limit?: number;
100
- }
101
94
  /**
102
95
  * Minimal structural type for an SDK-produced tool definition.
103
96
  * Accepts both the real SDK's ToolDefinition<> return type and test mocks.
@@ -117,22 +110,6 @@ export interface SdkTools {
117
110
  createGrepTool?: (cwd: string) => SdkToolDef;
118
111
  getAgentDir?: () => string;
119
112
  }
120
- export interface MultiGrepFallbackParams {
121
- cwd: string;
122
- patterns: string[];
123
- path?: string;
124
- constraints?: string;
125
- context?: number;
126
- limit: number;
127
- ignoreCase: boolean;
128
- signal?: AbortSignal;
129
- }
130
- export interface MultiGrepFallbackResult {
131
- text: string;
132
- matchCount: number;
133
- limitReached: boolean;
134
- }
135
- export type MultiGrepFallback = (params: MultiGrepFallbackParams) => Promise<MultiGrepFallbackResult>;
136
113
  /** Minimal FFF service shape for tools that only need fileSearch. */
137
114
  export interface FffServiceLike {
138
115
  readonly isAvailable: boolean;
@@ -164,6 +141,5 @@ export interface PiPrettyDeps {
164
141
  sdk?: SdkTools;
165
142
  TextComponent?: new (text?: string, x?: number, y?: number) => ComponentLike;
166
143
  fffModule?: typeof import("@ff-labs/fff-node");
167
- multiGrepRipgrepFallback?: MultiGrepFallback;
168
144
  }
169
145
  //# 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@heyhuynhgiabuu/pi-pretty",
3
- "version": "0.6.16",
3
+ "version": "0.6.18",
4
4
  "description": "Pretty terminal output for pi — syntax-highlighted file reads, colored bash output, tree-view directory listings, and more.",
5
5
  "keywords": [
6
6
  "pi",
@@ -36,14 +36,14 @@
36
36
  "test:watch": "vitest --passWithNoTests"
37
37
  },
38
38
  "dependencies": {
39
- "@ff-labs/fff-node": "^0.9.6",
39
+ "@ff-labs/fff-node": "^0.10.0",
40
40
  "@shikijs/cli": "^4.0.2",
41
41
  "typebox": "1.1.38"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@biomejs/biome": "^2.3.5",
45
- "@earendil-works/pi-ai": "^0.80.0",
46
- "@earendil-works/pi-coding-agent": "^0.80.3",
45
+ "@earendil-works/pi-ai": "^0.80.6",
46
+ "@earendil-works/pi-coding-agent": "^0.80.6",
47
47
  "@earendil-works/pi-tui": "*",
48
48
  "@types/node": "^20.0.0",
49
49
  "typescript": "^5.0.0",
@@ -11,4 +11,4 @@ export function collapsedExpandBlock(countLabel: string): string {
11
11
  /** When line count / metrics already appear on the header line (bash). */
12
12
  export function collapsedExpandFooter(): string {
13
13
  return `${TOOL_RESULT_INDENT}${FG_DIM}${COLLAPSED_EXPAND_LABEL}${RST}\n`;
14
- }
14
+ }
package/src/config.ts CHANGED
@@ -13,7 +13,6 @@ import { basename, extname, join } from "node:path";
13
13
  export const TOOL_RESULT_INDENT = " ";
14
14
 
15
15
  export let RST = "\x1b[0m";
16
- const BOLD = "\x1b[1m";
17
16
 
18
17
  export const FG_LNUM = "\x1b[38;2;100;100;100m";
19
18
  export const FG_DIM = "\x1b[38;2;80;80;80m";
@@ -32,9 +31,10 @@ export let BG_ERROR = BG_DEFAULT;
32
31
  // Theme
33
32
  // ---------------------------------------------------------------------------
34
33
 
35
- import type { ThemeLike } from "./types.js";
36
-
37
- type BgThemeLike = { getBgAnsi?: (key: string) => string };
34
+ type BgThemeLike = {
35
+ getBgAnsi?: (key: string) => string;
36
+ bg?: (key: string, text: string) => string;
37
+ };
38
38
 
39
39
  const ESC_RE = "\u001b";
40
40
 
@@ -45,8 +45,14 @@ function parseAnsiRgb(ansi: string): { r: number; g: number; b: number } | null
45
45
 
46
46
  function getThemeBgAnsi(theme: BgThemeLike, key: string): string | null {
47
47
  try {
48
- const bgAnsi = theme.getBgAnsi?.(key);
49
- return bgAnsi && parseAnsiRgb(bgAnsi) ? bgAnsi : null;
48
+ const direct = theme.getBgAnsi?.(key);
49
+ if (direct && parseAnsiRgb(direct)) return direct;
50
+
51
+ const marker = "\0";
52
+ const styled = theme.bg?.(key, marker);
53
+ const markerIndex = styled?.indexOf(marker) ?? -1;
54
+ const ansi = markerIndex > 0 ? styled?.slice(0, markerIndex) : null;
55
+ return ansi && parseAnsiRgb(ansi) ? ansi : null;
50
56
  } catch {
51
57
  return null;
52
58
  }
@@ -105,8 +111,12 @@ export function resolveBaseBackground(theme: BgThemeLike | null | undefined): vo
105
111
  const home = process.env.HOME;
106
112
  const configDir = process.env.PRETTY_CONFIG_DIR ?? (home ? join(home, ".pi/agent") : undefined);
107
113
  if (applyPrettyConfigBg(configDir)) return;
108
- if (!theme?.getBgAnsi) return;
109
- BG_BASE = getThemeBgAnsi(theme, "toolSuccessBg") ?? getThemeBgAnsi(theme, "toolBg") ?? getThemeBgAnsi(theme, "background") ?? BG_DEFAULT;
114
+ if (!theme?.getBgAnsi && !theme?.bg) return;
115
+ BG_BASE =
116
+ getThemeBgAnsi(theme, "toolSuccessBg") ??
117
+ getThemeBgAnsi(theme, "toolBg") ??
118
+ getThemeBgAnsi(theme, "background") ??
119
+ BG_DEFAULT;
110
120
  BG_ERROR = getThemeBgAnsi(theme, "toolErrorBg") ?? BG_BASE;
111
121
  RST = "\x1b[0m";
112
122
  }
@@ -117,8 +127,10 @@ export function resolveBaseBackground(theme: BgThemeLike | null | undefined): vo
117
127
 
118
128
  export function termWidth(): number {
119
129
  if (process.stdout.columns) return Math.max(1, Math.min(process.stdout.columns, 210));
120
- const raw = (process.stderr as NodeJS.WriteStream & { columns?: number }).columns ||
121
- Number.parseInt(process.env.COLUMNS ?? "", 10) || 200;
130
+ const raw =
131
+ (process.stderr as NodeJS.WriteStream & { columns?: number }).columns ||
132
+ Number.parseInt(process.env.COLUMNS ?? "", 10) ||
133
+ 200;
122
134
  return Math.max(1, Math.min(raw - 4, 210));
123
135
  }
124
136
 
@@ -209,18 +221,51 @@ export function dirIcon(): string {
209
221
  import type { BundledLanguage } from "shiki";
210
222
 
211
223
  const EXT_LANG: Record<string, BundledLanguage> = {
212
- ts: "typescript", tsx: "tsx", js: "javascript", jsx: "jsx",
213
- mjs: "javascript", cjs: "javascript",
214
- py: "python", rb: "ruby", rs: "rust", go: "go", java: "java",
215
- c: "c", cpp: "cpp", h: "c", hpp: "cpp",
216
- cs: "csharp", swift: "swift", kt: "kotlin",
217
- html: "html", css: "css", scss: "scss", less: "css",
218
- json: "json", jsonc: "jsonc", yaml: "yaml", yml: "yaml",
219
- toml: "toml", md: "markdown", mdx: "mdx", sql: "sql",
220
- sh: "bash", bash: "bash", zsh: "bash", lua: "lua", php: "php",
221
- dart: "dart", xml: "xml", graphql: "graphql", svelte: "svelte", vue: "vue",
222
- dockerfile: "dockerfile", makefile: "make",
223
- zig: "zig", nim: "nim", elixir: "elixir",
224
+ ts: "typescript",
225
+ tsx: "tsx",
226
+ js: "javascript",
227
+ jsx: "jsx",
228
+ mjs: "javascript",
229
+ cjs: "javascript",
230
+ py: "python",
231
+ rb: "ruby",
232
+ rs: "rust",
233
+ go: "go",
234
+ java: "java",
235
+ c: "c",
236
+ cpp: "cpp",
237
+ h: "c",
238
+ hpp: "cpp",
239
+ cs: "csharp",
240
+ swift: "swift",
241
+ kt: "kotlin",
242
+ html: "html",
243
+ css: "css",
244
+ scss: "scss",
245
+ less: "css",
246
+ json: "json",
247
+ jsonc: "jsonc",
248
+ yaml: "yaml",
249
+ yml: "yaml",
250
+ toml: "toml",
251
+ md: "markdown",
252
+ mdx: "mdx",
253
+ sql: "sql",
254
+ sh: "bash",
255
+ bash: "bash",
256
+ zsh: "bash",
257
+ lua: "lua",
258
+ php: "php",
259
+ dart: "dart",
260
+ xml: "xml",
261
+ graphql: "graphql",
262
+ svelte: "svelte",
263
+ vue: "vue",
264
+ dockerfile: "dockerfile",
265
+ makefile: "make",
266
+ zig: "zig",
267
+ nim: "nim",
268
+ elixir: "elixir",
224
269
  };
225
270
 
226
271
  export function detectLang(fp: string): BundledLanguage | undefined {
package/src/expand.ts CHANGED
@@ -1,4 +1,3 @@
1
- import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
1
  import { MAX_PREVIEW_LINES } from "./config.js";
3
2
 
4
3
  /** Render context from pi tool UI (Ctrl+O toggles `expanded` per tool block). */
@@ -9,16 +8,3 @@ export function previewLineCount(ctx: ToolRenderCtx, totalLines: number): number
9
8
  if (ctx.expanded) return totalLines;
10
9
  return Math.min(totalLines, MAX_PREVIEW_LINES);
11
10
  }
12
-
13
- /**
14
- * Default tool output to collapsed so body content is hidden until Ctrl+O (app.tools.expand).
15
- * Matches Pi keybinding `app.tools.expand` / `app.tools.expandAll` (see pi.dev/docs keybindings).
16
- */
17
- export function registerDefaultCollapsedToolOutput(pi: ExtensionAPI): void {
18
- pi.on("session_start", (_event, ctx) => {
19
- // Pi interactive mode: default new tool blocks collapsed (Ctrl+O toggles per block).
20
- (ctx as { setConfig?: (c: { toolOutputExpanded?: boolean }) => void }).setConfig?.({
21
- toolOutputExpanded: false,
22
- });
23
- });
24
- }
package/src/find-glob.ts CHANGED
@@ -18,4 +18,4 @@ export function isLikelyGlobPattern(pattern: string): boolean {
18
18
  const p = pattern.trim();
19
19
  if (!p) return false;
20
20
  return /[*?[\]]/.test(p) || p === "**/*" || p.startsWith("**/");
21
- }
21
+ }
package/src/image.ts CHANGED
@@ -96,7 +96,7 @@ function tmuxAllowsPassthrough(): boolean | null {
96
96
  function getTmuxPassthroughWarning(protocol: ImageProtocol): string | null {
97
97
  if (!isTmuxSession() || protocol === "none") return null;
98
98
  if (tmuxAllowsPassthrough() === false) {
99
- return 'tmux allow-passthrough is off. Run: tmux set -g allow-passthrough on';
99
+ return "tmux allow-passthrough is off. Run: tmux set -g allow-passthrough on";
100
100
  }
101
101
  return null;
102
102
  }