@heyhuynhgiabuu/pi-pretty 0.6.23 → 0.6.25

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 (54) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +51 -1
  3. package/dist/autocomplete.js +1 -4
  4. package/dist/autocomplete.js.map +1 -1
  5. package/dist/config.d.ts +19 -0
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +141 -118
  8. package/dist/config.js.map +1 -1
  9. package/dist/fff-helpers.js +2 -7
  10. package/dist/fff-helpers.js.map +1 -1
  11. package/dist/fff.js +16 -23
  12. package/dist/fff.js.map +1 -1
  13. package/dist/find-glob.js +2 -6
  14. package/dist/find-glob.js.map +1 -1
  15. package/dist/helpers.js +11 -21
  16. package/dist/helpers.js.map +1 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +182 -59
  19. package/dist/index.js.map +1 -1
  20. package/dist/notices.js +1 -4
  21. package/dist/notices.js.map +1 -1
  22. package/dist/render.js +78 -96
  23. package/dist/render.js.map +1 -1
  24. package/dist/session-color.d.ts +30 -0
  25. package/dist/session-color.d.ts.map +1 -0
  26. package/dist/session-color.js +170 -0
  27. package/dist/session-color.js.map +1 -0
  28. package/dist/tools/bash.js +26 -29
  29. package/dist/tools/bash.js.map +1 -1
  30. package/dist/tools/find.js +31 -34
  31. package/dist/tools/find.js.map +1 -1
  32. package/dist/tools/grep.js +22 -25
  33. package/dist/tools/grep.js.map +1 -1
  34. package/dist/tools/labels.js +1 -4
  35. package/dist/tools/labels.js.map +1 -1
  36. package/dist/tools/ls.js +18 -21
  37. package/dist/tools/ls.js.map +1 -1
  38. package/dist/tools/metrics.js +4 -7
  39. package/dist/tools/metrics.js.map +1 -1
  40. package/dist/tools/read.js +35 -38
  41. package/dist/tools/read.js.map +1 -1
  42. package/dist/tui-text.js +5 -9
  43. package/dist/tui-text.js.map +1 -1
  44. package/dist/types.js +1 -2
  45. package/dist/types.js.map +1 -1
  46. package/dist/working-indicator.d.ts +184 -0
  47. package/dist/working-indicator.d.ts.map +1 -0
  48. package/dist/working-indicator.js +524 -0
  49. package/dist/working-indicator.js.map +1 -0
  50. package/package.json +7 -6
  51. package/src/config.ts +48 -0
  52. package/src/index.ts +177 -2
  53. package/src/session-color.ts +172 -0
  54. package/src/working-indicator.ts +691 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.6.25] - 2026-08-29
4
+
5
+ ### Added
6
+
7
+ - omp-style shimmer working indicator: an accent band sweeps the streaming `Working…` row at 30 cells/second over a dim braille spinner, rendered **flush-left** through an extension-owned widget (pi's loader hardcodes a one-column indent the frames API cannot change). `workingIndicator.text` accepts a string or an array of phrases played one sweep per phrase, with a configurable palette (`low`/`mid`/`high` as theme color names or `#hex`), `bold`, `kitt` scanner and `static` modes, and the interrupt hint ([oh-my-pi](https://github.com/can1357/oh-my-pi) shimmer port).
8
+ - Session accent tint: the mid/high tiers and the spinner are tinted with a stable per-session color derived from the session name (an OKLCH port of oh-my-pi's session accent, hue arc plus chroma/lightness bands) — different windows get different hues at uniform perceived brightness; renaming the session re-tints live; explicit `workingIndicator.mid`/`high` colors disable the tint.
9
+ - Thinking-label shimmer: with thinking blocks hidden (pi's `hideThinkingBlock`), the static `Thinking...` label gets the same shimmer — italic `thinkingText` base, accent band, session accent tint — animated at 30fps only during the thinking phase and restored to pi's default label when the phase or the run ends.
10
+ - Config: `workingIndicator` (`enabled`, `text`, `mode` `shimmer`\\|`kitt`\\|`static`, `low`, `mid`, `high`, `bold`, `hint`, `sessionAccent`) and `thinkingIndicator` (`enabled`), each with environment-variable overrides (`PRETTY_WORKING_INDICATOR`, `PRETTY_WORKING_INDICATOR_MODE`, `PRETTY_WORKING_INDICATOR_TEXT`, `PRETTY_THINKING_INDICATOR`).
11
+
12
+ ### Changed
13
+
14
+ - **Behavior change (both features on by default):** the streaming working row and the hidden-thinking label replace pi's static chrome. Restore pi's defaults with `workingIndicator.enabled: false` and `thinkingIndicator.enabled: false`.
15
+ - Bumped `@earendil-works/pi-ai`, `@earendil-works/pi-coding-agent`, and `@earendil-works/pi-tui` devDependencies from `^0.84.3` to `^0.84.4`.
16
+
17
+ ## [0.6.24] - 2026-08-24
18
+
19
+ ### Fixed
20
+
21
+ - Extension no longer fails to load when installed as a pi package on pi 0.84.3: the SDK's new `session-share.js` imports `@earendil-works/pi-ai/providers/radius-config`, which jiti's alias table does not cover; under CommonJS extension output the alias pipeline concatenated that subpath onto `dist/compat.js`, producing a nonexistent module and failing startup with `Cannot find module .../dist/compat.js/providers/radius-config`. The package now ships true ESM (`"type": "module"`; tsconfig was already `nodenext`), so runtime SDK imports resolve natively through Node exports maps.
22
+
23
+ ### Changed
24
+
25
+ - Bumped `@earendil-works/pi-ai`, `@earendil-works/pi-coding-agent`, and `@earendil-works/pi-tui` devDependencies from `^0.82.0` to `^0.84.3`.
26
+
3
27
  ## [0.6.23] - 2026-08-21
4
28
 
5
29
  ### Added
package/README.md CHANGED
@@ -13,6 +13,8 @@ It currently enhances:
13
13
  - **`bash`**: colored exit summary (`exit 0`/`exit 1`) with a preview body of command output
14
14
  - **`ls`**: Nerd Font file icons with tree-oriented rendering
15
15
  - **`find` / `grep`**: built-in FFF-backed search with frecency-aware results, plus grouped/highlighted rendering
16
+ - **working indicator**: an [oh-my-pi](https://github.com/can1357/oh-my-pi)-style shimmer sweep over the streaming `Working…` row — flush-left, rotating phrases, per-session accent tint (see [Working indicator](#working-indicator-shimmer))
17
+ - **thinking label**: the hidden-thinking `Thinking...` label gets the same shimmer treatment (see [Thinking label](#thinking-label-shimmer))
16
18
 
17
19
  > Companion to [@heyhuynhgiabuu/pi-diff](https://github.com/buddingnewinsights/pi-diff) for `write`/`edit` diff rendering.
18
20
 
@@ -138,7 +140,10 @@ Place a JSON file alongside Pi's `settings.json` to customize pi-pretty. Every o
138
140
  "disableTools": ["grep"],
139
141
  "maxHlChars": 80000,
140
142
  "maxPreviewLines": 80,
141
- "cacheLimit": 128
143
+ "cacheLimit": 128,
144
+ "workingIndicator": {
145
+ "text": ["Working…", "Thinking…"]
146
+ }
142
147
  }
143
148
  ```
144
149
 
@@ -153,11 +158,53 @@ Place a JSON file alongside Pi's `settings.json` to customize pi-pretty. Every o
153
158
  | `maxHlChars` | positive int | `PRETTY_MAX_HL_CHARS` | `80000` |
154
159
  | `maxPreviewLines` | positive int | `PRETTY_MAX_PREVIEW_LINES` | `80` |
155
160
  | `cacheLimit` | positive int | `PRETTY_CACHE_LIMIT` | `128` |
161
+ | `workingIndicator.enabled` | boolean | `PRETTY_WORKING_INDICATOR` (`on`/`off`) | `true` |
162
+ | `workingIndicator.text` | string or string[] (phrases rotated per sweep; env accepts comma-separated) | `PRETTY_WORKING_INDICATOR_TEXT` | `["Working…"]` |
163
+ | `workingIndicator.mode` | `shimmer` \| `kitt` \| `static` | `PRETTY_WORKING_INDICATOR_MODE` | `shimmer` |
164
+ | `workingIndicator.low` | theme color name or `#hex` | — | `dim` |
165
+ | `workingIndicator.mid` | theme color name or `#hex` | — | `muted` |
166
+ | `workingIndicator.high` | theme color name or `#hex` | — | `accent` |
167
+ | `workingIndicator.bold` | boolean | — | `true` |
168
+ | `workingIndicator.hint` | boolean | — | `true` |
169
+ | `workingIndicator.sessionAccent` | boolean | — | `true` |
170
+ | `thinkingIndicator.enabled` | boolean | `PRETTY_THINKING_INDICATOR` (`on`/`off`) | `true` |
156
171
 
157
172
  - Config values take priority over theme-provided backgrounds (`toolBg` / `toolErrorBg`).
158
173
  - All options except `background.*` are read once at startup; restart pi to apply changes to them (`background.*` applies live).
159
174
  - To override the config directory, set `PRETTY_CONFIG_DIR` env var.
160
175
 
176
+ ### Working indicator (shimmer)
177
+
178
+ While the agent streams, pi-pretty replaces pi's static `Working...` row with an
179
+ [oh-my-pi](https://github.com/can1357/oh-my-pi)-style shimmer: a bright accent band sweeps across the
180
+ text at 30 cells/second over a dim braille spinner, followed by the interrupt hint, rendered
181
+ **flush-left**. Pi's own loader row carries a built-in 1-column indent that the extension API cannot
182
+ change, so pi-pretty hides it (`setWorkingVisible(false)`) and draws the row with its own zero-padding
183
+ widget, animated above the editor while the agent runs. Mode `kitt` swaps the sweep for a
184
+ ping-ponging scanner head with a decay trail; `static` renders a single unanimated frame. Tier
185
+ colors resolve `#rrggbb` hex first, then the active pi theme color name, then built-in fallbacks.
186
+ Set `workingIndicator.enabled: false` (or `PRETTY_WORKING_INDICATOR=off`) to restore pi's default
187
+ indicator. TUI sessions only; theme changes take effect on the next session.
188
+
189
+ `text` accepts a single phrase or an array — the sweep plays each phrase in order, one full band
190
+ sweep per phrase (e.g. `["Working…", "Thinking…", "Pondering…"]`). The env var splits on commas.
191
+
192
+ When `sessionAccent` is on, the mid/high tiers and the spinner are tinted with a stable per-session
193
+ accent color derived from the session name (an OKLCH port of
194
+ [oh-my-pi](https://github.com/can1357/oh-my-pi)'s session accent) — different windows get different
195
+ hues at uniform perceived brightness. Renaming the session re-tints the indicator live. Explicit
196
+ `workingIndicator.mid`/`high` colors disable the tint.
197
+
198
+ ### Thinking label (shimmer)
199
+
200
+ With thinking blocks hidden (pi's `hideThinkingBlock` setting), the static `Thinking...` label gets
201
+ the same shimmer: italic `thinkingText` base with the accent band (and the session accent tint)
202
+ sweeping through it. Pi renders that label as static text and the only extension lever is
203
+ `setHiddenThinkingLabel(label)`, which rebuilds chat children — so the shimmer advances at a
204
+ throttled 100ms cadence driven by natural streaming updates, and only while the agent is streaming
205
+ and thinking blocks stay hidden. When the run ends, pi's default label is restored. Inherits
206
+ `mode`, `bold`, and the palette/accent from `workingIndicator`.
207
+
161
208
  ### Environment variables
162
209
 
163
210
  Optional environment variables:
@@ -168,6 +215,9 @@ Optional environment variables:
168
215
  - `PRETTY_MAX_PREVIEW_LINES` (default: `80`)
169
216
  - `PRETTY_CACHE_LIMIT` (default: `128`)
170
217
  - `PRETTY_ICONS` (`nerd` by default, set to `none` to disable icons)
218
+ - `PRETTY_WORKING_INDICATOR` (`on`/`off`, overrides `workingIndicator.enabled`)
219
+ - `PRETTY_WORKING_INDICATOR_MODE` (`shimmer`/`kitt`/`static`)
220
+ - `PRETTY_WORKING_INDICATOR_TEXT` (indicator label)
171
221
  - `PRETTY_DISABLE_TOOLS` — comma-separated list of tool names to skip during registration (e.g. `read,grep`). Explicit disables take precedence over enabled defaults.
172
222
  - `PRETTY_ENABLE_TOOLS` — comma-separated list of opt-in tools. `ls` is disabled by default; set `PRETTY_ENABLE_TOOLS=ls` to register it.
173
223
 
@@ -1,12 +1,9 @@
1
- "use strict";
2
1
  /**
3
2
  * pi-pretty: FFF-backed @-mention autocomplete provider.
4
3
  *
5
4
  * Wraps the built-in autocomplete provider and replaces the @-mention file
6
5
  * suggestions with FFF frecency-ranked file search results.
7
6
  */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.createFffAutocompleteProvider = createFffAutocompleteProvider;
10
7
  /** How many @-mention suggestions to show at most. */
11
8
  const MAX_SUGGESTIONS = 20;
12
9
  /**
@@ -17,7 +14,7 @@ function extractAtPrefix(textBeforeCursor) {
17
14
  const match = textBeforeCursor.match(/(?:^|[ \t])@([^\s@]*)$/);
18
15
  return match?.[1];
19
16
  }
20
- function createFffAutocompleteProvider(current, getFinder) {
17
+ export function createFffAutocompleteProvider(current, getFinder) {
21
18
  return {
22
19
  async getSuggestions(lines, cursorLine, cursorCol, options) {
23
20
  const currentLine = lines[cursorLine] ?? "";
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete.js","sourceRoot":"","sources":["../src/autocomplete.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autocomplete.js","sourceRoot":"","sources":["../src/autocomplete.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -18,6 +18,23 @@ type BgThemeLike = {
18
18
  getBgAnsi?: (key: string) => string;
19
19
  bg?: (key: string, text: string) => string;
20
20
  };
21
+ export interface WorkingIndicatorConfig {
22
+ enabled?: boolean;
23
+ /** One phrase or a list of phrases rotated across sweeps. */
24
+ text?: string | string[];
25
+ mode?: "shimmer" | "kitt" | "static";
26
+ /** Tier colors: a pi theme color name or a `#rrggbb` hex. */
27
+ low?: string;
28
+ mid?: string;
29
+ high?: string;
30
+ bold?: boolean;
31
+ hint?: boolean;
32
+ /** Tint the indicator with a stable per-session accent color. */
33
+ sessionAccent?: boolean;
34
+ }
35
+ export interface ThinkingIndicatorConfig {
36
+ enabled?: boolean;
37
+ }
21
38
  export interface PrettyConfig {
22
39
  background?: {
23
40
  tool?: string;
@@ -30,6 +47,8 @@ export interface PrettyConfig {
30
47
  maxHlChars?: number;
31
48
  maxPreviewLines?: number;
32
49
  cacheLimit?: number;
50
+ workingIndicator?: WorkingIndicatorConfig;
51
+ thinkingIndicator?: ThinkingIndicatorConfig;
33
52
  }
34
53
  /** Normalize a comma-separated env value or JSON array into tool names. */
35
54
  export declare function normalizeToolList(value: unknown): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,mGAAmG;AACnG,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,eAAO,IAAI,GAAG,QAAY,CAAC;AAE3B,eAAO,MAAM,OAAO,6BAA2B,CAAC;AAChD,eAAO,MAAM,MAAM,0BAAwB,CAAC;AAC5C,eAAO,MAAM,OAAO,0BAAwB,CAAC;AAC7C,eAAO,MAAM,QAAQ,6BAA2B,CAAC;AACjD,eAAO,MAAM,MAAM,6BAA2B,CAAC;AAC/C,eAAO,MAAM,SAAS,4BAA0B,CAAC;AACjD,eAAO,MAAM,OAAO,6BAA2B,CAAC;AAChD,eAAO,MAAM,QAAQ,6BAA2B,CAAC;AAGjD,eAAO,IAAI,OAAO,QAAa,CAAC;AAChC,eAAO,IAAI,QAAQ,QAAa,CAAC;AAMjC,KAAK,WAAW,GAAG;IAClB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3C,CAAC;AAiCF,MAAM,WAAW,YAAY;IAC5B,UAAU,CAAC,EAAE;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAM1D;AAMD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,QAAQ,qBAAiB,GAAG,YAAY,CA+BlE;AAED,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CAEjD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC9B,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,GAAG,aAAa,CAAC,GACxD;IAAE,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,CAK3D;AAaD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAWjF;AAMD,wBAAgB,SAAS,IAAI,MAAM,CAOlC;AAOD,eAAO,IAAI,SAAS,SAAgD,CAAC;AAErE,eAAO,MAAM,MAAM,QAA2B,CAAC;AAC/C,eAAO,MAAM,UAAU,QAA0B,CAAC;AA4DlD,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAM3C;AAED,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAMD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAkD7C,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAKlE;AAMD,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED,eAAO,IAAI,YAAY,QAAwC,CAAC;AAChE,eAAO,IAAI,iBAAiB,QAAyC,CAAC;AACtE,eAAO,IAAI,WAAW,QAAoC,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAQtD;AAMD,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAGvD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -1,40 +1,25 @@
1
- "use strict";
2
1
  /**
3
2
  * pi-pretty: ANSI codes, icons, theme, and environment config.
4
3
  */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.CACHE_LIMIT = exports.MAX_PREVIEW_LINES = exports.MAX_HL_CHARS = exports.NF_DEFAULT = exports.NF_DIR = exports.USE_ICONS = exports.BG_ERROR = exports.BG_BASE = exports.FG_MUTED = exports.FG_BLUE = exports.FG_YELLOW = exports.FG_RED = exports.FG_GREEN = exports.FG_RULE = exports.FG_DIM = exports.FG_LNUM = exports.RST = exports.TOOL_RESULT_INDENT = void 0;
7
- exports.normalizeToolList = normalizeToolList;
8
- exports.loadConfig = loadConfig;
9
- exports.getConfigDir = getConfigDir;
10
- exports.resolveToolSets = resolveToolSets;
11
- exports.resolveBaseBackground = resolveBaseBackground;
12
- exports.termWidth = termWidth;
13
- exports.fileIcon = fileIcon;
14
- exports.dirIcon = dirIcon;
15
- exports.detectLang = detectLang;
16
- exports.envInt = envInt;
17
- exports.applyConfig = applyConfig;
18
- exports.getDefaultAgentDir = getDefaultAgentDir;
19
- const node_fs_1 = require("node:fs");
20
- const node_path_1 = require("node:path");
4
+ import { readFileSync } from "node:fs";
5
+ import { basename, extname, join } from "node:path";
21
6
  // ---------------------------------------------------------------------------
22
7
  // ANSI
23
8
  // ---------------------------------------------------------------------------
24
9
  /** Left indent for rendered tool result lines (was two spaces; one matches tighter TUI layout). */
25
- exports.TOOL_RESULT_INDENT = " ";
26
- exports.RST = "\x1b[0m";
27
- exports.FG_LNUM = "\x1b[38;2;100;100;100m";
28
- exports.FG_DIM = "\x1b[38;2;80;80;80m";
29
- exports.FG_RULE = "\x1b[38;2;50;50;50m";
30
- exports.FG_GREEN = "\x1b[38;2;100;180;120m";
31
- exports.FG_RED = "\x1b[38;2;200;100;100m";
32
- exports.FG_YELLOW = "\x1b[38;2;220;180;80m";
33
- exports.FG_BLUE = "\x1b[38;2;100;140;220m";
34
- exports.FG_MUTED = "\x1b[38;2;139;148;158m";
10
+ export const TOOL_RESULT_INDENT = " ";
11
+ export let RST = "\x1b[0m";
12
+ export const FG_LNUM = "\x1b[38;2;100;100;100m";
13
+ export const FG_DIM = "\x1b[38;2;80;80;80m";
14
+ export const FG_RULE = "\x1b[38;2;50;50;50m";
15
+ export const FG_GREEN = "\x1b[38;2;100;180;120m";
16
+ export const FG_RED = "\x1b[38;2;200;100;100m";
17
+ export const FG_YELLOW = "\x1b[38;2;220;180;80m";
18
+ export const FG_BLUE = "\x1b[38;2;100;140;220m";
19
+ export const FG_MUTED = "\x1b[38;2;139;148;158m";
35
20
  const BG_DEFAULT = "\x1b[49m";
36
- exports.BG_BASE = BG_DEFAULT;
37
- exports.BG_ERROR = BG_DEFAULT;
21
+ export let BG_BASE = BG_DEFAULT;
22
+ export let BG_ERROR = BG_DEFAULT;
38
23
  const ESC_RE = "\u001b";
39
24
  function parseAnsiRgb(ansi) {
40
25
  const m = ansi.match(new RegExp(`${ESC_RE}\\[(?:38|48);2;(\\d+);(\\d+);(\\d+)m`));
@@ -65,7 +50,7 @@ function hexToAnsiBg(hex) {
65
50
  return `\x1b[48;2;${r};${g};${b}m`;
66
51
  }
67
52
  /** Normalize a comma-separated env value or JSON array into tool names. */
68
- function normalizeToolList(value) {
53
+ export function normalizeToolList(value) {
69
54
  if (!Array.isArray(value))
70
55
  return [];
71
56
  return value
@@ -82,11 +67,11 @@ function positiveInt(value) {
82
67
  * behavior. The file is re-read on each call; callers that need a stable
83
68
  * value (extension activation, theme resolution) cache the result.
84
69
  */
85
- function loadConfig(agentDir = getConfigDir()) {
70
+ export function loadConfig(agentDir = getConfigDir()) {
86
71
  if (!agentDir)
87
72
  return {};
88
73
  try {
89
- const parsed = JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.join)(agentDir, "pi-pretty.json"), "utf8"));
74
+ const parsed = JSON.parse(readFileSync(join(agentDir, "pi-pretty.json"), "utf8"));
90
75
  const config = {};
91
76
  if (parsed.background) {
92
77
  const background = {};
@@ -118,20 +103,58 @@ function loadConfig(agentDir = getConfigDir()) {
118
103
  config.maxPreviewLines = maxPreviewLines;
119
104
  if (cacheLimit)
120
105
  config.cacheLimit = cacheLimit;
106
+ const workingIndicator = parsed.workingIndicator;
107
+ if (workingIndicator && typeof workingIndicator === "object") {
108
+ const wi = {};
109
+ const src = workingIndicator;
110
+ if (typeof src.enabled === "boolean")
111
+ wi.enabled = src.enabled;
112
+ if (typeof src.text === "string" && src.text.trim() !== "")
113
+ wi.text = src.text;
114
+ else if (Array.isArray(src.text)) {
115
+ const list = src.text.filter((item) => typeof item === "string" && item.trim() !== "");
116
+ if (list.length > 0)
117
+ wi.text = list;
118
+ }
119
+ if (src.mode === "shimmer" || src.mode === "kitt" || src.mode === "static")
120
+ wi.mode = src.mode;
121
+ for (const tier of ["low", "mid", "high"]) {
122
+ const value = src[tier];
123
+ if (typeof value === "string" && value.trim() !== "")
124
+ wi[tier] = value;
125
+ }
126
+ if (typeof src.bold === "boolean")
127
+ wi.bold = src.bold;
128
+ if (typeof src.hint === "boolean")
129
+ wi.hint = src.hint;
130
+ if (typeof src.sessionAccent === "boolean")
131
+ wi.sessionAccent = src.sessionAccent;
132
+ if (Object.keys(wi).length > 0)
133
+ config.workingIndicator = wi;
134
+ }
135
+ const thinkingIndicator = parsed.thinkingIndicator;
136
+ if (thinkingIndicator && typeof thinkingIndicator === "object") {
137
+ const ti = {};
138
+ const src = thinkingIndicator;
139
+ if (typeof src.enabled === "boolean")
140
+ ti.enabled = src.enabled;
141
+ if (Object.keys(ti).length > 0)
142
+ config.thinkingIndicator = ti;
143
+ }
121
144
  return config;
122
145
  }
123
146
  catch {
124
147
  return {};
125
148
  }
126
149
  }
127
- function getConfigDir() {
150
+ export function getConfigDir() {
128
151
  return process.env.PRETTY_CONFIG_DIR ?? getDefaultAgentDir();
129
152
  }
130
153
  /**
131
154
  * Merge env tool sets with config-file tool lists: a non-empty env set wins
132
155
  * over the config file (12-factor precedence); otherwise config applies.
133
156
  */
134
- function resolveToolSets(envDisabled, envEnabled, config) {
157
+ export function resolveToolSets(envDisabled, envEnabled, config) {
135
158
  return {
136
159
  disabledTools: envDisabled.size > 0 ? envDisabled : new Set(config.disableTools ?? []),
137
160
  enabledTools: envEnabled.size > 0 ? envEnabled : new Set(config.enableTools ?? []),
@@ -144,29 +167,29 @@ function applyPrettyConfigBg(agentDir) {
144
167
  const toolBg = hexToAnsiBg(config.background.tool);
145
168
  if (!toolBg)
146
169
  return false;
147
- exports.BG_BASE = toolBg;
148
- exports.BG_ERROR = config.background.error ? (hexToAnsiBg(config.background.error) ?? toolBg) : toolBg;
149
- exports.RST = "\x1b[0m";
170
+ BG_BASE = toolBg;
171
+ BG_ERROR = config.background.error ? (hexToAnsiBg(config.background.error) ?? toolBg) : toolBg;
172
+ RST = "\x1b[0m";
150
173
  return true;
151
174
  }
152
- function resolveBaseBackground(theme) {
175
+ export function resolveBaseBackground(theme) {
153
176
  const configDir = getConfigDir();
154
177
  if (applyPrettyConfigBg(configDir))
155
178
  return;
156
179
  if (!theme?.getBgAnsi && !theme?.bg)
157
180
  return;
158
- exports.BG_BASE =
181
+ BG_BASE =
159
182
  getThemeBgAnsi(theme, "toolSuccessBg") ??
160
183
  getThemeBgAnsi(theme, "toolBg") ??
161
184
  getThemeBgAnsi(theme, "background") ??
162
185
  BG_DEFAULT;
163
- exports.BG_ERROR = getThemeBgAnsi(theme, "toolErrorBg") ?? exports.BG_BASE;
164
- exports.RST = "\x1b[0m";
186
+ BG_ERROR = getThemeBgAnsi(theme, "toolErrorBg") ?? BG_BASE;
187
+ RST = "\x1b[0m";
165
188
  }
166
189
  // ---------------------------------------------------------------------------
167
190
  // Terminal
168
191
  // ---------------------------------------------------------------------------
169
- function termWidth() {
192
+ export function termWidth() {
170
193
  if (process.stdout.columns)
171
194
  return Math.max(1, Math.min(process.stdout.columns, 210));
172
195
  const raw = process.stderr.columns ||
@@ -178,76 +201,76 @@ function termWidth() {
178
201
  // File-type icons — Nerd Font glyphs
179
202
  // ---------------------------------------------------------------------------
180
203
  const ICONS_MODE = (process.env.PRETTY_ICONS ?? "nerd").toLowerCase();
181
- exports.USE_ICONS = ICONS_MODE !== "none" && ICONS_MODE !== "off";
182
- exports.NF_DIR = `${exports.FG_BLUE}\ue5ff${exports.RST}`;
183
- exports.NF_DEFAULT = `${exports.FG_DIM}\uf15b${exports.RST}`;
204
+ export let USE_ICONS = ICONS_MODE !== "none" && ICONS_MODE !== "off";
205
+ export const NF_DIR = `${FG_BLUE}\ue5ff${RST}`;
206
+ export const NF_DEFAULT = `${FG_DIM}\uf15b${RST}`;
184
207
  const EXT_ICON = {
185
- ts: `\x1b[38;2;49;120;198m\ue628${exports.RST}`,
186
- tsx: `\x1b[38;2;49;120;198m\ue7ba${exports.RST}`,
187
- js: `\x1b[38;2;241;224;90m\ue74e${exports.RST}`,
188
- jsx: `\x1b[38;2;97;218;251m\ue7ba${exports.RST}`,
189
- mjs: `\x1b[38;2;241;224;90m\ue74e${exports.RST}`,
190
- cjs: `\x1b[38;2;241;224;90m\ue74e${exports.RST}`,
191
- py: `\x1b[38;2;55;118;171m\ue73c${exports.RST}`,
192
- rs: `\x1b[38;2;222;165;132m\ue7a8${exports.RST}`,
193
- go: `\x1b[38;2;0;173;216m\ue724${exports.RST}`,
194
- java: `\x1b[38;2;204;62;68m\ue738${exports.RST}`,
195
- swift: `\x1b[38;2;255;172;77m\ue755${exports.RST}`,
196
- rb: `\x1b[38;2;204;52;45m\ue739${exports.RST}`,
197
- kt: `\x1b[38;2;126;103;200m\ue634${exports.RST}`,
198
- c: `\x1b[38;2;85;154;211m\ue61e${exports.RST}`,
199
- cpp: `\x1b[38;2;85;154;211m\ue61d${exports.RST}`,
200
- cs: `\x1b[38;2;104;33;122m\ue648${exports.RST}`,
201
- html: `\x1b[38;2;228;77;38m\ue736${exports.RST}`,
202
- css: `\x1b[38;2;66;165;245m\ue749${exports.RST}`,
203
- scss: `\x1b[38;2;207;100;154m\ue749${exports.RST}`,
204
- vue: `\x1b[38;2;65;184;131m\ue6a0${exports.RST}`,
205
- svelte: `\x1b[38;2;255;62;0m\ue697${exports.RST}`,
206
- json: `\x1b[38;2;241;224;90m\ue60b${exports.RST}`,
207
- yaml: `\x1b[38;2;160;116;196m\ue6a8${exports.RST}`,
208
- yml: `\x1b[38;2;160;116;196m\ue6a8${exports.RST}`,
209
- toml: `\x1b[38;2;160;116;196m\ue6b2${exports.RST}`,
210
- xml: `\x1b[38;2;228;77;38m\ue619${exports.RST}`,
211
- md: `\x1b[38;2;66;165;245m\ue73e${exports.RST}`,
212
- mdx: `\x1b[38;2;66;165;245m\ue73e${exports.RST}`,
213
- sql: `\x1b[38;2;218;218;218m\ue706${exports.RST}`,
214
- sh: `\x1b[38;2;137;180;130m\ue795${exports.RST}`,
215
- bash: `\x1b[38;2;137;180;130m\ue795${exports.RST}`,
216
- zsh: `\x1b[38;2;137;180;130m\ue795${exports.RST}`,
217
- lua: `\x1b[38;2;81;160;207m\ue620${exports.RST}`,
218
- php: `\x1b[38;2;137;147;186m\ue73d${exports.RST}`,
219
- dart: `\x1b[38;2;87;182;240m\ue798${exports.RST}`,
220
- png: `\x1b[38;2;160;116;196m\uf1c5${exports.RST}`,
221
- jpg: `\x1b[38;2;160;116;196m\uf1c5${exports.RST}`,
222
- svg: `\x1b[38;2;255;180;50m\uf1c5${exports.RST}`,
223
- webp: `\x1b[38;2;160;116;196m\uf1c5${exports.RST}`,
224
- lock: `\x1b[38;2;130;130;130m\uf023${exports.RST}`,
225
- env: `\x1b[38;2;241;224;90m\ue615${exports.RST}`,
226
- graphql: `\x1b[38;2;224;51;144m\ue662${exports.RST}`,
227
- dockerfile: `\x1b[38;2;56;152;236m\ue7b0${exports.RST}`,
208
+ ts: `\x1b[38;2;49;120;198m\ue628${RST}`,
209
+ tsx: `\x1b[38;2;49;120;198m\ue7ba${RST}`,
210
+ js: `\x1b[38;2;241;224;90m\ue74e${RST}`,
211
+ jsx: `\x1b[38;2;97;218;251m\ue7ba${RST}`,
212
+ mjs: `\x1b[38;2;241;224;90m\ue74e${RST}`,
213
+ cjs: `\x1b[38;2;241;224;90m\ue74e${RST}`,
214
+ py: `\x1b[38;2;55;118;171m\ue73c${RST}`,
215
+ rs: `\x1b[38;2;222;165;132m\ue7a8${RST}`,
216
+ go: `\x1b[38;2;0;173;216m\ue724${RST}`,
217
+ java: `\x1b[38;2;204;62;68m\ue738${RST}`,
218
+ swift: `\x1b[38;2;255;172;77m\ue755${RST}`,
219
+ rb: `\x1b[38;2;204;52;45m\ue739${RST}`,
220
+ kt: `\x1b[38;2;126;103;200m\ue634${RST}`,
221
+ c: `\x1b[38;2;85;154;211m\ue61e${RST}`,
222
+ cpp: `\x1b[38;2;85;154;211m\ue61d${RST}`,
223
+ cs: `\x1b[38;2;104;33;122m\ue648${RST}`,
224
+ html: `\x1b[38;2;228;77;38m\ue736${RST}`,
225
+ css: `\x1b[38;2;66;165;245m\ue749${RST}`,
226
+ scss: `\x1b[38;2;207;100;154m\ue749${RST}`,
227
+ vue: `\x1b[38;2;65;184;131m\ue6a0${RST}`,
228
+ svelte: `\x1b[38;2;255;62;0m\ue697${RST}`,
229
+ json: `\x1b[38;2;241;224;90m\ue60b${RST}`,
230
+ yaml: `\x1b[38;2;160;116;196m\ue6a8${RST}`,
231
+ yml: `\x1b[38;2;160;116;196m\ue6a8${RST}`,
232
+ toml: `\x1b[38;2;160;116;196m\ue6b2${RST}`,
233
+ xml: `\x1b[38;2;228;77;38m\ue619${RST}`,
234
+ md: `\x1b[38;2;66;165;245m\ue73e${RST}`,
235
+ mdx: `\x1b[38;2;66;165;245m\ue73e${RST}`,
236
+ sql: `\x1b[38;2;218;218;218m\ue706${RST}`,
237
+ sh: `\x1b[38;2;137;180;130m\ue795${RST}`,
238
+ bash: `\x1b[38;2;137;180;130m\ue795${RST}`,
239
+ zsh: `\x1b[38;2;137;180;130m\ue795${RST}`,
240
+ lua: `\x1b[38;2;81;160;207m\ue620${RST}`,
241
+ php: `\x1b[38;2;137;147;186m\ue73d${RST}`,
242
+ dart: `\x1b[38;2;87;182;240m\ue798${RST}`,
243
+ png: `\x1b[38;2;160;116;196m\uf1c5${RST}`,
244
+ jpg: `\x1b[38;2;160;116;196m\uf1c5${RST}`,
245
+ svg: `\x1b[38;2;255;180;50m\uf1c5${RST}`,
246
+ webp: `\x1b[38;2;160;116;196m\uf1c5${RST}`,
247
+ lock: `\x1b[38;2;130;130;130m\uf023${RST}`,
248
+ env: `\x1b[38;2;241;224;90m\ue615${RST}`,
249
+ graphql: `\x1b[38;2;224;51;144m\ue662${RST}`,
250
+ dockerfile: `\x1b[38;2;56;152;236m\ue7b0${RST}`,
228
251
  };
229
252
  const NAME_ICON = {
230
- "package.json": `\x1b[38;2;137;180;130m\ue71e${exports.RST}`,
231
- "package-lock.json": `\x1b[38;2;130;130;130m\ue71e${exports.RST}`,
232
- "tsconfig.json": `\x1b[38;2;49;120;198m\ue628${exports.RST}`,
233
- ".gitignore": `\x1b[38;2;222;165;132m\ue702${exports.RST}`,
234
- ".env": `\x1b[38;2;241;224;90m\ue615${exports.RST}`,
235
- dockerfile: `\x1b[38;2;56;152;236m\ue7b0${exports.RST}`,
236
- makefile: `\x1b[38;2;130;130;130m\ue615${exports.RST}`,
237
- "readme.md": `\x1b[38;2;66;165;245m\ue73e${exports.RST}`,
238
- license: `\x1b[38;2;218;218;218m\ue60a${exports.RST}`,
253
+ "package.json": `\x1b[38;2;137;180;130m\ue71e${RST}`,
254
+ "package-lock.json": `\x1b[38;2;130;130;130m\ue71e${RST}`,
255
+ "tsconfig.json": `\x1b[38;2;49;120;198m\ue628${RST}`,
256
+ ".gitignore": `\x1b[38;2;222;165;132m\ue702${RST}`,
257
+ ".env": `\x1b[38;2;241;224;90m\ue615${RST}`,
258
+ dockerfile: `\x1b[38;2;56;152;236m\ue7b0${RST}`,
259
+ makefile: `\x1b[38;2;130;130;130m\ue615${RST}`,
260
+ "readme.md": `\x1b[38;2;66;165;245m\ue73e${RST}`,
261
+ license: `\x1b[38;2;218;218;218m\ue60a${RST}`,
239
262
  };
240
- function fileIcon(fp) {
241
- if (!exports.USE_ICONS)
263
+ export function fileIcon(fp) {
264
+ if (!USE_ICONS)
242
265
  return "";
243
- const base = (0, node_path_1.basename)(fp).toLowerCase();
266
+ const base = basename(fp).toLowerCase();
244
267
  if (NAME_ICON[base])
245
268
  return `${NAME_ICON[base]} `;
246
- const ext = (0, node_path_1.extname)(fp).slice(1).toLowerCase();
247
- return EXT_ICON[ext] ? `${EXT_ICON[ext]} ` : `${exports.NF_DEFAULT} `;
269
+ const ext = extname(fp).slice(1).toLowerCase();
270
+ return EXT_ICON[ext] ? `${EXT_ICON[ext]} ` : `${NF_DEFAULT} `;
248
271
  }
249
- function dirIcon() {
250
- return exports.USE_ICONS ? `${exports.NF_DIR} ` : "";
272
+ export function dirIcon() {
273
+ return USE_ICONS ? `${NF_DIR} ` : "";
251
274
  }
252
275
  const EXT_LANG = {
253
276
  ts: "typescript",
@@ -296,47 +319,47 @@ const EXT_LANG = {
296
319
  nim: "nim",
297
320
  elixir: "elixir",
298
321
  };
299
- function detectLang(fp) {
300
- const base = (0, node_path_1.basename)(fp).toLowerCase();
322
+ export function detectLang(fp) {
323
+ const base = basename(fp).toLowerCase();
301
324
  if (base === "dockerfile")
302
325
  return "dockerfile";
303
326
  if (base === "makefile" || base === "gnumakefile")
304
327
  return "make";
305
- return EXT_LANG[(0, node_path_1.extname)(fp).slice(1).toLowerCase()];
328
+ return EXT_LANG[extname(fp).slice(1).toLowerCase()];
306
329
  }
307
330
  // ---------------------------------------------------------------------------
308
331
  // Env helpers
309
332
  // ---------------------------------------------------------------------------
310
- function envInt(name, fallback) {
333
+ export function envInt(name, fallback) {
311
334
  const v = Number.parseInt(process.env[name] ?? "", 10);
312
335
  return Number.isFinite(v) && v > 0 ? v : fallback;
313
336
  }
314
- exports.MAX_HL_CHARS = envInt("PRETTY_MAX_HL_CHARS", 80_000);
315
- exports.MAX_PREVIEW_LINES = envInt("PRETTY_MAX_PREVIEW_LINES", 80);
316
- exports.CACHE_LIMIT = envInt("PRETTY_CACHE_LIMIT", 128);
337
+ export let MAX_HL_CHARS = envInt("PRETTY_MAX_HL_CHARS", 80_000);
338
+ export let MAX_PREVIEW_LINES = envInt("PRETTY_MAX_PREVIEW_LINES", 80);
339
+ export let CACHE_LIMIT = envInt("PRETTY_CACHE_LIMIT", 128);
317
340
  /**
318
341
  * Apply `pi-pretty.json` values to the env-backed module bindings. An env
319
342
  * var wins over the config file whenever it is set to a non-empty value;
320
343
  * empty strings are treated as unset. Call once at extension activation,
321
344
  * before any render reads the bindings.
322
345
  */
323
- function applyConfig(config) {
346
+ export function applyConfig(config) {
324
347
  if (!process.env.PRETTY_MAX_HL_CHARS && config.maxHlChars)
325
- exports.MAX_HL_CHARS = config.maxHlChars;
348
+ MAX_HL_CHARS = config.maxHlChars;
326
349
  if (!process.env.PRETTY_MAX_PREVIEW_LINES && config.maxPreviewLines)
327
- exports.MAX_PREVIEW_LINES = config.maxPreviewLines;
350
+ MAX_PREVIEW_LINES = config.maxPreviewLines;
328
351
  if (!process.env.PRETTY_CACHE_LIMIT && config.cacheLimit)
329
- exports.CACHE_LIMIT = config.cacheLimit;
352
+ CACHE_LIMIT = config.cacheLimit;
330
353
  if (!process.env.PRETTY_ICONS && config.icons) {
331
354
  const mode = config.icons.toLowerCase();
332
- exports.USE_ICONS = mode !== "none" && mode !== "off";
355
+ USE_ICONS = mode !== "none" && mode !== "off";
333
356
  }
334
357
  }
335
358
  // ---------------------------------------------------------------------------
336
359
  // Agent directory helpers
337
360
  // ---------------------------------------------------------------------------
338
- function getDefaultAgentDir() {
361
+ export function getDefaultAgentDir() {
339
362
  const home = process.env.HOME ?? "";
340
- return home ? (0, node_path_1.join)(home, ".pi/agent") : undefined;
363
+ return home ? join(home, ".pi/agent") : undefined;
341
364
  }
342
365
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}