@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,25 +1,19 @@
1
1
  /**
2
- * @agntk/core - Spawn Agent Tool
3
- * Tool for spawning sub-agents with streaming output
2
+ * @fileoverview Sub-agent spawning and lifecycle management.
3
+ * Handles creating, executing, and summarizing tasks delegted to sub-agents.
4
+ * Supports both synchronous (blocking) and asynchronous (background) execution.
4
5
  */
5
6
  import { z } from 'zod';
7
+ import type { AgentRegistry, SpawnErrorType } from './registry.js';
6
8
  export interface SpawnAgentOptions {
7
- /**
8
- * Maximum spawn depth to prevent infinite recursion
9
- * Sub-agents spawned by this tool will have depth-1
10
- */
11
9
  maxSpawnDepth?: number;
12
- /**
13
- * Current spawn depth (0 = main agent)
14
- */
15
10
  currentDepth?: number;
16
- /**
17
- * Agent factory function - must be provided to enable spawning.
18
- * This is called to create the sub-agent instance.
19
- */
20
11
  createAgent?: (options: {
21
- role: string;
22
- instructions?: string;
12
+ task: string;
13
+ instructions: string;
14
+ workspacePath: string;
15
+ model?: 'fast' | 'standard' | 'reasoning';
16
+ tools?: string[];
23
17
  }) => {
24
18
  stream: (input: {
25
19
  prompt: string;
@@ -29,65 +23,64 @@ export interface SpawnAgentOptions {
29
23
  text?: string;
30
24
  }>;
31
25
  text: Promise<string>;
26
+ usage: Promise<{
27
+ totalTokens?: number;
28
+ promptTokens?: number;
29
+ completionTokens?: number;
30
+ }>;
32
31
  };
33
32
  };
34
- /**
35
- * Optional callback for streaming sub-agent output
36
- * Called with each text delta chunk
37
- */
33
+ registry?: AgentRegistry;
34
+ workspacePath?: string;
38
35
  onStream?: (data: SubAgentStreamData) => void;
39
36
  }
40
37
  export interface SubAgentStreamData {
41
38
  type: 'sub-agent-stream';
42
39
  agentId: string;
43
- role: string;
44
40
  text: string;
45
41
  status: 'streaming' | 'complete';
46
42
  }
47
43
  export declare const spawnAgentParametersSchema: z.ZodObject<{
48
44
  task: z.ZodString;
49
- role: z.ZodDefault<z.ZodEnum<["coder", "researcher", "analyst", "generic"]>>;
50
45
  context: z.ZodOptional<z.ZodString>;
51
- }, "strip", z.ZodTypeAny, {
52
- task: string;
53
- role: "coder" | "researcher" | "analyst" | "generic";
54
- context?: string | undefined;
55
- }, {
56
- task: string;
57
- context?: string | undefined;
58
- role?: "coder" | "researcher" | "analyst" | "generic" | undefined;
59
- }>;
46
+ async: z.ZodDefault<z.ZodBoolean>;
47
+ model: z.ZodOptional<z.ZodEnum<{
48
+ reasoning: "reasoning";
49
+ fast: "fast";
50
+ standard: "standard";
51
+ }>>;
52
+ }, z.core.$strip>;
60
53
  export type SpawnAgentInput = z.infer<typeof spawnAgentParametersSchema>;
61
- export interface SpawnAgentResult {
54
+ export interface SpawnAgentSyncResult {
62
55
  success: boolean;
63
- agentId?: string;
64
- role?: string;
56
+ agentId: string;
65
57
  summary?: string;
66
- message?: string;
58
+ workspacePath: string;
67
59
  error?: string;
68
- suggestion?: string;
60
+ errorType?: SpawnErrorType;
61
+ message?: string;
69
62
  }
70
- /**
71
- * Creates a spawn agent tool definition for use with AI SDK
72
- *
73
- * @param options - Spawn options including depth limits, agent factory, and stream callback
74
- * @returns Tool definition object compatible with AI SDK
75
- */
63
+ export interface SpawnAgentAsyncResult {
64
+ success: true;
65
+ agentId: string;
66
+ workspacePath: string;
67
+ status: 'running';
68
+ message: string;
69
+ }
70
+ export type SpawnAgentResult = SpawnAgentSyncResult | SpawnAgentAsyncResult;
71
+ export declare function generateAgentId(task: string): string;
76
72
  export declare function createSpawnAgentTool(options?: SpawnAgentOptions): {
77
73
  description: string;
78
74
  inputSchema: z.ZodObject<{
79
75
  task: z.ZodString;
80
- role: z.ZodDefault<z.ZodEnum<["coder", "researcher", "analyst", "generic"]>>;
81
76
  context: z.ZodOptional<z.ZodString>;
82
- }, "strip", z.ZodTypeAny, {
83
- task: string;
84
- role: "coder" | "researcher" | "analyst" | "generic";
85
- context?: string | undefined;
86
- }, {
87
- task: string;
88
- context?: string | undefined;
89
- role?: "coder" | "researcher" | "analyst" | "generic" | undefined;
90
- }>;
77
+ async: z.ZodDefault<z.ZodBoolean>;
78
+ model: z.ZodOptional<z.ZodEnum<{
79
+ reasoning: "reasoning";
80
+ fast: "fast";
81
+ standard: "standard";
82
+ }>>;
83
+ }, z.core.$strip>;
91
84
  execute: (input: SpawnAgentInput) => Promise<SpawnAgentResult>;
92
85
  };
93
86
  export default createSpawnAgentTool;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/spawn-agent/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,KAAK;QACJ,MAAM,EAAE,CAAC,KAAK,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,KAAK;YACrC,UAAU,EAAE,aAAa,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;YAC3D,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;SACvB,CAAC;KACH,CAAC;IAEF;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,UAAU,CAAC;CAClC;AAmBD,eAAO,MAAM,0BAA0B;;;;;;;;;;;;EAIrC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEzE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAwJD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,iBAAsB;;;;;;;;;;;;;;;qBAI/C,eAAe;EAEnC;AAED,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/spawn-agent/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EAAE,aAAa,EAAsB,cAAc,EAAE,MAAM,YAAY,CAAC;AAIpF,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;QAC1C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,KAAK;QACJ,MAAM,EAAE,CAAC,KAAK,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,KAAK;YACrC,UAAU,EAAE,aAAa,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;YAC3D,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACtB,KAAK,EAAE,OAAO,CAAC;gBAAE,WAAW,CAAC,EAAE,MAAM,CAAC;gBAAC,YAAY,CAAC,EAAE,MAAM,CAAC;gBAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;SAC5F,CAAC;KACH,CAAC;IAEF,QAAQ,CAAC,EAAE,aAAa,CAAC;IAEzB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,UAAU,CAAC;CAClC;AAqBD,eAAO,MAAM,0BAA0B;;;;;;;;;iBAWrC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEzE,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,qBAAqB,CAAC;AAE5E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYpD;AA+SD,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,iBAAsB;;;;;;;;;;;;qBAI/C,eAAe;EAEnC;AAED,eAAe,oBAAoB,CAAC"}
@@ -1,160 +1,272 @@
1
1
  /**
2
- * @agntk/core - Spawn Agent Tool
3
- * Tool for spawning sub-agents with streaming output
2
+ * @fileoverview Sub-agent spawning and lifecycle management.
3
+ * Handles creating, executing, and summarizing tasks delegted to sub-agents.
4
+ * Supports both synchronous (blocking) and asynchronous (background) execution.
4
5
  */
5
6
  import { generateId, generateText } from 'ai';
6
7
  import { z } from 'zod';
7
- import { getSubAgentConfig, subAgentRoles } from '../../presets/sub-agent-configs.js';
8
+ import { createLogger } from '@agntk/logger';
8
9
  import { resolveModel } from '../../models.js';
9
- const DESCRIPTION = `Spawn a sub-agent for a specific task.
10
+ const log = createLogger('@agntk/core:spawn-agent');
11
+ const DESCRIPTION = `Spawn a sub-agent to work on a specific task.
10
12
 
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
13
+ Use this tool to delegate work that benefits from:
14
+ - Independent, focused execution
15
+ - Parallel processing (use async: true)
16
+ - Isolated workspace for intermediate results
15
17
 
16
- The sub-agent will work independently and stream its output. You will receive a summary of the results.
18
+ The sub-agent works autonomously and writes its output to a workspace directory.
19
+ You receive a summary and can read the full output from the workspace path.
17
20
 
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)
21
+ Parameters:
22
+ - task (required): Clear description of what the sub-agent should accomplish
23
+ - context: Background information the sub-agent needs
24
+ - async: Set to true to run in background (use check_agent to poll)
25
+ - model: Override model tier ('fast', 'standard', 'reasoning')
23
26
 
24
- Note: Sub-agents cannot spawn their own sub-agents (prevents infinite recursion).`;
27
+ When async is false (default), this tool blocks until the sub-agent completes.
28
+ When async is true, it returns immediately with an agentId for polling.`;
25
29
  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'),
30
+ task: z.string().describe('Clear description of what the sub-agent should accomplish'),
31
+ context: z.string().optional().describe('Background information the sub-agent needs'),
32
+ async: z
33
+ .boolean()
34
+ .default(false)
35
+ .describe('If true, run in background and return immediately with agentId'),
36
+ model: z
37
+ .enum(['fast', 'standard', 'reasoning'])
38
+ .optional()
39
+ .describe('Model tier override (default: inherit parent)'),
29
40
  });
30
- /**
31
- * Execute function for spawn agent tool
32
- */
41
+ export function generateAgentId(task) {
42
+ const slug = task
43
+ .toLowerCase()
44
+ .replace(/[^a-z0-9\s-]/g, '')
45
+ .trim()
46
+ .split(/\s+/)
47
+ .filter(Boolean)
48
+ .slice(0, 3)
49
+ .join('-');
50
+ const suffix = generateId().slice(0, 4);
51
+ return `${slug || 'agent'}-${suffix}`;
52
+ }
33
53
  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
54
+ const { maxSpawnDepth = 2, currentDepth = 0, createAgent, registry, workspacePath, onStream, } = options;
55
+ const { task, context, model: modelTier } = input;
56
+ const isAsync = input.async;
37
57
  if (currentDepth >= maxSpawnDepth) {
38
58
  return {
39
59
  success: false,
60
+ agentId: '',
61
+ workspacePath: '',
40
62
  error: 'Maximum spawn depth reached. Sub-agents cannot spawn further sub-agents.',
41
- suggestion: 'Complete this task directly instead of delegating.',
63
+ errorType: 'depth_exceeded',
64
+ message: 'Complete this task directly instead of delegating.',
42
65
  };
43
66
  }
44
67
  if (!createAgent) {
45
68
  return {
46
69
  success: false,
70
+ agentId: '',
71
+ workspacePath: '',
47
72
  error: 'Agent factory not configured. Sub-agent spawning is disabled.',
48
73
  };
49
74
  }
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',
75
+ const agentId = generateAgentId(task);
76
+ const agentWorkspacePath = workspacePath ? `${workspacePath}/${agentId}` : agentId;
77
+ log.info('Spawning sub-agent', { agentId, task: task.slice(0, 80), async: isAsync });
78
+ const registryEntry = {
79
+ agentId,
80
+ task,
81
+ status: 'running',
82
+ workspacePath: agentWorkspacePath,
83
+ startedAt: new Date().toISOString(),
84
+ };
85
+ if (registry) {
86
+ await registry.register(registryEntry);
87
+ }
88
+ const instructions = buildSubAgentInstructions(task, agentWorkspacePath);
89
+ const fullPrompt = context ? `Context:\n${context}\n\nTask:\n${task}` : task;
90
+ const subAgent = createAgent({
91
+ task,
92
+ instructions,
93
+ workspacePath: agentWorkspacePath,
94
+ model: modelTier,
95
+ });
96
+ if (isAsync) {
97
+ runSubAgentInBackground(subAgent, fullPrompt, agentId, task, agentWorkspacePath, registry ?? null, onStream ?? null).catch((err) => {
98
+ log.error('Background sub-agent failed', {
99
+ agentId,
100
+ error: err instanceof Error ? err.message : String(err),
101
+ });
64
102
  });
103
+ return {
104
+ success: true,
105
+ agentId,
106
+ workspacePath: agentWorkspacePath,
107
+ status: 'running',
108
+ message: `Sub-agent "${agentId}" started in background. Use check_agent to poll status.`,
109
+ };
110
+ }
111
+ return runSubAgentSync(subAgent, fullPrompt, agentId, task, agentWorkspacePath, registry ?? null, onStream ?? null);
112
+ }
113
+ async function runSubAgentSync(subAgent, prompt, agentId, task, agentWorkspacePath, registry, onStream) {
114
+ if (onStream) {
115
+ onStream({ type: 'sub-agent-stream', agentId, text: '', status: 'streaming' });
65
116
  }
66
117
  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
118
+ const stream = subAgent.stream({ prompt });
74
119
  for await (const chunk of stream.fullStream) {
75
120
  if (chunk.type === 'text-delta' && chunk.text) {
76
121
  if (onStream) {
77
- onStream({
78
- type: 'sub-agent-stream',
79
- agentId,
80
- role,
81
- text: chunk.text,
82
- status: 'streaming',
83
- });
122
+ onStream({ type: 'sub-agent-stream', agentId, text: chunk.text, status: 'streaming' });
84
123
  }
85
124
  }
86
125
  }
87
- // Get final result
88
126
  const result = await stream.text;
89
- // Stream completion event
90
127
  if (onStream) {
91
- onStream({
92
- type: 'sub-agent-stream',
93
- agentId,
94
- role,
95
- text: result,
96
- status: 'complete',
128
+ onStream({ type: 'sub-agent-stream', agentId, text: result, status: 'complete' });
129
+ }
130
+ const summary = await extractSummary(result, task);
131
+ if (registry) {
132
+ await registry.update(agentId, {
133
+ status: 'completed',
134
+ completedAt: new Date().toISOString(),
135
+ summary,
97
136
  });
98
137
  }
99
- // Extract semantic summary using LLM instead of blind truncation
100
- const summary = await extractSummary(result, role, task);
101
138
  return {
102
139
  success: true,
103
140
  agentId,
104
- role,
105
141
  summary,
106
- message: `Sub-agent (${role}) completed the task.`,
142
+ workspacePath: agentWorkspacePath,
143
+ message: `Sub-agent "${agentId}" completed the task. Full output at ${agentWorkspacePath}`,
107
144
  };
108
145
  }
109
146
  catch (error) {
110
147
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
111
- // Stream error event
148
+ const errorType = classifyError(error);
112
149
  if (onStream) {
113
150
  onStream({
114
151
  type: 'sub-agent-stream',
115
152
  agentId,
116
- role,
117
153
  text: `Error: ${errorMessage}`,
118
154
  status: 'complete',
119
155
  });
120
156
  }
157
+ if (registry) {
158
+ await registry.update(agentId, {
159
+ status: 'failed',
160
+ completedAt: new Date().toISOString(),
161
+ error: errorMessage,
162
+ errorType,
163
+ });
164
+ }
121
165
  return {
122
166
  success: false,
123
167
  agentId,
124
- role,
168
+ workspacePath: agentWorkspacePath,
125
169
  error: errorMessage,
170
+ errorType,
126
171
  };
127
172
  }
128
173
  }
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
174
+ async function runSubAgentInBackground(subAgent, prompt, agentId, task, agentWorkspacePath, registry, onStream) {
175
+ try {
176
+ const stream = subAgent.stream({ prompt });
177
+ for await (const chunk of stream.fullStream) {
178
+ if (chunk.type === 'text-delta' && chunk.text && onStream) {
179
+ onStream({ type: 'sub-agent-stream', agentId, text: chunk.text, status: 'streaming' });
180
+ }
181
+ }
182
+ const result = await stream.text;
183
+ if (onStream) {
184
+ onStream({ type: 'sub-agent-stream', agentId, text: result, status: 'complete' });
185
+ }
186
+ const summary = await extractSummary(result, task);
187
+ if (registry) {
188
+ await registry.update(agentId, {
189
+ status: 'completed',
190
+ completedAt: new Date().toISOString(),
191
+ summary,
192
+ });
193
+ }
194
+ log.info('Background sub-agent completed', { agentId });
195
+ }
196
+ catch (error) {
197
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
198
+ const errorType = classifyError(error);
199
+ if (onStream) {
200
+ onStream({
201
+ type: 'sub-agent-stream',
202
+ agentId,
203
+ text: `Error: ${errorMessage}`,
204
+ status: 'complete',
205
+ });
206
+ }
207
+ if (registry) {
208
+ await registry.update(agentId, {
209
+ status: 'failed',
210
+ completedAt: new Date().toISOString(),
211
+ error: errorMessage,
212
+ errorType,
213
+ });
214
+ }
215
+ log.error('Background sub-agent failed', { agentId, error: errorMessage, errorType });
216
+ }
217
+ }
218
+ function buildSubAgentInstructions(task, workspacePath) {
219
+ return `You are a sub-agent working on a specific task. Focus exclusively on this task and produce thorough results.
220
+
221
+ Your workspace directory is: ${workspacePath}
222
+ Write your output, notes, and intermediate results to this directory.
223
+
224
+ When you finish:
225
+ 1. Write a clear summary of what you accomplished
226
+ 2. Note any issues encountered or decisions made
227
+ 3. Save detailed results to your workspace directory
228
+
229
+ Task: ${task}`;
230
+ }
231
+ async function extractSummary(fullOutput, originalTask) {
135
232
  if (fullOutput.length <= 500) {
136
233
  return fullOutput;
137
234
  }
138
235
  try {
139
236
  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.`,
237
+ model: resolveModel({ tier: 'fast' }).model,
238
+ 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
239
  prompt: `Original task: ${originalTask}\n\nSub-agent output:\n${fullOutput}`,
143
240
  maxRetries: 1,
144
241
  });
145
242
  return text;
146
243
  }
147
- catch (_e) {
148
- // Fallback: return the beginning of the output if summarization fails
244
+ catch {
149
245
  return `${fullOutput.slice(0, 500)}...\n[Summary extraction failed, showing first 500 chars]`;
150
246
  }
151
247
  }
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
- */
248
+ function classifyError(error) {
249
+ if (!(error instanceof Error))
250
+ return 'task_failed';
251
+ const msg = error.message.toLowerCase();
252
+ if (msg.includes('timeout') || msg.includes('step limit') || msg.includes('max steps')) {
253
+ return 'timeout';
254
+ }
255
+ if (msg.includes('rate limit') ||
256
+ msg.includes('401') ||
257
+ msg.includes('403') ||
258
+ msg.includes('429') ||
259
+ msg.includes('api') ||
260
+ msg.includes('network') ||
261
+ msg.includes('fetch failed') ||
262
+ msg.includes('econnrefused')) {
263
+ return 'api_error';
264
+ }
265
+ if (msg.includes('depth') || msg.includes('recursion')) {
266
+ return 'depth_exceeded';
267
+ }
268
+ return 'task_failed';
269
+ }
158
270
  export function createSpawnAgentTool(options = {}) {
159
271
  return {
160
272
  description: DESCRIPTION,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/spawn-agent/index.ts"],"names":[],"mappings":"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"}
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"}