@openai/agents-core 0.11.8 → 0.12.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/handoff.d.ts +1 -1
- package/dist/handoff.js +2 -2
- package/dist/handoff.js.map +1 -1
- package/dist/handoff.mjs +2 -2
- package/dist/handoff.mjs.map +1 -1
- package/dist/metadata.js +3 -3
- package/dist/metadata.mjs +3 -3
- package/dist/run.d.ts +2 -13
- package/dist/run.js +15 -40
- package/dist/run.js.map +1 -1
- package/dist/run.mjs +14 -39
- package/dist/run.mjs.map +1 -1
- package/dist/runState.d.ts +1 -1
- package/dist/runState.js +7 -184
- package/dist/runState.js.map +1 -1
- package/dist/runState.mjs +2 -179
- package/dist/runState.mjs.map +1 -1
- package/dist/runStateIdentity.d.ts +6 -0
- package/dist/runStateIdentity.js +171 -0
- package/dist/runStateIdentity.js.map +1 -0
- package/dist/runStateIdentity.mjs +168 -0
- package/dist/runStateIdentity.mjs.map +1 -0
- package/dist/runner/conversation.js +46 -4
- package/dist/runner/conversation.js.map +1 -1
- package/dist/runner/conversation.mjs +46 -4
- package/dist/runner/conversation.mjs.map +1 -1
- package/dist/runner/errorHandlers.d.ts +7 -4
- package/dist/runner/errorHandlers.js +31 -10
- package/dist/runner/errorHandlers.js.map +1 -1
- package/dist/runner/errorHandlers.mjs +31 -10
- package/dist/runner/errorHandlers.mjs.map +1 -1
- package/dist/runner/guardrails.d.ts +4 -2
- package/dist/runner/guardrails.js +23 -20
- package/dist/runner/guardrails.js.map +1 -1
- package/dist/runner/guardrails.mjs +23 -20
- package/dist/runner/guardrails.mjs.map +1 -1
- package/dist/runner/items.js +3 -8
- package/dist/runner/items.js.map +1 -1
- package/dist/runner/items.mjs +3 -8
- package/dist/runner/items.mjs.map +1 -1
- package/dist/runner/modelSettings.d.ts +1 -1
- package/dist/runner/modelSettings.js +2 -2
- package/dist/runner/modelSettings.js.map +1 -1
- package/dist/runner/modelSettings.mjs +2 -2
- package/dist/runner/modelSettings.mjs.map +1 -1
- package/dist/runner/runConfig.d.ts +16 -0
- package/dist/runner/runConfig.js +31 -0
- package/dist/runner/runConfig.js.map +1 -0
- package/dist/runner/runConfig.mjs +27 -0
- package/dist/runner/runConfig.mjs.map +1 -0
- package/dist/runner/runLoop.js +1 -1
- package/dist/runner/runLoop.js.map +1 -1
- package/dist/runner/runLoop.mjs +1 -1
- package/dist/runner/runLoop.mjs.map +1 -1
- package/dist/runner/steps.d.ts +3 -1
- package/dist/runner/steps.js +3 -1
- package/dist/runner/steps.js.map +1 -1
- package/dist/runner/steps.mjs +3 -1
- package/dist/runner/steps.mjs.map +1 -1
- package/dist/runner/toolExecution.js +50 -373
- package/dist/runner/toolExecution.js.map +1 -1
- package/dist/runner/toolExecution.mjs +48 -371
- package/dist/runner/toolExecution.mjs.map +1 -1
- package/dist/runner/toolOutputNormalization.d.ts +16 -0
- package/dist/runner/toolOutputNormalization.js +328 -0
- package/dist/runner/toolOutputNormalization.js.map +1 -0
- package/dist/runner/toolOutputNormalization.mjs +324 -0
- package/dist/runner/toolOutputNormalization.mjs.map +1 -0
- package/dist/runner/toolResultCorrelation.d.ts +22 -0
- package/dist/runner/toolResultCorrelation.js +138 -0
- package/dist/runner/toolResultCorrelation.js.map +1 -0
- package/dist/runner/toolResultCorrelation.mjs +130 -0
- package/dist/runner/toolResultCorrelation.mjs.map +1 -0
- package/dist/runner/turnPreparation.js +1 -5
- package/dist/runner/turnPreparation.js.map +1 -1
- package/dist/runner/turnPreparation.mjs +1 -5
- package/dist/runner/turnPreparation.mjs.map +1 -1
- package/dist/runner/turnResolution.js +66 -15
- package/dist/runner/turnResolution.js.map +1 -1
- package/dist/runner/turnResolution.mjs +67 -16
- package/dist/runner/turnResolution.mjs.map +1 -1
- package/dist/runner/types.d.ts +1 -1
- package/dist/sandbox/internal/process.d.ts +1 -0
- package/dist/sandbox/internal/process.js +7 -0
- package/dist/sandbox/internal/process.js.map +1 -0
- package/dist/sandbox/internal/process.mjs +2 -0
- package/dist/sandbox/internal/process.mjs.map +1 -0
- package/dist/sandbox/internal.d.ts +2 -0
- package/dist/sandbox/internal.js +15 -1
- package/dist/sandbox/internal.js.map +1 -1
- package/dist/sandbox/internal.mjs +2 -0
- package/dist/sandbox/internal.mjs.map +1 -1
- package/dist/sandbox/permissions.js +7 -6
- package/dist/sandbox/permissions.js.map +1 -1
- package/dist/sandbox/permissions.mjs +7 -6
- package/dist/sandbox/permissions.mjs.map +1 -1
- package/dist/sandbox/runtime/agentPreparation.js +11 -1
- package/dist/sandbox/runtime/agentPreparation.js.map +1 -1
- package/dist/sandbox/runtime/agentPreparation.mjs +12 -2
- package/dist/sandbox/runtime/agentPreparation.mjs.map +1 -1
- package/dist/sandbox/runtime/prompts.d.ts +1 -1
- package/dist/sandbox/runtime/prompts.js +36 -4
- package/dist/sandbox/runtime/prompts.js.map +1 -1
- package/dist/sandbox/runtime/prompts.mjs +36 -4
- package/dist/sandbox/runtime/prompts.mjs.map +1 -1
- package/dist/sandbox/sandboxes/docker.js +17 -3
- package/dist/sandbox/sandboxes/docker.js.map +1 -1
- package/dist/sandbox/sandboxes/docker.mjs +17 -3
- package/dist/sandbox/sandboxes/docker.mjs.map +1 -1
- package/dist/sandbox/sandboxes/unixLocal.js +9 -0
- package/dist/sandbox/sandboxes/unixLocal.js.map +1 -1
- package/dist/sandbox/sandboxes/unixLocal.mjs +9 -0
- package/dist/sandbox/sandboxes/unixLocal.mjs.map +1 -1
- package/dist/sandbox/shared/credentials.d.ts +9 -0
- package/dist/sandbox/shared/credentials.js +10 -0
- package/dist/sandbox/shared/credentials.js.map +1 -0
- package/dist/sandbox/shared/credentials.mjs +7 -0
- package/dist/sandbox/shared/credentials.mjs.map +1 -0
- package/dist/sandbox/shared/typeGuards.d.ts +6 -1
- package/dist/sandbox/shared/typeGuards.js +23 -1
- package/dist/sandbox/shared/typeGuards.js.map +1 -1
- package/dist/sandbox/shared/typeGuards.mjs +18 -1
- package/dist/sandbox/shared/typeGuards.mjs.map +1 -1
- package/dist/utils/inlineData.d.ts +2 -0
- package/dist/utils/inlineData.js +22 -0
- package/dist/utils/inlineData.js.map +1 -0
- package/dist/utils/inlineData.mjs +18 -0
- package/dist/utils/inlineData.mjs.map +1 -0
- package/dist/utils/internal.d.ts +1 -0
- package/dist/utils/internal.js +7 -0
- package/dist/utils/internal.js.map +1 -0
- package/dist/utils/internal.mjs +2 -0
- package/dist/utils/internal.mjs.map +1 -0
- package/package.json +22 -3
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
import { encodeUint8ArrayToBase64 } from "../utils/base64.mjs";
|
|
2
|
+
import { formatInlineData, getInlineMediaType } from "../utils/inlineData.mjs";
|
|
3
|
+
/**
|
|
4
|
+
* Accepts whatever the tool returned and attempts to coerce it into the structured protocol
|
|
5
|
+
* shapes we expose to downstream model adapters (input_text/input_image/input_file). Tools are
|
|
6
|
+
* allowed to return either a single structured object or an array of them; anything else falls
|
|
7
|
+
* back to the legacy string pipeline.
|
|
8
|
+
*/
|
|
9
|
+
export function normalizeStructuredToolOutputs(output) {
|
|
10
|
+
if (Array.isArray(output)) {
|
|
11
|
+
if (output.length === 0) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
const structured = [];
|
|
15
|
+
for (const item of output) {
|
|
16
|
+
const normalized = normalizeStructuredToolOutput(item);
|
|
17
|
+
if (!normalized) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
structured.push(normalized);
|
|
21
|
+
}
|
|
22
|
+
return structured;
|
|
23
|
+
}
|
|
24
|
+
const normalized = normalizeStructuredToolOutput(output);
|
|
25
|
+
return normalized ? [normalized] : null;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Best-effort normalization of a single tool output item. If the object already matches the
|
|
29
|
+
* protocol shape we simply cast it; otherwise we copy the recognised fields into the canonical
|
|
30
|
+
* structure. Returning null lets the caller know we should revert to plain-string handling.
|
|
31
|
+
*/
|
|
32
|
+
function normalizeStructuredToolOutput(value) {
|
|
33
|
+
if (!isRecord(value)) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
const type = value.type;
|
|
37
|
+
if (type === 'text' && typeof value.text === 'string') {
|
|
38
|
+
const output = { type: 'text', text: value.text };
|
|
39
|
+
if (isRecord(value.providerData)) {
|
|
40
|
+
output.providerData = value.providerData;
|
|
41
|
+
}
|
|
42
|
+
return output;
|
|
43
|
+
}
|
|
44
|
+
if (type === 'image') {
|
|
45
|
+
const output = { type: 'image' };
|
|
46
|
+
let imageString;
|
|
47
|
+
let imageFileId;
|
|
48
|
+
const fallbackImageMediaType = getInlineMediaType(value);
|
|
49
|
+
const imageField = value.image;
|
|
50
|
+
if (typeof imageField === 'string' && imageField.length > 0) {
|
|
51
|
+
imageString = imageField;
|
|
52
|
+
}
|
|
53
|
+
else if (isRecord(imageField)) {
|
|
54
|
+
const imageObj = imageField;
|
|
55
|
+
const inlineMediaType = getInlineMediaType(imageObj) ?? fallbackImageMediaType;
|
|
56
|
+
if (isNonEmptyString(imageObj.url)) {
|
|
57
|
+
imageString = imageObj.url;
|
|
58
|
+
}
|
|
59
|
+
else if (isNonEmptyString(imageObj.data)) {
|
|
60
|
+
imageString = formatInlineData(imageObj.data, inlineMediaType);
|
|
61
|
+
}
|
|
62
|
+
else if (imageObj.data instanceof Uint8Array &&
|
|
63
|
+
imageObj.data.length > 0) {
|
|
64
|
+
imageString = formatInlineData(imageObj.data, inlineMediaType);
|
|
65
|
+
}
|
|
66
|
+
if (!imageString) {
|
|
67
|
+
const candidateId = (isNonEmptyString(imageObj.fileId) && imageObj.fileId) ||
|
|
68
|
+
(isNonEmptyString(imageObj.id) && imageObj.id) ||
|
|
69
|
+
undefined;
|
|
70
|
+
if (candidateId) {
|
|
71
|
+
imageFileId = candidateId;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (!imageString &&
|
|
76
|
+
typeof value.imageUrl === 'string' &&
|
|
77
|
+
value.imageUrl.length > 0) {
|
|
78
|
+
imageString = value.imageUrl;
|
|
79
|
+
}
|
|
80
|
+
if (!imageFileId &&
|
|
81
|
+
typeof value.fileId === 'string' &&
|
|
82
|
+
value.fileId.length > 0) {
|
|
83
|
+
imageFileId = value.fileId;
|
|
84
|
+
}
|
|
85
|
+
if (!imageString &&
|
|
86
|
+
typeof value.data === 'string' &&
|
|
87
|
+
value.data.length > 0) {
|
|
88
|
+
imageString = fallbackImageMediaType
|
|
89
|
+
? formatInlineData(value.data, fallbackImageMediaType)
|
|
90
|
+
: value.data;
|
|
91
|
+
}
|
|
92
|
+
else if (!imageString &&
|
|
93
|
+
value.data instanceof Uint8Array &&
|
|
94
|
+
value.data.length > 0) {
|
|
95
|
+
imageString = formatInlineData(value.data, fallbackImageMediaType);
|
|
96
|
+
}
|
|
97
|
+
if (typeof value.detail === 'string' && value.detail.length > 0) {
|
|
98
|
+
output.detail = value.detail;
|
|
99
|
+
}
|
|
100
|
+
if (imageString) {
|
|
101
|
+
output.image = imageString;
|
|
102
|
+
}
|
|
103
|
+
else if (imageFileId) {
|
|
104
|
+
output.image = { fileId: imageFileId };
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
if (isRecord(value.providerData)) {
|
|
110
|
+
output.providerData = value.providerData;
|
|
111
|
+
}
|
|
112
|
+
return output;
|
|
113
|
+
}
|
|
114
|
+
if (type === 'file') {
|
|
115
|
+
const fileValue = normalizeFileValue(value);
|
|
116
|
+
if (!fileValue) {
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
const output = { type: 'file', file: fileValue };
|
|
120
|
+
if (isRecord(value.providerData)) {
|
|
121
|
+
output.providerData = value.providerData;
|
|
122
|
+
}
|
|
123
|
+
return output;
|
|
124
|
+
}
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Translates the normalized tool output into the protocol `input_*` items. This is the last hop
|
|
129
|
+
* before we hand the data to model-specific adapters, so we generate the exact schema expected by
|
|
130
|
+
* the protocol definitions.
|
|
131
|
+
*/
|
|
132
|
+
export function convertStructuredToolOutputToInputItem(output) {
|
|
133
|
+
if (output.type === 'text') {
|
|
134
|
+
const result = {
|
|
135
|
+
type: 'input_text',
|
|
136
|
+
text: output.text,
|
|
137
|
+
};
|
|
138
|
+
if (output.providerData) {
|
|
139
|
+
result.providerData = output.providerData;
|
|
140
|
+
}
|
|
141
|
+
return result;
|
|
142
|
+
}
|
|
143
|
+
if (output.type === 'image') {
|
|
144
|
+
const result = { type: 'input_image' };
|
|
145
|
+
if (typeof output.detail === 'string' && output.detail.length > 0) {
|
|
146
|
+
result.detail = output.detail;
|
|
147
|
+
}
|
|
148
|
+
if (typeof output.image === 'string' && output.image.length > 0) {
|
|
149
|
+
result.image = output.image;
|
|
150
|
+
}
|
|
151
|
+
else if (isRecord(output.image)) {
|
|
152
|
+
const imageObj = output.image;
|
|
153
|
+
const inlineMediaType = getInlineMediaType(imageObj);
|
|
154
|
+
if (isNonEmptyString(imageObj.url)) {
|
|
155
|
+
result.image = imageObj.url;
|
|
156
|
+
}
|
|
157
|
+
else if (isNonEmptyString(imageObj.data)) {
|
|
158
|
+
result.image =
|
|
159
|
+
inlineMediaType && !imageObj.data.startsWith('data:')
|
|
160
|
+
? asDataUrl(imageObj.data, inlineMediaType)
|
|
161
|
+
: imageObj.data;
|
|
162
|
+
}
|
|
163
|
+
else if (imageObj.data instanceof Uint8Array &&
|
|
164
|
+
imageObj.data.length > 0) {
|
|
165
|
+
const base64 = encodeUint8ArrayToBase64(imageObj.data);
|
|
166
|
+
result.image = asDataUrl(base64, inlineMediaType);
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
const referencedId = (isNonEmptyString(imageObj.fileId) && imageObj.fileId) ||
|
|
170
|
+
(isNonEmptyString(imageObj.id) && imageObj.id) ||
|
|
171
|
+
undefined;
|
|
172
|
+
if (referencedId) {
|
|
173
|
+
result.image = { id: referencedId };
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
if (output.providerData) {
|
|
178
|
+
result.providerData = output.providerData;
|
|
179
|
+
}
|
|
180
|
+
return result;
|
|
181
|
+
}
|
|
182
|
+
if (output.type === 'file') {
|
|
183
|
+
const result = { type: 'input_file' };
|
|
184
|
+
const fileValue = output.file;
|
|
185
|
+
if (typeof fileValue === 'string') {
|
|
186
|
+
result.file = fileValue;
|
|
187
|
+
}
|
|
188
|
+
else if (fileValue && typeof fileValue === 'object') {
|
|
189
|
+
const record = fileValue;
|
|
190
|
+
if ('data' in record && record.data) {
|
|
191
|
+
const mediaType = record.mediaType ?? 'text/plain';
|
|
192
|
+
if (typeof record.data === 'string') {
|
|
193
|
+
result.file = asDataUrl(record.data, mediaType);
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
const base64 = encodeUint8ArrayToBase64(record.data);
|
|
197
|
+
result.file = asDataUrl(base64, mediaType);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
else if (typeof record.url === 'string' && record.url.length > 0) {
|
|
201
|
+
result.file = { url: record.url };
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
const referencedId = (typeof record.id === 'string' &&
|
|
205
|
+
record.id.length > 0 &&
|
|
206
|
+
record.id) ||
|
|
207
|
+
(typeof record.fileId === 'string' && record.fileId.length > 0
|
|
208
|
+
? record.fileId
|
|
209
|
+
: undefined);
|
|
210
|
+
if (referencedId) {
|
|
211
|
+
result.file = { id: referencedId };
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
if (typeof record.filename === 'string' && record.filename.length > 0) {
|
|
215
|
+
result.filename = record.filename;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
if (output.providerData) {
|
|
219
|
+
result.providerData = output.providerData;
|
|
220
|
+
}
|
|
221
|
+
return result;
|
|
222
|
+
}
|
|
223
|
+
const exhaustiveCheck = output;
|
|
224
|
+
return exhaustiveCheck;
|
|
225
|
+
}
|
|
226
|
+
function normalizeFileValue(value) {
|
|
227
|
+
const directFile = value.file;
|
|
228
|
+
if (typeof directFile === 'string' && directFile.length > 0) {
|
|
229
|
+
return directFile;
|
|
230
|
+
}
|
|
231
|
+
const normalizedObject = normalizeFileObjectCandidate(directFile);
|
|
232
|
+
if (normalizedObject) {
|
|
233
|
+
return normalizedObject;
|
|
234
|
+
}
|
|
235
|
+
const legacyValue = normalizeLegacyFileValue(value);
|
|
236
|
+
if (legacyValue) {
|
|
237
|
+
return legacyValue;
|
|
238
|
+
}
|
|
239
|
+
return null;
|
|
240
|
+
}
|
|
241
|
+
function normalizeFileObjectCandidate(value) {
|
|
242
|
+
if (!isRecord(value)) {
|
|
243
|
+
return null;
|
|
244
|
+
}
|
|
245
|
+
if ('data' in value && value.data !== undefined) {
|
|
246
|
+
const dataValue = value.data;
|
|
247
|
+
const hasStringData = typeof dataValue === 'string' && dataValue.length > 0;
|
|
248
|
+
const hasBinaryData = dataValue instanceof Uint8Array && dataValue.length > 0;
|
|
249
|
+
if (!hasStringData && !hasBinaryData) {
|
|
250
|
+
return null;
|
|
251
|
+
}
|
|
252
|
+
if (!isNonEmptyString(value.mediaType) ||
|
|
253
|
+
!isNonEmptyString(value.filename)) {
|
|
254
|
+
return null;
|
|
255
|
+
}
|
|
256
|
+
return {
|
|
257
|
+
data: typeof dataValue === 'string' ? dataValue : new Uint8Array(dataValue),
|
|
258
|
+
mediaType: value.mediaType,
|
|
259
|
+
filename: value.filename,
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
if (isNonEmptyString(value.url)) {
|
|
263
|
+
const result = { url: value.url };
|
|
264
|
+
if (isNonEmptyString(value.filename)) {
|
|
265
|
+
result.filename = value.filename;
|
|
266
|
+
}
|
|
267
|
+
return result;
|
|
268
|
+
}
|
|
269
|
+
const referencedId = (isNonEmptyString(value.id) && value.id) ||
|
|
270
|
+
(isNonEmptyString(value.fileId) && value.fileId);
|
|
271
|
+
if (referencedId) {
|
|
272
|
+
const result = { id: referencedId };
|
|
273
|
+
if (isNonEmptyString(value.filename)) {
|
|
274
|
+
result.filename = value.filename;
|
|
275
|
+
}
|
|
276
|
+
return result;
|
|
277
|
+
}
|
|
278
|
+
return null;
|
|
279
|
+
}
|
|
280
|
+
function normalizeLegacyFileValue(value) {
|
|
281
|
+
const filename = typeof value.filename === 'string' && value.filename.length > 0
|
|
282
|
+
? value.filename
|
|
283
|
+
: undefined;
|
|
284
|
+
const mediaType = typeof value.mediaType === 'string' && value.mediaType.length > 0
|
|
285
|
+
? value.mediaType
|
|
286
|
+
: undefined;
|
|
287
|
+
if (typeof value.fileData === 'string' && value.fileData.length > 0) {
|
|
288
|
+
if (!mediaType || !filename) {
|
|
289
|
+
return null;
|
|
290
|
+
}
|
|
291
|
+
return { data: value.fileData, mediaType, filename };
|
|
292
|
+
}
|
|
293
|
+
if (value.fileData instanceof Uint8Array && value.fileData.length > 0) {
|
|
294
|
+
if (!mediaType || !filename) {
|
|
295
|
+
return null;
|
|
296
|
+
}
|
|
297
|
+
return { data: new Uint8Array(value.fileData), mediaType, filename };
|
|
298
|
+
}
|
|
299
|
+
if (typeof value.fileUrl === 'string' && value.fileUrl.length > 0) {
|
|
300
|
+
const result = { url: value.fileUrl };
|
|
301
|
+
if (filename) {
|
|
302
|
+
result.filename = filename;
|
|
303
|
+
}
|
|
304
|
+
return result;
|
|
305
|
+
}
|
|
306
|
+
if (typeof value.fileId === 'string' && value.fileId.length > 0) {
|
|
307
|
+
const result = { id: value.fileId };
|
|
308
|
+
if (filename) {
|
|
309
|
+
result.filename = filename;
|
|
310
|
+
}
|
|
311
|
+
return result;
|
|
312
|
+
}
|
|
313
|
+
return null;
|
|
314
|
+
}
|
|
315
|
+
function isRecord(value) {
|
|
316
|
+
return typeof value === 'object' && value !== null;
|
|
317
|
+
}
|
|
318
|
+
function isNonEmptyString(value) {
|
|
319
|
+
return typeof value === 'string' && value.length > 0;
|
|
320
|
+
}
|
|
321
|
+
function asDataUrl(base64, mediaType) {
|
|
322
|
+
return mediaType ? `data:${mediaType};base64,${base64}` : base64;
|
|
323
|
+
}
|
|
324
|
+
//# sourceMappingURL=toolOutputNormalization.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolOutputNormalization.mjs","sourceRoot":"","sources":["../../src/runner/toolOutputNormalization.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { AgentInputItem } from '../types';
|
|
2
|
+
declare const SIMPLE_TOOL_RESULT_TYPE_BY_CALL_TYPE: {
|
|
3
|
+
readonly function_call: "function_call_result";
|
|
4
|
+
readonly computer_call: "computer_call_result";
|
|
5
|
+
readonly shell_call: "shell_call_output";
|
|
6
|
+
readonly apply_patch_call: "apply_patch_call_output";
|
|
7
|
+
};
|
|
8
|
+
type SimpleToolResultType = (typeof SIMPLE_TOOL_RESULT_TYPE_BY_CALL_TYPE)[keyof typeof SIMPLE_TOOL_RESULT_TYPE_BY_CALL_TYPE];
|
|
9
|
+
declare const TOOL_SEARCH_OUTPUT = "tool_search_output";
|
|
10
|
+
declare const HOSTED_MCP_APPROVAL_RESPONSE = "mcp_approval_response";
|
|
11
|
+
type ToolResultType = SimpleToolResultType | typeof TOOL_SEARCH_OUTPUT | typeof HOSTED_MCP_APPROVAL_RESPONSE;
|
|
12
|
+
export type ToolResultCorrelation = Readonly<{
|
|
13
|
+
resultType: ToolResultType;
|
|
14
|
+
id: string;
|
|
15
|
+
}>;
|
|
16
|
+
export declare function getSimpleToolResultTypeForCall(type: unknown): SimpleToolResultType | undefined;
|
|
17
|
+
export declare function isSimpleToolResultType(type: unknown): type is SimpleToolResultType;
|
|
18
|
+
export declare function getToolResultCorrelationForCall(item: AgentInputItem): ToolResultCorrelation | undefined;
|
|
19
|
+
export declare function getToolResultCorrelationForResult(item: AgentInputItem): ToolResultCorrelation | undefined;
|
|
20
|
+
export declare function getToolResultCorrelationKey(correlation: ToolResultCorrelation): string;
|
|
21
|
+
export declare function getUnresolvedToolResultCorrelationsForResponse(items: readonly AgentInputItem[]): ToolResultCorrelation[];
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSimpleToolResultTypeForCall = getSimpleToolResultTypeForCall;
|
|
4
|
+
exports.isSimpleToolResultType = isSimpleToolResultType;
|
|
5
|
+
exports.getToolResultCorrelationForCall = getToolResultCorrelationForCall;
|
|
6
|
+
exports.getToolResultCorrelationForResult = getToolResultCorrelationForResult;
|
|
7
|
+
exports.getToolResultCorrelationKey = getToolResultCorrelationKey;
|
|
8
|
+
exports.getUnresolvedToolResultCorrelationsForResponse = getUnresolvedToolResultCorrelationsForResponse;
|
|
9
|
+
const tooling_1 = require("../tooling.js");
|
|
10
|
+
const SIMPLE_TOOL_RESULT_TYPE_BY_CALL_TYPE = {
|
|
11
|
+
function_call: 'function_call_result',
|
|
12
|
+
computer_call: 'computer_call_result',
|
|
13
|
+
shell_call: 'shell_call_output',
|
|
14
|
+
apply_patch_call: 'apply_patch_call_output',
|
|
15
|
+
};
|
|
16
|
+
const SIMPLE_TOOL_RESULT_TYPES = new Set(Object.values(SIMPLE_TOOL_RESULT_TYPE_BY_CALL_TYPE));
|
|
17
|
+
const TOOL_SEARCH_OUTPUT = 'tool_search_output';
|
|
18
|
+
const HOSTED_MCP_APPROVAL_REQUEST = 'mcp_approval_request';
|
|
19
|
+
const HOSTED_MCP_APPROVAL_RESPONSE = 'mcp_approval_response';
|
|
20
|
+
function createCorrelation(resultType, id) {
|
|
21
|
+
return typeof id === 'string' ? { resultType, id } : undefined;
|
|
22
|
+
}
|
|
23
|
+
function getSimpleToolResultTypeForCall(type) {
|
|
24
|
+
return typeof type === 'string'
|
|
25
|
+
? SIMPLE_TOOL_RESULT_TYPE_BY_CALL_TYPE[type]
|
|
26
|
+
: undefined;
|
|
27
|
+
}
|
|
28
|
+
function isSimpleToolResultType(type) {
|
|
29
|
+
return typeof type === 'string' && SIMPLE_TOOL_RESULT_TYPES.has(type);
|
|
30
|
+
}
|
|
31
|
+
function getToolResultCorrelationForCall(item) {
|
|
32
|
+
if (!item || typeof item !== 'object') {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
const type = item.type;
|
|
36
|
+
if (type === 'tool_search_call') {
|
|
37
|
+
if ((0, tooling_1.getToolSearchExecution)(item) === 'server') {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
return createCorrelation(TOOL_SEARCH_OUTPUT, (0, tooling_1.getToolSearchMatchKey)(item));
|
|
41
|
+
}
|
|
42
|
+
const callId = item.callId;
|
|
43
|
+
const resultType = getSimpleToolResultTypeForCall(type);
|
|
44
|
+
if (resultType) {
|
|
45
|
+
return createCorrelation(resultType, callId);
|
|
46
|
+
}
|
|
47
|
+
if (type !== 'hosted_tool_call') {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
const hostedItem = item;
|
|
51
|
+
const providerData = hostedItem.providerData;
|
|
52
|
+
if (!providerData || typeof providerData !== 'object') {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
const approvalRequest = providerData;
|
|
56
|
+
if (hostedItem.name !== HOSTED_MCP_APPROVAL_REQUEST &&
|
|
57
|
+
approvalRequest.type !== HOSTED_MCP_APPROVAL_REQUEST) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
return createCorrelation(HOSTED_MCP_APPROVAL_RESPONSE, approvalRequest.id ?? hostedItem.id);
|
|
61
|
+
}
|
|
62
|
+
function getToolResultCorrelationForResult(item) {
|
|
63
|
+
if (!item || typeof item !== 'object') {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
const type = item.type;
|
|
67
|
+
if (type === TOOL_SEARCH_OUTPUT) {
|
|
68
|
+
if ((0, tooling_1.getToolSearchExecution)(item) === 'server') {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
return createCorrelation(TOOL_SEARCH_OUTPUT, (0, tooling_1.getToolSearchProviderCallId)(item));
|
|
72
|
+
}
|
|
73
|
+
const callId = item.callId;
|
|
74
|
+
if (isSimpleToolResultType(type)) {
|
|
75
|
+
return createCorrelation(type, callId);
|
|
76
|
+
}
|
|
77
|
+
if (type !== 'hosted_tool_call') {
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
const hostedItem = item;
|
|
81
|
+
if (hostedItem.name !== HOSTED_MCP_APPROVAL_RESPONSE) {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
const providerData = hostedItem.providerData;
|
|
85
|
+
if (!providerData || typeof providerData !== 'object') {
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
return createCorrelation(HOSTED_MCP_APPROVAL_RESPONSE, providerData.approval_request_id);
|
|
89
|
+
}
|
|
90
|
+
function getToolResultCorrelationKey(correlation) {
|
|
91
|
+
return JSON.stringify([correlation.resultType, correlation.id]);
|
|
92
|
+
}
|
|
93
|
+
function removePendingCorrelation(pending, correlation) {
|
|
94
|
+
const key = getToolResultCorrelationKey(correlation);
|
|
95
|
+
const index = pending.findIndex((candidate) => getToolResultCorrelationKey(candidate) === key);
|
|
96
|
+
if (index >= 0) {
|
|
97
|
+
pending.splice(index, 1);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function getUnresolvedToolResultCorrelationsForResponse(items) {
|
|
101
|
+
const calls = [];
|
|
102
|
+
const results = [];
|
|
103
|
+
const pendingToolSearchCalls = [];
|
|
104
|
+
for (const item of items) {
|
|
105
|
+
const call = getToolResultCorrelationForCall(item);
|
|
106
|
+
if (call) {
|
|
107
|
+
calls.push(call);
|
|
108
|
+
if (item.type === 'tool_search_call') {
|
|
109
|
+
pendingToolSearchCalls.push(call);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if (item.type === TOOL_SEARCH_OUTPUT) {
|
|
113
|
+
if ((0, tooling_1.getToolSearchExecution)(item) === 'server') {
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
const providerCallId = (0, tooling_1.getToolSearchProviderCallId)(item);
|
|
117
|
+
const result = providerCallId
|
|
118
|
+
? createCorrelation(TOOL_SEARCH_OUTPUT, providerCallId)
|
|
119
|
+
: pendingToolSearchCalls.shift();
|
|
120
|
+
if (result) {
|
|
121
|
+
results.push(result);
|
|
122
|
+
if (providerCallId) {
|
|
123
|
+
removePendingCorrelation(pendingToolSearchCalls, result);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
const result = getToolResultCorrelationForResult(item);
|
|
129
|
+
if (result) {
|
|
130
|
+
results.push(result);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
for (const result of results) {
|
|
134
|
+
removePendingCorrelation(calls, result);
|
|
135
|
+
}
|
|
136
|
+
return calls;
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=toolResultCorrelation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolResultCorrelation.js","sourceRoot":"","sources":["../../src/runner/toolResultCorrelation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { getToolSearchExecution, getToolSearchMatchKey, getToolSearchProviderCallId, } from "../tooling.mjs";
|
|
2
|
+
const SIMPLE_TOOL_RESULT_TYPE_BY_CALL_TYPE = {
|
|
3
|
+
function_call: 'function_call_result',
|
|
4
|
+
computer_call: 'computer_call_result',
|
|
5
|
+
shell_call: 'shell_call_output',
|
|
6
|
+
apply_patch_call: 'apply_patch_call_output',
|
|
7
|
+
};
|
|
8
|
+
const SIMPLE_TOOL_RESULT_TYPES = new Set(Object.values(SIMPLE_TOOL_RESULT_TYPE_BY_CALL_TYPE));
|
|
9
|
+
const TOOL_SEARCH_OUTPUT = 'tool_search_output';
|
|
10
|
+
const HOSTED_MCP_APPROVAL_REQUEST = 'mcp_approval_request';
|
|
11
|
+
const HOSTED_MCP_APPROVAL_RESPONSE = 'mcp_approval_response';
|
|
12
|
+
function createCorrelation(resultType, id) {
|
|
13
|
+
return typeof id === 'string' ? { resultType, id } : undefined;
|
|
14
|
+
}
|
|
15
|
+
export function getSimpleToolResultTypeForCall(type) {
|
|
16
|
+
return typeof type === 'string'
|
|
17
|
+
? SIMPLE_TOOL_RESULT_TYPE_BY_CALL_TYPE[type]
|
|
18
|
+
: undefined;
|
|
19
|
+
}
|
|
20
|
+
export function isSimpleToolResultType(type) {
|
|
21
|
+
return typeof type === 'string' && SIMPLE_TOOL_RESULT_TYPES.has(type);
|
|
22
|
+
}
|
|
23
|
+
export function getToolResultCorrelationForCall(item) {
|
|
24
|
+
if (!item || typeof item !== 'object') {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
const type = item.type;
|
|
28
|
+
if (type === 'tool_search_call') {
|
|
29
|
+
if (getToolSearchExecution(item) === 'server') {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
return createCorrelation(TOOL_SEARCH_OUTPUT, getToolSearchMatchKey(item));
|
|
33
|
+
}
|
|
34
|
+
const callId = item.callId;
|
|
35
|
+
const resultType = getSimpleToolResultTypeForCall(type);
|
|
36
|
+
if (resultType) {
|
|
37
|
+
return createCorrelation(resultType, callId);
|
|
38
|
+
}
|
|
39
|
+
if (type !== 'hosted_tool_call') {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
const hostedItem = item;
|
|
43
|
+
const providerData = hostedItem.providerData;
|
|
44
|
+
if (!providerData || typeof providerData !== 'object') {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
const approvalRequest = providerData;
|
|
48
|
+
if (hostedItem.name !== HOSTED_MCP_APPROVAL_REQUEST &&
|
|
49
|
+
approvalRequest.type !== HOSTED_MCP_APPROVAL_REQUEST) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
return createCorrelation(HOSTED_MCP_APPROVAL_RESPONSE, approvalRequest.id ?? hostedItem.id);
|
|
53
|
+
}
|
|
54
|
+
export function getToolResultCorrelationForResult(item) {
|
|
55
|
+
if (!item || typeof item !== 'object') {
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
const type = item.type;
|
|
59
|
+
if (type === TOOL_SEARCH_OUTPUT) {
|
|
60
|
+
if (getToolSearchExecution(item) === 'server') {
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
return createCorrelation(TOOL_SEARCH_OUTPUT, getToolSearchProviderCallId(item));
|
|
64
|
+
}
|
|
65
|
+
const callId = item.callId;
|
|
66
|
+
if (isSimpleToolResultType(type)) {
|
|
67
|
+
return createCorrelation(type, callId);
|
|
68
|
+
}
|
|
69
|
+
if (type !== 'hosted_tool_call') {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
const hostedItem = item;
|
|
73
|
+
if (hostedItem.name !== HOSTED_MCP_APPROVAL_RESPONSE) {
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
const providerData = hostedItem.providerData;
|
|
77
|
+
if (!providerData || typeof providerData !== 'object') {
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
return createCorrelation(HOSTED_MCP_APPROVAL_RESPONSE, providerData.approval_request_id);
|
|
81
|
+
}
|
|
82
|
+
export function getToolResultCorrelationKey(correlation) {
|
|
83
|
+
return JSON.stringify([correlation.resultType, correlation.id]);
|
|
84
|
+
}
|
|
85
|
+
function removePendingCorrelation(pending, correlation) {
|
|
86
|
+
const key = getToolResultCorrelationKey(correlation);
|
|
87
|
+
const index = pending.findIndex((candidate) => getToolResultCorrelationKey(candidate) === key);
|
|
88
|
+
if (index >= 0) {
|
|
89
|
+
pending.splice(index, 1);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
export function getUnresolvedToolResultCorrelationsForResponse(items) {
|
|
93
|
+
const calls = [];
|
|
94
|
+
const results = [];
|
|
95
|
+
const pendingToolSearchCalls = [];
|
|
96
|
+
for (const item of items) {
|
|
97
|
+
const call = getToolResultCorrelationForCall(item);
|
|
98
|
+
if (call) {
|
|
99
|
+
calls.push(call);
|
|
100
|
+
if (item.type === 'tool_search_call') {
|
|
101
|
+
pendingToolSearchCalls.push(call);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (item.type === TOOL_SEARCH_OUTPUT) {
|
|
105
|
+
if (getToolSearchExecution(item) === 'server') {
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
const providerCallId = getToolSearchProviderCallId(item);
|
|
109
|
+
const result = providerCallId
|
|
110
|
+
? createCorrelation(TOOL_SEARCH_OUTPUT, providerCallId)
|
|
111
|
+
: pendingToolSearchCalls.shift();
|
|
112
|
+
if (result) {
|
|
113
|
+
results.push(result);
|
|
114
|
+
if (providerCallId) {
|
|
115
|
+
removePendingCorrelation(pendingToolSearchCalls, result);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
const result = getToolResultCorrelationForResult(item);
|
|
121
|
+
if (result) {
|
|
122
|
+
results.push(result);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
for (const result of results) {
|
|
126
|
+
removePendingCorrelation(calls, result);
|
|
127
|
+
}
|
|
128
|
+
return calls;
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=toolResultCorrelation.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolResultCorrelation.mjs","sourceRoot":"","sources":["../../src/runner/toolResultCorrelation.ts"],"names":[],"mappings":"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"}
|
|
@@ -85,11 +85,7 @@ async function runInputGuardrailsForTurn(state, runnerGuardrails, isResumingFrom
|
|
|
85
85
|
}
|
|
86
86
|
if (guardrails.parallel.length > 0) {
|
|
87
87
|
handlers.onParallelStart?.();
|
|
88
|
-
const
|
|
89
|
-
const parallelGuardrailPromise = promise.catch((err) => {
|
|
90
|
-
handlers.onParallelError?.(err);
|
|
91
|
-
return [];
|
|
92
|
-
});
|
|
88
|
+
const parallelGuardrailPromise = (0, guardrails_1.runInputGuardrails)(state, guardrails.parallel, { onErrorObserved: handlers.onParallelError }).catch(() => []);
|
|
93
89
|
return { parallelGuardrailPromise };
|
|
94
90
|
}
|
|
95
91
|
return {};
|