@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,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const openai_1 = require("openai");
4
+ const types_js_1 = require("../intent/modules/common/types.js");
5
+ const BaseSession_js_1 = require("../session/BaseSession.js");
6
+ const BaseModel_js_1 = require("./BaseModel.js");
7
+ class AzureOpenAI extends BaseModel_js_1.BaseModel {
8
+ constructor(baseUrl, apiKey, apiVersion, modelName) {
9
+ super();
10
+ this.client = new openai_1.AzureOpenAI({
11
+ baseURL: baseUrl,
12
+ apiKey: apiKey,
13
+ apiVersion: apiVersion,
14
+ });
15
+ this.modelName = modelName;
16
+ }
17
+ getMessageRole(role) {
18
+ switch (role) {
19
+ case BaseSession_js_1.ChatRole.USER:
20
+ return "user";
21
+ case BaseSession_js_1.ChatRole.MODEL:
22
+ case BaseSession_js_1.ChatRole.SYSTEM:
23
+ return "system";
24
+ default:
25
+ return "system"; /*FIXME*/
26
+ }
27
+ }
28
+ generateMessages(sessionHistory, query, systemPrompt) {
29
+ const messages = !systemPrompt
30
+ ? []
31
+ : [{ role: "system", content: systemPrompt.trim() }];
32
+ const sessionContent = Object.keys(sessionHistory).map((messageId) => {
33
+ const message = sessionHistory[messageId];
34
+ return {
35
+ role: this.getMessageRole(message.role),
36
+ content: message.content.parts[0],
37
+ };
38
+ });
39
+ const userContent = { role: "user", content: query };
40
+ return messages.concat(sessionContent).concat(userContent);
41
+ }
42
+ expandMessages(messages, message) {
43
+ messages.push({
44
+ role: "user",
45
+ content: message,
46
+ });
47
+ }
48
+ async fetch(messages) {
49
+ const response = await this.client.chat.completions.create({
50
+ model: this.modelName,
51
+ messages,
52
+ });
53
+ return {
54
+ content: response.choices[0].message.content || undefined,
55
+ };
56
+ }
57
+ async fetchWithContextMessage(messages, functions) {
58
+ if (functions.length > 0) {
59
+ const response = await this.client.chat.completions.create({
60
+ model: this.modelName,
61
+ messages,
62
+ tools: functions,
63
+ tool_choice: "auto",
64
+ });
65
+ const { content, tool_calls } = response.choices[0].message;
66
+ const toolCalls = tool_calls?.map((value) => {
67
+ return {
68
+ name: value.function.name,
69
+ // FIXME: value.function.arguments could not be a valid JSON
70
+ arguments: JSON.parse(value.function.arguments),
71
+ };
72
+ });
73
+ return {
74
+ content: content || undefined,
75
+ toolCalls,
76
+ };
77
+ }
78
+ return await this.fetch(messages);
79
+ }
80
+ convertToolsToFunctions(tools) {
81
+ const functions = [];
82
+ for (const tool of tools) {
83
+ if (!tool.enabled) {
84
+ continue;
85
+ }
86
+ if (tool.protocol === types_js_1.PROTOCOL_TYPE.MCP) {
87
+ const { mcpTool, id } = tool;
88
+ functions.push({
89
+ type: "function",
90
+ function: {
91
+ name: id,
92
+ description: mcpTool.description,
93
+ parameters: mcpTool.inputSchema,
94
+ },
95
+ });
96
+ }
97
+ else {
98
+ // PROTOCOL_TYPE.A2A
99
+ const { id, card } = tool;
100
+ functions.push({
101
+ type: "function",
102
+ function: {
103
+ name: id,
104
+ description: card.description,
105
+ },
106
+ });
107
+ }
108
+ }
109
+ return functions;
110
+ }
111
+ }
112
+ exports.default = AzureOpenAI;
113
+ //# sourceMappingURL=openai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/models/openai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import { type Message } from "@a2a-js/sdk";
2
+ import { A2ATool } from "./a2a.tool.js";
3
+ /**
4
+ * Module for managing Agent-to-Agent (A2A) protocol connections.
5
+ *
6
+ * This module handles connections to other A2A-compatible agents, manages
7
+ * conversation sessions, and provides an interface for inter-agent communication.
8
+ * Supports multi-turn conversations with task and context tracking.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const a2aModule = new A2AModule();
13
+ * await a2aModule.addA2APeerServer("https://api.example.com/agent");
14
+ *
15
+ * const tools = await a2aModule.getTools();
16
+ * const message = a2aModule.getMessagePayload("Hello", "session-123");
17
+ * const response = await a2aModule.useTool(tools[0], message, "session-123");
18
+ * ```
19
+ */
20
+ export declare class A2AModule {
21
+ /** Map of A2A server URLs to their corresponding tool instances */
22
+ private a2aPeerServers;
23
+ /** Map of session IDs to their A2A session state */
24
+ private a2aSessions;
25
+ /**
26
+ * Registers a new A2A peer server URL for connection.
27
+ *
28
+ * @param url - The URL of the A2A-compatible agent to connect to
29
+ */
30
+ addA2APeerServer(url: string): Promise<void>;
31
+ /**
32
+ * Retrieves tools from all registered A2A peer servers.
33
+ *
34
+ * Attempts to connect to each registered server, fetch their agent cards,
35
+ * and create tool instances. Disables tools for unreachable servers.
36
+ *
37
+ * @returns Promise resolving to array of available A2A tools
38
+ */
39
+ getTools(): Promise<A2ATool[]>;
40
+ /**
41
+ * Gets or creates an A2A session for the given session ID.
42
+ *
43
+ * @param sessionId - The session identifier
44
+ * @returns A2ASession object with task and context IDs
45
+ */
46
+ private getA2ASessionWithId;
47
+ /**
48
+ * Constructs a message payload for A2A communication.
49
+ *
50
+ * Includes session context (task ID and context ID) if available
51
+ * for maintaining conversation continuity.
52
+ *
53
+ * @param query - The message content to send
54
+ * @param sessionId - The session identifier
55
+ * @returns Formatted Message object for A2A protocol
56
+ */
57
+ getMessagePayload(query: string, sessionId: string): Message;
58
+ /**
59
+ * Executes an A2A tool by sending a message to the remote agent.
60
+ *
61
+ * Handles streaming responses, maintains session state, and extracts
62
+ * text content from various event types in the response stream.
63
+ *
64
+ * @param tool - The A2ATool instance to use
65
+ * @param messagePayload - The message to send to the agent
66
+ * @param sessionId - The session identifier for context tracking
67
+ * @returns Promise resolving to array of text responses from the agent
68
+ */
69
+ useTool(tool: A2ATool, messagePayload: Message, sessionId: string): Promise<string[]>;
70
+ }
71
+ //# sourceMappingURL=a2a.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2a.module.d.ts","sourceRoot":"","sources":["../../../../src/modules/a2a/a2a.module.ts"],"names":[],"mappings":"AACA,OAAO,EAGN,KAAK,OAAO,EAKZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAYxC;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,SAAS;IACrB,mEAAmE;IACnE,OAAO,CAAC,cAAc,CAA0C;IAChE,oDAAoD;IACpD,OAAO,CAAC,WAAW,CAAsC;IAEzD;;;;OAIG;IACU,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD;;;;;;;OAOG;IACU,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAyB3C;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB,CAUzB;IAEF;;;;;;;;;OASG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IA2BnE;;;;;;;;;;OAUG;IACU,OAAO,CACnB,IAAI,EAAE,OAAO,EACb,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,EAAE,CAAC;CA2DpB"}
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.A2AModule = void 0;
4
+ const node_crypto_1 = require("node:crypto");
5
+ const sdk_1 = require("@a2a-js/sdk");
6
+ const logger_js_1 = require("../../utils/logger.js");
7
+ const a2a_tool_js_1 = require("./a2a.tool.js");
8
+ /**
9
+ * Module for managing Agent-to-Agent (A2A) protocol connections.
10
+ *
11
+ * This module handles connections to other A2A-compatible agents, manages
12
+ * conversation sessions, and provides an interface for inter-agent communication.
13
+ * Supports multi-turn conversations with task and context tracking.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const a2aModule = new A2AModule();
18
+ * await a2aModule.addA2APeerServer("https://api.example.com/agent");
19
+ *
20
+ * const tools = await a2aModule.getTools();
21
+ * const message = a2aModule.getMessagePayload("Hello", "session-123");
22
+ * const response = await a2aModule.useTool(tools[0], message, "session-123");
23
+ * ```
24
+ */
25
+ class A2AModule {
26
+ constructor() {
27
+ /** Map of A2A server URLs to their corresponding tool instances */
28
+ this.a2aPeerServers = new Map();
29
+ /** Map of session IDs to their A2A session state */
30
+ this.a2aSessions = new Map();
31
+ /**
32
+ * Gets or creates an A2A session for the given session ID.
33
+ *
34
+ * @param sessionId - The session identifier
35
+ * @returns A2ASession object with task and context IDs
36
+ */
37
+ this.getA2ASessionWithId = (sessionId) => {
38
+ const a2aSession = this.a2aSessions.get(sessionId) ?? {
39
+ taskId: undefined,
40
+ contextId: undefined,
41
+ };
42
+ if (!this.a2aSessions.has(sessionId)) {
43
+ this.a2aSessions.set(sessionId, a2aSession);
44
+ }
45
+ return a2aSession;
46
+ };
47
+ }
48
+ /**
49
+ * Registers a new A2A peer server URL for connection.
50
+ *
51
+ * @param url - The URL of the A2A-compatible agent to connect to
52
+ */
53
+ async addA2APeerServer(url) {
54
+ this.a2aPeerServers.set(url, null);
55
+ }
56
+ /**
57
+ * Retrieves tools from all registered A2A peer servers.
58
+ *
59
+ * Attempts to connect to each registered server, fetch their agent cards,
60
+ * and create tool instances. Disables tools for unreachable servers.
61
+ *
62
+ * @returns Promise resolving to array of available A2A tools
63
+ */
64
+ async getTools() {
65
+ const tools = [];
66
+ for (const url of [...this.a2aPeerServers.keys()]) {
67
+ const tool = this.a2aPeerServers.get(url);
68
+ if (!tool || !tool.enabled) {
69
+ try {
70
+ const client = new sdk_1.A2AClient(url);
71
+ const card = await client.getAgentCard();
72
+ const toolName = card.name.replaceAll(" ", "-");
73
+ const a2aTool = new a2a_tool_js_1.A2ATool(toolName, client, card);
74
+ tools.push(a2aTool);
75
+ }
76
+ catch (_error) {
77
+ // Agent not responded
78
+ if (tool) {
79
+ tool.disable();
80
+ }
81
+ }
82
+ }
83
+ else {
84
+ tools.push(tool);
85
+ }
86
+ }
87
+ return tools;
88
+ }
89
+ /**
90
+ * Constructs a message payload for A2A communication.
91
+ *
92
+ * Includes session context (task ID and context ID) if available
93
+ * for maintaining conversation continuity.
94
+ *
95
+ * @param query - The message content to send
96
+ * @param sessionId - The session identifier
97
+ * @returns Formatted Message object for A2A protocol
98
+ */
99
+ getMessagePayload(query, sessionId) {
100
+ const messagePayload = {
101
+ messageId: (0, node_crypto_1.randomUUID)(),
102
+ kind: "message",
103
+ role: "user", // FIXME: it could be 'agent'
104
+ metadata: {
105
+ sessionId,
106
+ },
107
+ parts: [
108
+ {
109
+ kind: "text",
110
+ text: query,
111
+ },
112
+ ],
113
+ };
114
+ const a2aSession = this.getA2ASessionWithId(sessionId);
115
+ if (a2aSession.taskId) {
116
+ messagePayload.taskId = a2aSession.taskId;
117
+ }
118
+ if (a2aSession.contextId) {
119
+ messagePayload.contextId = a2aSession.contextId;
120
+ }
121
+ return messagePayload;
122
+ }
123
+ /**
124
+ * Executes an A2A tool by sending a message to the remote agent.
125
+ *
126
+ * Handles streaming responses, maintains session state, and extracts
127
+ * text content from various event types in the response stream.
128
+ *
129
+ * @param tool - The A2ATool instance to use
130
+ * @param messagePayload - The message to send to the agent
131
+ * @param sessionId - The session identifier for context tracking
132
+ * @returns Promise resolving to array of text responses from the agent
133
+ */
134
+ async useTool(tool, messagePayload, sessionId) {
135
+ const finalText = [];
136
+ const client = tool.client;
137
+ const params = {
138
+ message: messagePayload,
139
+ };
140
+ const a2aSession = this.getA2ASessionWithId(sessionId);
141
+ try {
142
+ const stream = client.sendMessageStream(params);
143
+ for await (const event of stream) {
144
+ if (event.kind === "status-update") {
145
+ const typedEvent = event;
146
+ if (typedEvent.final &&
147
+ typedEvent.status.state !== "input-required") {
148
+ a2aSession.taskId = undefined;
149
+ }
150
+ // TODO: handle 'file', 'data' parts
151
+ const texts = typedEvent.status.message?.parts
152
+ .filter((part) => part.kind === "text")
153
+ .map((part) => part.text)
154
+ .join("\n");
155
+ if (texts) {
156
+ finalText.push(texts);
157
+ }
158
+ }
159
+ else if (event.kind === "message") {
160
+ // FIXME: handling text in 'message'?
161
+ const msg = event;
162
+ if (msg.taskId && msg.taskId !== a2aSession.taskId) {
163
+ a2aSession.taskId = msg.taskId;
164
+ }
165
+ if (msg.contextId && msg.contextId !== a2aSession.contextId) {
166
+ a2aSession.contextId = msg.contextId;
167
+ }
168
+ }
169
+ else if (event.kind === "task") {
170
+ // FIXME: handling text in 'task'?
171
+ const task = event;
172
+ if (task.id !== a2aSession.taskId) {
173
+ a2aSession.taskId = task.id;
174
+ }
175
+ if (task.contextId && task.contextId !== a2aSession.contextId) {
176
+ a2aSession.contextId = task.contextId;
177
+ }
178
+ }
179
+ else {
180
+ logger_js_1.loggers.a2a.warn("Received unknown event structure from stream:", {
181
+ event,
182
+ });
183
+ }
184
+ }
185
+ }
186
+ catch (error) {
187
+ logger_js_1.loggers.a2a.error("Error communicating with agent:", { error });
188
+ tool.disable();
189
+ // TODO: add failed & disabled text for next inference?
190
+ }
191
+ return finalText;
192
+ }
193
+ }
194
+ exports.A2AModule = A2AModule;
195
+ //# sourceMappingURL=a2a.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2a.module.js","sourceRoot":"","sources":["../../../../src/modules/a2a/a2a.module.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,qCAQqB;AACrB,iDAA4C;AAC5C,+CAAwC;AAYxC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAa,SAAS;IAAtB;QACC,mEAAmE;QAC3D,mBAAc,GAAgC,IAAI,GAAG,EAAE,CAAC;QAChE,oDAAoD;QAC5C,gBAAW,GAA4B,IAAI,GAAG,EAAE,CAAC;QA4CzD;;;;;WAKG;QACK,wBAAmB,GAAG,CAAC,SAAiB,EAAc,EAAE;YAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI;gBACrD,MAAM,EAAE,SAAS;gBACjB,SAAS,EAAE,SAAS;aACpB,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAC7C,CAAC;YAED,OAAO,UAAU,CAAC;QACnB,CAAC,CAAC;IAiHH,CAAC;IA3KA;;;;OAIG;IACI,KAAK,CAAC,gBAAgB,CAAC,GAAW;QACxC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,QAAQ;QACpB,MAAM,KAAK,GAAc,EAAE,CAAC;QAC5B,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACJ,MAAM,MAAM,GAAG,IAAI,eAAS,CAAC,GAAG,CAAC,CAAC;oBAClC,MAAM,IAAI,GAAc,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;oBACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBAChD,MAAM,OAAO,GAAG,IAAI,qBAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBAEpD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACrB,CAAC;gBAAC,OAAO,MAAW,EAAE,CAAC;oBACtB,sBAAsB;oBACtB,IAAI,IAAI,EAAE,CAAC;wBACV,IAAI,CAAC,OAAO,EAAE,CAAC;oBAChB,CAAC;gBACF,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACF,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAoBD;;;;;;;;;OASG;IACI,iBAAiB,CAAC,KAAa,EAAE,SAAiB;QACxD,MAAM,cAAc,GAAY;YAC/B,SAAS,EAAE,IAAA,wBAAU,GAAE;YACvB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,MAAM,EAAE,6BAA6B;YAC3C,QAAQ,EAAE;gBACT,SAAS;aACT;YACD,KAAK,EAAE;gBACN;oBACC,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,KAAK;iBACX;aACD;SACD,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACvB,cAAc,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAC3C,CAAC;QACD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YAC1B,cAAc,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACjD,CAAC;QAED,OAAO,cAAc,CAAC;IACvB,CAAC;IAED;;;;;;;;;;OAUG;IACI,KAAK,CAAC,OAAO,CACnB,IAAa,EACb,cAAuB,EACvB,SAAiB;QAEjB,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,MAAM,GAAsB;YACjC,OAAO,EAAE,cAAc;SACvB,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAEvD,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAClC,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;oBACpC,MAAM,UAAU,GAAG,KAA8B,CAAC;oBAClD,IACC,UAAU,CAAC,KAAK;wBAChB,UAAU,CAAC,MAAM,CAAC,KAAK,KAAK,gBAAgB,EAC3C,CAAC;wBACF,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;oBAC/B,CAAC;oBACD,oCAAoC;oBACpC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK;yBAC5C,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;yBACtC,GAAG,CAAC,CAAC,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;yBAClC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACb,IAAI,KAAK,EAAE,CAAC;wBACX,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvB,CAAC;gBACF,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACrC,qCAAqC;oBACrC,MAAM,GAAG,GAAG,KAAgB,CAAC;oBAC7B,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;wBACpD,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;oBAChC,CAAC;oBACD,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,KAAK,UAAU,CAAC,SAAS,EAAE,CAAC;wBAC7D,UAAU,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;oBACtC,CAAC;gBACF,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAClC,kCAAkC;oBAClC,MAAM,IAAI,GAAG,KAAa,CAAC;oBAC3B,IAAI,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;wBACnC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;oBAC7B,CAAC;oBACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,CAAC,SAAS,EAAE,CAAC;wBAC/D,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;oBACvC,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,mBAAO,CAAC,GAAG,CAAC,IAAI,CAAC,+CAA+C,EAAE;wBACjE,KAAK;qBACL,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;QACF,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACzB,mBAAO,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,uDAAuD;QACxD,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;CACD;AAjLD,8BAiLC"}
@@ -0,0 +1,13 @@
1
+ import type { A2AClient, AgentCard } from "@a2a-js/sdk";
2
+ import { type IA2ATool, TOOL_PROTOCOL_TYPE } from "../../types/tool.js";
3
+ export declare class A2ATool implements IA2ATool {
4
+ id: string;
5
+ protocol: TOOL_PROTOCOL_TYPE;
6
+ enabled: boolean;
7
+ client: A2AClient;
8
+ card: AgentCard;
9
+ constructor(name: string, client: A2AClient, card: AgentCard);
10
+ enable(): void;
11
+ disable(): void;
12
+ }
13
+ //# sourceMappingURL=a2a.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2a.tool.d.ts","sourceRoot":"","sources":["../../../../src/modules/a2a/a2a.tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxD,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,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;gBAEX,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAQrD,MAAM,IAAI,IAAI;IAId,OAAO,IAAI,IAAI;CAGtB"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.A2ATool = void 0;
4
+ const tool_js_1 = require("../../types/tool.js");
5
+ class A2ATool {
6
+ constructor(name, client, card) {
7
+ this.id = name;
8
+ this.protocol = tool_js_1.TOOL_PROTOCOL_TYPE.A2A;
9
+ this.enabled = true;
10
+ this.client = client;
11
+ this.card = card;
12
+ }
13
+ enable() {
14
+ this.enabled = true;
15
+ }
16
+ disable() {
17
+ this.enabled = false;
18
+ }
19
+ }
20
+ exports.A2ATool = A2ATool;
21
+ //# sourceMappingURL=a2a.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2a.tool.js","sourceRoot":"","sources":["../../../../src/modules/a2a/a2a.tool.ts"],"names":[],"mappings":";;;AACA,6CAAoE;AAEpE,MAAa,OAAO;IAOnB,YAAY,IAAY,EAAE,MAAiB,EAAE,IAAe;QAC3D,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,4BAAkB,CAAC,GAAG,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAEM,MAAM;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,OAAO;QACb,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC;CACD;AAtBD,0BAsBC"}
@@ -0,0 +1,31 @@
1
+ import type { BaseModel } from "../../modules/models/model.module.js";
2
+ import type { Facts } from "../../types/fol.js";
3
+ import type { FOLStore } from "./store/index.js";
4
+ export declare class FOLModule {
5
+ private model;
6
+ private folStore;
7
+ constructor(model: BaseModel<unknown, unknown>, folStore: FOLStore);
8
+ /**
9
+ * 자연어로 정보를 넣어주면 FOL 형식으로 바꿔서 Store에 저장하기
10
+ */
11
+ updateFacts(intent: string, text: string): Promise<void>;
12
+ /**
13
+ * 특정 intent에 대한 Facts 조회
14
+ */
15
+ retrieveFacts(intent: string): Promise<Facts | null>;
16
+ /**
17
+ * 모든 Facts 목록 조회
18
+ */
19
+ getFactsList(): Promise<Facts[]>;
20
+ /**
21
+ * Intent별 Facts 맵 조회
22
+ */
23
+ getFactsMap(): Promise<{
24
+ [intent: string]: Facts;
25
+ }>;
26
+ /**
27
+ * FOL 기반 데이터 조회 및 추론
28
+ */
29
+ queryFacts(intent: string, query: string): Promise<string>;
30
+ }
31
+ //# sourceMappingURL=fol.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fol.module.d.ts","sourceRoot":"","sources":["../../../../src/modules/fol/fol.module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAa,SAAS;IACrB,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,QAAQ,CAAW;gBAEf,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,QAAQ;IAKlE;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0G9D;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAS1D;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAUtC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAA;KAAE,CAAC;IASzD;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA2ChE"}
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FOLModule = void 0;
4
+ const logger_js_1 = require("../../utils/logger.js");
5
+ class FOLModule {
6
+ constructor(model, folStore) {
7
+ this.model = model;
8
+ this.folStore = folStore;
9
+ }
10
+ /**
11
+ * 자연어로 정보를 넣어주면 FOL 형식으로 바꿔서 Store에 저장하기
12
+ */
13
+ async updateFacts(intent, text) {
14
+ try {
15
+ // 기존 Facts 가져오기
16
+ const existingFacts = (await this.folStore.retrieveFacts(intent)) || {
17
+ constants: [],
18
+ predicates: [],
19
+ facts: [],
20
+ };
21
+ // 기존 데이터를 문자열로 변환 (AI 프롬프트용)
22
+ const existingConstantsStr = existingFacts.constants
23
+ .map((c) => `${c.name}: ${c.description}`)
24
+ .join(", ");
25
+ const existingPredicatesStr = existingFacts.predicates
26
+ .map((p) => `${p.name}: ${p.description}`)
27
+ .join(", ");
28
+ const existingFactsStr = existingFacts.facts
29
+ .map((f) => `${f.name}: ${f.description}`)
30
+ .join(", ");
31
+ // 자연어를 FOL로 변환하는 프롬프트
32
+ const prompt = `
33
+ 다음 자연어 텍스트를 First-Order Logic (FOL) 형식으로 변환해주세요.
34
+
35
+ 입력 텍스트: "${text}"
36
+
37
+ 기존 Constants: ${existingConstantsStr}
38
+ 기존 Predicates: ${existingPredicatesStr}
39
+ 기존 Facts: ${existingFactsStr}
40
+
41
+ 다음 JSON 형식으로 응답해주세요:
42
+ {
43
+ "constants": [
44
+ {"name": "constant_name", "description": "상수에 대한 설명"}
45
+ ],
46
+ "predicates": [
47
+ {"name": "Predicate(x)", "description": "술어에 대한 설명"}
48
+ ],
49
+ "facts": [
50
+ {"name": "Fact(constant)", "description": "사실에 대한 설명"}
51
+ ]
52
+ }
53
+
54
+ FOL 규칙:
55
+ - Constants는 소문자로 시작 (예: john, mary, book1)
56
+ - Predicates는 대문자로 시작하고 변수 포함 (예: Person(x), Likes(x,y))
57
+ - Facts는 구체적인 사실 (예: Person(john), Likes(mary, book1))
58
+ - 각 항목에는 의미있는 설명을 포함해주세요
59
+ - 기존 정보와 중복되지 않도록 주의`;
60
+ const messages = this.model.generateMessages({ chats: {} }, prompt);
61
+ const response = await this.model.fetch(messages);
62
+ logger_js_1.loggers.fol.debug(response);
63
+ // AI 응답에서 텍스트 추출 (응답이 객체인 경우 content 프로퍼티 사용)
64
+ const responseText = response.content || "";
65
+ // AI 응답에서 JSON 추출
66
+ const jsonMatch = responseText?.match(/\{[\s\S]*\}/);
67
+ if (!jsonMatch) {
68
+ throw new Error("AI 응답에서 유효한 JSON을 찾을 수 없습니다");
69
+ }
70
+ const newFolData = JSON.parse(jsonMatch[0]);
71
+ // 기존 데이터와 병합 (중복 제거 - name 기준)
72
+ const mergeData = (existing, newItems) => {
73
+ const merged = new Map();
74
+ existing.forEach(({ name, description }) => {
75
+ merged.set(name, description);
76
+ });
77
+ newItems.forEach(({ name, description }) => {
78
+ merged.set(name, description);
79
+ });
80
+ return Array.from(merged.entries()).map(([name, description]) => ({
81
+ name,
82
+ description,
83
+ }));
84
+ };
85
+ const updatedFacts = {
86
+ constants: mergeData(existingFacts.constants, newFolData.constants || []),
87
+ predicates: mergeData(existingFacts.predicates, newFolData.predicates || []),
88
+ facts: mergeData(existingFacts.facts, newFolData.facts || []),
89
+ };
90
+ // Store에 저장
91
+ await this.folStore.saveFacts(intent, updatedFacts);
92
+ logger_js_1.loggers.fol.info(`FOL data updated (intent: ${intent})`);
93
+ }
94
+ catch (error) {
95
+ logger_js_1.loggers.fol.error("updateFacts execution error:", { error });
96
+ throw error;
97
+ }
98
+ }
99
+ /**
100
+ * 특정 intent에 대한 Facts 조회
101
+ */
102
+ async retrieveFacts(intent) {
103
+ try {
104
+ return await this.folStore.retrieveFacts(intent);
105
+ }
106
+ catch (error) {
107
+ logger_js_1.loggers.fol.error("retrieveFacts execution error: ", { error });
108
+ throw error;
109
+ }
110
+ }
111
+ /**
112
+ * 모든 Facts 목록 조회
113
+ */
114
+ async getFactsList() {
115
+ try {
116
+ const allFacts = await this.folStore.getAllFacts();
117
+ return Object.values(allFacts);
118
+ }
119
+ catch (error) {
120
+ logger_js_1.loggers.fol.error("getFactsList execution error:", { error });
121
+ throw error;
122
+ }
123
+ }
124
+ /**
125
+ * Intent별 Facts 맵 조회
126
+ */
127
+ async getFactsMap() {
128
+ try {
129
+ return await this.folStore.getAllFacts();
130
+ }
131
+ catch (error) {
132
+ logger_js_1.loggers.fol.error("getFactsMap execution error:", { error });
133
+ throw error;
134
+ }
135
+ }
136
+ /**
137
+ * FOL 기반 데이터 조회 및 추론
138
+ */
139
+ async queryFacts(intent, query) {
140
+ try {
141
+ const facts = await this.retrieveFacts(intent);
142
+ if (!facts) {
143
+ return `Intent '${intent}'에 대한 Facts가 없습니다.`;
144
+ }
145
+ // 데이터를 문자열로 변환 (AI 프롬프트용)
146
+ const constantsStr = facts.constants
147
+ .map((c) => `${c.name}: ${c.description}`)
148
+ .join(", ");
149
+ const predicatesStr = facts.predicates
150
+ .map((p) => `${p.name}: ${p.description}`)
151
+ .join(", ");
152
+ const factsStr = facts.facts
153
+ .map((f) => `${f.name}: ${f.description}`)
154
+ .join(", ");
155
+ // FOL 데이터와 쿼리를 기반으로 AI 추론 수행
156
+ const prompt = `
157
+ 다음 First-Order Logic (FOL) 데이터를 기반으로 질문에 답해주세요.
158
+
159
+ Constants: ${constantsStr}
160
+ Predicates: ${predicatesStr}
161
+ Facts: ${factsStr}
162
+
163
+ 질문: ${query}
164
+
165
+ 위의 FOL 데이터를 논리적으로 분석하여 질문에 대한 답변을 제공해주세요.
166
+ 각 항목은 "이름: 설명" 형태로 구성되어 있습니다.`;
167
+ const messages = this.model.generateMessages({ chats: {} }, prompt);
168
+ const response = await this.model.fetch(messages);
169
+ // AI 응답에서 텍스트 추출 (응답이 객체인 경우 content 프로퍼티 사용)
170
+ const responseText = response.content || "";
171
+ return responseText;
172
+ }
173
+ catch (error) {
174
+ logger_js_1.loggers.fol.error("queryFacts execution error:", { error });
175
+ throw error;
176
+ }
177
+ }
178
+ }
179
+ exports.FOLModule = FOLModule;
180
+ //# sourceMappingURL=fol.module.js.map