@prestyj/cli 5.28.1 → 5.29.1

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 (339) hide show
  1. package/assets/motion/bin/contact-sheet.mjs +9 -3
  2. package/assets/motion/bin/cues.mjs +337 -0
  3. package/assets/motion/bin/library.mjs +53 -10
  4. package/assets/motion/bin/motion-blur.mjs +943 -0
  5. package/assets/motion/bin/motion-check.mjs +354 -3
  6. package/assets/motion/bin/music-fit.mjs +436 -0
  7. package/assets/motion/bin/pdf-extract.mjs +22 -10
  8. package/assets/motion/bin/reference-study.mjs +346 -0
  9. package/assets/motion/bin/score-synth.mjs +1052 -93
  10. package/assets/motion/library/README.md +50 -14
  11. package/assets/motion/library/kit/moves.js +1981 -0
  12. package/assets/motion/library/library.json +232 -0
  13. package/assets/motion/library/pieces/camera-rig/meta.json +13 -0
  14. package/assets/motion/library/pieces/camera-rig/piece.html +153 -0
  15. package/assets/motion/library/pieces/camera-rig/preview.jpg +0 -0
  16. package/assets/motion/library/pieces/chain-knock/meta.json +13 -0
  17. package/assets/motion/library/pieces/chain-knock/piece.html +195 -0
  18. package/assets/motion/library/pieces/chain-knock/preview.jpg +0 -0
  19. package/assets/motion/library/pieces/gather-to-logo/meta.json +13 -0
  20. package/assets/motion/library/pieces/gather-to-logo/piece.html +159 -0
  21. package/assets/motion/library/pieces/gather-to-logo/preview.jpg +0 -0
  22. package/assets/motion/library/pieces/morph-carry/meta.json +13 -0
  23. package/assets/motion/library/pieces/morph-carry/piece.html +173 -0
  24. package/assets/motion/library/pieces/morph-carry/preview.jpg +0 -0
  25. package/assets/motion/library/pieces/one-shape-journey/meta.json +13 -0
  26. package/assets/motion/library/pieces/one-shape-journey/piece.html +195 -0
  27. package/assets/motion/library/pieces/one-shape-journey/preview.jpg +0 -0
  28. package/assets/motion/library/pieces/open-from-subject/meta.json +13 -0
  29. package/assets/motion/library/pieces/open-from-subject/piece.html +168 -0
  30. package/assets/motion/library/pieces/open-from-subject/preview.jpg +0 -0
  31. package/assets/motion/library/pieces/request-to-result/meta.json +13 -0
  32. package/assets/motion/library/pieces/request-to-result/piece.html +212 -0
  33. package/assets/motion/library/pieces/request-to-result/preview.jpg +0 -0
  34. package/assets/motion/library/pieces/scale-dive/meta.json +13 -0
  35. package/assets/motion/library/pieces/scale-dive/piece.html +321 -0
  36. package/assets/motion/library/pieces/scale-dive/preview.jpg +0 -0
  37. package/assets/motion/library/pieces/screen-replica-steps/meta.json +13 -0
  38. package/assets/motion/library/pieces/screen-replica-steps/piece.html +366 -0
  39. package/assets/motion/library/pieces/screen-replica-steps/preview.jpg +0 -0
  40. package/assets/motion/library/pieces/zoom-into-card/meta.json +13 -0
  41. package/assets/motion/library/pieces/zoom-into-card/piece.html +179 -0
  42. package/assets/motion/library/pieces/zoom-into-card/preview.jpg +0 -0
  43. package/assets/motion/library/sheets/diagram.jpg +0 -0
  44. package/assets/motion/library/sheets/frame.jpg +0 -0
  45. package/assets/motion/library/sheets/transition.jpg +0 -0
  46. package/assets/motion/library/sheets/ui.jpg +0 -0
  47. package/assets/motion/references/build-sheet.md +206 -0
  48. package/assets/motion/references/runtime/determinism-rules.md +1 -1
  49. package/assets/motion/references/runtime/gsap-easing-and-stagger.md +29 -29
  50. package/assets/motion/references/runtime/inputs-and-assets.md +7 -12
  51. package/assets/motion/references/runtime/lint-validate-inspect.md +3 -3
  52. package/assets/motion/references/runtime/minimal-composition.md +1 -1
  53. package/assets/motion/references/runtime/preview-render.md +3 -3
  54. package/assets/motion/skills/app-walkthrough/SKILL.md +70 -0
  55. package/assets/motion/skills/before-after/SKILL.md +57 -0
  56. package/assets/motion/skills/brand-kit/SKILL.md +3 -3
  57. package/assets/motion/skills/dev-tool-video/SKILL.md +61 -0
  58. package/assets/motion/skills/launch-video/SKILL.md +66 -0
  59. package/assets/motion/skills/match-reference/SKILL.md +62 -0
  60. package/assets/motion/skills/motion/SKILL.md +148 -98
  61. package/assets/motion/skills/source-ingest/SKILL.md +17 -6
  62. package/assets/motion/skills/website-video/SKILL.md +76 -0
  63. package/assets/skills/bulletproof/SKILL.md +36 -11
  64. package/assets/skills/bulletproof/references/agent-surface.md +19 -9
  65. package/assets/skills/bulletproof/references/audit-protocol.md +20 -5
  66. package/assets/skills/bulletproof/references/platform-playbooks.md +5 -4
  67. package/assets/skills/bulletproof/references/provenance.md +26 -1
  68. package/assets/skills/bulletproof/references/secure-defaults.md +6 -5
  69. package/assets/skills/bulletproof/references/supply-chain.md +21 -17
  70. package/assets/skills/bulletproof/references/threat-landscape.md +28 -26
  71. package/assets/skills/bulletproof/references/verification.md +2 -0
  72. package/assets/skills/clarify/SKILL.md +25 -16
  73. package/assets/skills/code-review/SKILL.md +71 -13
  74. package/assets/skills/code-review/references/agent-diffs.md +27 -0
  75. package/assets/skills/code-review/references/tests.md +19 -0
  76. package/assets/skills/compliance-guard/SKILL.md +20 -5
  77. package/assets/skills/compliance-guard/references/artifacts.md +1 -1
  78. package/assets/skills/compliance-guard/references/eu-uk.md +16 -16
  79. package/assets/skills/compliance-guard/references/lawsuit-vectors.md +5 -5
  80. package/assets/skills/compliance-guard/references/provenance.md +41 -2
  81. package/assets/skills/compliance-guard/references/sector-gates.md +3 -3
  82. package/assets/skills/compliance-guard/references/security-baseline.md +2 -2
  83. package/assets/skills/compliance-guard/references/trigger-map.md +5 -5
  84. package/assets/skills/compliance-guard/references/us.md +27 -21
  85. package/assets/skills/durable/SKILL.md +87 -79
  86. package/assets/skills/durable/references/agent-db-safety.md +69 -0
  87. package/assets/skills/durable/references/backups-and-runtime.md +19 -12
  88. package/assets/skills/durable/references/migrations-and-schema.md +13 -6
  89. package/assets/skills/evidence-led-ui/SKILL.md +69 -127
  90. package/assets/skills/evidence-led-ui/references/anti-defaults.md +107 -208
  91. package/assets/skills/evidence-led-ui/references/direction.md +124 -0
  92. package/assets/skills/evidence-led-ui/references/production-contract.md +8 -0
  93. package/assets/skills/evidence-led-ui/references/provenance.md +24 -1
  94. package/assets/skills/lean/SKILL.md +90 -71
  95. package/assets/skills/lean/references/memory-and-processes.md +3 -2
  96. package/assets/skills/lean/references/playbooks.md +37 -12
  97. package/assets/skills/refactoring/SKILL.md +24 -3
  98. package/assets/skills/refactoring/references/agent-pitfalls.md +4 -1
  99. package/assets/skills/refactoring/references/legacy.md +21 -0
  100. package/assets/skills/root-cause/SKILL.md +20 -10
  101. package/assets/skills/shared-language/SKILL.md +16 -14
  102. package/assets/skills/tdd/SKILL.md +27 -15
  103. package/dist/app-sidecar.js +206 -47
  104. package/dist/app-sidecar.js.map +1 -1
  105. package/dist/cli/thinking-arg.d.ts +6 -0
  106. package/dist/cli/thinking-arg.js +13 -0
  107. package/dist/cli/thinking-arg.js.map +1 -0
  108. package/dist/cli.d.ts +1 -2
  109. package/dist/cli.js +18 -34
  110. package/dist/cli.js.map +1 -1
  111. package/dist/core/acceptance-checks.d.ts +48 -0
  112. package/dist/core/acceptance-checks.js +144 -0
  113. package/dist/core/acceptance-checks.js.map +1 -0
  114. package/dist/core/agent-session.d.ts +107 -72
  115. package/dist/core/agent-session.js +562 -407
  116. package/dist/core/agent-session.js.map +1 -1
  117. package/dist/core/agents.d.ts +6 -5
  118. package/dist/core/agents.js.map +1 -1
  119. package/dist/core/ask-user.d.ts +90 -8
  120. package/dist/core/ask-user.js +124 -13
  121. package/dist/core/ask-user.js.map +1 -1
  122. package/dist/core/bundled-agents.js +1 -3
  123. package/dist/core/bundled-agents.js.map +1 -1
  124. package/dist/core/cache-diagnostics.d.ts +68 -0
  125. package/dist/core/cache-diagnostics.js +196 -0
  126. package/dist/core/cache-diagnostics.js.map +1 -0
  127. package/dist/core/cache-expiry.d.ts +87 -0
  128. package/dist/core/cache-expiry.js +111 -0
  129. package/dist/core/cache-expiry.js.map +1 -0
  130. package/dist/core/codex-request-shape.d.ts +12 -0
  131. package/dist/core/codex-request-shape.js +31 -0
  132. package/dist/core/codex-request-shape.js.map +1 -0
  133. package/dist/core/compaction/compactor.js +84 -48
  134. package/dist/core/compaction/compactor.js.map +1 -1
  135. package/dist/core/compaction/plan-step-policy.d.ts +46 -0
  136. package/dist/core/compaction/plan-step-policy.js +57 -0
  137. package/dist/core/compaction/plan-step-policy.js.map +1 -0
  138. package/dist/core/destructive-git-guard.d.ts +90 -0
  139. package/dist/core/destructive-git-guard.js +871 -0
  140. package/dist/core/destructive-git-guard.js.map +1 -0
  141. package/dist/core/event-bus.d.ts +3 -0
  142. package/dist/core/event-bus.js +5 -0
  143. package/dist/core/event-bus.js.map +1 -1
  144. package/dist/core/injection-detect.d.ts +38 -0
  145. package/dist/core/injection-detect.js +232 -0
  146. package/dist/core/injection-detect.js.map +1 -0
  147. package/dist/core/keep-awake.d.ts +88 -0
  148. package/dist/core/keep-awake.js +251 -0
  149. package/dist/core/keep-awake.js.map +1 -0
  150. package/dist/core/mcp/client.d.ts +72 -0
  151. package/dist/core/mcp/client.js +264 -41
  152. package/dist/core/mcp/client.js.map +1 -1
  153. package/dist/core/mcp/content.js +6 -2
  154. package/dist/core/mcp/content.js.map +1 -1
  155. package/dist/core/mcp/store.d.ts +6 -1
  156. package/dist/core/mcp/store.js +12 -1
  157. package/dist/core/mcp/store.js.map +1 -1
  158. package/dist/core/mcp/types.d.ts +18 -0
  159. package/dist/core/model-unavailable.d.ts +14 -0
  160. package/dist/core/model-unavailable.js +23 -0
  161. package/dist/core/model-unavailable.js.map +1 -0
  162. package/dist/core/node-debugger.d.ts +148 -0
  163. package/dist/core/node-debugger.js +642 -0
  164. package/dist/core/node-debugger.js.map +1 -0
  165. package/dist/core/nolan-context.js +7 -3
  166. package/dist/core/nolan-context.js.map +1 -1
  167. package/dist/core/package-threats.d.ts +18 -0
  168. package/dist/core/package-threats.js +168 -0
  169. package/dist/core/package-threats.js.map +1 -0
  170. package/dist/core/persistent-shell.d.ts +58 -6
  171. package/dist/core/persistent-shell.js +331 -49
  172. package/dist/core/persistent-shell.js.map +1 -1
  173. package/dist/core/process-manager.d.ts +14 -0
  174. package/dist/core/process-manager.js +61 -0
  175. package/dist/core/process-manager.js.map +1 -1
  176. package/dist/core/progress/git-xp.js +8 -14
  177. package/dist/core/progress/git-xp.js.map +1 -1
  178. package/dist/core/session-history.d.ts +12 -0
  179. package/dist/core/session-history.js +27 -0
  180. package/dist/core/session-history.js.map +1 -1
  181. package/dist/core/session-manager.d.ts +13 -1
  182. package/dist/core/session-manager.js +38 -18
  183. package/dist/core/session-manager.js.map +1 -1
  184. package/dist/core/session-summary-index.d.ts +37 -0
  185. package/dist/core/session-summary-index.js +172 -0
  186. package/dist/core/session-summary-index.js.map +1 -0
  187. package/dist/core/settings-manager.d.ts +12 -0
  188. package/dist/core/settings-manager.js +20 -0
  189. package/dist/core/settings-manager.js.map +1 -1
  190. package/dist/core/shell-threats-popular-packages.d.ts +11 -0
  191. package/dist/core/shell-threats-popular-packages.js +675 -0
  192. package/dist/core/shell-threats-popular-packages.js.map +1 -0
  193. package/dist/core/shell-threats.d.ts +8 -0
  194. package/dist/core/shell-threats.js +186 -0
  195. package/dist/core/shell-threats.js.map +1 -0
  196. package/dist/core/skills.js +3 -1
  197. package/dist/core/skills.js.map +1 -1
  198. package/dist/core/stream-rules.d.ts +30 -0
  199. package/dist/core/stream-rules.js +151 -0
  200. package/dist/core/stream-rules.js.map +1 -0
  201. package/dist/core/subagent-manager.d.ts +20 -5
  202. package/dist/core/subagent-manager.js +22 -8
  203. package/dist/core/subagent-manager.js.map +1 -1
  204. package/dist/core/subagent-receipt.d.ts +54 -0
  205. package/dist/core/subagent-receipt.js +278 -0
  206. package/dist/core/subagent-receipt.js.map +1 -0
  207. package/dist/core/subagent-turn-record.d.ts +2 -0
  208. package/dist/core/subagent-turn-record.js.map +1 -1
  209. package/dist/core/test-impact.d.ts +73 -0
  210. package/dist/core/test-impact.js +467 -0
  211. package/dist/core/test-impact.js.map +1 -0
  212. package/dist/core/thinking-level.d.ts +1 -1
  213. package/dist/core/thinking-level.js +1 -1
  214. package/dist/core/thinking-level.js.map +1 -1
  215. package/dist/core/verification-gate.d.ts +2 -0
  216. package/dist/core/verification-gate.js +4 -0
  217. package/dist/core/verification-gate.js.map +1 -1
  218. package/dist/core/verification-snapshot.js +3 -5
  219. package/dist/core/verification-snapshot.js.map +1 -1
  220. package/dist/core/workspace-guard.d.ts +18 -7
  221. package/dist/core/workspace-guard.js +227 -60
  222. package/dist/core/workspace-guard.js.map +1 -1
  223. package/dist/interactive.js +2 -1
  224. package/dist/interactive.js.map +1 -1
  225. package/dist/modes/subagent-worker-mode.js +34 -6
  226. package/dist/modes/subagent-worker-mode.js.map +1 -1
  227. package/dist/motion-agent/motion-agent.d.ts +6 -2
  228. package/dist/motion-agent/motion-agent.js +5 -7
  229. package/dist/motion-agent/motion-agent.js.map +1 -1
  230. package/dist/motion-agent/motion-prompt.d.ts +1 -1
  231. package/dist/motion-agent/motion-prompt.js +16 -20
  232. package/dist/motion-agent/motion-prompt.js.map +1 -1
  233. package/dist/motion-agent/motion-review-session.js +7 -3
  234. package/dist/motion-agent/motion-review-session.js.map +1 -1
  235. package/dist/motion-agent/motion-review.d.ts +10 -3
  236. package/dist/motion-agent/motion-review.js +15 -7
  237. package/dist/motion-agent/motion-review.js.map +1 -1
  238. package/dist/motion-agent/motion-studio-context.js +1 -1
  239. package/dist/motion-agent/motion-studio-context.js.map +1 -1
  240. package/dist/system-prompt.js +15 -11
  241. package/dist/system-prompt.js.map +1 -1
  242. package/dist/test-support/keep-alive.d.ts +14 -0
  243. package/dist/test-support/keep-alive.js +17 -0
  244. package/dist/test-support/keep-alive.js.map +1 -0
  245. package/dist/tools/ask-user.js +3 -3
  246. package/dist/tools/ask-user.js.map +1 -1
  247. package/dist/tools/bash-read-evidence.d.ts +10 -0
  248. package/dist/tools/bash-read-evidence.js +133 -0
  249. package/dist/tools/bash-read-evidence.js.map +1 -0
  250. package/dist/tools/bash.d.ts +10 -1
  251. package/dist/tools/bash.js +115 -7
  252. package/dist/tools/bash.js.map +1 -1
  253. package/dist/tools/debug.d.ts +54 -0
  254. package/dist/tools/debug.js +233 -0
  255. package/dist/tools/debug.js.map +1 -0
  256. package/dist/tools/edit-targets.d.ts +10 -0
  257. package/dist/tools/edit-targets.js +31 -0
  258. package/dist/tools/edit-targets.js.map +1 -0
  259. package/dist/tools/edit.d.ts +11 -3
  260. package/dist/tools/edit.js +387 -305
  261. package/dist/tools/edit.js.map +1 -1
  262. package/dist/tools/goals.d.ts +1 -1
  263. package/dist/tools/index.d.ts +19 -2
  264. package/dist/tools/index.js +47 -7
  265. package/dist/tools/index.js.map +1 -1
  266. package/dist/tools/prompt-hints.js +6 -1
  267. package/dist/tools/prompt-hints.js.map +1 -1
  268. package/dist/tools/read-tracker.d.ts +5 -0
  269. package/dist/tools/read-tracker.js +19 -9
  270. package/dist/tools/read-tracker.js.map +1 -1
  271. package/dist/tools/read.js +3 -2
  272. package/dist/tools/read.js.map +1 -1
  273. package/dist/tools/skill.js +11 -3
  274. package/dist/tools/skill.js.map +1 -1
  275. package/dist/tools/subagent-control.js +44 -8
  276. package/dist/tools/subagent-control.js.map +1 -1
  277. package/dist/tools/subagent-shared.d.ts +29 -8
  278. package/dist/tools/subagent-shared.js +45 -14
  279. package/dist/tools/subagent-shared.js.map +1 -1
  280. package/dist/tools/subagent.d.ts +14 -2
  281. package/dist/tools/subagent.js +43 -13
  282. package/dist/tools/subagent.js.map +1 -1
  283. package/dist/tools/task-output.js +3 -2
  284. package/dist/tools/task-output.js.map +1 -1
  285. package/dist/tools/task-send.d.ts +1 -1
  286. package/dist/tools/task-send.js +15 -1
  287. package/dist/tools/task-send.js.map +1 -1
  288. package/dist/tools/tool-tiers.d.ts +8 -2
  289. package/dist/tools/tool-tiers.js +10 -3
  290. package/dist/tools/tool-tiers.js.map +1 -1
  291. package/dist/tools/truncate.d.ts +21 -0
  292. package/dist/tools/truncate.js +187 -0
  293. package/dist/tools/truncate.js.map +1 -1
  294. package/dist/tools/ui-adopt.js +2 -0
  295. package/dist/tools/ui-adopt.js.map +1 -1
  296. package/dist/ui/App.d.ts +0 -4
  297. package/dist/ui/App.js +12 -31
  298. package/dist/ui/App.js.map +1 -1
  299. package/dist/ui/components/ActivityIndicator.js +1 -0
  300. package/dist/ui/components/ActivityIndicator.js.map +1 -1
  301. package/dist/ui/components/ToolExecution.js +3 -2
  302. package/dist/ui/components/ToolExecution.js.map +1 -1
  303. package/dist/ui/hooks/useAgentLoop.d.ts +1 -8
  304. package/dist/ui/hooks/useAgentLoop.js +1 -119
  305. package/dist/ui/hooks/useAgentLoop.js.map +1 -1
  306. package/dist/ui/render.d.ts +0 -4
  307. package/dist/ui/render.js +0 -2
  308. package/dist/ui/render.js.map +1 -1
  309. package/dist/ui/terminal-history.js +3 -1
  310. package/dist/ui/terminal-history.js.map +1 -1
  311. package/dist/ui/tool-line-summary.js +3 -1
  312. package/dist/ui/tool-line-summary.js.map +1 -1
  313. package/dist/utils/format.js +5 -1
  314. package/dist/utils/format.js.map +1 -1
  315. package/dist/utils/git.d.ts +77 -0
  316. package/dist/utils/git.js +285 -21
  317. package/dist/utils/git.js.map +1 -1
  318. package/dist/utils/github-ci.js +2 -1
  319. package/dist/utils/github-ci.js.map +1 -1
  320. package/dist/utils/github.js +11 -9
  321. package/dist/utils/github.js.map +1 -1
  322. package/dist/utils/image.d.ts +14 -0
  323. package/dist/utils/image.js +16 -0
  324. package/dist/utils/image.js.map +1 -1
  325. package/dist/utils/process.d.ts +20 -0
  326. package/dist/utils/process.js +98 -0
  327. package/dist/utils/process.js.map +1 -1
  328. package/package.json +4 -4
  329. package/assets/motion/references/motion-language.md +0 -128
  330. package/assets/motion/skills/video-qa/SKILL.md +0 -89
  331. package/dist/core/ideal-review-subagent.d.ts +0 -56
  332. package/dist/core/ideal-review-subagent.js +0 -112
  333. package/dist/core/ideal-review-subagent.js.map +0 -1
  334. package/dist/core/ideal-review.d.ts +0 -82
  335. package/dist/core/ideal-review.js +0 -242
  336. package/dist/core/ideal-review.js.map +0 -1
  337. package/dist/motion-agent/motion-check-tool.d.ts +0 -35
  338. package/dist/motion-agent/motion-check-tool.js +0 -514
  339. package/dist/motion-agent/motion-check-tool.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"task-send.js","sourceRoot":"","sources":["../../src/tools/task-send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACrE,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mFAAmF,CAAC;IAChG,KAAK,EAAE,CAAC;SACL,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,+DAA+D,CAAC;IAC5E,GAAG,EAAE,CAAC;SACH,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;CAC5E,CAAC,CAAC;AAEH,MAAM,UAAU,kBAAkB,CAChC,cAA8B;IAE9B,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,0FAA0F;YAC1F,uFAAuF;YACvF,yFAAyF;YACzF,mFAAmF;QACrF,UAAU,EAAE,cAAc;QAC1B,aAAa,EAAE,YAAY;QAC3B,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;YACrC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC,IAAI,KAAK,KAAK,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;gBACrE,OAAO,gFAAgF,CAAC;YAC1F,CAAC;YACD,OAAO,cAAc,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACnE,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"task-send.js","sourceRoot":"","sources":["../../src/tools/task-send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACrE,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mFAAmF,CAAC;IAChG,KAAK,EAAE,CAAC;SACL,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,+DAA+D,CAAC;IAC5E,GAAG,EAAE,CAAC;SACH,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;CAC5E,CAAC,CAAC;AAEH,MAAM,UAAU,kBAAkB,CAChC,cAA8B,EAC9B,GAAY;IAEZ,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,0FAA0F;YAC1F,uFAAuF;YACvF,yFAAyF;YACzF,mFAAmF;QACrF,UAAU,EAAE,cAAc;QAC1B,aAAa,EAAE,YAAY;QAC3B,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;YACrC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC,IAAI,KAAK,KAAK,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;gBACrE,OAAO,gFAAgF,CAAC;YAC1F,CAAC;YACD,yEAAyE;YACzE,yEAAyE;YACzE,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,EAAE,CAAC;gBAC/B,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC7D,IAAI,UAAU;oBAAE,OAAO,0BAA0B,UAAU,EAAE,CAAC;YAChE,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,aAAa,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;gBACrD,IAAI,aAAa;oBAAE,OAAO,0BAA0B,aAAa,EAAE,CAAC;YACtE,CAAC;YACD,OAAO,cAAc,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACnE,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -21,9 +21,15 @@ import type { AgentTool } from "@prestyj/agent";
21
21
  export declare const CORE_TOOL_NAMES: readonly string[];
22
22
  /**
23
23
  * Built-ins that live in the catalog as index lines until `tool_search` is
24
- * called. Each one is either rare (image generation, screenshots, package
25
- * source resolution) or only reachable after another tool has already run
24
+ * called. Each one is either rare (image generation, screenshots, the
25
+ * debugger, package source resolution) or only reachable after another tool has already run
26
26
  * (the child-agent control cluster follows `spawn_agent`).
27
+ *
28
+ * `web_search` moved here after a 30-day usage count over 718 local sessions
29
+ * found it in ~6% of working sessions. `task_send`
30
+ * stays core even though it is rarer: bash's own description points at it,
31
+ * and promoting it mid-session would change the tool list, which restarts
32
+ * Anthropic's prompt cache (tools are cached ahead of system and messages).
27
33
  */
28
34
  export declare const DEFERRED_TOOL_NAMES: readonly string[];
29
35
  export interface ToolTierPartition {
@@ -31,7 +31,6 @@ export const CORE_TOOL_NAMES = [
31
31
  "ls",
32
32
  "code_search",
33
33
  "code_nav",
34
- "web_search",
35
34
  "web_fetch",
36
35
  "steroids",
37
36
  "task_output",
@@ -47,15 +46,23 @@ export const CORE_TOOL_NAMES = [
47
46
  ];
48
47
  /**
49
48
  * Built-ins that live in the catalog as index lines until `tool_search` is
50
- * called. Each one is either rare (image generation, screenshots, package
51
- * source resolution) or only reachable after another tool has already run
49
+ * called. Each one is either rare (image generation, screenshots, the
50
+ * debugger, package source resolution) or only reachable after another tool has already run
52
51
  * (the child-agent control cluster follows `spawn_agent`).
52
+ *
53
+ * `web_search` moved here after a 30-day usage count over 718 local sessions
54
+ * found it in ~6% of working sessions. `task_send`
55
+ * stays core even though it is rarer: bash's own description points at it,
56
+ * and promoting it mid-session would change the tool list, which restarts
57
+ * Anthropic's prompt cache (tools are cached ahead of system and messages).
53
58
  */
54
59
  export const DEFERRED_TOOL_NAMES = [
60
+ "web_search",
55
61
  "ui_registry",
56
62
  "ui_adopt",
57
63
  "source_path",
58
64
  "screenshot",
65
+ "debug",
59
66
  "generate_image",
60
67
  "tasks",
61
68
  "send_message",
@@ -1 +1 @@
1
- {"version":3,"file":"tool-tiers.js","sourceRoot":"","sources":["../../src/tools/tool-tiers.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAsB;IAChD,0EAA0E;IAC1E,sEAAsE;IACtE,4EAA4E;IAC5E,UAAU;IACV,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,IAAI;IACJ,aAAa;IACb,UAAU;IACV,YAAY;IACZ,WAAW;IACX,UAAU;IACV,aAAa;IACb,WAAW;IACX,WAAW;IACX,UAAU;IACV,aAAa;IACb,OAAO;IACP,YAAY;IACZ,WAAW;IACX,aAAa;IACb,OAAO;CACR,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,aAAa;IACb,UAAU;IACV,aAAa;IACb,YAAY;IACZ,gBAAgB;IAChB,OAAO;IACP,cAAc;IACd,eAAe;IACf,YAAY;IACZ,aAAa;IACb,iBAAiB;CAClB,CAAC;AAEF,MAAM,YAAY,GAAwB,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;AASvE;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAA2B;IAC9D,MAAM,IAAI,GAAgB,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAgB,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;YAChD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"tool-tiers.js","sourceRoot":"","sources":["../../src/tools/tool-tiers.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAsB;IAChD,0EAA0E;IAC1E,sEAAsE;IACtE,4EAA4E;IAC5E,UAAU;IACV,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,IAAI;IACJ,aAAa;IACb,UAAU;IACV,WAAW;IACX,UAAU;IACV,aAAa;IACb,WAAW;IACX,WAAW;IACX,UAAU;IACV,aAAa;IACb,OAAO;IACP,YAAY;IACZ,WAAW;IACX,aAAa;IACb,OAAO;CACR,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,YAAY;IACZ,aAAa;IACb,UAAU;IACV,aAAa;IACb,YAAY;IACZ,OAAO;IACP,gBAAgB;IAChB,OAAO;IACP,cAAc;IACd,eAAe;IACf,YAAY;IACZ,aAAa;IACb,iBAAiB;CAClB,CAAC;AAEF,MAAM,YAAY,GAAwB,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;AASvE;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAA2B;IAC9D,MAAM,IAAI,GAAgB,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAgB,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;YAChD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5B,CAAC"}
@@ -18,3 +18,24 @@ export declare function truncateHead(content: string, maxLines?: number, maxByte
18
18
  * Used by the bash tool.
19
19
  */
20
20
  export declare function truncateTail(content: string, maxLines?: number, maxBytes?: number): TruncateResult;
21
+ /** Hard cap on the descriptor appended to a truncation note. */
22
+ export declare const OMITTED_NOTE_MAX_CHARS = 300;
23
+ /**
24
+ * Describe WHAT a truncation dropped, so the agent can decide whether to fetch
25
+ * the rest (modelled on headroomlabs-ai/headroom PR #3635's CCR descriptor):
26
+ * error/warning line counts, distinct error codes / exception names, distinct
27
+ * source files referenced by diagnostics/stack frames, and the first few
28
+ * distinct error lines. Labels, files and sample lines already visible in
29
+ * `shown` are left out — the note justifies retrieval, it doesn't restate.
30
+ *
31
+ * Returns `""` when nothing notable was cut (the note stays byte-identical),
32
+ * otherwise `"Omitted part: …."`, never longer than OMITTED_NOTE_MAX_CHARS.
33
+ * Deterministic: first-appearance order, no hashing or randomness.
34
+ */
35
+ export declare function describeOmitted(omitted: readonly string[], shown: string): string;
36
+ /**
37
+ * `describeOmitted` for a non-positional cut (content-aware compression):
38
+ * the omitted lines are the original lines with no counterpart in `shown`.
39
+ * Repeats collapsed to `line (×N)` / `(×N similar)` count as shown.
40
+ */
41
+ export declare function describeCompressed(original: string, shown: string): string;
@@ -58,4 +58,191 @@ export function truncateTail(content, maxLines = MAX_LINES, maxBytes = MAX_BYTES
58
58
  keptLines: kept.length,
59
59
  };
60
60
  }
61
+ /* ----------------------------------------------------------------------- */
62
+ /* "What was cut" descriptor for truncation notes */
63
+ /* ----------------------------------------------------------------------- */
64
+ /** Hard cap on the descriptor appended to a truncation note. */
65
+ export const OMITTED_NOTE_MAX_CHARS = 300;
66
+ const SAMPLE_MAX_CHARS = 80;
67
+ const MAX_SAMPLES = 3;
68
+ const MAX_LABELS = 3;
69
+ const MAX_FILES = 3;
70
+ /** Cheap gate: a line that can't contain any of these is never error/warn-shaped. */
71
+ const DIAG_PREFILTER = /err|fail|fatal|panic|exception|traceback|crit|warn|caused by|not ok|[✗✖❌×]/i;
72
+ // Optional leading timestamp / [bracketed] prefix before an UPPERCASE log level.
73
+ const LOG_PREFIX = String.raw `^\W{0,4}(?:[\d\-/:.,TZ+]+\s+|\[[^\]]{1,40}\]\s*)*`;
74
+ const LEVEL_END = String.raw `(?=[\s:\]!|]|$)(?!\s*[=,;)])`;
75
+ /**
76
+ * Shape-based (not keyword-based) error-line detectors, so source code being
77
+ * paged through by `read` (`throw new Error(...)`, `console.error(...)`) does
78
+ * not count — only lines that look like a diagnostic / log record.
79
+ */
80
+ const ERROR_LINE = [
81
+ new RegExp(`${LOG_PREFIX}(?:ERROR|ERR!|FATAL|CRITICAL|PANIC|FAIL(?:ED|URE)?)${LEVEL_END}`),
82
+ /^(?:error|fatal)(?:\[[\w-]+\])?:\s/i, // rustc/cargo/git/CLI `error: …` (column 0)
83
+ /^npm ERR!/,
84
+ /\.\w{1,6}(?::\d+){1,2}:?\s*(?:fatal\s+)?error\b/i, // gcc/clang `f.c:1:2: error:`
85
+ /\(\d+,\d+\):\s*error\b/, // tsc `f.ts(1,2): error TS…`
86
+ /^\s*\d+:\d+\s+error\s/, // eslint stylish
87
+ /^\s*(?:E\s+)?(?:Uncaught\s+)?[A-Z][\w.$]*(?:Error|Exception)(?:\s*\[[\w-]+\])?:(?:\s|$)/,
88
+ /^Traceback \(most recent call last\)/,
89
+ /^\s*(?:✗|✖|❌|not ok\b|--- FAIL\b)/,
90
+ /^thread '.*' panicked|^panic:/,
91
+ /^\s*Caused by:/,
92
+ /\blevel[=:]\s*"?(?:error|fatal)\b/i,
93
+ ];
94
+ const WARN_LINE = [
95
+ new RegExp(`${LOG_PREFIX}(?:WARN(?:ING)?)${LEVEL_END}`),
96
+ /^warn(?:ing)?(?:\[[\w-]+\])?:\s/i,
97
+ /^npm WARN\b/,
98
+ /\.\w{1,6}(?::\d+){1,2}:?\s*warning\b/i,
99
+ /\(\d+,\d+\):\s*warning\b/,
100
+ /^\s*\d+:\d+\s+warning\s/,
101
+ /^\s*[A-Z]\w*Warning:\s/,
102
+ /\blevel[=:]\s*"?warn(?:ing)?\b/i,
103
+ ];
104
+ /** Error codes / exception names (headroom #3635's "exception types"). */
105
+ const LABEL_RES = [
106
+ /\berror\[([A-Z]?\d{3,5})\]/, // rustc E0425
107
+ /\berror\s+(TS\d{3,5})\b/, // tsc TS2345
108
+ /^\s*(?:E\s+)?(?:Uncaught\s+)?(?:[\w$]+\.)*([A-Z][\w$]*(?:Error|Exception|Warning))\b(?:\s*\[[\w-]+\])?:/,
109
+ /\b(E(?:NOENT|ACCES|PERM|ADDRINUSE|CONNREFUSED|CONNRESET|TIMEDOUT|EXIST|ISDIR|NOTDIR|NOTEMPTY|MFILE|PIPE|NOTFOUND|HOSTUNREACH)|ERR_[A-Z0-9_]{3,})\b/,
110
+ ];
111
+ const SRC_EXT = "ts|tsx|js|jsx|mjs|cjs|mts|cts|py|rs|go|java|kt|kts|rb|php|c|h|cc|cpp|cxx|hpp|cs|swift|m|mm|scala|ex|exs|erl|hs|ml|lua|sh|vue|svelte|json|ya?ml|toml|css|scss|less|html|sql|proto|zig|dart";
112
+ /** A source path followed by a line location: `a/b.ts:12`, `b.ts(3,4)`. */
113
+ const FILE_LOC = new RegExp(String.raw `(?:^|[\s(\["'\`])((?:[\w.@~+-]*/)*[\w@+-][\w.@+-]*\.(?:${SRC_EXT}))(?::\d+|\(\d+,\d+\))`);
114
+ const PY_FILE = /File "([^"]+)", line \d+/;
115
+ const RUST_FILE = /-->\s*([^\s:]+):\d+/;
116
+ /** Lines whose file references are diagnostic (stack frames, locations). */
117
+ const FRAME_LINE = new RegExp(String.raw `^\s*(?:at\s|File "|-->|from\s)|^\S+\.(?:${SRC_EXT})(?::\d+|\(\d+,\d+\))`);
118
+ /** Object-literal / call-argument continuation lines in source code. */
119
+ const CODE_TAIL = /[,{([]\s*$/;
120
+ function isError(line) {
121
+ return (DIAG_PREFILTER.test(line) && !CODE_TAIL.test(line) && ERROR_LINE.some((re) => re.test(line)));
122
+ }
123
+ function isWarning(line) {
124
+ return (DIAG_PREFILTER.test(line) && !CODE_TAIL.test(line) && WARN_LINE.some((re) => re.test(line)));
125
+ }
126
+ function extractFile(line) {
127
+ return (PY_FILE.exec(line) ?? RUST_FILE.exec(line) ?? FILE_LOC.exec(line))?.[1];
128
+ }
129
+ function shorten(s, max) {
130
+ return s.length <= max ? s : `${s.slice(0, max - 1)}…`;
131
+ }
132
+ /** Last two path segments — enough to identify a file without eating the cap. */
133
+ function shortPath(p) {
134
+ const parts = p.split(/[\\/]/).filter(Boolean);
135
+ return parts.length <= 2 ? parts.join("/") : `…/${parts.slice(-2).join("/")}`;
136
+ }
137
+ function listWithMore(items, max) {
138
+ const shown = items.slice(0, max).join(", ");
139
+ return items.length > max ? `${shown}, +${items.length - max}` : shown;
140
+ }
141
+ /**
142
+ * Describe WHAT a truncation dropped, so the agent can decide whether to fetch
143
+ * the rest (modelled on headroomlabs-ai/headroom PR #3635's CCR descriptor):
144
+ * error/warning line counts, distinct error codes / exception names, distinct
145
+ * source files referenced by diagnostics/stack frames, and the first few
146
+ * distinct error lines. Labels, files and sample lines already visible in
147
+ * `shown` are left out — the note justifies retrieval, it doesn't restate.
148
+ *
149
+ * Returns `""` when nothing notable was cut (the note stays byte-identical),
150
+ * otherwise `"Omitted part: …."`, never longer than OMITTED_NOTE_MAX_CHARS.
151
+ * Deterministic: first-appearance order, no hashing or randomness.
152
+ */
153
+ export function describeOmitted(omitted, shown) {
154
+ let errors = 0;
155
+ let warnings = 0;
156
+ const labels = new Set();
157
+ const files = new Set();
158
+ const samples = [];
159
+ const sampleKeys = new Set();
160
+ // Everything already tested against `shown` (hit or miss) — each distinct
161
+ // candidate costs one substring scan, however often it repeats.
162
+ const checked = new Set();
163
+ const isNew = (s) => {
164
+ if (checked.has(s))
165
+ return false;
166
+ checked.add(s);
167
+ return !shown.includes(s);
168
+ };
169
+ for (const line of omitted) {
170
+ const err = isError(line);
171
+ const warn = !err && isWarning(line);
172
+ if (err)
173
+ errors++;
174
+ else if (warn)
175
+ warnings++;
176
+ if (err || warn) {
177
+ for (const re of LABEL_RES) {
178
+ const label = re.exec(line)?.[1];
179
+ if (label && isNew(label))
180
+ labels.add(label);
181
+ }
182
+ }
183
+ if (err || warn || FRAME_LINE.test(line)) {
184
+ const file = extractFile(line);
185
+ if (file && isNew(file))
186
+ files.add(file);
187
+ }
188
+ if (err && samples.length < MAX_SAMPLES) {
189
+ const text = line.trim().replace(/\s+/g, " ");
190
+ // Distinct modulo numbers, so a retry loop doesn't fill every slot.
191
+ const key = text.replace(/\d+/g, "#");
192
+ if (text && !sampleKeys.has(key) && isNew(line.trim())) {
193
+ sampleKeys.add(key);
194
+ samples.push(text);
195
+ }
196
+ }
197
+ }
198
+ if (errors === 0 && warnings === 0 && files.size === 0)
199
+ return "";
200
+ const parts = [];
201
+ if (errors || warnings) {
202
+ const plural = (n, what) => `${n} ${what} line${n === 1 ? "" : "s"}`;
203
+ const counts = [errors && plural(errors, "error"), warnings && plural(warnings, "warning")]
204
+ .filter(Boolean)
205
+ .join(", ");
206
+ const labelList = labels.size ? ` (${listWithMore([...labels], MAX_LABELS)})` : "";
207
+ parts.push(`${counts}${labelList}`);
208
+ }
209
+ if (files.size) {
210
+ const names = [...files].map(shortPath);
211
+ parts.push(`${files.size} file${files.size === 1 ? "" : "s"}: ${listWithMore(names, MAX_FILES)}`);
212
+ }
213
+ const head = `Omitted part: ${parts.join("; ")}`;
214
+ let note = `${head}.`;
215
+ // Add sample error lines while they fit under the hard cap.
216
+ const quoted = [];
217
+ for (const s of samples) {
218
+ const next = [...quoted, `"${shorten(s, SAMPLE_MAX_CHARS)}"`];
219
+ const candidate = `${head}; first: ${next.join(" | ")}.`;
220
+ if (candidate.length > OMITTED_NOTE_MAX_CHARS)
221
+ break;
222
+ quoted.push(next[next.length - 1]);
223
+ note = candidate;
224
+ }
225
+ return shorten(note, OMITTED_NOTE_MAX_CHARS);
226
+ }
227
+ /** Timestamps / hex addresses vary across "similar" repeats — ignore them. */
228
+ function looseKey(line) {
229
+ return line
230
+ .replace(/\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(?:\.\d+)?Z?/g, "")
231
+ .replace(/\b\d{2}:\d{2}:\d{2}(?:\.\d+)?\b/g, "")
232
+ .replace(/0x[0-9a-f]+/gi, "")
233
+ .trim();
234
+ }
235
+ /**
236
+ * `describeOmitted` for a non-positional cut (content-aware compression):
237
+ * the omitted lines are the original lines with no counterpart in `shown`.
238
+ * Repeats collapsed to `line (×N)` / `(×N similar)` count as shown.
239
+ */
240
+ export function describeCompressed(original, shown) {
241
+ const shownKeys = new Set();
242
+ for (const l of shown.split("\n")) {
243
+ shownKeys.add(looseKey(l.replace(/ {2}\(×\d+(?: similar)?\)$/, "")));
244
+ }
245
+ const omitted = original.split("\n").filter((l) => !shownKeys.has(looseKey(l)));
246
+ return describeOmitted(omitted, shown);
247
+ }
61
248
  //# sourceMappingURL=truncate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"truncate.js","sourceRoot":"","sources":["../../src/tools/truncate.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC;AAC9B,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO;AAE3C,sFAAsF;AACtF,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC;AASnC;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAe,EACf,QAAQ,GAAG,SAAS,EACpB,QAAQ,GAAG,SAAS;IAEpB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;IAEhC,sBAAsB;IACtB,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEpC,sBAAsB;IACtB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB;QAClE,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;YACpB,QAAQ,GAAG,CAAC,CAAC;YACb,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAE/B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;IAC3C,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACxB,SAAS;QACT,UAAU;QACV,SAAS,EAAE,IAAI,CAAC,MAAM;KACvB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAe,EACf,QAAQ,GAAG,SAAS,EACpB,QAAQ,GAAG,SAAS;IAEpB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;IAEhC,oCAAoC;IACpC,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;IAElC,0CAA0C;IAC1C,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;YACpB,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;YACjB,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAE5B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;IAC3C,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACxB,SAAS;QACT,UAAU;QACV,SAAS,EAAE,IAAI,CAAC,MAAM;KACvB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"truncate.js","sourceRoot":"","sources":["../../src/tools/truncate.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,8 @@ const params = z.object({
12
12
  export function createUiAdoptTool(cwd, registry, writer, planModeRef) {
13
13
  return {
14
14
  name: "ui_adopt",
15
+ // Apply writes several files; a steering message must not leave it half-done.
16
+ interruptible: false,
15
17
  description: "Plan then adopt real public Bklit/Kokonut registry source into an existing React project. Reports dependency closure, relocated imports, missing packages/styles, attribution and conflicts. Apply requires the unchanged plan hash, only creates new component files through normal write controls, and never installs packages or overwrites user files.",
16
18
  parameters: params,
17
19
  executionMode: "sequential",
@@ -1 +1 @@
1
- {"version":3,"file":"ui-adopt.js","sourceRoot":"","sources":["../../src/tools/ui-adopt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui-adopt.js","sourceRoot":"","sources":["../../src/tools/ui-adopt.ts"],"names":[],"mappings":"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"}
package/dist/ui/App.d.ts CHANGED
@@ -10,8 +10,6 @@ import { type PlanStep } from "../utils/plan-steps.js";
10
10
  import type { MCPClientManager } from "../core/mcp/index.js";
11
11
  import type { AuthStorage } from "../core/auth-storage.js";
12
12
  import type { TerminalHistoryPrinter } from "./terminal-history.js";
13
- import { type ReviewCoverageTracker } from "../core/ideal-review.js";
14
- import type { LspManager } from "../core/lsp/manager.js";
15
13
  import { type DoneStatus } from "./layout-decisions.js";
16
14
  import type { GoalMode } from "../core/runtime-mode.js";
17
15
  import type { GoalRun } from "../core/goal-store.js";
@@ -65,8 +63,6 @@ export interface AppProps {
65
63
  sessionId?: string;
66
64
  processManager?: ProcessManager;
67
65
  subAgentManager?: SubAgentManager;
68
- lspManager?: LspManager;
69
- reviewCoverageTracker?: ReviewCoverageTracker;
70
66
  settingsFile?: string;
71
67
  mcpManager?: MCPClientManager;
72
68
  authStorage?: AuthStorage;
package/dist/ui/App.js CHANGED
@@ -19,6 +19,7 @@ import { VerificationGate, isCodeFilePath, isVerificationCommand, } from "../cor
19
19
  import { useAgentLoop } from "./hooks/useAgentLoop.js";
20
20
  import { useTranscriptHistory } from "./hooks/useTranscriptHistory.js";
21
21
  import { createWebSearchTool } from "../tools/web-search.js";
22
+ import { editTargetPaths } from "../tools/edit-targets.js";
22
23
  import { ChatScreen } from "./components/ChatScreen.js";
23
24
  import { LIVE_TOOL_PANEL_ROWS } from "./components/LiveToolPanel.js";
24
25
  import { FullScreenOverlayRouter } from "./components/FullScreenOverlayRouter.js";
@@ -46,7 +47,6 @@ import { getNextPendingTask, markTaskInProgress } from "../core/task-store.js";
46
47
  import { buildUserContentWithAttachments } from "./prompt-routing.js";
47
48
  import { submitPromptCommand } from "./submit-prompt-command.js";
48
49
  import { handleUiSlashCommand } from "./submit-slash-commands.js";
49
- import { buildIdealReviewMessage, evaluateIdealReview, detectTestDrift, } from "../core/ideal-review.js";
50
50
  import { buildLoopBreakMessage, evaluateLoopBreak } from "../core/loop-breaker.js";
51
51
  import { buildRegroundingMessage } from "../core/regrounding.js";
52
52
  import { getNextThinkingLevel, isThinkingLevelSupported } from "./thinking-level.js";
@@ -68,7 +68,7 @@ import { formatGoalVerifierCompletionEvent, formatGoalWorkerCompletionEvent, } f
68
68
  import { buildGoalFinalSummarySections, buildGoalSummaryRows, goalPassedDetail, } from "./goal-summary.js";
69
69
  import { addLinesChanged, buildSessionSummary, createSessionStats, recordServerToolCall, recordToolEnd, recordTurnEnd, } from "./session-summary.js";
70
70
  import { compactHistory, getNextGeneratedItemId, isActiveItem, isSameAssistantText, normalizeAssistantText, partitionCompleted, pinStreamingTextBeforeToolBoundary, removeItemsWithIds, uniqueItemsById, } from "./item-helpers.js";
71
- import { IDEAL_HOOK_NOTICE_TEXT, LOOP_BREAK_NOTICE_TEXT, REGROUNDING_NOTICE_TEXT, VERIFICATION_HOOK_NOTICE_TEXT, TRUNCATED_CONTINUING_NOTICE_TEXT, TRUNCATED_INCOMPLETE_NOTICE_TEXT, TRUNCATED_EMPTY_RESPONSE_NOTICE_TEXT, TRUNCATED_PROVIDER_ERROR_NOTICE_TEXT, TRUNCATED_REFUSAL_NOTICE_TEXT, lastVisibleTranscriptItem, } from "./app-items.js";
71
+ import { LOOP_BREAK_NOTICE_TEXT, REGROUNDING_NOTICE_TEXT, VERIFICATION_HOOK_NOTICE_TEXT, TRUNCATED_CONTINUING_NOTICE_TEXT, TRUNCATED_INCOMPLETE_NOTICE_TEXT, TRUNCATED_EMPTY_RESPONSE_NOTICE_TEXT, TRUNCATED_PROVIDER_ERROR_NOTICE_TEXT, TRUNCATED_REFUSAL_NOTICE_TEXT, lastVisibleTranscriptItem, } from "./app-items.js";
72
72
  export { buildUserContentWithAttachments, routePromptCommandInput } from "./prompt-routing.js";
73
73
  export { getNextThinkingLevel } from "./thinking-level.js";
74
74
  export { getChatControlsLayoutDecision, getDoneFlushDecision, getScrollStabilizationDecision, getStaticHistoryKey, hasParagraphBreakLiveUserMessage, isTallLiveUserMessage, shouldHideHistoryForOverlayView, shouldHideStaticItemsForOverlayView, shouldStabilizeOverlayPaneRerender, shouldTopSpaceAfterPrintedAgentBoundary, shouldTopSpaceAssistantAfterToolBoundary, shouldTopSpaceStreamingAssistant, } from "./layout-decisions.js";
@@ -845,28 +845,6 @@ export function App(props) {
845
845
  projectId: activeProjectId,
846
846
  resolveCredentials,
847
847
  transformContext,
848
- lspManager: props.lspManager,
849
- reviewCoverageTracker: props.reviewCoverageTracker,
850
- getIdealReviewMessage: (stats, touchedFiles) => {
851
- if (!idealReviewEnabledRef.current)
852
- return null;
853
- const decision = evaluateIdealReview(stats);
854
- // Test drift fires the review even when the volume score is too low to
855
- // trigger on its own \u2014 a stale sibling test is invisible to typecheck.
856
- const driftedFiles = detectTestDrift(touchedFiles, process.cwd()).slice(0, 5);
857
- if (!decision.shouldReview && driftedFiles.length === 0)
858
- return null;
859
- log("INFO", "ideal", "Injecting ideal review before final response", {
860
- score: String(decision.score),
861
- reasons: decision.reasons.join(", "),
862
- testDrift: driftedFiles.join(", "),
863
- });
864
- setLiveItems((prev) => [
865
- ...prev,
866
- { kind: "ideal_hook", text: IDEAL_HOOK_NOTICE_TEXT, tone: "review", id: getId() },
867
- ]);
868
- return buildIdealReviewMessage(decision.reasons, driftedFiles);
869
- },
870
848
  getLoopBreakMessage: (stats, stage) => {
871
849
  if (!idealReviewEnabledRef.current)
872
850
  return null;
@@ -1162,9 +1140,12 @@ export function App(props) {
1162
1140
  // Verification-gate bookkeeping, mirroring AgentSession.trackHookEvent:
1163
1141
  // successful code mutations vs completed foreground verification runs.
1164
1142
  if (!isError && args) {
1165
- const filePath = String(args.file_path ?? "");
1166
- if ((name === "edit" || name === "write") && isCodeFilePath(filePath)) {
1167
- verificationGateRef.current.recordMutation(filePath);
1143
+ if (name === "edit" || name === "write") {
1144
+ // A multi-file edit has no top-level file_path: record every target.
1145
+ for (const filePath of editTargetPaths(args)) {
1146
+ if (isCodeFilePath(filePath))
1147
+ verificationGateRef.current.recordMutation(filePath);
1148
+ }
1168
1149
  }
1169
1150
  if (name === "bash" &&
1170
1151
  !args.run_in_background &&
@@ -2114,8 +2095,8 @@ export function App(props) {
2114
2095
  {
2115
2096
  kind: "info",
2116
2097
  text: next
2117
- ? "Ideal review enabled. Use /ideal-off to disable it."
2118
- : "Ideal review disabled. Use /ideal-on to enable it.",
2098
+ ? "Loop-break and re-grounding nudges enabled. Use /ideal-off to disable them."
2099
+ : "Loop-break and re-grounding nudges disabled. Use /ideal-on to enable them.",
2119
2100
  id: getId(),
2120
2101
  },
2121
2102
  ]);
@@ -2601,8 +2582,8 @@ export function App(props) {
2601
2582
  name: idealReviewEnabled ? "ideal-off" : "ideal-on",
2602
2583
  aliases: [],
2603
2584
  description: idealReviewEnabled
2604
- ? "Disable pre-final ideal review"
2605
- : "Enable pre-final ideal review",
2585
+ ? "Disable loop-break and re-grounding nudges"
2586
+ : "Enable loop-break and re-grounding nudges",
2606
2587
  sectionTitle: "built-in",
2607
2588
  },
2608
2589
  {