solver-sdk 1.4.1 → 1.5.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.
@@ -27,6 +27,8 @@ class WebSocketClient {
27
27
  this.messageQueue = [];
28
28
  /** Состояние соединения */
29
29
  this.connected = false;
30
+ /** Аутентифицировано ли соединение */
31
+ this.authenticated = false;
30
32
  this.url = url;
31
33
  this.options = {
32
34
  headers: options.headers || {},
@@ -36,10 +38,44 @@ class WebSocketClient {
36
38
  retryDelay: options.retryDelay || 1000,
37
39
  maxRetryDelay: options.maxRetryDelay || 30000,
38
40
  autoReconnect: options.autoReconnect !== undefined ? options.autoReconnect : true,
39
- rejectUnauthorized: options.rejectUnauthorized !== undefined ? options.rejectUnauthorized : true
41
+ rejectUnauthorized: options.rejectUnauthorized !== undefined ? options.rejectUnauthorized : true,
42
+ apiKey: options.apiKey || '',
43
+ namespace: options.namespace || '',
44
+ logger: options.logger
40
45
  };
41
46
  // Определяем среду выполнения
42
47
  this.isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';
48
+ // Инициализируем пространство имен
49
+ this.namespace = this.options.namespace || '';
50
+ // Если namespace не начинается с /, добавляем его
51
+ if (this.namespace && !this.namespace.startsWith('/')) {
52
+ this.namespace = '/' + this.namespace;
53
+ }
54
+ // Инициализируем логгер
55
+ this.logger = this.options.logger || ((level, message, data) => {
56
+ if (level === 'error') {
57
+ console.error(`[WebSocketClient] ${message}`, data);
58
+ }
59
+ else if (level === 'warn') {
60
+ console.warn(`[WebSocketClient] ${message}`, data);
61
+ }
62
+ else if (level === 'info') {
63
+ console.info(`[WebSocketClient] ${message}`, data);
64
+ }
65
+ else if (level === 'debug' && process.env.NODE_ENV === 'development') {
66
+ console.debug(`[WebSocketClient] ${message}`, data);
67
+ }
68
+ });
69
+ // Логирование конфигурации при создании клиента
70
+ this.logger('info', 'Создан WebSocket клиент', {
71
+ url: this.url,
72
+ namespace: this.namespace,
73
+ hasApiKey: !!this.options.apiKey,
74
+ apiKeyLength: this.options.apiKey ? this.options.apiKey.length : 0,
75
+ connectionTimeout: this.options.connectionTimeout,
76
+ autoReconnect: this.options.autoReconnect,
77
+ maxRetries: this.options.maxRetries
78
+ });
43
79
  }
44
80
  /**
45
81
  * Подключается к WebSocket серверу
@@ -48,30 +84,50 @@ class WebSocketClient {
48
84
  connect() {
49
85
  // Если соединение уже установлено, возвращаем Promise.resolve
50
86
  if (this.webSocket && this.webSocket.readyState === WebSocket.OPEN) {
87
+ this.logger('info', 'Соединение уже установлено');
51
88
  return Promise.resolve();
52
89
  }
53
90
  // Сбрасываем флаг намеренного закрытия
54
91
  this.intentionallyClosed = false;
55
92
  return new Promise((resolve, reject) => {
56
93
  try {
94
+ // Проверяем, содержит ли URL параметры Socket.IO
95
+ let wsUrl = this.url;
96
+ // Проверяем, является ли это Socket.IO подключением
97
+ if (wsUrl.includes('/socket.io/') || wsUrl.includes('?EIO=')) {
98
+ // Убедимся, что в URL есть параметры для Socket.IO версии 4
99
+ if (!wsUrl.includes('EIO=')) {
100
+ // Добавляем разделитель: ? или &
101
+ const separator = wsUrl.includes('?') ? '&' : '?';
102
+ wsUrl += `${separator}EIO=4&transport=websocket`;
103
+ }
104
+ // Добавляем timestamp для предотвращения кеширования
105
+ if (!wsUrl.includes('t=')) {
106
+ const separator = wsUrl.includes('?') ? '&' : '?';
107
+ wsUrl += `${separator}t=${Date.now()}`;
108
+ }
109
+ }
110
+ this.logger('info', 'Выполняется подключение', { url: wsUrl });
57
111
  // Создаем новый экземпляр WebSocket
58
112
  if (this.isBrowser) {
59
113
  // Браузерное окружение
60
- this.webSocket = new WebSocket(this.url, this.options.protocols);
114
+ this.webSocket = new WebSocket(wsUrl, this.options.protocols);
61
115
  }
62
116
  else {
63
117
  // Node.js окружение
64
118
  try {
65
119
  // Динамически импортируем ws модуль в Node.js
66
120
  const WebSocketImpl = require('ws');
67
- this.webSocket = new WebSocketImpl(this.url, {
121
+ this.webSocket = new WebSocketImpl(wsUrl, {
68
122
  headers: this.options.headers,
69
123
  protocol: this.options.protocols,
70
124
  rejectUnauthorized: this.options.rejectUnauthorized !== false
71
125
  });
72
126
  }
73
127
  catch (error) {
74
- reject(new Error('Не удалось загрузить модуль ws в Node.js: ' + error.message));
128
+ const errorMsg = `Не удалось загрузить модуль ws в Node.js: ${error.message}`;
129
+ this.logger('error', errorMsg);
130
+ reject(new Error(errorMsg));
75
131
  return;
76
132
  }
77
133
  }
@@ -87,6 +143,7 @@ class WebSocketClient {
87
143
  clearTimeout(this.connectionTimeoutTimer);
88
144
  this.retryCount = 0;
89
145
  this.connected = true;
146
+ this.logger('info', 'WebSocket соединение установлено');
90
147
  // Отправляем сообщения из очереди
91
148
  while (this.messageQueue.length > 0) {
92
149
  const message = this.messageQueue.shift();
@@ -106,63 +163,137 @@ class WebSocketClient {
106
163
  let data = event.data;
107
164
  // Обработка сообщений Socket.IO
108
165
  if (typeof data === 'string') {
109
- // Проверка на Socket.IO пингующие сообщения
166
+ // Обработка Engine.IO - Ping/Pong (2/3)
110
167
  if (data === '2') {
111
- // Получили пинг (код 2), отправляем понг (код 3)
168
+ // Engine.IO ping, отправляем понг
112
169
  if (this.webSocket && this.webSocket.readyState === WebSocket.OPEN) {
113
170
  this.webSocket.send('3');
114
171
  }
115
172
  this.dispatchEvent('ping', {});
116
173
  return;
117
174
  }
118
- // Определяем тип пакета Socket.IO
175
+ else if (data === '3') {
176
+ // Engine.IO pong
177
+ this.dispatchEvent('pong', {});
178
+ return;
179
+ }
180
+ // Обработка открытия соединения Socket.IO
181
+ if (data.startsWith('0')) {
182
+ try {
183
+ const authData = JSON.parse(data.substring(1));
184
+ this.dispatchEvent('socket.io_open', authData);
185
+ // Вызываем обработчик открытия соединения Socket.IO
186
+ this.handleSocketIOOpen(authData);
187
+ return;
188
+ }
189
+ catch (e) {
190
+ // Игнорируем ошибки парсинга
191
+ }
192
+ }
193
+ // Обработка Socket.IO событий (42)
194
+ if (data.startsWith('42')) {
195
+ // Формат: 42/namespace,[event,data]
196
+ let namespace = '';
197
+ let eventData = data.substring(2);
198
+ // Извлекаем namespace, если есть
199
+ if (eventData.startsWith('/')) {
200
+ const namespaceEnd = eventData.indexOf(',');
201
+ if (namespaceEnd !== -1) {
202
+ namespace = eventData.substring(0, namespaceEnd);
203
+ eventData = eventData.substring(namespaceEnd + 1);
204
+ }
205
+ }
206
+ try {
207
+ const parsedData = JSON.parse(eventData);
208
+ if (Array.isArray(parsedData) && parsedData.length >= 1) {
209
+ const event = parsedData[0];
210
+ const eventPayload = parsedData.length > 1 ? parsedData[1] : null;
211
+ // Запускаем обработчик для данного события
212
+ this.dispatchEvent(event, eventPayload);
213
+ // Также отправляем общее событие socket.io с информацией о полученном событии
214
+ this.dispatchEvent('socket.io_event', {
215
+ event,
216
+ data: eventPayload,
217
+ namespace
218
+ });
219
+ // Обработка специальных событий для стриминга
220
+ if (event === 'text_delta' && eventPayload?.delta?.text) {
221
+ this.dispatchEvent('streaming_delta', { type: 'text', content: eventPayload.delta.text });
222
+ }
223
+ else if (event === 'thinking_delta' && eventPayload?.delta?.thinking) {
224
+ this.dispatchEvent('streaming_delta', { type: 'thinking', content: eventPayload.delta.thinking });
225
+ }
226
+ else if (event === 'message_stop') {
227
+ this.dispatchEvent('streaming_complete', {});
228
+ }
229
+ }
230
+ }
231
+ catch (e) {
232
+ this.dispatchEvent('error', { message: `Ошибка парсинга Socket.IO данных: ${e instanceof Error ? e.message : 'Неизвестная ошибка'}` });
233
+ }
234
+ return;
235
+ }
236
+ // Определяем тип пакета Socket.IO по первому символу
119
237
  const packetType = data.charAt(0);
120
238
  // Если это пакет данных (тип 0-6)
121
239
  if (packetType >= '0' && packetType <= '6') {
122
- // Отделяем тип пакета от содержимого
123
- let socketData;
124
- try {
125
- // Если строка содержит JSON (начиная с позиции 1)
126
- if (data.length > 1) {
240
+ // Отправляем особое событие для Socket.IO пакетов
241
+ this.dispatchEvent('socket.io_raw', {
242
+ type: packetType,
243
+ data: data.substring(1)
244
+ });
245
+ // Пытаемся обработать содержимое
246
+ if (data.length > 1) {
247
+ try {
127
248
  // Обработка пакета с namespace
128
249
  let jsonStart = 1;
129
- // Если есть namespace, пропускаем его
250
+ let namespace = '';
251
+ // Если есть namespace, извлекаем его
130
252
  if (data.charAt(1) === '/') {
131
253
  const namespaceEnd = data.indexOf('{', 1);
132
254
  if (namespaceEnd !== -1) {
255
+ namespace = data.substring(1, namespaceEnd);
133
256
  jsonStart = namespaceEnd;
134
257
  }
135
258
  }
136
- // Извлекаем JSON часть
259
+ // Пытаемся преобразовать оставшуюся часть в JSON
137
260
  const jsonStr = data.substring(jsonStart);
138
261
  if (jsonStr) {
139
- socketData = JSON.parse(jsonStr);
262
+ try {
263
+ const parsedData = JSON.parse(jsonStr);
264
+ this.dispatchEvent('message', parsedData);
265
+ }
266
+ catch (e) {
267
+ // Если не можем преобразовать в JSON, отправляем как есть
268
+ this.dispatchEvent('message', jsonStr);
269
+ }
140
270
  }
141
271
  }
272
+ catch (e) {
273
+ // Игнорируем ошибки парсинга
274
+ }
275
+ }
276
+ }
277
+ else {
278
+ // Если это не Socket.IO пакет, пытаемся обработать как обычное сообщение
279
+ try {
280
+ const parsedData = JSON.parse(data);
281
+ this.dispatchEvent('message', parsedData);
142
282
  }
143
283
  catch (e) {
144
- // Игнорируем ошибки парсинга
284
+ // Если не можем преобразовать в JSON, отправляем как есть
285
+ this.dispatchEvent('message', data);
145
286
  }
146
- // Отправляем особое событие для Socket.IO пакетов
147
- this.dispatchEvent('socket.io', {
148
- type: packetType,
149
- data: socketData
150
- });
151
- // Для обычного события message используем распарсенные данные, если есть
152
- data = socketData || data;
153
- }
154
- try {
155
- // Пытаемся распарсить как JSON для обычных сообщений
156
- data = JSON.parse(data);
157
- }
158
- catch (e) {
159
- // Если не удалось распарсить, оставляем как есть
160
287
  }
161
288
  }
162
- this.dispatchEvent('message', data);
289
+ else {
290
+ // Если данные не строка (например, ArrayBuffer), отправляем как есть
291
+ this.dispatchEvent('message', data);
292
+ }
163
293
  }
164
294
  catch (e) {
165
295
  console.error('Ошибка при обработке сообщения WebSocket:', e);
296
+ this.dispatchEvent('error', { message: `Ошибка при обработке сообщения: ${e instanceof Error ? e.message : 'Неизвестная ошибка'}` });
166
297
  }
167
298
  };
168
299
  // Обработчик закрытия соединения
@@ -267,8 +398,24 @@ class WebSocketClient {
267
398
  // Если это объект с type='2' (Socket.IO EVENT), обрабатываем как Socket.IO сообщение
268
399
  if (typeof message === 'object' && message.type === '2') {
269
400
  const socketIOMessage = message;
401
+ let packet;
270
402
  // Формат сообщения для Socket.IO протокола 4
271
- const packet = `${socketIOMessage.type}${socketIOMessage.nsp ? socketIOMessage.nsp : ''}${JSON.stringify(socketIOMessage.data)}`;
403
+ if (socketIOMessage.event && socketIOMessage.data) {
404
+ // Format: 42namespace,[event,data]
405
+ const namespace = socketIOMessage.nsp ? socketIOMessage.nsp : '';
406
+ const namespaceStr = namespace && !namespace.startsWith('/') ? '/' + namespace : namespace;
407
+ const eventData = [socketIOMessage.event];
408
+ if (socketIOMessage.data !== undefined) {
409
+ eventData.push(socketIOMessage.data);
410
+ }
411
+ // 4 - Engine.IO message type
412
+ // 2 - Socket.IO EVENT type
413
+ packet = `42${namespaceStr}${namespaceStr ? ',' : ''}${JSON.stringify(eventData)}`;
414
+ }
415
+ else {
416
+ // Обратная совместимость со старым форматом
417
+ packet = `${socketIOMessage.type}${socketIOMessage.nsp ? socketIOMessage.nsp : ''}${JSON.stringify(socketIOMessage.data)}`;
418
+ }
272
419
  if (this.webSocket && this.webSocket.readyState === WebSocket.OPEN) {
273
420
  this.webSocket.send(packet);
274
421
  return true;
@@ -356,6 +503,153 @@ class WebSocketClient {
356
503
  }
357
504
  }
358
505
  }
506
+ /**
507
+ * Обработка полученного сообщения от сервера
508
+ * @param message Сообщение от сервера
509
+ */
510
+ handleMessage(message) {
511
+ try {
512
+ if (!message) {
513
+ this.dispatchEvent('error', { message: 'Получено пустое сообщение' });
514
+ return;
515
+ }
516
+ // Проверяем, является ли сообщение пингом Socket.IO (2)
517
+ if (message === '2') {
518
+ // Отправляем понг (3)
519
+ this.send('3');
520
+ this.dispatchEvent('debug', 'Получен ping, отправлен pong');
521
+ return;
522
+ }
523
+ // Если это сообщение Socket.IO с данными
524
+ if (message.startsWith('42')) {
525
+ // Формат: 42[event,data]
526
+ const eventDataStr = message.substring(2);
527
+ try {
528
+ const [event, data] = JSON.parse(eventDataStr);
529
+ // Вызываем соответствующий обработчик события
530
+ this.dispatchEvent(event, data);
531
+ // Добавляем специальную обработку для событий стриминга
532
+ if (event === 'text_delta' && data.delta?.text) {
533
+ this.dispatchEvent('streaming_delta', { type: 'text', content: data.delta.text });
534
+ }
535
+ else if (event === 'thinking_delta' && data.delta?.thinking) {
536
+ this.dispatchEvent('streaming_delta', { type: 'thinking', content: data.delta.thinking });
537
+ }
538
+ else if (event === 'message_stop') {
539
+ this.dispatchEvent('streaming_complete', {});
540
+ }
541
+ }
542
+ catch (error) {
543
+ const errorMessage = error instanceof Error ? error.message : 'Неизвестная ошибка';
544
+ this.dispatchEvent('error', { message: `Ошибка разбора данных события: ${errorMessage}` });
545
+ }
546
+ return;
547
+ }
548
+ // Пытаемся преобразовать сообщение в JSON
549
+ try {
550
+ const parsedMessage = JSON.parse(message);
551
+ // Если это объект с типом event и данными, это может быть событие
552
+ if (parsedMessage.event && parsedMessage.data) {
553
+ const { event, data } = parsedMessage;
554
+ this.dispatchEvent(event, data);
555
+ }
556
+ else {
557
+ this.dispatchEvent('message', parsedMessage);
558
+ }
559
+ }
560
+ catch (error) {
561
+ // Если не удалось преобразовать в JSON, обрабатываем как текстовое сообщение
562
+ this.dispatchEvent('message', message);
563
+ }
564
+ }
565
+ catch (error) {
566
+ const errorMessage = error instanceof Error ? error.message : 'Неизвестная ошибка';
567
+ this.dispatchEvent('error', { message: `Ошибка при обработке сообщения: ${errorMessage}` });
568
+ }
569
+ }
570
+ /**
571
+ * Отправляет событие Socket.IO
572
+ * @param {string} event Название события
573
+ * @param {any} data Данные события
574
+ * @param {string} [namespace=''] Namespace для Socket.IO
575
+ * @returns {boolean} Успешно ли отправлено сообщение
576
+ */
577
+ sendSocketIOEvent(event, data, namespace = '') {
578
+ // Формируем объект для отправки через метод send
579
+ const socketIOMessage = {
580
+ type: '2',
581
+ event,
582
+ data,
583
+ nsp: namespace
584
+ };
585
+ return this.send(socketIOMessage);
586
+ }
587
+ /**
588
+ * Обработка подключения к пространству имен Socket.IO
589
+ */
590
+ handleNamespaceConnection() {
591
+ if (!this.namespace) {
592
+ return;
593
+ }
594
+ // Отправляем запрос на подключение к namespace
595
+ this.logger('info', `Подключение к пространству имен ${this.namespace}`);
596
+ const connectMessage = `40${this.namespace}`;
597
+ if (this.webSocket && this.webSocket.readyState === WebSocket.OPEN) {
598
+ this.webSocket.send(connectMessage);
599
+ }
600
+ else {
601
+ this.messageQueue.push(connectMessage);
602
+ }
603
+ }
604
+ /**
605
+ * Отправка аутентификационного сообщения
606
+ */
607
+ authenticate() {
608
+ if (!this.options.apiKey) {
609
+ this.logger('warn', 'API ключ не предоставлен, аутентификация пропущена');
610
+ return;
611
+ }
612
+ const apiKeySafe = this.options.apiKey.length > 8
613
+ ? `${this.options.apiKey.substring(0, 4)}...${this.options.apiKey.substring(this.options.apiKey.length - 4)}`
614
+ : '[короткий ключ]';
615
+ this.logger('info', 'Отправка аутентификационного сообщения', {
616
+ namespace: this.namespace,
617
+ apiKey: apiKeySafe,
618
+ authenticated: this.authenticated,
619
+ socketState: this.webSocket ? this.webSocket.readyState : 'нет соединения'
620
+ });
621
+ // Отправляем событие authenticate с API ключом
622
+ this.sendSocketIOEvent('authenticate', { apiKey: this.options.apiKey }, this.namespace);
623
+ }
624
+ /**
625
+ * Обработка открытия соединения Socket.IO
626
+ * @param data Данные открытия соединения
627
+ */
628
+ handleSocketIOOpen(data) {
629
+ this.logger('info', 'Socket.IO соединение открыто', {
630
+ pingInterval: data.pingInterval,
631
+ pingTimeout: data.pingTimeout,
632
+ sid: data.sid
633
+ });
634
+ // Если указано пространство имен, подключаемся к нему
635
+ if (this.namespace) {
636
+ this.handleNamespaceConnection();
637
+ }
638
+ // Добавляем обработчик успешного подключения к пространству имен
639
+ this.on('socket.io_event', (eventData) => {
640
+ // Если это событие connect и мы еще не аутентифицированы
641
+ if (!this.authenticated && eventData.event === 'connect') {
642
+ this.logger('info', `Подключено к пространству имен ${eventData.namespace || '/'}`, {
643
+ namespace: eventData.namespace || '/',
644
+ event: eventData.event,
645
+ data: eventData.data
646
+ });
647
+ // Аутентифицируем соединение
648
+ this.authenticate();
649
+ this.authenticated = true;
650
+ }
651
+ });
652
+ }
359
653
  }
360
654
  exports.WebSocketClient = WebSocketClient;
361
655
  //# sourceMappingURL=websocket-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-client.js","sourceRoot":"","sources":["../../../src/utils/websocket-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket-client.js","sourceRoot":"","sources":["../../../src/utils/websocket-client.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ import { ChatApi } from './api/chat-api.js';
10
10
  import { ModelsApi } from './api/models-api.js';
11
11
  import { DependenciesApi } from './api/dependencies-api.js';
12
12
  // Версия SDK
13
- const SDK_VERSION = '1.4.0';
13
+ const SDK_VERSION = '1.5.0';
14
14
  /**
15
15
  * Определение типа среды выполнения
16
16
  * @returns 'browser' | 'node' | 'unknown'
@@ -394,6 +394,99 @@ export class CodeSolverSDK {
394
394
  this.dispose();
395
395
  return Promise.resolve();
396
396
  }
397
+ /**
398
+ * Выполняет запрос к API для генерации рассуждения с использованием Anthropic API
399
+ * с поддержкой потоковой передачи данных через WebSocket
400
+ *
401
+ * @param {ReasoningOptions} options Опции для рассуждения
402
+ * @param {AnthropicStreamCallbacks} callbacks Коллбэки для обработки событий
403
+ * @returns {Promise<void>} Promise без результата
404
+ */
405
+ async executeReasoning(options, callbacks) {
406
+ try {
407
+ // Подключаемся к WebSocket серверу если еще не подключены
408
+ if (!this.isConnected()) {
409
+ await this.connect();
410
+ }
411
+ // Получаем WebSocket клиент
412
+ const wsClient = this.getWebSocketClient();
413
+ // Подписываемся на события
414
+ this.setupAnthropicEventHandlers(wsClient, callbacks);
415
+ // Отправляем запрос на выполнение рассуждения
416
+ wsClient.sendToReasoning('execute_reasoning', {
417
+ projectId: options.projectId,
418
+ prompt: options.query,
419
+ level: options.level || 'STANDARD',
420
+ type: options.type || 'THINKING',
421
+ currentFile: options.currentFilePath,
422
+ selection: options.selection,
423
+ options: {
424
+ modelProvider: options.options?.modelProvider || 'anthropic',
425
+ modelName: options.options?.modelName || 'claude-3-sonnet-20240229',
426
+ streamResponse: true,
427
+ ...(options.options || {})
428
+ }
429
+ });
430
+ this.logger.debug(`Запрос на выполнение рассуждения отправлен: ${JSON.stringify({
431
+ projectId: options.projectId,
432
+ prompt: options.query.substring(0, 50) + '...',
433
+ level: options.level
434
+ })}`);
435
+ }
436
+ catch (error) {
437
+ this.logger.error(`Ошибка при отправке запроса на рассуждение: ${error instanceof Error ? error.message : String(error)}`);
438
+ callbacks.onError?.({
439
+ code: 'SDK_ERROR',
440
+ message: `Ошибка при отправке запроса: ${error instanceof Error ? error.message : String(error)}`
441
+ });
442
+ throw error;
443
+ }
444
+ }
445
+ /**
446
+ * Настраивает обработчики событий Anthropic API
447
+ * @param {CodeSolverWebSocketClient} wsClient WebSocket клиент
448
+ * @param {AnthropicStreamCallbacks} callbacks Коллбэки для обработки событий
449
+ * @private
450
+ */
451
+ setupAnthropicEventHandlers(wsClient, callbacks) {
452
+ // Регистрируем обработчики для всех типов событий
453
+ wsClient.on('message_start', (data) => {
454
+ callbacks.onMessageStart?.(data);
455
+ callbacks.onAny?.('message_start', data);
456
+ }, WebSocketNamespace.REASONING);
457
+ wsClient.on('thinking_block_start', (data) => {
458
+ callbacks.onThinkingStart?.(data);
459
+ callbacks.onAny?.('thinking_block_start', data);
460
+ }, WebSocketNamespace.REASONING);
461
+ wsClient.on('thinking_block_delta', (data) => {
462
+ callbacks.onThinkingDelta?.(data);
463
+ callbacks.onAny?.('thinking_block_delta', data);
464
+ }, WebSocketNamespace.REASONING);
465
+ wsClient.on('thinking_block_stop', (data) => {
466
+ callbacks.onThinkingStop?.(data);
467
+ callbacks.onAny?.('thinking_block_stop', data);
468
+ }, WebSocketNamespace.REASONING);
469
+ wsClient.on('content_block_start', (data) => {
470
+ callbacks.onContentStart?.(data);
471
+ callbacks.onAny?.('content_block_start', data);
472
+ }, WebSocketNamespace.REASONING);
473
+ wsClient.on('content_block_delta', (data) => {
474
+ callbacks.onContentDelta?.(data);
475
+ callbacks.onAny?.('content_block_delta', data);
476
+ }, WebSocketNamespace.REASONING);
477
+ wsClient.on('content_block_stop', (data) => {
478
+ callbacks.onContentStop?.(data);
479
+ callbacks.onAny?.('content_block_stop', data);
480
+ }, WebSocketNamespace.REASONING);
481
+ wsClient.on('message_stop', (data) => {
482
+ callbacks.onMessageStop?.(data);
483
+ callbacks.onAny?.('message_stop', data);
484
+ }, WebSocketNamespace.REASONING);
485
+ wsClient.on('error', (data) => {
486
+ callbacks.onError?.(data);
487
+ callbacks.onAny?.('error', data);
488
+ }, WebSocketNamespace.REASONING);
489
+ }
397
490
  }
398
491
  /** Глобальный обработчик ошибок */
399
492
  CodeSolverSDK.errorHandler = null;