@agntk/core 0.3.5 → 1.1.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 (480) hide show
  1. package/README.md +39 -38
  2. package/dist/advanced/index.d.ts +13 -22
  3. package/dist/advanced/index.d.ts.map +1 -1
  4. package/dist/advanced/index.js +10 -55
  5. package/dist/advanced/index.js.map +1 -1
  6. package/dist/agent-v2.d.ts +48 -0
  7. package/dist/agent-v2.d.ts.map +1 -0
  8. package/dist/agent-v2.js +365 -0
  9. package/dist/agent-v2.js.map +1 -0
  10. package/dist/agent.d.ts +0 -40
  11. package/dist/agent.d.ts.map +1 -1
  12. package/dist/agent.js +103 -99
  13. package/dist/agent.js.map +1 -1
  14. package/dist/config/defaults.d.ts +1 -5
  15. package/dist/config/defaults.d.ts.map +1 -1
  16. package/dist/config/defaults.js +1 -11
  17. package/dist/config/defaults.js.map +1 -1
  18. package/dist/config/index.d.ts +5 -1
  19. package/dist/config/index.d.ts.map +1 -1
  20. package/dist/config/index.js +7 -7
  21. package/dist/config/index.js.map +1 -1
  22. package/dist/config/loader.d.ts +0 -40
  23. package/dist/config/loader.d.ts.map +1 -1
  24. package/dist/config/loader.js +3 -80
  25. package/dist/config/loader.js.map +1 -1
  26. package/dist/config/schema.d.ts +117 -788
  27. package/dist/config/schema.d.ts.map +1 -1
  28. package/dist/config/schema.js +52 -63
  29. package/dist/config/schema.js.map +1 -1
  30. package/dist/constants.d.ts +0 -11
  31. package/dist/constants.d.ts.map +1 -1
  32. package/dist/constants.js +0 -17
  33. package/dist/constants.js.map +1 -1
  34. package/dist/evals/assertions.d.ts +0 -35
  35. package/dist/evals/assertions.d.ts.map +1 -1
  36. package/dist/evals/assertions.js +0 -51
  37. package/dist/evals/assertions.js.map +1 -1
  38. package/dist/evals/index.d.ts +0 -5
  39. package/dist/evals/index.d.ts.map +1 -1
  40. package/dist/evals/index.js +0 -5
  41. package/dist/evals/index.js.map +1 -1
  42. package/dist/evals/runner.d.ts +0 -27
  43. package/dist/evals/runner.d.ts.map +1 -1
  44. package/dist/evals/runner.js +3 -45
  45. package/dist/evals/runner.js.map +1 -1
  46. package/dist/evals/types.d.ts +0 -14
  47. package/dist/evals/types.d.ts.map +1 -1
  48. package/dist/evals/types.js +0 -3
  49. package/dist/evals/types.js.map +1 -1
  50. package/dist/guardrails/built-ins.d.ts +0 -28
  51. package/dist/guardrails/built-ins.d.ts.map +1 -1
  52. package/dist/guardrails/built-ins.js +21 -47
  53. package/dist/guardrails/built-ins.js.map +1 -1
  54. package/dist/guardrails/index.d.ts +1 -4
  55. package/dist/guardrails/index.d.ts.map +1 -1
  56. package/dist/guardrails/index.js +1 -4
  57. package/dist/guardrails/index.js.map +1 -1
  58. package/dist/guardrails/runner.d.ts +0 -30
  59. package/dist/guardrails/runner.d.ts.map +1 -1
  60. package/dist/guardrails/runner.js +1 -46
  61. package/dist/guardrails/runner.js.map +1 -1
  62. package/dist/guardrails/types.d.ts +0 -35
  63. package/dist/guardrails/types.d.ts.map +1 -1
  64. package/dist/guardrails/types.js +4 -7
  65. package/dist/guardrails/types.js.map +1 -1
  66. package/dist/index.d.ts +3 -7
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +1 -27
  69. package/dist/index.js.map +1 -1
  70. package/dist/memory/engine.d.ts +130 -0
  71. package/dist/memory/engine.d.ts.map +1 -0
  72. package/dist/memory/engine.js +227 -0
  73. package/dist/memory/engine.js.map +1 -0
  74. package/dist/memory/loader.d.ts +0 -17
  75. package/dist/memory/loader.d.ts.map +1 -1
  76. package/dist/memory/loader.js +5 -27
  77. package/dist/memory/loader.js.map +1 -1
  78. package/dist/memory/store.d.ts +8 -16
  79. package/dist/memory/store.d.ts.map +1 -1
  80. package/dist/memory/store.js +101 -32
  81. package/dist/memory/store.js.map +1 -1
  82. package/dist/memory/types.d.ts +10 -30
  83. package/dist/memory/types.d.ts.map +1 -1
  84. package/dist/memory/types.js +0 -6
  85. package/dist/memory/types.js.map +1 -1
  86. package/dist/memory/vectra-store.d.ts +31 -0
  87. package/dist/memory/vectra-store.d.ts.map +1 -0
  88. package/dist/memory/vectra-store.js +122 -0
  89. package/dist/memory/vectra-store.js.map +1 -0
  90. package/dist/models.d.ts +9 -32
  91. package/dist/models.d.ts.map +1 -1
  92. package/dist/models.js +25 -68
  93. package/dist/models.js.map +1 -1
  94. package/dist/observability/index.d.ts +0 -3
  95. package/dist/observability/index.d.ts.map +1 -1
  96. package/dist/observability/index.js +0 -3
  97. package/dist/observability/index.js.map +1 -1
  98. package/dist/observability/langfuse.d.ts +0 -38
  99. package/dist/observability/langfuse.d.ts.map +1 -1
  100. package/dist/observability/langfuse.js +6 -55
  101. package/dist/observability/langfuse.js.map +1 -1
  102. package/dist/observability/types.d.ts +0 -21
  103. package/dist/observability/types.d.ts.map +1 -1
  104. package/dist/observability/types.js +0 -3
  105. package/dist/observability/types.js.map +1 -1
  106. package/dist/pool/index.d.ts +7 -0
  107. package/dist/pool/index.d.ts.map +1 -0
  108. package/dist/pool/index.js +6 -0
  109. package/dist/pool/index.js.map +1 -0
  110. package/dist/pool/specialist-pool.d.ts +59 -0
  111. package/dist/pool/specialist-pool.d.ts.map +1 -0
  112. package/dist/pool/specialist-pool.js +224 -0
  113. package/dist/pool/specialist-pool.js.map +1 -0
  114. package/dist/pool/tools.d.ts +63 -0
  115. package/dist/pool/tools.d.ts.map +1 -0
  116. package/dist/pool/tools.js +83 -0
  117. package/dist/pool/tools.js.map +1 -0
  118. package/dist/pool/types.d.ts +79 -0
  119. package/dist/pool/types.d.ts.map +1 -0
  120. package/dist/pool/types.js +5 -0
  121. package/dist/pool/types.js.map +1 -0
  122. package/dist/presets/index.d.ts +5 -0
  123. package/dist/presets/index.d.ts.map +1 -0
  124. package/dist/presets/index.js +5 -0
  125. package/dist/presets/index.js.map +1 -0
  126. package/dist/presets/role-registry.d.ts +41 -0
  127. package/dist/presets/role-registry.d.ts.map +1 -0
  128. package/dist/presets/role-registry.js +213 -0
  129. package/dist/presets/role-registry.js.map +1 -0
  130. package/dist/presets/roles.d.ts +105 -0
  131. package/dist/presets/roles.d.ts.map +1 -0
  132. package/dist/presets/roles.js +207 -0
  133. package/dist/presets/roles.js.map +1 -0
  134. package/dist/presets/tool-preset-registry.d.ts +0 -21
  135. package/dist/presets/tool-preset-registry.d.ts.map +1 -1
  136. package/dist/presets/tool-preset-registry.js +15 -34
  137. package/dist/presets/tool-preset-registry.js.map +1 -1
  138. package/dist/presets/tools.d.ts +44 -42
  139. package/dist/presets/tools.d.ts.map +1 -1
  140. package/dist/presets/tools.js +46 -40
  141. package/dist/presets/tools.js.map +1 -1
  142. package/dist/prompts/context.d.ts +0 -4
  143. package/dist/prompts/context.d.ts.map +1 -1
  144. package/dist/prompts/context.js +21 -33
  145. package/dist/prompts/context.js.map +1 -1
  146. package/dist/prompts/template.d.ts +0 -11
  147. package/dist/prompts/template.d.ts.map +1 -1
  148. package/dist/prompts/template.js +4 -14
  149. package/dist/prompts/template.js.map +1 -1
  150. package/dist/prompts/templates.d.ts +11 -0
  151. package/dist/prompts/templates.d.ts.map +1 -0
  152. package/dist/prompts/templates.js +115 -0
  153. package/dist/prompts/templates.js.map +1 -0
  154. package/dist/provider-resolver.d.ts +0 -29
  155. package/dist/provider-resolver.d.ts.map +1 -1
  156. package/dist/provider-resolver.js +17 -61
  157. package/dist/provider-resolver.js.map +1 -1
  158. package/dist/reflection.d.ts +0 -34
  159. package/dist/reflection.d.ts.map +1 -1
  160. package/dist/reflection.js +0 -40
  161. package/dist/reflection.js.map +1 -1
  162. package/dist/skills/index.d.ts +0 -3
  163. package/dist/skills/index.d.ts.map +1 -1
  164. package/dist/skills/index.js +0 -3
  165. package/dist/skills/index.js.map +1 -1
  166. package/dist/skills/loader.d.ts +0 -69
  167. package/dist/skills/loader.d.ts.map +1 -1
  168. package/dist/skills/loader.js +38 -130
  169. package/dist/skills/loader.js.map +1 -1
  170. package/dist/skills/types.d.ts +0 -36
  171. package/dist/skills/types.d.ts.map +1 -1
  172. package/dist/skills/types.js +0 -4
  173. package/dist/skills/types.js.map +1 -1
  174. package/dist/streaming/data-parts.d.ts +163 -0
  175. package/dist/streaming/data-parts.d.ts.map +1 -0
  176. package/dist/streaming/data-parts.js +14 -0
  177. package/dist/streaming/data-parts.js.map +1 -0
  178. package/dist/streaming/index.d.ts +8 -0
  179. package/dist/streaming/index.d.ts.map +1 -0
  180. package/dist/streaming/index.js +10 -0
  181. package/dist/streaming/index.js.map +1 -0
  182. package/dist/streaming/transient.d.ts +136 -0
  183. package/dist/streaming/transient.d.ts.map +1 -0
  184. package/dist/streaming/transient.js +201 -0
  185. package/dist/streaming/transient.js.map +1 -0
  186. package/dist/system-detect.d.ts +0 -57
  187. package/dist/system-detect.d.ts.map +1 -1
  188. package/dist/system-detect.js +9 -114
  189. package/dist/system-detect.js.map +1 -1
  190. package/dist/tools/approval.d.ts +0 -47
  191. package/dist/tools/approval.d.ts.map +1 -1
  192. package/dist/tools/approval.js +0 -46
  193. package/dist/tools/approval.js.map +1 -1
  194. package/dist/tools/ast-grep/cli.d.ts.map +1 -1
  195. package/dist/tools/ast-grep/cli.js +10 -4
  196. package/dist/tools/ast-grep/cli.js.map +1 -1
  197. package/dist/tools/ast-grep/constants.d.ts.map +1 -1
  198. package/dist/tools/ast-grep/constants.js +7 -14
  199. package/dist/tools/ast-grep/constants.js.map +1 -1
  200. package/dist/tools/ast-grep/downloader.d.ts.map +1 -1
  201. package/dist/tools/ast-grep/downloader.js +1 -4
  202. package/dist/tools/ast-grep/downloader.js.map +1 -1
  203. package/dist/tools/ast-grep/index.d.ts +2 -2
  204. package/dist/tools/ast-grep/index.d.ts.map +1 -1
  205. package/dist/tools/ast-grep/index.js +1 -1
  206. package/dist/tools/ast-grep/index.js.map +1 -1
  207. package/dist/tools/ast-grep/tools.d.ts +4 -4
  208. package/dist/tools/ast-grep/tools.d.ts.map +1 -1
  209. package/dist/tools/ast-grep/tools.js +2 -8
  210. package/dist/tools/ast-grep/tools.js.map +1 -1
  211. package/dist/tools/browser/index.d.ts +4 -4
  212. package/dist/tools/browser/index.d.ts.map +1 -1
  213. package/dist/tools/browser/index.js +2 -3
  214. package/dist/tools/browser/index.js.map +1 -1
  215. package/dist/tools/browser/stream.d.ts +0 -32
  216. package/dist/tools/browser/stream.d.ts.map +1 -1
  217. package/dist/tools/browser/stream.js +0 -53
  218. package/dist/tools/browser/stream.js.map +1 -1
  219. package/dist/tools/browser/tool.d.ts +10 -15
  220. package/dist/tools/browser/tool.d.ts.map +1 -1
  221. package/dist/tools/browser/tool.js +2 -26
  222. package/dist/tools/browser/tool.js.map +1 -1
  223. package/dist/tools/browser/types.d.ts +31 -156
  224. package/dist/tools/browser/types.d.ts.map +1 -1
  225. package/dist/tools/browser/types.js +22 -17
  226. package/dist/tools/browser/types.js.map +1 -1
  227. package/dist/tools/deep-reasoning/constants.d.ts +0 -6
  228. package/dist/tools/deep-reasoning/constants.d.ts.map +1 -1
  229. package/dist/tools/deep-reasoning/constants.js +0 -6
  230. package/dist/tools/deep-reasoning/constants.js.map +1 -1
  231. package/dist/tools/deep-reasoning/engine.d.ts.map +1 -1
  232. package/dist/tools/deep-reasoning/engine.js +0 -1
  233. package/dist/tools/deep-reasoning/engine.js.map +1 -1
  234. package/dist/tools/deep-reasoning/index.d.ts +4 -0
  235. package/dist/tools/deep-reasoning/index.d.ts.map +1 -1
  236. package/dist/tools/deep-reasoning/index.js +4 -3
  237. package/dist/tools/deep-reasoning/index.js.map +1 -1
  238. package/dist/tools/deep-reasoning/tools.d.ts.map +1 -1
  239. package/dist/tools/deep-reasoning/tools.js +8 -1
  240. package/dist/tools/deep-reasoning/tools.js.map +1 -1
  241. package/dist/tools/deep-reasoning/types.d.ts +5 -30
  242. package/dist/tools/deep-reasoning/types.d.ts.map +1 -1
  243. package/dist/tools/deep-reasoning/types.js +10 -1
  244. package/dist/tools/deep-reasoning/types.js.map +1 -1
  245. package/dist/tools/factory.d.ts +109 -0
  246. package/dist/tools/factory.d.ts.map +1 -0
  247. package/dist/tools/factory.js +166 -0
  248. package/dist/tools/factory.js.map +1 -0
  249. package/dist/tools/file/index.d.ts +3 -5
  250. package/dist/tools/file/index.d.ts.map +1 -1
  251. package/dist/tools/file/index.js +2 -4
  252. package/dist/tools/file/index.js.map +1 -1
  253. package/dist/tools/file/tools.d.ts +8 -11
  254. package/dist/tools/file/tools.d.ts.map +1 -1
  255. package/dist/tools/file/tools.js +45 -59
  256. package/dist/tools/file/tools.js.map +1 -1
  257. package/dist/tools/glob/cli.d.ts.map +1 -1
  258. package/dist/tools/glob/cli.js +8 -6
  259. package/dist/tools/glob/cli.js.map +1 -1
  260. package/dist/tools/glob/tools.d.ts.map +1 -1
  261. package/dist/tools/glob/tools.js +7 -10
  262. package/dist/tools/glob/tools.js.map +1 -1
  263. package/dist/tools/grep/cli.d.ts.map +1 -1
  264. package/dist/tools/grep/cli.js +0 -2
  265. package/dist/tools/grep/cli.js.map +1 -1
  266. package/dist/tools/grep/constants.d.ts.map +1 -1
  267. package/dist/tools/grep/constants.js +3 -5
  268. package/dist/tools/grep/constants.js.map +1 -1
  269. package/dist/tools/grep/downloader.d.ts.map +1 -1
  270. package/dist/tools/grep/downloader.js +3 -3
  271. package/dist/tools/grep/downloader.js.map +1 -1
  272. package/dist/tools/grep/tools.d.ts +2 -2
  273. package/dist/tools/grep/tools.d.ts.map +1 -1
  274. package/dist/tools/grep/tools.js +8 -14
  275. package/dist/tools/grep/tools.js.map +1 -1
  276. package/dist/tools/index.d.ts +10 -11
  277. package/dist/tools/index.d.ts.map +1 -1
  278. package/dist/tools/index.js +9 -22
  279. package/dist/tools/index.js.map +1 -1
  280. package/dist/tools/model-retry.d.ts +0 -40
  281. package/dist/tools/model-retry.d.ts.map +1 -1
  282. package/dist/tools/model-retry.js +1 -49
  283. package/dist/tools/model-retry.js.map +1 -1
  284. package/dist/tools/plan/constants.d.ts +0 -6
  285. package/dist/tools/plan/constants.d.ts.map +1 -1
  286. package/dist/tools/plan/constants.js +9 -6
  287. package/dist/tools/plan/constants.js.map +1 -1
  288. package/dist/tools/plan/index.d.ts +1 -1
  289. package/dist/tools/plan/index.d.ts.map +1 -1
  290. package/dist/tools/plan/index.js +1 -4
  291. package/dist/tools/plan/index.js.map +1 -1
  292. package/dist/tools/plan/tools.d.ts +2 -2
  293. package/dist/tools/plan/tools.d.ts.map +1 -1
  294. package/dist/tools/plan/tools.js +10 -11
  295. package/dist/tools/plan/tools.js.map +1 -1
  296. package/dist/tools/plan/types.d.ts +22 -32
  297. package/dist/tools/plan/types.d.ts.map +1 -1
  298. package/dist/tools/plan/types.js +11 -3
  299. package/dist/tools/plan/types.js.map +1 -1
  300. package/dist/tools/progress/index.d.ts +4 -23
  301. package/dist/tools/progress/index.d.ts.map +1 -1
  302. package/dist/tools/progress/index.js +19 -34
  303. package/dist/tools/progress/index.js.map +1 -1
  304. package/dist/tools/provider.d.ts +97 -0
  305. package/dist/tools/provider.d.ts.map +1 -0
  306. package/dist/tools/provider.js +178 -0
  307. package/dist/tools/provider.js.map +1 -0
  308. package/dist/tools/search-skills.d.ts +0 -23
  309. package/dist/tools/search-skills.d.ts.map +1 -1
  310. package/dist/tools/search-skills.js +3 -32
  311. package/dist/tools/search-skills.js.map +1 -1
  312. package/dist/tools/shell/background.d.ts +3 -19
  313. package/dist/tools/shell/background.d.ts.map +1 -1
  314. package/dist/tools/shell/background.js +45 -48
  315. package/dist/tools/shell/background.js.map +1 -1
  316. package/dist/tools/shell/constants.d.ts +0 -3
  317. package/dist/tools/shell/constants.d.ts.map +1 -1
  318. package/dist/tools/shell/constants.js +16 -6
  319. package/dist/tools/shell/constants.js.map +1 -1
  320. package/dist/tools/shell/index.d.ts +1 -1
  321. package/dist/tools/shell/index.d.ts.map +1 -1
  322. package/dist/tools/shell/index.js +1 -1
  323. package/dist/tools/shell/index.js.map +1 -1
  324. package/dist/tools/shell/tools.d.ts +3 -3
  325. package/dist/tools/shell/tools.d.ts.map +1 -1
  326. package/dist/tools/shell/tools.js +0 -2
  327. package/dist/tools/shell/tools.js.map +1 -1
  328. package/dist/tools/shell/types.d.ts +5 -13
  329. package/dist/tools/shell/types.d.ts.map +1 -1
  330. package/dist/tools/shell/types.js +10 -1
  331. package/dist/tools/shell/types.js.map +1 -1
  332. package/dist/tools/spawn-agent/check-agent.d.ts +45 -0
  333. package/dist/tools/spawn-agent/check-agent.d.ts.map +1 -0
  334. package/dist/tools/spawn-agent/check-agent.js +84 -0
  335. package/dist/tools/spawn-agent/check-agent.js.map +1 -0
  336. package/dist/tools/spawn-agent/index.d.ts +52 -53
  337. package/dist/tools/spawn-agent/index.d.ts.map +1 -1
  338. package/dist/tools/spawn-agent/index.js +199 -86
  339. package/dist/tools/spawn-agent/index.js.map +1 -1
  340. package/dist/tools/spawn-agent/registry.d.ts +36 -0
  341. package/dist/tools/spawn-agent/registry.d.ts.map +1 -0
  342. package/dist/tools/spawn-agent/registry.js +88 -0
  343. package/dist/tools/spawn-agent/registry.js.map +1 -0
  344. package/dist/tools/utils/errors.d.ts +2 -1
  345. package/dist/tools/utils/errors.d.ts.map +1 -1
  346. package/dist/tools/utils/errors.js +2 -1
  347. package/dist/tools/utils/errors.js.map +1 -1
  348. package/dist/tools/utils/shell.d.ts +0 -11
  349. package/dist/tools/utils/shell.d.ts.map +1 -1
  350. package/dist/tools/utils/shell.js +10 -78
  351. package/dist/tools/utils/shell.js.map +1 -1
  352. package/dist/tools/utils/tool-result.d.ts +0 -3
  353. package/dist/tools/utils/tool-result.d.ts.map +1 -1
  354. package/dist/tools/utils/tool-result.js +4 -4
  355. package/dist/tools/utils/tool-result.js.map +1 -1
  356. package/dist/tools/web-search/index.d.ts +4 -0
  357. package/dist/tools/web-search/index.d.ts.map +1 -0
  358. package/dist/tools/web-search/index.js +3 -0
  359. package/dist/tools/web-search/index.js.map +1 -0
  360. package/dist/tools/web-search/tools.d.ts +17 -0
  361. package/dist/tools/web-search/tools.d.ts.map +1 -0
  362. package/dist/tools/web-search/tools.js +81 -0
  363. package/dist/tools/web-search/tools.js.map +1 -0
  364. package/dist/tools/web-search/types.d.ts +16 -0
  365. package/dist/tools/web-search/types.d.ts.map +1 -0
  366. package/dist/tools/web-search/types.js +29 -0
  367. package/dist/tools/web-search/types.js.map +1 -0
  368. package/dist/tools/workspace-middleware.d.ts +14 -0
  369. package/dist/tools/workspace-middleware.d.ts.map +1 -0
  370. package/dist/tools/workspace-middleware.js +97 -0
  371. package/dist/tools/workspace-middleware.js.map +1 -0
  372. package/dist/types/agent-v2.d.ts +83 -0
  373. package/dist/types/agent-v2.d.ts.map +1 -0
  374. package/dist/types/agent-v2.js +8 -0
  375. package/dist/types/agent-v2.js.map +1 -0
  376. package/dist/types/agent.d.ts +3 -66
  377. package/dist/types/agent.d.ts.map +1 -1
  378. package/dist/types/agent.js +0 -6
  379. package/dist/types/agent.js.map +1 -1
  380. package/dist/types/index.d.ts +4 -3
  381. package/dist/types/index.d.ts.map +1 -1
  382. package/dist/types/index.js +3 -3
  383. package/dist/types/index.js.map +1 -1
  384. package/dist/types/lifecycle.d.ts +0 -141
  385. package/dist/types/lifecycle.d.ts.map +1 -1
  386. package/dist/types/lifecycle.js +4 -54
  387. package/dist/types/lifecycle.js.map +1 -1
  388. package/dist/types/streaming.d.ts +0 -4
  389. package/dist/types/streaming.d.ts.map +1 -1
  390. package/dist/types/streaming.js +0 -4
  391. package/dist/types/streaming.js.map +1 -1
  392. package/dist/usage-limits.d.ts +0 -37
  393. package/dist/usage-limits.d.ts.map +1 -1
  394. package/dist/usage-limits.js +1 -40
  395. package/dist/usage-limits.js.map +1 -1
  396. package/dist/utils/logger.d.ts +35 -0
  397. package/dist/utils/logger.d.ts.map +1 -0
  398. package/dist/utils/logger.js +149 -0
  399. package/dist/utils/logger.js.map +1 -0
  400. package/dist/workflow/builders/adapt.d.ts +20 -0
  401. package/dist/workflow/builders/adapt.d.ts.map +1 -0
  402. package/dist/workflow/builders/adapt.js +33 -0
  403. package/dist/workflow/builders/adapt.js.map +1 -0
  404. package/dist/workflow/builders/index.d.ts +8 -0
  405. package/dist/workflow/builders/index.d.ts.map +1 -0
  406. package/dist/workflow/builders/index.js +7 -0
  407. package/dist/workflow/builders/index.js.map +1 -0
  408. package/dist/workflow/builders/parallel.d.ts +25 -0
  409. package/dist/workflow/builders/parallel.d.ts.map +1 -0
  410. package/dist/workflow/builders/parallel.js +60 -0
  411. package/dist/workflow/builders/parallel.js.map +1 -0
  412. package/dist/workflow/builders/pipeline.d.ts +22 -0
  413. package/dist/workflow/builders/pipeline.d.ts.map +1 -0
  414. package/dist/workflow/builders/pipeline.js +48 -0
  415. package/dist/workflow/builders/pipeline.js.map +1 -0
  416. package/dist/workflow/builders/types.d.ts +54 -0
  417. package/dist/workflow/builders/types.d.ts.map +1 -0
  418. package/dist/workflow/builders/types.js +5 -0
  419. package/dist/workflow/builders/types.js.map +1 -0
  420. package/dist/workflow/durable-agent.d.ts +128 -0
  421. package/dist/workflow/durable-agent.d.ts.map +1 -0
  422. package/dist/workflow/durable-agent.js +323 -0
  423. package/dist/workflow/durable-agent.js.map +1 -0
  424. package/dist/workflow/durable-tool.d.ts +0 -84
  425. package/dist/workflow/durable-tool.d.ts.map +1 -1
  426. package/dist/workflow/durable-tool.js +2 -104
  427. package/dist/workflow/durable-tool.js.map +1 -1
  428. package/dist/workflow/hooks.d.ts +0 -215
  429. package/dist/workflow/hooks.d.ts.map +1 -1
  430. package/dist/workflow/hooks.js +15 -221
  431. package/dist/workflow/hooks.js.map +1 -1
  432. package/dist/workflow/index.d.ts +0 -9
  433. package/dist/workflow/index.d.ts.map +1 -1
  434. package/dist/workflow/index.js +0 -12
  435. package/dist/workflow/index.js.map +1 -1
  436. package/dist/workflow/schedulers.d.ts +231 -0
  437. package/dist/workflow/schedulers.d.ts.map +1 -0
  438. package/dist/workflow/schedulers.js +250 -0
  439. package/dist/workflow/schedulers.js.map +1 -0
  440. package/dist/workflow/team/create-team.d.ts +34 -0
  441. package/dist/workflow/team/create-team.d.ts.map +1 -0
  442. package/dist/workflow/team/create-team.js +242 -0
  443. package/dist/workflow/team/create-team.js.map +1 -0
  444. package/dist/workflow/team/index.d.ts +9 -0
  445. package/dist/workflow/team/index.d.ts.map +1 -0
  446. package/dist/workflow/team/index.js +8 -0
  447. package/dist/workflow/team/index.js.map +1 -0
  448. package/dist/workflow/team/machines.d.ts +152 -0
  449. package/dist/workflow/team/machines.d.ts.map +1 -0
  450. package/dist/workflow/team/machines.js +197 -0
  451. package/dist/workflow/team/machines.js.map +1 -0
  452. package/dist/workflow/team/task-board.d.ts +47 -0
  453. package/dist/workflow/team/task-board.d.ts.map +1 -0
  454. package/dist/workflow/team/task-board.js +111 -0
  455. package/dist/workflow/team/task-board.js.map +1 -0
  456. package/dist/workflow/team/tools.d.ts +66 -0
  457. package/dist/workflow/team/tools.d.ts.map +1 -0
  458. package/dist/workflow/team/tools.js +100 -0
  459. package/dist/workflow/team/tools.js.map +1 -0
  460. package/dist/workflow/team/types.d.ts +109 -0
  461. package/dist/workflow/team/types.d.ts.map +1 -0
  462. package/dist/workflow/team/types.js +5 -0
  463. package/dist/workflow/team/types.js.map +1 -0
  464. package/dist/workflow/templates.d.ts +71 -0
  465. package/dist/workflow/templates.d.ts.map +1 -0
  466. package/dist/workflow/templates.js +132 -0
  467. package/dist/workflow/templates.js.map +1 -0
  468. package/dist/workflow/utils.d.ts +0 -24
  469. package/dist/workflow/utils.d.ts.map +1 -1
  470. package/dist/workflow/utils.js +1 -32
  471. package/dist/workflow/utils.js.map +1 -1
  472. package/dist/wrappers/best-of-n.d.ts +0 -35
  473. package/dist/wrappers/best-of-n.d.ts.map +1 -1
  474. package/dist/wrappers/best-of-n.js +4 -53
  475. package/dist/wrappers/best-of-n.js.map +1 -1
  476. package/dist/wrappers/refine-loop.d.ts +36 -0
  477. package/dist/wrappers/refine-loop.d.ts.map +1 -0
  478. package/dist/wrappers/refine-loop.js +135 -0
  479. package/dist/wrappers/refine-loop.js.map +1 -0
  480. package/package.json +13 -7
@@ -1,160 +1,273 @@
1
- /**
2
- * @agntk/core - Spawn Agent Tool
3
- * Tool for spawning sub-agents with streaming output
4
- */
5
1
  import { generateId, generateText } from 'ai';
6
2
  import { z } from 'zod';
7
- import { getSubAgentConfig, subAgentRoles } from '../../presets/sub-agent-configs.js';
3
+ import { createLogger } from '@agntk/logger';
8
4
  import { resolveModel } from '../../models.js';
9
- const DESCRIPTION = `Spawn a sub-agent for a specific task.
5
+ const log = createLogger('@agntk/core:spawn-agent');
6
+ const DESCRIPTION = `Spawn a sub-agent to work on a specific task.
10
7
 
11
- Use this tool when you need to delegate complex work that requires:
12
- - Independent reasoning and decision-making
13
- - Specialized role focus (coder, researcher, analyst)
14
- - Autonomous task completion
8
+ Use this tool to delegate work that benefits from:
9
+ - Independent, focused execution
10
+ - Parallel processing (use async: true)
11
+ - Isolated workspace for intermediate results
15
12
 
16
- The sub-agent will work independently and stream its output. You will receive a summary of the results.
13
+ The sub-agent works autonomously and writes its output to a workspace directory.
14
+ You receive a summary and can read the full output from the workspace path.
17
15
 
18
- Roles:
19
- - coder: Code implementation specialist - best for writing, refactoring, debugging code
20
- - researcher: Research specialist - best for gathering and synthesizing information
21
- - analyst: Analysis specialist - best for data analysis and insights
22
- - generic: General-purpose (default)
16
+ Parameters:
17
+ - task (required): Clear description of what the sub-agent should accomplish
18
+ - context: Background information the sub-agent needs
19
+ - async: Set to true to run in background (use check_agent to poll)
20
+ - model: Override model tier ('fast', 'standard', 'reasoning')
23
21
 
24
- Note: Sub-agents cannot spawn their own sub-agents (prevents infinite recursion).`;
22
+ When async is false (default), this tool blocks until the sub-agent completes.
23
+ When async is true, it returns immediately with an agentId for polling.`;
25
24
  export const spawnAgentParametersSchema = z.object({
26
- task: z.string().describe('The task for the sub-agent to accomplish'),
27
- role: z.enum(subAgentRoles).default('generic').describe('The specialized role for the sub-agent'),
28
- context: z.string().optional().describe('Additional context to provide to the sub-agent'),
25
+ task: z.string().describe('Clear description of what the sub-agent should accomplish'),
26
+ context: z.string().optional().describe('Background information the sub-agent needs'),
27
+ async: z
28
+ .boolean()
29
+ .default(false)
30
+ .describe('If true, run in background and return immediately with agentId'),
31
+ model: z
32
+ .enum(['fast', 'standard', 'reasoning'])
33
+ .optional()
34
+ .describe('Model tier override (default: inherit parent)'),
29
35
  });
30
- /**
31
- * Execute function for spawn agent tool
32
- */
36
+ export function generateAgentId(task) {
37
+ const slug = task
38
+ .toLowerCase()
39
+ .replace(/[^a-z0-9\s-]/g, '')
40
+ .trim()
41
+ .split(/\s+/)
42
+ .filter(Boolean)
43
+ .slice(0, 3)
44
+ .join('-');
45
+ const suffix = generateId().slice(0, 4);
46
+ return `${slug || 'agent'}-${suffix}`;
47
+ }
33
48
  async function executeSpawnAgent(input, options) {
34
- const { maxSpawnDepth = 1, currentDepth = 0, createAgent, onStream, } = options;
35
- const { task, role, context } = input;
36
- // Prevent spawning if at max depth or no factory
49
+ const { maxSpawnDepth = 2, currentDepth = 0, createAgent, registry, workspacePath, onStream, onActivity, } = options;
50
+ const { task, context, model: modelTier } = input;
51
+ const isAsync = input.async;
37
52
  if (currentDepth >= maxSpawnDepth) {
38
53
  return {
39
54
  success: false,
55
+ agentId: '',
56
+ workspacePath: '',
40
57
  error: 'Maximum spawn depth reached. Sub-agents cannot spawn further sub-agents.',
41
- suggestion: 'Complete this task directly instead of delegating.',
58
+ errorType: 'depth_exceeded',
59
+ message: 'Complete this task directly instead of delegating.',
42
60
  };
43
61
  }
44
62
  if (!createAgent) {
45
63
  return {
46
64
  success: false,
65
+ agentId: '',
66
+ workspacePath: '',
47
67
  error: 'Agent factory not configured. Sub-agent spawning is disabled.',
48
68
  };
49
69
  }
50
- const agentId = generateId();
51
- const roleConfig = getSubAgentConfig(role);
52
- // Build the sub-agent prompt
53
- const fullPrompt = context
54
- ? `Context:\n${context}\n\nTask:\n${task}`
55
- : task;
56
- // Stream start event
57
- if (onStream) {
58
- onStream({
59
- type: 'sub-agent-stream',
60
- agentId,
61
- role,
62
- text: '',
63
- status: 'streaming',
70
+ const agentId = generateAgentId(task);
71
+ const agentWorkspacePath = workspacePath ? `${workspacePath}/${agentId}` : agentId;
72
+ log.info('Spawning sub-agent', { agentId, task: task.slice(0, 80), async: isAsync });
73
+ const registryEntry = {
74
+ agentId,
75
+ task,
76
+ status: 'running',
77
+ workspacePath: agentWorkspacePath,
78
+ startedAt: new Date().toISOString(),
79
+ };
80
+ if (registry) {
81
+ await registry.register(registryEntry);
82
+ }
83
+ const instructions = buildSubAgentInstructions(task, agentWorkspacePath);
84
+ const fullPrompt = context ? `Context:\n${context}\n\nTask:\n${task}` : task;
85
+ const subAgent = createAgent({
86
+ task,
87
+ instructions,
88
+ workspacePath: agentWorkspacePath,
89
+ model: modelTier,
90
+ });
91
+ if (isAsync) {
92
+ runSubAgentInBackground(subAgent, fullPrompt, agentId, task, agentWorkspacePath, registry ?? null, onStream ?? null, onActivity ?? null).catch((err) => {
93
+ log.error('Background sub-agent failed', {
94
+ agentId,
95
+ error: err instanceof Error ? err.message : String(err),
96
+ });
64
97
  });
98
+ return {
99
+ success: true,
100
+ agentId,
101
+ workspacePath: agentWorkspacePath,
102
+ status: 'running',
103
+ message: `Sub-agent "${agentId}" started in background. Use check_agent to poll status.`,
104
+ };
105
+ }
106
+ return runSubAgentSync(subAgent, fullPrompt, agentId, task, agentWorkspacePath, registry ?? null, onStream ?? null, onActivity ?? null);
107
+ }
108
+ async function runSubAgentSync(subAgent, prompt, agentId, task, agentWorkspacePath, registry, onStream, onActivity) {
109
+ if (onStream) {
110
+ onStream({ type: 'sub-agent-stream', agentId, text: '', status: 'streaming' });
65
111
  }
66
112
  try {
67
- // Create and run the sub-agent
68
- const subAgent = createAgent({
69
- role,
70
- instructions: roleConfig.instructions,
71
- });
72
- const stream = subAgent.stream({ prompt: fullPrompt });
73
- // Stream sub-agent output
113
+ const stream = subAgent.stream({ prompt });
74
114
  for await (const chunk of stream.fullStream) {
115
+ if (onActivity) {
116
+ onActivity({ type: 'sub-agent-activity', agentId, task, chunk });
117
+ }
75
118
  if (chunk.type === 'text-delta' && chunk.text) {
76
119
  if (onStream) {
77
- onStream({
78
- type: 'sub-agent-stream',
79
- agentId,
80
- role,
81
- text: chunk.text,
82
- status: 'streaming',
83
- });
120
+ onStream({ type: 'sub-agent-stream', agentId, text: chunk.text, status: 'streaming' });
84
121
  }
85
122
  }
86
123
  }
87
- // Get final result
88
124
  const result = await stream.text;
89
- // Stream completion event
90
125
  if (onStream) {
91
- onStream({
92
- type: 'sub-agent-stream',
93
- agentId,
94
- role,
95
- text: result,
96
- status: 'complete',
126
+ onStream({ type: 'sub-agent-stream', agentId, text: result, status: 'complete' });
127
+ }
128
+ const summary = await extractSummary(result, task);
129
+ if (registry) {
130
+ await registry.update(agentId, {
131
+ status: 'completed',
132
+ completedAt: new Date().toISOString(),
133
+ summary,
97
134
  });
98
135
  }
99
- // Extract semantic summary using LLM instead of blind truncation
100
- const summary = await extractSummary(result, role, task);
101
136
  return {
102
137
  success: true,
103
138
  agentId,
104
- role,
105
139
  summary,
106
- message: `Sub-agent (${role}) completed the task.`,
140
+ workspacePath: agentWorkspacePath,
141
+ message: `Sub-agent "${agentId}" completed the task. Full output at ${agentWorkspacePath}`,
107
142
  };
108
143
  }
109
144
  catch (error) {
110
145
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
111
- // Stream error event
146
+ const errorType = classifyError(error);
112
147
  if (onStream) {
113
148
  onStream({
114
149
  type: 'sub-agent-stream',
115
150
  agentId,
116
- role,
117
151
  text: `Error: ${errorMessage}`,
118
152
  status: 'complete',
119
153
  });
120
154
  }
155
+ if (registry) {
156
+ await registry.update(agentId, {
157
+ status: 'failed',
158
+ completedAt: new Date().toISOString(),
159
+ error: errorMessage,
160
+ errorType,
161
+ });
162
+ }
121
163
  return {
122
164
  success: false,
123
165
  agentId,
124
- role,
166
+ workspacePath: agentWorkspacePath,
125
167
  error: errorMessage,
168
+ errorType,
126
169
  };
127
170
  }
128
171
  }
129
- /**
130
- * Extract a semantic summary from sub-agent output using a fast model.
131
- * Falls back to first 500 chars if the summarization call fails.
132
- */
133
- async function extractSummary(fullOutput, role, originalTask) {
134
- // Short outputs don't need summarization
172
+ async function runSubAgentInBackground(subAgent, prompt, agentId, task, agentWorkspacePath, registry, onStream, onActivity) {
173
+ try {
174
+ const stream = subAgent.stream({ prompt });
175
+ for await (const chunk of stream.fullStream) {
176
+ if (onActivity) {
177
+ onActivity({ type: 'sub-agent-activity', agentId, task, chunk });
178
+ }
179
+ if (chunk.type === 'text-delta' && chunk.text && onStream) {
180
+ onStream({ type: 'sub-agent-stream', agentId, text: chunk.text, status: 'streaming' });
181
+ }
182
+ }
183
+ const result = await stream.text;
184
+ if (onStream) {
185
+ onStream({ type: 'sub-agent-stream', agentId, text: result, status: 'complete' });
186
+ }
187
+ const summary = await extractSummary(result, task);
188
+ if (registry) {
189
+ await registry.update(agentId, {
190
+ status: 'completed',
191
+ completedAt: new Date().toISOString(),
192
+ summary,
193
+ });
194
+ }
195
+ log.info('Background sub-agent completed', { agentId });
196
+ }
197
+ catch (error) {
198
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
199
+ const errorType = classifyError(error);
200
+ if (onStream) {
201
+ onStream({
202
+ type: 'sub-agent-stream',
203
+ agentId,
204
+ text: `Error: ${errorMessage}`,
205
+ status: 'complete',
206
+ });
207
+ }
208
+ if (registry) {
209
+ await registry.update(agentId, {
210
+ status: 'failed',
211
+ completedAt: new Date().toISOString(),
212
+ error: errorMessage,
213
+ errorType,
214
+ });
215
+ }
216
+ log.error('Background sub-agent failed', { agentId, error: errorMessage, errorType });
217
+ }
218
+ }
219
+ function buildSubAgentInstructions(task, workspacePath) {
220
+ return `You are a sub-agent working on a specific task. Focus exclusively on this task and produce thorough results.
221
+
222
+ Your workspace directory is: ${workspacePath}
223
+ Write your output, notes, and intermediate results to this directory.
224
+
225
+ When you finish:
226
+ 1. Write a clear summary of what you accomplished
227
+ 2. Note any issues encountered or decisions made
228
+ 3. Save detailed results to your workspace directory
229
+
230
+ Task: ${task}`;
231
+ }
232
+ async function extractSummary(fullOutput, originalTask) {
135
233
  if (fullOutput.length <= 500) {
136
234
  return fullOutput;
137
235
  }
138
236
  try {
139
237
  const { text } = await generateText({
140
- model: resolveModel({ tier: 'fast' }),
141
- system: `You are summarizing the output of a sub-agent (role: ${role}). Write a clear, actionable summary that captures the key findings, decisions, and results. Be concise but preserve critical details.`,
238
+ model: resolveModel({ tier: 'fast' }).model,
239
+ system: `You are summarizing the output of a sub-agent. Write a clear, actionable summary that captures key findings, decisions, and results. Be concise but preserve critical details.`,
142
240
  prompt: `Original task: ${originalTask}\n\nSub-agent output:\n${fullOutput}`,
143
241
  maxRetries: 1,
144
242
  });
145
243
  return text;
146
244
  }
147
- catch (_e) {
148
- // Fallback: return the beginning of the output if summarization fails
245
+ catch {
149
246
  return `${fullOutput.slice(0, 500)}...\n[Summary extraction failed, showing first 500 chars]`;
150
247
  }
151
248
  }
152
- /**
153
- * Creates a spawn agent tool definition for use with AI SDK
154
- *
155
- * @param options - Spawn options including depth limits, agent factory, and stream callback
156
- * @returns Tool definition object compatible with AI SDK
157
- */
249
+ function classifyError(error) {
250
+ if (!(error instanceof Error))
251
+ return 'task_failed';
252
+ const msg = error.message.toLowerCase();
253
+ if (msg.includes('timeout') || msg.includes('step limit') || msg.includes('max steps')) {
254
+ return 'timeout';
255
+ }
256
+ if (msg.includes('rate limit') ||
257
+ msg.includes('401') ||
258
+ msg.includes('403') ||
259
+ msg.includes('429') ||
260
+ msg.includes('api') ||
261
+ msg.includes('network') ||
262
+ msg.includes('fetch failed') ||
263
+ msg.includes('econnrefused')) {
264
+ return 'api_error';
265
+ }
266
+ if (msg.includes('depth') || msg.includes('recursion')) {
267
+ return 'depth_exceeded';
268
+ }
269
+ return 'task_failed';
270
+ }
158
271
  export function createSpawnAgentTool(options = {}) {
159
272
  return {
160
273
  description: DESCRIPTION,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/spawn-agent/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AA2C5C,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;kFAe8D,CAAC;AAEnF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACrE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IACjG,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;CAC1F,CAAC,CAAC;AAcH;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC9B,KAAsB,EACtB,OAA0B;IAE1B,MAAM,EACJ,aAAa,GAAG,CAAC,EACjB,YAAY,GAAG,CAAC,EAChB,WAAW,EACX,QAAQ,GACT,GAAG,OAAO,CAAC;IAEZ,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEtC,iDAAiD;IACjD,IAAI,YAAY,IAAI,aAAa,EAAE,CAAC;QAClC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,0EAA0E;YACjF,UAAU,EAAE,oDAAoD;SACjE,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,+DAA+D;SACvE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE3C,6BAA6B;IAC7B,MAAM,UAAU,GAAG,OAAO;QACxB,CAAC,CAAC,aAAa,OAAO,cAAc,IAAI,EAAE;QAC1C,CAAC,CAAC,IAAI,CAAC;IAET,qBAAqB;IACrB,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC;YACP,IAAI,EAAE,kBAAkB;YACxB,OAAO;YACP,IAAI;YACJ,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,+BAA+B;QAC/B,MAAM,QAAQ,GAAG,WAAW,CAAC;YAC3B,IAAI;YACJ,YAAY,EAAE,UAAU,CAAC,YAAY;SACtC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QAEvD,0BAA0B;QAC1B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC9C,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ,CAAC;wBACP,IAAI,EAAE,kBAAkB;wBACxB,OAAO;wBACP,IAAI;wBACJ,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,MAAM,EAAE,WAAW;qBACpB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAEjC,0BAA0B;QAC1B,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC;gBACP,IAAI,EAAE,kBAAkB;gBACxB,OAAO;gBACP,IAAI;gBACJ,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;QACL,CAAC;QAED,iEAAiE;QACjE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAEzD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO;YACP,IAAI;YACJ,OAAO;YACP,OAAO,EAAE,cAAc,IAAI,uBAAuB;SACnD,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QAE9E,qBAAqB;QACrB,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC;gBACP,IAAI,EAAE,kBAAkB;gBACxB,OAAO;gBACP,IAAI;gBACJ,IAAI,EAAE,UAAU,YAAY,EAAE;gBAC9B,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO;YACP,IAAI;YACJ,KAAK,EAAE,YAAY;SACpB,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,cAAc,CAC3B,UAAkB,EAClB,IAAY,EACZ,YAAoB;IAEpB,yCAAyC;IACzC,IAAI,UAAU,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,YAAY,CAAC;YAClC,KAAK,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACrC,MAAM,EAAE,wDAAwD,IAAI,wIAAwI;YAC5M,MAAM,EAAE,kBAAkB,YAAY,0BAA0B,UAAU,EAAE;YAC5E,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,EAAW,EAAE,CAAC;QACrB,sEAAsE;QACtE,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,2DAA2D,CAAC;IAChG,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAA6B,EAAE;IAClE,OAAO;QACL,WAAW,EAAE,WAAW;QACxB,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE,CAAC,KAAsB,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC;KACvE,CAAC;AACJ,CAAC;AAED,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/spawn-agent/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @fileoverview Sub-agent registry and persistence.
3
+ * Tracks the status, task, and lifecycle of all spawned agents.
4
+ * Provides methods for registering, updating, and persisting sub-agent metadata to disk.
5
+ */
6
+ export type AgentStatus = 'running' | 'completed' | 'failed';
7
+ export type SpawnErrorType = 'timeout' | 'api_error' | 'depth_exceeded' | 'task_failed';
8
+ export interface AgentRegistryEntry {
9
+ agentId: string;
10
+ task: string;
11
+ status: AgentStatus;
12
+ workspacePath: string;
13
+ startedAt: string;
14
+ completedAt?: string;
15
+ summary?: string;
16
+ error?: string;
17
+ errorType?: SpawnErrorType;
18
+ tokenUsage?: {
19
+ input: number;
20
+ output: number;
21
+ };
22
+ }
23
+ export declare class AgentRegistry {
24
+ private readonly agents;
25
+ private persistPath;
26
+ setPersistPath(path: string): void;
27
+ register(entry: AgentRegistryEntry): Promise<void>;
28
+ update(agentId: string, updates: Partial<AgentRegistryEntry>): Promise<void>;
29
+ get(agentId: string): AgentRegistryEntry | undefined;
30
+ getAll(statusFilter?: AgentStatus): AgentRegistryEntry[];
31
+ hasRunning(): boolean;
32
+ getCounts(): Record<AgentStatus, number>;
33
+ private persist;
34
+ loadFromDisk(path: string): Promise<void>;
35
+ }
36
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/tools/spawn-agent/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE7D,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,WAAW,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAExF,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAChE,OAAO,CAAC,WAAW,CAAuB;IAE1C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI5B,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlD,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlF,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIpD,MAAM,CAAC,YAAY,CAAC,EAAE,WAAW,GAAG,kBAAkB,EAAE;IAQxD,UAAU,IAAI,OAAO;IAIrB,SAAS,IAAI,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC;YAQ1B,OAAO;IAkBf,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBhD"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * @fileoverview Sub-agent registry and persistence.
3
+ * Tracks the status, task, and lifecycle of all spawned agents.
4
+ * Provides methods for registering, updating, and persisting sub-agent metadata to disk.
5
+ */
6
+ import { writeFile, readFile, mkdir } from 'node:fs/promises';
7
+ import { existsSync } from 'node:fs';
8
+ import { dirname } from 'node:path';
9
+ import { createLogger } from '@agntk/logger';
10
+ const log = createLogger('@agntk/core:agent-registry');
11
+ export class AgentRegistry {
12
+ agents = new Map();
13
+ persistPath = null;
14
+ setPersistPath(path) {
15
+ this.persistPath = path;
16
+ }
17
+ async register(entry) {
18
+ this.agents.set(entry.agentId, entry);
19
+ log.debug('Agent registered', { agentId: entry.agentId, task: entry.task.slice(0, 50) });
20
+ await this.persist();
21
+ }
22
+ async update(agentId, updates) {
23
+ const entry = this.agents.get(agentId);
24
+ if (!entry) {
25
+ log.warn('Attempted to update non-existent agent', { agentId });
26
+ return;
27
+ }
28
+ Object.assign(entry, updates);
29
+ log.debug('Agent updated', { agentId, status: entry.status });
30
+ await this.persist();
31
+ }
32
+ get(agentId) {
33
+ return this.agents.get(agentId);
34
+ }
35
+ getAll(statusFilter) {
36
+ const entries = Array.from(this.agents.values());
37
+ if (statusFilter) {
38
+ return entries.filter((e) => e.status === statusFilter);
39
+ }
40
+ return entries;
41
+ }
42
+ hasRunning() {
43
+ return Array.from(this.agents.values()).some((e) => e.status === 'running');
44
+ }
45
+ getCounts() {
46
+ const counts = { running: 0, completed: 0, failed: 0 };
47
+ for (const entry of this.agents.values()) {
48
+ counts[entry.status]++;
49
+ }
50
+ return counts;
51
+ }
52
+ async persist() {
53
+ if (!this.persistPath)
54
+ return;
55
+ try {
56
+ const dir = dirname(this.persistPath);
57
+ if (!existsSync(dir)) {
58
+ await mkdir(dir, { recursive: true });
59
+ }
60
+ const data = JSON.stringify(Array.from(this.agents.values()), null, 2);
61
+ await writeFile(this.persistPath, data, 'utf-8');
62
+ }
63
+ catch (err) {
64
+ log.warn('Registry persist failed', {
65
+ error: err instanceof Error ? err.message : String(err),
66
+ });
67
+ }
68
+ }
69
+ async loadFromDisk(path) {
70
+ this.persistPath = path;
71
+ if (!existsSync(path))
72
+ return;
73
+ try {
74
+ const data = await readFile(path, 'utf-8');
75
+ const entries = JSON.parse(data);
76
+ for (const entry of entries) {
77
+ this.agents.set(entry.agentId, entry);
78
+ }
79
+ log.info('Registry loaded from disk', { count: entries.length, path });
80
+ }
81
+ catch (err) {
82
+ log.warn('Registry load failed', {
83
+ error: err instanceof Error ? err.message : String(err),
84
+ });
85
+ }
86
+ }
87
+ }
88
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/tools/spawn-agent/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,GAAG,GAAG,YAAY,CAAC,4BAA4B,CAAC,CAAC;AAmBvD,MAAM,OAAO,aAAa;IACP,MAAM,GAAG,IAAI,GAAG,EAA8B,CAAC;IACxD,WAAW,GAAkB,IAAI,CAAC;IAE1C,cAAc,CAAC,IAAY;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAyB;QACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtC,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACzF,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,OAAoC;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,IAAI,CAAC,wCAAwC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9B,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,OAAe;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,YAA0B;QAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACjD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,UAAU;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAC9E,CAAC;IAED,SAAS;QACP,MAAM,MAAM,GAAgC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACpF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAE9B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACxC,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACvE,MAAM,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBAClC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO;QAE9B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAyB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACxC,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE;gBAC/B,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
@@ -1,5 +1,6 @@
1
1
  /**
2
- * Tool Error utilities
2
+ * @fileoverview Tool execution error handling.
3
+ * Provides specialized error classes and types for common tool failures.
3
4
  */
4
5
  export declare enum ToolErrorType {
5
6
  COMMAND_BLOCKED = "COMMAND_BLOCKED",
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/tools/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oBAAY,aAAa;IACvB,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;IACvC,gBAAgB,qBAAqB;IACrC,OAAO,YAAY;IACnB,SAAS,cAAc;CACxB;AAED,qBAAa,SAAU,SAAQ,KAAK;aAGhB,IAAI,EAAE,aAAa;aACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFjD,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,aAAa,EACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;IAMnD,MAAM;;;;;CAOP"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/tools/utils/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oBAAY,aAAa;IACvB,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;IACvC,gBAAgB,qBAAqB;IACrC,OAAO,YAAY;IACnB,SAAS,cAAc;CACxB;AAED,qBAAa,SAAU,SAAQ,KAAK;aAGhB,IAAI,EAAE,aAAa;aACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFjD,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,aAAa,EACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;IAMnD,MAAM;;;;;CAOP"}
@@ -1,5 +1,6 @@
1
1
  /**
2
- * Tool Error utilities
2
+ * @fileoverview Tool execution error handling.
3
+ * Provides specialized error classes and types for common tool failures.
3
4
  */
4
5
  export var ToolErrorType;
5
6
  (function (ToolErrorType) {
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/tools/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAN,IAAY,aAMX;AAND,WAAY,aAAa;IACvB,oDAAmC,CAAA;IACnC,wDAAuC,CAAA;IACvC,sDAAqC,CAAA;IACrC,oCAAmB,CAAA;IACnB,wCAAuB,CAAA;AACzB,CAAC,EANW,aAAa,KAAb,aAAa,QAMxB;AAED,MAAM,OAAO,SAAU,SAAQ,KAAK;IAGhB;IACA;IAHlB,YACE,OAAe,EACC,IAAmB,EACnB,OAAiC;QAEjD,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAe;QACnB,YAAO,GAAP,OAAO,CAA0B;QAGjD,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/tools/utils/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAN,IAAY,aAMX;AAND,WAAY,aAAa;IACvB,oDAAmC,CAAA;IACnC,wDAAuC,CAAA;IACvC,sDAAqC,CAAA;IACrC,oCAAmB,CAAA;IACnB,wCAAuB,CAAA;AACzB,CAAC,EANW,aAAa,KAAb,aAAa,QAMxB;AAED,MAAM,OAAO,SAAU,SAAQ,KAAK;IAGhB;IACA;IAHlB,YACE,OAAe,EACC,IAAmB,EACnB,OAAiC;QAEjD,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAe;QACnB,YAAO,GAAP,OAAO,CAA0B;QAGjD,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF"}
@@ -1,17 +1,6 @@
1
1
  export declare function isDangerousCommand(command: string): boolean;
2
- /**
3
- * Ensure the requested cwd is within workspaceRoot (or is workspaceRoot itself).
4
- * Returns the resolved cwd, or throws if the path escapes the workspace.
5
- */
6
2
  export declare function validateCwd(cwd: string, workspaceRoot: string): string;
7
- /**
8
- * Build a sanitized copy of process.env suitable for child processes.
9
- * Strips all credential-like keys; always preserves PATH, HOME, USER, TERM, LANG, etc.
10
- */
11
3
  export declare function buildSanitizedEnv(extra?: Record<string, string>): Record<string, string>;
12
- /**
13
- * Redact API keys and secrets from command output before returning to the LLM.
14
- */
15
4
  export declare function sanitizeOutput(output: string): string;
16
5
  export interface ShellOptions {
17
6
  cwd?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/tools/utils/shell.ts"],"names":[],"mappings":"AA4FA,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3D;AAMD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAYtE;AA6BD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACjC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBxB;AAgBD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CA2EtB;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC,CAuBD"}
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/tools/utils/shell.ts"],"names":[],"mappings":"AAuDA,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAYtE;AAwBD,wBAAgB,iBAAiB,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiB5F;AAYD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CAqEtB;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC,CAuBD"}