/** * Function Adapter for MCP * * Converts between different provider function calling formats */ import { FunctionDefinition, FunctionCall } from '../types'; /** * OpenAI function format */ export interface OpenAIFunction { name: string; description: string; parameters: { type: 'object'; properties: Record; required?: string[]; }; } export interface OpenAIFunctionCall { name: string; arguments: string; } /** * Anthropic function format */ export interface AnthropicTool { name: string; description: string; input_schema: { type: 'object'; properties: Record; required?: string[]; }; } export interface AnthropicToolUse { type: 'tool_use'; id: string; name: string; input: Record; } /** * Google function format */ export interface GoogleFunction { name: string; description: string; parameters: { type: 'object'; properties: Record; required?: string[]; }; } /** * Provider types */ export type ProviderType = 'openai' | 'anthropic' | 'google' | 'generic'; /** * Function adapter configuration */ export interface FunctionAdapterConfig { strictValidation: boolean; preserveMetadata: boolean; sanitizeArguments: boolean; maxArgumentSize: number; } /** * Function Adapter */ export declare class FunctionAdapter { private config; constructor(config?: FunctionAdapterConfig); /** * Convert MCP function definition to provider format */ toProviderFormat(definition: FunctionDefinition, providerType: ProviderType): any; /** * Convert provider function call to MCP format */ fromProviderCall(providerCall: any, providerType: ProviderType): FunctionCall; /** * Convert provider format to MCP function definition */ fromProviderFormat(providerFunction: any, providerType: ProviderType): FunctionDefinition; /** * Batch convert function definitions */ batchToProviderFormat(definitions: FunctionDefinition[], providerType: ProviderType): any[]; /** * Convert to OpenAI format */ private toOpenAIFormat; /** * Convert from OpenAI format */ private fromOpenAIFormat; /** * Convert from OpenAI function call */ private fromOpenAICall; /** * Convert to Anthropic format */ private toAnthropicFormat; /** * Convert from Anthropic format */ private fromAnthropicFormat; /** * Convert from Anthropic tool use */ private fromAnthropicCall; /** * Convert to Google format */ private toGoogleFormat; /** * Convert from Google format */ private fromGoogleFormat; /** * Convert from Google function call */ private fromGoogleCall; /** * Convert parameter definitions between formats */ private convertParameters; /** * Convert single parameter definition */ private convertSingleParameter; /** * Validate OpenAI function */ private validateOpenAIFunction; /** * Validate parameters structure */ private validateParametersStructure; /** * Sanitize function arguments */ private sanitizeArguments; /** * Sanitize individual value */ private sanitizeValue; /** * Get supported provider types */ getSupportedProviders(): ProviderType[]; /** * Check if provider supports feature */ supportsFeature(providerType: ProviderType, feature: string): boolean; /** * Get provider constraints */ getProviderConstraints(providerType: ProviderType): { maxFunctionNameLength: number; maxDescriptionLength: number; maxParameters: number; maxNestingDepth: number; supportedTypes: string[]; }; } export default FunctionAdapter; //# sourceMappingURL=function-adapter.d.ts.map