solver-sdk 1.8.1 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/dist/cjs/api/projects-api.js +4 -6
  2. package/dist/cjs/api/projects-api.js.map +1 -1
  3. package/dist/cjs/code-solver-sdk.js +13 -10
  4. package/dist/cjs/code-solver-sdk.js.map +1 -1
  5. package/dist/cjs/constants/websocket-events.constants.js +14 -1
  6. package/dist/cjs/constants/websocket-events.constants.js.map +1 -1
  7. package/dist/cjs/constants/websocket-namespaces.constants.js +18 -0
  8. package/dist/cjs/constants/websocket-namespaces.constants.js.map +1 -0
  9. package/dist/cjs/interfaces/websocket/callbacks.interfaces.js +3 -0
  10. package/dist/cjs/interfaces/websocket/callbacks.interfaces.js.map +1 -0
  11. package/dist/cjs/interfaces/websocket/client-options.interfaces.js +3 -0
  12. package/dist/cjs/interfaces/websocket/client-options.interfaces.js.map +1 -0
  13. package/dist/cjs/interfaces/websocket/events.interfaces.js +3 -0
  14. package/dist/cjs/interfaces/websocket/events.interfaces.js.map +1 -0
  15. package/dist/cjs/interfaces/websocket/stats.interfaces.js +3 -0
  16. package/dist/cjs/interfaces/websocket/stats.interfaces.js.map +1 -0
  17. package/dist/cjs/utils/code-solver-websocket-client.js +382 -1503
  18. package/dist/cjs/utils/code-solver-websocket-client.js.map +1 -1
  19. package/dist/cjs/utils/connection-state-manager.js +133 -0
  20. package/dist/cjs/utils/connection-state-manager.js.map +1 -0
  21. package/dist/cjs/utils/logger.js +106 -0
  22. package/dist/cjs/utils/logger.js.map +1 -0
  23. package/dist/cjs/utils/ping-pong-manager.js +306 -0
  24. package/dist/cjs/utils/ping-pong-manager.js.map +1 -0
  25. package/dist/cjs/utils/session-manager.js +114 -0
  26. package/dist/cjs/utils/session-manager.js.map +1 -0
  27. package/dist/cjs/ws/base-ws-client.js +286 -0
  28. package/dist/cjs/ws/base-ws-client.js.map +1 -0
  29. package/dist/cjs/ws/dependencies-ws-client.js +11 -0
  30. package/dist/cjs/ws/dependencies-ws-client.js.map +1 -0
  31. package/dist/cjs/ws/diagnostics-service.js +170 -0
  32. package/dist/cjs/ws/diagnostics-service.js.map +1 -0
  33. package/dist/cjs/ws/indexing-ws-client.js +223 -0
  34. package/dist/cjs/ws/indexing-ws-client.js.map +1 -0
  35. package/dist/cjs/ws/notifications-ws-client.js +12 -0
  36. package/dist/cjs/ws/notifications-ws-client.js.map +1 -0
  37. package/dist/cjs/ws/reasoning-ws-client.js +330 -0
  38. package/dist/cjs/ws/reasoning-ws-client.js.map +1 -0
  39. package/dist/esm/api/projects-api.js +4 -6
  40. package/dist/esm/api/projects-api.js.map +1 -1
  41. package/dist/esm/code-solver-sdk.js +6 -3
  42. package/dist/esm/code-solver-sdk.js.map +1 -1
  43. package/dist/esm/constants/websocket-events.constants.js +13 -0
  44. package/dist/esm/constants/websocket-events.constants.js.map +1 -1
  45. package/dist/esm/constants/websocket-namespaces.constants.js +15 -0
  46. package/dist/esm/constants/websocket-namespaces.constants.js.map +1 -0
  47. package/dist/esm/interfaces/websocket/callbacks.interfaces.js +2 -0
  48. package/dist/esm/interfaces/websocket/callbacks.interfaces.js.map +1 -0
  49. package/dist/esm/interfaces/websocket/client-options.interfaces.js +2 -0
  50. package/dist/esm/interfaces/websocket/client-options.interfaces.js.map +1 -0
  51. package/dist/esm/interfaces/websocket/events.interfaces.js +2 -0
  52. package/dist/esm/interfaces/websocket/events.interfaces.js.map +1 -0
  53. package/dist/esm/interfaces/websocket/stats.interfaces.js +2 -0
  54. package/dist/esm/interfaces/websocket/stats.interfaces.js.map +1 -0
  55. package/dist/esm/utils/code-solver-websocket-client.js +381 -1503
  56. package/dist/esm/utils/code-solver-websocket-client.js.map +1 -1
  57. package/dist/esm/utils/connection-state-manager.js +129 -0
  58. package/dist/esm/utils/connection-state-manager.js.map +1 -0
  59. package/dist/esm/utils/logger.js +101 -0
  60. package/dist/esm/utils/logger.js.map +1 -0
  61. package/dist/esm/utils/ping-pong-manager.js +302 -0
  62. package/dist/esm/utils/ping-pong-manager.js.map +1 -0
  63. package/dist/esm/utils/session-manager.js +109 -0
  64. package/dist/esm/utils/session-manager.js.map +1 -0
  65. package/dist/esm/ws/base-ws-client.js +282 -0
  66. package/dist/esm/ws/base-ws-client.js.map +1 -0
  67. package/dist/esm/ws/dependencies-ws-client.js +7 -0
  68. package/dist/esm/ws/dependencies-ws-client.js.map +1 -0
  69. package/dist/esm/ws/diagnostics-service.js +166 -0
  70. package/dist/esm/ws/diagnostics-service.js.map +1 -0
  71. package/dist/esm/ws/indexing-ws-client.js +219 -0
  72. package/dist/esm/ws/indexing-ws-client.js.map +1 -0
  73. package/dist/esm/ws/notifications-ws-client.js +8 -0
  74. package/dist/esm/ws/notifications-ws-client.js.map +1 -0
  75. package/dist/esm/ws/reasoning-ws-client.js +326 -0
  76. package/dist/esm/ws/reasoning-ws-client.js.map +1 -0
  77. package/dist/types/api/projects-api.d.ts.map +1 -1
  78. package/dist/types/code-solver-sdk.d.ts +2 -1
  79. package/dist/types/code-solver-sdk.d.ts.map +1 -1
  80. package/dist/types/constants/websocket-events.constants.d.ts +12 -0
  81. package/dist/types/constants/websocket-events.constants.d.ts.map +1 -1
  82. package/dist/types/constants/websocket-namespaces.constants.d.ts +14 -0
  83. package/dist/types/constants/websocket-namespaces.constants.d.ts.map +1 -0
  84. package/dist/types/interfaces/websocket/callbacks.interfaces.d.ts +30 -0
  85. package/dist/types/interfaces/websocket/callbacks.interfaces.d.ts.map +1 -0
  86. package/dist/types/interfaces/websocket/client-options.interfaces.d.ts +51 -0
  87. package/dist/types/interfaces/websocket/client-options.interfaces.d.ts.map +1 -0
  88. package/dist/types/interfaces/websocket/events.interfaces.d.ts +165 -0
  89. package/dist/types/interfaces/websocket/events.interfaces.d.ts.map +1 -0
  90. package/dist/types/interfaces/websocket/stats.interfaces.d.ts +72 -0
  91. package/dist/types/interfaces/websocket/stats.interfaces.d.ts.map +1 -0
  92. package/dist/types/utils/code-solver-websocket-client.d.ts +70 -616
  93. package/dist/types/utils/code-solver-websocket-client.d.ts.map +1 -1
  94. package/dist/types/utils/connection-state-manager.d.ts +94 -0
  95. package/dist/types/utils/connection-state-manager.d.ts.map +1 -0
  96. package/dist/types/utils/logger.d.ts +62 -0
  97. package/dist/types/utils/logger.d.ts.map +1 -0
  98. package/dist/types/utils/ping-pong-manager.d.ts +118 -0
  99. package/dist/types/utils/ping-pong-manager.d.ts.map +1 -0
  100. package/dist/types/utils/session-manager.d.ts +98 -0
  101. package/dist/types/utils/session-manager.d.ts.map +1 -0
  102. package/dist/types/ws/base-ws-client.d.ts +119 -0
  103. package/dist/types/ws/base-ws-client.d.ts.map +1 -0
  104. package/dist/types/ws/dependencies-ws-client.d.ts +6 -0
  105. package/dist/types/ws/dependencies-ws-client.d.ts.map +1 -0
  106. package/dist/types/ws/diagnostics-service.d.ts +93 -0
  107. package/dist/types/ws/diagnostics-service.d.ts.map +1 -0
  108. package/dist/types/ws/indexing-ws-client.d.ts +78 -0
  109. package/dist/types/ws/indexing-ws-client.d.ts.map +1 -0
  110. package/dist/types/ws/notifications-ws-client.d.ts +5 -0
  111. package/dist/types/ws/notifications-ws-client.d.ts.map +1 -0
  112. package/dist/types/ws/reasoning-ws-client.d.ts +87 -0
  113. package/dist/types/ws/reasoning-ws-client.d.ts.map +1 -0
  114. package/docs/AUTHENTICATION.md +31 -127
  115. package/docs/WEBSOCKET.md +51 -211
  116. package/package.json +1 -1
@@ -1,364 +1,24 @@
1
- import { WebSocketClientOptions } from './websocket-client.js';
1
+ import { WebSocketNamespace } from '../constants/websocket-namespaces.constants.js';
2
+ import { CodeSolverWebSocketOptions } from '../interfaces/websocket/client-options.interfaces.js';
3
+ export { WebSocketNamespace } from '../constants/websocket-namespaces.constants.js';
4
+ export { AnthropicStreamCallbacks } from '../interfaces/websocket/callbacks.interfaces.js';
2
5
  /**
3
- * Пространства имен для WebSocket
4
- */
5
- export declare enum WebSocketNamespace {
6
- /** Основное пространство имен */
7
- DEFAULT = "/",
8
- /** Пространство для рассуждений */
9
- REASONING = "/reasoning",
10
- /** Пространство для индексации */
11
- INDEXING = "/indexing",
12
- /** Пространство для зависимостей */
13
- DEPENDENCIES = "/dependencies"
14
- }
15
- /**
16
- * Опции для Code Solver WebSocket клиента
17
- */
18
- export interface CodeSolverWebSocketOptions extends WebSocketClientOptions {
19
- /** API ключ для авторизации */
20
- apiKey?: string;
21
- /**
22
- * Проверять SSL-сертификаты при подключении
23
- * Установите false для работы с самоподписанными сертификатами
24
- */
25
- rejectUnauthorized?: boolean;
26
- /**
27
- * Автоматически включать механизм ping/pong при подключении
28
- * По умолчанию: true
29
- */
30
- enableAutoPing?: boolean;
31
- /**
32
- * Интервал между ping-сообщениями в миллисекундах
33
- * По умолчанию: 15000 (15 сек)
34
- */
35
- pingInterval?: number;
36
- /**
37
- * Количество пропущенных pong-ответов до признания соединения потерянным
38
- * По умолчанию: 3
39
- */
40
- pingTimeoutThreshold?: number;
41
- /**
42
- * Стратегия задержки между попытками переподключения
43
- * 'linear' - линейное увеличение задержки
44
- * 'exponential' - экспоненциальное увеличение задержки (с jitter)
45
- * По умолчанию: 'exponential'
46
- */
47
- reconnectStrategy?: 'linear' | 'exponential';
48
- /**
49
- * Включение сохранения и восстановления сессии
50
- * По умолчанию: true
51
- */
52
- enableSessionPersistence?: boolean;
53
- /**
54
- * Базовая задержка для переподключения в миллисекундах
55
- * По умолчанию: 1000
56
- */
57
- retryDelay?: number;
58
- /**
59
- * Максимальная задержка для переподключения в миллисекундах
60
- * По умолчанию: 30000
61
- */
62
- maxRetryDelay?: number;
63
- }
64
- /**
65
- * События, связанные с рассуждениями от Anthropic API
66
- */
67
- export interface ReasoningEvents {
68
- /** Событие начала сообщения */
69
- message_start: {
70
- /** ID сообщения */
71
- id: string;
72
- /** Тип сообщения */
73
- type: string;
74
- /** Роль отправителя */
75
- role: string;
76
- /** Модель */
77
- model?: string;
78
- };
79
- /** Событие начала блока контента */
80
- content_block_start: {
81
- /** ID блока */
82
- id: string;
83
- /** Тип блока */
84
- type: string;
85
- /** Тип контента */
86
- content_type: string;
87
- /** Индекс блока */
88
- index: number;
89
- };
90
- /** Событие дельты блока контента */
91
- content_block_delta: {
92
- /** Индекс блока */
93
- index: number;
94
- /** Содержимое дельты */
95
- delta: {
96
- /** Тип дельты */
97
- type: string;
98
- /** Текстовое содержимое (для дельты text_delta) */
99
- text?: string;
100
- /** Содержимое мышления (для дельты thinking_delta) */
101
- thinking?: string;
102
- /** Содержимое частичного JSON (для дельты input_json_delta) */
103
- input_json?: string;
104
- /** Подпись для верификации (для дельты signature_delta) */
105
- signature?: string;
106
- };
107
- };
108
- /** Событие остановки блока контента */
109
- content_block_stop: {
110
- /** ID блока */
111
- id: string;
112
- /** Тип блока */
113
- type: string;
114
- /** Тип контента */
115
- content_type: string;
116
- /** Индекс блока */
117
- index: number;
118
- };
119
- /** Событие дельты сообщения */
120
- message_delta: {
121
- /** ID сообщения */
122
- id: string;
123
- /** Дельта сообщения */
124
- delta: any;
125
- };
126
- /** Событие окончания сообщения */
127
- message_stop: {
128
- /** ID сообщения */
129
- id: string;
130
- /** Тип сообщения */
131
- type: string;
132
- /** Роль отправителя */
133
- role: string;
134
- /** Модель */
135
- model?: string;
136
- };
137
- /** Событие ошибки */
138
- error: {
139
- /** Код ошибки */
140
- code: string;
141
- /** Сообщение об ошибке */
142
- message: string;
143
- /** Детали ошибки */
144
- details?: {
145
- /** HTTP статус */
146
- status?: number;
147
- /** Тип ошибки */
148
- type?: string;
149
- /** Причина ошибки */
150
- reason?: string;
151
- };
152
- };
153
- }
154
- /**
155
- * События, связанные с индексацией
156
- */
157
- export interface IndexingEvents {
158
- /** Событие индексации файла */
159
- file_indexed: {
160
- /** ID проекта */
161
- projectId: string;
162
- /** Информация о файле */
163
- file: {
164
- /** Путь к файлу */
165
- path: string;
166
- /** Язык программирования */
167
- language: string;
168
- /** Время индексации */
169
- indexedAt: number;
170
- /** Тип изменения */
171
- changeType: 'semantic' | 'structural' | 'formatting';
172
- };
173
- };
174
- /** Событие завершения индексации проекта */
175
- indexing_complete: {
176
- /** ID проекта */
177
- projectId: string;
178
- /** Время завершения */
179
- timestamp: number;
180
- /** Статистика индексации */
181
- stats: {
182
- /** Общее количество файлов */
183
- totalFiles: number;
184
- /** Количество проиндексированных файлов */
185
- indexed: number;
186
- /** Количество файлов с ошибками */
187
- failed: number;
188
- /** Время индексации в миллисекундах */
189
- time: number;
190
- };
191
- /** Версия индекса */
192
- indexVersion: string;
193
- };
194
- }
195
- /**
196
- * Общие события
197
- */
198
- export interface CommonEvents {
199
- /** Событие подключения */
200
- connect: {
201
- /** ID клиента */
202
- clientId: string;
203
- };
204
- /** Событие отключения */
205
- disconnect: {
206
- /** Причина отключения */
207
- reason: string;
208
- };
209
- }
210
- /**
211
- * События, связанные с зависимостями файлов
212
- */
213
- export interface DependenciesEvents {
214
- /** Событие обновления зависимостей */
215
- dependency_update: {
216
- /** ID проекта */
217
- projectId: string;
218
- /** Временная метка */
219
- timestamp: number;
220
- /** Затронутые файлы */
221
- affectedFiles: string[];
222
- };
223
- }
224
- /**
225
- * Типы WebSocket событий
226
- */
227
- export type WebSocketEvents = ReasoningEvents & IndexingEvents & CommonEvents & DependenciesEvents;
228
- /**
229
- * Обработчики для событий от Anthropic API
230
- */
231
- export interface AnthropicStreamCallbacks {
232
- /** Обработчик для события начала сообщения */
233
- onMessageStart?: (data: ReasoningEvents['message_start']) => void;
234
- /** Обработчик для события начала блока мышления (через content_block_start с типом thinking) */
235
- onThinkingStart?: (data: ReasoningEvents['content_block_start']) => void;
236
- /** Обработчик для события дельты блока мышления (через content_block_delta с типом thinking_delta) */
237
- onThinkingDelta?: (data: {
238
- index: number;
239
- delta: string;
240
- }) => void;
241
- /** Обработчик для события остановки блока мышления (через content_block_stop с типом thinking) */
242
- onThinkingStop?: (data: ReasoningEvents['content_block_stop']) => void;
243
- /** Обработчик для события начала блока контента */
244
- onContentStart?: (data: ReasoningEvents['content_block_start']) => void;
245
- /** Обработчик для события дельты блока контента */
246
- onContentDelta?: (data: ReasoningEvents['content_block_delta']) => void;
247
- /** Обработчик для события остановки блока контента */
248
- onContentStop?: (data: ReasoningEvents['content_block_stop']) => void;
249
- /** Обработчик для события окончания сообщения */
250
- onMessageStop?: (data: ReasoningEvents['message_stop']) => void;
251
- /** Обработчик для события ошибки */
252
- onError?: (data: ReasoningEvents['error']) => void;
253
- /** Обработчик для всех событий (для отладки) */
254
- onAny?: (eventName: string, data: any) => void;
255
- }
256
- /**
257
- * Интерфейс для статистики ping/pong сообщений
258
- */
259
- export interface PingPongStats {
260
- /** Намспейс, для которого собрана статистика */
261
- namespace: WebSocketNamespace;
262
- /** Socket ID */
263
- socketId: string | null;
264
- /** Количество отправленных ping-сообщений */
265
- pingSent: number;
266
- /** Количество полученных pong-ответов */
267
- pongReceived: number;
268
- /** Средняя задержка RTT (Round Trip Time) в миллисекундах */
269
- averageRtt: number;
270
- /** Минимальная задержка RTT в миллисекундах */
271
- minRtt: number;
272
- /** Максимальная задержка RTT в миллисекундах */
273
- maxRtt: number;
274
- /** Последняя задержка RTT в миллисекундах */
275
- lastRtt: number;
276
- /** Время последнего полученного pong-ответа */
277
- lastPongTimestamp: number;
278
- /** Статус соединения */
279
- isConnected: boolean;
280
- }
281
- /**
282
- * Интерфейс для диагностики соединения
283
- */
284
- export interface ConnectionDiagnostics {
285
- /** Пространство имен */
286
- namespace: WebSocketNamespace;
287
- /** Состояние соединения */
288
- isConnected: boolean;
289
- /** ID сокета */
290
- socketId: string | null;
291
- /** Время последней активности */
292
- lastActivity: number;
293
- /** Задержка RTT */
294
- rtt: {
295
- /** Текущая задержка */
296
- current: number;
297
- /** Минимальная задержка */
298
- min: number;
299
- /** Максимальная задержка */
300
- max: number;
301
- /** Средняя задержка */
302
- avg: number;
303
- };
304
- /** Количество отправленных ping-сообщений */
305
- pingSent: number;
306
- /** Количество полученных pong-ответов */
307
- pongReceived: number;
308
- /** Количество пропущенных pong-ответов */
309
- missedPongs: number;
310
- /** Количество таймаутов */
311
- timeoutCount: number;
312
- /** Количество попыток переподключения */
313
- reconnectAttempts: number;
314
- /** Время последнего подключения */
315
- lastConnectTime: number;
316
- /** Информация о восстановлении сессии */
317
- sessionRecovery: {
318
- /** Наличие токена сессии */
319
- hasSessionToken: boolean;
320
- /** Длина токена сессии */
321
- tokenLength: number;
322
- /** Было ли восстановлено из сессии */
323
- wasRecovered: boolean;
324
- };
325
- }
326
- /**
327
- * WebSocket клиент для работы с Code Solver API
6
+ * WebSocket клиент для работы с Code Solver API (фасад)
328
7
  */
329
8
  export declare class CodeSolverWebSocketClient {
330
9
  /** Базовый URL API */
331
10
  private readonly baseURL;
332
11
  /** Опции клиента */
333
12
  private readonly options;
334
- /** Пространство имен для Socket.IO */
335
- private readonly namespace;
336
- /** WebSocket клиенты для разных пространств имен */
337
- private clients;
338
- /** Активная сессия рассуждения */
339
- private activeReasoningId;
340
- /** Активная сессия индексации */
341
- private activeProjectId;
342
- /** Обработчики событий мышления */
343
- private thinkingEventHandlers;
344
- /** Таймеры для ping/pong */
345
- private pingIntervals;
346
- /** Статистика ping/pong */
347
- private pingStats;
348
- /** Количество последовательных таймаутов */
349
- private pingTimeouts;
350
- /** Задержка по умолчанию между ping-сообщениями (30 секунд) */
351
- private defaultPingInterval;
352
- /** Порог таймаута (количество пропущенных pong) */
353
- private timeoutThreshold;
354
- /** Хранилище обработчиков ping/pong */
355
- private pingPongEventHandlers;
356
- /** Токены сессий для разных пространств имен */
357
- private sessionTokens;
358
- /** Состояние подключения для разных пространств имен */
359
- private connectionState;
360
- /** Таймер для проверки здоровья соединений */
361
- private healthCheckTimer;
13
+ /** Логгер */
14
+ private readonly logger;
15
+ /** Специализированные клиенты для разных пространств имен */
16
+ private readonly reasoningClient;
17
+ private readonly indexingClient;
18
+ private readonly dependenciesClient;
19
+ private readonly notificationsClient;
20
+ /** Сервис диагностики */
21
+ private readonly diagnosticsService;
362
22
  /**
363
23
  * Создает новый WebSocket клиент для Code Solver API
364
24
  * @param {string} baseURL Базовый URL API
@@ -366,25 +26,22 @@ export declare class CodeSolverWebSocketClient {
366
26
  */
367
27
  constructor(baseURL: string, options?: CodeSolverWebSocketOptions);
368
28
  /**
369
- * Логирование сообщений
370
- * @param {string} level Уровень логирования ('info', 'debug', 'error')
371
- * @param {string} message Сообщение для логирования
372
- * @param {any} [data] Дополнительные данные для логирования
373
- */
374
- private logger;
375
- /**
376
- * Подключается к пространству имен WebSocket
377
- * @param {WebSocketNamespace} namespace Пространство имен
378
- * @param {Record<string, any>} [params] Параметры подключения
379
- * @returns {Promise<WebSocketClient>} WebSocket клиент
29
+ * Подключается к пространству имен рассуждений
30
+ * @param {string} reasoningId ID рассуждения (опционально)
31
+ * @param {object} options Дополнительные настройки подключения
32
+ * @returns {Promise<boolean>} Результат подключения
380
33
  */
381
- private connect;
34
+ connectToReasoning(reasoningId?: string, options?: {
35
+ autoJoin?: boolean;
36
+ createIfNotExists?: boolean;
37
+ checkExistence?: boolean;
38
+ }): Promise<boolean>;
382
39
  /**
383
40
  * Подключается к пространству имен индексации
384
- * @param projectId ID проекта (опционально)
385
- * @returns Promise с результатом подключения
41
+ * @param {string} projectId ID проекта (опционально)
42
+ * @returns {Promise<boolean>} Результат подключения
386
43
  */
387
- connectToIndexing(withReconnection?: boolean, createIfNotExistsOrFail?: boolean | 'fail', connTimeout?: number): Promise<boolean>;
44
+ connectToIndexing(projectId?: string): Promise<boolean>;
388
45
  /**
389
46
  * Подключается к уведомлениям
390
47
  * @returns {Promise<boolean>} Результат подключения
@@ -392,34 +49,50 @@ export declare class CodeSolverWebSocketClient {
392
49
  connectToNotifications(): Promise<boolean>;
393
50
  /**
394
51
  * Подключается к пространству имен dependencies
395
- * @param projectId ID проекта (опционально)
396
- * @returns Promise с результатом подключения
52
+ * @param {string} projectId ID проекта (опционально)
53
+ * @returns {Promise<boolean>} Результат подключения
397
54
  */
398
55
  connectToDependencies(projectId?: string): Promise<boolean>;
399
56
  /**
400
57
  * Отключается от пространства имен
401
- * @param {WebSocketNamespace | string} namespace Пространство имен
58
+ * @param {WebSocketNamespace} namespace Пространство имен
402
59
  */
403
- disconnect(namespace: WebSocketNamespace | string): void;
60
+ disconnect(namespace: WebSocketNamespace): void;
404
61
  /**
405
62
  * Отключается от всех пространств имен
406
- * Отключает автоматический механизм ping/pong
407
63
  */
408
64
  disconnectAll(): void;
409
65
  /**
410
- * Добавляет обработчик события для пространства имен
411
- * @param {string} eventType Тип события
412
- * @param {Function} handler Обработчик события
413
- * @param {WebSocketNamespace | string} [namespace] Пространство имен (если не указано, добавляется ко всем активным)
66
+ * Проверяет, подключен ли клиент к указанному пространству имен
67
+ * @param {WebSocketNamespace} namespace Пространство имен
68
+ * @returns {boolean} Статус подключения
414
69
  */
415
- on(eventType: string, handler: (data: any) => void, namespace?: WebSocketNamespace | string): void;
70
+ isConnected(namespace: WebSocketNamespace): boolean;
416
71
  /**
417
- * Удаляет обработчик события для пространства имен
418
- * @param {string} eventType Тип события
419
- * @param {Function} [handler] Обработчик события (если не указан, удаляются все обработчики)
420
- * @param {WebSocketNamespace | string} [namespace] Пространство имен (если не указано, удаляется из всех активных)
72
+ * Проверяет, подключен ли клиент к пространству имен рассуждений
73
+ * @returns {boolean} Статус подключения
74
+ */
75
+ isConnectedToReasoning(): boolean;
76
+ /**
77
+ * Проверяет, подключен ли клиент к пространству имен индексации
78
+ * @returns {boolean} Статус подключения
79
+ */
80
+ isConnectedToIndexing(): boolean;
81
+ /**
82
+ * Проверяет, подключен ли клиент к пространству имен уведомлений
83
+ * @returns {boolean} Статус подключения
84
+ */
85
+ isConnectedToNotifications(): boolean;
86
+ /**
87
+ * Получает ID активной сессии рассуждения
88
+ * @returns {string | null} ID активной сессии рассуждения или null
421
89
  */
422
- off(eventType: string, handler?: (data: any) => void, namespace?: WebSocketNamespace | string): void;
90
+ getActiveReasoningId(): string | null;
91
+ /**
92
+ * Получает ID активного проекта
93
+ * @returns {string | null} ID активного проекта или null
94
+ */
95
+ getActiveProjectId(): string | null;
423
96
  /**
424
97
  * Отправляет сообщение в пространство имен
425
98
  * @param {WebSocketNamespace} namespace Пространство имен
@@ -450,26 +123,19 @@ export declare class CodeSolverWebSocketClient {
450
123
  */
451
124
  sendToNotifications(eventType: string, data?: any): boolean;
452
125
  /**
453
- * Проверяет, подключен ли клиент к указанному пространству имен
454
- * @param {WebSocketNamespace | string} namespace Пространство имен (WebSocketNamespace или строка)
455
- * @returns {boolean} Статус подключения
456
- */
457
- isConnected(namespace: WebSocketNamespace | string): boolean;
458
- /**
459
- * Проверяет, подключен ли клиент к пространству имен рассуждений
460
- * @returns {boolean} Статус подключения
461
- */
462
- isConnectedToReasoning(): boolean;
463
- /**
464
- * Проверяет, подключен ли клиент к пространству имен индексации
465
- * @returns {boolean} Статус подключения
126
+ * Добавляет обработчик события для пространства имен
127
+ * @param {string} eventType Тип события
128
+ * @param {Function} handler Обработчик события
129
+ * @param {WebSocketNamespace} [namespace] Пространство имен (если не указано, добавляется ко всем активным)
466
130
  */
467
- isConnectedToIndexing(): boolean;
131
+ on(eventType: string, handler: (data: any) => void, namespace?: WebSocketNamespace): void;
468
132
  /**
469
- * Проверяет, подключен ли клиент к пространству имен уведомлений
470
- * @returns {boolean} Статус подключения
133
+ * Удаляет обработчик события для пространства имен
134
+ * @param {string} eventType Тип события
135
+ * @param {Function} [handler] Обработчик события (если не указан, удаляются все обработчики)
136
+ * @param {WebSocketNamespace} [namespace] Пространство имен (если не указано, удаляется из всех активных)
471
137
  */
472
- isConnectedToNotifications(): boolean;
138
+ off(eventType: string, handler?: (data: any) => void, namespace?: WebSocketNamespace): void;
473
139
  /**
474
140
  * Получает ID сокета для указанного пространства имен
475
141
  * @param {WebSocketNamespace} [namespace=WebSocketNamespace.REASONING] Пространство имен
@@ -477,221 +143,9 @@ export declare class CodeSolverWebSocketClient {
477
143
  */
478
144
  getSocketId(namespace?: WebSocketNamespace): string | null;
479
145
  /**
480
- * Подписывается на события мышления
481
- * @param {string} reasoningId Идентификатор рассуждения
482
- * @param {Function} handler Обработчик событий мышления
483
- * @returns {void}
484
- */
485
- subscribeToThinking(reasoningId: string, handler: (data: any) => void): void;
486
- /**
487
- * Отписывается от событий мышления
488
- * @param {string} reasoningId Идентификатор рассуждения
489
- * @returns {void}
490
- */
491
- unsubscribeFromThinking(reasoningId: string): void;
492
- /**
493
- * Подключается к сессии рассуждения с thinking
494
- * @param {string} [reasoningId="system"] Идентификатор рассуждения
495
- * @param {Function} [thinkingHandler] Обработчик событий мышления
496
- * @returns {Promise<string>} Идентификатор сессии рассуждения
497
- */
498
- connectToThinkingSession(reasoningId?: string, thinkingHandler?: (data: any) => void): Promise<string>;
499
- /**
500
- * Настраивает отладочное логирование для WebSocket клиента
501
- * @param namespace Пространство имен
502
- */
503
- private setupDebugLogging;
504
- /**
505
- * Проверяет наличие callback-функции в данных и правильно вызывает ее
506
- * @param eventName Имя события
507
- * @param data Данные события
508
- * @private
509
- */
510
- private extractAndCallCallback;
511
- /**
512
- * Включить автоматическую отправку ping-сообщений и сбор статистики
513
- * @param {number} interval - Интервал между ping-сообщениями в миллисекундах
514
- * @param {number} timeoutThreshold - Количество пропущенных pong-сообщений, после которого соединение считается потерянным
515
- * @returns {boolean} - Успешность включения ping/pong
516
- */
517
- enablePingPong(interval?: number, timeoutThreshold?: number): boolean;
518
- /**
519
- * Отключить автоматическую отправку ping-сообщений
520
- * @param {WebSocketNamespace} [namespace] - Пространство имен для отключения (если не указано - отключается везде)
521
- */
522
- disablePingPong(namespace?: WebSocketNamespace): void;
523
- /**
524
- * Получить статистику ping/pong
525
- * @param {WebSocketNamespace} [namespace] - Пространство имен для получения статистики
526
- * @returns {PingPongStats | PingPongStats[] | null} - Статистика ping/pong
527
- */
528
- getPingStats(namespace?: WebSocketNamespace): PingPongStats | PingPongStats[] | null;
529
- /**
530
- * Добавляет обработчик для событий ping/pong
531
- * @param {string} eventType - Тип события (connection_timeout)
532
- * @param {(data: any) => void} handler - Обработчик события
533
- */
534
- onPingPongEvent(eventType: string, handler: (data: any) => void): void;
535
- /**
536
- * Удаляет обработчик для событий ping/pong
537
- * @param {string} eventType - Тип события
538
- * @param {(data: any) => void} [handler] - Обработчик события (если не указан, удаляются все обработчики)
539
- */
540
- offPingPongEvent(eventType: string, handler?: (data: any) => void): void;
541
- /**
542
- * Возвращает функцию-обработчик для pong-ответов, которая рассчитывает RTT
543
- * @returns {(data: any) => void} Функция-обработчик
544
- */
545
- getPongHandler(): (data: any) => void;
546
- /**
547
- * Выполняет диагностику соединения и возвращает подробный отчет
548
- * @param {WebSocketNamespace} namespace Пространство имен
549
- * @returns {ConnectionDiagnostics} Объект с диагностической информацией
550
- */
551
- diagnoseConnection(namespace: WebSocketNamespace): ConnectionDiagnostics;
552
- /**
553
- * Выполняет диагностику всех активных соединений
554
- * @returns {Record<string, ConnectionDiagnostics>} Объект с диагностической информацией по всем соединениям
555
- */
556
- diagnoseAllConnections(): Record<string, ConnectionDiagnostics>;
557
- /**
558
- * Рассчитывает задержку для переподключения на основе количества попыток и стратегии
559
- * @param {WebSocketNamespace} namespace Пространство имен
560
- * @returns {number} Задержка в миллисекундах
561
- */
562
- private calculateReconnectDelay;
563
- /**
564
- * Принудительно переподключает соединение для указанного пространства имен
565
- * @param {WebSocketNamespace} namespace Пространство имен
566
- * @param {boolean} immediate Выполнить переподключение немедленно, без задержки
567
- * @returns {Promise<boolean>} Успешность операции
568
- */
569
- reconnectNamespace(namespace: WebSocketNamespace, immediate?: boolean): Promise<boolean>;
570
- /**
571
- * Настраивает периодическую проверку здоровья соединения
572
- * @param {number} [interval=30000] Интервал проверки в миллисекундах
573
- */
574
- setupConnectionHealthCheck(interval?: number): void;
575
- /**
576
- * Сохраняет токен сессии для пространства имен
577
- * @param {WebSocketNamespace} namespace Пространство имен
578
- * @param {string} token Токен сессии
579
- */
580
- saveSessionToken(namespace: WebSocketNamespace, token: string): void;
581
- /**
582
- * Получает сохраненный токен сессии для пространства имен
583
- * @param {WebSocketNamespace} namespace Пространство имен
584
- * @returns {string | null} Токен сессии или null, если не найден
585
- */
586
- getSessionToken(namespace: WebSocketNamespace): string | null;
587
- /**
588
- * Удаляет сохраненный токен сессии для пространства имен
589
- * @param {WebSocketNamespace} namespace Пространство имен
590
- */
591
- clearSessionToken(namespace: WebSocketNamespace): void;
592
- /**
593
- * Устанавливает состояние подключения для пространства имен
594
- * @param {WebSocketNamespace} namespace Пространство имен
595
- * @param {boolean} connected Состояние подключения
596
- * @param {boolean} reconnecting Состояние переподключения
597
- */
598
- private setConnectionState;
599
- /**
600
- * Увеличивает счетчик попыток переподключения для пространства имен
601
- * @param {WebSocketNamespace} namespace Пространство имен
602
- * @returns {number} Новое количество попыток
603
- */
604
- private incrementReconnectAttempts;
605
- /**
606
- * Получает состояние подключения для пространства имен
607
- * @param {WebSocketNamespace} namespace Пространство имен
608
- * @returns {object} Состояние подключения
609
- */
610
- getConnectionState(namespace: WebSocketNamespace): {
611
- lastConnectTime: number;
612
- reconnectAttempts: number;
613
- connected: boolean;
614
- reconnecting: boolean;
615
- };
616
- /**
617
- * Устанавливает ID активной сессии рассуждения
618
- * @param {string} reasoningId ID сессии рассуждения
619
- * @returns {boolean} Успешность установки
620
- */
621
- setActiveReasoningId(reasoningId: string): boolean;
622
- /**
623
- * Устанавливает ID активного проекта
624
- * @param {string} projectId ID проекта
625
- * @returns {boolean} Успешность установки
626
- */
627
- setActiveProjectId(projectId: string): boolean;
628
- /**
629
- * Устанавливает ID активной сессии рассуждения с расширенными возможностями
630
- * @param {string} reasoningId ID сессии рассуждения
631
- * @param {boolean} waitForJoin Дождаться результата присоединения
632
- * @param {boolean} createIfNotExists Создать новое рассуждение, если ID не существует
633
- * @returns {Promise<boolean>} Результат операции
634
- */
635
- setActiveReasoningIdAsync(reasoningId: string, waitForJoin?: boolean, createIfNotExists?: boolean): Promise<boolean>;
636
- /**
637
- * Создает новое рассуждение на сервере
638
- * @private
639
- * @returns {Promise<string>} ID нового рассуждения
640
- */
641
- private createNewReasoning;
642
- /**
643
- * Проверяет существование рассуждения на сервере
644
- * @param {string} reasoningId ID рассуждения для проверки
645
- * @returns {Promise<boolean>} Существует ли рассуждение
646
- */
647
- checkReasoningExists(reasoningId: string): Promise<boolean>;
648
- /**
649
- * Подключается к пространству имен рассуждений
650
- * @param reasoningId ID рассуждения (опционально)
651
- * @param options Дополнительные настройки подключения
652
- * @returns Promise с результатом подключения
653
- */
654
- connectToReasoning(reasoningId?: string, options?: {
655
- autoJoin?: boolean;
656
- createIfNotExists?: boolean;
657
- checkExistence?: boolean;
658
- saveSession?: boolean;
659
- }): Promise<boolean>;
660
- /**
661
- * Получает текущий статус сессии рассуждения
662
- * @param {string} reasoningId ID сессии рассуждения (опционально, по умолчанию активная)
663
- * @returns {Promise<{exists: boolean, isActive: boolean, metadata?: any}>} Статус сессии
664
- */
665
- getReasoningStatus(reasoningId?: string): Promise<{
666
- exists: boolean;
667
- isActive: boolean;
668
- metadata?: any;
669
- }>;
670
- /**
671
- * Присоединяется к сессии рассуждения
672
- * @param {string} reasoningId ID сессии рассуждения
673
- * @param {boolean} setActive Установить как активное рассуждение
674
- * @returns {Promise<boolean>} Результат операции
675
- */
676
- joinReasoning(reasoningId: string, setActive?: boolean): Promise<boolean>;
677
- /**
678
- * Подключается к пространству имен рассуждений с расширенными опциями
679
- * @param reasoningId ID рассуждения (опционально)
680
- * @param options Дополнительные настройки подключения
681
- * @returns Promise с результатом подключения
682
- */
683
- connectToReasoningEx(reasoningId?: string, options?: {
684
- autoJoin?: boolean;
685
- createIfNotExists?: boolean;
686
- checkExistence?: boolean;
687
- saveSession?: boolean;
688
- }): Promise<boolean>;
689
- /**
690
- * Преобразует строковый namespace в соответствующее перечисление
691
- * @param {WebSocketNamespace | string} namespace Строковый namespace или перечисление
692
- * @returns {WebSocketNamespace} Соответствующее перечисление
693
- * @private
146
+ * Получает диагностическую информацию о соединениях
147
+ * @returns {object} Диагностическая информация
694
148
  */
695
- private resolveNamespace;
149
+ getDiagnostics(): Record<string, any>;
696
150
  }
697
151
  //# sourceMappingURL=code-solver-websocket-client.d.ts.map