UNPKG

solver-sdk

Version:

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

257 lines 11.6 kB
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