@openai/agents-core 0.4.9 → 0.4.11
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/agent.js +69 -54
- package/dist/agent.js.map +1 -1
- package/dist/agent.mjs +69 -54
- package/dist/agent.mjs.map +1 -1
- package/dist/errors.d.ts +14 -1
- package/dist/errors.js +14 -1
- package/dist/errors.js.map +1 -1
- package/dist/errors.mjs +12 -0
- package/dist/errors.mjs.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/dist/metadata.js +2 -2
- package/dist/metadata.js.map +1 -1
- package/dist/metadata.mjs +2 -2
- package/dist/metadata.mjs.map +1 -1
- package/dist/result.js +17 -33
- package/dist/result.js.map +1 -1
- package/dist/result.mjs +17 -33
- package/dist/result.mjs.map +1 -1
- package/dist/runner/toolExecution.js +189 -112
- package/dist/runner/toolExecution.js.map +1 -1
- package/dist/runner/toolExecution.mjs +191 -114
- package/dist/runner/toolExecution.mjs.map +1 -1
- package/dist/tool.d.ts +56 -1
- package/dist/tool.js +154 -1
- package/dist/tool.js.map +1 -1
- package/dist/tool.mjs +154 -2
- package/dist/tool.mjs.map +1 -1
- package/dist/utils/abortSignals.d.ts +10 -0
- package/dist/utils/abortSignals.js +53 -0
- package/dist/utils/abortSignals.js.map +1 -0
- package/dist/utils/abortSignals.mjs +49 -0
- package/dist/utils/abortSignals.mjs.map +1 -0
- package/package.json +1 -1
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"OAAO,EAAE,iBAAiB,EAAE;OACrB,EAAE,gBAAgB,EAAE;OAEpB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B;OACzD,EACL,KAAK,GASN;OAIM,EACL,WAAW,EACX,uBAAuB,EACvB,+BAA+B,EAC/B,qBAAqB,EACrB,kBAAkB,EAClB,gCAAgC,EAChC,mCAAmC,EACnC,oCAAoC,EACpC,aAAa,EACb,SAAS,EACT,WAAW,GACZ;OACM,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,kBAAkB,GAEnB;OACM,EACL,qBAAqB,GAatB;OACM,EAYL,kCAAkC,EAClC,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,GAC5B;OACM,EACL,UAAU,EACV,kBAAkB,EAClB,OAAO,EACP,OAAO,GAGR;OACM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE;OAC3B,EACL,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EAEpB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,GACtB;OACM,EAAE,UAAU,EAAE;OACd,EAAE,SAAS,EAAE;OACb,EAAE,SAAS,EAAE;OACb,EACL,cAAc,EACd,0BAA0B,EAC1B,iBAAiB,EAEjB,cAAc,EACd,uBAAuB,EACvB,YAAY,GAGb;OACM,EACL,UAAU,EAGV,iBAAiB,GAClB;OACM,EAML,yBAAyB,GAC1B;OAYM,EACL,sCAAsC,EACtC,6BAA6B,EAC7B,eAAe,EACf,uBAAuB,EACvB,aAAa,GACd;OACM,EAAE,uBAAuB,EAAE;OAC3B,EAAE,SAAS,EAAE,iBAAiB,EAAE;OAChC,EAGL,GAAG,EAEH,MAAM,GAEP;OAcM,EAAE,UAAU,EAAE;OACd,EAAE,QAAQ,EAAE;OAEZ,EAGL,YAAY,EAEZ,SAAS,EAET,cAAc,EAEd,aAAa,
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"OAAO,EAAE,iBAAiB,EAAE;OACrB,EAAE,gBAAgB,EAAE;OAEpB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B;OACzD,EACL,KAAK,GASN;OAIM,EACL,WAAW,EACX,uBAAuB,EACvB,+BAA+B,EAC/B,qBAAqB,EACrB,kBAAkB,EAClB,gCAAgC,EAChC,mCAAmC,EACnC,oCAAoC,EACpC,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,WAAW,GACZ;OACM,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,kBAAkB,GAEnB;OACM,EACL,qBAAqB,GAatB;OACM,EAYL,kCAAkC,EAClC,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,GAC5B;OACM,EACL,UAAU,EACV,kBAAkB,EAClB,OAAO,EACP,OAAO,GAGR;OACM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE;OAC3B,EACL,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EAEpB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,GACtB;OACM,EAAE,UAAU,EAAE;OACd,EAAE,SAAS,EAAE;OACb,EAAE,SAAS,EAAE;OACb,EACL,cAAc,EACd,0BAA0B,EAC1B,iBAAiB,EAEjB,cAAc,EACd,uBAAuB,EACvB,YAAY,GAGb;OACM,EACL,UAAU,EAGV,iBAAiB,GAClB;OACM,EAML,yBAAyB,GAC1B;OAYM,EACL,sCAAsC,EACtC,6BAA6B,EAC7B,eAAe,EACf,uBAAuB,EACvB,aAAa,GACd;OACM,EAAE,uBAAuB,EAAE;OAC3B,EAAE,SAAS,EAAE,iBAAiB,EAAE;OAChC,EAGL,GAAG,EAEH,MAAM,GAEP;OAcM,EAAE,UAAU,EAAE;OACd,EAAE,QAAQ,EAAE;OAEZ,EAGL,YAAY,EAEZ,SAAS,EAET,cAAc,EAEd,aAAa,EAMb,IAAI,EACJ,kBAAkB,GAInB;;OA8BM,EAAE,sBAAsB,EAAE,aAAa,EAAE;OACzC,EACL,sBAAsB,EACtB,uBAAuB,GACxB;OA6BM,EAAE,YAAY,EAAE,KAAK,EAAE;OAQvB,EAAE,uCAAuC,EAAE;OAC3C,EAAE,aAAa,EAAE;OAMjB,KAAK,QAAQ;AAEpB;;;;;GAKG;AACH,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,CAAC"}
|
package/dist/metadata.js
CHANGED
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.METADATA = void 0;
|
|
5
5
|
exports.METADATA = {
|
|
6
6
|
"name": "@openai/agents-core",
|
|
7
|
-
"version": "0.4.
|
|
7
|
+
"version": "0.4.11",
|
|
8
8
|
"versions": {
|
|
9
|
-
"@openai/agents-core": "0.4.
|
|
9
|
+
"@openai/agents-core": "0.4.11",
|
|
10
10
|
"openai": "^6.20.0"
|
|
11
11
|
}
|
|
12
12
|
};
|
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,qBAAqB;IAC7B,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":";AACA,uCAAuC;;;AAE1B,QAAA,QAAQ,GAAG;IACtB,MAAM,EAAE,qBAAqB;IAC7B,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE;QACV,qBAAqB,EAAE,QAAQ;QAC/B,QAAQ,EAAE,SAAS;KACpB;CACF,CAAC;AAEF,kBAAe,gBAAQ,CAAC"}
|
package/dist/metadata.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// This file is automatically generated
|
|
2
2
|
export const METADATA = {
|
|
3
3
|
"name": "@openai/agents-core",
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.11",
|
|
5
5
|
"versions": {
|
|
6
|
-
"@openai/agents-core": "0.4.
|
|
6
|
+
"@openai/agents-core": "0.4.11",
|
|
7
7
|
"openai": "^6.20.0"
|
|
8
8
|
}
|
|
9
9
|
};
|
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,qBAAqB;IAC7B,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,qBAAqB;IAC7B,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE;QACV,qBAAqB,EAAE,QAAQ;QAC/B,QAAQ,EAAE,SAAS;KACpB;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
package/dist/result.js
CHANGED
|
@@ -8,6 +8,7 @@ const _shims_1 = require("@openai/agents-core/_shims");
|
|
|
8
8
|
const items_1 = require("./runner/items.js");
|
|
9
9
|
const logger_1 = __importDefault(require("./logger.js"));
|
|
10
10
|
const protocol_1 = require("./types/protocol.js");
|
|
11
|
+
const abortSignals_1 = require("./utils/abortSignals.js");
|
|
11
12
|
function createAbortHandlerRef() {
|
|
12
13
|
const ref = {};
|
|
13
14
|
const handler = () => {
|
|
@@ -15,37 +16,6 @@ function createAbortHandlerRef() {
|
|
|
15
16
|
};
|
|
16
17
|
return { ref, handler };
|
|
17
18
|
}
|
|
18
|
-
function combineAbortSignals(...signals) {
|
|
19
|
-
const active = signals.filter(Boolean);
|
|
20
|
-
if (active.length === 0) {
|
|
21
|
-
return undefined;
|
|
22
|
-
}
|
|
23
|
-
const anyFn = AbortSignal.any;
|
|
24
|
-
if (typeof anyFn === 'function') {
|
|
25
|
-
try {
|
|
26
|
-
return anyFn(active);
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
logger_1.default.debug(`AbortSignal.any failed, falling back: ${error}`);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
const controller = new AbortController();
|
|
33
|
-
const abortCombined = (reason) => {
|
|
34
|
-
if (!controller.signal.aborted) {
|
|
35
|
-
controller.abort(reason);
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
for (const signal of active) {
|
|
39
|
-
if (signal.aborted) {
|
|
40
|
-
abortCombined(signal.reason);
|
|
41
|
-
break;
|
|
42
|
-
}
|
|
43
|
-
signal.addEventListener('abort', () => abortCombined(signal.reason), {
|
|
44
|
-
once: true,
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
return controller.signal;
|
|
48
|
-
}
|
|
49
19
|
class RunResultBase {
|
|
50
20
|
state;
|
|
51
21
|
constructor(state) {
|
|
@@ -198,11 +168,18 @@ class StreamedRunResult extends RunResultBase {
|
|
|
198
168
|
#streamLoopPromise;
|
|
199
169
|
#abortHandler;
|
|
200
170
|
#abortHandlerRef;
|
|
171
|
+
#combinedSignalCleanup = () => { };
|
|
201
172
|
constructor(result = {}) {
|
|
202
173
|
super(result.state);
|
|
203
174
|
this.#abortController = new AbortController();
|
|
204
|
-
|
|
205
|
-
|
|
175
|
+
const { signal: combinedSignal, cleanup: cleanupCombinedSignal } = (0, abortSignals_1.combineAbortSignalsWithOptions)([result.signal, this.#abortController.signal], {
|
|
176
|
+
onAbortSignalAnyError: (error) => {
|
|
177
|
+
logger_1.default.debug(`AbortSignal.any failed, falling back: ${error}`);
|
|
178
|
+
},
|
|
179
|
+
});
|
|
180
|
+
this.#combinedSignal = combinedSignal;
|
|
181
|
+
this.#combinedSignalCleanup = cleanupCombinedSignal;
|
|
182
|
+
this.#abortSignalSnapshot = combinedSignal;
|
|
206
183
|
this.#readableStream = new _shims_1.ReadableStream({
|
|
207
184
|
start: (controller) => {
|
|
208
185
|
this.#readableController = controller;
|
|
@@ -371,6 +348,13 @@ class StreamedRunResult extends RunResultBase {
|
|
|
371
348
|
logger_1.default.debug(`Failed to remove abort listener: ${err}`);
|
|
372
349
|
}
|
|
373
350
|
}
|
|
351
|
+
try {
|
|
352
|
+
this.#combinedSignalCleanup();
|
|
353
|
+
}
|
|
354
|
+
catch (err) {
|
|
355
|
+
logger_1.default.debug(`Failed to clean up combined abort listeners: ${err}`);
|
|
356
|
+
}
|
|
357
|
+
this.#combinedSignalCleanup = () => { };
|
|
374
358
|
this.#abortHandler = undefined;
|
|
375
359
|
this.#abortHandlerRef = undefined;
|
|
376
360
|
}
|
package/dist/result.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":";;;;;;AAUA,uDAKoC;AAGpC,6CAA8C;AAG9C,yDAA8B;AAC9B,kDAAyD;
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"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"}
|
package/dist/result.mjs
CHANGED
|
@@ -2,6 +2,7 @@ import { ReadableStream as _ReadableStream, TransformStream, Readable, } from '@
|
|
|
2
2
|
import { getTurnInput } from "./runner/items.mjs";
|
|
3
3
|
import logger from "./logger.mjs";
|
|
4
4
|
import { StreamEventTextStream } from "./types/protocol.mjs";
|
|
5
|
+
import { combineAbortSignalsWithOptions } from "./utils/abortSignals.mjs";
|
|
5
6
|
function createAbortHandlerRef() {
|
|
6
7
|
const ref = {};
|
|
7
8
|
const handler = () => {
|
|
@@ -9,37 +10,6 @@ function createAbortHandlerRef() {
|
|
|
9
10
|
};
|
|
10
11
|
return { ref, handler };
|
|
11
12
|
}
|
|
12
|
-
function combineAbortSignals(...signals) {
|
|
13
|
-
const active = signals.filter(Boolean);
|
|
14
|
-
if (active.length === 0) {
|
|
15
|
-
return undefined;
|
|
16
|
-
}
|
|
17
|
-
const anyFn = AbortSignal.any;
|
|
18
|
-
if (typeof anyFn === 'function') {
|
|
19
|
-
try {
|
|
20
|
-
return anyFn(active);
|
|
21
|
-
}
|
|
22
|
-
catch (error) {
|
|
23
|
-
logger.debug(`AbortSignal.any failed, falling back: ${error}`);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
const controller = new AbortController();
|
|
27
|
-
const abortCombined = (reason) => {
|
|
28
|
-
if (!controller.signal.aborted) {
|
|
29
|
-
controller.abort(reason);
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
for (const signal of active) {
|
|
33
|
-
if (signal.aborted) {
|
|
34
|
-
abortCombined(signal.reason);
|
|
35
|
-
break;
|
|
36
|
-
}
|
|
37
|
-
signal.addEventListener('abort', () => abortCombined(signal.reason), {
|
|
38
|
-
once: true,
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
return controller.signal;
|
|
42
|
-
}
|
|
43
13
|
class RunResultBase {
|
|
44
14
|
state;
|
|
45
15
|
constructor(state) {
|
|
@@ -191,11 +161,18 @@ export class StreamedRunResult extends RunResultBase {
|
|
|
191
161
|
#streamLoopPromise;
|
|
192
162
|
#abortHandler;
|
|
193
163
|
#abortHandlerRef;
|
|
164
|
+
#combinedSignalCleanup = () => { };
|
|
194
165
|
constructor(result = {}) {
|
|
195
166
|
super(result.state);
|
|
196
167
|
this.#abortController = new AbortController();
|
|
197
|
-
|
|
198
|
-
|
|
168
|
+
const { signal: combinedSignal, cleanup: cleanupCombinedSignal } = combineAbortSignalsWithOptions([result.signal, this.#abortController.signal], {
|
|
169
|
+
onAbortSignalAnyError: (error) => {
|
|
170
|
+
logger.debug(`AbortSignal.any failed, falling back: ${error}`);
|
|
171
|
+
},
|
|
172
|
+
});
|
|
173
|
+
this.#combinedSignal = combinedSignal;
|
|
174
|
+
this.#combinedSignalCleanup = cleanupCombinedSignal;
|
|
175
|
+
this.#abortSignalSnapshot = combinedSignal;
|
|
199
176
|
this.#readableStream = new _ReadableStream({
|
|
200
177
|
start: (controller) => {
|
|
201
178
|
this.#readableController = controller;
|
|
@@ -364,6 +341,13 @@ export class StreamedRunResult extends RunResultBase {
|
|
|
364
341
|
logger.debug(`Failed to remove abort listener: ${err}`);
|
|
365
342
|
}
|
|
366
343
|
}
|
|
344
|
+
try {
|
|
345
|
+
this.#combinedSignalCleanup();
|
|
346
|
+
}
|
|
347
|
+
catch (err) {
|
|
348
|
+
logger.debug(`Failed to clean up combined abort listeners: ${err}`);
|
|
349
|
+
}
|
|
350
|
+
this.#combinedSignalCleanup = () => { };
|
|
367
351
|
this.#abortHandler = undefined;
|
|
368
352
|
this.#abortHandlerRef = undefined;
|
|
369
353
|
}
|
package/dist/result.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.mjs","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"OAUO,EAEL,cAAc,IAAI,eAAe,EACjC,eAAe,EACf,QAAQ,GACT,MAAM,4BAA4B;OAG5B,EAAE,YAAY,EAAE;OAGhB,MAAM;OACN,EAAE,qBAAqB,EAAE;
|
|
1
|
+
{"version":3,"file":"result.mjs","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,9 +22,11 @@ const base64_1 = require("../utils/base64.js");
|
|
|
22
22
|
const smartString_1 = require("../utils/smartString.js");
|
|
23
23
|
const utils_1 = require("../utils/index.js");
|
|
24
24
|
const createSpans_1 = require("../tracing/createSpans.js");
|
|
25
|
+
const context_1 = require("../tracing/context.js");
|
|
25
26
|
const toolGuardrails_1 = require("../utils/toolGuardrails.js");
|
|
26
27
|
const steps_1 = require("./steps.js");
|
|
27
28
|
const TOOL_APPROVAL_REJECTION_MESSAGE = 'Tool execution was not approved.';
|
|
29
|
+
const REDACTED_TOOL_ERROR_MESSAGE = 'Tool execution failed. Error details are redacted.';
|
|
28
30
|
// 1x1 transparent PNG data URL used for rejected computer actions.
|
|
29
31
|
const TOOL_APPROVAL_REJECTION_SCREENSHOT_DATA_URL = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR4nGP4z8DwHwAFAAH/iZk9HQAAAABJRU5ErkJggg==';
|
|
30
32
|
async function resolveApprovalRejectionMessage({ runContext, toolType, toolName, callId, toolErrorFormatter, }) {
|
|
@@ -108,6 +110,10 @@ async function executeFunctionToolCalls(agent, toolRuns, runner, state, toolErro
|
|
|
108
110
|
return results;
|
|
109
111
|
}
|
|
110
112
|
catch (e) {
|
|
113
|
+
if (e instanceof errors_1.ToolTimeoutError) {
|
|
114
|
+
e.state ??= state;
|
|
115
|
+
throw e;
|
|
116
|
+
}
|
|
111
117
|
throw new errors_1.ToolCallError(`Failed to run function tools: ${e}`, e, state);
|
|
112
118
|
}
|
|
113
119
|
}
|
|
@@ -222,7 +228,12 @@ async function runApprovedFunctionTool(deps, toolRun) {
|
|
|
222
228
|
}
|
|
223
229
|
else {
|
|
224
230
|
const resumeState = state.getPendingAgentToolRun(toolRun.tool.name, toolRun.toolCall.callId);
|
|
225
|
-
toolOutput = await
|
|
231
|
+
toolOutput = await (0, tool_1.invokeFunctionTool)({
|
|
232
|
+
tool: toolRun.tool,
|
|
233
|
+
runContext: state._context,
|
|
234
|
+
input: toolRun.toolCall.arguments,
|
|
235
|
+
details: { toolCall: toolRun.toolCall, resumeState },
|
|
236
|
+
});
|
|
226
237
|
toolOutput = await (0, toolGuardrails_1.runToolOutputGuardrails)({
|
|
227
238
|
guardrails: toolRun.tool.outputGuardrails,
|
|
228
239
|
context: state._context,
|
|
@@ -341,6 +352,19 @@ function toErrorMessage(error) {
|
|
|
341
352
|
return String(error);
|
|
342
353
|
}
|
|
343
354
|
}
|
|
355
|
+
function getTraceToolError(traceIncludeSensitiveData, errorMessage) {
|
|
356
|
+
return traceIncludeSensitiveData ? errorMessage : REDACTED_TOOL_ERROR_MESSAGE;
|
|
357
|
+
}
|
|
358
|
+
async function withToolFunctionSpan(runner, toolName, fn) {
|
|
359
|
+
if (runner.config.tracingDisabled || !(0, context_1.getCurrentTrace)()) {
|
|
360
|
+
return fn();
|
|
361
|
+
}
|
|
362
|
+
return (0, createSpans_1.withFunctionSpan)(async (span) => fn(span), {
|
|
363
|
+
data: {
|
|
364
|
+
name: toolName,
|
|
365
|
+
},
|
|
366
|
+
});
|
|
367
|
+
}
|
|
344
368
|
async function resolveToolApproval(options) {
|
|
345
369
|
const { runContext, toolName, callId, approvalItem, needsApproval, onApproval, } = options;
|
|
346
370
|
if (!needsApproval) {
|
|
@@ -439,45 +463,63 @@ async function executeShellActions(agent, actions, runner, runContext, customLog
|
|
|
439
463
|
results.push(approvalDecision.item);
|
|
440
464
|
continue;
|
|
441
465
|
}
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
let maxOutputLength;
|
|
446
|
-
try {
|
|
447
|
-
const shellResult = await shellTool.shell.run(toolCall.action);
|
|
448
|
-
shellOutputs = shellResult.output ?? [];
|
|
449
|
-
if (shellResult.providerData) {
|
|
450
|
-
Object.assign(providerMeta, shellResult.providerData);
|
|
466
|
+
const shellItem = await withToolFunctionSpan(runner, shellTool.name, async (span) => {
|
|
467
|
+
if (span && runner.config.traceIncludeSensitiveData) {
|
|
468
|
+
span.spanData.input = JSON.stringify(toolCall.action);
|
|
451
469
|
}
|
|
452
|
-
|
|
453
|
-
|
|
470
|
+
emitToolStart(runner, runContext, agent, shellTool, toolCall);
|
|
471
|
+
let shellOutputs;
|
|
472
|
+
const providerMeta = {};
|
|
473
|
+
let maxOutputLength;
|
|
474
|
+
try {
|
|
475
|
+
const shellResult = await shellTool.shell.run(toolCall.action);
|
|
476
|
+
shellOutputs = shellResult.output ?? [];
|
|
477
|
+
if (shellResult.providerData) {
|
|
478
|
+
Object.assign(providerMeta, shellResult.providerData);
|
|
479
|
+
}
|
|
480
|
+
if (typeof shellResult.maxOutputLength === 'number') {
|
|
481
|
+
maxOutputLength = shellResult.maxOutputLength;
|
|
482
|
+
}
|
|
454
483
|
}
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
484
|
+
catch (err) {
|
|
485
|
+
const errorText = toErrorMessage(err);
|
|
486
|
+
const traceError = getTraceToolError(runner.config.traceIncludeSensitiveData, errorText);
|
|
487
|
+
shellOutputs = [
|
|
488
|
+
{
|
|
489
|
+
stdout: '',
|
|
490
|
+
stderr: errorText,
|
|
491
|
+
outcome: { type: 'exit', exitCode: null },
|
|
492
|
+
},
|
|
493
|
+
];
|
|
494
|
+
span?.setError({
|
|
495
|
+
message: 'Error running tool',
|
|
496
|
+
data: {
|
|
497
|
+
tool_name: shellTool.name,
|
|
498
|
+
error: traceError,
|
|
499
|
+
},
|
|
500
|
+
});
|
|
501
|
+
_logger.error('Failed to execute shell action:', err);
|
|
502
|
+
}
|
|
503
|
+
shellOutputs = shellOutputs ?? [];
|
|
504
|
+
const output = JSON.stringify(shellOutputs);
|
|
505
|
+
emitToolEnd(runner, runContext, agent, shellTool, output, toolCall);
|
|
506
|
+
if (span && runner.config.traceIncludeSensitiveData) {
|
|
507
|
+
span.spanData.output = output;
|
|
508
|
+
}
|
|
509
|
+
const rawItem = {
|
|
510
|
+
type: 'shell_call_output',
|
|
511
|
+
callId: toolCall.callId,
|
|
512
|
+
output: shellOutputs ?? [],
|
|
513
|
+
};
|
|
514
|
+
if (typeof maxOutputLength === 'number') {
|
|
515
|
+
rawItem.maxOutputLength = maxOutputLength;
|
|
516
|
+
}
|
|
517
|
+
if (Object.keys(providerMeta).length > 0) {
|
|
518
|
+
rawItem.providerData = providerMeta;
|
|
519
|
+
}
|
|
520
|
+
return new items_1.RunToolCallOutputItem(rawItem, agent, rawItem.output);
|
|
521
|
+
});
|
|
522
|
+
results.push(shellItem);
|
|
481
523
|
}
|
|
482
524
|
return results;
|
|
483
525
|
}
|
|
@@ -515,46 +557,63 @@ async function executeApplyPatchOperations(agent, actions, runner, runContext, c
|
|
|
515
557
|
results.push(approvalDecision.item);
|
|
516
558
|
continue;
|
|
517
559
|
}
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
try {
|
|
522
|
-
let result;
|
|
523
|
-
switch (toolCall.operation.type) {
|
|
524
|
-
case 'create_file':
|
|
525
|
-
result = await applyPatchTool.editor.createFile(toolCall.operation);
|
|
526
|
-
break;
|
|
527
|
-
case 'update_file':
|
|
528
|
-
result = await applyPatchTool.editor.updateFile(toolCall.operation);
|
|
529
|
-
break;
|
|
530
|
-
case 'delete_file':
|
|
531
|
-
result = await applyPatchTool.editor.deleteFile(toolCall.operation);
|
|
532
|
-
break;
|
|
533
|
-
default:
|
|
534
|
-
throw new Error('Unsupported apply_patch operation');
|
|
560
|
+
const applyPatchItem = await withToolFunctionSpan(runner, applyPatchTool.name, async (span) => {
|
|
561
|
+
if (span && runner.config.traceIncludeSensitiveData) {
|
|
562
|
+
span.spanData.input = JSON.stringify(toolCall.operation);
|
|
535
563
|
}
|
|
536
|
-
|
|
537
|
-
|
|
564
|
+
emitToolStart(runner, runContext, agent, applyPatchTool, toolCall);
|
|
565
|
+
let status = 'completed';
|
|
566
|
+
let output = '';
|
|
567
|
+
try {
|
|
568
|
+
let result;
|
|
569
|
+
switch (toolCall.operation.type) {
|
|
570
|
+
case 'create_file':
|
|
571
|
+
result = await applyPatchTool.editor.createFile(toolCall.operation);
|
|
572
|
+
break;
|
|
573
|
+
case 'update_file':
|
|
574
|
+
result = await applyPatchTool.editor.updateFile(toolCall.operation);
|
|
575
|
+
break;
|
|
576
|
+
case 'delete_file':
|
|
577
|
+
result = await applyPatchTool.editor.deleteFile(toolCall.operation);
|
|
578
|
+
break;
|
|
579
|
+
default:
|
|
580
|
+
throw new Error('Unsupported apply_patch operation');
|
|
581
|
+
}
|
|
582
|
+
if (result && typeof result.status === 'string') {
|
|
583
|
+
status = result.status;
|
|
584
|
+
}
|
|
585
|
+
if (result && typeof result.output === 'string') {
|
|
586
|
+
output = result.output;
|
|
587
|
+
}
|
|
538
588
|
}
|
|
539
|
-
|
|
540
|
-
|
|
589
|
+
catch (err) {
|
|
590
|
+
status = 'failed';
|
|
591
|
+
output = toErrorMessage(err);
|
|
592
|
+
const traceError = getTraceToolError(runner.config.traceIncludeSensitiveData, output);
|
|
593
|
+
span?.setError({
|
|
594
|
+
message: 'Error running tool',
|
|
595
|
+
data: {
|
|
596
|
+
tool_name: applyPatchTool.name,
|
|
597
|
+
error: traceError,
|
|
598
|
+
},
|
|
599
|
+
});
|
|
600
|
+
_logger.error('Failed to execute apply_patch operation:', err);
|
|
541
601
|
}
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
results.push(new items_1.RunToolCallOutputItem(rawItem, agent, output));
|
|
602
|
+
emitToolEnd(runner, runContext, agent, applyPatchTool, output, toolCall);
|
|
603
|
+
if (span && runner.config.traceIncludeSensitiveData) {
|
|
604
|
+
span.spanData.output = output;
|
|
605
|
+
}
|
|
606
|
+
const rawItem = {
|
|
607
|
+
type: 'apply_patch_call_output',
|
|
608
|
+
callId: toolCall.callId,
|
|
609
|
+
status,
|
|
610
|
+
};
|
|
611
|
+
if (output) {
|
|
612
|
+
rawItem.output = output;
|
|
613
|
+
}
|
|
614
|
+
return new items_1.RunToolCallOutputItem(rawItem, agent, output);
|
|
615
|
+
});
|
|
616
|
+
results.push(applyPatchItem);
|
|
558
617
|
}
|
|
559
618
|
return results;
|
|
560
619
|
}
|
|
@@ -626,44 +685,62 @@ async function executeComputerActions(agent, actions, runner, runContext, custom
|
|
|
626
685
|
results.push(approvalDecision.item);
|
|
627
686
|
continue;
|
|
628
687
|
}
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
688
|
+
const computerItem = await withToolFunctionSpan(runner, computerTool.name, async (span) => {
|
|
689
|
+
if (span && runner.config.traceIncludeSensitiveData) {
|
|
690
|
+
span.spanData.input = JSON.stringify(toolCall.action);
|
|
691
|
+
}
|
|
692
|
+
// Hooks: on_tool_start (global + agent)
|
|
693
|
+
emitToolStart(runner, runContext, agent, computerTool, toolCall);
|
|
694
|
+
const acknowledgedSafetyChecks = pendingSafetyChecks && pendingSafetyChecks.length > 0
|
|
695
|
+
? await resolveSafetyCheckAcknowledgements({
|
|
696
|
+
runContext,
|
|
697
|
+
toolCall,
|
|
698
|
+
pendingSafetyChecks,
|
|
699
|
+
onSafetyCheck: computerTool.onSafetyCheck,
|
|
700
|
+
})
|
|
701
|
+
: undefined;
|
|
702
|
+
// Run the action and get screenshot.
|
|
703
|
+
let output;
|
|
704
|
+
try {
|
|
705
|
+
const computer = await (0, tool_1.resolveComputer)({
|
|
706
|
+
tool: computerTool,
|
|
707
|
+
runContext,
|
|
708
|
+
});
|
|
709
|
+
output = await _runComputerActionAndScreenshot(computer, toolCall, runContext);
|
|
710
|
+
}
|
|
711
|
+
catch (err) {
|
|
712
|
+
_logger.error('Failed to execute computer action:', err);
|
|
713
|
+
output = '';
|
|
714
|
+
const errorText = toErrorMessage(err);
|
|
715
|
+
const traceError = getTraceToolError(runner.config.traceIncludeSensitiveData, errorText);
|
|
716
|
+
span?.setError({
|
|
717
|
+
message: 'Error running tool',
|
|
718
|
+
data: {
|
|
719
|
+
tool_name: computerTool.name,
|
|
720
|
+
error: traceError,
|
|
721
|
+
},
|
|
722
|
+
});
|
|
723
|
+
}
|
|
724
|
+
// Hooks: on_tool_end (global + agent)
|
|
725
|
+
emitToolEnd(runner, runContext, agent, computerTool, output, toolCall);
|
|
726
|
+
// Return the screenshot as a data URL when available; fall back to an empty string on failures.
|
|
727
|
+
const imageUrl = output ? `data:image/png;base64,${output}` : '';
|
|
728
|
+
if (span && runner.config.traceIncludeSensitiveData) {
|
|
729
|
+
span.spanData.output = imageUrl;
|
|
730
|
+
}
|
|
731
|
+
const rawItem = {
|
|
732
|
+
type: 'computer_call_result',
|
|
733
|
+
callId: toolCall.callId,
|
|
734
|
+
output: { type: 'computer_screenshot', data: imageUrl },
|
|
664
735
|
};
|
|
665
|
-
|
|
666
|
-
|
|
736
|
+
if (acknowledgedSafetyChecks && acknowledgedSafetyChecks.length > 0) {
|
|
737
|
+
rawItem.providerData = {
|
|
738
|
+
acknowledgedSafetyChecks,
|
|
739
|
+
};
|
|
740
|
+
}
|
|
741
|
+
return new items_1.RunToolCallOutputItem(rawItem, agent, imageUrl);
|
|
742
|
+
});
|
|
743
|
+
results.push(computerItem);
|
|
667
744
|
}
|
|
668
745
|
return results;
|
|
669
746
|
}
|