@agntk/core 0.3.3 → 1.0.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 (351) hide show
  1. package/dist/advanced/index.d.ts +13 -22
  2. package/dist/advanced/index.d.ts.map +1 -1
  3. package/dist/advanced/index.js +10 -55
  4. package/dist/advanced/index.js.map +1 -1
  5. package/dist/agent.d.ts +2 -35
  6. package/dist/agent.d.ts.map +1 -1
  7. package/dist/agent.js +113 -111
  8. package/dist/agent.js.map +1 -1
  9. package/dist/config/defaults.d.ts +1 -5
  10. package/dist/config/defaults.d.ts.map +1 -1
  11. package/dist/config/defaults.js +1 -11
  12. package/dist/config/defaults.js.map +1 -1
  13. package/dist/config/index.d.ts +5 -1
  14. package/dist/config/index.d.ts.map +1 -1
  15. package/dist/config/index.js +7 -7
  16. package/dist/config/index.js.map +1 -1
  17. package/dist/config/loader.d.ts +0 -40
  18. package/dist/config/loader.d.ts.map +1 -1
  19. package/dist/config/loader.js +3 -80
  20. package/dist/config/loader.js.map +1 -1
  21. package/dist/config/schema.d.ts +117 -788
  22. package/dist/config/schema.d.ts.map +1 -1
  23. package/dist/config/schema.js +52 -63
  24. package/dist/config/schema.js.map +1 -1
  25. package/dist/constants.d.ts +0 -11
  26. package/dist/constants.d.ts.map +1 -1
  27. package/dist/constants.js +0 -17
  28. package/dist/constants.js.map +1 -1
  29. package/dist/evals/assertions.d.ts +0 -35
  30. package/dist/evals/assertions.d.ts.map +1 -1
  31. package/dist/evals/assertions.js +0 -51
  32. package/dist/evals/assertions.js.map +1 -1
  33. package/dist/evals/index.d.ts +0 -5
  34. package/dist/evals/index.d.ts.map +1 -1
  35. package/dist/evals/index.js +0 -5
  36. package/dist/evals/index.js.map +1 -1
  37. package/dist/evals/runner.d.ts +0 -27
  38. package/dist/evals/runner.d.ts.map +1 -1
  39. package/dist/evals/runner.js +3 -45
  40. package/dist/evals/runner.js.map +1 -1
  41. package/dist/evals/types.d.ts +0 -14
  42. package/dist/evals/types.d.ts.map +1 -1
  43. package/dist/evals/types.js +0 -3
  44. package/dist/evals/types.js.map +1 -1
  45. package/dist/guardrails/built-ins.d.ts +0 -28
  46. package/dist/guardrails/built-ins.d.ts.map +1 -1
  47. package/dist/guardrails/built-ins.js +21 -47
  48. package/dist/guardrails/built-ins.js.map +1 -1
  49. package/dist/guardrails/index.d.ts +1 -4
  50. package/dist/guardrails/index.d.ts.map +1 -1
  51. package/dist/guardrails/index.js +1 -4
  52. package/dist/guardrails/index.js.map +1 -1
  53. package/dist/guardrails/runner.d.ts +0 -30
  54. package/dist/guardrails/runner.d.ts.map +1 -1
  55. package/dist/guardrails/runner.js +1 -46
  56. package/dist/guardrails/runner.js.map +1 -1
  57. package/dist/guardrails/types.d.ts +0 -35
  58. package/dist/guardrails/types.d.ts.map +1 -1
  59. package/dist/guardrails/types.js +4 -7
  60. package/dist/guardrails/types.js.map +1 -1
  61. package/dist/index.d.ts +4 -12
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +2 -31
  64. package/dist/index.js.map +1 -1
  65. package/dist/memory/loader.d.ts +0 -17
  66. package/dist/memory/loader.d.ts.map +1 -1
  67. package/dist/memory/loader.js +5 -27
  68. package/dist/memory/loader.js.map +1 -1
  69. package/dist/memory/store.d.ts +8 -16
  70. package/dist/memory/store.d.ts.map +1 -1
  71. package/dist/memory/store.js +101 -32
  72. package/dist/memory/store.js.map +1 -1
  73. package/dist/memory/types.d.ts +10 -30
  74. package/dist/memory/types.d.ts.map +1 -1
  75. package/dist/memory/types.js +0 -6
  76. package/dist/memory/types.js.map +1 -1
  77. package/dist/models.d.ts +9 -32
  78. package/dist/models.d.ts.map +1 -1
  79. package/dist/models.js +25 -68
  80. package/dist/models.js.map +1 -1
  81. package/dist/observability/index.d.ts +0 -3
  82. package/dist/observability/index.d.ts.map +1 -1
  83. package/dist/observability/index.js +0 -3
  84. package/dist/observability/index.js.map +1 -1
  85. package/dist/observability/langfuse.d.ts +0 -38
  86. package/dist/observability/langfuse.d.ts.map +1 -1
  87. package/dist/observability/langfuse.js +6 -55
  88. package/dist/observability/langfuse.js.map +1 -1
  89. package/dist/observability/types.d.ts +0 -21
  90. package/dist/observability/types.d.ts.map +1 -1
  91. package/dist/observability/types.js +0 -3
  92. package/dist/observability/types.js.map +1 -1
  93. package/dist/presets/tool-preset-registry.d.ts +0 -21
  94. package/dist/presets/tool-preset-registry.d.ts.map +1 -1
  95. package/dist/presets/tool-preset-registry.js +15 -34
  96. package/dist/presets/tool-preset-registry.js.map +1 -1
  97. package/dist/presets/tools.d.ts +41 -39
  98. package/dist/presets/tools.d.ts.map +1 -1
  99. package/dist/presets/tools.js +46 -40
  100. package/dist/presets/tools.js.map +1 -1
  101. package/dist/prompts/context.d.ts +0 -4
  102. package/dist/prompts/context.d.ts.map +1 -1
  103. package/dist/prompts/context.js +21 -33
  104. package/dist/prompts/context.js.map +1 -1
  105. package/dist/prompts/template.d.ts +0 -11
  106. package/dist/prompts/template.d.ts.map +1 -1
  107. package/dist/prompts/template.js +4 -14
  108. package/dist/prompts/template.js.map +1 -1
  109. package/dist/provider-resolver.d.ts +0 -29
  110. package/dist/provider-resolver.d.ts.map +1 -1
  111. package/dist/provider-resolver.js +17 -61
  112. package/dist/provider-resolver.js.map +1 -1
  113. package/dist/reflection.d.ts +0 -34
  114. package/dist/reflection.d.ts.map +1 -1
  115. package/dist/reflection.js +0 -40
  116. package/dist/reflection.js.map +1 -1
  117. package/dist/skills/index.d.ts +0 -3
  118. package/dist/skills/index.d.ts.map +1 -1
  119. package/dist/skills/index.js +0 -3
  120. package/dist/skills/index.js.map +1 -1
  121. package/dist/skills/loader.d.ts +0 -69
  122. package/dist/skills/loader.d.ts.map +1 -1
  123. package/dist/skills/loader.js +38 -130
  124. package/dist/skills/loader.js.map +1 -1
  125. package/dist/skills/types.d.ts +0 -36
  126. package/dist/skills/types.d.ts.map +1 -1
  127. package/dist/skills/types.js +0 -4
  128. package/dist/skills/types.js.map +1 -1
  129. package/dist/system-detect.d.ts +0 -57
  130. package/dist/system-detect.d.ts.map +1 -1
  131. package/dist/system-detect.js +9 -114
  132. package/dist/system-detect.js.map +1 -1
  133. package/dist/tools/approval.d.ts +0 -47
  134. package/dist/tools/approval.d.ts.map +1 -1
  135. package/dist/tools/approval.js +0 -46
  136. package/dist/tools/approval.js.map +1 -1
  137. package/dist/tools/ast-grep/cli.d.ts.map +1 -1
  138. package/dist/tools/ast-grep/cli.js +10 -4
  139. package/dist/tools/ast-grep/cli.js.map +1 -1
  140. package/dist/tools/ast-grep/constants.d.ts.map +1 -1
  141. package/dist/tools/ast-grep/constants.js +7 -14
  142. package/dist/tools/ast-grep/constants.js.map +1 -1
  143. package/dist/tools/ast-grep/downloader.d.ts.map +1 -1
  144. package/dist/tools/ast-grep/downloader.js +1 -4
  145. package/dist/tools/ast-grep/downloader.js.map +1 -1
  146. package/dist/tools/ast-grep/index.d.ts +2 -2
  147. package/dist/tools/ast-grep/index.d.ts.map +1 -1
  148. package/dist/tools/ast-grep/index.js +1 -1
  149. package/dist/tools/ast-grep/index.js.map +1 -1
  150. package/dist/tools/ast-grep/tools.d.ts +4 -4
  151. package/dist/tools/ast-grep/tools.d.ts.map +1 -1
  152. package/dist/tools/ast-grep/tools.js +2 -8
  153. package/dist/tools/ast-grep/tools.js.map +1 -1
  154. package/dist/tools/browser/index.d.ts +4 -4
  155. package/dist/tools/browser/index.d.ts.map +1 -1
  156. package/dist/tools/browser/index.js +2 -3
  157. package/dist/tools/browser/index.js.map +1 -1
  158. package/dist/tools/browser/stream.d.ts +0 -32
  159. package/dist/tools/browser/stream.d.ts.map +1 -1
  160. package/dist/tools/browser/stream.js +0 -53
  161. package/dist/tools/browser/stream.js.map +1 -1
  162. package/dist/tools/browser/tool.d.ts +10 -15
  163. package/dist/tools/browser/tool.d.ts.map +1 -1
  164. package/dist/tools/browser/tool.js +2 -26
  165. package/dist/tools/browser/tool.js.map +1 -1
  166. package/dist/tools/browser/types.d.ts +31 -156
  167. package/dist/tools/browser/types.d.ts.map +1 -1
  168. package/dist/tools/browser/types.js +22 -17
  169. package/dist/tools/browser/types.js.map +1 -1
  170. package/dist/tools/deep-reasoning/constants.d.ts +0 -6
  171. package/dist/tools/deep-reasoning/constants.d.ts.map +1 -1
  172. package/dist/tools/deep-reasoning/constants.js +0 -6
  173. package/dist/tools/deep-reasoning/constants.js.map +1 -1
  174. package/dist/tools/deep-reasoning/engine.d.ts.map +1 -1
  175. package/dist/tools/deep-reasoning/engine.js +0 -1
  176. package/dist/tools/deep-reasoning/engine.js.map +1 -1
  177. package/dist/tools/deep-reasoning/index.d.ts +4 -0
  178. package/dist/tools/deep-reasoning/index.d.ts.map +1 -1
  179. package/dist/tools/deep-reasoning/index.js +4 -3
  180. package/dist/tools/deep-reasoning/index.js.map +1 -1
  181. package/dist/tools/deep-reasoning/tools.d.ts.map +1 -1
  182. package/dist/tools/deep-reasoning/tools.js +8 -1
  183. package/dist/tools/deep-reasoning/tools.js.map +1 -1
  184. package/dist/tools/deep-reasoning/types.d.ts +5 -30
  185. package/dist/tools/deep-reasoning/types.d.ts.map +1 -1
  186. package/dist/tools/deep-reasoning/types.js +10 -1
  187. package/dist/tools/deep-reasoning/types.js.map +1 -1
  188. package/dist/tools/file/index.d.ts +3 -5
  189. package/dist/tools/file/index.d.ts.map +1 -1
  190. package/dist/tools/file/index.js +2 -4
  191. package/dist/tools/file/index.js.map +1 -1
  192. package/dist/tools/file/tools.d.ts +8 -11
  193. package/dist/tools/file/tools.d.ts.map +1 -1
  194. package/dist/tools/file/tools.js +45 -59
  195. package/dist/tools/file/tools.js.map +1 -1
  196. package/dist/tools/glob/cli.d.ts.map +1 -1
  197. package/dist/tools/glob/cli.js +8 -6
  198. package/dist/tools/glob/cli.js.map +1 -1
  199. package/dist/tools/glob/tools.d.ts.map +1 -1
  200. package/dist/tools/glob/tools.js +7 -10
  201. package/dist/tools/glob/tools.js.map +1 -1
  202. package/dist/tools/grep/cli.d.ts.map +1 -1
  203. package/dist/tools/grep/cli.js +0 -2
  204. package/dist/tools/grep/cli.js.map +1 -1
  205. package/dist/tools/grep/constants.d.ts.map +1 -1
  206. package/dist/tools/grep/constants.js +3 -5
  207. package/dist/tools/grep/constants.js.map +1 -1
  208. package/dist/tools/grep/downloader.d.ts.map +1 -1
  209. package/dist/tools/grep/downloader.js +3 -3
  210. package/dist/tools/grep/downloader.js.map +1 -1
  211. package/dist/tools/grep/tools.d.ts +2 -2
  212. package/dist/tools/grep/tools.d.ts.map +1 -1
  213. package/dist/tools/grep/tools.js +8 -14
  214. package/dist/tools/grep/tools.js.map +1 -1
  215. package/dist/tools/index.d.ts +10 -11
  216. package/dist/tools/index.d.ts.map +1 -1
  217. package/dist/tools/index.js +9 -22
  218. package/dist/tools/index.js.map +1 -1
  219. package/dist/tools/model-retry.d.ts +0 -40
  220. package/dist/tools/model-retry.d.ts.map +1 -1
  221. package/dist/tools/model-retry.js +1 -49
  222. package/dist/tools/model-retry.js.map +1 -1
  223. package/dist/tools/plan/constants.d.ts +0 -6
  224. package/dist/tools/plan/constants.d.ts.map +1 -1
  225. package/dist/tools/plan/constants.js +9 -6
  226. package/dist/tools/plan/constants.js.map +1 -1
  227. package/dist/tools/plan/index.d.ts +1 -1
  228. package/dist/tools/plan/index.d.ts.map +1 -1
  229. package/dist/tools/plan/index.js +1 -4
  230. package/dist/tools/plan/index.js.map +1 -1
  231. package/dist/tools/plan/tools.d.ts +2 -2
  232. package/dist/tools/plan/tools.d.ts.map +1 -1
  233. package/dist/tools/plan/tools.js +10 -11
  234. package/dist/tools/plan/tools.js.map +1 -1
  235. package/dist/tools/plan/types.d.ts +22 -32
  236. package/dist/tools/plan/types.d.ts.map +1 -1
  237. package/dist/tools/plan/types.js +11 -3
  238. package/dist/tools/plan/types.js.map +1 -1
  239. package/dist/tools/progress/index.d.ts +3 -22
  240. package/dist/tools/progress/index.d.ts.map +1 -1
  241. package/dist/tools/progress/index.js +19 -34
  242. package/dist/tools/progress/index.js.map +1 -1
  243. package/dist/tools/search-skills.d.ts +0 -23
  244. package/dist/tools/search-skills.d.ts.map +1 -1
  245. package/dist/tools/search-skills.js +3 -32
  246. package/dist/tools/search-skills.js.map +1 -1
  247. package/dist/tools/shell/background.d.ts +2 -18
  248. package/dist/tools/shell/background.d.ts.map +1 -1
  249. package/dist/tools/shell/background.js +45 -48
  250. package/dist/tools/shell/background.js.map +1 -1
  251. package/dist/tools/shell/constants.d.ts +0 -3
  252. package/dist/tools/shell/constants.d.ts.map +1 -1
  253. package/dist/tools/shell/constants.js +16 -6
  254. package/dist/tools/shell/constants.js.map +1 -1
  255. package/dist/tools/shell/index.d.ts +1 -1
  256. package/dist/tools/shell/index.d.ts.map +1 -1
  257. package/dist/tools/shell/index.js +1 -1
  258. package/dist/tools/shell/index.js.map +1 -1
  259. package/dist/tools/shell/tools.d.ts +3 -3
  260. package/dist/tools/shell/tools.d.ts.map +1 -1
  261. package/dist/tools/shell/tools.js +0 -2
  262. package/dist/tools/shell/tools.js.map +1 -1
  263. package/dist/tools/shell/types.d.ts +5 -13
  264. package/dist/tools/shell/types.d.ts.map +1 -1
  265. package/dist/tools/shell/types.js +10 -1
  266. package/dist/tools/shell/types.js.map +1 -1
  267. package/dist/tools/spawn-agent/check-agent.d.ts +45 -0
  268. package/dist/tools/spawn-agent/check-agent.d.ts.map +1 -0
  269. package/dist/tools/spawn-agent/check-agent.js +84 -0
  270. package/dist/tools/spawn-agent/check-agent.js.map +1 -0
  271. package/dist/tools/spawn-agent/index.d.ts +44 -51
  272. package/dist/tools/spawn-agent/index.d.ts.map +1 -1
  273. package/dist/tools/spawn-agent/index.js +196 -84
  274. package/dist/tools/spawn-agent/index.js.map +1 -1
  275. package/dist/tools/spawn-agent/registry.d.ts +36 -0
  276. package/dist/tools/spawn-agent/registry.d.ts.map +1 -0
  277. package/dist/tools/spawn-agent/registry.js +88 -0
  278. package/dist/tools/spawn-agent/registry.js.map +1 -0
  279. package/dist/tools/utils/errors.d.ts +2 -1
  280. package/dist/tools/utils/errors.d.ts.map +1 -1
  281. package/dist/tools/utils/errors.js +2 -1
  282. package/dist/tools/utils/errors.js.map +1 -1
  283. package/dist/tools/utils/shell.d.ts +0 -11
  284. package/dist/tools/utils/shell.d.ts.map +1 -1
  285. package/dist/tools/utils/shell.js +10 -78
  286. package/dist/tools/utils/shell.js.map +1 -1
  287. package/dist/tools/utils/tool-result.d.ts +0 -3
  288. package/dist/tools/utils/tool-result.d.ts.map +1 -1
  289. package/dist/tools/utils/tool-result.js +4 -4
  290. package/dist/tools/utils/tool-result.js.map +1 -1
  291. package/dist/tools/web-search/index.d.ts +4 -0
  292. package/dist/tools/web-search/index.d.ts.map +1 -0
  293. package/dist/tools/web-search/index.js +3 -0
  294. package/dist/tools/web-search/index.js.map +1 -0
  295. package/dist/tools/web-search/tools.d.ts +17 -0
  296. package/dist/tools/web-search/tools.d.ts.map +1 -0
  297. package/dist/tools/web-search/tools.js +81 -0
  298. package/dist/tools/web-search/tools.js.map +1 -0
  299. package/dist/tools/web-search/types.d.ts +16 -0
  300. package/dist/tools/web-search/types.d.ts.map +1 -0
  301. package/dist/tools/web-search/types.js +29 -0
  302. package/dist/tools/web-search/types.js.map +1 -0
  303. package/dist/tools/workspace-middleware.d.ts +14 -0
  304. package/dist/tools/workspace-middleware.d.ts.map +1 -0
  305. package/dist/tools/workspace-middleware.js +97 -0
  306. package/dist/tools/workspace-middleware.js.map +1 -0
  307. package/dist/types/agent.d.ts +1 -66
  308. package/dist/types/agent.d.ts.map +1 -1
  309. package/dist/types/agent.js +0 -6
  310. package/dist/types/agent.js.map +1 -1
  311. package/dist/types/index.d.ts +4 -3
  312. package/dist/types/index.d.ts.map +1 -1
  313. package/dist/types/index.js +3 -3
  314. package/dist/types/index.js.map +1 -1
  315. package/dist/types/lifecycle.d.ts +0 -141
  316. package/dist/types/lifecycle.d.ts.map +1 -1
  317. package/dist/types/lifecycle.js +4 -54
  318. package/dist/types/lifecycle.js.map +1 -1
  319. package/dist/types/streaming.d.ts +0 -4
  320. package/dist/types/streaming.d.ts.map +1 -1
  321. package/dist/types/streaming.js +0 -4
  322. package/dist/types/streaming.js.map +1 -1
  323. package/dist/usage-limits.d.ts +0 -37
  324. package/dist/usage-limits.d.ts.map +1 -1
  325. package/dist/usage-limits.js +1 -40
  326. package/dist/usage-limits.js.map +1 -1
  327. package/dist/workflow/durable-tool.d.ts +0 -84
  328. package/dist/workflow/durable-tool.d.ts.map +1 -1
  329. package/dist/workflow/durable-tool.js +2 -104
  330. package/dist/workflow/durable-tool.js.map +1 -1
  331. package/dist/workflow/hooks.d.ts +0 -215
  332. package/dist/workflow/hooks.d.ts.map +1 -1
  333. package/dist/workflow/hooks.js +15 -221
  334. package/dist/workflow/hooks.js.map +1 -1
  335. package/dist/workflow/index.d.ts +0 -9
  336. package/dist/workflow/index.d.ts.map +1 -1
  337. package/dist/workflow/index.js +0 -12
  338. package/dist/workflow/index.js.map +1 -1
  339. package/dist/workflow/utils.d.ts +0 -24
  340. package/dist/workflow/utils.d.ts.map +1 -1
  341. package/dist/workflow/utils.js +1 -32
  342. package/dist/workflow/utils.js.map +1 -1
  343. package/dist/wrappers/best-of-n.d.ts +0 -35
  344. package/dist/wrappers/best-of-n.d.ts.map +1 -1
  345. package/dist/wrappers/best-of-n.js +4 -53
  346. package/dist/wrappers/best-of-n.js.map +1 -1
  347. package/dist/wrappers/refine-loop.d.ts +36 -0
  348. package/dist/wrappers/refine-loop.d.ts.map +1 -0
  349. package/dist/wrappers/refine-loop.js +135 -0
  350. package/dist/wrappers/refine-loop.js.map +1 -0
  351. package/package.json +14 -8
@@ -1,44 +1,31 @@
1
- /**
2
- * @agntk/core - Background Process Management Tool
3
- *
4
- * Manages long-running background processes with session tracking.
5
- * Ported from @agntk/brain shell to consolidate shell tools.
6
- */
7
1
  import { tool } from 'ai';
8
2
  import { z } from 'zod';
9
3
  import { spawn } from 'node:child_process';
10
4
  import { isDangerousCommand, buildSanitizedEnv } from '../utils/shell.js';
11
5
  import { MAX_COMMAND_LENGTH, MAX_CWD_LENGTH } from './constants.js';
12
- // ============================================================================
13
- // Session Store
14
- // ============================================================================
15
- const MAX_BUFFER = 1024 * 1024; // 1MB
16
- const ROLLING_BUFFER = 512 * 1024; // 512KB
6
+ const MAX_BUFFER = 1024 * 1024;
7
+ const ROLLING_BUFFER = 512 * 1024;
17
8
  const MAX_SESSIONS = 20;
18
- const SESSION_TTL_MS = 2 * 60 * 60 * 1000; // 2 hours
9
+ const SESSION_TTL_MS = 2 * 60 * 60 * 1000;
19
10
  const backgroundSessions = new Map();
20
11
  function generateSessionId() {
21
12
  return `bg-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
22
13
  }
23
- /**
24
- * Evict completed/stopped sessions when at capacity, or the oldest expired session.
25
- * M-1: prevents the Map from growing indefinitely.
26
- */
27
14
  function evictSessions() {
28
15
  const now = Date.now();
29
- // First, remove TTL-expired entries regardless of capacity
30
16
  for (const [id, session] of backgroundSessions.entries()) {
31
17
  if (now - session.startedAt > SESSION_TTL_MS) {
32
18
  if (session.status === 'running') {
33
19
  try {
34
20
  session.process.kill('SIGTERM');
35
21
  }
36
- catch { /* ignore */ }
22
+ catch {
23
+ void 0;
24
+ }
37
25
  }
38
26
  backgroundSessions.delete(id);
39
27
  }
40
28
  }
41
- // Then, if still over cap, evict oldest completed/stopped session
42
29
  if (backgroundSessions.size >= MAX_SESSIONS) {
43
30
  for (const [id, session] of backgroundSessions.entries()) {
44
31
  if (session.status !== 'running') {
@@ -49,36 +36,31 @@ function evictSessions() {
49
36
  }
50
37
  }
51
38
  }
52
- /** Get all sessions (for testing). */
53
39
  export function getBackgroundSessions() {
54
40
  return backgroundSessions;
55
41
  }
56
- /** Clear all sessions (for testing). */
57
42
  export function clearBackgroundSessions() {
58
43
  for (const session of backgroundSessions.values()) {
59
44
  if (session.status === 'running') {
60
45
  try {
61
46
  session.process.kill('SIGTERM');
62
47
  }
63
- catch (_e) { /* ignore */ }
48
+ catch {
49
+ void 0;
50
+ }
64
51
  }
65
52
  }
66
53
  backgroundSessions.clear();
67
54
  }
68
- // ============================================================================
69
- // Background Process Lifecycle
70
- // ============================================================================
71
55
  function startBackgroundProcess(command, options = {}) {
72
- // Evict old sessions before adding a new one (M-1)
73
56
  evictSessions();
74
57
  const sessionId = generateSessionId();
75
58
  const { cwd = process.cwd() } = options;
76
- // S-12: filter user-supplied env — strip secrets and disallow PATH/LD_PRELOAD overrides
77
59
  const filteredExtra = {};
78
60
  if (options.env) {
79
61
  for (const [k, v] of Object.entries(options.env)) {
80
62
  if (k === 'LD_PRELOAD' || k === 'LD_LIBRARY_PATH')
81
- continue; // block dangerous overrides
63
+ continue;
82
64
  filteredExtra[k] = v;
83
65
  }
84
66
  }
@@ -121,24 +103,17 @@ function startBackgroundProcess(command, options = {}) {
121
103
  backgroundSessions.set(sessionId, session);
122
104
  return session;
123
105
  }
124
- // ============================================================================
125
- // Tool Factory
126
- // ============================================================================
127
106
  const backgroundInputSchema = z.object({
128
107
  operation: z.enum(['start', 'status', 'output', 'stop', 'list']).describe('Operation to perform'),
129
- command: z.string().max(MAX_COMMAND_LENGTH).optional().describe('Command to run (required for start)'),
108
+ command: z
109
+ .string()
110
+ .max(MAX_COMMAND_LENGTH)
111
+ .optional()
112
+ .describe('Command to run (required for start)'),
130
113
  sessionId: z.string().optional().describe('Session ID (required for status/output/stop)'),
131
114
  cwd: z.string().max(MAX_CWD_LENGTH).optional().describe('Working directory (for start)'),
132
- env: z.record(z.string()).optional().describe('Environment variables (for start)'),
115
+ env: z.record(z.string(), z.string()).optional().describe('Environment variables (for start)'),
133
116
  });
134
- /**
135
- * Create a background process management tool.
136
- *
137
- * @example
138
- * ```typescript
139
- * const tools = { shell: createShellTool('/my/project'), background: createBackgroundTool() };
140
- * ```
141
- */
142
117
  export function createBackgroundTool() {
143
118
  return tool({
144
119
  description: `Run long-running processes in the background without blocking.
@@ -167,10 +142,17 @@ Examples:
167
142
  switch (operation) {
168
143
  case 'start': {
169
144
  if (!command) {
170
- return JSON.stringify({ success: false, error: 'Command is required for start operation' });
145
+ return JSON.stringify({
146
+ success: false,
147
+ error: 'Command is required for start operation',
148
+ });
171
149
  }
172
150
  if (isDangerousCommand(command)) {
173
- return JSON.stringify({ success: false, error: 'Command blocked for safety', blocked: true });
151
+ return JSON.stringify({
152
+ success: false,
153
+ error: 'Command blocked for safety',
154
+ blocked: true,
155
+ });
174
156
  }
175
157
  const session = startBackgroundProcess(command, { cwd, env });
176
158
  return JSON.stringify({
@@ -183,7 +165,10 @@ Examples:
183
165
  }
184
166
  case 'status': {
185
167
  if (!sessionId) {
186
- return JSON.stringify({ success: false, error: 'Session ID is required for status operation' });
168
+ return JSON.stringify({
169
+ success: false,
170
+ error: 'Session ID is required for status operation',
171
+ });
187
172
  }
188
173
  const session = backgroundSessions.get(sessionId);
189
174
  if (!session) {
@@ -202,7 +187,10 @@ Examples:
202
187
  }
203
188
  case 'output': {
204
189
  if (!sessionId) {
205
- return JSON.stringify({ success: false, error: 'Session ID is required for output operation' });
190
+ return JSON.stringify({
191
+ success: false,
192
+ error: 'Session ID is required for output operation',
193
+ });
206
194
  }
207
195
  const session = backgroundSessions.get(sessionId);
208
196
  if (!session) {
@@ -219,7 +207,10 @@ Examples:
219
207
  }
220
208
  case 'stop': {
221
209
  if (!sessionId) {
222
- return JSON.stringify({ success: false, error: 'Session ID is required for stop operation' });
210
+ return JSON.stringify({
211
+ success: false,
212
+ error: 'Session ID is required for stop operation',
213
+ });
223
214
  }
224
215
  const session = backgroundSessions.get(sessionId);
225
216
  if (!session) {
@@ -241,9 +232,15 @@ Examples:
241
232
  session.process.kill('SIGKILL');
242
233
  }
243
234
  }
244
- catch (_e) { /* ignore */ }
235
+ catch {
236
+ void 0;
237
+ }
245
238
  }, 5000);
246
- return JSON.stringify({ success: true, message: 'Process terminated', sessionId: session.id });
239
+ return JSON.stringify({
240
+ success: true,
241
+ message: 'Process terminated',
242
+ sessionId: session.id,
243
+ });
247
244
  }
248
245
  catch (error) {
249
246
  return JSON.stringify({
@@ -1 +1 @@
1
- {"version":3,"file":"background.js","sourceRoot":"","sources":["../../../src/tools/shell/background.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"background.js","sourceRoot":"","sources":["../../../src/tools/shell/background.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAcjE,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/B,MAAM,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC;AAClC,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE1C,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAA6B,CAAC;AAEhE,SAAS,iBAAiB;IACxB,OAAO,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,SAAS,aAAa;IACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC;QACzD,IAAI,GAAG,GAAG,OAAO,CAAC,SAAS,GAAG,cAAc,EAAE,CAAC;YAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAClC,CAAC;gBAAC,MAAM,CAAC;oBACP,KAAK,CAAC,CAAC;gBACT,CAAC;YACH,CAAC;YACD,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,IAAI,kBAAkB,CAAC,IAAI,IAAI,YAAY,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC;YACzD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC9B,IAAI,kBAAkB,CAAC,IAAI,GAAG,YAAY;oBAAE,MAAM;YACpD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,KAAK,MAAM,OAAO,IAAI,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC;QAClD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,CAAC,CAAC;YACT,CAAC;QACH,CAAC;IACH,CAAC;IACD,kBAAkB,CAAC,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAAe,EACf,UAA0D,EAAE;IAE5D,aAAa,EAAE,CAAC;IAEhB,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;IACtC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IAExC,MAAM,aAAa,GAA2B,EAAE,CAAC;IACjD,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,iBAAiB;gBAAE,SAAS;YAC5D,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;QAC1C,GAAG;QACH,GAAG,EAAE,EAAE,GAAG,iBAAiB,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;QAC1D,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAsB;QACjC,EAAE,EAAE,SAAS;QACb,OAAO;QACP,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,MAAM,EAAE,SAAS;QACjB,GAAG;KACJ,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QACvC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;YACvC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,CAAC;QACzD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QACvC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;YACvC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,CAAC;QACzD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QACxB,OAAO,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;QACrD,OAAO,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACpB,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;QAC1B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACjG,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,kBAAkB,CAAC;SACvB,QAAQ,EAAE;SACV,QAAQ,CAAC,qCAAqC,CAAC;IAClD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IACzF,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACxF,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CAC/F,CAAC,CAAC;AAEH,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,CAAC;QACV,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;0BAoBS;QACtB,WAAW,EAAE,qBAAqB;QAClC,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE;YAC7D,QAAQ,SAAS,EAAE,CAAC;gBAClB,KAAK,OAAO,CAAC,CAAC,CAAC;oBACb,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,OAAO,IAAI,CAAC,SAAS,CAAC;4BACpB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,yCAAyC;yBACjD,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;wBAChC,OAAO,IAAI,CAAC,SAAS,CAAC;4BACpB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,4BAA4B;4BACnC,OAAO,EAAE,IAAI;yBACd,CAAC,CAAC;oBACL,CAAC;oBAED,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC9D,OAAO,IAAI,CAAC,SAAS,CAAC;wBACpB,OAAO,EAAE,IAAI;wBACb,SAAS,EAAE,OAAO,CAAC,EAAE;wBACrB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;wBAC9B,MAAM,EAAE,SAAS;wBACjB,OAAO,EAAE,8DAA8D;qBACxE,CAAC,CAAC;gBACL,CAAC;gBAED,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,OAAO,IAAI,CAAC,SAAS,CAAC;4BACpB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,6CAA6C;yBACrD,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAClD,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,SAAS,EAAE,EAAE,CAAC,CAAC;oBACtF,CAAC;oBACD,OAAO,IAAI,CAAC,SAAS,CAAC;wBACpB,OAAO,EAAE,IAAI;wBACb,SAAS,EAAE,OAAO,CAAC,EAAE;wBACrB,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,UAAU,EACR,OAAO,CAAC,MAAM,KAAK,SAAS;4BAC1B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG;4BAC3D,CAAC,CAAC,SAAS;wBACf,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;qBACvC,CAAC,CAAC;gBACL,CAAC;gBAED,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,OAAO,IAAI,CAAC,SAAS,CAAC;4BACpB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,6CAA6C;yBACrD,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAClD,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,SAAS,EAAE,EAAE,CAAC,CAAC;oBACtF,CAAC;oBACD,OAAO,IAAI,CAAC,SAAS,CAAC;wBACpB,OAAO,EAAE,IAAI;wBACb,SAAS,EAAE,OAAO,CAAC,EAAE;wBACrB,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;wBACpC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;wBACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ;qBAC3B,CAAC,CAAC;gBACL,CAAC;gBAED,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,OAAO,IAAI,CAAC,SAAS,CAAC;4BACpB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,2CAA2C;yBACnD,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAClD,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,SAAS,EAAE,EAAE,CAAC,CAAC;oBACtF,CAAC;oBACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBACjC,OAAO,IAAI,CAAC,SAAS,CAAC;4BACpB,OAAO,EAAE,IAAI;4BACb,OAAO,EAAE,mBAAmB,OAAO,CAAC,MAAM,EAAE;4BAC5C,QAAQ,EAAE,OAAO,CAAC,QAAQ;yBAC3B,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,CAAC;wBACH,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBAChC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;wBAC3B,UAAU,CAAC,GAAG,EAAE;4BACd,IAAI,CAAC;gCACH,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oCACjC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gCAClC,CAAC;4BACH,CAAC;4BAAC,MAAM,CAAC;gCACP,KAAK,CAAC,CAAC;4BACT,CAAC;wBACH,CAAC,EAAE,IAAI,CAAC,CAAC;wBACT,OAAO,IAAI,CAAC,SAAS,CAAC;4BACpB,OAAO,EAAE,IAAI;4BACb,OAAO,EAAE,oBAAoB;4BAC7B,SAAS,EAAE,OAAO,CAAC,EAAE;yBACtB,CAAC,CAAC;oBACL,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,IAAI,CAAC,SAAS,CAAC;4BACpB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;yBAC3F,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACnE,SAAS,EAAE,CAAC,CAAC,EAAE;wBACf,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;wBAC/B,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;wBAC9C,QAAQ,EAAE,CAAC,CAAC,QAAQ;qBACrB,CAAC,CAAC,CAAC;oBACJ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC7E,CAAC;gBAED;oBACE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,SAAS,EAAE,EAAE,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1,6 +1,3 @@
1
- /**
2
- * Shell tool constants
3
- */
4
1
  export declare const SHELL_DESCRIPTION = "Execute shell commands for tasks that specialized tools cannot accomplish.\nThis tool runs bash commands with safety checks and optional allowlisting.\n\nWhen to use this tool:\n- Running build commands (npm run build, make, cargo build)\n- Installing packages (npm install, pip install)\n- Running scripts (./scripts/deploy.sh)\n- Git operations not covered by specialized tools (git stash, git cherry-pick)\n- System inspection (ls, find, df, du)\n- Development servers (npm run dev, python -m http.server)\n\nWhen NOT to use this tool:\n- Reading/writing files \u2192 use fs tool\n- Searching code \u2192 use fs tool with grep action\n- Background processes that need monitoring \u2192 use delegate tool with background action\n- Any task where a specialized tool exists\n\nSafety features:\n- Dangerous command patterns are blocked (rm -rf /, sudo, etc.)\n- Interactive commands are rejected (vim, nano, htop)\n- Commands can be allowlisted for repeated use without re-confirmation\n- Timeout protection (default 30s, max 5min)\n\nCommand allowlisting:\nUse allow: true on first execution to add a command pattern to the allowlist.\nSubsequent calls with the same command won't require the \"allow\" flag.\nThis is useful for commands you'll run repeatedly (npm test, make build, etc.)\n\nParameters explained:\n- command: Required. The bash command to execute.\n- cwd: Working directory (default: project root).\n- timeout: Timeout in milliseconds (default: 30000, max: 300000).\n- allow: If true, add this command pattern to the allowlist.\n- stream: If true, stream output in chunks (for long-running commands).\n\nYou should:\n1. Prefer specialized tools when available\n2. Use allow: true for commands you'll run repeatedly\n3. Set appropriate timeout for long-running commands\n4. Use stream: true for commands with continuous output\n5. Check exitCode to determine success (0 = success)\n6. Review stderr even on success for warnings";
5
2
  export declare const DEFAULT_TIMEOUT = 30000;
6
3
  export declare const MAX_TIMEOUT = 300000;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/tools/shell/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,iBAAiB,65DAyCgB,CAAC;AAE/C,eAAO,MAAM,eAAe,QAAQ,CAAC;AACrC,eAAO,MAAM,WAAW,SAAS,CAAC;AAClC,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AACxC,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC,eAAO,MAAM,oBAAoB,yIAIvB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/tools/shell/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,65DAyCgB,CAAC;AAE/C,eAAO,MAAM,eAAe,QAAQ,CAAC;AACrC,eAAO,MAAM,WAAW,SAAS,CAAC;AAClC,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AACxC,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC,eAAO,MAAM,oBAAoB,yIAiBvB,CAAC"}
@@ -1,6 +1,3 @@
1
- /**
2
- * Shell tool constants
3
- */
4
1
  export const SHELL_DESCRIPTION = `Execute shell commands for tasks that specialized tools cannot accomplish.
5
2
  This tool runs bash commands with safety checks and optional allowlisting.
6
3
 
@@ -48,8 +45,21 @@ export const MAX_TIMEOUT = 300000;
48
45
  export const MAX_COMMAND_LENGTH = 10000;
49
46
  export const MAX_CWD_LENGTH = 1000;
50
47
  export const INTERACTIVE_COMMANDS = [
51
- 'vi', 'vim', 'nvim', 'nano', 'emacs', 'pico',
52
- 'htop', 'top', 'less', 'more', 'man',
53
- 'screen', 'tmux', 'ssh', 'telnet', 'ftp',
48
+ 'vi',
49
+ 'vim',
50
+ 'nvim',
51
+ 'nano',
52
+ 'emacs',
53
+ 'pico',
54
+ 'htop',
55
+ 'top',
56
+ 'less',
57
+ 'more',
58
+ 'man',
59
+ 'screen',
60
+ 'tmux',
61
+ 'ssh',
62
+ 'telnet',
63
+ 'ftp',
54
64
  ];
55
65
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/tools/shell/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CAyCa,CAAC;AAE/C,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AACrC,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC;AAClC,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACxC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AAEnC,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAC5C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;IACpC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK;CAChC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/tools/shell/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CAyCa,CAAC;AAE/C,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AACrC,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC;AAClC,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACxC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AAEnC,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI;IACJ,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,QAAQ;IACR,MAAM;IACN,KAAK;IACL,QAAQ;IACR,KAAK;CACG,CAAC"}
@@ -3,5 +3,5 @@ export { createBackgroundTool, clearBackgroundSessions, getBackgroundSessions }
3
3
  export type { BackgroundSession } from './background.js';
4
4
  export { addToAllowlist, clearAllowlist, getAllowlist } from './utils.js';
5
5
  export type { ShellInput, ShellResult } from './types.js';
6
- export { SHELL_DESCRIPTION, DEFAULT_TIMEOUT, MAX_TIMEOUT, INTERACTIVE_COMMANDS, } from './constants.js';
6
+ export { SHELL_DESCRIPTION, DEFAULT_TIMEOUT, MAX_TIMEOUT, INTERACTIVE_COMMANDS } from './constants.js';
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/shell/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACpG,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,oBAAoB,GACrB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/shell/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACpG,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export { createShellTool, shellTool, executeShellCommand } from './tools.js';
2
2
  export { createBackgroundTool, clearBackgroundSessions, getBackgroundSessions } from './background.js';
3
3
  export { addToAllowlist, clearAllowlist, getAllowlist } from './utils.js';
4
- export { SHELL_DESCRIPTION, DEFAULT_TIMEOUT, MAX_TIMEOUT, INTERACTIVE_COMMANDS, } from './constants.js';
4
+ export { SHELL_DESCRIPTION, DEFAULT_TIMEOUT, MAX_TIMEOUT, INTERACTIVE_COMMANDS } from './constants.js';
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/shell/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAEpG,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvE,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,oBAAoB,GACrB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/shell/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAEpG,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
@@ -1,21 +1,21 @@
1
1
  export declare function createShellTool(workspaceRoot: string): import("ai").Tool<{
2
2
  command: string;
3
- timeout?: number | undefined;
4
3
  cwd?: string | undefined;
4
+ timeout?: number | undefined;
5
5
  allow?: boolean | undefined;
6
6
  stream?: boolean | undefined;
7
7
  }, string>;
8
8
  export declare const shellTool: import("ai").Tool<{
9
9
  command: string;
10
- timeout?: number | undefined;
11
10
  cwd?: string | undefined;
11
+ timeout?: number | undefined;
12
12
  allow?: boolean | undefined;
13
13
  stream?: boolean | undefined;
14
14
  }, string>;
15
15
  export declare const executeShellCommand: import("ai").ToolExecuteFunction<{
16
16
  command: string;
17
- timeout?: number | undefined;
18
17
  cwd?: string | undefined;
18
+ timeout?: number | undefined;
19
19
  allow?: boolean | undefined;
20
20
  stream?: boolean | undefined;
21
21
  }, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/tools/shell/tools.ts"],"names":[],"mappings":"AAUA,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM;;;;;;WA8EpD;AAED,eAAO,MAAM,SAAS;;;;;;UAAiC,CAAC;AAGxD,eAAO,MAAM,mBAAmB;;;;;;UAAqB,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/tools/shell/tools.ts"],"names":[],"mappings":"AAUA,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM;;;;;;WA6EpD;AAED,eAAO,MAAM,SAAS;;;;;;UAAiC,CAAC;AAExD,eAAO,MAAM,mBAAmB;;;;;;UAAqB,CAAC"}
@@ -23,7 +23,6 @@ export function createShellTool(workspaceRoot) {
23
23
  if (allow && !isCommandAllowed(command)) {
24
24
  addToAllowlist(command);
25
25
  }
26
- // S-13: Validate cwd is within workspace root
27
26
  let effectiveCwd;
28
27
  try {
29
28
  effectiveCwd = cwd ? validateCwd(cwd, workspaceRoot) : workspaceRoot;
@@ -72,6 +71,5 @@ export function createShellTool(workspaceRoot) {
72
71
  });
73
72
  }
74
73
  export const shellTool = createShellTool(process.cwd());
75
- // Direct export for testing (bypasses optional `execute` type from AI SDK)
76
74
  export const executeShellCommand = shellTool.execute;
77
75
  //# sourceMappingURL=tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/tools/shell/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/tools/shell/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEjF,MAAM,UAAU,eAAe,CAAC,aAAqB;IACnD,OAAO,IAAI,CAAC;QACV,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE,gBAAgB;QAC7B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACvB,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,eAAe,EAAE,KAAK,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;YAEzF,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,SAAS,CACjB,8EAA8E,EAC9E,aAAa,CAAC,eAAe,EAC7B,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,8BAA8B,EAAE,CAC7E,CAAC;YACJ,CAAC;YAED,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,OAAO,KAAK,CAAC,wBAAwB,SAAS,iBAAiB,EAAE;oBAC/D,UAAU,EAAE,2EAA2E;iBACxF,CAAC,CAAC;YACL,CAAC;YAED,IAAI,KAAK,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;YAED,IAAI,YAAoB,CAAC;YACzB,IAAI,CAAC;gBACH,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACvE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC;YACjF,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE;gBAC3C,GAAG,EAAE,YAAY;gBACjB,OAAO;gBACP,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI;aACnD,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;oBACzB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;oBAC9B,GAAG,EAAE,YAAY;iBAClB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,OAAO,KAAK,CAAC,mBAAmB,EAAE;oBAChC,OAAO;oBACP,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;oBAC1C,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;oBAC1C,IAAI,EAAE,oFAAoF;iBAC3F,CAAC,CAAC;YACL,CAAC;YAED,MAAM,MAAM,GAAG;gBACb,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;aAC1C,CAAC;YAEF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,OAAO,CAAC;oBACb,GAAG,MAAM;oBACT,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,yEAAyE;iBAChF,CAAC,CAAC;YACL,CAAC;YAED,OAAO,OAAO,CAAC;gBACb,GAAG,MAAM;gBACT,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAExD,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC,OAAQ,CAAC"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @fileoverview Shell tool types and schemas.
3
+ * Defines the input validation (Zod) and output interfaces for shell command execution.
4
+ */
1
5
  import { z } from 'zod';
2
6
  export declare const shellInputSchema: z.ZodObject<{
3
7
  command: z.ZodString;
@@ -5,19 +9,7 @@ export declare const shellInputSchema: z.ZodObject<{
5
9
  timeout: z.ZodOptional<z.ZodNumber>;
6
10
  allow: z.ZodOptional<z.ZodBoolean>;
7
11
  stream: z.ZodOptional<z.ZodBoolean>;
8
- }, "strip", z.ZodTypeAny, {
9
- command: string;
10
- timeout?: number | undefined;
11
- cwd?: string | undefined;
12
- allow?: boolean | undefined;
13
- stream?: boolean | undefined;
14
- }, {
15
- command: string;
16
- timeout?: number | undefined;
17
- cwd?: string | undefined;
18
- allow?: boolean | undefined;
19
- stream?: boolean | undefined;
20
- }>;
12
+ }, z.core.$strip>;
21
13
  export type ShellInput = z.infer<typeof shellInputSchema>;
22
14
  export interface ShellResult {
23
15
  stdout: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/shell/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;EAM3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/shell/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,gBAAgB;;;;;;iBAW3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -1,9 +1,18 @@
1
+ /**
2
+ * @fileoverview Shell tool types and schemas.
3
+ * Defines the input validation (Zod) and output interfaces for shell command execution.
4
+ */
1
5
  import { z } from 'zod';
2
6
  import { MAX_COMMAND_LENGTH, MAX_CWD_LENGTH, MAX_TIMEOUT } from './constants.js';
3
7
  export const shellInputSchema = z.object({
4
8
  command: z.string().max(MAX_COMMAND_LENGTH).describe('Bash command to execute'),
5
9
  cwd: z.string().max(MAX_CWD_LENGTH).optional().describe('Working directory'),
6
- timeout: z.number().min(100).max(MAX_TIMEOUT).optional().describe('Timeout in ms (default: 30000)'),
10
+ timeout: z
11
+ .number()
12
+ .min(100)
13
+ .max(MAX_TIMEOUT)
14
+ .optional()
15
+ .describe('Timeout in ms (default: 30000)'),
7
16
  allow: z.boolean().optional().describe('Add to allowlist for future calls'),
8
17
  stream: z.boolean().optional().describe('Stream output (for long commands)'),
9
18
  });
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tools/shell/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE9E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IAC/E,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC5E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACnG,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC3E,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CAC7E,CAAC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tools/shell/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE9E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IAC/E,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC5E,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,GAAG,CAAC,WAAW,CAAC;SAChB,QAAQ,EAAE;SACV,QAAQ,CAAC,gCAAgC,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC3E,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CAC7E,CAAC,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @fileoverview Sub-agent status tracking tool.
3
+ * Provides functionality to poll, filter, and summarize the status of spawned agents.
4
+ */
5
+ import { z } from 'zod';
6
+ import type { AgentRegistry, AgentStatus } from './registry.js';
7
+ export interface CheckAgentOptions {
8
+ registry: AgentRegistry;
9
+ }
10
+ export interface CheckAgentResult {
11
+ agents: CheckAgentEntry[];
12
+ summary: string;
13
+ }
14
+ export interface CheckAgentEntry {
15
+ agentId: string;
16
+ task: string;
17
+ status: AgentStatus;
18
+ workspacePath: string;
19
+ summary?: string;
20
+ error?: string;
21
+ errorType?: string;
22
+ duration?: string;
23
+ }
24
+ export declare const checkAgentParametersSchema: z.ZodObject<{
25
+ agentId: z.ZodOptional<z.ZodString>;
26
+ status: z.ZodOptional<z.ZodEnum<{
27
+ failed: "failed";
28
+ running: "running";
29
+ completed: "completed";
30
+ }>>;
31
+ }, z.core.$strip>;
32
+ export type CheckAgentInput = z.infer<typeof checkAgentParametersSchema>;
33
+ export declare function createCheckAgentTool(options: CheckAgentOptions): {
34
+ description: string;
35
+ inputSchema: z.ZodObject<{
36
+ agentId: z.ZodOptional<z.ZodString>;
37
+ status: z.ZodOptional<z.ZodEnum<{
38
+ failed: "failed";
39
+ running: "running";
40
+ completed: "completed";
41
+ }>>;
42
+ }, z.core.$strip>;
43
+ execute: (input: CheckAgentInput) => CheckAgentResult;
44
+ };
45
+ //# sourceMappingURL=check-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-agent.d.ts","sourceRoot":"","sources":["../../../src/tools/spawn-agent/check-agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAYD,eAAO,MAAM,0BAA0B;;;;;;;iBAGrC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAmEzE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB;;;;;;;;;;qBAI1C,eAAe;EAEnC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * @fileoverview Sub-agent status tracking tool.
3
+ * Provides functionality to poll, filter, and summarize the status of spawned agents.
4
+ */
5
+ import { z } from 'zod';
6
+ const DESCRIPTION = `Check the status of spawned sub-agents.
7
+
8
+ Use this tool to:
9
+ - Poll async sub-agents for completion
10
+ - See what all sub-agents produced
11
+ - Check for errors or failures
12
+
13
+ Without parameters, returns all agents. Use agentId to check a specific one,
14
+ or status to filter (e.g., only 'running' agents).`;
15
+ export const checkAgentParametersSchema = z.object({
16
+ agentId: z.string().optional().describe('Check a specific agent by ID'),
17
+ status: z.enum(['running', 'completed', 'failed']).optional().describe('Filter agents by status'),
18
+ });
19
+ function calcDuration(startedAt, completedAt) {
20
+ const start = new Date(startedAt).getTime();
21
+ const end = completedAt ? new Date(completedAt).getTime() : Date.now();
22
+ const seconds = Math.round((end - start) / 1000);
23
+ if (seconds < 60)
24
+ return `${seconds}s`;
25
+ const minutes = Math.floor(seconds / 60);
26
+ const remainingSeconds = seconds % 60;
27
+ return `${minutes}m ${remainingSeconds}s`;
28
+ }
29
+ function executeCheckAgent(input, options) {
30
+ const { registry } = options;
31
+ const { agentId, status } = input;
32
+ if (agentId) {
33
+ const entry = registry.get(agentId);
34
+ if (!entry) {
35
+ return {
36
+ agents: [],
37
+ summary: `No agent found with ID "${agentId}".`,
38
+ };
39
+ }
40
+ const agent = {
41
+ agentId: entry.agentId,
42
+ task: entry.task,
43
+ status: entry.status,
44
+ workspacePath: entry.workspacePath,
45
+ summary: entry.summary,
46
+ error: entry.error,
47
+ errorType: entry.errorType,
48
+ duration: calcDuration(entry.startedAt, entry.completedAt),
49
+ };
50
+ return {
51
+ agents: [agent],
52
+ summary: `Agent "${agentId}": ${entry.status}`,
53
+ };
54
+ }
55
+ const entries = registry.getAll(status);
56
+ const agents = entries.map((entry) => ({
57
+ agentId: entry.agentId,
58
+ task: entry.task,
59
+ status: entry.status,
60
+ workspacePath: entry.workspacePath,
61
+ summary: entry.summary,
62
+ error: entry.error,
63
+ errorType: entry.errorType,
64
+ duration: calcDuration(entry.startedAt, entry.completedAt),
65
+ }));
66
+ const counts = registry.getCounts();
67
+ const parts = [];
68
+ if (counts.running > 0)
69
+ parts.push(`${counts.running} running`);
70
+ if (counts.completed > 0)
71
+ parts.push(`${counts.completed} completed`);
72
+ if (counts.failed > 0)
73
+ parts.push(`${counts.failed} failed`);
74
+ const summary = parts.length > 0 ? `${agents.length} agent(s): ${parts.join(', ')}` : 'No agents spawned yet.';
75
+ return { agents, summary };
76
+ }
77
+ export function createCheckAgentTool(options) {
78
+ return {
79
+ description: DESCRIPTION,
80
+ inputSchema: checkAgentParametersSchema,
81
+ execute: (input) => executeCheckAgent(input, options),
82
+ };
83
+ }
84
+ //# sourceMappingURL=check-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-agent.js","sourceRoot":"","sources":["../../../src/tools/spawn-agent/check-agent.ts"],"names":[],"mappings":"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"}