@openai/agents-openai 0.1.11 → 0.2.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/dist/metadata.js +3 -3
- package/dist/metadata.js.map +1 -1
- package/dist/metadata.mjs +3 -3
- package/dist/metadata.mjs.map +1 -1
- package/dist/openaiChatCompletionsConverter.js +33 -7
- package/dist/openaiChatCompletionsConverter.js.map +1 -1
- package/dist/openaiChatCompletionsConverter.mjs +33 -7
- package/dist/openaiChatCompletionsConverter.mjs.map +1 -1
- package/dist/openaiResponsesModel.js +300 -8
- package/dist/openaiResponsesModel.js.map +1 -1
- package/dist/openaiResponsesModel.mjs +300 -8
- package/dist/openaiResponsesModel.mjs.map +1 -1
- package/package.json +5 -5
package/dist/metadata.js
CHANGED
|
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.METADATA = void 0;
|
|
5
5
|
exports.METADATA = {
|
|
6
6
|
"name": "@openai/agents-openai",
|
|
7
|
-
"version": "0.1
|
|
7
|
+
"version": "0.2.1",
|
|
8
8
|
"versions": {
|
|
9
|
-
"@openai/agents-openai": "0.1
|
|
9
|
+
"@openai/agents-openai": "0.2.1",
|
|
10
10
|
"@openai/agents-core": "workspace:*",
|
|
11
|
-
"openai": "^
|
|
11
|
+
"openai": "^6"
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
14
|
exports.default = exports.METADATA;
|
package/dist/metadata.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":";AACA,uCAAuC;;;AAE1B,QAAA,QAAQ,GAAG;IACtB,MAAM,EAAE,uBAAuB;IAC/B,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":";AACA,uCAAuC;;;AAE1B,QAAA,QAAQ,GAAG;IACtB,MAAM,EAAE,uBAAuB;IAC/B,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE;QACV,uBAAuB,EAAE,OAAO;QAChC,qBAAqB,EAAE,aAAa;QACpC,QAAQ,EAAE,IAAI;KACf;CACF,CAAC;AAEF,kBAAe,gBAAQ,CAAC"}
|
package/dist/metadata.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// This file is automatically generated
|
|
2
2
|
export const METADATA = {
|
|
3
3
|
"name": "@openai/agents-openai",
|
|
4
|
-
"version": "0.1
|
|
4
|
+
"version": "0.2.1",
|
|
5
5
|
"versions": {
|
|
6
|
-
"@openai/agents-openai": "0.1
|
|
6
|
+
"@openai/agents-openai": "0.2.1",
|
|
7
7
|
"@openai/agents-core": "workspace:*",
|
|
8
|
-
"openai": "^
|
|
8
|
+
"openai": "^6"
|
|
9
9
|
}
|
|
10
10
|
};
|
|
11
11
|
export default METADATA;
|
package/dist/metadata.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.mjs","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AACA,uCAAuC;AAEvC,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,MAAM,EAAE,uBAAuB;IAC/B,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"metadata.mjs","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AACA,uCAAuC;AAEvC,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,MAAM,EAAE,uBAAuB;IAC/B,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE;QACV,uBAAuB,EAAE,OAAO;QAChC,qBAAqB,EAAE,aAAa;QACpC,QAAQ,EAAE,IAAI;KACf;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -60,14 +60,21 @@ function extractAllUserContent(content) {
|
|
|
60
60
|
out.push({ type: 'text', text: c.text, ...c.providerData });
|
|
61
61
|
}
|
|
62
62
|
else if (c.type === 'input_image') {
|
|
63
|
-
|
|
63
|
+
// The Chat Completions API only accepts image URLs. If we see a file reference we reject it
|
|
64
|
+
// early so callers get an actionable error instead of a cryptic API response.
|
|
65
|
+
const imageSource = typeof c.image === 'string'
|
|
66
|
+
? c.image
|
|
67
|
+
: typeof c.imageUrl === 'string'
|
|
68
|
+
? c.imageUrl
|
|
69
|
+
: undefined;
|
|
70
|
+
if (!imageSource) {
|
|
64
71
|
throw new Error(`Only image URLs are supported for input_image: ${JSON.stringify(c)}`);
|
|
65
72
|
}
|
|
66
73
|
const { image_url, ...rest } = c.providerData || {};
|
|
67
74
|
out.push({
|
|
68
75
|
type: 'image_url',
|
|
69
76
|
image_url: {
|
|
70
|
-
url:
|
|
77
|
+
url: imageSource,
|
|
71
78
|
...image_url,
|
|
72
79
|
},
|
|
73
80
|
...rest,
|
|
@@ -219,14 +226,11 @@ function itemsToMessages(items) {
|
|
|
219
226
|
else if (item.type === 'function_call_result') {
|
|
220
227
|
flushAssistantMessage();
|
|
221
228
|
const funcOutput = item;
|
|
222
|
-
|
|
223
|
-
throw new agents_core_1.UserError('Only text output is supported for chat completions. Got item: ' +
|
|
224
|
-
JSON.stringify(item));
|
|
225
|
-
}
|
|
229
|
+
const toolContent = normalizeFunctionCallOutputForChat(funcOutput.output);
|
|
226
230
|
result.push({
|
|
227
231
|
role: 'tool',
|
|
228
232
|
tool_call_id: funcOutput.callId,
|
|
229
|
-
content:
|
|
233
|
+
content: toolContent,
|
|
230
234
|
...funcOutput.providerData,
|
|
231
235
|
});
|
|
232
236
|
}
|
|
@@ -243,6 +247,28 @@ function itemsToMessages(items) {
|
|
|
243
247
|
flushAssistantMessage();
|
|
244
248
|
return result;
|
|
245
249
|
}
|
|
250
|
+
function normalizeFunctionCallOutputForChat(output) {
|
|
251
|
+
if (typeof output === 'string') {
|
|
252
|
+
return output;
|
|
253
|
+
}
|
|
254
|
+
if (Array.isArray(output)) {
|
|
255
|
+
const textOnly = output.every((item) => item.type === 'input_text');
|
|
256
|
+
if (!textOnly) {
|
|
257
|
+
throw new agents_core_1.UserError('Only text tool outputs are supported for chat completions.');
|
|
258
|
+
}
|
|
259
|
+
return output.map((item) => item.text).join('');
|
|
260
|
+
}
|
|
261
|
+
if (isRecord(output) &&
|
|
262
|
+
output.type === 'text' &&
|
|
263
|
+
typeof output.text === 'string') {
|
|
264
|
+
return output.text;
|
|
265
|
+
}
|
|
266
|
+
throw new agents_core_1.UserError('Only text tool outputs are supported for chat completions. Got item: ' +
|
|
267
|
+
JSON.stringify(output));
|
|
268
|
+
}
|
|
269
|
+
function isRecord(value) {
|
|
270
|
+
return typeof value === 'object' && value !== null;
|
|
271
|
+
}
|
|
246
272
|
function toolToOpenAI(tool) {
|
|
247
273
|
if (tool.type === 'function') {
|
|
248
274
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openaiChatCompletionsConverter.js","sourceRoot":"","sources":["../src/openaiChatCompletionsConverter.ts"],"names":[],"mappings":";;AAeA,8CAcC;AAED,gEA6BC;AAED,
|
|
1
|
+
{"version":3,"file":"openaiChatCompletionsConverter.js","sourceRoot":"","sources":["../src/openaiChatCompletionsConverter.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,14 +52,21 @@ export function extractAllUserContent(content) {
|
|
|
52
52
|
out.push({ type: 'text', text: c.text, ...c.providerData });
|
|
53
53
|
}
|
|
54
54
|
else if (c.type === 'input_image') {
|
|
55
|
-
|
|
55
|
+
// The Chat Completions API only accepts image URLs. If we see a file reference we reject it
|
|
56
|
+
// early so callers get an actionable error instead of a cryptic API response.
|
|
57
|
+
const imageSource = typeof c.image === 'string'
|
|
58
|
+
? c.image
|
|
59
|
+
: typeof c.imageUrl === 'string'
|
|
60
|
+
? c.imageUrl
|
|
61
|
+
: undefined;
|
|
62
|
+
if (!imageSource) {
|
|
56
63
|
throw new Error(`Only image URLs are supported for input_image: ${JSON.stringify(c)}`);
|
|
57
64
|
}
|
|
58
65
|
const { image_url, ...rest } = c.providerData || {};
|
|
59
66
|
out.push({
|
|
60
67
|
type: 'image_url',
|
|
61
68
|
image_url: {
|
|
62
|
-
url:
|
|
69
|
+
url: imageSource,
|
|
63
70
|
...image_url,
|
|
64
71
|
},
|
|
65
72
|
...rest,
|
|
@@ -211,14 +218,11 @@ export function itemsToMessages(items) {
|
|
|
211
218
|
else if (item.type === 'function_call_result') {
|
|
212
219
|
flushAssistantMessage();
|
|
213
220
|
const funcOutput = item;
|
|
214
|
-
|
|
215
|
-
throw new UserError('Only text output is supported for chat completions. Got item: ' +
|
|
216
|
-
JSON.stringify(item));
|
|
217
|
-
}
|
|
221
|
+
const toolContent = normalizeFunctionCallOutputForChat(funcOutput.output);
|
|
218
222
|
result.push({
|
|
219
223
|
role: 'tool',
|
|
220
224
|
tool_call_id: funcOutput.callId,
|
|
221
|
-
content:
|
|
225
|
+
content: toolContent,
|
|
222
226
|
...funcOutput.providerData,
|
|
223
227
|
});
|
|
224
228
|
}
|
|
@@ -235,6 +239,28 @@ export function itemsToMessages(items) {
|
|
|
235
239
|
flushAssistantMessage();
|
|
236
240
|
return result;
|
|
237
241
|
}
|
|
242
|
+
function normalizeFunctionCallOutputForChat(output) {
|
|
243
|
+
if (typeof output === 'string') {
|
|
244
|
+
return output;
|
|
245
|
+
}
|
|
246
|
+
if (Array.isArray(output)) {
|
|
247
|
+
const textOnly = output.every((item) => item.type === 'input_text');
|
|
248
|
+
if (!textOnly) {
|
|
249
|
+
throw new UserError('Only text tool outputs are supported for chat completions.');
|
|
250
|
+
}
|
|
251
|
+
return output.map((item) => item.text).join('');
|
|
252
|
+
}
|
|
253
|
+
if (isRecord(output) &&
|
|
254
|
+
output.type === 'text' &&
|
|
255
|
+
typeof output.text === 'string') {
|
|
256
|
+
return output.text;
|
|
257
|
+
}
|
|
258
|
+
throw new UserError('Only text tool outputs are supported for chat completions. Got item: ' +
|
|
259
|
+
JSON.stringify(output));
|
|
260
|
+
}
|
|
261
|
+
function isRecord(value) {
|
|
262
|
+
return typeof value === 'object' && value !== null;
|
|
263
|
+
}
|
|
238
264
|
export function toolToOpenAI(tool) {
|
|
239
265
|
if (tool.type === 'function') {
|
|
240
266
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openaiChatCompletionsConverter.mjs","sourceRoot":"","sources":["../src/openaiChatCompletionsConverter.ts"],"names":[],"mappings":"OAOO,EAKL,SAAS,GACV,MAAM,qBAAqB;AAE5B,MAAM,UAAU,iBAAiB,CAC/B,UAAoE;IAEpE,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IACpE,IACE,UAAU,KAAK,MAAM;QACrB,UAAU,KAAK,UAAU;QACzB,UAAU,KAAK,MAAM;QAErB,OAAO,UAAU,CAAC;IACpB,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAAiD;IAEjD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,GAAG,GAAmD,EAAE,CAAC;IAC/D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAC7B,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,GAAG,CAAC,CAAC,YAAY;aAClB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAChC,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,GAAG,CAAC,CAAC,YAAY;aAClB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACpD,iEAAiE;YACjE,SAAS;QACX,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,CAAiB,CAAC,CAAC,sCAAsC;YAC5E,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAA4C;IAE5C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,GAAG,GAAgC,EAAE,CAAC;IAC5C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;QAC9D,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACpC,
|
|
1
|
+
{"version":3,"file":"openaiChatCompletionsConverter.mjs","sourceRoot":"","sources":["../src/openaiChatCompletionsConverter.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ const zod_1 = require("zod");
|
|
|
14
14
|
const defaults_1 = require("./defaults.js");
|
|
15
15
|
const tools_1 = require("./tools.js");
|
|
16
16
|
const providerData_1 = require("./utils/providerData.js");
|
|
17
|
+
const utils_1 = require("@openai/agents-core/utils");
|
|
17
18
|
const HostedToolChoice = zod_1.z.enum([
|
|
18
19
|
'file_search',
|
|
19
20
|
'web_search',
|
|
@@ -47,6 +48,274 @@ function getResponseFormat(outputType, otherProperties) {
|
|
|
47
48
|
format: outputType,
|
|
48
49
|
};
|
|
49
50
|
}
|
|
51
|
+
function normalizeFunctionCallOutputForRequest(output) {
|
|
52
|
+
if (typeof output === 'string') {
|
|
53
|
+
return output;
|
|
54
|
+
}
|
|
55
|
+
if (Array.isArray(output)) {
|
|
56
|
+
return output.map(convertStructuredOutputToRequestItem);
|
|
57
|
+
}
|
|
58
|
+
if (isRecord(output) && typeof output.type === 'string') {
|
|
59
|
+
if (output.type === 'text' && typeof output.text === 'string') {
|
|
60
|
+
return output.text;
|
|
61
|
+
}
|
|
62
|
+
if (output.type === 'image' || output.type === 'file') {
|
|
63
|
+
const structuredItems = convertLegacyToolOutputContent(output);
|
|
64
|
+
return structuredItems.map(convertStructuredOutputToRequestItem);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return String(output);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Older tool integrations (and the Python SDK) still return their own `ToolOutput*` objects.
|
|
71
|
+
* Translate those into the protocol `input_*` structures so the rest of the pipeline can stay
|
|
72
|
+
* agnostic about who produced the data.
|
|
73
|
+
*/
|
|
74
|
+
function convertLegacyToolOutputContent(output) {
|
|
75
|
+
if (output.type === 'text') {
|
|
76
|
+
const structured = {
|
|
77
|
+
type: 'input_text',
|
|
78
|
+
text: output.text,
|
|
79
|
+
};
|
|
80
|
+
if (output.providerData) {
|
|
81
|
+
structured.providerData = output.providerData;
|
|
82
|
+
}
|
|
83
|
+
return [structured];
|
|
84
|
+
}
|
|
85
|
+
if (output.type === 'image') {
|
|
86
|
+
const structured = {
|
|
87
|
+
type: 'input_image',
|
|
88
|
+
};
|
|
89
|
+
if (output.detail) {
|
|
90
|
+
structured.detail = output.detail;
|
|
91
|
+
}
|
|
92
|
+
const legacyImageUrl = output.imageUrl;
|
|
93
|
+
const legacyFileId = output.fileId;
|
|
94
|
+
const dataValue = output.data;
|
|
95
|
+
if (typeof output.image === 'string' && output.image.length > 0) {
|
|
96
|
+
structured.image = output.image;
|
|
97
|
+
}
|
|
98
|
+
else if (isRecord(output.image)) {
|
|
99
|
+
const imageObj = output.image;
|
|
100
|
+
const inlineMediaType = getImageInlineMediaType(imageObj);
|
|
101
|
+
if (typeof imageObj.url === 'string' && imageObj.url.length > 0) {
|
|
102
|
+
structured.image = imageObj.url;
|
|
103
|
+
}
|
|
104
|
+
else if (typeof imageObj.data === 'string' &&
|
|
105
|
+
imageObj.data.length > 0) {
|
|
106
|
+
structured.image = formatInlineData(imageObj.data, inlineMediaType);
|
|
107
|
+
}
|
|
108
|
+
else if (imageObj.data instanceof Uint8Array &&
|
|
109
|
+
imageObj.data.length > 0) {
|
|
110
|
+
structured.image = formatInlineData(imageObj.data, inlineMediaType);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
const referencedId = (typeof imageObj.fileId === 'string' &&
|
|
114
|
+
imageObj.fileId.length > 0 &&
|
|
115
|
+
imageObj.fileId) ||
|
|
116
|
+
(typeof imageObj.id === 'string' && imageObj.id.length > 0
|
|
117
|
+
? imageObj.id
|
|
118
|
+
: undefined);
|
|
119
|
+
if (referencedId) {
|
|
120
|
+
structured.image = { id: referencedId };
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else if (typeof legacyImageUrl === 'string' &&
|
|
125
|
+
legacyImageUrl.length > 0) {
|
|
126
|
+
structured.image = legacyImageUrl;
|
|
127
|
+
}
|
|
128
|
+
else if (typeof legacyFileId === 'string' && legacyFileId.length > 0) {
|
|
129
|
+
structured.image = { id: legacyFileId };
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
let base64Data;
|
|
133
|
+
if (typeof dataValue === 'string' && dataValue.length > 0) {
|
|
134
|
+
base64Data = dataValue;
|
|
135
|
+
}
|
|
136
|
+
else if (dataValue instanceof Uint8Array && dataValue.length > 0) {
|
|
137
|
+
base64Data = (0, utils_1.encodeUint8ArrayToBase64)(dataValue);
|
|
138
|
+
}
|
|
139
|
+
if (base64Data) {
|
|
140
|
+
structured.image = base64Data;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (output.providerData) {
|
|
144
|
+
structured.providerData = output.providerData;
|
|
145
|
+
}
|
|
146
|
+
return [structured];
|
|
147
|
+
}
|
|
148
|
+
if (output.type === 'file') {
|
|
149
|
+
const structured = {
|
|
150
|
+
type: 'input_file',
|
|
151
|
+
};
|
|
152
|
+
const fileValue = output.file ?? output.file;
|
|
153
|
+
if (typeof fileValue === 'string') {
|
|
154
|
+
structured.file = fileValue;
|
|
155
|
+
}
|
|
156
|
+
else if (isRecord(fileValue)) {
|
|
157
|
+
if (typeof fileValue.data === 'string' && fileValue.data.length > 0) {
|
|
158
|
+
structured.file = formatInlineData(fileValue.data, fileValue.mediaType ?? 'text/plain');
|
|
159
|
+
}
|
|
160
|
+
else if (fileValue.data instanceof Uint8Array &&
|
|
161
|
+
fileValue.data.length > 0) {
|
|
162
|
+
structured.file = formatInlineData(fileValue.data, fileValue.mediaType ?? 'text/plain');
|
|
163
|
+
}
|
|
164
|
+
else if (typeof fileValue.url === 'string' &&
|
|
165
|
+
fileValue.url.length > 0) {
|
|
166
|
+
structured.file = { url: fileValue.url };
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
const referencedId = (typeof fileValue.id === 'string' &&
|
|
170
|
+
fileValue.id.length > 0 &&
|
|
171
|
+
fileValue.id) ||
|
|
172
|
+
(typeof fileValue.fileId === 'string' &&
|
|
173
|
+
fileValue.fileId.length > 0
|
|
174
|
+
? fileValue.fileId
|
|
175
|
+
: undefined);
|
|
176
|
+
if (referencedId) {
|
|
177
|
+
structured.file = { id: referencedId };
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
if (typeof fileValue.filename === 'string' &&
|
|
181
|
+
fileValue.filename.length > 0) {
|
|
182
|
+
structured.filename = fileValue.filename;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
if (!structured.file) {
|
|
186
|
+
const legacy = normalizeLegacyFileFromOutput(output);
|
|
187
|
+
if (legacy.file) {
|
|
188
|
+
structured.file = legacy.file;
|
|
189
|
+
}
|
|
190
|
+
if (legacy.filename) {
|
|
191
|
+
structured.filename = legacy.filename;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
if (output.providerData) {
|
|
195
|
+
structured.providerData = output.providerData;
|
|
196
|
+
}
|
|
197
|
+
return [structured];
|
|
198
|
+
}
|
|
199
|
+
throw new agents_core_1.UserError(`Unsupported tool output type: ${JSON.stringify(output)}`);
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Converts the protocol-level structured output into the exact wire format expected by the
|
|
203
|
+
* Responses API. Be careful to keep the snake_case property names the service requires here.
|
|
204
|
+
*/
|
|
205
|
+
function convertStructuredOutputToRequestItem(item) {
|
|
206
|
+
if (item.type === 'input_text') {
|
|
207
|
+
return {
|
|
208
|
+
type: 'input_text',
|
|
209
|
+
text: item.text,
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
if (item.type === 'input_image') {
|
|
213
|
+
const result = { type: 'input_image' };
|
|
214
|
+
const imageValue = item.image ?? item.imageUrl;
|
|
215
|
+
if (typeof imageValue === 'string') {
|
|
216
|
+
result.image_url = imageValue;
|
|
217
|
+
}
|
|
218
|
+
else if (isRecord(imageValue) && typeof imageValue.id === 'string') {
|
|
219
|
+
result.file_id = imageValue.id;
|
|
220
|
+
}
|
|
221
|
+
const legacyFileId = item.fileId;
|
|
222
|
+
if (typeof legacyFileId === 'string') {
|
|
223
|
+
result.file_id = legacyFileId;
|
|
224
|
+
}
|
|
225
|
+
if (item.detail) {
|
|
226
|
+
result.detail = item.detail;
|
|
227
|
+
}
|
|
228
|
+
return result;
|
|
229
|
+
}
|
|
230
|
+
if (item.type === 'input_file') {
|
|
231
|
+
const result = { type: 'input_file' };
|
|
232
|
+
if (typeof item.file === 'string') {
|
|
233
|
+
const value = item.file.trim();
|
|
234
|
+
if (value.startsWith('data:')) {
|
|
235
|
+
result.file_data = value;
|
|
236
|
+
}
|
|
237
|
+
else if (value.startsWith('http://') || value.startsWith('https://')) {
|
|
238
|
+
result.file_url = value;
|
|
239
|
+
}
|
|
240
|
+
else if (/^[A-Za-z0-9+/=]+$/.test(value)) {
|
|
241
|
+
result.file_data = value;
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
result.file_url = value;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
else if (item.file &&
|
|
248
|
+
typeof item.file === 'object' &&
|
|
249
|
+
'id' in item.file &&
|
|
250
|
+
typeof item.file.id === 'string') {
|
|
251
|
+
result.file_id = item.file.id;
|
|
252
|
+
}
|
|
253
|
+
else if (item.file &&
|
|
254
|
+
typeof item.file === 'object' &&
|
|
255
|
+
'url' in item.file &&
|
|
256
|
+
typeof item.file.url === 'string') {
|
|
257
|
+
result.file_url = item.file.url;
|
|
258
|
+
}
|
|
259
|
+
const legacyFileData = item.fileData;
|
|
260
|
+
if (typeof legacyFileData === 'string') {
|
|
261
|
+
result.file_data = legacyFileData;
|
|
262
|
+
}
|
|
263
|
+
const legacyFileUrl = item.fileUrl;
|
|
264
|
+
if (typeof legacyFileUrl === 'string') {
|
|
265
|
+
result.file_url = legacyFileUrl;
|
|
266
|
+
}
|
|
267
|
+
const legacyFileId = item.fileId;
|
|
268
|
+
if (typeof legacyFileId === 'string') {
|
|
269
|
+
result.file_id = legacyFileId;
|
|
270
|
+
}
|
|
271
|
+
if (item.filename) {
|
|
272
|
+
result.filename = item.filename;
|
|
273
|
+
}
|
|
274
|
+
return result;
|
|
275
|
+
}
|
|
276
|
+
throw new agents_core_1.UserError(`Unsupported structured tool output: ${JSON.stringify(item)}`);
|
|
277
|
+
}
|
|
278
|
+
function normalizeLegacyFileFromOutput(value) {
|
|
279
|
+
const filename = typeof value.filename === 'string' && value.filename.length > 0
|
|
280
|
+
? value.filename
|
|
281
|
+
: undefined;
|
|
282
|
+
const referencedId = (typeof value.id === 'string' && value.id.length > 0 && value.id) ??
|
|
283
|
+
(typeof value.fileId === 'string' && value.fileId.length > 0
|
|
284
|
+
? value.fileId
|
|
285
|
+
: undefined);
|
|
286
|
+
if (referencedId) {
|
|
287
|
+
return { file: { id: referencedId }, filename };
|
|
288
|
+
}
|
|
289
|
+
if (typeof value.fileUrl === 'string' && value.fileUrl.length > 0) {
|
|
290
|
+
return { file: { url: value.fileUrl }, filename };
|
|
291
|
+
}
|
|
292
|
+
if (typeof value.fileData === 'string' && value.fileData.length > 0) {
|
|
293
|
+
return {
|
|
294
|
+
file: formatInlineData(value.fileData, value.mediaType ?? 'text/plain'),
|
|
295
|
+
filename,
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
if (value.fileData instanceof Uint8Array && value.fileData.length > 0) {
|
|
299
|
+
return {
|
|
300
|
+
file: formatInlineData(value.fileData, value.mediaType ?? 'text/plain'),
|
|
301
|
+
filename,
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
return {};
|
|
305
|
+
}
|
|
306
|
+
function isRecord(value) {
|
|
307
|
+
return typeof value === 'object' && value !== null;
|
|
308
|
+
}
|
|
309
|
+
function getImageInlineMediaType(source) {
|
|
310
|
+
if (typeof source.mediaType === 'string' && source.mediaType.length > 0) {
|
|
311
|
+
return source.mediaType;
|
|
312
|
+
}
|
|
313
|
+
return undefined;
|
|
314
|
+
}
|
|
315
|
+
function formatInlineData(data, mediaType) {
|
|
316
|
+
const base64 = typeof data === 'string' ? data : (0, utils_1.encodeUint8ArrayToBase64)(data);
|
|
317
|
+
return mediaType ? `data:${mediaType};base64,${base64}` : base64;
|
|
318
|
+
}
|
|
50
319
|
function getTools(tools, handoffs) {
|
|
51
320
|
const openaiTools = [];
|
|
52
321
|
const include = [];
|
|
@@ -211,14 +480,20 @@ function getInputMessageContent(entry) {
|
|
|
211
480
|
else if (entry.type === 'input_image') {
|
|
212
481
|
const imageEntry = {
|
|
213
482
|
type: 'input_image',
|
|
214
|
-
detail: 'auto',
|
|
483
|
+
detail: (entry.detail ?? 'auto'),
|
|
215
484
|
};
|
|
216
485
|
if (typeof entry.image === 'string') {
|
|
217
486
|
imageEntry.image_url = entry.image;
|
|
218
487
|
}
|
|
219
|
-
else {
|
|
488
|
+
else if (entry.image && 'id' in entry.image) {
|
|
220
489
|
imageEntry.file_id = entry.image.id;
|
|
221
490
|
}
|
|
491
|
+
else if (typeof entry.imageUrl === 'string') {
|
|
492
|
+
imageEntry.image_url = entry.imageUrl;
|
|
493
|
+
}
|
|
494
|
+
else if (typeof entry.fileId === 'string') {
|
|
495
|
+
imageEntry.file_id = entry.fileId;
|
|
496
|
+
}
|
|
222
497
|
return {
|
|
223
498
|
...imageEntry,
|
|
224
499
|
...(0, providerData_1.camelOrSnakeToSnakeCase)(entry.providerData),
|
|
@@ -239,12 +514,31 @@ function getInputMessageContent(entry) {
|
|
|
239
514
|
throw new agents_core_1.UserError(`Unsupported string data for file input. If you're trying to pass an uploaded file's ID, use an object with the ID property instead.`);
|
|
240
515
|
}
|
|
241
516
|
}
|
|
242
|
-
else if (
|
|
517
|
+
else if (entry.file &&
|
|
518
|
+
typeof entry.file === 'object' &&
|
|
519
|
+
'id' in entry.file) {
|
|
243
520
|
fileEntry.file_id = entry.file.id;
|
|
244
521
|
}
|
|
245
|
-
else if (
|
|
522
|
+
else if (entry.file &&
|
|
523
|
+
typeof entry.file === 'object' &&
|
|
524
|
+
'url' in entry.file) {
|
|
246
525
|
fileEntry.file_url = entry.file.url;
|
|
247
526
|
}
|
|
527
|
+
const legacyFileData = entry.fileData;
|
|
528
|
+
if (typeof legacyFileData === 'string') {
|
|
529
|
+
fileEntry.file_data = legacyFileData;
|
|
530
|
+
}
|
|
531
|
+
const legacyFileUrl = entry.fileUrl;
|
|
532
|
+
if (typeof legacyFileUrl === 'string') {
|
|
533
|
+
fileEntry.file_url = legacyFileUrl;
|
|
534
|
+
}
|
|
535
|
+
const legacyFileId = entry.fileId;
|
|
536
|
+
if (typeof legacyFileId === 'string') {
|
|
537
|
+
fileEntry.file_id = legacyFileId;
|
|
538
|
+
}
|
|
539
|
+
if (entry.filename) {
|
|
540
|
+
fileEntry.filename = entry.filename;
|
|
541
|
+
}
|
|
248
542
|
return {
|
|
249
543
|
...fileEntry,
|
|
250
544
|
...(0, providerData_1.camelOrSnakeToSnakeCase)(entry.providerData),
|
|
@@ -362,14 +656,12 @@ function getInputItems(input) {
|
|
|
362
656
|
return entry;
|
|
363
657
|
}
|
|
364
658
|
if (item.type === 'function_call_result') {
|
|
365
|
-
|
|
366
|
-
throw new agents_core_1.UserError(`Unsupported tool result type: ${JSON.stringify(item.output)}`);
|
|
367
|
-
}
|
|
659
|
+
const normalizedOutput = normalizeFunctionCallOutputForRequest(item.output);
|
|
368
660
|
const entry = {
|
|
369
661
|
type: 'function_call_output',
|
|
370
662
|
id: item.id,
|
|
371
663
|
call_id: item.callId,
|
|
372
|
-
output:
|
|
664
|
+
output: normalizedOutput,
|
|
373
665
|
status: item.status,
|
|
374
666
|
...(0, providerData_1.camelOrSnakeToSnakeCase)(item.providerData),
|
|
375
667
|
};
|