@prestyj/cli 5.7.0 → 5.8.0

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 (193) hide show
  1. package/README.md +2 -2
  2. package/dist/app-sidecar.js +243 -54
  3. package/dist/app-sidecar.js.map +1 -1
  4. package/dist/cli/auth.d.ts.map +1 -1
  5. package/dist/cli/auth.js +5 -2
  6. package/dist/cli/auth.js.map +1 -1
  7. package/dist/cli/shared.d.ts.map +1 -1
  8. package/dist/cli/shared.js +2 -0
  9. package/dist/cli/shared.js.map +1 -1
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +18 -3
  12. package/dist/cli.js.map +1 -1
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +1 -0
  15. package/dist/config.js.map +1 -1
  16. package/dist/config.test.js +7 -0
  17. package/dist/config.test.js.map +1 -1
  18. package/dist/core/agent-session-compaction.test.js +521 -10
  19. package/dist/core/agent-session-compaction.test.js.map +1 -1
  20. package/dist/core/agent-session-memory-tail.test.js +1 -1
  21. package/dist/core/agent-session-memory-tail.test.js.map +1 -1
  22. package/dist/core/agent-session-queue.test.js +1 -1
  23. package/dist/core/agent-session-queue.test.js.map +1 -1
  24. package/dist/core/agent-session-review-coverage.test.js +26 -0
  25. package/dist/core/agent-session-review-coverage.test.js.map +1 -1
  26. package/dist/core/agent-session-tool-result-policy.test.d.ts +2 -0
  27. package/dist/core/agent-session-tool-result-policy.test.d.ts.map +1 -0
  28. package/dist/core/agent-session-tool-result-policy.test.js +25 -0
  29. package/dist/core/agent-session-tool-result-policy.test.js.map +1 -0
  30. package/dist/core/agent-session.d.ts +40 -8
  31. package/dist/core/agent-session.d.ts.map +1 -1
  32. package/dist/core/agent-session.js +285 -87
  33. package/dist/core/agent-session.js.map +1 -1
  34. package/dist/core/auth-providers.d.ts.map +1 -1
  35. package/dist/core/auth-providers.js +15 -8
  36. package/dist/core/auth-providers.js.map +1 -1
  37. package/dist/core/compaction/active-context.d.ts +17 -0
  38. package/dist/core/compaction/active-context.d.ts.map +1 -0
  39. package/dist/core/compaction/active-context.js +20 -0
  40. package/dist/core/compaction/active-context.js.map +1 -0
  41. package/dist/core/compaction/active-context.test.d.ts +2 -0
  42. package/dist/core/compaction/active-context.test.d.ts.map +1 -0
  43. package/dist/core/compaction/active-context.test.js +36 -0
  44. package/dist/core/compaction/active-context.test.js.map +1 -0
  45. package/dist/core/compaction/compactor.d.ts +19 -18
  46. package/dist/core/compaction/compactor.d.ts.map +1 -1
  47. package/dist/core/compaction/compactor.js +64 -42
  48. package/dist/core/compaction/compactor.js.map +1 -1
  49. package/dist/core/compaction/compactor.test.js +122 -65
  50. package/dist/core/compaction/compactor.test.js.map +1 -1
  51. package/dist/core/compaction/token-estimator.d.ts +25 -1
  52. package/dist/core/compaction/token-estimator.d.ts.map +1 -1
  53. package/dist/core/compaction/token-estimator.js +86 -1
  54. package/dist/core/compaction/token-estimator.js.map +1 -1
  55. package/dist/core/compaction/token-estimator.test.js +147 -1
  56. package/dist/core/compaction/token-estimator.test.js.map +1 -1
  57. package/dist/core/compaction/tool-result-pruner.d.ts +37 -0
  58. package/dist/core/compaction/tool-result-pruner.d.ts.map +1 -0
  59. package/dist/core/compaction/tool-result-pruner.js +103 -0
  60. package/dist/core/compaction/tool-result-pruner.js.map +1 -0
  61. package/dist/core/compaction/tool-result-pruner.test.d.ts +2 -0
  62. package/dist/core/compaction/tool-result-pruner.test.d.ts.map +1 -0
  63. package/dist/core/compaction/tool-result-pruner.test.js +148 -0
  64. package/dist/core/compaction/tool-result-pruner.test.js.map +1 -0
  65. package/dist/core/ideal-review.d.ts +6 -0
  66. package/dist/core/ideal-review.d.ts.map +1 -1
  67. package/dist/core/ideal-review.js +14 -0
  68. package/dist/core/ideal-review.js.map +1 -1
  69. package/dist/core/ideal-review.test.js +10 -1
  70. package/dist/core/ideal-review.test.js.map +1 -1
  71. package/dist/core/index.d.ts +1 -1
  72. package/dist/core/index.d.ts.map +1 -1
  73. package/dist/core/index.js +1 -1
  74. package/dist/core/index.js.map +1 -1
  75. package/dist/core/project-discovery.d.ts +6 -9
  76. package/dist/core/project-discovery.d.ts.map +1 -1
  77. package/dist/core/project-discovery.js +35 -28
  78. package/dist/core/project-discovery.js.map +1 -1
  79. package/dist/core/project-discovery.test.js +148 -0
  80. package/dist/core/project-discovery.test.js.map +1 -1
  81. package/dist/core/resolve-start.test.js +1 -0
  82. package/dist/core/resolve-start.test.js.map +1 -1
  83. package/dist/core/session-compaction.d.ts +3 -0
  84. package/dist/core/session-compaction.d.ts.map +1 -1
  85. package/dist/core/session-compaction.js +14 -1
  86. package/dist/core/session-compaction.js.map +1 -1
  87. package/dist/core/session-compaction.test.js +5 -0
  88. package/dist/core/session-compaction.test.js.map +1 -1
  89. package/dist/core/session-manager.d.ts +8 -1
  90. package/dist/core/session-manager.d.ts.map +1 -1
  91. package/dist/core/session-manager.js +7 -1
  92. package/dist/core/session-manager.js.map +1 -1
  93. package/dist/core/session-manager.test.js +17 -0
  94. package/dist/core/session-manager.test.js.map +1 -1
  95. package/dist/core/session-preview.d.ts +11 -0
  96. package/dist/core/session-preview.d.ts.map +1 -0
  97. package/dist/core/session-preview.js +50 -0
  98. package/dist/core/session-preview.js.map +1 -0
  99. package/dist/core/settings-manager.d.ts +1 -0
  100. package/dist/core/settings-manager.d.ts.map +1 -1
  101. package/dist/core/settings-manager.js +3 -2
  102. package/dist/core/settings-manager.js.map +1 -1
  103. package/dist/core/subagent-manager.d.ts +2 -4
  104. package/dist/core/subagent-manager.d.ts.map +1 -1
  105. package/dist/core/subagent-manager.js +4 -0
  106. package/dist/core/subagent-manager.js.map +1 -1
  107. package/dist/core/subagent-manager.test.js +13 -3
  108. package/dist/core/subagent-manager.test.js.map +1 -1
  109. package/dist/tools/bash.d.ts +9 -0
  110. package/dist/tools/bash.d.ts.map +1 -1
  111. package/dist/tools/bash.js +28 -18
  112. package/dist/tools/bash.js.map +1 -1
  113. package/dist/tools/bash.test.d.ts +2 -0
  114. package/dist/tools/bash.test.d.ts.map +1 -0
  115. package/dist/tools/bash.test.js +56 -0
  116. package/dist/tools/bash.test.js.map +1 -0
  117. package/dist/tools/overflow.d.ts +12 -2
  118. package/dist/tools/overflow.d.ts.map +1 -1
  119. package/dist/tools/overflow.js +49 -4
  120. package/dist/tools/overflow.js.map +1 -1
  121. package/dist/tools/overflow.test.d.ts +2 -0
  122. package/dist/tools/overflow.test.d.ts.map +1 -0
  123. package/dist/tools/overflow.test.js +62 -0
  124. package/dist/tools/overflow.test.js.map +1 -0
  125. package/dist/tools/subagent-shared.d.ts +8 -0
  126. package/dist/tools/subagent-shared.d.ts.map +1 -1
  127. package/dist/tools/subagent-shared.js.map +1 -1
  128. package/dist/tools/subagent.d.ts +3 -8
  129. package/dist/tools/subagent.d.ts.map +1 -1
  130. package/dist/tools/subagent.js +10 -8
  131. package/dist/tools/subagent.js.map +1 -1
  132. package/dist/tools/subagent.test.js +17 -1
  133. package/dist/tools/subagent.test.js.map +1 -1
  134. package/dist/ui/App.d.ts +0 -2
  135. package/dist/ui/App.d.ts.map +1 -1
  136. package/dist/ui/App.js +6 -82
  137. package/dist/ui/App.js.map +1 -1
  138. package/dist/ui/components/ModelSelector.d.ts.map +1 -1
  139. package/dist/ui/components/ModelSelector.js +1 -0
  140. package/dist/ui/components/ModelSelector.js.map +1 -1
  141. package/dist/ui/components/SubAgentPanel.d.ts +2 -0
  142. package/dist/ui/components/SubAgentPanel.d.ts.map +1 -1
  143. package/dist/ui/components/SubAgentPanel.js +4 -2
  144. package/dist/ui/components/SubAgentPanel.js.map +1 -1
  145. package/dist/ui/hooks/useAgentLoop.d.ts +2 -4
  146. package/dist/ui/hooks/useAgentLoop.d.ts.map +1 -1
  147. package/dist/ui/hooks/useAgentLoop.js +7 -3
  148. package/dist/ui/hooks/useAgentLoop.js.map +1 -1
  149. package/dist/ui/hooks/useAgentLoop.test.js +31 -0
  150. package/dist/ui/hooks/useAgentLoop.test.js.map +1 -1
  151. package/dist/ui/hooks/useContextCompaction.d.ts +5 -8
  152. package/dist/ui/hooks/useContextCompaction.d.ts.map +1 -1
  153. package/dist/ui/hooks/useContextCompaction.js +77 -16
  154. package/dist/ui/hooks/useContextCompaction.js.map +1 -1
  155. package/dist/ui/hooks/useContextCompaction.test.d.ts +2 -0
  156. package/dist/ui/hooks/useContextCompaction.test.d.ts.map +1 -0
  157. package/dist/ui/hooks/useContextCompaction.test.js +135 -0
  158. package/dist/ui/hooks/useContextCompaction.test.js.map +1 -0
  159. package/dist/ui/hooks/useSessionPersistence.d.ts.map +1 -1
  160. package/dist/ui/hooks/useSessionPersistence.js +3 -0
  161. package/dist/ui/hooks/useSessionPersistence.js.map +1 -1
  162. package/dist/ui/hooks/useTerminalTitle.d.ts +3 -3
  163. package/dist/ui/hooks/useTerminalTitle.d.ts.map +1 -1
  164. package/dist/ui/hooks/useTerminalTitle.js +5 -9
  165. package/dist/ui/hooks/useTerminalTitle.js.map +1 -1
  166. package/dist/ui/login.d.ts.map +1 -1
  167. package/dist/ui/login.js +7 -2
  168. package/dist/ui/login.js.map +1 -1
  169. package/dist/ui/render.d.ts +0 -2
  170. package/dist/ui/render.d.ts.map +1 -1
  171. package/dist/ui/render.js +0 -4
  172. package/dist/ui/render.js.map +1 -1
  173. package/dist/ui/render.test.js +10 -1
  174. package/dist/ui/render.test.js.map +1 -1
  175. package/dist/ui/terminal-history.js +6 -2
  176. package/dist/ui/terminal-history.js.map +1 -1
  177. package/dist/ui/terminal-history.test.js +2 -2
  178. package/dist/ui/terminal-history.test.js.map +1 -1
  179. package/dist/ui/tui-history-parity.test.js +8 -1
  180. package/dist/ui/tui-history-parity.test.js.map +1 -1
  181. package/dist/utils/git.d.ts +2 -0
  182. package/dist/utils/git.d.ts.map +1 -1
  183. package/dist/utils/git.js +12 -0
  184. package/dist/utils/git.js.map +1 -1
  185. package/dist/utils/git.test.d.ts +2 -0
  186. package/dist/utils/git.test.d.ts.map +1 -0
  187. package/dist/utils/git.test.js +36 -0
  188. package/dist/utils/git.test.js.map +1 -0
  189. package/package.json +4 -4
  190. package/dist/utils/session-title.d.ts +0 -19
  191. package/dist/utils/session-title.d.ts.map +0 -1
  192. package/dist/utils/session-title.js +0 -82
  193. package/dist/utils/session-title.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/ui/App.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/ui/App.tsx"],"names":[],"mappings":"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"}
package/dist/ui/App.js CHANGED
@@ -28,7 +28,6 @@ import { getAuthStorageKeys, getModel, getVideoByteLimit } from "../core/model-r
28
28
  import { SessionManager } from "../core/session-manager.js";
29
29
  import { log } from "../core/logger.js";
30
30
  import { getPendingUpdate, startPeriodicUpdateCheck, stopPeriodicUpdateCheck, } from "../core/auto-update.js";
31
- import { generateSessionTitle } from "../utils/session-title.js";
32
31
  import { SettingsManager } from "../core/settings-manager.js";
33
32
  import { PROMPT_COMMANDS, getPromptCommand } from "../core/prompt-commands.js";
34
33
  import { isFirstTimeSetup, markSetupAudited, getAnnouncedLanguages, markLanguagesAnnounced, } from "../core/setup-history.js";
@@ -235,22 +234,14 @@ export function App(props) {
235
234
  // measured further down; 0 means "not measured yet" and disables the
236
235
  // oversized-item flush below.
237
236
  const liveLayoutRef = useRef({ columns, liveAreaRows: 0 });
238
- // Hoisted before terminal title hook so it can reference them
239
237
  const [lastUserMessage, setLastUserMessage] = useState("");
240
238
  // Bumped on every prompt submit; the fullscreen transcript scroll controller
241
239
  // watches this to snap back to the bottom so the newest output is visible.
242
240
  const [scrollResetToken, setScrollResetToken] = useState(0);
243
241
  const [exitPending, setExitPending] = useState(false);
244
242
  const [quittingSummary, setQuittingSummary] = useState(null);
245
- // Terminal title — updated later after agentLoop is created
246
- // (hoisted here so the hook is always called in the same order)
243
+ // Native terminal title keeps the active project visible outside the app frame.
247
244
  const [titleRunning, setTitleRunning] = useState(false);
248
- const [sessionTitle, setSessionTitle] = useState(() => props.sessionStore?.sessionTitle);
249
- const sessionTitleGeneratedRef = useRef(props.sessionStore?.sessionTitleGenerated ?? false);
250
- useTerminalTitle({
251
- isRunning: titleRunning,
252
- sessionTitle,
253
- });
254
245
  // Completed transcript rows are kept as durable session data but are no longer
255
246
  // rendered through Ink history. They are serialized once into real terminal
256
247
  // scrollback via terminalHistoryPrinter, while Ink owns only live rows and
@@ -354,6 +345,7 @@ export function App(props) {
354
345
  // Suppress "done" status when a plan overlay is about to open
355
346
  const planOverlayPendingRef = useRef(false);
356
347
  const [gitBranch, setGitBranch] = useState(null);
348
+ useTerminalTitle({ isRunning: titleRunning, cwd: displayedCwd, gitBranch });
357
349
  const [currentModel, setCurrentModel] = useState(props.model);
358
350
  const currentModelRef = useRef(props.model);
359
351
  const [currentProvider, setCurrentProvider] = useState(props.provider);
@@ -403,10 +395,6 @@ export function App(props) {
403
395
  const idealReviewEnabledRef = useRef(idealReviewEnabled);
404
396
  const [autoApprovePlansEnabled, setAutoApprovePlansEnabled] = useState(props.sessionStore?.autoApprovePlans ?? props.autoApprovePlans ?? true);
405
397
  const autoApprovePlansEnabledRef = useRef(autoApprovePlansEnabled);
406
- /** Last actual API-reported input token count (from turn_end). */
407
- const lastActualTokensRef = useRef(0);
408
- /** Timestamp (ms) when lastActualTokensRef was last updated by turn_end. */
409
- const lastActualTokensTimestampRef = useRef(0);
410
398
  /**
411
399
  * Languages whose style packs are currently injected into the system prompt.
412
400
  * Grown by `maybeInjectLanguagePacks` after `write`/`bash` tool results when
@@ -570,10 +558,6 @@ export function App(props) {
570
558
  if (sessionStore)
571
559
  sessionStore.planSteps = planSteps;
572
560
  }, [planSteps, sessionStore]);
573
- useEffect(() => {
574
- if (sessionStore)
575
- sessionStore.sessionTitle = sessionTitle;
576
- }, [sessionTitle, sessionStore]);
577
561
  useEffect(() => {
578
562
  if (sessionStore)
579
563
  sessionStore.overlay = overlay;
@@ -840,10 +824,9 @@ export function App(props) {
840
824
  });
841
825
  }
842
826
  }, [props.settingsFile]);
843
- const { compactionAbortRef, compactConversation, transformContext } = useContextCompaction({
827
+ const { compactionAbortRef, compactConversation, transformContext, recordProviderUsage } = useContextCompaction({
844
828
  currentModel,
845
829
  currentProvider,
846
- maxTokens: props.maxTokens,
847
830
  authStorage: props.authStorage,
848
831
  contextWindowOptions,
849
832
  activeApiKey,
@@ -855,8 +838,6 @@ export function App(props) {
855
838
  approvedPlanPathRef,
856
839
  settingsRef,
857
840
  messagesRef,
858
- lastActualTokensRef,
859
- lastActualTokensTimestampRef,
860
841
  persistCompactedSession,
861
842
  });
862
843
  // ── Background task bar state (external store) ──────────
@@ -968,56 +949,7 @@ export function App(props) {
968
949
  // Rebuild system prompt to remove the completed plan from context
969
950
  void replaceSystemPrompt({ clearApprovedPlan: true });
970
951
  }
971
- // Generate session title after the first turn (background, best-effort)
972
- if (!sessionTitleGeneratedRef.current) {
973
- sessionTitleGeneratedRef.current = true;
974
- const msgs = messagesRef.current;
975
- // Find the first user message and first assistant text
976
- const userMsg = msgs.find((m) => m.role === "user");
977
- const assistantMsg = msgs.find((m) => m.role === "assistant");
978
- const userText = typeof userMsg?.content === "string"
979
- ? userMsg.content
980
- : Array.isArray(userMsg?.content)
981
- ? userMsg.content
982
- .filter((c) => c.type === "text")
983
- .map((c) => c.text)
984
- .join(" ")
985
- : "";
986
- const assistantText = typeof assistantMsg?.content === "string"
987
- ? assistantMsg.content
988
- : Array.isArray(assistantMsg?.content)
989
- ? assistantMsg.content
990
- .filter((c) => c.type === "text")
991
- .map((c) => c.text)
992
- .join(" ")
993
- : "";
994
- if (userText) {
995
- generateSessionTitle({
996
- provider: currentProvider,
997
- userMessage: userText,
998
- assistantPreview: assistantText.slice(0, 200),
999
- apiKey: activeApiKey,
1000
- baseUrl: activeBaseUrl,
1001
- accountId: activeAccountId,
1002
- resolveCredentials,
1003
- }).then((title) => {
1004
- setSessionTitle(title);
1005
- log("INFO", "title", `Session title generated: ${title}`);
1006
- }, () => {
1007
- // Best-effort — silently ignore failures
1008
- });
1009
- }
1010
- }
1011
- }, [
1012
- persistNewMessages,
1013
- props.cwd,
1014
- props.skills,
1015
- currentProvider,
1016
- activeApiKey,
1017
- activeAccountId,
1018
- activeBaseUrl,
1019
- resolveCredentials,
1020
- ]),
952
+ }, [persistNewMessages, props.cwd, props.skills]),
1021
953
  onTurnText: useCallback((text, thinking, thinkingMs) => {
1022
954
  const hadStreamedAssistantFlush = streamedAssistantFlushRef.current.flushedChars > 0;
1023
955
  const unflushedAssistantText = text.slice(streamedAssistantFlushRef.current.flushedChars);
@@ -1498,6 +1430,7 @@ export function App(props) {
1498
1430
  });
1499
1431
  }, [queueFlush]),
1500
1432
  onTurnEnd: useCallback((turn, stopReason, usage, timing) => {
1433
+ recordProviderUsage(usage, messagesRef.current);
1501
1434
  recordTurnEnd(sessionStatsRef.current, usage);
1502
1435
  const metric = {
1503
1436
  version: 1,
@@ -1529,13 +1462,6 @@ export function App(props) {
1529
1462
  providerDurationMs: String(timing.providerDurationMs),
1530
1463
  ...(timing.ttftMs != null && { ttftMs: String(timing.ttftMs) }),
1531
1464
  });
1532
- // Track actual token count for compaction decisions.
1533
- // Anthropic has separate input/output limits — only count input.
1534
- // All other providers share the context window — count both.
1535
- const inputContext = usage.inputTokens + (usage.cacheRead ?? 0) + (usage.cacheWrite ?? 0);
1536
- lastActualTokensRef.current =
1537
- currentProvider === "anthropic" ? inputContext : inputContext + usage.outputTokens;
1538
- lastActualTokensTimestampRef.current = Date.now();
1539
1465
  // For tool-only turns (no text), flush completed items to finalized
1540
1466
  // history so liveItems doesn't grow unbounded across consecutive turns.
1541
1467
  setLiveItems((prev) => {
@@ -1545,7 +1471,7 @@ export function App(props) {
1545
1471
  }
1546
1472
  return remaining;
1547
1473
  });
1548
- }, [currentModel, currentProvider, queueFlush, sessionStore]),
1474
+ }, [currentModel, currentProvider, queueFlush, recordProviderUsage, sessionStore]),
1549
1475
  onDone: useCallback((durationMs, toolsUsed, runStats) => {
1550
1476
  log("INFO", "agent", `Agent done`, {
1551
1477
  duration: `${durationMs}ms`,
@@ -2284,8 +2210,6 @@ export function App(props) {
2284
2210
  persistedIndexRef.current = messagesRef.current.length;
2285
2211
  })();
2286
2212
  agentLoop.reset();
2287
- setSessionTitle(undefined);
2288
- sessionTitleGeneratedRef.current = false;
2289
2213
  setLiveItems([{ kind: "info", text: "Session cleared.", id: getId() }]);
2290
2214
  },
2291
2215
  openThemeSelector: () => setOverlay("theme"),