@openai/agents-openai 0.13.1 → 0.13.2
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/experimental/hostedMultiAgent/config.d.ts +7 -0
- package/dist/experimental/hostedMultiAgent/config.js +3 -0
- package/dist/experimental/hostedMultiAgent/config.js.map +1 -0
- package/dist/experimental/hostedMultiAgent/config.mjs +2 -0
- package/dist/experimental/hostedMultiAgent/config.mjs.map +1 -0
- package/dist/experimental/hostedMultiAgent/index.d.ts +3 -0
- package/dist/experimental/hostedMultiAgent/index.js +8 -0
- package/dist/experimental/hostedMultiAgent/index.js.map +1 -0
- package/dist/experimental/hostedMultiAgent/index.mjs +3 -0
- package/dist/experimental/hostedMultiAgent/index.mjs.map +1 -0
- package/dist/experimental/hostedMultiAgent/metadata.d.ts +8 -0
- package/dist/experimental/hostedMultiAgent/metadata.js +36 -0
- package/dist/experimental/hostedMultiAgent/metadata.js.map +1 -0
- package/dist/experimental/hostedMultiAgent/metadata.mjs +33 -0
- package/dist/experimental/hostedMultiAgent/metadata.mjs.map +1 -0
- package/dist/experimental/hostedMultiAgent/model.d.ts +28 -0
- package/dist/experimental/hostedMultiAgent/model.js +677 -0
- package/dist/experimental/hostedMultiAgent/model.js.map +1 -0
- package/dist/experimental/hostedMultiAgent/model.mjs +670 -0
- package/dist/experimental/hostedMultiAgent/model.mjs.map +1 -0
- package/dist/metadata.js +2 -2
- package/dist/metadata.mjs +2 -2
- package/dist/openaiChatCompletionsConverter.js +12 -0
- package/dist/openaiChatCompletionsConverter.js.map +1 -1
- package/dist/openaiChatCompletionsConverter.mjs +12 -0
- package/dist/openaiChatCompletionsConverter.mjs.map +1 -1
- package/dist/openaiChatCompletionsModel.js +27 -0
- package/dist/openaiChatCompletionsModel.js.map +1 -1
- package/dist/openaiChatCompletionsModel.mjs +27 -0
- package/dist/openaiChatCompletionsModel.mjs.map +1 -1
- package/dist/openaiResponsesModel.js +106 -45
- package/dist/openaiResponsesModel.js.map +1 -1
- package/dist/openaiResponsesModel.mjs +106 -45
- package/dist/openaiResponsesModel.mjs.map +1 -1
- package/package.json +14 -2
|
@@ -1089,6 +1089,9 @@ function getInputMessageContent(entry) {
|
|
|
1089
1089
|
return {
|
|
1090
1090
|
type: 'input_text',
|
|
1091
1091
|
text: entry.text,
|
|
1092
|
+
...(entry.promptCacheBreakpoint
|
|
1093
|
+
? { prompt_cache_breakpoint: entry.promptCacheBreakpoint }
|
|
1094
|
+
: {}),
|
|
1092
1095
|
...(0, providerData_1.getSnakeCasedProviderDataWithoutReservedKeys)(entry.providerData, [
|
|
1093
1096
|
'type',
|
|
1094
1097
|
'text',
|
|
@@ -1114,6 +1117,9 @@ function getInputMessageContent(entry) {
|
|
|
1114
1117
|
}
|
|
1115
1118
|
return {
|
|
1116
1119
|
...imageEntry,
|
|
1120
|
+
...(entry.promptCacheBreakpoint
|
|
1121
|
+
? { prompt_cache_breakpoint: entry.promptCacheBreakpoint }
|
|
1122
|
+
: {}),
|
|
1117
1123
|
...(0, providerData_1.getSnakeCasedProviderDataWithoutReservedKeys)(entry.providerData, [
|
|
1118
1124
|
'type',
|
|
1119
1125
|
'detail',
|
|
@@ -1168,6 +1174,9 @@ function getInputMessageContent(entry) {
|
|
|
1168
1174
|
}
|
|
1169
1175
|
return {
|
|
1170
1176
|
...fileEntry,
|
|
1177
|
+
...(entry.promptCacheBreakpoint
|
|
1178
|
+
? { prompt_cache_breakpoint: entry.promptCacheBreakpoint }
|
|
1179
|
+
: {}),
|
|
1171
1180
|
...(0, providerData_1.getSnakeCasedProviderDataWithoutReservedKeys)(entry.providerData, [
|
|
1172
1181
|
'type',
|
|
1173
1182
|
'file_data',
|
|
@@ -2074,6 +2083,66 @@ class OpenAIResponsesModel {
|
|
|
2074
2083
|
getRetryAdvice(args) {
|
|
2075
2084
|
return (0, retryAdvice_1.getOpenAIRetryAdvice)(args);
|
|
2076
2085
|
}
|
|
2086
|
+
/**
|
|
2087
|
+
* @internal
|
|
2088
|
+
*/
|
|
2089
|
+
_convertResponseOutputItems(items) {
|
|
2090
|
+
return convertToOutputItem(items);
|
|
2091
|
+
}
|
|
2092
|
+
/**
|
|
2093
|
+
* @internal
|
|
2094
|
+
*/
|
|
2095
|
+
_getResponseForSDKOutput(response) {
|
|
2096
|
+
return response;
|
|
2097
|
+
}
|
|
2098
|
+
/**
|
|
2099
|
+
* @internal
|
|
2100
|
+
*/
|
|
2101
|
+
_shouldEmitOutputTextDelta(_event, _outputItem) {
|
|
2102
|
+
return true;
|
|
2103
|
+
}
|
|
2104
|
+
/**
|
|
2105
|
+
* @internal
|
|
2106
|
+
*/
|
|
2107
|
+
_shouldEmitRawModelEvent(_event) {
|
|
2108
|
+
return true;
|
|
2109
|
+
}
|
|
2110
|
+
/**
|
|
2111
|
+
* @internal
|
|
2112
|
+
*/
|
|
2113
|
+
_getResponsesCreateRequestOverrides(_request, _requestData) {
|
|
2114
|
+
return {};
|
|
2115
|
+
}
|
|
2116
|
+
/**
|
|
2117
|
+
* @internal
|
|
2118
|
+
*/
|
|
2119
|
+
_getResponseUsage(response) {
|
|
2120
|
+
return new agents_core_1.Usage({
|
|
2121
|
+
inputTokens: response.usage?.input_tokens ?? 0,
|
|
2122
|
+
outputTokens: response.usage?.output_tokens ?? 0,
|
|
2123
|
+
totalTokens: response.usage?.total_tokens ?? 0,
|
|
2124
|
+
inputTokensDetails: { ...response.usage?.input_tokens_details },
|
|
2125
|
+
outputTokensDetails: { ...response.usage?.output_tokens_details },
|
|
2126
|
+
requestUsageEntries: [
|
|
2127
|
+
(0, responsesUtils_1.toRequestUsageEntry)(response.usage, 'responses.create'),
|
|
2128
|
+
],
|
|
2129
|
+
});
|
|
2130
|
+
}
|
|
2131
|
+
/**
|
|
2132
|
+
* @internal
|
|
2133
|
+
*/
|
|
2134
|
+
_getStreamedResponseUsage(response) {
|
|
2135
|
+
return {
|
|
2136
|
+
inputTokens: response.usage?.input_tokens ?? 0,
|
|
2137
|
+
outputTokens: response.usage?.output_tokens ?? 0,
|
|
2138
|
+
totalTokens: response.usage?.total_tokens ?? 0,
|
|
2139
|
+
inputTokensDetails: { ...response.usage?.input_tokens_details },
|
|
2140
|
+
outputTokensDetails: { ...response.usage?.output_tokens_details },
|
|
2141
|
+
requestUsageEntries: [
|
|
2142
|
+
(0, responsesUtils_1.toRequestUsageEntry)(response.usage, 'responses.create'),
|
|
2143
|
+
],
|
|
2144
|
+
};
|
|
2145
|
+
}
|
|
2077
2146
|
async _fetchResponse(request, stream) {
|
|
2078
2147
|
const builtRequest = this._buildResponsesCreateRequest(request, stream);
|
|
2079
2148
|
const requestOptions = {
|
|
@@ -2187,6 +2256,7 @@ class OpenAIResponsesModel {
|
|
|
2187
2256
|
text: responseFormat,
|
|
2188
2257
|
store: request.modelSettings.store,
|
|
2189
2258
|
prompt_cache_retention: (0, modelSettings_1.normalizePromptCacheRetention)(request.modelSettings.promptCacheRetention),
|
|
2259
|
+
prompt_cache_options: request.modelSettings.promptCacheOptions,
|
|
2190
2260
|
context_management: getContextManagement(request.modelSettings.contextManagement),
|
|
2191
2261
|
...restOfProviderData,
|
|
2192
2262
|
};
|
|
@@ -2196,6 +2266,10 @@ class OpenAIResponsesModel {
|
|
|
2196
2266
|
...transportOverrides.extraBody,
|
|
2197
2267
|
};
|
|
2198
2268
|
}
|
|
2269
|
+
requestData = {
|
|
2270
|
+
...requestData,
|
|
2271
|
+
...this._getResponsesCreateRequestOverrides(request, requestData),
|
|
2272
|
+
};
|
|
2199
2273
|
// Keep the transport mode aligned with the calling path even if extra_body includes stream.
|
|
2200
2274
|
requestData.stream = stream;
|
|
2201
2275
|
const requestHeaderAccumulator = (0, responsesTransportUtils_1.createHeaderAccumulator)();
|
|
@@ -2234,18 +2308,10 @@ class OpenAIResponsesModel {
|
|
|
2234
2308
|
}
|
|
2235
2309
|
return response;
|
|
2236
2310
|
});
|
|
2311
|
+
const responseForSDKOutput = this._getResponseForSDKOutput(response);
|
|
2237
2312
|
const output = {
|
|
2238
|
-
usage:
|
|
2239
|
-
|
|
2240
|
-
outputTokens: response.usage?.output_tokens ?? 0,
|
|
2241
|
-
totalTokens: response.usage?.total_tokens ?? 0,
|
|
2242
|
-
inputTokensDetails: { ...response.usage?.input_tokens_details },
|
|
2243
|
-
outputTokensDetails: { ...response.usage?.output_tokens_details },
|
|
2244
|
-
requestUsageEntries: [
|
|
2245
|
-
(0, responsesUtils_1.toRequestUsageEntry)(response.usage, 'responses.create'),
|
|
2246
|
-
],
|
|
2247
|
-
}),
|
|
2248
|
-
output: convertToOutputItem(response.output),
|
|
2313
|
+
usage: this._getResponseUsage(response),
|
|
2314
|
+
output: this._convertResponseOutputItems(responseForSDKOutput.output),
|
|
2249
2315
|
responseId: response.id,
|
|
2250
2316
|
requestId: getOpenAIResponseRequestId(response),
|
|
2251
2317
|
providerData: response,
|
|
@@ -2269,8 +2335,17 @@ class OpenAIResponsesModel {
|
|
|
2269
2335
|
}
|
|
2270
2336
|
const response = await this._fetchResponse(request, true);
|
|
2271
2337
|
let finalResponse;
|
|
2338
|
+
const outputItemsByIndex = new Map();
|
|
2272
2339
|
for await (const event of response) {
|
|
2273
2340
|
const eventType = event.type;
|
|
2341
|
+
const shouldEmitRawModelEvent = this._shouldEmitRawModelEvent(event);
|
|
2342
|
+
if (eventType === 'response.output_item.added') {
|
|
2343
|
+
const outputItemAdded = event;
|
|
2344
|
+
if (typeof outputItemAdded.output_index === 'number' &&
|
|
2345
|
+
outputItemAdded.item) {
|
|
2346
|
+
outputItemsByIndex.set(outputItemAdded.output_index, outputItemAdded.item);
|
|
2347
|
+
}
|
|
2348
|
+
}
|
|
2274
2349
|
if (eventType === 'response.created') {
|
|
2275
2350
|
yield {
|
|
2276
2351
|
type: 'response_started',
|
|
@@ -2283,56 +2358,42 @@ class OpenAIResponsesModel {
|
|
|
2283
2358
|
const terminalEvent = event;
|
|
2284
2359
|
finalResponse = terminalEvent.response;
|
|
2285
2360
|
const { response, ...remainingEvent } = terminalEvent;
|
|
2286
|
-
const { output, usage, id, ...remainingResponse } = response;
|
|
2361
|
+
const { output: _output, usage: _usage, id, ...remainingResponse } = response;
|
|
2362
|
+
const responseForSDKOutput = this._getResponseForSDKOutput(response);
|
|
2287
2363
|
yield {
|
|
2288
2364
|
type: 'response_done',
|
|
2289
2365
|
response: {
|
|
2290
2366
|
id: id,
|
|
2291
2367
|
requestId: getOpenAIResponseRequestId(response),
|
|
2292
|
-
output:
|
|
2293
|
-
usage:
|
|
2294
|
-
inputTokens: usage?.input_tokens ?? 0,
|
|
2295
|
-
outputTokens: usage?.output_tokens ?? 0,
|
|
2296
|
-
totalTokens: usage?.total_tokens ?? 0,
|
|
2297
|
-
inputTokensDetails: {
|
|
2298
|
-
...usage?.input_tokens_details,
|
|
2299
|
-
},
|
|
2300
|
-
outputTokensDetails: {
|
|
2301
|
-
...usage?.output_tokens_details,
|
|
2302
|
-
},
|
|
2303
|
-
requestUsageEntries: [
|
|
2304
|
-
(0, responsesUtils_1.toRequestUsageEntry)(usage, 'responses.create'),
|
|
2305
|
-
],
|
|
2306
|
-
},
|
|
2368
|
+
output: this._convertResponseOutputItems(responseForSDKOutput.output),
|
|
2369
|
+
usage: this._getStreamedResponseUsage(response),
|
|
2307
2370
|
providerData: remainingResponse,
|
|
2308
2371
|
},
|
|
2309
2372
|
providerData: remainingEvent,
|
|
2310
2373
|
};
|
|
2311
|
-
|
|
2374
|
+
}
|
|
2375
|
+
else if (eventType === 'response.output_text.delta') {
|
|
2376
|
+
const { delta, ...remainingEvent } = event;
|
|
2377
|
+
const outputItem = typeof remainingEvent.output_index === 'number'
|
|
2378
|
+
? outputItemsByIndex.get(remainingEvent.output_index)
|
|
2379
|
+
: undefined;
|
|
2380
|
+
if (this._shouldEmitOutputTextDelta(event, outputItem)) {
|
|
2312
2381
|
yield {
|
|
2313
|
-
type: '
|
|
2314
|
-
|
|
2315
|
-
providerData:
|
|
2316
|
-
rawModelEventSource: rawModelEvents_1.OPENAI_RESPONSES_RAW_MODEL_EVENT_SOURCE,
|
|
2317
|
-
},
|
|
2382
|
+
type: 'output_text_delta',
|
|
2383
|
+
delta: delta,
|
|
2384
|
+
providerData: remainingEvent,
|
|
2318
2385
|
};
|
|
2319
2386
|
}
|
|
2320
2387
|
}
|
|
2321
|
-
|
|
2322
|
-
const { delta, ...remainingEvent } = event;
|
|
2388
|
+
if (shouldEmitRawModelEvent) {
|
|
2323
2389
|
yield {
|
|
2324
|
-
type: '
|
|
2325
|
-
|
|
2326
|
-
providerData:
|
|
2390
|
+
type: 'model',
|
|
2391
|
+
event: event,
|
|
2392
|
+
providerData: {
|
|
2393
|
+
rawModelEventSource: rawModelEvents_1.OPENAI_RESPONSES_RAW_MODEL_EVENT_SOURCE,
|
|
2394
|
+
},
|
|
2327
2395
|
};
|
|
2328
2396
|
}
|
|
2329
|
-
yield {
|
|
2330
|
-
type: 'model',
|
|
2331
|
-
event: event,
|
|
2332
|
-
providerData: {
|
|
2333
|
-
rawModelEventSource: rawModelEvents_1.OPENAI_RESPONSES_RAW_MODEL_EVENT_SOURCE,
|
|
2334
|
-
},
|
|
2335
|
-
};
|
|
2336
2397
|
}
|
|
2337
2398
|
if (request.tracing && span && finalResponse) {
|
|
2338
2399
|
span.spanData.response_id = finalResponse.id;
|