@unified-llm/core
Version:
Unified LLM interface (in-memory).
44 lines • 1.74 kB
TypeScript
import OpenAI from 'openai';
import { UnifiedChatRequest, UnifiedChatResponse, UnifiedStreamEventResponse, Tool as UnifiedTool } from '../../types/unified-api.js';
import { MCPServerConfig } from '../../types/mcp.js';
import BaseProvider from '../base-provider.js';
type OpenAIAPI = 'responses' | 'chat_completions';
export declare class OpenAIAgentProvider extends BaseProvider {
private mcpServerConfigs?;
private providerTools;
private openaiClient?;
private openaiApi;
constructor({ apiKey, client, model, tools, mcpServers, openaiApi, logLevel, }: {
apiKey?: string;
client?: OpenAI;
model?: string;
tools?: UnifiedTool[];
mcpServers?: MCPServerConfig[];
openaiApi?: OpenAIAPI;
logLevel?: string;
});
chat(request: UnifiedChatRequest): Promise<UnifiedChatResponse>;
/**
* Streaming: emits chunk responses as they arrive, then a final, fully-unified message.
*/
stream(request: UnifiedChatRequest): AsyncIterableIterator<UnifiedStreamEventResponse>;
private buildEphemeralAgent;
private initMCPServers;
private closeMCPServers;
private toAgentInputs;
private collectSystemText;
private adaptFunctionTools;
private extractTextFromContent;
private convertAgentResultToUnified;
/**
* Extracts top-level `text`, `message.content` (formatted as BaseContent),
* `model`, and `usage` from either RunResult or StreamedRunResult.
* - Uses `state.generatedItems` for content extraction
* - Uses `state.context.usage` for usage stats
*/
private extractUnifiedPayload;
private handleError;
private mapErrorType;
}
export {};
//# sourceMappingURL=agent-provider.d.ts.map