UNPKG

@openai/agents-core

Version:

The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows.

52 lines • 1.98 kB
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