@heyhuynhgiabuu/pi-pretty 0.6.22 → 0.6.24

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 (47) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +25 -7
  3. package/dist/autocomplete.js +1 -4
  4. package/dist/autocomplete.js.map +1 -1
  5. package/dist/config.d.ts +42 -4
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +174 -117
  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 +22 -60
  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.d.ts +19 -0
  23. package/dist/render.d.ts.map +1 -1
  24. package/dist/render.js +125 -96
  25. package/dist/render.js.map +1 -1
  26. package/dist/tools/bash.js +26 -29
  27. package/dist/tools/bash.js.map +1 -1
  28. package/dist/tools/find.js +31 -34
  29. package/dist/tools/find.js.map +1 -1
  30. package/dist/tools/grep.js +22 -25
  31. package/dist/tools/grep.js.map +1 -1
  32. package/dist/tools/labels.js +1 -4
  33. package/dist/tools/labels.js.map +1 -1
  34. package/dist/tools/ls.js +18 -21
  35. package/dist/tools/ls.js.map +1 -1
  36. package/dist/tools/metrics.js +4 -7
  37. package/dist/tools/metrics.js.map +1 -1
  38. package/dist/tools/read.js +35 -38
  39. package/dist/tools/read.js.map +1 -1
  40. package/dist/tui-text.js +5 -9
  41. package/dist/tui-text.js.map +1 -1
  42. package/dist/types.js +1 -2
  43. package/dist/types.js.map +1 -1
  44. package/package.json +7 -6
  45. package/src/config.ts +90 -19
  46. package/src/index.ts +9 -10
  47. package/src/render.ts +56 -9
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.6.24] - 2026-08-24
4
+
5
+ ### Fixed
6
+
7
+ - 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.
8
+
9
+ ### Changed
10
+
11
+ - Bumped `@earendil-works/pi-ai`, `@earendil-works/pi-coding-agent`, and `@earendil-works/pi-tui` devDependencies from `^0.82.0` to `^0.84.3`.
12
+
13
+ ## [0.6.23] - 2026-08-21
14
+
15
+ ### Added
16
+
17
+ - All options are now configurable in `pi-pretty.json` with environment variables as override layer: `theme`, `icons`, `enableTools`, `disableTools`, `maxHlChars`, `maxPreviewLines`, `cacheLimit` (precedence: env var > config file > built-in default; the theme additionally falls back to `~/.pi/agent/settings.json` before the default) ([#12](https://github.com/heyhuynhgiabuu/pi-pretty/issues/12)).
18
+
19
+ ### Fixed
20
+
21
+ - Syntax highlighting no longer silently degrades to plain text for native pi users: pi's `settings.json` `theme` is a TUI appearance setting (`dark`/`light`/custom names), not a Shiki theme. The resolved theme is now validated against Shiki's bundled themes with a one-time warning and a fallback to `github-dark` when invalid ([#11](https://github.com/heyhuynhgiabuu/pi-pretty/issues/11)).
22
+
3
23
  ## [0.6.22] - 2026-08-20
4
24
 
5
25
  ### Fixed
package/README.md CHANGED
@@ -124,27 +124,45 @@ Use them when:
124
124
 
125
125
  ### Config file: `~/.pi/agent/pi-pretty.json`
126
126
 
127
- Place a JSON file alongside Pi's `settings.json` to customize tool output backgrounds:
127
+ Place a JSON file alongside Pi's `settings.json` to customize pi-pretty. Every option can also be set via environment variables, which take precedence over the config file: **`env var > pi-pretty.json > built-in default`** (the theme additionally falls back to `~/.pi/agent/settings.json`'s `theme` before the default).
128
128
 
129
129
  ```json
130
130
  {
131
131
  "background": {
132
132
  "tool": "#1e1e2e",
133
133
  "error": "#2a1e1e"
134
- }
134
+ },
135
+ "theme": "github-dark",
136
+ "icons": "nerd",
137
+ "enableTools": ["ls"],
138
+ "disableTools": ["grep"],
139
+ "maxHlChars": 80000,
140
+ "maxPreviewLines": 80,
141
+ "cacheLimit": 128
135
142
  }
136
143
  ```
137
144
 
138
- - `background.tool` — background color for normal tool output boxes (default: terminal default).
139
- - `background.error` — background color for error tool output (defaults to `tool` background).
140
-
141
- Config values take priority over theme-provided backgrounds (`toolBg` / `toolErrorBg`). To override the config directory, set `PRETTY_CONFIG_DIR` env var.
145
+ | Key | Type | Env var override | Default |
146
+ | --- | --- | --- | --- |
147
+ | `background.tool` | hex color | — | terminal default |
148
+ | `background.error` | hex color | — | `background.tool` |
149
+ | `theme` | Shiki theme name | `PRETTY_THEME` | `github-dark` (after `pi-pretty.json` `theme`, then `~/.pi/agent/settings.json` `theme`, when valid Shiki themes) |
150
+ | `icons` | `nerd` \| `none` (or `off`) | `PRETTY_ICONS` | `nerd` |
151
+ | `enableTools` | string array | `PRETTY_ENABLE_TOOLS` | `[]` (`ls` is opt-in) |
152
+ | `disableTools` | string array | `PRETTY_DISABLE_TOOLS` | `[]` |
153
+ | `maxHlChars` | positive int | `PRETTY_MAX_HL_CHARS` | `80000` |
154
+ | `maxPreviewLines` | positive int | `PRETTY_MAX_PREVIEW_LINES` | `80` |
155
+ | `cacheLimit` | positive int | `PRETTY_CACHE_LIMIT` | `128` |
156
+
157
+ - Config values take priority over theme-provided backgrounds (`toolBg` / `toolErrorBg`).
158
+ - All options except `background.*` are read once at startup; restart pi to apply changes to them (`background.*` applies live).
159
+ - To override the config directory, set `PRETTY_CONFIG_DIR` env var.
142
160
 
143
161
  ### Environment variables
144
162
 
145
163
  Optional environment variables:
146
164
 
147
- - `PRETTY_THEME` (overrides `~/.pi/agent/settings.json` `theme`; otherwise pi-pretty falls back to that setting before `github-dark`)
165
+ - `PRETTY_THEME` (overrides `pi-pretty.json` `theme`, which overrides `~/.pi/agent/settings.json` `theme`; otherwise pi-pretty falls back to that setting before `github-dark`)
148
166
  - `PRETTY_CONFIG_DIR` — directory to read `pi-pretty.json` from (default: `~/.pi/agent/`)
149
167
  - `PRETTY_MAX_HL_CHARS` (default: `80000`)
150
168
  - `PRETTY_MAX_PREVIEW_LINES` (default: `80`)
@@ -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,9 +18,40 @@ type BgThemeLike = {
18
18
  getBgAnsi?: (key: string) => string;
19
19
  bg?: (key: string, text: string) => string;
20
20
  };
21
+ export interface PrettyConfig {
22
+ background?: {
23
+ tool?: string;
24
+ error?: string;
25
+ };
26
+ theme?: string;
27
+ icons?: string;
28
+ enableTools?: string[];
29
+ disableTools?: string[];
30
+ maxHlChars?: number;
31
+ maxPreviewLines?: number;
32
+ cacheLimit?: number;
33
+ }
34
+ /** Normalize a comma-separated env value or JSON array into tool names. */
35
+ export declare function normalizeToolList(value: unknown): string[];
36
+ /**
37
+ * Read and validate `pi-pretty.json` from the config directory. Invalid
38
+ * fields are silently skipped, matching the historical `background`
39
+ * behavior. The file is re-read on each call; callers that need a stable
40
+ * value (extension activation, theme resolution) cache the result.
41
+ */
42
+ export declare function loadConfig(agentDir?: string | undefined): PrettyConfig;
43
+ export declare function getConfigDir(): string | undefined;
44
+ /**
45
+ * Merge env tool sets with config-file tool lists: a non-empty env set wins
46
+ * over the config file (12-factor precedence); otherwise config applies.
47
+ */
48
+ export declare function resolveToolSets(envDisabled: Set<string>, envEnabled: Set<string>, config: Pick<PrettyConfig, "disableTools" | "enableTools">): {
49
+ disabledTools: Set<string>;
50
+ enabledTools: Set<string>;
51
+ };
21
52
  export declare function resolveBaseBackground(theme: BgThemeLike | null | undefined): void;
22
53
  export declare function termWidth(): number;
23
- export declare const USE_ICONS: boolean;
54
+ export declare let USE_ICONS: boolean;
24
55
  export declare const NF_DIR: string;
25
56
  export declare const NF_DEFAULT: string;
26
57
  export declare function fileIcon(fp: string): string;
@@ -28,9 +59,16 @@ export declare function dirIcon(): string;
28
59
  import type { BundledLanguage } from "shiki";
29
60
  export declare function detectLang(fp: string): BundledLanguage | undefined;
30
61
  export declare function envInt(name: string, fallback: number): number;
31
- export declare const MAX_HL_CHARS: number;
32
- export declare const MAX_PREVIEW_LINES: number;
33
- export declare const CACHE_LIMIT: number;
62
+ export declare let MAX_HL_CHARS: number;
63
+ export declare let MAX_PREVIEW_LINES: number;
64
+ export declare let CACHE_LIMIT: number;
65
+ /**
66
+ * Apply `pi-pretty.json` values to the env-backed module bindings. An env
67
+ * var wins over the config file whenever it is set to a non-empty value;
68
+ * empty strings are treated as unset. Call once at extension activation,
69
+ * before any render reads the bindings.
70
+ */
71
+ export declare function applyConfig(config: PrettyConfig): void;
34
72
  export declare function getDefaultAgentDir(): string | undefined;
35
73
  export {};
36
74
  //# sourceMappingURL=config.d.ts.map
@@ -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;AAyEF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAYjF;AAMD,wBAAgB,SAAS,IAAI,MAAM,CAOlC;AAOD,eAAO,MAAM,SAAS,SAAgD,CAAC;AAEvE,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,MAAM,YAAY,QAAwC,CAAC;AAClE,eAAO,MAAM,iBAAiB,QAAyC,CAAC;AACxE,eAAO,MAAM,WAAW,QAAoC,CAAC;AAM7D,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,35 +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.resolveBaseBackground = resolveBaseBackground;
8
- exports.termWidth = termWidth;
9
- exports.fileIcon = fileIcon;
10
- exports.dirIcon = dirIcon;
11
- exports.detectLang = detectLang;
12
- exports.envInt = envInt;
13
- exports.getDefaultAgentDir = getDefaultAgentDir;
14
- const node_fs_1 = require("node:fs");
15
- const node_path_1 = require("node:path");
4
+ import { readFileSync } from "node:fs";
5
+ import { basename, extname, join } from "node:path";
16
6
  // ---------------------------------------------------------------------------
17
7
  // ANSI
18
8
  // ---------------------------------------------------------------------------
19
9
  /** Left indent for rendered tool result lines (was two spaces; one matches tighter TUI layout). */
20
- exports.TOOL_RESULT_INDENT = " ";
21
- exports.RST = "\x1b[0m";
22
- exports.FG_LNUM = "\x1b[38;2;100;100;100m";
23
- exports.FG_DIM = "\x1b[38;2;80;80;80m";
24
- exports.FG_RULE = "\x1b[38;2;50;50;50m";
25
- exports.FG_GREEN = "\x1b[38;2;100;180;120m";
26
- exports.FG_RED = "\x1b[38;2;200;100;100m";
27
- exports.FG_YELLOW = "\x1b[38;2;220;180;80m";
28
- exports.FG_BLUE = "\x1b[38;2;100;140;220m";
29
- 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";
30
20
  const BG_DEFAULT = "\x1b[49m";
31
- exports.BG_BASE = BG_DEFAULT;
32
- exports.BG_ERROR = BG_DEFAULT;
21
+ export let BG_BASE = BG_DEFAULT;
22
+ export let BG_ERROR = BG_DEFAULT;
33
23
  const ESC_RE = "\u001b";
34
24
  function parseAnsiRgb(ansi) {
35
25
  const m = ansi.match(new RegExp(`${ESC_RE}\\[(?:38|48);2;(\\d+);(\\d+);(\\d+)m`));
@@ -59,60 +49,109 @@ function hexToAnsiBg(hex) {
59
49
  const b = Number.parseInt(m[3], 16);
60
50
  return `\x1b[48;2;${r};${g};${b}m`;
61
51
  }
62
- function readPrettyConfig(agentDir) {
52
+ /** Normalize a comma-separated env value or JSON array into tool names. */
53
+ export function normalizeToolList(value) {
54
+ if (!Array.isArray(value))
55
+ return [];
56
+ return value
57
+ .filter((v) => typeof v === "string")
58
+ .map((v) => v.trim().toLowerCase())
59
+ .filter(Boolean);
60
+ }
61
+ function positiveInt(value) {
62
+ return typeof value === "number" && Number.isInteger(value) && value > 0 ? value : undefined;
63
+ }
64
+ /**
65
+ * Read and validate `pi-pretty.json` from the config directory. Invalid
66
+ * fields are silently skipped, matching the historical `background`
67
+ * behavior. The file is re-read on each call; callers that need a stable
68
+ * value (extension activation, theme resolution) cache the result.
69
+ */
70
+ export function loadConfig(agentDir = getConfigDir()) {
63
71
  if (!agentDir)
64
72
  return {};
65
73
  try {
66
- const raw = (0, node_fs_1.readFileSync)((0, node_path_1.join)(agentDir, "pi-pretty.json"), "utf8");
67
- const parsed = JSON.parse(raw);
74
+ const parsed = JSON.parse(readFileSync(join(agentDir, "pi-pretty.json"), "utf8"));
75
+ const config = {};
68
76
  if (parsed.background) {
69
- if (parsed.background.tool && !hexToAnsiBg(parsed.background.tool)) {
70
- parsed.background.tool = undefined;
77
+ const background = {};
78
+ if (parsed.background.tool && hexToAnsiBg(parsed.background.tool)) {
79
+ background.tool = parsed.background.tool;
71
80
  }
72
- if (parsed.background.error && !hexToAnsiBg(parsed.background.error)) {
73
- parsed.background.error = undefined;
74
- }
75
- if (!parsed.background.tool && !parsed.background.error) {
76
- parsed.background = undefined;
81
+ if (parsed.background.error && hexToAnsiBg(parsed.background.error)) {
82
+ background.error = parsed.background.error;
77
83
  }
84
+ if (background.tool || background.error)
85
+ config.background = background;
78
86
  }
79
- return parsed;
87
+ if (typeof parsed.theme === "string" && parsed.theme.trim() !== "")
88
+ config.theme = parsed.theme;
89
+ if (typeof parsed.icons === "string")
90
+ config.icons = parsed.icons;
91
+ const enableTools = normalizeToolList(parsed.enableTools);
92
+ const disableTools = normalizeToolList(parsed.disableTools);
93
+ if (enableTools.length)
94
+ config.enableTools = enableTools;
95
+ if (disableTools.length)
96
+ config.disableTools = disableTools;
97
+ const maxHlChars = positiveInt(parsed.maxHlChars);
98
+ const maxPreviewLines = positiveInt(parsed.maxPreviewLines);
99
+ const cacheLimit = positiveInt(parsed.cacheLimit);
100
+ if (maxHlChars)
101
+ config.maxHlChars = maxHlChars;
102
+ if (maxPreviewLines)
103
+ config.maxPreviewLines = maxPreviewLines;
104
+ if (cacheLimit)
105
+ config.cacheLimit = cacheLimit;
106
+ return config;
80
107
  }
81
108
  catch {
82
109
  return {};
83
110
  }
84
111
  }
112
+ export function getConfigDir() {
113
+ return process.env.PRETTY_CONFIG_DIR ?? getDefaultAgentDir();
114
+ }
115
+ /**
116
+ * Merge env tool sets with config-file tool lists: a non-empty env set wins
117
+ * over the config file (12-factor precedence); otherwise config applies.
118
+ */
119
+ export function resolveToolSets(envDisabled, envEnabled, config) {
120
+ return {
121
+ disabledTools: envDisabled.size > 0 ? envDisabled : new Set(config.disableTools ?? []),
122
+ enabledTools: envEnabled.size > 0 ? envEnabled : new Set(config.enableTools ?? []),
123
+ };
124
+ }
85
125
  function applyPrettyConfigBg(agentDir) {
86
- const config = readPrettyConfig(agentDir);
126
+ const config = loadConfig(agentDir);
87
127
  if (!config.background?.tool)
88
128
  return false;
89
129
  const toolBg = hexToAnsiBg(config.background.tool);
90
130
  if (!toolBg)
91
131
  return false;
92
- exports.BG_BASE = toolBg;
93
- exports.BG_ERROR = config.background.error ? (hexToAnsiBg(config.background.error) ?? toolBg) : toolBg;
94
- exports.RST = "\x1b[0m";
132
+ BG_BASE = toolBg;
133
+ BG_ERROR = config.background.error ? (hexToAnsiBg(config.background.error) ?? toolBg) : toolBg;
134
+ RST = "\x1b[0m";
95
135
  return true;
96
136
  }
97
- function resolveBaseBackground(theme) {
98
- const home = process.env.HOME;
99
- const configDir = process.env.PRETTY_CONFIG_DIR ?? (home ? (0, node_path_1.join)(home, ".pi/agent") : undefined);
137
+ export function resolveBaseBackground(theme) {
138
+ const configDir = getConfigDir();
100
139
  if (applyPrettyConfigBg(configDir))
101
140
  return;
102
141
  if (!theme?.getBgAnsi && !theme?.bg)
103
142
  return;
104
- exports.BG_BASE =
143
+ BG_BASE =
105
144
  getThemeBgAnsi(theme, "toolSuccessBg") ??
106
145
  getThemeBgAnsi(theme, "toolBg") ??
107
146
  getThemeBgAnsi(theme, "background") ??
108
147
  BG_DEFAULT;
109
- exports.BG_ERROR = getThemeBgAnsi(theme, "toolErrorBg") ?? exports.BG_BASE;
110
- exports.RST = "\x1b[0m";
148
+ BG_ERROR = getThemeBgAnsi(theme, "toolErrorBg") ?? BG_BASE;
149
+ RST = "\x1b[0m";
111
150
  }
112
151
  // ---------------------------------------------------------------------------
113
152
  // Terminal
114
153
  // ---------------------------------------------------------------------------
115
- function termWidth() {
154
+ export function termWidth() {
116
155
  if (process.stdout.columns)
117
156
  return Math.max(1, Math.min(process.stdout.columns, 210));
118
157
  const raw = process.stderr.columns ||
@@ -124,76 +163,76 @@ function termWidth() {
124
163
  // File-type icons — Nerd Font glyphs
125
164
  // ---------------------------------------------------------------------------
126
165
  const ICONS_MODE = (process.env.PRETTY_ICONS ?? "nerd").toLowerCase();
127
- exports.USE_ICONS = ICONS_MODE !== "none" && ICONS_MODE !== "off";
128
- exports.NF_DIR = `${exports.FG_BLUE}\ue5ff${exports.RST}`;
129
- exports.NF_DEFAULT = `${exports.FG_DIM}\uf15b${exports.RST}`;
166
+ export let USE_ICONS = ICONS_MODE !== "none" && ICONS_MODE !== "off";
167
+ export const NF_DIR = `${FG_BLUE}\ue5ff${RST}`;
168
+ export const NF_DEFAULT = `${FG_DIM}\uf15b${RST}`;
130
169
  const EXT_ICON = {
131
- ts: `\x1b[38;2;49;120;198m\ue628${exports.RST}`,
132
- tsx: `\x1b[38;2;49;120;198m\ue7ba${exports.RST}`,
133
- js: `\x1b[38;2;241;224;90m\ue74e${exports.RST}`,
134
- jsx: `\x1b[38;2;97;218;251m\ue7ba${exports.RST}`,
135
- mjs: `\x1b[38;2;241;224;90m\ue74e${exports.RST}`,
136
- cjs: `\x1b[38;2;241;224;90m\ue74e${exports.RST}`,
137
- py: `\x1b[38;2;55;118;171m\ue73c${exports.RST}`,
138
- rs: `\x1b[38;2;222;165;132m\ue7a8${exports.RST}`,
139
- go: `\x1b[38;2;0;173;216m\ue724${exports.RST}`,
140
- java: `\x1b[38;2;204;62;68m\ue738${exports.RST}`,
141
- swift: `\x1b[38;2;255;172;77m\ue755${exports.RST}`,
142
- rb: `\x1b[38;2;204;52;45m\ue739${exports.RST}`,
143
- kt: `\x1b[38;2;126;103;200m\ue634${exports.RST}`,
144
- c: `\x1b[38;2;85;154;211m\ue61e${exports.RST}`,
145
- cpp: `\x1b[38;2;85;154;211m\ue61d${exports.RST}`,
146
- cs: `\x1b[38;2;104;33;122m\ue648${exports.RST}`,
147
- html: `\x1b[38;2;228;77;38m\ue736${exports.RST}`,
148
- css: `\x1b[38;2;66;165;245m\ue749${exports.RST}`,
149
- scss: `\x1b[38;2;207;100;154m\ue749${exports.RST}`,
150
- vue: `\x1b[38;2;65;184;131m\ue6a0${exports.RST}`,
151
- svelte: `\x1b[38;2;255;62;0m\ue697${exports.RST}`,
152
- json: `\x1b[38;2;241;224;90m\ue60b${exports.RST}`,
153
- yaml: `\x1b[38;2;160;116;196m\ue6a8${exports.RST}`,
154
- yml: `\x1b[38;2;160;116;196m\ue6a8${exports.RST}`,
155
- toml: `\x1b[38;2;160;116;196m\ue6b2${exports.RST}`,
156
- xml: `\x1b[38;2;228;77;38m\ue619${exports.RST}`,
157
- md: `\x1b[38;2;66;165;245m\ue73e${exports.RST}`,
158
- mdx: `\x1b[38;2;66;165;245m\ue73e${exports.RST}`,
159
- sql: `\x1b[38;2;218;218;218m\ue706${exports.RST}`,
160
- sh: `\x1b[38;2;137;180;130m\ue795${exports.RST}`,
161
- bash: `\x1b[38;2;137;180;130m\ue795${exports.RST}`,
162
- zsh: `\x1b[38;2;137;180;130m\ue795${exports.RST}`,
163
- lua: `\x1b[38;2;81;160;207m\ue620${exports.RST}`,
164
- php: `\x1b[38;2;137;147;186m\ue73d${exports.RST}`,
165
- dart: `\x1b[38;2;87;182;240m\ue798${exports.RST}`,
166
- png: `\x1b[38;2;160;116;196m\uf1c5${exports.RST}`,
167
- jpg: `\x1b[38;2;160;116;196m\uf1c5${exports.RST}`,
168
- svg: `\x1b[38;2;255;180;50m\uf1c5${exports.RST}`,
169
- webp: `\x1b[38;2;160;116;196m\uf1c5${exports.RST}`,
170
- lock: `\x1b[38;2;130;130;130m\uf023${exports.RST}`,
171
- env: `\x1b[38;2;241;224;90m\ue615${exports.RST}`,
172
- graphql: `\x1b[38;2;224;51;144m\ue662${exports.RST}`,
173
- dockerfile: `\x1b[38;2;56;152;236m\ue7b0${exports.RST}`,
170
+ ts: `\x1b[38;2;49;120;198m\ue628${RST}`,
171
+ tsx: `\x1b[38;2;49;120;198m\ue7ba${RST}`,
172
+ js: `\x1b[38;2;241;224;90m\ue74e${RST}`,
173
+ jsx: `\x1b[38;2;97;218;251m\ue7ba${RST}`,
174
+ mjs: `\x1b[38;2;241;224;90m\ue74e${RST}`,
175
+ cjs: `\x1b[38;2;241;224;90m\ue74e${RST}`,
176
+ py: `\x1b[38;2;55;118;171m\ue73c${RST}`,
177
+ rs: `\x1b[38;2;222;165;132m\ue7a8${RST}`,
178
+ go: `\x1b[38;2;0;173;216m\ue724${RST}`,
179
+ java: `\x1b[38;2;204;62;68m\ue738${RST}`,
180
+ swift: `\x1b[38;2;255;172;77m\ue755${RST}`,
181
+ rb: `\x1b[38;2;204;52;45m\ue739${RST}`,
182
+ kt: `\x1b[38;2;126;103;200m\ue634${RST}`,
183
+ c: `\x1b[38;2;85;154;211m\ue61e${RST}`,
184
+ cpp: `\x1b[38;2;85;154;211m\ue61d${RST}`,
185
+ cs: `\x1b[38;2;104;33;122m\ue648${RST}`,
186
+ html: `\x1b[38;2;228;77;38m\ue736${RST}`,
187
+ css: `\x1b[38;2;66;165;245m\ue749${RST}`,
188
+ scss: `\x1b[38;2;207;100;154m\ue749${RST}`,
189
+ vue: `\x1b[38;2;65;184;131m\ue6a0${RST}`,
190
+ svelte: `\x1b[38;2;255;62;0m\ue697${RST}`,
191
+ json: `\x1b[38;2;241;224;90m\ue60b${RST}`,
192
+ yaml: `\x1b[38;2;160;116;196m\ue6a8${RST}`,
193
+ yml: `\x1b[38;2;160;116;196m\ue6a8${RST}`,
194
+ toml: `\x1b[38;2;160;116;196m\ue6b2${RST}`,
195
+ xml: `\x1b[38;2;228;77;38m\ue619${RST}`,
196
+ md: `\x1b[38;2;66;165;245m\ue73e${RST}`,
197
+ mdx: `\x1b[38;2;66;165;245m\ue73e${RST}`,
198
+ sql: `\x1b[38;2;218;218;218m\ue706${RST}`,
199
+ sh: `\x1b[38;2;137;180;130m\ue795${RST}`,
200
+ bash: `\x1b[38;2;137;180;130m\ue795${RST}`,
201
+ zsh: `\x1b[38;2;137;180;130m\ue795${RST}`,
202
+ lua: `\x1b[38;2;81;160;207m\ue620${RST}`,
203
+ php: `\x1b[38;2;137;147;186m\ue73d${RST}`,
204
+ dart: `\x1b[38;2;87;182;240m\ue798${RST}`,
205
+ png: `\x1b[38;2;160;116;196m\uf1c5${RST}`,
206
+ jpg: `\x1b[38;2;160;116;196m\uf1c5${RST}`,
207
+ svg: `\x1b[38;2;255;180;50m\uf1c5${RST}`,
208
+ webp: `\x1b[38;2;160;116;196m\uf1c5${RST}`,
209
+ lock: `\x1b[38;2;130;130;130m\uf023${RST}`,
210
+ env: `\x1b[38;2;241;224;90m\ue615${RST}`,
211
+ graphql: `\x1b[38;2;224;51;144m\ue662${RST}`,
212
+ dockerfile: `\x1b[38;2;56;152;236m\ue7b0${RST}`,
174
213
  };
175
214
  const NAME_ICON = {
176
- "package.json": `\x1b[38;2;137;180;130m\ue71e${exports.RST}`,
177
- "package-lock.json": `\x1b[38;2;130;130;130m\ue71e${exports.RST}`,
178
- "tsconfig.json": `\x1b[38;2;49;120;198m\ue628${exports.RST}`,
179
- ".gitignore": `\x1b[38;2;222;165;132m\ue702${exports.RST}`,
180
- ".env": `\x1b[38;2;241;224;90m\ue615${exports.RST}`,
181
- dockerfile: `\x1b[38;2;56;152;236m\ue7b0${exports.RST}`,
182
- makefile: `\x1b[38;2;130;130;130m\ue615${exports.RST}`,
183
- "readme.md": `\x1b[38;2;66;165;245m\ue73e${exports.RST}`,
184
- license: `\x1b[38;2;218;218;218m\ue60a${exports.RST}`,
215
+ "package.json": `\x1b[38;2;137;180;130m\ue71e${RST}`,
216
+ "package-lock.json": `\x1b[38;2;130;130;130m\ue71e${RST}`,
217
+ "tsconfig.json": `\x1b[38;2;49;120;198m\ue628${RST}`,
218
+ ".gitignore": `\x1b[38;2;222;165;132m\ue702${RST}`,
219
+ ".env": `\x1b[38;2;241;224;90m\ue615${RST}`,
220
+ dockerfile: `\x1b[38;2;56;152;236m\ue7b0${RST}`,
221
+ makefile: `\x1b[38;2;130;130;130m\ue615${RST}`,
222
+ "readme.md": `\x1b[38;2;66;165;245m\ue73e${RST}`,
223
+ license: `\x1b[38;2;218;218;218m\ue60a${RST}`,
185
224
  };
186
- function fileIcon(fp) {
187
- if (!exports.USE_ICONS)
225
+ export function fileIcon(fp) {
226
+ if (!USE_ICONS)
188
227
  return "";
189
- const base = (0, node_path_1.basename)(fp).toLowerCase();
228
+ const base = basename(fp).toLowerCase();
190
229
  if (NAME_ICON[base])
191
230
  return `${NAME_ICON[base]} `;
192
- const ext = (0, node_path_1.extname)(fp).slice(1).toLowerCase();
193
- return EXT_ICON[ext] ? `${EXT_ICON[ext]} ` : `${exports.NF_DEFAULT} `;
231
+ const ext = extname(fp).slice(1).toLowerCase();
232
+ return EXT_ICON[ext] ? `${EXT_ICON[ext]} ` : `${NF_DEFAULT} `;
194
233
  }
195
- function dirIcon() {
196
- return exports.USE_ICONS ? `${exports.NF_DIR} ` : "";
234
+ export function dirIcon() {
235
+ return USE_ICONS ? `${NF_DIR} ` : "";
197
236
  }
198
237
  const EXT_LANG = {
199
238
  ts: "typescript",
@@ -242,29 +281,47 @@ const EXT_LANG = {
242
281
  nim: "nim",
243
282
  elixir: "elixir",
244
283
  };
245
- function detectLang(fp) {
246
- const base = (0, node_path_1.basename)(fp).toLowerCase();
284
+ export function detectLang(fp) {
285
+ const base = basename(fp).toLowerCase();
247
286
  if (base === "dockerfile")
248
287
  return "dockerfile";
249
288
  if (base === "makefile" || base === "gnumakefile")
250
289
  return "make";
251
- return EXT_LANG[(0, node_path_1.extname)(fp).slice(1).toLowerCase()];
290
+ return EXT_LANG[extname(fp).slice(1).toLowerCase()];
252
291
  }
253
292
  // ---------------------------------------------------------------------------
254
293
  // Env helpers
255
294
  // ---------------------------------------------------------------------------
256
- function envInt(name, fallback) {
295
+ export function envInt(name, fallback) {
257
296
  const v = Number.parseInt(process.env[name] ?? "", 10);
258
297
  return Number.isFinite(v) && v > 0 ? v : fallback;
259
298
  }
260
- exports.MAX_HL_CHARS = envInt("PRETTY_MAX_HL_CHARS", 80_000);
261
- exports.MAX_PREVIEW_LINES = envInt("PRETTY_MAX_PREVIEW_LINES", 80);
262
- exports.CACHE_LIMIT = envInt("PRETTY_CACHE_LIMIT", 128);
299
+ export let MAX_HL_CHARS = envInt("PRETTY_MAX_HL_CHARS", 80_000);
300
+ export let MAX_PREVIEW_LINES = envInt("PRETTY_MAX_PREVIEW_LINES", 80);
301
+ export let CACHE_LIMIT = envInt("PRETTY_CACHE_LIMIT", 128);
302
+ /**
303
+ * Apply `pi-pretty.json` values to the env-backed module bindings. An env
304
+ * var wins over the config file whenever it is set to a non-empty value;
305
+ * empty strings are treated as unset. Call once at extension activation,
306
+ * before any render reads the bindings.
307
+ */
308
+ export function applyConfig(config) {
309
+ if (!process.env.PRETTY_MAX_HL_CHARS && config.maxHlChars)
310
+ MAX_HL_CHARS = config.maxHlChars;
311
+ if (!process.env.PRETTY_MAX_PREVIEW_LINES && config.maxPreviewLines)
312
+ MAX_PREVIEW_LINES = config.maxPreviewLines;
313
+ if (!process.env.PRETTY_CACHE_LIMIT && config.cacheLimit)
314
+ CACHE_LIMIT = config.cacheLimit;
315
+ if (!process.env.PRETTY_ICONS && config.icons) {
316
+ const mode = config.icons.toLowerCase();
317
+ USE_ICONS = mode !== "none" && mode !== "off";
318
+ }
319
+ }
263
320
  // ---------------------------------------------------------------------------
264
321
  // Agent directory helpers
265
322
  // ---------------------------------------------------------------------------
266
- function getDefaultAgentDir() {
323
+ export function getDefaultAgentDir() {
267
324
  const home = process.env.HOME ?? "";
268
- return home ? (0, node_path_1.join)(home, ".pi/agent") : undefined;
325
+ return home ? join(home, ".pi/agent") : undefined;
269
326
  }
270
327
  //# 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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"}