solver-sdk
Version:
SDK for WorkAI API - AI-powered code analysis with WorkCoins billing system
174 lines • 6.65 kB
TypeScript
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