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
package/docs/WEBSOCKET.md CHANGED
@@ -1,64 +1,46 @@
1
- # Работа с WebSocket соединениями
1
+ # Работа с WebSocket в Solver SDK
2
2
 
3
- В этом разделе описаны основные методы для работы с WebSocket соединениями.
3
+ Эта документация описывает, как использовать WebSocket соединения через Solver SDK для работы в реальном времени.
4
4
 
5
- ## Получение WebSocket клиента
5
+ ## Инициализация SDK
6
6
 
7
7
  ```javascript
8
8
  const { CodeSolverSDK } = require('solver-sdk');
9
9
 
10
+ // Создаем экземпляр SDK с настройками
10
11
  const sdk = new CodeSolverSDK({
11
12
  baseURL: 'https://api.example.com',
12
- apiKey: 'your-api-key',
13
- websocket: {
14
- reconnect: true,
15
- reconnectAttempts: 5,
16
- reconnectDelay: 3000,
17
- rejectUnauthorized: true // false для самоподписанных сертификатов
18
- }
13
+ apiKey: 'your-api-key'
19
14
  });
20
-
21
- // Получение WebSocket клиента
22
- const wsClient = sdk.getWebSocketClient();
23
-
24
- // Подключение к namespace рассуждений
25
- await wsClient.connectToReasoning();
26
-
27
- // Подключение к namespace индексации
28
- await wsClient.connectToIndexing();
29
-
30
- // Проверка статуса подключения
31
- const isConnected = wsClient.isConnected(WebSocketNamespace.REASONING);
32
-
33
- // Отключение от определенного namespace
34
- await wsClient.disconnect(WebSocketNamespace.REASONING);
35
-
36
- // Отключение от всех namespace
37
- await wsClient.disconnectAll();
38
15
  ```
39
16
 
40
- ## Мониторинг индексации проектов
17
+ ## Работа с рассуждениями (Reasoning)
18
+
19
+ ### Создание рассуждения и получение результатов в реальном времени
41
20
 
42
21
  ```javascript
43
- // Подключение к WebSocket для проектов
44
- await sdk.projects.connectWebSocket();
22
+ // Создание рассуждения
23
+ const reasoning = await sdk.reasoning.createReasoning({
24
+ projectId: 'project-id',
25
+ query: 'Объясни этот проект'
26
+ });
45
27
 
46
- // Отслеживание прогресса индексации
47
- sdk.projects.on('indexing_progress', (data) => {
48
- console.log(`Прогресс индексации: ${data.progress}%`);
49
- console.log(`Обработано файлов: ${data.processedFiles} из ${data.totalFiles}`);
28
+ // Подключение к WebSocket
29
+ await sdk.reasoning.connectWebSocket(reasoning.id);
30
+
31
+ // Подписка на события
32
+ sdk.reasoning.on('thinking', (data) => {
33
+ console.log('Мышление:', data.content);
50
34
  });
51
35
 
52
- // Завершение индексации
53
- sdk.projects.on('indexing_complete', (data) => {
54
- console.log('Индексация завершена!', data.success ? 'Успешно' : 'С ошибками');
55
-
36
+ sdk.reasoning.on('complete', (data) => {
37
+ console.log('Результат:', data.content);
56
38
  // Отключение после завершения
57
- sdk.projects.disconnectWebSocket();
39
+ sdk.reasoning.disconnectWebSocket();
58
40
  });
59
41
 
60
- // Остановка индексации
61
- await sdk.projects.stopIndexing(projectId);
42
+ // Запуск рассуждения
43
+ await sdk.reasoning.startReasoning(reasoning.id);
62
44
  ```
63
45
 
64
46
  ## Потоковый чат с мышлением AI
@@ -69,7 +51,7 @@ const handleEvent = (eventType, data) => {
69
51
  if (eventType === 'thinking_delta' && data.thinking) {
70
52
  console.log('Мышление:', data.thinking);
71
53
  } else if (eventType === 'text_delta' && data.text) {
72
- process.stdout.write(data.text); // Вывод текста без переноса строки
54
+ process.stdout.write(data.text);
73
55
  } else if (eventType === 'message_stop') {
74
56
  console.log('\nОтвет завершен');
75
57
  }
@@ -86,106 +68,36 @@ const options = {
86
68
  temperature: 0.7
87
69
  };
88
70
 
71
+ // Отправка с потоковым получением ответа
89
72
  const response = await sdk.chat.streamChatWithThinking(
90
73
  messages,
91
74
  options,
92
75
  handleEvent
93
76
  );
94
-
95
- console.log(`Socket ID: ${response.socketId}`);
96
77
  ```
97
78
 
98
- ## Работа с рассуждениями через WebSocket
79
+ ## Мониторинг индексации проектов
99
80
 
100
81
  ```javascript
101
- // Создание рассуждения
102
- const reasoning = await sdk.reasoning.createReasoning({
103
- projectId: 'project-id',
104
- query: 'Объясни этот проект'
105
- });
106
-
107
- // Подключение к WebSocket для рассуждений
108
- await sdk.reasoning.connectWebSocket(reasoning.id);
109
-
110
- // Подписка на события
111
- sdk.reasoning.on('thinking', (data) => {
112
- console.log('Мышление:', data.content);
113
- });
114
-
115
- sdk.reasoning.on('complete', (data) => {
116
- console.log('Результат:', data.content);
117
- // Отключение после завершения
118
- sdk.reasoning.disconnectWebSocket();
119
- });
120
-
121
- // Запуск рассуждения
122
- await sdk.reasoning.startReasoning(reasoning.id);
123
- ```
124
-
125
- ## Настройка параметров WebSocket
82
+ // Подключение к WebSocket для проектов
83
+ await sdk.projects.connectWebSocket();
126
84
 
127
- ```javascript
128
- // Настройка параметров WebSocket при создании SDK
129
- const sdk = new CodeSolverSDK({
130
- baseURL: 'https://api.example.com',
131
- apiKey: 'your-api-key',
132
- websocket: {
133
- reconnect: true, // Автоматическое переподключение
134
- reconnectAttempts: 5, // Максимальное количество попыток
135
- reconnectDelay: 3000, // Задержка между попытками (мс)
136
- rejectUnauthorized: true, // Проверка SSL-сертификатов
137
- reconnectStrategy: 'exponential', // Стратегия задержки между попытками
138
- enableAutoPing: true, // Автоматический ping/pong
139
- pingInterval: 25000, // Интервал ping в мс
140
- enableSessionPersistence: true // Сохранение сессии
141
- }
85
+ // Отслеживание прогресса индексации
86
+ sdk.projects.on('indexing_progress', (data) => {
87
+ console.log(`Прогресс индексации: ${data.progress}%`);
88
+ console.log(`Обработано файлов: ${data.processedFiles} из ${data.totalFiles}`);
142
89
  });
143
- ```
144
-
145
- ## Обработка ошибок в WebSocket
146
90
 
147
- ```javascript
148
- try {
149
- await sdk.projects.connectWebSocket();
91
+ // Завершение индексации
92
+ sdk.projects.on('indexing_complete', (data) => {
93
+ console.log('Индексация завершена!', data.success ? 'Успешно' : 'С ошибками');
150
94
 
151
- // Подписка на события ошибок
152
- sdk.projects.on('error', (error) => {
153
- console.error('Ошибка WebSocket:', error.message);
154
- if (error.type === 'connection_error') {
155
- console.error('Проблема с подключением');
156
- } else if (error.type === 'authentication_error') {
157
- console.error('Ошибка аутентификации');
158
- }
159
- });
160
- } catch (error) {
161
- console.error('Ошибка при подключении:', error.message);
162
- }
163
- ```
164
-
165
- ## Модули с поддержкой WebSocket
166
-
167
- ### Чат и рассуждения
168
-
169
- ```javascript
170
- // Подключение WebSocket для чата
171
- await sdk.chat.connectWebSocket();
172
-
173
- // Подписка на события
174
- sdk.chat.on('message_start', (data) => {
175
- console.log('Начало сообщения:', data);
176
- });
177
-
178
- sdk.chat.on('content_block_delta', (data) => {
179
- if (data.delta?.type === 'thinking_delta') {
180
- console.log('Фрагмент мышления:', data.delta.thinking);
181
- }
95
+ // Отключение после завершения
96
+ sdk.projects.disconnectWebSocket();
182
97
  });
183
-
184
- // Отключение
185
- await sdk.chat.disconnectWebSocket();
186
98
  ```
187
99
 
188
- ### Зависимости
100
+ ## Работа с зависимостями
189
101
 
190
102
  ```javascript
191
103
  // Подключение к пространству имен зависимостей
@@ -200,68 +112,6 @@ sdk.dependencies.on('dependency_update', (data) => {
200
112
  await sdk.dependencies.disconnectWebSocket();
201
113
  ```
202
114
 
203
- ### Проекты и индексация
204
-
205
- ```javascript
206
- // Подключение к пространству имен проектов
207
- await sdk.projects.connectWebSocket();
208
-
209
- // Подписка на события индексации
210
- sdk.projects.on('indexing_progress', (data) => {
211
- console.log('Прогресс индексации:', data.progress);
212
- });
213
-
214
- // Отключение
215
- await sdk.projects.disconnectWebSocket();
216
- ```
217
-
218
- ## Поддерживаемые события
219
-
220
- Основные события, на которые можно подписаться:
221
-
222
- | Событие | Описание | Примечание |
223
- |---------|----------|------------|
224
- | `message_start` | Начало сообщения | { id, model, type } |
225
- | `content_block_start` | Начало блока контента | { content_block: { type }, index } |
226
- | `content_block_delta` | Дельта блока контента | См. документацию для типов дельт |
227
- | `content_block_stop` | Конец блока контента | { content_block: { type }, index } |
228
- | `message_stop` | Конец сообщения | { id, type, stop_reason } |
229
- | `error` | Ошибка | { message, code, ... } |
230
-
231
- ## Потоковая передача мышления
232
-
233
- Самый простой способ получать мышление — использовать метод `streamChatWithThinking`:
234
-
235
- ```javascript
236
- // Обработчик событий
237
- const handleEvent = (eventType, data) => {
238
- if (eventType === 'content_block_delta' && data.delta?.type === 'thinking_delta') {
239
- console.log('Мышление:', data.delta.thinking);
240
- } else if (eventType === 'content_block_delta' && data.delta?.type === 'text_delta') {
241
- console.log('Ответ:', data.delta.text);
242
- } else if (eventType === 'message_stop') {
243
- console.log('Завершение ответа');
244
- }
245
- };
246
-
247
- // Отправка запроса с потоковым мышлением
248
- const messages = [
249
- { role: 'user', content: 'Объясни квантовую механику' }
250
- ];
251
-
252
- const options = {
253
- model: 'claude-3-7-sonnet-20240229',
254
- thinking: true,
255
- temperature: 0.7
256
- };
257
-
258
- const response = await sdk.chat.streamChatWithThinking(
259
- messages,
260
- options,
261
- handleEvent
262
- );
263
- ```
264
-
265
115
  ## Обработка ошибок
266
116
 
267
117
  ```javascript
@@ -272,28 +122,18 @@ try {
272
122
  handleEvent
273
123
  );
274
124
  } catch (error) {
275
- if (error.code === 'CONNECTION_ERROR') {
276
- console.error('Ошибка подключения:', error.message);
277
- } else {
278
- console.error('Произошла ошибка:', error.message);
279
- }
125
+ console.error('Произошла ошибка:', error.message);
280
126
  }
281
127
  ```
282
128
 
283
- ## Настройка WebSocket
284
-
285
- ```javascript
286
- // Настройка параметров WebSocket при создании SDK
287
- const sdk = new CodeSolverSDK({
288
- baseURL: 'https://api.example.com',
289
- apiKey: 'your-api-key',
290
- websocket: {
291
- reconnect: true, // Автоматическое переподключение
292
- reconnectAttempts: 5, // Максимальное количество попыток
293
- rejectUnauthorized: false // Для самоподписанных сертификатов
294
- }
295
- });
296
- ```
297
- ## Дополнительная информация
298
-
299
- Для детального описания всех возможностей WebSocket, смотрите [руководство по мышлению](./features/THINKING.md) и примеры в директории [examples/websocket](../examples/websocket).
129
+ ## Основные события
130
+
131
+ | Событие | Описание |
132
+ |---------|----------|
133
+ | `message_start` | Начало сообщения |
134
+ | `thinking_delta` | Обновление мышления AI |
135
+ | `text_delta` | Часть текстового ответа |
136
+ | `message_stop` | Конец сообщения |
137
+ | `indexing_progress` | Прогресс индексации |
138
+ | `indexing_complete` | Завершение индексации |
139
+ | `error` | Уведомление об ошибке |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "solver-sdk",
3
- "version": "1.8.1",
3
+ "version": "1.9.0",
4
4
  "description": "SDK для интеграции с Code Solver Backend API",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",