/** * OpenAI Responses API (/v1/responses, not Chat Completions) — wire types and provider implementation. */ import type { ChatMessageDto, ChatStreamPieceDto, ChatResponseDto, ProviderResponseDto, ProviderStreamEventDto } from '../protocol.js'; import { AIProvider, type ChatRequestOpts } from '../aiProvider.js'; export type OpenAIReasoningEffort = 'none' | 'low' | 'medium' | 'high'; export type OpenAIReasoningSummary = 'auto' | 'concise' | 'detailed'; export interface OpenAIWebSearchTool { type: 'web_search'; } export type OpenAITool = OpenAIWebSearchTool; export interface OpenAIResponsesApiRequestDto { model: string; input: string; reasoning?: { effort: OpenAIReasoningEffort; summary?: OpenAIReasoningSummary; }; tools?: OpenAITool[]; stream?: boolean; } export interface OpenAIResponseOutputText { text: string; type: 'output_text'; } export interface OpenAIResponseReasoningSummary { text: string; type: 'summary_text'; } export interface OpenAIResponseOutputMessage { type: 'message'; content: Array; } export interface OpenAIResponseReasoningItem { type: 'reasoning'; summary: Array; } export type OpenAIResponseOutputItem = OpenAIResponseOutputMessage | OpenAIResponseReasoningItem; export interface OpenAIResponsesApiResponseDto extends ProviderResponseDto { object: 'response'; output_text: string; output: Array; } interface OpenAIResponseEventBase { sequence_number: number; } interface OpenAIResponseItemLocation { item_id: string; output_index: number; } interface OpenAIResponseContentLocation extends OpenAIResponseItemLocation { content_index: number; } export type OpenAIResponseOutputTextDeltaEvent = OpenAIResponseEventBase & OpenAIResponseContentLocation & { type: 'response.output_text.delta'; delta: string; }; export type OpenAIResponseReasoningSummaryTextDeltaEvent = OpenAIResponseEventBase & OpenAIResponseItemLocation & { type: 'response.reasoning_summary_text.delta'; delta: string; summary_index: number; }; export type OpenAIResponseCompletedEvent = OpenAIResponseEventBase & { type: 'response.completed'; response: OpenAIResponsesApiResponseDto; }; export type OpenAIResponseErrorEvent = OpenAIResponseEventBase & { type: 'error'; error: { type: string; code: string | null; message: string; param: string | null; }; }; export type OpenAIResponseFailedEvent = OpenAIResponseEventBase & { type: 'response.failed'; }; export type OpenAIResponseSseEventDto = OpenAIResponseOutputTextDeltaEvent | OpenAIResponseReasoningSummaryTextDeltaEvent | OpenAIResponseCompletedEvent | OpenAIResponseErrorEvent | OpenAIResponseFailedEvent | { type: string; }; export declare class OpenAIProvider extends AIProvider { protected readonly providerName = "OpenAI"; readonly defaultBaseUrl = "https://api.openai.com"; readonly path = "/v1/responses"; private readonly effortMap; buildHeaders(apiKey: string): Record; buildPayload(messages: ChatMessageDto[], model: string, opts: ChatRequestOpts, stream: boolean): OpenAIResponsesApiRequestDto; parseNonStreamingResponse(json: ProviderResponseDto): ChatResponseDto; protected parseProviderStreamChunk(json: ProviderStreamEventDto): ChatStreamPieceDto | null; private convertMessagesToInput; private isResponsesApiEvent; private isResponsesApiResponse; } export {}; //# sourceMappingURL=openAI.d.ts.map