UNPKG

@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
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;