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