@multiplayer-app/ai-agent-node 0.0.1 → 0.1.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) hide show
  1. package/dist/cjs/config.d.ts.map +1 -0
  2. package/dist/cjs/config.js +48 -0
  3. package/dist/cjs/config.js.map +1 -0
  4. package/dist/{helpers → cjs/helpers}/AIHelper.d.ts +1 -1
  5. package/dist/cjs/helpers/AIHelper.d.ts.map +1 -0
  6. package/dist/cjs/helpers/AIHelper.js +330 -0
  7. package/dist/cjs/helpers/AIHelper.js.map +1 -0
  8. package/dist/cjs/helpers/AIHelper.test.d.ts.map +1 -0
  9. package/dist/cjs/helpers/AIHelper.test.js +334 -0
  10. package/dist/cjs/helpers/AIHelper.test.js.map +1 -0
  11. package/dist/cjs/helpers/ConfigHelper.d.ts.map +1 -0
  12. package/dist/cjs/helpers/ConfigHelper.js +122 -0
  13. package/dist/cjs/helpers/ConfigHelper.js.map +1 -0
  14. package/dist/cjs/helpers/ContextLimiter.d.ts.map +1 -0
  15. package/dist/cjs/helpers/ContextLimiter.js +169 -0
  16. package/dist/cjs/helpers/ContextLimiter.js.map +1 -0
  17. package/dist/cjs/helpers/FileHelper.d.ts.map +1 -0
  18. package/dist/cjs/helpers/FileHelper.js +215 -0
  19. package/dist/cjs/helpers/FileHelper.js.map +1 -0
  20. package/dist/{helpers → cjs/helpers}/SetupHelper.d.ts +1 -1
  21. package/dist/cjs/helpers/SetupHelper.d.ts.map +1 -0
  22. package/dist/cjs/helpers/SetupHelper.js +37 -0
  23. package/dist/cjs/helpers/SetupHelper.js.map +1 -0
  24. package/dist/cjs/helpers/index.d.ts +6 -0
  25. package/dist/cjs/helpers/index.d.ts.map +1 -0
  26. package/dist/cjs/helpers/index.js +22 -0
  27. package/dist/cjs/helpers/index.js.map +1 -0
  28. package/dist/cjs/index.d.ts +14 -0
  29. package/dist/cjs/index.d.ts.map +1 -0
  30. package/dist/cjs/index.js +34 -0
  31. package/dist/cjs/index.js.map +1 -0
  32. package/dist/cjs/libs/index.d.ts +4 -0
  33. package/dist/cjs/libs/index.d.ts.map +1 -0
  34. package/dist/cjs/libs/index.js +20 -0
  35. package/dist/cjs/libs/index.js.map +1 -0
  36. package/dist/cjs/libs/kafka/config.d.ts.map +1 -0
  37. package/dist/cjs/libs/kafka/config.js +8 -0
  38. package/dist/cjs/libs/kafka/config.js.map +1 -0
  39. package/dist/cjs/libs/kafka/consumer.d.ts.map +1 -0
  40. package/dist/cjs/libs/kafka/consumer.js +133 -0
  41. package/dist/cjs/libs/kafka/consumer.js.map +1 -0
  42. package/dist/cjs/libs/kafka/index.d.ts +3 -0
  43. package/dist/cjs/libs/kafka/index.d.ts.map +1 -0
  44. package/dist/cjs/libs/kafka/index.js +19 -0
  45. package/dist/cjs/libs/kafka/index.js.map +1 -0
  46. package/dist/cjs/libs/kafka/kafka.d.ts.map +1 -0
  47. package/dist/cjs/libs/kafka/kafka.js +27 -0
  48. package/dist/cjs/libs/kafka/kafka.js.map +1 -0
  49. package/dist/cjs/libs/kafka/producer.d.ts.map +1 -0
  50. package/dist/cjs/libs/kafka/producer.js +48 -0
  51. package/dist/cjs/libs/kafka/producer.js.map +1 -0
  52. package/dist/cjs/libs/logger/config.d.ts.map +1 -0
  53. package/dist/cjs/libs/logger/config.js +9 -0
  54. package/dist/cjs/libs/logger/config.js.map +1 -0
  55. package/dist/{libs → cjs/libs}/logger/index.d.ts +2 -2
  56. package/dist/cjs/libs/logger/index.d.ts.map +1 -0
  57. package/dist/cjs/libs/logger/index.js +38 -0
  58. package/dist/cjs/libs/logger/index.js.map +1 -0
  59. package/dist/cjs/libs/logger/kafkajs-logger-creator.d.ts.map +1 -0
  60. package/dist/cjs/libs/logger/kafkajs-logger-creator.js +33 -0
  61. package/dist/cjs/libs/logger/kafkajs-logger-creator.js.map +1 -0
  62. package/dist/cjs/libs/logger/logger.d.ts.map +1 -0
  63. package/dist/cjs/libs/logger/logger.js +48 -0
  64. package/dist/cjs/libs/logger/logger.js.map +1 -0
  65. package/dist/cjs/libs/s3/config.d.ts.map +1 -0
  66. package/dist/cjs/libs/s3/config.js +10 -0
  67. package/dist/cjs/libs/s3/config.js.map +1 -0
  68. package/dist/cjs/libs/s3/index.d.ts +4 -0
  69. package/dist/cjs/libs/s3/index.d.ts.map +1 -0
  70. package/dist/cjs/libs/s3/index.js +44 -0
  71. package/dist/cjs/libs/s3/index.js.map +1 -0
  72. package/dist/cjs/libs/s3/s3.lib.d.ts.map +1 -0
  73. package/dist/cjs/libs/s3/s3.lib.js +224 -0
  74. package/dist/cjs/libs/s3/s3.lib.js.map +1 -0
  75. package/dist/{processors → cjs/processors}/ChatProcessor.d.ts +2 -2
  76. package/dist/cjs/processors/ChatProcessor.d.ts.map +1 -0
  77. package/dist/cjs/processors/ChatProcessor.js +614 -0
  78. package/dist/cjs/processors/ChatProcessor.js.map +1 -0
  79. package/dist/cjs/processors/ModelsProcessor.d.ts.map +1 -0
  80. package/dist/cjs/processors/ModelsProcessor.js +34 -0
  81. package/dist/cjs/processors/ModelsProcessor.js.map +1 -0
  82. package/dist/cjs/processors/index.d.ts +3 -0
  83. package/dist/cjs/processors/index.d.ts.map +1 -0
  84. package/dist/cjs/processors/index.js +19 -0
  85. package/dist/cjs/processors/index.js.map +1 -0
  86. package/dist/{services → cjs/services}/AIService.d.ts +1 -1
  87. package/dist/cjs/services/AIService.d.ts.map +1 -0
  88. package/dist/cjs/services/AIService.js +200 -0
  89. package/dist/cjs/services/AIService.js.map +1 -0
  90. package/dist/cjs/services/InternalEventsHandler.d.ts.map +1 -0
  91. package/dist/cjs/services/InternalEventsHandler.js +60 -0
  92. package/dist/cjs/services/InternalEventsHandler.js.map +1 -0
  93. package/dist/cjs/services/KafkaService.d.ts.map +1 -0
  94. package/dist/cjs/services/KafkaService.js +123 -0
  95. package/dist/cjs/services/KafkaService.js.map +1 -0
  96. package/dist/cjs/services/ModelFetcher.d.ts.map +1 -0
  97. package/dist/cjs/services/ModelFetcher.js +251 -0
  98. package/dist/cjs/services/ModelFetcher.js.map +1 -0
  99. package/dist/cjs/services/RedisService.d.ts.map +1 -0
  100. package/dist/cjs/services/RedisService.js +240 -0
  101. package/dist/cjs/services/RedisService.js.map +1 -0
  102. package/dist/cjs/services/SocketService.d.ts.map +1 -0
  103. package/dist/cjs/services/SocketService.js +133 -0
  104. package/dist/cjs/services/SocketService.js.map +1 -0
  105. package/dist/cjs/services/index.d.ts +7 -0
  106. package/dist/cjs/services/index.d.ts.map +1 -0
  107. package/dist/cjs/services/index.js +23 -0
  108. package/dist/cjs/services/index.js.map +1 -0
  109. package/dist/cjs/store/AgentStore.d.ts.map +1 -0
  110. package/dist/cjs/store/AgentStore.js +102 -0
  111. package/dist/cjs/store/AgentStore.js.map +1 -0
  112. package/dist/cjs/store/ArtifactStore.d.ts.map +1 -0
  113. package/dist/cjs/store/ArtifactStore.js +31 -0
  114. package/dist/cjs/store/ArtifactStore.js.map +1 -0
  115. package/dist/cjs/store/ConfigStore.d.ts.map +1 -0
  116. package/dist/cjs/store/ConfigStore.js +218 -0
  117. package/dist/cjs/store/ConfigStore.js.map +1 -0
  118. package/dist/cjs/store/ConfigStore.test.d.ts.map +1 -0
  119. package/dist/cjs/store/ConfigStore.test.js +261 -0
  120. package/dist/cjs/store/ConfigStore.test.js.map +1 -0
  121. package/dist/cjs/store/ModelStore.d.ts.map +1 -0
  122. package/dist/cjs/store/ModelStore.js +85 -0
  123. package/dist/cjs/store/ModelStore.js.map +1 -0
  124. package/dist/cjs/store/ModelStore.test.d.ts.map +1 -0
  125. package/dist/cjs/store/ModelStore.test.js +392 -0
  126. package/dist/cjs/store/ModelStore.test.js.map +1 -0
  127. package/dist/cjs/store/index.d.ts +5 -0
  128. package/dist/cjs/store/index.d.ts.map +1 -0
  129. package/dist/cjs/store/index.js +21 -0
  130. package/dist/cjs/store/index.js.map +1 -0
  131. package/dist/cjs/tools/generateChartTool.d.ts.map +1 -0
  132. package/dist/cjs/tools/generateChartTool.js +128 -0
  133. package/dist/cjs/tools/generateChartTool.js.map +1 -0
  134. package/dist/cjs/tools/proposeFormValuesTool.d.ts.map +1 -0
  135. package/dist/cjs/tools/proposeFormValuesTool.js +60 -0
  136. package/dist/cjs/tools/proposeFormValuesTool.js.map +1 -0
  137. package/dist/esm/config.d.ts +35 -0
  138. package/dist/esm/config.d.ts.map +1 -0
  139. package/dist/esm/config.js.map +1 -0
  140. package/dist/esm/helpers/AIHelper.d.ts +23 -0
  141. package/dist/esm/helpers/AIHelper.d.ts.map +1 -0
  142. package/dist/{helpers → esm/helpers}/AIHelper.js +5 -5
  143. package/dist/esm/helpers/AIHelper.js.map +1 -0
  144. package/dist/esm/helpers/AIHelper.test.d.ts +2 -0
  145. package/dist/esm/helpers/AIHelper.test.d.ts.map +1 -0
  146. package/dist/{helpers → esm/helpers}/AIHelper.test.js +2 -2
  147. package/dist/esm/helpers/AIHelper.test.js.map +1 -0
  148. package/dist/esm/helpers/ConfigHelper.d.ts +20 -0
  149. package/dist/esm/helpers/ConfigHelper.d.ts.map +1 -0
  150. package/dist/{helpers → esm/helpers}/ConfigHelper.js +1 -1
  151. package/dist/esm/helpers/ConfigHelper.js.map +1 -0
  152. package/dist/esm/helpers/ContextLimiter.d.ts +82 -0
  153. package/dist/esm/helpers/ContextLimiter.d.ts.map +1 -0
  154. package/dist/esm/helpers/ContextLimiter.js.map +1 -0
  155. package/dist/esm/helpers/FileHelper.d.ts +31 -0
  156. package/dist/esm/helpers/FileHelper.d.ts.map +1 -0
  157. package/dist/{helpers → esm/helpers}/FileHelper.js +3 -3
  158. package/dist/esm/helpers/FileHelper.js.map +1 -0
  159. package/dist/esm/helpers/SetupHelper.d.ts +5 -0
  160. package/dist/esm/helpers/SetupHelper.d.ts.map +1 -0
  161. package/dist/{helpers → esm/helpers}/SetupHelper.js +5 -5
  162. package/dist/esm/helpers/SetupHelper.js.map +1 -0
  163. package/dist/esm/helpers/index.d.ts +6 -0
  164. package/dist/esm/helpers/index.d.ts.map +1 -0
  165. package/dist/esm/helpers/index.js +6 -0
  166. package/dist/esm/helpers/index.js.map +1 -0
  167. package/dist/esm/index.d.ts +14 -0
  168. package/dist/esm/index.d.ts.map +1 -0
  169. package/dist/esm/index.js +13 -0
  170. package/dist/esm/index.js.map +1 -0
  171. package/dist/esm/libs/index.d.ts +4 -0
  172. package/dist/esm/libs/index.d.ts.map +1 -0
  173. package/dist/esm/libs/index.js +4 -0
  174. package/dist/esm/libs/index.js.map +1 -0
  175. package/dist/esm/libs/kafka/config.d.ts +5 -0
  176. package/dist/esm/libs/kafka/config.d.ts.map +1 -0
  177. package/dist/esm/libs/kafka/config.js.map +1 -0
  178. package/dist/esm/libs/kafka/consumer.d.ts +16 -0
  179. package/dist/esm/libs/kafka/consumer.d.ts.map +1 -0
  180. package/dist/{libs → esm/libs}/kafka/consumer.js +3 -3
  181. package/dist/esm/libs/kafka/consumer.js.map +1 -0
  182. package/dist/esm/libs/kafka/index.d.ts +3 -0
  183. package/dist/esm/libs/kafka/index.d.ts.map +1 -0
  184. package/dist/esm/libs/kafka/index.js +3 -0
  185. package/dist/esm/libs/kafka/index.js.map +1 -0
  186. package/dist/esm/libs/kafka/kafka.d.ts +3 -0
  187. package/dist/esm/libs/kafka/kafka.d.ts.map +1 -0
  188. package/dist/{libs → esm/libs}/kafka/kafka.js +2 -2
  189. package/dist/esm/libs/kafka/kafka.js.map +1 -0
  190. package/dist/esm/libs/kafka/producer.d.ts +11 -0
  191. package/dist/esm/libs/kafka/producer.d.ts.map +1 -0
  192. package/dist/{libs → esm/libs}/kafka/producer.js +1 -1
  193. package/dist/esm/libs/kafka/producer.js.map +1 -0
  194. package/dist/esm/libs/logger/config.d.ts +5 -0
  195. package/dist/esm/libs/logger/config.d.ts.map +1 -0
  196. package/dist/esm/libs/logger/config.js.map +1 -0
  197. package/dist/esm/libs/logger/index.d.ts +10 -0
  198. package/dist/esm/libs/logger/index.d.ts.map +1 -0
  199. package/dist/{libs → esm/libs}/logger/index.js +2 -2
  200. package/dist/esm/libs/logger/index.js.map +1 -0
  201. package/dist/esm/libs/logger/kafkajs-logger-creator.d.ts +12 -0
  202. package/dist/esm/libs/logger/kafkajs-logger-creator.d.ts.map +1 -0
  203. package/dist/{libs → esm/libs}/logger/kafkajs-logger-creator.js +1 -1
  204. package/dist/esm/libs/logger/kafkajs-logger-creator.js.map +1 -0
  205. package/dist/esm/libs/logger/logger.d.ts +42 -0
  206. package/dist/esm/libs/logger/logger.d.ts.map +1 -0
  207. package/dist/esm/libs/logger/logger.js.map +1 -0
  208. package/dist/esm/libs/s3/config.d.ts +7 -0
  209. package/dist/esm/libs/s3/config.d.ts.map +1 -0
  210. package/dist/esm/libs/s3/config.js.map +1 -0
  211. package/dist/esm/libs/s3/index.d.ts +4 -0
  212. package/dist/esm/libs/s3/index.d.ts.map +1 -0
  213. package/dist/esm/libs/s3/index.js +4 -0
  214. package/dist/esm/libs/s3/index.js.map +1 -0
  215. package/dist/esm/libs/s3/s3.lib.d.ts +25 -0
  216. package/dist/esm/libs/s3/s3.lib.d.ts.map +1 -0
  217. package/dist/{libs → esm/libs}/s3/s3.lib.js +2 -2
  218. package/dist/esm/libs/s3/s3.lib.js.map +1 -0
  219. package/dist/esm/processors/ChatProcessor.d.ts +66 -0
  220. package/dist/esm/processors/ChatProcessor.d.ts.map +1 -0
  221. package/dist/{processors → esm/processors}/ChatProcessor.js +7 -7
  222. package/dist/esm/processors/ChatProcessor.js.map +1 -0
  223. package/dist/esm/processors/ModelsProcessor.d.ts +11 -0
  224. package/dist/esm/processors/ModelsProcessor.d.ts.map +1 -0
  225. package/dist/{processors → esm/processors}/ModelsProcessor.js +1 -1
  226. package/dist/esm/processors/ModelsProcessor.js.map +1 -0
  227. package/dist/esm/processors/index.d.ts +3 -0
  228. package/dist/esm/processors/index.d.ts.map +1 -0
  229. package/dist/esm/processors/index.js +3 -0
  230. package/dist/esm/processors/index.js.map +1 -0
  231. package/dist/esm/services/AIService.d.ts +48 -0
  232. package/dist/esm/services/AIService.d.ts.map +1 -0
  233. package/dist/{services → esm/services}/AIService.js +2 -2
  234. package/dist/esm/services/AIService.js.map +1 -0
  235. package/dist/esm/services/InternalEventsHandler.d.ts +21 -0
  236. package/dist/esm/services/InternalEventsHandler.d.ts.map +1 -0
  237. package/dist/{services → esm/services}/InternalEventsHandler.js +2 -2
  238. package/dist/esm/services/InternalEventsHandler.js.map +1 -0
  239. package/dist/esm/services/KafkaService.d.ts +35 -0
  240. package/dist/esm/services/KafkaService.d.ts.map +1 -0
  241. package/dist/{services → esm/services}/KafkaService.js +5 -5
  242. package/dist/esm/services/KafkaService.js.map +1 -0
  243. package/dist/esm/services/ModelFetcher.d.ts +54 -0
  244. package/dist/esm/services/ModelFetcher.d.ts.map +1 -0
  245. package/dist/{services → esm/services}/ModelFetcher.js +2 -2
  246. package/dist/esm/services/ModelFetcher.js.map +1 -0
  247. package/dist/esm/services/RedisService.d.ts +90 -0
  248. package/dist/esm/services/RedisService.d.ts.map +1 -0
  249. package/dist/{services → esm/services}/RedisService.js +2 -2
  250. package/dist/esm/services/RedisService.js.map +1 -0
  251. package/dist/esm/services/SocketService.d.ts +39 -0
  252. package/dist/esm/services/SocketService.d.ts.map +1 -0
  253. package/dist/{services → esm/services}/SocketService.js +2 -2
  254. package/dist/esm/services/SocketService.js.map +1 -0
  255. package/dist/esm/services/index.d.ts +7 -0
  256. package/dist/esm/services/index.d.ts.map +1 -0
  257. package/dist/esm/services/index.js +7 -0
  258. package/dist/esm/services/index.js.map +1 -0
  259. package/dist/esm/store/AgentStore.d.ts +48 -0
  260. package/dist/esm/store/AgentStore.d.ts.map +1 -0
  261. package/dist/{store → esm/store}/AgentStore.js +1 -1
  262. package/dist/esm/store/AgentStore.js.map +1 -0
  263. package/dist/esm/store/ArtifactStore.d.ts +13 -0
  264. package/dist/esm/store/ArtifactStore.d.ts.map +1 -0
  265. package/dist/esm/store/ArtifactStore.js.map +1 -0
  266. package/dist/esm/store/ConfigStore.d.ts +89 -0
  267. package/dist/esm/store/ConfigStore.d.ts.map +1 -0
  268. package/dist/{store → esm/store}/ConfigStore.js +3 -3
  269. package/dist/esm/store/ConfigStore.js.map +1 -0
  270. package/dist/esm/store/ConfigStore.test.d.ts +2 -0
  271. package/dist/esm/store/ConfigStore.test.d.ts.map +1 -0
  272. package/dist/{store → esm/store}/ConfigStore.test.js +1 -1
  273. package/dist/esm/store/ConfigStore.test.js.map +1 -0
  274. package/dist/esm/store/ModelStore.d.ts +44 -0
  275. package/dist/esm/store/ModelStore.d.ts.map +1 -0
  276. package/dist/{store → esm/store}/ModelStore.js +2 -2
  277. package/dist/esm/store/ModelStore.js.map +1 -0
  278. package/dist/esm/store/ModelStore.test.d.ts +2 -0
  279. package/dist/esm/store/ModelStore.test.d.ts.map +1 -0
  280. package/dist/{store → esm/store}/ModelStore.test.js +1 -1
  281. package/dist/esm/store/ModelStore.test.js.map +1 -0
  282. package/dist/esm/store/index.d.ts +5 -0
  283. package/dist/esm/store/index.d.ts.map +1 -0
  284. package/dist/esm/store/index.js +5 -0
  285. package/dist/esm/store/index.js.map +1 -0
  286. package/dist/esm/tools/generateChartTool.d.ts +24 -0
  287. package/dist/esm/tools/generateChartTool.d.ts.map +1 -0
  288. package/dist/esm/tools/generateChartTool.js.map +1 -0
  289. package/dist/esm/tools/proposeFormValuesTool.d.ts +35 -0
  290. package/dist/esm/tools/proposeFormValuesTool.d.ts.map +1 -0
  291. package/dist/esm/tools/proposeFormValuesTool.js.map +1 -0
  292. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  293. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  294. package/package.json +18 -8
  295. package/.env.example +0 -45
  296. package/config.example.json +0 -73
  297. package/dist/config.d.ts.map +0 -1
  298. package/dist/config.js.map +0 -1
  299. package/dist/helpers/AIHelper.d.ts.map +0 -1
  300. package/dist/helpers/AIHelper.js.map +0 -1
  301. package/dist/helpers/AIHelper.test.d.ts.map +0 -1
  302. package/dist/helpers/AIHelper.test.js.map +0 -1
  303. package/dist/helpers/ConfigHelper.d.ts.map +0 -1
  304. package/dist/helpers/ConfigHelper.js.map +0 -1
  305. package/dist/helpers/ContextLimiter.d.ts.map +0 -1
  306. package/dist/helpers/ContextLimiter.js.map +0 -1
  307. package/dist/helpers/FileHelper.d.ts.map +0 -1
  308. package/dist/helpers/FileHelper.js.map +0 -1
  309. package/dist/helpers/SetupHelper.d.ts.map +0 -1
  310. package/dist/helpers/SetupHelper.js.map +0 -1
  311. package/dist/helpers/index.d.ts +0 -6
  312. package/dist/helpers/index.d.ts.map +0 -1
  313. package/dist/helpers/index.js +0 -6
  314. package/dist/helpers/index.js.map +0 -1
  315. package/dist/index.d.ts +0 -18
  316. package/dist/index.d.ts.map +0 -1
  317. package/dist/index.js +0 -17
  318. package/dist/index.js.map +0 -1
  319. package/dist/libs/index.d.ts +0 -4
  320. package/dist/libs/index.d.ts.map +0 -1
  321. package/dist/libs/index.js +0 -4
  322. package/dist/libs/index.js.map +0 -1
  323. package/dist/libs/kafka/config.d.ts.map +0 -1
  324. package/dist/libs/kafka/config.js.map +0 -1
  325. package/dist/libs/kafka/consumer.d.ts.map +0 -1
  326. package/dist/libs/kafka/consumer.js.map +0 -1
  327. package/dist/libs/kafka/index.d.ts +0 -3
  328. package/dist/libs/kafka/index.d.ts.map +0 -1
  329. package/dist/libs/kafka/index.js +0 -3
  330. package/dist/libs/kafka/index.js.map +0 -1
  331. package/dist/libs/kafka/kafka.d.ts.map +0 -1
  332. package/dist/libs/kafka/kafka.js.map +0 -1
  333. package/dist/libs/kafka/producer.d.ts.map +0 -1
  334. package/dist/libs/kafka/producer.js.map +0 -1
  335. package/dist/libs/logger/config.d.ts.map +0 -1
  336. package/dist/libs/logger/config.js.map +0 -1
  337. package/dist/libs/logger/index.d.ts.map +0 -1
  338. package/dist/libs/logger/index.js.map +0 -1
  339. package/dist/libs/logger/kafkajs-logger-creator.d.ts.map +0 -1
  340. package/dist/libs/logger/kafkajs-logger-creator.js.map +0 -1
  341. package/dist/libs/logger/logger.d.ts.map +0 -1
  342. package/dist/libs/logger/logger.js.map +0 -1
  343. package/dist/libs/s3/config.d.ts.map +0 -1
  344. package/dist/libs/s3/config.js.map +0 -1
  345. package/dist/libs/s3/index.d.ts +0 -4
  346. package/dist/libs/s3/index.d.ts.map +0 -1
  347. package/dist/libs/s3/index.js +0 -4
  348. package/dist/libs/s3/index.js.map +0 -1
  349. package/dist/libs/s3/s3.lib.d.ts.map +0 -1
  350. package/dist/libs/s3/s3.lib.js.map +0 -1
  351. package/dist/processors/ChatProcessor.d.ts.map +0 -1
  352. package/dist/processors/ChatProcessor.js.map +0 -1
  353. package/dist/processors/ModelsProcessor.d.ts.map +0 -1
  354. package/dist/processors/ModelsProcessor.js.map +0 -1
  355. package/dist/processors/index.d.ts +0 -3
  356. package/dist/processors/index.d.ts.map +0 -1
  357. package/dist/processors/index.js +0 -3
  358. package/dist/processors/index.js.map +0 -1
  359. package/dist/services/AIService.d.ts.map +0 -1
  360. package/dist/services/AIService.js.map +0 -1
  361. package/dist/services/InternalEventsHandler.d.ts.map +0 -1
  362. package/dist/services/InternalEventsHandler.js.map +0 -1
  363. package/dist/services/KafkaService.d.ts.map +0 -1
  364. package/dist/services/KafkaService.js.map +0 -1
  365. package/dist/services/ModelFetcher.d.ts.map +0 -1
  366. package/dist/services/ModelFetcher.js.map +0 -1
  367. package/dist/services/RedisService.d.ts.map +0 -1
  368. package/dist/services/RedisService.js.map +0 -1
  369. package/dist/services/SocketService.d.ts.map +0 -1
  370. package/dist/services/SocketService.js.map +0 -1
  371. package/dist/services/index.d.ts +0 -7
  372. package/dist/services/index.d.ts.map +0 -1
  373. package/dist/services/index.js +0 -7
  374. package/dist/services/index.js.map +0 -1
  375. package/dist/store/AgentStore.d.ts.map +0 -1
  376. package/dist/store/AgentStore.js.map +0 -1
  377. package/dist/store/ArtifactStore.d.ts.map +0 -1
  378. package/dist/store/ArtifactStore.js.map +0 -1
  379. package/dist/store/ConfigStore.d.ts.map +0 -1
  380. package/dist/store/ConfigStore.js.map +0 -1
  381. package/dist/store/ConfigStore.test.d.ts.map +0 -1
  382. package/dist/store/ConfigStore.test.js.map +0 -1
  383. package/dist/store/ModelStore.d.ts.map +0 -1
  384. package/dist/store/ModelStore.js.map +0 -1
  385. package/dist/store/ModelStore.test.d.ts.map +0 -1
  386. package/dist/store/ModelStore.test.js.map +0 -1
  387. package/dist/store/index.d.ts +0 -5
  388. package/dist/store/index.d.ts.map +0 -1
  389. package/dist/store/index.js +0 -5
  390. package/dist/store/index.js.map +0 -1
  391. package/dist/tools/generateChartTool.d.ts.map +0 -1
  392. package/dist/tools/generateChartTool.js.map +0 -1
  393. package/dist/tools/proposeFormValuesTool.d.ts.map +0 -1
  394. package/dist/tools/proposeFormValuesTool.js.map +0 -1
  395. package/src/config.ts +0 -46
  396. package/src/helpers/AIHelper.test.ts +0 -375
  397. package/src/helpers/AIHelper.ts +0 -353
  398. package/src/helpers/ConfigHelper.ts +0 -130
  399. package/src/helpers/ContextLimiter.ts +0 -228
  400. package/src/helpers/FileHelper.ts +0 -197
  401. package/src/helpers/SetupHelper.ts +0 -35
  402. package/src/helpers/index.ts +0 -5
  403. package/src/index.ts +0 -18
  404. package/src/libs/index.ts +0 -3
  405. package/src/libs/kafka/config.ts +0 -4
  406. package/src/libs/kafka/consumer.ts +0 -161
  407. package/src/libs/kafka/index.ts +0 -2
  408. package/src/libs/kafka/kafka.ts +0 -27
  409. package/src/libs/kafka/producer.ts +0 -48
  410. package/src/libs/logger/config.ts +0 -4
  411. package/src/libs/logger/index.ts +0 -21
  412. package/src/libs/logger/kafkajs-logger-creator.ts +0 -28
  413. package/src/libs/logger/logger.ts +0 -60
  414. package/src/libs/s3/config.ts +0 -7
  415. package/src/libs/s3/index.ts +0 -3
  416. package/src/libs/s3/s3.lib.ts +0 -284
  417. package/src/processors/ChatProcessor.ts +0 -713
  418. package/src/processors/ModelsProcessor.ts +0 -34
  419. package/src/processors/index.ts +0 -2
  420. package/src/services/AIService.ts +0 -241
  421. package/src/services/InternalEventsHandler.ts +0 -61
  422. package/src/services/KafkaService.ts +0 -142
  423. package/src/services/ModelFetcher.ts +0 -286
  424. package/src/services/RedisService.ts +0 -285
  425. package/src/services/SocketService.ts +0 -153
  426. package/src/services/index.ts +0 -6
  427. package/src/store/AgentStore.ts +0 -138
  428. package/src/store/ArtifactStore.ts +0 -29
  429. package/src/store/ConfigStore.test.ts +0 -314
  430. package/src/store/ConfigStore.ts +0 -239
  431. package/src/store/ModelStore.test.ts +0 -473
  432. package/src/store/ModelStore.ts +0 -93
  433. package/src/store/index.ts +0 -4
  434. package/src/tools/generateChartTool.ts +0 -131
  435. package/src/tools/proposeFormValuesTool.ts +0 -67
  436. package/tsconfig.json +0 -24
  437. /package/dist/{config.d.ts → cjs/config.d.ts} +0 -0
  438. /package/dist/{helpers → cjs/helpers}/AIHelper.test.d.ts +0 -0
  439. /package/dist/{helpers → cjs/helpers}/ConfigHelper.d.ts +0 -0
  440. /package/dist/{helpers → cjs/helpers}/ContextLimiter.d.ts +0 -0
  441. /package/dist/{helpers → cjs/helpers}/FileHelper.d.ts +0 -0
  442. /package/dist/{libs → cjs/libs}/kafka/config.d.ts +0 -0
  443. /package/dist/{libs → cjs/libs}/kafka/consumer.d.ts +0 -0
  444. /package/dist/{libs → cjs/libs}/kafka/kafka.d.ts +0 -0
  445. /package/dist/{libs → cjs/libs}/kafka/producer.d.ts +0 -0
  446. /package/dist/{libs → cjs/libs}/logger/config.d.ts +0 -0
  447. /package/dist/{libs → cjs/libs}/logger/kafkajs-logger-creator.d.ts +0 -0
  448. /package/dist/{libs → cjs/libs}/logger/logger.d.ts +0 -0
  449. /package/dist/{libs → cjs/libs}/s3/config.d.ts +0 -0
  450. /package/dist/{libs → cjs/libs}/s3/s3.lib.d.ts +0 -0
  451. /package/dist/{processors → cjs/processors}/ModelsProcessor.d.ts +0 -0
  452. /package/dist/{services → cjs/services}/InternalEventsHandler.d.ts +0 -0
  453. /package/dist/{services → cjs/services}/KafkaService.d.ts +0 -0
  454. /package/dist/{services → cjs/services}/ModelFetcher.d.ts +0 -0
  455. /package/dist/{services → cjs/services}/RedisService.d.ts +0 -0
  456. /package/dist/{services → cjs/services}/SocketService.d.ts +0 -0
  457. /package/dist/{store → cjs/store}/AgentStore.d.ts +0 -0
  458. /package/dist/{store → cjs/store}/ArtifactStore.d.ts +0 -0
  459. /package/dist/{store → cjs/store}/ConfigStore.d.ts +0 -0
  460. /package/dist/{store → cjs/store}/ConfigStore.test.d.ts +0 -0
  461. /package/dist/{store → cjs/store}/ModelStore.d.ts +0 -0
  462. /package/dist/{store → cjs/store}/ModelStore.test.d.ts +0 -0
  463. /package/dist/{tools → cjs/tools}/generateChartTool.d.ts +0 -0
  464. /package/dist/{tools → cjs/tools}/proposeFormValuesTool.d.ts +0 -0
  465. /package/dist/{config.js → esm/config.js} +0 -0
  466. /package/dist/{helpers → esm/helpers}/ContextLimiter.js +0 -0
  467. /package/dist/{libs → esm/libs}/kafka/config.js +0 -0
  468. /package/dist/{libs → esm/libs}/logger/config.js +0 -0
  469. /package/dist/{libs → esm/libs}/logger/logger.js +0 -0
  470. /package/dist/{libs → esm/libs}/s3/config.js +0 -0
  471. /package/dist/{store → esm/store}/ArtifactStore.js +0 -0
  472. /package/dist/{tools → esm/tools}/generateChartTool.js +0 -0
  473. /package/dist/{tools → esm/tools}/proposeFormValuesTool.js +0 -0
@@ -1,286 +0,0 @@
1
- import type { ModelOption } from '@multiplayer-app/ai-agent-types';
2
- import { config as appConfig } from '../config';
3
- import { logger } from '../libs/logger';
4
-
5
- export interface ModelFetcherConfig {
6
- openaiApiKey?: string;
7
- anthropicApiKey?: string;
8
- googleApiKey?: string;
9
- openrouterApiKey?: string;
10
- }
11
-
12
- export interface FetchedModel {
13
- id: string;
14
- provider: string;
15
- label?: string;
16
- description?: string;
17
- }
18
-
19
- export class ModelFetcher {
20
- private config: ModelFetcherConfig;
21
-
22
- constructor(config: ModelFetcherConfig = {}) {
23
- this.config = {
24
- openaiApiKey: config.openaiApiKey || appConfig.ai.openaiApiKey,
25
- anthropicApiKey: config.anthropicApiKey || appConfig.ai.anthropicApiKey,
26
- googleApiKey: config.googleApiKey || appConfig.ai.googleApiKey,
27
- openrouterApiKey: config.openrouterApiKey || appConfig.ai.openrouterApiKey
28
- };
29
- }
30
-
31
- /**
32
- * Analyze environment and fetch models for all available providers
33
- */
34
- async fetchAllModels(): Promise<ModelOption[]> {
35
- logger.info('Fetching available AI models...');
36
- const allModels: ModelOption[] = [];
37
- const providers = this.detectAvailableProviders();
38
-
39
- for (const provider of providers) {
40
- try {
41
- const models = await this.fetchModelsForProvider(provider);
42
- allModels.push(...models);
43
- } catch (error) {
44
- logger.warn(`Failed to fetch models for provider ${provider}:`, error instanceof Error ? error.message : 'Unknown error');
45
- }
46
- }
47
-
48
- return allModels;
49
- }
50
-
51
- /**
52
- * Detect which providers are available based on API keys
53
- */
54
- private detectAvailableProviders(): string[] {
55
- const providers: string[] = [];
56
-
57
- if (this.config.openrouterApiKey) {
58
- providers.push('openrouter');
59
- return providers;
60
- }
61
-
62
- if (this.config.openaiApiKey) {
63
- providers.push('openai');
64
- }
65
- if (this.config.anthropicApiKey) {
66
- providers.push('anthropic');
67
- }
68
- if (this.config.googleApiKey) {
69
- providers.push('google');
70
- }
71
- return providers;
72
- }
73
-
74
- /**
75
- * Fetch models for a specific provider
76
- */
77
- async fetchModelsForProvider(provider: string): Promise<ModelOption[]> {
78
- switch (provider) {
79
- case 'openai':
80
- return this.fetchOpenAIModels();
81
- case 'anthropic':
82
- return this.fetchAnthropicModels();
83
- case 'google':
84
- return this.fetchGoogleModels();
85
- case 'openrouter':
86
- return this.fetchOpenRouterModels();
87
- default:
88
- throw new Error(`Unsupported provider: ${provider}`);
89
- }
90
- }
91
-
92
- /**
93
- * Fetch models from OpenAI
94
- */
95
- private async fetchOpenAIModels(): Promise<ModelOption[]> {
96
- if (!this.config.openaiApiKey) {
97
- return [];
98
- }
99
-
100
- try {
101
- const response = await fetch('https://api.openai.com/v1/models', {
102
- headers: {
103
- 'Authorization': `Bearer ${this.config.openaiApiKey}`,
104
- 'Content-Type': 'application/json'
105
- }
106
- });
107
-
108
- if (!response.ok) {
109
- throw new Error(`OpenAI API returned ${response.status}: ${response.statusText}`);
110
- }
111
-
112
- const data = await response.json();
113
- const models: ModelOption[] = (data.data || [])
114
- .filter((model: any) => model.id.startsWith('gpt-') || model.id.startsWith('o1'))
115
- .map((model: any) => ({
116
- id: model.id,
117
- provider: 'openai',
118
- label: this.formatModelLabel(model.id),
119
- description: this.getModelDescription(model.id, 'openai')
120
- }));
121
-
122
- return models;
123
- } catch (error) {
124
- logger.error('Failed to fetch OpenAI models:', error);
125
- return [];
126
- }
127
- }
128
-
129
- /**
130
- * Fetch models from Anthropic
131
- */
132
- private async fetchAnthropicModels(): Promise<ModelOption[]> {
133
- if (!this.config.anthropicApiKey) {
134
- return [];
135
- }
136
-
137
- try {
138
- const response = await fetch('https://api.anthropic.com/v1/models', {
139
- headers: {
140
- 'x-api-key': this.config.anthropicApiKey,
141
- 'anthropic-version': '2023-06-01',
142
- 'Content-Type': 'application/json'
143
- }
144
- });
145
-
146
- if (!response.ok) {
147
- throw new Error(`Anthropic API returned ${response.status}: ${response.statusText}`);
148
- }
149
-
150
- const data = await response.json();
151
- const models: ModelOption[] = (data.data || [])
152
- .filter((model: any) => model.id && model.id.startsWith('claude-'))
153
- .map((model: any) => ({
154
- id: model.id,
155
- provider: 'anthropic',
156
- label: this.formatModelLabel(model.id),
157
- description: this.getModelDescription(model.id, 'anthropic')
158
- }));
159
-
160
- return models;
161
- } catch (error) {
162
- logger.error('Failed to fetch Anthropic models:', error);
163
- return [];
164
- }
165
- }
166
-
167
- /**
168
- * Fetch models from Google
169
- */
170
- private async fetchGoogleModels(): Promise<ModelOption[]> {
171
- if (!this.config.googleApiKey) {
172
- return [];
173
- }
174
-
175
- try {
176
- // Google SDK doesn't have a models.list() endpoint
177
- // Return known Google models
178
- return [
179
- {
180
- id: 'gemini-2.0-flash-exp',
181
- provider: 'google',
182
- label: 'Gemini 2.0 Flash',
183
- description: 'Google\'s latest fast and efficient model'
184
- },
185
- {
186
- id: 'gemini-1.5-pro',
187
- provider: 'google',
188
- label: 'Gemini 1.5 Pro',
189
- description: 'Google\'s advanced multimodal model'
190
- },
191
- {
192
- id: 'gemini-1.5-flash',
193
- provider: 'google',
194
- label: 'Gemini 1.5 Flash',
195
- description: 'Fast and efficient Gemini model'
196
- },
197
- {
198
- id: 'gemini-pro',
199
- provider: 'google',
200
- label: 'Gemini Pro',
201
- description: 'Google Gemini Pro model'
202
- }
203
- ];
204
- } catch (error) {
205
- logger.error('Failed to fetch Google models:', error);
206
- return [];
207
- }
208
- }
209
-
210
- /**
211
- * Fetch models from OpenRouter
212
- */
213
- private async fetchOpenRouterModels(): Promise<ModelOption[]> {
214
- if (!this.config.openrouterApiKey) {
215
- return [];
216
- }
217
-
218
- try {
219
- const response = await fetch('https://openrouter.ai/api/v1/models?supported_parameters=tools', {
220
- headers: {
221
- 'Authorization': `Bearer ${this.config.openrouterApiKey}`,
222
- 'Content-Type': 'application/json'
223
- }
224
- });
225
-
226
- if (!response.ok) {
227
- throw new Error(`OpenRouter API returned ${response.status}: ${response.statusText}`);
228
- }
229
-
230
- const data = await response.json();
231
- const models: ModelOption[] = (data.data || []).map((model: any) => ({
232
- id: model.id,
233
- provider: model.id.split('/')[0],
234
- label: model.name || this.formatModelLabel(model.id),
235
- description: model.description || `OpenRouter model: ${model.id}`
236
- }))
237
- .filter((model: ModelOption) =>
238
- model.provider === 'openai' ||
239
- model.provider === 'anthropic' ||
240
- model.provider === 'google')
241
- .map((model: ModelOption) => ({
242
- ...model,
243
- provider: 'openrouter'
244
- }));
245
- return models;
246
- } catch (error) {
247
- logger.error('Failed to fetch OpenRouter models:', error);
248
- return [];
249
- }
250
- }
251
-
252
- /**
253
- * Format model ID into a readable label
254
- */
255
- private formatModelLabel(modelId: string): string {
256
- // Convert "gpt-4o" to "GPT-4o"
257
- return modelId
258
- .split('-')
259
- .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
260
- .join(' ');
261
- }
262
-
263
- /**
264
- * Get description for known models
265
- */
266
- private getModelDescription(modelId: string, provider: string): string | undefined {
267
- const descriptions: Record<string, string> = {
268
- // OpenAI models
269
- 'gpt-4o': 'OpenAI\'s most advanced multimodal model',
270
- 'gpt-4o-mini': 'Faster and more affordable GPT-4o variant',
271
- 'gpt-4-turbo': 'High-performance GPT-4 variant',
272
- 'gpt-4': 'OpenAI GPT-4 model',
273
- 'gpt-3.5-turbo': 'Fast and efficient GPT-3.5 model',
274
- 'o1-preview': 'OpenAI O1 reasoning model',
275
- 'o1-mini': 'OpenAI O1 Mini reasoning model',
276
- // Anthropic models
277
- 'claude-3-5-sonnet-20241022': 'Anthropic\'s latest and most capable model',
278
- 'claude-3.5-sonnet-20241022': 'Anthropic\'s latest and most capable model',
279
- 'claude-3-opus-20240229': 'Anthropic\'s most powerful model',
280
- 'claude-3-sonnet-20240229': 'Balanced performance and speed',
281
- 'claude-3-haiku-20240307': 'Fastest and most affordable Claude model'
282
- };
283
-
284
- return descriptions[modelId] || `${provider} model: ${modelId}`;
285
- }
286
- }
@@ -1,285 +0,0 @@
1
- import { createClient, RedisClientType } from 'redis';
2
- import { config, getRedisUrl } from '../config';
3
- import { logger } from '../libs/logger';
4
-
5
- export interface RedisConfig {
6
- url?: string;
7
- host?: string;
8
- port?: number;
9
- password?: string;
10
- database?: number;
11
- }
12
-
13
- type RedisPubSubClient = ReturnType<typeof createClient>;
14
- type RedisPubSubPair = { pubClient: RedisPubSubClient; subClient: RedisPubSubClient };
15
-
16
- export class RedisService {
17
- private client: RedisClientType | null = null;
18
- private pubSubClients: Map<string, RedisPubSubPair> = new Map();
19
- private isConnected: boolean = false;
20
-
21
- /**
22
- * Initialize Redis client connection
23
- */
24
- async initialize(redisConfigOverride?: RedisConfig): Promise<void> {
25
- if (this.client && this.isConnected) {
26
- logger.info('Redis client already initialized');
27
- return;
28
- }
29
-
30
- const redisUrl = redisConfigOverride?.url ||
31
- config.redis.url ||
32
- `redis://${redisConfigOverride?.host || config.redis.host}:${redisConfigOverride?.port || config.redis.port}`;
33
-
34
- const redisConfig: any = {
35
- url: redisUrl
36
- };
37
-
38
- if (redisConfigOverride?.password || config.redis.password) {
39
- redisConfig.password = redisConfigOverride?.password || config.redis.password;
40
- }
41
-
42
- if (redisConfigOverride?.database !== undefined || config.redis.database !== undefined) {
43
- redisConfig.database = redisConfigOverride?.database ?? config.redis.database ?? 0;
44
- }
45
-
46
- this.client = createClient(redisConfig);
47
-
48
- this.client.on('error', (err) => {
49
- logger.error('Redis Client Error:', err);
50
- this.isConnected = false;
51
- });
52
-
53
- this.client.on('connect', () => {
54
- logger.info('Redis Client connecting...');
55
- });
56
-
57
- this.client.on('ready', () => {
58
- logger.info('Redis Client ready');
59
- this.isConnected = true;
60
- });
61
-
62
- this.client.on('reconnecting', () => {
63
- logger.info('Redis Client reconnecting...');
64
- });
65
-
66
- this.client.on('end', () => {
67
- logger.info('Redis Client connection ended');
68
- this.isConnected = false;
69
- });
70
-
71
- try {
72
- await this.client.connect();
73
- logger.info('Redis client connected successfully');
74
- } catch (error) {
75
- logger.error('Failed to connect to Redis:', error);
76
- throw error;
77
- }
78
- }
79
-
80
- /**
81
- * Get a value by key
82
- */
83
- async get(key: string): Promise<string | null> {
84
- if (!this.client || !this.isConnected) {
85
- throw new Error('Redis client not initialized or not connected');
86
- }
87
- return await this.client.get(key);
88
- }
89
-
90
- /**
91
- * Set a key-value pair
92
- */
93
- async set(key: string, value: string, options?: { EX?: number; PX?: number }): Promise<void> {
94
- if (!this.client || !this.isConnected) {
95
- throw new Error('Redis client not initialized or not connected');
96
- }
97
- await this.client.set(key, value, options);
98
- }
99
-
100
- /**
101
- * Delete a key
102
- */
103
- async del(key: string): Promise<number> {
104
- if (!this.client || !this.isConnected) {
105
- throw new Error('Redis client not initialized or not connected');
106
- }
107
- return await this.client.del(key);
108
- }
109
-
110
- /**
111
- * Check if a key exists
112
- */
113
- async exists(key: string): Promise<number> {
114
- if (!this.client || !this.isConnected) {
115
- throw new Error('Redis client not initialized or not connected');
116
- }
117
- return await this.client.exists(key);
118
- }
119
-
120
- /**
121
- * Set expiration on a key
122
- * @returns true if the timeout was set, false if the key doesn't exist
123
- */
124
- async expire(key: string, seconds: number): Promise<boolean> {
125
- if (!this.client || !this.isConnected) {
126
- throw new Error('Redis client not initialized or not connected');
127
- }
128
- return (await this.client.expire(key, seconds)) === 1;
129
- }
130
-
131
- /**
132
- * Get TTL (time to live) of a key
133
- */
134
- async ttl(key: string): Promise<number> {
135
- if (!this.client || !this.isConnected) {
136
- throw new Error('Redis client not initialized or not connected');
137
- }
138
- return await this.client.ttl(key);
139
- }
140
-
141
- /**
142
- * Increment a key's value
143
- */
144
- async incr(key: string): Promise<number> {
145
- if (!this.client || !this.isConnected) {
146
- throw new Error('Redis client not initialized or not connected');
147
- }
148
- return await this.client.incr(key);
149
- }
150
-
151
- /**
152
- * Decrement a key's value
153
- */
154
- async decr(key: string): Promise<number> {
155
- if (!this.client || !this.isConnected) {
156
- throw new Error('Redis client not initialized or not connected');
157
- }
158
- return await this.client.decr(key);
159
- }
160
-
161
- /**
162
- * Get multiple keys
163
- */
164
- async mGet(keys: string[]): Promise<(string | null)[]> {
165
- if (!this.client || !this.isConnected) {
166
- throw new Error('Redis client not initialized or not connected');
167
- }
168
- return await this.client.mGet(keys);
169
- }
170
-
171
- /**
172
- * Set multiple key-value pairs
173
- */
174
- async mSet(keyValuePairs: Record<string, string>): Promise<void> {
175
- if (!this.client || !this.isConnected) {
176
- throw new Error('Redis client not initialized or not connected');
177
- }
178
- await this.client.mSet(keyValuePairs);
179
- }
180
-
181
- /**
182
- * Get all keys matching a pattern
183
- */
184
- async keys(pattern: string): Promise<string[]> {
185
- if (!this.client || !this.isConnected) {
186
- throw new Error('Redis client not initialized or not connected');
187
- }
188
- return await this.client.keys(pattern);
189
- }
190
-
191
- /**
192
- * Get the Redis client instance
193
- */
194
- getClient(): RedisClientType | null {
195
- return this.client;
196
- }
197
-
198
- /**
199
- * Get or create pub/sub clients for Socket.IO adapter
200
- * These are separate clients needed for the Redis adapter
201
- */
202
- async getPubSubClients(name: string = 'default'): Promise<RedisPubSubPair> {
203
- const existingPair = this.pubSubClients.get(name);
204
- if (existingPair) {
205
- return existingPair;
206
- }
207
-
208
- const redisUrl = getRedisUrl();
209
- const redisConfig: any = {
210
- url: redisUrl
211
- };
212
-
213
- if (config.redis.password) {
214
- redisConfig.password = config.redis.password;
215
- }
216
-
217
- if (config.redis.database !== undefined) {
218
- redisConfig.database = config.redis.database;
219
- }
220
-
221
- // Create pub client
222
- const pubClient = createClient(redisConfig);
223
-
224
- // Create sub client as duplicate of pub client
225
- const subClient = pubClient.duplicate();
226
-
227
- // Set up error handlers
228
- pubClient.on('error', (err) => {
229
- logger.error('Redis Pub Client Error:', err);
230
- });
231
-
232
- subClient.on('error', (err) => {
233
- logger.error('Redis Sub Client Error:', err);
234
- });
235
-
236
- // Connect both clients
237
- try {
238
- await Promise.all([pubClient.connect(), subClient.connect()]);
239
- logger.info(`Redis pub/sub clients connected successfully for ${name}`);
240
- const pair = { pubClient, subClient };
241
- this.pubSubClients.set(name, pair);
242
- return pair;
243
- } catch (error) {
244
- logger.error(`Failed to connect Redis pub/sub clients for ${name}:`, error);
245
- throw error;
246
- }
247
- }
248
-
249
- /**
250
- * Check if the client is connected
251
- */
252
- isClientConnected(): boolean {
253
- return this.isConnected;
254
- }
255
-
256
- /**
257
- * Disconnect from Redis
258
- */
259
- async disconnect(): Promise<void> {
260
- const disconnectPromises: Promise<void>[] = [];
261
-
262
- if (this.client) {
263
- disconnectPromises.push(this.client.quit().then(() => {
264
- this.client = null;
265
- }));
266
- }
267
-
268
- this.pubSubClients.forEach(({ pubClient, subClient }) => {
269
- disconnectPromises.push(
270
- pubClient.quit().then(() => undefined).catch(() => undefined)
271
- );
272
- disconnectPromises.push(
273
- subClient.quit().then(() => undefined).catch(() => undefined)
274
- );
275
- });
276
- this.pubSubClients.clear();
277
-
278
- await Promise.all(disconnectPromises);
279
- this.isConnected = false;
280
- logger.info('Redis clients disconnected');
281
- }
282
- }
283
- // Singleton instance
284
- export const redisService = new RedisService();
285
-