@vinhnt-sdk/core 0.1.0 → 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 (334) hide show
  1. package/README.md +13 -20
  2. package/dist/agent/create-agent-tool.d.ts +1 -1
  3. package/dist/agent/create-agent-tool.d.ts.map +1 -1
  4. package/dist/agent/create-agent-tool.js +1 -1
  5. package/dist/agent/create-agent-tool.js.map +1 -1
  6. package/dist/agent/delegate-batch-tool.d.ts +1 -1
  7. package/dist/agent/delegate-batch-tool.d.ts.map +1 -1
  8. package/dist/agent/delegate-batch-tool.js +1 -1
  9. package/dist/agent/delegate-batch-tool.js.map +1 -1
  10. package/dist/agent/delegate-tool.d.ts +1 -1
  11. package/dist/agent/delegate-tool.js +1 -1
  12. package/dist/agent/delegate-tool.js.map +1 -1
  13. package/dist/agent/list-agents-tool.d.ts +1 -1
  14. package/dist/agent/list-agents-tool.d.ts.map +1 -1
  15. package/dist/agent/list-agents-tool.js +1 -1
  16. package/dist/agent/list-agents-tool.js.map +1 -1
  17. package/dist/agent/spawn-agent-tool.d.ts +1 -1
  18. package/dist/agent/spawn-agent-tool.d.ts.map +1 -1
  19. package/dist/agent/spawn-agent-tool.js +1 -1
  20. package/dist/agent/spawn-agent-tool.js.map +1 -1
  21. package/dist/event-bus/global-bus.d.ts +3 -1
  22. package/dist/event-bus/global-bus.d.ts.map +1 -1
  23. package/dist/event-bus/global-bus.js +7 -1
  24. package/dist/event-bus/global-bus.js.map +1 -1
  25. package/dist/event-bus/in-memory-bus.d.ts.map +1 -1
  26. package/dist/event-bus/in-memory-bus.js +10 -2
  27. package/dist/event-bus/in-memory-bus.js.map +1 -1
  28. package/dist/fakes/fake-model.d.ts +8 -0
  29. package/dist/fakes/fake-model.d.ts.map +1 -1
  30. package/dist/fakes/fake-model.js +8 -0
  31. package/dist/fakes/fake-model.js.map +1 -1
  32. package/dist/fakes/fake-tool-context.d.ts +1 -1
  33. package/dist/fakes/fake-tool-context.d.ts.map +1 -1
  34. package/dist/fakes/fake-tool.d.ts +1 -3
  35. package/dist/fakes/fake-tool.d.ts.map +1 -1
  36. package/dist/fakes/fake-tool.js.map +1 -1
  37. package/dist/index.d.ts +36 -32
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +19 -14
  40. package/dist/index.js.map +1 -1
  41. package/dist/kernel/approval-handler.d.ts +1 -1
  42. package/dist/kernel/approval-handler.d.ts.map +1 -1
  43. package/dist/kernel/kernel-types.d.ts +115 -17
  44. package/dist/kernel/kernel-types.d.ts.map +1 -1
  45. package/dist/kernel/kernel-types.js +64 -1
  46. package/dist/kernel/kernel-types.js.map +1 -1
  47. package/dist/kernel/kernel.d.ts +20 -3
  48. package/dist/kernel/kernel.d.ts.map +1 -1
  49. package/dist/kernel/kernel.js +108 -67
  50. package/dist/kernel/kernel.js.map +1 -1
  51. package/dist/kernel/lifecycle-manager.d.ts +28 -0
  52. package/dist/kernel/lifecycle-manager.d.ts.map +1 -0
  53. package/dist/kernel/lifecycle-manager.js +51 -0
  54. package/dist/kernel/lifecycle-manager.js.map +1 -0
  55. package/dist/kernel/model-caller.d.ts +1 -1
  56. package/dist/kernel/model-caller.d.ts.map +1 -1
  57. package/dist/kernel/permission-gate.d.ts +1 -2
  58. package/dist/kernel/permission-gate.d.ts.map +1 -1
  59. package/dist/kernel/permission-gate.js +1 -1
  60. package/dist/kernel/permission-gate.js.map +1 -1
  61. package/dist/kernel/run-loop.d.ts.map +1 -1
  62. package/dist/kernel/run-loop.js +15 -3
  63. package/dist/kernel/run-loop.js.map +1 -1
  64. package/dist/kernel/self-correction.d.ts +2 -2
  65. package/dist/kernel/self-correction.d.ts.map +1 -1
  66. package/dist/kernel/step-executor.d.ts +1 -2
  67. package/dist/kernel/step-executor.d.ts.map +1 -1
  68. package/dist/kernel/step-executor.js +5 -6
  69. package/dist/kernel/step-executor.js.map +1 -1
  70. package/dist/kernel/tool-context-builder.d.ts +1 -1
  71. package/dist/kernel/tool-context-builder.d.ts.map +1 -1
  72. package/dist/kernel/tool-error-router.d.ts +1 -1
  73. package/dist/kernel/tool-error-router.d.ts.map +1 -1
  74. package/dist/logger.js +1 -1
  75. package/dist/logger.js.map +1 -1
  76. package/dist/model.d.ts +7 -80
  77. package/dist/model.d.ts.map +1 -1
  78. package/dist/model.js.map +1 -1
  79. package/dist/plugin/manager.d.ts +2 -2
  80. package/dist/plugin/manager.d.ts.map +1 -1
  81. package/dist/plugin/plugin-tool-provider.d.ts +1 -3
  82. package/dist/plugin/plugin-tool-provider.d.ts.map +1 -1
  83. package/dist/plugin/plugin-tool-provider.js.map +1 -1
  84. package/dist/plugin.d.ts +2 -2
  85. package/dist/plugin.d.ts.map +1 -1
  86. package/dist/session/compaction.d.ts +5 -8
  87. package/dist/session/compaction.d.ts.map +1 -1
  88. package/dist/session/store.d.ts +5 -44
  89. package/dist/session/store.d.ts.map +1 -1
  90. package/dist/skill/create-skill-tool.d.ts +1 -1
  91. package/dist/skill/create-skill-tool.d.ts.map +1 -1
  92. package/dist/skill/create-skill-tool.js +1 -1
  93. package/dist/skill/create-skill-tool.js.map +1 -1
  94. package/dist/skill/skill-tool.d.ts +2 -2
  95. package/dist/skill/skill-tool.d.ts.map +1 -1
  96. package/dist/skill/skill-tool.js +1 -1
  97. package/dist/skill/skill-tool.js.map +1 -1
  98. package/dist/system-context/prompts/index.d.ts +57 -1
  99. package/dist/system-context/prompts/index.d.ts.map +1 -1
  100. package/dist/system-context/prompts/index.js +69 -13
  101. package/dist/system-context/prompts/index.js.map +1 -1
  102. package/dist/tool/bridge.d.ts +1 -1
  103. package/dist/tool/bridge.d.ts.map +1 -1
  104. package/dist/tool/index.d.ts +37 -42
  105. package/dist/tool/index.d.ts.map +1 -1
  106. package/dist/tool/index.js +25 -30
  107. package/dist/tool/index.js.map +1 -1
  108. package/dist/tool/provider-helpers.d.ts +2 -3
  109. package/dist/tool/provider-helpers.d.ts.map +1 -1
  110. package/dist/tool/provider-helpers.js +2 -3
  111. package/dist/tool/provider-helpers.js.map +1 -1
  112. package/dist/tool/runtime.d.ts +4 -4
  113. package/dist/tool/runtime.d.ts.map +1 -1
  114. package/dist/tool/runtime.js +2 -2
  115. package/dist/tool/runtime.js.map +1 -1
  116. package/dist/workflow/agent-graph.d.ts +34 -0
  117. package/dist/workflow/agent-graph.d.ts.map +1 -0
  118. package/dist/workflow/agent-graph.js +145 -0
  119. package/dist/workflow/agent-graph.js.map +1 -0
  120. package/dist/workflow/index.d.ts +4 -0
  121. package/dist/workflow/index.d.ts.map +1 -0
  122. package/dist/workflow/index.js +3 -0
  123. package/dist/workflow/index.js.map +1 -0
  124. package/dist/workflow/types.d.ts +94 -0
  125. package/dist/workflow/types.d.ts.map +1 -0
  126. package/dist/{knowledge → workflow}/types.js.map +1 -1
  127. package/dist/workflow/workflow-helpers.d.ts +35 -0
  128. package/dist/workflow/workflow-helpers.d.ts.map +1 -0
  129. package/dist/workflow/workflow-helpers.js +66 -0
  130. package/dist/workflow/workflow-helpers.js.map +1 -0
  131. package/package.json +5 -2
  132. package/dist/agent/dynamic-registry.d.ts +0 -30
  133. package/dist/agent/dynamic-registry.d.ts.map +0 -1
  134. package/dist/agent/dynamic-registry.js +0 -87
  135. package/dist/agent/dynamic-registry.js.map +0 -1
  136. package/dist/crypto/password.d.ts +0 -11
  137. package/dist/crypto/password.d.ts.map +0 -1
  138. package/dist/crypto/password.js +0 -44
  139. package/dist/crypto/password.js.map +0 -1
  140. package/dist/internal/index.d.ts +0 -5
  141. package/dist/internal/index.d.ts.map +0 -1
  142. package/dist/internal/index.js +0 -8
  143. package/dist/internal/index.js.map +0 -1
  144. package/dist/kernel/context-manager.d.ts +0 -29
  145. package/dist/kernel/context-manager.d.ts.map +0 -1
  146. package/dist/kernel/context-manager.js +0 -64
  147. package/dist/kernel/context-manager.js.map +0 -1
  148. package/dist/kernel/max-steps-prompt.d.ts +0 -3
  149. package/dist/kernel/max-steps-prompt.d.ts.map +0 -1
  150. package/dist/kernel/max-steps-prompt.js +0 -13
  151. package/dist/kernel/max-steps-prompt.js.map +0 -1
  152. package/dist/kernel/run-orchestrator.d.ts +0 -66
  153. package/dist/kernel/run-orchestrator.d.ts.map +0 -1
  154. package/dist/kernel/run-orchestrator.js +0 -182
  155. package/dist/kernel/run-orchestrator.js.map +0 -1
  156. package/dist/kernel/step-runner.d.ts +0 -57
  157. package/dist/kernel/step-runner.d.ts.map +0 -1
  158. package/dist/kernel/step-runner.js +0 -124
  159. package/dist/kernel/step-runner.js.map +0 -1
  160. package/dist/knowledge/approval.d.ts +0 -19
  161. package/dist/knowledge/approval.d.ts.map +0 -1
  162. package/dist/knowledge/approval.js +0 -60
  163. package/dist/knowledge/approval.js.map +0 -1
  164. package/dist/knowledge/compressor.d.ts +0 -46
  165. package/dist/knowledge/compressor.d.ts.map +0 -1
  166. package/dist/knowledge/compressor.js +0 -86
  167. package/dist/knowledge/compressor.js.map +0 -1
  168. package/dist/knowledge/index.d.ts +0 -16
  169. package/dist/knowledge/index.d.ts.map +0 -1
  170. package/dist/knowledge/index.js +0 -10
  171. package/dist/knowledge/index.js.map +0 -1
  172. package/dist/knowledge/learning-engine.d.ts +0 -47
  173. package/dist/knowledge/learning-engine.d.ts.map +0 -1
  174. package/dist/knowledge/learning-engine.js +0 -83
  175. package/dist/knowledge/learning-engine.js.map +0 -1
  176. package/dist/knowledge/llm-compactor.d.ts +0 -25
  177. package/dist/knowledge/llm-compactor.d.ts.map +0 -1
  178. package/dist/knowledge/llm-compactor.js +0 -79
  179. package/dist/knowledge/llm-compactor.js.map +0 -1
  180. package/dist/knowledge/memory-bounded.d.ts +0 -21
  181. package/dist/knowledge/memory-bounded.d.ts.map +0 -1
  182. package/dist/knowledge/memory-bounded.js +0 -63
  183. package/dist/knowledge/memory-bounded.js.map +0 -1
  184. package/dist/knowledge/memory.d.ts +0 -21
  185. package/dist/knowledge/memory.d.ts.map +0 -1
  186. package/dist/knowledge/memory.js +0 -85
  187. package/dist/knowledge/memory.js.map +0 -1
  188. package/dist/knowledge/prompt-builder.d.ts +0 -11
  189. package/dist/knowledge/prompt-builder.d.ts.map +0 -1
  190. package/dist/knowledge/prompt-builder.js +0 -23
  191. package/dist/knowledge/prompt-builder.js.map +0 -1
  192. package/dist/knowledge/review.d.ts +0 -26
  193. package/dist/knowledge/review.d.ts.map +0 -1
  194. package/dist/knowledge/review.js +0 -69
  195. package/dist/knowledge/review.js.map +0 -1
  196. package/dist/knowledge/tool.d.ts +0 -4
  197. package/dist/knowledge/tool.d.ts.map +0 -1
  198. package/dist/knowledge/tool.js +0 -27
  199. package/dist/knowledge/tool.js.map +0 -1
  200. package/dist/knowledge/types.d.ts +0 -27
  201. package/dist/knowledge/types.d.ts.map +0 -1
  202. package/dist/tool/arity.d.ts +0 -22
  203. package/dist/tool/arity.d.ts.map +0 -1
  204. package/dist/tool/arity.js +0 -96
  205. package/dist/tool/arity.js.map +0 -1
  206. package/dist/tool/context.d.ts +0 -43
  207. package/dist/tool/context.d.ts.map +0 -1
  208. package/dist/tool/context.js +0 -2
  209. package/dist/tool/context.js.map +0 -1
  210. package/dist/tool/define-tool.d.ts +0 -45
  211. package/dist/tool/define-tool.d.ts.map +0 -1
  212. package/dist/tool/define-tool.js +0 -120
  213. package/dist/tool/define-tool.js.map +0 -1
  214. package/dist/tool/definitions.d.ts +0 -22
  215. package/dist/tool/definitions.d.ts.map +0 -1
  216. package/dist/tool/definitions.js +0 -2
  217. package/dist/tool/definitions.js.map +0 -1
  218. package/dist/tool/description-lint.d.ts +0 -25
  219. package/dist/tool/description-lint.d.ts.map +0 -1
  220. package/dist/tool/description-lint.js +0 -90
  221. package/dist/tool/description-lint.js.map +0 -1
  222. package/dist/tool/diff.d.ts +0 -7
  223. package/dist/tool/diff.d.ts.map +0 -1
  224. package/dist/tool/diff.js +0 -26
  225. package/dist/tool/diff.js.map +0 -1
  226. package/dist/tool/domain.d.ts +0 -39
  227. package/dist/tool/domain.d.ts.map +0 -1
  228. package/dist/tool/domain.js +0 -20
  229. package/dist/tool/domain.js.map +0 -1
  230. package/dist/tool/file-history.d.ts +0 -43
  231. package/dist/tool/file-history.d.ts.map +0 -1
  232. package/dist/tool/file-history.js +0 -55
  233. package/dist/tool/file-history.js.map +0 -1
  234. package/dist/tool/file-tools.d.ts +0 -51
  235. package/dist/tool/file-tools.d.ts.map +0 -1
  236. package/dist/tool/file-tools.js +0 -534
  237. package/dist/tool/file-tools.js.map +0 -1
  238. package/dist/tool/git-tools.d.ts +0 -8
  239. package/dist/tool/git-tools.d.ts.map +0 -1
  240. package/dist/tool/git-tools.js +0 -114
  241. package/dist/tool/git-tools.js.map +0 -1
  242. package/dist/tool/history-hook.d.ts +0 -4
  243. package/dist/tool/history-hook.d.ts.map +0 -1
  244. package/dist/tool/history-hook.js +0 -62
  245. package/dist/tool/history-hook.js.map +0 -1
  246. package/dist/tool/image-tools.d.ts +0 -11
  247. package/dist/tool/image-tools.d.ts.map +0 -1
  248. package/dist/tool/image-tools.js +0 -55
  249. package/dist/tool/image-tools.js.map +0 -1
  250. package/dist/tool/in-memory-tool-registry.d.ts +0 -13
  251. package/dist/tool/in-memory-tool-registry.d.ts.map +0 -1
  252. package/dist/tool/in-memory-tool-registry.js +0 -39
  253. package/dist/tool/in-memory-tool-registry.js.map +0 -1
  254. package/dist/tool/json-schema.d.ts +0 -22
  255. package/dist/tool/json-schema.d.ts.map +0 -1
  256. package/dist/tool/json-schema.js +0 -2
  257. package/dist/tool/json-schema.js.map +0 -1
  258. package/dist/tool/lazy-registry.d.ts +0 -23
  259. package/dist/tool/lazy-registry.d.ts.map +0 -1
  260. package/dist/tool/lazy-registry.js +0 -64
  261. package/dist/tool/lazy-registry.js.map +0 -1
  262. package/dist/tool/policy.d.ts +0 -5
  263. package/dist/tool/policy.d.ts.map +0 -1
  264. package/dist/tool/policy.js +0 -2
  265. package/dist/tool/policy.js.map +0 -1
  266. package/dist/tool/provider.d.ts +0 -80
  267. package/dist/tool/provider.d.ts.map +0 -1
  268. package/dist/tool/provider.js +0 -96
  269. package/dist/tool/provider.js.map +0 -1
  270. package/dist/tool/providers/agent-provider.d.ts +0 -26
  271. package/dist/tool/providers/agent-provider.d.ts.map +0 -1
  272. package/dist/tool/providers/agent-provider.js +0 -42
  273. package/dist/tool/providers/agent-provider.js.map +0 -1
  274. package/dist/tool/providers/builtin-provider.d.ts +0 -28
  275. package/dist/tool/providers/builtin-provider.d.ts.map +0 -1
  276. package/dist/tool/providers/builtin-provider.js +0 -67
  277. package/dist/tool/providers/builtin-provider.js.map +0 -1
  278. package/dist/tool/providers/file-loader.d.ts +0 -47
  279. package/dist/tool/providers/file-loader.d.ts.map +0 -1
  280. package/dist/tool/providers/file-loader.js +0 -120
  281. package/dist/tool/providers/file-loader.js.map +0 -1
  282. package/dist/tool/providers/index.d.ts +0 -8
  283. package/dist/tool/providers/index.d.ts.map +0 -1
  284. package/dist/tool/providers/index.js +0 -8
  285. package/dist/tool/providers/index.js.map +0 -1
  286. package/dist/tool/providers/skill-provider.d.ts +0 -23
  287. package/dist/tool/providers/skill-provider.d.ts.map +0 -1
  288. package/dist/tool/providers/skill-provider.js +0 -28
  289. package/dist/tool/providers/skill-provider.js.map +0 -1
  290. package/dist/tool/question-tool.d.ts +0 -15
  291. package/dist/tool/question-tool.d.ts.map +0 -1
  292. package/dist/tool/question-tool.js +0 -51
  293. package/dist/tool/question-tool.js.map +0 -1
  294. package/dist/tool/read-tracker.d.ts +0 -8
  295. package/dist/tool/read-tracker.d.ts.map +0 -1
  296. package/dist/tool/read-tracker.js +0 -33
  297. package/dist/tool/read-tracker.js.map +0 -1
  298. package/dist/tool/registry.d.ts +0 -58
  299. package/dist/tool/registry.d.ts.map +0 -1
  300. package/dist/tool/registry.js +0 -128
  301. package/dist/tool/registry.js.map +0 -1
  302. package/dist/tool/sandbox.d.ts +0 -12
  303. package/dist/tool/sandbox.d.ts.map +0 -1
  304. package/dist/tool/sandbox.js +0 -72
  305. package/dist/tool/sandbox.js.map +0 -1
  306. package/dist/tool/search-tools.d.ts +0 -6
  307. package/dist/tool/search-tools.d.ts.map +0 -1
  308. package/dist/tool/search-tools.js +0 -118
  309. package/dist/tool/search-tools.js.map +0 -1
  310. package/dist/tool/shell-tool.d.ts +0 -19
  311. package/dist/tool/shell-tool.d.ts.map +0 -1
  312. package/dist/tool/shell-tool.js +0 -139
  313. package/dist/tool/shell-tool.js.map +0 -1
  314. package/dist/tool/todo-tool.d.ts +0 -2
  315. package/dist/tool/todo-tool.d.ts.map +0 -1
  316. package/dist/tool/todo-tool.js +0 -121
  317. package/dist/tool/todo-tool.js.map +0 -1
  318. package/dist/tool/tool-registry-types.d.ts +0 -14
  319. package/dist/tool/tool-registry-types.d.ts.map +0 -1
  320. package/dist/tool/tool-registry-types.js +0 -2
  321. package/dist/tool/tool-registry-types.js.map +0 -1
  322. package/dist/tool/validate.d.ts +0 -9
  323. package/dist/tool/validate.d.ts.map +0 -1
  324. package/dist/tool/validate.js +0 -26
  325. package/dist/tool/validate.js.map +0 -1
  326. package/dist/tool/web-search-tool.d.ts +0 -24
  327. package/dist/tool/web-search-tool.d.ts.map +0 -1
  328. package/dist/tool/web-search-tool.js +0 -66
  329. package/dist/tool/web-search-tool.js.map +0 -1
  330. package/dist/tool/web-tools.d.ts +0 -10
  331. package/dist/tool/web-tools.d.ts.map +0 -1
  332. package/dist/tool/web-tools.js +0 -61
  333. package/dist/tool/web-tools.js.map +0 -1
  334. /package/dist/{knowledge → workflow}/types.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-graph.d.ts","sourceRoot":"","sources":["../../src/workflow/agent-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EAGf,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAElE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAClF;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,UAAU;IAMnB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAP/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsC;IAC5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAC5C,OAAO,CAAC,SAAS,CAAqB;gBAGnB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,YAAA;IAGvC,+BAA+B;IAC/B,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAKpC,iCAAiC;IACjC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAKvD,0BAA0B;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK9B,qCAAqC;IACrC,KAAK,IAAI,QAAQ;IAcjB,4BAA4B;IACtB,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;YAyB3C,WAAW;IAuEzB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,iBAAiB;CAG1B"}
@@ -0,0 +1,145 @@
1
+ export class AgentGraph {
2
+ id;
3
+ name;
4
+ description;
5
+ nodes = new Map();
6
+ edges = [];
7
+ entryNode;
8
+ constructor(id, name, description) {
9
+ this.id = id;
10
+ this.name = name;
11
+ this.description = description;
12
+ }
13
+ /** Add a node to the graph. */
14
+ addNode(node) {
15
+ this.nodes.set(node.id, node);
16
+ return this;
17
+ }
18
+ /** Add an edge between nodes. */
19
+ addEdge(from, to, label) {
20
+ this.edges.push({ from, to, label });
21
+ return this;
22
+ }
23
+ /** Set the entry node. */
24
+ setEntry(nodeId) {
25
+ this.entryNode = nodeId;
26
+ return this;
27
+ }
28
+ /** Build the workflow definition. */
29
+ build() {
30
+ if (!this.entryNode) {
31
+ throw new Error("Entry node not set");
32
+ }
33
+ return {
34
+ id: this.id,
35
+ name: this.name,
36
+ description: this.description,
37
+ entryNode: this.entryNode,
38
+ nodes: [...this.nodes.values()],
39
+ edges: [...this.edges],
40
+ };
41
+ }
42
+ /** Execute the workflow. */
43
+ async execute(ctx) {
44
+ const workflow = this.build();
45
+ const startTime = Date.now();
46
+ const nodeResults = [];
47
+ try {
48
+ const finalOutput = await this.executeNode(workflow.entryNode, ctx, nodeResults, new Map());
49
+ return {
50
+ workflowId: this.id,
51
+ status: "completed",
52
+ nodeResults,
53
+ finalOutput,
54
+ durationMs: Date.now() - startTime,
55
+ };
56
+ }
57
+ catch (error) {
58
+ return {
59
+ workflowId: this.id,
60
+ status: "failed",
61
+ nodeResults,
62
+ error: error instanceof Error ? error.message : String(error),
63
+ durationMs: Date.now() - startTime,
64
+ };
65
+ }
66
+ }
67
+ async executeNode(nodeId, ctx, results, variables) {
68
+ const node = this.nodes.get(nodeId);
69
+ if (!node) {
70
+ throw new Error(`Node not found: ${nodeId}`);
71
+ }
72
+ const startTime = Date.now();
73
+ let output;
74
+ let status = "completed";
75
+ try {
76
+ switch (node.type) {
77
+ case "agent": {
78
+ const prompt = node.inputTemplate
79
+ ? this.interpolate(node.inputTemplate, variables)
80
+ : variables.get("input") ?? "";
81
+ output = await ctx.executor.runAgent(node.agentId, prompt, {
82
+ requestId: ctx.requestId,
83
+ traceId: ctx.traceId,
84
+ });
85
+ break;
86
+ }
87
+ case "parallel": {
88
+ const branchResults = await Promise.all(node.branches.map((branchId) => this.executeNode(branchId, ctx, results, variables)));
89
+ output = branchResults.join("\n---\n");
90
+ break;
91
+ }
92
+ case "sequential": {
93
+ let lastOutput = "";
94
+ for (const stepId of node.steps) {
95
+ lastOutput = await this.executeNode(stepId, ctx, results, variables);
96
+ variables.set("prev.output", lastOutput);
97
+ }
98
+ output = lastOutput;
99
+ break;
100
+ }
101
+ case "condition": {
102
+ const conditionResult = this.evaluateCondition(node.condition, variables);
103
+ const nextNode = conditionResult ? node.trueEdge : node.falseEdge;
104
+ output = await this.executeNode(nextNode, ctx, results, variables);
105
+ break;
106
+ }
107
+ case "transform": {
108
+ output = this.evaluateTransform(node.transform, variables);
109
+ break;
110
+ }
111
+ }
112
+ }
113
+ catch (error) {
114
+ status = "failed";
115
+ throw error;
116
+ }
117
+ finally {
118
+ results.push({
119
+ nodeId,
120
+ status,
121
+ output,
122
+ durationMs: Date.now() - startTime,
123
+ });
124
+ }
125
+ return output ?? "";
126
+ }
127
+ interpolate(template, variables) {
128
+ return template.replace(/\{\{(\w+(?:\.\w+)*)\}\}/g, (_, key) => {
129
+ return variables.get(key) ?? `{{${key}}}`;
130
+ });
131
+ }
132
+ evaluateCondition(condition, variables) {
133
+ const interpolated = this.interpolate(condition, variables);
134
+ try {
135
+ return Boolean(eval(interpolated));
136
+ }
137
+ catch {
138
+ return false;
139
+ }
140
+ }
141
+ evaluateTransform(transform, variables) {
142
+ return this.interpolate(transform, variables);
143
+ }
144
+ }
145
+ //# sourceMappingURL=agent-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-graph.js","sourceRoot":"","sources":["../../src/workflow/agent-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export type { WorkflowNodeType, WorkflowNode, AgentNode, ConditionNode, TransformNode, ParallelNode, SequentialNode, AnyWorkflowNode, WorkflowEdge, Workflow, WorkflowNodeStatus, WorkflowNodeResult, WorkflowResult, } from "./types.js";
2
+ export { AgentGraph, type GraphExecutor, type GraphContext } from "./agent-graph.js";
3
+ export { createSequentialWorkflow, createParallelWorkflow } from "./workflow-helpers.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,aAAa,EACb,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { AgentGraph } from "./agent-graph.js";
2
+ export { createSequentialWorkflow, createParallelWorkflow } from "./workflow-helpers.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAyC,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,94 @@
1
+ import type { AgentId } from "@vinhnt-sdk/schema";
2
+ /** Workflow node types. */
3
+ export type WorkflowNodeType = "agent" | "condition" | "transform" | "parallel" | "sequential";
4
+ /** Base workflow node. */
5
+ export interface WorkflowNode {
6
+ /** Unique node ID. */
7
+ readonly id: string;
8
+ /** Node type. */
9
+ readonly type: WorkflowNodeType;
10
+ /** Node label for display. */
11
+ readonly label?: string;
12
+ }
13
+ /** Agent node — delegates to an agent. */
14
+ export interface AgentNode extends WorkflowNode {
15
+ readonly type: "agent";
16
+ /** Agent ID to delegate to. */
17
+ readonly agentId: AgentId;
18
+ /** Input transformation expression (e.g. "{{prev.output}}"). */
19
+ readonly inputTemplate?: string;
20
+ }
21
+ /** Condition node — branches based on a predicate. */
22
+ export interface ConditionNode extends WorkflowNode {
23
+ readonly type: "condition";
24
+ /** Condition expression (e.g. "{{prev.output}}.includes('error')"). */
25
+ readonly condition: string;
26
+ /** Node ID to follow if true. */
27
+ readonly trueEdge: string;
28
+ /** Node ID to follow if false. */
29
+ readonly falseEdge: string;
30
+ }
31
+ /** Transform node — transforms data between steps. */
32
+ export interface TransformNode extends WorkflowNode {
33
+ readonly type: "transform";
34
+ /** Transform function name or inline expression. */
35
+ readonly transform: string;
36
+ }
37
+ /** Parallel node — executes multiple branches concurrently. */
38
+ export interface ParallelNode extends WorkflowNode {
39
+ readonly type: "parallel";
40
+ /** Node IDs to execute in parallel. */
41
+ readonly branches: string[];
42
+ }
43
+ /** Sequential node — executes nodes in order. */
44
+ export interface SequentialNode extends WorkflowNode {
45
+ readonly type: "sequential";
46
+ /** Ordered list of node IDs. */
47
+ readonly steps: string[];
48
+ }
49
+ /** Any workflow node type. */
50
+ export type AnyWorkflowNode = AgentNode | ConditionNode | TransformNode | ParallelNode | SequentialNode;
51
+ /** Workflow edge — connection between nodes. */
52
+ export interface WorkflowEdge {
53
+ /** Source node ID. */
54
+ readonly from: string;
55
+ /** Target node ID. */
56
+ readonly to: string;
57
+ /** Optional edge label. */
58
+ readonly label?: string;
59
+ }
60
+ /** Workflow definition. */
61
+ export interface Workflow {
62
+ /** Unique workflow ID. */
63
+ readonly id: string;
64
+ /** Workflow name. */
65
+ readonly name: string;
66
+ /** Workflow description. */
67
+ readonly description?: string;
68
+ /** Entry node ID. */
69
+ readonly entryNode: string;
70
+ /** All nodes in the workflow. */
71
+ readonly nodes: readonly AnyWorkflowNode[];
72
+ /** All edges in the workflow. */
73
+ readonly edges: readonly WorkflowEdge[];
74
+ }
75
+ /** Workflow execution state. */
76
+ export type WorkflowNodeStatus = "pending" | "running" | "completed" | "failed" | "skipped";
77
+ /** Node execution result. */
78
+ export interface WorkflowNodeResult {
79
+ readonly nodeId: string;
80
+ readonly status: WorkflowNodeStatus;
81
+ readonly output?: string;
82
+ readonly error?: string;
83
+ readonly durationMs?: number;
84
+ }
85
+ /** Workflow execution result. */
86
+ export interface WorkflowResult {
87
+ readonly workflowId: string;
88
+ readonly status: "completed" | "failed";
89
+ readonly nodeResults: readonly WorkflowNodeResult[];
90
+ readonly finalOutput?: string;
91
+ readonly error?: string;
92
+ readonly durationMs: number;
93
+ }
94
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/workflow/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/knowledge/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/workflow/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import { AgentGraph } from "./agent-graph.js";
2
+ import type { AgentId } from "@vinhnt-sdk/schema";
3
+ /**
4
+ * Create a sequential workflow that runs agents in order.
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * const workflow = createSequentialWorkflow("my-workflow", "My Workflow", [
9
+ * { agentId: "analyzer", inputTemplate: "{{input}}" },
10
+ * { agentId: "coder", inputTemplate: "{{prev.output}}" },
11
+ * { agentId: "reviewer", inputTemplate: "{{prev.output}}" },
12
+ * ]);
13
+ * ```
14
+ */
15
+ export declare function createSequentialWorkflow(id: string, name: string, steps: {
16
+ agentId: AgentId;
17
+ inputTemplate?: string;
18
+ }[]): AgentGraph;
19
+ /**
20
+ * Create a parallel workflow that runs multiple agents concurrently.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * const workflow = createParallelWorkflow("review-workflow", "Code Review", [
25
+ * { agentId: "security-reviewer", inputTemplate: "{{input}}" },
26
+ * { agentId: "performance-reviewer", inputTemplate: "{{input}}" },
27
+ * { agentId: "style-reviewer", inputTemplate: "{{input}}" },
28
+ * ]);
29
+ * ```
30
+ */
31
+ export declare function createParallelWorkflow(id: string, name: string, branches: {
32
+ agentId: AgentId;
33
+ inputTemplate?: string;
34
+ }[]): AgentGraph;
35
+ //# sourceMappingURL=workflow-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-helpers.d.ts","sourceRoot":"","sources":["../../src/workflow/workflow-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GACpD,UAAU,CAsBZ;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GACvD,UAAU,CAuBZ"}
@@ -0,0 +1,66 @@
1
+ import { AgentGraph } from "./agent-graph.js";
2
+ /**
3
+ * Create a sequential workflow that runs agents in order.
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * const workflow = createSequentialWorkflow("my-workflow", "My Workflow", [
8
+ * { agentId: "analyzer", inputTemplate: "{{input}}" },
9
+ * { agentId: "coder", inputTemplate: "{{prev.output}}" },
10
+ * { agentId: "reviewer", inputTemplate: "{{prev.output}}" },
11
+ * ]);
12
+ * ```
13
+ */
14
+ export function createSequentialWorkflow(id, name, steps) {
15
+ const graph = new AgentGraph(id, name);
16
+ steps.forEach((step, index) => {
17
+ const nodeId = `step-${index}`;
18
+ graph.addNode({
19
+ id: nodeId,
20
+ type: "agent",
21
+ agentId: step.agentId,
22
+ inputTemplate: step.inputTemplate,
23
+ });
24
+ if (index > 0) {
25
+ graph.addEdge(`step-${index - 1}`, nodeId);
26
+ }
27
+ });
28
+ if (steps.length > 0) {
29
+ graph.setEntry("step-0");
30
+ }
31
+ return graph;
32
+ }
33
+ /**
34
+ * Create a parallel workflow that runs multiple agents concurrently.
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * const workflow = createParallelWorkflow("review-workflow", "Code Review", [
39
+ * { agentId: "security-reviewer", inputTemplate: "{{input}}" },
40
+ * { agentId: "performance-reviewer", inputTemplate: "{{input}}" },
41
+ * { agentId: "style-reviewer", inputTemplate: "{{input}}" },
42
+ * ]);
43
+ * ```
44
+ */
45
+ export function createParallelWorkflow(id, name, branches) {
46
+ const graph = new AgentGraph(id, name);
47
+ const parallelNodeId = "parallel-root";
48
+ graph.addNode({
49
+ id: parallelNodeId,
50
+ type: "parallel",
51
+ branches: branches.map((_, index) => `branch-${index}`),
52
+ });
53
+ branches.forEach((branch, index) => {
54
+ const nodeId = `branch-${index}`;
55
+ graph.addNode({
56
+ id: nodeId,
57
+ type: "agent",
58
+ agentId: branch.agentId,
59
+ inputTemplate: branch.inputTemplate,
60
+ });
61
+ graph.addEdge(parallelNodeId, nodeId);
62
+ });
63
+ graph.setEntry(parallelNodeId);
64
+ return graph;
65
+ }
66
+ //# sourceMappingURL=workflow-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-helpers.js","sourceRoot":"","sources":["../../src/workflow/workflow-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CACtC,EAAU,EACV,IAAY,EACZ,KAAqD;IAErD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAEvC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,MAAM,MAAM,GAAG,QAAQ,KAAK,EAAE,CAAC;QAC/B,KAAK,CAAC,OAAO,CAAC;YACZ,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAC;QAEH,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,KAAK,CAAC,OAAO,CAAC,QAAQ,KAAK,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CACpC,EAAU,EACV,IAAY,EACZ,QAAwD;IAExD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAEvC,MAAM,cAAc,GAAG,eAAe,CAAC;IACvC,KAAK,CAAC,OAAO,CAAC;QACZ,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC;KACxD,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACjC,MAAM,MAAM,GAAG,UAAU,KAAK,EAAE,CAAC;QACjC,KAAK,CAAC,OAAO,CAAC;YACZ,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC,CAAC,CAAC;QACH,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vinhnt-sdk/core",
3
- "version": "0.1.0",
3
+ "version": "1.0.0",
4
4
  "description": "Core agent engine for VNT Agent — kernel, tools, sessions, plugins, permissions, and knowledge",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -96,7 +96,10 @@
96
96
  },
97
97
  "dependencies": {
98
98
  "zod": "^4.4.3",
99
- "@vinhnt-sdk/schema": "0.1.0"
99
+ "@vinhnt-sdk/schema": "1.0.0",
100
+ "@vinhnt-sdk/knowledge": "1.0.0",
101
+ "@vinhnt-sdk/security": "1.0.0",
102
+ "@vinhnt-sdk/tools": "1.0.0"
100
103
  },
101
104
  "devDependencies": {},
102
105
  "scripts": {
@@ -1,30 +0,0 @@
1
- import type { AgentId, AgentConfig } from "@vnt/schema";
2
- import type { AgentRegistry } from "./agent-registry.js";
3
- export type AgentSource = {
4
- type: "inline";
5
- config: AgentConfig;
6
- parentId?: AgentId;
7
- } | {
8
- type: "file";
9
- path: string;
10
- parentId?: AgentId;
11
- };
12
- export declare class DynamicAgentRegistry implements AgentRegistry {
13
- private inner;
14
- private loadedPaths;
15
- private pathToAgentId;
16
- constructor();
17
- register(config: AgentConfig, parentId?: AgentId): Promise<void>;
18
- load(source: AgentSource): Promise<AgentConfig>;
19
- loadMultiple(sources: AgentSource[]): Promise<AgentConfig[]>;
20
- reload(path: string): Promise<AgentConfig>;
21
- get(id: AgentId): Promise<AgentConfig | null>;
22
- list(): Promise<readonly AgentConfig[]>;
23
- findByCapability(key: string, value: unknown): Promise<readonly AgentConfig[]>;
24
- unregister(id: AgentId): Promise<void>;
25
- update(id: AgentId, patch: Partial<AgentConfig>): Promise<AgentConfig | null>;
26
- getChildren(parentId: AgentId): Promise<readonly AgentConfig[]>;
27
- getParent(childId: AgentId): Promise<AgentConfig | null>;
28
- getAncestors(childId: AgentId): Promise<readonly AgentConfig[]>;
29
- }
30
- //# sourceMappingURL=dynamic-registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dynamic-registry.d.ts","sourceRoot":"","sources":["../../src/agent/dynamic-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMzD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG;IACF,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,qBAAa,oBAAqB,YAAW,aAAa;IACxD,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,aAAa,CAA8B;IAEnD,cAEC;IAEK,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrE;IAEK,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAqBpD;IAEK,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAMjE;IAEK,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAS/C;IAEK,GAAG,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAElD;IAEK,IAAI,IAAI,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAE5C;IAEK,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAEnF;IAEK,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ3C;IAEK,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAGlF;IAEK,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAEpE;IAEK,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAE7D;IAEK,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAEpE;CACF"}
@@ -1,87 +0,0 @@
1
- import { AgentConfigSchema } from "@vnt/schema";
2
- import { InMemoryAgentRegistry } from "./agent-registry.js";
3
- import { readFile } from "node:fs/promises";
4
- import { resolve } from "node:path";
5
- export class DynamicAgentRegistry {
6
- inner;
7
- loadedPaths = new Set();
8
- pathToAgentId = new Map();
9
- constructor() {
10
- this.inner = new InMemoryAgentRegistry();
11
- }
12
- async register(config, parentId) {
13
- const parsed = AgentConfigSchema.parse(config);
14
- await this.inner.register(parsed, parentId);
15
- }
16
- async load(source) {
17
- switch (source.type) {
18
- case "inline": {
19
- const parsed = AgentConfigSchema.parse(source.config);
20
- await this.inner.register(parsed, source.parentId);
21
- return parsed;
22
- }
23
- case "file": {
24
- const absPath = resolve(source.path);
25
- if (this.loadedPaths.has(absPath)) {
26
- throw new Error(`Agent file already loaded: ${absPath}`);
27
- }
28
- const content = await readFile(absPath, "utf-8");
29
- const raw = JSON.parse(content);
30
- const parsed = AgentConfigSchema.parse(raw);
31
- await this.inner.register(parsed, source.parentId);
32
- this.loadedPaths.add(absPath);
33
- this.pathToAgentId.set(absPath, parsed.id);
34
- return parsed;
35
- }
36
- }
37
- }
38
- async loadMultiple(sources) {
39
- const results = [];
40
- for (const source of sources) {
41
- results.push(await this.load(source));
42
- }
43
- return results;
44
- }
45
- async reload(path) {
46
- const absPath = resolve(path);
47
- const previousId = this.pathToAgentId.get(absPath);
48
- this.loadedPaths.delete(absPath);
49
- this.pathToAgentId.delete(absPath);
50
- if (previousId) {
51
- await this.inner.unregister(previousId);
52
- }
53
- return await this.load({ type: "file", path });
54
- }
55
- async get(id) {
56
- return this.inner.get(id);
57
- }
58
- async list() {
59
- return this.inner.list();
60
- }
61
- async findByCapability(key, value) {
62
- return this.inner.findByCapability(key, value);
63
- }
64
- async unregister(id) {
65
- for (const [absPath, agentId] of this.pathToAgentId) {
66
- if (agentId === id) {
67
- this.loadedPaths.delete(absPath);
68
- this.pathToAgentId.delete(absPath);
69
- }
70
- }
71
- return this.inner.unregister(id);
72
- }
73
- async update(id, patch) {
74
- const updated = await this.inner.update(id, patch);
75
- return updated ? AgentConfigSchema.parse(updated) : null;
76
- }
77
- async getChildren(parentId) {
78
- return this.inner.getChildren(parentId);
79
- }
80
- async getParent(childId) {
81
- return this.inner.getParent(childId);
82
- }
83
- async getAncestors(childId) {
84
- return this.inner.getAncestors(childId);
85
- }
86
- }
87
- //# sourceMappingURL=dynamic-registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dynamic-registry.js","sourceRoot":"","sources":["../../src/agent/dynamic-registry.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Hash a password using scrypt with a random salt.
3
- * Returns `salt:hash` (both hex-encoded).
4
- */
5
- export declare function hashPassword(password: string): Promise<string>;
6
- /**
7
- * Verify a password against a stored `salt:hash` string.
8
- * Uses constant-time comparison to prevent timing attacks.
9
- */
10
- export declare function verifyPassword(password: string, stored: string): Promise<boolean>;
11
- //# sourceMappingURL=password.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../src/crypto/password.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CASpE;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAgBvF"}
@@ -1,44 +0,0 @@
1
- import { randomBytes, scrypt, timingSafeEqual } from "node:crypto";
2
- const SALT_LEN = 32;
3
- const KEY_LEN = 64;
4
- const SCRYPT_OPTS = { N: 16384, r: 8, p: 1 };
5
- /**
6
- * Hash a password using scrypt with a random salt.
7
- * Returns `salt:hash` (both hex-encoded).
8
- */
9
- export async function hashPassword(password) {
10
- const salt = randomBytes(SALT_LEN).toString("hex");
11
- const derived = await new Promise((resolve, reject) => {
12
- scrypt(password, salt, KEY_LEN, SCRYPT_OPTS, (err, key) => {
13
- if (err)
14
- reject(err);
15
- else
16
- resolve(key);
17
- });
18
- });
19
- return `${salt}:${derived.toString("hex")}`;
20
- }
21
- /**
22
- * Verify a password against a stored `salt:hash` string.
23
- * Uses constant-time comparison to prevent timing attacks.
24
- */
25
- export async function verifyPassword(password, stored) {
26
- const sep = stored.indexOf(":");
27
- if (sep === -1)
28
- return false;
29
- const salt = stored.slice(0, sep);
30
- const expectedHex = stored.slice(sep + 1);
31
- const expected = Buffer.from(expectedHex, "hex");
32
- const derived = await new Promise((resolve, reject) => {
33
- scrypt(password, salt, KEY_LEN, SCRYPT_OPTS, (err, key) => {
34
- if (err)
35
- reject(err);
36
- else
37
- resolve(key);
38
- });
39
- });
40
- if (derived.length !== expected.length)
41
- return false;
42
- return timingSafeEqual(derived, expected);
43
- }
44
- //# sourceMappingURL=password.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/crypto/password.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnE,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,OAAO,GAAG,EAAE,CAAC;AACnB,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAW,CAAC;AAEtD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5D,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACxD,IAAI,GAAG;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;gBAChB,OAAO,CAAC,GAAa,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB,EAAE,MAAc;IACnE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAEjD,MAAM,OAAO,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5D,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACxD,IAAI,GAAG;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;gBAChB,OAAO,CAAC,GAAa,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACrD,OAAO,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC5C,CAAC"}
@@ -1,5 +0,0 @@
1
- export { AgentKernel, KernelError, CircuitBreaker } from "./kernel/kernel.js";
2
- export { RunStateMachine } from "./kernel/run-state.js";
3
- export { ModelCaller } from "./kernel/model-caller.js";
4
- export { ToolSaga } from "./kernel/tool-saga.js";
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/internal/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,8 +0,0 @@
1
- // @vinhnt-sdk/agent-core/internal
2
- // Internal APIs - not intended for public use, but needed for advanced use cases
3
- // Re-export from main index for convenience
4
- export { AgentKernel, KernelError, CircuitBreaker } from "./kernel/kernel.js";
5
- export { RunStateMachine } from "./kernel/run-state.js";
6
- export { ModelCaller } from "./kernel/model-caller.js";
7
- export { ToolSaga } from "./kernel/tool-saga.js";
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/internal/index.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,iFAAiF;AAEjF,4CAA4C;AAC5C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC"}