solver-sdk
Version:
SDK для интеграции с Code Solver Backend API
151 lines • 7.93 kB
TypeScript
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