@multiplayer-app/ai-agent-node 0.1.0-beta.3 → 0.1.0-beta.30

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 (314) hide show
  1. package/dist/cjs/config.cjs +98 -0
  2. package/dist/cjs/config.cjs.map +1 -0
  3. package/dist/cjs/config.d.ts +56 -23
  4. package/dist/cjs/config.d.ts.map +1 -1
  5. package/dist/cjs/helpers/AIHelper.cjs +386 -0
  6. package/dist/cjs/helpers/AIHelper.cjs.map +1 -0
  7. package/dist/cjs/helpers/AIHelper.d.ts +20 -13
  8. package/dist/cjs/helpers/AIHelper.d.ts.map +1 -1
  9. package/dist/cjs/helpers/{AIHelper.test.js → AIHelper.test.cjs} +22 -15
  10. package/dist/cjs/helpers/AIHelper.test.cjs.map +1 -0
  11. package/dist/cjs/helpers/{ConfigHelper.js → ConfigHelper.cjs} +15 -7
  12. package/dist/cjs/helpers/ConfigHelper.cjs.map +1 -0
  13. package/dist/cjs/helpers/ConfigHelper.d.ts.map +1 -1
  14. package/dist/cjs/helpers/{ContextLimiter.js → ContextLimiter.cjs} +2 -3
  15. package/dist/cjs/helpers/{ContextLimiter.js.map → ContextLimiter.cjs.map} +1 -1
  16. package/dist/cjs/helpers/FileHelper.cjs +193 -0
  17. package/dist/cjs/helpers/FileHelper.cjs.map +1 -0
  18. package/dist/cjs/helpers/FileHelper.d.ts +19 -25
  19. package/dist/cjs/helpers/FileHelper.d.ts.map +1 -1
  20. package/dist/cjs/{store/index.js → helpers/index.cjs} +4 -4
  21. package/dist/cjs/helpers/{index.js.map → index.cjs.map} +1 -1
  22. package/dist/cjs/helpers/index.d.ts +4 -5
  23. package/dist/cjs/helpers/index.d.ts.map +1 -1
  24. package/dist/cjs/index.cjs +114 -0
  25. package/dist/cjs/index.cjs.map +1 -0
  26. package/dist/cjs/index.d.ts +39 -13
  27. package/dist/cjs/index.d.ts.map +1 -1
  28. package/dist/cjs/libs/{kafka/index.js → index.cjs} +2 -2
  29. package/dist/cjs/libs/{index.js.map → index.cjs.map} +1 -1
  30. package/dist/cjs/libs/index.d.ts +2 -3
  31. package/dist/cjs/libs/index.d.ts.map +1 -1
  32. package/dist/cjs/libs/logger/{index.js → index.cjs} +5 -5
  33. package/dist/cjs/libs/logger/{index.js.map → index.cjs.map} +1 -1
  34. package/dist/cjs/libs/logger/index.d.ts +2 -2
  35. package/dist/cjs/libs/logger/index.d.ts.map +1 -1
  36. package/dist/cjs/libs/logger/{kafkajs-logger-creator.js → kafkajs-logger-creator.cjs} +2 -2
  37. package/dist/cjs/libs/logger/{kafkajs-logger-creator.js.map → kafkajs-logger-creator.cjs.map} +1 -1
  38. package/dist/cjs/libs/s3/index.cjs +8 -0
  39. package/dist/cjs/libs/s3/index.cjs.map +1 -0
  40. package/dist/cjs/libs/s3/index.d.ts +1 -2
  41. package/dist/cjs/libs/s3/index.d.ts.map +1 -1
  42. package/dist/cjs/libs/s3/s3.lib.cjs +207 -0
  43. package/dist/cjs/libs/s3/s3.lib.cjs.map +1 -0
  44. package/dist/cjs/libs/s3/s3.lib.d.ts +29 -22
  45. package/dist/cjs/libs/s3/s3.lib.d.ts.map +1 -1
  46. package/dist/cjs/processors/{ChatProcessor.js → ChatProcessor.cjs} +111 -149
  47. package/dist/cjs/processors/ChatProcessor.cjs.map +1 -0
  48. package/dist/cjs/processors/ChatProcessor.d.ts +23 -7
  49. package/dist/cjs/processors/ChatProcessor.d.ts.map +1 -1
  50. package/dist/cjs/processors/ChatProcessor.test.cjs +276 -0
  51. package/dist/cjs/processors/ChatProcessor.test.cjs.map +1 -0
  52. package/dist/cjs/processors/ChatProcessor.test.d.ts +2 -0
  53. package/dist/cjs/processors/ChatProcessor.test.d.ts.map +1 -0
  54. package/dist/cjs/processors/{ModelsProcessor.js → ModelsProcessor.cjs} +2 -2
  55. package/dist/cjs/processors/{ModelsProcessor.js.map → ModelsProcessor.cjs.map} +1 -1
  56. package/dist/cjs/processors/{index.js → index.cjs} +2 -2
  57. package/dist/cjs/processors/{index.js.map → index.cjs.map} +1 -1
  58. package/dist/cjs/processors/index.d.ts +2 -2
  59. package/dist/cjs/processors/index.d.ts.map +1 -1
  60. package/dist/cjs/services/{AIService.js → AIService.cjs} +42 -30
  61. package/dist/cjs/services/AIService.cjs.map +1 -0
  62. package/dist/cjs/services/AIService.d.ts +13 -4
  63. package/dist/cjs/services/AIService.d.ts.map +1 -1
  64. package/dist/cjs/services/{InternalEventsHandler.js → InternalEventsHandler.cjs} +5 -5
  65. package/dist/cjs/services/InternalEventsHandler.cjs.map +1 -0
  66. package/dist/cjs/services/InternalEventsHandler.d.ts +3 -1
  67. package/dist/cjs/services/InternalEventsHandler.d.ts.map +1 -1
  68. package/dist/cjs/services/{ModelFetcher.js → ModelFetcher.cjs} +9 -15
  69. package/dist/cjs/services/ModelFetcher.cjs.map +1 -0
  70. package/dist/cjs/services/ModelFetcher.d.ts +2 -7
  71. package/dist/cjs/services/ModelFetcher.d.ts.map +1 -1
  72. package/dist/cjs/services/{RedisService.js → RedisService.cjs} +35 -32
  73. package/dist/cjs/services/RedisService.cjs.map +1 -0
  74. package/dist/cjs/services/RedisService.d.ts +5 -2
  75. package/dist/cjs/services/RedisService.d.ts.map +1 -1
  76. package/dist/cjs/services/{SocketService.js → SocketService.cjs} +19 -20
  77. package/dist/cjs/services/SocketService.cjs.map +1 -0
  78. package/dist/cjs/services/SocketService.d.ts +7 -4
  79. package/dist/cjs/services/SocketService.d.ts.map +1 -1
  80. package/dist/cjs/{helpers/index.js → services/index.cjs} +5 -5
  81. package/dist/cjs/services/{index.js.map → index.cjs.map} +1 -1
  82. package/dist/cjs/services/index.d.ts +5 -6
  83. package/dist/cjs/services/index.d.ts.map +1 -1
  84. package/dist/cjs/store/{AgentStore.js → AgentStore.cjs} +4 -5
  85. package/dist/cjs/store/AgentStore.cjs.map +1 -0
  86. package/dist/cjs/store/AgentStore.d.ts +2 -1
  87. package/dist/cjs/store/AgentStore.d.ts.map +1 -1
  88. package/dist/cjs/store/{ArtifactStore.js → ArtifactStore.cjs} +2 -4
  89. package/dist/cjs/store/ArtifactStore.cjs.map +1 -0
  90. package/dist/cjs/store/{ConfigStore.js → ConfigStore.cjs} +8 -11
  91. package/dist/cjs/store/ConfigStore.cjs.map +1 -0
  92. package/dist/cjs/store/ConfigStore.d.ts.map +1 -1
  93. package/dist/cjs/store/{ConfigStore.test.js → ConfigStore.test.cjs} +2 -2
  94. package/dist/cjs/store/{ConfigStore.test.js.map → ConfigStore.test.cjs.map} +1 -1
  95. package/dist/cjs/store/{ModelStore.js → ModelStore.cjs} +4 -4
  96. package/dist/cjs/store/ModelStore.cjs.map +1 -0
  97. package/dist/cjs/store/{ModelStore.test.js → ModelStore.test.cjs} +17 -17
  98. package/dist/cjs/store/ModelStore.test.cjs.map +1 -0
  99. package/dist/cjs/{libs/index.js → store/index.cjs} +4 -3
  100. package/dist/cjs/store/{index.js.map → index.cjs.map} +1 -1
  101. package/dist/cjs/store/index.d.ts +4 -4
  102. package/dist/cjs/store/index.d.ts.map +1 -1
  103. package/dist/cjs/tools/proposeFormValuesTool.d.ts +2 -2
  104. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  105. package/dist/esm/config.d.ts +56 -23
  106. package/dist/esm/config.d.ts.map +1 -1
  107. package/dist/esm/config.js +88 -36
  108. package/dist/esm/config.js.map +1 -1
  109. package/dist/esm/helpers/AIHelper.d.ts +20 -13
  110. package/dist/esm/helpers/AIHelper.d.ts.map +1 -1
  111. package/dist/esm/helpers/AIHelper.js +152 -94
  112. package/dist/esm/helpers/AIHelper.js.map +1 -1
  113. package/dist/esm/helpers/AIHelper.test.js +21 -14
  114. package/dist/esm/helpers/AIHelper.test.js.map +1 -1
  115. package/dist/esm/helpers/ConfigHelper.d.ts.map +1 -1
  116. package/dist/esm/helpers/ConfigHelper.js +13 -5
  117. package/dist/esm/helpers/ConfigHelper.js.map +1 -1
  118. package/dist/esm/helpers/ContextLimiter.js +2 -3
  119. package/dist/esm/helpers/ContextLimiter.js.map +1 -1
  120. package/dist/esm/helpers/FileHelper.d.ts +19 -25
  121. package/dist/esm/helpers/FileHelper.d.ts.map +1 -1
  122. package/dist/esm/helpers/FileHelper.js +132 -149
  123. package/dist/esm/helpers/FileHelper.js.map +1 -1
  124. package/dist/esm/helpers/index.d.ts +4 -5
  125. package/dist/esm/helpers/index.d.ts.map +1 -1
  126. package/dist/esm/helpers/index.js +4 -5
  127. package/dist/esm/helpers/index.js.map +1 -1
  128. package/dist/esm/index.d.ts +39 -13
  129. package/dist/esm/index.d.ts.map +1 -1
  130. package/dist/esm/index.js +79 -12
  131. package/dist/esm/index.js.map +1 -1
  132. package/dist/esm/libs/index.d.ts +2 -3
  133. package/dist/esm/libs/index.d.ts.map +1 -1
  134. package/dist/esm/libs/index.js +2 -3
  135. package/dist/esm/libs/index.js.map +1 -1
  136. package/dist/esm/libs/logger/index.d.ts +2 -2
  137. package/dist/esm/libs/logger/index.d.ts.map +1 -1
  138. package/dist/esm/libs/logger/index.js +2 -2
  139. package/dist/esm/libs/logger/index.js.map +1 -1
  140. package/dist/esm/libs/logger/kafkajs-logger-creator.js +1 -1
  141. package/dist/esm/libs/logger/kafkajs-logger-creator.js.map +1 -1
  142. package/dist/esm/libs/s3/index.d.ts +1 -2
  143. package/dist/esm/libs/s3/index.d.ts.map +1 -1
  144. package/dist/esm/libs/s3/index.js +1 -2
  145. package/dist/esm/libs/s3/index.js.map +1 -1
  146. package/dist/esm/libs/s3/s3.lib.d.ts +29 -22
  147. package/dist/esm/libs/s3/s3.lib.d.ts.map +1 -1
  148. package/dist/esm/libs/s3/s3.lib.js +178 -177
  149. package/dist/esm/libs/s3/s3.lib.js.map +1 -1
  150. package/dist/esm/processors/ChatProcessor.d.ts +23 -7
  151. package/dist/esm/processors/ChatProcessor.d.ts.map +1 -1
  152. package/dist/esm/processors/ChatProcessor.js +107 -138
  153. package/dist/esm/processors/ChatProcessor.js.map +1 -1
  154. package/dist/esm/processors/ChatProcessor.test.d.ts +2 -0
  155. package/dist/esm/processors/ChatProcessor.test.d.ts.map +1 -0
  156. package/dist/esm/processors/ChatProcessor.test.js +274 -0
  157. package/dist/esm/processors/ChatProcessor.test.js.map +1 -0
  158. package/dist/esm/processors/ModelsProcessor.js +1 -1
  159. package/dist/esm/processors/ModelsProcessor.js.map +1 -1
  160. package/dist/esm/processors/index.d.ts +2 -2
  161. package/dist/esm/processors/index.d.ts.map +1 -1
  162. package/dist/esm/processors/index.js +2 -2
  163. package/dist/esm/processors/index.js.map +1 -1
  164. package/dist/esm/services/AIService.d.ts +13 -4
  165. package/dist/esm/services/AIService.d.ts.map +1 -1
  166. package/dist/esm/services/AIService.js +45 -31
  167. package/dist/esm/services/AIService.js.map +1 -1
  168. package/dist/esm/services/InternalEventsHandler.d.ts +3 -1
  169. package/dist/esm/services/InternalEventsHandler.d.ts.map +1 -1
  170. package/dist/esm/services/InternalEventsHandler.js +10 -8
  171. package/dist/esm/services/InternalEventsHandler.js.map +1 -1
  172. package/dist/esm/services/ModelFetcher.d.ts +2 -7
  173. package/dist/esm/services/ModelFetcher.d.ts.map +1 -1
  174. package/dist/esm/services/ModelFetcher.js +4 -9
  175. package/dist/esm/services/ModelFetcher.js.map +1 -1
  176. package/dist/esm/services/RedisService.d.ts +5 -2
  177. package/dist/esm/services/RedisService.d.ts.map +1 -1
  178. package/dist/esm/services/RedisService.js +25 -21
  179. package/dist/esm/services/RedisService.js.map +1 -1
  180. package/dist/esm/services/SocketService.d.ts +7 -4
  181. package/dist/esm/services/SocketService.d.ts.map +1 -1
  182. package/dist/esm/services/SocketService.js +15 -13
  183. package/dist/esm/services/SocketService.js.map +1 -1
  184. package/dist/esm/services/index.d.ts +5 -6
  185. package/dist/esm/services/index.d.ts.map +1 -1
  186. package/dist/esm/services/index.js +5 -6
  187. package/dist/esm/services/index.js.map +1 -1
  188. package/dist/esm/store/AgentStore.d.ts +2 -1
  189. package/dist/esm/store/AgentStore.d.ts.map +1 -1
  190. package/dist/esm/store/AgentStore.js +5 -5
  191. package/dist/esm/store/AgentStore.js.map +1 -1
  192. package/dist/esm/store/ArtifactStore.js +3 -7
  193. package/dist/esm/store/ArtifactStore.js.map +1 -1
  194. package/dist/esm/store/ConfigStore.d.ts.map +1 -1
  195. package/dist/esm/store/ConfigStore.js +16 -19
  196. package/dist/esm/store/ConfigStore.js.map +1 -1
  197. package/dist/esm/store/ConfigStore.test.js +1 -1
  198. package/dist/esm/store/ConfigStore.test.js.map +1 -1
  199. package/dist/esm/store/ModelStore.js +6 -6
  200. package/dist/esm/store/ModelStore.js.map +1 -1
  201. package/dist/esm/store/ModelStore.test.js +12 -12
  202. package/dist/esm/store/ModelStore.test.js.map +1 -1
  203. package/dist/esm/store/index.d.ts +4 -4
  204. package/dist/esm/store/index.d.ts.map +1 -1
  205. package/dist/esm/store/index.js +4 -4
  206. package/dist/esm/store/index.js.map +1 -1
  207. package/dist/esm/tools/proposeFormValuesTool.d.ts +2 -2
  208. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  209. package/package.json +13 -12
  210. package/dist/cjs/config.js +0 -48
  211. package/dist/cjs/config.js.map +0 -1
  212. package/dist/cjs/helpers/AIHelper.js +0 -330
  213. package/dist/cjs/helpers/AIHelper.js.map +0 -1
  214. package/dist/cjs/helpers/AIHelper.test.js.map +0 -1
  215. package/dist/cjs/helpers/ConfigHelper.js.map +0 -1
  216. package/dist/cjs/helpers/FileHelper.js +0 -215
  217. package/dist/cjs/helpers/FileHelper.js.map +0 -1
  218. package/dist/cjs/helpers/SetupHelper.d.ts +0 -5
  219. package/dist/cjs/helpers/SetupHelper.d.ts.map +0 -1
  220. package/dist/cjs/helpers/SetupHelper.js +0 -37
  221. package/dist/cjs/helpers/SetupHelper.js.map +0 -1
  222. package/dist/cjs/index.js +0 -34
  223. package/dist/cjs/index.js.map +0 -1
  224. package/dist/cjs/libs/kafka/config.d.ts +0 -5
  225. package/dist/cjs/libs/kafka/config.d.ts.map +0 -1
  226. package/dist/cjs/libs/kafka/config.js +0 -8
  227. package/dist/cjs/libs/kafka/config.js.map +0 -1
  228. package/dist/cjs/libs/kafka/consumer.d.ts +0 -16
  229. package/dist/cjs/libs/kafka/consumer.d.ts.map +0 -1
  230. package/dist/cjs/libs/kafka/consumer.js +0 -133
  231. package/dist/cjs/libs/kafka/consumer.js.map +0 -1
  232. package/dist/cjs/libs/kafka/index.d.ts +0 -3
  233. package/dist/cjs/libs/kafka/index.d.ts.map +0 -1
  234. package/dist/cjs/libs/kafka/index.js.map +0 -1
  235. package/dist/cjs/libs/kafka/kafka.d.ts +0 -3
  236. package/dist/cjs/libs/kafka/kafka.d.ts.map +0 -1
  237. package/dist/cjs/libs/kafka/kafka.js +0 -27
  238. package/dist/cjs/libs/kafka/kafka.js.map +0 -1
  239. package/dist/cjs/libs/kafka/producer.d.ts +0 -11
  240. package/dist/cjs/libs/kafka/producer.d.ts.map +0 -1
  241. package/dist/cjs/libs/kafka/producer.js +0 -48
  242. package/dist/cjs/libs/kafka/producer.js.map +0 -1
  243. package/dist/cjs/libs/logger/config.d.ts +0 -5
  244. package/dist/cjs/libs/logger/config.d.ts.map +0 -1
  245. package/dist/cjs/libs/logger/config.js +0 -9
  246. package/dist/cjs/libs/logger/config.js.map +0 -1
  247. package/dist/cjs/libs/s3/config.d.ts +0 -7
  248. package/dist/cjs/libs/s3/config.d.ts.map +0 -1
  249. package/dist/cjs/libs/s3/config.js +0 -10
  250. package/dist/cjs/libs/s3/config.js.map +0 -1
  251. package/dist/cjs/libs/s3/index.js +0 -44
  252. package/dist/cjs/libs/s3/index.js.map +0 -1
  253. package/dist/cjs/libs/s3/s3.lib.js +0 -224
  254. package/dist/cjs/libs/s3/s3.lib.js.map +0 -1
  255. package/dist/cjs/processors/ChatProcessor.js.map +0 -1
  256. package/dist/cjs/services/AIService.js.map +0 -1
  257. package/dist/cjs/services/InternalEventsHandler.js.map +0 -1
  258. package/dist/cjs/services/KafkaService.d.ts +0 -35
  259. package/dist/cjs/services/KafkaService.d.ts.map +0 -1
  260. package/dist/cjs/services/KafkaService.js +0 -123
  261. package/dist/cjs/services/KafkaService.js.map +0 -1
  262. package/dist/cjs/services/ModelFetcher.js.map +0 -1
  263. package/dist/cjs/services/RedisService.js.map +0 -1
  264. package/dist/cjs/services/SocketService.js.map +0 -1
  265. package/dist/cjs/services/index.js +0 -23
  266. package/dist/cjs/store/AgentStore.js.map +0 -1
  267. package/dist/cjs/store/ArtifactStore.js.map +0 -1
  268. package/dist/cjs/store/ConfigStore.js.map +0 -1
  269. package/dist/cjs/store/ModelStore.js.map +0 -1
  270. package/dist/cjs/store/ModelStore.test.js.map +0 -1
  271. package/dist/esm/helpers/SetupHelper.d.ts +0 -5
  272. package/dist/esm/helpers/SetupHelper.d.ts.map +0 -1
  273. package/dist/esm/helpers/SetupHelper.js +0 -32
  274. package/dist/esm/helpers/SetupHelper.js.map +0 -1
  275. package/dist/esm/libs/kafka/config.d.ts +0 -5
  276. package/dist/esm/libs/kafka/config.d.ts.map +0 -1
  277. package/dist/esm/libs/kafka/config.js +0 -5
  278. package/dist/esm/libs/kafka/config.js.map +0 -1
  279. package/dist/esm/libs/kafka/consumer.d.ts +0 -16
  280. package/dist/esm/libs/kafka/consumer.d.ts.map +0 -1
  281. package/dist/esm/libs/kafka/consumer.js +0 -126
  282. package/dist/esm/libs/kafka/consumer.js.map +0 -1
  283. package/dist/esm/libs/kafka/index.d.ts +0 -3
  284. package/dist/esm/libs/kafka/index.d.ts.map +0 -1
  285. package/dist/esm/libs/kafka/index.js +0 -3
  286. package/dist/esm/libs/kafka/index.js.map +0 -1
  287. package/dist/esm/libs/kafka/kafka.d.ts +0 -3
  288. package/dist/esm/libs/kafka/kafka.d.ts.map +0 -1
  289. package/dist/esm/libs/kafka/kafka.js +0 -24
  290. package/dist/esm/libs/kafka/kafka.js.map +0 -1
  291. package/dist/esm/libs/kafka/producer.d.ts +0 -11
  292. package/dist/esm/libs/kafka/producer.d.ts.map +0 -1
  293. package/dist/esm/libs/kafka/producer.js +0 -44
  294. package/dist/esm/libs/kafka/producer.js.map +0 -1
  295. package/dist/esm/libs/logger/config.d.ts +0 -5
  296. package/dist/esm/libs/logger/config.d.ts.map +0 -1
  297. package/dist/esm/libs/logger/config.js +0 -6
  298. package/dist/esm/libs/logger/config.js.map +0 -1
  299. package/dist/esm/libs/s3/config.d.ts +0 -7
  300. package/dist/esm/libs/s3/config.d.ts.map +0 -1
  301. package/dist/esm/libs/s3/config.js +0 -7
  302. package/dist/esm/libs/s3/config.js.map +0 -1
  303. package/dist/esm/services/KafkaService.d.ts +0 -35
  304. package/dist/esm/services/KafkaService.d.ts.map +0 -1
  305. package/dist/esm/services/KafkaService.js +0 -120
  306. package/dist/esm/services/KafkaService.js.map +0 -1
  307. package/dist/tsconfig.cjs.tsbuildinfo +0 -1
  308. package/dist/tsconfig.esm.tsbuildinfo +0 -1
  309. /package/dist/cjs/libs/logger/{logger.js → logger.cjs} +0 -0
  310. /package/dist/cjs/libs/logger/{logger.js.map → logger.cjs.map} +0 -0
  311. /package/dist/cjs/tools/{generateChartTool.js → generateChartTool.cjs} +0 -0
  312. /package/dist/cjs/tools/{generateChartTool.js.map → generateChartTool.cjs.map} +0 -0
  313. /package/dist/cjs/tools/{proposeFormValuesTool.js → proposeFormValuesTool.cjs} +0 -0
  314. /package/dist/cjs/tools/{proposeFormValuesTool.js.map → proposeFormValuesTool.cjs.map} +0 -0
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConfigProvider = void 0;
4
+ require("dotenv/config");
5
+ function createDefaultConfig() {
6
+ return {
7
+ // Redis configuration
8
+ redis: {
9
+ host: 'localhost',
10
+ port: 6379,
11
+ },
12
+ ai: {
13
+ maxContextMessages: 10,
14
+ },
15
+ s3: {
16
+ bucket: 'ai-agent-attachments',
17
+ presignedUrlExpires: 120,
18
+ region: process.env.AWS_REGION || 'us-east-1',
19
+ },
20
+ fileProcessing: {
21
+ maxExtractedTextSize: 51200,
22
+ enableTextExtraction: true,
23
+ },
24
+ logger: {
25
+ nodeEnv: 'development',
26
+ appName: 'ai-agent-node',
27
+ logLevel: 'debug',
28
+ },
29
+ socket: {
30
+ path: undefined
31
+ },
32
+ };
33
+ }
34
+ /**
35
+ * Deep merge utility function
36
+ * Merges source into target, with source values taking precedence
37
+ */
38
+ function deepMerge(target, source) {
39
+ const result = { ...target };
40
+ for (const key in source) {
41
+ if (source[key] !== undefined) {
42
+ if (typeof source[key] === 'object' &&
43
+ source[key] !== null &&
44
+ !Array.isArray(source[key]) &&
45
+ typeof target[key] === 'object' &&
46
+ target[key] !== null &&
47
+ !Array.isArray(target[key])) {
48
+ // Recursively merge nested objects
49
+ result[key] = deepMerge(target[key], source[key]);
50
+ }
51
+ else {
52
+ // Override with source value
53
+ result[key] = source[key];
54
+ }
55
+ }
56
+ }
57
+ return result;
58
+ }
59
+ /**
60
+ * ConfigProvider manages runtime configuration
61
+ * Allows setting config overrides through AIAgentService
62
+ */
63
+ class ConfigProvider {
64
+ constructor() {
65
+ this.runtimeConfig = createDefaultConfig();
66
+ }
67
+ /**
68
+ * Get the singleton instance of ConfigProvider
69
+ */
70
+ static getInstance() {
71
+ if (!ConfigProvider.instance) {
72
+ ConfigProvider.instance = new ConfigProvider();
73
+ }
74
+ return ConfigProvider.instance;
75
+ }
76
+ /**
77
+ * Get the current runtime configuration
78
+ */
79
+ getConfig() {
80
+ return this.runtimeConfig;
81
+ }
82
+ /**
83
+ * Set configuration overrides
84
+ * Merges the provided overrides with existing config (deep merge)
85
+ * @param overrides - Partial config to override existing values
86
+ */
87
+ setConfig(overrides) {
88
+ this.runtimeConfig = deepMerge(this.runtimeConfig, overrides);
89
+ }
90
+ /**
91
+ * Reset configuration to defaults (from environment variables)
92
+ */
93
+ reset() {
94
+ this.runtimeConfig = createDefaultConfig();
95
+ }
96
+ }
97
+ exports.ConfigProvider = ConfigProvider;
98
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";;;AAAA,yBAAuB;AA0CvB,SAAS,mBAAmB;IAC1B,OAAO;QACL,sBAAsB;QACtB,KAAK,EAAE;YACL,IAAI,EAAE,WAAW;YACjB,IAAI,EAAG,IAAI;SACZ;QACD,EAAE,EAAE;YACF,kBAAkB,EAAE,EAAE;SACvB;QACD,EAAE,EAAE;YACF,MAAM,EAAE,sBAAsB;YAC9B,mBAAmB,EAAE,GAAG;YACxB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW;SAC9C;QACD,cAAc,EAAE;YACd,oBAAoB,EAAE,KAAK;YAC3B,oBAAoB,EAAE,IAAI;SAC3B;QACD,MAAM,EAAE;YACN,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,OAAO;SAClB;QACD,MAAM,EAAE;YACN,IAAI,EAAE,SAAS;SAChB;KACF,CAAC;AACJ,CAAC;AAGD;;;GAGG;AACH,SAAS,SAAS,CAAgC,MAAS,EAAE,MAAkB;IAC7E,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9B,IACI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ;gBAC/B,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI;gBACpB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC3B,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ;gBAC/B,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI;gBACpB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAC7B,CAAC;gBACD,mCAAmC;gBACnC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAQ,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,6BAA6B;gBAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAQ,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAa,cAAc;IAIzB;QACE,IAAI,CAAC,aAAa,GAAG,mBAAmB,EAAE,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC7B,cAAc,CAAC,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,cAAc,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,SAA0B;QAClC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,aAAa,GAAG,mBAAmB,EAAE,CAAC;IAC7C,CAAC;CACF;AAxCD,wCAwCC"}
@@ -3,33 +3,66 @@ import 'dotenv/config';
3
3
  * Centralized configuration for the AI Agent Service
4
4
  * All environment variables are accessed through this file
5
5
  */
6
- export declare const config: {
7
- readonly redis: {
8
- readonly url: string | undefined;
9
- readonly host: string;
10
- readonly port: number;
11
- readonly password: string | undefined;
12
- readonly database: number | undefined;
6
+ export interface Config {
7
+ redis: {
8
+ url?: string;
9
+ host?: string;
10
+ port?: number;
11
+ password?: string;
12
+ database?: number;
13
13
  };
14
- readonly ai: {
15
- readonly openaiApiKey: string | undefined;
16
- readonly anthropicApiKey: string | undefined;
17
- readonly googleApiKey: string | undefined;
18
- readonly openrouterApiKey: string | undefined;
19
- readonly maxContextMessages: number;
20
- readonly defaultModel: string | undefined;
14
+ ai: {
15
+ openaiApiKey?: string;
16
+ anthropicApiKey?: string;
17
+ googleApiKey?: string;
18
+ openrouterApiKey?: string;
19
+ maxContextMessages?: number;
20
+ defaultModel?: string;
21
21
  };
22
- readonly s3: {
23
- readonly bucket: string;
22
+ s3: {
23
+ bucket?: string;
24
+ host?: string;
25
+ presignedUrlExpires?: number;
26
+ region?: string;
24
27
  };
25
- readonly kafka: {
26
- readonly groupId: string;
27
- readonly chatTitleGenerationTopic: string;
28
- readonly backgroundChatProcessingTopic: string;
28
+ fileProcessing: {
29
+ maxExtractedTextSize?: number;
30
+ enableTextExtraction?: boolean;
29
31
  };
30
- };
32
+ logger: {
33
+ nodeEnv?: string;
34
+ appName?: string;
35
+ logLevel?: string;
36
+ };
37
+ socket: {
38
+ path?: string;
39
+ };
40
+ }
31
41
  /**
32
- * Get Redis connection URL
42
+ * ConfigProvider manages runtime configuration
43
+ * Allows setting config overrides through AIAgentService
33
44
  */
34
- export declare function getRedisUrl(): string;
45
+ export declare class ConfigProvider {
46
+ private static instance;
47
+ private runtimeConfig;
48
+ private constructor();
49
+ /**
50
+ * Get the singleton instance of ConfigProvider
51
+ */
52
+ static getInstance(): ConfigProvider;
53
+ /**
54
+ * Get the current runtime configuration
55
+ */
56
+ getConfig(): Config;
57
+ /**
58
+ * Set configuration overrides
59
+ * Merges the provided overrides with existing config (deep merge)
60
+ * @param overrides - Partial config to override existing values
61
+ */
62
+ setConfig(overrides: Partial<Config>): void;
63
+ /**
64
+ * Reset configuration to defaults (from environment variables)
65
+ */
66
+ reset(): void;
67
+ }
35
68
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAEvB;;;GAGG;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;CA4BT,CAAC;AAEX;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAKpC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAEvB;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE;QACL,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,EAAE,EAAE;QACF,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,EAAE,EAAE;QACF,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,cAAc,EAAE;QACd,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC;IACF,MAAM,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,MAAM,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AA8DD;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO;IAIP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,cAAc;IAOpC;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI;IAI3C;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,386 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AIHelper = void 0;
4
+ const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
5
+ const services_1 = require("../services/index.cjs");
6
+ const store_1 = require("../store/index.cjs");
7
+ const logger_1 = require("../libs/logger/index.cjs");
8
+ const store_2 = require("../store/index.cjs");
9
+ class AIHelper {
10
+ constructor(fileHelper, config) {
11
+ this.fileHelper = fileHelper;
12
+ this.aiService = new services_1.AIService(store_1.ModelStore.getInstance(), config.ai);
13
+ }
14
+ clip(value, max) {
15
+ if (value.length <= max)
16
+ return value;
17
+ return `${value.slice(0, max)}…`;
18
+ }
19
+ renderContextValue(value, limits) {
20
+ if (value === null || value === undefined)
21
+ return '';
22
+ if (typeof value === 'string')
23
+ return this.clip(value, limits.maxString);
24
+ if (typeof value === 'number' || typeof value === 'boolean')
25
+ return String(value);
26
+ try {
27
+ const json = JSON.stringify(value);
28
+ return this.clip(json, limits.maxJson);
29
+ }
30
+ catch {
31
+ return '';
32
+ }
33
+ }
34
+ async convertUserMessage(msg, ignoreFileAttachments) {
35
+ const userContent = [
36
+ {
37
+ type: 'text',
38
+ text: msg.content
39
+ }
40
+ ];
41
+ const atts = msg.attachments ?? [];
42
+ if (!atts.length) {
43
+ return userContent;
44
+ }
45
+ const lines = [];
46
+ for (const att of atts) {
47
+ if (att.type !== ai_agent_types_1.AgentAttachmentType.Context) {
48
+ if (ignoreFileAttachments) {
49
+ continue;
50
+ }
51
+ if (this.fileHelper.isImage(att)) {
52
+ const image = await this.fileHelper.prepareImageForVisionAPI(att);
53
+ if (image) {
54
+ userContent.push({
55
+ type: 'image',
56
+ image: image.image_url.url,
57
+ mediaType: att.mimeType
58
+ });
59
+ }
60
+ }
61
+ else {
62
+ const fileText = await this.fileHelper.extractTextFromDocument(att);
63
+ if (fileText) {
64
+ userContent.push({
65
+ type: 'text',
66
+ text: `${att.type}: ${att.name}(${att.mimeType})\n ${fileText}`
67
+ });
68
+ }
69
+ }
70
+ continue;
71
+ }
72
+ const md = att.metadata;
73
+ const kind = typeof md?.kind === 'string' ? md.kind : 'unknown';
74
+ lines.push(`- context:${kind}: ${att.name}`);
75
+ if (kind === 'webSnippet') {
76
+ const url = typeof md?.source?.url === 'string' ? md.source.url : att.url;
77
+ const title = typeof md?.title === 'string' ? md.title : undefined;
78
+ const selectedText = typeof md?.selectedText === 'string' ? md.selectedText : '';
79
+ if (url)
80
+ lines.push(` url: ${url}`);
81
+ if (title)
82
+ lines.push(` title: ${title}`);
83
+ if (selectedText) {
84
+ lines.push(' BEGIN_UNTRUSTED_WEB_SNIPPET');
85
+ lines.push(this.clip(selectedText, 4000));
86
+ lines.push(' END_UNTRUSTED_WEB_SNIPPET');
87
+ }
88
+ continue;
89
+ }
90
+ if (kind === 'formField') {
91
+ const formId = typeof md?.formId === 'string' ? md.formId : undefined;
92
+ const fieldName = typeof md?.fieldName === 'string' ? md.fieldName : undefined;
93
+ const fieldLabel = typeof md?.fieldLabel === 'string' ? md.fieldLabel : undefined;
94
+ const value = md?.value;
95
+ const inputType = typeof md?.inputType === 'string' ? md.inputType : undefined;
96
+ const options = Array.isArray(md?.options) ? md.options : [];
97
+ if (formId)
98
+ lines.push(` formId: ${formId}`);
99
+ if (fieldName)
100
+ lines.push(` field: ${fieldLabel ? `${fieldLabel} (${fieldName})` : fieldName}`);
101
+ if (inputType)
102
+ lines.push(` inputType: ${inputType}`);
103
+ if ((inputType === 'select' || inputType === 'radio') && options.length) {
104
+ const rendered = options
105
+ .slice(0, 30)
106
+ .map((o) => {
107
+ const v = typeof o?.value === 'string' ? o.value : '';
108
+ const l = typeof o?.label === 'string' ? o.label : '';
109
+ if (!v && !l)
110
+ return '';
111
+ return l && v ? `${l} (${v})` : l || v;
112
+ })
113
+ .filter(Boolean)
114
+ .join(', ');
115
+ if (rendered)
116
+ lines.push(` options: ${rendered}${options.length > 30 ? '…' : ''}`);
117
+ }
118
+ if (value !== undefined) {
119
+ const rendered = this.renderContextValue(value, { maxString: 1000, maxJson: 2500 });
120
+ if (rendered)
121
+ lines.push(` value: ${rendered}`);
122
+ }
123
+ continue;
124
+ }
125
+ if (kind === 'formSnapshot') {
126
+ const formId = typeof md?.formId === 'string' ? md.formId : undefined;
127
+ const formName = typeof md?.formName === 'string' ? md.formName : undefined;
128
+ const fields = Array.isArray(md?.fields) ? md.fields : [];
129
+ if (formId)
130
+ lines.push(` formId: ${formId}`);
131
+ if (formName)
132
+ lines.push(` formName: ${formName}`);
133
+ lines.push(' fields:');
134
+ for (const f of fields.slice(0, 50)) {
135
+ const name = typeof f?.name === 'string' ? f.name : 'unknown';
136
+ const label = typeof f?.label === 'string' ? f.label : undefined;
137
+ const value = f?.value;
138
+ const inputType = typeof f?.inputType === 'string' ? f.inputType : undefined;
139
+ const options = Array.isArray(f?.options) ? f.options : [];
140
+ const clipped = this.renderContextValue(value, { maxString: 1000, maxJson: 2500 });
141
+ const meta = [];
142
+ if (inputType)
143
+ meta.push(`type=${inputType}`);
144
+ if ((inputType === 'select' || inputType === 'radio') && options.length) {
145
+ const opts = options
146
+ .slice(0, 20)
147
+ .map((o) => (typeof o?.value === 'string' ? o.value : ''))
148
+ .filter(Boolean)
149
+ .join('|');
150
+ if (opts)
151
+ meta.push(`options=${opts}${options.length > 20 ? '|…' : ''}`);
152
+ }
153
+ lines.push(` - ${label ? `${label} (${name})` : name}${meta.length ? ` [${meta.join(', ')}]` : ''}: ${clipped}`);
154
+ }
155
+ continue;
156
+ }
157
+ if (kind === 'pageContext') {
158
+ const url = typeof md?.source?.url === 'string' ? md.source.url : att.url;
159
+ const title = typeof md?.title === 'string' ? md.title : undefined;
160
+ const route = typeof md?.source?.route === 'string' ? md.source.route : undefined;
161
+ const data = md?.data;
162
+ if (url)
163
+ lines.push(` url: ${url}`);
164
+ if (title)
165
+ lines.push(` title: ${title}`);
166
+ if (route)
167
+ lines.push(` route: ${route}`);
168
+ if (data && typeof data === 'object') {
169
+ const entries = Object.entries(data)
170
+ .filter(([k]) => typeof k === 'string' && k.length > 0)
171
+ .sort(([a], [b]) => a.localeCompare(b));
172
+ if (entries.length) {
173
+ lines.push(' data:');
174
+ const limits = { maxString: 1000, maxJson: 1500 };
175
+ for (const [k, v] of entries.slice(0, 40)) {
176
+ const rendered = this.renderContextValue(v, limits);
177
+ if (!rendered)
178
+ continue;
179
+ lines.push(` - ${k}: ${rendered}`);
180
+ }
181
+ if (entries.length > 40) {
182
+ lines.push(` - … (${entries.length - 40} more keys)`);
183
+ }
184
+ }
185
+ }
186
+ else if (data !== undefined) {
187
+ const rendered = this.renderContextValue(data, { maxString: 1000, maxJson: 2000 });
188
+ if (rendered)
189
+ lines.push(` data: ${rendered}`);
190
+ }
191
+ continue;
192
+ }
193
+ // Custom kind: prefer summary, fall back to minimal JSON.
194
+ const title = typeof md?.title === 'string' ? md.title : undefined;
195
+ const summary = typeof md?.summary === 'string' ? md.summary : undefined;
196
+ if (title)
197
+ lines.push(` title: ${title}`);
198
+ if (summary) {
199
+ lines.push(` summary: ${this.clip(summary, 4000)}`);
200
+ continue;
201
+ }
202
+ if (md?.data !== undefined) {
203
+ const rendered = this.renderContextValue(md.data, { maxString: 2000, maxJson: 5000 });
204
+ if (rendered)
205
+ lines.push(` data: ${rendered}`);
206
+ }
207
+ }
208
+ if (lines.length) {
209
+ userContent.push({
210
+ type: 'text',
211
+ text: `Context attachments (non-authoritative; user message is primary):\n ${lines.join('\n')}`
212
+ });
213
+ }
214
+ return userContent;
215
+ }
216
+ getAgentConfigs(contextKey) {
217
+ const agents = store_2.ConfigStore.getInstance().getAgentsForContext(contextKey);
218
+ if (!agents.length) {
219
+ throw new Error(`Agent configs not found for context key: ${contextKey}`);
220
+ }
221
+ return agents;
222
+ }
223
+ async getAgentOptions(params, options = {}) {
224
+ const { contextKey, messages, modelId, context, agentName } = params;
225
+ let agentConfig = store_2.ConfigStore.getInstance().getAgentConfigByName(agentName);
226
+ if (contextKey && messages) {
227
+ agentConfig = await this.selectAgentConfig(contextKey, messages);
228
+ }
229
+ const agentOptions = this.aiService.getAgentOptions(agentConfig, modelId, context);
230
+ return {
231
+ ...agentOptions,
232
+ ...options
233
+ };
234
+ }
235
+ async selectAgentConfig(contextKey, messages) {
236
+ const configs = this.getAgentConfigs(contextKey);
237
+ if (configs.length === 1) {
238
+ return configs[0];
239
+ }
240
+ const lastUsedAgent = messages.find((message) => message.agentName);
241
+ const systemPrompt = `Select the most appropriate agent for the given user message.
242
+ Return only the agent name, no quotes or extra text. ${lastUsedAgent ? `Latest Used agent: ${lastUsedAgent}` : ''}
243
+ Available agents: ${JSON.stringify(configs.map((config) => ({
244
+ name: config.name,
245
+ description: config.description,
246
+ tools: config.tools.map(({ data }) => data.title)
247
+ })))}`;
248
+ const promptMessages = messages.length > 2 ? messages.slice(messages.length - 2) : messages;
249
+ const agentName = await this.aiService.generateText({
250
+ messages: await this.convertMessages(promptMessages, true),
251
+ system: systemPrompt,
252
+ temperature: 0.1,
253
+ maxOutputTokens: 2000
254
+ });
255
+ const agent = configs.find((config) => config.name === agentName);
256
+ if (!agent) {
257
+ // fallback, agent not found, grabbing first from the list
258
+ return configs[0];
259
+ }
260
+ return agent;
261
+ }
262
+ async getAssistantResponse(messages, signal, options = {}) {
263
+ try {
264
+ const processedOptions = this.processToolChoice(options, messages);
265
+ return this.aiService.generateText({
266
+ temperature: 0.7,
267
+ maxOutputTokens: 2000,
268
+ ...processedOptions,
269
+ messages: await this.convertMessages(messages),
270
+ signal
271
+ });
272
+ }
273
+ catch (error) {
274
+ logger_1.logger.error('AI assistant response generation failed:', error);
275
+ throw error;
276
+ }
277
+ }
278
+ processToolChoice(options, agentMessages) {
279
+ if (!options?.toolChoice) {
280
+ return options || {};
281
+ }
282
+ // Find the latest assistant message
283
+ const latestAssistantMessage = [...agentMessages].reverse().find((msg) => msg.role === ai_agent_types_1.MessageRole.Assistant);
284
+ // Handle 'required' toolChoice: if any tool was called, set to 'auto'
285
+ if (options.toolChoice === 'required') {
286
+ const anyToolWasCalled = (latestAssistantMessage?.toolCalls?.length ?? 0) > 0;
287
+ if (anyToolWasCalled) {
288
+ return {
289
+ ...options,
290
+ toolChoice: 'auto'
291
+ };
292
+ }
293
+ return options;
294
+ }
295
+ // Handle specific tool toolChoice: if that specific tool was called, set to 'auto'
296
+ if (typeof options.toolChoice === 'object' && options.toolChoice.type === 'tool') {
297
+ const toolName = options.toolChoice.toolName;
298
+ const toolWasCalled = latestAssistantMessage?.toolCalls?.some((toolCall) => toolCall.name === toolName) ?? false;
299
+ if (toolWasCalled) {
300
+ return {
301
+ ...options,
302
+ toolChoice: 'auto'
303
+ };
304
+ }
305
+ }
306
+ return options;
307
+ }
308
+ async streamAssistantResponse(agentMessages, signal, options) {
309
+ const messages = await this.convertMessages(agentMessages);
310
+ const processedOptions = this.processToolChoice(options, agentMessages);
311
+ return this.aiService.streamText({
312
+ messages,
313
+ temperature: 0.7,
314
+ maxOutputTokens: 2000,
315
+ signal,
316
+ ...processedOptions
317
+ });
318
+ }
319
+ async convertMessages(agentMessages, ignoreToolsAndAttachments = false) {
320
+ const result = [];
321
+ for (const msg of agentMessages) {
322
+ if (msg.role === ai_agent_types_1.MessageRole.User) {
323
+ result.push({
324
+ role: 'user',
325
+ content: await this.convertUserMessage(msg, ignoreToolsAndAttachments)
326
+ });
327
+ }
328
+ if (msg.role === ai_agent_types_1.MessageRole.Assistant) {
329
+ const assistantMessage = {
330
+ role: 'assistant',
331
+ content: []
332
+ };
333
+ if (msg.content.trim().length) {
334
+ assistantMessage.content.push({ type: 'text', text: msg.content });
335
+ }
336
+ const toolMessage = {
337
+ role: 'tool',
338
+ content: []
339
+ };
340
+ if (!ignoreToolsAndAttachments) {
341
+ msg.toolCalls?.forEach((toolCall) => {
342
+ if (toolCall.output || toolCall.error) {
343
+ assistantMessage.content.push({
344
+ type: 'tool-call',
345
+ toolCallId: toolCall.id,
346
+ toolName: toolCall.name,
347
+ input: toolCall.input
348
+ });
349
+ toolMessage.content.push({
350
+ type: 'tool-result',
351
+ toolCallId: toolCall.id,
352
+ toolName: toolCall.name,
353
+ output: {
354
+ type: 'text',
355
+ value: JSON.stringify(toolCall.output || { error: toolCall.error })
356
+ }
357
+ });
358
+ }
359
+ });
360
+ }
361
+ if (assistantMessage.content.length) {
362
+ result.push(assistantMessage);
363
+ if (toolMessage.content.length) {
364
+ result.push(toolMessage);
365
+ }
366
+ }
367
+ }
368
+ }
369
+ return result;
370
+ }
371
+ async generateTitleForMessage(contextKey, messages) {
372
+ try {
373
+ const systemPrompt = `Generate descriptive title 5 words maximum for a chat conversation. Return only the title, no quotes or extra text. If user question is opaque, assume it is related to ${contextKey} topic.`;
374
+ return this.aiService.generateText({
375
+ messages: await this.convertMessages(messages, true),
376
+ system: systemPrompt
377
+ });
378
+ }
379
+ catch (error) {
380
+ logger_1.logger.warn('AI title generation failed, falling back to simple title generation', { error });
381
+ return `${contextKey} session ${new Date().toISOString()}`;
382
+ }
383
+ }
384
+ }
385
+ exports.AIHelper = AIHelper;
386
+ //# sourceMappingURL=AIHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIHelper.js","sourceRoot":"","sources":["../../../src/helpers/AIHelper.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,30 @@
1
- import { AdditionalContext, AgentMessage } from "@multiplayer-app/ai-agent-types";
2
- import { ModelMessage, streamText } from "ai";
3
- import { GenerateTextOptions, StreamTextOptions } from "../services/index.js";
1
+ import { AdditionalContext, AgentMessage } from '@multiplayer-app/ai-agent-types';
2
+ import { ModelMessage, streamText } from 'ai';
3
+ import { GenerateTextOptions, StreamTextOptions } from '../services';
4
+ import { FileHelper } from './FileHelper';
5
+ import { Config } from '../config';
4
6
  export declare class AIHelper {
5
- private static convertUserMessage;
6
- private static getAgentConfigs;
7
- static getAgentOptions(params: {
7
+ private fileHelper;
8
+ private aiService;
9
+ constructor(fileHelper: FileHelper, config: Config);
10
+ private clip;
11
+ private renderContextValue;
12
+ private convertUserMessage;
13
+ private getAgentConfigs;
14
+ getAgentOptions(params: {
8
15
  contextKey?: string;
9
- messages?: ModelMessage[];
16
+ messages?: AgentMessage[];
10
17
  modelId?: string;
11
18
  context?: AdditionalContext;
12
19
  agentName?: string;
13
20
  }, options?: Omit<GenerateTextOptions, 'messages' | 'system'>): Promise<Omit<GenerateTextOptions, 'messages'> & {
14
21
  name: string;
15
22
  }>;
16
- private static selectAgentConfig;
17
- static getAssistantResponse(messages: Pick<AgentMessage, 'role' | 'content' | 'attachments'>[], signal?: AbortSignal, options?: Omit<GenerateTextOptions, 'messages'>): Promise<string>;
18
- private static processToolChoice;
19
- static streamAssistantResponse(agentMessages: Pick<AgentMessage, 'role' | 'content' | 'toolCalls' | 'attachments'>[], signal?: AbortSignal, options?: Omit<StreamTextOptions, 'messages'>): Promise<ReturnType<typeof streamText>>;
20
- static convertMessages(agentMessages: Pick<AgentMessage, 'role' | 'content' | 'toolCalls' | 'attachments'>[], ignoreToolsAndAttachments?: boolean): Promise<ModelMessage[]>;
21
- static generateTitleForMessage(contextKey: string, messages: Pick<AgentMessage, 'role' | 'content'>[]): Promise<string>;
23
+ private selectAgentConfig;
24
+ getAssistantResponse(messages: Pick<AgentMessage, 'role' | 'content' | 'attachments'>[], signal?: AbortSignal, options?: Omit<GenerateTextOptions, 'messages'>): Promise<string>;
25
+ private processToolChoice;
26
+ streamAssistantResponse(agentMessages: Pick<AgentMessage, 'role' | 'content' | 'toolCalls' | 'attachments'>[], signal?: AbortSignal, options?: Omit<StreamTextOptions, 'messages'>): Promise<ReturnType<typeof streamText>>;
27
+ convertMessages(agentMessages: Pick<AgentMessage, 'role' | 'content' | 'toolCalls' | 'attachments'>[], ignoreToolsAndAttachments?: boolean): Promise<ModelMessage[]>;
28
+ generateTitleForMessage(contextKey: string, messages: Pick<AgentMessage, 'role' | 'content'>[]): Promise<string>;
22
29
  }
23
30
  //# sourceMappingURL=AIHelper.d.ts.map