@just-every/ensemble 0.2.160 → 0.2.162
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 +45 -1
- package/dist/cjs/core/ensemble_image.cjs +92 -6
- package/dist/cjs/core/ensemble_image.d.ts +2 -2
- package/dist/cjs/core/ensemble_image.d.ts.map +1 -1
- package/dist/cjs/core/ensemble_image.js.map +1 -1
- package/dist/cjs/data/model_data.cjs +668 -94
- 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/bytedance.cjs +202 -0
- package/dist/cjs/model_providers/bytedance.d.ts +9 -0
- package/dist/cjs/model_providers/bytedance.d.ts.map +1 -0
- package/dist/cjs/model_providers/bytedance.js.map +1 -0
- package/dist/cjs/model_providers/fal.cjs +97 -0
- package/dist/cjs/model_providers/fal.d.ts +10 -0
- package/dist/cjs/model_providers/fal.d.ts.map +1 -0
- package/dist/cjs/model_providers/fal.js.map +1 -0
- package/dist/cjs/model_providers/fireworks.cjs +193 -0
- package/dist/cjs/model_providers/fireworks.d.ts +12 -0
- package/dist/cjs/model_providers/fireworks.d.ts.map +1 -0
- package/dist/cjs/model_providers/fireworks.js.map +1 -0
- package/dist/cjs/model_providers/gemini.cjs +141 -7
- 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/ideogram.cjs +136 -0
- package/dist/cjs/model_providers/ideogram.d.ts +9 -0
- package/dist/cjs/model_providers/ideogram.d.ts.map +1 -0
- package/dist/cjs/model_providers/ideogram.js.map +1 -0
- package/dist/cjs/model_providers/luma.cjs +150 -0
- package/dist/cjs/model_providers/luma.d.ts +9 -0
- package/dist/cjs/model_providers/luma.d.ts.map +1 -0
- package/dist/cjs/model_providers/luma.js.map +1 -0
- package/dist/cjs/model_providers/midjourney.cjs +134 -0
- package/dist/cjs/model_providers/midjourney.d.ts +9 -0
- package/dist/cjs/model_providers/midjourney.d.ts.map +1 -0
- package/dist/cjs/model_providers/midjourney.js.map +1 -0
- package/dist/cjs/model_providers/model_provider.cjs +60 -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 +24 -14
- package/dist/cjs/model_providers/openai.d.ts.map +1 -1
- package/dist/cjs/model_providers/openai.js.map +1 -1
- package/dist/cjs/model_providers/runway.cjs +145 -0
- package/dist/cjs/model_providers/runway.d.ts +9 -0
- package/dist/cjs/model_providers/runway.d.ts.map +1 -0
- package/dist/cjs/model_providers/runway.js.map +1 -0
- package/dist/cjs/model_providers/stability.cjs +130 -0
- package/dist/cjs/model_providers/stability.d.ts +10 -0
- package/dist/cjs/model_providers/stability.d.ts.map +1 -0
- package/dist/cjs/model_providers/stability.js.map +1 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/cjs/types/types.d.ts +11 -3
- package/dist/cjs/types/types.d.ts.map +1 -1
- package/dist/cjs/utils/cost_tracker.cjs +3 -0
- package/dist/cjs/utils/cost_tracker.d.ts +1 -0
- package/dist/cjs/utils/cost_tracker.d.ts.map +1 -1
- package/dist/cjs/utils/cost_tracker.js.map +1 -1
- package/dist/cjs/utils/ensemble_result.d.ts +1 -1
- package/dist/cjs/utils/ensemble_result.d.ts.map +1 -1
- package/dist/cjs/utils/fetch_with_timeout.cjs +28 -0
- package/dist/cjs/utils/fetch_with_timeout.d.ts +2 -0
- package/dist/cjs/utils/fetch_with_timeout.d.ts.map +1 -0
- package/dist/cjs/utils/fetch_with_timeout.js.map +1 -0
- package/dist/cjs/utils/image_utils.cjs +23 -0
- package/dist/cjs/utils/image_utils.d.ts +5 -0
- package/dist/cjs/utils/image_utils.d.ts.map +1 -1
- package/dist/cjs/utils/image_utils.js.map +1 -1
- package/dist/core/ensemble_image.d.ts +2 -2
- package/dist/core/ensemble_image.d.ts.map +1 -1
- package/dist/core/ensemble_image.js +59 -6
- package/dist/core/ensemble_image.js.map +1 -1
- package/dist/data/model_data.d.ts.map +1 -1
- package/dist/data/model_data.js +668 -94
- package/dist/data/model_data.js.map +1 -1
- package/dist/model_providers/bytedance.d.ts +9 -0
- package/dist/model_providers/bytedance.d.ts.map +1 -0
- package/dist/model_providers/bytedance.js +198 -0
- package/dist/model_providers/bytedance.js.map +1 -0
- package/dist/model_providers/fal.d.ts +10 -0
- package/dist/model_providers/fal.d.ts.map +1 -0
- package/dist/model_providers/fal.js +93 -0
- package/dist/model_providers/fal.js.map +1 -0
- package/dist/model_providers/fireworks.d.ts +12 -0
- package/dist/model_providers/fireworks.d.ts.map +1 -0
- package/dist/model_providers/fireworks.js +189 -0
- package/dist/model_providers/fireworks.js.map +1 -0
- package/dist/model_providers/gemini.d.ts.map +1 -1
- package/dist/model_providers/gemini.js +141 -7
- package/dist/model_providers/gemini.js.map +1 -1
- package/dist/model_providers/ideogram.d.ts +9 -0
- package/dist/model_providers/ideogram.d.ts.map +1 -0
- package/dist/model_providers/ideogram.js +132 -0
- package/dist/model_providers/ideogram.js.map +1 -0
- package/dist/model_providers/luma.d.ts +9 -0
- package/dist/model_providers/luma.d.ts.map +1 -0
- package/dist/model_providers/luma.js +146 -0
- package/dist/model_providers/luma.js.map +1 -0
- package/dist/model_providers/midjourney.d.ts +9 -0
- package/dist/model_providers/midjourney.d.ts.map +1 -0
- package/dist/model_providers/midjourney.js +130 -0
- package/dist/model_providers/midjourney.js.map +1 -0
- package/dist/model_providers/model_provider.d.ts.map +1 -1
- package/dist/model_providers/model_provider.js +60 -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 +24 -14
- package/dist/model_providers/openai.js.map +1 -1
- package/dist/model_providers/runway.d.ts +9 -0
- package/dist/model_providers/runway.d.ts.map +1 -0
- package/dist/model_providers/runway.js +141 -0
- package/dist/model_providers/runway.js.map +1 -0
- package/dist/model_providers/stability.d.ts +10 -0
- package/dist/model_providers/stability.d.ts.map +1 -0
- package/dist/model_providers/stability.js +126 -0
- package/dist/model_providers/stability.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/types.d.ts +11 -3
- package/dist/types/types.d.ts.map +1 -1
- package/dist/utils/cost_tracker.d.ts +1 -0
- package/dist/utils/cost_tracker.d.ts.map +1 -1
- package/dist/utils/cost_tracker.js +3 -0
- package/dist/utils/cost_tracker.js.map +1 -1
- package/dist/utils/ensemble_result.d.ts +1 -1
- package/dist/utils/ensemble_result.d.ts.map +1 -1
- package/dist/utils/fetch_with_timeout.d.ts +2 -0
- package/dist/utils/fetch_with_timeout.d.ts.map +1 -0
- package/dist/utils/fetch_with_timeout.js +25 -0
- package/dist/utils/fetch_with_timeout.js.map +1 -0
- package/dist/utils/image_utils.d.ts +5 -0
- package/dist/utils/image_utils.d.ts.map +1 -1
- package/dist/utils/image_utils.js +22 -0
- package/dist/utils/image_utils.js.map +1 -1
- package/package.json +122 -114
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fireworksProvider = exports.FireworksProvider = void 0;
|
|
4
|
+
const base_provider_js_1 = require("./base_provider.cjs");
|
|
5
|
+
const cost_tracker_js_1 = require("../utils/cost_tracker.cjs");
|
|
6
|
+
const fetch_with_timeout_js_1 = require("../utils/fetch_with_timeout.cjs");
|
|
7
|
+
const llm_logger_js_1 = require("../utils/llm_logger.cjs");
|
|
8
|
+
const FW_BASE = 'https://api.fireworks.ai';
|
|
9
|
+
function mapAspect(size) {
|
|
10
|
+
if (!size)
|
|
11
|
+
return undefined;
|
|
12
|
+
const s = String(size);
|
|
13
|
+
if (s === 'square' || s === '1024x1024' || s === '512x512' || s === '256x256')
|
|
14
|
+
return '1:1';
|
|
15
|
+
if (s === 'landscape' || s === '1792x1024' || s === '1536x1024')
|
|
16
|
+
return '16:9';
|
|
17
|
+
if (s === 'portrait' || s === '1024x1792' || s === '1024x1536')
|
|
18
|
+
return '9:16';
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
class FireworksProvider extends base_provider_js_1.BaseModelProvider {
|
|
22
|
+
constructor() {
|
|
23
|
+
super('fireworks');
|
|
24
|
+
}
|
|
25
|
+
async *createResponseStream() {
|
|
26
|
+
throw new Error('Fireworks provider does not support text streaming');
|
|
27
|
+
}
|
|
28
|
+
isKontext(model) {
|
|
29
|
+
return model.includes('kontext');
|
|
30
|
+
}
|
|
31
|
+
fireworksModelId(model) {
|
|
32
|
+
const m = model.toLowerCase();
|
|
33
|
+
if (m.includes('kontext') && m.includes('max'))
|
|
34
|
+
return 'flux-kontext-max';
|
|
35
|
+
if (m.includes('kontext'))
|
|
36
|
+
return 'flux-kontext-pro';
|
|
37
|
+
if (m.includes('pro'))
|
|
38
|
+
return 'flux-pro-1.1';
|
|
39
|
+
if (m.includes('schnell'))
|
|
40
|
+
return 'flux-schnell';
|
|
41
|
+
return model;
|
|
42
|
+
}
|
|
43
|
+
async createImage(prompt, model, agent, opts = {}) {
|
|
44
|
+
const apiKey = process.env.FIREWORKS_API_KEY;
|
|
45
|
+
const falKey = process.env.FAL_KEY;
|
|
46
|
+
const requestId = (0, llm_logger_js_1.log_llm_request)(agent.agent_id || 'default', 'fireworks', model, { prompt, opts }, new Date());
|
|
47
|
+
try {
|
|
48
|
+
if (!apiKey)
|
|
49
|
+
throw new Error('FIREWORKS_API_KEY is not set');
|
|
50
|
+
const aspect_ratio = mapAspect(opts.size);
|
|
51
|
+
const modelId = this.fireworksModelId(model);
|
|
52
|
+
if (this.isKontext(modelId)) {
|
|
53
|
+
const createUrl = `${FW_BASE}/inference/v1/workflows/accounts/fireworks/models/${modelId}`;
|
|
54
|
+
let input_image;
|
|
55
|
+
if (opts?.source_images) {
|
|
56
|
+
const s = Array.isArray(opts.source_images) ? opts.source_images[0] : opts.source_images;
|
|
57
|
+
const v = typeof s === 'string' ? s : s?.data || s;
|
|
58
|
+
if (typeof v === 'string')
|
|
59
|
+
input_image = v;
|
|
60
|
+
}
|
|
61
|
+
const res = await (0, fetch_with_timeout_js_1.fetchWithTimeout)(createUrl, {
|
|
62
|
+
method: 'POST',
|
|
63
|
+
headers: {
|
|
64
|
+
'Content-Type': 'application/json',
|
|
65
|
+
Authorization: `Bearer ${apiKey}`,
|
|
66
|
+
},
|
|
67
|
+
body: JSON.stringify({ prompt, aspect_ratio: aspect_ratio, output_format: 'png', ...(input_image ? { input_image } : {}) }),
|
|
68
|
+
}, 60000);
|
|
69
|
+
if (!res.ok) {
|
|
70
|
+
if ((res.status === 401 || res.status === 403) && falKey) {
|
|
71
|
+
return this.fallbackToFAL(prompt, modelId, opts);
|
|
72
|
+
}
|
|
73
|
+
throw new Error(`Fireworks Kontext create failed: ${res.status} ${await res.text()}`);
|
|
74
|
+
}
|
|
75
|
+
const data = await res.json();
|
|
76
|
+
const id = data.request_id || data.id;
|
|
77
|
+
if (!id)
|
|
78
|
+
throw new Error('Fireworks Kontext: missing request id');
|
|
79
|
+
const pollUrl = `${FW_BASE}/inference/v1/workflows/accounts/fireworks/models/${modelId}/get_result`;
|
|
80
|
+
const started = Date.now();
|
|
81
|
+
const timeoutMs = 240000;
|
|
82
|
+
while (true) {
|
|
83
|
+
const r = await (0, fetch_with_timeout_js_1.fetchWithTimeout)(pollUrl, {
|
|
84
|
+
method: 'POST',
|
|
85
|
+
headers: {
|
|
86
|
+
'Content-Type': 'application/json',
|
|
87
|
+
Authorization: `Bearer ${apiKey}`,
|
|
88
|
+
},
|
|
89
|
+
body: JSON.stringify({ id }),
|
|
90
|
+
}, 60000);
|
|
91
|
+
if (!r.ok)
|
|
92
|
+
throw new Error(`Fireworks Kontext poll failed: ${r.status} ${await r.text()}`);
|
|
93
|
+
const out = await r.json();
|
|
94
|
+
const status = String(out.status || '').toLowerCase();
|
|
95
|
+
if (status.includes('ready') || status === 'succeeded' || status === 'completed') {
|
|
96
|
+
const urls = [];
|
|
97
|
+
if (Array.isArray(out.result?.images)) {
|
|
98
|
+
for (const im of out.result.images)
|
|
99
|
+
if (im?.url)
|
|
100
|
+
urls.push(im.url);
|
|
101
|
+
}
|
|
102
|
+
if (out.result?.image?.url)
|
|
103
|
+
urls.push(out.result.image.url);
|
|
104
|
+
if (out.result?.url)
|
|
105
|
+
urls.push(out.result.url);
|
|
106
|
+
if (out.result?.sample)
|
|
107
|
+
urls.push(out.result.sample);
|
|
108
|
+
if (!urls.length && out.result?.image_base64) {
|
|
109
|
+
urls.push(`data:image/png;base64,${out.result.image_base64}`);
|
|
110
|
+
}
|
|
111
|
+
if (!urls.length && typeof out.result === 'string' && /^https?:\/\//.test(out.result)) {
|
|
112
|
+
urls.push(out.result);
|
|
113
|
+
}
|
|
114
|
+
if (!urls.length)
|
|
115
|
+
throw new Error('Fireworks Kontext: no image result found');
|
|
116
|
+
cost_tracker_js_1.costTracker.addUsage({ model, image_count: urls.length, request_id: opts?.request_id, metadata: { source: 'fireworks', model: modelId } });
|
|
117
|
+
return urls;
|
|
118
|
+
}
|
|
119
|
+
if (status.includes('error') || status.includes('failed')) {
|
|
120
|
+
throw new Error(`Fireworks Kontext failed: ${status}`);
|
|
121
|
+
}
|
|
122
|
+
if (Date.now() - started > timeoutMs)
|
|
123
|
+
throw new Error('Fireworks Kontext timed out');
|
|
124
|
+
await new Promise(r2 => setTimeout(r2, 1500));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
return await this.createImage(prompt, 'flux-kontext-pro', agent, opts);
|
|
129
|
+
}
|
|
130
|
+
catch (e) {
|
|
131
|
+
if (falKey)
|
|
132
|
+
return this.fallbackToFAL(prompt, model, opts);
|
|
133
|
+
throw e;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
catch (err) {
|
|
137
|
+
(0, llm_logger_js_1.log_llm_error)(requestId, err);
|
|
138
|
+
if (process.env.FAL_KEY) {
|
|
139
|
+
try {
|
|
140
|
+
const urls = await this.fallbackToFAL(prompt, model, opts);
|
|
141
|
+
(0, llm_logger_js_1.log_llm_response)(requestId, { ok: true, fallback: 'fal' });
|
|
142
|
+
return urls;
|
|
143
|
+
}
|
|
144
|
+
catch (_) {
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
throw err;
|
|
148
|
+
}
|
|
149
|
+
finally {
|
|
150
|
+
(0, llm_logger_js_1.log_llm_response)(requestId, { ok: true });
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
async fallbackToFAL(prompt, model, opts = {}) {
|
|
154
|
+
const lower = model.toLowerCase();
|
|
155
|
+
let endpoint = '';
|
|
156
|
+
if (lower.includes('schnell'))
|
|
157
|
+
endpoint = 'fal-ai/flux/schnell';
|
|
158
|
+
else if (lower.includes('dev'))
|
|
159
|
+
endpoint = 'fal-ai/flux/dev';
|
|
160
|
+
else if (lower.includes('pro') || lower.includes('kontext'))
|
|
161
|
+
endpoint = 'fal-ai/flux-pro/kontext';
|
|
162
|
+
else
|
|
163
|
+
endpoint = 'fal-ai/flux/schnell';
|
|
164
|
+
const res = await fetch(`https://fal.run/${endpoint}`, {
|
|
165
|
+
method: 'POST',
|
|
166
|
+
headers: {
|
|
167
|
+
'Content-Type': 'application/json',
|
|
168
|
+
Authorization: `Key ${process.env.FAL_KEY}`,
|
|
169
|
+
},
|
|
170
|
+
body: JSON.stringify({
|
|
171
|
+
prompt,
|
|
172
|
+
input: { prompt },
|
|
173
|
+
}),
|
|
174
|
+
});
|
|
175
|
+
if (!res.ok)
|
|
176
|
+
throw new Error(`FAL fallback failed: ${res.status} ${await res.text()}`);
|
|
177
|
+
const data = await res.json();
|
|
178
|
+
const images = [];
|
|
179
|
+
const arr = data?.images || data?.output?.images || [];
|
|
180
|
+
for (const im of arr)
|
|
181
|
+
if (im?.url)
|
|
182
|
+
images.push(im.url);
|
|
183
|
+
if (!images.length && data?.url)
|
|
184
|
+
images.push(data.url);
|
|
185
|
+
if (!images.length)
|
|
186
|
+
throw new Error('FAL fallback: no image url');
|
|
187
|
+
cost_tracker_js_1.costTracker.addUsage({ model, image_count: images.length, request_id: opts?.request_id, metadata: { source: 'fal-fallback' } });
|
|
188
|
+
return images;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
exports.FireworksProvider = FireworksProvider;
|
|
192
|
+
exports.fireworksProvider = new FireworksProvider();
|
|
193
|
+
//# sourceMappingURL=fireworks.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseModelProvider } from "./base_provider.cjs";
|
|
2
|
+
import type { AgentDefinition, ImageGenerationOpts, ProviderStreamEvent } from "../types/types.cjs";
|
|
3
|
+
export declare class FireworksProvider extends BaseModelProvider {
|
|
4
|
+
constructor();
|
|
5
|
+
createResponseStream(): AsyncGenerator<ProviderStreamEvent>;
|
|
6
|
+
private isKontext;
|
|
7
|
+
private fireworksModelId;
|
|
8
|
+
createImage(prompt: string, model: string, agent: AgentDefinition, opts?: ImageGenerationOpts): Promise<string[]>;
|
|
9
|
+
private fallbackToFAL;
|
|
10
|
+
}
|
|
11
|
+
export declare const fireworksProvider: FireworksProvider;
|
|
12
|
+
//# sourceMappingURL=fireworks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fireworks.d.ts","sourceRoot":"","sources":["../../../model_providers/fireworks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAoBnG,qBAAa,iBAAkB,SAAQ,iBAAiB;;IAK7C,oBAAoB,IAAI,cAAc,CAAC,mBAAmB,CAAC;IAIlE,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,gBAAgB;IAUlB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAgH7G,aAAa;CA8B9B;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fireworks.js","sourceRoot":"","sources":["../../../model_providers/fireworks.ts"],"names":[],"mappings":"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"}
|
|
@@ -356,7 +356,7 @@ class GeminiProvider extends base_provider_js_1.BaseModelProvider {
|
|
|
356
356
|
this._client = new genai_1.GoogleGenAI({
|
|
357
357
|
apiKey: apiKey,
|
|
358
358
|
vertexai: false,
|
|
359
|
-
httpOptions: { apiVersion: '
|
|
359
|
+
httpOptions: { apiVersion: 'v1beta' },
|
|
360
360
|
});
|
|
361
361
|
}
|
|
362
362
|
return this._client;
|
|
@@ -817,16 +817,143 @@ class GeminiProvider extends base_provider_js_1.BaseModelProvider {
|
|
|
817
817
|
const requestId = `req_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;
|
|
818
818
|
let finalRequestId = requestId;
|
|
819
819
|
try {
|
|
820
|
-
model = model || '
|
|
820
|
+
model = model || 'gemini-2.5-flash-image-preview';
|
|
821
821
|
const numberOfImages = opts?.n || 1;
|
|
822
822
|
let aspectRatio = '1:1';
|
|
823
|
-
if (opts?.size === 'landscape')
|
|
823
|
+
if (opts?.size === 'landscape')
|
|
824
824
|
aspectRatio = '16:9';
|
|
825
|
-
|
|
826
|
-
else if (opts?.size === 'portrait') {
|
|
825
|
+
else if (opts?.size === 'portrait')
|
|
827
826
|
aspectRatio = '9:16';
|
|
828
|
-
}
|
|
829
827
|
console.log(`[Gemini] Generating ${numberOfImages} image(s) with model ${model}, prompt: "${prompt.substring(0, 100)}${prompt.length > 100 ? '...' : ''}"`);
|
|
828
|
+
if (model.includes('gemini-2.5-flash-image-preview') || model.includes('gemini-3-pro-image-preview')) {
|
|
829
|
+
const constraints = [];
|
|
830
|
+
const sizeMap = {
|
|
831
|
+
square: { ar: '1:1', px: '1024x1024' },
|
|
832
|
+
landscape: { ar: '16:9' },
|
|
833
|
+
portrait: { ar: '9:16' },
|
|
834
|
+
'256x256': { ar: '1:1', px: '256x256' },
|
|
835
|
+
'512x512': { ar: '1:1', px: '512x512' },
|
|
836
|
+
'1024x1024': { ar: '1:1', px: '1024x1024' },
|
|
837
|
+
'1536x1024': { ar: '3:2', px: '1536x1024' },
|
|
838
|
+
'1024x1536': { ar: '2:3', px: '1024x1536' },
|
|
839
|
+
'1792x1024': { ar: '16:9', px: '1792x1024' },
|
|
840
|
+
'1024x1792': { ar: '9:16', px: '1024x1792' },
|
|
841
|
+
};
|
|
842
|
+
const sm = opts?.size ? sizeMap[String(opts.size)] : undefined;
|
|
843
|
+
if (sm?.ar)
|
|
844
|
+
constraints.push(`Aspect ratio: ${sm.ar}.`);
|
|
845
|
+
if (sm?.px)
|
|
846
|
+
constraints.push(`Target size: ${sm.px} pixels (approximate).`);
|
|
847
|
+
if (opts?.style)
|
|
848
|
+
constraints.push(`Style: ${opts.style}.`);
|
|
849
|
+
if (opts?.background)
|
|
850
|
+
constraints.push(`Background: ${opts.background} (use transparency if supported).`);
|
|
851
|
+
const constraintText = constraints.length
|
|
852
|
+
? `\n\nImage constraints (please prioritize):\n- ${constraints.join('\n- ')}`
|
|
853
|
+
: '';
|
|
854
|
+
const makeOne = async () => {
|
|
855
|
+
const requestParams = {
|
|
856
|
+
model,
|
|
857
|
+
contents: [
|
|
858
|
+
{
|
|
859
|
+
role: 'user',
|
|
860
|
+
parts: [
|
|
861
|
+
...(Array.isArray(opts?.source_images)
|
|
862
|
+
? opts.source_images
|
|
863
|
+
.map((img) => typeof img === 'string' ? { _src: img } : img)
|
|
864
|
+
.map((it) => {
|
|
865
|
+
const src = it?.data || it?._src || it;
|
|
866
|
+
if (typeof src !== 'string')
|
|
867
|
+
return null;
|
|
868
|
+
if (src.startsWith('data:')) {
|
|
869
|
+
const m = /^data:([^;]+);base64,(.+)$/i.exec(src);
|
|
870
|
+
if (!m)
|
|
871
|
+
return null;
|
|
872
|
+
return {
|
|
873
|
+
inlineData: {
|
|
874
|
+
mimeType: m[1] || 'image/png',
|
|
875
|
+
data: m[2],
|
|
876
|
+
},
|
|
877
|
+
};
|
|
878
|
+
}
|
|
879
|
+
return {
|
|
880
|
+
fileData: {
|
|
881
|
+
mimeType: 'image/*',
|
|
882
|
+
fileUri: src,
|
|
883
|
+
},
|
|
884
|
+
};
|
|
885
|
+
})
|
|
886
|
+
.filter(Boolean)
|
|
887
|
+
: typeof opts?.source_images === 'string'
|
|
888
|
+
? [
|
|
889
|
+
(() => {
|
|
890
|
+
const s = String(opts?.source_images);
|
|
891
|
+
if (s.startsWith('data:')) {
|
|
892
|
+
const m = /^data:([^;]+);base64,(.+)$/i.exec(s);
|
|
893
|
+
return m
|
|
894
|
+
? { inlineData: { mimeType: m[1] || 'image/png', data: m[2] } }
|
|
895
|
+
: null;
|
|
896
|
+
}
|
|
897
|
+
return { fileData: { mimeType: 'image/*', fileUri: s } };
|
|
898
|
+
})(),
|
|
899
|
+
].filter(Boolean)
|
|
900
|
+
: []),
|
|
901
|
+
{ text: `${prompt}${constraintText}` },
|
|
902
|
+
],
|
|
903
|
+
},
|
|
904
|
+
],
|
|
905
|
+
config: {
|
|
906
|
+
responseModalities: [genai_1.Modality.IMAGE, genai_1.Modality.TEXT],
|
|
907
|
+
},
|
|
908
|
+
};
|
|
909
|
+
const loggedRequestId = (0, llm_logger_js_1.log_llm_request)(agent.agent_id || 'default', 'gemini', model, requestParams, new Date(), requestId, agent.tags);
|
|
910
|
+
finalRequestId = loggedRequestId;
|
|
911
|
+
const response = await this.client.models.generateContentStream(requestParams);
|
|
912
|
+
const images = [];
|
|
913
|
+
for await (const chunk of response) {
|
|
914
|
+
if (!chunk.candidates)
|
|
915
|
+
continue;
|
|
916
|
+
for (const cand of chunk.candidates) {
|
|
917
|
+
const parts = cand.content?.parts || [];
|
|
918
|
+
for (const part of parts) {
|
|
919
|
+
if (part.inlineData?.data) {
|
|
920
|
+
const mime = part.inlineData.mimeType || 'image/png';
|
|
921
|
+
images.push(`data:${mime};base64,${part.inlineData.data}`);
|
|
922
|
+
}
|
|
923
|
+
}
|
|
924
|
+
}
|
|
925
|
+
}
|
|
926
|
+
if (images.length > 0) {
|
|
927
|
+
cost_tracker_js_1.costTracker.addUsage({
|
|
928
|
+
model,
|
|
929
|
+
image_count: images.length,
|
|
930
|
+
request_id: opts?.request_id,
|
|
931
|
+
metadata: { cost_per_image: this.getImageCost(model) },
|
|
932
|
+
});
|
|
933
|
+
}
|
|
934
|
+
return images;
|
|
935
|
+
};
|
|
936
|
+
const allImages = [];
|
|
937
|
+
const calls = Math.max(1, numberOfImages);
|
|
938
|
+
for (let i = 0; i < calls; i++) {
|
|
939
|
+
const imgs = await makeOne();
|
|
940
|
+
for (const img of imgs) {
|
|
941
|
+
if (allImages.length < numberOfImages)
|
|
942
|
+
allImages.push(img);
|
|
943
|
+
}
|
|
944
|
+
if (allImages.length >= numberOfImages)
|
|
945
|
+
break;
|
|
946
|
+
}
|
|
947
|
+
if (allImages.length === 0) {
|
|
948
|
+
throw new Error('No images returned from Gemini 2.5 Flash Image model');
|
|
949
|
+
}
|
|
950
|
+
(0, llm_logger_js_1.log_llm_response)(finalRequestId, {
|
|
951
|
+
model,
|
|
952
|
+
image_count: allImages.length,
|
|
953
|
+
cost: allImages.length * this.getImageCost(model),
|
|
954
|
+
});
|
|
955
|
+
return allImages;
|
|
956
|
+
}
|
|
830
957
|
const requestParams = {
|
|
831
958
|
model,
|
|
832
959
|
prompt,
|
|
@@ -851,6 +978,7 @@ class GeminiProvider extends base_provider_js_1.BaseModelProvider {
|
|
|
851
978
|
cost_tracker_js_1.costTracker.addUsage({
|
|
852
979
|
model,
|
|
853
980
|
image_count: images.length,
|
|
981
|
+
request_id: opts?.request_id,
|
|
854
982
|
metadata: {
|
|
855
983
|
aspect_ratio: aspectRatio,
|
|
856
984
|
cost_per_image: perImageCost,
|
|
@@ -875,6 +1003,12 @@ class GeminiProvider extends base_provider_js_1.BaseModelProvider {
|
|
|
875
1003
|
}
|
|
876
1004
|
}
|
|
877
1005
|
getImageCost(model) {
|
|
1006
|
+
if (model.includes('gemini-2.5-flash-image-preview')) {
|
|
1007
|
+
return 0.039;
|
|
1008
|
+
}
|
|
1009
|
+
else if (model.includes('gemini-3-pro-image-preview')) {
|
|
1010
|
+
return 0.134;
|
|
1011
|
+
}
|
|
878
1012
|
if (model.includes('imagen-3')) {
|
|
879
1013
|
return 0.04;
|
|
880
1014
|
}
|
|
@@ -1074,7 +1208,7 @@ class GeminiProvider extends base_provider_js_1.BaseModelProvider {
|
|
|
1074
1208
|
try {
|
|
1075
1209
|
const ai = new genai_1.GoogleGenAI({
|
|
1076
1210
|
apiKey: this.apiKey,
|
|
1077
|
-
httpOptions: { apiVersion: '
|
|
1211
|
+
httpOptions: { apiVersion: 'v1beta' },
|
|
1078
1212
|
});
|
|
1079
1213
|
const realtimeInputConfig = opts?.realtimeInputConfig || {
|
|
1080
1214
|
automaticActivityDetection: {
|
|
@@ -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,EACnB,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;AAyNvD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAO1D;AAKD,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzD;AAsKD,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,
|
|
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,EACnB,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;AAyNvD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAO1D;AAKD,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzD;AAsKD,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;IAqbhC,WAAW,CACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,eAAe,EACtB,IAAI,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,MAAM,EAAE,CAAC;IAkPpB,OAAO,CAAC,YAAY;IA0Bd,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"}
|