@just-every/ensemble 0.2.210 → 0.2.211
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 +1 -1
- package/dist/cjs/model_providers/grok.cjs +142 -21
- package/dist/cjs/model_providers/grok.d.ts.map +1 -1
- package/dist/cjs/model_providers/grok.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/model_providers/grok.d.ts.map +1 -1
- package/dist/model_providers/grok.js +142 -21
- package/dist/model_providers/grok.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 +15 -15
package/README.md
CHANGED
|
@@ -38,7 +38,7 @@ See the [demo README](demo/README.md) for detailed information about each demo.
|
|
|
38
38
|
- OpenAI: Added GPT-5.2 (base + chat-latest + pro) and refreshed GPT-5.1/GPT-5/Codex pricing
|
|
39
39
|
- Anthropic: Claude 4.5 (Sonnet/Haiku, incl. 1M context) and Claude Opus 4.1
|
|
40
40
|
- Google: Gemini 3 (Pro/Flash/Ultra) and refreshed Gemini 2.5 pricing incl. image/TTS/native-audio
|
|
41
|
-
- xAI: Grok 4.1 Fast and Grok 4 Fast with tiered pricing; updated Grok 4/3/mini variants
|
|
41
|
+
- xAI: Grok 4.1 Fast and Grok 4 Fast with tiered pricing; updated Grok 4/3/mini variants plus Grok Imagine image generation/editing support (`grok-imagine-image`, `grok-imagine-image-pro`)
|
|
42
42
|
|
|
43
43
|
*Codex-Max pricing reflects current published rates and may change if OpenAI updates pricing.
|
|
44
44
|
|
|
@@ -1,9 +1,96 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.grokProvider = exports.GrokProvider = void 0;
|
|
4
|
+
const model_data_js_1 = require("../data/model_data.cjs");
|
|
4
5
|
const cost_tracker_js_1 = require("../utils/cost_tracker.cjs");
|
|
5
6
|
const llm_logger_js_1 = require("../utils/llm_logger.cjs");
|
|
6
7
|
const openai_chat_js_1 = require("./openai_chat.cjs");
|
|
8
|
+
function normalizeAspectRatio(size) {
|
|
9
|
+
if (!size)
|
|
10
|
+
return undefined;
|
|
11
|
+
const aspectMap = {
|
|
12
|
+
auto: 'auto',
|
|
13
|
+
square: '1:1',
|
|
14
|
+
landscape: '3:2',
|
|
15
|
+
portrait: '2:3',
|
|
16
|
+
'256x256': '1:1',
|
|
17
|
+
'512x512': '1:1',
|
|
18
|
+
'1024x1024': '1:1',
|
|
19
|
+
'1536x1024': '3:2',
|
|
20
|
+
'1024x1536': '2:3',
|
|
21
|
+
'1792x1024': '16:9',
|
|
22
|
+
'1024x1792': '9:16',
|
|
23
|
+
'1696x2528': '2:3',
|
|
24
|
+
'2048x2048': '1:1',
|
|
25
|
+
'1:1': '1:1',
|
|
26
|
+
'1:4': '1:4',
|
|
27
|
+
'1:8': '1:8',
|
|
28
|
+
'2:3': '2:3',
|
|
29
|
+
'3:2': '3:2',
|
|
30
|
+
'3:4': '3:4',
|
|
31
|
+
'4:1': '4:1',
|
|
32
|
+
'4:3': '4:3',
|
|
33
|
+
'4:5': '4:5',
|
|
34
|
+
'5:4': '5:4',
|
|
35
|
+
'8:1': '8:1',
|
|
36
|
+
'9:16': '9:16',
|
|
37
|
+
'9:19.5': '9:19.5',
|
|
38
|
+
'9:20': '9:20',
|
|
39
|
+
'16:9': '16:9',
|
|
40
|
+
'19.5:9': '19.5:9',
|
|
41
|
+
'20:9': '20:9',
|
|
42
|
+
'21:9': '21:9',
|
|
43
|
+
};
|
|
44
|
+
return aspectMap[String(size)];
|
|
45
|
+
}
|
|
46
|
+
function normalizeResolution(opts) {
|
|
47
|
+
if (opts.resolution === '1k' || opts.resolution === '2k') {
|
|
48
|
+
return opts.resolution;
|
|
49
|
+
}
|
|
50
|
+
if (opts.quality === 'hd' || opts.quality === 'high') {
|
|
51
|
+
return '2k';
|
|
52
|
+
}
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
function normalizeSourceImages(sourceImages) {
|
|
56
|
+
if (!sourceImages)
|
|
57
|
+
return [];
|
|
58
|
+
const rawImages = Array.isArray(sourceImages) ? sourceImages : [sourceImages];
|
|
59
|
+
return rawImages.map((sourceImage, index) => {
|
|
60
|
+
const url = typeof sourceImage === 'string'
|
|
61
|
+
? sourceImage
|
|
62
|
+
: typeof sourceImage === 'object' && sourceImage !== null && 'data' in sourceImage
|
|
63
|
+
? sourceImage.data
|
|
64
|
+
: undefined;
|
|
65
|
+
if (typeof url !== 'string' || url.length === 0) {
|
|
66
|
+
throw new Error(`xAI image editing source image ${index + 1} is missing image data.`);
|
|
67
|
+
}
|
|
68
|
+
if (!url.startsWith('http://') && !url.startsWith('https://') && !url.startsWith('data:image/')) {
|
|
69
|
+
throw new Error('xAI image editing expects each source image to be a public URL or a data:image/... base64 URI.');
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
type: 'image_url',
|
|
73
|
+
url,
|
|
74
|
+
};
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
function extractImages(response) {
|
|
78
|
+
return (response.data || [])
|
|
79
|
+
.map(item => {
|
|
80
|
+
if (typeof item?.b64_json === 'string' && item.b64_json.length > 0) {
|
|
81
|
+
return `data:image/png;base64,${item.b64_json}`;
|
|
82
|
+
}
|
|
83
|
+
if (typeof item?.url === 'string' && item.url.length > 0) {
|
|
84
|
+
return item.url;
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
})
|
|
88
|
+
.filter((image) => image !== null);
|
|
89
|
+
}
|
|
90
|
+
function getPerImageCost(model) {
|
|
91
|
+
const pricing = (0, model_data_js_1.findModel)(model)?.cost?.per_image;
|
|
92
|
+
return typeof pricing === 'number' ? pricing : undefined;
|
|
93
|
+
}
|
|
7
94
|
class GrokProvider extends openai_chat_js_1.OpenAIChat {
|
|
8
95
|
constructor() {
|
|
9
96
|
super('xai', process.env.XAI_API_KEY, 'https://api.x.ai/v1');
|
|
@@ -22,36 +109,70 @@ class GrokProvider extends openai_chat_js_1.OpenAIChat {
|
|
|
22
109
|
return super.prepareParameters(requestParams);
|
|
23
110
|
}
|
|
24
111
|
async createImage(prompt, model, agent, opts = {}) {
|
|
25
|
-
const
|
|
112
|
+
const numberOfImages = opts.n ?? 1;
|
|
113
|
+
const sourceImages = normalizeSourceImages(opts.source_images);
|
|
114
|
+
const requestBody = {
|
|
115
|
+
model,
|
|
116
|
+
prompt,
|
|
117
|
+
n: numberOfImages,
|
|
118
|
+
};
|
|
119
|
+
if (!Number.isInteger(numberOfImages) || numberOfImages < 1 || numberOfImages > 10) {
|
|
120
|
+
throw new Error('xAI image generation requires opts.n to be an integer between 1 and 10.');
|
|
121
|
+
}
|
|
122
|
+
if (opts.mask) {
|
|
123
|
+
throw new Error('xAI image generation masks are not supported in Ensemble yet.');
|
|
124
|
+
}
|
|
125
|
+
if (sourceImages.length > 5) {
|
|
126
|
+
throw new Error('xAI image editing supports at most 5 source images per request.');
|
|
127
|
+
}
|
|
128
|
+
const aspectRatio = normalizeAspectRatio(opts.size);
|
|
129
|
+
const resolution = normalizeResolution(opts);
|
|
130
|
+
const usesEditingEndpoint = sourceImages.length > 0;
|
|
131
|
+
if (opts.response_format === 'b64_json') {
|
|
132
|
+
requestBody.response_format = 'b64_json';
|
|
133
|
+
}
|
|
134
|
+
if (aspectRatio) {
|
|
135
|
+
requestBody.aspect_ratio = aspectRatio;
|
|
136
|
+
}
|
|
137
|
+
if (resolution) {
|
|
138
|
+
requestBody.resolution = resolution;
|
|
139
|
+
}
|
|
140
|
+
if (usesEditingEndpoint) {
|
|
141
|
+
requestBody.image = sourceImages.length === 1 ? sourceImages[0] : sourceImages;
|
|
142
|
+
}
|
|
143
|
+
const endpoint = usesEditingEndpoint ? '/images/edits' : '/images/generations';
|
|
144
|
+
const requestId = (0, llm_logger_js_1.log_llm_request)(agent.agent_id || 'default', 'xai', model, {
|
|
145
|
+
endpoint,
|
|
146
|
+
...requestBody,
|
|
147
|
+
}, new Date(), opts.request_id, agent.tags);
|
|
26
148
|
let success = false;
|
|
149
|
+
let responseLogPayload = { ok: false };
|
|
27
150
|
try {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
const response = await this.client.images.generate({
|
|
32
|
-
model,
|
|
33
|
-
prompt,
|
|
34
|
-
n: opts.n || 1,
|
|
151
|
+
const response = await this.client.post(endpoint, {
|
|
152
|
+
body: requestBody,
|
|
35
153
|
});
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if (typeof item?.b64_json === 'string' && item.b64_json.length > 0) {
|
|
39
|
-
return `data:image/png;base64,${item.b64_json}`;
|
|
40
|
-
}
|
|
41
|
-
if (typeof item?.url === 'string' && item.url.length > 0) {
|
|
42
|
-
return item.url;
|
|
43
|
-
}
|
|
44
|
-
return null;
|
|
45
|
-
})
|
|
46
|
-
.filter((image) => image !== null);
|
|
154
|
+
responseLogPayload = response;
|
|
155
|
+
const images = extractImages(response);
|
|
47
156
|
if (!images.length) {
|
|
48
157
|
throw new Error('xAI image generation returned no images.');
|
|
49
158
|
}
|
|
159
|
+
const perImageCost = getPerImageCost(model);
|
|
160
|
+
const billableImageCount = usesEditingEndpoint ? sourceImages.length + images.length : images.length;
|
|
50
161
|
cost_tracker_js_1.costTracker.addUsage({
|
|
51
162
|
model,
|
|
52
163
|
image_count: images.length,
|
|
164
|
+
cost: typeof perImageCost === 'number' ? perImageCost * billableImageCount : undefined,
|
|
53
165
|
request_id: opts.request_id,
|
|
54
|
-
metadata: {
|
|
166
|
+
metadata: {
|
|
167
|
+
source: 'xai',
|
|
168
|
+
endpoint,
|
|
169
|
+
aspect_ratio: aspectRatio,
|
|
170
|
+
resolution,
|
|
171
|
+
response_format: opts.response_format || 'url',
|
|
172
|
+
source_image_count: sourceImages.length,
|
|
173
|
+
billable_image_count: billableImageCount,
|
|
174
|
+
...(typeof perImageCost === 'number' ? { cost_per_image: perImageCost } : {}),
|
|
175
|
+
},
|
|
55
176
|
});
|
|
56
177
|
success = true;
|
|
57
178
|
return images;
|
|
@@ -61,7 +182,7 @@ class GrokProvider extends openai_chat_js_1.OpenAIChat {
|
|
|
61
182
|
throw error;
|
|
62
183
|
}
|
|
63
184
|
finally {
|
|
64
|
-
(0, llm_logger_js_1.log_llm_response)(requestId, { ok:
|
|
185
|
+
(0, llm_logger_js_1.log_llm_response)(requestId, success ? responseLogPayload : { ok: false });
|
|
65
186
|
}
|
|
66
187
|
}
|
|
67
188
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grok.d.ts","sourceRoot":"","sources":["../../../model_providers/grok.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grok.d.ts","sourceRoot":"","sources":["../../../model_providers/grok.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAI9E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,MAAM,MAAM,QAAQ,CAAC;AA0H5B,qBAAa,YAAa,SAAQ,UAAU;;IAKxC,iBAAiB,CACb,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,mCAAmC,GAC3E,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,mCAAmC;IAgBxD,WAAW,CACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,eAAe,EACtB,IAAI,GAAE,mBAAwB,GAC/B,OAAO,CAAC,MAAM,EAAE,CAAC;CAiGvB;AAGD,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grok.js","sourceRoot":"","sources":["../../../model_providers/grok.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"grok.js","sourceRoot":"","sources":["../../../model_providers/grok.ts"],"names":[],"mappings":"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"}
|