@ainetwork/adk 0.2.6 → 0.2.7

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 (446) hide show
  1. package/dist/cjs/{chunk-QTUDQSRL.cjs → chunk-2GJKQSDQ.cjs} +3 -3
  2. package/dist/cjs/{chunk-KFIYXWPY.cjs.map → chunk-2GJKQSDQ.cjs.map} +1 -1
  3. package/dist/cjs/{chunk-77SJGFVU.cjs → chunk-2NKMH5DO.cjs} +6 -6
  4. package/dist/cjs/{chunk-3VY3LHQO.cjs.map → chunk-2NKMH5DO.cjs.map} +1 -1
  5. package/dist/cjs/{chunk-6CDGUUXE.cjs → chunk-2UK6RDHB.cjs} +5 -6
  6. package/dist/cjs/chunk-2UK6RDHB.cjs.map +1 -0
  7. package/dist/cjs/chunk-3BPHCG6M.cjs +30 -0
  8. package/dist/cjs/chunk-3BPHCG6M.cjs.map +1 -0
  9. package/dist/cjs/{chunk-3VY3LHQO.cjs → chunk-3GPSKXKA.cjs} +5 -5
  10. package/dist/cjs/{chunk-77SJGFVU.cjs.map → chunk-3GPSKXKA.cjs.map} +1 -1
  11. package/dist/cjs/{chunk-HCN6JEJA.cjs → chunk-3IB2WAKN.cjs} +5 -5
  12. package/dist/cjs/{chunk-2L5KFFHV.cjs.map → chunk-3IB2WAKN.cjs.map} +1 -1
  13. package/dist/cjs/{chunk-5JGNWLHJ.cjs → chunk-45H4WOKN.cjs} +5 -5
  14. package/dist/cjs/{chunk-5JGNWLHJ.cjs.map → chunk-45H4WOKN.cjs.map} +1 -1
  15. package/dist/cjs/{chunk-CHC3HECE.cjs → chunk-4PFJ7PDN.cjs} +5 -5
  16. package/dist/cjs/{chunk-CHC3HECE.cjs.map → chunk-4PFJ7PDN.cjs.map} +1 -1
  17. package/dist/cjs/chunk-4TK4MTAR.cjs +17 -0
  18. package/dist/cjs/chunk-4TK4MTAR.cjs.map +1 -0
  19. package/dist/cjs/chunk-4Z4HSVCQ.cjs +21 -0
  20. package/dist/cjs/chunk-4Z4HSVCQ.cjs.map +1 -0
  21. package/dist/cjs/{chunk-6KB562A7.cjs → chunk-5ARBSKWU.cjs} +5 -5
  22. package/dist/cjs/{chunk-6KB562A7.cjs.map → chunk-5ARBSKWU.cjs.map} +1 -1
  23. package/dist/cjs/chunk-5FZ7QLJD.cjs +17 -0
  24. package/dist/cjs/chunk-5FZ7QLJD.cjs.map +1 -0
  25. package/dist/cjs/chunk-5WNANWIO.cjs +43 -0
  26. package/dist/cjs/chunk-5WNANWIO.cjs.map +1 -0
  27. package/dist/cjs/{chunk-HQ4X5TPN.cjs → chunk-6S376RMW.cjs} +13 -12
  28. package/dist/cjs/chunk-6S376RMW.cjs.map +1 -0
  29. package/dist/cjs/chunk-6UHPYXKS.cjs +381 -0
  30. package/dist/cjs/chunk-6UHPYXKS.cjs.map +1 -0
  31. package/dist/cjs/{chunk-3ZFV2K7O.cjs → chunk-6WAVK3BS.cjs} +43 -29
  32. package/dist/cjs/chunk-6WAVK3BS.cjs.map +1 -0
  33. package/dist/cjs/chunk-6YHPJAGA.cjs +1 -0
  34. package/dist/cjs/chunk-6YHPJAGA.cjs.map +1 -0
  35. package/dist/cjs/chunk-7HH3N36Q.cjs +43 -0
  36. package/dist/cjs/chunk-7HH3N36Q.cjs.map +1 -0
  37. package/dist/cjs/chunk-7J5DYKDJ.cjs +376 -0
  38. package/dist/cjs/chunk-7J5DYKDJ.cjs.map +1 -0
  39. package/dist/cjs/{chunk-KFIYXWPY.cjs → chunk-7Y3W3SIL.cjs} +5 -5
  40. package/dist/cjs/{chunk-HCN6JEJA.cjs.map → chunk-7Y3W3SIL.cjs.map} +1 -1
  41. package/dist/cjs/{chunk-UDK47YLB.cjs → chunk-AEYHJEGM.cjs} +5 -1
  42. package/dist/cjs/chunk-AEYHJEGM.cjs.map +1 -0
  43. package/dist/cjs/chunk-AIAIY7IU.cjs +43 -0
  44. package/dist/cjs/chunk-AIAIY7IU.cjs.map +1 -0
  45. package/dist/cjs/chunk-APGW3LWW.cjs +43 -0
  46. package/dist/cjs/chunk-APGW3LWW.cjs.map +1 -0
  47. package/dist/cjs/{chunk-7UGA4QRJ.cjs → chunk-AWLDQTED.cjs} +21 -13
  48. package/dist/cjs/chunk-AWLDQTED.cjs.map +1 -0
  49. package/dist/cjs/{chunk-DEKRDA6Q.cjs → chunk-AXLG6NY4.cjs} +12 -12
  50. package/dist/cjs/chunk-AXLG6NY4.cjs.map +1 -0
  51. package/dist/cjs/chunk-BAPJ7AYM.cjs +43 -0
  52. package/dist/cjs/chunk-BAPJ7AYM.cjs.map +1 -0
  53. package/dist/cjs/chunk-BFWJLMUR.cjs +43 -0
  54. package/dist/cjs/chunk-BFWJLMUR.cjs.map +1 -0
  55. package/dist/cjs/chunk-BGEBE36B.cjs +43 -0
  56. package/dist/cjs/chunk-BGEBE36B.cjs.map +1 -0
  57. package/dist/cjs/chunk-BIDIP5MX.cjs +37 -0
  58. package/dist/cjs/chunk-BIDIP5MX.cjs.map +1 -0
  59. package/dist/cjs/chunk-BKU7EWEM.cjs +37 -0
  60. package/dist/cjs/chunk-BKU7EWEM.cjs.map +1 -0
  61. package/dist/cjs/chunk-C5V4X3ZH.cjs +364 -0
  62. package/dist/cjs/chunk-C5V4X3ZH.cjs.map +1 -0
  63. package/dist/cjs/chunk-C77OTZYZ.cjs +43 -0
  64. package/dist/cjs/chunk-C77OTZYZ.cjs.map +1 -0
  65. package/dist/cjs/chunk-C7SJ2X3X.cjs +43 -0
  66. package/dist/cjs/chunk-C7SJ2X3X.cjs.map +1 -0
  67. package/dist/cjs/chunk-CEUCTNAJ.cjs +43 -0
  68. package/dist/cjs/chunk-CEUCTNAJ.cjs.map +1 -0
  69. package/dist/cjs/chunk-CFILMIB6.cjs +25 -0
  70. package/dist/cjs/chunk-CFILMIB6.cjs.map +1 -0
  71. package/dist/cjs/chunk-CIV2QV4C.cjs +43 -0
  72. package/dist/cjs/chunk-CIV2QV4C.cjs.map +1 -0
  73. package/dist/cjs/chunk-CKE4RRTI.cjs +378 -0
  74. package/dist/cjs/chunk-CKE4RRTI.cjs.map +1 -0
  75. package/dist/cjs/chunk-EEND2E3Y.cjs +37 -0
  76. package/dist/cjs/chunk-EEND2E3Y.cjs.map +1 -0
  77. package/dist/cjs/chunk-ET7NGSCR.cjs +382 -0
  78. package/dist/cjs/chunk-ET7NGSCR.cjs.map +1 -0
  79. package/dist/cjs/{chunk-M4MYRCSF.cjs → chunk-EXKLB7FF.cjs} +1 -1
  80. package/dist/cjs/{chunk-M4MYRCSF.cjs.map → chunk-EXKLB7FF.cjs.map} +1 -1
  81. package/dist/cjs/chunk-F6LFBKIF.cjs +43 -0
  82. package/dist/cjs/chunk-F6LFBKIF.cjs.map +1 -0
  83. package/dist/cjs/chunk-FCIBDAL5.cjs +364 -0
  84. package/dist/cjs/chunk-FCIBDAL5.cjs.map +1 -0
  85. package/dist/cjs/chunk-FGBHPONX.cjs +43 -0
  86. package/dist/cjs/chunk-FGBHPONX.cjs.map +1 -0
  87. package/dist/cjs/chunk-FJ2S5TGS.cjs +37 -0
  88. package/dist/cjs/chunk-FJ2S5TGS.cjs.map +1 -0
  89. package/dist/cjs/{chunk-7PZP7YSA.cjs → chunk-FTRCEUDB.cjs} +10 -10
  90. package/dist/cjs/chunk-FTRCEUDB.cjs.map +1 -0
  91. package/dist/cjs/chunk-FZEACIU2.cjs +37 -0
  92. package/dist/cjs/chunk-FZEACIU2.cjs.map +1 -0
  93. package/dist/cjs/chunk-GAXPKI2P.cjs +364 -0
  94. package/dist/cjs/chunk-GAXPKI2P.cjs.map +1 -0
  95. package/dist/cjs/chunk-GBQXIGWQ.cjs +37 -0
  96. package/dist/cjs/chunk-GBQXIGWQ.cjs.map +1 -0
  97. package/dist/cjs/chunk-GGP6URMG.cjs +43 -0
  98. package/dist/cjs/chunk-GGP6URMG.cjs.map +1 -0
  99. package/dist/cjs/chunk-GO2OLIWF.cjs +359 -0
  100. package/dist/cjs/chunk-GO2OLIWF.cjs.map +1 -0
  101. package/dist/cjs/{chunk-7K2R2UKB.cjs → chunk-GP3SSTAQ.cjs} +1 -1
  102. package/dist/cjs/chunk-GP3SSTAQ.cjs.map +1 -0
  103. package/dist/cjs/chunk-GYIACLMZ.cjs +376 -0
  104. package/dist/cjs/chunk-GYIACLMZ.cjs.map +1 -0
  105. package/dist/cjs/chunk-GZE5BVB2.cjs +361 -0
  106. package/dist/cjs/chunk-GZE5BVB2.cjs.map +1 -0
  107. package/dist/cjs/chunk-HPCNM6XP.cjs +25 -0
  108. package/dist/cjs/chunk-HPCNM6XP.cjs.map +1 -0
  109. package/dist/cjs/chunk-HXRGFZL7.cjs +360 -0
  110. package/dist/cjs/chunk-HXRGFZL7.cjs.map +1 -0
  111. package/dist/cjs/chunk-IC5TWI4A.cjs +37 -0
  112. package/dist/cjs/chunk-IC5TWI4A.cjs.map +1 -0
  113. package/dist/cjs/chunk-ICTSMRXC.cjs +360 -0
  114. package/dist/cjs/chunk-ICTSMRXC.cjs.map +1 -0
  115. package/dist/cjs/chunk-IH4I2JTE.cjs +348 -0
  116. package/dist/cjs/chunk-IH4I2JTE.cjs.map +1 -0
  117. package/dist/cjs/chunk-JFLQREPM.cjs +37 -0
  118. package/dist/cjs/chunk-JFLQREPM.cjs.map +1 -0
  119. package/dist/cjs/chunk-JO6AZASU.cjs +37 -0
  120. package/dist/cjs/chunk-JO6AZASU.cjs.map +1 -0
  121. package/dist/cjs/chunk-JWIVQT6C.cjs +37 -0
  122. package/dist/cjs/chunk-JWIVQT6C.cjs.map +1 -0
  123. package/dist/cjs/chunk-JYHYAQQ2.cjs +43 -0
  124. package/dist/cjs/chunk-JYHYAQQ2.cjs.map +1 -0
  125. package/dist/cjs/chunk-K6HWDDNX.cjs +367 -0
  126. package/dist/cjs/chunk-K6HWDDNX.cjs.map +1 -0
  127. package/dist/cjs/chunk-K6J5XJRM.cjs +382 -0
  128. package/dist/cjs/chunk-K6J5XJRM.cjs.map +1 -0
  129. package/dist/cjs/{chunk-FRWC3FQ4.cjs → chunk-KBWHLMA4.cjs} +7 -3
  130. package/dist/cjs/chunk-KBWHLMA4.cjs.map +1 -0
  131. package/dist/cjs/{chunk-6KXMM7GP.cjs → chunk-KH25JPQS.cjs} +5 -6
  132. package/dist/cjs/chunk-KH25JPQS.cjs.map +1 -0
  133. package/dist/cjs/chunk-KHAIZONV.cjs +43 -0
  134. package/dist/cjs/chunk-KHAIZONV.cjs.map +1 -0
  135. package/dist/cjs/chunk-KQ4MBNUW.cjs +43 -0
  136. package/dist/cjs/chunk-KQ4MBNUW.cjs.map +1 -0
  137. package/dist/cjs/chunk-L5ZICBT4.cjs +37 -0
  138. package/dist/cjs/chunk-L5ZICBT4.cjs.map +1 -0
  139. package/dist/cjs/chunk-L6RI7RO4.cjs +11 -0
  140. package/dist/cjs/chunk-L6RI7RO4.cjs.map +1 -0
  141. package/dist/cjs/chunk-MADCWTBO.cjs +18 -0
  142. package/dist/cjs/chunk-MADCWTBO.cjs.map +1 -0
  143. package/dist/cjs/{chunk-BBFYVWE2.cjs → chunk-MV6L3NPY.cjs} +39 -26
  144. package/dist/cjs/chunk-MV6L3NPY.cjs.map +1 -0
  145. package/dist/cjs/chunk-N6VAOFEP.cjs +37 -0
  146. package/dist/cjs/chunk-N6VAOFEP.cjs.map +1 -0
  147. package/dist/cjs/chunk-NWMGBXPZ.cjs +37 -0
  148. package/dist/cjs/chunk-NWMGBXPZ.cjs.map +1 -0
  149. package/dist/cjs/chunk-OCGEXAVI.cjs +373 -0
  150. package/dist/cjs/chunk-OCGEXAVI.cjs.map +1 -0
  151. package/dist/cjs/chunk-OOSRLRNL.cjs +37 -0
  152. package/dist/cjs/chunk-OOSRLRNL.cjs.map +1 -0
  153. package/dist/cjs/chunk-ORLXR6OZ.cjs +257 -0
  154. package/dist/cjs/chunk-ORLXR6OZ.cjs.map +1 -0
  155. package/dist/cjs/chunk-OVTUSYSU.cjs +24 -0
  156. package/dist/cjs/chunk-OVTUSYSU.cjs.map +1 -0
  157. package/dist/cjs/chunk-OZKAPLCE.cjs +43 -0
  158. package/dist/cjs/chunk-OZKAPLCE.cjs.map +1 -0
  159. package/dist/cjs/chunk-P42QPS2N.cjs +43 -0
  160. package/dist/cjs/chunk-P42QPS2N.cjs.map +1 -0
  161. package/dist/cjs/chunk-PHTT7NVZ.cjs +37 -0
  162. package/dist/cjs/chunk-PHTT7NVZ.cjs.map +1 -0
  163. package/dist/cjs/chunk-Q673YXOW.cjs +37 -0
  164. package/dist/cjs/chunk-Q673YXOW.cjs.map +1 -0
  165. package/dist/cjs/{chunk-YTAWBEPQ.cjs → chunk-QV2CSL6T.cjs} +26 -11
  166. package/dist/cjs/chunk-QV2CSL6T.cjs.map +1 -0
  167. package/dist/cjs/chunk-QW4T5RFB.cjs +374 -0
  168. package/dist/cjs/chunk-QW4T5RFB.cjs.map +1 -0
  169. package/dist/cjs/chunk-RA62RT7K.cjs +43 -0
  170. package/dist/cjs/chunk-RA62RT7K.cjs.map +1 -0
  171. package/dist/cjs/chunk-RXMGXWLH.cjs +352 -0
  172. package/dist/cjs/chunk-RXMGXWLH.cjs.map +1 -0
  173. package/dist/cjs/chunk-SEJO6F5X.cjs +43 -0
  174. package/dist/cjs/chunk-SEJO6F5X.cjs.map +1 -0
  175. package/dist/cjs/chunk-SMKJY53T.cjs +367 -0
  176. package/dist/cjs/chunk-SMKJY53T.cjs.map +1 -0
  177. package/dist/cjs/chunk-SUWC3YAJ.cjs +359 -0
  178. package/dist/cjs/chunk-SUWC3YAJ.cjs.map +1 -0
  179. package/dist/cjs/{chunk-3M5DZAJA.cjs → chunk-SZU5VCQL.cjs} +7 -8
  180. package/dist/cjs/chunk-SZU5VCQL.cjs.map +1 -0
  181. package/dist/cjs/chunk-T2CE7W67.cjs +43 -0
  182. package/dist/cjs/chunk-T2CE7W67.cjs.map +1 -0
  183. package/dist/cjs/chunk-TBQF2VIX.cjs +43 -0
  184. package/dist/cjs/chunk-TBQF2VIX.cjs.map +1 -0
  185. package/dist/cjs/chunk-TK2MNTOI.cjs +43 -0
  186. package/dist/cjs/chunk-TK2MNTOI.cjs.map +1 -0
  187. package/dist/cjs/chunk-TOVEWQW2.cjs +43 -0
  188. package/dist/cjs/chunk-TOVEWQW2.cjs.map +1 -0
  189. package/dist/cjs/{chunk-EHULB7WG.cjs → chunk-TS46OIE7.cjs} +18 -15
  190. package/dist/cjs/chunk-TS46OIE7.cjs.map +1 -0
  191. package/dist/cjs/chunk-UDLSTQ4I.cjs +21 -0
  192. package/dist/cjs/chunk-UDLSTQ4I.cjs.map +1 -0
  193. package/dist/cjs/chunk-UFVWBUJM.cjs +365 -0
  194. package/dist/cjs/chunk-UFVWBUJM.cjs.map +1 -0
  195. package/dist/cjs/chunk-USDDAUYF.cjs +364 -0
  196. package/dist/cjs/chunk-USDDAUYF.cjs.map +1 -0
  197. package/dist/cjs/chunk-UUWWBHFR.cjs +37 -0
  198. package/dist/cjs/chunk-UUWWBHFR.cjs.map +1 -0
  199. package/dist/cjs/chunk-UVN2DE6N.cjs +368 -0
  200. package/dist/cjs/chunk-UVN2DE6N.cjs.map +1 -0
  201. package/dist/cjs/chunk-VKZGZZY4.cjs +42 -0
  202. package/dist/cjs/chunk-VKZGZZY4.cjs.map +1 -0
  203. package/dist/cjs/chunk-VVLC6T66.cjs +37 -0
  204. package/dist/cjs/chunk-VVLC6T66.cjs.map +1 -0
  205. package/dist/cjs/chunk-VZS6VPLE.cjs +26 -0
  206. package/dist/cjs/chunk-VZS6VPLE.cjs.map +1 -0
  207. package/dist/cjs/chunk-X276C2SQ.cjs +37 -0
  208. package/dist/cjs/chunk-X276C2SQ.cjs.map +1 -0
  209. package/dist/cjs/chunk-X3XEJQRF.cjs +37 -0
  210. package/dist/cjs/chunk-X3XEJQRF.cjs.map +1 -0
  211. package/dist/cjs/chunk-X5ARZJ77.cjs +353 -0
  212. package/dist/cjs/chunk-X5ARZJ77.cjs.map +1 -0
  213. package/dist/cjs/chunk-XIR7UR77.cjs +37 -0
  214. package/dist/cjs/chunk-XIR7UR77.cjs.map +1 -0
  215. package/dist/cjs/chunk-XIXM5VST.cjs +37 -0
  216. package/dist/cjs/chunk-XIXM5VST.cjs.map +1 -0
  217. package/dist/cjs/chunk-XIYB6QQC.cjs +37 -0
  218. package/dist/cjs/chunk-XIYB6QQC.cjs.map +1 -0
  219. package/dist/cjs/chunk-XM22DX5O.cjs +43 -0
  220. package/dist/cjs/chunk-XM22DX5O.cjs.map +1 -0
  221. package/dist/cjs/chunk-XVYFBQRE.cjs +37 -0
  222. package/dist/cjs/chunk-XVYFBQRE.cjs.map +1 -0
  223. package/dist/cjs/chunk-YORAOGFM.cjs +37 -0
  224. package/dist/cjs/chunk-YORAOGFM.cjs.map +1 -0
  225. package/dist/cjs/chunk-YUCTXIN5.cjs +37 -0
  226. package/dist/cjs/chunk-YUCTXIN5.cjs.map +1 -0
  227. package/dist/cjs/chunk-YUEKJCO7.cjs +18 -0
  228. package/dist/cjs/chunk-YUEKJCO7.cjs.map +1 -0
  229. package/dist/cjs/chunk-YVE4DLAT.cjs +43 -0
  230. package/dist/cjs/chunk-YVE4DLAT.cjs.map +1 -0
  231. package/dist/cjs/chunk-ZBD7JCDL.cjs +381 -0
  232. package/dist/cjs/chunk-ZBD7JCDL.cjs.map +1 -0
  233. package/dist/cjs/chunk-ZFSXQFEK.cjs +164 -0
  234. package/dist/cjs/chunk-ZFSXQFEK.cjs.map +1 -0
  235. package/dist/cjs/chunk-ZNMRAQT2.cjs +164 -0
  236. package/dist/cjs/chunk-ZNMRAQT2.cjs.map +1 -0
  237. package/dist/cjs/chunk-ZZ3SXOOC.cjs +37 -0
  238. package/dist/cjs/chunk-ZZ3SXOOC.cjs.map +1 -0
  239. package/dist/cjs/controllers/api/agent.api.controller.cjs +7 -0
  240. package/dist/cjs/controllers/api/agent.api.controller.cjs.map +1 -0
  241. package/dist/cjs/controllers/api/intent.api.controller.cjs +7 -0
  242. package/dist/cjs/controllers/api/intent.api.controller.cjs.map +1 -0
  243. package/dist/cjs/controllers/index.cjs +10 -6
  244. package/dist/cjs/controllers/index.cjs.map +1 -1
  245. package/dist/cjs/index.cjs +23 -19
  246. package/dist/cjs/index.cjs.map +1 -1
  247. package/dist/cjs/modules/a2a/a2a.connector.cjs +8 -0
  248. package/dist/cjs/modules/a2a/a2a.connector.cjs.map +1 -0
  249. package/dist/cjs/modules/a2a/a2a.module.cjs +5 -5
  250. package/dist/cjs/modules/index.cjs +10 -10
  251. package/dist/cjs/modules/index.cjs.map +1 -1
  252. package/dist/cjs/modules/mcp/mcp.connector.cjs +8 -0
  253. package/dist/cjs/modules/mcp/mcp.connector.cjs.map +1 -0
  254. package/dist/cjs/modules/mcp/mcp.module.cjs +4 -4
  255. package/dist/cjs/modules/models/base.model.cjs +2 -2
  256. package/dist/cjs/routes/a2a.routes.cjs +6 -6
  257. package/dist/cjs/routes/api/agent.routes.cjs +8 -0
  258. package/dist/cjs/routes/api/agent.routes.cjs.map +1 -0
  259. package/dist/cjs/routes/api/intent.routes.cjs +9 -0
  260. package/dist/cjs/routes/api/intent.routes.cjs.map +1 -0
  261. package/dist/cjs/routes/api.routes.cjs +6 -2
  262. package/dist/cjs/routes/api.routes.cjs.map +1 -1
  263. package/dist/cjs/routes/index.cjs +24 -17
  264. package/dist/cjs/routes/index.cjs.map +1 -1
  265. package/dist/cjs/routes/query.routes.cjs +7 -7
  266. package/dist/cjs/services/index.cjs +6 -6
  267. package/dist/cjs/services/query-stream.service.cjs +5 -5
  268. package/dist/cjs/services/query.service.cjs +5 -5
  269. package/dist/cjs/types/connector.cjs +7 -0
  270. package/dist/cjs/types/connector.cjs.map +1 -0
  271. package/dist/cjs/types/memory.cjs +2 -2
  272. package/dist/esm/chunk-275JHD5P.js +17 -0
  273. package/dist/esm/chunk-275JHD5P.js.map +1 -0
  274. package/dist/esm/{chunk-WP276EXC.js → chunk-5C53F6HQ.js} +2 -2
  275. package/dist/esm/chunk-7CULQDJF.js +11 -0
  276. package/dist/esm/chunk-7CULQDJF.js.map +1 -0
  277. package/dist/esm/chunk-DFXHJUGV.js +42 -0
  278. package/dist/esm/chunk-DFXHJUGV.js.map +1 -0
  279. package/dist/esm/{chunk-CDFLKADH.js → chunk-DHDFPHYD.js} +1 -1
  280. package/dist/esm/chunk-DHDFPHYD.js.map +1 -0
  281. package/dist/esm/{chunk-M3HZ2GQP.js → chunk-F3I4URTX.js} +9 -1
  282. package/dist/esm/chunk-F3I4URTX.js.map +1 -0
  283. package/dist/esm/chunk-IKYOHZYW.js +25 -0
  284. package/dist/esm/chunk-IKYOHZYW.js.map +1 -0
  285. package/dist/esm/{chunk-R44LLFOD.js → chunk-NTTSP6VU.js} +3 -3
  286. package/dist/esm/{chunk-MJEPJ62P.js → chunk-NWL3BMUH.js} +40 -27
  287. package/dist/esm/chunk-NWL3BMUH.js.map +1 -0
  288. package/dist/esm/{chunk-JUJSFXBX.js → chunk-P4ADSRP5.js} +118 -74
  289. package/dist/esm/chunk-P4ADSRP5.js.map +1 -0
  290. package/dist/esm/chunk-PG3C4LQO.js +1 -0
  291. package/dist/esm/chunk-TUEEIIR3.js +21 -0
  292. package/dist/esm/chunk-TUEEIIR3.js.map +1 -0
  293. package/dist/esm/{chunk-POQFOL6Y.js → chunk-UQK33CJX.js} +1 -1
  294. package/dist/esm/{chunk-POQFOL6Y.js.map → chunk-UQK33CJX.js.map} +1 -1
  295. package/dist/esm/chunk-WMZ6PYTE.js +24 -0
  296. package/dist/esm/chunk-WMZ6PYTE.js.map +1 -0
  297. package/dist/esm/chunk-XSFA3J2Y.js +40 -0
  298. package/dist/esm/chunk-XSFA3J2Y.js.map +1 -0
  299. package/dist/esm/{chunk-RNA32QWV.js → chunk-YDMTU6UH.js} +43 -29
  300. package/dist/esm/chunk-YDMTU6UH.js.map +1 -0
  301. package/dist/esm/{chunk-2EVONQZ4.js → chunk-ZBA55AN4.js} +10 -10
  302. package/dist/esm/chunk-ZBA55AN4.js.map +1 -0
  303. package/dist/esm/controllers/a2a.controller.d.ts +1 -5
  304. package/dist/esm/controllers/api/agent.api.controller.d.ts +28 -0
  305. package/dist/esm/controllers/api/agent.api.controller.js +7 -0
  306. package/dist/esm/controllers/api/intent.api.controller.d.ts +14 -0
  307. package/dist/esm/controllers/api/intent.api.controller.js +7 -0
  308. package/dist/esm/controllers/api/model.api.controller.d.ts +1 -4
  309. package/dist/esm/controllers/index.d.ts +5 -5
  310. package/dist/esm/controllers/index.js +4 -0
  311. package/dist/esm/controllers/query.controller.d.ts +1 -5
  312. package/dist/esm/index.d.ts +1 -5
  313. package/dist/esm/index.js +13 -9
  314. package/dist/esm/index.js.map +1 -1
  315. package/dist/esm/modules/a2a/a2a.connector.d.ts +15 -0
  316. package/dist/esm/modules/a2a/a2a.connector.js +8 -0
  317. package/dist/esm/modules/a2a/a2a.module.d.ts +14 -10
  318. package/dist/esm/modules/a2a/a2a.module.js +4 -4
  319. package/dist/esm/modules/index.d.ts +1 -5
  320. package/dist/esm/modules/index.js +14 -14
  321. package/dist/esm/modules/mcp/mcp.connector.d.ts +20 -0
  322. package/dist/esm/modules/mcp/mcp.connector.js +8 -0
  323. package/dist/esm/modules/mcp/mcp.connector.js.map +1 -0
  324. package/dist/esm/modules/mcp/mcp.module.d.ts +6 -27
  325. package/dist/esm/modules/mcp/mcp.module.js +3 -3
  326. package/dist/esm/modules/memory/base.memory.d.ts +2 -2
  327. package/dist/esm/modules/models/base.model.d.ts +2 -5
  328. package/dist/esm/modules/models/base.model.js +1 -1
  329. package/dist/esm/modules/models/model.module.d.ts +1 -4
  330. package/dist/esm/routes/a2a.routes.d.ts +1 -5
  331. package/dist/esm/routes/a2a.routes.js +4 -4
  332. package/dist/esm/routes/api/agent.routes.d.ts +24 -0
  333. package/dist/esm/routes/api/agent.routes.js +8 -0
  334. package/dist/esm/routes/api/agent.routes.js.map +1 -0
  335. package/dist/esm/routes/api/intent.routes.d.ts +8 -0
  336. package/dist/esm/routes/api/intent.routes.js +9 -0
  337. package/dist/esm/routes/api/intent.routes.js.map +1 -0
  338. package/dist/esm/routes/api/model.routes.d.ts +1 -4
  339. package/dist/esm/routes/api.routes.d.ts +1 -5
  340. package/dist/esm/routes/api.routes.js +5 -1
  341. package/dist/esm/routes/index.d.ts +2 -5
  342. package/dist/esm/routes/index.js +15 -8
  343. package/dist/esm/routes/query.routes.d.ts +1 -5
  344. package/dist/esm/routes/query.routes.js +5 -5
  345. package/dist/esm/services/a2a.service.d.ts +1 -5
  346. package/dist/esm/services/index.d.ts +1 -5
  347. package/dist/esm/services/index.js +4 -4
  348. package/dist/esm/services/query-stream.service.d.ts +3 -6
  349. package/dist/esm/services/query-stream.service.js +3 -3
  350. package/dist/esm/services/query.service.d.ts +1 -5
  351. package/dist/esm/services/query.service.js +3 -3
  352. package/dist/esm/types/{tool.d.ts → connector.d.ts} +14 -35
  353. package/dist/esm/types/connector.js +7 -0
  354. package/dist/esm/types/connector.js.map +1 -0
  355. package/dist/esm/types/memory.d.ts +6 -2
  356. package/dist/esm/types/memory.js +1 -1
  357. package/dist/esm/types/stream.d.ts +9 -6
  358. package/package.json +1 -1
  359. package/dist/cjs/chunk-2L5KFFHV.cjs +0 -37
  360. package/dist/cjs/chunk-3M5DZAJA.cjs.map +0 -1
  361. package/dist/cjs/chunk-3ZFV2K7O.cjs.map +0 -1
  362. package/dist/cjs/chunk-6CDGUUXE.cjs.map +0 -1
  363. package/dist/cjs/chunk-6KXMM7GP.cjs.map +0 -1
  364. package/dist/cjs/chunk-7K2R2UKB.cjs.map +0 -1
  365. package/dist/cjs/chunk-7PZP7YSA.cjs.map +0 -1
  366. package/dist/cjs/chunk-7UGA4QRJ.cjs.map +0 -1
  367. package/dist/cjs/chunk-A2ANDQNY.cjs +0 -337
  368. package/dist/cjs/chunk-A2ANDQNY.cjs.map +0 -1
  369. package/dist/cjs/chunk-BBFYVWE2.cjs.map +0 -1
  370. package/dist/cjs/chunk-DEKRDA6Q.cjs.map +0 -1
  371. package/dist/cjs/chunk-E433ONEN.cjs +0 -26
  372. package/dist/cjs/chunk-E433ONEN.cjs.map +0 -1
  373. package/dist/cjs/chunk-EHULB7WG.cjs.map +0 -1
  374. package/dist/cjs/chunk-F7I4G6JG.cjs +0 -26
  375. package/dist/cjs/chunk-F7I4G6JG.cjs.map +0 -1
  376. package/dist/cjs/chunk-FRWC3FQ4.cjs.map +0 -1
  377. package/dist/cjs/chunk-HQ4X5TPN.cjs.map +0 -1
  378. package/dist/cjs/chunk-KHD7UAFW.cjs +0 -326
  379. package/dist/cjs/chunk-KHD7UAFW.cjs.map +0 -1
  380. package/dist/cjs/chunk-LMR6B76V.cjs +0 -37
  381. package/dist/cjs/chunk-LMR6B76V.cjs.map +0 -1
  382. package/dist/cjs/chunk-LPXYZH22.cjs +0 -11
  383. package/dist/cjs/chunk-LPXYZH22.cjs.map +0 -1
  384. package/dist/cjs/chunk-MCDRCKR6.cjs +0 -333
  385. package/dist/cjs/chunk-MCDRCKR6.cjs.map +0 -1
  386. package/dist/cjs/chunk-O4QQH7VT.cjs +0 -43
  387. package/dist/cjs/chunk-O4QQH7VT.cjs.map +0 -1
  388. package/dist/cjs/chunk-OKRBMMK2.cjs +0 -136
  389. package/dist/cjs/chunk-OKRBMMK2.cjs.map +0 -1
  390. package/dist/cjs/chunk-OOSQKNH2.cjs +0 -43
  391. package/dist/cjs/chunk-OOSQKNH2.cjs.map +0 -1
  392. package/dist/cjs/chunk-PAWGHHSY.cjs +0 -249
  393. package/dist/cjs/chunk-PAWGHHSY.cjs.map +0 -1
  394. package/dist/cjs/chunk-QTUDQSRL.cjs.map +0 -1
  395. package/dist/cjs/chunk-SSSDO7PA.cjs +0 -1
  396. package/dist/cjs/chunk-SSSDO7PA.cjs.map +0 -1
  397. package/dist/cjs/chunk-T7XSNWFJ.cjs +0 -43
  398. package/dist/cjs/chunk-T7XSNWFJ.cjs.map +0 -1
  399. package/dist/cjs/chunk-UDK47YLB.cjs.map +0 -1
  400. package/dist/cjs/chunk-UPQVXJK6.cjs +0 -37
  401. package/dist/cjs/chunk-UPQVXJK6.cjs.map +0 -1
  402. package/dist/cjs/chunk-UVBNFD2K.cjs +0 -37
  403. package/dist/cjs/chunk-UVBNFD2K.cjs.map +0 -1
  404. package/dist/cjs/chunk-VFM2JQLG.cjs +0 -43
  405. package/dist/cjs/chunk-VFM2JQLG.cjs.map +0 -1
  406. package/dist/cjs/chunk-W5VM75PL.cjs +0 -43
  407. package/dist/cjs/chunk-W5VM75PL.cjs.map +0 -1
  408. package/dist/cjs/chunk-WUOME625.cjs +0 -37
  409. package/dist/cjs/chunk-WUOME625.cjs.map +0 -1
  410. package/dist/cjs/chunk-WYH3T7WL.cjs +0 -337
  411. package/dist/cjs/chunk-WYH3T7WL.cjs.map +0 -1
  412. package/dist/cjs/chunk-XEE7ORJX.cjs +0 -43
  413. package/dist/cjs/chunk-XEE7ORJX.cjs.map +0 -1
  414. package/dist/cjs/chunk-YTAWBEPQ.cjs.map +0 -1
  415. package/dist/cjs/chunk-ZPYMLCQZ.cjs +0 -247
  416. package/dist/cjs/chunk-ZPYMLCQZ.cjs.map +0 -1
  417. package/dist/cjs/modules/a2a/a2a.tool.cjs +0 -8
  418. package/dist/cjs/modules/a2a/a2a.tool.cjs.map +0 -1
  419. package/dist/cjs/modules/mcp/mcp.tool.cjs +0 -8
  420. package/dist/cjs/modules/mcp/mcp.tool.cjs.map +0 -1
  421. package/dist/cjs/types/tool.cjs +0 -7
  422. package/dist/cjs/types/tool.cjs.map +0 -1
  423. package/dist/esm/chunk-2EVONQZ4.js.map +0 -1
  424. package/dist/esm/chunk-3LLHEUY2.js +0 -26
  425. package/dist/esm/chunk-3LLHEUY2.js.map +0 -1
  426. package/dist/esm/chunk-CDFLKADH.js.map +0 -1
  427. package/dist/esm/chunk-DGH3GB5I.js +0 -26
  428. package/dist/esm/chunk-DGH3GB5I.js.map +0 -1
  429. package/dist/esm/chunk-FI2UQLVC.js +0 -11
  430. package/dist/esm/chunk-FI2UQLVC.js.map +0 -1
  431. package/dist/esm/chunk-JUJSFXBX.js.map +0 -1
  432. package/dist/esm/chunk-M3HZ2GQP.js.map +0 -1
  433. package/dist/esm/chunk-MJEPJ62P.js.map +0 -1
  434. package/dist/esm/chunk-RNA32QWV.js.map +0 -1
  435. package/dist/esm/chunk-XYCWK2ZM.js +0 -1
  436. package/dist/esm/modules/a2a/a2a.tool.d.ts +0 -17
  437. package/dist/esm/modules/a2a/a2a.tool.js +0 -8
  438. package/dist/esm/modules/mcp/mcp.tool.d.ts +0 -17
  439. package/dist/esm/modules/mcp/mcp.tool.js +0 -8
  440. package/dist/esm/types/tool.js +0 -7
  441. /package/dist/esm/{chunk-WP276EXC.js.map → chunk-5C53F6HQ.js.map} +0 -0
  442. /package/dist/esm/{chunk-R44LLFOD.js.map → chunk-NTTSP6VU.js.map} +0 -0
  443. /package/dist/esm/{chunk-XYCWK2ZM.js.map → chunk-PG3C4LQO.js.map} +0 -0
  444. /package/dist/esm/{modules/a2a/a2a.tool.js.map → controllers/api/agent.api.controller.js.map} +0 -0
  445. /package/dist/esm/{modules/mcp/mcp.tool.js.map → controllers/api/intent.api.controller.js.map} +0 -0
  446. /package/dist/esm/{types/tool.js.map → modules/a2a/a2a.connector.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/routes/api/agent.routes.ts"],"sourcesContent":["import { Router } from \"express\";\nimport { AgentApiController } from \"@/controllers/api/agent.api.controller\";\nimport type { AINAgent } from \"@/index.js\";\n\nexport const createAgentApiRouter = (agent: AINAgent): Router => {\n\tconst router = Router();\n\tconst agentApiController = new AgentApiController(agent);\n\n\t// APIs (prefix: /api/agent)\n\trouter.get(\"/a2a\", agentApiController.handleGetA2AConnectors);\n\n\treturn router;\n};\n"],"mappings":";;;;;AAAA,SAAS,cAAc;AAIhB,IAAM,uBAAuB,CAAC,UAA4B;AAChE,QAAM,SAAS,OAAO;AACtB,QAAM,qBAAqB,IAAI,mBAAmB,KAAK;AAGvD,SAAO,IAAI,QAAQ,mBAAmB,sBAAsB;AAE5D,SAAO;AACR;","names":[]}
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-DM6UZSRU.js";
4
4
  import {
5
5
  QueryStreamService
6
- } from "./chunk-JUJSFXBX.js";
6
+ } from "./chunk-P4ADSRP5.js";
7
7
  import {
8
8
  A2AController
9
9
  } from "./chunk-HAE333YO.js";
@@ -34,4 +34,4 @@ var createA2ARouter = (agent) => {
34
34
  export {
35
35
  createA2ARouter
36
36
  };
37
- //# sourceMappingURL=chunk-WP276EXC.js.map
37
+ //# sourceMappingURL=chunk-5C53F6HQ.js.map
@@ -0,0 +1,11 @@
1
+ // src/types/connector.ts
2
+ var CONNECTOR_PROTOCOL_TYPE = /* @__PURE__ */ ((CONNECTOR_PROTOCOL_TYPE2) => {
3
+ CONNECTOR_PROTOCOL_TYPE2["A2A"] = "A2A";
4
+ CONNECTOR_PROTOCOL_TYPE2["MCP"] = "MCP";
5
+ return CONNECTOR_PROTOCOL_TYPE2;
6
+ })(CONNECTOR_PROTOCOL_TYPE || {});
7
+
8
+ export {
9
+ CONNECTOR_PROTOCOL_TYPE
10
+ };
11
+ //# sourceMappingURL=chunk-7CULQDJF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/types/connector.ts"],"sourcesContent":["/**\n * Supported tool protocol types in the AIN-ADK framework.\n */\nexport enum CONNECTOR_PROTOCOL_TYPE {\n\t/** Agent-to-Agent protocol */\n\tA2A = \"A2A\",\n\t/** Model Context Protocol */\n\tMCP = \"MCP\",\n}\n\nexport type ConnectorTool = {\n\ttoolName: string;\n\tconnectorName: string;\n\tprotocol: CONNECTOR_PROTOCOL_TYPE;\n\tdescription?: string;\n\tinputSchema?: any;\n};\n\n/**\n * Represents a tool invocation request.\n */\nexport type ToolCall = {\n\t/** Name of the tool to invoke */\n\tname: string;\n\t/** Arguments to pass to the tool */\n\targuments?: Record<string, unknown>;\n};\n\n/**\n * Response from a model fetch operation.\n *\n * Contains either content (text response) or tool calls (function invocations),\n * or both in the case of mixed responses.\n */\nexport type FetchResponse = {\n\t/** Text content response from the model */\n\tcontent?: string;\n\t/** Array of tool calls requested by the model */\n\ttoolCalls?: ToolCall[];\n};\n\n/**\n * Base interface for all tools in the AIN-ADK framework.\n *\n * Provides a protocol-agnostic interface for tool management,\n * allowing tools from different sources (MCP, A2A) to be used\n * interchangeably throughout the system.\n *\n * @example\n * ```typescript\n * const tool: IAgentTool = {\n * name: \"search-tool\",\n * protocol: TOOL_PROTOCOL_TYPE.MCP,\n * enabled: true,\n * enable: () => { this.enabled = true; },\n * disable: () => { this.enabled = false; }\n * };\n * ```\n */\nexport interface IAgentConnector {\n\t/** Unique identifier for the connector */\n\tname: string;\n\t/** Protocol type (MCP or A2A) */\n\tprotocol: CONNECTOR_PROTOCOL_TYPE;\n\t/** Whether the tool is currently enabled for use */\n\tenabled: boolean;\n\t/** Enables the tool for use */\n\tenable: () => void;\n\t/** Disables the tool from being used */\n\tdisable: () => void;\n}\n"],"mappings":";AAGO,IAAK,0BAAL,kBAAKA,6BAAL;AAEN,EAAAA,yBAAA,SAAM;AAEN,EAAAA,yBAAA,SAAM;AAJK,SAAAA;AAAA,GAAA;","names":["CONNECTOR_PROTOCOL_TYPE"]}
@@ -0,0 +1,42 @@
1
+ // src/controllers/api/intent.api.controller.ts
2
+ import { StatusCodes } from "http-status-codes";
3
+ var IntentApiController = class {
4
+ memoryModule;
5
+ constructor(memoryModule) {
6
+ this.memoryModule = memoryModule;
7
+ }
8
+ handleGetAllIntents = async (_req, res, next) => {
9
+ try {
10
+ const intentMemory = this.memoryModule.getIntentMemory();
11
+ const intents = await intentMemory?.listIntents();
12
+ res.json(intents);
13
+ } catch (error) {
14
+ next(error);
15
+ }
16
+ };
17
+ handleSaveIntent = async (req, res, next) => {
18
+ try {
19
+ const intent = req.body;
20
+ const intentMemory = this.memoryModule.getIntentMemory();
21
+ await intentMemory?.saveIntent(intent);
22
+ res.status(StatusCodes.OK).send();
23
+ } catch (error) {
24
+ next(error);
25
+ }
26
+ };
27
+ handleDeleteIntent = async (req, res, next) => {
28
+ try {
29
+ const { id } = req.params;
30
+ const intentMemory = this.memoryModule.getIntentMemory();
31
+ await intentMemory?.deleteIntent(id);
32
+ res.status(StatusCodes.OK).send();
33
+ } catch (error) {
34
+ next(error);
35
+ }
36
+ };
37
+ };
38
+
39
+ export {
40
+ IntentApiController
41
+ };
42
+ //# sourceMappingURL=chunk-DFXHJUGV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/controllers/api/intent.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 { Intent } from \"@/types/memory\";\n\nexport class IntentApiController {\n\tprivate memoryModule: MemoryModule;\n\n\tconstructor(memoryModule: MemoryModule) {\n\t\tthis.memoryModule = memoryModule;\n\t}\n\n\tpublic handleGetAllIntents = async (\n\t\t_req: Request,\n\t\tres: Response,\n\t\tnext: NextFunction,\n\t) => {\n\t\ttry {\n\t\t\tconst intentMemory = this.memoryModule.getIntentMemory();\n\t\t\tconst intents = await intentMemory?.listIntents();\n\t\t\tres.json(intents);\n\t\t} catch (error) {\n\t\t\tnext(error);\n\t\t}\n\t};\n\n\tpublic handleSaveIntent = async (\n\t\treq: Request,\n\t\tres: Response,\n\t\tnext: NextFunction,\n\t) => {\n\t\ttry {\n\t\t\tconst intent = req.body as Intent;\n\t\t\tconst intentMemory = this.memoryModule.getIntentMemory();\n\t\t\tawait intentMemory?.saveIntent(intent);\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 handleDeleteIntent = 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 intentMemory = this.memoryModule.getIntentMemory();\n\t\t\tawait intentMemory?.deleteIntent(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,sBAAN,MAA0B;AAAA,EACxB;AAAA,EAER,YAAY,cAA4B;AACvC,SAAK,eAAe;AAAA,EACrB;AAAA,EAEO,sBAAsB,OAC5B,MACA,KACA,SACI;AACJ,QAAI;AACH,YAAM,eAAe,KAAK,aAAa,gBAAgB;AACvD,YAAM,UAAU,MAAM,cAAc,YAAY;AAChD,UAAI,KAAK,OAAO;AAAA,IACjB,SAAS,OAAO;AACf,WAAK,KAAK;AAAA,IACX;AAAA,EACD;AAAA,EAEO,mBAAmB,OACzB,KACA,KACA,SACI;AACJ,QAAI;AACH,YAAM,SAAS,IAAI;AACnB,YAAM,eAAe,KAAK,aAAa,gBAAgB;AACvD,YAAM,cAAc,WAAW,MAAM;AACrC,UAAI,OAAO,YAAY,EAAE,EAAE,KAAK;AAAA,IACjC,SAAS,OAAO;AACf,WAAK,KAAK;AAAA,IACX;AAAA,EACD;AAAA,EAEO,qBAAqB,OAC3B,KACA,KACA,SACI;AACJ,QAAI;AACH,YAAM,EAAE,GAAG,IAAI,IAAI;AACnB,YAAM,eAAe,KAAK,aAAa,gBAAgB;AACvD,YAAM,cAAc,aAAa,EAAE;AACnC,UAAI,OAAO,YAAY,EAAE,EAAE,KAAK;AAAA,IACjC,SAAS,OAAO;AACf,WAAK,KAAK;AAAA,IACX;AAAA,EACD;AACD;","names":[]}
@@ -5,4 +5,4 @@ var BaseModel = class {
5
5
  export {
6
6
  BaseModel
7
7
  };
8
- //# sourceMappingURL=chunk-CDFLKADH.js.map
8
+ //# sourceMappingURL=chunk-DHDFPHYD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/modules/models/base.model.ts"],"sourcesContent":["import type { ConnectorTool, FetchResponse } from \"@/types/connector.js\";\nimport type { ThreadObject } from \"@/types/memory.js\";\nimport type { LLMStream } from \"@/types/stream.js\";\n\n/**\n * Abstract base class for AI model implementations.\n *\n * Provides a common interface for different AI model providers (OpenAI, Gemini, etc.)\n * to integrate with the AIN-ADK framework. Each model implementation must handle\n * message formatting, tool conversion, and API communication.\n *\n * @typeParam MessageType - The message format used by the specific model API\n * @typeParam FunctionType - The function/tool format used by the specific model API\n */\nexport abstract class BaseModel<MessageType, FunctionType> {\n\t/**\n\t * Generates an array of messages from thread and current query.\n\t *\n\t * @param query - Current user query\n\t * @param thread - Previous conversation history\n\t * @param systemPrompt - Optional system prompt to set context\n\t * @returns Array of messages formatted for the specific model API\n\t */\n\tabstract generateMessages(params: {\n\t\tquery: string;\n\t\tthread?: ThreadObject;\n\t\tsystemPrompt?: string;\n\t}): MessageType[];\n\n\t/**\n\t * Appends a new message to the existing message array.\n\t *\n\t * @param messages - Existing message array to expand\n\t * @param message - New message content to append\n\t */\n\tabstract appendMessages(messages: MessageType[], message: string): void;\n\n\t/**\n\t * Converts protocol-agnostic tools to model-specific function format.\n\t *\n\t * @param tools - Array of agent tools from MCP or A2A sources\n\t * @returns Array of functions in the format required by the model API\n\t */\n\tabstract convertToolsToFunctions(tools: ConnectorTool[]): FunctionType[];\n\n\t/**\n\t * Fetches a response from the model API without tool support.\n\t *\n\t * @param messages - Array of messages to send to the model\n\t * @returns Promise resolving to the model's response\n\t */\n\tabstract fetch(messages: MessageType[]): Promise<FetchResponse>;\n\n\t/**\n\t * Fetches a response from the model API with tool/function support.\n\t *\n\t * @param messages - Array of messages to send to the model\n\t * @param functions - Array of available functions/tools the model can call\n\t * @returns Promise resolving to the model's response, possibly including tool calls\n\t */\n\tabstract fetchWithContextMessage(\n\t\tmessages: MessageType[],\n\t\tfunctions: FunctionType[],\n\t): Promise<FetchResponse>;\n\n\t/**\n\t * Fetches a streaming response from the model API with tool/function support.\n\t *\n\t * Returns a standardized LLMStream that can be used consistently across\n\t * different AI model providers. Each implementation should convert their\n\t * provider-specific stream format to the common StreamChunk interface.\n\t *\n\t * @param messages - Array of messages to send to the model\n\t * @param functions - Array of available functions/tools the model can call\n\t * @returns Promise resolving to an LLMStream for consistent iteration\n\t */\n\tabstract fetchStreamWithContextMessage(\n\t\tmessages: MessageType[],\n\t\tfunctions: FunctionType[],\n\t): Promise<LLMStream>;\n}\n"],"mappings":";AAcO,IAAe,YAAf,MAAoD;AAkE3D;","names":[]}
@@ -1,3 +1,9 @@
1
+ import {
2
+ createAgentApiRouter
3
+ } from "./chunk-275JHD5P.js";
4
+ import {
5
+ createIntentApiRouter
6
+ } from "./chunk-XSFA3J2Y.js";
1
7
  import {
2
8
  createModelApiRouter
3
9
  } from "./chunk-AMRKK46V.js";
@@ -10,8 +16,10 @@ import { Router } from "express";
10
16
  var createApiRouter = (agent) => {
11
17
  const router = Router();
12
18
  router.use("/model", createModelApiRouter(agent.modelModule));
19
+ router.use("/agent", createAgentApiRouter(agent));
13
20
  if (agent.memoryModule) {
14
21
  router.use("/threads", createThreadApiRouter(agent.memoryModule));
22
+ router.use("/intent", createIntentApiRouter(agent.memoryModule));
15
23
  }
16
24
  return router;
17
25
  };
@@ -19,4 +27,4 @@ var createApiRouter = (agent) => {
19
27
  export {
20
28
  createApiRouter
21
29
  };
22
- //# sourceMappingURL=chunk-M3HZ2GQP.js.map
30
+ //# sourceMappingURL=chunk-F3I4URTX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/routes/api.routes.ts"],"sourcesContent":["import { Router } from \"express\";\nimport type { AINAgent } from \"@/index.js\";\nimport { createAgentApiRouter } from \"./api/agent.routes.js\";\nimport { createIntentApiRouter } from \"./api/intent.routes.js\";\nimport { createModelApiRouter } from \"./api/model.routes.js\";\nimport { createThreadApiRouter } from \"./api/threads.routes.js\";\n\nexport const createApiRouter = (agent: AINAgent): Router => {\n\tconst router = Router();\n\n\trouter.use(\"/model\", createModelApiRouter(agent.modelModule));\n\trouter.use(\"/agent\", createAgentApiRouter(agent));\n\tif (agent.memoryModule) {\n\t\trouter.use(\"/threads\", createThreadApiRouter(agent.memoryModule));\n\t\trouter.use(\"/intent\", createIntentApiRouter(agent.memoryModule));\n\t}\n\n\treturn router;\n};\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,cAAc;AAOhB,IAAM,kBAAkB,CAAC,UAA4B;AAC3D,QAAM,SAAS,OAAO;AAEtB,SAAO,IAAI,UAAU,qBAAqB,MAAM,WAAW,CAAC;AAC5D,SAAO,IAAI,UAAU,qBAAqB,KAAK,CAAC;AAChD,MAAI,MAAM,cAAc;AACvB,WAAO,IAAI,YAAY,sBAAsB,MAAM,YAAY,CAAC;AAChE,WAAO,IAAI,WAAW,sBAAsB,MAAM,YAAY,CAAC;AAAA,EAChE;AAEA,SAAO;AACR;","names":[]}
@@ -0,0 +1,25 @@
1
+ // src/modules/mcp/mcp.connector.ts
2
+ var MCPConnector = class {
3
+ name;
4
+ protocol = "MCP" /* MCP */;
5
+ enabled;
6
+ config;
7
+ client = null;
8
+ tools = [];
9
+ constructor(name, config) {
10
+ this.name = name;
11
+ this.enabled = true;
12
+ this.config = config;
13
+ }
14
+ enable() {
15
+ this.enabled = true;
16
+ }
17
+ disable() {
18
+ this.enabled = false;
19
+ }
20
+ };
21
+
22
+ export {
23
+ MCPConnector
24
+ };
25
+ //# sourceMappingURL=chunk-IKYOHZYW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/modules/mcp/mcp.connector.ts"],"sourcesContent":["import type { Client as MCPClient } from \"@modelcontextprotocol/sdk/client\";\nimport {\n\tCONNECTOR_PROTOCOL_TYPE,\n\ttype ConnectorTool,\n\ttype IAgentConnector,\n} from \"@/types/connector.js\";\nimport type { MCPConfig } from \"@/types/mcp\";\n\nexport class MCPConnector implements IAgentConnector {\n\tpublic name: string;\n\tpublic protocol: CONNECTOR_PROTOCOL_TYPE = CONNECTOR_PROTOCOL_TYPE.MCP;\n\tpublic enabled: boolean;\n\tpublic config: MCPConfig;\n\tpublic client: MCPClient | null = null;\n\tpublic tools: Array<ConnectorTool> = [];\n\n\tconstructor(name: string, config: MCPConfig) {\n\t\tthis.name = name;\n\t\tthis.enabled = true;\n\t\tthis.config = config;\n\t}\n\n\tpublic enable(): void {\n\t\tthis.enabled = true;\n\t}\n\n\tpublic disable(): void {\n\t\tthis.enabled = false;\n\t}\n}\n"],"mappings":";AAQO,IAAM,eAAN,MAA8C;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAA2B;AAAA,EAC3B,QAA8B,CAAC;AAAA,EAEtC,YAAY,MAAc,QAAmB;AAC5C,SAAK,OAAO;AACZ,SAAK,UAAU;AACf,SAAK,SAAS;AAAA,EACf;AAAA,EAEO,SAAe;AACrB,SAAK,UAAU;AAAA,EAChB;AAAA,EAEO,UAAgB;AACtB,SAAK,UAAU;AAAA,EAChB;AACD;","names":[]}
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  QueryService
3
- } from "./chunk-2EVONQZ4.js";
3
+ } from "./chunk-ZBA55AN4.js";
4
4
  import {
5
5
  QueryController
6
6
  } from "./chunk-4C2TLCWI.js";
7
7
  import {
8
8
  QueryStreamService
9
- } from "./chunk-JUJSFXBX.js";
9
+ } from "./chunk-P4ADSRP5.js";
10
10
 
11
11
  // src/routes/query.routes.ts
12
12
  import { Router } from "express";
@@ -40,4 +40,4 @@ var createQueryRouter = (agent, allowStream = false) => {
40
40
  export {
41
41
  createQueryRouter
42
42
  };
43
- //# sourceMappingURL=chunk-R44LLFOD.js.map
43
+ //# sourceMappingURL=chunk-NTTSP6VU.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
- A2ATool
3
- } from "./chunk-DGH3GB5I.js";
2
+ A2AConnector
3
+ } from "./chunk-WMZ6PYTE.js";
4
4
  import {
5
5
  loggers
6
6
  } from "./chunk-N7VYM2R5.js";
@@ -10,7 +10,7 @@ import { randomUUID } from "crypto";
10
10
  import { A2AClient } from "@a2a-js/sdk/client";
11
11
  var A2AModule = class {
12
12
  /** Map of A2A server URLs to their corresponding tool instances */
13
- a2aPeerServers = /* @__PURE__ */ new Map();
13
+ a2aConnectors = /* @__PURE__ */ new Map();
14
14
  /** Map of session IDs to their A2A session state */
15
15
  a2aTasks = /* @__PURE__ */ new Map();
16
16
  agentId = randomUUID();
@@ -18,10 +18,24 @@ var A2AModule = class {
18
18
  /**
19
19
  * Registers a new A2A peer server URL for connection.
20
20
  *
21
- * @param url - The URL of the A2A-compatible agent to connect to
21
+ * @param conns - Set of name, url pair
22
22
  */
23
- async addA2APeerServer(url) {
24
- this.a2aPeerServers.set(url, null);
23
+ async addA2AConnector(conns) {
24
+ for (const [name, url] of Object.entries(conns)) {
25
+ const conn = new A2AConnector(name, url);
26
+ this.a2aConnectors.set(name, conn);
27
+ }
28
+ }
29
+ getA2AConnectors() {
30
+ const connectors = [];
31
+ for (const [name, connector] of this.a2aConnectors.entries()) {
32
+ connectors.push({ name, url: connector.url });
33
+ }
34
+ return connectors;
35
+ }
36
+ getOrCreateClient(connector) {
37
+ connector.client ??= new A2AClient(connector.url);
38
+ return connector.client;
25
39
  }
26
40
  /**
27
41
  * Retrieves tools from all registered A2A peer servers.
@@ -33,22 +47,21 @@ var A2AModule = class {
33
47
  */
34
48
  async getTools() {
35
49
  const tools = [];
36
- for (const url of [...this.a2aPeerServers.keys()]) {
37
- const tool = this.a2aPeerServers.get(url);
38
- if (!tool || !tool.enabled) {
39
- try {
40
- const client = new A2AClient(url);
41
- const card = await client.getAgentCard();
42
- const toolName = card.name.replaceAll(" ", "-");
43
- const a2aTool = new A2ATool(toolName, client, card);
44
- tools.push(a2aTool);
45
- } catch (_error) {
46
- if (tool) {
47
- tool.disable();
48
- }
49
- }
50
- } else {
50
+ for (const [name, conn] of this.a2aConnectors.entries()) {
51
+ if (!conn.enabled) {
52
+ continue;
53
+ }
54
+ try {
55
+ const client = this.getOrCreateClient(conn);
56
+ const card = await client.getAgentCard();
57
+ const tool = {
58
+ toolName: card.name.replaceAll(" ", "-"),
59
+ connectorName: name,
60
+ protocol: "A2A" /* A2A */,
61
+ description: card.description
62
+ };
51
63
  tools.push(tool);
64
+ } catch (_error) {
52
65
  }
53
66
  }
54
67
  return tools;
@@ -93,18 +106,19 @@ var A2AModule = class {
93
106
  * text content from various event types in the response stream.
94
107
  *
95
108
  * @param tool - The A2ATool instance to use
96
- * @param messagePayload - The message to send to the agent
109
+ * @param query - The message to send to the agent
97
110
  * @param threadId - The session identifier for context tracking
98
111
  * @returns Promise resolving to array of text responses from the agent
99
112
  */
100
113
  async useTool(tool, query, threadId) {
101
114
  const finalText = [];
102
- const client = tool.client;
115
+ const connector = this.a2aConnectors.get(tool.connectorName);
103
116
  const messagePayload = this.getMessagePayload(query, threadId);
104
117
  const params = {
105
118
  message: messagePayload
106
119
  };
107
120
  try {
121
+ const client = this.getOrCreateClient(connector);
108
122
  const stream = client.sendMessageStream(params);
109
123
  for await (const event of stream) {
110
124
  if (event.kind === "status-update") {
@@ -135,12 +149,11 @@ var A2AModule = class {
135
149
  }
136
150
  } catch (error) {
137
151
  loggers.a2a.error("Error communicating with agent:", { error });
138
- tool.disable();
139
- const toolResult = `[Bot Called A2A Tool ${tool.card.name}]
152
+ const toolResult = `[Bot Called A2A Tool ${tool.toolName}]
140
153
  ${typeof error === "string" ? error : JSON.stringify(error, null, 2)}`;
141
154
  return toolResult;
142
155
  }
143
- return `[Bot Called A2A Tool ${tool.card.name}]
156
+ return `[Bot Called A2A Tool ${tool.toolName}]
144
157
  ${finalText.join("\n")}`;
145
158
  }
146
159
  };
@@ -148,4 +161,4 @@ ${finalText.join("\n")}`;
148
161
  export {
149
162
  A2AModule
150
163
  };
151
- //# sourceMappingURL=chunk-MJEPJ62P.js.map
164
+ //# sourceMappingURL=chunk-NWL3BMUH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/modules/a2a/a2a.module.ts"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport type {\n\tAgentCard,\n\tMessage,\n\tMessageSendParams,\n\tTask,\n\tTaskStatusUpdateEvent,\n\tTextPart,\n} from \"@a2a-js/sdk\";\nimport { A2AClient } from \"@a2a-js/sdk/client\";\nimport {\n\tCONNECTOR_PROTOCOL_TYPE,\n\ttype ConnectorTool,\n} from \"@/types/connector.js\";\nimport { ThreadType } from \"@/types/memory.js\";\nimport { loggers } from \"@/utils/logger.js\";\nimport { A2AConnector } from \"./a2a.connector.js\";\n\n/**\n * Module for managing Agent-to-Agent (A2A) protocol connections.\n *\n * This module handles connections to other A2A-compatible agents, manages\n * conversation sessions, and provides an interface for inter-agent communication.\n * Supports multi-turn conversations with task and context tracking.\n */\nexport class A2AModule {\n\t/** Map of A2A server URLs to their corresponding tool instances */\n\tprivate a2aConnectors: Map<string, A2AConnector> = new Map();\n\t/** Map of session IDs to their A2A session state */\n\tprivate a2aTasks: Map<string, string> = new Map();\n\tprivate agentId: string = randomUUID(); /* FIXME */\n\n\t/**\n\t * Registers a new A2A peer server URL for connection.\n\t *\n\t * @param conns - Set of name, url pair\n\t */\n\tpublic async addA2AConnector(conns: {\n\t\t[name: string]: string;\n\t}): Promise<void> {\n\t\tfor (const [name, url] of Object.entries(conns)) {\n\t\t\tconst conn = new A2AConnector(name, url);\n\t\t\tthis.a2aConnectors.set(name, conn);\n\t\t}\n\t}\n\n\tpublic getA2AConnectors(): Array<{ name: string; url: string }> {\n\t\tconst connectors: Array<{ name: string; url: string }> = [];\n\t\tfor (const [name, connector] of this.a2aConnectors.entries()) {\n\t\t\tconnectors.push({ name, url: connector.url });\n\t\t}\n\t\treturn connectors;\n\t}\n\n\tprivate getOrCreateClient(connector: A2AConnector): A2AClient {\n\t\tconnector.client ??= new A2AClient(connector.url);\n\t\treturn connector.client;\n\t}\n\n\t/**\n\t * Retrieves tools from all registered A2A peer servers.\n\t *\n\t * Attempts to connect to each registered server, fetch their agent cards,\n\t * and create tool instances. Disables tools for unreachable servers.\n\t *\n\t * @returns Promise resolving to array of available A2A tools\n\t */\n\tpublic async getTools(): Promise<ConnectorTool[]> {\n\t\tconst tools: ConnectorTool[] = [];\n\t\tfor (const [name, conn] of this.a2aConnectors.entries()) {\n\t\t\tif (!conn.enabled) {\n\t\t\t\tcontinue; // skip disabled agent\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst client = this.getOrCreateClient(conn);\n\t\t\t\tconst card: AgentCard = await client.getAgentCard();\n\t\t\t\t/* TODO: add each skill as tool? */\n\t\t\t\tconst tool: ConnectorTool = {\n\t\t\t\t\ttoolName: card.name.replaceAll(\" \", \"-\"),\n\t\t\t\t\tconnectorName: name,\n\t\t\t\t\tprotocol: CONNECTOR_PROTOCOL_TYPE.A2A,\n\t\t\t\t\tdescription: card.description,\n\t\t\t\t};\n\n\t\t\t\ttools.push(tool);\n\t\t\t} catch (_error: any) {\n\t\t\t\t// Agent not responded, just skip\n\t\t\t}\n\t\t}\n\t\treturn tools;\n\t}\n\n\t/**\n\t * Constructs a message payload for A2A communication.\n\t *\n\t * Includes session context (task ID and context ID) if available\n\t * for maintaining conversation continuity.\n\t *\n\t * @param query - The message content to send\n\t * @param threadId - The session identifier\n\t * @returns Formatted Message object for A2A protocol\n\t */\n\tpublic getMessagePayload(query: string, threadId: string): Message {\n\t\tconst messagePayload: Message = {\n\t\t\tmessageId: randomUUID(),\n\t\t\tkind: \"message\",\n\t\t\trole: \"user\", // FIXME: it could be 'agent'\n\t\t\tmetadata: {\n\t\t\t\tagentId: this.agentId,\n\t\t\t\ttype: ThreadType.CHAT,\n\t\t\t},\n\t\t\tparts: [\n\t\t\t\t{\n\t\t\t\t\tkind: \"text\",\n\t\t\t\t\ttext: query,\n\t\t\t\t},\n\t\t\t],\n\t\t\tcontextId: threadId,\n\t\t};\n\n\t\tif (this.a2aTasks.has(threadId)) {\n\t\t\tmessagePayload.taskId = this.a2aTasks.get(threadId);\n\t\t}\n\n\t\treturn messagePayload;\n\t}\n\n\t/**\n\t * Executes an A2A tool by sending a message to the remote agent.\n\t *\n\t * Handles streaming responses, maintains session state, and extracts\n\t * text content from various event types in the response stream.\n\t *\n\t * @param tool - The A2ATool instance to use\n\t * @param query - The message to send to the agent\n\t * @param threadId - The session identifier for context tracking\n\t * @returns Promise resolving to array of text responses from the agent\n\t */\n\tpublic async useTool(\n\t\ttool: ConnectorTool,\n\t\tquery: string,\n\t\tthreadId: string,\n\t): Promise<string> {\n\t\tconst finalText: string[] = [];\n\t\tconst connector = this.a2aConnectors.get(tool.connectorName);\n\t\tconst messagePayload = this.getMessagePayload(query, threadId);\n\t\tconst params: MessageSendParams = {\n\t\t\tmessage: messagePayload,\n\t\t};\n\n\t\ttry {\n\t\t\tconst client = this.getOrCreateClient(connector!);\n\t\t\tconst stream = client.sendMessageStream(params);\n\t\t\tfor await (const event of stream) {\n\t\t\t\tif (event.kind === \"status-update\") {\n\t\t\t\t\tconst typedEvent = event as TaskStatusUpdateEvent;\n\t\t\t\t\tif (\n\t\t\t\t\t\ttypedEvent.final &&\n\t\t\t\t\t\ttypedEvent.status.state !== \"input-required\"\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.a2aTasks.delete(threadId);\n\t\t\t\t\t}\n\t\t\t\t\t// TODO: handle 'file', 'data' parts\n\t\t\t\t\tconst texts = typedEvent.status.message?.parts\n\t\t\t\t\t\t.filter((part) => part.kind === \"text\")\n\t\t\t\t\t\t.map((part: TextPart) => part.text)\n\t\t\t\t\t\t.join(\"\\n\");\n\t\t\t\t\tif (texts) {\n\t\t\t\t\t\tfinalText.push(texts);\n\t\t\t\t\t}\n\t\t\t\t} else if (event.kind === \"message\") {\n\t\t\t\t\t// FIXME: handling text in 'message'?\n\t\t\t\t\tconst msg = event as Message;\n\t\t\t\t\tconst taskId = this.a2aTasks.get(threadId);\n\t\t\t\t\tif (msg.taskId && msg.taskId !== taskId) {\n\t\t\t\t\t\tthis.a2aTasks.set(threadId, msg.taskId);\n\t\t\t\t\t}\n\t\t\t\t} else if (event.kind === \"task\") {\n\t\t\t\t\t// establishing the Task ID\n\t\t\t\t\tconst task = event as Task;\n\t\t\t\t\tif (task.id !== this.a2aTasks.get(threadId)) {\n\t\t\t\t\t\tthis.a2aTasks.set(threadId, task.id);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tloggers.a2a.warn(\"Received unknown event structure from stream:\", {\n\t\t\t\t\t\tevent,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tloggers.a2a.error(\"Error communicating with agent:\", { error });\n\t\t\tconst toolResult = `[Bot Called A2A Tool ${tool.toolName}]\\n${typeof error === \"string\" ? error : JSON.stringify(error, null, 2)}`;\n\t\t\treturn toolResult;\n\t\t}\n\n\t\treturn `[Bot Called A2A Tool ${tool.toolName}]\\n${finalText.join(\"\\n\")}`;\n\t}\n}\n"],"mappings":"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","names":[]}
@@ -21,6 +21,23 @@ var QueryStreamService = class {
21
21
  this.memoryModule = memoryModule;
22
22
  this.prompts = prompts;
23
23
  }
24
+ async addToThreadMessages(thread, params) {
25
+ try {
26
+ const threadMemory = this.memoryModule?.getThreadMemory();
27
+ const { userId, threadId } = thread;
28
+ const newMessage = {
29
+ messageId: randomUUID(),
30
+ role: params.role,
31
+ timestamp: Date.now(),
32
+ content: { type: "text", parts: [params.content] },
33
+ metadata: params.metadata
34
+ };
35
+ thread.messages.push(newMessage);
36
+ await threadMemory?.addMessagesToThread(userId, threadId, [newMessage]);
37
+ } catch (error) {
38
+ loggers.intentStream.error("Error adding message to thread", error);
39
+ }
40
+ }
24
41
  /**
25
42
  * Detects the intent from context.
26
43
  *
@@ -32,14 +49,14 @@ var QueryStreamService = class {
32
49
  const modelInstance = this.modelModule.getModel();
33
50
  const intentMemory = this.memoryModule?.getIntentMemory();
34
51
  if (!intentMemory) {
35
- return void 0;
52
+ return [{ subquery: query }];
36
53
  }
37
54
  const intents = await intentMemory.listIntents();
38
55
  if (intents.length === 0) {
39
56
  loggers.intentStream.warn("No intent found");
40
- return void 0;
57
+ return [{ subquery: query }];
41
58
  }
42
- const intentList = intents.map((intent2) => `- ${intent2.name}: ${intent2.description}`).join("\n");
59
+ const intentList = intents.map((intent) => `- ${intent.name}: ${intent.description}`).join("\n");
43
60
  const threadMessages = !thread ? "" : thread.messages.sort((a, b) => a.timestamp - b.timestamp).map((message) => {
44
61
  const role = message.role === "USER" ? "User" : message.role === "MODEL" ? "Assistant" : "System";
45
62
  const content = Array.isArray(message.content.parts) ? message.content.parts.join(" ") : String(message.content.parts);
@@ -58,22 +75,53 @@ ${threadMessages}
58
75
 
59
76
  Last user question: "${query}"
60
77
 
61
- Based on the above conversation history, please determine what the intention of the last user question is.
62
- Please select and answer the most appropriate intent name from the available intent list.`;
78
+ Based on the above conversation history, analyze the last user question and identify all relevant intents.
79
+
80
+ Instructions:
81
+ 1. First, decompose the last user question into action-based subqueries (each representing a distinct action or task)
82
+ 2. Then, map each subquery to its corresponding intent from the available intent list
83
+ 3. For each subquery, provide a 2-3 sentence summary of what actions will be performed
84
+ 4. Multiple intents can be identified if the question covers various topics or actions
85
+ 5. Maintain the logical sequence of the original question when splitting into subqueries
86
+ 6. If any subquery doesn't match any intent in the available list, map it to "default" intent
87
+
88
+ Output Format:
89
+ Return the results as a JSON array with the following structure:
90
+ [
91
+ {
92
+ "subquery": "<subquery_1>",
93
+ "intentName": "<intent_name_1>",
94
+ "actionPlan": "<2-3 sentence description of what will be done for this subquery>"
95
+ },
96
+ {
97
+ "subquery": "<subquery_2>",
98
+ "intentName": "<intent_name_2>",
99
+ "actionPlan": "<2-3 sentence description of what will be done for this subquery>"
100
+ },
101
+ ...
102
+ ]
103
+
104
+ Requirements:
105
+ - Each subquery should represent a single, actionable task or request
106
+ - Preserve the original meaning and context when splitting queries
107
+ - Select only from the provided intent list
108
+ - Use "default" as the intent value for any subquery that doesn't match available intents.`;
63
109
  const messages = modelInstance.generateMessages({
64
110
  query: userMessage,
65
111
  systemPrompt
66
112
  });
67
113
  const response = await modelInstance.fetch(messages);
68
114
  if (!response.content) {
69
- throw new Error("No intent detected");
115
+ loggers.intent.warn("Cannot extract intent from query");
116
+ return [{ subquery: query }];
70
117
  }
71
- const intentName = response.content.trim();
72
- const intent = await intentMemory.getIntentByName(intentName);
73
- if (!intent) {
74
- throw new Error(`No intent found: ${intentName}`);
118
+ const subqueries = JSON.parse(response.content);
119
+ const triggeredIntent = [];
120
+ for (const { subquery, intentName, actionPlan } of subqueries) {
121
+ const intent = await intentMemory.getIntentByName(intentName);
122
+ triggeredIntent.push({ subquery, intent, actionPlan });
75
123
  }
76
- return intent;
124
+ return triggeredIntent;
77
125
  }
78
126
  /**
79
127
  * Fulfills the detected intent by generating a streaming response.
@@ -91,7 +139,7 @@ Please select and answer the most appropriate intent name from the available int
91
139
  * @param intent - Optional detected intent with custom prompt
92
140
  * @returns AsyncGenerator yielding StreamEvent objects
93
141
  */
94
- async *intentFulfilling(query, threadId, thread, intent) {
142
+ async *intentFulfilling(query, thread, intent) {
95
143
  const systemPrompt = `
96
144
  Today is ${(/* @__PURE__ */ new Date()).toLocaleDateString()}.
97
145
 
@@ -118,7 +166,7 @@ ${intent?.prompt || ""}
118
166
  functions
119
167
  );
120
168
  const assembledToolCalls = [];
121
- loggers.intentStream.debug("messages", { messages });
169
+ loggers.intentStream.info("messages", { messages });
122
170
  for await (const chunk of responseStream) {
123
171
  const delta = chunk.delta;
124
172
  if (delta?.tool_calls) {
@@ -147,7 +195,9 @@ ${intent?.prompt || ""}
147
195
  for (const toolCall of assembledToolCalls) {
148
196
  const toolCallId = randomUUID();
149
197
  const toolName = toolCall.function.name;
150
- const selectedTool = tools.filter((tool) => tool.id === toolName)[0];
198
+ const selectedTool = tools.filter(
199
+ (tool) => tool.toolName === toolName
200
+ )[0];
151
201
  let toolResult = "";
152
202
  if (this.mcpModule && selectedTool.protocol === "MCP" /* MCP */) {
153
203
  const toolArgs = JSON.parse(toolCall.function.arguments);
@@ -160,11 +210,8 @@ ${intent?.prompt || ""}
160
210
  toolArgs
161
211
  }
162
212
  };
163
- loggers.intent.debug("MCP tool call", { toolName, toolArgs });
164
- toolResult = await this.mcpModule.useTool(
165
- selectedTool,
166
- toolArgs
167
- );
213
+ loggers.intent.info("MCP tool call", { toolName, toolArgs });
214
+ toolResult = await this.mcpModule.useTool(selectedTool, toolArgs);
168
215
  } else if (this.a2aModule && selectedTool.protocol === "A2A" /* A2A */) {
169
216
  yield {
170
217
  event: "tool_start",
@@ -175,11 +222,11 @@ ${intent?.prompt || ""}
175
222
  toolArgs: null
176
223
  }
177
224
  };
178
- loggers.intent.debug("A2A tool call", { toolName });
225
+ loggers.intent.info("A2A tool call", { toolName });
179
226
  toolResult = await this.a2aModule.useTool(
180
227
  selectedTool,
181
228
  query,
182
- threadId
229
+ thread.threadId
183
230
  );
184
231
  } else {
185
232
  loggers.intent.warn(
@@ -250,7 +297,6 @@ ${intent?.prompt || ""}
250
297
  */
251
298
  async *handleQueryStream(threadMetadata, query, isA2A) {
252
299
  const { type, userId } = threadMetadata;
253
- const queryStartAt = Date.now();
254
300
  const threadMemory = this.memoryModule?.getThreadMemory();
255
301
  let threadId = threadMetadata.threadId;
256
302
  let thread;
@@ -263,76 +309,74 @@ ${intent?.prompt || ""}
263
309
  threadId ??= randomUUID();
264
310
  if (!thread) {
265
311
  const title = await this.generateTitle(query);
266
- const metadata = await threadMemory?.createThread(type, userId, threadId, title) || {
312
+ const metadata = await threadMemory?.createThread(
267
313
  type,
314
+ userId,
268
315
  threadId,
269
- title,
270
- updatedAt: Date.now()
271
- };
272
- loggers.intentStream.info("Create new thread", { metadata });
273
- yield { event: "thread_id", data: metadata };
316
+ title
317
+ ) || { type, userId, threadId, title };
318
+ thread = { ...metadata, messages: [] };
319
+ loggers.intent.info(`Create new thread: ${threadId}`);
320
+ yield { event: "thread_id", data: { type, userId, threadId, title } };
274
321
  }
275
322
  await threadMemory?.addMessagesToThread(userId, threadId, [
276
323
  {
277
324
  messageId: randomUUID(),
278
325
  role: "USER" /* USER */,
279
- timestamp: queryStartAt,
326
+ timestamp: Date.now(),
280
327
  content: { type: "text", parts: [query] }
281
328
  }
282
329
  ]);
283
- const intent = await this.intentTriggering(query, thread);
284
- const stream = this.intentFulfilling(query, threadId, thread, intent);
330
+ const triggeredIntent = await this.intentTriggering(
331
+ query,
332
+ thread
333
+ );
285
334
  let finalResponseText = "";
286
- for await (const event of stream) {
287
- if (event.event === "text_chunk" && event.data.delta) {
288
- loggers.intentStream.debug("text_chunk", { event });
289
- finalResponseText += event.data.delta;
290
- } else if (event.event === "tool_start") {
291
- await threadMemory?.addMessagesToThread(userId, threadId, [
292
- {
293
- messageId: randomUUID(),
294
- role: "MODEL" /* MODEL */,
295
- timestamp: Date.now(),
296
- content: {
297
- type: "text",
298
- parts: [JSON.stringify(event.data.toolArgs)]
299
- },
300
- metadata: {
301
- toolCallId: event.data.toolCallId,
302
- toolName: event.data.toolName,
303
- protocol: event.data.protocol
304
- }
305
- }
306
- ]);
307
- } else if (event.event === "tool_output") {
308
- await threadMemory?.addMessagesToThread(userId, threadId, [
309
- {
310
- messageId: randomUUID(),
311
- role: "MODEL" /* MODEL */,
312
- timestamp: Date.now(),
313
- content: { type: "text", parts: [event.data.result] },
314
- metadata: {
315
- toolCallId: event.data.toolCallId,
316
- toolName: event.data.toolName,
317
- protocol: event.data.protocol
318
- }
319
- }
320
- ]);
321
- }
322
- yield event;
323
- }
324
- await threadMemory?.addMessagesToThread(userId, threadId, [
325
- {
335
+ for (let i = 0; i < triggeredIntent.length; i++) {
336
+ const { subquery, intent, actionPlan } = triggeredIntent[i];
337
+ loggers.intent.info(`Process query: ${subquery}, ${intent?.name}`);
338
+ loggers.intent.info(`Action plan: ${actionPlan}`);
339
+ finalResponseText !== "" && thread.messages.push({
326
340
  messageId: randomUUID(),
327
341
  role: "MODEL" /* MODEL */,
328
342
  timestamp: Date.now(),
329
- content: { type: "text", parts: [finalResponseText] }
343
+ content: { type: "text", parts: [finalResponseText] },
344
+ metadata: { isThinking: true }
345
+ });
346
+ await this.addToThreadMessages(thread, {
347
+ role: "MODEL" /* MODEL */,
348
+ content: subquery,
349
+ metadata: {
350
+ subquery,
351
+ isThinking: true,
352
+ actionPlan
353
+ }
354
+ });
355
+ yield {
356
+ event: "intent_process",
357
+ data: { subquery, actionPlan: actionPlan || "" }
358
+ };
359
+ const stream = this.intentFulfilling(subquery, thread, intent);
360
+ finalResponseText = "";
361
+ for await (const event of stream) {
362
+ if (event.event === "text_chunk" && event.data.delta) {
363
+ loggers.intentStream.debug("text_chunk", { event });
364
+ finalResponseText += event.data.delta;
365
+ }
366
+ if (event.event === "text_chunk" && i !== triggeredIntent.length - 1) {
367
+ continue;
368
+ }
369
+ yield event;
330
370
  }
331
- ]);
371
+ }
372
+ await this.addToThreadMessages(thread, {
373
+ role: "MODEL" /* MODEL */,
374
+ content: finalResponseText
375
+ });
332
376
  }
333
377
  };
334
378
 
335
379
  export {
336
380
  QueryStreamService
337
381
  };
338
- //# sourceMappingURL=chunk-JUJSFXBX.js.map
382
+ //# sourceMappingURL=chunk-P4ADSRP5.js.map