@prestyj/cli 5.16.2 → 5.19.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 (828) hide show
  1. package/README.md +2 -1
  2. package/assets/skills/refactoring/SKILL.md +64 -0
  3. package/assets/skills/refactoring/references/agent-pitfalls.md +43 -0
  4. package/assets/skills/refactoring/references/legacy.md +49 -0
  5. package/assets/skills/refactoring/references/smells.md +71 -0
  6. package/dist/app-sidecar-sessions.d.ts +0 -1
  7. package/dist/app-sidecar.d.ts +0 -1
  8. package/dist/app-sidecar.js +40 -9
  9. package/dist/app-sidecar.js.map +1 -1
  10. package/dist/chat-agents/general.d.ts +0 -1
  11. package/dist/chat-agents/index.d.ts +0 -1
  12. package/dist/chat-agents/jiwa.d.ts +0 -1
  13. package/dist/chat-agents/memory.d.ts +0 -1
  14. package/dist/chat-agents/research.d.ts +0 -1
  15. package/dist/chat-agents/shared.d.ts +0 -1
  16. package/dist/chat-agents/therapist.d.ts +0 -1
  17. package/dist/chat-agents/types.d.ts +0 -1
  18. package/dist/cli/auth.d.ts +0 -1
  19. package/dist/cli/command-routing.d.ts +0 -1
  20. package/dist/cli/mcp.d.ts +0 -1
  21. package/dist/cli/mcp.js.map +1 -1
  22. package/dist/cli/pixel.d.ts +0 -1
  23. package/dist/cli/shared.d.ts +0 -1
  24. package/dist/cli.d.ts +0 -1
  25. package/dist/config.d.ts +0 -1
  26. package/dist/core/agent-notifications.d.ts +0 -1
  27. package/dist/core/agent-session.d.ts +45 -2
  28. package/dist/core/agent-session.js +521 -41
  29. package/dist/core/agent-session.js.map +1 -1
  30. package/dist/core/agents.d.ts +0 -1
  31. package/dist/core/api-benchmark.d.ts +0 -1
  32. package/dist/core/ask-user.d.ts +0 -1
  33. package/dist/core/auth/index.d.ts +0 -1
  34. package/dist/core/auth-providers.d.ts +0 -1
  35. package/dist/core/auth-storage.d.ts +0 -1
  36. package/dist/core/auto-update.d.ts +0 -1
  37. package/dist/core/autopilot-cycle.d.ts +7 -4
  38. package/dist/core/autopilot-cycle.js +43 -6
  39. package/dist/core/autopilot-cycle.js.map +1 -1
  40. package/dist/core/autopilot-gate.d.ts +0 -1
  41. package/dist/core/autopilot-gate.js.map +1 -1
  42. package/dist/core/autopilot-verdict.d.ts +2 -1
  43. package/dist/core/autopilot-verdict.js +25 -0
  44. package/dist/core/autopilot-verdict.js.map +1 -1
  45. package/dist/core/bash-spawn-benchmark.d.ts +0 -1
  46. package/dist/core/bundled-agents.d.ts +0 -1
  47. package/dist/core/cache-warm-benchmark.d.ts +0 -1
  48. package/dist/core/checkpoint-store.d.ts +0 -1
  49. package/dist/core/claude-code-version.d.ts +0 -1
  50. package/dist/core/code-retrieval-chunkers.d.ts +0 -1
  51. package/dist/core/code-retrieval.d.ts +0 -1
  52. package/dist/core/compaction/active-context.d.ts +0 -1
  53. package/dist/core/compaction/compactor.d.ts +34 -1
  54. package/dist/core/compaction/compactor.js +161 -2
  55. package/dist/core/compaction/compactor.js.map +1 -1
  56. package/dist/core/compaction/policy.d.ts +0 -1
  57. package/dist/core/compaction/query-aware-selector.d.ts +0 -1
  58. package/dist/core/compaction/token-estimator.d.ts +0 -1
  59. package/dist/core/compaction/tool-result-pruner.d.ts +0 -1
  60. package/dist/core/context-limits.d.ts +0 -1
  61. package/dist/core/custom-commands.d.ts +0 -1
  62. package/dist/core/encode-cwd.d.ts +0 -1
  63. package/dist/core/env-delta.d.ts +0 -1
  64. package/dist/core/event-bus.d.ts +5 -1
  65. package/dist/core/event-bus.js.map +1 -1
  66. package/dist/core/extensions/loader.d.ts +0 -1
  67. package/dist/core/extensions/plugin-bundles.d.ts +0 -1
  68. package/dist/core/extensions/types.d.ts +0 -1
  69. package/dist/core/fast-apply-benchmark.d.ts +0 -1
  70. package/dist/core/file-lock.d.ts +0 -1
  71. package/dist/core/foreign-session-import.d.ts +0 -1
  72. package/dist/core/foreign-transcript-blocks.d.ts +0 -1
  73. package/dist/core/goal-controller.d.ts +0 -1
  74. package/dist/core/goal-prerequisites.d.ts +0 -1
  75. package/dist/core/goal-store.d.ts +0 -1
  76. package/dist/core/goal-store.js.map +1 -1
  77. package/dist/core/goal-verifier.d.ts +0 -1
  78. package/dist/core/goal-verifier.js.map +1 -1
  79. package/dist/core/goal-worker.d.ts +0 -1
  80. package/dist/core/goal-worker.js.map +1 -1
  81. package/dist/core/hashline-edit-benchmark.d.ts +0 -1
  82. package/dist/core/hashline.d.ts +0 -1
  83. package/dist/core/ideal-review-subagent.d.ts +42 -0
  84. package/dist/core/ideal-review-subagent.js +95 -0
  85. package/dist/core/ideal-review-subagent.js.map +1 -0
  86. package/dist/core/ideal-review.d.ts +0 -1
  87. package/dist/core/ideal-review.js +18 -5
  88. package/dist/core/ideal-review.js.map +1 -1
  89. package/dist/core/index.d.ts +0 -1
  90. package/dist/core/internal-diagnostics.d.ts +142 -0
  91. package/dist/core/internal-diagnostics.js +450 -0
  92. package/dist/core/internal-diagnostics.js.map +1 -0
  93. package/dist/core/language-detector.d.ts +0 -1
  94. package/dist/core/local-endpoint-store.d.ts +0 -1
  95. package/dist/core/logger.d.ts +0 -1
  96. package/dist/core/loop-breaker.d.ts +0 -1
  97. package/dist/core/lsp/client.d.ts +8 -6
  98. package/dist/core/lsp/client.js +68 -18
  99. package/dist/core/lsp/client.js.map +1 -1
  100. package/dist/core/lsp/edit-telemetry.d.ts +0 -1
  101. package/dist/core/lsp/format.d.ts +0 -1
  102. package/dist/core/lsp/jsonrpc.d.ts +0 -1
  103. package/dist/core/lsp/manager.d.ts +16 -2
  104. package/dist/core/lsp/manager.js +170 -9
  105. package/dist/core/lsp/manager.js.map +1 -1
  106. package/dist/core/lsp/pool.d.ts +0 -1
  107. package/dist/core/lsp/pool.js.map +1 -1
  108. package/dist/core/lsp/servers.d.ts +0 -1
  109. package/dist/core/lsp/test-support.d.ts +0 -1
  110. package/dist/core/mcp/catalog-cache.d.ts +0 -1
  111. package/dist/core/mcp/client.d.ts +0 -1
  112. package/dist/core/mcp/content.d.ts +0 -1
  113. package/dist/core/mcp/defaults.d.ts +0 -1
  114. package/dist/core/mcp/deferred-catalog.d.ts +0 -1
  115. package/dist/core/mcp/elicitation-bridge.d.ts +0 -1
  116. package/dist/core/mcp/index.d.ts +0 -1
  117. package/dist/core/mcp/loopback.d.ts +0 -1
  118. package/dist/core/mcp/oauth-provider.d.ts +0 -1
  119. package/dist/core/mcp/oauth-store.d.ts +0 -1
  120. package/dist/core/mcp/parse-add-command.d.ts +0 -1
  121. package/dist/core/mcp/resolve-stdio.d.ts +0 -1
  122. package/dist/core/mcp/shared-pool.d.ts +0 -1
  123. package/dist/core/mcp/store.d.ts +0 -1
  124. package/dist/core/mcp/types.d.ts +0 -1
  125. package/dist/core/message-images.d.ts +0 -1
  126. package/dist/core/model-registry.d.ts +0 -1
  127. package/dist/core/network-guard.d.ts +0 -1
  128. package/dist/core/nolan-context.d.ts +5 -1
  129. package/dist/core/nolan-context.js +9 -2
  130. package/dist/core/nolan-context.js.map +1 -1
  131. package/dist/core/nolan-model.d.ts +0 -1
  132. package/dist/core/nolan-prompt.d.ts +0 -1
  133. package/dist/core/nolan-prompt.js +32 -14
  134. package/dist/core/nolan-prompt.js.map +1 -1
  135. package/dist/core/oauth/anthropic.d.ts +0 -1
  136. package/dist/core/oauth/gemini.d.ts +0 -1
  137. package/dist/core/oauth/kimi.d.ts +0 -1
  138. package/dist/core/oauth/openai.d.ts +0 -1
  139. package/dist/core/oauth/pkce.d.ts +0 -1
  140. package/dist/core/oauth/types.d.ts +0 -1
  141. package/dist/core/oauth/xai.d.ts +0 -1
  142. package/dist/core/parked-requests.d.ts +0 -1
  143. package/dist/core/persistent-shell.d.ts +0 -1
  144. package/dist/core/persistent-shell.js +3 -1
  145. package/dist/core/persistent-shell.js.map +1 -1
  146. package/dist/core/pixel-fix-agent.d.ts +0 -1
  147. package/dist/core/pixel-fix.d.ts +0 -1
  148. package/dist/core/pixel.d.ts +0 -1
  149. package/dist/core/platform-clis.d.ts +0 -1
  150. package/dist/core/process-gate.d.ts +0 -1
  151. package/dist/core/process-manager.d.ts +7 -4
  152. package/dist/core/process-manager.js +23 -7
  153. package/dist/core/process-manager.js.map +1 -1
  154. package/dist/core/progress/engine.d.ts +0 -1
  155. package/dist/core/progress/git-xp.d.ts +0 -1
  156. package/dist/core/progress/ranks.d.ts +0 -1
  157. package/dist/core/progress/rebuild.d.ts +0 -1
  158. package/dist/core/progress/store.d.ts +0 -1
  159. package/dist/core/progress/types.d.ts +0 -1
  160. package/dist/core/project-discovery.d.ts +0 -1
  161. package/dist/core/prompt-commands.d.ts +0 -1
  162. package/dist/core/radio.d.ts +0 -1
  163. package/dist/core/regrounding.d.ts +0 -1
  164. package/dist/core/resolve-start.d.ts +0 -1
  165. package/dist/core/run-claim.d.ts +0 -1
  166. package/dist/core/run-lifecycle.d.ts +0 -1
  167. package/dist/core/runtime-mode.d.ts +0 -1
  168. package/dist/core/sandbox-domains.d.ts +0 -1
  169. package/dist/core/sandbox-feedback.d.ts +0 -1
  170. package/dist/core/sandbox.d.ts +0 -1
  171. package/dist/core/semantic-loop-check.d.ts +58 -0
  172. package/dist/core/semantic-loop-check.js +103 -0
  173. package/dist/core/semantic-loop-check.js.map +1 -0
  174. package/dist/core/semantic-search-benchmark.d.ts +0 -1
  175. package/dist/core/session-compaction.d.ts +0 -1
  176. package/dist/core/session-export.d.ts +0 -1
  177. package/dist/core/session-history.d.ts +0 -1
  178. package/dist/core/session-manager.d.ts +1 -2
  179. package/dist/core/session-preview.d.ts +0 -1
  180. package/dist/core/session-storage.d.ts +0 -1
  181. package/dist/core/settings-manager.d.ts +0 -1
  182. package/dist/core/setup-history.d.ts +0 -1
  183. package/dist/core/shell-path.d.ts +0 -1
  184. package/dist/core/shell.d.ts +0 -1
  185. package/dist/core/shell.js +6 -3
  186. package/dist/core/shell.js.map +1 -1
  187. package/dist/core/shutdown.d.ts +0 -1
  188. package/dist/core/skills.d.ts +0 -1
  189. package/dist/core/slash-commands.d.ts +3 -2
  190. package/dist/core/slash-commands.js +6 -4
  191. package/dist/core/slash-commands.js.map +1 -1
  192. package/dist/core/source-maps.d.ts +0 -1
  193. package/dist/core/speed-benchmark.d.ts +0 -1
  194. package/dist/core/steering.d.ts +0 -1
  195. package/dist/core/steroids.d.ts +0 -1
  196. package/dist/core/style-packs/index.d.ts +0 -1
  197. package/dist/core/style-packs/packs.d.ts +0 -1
  198. package/dist/core/subagent-manager.d.ts +7 -2
  199. package/dist/core/subagent-manager.js +15 -5
  200. package/dist/core/subagent-manager.js.map +1 -1
  201. package/dist/core/subagent-policy.d.ts +0 -1
  202. package/dist/core/subagent-store.d.ts +0 -1
  203. package/dist/core/subagent-turn-record.d.ts +0 -1
  204. package/dist/core/task-store.d.ts +0 -1
  205. package/dist/core/telegram-config.d.ts +0 -1
  206. package/dist/core/telegram.d.ts +0 -1
  207. package/dist/core/thinking-level.d.ts +0 -1
  208. package/dist/core/verification-evidence.d.ts +11 -2
  209. package/dist/core/verification-evidence.js +96 -22
  210. package/dist/core/verification-evidence.js.map +1 -1
  211. package/dist/core/verification-gate.d.ts +75 -36
  212. package/dist/core/verification-gate.js +301 -37
  213. package/dist/core/verification-gate.js.map +1 -1
  214. package/dist/core/verification-snapshot.d.ts +7 -0
  215. package/dist/core/verification-snapshot.js +111 -0
  216. package/dist/core/verification-snapshot.js.map +1 -0
  217. package/dist/core/verify-commands.d.ts +0 -1
  218. package/dist/core/voice-transcriber.d.ts +0 -1
  219. package/dist/core/workspace-guard.d.ts +0 -1
  220. package/dist/hf-pull.d.ts +0 -1
  221. package/dist/index.d.ts +0 -1
  222. package/dist/interactive.d.ts +0 -1
  223. package/dist/modes/acp-mode.d.ts +0 -1
  224. package/dist/modes/agent-home-mode.d.ts +0 -1
  225. package/dist/modes/index.d.ts +0 -1
  226. package/dist/modes/json-mode.d.ts +0 -1
  227. package/dist/modes/print-mode.d.ts +0 -1
  228. package/dist/modes/rpc-mode.d.ts +0 -1
  229. package/dist/modes/serve-mode.d.ts +0 -1
  230. package/dist/modes/subagent-worker-mode.d.ts +0 -1
  231. package/dist/session.d.ts +0 -1
  232. package/dist/system-prompt.d.ts +0 -1
  233. package/dist/system-prompt.js +53 -124
  234. package/dist/system-prompt.js.map +1 -1
  235. package/dist/test-support/fake-home.d.ts +0 -1
  236. package/dist/tools/ask-user.d.ts +0 -1
  237. package/dist/tools/bash.d.ts +0 -1
  238. package/dist/tools/bash.js +9 -4
  239. package/dist/tools/bash.js.map +1 -1
  240. package/dist/tools/code-nav.d.ts +0 -1
  241. package/dist/tools/code-skeleton.d.ts +0 -1
  242. package/dist/tools/compress.d.ts +0 -1
  243. package/dist/tools/edit-diff.d.ts +19 -2
  244. package/dist/tools/edit-diff.js +16 -3
  245. package/dist/tools/edit-diff.js.map +1 -1
  246. package/dist/tools/edit.d.ts +1 -2
  247. package/dist/tools/edit.js +36 -12
  248. package/dist/tools/edit.js.map +1 -1
  249. package/dist/tools/enter-plan.d.ts +0 -1
  250. package/dist/tools/exit-plan.d.ts +0 -1
  251. package/dist/tools/find.d.ts +0 -1
  252. package/dist/tools/generate-image.d.ts +5 -1
  253. package/dist/tools/generate-image.js +25 -7
  254. package/dist/tools/generate-image.js.map +1 -1
  255. package/dist/tools/goals.d.ts +0 -1
  256. package/dist/tools/grep.d.ts +0 -1
  257. package/dist/tools/html-extract.d.ts +0 -1
  258. package/dist/tools/index.d.ts +3 -2
  259. package/dist/tools/index.js +3 -1
  260. package/dist/tools/index.js.map +1 -1
  261. package/dist/tools/ls.d.ts +0 -1
  262. package/dist/tools/operations.d.ts +0 -1
  263. package/dist/tools/overflow.d.ts +0 -1
  264. package/dist/tools/path-utils.d.ts +0 -1
  265. package/dist/tools/pdf-extract.d.ts +0 -1
  266. package/dist/tools/prompt-hints.d.ts +0 -1
  267. package/dist/tools/prompt-hints.js +1 -1
  268. package/dist/tools/prompt-hints.js.map +1 -1
  269. package/dist/tools/read-only-bash.d.ts +0 -1
  270. package/dist/tools/read-tracker.d.ts +0 -1
  271. package/dist/tools/read.d.ts +0 -1
  272. package/dist/tools/safe-env.d.ts +0 -1
  273. package/dist/tools/screenshot.d.ts +0 -1
  274. package/dist/tools/search-code.d.ts +0 -1
  275. package/dist/tools/session-stats.d.ts +26 -0
  276. package/dist/tools/session-stats.js +51 -0
  277. package/dist/tools/session-stats.js.map +1 -0
  278. package/dist/tools/skill.d.ts +0 -1
  279. package/dist/tools/skill.js +3 -5
  280. package/dist/tools/skill.js.map +1 -1
  281. package/dist/tools/source-path.d.ts +0 -1
  282. package/dist/tools/steroids.d.ts +0 -1
  283. package/dist/tools/steroids.js +1 -1
  284. package/dist/tools/subagent-control.d.ts +0 -1
  285. package/dist/tools/subagent-shared.d.ts +0 -1
  286. package/dist/tools/subagent.d.ts +0 -1
  287. package/dist/tools/task-output.d.ts +0 -1
  288. package/dist/tools/task-output.js +13 -6
  289. package/dist/tools/task-output.js.map +1 -1
  290. package/dist/tools/task-send.d.ts +0 -1
  291. package/dist/tools/task-stop.d.ts +0 -1
  292. package/dist/tools/tasks.d.ts +0 -1
  293. package/dist/tools/tool-search.d.ts +0 -1
  294. package/dist/tools/tool-tiers.d.ts +0 -1
  295. package/dist/tools/truncate.d.ts +0 -1
  296. package/dist/tools/web-fetch.d.ts +0 -1
  297. package/dist/tools/web-search.d.ts +0 -1
  298. package/dist/tools/write.d.ts +0 -1
  299. package/dist/types.d.ts +0 -1
  300. package/dist/ui/App.d.ts +0 -1
  301. package/dist/ui/App.js +6 -1
  302. package/dist/ui/App.js.map +1 -1
  303. package/dist/ui/activity-phrases.d.ts +0 -1
  304. package/dist/ui/app-items.d.ts +0 -1
  305. package/dist/ui/components/ActivityIndicator.d.ts +0 -1
  306. package/dist/ui/components/AnimationContext.d.ts +0 -1
  307. package/dist/ui/components/AssistantMessage.d.ts +0 -1
  308. package/dist/ui/components/BackgroundTasksBar.d.ts +0 -1
  309. package/dist/ui/components/Banner.d.ts +0 -1
  310. package/dist/ui/components/ChatFooterPane.d.ts +0 -1
  311. package/dist/ui/components/ChatInputStack.d.ts +0 -1
  312. package/dist/ui/components/ChatLayout.d.ts +0 -1
  313. package/dist/ui/components/ChatLivePane.d.ts +0 -1
  314. package/dist/ui/components/ChatScreen.d.ts +0 -1
  315. package/dist/ui/components/ChatStatusRow.d.ts +0 -1
  316. package/dist/ui/components/CompactionNotice.d.ts +0 -1
  317. package/dist/ui/components/DiffFrame.d.ts +0 -1
  318. package/dist/ui/components/DiffView.d.ts +0 -1
  319. package/dist/ui/components/Footer.d.ts +0 -1
  320. package/dist/ui/components/FooterStatusRow.d.ts +0 -1
  321. package/dist/ui/components/FullScreenOverlayRouter.d.ts +0 -1
  322. package/dist/ui/components/GoalOverlay.d.ts +0 -1
  323. package/dist/ui/components/GoalStatusBar.d.ts +0 -1
  324. package/dist/ui/components/IdealHookMessage.d.ts +0 -1
  325. package/dist/ui/components/InputArea.d.ts +0 -1
  326. package/dist/ui/components/LiveToolPanel.d.ts +0 -1
  327. package/dist/ui/components/Markdown.d.ts +0 -1
  328. package/dist/ui/components/MessageResponse.d.ts +0 -1
  329. package/dist/ui/components/ModelSelector.d.ts +0 -1
  330. package/dist/ui/components/NoSelect.d.ts +0 -1
  331. package/dist/ui/components/Overlay.d.ts +0 -1
  332. package/dist/ui/components/PixelOverlay.d.ts +0 -1
  333. package/dist/ui/components/PlanApproval.d.ts +0 -1
  334. package/dist/ui/components/PlanBanner.d.ts +0 -1
  335. package/dist/ui/components/PlanModeLogo.d.ts +0 -1
  336. package/dist/ui/components/PlanOverlay.d.ts +0 -1
  337. package/dist/ui/components/PlanProgress.d.ts +0 -1
  338. package/dist/ui/components/QueueIndicator.d.ts +0 -1
  339. package/dist/ui/components/Ratchet.d.ts +0 -1
  340. package/dist/ui/components/RewindOverlay.d.ts +0 -1
  341. package/dist/ui/components/SelectList.d.ts +0 -1
  342. package/dist/ui/components/ServerToolExecution.d.ts +0 -1
  343. package/dist/ui/components/SessionSelector.d.ts +0 -1
  344. package/dist/ui/components/SessionSummary.d.ts +0 -1
  345. package/dist/ui/components/SettingsSelector.d.ts +0 -1
  346. package/dist/ui/components/SkillsOverlay.d.ts +0 -1
  347. package/dist/ui/components/SlashCommandMenu.d.ts +0 -1
  348. package/dist/ui/components/SlashStyledSelectList.d.ts +0 -1
  349. package/dist/ui/components/Spinner.d.ts +0 -1
  350. package/dist/ui/components/StreamingArea.d.ts +0 -1
  351. package/dist/ui/components/SubAgentPanel.d.ts +0 -1
  352. package/dist/ui/components/TaskOverlay.d.ts +0 -1
  353. package/dist/ui/components/TaskPickerMenu.d.ts +0 -1
  354. package/dist/ui/components/ThemeSelector.d.ts +0 -1
  355. package/dist/ui/components/ThinkingBlock.d.ts +0 -1
  356. package/dist/ui/components/ToolExecution.d.ts +0 -1
  357. package/dist/ui/components/ToolGroupExecution.d.ts +0 -1
  358. package/dist/ui/components/ToolUseLoader.d.ts +0 -1
  359. package/dist/ui/components/TranscriptViewport.d.ts +0 -1
  360. package/dist/ui/components/UserMessage.d.ts +0 -1
  361. package/dist/ui/components/force-color.d.ts +0 -1
  362. package/dist/ui/components/index.d.ts +0 -1
  363. package/dist/ui/constants/figures.d.ts +0 -1
  364. package/dist/ui/duration-format.d.ts +0 -1
  365. package/dist/ui/duration-summary.d.ts +0 -1
  366. package/dist/ui/error-item.d.ts +0 -1
  367. package/dist/ui/goal-events.d.ts +0 -1
  368. package/dist/ui/goal-events.js.map +1 -1
  369. package/dist/ui/goal-summary.d.ts +0 -1
  370. package/dist/ui/hooks/useAgentLoop.d.ts +0 -1
  371. package/dist/ui/hooks/useBlink.d.ts +0 -1
  372. package/dist/ui/hooks/useChatLayoutMeasurements.d.ts +0 -1
  373. package/dist/ui/hooks/useContextCompaction.d.ts +0 -1
  374. package/dist/ui/hooks/useDoublePress.d.ts +0 -1
  375. package/dist/ui/hooks/useMinDisplayTime.d.ts +0 -1
  376. package/dist/ui/hooks/useModeState.d.ts +0 -1
  377. package/dist/ui/hooks/usePixelFixFlow.d.ts +0 -1
  378. package/dist/ui/hooks/useSessionManager.d.ts +0 -1
  379. package/dist/ui/hooks/useSessionPersistence.d.ts +0 -1
  380. package/dist/ui/hooks/useSlashCommands.d.ts +0 -1
  381. package/dist/ui/hooks/useTaskPickerController.d.ts +0 -1
  382. package/dist/ui/hooks/useTerminalSize.d.ts +0 -1
  383. package/dist/ui/hooks/useTerminalTitle.d.ts +0 -1
  384. package/dist/ui/hooks/useTranscriptHistory.d.ts +0 -1
  385. package/dist/ui/hooks/useTranscriptScroll.d.ts +0 -1
  386. package/dist/ui/item-helpers.d.ts +0 -1
  387. package/dist/ui/layout-decisions.d.ts +0 -1
  388. package/dist/ui/live-area-height.d.ts +0 -1
  389. package/dist/ui/live-item-flush.d.ts +0 -1
  390. package/dist/ui/login.d.ts +0 -1
  391. package/dist/ui/mcp.d.ts +0 -1
  392. package/dist/ui/pixel.d.ts +0 -1
  393. package/dist/ui/prompt-routing.d.ts +0 -1
  394. package/dist/ui/render.d.ts +0 -1
  395. package/dist/ui/session-summary.d.ts +0 -1
  396. package/dist/ui/sessions.d.ts +0 -1
  397. package/dist/ui/spinner-frames.d.ts +0 -1
  398. package/dist/ui/stores/create-store.d.ts +0 -1
  399. package/dist/ui/stores/index.d.ts +0 -1
  400. package/dist/ui/stores/taskbar-store.d.ts +0 -1
  401. package/dist/ui/stores/transcript-scroll-store.d.ts +0 -1
  402. package/dist/ui/submit-prompt-command.d.ts +0 -1
  403. package/dist/ui/submit-slash-commands.d.ts +0 -1
  404. package/dist/ui/terminal-history-format.d.ts +0 -1
  405. package/dist/ui/terminal-history-spacing.d.ts +0 -1
  406. package/dist/ui/terminal-history-status-renderers.d.ts +0 -1
  407. package/dist/ui/terminal-history.d.ts +0 -1
  408. package/dist/ui/testing/screen-recorder.d.ts +0 -1
  409. package/dist/ui/theme/detect-theme.d.ts +0 -1
  410. package/dist/ui/theme/theme.d.ts +0 -1
  411. package/dist/ui/theme/theme.js.map +1 -1
  412. package/dist/ui/thinking-level.d.ts +0 -1
  413. package/dist/ui/tool-group-summary.d.ts +0 -1
  414. package/dist/ui/tool-line-summary.d.ts +0 -1
  415. package/dist/ui/transcript/MiscRows.d.ts +0 -1
  416. package/dist/ui/transcript/StatusRow.d.ts +0 -1
  417. package/dist/ui/transcript/ToolRows.d.ts +0 -1
  418. package/dist/ui/transcript/TranscriptItemFrame.d.ts +0 -1
  419. package/dist/ui/transcript/TranscriptRenderer.d.ts +0 -1
  420. package/dist/ui/transcript/presentation.d.ts +0 -1
  421. package/dist/ui/transcript/spacing.d.ts +0 -1
  422. package/dist/ui/transcript/tool-presentation.d.ts +0 -1
  423. package/dist/ui/transcript/tool-presentation.js.map +1 -1
  424. package/dist/ui/transcript/transcript-lines.d.ts +0 -1
  425. package/dist/ui/utils/assistant-stream-split.d.ts +0 -1
  426. package/dist/ui/utils/highlight.d.ts +0 -1
  427. package/dist/ui/utils/hyperlink.d.ts +0 -1
  428. package/dist/ui/utils/latex-to-unicode.d.ts +0 -1
  429. package/dist/ui/utils/markdown-cache.d.ts +0 -1
  430. package/dist/ui/utils/markdown-renderer.d.ts +0 -1
  431. package/dist/ui/utils/markdown-table.d.ts +0 -1
  432. package/dist/ui/utils/signal.d.ts +0 -1
  433. package/dist/ui/utils/supports-hyperlinks.d.ts +0 -1
  434. package/dist/ui/utils/table-text.d.ts +0 -1
  435. package/dist/ui/utils/terminal-graphics.d.ts +0 -1
  436. package/dist/ui/utils/terminal-input.d.ts +0 -1
  437. package/dist/ui/utils/text-utils.d.ts +0 -1
  438. package/dist/ui/utils/token-to-ansi.d.ts +0 -1
  439. package/dist/ui/utils/user-message-display.d.ts +0 -1
  440. package/dist/ui/utils/word-diff.d.ts +0 -1
  441. package/dist/utils/error-handler.d.ts +0 -1
  442. package/dist/utils/format.d.ts +0 -1
  443. package/dist/utils/git.d.ts +0 -1
  444. package/dist/utils/github-ci.d.ts +18 -0
  445. package/dist/utils/github-ci.js +137 -0
  446. package/dist/utils/github-ci.js.map +1 -0
  447. package/dist/utils/github.d.ts +0 -1
  448. package/dist/utils/http-body.d.ts +0 -1
  449. package/dist/utils/image.d.ts +0 -1
  450. package/dist/utils/open-browser.d.ts +0 -1
  451. package/dist/utils/plan-steps.d.ts +0 -1
  452. package/dist/utils/plan-steps.js.map +1 -1
  453. package/dist/utils/process.d.ts +0 -1
  454. package/dist/utils/prompt-enhancer.d.ts +6 -3
  455. package/dist/utils/prompt-enhancer.js +61 -13
  456. package/dist/utils/prompt-enhancer.js.map +1 -1
  457. package/dist/utils/shell.d.ts +0 -1
  458. package/dist/utils/sound.d.ts +0 -1
  459. package/dist/utils/text.d.ts +0 -1
  460. package/package.json +8 -8
  461. package/dist/app-sidecar-sessions.d.ts.map +0 -1
  462. package/dist/app-sidecar.d.ts.map +0 -1
  463. package/dist/chat-agents/general.d.ts.map +0 -1
  464. package/dist/chat-agents/index.d.ts.map +0 -1
  465. package/dist/chat-agents/jiwa.d.ts.map +0 -1
  466. package/dist/chat-agents/memory.d.ts.map +0 -1
  467. package/dist/chat-agents/research.d.ts.map +0 -1
  468. package/dist/chat-agents/shared.d.ts.map +0 -1
  469. package/dist/chat-agents/therapist.d.ts.map +0 -1
  470. package/dist/chat-agents/types.d.ts.map +0 -1
  471. package/dist/cli/auth.d.ts.map +0 -1
  472. package/dist/cli/command-routing.d.ts.map +0 -1
  473. package/dist/cli/mcp.d.ts.map +0 -1
  474. package/dist/cli/pixel.d.ts.map +0 -1
  475. package/dist/cli/shared.d.ts.map +0 -1
  476. package/dist/cli.d.ts.map +0 -1
  477. package/dist/config.d.ts.map +0 -1
  478. package/dist/core/agent-notifications.d.ts.map +0 -1
  479. package/dist/core/agent-session.d.ts.map +0 -1
  480. package/dist/core/agents.d.ts.map +0 -1
  481. package/dist/core/api-benchmark.d.ts.map +0 -1
  482. package/dist/core/ask-user.d.ts.map +0 -1
  483. package/dist/core/auth/index.d.ts.map +0 -1
  484. package/dist/core/auth-providers.d.ts.map +0 -1
  485. package/dist/core/auth-storage.d.ts.map +0 -1
  486. package/dist/core/auto-update.d.ts.map +0 -1
  487. package/dist/core/autopilot-cycle.d.ts.map +0 -1
  488. package/dist/core/autopilot-gate.d.ts.map +0 -1
  489. package/dist/core/autopilot-verdict.d.ts.map +0 -1
  490. package/dist/core/bash-spawn-benchmark.d.ts.map +0 -1
  491. package/dist/core/bundled-agents.d.ts.map +0 -1
  492. package/dist/core/cache-warm-benchmark.d.ts.map +0 -1
  493. package/dist/core/checkpoint-store.d.ts.map +0 -1
  494. package/dist/core/claude-code-version.d.ts.map +0 -1
  495. package/dist/core/code-retrieval-chunkers.d.ts.map +0 -1
  496. package/dist/core/code-retrieval.d.ts.map +0 -1
  497. package/dist/core/compaction/active-context.d.ts.map +0 -1
  498. package/dist/core/compaction/compactor.d.ts.map +0 -1
  499. package/dist/core/compaction/policy.d.ts.map +0 -1
  500. package/dist/core/compaction/query-aware-selector.d.ts.map +0 -1
  501. package/dist/core/compaction/token-estimator.d.ts.map +0 -1
  502. package/dist/core/compaction/tool-result-pruner.d.ts.map +0 -1
  503. package/dist/core/context-limits.d.ts.map +0 -1
  504. package/dist/core/custom-commands.d.ts.map +0 -1
  505. package/dist/core/encode-cwd.d.ts.map +0 -1
  506. package/dist/core/env-delta.d.ts.map +0 -1
  507. package/dist/core/event-bus.d.ts.map +0 -1
  508. package/dist/core/extensions/loader.d.ts.map +0 -1
  509. package/dist/core/extensions/plugin-bundles.d.ts.map +0 -1
  510. package/dist/core/extensions/types.d.ts.map +0 -1
  511. package/dist/core/fast-apply-benchmark.d.ts.map +0 -1
  512. package/dist/core/file-lock.d.ts.map +0 -1
  513. package/dist/core/foreign-session-import.d.ts.map +0 -1
  514. package/dist/core/foreign-transcript-blocks.d.ts.map +0 -1
  515. package/dist/core/goal-controller.d.ts.map +0 -1
  516. package/dist/core/goal-prerequisites.d.ts.map +0 -1
  517. package/dist/core/goal-store.d.ts.map +0 -1
  518. package/dist/core/goal-verifier.d.ts.map +0 -1
  519. package/dist/core/goal-worker.d.ts.map +0 -1
  520. package/dist/core/hashline-edit-benchmark.d.ts.map +0 -1
  521. package/dist/core/hashline.d.ts.map +0 -1
  522. package/dist/core/ideal-review.d.ts.map +0 -1
  523. package/dist/core/index.d.ts.map +0 -1
  524. package/dist/core/language-detector.d.ts.map +0 -1
  525. package/dist/core/local-endpoint-store.d.ts.map +0 -1
  526. package/dist/core/logger.d.ts.map +0 -1
  527. package/dist/core/loop-breaker.d.ts.map +0 -1
  528. package/dist/core/lsp/client.d.ts.map +0 -1
  529. package/dist/core/lsp/edit-telemetry.d.ts.map +0 -1
  530. package/dist/core/lsp/format.d.ts.map +0 -1
  531. package/dist/core/lsp/jsonrpc.d.ts.map +0 -1
  532. package/dist/core/lsp/manager.d.ts.map +0 -1
  533. package/dist/core/lsp/pool.d.ts.map +0 -1
  534. package/dist/core/lsp/servers.d.ts.map +0 -1
  535. package/dist/core/lsp/test-support.d.ts.map +0 -1
  536. package/dist/core/mcp/catalog-cache.d.ts.map +0 -1
  537. package/dist/core/mcp/client.d.ts.map +0 -1
  538. package/dist/core/mcp/content.d.ts.map +0 -1
  539. package/dist/core/mcp/defaults.d.ts.map +0 -1
  540. package/dist/core/mcp/deferred-catalog.d.ts.map +0 -1
  541. package/dist/core/mcp/elicitation-bridge.d.ts.map +0 -1
  542. package/dist/core/mcp/index.d.ts.map +0 -1
  543. package/dist/core/mcp/loopback.d.ts.map +0 -1
  544. package/dist/core/mcp/oauth-provider.d.ts.map +0 -1
  545. package/dist/core/mcp/oauth-store.d.ts.map +0 -1
  546. package/dist/core/mcp/parse-add-command.d.ts.map +0 -1
  547. package/dist/core/mcp/resolve-stdio.d.ts.map +0 -1
  548. package/dist/core/mcp/shared-pool.d.ts.map +0 -1
  549. package/dist/core/mcp/store.d.ts.map +0 -1
  550. package/dist/core/mcp/types.d.ts.map +0 -1
  551. package/dist/core/message-images.d.ts.map +0 -1
  552. package/dist/core/model-registry.d.ts.map +0 -1
  553. package/dist/core/network-guard.d.ts.map +0 -1
  554. package/dist/core/nolan-context.d.ts.map +0 -1
  555. package/dist/core/nolan-model.d.ts.map +0 -1
  556. package/dist/core/nolan-prompt.d.ts.map +0 -1
  557. package/dist/core/oauth/anthropic.d.ts.map +0 -1
  558. package/dist/core/oauth/gemini.d.ts.map +0 -1
  559. package/dist/core/oauth/kimi.d.ts.map +0 -1
  560. package/dist/core/oauth/openai.d.ts.map +0 -1
  561. package/dist/core/oauth/pkce.d.ts.map +0 -1
  562. package/dist/core/oauth/types.d.ts.map +0 -1
  563. package/dist/core/oauth/xai.d.ts.map +0 -1
  564. package/dist/core/parked-requests.d.ts.map +0 -1
  565. package/dist/core/persistent-shell.d.ts.map +0 -1
  566. package/dist/core/pixel-fix-agent.d.ts.map +0 -1
  567. package/dist/core/pixel-fix.d.ts.map +0 -1
  568. package/dist/core/pixel.d.ts.map +0 -1
  569. package/dist/core/platform-clis.d.ts.map +0 -1
  570. package/dist/core/process-gate.d.ts.map +0 -1
  571. package/dist/core/process-manager.d.ts.map +0 -1
  572. package/dist/core/progress/engine.d.ts.map +0 -1
  573. package/dist/core/progress/git-xp.d.ts.map +0 -1
  574. package/dist/core/progress/ranks.d.ts.map +0 -1
  575. package/dist/core/progress/rebuild.d.ts.map +0 -1
  576. package/dist/core/progress/store.d.ts.map +0 -1
  577. package/dist/core/progress/types.d.ts.map +0 -1
  578. package/dist/core/project-discovery.d.ts.map +0 -1
  579. package/dist/core/prompt-commands.d.ts.map +0 -1
  580. package/dist/core/radio.d.ts.map +0 -1
  581. package/dist/core/regrounding.d.ts.map +0 -1
  582. package/dist/core/resolve-start.d.ts.map +0 -1
  583. package/dist/core/run-claim.d.ts.map +0 -1
  584. package/dist/core/run-lifecycle.d.ts.map +0 -1
  585. package/dist/core/runtime-mode.d.ts.map +0 -1
  586. package/dist/core/sandbox-domains.d.ts.map +0 -1
  587. package/dist/core/sandbox-feedback.d.ts.map +0 -1
  588. package/dist/core/sandbox.d.ts.map +0 -1
  589. package/dist/core/semantic-search-benchmark.d.ts.map +0 -1
  590. package/dist/core/session-compaction.d.ts.map +0 -1
  591. package/dist/core/session-export.d.ts.map +0 -1
  592. package/dist/core/session-history.d.ts.map +0 -1
  593. package/dist/core/session-manager.d.ts.map +0 -1
  594. package/dist/core/session-preview.d.ts.map +0 -1
  595. package/dist/core/session-storage.d.ts.map +0 -1
  596. package/dist/core/settings-manager.d.ts.map +0 -1
  597. package/dist/core/setup-history.d.ts.map +0 -1
  598. package/dist/core/shell-path.d.ts.map +0 -1
  599. package/dist/core/shell.d.ts.map +0 -1
  600. package/dist/core/shutdown.d.ts.map +0 -1
  601. package/dist/core/skills.d.ts.map +0 -1
  602. package/dist/core/slash-commands.d.ts.map +0 -1
  603. package/dist/core/source-maps.d.ts.map +0 -1
  604. package/dist/core/speed-benchmark.d.ts.map +0 -1
  605. package/dist/core/steering.d.ts.map +0 -1
  606. package/dist/core/steroids.d.ts.map +0 -1
  607. package/dist/core/style-packs/index.d.ts.map +0 -1
  608. package/dist/core/style-packs/packs.d.ts.map +0 -1
  609. package/dist/core/subagent-manager.d.ts.map +0 -1
  610. package/dist/core/subagent-policy.d.ts.map +0 -1
  611. package/dist/core/subagent-store.d.ts.map +0 -1
  612. package/dist/core/subagent-turn-record.d.ts.map +0 -1
  613. package/dist/core/task-store.d.ts.map +0 -1
  614. package/dist/core/telegram-config.d.ts.map +0 -1
  615. package/dist/core/telegram.d.ts.map +0 -1
  616. package/dist/core/thinking-level.d.ts.map +0 -1
  617. package/dist/core/verification-evidence.d.ts.map +0 -1
  618. package/dist/core/verification-gate.d.ts.map +0 -1
  619. package/dist/core/verify-commands.d.ts.map +0 -1
  620. package/dist/core/voice-transcriber.d.ts.map +0 -1
  621. package/dist/core/workspace-guard.d.ts.map +0 -1
  622. package/dist/hf-pull.d.ts.map +0 -1
  623. package/dist/index.d.ts.map +0 -1
  624. package/dist/interactive.d.ts.map +0 -1
  625. package/dist/modes/acp-mode.d.ts.map +0 -1
  626. package/dist/modes/agent-home-mode.d.ts.map +0 -1
  627. package/dist/modes/index.d.ts.map +0 -1
  628. package/dist/modes/json-mode.d.ts.map +0 -1
  629. package/dist/modes/print-mode.d.ts.map +0 -1
  630. package/dist/modes/rpc-mode.d.ts.map +0 -1
  631. package/dist/modes/serve-mode.d.ts.map +0 -1
  632. package/dist/modes/subagent-worker-mode.d.ts.map +0 -1
  633. package/dist/session.d.ts.map +0 -1
  634. package/dist/system-prompt.d.ts.map +0 -1
  635. package/dist/test-support/fake-home.d.ts.map +0 -1
  636. package/dist/tools/ask-user.d.ts.map +0 -1
  637. package/dist/tools/bash.d.ts.map +0 -1
  638. package/dist/tools/code-nav.d.ts.map +0 -1
  639. package/dist/tools/code-skeleton.d.ts.map +0 -1
  640. package/dist/tools/compress.d.ts.map +0 -1
  641. package/dist/tools/edit-diff.d.ts.map +0 -1
  642. package/dist/tools/edit.d.ts.map +0 -1
  643. package/dist/tools/enter-plan.d.ts.map +0 -1
  644. package/dist/tools/exit-plan.d.ts.map +0 -1
  645. package/dist/tools/find.d.ts.map +0 -1
  646. package/dist/tools/generate-image.d.ts.map +0 -1
  647. package/dist/tools/goals.d.ts.map +0 -1
  648. package/dist/tools/grep.d.ts.map +0 -1
  649. package/dist/tools/html-extract.d.ts.map +0 -1
  650. package/dist/tools/index.d.ts.map +0 -1
  651. package/dist/tools/ls.d.ts.map +0 -1
  652. package/dist/tools/operations.d.ts.map +0 -1
  653. package/dist/tools/overflow.d.ts.map +0 -1
  654. package/dist/tools/path-utils.d.ts.map +0 -1
  655. package/dist/tools/pdf-extract.d.ts.map +0 -1
  656. package/dist/tools/prompt-hints.d.ts.map +0 -1
  657. package/dist/tools/read-only-bash.d.ts.map +0 -1
  658. package/dist/tools/read-tracker.d.ts.map +0 -1
  659. package/dist/tools/read.d.ts.map +0 -1
  660. package/dist/tools/safe-env.d.ts.map +0 -1
  661. package/dist/tools/screenshot.d.ts.map +0 -1
  662. package/dist/tools/search-code.d.ts.map +0 -1
  663. package/dist/tools/skill.d.ts.map +0 -1
  664. package/dist/tools/source-path.d.ts.map +0 -1
  665. package/dist/tools/steroids.d.ts.map +0 -1
  666. package/dist/tools/subagent-control.d.ts.map +0 -1
  667. package/dist/tools/subagent-shared.d.ts.map +0 -1
  668. package/dist/tools/subagent.d.ts.map +0 -1
  669. package/dist/tools/task-output.d.ts.map +0 -1
  670. package/dist/tools/task-send.d.ts.map +0 -1
  671. package/dist/tools/task-stop.d.ts.map +0 -1
  672. package/dist/tools/tasks.d.ts.map +0 -1
  673. package/dist/tools/tool-search.d.ts.map +0 -1
  674. package/dist/tools/tool-tiers.d.ts.map +0 -1
  675. package/dist/tools/truncate.d.ts.map +0 -1
  676. package/dist/tools/web-fetch.d.ts.map +0 -1
  677. package/dist/tools/web-search.d.ts.map +0 -1
  678. package/dist/tools/write.d.ts.map +0 -1
  679. package/dist/types.d.ts.map +0 -1
  680. package/dist/ui/App.d.ts.map +0 -1
  681. package/dist/ui/activity-phrases.d.ts.map +0 -1
  682. package/dist/ui/app-items.d.ts.map +0 -1
  683. package/dist/ui/components/ActivityIndicator.d.ts.map +0 -1
  684. package/dist/ui/components/AnimationContext.d.ts.map +0 -1
  685. package/dist/ui/components/AssistantMessage.d.ts.map +0 -1
  686. package/dist/ui/components/BackgroundTasksBar.d.ts.map +0 -1
  687. package/dist/ui/components/Banner.d.ts.map +0 -1
  688. package/dist/ui/components/ChatFooterPane.d.ts.map +0 -1
  689. package/dist/ui/components/ChatInputStack.d.ts.map +0 -1
  690. package/dist/ui/components/ChatLayout.d.ts.map +0 -1
  691. package/dist/ui/components/ChatLivePane.d.ts.map +0 -1
  692. package/dist/ui/components/ChatScreen.d.ts.map +0 -1
  693. package/dist/ui/components/ChatStatusRow.d.ts.map +0 -1
  694. package/dist/ui/components/CompactionNotice.d.ts.map +0 -1
  695. package/dist/ui/components/DiffFrame.d.ts.map +0 -1
  696. package/dist/ui/components/DiffView.d.ts.map +0 -1
  697. package/dist/ui/components/Footer.d.ts.map +0 -1
  698. package/dist/ui/components/FooterStatusRow.d.ts.map +0 -1
  699. package/dist/ui/components/FullScreenOverlayRouter.d.ts.map +0 -1
  700. package/dist/ui/components/GoalOverlay.d.ts.map +0 -1
  701. package/dist/ui/components/GoalStatusBar.d.ts.map +0 -1
  702. package/dist/ui/components/IdealHookMessage.d.ts.map +0 -1
  703. package/dist/ui/components/InputArea.d.ts.map +0 -1
  704. package/dist/ui/components/LiveToolPanel.d.ts.map +0 -1
  705. package/dist/ui/components/Markdown.d.ts.map +0 -1
  706. package/dist/ui/components/MessageResponse.d.ts.map +0 -1
  707. package/dist/ui/components/ModelSelector.d.ts.map +0 -1
  708. package/dist/ui/components/NoSelect.d.ts.map +0 -1
  709. package/dist/ui/components/Overlay.d.ts.map +0 -1
  710. package/dist/ui/components/PixelOverlay.d.ts.map +0 -1
  711. package/dist/ui/components/PlanApproval.d.ts.map +0 -1
  712. package/dist/ui/components/PlanBanner.d.ts.map +0 -1
  713. package/dist/ui/components/PlanModeLogo.d.ts.map +0 -1
  714. package/dist/ui/components/PlanOverlay.d.ts.map +0 -1
  715. package/dist/ui/components/PlanProgress.d.ts.map +0 -1
  716. package/dist/ui/components/QueueIndicator.d.ts.map +0 -1
  717. package/dist/ui/components/Ratchet.d.ts.map +0 -1
  718. package/dist/ui/components/RewindOverlay.d.ts.map +0 -1
  719. package/dist/ui/components/SelectList.d.ts.map +0 -1
  720. package/dist/ui/components/ServerToolExecution.d.ts.map +0 -1
  721. package/dist/ui/components/SessionSelector.d.ts.map +0 -1
  722. package/dist/ui/components/SessionSummary.d.ts.map +0 -1
  723. package/dist/ui/components/SettingsSelector.d.ts.map +0 -1
  724. package/dist/ui/components/SkillsOverlay.d.ts.map +0 -1
  725. package/dist/ui/components/SlashCommandMenu.d.ts.map +0 -1
  726. package/dist/ui/components/SlashStyledSelectList.d.ts.map +0 -1
  727. package/dist/ui/components/Spinner.d.ts.map +0 -1
  728. package/dist/ui/components/StreamingArea.d.ts.map +0 -1
  729. package/dist/ui/components/SubAgentPanel.d.ts.map +0 -1
  730. package/dist/ui/components/TaskOverlay.d.ts.map +0 -1
  731. package/dist/ui/components/TaskPickerMenu.d.ts.map +0 -1
  732. package/dist/ui/components/ThemeSelector.d.ts.map +0 -1
  733. package/dist/ui/components/ThinkingBlock.d.ts.map +0 -1
  734. package/dist/ui/components/ToolExecution.d.ts.map +0 -1
  735. package/dist/ui/components/ToolGroupExecution.d.ts.map +0 -1
  736. package/dist/ui/components/ToolUseLoader.d.ts.map +0 -1
  737. package/dist/ui/components/TranscriptViewport.d.ts.map +0 -1
  738. package/dist/ui/components/UserMessage.d.ts.map +0 -1
  739. package/dist/ui/components/force-color.d.ts.map +0 -1
  740. package/dist/ui/components/index.d.ts.map +0 -1
  741. package/dist/ui/constants/figures.d.ts.map +0 -1
  742. package/dist/ui/duration-format.d.ts.map +0 -1
  743. package/dist/ui/duration-summary.d.ts.map +0 -1
  744. package/dist/ui/error-item.d.ts.map +0 -1
  745. package/dist/ui/goal-events.d.ts.map +0 -1
  746. package/dist/ui/goal-summary.d.ts.map +0 -1
  747. package/dist/ui/hooks/useAgentLoop.d.ts.map +0 -1
  748. package/dist/ui/hooks/useBlink.d.ts.map +0 -1
  749. package/dist/ui/hooks/useChatLayoutMeasurements.d.ts.map +0 -1
  750. package/dist/ui/hooks/useContextCompaction.d.ts.map +0 -1
  751. package/dist/ui/hooks/useDoublePress.d.ts.map +0 -1
  752. package/dist/ui/hooks/useMinDisplayTime.d.ts.map +0 -1
  753. package/dist/ui/hooks/useModeState.d.ts.map +0 -1
  754. package/dist/ui/hooks/usePixelFixFlow.d.ts.map +0 -1
  755. package/dist/ui/hooks/useSessionManager.d.ts.map +0 -1
  756. package/dist/ui/hooks/useSessionPersistence.d.ts.map +0 -1
  757. package/dist/ui/hooks/useSlashCommands.d.ts.map +0 -1
  758. package/dist/ui/hooks/useTaskPickerController.d.ts.map +0 -1
  759. package/dist/ui/hooks/useTerminalSize.d.ts.map +0 -1
  760. package/dist/ui/hooks/useTerminalTitle.d.ts.map +0 -1
  761. package/dist/ui/hooks/useTranscriptHistory.d.ts.map +0 -1
  762. package/dist/ui/hooks/useTranscriptScroll.d.ts.map +0 -1
  763. package/dist/ui/item-helpers.d.ts.map +0 -1
  764. package/dist/ui/layout-decisions.d.ts.map +0 -1
  765. package/dist/ui/live-area-height.d.ts.map +0 -1
  766. package/dist/ui/live-item-flush.d.ts.map +0 -1
  767. package/dist/ui/login.d.ts.map +0 -1
  768. package/dist/ui/mcp.d.ts.map +0 -1
  769. package/dist/ui/pixel.d.ts.map +0 -1
  770. package/dist/ui/prompt-routing.d.ts.map +0 -1
  771. package/dist/ui/render.d.ts.map +0 -1
  772. package/dist/ui/session-summary.d.ts.map +0 -1
  773. package/dist/ui/sessions.d.ts.map +0 -1
  774. package/dist/ui/spinner-frames.d.ts.map +0 -1
  775. package/dist/ui/stores/create-store.d.ts.map +0 -1
  776. package/dist/ui/stores/index.d.ts.map +0 -1
  777. package/dist/ui/stores/taskbar-store.d.ts.map +0 -1
  778. package/dist/ui/stores/transcript-scroll-store.d.ts.map +0 -1
  779. package/dist/ui/submit-prompt-command.d.ts.map +0 -1
  780. package/dist/ui/submit-slash-commands.d.ts.map +0 -1
  781. package/dist/ui/terminal-history-format.d.ts.map +0 -1
  782. package/dist/ui/terminal-history-spacing.d.ts.map +0 -1
  783. package/dist/ui/terminal-history-status-renderers.d.ts.map +0 -1
  784. package/dist/ui/terminal-history.d.ts.map +0 -1
  785. package/dist/ui/testing/screen-recorder.d.ts.map +0 -1
  786. package/dist/ui/theme/detect-theme.d.ts.map +0 -1
  787. package/dist/ui/theme/theme.d.ts.map +0 -1
  788. package/dist/ui/thinking-level.d.ts.map +0 -1
  789. package/dist/ui/tool-group-summary.d.ts.map +0 -1
  790. package/dist/ui/tool-line-summary.d.ts.map +0 -1
  791. package/dist/ui/transcript/MiscRows.d.ts.map +0 -1
  792. package/dist/ui/transcript/StatusRow.d.ts.map +0 -1
  793. package/dist/ui/transcript/ToolRows.d.ts.map +0 -1
  794. package/dist/ui/transcript/TranscriptItemFrame.d.ts.map +0 -1
  795. package/dist/ui/transcript/TranscriptRenderer.d.ts.map +0 -1
  796. package/dist/ui/transcript/presentation.d.ts.map +0 -1
  797. package/dist/ui/transcript/spacing.d.ts.map +0 -1
  798. package/dist/ui/transcript/tool-presentation.d.ts.map +0 -1
  799. package/dist/ui/transcript/transcript-lines.d.ts.map +0 -1
  800. package/dist/ui/utils/assistant-stream-split.d.ts.map +0 -1
  801. package/dist/ui/utils/highlight.d.ts.map +0 -1
  802. package/dist/ui/utils/hyperlink.d.ts.map +0 -1
  803. package/dist/ui/utils/latex-to-unicode.d.ts.map +0 -1
  804. package/dist/ui/utils/markdown-cache.d.ts.map +0 -1
  805. package/dist/ui/utils/markdown-renderer.d.ts.map +0 -1
  806. package/dist/ui/utils/markdown-table.d.ts.map +0 -1
  807. package/dist/ui/utils/signal.d.ts.map +0 -1
  808. package/dist/ui/utils/supports-hyperlinks.d.ts.map +0 -1
  809. package/dist/ui/utils/table-text.d.ts.map +0 -1
  810. package/dist/ui/utils/terminal-graphics.d.ts.map +0 -1
  811. package/dist/ui/utils/terminal-input.d.ts.map +0 -1
  812. package/dist/ui/utils/text-utils.d.ts.map +0 -1
  813. package/dist/ui/utils/token-to-ansi.d.ts.map +0 -1
  814. package/dist/ui/utils/user-message-display.d.ts.map +0 -1
  815. package/dist/ui/utils/word-diff.d.ts.map +0 -1
  816. package/dist/utils/error-handler.d.ts.map +0 -1
  817. package/dist/utils/format.d.ts.map +0 -1
  818. package/dist/utils/git.d.ts.map +0 -1
  819. package/dist/utils/github.d.ts.map +0 -1
  820. package/dist/utils/http-body.d.ts.map +0 -1
  821. package/dist/utils/image.d.ts.map +0 -1
  822. package/dist/utils/open-browser.d.ts.map +0 -1
  823. package/dist/utils/plan-steps.d.ts.map +0 -1
  824. package/dist/utils/process.d.ts.map +0 -1
  825. package/dist/utils/prompt-enhancer.d.ts.map +0 -1
  826. package/dist/utils/shell.d.ts.map +0 -1
  827. package/dist/utils/sound.d.ts.map +0 -1
  828. package/dist/utils/text.d.ts.map +0 -1
@@ -0,0 +1,450 @@
1
+ /**
2
+ * Internal-only session diagnostics — NOT a public feature.
3
+ *
4
+ * Enabled only when the internal flag is set (env `EZ_INTERNAL=1` or
5
+ * `~/.ezcoder/internal.json` containing `{"diagnostics": true}`). When disabled,
6
+ * nothing is recorded, no tool is registered, and `/diagnose` does not exist,
7
+ * so the public tool list and prompt stay byte-identical.
8
+ *
9
+ * What it captures per session (counters and timings only — never prompt
10
+ * text, file contents, or credentials):
11
+ * - per-turn usage + timing (reuses TurnMetricPayload, already persisted)
12
+ * - per-tool call/error/duration stats and clustered error digests
13
+ * - identical-call repeats (same tool + same args ≥ 3×)
14
+ * - truncation/continuation events, model switches, compactions
15
+ *
16
+ * Consumers: the `session_stats` tool (live, agent-facing) and the
17
+ * `/diagnose` slash command (cross-session aggregate, agent-facing).
18
+ */
19
+ import fs from "node:fs";
20
+ import path from "node:path";
21
+ import { createHash, randomUUID } from "node:crypto";
22
+ import { getAppPaths } from "../config.js";
23
+ let enabledCache;
24
+ /** Internal mode gate. Env wins; otherwise `~/.ezcoder/internal.json` must set
25
+ * `diagnostics: true`. Result is cached for the process lifetime. */
26
+ export function isInternalDiagnosticsEnabled() {
27
+ if (enabledCache !== undefined)
28
+ return enabledCache;
29
+ const env = process.env.EZ_INTERNAL;
30
+ if (env && ["1", "true", "yes"].includes(env.toLowerCase())) {
31
+ enabledCache = true;
32
+ return true;
33
+ }
34
+ try {
35
+ const file = path.join(getAppPaths().agentDir, "internal.json");
36
+ const parsed = JSON.parse(fs.readFileSync(file, "utf8"));
37
+ enabledCache = parsed?.diagnostics === true;
38
+ }
39
+ catch {
40
+ enabledCache = false;
41
+ }
42
+ return enabledCache;
43
+ }
44
+ /** Test seam: reset the cached flag after mutating env/file state. */
45
+ export function resetInternalDiagnosticsCacheForTests() {
46
+ enabledCache = undefined;
47
+ }
48
+ export function diagnosticsSessionsDir() {
49
+ return (process.env.EZ_DIAGNOSTICS_DIR ?? path.join(getAppPaths().agentDir, "diagnostics", "sessions"));
50
+ }
51
+ // ── Recorder ───────────────────────────────────────────────
52
+ const REPEAT_THRESHOLD = 3;
53
+ const MAX_ERROR_CLUSTERS = 8;
54
+ const MAX_REPEATED_KEYS = 16;
55
+ const MAX_TURNS_KEPT = 500;
56
+ function argsDigest(args) {
57
+ if (!args)
58
+ return "";
59
+ const json = JSON.stringify(args);
60
+ return json.length > 80 ? `${createHash("sha1").update(json).digest("hex").slice(0, 12)}…` : json;
61
+ }
62
+ /** True when a tool "succeeded" but its result text says it failed: bash
63
+ * prefixes non-zero exits with "Exit code: N", and most tools prefix
64
+ * rejections/refusals with "Error:". Empty-grep "no matches" is a legitimate
65
+ * answer, not a failure, so it stays clean. */
66
+ function isSoftFailure(result) {
67
+ return /^Exit code: [1-9]/m.test(result) || /^Error:/m.test(result);
68
+ }
69
+ /** Collapse an error result into a stable digest: first line, digits and
70
+ * quoted paths normalized, so 50 identical failures cluster into one row. */
71
+ function errorDigest(result) {
72
+ const firstLine = result.split("\n").find((l) => l.trim().length > 0) ?? "";
73
+ return firstLine
74
+ .replace(/\d+/g, "N")
75
+ .replace(/"[^"]+"/g, '"…"')
76
+ .replace(/'[^']+'/g, "'…'")
77
+ .slice(0, 120);
78
+ }
79
+ export class SessionDiagnosticsRecorder {
80
+ record;
81
+ pendingCalls = new Map();
82
+ repeatCounts = new Map();
83
+ clusterCounts = new Map();
84
+ unsubscribers = [];
85
+ fallbackSessionId;
86
+ getSessionId;
87
+ constructor(opts) {
88
+ this.getSessionId = () => typeof opts.sessionId === "function" ? opts.sessionId() : opts.sessionId;
89
+ this.record = {
90
+ version: 1,
91
+ sessionId: this.getSessionId(),
92
+ cwd: opts.cwd,
93
+ provider: opts.provider,
94
+ model: opts.model,
95
+ startedAt: Date.now(),
96
+ modelSwitches: [],
97
+ turns: [],
98
+ toolStats: {},
99
+ errorClusters: [],
100
+ repeats: [],
101
+ truncations: [],
102
+ compactions: [],
103
+ totals: {
104
+ turns: 0,
105
+ toolCalls: 0,
106
+ toolErrors: 0,
107
+ inputTokens: 0,
108
+ outputTokens: 0,
109
+ cacheRead: 0,
110
+ cacheWrite: 0,
111
+ },
112
+ };
113
+ this.dir = opts.dir;
114
+ }
115
+ dir;
116
+ /** Subscribe to the session bus. Safe to call once per session. */
117
+ attach(bus) {
118
+ this.unsubscribers.push(bus.on("tool_call_start", ({ toolCallId, name, args }) => {
119
+ this.pendingCalls.set(toolCallId, { name, argsKey: argsDigest(args) });
120
+ }));
121
+ this.unsubscribers.push(bus.on("tool_call_end", ({ toolCallId, result, isError, durationMs, invalidArgAttempt }) => {
122
+ const pending = this.pendingCalls.get(toolCallId);
123
+ this.pendingCalls.delete(toolCallId);
124
+ const name = pending?.name ?? "unknown";
125
+ const stat = (this.record.toolStats[name] ??= {
126
+ calls: 0,
127
+ errors: 0,
128
+ softErrors: 0,
129
+ totalMs: 0,
130
+ maxMs: 0,
131
+ invalidArgAttempts: 0,
132
+ truncatedResults: 0,
133
+ });
134
+ stat.calls += 1;
135
+ stat.totalMs += durationMs;
136
+ stat.maxMs = Math.max(stat.maxMs, durationMs);
137
+ if (invalidArgAttempt)
138
+ stat.invalidArgAttempts += 1;
139
+ if (/Full output saved to|\[truncated/i.test(result))
140
+ stat.truncatedResults += 1;
141
+ this.record.totals.toolCalls += 1;
142
+ const failed = isError || isSoftFailure(result);
143
+ if (isError)
144
+ stat.errors += 1;
145
+ else if (failed)
146
+ stat.softErrors += 1;
147
+ if (failed) {
148
+ this.record.totals.toolErrors += 1;
149
+ const digest = errorDigest(result);
150
+ const cluster = this.clusterCounts.get(digest) ?? {
151
+ count: 0,
152
+ sample: result.slice(0, 200),
153
+ };
154
+ cluster.count += 1;
155
+ this.clusterCounts.set(digest, cluster);
156
+ }
157
+ if (pending) {
158
+ const key = `${name}::${pending.argsKey}`;
159
+ const entry = this.repeatCounts.get(key) ?? {
160
+ tool: name,
161
+ argsDigest: pending.argsKey,
162
+ count: 0,
163
+ };
164
+ entry.count += 1;
165
+ this.repeatCounts.set(key, entry);
166
+ }
167
+ }));
168
+ this.unsubscribers.push(bus.on("model_change", ({ provider, model }) => {
169
+ if (model !== this.record.model || provider !== this.record.provider) {
170
+ this.record.modelSwitches.push({ at: Date.now(), provider, model });
171
+ this.record.provider = provider;
172
+ this.record.model = model;
173
+ }
174
+ }));
175
+ this.unsubscribers.push(bus.on("truncated", ({ reason, continued }) => {
176
+ this.record.truncations.push({ reason, continued });
177
+ }));
178
+ this.unsubscribers.push(bus.on("compaction_end", ({ compacted, originalCount, newCount }) => {
179
+ if (compacted)
180
+ this.record.compactions.push({ originalCount, newCount });
181
+ }));
182
+ }
183
+ /** Called from AgentSession.persistTurnMetric — the authoritative per-turn
184
+ * usage/timing source. Also the incremental flush point. */
185
+ recordTurnMetric(metric) {
186
+ this.record.totals.turns += 1;
187
+ this.record.totals.inputTokens += metric.usage.inputTokens;
188
+ this.record.totals.outputTokens += metric.usage.outputTokens;
189
+ this.record.totals.cacheRead += metric.usage.cacheRead ?? 0;
190
+ this.record.totals.cacheWrite += metric.usage.cacheWrite ?? 0;
191
+ this.record.turns.push({
192
+ turn: metric.turn,
193
+ stopReason: metric.stopReason,
194
+ inputTokens: metric.usage.inputTokens,
195
+ outputTokens: metric.usage.outputTokens,
196
+ cacheRead: metric.usage.cacheRead,
197
+ cacheWrite: metric.usage.cacheWrite,
198
+ ttftMs: metric.timing.ttftMs,
199
+ providerDurationMs: metric.timing.providerDurationMs,
200
+ });
201
+ if (this.record.turns.length > MAX_TURNS_KEPT)
202
+ this.record.turns.splice(0, this.record.turns.length - MAX_TURNS_KEPT);
203
+ void this.flush();
204
+ }
205
+ materializeDerived() {
206
+ this.record.errorClusters = [...this.clusterCounts.entries()]
207
+ .map(([digest, { count, sample }]) => ({ digest, count, sample }))
208
+ .sort((a, b) => b.count - a.count)
209
+ .slice(0, MAX_ERROR_CLUSTERS);
210
+ this.record.repeats = [...this.repeatCounts.values()]
211
+ .filter((e) => e.count >= REPEAT_THRESHOLD)
212
+ .sort((a, b) => b.count - a.count)
213
+ .slice(0, MAX_REPEATED_KEYS);
214
+ }
215
+ filePath() {
216
+ return path.join(this.dir ?? diagnosticsSessionsDir(), `${this.record.sessionId}.json`);
217
+ }
218
+ /** Best-effort incremental write — a diagnostics write failure must never
219
+ * affect the session. Synchronous ON PURPOSE: the record is a few KB written
220
+ * once per turn (negligible next to the network call it follows), and a sync
221
+ * write cannot be lost when a headless host exits immediately after the
222
+ * final turn_end — an async fire-and-forget flush racing process exit was
223
+ * silently dropping the whole session's record. */
224
+ flush() {
225
+ try {
226
+ this.materializeDerived();
227
+ this.record.sessionId = this.getSessionId();
228
+ // Transient hosts (json sub-agent mode) never assign a session id —
229
+ // fall back to a stable generated one so the record still lands under a
230
+ // real filename instead of `.json`.
231
+ if (!this.record.sessionId) {
232
+ this.fallbackSessionId ??= randomUUID();
233
+ this.record.sessionId = this.fallbackSessionId;
234
+ }
235
+ const file = this.filePath();
236
+ fs.mkdirSync(path.dirname(file), { recursive: true });
237
+ fs.writeFileSync(file, JSON.stringify(this.record), "utf8");
238
+ }
239
+ catch {
240
+ // Swallow: internal diagnostics are strictly best-effort.
241
+ }
242
+ return Promise.resolve();
243
+ }
244
+ async finalize() {
245
+ this.record.endedAt = Date.now();
246
+ for (const off of this.unsubscribers)
247
+ off();
248
+ this.unsubscribers = [];
249
+ await this.flush();
250
+ }
251
+ getRecord() {
252
+ return this.record;
253
+ }
254
+ // Test accessors — fresh derived state, independent of flush timing.
255
+ snapshotForTests() {
256
+ this.materializeDerived();
257
+ return JSON.parse(JSON.stringify(this.record));
258
+ }
259
+ repeatsForTests() {
260
+ this.materializeDerived();
261
+ return [...this.record.repeats];
262
+ }
263
+ errorClustersForTests() {
264
+ this.materializeDerived();
265
+ return [...this.record.errorClusters];
266
+ }
267
+ /** Compact agent-readable summary of THIS session (for session_stats). */
268
+ summary() {
269
+ return summarizeRecord(this.record);
270
+ }
271
+ }
272
+ // ── Summaries + aggregation ─────────────────────────────────
273
+ function pct(part, whole) {
274
+ return whole > 0 ? `${((100 * part) / whole).toFixed(0)}%` : "—";
275
+ }
276
+ function fmtMs(ms) {
277
+ return ms >= 1000 ? `${(ms / 1000).toFixed(1)}s` : `${Math.round(ms)}ms`;
278
+ }
279
+ export function summarizeRecord(r) {
280
+ const lines = [];
281
+ const t = r.totals;
282
+ const promptTotal = t.inputTokens + t.cacheRead;
283
+ lines.push(`Session ${r.sessionId} (${r.provider}/${r.model}) — ${t.turns} turns, ${t.toolCalls} tool calls (${t.toolErrors} errors).`);
284
+ lines.push(`Tokens: ${t.inputTokens + t.cacheRead} prompt (${t.cacheRead} cached, ${pct(t.cacheRead, promptTotal)} reuse), ${t.outputTokens} output.`);
285
+ if (r.modelSwitches.length) {
286
+ lines.push(`Model switches: ${r.modelSwitches.length} (each likely rebuilds the cached prefix).`);
287
+ }
288
+ const ttfts = r.turns.map((x) => x.ttftMs).filter((x) => typeof x === "number");
289
+ if (ttfts.length) {
290
+ const sorted = [...ttfts].sort((a, b) => a - b);
291
+ lines.push(`TTFT median ${fmtMs(sorted[Math.floor(sorted.length / 2)])}, worst ${fmtMs(sorted[sorted.length - 1])}.`);
292
+ }
293
+ const toolLines = Object.entries(r.toolStats)
294
+ .sort((a, b) => b[1].totalMs - a[1].totalMs)
295
+ .slice(0, 6)
296
+ .map(([name, s]) => {
297
+ const failed = s.errors + (s.softErrors ?? 0);
298
+ const err = failed > 0 ? `, ${failed} failed (${pct(failed, s.calls)})` : "";
299
+ const bad = failed > 0 && failed / s.calls >= 0.25 ? " ⚠" : "";
300
+ return `- ${name}: ${s.calls} calls, ${fmtMs(s.totalMs)} total, ${fmtMs(s.maxMs)} max${err}${bad}`;
301
+ });
302
+ if (toolLines.length)
303
+ lines.push("Tools (by total time):", ...toolLines);
304
+ if (r.repeats.length) {
305
+ lines.push(`Repeated identical calls: ${r.repeats.map((x) => `${x.tool}×${x.count}`).join(", ")} — usually a stuck pattern.`);
306
+ }
307
+ for (const c of r.errorClusters.slice(0, 3)) {
308
+ lines.push(`Top error (${c.count}×): ${c.digest}`);
309
+ }
310
+ if (r.truncations.length) {
311
+ const continued = r.truncations.filter((x) => x.continued).length;
312
+ lines.push(`Output cut off ${r.truncations.length}× (${continued} auto-continued).`);
313
+ }
314
+ if (r.compactions.length) {
315
+ lines.push(`Compactions: ${r.compactions.length}× (${r.compactions
316
+ .map((c) => `${c.originalCount}→${c.newCount} msgs`)
317
+ .join(", ")}).`);
318
+ }
319
+ return lines.join("\n");
320
+ }
321
+ /** Read the newest N session records and produce a ranked, agent-readable
322
+ * findings report. Findings are ordered by cost × frequency, most urgent
323
+ * first; "what works" is included so regressions are visible. */
324
+ export function aggregateRecentDiagnostics(limit = 20, dir) {
325
+ const root = dir ?? diagnosticsSessionsDir();
326
+ let files;
327
+ try {
328
+ files = fs
329
+ .readdirSync(root)
330
+ .filter((f) => f.endsWith(".json"))
331
+ .map((f) => path.join(root, f))
332
+ .sort((a, b) => fs.statSync(b).mtimeMs - fs.statSync(a).mtimeMs)
333
+ .slice(0, limit);
334
+ }
335
+ catch {
336
+ return { sessionCount: 0, report: "No session diagnostics found (is internal mode enabled?)." };
337
+ }
338
+ const records = [];
339
+ for (const f of files) {
340
+ try {
341
+ const parsed = JSON.parse(fs.readFileSync(f, "utf8"));
342
+ if (parsed?.version === 1)
343
+ records.push(parsed);
344
+ }
345
+ catch {
346
+ // Skip corrupt files — diagnostics must never hard-fail.
347
+ }
348
+ }
349
+ if (!records.length) {
350
+ return { sessionCount: 0, report: "No valid session diagnostics records found." };
351
+ }
352
+ const findings = [];
353
+ const toolAgg = new Map();
354
+ const clusterAgg = new Map();
355
+ const repeatAgg = new Map();
356
+ let input = 0;
357
+ let cacheRead = 0;
358
+ let toolCalls = 0;
359
+ let toolErrors = 0;
360
+ let truncations = 0;
361
+ let compactions = 0;
362
+ let modelSwitches = 0;
363
+ const ttfts = [];
364
+ for (const r of records) {
365
+ input += r.totals.inputTokens;
366
+ cacheRead += r.totals.cacheRead;
367
+ toolCalls += r.totals.toolCalls;
368
+ toolErrors += r.totals.toolErrors;
369
+ truncations += r.truncations.length;
370
+ compactions += r.compactions.length;
371
+ modelSwitches += r.modelSwitches.length;
372
+ for (const x of r.turns)
373
+ if (typeof x.ttftMs === "number")
374
+ ttfts.push(x.ttftMs);
375
+ for (const [name, s] of Object.entries(r.toolStats)) {
376
+ const agg = toolAgg.get(name) ?? { calls: 0, errors: 0, maxMs: 0, totalMs: 0 };
377
+ agg.calls += s.calls;
378
+ agg.errors += s.errors + (s.softErrors ?? 0);
379
+ agg.maxMs = Math.max(agg.maxMs, s.maxMs);
380
+ agg.totalMs += s.totalMs;
381
+ toolAgg.set(name, agg);
382
+ }
383
+ for (const c of r.errorClusters)
384
+ clusterAgg.set(c.digest, (clusterAgg.get(c.digest) ?? 0) + c.count);
385
+ for (const rep of r.repeats) {
386
+ const key = `${rep.tool}::${rep.argsDigest}`;
387
+ repeatAgg.set(key, (repeatAgg.get(key) ?? 0) + rep.count);
388
+ }
389
+ }
390
+ const promptTotal = input + cacheRead;
391
+ findings.push(`${records.length} sessions — ${toolCalls} tool calls, ${toolErrors} errors (${pct(toolErrors, toolCalls)}), cache reuse ${pct(cacheRead, promptTotal)} across ${(promptTotal / 1000).toFixed(0)}k prompt tokens.`);
392
+ // 1. Error clusters — reliability, ranked by count.
393
+ const clusters = [...clusterAgg.entries()].sort((a, b) => b[1] - a[1]).slice(0, 5);
394
+ if (clusters.length) {
395
+ findings.push("CHECK OUT — recurring errors:", ...clusters.map(([digest, n]) => `- ${n}× ${digest}`));
396
+ }
397
+ // 2. High-failure-rate tools.
398
+ const flaky = [...toolAgg.entries()]
399
+ .filter(([, s]) => s.calls >= 5 && s.errors / s.calls >= 0.25)
400
+ .sort((a, b) => b[1].errors / b[1].calls - a[1].errors / a[1].calls);
401
+ if (flaky.length) {
402
+ findings.push("CHECK OUT — tools failing ≥25% of calls:", ...flaky.map(([name, s]) => `- ${name}: ${s.errors}/${s.calls} (${pct(s.errors, s.calls)})`));
403
+ }
404
+ // 3. Slow tools — worst-case duration.
405
+ const slow = [...toolAgg.entries()]
406
+ .filter(([, s]) => s.maxMs >= 30_000)
407
+ .sort((a, b) => b[1].maxMs - a[1].maxMs);
408
+ if (slow.length) {
409
+ findings.push("SPEED — tools with ≥30s worst-case calls:", ...slow.map(([name, s]) => `- ${name}: max ${fmtMs(s.maxMs)}, total ${fmtMs(s.totalMs)}`));
410
+ }
411
+ // 4. Repeats — wasted turns.
412
+ const repeats = [...repeatAgg.entries()].sort((a, b) => b[1] - a[1]).slice(0, 5);
413
+ if (repeats.length) {
414
+ findings.push("WASTE — identical calls repeated ≥3× (stuck patterns):", ...repeats.map(([key]) => `- ${key.replace("::", " ")}`));
415
+ }
416
+ // 5. Cache + compaction pressure.
417
+ if (modelSwitches > 0) {
418
+ findings.push(`COST — ${modelSwitches} mid-session model switch(es): each one can rebuild the cached prefix and re-bill the whole context.`);
419
+ }
420
+ if (compactions > 0)
421
+ findings.push(`COST — ${compactions} compaction(s) across these sessions.`);
422
+ if (truncations > 0)
423
+ findings.push(`RELIABILITY — output cut off ${truncations}× (output-token limits).`);
424
+ if (ttfts.length) {
425
+ const sorted = [...ttfts].sort((a, b) => a - b);
426
+ findings.push(`SPEED — TTFT median ${fmtMs(sorted[Math.floor(sorted.length / 2)])}, p95 ${fmtMs(sorted[Math.floor(sorted.length * 0.95)])} over ${ttfts.length} turns.`);
427
+ }
428
+ // What's working — the counterfactual baseline.
429
+ const healthy = [...toolAgg.entries()].filter(([, s]) => s.calls >= 5 && s.errors === 0);
430
+ if (healthy.length) {
431
+ findings.push(`WORKING — zero-error tools (≥5 calls): ${healthy.map(([n]) => n).join(", ")}.`);
432
+ }
433
+ return { sessionCount: records.length, report: findings.join("\n") };
434
+ }
435
+ // ── /diagnose slash command ────────────────────────────────
436
+ /** Internal-only command; registered exclusively when the internal flag is on. */
437
+ export function createDiagnoseCommand() {
438
+ return {
439
+ name: "diagnose",
440
+ aliases: ["diag"],
441
+ description: "Internal: aggregate recent session diagnostics into ranked findings",
442
+ usage: "/diagnose [sessions]",
443
+ execute(args) {
444
+ const parsed = Number.parseInt(args.trim(), 10);
445
+ const limit = Number.isFinite(parsed) && parsed > 0 ? Math.min(parsed, 100) : 20;
446
+ return aggregateRecentDiagnostics(limit).report;
447
+ },
448
+ };
449
+ }
450
+ //# sourceMappingURL=internal-diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-diagnostics.js","sourceRoot":"","sources":["../../src/core/internal-diagnostics.ts"],"names":[],"mappings":"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"}
@@ -40,4 +40,3 @@ export declare function detectProjectStack(cwd: string): string;
40
40
  * when the active set grows, never when it merely changes order.
41
41
  */
42
42
  export declare function isStrictSuperset(next: Set<LanguageId>, prev: Set<LanguageId>): boolean;
43
- //# sourceMappingURL=language-detector.d.ts.map
@@ -47,4 +47,3 @@ export declare function removeCustomEndpoint(id: string, options?: LocalEndpoint
47
47
  * Called after each scan, so a fresh install works with zero setup.
48
48
  */
49
49
  export declare function syncEndpointCredentials(endpoints: readonly LocalEndpoint[], options?: LocalEndpointStoreOptions): Promise<void>;
50
- //# sourceMappingURL=local-endpoint-store.d.ts.map
@@ -15,4 +15,3 @@ export declare function initLogger(filePath: string, meta?: {
15
15
  * Subscribe to EventBus events and log them. Used by print/json modes.
16
16
  */
17
17
  export declare function attachToEventBus(bus: EventBus): void;
18
- //# sourceMappingURL=logger.d.ts.map
@@ -87,4 +87,3 @@ export declare class CycleDetector {
87
87
  export declare function detectTextRepetition(text: string): boolean;
88
88
  export declare function evaluateLoopBreak(stats: LoopBreakStats): LoopBreakDecision;
89
89
  export declare function buildLoopBreakMessage(reasons: readonly string[], final?: boolean): Message;
90
- //# sourceMappingURL=loop-breaker.d.ts.map
@@ -104,6 +104,8 @@ export declare class LspClient {
104
104
  private readonly conn;
105
105
  private readonly versions;
106
106
  private readonly published;
107
+ private readonly diagnosticTails;
108
+ private readonly uncertainDiagnostics;
107
109
  private waiters;
108
110
  private hasPullDiagnostics;
109
111
  /** Server capabilities from `initialize`; undefined until the handshake lands. */
@@ -167,11 +169,12 @@ export declare class LspClient {
167
169
  * report computed against THIS content rather than a stale one.
168
170
  */
169
171
  syncDocument(filePath: string, content: string): string;
170
- /**
171
- * Current diagnostics for `uri`, racing the push channel (next
172
- * publishDiagnostics after the last sync) against a pull-diagnostics poll
173
- * loop when the server supports LSP 3.17 pull. Returns null on timeout.
174
- */
172
+ /** Serialize document checks across sessions sharing this server, including unversioned publishers. */
173
+ withDocumentDiagnostics<T>(filePath: string, work: () => Promise<T>): Promise<T>;
174
+ documentVersion(uri: string): number | undefined;
175
+ /** After a timeout, an unversioned empty publish may belong to an earlier edit. */
176
+ hasUncertainDiagnostics(uri: string): boolean;
177
+ /** Race push against supported pull requests, rejecting superseded document versions. */
175
178
  collectDiagnostics(uri: string, timeoutMs: number): Promise<LspDiagnostic[] | null>;
176
179
  /**
177
180
  * Graceful shutdown/exit handshake with SIGKILL fallback. Synchronous so it
@@ -197,4 +200,3 @@ export declare class LspClient {
197
200
  private waitForPublish;
198
201
  private pullDiagnostics;
199
202
  }
200
- //# sourceMappingURL=client.d.ts.map