@heyhuynhgiabuu/pi-pretty 0.6.25 → 0.6.27

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 +34 -0
  2. package/README.md +47 -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 +192 -43
  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 +73 -30
  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 +10 -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 +93 -30
  41. package/dist/tools/read.js.map +1 -1
  42. package/dist/types.d.ts +13 -3
  43. package/dist/types.d.ts.map +1 -1
  44. package/dist/working-indicator.d.ts +91 -26
  45. package/dist/working-indicator.d.ts.map +1 -1
  46. package/dist/working-indicator.js +259 -77
  47. package/dist/working-indicator.js.map +1 -1
  48. package/package.json +7 -6
  49. package/src/config.ts +51 -0
  50. package/src/fff.ts +158 -29
  51. package/src/index.ts +207 -47
  52. package/src/prompt-editor.ts +102 -0
  53. package/src/render.ts +30 -11
  54. package/src/tools/bash.ts +94 -32
  55. package/src/tools/find.ts +39 -17
  56. package/src/tools/grep.ts +26 -15
  57. package/src/tools/ls.ts +19 -10
  58. package/src/tools/metrics.ts +28 -8
  59. package/src/tools/read.ts +122 -30
  60. package/src/types.ts +14 -3
  61. package/src/working-indicator.ts +309 -88
package/dist/fff.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fff.js","sourceRoot":"","sources":["../src/fff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fff.js","sourceRoot":"","sources":["../src/fff.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EACX,YAAY,EAKZ,MAAM,iCAAiC,CAAC;AAUzC,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,YAAY,CAAC;AA0BzD,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B,wBAA8B,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgVpG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EACX,YAAY,EAMZ,MAAM,iCAAiC,CAAC;AAkBzC,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,YAAY,CAAC;AAmCzD,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B,wBAA8B,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA8dpG"}
package/dist/index.js CHANGED
@@ -12,24 +12,47 @@ import { readFileSync } from "node:fs";
12
12
  import { join } from "node:path";
13
13
  import * as hostSdk from "@earendil-works/pi-coding-agent";
14
14
  import { createFffAutocompleteProvider } from "./autocomplete.js";
15
- import { applyConfig, getDefaultAgentDir, loadConfig, normalizeToolList, resolveToolSets } from "./config.js";
16
- import { getSharedFffService } from "./fff.js";
15
+ import { applyConfig, getDefaultAgentDir, loadConfig, normalizeToolList, resolveFffScanSettings, resolveToolSets, } from "./config.js";
16
+ import { getSharedFffService, isFffRestrictedBasePathError } from "./fff.js";
17
+ import { createPromptEditorClass } from "./prompt-editor.js";
17
18
  import { registerBashTool } from "./tools/bash.js";
18
19
  import { registerFindTool } from "./tools/find.js";
19
20
  import { registerGrepTool } from "./tools/grep.js";
20
21
  import { registerLsTool } from "./tools/ls.js";
21
22
  import { registerReadTool } from "./tools/read.js";
22
- import { createThinkingLabelAnimator, installWorkingIndicator, resolveThinkingIndicatorSettings, resolveWorkingIndicatorSettings, thinkingBlockActive, WORKING_INTERVAL_MS, } from "./working-indicator.js";
23
+ import { createThinkingLabelAnimator, createThinkingTimer, installPerRowThinkingLabels, installWorkingIndicator, resolveThinkingIndicatorSettings, resolveWorkingIndicatorSettings, thinkingBlockActive, WORKING_INTERVAL_MS, } from "./working-indicator.js";
23
24
  // ---------------------------------------------------------------------------
24
25
  // Config
25
26
  // ---------------------------------------------------------------------------
26
27
  const DEFAULT_DISABLED_TOOLS = new Set(["ls"]);
28
+ const USER_MESSAGE_ICON = "❯";
27
29
  function envTools(name) {
28
30
  return new Set(normalizeToolList((process.env[name] ?? "").split(",")));
29
31
  }
30
32
  export default async function piPrettyExtension(pi, deps) {
31
33
  const config = loadConfig();
32
34
  applyConfig(config);
35
+ pi.registerMarkdownTransformer?.((markdown, context) => {
36
+ if (context.messageType !== "user" || markdown.trim() === "")
37
+ return markdown;
38
+ return ` ${USER_MESSAGE_ICON} ${markdown}`;
39
+ });
40
+ pi.registerFlag?.("pretty-fff-home-scan", {
41
+ description: "Allow FFF to index the home directory when Pi starts there",
42
+ type: "boolean",
43
+ });
44
+ pi.registerFlag?.("pretty-fff-root-scan", {
45
+ description: "Allow FFF to index the filesystem root when Pi starts there",
46
+ type: "boolean",
47
+ });
48
+ const fffScanSettings = resolveFffScanSettings(config, {
49
+ enableHomeScanning: pi.getFlag?.("pretty-fff-home-scan"),
50
+ enableRootScanning: pi.getFlag?.("pretty-fff-root-scan"),
51
+ });
52
+ const fffInitOptions = {
53
+ enableHomeDirScanning: fffScanSettings.enableHomeScanning,
54
+ enableFsRootScanning: fffScanSettings.enableRootScanning,
55
+ };
33
56
  const { disabledTools, enabledTools } = resolveToolSets(envTools("PRETTY_DISABLE_TOOLS"), envTools("PRETTY_ENABLE_TOOLS"), config);
34
57
  const isToolEnabled = (name) => {
35
58
  const normalizedName = name.toLowerCase();
@@ -116,13 +139,41 @@ export default async function piPrettyExtension(pi, deps) {
116
139
  const workingSettings = resolveWorkingIndicatorSettings(config.workingIndicator);
117
140
  const thinkingSettings = resolveThinkingIndicatorSettings(config.thinkingIndicator);
118
141
  let workingController;
119
- let thinkingAnimator;
142
+ let thinkingTimer;
120
143
  let thinkingInterval;
121
144
  let thinkingLastMessage;
122
- let thinkingHiddenCache = true;
123
145
  let thinkingHiddenCheckedAt = 0;
124
146
  let workingSessionName;
125
147
  let workingStreaming = false;
148
+ let promptEditorInstalled = false;
149
+ let previousEditorFactory;
150
+ const hostCustomEditor = deps?.customEditorClass ??
151
+ hostSdk.CustomEditor;
152
+ const installPromptEditor = (ctx) => {
153
+ if (ctx.mode !== "tui" || promptEditorInstalled || typeof hostCustomEditor !== "function")
154
+ return;
155
+ const editorUi = ctx.ui;
156
+ if (typeof editorUi.setEditorComponent !== "function")
157
+ return;
158
+ previousEditorFactory = editorUi.getEditorComponent?.();
159
+ const PromptEditor = createPromptEditorClass(hostCustomEditor, (icon) => {
160
+ const theme = ctx.ui.theme;
161
+ return typeof theme.getThinkingBorderColor === "function"
162
+ ? theme.getThinkingBorderColor(ctx.thinkingLevel ?? "off")(icon)
163
+ : theme.fg("thinkingText", icon);
164
+ });
165
+ editorUi.setEditorComponent((tui, theme, keybindings) => new PromptEditor(tui, theme, keybindings));
166
+ promptEditorInstalled = true;
167
+ };
168
+ let perRowLabels;
169
+ /** Accumulated thinking time per message timestamp — later runs in the same
170
+ * message resume from this total instead of rewinding to zero. */
171
+ const thinkingElapsedMs = new Map();
172
+ /** Message timestamps are the per-row identity the label patch keys on. */
173
+ const messageTimestamp = (message) => {
174
+ const ts = message?.timestamp;
175
+ return typeof ts === "number" ? ts : undefined;
176
+ };
126
177
  /** pi persists the thinking-visibility toggle as a top-level settings key. */
127
178
  const thinkingHidden = () => {
128
179
  try {
@@ -136,6 +187,17 @@ export default async function piPrettyExtension(pi, deps) {
136
187
  return false;
137
188
  }
138
189
  };
190
+ /**
191
+ * True when the 500ms-cached hidden check is stale and settings now show
192
+ * thinking revealed — the single re-check shared by the ticker and the
193
+ * completed-phase message_update path (timestamp guard runs before the read).
194
+ */
195
+ const thinkingRevealed = () => {
196
+ if (Date.now() - thinkingHiddenCheckedAt <= 500)
197
+ return false;
198
+ thinkingHiddenCheckedAt = Date.now();
199
+ return !thinkingHidden();
200
+ };
139
201
  const safeSessionName = (ctx) => {
140
202
  try {
141
203
  return ctx.sessionManager?.getSessionName?.() ?? undefined;
@@ -144,8 +206,8 @@ export default async function piPrettyExtension(pi, deps) {
144
206
  return undefined;
145
207
  }
146
208
  };
147
- // (Re-)install the widget: new session, reload, or session rename (the
148
- // accent tint tracks the name, omp-style). Preserves streaming state so a
209
+ // (Re-)install the working indicator: new session, reload, or session rename
210
+ // (the accent tint tracks the name, omp-style). Preserves streaming state so a
149
211
  // mid-stream rename does not drop the row.
150
212
  const installIndicator = async (ctx) => {
151
213
  workingController?.dispose();
@@ -171,7 +233,15 @@ export default async function piPrettyExtension(pi, deps) {
171
233
  };
172
234
  pi.on("session_start", async (_event, ctx) => {
173
235
  if (ctx.mode === "tui") {
236
+ installPromptEditor(ctx);
174
237
  ctx.ui.setToolsExpanded(false);
238
+ // Per-row hidden-thinking labels: intercept the host's label fan-out so
239
+ // each row keeps its own duration. Falls back to the global-label
240
+ // behavior whenever the host class is missing or reshaped.
241
+ perRowLabels = thinkingSettings.enabled
242
+ ? installPerRowThinkingLabels(deps?.assistantMessageComponent ??
243
+ hostSdk.AssistantMessageComponent)
244
+ : undefined;
175
245
  workingSessionName = safeSessionName(ctx);
176
246
  await installIndicator(ctx);
177
247
  }
@@ -184,7 +254,7 @@ export default async function piPrettyExtension(pi, deps) {
184
254
  if (!loaded)
185
255
  return;
186
256
  }
187
- await fffService.ensureFinder(ctx.cwd);
257
+ await fffService.ensureFinder(ctx.cwd, fffInitOptions);
188
258
  if (fffService.partialIndex) {
189
259
  ctx.ui?.notify?.("FFF: scan timed out — using partial index. Run /fff-rescan when ready.", "warning");
190
260
  }
@@ -197,7 +267,11 @@ export default async function piPrettyExtension(pi, deps) {
197
267
  ctx.ui?.addAutocompleteProvider?.((current) => createFffAutocompleteProvider(current, () => fffService?.getFinder() ?? null));
198
268
  }
199
269
  catch (error) {
200
- ctx.ui?.notify?.(`FFF init failed: ${error instanceof Error ? error.message : String(error)}`, "error");
270
+ // Root/home refusal is an intentional FFF safety boundary. FFF is an
271
+ // accelerator, so fall back to the SDK without interrupting startup.
272
+ if (isFffRestrictedBasePathError(error, fffInitOptions))
273
+ return;
274
+ ctx.ui?.notify?.(`FFF init failed: ${error instanceof Error ? error.message : String(error)}`, "warning");
201
275
  }
202
276
  });
203
277
  // Re-apply the indicator when the session is (re)named so the accent tint
@@ -211,7 +285,7 @@ export default async function piPrettyExtension(pi, deps) {
211
285
  if (workingSettings.enabled)
212
286
  await installIndicator(ctx);
213
287
  });
214
- // Drive the widget with the streaming lifecycle (host loader is hidden).
288
+ // Drive the working indicator with the streaming lifecycle (the host row is hidden until agent_start).
215
289
  pi.on("agent_start", async (_event, ctx) => {
216
290
  if (ctx.mode !== "tui")
217
291
  return;
@@ -227,76 +301,151 @@ export default async function piPrettyExtension(pi, deps) {
227
301
  };
228
302
  pi.on("agent_end", stopStreaming);
229
303
  pi.on("agent_settled", stopStreaming);
304
+ const clearThinkingInterval = () => {
305
+ if (!thinkingInterval)
306
+ return;
307
+ clearInterval(thinkingInterval);
308
+ thinkingInterval = undefined;
309
+ };
230
310
  const stopThinkingShimmer = () => {
231
- if (thinkingInterval) {
232
- clearInterval(thinkingInterval);
233
- thinkingInterval = undefined;
311
+ clearThinkingInterval();
312
+ perRowLabels?.clearActive();
313
+ try {
314
+ thinkingTimer?.restore();
315
+ }
316
+ catch {
317
+ // Teardown must never throw — a host that explodes on restore is left
318
+ // with whatever label it has; the interval is already gone.
234
319
  }
235
- thinkingAnimator?.restore();
236
- thinkingAnimator = undefined;
320
+ thinkingTimer = undefined;
237
321
  thinkingLastMessage = undefined;
238
322
  };
323
+ const completeThinkingShimmer = () => {
324
+ clearThinkingInterval();
325
+ const ts = messageTimestamp(thinkingLastMessage);
326
+ const frozenMs = thinkingTimer?.complete();
327
+ if (ts !== undefined && frozenMs !== undefined) {
328
+ thinkingElapsedMs.set(ts, frozenMs);
329
+ perRowLabels?.complete(ts, frozenMs);
330
+ }
331
+ // The completed row is no longer the animating one — drop the active mark
332
+ // so subsequent global writes freeze it at its own duration.
333
+ perRowLabels?.clearActive();
334
+ thinkingLastMessage = undefined;
335
+ };
336
+ /** Surface one warning without letting a throwing host escape the crash guard. */
337
+ const notifyThinkingFailure = (ctx, error) => {
338
+ try {
339
+ ctx.ui?.notify?.(`pi-pretty thinking indicator failed: ${error instanceof Error ? error.message : String(error)}`, "warning");
340
+ }
341
+ catch {
342
+ // A host that throws on notify too must not crash the timer path.
343
+ }
344
+ };
239
345
  // Same 30fps cadence as the working row — but the interval lives ONLY while
240
346
  // the streaming message is actively emitting a thinking block (each label
241
347
  // change rebuilds chat children, so the moment text or tool calls stream the
242
- // shimmer stops and pi's default label is restored).
348
+ // label freezes as `Thought for {duration}` until the run ends).
243
349
  const startThinkingShimmer = (ctx) => {
244
350
  if (thinkingInterval || !thinkingSettings.enabled)
245
351
  return;
246
352
  try {
247
- thinkingAnimator = createThinkingLabelAnimator(ctx.ui, workingSettings, workingSessionName, thinkingSettings);
248
- thinkingHiddenCache = thinkingHidden();
249
353
  thinkingHiddenCheckedAt = Date.now();
250
- if (!thinkingHiddenCache) {
251
- stopThinkingShimmer();
252
- return;
253
- }
254
- thinkingAnimator.tick();
354
+ if (!thinkingHidden())
355
+ return; // thinking visible: no label writes at all
356
+ const animator = createThinkingLabelAnimator(ctx.ui, workingSettings, workingSessionName, thinkingSettings);
357
+ const activeTs = messageTimestamp(thinkingLastMessage);
358
+ // Same message thinking again (interleaved runs): resume its total.
359
+ const resumeMs = activeTs !== undefined ? (thinkingElapsedMs.get(activeTs) ?? 0) : 0;
360
+ thinkingTimer = createThinkingTimer(animator, Date.now, resumeMs);
361
+ if (activeTs !== undefined)
362
+ perRowLabels?.setActive(activeTs);
363
+ thinkingTimer.tick();
255
364
  thinkingInterval = setInterval(() => {
256
- if (!workingStreaming) {
257
- stopThinkingShimmer();
258
- return;
259
- }
260
- const now = Date.now();
261
- if (now - thinkingHiddenCheckedAt > 500) {
262
- thinkingHiddenCache = thinkingHidden();
263
- thinkingHiddenCheckedAt = now;
264
- if (!thinkingHiddenCache) {
365
+ try {
366
+ if (!workingStreaming) {
367
+ stopThinkingShimmer();
368
+ return;
369
+ }
370
+ if (thinkingRevealed()) {
265
371
  stopThinkingShimmer();
266
372
  return;
267
373
  }
374
+ if (!thinkingBlockActive(thinkingLastMessage)) {
375
+ // Thinking phase over: freeze its duration until the run ends.
376
+ completeThinkingShimmer();
377
+ return;
378
+ }
379
+ thinkingTimer?.tick();
380
+ // The label has no widget of its own — ask the working indicator to
381
+ // request a host render even when deltas pause mid-thinking.
382
+ workingController?.requestRender();
268
383
  }
269
- if (!thinkingBlockActive(thinkingLastMessage)) {
270
- // Thinking phase over: restore pi's default label and stop.
384
+ catch (error) {
385
+ // A throwing host call inside our timer would crash pi (uncaught in
386
+ // setInterval) — tear the label down and surface one warning instead.
271
387
  stopThinkingShimmer();
272
- return;
388
+ notifyThinkingFailure(ctx, error);
273
389
  }
274
- thinkingAnimator?.tick();
275
390
  }, WORKING_INTERVAL_MS);
276
391
  }
277
392
  catch (error) {
278
393
  stopThinkingShimmer();
279
- ctx.ui?.notify?.(`pi-pretty thinking indicator failed: ${error instanceof Error ? error.message : String(error)}`, "warning");
394
+ notifyThinkingFailure(ctx, error);
280
395
  }
281
396
  };
282
397
  // Remember the streaming message; lazily start the shimmer on the first
283
- // thinking delta (thinkingHidden() is re-checked at most every 500ms).
398
+ // thinking delta (thinkingHidden() is re-checked at most every 500ms). After
399
+ // the phase completes, deltas keep refreshing the visibility cache so a
400
+ // mid-run `hideThinkingBlock` toggle-off restores the default label.
284
401
  pi.on("message_update", async (event, ctx) => {
285
402
  if (ctx.mode !== "tui" || !workingStreaming)
286
403
  return;
287
404
  thinkingLastMessage = event.message;
288
- if (thinkingInterval)
405
+ if (thinkingInterval) {
406
+ // Complete immediately on the first text/tool delta instead of waiting
407
+ // for the next animation frame.
408
+ if (!thinkingBlockActive(event.message))
409
+ completeThinkingShimmer();
410
+ return;
411
+ }
412
+ if (thinkingBlockActive(event.message)) {
413
+ // First thinking delta — or a later phase after tool calls — starts a
414
+ // fresh timer (the completed one is replaced wholesale).
415
+ startThinkingShimmer(ctx);
289
416
  return;
290
- if (!thinkingBlockActive(event.message))
417
+ }
418
+ if (thinkingTimer && thinkingRevealed())
419
+ stopThinkingShimmer();
420
+ });
421
+ // The completed wording belongs to the message that produced it. The label
422
+ // is global, so once that assistant message ends, restore pi's default —
423
+ // otherwise every later phase stamps its frozen duration onto every hidden
424
+ // thinking row in the transcript (the image-read " Thought for 5s" stack).
425
+ pi.on("message_end", async (event, ctx) => {
426
+ if (ctx.mode !== "tui" || event.message.role !== "assistant")
291
427
  return;
292
- startThinkingShimmer(ctx);
428
+ if (thinkingInterval || thinkingTimer)
429
+ stopThinkingShimmer();
293
430
  });
294
- pi.on("session_shutdown", async () => {
295
- // Tear down the widget animation; pi re-runs session_start (and our
431
+ pi.on("session_shutdown", async (_event, ctx) => {
432
+ if (promptEditorInstalled) {
433
+ if (ctx) {
434
+ const editorUi = ctx.ui;
435
+ if (typeof editorUi.setEditorComponent === "function")
436
+ editorUi.setEditorComponent(previousEditorFactory);
437
+ }
438
+ promptEditorInstalled = false;
439
+ previousEditorFactory = undefined;
440
+ }
441
+ // Tear down the indicator animation; pi re-runs session_start (and our
296
442
  // install) after resume or session switching.
297
443
  workingController?.dispose();
298
444
  workingController = undefined;
299
445
  stopThinkingShimmer();
446
+ perRowLabels?.uninstall();
447
+ perRowLabels = undefined;
448
+ thinkingElapsedMs.clear();
300
449
  workingStreaming = false;
301
450
  // Intentionally keep the native FFF finder on session shutdown.
302
451
  // Pi can emit shutdown/start during resume or session switching while the
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { CustomEditor } from "@earendil-works/pi-coding-agent";
2
+ /** Constructor shape used to preserve compatibility with older Pi hosts. */
3
+ export type CustomEditorConstructor = new (...args: ConstructorParameters<typeof CustomEditor>) => CustomEditor;
4
+ type PromptColor = (text: string) => string;
5
+ /**
6
+ * Build a CustomEditor subclass that reserves room for, and renders, the
7
+ * user-message prompt. The host still owns all editing and app keybindings.
8
+ */
9
+ export declare function createPromptEditorClass(Base: CustomEditorConstructor, colorPrompt: PromptColor): CustomEditorConstructor;
10
+ export {};
11
+ //# sourceMappingURL=prompt-editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-editor.d.ts","sourceRoot":"","sources":["../src/prompt-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAGpE,4EAA4E;AAC5E,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,IAAI,EAAE,qBAAqB,CAAC,OAAO,YAAY,CAAC,KAAK,YAAY,CAAC;AAEhH,KAAK,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;AAK5C;;;GAGG;AACH,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,uBAAuB,EAC7B,WAAW,EAAE,WAAW,GACtB,uBAAuB,CAmFzB"}
@@ -0,0 +1,78 @@
1
+ import { sliceByColumn, visibleWidth } from "@earendil-works/pi-tui";
2
+ const PROMPT_ICON = "❯";
3
+ const PROMPT_WIDTH = 3; // one space on either side of the icon
4
+ /**
5
+ * Build a CustomEditor subclass that reserves room for, and renders, the
6
+ * user-message prompt. The host still owns all editing and app keybindings.
7
+ */
8
+ export function createPromptEditorClass(Base, colorPrompt) {
9
+ const basePrototype = Base.prototype;
10
+ const supportsBorderHooks = typeof basePrototype.renderTopBorder === "function" && typeof basePrototype.renderBottomBorder === "function";
11
+ class PromptEditor extends Base {
12
+ userPaddingX = 0;
13
+ isScrolled = false;
14
+ bottomBorderLine = "";
15
+ constructor(...args) {
16
+ const [tui, theme, keybindings, options] = args;
17
+ super(tui, theme, keybindings, { ...(options ?? {}), embedWorkingStatus: true });
18
+ this.userPaddingX = super.getPaddingX();
19
+ super.setPaddingX(this.userPaddingX + this.promptWidth());
20
+ }
21
+ promptWidth() {
22
+ // At zero user padding, reserve one extra column so the border leaves
23
+ // the same visible gap before the icon as padded editors.
24
+ return PROMPT_WIDTH + (supportsBorderHooks && this.userPaddingX === 0 ? 1 : 0);
25
+ }
26
+ getPaddingX() {
27
+ return this.userPaddingX;
28
+ }
29
+ setPaddingX(padding) {
30
+ this.userPaddingX = Math.max(0, padding);
31
+ super.setPaddingX(this.userPaddingX + this.promptWidth());
32
+ }
33
+ renderTopBorder(width, hiddenLineCount) {
34
+ this.isScrolled = hiddenLineCount > 0;
35
+ return this.roundBorder(super.renderTopBorder(width, hiddenLineCount), width, "╭", "╮");
36
+ }
37
+ renderBottomBorder(width, hiddenLineCount) {
38
+ this.bottomBorderLine = this.roundBorder(super.renderBottomBorder(width, hiddenLineCount), width, "╰", "╯");
39
+ return this.bottomBorderLine;
40
+ }
41
+ roundBorder(line, width, left, right) {
42
+ if (width < 2 || visibleWidth(line) !== width)
43
+ return line;
44
+ return `${this.borderColor(left)}${sliceByColumn(line, 1, width - 2, true)}${this.borderColor(right)}`;
45
+ }
46
+ render(width) {
47
+ this.bottomBorderLine = "";
48
+ const lines = super.render(width);
49
+ if (lines.length < 2)
50
+ return lines;
51
+ if (!this.isScrolled) {
52
+ const firstContentLine = lines[1];
53
+ if (firstContentLine) {
54
+ const maxPadding = Math.max(0, Math.floor((width - 1) / 2));
55
+ const promptPadding = Math.min(this.userPaddingX + this.promptWidth(), maxPadding);
56
+ if (promptPadding >= PROMPT_WIDTH && firstContentLine.startsWith(" ".repeat(promptPadding))) {
57
+ const promptStart = promptPadding - PROMPT_WIDTH;
58
+ const prompt = ` ${colorPrompt(PROMPT_ICON)} `;
59
+ lines[1] = `${firstContentLine.slice(0, promptStart)}${prompt}${firstContentLine.slice(promptPadding)}`;
60
+ }
61
+ }
62
+ }
63
+ if (!supportsBorderHooks || !this.bottomBorderLine)
64
+ return lines;
65
+ const bottomBorderIndex = lines.lastIndexOf(this.bottomBorderLine);
66
+ const contentEnd = bottomBorderIndex > 0 ? bottomBorderIndex : lines.length - 1;
67
+ for (let i = 1; i < contentEnd; i++) {
68
+ const line = lines[i];
69
+ if (!line || visibleWidth(line) !== width || !line.startsWith(" ") || !line.endsWith(" "))
70
+ continue;
71
+ lines[i] = `${this.borderColor("│")}${line.slice(1, -1)}${this.borderColor("│")}`;
72
+ }
73
+ return lines;
74
+ }
75
+ }
76
+ return PromptEditor;
77
+ }
78
+ //# sourceMappingURL=prompt-editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-editor.js","sourceRoot":"","sources":["../src/prompt-editor.ts"],"names":[],"mappings":"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"}
package/dist/render.d.ts CHANGED
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import type { AgentToolResult } from "@earendil-works/pi-coding-agent";
8
8
  import { type BundledTheme } from "shiki";
9
- import type { RenderCtxLike as RenderContext, ThemeLike } from "./types.js";
9
+ import type { RenderCtxLike as RenderContext, TextLike, ThemeLike } from "./types.js";
10
10
  /**
11
11
  * Resolve the Shiki theme used for syntax highlighting.
12
12
  *
@@ -29,6 +29,13 @@ export declare function isLowContrastShikiFg(params: string): boolean;
29
29
  export declare const RESET_WITHOUT_BG = "\u001B[22;23;24;25;27;28;29;39m";
30
30
  export declare function preserveBoxBackground(ansi: string): string;
31
31
  export declare function fillToolBackground(text: string, bg?: string, width?: number): string;
32
+ /** Add exactly the missing terminal row after a rendered tool body. */
33
+ export declare function fillToolBody(text: string, bg?: string, width?: number): string;
34
+ type ToolTitleRenderer = (suffix?: string) => string;
35
+ /** Keep a self-rendered tool's call title mutable while its result arrives. */
36
+ export declare function rememberToolTitle(ctx: RenderContext, component: TextLike, render: ToolTitleRenderer): void;
37
+ /** Move collapsed result metadata into the call title and hide the result slot. */
38
+ export declare function setCollapsedToolTitle(ctx: RenderContext, result: TextLike, suffix: string): boolean;
32
39
  export declare function renderToolMetrics(result: AgentToolResult<Record<string, unknown>>): string;
33
40
  export declare function renderToolDuration(result: AgentToolResult<Record<string, unknown>>): string;
34
41
  export declare function renderToolError(error: string, theme: ThemeLike): string;
@@ -39,4 +46,5 @@ export declare function renderFindResults(text: string, theme?: ThemeLike): stri
39
46
  export declare function renderGrepResults(text: string, pattern: string): Promise<string>;
40
47
  export declare function makeRenderCall(toolName: string): (args: Record<string, unknown>, theme: ThemeLike, ctx: RenderContext) => import("./types.js").ComponentLike;
41
48
  export declare function makeRenderResult(): (result: AgentToolResult<Record<string, unknown>>, _opt: unknown, theme: ThemeLike, ctx: RenderContext) => import("./types.js").ComponentLike;
49
+ export {};
42
50
  //# sourceMappingURL=render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAKvE,OAAO,EAAwB,KAAK,YAAY,EAAiB,MAAM,OAAO,CAAC;AA4B/E,OAAO,KAAK,EAAE,aAAa,IAAI,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAyB5E;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,GAAG,qBAA2B,EAAE,IAAI,qBAAmB,GAAG,YAAY,CAalG;AAID;;;;;GAKG;AACH,wBAAgB,QAAQ,IAAI,YAAY,CAevC;AAoCD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAS5D;AAUD,eAAO,MAAM,gBAAgB,oCAAkC,CAAC;AAEhE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkC1D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,SAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAerF;AAWD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAO1F;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAG3F;AAMD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAKvE;AAMD,wBAAsB,iBAAiB,CACtC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,SAAI,EACV,QAAQ,SAAoB,EAC5B,KAAK,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAcjB;AAMD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUrD;AAMD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAwBlE;AAMD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAmCzE;AAMD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0CtF;AAMD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,IACtC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,SAAS,EAAE,KAAK,aAAa,wCAO3E;AAED,wBAAgB,gBAAgB,KACvB,QAAQ,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,OAAO,EAAE,OAAO,SAAS,EAAE,KAAK,aAAa,wCA2B7G"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAKvE,OAAO,EAAwB,KAAK,YAAY,EAAiB,MAAM,OAAO,CAAC;AA4B/E,OAAO,KAAK,EAAE,aAAa,IAAI,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAoBtF;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,GAAG,qBAA2B,EAAE,IAAI,qBAAmB,GAAG,YAAY,CAalG;AAID;;;;;GAKG;AACH,wBAAgB,QAAQ,IAAI,YAAY,CAevC;AAoCD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAS5D;AAUD,eAAO,MAAM,gBAAgB,oCAAkC,CAAC;AAEhE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkC1D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,SAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAerF;AAED,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,SAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/E;AAGD,KAAK,iBAAiB,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAGrD,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAE1G;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAOnG;AAWD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAO1F;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAG3F;AAMD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAKvE;AAMD,wBAAsB,iBAAiB,CACtC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,SAAI,EACV,QAAQ,SAAoB,EAC5B,KAAK,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAcjB;AAMD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUrD;AAMD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAwBlE;AAMD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAmCzE;AAMD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0CtF;AAMD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,IACtC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,SAAS,EAAE,KAAK,aAAa,wCAO3E;AAED,wBAAgB,gBAAgB,KACvB,QAAQ,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,OAAO,EAAE,OAAO,SAAS,EAAE,KAAK,aAAa,wCA2B7G"}