@zhivex-ai/openai 0.8.1 → 0.9.1
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 +63 -0
- package/dist/image-generation.d.ts +109 -0
- package/dist/image-generation.d.ts.map +1 -0
- package/dist/image-generation.js +343 -0
- package/dist/image-generation.js.map +1 -0
- package/dist/index.d.ts +52 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +347 -18
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
import { toJSONSchema, z } from "zod";
|
|
2
|
-
import {
|
|
2
|
+
import { createOpenAIImageGenerationModel, normalizeOpenAIImageGenerationCall, normalizeOpenAIImageGenerationPartialImage } from "./image-generation.js";
|
|
3
|
+
import { CallbackRealtimeSession, ConfigurationError, ProviderHTTPError, ProviderResponseTooLargeError, readBodyWithLimit, readErrorBodyWithLimit, readJsonWithLimit, resolveAudioResponseLimits, openWebSocketConnection, hostedTool, providerDataPart, UnsupportedFeatureError, createProviderAdapter, encodeAudioFrame, encodeMediaFrame, isCallableToolDefinition, isHostedToolDefinition, normalizeFinishReason, streamSSE, toToolSet, toolResultPayload, withRetry, withTimeoutSignal } from "@zhivex-ai/core";
|
|
4
|
+
const MIB = 1024 * 1024;
|
|
5
|
+
const DEFAULT_HOSTED_IMAGE_EVENT_BYTES = 32 * MIB;
|
|
6
|
+
const DEFAULT_HOSTED_IMAGE_TOTAL_BYTES = 128 * MIB;
|
|
7
|
+
const HOSTED_IMAGE_EVENT_JSON_OVERHEAD_CHARS = MIB;
|
|
8
|
+
const normalizeOpenAIResponseLimit = (value, fallback, name) => {
|
|
9
|
+
const resolved = value ?? fallback;
|
|
10
|
+
if (!Number.isSafeInteger(resolved) || resolved <= 0) {
|
|
11
|
+
throw new ConfigurationError(`The "${name}" response limit must be a positive safe integer.`);
|
|
12
|
+
}
|
|
13
|
+
return resolved;
|
|
14
|
+
};
|
|
15
|
+
const resolveOpenAIResponseLimits = (limits = {}) => ({
|
|
16
|
+
...resolveAudioResponseLimits(limits),
|
|
17
|
+
hostedImageEventBytes: normalizeOpenAIResponseLimit(limits.hostedImageEventBytes, DEFAULT_HOSTED_IMAGE_EVENT_BYTES, "hostedImageEventBytes"),
|
|
18
|
+
hostedImageTotalBytes: normalizeOpenAIResponseLimit(limits.hostedImageTotalBytes, DEFAULT_HOSTED_IMAGE_TOTAL_BYTES, "hostedImageTotalBytes")
|
|
19
|
+
});
|
|
3
20
|
const openAIResponsesToolMetadataKey = "openai.responses_tool_type";
|
|
4
21
|
const openAIResponsesFunctionConfigMetadataKey = "openai.responses_function_config";
|
|
5
22
|
const openAIResponsesFunctionConfig = (tool) => {
|
|
@@ -27,6 +44,7 @@ const assertOpenAIToolPathInsideRoot = async (rootDir, targetPath, label) => {
|
|
|
27
44
|
}
|
|
28
45
|
return target;
|
|
29
46
|
};
|
|
47
|
+
export const openAIRealtimeMcpMetadataKey = "openai.realtime_mcp";
|
|
30
48
|
const capabilities = {
|
|
31
49
|
streaming: true,
|
|
32
50
|
tools: true,
|
|
@@ -154,17 +172,38 @@ const inferOpenAIRealtimeMode = (modelId, mode) => {
|
|
|
154
172
|
}
|
|
155
173
|
return "conversation";
|
|
156
174
|
};
|
|
157
|
-
const
|
|
175
|
+
const isOpenAIRealtimeReasoningModel = (modelId) => /^gpt-realtime-2(?:\.1(?:-mini)?)?(?:-\d{4}-\d{2}-\d{2}|@.*)?$/.test(modelId);
|
|
176
|
+
const openAIRealtimeSupportsImageInput = (modelId) => /^(?:gpt-realtime|gpt-realtime-mini|gpt-realtime-1\.5|gpt-realtime-2(?:\.1(?:-mini)?)?)(?:-\d{4}-\d{2}-\d{2}|@.*)?$/.test(modelId);
|
|
158
177
|
const realtimeCapabilities = (modelId) => ({
|
|
159
178
|
...capabilities,
|
|
160
179
|
streaming: false,
|
|
180
|
+
structuredOutput: false,
|
|
181
|
+
jsonMode: false,
|
|
182
|
+
embeddings: false,
|
|
161
183
|
audioInput: true,
|
|
162
184
|
audioOutput: !isOpenAIRealtimeTranscriptionModel(modelId),
|
|
163
185
|
tools: !isOpenAIRealtimeTranslationModel(modelId) && !isOpenAIRealtimeTranscriptionModel(modelId),
|
|
164
186
|
toolChoice: !isOpenAIRealtimeTranslationModel(modelId) && !isOpenAIRealtimeTranscriptionModel(modelId),
|
|
165
187
|
parallelToolCalls: !isOpenAIRealtimeTranslationModel(modelId) && !isOpenAIRealtimeTranscriptionModel(modelId),
|
|
166
188
|
vision: openAIRealtimeSupportsImageInput(modelId),
|
|
167
|
-
reasoning:
|
|
189
|
+
reasoning: isOpenAIRealtimeReasoningModel(modelId),
|
|
190
|
+
webSearch: false,
|
|
191
|
+
agentCapabilities: {
|
|
192
|
+
...capabilities.agentCapabilities,
|
|
193
|
+
supportTier: isOpenAIRealtimeTranslationModel(modelId) || isOpenAIRealtimeTranscriptionModel(modelId) ? "tier-c" : "tier-a",
|
|
194
|
+
toolChoiceNone: !isOpenAIRealtimeTranslationModel(modelId) && !isOpenAIRealtimeTranscriptionModel(modelId),
|
|
195
|
+
approvalRequests: !isOpenAIRealtimeTranslationModel(modelId) && !isOpenAIRealtimeTranscriptionModel(modelId),
|
|
196
|
+
hostedWebSearch: false,
|
|
197
|
+
hostedFileSearch: false,
|
|
198
|
+
remoteMcp: !isOpenAIRealtimeTranslationModel(modelId) && !isOpenAIRealtimeTranscriptionModel(modelId),
|
|
199
|
+
computerUse: false,
|
|
200
|
+
codeExecution: false,
|
|
201
|
+
shell: false,
|
|
202
|
+
applyPatch: false,
|
|
203
|
+
toolSearch: false,
|
|
204
|
+
skills: false,
|
|
205
|
+
toolsets: false
|
|
206
|
+
},
|
|
168
207
|
realtime: {
|
|
169
208
|
sessions: true,
|
|
170
209
|
audioInput: true,
|
|
@@ -178,6 +217,28 @@ const jsonHeaders = (apiKey) => ({
|
|
|
178
217
|
"content-type": "application/json",
|
|
179
218
|
authorization: `Bearer ${apiKey}`
|
|
180
219
|
});
|
|
220
|
+
const resolveOpenAIRealtimeHeaders = (apiKey, providerOptions, includeContentType = false) => {
|
|
221
|
+
const rawHeaders = providerOptions?.headers;
|
|
222
|
+
const customHeaders = rawHeaders && typeof rawHeaders === "object" && !Array.isArray(rawHeaders)
|
|
223
|
+
? { ...rawHeaders }
|
|
224
|
+
: {};
|
|
225
|
+
const safetyIdentifier = providerOptions?.safety_identifier;
|
|
226
|
+
for (const key of Object.keys(customHeaders)) {
|
|
227
|
+
const normalizedKey = key.toLowerCase();
|
|
228
|
+
if (normalizedKey === "authorization" ||
|
|
229
|
+
normalizedKey === "content-type" ||
|
|
230
|
+
(typeof safetyIdentifier === "string" && safetyIdentifier && normalizedKey === "openai-safety-identifier")) {
|
|
231
|
+
delete customHeaders[key];
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return {
|
|
235
|
+
...(includeContentType ? jsonHeaders(apiKey) : { authorization: `Bearer ${apiKey}` }),
|
|
236
|
+
...customHeaders,
|
|
237
|
+
...(typeof safetyIdentifier === "string" && safetyIdentifier
|
|
238
|
+
? { "OpenAI-Safety-Identifier": safetyIdentifier }
|
|
239
|
+
: {})
|
|
240
|
+
};
|
|
241
|
+
};
|
|
181
242
|
const resolveOpenAILanguageRequestOptions = (providerOptions, apiKey) => {
|
|
182
243
|
const bodyOptions = { ...(providerOptions ?? {}) };
|
|
183
244
|
const apiMode = bodyOptions.apiMode ?? "auto";
|
|
@@ -391,6 +452,25 @@ const localResponsesTools = (tools) => new Map(Object.values(tools ?? {})
|
|
|
391
452
|
.filter(isCallableToolDefinition)
|
|
392
453
|
.map((tool) => [openAILocalResponsesToolType(tool), tool.name])
|
|
393
454
|
.filter((entry) => Boolean(entry[0])));
|
|
455
|
+
const responsesImageGenerationConfig = (tools, limits) => {
|
|
456
|
+
const definition = Object.values(tools ?? {}).find((tool) => isHostedToolDefinition(tool) && tool.provider === "openai" && tool.type === "image_generation");
|
|
457
|
+
if (!definition || !isHostedToolDefinition(definition)) {
|
|
458
|
+
return undefined;
|
|
459
|
+
}
|
|
460
|
+
const outputFormat = definition.config && typeof definition.config === "object" &&
|
|
461
|
+
["png", "jpeg", "webp"].includes(String(definition.config.output_format))
|
|
462
|
+
? definition.config.output_format
|
|
463
|
+
: "png";
|
|
464
|
+
return {
|
|
465
|
+
outputFormat,
|
|
466
|
+
...(limits
|
|
467
|
+
? {
|
|
468
|
+
eventMaxBytes: limits.hostedImageEventBytes,
|
|
469
|
+
totalMaxBytes: limits.hostedImageTotalBytes
|
|
470
|
+
}
|
|
471
|
+
: {})
|
|
472
|
+
};
|
|
473
|
+
};
|
|
394
474
|
const assertResponsesToolsSupported = (modelId, tools) => {
|
|
395
475
|
const currentCapabilities = modelCapabilities(modelId).agentCapabilities;
|
|
396
476
|
for (const definition of Object.values(tools ?? {})) {
|
|
@@ -449,6 +529,28 @@ const mapTools = (input) => input
|
|
|
449
529
|
};
|
|
450
530
|
})
|
|
451
531
|
: undefined;
|
|
532
|
+
const mapRealtimeTools = (input) => input
|
|
533
|
+
? Object.values(input).map((tool) => {
|
|
534
|
+
if (isCallableToolDefinition(tool)) {
|
|
535
|
+
return {
|
|
536
|
+
type: "function",
|
|
537
|
+
name: tool.name,
|
|
538
|
+
description: tool.description,
|
|
539
|
+
parameters: toJSONSchema(tool.schema)
|
|
540
|
+
};
|
|
541
|
+
}
|
|
542
|
+
if (tool.provider && tool.provider !== "openai") {
|
|
543
|
+
throw new UnsupportedFeatureError(`Provider "openai" does not support hosted tools declared for provider "${tool.provider}".`);
|
|
544
|
+
}
|
|
545
|
+
if (tool.type !== "mcp") {
|
|
546
|
+
throw new UnsupportedFeatureError(`Provider "openai" Realtime does not support the hosted tool type "${tool.type}". Use function or MCP tools.`);
|
|
547
|
+
}
|
|
548
|
+
return {
|
|
549
|
+
type: tool.type,
|
|
550
|
+
...(tool.config && typeof tool.config === "object" ? tool.config : {})
|
|
551
|
+
};
|
|
552
|
+
})
|
|
553
|
+
: undefined;
|
|
452
554
|
const mapResponsesTools = (input) => input
|
|
453
555
|
? Object.values(input).map((tool) => {
|
|
454
556
|
if (isCallableToolDefinition(tool)) {
|
|
@@ -499,11 +601,20 @@ const mapResponsesToolChoice = (toolChoice) => {
|
|
|
499
601
|
name: toolChoice.toolName
|
|
500
602
|
};
|
|
501
603
|
};
|
|
604
|
+
const mapRealtimeToolChoice = (toolChoice) => {
|
|
605
|
+
if (!toolChoice || typeof toolChoice === "string") {
|
|
606
|
+
return toolChoice;
|
|
607
|
+
}
|
|
608
|
+
return {
|
|
609
|
+
type: "function",
|
|
610
|
+
name: toolChoice.toolName
|
|
611
|
+
};
|
|
612
|
+
};
|
|
502
613
|
const mapRealtimeProviderOptions = (providerOptions) => {
|
|
503
614
|
if (!providerOptions) {
|
|
504
615
|
return {};
|
|
505
616
|
}
|
|
506
|
-
return Object.fromEntries(Object.entries(providerOptions).filter(([key]) => !["headers", "realtime_url", "realtime_query", "expires_after"].includes(key)));
|
|
617
|
+
return Object.fromEntries(Object.entries(providerOptions).filter(([key]) => !["headers", "safety_identifier", "realtime_url", "realtime_query", "expires_after"].includes(key)));
|
|
507
618
|
};
|
|
508
619
|
const mapRealtimeAudioFormat = (mediaType, sampleRateHz) => mediaType || sampleRateHz
|
|
509
620
|
? {
|
|
@@ -513,7 +624,7 @@ const mapRealtimeAudioFormat = (mediaType, sampleRateHz) => mediaType || sampleR
|
|
|
513
624
|
: undefined;
|
|
514
625
|
const mapRealtimeSessionConfig = (config, modelId) => {
|
|
515
626
|
const mode = inferOpenAIRealtimeMode(modelId ?? "", config.mode);
|
|
516
|
-
const tools =
|
|
627
|
+
const tools = mapRealtimeTools(toToolSet(config.tools));
|
|
517
628
|
const audio = {
|
|
518
629
|
input: {
|
|
519
630
|
format: mapRealtimeAudioFormat(config.inputAudioMediaType, config.inputSampleRateHz),
|
|
@@ -543,7 +654,7 @@ const mapRealtimeSessionConfig = (config, modelId) => {
|
|
|
543
654
|
instructions: config.translation?.instructions ?? config.instructions,
|
|
544
655
|
output_modalities: mode === "transcription" ? undefined : config.outputAudioMediaType || config.voice || mode === "translation" ? ["audio"] : ["text"],
|
|
545
656
|
tools: mode === "conversation" ? tools : undefined,
|
|
546
|
-
tool_choice: mode === "conversation" && config.toolChoice ?
|
|
657
|
+
tool_choice: mode === "conversation" && config.toolChoice ? mapRealtimeToolChoice(config.toolChoice) : undefined,
|
|
547
658
|
reasoning: mode === "conversation" && config.reasoning?.effort
|
|
548
659
|
? {
|
|
549
660
|
effort: config.reasoning.effort
|
|
@@ -581,11 +692,124 @@ const openAIRealtimeURL = (baseURL, modelId, mode, providerOptions) => {
|
|
|
581
692
|
return url.toString();
|
|
582
693
|
};
|
|
583
694
|
const parseRealtimeProviderMetadata = (payload) => payload;
|
|
695
|
+
const parseRealtimeJsonValue = (value) => {
|
|
696
|
+
if (typeof value === "string") {
|
|
697
|
+
try {
|
|
698
|
+
return JSON.parse(value);
|
|
699
|
+
}
|
|
700
|
+
catch {
|
|
701
|
+
return value;
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
return value == null ? null : value;
|
|
705
|
+
};
|
|
706
|
+
const openAIRealtimeMcpProviderDataEvent = (payload, data) => [
|
|
707
|
+
{
|
|
708
|
+
type: "realtime-provider-data",
|
|
709
|
+
provider: "openai",
|
|
710
|
+
data: {
|
|
711
|
+
...data,
|
|
712
|
+
raw_event: payload
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
];
|
|
716
|
+
const openAIRealtimeMcpCommonData = (payload, item) => {
|
|
717
|
+
const itemId = typeof payload.item_id === "string" ? payload.item_id : typeof item?.id === "string" ? item.id : undefined;
|
|
718
|
+
const serverLabel = typeof payload.server_label === "string"
|
|
719
|
+
? payload.server_label
|
|
720
|
+
: typeof item?.server_label === "string"
|
|
721
|
+
? item.server_label
|
|
722
|
+
: undefined;
|
|
723
|
+
const name = typeof payload.name === "string" ? payload.name : typeof item?.name === "string" ? item.name : undefined;
|
|
724
|
+
return {
|
|
725
|
+
...(itemId ? { item_id: itemId } : {}),
|
|
726
|
+
...(serverLabel ? { server_label: serverLabel } : {}),
|
|
727
|
+
...(name ? { name } : {})
|
|
728
|
+
};
|
|
729
|
+
};
|
|
584
730
|
const parseOpenAIRealtimeEvent = (payload) => {
|
|
585
731
|
const type = String(payload.type ?? "");
|
|
586
732
|
if (type === "session.created" || type === "session.updated") {
|
|
587
733
|
return [];
|
|
588
734
|
}
|
|
735
|
+
if (type === "mcp_list_tools.in_progress" || type === "mcp_list_tools.completed" || type === "mcp_list_tools.failed") {
|
|
736
|
+
const status = type.slice("mcp_list_tools.".length);
|
|
737
|
+
return openAIRealtimeMcpProviderDataEvent(payload, {
|
|
738
|
+
type: "mcp_list_tools",
|
|
739
|
+
status,
|
|
740
|
+
...openAIRealtimeMcpCommonData(payload),
|
|
741
|
+
...(payload.error !== undefined ? { error: parseRealtimeJsonValue(payload.error) } : {})
|
|
742
|
+
});
|
|
743
|
+
}
|
|
744
|
+
if (type === "conversation.item.done") {
|
|
745
|
+
const item = payload.item && typeof payload.item === "object" ? payload.item : undefined;
|
|
746
|
+
if (item?.type === "mcp_list_tools") {
|
|
747
|
+
return openAIRealtimeMcpProviderDataEvent(payload, {
|
|
748
|
+
type: "mcp_list_tools",
|
|
749
|
+
status: "completed",
|
|
750
|
+
...openAIRealtimeMcpCommonData(payload, item),
|
|
751
|
+
...(item.tools !== undefined ? { tools: parseRealtimeJsonValue(item.tools) } : {})
|
|
752
|
+
});
|
|
753
|
+
}
|
|
754
|
+
if (item?.type === "mcp_approval_request") {
|
|
755
|
+
const approvalRequestId = typeof item.id === "string" ? item.id : undefined;
|
|
756
|
+
return openAIRealtimeMcpProviderDataEvent(payload, {
|
|
757
|
+
type: "mcp_approval_request",
|
|
758
|
+
status: "approval_required",
|
|
759
|
+
...openAIRealtimeMcpCommonData(payload, item),
|
|
760
|
+
...(approvalRequestId ? { approval_request_id: approvalRequestId } : {}),
|
|
761
|
+
...(item.arguments !== undefined ? { arguments: parseRealtimeJsonValue(item.arguments) } : {})
|
|
762
|
+
});
|
|
763
|
+
}
|
|
764
|
+
if (item?.type === "mcp_approval_response") {
|
|
765
|
+
const approve = item.approve === true;
|
|
766
|
+
return openAIRealtimeMcpProviderDataEvent(payload, {
|
|
767
|
+
type: "mcp_approval_response",
|
|
768
|
+
status: approve ? "approved" : "rejected",
|
|
769
|
+
approve,
|
|
770
|
+
...openAIRealtimeMcpCommonData(payload, item),
|
|
771
|
+
...(typeof item.approval_request_id === "string" ? { approval_request_id: item.approval_request_id } : {}),
|
|
772
|
+
...(typeof item.reason === "string" ? { reason: item.reason } : {})
|
|
773
|
+
});
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
if (type === "response.mcp_call_arguments.delta" || type === "response.mcp_call_arguments.done") {
|
|
777
|
+
const isDone = type.endsWith(".done");
|
|
778
|
+
return openAIRealtimeMcpProviderDataEvent(payload, {
|
|
779
|
+
type: "mcp_call",
|
|
780
|
+
status: isDone ? "arguments_done" : "arguments_delta",
|
|
781
|
+
...openAIRealtimeMcpCommonData(payload),
|
|
782
|
+
...(isDone && payload.arguments !== undefined
|
|
783
|
+
? { arguments: parseRealtimeJsonValue(payload.arguments) }
|
|
784
|
+
: payload.delta !== undefined
|
|
785
|
+
? { delta: parseRealtimeJsonValue(payload.delta) }
|
|
786
|
+
: {})
|
|
787
|
+
});
|
|
788
|
+
}
|
|
789
|
+
if (type === "response.mcp_call.in_progress" || type === "response.mcp_call.completed" || type === "response.mcp_call.failed") {
|
|
790
|
+
const status = type.slice("response.mcp_call.".length);
|
|
791
|
+
return openAIRealtimeMcpProviderDataEvent(payload, {
|
|
792
|
+
type: "mcp_call",
|
|
793
|
+
status,
|
|
794
|
+
...openAIRealtimeMcpCommonData(payload),
|
|
795
|
+
...(payload.output !== undefined ? { output: parseRealtimeJsonValue(payload.output) } : {}),
|
|
796
|
+
...(payload.error !== undefined ? { error: parseRealtimeJsonValue(payload.error) } : {})
|
|
797
|
+
});
|
|
798
|
+
}
|
|
799
|
+
if (type === "response.output_item.done") {
|
|
800
|
+
const item = payload.item && typeof payload.item === "object" ? payload.item : undefined;
|
|
801
|
+
if (item?.type === "mcp_call") {
|
|
802
|
+
return openAIRealtimeMcpProviderDataEvent(payload, {
|
|
803
|
+
type: "mcp_call",
|
|
804
|
+
status: item.status === "failed" ? "failed" : "completed",
|
|
805
|
+
...openAIRealtimeMcpCommonData(payload, item),
|
|
806
|
+
...(item.arguments !== undefined ? { arguments: parseRealtimeJsonValue(item.arguments) } : {}),
|
|
807
|
+
...(item.output !== undefined ? { output: parseRealtimeJsonValue(item.output) } : {}),
|
|
808
|
+
...(item.error !== undefined ? { error: parseRealtimeJsonValue(item.error) } : {}),
|
|
809
|
+
...(typeof item.approval_request_id === "string" ? { approval_request_id: item.approval_request_id } : {})
|
|
810
|
+
});
|
|
811
|
+
}
|
|
812
|
+
}
|
|
589
813
|
if (type === "response.text.delta" || type === "response.output_text.delta") {
|
|
590
814
|
return [
|
|
591
815
|
{
|
|
@@ -915,7 +1139,7 @@ const parseResponsesProviderData = (item) => {
|
|
|
915
1139
|
}
|
|
916
1140
|
const typedItem = item;
|
|
917
1141
|
if (typeof typedItem.type !== "string" ||
|
|
918
|
-
["message", "function_call"].includes(typedItem.type)) {
|
|
1142
|
+
["message", "function_call", "image_generation_call"].includes(typedItem.type)) {
|
|
919
1143
|
return undefined;
|
|
920
1144
|
}
|
|
921
1145
|
return item;
|
|
@@ -1159,6 +1383,10 @@ const parseResponsesAssistantMessage = (json, multiAgentEnabled = false, localTo
|
|
|
1159
1383
|
parts
|
|
1160
1384
|
};
|
|
1161
1385
|
};
|
|
1386
|
+
const extractResponsesImageOutputs = (response, outputFormat = "png") => (Array.isArray(response.output) ? response.output : []).flatMap((item) => {
|
|
1387
|
+
const normalized = normalizeOpenAIImageGenerationCall(item, outputFormat);
|
|
1388
|
+
return normalized?.image ? [normalized.image] : [];
|
|
1389
|
+
});
|
|
1162
1390
|
const normalizeResponsesFinishReason = (status, hasToolCalls, hasRefusal = false) => {
|
|
1163
1391
|
if (hasToolCalls) {
|
|
1164
1392
|
return "tool-calls";
|
|
@@ -1209,11 +1437,26 @@ const addTokenUsage = (left, right) => {
|
|
|
1209
1437
|
totalTokens: sum(left.totalTokens, right.totalTokens)
|
|
1210
1438
|
};
|
|
1211
1439
|
};
|
|
1212
|
-
const streamResponses = async function* (response, multiAgentEnabled = false, localTools = new Map()) {
|
|
1440
|
+
const streamResponses = async function* (response, multiAgentEnabled = false, localTools = new Map(), imageGeneration) {
|
|
1213
1441
|
const toolBuffers = new Map();
|
|
1214
1442
|
const outputAgents = new Map();
|
|
1443
|
+
const hostedImageEventMaxBytes = imageGeneration?.eventMaxBytes ?? DEFAULT_HOSTED_IMAGE_EVENT_BYTES;
|
|
1444
|
+
const hostedImageTotalMaxBytes = imageGeneration?.totalMaxBytes ?? DEFAULT_HOSTED_IMAGE_TOTAL_BYTES;
|
|
1445
|
+
let hostedImageBytes = 0;
|
|
1215
1446
|
let sawToolCalls = false;
|
|
1216
1447
|
let sawRefusal = false;
|
|
1448
|
+
const recordHostedImageBytes = (image) => {
|
|
1449
|
+
const receivedBytes = hostedImageBytes + (image.data?.byteLength ?? 0);
|
|
1450
|
+
if (receivedBytes > hostedImageTotalMaxBytes) {
|
|
1451
|
+
throw new ProviderResponseTooLargeError({
|
|
1452
|
+
maxBytes: hostedImageTotalMaxBytes,
|
|
1453
|
+
receivedBytes,
|
|
1454
|
+
provider: "openai",
|
|
1455
|
+
endpoint: "hosted image generation stream"
|
|
1456
|
+
});
|
|
1457
|
+
}
|
|
1458
|
+
hostedImageBytes = receivedBytes;
|
|
1459
|
+
};
|
|
1217
1460
|
const emitToolCall = (key) => {
|
|
1218
1461
|
const toolCall = toolBuffers.get(key);
|
|
1219
1462
|
if (!toolCall || toolCall.emitted || !toolCall.name) {
|
|
@@ -1231,12 +1474,31 @@ const streamResponses = async function* (response, multiAgentEnabled = false, lo
|
|
|
1231
1474
|
}
|
|
1232
1475
|
};
|
|
1233
1476
|
};
|
|
1234
|
-
|
|
1477
|
+
const maxHostedImageEventChars = Math.min(Number.MAX_SAFE_INTEGER, 4 * Math.ceil(hostedImageEventMaxBytes / 3) + HOSTED_IMAGE_EVENT_JSON_OVERHEAD_CHARS);
|
|
1478
|
+
for await (const event of streamSSE(response, imageGeneration
|
|
1479
|
+
? { maxEventChars: maxHostedImageEventChars, maxBufferChars: maxHostedImageEventChars }
|
|
1480
|
+
: undefined)) {
|
|
1235
1481
|
if (event.data === "[DONE]") {
|
|
1236
1482
|
return;
|
|
1237
1483
|
}
|
|
1238
1484
|
const json = JSON.parse(event.data);
|
|
1239
1485
|
const type = json.type;
|
|
1486
|
+
if (type === "response.image_generation_call.partial_image") {
|
|
1487
|
+
const normalized = normalizeOpenAIImageGenerationPartialImage(json, imageGeneration?.outputFormat ?? "png", hostedImageEventMaxBytes);
|
|
1488
|
+
if (normalized) {
|
|
1489
|
+
recordHostedImageBytes(normalized.image);
|
|
1490
|
+
yield {
|
|
1491
|
+
type: "image-generation",
|
|
1492
|
+
provider: "openai",
|
|
1493
|
+
image: normalized.image,
|
|
1494
|
+
partial: true,
|
|
1495
|
+
id: normalized.callId,
|
|
1496
|
+
index: normalized.partialImageIndex,
|
|
1497
|
+
providerMetadata: normalized.providerMetadata
|
|
1498
|
+
};
|
|
1499
|
+
}
|
|
1500
|
+
continue;
|
|
1501
|
+
}
|
|
1240
1502
|
if (type === "error") {
|
|
1241
1503
|
throw new ProviderHTTPError(`OpenAI Responses stream failed: ${json.error?.message ?? json.message ?? "unknown error"}`, 500, { responseBody: JSON.stringify(json) });
|
|
1242
1504
|
}
|
|
@@ -1258,6 +1520,20 @@ const streamResponses = async function* (response, multiAgentEnabled = false, lo
|
|
|
1258
1520
|
if (type === "response.output_item.added" || type === "response.output_item.done") {
|
|
1259
1521
|
const item = json.item;
|
|
1260
1522
|
let handledLocalToolCall = false;
|
|
1523
|
+
if (item?.type === "image_generation_call" && type === "response.output_item.done") {
|
|
1524
|
+
const normalized = normalizeOpenAIImageGenerationCall(item, imageGeneration?.outputFormat ?? "png", hostedImageEventMaxBytes);
|
|
1525
|
+
if (normalized?.image) {
|
|
1526
|
+
recordHostedImageBytes(normalized.image);
|
|
1527
|
+
yield {
|
|
1528
|
+
type: "image-generation",
|
|
1529
|
+
provider: "openai",
|
|
1530
|
+
image: normalized.image,
|
|
1531
|
+
partial: false,
|
|
1532
|
+
id: normalized.id,
|
|
1533
|
+
providerMetadata: normalized.providerMetadata
|
|
1534
|
+
};
|
|
1535
|
+
}
|
|
1536
|
+
}
|
|
1261
1537
|
if (typeof json.output_index === "number" && item?.type === "message") {
|
|
1262
1538
|
outputAgents.set(json.output_index, {
|
|
1263
1539
|
agentName: item.agent?.agent_name
|
|
@@ -1414,6 +1690,14 @@ const streamGenerateResult = async function* (result) {
|
|
|
1414
1690
|
}
|
|
1415
1691
|
}
|
|
1416
1692
|
}
|
|
1693
|
+
for (const image of result.images ?? []) {
|
|
1694
|
+
yield {
|
|
1695
|
+
type: "image-generation",
|
|
1696
|
+
provider: "openai",
|
|
1697
|
+
image,
|
|
1698
|
+
partial: false
|
|
1699
|
+
};
|
|
1700
|
+
}
|
|
1417
1701
|
yield {
|
|
1418
1702
|
type: "finish",
|
|
1419
1703
|
finishReason: result.finishReason,
|
|
@@ -1452,13 +1736,15 @@ class OpenAILanguageModel {
|
|
|
1452
1736
|
apiKey;
|
|
1453
1737
|
baseURL;
|
|
1454
1738
|
fetcher;
|
|
1739
|
+
responseLimits;
|
|
1455
1740
|
provider = "openai";
|
|
1456
1741
|
capabilities;
|
|
1457
|
-
constructor(modelId, apiKey, baseURL, fetcher) {
|
|
1742
|
+
constructor(modelId, apiKey, baseURL, fetcher, responseLimits) {
|
|
1458
1743
|
this.modelId = modelId;
|
|
1459
1744
|
this.apiKey = apiKey;
|
|
1460
1745
|
this.baseURL = baseURL;
|
|
1461
1746
|
this.fetcher = fetcher;
|
|
1747
|
+
this.responseLimits = responseLimits;
|
|
1462
1748
|
this.capabilities = modelCapabilities(modelId);
|
|
1463
1749
|
}
|
|
1464
1750
|
usesResponsesAPI(input, options) {
|
|
@@ -1534,6 +1820,7 @@ class OpenAILanguageModel {
|
|
|
1534
1820
|
messages: [assistantMessage],
|
|
1535
1821
|
text: extractMessageText(assistantMessage),
|
|
1536
1822
|
audio: extractAudioOutputs(assistantMessage),
|
|
1823
|
+
images: extractResponsesImageOutputs(json, responsesImageGenerationConfig(input.tools)?.outputFormat),
|
|
1537
1824
|
finishReason: normalizeResponsesFinishReason(json.status, hasToolCalls, hasRefusal),
|
|
1538
1825
|
providerFinishReason: json.status,
|
|
1539
1826
|
usage: accumulatedUsage,
|
|
@@ -1633,9 +1920,10 @@ class OpenAILanguageModel {
|
|
|
1633
1920
|
stream: true
|
|
1634
1921
|
})
|
|
1635
1922
|
}), input);
|
|
1923
|
+
const imageGeneration = responsesImageGenerationConfig(input.tools, this.responseLimits);
|
|
1636
1924
|
return (async function* () {
|
|
1637
1925
|
try {
|
|
1638
|
-
yield* streamResponses(response, options.multiAgentEnabled, localResponsesTools(input.tools));
|
|
1926
|
+
yield* streamResponses(response, options.multiAgentEnabled, localResponsesTools(input.tools), imageGeneration);
|
|
1639
1927
|
}
|
|
1640
1928
|
finally {
|
|
1641
1929
|
cleanup();
|
|
@@ -1948,11 +2236,10 @@ class OpenAIRealtimeModel {
|
|
|
1948
2236
|
}
|
|
1949
2237
|
async connect(config = {}, options) {
|
|
1950
2238
|
const initialConfig = this.resolveConfig(config);
|
|
1951
|
-
const
|
|
1952
|
-
|
|
1953
|
-
};
|
|
2239
|
+
const providerOptions = initialConfig.providerOptions;
|
|
2240
|
+
const headers = resolveOpenAIRealtimeHeaders(this.apiKey, providerOptions);
|
|
1954
2241
|
const connection = await (this.connectionFactory ?? openWebSocketConnection)(this.realtimeURL ??
|
|
1955
|
-
openAIRealtimeURL(this.baseURL, this.modelId, inferOpenAIRealtimeMode(this.modelId, initialConfig.mode),
|
|
2242
|
+
openAIRealtimeURL(this.baseURL, this.modelId, inferOpenAIRealtimeMode(this.modelId, initialConfig.mode), providerOptions), headers, options);
|
|
1956
2243
|
const session = new CallbackRealtimeSession({
|
|
1957
2244
|
provider: this.provider,
|
|
1958
2245
|
modelId: this.modelId,
|
|
@@ -2025,6 +2312,26 @@ class OpenAIRealtimeModel {
|
|
|
2025
2312
|
if (mode !== "conversation") {
|
|
2026
2313
|
throw new UnsupportedFeatureError(`Provider "openai" model "${this.modelId}" does not support realtime tools in ${mode} mode.`);
|
|
2027
2314
|
}
|
|
2315
|
+
const mcpMetadata = result.providerMetadata?.[openAIRealtimeMcpMetadataKey];
|
|
2316
|
+
if (mcpMetadata && typeof mcpMetadata === "object" && !Array.isArray(mcpMetadata)) {
|
|
2317
|
+
const approval = mcpMetadata;
|
|
2318
|
+
if (approval.type === "mcp_approval_response" &&
|
|
2319
|
+
typeof approval.approval_request_id === "string" &&
|
|
2320
|
+
typeof approval.approve === "boolean") {
|
|
2321
|
+
return [
|
|
2322
|
+
{
|
|
2323
|
+
type: "conversation.item.create",
|
|
2324
|
+
item: {
|
|
2325
|
+
...(typeof approval.id === "string" ? { id: approval.id } : {}),
|
|
2326
|
+
type: "mcp_approval_response",
|
|
2327
|
+
approval_request_id: approval.approval_request_id,
|
|
2328
|
+
approve: approval.approve,
|
|
2329
|
+
...(typeof approval.reason === "string" ? { reason: approval.reason } : {})
|
|
2330
|
+
}
|
|
2331
|
+
}
|
|
2332
|
+
];
|
|
2333
|
+
}
|
|
2334
|
+
}
|
|
2028
2335
|
const payloads = [
|
|
2029
2336
|
{
|
|
2030
2337
|
type: "conversation.item.create",
|
|
@@ -2064,7 +2371,7 @@ class OpenAIRealtimeModel {
|
|
|
2064
2371
|
delete providerOptions.expires_after;
|
|
2065
2372
|
const response = await withRetry(() => this.fetcher(this.browserTokenURL ?? `${this.baseURL}/realtime/client_secrets`, {
|
|
2066
2373
|
method: "POST",
|
|
2067
|
-
headers:
|
|
2374
|
+
headers: resolveOpenAIRealtimeHeaders(this.apiKey, providerOptions, true),
|
|
2068
2375
|
body: JSON.stringify({
|
|
2069
2376
|
...(expiresAfter ? { expires_after: expiresAfter } : {}),
|
|
2070
2377
|
session: mapRealtimeSessionConfig({
|
|
@@ -2106,13 +2413,14 @@ export const createOpenAI = (options = {}) => {
|
|
|
2106
2413
|
}
|
|
2107
2414
|
const baseURL = options.baseURL ?? "https://api.openai.com/v1";
|
|
2108
2415
|
const fetcher = options.fetch ?? globalThis.fetch;
|
|
2109
|
-
const responseLimits =
|
|
2416
|
+
const responseLimits = resolveOpenAIResponseLimits(options.responseLimits);
|
|
2110
2417
|
return createProviderAdapter({
|
|
2111
2418
|
name: "openai",
|
|
2112
|
-
languageModel: (modelId) => new OpenAILanguageModel(modelId, apiKey, baseURL, fetcher),
|
|
2419
|
+
languageModel: (modelId) => new OpenAILanguageModel(modelId, apiKey, baseURL, fetcher, responseLimits),
|
|
2113
2420
|
embeddingModel: (modelId) => new OpenAIEmbeddingModel(modelId, apiKey, baseURL, fetcher),
|
|
2114
2421
|
transcriptionModel: (modelId) => new OpenAITranscriptionModel(modelId, apiKey, baseURL, fetcher, responseLimits),
|
|
2115
2422
|
speechModel: (modelId) => new OpenAISpeechModel(modelId, apiKey, baseURL, fetcher, responseLimits),
|
|
2423
|
+
imageGenerationModel: (modelId) => createOpenAIImageGenerationModel({ modelId, apiKey, baseURL, fetch: fetcher }),
|
|
2116
2424
|
realtimeModel: (modelId) => new OpenAIRealtimeModel(modelId, apiKey, baseURL, fetcher, options.realtimeConnectionFactory, options.realtimeURL, options.browserTokenURL),
|
|
2117
2425
|
groundedLanguageModel: (modelId) => new OpenAIGroundedLanguageModel(modelId, apiKey, baseURL, fetcher),
|
|
2118
2426
|
rawFetch: fetcher
|
|
@@ -2174,6 +2482,26 @@ export const openAIMcpApprovalResponse = (response) => providerDataPart("openai"
|
|
|
2174
2482
|
type: "mcp_approval_response",
|
|
2175
2483
|
...response
|
|
2176
2484
|
});
|
|
2485
|
+
export const openAIRealtimeMcpApprovalResult = (response) => ({
|
|
2486
|
+
toolCallId: response.approvalRequestId,
|
|
2487
|
+
toolName: response.name,
|
|
2488
|
+
output: {
|
|
2489
|
+
type: "mcp_approval_response",
|
|
2490
|
+
approve: response.approve,
|
|
2491
|
+
...(response.reason ? { reason: response.reason } : {})
|
|
2492
|
+
},
|
|
2493
|
+
isError: false,
|
|
2494
|
+
providerMetadata: {
|
|
2495
|
+
[openAIRealtimeMcpMetadataKey]: {
|
|
2496
|
+
type: "mcp_approval_response",
|
|
2497
|
+
status: response.approve ? "approved" : "rejected",
|
|
2498
|
+
approval_request_id: response.approvalRequestId,
|
|
2499
|
+
approve: response.approve,
|
|
2500
|
+
...(response.itemId ? { id: response.itemId } : {}),
|
|
2501
|
+
...(response.reason ? { reason: response.reason } : {})
|
|
2502
|
+
}
|
|
2503
|
+
}
|
|
2504
|
+
});
|
|
2177
2505
|
export const openAIPromptCacheBreakpoint = () => providerDataPart("openai", {
|
|
2178
2506
|
type: "prompt_cache_breakpoint",
|
|
2179
2507
|
mode: "explicit"
|
|
@@ -2322,4 +2650,5 @@ export const openAIApplyPatchTool = (config) => ({
|
|
|
2322
2650
|
}),
|
|
2323
2651
|
execute: async ({ operation }) => applyOpenAIPatchOperation(operation, config)
|
|
2324
2652
|
});
|
|
2653
|
+
export * from "./image-generation.js";
|
|
2325
2654
|
//# sourceMappingURL=index.js.map
|