@multiplayer-app/ai-agent-node 0.1.0-beta.6 → 0.1.0-beta.61

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 (274) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/config.cjs +88 -55
  3. package/dist/cjs/config.cjs.map +1 -1
  4. package/dist/cjs/config.d.ts +59 -36
  5. package/dist/cjs/config.d.ts.map +1 -1
  6. package/dist/cjs/helpers/AIHelper.cjs +127 -65
  7. package/dist/cjs/helpers/AIHelper.cjs.map +1 -1
  8. package/dist/cjs/helpers/AIHelper.d.ts +22 -16
  9. package/dist/cjs/helpers/AIHelper.d.ts.map +1 -1
  10. package/dist/cjs/helpers/AIHelper.test.cjs +22 -15
  11. package/dist/cjs/helpers/AIHelper.test.cjs.map +1 -1
  12. package/dist/cjs/helpers/ConfigHelper.cjs +15 -6
  13. package/dist/cjs/helpers/ConfigHelper.cjs.map +1 -1
  14. package/dist/cjs/helpers/ConfigHelper.d.ts.map +1 -1
  15. package/dist/cjs/helpers/FileHelper.cjs +131 -151
  16. package/dist/cjs/helpers/FileHelper.cjs.map +1 -1
  17. package/dist/cjs/helpers/FileHelper.d.ts +19 -25
  18. package/dist/cjs/helpers/FileHelper.d.ts.map +1 -1
  19. package/dist/cjs/helpers/index.cjs +0 -1
  20. package/dist/cjs/helpers/index.cjs.map +1 -1
  21. package/dist/cjs/helpers/index.d.ts +0 -1
  22. package/dist/cjs/helpers/index.d.ts.map +1 -1
  23. package/dist/cjs/index.cjs +120 -28
  24. package/dist/cjs/index.cjs.map +1 -1
  25. package/dist/cjs/index.d.ts +43 -11
  26. package/dist/cjs/index.d.ts.map +1 -1
  27. package/dist/cjs/libs/index.cjs +0 -1
  28. package/dist/cjs/libs/index.cjs.map +1 -1
  29. package/dist/cjs/libs/index.d.ts +0 -1
  30. package/dist/cjs/libs/index.d.ts.map +1 -1
  31. package/dist/cjs/libs/s3/index.cjs +3 -39
  32. package/dist/cjs/libs/s3/index.cjs.map +1 -1
  33. package/dist/cjs/libs/s3/index.d.ts +1 -2
  34. package/dist/cjs/libs/s3/index.d.ts.map +1 -1
  35. package/dist/cjs/libs/s3/s3.lib.cjs +173 -186
  36. package/dist/cjs/libs/s3/s3.lib.cjs.map +1 -1
  37. package/dist/cjs/libs/s3/s3.lib.d.ts +29 -22
  38. package/dist/cjs/libs/s3/s3.lib.d.ts.map +1 -1
  39. package/dist/cjs/processors/ActivityProcessor.cjs +39 -0
  40. package/dist/cjs/processors/ActivityProcessor.cjs.map +1 -0
  41. package/dist/cjs/processors/ActivityProcessor.d.ts +32 -0
  42. package/dist/cjs/processors/ActivityProcessor.d.ts.map +1 -0
  43. package/dist/cjs/processors/ActivityProcessor.test.cjs +84 -0
  44. package/dist/cjs/processors/ActivityProcessor.test.cjs.map +1 -0
  45. package/dist/cjs/processors/ActivityProcessor.test.d.ts +2 -0
  46. package/dist/cjs/processors/ActivityProcessor.test.d.ts.map +1 -0
  47. package/dist/cjs/processors/AgentProcessor.cjs +46 -0
  48. package/dist/cjs/processors/AgentProcessor.cjs.map +1 -0
  49. package/dist/cjs/processors/AgentProcessor.d.ts +25 -0
  50. package/dist/cjs/processors/AgentProcessor.d.ts.map +1 -0
  51. package/dist/cjs/processors/AgentProcessor.test.cjs +103 -0
  52. package/dist/cjs/processors/AgentProcessor.test.cjs.map +1 -0
  53. package/dist/cjs/processors/AgentProcessor.test.d.ts +2 -0
  54. package/dist/cjs/processors/AgentProcessor.test.d.ts.map +1 -0
  55. package/dist/cjs/processors/ChatProcessor.cjs +355 -122
  56. package/dist/cjs/processors/ChatProcessor.cjs.map +1 -1
  57. package/dist/cjs/processors/ChatProcessor.d.ts +71 -11
  58. package/dist/cjs/processors/ChatProcessor.d.ts.map +1 -1
  59. package/dist/cjs/processors/ChatProcessor.test.cjs +762 -0
  60. package/dist/cjs/processors/ChatProcessor.test.cjs.map +1 -0
  61. package/dist/cjs/processors/ChatProcessor.test.d.ts +2 -0
  62. package/dist/cjs/processors/ChatProcessor.test.d.ts.map +1 -0
  63. package/dist/cjs/processors/index.cjs +2 -0
  64. package/dist/cjs/processors/index.cjs.map +1 -1
  65. package/dist/cjs/processors/index.d.ts +2 -0
  66. package/dist/cjs/processors/index.d.ts.map +1 -1
  67. package/dist/cjs/services/AIService.cjs +87 -21
  68. package/dist/cjs/services/AIService.cjs.map +1 -1
  69. package/dist/cjs/services/AIService.d.ts +19 -7
  70. package/dist/cjs/services/AIService.d.ts.map +1 -1
  71. package/dist/cjs/services/InternalEventsHandler.cjs +3 -3
  72. package/dist/cjs/services/InternalEventsHandler.cjs.map +1 -1
  73. package/dist/cjs/services/InternalEventsHandler.d.ts +3 -1
  74. package/dist/cjs/services/InternalEventsHandler.d.ts.map +1 -1
  75. package/dist/cjs/services/ModelFetcher.cjs +2 -8
  76. package/dist/cjs/services/ModelFetcher.cjs.map +1 -1
  77. package/dist/cjs/services/ModelFetcher.d.ts +2 -7
  78. package/dist/cjs/services/ModelFetcher.d.ts.map +1 -1
  79. package/dist/cjs/services/RedisService.cjs +20 -16
  80. package/dist/cjs/services/RedisService.cjs.map +1 -1
  81. package/dist/cjs/services/RedisService.d.ts +5 -2
  82. package/dist/cjs/services/RedisService.d.ts.map +1 -1
  83. package/dist/cjs/services/SocketService.cjs +8 -8
  84. package/dist/cjs/services/SocketService.cjs.map +1 -1
  85. package/dist/cjs/services/SocketService.d.ts +9 -6
  86. package/dist/cjs/services/SocketService.d.ts.map +1 -1
  87. package/dist/cjs/services/index.cjs +0 -1
  88. package/dist/cjs/services/index.cjs.map +1 -1
  89. package/dist/cjs/services/index.d.ts +0 -1
  90. package/dist/cjs/services/index.d.ts.map +1 -1
  91. package/dist/cjs/store/AgentStore.cjs +3 -4
  92. package/dist/cjs/store/AgentStore.cjs.map +1 -1
  93. package/dist/cjs/store/AgentStore.d.ts +2 -1
  94. package/dist/cjs/store/AgentStore.d.ts.map +1 -1
  95. package/dist/cjs/store/ConfigStore.cjs +7 -3
  96. package/dist/cjs/store/ConfigStore.cjs.map +1 -1
  97. package/dist/cjs/store/ConfigStore.d.ts +1 -0
  98. package/dist/cjs/store/ConfigStore.d.ts.map +1 -1
  99. package/dist/cjs/tools/generateChartTool.d.ts +2 -2
  100. package/dist/cjs/tools/proposeFormValuesTool.d.ts +2 -2
  101. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  102. package/dist/esm/config.d.ts +59 -36
  103. package/dist/esm/config.d.ts.map +1 -1
  104. package/dist/esm/config.js +88 -53
  105. package/dist/esm/config.js.map +1 -1
  106. package/dist/esm/helpers/AIHelper.d.ts +22 -16
  107. package/dist/esm/helpers/AIHelper.d.ts.map +1 -1
  108. package/dist/esm/helpers/AIHelper.js +134 -70
  109. package/dist/esm/helpers/AIHelper.js.map +1 -1
  110. package/dist/esm/helpers/AIHelper.test.js +22 -15
  111. package/dist/esm/helpers/AIHelper.test.js.map +1 -1
  112. package/dist/esm/helpers/ConfigHelper.d.ts.map +1 -1
  113. package/dist/esm/helpers/ConfigHelper.js +15 -6
  114. package/dist/esm/helpers/ConfigHelper.js.map +1 -1
  115. package/dist/esm/helpers/FileHelper.d.ts +19 -25
  116. package/dist/esm/helpers/FileHelper.d.ts.map +1 -1
  117. package/dist/esm/helpers/FileHelper.js +131 -146
  118. package/dist/esm/helpers/FileHelper.js.map +1 -1
  119. package/dist/esm/helpers/index.d.ts +0 -1
  120. package/dist/esm/helpers/index.d.ts.map +1 -1
  121. package/dist/esm/helpers/index.js +0 -1
  122. package/dist/esm/helpers/index.js.map +1 -1
  123. package/dist/esm/index.d.ts +43 -11
  124. package/dist/esm/index.d.ts.map +1 -1
  125. package/dist/esm/index.js +92 -11
  126. package/dist/esm/index.js.map +1 -1
  127. package/dist/esm/libs/index.d.ts +0 -1
  128. package/dist/esm/libs/index.d.ts.map +1 -1
  129. package/dist/esm/libs/index.js +0 -1
  130. package/dist/esm/libs/index.js.map +1 -1
  131. package/dist/esm/libs/s3/index.d.ts +1 -2
  132. package/dist/esm/libs/s3/index.d.ts.map +1 -1
  133. package/dist/esm/libs/s3/index.js +1 -2
  134. package/dist/esm/libs/s3/index.js.map +1 -1
  135. package/dist/esm/libs/s3/s3.lib.d.ts +29 -22
  136. package/dist/esm/libs/s3/s3.lib.d.ts.map +1 -1
  137. package/dist/esm/libs/s3/s3.lib.js +177 -172
  138. package/dist/esm/libs/s3/s3.lib.js.map +1 -1
  139. package/dist/esm/processors/ActivityProcessor.d.ts +32 -0
  140. package/dist/esm/processors/ActivityProcessor.d.ts.map +1 -0
  141. package/dist/esm/processors/ActivityProcessor.js +36 -0
  142. package/dist/esm/processors/ActivityProcessor.js.map +1 -0
  143. package/dist/esm/processors/ActivityProcessor.test.d.ts +2 -0
  144. package/dist/esm/processors/ActivityProcessor.test.d.ts.map +1 -0
  145. package/dist/esm/processors/ActivityProcessor.test.js +82 -0
  146. package/dist/esm/processors/ActivityProcessor.test.js.map +1 -0
  147. package/dist/esm/processors/AgentProcessor.d.ts +25 -0
  148. package/dist/esm/processors/AgentProcessor.d.ts.map +1 -0
  149. package/dist/esm/processors/AgentProcessor.js +43 -0
  150. package/dist/esm/processors/AgentProcessor.js.map +1 -0
  151. package/dist/esm/processors/AgentProcessor.test.d.ts +2 -0
  152. package/dist/esm/processors/AgentProcessor.test.d.ts.map +1 -0
  153. package/dist/esm/processors/AgentProcessor.test.js +101 -0
  154. package/dist/esm/processors/AgentProcessor.test.js.map +1 -0
  155. package/dist/esm/processors/ChatProcessor.d.ts +71 -11
  156. package/dist/esm/processors/ChatProcessor.d.ts.map +1 -1
  157. package/dist/esm/processors/ChatProcessor.js +366 -126
  158. package/dist/esm/processors/ChatProcessor.js.map +1 -1
  159. package/dist/esm/processors/ChatProcessor.test.d.ts +2 -0
  160. package/dist/esm/processors/ChatProcessor.test.d.ts.map +1 -0
  161. package/dist/esm/processors/ChatProcessor.test.js +760 -0
  162. package/dist/esm/processors/ChatProcessor.test.js.map +1 -0
  163. package/dist/esm/processors/index.d.ts +2 -0
  164. package/dist/esm/processors/index.d.ts.map +1 -1
  165. package/dist/esm/processors/index.js +2 -0
  166. package/dist/esm/processors/index.js.map +1 -1
  167. package/dist/esm/services/AIService.d.ts +19 -7
  168. package/dist/esm/services/AIService.d.ts.map +1 -1
  169. package/dist/esm/services/AIService.js +91 -24
  170. package/dist/esm/services/AIService.js.map +1 -1
  171. package/dist/esm/services/InternalEventsHandler.d.ts +3 -1
  172. package/dist/esm/services/InternalEventsHandler.d.ts.map +1 -1
  173. package/dist/esm/services/InternalEventsHandler.js +4 -3
  174. package/dist/esm/services/InternalEventsHandler.js.map +1 -1
  175. package/dist/esm/services/ModelFetcher.d.ts +2 -7
  176. package/dist/esm/services/ModelFetcher.d.ts.map +1 -1
  177. package/dist/esm/services/ModelFetcher.js +2 -8
  178. package/dist/esm/services/ModelFetcher.js.map +1 -1
  179. package/dist/esm/services/RedisService.d.ts +5 -2
  180. package/dist/esm/services/RedisService.d.ts.map +1 -1
  181. package/dist/esm/services/RedisService.js +21 -14
  182. package/dist/esm/services/RedisService.js.map +1 -1
  183. package/dist/esm/services/SocketService.d.ts +9 -6
  184. package/dist/esm/services/SocketService.d.ts.map +1 -1
  185. package/dist/esm/services/SocketService.js +10 -6
  186. package/dist/esm/services/SocketService.js.map +1 -1
  187. package/dist/esm/services/index.d.ts +0 -1
  188. package/dist/esm/services/index.d.ts.map +1 -1
  189. package/dist/esm/services/index.js +0 -1
  190. package/dist/esm/services/index.js.map +1 -1
  191. package/dist/esm/store/AgentStore.d.ts +2 -1
  192. package/dist/esm/store/AgentStore.d.ts.map +1 -1
  193. package/dist/esm/store/AgentStore.js +4 -2
  194. package/dist/esm/store/AgentStore.js.map +1 -1
  195. package/dist/esm/store/ConfigStore.d.ts +1 -0
  196. package/dist/esm/store/ConfigStore.d.ts.map +1 -1
  197. package/dist/esm/store/ConfigStore.js +7 -3
  198. package/dist/esm/store/ConfigStore.js.map +1 -1
  199. package/dist/esm/tools/generateChartTool.d.ts +2 -2
  200. package/dist/esm/tools/proposeFormValuesTool.d.ts +2 -2
  201. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  202. package/package.json +12 -12
  203. package/dist/cjs/helpers/SetupHelper.cjs +0 -37
  204. package/dist/cjs/helpers/SetupHelper.cjs.map +0 -1
  205. package/dist/cjs/helpers/SetupHelper.d.ts +0 -5
  206. package/dist/cjs/helpers/SetupHelper.d.ts.map +0 -1
  207. package/dist/cjs/libs/kafka/config.cjs +0 -8
  208. package/dist/cjs/libs/kafka/config.cjs.map +0 -1
  209. package/dist/cjs/libs/kafka/config.d.ts +0 -4
  210. package/dist/cjs/libs/kafka/config.d.ts.map +0 -1
  211. package/dist/cjs/libs/kafka/consumer.cjs +0 -131
  212. package/dist/cjs/libs/kafka/consumer.cjs.map +0 -1
  213. package/dist/cjs/libs/kafka/consumer.d.ts +0 -16
  214. package/dist/cjs/libs/kafka/consumer.d.ts.map +0 -1
  215. package/dist/cjs/libs/kafka/index.cjs +0 -19
  216. package/dist/cjs/libs/kafka/index.cjs.map +0 -1
  217. package/dist/cjs/libs/kafka/index.d.ts +0 -3
  218. package/dist/cjs/libs/kafka/index.d.ts.map +0 -1
  219. package/dist/cjs/libs/kafka/kafka.cjs +0 -27
  220. package/dist/cjs/libs/kafka/kafka.cjs.map +0 -1
  221. package/dist/cjs/libs/kafka/kafka.d.ts +0 -3
  222. package/dist/cjs/libs/kafka/kafka.d.ts.map +0 -1
  223. package/dist/cjs/libs/kafka/producer.cjs +0 -48
  224. package/dist/cjs/libs/kafka/producer.cjs.map +0 -1
  225. package/dist/cjs/libs/kafka/producer.d.ts +0 -11
  226. package/dist/cjs/libs/kafka/producer.d.ts.map +0 -1
  227. package/dist/cjs/libs/logger/config.cjs +0 -9
  228. package/dist/cjs/libs/logger/config.cjs.map +0 -1
  229. package/dist/cjs/libs/logger/config.d.ts +0 -5
  230. package/dist/cjs/libs/logger/config.d.ts.map +0 -1
  231. package/dist/cjs/libs/s3/config.cjs +0 -8
  232. package/dist/cjs/libs/s3/config.cjs.map +0 -1
  233. package/dist/cjs/libs/s3/config.d.ts +0 -4
  234. package/dist/cjs/libs/s3/config.d.ts.map +0 -1
  235. package/dist/cjs/services/KafkaService.cjs +0 -122
  236. package/dist/cjs/services/KafkaService.cjs.map +0 -1
  237. package/dist/cjs/services/KafkaService.d.ts +0 -35
  238. package/dist/cjs/services/KafkaService.d.ts.map +0 -1
  239. package/dist/esm/helpers/SetupHelper.d.ts +0 -5
  240. package/dist/esm/helpers/SetupHelper.d.ts.map +0 -1
  241. package/dist/esm/helpers/SetupHelper.js +0 -32
  242. package/dist/esm/helpers/SetupHelper.js.map +0 -1
  243. package/dist/esm/libs/kafka/config.d.ts +0 -4
  244. package/dist/esm/libs/kafka/config.d.ts.map +0 -1
  245. package/dist/esm/libs/kafka/config.js +0 -5
  246. package/dist/esm/libs/kafka/config.js.map +0 -1
  247. package/dist/esm/libs/kafka/consumer.d.ts +0 -16
  248. package/dist/esm/libs/kafka/consumer.d.ts.map +0 -1
  249. package/dist/esm/libs/kafka/consumer.js +0 -125
  250. package/dist/esm/libs/kafka/consumer.js.map +0 -1
  251. package/dist/esm/libs/kafka/index.d.ts +0 -3
  252. package/dist/esm/libs/kafka/index.d.ts.map +0 -1
  253. package/dist/esm/libs/kafka/index.js +0 -3
  254. package/dist/esm/libs/kafka/index.js.map +0 -1
  255. package/dist/esm/libs/kafka/kafka.d.ts +0 -3
  256. package/dist/esm/libs/kafka/kafka.d.ts.map +0 -1
  257. package/dist/esm/libs/kafka/kafka.js +0 -24
  258. package/dist/esm/libs/kafka/kafka.js.map +0 -1
  259. package/dist/esm/libs/kafka/producer.d.ts +0 -11
  260. package/dist/esm/libs/kafka/producer.d.ts.map +0 -1
  261. package/dist/esm/libs/kafka/producer.js +0 -45
  262. package/dist/esm/libs/kafka/producer.js.map +0 -1
  263. package/dist/esm/libs/logger/config.d.ts +0 -5
  264. package/dist/esm/libs/logger/config.d.ts.map +0 -1
  265. package/dist/esm/libs/logger/config.js +0 -6
  266. package/dist/esm/libs/logger/config.js.map +0 -1
  267. package/dist/esm/libs/s3/config.d.ts +0 -4
  268. package/dist/esm/libs/s3/config.d.ts.map +0 -1
  269. package/dist/esm/libs/s3/config.js +0 -5
  270. package/dist/esm/libs/s3/config.js.map +0 -1
  271. package/dist/esm/services/KafkaService.d.ts +0 -35
  272. package/dist/esm/services/KafkaService.d.ts.map +0 -1
  273. package/dist/esm/services/KafkaService.js +0 -123
  274. package/dist/esm/services/KafkaService.js.map +0 -1
package/README.md CHANGED
@@ -419,7 +419,7 @@ const stream = await chatProcessor.createMessageStream({
419
419
  messageId: 'message-id',
420
420
  approvalId: 'approval-id',
421
421
  approved: true,
422
- reason: 'User approved'
422
+ userResponse: 'User approved'
423
423
  });
424
424
 
425
425
  // Or use streamMessage directly if you already have the chat object
@@ -429,7 +429,7 @@ await chatProcessor.streamMessage(chat, {
429
429
  messageId: 'message-id',
430
430
  approvalId: 'approval-id',
431
431
  approved: true,
432
- reason: 'User approved'
432
+ userResponse: 'User approved'
433
433
  });
434
434
  ```
435
435
 
@@ -1,65 +1,98 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.config = void 0;
4
- exports.getRedisUrl = getRedisUrl;
3
+ exports.ConfigProvider = void 0;
5
4
  require("dotenv/config");
5
+ function createDefaultConfig() {
6
+ return {
7
+ debug: false,
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
+ }
6
34
  /**
7
- * Centralized configuration for the AI Agent Service
8
- * All environment variables are accessed through this file
35
+ * Deep merge utility function
36
+ * Merges source into target, with source values taking precedence
9
37
  */
10
- const SERVICE_NAME = process.env.npm_package_name;
11
- exports.config = {
12
- // Redis configuration
13
- redis: {
14
- url: process.env.MP_AI_REDIS_URL,
15
- host: process.env.MP_AI_REDIS_HOST ?? 'localhost',
16
- port: Number(process.env.MP_AI_REDIS_PORT ?? 6379),
17
- password: process.env.MP_AI_REDIS_PASSWORD,
18
- database: process.env.MP_AI_REDIS_DATABASE ? Number(process.env.MP_AI_REDIS_DATABASE) : undefined,
19
- },
20
- // AI Provider API Keys
21
- ai: {
22
- openaiApiKey: process.env.OPENAI_API_KEY,
23
- anthropicApiKey: process.env.ANTHROPIC_API_KEY,
24
- googleApiKey: process.env.GOOGLE_GENERATIVE_AI_API_KEY,
25
- openrouterApiKey: process.env.OPENROUTER_API_KEY,
26
- maxContextMessages: Number(process.env.MP_AI_MAX_CONTEXT_MESSAGES) || 10,
27
- defaultModel: process.env.MP_AI_DEFAULT_MODEL,
28
- },
29
- s3: {
30
- bucket: process.env.MP_AI_S3_ATTACHMENTS_BUCKET || 'ai-agent-attachments',
31
- host: process.env.MP_AI_S3_HOST,
32
- presignedUrlExpires: Number(process.env.MP_AI_S3_PRESIGNED_URL_EXPIRES) || 120,
33
- awsRegion: process.env.AWS_REGION,
34
- },
35
- // File processing configuration
36
- fileProcessing: {
37
- maxExtractedTextSize: Number(process.env.MP_AI_MAX_EXTRACTED_TEXT_SIZE) || 51200,
38
- enableTextExtraction: process.env.MP_AI_ENABLE_TEXT_EXTRACTION !== 'false',
39
- },
40
- // Logger configuration
41
- logger: {
42
- nodeEnv: process.env.MP_AI_NODE_ENV || 'development',
43
- appName: SERVICE_NAME?.split('/').pop() || 'ai-agent-node',
44
- logLevel: process.env.MP_AI_LOG_LEVEL,
45
- },
46
- // Kafka configuration
47
- kafka: {
48
- uri: process.env.MP_AI_KAFKA_URI || 'localhost:9092',
49
- clientId: process.env.MP_AI_KAFKA_CLIENT_ID || SERVICE_NAME,
50
- sessionTimeout: Number.parseInt(process.env.MP_AI_KAFKA_SESSION_TIMEOUT || '30000'),
51
- groupId: process.env.MP_AI_KAFKA_GROUP_ID ?? 'ai-agent-node',
52
- chatTitleGenerationTopic: process.env.MP_AI_KAFKA_CHAT_TITLE_GENERATION_TOPIC ?? 'chat-title-generation',
53
- backgroundChatProcessingTopic: process.env.MP_AI_KAFKA_BACKGROUND_CHAT_PROCESSING_TOPIC ?? 'background-chat-processing',
54
- },
55
- };
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
+ }
56
59
  /**
57
- * Get Redis connection URL
60
+ * ConfigProvider manages runtime configuration
61
+ * Allows setting config overrides through AIAgentService
58
62
  */
59
- function getRedisUrl() {
60
- if (exports.config.redis.url) {
61
- return exports.config.redis.url;
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();
62
95
  }
63
- return `redis://${exports.config.redis.host}:${exports.config.redis.port}`;
64
96
  }
97
+ exports.ConfigProvider = ConfigProvider;
65
98
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";;;AA2DA,kCAKC;AAhED,yBAAuB;AAEvB;;;GAGG;AAEH,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAErC,QAAA,MAAM,GAAG;IACpB,sBAAsB;IACtB,KAAK,EAAE;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;QAChC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,WAAW;QACjD,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC;QAClD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;QAC1C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,SAAS;KAClG;IAED,uBAAuB;IACvB,EAAE,EAAE;QACF,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;QACxC,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAC9C,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B;QACtD,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;QAChD,kBAAkB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,IAAI,EAAE;QACxE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;KAC9C;IACD,EAAE,EAAE;QACF,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,sBAAsB;QACzE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;QAC/B,mBAAmB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,GAAG;QAC9E,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAoB;KAC5C;IACD,gCAAgC;IAChC,cAAc,EAAE;QACd,oBAAoB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,IAAI,KAAK;QAChF,oBAAoB,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,OAAO;KAC3E;IACD,uBAAuB;IACvB,MAAM,EAAE;QACN,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,aAAa;QACpD,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,eAAe;QAC1D,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;KACtC;IACD,sBAAsB;IACtB,KAAK,EAAE;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,gBAAgB;QACpD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,YAAY;QAC3D,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,OAAO,CAAC;QACnF,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,eAAe;QAC5D,wBAAwB,EAAE,OAAO,CAAC,GAAG,CAAC,uCAAuC,IAAI,uBAAuB;QACxG,6BAA6B,EAAE,OAAO,CAAC,GAAG,CAAC,4CAA4C,IAAI,4BAA4B;KACxH;CACO,CAAC;AAEX;;GAEG;AACH,SAAgB,WAAW;IACzB,IAAI,cAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACrB,OAAO,cAAM,CAAC,KAAK,CAAC,GAAG,CAAC;IAC1B,CAAC;IACD,OAAO,WAAW,cAAM,CAAC,KAAK,CAAC,IAAI,IAAI,cAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";;;AAAA,yBAAuB;AA2CvB,SAAS,mBAAmB;IAC1B,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,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"}
@@ -1,46 +1,69 @@
1
1
  import 'dotenv/config';
2
- export declare const config: {
3
- readonly redis: {
4
- readonly url: string | undefined;
5
- readonly host: string;
6
- readonly port: number;
7
- readonly password: string | undefined;
8
- readonly database: number | undefined;
2
+ /**
3
+ * Centralized configuration for the AI Agent Service
4
+ * All environment variables are accessed through this file
5
+ */
6
+ export interface Config {
7
+ debug: boolean;
8
+ redis: {
9
+ url?: string;
10
+ host?: string;
11
+ port?: number;
12
+ password?: string;
13
+ database?: number;
9
14
  };
10
- readonly ai: {
11
- readonly openaiApiKey: string | undefined;
12
- readonly anthropicApiKey: string | undefined;
13
- readonly googleApiKey: string | undefined;
14
- readonly openrouterApiKey: string | undefined;
15
- readonly maxContextMessages: number;
16
- readonly defaultModel: string | undefined;
15
+ ai: {
16
+ openaiApiKey?: string;
17
+ anthropicApiKey?: string;
18
+ googleApiKey?: string;
19
+ openrouterApiKey?: string;
20
+ maxContextMessages?: number;
21
+ defaultModel?: string;
17
22
  };
18
- readonly s3: {
19
- readonly bucket: string;
20
- readonly host: string | undefined;
21
- readonly presignedUrlExpires: number;
22
- readonly awsRegion: string;
23
+ s3: {
24
+ bucket?: string;
25
+ host?: string;
26
+ presignedUrlExpires?: number;
27
+ region?: string;
23
28
  };
24
- readonly fileProcessing: {
25
- readonly maxExtractedTextSize: number;
26
- readonly enableTextExtraction: boolean;
29
+ fileProcessing: {
30
+ maxExtractedTextSize?: number;
31
+ enableTextExtraction?: boolean;
27
32
  };
28
- readonly logger: {
29
- readonly nodeEnv: string;
30
- readonly appName: string;
31
- readonly logLevel: string | undefined;
33
+ logger: {
34
+ nodeEnv?: string;
35
+ appName?: string;
36
+ logLevel?: string;
32
37
  };
33
- readonly kafka: {
34
- readonly uri: string;
35
- readonly clientId: string | undefined;
36
- readonly sessionTimeout: number;
37
- readonly groupId: string;
38
- readonly chatTitleGenerationTopic: string;
39
- readonly backgroundChatProcessingTopic: string;
38
+ socket: {
39
+ path?: string;
40
40
  };
41
- };
41
+ }
42
42
  /**
43
- * Get Redis connection URL
43
+ * ConfigProvider manages runtime configuration
44
+ * Allows setting config overrides through AIAgentService
44
45
  */
45
- export declare function getRedisUrl(): string;
46
+ export declare class ConfigProvider {
47
+ private static instance;
48
+ private runtimeConfig;
49
+ private constructor();
50
+ /**
51
+ * Get the singleton instance of ConfigProvider
52
+ */
53
+ static getInstance(): ConfigProvider;
54
+ /**
55
+ * Get the current runtime configuration
56
+ */
57
+ getConfig(): Config;
58
+ /**
59
+ * Set configuration overrides
60
+ * Merges the provided overrides with existing config (deep merge)
61
+ * @param overrides - Partial config to override existing values
62
+ */
63
+ setConfig(overrides: Partial<Config>): void;
64
+ /**
65
+ * Reset configuration to defaults (from environment variables)
66
+ */
67
+ reset(): void;
68
+ }
46
69
  //# 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;AASvB,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;4BAuBsB,MAAM;;;;;;;;;;;;;;;;;;;CAsBrC,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,OAAO,CAAC;IACf,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"}