UNPKG

solver-sdk

Version:

SDK для интеграции с Code Solver Backend API (совместимо с браузером и Node.js), с поддержкой функциональности мышления (Thinking Mode)

150 lines 6.76 kB
import { HttpClient } from '../utils/http-client.js'; import { Project, IndexingResponse, FileIndexResponse, ProjectOptions, ProjectUpdateData } from '../types/index.js'; /** * Константы для API путей */ export declare enum ApiEndpoints { PROJECTS = "/api/v1/projects", PROJECT = "/api/v1/projects/:id", PROJECT_INDEXING_STATUS = "/api/v1/projects/:id/indexing_status", PROJECT_CANCEL_INDEXING = "/api/v1/projects/:id/cancel_indexing", PROJECT_CLEAR_ERROR = "/api/v1/projects/:id/clear_error" } /** * API для работы с проектами */ export declare class ProjectsApi { /** HTTP клиент */ private readonly httpClient; /** WebSocket клиент */ private wsClient; /** Родительский SDK */ private parentSdk; /** * Создает новый экземпляр API для работы с проектами * @param {HttpClient} httpClient HTTP клиент */ constructor(httpClient: HttpClient); /** * Проверяет валидность идентификатора проекта * @param {string} projectId ID проекта * @throws {Error} Если ID проекта не валиден */ private validateProjectId; /** * Получает список всех проектов * @returns {Promise<Project[]>} Список проектов */ getAllProjects(): Promise<Project[]>; /** * Получает проект по ID * @param {string} projectId ID проекта * @returns {Promise<Project>} Проект */ getProject(projectId: string): Promise<Project>; /** * Создает новый проект * @param {string} name Название проекта * @param {string} path Путь к проекту * @param {ProjectOptions} [options] Дополнительные опции проекта * @returns {Promise<Project>} Созданный проект */ createProject(name: string, path: string, options?: ProjectOptions): Promise<Project>; /** * Обновляет проект * @param {string} projectId ID проекта * @param {Partial<ProjectUpdateData>} data Данные для обновления * @returns {Promise<Project>} Обновленный проект */ updateProject(projectId: string, data: Partial<ProjectUpdateData>): Promise<Project>; /** * Удаляет проект * @param {string} projectId ID проекта * @returns {Promise<void>} */ deleteProject(projectId: string): Promise<void>; /** * Запускает индексацию проекта * @param {string} projectId ID проекта * @returns {Promise<IndexingResponse>} Информация о начатой индексации */ indexProject(projectId: string): Promise<IndexingResponse>; /** * Получает статус индексации проекта * @param {string} projectId Идентификатор проекта * @returns {Promise<any>} Статус индексации проекта */ getIndexingStatus(projectId: string): Promise<any>; /** * Отменяет индексацию проекта * @param {string} projectId Идентификатор проекта * @returns {Promise<boolean>} Результат отмены индексации */ cancelIndexing(projectId: string): Promise<boolean>; /** * Очищает ошибку индексации проекта * @param {string} projectId Идентификатор проекта * @returns {Promise<boolean>} Результат очистки ошибки */ clearIndexingError(projectId: string): Promise<boolean>; /** * Обновляет индекс конкретного файла в проекте * @param {string} projectId ID проекта * @param {string} filePath Путь к файлу (относительно корня проекта) * @param {Object} options Опции обновления индекса * @param {string} [options.content] Содержимое файла (если не указано, будет прочитано с диска) * @param {boolean} [options.force=false] Принудительная переиндексация, даже если файл не изменился * @returns {Promise<FileIndexResponse>} Информация об обновленном индексе файла */ updateFileIndex(projectId: string, filePath: string, options?: { content?: string; force?: boolean; }): Promise<FileIndexResponse>; /** * Подключается к WebSocket для событий индексации * @returns {Promise<boolean>} Результат подключения */ connectWebSocket(): Promise<boolean>; /** * Отключается от WebSocket для событий индексации * @returns {Promise<void>} */ disconnectWebSocket(): Promise<void>; /** * Проверяет, подключен ли WebSocket * @returns {boolean} Состояние подключения */ isWebSocketConnected(): boolean; /** * Устанавливает родительский SDK * @param sdk Родительский SDK */ setParent(sdk: any): void; /** * Подписывается на событие через WebSocket * @param event Название события * @param callback Функция обратного вызова */ on(event: string, callback: Function): void; /** * Отправляет событие через WebSocket * @param event Название события * @param data Данные для отправки */ emitSocketEvent(event: string, data: any): void; /** * Отправляет событие через WebSocket с ожиданием ответа * @param event Имя события * @param data Данные для отправки * @param timeout Таймаут ожидания ответа * @returns {Promise<any>} Ответ от сервера */ sendSocketEventWithResponse(event: string, data: any, timeout?: number): Promise<any>; /** * Остановить индексацию проекта через WebSocket * @param projectId ID проекта * @returns {Promise<boolean>} Результат операции */ stopIndexing(projectId: string): Promise<boolean>; } //# sourceMappingURL=projects-api.d.ts.map