UNPKG

solver-sdk

Version:

SDK for WorkAI API - AI-powered code analysis with WorkCoins billing system

174 lines 6.65 kB
import { HttpClient } from '../utils/http-client.js'; import { Project, ProjectOptions, ProjectState, RecoveryInfo, ResumeOptions } from '../types/index.js'; import { FilePathMapping } from '../types/delta-chunking.js'; /** * API для работы с проектами */ export declare class ProjectsApi { private readonly httpClient; constructor(httpClient: HttpClient); /** * Получает все проекты пользователя * * @returns {Promise<Project[] | null>} Массив проектов или null при auth ошибках (401/403) * * @example * ```typescript * const projects = await sdk.projects.getAllProjects(); * if (!projects) { * // Auth error - токен истек * await authManager.refreshToken(); * return; * } * ``` */ getAllProjects(): Promise<Project[] | null>; /** * Альтернативное имя для getAllProjects() для совместимости * * @returns {Promise<Project[] | null>} Массив проектов или null при auth ошибках (401/403) */ getProjects(): Promise<Project[] | null>; /** * Находит или создает проект по имени * * @param {string} projectName Имя проекта * @returns {Promise<Project | null>} Проект или null при auth ошибках (401/403) * * @example * ```typescript * const project = await sdk.projects.findOrCreateProject('MyProject'); * if (!project) { * // Auth error - токен истек * return; * } * console.log(project.id); * ``` */ findOrCreateProject(projectName: string): Promise<Project | null>; /** * Получает проекты, готовые к использованию * * @returns {Promise<Project[] | null>} Массив проектов или null при auth ошибках (401/403) */ getReadyProjects(): Promise<Project[] | null>; /** * Получает проект по ID * * @param {string} projectId ID проекта * @returns {Promise<Project | null>} Проект или null при auth ошибках (401/403) */ getProject(projectId: string): Promise<Project | null>; /** * Создает новый проект * * @param {string} name Имя проекта * @param {any} data Дополнительные данные * @param {ProjectOptions} options Опции проекта * @returns {Promise<Project | null>} Созданный проект или null при auth ошибках (401/403) */ createProject(name: string, data?: any, options?: ProjectOptions): Promise<Project | null>; /** * Удаляет проект */ deleteProject(projectId: string): Promise<void>; /** * Получает статус проекта * * @param {string} projectId ID проекта * @returns {Promise<any | null>} Статус проекта или null при auth ошибках (401/403) */ getProjectStatus(projectId: string): Promise<any | null>; /** * Получает статус индексации проекта * * @param {string} projectId ID проекта * @returns {Promise<any | null>} Статус индексации или null при auth ошибках (401/403) */ getIndexingStatus(projectId: string): Promise<any | null>; /** * Отменяет индексацию проекта * * @param {string} projectId ID проекта * @returns {Promise<boolean | null>} true если отменено, false при ошибке, null при auth ошибке (401/403) */ cancelIndexing(projectId: string): Promise<boolean | null>; /** * Очищает ошибку индексации * * @param {string} projectId ID проекта * @returns {Promise<boolean | null>} true если очищено, false при ошибке, null при auth ошибке (401/403) */ clearIndexingError(projectId: string): Promise<boolean | null>; /** * Получение состояния проекта с проверкой синхронизации * * @param projectId - ID проекта * @param clientRootHash - Merkle root hash клиента для проверки необходимости синхронизации * @returns ProjectState с полем syncRequired (всегда присутствует в response) * @throws Error если backend не вернул обязательное поле syncRequired */ getProjectState(projectId: string, clientRootHash?: string): Promise<ProjectState>; /** * Получение статуса восстановления сессии */ getRecoveryStatus(projectId: string): Promise<{ hasInterruptedSession: boolean; recoveryInfo?: RecoveryInfo; }>; /** * Восстановление прерванной синхронизации */ resumeSync(projectId: string, options?: ResumeOptions): Promise<{ success: boolean; message?: string; continueFromBatch?: number; sessionId?: string; }>; /** * Отмена восстановления сессии */ cancelRecovery(projectId: string): Promise<{ success: boolean; message?: string; }>; /** * Инициализация Delta Sync */ initializeDeltaSync(projectId: string, clientRootHash: string): Promise<{ needsSync: boolean; sessionId?: string; lastSyncHash?: string; }>; /** * Сброс индексации проекта */ resetIndexing(projectId: string): Promise<{ success: boolean; message: string; clearedChunks?: number; clearedFiles?: number; }>; /** * Перезапуск индексации проекта */ restartIndexing(projectId: string): Promise<{ success: boolean; message: string; newSessionId?: string; }>; /** * Получение маппинга файловых путей */ getFilePathMapping(projectId: string): Promise<{ success: boolean; mapping: FilePathMapping[]; totalFiles: number; }>; /** * Валидация ID проекта * @private */ private validateProjectId; } //# sourceMappingURL=projects-api.d.ts.map