@openai/agents-core
Version:
The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows.
61 lines • 2.51 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createInvalidToolOutputError = createInvalidToolOutputError;
exports.refreshInvalidToolOutputFailure = refreshInvalidToolOutputFailure;
exports.getInvalidToolOutputFailure = getInvalidToolOutputFailure;
exports.isRedactedInvalidToolOutputError = isRedactedInvalidToolOutputError;
const errors_1 = require("./errors.js");
const logger_1 = __importDefault(require("./logger.js"));
const redactedInvalidToolOutputErrors = new WeakSet();
const invalidToolOutputFailures = new WeakMap();
const invalidToolOutputRedactedMessages = new WeakMap();
const REDACTED_INVALID_TOOL_OUTPUT_MESSAGE = 'Invalid function tool output.';
/**
* Constructs invalid tool output errors without retaining tool output or
* validator details when tool data is redacted.
*
* @internal
*/
function createInvalidToolOutputError(message, originalError, toolOutput) {
const disposition = { redacted: logger_1.default.dontLogToolData };
const error = disposition.redacted
? new errors_1.InvalidToolOutputError(message)
: new errors_1.InvalidToolOutputError(message, undefined, originalError, toolOutput);
if (disposition.redacted) {
redactedInvalidToolOutputErrors.add(error);
}
const failure = {
error,
redacted: disposition.redacted,
disposition,
};
invalidToolOutputFailures.set(error, failure);
invalidToolOutputRedactedMessages.set(failure, message);
return error;
}
/** @internal */
function refreshInvalidToolOutputFailure(failure) {
if (logger_1.default.dontLogToolData) {
failure.disposition.redacted = true;
}
if (failure.disposition.redacted) {
failure.error = new errors_1.InvalidToolOutputError(invalidToolOutputRedactedMessages.get(failure) ??
REDACTED_INVALID_TOOL_OUTPUT_MESSAGE);
redactedInvalidToolOutputErrors.add(failure.error);
invalidToolOutputFailures.set(failure.error, failure);
}
failure.redacted = failure.disposition.redacted;
return failure.redacted;
}
/** @internal */
function getInvalidToolOutputFailure(error) {
return invalidToolOutputFailures.get(error);
}
/** @internal */
function isRedactedInvalidToolOutputError(error) {
return redactedInvalidToolOutputErrors.has(error);
}
//# sourceMappingURL=toolOutputError.js.map