@heyhuynhgiabuu/pi-pretty 0.6.26 → 0.6.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +34 -17
  3. package/dist/config.d.ts +16 -0
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +30 -0
  6. package/dist/config.js.map +1 -1
  7. package/dist/fff.d.ts +16 -1
  8. package/dist/fff.d.ts.map +1 -1
  9. package/dist/fff.js +139 -33
  10. package/dist/fff.js.map +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +70 -24
  13. package/dist/index.js.map +1 -1
  14. package/dist/prompt-editor.d.ts +11 -0
  15. package/dist/prompt-editor.d.ts.map +1 -0
  16. package/dist/prompt-editor.js +78 -0
  17. package/dist/prompt-editor.js.map +1 -0
  18. package/dist/render.d.ts +9 -1
  19. package/dist/render.d.ts.map +1 -1
  20. package/dist/render.js +25 -9
  21. package/dist/render.js.map +1 -1
  22. package/dist/tools/bash.d.ts.map +1 -1
  23. package/dist/tools/bash.js +79 -32
  24. package/dist/tools/bash.js.map +1 -1
  25. package/dist/tools/find.d.ts.map +1 -1
  26. package/dist/tools/find.js +29 -10
  27. package/dist/tools/find.js.map +1 -1
  28. package/dist/tools/grep.d.ts.map +1 -1
  29. package/dist/tools/grep.js +20 -10
  30. package/dist/tools/grep.js.map +1 -1
  31. package/dist/tools/ls.d.ts.map +1 -1
  32. package/dist/tools/ls.js +11 -5
  33. package/dist/tools/ls.js.map +1 -1
  34. package/dist/tools/metrics.d.ts +6 -1
  35. package/dist/tools/metrics.d.ts.map +1 -1
  36. package/dist/tools/metrics.js +21 -8
  37. package/dist/tools/metrics.js.map +1 -1
  38. package/dist/tools/read.d.ts +2 -1
  39. package/dist/tools/read.d.ts.map +1 -1
  40. package/dist/tools/read.js +97 -31
  41. package/dist/tools/read.js.map +1 -1
  42. package/dist/types.d.ts +13 -4
  43. package/dist/types.d.ts.map +1 -1
  44. package/dist/working-indicator.d.ts +39 -31
  45. package/dist/working-indicator.d.ts.map +1 -1
  46. package/dist/working-indicator.js +114 -87
  47. package/dist/working-indicator.js.map +1 -1
  48. package/package.json +1 -1
  49. package/src/config.ts +51 -0
  50. package/src/fff.ts +158 -29
  51. package/src/index.ts +77 -24
  52. package/src/prompt-editor.ts +102 -0
  53. package/src/render.ts +30 -11
  54. package/src/tools/bash.ts +100 -34
  55. package/src/tools/find.ts +39 -17
  56. package/src/tools/grep.ts +26 -15
  57. package/src/tools/ls.ts +20 -10
  58. package/src/tools/metrics.ts +28 -8
  59. package/src/tools/read.ts +126 -31
  60. package/src/types.ts +14 -4
  61. package/src/working-indicator.ts +123 -95
@@ -1,19 +1,17 @@
1
1
  /**
2
- * omp-style shimmer working indicator (widget takeover).
2
+ * omp-style shimmer working indicator.
3
3
  *
4
4
  * Ports the shimmer sweep from oh-my-pi's `modes/theme/shimmer.ts`: the sweep
5
5
  * is discretized into one pre-rendered frame per band position, cycled at
6
6
  * 1000/30 ms so the band travels 30 cells/second — omp's exact speed.
7
7
  *
8
- * Why a widget: the host `Loader` extends `Text` with a hardcoded paddingX=1,
9
- * and `setWorkingIndicator({ frames })` cannot change host component layout.
10
- * To render the row flush-left we hide the host loader
11
- * (`setWorkingVisible(false)`) and install our own zero-padding component via
12
- * `setWidget(..., "aboveEditor")`, animating it with a 33ms interval.
8
+ * On hosts that expose Pi's embedded working-status API, frames are delegated
9
+ * to the host so the row is rendered in the editor's top border. Older hosts
10
+ * without that API use the zero-padding widget fallback above the editor.
13
11
  *
14
- * Frame layout: `<dim spinner> <shimmer text> <dim interrupt hint>`, one full
15
- * sweep per phrase — `texts` rotates through phrases chapter by chapter with
16
- * a continuous spinner phase.
12
+ * Frame layout: `<dim spinner> <shimmer text>`, one full sweep per phrase —
13
+ * `texts` rotates through phrases chapter by chapter with a continuous spinner
14
+ * phase. The extension adds no interrupt hint or token-count suffix.
17
15
  */
18
16
  import { truncateToWidth } from "@earendil-works/pi-tui";
19
17
  import { FG_BLUE, FG_DIM, FG_MUTED } from "./config.js";
@@ -211,7 +209,6 @@ function codePointRanges(text) {
211
209
  export function buildWorkingFrames(texts, options) {
212
210
  const intervalMs = options.intervalMs ?? WORKING_INTERVAL_MS;
213
211
  const bold = options.bold ?? true;
214
- const suffix = options.hint ?? "";
215
212
  const withSpinner = options.spinner ?? true;
216
213
  const spinnerColor = options.spinnerColor ?? options.ansi.low;
217
214
  const highOpen = bold ? `${BOLD_OPEN}${options.ansi.high}` : options.ansi.high;
@@ -258,13 +255,13 @@ export function buildWorkingFrames(texts, options) {
258
255
  continue;
259
256
  if (options.mode === "static") {
260
257
  // Static mode: one unanimated frame — only the first phrase renders.
261
- frames.push(`${spinnerPrefix(spinnerIndex++)}${paintFrame(text, ranges, Array.from({ length: total }, () => "mid"))}${suffix}`);
258
+ frames.push(`${spinnerPrefix(spinnerIndex++)}${paintFrame(text, ranges, Array.from({ length: total }, () => "mid"))}`);
262
259
  return { frames, intervalMs };
263
260
  }
264
261
  if (options.mode === "kitt") {
265
262
  const range = total - 1;
266
263
  if (range <= 0) {
267
- frames.push(`${spinnerPrefix(spinnerIndex++)}${paintFrame(text, ranges, Array.from({ length: total }, () => "high"))}${suffix}`);
264
+ frames.push(`${spinnerPrefix(spinnerIndex++)}${paintFrame(text, ranges, Array.from({ length: total }, () => "high"))}`);
268
265
  continue;
269
266
  }
270
267
  const cycleCells = 2 * range;
@@ -272,20 +269,20 @@ export function buildWorkingFrames(texts, options) {
272
269
  const goingRight = sweep < range;
273
270
  const head = goingRight ? sweep : cycleCells - sweep;
274
271
  const tiers = Array.from({ length: total }, (_, i) => tierFor(kittIntensity(i, head, goingRight)));
275
- frames.push(`${spinnerPrefix(spinnerIndex++)}${paintFrame(text, ranges, tiers)}${suffix}`);
272
+ frames.push(`${spinnerPrefix(spinnerIndex++)}${paintFrame(text, ranges, tiers)}`);
276
273
  }
277
274
  }
278
275
  else {
279
276
  const period = total + CLASSIC_PADDING * 2;
280
277
  for (let pos = 0; pos < period; pos++) {
281
278
  const tiers = Array.from({ length: total }, (_, i) => tierFor(classicIntensity(i, pos)));
282
- frames.push(`${spinnerPrefix(spinnerIndex++)}${paintFrame(text, ranges, tiers)}${suffix}`);
279
+ frames.push(`${spinnerPrefix(spinnerIndex++)}${paintFrame(text, ranges, tiers)}`);
283
280
  }
284
281
  }
285
282
  }
286
283
  return { frames, intervalMs };
287
284
  }
288
- /** Estimate streamed output tokens: provider `usage.output` when exposed, else visible chars ÷ 4. */
285
+ /** @deprecated The working row no longer displays token stats. */
289
286
  export function workingTokens(message) {
290
287
  const usage = message?.usage;
291
288
  const output = Number(usage?.output);
@@ -306,8 +303,8 @@ export function workingTokens(message) {
306
303
  }
307
304
  /**
308
305
  * Zero-padding working-row component. The host renders whatever `render()`
309
- * returns with no margins, so the row sits flush-left — the thing the frames
310
- * API could not do.
306
+ * returns with no margins, so the legacy widget row sits flush-left without
307
+ * relying on the host loader's padding.
311
308
  */
312
309
  export class WorkingWidget {
313
310
  #frames = [];
@@ -317,7 +314,6 @@ export class WorkingWidget {
317
314
  #tui;
318
315
  #started = false;
319
316
  #disposed = false;
320
- #stats;
321
317
  setFrames(frames, intervalMs) {
322
318
  this.#frames = frames;
323
319
  this.#intervalMs = intervalMs;
@@ -332,11 +328,8 @@ export class WorkingWidget {
332
328
  requestRender() {
333
329
  this.#tui?.requestRender();
334
330
  }
335
- /** Dynamic right-side status segment (e.g. live token count), styled dim at
336
- * render time so theme changes don't bake stale ANSI into it. */
337
- setStats(text) {
338
- this.#stats = text || undefined;
339
- }
331
+ /** @deprecated Token stats are owned by Pi and are no longer rendered here. */
332
+ setStats(_text) { }
340
333
  start() {
341
334
  if (this.#disposed || this.#started)
342
335
  return;
@@ -362,8 +355,7 @@ export class WorkingWidget {
362
355
  if (!this.#started || this.#frames.length === 0)
363
356
  return [];
364
357
  const frame = this.#frames[this.#index % this.#frames.length] ?? "";
365
- const suffix = this.#stats ? `${FG_DIM}${this.#stats}${RESET_FG}` : "";
366
- return [truncateToWidth(frame + suffix, Math.max(1, width))];
358
+ return [truncateToWidth(frame, Math.max(1, width))];
367
359
  }
368
360
  invalidate() {
369
361
  // Stateless per render — nothing to invalidate.
@@ -392,7 +384,7 @@ const PER_ROW_PATCH = Symbol.for("pi-pretty.per-row-thinking-labels");
392
384
  * Intercept the host's per-row label fan-out method
393
385
  * (`AssistantMessageComponent.prototype.setHiddenThinkingLabel`): each row
394
386
  * substitutes the incoming global label with its own — the streaming row
395
- * animates, completed rows stay frozen at their own `Thought for Xs`, unknown
387
+ * animates, completed rows stay frozen at their own `Thought for X`, unknown
396
388
  * rows fall back to pi's default. Any per-call failure passes the incoming
397
389
  * label through unchanged, so a host internals change degrades to pi-pretty's
398
390
  * global-label behavior instead of breaking. Durations live per session.
@@ -422,7 +414,7 @@ export function installPerRowThinkingLabels(componentClass) {
422
414
  if (ts === state.activeTs)
423
415
  return incoming;
424
416
  const ms = state.completed.get(ts);
425
- return ms === undefined ? THINKING_LABEL : `Thought for ${formatThinkingDuration(ms)}`;
417
+ return ms === undefined ? THINKING_LABEL : `${THOUGHT_LABEL} ${formatThinkingDuration(ms)}`;
426
418
  }
427
419
  catch {
428
420
  return incoming;
@@ -450,10 +442,15 @@ export function installPerRowThinkingLabels(componentClass) {
450
442
  proto.setHiddenThinkingLabel = patched;
451
443
  return controller;
452
444
  }
453
- const THINKING_LABEL = "Thinking...";
454
- /** Format elapsed milliseconds as whole seconds with compact padded units. */
445
+ const THINKING_LABEL = " Thinking...";
446
+ const THOUGHT_LABEL = " Thought for";
447
+ const padThinkingLabel = (label) => (label.startsWith(" ") ? label : ` ${label}`);
448
+ /** Format sub-second elapsed time as milliseconds, then use compact whole seconds. */
455
449
  export function formatThinkingDuration(elapsedMs) {
456
- const totalSeconds = Math.floor(elapsedMs / 1000);
450
+ const wholeMs = Math.max(0, Math.floor(elapsedMs));
451
+ if (wholeMs < 1000)
452
+ return `${wholeMs}ms`;
453
+ const totalSeconds = Math.floor(wholeMs / 1000);
457
454
  const seconds = totalSeconds % 60;
458
455
  const totalMinutes = Math.floor(totalSeconds / 60);
459
456
  const minutes = totalMinutes % 60;
@@ -488,7 +485,7 @@ export function createThinkingTimer(animator, now = Date.now, startElapsedMs = 0
488
485
  return undefined;
489
486
  terminal = true;
490
487
  const ms = elapsed();
491
- animator.show(`Thought for ${formatThinkingDuration(ms)}`);
488
+ animator.show(`${THOUGHT_LABEL} ${formatThinkingDuration(ms)}`);
492
489
  return ms;
493
490
  },
494
491
  restore() {
@@ -514,8 +511,8 @@ export function thinkingBlockActive(message) {
514
511
  * the working row. Pi renders the label as static italic `thinkingText` text;
515
512
  * the only extension lever is `setHiddenThinkingLabel(label)`, which rebuilds
516
513
  * chat children, so index.ts drives it at 30fps only while the streaming
517
- * message's last block is thinking. The elapsed label is rebuilt only when its
518
- * whole-second text changes; the shimmer frame still advances every tick.
514
+ * message's last block is thinking. The elapsed label is rebuilt when its
515
+ * displayed duration changes; the shimmer frame still advances every tick.
519
516
  *
520
517
  * Tiers: low = theme `thinkingText` (pi's own label look), mid/high = session
521
518
  * accent when enabled; every frame is italic like pi's label; no spinner.
@@ -541,13 +538,18 @@ export function createThinkingLabelAnimator(ui, workSettings, sessionName, think
541
538
  if (accent)
542
539
  ansi = { ...ansi, mid: accent, high: accent };
543
540
  }
544
- const buildLabelFrames = (label) => buildWorkingFrames([label], {
545
- mode: workSettings.mode,
546
- ansi,
547
- bold: workSettings.bold,
548
- spinner: false,
549
- italic: true,
550
- }).frames;
541
+ const buildLabelFrames = (label) => {
542
+ const padded = padThinkingLabel(label);
543
+ const text = padded.trimStart();
544
+ const leftPadding = padded.slice(0, padded.length - text.length);
545
+ return buildWorkingFrames([text], {
546
+ mode: workSettings.mode,
547
+ ansi,
548
+ bold: workSettings.bold,
549
+ spinner: false,
550
+ italic: true,
551
+ }).frames.map((frame) => `${leftPadding}${frame}`);
552
+ };
551
553
  let currentLabel = THINKING_LABEL;
552
554
  let frames = buildLabelFrames(currentLabel);
553
555
  let index = 0;
@@ -557,9 +559,10 @@ export function createThinkingLabelAnimator(ui, workSettings, sessionName, think
557
559
  return frames;
558
560
  },
559
561
  tick(label = THINKING_LABEL) {
560
- if (label !== currentLabel) {
561
- frames = buildLabelFrames(label);
562
- currentLabel = label;
562
+ const paddedLabel = padThinkingLabel(label);
563
+ if (paddedLabel !== currentLabel) {
564
+ frames = buildLabelFrames(paddedLabel);
565
+ currentLabel = paddedLabel;
563
566
  }
564
567
  // A static frame changes only when its elapsed-time label changes.
565
568
  if (appliedLabel === currentLabel && frames.length === 1)
@@ -569,7 +572,7 @@ export function createThinkingLabelAnimator(ui, workSettings, sessionName, think
569
572
  appliedLabel = currentLabel;
570
573
  },
571
574
  show(label) {
572
- ui.setHiddenThinkingLabel(label);
575
+ ui.setHiddenThinkingLabel(padThinkingLabel(label));
573
576
  },
574
577
  restore() {
575
578
  // undefined → pi falls back to its default static label.
@@ -578,47 +581,14 @@ export function createThinkingLabelAnimator(ui, workSettings, sessionName, think
578
581
  };
579
582
  }
580
583
  const WIDGET_KEY = "pi-pretty-working";
581
- async function loadHostKeybindings() {
582
- try {
583
- const tui = (await import("@earendil-works/pi-tui"));
584
- return tui.getKeybindings?.();
585
- }
586
- catch {
587
- return undefined;
588
- }
589
- }
590
- function formatKeyText(keys) {
591
- const darwin = process.platform === "darwin";
592
- return keys
593
- .join("/")
594
- .split("/")
595
- .map((key) => key
596
- .split("+")
597
- .map((part) => (darwin && part.toLowerCase() === "alt" ? "option" : part))
598
- .join("+"))
599
- .join("/");
600
- }
601
- async function resolveHint(ui, deps) {
602
- try {
603
- const loader = deps?.getKeybindings ?? loadHostKeybindings;
604
- const keybindings = await loader();
605
- const keys = keybindings?.getKeys?.("app.interrupt");
606
- if (!keys?.length)
607
- return undefined;
608
- const text = ` (${formatKeyText(keys)} to interrupt)`;
609
- return ui.theme?.fg ? ui.theme.fg("dim", text) : text;
610
- }
611
- catch {
612
- return undefined;
613
- }
614
- }
615
584
  /**
616
- * Take over pi's working row with our own flush-left shimmer widget.
585
+ * Install the custom working shimmer and return its lifecycle controller.
617
586
  *
618
- * Installs a zero-padding component above the editor and hides the host
619
- * loader; returns a controller the host lifecycle drives (`start` on
620
- * agent_start, `stop` on agent_end). No-op (host defaults untouched) when
621
- * disabled or the phrase list is empty.
587
+ * Current Pi hosts receive the pre-rendered frames through the embedded
588
+ * working-status API, which places them in the editor's top border. Older
589
+ * hosts use a zero-padding widget above the editor. The host lifecycle drives
590
+ * the controller (`start` on agent_start, `stop` on agent_end); disabled or
591
+ * empty phrase settings leave host defaults untouched.
622
592
  */
623
593
  export async function installWorkingIndicator(ui, settings, deps, sessionName) {
624
594
  const noopController = {
@@ -634,6 +604,7 @@ export async function installWorkingIndicator(ui, settings, deps, sessionName) {
634
604
  const texts = settings.texts.map((t) => t.trim()).filter((t) => t.length > 0);
635
605
  if (texts.length === 0)
636
606
  return noopController;
607
+ void deps; // Retained for compatibility; interrupt hints are no longer resolved here.
637
608
  const ansiResolved = resolvePaletteAnsi(settings.palette, ui.theme);
638
609
  let ansi = ansiResolved;
639
610
  let spinnerColor;
@@ -645,20 +616,76 @@ export async function installWorkingIndicator(ui, settings, deps, sessionName) {
645
616
  spinnerColor = hexToAnsiFg(dimAccentHex(accentHex));
646
617
  }
647
618
  }
648
- const hint = settings.hint ? await resolveHint(ui, deps) : undefined;
649
619
  const { frames, intervalMs } = buildWorkingFrames(texts, {
650
620
  mode: settings.mode,
651
621
  ansi,
652
622
  bold: settings.bold,
653
623
  spinnerColor,
654
- hint,
655
624
  });
656
625
  if (frames.length === 0)
657
626
  return noopController;
627
+ const setWorkingIndicator = ui.setWorkingIndicator;
628
+ const setWorkingMessage = ui.setWorkingMessage;
629
+ if (typeof setWorkingIndicator === "function" && typeof setWorkingMessage === "function") {
630
+ let started = false;
631
+ let disposed = false;
632
+ const updateNativeMessage = () => {
633
+ // Keep Pi's built-in message hidden because the custom frame already
634
+ // supplies the working label; no hint or token suffix is added here.
635
+ setWorkingMessage.call(ui, "");
636
+ };
637
+ try {
638
+ setWorkingIndicator.call(ui, { frames, intervalMs });
639
+ // Keep the native status row hidden until the extension lifecycle starts it.
640
+ // An empty message is intentional: all visible content lives in our frames.
641
+ updateNativeMessage();
642
+ ui.setWorkingVisible(false);
643
+ }
644
+ catch (error) {
645
+ try {
646
+ setWorkingIndicator.call(ui);
647
+ setWorkingMessage.call(ui);
648
+ }
649
+ catch {
650
+ // Best-effort rollback; the caller still restores host visibility.
651
+ }
652
+ throw error;
653
+ }
654
+ return {
655
+ start: () => {
656
+ if (disposed || started)
657
+ return;
658
+ started = true;
659
+ updateNativeMessage();
660
+ ui.setWorkingVisible(true);
661
+ },
662
+ stop: () => {
663
+ if (!started)
664
+ return;
665
+ started = false;
666
+ ui.setWorkingVisible(false);
667
+ },
668
+ dispose: () => {
669
+ if (disposed)
670
+ return;
671
+ if (started) {
672
+ started = false;
673
+ ui.setWorkingVisible(false);
674
+ }
675
+ disposed = true;
676
+ setWorkingIndicator.call(ui);
677
+ setWorkingMessage.call(ui);
678
+ },
679
+ setStats: (_text) => { },
680
+ requestRender: () => updateNativeMessage(),
681
+ frames,
682
+ };
683
+ }
658
684
  const widget = new WorkingWidget();
659
685
  widget.setFrames(frames, intervalMs);
660
686
  // Widget first, visibility second: if setWidget throws (older host without
661
- // the API) the host loader was never hidden and pi's default remains.
687
+ // the native working-status API) the host loader was never hidden and pi's
688
+ // default remains.
662
689
  ui.setWidget(WIDGET_KEY, (tui) => {
663
690
  widget.attach(tui);
664
691
  return widget;
@@ -671,7 +698,7 @@ export async function installWorkingIndicator(ui, settings, deps, sessionName) {
671
698
  widget.dispose();
672
699
  ui.setWidget(WIDGET_KEY, undefined);
673
700
  },
674
- setStats: (text) => widget.setStats(text),
701
+ setStats: (_text) => { },
675
702
  requestRender: () => widget.requestRender(),
676
703
  frames,
677
704
  };
@@ -1 +1 @@
1
- {"version":3,"file":"working-indicator.js","sourceRoot":"","sources":["../src/working-indicator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"working-indicator.js","sourceRoot":"","sources":["../src/working-indicator.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.26",
3
+ "version": "0.6.28",
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",
package/src/config.ts CHANGED
@@ -77,6 +77,7 @@ export interface WorkingIndicatorConfig {
77
77
  mid?: string;
78
78
  high?: string;
79
79
  bold?: boolean;
80
+ /** @deprecated Retained for config compatibility; the working row no longer renders this hint. */
80
81
  hint?: boolean;
81
82
  /** Tint the indicator with a stable per-session accent color. */
82
83
  sessionAccent?: boolean;
@@ -86,6 +87,18 @@ export interface ThinkingIndicatorConfig {
86
87
  enabled?: boolean;
87
88
  }
88
89
 
90
+ export interface FffConfig {
91
+ /** Allow FFF to index the user's home directory when Pi starts there. */
92
+ enableHomeScanning?: boolean;
93
+ /** Allow FFF to index the filesystem root when Pi starts there. */
94
+ enableRootScanning?: boolean;
95
+ }
96
+
97
+ export interface FffScanSettings {
98
+ enableHomeScanning: boolean;
99
+ enableRootScanning: boolean;
100
+ }
101
+
89
102
  export interface PrettyConfig {
90
103
  background?: {
91
104
  tool?: string;
@@ -100,6 +113,7 @@ export interface PrettyConfig {
100
113
  cacheLimit?: number;
101
114
  workingIndicator?: WorkingIndicatorConfig;
102
115
  thinkingIndicator?: ThinkingIndicatorConfig;
116
+ fff?: FffConfig;
103
117
  }
104
118
 
105
119
  /** Normalize a comma-separated env value or JSON array into tool names. */
@@ -148,6 +162,14 @@ export function loadConfig(agentDir = getConfigDir()): PrettyConfig {
148
162
  if (maxHlChars) config.maxHlChars = maxHlChars;
149
163
  if (maxPreviewLines) config.maxPreviewLines = maxPreviewLines;
150
164
  if (cacheLimit) config.cacheLimit = cacheLimit;
165
+ const fff = parsed.fff;
166
+ if (fff && typeof fff === "object") {
167
+ const fffConfig: FffConfig = {};
168
+ const src = fff as Record<string, unknown>;
169
+ if (typeof src.enableHomeScanning === "boolean") fffConfig.enableHomeScanning = src.enableHomeScanning;
170
+ if (typeof src.enableRootScanning === "boolean") fffConfig.enableRootScanning = src.enableRootScanning;
171
+ if (Object.keys(fffConfig).length > 0) config.fff = fffConfig;
172
+ }
151
173
  const workingIndicator = parsed.workingIndicator;
152
174
  if (workingIndicator && typeof workingIndicator === "object") {
153
175
  const wi: WorkingIndicatorConfig = {};
@@ -185,6 +207,35 @@ export function getConfigDir(): string | undefined {
185
207
  return process.env.PRETTY_CONFIG_DIR ?? getDefaultAgentDir();
186
208
  }
187
209
 
210
+ function parseBooleanOverride(value: unknown): boolean | undefined {
211
+ if (typeof value === "boolean") return value;
212
+ if (typeof value !== "string") return undefined;
213
+ const normalized = value.trim().toLowerCase();
214
+ if (normalized === "1" || normalized === "true" || normalized === "on") return true;
215
+ if (normalized === "0" || normalized === "false" || normalized === "off") return false;
216
+ return undefined;
217
+ }
218
+
219
+ export function resolveFffScanSettings(
220
+ config: Pick<PrettyConfig, "fff">,
221
+ flags: {
222
+ enableHomeScanning?: boolean | string;
223
+ enableRootScanning?: boolean | string;
224
+ } = {},
225
+ env: NodeJS.ProcessEnv = process.env,
226
+ ): FffScanSettings {
227
+ const resolve = (
228
+ flagValue: boolean | string | undefined,
229
+ envName: string,
230
+ configValue: boolean | undefined,
231
+ ): boolean => parseBooleanOverride(flagValue) ?? parseBooleanOverride(env[envName]) ?? configValue ?? false;
232
+
233
+ return {
234
+ enableHomeScanning: resolve(flags.enableHomeScanning, "PRETTY_FFF_HOME_SCAN", config.fff?.enableHomeScanning),
235
+ enableRootScanning: resolve(flags.enableRootScanning, "PRETTY_FFF_ROOT_SCAN", config.fff?.enableRootScanning),
236
+ };
237
+ }
238
+
188
239
  /**
189
240
  * Merge env tool sets with config-file tool lists: a non-empty env set wins
190
241
  * over the config file (12-factor precedence); otherwise config applies.