@openai/agents-core
Version:
The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows.
49 lines (48 loc) • 4.33 kB
TypeScript
import { Agent, AgentOutputType } from '../agent';
import { OutputGuardrailTripwireTriggered } from '../errors';
import { InputGuardrailDefinition, InputGuardrailResult, OutputGuardrailDefinition, OutputGuardrailMetadata, OutputGuardrailResult } from '../guardrail';
import { RunState } from '../runState';
import type { AgentInputItem } from '../types';
export type GuardrailTracker = {
readonly pending: boolean;
readonly failed: boolean;
readonly error: unknown;
markPending: () => void;
setPromise: (promise?: Promise<InputGuardrailResult[]>) => void;
setError: (err: unknown) => void;
throwIfError: () => Promise<void>;
awaitCompletion: (options?: {
suppressErrors?: boolean;
}) => Promise<void>;
};
export declare const createGuardrailTracker: () => GuardrailTracker;
/** Validates restored result ownership without publishing live ownership evidence. */
export declare function getSerializedOutputGuardrailResults(state: RunState<any, any>, blockedOutput: string): Set<OutputGuardrailResult<any, any>>;
export declare function buildInputGuardrailDefinitions<TContext, TAgent extends Agent<TContext, AgentOutputType>>(state: RunState<TContext, TAgent>, runnerGuardrails: InputGuardrailDefinition[]): InputGuardrailDefinition[];
export declare function splitInputGuardrails(guardrails: InputGuardrailDefinition[]): {
blocking: InputGuardrailDefinition[];
parallel: InputGuardrailDefinition[];
};
export declare function runInputGuardrails<TContext, TAgent extends Agent<TContext, AgentOutputType>>(state: RunState<TContext, TAgent>, guardrails: InputGuardrailDefinition[], options?: {
onErrorObserved?: (error: unknown) => void;
input?: string | AgentInputItem[];
}): Promise<InputGuardrailResult[]>;
export declare function runOutputGuardrails<TContext, TOutput extends AgentOutputType, TAgent extends Agent<TContext, TOutput>>(state: RunState<TContext, TAgent>, runnerOutputGuardrails: OutputGuardrailDefinition<OutputGuardrailMetadata, AgentOutputType<unknown>>[], output: string, onResultObserved?: (result: OutputGuardrailResult<any, any>, tripwireTriggered: boolean) => void): Promise<void>;
export declare function finalizeOutputGuardrails<TContext, TAgent extends Agent<TContext, any>>(options: {
state: RunState<TContext, TAgent>;
runnerOutputGuardrails: OutputGuardrailDefinition<OutputGuardrailMetadata, AgentOutputType<unknown>>[];
output: string;
redactedOutput: string;
guardedTerminalToolOutput: boolean;
signal?: AbortSignal;
sanitizeRejectedOutput: (state: RunState<TContext, TAgent>, resultStart: number, completedTripwireResult: OutputGuardrailResult<any, any> | undefined, observedResults: ReadonlyMap<OutputGuardrailResult<any, any>, boolean>, tripwire?: OutputGuardrailTripwireTriggered<any, any>, ownedGuardrailResults?: ReadonlySet<OutputGuardrailResult<any, any>>) => false | string | Promise<false | string>;
persistBlockedOutput?: () => Promise<void>;
persistUnblockedFailure?: () => Promise<void>;
onBlockedOutput?: () => void;
releaseBlockedOutputPersistence: (state: RunState<TContext, TAgent>) => void;
}): Promise<void>;
export declare function sanitizeBlockedOutputGuardrailError(error: unknown, rejectedOutput: string, redactedOutput: string, state: RunState<any, any>, currentTripwireResult?: OutputGuardrailResult<any, any>): unknown;
export declare function sanitizeBlockedOutputGuardrailErrorDetails(error: unknown, rejectedOutput: string, redactedOutput: string, state: RunState<any, any>): Error;
export declare function sanitizeBlockedOutputGuardrailResults(state: RunState<any, any>, resultStartIndex: number, redactedOutput: string, observedTripwireResults: ReadonlyMap<OutputGuardrailResult<any, any>, boolean>, tripwire?: OutputGuardrailTripwireTriggered<any, any>, ownedGuardrailResults?: ReadonlySet<OutputGuardrailResult<any, any>>): ReadonlySet<OutputGuardrailResult<any, any>>;
export declare function replaceSanitizedOutputGuardrailMessages(state: RunState<any, any>, sanitizedOwnedResults: ReadonlySet<OutputGuardrailResult<any, any>>, redactedOutput: string, tripwire?: OutputGuardrailTripwireTriggered<any, any>): void;
export declare function sanitizeBlockedToolOutputGuardrailResults(state: RunState<any, any>, resultStartIndex: number, redactedOutput: string): void;