@openai/agents-core
Version:
The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows.
52 lines • 1.98 kB
JavaScript
import { InvalidToolOutputError } from "./errors.mjs";
import logger from "./logger.mjs";
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
*/
export function createInvalidToolOutputError(message, originalError, toolOutput) {
const disposition = { redacted: logger.dontLogToolData };
const error = disposition.redacted
? new InvalidToolOutputError(message)
: new 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 */
export function refreshInvalidToolOutputFailure(failure) {
if (logger.dontLogToolData) {
failure.disposition.redacted = true;
}
if (failure.disposition.redacted) {
failure.error = new 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 */
export function getInvalidToolOutputFailure(error) {
return invalidToolOutputFailures.get(error);
}
/** @internal */
export function isRedactedInvalidToolOutputError(error) {
return redactedInvalidToolOutputErrors.has(error);
}
//# sourceMappingURL=toolOutputError.mjs.map