@prestyj/cli 4.2.62 → 4.2.75

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 (138) hide show
  1. package/dist/cli.js.map +1 -1
  2. package/dist/config.d.ts +1 -0
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +1 -0
  5. package/dist/config.js.map +1 -1
  6. package/dist/core/compaction/compactor.d.ts +3 -1
  7. package/dist/core/compaction/compactor.d.ts.map +1 -1
  8. package/dist/core/compaction/compactor.js +6 -3
  9. package/dist/core/compaction/compactor.js.map +1 -1
  10. package/dist/core/compaction/compactor.test.js +86 -10
  11. package/dist/core/compaction/compactor.test.js.map +1 -1
  12. package/dist/core/model-registry.js +3 -3
  13. package/dist/core/settings-manager.d.ts +1 -0
  14. package/dist/core/settings-manager.d.ts.map +1 -1
  15. package/dist/core/settings-manager.js +2 -0
  16. package/dist/core/settings-manager.js.map +1 -1
  17. package/dist/core/slash-commands.d.ts.map +1 -1
  18. package/dist/core/slash-commands.js +15 -1
  19. package/dist/core/slash-commands.js.map +1 -1
  20. package/dist/system-prompt.d.ts.map +1 -1
  21. package/dist/system-prompt.js +21 -3
  22. package/dist/system-prompt.js.map +1 -1
  23. package/dist/ui/App.d.ts.map +1 -1
  24. package/dist/ui/App.js +258 -70
  25. package/dist/ui/App.js.map +1 -1
  26. package/dist/ui/buddy/Buddy.d.ts +15 -0
  27. package/dist/ui/buddy/Buddy.d.ts.map +1 -0
  28. package/dist/ui/buddy/Buddy.js +118 -0
  29. package/dist/ui/buddy/Buddy.js.map +1 -0
  30. package/dist/ui/buddy/gacha.d.ts +8 -0
  31. package/dist/ui/buddy/gacha.d.ts.map +1 -0
  32. package/dist/ui/buddy/gacha.js +94 -0
  33. package/dist/ui/buddy/gacha.js.map +1 -0
  34. package/dist/ui/buddy/species.d.ts +52 -0
  35. package/dist/ui/buddy/species.d.ts.map +1 -0
  36. package/dist/ui/buddy/species.js +257 -0
  37. package/dist/ui/buddy/species.js.map +1 -0
  38. package/dist/ui/components/ActivityIndicator.d.ts +8 -1
  39. package/dist/ui/components/ActivityIndicator.d.ts.map +1 -1
  40. package/dist/ui/components/ActivityIndicator.js +60 -8
  41. package/dist/ui/components/ActivityIndicator.js.map +1 -1
  42. package/dist/ui/components/AnimationContext.d.ts +5 -0
  43. package/dist/ui/components/AnimationContext.d.ts.map +1 -1
  44. package/dist/ui/components/AnimationContext.js +8 -1
  45. package/dist/ui/components/AnimationContext.js.map +1 -1
  46. package/dist/ui/components/AssistantMessage.d.ts.map +1 -1
  47. package/dist/ui/components/AssistantMessage.js +3 -2
  48. package/dist/ui/components/AssistantMessage.js.map +1 -1
  49. package/dist/ui/components/BackgroundTasksBar.js +2 -2
  50. package/dist/ui/components/BackgroundTasksBar.js.map +1 -1
  51. package/dist/ui/components/Footer.d.ts +3 -1
  52. package/dist/ui/components/Footer.d.ts.map +1 -1
  53. package/dist/ui/components/Footer.js +23 -48
  54. package/dist/ui/components/Footer.js.map +1 -1
  55. package/dist/ui/components/Markdown.d.ts +4 -0
  56. package/dist/ui/components/Markdown.d.ts.map +1 -1
  57. package/dist/ui/components/Markdown.js +109 -6
  58. package/dist/ui/components/Markdown.js.map +1 -1
  59. package/dist/ui/components/MessageResponse.d.ts +25 -0
  60. package/dist/ui/components/MessageResponse.d.ts.map +1 -0
  61. package/dist/ui/components/MessageResponse.js +42 -0
  62. package/dist/ui/components/MessageResponse.js.map +1 -0
  63. package/dist/ui/components/NoSelect.d.ts +20 -0
  64. package/dist/ui/components/NoSelect.d.ts.map +1 -0
  65. package/dist/ui/components/NoSelect.js +14 -0
  66. package/dist/ui/components/NoSelect.js.map +1 -0
  67. package/dist/ui/components/PlanProgress.d.ts +7 -0
  68. package/dist/ui/components/PlanProgress.d.ts.map +1 -0
  69. package/dist/ui/components/PlanProgress.js +30 -0
  70. package/dist/ui/components/PlanProgress.js.map +1 -0
  71. package/dist/ui/components/Ratchet.d.ts +20 -0
  72. package/dist/ui/components/Ratchet.d.ts.map +1 -0
  73. package/dist/ui/components/Ratchet.js +30 -0
  74. package/dist/ui/components/Ratchet.js.map +1 -0
  75. package/dist/ui/components/ServerToolExecution.d.ts.map +1 -1
  76. package/dist/ui/components/ServerToolExecution.js +5 -6
  77. package/dist/ui/components/ServerToolExecution.js.map +1 -1
  78. package/dist/ui/components/Spinner.d.ts +8 -2
  79. package/dist/ui/components/Spinner.d.ts.map +1 -1
  80. package/dist/ui/components/Spinner.js +51 -5
  81. package/dist/ui/components/Spinner.js.map +1 -1
  82. package/dist/ui/components/StreamingArea.d.ts.map +1 -1
  83. package/dist/ui/components/StreamingArea.js +7 -42
  84. package/dist/ui/components/StreamingArea.js.map +1 -1
  85. package/dist/ui/components/SubAgentPanel.d.ts.map +1 -1
  86. package/dist/ui/components/SubAgentPanel.js +4 -3
  87. package/dist/ui/components/SubAgentPanel.js.map +1 -1
  88. package/dist/ui/components/ToolExecution.d.ts.map +1 -1
  89. package/dist/ui/components/ToolExecution.js +38 -12
  90. package/dist/ui/components/ToolExecution.js.map +1 -1
  91. package/dist/ui/components/ToolGroupExecution.d.ts.map +1 -1
  92. package/dist/ui/components/ToolGroupExecution.js +21 -17
  93. package/dist/ui/components/ToolGroupExecution.js.map +1 -1
  94. package/dist/ui/components/ToolUseLoader.d.ts +19 -0
  95. package/dist/ui/components/ToolUseLoader.d.ts.map +1 -0
  96. package/dist/ui/components/ToolUseLoader.js +42 -0
  97. package/dist/ui/components/ToolUseLoader.js.map +1 -0
  98. package/dist/ui/constants/figures.d.ts +30 -0
  99. package/dist/ui/constants/figures.d.ts.map +1 -0
  100. package/dist/ui/constants/figures.js +41 -0
  101. package/dist/ui/constants/figures.js.map +1 -0
  102. package/dist/ui/hooks/useAgentLoop.d.ts +8 -0
  103. package/dist/ui/hooks/useAgentLoop.d.ts.map +1 -1
  104. package/dist/ui/hooks/useAgentLoop.js +31 -112
  105. package/dist/ui/hooks/useAgentLoop.js.map +1 -1
  106. package/dist/ui/hooks/useBlink.d.ts +11 -0
  107. package/dist/ui/hooks/useBlink.d.ts.map +1 -0
  108. package/dist/ui/hooks/useBlink.js +19 -0
  109. package/dist/ui/hooks/useBlink.js.map +1 -0
  110. package/dist/ui/hooks/useMinDisplayTime.d.ts +11 -0
  111. package/dist/ui/hooks/useMinDisplayTime.d.ts.map +1 -0
  112. package/dist/ui/hooks/useMinDisplayTime.js +34 -0
  113. package/dist/ui/hooks/useMinDisplayTime.js.map +1 -0
  114. package/dist/ui/hooks/useTerminalProgress.d.ts +2 -0
  115. package/dist/ui/hooks/useTerminalProgress.d.ts.map +1 -0
  116. package/dist/ui/hooks/useTerminalProgress.js +98 -0
  117. package/dist/ui/hooks/useTerminalProgress.js.map +1 -0
  118. package/dist/ui/spinner-frames.d.ts +1 -0
  119. package/dist/ui/spinner-frames.d.ts.map +1 -1
  120. package/dist/ui/spinner-frames.js +15 -5
  121. package/dist/ui/spinner-frames.js.map +1 -1
  122. package/dist/ui/theme/dark.json +2 -1
  123. package/dist/ui/theme/light.json +2 -1
  124. package/dist/ui/theme/theme.d.ts +1 -0
  125. package/dist/ui/theme/theme.d.ts.map +1 -1
  126. package/dist/ui/utils/markdown-cache.d.ts +12 -0
  127. package/dist/ui/utils/markdown-cache.d.ts.map +1 -0
  128. package/dist/ui/utils/markdown-cache.js +43 -0
  129. package/dist/ui/utils/markdown-cache.js.map +1 -0
  130. package/dist/ui/utils/word-diff.d.ts +11 -0
  131. package/dist/ui/utils/word-diff.d.ts.map +1 -0
  132. package/dist/ui/utils/word-diff.js +23 -0
  133. package/dist/ui/utils/word-diff.js.map +1 -0
  134. package/dist/utils/plan-steps.d.ts +41 -0
  135. package/dist/utils/plan-steps.d.ts.map +1 -0
  136. package/dist/utils/plan-steps.js +91 -0
  137. package/dist/utils/plan-steps.js.map +1 -0
  138. package/package.json +3 -3
@@ -72,19 +72,16 @@ export function useAgentLoop(messages, options, callbacks) {
72
72
  const [isThinking, setIsThinking] = useState(false);
73
73
  const [streamedTokenEstimate, setStreamedTokenEstimate] = useState(0);
74
74
  const [retryInfo, setRetryInfo] = useState(null);
75
+ const [linesChanged, setLinesChanged] = useState({ added: 0, removed: 0 });
75
76
  const abortRef = useRef(null);
76
77
  const queueRef = useRef([]);
77
78
  const [queuedCount, setQueuedCount] = useState(0);
78
79
  const activeToolCallsRef = useRef([]);
79
- const textPendingRef = useRef("");
80
80
  const textVisibleRef = useRef("");
81
81
  const thinkingBufferRef = useRef("");
82
- const thinkingPendingRef = useRef("");
83
82
  const thinkingVisibleRef = useRef("");
84
- // thinkingRevealTimerRef removed — unified into revealTimerRef
85
83
  const runStartRef = useRef(0);
86
84
  const toolsUsedRef = useRef(new Set());
87
- const revealTimerRef = useRef(null);
88
85
  const phaseRef = useRef("idle");
89
86
  const thinkingStartRef = useRef(null);
90
87
  const thinkingAccumRef = useRef(0);
@@ -92,85 +89,6 @@ export function useAgentLoop(messages, options, callbacks) {
92
89
  const realTokensAccumRef = useRef(0);
93
90
  const elapsedTimerRef = useRef(null);
94
91
  const doneCalledRef = useRef(false);
95
- // ── Unified reveal timer ───────────────────────────────────
96
- // A single 33ms timer handles BOTH text and thinking reveals so they
97
- // coalesce into one React state update per tick instead of two
98
- // independent timers potentially firing in the same frame.
99
- const emptyTicksRef = useRef(0);
100
- const stopReveal = useCallback(() => {
101
- if (revealTimerRef.current) {
102
- clearInterval(revealTimerRef.current);
103
- revealTimerRef.current = null;
104
- }
105
- }, []);
106
- /** Advance a pending buffer by adaptive chunk size with word-boundary snapping. */
107
- const revealChunk = (pending, minChars, maxChars, factor) => {
108
- if (pending.length === 0)
109
- return { revealed: "", remaining: "" };
110
- const buffered = pending.length;
111
- const charsPerTick = Math.max(minChars, Math.min(maxChars, Math.ceil(buffered * factor)));
112
- let endIndex = Math.min(charsPerTick, buffered);
113
- if (endIndex < buffered) {
114
- const breakChars = " \n.,;:`')]}>";
115
- for (let i = endIndex; i >= Math.max(1, endIndex - 20); i--) {
116
- if (breakChars.includes(pending[i])) {
117
- endIndex = i + 1;
118
- break;
119
- }
120
- }
121
- }
122
- return { revealed: pending.slice(0, endIndex), remaining: pending.slice(endIndex) };
123
- };
124
- const startReveal = useCallback(() => {
125
- if (revealTimerRef.current)
126
- return;
127
- emptyTicksRef.current = 0;
128
- revealTimerRef.current = setInterval(() => {
129
- const textPending = textPendingRef.current;
130
- const thinkPending = thinkingPendingRef.current;
131
- if (textPending.length === 0 && thinkPending.length === 0) {
132
- emptyTicksRef.current++;
133
- if (emptyTicksRef.current >= 3)
134
- stopReveal();
135
- return;
136
- }
137
- emptyTicksRef.current = 0;
138
- let textChanged = false;
139
- let thinkChanged = false;
140
- // Reveal text (adaptive 12-180 chars/tick)
141
- if (textPending.length > 0) {
142
- const { revealed, remaining } = revealChunk(textPending, 12, 180, 0.35);
143
- textPendingRef.current = remaining;
144
- textVisibleRef.current += revealed;
145
- textChanged = true;
146
- }
147
- // Reveal thinking (larger chunks, 20-300 chars/tick)
148
- if (thinkPending.length > 0) {
149
- const { revealed, remaining } = revealChunk(thinkPending, 20, 300, 0.4);
150
- thinkingPendingRef.current = remaining;
151
- thinkingVisibleRef.current += revealed;
152
- thinkChanged = true;
153
- }
154
- // Batch both state updates into ONE render cycle
155
- if (textChanged)
156
- setStreamingText(textVisibleRef.current);
157
- if (thinkChanged)
158
- setStreamingThinking(thinkingVisibleRef.current);
159
- }, 33);
160
- }, [stopReveal]);
161
- const flushAllText = useCallback(() => {
162
- stopReveal();
163
- if (textPendingRef.current.length > 0) {
164
- textVisibleRef.current += textPendingRef.current;
165
- textPendingRef.current = "";
166
- }
167
- if (thinkingPendingRef.current.length > 0) {
168
- thinkingVisibleRef.current += thinkingPendingRef.current;
169
- thinkingPendingRef.current = "";
170
- }
171
- setStreamingText(textVisibleRef.current);
172
- setStreamingThinking(thinkingVisibleRef.current);
173
- }, [stopReveal]);
174
92
  const abort = useCallback(() => {
175
93
  abortRef.current?.abort();
176
94
  }, []);
@@ -205,10 +123,8 @@ export function useAgentLoop(messages, options, callbacks) {
205
123
  let wasAborted = false;
206
124
  // Reset state
207
125
  doneCalledRef.current = false;
208
- textPendingRef.current = "";
209
126
  textVisibleRef.current = "";
210
127
  thinkingBufferRef.current = "";
211
- thinkingPendingRef.current = "";
212
128
  thinkingVisibleRef.current = "";
213
129
  runStartRef.current = Date.now();
214
130
  toolsUsedRef.current = new Set();
@@ -292,9 +208,9 @@ export function useAgentLoop(messages, options, callbacks) {
292
208
  for await (const event of generator) {
293
209
  switch (event.type) {
294
210
  case "text_delta":
295
- textPendingRef.current += event.text;
211
+ textVisibleRef.current += event.text;
296
212
  charCountRef.current += event.text.length;
297
- startReveal();
213
+ setStreamingText(textVisibleRef.current);
298
214
  if (phaseRef.current !== "generating") {
299
215
  freezeThinking();
300
216
  if (phaseRef.current === "retrying")
@@ -305,9 +221,9 @@ export function useAgentLoop(messages, options, callbacks) {
305
221
  break;
306
222
  case "thinking_delta":
307
223
  thinkingBufferRef.current += event.text;
308
- thinkingPendingRef.current += event.text;
224
+ thinkingVisibleRef.current += event.text;
309
225
  charCountRef.current += event.text.length;
310
- startReveal();
226
+ setStreamingThinking(thinkingVisibleRef.current);
311
227
  if (phaseRef.current !== "thinking") {
312
228
  thinkingStartRef.current = Date.now();
313
229
  setIsThinking(true);
@@ -358,6 +274,18 @@ export function useAgentLoop(messages, options, callbacks) {
358
274
  const toolName = tc?.name ?? "unknown";
359
275
  const durationMs = tc ? Date.now() - tc.startTime : 0;
360
276
  onToolEnd?.(event.toolCallId, toolName, event.result, event.isError, durationMs, event.details);
277
+ // Track lines changed for edit tools
278
+ if (toolName === "edit" && !event.isError) {
279
+ const diff = event.details?.diff ?? event.result;
280
+ const addedLines = (diff.match(/^\+[^+]/gm) ?? []).length;
281
+ const removedLines = (diff.match(/^-[^-]/gm) ?? []).length;
282
+ if (addedLines > 0 || removedLines > 0) {
283
+ setLinesChanged((prev) => ({
284
+ added: prev.added + addedLines,
285
+ removed: prev.removed + removedLines,
286
+ }));
287
+ }
288
+ }
361
289
  activeToolCallsRef.current = activeToolCallsRef.current.filter((t) => t.toolCallId !== event.toolCallId);
362
290
  setActiveToolCalls(activeToolCallsRef.current);
363
291
  break;
@@ -382,7 +310,7 @@ export function useAgentLoop(messages, options, callbacks) {
382
310
  delayMs: event.delayMs,
383
311
  });
384
312
  break;
385
- case "turn_end":
313
+ case "turn_end": {
386
314
  setRetryInfo(null);
387
315
  onTurnEnd?.(event.turn, event.stopReason, event.usage);
388
316
  setCurrentTurn(event.turn);
@@ -390,12 +318,15 @@ export function useAgentLoop(messages, options, callbacks) {
390
318
  input: prev.input + event.usage.inputTokens,
391
319
  output: prev.output + event.usage.outputTokens,
392
320
  }));
393
- // Latest turn's input tokens = current context window fill
394
- // With prompt caching, input_tokens only counts non-cached tokens.
395
- // Total context = input + cache_read + cache_write.
396
- setContextUsed(event.usage.inputTokens +
321
+ // Total input context = uncached + cache_read + cache_write.
322
+ // Anthropic has separate input/output limits, so only count input.
323
+ // OpenAI/GLM/Moonshot share the context window, so include output.
324
+ const inputContext = event.usage.inputTokens +
397
325
  (event.usage.cacheRead ?? 0) +
398
- (event.usage.cacheWrite ?? 0));
326
+ (event.usage.cacheWrite ?? 0);
327
+ setContextUsed(options.provider === "anthropic"
328
+ ? inputContext
329
+ : inputContext + event.usage.outputTokens);
399
330
  // Replace char-based estimate with real output tokens
400
331
  realTokensAccumRef.current += event.usage.outputTokens;
401
332
  charCountRef.current = 0;
@@ -403,22 +334,18 @@ export function useAgentLoop(messages, options, callbacks) {
403
334
  // Reset phase for next turn
404
335
  phaseRef.current = "waiting";
405
336
  setActivityPhase("waiting");
406
- // Flush all pending text before completing turn
407
- flushAllText();
408
337
  if (textVisibleRef.current) {
409
338
  onTurnText?.(textVisibleRef.current, thinkingBufferRef.current, thinkingAccumRef.current);
410
339
  }
411
340
  // Reset streaming buffers for next turn
412
- textPendingRef.current = "";
413
341
  textVisibleRef.current = "";
414
342
  thinkingBufferRef.current = "";
415
- thinkingPendingRef.current = "";
416
343
  thinkingVisibleRef.current = "";
417
344
  setStreamingText("");
418
345
  setStreamingThinking("");
419
346
  break;
347
+ }
420
348
  case "agent_done":
421
- flushAllText();
422
349
  // Batch ALL completion state into a single render so Ink
423
350
  // processes the live-area change atomically. Previously
424
351
  // isRunning, activityPhase, and onDone landed in separate
@@ -451,7 +378,6 @@ export function useAgentLoop(messages, options, callbacks) {
451
378
  }
452
379
  setIsRunning(false);
453
380
  abortRef.current = null;
454
- stopReveal();
455
381
  if (elapsedTimerRef.current) {
456
382
  clearInterval(elapsedTimerRef.current);
457
383
  elapsedTimerRef.current = null;
@@ -459,17 +385,11 @@ export function useAgentLoop(messages, options, callbacks) {
459
385
  phaseRef.current = "idle";
460
386
  setActivityPhase("idle");
461
387
  if (wasAborted) {
462
- // Flush any visible streaming text so onAborted (which adds
463
- // "Request was stopped.") lands AFTER the agent's partial text
464
- // in liveItems — not above it.
465
- flushAllText();
466
388
  if (textVisibleRef.current) {
467
389
  onTurnText?.(textVisibleRef.current, thinkingBufferRef.current, thinkingAccumRef.current);
468
390
  }
469
- textPendingRef.current = "";
470
391
  textVisibleRef.current = "";
471
392
  thinkingBufferRef.current = "";
472
- thinkingPendingRef.current = "";
473
393
  thinkingVisibleRef.current = "";
474
394
  setStreamingText("");
475
395
  setStreamingThinking("");
@@ -515,21 +435,17 @@ export function useAgentLoop(messages, options, callbacks) {
515
435
  onDone,
516
436
  onAborted,
517
437
  onQueuedStart,
518
- startReveal,
519
- stopReveal,
520
- flushAllText,
521
438
  ]);
522
439
  // Cleanup on unmount
523
440
  useEffect(() => {
524
441
  return () => {
525
- stopReveal();
526
442
  abortRef.current?.abort();
527
443
  if (elapsedTimerRef.current) {
528
444
  clearInterval(elapsedTimerRef.current);
529
445
  elapsedTimerRef.current = null;
530
446
  }
531
447
  };
532
- }, [stopReveal]);
448
+ }, []);
533
449
  return {
534
450
  run,
535
451
  abort,
@@ -550,6 +466,9 @@ export function useAgentLoop(messages, options, callbacks) {
550
466
  thinkingMs,
551
467
  isThinking,
552
468
  streamedTokenEstimate,
469
+ charCountRef,
470
+ realTokensAccumRef,
471
+ linesChanged,
553
472
  };
554
473
  }
555
474
  //# sourceMappingURL=useAgentLoop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAgentLoop.js","sourceRoot":"","sources":["../../../src/ui/hooks/useAgentLoop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAgentLoop.js","sourceRoot":"","sources":["../../../src/ui/hooks/useAgentLoop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Synchronized blink hook.
3
+ *
4
+ * All instances derive visibility from the same global animation clock,
5
+ * so every blinking element toggles in unison.
6
+ *
7
+ * @returns `true` when the element should be visible, `false` when hidden.
8
+ * Always returns `true` when `enabled` is `false`.
9
+ */
10
+ export declare function useBlink(enabled: boolean, intervalMs?: number): boolean;
11
+ //# sourceMappingURL=useBlink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBlink.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/useBlink.ts"],"names":[],"mappings":"AAQA;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,SAAoB,GAAG,OAAO,CAMlF"}
@@ -0,0 +1,19 @@
1
+ import { useAnimationTick, useAnimationActive, TICK_INTERVAL, } from "../components/AnimationContext.js";
2
+ const BLINK_INTERVAL_MS = 600;
3
+ /**
4
+ * Synchronized blink hook.
5
+ *
6
+ * All instances derive visibility from the same global animation clock,
7
+ * so every blinking element toggles in unison.
8
+ *
9
+ * @returns `true` when the element should be visible, `false` when hidden.
10
+ * Always returns `true` when `enabled` is `false`.
11
+ */
12
+ export function useBlink(enabled, intervalMs = BLINK_INTERVAL_MS) {
13
+ const tick = useAnimationTick();
14
+ useAnimationActive();
15
+ if (!enabled)
16
+ return true;
17
+ return Math.floor((tick * TICK_INTERVAL) / intervalMs) % 2 === 0;
18
+ }
19
+ //# sourceMappingURL=useBlink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBlink.js","sourceRoot":"","sources":["../../../src/ui/hooks/useBlink.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,GACd,MAAM,mCAAmC,CAAC;AAE3C,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAgB,EAAE,UAAU,GAAG,iBAAiB;IACvE,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;IAChC,kBAAkB,EAAE,CAAC;IAErB,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Hold a value for at least `minMs` milliseconds before switching to the
3
+ * next value. Prevents rapid visual flicker when values change faster
4
+ * than a human can read (e.g. collapsed tool group hints).
5
+ *
6
+ * If the value changes again before the timer fires the timer restarts
7
+ * with the newest value, so the displayed value is never stale by more
8
+ * than one transition.
9
+ */
10
+ export declare function useMinDisplayTime<T>(value: T, minMs?: number): T;
11
+ //# sourceMappingURL=useMinDisplayTime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMinDisplayTime.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/useMinDisplayTime.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,SAAM,GAAG,CAAC,CAyB7D"}
@@ -0,0 +1,34 @@
1
+ import { useState, useRef, useEffect } from "react";
2
+ /**
3
+ * Hold a value for at least `minMs` milliseconds before switching to the
4
+ * next value. Prevents rapid visual flicker when values change faster
5
+ * than a human can read (e.g. collapsed tool group hints).
6
+ *
7
+ * If the value changes again before the timer fires the timer restarts
8
+ * with the newest value, so the displayed value is never stale by more
9
+ * than one transition.
10
+ */
11
+ export function useMinDisplayTime(value, minMs = 700) {
12
+ const [displayed, setDisplayed] = useState(value);
13
+ const timerRef = useRef(null);
14
+ const latestRef = useRef(value);
15
+ latestRef.current = value;
16
+ useEffect(() => {
17
+ // First render — sync immediately
18
+ if (displayed === value)
19
+ return;
20
+ // Clear any pending timer
21
+ if (timerRef.current)
22
+ clearTimeout(timerRef.current);
23
+ timerRef.current = setTimeout(() => {
24
+ setDisplayed(latestRef.current);
25
+ timerRef.current = null;
26
+ }, minMs);
27
+ return () => {
28
+ if (timerRef.current)
29
+ clearTimeout(timerRef.current);
30
+ };
31
+ }, [value, minMs, displayed]);
32
+ return displayed;
33
+ }
34
+ //# sourceMappingURL=useMinDisplayTime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMinDisplayTime.js","sourceRoot":"","sources":["../../../src/ui/hooks/useMinDisplayTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpD;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAI,KAAQ,EAAE,KAAK,GAAG,GAAG;IACxD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,MAAM,CAAuC,IAAI,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEhC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;IAE1B,SAAS,CAAC,GAAG,EAAE;QACb,kCAAkC;QAClC,IAAI,SAAS,KAAK,KAAK;YAAE,OAAO;QAEhC,0BAA0B;QAC1B,IAAI,QAAQ,CAAC,OAAO;YAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAErD,QAAQ,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YACjC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAChC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,CAAC,EAAE,KAAK,CAAC,CAAC;QAEV,OAAO,GAAG,EAAE;YACV,IAAI,QAAQ,CAAC,OAAO;gBAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAE9B,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function useTerminalProgress(isRunning: boolean, hasActiveTools: boolean): void;
2
+ //# sourceMappingURL=useTerminalProgress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTerminalProgress.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/useTerminalProgress.ts"],"names":[],"mappings":"AA2EA,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,GAAG,IAAI,CA8BrF"}
@@ -0,0 +1,98 @@
1
+ import { useEffect, useRef } from "react";
2
+ import { useStdout } from "ink";
3
+ /**
4
+ * Terminal progress bar via OSC 9;4 escape sequences.
5
+ *
6
+ * Supported terminals:
7
+ * - iTerm2 ≥ 3.6.6
8
+ * - Ghostty ≥ 1.2.0
9
+ * - ConEmu (any version)
10
+ *
11
+ * Shows an indeterminate (pulsing) progress bar at the top of the terminal
12
+ * window when the agent is actively running, and clears it when idle.
13
+ */
14
+ // OSC 9;4 sub-commands
15
+ const PROGRESS_CLEAR = 0;
16
+ // const PROGRESS_SET = 1;
17
+ // const PROGRESS_ERROR = 2;
18
+ const PROGRESS_INDETERMINATE = 3;
19
+ function buildProgressSequence(subcommand, value = "") {
20
+ // ESC ] 9 ; 4 ; <sub> ; <value> BEL
21
+ return `\x1b]9;4;${subcommand};${value}\x07`;
22
+ }
23
+ function wrapForMultiplexer(sequence) {
24
+ if (process.env["TMUX"]) {
25
+ const escaped = sequence.replaceAll("\x1b", "\x1b\x1b");
26
+ return `\x1bPtmux;${escaped}\x1b\\`;
27
+ }
28
+ if (process.env["STY"]) {
29
+ return `\x1bP${sequence}\x1b\\`;
30
+ }
31
+ return sequence;
32
+ }
33
+ function isProgressReportingAvailable() {
34
+ if (!process.stdout.isTTY)
35
+ return false;
36
+ // Windows Terminal interprets OSC 9;4 as notifications, not progress
37
+ if (process.env["WT_SESSION"])
38
+ return false;
39
+ // ConEmu supports OSC 9;4 for progress (all versions)
40
+ if (process.env["ConEmuANSI"] || process.env["ConEmuPID"] || process.env["ConEmuTask"]) {
41
+ return true;
42
+ }
43
+ const termProgram = process.env["TERM_PROGRAM"];
44
+ const version = process.env["TERM_PROGRAM_VERSION"];
45
+ if (!version)
46
+ return false;
47
+ // Parse semver-ish version
48
+ const parts = version.split(".").map(Number);
49
+ const major = parts[0] ?? 0;
50
+ const minor = parts[1] ?? 0;
51
+ const patch = parts[2] ?? 0;
52
+ function gte(a, b, c) {
53
+ if (major !== a)
54
+ return major > a;
55
+ if (minor !== b)
56
+ return minor > b;
57
+ return patch >= c;
58
+ }
59
+ // Ghostty 1.2.0+
60
+ if (termProgram === "ghostty")
61
+ return gte(1, 2, 0);
62
+ // iTerm2 3.6.6+
63
+ if (termProgram === "iTerm.app")
64
+ return gte(3, 6, 6);
65
+ return false;
66
+ }
67
+ const available = isProgressReportingAvailable();
68
+ export function useTerminalProgress(isRunning, hasActiveTools) {
69
+ const { stdout } = useStdout();
70
+ const prevStateRef = useRef(null);
71
+ useEffect(() => {
72
+ if (!available || !stdout)
73
+ return;
74
+ const state = isRunning
75
+ ? hasActiveTools
76
+ ? "indeterminate"
77
+ : "indeterminate" // show indeterminate for any running state (thinking, generating, tools)
78
+ : "completed";
79
+ if (prevStateRef.current === state)
80
+ return;
81
+ prevStateRef.current = state;
82
+ if (state === "indeterminate") {
83
+ stdout.write(wrapForMultiplexer(buildProgressSequence(PROGRESS_INDETERMINATE)));
84
+ }
85
+ else {
86
+ stdout.write(wrapForMultiplexer(buildProgressSequence(PROGRESS_CLEAR)));
87
+ }
88
+ }, [stdout, isRunning, hasActiveTools]);
89
+ // Clear on unmount
90
+ useEffect(() => {
91
+ return () => {
92
+ if (!available || !stdout)
93
+ return;
94
+ stdout.write(wrapForMultiplexer(buildProgressSequence(PROGRESS_CLEAR)));
95
+ };
96
+ }, [stdout]);
97
+ }
98
+ //# sourceMappingURL=useTerminalProgress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTerminalProgress.js","sourceRoot":"","sources":["../../../src/ui/hooks/useTerminalProgress.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export declare const SPINNER_FRAMES: string[];
2
2
  export declare const SPINNER_INTERVAL = 120;
3
+ export declare const REDUCED_MOTION_DOT = "\u25CF";
3
4
  //# sourceMappingURL=spinner-frames.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spinner-frames.d.ts","sourceRoot":"","sources":["../../src/ui/spinner-frames.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,UAGkC,CAAC;AAE9D,eAAO,MAAM,gBAAgB,MAAM,CAAC"}
1
+ {"version":3,"file":"spinner-frames.d.ts","sourceRoot":"","sources":["../../src/ui/spinner-frames.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,cAAc,UAAiC,CAAC;AAE7D,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAGpC,eAAO,MAAM,kBAAkB,WAAW,CAAC"}
@@ -1,7 +1,17 @@
1
- // Sparkle character set — gives a more distinctive, playful feel
2
- // compared to the standard braille dots every other CLI uses.
3
- export const SPINNER_FRAMES = process.platform === "darwin"
4
- ? ["\u00B7", "\u2726", "\u2733", "\u2217", "\u273B", "\u273D"]
5
- : ["\u00B7", "\u2726", "*", "\u2217", "\u273B", "\u273D"];
1
+ // Sparkle character set — ping-pong cycle (forward then reverse)
2
+ // for a distinctive, playful feel. Ghostty gets a variant to avoid
3
+ // offset rendering of ✽.
4
+ function getSpinnerChars() {
5
+ if (process.env.TERM === "xterm-ghostty") {
6
+ return ["\u00B7", "\u2722", "\u2733", "\u2736", "\u273B", "*"];
7
+ }
8
+ return process.platform === "darwin"
9
+ ? ["\u00B7", "\u2722", "\u2733", "\u2736", "\u273B", "\u273D"]
10
+ : ["\u00B7", "\u2722", "*", "\u2736", "\u273B", "\u273D"];
11
+ }
12
+ const chars = getSpinnerChars();
13
+ export const SPINNER_FRAMES = [...chars, ...chars.reverse()];
6
14
  export const SPINNER_INTERVAL = 120;
15
+ // Reduced-motion: static filled circle with slow dim/undim cycle
16
+ export const REDUCED_MOTION_DOT = "\u25CF"; // ●
7
17
  //# sourceMappingURL=spinner-frames.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spinner-frames.js","sourceRoot":"","sources":["../../src/ui/spinner-frames.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,8DAA8D;AAC9D,MAAM,CAAC,MAAM,cAAc,GACzB,OAAO,CAAC,QAAQ,KAAK,QAAQ;IAC3B,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAC9D,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAE9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC"}
1
+ {"version":3,"file":"spinner-frames.js","sourceRoot":"","sources":["../../src/ui/spinner-frames.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,mEAAmE;AACnE,yBAAyB;AACzB,SAAS,eAAe;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACzC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAClC,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAC9D,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAEpC,iEAAiE;AACjE,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,CAAC,IAAI"}
@@ -22,5 +22,6 @@
22
22
  "footerText": "#6b7280",
23
23
  "commandColor": "#818cf8",
24
24
  "planPrimary": "#f59e0b",
25
- "planBorder": "#92400e"
25
+ "planBorder": "#92400e",
26
+ "subtle": "#4b5563"
26
27
  }
@@ -22,5 +22,6 @@
22
22
  "footerText": "#9ca3af",
23
23
  "commandColor": "#4f46e5",
24
24
  "planPrimary": "#d97706",
25
- "planBorder": "#b45309"
25
+ "planBorder": "#b45309",
26
+ "subtle": "#d1d5db"
26
27
  }
@@ -26,6 +26,7 @@ export declare const ThemeContext: import("react").Context<{
26
26
  commandColor: string;
27
27
  planPrimary: string;
28
28
  planBorder: string;
29
+ subtle: string;
29
30
  }>;
30
31
  export declare function useTheme(): Theme;
31
32
  //# sourceMappingURL=theme.d.ts.map