@just-every/ensemble 0.2.257 → 0.2.259
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/README.md +2 -2
- package/dist/cjs/data/model_data.cjs +66 -11
- package/dist/cjs/data/model_data.d.ts.map +1 -1
- package/dist/cjs/data/model_data.js.map +1 -1
- package/dist/cjs/model_providers/assemblyai.cjs +360 -0
- package/dist/cjs/model_providers/assemblyai.d.ts +30 -0
- package/dist/cjs/model_providers/assemblyai.d.ts.map +1 -0
- package/dist/cjs/model_providers/assemblyai.js.map +1 -0
- package/dist/cjs/model_providers/gemini.cjs +93 -34
- package/dist/cjs/model_providers/gemini.d.ts.map +1 -1
- package/dist/cjs/model_providers/gemini.js.map +1 -1
- package/dist/cjs/model_providers/model_provider.cjs +10 -0
- package/dist/cjs/model_providers/model_provider.d.ts.map +1 -1
- package/dist/cjs/model_providers/model_provider.js.map +1 -1
- package/dist/cjs/model_providers/openai.cjs +91 -25
- package/dist/cjs/model_providers/openai.d.ts.map +1 -1
- package/dist/cjs/model_providers/openai.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/cjs/types/types.d.ts +2 -1
- package/dist/cjs/types/types.d.ts.map +1 -1
- package/dist/data/model_data.d.ts.map +1 -1
- package/dist/data/model_data.js +66 -11
- package/dist/data/model_data.js.map +1 -1
- package/dist/model_providers/assemblyai.d.ts +30 -0
- package/dist/model_providers/assemblyai.d.ts.map +1 -0
- package/dist/model_providers/assemblyai.js +323 -0
- package/dist/model_providers/assemblyai.js.map +1 -0
- package/dist/model_providers/gemini.d.ts.map +1 -1
- package/dist/model_providers/gemini.js +93 -34
- package/dist/model_providers/gemini.js.map +1 -1
- package/dist/model_providers/model_provider.d.ts.map +1 -1
- package/dist/model_providers/model_provider.js +10 -0
- package/dist/model_providers/model_provider.js.map +1 -1
- package/dist/model_providers/openai.d.ts.map +1 -1
- package/dist/model_providers/openai.js +91 -25
- package/dist/model_providers/openai.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/types.d.ts +2 -1
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.assemblyAIProvider = exports.AssemblyAIProvider = void 0;
|
|
37
|
+
const base_provider_js_1 = require("./base_provider.cjs");
|
|
38
|
+
const ASSEMBLYAI_STREAMING_URL = 'wss://streaming.assemblyai.com/v3/ws';
|
|
39
|
+
const ASSEMBLYAI_STREAMING_MODELS = new Set(['u3-rt-pro']);
|
|
40
|
+
const DEFAULT_SAMPLE_RATE = 16000;
|
|
41
|
+
const DEFAULT_CHANNELS = 1;
|
|
42
|
+
const BYTES_PER_SAMPLE = 2;
|
|
43
|
+
const TARGET_CHUNK_MS = 50;
|
|
44
|
+
const WEBSOCKET_OPEN_STATE = 1;
|
|
45
|
+
const DONE = Symbol('done');
|
|
46
|
+
function normalizeAudioSource(source) {
|
|
47
|
+
if (source instanceof ReadableStream) {
|
|
48
|
+
return source;
|
|
49
|
+
}
|
|
50
|
+
if (typeof source === 'object' && source !== null && Symbol.asyncIterator in source) {
|
|
51
|
+
return new ReadableStream({
|
|
52
|
+
async start(controller) {
|
|
53
|
+
try {
|
|
54
|
+
for await (const chunk of source) {
|
|
55
|
+
controller.enqueue(chunk);
|
|
56
|
+
}
|
|
57
|
+
controller.close();
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
controller.error(error);
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
if (typeof source === 'function') {
|
|
66
|
+
return normalizeAudioSource(source());
|
|
67
|
+
}
|
|
68
|
+
if (source instanceof ArrayBuffer || source instanceof Uint8Array) {
|
|
69
|
+
const data = source instanceof ArrayBuffer ? new Uint8Array(source) : source;
|
|
70
|
+
return new ReadableStream({
|
|
71
|
+
start(controller) {
|
|
72
|
+
controller.enqueue(data);
|
|
73
|
+
controller.close();
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
throw new Error(`Unsupported audio source type: ${typeof source}`);
|
|
78
|
+
}
|
|
79
|
+
function appendBuffer(left, right) {
|
|
80
|
+
if (left.length === 0)
|
|
81
|
+
return right;
|
|
82
|
+
const merged = new Uint8Array(left.length + right.length);
|
|
83
|
+
merged.set(left);
|
|
84
|
+
merged.set(right, left.length);
|
|
85
|
+
return merged;
|
|
86
|
+
}
|
|
87
|
+
function copyChunk(chunk) {
|
|
88
|
+
const copy = new Uint8Array(chunk.length);
|
|
89
|
+
copy.set(chunk);
|
|
90
|
+
return copy;
|
|
91
|
+
}
|
|
92
|
+
function wait(ms) {
|
|
93
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
94
|
+
}
|
|
95
|
+
function getTranscriptDelta(previous, next) {
|
|
96
|
+
if (!previous)
|
|
97
|
+
return next;
|
|
98
|
+
if (next.startsWith(previous))
|
|
99
|
+
return next.slice(previous.length);
|
|
100
|
+
let commonPrefixLength = 0;
|
|
101
|
+
const limit = Math.min(previous.length, next.length);
|
|
102
|
+
while (commonPrefixLength < limit && previous[commonPrefixLength] === next[commonPrefixLength]) {
|
|
103
|
+
commonPrefixLength++;
|
|
104
|
+
}
|
|
105
|
+
return next.slice(commonPrefixLength);
|
|
106
|
+
}
|
|
107
|
+
function setParam(params, name, value) {
|
|
108
|
+
if (value === undefined || value === null || value === '')
|
|
109
|
+
return;
|
|
110
|
+
if (Array.isArray(value)) {
|
|
111
|
+
if (value.length === 0)
|
|
112
|
+
return;
|
|
113
|
+
params.set(name, JSON.stringify(value));
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
params.set(name, String(value));
|
|
117
|
+
}
|
|
118
|
+
function buildStreamingUrl(model, opts) {
|
|
119
|
+
const params = new URLSearchParams();
|
|
120
|
+
params.set('sample_rate', String(opts.audioFormat?.sampleRate || DEFAULT_SAMPLE_RATE));
|
|
121
|
+
params.set('speech_model', model);
|
|
122
|
+
setParam(params, 'mode', opts.mode);
|
|
123
|
+
setParam(params, 'prompt', opts.prompt);
|
|
124
|
+
setParam(params, 'language_code', opts.language_code || opts.languageCode || opts.language);
|
|
125
|
+
setParam(params, 'keyterms_prompt', opts.keyterms_prompt || opts.keytermsPrompt);
|
|
126
|
+
setParam(params, 'min_turn_silence', opts.min_turn_silence || opts.minTurnSilence);
|
|
127
|
+
setParam(params, 'max_turn_silence', opts.max_turn_silence || opts.maxTurnSilence);
|
|
128
|
+
setParam(params, 'vad_threshold', opts.vad_threshold || opts.vadThreshold);
|
|
129
|
+
setParam(params, 'agent_context', opts.agent_context || opts.agentContext);
|
|
130
|
+
return `${ASSEMBLYAI_STREAMING_URL}?${params.toString()}`;
|
|
131
|
+
}
|
|
132
|
+
function isSocketOpen(ws) {
|
|
133
|
+
return ws.readyState === WEBSOCKET_OPEN_STATE;
|
|
134
|
+
}
|
|
135
|
+
class AssemblyAIProvider extends base_provider_js_1.BaseModelProvider {
|
|
136
|
+
apiKey;
|
|
137
|
+
constructor(apiKey) {
|
|
138
|
+
super('assemblyai');
|
|
139
|
+
this.apiKey = apiKey;
|
|
140
|
+
}
|
|
141
|
+
async *createResponseStream() {
|
|
142
|
+
yield* [];
|
|
143
|
+
throw new Error('AssemblyAI provider only supports streaming transcription');
|
|
144
|
+
}
|
|
145
|
+
async *createTranscription(audio, _agent, model, opts = {}) {
|
|
146
|
+
if (!ASSEMBLYAI_STREAMING_MODELS.has(model)) {
|
|
147
|
+
throw new Error(`Model ${model} does not support AssemblyAI streaming transcription. Supported models: ${Array.from(ASSEMBLYAI_STREAMING_MODELS).join(', ')}`);
|
|
148
|
+
}
|
|
149
|
+
const apiKey = this.apiKey || process.env.ASSEMBLYAI_API_KEY;
|
|
150
|
+
if (!apiKey) {
|
|
151
|
+
throw new Error('Failed to initialize AssemblyAI transcription. Make sure ASSEMBLYAI_API_KEY is set.');
|
|
152
|
+
}
|
|
153
|
+
const { WebSocket } = await Promise.resolve().then(() => __importStar(require('ws')));
|
|
154
|
+
const ws = new WebSocket(buildStreamingUrl(model, opts), {
|
|
155
|
+
headers: { Authorization: apiKey },
|
|
156
|
+
});
|
|
157
|
+
const queue = [];
|
|
158
|
+
let wake;
|
|
159
|
+
let finished = false;
|
|
160
|
+
let socketError;
|
|
161
|
+
const previousTurnTranscripts = new Map();
|
|
162
|
+
const push = (item) => {
|
|
163
|
+
queue.push(item);
|
|
164
|
+
wake?.();
|
|
165
|
+
wake = undefined;
|
|
166
|
+
};
|
|
167
|
+
const markDone = () => {
|
|
168
|
+
if (finished)
|
|
169
|
+
return;
|
|
170
|
+
finished = true;
|
|
171
|
+
push(DONE);
|
|
172
|
+
};
|
|
173
|
+
const connected = new Promise((resolve, reject) => {
|
|
174
|
+
const timeout = setTimeout(() => {
|
|
175
|
+
reject(new Error('AssemblyAI streaming connection timeout'));
|
|
176
|
+
}, 10000);
|
|
177
|
+
ws.once('open', () => {
|
|
178
|
+
clearTimeout(timeout);
|
|
179
|
+
resolve();
|
|
180
|
+
});
|
|
181
|
+
ws.once('error', error => {
|
|
182
|
+
clearTimeout(timeout);
|
|
183
|
+
reject(error);
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
ws.on('message', data => {
|
|
187
|
+
let message;
|
|
188
|
+
try {
|
|
189
|
+
message = JSON.parse(data.toString());
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
socketError = error instanceof Error ? error : new Error(String(error));
|
|
193
|
+
push({
|
|
194
|
+
type: 'error',
|
|
195
|
+
timestamp: new Date().toISOString(),
|
|
196
|
+
error: `Failed to parse AssemblyAI message: ${socketError.message}`,
|
|
197
|
+
});
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
const timestamp = new Date().toISOString();
|
|
201
|
+
switch (message.type) {
|
|
202
|
+
case 'Begin':
|
|
203
|
+
break;
|
|
204
|
+
case 'SpeechStarted':
|
|
205
|
+
push({
|
|
206
|
+
type: 'transcription_turn_start',
|
|
207
|
+
timestamp,
|
|
208
|
+
});
|
|
209
|
+
break;
|
|
210
|
+
case 'Turn': {
|
|
211
|
+
const transcript = typeof message.transcript === 'string' ? message.transcript : '';
|
|
212
|
+
const turnOrder = typeof message.turn_order === 'number' ? message.turn_order : 0;
|
|
213
|
+
const previousTranscript = previousTurnTranscripts.get(turnOrder) || '';
|
|
214
|
+
const delta = getTranscriptDelta(previousTranscript, transcript);
|
|
215
|
+
previousTurnTranscripts.set(turnOrder, transcript);
|
|
216
|
+
if (delta) {
|
|
217
|
+
push({
|
|
218
|
+
type: 'transcription_turn_delta',
|
|
219
|
+
timestamp,
|
|
220
|
+
delta,
|
|
221
|
+
partial: !message.end_of_turn,
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
if (message.end_of_turn) {
|
|
225
|
+
previousTurnTranscripts.delete(turnOrder);
|
|
226
|
+
push({
|
|
227
|
+
type: 'transcription_turn_complete',
|
|
228
|
+
timestamp,
|
|
229
|
+
text: transcript,
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
break;
|
|
233
|
+
}
|
|
234
|
+
case 'Termination':
|
|
235
|
+
markDone();
|
|
236
|
+
break;
|
|
237
|
+
case 'Error':
|
|
238
|
+
socketError = new Error(message.error || 'AssemblyAI streaming error');
|
|
239
|
+
push({
|
|
240
|
+
type: 'error',
|
|
241
|
+
timestamp,
|
|
242
|
+
error: socketError.message,
|
|
243
|
+
});
|
|
244
|
+
markDone();
|
|
245
|
+
break;
|
|
246
|
+
default:
|
|
247
|
+
break;
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
ws.on('error', error => {
|
|
251
|
+
socketError = error instanceof Error ? error : new Error(String(error));
|
|
252
|
+
push({
|
|
253
|
+
type: 'error',
|
|
254
|
+
timestamp: new Date().toISOString(),
|
|
255
|
+
error: socketError.message,
|
|
256
|
+
});
|
|
257
|
+
markDone();
|
|
258
|
+
});
|
|
259
|
+
ws.on('close', (code, reason) => {
|
|
260
|
+
if (!finished && code !== 1000) {
|
|
261
|
+
const detail = reason.toString() || `AssemblyAI streaming socket closed with code ${code}`;
|
|
262
|
+
push({
|
|
263
|
+
type: 'error',
|
|
264
|
+
timestamp: new Date().toISOString(),
|
|
265
|
+
error: detail,
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
markDone();
|
|
269
|
+
});
|
|
270
|
+
let audioPump;
|
|
271
|
+
try {
|
|
272
|
+
await connected;
|
|
273
|
+
audioPump = this.streamAudio(ws, audio, opts)
|
|
274
|
+
.then(() => {
|
|
275
|
+
if (isSocketOpen(ws)) {
|
|
276
|
+
ws.send(JSON.stringify({ type: 'Terminate' }));
|
|
277
|
+
}
|
|
278
|
+
})
|
|
279
|
+
.catch(error => {
|
|
280
|
+
socketError = error instanceof Error ? error : new Error(String(error));
|
|
281
|
+
push({
|
|
282
|
+
type: 'error',
|
|
283
|
+
timestamp: new Date().toISOString(),
|
|
284
|
+
error: socketError.message,
|
|
285
|
+
});
|
|
286
|
+
if (isSocketOpen(ws)) {
|
|
287
|
+
ws.close();
|
|
288
|
+
}
|
|
289
|
+
markDone();
|
|
290
|
+
});
|
|
291
|
+
while (true) {
|
|
292
|
+
if (queue.length === 0) {
|
|
293
|
+
await new Promise(resolve => {
|
|
294
|
+
wake = resolve;
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
const item = queue.shift();
|
|
298
|
+
if (!item)
|
|
299
|
+
continue;
|
|
300
|
+
if (item === DONE)
|
|
301
|
+
break;
|
|
302
|
+
yield item;
|
|
303
|
+
}
|
|
304
|
+
if (socketError) {
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
finally {
|
|
309
|
+
await audioPump?.catch(() => undefined);
|
|
310
|
+
if (isSocketOpen(ws)) {
|
|
311
|
+
ws.close();
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
async streamAudio(ws, audio, opts) {
|
|
316
|
+
const stream = normalizeAudioSource(audio);
|
|
317
|
+
const reader = stream.getReader();
|
|
318
|
+
const sampleRate = opts.audioFormat?.sampleRate || DEFAULT_SAMPLE_RATE;
|
|
319
|
+
const channels = opts.audioFormat?.channels || DEFAULT_CHANNELS;
|
|
320
|
+
const throttleAudio = opts.throttleAudio ??
|
|
321
|
+
(!opts.disableRealtimeThrottle && (audio instanceof ArrayBuffer || audio instanceof Uint8Array));
|
|
322
|
+
const targetBytes = Math.max(1, Math.floor((sampleRate * channels * BYTES_PER_SAMPLE * TARGET_CHUNK_MS) / 1000));
|
|
323
|
+
let buffer = new Uint8Array(0);
|
|
324
|
+
while (true) {
|
|
325
|
+
const { done, value } = await reader.read();
|
|
326
|
+
if (done)
|
|
327
|
+
break;
|
|
328
|
+
if (value?.length) {
|
|
329
|
+
buffer = appendBuffer(buffer, copyChunk(value));
|
|
330
|
+
}
|
|
331
|
+
while (buffer.length >= targetBytes) {
|
|
332
|
+
const chunk = buffer.slice(0, targetBytes);
|
|
333
|
+
buffer = buffer.slice(targetBytes);
|
|
334
|
+
await this.sendAudioChunk(ws, chunk, throttleAudio);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
if (buffer.length > 0) {
|
|
338
|
+
await this.sendAudioChunk(ws, buffer, throttleAudio);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
async sendAudioChunk(ws, chunk, throttleAudio) {
|
|
342
|
+
if (!isSocketOpen(ws)) {
|
|
343
|
+
throw new Error('AssemblyAI streaming socket closed before audio could be sent');
|
|
344
|
+
}
|
|
345
|
+
await new Promise((resolve, reject) => {
|
|
346
|
+
ws.send(chunk, error => {
|
|
347
|
+
if (error)
|
|
348
|
+
reject(error);
|
|
349
|
+
else
|
|
350
|
+
resolve();
|
|
351
|
+
});
|
|
352
|
+
});
|
|
353
|
+
if (throttleAudio) {
|
|
354
|
+
await wait(TARGET_CHUNK_MS);
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
exports.AssemblyAIProvider = AssemblyAIProvider;
|
|
359
|
+
exports.assemblyAIProvider = new AssemblyAIProvider();
|
|
360
|
+
//# sourceMappingURL=assemblyai.js.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { BaseModelProvider } from "./base_provider.cjs";
|
|
2
|
+
import type { AgentDefinition, ProviderStreamEvent, TranscriptionAudioSource, TranscriptionEvent, TranscriptionOpts } from "../types/types.cjs";
|
|
3
|
+
type AssemblyAIStreamingOptions = TranscriptionOpts & {
|
|
4
|
+
mode?: 'min_latency' | 'balanced' | 'max_accuracy';
|
|
5
|
+
languageCode?: string;
|
|
6
|
+
language_code?: string;
|
|
7
|
+
keytermsPrompt?: string[];
|
|
8
|
+
keyterms_prompt?: string[];
|
|
9
|
+
minTurnSilence?: number;
|
|
10
|
+
min_turn_silence?: number;
|
|
11
|
+
maxTurnSilence?: number;
|
|
12
|
+
max_turn_silence?: number;
|
|
13
|
+
vadThreshold?: number;
|
|
14
|
+
vad_threshold?: number;
|
|
15
|
+
agentContext?: string;
|
|
16
|
+
agent_context?: string;
|
|
17
|
+
throttleAudio?: boolean;
|
|
18
|
+
disableRealtimeThrottle?: boolean;
|
|
19
|
+
};
|
|
20
|
+
export declare class AssemblyAIProvider extends BaseModelProvider {
|
|
21
|
+
private apiKey?;
|
|
22
|
+
constructor(apiKey?: string);
|
|
23
|
+
createResponseStream(): AsyncGenerator<ProviderStreamEvent>;
|
|
24
|
+
createTranscription(audio: TranscriptionAudioSource, _agent: AgentDefinition, model: string, opts?: AssemblyAIStreamingOptions): AsyncGenerator<TranscriptionEvent>;
|
|
25
|
+
private streamAudio;
|
|
26
|
+
private sendAudioChunk;
|
|
27
|
+
}
|
|
28
|
+
export declare const assemblyAIProvider: AssemblyAIProvider;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=assemblyai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assemblyai.d.ts","sourceRoot":"","sources":["../../../model_providers/assemblyai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACR,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACpB,MAAM,mBAAmB,CAAC;AAW3B,KAAK,0BAA0B,GAAG,iBAAiB,GAAG;IAClD,IAAI,CAAC,EAAE,aAAa,GAAG,UAAU,GAAG,cAAc,CAAC;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACrC,CAAC;AA0GF,qBAAa,kBAAmB,SAAQ,iBAAiB;IACzC,OAAO,CAAC,MAAM,CAAC;gBAAP,MAAM,CAAC,EAAE,MAAM;IAI5B,oBAAoB,IAAI,cAAc,CAAC,mBAAmB,CAAC;IAK3D,mBAAmB,CACtB,KAAK,EAAE,wBAAwB,EAC/B,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,0BAA+B,GACtC,cAAc,CAAC,kBAAkB,CAAC;YA4LvB,WAAW;YAqCX,cAAc;CAoB/B;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assemblyai.js","sourceRoot":"","sources":["../../../model_providers/assemblyai.ts"],"names":[],"mappings":"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"}
|
|
@@ -620,6 +620,24 @@ function isGemmaModel(model) {
|
|
|
620
620
|
const modelId = model.startsWith('models/') ? model.slice('models/'.length) : model;
|
|
621
621
|
return modelId.startsWith('gemma-4-');
|
|
622
622
|
}
|
|
623
|
+
function isGemini25FlashImageModel(model) {
|
|
624
|
+
return model.includes('gemini-2.5-flash-image');
|
|
625
|
+
}
|
|
626
|
+
function isGemini31FlashImageModel(model) {
|
|
627
|
+
return model.includes('gemini-3.1-flash-image');
|
|
628
|
+
}
|
|
629
|
+
function isGemini31FlashLiteImageModel(model) {
|
|
630
|
+
return model.includes('gemini-3.1-flash-lite-image');
|
|
631
|
+
}
|
|
632
|
+
function isGemini3ProImageModel(model) {
|
|
633
|
+
return model.includes('gemini-3-pro-image');
|
|
634
|
+
}
|
|
635
|
+
function isGeminiStreamingImageModel(model) {
|
|
636
|
+
return (isGemini25FlashImageModel(model) ||
|
|
637
|
+
isGemini31FlashImageModel(model) ||
|
|
638
|
+
isGemini31FlashLiteImageModel(model) ||
|
|
639
|
+
isGemini3ProImageModel(model));
|
|
640
|
+
}
|
|
623
641
|
function getSupportedThinkingLevels(model) {
|
|
624
642
|
if (isGemmaModel(model)) {
|
|
625
643
|
return new Set(['HIGH']);
|
|
@@ -627,17 +645,17 @@ function getSupportedThinkingLevels(model) {
|
|
|
627
645
|
if (model.includes('gemini-3.1-pro-preview') || model.includes('gemini-3-pro-preview')) {
|
|
628
646
|
return new Set(['LOW', 'MEDIUM', 'HIGH']);
|
|
629
647
|
}
|
|
648
|
+
if (isGemini31FlashImageModel(model) || isGemini31FlashLiteImageModel(model)) {
|
|
649
|
+
return new Set(['MINIMAL', 'HIGH']);
|
|
650
|
+
}
|
|
651
|
+
if (isGemini3ProImageModel(model)) {
|
|
652
|
+
return new Set(['HIGH']);
|
|
653
|
+
}
|
|
630
654
|
if (model.includes('gemini-3.5-flash') ||
|
|
631
655
|
model.includes('gemini-3.1-flash-lite') ||
|
|
632
656
|
model.includes('gemini-3-flash-preview')) {
|
|
633
657
|
return new Set(['MINIMAL', 'LOW', 'MEDIUM', 'HIGH']);
|
|
634
658
|
}
|
|
635
|
-
if (model.includes('gemini-3.1-flash-image-preview')) {
|
|
636
|
-
return new Set(['MINIMAL', 'HIGH']);
|
|
637
|
-
}
|
|
638
|
-
if (model.includes('gemini-3-pro-image-preview')) {
|
|
639
|
-
return new Set(['HIGH']);
|
|
640
|
-
}
|
|
641
659
|
return null;
|
|
642
660
|
}
|
|
643
661
|
const GEMINI_3_PRO_IMAGE_DIMENSION_PRESETS = {
|
|
@@ -1268,7 +1286,7 @@ class GeminiProvider extends base_provider_js_1.BaseModelProvider {
|
|
|
1268
1286
|
const requestId = `req_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;
|
|
1269
1287
|
let finalRequestId = requestId;
|
|
1270
1288
|
try {
|
|
1271
|
-
model = model || 'gemini-
|
|
1289
|
+
model = model || 'gemini-3.1-flash-image';
|
|
1272
1290
|
const numberOfImages = opts?.n ?? 1;
|
|
1273
1291
|
if (!Number.isInteger(numberOfImages) || numberOfImages < 1) {
|
|
1274
1292
|
throw new Error('[Gemini] ImageGenerationOpts.n must be a positive integer.');
|
|
@@ -1282,11 +1300,17 @@ class GeminiProvider extends base_provider_js_1.BaseModelProvider {
|
|
|
1282
1300
|
}
|
|
1283
1301
|
const explicitWebGrounding = opts?.grounding?.web_search;
|
|
1284
1302
|
const explicitImageGrounding = opts?.grounding?.image_search;
|
|
1285
|
-
const
|
|
1286
|
-
const
|
|
1287
|
-
const
|
|
1288
|
-
|
|
1289
|
-
|
|
1303
|
+
const isGemini31FlashImage = isGemini31FlashImageModel(model);
|
|
1304
|
+
const isGemini31FlashLiteImage = isGemini31FlashLiteImageModel(model);
|
|
1305
|
+
const isGemini3ProImage = isGemini3ProImageModel(model);
|
|
1306
|
+
const supportsWebGrounding = isGemini31FlashImage || isGemini3ProImage;
|
|
1307
|
+
const enableWebGrounding = supportsWebGrounding && (explicitWebGrounding ?? hasGoogleWebSearch ?? false);
|
|
1308
|
+
const enableImageGrounding = explicitImageGrounding === true && isGemini31FlashImage;
|
|
1309
|
+
if ((explicitWebGrounding || hasGoogleWebSearch) && !supportsWebGrounding) {
|
|
1310
|
+
console.warn('[Gemini] Google Search grounding is only available for gemini-3.1-flash-image and gemini-3-pro-image. Ignoring web_search=true.');
|
|
1311
|
+
}
|
|
1312
|
+
if (explicitImageGrounding && !isGemini31FlashImage) {
|
|
1313
|
+
console.warn('[Gemini] Image Search grounding is only available for gemini-3.1-flash-image. Ignoring image_search=true.');
|
|
1290
1314
|
}
|
|
1291
1315
|
const thinkingOptions = opts?.thinking;
|
|
1292
1316
|
const hasThinkingOptionsObject = thinkingOptions !== null && typeof thinkingOptions === 'object' && !Array.isArray(thinkingOptions);
|
|
@@ -1296,11 +1320,12 @@ class GeminiProvider extends base_provider_js_1.BaseModelProvider {
|
|
|
1296
1320
|
? thinkingOptions.level
|
|
1297
1321
|
: undefined;
|
|
1298
1322
|
const thinkingLevel = requestedThinkingLevel === 'high' ? 'High' : requestedThinkingLevel ? 'Minimal' : undefined;
|
|
1299
|
-
|
|
1300
|
-
|
|
1323
|
+
const supportsImageThinkingControls = isGemini31FlashImage || isGemini31FlashLiteImage;
|
|
1324
|
+
if (requestedThinkingLevel && !supportsImageThinkingControls) {
|
|
1325
|
+
console.warn('[Gemini] thinking.level is currently supported for gemini-3.1-flash-image and gemini-3.1-flash-lite-image only. Ignoring thinking level.');
|
|
1301
1326
|
}
|
|
1302
|
-
if (hasThinkingOptionsObject && 'include_thoughts' in thinkingOptions && !
|
|
1303
|
-
console.warn('[Gemini] thinking.include_thoughts is currently supported for gemini-3.1-flash-image-
|
|
1327
|
+
if (hasThinkingOptionsObject && 'include_thoughts' in thinkingOptions && !supportsImageThinkingControls) {
|
|
1328
|
+
console.warn('[Gemini] thinking.include_thoughts is currently supported for gemini-3.1-flash-image and gemini-3.1-flash-lite-image only. Ignoring include_thoughts.');
|
|
1304
1329
|
}
|
|
1305
1330
|
let aspectRatio = '1:1';
|
|
1306
1331
|
if (opts?.size === 'landscape')
|
|
@@ -1308,9 +1333,7 @@ class GeminiProvider extends base_provider_js_1.BaseModelProvider {
|
|
|
1308
1333
|
else if (opts?.size === 'portrait')
|
|
1309
1334
|
aspectRatio = '2:3';
|
|
1310
1335
|
console.log(`[Gemini] Generating ${numberOfImages} image(s) with model ${model}, prompt: "${prompt.substring(0, 100)}${prompt.length > 100 ? '...' : ''}"`);
|
|
1311
|
-
if (model
|
|
1312
|
-
model.includes('gemini-3.1-flash-image-preview') ||
|
|
1313
|
-
model.includes('gemini-3-pro-image-preview')) {
|
|
1336
|
+
if (isGeminiStreamingImageModel(model)) {
|
|
1314
1337
|
let aggregateMetadata = { model };
|
|
1315
1338
|
const sizeMap = {
|
|
1316
1339
|
'1:1': { ar: '1:1' },
|
|
@@ -1341,7 +1364,7 @@ class GeminiProvider extends base_provider_js_1.BaseModelProvider {
|
|
|
1341
1364
|
'1024x1792': { ar: '9:16' },
|
|
1342
1365
|
};
|
|
1343
1366
|
const sm = opts?.size ? sizeMap[String(opts.size)] : undefined;
|
|
1344
|
-
const gemini3ProDimensionPreset =
|
|
1367
|
+
const gemini3ProDimensionPreset = isGemini3ProImage
|
|
1345
1368
|
? GEMINI_3_PRO_IMAGE_DIMENSION_PRESETS[String(opts?.size)]
|
|
1346
1369
|
: undefined;
|
|
1347
1370
|
const imageConfig = {};
|
|
@@ -1350,7 +1373,24 @@ class GeminiProvider extends base_provider_js_1.BaseModelProvider {
|
|
|
1350
1373
|
if (gemini3ProDimensionPreset?.ar)
|
|
1351
1374
|
imageConfig.aspectRatio = gemini3ProDimensionPreset.ar;
|
|
1352
1375
|
const qualityKey = typeof opts?.quality === 'string' ? opts.quality.toLowerCase() : '';
|
|
1353
|
-
|
|
1376
|
+
if (isGemini31FlashLiteImage && imageConfig.aspectRatio) {
|
|
1377
|
+
const liteAspectRatios = new Set([
|
|
1378
|
+
'1:1',
|
|
1379
|
+
'2:3',
|
|
1380
|
+
'3:2',
|
|
1381
|
+
'3:4',
|
|
1382
|
+
'4:3',
|
|
1383
|
+
'4:5',
|
|
1384
|
+
'5:4',
|
|
1385
|
+
'9:16',
|
|
1386
|
+
'16:9',
|
|
1387
|
+
'21:9',
|
|
1388
|
+
]);
|
|
1389
|
+
if (!liteAspectRatios.has(imageConfig.aspectRatio)) {
|
|
1390
|
+
throw new Error(`[Gemini] gemini-3.1-flash-lite-image does not support aspect ratio ${imageConfig.aspectRatio}.`);
|
|
1391
|
+
}
|
|
1392
|
+
}
|
|
1393
|
+
const imageSizeMap = isGemini31FlashImage
|
|
1354
1394
|
? {
|
|
1355
1395
|
low: '0.5K',
|
|
1356
1396
|
standard: '1K',
|
|
@@ -1358,28 +1398,44 @@ class GeminiProvider extends base_provider_js_1.BaseModelProvider {
|
|
|
1358
1398
|
hd: '4K',
|
|
1359
1399
|
high: '4K',
|
|
1360
1400
|
}
|
|
1361
|
-
:
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1401
|
+
: isGemini31FlashLiteImage
|
|
1402
|
+
? {
|
|
1403
|
+
low: '1K',
|
|
1404
|
+
standard: '1K',
|
|
1405
|
+
medium: '1K',
|
|
1406
|
+
hd: '1K',
|
|
1407
|
+
high: '1K',
|
|
1408
|
+
}
|
|
1409
|
+
: {
|
|
1410
|
+
low: '1K',
|
|
1411
|
+
standard: '2K',
|
|
1412
|
+
medium: '2K',
|
|
1413
|
+
hd: '4K',
|
|
1414
|
+
high: '4K',
|
|
1415
|
+
};
|
|
1368
1416
|
let imageSize = imageSizeMap[qualityKey];
|
|
1369
1417
|
if (gemini3ProDimensionPreset?.imageSize) {
|
|
1370
1418
|
imageSize = gemini3ProDimensionPreset.imageSize;
|
|
1371
1419
|
}
|
|
1372
|
-
if (
|
|
1420
|
+
if (isGemini31FlashImage && opts?.size === '512x512') {
|
|
1373
1421
|
imageSize = '0.5K';
|
|
1374
1422
|
}
|
|
1423
|
+
if (isGemini31FlashLiteImage) {
|
|
1424
|
+
imageSize = '1K';
|
|
1425
|
+
if (opts?.size === '512x512') {
|
|
1426
|
+
throw new Error('[Gemini] gemini-3.1-flash-lite-image only supports 1K image output.');
|
|
1427
|
+
}
|
|
1428
|
+
}
|
|
1375
1429
|
const requestImageSize = imageSize === '0.5K' ? '512' : imageSize;
|
|
1376
1430
|
if (requestImageSize)
|
|
1377
1431
|
imageConfig.imageSize = requestImageSize;
|
|
1378
1432
|
const thinkingConfig = {};
|
|
1379
|
-
if (hasThinkingOptionsObject &&
|
|
1433
|
+
if (hasThinkingOptionsObject &&
|
|
1434
|
+
'include_thoughts' in thinkingOptions &&
|
|
1435
|
+
supportsImageThinkingControls) {
|
|
1380
1436
|
thinkingConfig.includeThoughts = includeThoughts;
|
|
1381
1437
|
}
|
|
1382
|
-
if (thinkingLevel &&
|
|
1438
|
+
if (thinkingLevel && supportsImageThinkingControls) {
|
|
1383
1439
|
thinkingConfig.thinkingLevel = thinkingLevel;
|
|
1384
1440
|
}
|
|
1385
1441
|
const searchTypes = {};
|
|
@@ -1695,7 +1751,7 @@ class GeminiProvider extends base_provider_js_1.BaseModelProvider {
|
|
|
1695
1751
|
}
|
|
1696
1752
|
}
|
|
1697
1753
|
getImageCost(model, imageSize) {
|
|
1698
|
-
if (model
|
|
1754
|
+
if (isGemini31FlashImageModel(model)) {
|
|
1699
1755
|
if (imageSize === '4K')
|
|
1700
1756
|
return 0.151;
|
|
1701
1757
|
if (imageSize === '2K')
|
|
@@ -1704,10 +1760,13 @@ class GeminiProvider extends base_provider_js_1.BaseModelProvider {
|
|
|
1704
1760
|
return 0.045;
|
|
1705
1761
|
return 0.067;
|
|
1706
1762
|
}
|
|
1707
|
-
else if (model
|
|
1763
|
+
else if (isGemini31FlashLiteImageModel(model)) {
|
|
1764
|
+
return 0.0336;
|
|
1765
|
+
}
|
|
1766
|
+
else if (isGemini25FlashImageModel(model)) {
|
|
1708
1767
|
return 0.039;
|
|
1709
1768
|
}
|
|
1710
|
-
else if (model
|
|
1769
|
+
else if (isGemini3ProImageModel(model)) {
|
|
1711
1770
|
if (imageSize === '4K')
|
|
1712
1771
|
return 0.24;
|
|
1713
1772
|
return 0.134;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../model_providers/gemini.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAGH,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,mBAAmB,EAInB,mBAAmB,EAEnB,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,WAAW,EAOd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AA6NvD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAO1D;AAmCD,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzD;
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../model_providers/gemini.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAGH,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,mBAAmB,EAInB,mBAAmB,EAEnB,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,WAAW,EAOd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AA6NvD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAO1D;AAmCD,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzD;AA8hBD,qBAAa,cAAe,SAAQ,iBAAiB;IACjD,OAAO,CAAC,OAAO,CAAC,CAAc;IAC9B,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,MAAM,CAAC,EAAE,MAAM;IAS3B,OAAO,KAAK,MAAM,GAejB;IASK,eAAe,CACjB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,eAAe,EACtB,IAAI,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;YAmKlB,2BAA2B;IA+BnC,oBAAoB,CACvB,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,eAAe,EACtB,SAAS,CAAC,EAAE,MAAM,GACnB,cAAc,CAAC,mBAAmB,CAAC;IAukBhC,WAAW,CACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,eAAe,EACtB,IAAI,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,MAAM,EAAE,CAAC;IAwkBpB,OAAO,CAAC,YAAY;IAsCd,WAAW,CACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,eAAe,EACtB,IAAI,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;IAgMpD,OAAO,CAAC,gBAAgB;IA6DjB,mBAAmB,CACtB,KAAK,EAAE,wBAAwB,EAC/B,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,iBAAiB,GACzB,cAAc,CAAC,kBAAkB,CAAC;IA6S/B,iBAAiB,CACnB,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,WAAW,CAAC;CAyB1B;AAyfD,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
|