@multiplayer-app/ai-agent-node 0.1.0-beta.12 → 0.1.0-beta.15

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 (151) hide show
  1. package/dist/cjs/config.cjs +88 -50
  2. package/dist/cjs/config.cjs.map +1 -1
  3. package/dist/cjs/config.d.ts +58 -31
  4. package/dist/cjs/config.d.ts.map +1 -1
  5. package/dist/cjs/helpers/AIHelper.cjs +36 -38
  6. package/dist/cjs/helpers/AIHelper.cjs.map +1 -1
  7. package/dist/cjs/helpers/AIHelper.d.ts +16 -11
  8. package/dist/cjs/helpers/AIHelper.d.ts.map +1 -1
  9. package/dist/cjs/helpers/AIHelper.test.cjs +19 -12
  10. package/dist/cjs/helpers/AIHelper.test.cjs.map +1 -1
  11. package/dist/cjs/helpers/FileHelper.cjs +131 -151
  12. package/dist/cjs/helpers/FileHelper.cjs.map +1 -1
  13. package/dist/cjs/helpers/FileHelper.d.ts +19 -25
  14. package/dist/cjs/helpers/FileHelper.d.ts.map +1 -1
  15. package/dist/cjs/helpers/index.cjs +0 -1
  16. package/dist/cjs/helpers/index.cjs.map +1 -1
  17. package/dist/cjs/helpers/index.d.ts +0 -1
  18. package/dist/cjs/helpers/index.d.ts.map +1 -1
  19. package/dist/cjs/index.cjs +108 -26
  20. package/dist/cjs/index.cjs.map +1 -1
  21. package/dist/cjs/index.d.ts +37 -10
  22. package/dist/cjs/index.d.ts.map +1 -1
  23. package/dist/cjs/libs/s3/index.cjs +3 -39
  24. package/dist/cjs/libs/s3/index.cjs.map +1 -1
  25. package/dist/cjs/libs/s3/index.d.ts +1 -2
  26. package/dist/cjs/libs/s3/index.d.ts.map +1 -1
  27. package/dist/cjs/libs/s3/s3.lib.cjs +173 -186
  28. package/dist/cjs/libs/s3/s3.lib.cjs.map +1 -1
  29. package/dist/cjs/libs/s3/s3.lib.d.ts +29 -22
  30. package/dist/cjs/libs/s3/s3.lib.d.ts.map +1 -1
  31. package/dist/cjs/processors/ChatProcessor.cjs +40 -37
  32. package/dist/cjs/processors/ChatProcessor.cjs.map +1 -1
  33. package/dist/cjs/processors/ChatProcessor.d.ts +17 -1
  34. package/dist/cjs/processors/ChatProcessor.d.ts.map +1 -1
  35. package/dist/cjs/services/AIService.cjs +8 -8
  36. package/dist/cjs/services/AIService.cjs.map +1 -1
  37. package/dist/cjs/services/AIService.d.ts +3 -1
  38. package/dist/cjs/services/AIService.d.ts.map +1 -1
  39. package/dist/cjs/services/InternalEventsHandler.cjs +3 -3
  40. package/dist/cjs/services/InternalEventsHandler.cjs.map +1 -1
  41. package/dist/cjs/services/InternalEventsHandler.d.ts +3 -1
  42. package/dist/cjs/services/InternalEventsHandler.d.ts.map +1 -1
  43. package/dist/cjs/services/ModelFetcher.cjs +2 -8
  44. package/dist/cjs/services/ModelFetcher.cjs.map +1 -1
  45. package/dist/cjs/services/ModelFetcher.d.ts +2 -7
  46. package/dist/cjs/services/ModelFetcher.d.ts.map +1 -1
  47. package/dist/cjs/services/RedisService.cjs +20 -16
  48. package/dist/cjs/services/RedisService.cjs.map +1 -1
  49. package/dist/cjs/services/RedisService.d.ts +5 -2
  50. package/dist/cjs/services/RedisService.d.ts.map +1 -1
  51. package/dist/cjs/services/SocketService.cjs +6 -8
  52. package/dist/cjs/services/SocketService.cjs.map +1 -1
  53. package/dist/cjs/services/SocketService.d.ts +6 -3
  54. package/dist/cjs/services/SocketService.d.ts.map +1 -1
  55. package/dist/cjs/store/AgentStore.cjs +3 -4
  56. package/dist/cjs/store/AgentStore.cjs.map +1 -1
  57. package/dist/cjs/store/AgentStore.d.ts +2 -1
  58. package/dist/cjs/store/AgentStore.d.ts.map +1 -1
  59. package/dist/cjs/store/ConfigStore.cjs +1 -3
  60. package/dist/cjs/store/ConfigStore.cjs.map +1 -1
  61. package/dist/cjs/store/ConfigStore.d.ts.map +1 -1
  62. package/dist/cjs/tools/proposeFormValuesTool.d.ts +2 -2
  63. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  64. package/dist/esm/config.d.ts +58 -31
  65. package/dist/esm/config.d.ts.map +1 -1
  66. package/dist/esm/config.js +88 -48
  67. package/dist/esm/config.js.map +1 -1
  68. package/dist/esm/helpers/AIHelper.d.ts +16 -11
  69. package/dist/esm/helpers/AIHelper.d.ts.map +1 -1
  70. package/dist/esm/helpers/AIHelper.js +38 -38
  71. package/dist/esm/helpers/AIHelper.js.map +1 -1
  72. package/dist/esm/helpers/AIHelper.test.js +19 -12
  73. package/dist/esm/helpers/AIHelper.test.js.map +1 -1
  74. package/dist/esm/helpers/FileHelper.d.ts +19 -25
  75. package/dist/esm/helpers/FileHelper.d.ts.map +1 -1
  76. package/dist/esm/helpers/FileHelper.js +131 -146
  77. package/dist/esm/helpers/FileHelper.js.map +1 -1
  78. package/dist/esm/helpers/index.d.ts +0 -1
  79. package/dist/esm/helpers/index.d.ts.map +1 -1
  80. package/dist/esm/helpers/index.js +0 -1
  81. package/dist/esm/helpers/index.js.map +1 -1
  82. package/dist/esm/index.d.ts +37 -10
  83. package/dist/esm/index.d.ts.map +1 -1
  84. package/dist/esm/index.js +78 -10
  85. package/dist/esm/index.js.map +1 -1
  86. package/dist/esm/libs/s3/index.d.ts +1 -2
  87. package/dist/esm/libs/s3/index.d.ts.map +1 -1
  88. package/dist/esm/libs/s3/index.js +1 -2
  89. package/dist/esm/libs/s3/index.js.map +1 -1
  90. package/dist/esm/libs/s3/s3.lib.d.ts +29 -22
  91. package/dist/esm/libs/s3/s3.lib.d.ts.map +1 -1
  92. package/dist/esm/libs/s3/s3.lib.js +177 -172
  93. package/dist/esm/libs/s3/s3.lib.js.map +1 -1
  94. package/dist/esm/processors/ChatProcessor.d.ts +17 -1
  95. package/dist/esm/processors/ChatProcessor.d.ts.map +1 -1
  96. package/dist/esm/processors/ChatProcessor.js +46 -39
  97. package/dist/esm/processors/ChatProcessor.js.map +1 -1
  98. package/dist/esm/services/AIService.d.ts +3 -1
  99. package/dist/esm/services/AIService.d.ts.map +1 -1
  100. package/dist/esm/services/AIService.js +12 -11
  101. package/dist/esm/services/AIService.js.map +1 -1
  102. package/dist/esm/services/InternalEventsHandler.d.ts +3 -1
  103. package/dist/esm/services/InternalEventsHandler.d.ts.map +1 -1
  104. package/dist/esm/services/InternalEventsHandler.js +4 -3
  105. package/dist/esm/services/InternalEventsHandler.js.map +1 -1
  106. package/dist/esm/services/ModelFetcher.d.ts +2 -7
  107. package/dist/esm/services/ModelFetcher.d.ts.map +1 -1
  108. package/dist/esm/services/ModelFetcher.js +2 -8
  109. package/dist/esm/services/ModelFetcher.js.map +1 -1
  110. package/dist/esm/services/RedisService.d.ts +5 -2
  111. package/dist/esm/services/RedisService.d.ts.map +1 -1
  112. package/dist/esm/services/RedisService.js +21 -14
  113. package/dist/esm/services/RedisService.js.map +1 -1
  114. package/dist/esm/services/SocketService.d.ts +6 -3
  115. package/dist/esm/services/SocketService.d.ts.map +1 -1
  116. package/dist/esm/services/SocketService.js +8 -6
  117. package/dist/esm/services/SocketService.js.map +1 -1
  118. package/dist/esm/store/AgentStore.d.ts +2 -1
  119. package/dist/esm/store/AgentStore.d.ts.map +1 -1
  120. package/dist/esm/store/AgentStore.js +4 -2
  121. package/dist/esm/store/AgentStore.js.map +1 -1
  122. package/dist/esm/store/ConfigStore.d.ts.map +1 -1
  123. package/dist/esm/store/ConfigStore.js +1 -3
  124. package/dist/esm/store/ConfigStore.js.map +1 -1
  125. package/dist/esm/tools/proposeFormValuesTool.d.ts +2 -2
  126. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  127. package/package.json +3 -3
  128. package/dist/cjs/helpers/SetupHelper.cjs +0 -34
  129. package/dist/cjs/helpers/SetupHelper.cjs.map +0 -1
  130. package/dist/cjs/helpers/SetupHelper.d.ts +0 -4
  131. package/dist/cjs/helpers/SetupHelper.d.ts.map +0 -1
  132. package/dist/cjs/libs/logger/config.cjs +0 -9
  133. package/dist/cjs/libs/logger/config.cjs.map +0 -1
  134. package/dist/cjs/libs/logger/config.d.ts +0 -5
  135. package/dist/cjs/libs/logger/config.d.ts.map +0 -1
  136. package/dist/cjs/libs/s3/config.cjs +0 -8
  137. package/dist/cjs/libs/s3/config.cjs.map +0 -1
  138. package/dist/cjs/libs/s3/config.d.ts +0 -4
  139. package/dist/cjs/libs/s3/config.d.ts.map +0 -1
  140. package/dist/esm/helpers/SetupHelper.d.ts +0 -4
  141. package/dist/esm/helpers/SetupHelper.d.ts.map +0 -1
  142. package/dist/esm/helpers/SetupHelper.js +0 -29
  143. package/dist/esm/helpers/SetupHelper.js.map +0 -1
  144. package/dist/esm/libs/logger/config.d.ts +0 -5
  145. package/dist/esm/libs/logger/config.d.ts.map +0 -1
  146. package/dist/esm/libs/logger/config.js +0 -6
  147. package/dist/esm/libs/logger/config.js.map +0 -1
  148. package/dist/esm/libs/s3/config.d.ts +0 -4
  149. package/dist/esm/libs/s3/config.d.ts.map +0 -1
  150. package/dist/esm/libs/s3/config.js +0 -5
  151. package/dist/esm/libs/s3/config.js.map +0 -1
@@ -1,41 +1,68 @@
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
+ redis: {
8
+ url?: string;
9
+ host?: string;
10
+ port?: number;
11
+ password?: string;
12
+ database?: number;
9
13
  };
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;
14
+ ai: {
15
+ openaiApiKey?: string;
16
+ anthropicApiKey?: string;
17
+ googleApiKey?: string;
18
+ openrouterApiKey?: string;
19
+ maxContextMessages?: number;
20
+ defaultModel?: string;
17
21
  };
18
- readonly s3: {
19
- readonly bucket: string;
20
- readonly host: string | undefined;
21
- readonly presignedUrlExpires: number;
22
- readonly awsRegion: string;
22
+ s3: {
23
+ bucket?: string;
24
+ host?: string;
25
+ presignedUrlExpires?: number;
26
+ region?: string;
23
27
  };
24
- readonly fileProcessing: {
25
- readonly maxExtractedTextSize: number;
26
- readonly enableTextExtraction: boolean;
28
+ fileProcessing: {
29
+ maxExtractedTextSize?: number;
30
+ enableTextExtraction?: boolean;
27
31
  };
28
- readonly logger: {
29
- readonly nodeEnv: string;
30
- readonly appName: string;
31
- readonly logLevel: string | undefined;
32
+ logger: {
33
+ nodeEnv?: string;
34
+ appName?: string;
35
+ logLevel?: string;
32
36
  };
33
- readonly socket: {
34
- readonly path: string | undefined;
37
+ socket: {
38
+ path?: string;
35
39
  };
36
- };
40
+ }
37
41
  /**
38
- * Get Redis connection URL
42
+ * ConfigProvider manages runtime configuration
43
+ * Allows setting config overrides through AIAgentService
39
44
  */
40
- export declare function getRedisUrl(): string;
45
+ export declare class ConfigProvider {
46
+ private static instance;
47
+ private runtimeConfig;
48
+ private constructor();
49
+ /**
50
+ * Get the singleton instance of ConfigProvider
51
+ */
52
+ static getInstance(): ConfigProvider;
53
+ /**
54
+ * Get the current runtime configuration
55
+ */
56
+ getConfig(): Config;
57
+ /**
58
+ * Set configuration overrides
59
+ * Merges the provided overrides with existing config (deep merge)
60
+ * @param overrides - Partial config to override existing values
61
+ */
62
+ setConfig(overrides: Partial<Config>): void;
63
+ /**
64
+ * Reset configuration to defaults (from environment variables)
65
+ */
66
+ reset(): void;
67
+ }
41
68
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AASvB,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;4BAuBsB,MAAM;;;;;;;;;;;;;;CAiBrC,CAAC;AAEX;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAKpC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAEvB;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE;QACL,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,EAAE,EAAE;QACF,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,EAAE,EAAE;QACF,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,cAAc,EAAE;QACd,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC;IACF,MAAM,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,MAAM,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AA8DD;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO;IAIP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,cAAc;IAOpC;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI;IAI3C;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
@@ -1,56 +1,96 @@
1
1
  import 'dotenv/config';
2
+ function createDefaultConfig() {
3
+ return {
4
+ // Redis configuration
5
+ redis: {
6
+ host: 'localhost',
7
+ port: 6379,
8
+ },
9
+ ai: {
10
+ maxContextMessages: 10,
11
+ },
12
+ s3: {
13
+ bucket: 'ai-agent-attachments',
14
+ presignedUrlExpires: 120,
15
+ region: process.env.AWS_REGION || 'us-east-1',
16
+ },
17
+ fileProcessing: {
18
+ maxExtractedTextSize: 51200,
19
+ enableTextExtraction: true,
20
+ },
21
+ logger: {
22
+ nodeEnv: 'development',
23
+ appName: 'ai-agent-node',
24
+ logLevel: 'debug',
25
+ },
26
+ socket: {
27
+ path: undefined
28
+ },
29
+ };
30
+ }
2
31
  /**
3
- * Centralized configuration for the AI Agent Service
4
- * All environment variables are accessed through this file
32
+ * Deep merge utility function
33
+ * Merges source into target, with source values taking precedence
5
34
  */
6
- const SERVICE_NAME = process.env.npm_package_name;
7
- export const config = {
8
- // Redis configuration
9
- redis: {
10
- url: process.env.MP_AI_REDIS_URL,
11
- host: process.env.MP_AI_REDIS_HOST ?? 'localhost',
12
- port: Number(process.env.MP_AI_REDIS_PORT ?? 6379),
13
- password: process.env.MP_AI_REDIS_PASSWORD,
14
- database: process.env.MP_AI_REDIS_DATABASE ? Number(process.env.MP_AI_REDIS_DATABASE) : undefined,
15
- },
16
- // AI Provider API Keys
17
- ai: {
18
- openaiApiKey: process.env.OPENAI_API_KEY,
19
- anthropicApiKey: process.env.ANTHROPIC_API_KEY,
20
- googleApiKey: process.env.GOOGLE_GENERATIVE_AI_API_KEY,
21
- openrouterApiKey: process.env.OPENROUTER_API_KEY,
22
- maxContextMessages: Number(process.env.MP_AI_MAX_CONTEXT_MESSAGES) || 10,
23
- defaultModel: process.env.MP_AI_DEFAULT_MODEL,
24
- },
25
- s3: {
26
- bucket: process.env.MP_AI_S3_ATTACHMENTS_BUCKET || 'ai-agent-attachments',
27
- host: process.env.MP_AI_S3_HOST,
28
- presignedUrlExpires: Number(process.env.MP_AI_S3_PRESIGNED_URL_EXPIRES) || 120,
29
- awsRegion: process.env.AWS_REGION,
30
- },
31
- // File processing configuration
32
- fileProcessing: {
33
- maxExtractedTextSize: Number(process.env.MP_AI_MAX_EXTRACTED_TEXT_SIZE) || 51200,
34
- enableTextExtraction: process.env.MP_AI_ENABLE_TEXT_EXTRACTION !== 'false',
35
- },
36
- // Logger configuration
37
- logger: {
38
- nodeEnv: process.env.MP_AI_NODE_ENV || 'development',
39
- appName: SERVICE_NAME?.split('/').pop() || 'ai-agent-node',
40
- logLevel: process.env.MP_AI_LOG_LEVEL,
41
- },
42
- // Socket.IO configuration
43
- socket: {
44
- path: process.env.MP_AI_SOCKET_PATH,
45
- },
46
- };
35
+ function deepMerge(target, source) {
36
+ const result = { ...target };
37
+ for (const key in source) {
38
+ if (source[key] !== undefined) {
39
+ if (typeof source[key] === 'object' &&
40
+ source[key] !== null &&
41
+ !Array.isArray(source[key]) &&
42
+ typeof target[key] === 'object' &&
43
+ target[key] !== null &&
44
+ !Array.isArray(target[key])) {
45
+ // Recursively merge nested objects
46
+ result[key] = deepMerge(target[key], source[key]);
47
+ }
48
+ else {
49
+ // Override with source value
50
+ result[key] = source[key];
51
+ }
52
+ }
53
+ }
54
+ return result;
55
+ }
47
56
  /**
48
- * Get Redis connection URL
57
+ * ConfigProvider manages runtime configuration
58
+ * Allows setting config overrides through AIAgentService
49
59
  */
50
- export function getRedisUrl() {
51
- if (config.redis.url) {
52
- return config.redis.url;
60
+ export class ConfigProvider {
61
+ static instance;
62
+ runtimeConfig;
63
+ constructor() {
64
+ this.runtimeConfig = createDefaultConfig();
65
+ }
66
+ /**
67
+ * Get the singleton instance of ConfigProvider
68
+ */
69
+ static getInstance() {
70
+ if (!ConfigProvider.instance) {
71
+ ConfigProvider.instance = new ConfigProvider();
72
+ }
73
+ return ConfigProvider.instance;
74
+ }
75
+ /**
76
+ * Get the current runtime configuration
77
+ */
78
+ getConfig() {
79
+ return this.runtimeConfig;
80
+ }
81
+ /**
82
+ * Set configuration overrides
83
+ * Merges the provided overrides with existing config (deep merge)
84
+ * @param overrides - Partial config to override existing values
85
+ */
86
+ setConfig(overrides) {
87
+ this.runtimeConfig = deepMerge(this.runtimeConfig, overrides);
88
+ }
89
+ /**
90
+ * Reset configuration to defaults (from environment variables)
91
+ */
92
+ reset() {
93
+ this.runtimeConfig = createDefaultConfig();
53
94
  }
54
- return `redis://${config.redis.host}:${config.redis.port}`;
55
95
  }
56
96
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAEvB;;;GAGG;AAEH,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,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,0BAA0B;IAC1B,MAAM,EAAE;QACN,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;KACpC;CACO,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;IAC1B,CAAC;IACD,OAAO,WAAW,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AA0CvB,SAAS,mBAAmB;IAC1B,OAAO;QACL,sBAAsB;QACtB,KAAK,EAAE;YACL,IAAI,EAAE,WAAW;YACjB,IAAI,EAAG,IAAI;SACZ;QACD,EAAE,EAAE;YACF,kBAAkB,EAAE,EAAE;SACvB;QACD,EAAE,EAAE;YACF,MAAM,EAAE,sBAAsB;YAC9B,mBAAmB,EAAE,GAAG;YACxB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW;SAC9C;QACD,cAAc,EAAE;YACd,oBAAoB,EAAE,KAAK;YAC3B,oBAAoB,EAAE,IAAI;SAC3B;QACD,MAAM,EAAE;YACN,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,OAAO;SAClB;QACD,MAAM,EAAE;YACN,IAAI,EAAE,SAAS;SAChB;KACF,CAAC;AACJ,CAAC;AAGD;;;GAGG;AACH,SAAS,SAAS,CAAgC,MAAS,EAAE,MAAkB;IAC7E,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9B,IACI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ;gBAC/B,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI;gBACpB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC3B,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ;gBAC/B,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI;gBACpB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAC7B,CAAC;gBACD,mCAAmC;gBACnC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAQ,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,6BAA6B;gBAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAQ,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,cAAc;IACjB,MAAM,CAAC,QAAQ,CAAiB;IAChC,aAAa,CAAS;IAE9B;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"}
@@ -1,12 +1,17 @@
1
1
  import { AdditionalContext, AgentMessage } from '@multiplayer-app/ai-agent-types';
2
2
  import { ModelMessage, streamText } from 'ai';
3
3
  import { GenerateTextOptions, StreamTextOptions } from '../services';
4
+ import { FileHelper } from './FileHelper';
5
+ import { Config } from '../config';
4
6
  export declare class AIHelper {
5
- private static clip;
6
- private static renderContextValue;
7
- private static convertUserMessage;
8
- private static getAgentConfigs;
9
- static getAgentOptions(params: {
7
+ private fileHelper;
8
+ private aiService;
9
+ constructor(fileHelper: FileHelper, config: Config);
10
+ private clip;
11
+ private renderContextValue;
12
+ private convertUserMessage;
13
+ private getAgentConfigs;
14
+ getAgentOptions(params: {
10
15
  contextKey?: string;
11
16
  messages?: ModelMessage[];
12
17
  modelId?: string;
@@ -15,11 +20,11 @@ export declare class AIHelper {
15
20
  }, options?: Omit<GenerateTextOptions, 'messages' | 'system'>): Promise<Omit<GenerateTextOptions, 'messages'> & {
16
21
  name: string;
17
22
  }>;
18
- private static selectAgentConfig;
19
- static getAssistantResponse(messages: Pick<AgentMessage, 'role' | 'content' | 'attachments'>[], signal?: AbortSignal, options?: Omit<GenerateTextOptions, 'messages'>): Promise<string>;
20
- private static processToolChoice;
21
- static streamAssistantResponse(agentMessages: Pick<AgentMessage, 'role' | 'content' | 'toolCalls' | 'attachments'>[], signal?: AbortSignal, options?: Omit<StreamTextOptions, 'messages'>): Promise<ReturnType<typeof streamText>>;
22
- static convertMessages(agentMessages: Pick<AgentMessage, 'role' | 'content' | 'toolCalls' | 'attachments'>[], ignoreToolsAndAttachments?: boolean): Promise<ModelMessage[]>;
23
- static generateTitleForMessage(contextKey: string, messages: Pick<AgentMessage, 'role' | 'content'>[]): Promise<string>;
23
+ private selectAgentConfig;
24
+ getAssistantResponse(messages: Pick<AgentMessage, 'role' | 'content' | 'attachments'>[], signal?: AbortSignal, options?: Omit<GenerateTextOptions, 'messages'>): Promise<string>;
25
+ private processToolChoice;
26
+ streamAssistantResponse(agentMessages: Pick<AgentMessage, 'role' | 'content' | 'toolCalls' | 'attachments'>[], signal?: AbortSignal, options?: Omit<StreamTextOptions, 'messages'>): Promise<ReturnType<typeof streamText>>;
27
+ convertMessages(agentMessages: Pick<AgentMessage, 'role' | 'content' | 'toolCalls' | 'attachments'>[], ignoreToolsAndAttachments?: boolean): Promise<ModelMessage[]>;
28
+ generateTitleForMessage(contextKey: string, messages: Pick<AgentMessage, 'role' | 'content'>[]): Promise<string>;
24
29
  }
25
30
  //# sourceMappingURL=AIHelper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AIHelper.d.ts","sourceRoot":"","sources":["../../../src/helpers/AIHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAoC,YAAY,EAAe,MAAM,iCAAiC,CAAA;AAChI,OAAO,EAAE,YAAY,EAAoC,UAAU,EAAe,MAAM,IAAI,CAAA;AAC5F,OAAO,EAAa,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAO/E,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAC,IAAI;IAKnB,OAAO,CAAC,MAAM,CAAC,kBAAkB;mBAYZ,kBAAkB;IAmLvC,OAAO,CAAC,MAAM,CAAC,eAAe;WAQjB,eAAe,CAC1B,MAAM,EAAE;QACN,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;QACzB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,OAAO,CAAC,EAAE,iBAAiB,CAAA;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,EACD,OAAO,GAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,QAAQ,CAAM,GAC7D,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;mBAc/C,iBAAiB;WA8BzB,oBAAoB,CAC/B,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC,EAAE,EAClE,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,GAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAM,GAClD,OAAO,CAAC,MAAM,CAAC;IAkBlB,OAAO,CAAC,MAAM,CAAC,iBAAiB;WAuCnB,uBAAuB,CAClC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,CAAC,EAAE,EACrF,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,GAC5C,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;WAc5B,eAAe,CAC1B,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,CAAC,EAAE,EACrF,yBAAyB,UAAQ,GAChC,OAAO,CAAC,YAAY,EAAE,CAAC;WAuDb,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;CAa9H"}
1
+ {"version":3,"file":"AIHelper.d.ts","sourceRoot":"","sources":["../../../src/helpers/AIHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAoC,YAAY,EAAe,MAAM,iCAAiC,CAAA;AAChI,OAAO,EAAE,YAAY,EAAoC,UAAU,EAAe,MAAM,IAAI,CAAA;AAC5F,OAAO,EAAa,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAK/E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,qBAAa,QAAQ;IAEnB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAY;gBAEjB,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM;IAKlD,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,kBAAkB;YAYZ,kBAAkB;IAmLhC,OAAO,CAAC,eAAe;IAQjB,eAAe,CACnB,MAAM,EAAE;QACN,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;QACzB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,OAAO,CAAC,EAAE,iBAAiB,CAAA;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,EACD,OAAO,GAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,QAAQ,CAAM,GAC7D,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;YAatD,iBAAiB;IA6BzB,oBAAoB,CACxB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC,EAAE,EAClE,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,GAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAM,GAClD,OAAO,CAAC,MAAM,CAAC;IAiBlB,OAAO,CAAC,iBAAiB;IAuCnB,uBAAuB,CAC3B,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,CAAC,EAAE,EACrF,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,GAC5C,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAanC,eAAe,CACnB,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,CAAC,EAAE,EACrF,yBAAyB,UAAQ,GAChC,OAAO,CAAC,YAAY,EAAE,CAAC;IAuDpB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;CAYvH"}
@@ -3,29 +3,34 @@ import { AIService } from '../services';
3
3
  import { ModelStore } from '../store';
4
4
  import { logger } from '../libs/logger';
5
5
  import { ConfigStore } from '../store';
6
- import { isImage, prepareImageForVisionAPI, extractTextFromDocument } from './FileHelper';
7
6
  export class AIHelper {
8
- static clip(value, max) {
7
+ fileHelper;
8
+ aiService;
9
+ constructor(fileHelper, config) {
10
+ this.fileHelper = fileHelper;
11
+ this.aiService = new AIService(ModelStore.getInstance(), config.ai);
12
+ }
13
+ clip(value, max) {
9
14
  if (value.length <= max)
10
15
  return value;
11
16
  return `${value.slice(0, max)}…`;
12
17
  }
13
- static renderContextValue(value, limits) {
18
+ renderContextValue(value, limits) {
14
19
  if (value === null || value === undefined)
15
20
  return '';
16
21
  if (typeof value === 'string')
17
- return AIHelper.clip(value, limits.maxString);
22
+ return this.clip(value, limits.maxString);
18
23
  if (typeof value === 'number' || typeof value === 'boolean')
19
24
  return String(value);
20
25
  try {
21
26
  const json = JSON.stringify(value);
22
- return AIHelper.clip(json, limits.maxJson);
27
+ return this.clip(json, limits.maxJson);
23
28
  }
24
29
  catch {
25
30
  return '';
26
31
  }
27
32
  }
28
- static async convertUserMessage(msg, ignoreFileAttachments) {
33
+ async convertUserMessage(msg, ignoreFileAttachments) {
29
34
  const userContent = [
30
35
  {
31
36
  type: 'text',
@@ -42,8 +47,8 @@ export class AIHelper {
42
47
  if (ignoreFileAttachments) {
43
48
  continue;
44
49
  }
45
- if (isImage(att)) {
46
- const image = await prepareImageForVisionAPI(att);
50
+ if (this.fileHelper.isImage(att)) {
51
+ const image = await this.fileHelper.prepareImageForVisionAPI(att);
47
52
  if (image) {
48
53
  userContent.push({
49
54
  type: 'image',
@@ -53,7 +58,7 @@ export class AIHelper {
53
58
  }
54
59
  }
55
60
  else {
56
- const fileText = await extractTextFromDocument(att);
61
+ const fileText = await this.fileHelper.extractTextFromDocument(att);
57
62
  if (fileText) {
58
63
  userContent.push({
59
64
  type: 'text',
@@ -76,7 +81,7 @@ export class AIHelper {
76
81
  lines.push(` title: ${title}`);
77
82
  if (selectedText) {
78
83
  lines.push(' BEGIN_UNTRUSTED_WEB_SNIPPET');
79
- lines.push(AIHelper.clip(selectedText, 4000));
84
+ lines.push(this.clip(selectedText, 4000));
80
85
  lines.push(' END_UNTRUSTED_WEB_SNIPPET');
81
86
  }
82
87
  continue;
@@ -110,7 +115,7 @@ export class AIHelper {
110
115
  lines.push(` options: ${rendered}${options.length > 30 ? '…' : ''}`);
111
116
  }
112
117
  if (value !== undefined) {
113
- const rendered = AIHelper.renderContextValue(value, { maxString: 1000, maxJson: 2500 });
118
+ const rendered = this.renderContextValue(value, { maxString: 1000, maxJson: 2500 });
114
119
  if (rendered)
115
120
  lines.push(` value: ${rendered}`);
116
121
  }
@@ -131,7 +136,7 @@ export class AIHelper {
131
136
  const value = f?.value;
132
137
  const inputType = typeof f?.inputType === 'string' ? f.inputType : undefined;
133
138
  const options = Array.isArray(f?.options) ? f.options : [];
134
- const clipped = AIHelper.renderContextValue(value, { maxString: 1000, maxJson: 2500 });
139
+ const clipped = this.renderContextValue(value, { maxString: 1000, maxJson: 2500 });
135
140
  const meta = [];
136
141
  if (inputType)
137
142
  meta.push(`type=${inputType}`);
@@ -167,7 +172,7 @@ export class AIHelper {
167
172
  lines.push(' data:');
168
173
  const limits = { maxString: 1000, maxJson: 1500 };
169
174
  for (const [k, v] of entries.slice(0, 40)) {
170
- const rendered = AIHelper.renderContextValue(v, limits);
175
+ const rendered = this.renderContextValue(v, limits);
171
176
  if (!rendered)
172
177
  continue;
173
178
  lines.push(` - ${k}: ${rendered}`);
@@ -178,7 +183,7 @@ export class AIHelper {
178
183
  }
179
184
  }
180
185
  else if (data !== undefined) {
181
- const rendered = AIHelper.renderContextValue(data, { maxString: 1000, maxJson: 2000 });
186
+ const rendered = this.renderContextValue(data, { maxString: 1000, maxJson: 2000 });
182
187
  if (rendered)
183
188
  lines.push(` data: ${rendered}`);
184
189
  }
@@ -190,11 +195,11 @@ export class AIHelper {
190
195
  if (title)
191
196
  lines.push(` title: ${title}`);
192
197
  if (summary) {
193
- lines.push(` summary: ${AIHelper.clip(summary, 4000)}`);
198
+ lines.push(` summary: ${this.clip(summary, 4000)}`);
194
199
  continue;
195
200
  }
196
201
  if (md?.data !== undefined) {
197
- const rendered = AIHelper.renderContextValue(md.data, { maxString: 2000, maxJson: 5000 });
202
+ const rendered = this.renderContextValue(md.data, { maxString: 2000, maxJson: 5000 });
198
203
  if (rendered)
199
204
  lines.push(` data: ${rendered}`);
200
205
  }
@@ -207,32 +212,30 @@ export class AIHelper {
207
212
  }
208
213
  return userContent;
209
214
  }
210
- static getAgentConfigs(contextKey) {
215
+ getAgentConfigs(contextKey) {
211
216
  const agents = ConfigStore.getInstance().getAgentsForContext(contextKey);
212
217
  if (!agents.length) {
213
218
  throw new Error(`Agent configs not found for context key: ${contextKey}`);
214
219
  }
215
220
  return agents;
216
221
  }
217
- static async getAgentOptions(params, options = {}) {
222
+ async getAgentOptions(params, options = {}) {
218
223
  const { contextKey, messages, modelId, context, agentName } = params;
219
224
  let agentConfig = ConfigStore.getInstance().getAgentConfigByName(agentName);
220
225
  if (contextKey && messages) {
221
- agentConfig = await AIHelper.selectAgentConfig(contextKey, messages);
226
+ agentConfig = await this.selectAgentConfig(contextKey, messages);
222
227
  }
223
- const aiService = new AIService(ModelStore.getInstance());
224
- const agentOptions = aiService.getAgentOptions(agentConfig, modelId, context);
228
+ const agentOptions = this.aiService.getAgentOptions(agentConfig, modelId, context);
225
229
  return {
226
230
  ...agentOptions,
227
231
  ...options
228
232
  };
229
233
  }
230
- static async selectAgentConfig(contextKey, messages) {
231
- const configs = AIHelper.getAgentConfigs(contextKey);
234
+ async selectAgentConfig(contextKey, messages) {
235
+ const configs = this.getAgentConfigs(contextKey);
232
236
  if (configs.length === 1) {
233
237
  return configs[0];
234
238
  }
235
- const aiService = new AIService(ModelStore.getInstance());
236
239
  const systemPrompt = `Select the most appropriate agent for the given user prompt.
237
240
  Return only the agent name, no quotes or extra text.
238
241
  Available agents: ${JSON.stringify(configs.map((config) => ({
@@ -240,7 +243,7 @@ Available agents: ${JSON.stringify(configs.map((config) => ({
240
243
  description: config.description,
241
244
  tools: config.tools.map(({ data }) => data.title)
242
245
  })))}`;
243
- const agentName = await aiService.generateText({
246
+ const agentName = await this.aiService.generateText({
244
247
  messages,
245
248
  system: systemPrompt,
246
249
  temperature: 0.7,
@@ -253,15 +256,14 @@ Available agents: ${JSON.stringify(configs.map((config) => ({
253
256
  }
254
257
  return agent;
255
258
  }
256
- static async getAssistantResponse(messages, signal, options = {}) {
259
+ async getAssistantResponse(messages, signal, options = {}) {
257
260
  try {
258
- const aiService = new AIService(ModelStore.getInstance());
259
261
  const processedOptions = this.processToolChoice(options, messages);
260
- return aiService.generateText({
262
+ return this.aiService.generateText({
261
263
  temperature: 0.7,
262
264
  maxOutputTokens: 2000,
263
265
  ...processedOptions,
264
- messages: await AIHelper.convertMessages(messages),
266
+ messages: await this.convertMessages(messages),
265
267
  signal
266
268
  });
267
269
  }
@@ -270,7 +272,7 @@ Available agents: ${JSON.stringify(configs.map((config) => ({
270
272
  throw error;
271
273
  }
272
274
  }
273
- static processToolChoice(options, agentMessages) {
275
+ processToolChoice(options, agentMessages) {
274
276
  if (!options?.toolChoice) {
275
277
  return options || {};
276
278
  }
@@ -300,11 +302,10 @@ Available agents: ${JSON.stringify(configs.map((config) => ({
300
302
  }
301
303
  return options;
302
304
  }
303
- static async streamAssistantResponse(agentMessages, signal, options) {
304
- const aiService = new AIService(ModelStore.getInstance());
305
+ async streamAssistantResponse(agentMessages, signal, options) {
305
306
  const messages = await this.convertMessages(agentMessages);
306
307
  const processedOptions = this.processToolChoice(options, agentMessages);
307
- return aiService.streamText({
308
+ return this.aiService.streamText({
308
309
  messages,
309
310
  temperature: 0.7,
310
311
  maxOutputTokens: 2000,
@@ -312,7 +313,7 @@ Available agents: ${JSON.stringify(configs.map((config) => ({
312
313
  ...processedOptions
313
314
  });
314
315
  }
315
- static async convertMessages(agentMessages, ignoreToolsAndAttachments = false) {
316
+ async convertMessages(agentMessages, ignoreToolsAndAttachments = false) {
316
317
  const result = [];
317
318
  for (const msg of agentMessages) {
318
319
  if (msg.role === MessageRole.User) {
@@ -364,12 +365,11 @@ Available agents: ${JSON.stringify(configs.map((config) => ({
364
365
  }
365
366
  return result;
366
367
  }
367
- static async generateTitleForMessage(contextKey, messages) {
368
+ async generateTitleForMessage(contextKey, messages) {
368
369
  try {
369
- const aiService = new AIService(ModelStore.getInstance());
370
370
  const systemPrompt = `Generate descriptive title 5 words maximum for a chat conversation. Return only the title, no quotes or extra text. If user question is opaque, assume it is related to ${contextKey} topic.`;
371
- return aiService.generateText({
372
- messages: await AIHelper.convertMessages(messages, true),
371
+ return this.aiService.generateText({
372
+ messages: await this.convertMessages(messages, true),
373
373
  system: systemPrompt
374
374
  });
375
375
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AIHelper.js","sourceRoot":"","sources":["../../../src/helpers/AIHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AIHelper.js","sourceRoot":"","sources":["../../../src/helpers/AIHelper.ts"],"names":[],"mappings":"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"}