@animalabs/membrane 0.5.28 → 0.5.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/formatters/anthropic-xml.d.ts.map +1 -1
- package/dist/formatters/anthropic-xml.js +2 -6
- package/dist/formatters/anthropic-xml.js.map +1 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +17 -1
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/openai-responses.d.ts +46 -14
- package/dist/providers/openai-responses.d.ts.map +1 -1
- package/dist/providers/openai-responses.js +175 -241
- package/dist/providers/openai-responses.js.map +1 -1
- package/package.json +1 -1
- package/src/formatters/anthropic-xml.ts +2 -6
- package/src/providers/anthropic.ts +17 -1
- package/src/providers/openai-responses.ts +226 -314
|
@@ -1,33 +1,41 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* OpenAI
|
|
2
|
+
* OpenAI Images API provider adapter
|
|
3
3
|
*
|
|
4
|
-
* Adapter for OpenAI's
|
|
5
|
-
* models like `gpt-image-1
|
|
4
|
+
* Adapter for OpenAI's Images API endpoints, used for image generation
|
|
5
|
+
* models like `gpt-image-1`:
|
|
6
6
|
*
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* - Image generation is a tool: `{"type": "image_generation"}`
|
|
10
|
-
* - Generated images come back as `image_generation_call` output items
|
|
11
|
-
* - Streaming uses different event types
|
|
7
|
+
* - `/v1/images/generations` — text-to-image (no image input)
|
|
8
|
+
* - `/v1/images/edits` — image editing (accepts input images + prompt)
|
|
12
9
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
10
|
+
* The adapter automatically selects the right endpoint:
|
|
11
|
+
* - If conversation contains images → uses /edits with images as data URLs
|
|
12
|
+
* - If text-only → uses /generations
|
|
13
|
+
*
|
|
14
|
+
* Both endpoints:
|
|
15
|
+
* - Take a single `prompt` string (not conversation messages)
|
|
16
|
+
* - Return base64-encoded images in `data[].b64_json`
|
|
17
|
+
* - No streaming support (returns complete image)
|
|
18
|
+
* - Support `size`, `quality`, `n`, `background`, `output_format`
|
|
19
|
+
*
|
|
20
|
+
* Note: File retains the name openai-responses.ts and class name
|
|
21
|
+
* OpenAIResponsesAdapter for compatibility with existing factory
|
|
22
|
+
* routing and vendor configs (`openairesponses-*` prefix).
|
|
15
23
|
*/
|
|
16
24
|
import { MembraneError, rateLimitError, contextLengthError, authError, serverError, abortError, networkError, } from '../types/index.js';
|
|
17
25
|
// ============================================================================
|
|
18
|
-
// OpenAI
|
|
26
|
+
// OpenAI Images Adapter
|
|
19
27
|
// ============================================================================
|
|
20
28
|
export class OpenAIResponsesAdapter {
|
|
21
29
|
name = 'openai-responses';
|
|
22
30
|
apiKey;
|
|
23
31
|
baseURL;
|
|
24
32
|
organization;
|
|
25
|
-
|
|
33
|
+
allowImageEditing;
|
|
26
34
|
constructor(config = {}) {
|
|
27
35
|
this.apiKey = config.apiKey ?? process.env.OPENAI_API_KEY ?? '';
|
|
28
36
|
this.baseURL = (config.baseURL ?? 'https://api.openai.com/v1').replace(/\/$/, '');
|
|
29
37
|
this.organization = config.organization;
|
|
30
|
-
this.
|
|
38
|
+
this.allowImageEditing = config.allowImageEditing ?? true;
|
|
31
39
|
if (!this.apiKey) {
|
|
32
40
|
throw new Error('OpenAI API key not provided');
|
|
33
41
|
}
|
|
@@ -36,151 +44,69 @@ export class OpenAIResponsesAdapter {
|
|
|
36
44
|
return modelId.startsWith('gpt-image');
|
|
37
45
|
}
|
|
38
46
|
async complete(request, options) {
|
|
39
|
-
const
|
|
40
|
-
|
|
47
|
+
const inputImages = this.allowImageEditing ? this.extractImages(request) : [];
|
|
48
|
+
const isEdit = inputImages.length > 0;
|
|
49
|
+
const endpoint = isEdit ? 'images/edits' : 'images/generations';
|
|
50
|
+
const imagesRequest = this.buildRequest(request, inputImages);
|
|
51
|
+
options?.onRequest?.(imagesRequest);
|
|
41
52
|
try {
|
|
42
|
-
const
|
|
53
|
+
const fetchOptions = {
|
|
43
54
|
method: 'POST',
|
|
44
|
-
headers: this.getHeaders(),
|
|
45
|
-
body: JSON.stringify(responsesRequest),
|
|
46
55
|
signal: options?.signal,
|
|
47
|
-
}
|
|
56
|
+
};
|
|
57
|
+
if (isEdit) {
|
|
58
|
+
// /v1/images/edits requires multipart/form-data with file uploads
|
|
59
|
+
const formData = new FormData();
|
|
60
|
+
formData.append('model', imagesRequest.model);
|
|
61
|
+
formData.append('prompt', imagesRequest.prompt);
|
|
62
|
+
if (imagesRequest.n != null)
|
|
63
|
+
formData.append('n', String(imagesRequest.n));
|
|
64
|
+
if (imagesRequest.quality)
|
|
65
|
+
formData.append('quality', String(imagesRequest.quality));
|
|
66
|
+
if (imagesRequest.size)
|
|
67
|
+
formData.append('size', String(imagesRequest.size));
|
|
68
|
+
// Convert base64 data URLs to Blobs and append as file uploads
|
|
69
|
+
for (const dataUrl of inputImages) {
|
|
70
|
+
const { buffer, mimeType } = this.dataUrlToBuffer(dataUrl);
|
|
71
|
+
const ext = mimeType.split('/')[1] || 'png';
|
|
72
|
+
const blob = new Blob([buffer], { type: mimeType });
|
|
73
|
+
formData.append('image[]', blob, `image.${ext}`);
|
|
74
|
+
}
|
|
75
|
+
// Auth header only — don't set Content-Type, let fetch set multipart boundary
|
|
76
|
+
fetchOptions.headers = {
|
|
77
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
78
|
+
...(this.organization ? { 'OpenAI-Organization': this.organization } : {}),
|
|
79
|
+
};
|
|
80
|
+
fetchOptions.body = formData;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
// /v1/images/generations accepts JSON
|
|
84
|
+
fetchOptions.headers = this.getHeaders();
|
|
85
|
+
fetchOptions.body = JSON.stringify(imagesRequest);
|
|
86
|
+
}
|
|
87
|
+
const response = await fetch(`${this.baseURL}/${endpoint}`, fetchOptions);
|
|
48
88
|
if (!response.ok) {
|
|
49
89
|
const errorText = await response.text();
|
|
50
|
-
throw new Error(`OpenAI
|
|
90
|
+
throw new Error(`OpenAI Images API error: ${response.status} ${errorText}`);
|
|
51
91
|
}
|
|
52
92
|
const data = (await response.json());
|
|
53
|
-
|
|
54
|
-
throw new Error(`OpenAI Responses API error: ${data.error.code} ${data.error.message}`);
|
|
55
|
-
}
|
|
56
|
-
return this.parseResponse(data, request.model, responsesRequest);
|
|
93
|
+
return this.parseResponse(data, request.model, imagesRequest);
|
|
57
94
|
}
|
|
58
95
|
catch (error) {
|
|
59
|
-
throw this.handleError(error,
|
|
96
|
+
throw this.handleError(error, imagesRequest);
|
|
60
97
|
}
|
|
61
98
|
}
|
|
62
99
|
async stream(request, callbacks, options) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
options
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
body: JSON.stringify(responsesRequest),
|
|
71
|
-
signal: options?.signal,
|
|
72
|
-
});
|
|
73
|
-
if (!response.ok) {
|
|
74
|
-
const errorText = await response.text();
|
|
75
|
-
throw new Error(`OpenAI Responses API error: ${response.status} ${errorText}`);
|
|
76
|
-
}
|
|
77
|
-
const reader = response.body?.getReader();
|
|
78
|
-
if (!reader) {
|
|
79
|
-
throw new Error('No response body');
|
|
80
|
-
}
|
|
81
|
-
const decoder = new TextDecoder();
|
|
82
|
-
let accumulated = '';
|
|
83
|
-
let images = [];
|
|
84
|
-
let lastUsage;
|
|
85
|
-
let buffer = '';
|
|
86
|
-
while (true) {
|
|
87
|
-
const { done, value } = await reader.read();
|
|
88
|
-
if (done)
|
|
89
|
-
break;
|
|
90
|
-
buffer += decoder.decode(value, { stream: true });
|
|
91
|
-
const lines = buffer.split('\n');
|
|
92
|
-
buffer = lines.pop() ?? '';
|
|
93
|
-
for (const line of lines) {
|
|
94
|
-
if (!line.startsWith('data: '))
|
|
95
|
-
continue;
|
|
96
|
-
const data = line.slice(6).trim();
|
|
97
|
-
if (!data || data === '[DONE]')
|
|
98
|
-
continue;
|
|
99
|
-
try {
|
|
100
|
-
const parsed = JSON.parse(data);
|
|
101
|
-
// Handle text deltas
|
|
102
|
-
if (parsed.type === 'response.output_text.delta') {
|
|
103
|
-
const delta = parsed.delta ?? '';
|
|
104
|
-
accumulated += delta;
|
|
105
|
-
callbacks.onChunk(delta);
|
|
106
|
-
}
|
|
107
|
-
// Handle completed text
|
|
108
|
-
if (parsed.type === 'response.output_text.done') {
|
|
109
|
-
// Text already accumulated via deltas
|
|
110
|
-
}
|
|
111
|
-
// Handle image generation results
|
|
112
|
-
if (parsed.type === 'response.image_generation_call.done') {
|
|
113
|
-
if (parsed.result) {
|
|
114
|
-
images.push({
|
|
115
|
-
data: parsed.result,
|
|
116
|
-
mimeType: 'image/png',
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
// Handle completed response (has usage)
|
|
121
|
-
if (parsed.type === 'response.completed' || parsed.type === 'response.done') {
|
|
122
|
-
const resp = parsed.response ?? parsed;
|
|
123
|
-
if (resp.usage) {
|
|
124
|
-
lastUsage = resp.usage;
|
|
125
|
-
}
|
|
126
|
-
// Extract any images from the completed response output
|
|
127
|
-
if (resp.output) {
|
|
128
|
-
for (const item of resp.output) {
|
|
129
|
-
if (item.type === 'image_generation_call' && item.result) {
|
|
130
|
-
// Only add if not already captured via streaming events
|
|
131
|
-
const alreadyCaptured = images.some(img => img.data === item.result);
|
|
132
|
-
if (!alreadyCaptured) {
|
|
133
|
-
images.push({
|
|
134
|
-
data: item.result,
|
|
135
|
-
mimeType: 'image/png',
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
catch {
|
|
144
|
-
// Ignore parse errors in stream chunks
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
// Process remaining buffer
|
|
149
|
-
if (buffer.trim()) {
|
|
150
|
-
const remaining = buffer.trim();
|
|
151
|
-
const dataLine = remaining.startsWith('data: ') ? remaining.slice(6).trim() : remaining;
|
|
152
|
-
if (dataLine && dataLine !== '[DONE]') {
|
|
153
|
-
try {
|
|
154
|
-
const parsed = JSON.parse(dataLine);
|
|
155
|
-
if (parsed.type === 'response.completed' || parsed.type === 'response.done') {
|
|
156
|
-
const resp = parsed.response ?? parsed;
|
|
157
|
-
if (resp.usage)
|
|
158
|
-
lastUsage = resp.usage;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
catch {
|
|
162
|
-
// Final buffer wasn't valid JSON
|
|
163
|
-
}
|
|
164
|
-
}
|
|
100
|
+
// Images API doesn't support streaming — do a full request
|
|
101
|
+
// and emit any text content as a single chunk
|
|
102
|
+
const response = await this.complete(request, options);
|
|
103
|
+
const blocks = response.content;
|
|
104
|
+
for (const block of blocks) {
|
|
105
|
+
if (block.type === 'text' && block.text) {
|
|
106
|
+
callbacks.onChunk(block.text);
|
|
165
107
|
}
|
|
166
|
-
const cachedTokens = lastUsage?.input_tokens_details?.cached_tokens ?? 0;
|
|
167
|
-
return {
|
|
168
|
-
content: this.buildContentBlocks(accumulated, images),
|
|
169
|
-
stopReason: 'end_turn',
|
|
170
|
-
stopSequence: undefined,
|
|
171
|
-
usage: {
|
|
172
|
-
inputTokens: lastUsage?.input_tokens ?? 0,
|
|
173
|
-
outputTokens: lastUsage?.output_tokens ?? 0,
|
|
174
|
-
cacheReadTokens: cachedTokens > 0 ? cachedTokens : undefined,
|
|
175
|
-
},
|
|
176
|
-
model: request.model,
|
|
177
|
-
rawRequest: responsesRequest,
|
|
178
|
-
raw: { usage: lastUsage },
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
catch (error) {
|
|
182
|
-
throw this.handleError(error, responsesRequest);
|
|
183
108
|
}
|
|
109
|
+
return response;
|
|
184
110
|
}
|
|
185
111
|
// --------------------------------------------------------------------------
|
|
186
112
|
// Request Building
|
|
@@ -195,15 +121,76 @@ export class OpenAIResponsesAdapter {
|
|
|
195
121
|
}
|
|
196
122
|
return headers;
|
|
197
123
|
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
124
|
+
/**
|
|
125
|
+
* Extract base64 images from conversation messages as data URLs.
|
|
126
|
+
* Used to determine whether to use /edits (with images) or /generations.
|
|
127
|
+
* Returns up to 16 images (OpenAI limit for /v1/images/edits).
|
|
128
|
+
*/
|
|
129
|
+
extractImages(request) {
|
|
130
|
+
const dataUrls = [];
|
|
131
|
+
const MAX_IMAGES = 16;
|
|
132
|
+
if (!request.messages)
|
|
133
|
+
return dataUrls;
|
|
134
|
+
for (const msg of request.messages) {
|
|
135
|
+
if (!Array.isArray(msg.content))
|
|
136
|
+
continue;
|
|
137
|
+
for (const block of msg.content) {
|
|
138
|
+
if (dataUrls.length >= MAX_IMAGES)
|
|
139
|
+
break;
|
|
140
|
+
if (block.type === 'image') {
|
|
141
|
+
const source = block.source;
|
|
142
|
+
if (source?.type === 'base64' && source.data) {
|
|
143
|
+
const mimeType = source.media_type ?? source.mediaType ?? 'image/png';
|
|
144
|
+
dataUrls.push(`data:${mimeType};base64,${source.data}`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return dataUrls;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Convert a base64 data URL to a Buffer + mimeType for file upload.
|
|
153
|
+
*/
|
|
154
|
+
dataUrlToBuffer(dataUrl) {
|
|
155
|
+
const match = dataUrl.match(/^data:([^;]+);base64,(.+)$/s);
|
|
156
|
+
if (!match || !match[1] || !match[2]) {
|
|
157
|
+
throw new Error('Invalid data URL format');
|
|
158
|
+
}
|
|
159
|
+
return {
|
|
160
|
+
mimeType: match[1],
|
|
161
|
+
buffer: Buffer.from(match[2], 'base64'),
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
buildRequest(request, inputImages) {
|
|
165
|
+
const prompt = this.flattenToPrompt(request);
|
|
166
|
+
const imagesRequest = {
|
|
202
167
|
model: request.model,
|
|
203
|
-
|
|
204
|
-
|
|
168
|
+
prompt,
|
|
169
|
+
n: 1,
|
|
170
|
+
quality: 'auto',
|
|
205
171
|
};
|
|
206
|
-
//
|
|
172
|
+
// Include input images for the /edits endpoint
|
|
173
|
+
if (inputImages.length > 0) {
|
|
174
|
+
imagesRequest.image = inputImages;
|
|
175
|
+
}
|
|
176
|
+
// Apply extra params (allow overriding size, quality, n, etc.)
|
|
177
|
+
if (request.extra) {
|
|
178
|
+
const { normalizedMessages, prompt: _p, ...rest } = request.extra;
|
|
179
|
+
Object.assign(imagesRequest, rest);
|
|
180
|
+
}
|
|
181
|
+
return imagesRequest;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Flatten conversation messages into a single prompt string.
|
|
185
|
+
*
|
|
186
|
+
* The Images API takes a single text prompt, not a conversation.
|
|
187
|
+
* We include the system prompt as context and concatenate all
|
|
188
|
+
* message text with role labels so the model understands the
|
|
189
|
+
* full conversation when deciding what image to generate.
|
|
190
|
+
*/
|
|
191
|
+
flattenToPrompt(request) {
|
|
192
|
+
const parts = [];
|
|
193
|
+
// Include system prompt as context
|
|
207
194
|
if (request.system) {
|
|
208
195
|
const systemText = typeof request.system === 'string'
|
|
209
196
|
? request.system
|
|
@@ -212,120 +199,56 @@ export class OpenAIResponsesAdapter {
|
|
|
212
199
|
.map((b) => b.text)
|
|
213
200
|
.join('\n');
|
|
214
201
|
if (systemText) {
|
|
215
|
-
|
|
202
|
+
parts.push(systemText);
|
|
216
203
|
}
|
|
217
204
|
}
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
if (request.model?.includes('image')) {
|
|
226
|
-
responsesRequest.tools = [{ type: 'image_generation' }];
|
|
227
|
-
}
|
|
228
|
-
// Apply extra params (filter out internal membrane fields)
|
|
229
|
-
if (request.extra) {
|
|
230
|
-
const { normalizedMessages, prompt, ...rest } = request.extra;
|
|
231
|
-
Object.assign(responsesRequest, rest);
|
|
232
|
-
}
|
|
233
|
-
return responsesRequest;
|
|
234
|
-
}
|
|
235
|
-
convertMessages(messages) {
|
|
236
|
-
const result = [];
|
|
237
|
-
for (const msg of messages) {
|
|
238
|
-
const role = this.mapRole(msg.role);
|
|
239
|
-
// Simple string content
|
|
240
|
-
if (typeof msg.content === 'string') {
|
|
241
|
-
result.push({ role, content: msg.content });
|
|
242
|
-
continue;
|
|
243
|
-
}
|
|
244
|
-
// Array content blocks (Anthropic-style)
|
|
245
|
-
if (Array.isArray(msg.content)) {
|
|
246
|
-
const parts = [];
|
|
247
|
-
for (const block of msg.content) {
|
|
248
|
-
if (block.type === 'text') {
|
|
249
|
-
if (block.text) {
|
|
250
|
-
parts.push({ type: 'input_text', text: block.text });
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
else if (block.type === 'image') {
|
|
254
|
-
const source = block.source;
|
|
255
|
-
if (source?.type === 'base64' && source.data) {
|
|
256
|
-
const mimeType = source.media_type ?? source.mediaType ?? 'image/jpeg';
|
|
257
|
-
parts.push({
|
|
258
|
-
type: 'input_image',
|
|
259
|
-
image_url: `data:${mimeType};base64,${source.data}`,
|
|
260
|
-
});
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
// tool_use and tool_result are not supported in the Responses API input
|
|
264
|
-
// for image models — skip them silently
|
|
205
|
+
// Extract text from messages with role labels
|
|
206
|
+
if (request.messages) {
|
|
207
|
+
for (const msg of request.messages) {
|
|
208
|
+
const role = msg.role === 'assistant' ? 'Assistant' : 'User';
|
|
209
|
+
let text = '';
|
|
210
|
+
if (typeof msg.content === 'string') {
|
|
211
|
+
text = msg.content;
|
|
265
212
|
}
|
|
266
|
-
if (
|
|
267
|
-
|
|
213
|
+
else if (Array.isArray(msg.content)) {
|
|
214
|
+
text = msg.content
|
|
215
|
+
.filter((b) => b.type === 'text' && b.text)
|
|
216
|
+
.map((b) => b.text)
|
|
217
|
+
.join('\n');
|
|
218
|
+
}
|
|
219
|
+
if (text) {
|
|
220
|
+
parts.push(`${role}: ${text}`);
|
|
268
221
|
}
|
|
269
|
-
continue;
|
|
270
222
|
}
|
|
271
|
-
// Null/empty content — skip
|
|
272
|
-
if (msg.content === null || msg.content === undefined)
|
|
273
|
-
continue;
|
|
274
|
-
// Fallback
|
|
275
|
-
result.push({ role, content: String(msg.content) });
|
|
276
|
-
}
|
|
277
|
-
return result;
|
|
278
|
-
}
|
|
279
|
-
mapRole(role) {
|
|
280
|
-
switch (role) {
|
|
281
|
-
case 'user':
|
|
282
|
-
return 'user';
|
|
283
|
-
case 'assistant':
|
|
284
|
-
return 'assistant';
|
|
285
|
-
case 'system':
|
|
286
|
-
return 'developer';
|
|
287
|
-
default:
|
|
288
|
-
return 'user';
|
|
289
223
|
}
|
|
224
|
+
return parts.join('\n\n');
|
|
290
225
|
}
|
|
291
226
|
// --------------------------------------------------------------------------
|
|
292
227
|
// Response Parsing
|
|
293
228
|
// --------------------------------------------------------------------------
|
|
294
229
|
parseResponse(response, requestedModel, rawRequest) {
|
|
295
|
-
let text = '';
|
|
296
230
|
const images = [];
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
if (content.type === 'output_text') {
|
|
301
|
-
text += content.text;
|
|
302
|
-
}
|
|
303
|
-
else if (content.type === 'image_generation_call') {
|
|
304
|
-
images.push({
|
|
305
|
-
data: content.result,
|
|
306
|
-
mimeType: 'image/png',
|
|
307
|
-
});
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
else if (item.type === 'image_generation_call') {
|
|
231
|
+
let revisedPrompt;
|
|
232
|
+
for (const item of response.data) {
|
|
233
|
+
if (item.b64_json) {
|
|
312
234
|
images.push({
|
|
313
|
-
data: item.
|
|
235
|
+
data: item.b64_json,
|
|
314
236
|
mimeType: 'image/png',
|
|
315
237
|
});
|
|
316
238
|
}
|
|
239
|
+
if (item.revised_prompt) {
|
|
240
|
+
revisedPrompt = item.revised_prompt;
|
|
241
|
+
}
|
|
317
242
|
}
|
|
318
|
-
const cachedTokens = response.usage?.input_tokens_details?.cached_tokens ?? 0;
|
|
319
243
|
return {
|
|
320
|
-
content: this.buildContentBlocks(
|
|
244
|
+
content: this.buildContentBlocks(revisedPrompt, images),
|
|
321
245
|
stopReason: 'end_turn',
|
|
322
246
|
stopSequence: undefined,
|
|
323
247
|
usage: {
|
|
324
248
|
inputTokens: response.usage?.input_tokens ?? 0,
|
|
325
249
|
outputTokens: response.usage?.output_tokens ?? 0,
|
|
326
|
-
cacheReadTokens: cachedTokens > 0 ? cachedTokens : undefined,
|
|
327
250
|
},
|
|
328
|
-
model:
|
|
251
|
+
model: requestedModel,
|
|
329
252
|
rawRequest,
|
|
330
253
|
raw: response,
|
|
331
254
|
};
|
|
@@ -367,6 +290,17 @@ export class OpenAIResponsesAdapter {
|
|
|
367
290
|
message.includes('too long')) {
|
|
368
291
|
return contextLengthError(message, error, rawRequest);
|
|
369
292
|
}
|
|
293
|
+
if (message.includes('content_policy') ||
|
|
294
|
+
message.includes('safety_system') ||
|
|
295
|
+
message.includes('moderation')) {
|
|
296
|
+
return new MembraneError({
|
|
297
|
+
type: 'unknown',
|
|
298
|
+
message: `Content policy violation: ${message}`,
|
|
299
|
+
retryable: false,
|
|
300
|
+
rawError: error,
|
|
301
|
+
rawRequest,
|
|
302
|
+
});
|
|
303
|
+
}
|
|
370
304
|
if (message.includes('500') ||
|
|
371
305
|
message.includes('502') ||
|
|
372
306
|
message.includes('503') ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-responses.js","sourceRoot":"","sources":["../../src/providers/openai-responses.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openai-responses.js","sourceRoot":"","sources":["../../src/providers/openai-responses.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -389,18 +389,14 @@ export class AnthropicXmlFormatter implements PrefillFormatter {
|
|
|
389
389
|
parts.push(block.text);
|
|
390
390
|
} else if (block.type === 'image') {
|
|
391
391
|
if (block.source.type === 'base64') {
|
|
392
|
-
|
|
392
|
+
images.push({
|
|
393
393
|
type: 'image',
|
|
394
394
|
source: {
|
|
395
395
|
type: 'base64',
|
|
396
396
|
media_type: block.source.mediaType,
|
|
397
397
|
data: block.source.data,
|
|
398
398
|
},
|
|
399
|
-
};
|
|
400
|
-
if (block.sourceUrl) {
|
|
401
|
-
imageBlock.sourceUrl = block.sourceUrl;
|
|
402
|
-
}
|
|
403
|
-
images.push(imageBlock);
|
|
399
|
+
});
|
|
404
400
|
}
|
|
405
401
|
} else if (block.type === 'tool_use') {
|
|
406
402
|
parts.push(`${participant}>[${block.name}]: ${JSON.stringify(block.input)}`);
|
|
@@ -122,10 +122,26 @@ export class AnthropicAdapter implements ProviderAdapter {
|
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
private buildRequest(request: ProviderRequest): Anthropic.MessageCreateParams {
|
|
125
|
+
// Strip provider-specific fields (e.g., sourceUrl for Gemini) from image blocks
|
|
126
|
+
// before sending to Anthropic, which rejects extra inputs
|
|
127
|
+
const sanitizedMessages = (request.messages as any[]).map((msg: any) => {
|
|
128
|
+
if (!Array.isArray(msg.content)) return msg;
|
|
129
|
+
return {
|
|
130
|
+
...msg,
|
|
131
|
+
content: msg.content.map((block: any) => {
|
|
132
|
+
if (block.type === 'image' && block.sourceUrl !== undefined) {
|
|
133
|
+
const { sourceUrl, ...rest } = block;
|
|
134
|
+
return rest;
|
|
135
|
+
}
|
|
136
|
+
return block;
|
|
137
|
+
}),
|
|
138
|
+
};
|
|
139
|
+
});
|
|
140
|
+
|
|
125
141
|
const params: Anthropic.MessageCreateParams = {
|
|
126
142
|
model: request.model,
|
|
127
143
|
max_tokens: request.maxTokens || this.defaultMaxTokens,
|
|
128
|
-
messages:
|
|
144
|
+
messages: sanitizedMessages as Anthropic.MessageParam[],
|
|
129
145
|
};
|
|
130
146
|
|
|
131
147
|
// Handle system prompt - can be string or content blocks with cache_control
|