@multiplayer-app/ai-agent-node 0.1.0-beta.4 → 0.1.0-beta.41
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.
- package/dist/cjs/config.cjs +88 -38
- package/dist/cjs/config.cjs.map +1 -1
- package/dist/cjs/config.d.ts +57 -23
- package/dist/cjs/config.d.ts.map +1 -1
- package/dist/cjs/helpers/AIHelper.cjs +160 -101
- package/dist/cjs/helpers/AIHelper.cjs.map +1 -1
- package/dist/cjs/helpers/AIHelper.d.ts +21 -13
- package/dist/cjs/helpers/AIHelper.d.ts.map +1 -1
- package/dist/cjs/helpers/AIHelper.test.cjs +22 -15
- package/dist/cjs/helpers/AIHelper.test.cjs.map +1 -1
- package/dist/cjs/helpers/ConfigHelper.cjs +19 -11
- package/dist/cjs/helpers/ConfigHelper.cjs.map +1 -1
- package/dist/cjs/helpers/ConfigHelper.d.ts.map +1 -1
- package/dist/cjs/helpers/ContextLimiter.cjs +2 -3
- package/dist/cjs/helpers/ContextLimiter.cjs.map +1 -1
- package/dist/cjs/helpers/FileHelper.cjs +132 -154
- package/dist/cjs/helpers/FileHelper.cjs.map +1 -1
- package/dist/cjs/helpers/FileHelper.d.ts +19 -25
- package/dist/cjs/helpers/FileHelper.d.ts.map +1 -1
- package/dist/cjs/helpers/index.cjs +4 -5
- package/dist/cjs/helpers/index.cjs.map +1 -1
- package/dist/cjs/helpers/index.d.ts +4 -5
- package/dist/cjs/helpers/index.d.ts.map +1 -1
- package/dist/cjs/index.cjs +118 -31
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.ts +42 -13
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/libs/index.cjs +2 -3
- package/dist/cjs/libs/index.cjs.map +1 -1
- package/dist/cjs/libs/index.d.ts +2 -3
- package/dist/cjs/libs/index.d.ts.map +1 -1
- package/dist/cjs/libs/logger/index.cjs +5 -5
- package/dist/cjs/libs/logger/index.cjs.map +1 -1
- package/dist/cjs/libs/logger/index.d.ts +2 -2
- package/dist/cjs/libs/logger/index.d.ts.map +1 -1
- package/dist/cjs/libs/logger/kafkajs-logger-creator.cjs +2 -2
- package/dist/cjs/libs/logger/kafkajs-logger-creator.cjs.map +1 -1
- package/dist/cjs/libs/s3/index.cjs +3 -39
- package/dist/cjs/libs/s3/index.cjs.map +1 -1
- package/dist/cjs/libs/s3/index.d.ts +1 -2
- package/dist/cjs/libs/s3/index.d.ts.map +1 -1
- package/dist/cjs/libs/s3/s3.lib.cjs +174 -191
- package/dist/cjs/libs/s3/s3.lib.cjs.map +1 -1
- package/dist/cjs/libs/s3/s3.lib.d.ts +29 -22
- package/dist/cjs/libs/s3/s3.lib.d.ts.map +1 -1
- package/dist/cjs/processors/ActivityProcessor.cjs +36 -0
- package/dist/cjs/processors/ActivityProcessor.cjs.map +1 -0
- package/dist/cjs/processors/ActivityProcessor.d.ts +27 -0
- package/dist/cjs/processors/ActivityProcessor.d.ts.map +1 -0
- package/dist/cjs/processors/ActivityProcessor.test.cjs +84 -0
- package/dist/cjs/processors/ActivityProcessor.test.cjs.map +1 -0
- package/dist/cjs/processors/ActivityProcessor.test.d.ts +2 -0
- package/dist/cjs/processors/ActivityProcessor.test.d.ts.map +1 -0
- package/dist/cjs/processors/ChatProcessor.cjs +335 -163
- package/dist/cjs/processors/ChatProcessor.cjs.map +1 -1
- package/dist/cjs/processors/ChatProcessor.d.ts +56 -9
- package/dist/cjs/processors/ChatProcessor.d.ts.map +1 -1
- package/dist/cjs/processors/ChatProcessor.test.cjs +450 -0
- package/dist/cjs/processors/ChatProcessor.test.cjs.map +1 -0
- package/dist/cjs/processors/ChatProcessor.test.d.ts +2 -0
- package/dist/cjs/processors/ChatProcessor.test.d.ts.map +1 -0
- package/dist/cjs/processors/ModelsProcessor.cjs +2 -2
- package/dist/cjs/processors/ModelsProcessor.cjs.map +1 -1
- package/dist/cjs/processors/index.cjs +3 -2
- package/dist/cjs/processors/index.cjs.map +1 -1
- package/dist/cjs/processors/index.d.ts +3 -2
- package/dist/cjs/processors/index.d.ts.map +1 -1
- package/dist/cjs/services/AIService.cjs +50 -31
- package/dist/cjs/services/AIService.cjs.map +1 -1
- package/dist/cjs/services/AIService.d.ts +16 -5
- package/dist/cjs/services/AIService.d.ts.map +1 -1
- package/dist/cjs/services/InternalEventsHandler.cjs +5 -5
- package/dist/cjs/services/InternalEventsHandler.cjs.map +1 -1
- package/dist/cjs/services/InternalEventsHandler.d.ts +3 -1
- package/dist/cjs/services/InternalEventsHandler.d.ts.map +1 -1
- package/dist/cjs/services/ModelFetcher.cjs +9 -15
- package/dist/cjs/services/ModelFetcher.cjs.map +1 -1
- package/dist/cjs/services/ModelFetcher.d.ts +2 -7
- package/dist/cjs/services/ModelFetcher.d.ts.map +1 -1
- package/dist/cjs/services/RedisService.cjs +35 -32
- package/dist/cjs/services/RedisService.cjs.map +1 -1
- package/dist/cjs/services/RedisService.d.ts +5 -2
- package/dist/cjs/services/RedisService.d.ts.map +1 -1
- package/dist/cjs/services/SocketService.cjs +19 -20
- package/dist/cjs/services/SocketService.cjs.map +1 -1
- package/dist/cjs/services/SocketService.d.ts +9 -6
- package/dist/cjs/services/SocketService.d.ts.map +1 -1
- package/dist/cjs/services/index.cjs +5 -6
- package/dist/cjs/services/index.cjs.map +1 -1
- package/dist/cjs/services/index.d.ts +5 -6
- package/dist/cjs/services/index.d.ts.map +1 -1
- package/dist/cjs/store/AgentStore.cjs +4 -5
- package/dist/cjs/store/AgentStore.cjs.map +1 -1
- package/dist/cjs/store/AgentStore.d.ts +2 -1
- package/dist/cjs/store/AgentStore.d.ts.map +1 -1
- package/dist/cjs/store/ArtifactStore.cjs +2 -4
- package/dist/cjs/store/ArtifactStore.cjs.map +1 -1
- package/dist/cjs/store/ConfigStore.cjs +8 -11
- package/dist/cjs/store/ConfigStore.cjs.map +1 -1
- package/dist/cjs/store/ConfigStore.d.ts.map +1 -1
- package/dist/cjs/store/ConfigStore.test.cjs +2 -2
- package/dist/cjs/store/ConfigStore.test.cjs.map +1 -1
- package/dist/cjs/store/ModelStore.cjs +4 -4
- package/dist/cjs/store/ModelStore.cjs.map +1 -1
- package/dist/cjs/store/ModelStore.test.cjs +17 -17
- package/dist/cjs/store/ModelStore.test.cjs.map +1 -1
- package/dist/cjs/store/index.cjs +4 -4
- package/dist/cjs/store/index.cjs.map +1 -1
- package/dist/cjs/store/index.d.ts +4 -4
- package/dist/cjs/store/index.d.ts.map +1 -1
- package/dist/cjs/tools/proposeFormValuesTool.d.ts +2 -2
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/esm/config.d.ts +57 -23
- package/dist/esm/config.d.ts.map +1 -1
- package/dist/esm/config.js +88 -36
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/helpers/AIHelper.d.ts +21 -13
- package/dist/esm/helpers/AIHelper.d.ts.map +1 -1
- package/dist/esm/helpers/AIHelper.js +159 -98
- package/dist/esm/helpers/AIHelper.js.map +1 -1
- package/dist/esm/helpers/AIHelper.test.js +21 -14
- package/dist/esm/helpers/AIHelper.test.js.map +1 -1
- package/dist/esm/helpers/ConfigHelper.d.ts.map +1 -1
- package/dist/esm/helpers/ConfigHelper.js +17 -9
- package/dist/esm/helpers/ConfigHelper.js.map +1 -1
- package/dist/esm/helpers/ContextLimiter.js +2 -3
- package/dist/esm/helpers/ContextLimiter.js.map +1 -1
- package/dist/esm/helpers/FileHelper.d.ts +19 -25
- package/dist/esm/helpers/FileHelper.d.ts.map +1 -1
- package/dist/esm/helpers/FileHelper.js +132 -149
- package/dist/esm/helpers/FileHelper.js.map +1 -1
- package/dist/esm/helpers/index.d.ts +4 -5
- package/dist/esm/helpers/index.d.ts.map +1 -1
- package/dist/esm/helpers/index.js +4 -5
- package/dist/esm/helpers/index.js.map +1 -1
- package/dist/esm/index.d.ts +42 -13
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +87 -12
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/libs/index.d.ts +2 -3
- package/dist/esm/libs/index.d.ts.map +1 -1
- package/dist/esm/libs/index.js +2 -3
- package/dist/esm/libs/index.js.map +1 -1
- package/dist/esm/libs/logger/index.d.ts +2 -2
- package/dist/esm/libs/logger/index.d.ts.map +1 -1
- package/dist/esm/libs/logger/index.js +2 -2
- package/dist/esm/libs/logger/index.js.map +1 -1
- package/dist/esm/libs/logger/kafkajs-logger-creator.js +1 -1
- package/dist/esm/libs/logger/kafkajs-logger-creator.js.map +1 -1
- package/dist/esm/libs/s3/index.d.ts +1 -2
- package/dist/esm/libs/s3/index.d.ts.map +1 -1
- package/dist/esm/libs/s3/index.js +1 -2
- package/dist/esm/libs/s3/index.js.map +1 -1
- package/dist/esm/libs/s3/s3.lib.d.ts +29 -22
- package/dist/esm/libs/s3/s3.lib.d.ts.map +1 -1
- package/dist/esm/libs/s3/s3.lib.js +178 -177
- package/dist/esm/libs/s3/s3.lib.js.map +1 -1
- package/dist/esm/processors/ActivityProcessor.d.ts +27 -0
- package/dist/esm/processors/ActivityProcessor.d.ts.map +1 -0
- package/dist/esm/processors/ActivityProcessor.js +33 -0
- package/dist/esm/processors/ActivityProcessor.js.map +1 -0
- package/dist/esm/processors/ActivityProcessor.test.d.ts +2 -0
- package/dist/esm/processors/ActivityProcessor.test.d.ts.map +1 -0
- package/dist/esm/processors/ActivityProcessor.test.js +82 -0
- package/dist/esm/processors/ActivityProcessor.test.js.map +1 -0
- package/dist/esm/processors/ChatProcessor.d.ts +56 -9
- package/dist/esm/processors/ChatProcessor.d.ts.map +1 -1
- package/dist/esm/processors/ChatProcessor.js +334 -153
- package/dist/esm/processors/ChatProcessor.js.map +1 -1
- package/dist/esm/processors/ChatProcessor.test.d.ts +2 -0
- package/dist/esm/processors/ChatProcessor.test.d.ts.map +1 -0
- package/dist/esm/processors/ChatProcessor.test.js +448 -0
- package/dist/esm/processors/ChatProcessor.test.js.map +1 -0
- package/dist/esm/processors/ModelsProcessor.js +1 -1
- package/dist/esm/processors/ModelsProcessor.js.map +1 -1
- package/dist/esm/processors/index.d.ts +3 -2
- package/dist/esm/processors/index.d.ts.map +1 -1
- package/dist/esm/processors/index.js +3 -2
- package/dist/esm/processors/index.js.map +1 -1
- package/dist/esm/services/AIService.d.ts +16 -5
- package/dist/esm/services/AIService.d.ts.map +1 -1
- package/dist/esm/services/AIService.js +53 -32
- package/dist/esm/services/AIService.js.map +1 -1
- package/dist/esm/services/InternalEventsHandler.d.ts +3 -1
- package/dist/esm/services/InternalEventsHandler.d.ts.map +1 -1
- package/dist/esm/services/InternalEventsHandler.js +10 -8
- package/dist/esm/services/InternalEventsHandler.js.map +1 -1
- package/dist/esm/services/ModelFetcher.d.ts +2 -7
- package/dist/esm/services/ModelFetcher.d.ts.map +1 -1
- package/dist/esm/services/ModelFetcher.js +4 -9
- package/dist/esm/services/ModelFetcher.js.map +1 -1
- package/dist/esm/services/RedisService.d.ts +5 -2
- package/dist/esm/services/RedisService.d.ts.map +1 -1
- package/dist/esm/services/RedisService.js +25 -21
- package/dist/esm/services/RedisService.js.map +1 -1
- package/dist/esm/services/SocketService.d.ts +9 -6
- package/dist/esm/services/SocketService.d.ts.map +1 -1
- package/dist/esm/services/SocketService.js +15 -13
- package/dist/esm/services/SocketService.js.map +1 -1
- package/dist/esm/services/index.d.ts +5 -6
- package/dist/esm/services/index.d.ts.map +1 -1
- package/dist/esm/services/index.js +5 -6
- package/dist/esm/services/index.js.map +1 -1
- package/dist/esm/store/AgentStore.d.ts +2 -1
- package/dist/esm/store/AgentStore.d.ts.map +1 -1
- package/dist/esm/store/AgentStore.js +5 -5
- package/dist/esm/store/AgentStore.js.map +1 -1
- package/dist/esm/store/ArtifactStore.js +3 -7
- package/dist/esm/store/ArtifactStore.js.map +1 -1
- package/dist/esm/store/ConfigStore.d.ts.map +1 -1
- package/dist/esm/store/ConfigStore.js +16 -19
- package/dist/esm/store/ConfigStore.js.map +1 -1
- package/dist/esm/store/ConfigStore.test.js +1 -1
- package/dist/esm/store/ConfigStore.test.js.map +1 -1
- package/dist/esm/store/ModelStore.js +6 -6
- package/dist/esm/store/ModelStore.js.map +1 -1
- package/dist/esm/store/ModelStore.test.js +12 -12
- package/dist/esm/store/ModelStore.test.js.map +1 -1
- package/dist/esm/store/index.d.ts +4 -4
- package/dist/esm/store/index.d.ts.map +1 -1
- package/dist/esm/store/index.js +4 -4
- package/dist/esm/store/index.js.map +1 -1
- package/dist/esm/tools/proposeFormValuesTool.d.ts +2 -2
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
- package/package.json +15 -15
- package/dist/cjs/helpers/SetupHelper.cjs +0 -37
- package/dist/cjs/helpers/SetupHelper.cjs.map +0 -1
- package/dist/cjs/helpers/SetupHelper.d.ts +0 -5
- package/dist/cjs/helpers/SetupHelper.d.ts.map +0 -1
- package/dist/cjs/libs/kafka/config.cjs +0 -8
- package/dist/cjs/libs/kafka/config.cjs.map +0 -1
- package/dist/cjs/libs/kafka/config.d.ts +0 -5
- package/dist/cjs/libs/kafka/config.d.ts.map +0 -1
- package/dist/cjs/libs/kafka/consumer.cjs +0 -133
- package/dist/cjs/libs/kafka/consumer.cjs.map +0 -1
- package/dist/cjs/libs/kafka/consumer.d.ts +0 -16
- package/dist/cjs/libs/kafka/consumer.d.ts.map +0 -1
- package/dist/cjs/libs/kafka/index.cjs +0 -19
- package/dist/cjs/libs/kafka/index.cjs.map +0 -1
- package/dist/cjs/libs/kafka/index.d.ts +0 -3
- package/dist/cjs/libs/kafka/index.d.ts.map +0 -1
- package/dist/cjs/libs/kafka/kafka.cjs +0 -27
- package/dist/cjs/libs/kafka/kafka.cjs.map +0 -1
- package/dist/cjs/libs/kafka/kafka.d.ts +0 -3
- package/dist/cjs/libs/kafka/kafka.d.ts.map +0 -1
- package/dist/cjs/libs/kafka/producer.cjs +0 -48
- package/dist/cjs/libs/kafka/producer.cjs.map +0 -1
- package/dist/cjs/libs/kafka/producer.d.ts +0 -11
- package/dist/cjs/libs/kafka/producer.d.ts.map +0 -1
- package/dist/cjs/libs/logger/config.cjs +0 -9
- package/dist/cjs/libs/logger/config.cjs.map +0 -1
- package/dist/cjs/libs/logger/config.d.ts +0 -5
- package/dist/cjs/libs/logger/config.d.ts.map +0 -1
- package/dist/cjs/libs/s3/config.cjs +0 -10
- package/dist/cjs/libs/s3/config.cjs.map +0 -1
- package/dist/cjs/libs/s3/config.d.ts +0 -7
- package/dist/cjs/libs/s3/config.d.ts.map +0 -1
- package/dist/cjs/services/KafkaService.cjs +0 -123
- package/dist/cjs/services/KafkaService.cjs.map +0 -1
- package/dist/cjs/services/KafkaService.d.ts +0 -35
- package/dist/cjs/services/KafkaService.d.ts.map +0 -1
- package/dist/esm/helpers/SetupHelper.d.ts +0 -5
- package/dist/esm/helpers/SetupHelper.d.ts.map +0 -1
- package/dist/esm/helpers/SetupHelper.js +0 -32
- package/dist/esm/helpers/SetupHelper.js.map +0 -1
- package/dist/esm/libs/kafka/config.d.ts +0 -5
- package/dist/esm/libs/kafka/config.d.ts.map +0 -1
- package/dist/esm/libs/kafka/config.js +0 -5
- package/dist/esm/libs/kafka/config.js.map +0 -1
- package/dist/esm/libs/kafka/consumer.d.ts +0 -16
- package/dist/esm/libs/kafka/consumer.d.ts.map +0 -1
- package/dist/esm/libs/kafka/consumer.js +0 -126
- package/dist/esm/libs/kafka/consumer.js.map +0 -1
- package/dist/esm/libs/kafka/index.d.ts +0 -3
- package/dist/esm/libs/kafka/index.d.ts.map +0 -1
- package/dist/esm/libs/kafka/index.js +0 -3
- package/dist/esm/libs/kafka/index.js.map +0 -1
- package/dist/esm/libs/kafka/kafka.d.ts +0 -3
- package/dist/esm/libs/kafka/kafka.d.ts.map +0 -1
- package/dist/esm/libs/kafka/kafka.js +0 -24
- package/dist/esm/libs/kafka/kafka.js.map +0 -1
- package/dist/esm/libs/kafka/producer.d.ts +0 -11
- package/dist/esm/libs/kafka/producer.d.ts.map +0 -1
- package/dist/esm/libs/kafka/producer.js +0 -44
- package/dist/esm/libs/kafka/producer.js.map +0 -1
- package/dist/esm/libs/logger/config.d.ts +0 -5
- package/dist/esm/libs/logger/config.d.ts.map +0 -1
- package/dist/esm/libs/logger/config.js +0 -6
- package/dist/esm/libs/logger/config.js.map +0 -1
- package/dist/esm/libs/s3/config.d.ts +0 -7
- package/dist/esm/libs/s3/config.d.ts.map +0 -1
- package/dist/esm/libs/s3/config.js +0 -7
- package/dist/esm/libs/s3/config.js.map +0 -1
- package/dist/esm/services/KafkaService.d.ts +0 -35
- package/dist/esm/services/KafkaService.d.ts.map +0 -1
- package/dist/esm/services/KafkaService.js +0 -120
- package/dist/esm/services/KafkaService.js.map +0 -1
- package/dist/tsconfig.cjs.tsbuildinfo +0 -1
- package/dist/tsconfig.esm.tsbuildinfo +0 -1
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const vitest_1 = require("vitest");
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const AIHelper_1 = require("./AIHelper.cjs");
|
|
5
|
+
const FileHelper_1 = require("./FileHelper.cjs");
|
|
6
|
+
const ModelStore_1 = require("../store/ModelStore.cjs");
|
|
7
|
+
const config_1 = require("../config.cjs");
|
|
8
|
+
const s3_1 = require("../libs/s3/index.cjs");
|
|
6
9
|
const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
|
|
7
10
|
(0, vitest_1.describe)('AIHelper.getAssistantResponse', () => {
|
|
8
11
|
let modelStore;
|
|
9
|
-
let
|
|
12
|
+
let aiHelper;
|
|
10
13
|
(0, vitest_1.beforeAll)(() => {
|
|
11
14
|
// Setup real ModelStore instance
|
|
12
|
-
modelStore =
|
|
15
|
+
modelStore = ModelStore_1.ModelStore.getInstance();
|
|
13
16
|
modelStore.setModels([
|
|
14
17
|
{ id: 'openai/gpt-4o', label: 'GPT-4o Mini', provider: 'openrouter' }
|
|
15
18
|
]);
|
|
19
|
+
const config = config_1.ConfigProvider.getInstance().getConfig();
|
|
20
|
+
const s3Lib = new s3_1.S3Lib(config.s3);
|
|
21
|
+
const fileHelper = new FileHelper_1.FileHelper(s3Lib, config);
|
|
22
|
+
aiHelper = new AIHelper_1.AIHelper(fileHelper, config);
|
|
16
23
|
});
|
|
17
24
|
(0, vitest_1.describe)('with tool approval responses', () => {
|
|
18
25
|
(0, vitest_1.it)('should handle approved tool with successful execution', async () => {
|
|
@@ -38,7 +45,7 @@ const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
|
|
|
38
45
|
]
|
|
39
46
|
}
|
|
40
47
|
];
|
|
41
|
-
const response = await
|
|
48
|
+
const response = await aiHelper.getAssistantResponse(messages);
|
|
42
49
|
// Verify we get a response (actual model call)
|
|
43
50
|
(0, vitest_1.expect)(response).toBeDefined();
|
|
44
51
|
(0, vitest_1.expect)(typeof response).toBe('string');
|
|
@@ -71,7 +78,7 @@ const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
|
|
|
71
78
|
]
|
|
72
79
|
}
|
|
73
80
|
];
|
|
74
|
-
const response = await
|
|
81
|
+
const response = await aiHelper.getAssistantResponse(messages);
|
|
75
82
|
// Verify we get a response acknowledging the denial
|
|
76
83
|
(0, vitest_1.expect)(response).toBeDefined();
|
|
77
84
|
(0, vitest_1.expect)(typeof response).toBe('string');
|
|
@@ -111,7 +118,7 @@ const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
|
|
|
111
118
|
]
|
|
112
119
|
}
|
|
113
120
|
];
|
|
114
|
-
const response = await
|
|
121
|
+
const response = await aiHelper.getAssistantResponse(messages);
|
|
115
122
|
// Verify we get a response handling both tool results
|
|
116
123
|
(0, vitest_1.expect)(response).toBeDefined();
|
|
117
124
|
(0, vitest_1.expect)(typeof response).toBe('string');
|
|
@@ -139,7 +146,7 @@ const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
|
|
|
139
146
|
]
|
|
140
147
|
}
|
|
141
148
|
];
|
|
142
|
-
const response = await
|
|
149
|
+
const response = await aiHelper.getAssistantResponse(messages);
|
|
143
150
|
// Verify we get a response even when tool execution failed
|
|
144
151
|
(0, vitest_1.expect)(response).toBeDefined();
|
|
145
152
|
(0, vitest_1.expect)(typeof response).toBe('string');
|
|
@@ -169,7 +176,7 @@ const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
|
|
|
169
176
|
]
|
|
170
177
|
}
|
|
171
178
|
];
|
|
172
|
-
const response = await
|
|
179
|
+
const response = await aiHelper.getAssistantResponse(messages);
|
|
173
180
|
// Verify we get a response when tool was not found
|
|
174
181
|
(0, vitest_1.expect)(response).toBeDefined();
|
|
175
182
|
(0, vitest_1.expect)(typeof response).toBe('string');
|
|
@@ -199,7 +206,7 @@ const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
|
|
|
199
206
|
]
|
|
200
207
|
}
|
|
201
208
|
];
|
|
202
|
-
const response = await
|
|
209
|
+
const response = await aiHelper.getAssistantResponse(messages);
|
|
203
210
|
// Verify we get a response when tool execution had an error
|
|
204
211
|
(0, vitest_1.expect)(response).toBeDefined();
|
|
205
212
|
(0, vitest_1.expect)(typeof response).toBe('string');
|
|
@@ -216,7 +223,7 @@ const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
|
|
|
216
223
|
content: 'I am doing well, thank you!'
|
|
217
224
|
}
|
|
218
225
|
];
|
|
219
|
-
const response = await
|
|
226
|
+
const response = await aiHelper.getAssistantResponse(messages);
|
|
220
227
|
// Verify we get a response for normal conversation
|
|
221
228
|
(0, vitest_1.expect)(response).toBeDefined();
|
|
222
229
|
(0, vitest_1.expect)(typeof response).toBe('string');
|
|
@@ -243,7 +250,7 @@ const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
|
|
|
243
250
|
]
|
|
244
251
|
}
|
|
245
252
|
];
|
|
246
|
-
const response = await
|
|
253
|
+
const response = await aiHelper.getAssistantResponse(messages);
|
|
247
254
|
// Verify we get a response even when tool is pending approval
|
|
248
255
|
// (tool calls without output should not include tool-result in messages)
|
|
249
256
|
(0, vitest_1.expect)(response).toBeDefined();
|
|
@@ -289,7 +296,7 @@ const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
|
|
|
289
296
|
]
|
|
290
297
|
}
|
|
291
298
|
];
|
|
292
|
-
const response = await
|
|
299
|
+
const response = await aiHelper.getAssistantResponse(messages);
|
|
293
300
|
// Verify we get a response for sequential tool calls
|
|
294
301
|
(0, vitest_1.expect)(response).toBeDefined();
|
|
295
302
|
(0, vitest_1.expect)(typeof response).toBe('string');
|
|
@@ -303,7 +310,7 @@ const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
|
|
|
303
310
|
content: 'Test message'
|
|
304
311
|
}
|
|
305
312
|
];
|
|
306
|
-
const response = await
|
|
313
|
+
const response = await aiHelper.getAssistantResponse(messages, {
|
|
307
314
|
temperature: 0.9,
|
|
308
315
|
maxOutputTokens: 1000
|
|
309
316
|
});
|
|
@@ -322,7 +329,7 @@ const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
|
|
|
322
329
|
];
|
|
323
330
|
const abortController = new AbortController();
|
|
324
331
|
const signal = abortController.signal;
|
|
325
|
-
const response = await
|
|
332
|
+
const response = await aiHelper.getAssistantResponse(messages, { signal });
|
|
326
333
|
// Verify we get a response with abort signal passed through
|
|
327
334
|
(0, vitest_1.expect)(response).toBeDefined();
|
|
328
335
|
(0, vitest_1.expect)(typeof response).toBe('string');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AIHelper.test.js","sourceRoot":"","sources":["../../../src/helpers/AIHelper.test.ts"],"names":[],"mappings":";;AAAA,mCAAyD;AACzD
|
|
1
|
+
{"version":3,"file":"AIHelper.test.js","sourceRoot":"","sources":["../../../src/helpers/AIHelper.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ConfigHelper = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
|
|
6
|
-
const
|
|
6
|
+
const logger_1 = require("../libs/logger/index.cjs");
|
|
7
|
+
const ai_1 = require("ai");
|
|
7
8
|
class ConfigHelper {
|
|
8
9
|
static loadConfig(rawConfig) {
|
|
9
10
|
try {
|
|
@@ -12,10 +13,10 @@ class ConfigHelper {
|
|
|
12
13
|
}
|
|
13
14
|
catch (error) {
|
|
14
15
|
if (error instanceof SyntaxError) {
|
|
15
|
-
|
|
16
|
+
logger_1.logger.error(`Failed to parse config.json: ${error.message}`);
|
|
16
17
|
throw new Error(`Invalid JSON in config file: ${error.message}`);
|
|
17
18
|
}
|
|
18
|
-
|
|
19
|
+
logger_1.logger.error(`Failed to load config: ${error}`);
|
|
19
20
|
throw error;
|
|
20
21
|
}
|
|
21
22
|
}
|
|
@@ -36,14 +37,22 @@ class ConfigHelper {
|
|
|
36
37
|
config[contextKey] = [];
|
|
37
38
|
}
|
|
38
39
|
config[contextKey].push({
|
|
39
|
-
name: agent.name,
|
|
40
|
-
description: agent.description,
|
|
40
|
+
name: agent.name || 'unknown',
|
|
41
|
+
description: agent.description || 'unknown',
|
|
41
42
|
defaultModel: agent.defaultModel,
|
|
42
|
-
systemPrompt: agent.systemPrompt,
|
|
43
|
+
systemPrompt: agent.systemPrompt || 'unknown',
|
|
43
44
|
temperature: agent.temperature || 0.1,
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
maxOutputTokens: agent.maxOutputTokens || 2000,
|
|
46
|
+
topP: agent.topP,
|
|
47
|
+
topK: agent.topK,
|
|
48
|
+
presencePenalty: agent.presencePenalty,
|
|
49
|
+
frequencyPenalty: agent.frequencyPenalty,
|
|
50
|
+
stopSequences: agent.stopSequences,
|
|
51
|
+
seed: agent.seed,
|
|
52
|
+
toolChoice: agent.toolChoice,
|
|
53
|
+
tools: agent.tools?.map((tool) => ConfigHelper.convertTool(tool)) || [],
|
|
54
|
+
outputSchema: agent.outputSchema ? ConfigHelper.jsonSchemaToZod(agent.outputSchema) : undefined,
|
|
55
|
+
stopWhen: (0, ai_1.stepCountIs)(5), // not supported yet in the config, can be set only with in-code agent setup,
|
|
47
56
|
});
|
|
48
57
|
});
|
|
49
58
|
return config;
|
|
@@ -54,7 +63,6 @@ class ConfigHelper {
|
|
|
54
63
|
* Converts a tool from JSON format (with JSON schemas) to AgentTool format (with Zod schemas)
|
|
55
64
|
*/
|
|
56
65
|
static convertTool(tool) {
|
|
57
|
-
var _a;
|
|
58
66
|
if (tool.type === ai_agent_types_1.AgentToolType.WEB_SEARCH) {
|
|
59
67
|
return {
|
|
60
68
|
type: ai_agent_types_1.AgentToolType.WEB_SEARCH,
|
|
@@ -74,7 +82,7 @@ class ConfigHelper {
|
|
|
74
82
|
url: tool.data.url,
|
|
75
83
|
body: tool.data.body ? ConfigHelper.jsonSchemaToZod(tool.data.body) : undefined,
|
|
76
84
|
queryParams: tool.data.queryParams ? ConfigHelper.jsonSchemaToZod(tool.data.queryParams) : undefined,
|
|
77
|
-
needsApproval:
|
|
85
|
+
needsApproval: tool.data.needsApproval ?? false,
|
|
78
86
|
}
|
|
79
87
|
};
|
|
80
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigHelper.js","sourceRoot":"","sources":["../../../src/helpers/ConfigHelper.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,oEAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"ConfigHelper.js","sourceRoot":"","sources":["../../../src/helpers/ConfigHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigHelper.d.ts","sourceRoot":"","sources":["../../../src/helpers/ConfigHelper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"ConfigHelper.d.ts","sourceRoot":"","sources":["../../../src/helpers/ConfigHelper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,iCAAiC,CAAC;AAKjF,qBAAa,YAAY;IAEvB,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,cAAc;IAcjE,OAAO,CAAC,MAAM,CAAC,eAAe;IAK9B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAgCtC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IA8B1B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;CAsC9B"}
|
|
@@ -103,7 +103,6 @@ class ContextLimiter {
|
|
|
103
103
|
* @returns Estimated token count
|
|
104
104
|
*/
|
|
105
105
|
static estimateTokens(message) {
|
|
106
|
-
var _a;
|
|
107
106
|
const content = typeof message.content === 'string'
|
|
108
107
|
? message.content
|
|
109
108
|
: JSON.stringify(message.content);
|
|
@@ -113,13 +112,13 @@ class ContextLimiter {
|
|
|
113
112
|
// Add overhead for message structure (role, formatting, etc.)
|
|
114
113
|
const overhead = 10;
|
|
115
114
|
// Add tokens for tool calls if present
|
|
116
|
-
const toolCallTokens =
|
|
115
|
+
const toolCallTokens = message.toolCalls?.reduce((acc, toolCall) => {
|
|
117
116
|
const inputTokens = Math.ceil(JSON.stringify(toolCall.input).length / 4);
|
|
118
117
|
const outputTokens = toolCall.output
|
|
119
118
|
? Math.ceil(JSON.stringify(toolCall.output).length / 4)
|
|
120
119
|
: 0;
|
|
121
120
|
return acc + inputTokens + outputTokens + 20; // 20 for tool call structure
|
|
122
|
-
}, 0)
|
|
121
|
+
}, 0) || 0;
|
|
123
122
|
return baseTokens + overhead + toolCallTokens;
|
|
124
123
|
}
|
|
125
124
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextLimiter.js","sourceRoot":"","sources":["../../../src/helpers/ContextLimiter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ContextLimiter.js","sourceRoot":"","sources":["../../../src/helpers/ContextLimiter.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,183 +33,161 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.
|
|
37
|
-
exports.isDocument = isDocument;
|
|
38
|
-
exports.extractTextFromDocument = extractTextFromDocument;
|
|
39
|
-
exports.processAttachment = processAttachment;
|
|
40
|
-
exports.prepareImageForVisionAPI = prepareImageForVisionAPI;
|
|
36
|
+
exports.FileHelper = void 0;
|
|
41
37
|
const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Checks if an attachment is a document that can have text extracted
|
|
56
|
-
*/
|
|
57
|
-
function isDocument(attachment) {
|
|
58
|
-
if (attachment.type !== ai_agent_types_1.AgentAttachmentType.File)
|
|
59
|
-
return false;
|
|
60
|
-
const mimeType = attachment.mimeType || '';
|
|
61
|
-
return mimeType.startsWith('text/') || mimeType.startsWith('application/');
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Extracts text from a document attachment
|
|
65
|
-
*/
|
|
66
|
-
async function extractTextFromDocument(attachment) {
|
|
67
|
-
var _a;
|
|
68
|
-
if (!isDocument(attachment) || attachment.type !== ai_agent_types_1.AgentAttachmentType.File) {
|
|
69
|
-
index_js_2.logger.debug('Attachment is not a document or not a file type', {
|
|
70
|
-
attachmentId: attachment.id,
|
|
71
|
-
type: attachment.type,
|
|
72
|
-
mimeType: attachment.mimeType
|
|
73
|
-
});
|
|
74
|
-
return undefined;
|
|
38
|
+
const logger_1 = require("../libs/logger/index.cjs");
|
|
39
|
+
class FileHelper {
|
|
40
|
+
constructor(s3, config) {
|
|
41
|
+
this.s3 = s3;
|
|
42
|
+
this.config = config;
|
|
43
|
+
}
|
|
44
|
+
isImage(attachment) {
|
|
45
|
+
if (attachment.type !== ai_agent_types_1.AgentAttachmentType.File)
|
|
46
|
+
return false;
|
|
47
|
+
const mimeType = attachment.mimeType || '';
|
|
48
|
+
return mimeType.startsWith('image/');
|
|
75
49
|
}
|
|
76
|
-
|
|
50
|
+
isDocument(attachment) {
|
|
51
|
+
if (attachment.type !== ai_agent_types_1.AgentAttachmentType.File)
|
|
52
|
+
return false;
|
|
77
53
|
const mimeType = attachment.mimeType || '';
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
54
|
+
return mimeType.startsWith('text/') || mimeType.startsWith('application/');
|
|
55
|
+
}
|
|
56
|
+
async extractTextFromDocument(attachment) {
|
|
57
|
+
if (!this.isDocument(attachment) || attachment.type !== ai_agent_types_1.AgentAttachmentType.File) {
|
|
58
|
+
logger_1.logger.debug('Attachment is not a document or not a file type', {
|
|
59
|
+
attachmentId: attachment.id,
|
|
60
|
+
type: attachment.type,
|
|
61
|
+
mimeType: attachment.mimeType
|
|
62
|
+
});
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
try {
|
|
66
|
+
const mimeType = attachment.mimeType || '';
|
|
67
|
+
// All files are stored in S3 (s3Key is in metadata)
|
|
68
|
+
if (attachment.metadata?.s3Key) {
|
|
69
|
+
const s3Key = attachment.metadata.s3Key;
|
|
70
|
+
const bucket = this.config.s3.bucket ?? '';
|
|
71
|
+
if (mimeType === 'application/pdf') {
|
|
72
|
+
const buffer = await this.s3.downloadFileAsByteArray(s3Key, bucket);
|
|
73
|
+
if (buffer) {
|
|
74
|
+
// Convert Uint8Array to Buffer
|
|
75
|
+
const nodeBuffer = Buffer.from(buffer);
|
|
76
|
+
return await this.extractTextFromPDF(nodeBuffer);
|
|
77
|
+
}
|
|
88
78
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
79
|
+
else if (mimeType === 'application/vnd.openxmlformats-officedocument.wordprocessingml.document') {
|
|
80
|
+
const buffer = await this.s3.downloadFileAsByteArray(s3Key, bucket);
|
|
81
|
+
if (buffer) {
|
|
82
|
+
// Convert Uint8Array to Buffer
|
|
83
|
+
const nodeBuffer = Buffer.from(buffer);
|
|
84
|
+
return await this.extractTextFromDOCX(nodeBuffer);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
const text = await this.s3.downloadFileAsString(s3Key, bucket);
|
|
89
|
+
return text || undefined;
|
|
96
90
|
}
|
|
97
91
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
logger_1.logger.error('Failed to extract text from document', { error, attachmentId: attachment.id });
|
|
96
|
+
return undefined;
|
|
102
97
|
}
|
|
103
|
-
return undefined;
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
index_js_2.logger.error('Failed to extract text from document', { error, attachmentId: attachment.id });
|
|
107
|
-
return undefined;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Extracts text from PDF buffer
|
|
112
|
-
*/
|
|
113
|
-
async function extractTextFromPDF(buffer) {
|
|
114
|
-
try {
|
|
115
|
-
const { PDFParse } = await Promise.resolve().then(() => __importStar(require('pdf-parse')));
|
|
116
|
-
const parser = new PDFParse({ data: buffer });
|
|
117
|
-
const text = (await parser.getText()).text || '';
|
|
118
|
-
// Limit extracted text size
|
|
119
|
-
const maxSize = Number(process.env.MAX_EXTRACTED_TEXT_SIZE) || 51200;
|
|
120
|
-
return text.length > maxSize ? text.substring(0, maxSize) + '...' : text;
|
|
121
|
-
}
|
|
122
|
-
catch (error) {
|
|
123
|
-
index_js_2.logger.warn('PDF text extraction failed (pdf-parse may not be installed)', { error });
|
|
124
|
-
return undefined;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Extracts text from DOCX buffer
|
|
129
|
-
*/
|
|
130
|
-
async function extractTextFromDOCX(buffer) {
|
|
131
|
-
try {
|
|
132
|
-
const mammoth = await Promise.resolve().then(() => __importStar(require('mammoth')));
|
|
133
|
-
const result = await mammoth.extractRawText({ buffer });
|
|
134
|
-
const text = result.value || '';
|
|
135
|
-
// Limit extracted text size
|
|
136
|
-
const maxSize = Number(process.env.MAX_EXTRACTED_TEXT_SIZE) || 51200;
|
|
137
|
-
return text.length > maxSize ? text.substring(0, maxSize) + '...' : text;
|
|
138
|
-
}
|
|
139
|
-
catch (error) {
|
|
140
|
-
index_js_2.logger.warn('DOCX text extraction failed (mammoth may not be installed)', { error });
|
|
141
|
-
return undefined;
|
|
142
98
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
99
|
+
async extractTextFromPDF(buffer) {
|
|
100
|
+
try {
|
|
101
|
+
const { PDFParse } = await Promise.resolve().then(() => __importStar(require('pdf-parse')));
|
|
102
|
+
const parser = new PDFParse({ data: buffer });
|
|
103
|
+
const text = (await parser.getText()).text || '';
|
|
104
|
+
// Limit extracted text size
|
|
105
|
+
const maxSize = this.config.fileProcessing.maxExtractedTextSize ?? 10000;
|
|
106
|
+
return text.length > maxSize ? text.substring(0, maxSize) + '...' : text;
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
logger_1.logger.warn('PDF text extraction failed (pdf-parse may not be installed)', { error });
|
|
110
|
+
return undefined;
|
|
111
|
+
}
|
|
152
112
|
}
|
|
153
|
-
|
|
154
|
-
const enableTextExtraction = process.env.ENABLE_TEXT_EXTRACTION !== 'false';
|
|
155
|
-
if (enableTextExtraction && isDocument(attachment)) {
|
|
113
|
+
async extractTextFromDOCX(buffer) {
|
|
156
114
|
try {
|
|
157
|
-
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
else {
|
|
164
|
-
processed.processingStatus = 'failed';
|
|
165
|
-
}
|
|
115
|
+
const mammoth = await Promise.resolve().then(() => __importStar(require('mammoth')));
|
|
116
|
+
const result = await mammoth.extractRawText({ buffer });
|
|
117
|
+
const text = result.value || '';
|
|
118
|
+
// Limit extracted text size
|
|
119
|
+
const maxSize = this.config.fileProcessing.maxExtractedTextSize ?? 10000;
|
|
120
|
+
return text.length > maxSize ? text.substring(0, maxSize) + '...' : text;
|
|
166
121
|
}
|
|
167
122
|
catch (error) {
|
|
168
|
-
|
|
169
|
-
|
|
123
|
+
logger_1.logger.warn('DOCX text extraction failed (mammoth may not be installed)', { error });
|
|
124
|
+
return undefined;
|
|
170
125
|
}
|
|
171
126
|
}
|
|
172
|
-
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
127
|
+
async processAttachment(attachment) {
|
|
128
|
+
const processed = { ...attachment };
|
|
129
|
+
// Only process file attachments
|
|
130
|
+
if (attachment.type !== ai_agent_types_1.AgentAttachmentType.File) {
|
|
131
|
+
return processed;
|
|
132
|
+
}
|
|
133
|
+
// Check if text extraction is enabled
|
|
134
|
+
const enableTextExtraction = this.config.fileProcessing.enableTextExtraction;
|
|
135
|
+
if (enableTextExtraction && this.isDocument(attachment)) {
|
|
136
|
+
try {
|
|
137
|
+
processed.processingStatus = 'pending';
|
|
138
|
+
const extractedText = await this.extractTextFromDocument(attachment);
|
|
139
|
+
if (extractedText) {
|
|
140
|
+
processed.extractedText = extractedText;
|
|
141
|
+
processed.processingStatus = 'processed';
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
processed.processingStatus = 'failed';
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
logger_1.logger.error('Failed to process document attachment', { error, attachmentId: attachment.id });
|
|
149
|
+
processed.processingStatus = 'failed';
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return processed;
|
|
181
153
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
154
|
+
async prepareImageForVisionAPI(attachment) {
|
|
155
|
+
if (!this.isImage(attachment) || attachment.type !== ai_agent_types_1.AgentAttachmentType.File) {
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
158
|
+
// All files are stored in S3 - generate presigned download URL
|
|
159
|
+
if (attachment.metadata?.s3Key) {
|
|
160
|
+
try {
|
|
161
|
+
const s3Key = attachment.metadata.s3Key;
|
|
162
|
+
const bucket = this.config.s3.bucket ?? '';
|
|
163
|
+
const buffer = await this.s3.downloadFileAsByteArray(s3Key, bucket);
|
|
164
|
+
if (!buffer) {
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
const mimeType = attachment.mimeType || 'image/png';
|
|
168
|
+
return {
|
|
169
|
+
type: 'image_url',
|
|
170
|
+
image_url: {
|
|
171
|
+
url: `data:${mimeType};base64,${Buffer.from(buffer).toString('base64')}`,
|
|
172
|
+
},
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
logger_1.logger.error('Failed to generate presigned URL for S3 image', { error, attachmentId: attachment.id });
|
|
189
177
|
return null;
|
|
190
178
|
}
|
|
191
|
-
|
|
179
|
+
}
|
|
180
|
+
// Fallback: If we have a URL (backward compatibility)
|
|
181
|
+
if (attachment.url) {
|
|
192
182
|
return {
|
|
193
183
|
type: 'image_url',
|
|
194
184
|
image_url: {
|
|
195
|
-
url:
|
|
185
|
+
url: attachment.url,
|
|
196
186
|
},
|
|
197
187
|
};
|
|
198
188
|
}
|
|
199
|
-
|
|
200
|
-
index_js_2.logger.error('Failed to generate presigned URL for S3 image', { error, attachmentId: attachment.id });
|
|
201
|
-
return null;
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
// Fallback: If we have a URL (backward compatibility)
|
|
205
|
-
if (attachment.url) {
|
|
206
|
-
return {
|
|
207
|
-
type: 'image_url',
|
|
208
|
-
image_url: {
|
|
209
|
-
url: attachment.url,
|
|
210
|
-
},
|
|
211
|
-
};
|
|
189
|
+
return null;
|
|
212
190
|
}
|
|
213
|
-
return null;
|
|
214
191
|
}
|
|
192
|
+
exports.FileHelper = FileHelper;
|
|
215
193
|
//# sourceMappingURL=FileHelper.js.map
|