UNPKG

solver-sdk

Version:

SDK для интеграции с Code Solver Backend API

151 lines 7.93 kB
import { WebSocketNamespace } from '../constants/websocket-namespaces.constants.js'; import { CodeSolverWebSocketOptions } from '../interfaces/websocket/client-options.interfaces.js'; export { WebSocketNamespace } from '../constants/websocket-namespaces.constants.js'; export { AnthropicStreamCallbacks } from '../interfaces/websocket/callbacks.interfaces.js'; /** * WebSocket клиент для работы с Code Solver API (фасад) */ export declare class CodeSolverWebSocketClient { /** Базовый URL API */ private readonly baseURL; /** Опции клиента */ private readonly options; /** Логгер */ private readonly logger; /** Специализированные клиенты для разных пространств имен */ private readonly reasoningClient; private readonly indexingClient; private readonly dependenciesClient; private readonly notificationsClient; /** Сервис диагностики */ private readonly diagnosticsService; /** * Создает новый WebSocket клиент для Code Solver API * @param {string} baseURL Базовый URL API * @param {CodeSolverWebSocketOptions} [options] Опции клиента */ constructor(baseURL: string, options?: CodeSolverWebSocketOptions); /** * Подключается к пространству имен рассуждений * @param {string} reasoningId ID рассуждения (опционально) * @param {object} options Дополнительные настройки подключения * @returns {Promise<boolean>} Результат подключения */ connectToReasoning(reasoningId?: string, options?: { autoJoin?: boolean; createIfNotExists?: boolean; checkExistence?: boolean; }): Promise<boolean>; /** * Подключается к пространству имен индексации * @param {string} projectId ID проекта (опционально) * @returns {Promise<boolean>} Результат подключения */ connectToIndexing(projectId?: string): Promise<boolean>; /** * Подключается к уведомлениям * @returns {Promise<boolean>} Результат подключения */ connectToNotifications(): Promise<boolean>; /** * Подключается к пространству имен dependencies * @param {string} projectId ID проекта (опционально) * @returns {Promise<boolean>} Результат подключения */ connectToDependencies(projectId?: string): Promise<boolean>; /** * Отключается от пространства имен * @param {WebSocketNamespace} namespace Пространство имен */ disconnect(namespace: WebSocketNamespace): void; /** * Отключается от всех пространств имен */ disconnectAll(): void; /** * Проверяет, подключен ли клиент к указанному пространству имен * @param {WebSocketNamespace} namespace Пространство имен * @returns {boolean} Статус подключения */ isConnected(namespace: WebSocketNamespace): boolean; /** * Проверяет, подключен ли клиент к пространству имен рассуждений * @returns {boolean} Статус подключения */ isConnectedToReasoning(): boolean; /** * Проверяет, подключен ли клиент к пространству имен индексации * @returns {boolean} Статус подключения */ isConnectedToIndexing(): boolean; /** * Проверяет, подключен ли клиент к пространству имен уведомлений * @returns {boolean} Статус подключения */ isConnectedToNotifications(): boolean; /** * Получает ID активной сессии рассуждения * @returns {string | null} ID активной сессии рассуждения или null */ getActiveReasoningId(): string | null; /** * Получает ID активного проекта * @returns {string | null} ID активного проекта или null */ getActiveProjectId(): string | null; /** * Отправляет сообщение в пространство имен * @param {WebSocketNamespace} namespace Пространство имен * @param {string} eventType Тип события * @param {any} [data] Данные сообщения * @returns {boolean} Успешно ли отправлено сообщение */ send(namespace: WebSocketNamespace, eventType: string, data?: any): boolean; /** * Отправляет сообщение в активную сессию рассуждения * @param {string} eventType Тип события * @param {any} [data] Данные сообщения * @returns {boolean} Успешно ли отправлено сообщение */ sendToReasoning(eventType: string, data?: any): boolean; /** * Отправляет сообщение в активную сессию индексации * @param {string} eventType Тип события * @param {any} [data] Данные сообщения * @returns {boolean} Успешно ли отправлено сообщение */ sendToIndexing(eventType: string, data?: any): boolean; /** * Отправляет сообщение в уведомления * @param {string} eventType Тип события * @param {any} [data] Данные сообщения * @returns {boolean} Успешно ли отправлено сообщение */ sendToNotifications(eventType: string, data?: any): boolean; /** * Добавляет обработчик события для пространства имен * @param {string} eventType Тип события * @param {Function} handler Обработчик события * @param {WebSocketNamespace} [namespace] Пространство имен (если не указано, добавляется ко всем активным) */ on(eventType: string, handler: (data: any) => void, namespace?: WebSocketNamespace): void; /** * Удаляет обработчик события для пространства имен * @param {string} eventType Тип события * @param {Function} [handler] Обработчик события (если не указан, удаляются все обработчики) * @param {WebSocketNamespace} [namespace] Пространство имен (если не указано, удаляется из всех активных) */ off(eventType: string, handler?: (data: any) => void, namespace?: WebSocketNamespace): void; /** * Получает ID сокета для указанного пространства имен * @param {WebSocketNamespace} [namespace=WebSocketNamespace.REASONING] Пространство имен * @returns {string|null} ID сокета или null, если соединение не установлено */ getSocketId(namespace?: WebSocketNamespace): string | null; /** * Получает диагностическую информацию о соединениях * @returns {object} Диагностическая информация */ getDiagnostics(): Record<string, any>; } //# sourceMappingURL=code-solver-websocket-client.d.ts.map