@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
@@ -0,0 +1,201 @@
1
+ /**
2
+ * @agntk/core - Transient Streaming Infrastructure
3
+ *
4
+ * Enables tools to stream data to the UI without persisting to conversation context.
5
+ * This keeps the context window lean while providing rich UI feedback.
6
+ */
7
+ import { createLogger } from '@agntk/logger';
8
+ const log = createLogger('@agntk/core:streaming');
9
+ // ============================================================================
10
+ // Main API: withTransientStreaming
11
+ // ============================================================================
12
+ /**
13
+ * Wrap tools to enable transient streaming.
14
+ *
15
+ * Tools wrapped with this function will have access to a `stream()` helper
16
+ * in their context that allows streaming data to the UI without adding
17
+ * it to the conversation context.
18
+ *
19
+ * @param tools - Record of tools to wrap
20
+ * @param writer - Stream writer for sending data to the client
21
+ * @returns Wrapped tools with transient streaming enabled
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const wrappedTools = withTransientStreaming(myTools, dataStream);
26
+ *
27
+ * // Inside a tool's execute function:
28
+ * execute: async (input, ctx) => {
29
+ * ctx.stream('file-content', {
30
+ * path: input.path,
31
+ * content: fileContent,
32
+ * truncated: false,
33
+ * });
34
+ * return `Read ${input.path}`;
35
+ * }
36
+ * ```
37
+ */
38
+ export function withTransientStreaming(tools, writer) {
39
+ const wrappedTools = {};
40
+ for (const [name, tool] of Object.entries(tools)) {
41
+ wrappedTools[name] = wrapToolWithTransient(tool, writer, name);
42
+ }
43
+ return wrappedTools;
44
+ }
45
+ // ============================================================================
46
+ // Tool Wrapping
47
+ // ============================================================================
48
+ /**
49
+ * Wrap a single tool with transient streaming capabilities.
50
+ */
51
+ function wrapToolWithTransient(tool, writer, toolName) {
52
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
+ const originalExecute = tool.execute;
54
+ if (!originalExecute) {
55
+ return tool;
56
+ }
57
+ return {
58
+ ...tool,
59
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
60
+ execute: async (input, options) => {
61
+ // Create enhanced context with streaming helper
62
+ const enhancedContext = {
63
+ ...(options || {}),
64
+ agentId: options?.agentId || 'unknown',
65
+ stepNumber: options?.stepNumber || 0,
66
+ writer,
67
+ stream: (type, data) => {
68
+ writeTransient(writer, type, data);
69
+ },
70
+ };
71
+ return originalExecute(input, enhancedContext);
72
+ },
73
+ };
74
+ }
75
+ // ============================================================================
76
+ // Transient Data Writers
77
+ // ============================================================================
78
+ /**
79
+ * Stream typed transient data to the UI.
80
+ *
81
+ * @param writer - Stream writer instance
82
+ * @param type - Data part type
83
+ * @param data - Data to stream
84
+ */
85
+ export function writeTransient(writer, type, data) {
86
+ const dataPart = {
87
+ type,
88
+ data,
89
+ };
90
+ writer.writeData({
91
+ ...dataPart,
92
+ transient: true,
93
+ });
94
+ }
95
+ /**
96
+ * Helper for tools to stream transient data from within their execute function.
97
+ *
98
+ * @param ctx - Tool context (must have writer)
99
+ * @param type - Data part type
100
+ * @param data - Data to stream
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * // Inside a tool's execute function:
105
+ * streamTransient(ctx, 'shell-output', {
106
+ * command: 'npm test',
107
+ * output: result.stdout,
108
+ * exitCode: result.code,
109
+ * });
110
+ * ```
111
+ */
112
+ export function streamTransient(ctx, type, data) {
113
+ // Cast to TransientStreamWriter - they have compatible interfaces
114
+ const writer = ctx.writer;
115
+ if (writer) {
116
+ writeTransient(writer, type, data);
117
+ }
118
+ }
119
+ // ============================================================================
120
+ // Specialized Streamers
121
+ // ============================================================================
122
+ /**
123
+ * Stream file content transiently.
124
+ */
125
+ export function streamFileContent(ctx, path, content, options = {}) {
126
+ streamTransient(ctx, 'file-content', {
127
+ path,
128
+ content,
129
+ truncated: options.truncated ?? false,
130
+ totalBytes: options.totalBytes,
131
+ language: options.language,
132
+ lineRange: options.lineRange,
133
+ });
134
+ }
135
+ /**
136
+ * Stream shell output transiently.
137
+ */
138
+ export function streamShellOutput(ctx, command, output, exitCode, options = {}) {
139
+ streamTransient(ctx, 'shell-output', {
140
+ command,
141
+ output,
142
+ exitCode,
143
+ cwd: options.cwd,
144
+ truncated: options.truncated,
145
+ durationMs: options.durationMs,
146
+ });
147
+ }
148
+ /**
149
+ * Stream search results transiently.
150
+ */
151
+ export function streamSearchResult(ctx, path, content, matches, options = {}) {
152
+ streamTransient(ctx, 'search-result', {
153
+ path,
154
+ content,
155
+ matches,
156
+ line: options.line,
157
+ pattern: options.pattern,
158
+ });
159
+ }
160
+ /**
161
+ * Stream tool progress update transiently.
162
+ */
163
+ export function streamProgress(ctx, toolName, progress, message, options = {}) {
164
+ streamTransient(ctx, 'tool-progress', {
165
+ toolName,
166
+ progress,
167
+ message,
168
+ estimatedRemaining: options.estimatedRemaining,
169
+ step: options.step,
170
+ });
171
+ }
172
+ /**
173
+ * Stream reasoning step transiently.
174
+ *
175
+ * @internal Forward-designed for CLI streaming feature. No production callers yet.
176
+ */
177
+ export function streamReasoningStep(ctx, stepNumber, totalSteps, thought, options = {}) {
178
+ streamTransient(ctx, 'reasoning-step', {
179
+ stepNumber,
180
+ totalSteps,
181
+ thought,
182
+ isRevision: options.isRevision,
183
+ revisesThought: options.revisesThought,
184
+ branchId: options.branchId,
185
+ });
186
+ }
187
+ /**
188
+ * Stream sub-agent output transiently.
189
+ *
190
+ * @internal Forward-designed for CLI streaming feature. No production callers yet.
191
+ */
192
+ export function streamSubAgent(ctx, agentId, role, text, status, error) {
193
+ streamTransient(ctx, 'sub-agent-stream', {
194
+ agentId,
195
+ role,
196
+ text,
197
+ status,
198
+ error,
199
+ });
200
+ }
201
+ //# sourceMappingURL=transient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transient.js","sourceRoot":"","sources":["../../src/streaming/transient.ts"],"names":[],"mappings":"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"}
@@ -1,81 +1,24 @@
1
- /**
2
- * @fileoverview System hardware detection for automatic Ollama model selection.
3
- *
4
- * Detects available RAM/VRAM and selects the best model the system can
5
- * comfortably run. Falls back conservatively — better to run a smaller
6
- * model fast than a larger model that swaps to disk.
7
- *
8
- * Supports both local models and Ollama cloud models (-cloud suffix).
9
- * Cloud models are always preferred when available since they run on
10
- * remote infrastructure regardless of local hardware.
11
- *
12
- * Memory thresholds (Q4_K_M quantization, local models):
13
- * qwen3:8b ~5-6 GB → needs ≥8 GB total RAM
14
- * qwen3-coder:30b ~17 GB → needs ≥24 GB total RAM (MoE, fast inference)
15
- * qwen3.5:35b ~20 GB → needs ≥32 GB total RAM
16
- */
17
1
  export interface SystemProfile {
18
- /** Total system RAM in GB */
19
2
  totalRAMGb: number;
20
- /** Usable memory for models in GB (accounts for OS overhead + GPU sharing) */
21
3
  usableForModelsGb: number;
22
- /** Platform: darwin, linux, win32 */
23
4
  platform: string;
24
- /** Whether this is Apple Silicon (unified memory architecture) */
25
5
  isAppleSilicon: boolean;
26
- /** NVIDIA VRAM in GB, if detected */
27
6
  nvidiaVRAMGb: number | null;
28
7
  }
29
8
  export type OllamaModelTier = 'small' | 'medium' | 'large';
30
9
  export interface OllamaModelRecommendation {
31
- /** Recommended tier */
32
10
  tier: OllamaModelTier;
33
- /** Model tag to pull/use for each agent tier */
34
11
  fast: string;
35
12
  standard: string;
36
13
  reasoning: string;
37
14
  powerful: string;
38
- /** Human-readable reason */
39
15
  reason: string;
40
- /** True when installed models exist but none are usable (all < 8b, no cloud) */
41
16
  noUsableModels?: boolean;
42
17
  }
43
- /** Cloud models run on remote infrastructure — always usable regardless of local hardware. */
44
18
  export declare function isCloudModel(tag: string): boolean;
45
- /**
46
- * Check if a model is large enough for reliable agent tool-calling.
47
- * Models need >= 8b parameters. Cloud models are always usable.
48
- * Unknown sizes (e.g. "deepseek-coder:latest") are assumed usable.
49
- */
50
19
  export declare function isUsableSize(tag: string): boolean;
51
- /**
52
- * Detect system hardware profile.
53
- */
54
20
  export declare function detectSystem(): SystemProfile;
55
- /**
56
- * Select the best Ollama model tier based on system capabilities
57
- * and (optionally) which models are actually installed.
58
- *
59
- * When installedModels is provided, the recommendation is constrained
60
- * to models the user already has pulled — the best available model is
61
- * used for every tier rather than recommending something that would 404.
62
- *
63
- * If only sub-8b models are installed (and no cloud models), sets
64
- * `noUsableModels: true` so the caller can skip Ollama entirely.
65
- *
66
- * Hardware thresholds (usable memory for model weights):
67
- * < 6 GB → too small, warn user
68
- * 6-10 GB → small (qwen3:8b everywhere)
69
- * 10-20 GB → medium (qwen3-coder:30b for standard+)
70
- * 20+ GB → large (qwen3.5:35b for reasoning/powerful)
71
- */
72
21
  export declare function recommendOllamaModels(profile?: SystemProfile, installedModels?: string[]): OllamaModelRecommendation;
73
- /**
74
- * Check which models Ollama already has pulled.
75
- */
76
22
  export declare function getOllamaModels(baseUrl?: string): Promise<string[]>;
77
- /**
78
- * Check if a specific model is available in Ollama.
79
- */
80
23
  export declare function hasOllamaModel(model: string, baseUrl?: string): Promise<boolean>;
81
24
  //# sourceMappingURL=system-detect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"system-detect.d.ts","sourceRoot":"","sources":["../src/system-detect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAYH,MAAM,WAAW,aAAa;IAC5B,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,cAAc,EAAE,OAAO,CAAC;IACxB,qCAAqC;IACrC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,yBAAyB;IACxC,uBAAuB;IACvB,IAAI,EAAE,eAAe,CAAC;IACtB,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAMD,8FAA8F;AAC9F,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGjD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMjD;AA2FD;;GAEG;AACH,wBAAgB,YAAY,IAAI,aAAa,CAuC5C;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,CAAC,EAAE,aAAa,EACvB,eAAe,CAAC,EAAE,MAAM,EAAE,GACzB,yBAAyB,CA4E3B;AAiCD;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAqBzE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAKtF"}
1
+ {"version":3,"file":"system-detect.d.ts","sourceRoot":"","sources":["../src/system-detect.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IAEnB,iBAAiB,EAAE,MAAM,CAAC;IAE1B,QAAQ,EAAE,MAAM,CAAC;IAEjB,cAAc,EAAE,OAAO,CAAC;IAExB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,eAAe,CAAC;IAEtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,EAAE,MAAM,CAAC;IAEf,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGjD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMjD;AAuED,wBAAgB,YAAY,IAAI,aAAa,CA6B5C;AAED,wBAAgB,qBAAqB,CACnC,OAAO,CAAC,EAAE,aAAa,EACvB,eAAe,CAAC,EAAE,MAAM,EAAE,GACzB,yBAAyB,CAoE3B;AAkBD,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAqBzE;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAKtF"}
@@ -1,48 +1,19 @@
1
- /**
2
- * @fileoverview System hardware detection for automatic Ollama model selection.
3
- *
4
- * Detects available RAM/VRAM and selects the best model the system can
5
- * comfortably run. Falls back conservatively — better to run a smaller
6
- * model fast than a larger model that swaps to disk.
7
- *
8
- * Supports both local models and Ollama cloud models (-cloud suffix).
9
- * Cloud models are always preferred when available since they run on
10
- * remote infrastructure regardless of local hardware.
11
- *
12
- * Memory thresholds (Q4_K_M quantization, local models):
13
- * qwen3:8b ~5-6 GB → needs ≥8 GB total RAM
14
- * qwen3-coder:30b ~17 GB → needs ≥24 GB total RAM (MoE, fast inference)
15
- * qwen3.5:35b ~20 GB → needs ≥32 GB total RAM
16
- */
17
1
  import { createLogger } from '@agntk/logger';
18
2
  import os from 'node:os';
19
3
  import { execSync } from 'node:child_process';
20
4
  const log = createLogger('@agntk/core:system-detect');
21
- // ============================================================================
22
- // Model Classification
23
- // ============================================================================
24
- /** Cloud models run on remote infrastructure — always usable regardless of local hardware. */
25
5
  export function isCloudModel(tag) {
26
6
  const lower = tag.toLowerCase();
27
7
  return lower.includes('-cloud') || lower.endsWith(':cloud');
28
8
  }
29
- /**
30
- * Check if a model is large enough for reliable agent tool-calling.
31
- * Models need >= 8b parameters. Cloud models are always usable.
32
- * Unknown sizes (e.g. "deepseek-coder:latest") are assumed usable.
33
- */
34
9
  export function isUsableSize(tag) {
35
10
  if (isCloudModel(tag))
36
11
  return true;
37
- // Parse size from tags like "qwen3:14b", "llama3.1:70b", "qwen3-coder:30b"
38
12
  const match = tag.match(/(\d+(?:\.\d+)?)b/i);
39
13
  if (!match)
40
- return true; // unknown size → assume usable
14
+ return true;
41
15
  return parseFloat(match[1]) >= 8;
42
16
  }
43
- // ============================================================================
44
- // Model Tier Definitions
45
- // ============================================================================
46
17
  const MODEL_TIERS = {
47
18
  small: {
48
19
  tier: 'small',
@@ -66,17 +37,11 @@ const MODEL_TIERS = {
66
37
  powerful: 'qwen3.5:35b',
67
38
  },
68
39
  };
69
- /**
70
- * Preferred models ordered from best to least preferred.
71
- * Cloud models first (run on remote infra), then best local models.
72
- */
73
40
  const MODEL_PREFERENCE = [
74
- // Cloud (always top priority)
75
41
  'qwen3-coder:480b-cloud',
76
42
  'qwen3.5:cloud',
77
43
  'qwen3.5:397b-cloud',
78
44
  'gpt-oss:120b-cloud',
79
- // Local (newest/best first)
80
45
  'qwen3-coder:30b',
81
46
  'qwen3.5:35b',
82
47
  'qwen3.5:27b',
@@ -84,12 +49,6 @@ const MODEL_PREFERENCE = [
84
49
  'qwen3:14b',
85
50
  'qwen3:8b',
86
51
  ];
87
- // ============================================================================
88
- // System Detection
89
- // ============================================================================
90
- /**
91
- * Detect whether this is an Apple Silicon Mac.
92
- */
93
52
  function detectAppleSilicon() {
94
53
  if (os.platform() !== 'darwin')
95
54
  return false;
@@ -101,21 +60,19 @@ function detectAppleSilicon() {
101
60
  return brand.includes('Apple');
102
61
  }
103
62
  catch {
104
- // Fallback: check arch
105
63
  return os.arch() === 'arm64';
106
64
  }
107
65
  }
108
- /**
109
- * Try to detect NVIDIA GPU VRAM via nvidia-smi.
110
- * Returns VRAM in GB or null if no NVIDIA GPU / nvidia-smi not found.
111
- */
112
66
  function detectNvidiaVRAM() {
113
67
  try {
114
- const output = execSync('nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits', { encoding: 'utf-8', timeout: 3000, stdio: ['pipe', 'pipe', 'pipe'] }).trim();
115
- // nvidia-smi returns MB, could have multiple GPUs — take the first
68
+ const output = execSync('nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits', {
69
+ encoding: 'utf-8',
70
+ timeout: 3000,
71
+ stdio: ['pipe', 'pipe', 'pipe'],
72
+ }).trim();
116
73
  const mb = parseInt(output.split('\n')[0], 10);
117
74
  if (!isNaN(mb) && mb > 0) {
118
- return Math.round(mb / 1024 * 10) / 10; // GB with 1 decimal
75
+ return Math.round((mb / 1024) * 10) / 10;
119
76
  }
120
77
  return null;
121
78
  }
@@ -123,33 +80,20 @@ function detectNvidiaVRAM() {
123
80
  return null;
124
81
  }
125
82
  }
126
- /**
127
- * Detect system hardware profile.
128
- */
129
83
  export function detectSystem() {
130
84
  const totalBytes = os.totalmem();
131
- const totalRAMGb = Math.round(totalBytes / (1024 ** 3) * 10) / 10;
85
+ const totalRAMGb = Math.round((totalBytes / 1024 ** 3) * 10) / 10;
132
86
  const platform = os.platform();
133
87
  const isAppleSilicon = detectAppleSilicon();
134
88
  const nvidiaVRAMGb = detectNvidiaVRAM();
135
- // Calculate usable memory for models:
136
- // - Reserve ~3 GB for OS + Ollama server overhead
137
- // - On Apple Silicon: GPU gets ~75% of unified memory, but we're more conservative
138
- // - On NVIDIA: model loads into VRAM, which is separate from system RAM
139
89
  let usableForModelsGb;
140
90
  if (nvidiaVRAMGb !== null) {
141
- // NVIDIA GPU: model goes into VRAM. Use that as the constraint.
142
- usableForModelsGb = nvidiaVRAMGb - 1; // reserve 1 GB for GPU driver/overhead
91
+ usableForModelsGb = nvidiaVRAMGb - 1;
143
92
  }
144
93
  else if (isAppleSilicon) {
145
- // Apple Silicon: unified memory shared between CPU and GPU.
146
- // Ollama uses Metal — model sits in unified memory.
147
- // Reserve ~25% for OS + apps + KV cache growth.
148
94
  usableForModelsGb = totalRAMGb * 0.65;
149
95
  }
150
96
  else {
151
- // CPU-only inference: slower but uses system RAM.
152
- // Reserve 3 GB for OS overhead.
153
97
  usableForModelsGb = totalRAMGb - 3;
154
98
  }
155
99
  usableForModelsGb = Math.max(0, usableForModelsGb);
@@ -163,30 +107,9 @@ export function detectSystem() {
163
107
  log.debug('System profile', { ...profile });
164
108
  return profile;
165
109
  }
166
- // ============================================================================
167
- // Model Recommendation
168
- // ============================================================================
169
- /**
170
- * Select the best Ollama model tier based on system capabilities
171
- * and (optionally) which models are actually installed.
172
- *
173
- * When installedModels is provided, the recommendation is constrained
174
- * to models the user already has pulled — the best available model is
175
- * used for every tier rather than recommending something that would 404.
176
- *
177
- * If only sub-8b models are installed (and no cloud models), sets
178
- * `noUsableModels: true` so the caller can skip Ollama entirely.
179
- *
180
- * Hardware thresholds (usable memory for model weights):
181
- * < 6 GB → too small, warn user
182
- * 6-10 GB → small (qwen3:8b everywhere)
183
- * 10-20 GB → medium (qwen3-coder:30b for standard+)
184
- * 20+ GB → large (qwen3.5:35b for reasoning/powerful)
185
- */
186
110
  export function recommendOllamaModels(profile, installedModels) {
187
111
  const sys = profile || detectSystem();
188
112
  const mem = sys.usableForModelsGb;
189
- // Determine the hardware-ideal tier
190
113
  let ideal;
191
114
  if (mem < 4) {
192
115
  log.warn('Very limited memory for local models', { usableGb: mem });
@@ -213,15 +136,12 @@ export function recommendOllamaModels(profile, installedModels) {
213
136
  reason: `${sys.totalRAMGb} GB RAM → qwen3.5:35b for reasoning/powerful, qwen3-coder:30b for standard`,
214
137
  };
215
138
  }
216
- // If we don't know what's installed, return the hardware-ideal recommendation
217
139
  if (!installedModels || installedModels.length === 0) {
218
140
  return ideal;
219
141
  }
220
- // Constrain to what's actually pulled — pick the best available model
221
142
  const installed = new Set(installedModels.map((m) => m.toLowerCase()));
222
143
  const bestAvailable = pickBestAvailable(installed);
223
144
  if (!bestAvailable) {
224
- // No usable models installed (all sub-8b, no cloud)
225
145
  log.info('No usable models installed', { installed: [...installed] });
226
146
  return {
227
147
  ...ideal,
@@ -229,9 +149,6 @@ export function recommendOllamaModels(profile, installedModels) {
229
149
  reason: 'No usable models found (need 8b+ local or cloud model)',
230
150
  };
231
151
  }
232
- // Clamp each tier to what's installed.
233
- // Cloud models always win over local — they run on remote infrastructure
234
- // so they're faster and more capable regardless of local hardware.
235
152
  const bestIsCloud = isCloudModel(bestAvailable);
236
153
  const clamp = (model) => {
237
154
  if (bestIsCloud)
@@ -250,41 +167,23 @@ export function recommendOllamaModels(profile, installedModels) {
250
167
  powerful: clamp(ideal.powerful),
251
168
  reason: '',
252
169
  };
253
- // Build reason showing what standard tier will actually use
254
170
  const unique = [...new Set([result.fast, result.standard, result.reasoning, result.powerful])];
255
171
  result.reason = `${sys.totalRAMGb} GB RAM → ${unique.join(', ')}`;
256
172
  return result;
257
173
  }
258
- /**
259
- * Pick the best usable model from what's installed.
260
- *
261
- * Priority:
262
- * 1. Preferred models in order (cloud first, then best local)
263
- * 2. Any other installed model that passes isUsableSize()
264
- * 3. null if nothing qualifies
265
- */
266
174
  function pickBestAvailable(installed) {
267
- // Check preferred models in order
268
175
  for (const model of MODEL_PREFERENCE) {
269
176
  if (installed.has(model) || [...installed].some((m) => m.startsWith(model))) {
270
177
  return model;
271
178
  }
272
179
  }
273
- // Check for any other usable model (non-qwen, non-preferred but >= 8b or cloud)
274
180
  for (const model of installed) {
275
181
  if (isUsableSize(model)) {
276
182
  return model;
277
183
  }
278
184
  }
279
- // Nothing qualifies
280
185
  return null;
281
186
  }
282
- // ============================================================================
283
- // Ollama Model Availability
284
- // ============================================================================
285
- /**
286
- * Check which models Ollama already has pulled.
287
- */
288
187
  export async function getOllamaModels(baseUrl) {
289
188
  const rawUrl = baseUrl || process.env['OLLAMA_BASE_URL'] || 'http://localhost:11434';
290
189
  const url = rawUrl.replace(/\/(api|v1)\/?$/, '');
@@ -306,12 +205,8 @@ export async function getOllamaModels(baseUrl) {
306
205
  return [];
307
206
  }
308
207
  }
309
- /**
310
- * Check if a specific model is available in Ollama.
311
- */
312
208
  export async function hasOllamaModel(model, baseUrl) {
313
209
  const models = await getOllamaModels(baseUrl);
314
- // Normalize: "qwen3:8b" should match "qwen3:8b" and "qwen3:8b-q4_K_M"
315
210
  const normalized = model.toLowerCase();
316
211
  return models.some((m) => m.toLowerCase().startsWith(normalized));
317
212
  }
@@ -1 +1 @@
1
- {"version":3,"file":"system-detect.js","sourceRoot":"","sources":["../src/system-detect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system-detect.js","sourceRoot":"","sources":["../src/system-detect.ts"],"names":[],"mappings":"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"}
@@ -1,67 +1,20 @@
1
- /**
2
- * @agntk/core - Tool Approval System
3
- *
4
- * Wraps tools with AI SDK's native `needsApproval` flag for human-in-the-loop
5
- * safety. When `approval: true` is set on the agent, dangerous tools
6
- * (shell, browser, file_write, file_edit) automatically require approval.
7
- *
8
- * Supports:
9
- * - Auto-flagging dangerous tools
10
- * - Typed approval payloads via Zod schemas
11
- * - Timeout with default values (approve/deny after N ms)
12
- * - Custom approval handlers
13
- */
14
1
  import type { Tool, ToolSet } from 'ai';
15
- /** Configuration for the approval system. */
16
2
  export interface ApprovalConfig {
17
- /** Enable approval for dangerous tools. Default: false */
18
3
  enabled: boolean;
19
- /** Tool names that require approval. If not set, uses DANGEROUS_TOOLS. */
20
4
  tools?: string[];
21
- /** Default timeout in ms before auto-resolution. Default: none (wait forever) */
22
5
  timeout?: number;
23
- /** Default action when timeout expires. Default: 'deny' */
24
6
  timeoutAction?: 'approve' | 'deny';
25
- /** Custom handler called when a tool needs approval.
26
- * Return true to approve, false to deny.
27
- * If not provided, uses the AI SDK's built-in approval mechanism. */
28
7
  handler?: ApprovalHandler;
29
8
  }
30
- /** Custom approval handler function. */
31
9
  export type ApprovalHandler = (request: ApprovalRequest) => Promise<boolean> | boolean;
32
- /** Details about a tool call requiring approval. */
33
10
  export interface ApprovalRequest {
34
11
  toolName: string;
35
12
  input: unknown;
36
13
  toolCallId: string;
37
14
  }
38
- /** Default set of tool names considered dangerous and requiring approval. */
39
15
  export declare const DANGEROUS_TOOLS: Set<string>;
40
- /**
41
- * Check if a tool name is considered dangerous.
42
- */
43
16
  export declare function isDangerousTool(toolName: string, customList?: string[]): boolean;
44
- /**
45
- * Wrap a single tool with `needsApproval`, applying timeout + default action
46
- * if configured.
47
- */
48
17
  export declare function wrapToolWithApproval<T extends Tool>(toolName: string, tool: T, config: ApprovalConfig): T;
49
- /**
50
- * Apply approval to all dangerous tools in a toolset.
51
- *
52
- * @example
53
- * ```typescript
54
- * const tools = createToolPreset('standard', { workspaceRoot });
55
- * const approvedTools = applyApproval(tools, { enabled: true });
56
- * ```
57
- */
58
18
  export declare function applyApproval(tools: ToolSet, config: ApprovalConfig): ToolSet;
59
- /**
60
- * Create an approval config from agent options shorthand.
61
- *
62
- * Supports:
63
- * - `approval: true` → enable with defaults
64
- * - `approval: { tools: [...], timeout: 30000 }` → custom config
65
- */
66
19
  export declare function resolveApprovalConfig(input: boolean | ApprovalConfig | undefined): ApprovalConfig | undefined;
67
20
  //# sourceMappingURL=approval.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"approval.d.ts","sourceRoot":"","sources":["../../src/tools/approval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AASxC,6CAA6C;AAC7C,MAAM,WAAW,cAAc;IAC7B,0DAA0D;IAC1D,OAAO,EAAE,OAAO,CAAC;IAEjB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAEnC;;yEAEqE;IACrE,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,wCAAwC;AACxC,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAEvF,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,6EAA6E;AAC7E,eAAO,MAAM,eAAe,aAM1B,CAAC;AAMH;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAKhF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,IAAI,EACjD,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,cAAc,GACrB,CAAC,CAoCH;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,cAAc,GACrB,OAAO,CAgBT;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,GAC1C,cAAc,GAAG,SAAS,CAI5B"}
1
+ {"version":3,"file":"approval.d.ts","sourceRoot":"","sources":["../../src/tools/approval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAKxC,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IAEjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,aAAa,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAEnC,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAEvF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,eAAe,aAM1B,CAAC;AAEH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAKhF;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,IAAI,EACjD,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,cAAc,GACrB,CAAC,CAiCH;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAgB7E;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,GAC1C,cAAc,GAAG,SAAS,CAI5B"}