solver-sdk
Version:
SDK for WorkAI API - AI-powered code analysis with WorkCoins billing system
257 lines • 11.6 kB
TypeScript
import { ProjectsApi } from './api/projects-api.js';
import { SearchApi } from './api/search-api.js';
import { ChatApi } from './api/chat-api/index.js';
import { ToolsApi } from './api/tools-api.js';
import { UpdatesApi } from './api/updates-api.js';
import { UserApi } from './api/user-api.js';
import { AuthApi } from './api/auth-api.js';
import { CreditsApi } from './api/credits-api.js';
import { CodeSolverSDKOptions } from './interfaces/sdk-options.js';
import { ModelsApi } from './api/models-api.js';
import { DeltaChunkingManager } from './delta-chunking/delta-chunking-manager.js';
import { SyncOptions, SyncResult, SyncStatus, ActiveFile, FileCleanupResult } from './types/delta-chunking.js';
/**
* Основной класс SDK для работы с Code Solver API
* Версия 5.1+ - HTTP + WebSocket для real-time уведомлений
*/
export declare class CodeSolverSDK {
/** Опции SDK */
private readonly _options;
/** HTTP клиент для запросов к API */
private httpClient;
/** API для работы с проектами */
private readonly _projects;
/** API для поиска кода */
private readonly _search;
/** API для работы с чатом */
private readonly _chat;
/** API для работы с инструментами */
private readonly _tools;
/** API для работы с моделями */
private readonly _models;
/** API для работы с обновлениями */
private readonly _updates;
/** API для работы с профилем пользователя */
private readonly _user;
/** API для работы с авторизацией и токенами */
private readonly _auth;
/** API для работы с credits системой */
private readonly _credits;
private _deltaManager?;
private externalProjectSyncClient;
/** Среда выполнения */
private readonly environment;
/** Глобальный обработчик ошибок */
private static errorHandler;
/** Logger для внутреннего использования */
private readonly logger;
/**
* ✅ РЕКОМЕНДУЕМЫЙ СПОСОБ: Создает SDK
* @param {CodeSolverSDKOptions} options Опции SDK
* @returns {Promise<CodeSolverSDK>} Инициализированный SDK
*
* @remarks
* Health check НЕ выполняется автоматически.
* OAuth и первые API запросы сами проверят connectivity.
* Если нужна явная проверка - вызовите sdk.checkHealth() вручную.
*/
static create(options: CodeSolverSDKOptions): Promise<CodeSolverSDK>;
/**
* Создает новый экземпляр SDK
* @param {CodeSolverSDKOptions} options Опции SDK
*/
constructor(options: CodeSolverSDKOptions);
/**
* Получает версию SDK
* @returns {string} Версия SDK
*/
static getVersion(): string;
/**
* Обновляет опции SDK
* @param {Partial<CodeSolverSDKOptions>} newOptions Новые опции
*/
updateOptions(newOptions: Partial<CodeSolverSDKOptions>): void;
/**
* Проверяет здоровье API
* @returns {Promise<boolean>} Результат проверки
*/
checkHealth(): Promise<boolean>;
/**
* Диагностирует состояние API - правильная диагностика
* @returns {Promise<object>} Результат диагностики
*/
diagnoseAPI(): Promise<{
healthy: boolean;
endpoints: Record<string, boolean>;
errors: string[];
}>;
/**
* Получает API для работы с проектами
* @returns {ProjectsApi} API для работы с проектами
*/
get projects(): ProjectsApi;
/**
* Получает API для поиска кода
* @returns {SearchApi} API для поиска кода
*/
get search(): SearchApi;
/**
* Получает API для работы с чатом
* @returns {ChatApi} API для работы с чатом
*/
get chat(): ChatApi;
/**
* Получает API для работы с инструментами
* @returns {ToolsApi} API для работы с инструментами
*/
get tools(): ToolsApi;
/**
* Получает API для работы с моделями
* @returns {ModelsApi} API для работы с моделями
*/
get models(): ModelsApi;
/**
* Получает экземпляр API для работы с обновлениями
* @returns {UpdatesApi} API для работы с обновлениями
*/
get updates(): UpdatesApi;
/**
* Получает API для работы с профилем пользователя
* @returns {UserApi} API для работы с профилем пользователя
*/
get user(): UserApi;
/**
* Получает API для работы с credits системой
* @returns {CreditsApi} API для работы с credits
*/
get credits(): CreditsApi;
/**
* Получает API для работы с авторизацией и управлением токенами
* @returns {AuthApi} API для работы с авторизацией
*
* @example
* ```typescript
* // Revoke access token
* await sdk.auth.revokeToken(accessToken);
*
* // Logout (cookie-based)
* await sdk.auth.logout();
* ```
*/
get auth(): AuthApi;
/**
* Проверяет активность delta-chunking функциональности
* @returns {boolean} true если delta-chunking включен и инициализирован
*/
get isDeltaChunkingEnabled(): boolean;
/**
* 📤 Синхронизация готовых зашифрованных чанков (для Extension)
* @param {string} projectId ID проекта
* @param {any[]} encryptedChunks Готовые зашифрованные чанки
* @param {string} rootHash Root hash для синхронизации
* @param {SyncOptions} options Опции синхронизации
* @returns {Promise<SyncResult>} Результат синхронизации
*/
syncEncryptedChunks(projectId: string, encryptedChunks: any[], rootHash: string, options?: SyncOptions): Promise<SyncResult>;
/**
* 📊 Получение статуса синхронизации
* @param {string} projectId ID проекта
* @returns {Promise<SyncStatus>} Статус синхронизации
*/
getSyncStatus(projectId: string): Promise<SyncStatus>;
/**
* ❌ Отмена активной синхронизации
* @param {string} projectId ID проекта
* @returns {Promise<boolean>} true если синхронизация отменена
*/
cancelSync(projectId: string): Promise<boolean>;
/**
* 🧹 Очистка удаленных файлов из векторной базы (отдельный метод)
* @param {string} projectId ID проекта
* @param {ActiveFile[]} activeFiles Список активных файлов
* @param {string[]} deletedFiles ОПЦИОНАЛЬНО: Явно удаленные файлы (пути)
* @returns {Promise<FileCleanupResult>} Результат очистки
*/
cleanupDeletedFiles(projectId: string, activeFiles: ActiveFile[], deletedFiles?: string[]): Promise<FileCleanupResult>;
/**
* Обрабатывает ошибки SDK
* @param {Error} error Ошибка
*/
static handleError(error: Error): void;
/**
* Устанавливает глобальный обработчик ошибок
* @param {Function} handler Обработчик ошибок
*/
static setErrorHandler(handler: (error: Error) => void): void;
/**
* Освобождает ресурсы SDK
*/
dispose(): Promise<void>;
/**
* Устанавливает новый API ключ
* @param {string} apiKey Новый API ключ
*/
setApiKey(apiKey: string): void;
/**
* Получает информацию о SDK
* @returns {object} Информация о SDK
*/
getInfo(): {
version: string;
environment: string;
baseURL: string;
hasApiKey: boolean;
deltaChunkingEnabled: boolean;
};
/**
* 🔄 Получение менеджера Delta-Chunking для расширенного API
* @returns {DeltaChunkingManager | undefined} Менеджер delta-chunking или undefined если отключен
*/
get deltaManager(): DeltaChunkingManager | undefined;
/**
* 🔌 НОВОЕ: Установка внешнего ProjectSyncClient singleton
* Используется WebSocketConnectionCoordinator на клиенте для обеспечения
* singleton паттерна согласно Socket.IO best practices
*
* @param client External ProjectSyncClient proxy от координатора
*/
setProjectSyncClient(client: any): void;
/**
* 🔌 Получение WebSocket клиента для project-sync уведомлений
* @returns {any} WebSocket клиент (должен быть установлен через setProjectSyncClient)
* @throws {Error} Если external client не установлен
*/
get projectSync(): any;
/**
* 🔌 PROXY: Подключение к WebSocket через coordinator
* Делегирует вызов external coordinator для singleton управления
*
* @returns {Promise<void>} Promise который разрешается при успешном подключении
* @throws {Error} Если external client не установлен или метод недоступен
*/
connectWebSocket(): Promise<void>;
/**
* 🔌 PROXY: Отключение от WebSocket через coordinator
* @throws {Error} Если external client не установлен или метод недоступен
*/
disconnectWebSocket(): void;
/**
* 🔌 PROXY: Проверка статуса WebSocket подключения
* @returns {boolean} true если WebSocket подключен
*/
get isWebSocketConnected(): boolean;
/**
* 🔌 PROXY: Подписка на проект для получения real-time уведомлений
* @param projectId ID проекта для подписки
* @param userId Опциональный ID пользователя
* @throws {Error} Если external client не установлен или метод недоступен
*/
subscribeToProject(projectId: string, userId?: string): void;
/**
* 🔌 PROXY: Отписка от проекта
* @param projectId ID проекта для отписки
* @throws {Error} Если external client не установлен или метод недоступен
*/
unsubscribeFromProject(projectId: string): void;
}
//# sourceMappingURL=code-solver-sdk.d.ts.map