@ainetwork/adk 0.3.1 → 0.3.2

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 (377) hide show
  1. package/dist/cjs/{chunk-ZFSXQFEK.cjs → chunk-25FZXCHU.cjs} +51 -16
  2. package/dist/cjs/chunk-25FZXCHU.cjs.map +1 -0
  3. package/dist/cjs/{chunk-7QIF3FVV.cjs → chunk-3RS6NVSN.cjs} +7 -7
  4. package/dist/cjs/{chunk-7QIF3FVV.cjs.map → chunk-3RS6NVSN.cjs.map} +1 -1
  5. package/dist/cjs/{chunk-6WAVK3BS.cjs → chunk-4IBKK5HW.cjs} +27 -9
  6. package/dist/cjs/chunk-4IBKK5HW.cjs.map +1 -0
  7. package/dist/cjs/{chunk-QSBUV5WJ.cjs → chunk-5QSLQX4H.cjs} +20 -16
  8. package/dist/cjs/chunk-5QSLQX4H.cjs.map +1 -0
  9. package/dist/cjs/{chunk-OVTUSYSU.cjs → chunk-5WWZOWMA.cjs} +1 -1
  10. package/dist/cjs/chunk-5WWZOWMA.cjs.map +1 -0
  11. package/dist/cjs/{chunk-AWHKDGXN.cjs → chunk-6T2YGFSD.cjs} +3 -3
  12. package/dist/cjs/{chunk-AWHKDGXN.cjs.map → chunk-6T2YGFSD.cjs.map} +1 -1
  13. package/dist/cjs/{chunk-NYDNXGKB.cjs → chunk-7KXB6FOT.cjs} +20 -16
  14. package/dist/cjs/chunk-7KXB6FOT.cjs.map +1 -0
  15. package/dist/cjs/chunk-B3U3LJ7J.cjs +17 -0
  16. package/dist/cjs/chunk-B3U3LJ7J.cjs.map +1 -0
  17. package/dist/cjs/{chunk-ICFTUZP5.cjs → chunk-C5JALNJT.cjs} +4 -4
  18. package/dist/cjs/{chunk-ICFTUZP5.cjs.map → chunk-C5JALNJT.cjs.map} +1 -1
  19. package/dist/cjs/chunk-CLJ3DWTA.cjs +62 -0
  20. package/dist/cjs/chunk-CLJ3DWTA.cjs.map +1 -0
  21. package/dist/cjs/{chunk-I4ET55WI.cjs → chunk-DGXLVGIM.cjs} +7 -7
  22. package/dist/cjs/{chunk-I4ET55WI.cjs.map → chunk-DGXLVGIM.cjs.map} +1 -1
  23. package/dist/cjs/{chunk-G42JXC76.cjs → chunk-E3PD4Q76.cjs} +7 -7
  24. package/dist/cjs/{chunk-G42JXC76.cjs.map → chunk-E3PD4Q76.cjs.map} +1 -1
  25. package/dist/cjs/{chunk-ASEYNIPL.cjs → chunk-EA3YMPST.cjs} +7 -7
  26. package/dist/cjs/{chunk-OFUS74ON.cjs.map → chunk-EA3YMPST.cjs.map} +1 -1
  27. package/dist/cjs/{chunk-K5LS7KNV.cjs → chunk-HF7GKQ6Y.cjs} +10 -10
  28. package/dist/cjs/{chunk-K63YCRBA.cjs.map → chunk-HF7GKQ6Y.cjs.map} +1 -1
  29. package/dist/cjs/{chunk-NYYEZ4ER.cjs → chunk-M5TQFW2Y.cjs} +3 -3
  30. package/dist/cjs/{chunk-NYYEZ4ER.cjs.map → chunk-M5TQFW2Y.cjs.map} +1 -1
  31. package/dist/cjs/{chunk-TF7S7SPO.cjs → chunk-NEWJ7PXH.cjs} +4 -4
  32. package/dist/cjs/{chunk-TF7S7SPO.cjs.map → chunk-NEWJ7PXH.cjs.map} +1 -1
  33. package/dist/cjs/{chunk-AQXHOGJD.cjs → chunk-NNYPZA6W.cjs} +19 -1
  34. package/dist/cjs/chunk-NNYPZA6W.cjs.map +1 -0
  35. package/dist/cjs/chunk-O5X5QT63.cjs +19 -0
  36. package/dist/cjs/chunk-O5X5QT63.cjs.map +1 -0
  37. package/dist/cjs/{chunk-7QXQYCZP.cjs → chunk-OZPPTVUA.cjs} +41 -55
  38. package/dist/cjs/chunk-OZPPTVUA.cjs.map +1 -0
  39. package/dist/cjs/{chunk-BDQDZXZI.cjs → chunk-RCOESZIX.cjs} +9 -23
  40. package/dist/cjs/chunk-RCOESZIX.cjs.map +1 -0
  41. package/dist/cjs/{chunk-K63YCRBA.cjs → chunk-RVT67VJL.cjs} +10 -10
  42. package/dist/cjs/{chunk-K5LS7KNV.cjs.map → chunk-RVT67VJL.cjs.map} +1 -1
  43. package/dist/cjs/{chunk-X5INT5HE.cjs → chunk-U47SG7XG.cjs} +16 -11
  44. package/dist/cjs/chunk-U47SG7XG.cjs.map +1 -0
  45. package/dist/cjs/{chunk-MO3H4KHE.cjs → chunk-XHTEJE4E.cjs} +3 -3
  46. package/dist/cjs/{chunk-MO3H4KHE.cjs.map → chunk-XHTEJE4E.cjs.map} +1 -1
  47. package/dist/cjs/{chunk-OFUS74ON.cjs → chunk-YY7HSXBP.cjs} +7 -7
  48. package/dist/cjs/{chunk-TF2SCL3K.cjs.map → chunk-YY7HSXBP.cjs.map} +1 -1
  49. package/dist/cjs/config/manifest.cjs +9 -0
  50. package/dist/cjs/config/manifest.cjs.map +1 -0
  51. package/dist/cjs/controllers/a2a.controller.cjs +3 -3
  52. package/dist/cjs/controllers/index.cjs +5 -4
  53. package/dist/cjs/controllers/index.cjs.map +1 -1
  54. package/dist/cjs/controllers/query.controller.cjs +3 -2
  55. package/dist/cjs/controllers/query.controller.cjs.map +1 -1
  56. package/dist/cjs/index.cjs +42 -54
  57. package/dist/cjs/index.cjs.map +1 -1
  58. package/dist/cjs/middlewares/error.middleware.cjs +3 -3
  59. package/dist/cjs/modules/a2a/a2a.connector.cjs +2 -2
  60. package/dist/cjs/modules/a2a/a2a.module.cjs +4 -4
  61. package/dist/cjs/modules/index.cjs +10 -10
  62. package/dist/cjs/modules/index.cjs.map +1 -1
  63. package/dist/cjs/modules/mcp/mcp.module.cjs +3 -3
  64. package/dist/cjs/routes/a2a.routes.cjs +11 -10
  65. package/dist/cjs/routes/a2a.routes.cjs.map +1 -1
  66. package/dist/cjs/routes/api.routes.cjs +4 -4
  67. package/dist/cjs/routes/index.cjs +21 -20
  68. package/dist/cjs/routes/index.cjs.map +1 -1
  69. package/dist/cjs/routes/intent.routes.cjs +13 -12
  70. package/dist/cjs/routes/intent.routes.cjs.map +1 -1
  71. package/dist/cjs/routes/query.routes.cjs +12 -11
  72. package/dist/cjs/routes/query.routes.cjs.map +1 -1
  73. package/dist/cjs/services/a2a.service.cjs +3 -3
  74. package/dist/cjs/services/index.cjs +12 -11
  75. package/dist/cjs/services/index.cjs.map +1 -1
  76. package/dist/cjs/services/intents/fulfill-stream.service.cjs +4 -3
  77. package/dist/cjs/services/intents/fulfill-stream.service.cjs.map +1 -1
  78. package/dist/cjs/services/intents/fulfill.service.cjs +3 -3
  79. package/dist/cjs/services/intents/trigger.service.cjs +3 -3
  80. package/dist/cjs/services/query-stream.service.cjs +8 -7
  81. package/dist/cjs/services/query-stream.service.cjs.map +1 -1
  82. package/dist/cjs/services/query.service.cjs +7 -7
  83. package/dist/cjs/services/utils/query.common.cjs +3 -3
  84. package/dist/cjs/utils/isValidUrl.cjs +7 -0
  85. package/dist/cjs/utils/isValidUrl.cjs.map +1 -0
  86. package/dist/cjs/utils/logger.cjs +2 -2
  87. package/dist/esm/chunk-2J2TQRP4.js +19 -0
  88. package/dist/esm/chunk-2J2TQRP4.js.map +1 -0
  89. package/dist/esm/{chunk-DM6UZSRU.js → chunk-4LBR3TIJ.js} +5 -19
  90. package/dist/esm/chunk-4LBR3TIJ.js.map +1 -0
  91. package/dist/esm/{chunk-J2UFYVKK.js → chunk-5IIF5O4A.js} +2 -2
  92. package/dist/esm/{chunk-WRKUZMNO.js → chunk-6AN7Z5OC.js} +6 -6
  93. package/dist/esm/{chunk-V24ATQLM.js → chunk-A5PRJ33H.js} +29 -43
  94. package/dist/esm/chunk-A5PRJ33H.js.map +1 -0
  95. package/dist/esm/{chunk-WMZ6PYTE.js → chunk-BZZDVW26.js} +1 -1
  96. package/dist/esm/chunk-BZZDVW26.js.map +1 -0
  97. package/dist/esm/{chunk-NWL3BMUH.js → chunk-FRQSMPPK.js} +49 -14
  98. package/dist/esm/chunk-FRQSMPPK.js.map +1 -0
  99. package/dist/esm/chunk-I5DLV2CU.js +17 -0
  100. package/dist/esm/chunk-I5DLV2CU.js.map +1 -0
  101. package/dist/esm/{chunk-RJZ4QSDX.js → chunk-JCXAHLRN.js} +12 -8
  102. package/dist/esm/chunk-JCXAHLRN.js.map +1 -0
  103. package/dist/esm/{chunk-OW7PCDK5.js → chunk-JHKBIDPX.js} +19 -1
  104. package/dist/esm/chunk-JHKBIDPX.js.map +1 -0
  105. package/dist/esm/{chunk-DIW5VDAQ.js → chunk-KOCOM7IC.js} +2 -2
  106. package/dist/esm/{chunk-YDMTU6UH.js → chunk-PVWOU6LA.js} +21 -3
  107. package/dist/esm/chunk-PVWOU6LA.js.map +1 -0
  108. package/dist/esm/{chunk-MCMWSGRJ.js → chunk-Q7NLA5X4.js} +7 -7
  109. package/dist/esm/{chunk-MAU2MAK2.js → chunk-RAHOYMKY.js} +2 -2
  110. package/dist/esm/{chunk-WL7H2QX4.js → chunk-UEUZ7G5P.js} +8 -3
  111. package/dist/esm/chunk-UEUZ7G5P.js.map +1 -0
  112. package/dist/esm/chunk-VUMI4XOY.js +62 -0
  113. package/dist/esm/chunk-VUMI4XOY.js.map +1 -0
  114. package/dist/esm/{chunk-THBAYYPZ.js → chunk-WO2QJ6UM.js} +2 -2
  115. package/dist/esm/{chunk-7XCSPITE.js → chunk-Y7BKUWRJ.js} +7 -7
  116. package/dist/esm/{chunk-3FE3GPF2.js → chunk-YJTWW6QK.js} +4 -4
  117. package/dist/esm/{chunk-HAE333YO.js → chunk-YMSNW2SU.js} +2 -2
  118. package/dist/esm/config/manifest.d.ts +7 -0
  119. package/dist/esm/config/manifest.js +9 -0
  120. package/dist/esm/config/manifest.js.map +1 -0
  121. package/dist/esm/controllers/a2a.controller.d.ts +2 -2
  122. package/dist/esm/controllers/a2a.controller.js +2 -2
  123. package/dist/esm/controllers/api/agent.api.controller.d.ts +2 -2
  124. package/dist/esm/controllers/index.d.ts +2 -2
  125. package/dist/esm/controllers/index.js +4 -3
  126. package/dist/esm/controllers/query.controller.d.ts +2 -2
  127. package/dist/esm/controllers/query.controller.js +2 -1
  128. package/dist/esm/index.d.ts +2 -9
  129. package/dist/esm/index.js +35 -47
  130. package/dist/esm/index.js.map +1 -1
  131. package/dist/esm/middlewares/error.middleware.js +2 -2
  132. package/dist/esm/modules/a2a/a2a.connector.d.ts +2 -2
  133. package/dist/esm/modules/a2a/a2a.connector.js +1 -1
  134. package/dist/esm/modules/a2a/a2a.module.d.ts +5 -2
  135. package/dist/esm/modules/a2a/a2a.module.js +3 -3
  136. package/dist/esm/modules/index.d.ts +2 -2
  137. package/dist/esm/modules/index.js +9 -9
  138. package/dist/esm/modules/mcp/mcp.module.js +2 -2
  139. package/dist/esm/routes/a2a.routes.d.ts +2 -2
  140. package/dist/esm/routes/a2a.routes.js +10 -9
  141. package/dist/esm/routes/api/agent.routes.d.ts +2 -2
  142. package/dist/esm/routes/api.routes.d.ts +2 -2
  143. package/dist/esm/routes/api.routes.js +3 -3
  144. package/dist/esm/routes/index.d.ts +2 -2
  145. package/dist/esm/routes/index.js +20 -19
  146. package/dist/esm/routes/intent.routes.d.ts +2 -2
  147. package/dist/esm/routes/intent.routes.js +12 -11
  148. package/dist/esm/routes/query.routes.d.ts +2 -2
  149. package/dist/esm/routes/query.routes.js +11 -10
  150. package/dist/esm/services/a2a.service.d.ts +2 -2
  151. package/dist/esm/services/a2a.service.js +2 -2
  152. package/dist/esm/services/index.d.ts +2 -2
  153. package/dist/esm/services/index.js +12 -11
  154. package/dist/esm/services/intents/fulfill-stream.service.js +3 -2
  155. package/dist/esm/services/intents/fulfill.service.d.ts +1 -1
  156. package/dist/esm/services/intents/fulfill.service.js +2 -2
  157. package/dist/esm/services/intents/trigger.service.js +2 -2
  158. package/dist/esm/services/query-stream.service.d.ts +2 -1
  159. package/dist/esm/services/query-stream.service.js +7 -6
  160. package/dist/esm/services/query.service.d.ts +1 -1
  161. package/dist/esm/services/query.service.js +6 -6
  162. package/dist/esm/services/utils/fulfill.common.d.ts +1 -1
  163. package/dist/esm/services/utils/query.common.js +2 -2
  164. package/dist/esm/types/stream.d.ts +3 -3
  165. package/dist/esm/utils/isValidUrl.d.ts +9 -0
  166. package/dist/esm/utils/isValidUrl.js +7 -0
  167. package/dist/esm/utils/isValidUrl.js.map +1 -0
  168. package/dist/esm/utils/logger.js +1 -1
  169. package/package.json +5 -4
  170. package/dist/cjs/chunk-2OXSV2VU.cjs +0 -134
  171. package/dist/cjs/chunk-2OXSV2VU.cjs.map +0 -1
  172. package/dist/cjs/chunk-2TNBBXQ3.cjs +0 -129
  173. package/dist/cjs/chunk-2TNBBXQ3.cjs.map +0 -1
  174. package/dist/cjs/chunk-2TOW46DI.cjs +0 -246
  175. package/dist/cjs/chunk-2TOW46DI.cjs.map +0 -1
  176. package/dist/cjs/chunk-35MIRD7Z.cjs +0 -134
  177. package/dist/cjs/chunk-35MIRD7Z.cjs.map +0 -1
  178. package/dist/cjs/chunk-37J4FFJ3.cjs +0 -133
  179. package/dist/cjs/chunk-37J4FFJ3.cjs.map +0 -1
  180. package/dist/cjs/chunk-3BPHCG6M.cjs +0 -30
  181. package/dist/cjs/chunk-3BPHCG6M.cjs.map +0 -1
  182. package/dist/cjs/chunk-3XJS5S3O.cjs +0 -191
  183. package/dist/cjs/chunk-3XJS5S3O.cjs.map +0 -1
  184. package/dist/cjs/chunk-43XI3NHI.cjs +0 -43
  185. package/dist/cjs/chunk-43XI3NHI.cjs.map +0 -1
  186. package/dist/cjs/chunk-466ED5WN.cjs +0 -41
  187. package/dist/cjs/chunk-466ED5WN.cjs.map +0 -1
  188. package/dist/cjs/chunk-4KL2BCDZ.cjs +0 -43
  189. package/dist/cjs/chunk-4KL2BCDZ.cjs.map +0 -1
  190. package/dist/cjs/chunk-4RPP5UAH.cjs +0 -202
  191. package/dist/cjs/chunk-4RPP5UAH.cjs.map +0 -1
  192. package/dist/cjs/chunk-4TO7EZ5J.cjs +0 -133
  193. package/dist/cjs/chunk-4TO7EZ5J.cjs.map +0 -1
  194. package/dist/cjs/chunk-5IEVTAT2.cjs +0 -37
  195. package/dist/cjs/chunk-5IEVTAT2.cjs.map +0 -1
  196. package/dist/cjs/chunk-67CP7NP7.cjs +0 -132
  197. package/dist/cjs/chunk-67CP7NP7.cjs.map +0 -1
  198. package/dist/cjs/chunk-6WAVK3BS.cjs.map +0 -1
  199. package/dist/cjs/chunk-7CCDDRLV.cjs +0 -28
  200. package/dist/cjs/chunk-7CCDDRLV.cjs.map +0 -1
  201. package/dist/cjs/chunk-7ELF6ICG.cjs +0 -129
  202. package/dist/cjs/chunk-7ELF6ICG.cjs.map +0 -1
  203. package/dist/cjs/chunk-7IORLKS7.cjs +0 -28
  204. package/dist/cjs/chunk-7IORLKS7.cjs.map +0 -1
  205. package/dist/cjs/chunk-7P4O537H.cjs +0 -132
  206. package/dist/cjs/chunk-7P4O537H.cjs.map +0 -1
  207. package/dist/cjs/chunk-7QXQYCZP.cjs.map +0 -1
  208. package/dist/cjs/chunk-AIUJ6CZR.cjs +0 -37
  209. package/dist/cjs/chunk-AIUJ6CZR.cjs.map +0 -1
  210. package/dist/cjs/chunk-AQXHOGJD.cjs.map +0 -1
  211. package/dist/cjs/chunk-ASEYNIPL.cjs.map +0 -1
  212. package/dist/cjs/chunk-BDQDZXZI.cjs.map +0 -1
  213. package/dist/cjs/chunk-BXBFJKZC.cjs +0 -114
  214. package/dist/cjs/chunk-BXBFJKZC.cjs.map +0 -1
  215. package/dist/cjs/chunk-BYTLWEXM.cjs +0 -43
  216. package/dist/cjs/chunk-BYTLWEXM.cjs.map +0 -1
  217. package/dist/cjs/chunk-C35ER63S.cjs +0 -134
  218. package/dist/cjs/chunk-C35ER63S.cjs.map +0 -1
  219. package/dist/cjs/chunk-CGD7CECK.cjs +0 -129
  220. package/dist/cjs/chunk-CGD7CECK.cjs.map +0 -1
  221. package/dist/cjs/chunk-CKIA6H2D.cjs +0 -30
  222. package/dist/cjs/chunk-CKIA6H2D.cjs.map +0 -1
  223. package/dist/cjs/chunk-CPZBDQ5D.cjs +0 -28
  224. package/dist/cjs/chunk-CPZBDQ5D.cjs.map +0 -1
  225. package/dist/cjs/chunk-DEWNBL5H.cjs +0 -37
  226. package/dist/cjs/chunk-DEWNBL5H.cjs.map +0 -1
  227. package/dist/cjs/chunk-DK57ZF33.cjs +0 -28
  228. package/dist/cjs/chunk-DK57ZF33.cjs.map +0 -1
  229. package/dist/cjs/chunk-DQIGZKKW.cjs +0 -37
  230. package/dist/cjs/chunk-DQIGZKKW.cjs.map +0 -1
  231. package/dist/cjs/chunk-DT2RCV6G.cjs +0 -40
  232. package/dist/cjs/chunk-DT2RCV6G.cjs.map +0 -1
  233. package/dist/cjs/chunk-E35E4LQY.cjs +0 -43
  234. package/dist/cjs/chunk-E35E4LQY.cjs.map +0 -1
  235. package/dist/cjs/chunk-EETXLYKA.cjs +0 -28
  236. package/dist/cjs/chunk-EETXLYKA.cjs.map +0 -1
  237. package/dist/cjs/chunk-F3A5E26D.cjs +0 -115
  238. package/dist/cjs/chunk-F3A5E26D.cjs.map +0 -1
  239. package/dist/cjs/chunk-FH44ANEI.cjs +0 -134
  240. package/dist/cjs/chunk-FH44ANEI.cjs.map +0 -1
  241. package/dist/cjs/chunk-FTRCEUDB.cjs +0 -40
  242. package/dist/cjs/chunk-FTRCEUDB.cjs.map +0 -1
  243. package/dist/cjs/chunk-G3BK3F7V.cjs +0 -129
  244. package/dist/cjs/chunk-G3BK3F7V.cjs.map +0 -1
  245. package/dist/cjs/chunk-GKXXTC6C.cjs +0 -191
  246. package/dist/cjs/chunk-GKXXTC6C.cjs.map +0 -1
  247. package/dist/cjs/chunk-GM3S5465.cjs +0 -28
  248. package/dist/cjs/chunk-GM3S5465.cjs.map +0 -1
  249. package/dist/cjs/chunk-GMCHHP5Z.cjs +0 -37
  250. package/dist/cjs/chunk-GMCHHP5Z.cjs.map +0 -1
  251. package/dist/cjs/chunk-GP3SSTAQ.cjs +0 -8
  252. package/dist/cjs/chunk-GP3SSTAQ.cjs.map +0 -1
  253. package/dist/cjs/chunk-HDZ5POWB.cjs +0 -134
  254. package/dist/cjs/chunk-HDZ5POWB.cjs.map +0 -1
  255. package/dist/cjs/chunk-HIL5SDJR.cjs +0 -43
  256. package/dist/cjs/chunk-HIL5SDJR.cjs.map +0 -1
  257. package/dist/cjs/chunk-HNKMBS3C.cjs +0 -43
  258. package/dist/cjs/chunk-HNKMBS3C.cjs.map +0 -1
  259. package/dist/cjs/chunk-ICNXY2NK.cjs +0 -132
  260. package/dist/cjs/chunk-ICNXY2NK.cjs.map +0 -1
  261. package/dist/cjs/chunk-ISQSPK4F.cjs +0 -134
  262. package/dist/cjs/chunk-ISQSPK4F.cjs.map +0 -1
  263. package/dist/cjs/chunk-J2FGGTF5.cjs +0 -37
  264. package/dist/cjs/chunk-J2FGGTF5.cjs.map +0 -1
  265. package/dist/cjs/chunk-J5GBTBSY.cjs +0 -134
  266. package/dist/cjs/chunk-J5GBTBSY.cjs.map +0 -1
  267. package/dist/cjs/chunk-JU5AB7AB.cjs +0 -37
  268. package/dist/cjs/chunk-JU5AB7AB.cjs.map +0 -1
  269. package/dist/cjs/chunk-K2W5TTBJ.cjs +0 -28
  270. package/dist/cjs/chunk-K2W5TTBJ.cjs.map +0 -1
  271. package/dist/cjs/chunk-KLSZEQ7H.cjs +0 -281
  272. package/dist/cjs/chunk-KLSZEQ7H.cjs.map +0 -1
  273. package/dist/cjs/chunk-L3PZU7OF.cjs +0 -285
  274. package/dist/cjs/chunk-L3PZU7OF.cjs.map +0 -1
  275. package/dist/cjs/chunk-L7QJRM2U.cjs +0 -131
  276. package/dist/cjs/chunk-L7QJRM2U.cjs.map +0 -1
  277. package/dist/cjs/chunk-LKVNLT2M.cjs +0 -132
  278. package/dist/cjs/chunk-LKVNLT2M.cjs.map +0 -1
  279. package/dist/cjs/chunk-M7K34W2H.cjs +0 -134
  280. package/dist/cjs/chunk-M7K34W2H.cjs.map +0 -1
  281. package/dist/cjs/chunk-MJAKDII2.cjs +0 -78
  282. package/dist/cjs/chunk-MJAKDII2.cjs.map +0 -1
  283. package/dist/cjs/chunk-MN47LTUO.cjs +0 -37
  284. package/dist/cjs/chunk-MN47LTUO.cjs.map +0 -1
  285. package/dist/cjs/chunk-NB6OID2Z.cjs +0 -285
  286. package/dist/cjs/chunk-NB6OID2Z.cjs.map +0 -1
  287. package/dist/cjs/chunk-NCYNT6TA.cjs +0 -129
  288. package/dist/cjs/chunk-NCYNT6TA.cjs.map +0 -1
  289. package/dist/cjs/chunk-NQUYHJ3J.cjs +0 -115
  290. package/dist/cjs/chunk-NQUYHJ3J.cjs.map +0 -1
  291. package/dist/cjs/chunk-NYDNXGKB.cjs.map +0 -1
  292. package/dist/cjs/chunk-OU5UB2HF.cjs +0 -113
  293. package/dist/cjs/chunk-OU5UB2HF.cjs.map +0 -1
  294. package/dist/cjs/chunk-OVTUSYSU.cjs.map +0 -1
  295. package/dist/cjs/chunk-PACFW2PR.cjs +0 -37
  296. package/dist/cjs/chunk-PACFW2PR.cjs.map +0 -1
  297. package/dist/cjs/chunk-PSHQ4OBL.cjs +0 -41
  298. package/dist/cjs/chunk-PSHQ4OBL.cjs.map +0 -1
  299. package/dist/cjs/chunk-QDX7LVBM.cjs +0 -284
  300. package/dist/cjs/chunk-QDX7LVBM.cjs.map +0 -1
  301. package/dist/cjs/chunk-QE7UAZY6.cjs +0 -37
  302. package/dist/cjs/chunk-QE7UAZY6.cjs.map +0 -1
  303. package/dist/cjs/chunk-QHQLU7BI.cjs +0 -13
  304. package/dist/cjs/chunk-QHQLU7BI.cjs.map +0 -1
  305. package/dist/cjs/chunk-QSBUV5WJ.cjs.map +0 -1
  306. package/dist/cjs/chunk-QZHI7LLI.cjs +0 -156
  307. package/dist/cjs/chunk-QZHI7LLI.cjs.map +0 -1
  308. package/dist/cjs/chunk-R42QDO6G.cjs +0 -28
  309. package/dist/cjs/chunk-R42QDO6G.cjs.map +0 -1
  310. package/dist/cjs/chunk-RIJV7J5Z.cjs +0 -52
  311. package/dist/cjs/chunk-RIJV7J5Z.cjs.map +0 -1
  312. package/dist/cjs/chunk-S2NO7QKM.cjs +0 -132
  313. package/dist/cjs/chunk-S2NO7QKM.cjs.map +0 -1
  314. package/dist/cjs/chunk-SCOMNXDA.cjs +0 -51
  315. package/dist/cjs/chunk-SCOMNXDA.cjs.map +0 -1
  316. package/dist/cjs/chunk-SSOKZ4O2.cjs +0 -41
  317. package/dist/cjs/chunk-SSOKZ4O2.cjs.map +0 -1
  318. package/dist/cjs/chunk-T3N54JRA.cjs +0 -41
  319. package/dist/cjs/chunk-T3N54JRA.cjs.map +0 -1
  320. package/dist/cjs/chunk-TF2SCL3K.cjs +0 -36
  321. package/dist/cjs/chunk-TJAP46DQ.cjs +0 -43
  322. package/dist/cjs/chunk-TJAP46DQ.cjs.map +0 -1
  323. package/dist/cjs/chunk-TOVCM7I7.cjs +0 -281
  324. package/dist/cjs/chunk-TOVCM7I7.cjs.map +0 -1
  325. package/dist/cjs/chunk-TUAC64ZF.cjs +0 -41
  326. package/dist/cjs/chunk-TUAC64ZF.cjs.map +0 -1
  327. package/dist/cjs/chunk-UEOOHJIR.cjs +0 -43
  328. package/dist/cjs/chunk-UEOOHJIR.cjs.map +0 -1
  329. package/dist/cjs/chunk-UGDFRSMS.cjs +0 -200
  330. package/dist/cjs/chunk-UGDFRSMS.cjs.map +0 -1
  331. package/dist/cjs/chunk-VNAH5COA.cjs +0 -202
  332. package/dist/cjs/chunk-VNAH5COA.cjs.map +0 -1
  333. package/dist/cjs/chunk-W4IBNFLJ.cjs +0 -43
  334. package/dist/cjs/chunk-W4IBNFLJ.cjs.map +0 -1
  335. package/dist/cjs/chunk-W5NZWOXV.cjs +0 -283
  336. package/dist/cjs/chunk-W5NZWOXV.cjs.map +0 -1
  337. package/dist/cjs/chunk-WGAEW3R3.cjs +0 -134
  338. package/dist/cjs/chunk-WGAEW3R3.cjs.map +0 -1
  339. package/dist/cjs/chunk-WKGN6P3D.cjs +0 -131
  340. package/dist/cjs/chunk-WKGN6P3D.cjs.map +0 -1
  341. package/dist/cjs/chunk-X5INT5HE.cjs.map +0 -1
  342. package/dist/cjs/chunk-X6R53KCL.cjs +0 -134
  343. package/dist/cjs/chunk-X6R53KCL.cjs.map +0 -1
  344. package/dist/cjs/chunk-YCD3FBPB.cjs +0 -41
  345. package/dist/cjs/chunk-YCD3FBPB.cjs.map +0 -1
  346. package/dist/cjs/chunk-YE6INMSS.cjs +0 -41
  347. package/dist/cjs/chunk-YE6INMSS.cjs.map +0 -1
  348. package/dist/cjs/chunk-YGK2LYEU.cjs +0 -36
  349. package/dist/cjs/chunk-YGK2LYEU.cjs.map +0 -1
  350. package/dist/cjs/chunk-YIRGAWMS.cjs +0 -30
  351. package/dist/cjs/chunk-YIRGAWMS.cjs.map +0 -1
  352. package/dist/cjs/chunk-YJSEM4WE.cjs +0 -116
  353. package/dist/cjs/chunk-YJSEM4WE.cjs.map +0 -1
  354. package/dist/cjs/chunk-YMNLHFLD.cjs +0 -251
  355. package/dist/cjs/chunk-YMNLHFLD.cjs.map +0 -1
  356. package/dist/cjs/chunk-ZFSXQFEK.cjs.map +0 -1
  357. package/dist/cjs/chunk-ZP35BH7F.cjs +0 -43
  358. package/dist/cjs/chunk-ZP35BH7F.cjs.map +0 -1
  359. package/dist/esm/chunk-DM6UZSRU.js.map +0 -1
  360. package/dist/esm/chunk-N7VYM2R5.js +0 -41
  361. package/dist/esm/chunk-N7VYM2R5.js.map +0 -1
  362. package/dist/esm/chunk-NWL3BMUH.js.map +0 -1
  363. package/dist/esm/chunk-OW7PCDK5.js.map +0 -1
  364. package/dist/esm/chunk-RJZ4QSDX.js.map +0 -1
  365. package/dist/esm/chunk-V24ATQLM.js.map +0 -1
  366. package/dist/esm/chunk-WL7H2QX4.js.map +0 -1
  367. package/dist/esm/chunk-WMZ6PYTE.js.map +0 -1
  368. package/dist/esm/chunk-YDMTU6UH.js.map +0 -1
  369. /package/dist/esm/{chunk-J2UFYVKK.js.map → chunk-5IIF5O4A.js.map} +0 -0
  370. /package/dist/esm/{chunk-WRKUZMNO.js.map → chunk-6AN7Z5OC.js.map} +0 -0
  371. /package/dist/esm/{chunk-DIW5VDAQ.js.map → chunk-KOCOM7IC.js.map} +0 -0
  372. /package/dist/esm/{chunk-MCMWSGRJ.js.map → chunk-Q7NLA5X4.js.map} +0 -0
  373. /package/dist/esm/{chunk-MAU2MAK2.js.map → chunk-RAHOYMKY.js.map} +0 -0
  374. /package/dist/esm/{chunk-THBAYYPZ.js.map → chunk-WO2QJ6UM.js.map} +0 -0
  375. /package/dist/esm/{chunk-7XCSPITE.js.map → chunk-Y7BKUWRJ.js.map} +0 -0
  376. /package/dist/esm/{chunk-3FE3GPF2.js.map → chunk-YJTWW6QK.js.map} +0 -0
  377. /package/dist/esm/{chunk-HAE333YO.js.map → chunk-YMSNW2SU.js.map} +0 -0
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;
2
2
 
3
- var _chunkOVTUSYSUcjs = require('./chunk-OVTUSYSU.cjs');
3
+ var _chunk5WWZOWMAcjs = require('./chunk-5WWZOWMA.cjs');
4
4
 
5
5
 
6
- var _chunk466ED5WNcjs = require('./chunk-466ED5WN.cjs');
6
+ var _chunkCLJ3DWTAcjs = require('./chunk-CLJ3DWTA.cjs');
7
7
 
8
8
  // src/modules/a2a/a2a.module.ts
9
9
  var _crypto = require('crypto');
@@ -22,7 +22,7 @@ var A2AModule = (_class = class {constructor() { _class.prototype.__init.call(th
22
22
  */
23
23
  async addA2AConnector(conns) {
24
24
  for (const [name, url] of Object.entries(conns)) {
25
- const conn = new (0, _chunkOVTUSYSUcjs.A2AConnector)(name, url);
25
+ const conn = new (0, _chunk5WWZOWMAcjs.A2AConnector)(name, url);
26
26
  this.a2aConnectors.set(name, conn);
27
27
  }
28
28
  }
@@ -33,8 +33,10 @@ var A2AModule = (_class = class {constructor() { _class.prototype.__init.call(th
33
33
  }
34
34
  return connectors;
35
35
  }
36
- getOrCreateClient(connector) {
37
- connector.client ??= new (0, _client.A2AClient)(connector.url);
36
+ async getOrCreateClient(connector) {
37
+ if (!connector.client) {
38
+ connector.client = await new (0, _client.ClientFactory)().createFromUrl(connector.url);
39
+ }
38
40
  return connector.client;
39
41
  }
40
42
  /**
@@ -52,13 +54,24 @@ var A2AModule = (_class = class {constructor() { _class.prototype.__init.call(th
52
54
  continue;
53
55
  }
54
56
  try {
55
- const client = this.getOrCreateClient(conn);
57
+ const client = await this.getOrCreateClient(conn);
56
58
  const card = await client.getAgentCard();
57
59
  const tool = {
58
60
  toolName: card.name.replaceAll(" ", "-"),
59
61
  connectorName: name,
60
62
  protocol: "A2A" /* A2A */,
61
- description: card.description
63
+ description: card.description,
64
+ // add thinking_text inputSchema
65
+ inputSchema: {
66
+ type: "object",
67
+ properties: {
68
+ thinking_text: {
69
+ type: "string",
70
+ description: "\uC0AC\uC6A9\uC790\uC758 \uC694\uCCAD\uC744 \uD574\uACB0\uD558\uAE30 \uC704\uD574 \uC774 \uB3C4\uAD6C\uB97C \uC120\uD0DD\uD55C \uAD6C\uCCB4\uC801\uC778 \uC774\uC720\uC640 \uBAA9\uC801 (Why & What). \uD55C\uB450\uC904 \uC815\uB3C4\uC758 \uBD84\uB7C9\uC73C\uB85C \uC785\uB825 \uC5B8\uC5B4\uC640 \uAC19\uC740 \uC5B8\uC5B4\uB85C \uC0DD\uC131\uD55C\uB2E4."
71
+ }
72
+ },
73
+ required: ["thinking_text"]
74
+ }
62
75
  };
63
76
  tools.push(tool);
64
77
  } catch (_error) {
@@ -108,17 +121,24 @@ var A2AModule = (_class = class {constructor() { _class.prototype.__init.call(th
108
121
  * @param tool - The A2ATool instance to use
109
122
  * @param query - The message to send to the agent
110
123
  * @param threadId - The session identifier for context tracking
111
- * @returns Promise resolving to array of text responses from the agent
124
+ * @yields StreamEvent objects for intermediate events
125
+ * @returns Final text response from the agent
112
126
  */
113
- async useTool(tool, query, threadId) {
127
+ async *useTool(tool, query, threadId) {
114
128
  const finalText = [];
115
129
  const connector = this.a2aConnectors.get(tool.connectorName);
130
+ if (!connector) {
131
+ _chunkCLJ3DWTAcjs.loggers.a2a.error("Unknown agent:", { tool });
132
+ const toolResult = `[Bot Called A2A Tool ${tool.connectorName}]
133
+ "Unknown agent connector"`;
134
+ return toolResult;
135
+ }
116
136
  const messagePayload = this.getMessagePayload(query, threadId);
117
137
  const params = {
118
138
  message: messagePayload
119
139
  };
120
140
  try {
121
- const client = this.getOrCreateClient(connector);
141
+ const client = await this.getOrCreateClient(connector);
122
142
  const stream = client.sendMessageStream(params);
123
143
  for await (const event of stream) {
124
144
  if (event.kind === "status-update") {
@@ -126,9 +146,24 @@ var A2AModule = (_class = class {constructor() { _class.prototype.__init.call(th
126
146
  if (typedEvent.final && typedEvent.status.state !== "input-required") {
127
147
  this.a2aTasks.delete(threadId);
128
148
  }
129
- const texts = _optionalChain([typedEvent, 'access', _ => _.status, 'access', _2 => _2.message, 'optionalAccess', _3 => _3.parts, 'access', _4 => _4.filter, 'call', _5 => _5((part) => part.kind === "text"), 'access', _6 => _6.map, 'call', _7 => _7((part) => part.text), 'access', _8 => _8.join, 'call', _9 => _9("\n")]);
130
- if (texts) {
131
- finalText.push(texts);
149
+ if (typedEvent.status.state === "working") {
150
+ const eventData = JSON.parse(
151
+ (_optionalChain([typedEvent, 'access', _ => _.status, 'access', _2 => _2.message, 'optionalAccess', _3 => _3.parts, 'access', _4 => _4[0]])).text
152
+ );
153
+ yield {
154
+ event: "thinking_process",
155
+ data: eventData
156
+ };
157
+ } else if (typedEvent.status.state === "completed") {
158
+ const texts = _optionalChain([typedEvent, 'access', _5 => _5.status, 'access', _6 => _6.message, 'optionalAccess', _7 => _7.parts, 'access', _8 => _8.filter, 'call', _9 => _9((part) => part.kind === "text"), 'access', _10 => _10.map, 'call', _11 => _11((part) => part.text), 'access', _12 => _12.join, 'call', _13 => _13("\n")]);
159
+ if (texts) {
160
+ finalText.push(texts);
161
+ yield {
162
+ event: "text_chunk",
163
+ data: { delta: texts }
164
+ };
165
+ }
166
+ } else {
132
167
  }
133
168
  } else if (event.kind === "message") {
134
169
  const msg = event;
@@ -142,13 +177,13 @@ var A2AModule = (_class = class {constructor() { _class.prototype.__init.call(th
142
177
  this.a2aTasks.set(threadId, task.id);
143
178
  }
144
179
  } else {
145
- _chunk466ED5WNcjs.loggers.a2a.warn("Received unknown event structure from stream:", {
180
+ _chunkCLJ3DWTAcjs.loggers.a2a.warn("Received unknown event structure from stream:", {
146
181
  event
147
182
  });
148
183
  }
149
184
  }
150
185
  } catch (error) {
151
- _chunk466ED5WNcjs.loggers.a2a.error("Error communicating with agent:", { error });
186
+ _chunkCLJ3DWTAcjs.loggers.a2a.error("Error communicating with agent:", { error });
152
187
  const toolResult = `[Bot Called A2A Tool ${tool.toolName}]
153
188
  ${typeof error === "string" ? error : JSON.stringify(error, null, 2)}`;
154
189
  return toolResult;
@@ -161,4 +196,4 @@ ${finalText.join("\n")}`;
161
196
 
162
197
 
163
198
  exports.A2AModule = A2AModule;
164
- //# sourceMappingURL=chunk-ZFSXQFEK.cjs.map
199
+ //# sourceMappingURL=chunk-25FZXCHU.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-25FZXCHU.cjs","../../src/modules/a2a/a2a.module.ts"],"names":[],"mappings":"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","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-25FZXCHU.cjs","sourcesContent":[null,"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 { type Client as A2AClient, ClientFactory } 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 type { StreamEvent } from \"@/types/stream.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 async getOrCreateClient(connector: A2AConnector): Promise<A2AClient> {\n\t\tif (!connector.client) {\n\t\t\tconnector.client = await new ClientFactory().createFromUrl(connector.url);\n\t\t}\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 = await 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\t// add thinking_text inputSchema\n\t\t\t\t\tinputSchema: {\n\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\tthinking_text: {\n\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\"사용자의 요청을 해결하기 위해 이 도구를 선택한 구체적인 이유와 목적 (Why & What). 한두줄 정도의 분량으로 입력 언어와 같은 언어로 생성한다.\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\trequired: [\"thinking_text\"],\n\t\t\t\t\t},\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 * @yields StreamEvent objects for intermediate events\n\t * @returns Final text response from the agent\n\t */\n\tpublic async *useTool(\n\t\ttool: ConnectorTool,\n\t\tquery: string,\n\t\tthreadId: string,\n\t): AsyncGenerator<StreamEvent, string, unknown> {\n\t\tconst finalText: string[] = [];\n\t\tconst connector = this.a2aConnectors.get(tool.connectorName);\n\t\tif (!connector) {\n\t\t\tloggers.a2a.error(\"Unknown agent:\", { tool });\n\t\t\tconst toolResult = `[Bot Called A2A Tool ${tool.connectorName}]\\n\"Unknown agent connector\"`;\n\t\t\treturn toolResult;\n\t\t}\n\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 = await 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\n\t\t\t\t\tif (typedEvent.status.state === \"working\") {\n\t\t\t\t\t\t// thinking process event\n\t\t\t\t\t\tconst eventData = JSON.parse(\n\t\t\t\t\t\t\t(typedEvent.status.message?.parts[0] as TextPart).text,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tyield {\n\t\t\t\t\t\t\tevent: \"thinking_process\",\n\t\t\t\t\t\t\tdata: eventData,\n\t\t\t\t\t\t};\n\t\t\t\t\t} else if (typedEvent.status.state === \"completed\") {\n\t\t\t\t\t\t// TODO: handle 'file', 'data' parts\n\t\t\t\t\t\tconst texts = typedEvent.status.message?.parts\n\t\t\t\t\t\t\t.filter((part) => part.kind === \"text\")\n\t\t\t\t\t\t\t.map((part: TextPart) => part.text)\n\t\t\t\t\t\t\t.join(\"\\n\");\n\t\t\t\t\t\tif (texts) {\n\t\t\t\t\t\t\tfinalText.push(texts);\n\t\t\t\t\t\t\tyield {\n\t\t\t\t\t\t\t\tevent: \"text_chunk\",\n\t\t\t\t\t\t\t\tdata: { delta: texts },\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// ignore other status updates\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"]}
@@ -1,18 +1,18 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkLKVNLT2Mcjs = require('./chunk-LKVNLT2M.cjs');
3
+ var _chunkHF7GKQ6Ycjs = require('./chunk-HF7GKQ6Y.cjs');
4
4
 
5
5
 
6
- var _chunkAQXHOGJDcjs = require('./chunk-AQXHOGJD.cjs');
6
+ var _chunk5QSLQX4Hcjs = require('./chunk-5QSLQX4H.cjs');
7
7
 
8
8
 
9
- var _chunkM7K34W2Hcjs = require('./chunk-M7K34W2H.cjs');
9
+ var _chunkNNYPZA6Wcjs = require('./chunk-NNYPZA6W.cjs');
10
10
 
11
11
  // src/routes/query.routes.ts
12
12
  var _express = require('express');
13
13
  var createQueryRouter = (agent, allowStream = false) => {
14
14
  const router = _express.Router.call(void 0, );
15
- const queryService = new (0, _chunkLKVNLT2Mcjs.QueryService)(
15
+ const queryService = new (0, _chunkHF7GKQ6Ycjs.QueryService)(
16
16
  agent.modelModule,
17
17
  agent.a2aModule,
18
18
  agent.mcpModule,
@@ -20,14 +20,14 @@ var createQueryRouter = (agent, allowStream = false) => {
20
20
  );
21
21
  let queryStreamService;
22
22
  if (allowStream) {
23
- queryStreamService = new (0, _chunkM7K34W2Hcjs.QueryStreamService)(
23
+ queryStreamService = new (0, _chunk5QSLQX4Hcjs.QueryStreamService)(
24
24
  agent.modelModule,
25
25
  agent.a2aModule,
26
26
  agent.mcpModule,
27
27
  agent.memoryModule
28
28
  );
29
29
  }
30
- const queryController = new (0, _chunkAQXHOGJDcjs.QueryController)(queryService, queryStreamService);
30
+ const queryController = new (0, _chunkNNYPZA6Wcjs.QueryController)(queryService, queryStreamService);
31
31
  router.post("/", queryController.handleQueryRequest);
32
32
  if (allowStream) {
33
33
  router.post("/stream", queryController.handleQueryStreamRequest);
@@ -38,4 +38,4 @@ var createQueryRouter = (agent, allowStream = false) => {
38
38
 
39
39
 
40
40
  exports.createQueryRouter = createQueryRouter;
41
- //# sourceMappingURL=chunk-7QIF3FVV.cjs.map
41
+ //# sourceMappingURL=chunk-3RS6NVSN.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-7QIF3FVV.cjs","../../src/routes/query.routes.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACVA,kCAAuB;AAMhB,IAAM,kBAAA,EAAoB,CAChC,KAAA,EACA,YAAA,EAAc,KAAA,EAAA,GACF;AACZ,EAAA,MAAM,OAAA,EAAS,6BAAA,CAAO;AAEtB,EAAA,MAAM,aAAA,EAAe,IAAI,mCAAA;AAAA,IACxB,KAAA,CAAM,WAAA;AAAA,IACN,KAAA,CAAM,SAAA;AAAA,IACN,KAAA,CAAM,SAAA;AAAA,IACN,KAAA,CAAM;AAAA,EACP,CAAA;AAEA,EAAA,IAAI,kBAAA;AAEJ,EAAA,GAAA,CAAI,WAAA,EAAa;AAChB,IAAA,mBAAA,EAAqB,IAAI,yCAAA;AAAA,MACxB,KAAA,CAAM,WAAA;AAAA,MACN,KAAA,CAAM,SAAA;AAAA,MACN,KAAA,CAAM,SAAA;AAAA,MACN,KAAA,CAAM;AAAA,IACP,CAAA;AAAA,EACD;AAEA,EAAA,MAAM,gBAAA,EAAkB,IAAI,sCAAA,CAAgB,YAAA,EAAc,kBAAkB,CAAA;AAC5E,EAAA,MAAA,CAAO,IAAA,CAAK,GAAA,EAAK,eAAA,CAAgB,kBAAkB,CAAA;AAEnD,EAAA,GAAA,CAAI,WAAA,EAAa;AAChB,IAAA,MAAA,CAAO,IAAA,CAAK,SAAA,EAAW,eAAA,CAAgB,wBAAwB,CAAA;AAAA,EAChE;AAEA,EAAA,OAAO,MAAA;AACR,CAAA;ADFA;AACA;AACE;AACF,8CAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-7QIF3FVV.cjs","sourcesContent":[null,"import { Router } from \"express\";\nimport { QueryController } from \"@/controllers/query.controller.js\";\nimport type { AINAgent } from \"@/index.js\";\nimport { QueryService } from \"@/services/query.service.js\";\nimport { QueryStreamService } from \"@/services/query-stream.service.js\";\n\nexport const createQueryRouter = (\n\tagent: AINAgent,\n\tallowStream = false,\n): Router => {\n\tconst router = Router();\n\n\tconst queryService = new QueryService(\n\t\tagent.modelModule,\n\t\tagent.a2aModule,\n\t\tagent.mcpModule,\n\t\tagent.memoryModule,\n\t);\n\n\tlet queryStreamService: QueryStreamService | undefined;\n\n\tif (allowStream) {\n\t\tqueryStreamService = new QueryStreamService(\n\t\t\tagent.modelModule,\n\t\t\tagent.a2aModule,\n\t\t\tagent.mcpModule,\n\t\t\tagent.memoryModule,\n\t\t);\n\t}\n\n\tconst queryController = new QueryController(queryService, queryStreamService);\n\trouter.post(\"/\", queryController.handleQueryRequest);\n\n\tif (allowStream) {\n\t\trouter.post(\"/stream\", queryController.handleQueryStreamRequest);\n\t}\n\n\treturn router;\n};\n"]}
1
+ {"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-3RS6NVSN.cjs","../../src/routes/query.routes.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACVA,kCAAuB;AAMhB,IAAM,kBAAA,EAAoB,CAChC,KAAA,EACA,YAAA,EAAc,KAAA,EAAA,GACF;AACZ,EAAA,MAAM,OAAA,EAAS,6BAAA,CAAO;AAEtB,EAAA,MAAM,aAAA,EAAe,IAAI,mCAAA;AAAA,IACxB,KAAA,CAAM,WAAA;AAAA,IACN,KAAA,CAAM,SAAA;AAAA,IACN,KAAA,CAAM,SAAA;AAAA,IACN,KAAA,CAAM;AAAA,EACP,CAAA;AAEA,EAAA,IAAI,kBAAA;AAEJ,EAAA,GAAA,CAAI,WAAA,EAAa;AAChB,IAAA,mBAAA,EAAqB,IAAI,yCAAA;AAAA,MACxB,KAAA,CAAM,WAAA;AAAA,MACN,KAAA,CAAM,SAAA;AAAA,MACN,KAAA,CAAM,SAAA;AAAA,MACN,KAAA,CAAM;AAAA,IACP,CAAA;AAAA,EACD;AAEA,EAAA,MAAM,gBAAA,EAAkB,IAAI,sCAAA,CAAgB,YAAA,EAAc,kBAAkB,CAAA;AAC5E,EAAA,MAAA,CAAO,IAAA,CAAK,GAAA,EAAK,eAAA,CAAgB,kBAAkB,CAAA;AAEnD,EAAA,GAAA,CAAI,WAAA,EAAa;AAChB,IAAA,MAAA,CAAO,IAAA,CAAK,SAAA,EAAW,eAAA,CAAgB,wBAAwB,CAAA;AAAA,EAChE;AAEA,EAAA,OAAO,MAAA;AACR,CAAA;ADFA;AACA;AACE;AACF,8CAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-3RS6NVSN.cjs","sourcesContent":[null,"import { Router } from \"express\";\nimport { QueryController } from \"@/controllers/query.controller.js\";\nimport type { AINAgent } from \"@/index.js\";\nimport { QueryService } from \"@/services/query.service.js\";\nimport { QueryStreamService } from \"@/services/query-stream.service.js\";\n\nexport const createQueryRouter = (\n\tagent: AINAgent,\n\tallowStream = false,\n): Router => {\n\tconst router = Router();\n\n\tconst queryService = new QueryService(\n\t\tagent.modelModule,\n\t\tagent.a2aModule,\n\t\tagent.mcpModule,\n\t\tagent.memoryModule,\n\t);\n\n\tlet queryStreamService: QueryStreamService | undefined;\n\n\tif (allowStream) {\n\t\tqueryStreamService = new QueryStreamService(\n\t\t\tagent.modelModule,\n\t\t\tagent.a2aModule,\n\t\t\tagent.mcpModule,\n\t\t\tagent.memoryModule,\n\t\t);\n\t}\n\n\tconst queryController = new QueryController(queryService, queryStreamService);\n\trouter.post(\"/\", queryController.handleQueryRequest);\n\n\tif (allowStream) {\n\t\trouter.post(\"/stream\", queryController.handleQueryStreamRequest);\n\t}\n\n\treturn router;\n};\n"]}
@@ -3,7 +3,7 @@
3
3
  var _chunkCFILMIB6cjs = require('./chunk-CFILMIB6.cjs');
4
4
 
5
5
 
6
- var _chunk466ED5WNcjs = require('./chunk-466ED5WN.cjs');
6
+ var _chunkCLJ3DWTAcjs = require('./chunk-CLJ3DWTA.cjs');
7
7
 
8
8
  // src/modules/mcp/mcp.module.ts
9
9
  var _indexjs = require('@modelcontextprotocol/sdk/client/index.js');
@@ -59,7 +59,7 @@ var MCPModule = (_class = class {constructor() { _class.prototype.__init.call(th
59
59
  break;
60
60
  }
61
61
  default:
62
- _chunk466ED5WNcjs.loggers.mcp.error("Unsupported MCP config type");
62
+ _chunkCLJ3DWTAcjs.loggers.mcp.error("Unsupported MCP config type");
63
63
  break;
64
64
  }
65
65
  const toolList = await mcpClient.listTools();
@@ -73,11 +73,11 @@ var MCPModule = (_class = class {constructor() { _class.prototype.__init.call(th
73
73
  inputSchema: tool.inputSchema
74
74
  };
75
75
  });
76
- _chunk466ED5WNcjs.loggers.mcp.info("Connected to MCP server with tools:", {
76
+ _chunkCLJ3DWTAcjs.loggers.mcp.info("Connected to MCP server with tools:", {
77
77
  tools: conn.tools.map((tool) => tool.toolName)
78
78
  });
79
79
  } catch (error) {
80
- _chunk466ED5WNcjs.loggers.mcp.error(`Failed to connect to MCP server ${name}`, { error });
80
+ _chunkCLJ3DWTAcjs.loggers.mcp.error(`Failed to connect to MCP server ${name}`, { error });
81
81
  }
82
82
  }
83
83
  }
@@ -89,7 +89,25 @@ var MCPModule = (_class = class {constructor() { _class.prototype.__init.call(th
89
89
  getTools() {
90
90
  const allTools = [];
91
91
  for (const conn of this.mcpConnectors.values()) {
92
- allTools.push(...conn.tools);
92
+ for (const tool of conn.tools) {
93
+ const finalInputSchema = {
94
+ type: "object",
95
+ properties: { ..._optionalChain([tool, 'access', _ => _.inputSchema, 'optionalAccess', _2 => _2.properties]) || {} },
96
+ required: [..._optionalChain([tool, 'access', _3 => _3.inputSchema, 'optionalAccess', _4 => _4.required]) || []]
97
+ };
98
+ finalInputSchema.properties["thinking_text"] = {
99
+ type: "string",
100
+ description: "\uC0AC\uC6A9\uC790\uC758 \uC694\uCCAD\uC744 \uD574\uACB0\uD558\uAE30 \uC704\uD574 \uC774 \uB3C4\uAD6C\uB97C \uC120\uD0DD\uD55C \uAD6C\uCCB4\uC801\uC778 \uC774\uC720\uC640 \uBAA9\uC801 (Why & What). \uD55C\uB450\uC904 \uC815\uB3C4\uC758 \uBD84\uB7C9\uC73C\uB85C \uC785\uB825 \uC5B8\uC5B4\uC640 \uAC19\uC740 \uC5B8\uC5B4\uB85C \uC0DD\uC131\uD55C\uB2E4."
101
+ };
102
+ finalInputSchema.required.push("thinking_text");
103
+ allTools.push({
104
+ toolName: tool.toolName,
105
+ connectorName: tool.connectorName,
106
+ protocol: tool.protocol,
107
+ description: tool.description,
108
+ inputSchema: finalInputSchema
109
+ });
110
+ }
93
111
  }
94
112
  return allTools;
95
113
  }
@@ -103,7 +121,7 @@ var MCPModule = (_class = class {constructor() { _class.prototype.__init.call(th
103
121
  */
104
122
  async useTool(tool, _args) {
105
123
  const { connectorName, toolName } = tool;
106
- const client = _optionalChain([this, 'access', _ => _.mcpConnectors, 'access', _2 => _2.get, 'call', _3 => _3(connectorName), 'optionalAccess', _4 => _4.client]);
124
+ const client = _optionalChain([this, 'access', _5 => _5.mcpConnectors, 'access', _6 => _6.get, 'call', _7 => _7(connectorName), 'optionalAccess', _8 => _8.client]);
107
125
  try {
108
126
  if (!client) {
109
127
  throw new Error(`Invalid MCP Tool ${toolName}`);
@@ -117,7 +135,7 @@ var MCPModule = (_class = class {constructor() { _class.prototype.__init.call(th
117
135
  ` + JSON.stringify(result.content, null, 2);
118
136
  return toolResult;
119
137
  } catch (error) {
120
- _chunk466ED5WNcjs.loggers.mcp.error("Failed to call tool", { error });
138
+ _chunkCLJ3DWTAcjs.loggers.mcp.error("Failed to call tool", { error });
121
139
  const toolResult = `[Bot Called Tool ${toolName} with args ${JSON.stringify(_args)}]
122
140
  ${typeof error === "string" ? error : JSON.stringify(error, null, 2)}`;
123
141
  return toolResult;
@@ -131,7 +149,7 @@ ${typeof error === "string" ? error : JSON.stringify(error, null, 2)}`;
131
149
  */
132
150
  async cleanup() {
133
151
  for (const conn of this.mcpConnectors.values()) {
134
- await _optionalChain([conn, 'access', _5 => _5.client, 'optionalAccess', _6 => _6.close, 'call', _7 => _7()]);
152
+ await _optionalChain([conn, 'access', _9 => _9.client, 'optionalAccess', _10 => _10.close, 'call', _11 => _11()]);
135
153
  }
136
154
  }
137
155
  }, _class);
@@ -139,4 +157,4 @@ ${typeof error === "string" ? error : JSON.stringify(error, null, 2)}`;
139
157
 
140
158
 
141
159
  exports.MCPModule = MCPModule;
142
- //# sourceMappingURL=chunk-6WAVK3BS.cjs.map
160
+ //# sourceMappingURL=chunk-4IBKK5HW.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-4IBKK5HW.cjs","../../src/modules/mcp/mcp.module.ts"],"names":[],"mappings":"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","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-4IBKK5HW.cjs","sourcesContent":[null,"import { Client as MCPClient } from \"@modelcontextprotocol/sdk/client/index.js\";\nimport { SSEClientTransport } from \"@modelcontextprotocol/sdk/client/sse.js\";\nimport { StdioClientTransport } from \"@modelcontextprotocol/sdk/client/stdio.js\";\nimport { StreamableHTTPClientTransport } from \"@modelcontextprotocol/sdk/client/streamableHttp.js\";\nimport { WebSocketClientTransport } from \"@modelcontextprotocol/sdk/client/websocket.js\";\nimport {\n\tCONNECTOR_PROTOCOL_TYPE,\n\ttype ConnectorTool,\n} from \"@/types/connector.js\";\nimport type { MCPConfig } from \"@/types/mcp.js\";\nimport { loggers } from \"@/utils/logger.js\";\nimport { MCPConnector } from \"./mcp.connector.js\";\n\n/**\n * Module for managing Model Context Protocol (MCP) server connections.\n *\n * This module handles the lifecycle of MCP client connections, discovers\n * available tools from connected servers, and provides an interface for\n * executing those tools. Multiple MCP servers can be connected simultaneously.\n */\nexport class MCPModule {\n\tprivate mcpConnectors: Map<string, MCPConnector> = new Map();\n\n\taddMCPConnector(configs: { [name: string]: MCPConfig }): void {\n\t\tfor (const [name, config] of Object.entries(configs)) {\n\t\t\tconst conn = new MCPConnector(name, config);\n\t\t\tthis.mcpConnectors.set(name, conn);\n\t\t}\n\t}\n\n\tprivate getOrCreateClient(connector: MCPConnector): MCPClient {\n\t\tconnector.client ??= new MCPClient({\n\t\t\tname: connector.name,\n\t\t\tversion: \"1.0.0\",\n\t\t});\n\t\treturn connector.client;\n\t}\n\n\tasync connectToServers(): Promise<void> {\n\t\tfor (const [name, conn] of this.mcpConnectors.entries()) {\n\t\t\ttry {\n\t\t\t\tconst mcpClient = this.getOrCreateClient(conn);\n\t\t\t\tconst config = conn.config;\n\t\t\t\tswitch (config.type) {\n\t\t\t\t\tcase \"stdio\": {\n\t\t\t\t\t\tconst transport = new StdioClientTransport(config.params);\n\t\t\t\t\t\tawait mcpClient.connect(transport);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"websocket\": {\n\t\t\t\t\t\tconst transport = new WebSocketClientTransport(config.url);\n\t\t\t\t\t\tawait mcpClient.connect(transport);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"sse\": {\n\t\t\t\t\t\tconst transport = new SSEClientTransport(\n\t\t\t\t\t\t\tconfig.url,\n\t\t\t\t\t\t\tconfig.options,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tawait mcpClient.connect(transport);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"streamableHttp\": {\n\t\t\t\t\t\tconst transport = new StreamableHTTPClientTransport(\n\t\t\t\t\t\t\tconfig.url,\n\t\t\t\t\t\t\tconfig.options,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tawait mcpClient.connect(transport);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t// This cannot happen.\n\t\t\t\t\t\tloggers.mcp.error(\"Unsupported MCP config type\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tconst toolList = await mcpClient.listTools();\n\t\t\t\tconn.tools = toolList.tools.map((tool) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttoolName: `${name}-${tool.name}`, // to avoid tool name duplication\n\t\t\t\t\t\tconnectorName: name,\n\t\t\t\t\t\tprotocol: CONNECTOR_PROTOCOL_TYPE.MCP,\n\t\t\t\t\t\tdescription: tool.description,\n\t\t\t\t\t\tinputSchema: tool.inputSchema,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t\tloggers.mcp.info(\"Connected to MCP server with tools:\", {\n\t\t\t\t\ttools: conn.tools.map((tool) => tool.toolName),\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tloggers.mcp.error(`Failed to connect to MCP server ${name}`, { error });\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns all available tools from connected MCP servers.\n\t *\n\t * @returns Array of MCPTool instances representing available tools\n\t */\n\tgetTools(): Array<ConnectorTool> {\n\t\tconst allTools: Array<ConnectorTool> = [];\n\t\tfor (const conn of this.mcpConnectors.values()) {\n\t\t\tfor (const tool of conn.tools) {\n\t\t\t\t// add thinking_text inputSchema for each tool\n\t\t\t\tconst finalInputSchema: any = {\n\t\t\t\t\ttype: \"object\",\n\t\t\t\t\tproperties: { ...(tool.inputSchema?.properties || {}) },\n\t\t\t\t\trequired: [...(tool.inputSchema?.required || [])],\n\t\t\t\t};\n\n\t\t\t\tfinalInputSchema.properties[\"thinking_text\"] = {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription:\n\t\t\t\t\t\t\"사용자의 요청을 해결하기 위해 이 도구를 선택한 구체적인 이유와 목적 (Why & What). 한두줄 정도의 분량으로 입력 언어와 같은 언어로 생성한다.\",\n\t\t\t\t};\n\t\t\t\tfinalInputSchema.required.push(\"thinking_text\");\n\n\t\t\t\tallTools.push({\n\t\t\t\t\ttoolName: tool.toolName,\n\t\t\t\t\tconnectorName: tool.connectorName,\n\t\t\t\t\tprotocol: tool.protocol,\n\t\t\t\t\tdescription: tool.description,\n\t\t\t\t\tinputSchema: finalInputSchema,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn allTools;\n\t}\n\n\t/**\n\t * Executes a tool on its corresponding MCP server.\n\t *\n\t * @param tool - The MCPTool instance to execute\n\t * @param _args - Arguments to pass to the tool\n\t * @returns Promise resolving to the tool's execution result\n\t * @throws Error if the MCP server for the tool is not found\n\t */\n\tasync useTool(tool: ConnectorTool, _args?: any): Promise<string> {\n\t\tconst { connectorName, toolName } = tool;\n\t\tconst client = this.mcpConnectors.get(connectorName)?.client;\n\n\t\ttry {\n\t\t\tif (!client) {\n\t\t\t\tthrow new Error(`Invalid MCP Tool ${toolName}`);\n\t\t\t}\n\n\t\t\t// `${name}-${tool.name}` => tool.name\n\t\t\tconst mcpToolName = toolName.slice(connectorName.length + 1);\n\t\t\tconst result = await client.callTool({\n\t\t\t\tname: mcpToolName,\n\t\t\t\targuments: _args,\n\t\t\t});\n\t\t\tconst toolResult =\n\t\t\t\t`[Bot Called Tool ${toolName} with args ${JSON.stringify(_args)}]\\n` +\n\t\t\t\tJSON.stringify(result.content, null, 2);\n\t\t\treturn toolResult;\n\t\t} catch (error) {\n\t\t\tloggers.mcp.error(\"Failed to call tool\", { error });\n\t\t\tconst toolResult = `[Bot Called Tool ${toolName} with args ${JSON.stringify(_args)}]\\n${typeof error === \"string\" ? error : JSON.stringify(error, null, 2)}`;\n\t\t\treturn toolResult;\n\t\t}\n\t}\n\n\t/**\n\t * Closes all MCP client connections.\n\t *\n\t * Should be called when shutting down the application to ensure\n\t * all MCP connections are properly closed.\n\t */\n\tasync cleanup() {\n\t\tfor (const conn of this.mcpConnectors.values()) {\n\t\t\tawait conn.client?.close();\n\t\t}\n\t}\n}\n"]}
@@ -1,18 +1,18 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunk2TOW46DIcjs = require('./chunk-2TOW46DI.cjs');
3
+ var _chunkOZPPTVUAcjs = require('./chunk-OZPPTVUA.cjs');
4
4
 
5
5
 
6
- var _chunkTF7S7SPOcjs = require('./chunk-TF7S7SPO.cjs');
6
+ var _chunkNEWJ7PXHcjs = require('./chunk-NEWJ7PXH.cjs');
7
7
 
8
8
 
9
- var _chunkMO3H4KHEcjs = require('./chunk-MO3H4KHE.cjs');
9
+ var _chunkXHTEJE4Ecjs = require('./chunk-XHTEJE4E.cjs');
10
10
 
11
11
 
12
12
  var _chunkZ6TQ7TFOcjs = require('./chunk-Z6TQ7TFO.cjs');
13
13
 
14
14
 
15
- var _chunk466ED5WNcjs = require('./chunk-466ED5WN.cjs');
15
+ var _chunkCLJ3DWTAcjs = require('./chunk-CLJ3DWTA.cjs');
16
16
 
17
17
  // src/services/query-stream.service.ts
18
18
  var _crypto = require('crypto');
@@ -25,17 +25,21 @@ var QueryStreamService = class {
25
25
  constructor(modelModule, a2aModule, mcpModule, memoryModule) {
26
26
  this.modelModule = modelModule;
27
27
  this.memoryModule = memoryModule;
28
- this.intentTriggerService = new (0, _chunkTF7S7SPOcjs.IntentTriggerService)(
28
+ this.intentTriggerService = new (0, _chunkNEWJ7PXHcjs.IntentTriggerService)(
29
29
  modelModule,
30
30
  memoryModule
31
31
  );
32
- this.intentFulfillStreamService = new (0, _chunk2TOW46DIcjs.IntentFulfillStreamService)(
32
+ this.intentFulfillStreamService = new (0, _chunkOZPPTVUAcjs.IntentFulfillStreamService)(
33
33
  modelModule,
34
34
  a2aModule,
35
35
  mcpModule,
36
36
  memoryModule
37
37
  );
38
38
  }
39
+ async addToThreadMessages(userId, threadId, messages) {
40
+ const threadMemory = _optionalChain([this, 'access', _ => _.memoryModule, 'optionalAccess', _2 => _2.getThreadMemory, 'call', _3 => _3()]);
41
+ await _optionalChain([threadMemory, 'optionalAccess', _4 => _4.addMessagesToThread, 'call', _5 => _5(userId, threadId, messages)]);
42
+ }
39
43
  /**
40
44
  * Main entry point for processing streaming user queries.
41
45
  *
@@ -54,31 +58,31 @@ var QueryStreamService = class {
54
58
  */
55
59
  async *handleQueryStream(threadMetadata, query, isA2A) {
56
60
  const { type, userId, options } = threadMetadata;
57
- const threadMemory = _optionalChain([this, 'access', _ => _.memoryModule, 'optionalAccess', _2 => _2.getThreadMemory, 'call', _3 => _3()]);
61
+ const threadMemory = _optionalChain([this, 'access', _6 => _6.memoryModule, 'optionalAccess', _7 => _7.getThreadMemory, 'call', _8 => _8()]);
58
62
  let threadId = threadMetadata.threadId;
59
63
  let thread;
60
64
  if (threadId) {
61
- thread = await _optionalChain([threadMemory, 'optionalAccess', _4 => _4.getThread, 'call', _5 => _5(userId, threadId)]);
65
+ thread = await _optionalChain([threadMemory, 'optionalAccess', _9 => _9.getThread, 'call', _10 => _10(userId, threadId)]);
62
66
  if (!thread && !isA2A) {
63
67
  throw new (0, _chunkZ6TQ7TFOcjs.AinHttpError)(_httpstatuscodes.StatusCodes.NOT_FOUND, "Thread not found");
64
68
  }
65
69
  }
66
70
  threadId ??= _crypto.randomUUID.call(void 0, );
67
71
  if (!thread) {
68
- const title = await _chunkMO3H4KHEcjs.generateTitle.call(void 0, this.modelModule, query, options);
69
- const metadata = await _optionalChain([threadMemory, 'optionalAccess', _6 => _6.createThread, 'call', _7 => _7(
72
+ const title = await _chunkXHTEJE4Ecjs.generateTitle.call(void 0, this.modelModule, query, options);
73
+ const metadata = await _optionalChain([threadMemory, 'optionalAccess', _11 => _11.createThread, 'call', _12 => _12(
70
74
  type,
71
75
  userId,
72
76
  threadId,
73
77
  title
74
78
  )]) || { type, userId, threadId, title };
75
79
  thread = { ...metadata, messages: [] };
76
- _chunk466ED5WNcjs.loggers.intent.info(`Create new thread: ${threadId}`);
80
+ _chunkCLJ3DWTAcjs.loggers.intent.info(`Create new thread: ${threadId}`);
77
81
  yield { event: "thread_id", data: { type, userId, threadId, title } };
78
82
  }
79
83
  const triggeredIntent = await this.intentTriggerService.intentTriggering(query, thread);
80
- _chunk466ED5WNcjs.loggers.intent.debug("Triggered intents", { triggeredIntent });
81
- await _optionalChain([threadMemory, 'optionalAccess', _8 => _8.addMessagesToThread, 'call', _9 => _9(userId, threadId, [
84
+ _chunkCLJ3DWTAcjs.loggers.intent.debug("Triggered intents", { triggeredIntent });
85
+ await this.addToThreadMessages(userId, threadId, [
82
86
  {
83
87
  messageId: _crypto.randomUUID.call(void 0, ),
84
88
  role: "USER" /* USER */,
@@ -86,12 +90,12 @@ var QueryStreamService = class {
86
90
  content: { type: "text", parts: [query] },
87
91
  metadata: {
88
92
  intents: triggeredIntent.filter((intent) => !!intent.intent).map((intent) => ({
89
- id: _optionalChain([intent, 'access', _10 => _10.intent, 'optionalAccess', _11 => _11.id]),
93
+ id: _optionalChain([intent, 'access', _13 => _13.intent, 'optionalAccess', _14 => _14.id]),
90
94
  subquery: intent.subquery
91
95
  }))
92
96
  }
93
97
  }
94
- ])]);
98
+ ]);
95
99
  const stream = this.intentFulfillStreamService.intentFulfillStream(
96
100
  triggeredIntent,
97
101
  thread
@@ -105,4 +109,4 @@ var QueryStreamService = class {
105
109
 
106
110
 
107
111
  exports.QueryStreamService = QueryStreamService;
108
- //# sourceMappingURL=chunk-QSBUV5WJ.cjs.map
112
+ //# sourceMappingURL=chunk-5QSLQX4H.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-5QSLQX4H.cjs","../../src/services/query-stream.service.ts"],"names":[],"mappings":"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","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-5QSLQX4H.cjs","sourcesContent":[null,"import { randomUUID } from \"node:crypto\";\nimport { StatusCodes } from \"http-status-codes\";\nimport type {\n\tA2AModule,\n\tMCPModule,\n\tMemoryModule,\n\tModelFetchOptions,\n\tModelModule,\n} from \"@/modules/index.js\";\nimport { AinHttpError } from \"@/types/agent.js\";\nimport {\n\ttype MessageObject,\n\tMessageRole,\n\ttype ThreadMetadata,\n\ttype ThreadObject,\n\ttype ThreadType,\n\ttype TriggeredIntent,\n} from \"@/types/memory.js\";\nimport type { StreamEvent } from \"@/types/stream\";\nimport { loggers } from \"@/utils/logger.js\";\nimport { IntentFulfillStreamService } from \"./intents/fulfill-stream.service\";\nimport { IntentTriggerService } from \"./intents/trigger.service\";\nimport { generateTitle } from \"./utils/query.common\";\n\n/**\n * Service for processing user queries through the agent's AI pipeline.\n *\n * Orchestrates the query processing workflow including intent detection,\n * model inference, tool execution, and response generation. Manages\n * conversation context and coordinates between different modules.\n */\nexport class QueryStreamService {\n\tprivate modelModule: ModelModule;\n\tprivate memoryModule?: MemoryModule;\n\tprivate intentTriggerService: IntentTriggerService;\n\tprivate intentFulfillStreamService: IntentFulfillStreamService;\n\n\tconstructor(\n\t\tmodelModule: ModelModule,\n\t\ta2aModule?: A2AModule,\n\t\tmcpModule?: MCPModule,\n\t\tmemoryModule?: MemoryModule,\n\t) {\n\t\tthis.modelModule = modelModule;\n\t\tthis.memoryModule = memoryModule;\n\t\tthis.intentTriggerService = new IntentTriggerService(\n\t\t\tmodelModule,\n\t\t\tmemoryModule,\n\t\t);\n\t\tthis.intentFulfillStreamService = new IntentFulfillStreamService(\n\t\t\tmodelModule,\n\t\t\ta2aModule,\n\t\t\tmcpModule,\n\t\t\tmemoryModule,\n\t\t);\n\t}\n\n\tpublic async addToThreadMessages(\n\t\tuserId: string,\n\t\tthreadId: string,\n\t\tmessages: Array<MessageObject>,\n\t) {\n\t\tconst threadMemory = this.memoryModule?.getThreadMemory();\n\t\tawait threadMemory?.addMessagesToThread(userId, threadId, messages);\n\t}\n\n\t/**\n\t * Main entry point for processing streaming user queries.\n\t *\n\t * Handles the complete query lifecycle:\n\t * 1. Loads or creates thread from memory\n\t * 2. Detects intent from the query\n\t * 3. Fulfills the intent with streaming AI response\n\t * 4. Updates conversation history in real-time\n\t *\n\t * @param threadMetadata - Metadata containing type, userId, and optional threadId\n\t * @param threadMetadata.type - The type of thread (e.g., chat, workflow)\n\t * @param threadMetadata.userId - The user's unique identifier\n\t * @param threadMetadata.threadId - Optional thread identifier\n\t * @param query - The user's input query\n\t * @returns AsyncGenerator yielding StreamEvent objects for SSE\n\t */\n\tpublic async *handleQueryStream(\n\t\tthreadMetadata: {\n\t\t\ttype: ThreadType;\n\t\t\tuserId: string;\n\t\t\tthreadId?: string;\n\t\t\toptions?: ModelFetchOptions;\n\t\t},\n\t\tquery: string,\n\t\tisA2A?: boolean,\n\t): AsyncGenerator<StreamEvent> {\n\t\tconst { type, userId, options } = threadMetadata;\n\t\tconst threadMemory = this.memoryModule?.getThreadMemory();\n\n\t\t// 1. Load or create thread\n\t\tlet threadId = threadMetadata.threadId;\n\t\tlet thread: ThreadObject | undefined;\n\t\tif (threadId) {\n\t\t\tthread = await threadMemory?.getThread(userId, threadId);\n\t\t\tif (!thread && !isA2A) {\n\t\t\t\tthrow new AinHttpError(StatusCodes.NOT_FOUND, \"Thread not found\");\n\t\t\t}\n\t\t}\n\n\t\tthreadId ??= randomUUID();\n\t\tif (!thread) {\n\t\t\tconst title = await generateTitle(this.modelModule, query, options);\n\t\t\tconst metadata: ThreadMetadata = (await threadMemory?.createThread(\n\t\t\t\ttype,\n\t\t\t\tuserId,\n\t\t\t\tthreadId,\n\t\t\t\ttitle,\n\t\t\t)) || { type, userId, threadId, title };\n\t\t\tthread = { ...metadata, messages: [] };\n\t\t\tloggers.intent.info(`Create new thread: ${threadId}`);\n\t\t\tyield { event: \"thread_id\", data: { type, userId, threadId, title } };\n\t\t}\n\n\t\t// 2. intent triggering\n\t\tconst triggeredIntent: Array<TriggeredIntent> =\n\t\t\tawait this.intentTriggerService.intentTriggering(query, thread);\n\t\tloggers.intent.debug(\"Triggered intents\", { triggeredIntent });\n\n\t\t// only add for storage, not for inference\n\t\tawait this.addToThreadMessages(userId, threadId, [\n\t\t\t{\n\t\t\t\tmessageId: randomUUID(),\n\t\t\t\trole: MessageRole.USER,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t\tcontent: { type: \"text\", parts: [query] },\n\t\t\t\tmetadata: {\n\t\t\t\t\tintents: triggeredIntent\n\t\t\t\t\t\t.filter((intent) => !!intent.intent)\n\t\t\t\t\t\t.map((intent) => ({\n\t\t\t\t\t\t\tid: intent.intent?.id,\n\t\t\t\t\t\t\tsubquery: intent.subquery,\n\t\t\t\t\t\t})),\n\t\t\t\t},\n\t\t\t},\n\t\t]);\n\n\t\t// 3. intent fulfillment\n\t\tconst stream = this.intentFulfillStreamService.intentFulfillStream(\n\t\t\ttriggeredIntent,\n\t\t\tthread,\n\t\t);\n\n\t\tfor await (const event of stream) {\n\t\t\tyield event;\n\t\t}\n\t}\n}\n"]}
@@ -21,4 +21,4 @@ var A2AConnector = (_class = class {
21
21
 
22
22
 
23
23
  exports.A2AConnector = A2AConnector;
24
- //# sourceMappingURL=chunk-OVTUSYSU.cjs.map
24
+ //# sourceMappingURL=chunk-5WWZOWMA.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-5WWZOWMA.cjs","../../src/modules/a2a/a2a.connector.ts"],"names":[],"mappings":"AAAA;ACMO,IAAM,aAAA,YAAN,MAA8C;AAAA,EAC7C;AAAA,iBACA,SAAA,EAAA,gBAAA;AAAA,EACA;AAAA,EACA;AAAA,kBACA,OAAA,EAA2B,KAAA;AAAA,EAElC,WAAA,CAAY,IAAA,EAAc,GAAA,EAAa;AACtC,IAAA,IAAA,CAAK,KAAA,EAAO,IAAA;AACZ,IAAA,IAAA,CAAK,QAAA,EAAU,IAAA;AACf,IAAA,IAAA,CAAK,IAAA,EAAM,GAAA;AAAA,EACZ;AAAA,EAEO,MAAA,CAAA,EAAe;AACrB,IAAA,IAAA,CAAK,QAAA,EAAU,IAAA;AAAA,EAChB;AAAA,EAEO,OAAA,CAAA,EAAgB;AACtB,IAAA,IAAA,CAAK,QAAA,EAAU,KAAA;AAAA,EAChB;AACD,UAAA;ADPA;AACA;AACE;AACF,oCAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-5WWZOWMA.cjs","sourcesContent":[null,"import type { Client as A2AClient } from \"@a2a-js/sdk/client\";\nimport {\n\tCONNECTOR_PROTOCOL_TYPE,\n\ttype IAgentConnector,\n} from \"@/types/connector.js\";\n\nexport class A2AConnector implements IAgentConnector {\n\tpublic name: string;\n\tpublic protocol: CONNECTOR_PROTOCOL_TYPE = CONNECTOR_PROTOCOL_TYPE.A2A;\n\tpublic enabled: boolean;\n\tpublic url: string;\n\tpublic client: A2AClient | null = null;\n\n\tconstructor(name: string, url: string) {\n\t\tthis.name = name;\n\t\tthis.enabled = true;\n\t\tthis.url = url;\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"]}
@@ -3,7 +3,7 @@
3
3
  var _chunk2P3ZBNVNcjs = require('./chunk-2P3ZBNVN.cjs');
4
4
 
5
5
 
6
- var _chunkOU5UB2HFcjs = require('./chunk-OU5UB2HF.cjs');
6
+ var _chunkNEWJ7PXHcjs = require('./chunk-NEWJ7PXH.cjs');
7
7
 
8
8
 
9
9
  var _chunkS6BHSEXFcjs = require('./chunk-S6BHSEXF.cjs');
@@ -13,7 +13,7 @@ var _express = require('express');
13
13
  var createIntentRouter = (agent) => {
14
14
  const router = _express.Router.call(void 0, );
15
15
  const threadService = new (0, _chunk2P3ZBNVNcjs.ThreadService)(agent.memoryModule);
16
- const triggerService = new (0, _chunkOU5UB2HFcjs.IntentTriggerService)(
16
+ const triggerService = new (0, _chunkNEWJ7PXHcjs.IntentTriggerService)(
17
17
  agent.modelModule,
18
18
  agent.memoryModule
19
19
  );
@@ -25,4 +25,4 @@ var createIntentRouter = (agent) => {
25
25
 
26
26
 
27
27
  exports.createIntentRouter = createIntentRouter;
28
- //# sourceMappingURL=chunk-AWHKDGXN.cjs.map
28
+ //# sourceMappingURL=chunk-6T2YGFSD.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-AWHKDGXN.cjs","../../src/routes/intent.routes.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACVA,kCAAuB;AAMhB,IAAM,mBAAA,EAAqB,CAAC,KAAA,EAAA,GAA4B;AAC9D,EAAA,MAAM,OAAA,EAAS,6BAAA,CAAO;AAEtB,EAAA,MAAM,cAAA,EAAgB,IAAI,oCAAA,CAAc,KAAA,CAAM,YAAY,CAAA;AAC1D,EAAA,MAAM,eAAA,EAAiB,IAAI,2CAAA;AAAA,IAC1B,KAAA,CAAM,WAAA;AAAA,IACN,KAAA,CAAM;AAAA,EACP,CAAA;AAEA,EAAA,MAAM,iBAAA,EAAmB,IAAI,uCAAA,CAAiB,aAAA,EAAe,cAAc,CAAA;AAE3E,EAAA,MAAA,CAAO,IAAA,CAAK,UAAA,EAAY,gBAAA,CAAiB,mBAAmB,CAAA;AAE5D,EAAA,OAAO,MAAA;AACR,CAAA;ADGA;AACA;AACE;AACF,gDAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-AWHKDGXN.cjs","sourcesContent":[null,"import { Router } from \"express\";\nimport { IntentController } from \"@/controllers/intent.controller\";\nimport type { AINAgent } from \"@/index.js\";\nimport { IntentTriggerService } from \"@/services\";\nimport { ThreadService } from \"@/services/thread.service\";\n\nexport const createIntentRouter = (agent: AINAgent): Router => {\n\tconst router = Router();\n\n\tconst threadService = new ThreadService(agent.memoryModule);\n\tconst triggerService = new IntentTriggerService(\n\t\tagent.modelModule,\n\t\tagent.memoryModule,\n\t);\n\n\tconst intentController = new IntentController(threadService, triggerService);\n\n\trouter.post(\"/trigger\", intentController.handleIntentTrigger);\n\n\treturn router;\n};\n"]}
1
+ {"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-6T2YGFSD.cjs","../../src/routes/intent.routes.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACVA,kCAAuB;AAMhB,IAAM,mBAAA,EAAqB,CAAC,KAAA,EAAA,GAA4B;AAC9D,EAAA,MAAM,OAAA,EAAS,6BAAA,CAAO;AAEtB,EAAA,MAAM,cAAA,EAAgB,IAAI,oCAAA,CAAc,KAAA,CAAM,YAAY,CAAA;AAC1D,EAAA,MAAM,eAAA,EAAiB,IAAI,2CAAA;AAAA,IAC1B,KAAA,CAAM,WAAA;AAAA,IACN,KAAA,CAAM;AAAA,EACP,CAAA;AAEA,EAAA,MAAM,iBAAA,EAAmB,IAAI,uCAAA,CAAiB,aAAA,EAAe,cAAc,CAAA;AAE3E,EAAA,MAAA,CAAO,IAAA,CAAK,UAAA,EAAY,gBAAA,CAAiB,mBAAmB,CAAA;AAE5D,EAAA,OAAO,MAAA;AACR,CAAA;ADGA;AACA;AACE;AACF,gDAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-6T2YGFSD.cjs","sourcesContent":[null,"import { Router } from \"express\";\nimport { IntentController } from \"@/controllers/intent.controller\";\nimport type { AINAgent } from \"@/index.js\";\nimport { IntentTriggerService } from \"@/services\";\nimport { ThreadService } from \"@/services/thread.service\";\n\nexport const createIntentRouter = (agent: AINAgent): Router => {\n\tconst router = Router();\n\n\tconst threadService = new ThreadService(agent.memoryModule);\n\tconst triggerService = new IntentTriggerService(\n\t\tagent.modelModule,\n\t\tagent.memoryModule,\n\t);\n\n\tconst intentController = new IntentController(threadService, triggerService);\n\n\trouter.post(\"/trigger\", intentController.handleIntentTrigger);\n\n\treturn router;\n};\n"]}
@@ -1,18 +1,18 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunk7QXQYCZPcjs = require('./chunk-7QXQYCZP.cjs');
3
+ var _chunkOZPPTVUAcjs = require('./chunk-OZPPTVUA.cjs');
4
4
 
5
5
 
6
- var _chunkMO3H4KHEcjs = require('./chunk-MO3H4KHE.cjs');
6
+ var _chunkXHTEJE4Ecjs = require('./chunk-XHTEJE4E.cjs');
7
7
 
8
8
 
9
- var _chunkTF7S7SPOcjs = require('./chunk-TF7S7SPO.cjs');
9
+ var _chunkNEWJ7PXHcjs = require('./chunk-NEWJ7PXH.cjs');
10
10
 
11
11
 
12
12
  var _chunkZ6TQ7TFOcjs = require('./chunk-Z6TQ7TFO.cjs');
13
13
 
14
14
 
15
- var _chunk466ED5WNcjs = require('./chunk-466ED5WN.cjs');
15
+ var _chunkCLJ3DWTAcjs = require('./chunk-CLJ3DWTA.cjs');
16
16
 
17
17
  // src/services/query-stream.service.ts
18
18
  var _crypto = require('crypto');
@@ -25,17 +25,21 @@ var QueryStreamService = class {
25
25
  constructor(modelModule, a2aModule, mcpModule, memoryModule) {
26
26
  this.modelModule = modelModule;
27
27
  this.memoryModule = memoryModule;
28
- this.intentTriggerService = new (0, _chunkTF7S7SPOcjs.IntentTriggerService)(
28
+ this.intentTriggerService = new (0, _chunkNEWJ7PXHcjs.IntentTriggerService)(
29
29
  modelModule,
30
30
  memoryModule
31
31
  );
32
- this.intentFulfillStreamService = new (0, _chunk7QXQYCZPcjs.IntentFulfillStreamService)(
32
+ this.intentFulfillStreamService = new (0, _chunkOZPPTVUAcjs.IntentFulfillStreamService)(
33
33
  modelModule,
34
34
  a2aModule,
35
35
  mcpModule,
36
36
  memoryModule
37
37
  );
38
38
  }
39
+ async addToThreadMessages(userId, threadId, messages) {
40
+ const threadMemory = _optionalChain([this, 'access', _ => _.memoryModule, 'optionalAccess', _2 => _2.getThreadMemory, 'call', _3 => _3()]);
41
+ await _optionalChain([threadMemory, 'optionalAccess', _4 => _4.addMessagesToThread, 'call', _5 => _5(userId, threadId, messages)]);
42
+ }
39
43
  /**
40
44
  * Main entry point for processing streaming user queries.
41
45
  *
@@ -54,31 +58,31 @@ var QueryStreamService = class {
54
58
  */
55
59
  async *handleQueryStream(threadMetadata, query, isA2A) {
56
60
  const { type, userId, options } = threadMetadata;
57
- const threadMemory = _optionalChain([this, 'access', _ => _.memoryModule, 'optionalAccess', _2 => _2.getThreadMemory, 'call', _3 => _3()]);
61
+ const threadMemory = _optionalChain([this, 'access', _6 => _6.memoryModule, 'optionalAccess', _7 => _7.getThreadMemory, 'call', _8 => _8()]);
58
62
  let threadId = threadMetadata.threadId;
59
63
  let thread;
60
64
  if (threadId) {
61
- thread = await _optionalChain([threadMemory, 'optionalAccess', _4 => _4.getThread, 'call', _5 => _5(userId, threadId)]);
65
+ thread = await _optionalChain([threadMemory, 'optionalAccess', _9 => _9.getThread, 'call', _10 => _10(userId, threadId)]);
62
66
  if (!thread && !isA2A) {
63
67
  throw new (0, _chunkZ6TQ7TFOcjs.AinHttpError)(_httpstatuscodes.StatusCodes.NOT_FOUND, "Thread not found");
64
68
  }
65
69
  }
66
70
  threadId ??= _crypto.randomUUID.call(void 0, );
67
71
  if (!thread) {
68
- const title = await _chunkMO3H4KHEcjs.generateTitle.call(void 0, this.modelModule, query, options);
69
- const metadata = await _optionalChain([threadMemory, 'optionalAccess', _6 => _6.createThread, 'call', _7 => _7(
72
+ const title = await _chunkXHTEJE4Ecjs.generateTitle.call(void 0, this.modelModule, query, options);
73
+ const metadata = await _optionalChain([threadMemory, 'optionalAccess', _11 => _11.createThread, 'call', _12 => _12(
70
74
  type,
71
75
  userId,
72
76
  threadId,
73
77
  title
74
78
  )]) || { type, userId, threadId, title };
75
79
  thread = { ...metadata, messages: [] };
76
- _chunk466ED5WNcjs.loggers.intent.info(`Create new thread: ${threadId}`);
80
+ _chunkCLJ3DWTAcjs.loggers.intent.info(`Create new thread: ${threadId}`);
77
81
  yield { event: "thread_id", data: { type, userId, threadId, title } };
78
82
  }
79
83
  const triggeredIntent = await this.intentTriggerService.intentTriggering(query, thread);
80
- _chunk466ED5WNcjs.loggers.intent.debug("Triggered intents", { triggeredIntent });
81
- await _optionalChain([threadMemory, 'optionalAccess', _8 => _8.addMessagesToThread, 'call', _9 => _9(userId, threadId, [
84
+ _chunkCLJ3DWTAcjs.loggers.intent.debug("Triggered intents", { triggeredIntent });
85
+ await this.addToThreadMessages(userId, threadId, [
82
86
  {
83
87
  messageId: _crypto.randomUUID.call(void 0, ),
84
88
  role: "USER" /* USER */,
@@ -86,12 +90,12 @@ var QueryStreamService = class {
86
90
  content: { type: "text", parts: [query] },
87
91
  metadata: {
88
92
  intents: triggeredIntent.filter((intent) => !!intent.intent).map((intent) => ({
89
- id: _optionalChain([intent, 'access', _10 => _10.intent, 'optionalAccess', _11 => _11.id]),
93
+ id: _optionalChain([intent, 'access', _13 => _13.intent, 'optionalAccess', _14 => _14.id]),
90
94
  subquery: intent.subquery
91
95
  }))
92
96
  }
93
97
  }
94
- ])]);
98
+ ]);
95
99
  const stream = this.intentFulfillStreamService.intentFulfillStream(
96
100
  triggeredIntent,
97
101
  thread
@@ -105,4 +109,4 @@ var QueryStreamService = class {
105
109
 
106
110
 
107
111
  exports.QueryStreamService = QueryStreamService;
108
- //# sourceMappingURL=chunk-NYDNXGKB.cjs.map
112
+ //# sourceMappingURL=chunk-7KXB6FOT.cjs.map