solver-sdk 1.7.0 → 1.7.2

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 (36) hide show
  1. package/README.md +69 -98
  2. package/dist/cjs/api/chat-api.js +263 -6
  3. package/dist/cjs/api/chat-api.js.map +1 -1
  4. package/dist/cjs/api/reasoning-api.js +62 -0
  5. package/dist/cjs/api/reasoning-api.js.map +1 -1
  6. package/dist/cjs/constants/websocket-events.constants.js +17 -0
  7. package/dist/cjs/constants/websocket-events.constants.js.map +1 -1
  8. package/dist/cjs/utils/http-client.js +7 -0
  9. package/dist/cjs/utils/http-client.js.map +1 -1
  10. package/dist/cjs/utils/websocket-client.js +37 -10
  11. package/dist/cjs/utils/websocket-client.js.map +1 -1
  12. package/dist/esm/api/chat-api.js +230 -6
  13. package/dist/esm/api/chat-api.js.map +1 -1
  14. package/dist/esm/api/reasoning-api.js +62 -0
  15. package/dist/esm/api/reasoning-api.js.map +1 -1
  16. package/dist/esm/constants/websocket-events.constants.js +17 -0
  17. package/dist/esm/constants/websocket-events.constants.js.map +1 -1
  18. package/dist/esm/utils/http-client.js +7 -0
  19. package/dist/esm/utils/http-client.js.map +1 -1
  20. package/dist/esm/utils/websocket-client.js +37 -10
  21. package/dist/esm/utils/websocket-client.js.map +1 -1
  22. package/dist/types/api/chat-api.d.ts +72 -3
  23. package/dist/types/api/chat-api.d.ts.map +1 -1
  24. package/dist/types/api/reasoning-api.d.ts +8 -0
  25. package/dist/types/api/reasoning-api.d.ts.map +1 -1
  26. package/dist/types/constants/websocket-events.constants.d.ts +11 -1
  27. package/dist/types/constants/websocket-events.constants.d.ts.map +1 -1
  28. package/dist/types/interfaces/http-client.d.ts +1 -1
  29. package/dist/types/interfaces/http-client.d.ts.map +1 -1
  30. package/dist/types/interfaces/sdk-options.d.ts +54 -0
  31. package/dist/types/interfaces/sdk-options.d.ts.map +1 -1
  32. package/dist/types/utils/http-client.d.ts +5 -0
  33. package/dist/types/utils/http-client.d.ts.map +1 -1
  34. package/dist/types/utils/websocket-client.d.ts +6 -0
  35. package/dist/types/utils/websocket-client.d.ts.map +1 -1
  36. package/package.json +2 -1
package/README.md CHANGED
@@ -14,6 +14,7 @@ SDK для интеграции с Code Solver Backend API. Поддержива
14
14
  - Поддержка Server-Sent Events (SSE)
15
15
  - Инкрементальная индексация отдельных файлов
16
16
  - Обработка ошибок и повторные попытки
17
+ - Поддержка региональных эндпоинтов Anthropic API
17
18
  - Полная документация API
18
19
 
19
20
  ## Установка
@@ -521,6 +522,8 @@ console.log(response.choices[0].message.content);
521
522
 
522
523
  ### Использование через WebSocket (потоковое получение событий мышления)
523
524
 
525
+ В версии 1.7.0 SDK добавлена полная поддержка событий потокового мышления в соответствии с документацией Anthropic. Теперь вы можете получать события `thinking_delta`, `text_delta`, `signature_delta` и другие в режиме реального времени.
526
+
524
527
  ```javascript
525
528
  const { CodeSolverSDK } = require('solver-sdk');
526
529
 
@@ -530,32 +533,44 @@ async function streamThinking() {
530
533
  apiKey: 'ваш-ключ-api'
531
534
  });
532
535
 
533
- // Получаем WebSocket клиент
534
- const wsClient = sdk.getWebSocketClient();
536
+ // Сообщения для отправки
537
+ const messages = [
538
+ { role: 'user', content: 'Объясни, как работает blockchain' }
539
+ ];
535
540
 
536
- // Обработчик событий мышления
537
- const handleThinking = (data) => {
538
- console.log('Новый шаг мышления:', data.content);
541
+ // Опции запроса
542
+ const options = {
543
+ model: 'claude-3-7-sonnet-20240229',
544
+ temperature: 0.7,
545
+ thinking: true
546
+ };
547
+
548
+ // Обработчик событий WebSocket
549
+ const handleEvent = (eventType, data) => {
550
+ switch(eventType) {
551
+ case 'thinking_start':
552
+ console.log('Начало размышлений:');
553
+ break;
554
+
555
+ case 'thinking_delta':
556
+ process.stdout.write(data.text); // Потоковый вывод размышлений
557
+ break;
558
+
559
+ case 'text_delta':
560
+ process.stdout.write(data.text); // Потоковый вывод итогового текста
561
+ break;
562
+ }
539
563
  };
540
564
 
541
565
  try {
542
- // Подключаемся к WebSocket серверу с обработчиком мышления
543
- const reasoningId = await wsClient.connectToThinkingSession('system', handleThinking);
544
-
545
- // Создаем рассуждение
546
- const result = await sdk.reasoning.createReasoning({
547
- projectId: 'project-123',
548
- query: 'Объясни асинхронное программирование в JavaScript',
549
- options: {
550
- thinking: true,
551
- socketId: wsClient.getSocketId()
552
- }
553
- });
566
+ // Отправляем запрос с потоковым мышлением
567
+ const response = await sdk.chat.streamChatWithThinking(
568
+ messages,
569
+ options,
570
+ handleEvent
571
+ );
554
572
 
555
- // Запускаем рассуждение
556
- await sdk.reasoning.startReasoning(result.id);
557
-
558
- console.log('Рассуждение запущено, шаги мышления будут приходить через WebSocket');
573
+ console.log(`Запрос успешно отправлен. Socket ID: ${response.socketId}`);
559
574
  } catch (error) {
560
575
  console.error('Ошибка:', error);
561
576
  }
@@ -564,31 +579,48 @@ async function streamThinking() {
564
579
  streamThinking();
565
580
  ```
566
581
 
582
+ #### Поддерживаемые события WebSocket
583
+
584
+ SDK теперь поддерживает полный набор событий из документации Anthropic:
585
+
586
+ - `message_start` - начало сообщения от модели
587
+ - `content_block_start` - начало блока контента (текст или thinking)
588
+ - `thinking_delta` - фрагмент размышления модели
589
+ - `text_delta` - фрагмент итогового текста
590
+ - `signature_delta` - подпись блока размышлений
591
+ - `content_block_stop` - завершение блока контента
592
+ - `message_delta` - изменения верхнего уровня сообщения
593
+ - `message_stop` - завершение сообщения
594
+ - `ping` - событие для поддержания соединения
595
+ - `tool_use_start` - начало использования инструмента
596
+ - `input_json_delta` - фрагмент JSON входных данных для инструмента
597
+
567
598
  ### Примеры использования
568
599
 
569
600
  Полные примеры кода можно найти в директории `examples`:
570
- - `examples/chat-example.js` - пример использования thinking в чате
601
+ - `examples/chat-example.js` - пример использования thinking в обычном чате
571
602
  - `examples/thinking-example.js` - пример использования thinking через WebSocket
572
603
 
573
604
  ### Параметры режима мышления
574
605
 
575
- Параметр `level` позволяет настроить детализацию процесса мышления:
576
-
577
- - `CONCISE` - краткие шаги рассуждения
578
- - `STANDARD` - стандартный уровень детализации (по умолчанию)
579
- - `DETAILED` - подробное рассуждение с промежуточными шагами
580
- - `VERBOSE` - максимальная детализация процесса мышления
606
+ Вы можете управлять режимом мышления с помощью следующих параметров:
581
607
 
582
608
  ```javascript
583
- const result = await sdk.reasoning.createReasoning({
584
- projectId: 'project-123',
585
- query: 'Объясни, как работает blockchain',
586
- level: 'DETAILED', // Уровень детализации мышления
587
- options: {
588
- thinking: true,
589
- socketId: wsClient.getSocketId()
590
- }
591
- });
609
+ // Активация режима thinking
610
+ const options = {
611
+ model: 'claude-3-7-sonnet-20240229',
612
+ thinking: true, // Активируем режим мышления
613
+ temperature: 0.7,
614
+ maxTokens: 4096
615
+ };
616
+
617
+ // Использование с автоматическим созданием WebSocket соединения
618
+ const response = await sdk.chat.streamChatWithThinking(messages, options, eventHandler);
619
+
620
+ // Или с существующим socketId
621
+ const connectResponse = await sdk.chat.connectWebSocket();
622
+ options.socketId = connectResponse.socketId;
623
+ const response = await sdk.chat.streamChatWithThinking(messages, options, eventHandler);
592
624
  ```
593
625
 
594
626
  ## Обновление до версии 1.6.1
@@ -671,64 +703,3 @@ cd test
671
703
  ### Примечание по совместимости
672
704
 
673
705
  При использовании SDK в браузере и Node.js окружении могут быть различия в работе некоторых API, особенно WebSocket. Для Node.js рекомендуется использовать пакет `ws` и настроить соответствующие параметры в опциях SDK.
674
-
675
-
676
- ### Важные изменения
677
-
678
- Публичный API SDK остался без изменений, но внутренняя логика работы с WebSocket была значительно улучшена.
679
- Если вы столкнулись с проблемами при подключении к серверу WebSocket или получении данных через Socket.IO,
680
- обновление до версии 1.6.1 должно их решить.
681
-
682
- ## Обновления и важные изменения
683
-
684
- ### Синхронизация WebSocket событий (v1.6.3)
685
-
686
- Произведена полная синхронизация констант WebSocket событий между SDK и бэкендом. Добавлена поддержка новых событий:
687
-
688
- - `REASONING_CREATED` (`reasoning:created`)
689
- - `JOINED_REASONING` (`joined_reasoning`)
690
- - `JOIN_RESPONSE` (`join_response`)
691
- - `UPDATE_CONTEXT_OPTIONS` (`update_context_options`)
692
- - `ESTIMATE_CONTEXT` (`estimate_context`)
693
- - `CONTEXT_OPTIONS_UPDATED` (`context_options_updated`)
694
- - `CONTEXT_ESTIMATION` (`context_estimation`)
695
- - `CHAT_REQUEST` (`chat_request`)
696
- - `CHAT_STARTED` (`chat_started`)
697
- - `MESSAGE_START` (`message_start`)
698
- - `CONTENT_BLOCK_START` (`content_block_start`)
699
- - `THINKING_DELTA` (`thinking_delta`)
700
- - `TEXT_DELTA` (`text_delta`)
701
- - `CONTENT_BLOCK_STOP` (`content_block_stop`)
702
- - `MESSAGE_STOP` (`message_stop`)
703
- - `TYPESCRIPT_ERRORS` (`typescript_errors`)
704
- - `TYPESCRIPT_ERRORS_RECEIVED` (`typescript_errors_received`)
705
- - `TEST_MODULES_CREATED` (`test_modules_created`)
706
- - `CREATE_TEST_MODULES` (`create_test_modules`)
707
- - `CONNECTION_PING` (`connection_ping`)
708
- - `CONNECTION_PONG` (`connection_pong`)
709
- - `RECONNECT_TOKEN` (`reconnect_token`)
710
- - `JOIN` (`join`)
711
- - `JOINED` (`joined`)
712
-
713
- ### Улучшенная совместимость с модульными системами
714
-
715
- Добавлены тесты совместимости для проверки работы SDK в различных окружениях:
716
- - CommonJS (для Node.js)
717
- - ESM (для современного JavaScript)
718
-
719
- Для запуска тестов используйте:
720
-
721
- ```bash
722
- cd test
723
- ./run-tests.sh
724
- ```
725
-
726
- ### Результаты тестирования
727
-
728
- ✅ **CommonJS тесты**: Успешно пройдены
729
- ✅ **ESM тесты**: Успешно пройдены через ESM/CommonJS адаптер
730
- ✅ **WebSocket событий**: Все 62 события синхронизированы между бэкендом и SDK
731
-
732
- ### Примечание по совместимости
733
-
734
- При использовании SDK в браузере и Node.js окружении могут быть различия в работе некоторых API, особенно WebSocket. Для Node.js рекомендуется использовать пакет `ws` и настроить соответствующие параметры в опциях SDK.
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.ChatApi = void 0;
4
37
  /**
@@ -36,7 +69,8 @@ class ChatApi {
36
69
  stopSequences: options?.stopSequences,
37
70
  functions: options?.functions,
38
71
  functionCall: options?.functionCall,
39
- thinking: options?.thinking
72
+ thinking: options?.thinking,
73
+ region: options?.region
40
74
  });
41
75
  }
42
76
  /**
@@ -54,8 +88,11 @@ class ChatApi {
54
88
  */
55
89
  async checkAvailability() {
56
90
  try {
57
- // Используем обычный GET запрос с минимальными данными
58
- await this.httpClient.get('/api/v1/chat');
91
+ // Используем HEAD запрос вместо GET, так как эндпоинт поддерживает только HEAD/POST
92
+ await this.httpClient.request({
93
+ method: 'HEAD',
94
+ url: '/api/v1/chat'
95
+ });
59
96
  return true;
60
97
  }
61
98
  catch (error) {
@@ -63,16 +100,77 @@ class ChatApi {
63
100
  }
64
101
  }
65
102
  /**
66
- * Отправляет одиночный запрос к модели (упрощенный интерфейс)
103
+ * Отправляет сообщение в чат и получает ответ от модели
104
+ * с автоматическим переключением между регионами при ошибках перегрузки
105
+ * @param {ChatMessage[]} messages Массив сообщений для отправки
106
+ * @param {ChatOptions} [options] Дополнительные параметры
107
+ * @returns {Promise<ChatResponse>} Ответ модели
108
+ */
109
+ async chatWithRegionFailover(messages, options) {
110
+ // Список всех доступных регионов
111
+ const allRegions = ['us-east-1', 'eu-west-1', 'ap-southeast-2'];
112
+ // Начинаем с региона из параметров, или первого в списке
113
+ let startRegionIndex = 0;
114
+ if (options?.region) {
115
+ const regionIndex = allRegions.indexOf(options.region);
116
+ if (regionIndex !== -1) {
117
+ startRegionIndex = regionIndex;
118
+ }
119
+ }
120
+ // Реорганизуем массив, чтобы начать с указанного региона
121
+ const regions = [
122
+ ...allRegions.slice(startRegionIndex),
123
+ ...allRegions.slice(0, startRegionIndex)
124
+ ];
125
+ // Последняя ошибка, будет возвращена если все регионы недоступны
126
+ let lastError = null;
127
+ // Пробуем каждый регион по очереди
128
+ for (let i = 0; i < regions.length; i++) {
129
+ const region = regions[i];
130
+ try {
131
+ console.log(`Попытка запроса к Anthropic API в регионе ${region}`);
132
+ // Копируем опции и устанавливаем текущий регион
133
+ const regionOptions = {
134
+ ...options,
135
+ region
136
+ };
137
+ // Отправляем запрос с конкретным регионом
138
+ return await this.chat(messages, regionOptions);
139
+ }
140
+ catch (error) {
141
+ lastError = error;
142
+ // Проверяем, является ли ошибка ошибкой перегрузки (код 529)
143
+ const isOverloadError = error.status === 529 ||
144
+ error.code === 529 ||
145
+ (error.response?.status === 529) ||
146
+ (error.message && error.message.includes('overloaded')) ||
147
+ (error.error?.type === 'overloaded_error');
148
+ if (isOverloadError) {
149
+ console.warn(`Регион ${region} перегружен, пробуем следующий регион`);
150
+ // Продолжаем цикл и пробуем следующий регион
151
+ continue;
152
+ }
153
+ else {
154
+ // Если ошибка не связана с перегрузкой, прекращаем попытки
155
+ console.error(`Ошибка в регионе ${region}, не связанная с перегрузкой:`, error);
156
+ throw error;
157
+ }
158
+ }
159
+ }
160
+ // Если мы здесь, значит все регионы перегружены
161
+ throw lastError || new Error('Все регионы Anthropic API перегружены, попробуйте позже');
162
+ }
163
+ /**
164
+ * Отправляет одиночный запрос к модели с автоматическим переключением регионов
67
165
  * @param {string} prompt Запрос к модели
68
166
  * @param {ChatOptions} [options] Дополнительные параметры
69
167
  * @returns {Promise<string>} Текстовый ответ модели
70
168
  */
71
- async sendPrompt(prompt, options) {
169
+ async sendPromptWithRegionFailover(prompt, options) {
72
170
  const messages = [
73
171
  { role: 'user', content: prompt }
74
172
  ];
75
- const response = await this.chat(messages, options);
173
+ const response = await this.chatWithRegionFailover(messages, options);
76
174
  if (response.choices && response.choices.length > 0) {
77
175
  return response.choices[0].message.content;
78
176
  }
@@ -240,6 +338,165 @@ class ChatApi {
240
338
  ];
241
339
  yield* this.streamChat(messages, options);
242
340
  }
341
+ /**
342
+ * Создает новое WebSocket соединение для потокового чата
343
+ * @returns {Promise<WebSocketConnectResponse>} Информация о созданном соединении
344
+ */
345
+ async connectWebSocket() {
346
+ return this.httpClient.post('/api/v1/chat/connect');
347
+ }
348
+ /**
349
+ * Отправляет сообщение в чат в потоковом режиме с поддержкой thinking через WebSocket
350
+ * @param {ChatMessage[]} messages Массив сообщений для отправки
351
+ * @param {ChatStreamOptions} [options] Дополнительные параметры
352
+ * @param {(eventType: string, data: any) => void} [onEvent] Обработчик событий WebSocket
353
+ * @returns {Promise<ThinkingStreamResponse>} Информация о потоковом запросе
354
+ */
355
+ async streamChatWithThinking(messages, options = {}, onEvent) {
356
+ if (!messages || messages.length === 0) {
357
+ throw new Error('Необходимо предоставить хотя бы одно сообщение');
358
+ }
359
+ try {
360
+ // 1. Создаем параметры для запроса
361
+ const socketId = `socket_${Date.now()}_${this.generateId(10)}`;
362
+ let socket = null;
363
+ // 2. Подключаемся к WebSocket и ждем успешного подключения
364
+ if (onEvent) {
365
+ await new Promise((resolve, reject) => {
366
+ try {
367
+ const socketOptions = {
368
+ transports: ['websocket'],
369
+ reconnection: true,
370
+ reconnectionAttempts: 3,
371
+ reconnectionDelay: 1000,
372
+ timeout: 10000,
373
+ query: {
374
+ socketId: socketId,
375
+ isTest: 'true',
376
+ testToken: options.testToken || 'test-token'
377
+ }
378
+ };
379
+ // Динамически импортируем socket.io-client
380
+ Promise.resolve().then(() => __importStar(require('socket.io-client'))).then((socketIoModule) => {
381
+ const io = socketIoModule.default || socketIoModule.io;
382
+ if (!io) {
383
+ reject(new Error('Не удалось импортировать socket.io-client'));
384
+ return;
385
+ }
386
+ // Создаем соединение с сервером WebSocket
387
+ const serverUrl = this.httpClient.getBaseURL() || 'http://localhost:3000';
388
+ socket = io(`${serverUrl}/reasoning`, socketOptions);
389
+ // Устанавливаем обработчики событий
390
+ socket.on('connect', () => {
391
+ console.log(`[SDK] WebSocket подключен: ${socket.id}, задано socketId: ${socketId}`);
392
+ // При подключении отправляем событие аутентификации
393
+ socket.emit('authenticate', {
394
+ isTest: true,
395
+ socketId: socketId,
396
+ testToken: options.testToken || 'test-token'
397
+ });
398
+ // Отправляем событие присоединения к комнате с ID
399
+ socket.emit('join_room', { roomId: socketId });
400
+ // Вызываем обработчик события connect
401
+ if (onEvent) {
402
+ onEvent('connect', { socketId });
403
+ }
404
+ // Разрешаем промис, продолжаем выполнение
405
+ resolve();
406
+ });
407
+ // Обработчик сообщений от сервера
408
+ socket.on('message', (data) => {
409
+ if (onEvent && data && data.type) {
410
+ onEvent(data.type, data.data || data);
411
+ }
412
+ });
413
+ // Обработчик ошибок
414
+ socket.on('error', (error) => {
415
+ console.error('[SDK] WebSocket error:', error);
416
+ if (onEvent) {
417
+ onEvent('error', { message: error.message || 'Unknown WebSocket error', code: error.code });
418
+ }
419
+ });
420
+ // Обработчик отключения
421
+ socket.on('disconnect', (reason) => {
422
+ console.log(`[SDK] WebSocket отключен: ${reason}`);
423
+ if (onEvent) {
424
+ onEvent('disconnect', { reason });
425
+ }
426
+ });
427
+ // Обработчики для событий аутентификации
428
+ socket.on('authenticated', (data) => {
429
+ console.log('[SDK] Аутентификация успешна', data);
430
+ if (onEvent) {
431
+ onEvent('authenticated', data);
432
+ }
433
+ });
434
+ socket.on('authentication_error', (data) => {
435
+ console.error('[SDK] Ошибка аутентификации:', data);
436
+ if (onEvent) {
437
+ onEvent('error', { message: 'Ошибка аутентификации: ' + (data.message || 'Unknown error'), code: 'AUTH_ERROR' });
438
+ }
439
+ reject(new Error('Ошибка аутентификации: ' + (data.message || 'Unknown error')));
440
+ });
441
+ // Регистрируем обработчики для всех событий потока мышления
442
+ ['message_start', 'content_block_start', 'thinking_start', 'thinking_delta',
443
+ 'text_delta', 'content_block_stop', 'message_stop', 'done'].forEach(eventType => {
444
+ socket.on(eventType, (data) => {
445
+ if (onEvent) {
446
+ onEvent(eventType, data);
447
+ }
448
+ });
449
+ });
450
+ // Обработчик таймаута соединения
451
+ setTimeout(() => {
452
+ if (socket && !socket.connected) {
453
+ reject(new Error('WebSocket connection timeout'));
454
+ }
455
+ }, 10000);
456
+ }).catch(error => {
457
+ const errorMessage = error instanceof Error ? error.message : String(error);
458
+ reject(new Error(`Ошибка импорта socket.io-client: ${errorMessage}`));
459
+ });
460
+ }
461
+ catch (error) {
462
+ const errorMessage = error instanceof Error ? error.message : String(error);
463
+ reject(new Error(`Ошибка WebSocket: ${errorMessage}`));
464
+ }
465
+ });
466
+ }
467
+ // 3. Отправляем HTTP запрос для инициации потока
468
+ return this.httpClient.post('/api/v1/chat/stream-chat', {
469
+ model: options.model || 'claude-3-7-sonnet-20240229',
470
+ messages,
471
+ temperature: options.temperature,
472
+ maxTokens: options.maxTokens,
473
+ socketId: socketId,
474
+ thinking: true,
475
+ region: options.region
476
+ }, {
477
+ 'X-Socket-ID': socketId
478
+ });
479
+ }
480
+ catch (error) {
481
+ if (options.onError) {
482
+ options.onError(error);
483
+ }
484
+ throw error;
485
+ }
486
+ }
487
+ /**
488
+ * Генерирует случайный ID указанной длины
489
+ * @param {number} length Длина ID
490
+ * @returns {string} Сгенерированный ID
491
+ */
492
+ generateId(length) {
493
+ const chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
494
+ let result = '';
495
+ for (let i = 0; i < length; i++) {
496
+ result += chars.charAt(Math.floor(Math.random() * chars.length));
497
+ }
498
+ return result;
499
+ }
243
500
  }
244
501
  exports.ChatApi = ChatApi;
245
502
  //# sourceMappingURL=chat-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-api.js","sourceRoot":"","sources":["../../../src/api/chat-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-api.js","sourceRoot":"","sources":["../../../src/api/chat-api.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,68 @@ class ReasoningApi {
43
43
  async createReasoning(options) {
44
44
  return this.httpClient.post('/api/v1/reasoning/create', options);
45
45
  }
46
+ /**
47
+ * Создает новое рассуждение с автоматическим переключением между регионами при ошибке перегрузки
48
+ * @param {ReasoningOptions} options Опции для рассуждения
49
+ * @returns {Promise<Reasoning>} Созданное рассуждение
50
+ */
51
+ async createReasoningWithRegionFailover(options) {
52
+ // Список всех доступных регионов
53
+ const allRegions = ['us-east-1', 'eu-west-1', 'ap-southeast-2'];
54
+ // Начинаем с региона из параметров, или первого в списке
55
+ let startRegionIndex = 0;
56
+ if (options.options?.region) {
57
+ const regionIndex = allRegions.indexOf(options.options.region);
58
+ if (regionIndex !== -1) {
59
+ startRegionIndex = regionIndex;
60
+ }
61
+ }
62
+ // Реорганизуем массив, чтобы начать с указанного региона
63
+ const regions = [
64
+ ...allRegions.slice(startRegionIndex),
65
+ ...allRegions.slice(0, startRegionIndex)
66
+ ];
67
+ // Последняя ошибка, будет возвращена если все регионы недоступны
68
+ let lastError = null;
69
+ // Пробуем каждый регион по очереди
70
+ for (let i = 0; i < regions.length; i++) {
71
+ const region = regions[i];
72
+ try {
73
+ console.log(`Попытка запроса рассуждения к Anthropic API в регионе ${region}`);
74
+ // Копируем опции и устанавливаем текущий регион
75
+ const regionOptions = {
76
+ ...options,
77
+ options: {
78
+ ...(options.options || {}),
79
+ region
80
+ }
81
+ };
82
+ // Отправляем запрос с конкретным регионом
83
+ return await this.createReasoning(regionOptions);
84
+ }
85
+ catch (error) {
86
+ lastError = error;
87
+ // Проверяем, является ли ошибка ошибкой перегрузки (код 529)
88
+ const isOverloadError = error.status === 529 ||
89
+ error.code === 529 ||
90
+ (error.response?.status === 529) ||
91
+ (error.message && error.message.includes('overloaded')) ||
92
+ (error.error?.type === 'overloaded_error');
93
+ if (isOverloadError) {
94
+ console.warn(`Регион ${region} перегружен, пробуем следующий регион для рассуждения`);
95
+ // Продолжаем цикл и пробуем следующий регион
96
+ continue;
97
+ }
98
+ else {
99
+ // Если ошибка не связана с перегрузкой, прекращаем попытки
100
+ console.error(`Ошибка в регионе ${region}, не связанная с перегрузкой:`, error);
101
+ throw error;
102
+ }
103
+ }
104
+ }
105
+ // Если мы здесь, значит все регионы перегружены
106
+ throw lastError || new Error('Все регионы Anthropic API перегружены, попробуйте создать рассуждение позже');
107
+ }
46
108
  /**
47
109
  * Запускает рассуждение
48
110
  * @param {string} reasoningId ID рассуждения