@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.
Files changed (132) hide show
  1. package/README.md +45 -1
  2. package/dist/cjs/core/ensemble_image.cjs +92 -6
  3. package/dist/cjs/core/ensemble_image.d.ts +2 -2
  4. package/dist/cjs/core/ensemble_image.d.ts.map +1 -1
  5. package/dist/cjs/core/ensemble_image.js.map +1 -1
  6. package/dist/cjs/data/model_data.cjs +668 -94
  7. package/dist/cjs/data/model_data.d.ts.map +1 -1
  8. package/dist/cjs/data/model_data.js.map +1 -1
  9. package/dist/cjs/model_providers/bytedance.cjs +202 -0
  10. package/dist/cjs/model_providers/bytedance.d.ts +9 -0
  11. package/dist/cjs/model_providers/bytedance.d.ts.map +1 -0
  12. package/dist/cjs/model_providers/bytedance.js.map +1 -0
  13. package/dist/cjs/model_providers/fal.cjs +97 -0
  14. package/dist/cjs/model_providers/fal.d.ts +10 -0
  15. package/dist/cjs/model_providers/fal.d.ts.map +1 -0
  16. package/dist/cjs/model_providers/fal.js.map +1 -0
  17. package/dist/cjs/model_providers/fireworks.cjs +193 -0
  18. package/dist/cjs/model_providers/fireworks.d.ts +12 -0
  19. package/dist/cjs/model_providers/fireworks.d.ts.map +1 -0
  20. package/dist/cjs/model_providers/fireworks.js.map +1 -0
  21. package/dist/cjs/model_providers/gemini.cjs +141 -7
  22. package/dist/cjs/model_providers/gemini.d.ts.map +1 -1
  23. package/dist/cjs/model_providers/gemini.js.map +1 -1
  24. package/dist/cjs/model_providers/ideogram.cjs +136 -0
  25. package/dist/cjs/model_providers/ideogram.d.ts +9 -0
  26. package/dist/cjs/model_providers/ideogram.d.ts.map +1 -0
  27. package/dist/cjs/model_providers/ideogram.js.map +1 -0
  28. package/dist/cjs/model_providers/luma.cjs +150 -0
  29. package/dist/cjs/model_providers/luma.d.ts +9 -0
  30. package/dist/cjs/model_providers/luma.d.ts.map +1 -0
  31. package/dist/cjs/model_providers/luma.js.map +1 -0
  32. package/dist/cjs/model_providers/midjourney.cjs +134 -0
  33. package/dist/cjs/model_providers/midjourney.d.ts +9 -0
  34. package/dist/cjs/model_providers/midjourney.d.ts.map +1 -0
  35. package/dist/cjs/model_providers/midjourney.js.map +1 -0
  36. package/dist/cjs/model_providers/model_provider.cjs +60 -0
  37. package/dist/cjs/model_providers/model_provider.d.ts.map +1 -1
  38. package/dist/cjs/model_providers/model_provider.js.map +1 -1
  39. package/dist/cjs/model_providers/openai.cjs +24 -14
  40. package/dist/cjs/model_providers/openai.d.ts.map +1 -1
  41. package/dist/cjs/model_providers/openai.js.map +1 -1
  42. package/dist/cjs/model_providers/runway.cjs +145 -0
  43. package/dist/cjs/model_providers/runway.d.ts +9 -0
  44. package/dist/cjs/model_providers/runway.d.ts.map +1 -0
  45. package/dist/cjs/model_providers/runway.js.map +1 -0
  46. package/dist/cjs/model_providers/stability.cjs +130 -0
  47. package/dist/cjs/model_providers/stability.d.ts +10 -0
  48. package/dist/cjs/model_providers/stability.d.ts.map +1 -0
  49. package/dist/cjs/model_providers/stability.js.map +1 -0
  50. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  51. package/dist/cjs/types/types.d.ts +11 -3
  52. package/dist/cjs/types/types.d.ts.map +1 -1
  53. package/dist/cjs/utils/cost_tracker.cjs +3 -0
  54. package/dist/cjs/utils/cost_tracker.d.ts +1 -0
  55. package/dist/cjs/utils/cost_tracker.d.ts.map +1 -1
  56. package/dist/cjs/utils/cost_tracker.js.map +1 -1
  57. package/dist/cjs/utils/ensemble_result.d.ts +1 -1
  58. package/dist/cjs/utils/ensemble_result.d.ts.map +1 -1
  59. package/dist/cjs/utils/fetch_with_timeout.cjs +28 -0
  60. package/dist/cjs/utils/fetch_with_timeout.d.ts +2 -0
  61. package/dist/cjs/utils/fetch_with_timeout.d.ts.map +1 -0
  62. package/dist/cjs/utils/fetch_with_timeout.js.map +1 -0
  63. package/dist/cjs/utils/image_utils.cjs +23 -0
  64. package/dist/cjs/utils/image_utils.d.ts +5 -0
  65. package/dist/cjs/utils/image_utils.d.ts.map +1 -1
  66. package/dist/cjs/utils/image_utils.js.map +1 -1
  67. package/dist/core/ensemble_image.d.ts +2 -2
  68. package/dist/core/ensemble_image.d.ts.map +1 -1
  69. package/dist/core/ensemble_image.js +59 -6
  70. package/dist/core/ensemble_image.js.map +1 -1
  71. package/dist/data/model_data.d.ts.map +1 -1
  72. package/dist/data/model_data.js +668 -94
  73. package/dist/data/model_data.js.map +1 -1
  74. package/dist/model_providers/bytedance.d.ts +9 -0
  75. package/dist/model_providers/bytedance.d.ts.map +1 -0
  76. package/dist/model_providers/bytedance.js +198 -0
  77. package/dist/model_providers/bytedance.js.map +1 -0
  78. package/dist/model_providers/fal.d.ts +10 -0
  79. package/dist/model_providers/fal.d.ts.map +1 -0
  80. package/dist/model_providers/fal.js +93 -0
  81. package/dist/model_providers/fal.js.map +1 -0
  82. package/dist/model_providers/fireworks.d.ts +12 -0
  83. package/dist/model_providers/fireworks.d.ts.map +1 -0
  84. package/dist/model_providers/fireworks.js +189 -0
  85. package/dist/model_providers/fireworks.js.map +1 -0
  86. package/dist/model_providers/gemini.d.ts.map +1 -1
  87. package/dist/model_providers/gemini.js +141 -7
  88. package/dist/model_providers/gemini.js.map +1 -1
  89. package/dist/model_providers/ideogram.d.ts +9 -0
  90. package/dist/model_providers/ideogram.d.ts.map +1 -0
  91. package/dist/model_providers/ideogram.js +132 -0
  92. package/dist/model_providers/ideogram.js.map +1 -0
  93. package/dist/model_providers/luma.d.ts +9 -0
  94. package/dist/model_providers/luma.d.ts.map +1 -0
  95. package/dist/model_providers/luma.js +146 -0
  96. package/dist/model_providers/luma.js.map +1 -0
  97. package/dist/model_providers/midjourney.d.ts +9 -0
  98. package/dist/model_providers/midjourney.d.ts.map +1 -0
  99. package/dist/model_providers/midjourney.js +130 -0
  100. package/dist/model_providers/midjourney.js.map +1 -0
  101. package/dist/model_providers/model_provider.d.ts.map +1 -1
  102. package/dist/model_providers/model_provider.js +60 -0
  103. package/dist/model_providers/model_provider.js.map +1 -1
  104. package/dist/model_providers/openai.d.ts.map +1 -1
  105. package/dist/model_providers/openai.js +24 -14
  106. package/dist/model_providers/openai.js.map +1 -1
  107. package/dist/model_providers/runway.d.ts +9 -0
  108. package/dist/model_providers/runway.d.ts.map +1 -0
  109. package/dist/model_providers/runway.js +141 -0
  110. package/dist/model_providers/runway.js.map +1 -0
  111. package/dist/model_providers/stability.d.ts +10 -0
  112. package/dist/model_providers/stability.d.ts.map +1 -0
  113. package/dist/model_providers/stability.js +126 -0
  114. package/dist/model_providers/stability.js.map +1 -0
  115. package/dist/tsconfig.tsbuildinfo +1 -1
  116. package/dist/types/types.d.ts +11 -3
  117. package/dist/types/types.d.ts.map +1 -1
  118. package/dist/utils/cost_tracker.d.ts +1 -0
  119. package/dist/utils/cost_tracker.d.ts.map +1 -1
  120. package/dist/utils/cost_tracker.js +3 -0
  121. package/dist/utils/cost_tracker.js.map +1 -1
  122. package/dist/utils/ensemble_result.d.ts +1 -1
  123. package/dist/utils/ensemble_result.d.ts.map +1 -1
  124. package/dist/utils/fetch_with_timeout.d.ts +2 -0
  125. package/dist/utils/fetch_with_timeout.d.ts.map +1 -0
  126. package/dist/utils/fetch_with_timeout.js +25 -0
  127. package/dist/utils/fetch_with_timeout.js.map +1 -0
  128. package/dist/utils/image_utils.d.ts +5 -0
  129. package/dist/utils/image_utils.d.ts.map +1 -1
  130. package/dist/utils/image_utils.js +22 -0
  131. package/dist/utils/image_utils.js.map +1 -1
  132. 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: 'v1alpha' },
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 || 'imagen-3.0-generate-002';
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: 'v1alpha' },
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,GAcjB;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;IA+FpB,OAAO,CAAC,YAAY;IAmBd,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"}
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"}