@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,473 +0,0 @@
1
- import { describe, it, expect, beforeEach } from 'vitest';
2
- import { ModelStore } from './ModelStore';
3
- import type { ModelOption } from '@multiplayer-app/ai-agent-types';
4
-
5
- describe('ModelStore', () => {
6
- let modelStore: ModelStore;
7
-
8
- // Helper to create mock models
9
- const createMockModel = (
10
- id: string,
11
- label: string,
12
- provider?: string,
13
- options?: Partial<ModelOption>
14
- ): ModelOption => ({
15
- id,
16
- label,
17
- provider,
18
- ...options
19
- });
20
-
21
- beforeEach(() => {
22
- // Clear the singleton instance before each test
23
- // We need to access the private instance property, so we'll clear via clear()
24
- modelStore = ModelStore.getInstance();
25
- modelStore.clear();
26
- });
27
-
28
- describe('getInstance', () => {
29
- it('should return the same singleton instance on multiple calls', () => {
30
- const instance1 = ModelStore.getInstance();
31
- const instance2 = ModelStore.getInstance();
32
- expect(instance1).toBe(instance2);
33
- });
34
-
35
- it('should return an instance of ModelStore', () => {
36
- const instance = ModelStore.getInstance();
37
- expect(instance).toBeInstanceOf(ModelStore);
38
- });
39
- });
40
-
41
- describe('setModels', () => {
42
- it('should set models in the store', () => {
43
- const models: ModelOption[] = [
44
- createMockModel('openai/gpt-4', 'GPT-4', 'openai'),
45
- createMockModel('anthropic/claude-3', 'Claude 3', 'anthropic')
46
- ];
47
-
48
- modelStore.setModels(models);
49
- expect(modelStore.getModels()).toEqual(models);
50
- });
51
-
52
- it('should update lastFetched timestamp when setting models', () => {
53
- const models: ModelOption[] = [
54
- createMockModel('openai/gpt-4', 'GPT-4', 'openai')
55
- ];
56
-
57
- const beforeSet = new Date();
58
- modelStore.setModels(models);
59
- const afterSet = new Date();
60
- const lastFetched = modelStore.getLastFetched();
61
-
62
- expect(lastFetched).not.toBeNull();
63
- expect(lastFetched!.getTime()).toBeGreaterThanOrEqual(beforeSet.getTime());
64
- expect(lastFetched!.getTime()).toBeLessThanOrEqual(afterSet.getTime());
65
- });
66
-
67
- it('should handle empty array', () => {
68
- modelStore.setModels([]);
69
- expect(modelStore.getModels()).toEqual([]);
70
- expect(modelStore.hasModels()).toBe(false);
71
- });
72
-
73
- it('should replace existing models when called multiple times', () => {
74
- const models1: ModelOption[] = [
75
- createMockModel('openai/gpt-4', 'GPT-4', 'openai')
76
- ];
77
- const models2: ModelOption[] = [
78
- createMockModel('anthropic/claude-3', 'Claude 3', 'anthropic'),
79
- createMockModel('openai/gpt-3.5', 'GPT-3.5', 'openai')
80
- ];
81
-
82
- modelStore.setModels(models1);
83
- expect(modelStore.getModels()).toHaveLength(1);
84
-
85
- modelStore.setModels(models2);
86
- expect(modelStore.getModels()).toHaveLength(2);
87
- expect(modelStore.getModels()).toEqual(models2);
88
- });
89
- });
90
-
91
- describe('getModels', () => {
92
- it('should return empty array when no models are set', () => {
93
- expect(modelStore.getModels()).toEqual([]);
94
- });
95
-
96
- it('should return all models that were set', () => {
97
- const models: ModelOption[] = [
98
- createMockModel('openai/gpt-4', 'GPT-4', 'openai'),
99
- createMockModel('anthropic/claude-3', 'Claude 3', 'anthropic'),
100
- createMockModel('google/gemini-pro', 'Gemini Pro', 'google')
101
- ];
102
-
103
- modelStore.setModels(models);
104
- expect(modelStore.getModels()).toEqual(models);
105
- expect(modelStore.getModels()).toHaveLength(3);
106
- });
107
-
108
- it('should return the same array reference (direct reference to internal array)', () => {
109
- const models: ModelOption[] = [
110
- createMockModel('openai/gpt-4', 'GPT-4', 'openai')
111
- ];
112
- modelStore.setModels(models);
113
-
114
- const retrieved = modelStore.getModels();
115
- // Note: getModels() returns the internal array directly, not a copy
116
- expect(retrieved).toBe(modelStore.getModels()); // Same reference on multiple calls
117
- expect(retrieved).toEqual(models); // Same content
118
- });
119
- });
120
-
121
- describe('getModelsByProvider', () => {
122
- beforeEach(() => {
123
- modelStore.setModels([
124
- createMockModel('openai/gpt-4', 'GPT-4', 'openai'),
125
- createMockModel('openai/gpt-3.5', 'GPT-3.5', 'openai'),
126
- createMockModel('anthropic/claude-3', 'Claude 3', 'anthropic'),
127
- createMockModel('google/gemini-pro', 'Gemini Pro', 'google')
128
- ]);
129
- });
130
-
131
- it('should return models for a specific provider', () => {
132
- const openaiModels = modelStore.getModelsByProvider('openai');
133
- expect(openaiModels).toHaveLength(2);
134
- expect(openaiModels.every((m) => m.provider === 'openai')).toBe(true);
135
- });
136
-
137
- it('should return empty array for non-existent provider', () => {
138
- const models = modelStore.getModelsByProvider('nonexistent');
139
- expect(models).toEqual([]);
140
- });
141
-
142
- it('should return empty array for provider with no models', () => {
143
- const models = modelStore.getModelsByProvider('azure');
144
- expect(models).toEqual([]);
145
- });
146
-
147
- it('should handle case-sensitive provider names', () => {
148
- const models = modelStore.getModelsByProvider('OpenAI');
149
- expect(models).toEqual([]); // Should be case-sensitive
150
- });
151
-
152
- it('should return models without provider when filtering for empty string', () => {
153
- modelStore.setModels([
154
- createMockModel('model-1', 'Model 1'), // No provider
155
- createMockModel('openai/gpt-4', 'GPT-4', 'openai')
156
- ]);
157
-
158
- const modelsWithoutProvider = modelStore.getModelsByProvider('');
159
- expect(modelsWithoutProvider).toHaveLength(0); // Empty string won't match undefined
160
- });
161
- });
162
-
163
- describe('getModelById', () => {
164
- beforeEach(() => {
165
- modelStore.setModels([
166
- createMockModel('openai/gpt-4', 'GPT-4', 'openai'),
167
- createMockModel('anthropic/claude-3-opus', 'Claude 3 Opus', 'anthropic'),
168
- createMockModel('google/gemini-pro', 'Gemini Pro', 'google'),
169
- createMockModel('simple-model', 'Simple Model', 'custom')
170
- ]);
171
- });
172
-
173
- it('should return model when exact ID matches', () => {
174
- const model = modelStore.getModelById('openai/gpt-4');
175
- expect(model).toBeDefined();
176
- expect(model?.id).toBe('openai/gpt-4');
177
- expect(model?.label).toBe('GPT-4');
178
- });
179
-
180
- it('should return model using fallback logic when exact match not found', () => {
181
- // split('/', 2) limits to 2 parts, so 'some/prefix/gpt-4' becomes ['some', 'prefix/gpt-4']
182
- // The fallback looks for models ending with 'prefix/gpt-4', which won't match 'openai/gpt-4'
183
- // So this test should expect undefined, or we need to test with a 2-part ID
184
- const model = modelStore.getModelById('some/gpt-4');
185
- expect(model).toBeDefined();
186
- expect(model?.id).toBe('openai/gpt-4');
187
- });
188
-
189
- it('should return model using fallback when ID has no provider information', () => {
190
- const model = modelStore.getModelById('claude-3-opus');
191
- expect(model).toBeDefined();
192
- expect(model?.id).toBe('anthropic/claude-3-opus');
193
- });
194
- it('should return model when ID has provider info, but model list does not', () => {
195
- const model = modelStore.getModelById('custom/simple-model');
196
- expect(model).toBeDefined();
197
- expect(model?.id).toBe('simple-model');
198
- });
199
-
200
- it('should return undefined when model not found', () => {
201
- // Note: empty string ID will match any model because endsWith('') is always true
202
- // So we test with a clearly non-matching ID
203
- const model = modelStore.getModelById('nonexistent/definitely-not-a-model');
204
- expect(model).toBeUndefined();
205
- });
206
-
207
- it('should return first model for empty string ID (endsWith edge case)', () => {
208
- // Empty string causes split('/') to return [''], and endsWith('') matches all strings
209
- // This is a known edge case in the implementation
210
- const model = modelStore.getModelById('');
211
- expect(model).toBeDefined(); // Will match first model due to endsWith('') behavior
212
- });
213
-
214
- it('should handle ID without slash (no fallback needed)', () => {
215
- const model = modelStore.getModelById('simple-model');
216
- expect(model).toBeDefined();
217
- expect(model?.id).toBe('simple-model');
218
- });
219
-
220
- it('should handle ID with only one segment (no slash)', () => {
221
- // When split('/') returns array with one element, idData[idData.length - 1] is that element
222
- const model = modelStore.getModelById('simple-model');
223
- expect(model).toBeDefined();
224
- expect(model?.id).toBe('simple-model');
225
- });
226
-
227
- it('should prefer exact match over fallback', () => {
228
- // If we have both exact match and a model that would match fallback
229
- modelStore.setModels([
230
- createMockModel('openai/gpt-4', 'GPT-4', 'openai'),
231
- createMockModel('custom/gpt-4', 'Custom GPT-4', 'custom')
232
- ]);
233
-
234
- const model = modelStore.getModelById('openai/gpt-4');
235
- expect(model?.id).toBe('openai/gpt-4'); // Should get exact match
236
- });
237
- });
238
-
239
- describe('getProviders', () => {
240
- it('should return empty array when no models are set', () => {
241
- expect(modelStore.getProviders()).toEqual([]);
242
- });
243
-
244
- it('should return unique providers from models', () => {
245
- modelStore.setModels([
246
- createMockModel('openai/gpt-4', 'GPT-4', 'openai'),
247
- createMockModel('openai/gpt-3.5', 'GPT-3.5', 'openai'),
248
- createMockModel('anthropic/claude-3', 'Claude 3', 'anthropic')
249
- ]);
250
-
251
- const providers = modelStore.getProviders();
252
- expect(providers).toHaveLength(2);
253
- expect(providers).toContain('openai');
254
- expect(providers).toContain('anthropic');
255
- });
256
-
257
- it('should not include duplicates', () => {
258
- modelStore.setModels([
259
- createMockModel('openai/gpt-4', 'GPT-4', 'openai'),
260
- createMockModel('openai/gpt-3.5', 'GPT-3.5', 'openai'),
261
- createMockModel('openai/gpt-4-turbo', 'GPT-4 Turbo', 'openai')
262
- ]);
263
-
264
- const providers = modelStore.getProviders();
265
- expect(providers).toHaveLength(1);
266
- expect(providers).toEqual(['openai']);
267
- });
268
-
269
- it('should exclude models without provider', () => {
270
- modelStore.setModels([
271
- createMockModel('model-1', 'Model 1'), // No provider
272
- createMockModel('openai/gpt-4', 'GPT-4', 'openai'),
273
- createMockModel('model-2', 'Model 2') // No provider
274
- ]);
275
-
276
- const providers = modelStore.getProviders();
277
- expect(providers).toEqual(['openai']);
278
- });
279
-
280
- it('should return empty array when all models have no provider', () => {
281
- modelStore.setModels([
282
- createMockModel('model-1', 'Model 1'),
283
- createMockModel('model-2', 'Model 2')
284
- ]);
285
-
286
- const providers = modelStore.getProviders();
287
- expect(providers).toEqual([]);
288
- });
289
- });
290
-
291
- describe('getLastFetched', () => {
292
- it('should return null when no models have been set', () => {
293
- expect(modelStore.getLastFetched()).toBeNull();
294
- });
295
-
296
- it('should return date when models have been set', () => {
297
- const models: ModelOption[] = [
298
- createMockModel('openai/gpt-4', 'GPT-4', 'openai')
299
- ];
300
-
301
- modelStore.setModels(models);
302
- const lastFetched = modelStore.getLastFetched();
303
-
304
- expect(lastFetched).not.toBeNull();
305
- expect(lastFetched).toBeInstanceOf(Date);
306
- });
307
-
308
- it('should return null after clear()', () => {
309
- modelStore.setModels([
310
- createMockModel('openai/gpt-4', 'GPT-4', 'openai')
311
- ]);
312
- expect(modelStore.getLastFetched()).not.toBeNull();
313
-
314
- modelStore.clear();
315
- expect(modelStore.getLastFetched()).toBeNull();
316
- });
317
-
318
- it('should update timestamp when setModels is called again', async () => {
319
- const models: ModelOption[] = [
320
- createMockModel('openai/gpt-4', 'GPT-4', 'openai')
321
- ];
322
-
323
- modelStore.setModels(models);
324
- const firstTimestamp = modelStore.getLastFetched()!.getTime();
325
-
326
- // Wait a small amount to ensure different timestamp
327
- await new Promise((resolve) => setTimeout(resolve, 10));
328
-
329
- modelStore.setModels(models);
330
- const secondTimestamp = modelStore.getLastFetched()!.getTime();
331
-
332
- expect(secondTimestamp).toBeGreaterThan(firstTimestamp);
333
- });
334
- });
335
-
336
- describe('hasModels', () => {
337
- it('should return false when no models are set', () => {
338
- expect(modelStore.hasModels()).toBe(false);
339
- });
340
-
341
- it('should return true when models are set', () => {
342
- modelStore.setModels([
343
- createMockModel('openai/gpt-4', 'GPT-4', 'openai')
344
- ]);
345
- expect(modelStore.hasModels()).toBe(true);
346
- });
347
-
348
- it('should return false after clear()', () => {
349
- modelStore.setModels([
350
- createMockModel('openai/gpt-4', 'GPT-4', 'openai')
351
- ]);
352
- expect(modelStore.hasModels()).toBe(true);
353
-
354
- modelStore.clear();
355
- expect(modelStore.hasModels()).toBe(false);
356
- });
357
-
358
- it('should return false when empty array is set', () => {
359
- modelStore.setModels([]);
360
- expect(modelStore.hasModels()).toBe(false);
361
- });
362
- });
363
-
364
- describe('clear', () => {
365
- it('should clear all models', () => {
366
- modelStore.setModels([
367
- createMockModel('openai/gpt-4', 'GPT-4', 'openai'),
368
- createMockModel('anthropic/claude-3', 'Claude 3', 'anthropic')
369
- ]);
370
-
371
- expect(modelStore.hasModels()).toBe(true);
372
- modelStore.clear();
373
- expect(modelStore.hasModels()).toBe(false);
374
- expect(modelStore.getModels()).toEqual([]);
375
- });
376
-
377
- it('should reset lastFetched to null', () => {
378
- modelStore.setModels([
379
- createMockModel('openai/gpt-4', 'GPT-4', 'openai')
380
- ]);
381
-
382
- expect(modelStore.getLastFetched()).not.toBeNull();
383
- modelStore.clear();
384
- expect(modelStore.getLastFetched()).toBeNull();
385
- });
386
-
387
- it('should be safe to call when store is already empty', () => {
388
- expect(() => modelStore.clear()).not.toThrow();
389
- expect(modelStore.hasModels()).toBe(false);
390
- });
391
-
392
- it('should clear providers list', () => {
393
- modelStore.setModels([
394
- createMockModel('openai/gpt-4', 'GPT-4', 'openai')
395
- ]);
396
-
397
- expect(modelStore.getProviders()).toHaveLength(1);
398
- modelStore.clear();
399
- expect(modelStore.getProviders()).toEqual([]);
400
- });
401
- });
402
-
403
- describe('integration scenarios', () => {
404
- it('should handle complete workflow: set, query, clear, set again', () => {
405
- // Initial state
406
- expect(modelStore.hasModels()).toBe(false);
407
- expect(modelStore.getModels()).toEqual([]);
408
-
409
- // Set models
410
- const models1: ModelOption[] = [
411
- createMockModel('openai/gpt-4', 'GPT-4', 'openai'),
412
- createMockModel('anthropic/claude-3', 'Claude 3', 'anthropic')
413
- ];
414
- modelStore.setModels(models1);
415
-
416
- expect(modelStore.hasModels()).toBe(true);
417
- expect(modelStore.getModels()).toHaveLength(2);
418
- expect(modelStore.getProviders()).toHaveLength(2);
419
- expect(modelStore.getModelById('openai/gpt-4')).toBeDefined();
420
-
421
- // Clear
422
- modelStore.clear();
423
- expect(modelStore.hasModels()).toBe(false);
424
- expect(modelStore.getModels()).toEqual([]);
425
- expect(modelStore.getProviders()).toEqual([]);
426
-
427
- // Set again
428
- const models2: ModelOption[] = [
429
- createMockModel('google/gemini-pro', 'Gemini Pro', 'google')
430
- ];
431
- modelStore.setModels(models2);
432
-
433
- expect(modelStore.hasModels()).toBe(true);
434
- expect(modelStore.getModels()).toHaveLength(1);
435
- expect(modelStore.getProviders()).toEqual(['google']);
436
- });
437
-
438
- it('should handle models with all optional fields', () => {
439
- const complexModels: ModelOption[] = [
440
- {
441
- id: 'openai/gpt-4',
442
- label: 'GPT-4',
443
- provider: 'openai',
444
- reasoning: 'deep',
445
- contexts: ['context1', 'context2'],
446
- description: 'A powerful model'
447
- },
448
- {
449
- id: 'anthropic/claude-3',
450
- label: 'Claude 3',
451
- provider: 'anthropic',
452
- reasoning: 'concise',
453
- contexts: ['context1']
454
- },
455
- {
456
- id: 'simple-model',
457
- label: 'Simple'
458
- // No optional fields
459
- }
460
- ];
461
-
462
- modelStore.setModels(complexModels);
463
-
464
- expect(modelStore.getModels()).toHaveLength(3);
465
- expect(modelStore.getProviders()).toHaveLength(2); // Only 2 have providers
466
-
467
- const gpt4 = modelStore.getModelById('openai/gpt-4');
468
- expect(gpt4?.reasoning).toBe('deep');
469
- expect(gpt4?.contexts).toEqual(['context1', 'context2']);
470
- expect(gpt4?.description).toBe('A powerful model');
471
- });
472
- });
473
- });
@@ -1,93 +0,0 @@
1
- import type { ModelOption } from '@multiplayer-app/ai-agent-types';
2
- import { logger } from '../libs/logger';
3
- import { ConfigStore } from './ConfigStore';
4
-
5
- export class ModelStore {
6
- private static instance: ModelStore;
7
- private models: ModelOption[] = [];
8
- private lastFetched: Date | null = null;
9
-
10
- private constructor() {}
11
-
12
- /**
13
- * Get the singleton instance of ModelStore
14
- */
15
- static getInstance(): ModelStore {
16
- if (!ModelStore.instance) {
17
- ModelStore.instance = new ModelStore();
18
- }
19
- return ModelStore.instance;
20
- }
21
-
22
- /**
23
- * Set models in the store
24
- */
25
- setModels(models: ModelOption[]): void {
26
- this.models = models.filter((model) => ConfigStore.getInstance().isModelAllowed(model.id, model.provider));
27
- this.lastFetched = new Date();
28
- logger.info(`Loaded ${models.length} models, available after filtering: ${this.models.length} from ${this.getProviders().length} providers`);
29
- }
30
-
31
- /**
32
- * Get all models
33
- */
34
- getModels(): ModelOption[] {
35
- return this.models;
36
- }
37
-
38
- /**
39
- * Get models by provider
40
- */
41
- getModelsByProvider(provider: string): ModelOption[] {
42
- return this.models.filter((model) => model.provider === provider);
43
- }
44
-
45
- /**
46
- * Get a specific model by ID
47
- */
48
- getModelById(id: string): ModelOption | undefined {
49
- const found = this.models.find((model) => model.id === id);
50
-
51
- if (found) {
52
- return found;
53
- }
54
- const idData = id.split('/', 2)
55
- const modelName = idData[idData.length - 1];
56
- return this.models.find((model) => model.id.endsWith(modelName));
57
- }
58
-
59
- /**
60
- * Get all unique providers
61
- */
62
- getProviders(): string[] {
63
- const providers = new Set<string>();
64
- for (const model of this.models) {
65
- if (model.provider) {
66
- providers.add(model.provider);
67
- }
68
- }
69
- return Array.from(providers);
70
- }
71
-
72
- /**
73
- * Get when models were last fetched
74
- */
75
- getLastFetched(): Date | null {
76
- return this.lastFetched;
77
- }
78
-
79
- /**
80
- * Check if models have been loaded
81
- */
82
- hasModels(): boolean {
83
- return this.models.length > 0;
84
- }
85
-
86
- /**
87
- * Clear all models
88
- */
89
- clear(): void {
90
- this.models = [];
91
- this.lastFetched = null;
92
- }
93
- }
@@ -1,4 +0,0 @@
1
- export * from './ConfigStore';
2
- export * from './AgentStore';
3
- export * from './ArtifactStore';
4
- export * from './ModelStore';