@just-every/ensemble 0.2.87 → 0.2.88
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/tool_execution.cjs +47 -0
- package/dist/cjs/config/tool_execution.d.ts +12 -0
- package/dist/cjs/config/tool_execution.d.ts.map +1 -0
- package/dist/cjs/config/tool_execution.js.map +1 -0
- package/dist/cjs/core/ensemble_embed.cjs +35 -0
- package/dist/cjs/core/ensemble_embed.d.ts +3 -0
- package/dist/cjs/core/ensemble_embed.d.ts.map +1 -0
- package/dist/cjs/core/ensemble_embed.js.map +1 -0
- package/dist/cjs/core/ensemble_image.cjs +13 -0
- package/dist/cjs/core/ensemble_image.d.ts +3 -0
- package/dist/cjs/core/ensemble_image.d.ts.map +1 -0
- package/dist/cjs/core/ensemble_image.js.map +1 -0
- package/dist/cjs/core/ensemble_listen.cjs +162 -0
- package/dist/cjs/core/ensemble_listen.d.ts +5 -0
- package/dist/cjs/core/ensemble_listen.d.ts.map +1 -0
- package/dist/cjs/core/ensemble_listen.js.map +1 -0
- package/dist/cjs/core/ensemble_live.cjs +387 -0
- package/dist/cjs/core/ensemble_live.d.ts +14 -0
- package/dist/cjs/core/ensemble_live.d.ts.map +1 -0
- package/dist/cjs/core/ensemble_live.js.map +1 -0
- package/dist/cjs/core/ensemble_request.cjs +409 -0
- package/dist/cjs/core/ensemble_request.d.ts +4 -0
- package/dist/cjs/core/ensemble_request.d.ts.map +1 -0
- package/dist/cjs/core/ensemble_request.js.map +1 -0
- package/dist/cjs/core/ensemble_voice.cjs +284 -0
- package/dist/cjs/core/ensemble_voice.d.ts +4 -0
- package/dist/cjs/core/ensemble_voice.d.ts.map +1 -0
- package/dist/cjs/core/ensemble_voice.js.map +1 -0
- package/dist/cjs/data/model_data.cjs +1460 -0
- package/dist/cjs/data/model_data.d.ts +71 -0
- package/dist/cjs/data/model_data.d.ts.map +1 -0
- package/dist/cjs/data/model_data.js.map +1 -0
- package/dist/cjs/index.cjs +139 -0
- package/dist/cjs/index.d.ts +37 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/model_providers/base_provider.cjs +46 -0
- package/dist/cjs/model_providers/base_provider.d.ts +13 -0
- package/dist/cjs/model_providers/base_provider.d.ts.map +1 -0
- package/dist/cjs/model_providers/base_provider.js.map +1 -0
- package/dist/cjs/model_providers/claude.cjs +782 -0
- package/dist/cjs/model_providers/claude.d.ts +12 -0
- package/dist/cjs/model_providers/claude.d.ts.map +1 -0
- package/dist/cjs/model_providers/claude.js.map +1 -0
- package/dist/cjs/model_providers/deepseek.cjs +129 -0
- package/dist/cjs/model_providers/deepseek.d.ts +8 -0
- package/dist/cjs/model_providers/deepseek.d.ts.map +1 -0
- package/dist/cjs/model_providers/deepseek.js.map +1 -0
- package/dist/cjs/model_providers/elevenlabs.cjs +140 -0
- package/dist/cjs/model_providers/elevenlabs.d.ts +37 -0
- package/dist/cjs/model_providers/elevenlabs.d.ts.map +1 -0
- package/dist/cjs/model_providers/elevenlabs.js.map +1 -0
- package/dist/cjs/model_providers/gemini.cjs +1654 -0
- package/dist/cjs/model_providers/gemini.d.ts +22 -0
- package/dist/cjs/model_providers/gemini.d.ts.map +1 -0
- package/dist/cjs/model_providers/gemini.js.map +1 -0
- package/dist/cjs/model_providers/grok.cjs +25 -0
- package/dist/cjs/model_providers/grok.d.ts +8 -0
- package/dist/cjs/model_providers/grok.d.ts.map +1 -0
- package/dist/cjs/model_providers/grok.js.map +1 -0
- package/dist/cjs/model_providers/model_provider.cjs +296 -0
- package/dist/cjs/model_providers/model_provider.d.ts +10 -0
- package/dist/cjs/model_providers/model_provider.d.ts.map +1 -0
- package/dist/cjs/model_providers/model_provider.js.map +1 -0
- package/dist/cjs/model_providers/openai.cjs +1117 -0
- package/dist/cjs/model_providers/openai.d.ts +19 -0
- package/dist/cjs/model_providers/openai.d.ts.map +1 -0
- package/dist/cjs/model_providers/openai.js.map +1 -0
- package/dist/cjs/model_providers/openai_chat.cjs +787 -0
- package/dist/cjs/model_providers/openai_chat.d.ts +20 -0
- package/dist/cjs/model_providers/openai_chat.d.ts.map +1 -0
- package/dist/cjs/model_providers/openai_chat.js.map +1 -0
- package/dist/cjs/model_providers/openrouter.cjs +22 -0
- package/dist/cjs/model_providers/openrouter.d.ts +6 -0
- package/dist/cjs/model_providers/openrouter.d.ts.map +1 -0
- package/dist/cjs/model_providers/openrouter.js.map +1 -0
- package/dist/cjs/model_providers/test_provider.cjs +236 -0
- package/dist/cjs/model_providers/test_provider.d.ts +29 -0
- package/dist/cjs/model_providers/test_provider.d.ts.map +1 -0
- package/dist/cjs/model_providers/test_provider.js.map +1 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/cjs/types/api_types.cjs +3 -0
- package/dist/cjs/types/api_types.d.ts +249 -0
- package/dist/cjs/types/api_types.d.ts.map +1 -0
- package/dist/cjs/types/api_types.js.map +1 -0
- package/dist/cjs/types/errors.cjs +76 -0
- package/dist/cjs/types/errors.d.ts +34 -0
- package/dist/cjs/types/errors.d.ts.map +1 -0
- package/dist/cjs/types/errors.js.map +1 -0
- package/dist/cjs/types/types.cjs +3 -0
- package/dist/cjs/types/types.d.ts +638 -0
- package/dist/cjs/types/types.d.ts.map +1 -0
- package/dist/cjs/types/types.js.map +1 -0
- package/dist/cjs/utils/agent.cjs +384 -0
- package/dist/cjs/utils/agent.d.ts +48 -0
- package/dist/cjs/utils/agent.d.ts.map +1 -0
- package/dist/cjs/utils/agent.js.map +1 -0
- package/dist/cjs/utils/audio_stream_player.cjs +342 -0
- package/dist/cjs/utils/audio_stream_player.d.ts +37 -0
- package/dist/cjs/utils/audio_stream_player.d.ts.map +1 -0
- package/dist/cjs/utils/audio_stream_player.js.map +1 -0
- package/dist/cjs/utils/citation_tracker.cjs +25 -0
- package/dist/cjs/utils/citation_tracker.d.ts +12 -0
- package/dist/cjs/utils/citation_tracker.d.ts.map +1 -0
- package/dist/cjs/utils/citation_tracker.js.map +1 -0
- package/dist/cjs/utils/config_manager.cjs +105 -0
- package/dist/cjs/utils/config_manager.d.ts +31 -0
- package/dist/cjs/utils/config_manager.d.ts.map +1 -0
- package/dist/cjs/utils/config_manager.js.map +1 -0
- package/dist/cjs/utils/cost_tracker.cjs +226 -0
- package/dist/cjs/utils/cost_tracker.d.ts +33 -0
- package/dist/cjs/utils/cost_tracker.d.ts.map +1 -0
- package/dist/cjs/utils/cost_tracker.js.map +1 -0
- package/dist/cjs/utils/create_tool_function.cjs +182 -0
- package/dist/cjs/utils/create_tool_function.d.ts +3 -0
- package/dist/cjs/utils/create_tool_function.d.ts.map +1 -0
- package/dist/cjs/utils/create_tool_function.js.map +1 -0
- package/dist/cjs/utils/delta_buffer.cjs +65 -0
- package/dist/cjs/utils/delta_buffer.d.ts +14 -0
- package/dist/cjs/utils/delta_buffer.d.ts.map +1 -0
- package/dist/cjs/utils/delta_buffer.js.map +1 -0
- package/dist/cjs/utils/ensemble_result.cjs +167 -0
- package/dist/cjs/utils/ensemble_result.d.ts +33 -0
- package/dist/cjs/utils/ensemble_result.d.ts.map +1 -0
- package/dist/cjs/utils/ensemble_result.js.map +1 -0
- package/dist/cjs/utils/event_controller.cjs +59 -0
- package/dist/cjs/utils/event_controller.d.ts +13 -0
- package/dist/cjs/utils/event_controller.d.ts.map +1 -0
- package/dist/cjs/utils/event_controller.js.map +1 -0
- package/dist/cjs/utils/external_models.cjs +42 -0
- package/dist/cjs/utils/external_models.d.ts +9 -0
- package/dist/cjs/utils/external_models.d.ts.map +1 -0
- package/dist/cjs/utils/external_models.js.map +1 -0
- package/dist/cjs/utils/image_to_text.cjs +58 -0
- package/dist/cjs/utils/image_to_text.d.ts +3 -0
- package/dist/cjs/utils/image_to_text.d.ts.map +1 -0
- package/dist/cjs/utils/image_to_text.js.map +1 -0
- package/dist/cjs/utils/image_utils.cjs +168 -0
- package/dist/cjs/utils/image_utils.d.ts +18 -0
- package/dist/cjs/utils/image_utils.d.ts.map +1 -0
- package/dist/cjs/utils/image_utils.js.map +1 -0
- package/dist/cjs/utils/image_validation.cjs +31 -0
- package/dist/cjs/utils/image_validation.d.ts +3 -0
- package/dist/cjs/utils/image_validation.d.ts.map +1 -0
- package/dist/cjs/utils/image_validation.js.map +1 -0
- package/dist/cjs/utils/llm_logger.cjs +31 -0
- package/dist/cjs/utils/llm_logger.d.ts +8 -0
- package/dist/cjs/utils/llm_logger.d.ts.map +1 -0
- package/dist/cjs/utils/llm_logger.js.map +1 -0
- package/dist/cjs/utils/message_history.cjs +560 -0
- package/dist/cjs/utils/message_history.d.ts +65 -0
- package/dist/cjs/utils/message_history.d.ts.map +1 -0
- package/dist/cjs/utils/message_history.js.map +1 -0
- package/dist/cjs/utils/model_class_config.cjs +105 -0
- package/dist/cjs/utils/model_class_config.d.ts +12 -0
- package/dist/cjs/utils/model_class_config.d.ts.map +1 -0
- package/dist/cjs/utils/model_class_config.js.map +1 -0
- package/dist/cjs/utils/pause_controller.cjs +90 -0
- package/dist/cjs/utils/pause_controller.d.ts +14 -0
- package/dist/cjs/utils/pause_controller.d.ts.map +1 -0
- package/dist/cjs/utils/pause_controller.js.map +1 -0
- package/dist/cjs/utils/quota_tracker.cjs +311 -0
- package/dist/cjs/utils/quota_tracker.d.ts +22 -0
- package/dist/cjs/utils/quota_tracker.d.ts.map +1 -0
- package/dist/cjs/utils/quota_tracker.js.map +1 -0
- package/dist/cjs/utils/retry_handler.cjs +131 -0
- package/dist/cjs/utils/retry_handler.d.ts +15 -0
- package/dist/cjs/utils/retry_handler.d.ts.map +1 -0
- package/dist/cjs/utils/retry_handler.js.map +1 -0
- package/dist/cjs/utils/running_tool_tracker.cjs +133 -0
- package/dist/cjs/utils/running_tool_tracker.d.ts +42 -0
- package/dist/cjs/utils/running_tool_tracker.d.ts.map +1 -0
- package/dist/cjs/utils/running_tool_tracker.js.map +1 -0
- package/dist/cjs/utils/sequential_queue.cjs +73 -0
- package/dist/cjs/utils/sequential_queue.d.ts +13 -0
- package/dist/cjs/utils/sequential_queue.d.ts.map +1 -0
- package/dist/cjs/utils/sequential_queue.js.map +1 -0
- package/dist/cjs/utils/stream_handler.cjs +73 -0
- package/dist/cjs/utils/stream_handler.d.ts +16 -0
- package/dist/cjs/utils/stream_handler.d.ts.map +1 -0
- package/dist/cjs/utils/stream_handler.js.map +1 -0
- package/dist/cjs/utils/summary_utils.cjs +211 -0
- package/dist/cjs/utils/summary_utils.d.ts +7 -0
- package/dist/cjs/utils/summary_utils.d.ts.map +1 -0
- package/dist/cjs/utils/summary_utils.js.map +1 -0
- package/dist/cjs/utils/test_utils.cjs +212 -0
- package/dist/cjs/utils/test_utils.d.ts +58 -0
- package/dist/cjs/utils/test_utils.d.ts.map +1 -0
- package/dist/cjs/utils/test_utils.js.map +1 -0
- package/dist/cjs/utils/tool_execution_manager.cjs +139 -0
- package/dist/cjs/utils/tool_execution_manager.d.ts +7 -0
- package/dist/cjs/utils/tool_execution_manager.d.ts.map +1 -0
- package/dist/cjs/utils/tool_execution_manager.js.map +1 -0
- package/dist/cjs/utils/tool_parameter_utils.cjs +168 -0
- package/dist/cjs/utils/tool_parameter_utils.d.ts +5 -0
- package/dist/cjs/utils/tool_parameter_utils.d.ts.map +1 -0
- package/dist/cjs/utils/tool_parameter_utils.js.map +1 -0
- package/dist/cjs/utils/tool_result_processor.cjs +363 -0
- package/dist/cjs/utils/tool_result_processor.d.ts +11 -0
- package/dist/cjs/utils/tool_result_processor.d.ts.map +1 -0
- package/dist/cjs/utils/tool_result_processor.js.map +1 -0
- package/dist/cjs/utils/verification.cjs +59 -0
- package/dist/cjs/utils/verification.d.ts +7 -0
- package/dist/cjs/utils/verification.d.ts.map +1 -0
- package/dist/cjs/utils/verification.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/audio_stream_player.d.ts +2 -0
- package/dist/utils/audio_stream_player.d.ts.map +1 -1
- package/dist/utils/audio_stream_player.js +83 -1
- package/dist/utils/audio_stream_player.js.map +1 -1
- package/dist/utils/cost_tracker.d.ts +7 -0
- package/dist/utils/cost_tracker.d.ts.map +1 -1
- package/dist/utils/cost_tracker.js +29 -0
- package/dist/utils/cost_tracker.js.map +1 -1
- package/package.json +18 -3
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ensembleResult = ensembleResult;
|
|
4
|
+
async function ensembleResult(stream) {
|
|
5
|
+
const result = {
|
|
6
|
+
message: '',
|
|
7
|
+
completed: false,
|
|
8
|
+
startTime: new Date(),
|
|
9
|
+
messageIds: new Set(),
|
|
10
|
+
};
|
|
11
|
+
const messageDeltas = new Map();
|
|
12
|
+
const thinkingDeltas = new Map();
|
|
13
|
+
const toolCalls = new Map();
|
|
14
|
+
const files = [];
|
|
15
|
+
const responseOutputs = [];
|
|
16
|
+
try {
|
|
17
|
+
for await (const event of stream) {
|
|
18
|
+
switch (event.type) {
|
|
19
|
+
case 'message_start': {
|
|
20
|
+
const msgEvent = event;
|
|
21
|
+
if (msgEvent.message_id) {
|
|
22
|
+
result.messageIds.add(msgEvent.message_id);
|
|
23
|
+
messageDeltas.set(msgEvent.message_id, []);
|
|
24
|
+
if (msgEvent.thinking_content || msgEvent.thinking_signature) {
|
|
25
|
+
thinkingDeltas.set(msgEvent.message_id, {
|
|
26
|
+
content: [],
|
|
27
|
+
signature: [],
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
case 'message_delta': {
|
|
34
|
+
const msgEvent = event;
|
|
35
|
+
if (msgEvent.message_id && messageDeltas.has(msgEvent.message_id)) {
|
|
36
|
+
messageDeltas.get(msgEvent.message_id).push(msgEvent.content);
|
|
37
|
+
}
|
|
38
|
+
if (msgEvent.thinking_content && msgEvent.message_id && thinkingDeltas.has(msgEvent.message_id)) {
|
|
39
|
+
thinkingDeltas.get(msgEvent.message_id).content.push(msgEvent.thinking_content);
|
|
40
|
+
}
|
|
41
|
+
if (msgEvent.thinking_signature && msgEvent.message_id && thinkingDeltas.has(msgEvent.message_id)) {
|
|
42
|
+
thinkingDeltas.get(msgEvent.message_id).signature?.push(msgEvent.thinking_signature);
|
|
43
|
+
}
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
case 'message_complete': {
|
|
47
|
+
const msgEvent = event;
|
|
48
|
+
if (msgEvent.message_id) {
|
|
49
|
+
if (msgEvent.content) {
|
|
50
|
+
result.message = msgEvent.content;
|
|
51
|
+
}
|
|
52
|
+
else if (messageDeltas.has(msgEvent.message_id)) {
|
|
53
|
+
const deltas = messageDeltas.get(msgEvent.message_id);
|
|
54
|
+
result.message = deltas.join('');
|
|
55
|
+
}
|
|
56
|
+
if (thinkingDeltas.has(msgEvent.message_id)) {
|
|
57
|
+
const thinking = thinkingDeltas.get(msgEvent.message_id);
|
|
58
|
+
result.thinking = {
|
|
59
|
+
content: msgEvent.thinking_content || thinking.content.join(''),
|
|
60
|
+
signature: msgEvent.thinking_signature ||
|
|
61
|
+
(thinking.signature?.length ? thinking.signature.join('') : undefined),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
case 'file_start':
|
|
68
|
+
case 'file_delta':
|
|
69
|
+
case 'file_complete': {
|
|
70
|
+
const fileEvent = event;
|
|
71
|
+
if (event.type === 'file_complete') {
|
|
72
|
+
files.push({
|
|
73
|
+
mime_type: fileEvent.mime_type,
|
|
74
|
+
data: fileEvent.data,
|
|
75
|
+
data_format: fileEvent.data_format,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
case 'tool_start': {
|
|
81
|
+
const toolEvent = event;
|
|
82
|
+
const callId = toolEvent.tool_call.call_id || toolEvent.tool_call.id;
|
|
83
|
+
toolCalls.set(callId, {
|
|
84
|
+
toolCall: toolEvent.tool_call,
|
|
85
|
+
id: toolEvent.tool_call.id,
|
|
86
|
+
call_id: callId,
|
|
87
|
+
});
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
case 'tool_done': {
|
|
91
|
+
const toolEvent = event;
|
|
92
|
+
if (toolEvent.result) {
|
|
93
|
+
const existing = toolCalls.get(toolEvent.result.call_id);
|
|
94
|
+
if (existing) {
|
|
95
|
+
existing.output = toolEvent.result.output;
|
|
96
|
+
existing.error = toolEvent.result.error;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
case 'cost_update': {
|
|
102
|
+
const costEvent = event;
|
|
103
|
+
result.cost = {
|
|
104
|
+
input_tokens: costEvent.usage.input_tokens,
|
|
105
|
+
output_tokens: costEvent.usage.output_tokens,
|
|
106
|
+
total_tokens: costEvent.usage.total_tokens,
|
|
107
|
+
cached_tokens: costEvent.usage.cached_tokens,
|
|
108
|
+
thought_delay: costEvent.thought_delay,
|
|
109
|
+
};
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
case 'error': {
|
|
113
|
+
const errorEvent = event;
|
|
114
|
+
result.error = errorEvent.error;
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
case 'response_output': {
|
|
118
|
+
const outputEvent = event;
|
|
119
|
+
responseOutputs.push(outputEvent.message);
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
case 'agent_start':
|
|
123
|
+
case 'agent_status':
|
|
124
|
+
case 'agent_done': {
|
|
125
|
+
const agentEvent = event;
|
|
126
|
+
result.agent = agentEvent.agent;
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
case 'stream_end': {
|
|
130
|
+
result.completed = true;
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
if (!result.message && messageDeltas.size > 0) {
|
|
136
|
+
const allDeltas = [];
|
|
137
|
+
for (const deltas of messageDeltas.values()) {
|
|
138
|
+
allDeltas.push(...deltas);
|
|
139
|
+
}
|
|
140
|
+
result.message = allDeltas.join('');
|
|
141
|
+
}
|
|
142
|
+
if (toolCalls.size > 0) {
|
|
143
|
+
result.tools = {
|
|
144
|
+
calls: Array.from(toolCalls.values()),
|
|
145
|
+
totalCalls: toolCalls.size,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
if (files.length > 0) {
|
|
149
|
+
result.files = files;
|
|
150
|
+
}
|
|
151
|
+
if (responseOutputs.length > 0) {
|
|
152
|
+
result.responseOutputs = responseOutputs;
|
|
153
|
+
}
|
|
154
|
+
if (!result.error && !result.completed) {
|
|
155
|
+
result.completed = true;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
result.error = error instanceof Error ? error.message : String(error);
|
|
160
|
+
result.completed = false;
|
|
161
|
+
}
|
|
162
|
+
finally {
|
|
163
|
+
result.endTime = new Date();
|
|
164
|
+
}
|
|
165
|
+
return result;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=ensemble_result.js.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ProviderStreamEvent, ResponseInputItem, ToolCallResult, AgentExportDefinition } from "../types/types.cjs";
|
|
2
|
+
export interface EnsembleResult {
|
|
3
|
+
message: string;
|
|
4
|
+
thinking?: {
|
|
5
|
+
content: string;
|
|
6
|
+
signature?: string;
|
|
7
|
+
};
|
|
8
|
+
cost?: {
|
|
9
|
+
input_tokens: number;
|
|
10
|
+
output_tokens: number;
|
|
11
|
+
total_tokens?: number;
|
|
12
|
+
cached_tokens?: number;
|
|
13
|
+
thought_delay?: number;
|
|
14
|
+
};
|
|
15
|
+
tools?: {
|
|
16
|
+
calls: ToolCallResult[];
|
|
17
|
+
totalCalls: number;
|
|
18
|
+
};
|
|
19
|
+
files?: Array<{
|
|
20
|
+
mime_type?: string;
|
|
21
|
+
data: string;
|
|
22
|
+
data_format: 'base64';
|
|
23
|
+
}>;
|
|
24
|
+
error?: string;
|
|
25
|
+
responseOutputs?: ResponseInputItem[];
|
|
26
|
+
agent?: AgentExportDefinition;
|
|
27
|
+
completed: boolean;
|
|
28
|
+
startTime: Date;
|
|
29
|
+
endTime?: Date;
|
|
30
|
+
messageIds: Set<string>;
|
|
31
|
+
}
|
|
32
|
+
export declare function ensembleResult(stream: AsyncGenerator<ProviderStreamEvent>): Promise<EnsembleResult>;
|
|
33
|
+
//# sourceMappingURL=ensemble_result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensemble_result.d.ts","sourceRoot":"","sources":["../../../utils/ensemble_result.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EAQnB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACxB,MAAM,mBAAmB,CAAC;AAK3B,MAAM,WAAW,cAAc;IAE3B,OAAO,EAAE,MAAM,CAAC;IAGhB,QAAQ,CAAC,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IAGF,IAAI,CAAC,EAAE;QACH,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IAGF,KAAK,CAAC,EAAE;QACJ,KAAK,EAAE,cAAc,EAAE,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;KACtB,CAAC;IAGF,KAAK,CAAC,EAAE,KAAK,CAAC;QACV,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,QAAQ,CAAC;KACzB,CAAC,CAAC;IAGH,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAGtC,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAG9B,SAAS,EAAE,OAAO,CAAC;IAGnB,SAAS,EAAE,IAAI,CAAC;IAGhB,OAAO,CAAC,EAAE,IAAI,CAAC;IAGf,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC3B;AAOD,wBAAsB,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CA2LzG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensemble_result.js","sourceRoot":"","sources":["../../../utils/ensemble_result.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getEventController = getEventController;
|
|
4
|
+
exports.setEventHandler = setEventHandler;
|
|
5
|
+
exports.emitEvent = emitEvent;
|
|
6
|
+
exports.hasEventHandler = hasEventHandler;
|
|
7
|
+
const agent_js_1 = require("./agent.cjs");
|
|
8
|
+
class EventControllerImpl {
|
|
9
|
+
eventHandler = null;
|
|
10
|
+
setEventHandler(handler) {
|
|
11
|
+
this.eventHandler = handler;
|
|
12
|
+
if (handler) {
|
|
13
|
+
console.log('[EventController] Event handler set');
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
console.log('[EventController] Event handler cleared');
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
getEventHandler() {
|
|
20
|
+
return this.eventHandler;
|
|
21
|
+
}
|
|
22
|
+
hasEventHandler() {
|
|
23
|
+
return this.eventHandler !== null;
|
|
24
|
+
}
|
|
25
|
+
async emit(event) {
|
|
26
|
+
if (this.eventHandler) {
|
|
27
|
+
try {
|
|
28
|
+
await Promise.resolve(this.eventHandler(event));
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
console.error('[EventController] Error in event handler:', error);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
let eventControllerInstance = null;
|
|
37
|
+
function getEventController() {
|
|
38
|
+
if (!eventControllerInstance) {
|
|
39
|
+
eventControllerInstance = new EventControllerImpl();
|
|
40
|
+
}
|
|
41
|
+
return eventControllerInstance;
|
|
42
|
+
}
|
|
43
|
+
function setEventHandler(handler) {
|
|
44
|
+
getEventController().setEventHandler(handler);
|
|
45
|
+
}
|
|
46
|
+
async function emitEvent(event, agent, model) {
|
|
47
|
+
let eventToEmit = event;
|
|
48
|
+
if (agent) {
|
|
49
|
+
eventToEmit = {
|
|
50
|
+
...event,
|
|
51
|
+
agent: (0, agent_js_1.exportAgent)(agent, model),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return getEventController().emit(eventToEmit);
|
|
55
|
+
}
|
|
56
|
+
function hasEventHandler() {
|
|
57
|
+
return getEventController().hasEventHandler();
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=event_controller.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ProviderStreamEvent, AgentDefinition } from "../types/types.cjs";
|
|
2
|
+
export type EventHandler = (event: ProviderStreamEvent) => void | Promise<void>;
|
|
3
|
+
export interface EventController {
|
|
4
|
+
setEventHandler(handler: EventHandler | null): void;
|
|
5
|
+
getEventHandler(): EventHandler | null;
|
|
6
|
+
emit(event: ProviderStreamEvent): Promise<void>;
|
|
7
|
+
hasEventHandler(): boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function getEventController(): EventController;
|
|
10
|
+
export declare function setEventHandler(handler: EventHandler | null): void;
|
|
11
|
+
export declare function emitEvent(event: ProviderStreamEvent, agent?: AgentDefinition, model?: string): Promise<void>;
|
|
12
|
+
export declare function hasEventHandler(): boolean;
|
|
13
|
+
//# sourceMappingURL=event_controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event_controller.d.ts","sourceRoot":"","sources":["../../../utils/event_controller.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzE,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhF,MAAM,WAAW,eAAe;IAK5B,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC;IAKpD,eAAe,IAAI,YAAY,GAAG,IAAI,CAAC;IAMvC,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAKhD,eAAe,IAAI,OAAO,CAAC;CAC9B;AAuCD,wBAAgB,kBAAkB,IAAI,eAAe,CAKpD;AAKD,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAElE;AAQD,wBAAsB,SAAS,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYlH;AAKD,wBAAgB,eAAe,IAAI,OAAO,CAEzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event_controller.js","sourceRoot":"","sources":["../../../utils/event_controller.ts"],"names":[],"mappings":";;AAyEA,gDAKC;AAKD,0CAEC;AAQD,8BAYC;AAKD,0CAEC;AAxGD,yCAAyC;AA4BzC,MAAM,mBAAmB;IACb,YAAY,GAAwB,IAAI,CAAC;IAEjD,eAAe,CAAC,OAA4B;QACxC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAA0B;QACjC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC;gBACD,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;YACtE,CAAC;QACL,CAAC;IACL,CAAC;CACJ;AAGD,IAAI,uBAAuB,GAA2B,IAAI,CAAC;AAK3D,SAAgB,kBAAkB;IAC9B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC3B,uBAAuB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IACxD,CAAC;IACD,OAAO,uBAAuB,CAAC;AACnC,CAAC;AAKD,SAAgB,eAAe,CAAC,OAA4B;IACxD,kBAAkB,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC;AAQM,KAAK,UAAU,SAAS,CAAC,KAA0B,EAAE,KAAuB,EAAE,KAAc;IAC/F,IAAI,WAAW,GAAG,KAAK,CAAC;IAGxB,IAAI,KAAK,EAAE,CAAC;QACR,WAAW,GAAG;YACV,GAAG,KAAK;YACR,KAAK,EAAE,IAAA,sBAAW,EAAC,KAAK,EAAE,KAAK,CAAC;SACnC,CAAC;IACN,CAAC;IAED,OAAO,kBAAkB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAClD,CAAC;AAKD,SAAgB,eAAe;IAC3B,OAAO,kBAAkB,EAAE,CAAC,eAAe,EAAE,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerExternalModel = registerExternalModel;
|
|
4
|
+
exports.getExternalModel = getExternalModel;
|
|
5
|
+
exports.getExternalProvider = getExternalProvider;
|
|
6
|
+
exports.isExternalModel = isExternalModel;
|
|
7
|
+
exports.clearExternalRegistrations = clearExternalRegistrations;
|
|
8
|
+
exports.overrideModelClass = overrideModelClass;
|
|
9
|
+
exports.getModelClassOverride = getModelClassOverride;
|
|
10
|
+
const externalModels = new Map();
|
|
11
|
+
const externalProviders = new Map();
|
|
12
|
+
const modelClassOverrides = new Map();
|
|
13
|
+
function registerExternalModel(model, provider) {
|
|
14
|
+
const modelId = model.id;
|
|
15
|
+
externalModels.set(modelId, model);
|
|
16
|
+
if (!externalProviders.has(model.provider)) {
|
|
17
|
+
externalProviders.set(model.provider, provider);
|
|
18
|
+
}
|
|
19
|
+
console.log(`[Ensemble] Registered external model: ${modelId} with provider: ${model.provider}`);
|
|
20
|
+
}
|
|
21
|
+
function getExternalModel(modelId) {
|
|
22
|
+
return externalModels.get(modelId);
|
|
23
|
+
}
|
|
24
|
+
function getExternalProvider(providerId) {
|
|
25
|
+
return externalProviders.get(providerId);
|
|
26
|
+
}
|
|
27
|
+
function isExternalModel(modelId) {
|
|
28
|
+
return externalModels.has(modelId);
|
|
29
|
+
}
|
|
30
|
+
function clearExternalRegistrations() {
|
|
31
|
+
externalModels.clear();
|
|
32
|
+
externalProviders.clear();
|
|
33
|
+
modelClassOverrides.clear();
|
|
34
|
+
}
|
|
35
|
+
function overrideModelClass(className, modelClass) {
|
|
36
|
+
modelClassOverrides.set(className, modelClass);
|
|
37
|
+
console.log(`[Ensemble] Overrode model class: ${className} with models: ${modelClass.models?.join(', ')}`);
|
|
38
|
+
}
|
|
39
|
+
function getModelClassOverride(className) {
|
|
40
|
+
return modelClassOverrides.get(className);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=external_models.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ModelEntry, ModelProvider, ModelProviderID, ModelClass } from "../types/types.cjs";
|
|
2
|
+
export declare function registerExternalModel(model: ModelEntry, provider: ModelProvider): void;
|
|
3
|
+
export declare function getExternalModel(modelId: string): ModelEntry | undefined;
|
|
4
|
+
export declare function getExternalProvider(providerId: ModelProviderID): ModelProvider | undefined;
|
|
5
|
+
export declare function isExternalModel(modelId: string): boolean;
|
|
6
|
+
export declare function clearExternalRegistrations(): void;
|
|
7
|
+
export declare function overrideModelClass(className: string, modelClass: Partial<ModelClass>): void;
|
|
8
|
+
export declare function getModelClassOverride(className: string): Partial<ModelClass> | undefined;
|
|
9
|
+
//# sourceMappingURL=external_models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external_models.d.ts","sourceRoot":"","sources":["../../../utils/external_models.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAsC3F,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAYtF;AAQD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAExE;AAKD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,eAAe,GAAG,aAAa,GAAG,SAAS,CAE1F;AAKD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAKD,wBAAgB,0BAA0B,IAAI,IAAI,CAIjD;AAOD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAG3F;AAOD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,SAAS,CAExF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external_models.js","sourceRoot":"","sources":["../../../utils/external_models.ts"],"names":[],"mappings":";;AA2CA,sDAYC;AAQD,4CAEC;AAKD,kDAEC;AAKD,0CAEC;AAKD,gEAIC;AAOD,gDAGC;AAOD,sDAEC;AAnGD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAsB,CAAC;AAGrD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkC,CAAC;AAGpE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAA+B,CAAC;AA6BnE,SAAgB,qBAAqB,CAAC,KAAiB,EAAE,QAAuB;IAC5E,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;IAGzB,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAGnC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,yCAAyC,OAAO,mBAAmB,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrG,CAAC;AAQD,SAAgB,gBAAgB,CAAC,OAAe;IAC5C,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAKD,SAAgB,mBAAmB,CAAC,UAA2B;IAC3D,OAAO,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC7C,CAAC;AAKD,SAAgB,eAAe,CAAC,OAAe;IAC3C,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAKD,SAAgB,0BAA0B;IACtC,cAAc,CAAC,KAAK,EAAE,CAAC;IACvB,iBAAiB,CAAC,KAAK,EAAE,CAAC;IAC1B,mBAAmB,CAAC,KAAK,EAAE,CAAC;AAChC,CAAC;AAOD,SAAgB,kBAAkB,CAAC,SAAiB,EAAE,UAA+B;IACjF,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,oCAAoC,SAAS,iBAAiB,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/G,CAAC;AAOD,SAAgB,qBAAqB,CAAC,SAAiB;IACnD,OAAO,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertImageToText = convertImageToText;
|
|
4
|
+
exports.convertImageToTextIfNeeded = convertImageToTextIfNeeded;
|
|
5
|
+
const index_js_1 = require("../index.cjs");
|
|
6
|
+
const imageDescriptionCache = {};
|
|
7
|
+
function generateImageHash(imageData) {
|
|
8
|
+
const sample = imageData.substring(0, 100);
|
|
9
|
+
const length = imageData.length;
|
|
10
|
+
return `${sample}_${length}`;
|
|
11
|
+
}
|
|
12
|
+
async function convertImageToText(imageData, modelId) {
|
|
13
|
+
if (!imageData.startsWith('data:image/')) {
|
|
14
|
+
return imageData;
|
|
15
|
+
}
|
|
16
|
+
console.log(`Converting image to text description for model ${modelId}`);
|
|
17
|
+
const imageHash = generateImageHash(imageData);
|
|
18
|
+
if (imageDescriptionCache[imageHash]) {
|
|
19
|
+
console.log(`Using cached image description for ${modelId}`);
|
|
20
|
+
return imageDescriptionCache[imageHash];
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
const stream = (0, index_js_1.ensembleRequest)([
|
|
24
|
+
{
|
|
25
|
+
type: 'message',
|
|
26
|
+
role: 'system',
|
|
27
|
+
content: 'Please describe the following image in a couple of sentences. Focus on the main visual elements and key details that someone would need to understand what is shown in the image.',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
type: 'message',
|
|
31
|
+
role: 'user',
|
|
32
|
+
content: imageData,
|
|
33
|
+
},
|
|
34
|
+
], {
|
|
35
|
+
modelClass: 'vision_mini',
|
|
36
|
+
});
|
|
37
|
+
for await (const event of stream) {
|
|
38
|
+
if (event.type === 'message_complete' && 'content' in event) {
|
|
39
|
+
imageDescriptionCache[imageHash] = event.content.trim();
|
|
40
|
+
return imageDescriptionCache[imageHash];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
console.error('Error generating image description:', error);
|
|
46
|
+
}
|
|
47
|
+
return 'Image found, but could not be converted to text';
|
|
48
|
+
}
|
|
49
|
+
async function convertImageToTextIfNeeded(imageData, modelId) {
|
|
50
|
+
if (!imageData.startsWith('data:image/')) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
if (modelId && (0, index_js_1.findModel)(modelId)?.features?.input_modality?.includes('image')) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
return await convertImageToText(imageData, modelId || 'unknown');
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=image_to_text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image_to_text.d.ts","sourceRoot":"","sources":["../../../utils/image_to_text.ts"],"names":[],"mappings":"AA8DA,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgD5F;AAUD,wBAAsB,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,CAc/G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image_to_text.js","sourceRoot":"","sources":["../../../utils/image_to_text.ts"],"names":[],"mappings":";;AA8DA,gDAgDC;AAUD,gEAcC;AA9HD,0CAAyD;AA8BzD,MAAM,qBAAqB,GAA0B,EAAE,CAAC;AAQxD,SAAS,iBAAiB,CAAC,SAAiB;IAGxC,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAChC,OAAO,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AACjC,CAAC;AAUM,KAAK,UAAU,kBAAkB,CAAC,SAAiB,EAAE,OAAe;IAEvE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACvC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,kDAAkD,OAAO,EAAE,CAAC,CAAC;IAGzE,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAG/C,IAAI,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;QAC7D,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAGD,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,0BAAe,EAC1B;YACI;gBACI,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EACH,mLAAmL;aAC1L;YACD;gBACI,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,SAAS;aACrB;SACJ,EACD;YACI,UAAU,EAAE,aAAa;SAC5B,CACJ,CAAC;QAEF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;gBAC1D,qBAAqB,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACxD,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,iDAAiD,CAAC;AAC7D,CAAC;AAUM,KAAK,UAAU,0BAA0B,CAAC,SAAiB,EAAE,OAAgB;IAEhF,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACjB,CAAC;IAGD,IAAI,OAAO,IAAI,IAAA,oBAAS,EAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAE7E,OAAO,KAAK,CAAC;IACjB,CAAC;IAGD,OAAO,MAAM,kBAAkB,CAAC,SAAS,EAAE,OAAO,IAAI,SAAS,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.GEMINI_MAX_HEIGHT = exports.GEMINI_MAX_WIDTH = exports.CLAUDE_MAX_HEIGHT = exports.CLAUDE_MAX_WIDTH = exports.OPENAI_MAX_HEIGHT = exports.OPENAI_MAX_WIDTH = exports.DEFAULT_QUALITY = exports.MAX_IMAGE_HEIGHT = void 0;
|
|
7
|
+
exports.appendMessageWithImage = appendMessageWithImage;
|
|
8
|
+
exports.extractBase64Image = extractBase64Image;
|
|
9
|
+
exports.resizeAndSplitForOpenAI = resizeAndSplitForOpenAI;
|
|
10
|
+
exports.resizeAndTruncateForClaude = resizeAndTruncateForClaude;
|
|
11
|
+
exports.resizeAndTruncateForGemini = resizeAndTruncateForGemini;
|
|
12
|
+
const buffer_1 = require("buffer");
|
|
13
|
+
const sharp_1 = __importDefault(require("sharp"));
|
|
14
|
+
const uuid_1 = require("uuid");
|
|
15
|
+
exports.MAX_IMAGE_HEIGHT = 2000;
|
|
16
|
+
exports.DEFAULT_QUALITY = 80;
|
|
17
|
+
exports.OPENAI_MAX_WIDTH = 1024;
|
|
18
|
+
exports.OPENAI_MAX_HEIGHT = 768;
|
|
19
|
+
exports.CLAUDE_MAX_WIDTH = 1024;
|
|
20
|
+
exports.CLAUDE_MAX_HEIGHT = 1120;
|
|
21
|
+
exports.GEMINI_MAX_WIDTH = 1024;
|
|
22
|
+
exports.GEMINI_MAX_HEIGHT = 1536;
|
|
23
|
+
const image_to_text_js_1 = require("./image_to_text.cjs");
|
|
24
|
+
async function appendMessageWithImage(model, input, message, param, addImagesToInput, source) {
|
|
25
|
+
const content = typeof param === 'string'
|
|
26
|
+
? typeof message[param] === 'string'
|
|
27
|
+
? message[param]
|
|
28
|
+
: JSON.stringify(message[param])
|
|
29
|
+
: param.read();
|
|
30
|
+
const extracted = extractBase64Image(content);
|
|
31
|
+
if (!extracted.found) {
|
|
32
|
+
input.push(message);
|
|
33
|
+
return input;
|
|
34
|
+
}
|
|
35
|
+
let imagesConverted = false;
|
|
36
|
+
for (const [image_id, imageData] of Object.entries(extracted.images)) {
|
|
37
|
+
const imageToText = await (0, image_to_text_js_1.convertImageToTextIfNeeded)(imageData, model);
|
|
38
|
+
if (imageToText && typeof imageToText === 'string') {
|
|
39
|
+
extracted.replaceContent.replaceAll(`[image #${image_id}]`, `[image #${image_id}: ${imageToText}]`);
|
|
40
|
+
imagesConverted = true;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (typeof param === 'string') {
|
|
44
|
+
const newMessage = { ...message };
|
|
45
|
+
newMessage[param] = extracted.replaceContent;
|
|
46
|
+
input.push(newMessage);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
input.push(param.write(extracted.replaceContent));
|
|
50
|
+
}
|
|
51
|
+
if (!imagesConverted) {
|
|
52
|
+
input = await addImagesToInput(input, extracted.images, source || `${message.role} message`);
|
|
53
|
+
}
|
|
54
|
+
return input;
|
|
55
|
+
}
|
|
56
|
+
function extractBase64Image(content) {
|
|
57
|
+
const result = {
|
|
58
|
+
found: false,
|
|
59
|
+
originalContent: content,
|
|
60
|
+
replaceContent: content,
|
|
61
|
+
image_id: null,
|
|
62
|
+
images: {},
|
|
63
|
+
};
|
|
64
|
+
if (typeof content !== 'string')
|
|
65
|
+
return result;
|
|
66
|
+
if (!content.includes('data:image/'))
|
|
67
|
+
return result;
|
|
68
|
+
const imgRegex = /data:image\/[a-zA-Z0-9.+-]+;base64,[A-Za-z0-9+/=\s]+/g;
|
|
69
|
+
const images = {};
|
|
70
|
+
const replaceContent = content.replace(imgRegex, match => {
|
|
71
|
+
const id = (0, uuid_1.v4)();
|
|
72
|
+
images[id] = match.replace(/\s+/g, '');
|
|
73
|
+
return `[image #${id}]`;
|
|
74
|
+
});
|
|
75
|
+
if (Object.keys(images).length === 0) {
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
const firstImageId = Object.keys(images)[0];
|
|
79
|
+
return {
|
|
80
|
+
found: true,
|
|
81
|
+
originalContent: content,
|
|
82
|
+
replaceContent: replaceContent,
|
|
83
|
+
image_id: firstImageId,
|
|
84
|
+
images: images,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
async function resizeAndSplitForOpenAI(imageData) {
|
|
88
|
+
const MAX_WIDTH = 1024;
|
|
89
|
+
const MAX_HEIGHT = 768;
|
|
90
|
+
const base64Image = imageData.replace(/^data:image\/\w+;base64,/, '');
|
|
91
|
+
const imageFormat = imageData.match(/data:image\/(\w+);/)?.[1] || 'png';
|
|
92
|
+
const imageBuffer = buffer_1.Buffer.from(base64Image, 'base64');
|
|
93
|
+
const { width: origW = 0, height: origH = 0 } = await (0, sharp_1.default)(imageBuffer).metadata();
|
|
94
|
+
if (origW <= MAX_WIDTH && origH <= MAX_HEIGHT) {
|
|
95
|
+
return [imageData];
|
|
96
|
+
}
|
|
97
|
+
const newWidth = Math.min(origW, MAX_WIDTH);
|
|
98
|
+
const resizedBuffer = await (0, sharp_1.default)(imageBuffer)
|
|
99
|
+
.resize({ width: newWidth })
|
|
100
|
+
.flatten({ background: '#fff' })
|
|
101
|
+
.toFormat(imageFormat)
|
|
102
|
+
.toBuffer();
|
|
103
|
+
const { height: resizedH = 0 } = await (0, sharp_1.default)(resizedBuffer).metadata();
|
|
104
|
+
const result = [];
|
|
105
|
+
if (resizedH > MAX_HEIGHT) {
|
|
106
|
+
const segments = Math.ceil(resizedH / MAX_HEIGHT);
|
|
107
|
+
for (let i = 0; i < segments; i++) {
|
|
108
|
+
const top = i * MAX_HEIGHT;
|
|
109
|
+
const height = Math.min(MAX_HEIGHT, resizedH - top);
|
|
110
|
+
if (height <= 0)
|
|
111
|
+
continue;
|
|
112
|
+
const segmentBuf = await (0, sharp_1.default)(resizedBuffer)
|
|
113
|
+
.extract({ left: 0, top, width: newWidth, height })
|
|
114
|
+
.toFormat(imageFormat)
|
|
115
|
+
.toBuffer();
|
|
116
|
+
const segmentDataUrl = `data:image/${imageFormat};base64,${segmentBuf.toString('base64')}`;
|
|
117
|
+
result.push(segmentDataUrl);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
const singleUrl = `data:image/${imageFormat};base64,${resizedBuffer.toString('base64')}`;
|
|
122
|
+
result.push(singleUrl);
|
|
123
|
+
}
|
|
124
|
+
return result;
|
|
125
|
+
}
|
|
126
|
+
function stripDataUrl(dataUrl) {
|
|
127
|
+
const match = dataUrl.match(/^data:image\/([^;]+);base64,(.+)$/);
|
|
128
|
+
if (!match)
|
|
129
|
+
throw new Error('Invalid data-URL');
|
|
130
|
+
return { format: match[1], base64: match[2] };
|
|
131
|
+
}
|
|
132
|
+
async function processAndTruncate(imageBuffer, format, maxW, maxH) {
|
|
133
|
+
const resized = await (0, sharp_1.default)(imageBuffer)
|
|
134
|
+
.rotate()
|
|
135
|
+
.resize({ width: maxW, withoutEnlargement: true })
|
|
136
|
+
.flatten({ background: '#fff' })
|
|
137
|
+
.toFormat(format)
|
|
138
|
+
.toBuffer();
|
|
139
|
+
const { width, height } = await (0, sharp_1.default)(resized).metadata();
|
|
140
|
+
if (height > maxH) {
|
|
141
|
+
return await (0, sharp_1.default)(resized)
|
|
142
|
+
.extract({ left: 0, top: 0, width: width, height: maxH })
|
|
143
|
+
.toFormat(format)
|
|
144
|
+
.toBuffer();
|
|
145
|
+
}
|
|
146
|
+
return resized;
|
|
147
|
+
}
|
|
148
|
+
async function resizeAndTruncateForClaude(imageData) {
|
|
149
|
+
const { format, base64 } = stripDataUrl(imageData);
|
|
150
|
+
const buf = buffer_1.Buffer.from(base64, 'base64');
|
|
151
|
+
const meta = await (0, sharp_1.default)(buf).metadata();
|
|
152
|
+
if (meta.width <= exports.CLAUDE_MAX_WIDTH && meta.height <= exports.CLAUDE_MAX_HEIGHT) {
|
|
153
|
+
return imageData;
|
|
154
|
+
}
|
|
155
|
+
const outBuf = await processAndTruncate(buf, format, exports.CLAUDE_MAX_WIDTH, exports.CLAUDE_MAX_HEIGHT);
|
|
156
|
+
return `data:image/${format};base64,${outBuf.toString('base64')}`;
|
|
157
|
+
}
|
|
158
|
+
async function resizeAndTruncateForGemini(imageData) {
|
|
159
|
+
const { format, base64 } = stripDataUrl(imageData);
|
|
160
|
+
const buf = buffer_1.Buffer.from(base64, 'base64');
|
|
161
|
+
const meta = await (0, sharp_1.default)(buf).metadata();
|
|
162
|
+
if (meta.width <= exports.GEMINI_MAX_WIDTH && meta.height <= exports.GEMINI_MAX_HEIGHT) {
|
|
163
|
+
return imageData;
|
|
164
|
+
}
|
|
165
|
+
const outBuf = await processAndTruncate(buf, format, exports.GEMINI_MAX_WIDTH, exports.GEMINI_MAX_HEIGHT);
|
|
166
|
+
return `data:image/${format};base64,${outBuf.toString('base64')}`;
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=image_utils.js.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const MAX_IMAGE_HEIGHT = 2000;
|
|
2
|
+
export declare const DEFAULT_QUALITY = 80;
|
|
3
|
+
export declare const OPENAI_MAX_WIDTH = 1024;
|
|
4
|
+
export declare const OPENAI_MAX_HEIGHT = 768;
|
|
5
|
+
export declare const CLAUDE_MAX_WIDTH = 1024;
|
|
6
|
+
export declare const CLAUDE_MAX_HEIGHT = 1120;
|
|
7
|
+
export declare const GEMINI_MAX_WIDTH = 1024;
|
|
8
|
+
export declare const GEMINI_MAX_HEIGHT = 1536;
|
|
9
|
+
import { ExtractBase64ImageResult } from "../types/types.cjs";
|
|
10
|
+
export declare function appendMessageWithImage(model: string, input: any[], message: any, param: string | {
|
|
11
|
+
read: () => string;
|
|
12
|
+
write: (value: string) => any;
|
|
13
|
+
}, addImagesToInput: (input: any[], images: Record<string, string>, source: string) => Promise<any[]>, source?: string): Promise<any>;
|
|
14
|
+
export declare function extractBase64Image(content: string): ExtractBase64ImageResult;
|
|
15
|
+
export declare function resizeAndSplitForOpenAI(imageData: string): Promise<string[]>;
|
|
16
|
+
export declare function resizeAndTruncateForClaude(imageData: string): Promise<string>;
|
|
17
|
+
export declare function resizeAndTruncateForGemini(imageData: string): Promise<string>;
|
|
18
|
+
//# sourceMappingURL=image_utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image_utils.d.ts","sourceRoot":"","sources":["../../../utils/image_utils.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAS7D,wBAAsB,sBAAsB,CACxC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,GAAG,EAAE,EACZ,OAAO,EAAE,GAAG,EACZ,KAAK,EACC,MAAM,GACN;IACI,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC;CACjC,EACP,gBAAgB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,EAClG,MAAM,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,GAAG,CAAC,CAwCd;AASD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,wBAAwB,CA6C5E;AAUD,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAqDlF;AAmCD,wBAAsB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYnF;AAKD,wBAAsB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYnF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image_utils.js","sourceRoot":"","sources":["../../../utils/image_utils.ts"],"names":[],"mappings":"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"}
|