@prestyj/cli 5.30.0 → 5.30.2

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 (334) hide show
  1. package/README.md +54 -39
  2. package/assets/skills/bulletproof/SKILL.md +1 -1
  3. package/assets/skills/clarify/SKILL.md +1 -1
  4. package/assets/skills/code-review/SKILL.md +1 -1
  5. package/assets/skills/compliance-guard/SKILL.md +1 -1
  6. package/assets/skills/durable/SKILL.md +1 -1
  7. package/assets/skills/evidence-led-ui/SKILL.md +1 -1
  8. package/assets/skills/lean/SKILL.md +1 -1
  9. package/assets/skills/refactoring/SKILL.md +1 -1
  10. package/assets/skills/root-cause/SKILL.md +1 -1
  11. package/assets/skills/shared-language/SKILL.md +1 -1
  12. package/assets/skills/tdd/SKILL.md +1 -1
  13. package/dist/app-sidecar/app-settings.d.ts +63 -0
  14. package/dist/app-sidecar/app-settings.js +147 -0
  15. package/dist/app-sidecar/app-settings.js.map +1 -0
  16. package/dist/app-sidecar/attachments.d.ts +11 -0
  17. package/dist/app-sidecar/attachments.js +47 -0
  18. package/dist/app-sidecar/attachments.js.map +1 -0
  19. package/dist/app-sidecar/auth-routes.d.ts +3 -0
  20. package/dist/app-sidecar/auth-routes.js +293 -0
  21. package/dist/app-sidecar/auth-routes.js.map +1 -0
  22. package/dist/app-sidecar/autopilot-runner.d.ts +62 -0
  23. package/dist/app-sidecar/autopilot-runner.js +373 -0
  24. package/dist/app-sidecar/autopilot-runner.js.map +1 -0
  25. package/dist/app-sidecar/file-search.d.ts +15 -0
  26. package/dist/app-sidecar/file-search.js +103 -0
  27. package/dist/app-sidecar/file-search.js.map +1 -0
  28. package/dist/app-sidecar/hf-pull-manager.d.ts +20 -0
  29. package/dist/app-sidecar/hf-pull-manager.js +224 -0
  30. package/dist/app-sidecar/hf-pull-manager.js.map +1 -0
  31. package/dist/app-sidecar/history-routes.d.ts +3 -0
  32. package/dist/app-sidecar/history-routes.js +375 -0
  33. package/dist/app-sidecar/history-routes.js.map +1 -0
  34. package/dist/app-sidecar/history.d.ts +67 -0
  35. package/dist/app-sidecar/history.js +23 -0
  36. package/dist/app-sidecar/history.js.map +1 -0
  37. package/dist/app-sidecar/http.d.ts +5 -0
  38. package/dist/app-sidecar/http.js +27 -0
  39. package/dist/app-sidecar/http.js.map +1 -0
  40. package/dist/app-sidecar/integration-routes.d.ts +3 -0
  41. package/dist/app-sidecar/integration-routes.js +286 -0
  42. package/dist/app-sidecar/integration-routes.js.map +1 -0
  43. package/dist/app-sidecar/json-mode.d.ts +10 -0
  44. package/dist/app-sidecar/json-mode.js +73 -0
  45. package/dist/app-sidecar/json-mode.js.map +1 -0
  46. package/dist/app-sidecar/keep-awake.d.ts +4 -0
  47. package/dist/app-sidecar/keep-awake.js +5 -0
  48. package/dist/app-sidecar/keep-awake.js.map +1 -0
  49. package/dist/app-sidecar/mcp-routes.d.ts +3 -0
  50. package/dist/app-sidecar/mcp-routes.js +185 -0
  51. package/dist/app-sidecar/mcp-routes.js.map +1 -0
  52. package/dist/app-sidecar/mcp-rows.d.ts +31 -0
  53. package/dist/app-sidecar/mcp-rows.js +77 -0
  54. package/dist/app-sidecar/mcp-rows.js.map +1 -0
  55. package/dist/app-sidecar/nolan-context.d.ts +20 -0
  56. package/dist/app-sidecar/nolan-context.js +55 -0
  57. package/dist/app-sidecar/nolan-context.js.map +1 -0
  58. package/dist/app-sidecar/progress-manager.d.ts +10 -0
  59. package/dist/app-sidecar/progress-manager.js +116 -0
  60. package/dist/app-sidecar/progress-manager.js.map +1 -0
  61. package/dist/app-sidecar/prompt-routes.d.ts +3 -0
  62. package/dist/app-sidecar/prompt-routes.js +355 -0
  63. package/dist/app-sidecar/prompt-routes.js.map +1 -0
  64. package/dist/app-sidecar/repo-polls.d.ts +18 -0
  65. package/dist/app-sidecar/repo-polls.js +45 -0
  66. package/dist/app-sidecar/repo-polls.js.map +1 -0
  67. package/dist/app-sidecar/route-context.d.ts +147 -0
  68. package/dist/app-sidecar/route-context.js +2 -0
  69. package/dist/app-sidecar/route-context.js.map +1 -0
  70. package/dist/app-sidecar/run-control-routes.d.ts +3 -0
  71. package/dist/app-sidecar/run-control-routes.js +437 -0
  72. package/dist/app-sidecar/run-control-routes.js.map +1 -0
  73. package/dist/app-sidecar/session-routes.d.ts +3 -0
  74. package/dist/app-sidecar/session-routes.js +115 -0
  75. package/dist/app-sidecar/session-routes.js.map +1 -0
  76. package/dist/app-sidecar/session-types.d.ts +39 -0
  77. package/dist/app-sidecar/session-types.js +5 -0
  78. package/dist/app-sidecar/session-types.js.map +1 -0
  79. package/dist/app-sidecar/task-routes.d.ts +3 -0
  80. package/dist/app-sidecar/task-routes.js +232 -0
  81. package/dist/app-sidecar/task-routes.js.map +1 -0
  82. package/dist/app-sidecar/usage.d.ts +19 -0
  83. package/dist/app-sidecar/usage.js +153 -0
  84. package/dist/app-sidecar/usage.js.map +1 -0
  85. package/dist/app-sidecar/workspace-routes.d.ts +3 -0
  86. package/dist/app-sidecar/workspace-routes.js +374 -0
  87. package/dist/app-sidecar/workspace-routes.js.map +1 -0
  88. package/dist/app-sidecar.js +541 -3971
  89. package/dist/app-sidecar.js.map +1 -1
  90. package/dist/chat-agents/jiwa.js +2 -0
  91. package/dist/chat-agents/jiwa.js.map +1 -1
  92. package/dist/chat-agents/memory.js +2 -0
  93. package/dist/chat-agents/memory.js.map +1 -1
  94. package/dist/cli/auth.js +13 -9
  95. package/dist/cli/auth.js.map +1 -1
  96. package/dist/cli.js +10 -11
  97. package/dist/cli.js.map +1 -1
  98. package/dist/config.js +1 -1
  99. package/dist/core/acceptance-checks.js +3 -9
  100. package/dist/core/acceptance-checks.js.map +1 -1
  101. package/dist/core/agent-session/helpers.d.ts +26 -0
  102. package/dist/core/agent-session/helpers.js +47 -0
  103. package/dist/core/agent-session/helpers.js.map +1 -0
  104. package/dist/core/agent-session/mcp-tools.d.ts +68 -0
  105. package/dist/core/agent-session/mcp-tools.js +195 -0
  106. package/dist/core/agent-session/mcp-tools.js.map +1 -0
  107. package/dist/core/agent-session/run-loop-monitor.d.ts +63 -0
  108. package/dist/core/agent-session/run-loop-monitor.js +164 -0
  109. package/dist/core/agent-session/run-loop-monitor.js.map +1 -0
  110. package/dist/core/agent-session/transcript-markers.d.ts +57 -0
  111. package/dist/core/agent-session/transcript-markers.js +166 -0
  112. package/dist/core/agent-session/transcript-markers.js.map +1 -0
  113. package/dist/core/agent-session/verification-tracker.d.ts +50 -0
  114. package/dist/core/agent-session/verification-tracker.js +269 -0
  115. package/dist/core/agent-session/verification-tracker.js.map +1 -0
  116. package/dist/core/agent-session.d.ts +27 -87
  117. package/dist/core/agent-session.js +166 -713
  118. package/dist/core/agent-session.js.map +1 -1
  119. package/dist/core/auth-providers.js +3 -3
  120. package/dist/core/auth-providers.js.map +1 -1
  121. package/dist/core/autopilot-cycle.d.ts +8 -2
  122. package/dist/core/autopilot-cycle.js +22 -3
  123. package/dist/core/autopilot-cycle.js.map +1 -1
  124. package/dist/core/bundled-agents.js +6 -6
  125. package/dist/core/bundled-agents.js.map +1 -1
  126. package/dist/core/checklist-git.d.ts +19 -0
  127. package/dist/core/checklist-git.js +54 -0
  128. package/dist/core/checklist-git.js.map +1 -0
  129. package/dist/core/checklist-items.d.ts +10 -1
  130. package/dist/core/checklist-items.js +22 -0
  131. package/dist/core/checklist-items.js.map +1 -1
  132. package/dist/core/checklist-prompt.d.ts +14 -3
  133. package/dist/core/checklist-prompt.js +38 -8
  134. package/dist/core/checklist-prompt.js.map +1 -1
  135. package/dist/core/checklist-snapshot.d.ts +5 -1
  136. package/dist/core/checklist-snapshot.js +20 -3
  137. package/dist/core/checklist-snapshot.js.map +1 -1
  138. package/dist/core/checklist-store.d.ts +5 -1
  139. package/dist/core/checklist-store.js +35 -4
  140. package/dist/core/checklist-store.js.map +1 -1
  141. package/dist/core/context-limits.js +1 -1
  142. package/dist/core/context-limits.js.map +1 -1
  143. package/dist/core/event-bus.d.ts +1 -1
  144. package/dist/core/event-bus.js +39 -13
  145. package/dist/core/event-bus.js.map +1 -1
  146. package/dist/core/extensions/plugin-bundles.js +4 -2
  147. package/dist/core/extensions/plugin-bundles.js.map +1 -1
  148. package/dist/core/hashline.d.ts +10 -8
  149. package/dist/core/hashline.js.map +1 -1
  150. package/dist/core/mcp/client.js +2 -0
  151. package/dist/core/mcp/client.js.map +1 -1
  152. package/dist/core/mcp/loopback.d.ts +2 -2
  153. package/dist/core/mcp/loopback.js +2 -2
  154. package/dist/core/mcp/shared-pool.js +4 -3
  155. package/dist/core/mcp/shared-pool.js.map +1 -1
  156. package/dist/core/persistent-shell.js +2 -1
  157. package/dist/core/persistent-shell.js.map +1 -1
  158. package/dist/core/plan-handoff.d.ts +30 -0
  159. package/dist/core/plan-handoff.js +10 -0
  160. package/dist/core/plan-handoff.js.map +1 -0
  161. package/dist/core/plan-submission-gate.d.ts +28 -0
  162. package/dist/core/plan-submission-gate.js +27 -0
  163. package/dist/core/plan-submission-gate.js.map +1 -0
  164. package/dist/core/process-manager.js +9 -1
  165. package/dist/core/process-manager.js.map +1 -1
  166. package/dist/core/project-health-scan.d.ts +109 -0
  167. package/dist/core/project-health-scan.js +673 -0
  168. package/dist/core/project-health-scan.js.map +1 -0
  169. package/dist/core/project-health-score.d.ts +41 -0
  170. package/dist/core/project-health-score.js +257 -0
  171. package/dist/core/project-health-score.js.map +1 -0
  172. package/dist/core/prompt-commands.js +44 -6
  173. package/dist/core/prompt-commands.js.map +1 -1
  174. package/dist/core/session-manager.js.map +1 -1
  175. package/dist/core/session-storage.d.ts +1 -0
  176. package/dist/core/session-storage.js +1 -1
  177. package/dist/core/session-storage.js.map +1 -1
  178. package/dist/core/skills.js +6 -9
  179. package/dist/core/skills.js.map +1 -1
  180. package/dist/core/style-packs/index.js +2 -11
  181. package/dist/core/style-packs/index.js.map +1 -1
  182. package/dist/core/style-packs/packs.d.ts +3 -12
  183. package/dist/core/style-packs/packs.js +132 -173
  184. package/dist/core/style-packs/packs.js.map +1 -1
  185. package/dist/core/subagent-manager.js +11 -6
  186. package/dist/core/subagent-manager.js.map +1 -1
  187. package/dist/core/subagent-receipt.js +3 -4
  188. package/dist/core/subagent-receipt.js.map +1 -1
  189. package/dist/core/ui-adoption.js +2 -0
  190. package/dist/core/ui-adoption.js.map +1 -1
  191. package/dist/core/ui-registry.js +5 -4
  192. package/dist/core/ui-registry.js.map +1 -1
  193. package/dist/core/verification-evidence.d.ts +21 -2
  194. package/dist/core/verification-evidence.js +283 -8
  195. package/dist/core/verification-evidence.js.map +1 -1
  196. package/dist/core/verification-gate.js +4 -2
  197. package/dist/core/verification-gate.js.map +1 -1
  198. package/dist/core/verify-commands.js +2 -3
  199. package/dist/core/verify-commands.js.map +1 -1
  200. package/dist/modes/agent-home-mode.js +1 -4
  201. package/dist/modes/agent-home-mode.js.map +1 -1
  202. package/dist/modes/subagent-worker-mode.js +13 -8
  203. package/dist/modes/subagent-worker-mode.js.map +1 -1
  204. package/dist/system-prompt.js +70 -87
  205. package/dist/system-prompt.js.map +1 -1
  206. package/dist/tools/ask-user.js +13 -74
  207. package/dist/tools/ask-user.js.map +1 -1
  208. package/dist/tools/bash.d.ts +3 -1
  209. package/dist/tools/bash.js +28 -84
  210. package/dist/tools/bash.js.map +1 -1
  211. package/dist/tools/checklist.d.ts +7 -14
  212. package/dist/tools/checklist.js +22 -41
  213. package/dist/tools/checklist.js.map +1 -1
  214. package/dist/tools/code-nav.js +7 -29
  215. package/dist/tools/code-nav.js.map +1 -1
  216. package/dist/tools/edit.d.ts +4 -9
  217. package/dist/tools/edit.js +175 -65
  218. package/dist/tools/edit.js.map +1 -1
  219. package/dist/tools/enter-plan.js +2 -7
  220. package/dist/tools/enter-plan.js.map +1 -1
  221. package/dist/tools/exit-plan.js +2 -3
  222. package/dist/tools/exit-plan.js.map +1 -1
  223. package/dist/tools/find.js +3 -4
  224. package/dist/tools/find.js.map +1 -1
  225. package/dist/tools/grep.js +9 -20
  226. package/dist/tools/grep.js.map +1 -1
  227. package/dist/tools/index.js +10 -7
  228. package/dist/tools/index.js.map +1 -1
  229. package/dist/tools/ls.js +3 -3
  230. package/dist/tools/ls.js.map +1 -1
  231. package/dist/tools/prompt-hints.js +34 -47
  232. package/dist/tools/prompt-hints.js.map +1 -1
  233. package/dist/tools/read-only-bash.js +3 -0
  234. package/dist/tools/read-only-bash.js.map +1 -1
  235. package/dist/tools/read.js +8 -20
  236. package/dist/tools/read.js.map +1 -1
  237. package/dist/tools/search-code.js +4 -12
  238. package/dist/tools/search-code.js.map +1 -1
  239. package/dist/tools/skill.js +13 -7
  240. package/dist/tools/skill.js.map +1 -1
  241. package/dist/tools/subagent-control.js +7 -22
  242. package/dist/tools/subagent-control.js.map +1 -1
  243. package/dist/tools/subagent.js +1 -1
  244. package/dist/tools/subagent.js.map +1 -1
  245. package/dist/tools/task-output.js +4 -15
  246. package/dist/tools/task-output.js.map +1 -1
  247. package/dist/tools/task-send.js +5 -17
  248. package/dist/tools/task-send.js.map +1 -1
  249. package/dist/tools/task-stop.js +2 -2
  250. package/dist/tools/task-stop.js.map +1 -1
  251. package/dist/tools/tool-search.js +2 -7
  252. package/dist/tools/tool-search.js.map +1 -1
  253. package/dist/tools/tool-tiers.d.ts +21 -4
  254. package/dist/tools/tool-tiers.js +44 -17
  255. package/dist/tools/tool-tiers.js.map +1 -1
  256. package/dist/tools/web-fetch.js +7 -33
  257. package/dist/tools/web-fetch.js.map +1 -1
  258. package/dist/tools/write.js +3 -4
  259. package/dist/tools/write.js.map +1 -1
  260. package/dist/ui/App.js +20 -26
  261. package/dist/ui/App.js.map +1 -1
  262. package/dist/ui/components/Footer.js +1 -2
  263. package/dist/ui/components/Footer.js.map +1 -1
  264. package/dist/ui/components/InputArea.js +0 -2
  265. package/dist/ui/components/InputArea.js.map +1 -1
  266. package/dist/ui/components/ToolExecution.js +4 -3
  267. package/dist/ui/components/ToolExecution.js.map +1 -1
  268. package/dist/ui/hooks/useAgentLoop.js +7 -6
  269. package/dist/ui/hooks/useAgentLoop.js.map +1 -1
  270. package/dist/ui/sessions.js +1 -5
  271. package/dist/ui/sessions.js.map +1 -1
  272. package/dist/ui/utils/highlight.d.ts +0 -5
  273. package/dist/ui/utils/highlight.js +3 -49
  274. package/dist/ui/utils/highlight.js.map +1 -1
  275. package/dist/ui/utils/markdown-renderer.d.ts +6 -0
  276. package/dist/ui/utils/markdown-renderer.js +21 -5
  277. package/dist/ui/utils/markdown-renderer.js.map +1 -1
  278. package/dist/utils/process.js +3 -3
  279. package/dist/utils/process.js.map +1 -1
  280. package/dist/utils/shared-poll.d.ts +37 -0
  281. package/dist/utils/shared-poll.js +104 -0
  282. package/dist/utils/shared-poll.js.map +1 -0
  283. package/package.json +8 -8
  284. package/dist/core/api-benchmark.d.ts +0 -63
  285. package/dist/core/api-benchmark.js +0 -381
  286. package/dist/core/api-benchmark.js.map +0 -1
  287. package/dist/core/bash-spawn-benchmark.d.ts +0 -1
  288. package/dist/core/bash-spawn-benchmark.js +0 -139
  289. package/dist/core/bash-spawn-benchmark.js.map +0 -1
  290. package/dist/core/cache-warm-benchmark.d.ts +0 -21
  291. package/dist/core/cache-warm-benchmark.js +0 -170
  292. package/dist/core/cache-warm-benchmark.js.map +0 -1
  293. package/dist/core/fast-apply-benchmark.d.ts +0 -25
  294. package/dist/core/fast-apply-benchmark.js +0 -284
  295. package/dist/core/fast-apply-benchmark.js.map +0 -1
  296. package/dist/core/hashline-edit-benchmark.d.ts +0 -88
  297. package/dist/core/hashline-edit-benchmark.js +0 -518
  298. package/dist/core/hashline-edit-benchmark.js.map +0 -1
  299. package/dist/core/semantic-search-benchmark.d.ts +0 -36
  300. package/dist/core/semantic-search-benchmark.js +0 -211
  301. package/dist/core/semantic-search-benchmark.js.map +0 -1
  302. package/dist/core/speed-benchmark.d.ts +0 -132
  303. package/dist/core/speed-benchmark.js +0 -410
  304. package/dist/core/speed-benchmark.js.map +0 -1
  305. package/dist/ui/activity-phrases.d.ts +0 -10
  306. package/dist/ui/activity-phrases.js +0 -184
  307. package/dist/ui/activity-phrases.js.map +0 -1
  308. package/dist/ui/components/PlanApproval.d.ts +0 -7
  309. package/dist/ui/components/PlanApproval.js +0 -60
  310. package/dist/ui/components/PlanApproval.js.map +0 -1
  311. package/dist/ui/components/PlanBanner.d.ts +0 -5
  312. package/dist/ui/components/PlanBanner.js +0 -31
  313. package/dist/ui/components/PlanBanner.js.map +0 -1
  314. package/dist/ui/components/PlanProgress.d.ts +0 -6
  315. package/dist/ui/components/PlanProgress.js +0 -30
  316. package/dist/ui/components/PlanProgress.js.map +0 -1
  317. package/dist/ui/hooks/useMinDisplayTime.d.ts +0 -10
  318. package/dist/ui/hooks/useMinDisplayTime.js +0 -34
  319. package/dist/ui/hooks/useMinDisplayTime.js.map +0 -1
  320. package/dist/ui/hooks/useSessionManager.d.ts +0 -12
  321. package/dist/ui/hooks/useSessionManager.js +0 -43
  322. package/dist/ui/hooks/useSessionManager.js.map +0 -1
  323. package/dist/ui/hooks/useSlashCommands.d.ts +0 -6
  324. package/dist/ui/hooks/useSlashCommands.js +0 -11
  325. package/dist/ui/hooks/useSlashCommands.js.map +0 -1
  326. package/dist/ui/terminal-history-spacing.d.ts +0 -1
  327. package/dist/ui/terminal-history-spacing.js +0 -2
  328. package/dist/ui/terminal-history-spacing.js.map +0 -1
  329. package/dist/ui/utils/markdown-cache.d.ts +0 -10
  330. package/dist/ui/utils/markdown-cache.js +0 -58
  331. package/dist/ui/utils/markdown-cache.js.map +0 -1
  332. package/dist/ui/utils/token-to-ansi.d.ts +0 -8
  333. package/dist/ui/utils/token-to-ansi.js +0 -323
  334. package/dist/ui/utils/token-to-ansi.js.map +0 -1
@@ -11,7 +11,7 @@ import { type ContextLimits } from "./context-limits.js";
11
11
  import { type ImportForeignTranscriptResult } from "./foreign-session-import.js";
12
12
  import { type CacheExpiryStatus } from "./cache-expiry.js";
13
13
  import { type EnhanceResult } from "../utils/prompt-enhancer.js";
14
- import { type VerificationEvidence } from "./verification-evidence.js";
14
+ import type { VerificationEvidence } from "./verification-evidence.js";
15
15
  /** A chat attachment (image / video / other file) prepared for the model. The
16
16
  * raw base64 `data` rides native blocks; `path` (when persisted to disk) lets
17
17
  * the agent's tools open the file directly. */
@@ -193,18 +193,12 @@ export interface AgentSessionOptions {
193
193
  additionalTools?: AgentTool[];
194
194
  /** Mode-owned completion policy; absent in Coder/chat/worker sessions. */
195
195
  completionReview?: CompletionReview;
196
+ /** Remind the agent to submit its plan (exit_plan) when a run is about to
197
+ * stop still in plan mode. Desktop only: an unsubmitted plan there leaves
198
+ * nothing to review. See plan-submission-gate.ts. */
199
+ planSubmissionGate?: boolean;
196
200
  }
197
- /** Resolve the per-result cap passed to the agent loop for the active transport. */
198
- export declare function resolveSessionToolResultCharLimit(model: string, provider: Provider, accountId?: string): number;
199
- /**
200
- * Aggregate budget for ALL tool results produced in one assistant turn.
201
- * Individual results are already capped, but wide parallel fan-outs (GPT-5.6's
202
- * signature behavior) were observed injecting 100k+ uncached tokens in a single
203
- * turn. ~15% of the context window in chars (1 token ≈ 3.5 chars), floored at
204
- * 100KB so small windows still fit two full-size reads, ceilinged at 240KB so
205
- * 1M-context models don't waive the budget entirely.
206
- */
207
- export declare function resolveSessionTurnToolResultCharLimit(model: string, provider: Provider, accountId?: string): number;
201
+ export { resolveSessionToolResultCharLimit, resolveSessionTurnToolResultCharLimit, } from "./agent-session/helpers.js";
208
202
  export interface AgentSessionState {
209
203
  provider: Provider;
210
204
  model: string;
@@ -226,10 +220,7 @@ export declare class AgentSession {
226
220
  private sessionManager;
227
221
  private extensionLoader;
228
222
  private messages;
229
- private nolanTurns;
230
- private autopilotMarkers;
231
- private appMarkers;
232
- private turnMetrics;
223
+ private readonly markers;
233
224
  private readonly cacheDiagnostics;
234
225
  /** Internal-only (EZ_INTERNAL): live per-session cost/reliability recorder.
235
226
  * Absent entirely in public builds — see core/internal-diagnostics.ts. */
@@ -245,25 +236,8 @@ export declare class AgentSession {
245
236
  private recordBashReads;
246
237
  private skills;
247
238
  private cacheKeyLogged;
248
- private hookStats;
249
- private hookText;
250
- private hookConsecutiveFailures;
251
- private hookRepeatedNoProgressCalls;
252
- private hookProgressTracker;
253
- private hookCycleDetector;
254
- private hookCyclicPattern;
255
- private hookFileEditCounts;
256
- private hookToolCalls;
257
- private backgroundVerification;
258
- /** 0 = none; 1 = first nudge sent; 2 = final stop-and-report injected. */
259
- private loopBreakInjected;
239
+ private readonly loopMonitor;
260
240
  private regroundingInjected;
261
- /** Recent tool-call digests for the semantic loop judge — bounded ring. */
262
- private hookRecentCalls;
263
- /** LLM-judged loop detection state. `verdict` holds a LOOP verdict awaiting
264
- * injection at the next steering poll; judge failures fail open (no
265
- * injection) and still consume budget + cooldown. */
266
- private semanticLoop;
267
241
  /**
268
242
  * The environment as the cached system prompt currently describes it.
269
243
  * Re-recorded on every prompt build, so a rebuild (e.g. `/add-dir`) needs no
@@ -274,10 +248,14 @@ export declare class AgentSession {
274
248
  private runStartedAt;
275
249
  /** Gate injections spent this run, capped by MAX_PROCESS_GATE_INJECTIONS. */
276
250
  private processGateInjected;
251
+ /** Plan-submission reminders spent this run (plan-submission-gate.ts). */
252
+ private planSubmissionNudges;
277
253
  /** Verification gate: code edited this run, nothing proved it since. Always
278
254
  * tracks evidence for run status; the `verificationGateEnabled` setting
279
255
  * decides whether an unverified stop is also continued once. */
280
256
  private readonly verificationGate;
257
+ /** Host-observed evidence (edited files, in-flight and background checks) feeding the gate. */
258
+ private readonly verificationTracker;
281
259
  /** Mirror of the last `hook_armed` value, so the event fires only on an edge. */
282
260
  private preFinalArmed;
283
261
  private compactionOccurred;
@@ -320,9 +298,8 @@ export declare class AgentSession {
320
298
  private readonly notifications;
321
299
  private managerAbortSignal?;
322
300
  private readonly managerAbortHandler;
323
- private mcpManager?;
324
- /** Deferred MCP tools awaiting discovery via tool_search. */
325
- private mcpCatalog?;
301
+ /** MCP client, deferred tool_search catalog and cached-stub reconcile state. */
302
+ private readonly mcp;
326
303
  /** Resolved prompt-injection byte budgets (contextLimits setting). */
327
304
  private contextLimits;
328
305
  /**
@@ -331,11 +308,6 @@ export declare class AgentSession {
331
308
  * can discover and promote them; a promoted name drops out of this list.
332
309
  */
333
310
  private deferredBuiltinToolNames;
334
- /** Live (connected) MCP tools by name — the reconcile target for cached stubs. */
335
- private liveMcpTools;
336
- /** Server name for each cached-only tool, so a stub knows what to wait on. */
337
- private cachedMcpToolServers;
338
- private readonly mcpCatalogCache;
339
311
  private provider;
340
312
  private model;
341
313
  private cwd;
@@ -444,43 +416,27 @@ export declare class AgentSession {
444
416
  * pushed eagerly when the user opted out.
445
417
  * Allow-listed sessions (Nolan) always get the eager path — their fixed tool
446
418
  * expectations predate the catalog, and tool_search isn't allow-listed.
447
- * Promotion pushes onto the live `this.tools` array the running agent loop
448
- * re-reads every turn, so promoted tools are callable on the next step.
449
419
  */
450
420
  private addMcpTools;
451
421
  /**
452
- * Register `tool_search` once. Promotion of a cached-only entry waits for its
453
- * server so the model is told immediately when that capability turns out to
454
- * be unreachable, instead of promoting a tool that fails on first call.
455
- *
456
- * The catalog is created on demand rather than required up front: deferred
457
- * built-in tools populate it with zero MCP servers connected, so gating
458
- * registration on an existing catalog would leave those tools unreachable.
459
- */
460
- private ensureToolSearchTool;
461
- /**
462
- * `wait_agent` is deferred, yet nearly every `spawn_agent` is followed by it,
463
- * so the model spent a whole turn on `tool_search` just to load it (bench 41:
464
- * ~6 s per fan-out). Promote it as soon as a spawn succeeds instead: the tool
465
- * list grows exactly as it would after that `tool_search`, one turn earlier,
466
- * and sessions that never spawn keep the smaller prefix.
422
+ * Deferred follow-up tools whose need is certain once a trigger succeeds.
423
+ * `wait_agent` follows nearly every `spawn_agent`, and loading it through
424
+ * `tool_search` cost a whole turn (bench 41: ~6 s per fan-out). Likewise a
425
+ * background `bash` is always followed by `task_output` (and sometimes
426
+ * `task_send`/`task_stop`). Promote them as soon as the trigger succeeds: the
427
+ * tool list grows exactly as it would after that `tool_search`, one turn
428
+ * earlier, and sessions that never trigger keep the smaller prefix.
429
+ * Call before tier partitioning so a deferred trigger is wrapped too.
467
430
  */
468
- private promoteWaitAgentAfterSpawn;
469
- /** Append tools, replacing any same-named entry (cached stub → live tool). */
470
- private replaceOrPushTools;
471
- /** Swap already-promoted cached stubs for their live equivalents, in place. */
472
- private replaceLivePromotedTools;
431
+ private promoteFollowUpTools;
432
+ /** Append a deferred built-in to the live tool list (append-only). */
433
+ private promoteDeferredBuiltin;
434
+ private wrapToPromote;
473
435
  /**
474
436
  * Publish cached tool definitions into the deferred catalog so `tool_search`
475
- * answers correctly on turn 1. A cached stub carries the real name, one-line
476
- * description and input schema; calling it waits for the live connection and
477
- * then dispatches against the real client, or returns a clear error when that
478
- * server ultimately failed. Live tools replace stubs on connect.
437
+ * answers correctly on turn 1 (see {@link McpToolRegistry.seedFromCache}).
479
438
  */
480
439
  private seedMcpCatalogFromCache;
481
- /** Catalog-only registration for cached stubs — never marks them live. */
482
- private addCachedMcpTools;
483
- private buildCachedMcpTool;
484
440
  /**
485
441
  * Resolve a `/name [args]` input to the prompt template it expands into, or
486
442
  * null when it isn't a prompt-template command for THIS session (an ordinary
@@ -839,7 +795,6 @@ export declare class AgentSession {
839
795
  getMessages(): Message[];
840
796
  getTurnMetrics(): TurnMetricPayload[];
841
797
  private persistTurnMetric;
842
- private rePersistTurnMetrics;
843
798
  /** Nolan Grout (mentor) turns recorded against this session, in record order. Used
844
799
  * by the host to interleave Nolan's advisory exchanges back into the transcript
845
800
  * on resume. Never part of the LLM message history. */
@@ -870,11 +825,6 @@ export declare class AgentSession {
870
825
  * appendEntry's own handling.
871
826
  */
872
827
  persistNolanTurn(question: string, reply: string): Promise<void>;
873
- /** Re-append the in-memory Nolan turns to the current session file. Called after
874
- * a continuation/compaction file is created so Nolan's advisory history isn't
875
- * lost when the session is rewritten (those rewrites only re-persist
876
- * messages). Each turn keeps its original `afterMessageCount` anchor. */
877
- private rePersistNolanTurns;
878
828
  /**
879
829
  * Record one autopilot verdict marker (prompted / done / human / capped)
880
830
  * against this build session. Kept in memory for the live transcript and
@@ -883,7 +833,6 @@ export declare class AgentSession {
883
833
  * instead of dropping the marker or falling back to a raw verdict string.
884
834
  * No-op persistence for transient sessions (kept in memory only).
885
835
  */
886
- private recordFinishedBackgroundVerification;
887
836
  getVerificationEvidence(): VerificationEvidence[];
888
837
  /** Current request activity, separate from persistent workspace verification debt. */
889
838
  getRunVerificationActivity(): {
@@ -891,7 +840,6 @@ export declare class AgentSession {
891
840
  checked: boolean;
892
841
  evidence: VerificationEvidence[];
893
842
  };
894
- private finishSnapshotVerification;
895
843
  getVerificationProblem(): string | null;
896
844
  private persistCompletionReviewState;
897
845
  private persistVerificationState;
@@ -899,10 +847,6 @@ export declare class AgentSession {
899
847
  reason?: string;
900
848
  body?: string;
901
849
  }): Promise<void>;
902
- /** Re-append the in-memory autopilot markers to the current session file.
903
- * Mirrors `rePersistNolanTurns` — called after a continuation/compaction file
904
- * is created so the auto-review history survives the rewrite. */
905
- private rePersistAutopilotMarkers;
906
850
  /** App transcript markers recorded against this session, in record order.
907
851
  * Used by the host to interleave display-only rows (plan banner, task
908
852
  * header, errors, user-bubble hints) back into the transcript on resume. */
@@ -927,10 +871,6 @@ export declare class AgentSession {
927
871
  persistRunStarted(generation: number): Promise<void>;
928
872
  /** Close the run journal. Its absence is what marks a run as crashed. */
929
873
  persistRunFinished(generation: number, outcome: RunOutcome): Promise<void>;
930
- /** Re-append the in-memory app markers to the current session file. Mirrors
931
- * `rePersistNolanTurns` — called after a continuation/compaction file is
932
- * created so display-only rows survive the rewrite. */
933
- private rePersistAppMarkers;
934
874
  /**
935
875
  * Rewrite a draft prompt into a tighter, terminology-correct version using
936
876
  * the ACTIVE provider/model. A stateless one-off LLM call (no agent loop, no