@openai/agents-core
Version:
The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows.
56 lines • 2.07 kB
JavaScript
import { InvalidToolInputError, } from "./errors.mjs";
import logger from "./logger.mjs";
const redactedInvalidToolInputErrors = new WeakSet();
const invalidToolInputFailures = new WeakMap();
/**
* Constructs invalid tool input errors without retaining model-produced input
* or parser details when tool data is redacted.
*
* @internal
*/
export function createInvalidToolInputFailure({ message, state, originalError, toolInvocation, disposition: requestedDisposition, fatal = false, }) {
const disposition = requestedDisposition ?? createInvalidToolInputDisposition();
if (logger.dontLogToolData) {
disposition.redacted = true;
}
const redacted = disposition.redacted;
const error = new InvalidToolInputError(message, redacted ? undefined : state, redacted ? undefined : originalError, redacted ? undefined : toolInvocation);
if (redacted) {
redactedInvalidToolInputErrors.add(error);
}
const failure = {
error,
redacted,
disposition,
fatal,
};
invalidToolInputFailures.set(error, failure);
return failure;
}
/** @internal */
export function createInvalidToolInputDisposition() {
return { redacted: logger.dontLogToolData };
}
/** @internal */
export function refreshInvalidToolInputFailure(failure) {
if (logger.dontLogToolData) {
failure.disposition.redacted = true;
}
if (failure.disposition.redacted &&
!redactedInvalidToolInputErrors.has(failure.error)) {
failure.error = new InvalidToolInputError(failure.error.message);
redactedInvalidToolInputErrors.add(failure.error);
invalidToolInputFailures.set(failure.error, failure);
}
failure.redacted = failure.disposition.redacted;
return failure.redacted;
}
/** @internal */
export function isRedactedInvalidToolInputError(error) {
return redactedInvalidToolInputErrors.has(error);
}
/** @internal */
export function getInvalidToolInputFailure(error) {
return invalidToolInputFailures.get(error);
}
//# sourceMappingURL=toolInputError.mjs.map