@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,7 +1,8 @@
1
1
  import { z } from "zod";
2
2
  import { isPlanModeActive, planModeRestriction } from "../core/runtime-mode.js";
3
3
  import { renderAgentRoster } from "./subagent-shared.js";
4
- import { DEFAULT_WAIT_MS, MAX_WAIT_MS } from "../core/subagent-manager.js";
4
+ import { AcceptanceChecksParam } from "../core/acceptance-checks.js";
5
+ import { ACTIVE_LIMIT, DEFAULT_WAIT_MS, MAX_WAIT_MS } from "../core/subagent-manager.js";
5
6
  const AgentId = z.string().min(1).describe("Eight-character agent ID returned by spawn_agent");
6
7
  function json(value) {
7
8
  return { content: JSON.stringify(value) };
@@ -16,7 +17,7 @@ export function createSubAgentControlTools(manager, planModeRef) {
16
17
  const agentParam = (agentNames.length > 0 ? z.enum(agentNames) : z.string())
17
18
  .optional()
18
19
  .describe("Named agent definition to run this task as; omit for a general-purpose child");
19
- const spawnParams = z.object({
20
+ const taskParams = z.object({
20
21
  task_name: z.string().min(1).describe("Short unique name for this delegated task"),
21
22
  task: z
22
23
  .string()
@@ -24,12 +25,27 @@ export function createSubAgentControlTools(manager, planModeRef) {
24
25
  .describe("Standalone task instruction. The child sees none of this conversation, so state the " +
25
26
  "objective, the paths involved, and what to return."),
26
27
  agent: agentParam,
28
+ checks: AcceptanceChecksParam,
29
+ });
30
+ // A list, so one call starts every child: on models that send one tool call
31
+ // per turn (GPT-6.x), a one-child-per-call shape cost a model turn per child
32
+ // (bench 41: 8 children 66.8s → 31.9s, parent tokens −57%).
33
+ const spawnParams = z.object({
34
+ tasks: z
35
+ .array(taskParams)
36
+ .min(1)
37
+ .max(ACTIVE_LIMIT)
38
+ .describe("Every independent child to start now, one entry each"),
27
39
  });
28
40
  const spawnTool = {
29
41
  name: "spawn_agent",
30
- description: "Start an isolated persistent child agent and return immediately after launch. " +
31
- "Start all independent agents, then keep working \u2014 each child announces its own " +
32
- "completion to you, so you do not need to wait or poll. Shared files are not isolated." +
42
+ // Starting children is quick but not undoable: an interrupted call would
43
+ // leave running agents whose ids the model never saw.
44
+ interruptible: false,
45
+ description: "Start isolated persistent child agents and return immediately after launch. " +
46
+ "Put every independent child in ONE call's `tasks` list, then keep working \u2014 each " +
47
+ "child announces its own completion to you, so you do not need to wait or poll. " +
48
+ "Shared files are not isolated." +
33
49
  renderAgentRoster(manager.agents),
34
50
  parameters: spawnParams,
35
51
  executionMode: "parallel",
@@ -37,7 +53,23 @@ export function createSubAgentControlTools(manager, planModeRef) {
37
53
  const restriction = blocked("spawn_agent");
38
54
  if (restriction)
39
55
  return restriction;
40
- return json(await manager.spawn(args.task_name, args.task, args.agent));
56
+ // Each spawn runs its limit and duplicate-name checks and registers its
57
+ // worker before its first await, so starting them together cannot
58
+ // exceed ACTIVE_LIMIT or the per-model cap.
59
+ const settled = await Promise.allSettled(args.tasks.map((t) => t.checks
60
+ ? manager.spawn(t.task_name, t.task, t.agent, { checks: t.checks })
61
+ : manager.spawn(t.task_name, t.task, t.agent)));
62
+ const results = settled.map((result, index) => result.status === "fulfilled"
63
+ ? result.value
64
+ : {
65
+ task_name: args.tasks[index]?.task_name,
66
+ error: result.reason instanceof Error ? result.reason.message : String(result.reason),
67
+ });
68
+ // Nothing started: fail the call, as a single failed spawn always has.
69
+ if (settled.every((result) => result.status === "rejected")) {
70
+ throw new Error(`No agent started: ${JSON.stringify(results)}`);
71
+ }
72
+ return json(results);
41
73
  },
42
74
  };
43
75
  const messageParams = z.object({ agent_id: AgentId, message: z.string().min(1) });
@@ -55,7 +87,11 @@ export function createSubAgentControlTools(manager, planModeRef) {
55
87
  });
56
88
  },
57
89
  };
58
- const followupParams = z.object({ agent_id: AgentId, task: z.string().min(1) });
90
+ const followupParams = z.object({
91
+ agent_id: AgentId,
92
+ task: z.string().min(1),
93
+ checks: AcceptanceChecksParam,
94
+ });
59
95
  const followupTool = {
60
96
  name: "followup_task",
61
97
  description: "Start another turn in an idle child while preserving that child's context.",
@@ -64,7 +100,7 @@ export function createSubAgentControlTools(manager, planModeRef) {
64
100
  const restriction = blocked("followup_task");
65
101
  if (restriction)
66
102
  return restriction;
67
- return json(await manager.followup(args.agent_id, args.task));
103
+ return json(await manager.followup(args.agent_id, args.task, args.checks));
68
104
  },
69
105
  };
70
106
  const waitParams = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-control.js","sourceRoot":"","sources":["../../src/tools/subagent-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subagent-control.js","sourceRoot":"","sources":["../../src/tools/subagent-control.ts"],"names":[],"mappings":"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"}
@@ -32,20 +32,29 @@ export interface SubAgentSelection {
32
32
  provider: Provider;
33
33
  parentModel: string;
34
34
  model: string;
35
+ /** Thinking level the child runs at — see {@link subAgentThinkingLevel}. */
36
+ thinkingLevel: ThinkingLevel | undefined;
35
37
  }
36
38
  export declare function resolveAgentDefinition(agents: AgentDefinition[], requestedName?: string): AgentDefinition | undefined;
37
39
  export declare function selectSubAgent(agents: AgentDefinition[], requestedName: string | undefined, provider: Provider, parentModel: string): SubAgentSelection;
38
40
  /**
39
41
  * Resolve which model a named agent runs on.
40
42
  *
41
- * The choice is declared in the agent's `model:` frontmatter, never inferred.
42
- * This used to guess: any agent without bash/write/edit was treated as
43
- * "read-only" and silently routed to the provider's cheapest tier — so every
44
- * research, recon and audit agent always ran on a Haiku-class model, invisibly
45
- * and with no way to override it. Defaulting to the parent's model instead
46
- * makes a downgrade opt-in and one line of frontmatter away.
43
+ * Sub-agents never get a weaker model of their own: no `model:` frontmatter,
44
+ * `inherit`, and the legacy `fast` all run on the parent's model. An explicit
45
+ * model id is honoured as written, since that is a choice the user made in
46
+ * their own agent definition.
47
47
  */
48
- export declare function resolveAgentModel(agentDef: AgentDefinition | undefined, provider: Provider, parentModel: string): string;
48
+ export declare function resolveAgentModel(agentDef: AgentDefinition | undefined, parentModel: string): string;
49
+ /**
50
+ * The thinking level EVERY sub-agent runs at: the lowest rung of the model it
51
+ * actually runs on — never off, and never the parent's level. Delegated work
52
+ * is scoped and briefed, so it reasons briefly on the full-strength model.
53
+ * Resolved per model (not copied from the parent) because ladders differ: a
54
+ * model-unavailable retry on the parent model must use the PARENT's lowest
55
+ * rung, not one the pinned model happened to accept.
56
+ */
57
+ export declare function subAgentThinkingLevel(provider: Provider, model: string): ThinkingLevel | undefined;
49
58
  /**
50
59
  * Render the agent roster for a tool description.
51
60
  *
@@ -54,7 +63,19 @@ export declare function resolveAgentModel(agentDef: AgentDefinition | undefined,
54
63
  * name — which either errors or, worse, silently spawns a generic child.
55
64
  */
56
65
  export declare function renderAgentRoster(agents: readonly AgentDefinition[]): string;
57
- export declare function childThinkingLevel(level: ThinkingLevel | undefined): ThinkingLevel | undefined;
66
+ /** One child started by a recorded `spawn_agent` call. */
67
+ export interface SpawnedTaskArgs {
68
+ task_name?: string;
69
+ task?: string;
70
+ agent?: string;
71
+ }
72
+ /**
73
+ * The children a recorded `spawn_agent` call started, for rebuilding history:
74
+ * `{ tasks: [...] }` today, or the single `{ task_name, task, agent }` that
75
+ * sessions saved before batch launch carry. Untrusted session data, so only
76
+ * string fields are kept.
77
+ */
78
+ export declare function spawnedTasks(args: unknown): SpawnedTaskArgs[];
58
79
  export declare function subAgentCacheKey(parentCacheKey: string | undefined, model: string, agentName?: string): string | undefined;
59
80
  export declare function currentSubAgentDepth(env?: NodeJS.ProcessEnv): number;
60
81
  export declare function childSubAgentEnv(env?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
@@ -1,6 +1,6 @@
1
1
  import { existsSync } from "node:fs";
2
2
  import { fileURLToPath } from "node:url";
3
- import { getFastModel } from "../core/model-registry.js";
3
+ import { getLowestThinkingLevel } from "../core/thinking-level.js";
4
4
  import { truncateTail } from "./truncate.js";
5
5
  export const SUB_AGENT_MAX_TURNS = 50;
6
6
  /**
@@ -27,31 +27,40 @@ export function resolveAgentDefinition(agents, requestedName) {
27
27
  }
28
28
  export function selectSubAgent(agents, requestedName, provider, parentModel) {
29
29
  const agentDef = resolveAgentDefinition(agents, requestedName);
30
+ const model = resolveAgentModel(agentDef, parentModel);
30
31
  return {
31
32
  agentDef,
32
33
  provider,
33
34
  parentModel,
34
- model: resolveAgentModel(agentDef, provider, parentModel),
35
+ model,
36
+ thinkingLevel: subAgentThinkingLevel(provider, model),
35
37
  };
36
38
  }
37
39
  /**
38
40
  * Resolve which model a named agent runs on.
39
41
  *
40
- * The choice is declared in the agent's `model:` frontmatter, never inferred.
41
- * This used to guess: any agent without bash/write/edit was treated as
42
- * "read-only" and silently routed to the provider's cheapest tier — so every
43
- * research, recon and audit agent always ran on a Haiku-class model, invisibly
44
- * and with no way to override it. Defaulting to the parent's model instead
45
- * makes a downgrade opt-in and one line of frontmatter away.
42
+ * Sub-agents never get a weaker model of their own: no `model:` frontmatter,
43
+ * `inherit`, and the legacy `fast` all run on the parent's model. An explicit
44
+ * model id is honoured as written, since that is a choice the user made in
45
+ * their own agent definition.
46
46
  */
47
- export function resolveAgentModel(agentDef, provider, parentModel) {
47
+ export function resolveAgentModel(agentDef, parentModel) {
48
48
  const preference = agentDef?.model?.trim();
49
- if (!preference || preference === "inherit")
49
+ if (!preference || preference === "inherit" || preference === "fast")
50
50
  return parentModel;
51
- if (preference === "fast")
52
- return getFastModel(provider, parentModel).id;
53
51
  return preference;
54
52
  }
53
+ /**
54
+ * The thinking level EVERY sub-agent runs at: the lowest rung of the model it
55
+ * actually runs on — never off, and never the parent's level. Delegated work
56
+ * is scoped and briefed, so it reasons briefly on the full-strength model.
57
+ * Resolved per model (not copied from the parent) because ladders differ: a
58
+ * model-unavailable retry on the parent model must use the PARENT's lowest
59
+ * rung, not one the pinned model happened to accept.
60
+ */
61
+ export function subAgentThinkingLevel(provider, model) {
62
+ return getLowestThinkingLevel(provider, model);
63
+ }
55
64
  /**
56
65
  * Render the agent roster for a tool description.
57
66
  *
@@ -65,8 +74,30 @@ export function renderAgentRoster(agents) {
65
74
  const list = agents.map((agent) => `- ${agent.name}: ${agent.description}`).join("\n");
66
75
  return `\n\nAvailable named agents:\n${list}`;
67
76
  }
68
- export function childThinkingLevel(level) {
69
- return level === "ultra" ? "max" : level;
77
+ /**
78
+ * The children a recorded `spawn_agent` call started, for rebuilding history:
79
+ * `{ tasks: [...] }` today, or the single `{ task_name, task, agent }` that
80
+ * sessions saved before batch launch carry. Untrusted session data, so only
81
+ * string fields are kept.
82
+ */
83
+ export function spawnedTasks(args) {
84
+ if (typeof args !== "object" || args === null)
85
+ return [{}];
86
+ const record = args;
87
+ const entries = Array.isArray(record.tasks) ? record.tasks : [record];
88
+ const tasks = entries
89
+ .filter((entry) => typeof entry === "object" && entry !== null)
90
+ .map((entry) => {
91
+ const out = {};
92
+ if (typeof entry.task_name === "string")
93
+ out.task_name = entry.task_name;
94
+ if (typeof entry.task === "string")
95
+ out.task = entry.task;
96
+ if (typeof entry.agent === "string")
97
+ out.agent = entry.agent;
98
+ return out;
99
+ });
100
+ return tasks.length > 0 ? tasks : [{}];
70
101
  }
71
102
  export function subAgentCacheKey(parentCacheKey, model, agentName = "default") {
72
103
  return parentCacheKey ? `${parentCacheKey}:subagent:${model}:${agentName}` : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-shared.js","sourceRoot":"","sources":["../../src/tools/subagent-shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subagent-shared.js","sourceRoot":"","sources":["../../src/tools/subagent-shared.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,18 @@ import type { AgentTool } from "@prestyj/agent";
3
3
  import { type AgentDefinition } from "../core/agents.js";
4
4
  import { type GoalMode } from "../core/runtime-mode.js";
5
5
  import { type SubAgentTokenUsage } from "./subagent-shared.js";
6
- /** Only retry errors that specifically mean the selected model cannot be used. */
7
- export declare function isModelUnavailableError(stderr: string): boolean;
8
6
  declare const SubAgentParams: z.ZodObject<{
9
7
  task: z.ZodString;
10
8
  agent: z.ZodOptional<z.ZodString>;
11
9
  isolate: z.ZodOptional<z.ZodBoolean>;
10
+ checks: z.ZodOptional<z.ZodArray<z.ZodObject<{
11
+ type: z.ZodEnum<{
12
+ file_exists: "file_exists";
13
+ file_changed: "file_changed";
14
+ command_passed: "command_passed";
15
+ }>;
16
+ target: z.ZodString;
17
+ }, z.core.$strip>>>;
12
18
  }, z.core.$strip>;
13
19
  export interface SubAgentUpdate {
14
20
  toolUseCount: number;
@@ -20,6 +26,12 @@ export interface SubAgentDetails {
20
26
  tokenUsage: SubAgentTokenUsage;
21
27
  durationMs: number;
22
28
  }
29
+ /**
30
+ * The `subagent` tool description. When `spawn_agent` is also active it
31
+ * already carries the full roster, so repeating it here only adds ~1k chars
32
+ * to every request; point at it instead.
33
+ */
34
+ export declare function subAgentDescription(agents: readonly AgentDefinition[], rosterOnSpawnAgent: boolean): string;
23
35
  export declare function createSubAgentTool(cwd: string, agents: AgentDefinition[], getParentProvider: () => string, getParentModel: () => string, getParentCacheKey?: () => string | undefined, planModeRef?: {
24
36
  current: boolean;
25
37
  }, goalModeRef?: {
@@ -3,14 +3,14 @@ import { createInterface } from "node:readline";
3
3
  import { z } from "zod";
4
4
  import { mcpServersForAgent } from "../core/agents.js";
5
5
  import { log } from "../core/logger.js";
6
+ import { isModelUnavailableError } from "../core/model-unavailable.js";
7
+ import { ReceiptRecorder } from "../core/subagent-receipt.js";
8
+ import { AcceptanceChecksParam, formatCheckResults, verifyAcceptanceChecks, } from "../core/acceptance-checks.js";
6
9
  import { getActiveGoalMode, goalModeSubagentRestriction, isPlanModeActive, planModeRestriction, } from "../core/runtime-mode.js";
7
- import { boundSubAgentOutput, childSubAgentEnv, currentSubAgentDepth, MAX_BLOCKING_SUBAGENT_DEPTH, renderAgentRoster, resolveSubAgentCliEntry, selectSubAgent, subAgentCacheKey, SUB_AGENT_MAX_OUTPUT_CHARS, SUB_AGENT_MAX_STDERR_CHARS, SUB_AGENT_MAX_TURNS, SUB_AGENT_TIMEOUT_MS, } from "./subagent-shared.js";
10
+ import { boundSubAgentOutput, childSubAgentEnv, currentSubAgentDepth, MAX_BLOCKING_SUBAGENT_DEPTH, renderAgentRoster, resolveSubAgentCliEntry, selectSubAgent, subAgentCacheKey, subAgentThinkingLevel, SUB_AGENT_MAX_OUTPUT_CHARS, SUB_AGENT_MAX_STDERR_CHARS, SUB_AGENT_MAX_TURNS, SUB_AGENT_TIMEOUT_MS, } from "./subagent-shared.js";
8
11
  import { createWorktree, removeWorktree } from "../core/worktree.js";
9
12
  import { prepareWorktree } from "../core/worktree-setup.js";
10
- /** Only retry errors that specifically mean the selected model cannot be used. */
11
- export function isModelUnavailableError(stderr) {
12
- return /does not recognize the requested model|requested model[^\n]*(?:not available|no access)|model[^\n]*(?:does not exist|not found|not available)/i.test(stderr);
13
- }
13
+ import { editTargetLabel } from "./edit-targets.js";
14
14
  const SubAgentParams = z.object({
15
15
  task: z.string().describe("The task to delegate to the sub-agent"),
16
16
  agent: z
@@ -24,12 +24,24 @@ const SubAgentParams = z.object({
24
24
  "collide with work happening elsewhere. Use when several agents edit at " +
25
25
  "once, or when the child's changes should land on a branch of their own. " +
26
26
  "The copy is removed automatically if the child leaves no commits behind."),
27
+ checks: AcceptanceChecksParam,
27
28
  });
29
+ const SUBAGENT_DESCRIPTION = "Spawn an isolated sub-agent to handle a focused task. The child has its own context, tools, and system prompt and sees none of this conversation, so its task must stand alone. Use this for isolation or parallelism; multiple calls in one tool batch run concurrently.";
30
+ /**
31
+ * The `subagent` tool description. When `spawn_agent` is also active it
32
+ * already carries the full roster, so repeating it here only adds ~1k chars
33
+ * to every request; point at it instead.
34
+ */
35
+ export function subAgentDescription(agents, rosterOnSpawnAgent) {
36
+ if (rosterOnSpawnAgent && agents.length > 0) {
37
+ return `${SUBAGENT_DESCRIPTION}\n\nNamed agents: the same roster listed on \`spawn_agent\`; pass one as \`agent\`.`;
38
+ }
39
+ return SUBAGENT_DESCRIPTION + renderAgentRoster(agents);
40
+ }
28
41
  export function createSubAgentTool(cwd, agents, getParentProvider, getParentModel, getParentCacheKey, planModeRef, goalModeRef) {
29
42
  return {
30
43
  name: "subagent",
31
- description: `Spawn an isolated sub-agent to handle a focused task. The child has its own context, tools, and system prompt and sees none of this conversation, so its task must stand alone. Use this for isolation or parallelism; multiple calls in one tool batch run concurrently.` +
32
- renderAgentRoster(agents),
44
+ description: subAgentDescription(agents, false),
33
45
  parameters: SubAgentParams,
34
46
  // Sub-agents are isolated child processes (own cwd, context, and PID), so
35
47
  // they're safe to run concurrently — unlike bash/edit/write, which mutate
@@ -144,6 +156,13 @@ export function createSubAgentTool(cwd, agents, getParentProvider, getParentMode
144
156
  if (childCacheKey) {
145
157
  cliArgs.push("--prompt-cache-key", childCacheKey);
146
158
  }
159
+ // Without --thinking the child runs with reasoning OFF. Every child
160
+ // runs at the lowest rung of the model THIS attempt uses (the parent
161
+ // model on a retry), same as spawn_agent children.
162
+ const thinkingLevel = subAgentThinkingLevel(useProvider, model);
163
+ if (thinkingLevel) {
164
+ cliArgs.push("--thinking", thinkingLevel);
165
+ }
147
166
  if (agentDef?.systemPrompt) {
148
167
  // --agent-prompt, not --system-prompt: the definition body is composed
149
168
  // with the Tools/project-context/Environment scaffolding instead of
@@ -167,7 +186,7 @@ export function createSubAgentTool(cwd, agents, getParentProvider, getParentMode
167
186
  cliArgs.push(args.task);
168
187
  return cliArgs;
169
188
  };
170
- // Track progress across both attempts. The cheap-model attempt can only
189
+ // Track progress across both attempts. A pinned-model attempt can only
171
190
  // fall back before producing output or using a tool, so these totals remain
172
191
  // an accurate picture of the actual agent run.
173
192
  let toolUseCount = 0;
@@ -199,6 +218,9 @@ export function createSubAgentTool(cwd, agents, getParentProvider, getParentMode
199
218
  };
200
219
  const abortHandler = () => killActiveChild("aborted");
201
220
  context.signal.addEventListener("abort", abortHandler, { once: true });
221
+ // Engine-side record of every tool call the child made; rendered as a
222
+ // receipt the child's model cannot write or forge.
223
+ const receipt = new ReceiptRecorder();
202
224
  return new Promise((resolve) => {
203
225
  const finish = (result) => {
204
226
  context.signal.removeEventListener("abort", abortHandler);
@@ -250,6 +272,7 @@ export function createSubAgentTool(cwd, agents, getParentProvider, getParentMode
250
272
  }
251
273
  break;
252
274
  case "tool_call_start":
275
+ receipt.start(event.toolCallId, event.name, event.args);
253
276
  toolUseCount++;
254
277
  currentActivity = formatToolActivity(event.name, event.args);
255
278
  context.onUpdate?.({
@@ -259,6 +282,7 @@ export function createSubAgentTool(cwd, agents, getParentProvider, getParentMode
259
282
  });
260
283
  break;
261
284
  case "tool_call_end":
285
+ receipt.end(event.toolCallId, event.result, event.isError);
262
286
  break;
263
287
  case "max_turns":
264
288
  hitMaxTurns = true;
@@ -312,7 +336,7 @@ export function createSubAgentTool(cwd, agents, getParentProvider, getParentMode
312
336
  !context.signal.aborted &&
313
337
  isModelUnavailableError(stderr);
314
338
  if (canFallback) {
315
- log("WARN", "subagent", "Cheap sub-agent model unavailable; retrying parent", {
339
+ log("WARN", "subagent", "Pinned sub-agent model unavailable; retrying parent", {
316
340
  provider: useProvider,
317
341
  model,
318
342
  fallbackModel: parentModel,
@@ -340,6 +364,8 @@ export function createSubAgentTool(cwd, agents, getParentProvider, getParentMode
340
364
  model,
341
365
  });
342
366
  const body = boundSubAgentOutput(textOutput);
367
+ const checksBlock = formatCheckResults(verifyAcceptanceChecks(args.checks ?? [], receipt.snapshot(), cwd));
368
+ const receiptBlock = `\n\n${receipt.render(textOutput, cwd)}${checksBlock ? `\n${checksBlock}` : ""}`;
343
369
  if (code !== 0) {
344
370
  // A provider/process failure can happen AFTER the model has emitted
345
371
  // a progress sentence (for example: "I'll read both files now.").
@@ -365,9 +391,13 @@ export function createSubAgentTool(cwd, agents, getParentProvider, getParentMode
365
391
  // "(no output)" for successful empty children. Test the raw
366
392
  // stream here so that placeholder is not mislabeled as partial
367
393
  // model output on failures.
394
+ // The receipt only rides along when there is something to
395
+ // check: partial output or tool calls the child made.
368
396
  content: textOutput
369
- ? `Sub-agent failed (exit ${code}): ${error}\n\nPartial output before failure:\n${body}`
370
- : `Sub-agent failed (exit ${code}): ${error}`,
397
+ ? `Sub-agent failed (exit ${code}): ${error}\n\nPartial output before failure:\n${body}${receiptBlock}`
398
+ : toolUseCount > 0 || checksBlock
399
+ ? `Sub-agent failed (exit ${code}): ${error}${receiptBlock}`
400
+ : `Sub-agent failed (exit ${code}): ${error}`,
371
401
  details,
372
402
  });
373
403
  return;
@@ -375,7 +405,7 @@ export function createSubAgentTool(cwd, agents, getParentProvider, getParentMode
375
405
  const content = hitMaxTurns
376
406
  ? `[Sub-agent reached its ${maxTurnsLimit}-turn limit — it stopped mid-task and this output may be incomplete.]\n\n${body}`
377
407
  : body;
378
- finish({ content, details });
408
+ finish({ content: `${content}${receiptBlock}`, details });
379
409
  });
380
410
  child.on("error", (err) => {
381
411
  if (activeChild === child)
@@ -401,7 +431,7 @@ function formatToolActivity(name, args) {
401
431
  case "write":
402
432
  return `Writing ${shortenPath(String(args.file_path ?? ""))}`;
403
433
  case "edit":
404
- return `Editing ${shortenPath(String(args.file_path ?? ""))}`;
434
+ return `Editing ${editTargetLabel(args, shortenPath)}`;
405
435
  case "grep": {
406
436
  const pat = String(args.pattern ?? "");
407
437
  return `Searching for "${truncateStr(pat, 30)}"`;
@@ -1 +1 @@
1
- {"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../src/tools/subagent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../src/tools/subagent.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { MAX_PROCESS_WAIT_MS } from "../core/process-manager.js";
3
- import { truncateTail } from "./truncate.js";
3
+ import { truncateTail, describeCompressed } from "./truncate.js";
4
4
  import { compressToolOutput } from "./compress.js";
5
5
  import { writeOverflow } from "./overflow.js";
6
6
  const TaskOutputParams = z.object({
@@ -58,7 +58,8 @@ export function createTaskOutputTool(processManager) {
58
58
  const overflowPath = await writeOverflow(output, "task-output").catch(() => null);
59
59
  const overflowNotice = overflowPath ? ` Full output: ${overflowPath}` : "";
60
60
  const c = compressToolOutput(output);
61
- output = `[${c.notice}${overflowNotice}]\n${c.content}`;
61
+ const what = describeCompressed(output, c.content);
62
+ output = `[${c.notice}${what ? ` ${what}` : ""}${overflowNotice}]\n${c.content}`;
62
63
  }
63
64
  else {
64
65
  output = truncated.content;
@@ -1 +1 @@
1
- {"version":3,"file":"task-output.js","sourceRoot":"","sources":["../../src/tools/task-output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-output.js","sourceRoot":"","sources":["../../src/tools/task-output.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,5 @@ declare const TaskSendParams: z.ZodObject<{
7
7
  enter: z.ZodOptional<z.ZodBoolean>;
8
8
  eof: z.ZodOptional<z.ZodBoolean>;
9
9
  }, z.core.$strip>;
10
- export declare function createTaskSendTool(processManager: ProcessManager): AgentTool<typeof TaskSendParams>;
10
+ export declare function createTaskSendTool(processManager: ProcessManager, cwd?: string): AgentTool<typeof TaskSendParams>;
11
11
  export {};
@@ -1,4 +1,6 @@
1
1
  import { z } from "zod";
2
+ import { checkDestructiveGit } from "../core/destructive-git-guard.js";
3
+ import { shellThreatBlockMessage } from "../core/shell-threats.js";
2
4
  const TaskSendParams = z.object({
3
5
  id: z.string().describe("The background process ID to send input to"),
4
6
  input: z
@@ -14,7 +16,7 @@ const TaskSendParams = z.object({
14
16
  .optional()
15
17
  .describe("Close stdin after sending, signalling end-of-input (Ctrl-D)."),
16
18
  });
17
- export function createTaskSendTool(processManager) {
19
+ export function createTaskSendTool(processManager, cwd) {
18
20
  return {
19
21
  name: "task_send",
20
22
  description: "Send input to a running background process (started with run_in_background) to drive it " +
@@ -27,6 +29,18 @@ export function createTaskSendTool(processManager) {
27
29
  if ((input === undefined || input === "") && enter === false && !eof) {
28
30
  return "Nothing to send: provide input, or set enter=true to press Enter, or eof=true.";
29
31
  }
32
+ // Input typed into a background shell is a shell command too. Background
33
+ // processes start in the tool cwd; a later `cd` inside them is not seen.
34
+ if (cwd !== undefined && input) {
35
+ const gitBlocked = await checkDestructiveGit(input, { cwd });
36
+ if (gitBlocked)
37
+ return `Error: input not sent. ${gitBlocked}`;
38
+ }
39
+ if (input) {
40
+ const threatBlocked = shellThreatBlockMessage(input);
41
+ if (threatBlocked)
42
+ return `Error: input not sent. ${threatBlocked}`;
43
+ }
30
44
  return processManager.sendInput(id, input ?? "", { enter, eof });
31
45
  },
32
46
  };