solver-sdk
Version:
SDK для интеграции с Code Solver Backend API
325 lines • 10.2 kB
TypeScript
/**
* Общие типы данных для 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