/** * Совместимость с разными MCP клиентами * Адаптирует схемы инструментов под возможности различных клиентов */ import { Tool } from '@modelcontextprotocol/sdk/types.js'; import { z } from 'zod'; import { Endpoint } from './tools/index.js'; export interface ClientCapabilities { topLevelUnions: boolean; validJson: boolean; refs: boolean; unions: boolean; formats: boolean; toolNameLength: number | undefined; } export declare const defaultClientCapabilities: ClientCapabilities; export declare const ClientType: z.ZodEnum<["openai-agents", "claude", "claude-code", "cursor", "infer"]>; export type ClientType = z.infer; export declare const knownClients: Record, ClientCapabilities>; /** * Парсит встроенные JSON строки в объекты */ export declare function parseEmbeddedJSON(args: Record, schema: Record): Record; export type JSONSchema = { type?: string; properties?: Record; required?: string[]; anyOf?: JSONSchema[]; $ref?: string; $defs?: Record; [key: string]: any; }; /** * Обрезает имена инструментов до указанной длины, обеспечивая уникальность */ export declare function truncateToolNames(names: string[], maxLength: number): Map; /** * Удаляет union типы верхнего уровня, разделяя инструмент на несколько вариантов */ export declare function removeTopLevelUnions(tool: Tool): Tool[]; /** * Инлайнит все $ref ссылки в схеме, устраняя $defs */ export declare function inlineRefs(schema: JSONSchema): JSONSchema; /** * Удаляет anyOf поля из схемы, используя только первый вариант */ export declare function removeAnyOf(schema: JSONSchema): JSONSchema; /** * Удаляет format поля из схемы и добавляет их в описание */ export declare function removeFormats(schema: JSONSchema, formatsCapability: boolean): JSONSchema; /** * Применяет все трансформации совместимости к endpoints на основе возможностей клиента */ export declare function applyCompatibilityTransformations(endpoints: Endpoint[], capabilities: ClientCapabilities): Endpoint[]; //# sourceMappingURL=compat.d.ts.map