@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,45 +1,17 @@
1
- /**
2
- * @agntk/core - Usage Limits
3
- *
4
- * Token and request caps for agents. Prevents runaway loops from
5
- * burning API budget by enforcing maxRequests, maxInputTokens,
6
- * maxOutputTokens, and maxTotalTokens.
7
- */
8
1
  import type { ToolSet, StepResult } from 'ai';
9
- /** Usage limits for an agent run. All fields are optional — only set limits are enforced. */
10
2
  export interface UsageLimits {
11
- /** Maximum number of LLM round-trips (steps). */
12
3
  maxRequests?: number;
13
- /** Maximum cumulative input tokens across all steps. */
14
4
  maxInputTokens?: number;
15
- /** Maximum cumulative output tokens across all steps. */
16
5
  maxOutputTokens?: number;
17
- /** Maximum cumulative total tokens (input + output) across all steps. */
18
6
  maxTotalTokens?: number;
19
7
  }
20
- /** Which limit was exceeded. */
21
8
  export type UsageLimitType = 'maxRequests' | 'maxInputTokens' | 'maxOutputTokens' | 'maxTotalTokens';
22
- /** Current usage snapshot at the time a limit was exceeded. */
23
9
  export interface UsageSnapshot {
24
10
  requests: number;
25
11
  inputTokens: number;
26
12
  outputTokens: number;
27
13
  totalTokens: number;
28
14
  }
29
- /**
30
- * Thrown when an agent exceeds a configured usage limit.
31
- *
32
- * @example
33
- * ```typescript
34
- * try {
35
- * const result = await agent.stream({ prompt: 'do something' });
36
- * } catch (error) {
37
- * if (error instanceof UsageLimitExceeded) {
38
- * console.log(`Hit ${error.limitType}: ${error.currentValue}/${error.limitValue}`);
39
- * }
40
- * }
41
- * ```
42
- */
43
15
  export declare class UsageLimitExceeded extends Error {
44
16
  readonly name = "UsageLimitExceeded";
45
17
  readonly limitType: UsageLimitType;
@@ -48,15 +20,6 @@ export declare class UsageLimitExceeded extends Error {
48
20
  readonly usage: UsageSnapshot;
49
21
  constructor(limitType: UsageLimitType, limitValue: number, currentValue: number, usage: UsageSnapshot);
50
22
  }
51
- /**
52
- * Create a StopCondition that checks usage limits after each step.
53
- *
54
- * Compatible with AI SDK's `stopWhen` array — combine with `stepCountIs()`.
55
- *
56
- * When a limit is exceeded, the condition throws `UsageLimitExceeded`
57
- * rather than returning `true`, because returning `true` would silently
58
- * stop the agent. Throwing gives the caller a clear signal with details.
59
- */
60
23
  export declare function usageLimitStop<TOOLS extends ToolSet>(limits: UsageLimits): (options: {
61
24
  steps: Array<StepResult<TOOLS>>;
62
25
  }) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"usage-limits.d.ts","sourceRoot":"","sources":["../src/usage-limits.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAM9C,6FAA6F;AAC7F,MAAM,WAAW,WAAW;IAC1B,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,gCAAgC;AAChC,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;AAErG,+DAA+D;AAC/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD;;;;;;;;;;;;;GAaG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,SAAkB,IAAI,wBAAwB;IAC9C,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;gBAG5B,SAAS,EAAE,cAAc,EACzB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,aAAa;CAUvB;AAMD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,KAAK,SAAS,OAAO,EAClD,MAAM,EAAE,WAAW,GAClB,CAAC,OAAO,EAAE;IAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;CAAE,KAAK,OAAO,CAsB3D"}
1
+ {"version":3,"file":"usage-limits.d.ts","sourceRoot":"","sources":["../src/usage-limits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,cAAc,GACtB,aAAa,GACb,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,CAAC;AAErB,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,SAAkB,IAAI,wBAAwB;IAC9C,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;gBAG5B,SAAS,EAAE,cAAc,EACzB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,aAAa;CAQvB;AAED,wBAAgB,cAAc,CAAC,KAAK,SAAS,OAAO,EAClD,MAAM,EAAE,WAAW,GAClB,CAAC,OAAO,EAAE;IAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;CAAE,KAAK,OAAO,CAqC3D"}
@@ -1,27 +1,3 @@
1
- /**
2
- * @agntk/core - Usage Limits
3
- *
4
- * Token and request caps for agents. Prevents runaway loops from
5
- * burning API budget by enforcing maxRequests, maxInputTokens,
6
- * maxOutputTokens, and maxTotalTokens.
7
- */
8
- // ============================================================================
9
- // Error
10
- // ============================================================================
11
- /**
12
- * Thrown when an agent exceeds a configured usage limit.
13
- *
14
- * @example
15
- * ```typescript
16
- * try {
17
- * const result = await agent.stream({ prompt: 'do something' });
18
- * } catch (error) {
19
- * if (error instanceof UsageLimitExceeded) {
20
- * console.log(`Hit ${error.limitType}: ${error.currentValue}/${error.limitValue}`);
21
- * }
22
- * }
23
- * ```
24
- */
25
1
  export class UsageLimitExceeded extends Error {
26
2
  name = 'UsageLimitExceeded';
27
3
  limitType;
@@ -36,18 +12,6 @@ export class UsageLimitExceeded extends Error {
36
12
  this.usage = usage;
37
13
  }
38
14
  }
39
- // ============================================================================
40
- // Stop Condition Factory
41
- // ============================================================================
42
- /**
43
- * Create a StopCondition that checks usage limits after each step.
44
- *
45
- * Compatible with AI SDK's `stopWhen` array — combine with `stepCountIs()`.
46
- *
47
- * When a limit is exceeded, the condition throws `UsageLimitExceeded`
48
- * rather than returning `true`, because returning `true` would silently
49
- * stop the agent. Throwing gives the caller a clear signal with details.
50
- */
51
15
  export function usageLimitStop(limits) {
52
16
  return ({ steps }) => {
53
17
  const usage = computeUsage(steps);
@@ -63,12 +27,9 @@ export function usageLimitStop(limits) {
63
27
  if (limits.maxTotalTokens !== undefined && usage.totalTokens > limits.maxTotalTokens) {
64
28
  throw new UsageLimitExceeded('maxTotalTokens', limits.maxTotalTokens, usage.totalTokens, usage);
65
29
  }
66
- return false; // Don't stop — limits not reached
30
+ return false;
67
31
  };
68
32
  }
69
- // ============================================================================
70
- // Helpers
71
- // ============================================================================
72
33
  function computeUsage(steps) {
73
34
  let inputTokens = 0;
74
35
  let outputTokens = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"usage-limits.js","sourceRoot":"","sources":["../src/usage-limits.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA+BH,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACzB,IAAI,GAAG,oBAAoB,CAAC;IACrC,SAAS,CAAiB;IAC1B,UAAU,CAAS;IACnB,YAAY,CAAS;IACrB,KAAK,CAAgB;IAE9B,YACE,SAAyB,EACzB,UAAkB,EAClB,YAAoB,EACpB,KAAoB;QAEpB,KAAK,CACH,yBAAyB,SAAS,MAAM,YAAY,YAAY,UAAU,GAAG,CAC9E,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAmB;IAEnB,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACnB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAElC,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5E,MAAM,IAAI,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACzF,CAAC;QAED,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;YACrF,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAClG,CAAC;QAED,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;YACxF,MAAM,IAAI,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACrG,CAAC;QAED,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;YACrF,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAClG,CAAC;QAED,OAAO,KAAK,CAAC,CAAC,kCAAkC;IAClD,CAAC,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,SAAS,YAAY,CAAwB,KAA+B;IAC1E,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC;QAC5C,YAAY,IAAI,IAAI,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC;QAC9C,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,MAAM;QACtB,WAAW;QACX,YAAY;QACZ,WAAW;KACZ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"usage-limits.js","sourceRoot":"","sources":["../src/usage-limits.ts"],"names":[],"mappings":"AAyBA,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACzB,IAAI,GAAG,oBAAoB,CAAC;IACrC,SAAS,CAAiB;IAC1B,UAAU,CAAS;IACnB,YAAY,CAAS;IACrB,KAAK,CAAgB;IAE9B,YACE,SAAyB,EACzB,UAAkB,EAClB,YAAoB,EACpB,KAAoB;QAEpB,KAAK,CAAC,yBAAyB,SAAS,MAAM,YAAY,YAAY,UAAU,GAAG,CAAC,CAAC;QACrF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAC5B,MAAmB;IAEnB,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACnB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAElC,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5E,MAAM,IAAI,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACzF,CAAC;QAED,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;YACrF,MAAM,IAAI,kBAAkB,CAC1B,gBAAgB,EAChB,MAAM,CAAC,cAAc,EACrB,KAAK,CAAC,WAAW,EACjB,KAAK,CACN,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;YACxF,MAAM,IAAI,kBAAkB,CAC1B,iBAAiB,EACjB,MAAM,CAAC,eAAe,EACtB,KAAK,CAAC,YAAY,EAClB,KAAK,CACN,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;YACrF,MAAM,IAAI,kBAAkB,CAC1B,gBAAgB,EAChB,MAAM,CAAC,cAAc,EACrB,KAAK,CAAC,WAAW,EACjB,KAAK,CACN,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAwB,KAA+B;IAC1E,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC;QAC5C,YAAY,IAAI,IAAI,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC;QAC9C,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,MAAM;QACtB,WAAW;QACX,YAAY;QACZ,WAAW;KACZ,CAAC;AACJ,CAAC"}
@@ -1,103 +1,19 @@
1
- /**
2
- * @agntk/core - Durable Tool Wrapper
3
- *
4
- * Wraps tools with durability directives for crash recovery.
5
- * Uses the Workflow DevKit's "use step" directive to checkpoint tool executions.
6
- * Each tool step gets a descriptive name for observability in the workflow inspector.
7
- *
8
- * @see https://useworkflow.dev
9
- */
10
1
  import type { Tool } from 'ai';
11
2
  type ToolSet = Record<string, Tool>;
12
3
  export interface DurabilityConfig {
13
- /** Enable durability for this tool. Default: true */
14
4
  enabled?: boolean;
15
- /** Whether this tool can run independently in parallel. Default: false */
16
5
  independent?: boolean;
17
- /** Number of retry attempts on failure. Default: 3 */
18
6
  retryCount?: number;
19
- /** Timeout duration string (e.g., "30s", "5m"). Default: "5m" */
20
7
  timeout?: string;
21
- /** Custom step name for the workflow inspector. Default: "tool-exec-{toolName}" */
22
8
  stepName?: string;
23
9
  }
24
- /**
25
- * Wrap a single tool with durability directives.
26
- *
27
- * When wrapped, the tool's execute function uses the "use step" directive
28
- * to create a checkpoint. If the process crashes, the workflow runtime
29
- * resumes from the last checkpoint.
30
- *
31
- * Each wrapped tool gets a descriptive step name for the workflow inspector:
32
- * - Default: "tool-exec-{toolName}"
33
- * - Custom via `config.stepName`
34
- *
35
- * @param tool - The tool to wrap
36
- * @param config - Durability configuration
37
- * @param toolName - Name of the tool (used for step naming)
38
- * @returns Wrapped tool with durability enabled
39
- *
40
- * @example
41
- * ```typescript
42
- * const durableReadFile = wrapToolAsDurableStep(readFileTool, {
43
- * retryCount: 3,
44
- * timeout: '30s',
45
- * }, 'read_file');
46
- * ```
47
- */
48
10
  export declare function wrapToolAsDurableStep(tool: Tool, config?: DurabilityConfig, toolName?: string): Tool;
49
- /**
50
- * Wrap all tools in a set with durability directives.
51
- * Each tool gets a step name based on its key in the record.
52
- *
53
- * @param tools - Record of tools to wrap
54
- * @param config - Durability configuration applied to all tools
55
- * @returns Record of wrapped tools
56
- *
57
- * @example
58
- * ```typescript
59
- * const durableTools = wrapToolsAsDurable(myTools, {
60
- * retryCount: 3,
61
- * timeout: '5m',
62
- * });
63
- * ```
64
- */
65
11
  export declare function wrapToolsAsDurable(tools: ToolSet, config?: DurabilityConfig): ToolSet;
66
- /**
67
- * Wrap only specified tools with durability, leaving others unchanged.
68
- *
69
- * @param tools - All tools
70
- * @param toolNames - Names of tools to wrap
71
- * @param config - Durability configuration
72
- * @returns Tools with selective durability applied
73
- */
74
12
  export declare function wrapSelectedToolsAsDurable(tools: ToolSet, toolNames: string[], config?: DurabilityConfig): ToolSet;
75
- /**
76
- * Wrap a tool as an independent durable step.
77
- *
78
- * Independent steps can be executed in parallel with other independent steps.
79
- * The workflow runtime optimizes by running these concurrently.
80
- *
81
- * @param tool - The tool to wrap
82
- * @param toolName - Name of the tool (used for step naming)
83
- * @returns Wrapped tool marked as independent
84
- */
85
13
  export declare function wrapToolAsIndependentStep(tool: Tool, toolName?: string): Tool;
86
- /**
87
- * Symbol for storing durability metadata on tools.
88
- */
89
14
  export declare const DURABILITY_CONFIG: unique symbol;
90
- /**
91
- * Get durability configuration from a tool (if set).
92
- */
93
15
  export declare function getDurabilityConfig(tool: Tool): DurabilityConfig | undefined;
94
- /**
95
- * Set durability configuration on a tool.
96
- */
97
16
  export declare function setDurabilityConfig(tool: Tool, config: DurabilityConfig): Tool;
98
- /**
99
- * Get the step name assigned to a durable tool.
100
- */
101
17
  export declare function getStepName(tool: Tool): string | undefined;
102
18
  export {};
103
19
  //# sourceMappingURL=durable-tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"durable-tool.d.ts","sourceRoot":"","sources":["../../src/workflow/durable-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAS/B,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAEpC,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,EACV,MAAM,GAAE,gBAAqB,EAC7B,QAAQ,CAAC,EAAE,MAAM,GAChB,IAAI,CAgDN;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,MAAM,GAAE,gBAAqB,GAC5B,OAAO,CAST;AAMD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,EAAE,EACnB,MAAM,GAAE,gBAAqB,GAC5B,OAAO,CAaT;AAMD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAE7E;AAMD;;GAEG;AACH,eAAO,MAAM,iBAAiB,eAA6B,CAAC;AAE5D;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,gBAAgB,GAAG,SAAS,CAG5E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAI9E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAE1D"}
1
+ {"version":3,"file":"durable-tool.d.ts","sourceRoot":"","sources":["../../src/workflow/durable-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAK/B,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAEpC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,EACV,MAAM,GAAE,gBAAqB,EAC7B,QAAQ,CAAC,EAAE,MAAM,GAChB,IAAI,CA4CN;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,GAAE,gBAAqB,GAAG,OAAO,CAMzF;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,EAAE,EACnB,MAAM,GAAE,gBAAqB,GAC5B,OAAO,CAaT;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAE7E;AAED,eAAO,MAAM,iBAAiB,eAA6B,CAAC;AAE5D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,gBAAgB,GAAG,SAAS,CAG5E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAI9E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAE1D"}
@@ -1,41 +1,5 @@
1
- /**
2
- * @agntk/core - Durable Tool Wrapper
3
- *
4
- * Wraps tools with durability directives for crash recovery.
5
- * Uses the Workflow DevKit's "use step" directive to checkpoint tool executions.
6
- * Each tool step gets a descriptive name for observability in the workflow inspector.
7
- *
8
- * @see https://useworkflow.dev
9
- */
10
1
  import { createLogger } from '@agntk/logger';
11
2
  const log = createLogger('@agntk/core:workflow:tool');
12
- // ============================================================================
13
- // Single Tool Wrapper
14
- // ============================================================================
15
- /**
16
- * Wrap a single tool with durability directives.
17
- *
18
- * When wrapped, the tool's execute function uses the "use step" directive
19
- * to create a checkpoint. If the process crashes, the workflow runtime
20
- * resumes from the last checkpoint.
21
- *
22
- * Each wrapped tool gets a descriptive step name for the workflow inspector:
23
- * - Default: "tool-exec-{toolName}"
24
- * - Custom via `config.stepName`
25
- *
26
- * @param tool - The tool to wrap
27
- * @param config - Durability configuration
28
- * @param toolName - Name of the tool (used for step naming)
29
- * @returns Wrapped tool with durability enabled
30
- *
31
- * @example
32
- * ```typescript
33
- * const durableReadFile = wrapToolAsDurableStep(readFileTool, {
34
- * retryCount: 3,
35
- * timeout: '30s',
36
- * }, 'read_file');
37
- * ```
38
- */
39
3
  export function wrapToolAsDurableStep(tool, config = {}, toolName) {
40
4
  const { enabled = true } = config;
41
5
  if (!enabled) {
@@ -51,10 +15,7 @@ export function wrapToolAsDurableStep(tool, config = {}, toolName) {
51
15
  ...tool,
52
16
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
17
  execute: async (input, options) => {
54
- // The "use step" directive tells the workflow runtime to checkpoint here.
55
- // When the workflow resumes after a crash, it skips to this point
56
- // and returns the cached result instead of re-executing.
57
- "use step";
18
+ 'use step';
58
19
  log.debug(`Executing durable step: ${stepName}`, {
59
20
  stepName,
60
21
  retryCount: config.retryCount,
@@ -69,52 +30,17 @@ export function wrapToolAsDurableStep(tool, config = {}, toolName) {
69
30
  log.error(`Durable step failed: ${stepName}`, {
70
31
  error: error instanceof Error ? error.message : String(error),
71
32
  });
72
- // Re-throw to let the workflow runtime handle retries
73
33
  throw error;
74
34
  }
75
35
  },
76
36
  };
77
- // Store step name and config as metadata
78
37
  setDurabilityConfig(wrappedTool, { ...config, stepName });
79
38
  return wrappedTool;
80
39
  }
81
- // ============================================================================
82
- // Batch Tool Wrapper
83
- // ============================================================================
84
- /**
85
- * Wrap all tools in a set with durability directives.
86
- * Each tool gets a step name based on its key in the record.
87
- *
88
- * @param tools - Record of tools to wrap
89
- * @param config - Durability configuration applied to all tools
90
- * @returns Record of wrapped tools
91
- *
92
- * @example
93
- * ```typescript
94
- * const durableTools = wrapToolsAsDurable(myTools, {
95
- * retryCount: 3,
96
- * timeout: '5m',
97
- * });
98
- * ```
99
- */
100
40
  export function wrapToolsAsDurable(tools, config = {}) {
101
41
  log.debug('Wrapping all tools as durable', { count: Object.keys(tools).length });
102
- return Object.fromEntries(Object.entries(tools).map(([name, tool]) => [
103
- name,
104
- wrapToolAsDurableStep(tool, config, name),
105
- ]));
42
+ return Object.fromEntries(Object.entries(tools).map(([name, tool]) => [name, wrapToolAsDurableStep(tool, config, name)]));
106
43
  }
107
- // ============================================================================
108
- // Selective Wrapping
109
- // ============================================================================
110
- /**
111
- * Wrap only specified tools with durability, leaving others unchanged.
112
- *
113
- * @param tools - All tools
114
- * @param toolNames - Names of tools to wrap
115
- * @param config - Durability configuration
116
- * @returns Tools with selective durability applied
117
- */
118
44
  export function wrapSelectedToolsAsDurable(tools, toolNames, config = {}) {
119
45
  const nameSet = new Set(toolNames);
120
46
  log.debug('Selectively wrapping tools as durable', {
@@ -126,47 +52,19 @@ export function wrapSelectedToolsAsDurable(tools, toolNames, config = {}) {
126
52
  nameSet.has(name) ? wrapToolAsDurableStep(tool, config, name) : tool,
127
53
  ]));
128
54
  }
129
- // ============================================================================
130
- // Independent Step Wrapper
131
- // ============================================================================
132
- /**
133
- * Wrap a tool as an independent durable step.
134
- *
135
- * Independent steps can be executed in parallel with other independent steps.
136
- * The workflow runtime optimizes by running these concurrently.
137
- *
138
- * @param tool - The tool to wrap
139
- * @param toolName - Name of the tool (used for step naming)
140
- * @returns Wrapped tool marked as independent
141
- */
142
55
  export function wrapToolAsIndependentStep(tool, toolName) {
143
56
  return wrapToolAsDurableStep(tool, { independent: true }, toolName);
144
57
  }
145
- // ============================================================================
146
- // Durability Metadata
147
- // ============================================================================
148
- /**
149
- * Symbol for storing durability metadata on tools.
150
- */
151
58
  export const DURABILITY_CONFIG = Symbol('durabilityConfig');
152
- /**
153
- * Get durability configuration from a tool (if set).
154
- */
155
59
  export function getDurabilityConfig(tool) {
156
60
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
157
61
  return tool[DURABILITY_CONFIG];
158
62
  }
159
- /**
160
- * Set durability configuration on a tool.
161
- */
162
63
  export function setDurabilityConfig(tool, config) {
163
64
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
164
65
  tool[DURABILITY_CONFIG] = config;
165
66
  return tool;
166
67
  }
167
- /**
168
- * Get the step name assigned to a durable tool.
169
- */
170
68
  export function getStepName(tool) {
171
69
  return getDurabilityConfig(tool)?.stepName;
172
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"durable-tool.js","sourceRoot":"","sources":["../../src/workflow/durable-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"durable-tool.js","sourceRoot":"","sources":["../../src/workflow/durable-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,GAAG,GAAG,YAAY,CAAC,2BAA2B,CAAC,CAAC;AAgBtD,MAAM,UAAU,qBAAqB,CACnC,IAAU,EACV,SAA2B,EAAE,EAC7B,QAAiB;IAEjB,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAElC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8DAA8D;IAC9D,MAAM,eAAe,GAAI,IAAY,CAAC,OAAO,CAAC;IAC9C,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAEvF,MAAM,WAAW,GAAG;QAClB,GAAG,IAAI;QACP,8DAA8D;QAC9D,OAAO,EAAE,KAAK,EAAE,KAAU,EAAE,OAAY,EAAE,EAAE;YAC1C,UAAU,CAAC;YAEX,GAAG,CAAC,KAAK,CAAC,2BAA2B,QAAQ,EAAE,EAAE;gBAC/C,QAAQ;gBACR,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC,CAAC;YAEH,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACrD,GAAG,CAAC,KAAK,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;gBACjD,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,KAAK,CAAC,wBAAwB,QAAQ,EAAE,EAAE;oBAC5C,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;gBAEH,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KACM,CAAC;IAEV,mBAAmB,CAAC,WAAW,EAAE,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE1D,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc,EAAE,SAA2B,EAAE;IAC9E,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAEjF,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAC/F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,KAAc,EACd,SAAmB,EACnB,SAA2B,EAAE;IAE7B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACnC,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE;QACjD,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM;QAChC,QAAQ,EAAE,SAAS;KACpB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI;QACJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;KACrE,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAU,EAAE,QAAiB;IACrE,OAAO,qBAAqB,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAE5D,MAAM,UAAU,mBAAmB,CAAC,IAAU;IAC5C,8DAA8D;IAC9D,OAAQ,IAAY,CAAC,iBAAiB,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAU,EAAE,MAAwB;IACtE,8DAA8D;IAC7D,IAAY,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC;IAC1C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAU;IACpC,OAAO,mBAAmB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;AAC7C,CAAC"}