UNPKG

solver-sdk

Version:

SDK для интеграции с Code Solver Backend API

325 lines 10.2 kB
/** * Общие типы данных для SDK */ /** * Режим работы SDK */ export type SdkMode = 'browser' | 'node' | 'auto'; /** * Поддерживаемые языки программирования */ export type ProgrammingLanguage = 'javascript' | 'typescript' | 'python' | 'java' | 'c' | 'cpp' | 'csharp' | 'php' | 'ruby' | 'go' | 'rust' | 'swift' | 'kotlin' | 'scala' | 'html' | 'css' | 'json' | 'yaml' | 'markdown' | 'shell' | 'sql' | 'plaintext' | 'unknown'; /** * Уровень логирования */ export declare enum LogLevel { DEBUG = "debug", INFO = "info", WARN = "warn", ERROR = "error" } /** * Сообщение лога */ export interface LogMessage { /** Уровень логирования */ level: LogLevel; /** Сообщение */ message: string; /** Метка времени */ timestamp: string; /** Дополнительные данные */ data?: any; } /** * Результат операции */ export interface OperationResult<T = any> { /** Успешность операции */ success: boolean; /** Данные результата (если успех) */ data?: T; /** Сообщение об ошибке (если неудача) */ error?: string; /** Код ошибки (если неудача) */ errorCode?: string; /** Детали ошибки (если неудача) */ errorDetails?: any; } /** * Настройки модели ИИ */ export interface ModelSettings { /** Название модели */ model: string; /** Температура генерации */ temperature?: number; /** Максимальная длина ответа */ maxTokens?: number; /** Штрафы за повторения */ repetitionPenalty?: number; /** Дополнительные параметры */ extraParams?: Record<string, any>; } /** * Базовый интерфейс для пагинации */ export interface PaginationParams { /** Лимит результатов */ limit?: number; /** Смещение для пагинации */ offset?: number; } /** * Результаты с пагинацией */ export interface PaginatedResults<T> { /** Результаты */ items: T[]; /** Общее количество результатов */ total: number; /** Лимит результатов */ limit: number; /** Смещение для пагинации */ offset: number; /** Количество страниц */ pageCount: number; /** Текущая страница */ currentPage: number; } /** * Направление сортировки */ export type SortDirection = 'asc' | 'desc'; /** * Параметры сортировки */ export interface SortParams { /** Поле для сортировки */ field: string; /** Направление сортировки */ direction: SortDirection; } /** * Параметры фильтрации */ export interface FilterParams { /** Фильтры */ [key: string]: any; } /** * Статус задачи */ export type TaskStatus = 'pending' | 'running' | 'completed' | 'failed' | 'cancelled'; /** * Базовая задача */ export interface Task { /** Идентификатор задачи */ id: string; /** Тип задачи */ type: string; /** Статус задачи */ status: TaskStatus; /** Прогресс выполнения (0-100) */ progress: number; /** Сообщение о прогрессе */ message?: string; /** Результат выполнения */ result?: any; /** Сообщение об ошибке */ error?: string; /** Дата создания */ createdAt: string; /** Дата обновления */ updatedAt: string; /** Дата завершения */ completedAt?: string; } /** * Тип зависимости */ export declare enum DependencyType { /** Импорт */ IMPORT = "import", /** Наследование */ EXTENDS = "extends", /** Реализация интерфейса */ IMPLEMENTS = "implements", /** Внешняя библиотека */ EXTERNAL = "external", /** Стиль (CSS) */ STYLE = "style", /** Ресурс (изображение, шрифт и т.д.) */ RESOURCE = "resource", /** Другое */ OTHER = "other" } /** * Уровень серьезности циклической зависимости */ export declare enum CycleSeverity { /** Низкий - можно игнорировать */ LOW = "low", /** Средний - стоит обратить внимание */ MEDIUM = "medium", /** Высокий - требует исправления */ HIGH = "high", /** Критический - срочно требует исправления */ CRITICAL = "critical" } /** * Узел в графе зависимостей */ export interface DependencyNode { /** Путь к файлу */ path: string; /** Тип файла */ type: string; /** Структура файла */ structure?: { /** Экспортируемые сущности */ exports: string[]; /** Импортируемые сущности */ imports: string[]; /** Классы */ classes: string[]; /** Функции */ functions: string[]; /** Интерфейсы */ interfaces: string[]; }; } /** * Зависимость между файлами */ export interface Dependency { /** ID источника зависимости */ sourceId: string; /** ID целевого файла */ targetId: string; /** Тип зависимости */ type: DependencyType; /** Вес зависимости (0-1) */ weight: number; } /** * Циклическая зависимость */ export interface DependencyCycle { /** Путь цикла (список файлов) */ path: string[]; /** Степень серьезности */ severity: CycleSeverity; } /** * Результат анализа графа зависимостей */ export interface DependencyGraphAnalysis { /** Циклические зависимости */ cycles: DependencyCycle[]; /** Статистика графа */ statistics: { /** Общее количество узлов */ totalNodes: number; /** Общее количество зависимостей */ totalDependencies: number; /** Максимальная глубина графа */ maxDepth: number; /** Количество внешних зависимостей */ externalDependencies: number; }; } /** * Параметры запроса зависимостей файла */ export interface FileDependenciesRequest { /** Путь к файлу */ filePath: string; } /** * Результат запроса зависимостей файла */ export interface FileDependenciesResponse { /** Файлы, импортируемые в целевой файл */ imports: string[]; /** Файлы, импортирующие целевой файл */ importedBy: string[]; /** Экспорты целевого файла */ exports: string[]; /** Экспорты из импортируемых файлов */ exportedBy: string[]; } /** * Статистика зависимостей проекта */ export interface DependencyStatistics { /** Общее количество зависимостей */ totalDependencies: number; /** Количество уникальных файлов */ uniqueFiles: number; /** Количество импортов */ importCount: number; /** Количество экспортов */ exportCount: number; /** Количество циклических зависимостей */ cyclicDependenciesCount: number; } /** * Информация о файле */ export interface FileDetails { /** Идентификатор файла */ id: string; /** Путь к файлу */ path: string; /** Язык программирования */ language: string; /** Размер файла в байтах */ size: number; /** Время последнего изменения (timestamp) */ lastModified: number; } /** * Параметры запроса связанных компонентов */ export interface RelatedComponentsRequest { /** Путь к исходному файлу */ filePath: string; /** Максимальная глубина поиска */ maxDepth?: number; /** Включать входящие зависимости */ includeIncoming?: boolean; /** Включать исходящие зависимости */ includeOutgoing?: boolean; /** Максимальное количество узлов */ maxNodes?: number; } /** * Результат запроса связанных компонентов */ export interface RelatedComponentsResponse { /** Исходный узел */ source: DependencyNode; /** Связанные узлы с весами */ nodes: { /** Узел зависимости */ node: DependencyNode; /** Вес связи */ weight: number; /** Расстояние от исходного узла */ distance: number; /** Тип связи (incoming/outgoing) */ relationType: 'incoming' | 'outgoing' | 'both'; }[]; } /** * Граф зависимостей проекта */ export interface DependencyGraph { /** Узлы графа */ nodes: DependencyNode[]; /** Связи между узлами */ edges: Dependency[]; } //# sourceMappingURL=types.d.ts.map