@ainetwork/adk 0.0.1

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 (484) hide show
  1. package/README.md +299 -0
  2. package/dist/cjs/ainagent.d.ts +15 -0
  3. package/dist/cjs/ainagent.d.ts.map +1 -0
  4. package/dist/cjs/ainagent.js +68 -0
  5. package/dist/cjs/ainagent.js.map +1 -0
  6. package/dist/cjs/app.d.ts +102 -0
  7. package/dist/cjs/app.d.ts.map +1 -0
  8. package/dist/cjs/app.js +170 -0
  9. package/dist/cjs/app.js.map +1 -0
  10. package/dist/cjs/controllers/a2a.controller.d.ts +14 -0
  11. package/dist/cjs/controllers/a2a.controller.d.ts.map +1 -0
  12. package/dist/cjs/controllers/a2a.controller.js +98 -0
  13. package/dist/cjs/controllers/a2a.controller.js.map +1 -0
  14. package/dist/cjs/controllers/api/model.api.controller.d.ts +8 -0
  15. package/dist/cjs/controllers/api/model.api.controller.d.ts.map +1 -0
  16. package/dist/cjs/controllers/api/model.api.controller.js +19 -0
  17. package/dist/cjs/controllers/api/model.api.controller.js.map +1 -0
  18. package/dist/cjs/controllers/api/session.api.controller.d.ts +8 -0
  19. package/dist/cjs/controllers/api/session.api.controller.d.ts.map +1 -0
  20. package/dist/cjs/controllers/api/session.api.controller.js +21 -0
  21. package/dist/cjs/controllers/api/session.api.controller.js.map +1 -0
  22. package/dist/cjs/controllers/query.controller.d.ts +8 -0
  23. package/dist/cjs/controllers/query.controller.d.ts.map +1 -0
  24. package/dist/cjs/controllers/query.controller.js +20 -0
  25. package/dist/cjs/controllers/query.controller.js.map +1 -0
  26. package/dist/cjs/intent/analyzer.d.ts +24 -0
  27. package/dist/cjs/intent/analyzer.d.ts.map +1 -0
  28. package/dist/cjs/intent/analyzer.js +154 -0
  29. package/dist/cjs/intent/analyzer.js.map +1 -0
  30. package/dist/cjs/intent/modules/a2a/index.d.ts +12 -0
  31. package/dist/cjs/intent/modules/a2a/index.d.ts.map +1 -0
  32. package/dist/cjs/intent/modules/a2a/index.js +136 -0
  33. package/dist/cjs/intent/modules/a2a/index.js.map +1 -0
  34. package/dist/cjs/intent/modules/a2a/tool.d.ts +8 -0
  35. package/dist/cjs/intent/modules/a2a/tool.d.ts.map +1 -0
  36. package/dist/cjs/intent/modules/a2a/tool.js +14 -0
  37. package/dist/cjs/intent/modules/a2a/tool.js.map +1 -0
  38. package/dist/cjs/intent/modules/common/tool.d.ts +10 -0
  39. package/dist/cjs/intent/modules/common/tool.d.ts.map +1 -0
  40. package/dist/cjs/intent/modules/common/tool.js +18 -0
  41. package/dist/cjs/intent/modules/common/tool.js.map +1 -0
  42. package/dist/cjs/intent/modules/common/types.d.ts +5 -0
  43. package/dist/cjs/intent/modules/common/types.d.ts.map +1 -0
  44. package/dist/cjs/intent/modules/common/types.js +9 -0
  45. package/dist/cjs/intent/modules/common/types.js.map +1 -0
  46. package/dist/cjs/intent/modules/fol/client/folClient.d.ts +31 -0
  47. package/dist/cjs/intent/modules/fol/client/folClient.d.ts.map +1 -0
  48. package/dist/cjs/intent/modules/fol/client/folClient.js +185 -0
  49. package/dist/cjs/intent/modules/fol/client/folClient.js.map +1 -0
  50. package/dist/cjs/intent/modules/fol/index.d.ts +4 -0
  51. package/dist/cjs/intent/modules/fol/index.d.ts.map +1 -0
  52. package/dist/cjs/intent/modules/fol/index.js +14 -0
  53. package/dist/cjs/intent/modules/fol/index.js.map +1 -0
  54. package/dist/cjs/intent/modules/fol/store/base.d.ts +9 -0
  55. package/dist/cjs/intent/modules/fol/store/base.d.ts.map +1 -0
  56. package/dist/cjs/intent/modules/fol/store/base.js +7 -0
  57. package/dist/cjs/intent/modules/fol/store/base.js.map +1 -0
  58. package/dist/cjs/intent/modules/fol/store/index.d.ts +5 -0
  59. package/dist/cjs/intent/modules/fol/store/index.d.ts.map +1 -0
  60. package/dist/cjs/intent/modules/fol/store/index.js +12 -0
  61. package/dist/cjs/intent/modules/fol/store/index.js.map +1 -0
  62. package/dist/cjs/intent/modules/fol/store/local.d.ts +25 -0
  63. package/dist/cjs/intent/modules/fol/store/local.d.ts.map +1 -0
  64. package/dist/cjs/intent/modules/fol/store/local.js +221 -0
  65. package/dist/cjs/intent/modules/fol/store/local.js.map +1 -0
  66. package/dist/cjs/intent/modules/fol/store/mongo.d.ts +4 -0
  67. package/dist/cjs/intent/modules/fol/store/mongo.d.ts.map +1 -0
  68. package/dist/cjs/intent/modules/fol/store/mongo.js +9 -0
  69. package/dist/cjs/intent/modules/fol/store/mongo.js.map +1 -0
  70. package/dist/cjs/intent/modules/fol/store/postgresql.d.ts +4 -0
  71. package/dist/cjs/intent/modules/fol/store/postgresql.d.ts.map +1 -0
  72. package/dist/cjs/intent/modules/fol/store/postgresql.js +9 -0
  73. package/dist/cjs/intent/modules/fol/store/postgresql.js.map +1 -0
  74. package/dist/cjs/intent/modules/fol/types/index.d.ts +43 -0
  75. package/dist/cjs/intent/modules/fol/types/index.d.ts.map +1 -0
  76. package/dist/cjs/intent/modules/fol/types/index.js +3 -0
  77. package/dist/cjs/intent/modules/fol/types/index.js.map +1 -0
  78. package/dist/cjs/intent/modules/mcp/index.d.ts +12 -0
  79. package/dist/cjs/intent/modules/mcp/index.d.ts.map +1 -0
  80. package/dist/cjs/intent/modules/mcp/index.js +65 -0
  81. package/dist/cjs/intent/modules/mcp/index.js.map +1 -0
  82. package/dist/cjs/intent/modules/mcp/tool.d.ts +8 -0
  83. package/dist/cjs/intent/modules/mcp/tool.d.ts.map +1 -0
  84. package/dist/cjs/intent/modules/mcp/tool.js +15 -0
  85. package/dist/cjs/intent/modules/mcp/tool.js.map +1 -0
  86. package/dist/cjs/middleware/auth/base.d.ts +5 -0
  87. package/dist/cjs/middleware/auth/base.d.ts.map +1 -0
  88. package/dist/cjs/middleware/auth/base.js +13 -0
  89. package/dist/cjs/middleware/auth/base.js.map +1 -0
  90. package/dist/cjs/middlewares/auth/base.d.ts +5 -0
  91. package/dist/cjs/middlewares/auth/base.d.ts.map +1 -0
  92. package/dist/cjs/middlewares/auth/base.js +13 -0
  93. package/dist/cjs/middlewares/auth/base.js.map +1 -0
  94. package/dist/cjs/middlewares/error.middleware.d.ts +6 -0
  95. package/dist/cjs/middlewares/error.middleware.d.ts.map +1 -0
  96. package/dist/cjs/middlewares/error.middleware.js +17 -0
  97. package/dist/cjs/middlewares/error.middleware.js.map +1 -0
  98. package/dist/cjs/models/BaseModel.d.ts +25 -0
  99. package/dist/cjs/models/BaseModel.d.ts.map +1 -0
  100. package/dist/cjs/models/BaseModel.js +7 -0
  101. package/dist/cjs/models/BaseModel.js.map +1 -0
  102. package/dist/cjs/models/base.d.ts +24 -0
  103. package/dist/cjs/models/base.d.ts.map +1 -0
  104. package/dist/cjs/models/base.js +7 -0
  105. package/dist/cjs/models/base.js.map +1 -0
  106. package/dist/cjs/models/gemini.d.ts +16 -0
  107. package/dist/cjs/models/gemini.d.ts.map +1 -0
  108. package/dist/cjs/models/gemini.js +107 -0
  109. package/dist/cjs/models/gemini.js.map +1 -0
  110. package/dist/cjs/models/openai.d.ts +16 -0
  111. package/dist/cjs/models/openai.d.ts.map +1 -0
  112. package/dist/cjs/models/openai.js +113 -0
  113. package/dist/cjs/models/openai.js.map +1 -0
  114. package/dist/cjs/modules/a2a/a2a.module.d.ts +71 -0
  115. package/dist/cjs/modules/a2a/a2a.module.d.ts.map +1 -0
  116. package/dist/cjs/modules/a2a/a2a.module.js +195 -0
  117. package/dist/cjs/modules/a2a/a2a.module.js.map +1 -0
  118. package/dist/cjs/modules/a2a/a2a.tool.d.ts +13 -0
  119. package/dist/cjs/modules/a2a/a2a.tool.d.ts.map +1 -0
  120. package/dist/cjs/modules/a2a/a2a.tool.js +21 -0
  121. package/dist/cjs/modules/a2a/a2a.tool.js.map +1 -0
  122. package/dist/cjs/modules/fol/fol.module.d.ts +31 -0
  123. package/dist/cjs/modules/fol/fol.module.d.ts.map +1 -0
  124. package/dist/cjs/modules/fol/fol.module.js +180 -0
  125. package/dist/cjs/modules/fol/fol.module.js.map +1 -0
  126. package/dist/cjs/modules/fol/store/base.d.ts +9 -0
  127. package/dist/cjs/modules/fol/store/base.d.ts.map +1 -0
  128. package/dist/cjs/modules/fol/store/base.js +7 -0
  129. package/dist/cjs/modules/fol/store/base.js.map +1 -0
  130. package/dist/cjs/modules/fol/store/index.d.ts +3 -0
  131. package/dist/cjs/modules/fol/store/index.d.ts.map +1 -0
  132. package/dist/cjs/modules/fol/store/index.js +8 -0
  133. package/dist/cjs/modules/fol/store/index.js.map +1 -0
  134. package/dist/cjs/modules/fol/store/local.d.ts +25 -0
  135. package/dist/cjs/modules/fol/store/local.d.ts.map +1 -0
  136. package/dist/cjs/modules/fol/store/local.js +221 -0
  137. package/dist/cjs/modules/fol/store/local.js.map +1 -0
  138. package/dist/cjs/modules/index.d.ts +6 -0
  139. package/dist/cjs/modules/index.d.ts.map +1 -0
  140. package/dist/cjs/modules/index.js +14 -0
  141. package/dist/cjs/modules/index.js.map +1 -0
  142. package/dist/cjs/modules/mcp/mcp.module.d.ts +65 -0
  143. package/dist/cjs/modules/mcp/mcp.module.d.ts.map +1 -0
  144. package/dist/cjs/modules/mcp/mcp.module.js +118 -0
  145. package/dist/cjs/modules/mcp/mcp.module.js.map +1 -0
  146. package/dist/cjs/modules/mcp/mcp.tool.d.ts +13 -0
  147. package/dist/cjs/modules/mcp/mcp.tool.d.ts.map +1 -0
  148. package/dist/cjs/modules/mcp/mcp.tool.js +22 -0
  149. package/dist/cjs/modules/mcp/mcp.tool.js.map +1 -0
  150. package/dist/cjs/modules/memory/inmemory.d.ts +14 -0
  151. package/dist/cjs/modules/memory/inmemory.d.ts.map +1 -0
  152. package/dist/cjs/modules/memory/inmemory.js +27 -0
  153. package/dist/cjs/modules/memory/inmemory.js.map +1 -0
  154. package/dist/cjs/modules/memory/memory.module.d.ts +65 -0
  155. package/dist/cjs/modules/memory/memory.module.d.ts.map +1 -0
  156. package/dist/cjs/modules/memory/memory.module.js +50 -0
  157. package/dist/cjs/modules/memory/memory.module.js.map +1 -0
  158. package/dist/cjs/modules/models/gemini.d.ts +16 -0
  159. package/dist/cjs/modules/models/gemini.d.ts.map +1 -0
  160. package/dist/cjs/modules/models/gemini.js +108 -0
  161. package/dist/cjs/modules/models/gemini.js.map +1 -0
  162. package/dist/cjs/modules/models/model.module.d.ts +102 -0
  163. package/dist/cjs/modules/models/model.module.d.ts.map +1 -0
  164. package/dist/cjs/modules/models/model.module.js +80 -0
  165. package/dist/cjs/modules/models/model.module.js.map +1 -0
  166. package/dist/cjs/modules/models/openai.d.ts +16 -0
  167. package/dist/cjs/modules/models/openai.d.ts.map +1 -0
  168. package/dist/cjs/modules/models/openai.js +114 -0
  169. package/dist/cjs/modules/models/openai.js.map +1 -0
  170. package/dist/cjs/package.json +1 -0
  171. package/dist/cjs/router/a2a/executor.d.ts +11 -0
  172. package/dist/cjs/router/a2a/executor.d.ts.map +1 -0
  173. package/dist/cjs/router/a2a/executor.js +96 -0
  174. package/dist/cjs/router/a2a/executor.js.map +1 -0
  175. package/dist/cjs/router/a2a/requestHandler.d.ts +9 -0
  176. package/dist/cjs/router/a2a/requestHandler.d.ts.map +1 -0
  177. package/dist/cjs/router/a2a/requestHandler.js +20 -0
  178. package/dist/cjs/router/a2a/requestHandler.js.map +1 -0
  179. package/dist/cjs/router/a2a/router.d.ts +12 -0
  180. package/dist/cjs/router/a2a/router.d.ts.map +1 -0
  181. package/dist/cjs/router/a2a/router.js +99 -0
  182. package/dist/cjs/router/a2a/router.js.map +1 -0
  183. package/dist/cjs/routes/a2a.routes.d.ts +12 -0
  184. package/dist/cjs/routes/a2a.routes.d.ts.map +1 -0
  185. package/dist/cjs/routes/a2a.routes.js +29 -0
  186. package/dist/cjs/routes/a2a.routes.js.map +1 -0
  187. package/dist/cjs/routes/api/models.routes.d.ts +4 -0
  188. package/dist/cjs/routes/api/models.routes.d.ts.map +1 -0
  189. package/dist/cjs/routes/api/models.routes.js +14 -0
  190. package/dist/cjs/routes/api/models.routes.js.map +1 -0
  191. package/dist/cjs/routes/api/sessions.routes.d.ts +4 -0
  192. package/dist/cjs/routes/api/sessions.routes.d.ts.map +1 -0
  193. package/dist/cjs/routes/api/sessions.routes.js +14 -0
  194. package/dist/cjs/routes/api/sessions.routes.js.map +1 -0
  195. package/dist/cjs/routes/api.routes.d.ts +4 -0
  196. package/dist/cjs/routes/api.routes.d.ts.map +1 -0
  197. package/dist/cjs/routes/api.routes.js +16 -0
  198. package/dist/cjs/routes/api.routes.js.map +1 -0
  199. package/dist/cjs/routes/index.d.ts +5 -0
  200. package/dist/cjs/routes/index.d.ts.map +1 -0
  201. package/dist/cjs/routes/index.js +10 -0
  202. package/dist/cjs/routes/index.js.map +1 -0
  203. package/dist/cjs/routes/query.routes.d.ts +4 -0
  204. package/dist/cjs/routes/query.routes.d.ts.map +1 -0
  205. package/dist/cjs/routes/query.routes.js +15 -0
  206. package/dist/cjs/routes/query.routes.js.map +1 -0
  207. package/dist/cjs/services/a2a.service.d.ts +15 -0
  208. package/dist/cjs/services/a2a.service.d.ts.map +1 -0
  209. package/dist/cjs/services/a2a.service.js +93 -0
  210. package/dist/cjs/services/a2a.service.js.map +1 -0
  211. package/dist/cjs/services/query.service.d.ts +57 -0
  212. package/dist/cjs/services/query.service.d.ts.map +1 -0
  213. package/dist/cjs/services/query.service.js +158 -0
  214. package/dist/cjs/services/query.service.js.map +1 -0
  215. package/dist/cjs/session/BaseSession.d.ts +21 -0
  216. package/dist/cjs/session/BaseSession.d.ts.map +1 -0
  217. package/dist/cjs/session/BaseSession.js +13 -0
  218. package/dist/cjs/session/BaseSession.js.map +1 -0
  219. package/dist/cjs/types/fol.d.ts +38 -0
  220. package/dist/cjs/types/fol.d.ts.map +1 -0
  221. package/dist/cjs/types/fol.js +3 -0
  222. package/dist/cjs/types/fol.js.map +1 -0
  223. package/dist/cjs/types/index.d.ts +44 -0
  224. package/dist/cjs/types/index.d.ts.map +1 -0
  225. package/dist/cjs/types/index.js +3 -0
  226. package/dist/cjs/types/index.js.map +1 -0
  227. package/dist/cjs/types/mcp.d.ts +5 -0
  228. package/dist/cjs/types/mcp.d.ts.map +1 -0
  229. package/dist/cjs/types/mcp.js +3 -0
  230. package/dist/cjs/types/mcp.js.map +1 -0
  231. package/dist/cjs/types/memory.d.ts +73 -0
  232. package/dist/cjs/types/memory.d.ts.map +1 -0
  233. package/dist/cjs/types/memory.js +16 -0
  234. package/dist/cjs/types/memory.js.map +1 -0
  235. package/dist/cjs/types/tool.d.ts +87 -0
  236. package/dist/cjs/types/tool.d.ts.map +1 -0
  237. package/dist/cjs/types/tool.js +14 -0
  238. package/dist/cjs/types/tool.js.map +1 -0
  239. package/dist/cjs/utils/logger.d.ts +13 -0
  240. package/dist/cjs/utils/logger.d.ts.map +1 -0
  241. package/dist/cjs/utils/logger.js +39 -0
  242. package/dist/cjs/utils/logger.js.map +1 -0
  243. package/dist/esm/ainagent.d.ts +15 -0
  244. package/dist/esm/ainagent.d.ts.map +1 -0
  245. package/dist/esm/ainagent.js +61 -0
  246. package/dist/esm/ainagent.js.map +1 -0
  247. package/dist/esm/app.d.ts +102 -0
  248. package/dist/esm/app.d.ts.map +1 -0
  249. package/dist/esm/app.js +163 -0
  250. package/dist/esm/app.js.map +1 -0
  251. package/dist/esm/controllers/a2a.controller.d.ts +14 -0
  252. package/dist/esm/controllers/a2a.controller.d.ts.map +1 -0
  253. package/dist/esm/controllers/a2a.controller.js +94 -0
  254. package/dist/esm/controllers/a2a.controller.js.map +1 -0
  255. package/dist/esm/controllers/api/model.api.controller.d.ts +8 -0
  256. package/dist/esm/controllers/api/model.api.controller.d.ts.map +1 -0
  257. package/dist/esm/controllers/api/model.api.controller.js +15 -0
  258. package/dist/esm/controllers/api/model.api.controller.js.map +1 -0
  259. package/dist/esm/controllers/api/session.api.controller.d.ts +8 -0
  260. package/dist/esm/controllers/api/session.api.controller.d.ts.map +1 -0
  261. package/dist/esm/controllers/api/session.api.controller.js +17 -0
  262. package/dist/esm/controllers/api/session.api.controller.js.map +1 -0
  263. package/dist/esm/controllers/query.controller.d.ts +8 -0
  264. package/dist/esm/controllers/query.controller.d.ts.map +1 -0
  265. package/dist/esm/controllers/query.controller.js +16 -0
  266. package/dist/esm/controllers/query.controller.js.map +1 -0
  267. package/dist/esm/intent/analyzer.d.ts +24 -0
  268. package/dist/esm/intent/analyzer.d.ts.map +1 -0
  269. package/dist/esm/intent/analyzer.js +150 -0
  270. package/dist/esm/intent/analyzer.js.map +1 -0
  271. package/dist/esm/intent/modules/a2a/index.d.ts +12 -0
  272. package/dist/esm/intent/modules/a2a/index.d.ts.map +1 -0
  273. package/dist/esm/intent/modules/a2a/index.js +132 -0
  274. package/dist/esm/intent/modules/a2a/index.js.map +1 -0
  275. package/dist/esm/intent/modules/a2a/tool.d.ts +8 -0
  276. package/dist/esm/intent/modules/a2a/tool.d.ts.map +1 -0
  277. package/dist/esm/intent/modules/a2a/tool.js +10 -0
  278. package/dist/esm/intent/modules/a2a/tool.js.map +1 -0
  279. package/dist/esm/intent/modules/common/tool.d.ts +10 -0
  280. package/dist/esm/intent/modules/common/tool.d.ts.map +1 -0
  281. package/dist/esm/intent/modules/common/tool.js +14 -0
  282. package/dist/esm/intent/modules/common/tool.js.map +1 -0
  283. package/dist/esm/intent/modules/common/types.d.ts +5 -0
  284. package/dist/esm/intent/modules/common/types.d.ts.map +1 -0
  285. package/dist/esm/intent/modules/common/types.js +6 -0
  286. package/dist/esm/intent/modules/common/types.js.map +1 -0
  287. package/dist/esm/intent/modules/fol/client/folClient.d.ts +31 -0
  288. package/dist/esm/intent/modules/fol/client/folClient.d.ts.map +1 -0
  289. package/dist/esm/intent/modules/fol/client/folClient.js +178 -0
  290. package/dist/esm/intent/modules/fol/client/folClient.js.map +1 -0
  291. package/dist/esm/intent/modules/fol/index.d.ts +4 -0
  292. package/dist/esm/intent/modules/fol/index.d.ts.map +1 -0
  293. package/dist/esm/intent/modules/fol/index.js +6 -0
  294. package/dist/esm/intent/modules/fol/index.js.map +1 -0
  295. package/dist/esm/intent/modules/fol/store/base.d.ts +9 -0
  296. package/dist/esm/intent/modules/fol/store/base.d.ts.map +1 -0
  297. package/dist/esm/intent/modules/fol/store/base.js +3 -0
  298. package/dist/esm/intent/modules/fol/store/base.js.map +1 -0
  299. package/dist/esm/intent/modules/fol/store/index.d.ts +5 -0
  300. package/dist/esm/intent/modules/fol/store/index.d.ts.map +1 -0
  301. package/dist/esm/intent/modules/fol/store/index.js +5 -0
  302. package/dist/esm/intent/modules/fol/store/index.js.map +1 -0
  303. package/dist/esm/intent/modules/fol/store/local.d.ts +25 -0
  304. package/dist/esm/intent/modules/fol/store/local.d.ts.map +1 -0
  305. package/dist/esm/intent/modules/fol/store/local.js +214 -0
  306. package/dist/esm/intent/modules/fol/store/local.js.map +1 -0
  307. package/dist/esm/intent/modules/fol/store/mongo.d.ts +4 -0
  308. package/dist/esm/intent/modules/fol/store/mongo.d.ts.map +1 -0
  309. package/dist/esm/intent/modules/fol/store/mongo.js +5 -0
  310. package/dist/esm/intent/modules/fol/store/mongo.js.map +1 -0
  311. package/dist/esm/intent/modules/fol/store/postgresql.d.ts +4 -0
  312. package/dist/esm/intent/modules/fol/store/postgresql.d.ts.map +1 -0
  313. package/dist/esm/intent/modules/fol/store/postgresql.js +5 -0
  314. package/dist/esm/intent/modules/fol/store/postgresql.js.map +1 -0
  315. package/dist/esm/intent/modules/fol/types/index.d.ts +43 -0
  316. package/dist/esm/intent/modules/fol/types/index.d.ts.map +1 -0
  317. package/dist/esm/intent/modules/fol/types/index.js +2 -0
  318. package/dist/esm/intent/modules/fol/types/index.js.map +1 -0
  319. package/dist/esm/intent/modules/mcp/index.d.ts +12 -0
  320. package/dist/esm/intent/modules/mcp/index.d.ts.map +1 -0
  321. package/dist/esm/intent/modules/mcp/index.js +61 -0
  322. package/dist/esm/intent/modules/mcp/index.js.map +1 -0
  323. package/dist/esm/intent/modules/mcp/tool.d.ts +8 -0
  324. package/dist/esm/intent/modules/mcp/tool.d.ts.map +1 -0
  325. package/dist/esm/intent/modules/mcp/tool.js +11 -0
  326. package/dist/esm/intent/modules/mcp/tool.js.map +1 -0
  327. package/dist/esm/middleware/auth/base.d.ts +5 -0
  328. package/dist/esm/middleware/auth/base.d.ts.map +1 -0
  329. package/dist/esm/middleware/auth/base.js +9 -0
  330. package/dist/esm/middleware/auth/base.js.map +1 -0
  331. package/dist/esm/middlewares/auth/base.d.ts +5 -0
  332. package/dist/esm/middlewares/auth/base.d.ts.map +1 -0
  333. package/dist/esm/middlewares/auth/base.js +9 -0
  334. package/dist/esm/middlewares/auth/base.js.map +1 -0
  335. package/dist/esm/middlewares/error.middleware.d.ts +6 -0
  336. package/dist/esm/middlewares/error.middleware.d.ts.map +1 -0
  337. package/dist/esm/middlewares/error.middleware.js +13 -0
  338. package/dist/esm/middlewares/error.middleware.js.map +1 -0
  339. package/dist/esm/models/BaseModel.d.ts +25 -0
  340. package/dist/esm/models/BaseModel.d.ts.map +1 -0
  341. package/dist/esm/models/BaseModel.js +3 -0
  342. package/dist/esm/models/BaseModel.js.map +1 -0
  343. package/dist/esm/models/base.d.ts +24 -0
  344. package/dist/esm/models/base.d.ts.map +1 -0
  345. package/dist/esm/models/base.js +3 -0
  346. package/dist/esm/models/base.js.map +1 -0
  347. package/dist/esm/models/gemini.d.ts +16 -0
  348. package/dist/esm/models/gemini.d.ts.map +1 -0
  349. package/dist/esm/models/gemini.js +104 -0
  350. package/dist/esm/models/gemini.js.map +1 -0
  351. package/dist/esm/models/openai.d.ts +16 -0
  352. package/dist/esm/models/openai.d.ts.map +1 -0
  353. package/dist/esm/models/openai.js +110 -0
  354. package/dist/esm/models/openai.js.map +1 -0
  355. package/dist/esm/modules/a2a/a2a.module.d.ts +71 -0
  356. package/dist/esm/modules/a2a/a2a.module.d.ts.map +1 -0
  357. package/dist/esm/modules/a2a/a2a.module.js +191 -0
  358. package/dist/esm/modules/a2a/a2a.module.js.map +1 -0
  359. package/dist/esm/modules/a2a/a2a.tool.d.ts +13 -0
  360. package/dist/esm/modules/a2a/a2a.tool.d.ts.map +1 -0
  361. package/dist/esm/modules/a2a/a2a.tool.js +17 -0
  362. package/dist/esm/modules/a2a/a2a.tool.js.map +1 -0
  363. package/dist/esm/modules/fol/fol.module.d.ts +31 -0
  364. package/dist/esm/modules/fol/fol.module.d.ts.map +1 -0
  365. package/dist/esm/modules/fol/fol.module.js +176 -0
  366. package/dist/esm/modules/fol/fol.module.js.map +1 -0
  367. package/dist/esm/modules/fol/store/base.d.ts +9 -0
  368. package/dist/esm/modules/fol/store/base.d.ts.map +1 -0
  369. package/dist/esm/modules/fol/store/base.js +3 -0
  370. package/dist/esm/modules/fol/store/base.js.map +1 -0
  371. package/dist/esm/modules/fol/store/index.d.ts +3 -0
  372. package/dist/esm/modules/fol/store/index.d.ts.map +1 -0
  373. package/dist/esm/modules/fol/store/index.js +3 -0
  374. package/dist/esm/modules/fol/store/index.js.map +1 -0
  375. package/dist/esm/modules/fol/store/local.d.ts +25 -0
  376. package/dist/esm/modules/fol/store/local.d.ts.map +1 -0
  377. package/dist/esm/modules/fol/store/local.js +214 -0
  378. package/dist/esm/modules/fol/store/local.js.map +1 -0
  379. package/dist/esm/modules/index.d.ts +6 -0
  380. package/dist/esm/modules/index.d.ts.map +1 -0
  381. package/dist/esm/modules/index.js +6 -0
  382. package/dist/esm/modules/index.js.map +1 -0
  383. package/dist/esm/modules/mcp/mcp.module.d.ts +65 -0
  384. package/dist/esm/modules/mcp/mcp.module.d.ts.map +1 -0
  385. package/dist/esm/modules/mcp/mcp.module.js +114 -0
  386. package/dist/esm/modules/mcp/mcp.module.js.map +1 -0
  387. package/dist/esm/modules/mcp/mcp.tool.d.ts +13 -0
  388. package/dist/esm/modules/mcp/mcp.tool.d.ts.map +1 -0
  389. package/dist/esm/modules/mcp/mcp.tool.js +18 -0
  390. package/dist/esm/modules/mcp/mcp.tool.js.map +1 -0
  391. package/dist/esm/modules/memory/inmemory.d.ts +14 -0
  392. package/dist/esm/modules/memory/inmemory.d.ts.map +1 -0
  393. package/dist/esm/modules/memory/inmemory.js +23 -0
  394. package/dist/esm/modules/memory/inmemory.js.map +1 -0
  395. package/dist/esm/modules/memory/memory.module.d.ts +65 -0
  396. package/dist/esm/modules/memory/memory.module.d.ts.map +1 -0
  397. package/dist/esm/modules/memory/memory.module.js +45 -0
  398. package/dist/esm/modules/memory/memory.module.js.map +1 -0
  399. package/dist/esm/modules/models/gemini.d.ts +16 -0
  400. package/dist/esm/modules/models/gemini.d.ts.map +1 -0
  401. package/dist/esm/modules/models/gemini.js +104 -0
  402. package/dist/esm/modules/models/gemini.js.map +1 -0
  403. package/dist/esm/modules/models/model.module.d.ts +102 -0
  404. package/dist/esm/modules/models/model.module.d.ts.map +1 -0
  405. package/dist/esm/modules/models/model.module.js +75 -0
  406. package/dist/esm/modules/models/model.module.js.map +1 -0
  407. package/dist/esm/modules/models/openai.d.ts +16 -0
  408. package/dist/esm/modules/models/openai.d.ts.map +1 -0
  409. package/dist/esm/modules/models/openai.js +110 -0
  410. package/dist/esm/modules/models/openai.js.map +1 -0
  411. package/dist/esm/package.json +1 -0
  412. package/dist/esm/router/a2a/executor.d.ts +11 -0
  413. package/dist/esm/router/a2a/executor.d.ts.map +1 -0
  414. package/dist/esm/router/a2a/executor.js +92 -0
  415. package/dist/esm/router/a2a/executor.js.map +1 -0
  416. package/dist/esm/router/a2a/requestHandler.d.ts +9 -0
  417. package/dist/esm/router/a2a/requestHandler.d.ts.map +1 -0
  418. package/dist/esm/router/a2a/requestHandler.js +16 -0
  419. package/dist/esm/router/a2a/requestHandler.js.map +1 -0
  420. package/dist/esm/router/a2a/router.d.ts +12 -0
  421. package/dist/esm/router/a2a/router.d.ts.map +1 -0
  422. package/dist/esm/router/a2a/router.js +95 -0
  423. package/dist/esm/router/a2a/router.js.map +1 -0
  424. package/dist/esm/routes/a2a.routes.d.ts +12 -0
  425. package/dist/esm/routes/a2a.routes.d.ts.map +1 -0
  426. package/dist/esm/routes/a2a.routes.js +25 -0
  427. package/dist/esm/routes/a2a.routes.js.map +1 -0
  428. package/dist/esm/routes/api/models.routes.d.ts +4 -0
  429. package/dist/esm/routes/api/models.routes.d.ts.map +1 -0
  430. package/dist/esm/routes/api/models.routes.js +10 -0
  431. package/dist/esm/routes/api/models.routes.js.map +1 -0
  432. package/dist/esm/routes/api/sessions.routes.d.ts +4 -0
  433. package/dist/esm/routes/api/sessions.routes.d.ts.map +1 -0
  434. package/dist/esm/routes/api/sessions.routes.js +10 -0
  435. package/dist/esm/routes/api/sessions.routes.js.map +1 -0
  436. package/dist/esm/routes/api.routes.d.ts +4 -0
  437. package/dist/esm/routes/api.routes.d.ts.map +1 -0
  438. package/dist/esm/routes/api.routes.js +12 -0
  439. package/dist/esm/routes/api.routes.js.map +1 -0
  440. package/dist/esm/routes/index.d.ts +5 -0
  441. package/dist/esm/routes/index.d.ts.map +1 -0
  442. package/dist/esm/routes/index.js +5 -0
  443. package/dist/esm/routes/index.js.map +1 -0
  444. package/dist/esm/routes/query.routes.d.ts +4 -0
  445. package/dist/esm/routes/query.routes.d.ts.map +1 -0
  446. package/dist/esm/routes/query.routes.js +11 -0
  447. package/dist/esm/routes/query.routes.js.map +1 -0
  448. package/dist/esm/services/a2a.service.d.ts +15 -0
  449. package/dist/esm/services/a2a.service.d.ts.map +1 -0
  450. package/dist/esm/services/a2a.service.js +89 -0
  451. package/dist/esm/services/a2a.service.js.map +1 -0
  452. package/dist/esm/services/query.service.d.ts +57 -0
  453. package/dist/esm/services/query.service.d.ts.map +1 -0
  454. package/dist/esm/services/query.service.js +154 -0
  455. package/dist/esm/services/query.service.js.map +1 -0
  456. package/dist/esm/session/BaseSession.d.ts +21 -0
  457. package/dist/esm/session/BaseSession.d.ts.map +1 -0
  458. package/dist/esm/session/BaseSession.js +9 -0
  459. package/dist/esm/session/BaseSession.js.map +1 -0
  460. package/dist/esm/types/fol.d.ts +38 -0
  461. package/dist/esm/types/fol.d.ts.map +1 -0
  462. package/dist/esm/types/fol.js +2 -0
  463. package/dist/esm/types/fol.js.map +1 -0
  464. package/dist/esm/types/index.d.ts +44 -0
  465. package/dist/esm/types/index.d.ts.map +1 -0
  466. package/dist/esm/types/index.js +2 -0
  467. package/dist/esm/types/index.js.map +1 -0
  468. package/dist/esm/types/mcp.d.ts +5 -0
  469. package/dist/esm/types/mcp.d.ts.map +1 -0
  470. package/dist/esm/types/mcp.js +2 -0
  471. package/dist/esm/types/mcp.js.map +1 -0
  472. package/dist/esm/types/memory.d.ts +73 -0
  473. package/dist/esm/types/memory.d.ts.map +1 -0
  474. package/dist/esm/types/memory.js +13 -0
  475. package/dist/esm/types/memory.js.map +1 -0
  476. package/dist/esm/types/tool.d.ts +87 -0
  477. package/dist/esm/types/tool.d.ts.map +1 -0
  478. package/dist/esm/types/tool.js +11 -0
  479. package/dist/esm/types/tool.js.map +1 -0
  480. package/dist/esm/utils/logger.d.ts +13 -0
  481. package/dist/esm/utils/logger.d.ts.map +1 -0
  482. package/dist/esm/utils/logger.js +32 -0
  483. package/dist/esm/utils/logger.js.map +1 -0
  484. package/package.json +63 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.module.d.ts","sourceRoot":"","sources":["../../../../src/modules/mcp/mcp.module.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,SAAS;IACrB,wDAAwD;IACxD,OAAO,CAAC,MAAM,CAAkC;IAChD,2DAA2D;IAC3D,OAAO,CAAC,YAAY,CAAgD;IACpE,+DAA+D;IAC/D,OAAO,CAAC,KAAK,CAAiB;IAE9B;;;;;;;;;OASG;IACG,YAAY,CAAC,SAAS,EAAE,SAAS;IA4BvC;;;;OAIG;IACH,QAAQ;IAIR;;;;;;;OAOG;IACG,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAqBvD;;;;;OAKG;IACG,OAAO;CAKb"}
@@ -0,0 +1,114 @@
1
+ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
2
+ import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
3
+ import { loggers } from "../../utils/logger.js";
4
+ import { MCPTool } from "./mcp.tool.js";
5
+ /**
6
+ * Module for managing Model Context Protocol (MCP) server connections.
7
+ *
8
+ * This module handles the lifecycle of MCP client connections, discovers
9
+ * available tools from connected servers, and provides an interface for
10
+ * executing those tools. Multiple MCP servers can be connected simultaneously.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const mcpModule = new MCPModule();
15
+ * await mcpModule.addMCPConfig({
16
+ * "filesystem": {
17
+ * command: "npx",
18
+ * args: ["@modelcontextprotocol/server-filesystem", "/path/to/files"]
19
+ * }
20
+ * });
21
+ *
22
+ * const tools = mcpModule.getTools();
23
+ * const result = await mcpModule.useTool(tools[0], { path: "/example.txt" });
24
+ * ```
25
+ */
26
+ export class MCPModule {
27
+ constructor() {
28
+ /** Map of MCP server names to their client instances */
29
+ this.mcpMap = new Map();
30
+ /** Map of MCP server names to their transport instances */
31
+ this.transportMap = new Map();
32
+ /** Array of all discovered tools from connected MCP servers */
33
+ this.tools = [];
34
+ }
35
+ /**
36
+ * Connects to MCP servers based on the provided configuration.
37
+ *
38
+ * For each server in the config, establishes a connection, discovers
39
+ * available tools, and adds them to the module's tool collection.
40
+ * Skips servers that are already connected.
41
+ *
42
+ * @param mcpConfig - Configuration object mapping server names to connection details
43
+ * @throws Error if connection to any MCP server fails
44
+ */
45
+ async addMCPConfig(mcpConfig) {
46
+ try {
47
+ for (const [name, conf] of Object.entries(mcpConfig)) {
48
+ // FIXME(yoojin): Need strict duplication check.
49
+ if (this.mcpMap.get(name) && this.transportMap.get(name))
50
+ continue; // Duplicated mcp: skip
51
+ const transport = new StdioClientTransport(conf);
52
+ this.transportMap.set(name, transport);
53
+ const mcp = new Client({ name: "mcp-client-cli", version: "1.0.0" });
54
+ await mcp.connect(transport);
55
+ this.mcpMap.set(name, mcp);
56
+ const toolsResult = await mcp.listTools();
57
+ this.tools.push(...toolsResult.tools.map((tool) => {
58
+ return new MCPTool(name, tool);
59
+ }));
60
+ }
61
+ loggers.mcp.info("Connected to MCP server with tools:", {
62
+ tools: this.tools.map((tool) => tool.id),
63
+ });
64
+ }
65
+ catch (error) {
66
+ loggers.mcp.error("Failed to connect to MCP server:", { error });
67
+ throw error;
68
+ }
69
+ }
70
+ /**
71
+ * Returns all available tools from connected MCP servers.
72
+ *
73
+ * @returns Array of MCPTool instances representing available tools
74
+ */
75
+ getTools() {
76
+ return this.tools;
77
+ }
78
+ /**
79
+ * Executes a tool on its corresponding MCP server.
80
+ *
81
+ * @param tool - The MCPTool instance to execute
82
+ * @param _args - Arguments to pass to the tool
83
+ * @returns Promise resolving to the tool's execution result
84
+ * @throws Error if the MCP server for the tool is not found
85
+ */
86
+ async useTool(tool, _args) {
87
+ const { serverName, mcpTool } = tool;
88
+ const toolName = mcpTool.name;
89
+ const mcp = this.mcpMap.get(serverName);
90
+ if (!mcp) {
91
+ throw new Error(`Invalid MCP Tool ${serverName}-${mcpTool.name}`);
92
+ }
93
+ const result = await mcp.callTool({
94
+ name: toolName,
95
+ arguments: _args,
96
+ });
97
+ const toolResult = `[Bot Called Tool ${toolName} with args ${JSON.stringify(_args)}]\n` +
98
+ JSON.stringify(result.content, null, 2);
99
+ loggers.mcp.debug("MCP useTool result:", toolResult);
100
+ return result;
101
+ }
102
+ /**
103
+ * Closes all MCP client connections.
104
+ *
105
+ * Should be called when shutting down the application to ensure
106
+ * all MCP connections are properly closed.
107
+ */
108
+ async cleanup() {
109
+ this.mcpMap.forEach((mcp) => {
110
+ mcp.close();
111
+ });
112
+ }
113
+ }
114
+ //# sourceMappingURL=mcp.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.module.js","sourceRoot":"","sources":["../../../../src/modules/mcp/mcp.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { Tool } from "@modelcontextprotocol/sdk/types.js";
2
+ import { type IMCPTool, TOOL_PROTOCOL_TYPE } from "../../types/tool.js";
3
+ export declare class MCPTool implements IMCPTool {
4
+ id: string;
5
+ protocol: TOOL_PROTOCOL_TYPE;
6
+ enabled: boolean;
7
+ mcpTool: Tool;
8
+ serverName: string;
9
+ constructor(serverName: string, tool: Tool);
10
+ enable(): void;
11
+ disable(): void;
12
+ }
13
+ //# sourceMappingURL=mcp.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.tool.d.ts","sourceRoot":"","sources":["../../../../src/modules/mcp/mcp.tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,KAAK,QAAQ,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEpE,qBAAa,OAAQ,YAAW,QAAQ;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,IAAI,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;gBAEd,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI;IASnC,MAAM,IAAI,IAAI;IAId,OAAO,IAAI,IAAI;CAGtB"}
@@ -0,0 +1,18 @@
1
+ import { TOOL_PROTOCOL_TYPE } from "../../types/tool.js";
2
+ export class MCPTool {
3
+ constructor(serverName, tool) {
4
+ this.id = `${serverName}_${tool.name}`;
5
+ this.protocol = TOOL_PROTOCOL_TYPE.MCP;
6
+ this.enabled = true;
7
+ // NOTE(yoojin): MCP Server name. ex) notionApi
8
+ this.serverName = serverName;
9
+ this.mcpTool = tool;
10
+ }
11
+ enable() {
12
+ this.enabled = true;
13
+ }
14
+ disable() {
15
+ this.enabled = false;
16
+ }
17
+ }
18
+ //# sourceMappingURL=mcp.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.tool.js","sourceRoot":"","sources":["../../../../src/modules/mcp/mcp.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEpE,MAAM,OAAO,OAAO;IAOnB,YAAY,UAAkB,EAAE,IAAU;QACzC,IAAI,CAAC,EAAE,GAAG,GAAG,UAAU,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,+CAA+C;QAC/C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,MAAM;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,OAAO;QACb,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC;CACD"}
@@ -0,0 +1,14 @@
1
+ /*******************************************
2
+ * WARNING: FOR TESTING PURPOSES ONLY *
3
+ * DO NOT USE IN PRODUCTION *
4
+ *******************************************/
5
+ import type { ChatObject, SessionObject } from "../../types/memory.js";
6
+ import { BaseMemory } from "./memory.module.js";
7
+ export declare class InMemoryMemory extends BaseMemory {
8
+ sessionHistory: Map<string, SessionObject>;
9
+ constructor();
10
+ getSessionHistory(sessionId: string): Promise<SessionObject>;
11
+ updateSessionHistory(sessionId: string, chat: ChatObject): Promise<void>;
12
+ storeQueryAndIntent(query: string, intent: string, sessionId: string): Promise<void>;
13
+ }
14
+ //# sourceMappingURL=inmemory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inmemory.d.ts","sourceRoot":"","sources":["../../../../src/modules/memory/inmemory.ts"],"names":[],"mappings":"AAAA;;;6CAG6C;AAG7C,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,qBAAa,cAAe,SAAQ,UAAU;IACtC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;;IAOrC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI5D,oBAAoB,CAChC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,UAAU,GACd,OAAO,CAAC,IAAI,CAAC;IAOH,mBAAmB,CAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM;CAElB"}
@@ -0,0 +1,23 @@
1
+ /*******************************************
2
+ * WARNING: FOR TESTING PURPOSES ONLY *
3
+ * DO NOT USE IN PRODUCTION *
4
+ *******************************************/
5
+ import { randomUUID } from "node:crypto";
6
+ import { BaseMemory } from "./memory.module.js";
7
+ export class InMemoryMemory extends BaseMemory {
8
+ constructor() {
9
+ super();
10
+ this.sessionHistory = new Map();
11
+ }
12
+ async getSessionHistory(sessionId) {
13
+ return this.sessionHistory.get(sessionId) || { chats: {} };
14
+ }
15
+ async updateSessionHistory(sessionId, chat) {
16
+ const newChatId = randomUUID();
17
+ const history = await this.getSessionHistory(sessionId);
18
+ history.chats[newChatId] = chat;
19
+ this.sessionHistory.set(sessionId, history);
20
+ }
21
+ async storeQueryAndIntent(query, intent, sessionId) { }
22
+ }
23
+ //# sourceMappingURL=inmemory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inmemory.js","sourceRoot":"","sources":["../../../../src/modules/memory/inmemory.ts"],"names":[],"mappings":"AAAA;;;6CAG6C;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,OAAO,cAAe,SAAQ,UAAU;IAG7C;QACC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAyB,CAAC;IACxD,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QAC/C,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC5D,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAChC,SAAiB,EACjB,IAAgB;QAEhB,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACxD,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAC/B,KAAa,EACb,MAAc,EACd,SAAiB,IACf,CAAC;CACJ"}
@@ -0,0 +1,65 @@
1
+ import type { ChatObject, SessionObject } from "../../types/memory.js";
2
+ /**
3
+ * Abstract base class for memory storage implementations.
4
+ *
5
+ * Provides an interface for storing and retrieving conversation history
6
+ * and query-intent pairs. Implementations can use various backends
7
+ * such as in-memory storage, databases, or file systems.
8
+ */
9
+ export declare abstract class BaseMemory {
10
+ /**
11
+ * Retrieves the conversation history for a specific session.
12
+ *
13
+ * @param sessionId - Unique identifier for the session
14
+ * @returns Promise resolving to the session's conversation history
15
+ */
16
+ abstract getSessionHistory(sessionId: string): Promise<SessionObject>;
17
+ /**
18
+ * Adds a new chat message to the session history.
19
+ *
20
+ * @param sessionId - Unique identifier for the session
21
+ * @param chat - The chat object to add to the history
22
+ */
23
+ abstract updateSessionHistory(sessionId: string, chat: ChatObject): Promise<void>;
24
+ /**
25
+ * Stores a query-intent pair for analysis or training purposes.
26
+ *
27
+ * @param query - The user's input query
28
+ * @param intent - The detected intent for the query
29
+ * @param sessionId - Unique identifier for the session
30
+ */
31
+ abstract storeQueryAndIntent(query: string, intent: string, sessionId: string): Promise<void>;
32
+ }
33
+ /**
34
+ * Module wrapper for memory storage implementations.
35
+ *
36
+ * Provides a consistent interface for accessing memory storage
37
+ * functionality throughout the application. Currently supports
38
+ * a single memory implementation but designed for future extensibility.
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * const inMemoryStorage = new InMemoryStorage();
43
+ * const memoryModule = new MemoryModule(inMemoryStorage);
44
+ *
45
+ * const memory = memoryModule.getMemory();
46
+ * await memory.updateSessionHistory("session-123", chatMessage);
47
+ * ```
48
+ */
49
+ export declare class MemoryModule {
50
+ /** The memory storage implementation */
51
+ private memory;
52
+ /**
53
+ * Creates a new MemoryModule with the specified storage implementation.
54
+ *
55
+ * @param memory - The memory storage implementation to use
56
+ */
57
+ constructor(memory: BaseMemory);
58
+ /**
59
+ * Returns the current memory storage implementation.
60
+ *
61
+ * @returns The active memory storage instance
62
+ */
63
+ getMemory(): BaseMemory;
64
+ }
65
+ //# sourceMappingURL=memory.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.module.d.ts","sourceRoot":"","sources":["../../../../src/modules/memory/memory.module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;;;;GAMG;AACH,8BAAsB,UAAU;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IACrE;;;;;OAKG;IACH,QAAQ,CAAC,oBAAoB,CAC5B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,UAAU,GACd,OAAO,CAAC,IAAI,CAAC;IAChB;;;;;;OAMG;IACH,QAAQ,CAAC,mBAAmB,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;CAChB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,YAAY;IACxB,wCAAwC;IACxC,OAAO,CAAC,MAAM,CAAa;IAE3B;;;;OAIG;gBACS,MAAM,EAAE,UAAU;IAI9B;;;;OAIG;IACI,SAAS;CAIhB"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Abstract base class for memory storage implementations.
3
+ *
4
+ * Provides an interface for storing and retrieving conversation history
5
+ * and query-intent pairs. Implementations can use various backends
6
+ * such as in-memory storage, databases, or file systems.
7
+ */
8
+ export class BaseMemory {
9
+ }
10
+ /**
11
+ * Module wrapper for memory storage implementations.
12
+ *
13
+ * Provides a consistent interface for accessing memory storage
14
+ * functionality throughout the application. Currently supports
15
+ * a single memory implementation but designed for future extensibility.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const inMemoryStorage = new InMemoryStorage();
20
+ * const memoryModule = new MemoryModule(inMemoryStorage);
21
+ *
22
+ * const memory = memoryModule.getMemory();
23
+ * await memory.updateSessionHistory("session-123", chatMessage);
24
+ * ```
25
+ */
26
+ export class MemoryModule {
27
+ /**
28
+ * Creates a new MemoryModule with the specified storage implementation.
29
+ *
30
+ * @param memory - The memory storage implementation to use
31
+ */
32
+ constructor(memory) {
33
+ this.memory = memory;
34
+ }
35
+ /**
36
+ * Returns the current memory storage implementation.
37
+ *
38
+ * @returns The active memory storage instance
39
+ */
40
+ getMemory() {
41
+ // TODO: Support multi-memory for each type of memory?
42
+ return this.memory;
43
+ }
44
+ }
45
+ //# sourceMappingURL=memory.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.module.js","sourceRoot":"","sources":["../../../../src/modules/memory/memory.module.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,OAAgB,UAAU;CA8B/B;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,YAAY;IAIxB;;;;OAIG;IACH,YAAY,MAAkB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACI,SAAS;QACf,sDAAsD;QACtD,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;CACD"}
@@ -0,0 +1,16 @@
1
+ import { type Content, type FunctionDeclaration } from "@google/genai";
2
+ import { type SessionObject } from "../../types/memory.js";
3
+ import type { FetchResponse, IAgentTool } from "../../types/tool.js";
4
+ import { BaseModel } from "./model.module.js";
5
+ export declare class GeminiModel extends BaseModel<Content, FunctionDeclaration> {
6
+ private client;
7
+ private modelName;
8
+ constructor(apiKey: string, modelName: string);
9
+ private getMessageRole;
10
+ generateMessages(sessionHistory: SessionObject, query: string, systemPrompt?: string): Content[];
11
+ appendMessages(messages: Content[], message: string): void;
12
+ fetch(messages: Content[]): Promise<FetchResponse>;
13
+ fetchWithContextMessage(messages: Content[], functions: FunctionDeclaration[]): Promise<FetchResponse>;
14
+ convertToolsToFunctions(tools: IAgentTool[]): FunctionDeclaration[];
15
+ }
16
+ //# sourceMappingURL=gemini.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../../src/modules/models/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,OAAO,EAEZ,KAAK,mBAAmB,EAExB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EACX,aAAa,EAEb,UAAU,EAGV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,qBAAa,WAAY,SAAQ,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACvE,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAM7C,OAAO,CAAC,cAAc;IAYtB,gBAAgB,CACf,cAAc,EAAE,aAAa,EAC7B,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM,GACnB,OAAO,EAAE;IAkBZ,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAOpD,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IASlD,uBAAuB,CAC5B,QAAQ,EAAE,OAAO,EAAE,EACnB,SAAS,EAAE,mBAAmB,EAAE,GAC9B,OAAO,CAAC,aAAa,CAAC;IAiCzB,uBAAuB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,mBAAmB,EAAE;CAwBnE"}
@@ -0,0 +1,104 @@
1
+ import { GoogleGenAI, } from "@google/genai";
2
+ import { ChatRole } from "../../types/memory.js";
3
+ import { TOOL_PROTOCOL_TYPE } from "../../types/tool.js";
4
+ import { BaseModel } from "./model.module.js";
5
+ export class GeminiModel extends BaseModel {
6
+ constructor(apiKey, modelName) {
7
+ super();
8
+ this.client = new GoogleGenAI({ apiKey });
9
+ this.modelName = modelName;
10
+ }
11
+ getMessageRole(role) {
12
+ switch (role) {
13
+ case ChatRole.USER:
14
+ return "user";
15
+ case ChatRole.MODEL:
16
+ case ChatRole.SYSTEM:
17
+ return "model";
18
+ default:
19
+ return "model"; /*FIXME*/
20
+ }
21
+ }
22
+ generateMessages(sessionHistory, query, systemPrompt) {
23
+ const messages = !systemPrompt
24
+ ? []
25
+ : [{ role: "model", parts: [{ text: systemPrompt.trim() }] }];
26
+ const sessionContent = Object.keys(sessionHistory.chats).map((chatId) => {
27
+ const chat = sessionHistory.chats[chatId];
28
+ // TODO: check message.content.type
29
+ return {
30
+ role: this.getMessageRole(chat.role),
31
+ parts: [{ text: chat.content.parts[0] }],
32
+ };
33
+ });
34
+ const userContent = { role: "user", parts: [{ text: query }] };
35
+ return messages.concat(sessionContent).concat(userContent);
36
+ }
37
+ appendMessages(messages, message) {
38
+ messages.push({
39
+ role: "user",
40
+ parts: [{ text: message }],
41
+ });
42
+ }
43
+ async fetch(messages) {
44
+ const response = await this.client.models.generateContent({
45
+ model: this.modelName,
46
+ contents: messages,
47
+ });
48
+ return { content: response.text };
49
+ }
50
+ async fetchWithContextMessage(messages, functions) {
51
+ if (functions.length > 0) {
52
+ const response = await this.client.models.generateContent({
53
+ model: this.modelName,
54
+ contents: messages,
55
+ config: {
56
+ tools: [{ functionDeclarations: functions }],
57
+ },
58
+ });
59
+ const { text, functionCalls } = response;
60
+ const hasName = (value) => {
61
+ return value.name !== undefined;
62
+ };
63
+ const toolCalls = functionCalls
64
+ ?.filter(hasName)
65
+ .map((value) => {
66
+ return {
67
+ name: value.name,
68
+ arguments: value.args,
69
+ };
70
+ });
71
+ return {
72
+ content: text,
73
+ toolCalls,
74
+ };
75
+ }
76
+ return await this.fetch(messages);
77
+ }
78
+ convertToolsToFunctions(tools) {
79
+ const functions = [];
80
+ for (const tool of tools) {
81
+ if (!tool.enabled) {
82
+ continue;
83
+ }
84
+ if (tool.protocol === TOOL_PROTOCOL_TYPE.MCP) {
85
+ const { mcpTool, id } = tool;
86
+ functions.push({
87
+ name: id,
88
+ description: mcpTool.description,
89
+ parametersJsonSchema: mcpTool.inputSchema,
90
+ });
91
+ }
92
+ else {
93
+ // PROTOCOL_TYPE.A2A
94
+ const { id, card } = tool;
95
+ functions.push({
96
+ name: id,
97
+ description: card.description,
98
+ });
99
+ }
100
+ }
101
+ return functions;
102
+ }
103
+ }
104
+ //# sourceMappingURL=gemini.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../../src/modules/models/gemini.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ import type { SessionObject } from "../../types/memory.js";
2
+ import type { FetchResponse, IAgentTool } from "../../types/tool.js";
3
+ /**
4
+ * Abstract base class for AI model implementations.
5
+ *
6
+ * Provides a common interface for different AI model providers (OpenAI, Gemini, etc.)
7
+ * to integrate with the AIN-ADK framework. Each model implementation must handle
8
+ * message formatting, tool conversion, and API communication.
9
+ *
10
+ * @typeParam MessageType - The message format used by the specific model API
11
+ * @typeParam FunctionType - The function/tool format used by the specific model API
12
+ */
13
+ export declare abstract class BaseModel<MessageType, FunctionType> {
14
+ /**
15
+ * Generates an array of messages from session history and current query.
16
+ *
17
+ * @param sessionHistory - Previous conversation history
18
+ * @param query - Current user query
19
+ * @param systemPrompt - Optional system prompt to set context
20
+ * @returns Array of messages formatted for the specific model API
21
+ */
22
+ abstract generateMessages(sessionHistory: SessionObject, query: string, systemPrompt?: string): MessageType[];
23
+ /**
24
+ * Appends a new message to the existing message array.
25
+ *
26
+ * @param messages - Existing message array to expand
27
+ * @param message - New message content to append
28
+ */
29
+ abstract appendMessages(messages: MessageType[], message: string): void;
30
+ /**
31
+ * Converts protocol-agnostic tools to model-specific function format.
32
+ *
33
+ * @param tools - Array of agent tools from MCP or A2A sources
34
+ * @returns Array of functions in the format required by the model API
35
+ */
36
+ abstract convertToolsToFunctions(tools: IAgentTool[]): FunctionType[];
37
+ /**
38
+ * Fetches a response from the model API without tool support.
39
+ *
40
+ * @param messages - Array of messages to send to the model
41
+ * @returns Promise resolving to the model's response
42
+ */
43
+ abstract fetch(messages: MessageType[]): Promise<FetchResponse>;
44
+ /**
45
+ * Fetches a response from the model API with tool/function support.
46
+ *
47
+ * @param messages - Array of messages to send to the model
48
+ * @param functions - Array of available functions/tools the model can call
49
+ * @returns Promise resolving to the model's response, possibly including tool calls
50
+ */
51
+ abstract fetchWithContextMessage(messages: MessageType[], functions: FunctionType[]): Promise<FetchResponse>;
52
+ }
53
+ /**
54
+ * Module for managing multiple AI model implementations.
55
+ *
56
+ * Allows registration of multiple models and provides a unified interface
57
+ * for accessing them. Supports setting a default model for convenience.
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * const modelModule = new ModelModule();
62
+ * modelModule.addModel("gpt-4", new OpenAIModel("gpt-4"), true);
63
+ * modelModule.addModel("gemini", new GeminiModel("gemini-pro"));
64
+ *
65
+ * const defaultModel = modelModule.getModel();
66
+ * const specificModel = modelModule.getModel("gemini");
67
+ * ```
68
+ */
69
+ export declare class ModelModule {
70
+ /** Registry of available models indexed by name */
71
+ private models;
72
+ /** Name of the default model to use when none specified */
73
+ private defaultModelName?;
74
+ /**
75
+ * Registers a new model with the module.
76
+ *
77
+ * @param name - Unique identifier for the model
78
+ * @param model - Model instance implementing BaseModel
79
+ * @param isDefault - Whether to set this as the default model
80
+ */
81
+ addModel(name: string, model: BaseModel<unknown, unknown>, isDefault?: boolean): void;
82
+ /**
83
+ * Retrieves a model by name or returns the default model.
84
+ *
85
+ * @param name - Optional model name to retrieve
86
+ * @returns The requested model or default model if name not provided
87
+ * @throws Error if no default model is set and name is not provided
88
+ */
89
+ getModel(name?: string): BaseModel<unknown, unknown>;
90
+ /**
91
+ * Returns information about all registered models.
92
+ *
93
+ * @returns Object containing all models and the default model name
94
+ */
95
+ getModelList(): {
96
+ models: {
97
+ [name: string]: BaseModel<unknown, unknown>;
98
+ };
99
+ defaultModelName: string | undefined;
100
+ };
101
+ }
102
+ //# sourceMappingURL=model.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.module.d.ts","sourceRoot":"","sources":["../../../../src/modules/models/model.module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEjE;;;;;;;;;GASG;AACH,8BAAsB,SAAS,CAAC,WAAW,EAAE,YAAY;IACxD;;;;;;;OAOG;IACH,QAAQ,CAAC,gBAAgB,CACxB,cAAc,EAAE,aAAa,EAC7B,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM,GACnB,WAAW,EAAE;IAEhB;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAEvE;;;;;OAKG;IACH,QAAQ,CAAC,uBAAuB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE;IAErE;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAE/D;;;;;;OAMG;IACH,QAAQ,CAAC,uBAAuB,CAC/B,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,EAAE,YAAY,EAAE,GACvB,OAAO,CAAC,aAAa,CAAC;CACzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,WAAW;IACvB,mDAAmD;IACnD,OAAO,CAAC,MAAM,CAAuD;IACrE,2DAA2D;IAC3D,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAElC;;;;;;OAMG;IACI,QAAQ,CACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,EAClC,SAAS,CAAC,EAAE,OAAO;IAQpB;;;;;;OAMG;IACI,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAW3D;;;;OAIG;IACI,YAAY;;;;;;CAMnB"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Abstract base class for AI model implementations.
3
+ *
4
+ * Provides a common interface for different AI model providers (OpenAI, Gemini, etc.)
5
+ * to integrate with the AIN-ADK framework. Each model implementation must handle
6
+ * message formatting, tool conversion, and API communication.
7
+ *
8
+ * @typeParam MessageType - The message format used by the specific model API
9
+ * @typeParam FunctionType - The function/tool format used by the specific model API
10
+ */
11
+ export class BaseModel {
12
+ }
13
+ /**
14
+ * Module for managing multiple AI model implementations.
15
+ *
16
+ * Allows registration of multiple models and provides a unified interface
17
+ * for accessing them. Supports setting a default model for convenience.
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const modelModule = new ModelModule();
22
+ * modelModule.addModel("gpt-4", new OpenAIModel("gpt-4"), true);
23
+ * modelModule.addModel("gemini", new GeminiModel("gemini-pro"));
24
+ *
25
+ * const defaultModel = modelModule.getModel();
26
+ * const specificModel = modelModule.getModel("gemini");
27
+ * ```
28
+ */
29
+ export class ModelModule {
30
+ constructor() {
31
+ /** Registry of available models indexed by name */
32
+ this.models = {};
33
+ }
34
+ /**
35
+ * Registers a new model with the module.
36
+ *
37
+ * @param name - Unique identifier for the model
38
+ * @param model - Model instance implementing BaseModel
39
+ * @param isDefault - Whether to set this as the default model
40
+ */
41
+ addModel(name, model, isDefault) {
42
+ this.models[name] = model;
43
+ if (isDefault || !this.defaultModelName) {
44
+ this.defaultModelName = name;
45
+ }
46
+ }
47
+ /**
48
+ * Retrieves a model by name or returns the default model.
49
+ *
50
+ * @param name - Optional model name to retrieve
51
+ * @returns The requested model or default model if name not provided
52
+ * @throws Error if no default model is set and name is not provided
53
+ */
54
+ getModel(name) {
55
+ if (!this.defaultModelName) {
56
+ throw Error("No default model");
57
+ }
58
+ if (!name || !this.models[name]) {
59
+ return this.models[this.defaultModelName];
60
+ }
61
+ return this.models[name];
62
+ }
63
+ /**
64
+ * Returns information about all registered models.
65
+ *
66
+ * @returns Object containing all models and the default model name
67
+ */
68
+ getModelList() {
69
+ return {
70
+ models: this.models,
71
+ defaultModelName: this.defaultModelName,
72
+ };
73
+ }
74
+ }
75
+ //# sourceMappingURL=model.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.module.js","sourceRoot":"","sources":["../../../../src/modules/models/model.module.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,MAAM,OAAgB,SAAS;CAkD9B;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,WAAW;IAAxB;QACC,mDAAmD;QAC3C,WAAM,GAAoD,EAAE,CAAC;IAmDtE,CAAC;IA/CA;;;;;;OAMG;IACI,QAAQ,CACd,IAAY,EACZ,KAAkC,EAClC,SAAmB;QAEnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC1B,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC9B,CAAC;IACF,CAAC;IAED;;;;;;OAMG;IACI,QAAQ,CAAC,IAAa;QAC5B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC5B,MAAM,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACI,YAAY;QAClB,OAAO;YACN,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SACvC,CAAC;IACH,CAAC;CACD"}