UNPKG

@contextprompt/completions-sdk

Version:

Multi-provider completions SDK with MCP support for OpenAI, Claude, and Gemini

82 lines (81 loc) 3.45 kB
import OpenAI from "openai"; import { ChildProcess } from "child_process"; interface MCPServerDefinition { command?: string; args?: string[]; type?: "http" | "streamable-http"; url?: string; headers?: Record<string, string>; timeout?: number; serverInstructions?: boolean; env?: Record<string, string>; } interface MCPServerConfig { [serverName: string]: MCPServerDefinition; } interface MCPServerStatus { name: string; type: "command" | "http" | "streamable-http"; status: "connected" | "disconnected" | "error" | "starting"; pid?: number; url?: string; lastError?: string; uptime?: number; } interface MCPServerInstance { name: string; config: MCPServerDefinition; type: "command" | "http" | "streamable-http"; process?: ChildProcess; sessionId?: string; initialized: boolean; lastError?: string; startTime?: number; } declare class MultiProviderOpenAI extends OpenAI { mcpServersConfig: MCPServerConfig; mcpEnabled: boolean; mcpServerInstances: Map<string, MCPServerInstance>; mcpToolsCache: any; mcpLastCacheTime: number; CACHE_DURATION: number; toolToServerMap: Map<string, string>; originalOpenAIOptions: any; mcpInitializationPromise: Promise<any>; mcpClient: any; constructor(options?: any); _overrideChatCompletions(): void; ensureMCPInitialized(): Promise<void>; initializeMCP(): Promise<void>; _initializeMCPServer(serverName: string): Promise<void>; _getServerType(config: MCPServerDefinition): "command" | "http" | "streamable-http"; _initializeCommandServer(instance: MCPServerInstance): Promise<void>; _initializeHttpServer(instance: MCPServerInstance): Promise<void>; _mcpRequest(serverName: string, method: string, params?: {}, sessionId?: any, customInstance?: MCPServerInstance): Promise<{ data: any; response: Response; }>; getMCPTools(): Promise<any>; _getMCPToolsInternal(): Promise<any[]>; _displayToolList(tools: any): void; callMCPTool(name: string, args: any): Promise<any>; callMCPTool(serverName: string, toolName: string, args: any): Promise<any>; private _callToolByName; private _callToolOnServer; listAvailableTools(serverName?: string): Promise<any[]>; private _getToolsFromServer; getMCPServerStatus(serverName?: string): Promise<MCPServerStatus | MCPServerStatus[]>; private _getServerStatus; restartMCPServer(serverName: string): Promise<void>; getMCPServerCapabilities(serverName: string): Promise<any>; _initializePerRequestServers(mcpServersConfig: MCPServerConfig): Promise<Map<string, MCPServerInstance>>; _getToolsFromPerRequestServers(perRequestServers: Map<string, MCPServerInstance>): Promise<any[]>; _cleanupPerRequestServers(perRequestServers: Map<string, MCPServerInstance>): void; _callToolWithServers(toolName: string, args: any, perRequestServers: Map<string, MCPServerInstance>): Promise<any>; createChatCompletion(options: any): Promise<any>; createWithMCPTools(options: any): Promise<any>; _createStreamingWithTools(options: any, perRequestServers?: Map<any, any>, toolExecutionFeedback?: boolean): AsyncGenerator<any, void, unknown>; _processToolCalls(response: any, originalOptions: any, perRequestServers?: Map<any, any>): Promise<any>; } export default MultiProviderOpenAI; export { MultiProviderOpenAI as OpenAI };