import { Logger, Span as Span$1 } from 'braintrust'; /** * Type definitions copied from @openai/agents-core. * * Original source: https://github.com/openai/openai-agents-js * * MIT License * * Copyright (c) 2025 OpenAI * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ type SpanDataBase = { type: string; }; type AgentSpanData = SpanDataBase & { type: "agent"; name: string; handoffs?: string[]; tools?: string[]; output_type?: string; }; type FunctionSpanData = SpanDataBase & { type: "function"; name: string; input: string; output: string; mcp_data?: string; }; type GenerationSpanData = SpanDataBase & { type: "generation"; input?: Array>; output?: Array>; model?: string; model_config?: Record; usage?: Record; }; type ResponseSpanData = SpanDataBase & { type: "response"; response_id?: string; /** * Not used by the OpenAI tracing provider but helpful for other tracing providers. */ _input?: string | Record[]; _response?: Record; }; type HandoffSpanData = SpanDataBase & { type: "handoff"; from_agent?: string; to_agent?: string; }; type CustomSpanData = SpanDataBase & { type: "custom"; name: string; data: Record; }; type GuardrailSpanData = SpanDataBase & { type: "guardrail"; name: string; triggered: boolean; }; type TranscriptionSpanData = SpanDataBase & { type: "transcription"; input: { data: string; format: "pcm" | string; }; output?: string; model?: string; model_config?: Record; }; type SpeechSpanData = SpanDataBase & { type: "speech"; input?: string; output: { data: string; format: "pcm" | string; }; model?: string; model_config?: Record; }; type SpeechGroupSpanData = SpanDataBase & { type: "speech_group"; input?: string; }; type MCPListToolsSpanData = SpanDataBase & { type: "mcp_tools"; server?: string; result?: string[]; }; type SpanData = AgentSpanData | FunctionSpanData | GenerationSpanData | ResponseSpanData | HandoffSpanData | CustomSpanData | GuardrailSpanData | TranscriptionSpanData | SpeechSpanData | SpeechGroupSpanData | MCPListToolsSpanData; type Trace = { type: "trace"; traceId: string; name: string; groupId: string | null; metadata?: Record; }; type Span = { type: "trace.span"; traceId: string; spanData: TData; spanId: string; parentId: string | null; startedAt: string | null; endedAt: string | null; error: { message: string; data?: Record; } | null; }; type AgentsTrace = Trace; type AgentsSpan = Span; type SpanInput = string | Array> | Record[]; type SpanOutput = string | Array> | Record; type TraceMetadata = { firstInput: SpanInput | null; lastOutput: SpanOutput | null; }; interface OpenAIAgentsTraceProcessorOptions { logger?: Logger; maxTraces?: number; } /** * `OpenAIAgentsTraceProcessor` is a tracing processor that logs traces from the OpenAI Agents SDK to Braintrust. * * Args: * options: Configuration options including: * - logger: A `Span`, `Experiment`, or `Logger` to use for logging. * If `undefined`, the current span, experiment, or logger will be selected exactly as in `startSpan`. * - maxTraces: Maximum number of concurrent traces to keep in memory (default: 1000). * When exceeded, oldest traces are evicted using LRU policy. * */ declare class OpenAIAgentsTraceProcessor { private static readonly DEFAULT_MAX_TRACES; private logger?; private maxTraces; private traceSpans; private traceOrder; readonly _traceSpans: Map; metadata: TraceMetadata; }>; constructor(options?: OpenAIAgentsTraceProcessorOptions); private processInputImages; private processOutputImages; private evictOldestTrace; onTraceStart(trace: AgentsTrace): Promise; onTraceEnd(trace: AgentsTrace): Promise; private extractAgentLogData; private extractResponseLogData; private extractFunctionLogData; private extractHandoffLogData; private extractGuardrailLogData; private extractGenerationLogData; private extractCustomLogData; private extractMCPListToolsLogData; private extractTranscriptionLogData; private extractSpeechLogData; private extractSpeechGroupLogData; private extractLogData; onSpanStart(span: AgentsSpan): Promise; onSpanEnd(span: AgentsSpan): Promise; shutdown(): Promise; forceFlush(): Promise; } export { OpenAIAgentsTraceProcessor };