import OpenAI from 'openai'; import { ChatCompletionMessageToolCall, ChatCompletionToolChoiceOption, CompletionUsage } from 'openai/resources'; import { Stream } from 'openai/streaming'; import { z } from 'zod'; import { BetterTool } from './create'; import { ToolCallResult } from './fulfill'; import { Client } from '@modelcontextprotocol/sdk/client/index.js'; export type ZodBase = z.ZodObject; export type OpenAITool = OpenAI.Chat.Completions.ChatCompletionTool; export type OpenAIToolCall = OpenAI.Chat.Completions.ChatCompletionChunk.Choice.Delta.ToolCall; export type OpenAIAssistantMessage = OpenAI.Chat.Completions.ChatCompletionAssistantMessageParam; export type OpenAIToolMessage = OpenAI.Chat.Completions.ChatCompletionToolMessageParam; export type FunctionalCompletionMessage = OpenAIAssistantMessage | OpenAIToolMessage; export interface ToolFunction { (args: z.output): Promise; } export interface ToolDefinition { name: string; description: string; schema?: S; shouldPersistent?: boolean; func: ToolFunction; } /** * The argument for {@link streaming} function. */ export interface StreamingArgs { completionStream: Stream & { _request_id?: string | null; }; onTextDelta?: (text: string) => (void | Promise); onReasonDelta?: (text: string) => (void | Promise); } export interface StreamingResult { usage?: OpenAI.Completions.CompletionUsage; completionText: string; reasonText: string; toolCalls: ChatCompletionMessageToolCall[]; } export interface Result { usage?: CompletionUsage; messages: FunctionalCompletionMessage[]; } export type RequestBody = Omit & { tools?: BetterTool[]; stream: true; tool_choice: ChatCompletionToolChoiceOption; stream_options: { include_usage: true; }; }; export interface FunctionalChatCompletionParamsStreaming { client: OpenAI; mcpClients?: Client[]; body: RequestBody; callbacks?: { onStaringOneChatCompletion?: () => (void | Promise); onOneChatCompletionFinished?: (args: OneChatCompletionCompletedArgs) => (void | Promise); onTextDelta?: (text: string) => (void | Promise); onReasonDelta?: (text: string) => (void | Promise); }; } export interface OneChatCompletionCompletedArgs { assistantMessage: OpenAIAssistantMessage; toolsResult?: ToolCallResult[]; usage?: CompletionUsage; } //# sourceMappingURL=types.d.ts.map