@ainetwork/adk 0.3.2 → 0.3.4

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 (382) hide show
  1. package/README.md +62 -29
  2. package/dist/cjs/{chunk-RCOESZIX.cjs → chunk-3COIZ4H5.cjs} +5 -5
  3. package/dist/cjs/chunk-3COIZ4H5.cjs.map +1 -0
  4. package/dist/cjs/chunk-4VIZ52C2.cjs +37 -0
  5. package/dist/cjs/chunk-4VIZ52C2.cjs.map +1 -0
  6. package/dist/cjs/{chunk-X46GJS7X.cjs → chunk-4ZTPNV3C.cjs} +4 -4
  7. package/dist/cjs/chunk-4ZTPNV3C.cjs.map +1 -0
  8. package/dist/cjs/{chunk-A2I7D6JW.cjs → chunk-6HUEBFXL.cjs} +1 -1
  9. package/dist/cjs/{chunk-A2I7D6JW.cjs.map → chunk-6HUEBFXL.cjs.map} +1 -1
  10. package/dist/cjs/{chunk-EA3YMPST.cjs → chunk-6JO4LWIY.cjs} +7 -14
  11. package/dist/cjs/chunk-6JO4LWIY.cjs.map +1 -0
  12. package/dist/cjs/{chunk-NEWJ7PXH.cjs → chunk-7E3A6PCO.cjs} +9 -8
  13. package/dist/cjs/chunk-7E3A6PCO.cjs.map +1 -0
  14. package/dist/cjs/chunk-7XYVRO76.cjs +68 -0
  15. package/dist/cjs/chunk-7XYVRO76.cjs.map +1 -0
  16. package/dist/cjs/chunk-AQGJBXBU.cjs +8 -0
  17. package/dist/cjs/chunk-AQGJBXBU.cjs.map +1 -0
  18. package/dist/cjs/chunk-CHREGFB3.cjs +38 -0
  19. package/dist/cjs/chunk-CHREGFB3.cjs.map +1 -0
  20. package/dist/cjs/chunk-CKZDAQBG.cjs +17 -0
  21. package/dist/cjs/chunk-CKZDAQBG.cjs.map +1 -0
  22. package/dist/cjs/chunk-EQWAVDJY.cjs +47 -0
  23. package/dist/cjs/chunk-EQWAVDJY.cjs.map +1 -0
  24. package/dist/cjs/{chunk-5FZ7QLJD.cjs → chunk-EUNCRF3F.cjs} +4 -4
  25. package/dist/cjs/chunk-EUNCRF3F.cjs.map +1 -0
  26. package/dist/cjs/chunk-FLPLVYXQ.cjs +45 -0
  27. package/dist/cjs/chunk-FLPLVYXQ.cjs.map +1 -0
  28. package/dist/cjs/chunk-GA6NTHXB.cjs +17 -0
  29. package/dist/cjs/chunk-GA6NTHXB.cjs.map +1 -0
  30. package/dist/cjs/{chunk-NNYPZA6W.cjs → chunk-HDF5WQFQ.cjs} +31 -26
  31. package/dist/cjs/chunk-HDF5WQFQ.cjs.map +1 -0
  32. package/dist/cjs/{chunk-YCTPMLZO.cjs → chunk-HVNTK4O7.cjs} +12 -8
  33. package/dist/cjs/chunk-HVNTK4O7.cjs.map +1 -0
  34. package/dist/cjs/chunk-I72VEOEC.cjs +62 -0
  35. package/dist/cjs/chunk-I72VEOEC.cjs.map +1 -0
  36. package/dist/cjs/{chunk-OZPPTVUA.cjs → chunk-IP6P2TQM.cjs} +121 -37
  37. package/dist/cjs/chunk-IP6P2TQM.cjs.map +1 -0
  38. package/dist/cjs/chunk-JQIAM5N4.cjs +18 -0
  39. package/dist/cjs/chunk-JQIAM5N4.cjs.map +1 -0
  40. package/dist/cjs/chunk-LTBTLUJD.cjs +74 -0
  41. package/dist/cjs/chunk-LTBTLUJD.cjs.map +1 -0
  42. package/dist/cjs/chunk-MSPDYSCC.cjs +21 -0
  43. package/dist/cjs/chunk-MSPDYSCC.cjs.map +1 -0
  44. package/dist/cjs/chunk-NFEFQTIX.cjs +104 -0
  45. package/dist/cjs/chunk-NFEFQTIX.cjs.map +1 -0
  46. package/dist/cjs/{chunk-QCYLIOXZ.cjs → chunk-NLONGI2K.cjs} +7 -4
  47. package/dist/cjs/chunk-NLONGI2K.cjs.map +1 -0
  48. package/dist/cjs/chunk-NNVC34HX.cjs +95 -0
  49. package/dist/cjs/chunk-NNVC34HX.cjs.map +1 -0
  50. package/dist/cjs/{chunk-Z6TQ7TFO.cjs → chunk-OERUQFT7.cjs} +1 -1
  51. package/dist/cjs/chunk-OERUQFT7.cjs.map +1 -0
  52. package/dist/cjs/{chunk-TZ6JOGWV.cjs → chunk-PH5CFKLN.cjs} +4 -1
  53. package/dist/cjs/chunk-PH5CFKLN.cjs.map +1 -0
  54. package/dist/cjs/{chunk-FJ2JWXSL.cjs → chunk-QHDIM62U.cjs} +12 -8
  55. package/dist/cjs/chunk-QHDIM62U.cjs.map +1 -0
  56. package/dist/cjs/{chunk-5QSLQX4H.cjs → chunk-TDHM5TWT.cjs} +24 -34
  57. package/dist/cjs/chunk-TDHM5TWT.cjs.map +1 -0
  58. package/dist/cjs/{chunk-W224GBH7.cjs → chunk-UNRN7WF6.cjs} +1 -1
  59. package/dist/cjs/{chunk-W224GBH7.cjs.map → chunk-UNRN7WF6.cjs.map} +1 -1
  60. package/dist/cjs/chunk-VM74R2KP.cjs +170 -0
  61. package/dist/cjs/chunk-VM74R2KP.cjs.map +1 -0
  62. package/dist/cjs/chunk-WQIUHNUX.cjs +45 -0
  63. package/dist/cjs/chunk-WQIUHNUX.cjs.map +1 -0
  64. package/dist/cjs/chunk-ZWJ6IAP2.cjs +89 -0
  65. package/dist/cjs/chunk-ZWJ6IAP2.cjs.map +1 -0
  66. package/dist/cjs/{chunk-4Z4HSVCQ.cjs → chunk-ZZP6LQ5R.cjs} +4 -5
  67. package/dist/cjs/chunk-ZZP6LQ5R.cjs.map +1 -0
  68. package/dist/cjs/config/agent.cjs +9 -0
  69. package/dist/cjs/config/agent.cjs.map +1 -0
  70. package/dist/cjs/config/modules.cjs +19 -0
  71. package/dist/cjs/config/modules.cjs.map +1 -0
  72. package/dist/cjs/config/options.cjs +11 -0
  73. package/dist/cjs/config/options.cjs.map +1 -0
  74. package/dist/cjs/container/controllers.cjs +16 -0
  75. package/dist/cjs/container/controllers.cjs.map +1 -0
  76. package/dist/cjs/container/index.cjs +40 -0
  77. package/dist/cjs/container/index.cjs.map +1 -0
  78. package/dist/cjs/container/services.cjs +25 -0
  79. package/dist/cjs/container/services.cjs.map +1 -0
  80. package/dist/cjs/controllers/api/agent.api.controller.cjs +2 -2
  81. package/dist/cjs/controllers/api/threads.api.controller.cjs +2 -2
  82. package/dist/cjs/controllers/api/workflow.api.controller.cjs +7 -0
  83. package/dist/cjs/controllers/api/workflow.api.controller.cjs.map +1 -0
  84. package/dist/cjs/controllers/index.cjs +7 -8
  85. package/dist/cjs/controllers/index.cjs.map +1 -1
  86. package/dist/cjs/controllers/query.controller.cjs +3 -4
  87. package/dist/cjs/controllers/query.controller.cjs.map +1 -1
  88. package/dist/cjs/index.cjs +74 -50
  89. package/dist/cjs/index.cjs.map +1 -1
  90. package/dist/cjs/middlewares/auth.middleware.cjs +3 -3
  91. package/dist/cjs/modules/a2a/a2a.module.cjs +1 -1
  92. package/dist/cjs/modules/auth/auth.module.cjs +7 -0
  93. package/dist/cjs/modules/auth/auth.module.cjs.map +1 -0
  94. package/dist/cjs/modules/index.cjs +9 -9
  95. package/dist/cjs/modules/index.cjs.map +1 -1
  96. package/dist/cjs/modules/memory/memory.module.cjs +2 -2
  97. package/dist/cjs/routes/a2a.routes.cjs +29 -11
  98. package/dist/cjs/routes/a2a.routes.cjs.map +1 -1
  99. package/dist/cjs/routes/api/agent.routes.cjs +30 -3
  100. package/dist/cjs/routes/api/agent.routes.cjs.map +1 -1
  101. package/dist/cjs/routes/api/intent.routes.cjs +29 -3
  102. package/dist/cjs/routes/api/intent.routes.cjs.map +1 -1
  103. package/dist/cjs/routes/api/model.routes.cjs +29 -2
  104. package/dist/cjs/routes/api/model.routes.cjs.map +1 -1
  105. package/dist/cjs/routes/api/threads.routes.cjs +30 -4
  106. package/dist/cjs/routes/api/threads.routes.cjs.map +1 -1
  107. package/dist/cjs/routes/api/workflow.routes.cjs +35 -0
  108. package/dist/cjs/routes/api/workflow.routes.cjs.map +1 -0
  109. package/dist/cjs/routes/api.routes.cjs +33 -9
  110. package/dist/cjs/routes/api.routes.cjs.map +1 -1
  111. package/dist/cjs/routes/index.cjs +36 -24
  112. package/dist/cjs/routes/index.cjs.map +1 -1
  113. package/dist/cjs/routes/intent.routes.cjs +27 -15
  114. package/dist/cjs/routes/intent.routes.cjs.map +1 -1
  115. package/dist/cjs/routes/query.routes.cjs +27 -12
  116. package/dist/cjs/routes/query.routes.cjs.map +1 -1
  117. package/dist/cjs/services/a2a.service.cjs +2 -2
  118. package/dist/cjs/services/index.cjs +14 -19
  119. package/dist/cjs/services/index.cjs.map +1 -1
  120. package/dist/cjs/services/intents/aggregate.service.cjs +10 -0
  121. package/dist/cjs/services/intents/aggregate.service.cjs.map +1 -0
  122. package/dist/cjs/services/intents/fulfill.service.cjs +6 -3
  123. package/dist/cjs/services/intents/fulfill.service.cjs.map +1 -1
  124. package/dist/cjs/services/intents/multi-trigger.service.cjs +8 -0
  125. package/dist/cjs/services/intents/multi-trigger.service.cjs.map +1 -0
  126. package/dist/cjs/services/intents/single-trigger.service.cjs +8 -0
  127. package/dist/cjs/services/intents/single-trigger.service.cjs.map +1 -0
  128. package/dist/cjs/services/intents/trigger.service.cjs +4 -2
  129. package/dist/cjs/services/intents/trigger.service.cjs.map +1 -1
  130. package/dist/cjs/services/query.service.cjs +4 -8
  131. package/dist/cjs/services/query.service.cjs.map +1 -1
  132. package/dist/cjs/services/thread.service.cjs +2 -2
  133. package/dist/cjs/services/utils/aggregate.common.cjs +9 -0
  134. package/dist/cjs/services/utils/aggregate.common.cjs.map +1 -0
  135. package/dist/cjs/types/agent.cjs +2 -2
  136. package/dist/cjs/types/memory.cjs +2 -2
  137. package/dist/esm/{chunk-275JHD5P.js → chunk-2VGXYWJD.js} +5 -5
  138. package/dist/esm/chunk-2VGXYWJD.js.map +1 -0
  139. package/dist/esm/{chunk-A5PRJ33H.js → chunk-44CTGJX4.js} +116 -32
  140. package/dist/esm/chunk-44CTGJX4.js.map +1 -0
  141. package/dist/esm/{chunk-GRN6CHNO.js → chunk-4BHU7SPZ.js} +1 -1
  142. package/dist/esm/{chunk-GRN6CHNO.js.map → chunk-4BHU7SPZ.js.map} +1 -1
  143. package/dist/esm/{chunk-SPRW6KUR.js → chunk-6YBQCUNB.js} +12 -8
  144. package/dist/esm/chunk-6YBQCUNB.js.map +1 -0
  145. package/dist/esm/chunk-7DH4SI44.js +89 -0
  146. package/dist/esm/chunk-7DH4SI44.js.map +1 -0
  147. package/dist/esm/{chunk-OUIXXZFI.js → chunk-7GV6DSPE.js} +4 -1
  148. package/dist/esm/chunk-7GV6DSPE.js.map +1 -0
  149. package/dist/esm/chunk-7XQPJVYO.js +62 -0
  150. package/dist/esm/chunk-7XQPJVYO.js.map +1 -0
  151. package/dist/esm/{chunk-6AN7Z5OC.js → chunk-AEBBZSQ4.js} +10 -17
  152. package/dist/esm/chunk-AEBBZSQ4.js.map +1 -0
  153. package/dist/esm/chunk-BS52JTBH.js +8 -0
  154. package/dist/esm/chunk-BS52JTBH.js.map +1 -0
  155. package/dist/esm/chunk-BZUWX7HX.js +68 -0
  156. package/dist/esm/chunk-BZUWX7HX.js.map +1 -0
  157. package/dist/esm/{chunk-WUNZG3WP.js → chunk-C5JXXLCW.js} +1 -1
  158. package/dist/esm/chunk-C5JXXLCW.js.map +1 -0
  159. package/dist/esm/chunk-CC6DWPHZ.js +95 -0
  160. package/dist/esm/chunk-CC6DWPHZ.js.map +1 -0
  161. package/dist/esm/chunk-CG35V3ZH.js +21 -0
  162. package/dist/esm/chunk-CG35V3ZH.js.map +1 -0
  163. package/dist/esm/{chunk-JHKBIDPX.js → chunk-D6STNZ2L.js} +30 -25
  164. package/dist/esm/chunk-D6STNZ2L.js.map +1 -0
  165. package/dist/esm/chunk-FCH7BUK4.js +17 -0
  166. package/dist/esm/chunk-FCH7BUK4.js.map +1 -0
  167. package/dist/esm/chunk-I4P7JMJC.js +104 -0
  168. package/dist/esm/chunk-I4P7JMJC.js.map +1 -0
  169. package/dist/esm/chunk-IG3B5AXN.js +74 -0
  170. package/dist/esm/chunk-IG3B5AXN.js.map +1 -0
  171. package/dist/esm/{chunk-JCXAHLRN.js → chunk-JXGQVFCO.js} +20 -30
  172. package/dist/esm/chunk-JXGQVFCO.js.map +1 -0
  173. package/dist/esm/chunk-LMOWEXWF.js +38 -0
  174. package/dist/esm/chunk-LMOWEXWF.js.map +1 -0
  175. package/dist/esm/chunk-O3MPFL5J.js +47 -0
  176. package/dist/esm/chunk-O3MPFL5J.js.map +1 -0
  177. package/dist/esm/chunk-PZQRSWST.js +18 -0
  178. package/dist/esm/chunk-PZQRSWST.js.map +1 -0
  179. package/dist/esm/{chunk-KOCOM7IC.js → chunk-QQZ5ANSD.js} +8 -7
  180. package/dist/esm/chunk-QQZ5ANSD.js.map +1 -0
  181. package/dist/esm/chunk-TQJCYP7X.js +170 -0
  182. package/dist/esm/chunk-TQJCYP7X.js.map +1 -0
  183. package/dist/esm/{chunk-WZQVH4XY.js → chunk-V23GKNNJ.js} +7 -7
  184. package/dist/esm/chunk-V23GKNNJ.js.map +1 -0
  185. package/dist/esm/chunk-VBK4WM2M.js +17 -0
  186. package/dist/esm/chunk-VBK4WM2M.js.map +1 -0
  187. package/dist/esm/{chunk-F3SGL62A.js → chunk-VP5Q63JU.js} +12 -8
  188. package/dist/esm/chunk-VP5Q63JU.js.map +1 -0
  189. package/dist/esm/chunk-VSQVYW2H.js +37 -0
  190. package/dist/esm/chunk-VSQVYW2H.js.map +1 -0
  191. package/dist/esm/{chunk-TUEEIIR3.js → chunk-WKFSYGMH.js} +5 -6
  192. package/dist/esm/chunk-WKFSYGMH.js.map +1 -0
  193. package/dist/esm/{chunk-OTBWAUJF.js → chunk-YDER5JOU.js} +5 -2
  194. package/dist/esm/chunk-YDER5JOU.js.map +1 -0
  195. package/dist/esm/{chunk-4LBR3TIJ.js → chunk-ZJVWC666.js} +6 -6
  196. package/dist/esm/chunk-ZJVWC666.js.map +1 -0
  197. package/dist/esm/{chunk-AMRKK46V.js → chunk-ZK3HZBER.js} +5 -5
  198. package/dist/esm/chunk-ZK3HZBER.js.map +1 -0
  199. package/dist/esm/chunk-ZNZZZ4NN.js +45 -0
  200. package/dist/esm/chunk-ZNZZZ4NN.js.map +1 -0
  201. package/dist/esm/{chunk-RL6SRSSK.js → chunk-ZVYC5Y6Z.js} +1 -1
  202. package/dist/esm/chunk-ZVYC5Y6Z.js.map +1 -0
  203. package/dist/esm/config/agent.d.ts +25 -0
  204. package/dist/esm/config/agent.js +9 -0
  205. package/dist/esm/config/manifest.d.ts +3 -0
  206. package/dist/esm/config/modules.d.ts +34 -0
  207. package/dist/esm/config/modules.js +19 -0
  208. package/dist/esm/config/options.d.ts +14 -0
  209. package/dist/esm/config/options.js +11 -0
  210. package/dist/esm/container/controllers.d.ts +57 -0
  211. package/dist/esm/container/controllers.js +16 -0
  212. package/dist/esm/container/index.d.ts +68 -0
  213. package/dist/esm/container/index.js +40 -0
  214. package/dist/esm/container/index.js.map +1 -0
  215. package/dist/esm/container/services.d.ts +42 -0
  216. package/dist/esm/container/services.js +25 -0
  217. package/dist/esm/container/services.js.map +1 -0
  218. package/dist/esm/controllers/a2a.controller.d.ts +11 -7
  219. package/dist/esm/controllers/api/agent.api.controller.d.ts +3 -17
  220. package/dist/esm/controllers/api/agent.api.controller.js +1 -1
  221. package/dist/esm/controllers/api/threads.api.controller.js +1 -1
  222. package/dist/esm/controllers/api/workflow.api.controller.d.ts +16 -0
  223. package/dist/esm/controllers/api/workflow.api.controller.js +7 -0
  224. package/dist/esm/controllers/api/workflow.api.controller.js.map +1 -0
  225. package/dist/esm/controllers/index.d.ts +9 -11
  226. package/dist/esm/controllers/index.js +7 -8
  227. package/dist/esm/controllers/query.controller.d.ts +13 -11
  228. package/dist/esm/controllers/query.controller.js +2 -3
  229. package/dist/esm/index.d.ts +16 -10
  230. package/dist/esm/index.js +77 -53
  231. package/dist/esm/index.js.map +1 -1
  232. package/dist/esm/middlewares/auth.middleware.d.ts +2 -2
  233. package/dist/esm/middlewares/auth.middleware.js +2 -2
  234. package/dist/esm/middlewares/error.middleware.d.ts +3 -0
  235. package/dist/esm/modules/a2a/a2a.module.js +1 -1
  236. package/dist/esm/modules/auth/{base.auth.d.ts → auth.module.d.ts} +2 -2
  237. package/dist/esm/modules/auth/auth.module.js +7 -0
  238. package/dist/esm/modules/auth/auth.module.js.map +1 -0
  239. package/dist/esm/modules/index.d.ts +2 -2
  240. package/dist/esm/modules/index.js +9 -9
  241. package/dist/esm/modules/memory/base.memory.d.ts +13 -2
  242. package/dist/esm/modules/memory/memory.module.d.ts +2 -1
  243. package/dist/esm/modules/memory/memory.module.js +1 -1
  244. package/dist/esm/routes/a2a.routes.d.ts +1 -22
  245. package/dist/esm/routes/a2a.routes.js +28 -10
  246. package/dist/esm/routes/api/agent.routes.d.ts +1 -20
  247. package/dist/esm/routes/api/agent.routes.js +29 -2
  248. package/dist/esm/routes/api/intent.routes.d.ts +1 -4
  249. package/dist/esm/routes/api/intent.routes.js +28 -2
  250. package/dist/esm/routes/api/model.routes.d.ts +1 -6
  251. package/dist/esm/routes/api/model.routes.js +28 -1
  252. package/dist/esm/routes/api/threads.routes.d.ts +1 -4
  253. package/dist/esm/routes/api/threads.routes.js +29 -3
  254. package/dist/esm/routes/api/workflow.routes.d.ts +5 -0
  255. package/dist/esm/routes/api/workflow.routes.js +35 -0
  256. package/dist/esm/routes/api/workflow.routes.js.map +1 -0
  257. package/dist/esm/routes/api.routes.d.ts +1 -20
  258. package/dist/esm/routes/api.routes.js +32 -8
  259. package/dist/esm/routes/index.d.ts +0 -19
  260. package/dist/esm/routes/index.js +39 -27
  261. package/dist/esm/routes/intent.routes.d.ts +1 -20
  262. package/dist/esm/routes/intent.routes.js +26 -14
  263. package/dist/esm/routes/query.routes.d.ts +1 -20
  264. package/dist/esm/routes/query.routes.js +26 -11
  265. package/dist/esm/services/a2a.service.d.ts +14 -10
  266. package/dist/esm/services/a2a.service.js +1 -1
  267. package/dist/esm/services/index.d.ts +9 -9
  268. package/dist/esm/services/index.js +16 -21
  269. package/dist/esm/services/intents/aggregate.service.d.ts +41 -0
  270. package/dist/esm/services/intents/aggregate.service.js +10 -0
  271. package/dist/esm/services/intents/aggregate.service.js.map +1 -0
  272. package/dist/esm/services/intents/fulfill.service.d.ts +23 -7
  273. package/dist/esm/services/intents/fulfill.service.js +5 -2
  274. package/dist/esm/services/intents/multi-trigger.service.d.ts +27 -0
  275. package/dist/esm/services/intents/multi-trigger.service.js +8 -0
  276. package/dist/esm/services/intents/multi-trigger.service.js.map +1 -0
  277. package/dist/esm/services/intents/single-trigger.service.d.ts +28 -0
  278. package/dist/esm/services/intents/single-trigger.service.js +8 -0
  279. package/dist/esm/services/intents/single-trigger.service.js.map +1 -0
  280. package/dist/esm/services/intents/trigger.service.d.ts +9 -4
  281. package/dist/esm/services/intents/trigger.service.js +3 -1
  282. package/dist/esm/services/query.service.d.ts +21 -15
  283. package/dist/esm/services/query.service.js +3 -7
  284. package/dist/esm/services/thread.service.d.ts +2 -2
  285. package/dist/esm/services/thread.service.js +1 -1
  286. package/dist/esm/services/utils/aggregate.common.d.ts +10 -0
  287. package/dist/esm/services/utils/aggregate.common.js +9 -0
  288. package/dist/esm/services/utils/aggregate.common.js.map +1 -0
  289. package/dist/esm/types/agent.d.ts +9 -1
  290. package/dist/esm/types/agent.js +1 -1
  291. package/dist/esm/types/memory.d.ts +23 -1
  292. package/dist/esm/types/memory.js +1 -1
  293. package/dist/esm/types/stream.d.ts +11 -0
  294. package/package.json +1 -1
  295. package/dist/cjs/chunk-2P3ZBNVN.cjs +0 -45
  296. package/dist/cjs/chunk-2P3ZBNVN.cjs.map +0 -1
  297. package/dist/cjs/chunk-3RS6NVSN.cjs +0 -41
  298. package/dist/cjs/chunk-3RS6NVSN.cjs.map +0 -1
  299. package/dist/cjs/chunk-4Z4HSVCQ.cjs.map +0 -1
  300. package/dist/cjs/chunk-5FZ7QLJD.cjs.map +0 -1
  301. package/dist/cjs/chunk-5QSLQX4H.cjs.map +0 -1
  302. package/dist/cjs/chunk-6T2YGFSD.cjs +0 -28
  303. package/dist/cjs/chunk-6T2YGFSD.cjs.map +0 -1
  304. package/dist/cjs/chunk-7KXB6FOT.cjs +0 -112
  305. package/dist/cjs/chunk-7KXB6FOT.cjs.map +0 -1
  306. package/dist/cjs/chunk-AHNKY3JY.cjs +0 -30
  307. package/dist/cjs/chunk-AHNKY3JY.cjs.map +0 -1
  308. package/dist/cjs/chunk-DGXLVGIM.cjs +0 -36
  309. package/dist/cjs/chunk-DGXLVGIM.cjs.map +0 -1
  310. package/dist/cjs/chunk-E3PD4Q76.cjs +0 -41
  311. package/dist/cjs/chunk-E3PD4Q76.cjs.map +0 -1
  312. package/dist/cjs/chunk-EA3YMPST.cjs.map +0 -1
  313. package/dist/cjs/chunk-FJ2JWXSL.cjs.map +0 -1
  314. package/dist/cjs/chunk-HF2QUMQV.cjs +0 -30
  315. package/dist/cjs/chunk-HF2QUMQV.cjs.map +0 -1
  316. package/dist/cjs/chunk-HF7GKQ6Y.cjs +0 -105
  317. package/dist/cjs/chunk-HF7GKQ6Y.cjs.map +0 -1
  318. package/dist/cjs/chunk-MT722JJC.cjs +0 -1
  319. package/dist/cjs/chunk-MT722JJC.cjs.map +0 -1
  320. package/dist/cjs/chunk-NEWJ7PXH.cjs.map +0 -1
  321. package/dist/cjs/chunk-NNYPZA6W.cjs.map +0 -1
  322. package/dist/cjs/chunk-OZPPTVUA.cjs.map +0 -1
  323. package/dist/cjs/chunk-QCYLIOXZ.cjs.map +0 -1
  324. package/dist/cjs/chunk-RCOESZIX.cjs.map +0 -1
  325. package/dist/cjs/chunk-RVT67VJL.cjs +0 -105
  326. package/dist/cjs/chunk-RVT67VJL.cjs.map +0 -1
  327. package/dist/cjs/chunk-TZ6JOGWV.cjs.map +0 -1
  328. package/dist/cjs/chunk-U47SG7XG.cjs +0 -168
  329. package/dist/cjs/chunk-U47SG7XG.cjs.map +0 -1
  330. package/dist/cjs/chunk-X46GJS7X.cjs.map +0 -1
  331. package/dist/cjs/chunk-XEAJBA3S.cjs +0 -30
  332. package/dist/cjs/chunk-XEAJBA3S.cjs.map +0 -1
  333. package/dist/cjs/chunk-XQTVE64W.cjs +0 -8
  334. package/dist/cjs/chunk-XQTVE64W.cjs.map +0 -1
  335. package/dist/cjs/chunk-YCTPMLZO.cjs.map +0 -1
  336. package/dist/cjs/chunk-YY7HSXBP.cjs +0 -36
  337. package/dist/cjs/chunk-YY7HSXBP.cjs.map +0 -1
  338. package/dist/cjs/chunk-Z6TQ7TFO.cjs.map +0 -1
  339. package/dist/cjs/modules/auth/base.auth.cjs +0 -7
  340. package/dist/cjs/modules/auth/base.auth.cjs.map +0 -1
  341. package/dist/cjs/services/intents/fulfill-stream.service.cjs +0 -12
  342. package/dist/cjs/services/intents/fulfill-stream.service.cjs.map +0 -1
  343. package/dist/cjs/services/query-stream.service.cjs +0 -16
  344. package/dist/cjs/services/query-stream.service.cjs.map +0 -1
  345. package/dist/esm/chunk-275JHD5P.js.map +0 -1
  346. package/dist/esm/chunk-4LBR3TIJ.js.map +0 -1
  347. package/dist/esm/chunk-6AN7Z5OC.js.map +0 -1
  348. package/dist/esm/chunk-A5PRJ33H.js.map +0 -1
  349. package/dist/esm/chunk-AMRKK46V.js.map +0 -1
  350. package/dist/esm/chunk-F3SGL62A.js.map +0 -1
  351. package/dist/esm/chunk-FF5RJ4L2.js +0 -8
  352. package/dist/esm/chunk-FF5RJ4L2.js.map +0 -1
  353. package/dist/esm/chunk-JCXAHLRN.js.map +0 -1
  354. package/dist/esm/chunk-JHKBIDPX.js.map +0 -1
  355. package/dist/esm/chunk-KOCOM7IC.js.map +0 -1
  356. package/dist/esm/chunk-OTBWAUJF.js.map +0 -1
  357. package/dist/esm/chunk-OUIXXZFI.js.map +0 -1
  358. package/dist/esm/chunk-Q7NLA5X4.js +0 -30
  359. package/dist/esm/chunk-Q7NLA5X4.js.map +0 -1
  360. package/dist/esm/chunk-RL6SRSSK.js.map +0 -1
  361. package/dist/esm/chunk-SPRW6KUR.js.map +0 -1
  362. package/dist/esm/chunk-TUEEIIR3.js.map +0 -1
  363. package/dist/esm/chunk-U7REZSMO.js +0 -1
  364. package/dist/esm/chunk-UEUZ7G5P.js +0 -168
  365. package/dist/esm/chunk-UEUZ7G5P.js.map +0 -1
  366. package/dist/esm/chunk-WO2QJ6UM.js +0 -28
  367. package/dist/esm/chunk-WO2QJ6UM.js.map +0 -1
  368. package/dist/esm/chunk-WUNZG3WP.js.map +0 -1
  369. package/dist/esm/chunk-WZQVH4XY.js.map +0 -1
  370. package/dist/esm/chunk-Y7BKUWRJ.js +0 -105
  371. package/dist/esm/chunk-Y7BKUWRJ.js.map +0 -1
  372. package/dist/esm/chunk-YJTWW6QK.js +0 -41
  373. package/dist/esm/chunk-YJTWW6QK.js.map +0 -1
  374. package/dist/esm/modules/auth/base.auth.js +0 -7
  375. package/dist/esm/services/intents/fulfill-stream.service.d.ts +0 -50
  376. package/dist/esm/services/intents/fulfill-stream.service.js +0 -12
  377. package/dist/esm/services/query-stream.service.d.ts +0 -54
  378. package/dist/esm/services/query-stream.service.js +0 -16
  379. /package/dist/esm/{chunk-U7REZSMO.js.map → config/agent.js.map} +0 -0
  380. /package/dist/esm/{modules/auth/base.auth.js.map → config/modules.js.map} +0 -0
  381. /package/dist/esm/{services/intents/fulfill-stream.service.js.map → config/options.js.map} +0 -0
  382. /package/dist/esm/{services/query-stream.service.js.map → container/controllers.js.map} +0 -0
@@ -0,0 +1,89 @@
1
+ import {
2
+ IntentTriggerService
3
+ } from "./chunk-ZNZZZ4NN.js";
4
+ import {
5
+ IntentFulfillService
6
+ } from "./chunk-44CTGJX4.js";
7
+ import {
8
+ A2AService
9
+ } from "./chunk-ZJVWC666.js";
10
+ import {
11
+ QueryService
12
+ } from "./chunk-JXGQVFCO.js";
13
+ import {
14
+ ThreadService
15
+ } from "./chunk-V23GKNNJ.js";
16
+ import {
17
+ getOnIntentFallback
18
+ } from "./chunk-CG35V3ZH.js";
19
+ import {
20
+ getA2AModule,
21
+ getMCPModule,
22
+ getMemoryModule,
23
+ getModelModule
24
+ } from "./chunk-VSQVYW2H.js";
25
+
26
+ // src/container/services.ts
27
+ var ServiceContainer = class {
28
+ _threadService;
29
+ _intentTriggerService;
30
+ _intentFulfillService;
31
+ _queryService;
32
+ _a2aService;
33
+ getThreadService() {
34
+ if (!this._threadService) {
35
+ this._threadService = new ThreadService(getMemoryModule());
36
+ }
37
+ return this._threadService;
38
+ }
39
+ getIntentTriggerService() {
40
+ if (!this._intentTriggerService) {
41
+ this._intentTriggerService = new IntentTriggerService(
42
+ getModelModule(),
43
+ getMemoryModule()
44
+ );
45
+ }
46
+ return this._intentTriggerService;
47
+ }
48
+ getIntentFulfillService() {
49
+ if (!this._intentFulfillService) {
50
+ this._intentFulfillService = new IntentFulfillService(
51
+ getModelModule(),
52
+ getMemoryModule(),
53
+ getA2AModule(),
54
+ getMCPModule(),
55
+ getOnIntentFallback()
56
+ );
57
+ }
58
+ return this._intentFulfillService;
59
+ }
60
+ getQueryService() {
61
+ if (!this._queryService) {
62
+ this._queryService = new QueryService(
63
+ getModelModule(),
64
+ getMemoryModule(),
65
+ this.getIntentTriggerService(),
66
+ this.getIntentFulfillService()
67
+ );
68
+ }
69
+ return this._queryService;
70
+ }
71
+ getA2AService() {
72
+ if (!this._a2aService) {
73
+ this._a2aService = new A2AService(this.getQueryService());
74
+ }
75
+ return this._a2aService;
76
+ }
77
+ reset() {
78
+ this._threadService = void 0;
79
+ this._intentTriggerService = void 0;
80
+ this._intentFulfillService = void 0;
81
+ this._queryService = void 0;
82
+ this._a2aService = void 0;
83
+ }
84
+ };
85
+
86
+ export {
87
+ ServiceContainer
88
+ };
89
+ //# sourceMappingURL=chunk-7DH4SI44.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/container/services.ts"],"sourcesContent":["import {\n\tgetA2AModule,\n\tgetMCPModule,\n\tgetMemoryModule,\n\tgetModelModule,\n} from \"@/config/modules\";\nimport { getOnIntentFallback } from \"@/config/options\";\nimport { A2AService } from \"@/services/a2a.service\";\nimport { IntentFulfillService } from \"@/services/intents/fulfill.service\";\nimport { IntentTriggerService } from \"@/services/intents/trigger.service\";\nimport { QueryService } from \"@/services/query.service\";\nimport { ThreadService } from \"@/services/thread.service\";\n\n/**\n * Service factory for dependency injection.\n * Manages singleton instances of all services.\n */\nexport class ServiceContainer {\n\tprivate _threadService?: ThreadService;\n\tprivate _intentTriggerService?: IntentTriggerService;\n\tprivate _intentFulfillService?: IntentFulfillService;\n\tprivate _queryService?: QueryService;\n\tprivate _a2aService?: A2AService;\n\n\tgetThreadService(): ThreadService {\n\t\tif (!this._threadService) {\n\t\t\tthis._threadService = new ThreadService(getMemoryModule());\n\t\t}\n\t\treturn this._threadService;\n\t}\n\n\tgetIntentTriggerService(): IntentTriggerService {\n\t\tif (!this._intentTriggerService) {\n\t\t\tthis._intentTriggerService = new IntentTriggerService(\n\t\t\t\tgetModelModule(),\n\t\t\t\tgetMemoryModule(),\n\t\t\t);\n\t\t}\n\t\treturn this._intentTriggerService;\n\t}\n\n\tgetIntentFulfillService(): IntentFulfillService {\n\t\tif (!this._intentFulfillService) {\n\t\t\tthis._intentFulfillService = new IntentFulfillService(\n\t\t\t\tgetModelModule(),\n\t\t\t\tgetMemoryModule(),\n\t\t\t\tgetA2AModule(),\n\t\t\t\tgetMCPModule(),\n\t\t\t\tgetOnIntentFallback(),\n\t\t\t);\n\t\t}\n\t\treturn this._intentFulfillService;\n\t}\n\n\tgetQueryService(): QueryService {\n\t\tif (!this._queryService) {\n\t\t\tthis._queryService = new QueryService(\n\t\t\t\tgetModelModule(),\n\t\t\t\tgetMemoryModule(),\n\t\t\t\tthis.getIntentTriggerService(),\n\t\t\t\tthis.getIntentFulfillService(),\n\t\t\t);\n\t\t}\n\t\treturn this._queryService;\n\t}\n\n\tgetA2AService(): A2AService {\n\t\tif (!this._a2aService) {\n\t\t\tthis._a2aService = new A2AService(this.getQueryService());\n\t\t}\n\t\treturn this._a2aService;\n\t}\n\n\treset(): void {\n\t\tthis._threadService = undefined;\n\t\tthis._intentTriggerService = undefined;\n\t\tthis._intentFulfillService = undefined;\n\t\tthis._queryService = undefined;\n\t\tthis._a2aService = undefined;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAiBO,IAAM,mBAAN,MAAuB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAER,mBAAkC;AACjC,QAAI,CAAC,KAAK,gBAAgB;AACzB,WAAK,iBAAiB,IAAI,cAAc,gBAAgB,CAAC;AAAA,IAC1D;AACA,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,0BAAgD;AAC/C,QAAI,CAAC,KAAK,uBAAuB;AAChC,WAAK,wBAAwB,IAAI;AAAA,QAChC,eAAe;AAAA,QACf,gBAAgB;AAAA,MACjB;AAAA,IACD;AACA,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,0BAAgD;AAC/C,QAAI,CAAC,KAAK,uBAAuB;AAChC,WAAK,wBAAwB,IAAI;AAAA,QAChC,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,aAAa;AAAA,QACb,aAAa;AAAA,QACb,oBAAoB;AAAA,MACrB;AAAA,IACD;AACA,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,kBAAgC;AAC/B,QAAI,CAAC,KAAK,eAAe;AACxB,WAAK,gBAAgB,IAAI;AAAA,QACxB,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,KAAK,wBAAwB;AAAA,QAC7B,KAAK,wBAAwB;AAAA,MAC9B;AAAA,IACD;AACA,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,gBAA4B;AAC3B,QAAI,CAAC,KAAK,aAAa;AACtB,WAAK,cAAc,IAAI,WAAW,KAAK,gBAAgB,CAAC;AAAA,IACzD;AACA,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,QAAc;AACb,SAAK,iBAAiB;AACtB,SAAK,wBAAwB;AAC7B,SAAK,wBAAwB;AAC7B,SAAK,gBAAgB;AACrB,SAAK,cAAc;AAAA,EACpB;AACD;","names":[]}
@@ -21,9 +21,12 @@ var MemoryModule = class {
21
21
  getIntentMemory() {
22
22
  return this.memory.getIntentMemory();
23
23
  }
24
+ getWorkflowMemory() {
25
+ return this.memory.getWorkflowMemory();
26
+ }
24
27
  };
25
28
 
26
29
  export {
27
30
  MemoryModule
28
31
  };
29
- //# sourceMappingURL=chunk-OUIXXZFI.js.map
32
+ //# sourceMappingURL=chunk-7GV6DSPE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/modules/memory/memory.module.ts"],"sourcesContent":["import type {\n\tIAgentMemory,\n\tIIntentMemory,\n\tIMemory,\n\tIThreadMemory,\n\tIWorkflowMemory,\n} from \"./base.memory.js\";\n\nexport class MemoryModule {\n\tprivate memory: IMemory;\n\n\tconstructor(memory: IMemory) {\n\t\tthis.memory = memory;\n\t}\n\n\tasync initialize(): Promise<void> {\n\t\tawait this.memory.connect();\n\t}\n\n\tasync shutdown(): Promise<void> {\n\t\tif (this.memory.isConnected()) {\n\t\t\tawait this.memory.disconnect();\n\t\t}\n\t}\n\n\tpublic getAgentMemory(): IAgentMemory {\n\t\treturn this.memory.getAgentMemory();\n\t}\n\n\tpublic getThreadMemory(): IThreadMemory {\n\t\treturn this.memory.getThreadMemory();\n\t}\n\n\tpublic getIntentMemory(): IIntentMemory {\n\t\treturn this.memory.getIntentMemory();\n\t}\n\n\tpublic getWorkflowMemory(): IWorkflowMemory {\n\t\treturn this.memory.getWorkflowMemory();\n\t}\n}\n"],"mappings":";AAQO,IAAM,eAAN,MAAmB;AAAA,EACjB;AAAA,EAER,YAAY,QAAiB;AAC5B,SAAK,SAAS;AAAA,EACf;AAAA,EAEA,MAAM,aAA4B;AACjC,UAAM,KAAK,OAAO,QAAQ;AAAA,EAC3B;AAAA,EAEA,MAAM,WAA0B;AAC/B,QAAI,KAAK,OAAO,YAAY,GAAG;AAC9B,YAAM,KAAK,OAAO,WAAW;AAAA,IAC9B;AAAA,EACD;AAAA,EAEO,iBAA+B;AACrC,WAAO,KAAK,OAAO,eAAe;AAAA,EACnC;AAAA,EAEO,kBAAiC;AACvC,WAAO,KAAK,OAAO,gBAAgB;AAAA,EACpC;AAAA,EAEO,kBAAiC;AACvC,WAAO,KAAK,OAAO,gBAAgB;AAAA,EACpC;AAAA,EAEO,oBAAqC;AAC3C,WAAO,KAAK,OAAO,kBAAkB;AAAA,EACtC;AACD;","names":[]}
@@ -0,0 +1,62 @@
1
+ import {
2
+ container
3
+ } from "./chunk-IG3B5AXN.js";
4
+ import {
5
+ AinHttpError
6
+ } from "./chunk-C5JXXLCW.js";
7
+ import {
8
+ getMemoryModule
9
+ } from "./chunk-VSQVYW2H.js";
10
+
11
+ // src/routes/api/workflow.routes.ts
12
+ import {
13
+ Router
14
+ } from "express";
15
+ import { StatusCodes } from "http-status-codes";
16
+ var createWorkflowApiRouter = () => {
17
+ const router = Router();
18
+ const workflowApiController = container.getWorkflowApiController();
19
+ const checkWorkflowMemory = (_req, _res, next) => {
20
+ const memoryModule = getMemoryModule();
21
+ const workflowMemory = memoryModule.getWorkflowMemory();
22
+ if (!workflowMemory) {
23
+ const error = new AinHttpError(
24
+ StatusCodes.SERVICE_UNAVAILABLE,
25
+ "Workflow memory is not initialized"
26
+ );
27
+ throw error;
28
+ }
29
+ next();
30
+ };
31
+ router.get(
32
+ "/",
33
+ checkWorkflowMemory,
34
+ workflowApiController.handleGetAllWorkflows
35
+ );
36
+ router.get(
37
+ "/:id",
38
+ checkWorkflowMemory,
39
+ workflowApiController.handleGetWorkflow
40
+ );
41
+ router.post(
42
+ "/",
43
+ checkWorkflowMemory,
44
+ workflowApiController.handleCreateWorkflow
45
+ );
46
+ router.post(
47
+ "/update/:id",
48
+ checkWorkflowMemory,
49
+ workflowApiController.handleUpdateWorkflow
50
+ );
51
+ router.post(
52
+ "/delete/:id",
53
+ checkWorkflowMemory,
54
+ workflowApiController.handleDeleteWorkflow
55
+ );
56
+ return router;
57
+ };
58
+
59
+ export {
60
+ createWorkflowApiRouter
61
+ };
62
+ //# sourceMappingURL=chunk-7XQPJVYO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/routes/api/workflow.routes.ts"],"sourcesContent":["import {\n\ttype NextFunction,\n\ttype Request,\n\ttype Response,\n\tRouter,\n} from \"express\";\nimport { StatusCodes } from \"http-status-codes\";\nimport { getMemoryModule } from \"@/config/modules\";\nimport { container } from \"@/container\";\nimport { AinHttpError } from \"@/types/agent\";\n\nexport const createWorkflowApiRouter = (): Router => {\n\tconst router = Router();\n\tconst workflowApiController = container.getWorkflowApiController();\n\n\tconst checkWorkflowMemory = (\n\t\t_req: Request,\n\t\t_res: Response,\n\t\tnext: NextFunction,\n\t) => {\n\t\tconst memoryModule = getMemoryModule();\n\t\tconst workflowMemory = memoryModule.getWorkflowMemory();\n\t\tif (!workflowMemory) {\n\t\t\tconst error = new AinHttpError(\n\t\t\t\tStatusCodes.SERVICE_UNAVAILABLE,\n\t\t\t\t\"Workflow memory is not initialized\",\n\t\t\t);\n\t\t\tthrow error;\n\t\t}\n\t\tnext();\n\t};\n\n\t// APIs (prefix: /api/workflow)\n\trouter.get(\n\t\t\"/\",\n\t\tcheckWorkflowMemory,\n\t\tworkflowApiController.handleGetAllWorkflows,\n\t);\n\trouter.get(\n\t\t\"/:id\",\n\t\tcheckWorkflowMemory,\n\t\tworkflowApiController.handleGetWorkflow,\n\t);\n\trouter.post(\n\t\t\"/\",\n\t\tcheckWorkflowMemory,\n\t\tworkflowApiController.handleCreateWorkflow,\n\t);\n\trouter.post(\n\t\t\"/update/:id\",\n\t\tcheckWorkflowMemory,\n\t\tworkflowApiController.handleUpdateWorkflow,\n\t);\n\trouter.post(\n\t\t\"/delete/:id\",\n\t\tcheckWorkflowMemory,\n\t\tworkflowApiController.handleDeleteWorkflow,\n\t);\n\n\treturn router;\n};\n"],"mappings":";;;;;;;;;;;AAAA;AAAA,EAIC;AAAA,OACM;AACP,SAAS,mBAAmB;AAKrB,IAAM,0BAA0B,MAAc;AACpD,QAAM,SAAS,OAAO;AACtB,QAAM,wBAAwB,UAAU,yBAAyB;AAEjE,QAAM,sBAAsB,CAC3B,MACA,MACA,SACI;AACJ,UAAM,eAAe,gBAAgB;AACrC,UAAM,iBAAiB,aAAa,kBAAkB;AACtD,QAAI,CAAC,gBAAgB;AACpB,YAAM,QAAQ,IAAI;AAAA,QACjB,YAAY;AAAA,QACZ;AAAA,MACD;AACA,YAAM;AAAA,IACP;AACA,SAAK;AAAA,EACN;AAGA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,sBAAsB;AAAA,EACvB;AACA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,sBAAsB;AAAA,EACvB;AACA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,sBAAsB;AAAA,EACvB;AACA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,sBAAsB;AAAA,EACvB;AACA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,sBAAsB;AAAA,EACvB;AAEA,SAAO;AACR;","names":[]}
@@ -1,30 +1,23 @@
1
- import {
2
- QueryStreamService
3
- } from "./chunk-JCXAHLRN.js";
4
- import {
5
- A2AService
6
- } from "./chunk-4LBR3TIJ.js";
7
1
  import {
8
2
  A2AController
9
3
  } from "./chunk-YMSNW2SU.js";
4
+ import {
5
+ getAgent
6
+ } from "./chunk-VBK4WM2M.js";
7
+ import {
8
+ container
9
+ } from "./chunk-IG3B5AXN.js";
10
10
 
11
11
  // src/routes/a2a.routes.ts
12
12
  import { InMemoryTaskStore } from "@a2a-js/sdk/server";
13
13
  import { Router } from "express";
14
- var createA2ARouter = (agent) => {
14
+ var createA2ARouter = () => {
15
15
  const router = Router();
16
16
  const taskStore = new InMemoryTaskStore();
17
- const queryStreamService = new QueryStreamService(
18
- agent.modelModule,
19
- agent.a2aModule,
20
- agent.mcpModule,
21
- agent.memoryModule
22
- );
23
- const a2aService = new A2AService(queryStreamService);
24
17
  const a2aController = new A2AController(
25
- a2aService,
18
+ container.getA2AService(),
26
19
  taskStore,
27
- agent.generateAgentCard
20
+ getAgent().generateAgentCard
28
21
  );
29
22
  router.post("/", a2aController.handleA2ARequest);
30
23
  return router;
@@ -33,4 +26,4 @@ var createA2ARouter = (agent) => {
33
26
  export {
34
27
  createA2ARouter
35
28
  };
36
- //# sourceMappingURL=chunk-6AN7Z5OC.js.map
29
+ //# sourceMappingURL=chunk-AEBBZSQ4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/routes/a2a.routes.ts"],"sourcesContent":["import { InMemoryTaskStore } from \"@a2a-js/sdk/server\";\nimport { Router } from \"express\";\nimport { getAgent } from \"@/config/agent\";\nimport { container } from \"@/container\";\nimport { A2AController } from \"../controllers/a2a.controller.js\";\n\n/**\n * Creates and configures the A2A router.\n * This function is a \"composition root\" for the A2A feature,\n * creating and injecting all necessary dependencies.\n * @returns An Express Router instance.\n */\nexport const createA2ARouter = (): Router => {\n\tconst router = Router();\n\n\t// TaskStore is stateful and needs fresh instance per router\n\tconst taskStore = new InMemoryTaskStore();\n\tconst a2aController = new A2AController(\n\t\tcontainer.getA2AService(),\n\t\ttaskStore,\n\t\tgetAgent().generateAgentCard,\n\t);\n\n\trouter.post(\"/\", a2aController.handleA2ARequest);\n\n\treturn router;\n};\n"],"mappings":";;;;;;;;;;;AAAA,SAAS,yBAAyB;AAClC,SAAS,cAAc;AAWhB,IAAM,kBAAkB,MAAc;AAC5C,QAAM,SAAS,OAAO;AAGtB,QAAM,YAAY,IAAI,kBAAkB;AACxC,QAAM,gBAAgB,IAAI;AAAA,IACzB,UAAU,cAAc;AAAA,IACxB;AAAA,IACA,SAAS,EAAE;AAAA,EACZ;AAEA,SAAO,KAAK,KAAK,cAAc,gBAAgB;AAE/C,SAAO;AACR;","names":[]}
@@ -0,0 +1,8 @@
1
+ // src/modules/auth/auth.module.ts
2
+ var AuthModule = class {
3
+ };
4
+
5
+ export {
6
+ AuthModule
7
+ };
8
+ //# sourceMappingURL=chunk-BS52JTBH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/modules/auth/auth.module.ts"],"sourcesContent":["import type { Request, Response } from \"express\";\nimport type { AuthResponse } from \"@/types/auth\";\n\nexport abstract class AuthModule {\n\tabstract authenticate(req: Request, res: Response): Promise<AuthResponse>;\n}\n"],"mappings":";AAGO,IAAe,aAAf,MAA0B;AAEjC;","names":[]}
@@ -0,0 +1,68 @@
1
+ // src/controllers/api/workflow.api.controller.ts
2
+ import { StatusCodes } from "http-status-codes";
3
+ var WorkflowApiController = class {
4
+ memoryModule;
5
+ constructor(memoryModule) {
6
+ this.memoryModule = memoryModule;
7
+ }
8
+ handleGetAllWorkflows = async (req, res, next) => {
9
+ try {
10
+ const { userId } = req.query;
11
+ const workflowMemory = this.memoryModule.getWorkflowMemory();
12
+ const workflows = await workflowMemory?.listWorkflows(userId);
13
+ res.json(workflows);
14
+ } catch (error) {
15
+ next(error);
16
+ }
17
+ };
18
+ handleGetWorkflow = async (req, res, next) => {
19
+ try {
20
+ const { id } = req.params;
21
+ const workflowMemory = this.memoryModule.getWorkflowMemory();
22
+ const workflow = await workflowMemory?.getWorkflow(id);
23
+ if (!workflow) {
24
+ res.status(StatusCodes.NOT_FOUND).send();
25
+ return;
26
+ }
27
+ res.json(workflow);
28
+ } catch (error) {
29
+ next(error);
30
+ }
31
+ };
32
+ handleCreateWorkflow = async (req, res, next) => {
33
+ try {
34
+ const workflow = req.body;
35
+ const workflowMemory = this.memoryModule.getWorkflowMemory();
36
+ const created = await workflowMemory?.createWorkflow(workflow);
37
+ res.status(StatusCodes.CREATED).json(created);
38
+ } catch (error) {
39
+ next(error);
40
+ }
41
+ };
42
+ handleUpdateWorkflow = async (req, res, next) => {
43
+ try {
44
+ const { id } = req.params;
45
+ const workflow = req.body;
46
+ const workflowMemory = this.memoryModule.getWorkflowMemory();
47
+ await workflowMemory?.updateWorkflow(id, workflow);
48
+ res.status(StatusCodes.OK).send();
49
+ } catch (error) {
50
+ next(error);
51
+ }
52
+ };
53
+ handleDeleteWorkflow = async (req, res, next) => {
54
+ try {
55
+ const { id } = req.params;
56
+ const workflowMemory = this.memoryModule.getWorkflowMemory();
57
+ await workflowMemory?.deleteWorkflow(id);
58
+ res.status(StatusCodes.OK).send();
59
+ } catch (error) {
60
+ next(error);
61
+ }
62
+ };
63
+ };
64
+
65
+ export {
66
+ WorkflowApiController
67
+ };
68
+ //# sourceMappingURL=chunk-BZUWX7HX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/controllers/api/workflow.api.controller.ts"],"sourcesContent":["import type { NextFunction, Request, Response } from \"express\";\nimport { StatusCodes } from \"http-status-codes\";\nimport type { MemoryModule } from \"@/modules/index.js\";\nimport type { Workflow } from \"@/types/memory\";\n\nexport class WorkflowApiController {\n\tprivate memoryModule: MemoryModule;\n\n\tconstructor(memoryModule: MemoryModule) {\n\t\tthis.memoryModule = memoryModule;\n\t}\n\n\tpublic handleGetAllWorkflows = async (\n\t\treq: Request,\n\t\tres: Response,\n\t\tnext: NextFunction,\n\t) => {\n\t\ttry {\n\t\t\tconst { userId } = req.query as { userId?: string };\n\t\t\tconst workflowMemory = this.memoryModule.getWorkflowMemory();\n\t\t\tconst workflows = await workflowMemory?.listWorkflows(userId);\n\t\t\tres.json(workflows);\n\t\t} catch (error) {\n\t\t\tnext(error);\n\t\t}\n\t};\n\n\tpublic handleGetWorkflow = async (\n\t\treq: Request,\n\t\tres: Response,\n\t\tnext: NextFunction,\n\t) => {\n\t\ttry {\n\t\t\tconst { id } = req.params as { id: string };\n\t\t\tconst workflowMemory = this.memoryModule.getWorkflowMemory();\n\t\t\tconst workflow = await workflowMemory?.getWorkflow(id);\n\t\t\tif (!workflow) {\n\t\t\t\tres.status(StatusCodes.NOT_FOUND).send();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tres.json(workflow);\n\t\t} catch (error) {\n\t\t\tnext(error);\n\t\t}\n\t};\n\n\tpublic handleCreateWorkflow = async (\n\t\treq: Request,\n\t\tres: Response,\n\t\tnext: NextFunction,\n\t) => {\n\t\ttry {\n\t\t\tconst workflow = req.body as Workflow;\n\t\t\tconst workflowMemory = this.memoryModule.getWorkflowMemory();\n\t\t\tconst created = await workflowMemory?.createWorkflow(workflow);\n\t\t\tres.status(StatusCodes.CREATED).json(created);\n\t\t} catch (error) {\n\t\t\tnext(error);\n\t\t}\n\t};\n\n\tpublic handleUpdateWorkflow = async (\n\t\treq: Request,\n\t\tres: Response,\n\t\tnext: NextFunction,\n\t) => {\n\t\ttry {\n\t\t\tconst { id } = req.params as { id: string };\n\t\t\tconst workflow = req.body as Partial<Workflow>;\n\t\t\tconst workflowMemory = this.memoryModule.getWorkflowMemory();\n\t\t\tawait workflowMemory?.updateWorkflow(id, workflow);\n\t\t\tres.status(StatusCodes.OK).send();\n\t\t} catch (error) {\n\t\t\tnext(error);\n\t\t}\n\t};\n\n\tpublic handleDeleteWorkflow = async (\n\t\treq: Request,\n\t\tres: Response,\n\t\tnext: NextFunction,\n\t) => {\n\t\ttry {\n\t\t\tconst { id } = req.params as { id: string };\n\t\t\tconst workflowMemory = this.memoryModule.getWorkflowMemory();\n\t\t\tawait workflowMemory?.deleteWorkflow(id);\n\t\t\tres.status(StatusCodes.OK).send();\n\t\t} catch (error) {\n\t\t\tnext(error);\n\t\t}\n\t};\n}\n"],"mappings":";AACA,SAAS,mBAAmB;AAIrB,IAAM,wBAAN,MAA4B;AAAA,EAC1B;AAAA,EAER,YAAY,cAA4B;AACvC,SAAK,eAAe;AAAA,EACrB;AAAA,EAEO,wBAAwB,OAC9B,KACA,KACA,SACI;AACJ,QAAI;AACH,YAAM,EAAE,OAAO,IAAI,IAAI;AACvB,YAAM,iBAAiB,KAAK,aAAa,kBAAkB;AAC3D,YAAM,YAAY,MAAM,gBAAgB,cAAc,MAAM;AAC5D,UAAI,KAAK,SAAS;AAAA,IACnB,SAAS,OAAO;AACf,WAAK,KAAK;AAAA,IACX;AAAA,EACD;AAAA,EAEO,oBAAoB,OAC1B,KACA,KACA,SACI;AACJ,QAAI;AACH,YAAM,EAAE,GAAG,IAAI,IAAI;AACnB,YAAM,iBAAiB,KAAK,aAAa,kBAAkB;AAC3D,YAAM,WAAW,MAAM,gBAAgB,YAAY,EAAE;AACrD,UAAI,CAAC,UAAU;AACd,YAAI,OAAO,YAAY,SAAS,EAAE,KAAK;AACvC;AAAA,MACD;AACA,UAAI,KAAK,QAAQ;AAAA,IAClB,SAAS,OAAO;AACf,WAAK,KAAK;AAAA,IACX;AAAA,EACD;AAAA,EAEO,uBAAuB,OAC7B,KACA,KACA,SACI;AACJ,QAAI;AACH,YAAM,WAAW,IAAI;AACrB,YAAM,iBAAiB,KAAK,aAAa,kBAAkB;AAC3D,YAAM,UAAU,MAAM,gBAAgB,eAAe,QAAQ;AAC7D,UAAI,OAAO,YAAY,OAAO,EAAE,KAAK,OAAO;AAAA,IAC7C,SAAS,OAAO;AACf,WAAK,KAAK;AAAA,IACX;AAAA,EACD;AAAA,EAEO,uBAAuB,OAC7B,KACA,KACA,SACI;AACJ,QAAI;AACH,YAAM,EAAE,GAAG,IAAI,IAAI;AACnB,YAAM,WAAW,IAAI;AACrB,YAAM,iBAAiB,KAAK,aAAa,kBAAkB;AAC3D,YAAM,gBAAgB,eAAe,IAAI,QAAQ;AACjD,UAAI,OAAO,YAAY,EAAE,EAAE,KAAK;AAAA,IACjC,SAAS,OAAO;AACf,WAAK,KAAK;AAAA,IACX;AAAA,EACD;AAAA,EAEO,uBAAuB,OAC7B,KACA,KACA,SACI;AACJ,QAAI;AACH,YAAM,EAAE,GAAG,IAAI,IAAI;AACnB,YAAM,iBAAiB,KAAK,aAAa,kBAAkB;AAC3D,YAAM,gBAAgB,eAAe,EAAE;AACvC,UAAI,OAAO,YAAY,EAAE,EAAE,KAAK;AAAA,IACjC,SAAS,OAAO;AACf,WAAK,KAAK;AAAA,IACX;AAAA,EACD;AACD;","names":[]}
@@ -10,4 +10,4 @@ var AinHttpError = class extends Error {
10
10
  export {
11
11
  AinHttpError
12
12
  };
13
- //# sourceMappingURL=chunk-WUNZG3WP.js.map
13
+ //# sourceMappingURL=chunk-C5JXXLCW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/types/agent.ts"],"sourcesContent":["import type { StatusCodes } from \"http-status-codes\";\nimport type { ThreadObject, TriggeredIntent } from \"./memory\";\nimport type { StreamEvent } from \"./stream\";\n\nexport type IntentFallbackContext = {\n\ttriggeredIntent: TriggeredIntent;\n\tthread: ThreadObject;\n};\n\nexport type OnIntentFallback = (\n\tcontext: IntentFallbackContext,\n) => AsyncGenerator<StreamEvent> | undefined;\n\n/**\n * Agent manifest containing essential metadata and configuration.\n *\n * The manifest defines the agent's identity, version, and optional configuration\n * such as the public URL for A2A protocol support and custom prompts.\n *\n * @example\n * ```typescript\n * const manifest: AinAgentManifest = {\n * name: \"CustomerSupportAgent\",\n * description: \"AI agent for handling customer support queries\",\n * version: \"1.0.0\",\n * url: \"https://api.example.com/agent\",\n * prompts: {\n * system: \"You are a helpful customer support assistant.\",\n * agent: \"Always be polite and provide detailed solutions.\"\n * }\n * };\n * ```\n */\nexport type AinAgentManifest = {\n\t/** Unique name identifier for the agent */\n\tname: string;\n\t/** Human-readable description of the agent's purpose and capabilities */\n\tdescription: string;\n\t/** Optional public URL for A2A protocol discovery and communication */\n\turl?: string;\n};\n\nexport class AinHttpError extends Error {\n\tpublic status?: StatusCodes;\n\n\tconstructor(status: StatusCodes, message: string) {\n\t\tsuper(message);\n\t\tthis.status = status;\n\t}\n}\n"],"mappings":";AA0CO,IAAM,eAAN,cAA2B,MAAM;AAAA,EAChC;AAAA,EAEP,YAAY,QAAqB,SAAiB;AACjD,UAAM,OAAO;AACb,SAAK,SAAS;AAAA,EACf;AACD;","names":[]}
@@ -0,0 +1,95 @@
1
+ import {
2
+ loggers
3
+ } from "./chunk-VUMI4XOY.js";
4
+
5
+ // src/services/intents/single-trigger.service.ts
6
+ var SingleIntentTriggerService = class {
7
+ modelModule;
8
+ memoryModule;
9
+ constructor(modelModule, memoryModule) {
10
+ this.modelModule = modelModule;
11
+ this.memoryModule = memoryModule;
12
+ }
13
+ /**
14
+ * Detects a single intent from context.
15
+ * Simpler prompt that doesn't decompose queries into subqueries.
16
+ *
17
+ * @param query - The user's input query
18
+ * @param thread - The thread history
19
+ * @returns Array with single TriggeredIntent
20
+ */
21
+ async intentTriggering(query, thread) {
22
+ const modelInstance = this.modelModule.getModel();
23
+ const modelOptions = this.modelModule.getModelOptions();
24
+ const intentMemory = this.memoryModule.getIntentMemory();
25
+ if (!intentMemory) {
26
+ return [{ subquery: query }];
27
+ }
28
+ const intents = await intentMemory.listIntents();
29
+ if (intents.length === 0) {
30
+ loggers.intentStream.warn("No intent found");
31
+ return [{ subquery: query }];
32
+ }
33
+ const intentList = intents.map((intent) => `- ${intent.name}: ${intent.description}`).join("\n");
34
+ const threadMessages = !thread ? "" : thread.messages.sort((a, b) => a.timestamp - b.timestamp).map((message) => {
35
+ const role = message.role === "USER" ? "User" : message.role === "MODEL" ? "Assistant" : "System";
36
+ const content = Array.isArray(message.content.parts) ? message.content.parts.join(" ") : String(message.content.parts);
37
+ return `${role}: """${content}"""`;
38
+ }).join("\n");
39
+ const systemPrompt = `
40
+ Today is ${(/* @__PURE__ */ new Date()).toLocaleDateString()}.
41
+ You are an expert in accurately identifying user intentions.
42
+
43
+ Available intent list:
44
+ ${intentList}
45
+
46
+ Please select and answer only from the above intent list.`;
47
+ const userMessage = `
48
+ ${threadMessages !== "" ? `The following is the conversation history with the user: ${threadMessages}
49
+
50
+ ` : ""}
51
+ User question: "${query}"
52
+
53
+ Based on the above conversation history, analyze the user question and identify the most relevant intent.
54
+
55
+ Instructions:
56
+ 1. Select the single most appropriate intent from the available intent list
57
+ 2. If no intent matches well, do not set intentName
58
+ 3. Provide a 2-3 sentence action plan describing what will be done
59
+
60
+ Output Format:
61
+ You MUST return the output in the following JSON format. Do not include any other text before or after the JSON:
62
+ {
63
+ "intentName": "<intent_name or null>",
64
+ "actionPlan": "<2-3 sentence description of what will be done>"
65
+ }`;
66
+ const messages = modelInstance.generateMessages({
67
+ query: userMessage,
68
+ systemPrompt
69
+ });
70
+ const response = await modelInstance.fetch(messages, modelOptions);
71
+ if (!response.content) {
72
+ loggers.intent.warn("Cannot extract intent from query");
73
+ return [{ subquery: query }];
74
+ }
75
+ let parsed;
76
+ try {
77
+ parsed = JSON.parse(response.content);
78
+ } catch (error) {
79
+ return [{ subquery: query }];
80
+ }
81
+ const result = {
82
+ subquery: query,
83
+ actionPlan: parsed.actionPlan
84
+ };
85
+ if (parsed.intentName) {
86
+ result.intent = await intentMemory.getIntentByName(parsed.intentName);
87
+ }
88
+ return [result];
89
+ }
90
+ };
91
+
92
+ export {
93
+ SingleIntentTriggerService
94
+ };
95
+ //# sourceMappingURL=chunk-CC6DWPHZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/services/intents/single-trigger.service.ts"],"sourcesContent":["import type { MemoryModule, ModelModule } from \"@/modules\";\nimport type {\n\tMessageObject,\n\tThreadObject,\n\tTriggeredIntent,\n} from \"@/types/memory\";\nimport { loggers } from \"@/utils/logger\";\n\n/**\n * Service for single-intent triggering.\n * Identifies a single intent without decomposing queries into subqueries.\n */\nexport class SingleIntentTriggerService {\n\tprivate modelModule: ModelModule;\n\tprivate memoryModule: MemoryModule;\n\n\tconstructor(modelModule: ModelModule, memoryModule: MemoryModule) {\n\t\tthis.modelModule = modelModule;\n\t\tthis.memoryModule = memoryModule;\n\t}\n\n\t/**\n\t * Detects a single intent from context.\n\t * Simpler prompt that doesn't decompose queries into subqueries.\n\t *\n\t * @param query - The user's input query\n\t * @param thread - The thread history\n\t * @returns Array with single TriggeredIntent\n\t */\n\tpublic async intentTriggering(\n\t\tquery: string,\n\t\tthread: ThreadObject | undefined,\n\t): Promise<Array<TriggeredIntent>> {\n\t\tconst modelInstance = this.modelModule.getModel();\n\t\tconst modelOptions = this.modelModule.getModelOptions();\n\t\tconst intentMemory = this.memoryModule.getIntentMemory();\n\t\tif (!intentMemory) {\n\t\t\treturn [{ subquery: query }];\n\t\t}\n\n\t\tconst intents = await intentMemory.listIntents();\n\t\tif (intents.length === 0) {\n\t\t\tloggers.intentStream.warn(\"No intent found\");\n\t\t\treturn [{ subquery: query }];\n\t\t}\n\n\t\tconst intentList = intents\n\t\t\t.map((intent) => `- ${intent.name}: ${intent.description}`)\n\t\t\t.join(\"\\n\");\n\n\t\t// Convert thread messages to a string\n\t\tconst threadMessages = !thread\n\t\t\t? \"\"\n\t\t\t: thread.messages\n\t\t\t\t\t.sort((a, b) => a.timestamp - b.timestamp)\n\t\t\t\t\t.map((message: MessageObject) => {\n\t\t\t\t\t\tconst role =\n\t\t\t\t\t\t\tmessage.role === \"USER\"\n\t\t\t\t\t\t\t\t? \"User\"\n\t\t\t\t\t\t\t\t: message.role === \"MODEL\"\n\t\t\t\t\t\t\t\t\t? \"Assistant\"\n\t\t\t\t\t\t\t\t\t: \"System\";\n\t\t\t\t\t\tconst content = Array.isArray(message.content.parts)\n\t\t\t\t\t\t\t? message.content.parts.join(\" \")\n\t\t\t\t\t\t\t: String(message.content.parts);\n\t\t\t\t\t\treturn `${role}: \"\"\"${content}\"\"\"`;\n\t\t\t\t\t})\n\t\t\t\t\t.join(\"\\n\");\n\n\t\tconst systemPrompt = `\nToday is ${new Date().toLocaleDateString()}.\nYou are an expert in accurately identifying user intentions.\n\nAvailable intent list:\n${intentList}\n\nPlease select and answer only from the above intent list.`;\n\n\t\tconst userMessage = `\n${\n\tthreadMessages !== \"\"\n\t\t? `The following is the conversation history with the user: ${threadMessages}\n\n\t`\n\t\t: \"\"\n}\nUser question: \"${query}\"\n\nBased on the above conversation history, analyze the user question and identify the most relevant intent.\n\nInstructions:\n1. Select the single most appropriate intent from the available intent list\n2. If no intent matches well, do not set intentName\n3. Provide a 2-3 sentence action plan describing what will be done\n\nOutput Format:\nYou MUST return the output in the following JSON format. Do not include any other text before or after the JSON:\n{\n \"intentName\": \"<intent_name or null>\",\n \"actionPlan\": \"<2-3 sentence description of what will be done>\"\n}`;\n\n\t\tconst messages = modelInstance.generateMessages({\n\t\t\tquery: userMessage,\n\t\t\tsystemPrompt,\n\t\t});\n\n\t\tconst response = await modelInstance.fetch(messages, modelOptions);\n\t\tif (!response.content) {\n\t\t\tloggers.intent.warn(\"Cannot extract intent from query\");\n\t\t\treturn [{ subquery: query }];\n\t\t}\n\n\t\tlet parsed: { intentName?: string; actionPlan?: string };\n\t\ttry {\n\t\t\tparsed = JSON.parse(response.content);\n\t\t} catch (error: unknown) {\n\t\t\treturn [{ subquery: query }];\n\t\t}\n\n\t\tconst result: TriggeredIntent = {\n\t\t\tsubquery: query,\n\t\t\tactionPlan: parsed.actionPlan,\n\t\t};\n\n\t\tif (parsed.intentName) {\n\t\t\tresult.intent = await intentMemory.getIntentByName(parsed.intentName);\n\t\t}\n\n\t\treturn [result];\n\t}\n}\n"],"mappings":";;;;;AAYO,IAAM,6BAAN,MAAiC;AAAA,EAC/B;AAAA,EACA;AAAA,EAER,YAAY,aAA0B,cAA4B;AACjE,SAAK,cAAc;AACnB,SAAK,eAAe;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAa,iBACZ,OACA,QACkC;AAClC,UAAM,gBAAgB,KAAK,YAAY,SAAS;AAChD,UAAM,eAAe,KAAK,YAAY,gBAAgB;AACtD,UAAM,eAAe,KAAK,aAAa,gBAAgB;AACvD,QAAI,CAAC,cAAc;AAClB,aAAO,CAAC,EAAE,UAAU,MAAM,CAAC;AAAA,IAC5B;AAEA,UAAM,UAAU,MAAM,aAAa,YAAY;AAC/C,QAAI,QAAQ,WAAW,GAAG;AACzB,cAAQ,aAAa,KAAK,iBAAiB;AAC3C,aAAO,CAAC,EAAE,UAAU,MAAM,CAAC;AAAA,IAC5B;AAEA,UAAM,aAAa,QACjB,IAAI,CAAC,WAAW,KAAK,OAAO,IAAI,KAAK,OAAO,WAAW,EAAE,EACzD,KAAK,IAAI;AAGX,UAAM,iBAAiB,CAAC,SACrB,KACA,OAAO,SACN,KAAK,CAAC,GAAG,MAAM,EAAE,YAAY,EAAE,SAAS,EACxC,IAAI,CAAC,YAA2B;AAChC,YAAM,OACL,QAAQ,SAAS,SACd,SACA,QAAQ,SAAS,UAChB,cACA;AACL,YAAM,UAAU,MAAM,QAAQ,QAAQ,QAAQ,KAAK,IAChD,QAAQ,QAAQ,MAAM,KAAK,GAAG,IAC9B,OAAO,QAAQ,QAAQ,KAAK;AAC/B,aAAO,GAAG,IAAI,QAAQ,OAAO;AAAA,IAC9B,CAAC,EACA,KAAK,IAAI;AAEb,UAAM,eAAe;AAAA,YACZ,oBAAI,KAAK,GAAE,mBAAmB,CAAC;AAAA;AAAA;AAAA;AAAA,EAIxC,UAAU;AAAA;AAAA;AAIV,UAAM,cAAc;AAAA,EAErB,mBAAmB,KAChB,4DAA4D,cAAc;AAAA;AAAA,KAG1E,EACJ;AAAA,kBACkB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBrB,UAAM,WAAW,cAAc,iBAAiB;AAAA,MAC/C,OAAO;AAAA,MACP;AAAA,IACD,CAAC;AAED,UAAM,WAAW,MAAM,cAAc,MAAM,UAAU,YAAY;AACjE,QAAI,CAAC,SAAS,SAAS;AACtB,cAAQ,OAAO,KAAK,kCAAkC;AACtD,aAAO,CAAC,EAAE,UAAU,MAAM,CAAC;AAAA,IAC5B;AAEA,QAAI;AACJ,QAAI;AACH,eAAS,KAAK,MAAM,SAAS,OAAO;AAAA,IACrC,SAAS,OAAgB;AACxB,aAAO,CAAC,EAAE,UAAU,MAAM,CAAC;AAAA,IAC5B;AAEA,UAAM,SAA0B;AAAA,MAC/B,UAAU;AAAA,MACV,YAAY,OAAO;AAAA,IACpB;AAEA,QAAI,OAAO,YAAY;AACtB,aAAO,SAAS,MAAM,aAAa,gBAAgB,OAAO,UAAU;AAAA,IACrE;AAEA,WAAO,CAAC,MAAM;AAAA,EACf;AACD;","names":[]}
@@ -0,0 +1,21 @@
1
+ // src/config/options.ts
2
+ var _options = null;
3
+ function setOptions(options) {
4
+ _options = options;
5
+ }
6
+ function getOptions() {
7
+ if (!_options) {
8
+ throw new Error("Options not initialized. AINAgent must be created first.");
9
+ }
10
+ return _options;
11
+ }
12
+ function getOnIntentFallback() {
13
+ return getOptions().onIntentFallback;
14
+ }
15
+
16
+ export {
17
+ setOptions,
18
+ getOptions,
19
+ getOnIntentFallback
20
+ };
21
+ //# sourceMappingURL=chunk-CG35V3ZH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/config/options.ts"],"sourcesContent":["import type { OnIntentFallback } from \"@/types/agent\";\n\nexport interface AgentOptions {\n\tonIntentFallback?: OnIntentFallback;\n}\n\nlet _options: AgentOptions | null = null;\n\nexport function setOptions(options: AgentOptions): void {\n\t_options = options;\n}\n\nexport function getOptions(): AgentOptions {\n\tif (!_options) {\n\t\tthrow new Error(\"Options not initialized. AINAgent must be created first.\");\n\t}\n\treturn _options;\n}\n\nexport function getOnIntentFallback(): OnIntentFallback | undefined {\n\treturn getOptions().onIntentFallback;\n}\n"],"mappings":";AAMA,IAAI,WAAgC;AAE7B,SAAS,WAAW,SAA6B;AACvD,aAAW;AACZ;AAEO,SAAS,aAA2B;AAC1C,MAAI,CAAC,UAAU;AACd,UAAM,IAAI,MAAM,0DAA0D;AAAA,EAC3E;AACA,SAAO;AACR;AAEO,SAAS,sBAAoD;AACnE,SAAO,WAAW,EAAE;AACrB;","names":[]}
@@ -1,40 +1,45 @@
1
- import {
2
- AinHttpError
3
- } from "./chunk-WUNZG3WP.js";
4
-
5
1
  // src/controllers/query.controller.ts
6
2
  import { randomUUID } from "crypto";
7
- import { StatusCodes } from "http-status-codes";
8
3
  var QueryController = class {
9
4
  queryService;
10
- queryStreamService;
11
- constructor(queryService, queryStreamService) {
5
+ constructor(queryService) {
12
6
  this.queryService = queryService;
13
- this.queryStreamService = queryStreamService;
14
7
  }
15
8
  handleQueryRequest = async (req, res, next) => {
16
- const { type, message, threadId } = req.body;
9
+ const {
10
+ type,
11
+ threadId,
12
+ message: query,
13
+ displayMessage: displayQuery
14
+ } = req.body;
17
15
  const userId = res.locals.userId;
18
16
  try {
19
- const result = await this.queryService.handleQuery(
17
+ const stream = this.queryService.handleQuery(
20
18
  { type, userId, threadId },
21
- message
19
+ { query, displayQuery }
22
20
  );
23
- res.status(200).json(result);
21
+ let content = "";
22
+ let responseThreadId = threadId;
23
+ for await (const event of stream) {
24
+ if (event.event === "thread_id") {
25
+ responseThreadId = event.data.threadId;
26
+ } else if (event.event === "text_chunk" && event.data.delta) {
27
+ content += event.data.delta;
28
+ }
29
+ }
30
+ res.status(200).json({ content, threadId: responseThreadId });
24
31
  } catch (error) {
25
32
  next(error);
26
33
  }
27
34
  };
28
- handleQueryStreamRequest = async (req, res, next) => {
29
- const { type, threadId, message } = req.body;
35
+ handleQueryStreamRequest = async (req, res, _next) => {
36
+ const {
37
+ type,
38
+ threadId,
39
+ message: query,
40
+ displayMessage: displayQuery
41
+ } = req.body;
30
42
  const userId = res.locals.userId;
31
- if (!this.queryStreamService) {
32
- const error = new AinHttpError(
33
- StatusCodes.NOT_IMPLEMENTED,
34
- "Stream query not supported"
35
- );
36
- return next(error);
37
- }
38
43
  res.writeHead(200, {
39
44
  "Content-Type": "text/event-stream",
40
45
  "Cache-Control": "no-cache",
@@ -48,16 +53,16 @@ var QueryController = class {
48
53
  res.write(":keepalive\n\n");
49
54
  }, 1e4);
50
55
  let currentThreadId = threadId;
51
- const stream = this.queryStreamService.handleQueryStream(
56
+ const stream = this.queryService.handleQuery(
52
57
  { type, userId, threadId },
53
- message
58
+ { query, displayQuery }
54
59
  );
55
60
  try {
56
61
  for await (const event of stream) {
57
62
  if (event.event === "thread_id") {
58
63
  currentThreadId = event.data.threadId;
59
64
  } else if (event.event === "thinking_process") {
60
- this.queryStreamService.addToThreadMessages(userId, currentThreadId, [
65
+ this.queryService.addToThreadMessages(userId, currentThreadId, [
61
66
  {
62
67
  messageId: randomUUID(),
63
68
  role: "MODEL" /* MODEL */,
@@ -93,4 +98,4 @@ data: ${errMsg}
93
98
  export {
94
99
  QueryController
95
100
  };
96
- //# sourceMappingURL=chunk-JHKBIDPX.js.map
101
+ //# sourceMappingURL=chunk-D6STNZ2L.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/controllers/query.controller.ts"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport type { NextFunction, Request, Response } from \"express\";\nimport type { QueryService } from \"@/services\";\nimport { MessageRole } from \"@/types/memory\";\n\nexport class QueryController {\n\tprivate queryService: QueryService;\n\n\tconstructor(queryService: QueryService) {\n\t\tthis.queryService = queryService;\n\t}\n\n\tpublic handleQueryRequest = async (\n\t\treq: Request,\n\t\tres: Response,\n\t\tnext: NextFunction,\n\t) => {\n\t\tconst {\n\t\t\ttype,\n\t\t\tthreadId,\n\t\t\tmessage: query,\n\t\t\tdisplayMessage: displayQuery,\n\t\t} = req.body;\n\t\tconst userId = res.locals.userId;\n\n\t\ttry {\n\t\t\tconst stream = this.queryService.handleQuery(\n\t\t\t\t{ type, userId, threadId },\n\t\t\t\t{ query, displayQuery },\n\t\t\t);\n\n\t\t\tlet content = \"\";\n\t\t\tlet responseThreadId = threadId;\n\n\t\t\tfor await (const event of stream) {\n\t\t\t\tif (event.event === \"thread_id\") {\n\t\t\t\t\tresponseThreadId = event.data.threadId;\n\t\t\t\t} else if (event.event === \"text_chunk\" && event.data.delta) {\n\t\t\t\t\tcontent += event.data.delta;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tres.status(200).json({ content, threadId: responseThreadId });\n\t\t} catch (error) {\n\t\t\tnext(error);\n\t\t}\n\t};\n\n\tpublic handleQueryStreamRequest = async (\n\t\treq: Request,\n\t\tres: Response,\n\t\t_next: NextFunction,\n\t) => {\n\t\tconst {\n\t\t\ttype,\n\t\t\tthreadId,\n\t\t\tmessage: query,\n\t\t\tdisplayMessage: displayQuery,\n\t\t} = req.body;\n\t\tconst userId = res.locals.userId;\n\n\t\tres.writeHead(200, {\n\t\t\t\"Content-Type\": \"text/event-stream\",\n\t\t\t\"Cache-Control\": \"no-cache\",\n\t\t\tConnection: \"keep-alive\",\n\t\t\t\"X-Accel-Buffering\": \"no\", // nginx 버퍼링 비활성화\n\t\t});\n\t\tres.flushHeaders();\n\t\tres.write(\":ok\\n\\n\");\n\n\t\tconst keepaliveInterval = setInterval(() => {\n\t\t\tres.write(\":keepalive\\n\\n\");\n\t\t}, 10000); // 10초마다 keepalive 전송\n\n\t\tlet currentThreadId = threadId;\n\t\tconst stream = this.queryService.handleQuery(\n\t\t\t{ type, userId, threadId },\n\t\t\t{ query, displayQuery },\n\t\t);\n\n\t\ttry {\n\t\t\tfor await (const event of stream) {\n\t\t\t\tif (event.event === \"thread_id\") {\n\t\t\t\t\tcurrentThreadId = event.data.threadId;\n\t\t\t\t} else if (event.event === \"thinking_process\") {\n\t\t\t\t\t// a2a 호출에 대해서는 데이터베이스에 추가하지 않기 위해 여기서 thread message에 기록\n\t\t\t\t\tthis.queryService.addToThreadMessages(userId, currentThreadId, [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmessageId: randomUUID(),\n\t\t\t\t\t\t\trole: MessageRole.MODEL,\n\t\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t\t\tcontent: { type: \"text\", parts: [event.data.title] },\n\t\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\t\tisThinking: true,\n\t\t\t\t\t\t\t\tthinkData: event.data,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t]);\n\t\t\t\t}\n\n\t\t\t\tres.write(\n\t\t\t\t\t`event: ${event.event}\\ndata: ${JSON.stringify(event.data)}\\n\\n`,\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (error: unknown) {\n\t\t\tconst errMsg =\n\t\t\t\t(error as Error)?.message || \"Failed to handle query stream\";\n\t\t\tres.write(`event: error\\ndata: ${errMsg}\\n\\n`);\n\t\t} finally {\n\t\t\tclearInterval(keepaliveInterval);\n\t\t\tres.end();\n\t\t}\n\t};\n}\n"],"mappings":";AAAA,SAAS,kBAAkB;AAKpB,IAAM,kBAAN,MAAsB;AAAA,EACpB;AAAA,EAER,YAAY,cAA4B;AACvC,SAAK,eAAe;AAAA,EACrB;AAAA,EAEO,qBAAqB,OAC3B,KACA,KACA,SACI;AACJ,UAAM;AAAA,MACL;AAAA,MACA;AAAA,MACA,SAAS;AAAA,MACT,gBAAgB;AAAA,IACjB,IAAI,IAAI;AACR,UAAM,SAAS,IAAI,OAAO;AAE1B,QAAI;AACH,YAAM,SAAS,KAAK,aAAa;AAAA,QAChC,EAAE,MAAM,QAAQ,SAAS;AAAA,QACzB,EAAE,OAAO,aAAa;AAAA,MACvB;AAEA,UAAI,UAAU;AACd,UAAI,mBAAmB;AAEvB,uBAAiB,SAAS,QAAQ;AACjC,YAAI,MAAM,UAAU,aAAa;AAChC,6BAAmB,MAAM,KAAK;AAAA,QAC/B,WAAW,MAAM,UAAU,gBAAgB,MAAM,KAAK,OAAO;AAC5D,qBAAW,MAAM,KAAK;AAAA,QACvB;AAAA,MACD;AAEA,UAAI,OAAO,GAAG,EAAE,KAAK,EAAE,SAAS,UAAU,iBAAiB,CAAC;AAAA,IAC7D,SAAS,OAAO;AACf,WAAK,KAAK;AAAA,IACX;AAAA,EACD;AAAA,EAEO,2BAA2B,OACjC,KACA,KACA,UACI;AACJ,UAAM;AAAA,MACL;AAAA,MACA;AAAA,MACA,SAAS;AAAA,MACT,gBAAgB;AAAA,IACjB,IAAI,IAAI;AACR,UAAM,SAAS,IAAI,OAAO;AAE1B,QAAI,UAAU,KAAK;AAAA,MAClB,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,MACjB,YAAY;AAAA,MACZ,qBAAqB;AAAA;AAAA,IACtB,CAAC;AACD,QAAI,aAAa;AACjB,QAAI,MAAM,SAAS;AAEnB,UAAM,oBAAoB,YAAY,MAAM;AAC3C,UAAI,MAAM,gBAAgB;AAAA,IAC3B,GAAG,GAAK;AAER,QAAI,kBAAkB;AACtB,UAAM,SAAS,KAAK,aAAa;AAAA,MAChC,EAAE,MAAM,QAAQ,SAAS;AAAA,MACzB,EAAE,OAAO,aAAa;AAAA,IACvB;AAEA,QAAI;AACH,uBAAiB,SAAS,QAAQ;AACjC,YAAI,MAAM,UAAU,aAAa;AAChC,4BAAkB,MAAM,KAAK;AAAA,QAC9B,WAAW,MAAM,UAAU,oBAAoB;AAE9C,eAAK,aAAa,oBAAoB,QAAQ,iBAAiB;AAAA,YAC9D;AAAA,cACC,WAAW,WAAW;AAAA,cACtB;AAAA,cACA,WAAW,KAAK,IAAI;AAAA,cACpB,SAAS,EAAE,MAAM,QAAQ,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE;AAAA,cACnD,UAAU;AAAA,gBACT,YAAY;AAAA,gBACZ,WAAW,MAAM;AAAA,cAClB;AAAA,YACD;AAAA,UACD,CAAC;AAAA,QACF;AAEA,YAAI;AAAA,UACH,UAAU,MAAM,KAAK;AAAA,QAAW,KAAK,UAAU,MAAM,IAAI,CAAC;AAAA;AAAA;AAAA,QAC3D;AAAA,MACD;AAAA,IACD,SAAS,OAAgB;AACxB,YAAM,SACJ,OAAiB,WAAW;AAC9B,UAAI,MAAM;AAAA,QAAuB,MAAM;AAAA;AAAA,CAAM;AAAA,IAC9C,UAAE;AACD,oBAAc,iBAAiB;AAC/B,UAAI,IAAI;AAAA,IACT;AAAA,EACD;AACD;","names":[]}
@@ -0,0 +1,17 @@
1
+ import {
2
+ container
3
+ } from "./chunk-IG3B5AXN.js";
4
+
5
+ // src/routes/intent.routes.ts
6
+ import { Router } from "express";
7
+ var createIntentRouter = () => {
8
+ const router = Router();
9
+ const intentController = container.getIntentController();
10
+ router.post("/trigger", intentController.handleIntentTrigger);
11
+ return router;
12
+ };
13
+
14
+ export {
15
+ createIntentRouter
16
+ };
17
+ //# sourceMappingURL=chunk-FCH7BUK4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/routes/intent.routes.ts"],"sourcesContent":["import { Router } from \"express\";\nimport { container } from \"@/container\";\n\nexport const createIntentRouter = (): Router => {\n\tconst router = Router();\n\n\tconst intentController = container.getIntentController();\n\n\trouter.post(\"/trigger\", intentController.handleIntentTrigger);\n\n\treturn router;\n};\n"],"mappings":";;;;;AAAA,SAAS,cAAc;AAGhB,IAAM,qBAAqB,MAAc;AAC/C,QAAM,SAAS,OAAO;AAEtB,QAAM,mBAAmB,UAAU,oBAAoB;AAEvD,SAAO,KAAK,YAAY,iBAAiB,mBAAmB;AAE5D,SAAO;AACR;","names":[]}