@prestyj/cli 5.28.1 → 5.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) 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 +66 -0
  55. package/assets/motion/skills/before-after/SKILL.md +53 -0
  56. package/assets/motion/skills/brand-kit/SKILL.md +3 -3
  57. package/assets/motion/skills/dev-tool-video/SKILL.md +57 -0
  58. package/assets/motion/skills/launch-video/SKILL.md +62 -0
  59. package/assets/motion/skills/match-reference/SKILL.md +58 -0
  60. package/assets/motion/skills/motion/SKILL.md +78 -85
  61. package/assets/motion/skills/source-ingest/SKILL.md +17 -6
  62. package/assets/motion/skills/website-video/SKILL.md +59 -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 +203 -47
  104. package/dist/app-sidecar.js.map +1 -1
  105. package/dist/cli.js +17 -26
  106. package/dist/cli.js.map +1 -1
  107. package/dist/core/acceptance-checks.d.ts +48 -0
  108. package/dist/core/acceptance-checks.js +144 -0
  109. package/dist/core/acceptance-checks.js.map +1 -0
  110. package/dist/core/agent-session.d.ts +106 -72
  111. package/dist/core/agent-session.js +539 -399
  112. package/dist/core/agent-session.js.map +1 -1
  113. package/dist/core/agents.d.ts +6 -5
  114. package/dist/core/agents.js.map +1 -1
  115. package/dist/core/ask-user.d.ts +90 -8
  116. package/dist/core/ask-user.js +124 -13
  117. package/dist/core/ask-user.js.map +1 -1
  118. package/dist/core/bundled-agents.js +1 -3
  119. package/dist/core/bundled-agents.js.map +1 -1
  120. package/dist/core/cache-diagnostics.d.ts +68 -0
  121. package/dist/core/cache-diagnostics.js +196 -0
  122. package/dist/core/cache-diagnostics.js.map +1 -0
  123. package/dist/core/cache-expiry.d.ts +87 -0
  124. package/dist/core/cache-expiry.js +111 -0
  125. package/dist/core/cache-expiry.js.map +1 -0
  126. package/dist/core/compaction/compactor.js +78 -48
  127. package/dist/core/compaction/compactor.js.map +1 -1
  128. package/dist/core/compaction/plan-step-policy.d.ts +46 -0
  129. package/dist/core/compaction/plan-step-policy.js +57 -0
  130. package/dist/core/compaction/plan-step-policy.js.map +1 -0
  131. package/dist/core/destructive-git-guard.d.ts +90 -0
  132. package/dist/core/destructive-git-guard.js +871 -0
  133. package/dist/core/destructive-git-guard.js.map +1 -0
  134. package/dist/core/event-bus.d.ts +3 -0
  135. package/dist/core/event-bus.js +5 -0
  136. package/dist/core/event-bus.js.map +1 -1
  137. package/dist/core/injection-detect.d.ts +38 -0
  138. package/dist/core/injection-detect.js +232 -0
  139. package/dist/core/injection-detect.js.map +1 -0
  140. package/dist/core/keep-awake.d.ts +88 -0
  141. package/dist/core/keep-awake.js +251 -0
  142. package/dist/core/keep-awake.js.map +1 -0
  143. package/dist/core/mcp/client.d.ts +72 -0
  144. package/dist/core/mcp/client.js +264 -41
  145. package/dist/core/mcp/client.js.map +1 -1
  146. package/dist/core/mcp/content.js +6 -2
  147. package/dist/core/mcp/content.js.map +1 -1
  148. package/dist/core/mcp/store.d.ts +6 -1
  149. package/dist/core/mcp/store.js +12 -1
  150. package/dist/core/mcp/store.js.map +1 -1
  151. package/dist/core/mcp/types.d.ts +18 -0
  152. package/dist/core/model-unavailable.d.ts +14 -0
  153. package/dist/core/model-unavailable.js +23 -0
  154. package/dist/core/model-unavailable.js.map +1 -0
  155. package/dist/core/node-debugger.d.ts +148 -0
  156. package/dist/core/node-debugger.js +642 -0
  157. package/dist/core/node-debugger.js.map +1 -0
  158. package/dist/core/package-threats.d.ts +18 -0
  159. package/dist/core/package-threats.js +168 -0
  160. package/dist/core/package-threats.js.map +1 -0
  161. package/dist/core/persistent-shell.d.ts +58 -6
  162. package/dist/core/persistent-shell.js +331 -49
  163. package/dist/core/persistent-shell.js.map +1 -1
  164. package/dist/core/process-manager.d.ts +14 -0
  165. package/dist/core/process-manager.js +61 -0
  166. package/dist/core/process-manager.js.map +1 -1
  167. package/dist/core/progress/git-xp.js +8 -14
  168. package/dist/core/progress/git-xp.js.map +1 -1
  169. package/dist/core/session-history.d.ts +12 -0
  170. package/dist/core/session-history.js +27 -0
  171. package/dist/core/session-history.js.map +1 -1
  172. package/dist/core/session-manager.d.ts +13 -1
  173. package/dist/core/session-manager.js +38 -18
  174. package/dist/core/session-manager.js.map +1 -1
  175. package/dist/core/session-summary-index.d.ts +37 -0
  176. package/dist/core/session-summary-index.js +172 -0
  177. package/dist/core/session-summary-index.js.map +1 -0
  178. package/dist/core/settings-manager.d.ts +2 -0
  179. package/dist/core/settings-manager.js +10 -0
  180. package/dist/core/settings-manager.js.map +1 -1
  181. package/dist/core/shell-threats-popular-packages.d.ts +11 -0
  182. package/dist/core/shell-threats-popular-packages.js +675 -0
  183. package/dist/core/shell-threats-popular-packages.js.map +1 -0
  184. package/dist/core/shell-threats.d.ts +8 -0
  185. package/dist/core/shell-threats.js +186 -0
  186. package/dist/core/shell-threats.js.map +1 -0
  187. package/dist/core/skills.js +3 -1
  188. package/dist/core/skills.js.map +1 -1
  189. package/dist/core/stream-rules.d.ts +30 -0
  190. package/dist/core/stream-rules.js +151 -0
  191. package/dist/core/stream-rules.js.map +1 -0
  192. package/dist/core/subagent-manager.d.ts +20 -5
  193. package/dist/core/subagent-manager.js +22 -8
  194. package/dist/core/subagent-manager.js.map +1 -1
  195. package/dist/core/subagent-receipt.d.ts +54 -0
  196. package/dist/core/subagent-receipt.js +276 -0
  197. package/dist/core/subagent-receipt.js.map +1 -0
  198. package/dist/core/subagent-turn-record.d.ts +2 -0
  199. package/dist/core/subagent-turn-record.js.map +1 -1
  200. package/dist/core/test-impact.d.ts +73 -0
  201. package/dist/core/test-impact.js +467 -0
  202. package/dist/core/test-impact.js.map +1 -0
  203. package/dist/core/thinking-level.d.ts +1 -1
  204. package/dist/core/thinking-level.js +1 -1
  205. package/dist/core/thinking-level.js.map +1 -1
  206. package/dist/core/verification-gate.d.ts +2 -0
  207. package/dist/core/verification-gate.js +4 -0
  208. package/dist/core/verification-gate.js.map +1 -1
  209. package/dist/core/verification-snapshot.js +3 -5
  210. package/dist/core/verification-snapshot.js.map +1 -1
  211. package/dist/core/workspace-guard.d.ts +18 -7
  212. package/dist/core/workspace-guard.js +227 -60
  213. package/dist/core/workspace-guard.js.map +1 -1
  214. package/dist/interactive.js +2 -1
  215. package/dist/interactive.js.map +1 -1
  216. package/dist/modes/subagent-worker-mode.js +34 -6
  217. package/dist/modes/subagent-worker-mode.js.map +1 -1
  218. package/dist/motion-agent/motion-agent.d.ts +6 -2
  219. package/dist/motion-agent/motion-agent.js +5 -7
  220. package/dist/motion-agent/motion-agent.js.map +1 -1
  221. package/dist/motion-agent/motion-prompt.d.ts +1 -1
  222. package/dist/motion-agent/motion-prompt.js +14 -19
  223. package/dist/motion-agent/motion-prompt.js.map +1 -1
  224. package/dist/motion-agent/motion-review.d.ts +10 -3
  225. package/dist/motion-agent/motion-review.js +15 -7
  226. package/dist/motion-agent/motion-review.js.map +1 -1
  227. package/dist/motion-agent/motion-studio-context.js +1 -1
  228. package/dist/motion-agent/motion-studio-context.js.map +1 -1
  229. package/dist/system-prompt.js +3 -1
  230. package/dist/system-prompt.js.map +1 -1
  231. package/dist/test-support/keep-alive.d.ts +14 -0
  232. package/dist/test-support/keep-alive.js +17 -0
  233. package/dist/test-support/keep-alive.js.map +1 -0
  234. package/dist/tools/ask-user.js +3 -3
  235. package/dist/tools/ask-user.js.map +1 -1
  236. package/dist/tools/bash-read-evidence.d.ts +10 -0
  237. package/dist/tools/bash-read-evidence.js +133 -0
  238. package/dist/tools/bash-read-evidence.js.map +1 -0
  239. package/dist/tools/bash.d.ts +10 -1
  240. package/dist/tools/bash.js +115 -7
  241. package/dist/tools/bash.js.map +1 -1
  242. package/dist/tools/debug.d.ts +54 -0
  243. package/dist/tools/debug.js +233 -0
  244. package/dist/tools/debug.js.map +1 -0
  245. package/dist/tools/edit.js +12 -4
  246. package/dist/tools/edit.js.map +1 -1
  247. package/dist/tools/goals.d.ts +1 -1
  248. package/dist/tools/index.d.ts +19 -2
  249. package/dist/tools/index.js +47 -7
  250. package/dist/tools/index.js.map +1 -1
  251. package/dist/tools/prompt-hints.js +2 -0
  252. package/dist/tools/prompt-hints.js.map +1 -1
  253. package/dist/tools/read-tracker.d.ts +5 -0
  254. package/dist/tools/read-tracker.js +19 -9
  255. package/dist/tools/read-tracker.js.map +1 -1
  256. package/dist/tools/read.js +3 -2
  257. package/dist/tools/read.js.map +1 -1
  258. package/dist/tools/skill.js +5 -0
  259. package/dist/tools/skill.js.map +1 -1
  260. package/dist/tools/subagent-control.js +44 -8
  261. package/dist/tools/subagent-control.js.map +1 -1
  262. package/dist/tools/subagent-shared.d.ts +29 -8
  263. package/dist/tools/subagent-shared.js +45 -14
  264. package/dist/tools/subagent-shared.js.map +1 -1
  265. package/dist/tools/subagent.d.ts +8 -2
  266. package/dist/tools/subagent.js +28 -10
  267. package/dist/tools/subagent.js.map +1 -1
  268. package/dist/tools/task-output.js +3 -2
  269. package/dist/tools/task-output.js.map +1 -1
  270. package/dist/tools/task-send.d.ts +1 -1
  271. package/dist/tools/task-send.js +15 -1
  272. package/dist/tools/task-send.js.map +1 -1
  273. package/dist/tools/tool-tiers.d.ts +2 -2
  274. package/dist/tools/tool-tiers.js +3 -2
  275. package/dist/tools/tool-tiers.js.map +1 -1
  276. package/dist/tools/truncate.d.ts +21 -0
  277. package/dist/tools/truncate.js +187 -0
  278. package/dist/tools/truncate.js.map +1 -1
  279. package/dist/tools/ui-adopt.js +2 -0
  280. package/dist/tools/ui-adopt.js.map +1 -1
  281. package/dist/ui/App.d.ts +0 -4
  282. package/dist/ui/App.js +5 -28
  283. package/dist/ui/App.js.map +1 -1
  284. package/dist/ui/components/ActivityIndicator.js +1 -0
  285. package/dist/ui/components/ActivityIndicator.js.map +1 -1
  286. package/dist/ui/hooks/useAgentLoop.d.ts +1 -8
  287. package/dist/ui/hooks/useAgentLoop.js +1 -119
  288. package/dist/ui/hooks/useAgentLoop.js.map +1 -1
  289. package/dist/ui/render.d.ts +0 -4
  290. package/dist/ui/render.js +0 -2
  291. package/dist/ui/render.js.map +1 -1
  292. package/dist/utils/git.d.ts +77 -0
  293. package/dist/utils/git.js +285 -21
  294. package/dist/utils/git.js.map +1 -1
  295. package/dist/utils/github-ci.js +2 -1
  296. package/dist/utils/github-ci.js.map +1 -1
  297. package/dist/utils/github.js +11 -9
  298. package/dist/utils/github.js.map +1 -1
  299. package/dist/utils/image.d.ts +14 -0
  300. package/dist/utils/image.js +16 -0
  301. package/dist/utils/image.js.map +1 -1
  302. package/dist/utils/process.d.ts +20 -0
  303. package/dist/utils/process.js +98 -0
  304. package/dist/utils/process.js.map +1 -1
  305. package/package.json +5 -5
  306. package/assets/motion/references/motion-language.md +0 -128
  307. package/assets/motion/skills/video-qa/SKILL.md +0 -89
  308. package/dist/core/ideal-review-subagent.d.ts +0 -56
  309. package/dist/core/ideal-review-subagent.js +0 -112
  310. package/dist/core/ideal-review-subagent.js.map +0 -1
  311. package/dist/core/ideal-review.d.ts +0 -82
  312. package/dist/core/ideal-review.js +0 -242
  313. package/dist/core/ideal-review.js.map +0 -1
  314. package/dist/motion-agent/motion-check-tool.d.ts +0 -35
  315. package/dist/motion-agent/motion-check-tool.js +0 -514
  316. package/dist/motion-agent/motion-check-tool.js.map +0 -1
@@ -0,0 +1,133 @@
1
+ import path from "node:path";
2
+ import { recordRead } from "./read-tracker.js";
3
+ import { resolvePath } from "./path-utils.js";
4
+ /**
5
+ * Credit `bash` file dumps as reads, so `edit`/`write` after `cat src/a.ts`
6
+ * does not force a second read of the same bytes.
7
+ *
8
+ * Fail-closed by construction: a file counts only when the command is a plain
9
+ * listing of file paths or one-directory globs (`cat`, `cat -n`, or the
10
+ * `for f in …; do cat …; done` idiom), the tool succeeded, and the CURRENT
11
+ * file content appears verbatim in the output the model actually received
12
+ * (after per-turn trimming). Anything the model did not literally see is
13
+ * never recorded.
14
+ */
15
+ /** Literal paths, optionally with a `*` in the last segment (`src/*.js`).
16
+ * No variables, substitutions, redirections, or recursive globs. */
17
+ const SAFE_PATH = /^[\w./@+-]*(?:\*[\w.@+-]*)?$/;
18
+ const MAX_FILE_BYTES = 256 * 1024;
19
+ const MAX_GLOB_MATCHES = 64;
20
+ /** Paths a command prints in full, or [] when it is not a pure file dump. */
21
+ export function catTargets(command) {
22
+ const segments = command
23
+ .split(/;|&&|\n/)
24
+ .map((s) => s.trim())
25
+ .filter(Boolean);
26
+ const targets = [];
27
+ const literal = (a) => SAFE_PATH.test(a) && a.length > 0 && !a.startsWith("-");
28
+ for (const seg of segments) {
29
+ const cat = /^cat(?:\s+-n)?\s+(.+)$/.exec(seg);
30
+ if (cat?.[1]) {
31
+ const args = cat[1].split(/\s+/);
32
+ if (args.every(literal))
33
+ targets.push(...args);
34
+ }
35
+ }
36
+ // `for f in a b; do echo "== $f"; cat -n $f; done` — explicit word list only.
37
+ const forLoop = /\bfor (\w+) in ([^;\n]+?)\s*;\s*do\b([\s\S]*?)\bdone\b/.exec(command);
38
+ if (forLoop?.[1] && forLoop[2] && forLoop[3]) {
39
+ const v = forLoop[1];
40
+ const body = forLoop[3];
41
+ const catsVar = new RegExp(`\\bcat(?:\\s+-n)?\\s+"?\\$\\{?${v}\\}?"?(?=\\s*(?:;|$|\\n))`).test(body);
42
+ const words = forLoop[2].trim().split(/\s+/);
43
+ if (catsVar && words.every(literal))
44
+ targets.push(...words);
45
+ }
46
+ return [...new Set(targets)];
47
+ }
48
+ /**
49
+ * Expand one target to concrete files. A `*` is matched within its own
50
+ * directory only (shell semantics, dotfiles excluded); a glob that matches
51
+ * nothing yields nothing.
52
+ */
53
+ async function expandTarget(cwd, target, ops) {
54
+ if (!target.includes("*"))
55
+ return [resolvePath(cwd, target)];
56
+ const slash = target.lastIndexOf("/");
57
+ const dir = resolvePath(cwd, slash >= 0 ? target.slice(0, slash) || "/" : ".");
58
+ const pattern = target.slice(slash + 1);
59
+ const [head = "", tail = ""] = pattern.split("*");
60
+ const entries = await ops.readdir(dir, { withFileTypes: true });
61
+ return entries
62
+ .filter((e) => e.isFile() &&
63
+ !e.name.startsWith(".") &&
64
+ e.name.length >= head.length + tail.length &&
65
+ e.name.startsWith(head) &&
66
+ e.name.endsWith(tail))
67
+ .map((e) => path.join(dir, e.name))
68
+ .sort()
69
+ .slice(0, MAX_GLOB_MATCHES);
70
+ }
71
+ /** `cat -n` prefixes each line with a right-aligned number and a tab. */
72
+ function numbered(content) {
73
+ const lines = content.split("\n");
74
+ if (content.endsWith("\n"))
75
+ lines.pop();
76
+ return lines.map((line, i) => `${String(i + 1).padStart(6)}\t${line}`).join("\n");
77
+ }
78
+ function resultText(result) {
79
+ if (typeof result.content === "string")
80
+ return result.content;
81
+ return result.content.map((part) => (part.type === "text" ? part.text : "")).join("");
82
+ }
83
+ /**
84
+ * Record reads proven by one step's bash calls. Call with the tool results
85
+ * exactly as appended to the transcript (post-trim).
86
+ */
87
+ export async function recordBashReads(tracker, cwd, ops, toolCalls, toolResults) {
88
+ const recorded = [];
89
+ const byId = new Map(toolResults.map((r) => [r.toolCallId, r]));
90
+ for (const call of toolCalls) {
91
+ if (call.name !== "bash")
92
+ continue;
93
+ const result = byId.get(call.id);
94
+ const command = call.args["command"];
95
+ if (!result || result.isError || typeof command !== "string")
96
+ continue;
97
+ const targets = catTargets(command);
98
+ if (targets.length === 0)
99
+ continue;
100
+ const output = resultText(result);
101
+ const files = [];
102
+ for (const target of targets) {
103
+ try {
104
+ files.push(...(await expandTarget(cwd, target, ops)));
105
+ }
106
+ catch {
107
+ // Unresolvable path or unreadable directory: nothing was proven.
108
+ }
109
+ }
110
+ // Always re-record: an older full read may be stale (the file changed since),
111
+ // and this output is what the model saw most recently.
112
+ for (const resolved of new Set(files)) {
113
+ try {
114
+ const stat = await ops.stat(resolved);
115
+ if (!stat.isFile() || stat.size > MAX_FILE_BYTES)
116
+ continue;
117
+ const content = await ops.readFile(resolved);
118
+ const body = content.endsWith("\n") ? content.slice(0, -1) : content;
119
+ if (body.length === 0)
120
+ continue;
121
+ if (!output.includes(body) && !output.includes(numbered(content)))
122
+ continue;
123
+ recordRead(tracker, resolved, content, stat.mtimeMs);
124
+ recorded.push(resolved);
125
+ }
126
+ catch {
127
+ // Missing or unreadable: nothing was proven.
128
+ }
129
+ }
130
+ }
131
+ return recorded;
132
+ }
133
+ //# sourceMappingURL=bash-read-evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bash-read-evidence.js","sourceRoot":"","sources":["../../src/tools/bash-read-evidence.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,13 @@ import { type ResolveShellOpts } from "../core/shell.js";
6
6
  import { type GoalMode } from "../core/runtime-mode.js";
7
7
  import { type GetNetworkPolicy } from "../core/network-guard.js";
8
8
  import { type SandboxPolicy } from "../core/sandbox.js";
9
+ /**
10
+ * Background process id when a bash result reports that a foreground command
11
+ * outlived its default budget and was handed to the process manager. Such a
12
+ * command has no exit code yet: its outcome arrives later, like an explicit
13
+ * `run_in_background` run, so callers must not read the result as a failure.
14
+ */
15
+ export declare function autoBackgroundedId(result: string): string | undefined;
9
16
  /**
10
17
  * Render command output for the tool result. Over-limit output is compressed
11
18
  * (keeps errors + head/tail, collapses repeats) rather than blindly
@@ -31,5 +38,7 @@ export declare function createBashTool(cwd: string, processManager: ProcessManag
31
38
  current: GoalMode;
32
39
  }, goalModeRefOrShellOpts?: {
33
40
  current: GoalMode;
34
- } | ResolveShellOpts, shellOptsOrNetworkPolicy?: ResolveShellOpts | GetNetworkPolicy, getNetworkPolicyArg?: GetNetworkPolicy, getSandboxPolicyArg?: () => SandboxPolicy): AgentTool<typeof BashParams>;
41
+ } | ResolveShellOpts, shellOptsOrNetworkPolicy?: ResolveShellOpts | GetNetworkPolicy, getNetworkPolicyArg?: GetNetworkPolicy, getSandboxPolicyArg?: () => SandboxPolicy,
42
+ /** Default foreground budget; injectable so tests need not wait 120s. */
43
+ defaultTimeoutMs?: number): AgentTool<typeof BashParams>;
35
44
  export {};
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { killProcessTree } from "../utils/process.js";
3
- import { truncateTail, MAX_BYTES } from "./truncate.js";
3
+ import { truncateTail, MAX_BYTES, describeCompressed } from "./truncate.js";
4
4
  import { compressToolOutput } from "./compress.js";
5
5
  import { writeOverflow } from "./overflow.js";
6
6
  import { localOperations } from "./operations.js";
@@ -10,6 +10,9 @@ import { PersistentShell } from "../core/persistent-shell.js";
10
10
  import { isReadOnlyCommand, sleepOnlySeconds } from "./read-only-bash.js";
11
11
  import { getActiveGoalMode, goalModeBashRestriction, isPlanModeActive, planModeRestriction, } from "../core/runtime-mode.js";
12
12
  import { isCatastrophicCommand } from "../core/workspace-guard.js";
13
+ import { checkDestructiveGit } from "../core/destructive-git-guard.js";
14
+ import { shellThreatBlockMessage } from "../core/shell-threats.js";
15
+ import { checkPackageInstall } from "../core/package-threats.js";
13
16
  import { checkCommandPolicy } from "../core/network-guard.js";
14
17
  import { prepareSandboxLaunch, SANDBOX_ENV_PATCH, } from "../core/sandbox.js";
15
18
  import { annotateSandboxDenial } from "../core/sandbox-feedback.js";
@@ -19,6 +22,18 @@ function sandboxAwareEnv(sandboxed) {
19
22
  return sandboxed ? { ...env, ...SANDBOX_ENV_PATCH } : env;
20
23
  }
21
24
  const DEFAULT_TIMEOUT = 120_000; // 120 seconds
25
+ const AUTO_BACKGROUND_RE = /^Still running after \d+(?:\.\d+)?s, so it was moved to the background\b/;
26
+ /**
27
+ * Background process id when a bash result reports that a foreground command
28
+ * outlived its default budget and was handed to the process manager. Such a
29
+ * command has no exit code yet: its outcome arrives later, like an explicit
30
+ * `run_in_background` run, so callers must not read the result as a failure.
31
+ */
32
+ export function autoBackgroundedId(result) {
33
+ if (!AUTO_BACKGROUND_RE.test(result))
34
+ return undefined;
35
+ return /^ID:\s*(\S+)$/m.exec(result)?.[1];
36
+ }
22
37
  const MAX_OUTPUT_BYTES = 10 * 1024 * 1024; // 10 MB — cap buffered output to prevent OOM
23
38
  /**
24
39
  * How long to keep collecting output after the shell exits while something it
@@ -82,7 +97,8 @@ export async function renderBashOutput(rawOutput) {
82
97
  ? ` Full output saved to ${overflowPath} — read it with offset/limit if needed.`
83
98
  : "";
84
99
  const c = compressToolOutput(rawOutput);
85
- return `[${c.notice}${overflowNotice}]\n${c.content}`;
100
+ const what = describeCompressed(rawOutput, c.content);
101
+ return `[${c.notice}${what ? ` ${what}` : ""}${overflowNotice}]\n${c.content}`;
86
102
  }
87
103
  const BashParams = z.object({
88
104
  command: z.string().describe("The bash command to execute"),
@@ -91,7 +107,8 @@ const BashParams = z.object({
91
107
  .int()
92
108
  .min(1000)
93
109
  .optional()
94
- .describe("Timeout in milliseconds (default: 120000)"),
110
+ .describe("Stop the command after this many milliseconds. Without it, a command still " +
111
+ "running after 120000ms moves to the background instead of being stopped."),
95
112
  run_in_background: z
96
113
  .boolean()
97
114
  .optional()
@@ -130,7 +147,9 @@ const BashParams = z.object({
130
147
  "notified automatically the instant one holds, instead of polling " +
131
148
  "task_output. Each condition fires once; exit always notifies regardless."),
132
149
  });
133
- export function createBashTool(cwd, processManager, ops = localOperations, planModeRefArg, goalModeRefOrShellOpts, shellOptsOrNetworkPolicy, getNetworkPolicyArg, getSandboxPolicyArg) {
150
+ export function createBashTool(cwd, processManager, ops = localOperations, planModeRefArg, goalModeRefOrShellOpts, shellOptsOrNetworkPolicy, getNetworkPolicyArg, getSandboxPolicyArg,
151
+ /** Default foreground budget; injectable so tests need not wait 120s. */
152
+ defaultTimeoutMs = DEFAULT_TIMEOUT) {
134
153
  const planModeRef = isPlanModeRef(planModeRefArg) ? planModeRefArg : undefined;
135
154
  const goalModeRef = isGoalModeRef(planModeRefArg)
136
155
  ? planModeRefArg
@@ -147,6 +166,8 @@ export function createBashTool(cwd, processManager, ops = localOperations, planM
147
166
  // Lazily created on the first persist:true call; one session per tool
148
167
  // instance (i.e. per agent session), killed when the process exits.
149
168
  let sessionShell = null;
169
+ /** Install commands the model re-ran after a typosquat warning. */
170
+ const confirmedInstalls = new Set();
150
171
  let sessionSandboxKey = null;
151
172
  let sessionSandboxed = false;
152
173
  // Shell selection doesn't depend on the command, so resolve ONCE at tool
@@ -245,6 +266,38 @@ export function createBashTool(cwd, processManager, ops = localOperations, planM
245
266
  if (catastrophic) {
246
267
  return `Error: ${catastrophic}`;
247
268
  }
269
+ // Destructive-git guard — refuses reset --hard / checkout -- / restore /
270
+ // clean -f / stash drop / branch -D / force push when work would be lost.
271
+ // A persist:true call runs wherever the session shell last cd'd to.
272
+ const liveShell = persist && process.platform !== "win32" ? sessionShell : null;
273
+ const gitBlocked = await checkDestructiveGit(command, {
274
+ cwd,
275
+ resolveCwd: liveShell && !liveShell.isBusy
276
+ ? async () => (await liveShell.run("pwd", 2_000, context.signal)).output.trim() || null
277
+ : undefined,
278
+ });
279
+ if (gitBlocked) {
280
+ return `Error: ${gitBlocked}`;
281
+ }
282
+ // Shell-threat guard — pipe-to-shell, reverse shells, secret exfiltration,
283
+ // lookalike hosts and terminal-escape tricks (core/shell-threats.ts).
284
+ const threatBlocked = shellThreatBlockMessage(command);
285
+ if (threatBlocked) {
286
+ return `Error: ${threatBlocked}`;
287
+ }
288
+ // Package-install guard: known malware (OSV, fail-open) is refused;
289
+ // a likely typosquat is stopped once and allowed on an identical retry.
290
+ const packageThreats = await checkPackageInstall(command, { signal: context.signal });
291
+ const malware = packageThreats.find((threat) => threat.severity === "block");
292
+ if (malware) {
293
+ return `Error: Blocked by package safety check (${malware.rule}): ${malware.detail}`;
294
+ }
295
+ const typosquats = packageThreats.filter((threat) => threat.severity === "warn");
296
+ if (typosquats.length > 0 && !confirmedInstalls.has(command)) {
297
+ confirmedInstalls.add(command);
298
+ return (`Error: not run — ${typosquats.map((threat) => threat.detail).join("; ")}. ` +
299
+ `If this really is the package you want, run the exact same command again.`);
300
+ }
248
301
  // Network allowlist — defence in depth only. Recognises the common egress
249
302
  // command shapes; an unrecognised command is never blocked (see
250
303
  // core/network-guard.ts for why this is not a sandbox).
@@ -284,9 +337,16 @@ export function createBashTool(cwd, processManager, ops = localOperations, planM
284
337
  : undefined);
285
338
  const output = await renderBashOutput(res.output);
286
339
  const exitCode = res.exitCode === "TIMEOUT"
287
- ? `TIMEOUT (${timeoutMs ?? DEFAULT_TIMEOUT}ms) — session shell was reset; cd/env state is gone`
340
+ ? `TIMEOUT (${timeoutMs ?? DEFAULT_TIMEOUT}ms)` +
341
+ (res.shellKept
342
+ ? " — the command was stopped; the session shell kept its cwd/env"
343
+ : "")
288
344
  : String(res.exitCode);
289
- return annotateSandboxDenial(`Exit code: ${exitCode}\n${output}`, sessionSandboxed);
345
+ // The restart note sits right under the exit code so output truncation
346
+ // can never drop it.
347
+ const restartNote = sessionShell.takeRestartNote();
348
+ const note = restartNote ? `${restartNote}\n` : "";
349
+ return annotateSandboxDenial(`Exit code: ${exitCode}\n${note}${output}`, sessionSandboxed);
290
350
  }
291
351
  if (run_in_background) {
292
352
  let launch;
@@ -316,7 +376,7 @@ export function createBashTool(cwd, processManager, ops = localOperations, planM
316
376
  `Use task_output with id="${result.id}" to read output, ` +
317
377
  `task_send to type input/answer prompts, task_stop to stop it.`);
318
378
  }
319
- const effectiveTimeout = timeoutMs ?? DEFAULT_TIMEOUT;
379
+ const effectiveTimeout = timeoutMs ?? defaultTimeoutMs;
320
380
  // Cross-platform shell: bash on macOS/Linux, Git Bash on Windows (or
321
381
  // cmd.exe fallback), wrapped by the OS sandbox before any child starts.
322
382
  const shell = resolveShell(command, shellOpts);
@@ -363,8 +423,51 @@ export function createBashTool(cwd, processManager, ops = localOperations, planM
363
423
  child.stderr?.on("data", onData);
364
424
  let killed = false;
365
425
  let timedOut = false;
426
+ let backgrounded = false;
427
+ const startedAt = Date.now();
428
+ /**
429
+ * Hand a still-running command to the process manager instead of
430
+ * killing it, so a slow build or test run keeps going (same process,
431
+ * same cwd) while the agent moves on. Only for the default budget: an
432
+ * explicit `timeout` is the model saying when to give up. Returns
433
+ * false when adoption is not possible, leaving the kill path to run.
434
+ */
435
+ const moveToBackground = () => {
436
+ // The shell already exited and only leftovers hold the pipes; the
437
+ // drain path owns that case.
438
+ if (timeoutMs !== undefined || child.exitCode !== null || !child.pid)
439
+ return false;
440
+ child.stdout?.off("data", onData);
441
+ child.stderr?.off("data", onData);
442
+ let adopted;
443
+ try {
444
+ adopted = processManager.adopt(child, command, startedAt, Buffer.concat(chunks));
445
+ }
446
+ catch {
447
+ child.stdout?.on("data", onData);
448
+ child.stderr?.on("data", onData);
449
+ return false;
450
+ }
451
+ backgrounded = true;
452
+ context.signal.removeEventListener("abort", onAbort);
453
+ void (async () => {
454
+ const soFar = await renderBashOutput(Buffer.concat(chunks).toString("utf-8"));
455
+ resolve(`Still running after ${effectiveTimeout / 1000}s, so it was moved to the background ` +
456
+ `instead of being stopped. It keeps its working directory and output.\n` +
457
+ `ID: ${adopted.id}\n` +
458
+ `PID: ${adopted.pid}\n` +
459
+ `Log: ${adopted.logFile}\n` +
460
+ `You will be notified when it exits. Use task_output with id="${adopted.id}" ` +
461
+ `(wait_ms to block until it exits) to read output, task_stop to stop it. ` +
462
+ `Pass an explicit timeout to have a command stopped instead.\n` +
463
+ (soFar ? `Output so far:\n${soFar}` : "No output so far."));
464
+ })();
465
+ return true;
466
+ };
366
467
  // Timeout handling
367
468
  const timer = setTimeout(() => {
469
+ if (moveToBackground())
470
+ return;
368
471
  timedOut = true;
369
472
  killed = true;
370
473
  if (child.pid)
@@ -395,6 +498,9 @@ export function createBashTool(cwd, processManager, ops = localOperations, planM
395
498
  clearTimeout(timer);
396
499
  clearTimeout(drainTimer);
397
500
  context.signal.removeEventListener("abort", onAbort);
501
+ // The process manager owns an adopted command's exit.
502
+ if (backgrounded)
503
+ return;
398
504
  const rawOutput = Buffer.concat(chunks).toString("utf-8");
399
505
  let output = await renderBashOutput(rawOutput);
400
506
  if (outputCapped) {
@@ -430,6 +536,8 @@ export function createBashTool(cwd, processManager, ops = localOperations, planM
430
536
  resolve(annotateSandboxDenial(`Exit code: ${exitCode}\n${output}`, launch.sandboxed));
431
537
  });
432
538
  child.on("error", (err) => {
539
+ if (backgrounded)
540
+ return;
433
541
  clearTimeout(timer);
434
542
  clearTimeout(drainTimer);
435
543
  context.signal.removeEventListener("abort", onAbort);
@@ -1 +1 @@
1
- {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAuB,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAyB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,GAEpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAyB,MAAM,0BAA0B,CAAC;AACrF,OAAO,EACL,oBAAoB,EACpB,iBAAiB,GAGlB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,4EAA4E;AAC5E,SAAS,eAAe,CAAC,SAAkB;IACzC,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAC5D,CAAC;AAED,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,cAAc;AAC/C,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,6CAA6C;AACxF;;;GAGG;AACH,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEhC;;;;GAIG;AACH,MAAM,sBAAsB,GAC1B,mGAAmG,CAAC;AAEtG;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AACD;+DAC+D;AAC/D,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAA+B,CAAC,OAAO,KAAK,SAAS,CAC9D,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAA+B,CAAC,OAAO,KAAK,QAAQ,CAC7D,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,SAAiB;IACtD,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC;IAC7C,MAAM,YAAY,GAChB,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,SAAS;QAC/C,CAAC,CAAC,MAAM,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QAC1D,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,cAAc,GAAG,YAAY;QACjC,CAAC,CAAC,yBAAyB,YAAY,yCAAyC;QAChF,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC,CAAC,MAAM,GAAG,cAAc,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC3D,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,IAAI,CAAC;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,2CAA2C,CAAC;IACxD,iBAAiB,EAAE,CAAC;SACjB,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,uEAAuE;QACrE,0DAA0D,CAC7D;IACH,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,8EAA8E;QAC5E,6EAA6E;QAC7E,+EAA+E,CAClF;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC;QACN,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,4EAA4E;YAC1E,0EAA0E;YAC1E,yEAAyE,CAC5E;QACH,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,EAAE,CAAC;aACP,GAAG,CAAC,IAAI,CAAC;aACT,QAAQ,EAAE;aACV,QAAQ,CACP,4EAA4E;YAC1E,2EAA2E,CAC9E;KACJ,CAAC;SACD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,EAAE;QACrF,OAAO,EAAE,sDAAsD;KAChE,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CACP,0EAA0E;QACxE,mEAAmE;QACnE,0EAA0E,CAC7E;CACJ,CAAC,CAAC;AAEH,MAAM,UAAU,cAAc,CAC5B,GAAW,EACX,cAA8B,EAC9B,MAAsB,eAAe,EACrC,cAA6D,EAC7D,sBAAiE,EACjE,wBAA8D,EAC9D,mBAAsC,EACtC,mBAAyC;IAEzC,MAAM,WAAW,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,MAAM,WAAW,GAAG,aAAa,CAAC,cAAc,CAAC;QAC/C,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,aAAa,CAAC,sBAAsB,CAAC;YACrC,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,SAAS,GAAG,aAAa,CAAC,sBAAsB,CAAC;QACrD,CAAC,CAAC,OAAO,wBAAwB,KAAK,UAAU;YAC9C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,wBAAwB;QAC5B,CAAC,CAAC,sBAAsB,CAAC;IAC3B,MAAM,gBAAgB,GACpB,OAAO,wBAAwB,KAAK,UAAU,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAClG,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;IAC7C,sEAAsE;IACtE,oEAAoE;IACpE,IAAI,YAAY,GAA2B,IAAI,CAAC;IAChD,IAAI,iBAAiB,GAAkB,IAAI,CAAC;IAC5C,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,yEAAyE;IACzE,0EAA0E;IAC1E,4EAA4E;IAC5E,0EAA0E;IAC1E,gCAAgC;IAChC,MAAM,aAAa,GAAG,YAAY,CAAC,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC;IACtE,MAAM,WAAW,GAAG,aAAa;QAC/B,CAAC,CAAC,8EAA8E;YAC9E,6DAA6D;YAC7D,iFAAiF;YACjF,gDAAgD;YAChD,+EAA+E;YAC/E,0FAA0F;YAC1F,wCAAwC;YACxC,uEAAuE;YACvE,+EAA+E;YAC/E,8EAA8E;YAC9E,0CAA0C;YAC1C,mFAAmF;YACnF,yEAAyE;QAC3E,CAAC,CAAC,6FAA6F;YAC7F,iFAAiF;YACjF,gDAAgD;YAChD,iFAAiF;YACjF,iEAAiE;YACjE,+DAA+D;YAC/D,wCAAwC;YACxC,uEAAuE;YACvE,+EAA+E;YAC/E,8EAA8E;YAC9E,0CAA0C;YAC1C,mFAAmF;YACnF,yFAAyF;YACzF,wEAAwE;YACxE,gFAAgF;YAChF,sBAAsB;YACtB,+EAA+E;YAC/E,2EAA2E;YAC3E,kFAAkF;YAClF,yCAAyC,CAAC;IAC9C,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,WAAW,EACT,WAAW;YACX,gFAAgF;YAChF,+DAA+D;YAC/D,qEAAqE;QACvE,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,YAAY;QAC3B,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO;YACtF,MAAM,mBAAmB,GAAG,uBAAuB,CACjD,iBAAiB,CAAC,WAAW,CAAC,EAC9B,iBAAiB,KAAK,IAAI,CAC3B,CAAC;YACF,IAAI,mBAAmB,EAAE,CAAC;gBACxB,OAAO,mBAAmB,CAAC;YAC7B,CAAC;YACD,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC/B,OAAO,yGAAyG,CAAC;YACnH,CAAC;YACD,IAAI,SAAgC,CAAC;YACrC,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,qEAAqE;oBACrE,SAAS,GAAG,EAAE,OAAO,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,6CAA8C,KAAe,CAAC,OAAO,+BAA+B,CAAC;gBAC9G,CAAC;YACH,CAAC;YACD,IAAI,IAAI,EAAE,eAAe,EAAE,CAAC;gBAC1B,SAAS,GAAG,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,EAAE,CAAC;YACvE,CAAC;YACD,gEAAgE;YAChE,yEAAyE;YACzE,sEAAsE;YACtE,wEAAwE;YACxE,wEAAwE;YACxE,8BAA8B;YAC9B,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACxE,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,IAAI,oBAAoB,EAAE,CAAC;gBAC9D,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;gBAC/E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACtD,OAAO,CACL,4BAA4B,UAAU,WAAW,OAAO,CAAC,MAAM,cAAc;wBAC7E,4BAA4B,GAAG,6CAA6C;wBAC5E,iFAAiF;wBACjF,2EAA2E;wBAC3E,iCAAiC,CAClC,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,IAAI,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjE,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;YACD,wEAAwE;YACxE,yDAAyD;YACzD,MAAM,YAAY,GAAG,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACzD,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,UAAU,YAAY,EAAE,CAAC;YAClC,CAAC;YACD,0EAA0E;YAC1E,gEAAgE;YAChE,wDAAwD;YACxD,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YACrE,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,UAAU,cAAc,EAAE,CAAC;YACpC,CAAC;YACD,MAAM,aAAa,GAAG,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;YAClF,MAAM,aAAa,GAAG,KAAK,EACzB,KAAsC,EACd,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;YAE7E,2EAA2E;YAC3E,qDAAqD;YACrD,IAAI,OAAO,IAAI,CAAC,iBAAiB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC;gBACrF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBACjD,IAAI,YAAY,IAAI,iBAAiB,KAAK,UAAU,EAAE,CAAC;oBACrD,YAAY,CAAC,IAAI,EAAE,CAAC;oBACpB,YAAY,GAAG,IAAI,CAAC;gBACtB,CAAC;gBACD,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;wBAC1C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;4BACjC,GAAG,KAAK;4BACR,IAAI,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,CAAC;yBAClD,CAAC,CAAC;wBACH,YAAY,GAAG,IAAI,eAAe,CAChC,GAAG,EACH,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,EACjC,gBAAgB,EAChB,SAAS,EACT,MAAM,CACP,CAAC;wBACF,iBAAiB,GAAG,UAAU,CAAC;wBAC/B,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC;oBACtC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,uDAAwD,KAAe,CAAC,OAAO,EAAE,CAAC;oBAC3F,CAAC;gBACH,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO;oBAAE,OAAO,sBAAsB,CAAC;gBAC1D,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,GAAG,CAChC,OAAO,EACP,SAAS,IAAI,eAAe,EAC5B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,QAAQ;oBACd,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;oBACtF,CAAC,CAAC,SAAS,CACd,CAAC;gBACF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAClD,MAAM,QAAQ,GACZ,GAAG,CAAC,QAAQ,KAAK,SAAS;oBACxB,CAAC,CAAC,YAAY,SAAS,IAAI,eAAe,qDAAqD;oBAC/F,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC3B,OAAO,qBAAqB,CAAC,cAAc,QAAQ,KAAK,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC;YACtF,CAAC;YACD,IAAI,iBAAiB,EAAE,CAAC;gBACtB,IAAI,MAAqB,CAAC;gBAC1B,IAAI,CAAC;oBACH,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;gBACjE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,uDAAwD,KAAe,CAAC,OAAO,EAAE,CAAC;gBAC3F,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO;oBAAE,OAAO,sBAAsB,CAAC;gBAC1D,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC3E,OAAO,CACL,+BAA+B;oBAC/B,OAAO,MAAM,CAAC,EAAE,IAAI;oBACpB,QAAQ,MAAM,CAAC,GAAG,IAAI;oBACtB,QAAQ,MAAM,CAAC,OAAO,IAAI;oBAC1B,CAAC,SAAS;wBACR,CAAC,CAAC,MAAM,CAAC,SAAS;4BAChB,CAAC,CAAC,qBAAqB;gCACnB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI;gCAClE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,SAAS,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI;6BACtE;iCACE,MAAM,CAAC,OAAO,CAAC;iCACf,IAAI,CACH,KAAK,CACN,6EAA6E;4BAClF,CAAC,CAAC,yJAAyJ;wBAC7J,CAAC,CAAC,EAAE,CAAC;oBACP,4BAA4B,MAAM,CAAC,EAAE,oBAAoB;oBACzD,+DAA+D,CAChE,CAAC;YACJ,CAAC;YAED,MAAM,gBAAgB,GAAG,SAAS,IAAI,eAAe,CAAC;YAEtD,qEAAqE;YACrE,wEAAwE;YACxE,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC/C,IAAI,MAAqB,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,8DAA+D,KAAe,CAAC,OAAO,EAAE,CAAC;YAClG,CAAC;YACD,sEAAsE;YACtE,iEAAiE;YACjE,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO;gBAAE,OAAO,sBAAsB,CAAC;YAE1D,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;oBAChD,GAAG;oBACH,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;oBACjC,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC;iBACvC,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAa,EAAE,CAAC;gBAC5B,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,IAAI,YAAY,GAAG,KAAK,CAAC;gBAEzB,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;oBAC9B,IAAI,YAAY;wBAAE,OAAO;oBACzB,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC;oBAC1B,IAAI,UAAU,GAAG,gBAAgB,EAAE,CAAC;wBAClC,YAAY,GAAG,IAAI,CAAC;wBACpB,OAAO;oBACT,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAElB,gDAAgD;oBAChD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;wBACrB,OAAO,CAAC,QAAQ,CAAC;4BACf,IAAI,EAAE,eAAe;4BACrB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;4BAC9B,UAAU;yBACX,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC,CAAC;gBACF,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACjC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAEjC,IAAI,MAAM,GAAG,KAAK,CAAC;gBACnB,IAAI,QAAQ,GAAG,KAAK,CAAC;gBAErB,mBAAmB;gBACnB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC5B,QAAQ,GAAG,IAAI,CAAC;oBAChB,MAAM,GAAG,IAAI,CAAC;oBACd,IAAI,KAAK,CAAC,GAAG;wBAAE,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC5C,CAAC,EAAE,gBAAgB,CAAC,CAAC;gBAErB,wBAAwB;gBACxB,MAAM,OAAO,GAAG,GAAG,EAAE;oBACnB,MAAM,GAAG,IAAI,CAAC;oBACd,IAAI,KAAK,CAAC,GAAG;wBAAE,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC5C,CAAC,CAAC;gBACF,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAElE,mEAAmE;gBACnE,yEAAyE;gBACzE,mEAAmE;gBACnE,uEAAuE;gBACvE,0CAA0C;gBAC1C,IAAI,QAA4C,CAAC;gBACjD,IAAI,UAAqD,CAAC;gBAC1D,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;oBACpB,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;wBAC3B,QAAQ,GAAG,KAAK,CAAC,GAAG,IAAI,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;wBAC9E,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;wBACxB,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;oBAC1B,CAAC,EAAE,iBAAiB,CAAC,CAAC;gBACxB,CAAC,CAAC,CAAC;gBAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;oBAC/B,YAAY,CAAC,KAAK,CAAC,CAAC;oBACpB,YAAY,CAAC,UAAU,CAAC,CAAC;oBACzB,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAErD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAC1D,IAAI,MAAM,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;oBAC/C,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM;4BACJ,qBAAqB,gBAAgB,GAAG,IAAI,GAAG,IAAI,qCAAqC;gCACxF,MAAM,CAAC;oBACX,CAAC;oBACD,uEAAuE;oBACvE,uEAAuE;oBACvE,mEAAmE;oBACnE,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;wBACxB,MAAM;4BACJ,mEAAmE;gCACnE,8DAA8D;gCAC9D,yCAAyC;gCACzC,MAAM,CAAC;oBACX,CAAC;oBACD,IAAI,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;wBACxB,MAAM,IAAI,GACR,QAAQ,KAAK,SAAS;4BACpB,CAAC,CAAC,mBAAmB;4BACrB,CAAC,CAAC,+DAA+D,CAAC;wBACtE,MAAM;4BACJ,uEAAuE;gCACvE,sCAAsC,iBAAiB,GAAG,IAAI,YAAY,IAAI,IAAI;gCAClF,sEAAsE;gCACtE,MAAM,CAAC;oBACX,CAAC;oBAED,MAAM,QAAQ,GAAG,QAAQ;wBACvB,CAAC,CAAC,YAAY,gBAAgB,KAAK;wBACnC,CAAC,CAAC,MAAM;4BACN,CAAC,CAAC,QAAQ;4BACV,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;oBAExB,OAAO,CAAC,qBAAqB,CAAC,cAAc,QAAQ,KAAK,MAAM,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;gBACxF,CAAC,CAAC,CAAC;gBAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;oBACxB,YAAY,CAAC,KAAK,CAAC,CAAC;oBACpB,YAAY,CAAC,UAAU,CAAC,CAAC;oBACzB,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBACrD,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACrE,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { z } from "zod";
2
+ import type { AgentTool } from "@prestyj/agent";
3
+ import { NodeDebugSession } from "../core/node-debugger.js";
4
+ import type { SandboxPolicy } from "../core/sandbox.js";
5
+ import { type ToolOperations } from "./operations.js";
6
+ declare const DebugParams: z.ZodObject<{
7
+ action: z.ZodEnum<{
8
+ output: "output";
9
+ pause: "pause";
10
+ stop: "stop";
11
+ stack: "stack";
12
+ continue: "continue";
13
+ step_over: "step_over";
14
+ step_into: "step_into";
15
+ step_out: "step_out";
16
+ launch: "launch";
17
+ set_breakpoint: "set_breakpoint";
18
+ remove_breakpoint: "remove_breakpoint";
19
+ variables: "variables";
20
+ evaluate: "evaluate";
21
+ }>;
22
+ program: z.ZodOptional<z.ZodString>;
23
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
24
+ node_args: z.ZodOptional<z.ZodArray<z.ZodString>>;
25
+ breakpoints: z.ZodOptional<z.ZodArray<z.ZodObject<{
26
+ file: z.ZodString;
27
+ line: z.ZodNumber;
28
+ condition: z.ZodOptional<z.ZodString>;
29
+ }, z.core.$strip>>>;
30
+ stop_on_entry: z.ZodOptional<z.ZodBoolean>;
31
+ pause_on_exceptions: z.ZodOptional<z.ZodEnum<{
32
+ none: "none";
33
+ all: "all";
34
+ uncaught: "uncaught";
35
+ }>>;
36
+ file: z.ZodOptional<z.ZodString>;
37
+ line: z.ZodOptional<z.ZodNumber>;
38
+ condition: z.ZodOptional<z.ZodString>;
39
+ breakpoint_id: z.ZodOptional<z.ZodString>;
40
+ frame: z.ZodOptional<z.ZodNumber>;
41
+ expression: z.ZodOptional<z.ZodString>;
42
+ timeout_ms: z.ZodOptional<z.ZodNumber>;
43
+ }, z.core.$strip>;
44
+ /** Holds the one live debug session of an agent session; `shutdown` on dispose. */
45
+ export declare class DebugManager {
46
+ private session;
47
+ get current(): NodeDebugSession | undefined;
48
+ replace(next: NodeDebugSession | undefined): boolean;
49
+ shutdown(): void;
50
+ }
51
+ export declare function createDebugTool(cwd: string, manager: DebugManager, ops?: ToolOperations, planModeRef?: {
52
+ current: boolean;
53
+ }, getSandboxPolicy?: () => SandboxPolicy): AgentTool<typeof DebugParams>;
54
+ export {};