solver-sdk 3.1.10 → 3.1.15

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 (33) hide show
  1. package/dist/cjs/api/chat-api/index.js +228 -135
  2. package/dist/cjs/api/chat-api/index.js.map +1 -1
  3. package/dist/cjs/api/chat-api/interfaces.js.map +1 -1
  4. package/dist/cjs/api/chat-api/stream-utils.js +133 -344
  5. package/dist/cjs/api/chat-api/stream-utils.js.map +1 -1
  6. package/dist/cjs/code-solver-sdk.js +10 -10
  7. package/dist/cjs/code-solver-sdk.js.map +1 -1
  8. package/dist/cjs/constants/anthropic.js +43 -0
  9. package/dist/cjs/constants/anthropic.js.map +1 -0
  10. package/dist/cjs/utils/message-helpers.js +1 -1
  11. package/dist/cjs/utils/message-helpers.js.map +1 -1
  12. package/dist/esm/api/chat-api/index.js +228 -135
  13. package/dist/esm/api/chat-api/index.js.map +1 -1
  14. package/dist/esm/api/chat-api/interfaces.js.map +1 -1
  15. package/dist/esm/api/chat-api/stream-utils.js +131 -344
  16. package/dist/esm/api/chat-api/stream-utils.js.map +1 -1
  17. package/dist/esm/code-solver-sdk.js +10 -10
  18. package/dist/esm/code-solver-sdk.js.map +1 -1
  19. package/dist/esm/constants/anthropic.js +38 -0
  20. package/dist/esm/constants/anthropic.js.map +1 -0
  21. package/dist/esm/utils/message-helpers.js +1 -1
  22. package/dist/esm/utils/message-helpers.js.map +1 -1
  23. package/dist/types/api/chat-api/index.d.ts +8 -1
  24. package/dist/types/api/chat-api/index.d.ts.map +1 -1
  25. package/dist/types/api/chat-api/interfaces.d.ts +7 -0
  26. package/dist/types/api/chat-api/interfaces.d.ts.map +1 -1
  27. package/dist/types/api/chat-api/models.d.ts +34 -25
  28. package/dist/types/api/chat-api/models.d.ts.map +1 -1
  29. package/dist/types/api/chat-api/stream-utils.d.ts +22 -18
  30. package/dist/types/api/chat-api/stream-utils.d.ts.map +1 -1
  31. package/dist/types/constants/anthropic.d.ts +28 -0
  32. package/dist/types/constants/anthropic.d.ts.map +1 -0
  33. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"code-solver-sdk.js","sourceRoot":"","sources":["../../src/code-solver-sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-solver-sdk.js","sourceRoot":"","sources":["../../src/code-solver-sdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ANTHROPIC_CONSTANTS = void 0;
4
+ exports.shouldUseInterleavedThinking = shouldUseInterleavedThinking;
5
+ exports.getBetaHeader = getBetaHeader;
6
+ /**
7
+ * 🧠 Константы для Anthropic API - централизованный источник истины
8
+ * Должны совпадать с backend константами в AnthropicThinkingValidatorService
9
+ */
10
+ exports.ANTHROPIC_CONSTANTS = {
11
+ /** Beta header для interleaved thinking режима */
12
+ INTERLEAVED_THINKING_BETA: 'interleaved-thinking-2025-05-14',
13
+ /** Обязательная температура для thinking режима */
14
+ THINKING_TEMPERATURE: 1.0,
15
+ /** Минимальный бюджет токенов для thinking */
16
+ MIN_THINKING_BUDGET: 1024,
17
+ /** Ограничения top_p для thinking режима */
18
+ THINKING_TOP_P_MIN: 0.95,
19
+ THINKING_TOP_P_MAX: 1.0,
20
+ /** Модель по умолчанию */
21
+ DEFAULT_MODEL: 'claude-sonnet-4-20250514',
22
+ /** Максимальное количество токенов по умолчанию */
23
+ DEFAULT_MAX_TOKENS: 8192,
24
+ };
25
+ /**
26
+ * Проверяет нужен ли interleaved thinking beta header
27
+ */
28
+ function shouldUseInterleavedThinking(thinking, tools) {
29
+ return !!(thinking && tools && tools.length > 0);
30
+ }
31
+ /**
32
+ * Получает правильный beta header для запроса
33
+ */
34
+ function getBetaHeader(thinking, tools, userBeta) {
35
+ if (userBeta) {
36
+ return userBeta; // Пользователь явно указал beta
37
+ }
38
+ if (shouldUseInterleavedThinking(thinking, tools)) {
39
+ return exports.ANTHROPIC_CONSTANTS.INTERLEAVED_THINKING_BETA;
40
+ }
41
+ return undefined;
42
+ }
43
+ //# sourceMappingURL=anthropic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/constants/anthropic.ts"],"names":[],"mappings":";;;AA4BA,oEAEC;AAKD,sCAUC;AA7CD;;;GAGG;AACU,QAAA,mBAAmB,GAAG;IACjC,kDAAkD;IAClD,yBAAyB,EAAE,iCAAiC;IAE5D,mDAAmD;IACnD,oBAAoB,EAAE,GAAG;IAEzB,8CAA8C;IAC9C,mBAAmB,EAAE,IAAI;IAEzB,4CAA4C;IAC5C,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,GAAG;IAEvB,0BAA0B;IAC1B,aAAa,EAAE,0BAA0B;IAEzC,mDAAmD;IACnD,kBAAkB,EAAE,IAAI;CAChB,CAAC;AAEX;;GAEG;AACH,SAAgB,4BAA4B,CAAC,QAAa,EAAE,KAAY;IACtE,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,QAAa,EAAE,KAAY,EAAE,QAAiB;IAC1E,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC,CAAC,gCAAgC;IACnD,CAAC;IAED,IAAI,4BAA4B,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,2BAAmB,CAAC,yBAAyB,CAAC;IACvD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -160,7 +160,7 @@ async function createStandardDevelopmentTools(backendUrl) {
160
160
  if (!data.tools || !Array.isArray(data.tools)) {
161
161
  throw new Error('Неверный формат ответа от backend');
162
162
  }
163
- console.log(`[SDK] Загружено ${data.count} схем инструментов с backend`);
163
+ console.log(`Загружено ${data.count} схем инструментов с backend`);
164
164
  return data.tools;
165
165
  }
166
166
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"message-helpers.js","sourceRoot":"","sources":["../../../src/utils/message-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-helpers.js","sourceRoot":"","sources":["../../../src/utils/message-helpers.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { handleStreamError, processStreamChunk } from './stream-utils';
2
+ import { getBetaHeader } from '../../constants/anthropic';
2
3
  // Простая функция генерации ID
3
4
  function generateId(length = 10) {
4
5
  return Math.random().toString(36).substring(2, 2 + length);
@@ -25,7 +26,7 @@ export class ChatApi {
25
26
  if (debugLevel === 'silent')
26
27
  return;
27
28
  if (streamLogging?.sseEvents || (debugLevel === 'verbose' || debugLevel === 'debug')) {
28
- console.log(`🔍 [SDK] SSE Event: ${message}`, data);
29
+ console.log(`🔍 SSE Event: ${message}`, data);
29
30
  }
30
31
  },
31
32
  streamChunk: (message, data) => {
@@ -49,13 +50,19 @@ export class ChatApi {
49
50
  info: (message) => {
50
51
  const debugLevel = this.options.debug;
51
52
  if (debugLevel && debugLevel !== 'silent' && debugLevel !== 'error' && debugLevel !== 'warn') {
52
- console.log(`🔧 [SDK] ${message}`);
53
+ console.log(`🔧 ${message}`);
54
+ }
55
+ },
56
+ warn: (message) => {
57
+ const debugLevel = this.options.debug;
58
+ if (debugLevel !== 'silent') {
59
+ console.warn(`⚠️ ${message}`);
53
60
  }
54
61
  },
55
62
  error: (message) => {
56
63
  const debugLevel = this.options.debug;
57
64
  if (debugLevel !== 'silent') {
58
- console.error(`❌ [SDK] ${message}`);
65
+ console.error(`❌ ${message}`);
59
66
  }
60
67
  }
61
68
  };
@@ -232,103 +239,56 @@ export class ChatApi {
232
239
  }
233
240
  const reader = response.body.getReader();
234
241
  const decoder = new TextDecoder();
235
- let buffer = '';
236
- // ✅ КРИТИЧЕСКОЕ ИСПРАВЛЕНИЕ: Используем stream-utils для thinking обработки
237
- let isInThinkingBlock = false;
238
- let thinkingContent = '';
239
- let textContent = '';
240
- let thinkingSignature = '';
241
242
  try {
242
243
  while (true) {
243
244
  const { done, value } = await reader.read();
244
- if (done) {
245
+ if (done)
245
246
  break;
246
- }
247
- const chunkStr = decoder.decode(value, { stream: true });
248
- buffer += chunkStr;
249
- // ✅ ИСПРАВЛЕНИЕ: Обрабатываем каждый символ для реального времени
250
- const lines = buffer.split('\n');
251
- buffer = lines.pop() || ''; // Сохраняем неполную строку
247
+ const chunk = decoder.decode(value, { stream: true });
248
+ const lines = chunk.split('\n');
252
249
  for (const line of lines) {
253
- // 📝 ОТЛАДКА: Логируем все SSE события через новый логгер
254
- if (line.startsWith('data: ') && line.slice(6).trim() !== '[DONE]') {
255
- try {
256
- const eventData = JSON.parse(line.slice(6).trim());
257
- this.logger.streamEvent(eventData.type, {
258
- type: eventData.type,
259
- delta: eventData.delta,
260
- content_block: eventData.content_block,
261
- index: eventData.index
262
- });
263
- }
264
- catch (e) {
265
- this.logger.streamEvent(`Raw SSE line: ${line}`);
266
- }
250
+ // Игнорируем пустые строки
251
+ if (!line.trim()) {
252
+ continue;
267
253
  }
268
- // ✅ КРИТИЧЕСКОЕ ИСПРАВЛЕНИЕ: Используем processStreamChunk
269
- const result = processStreamChunk(line, isInThinkingBlock, thinkingContent, textContent, thinkingSignature, options?.onToken);
270
- // Обновляем состояние
271
- isInThinkingBlock = result.isInThinkingBlock;
272
- thinkingContent = result.thinkingContent;
273
- textContent = result.textContent;
274
- thinkingSignature = result.thinkingSignature;
254
+ // ✅ ТОЛЬКО ОФИЦИАЛЬНЫЕ СОБЫТИЯ: Используем переписанный processStreamChunk
255
+ const result = processStreamChunk(line, this.logger, {
256
+ onVSCodeCommand: options?.onVSCodeCommand,
257
+ ignoreInvalidCommands: true
258
+ });
275
259
  // Если есть чанк для отправки
276
- if (result.chunk) {
260
+ if (result && result.chunk) {
277
261
  this.logger.streamChunk('', {
278
262
  type: result.chunk.type,
279
- isThinking: result.chunk.isThinking,
280
- text: typeof result.chunk.text === 'string' ? result.chunk.text.substring(0, 30) : result.chunk.text,
263
+ hasContentBlock: !!result.chunk.content_block,
264
+ hasDelta: !!result.chunk.delta,
281
265
  hasOnEvent: !!options?.onEvent
282
266
  });
283
- // НОВОЕ: Обработка VS Code команд
284
- if (result.chunk.type === 'vscode_command' && options?.onVSCodeCommand) {
285
- try {
286
- const vscodeCommand = result.chunk.data || result.chunk;
287
- const commandResult = await options.onVSCodeCommand(vscodeCommand);
288
- // Отправляем результат обратно в backend
289
- // Отправка результата команды удалена
290
- // Уведомляем extension о выполнении
291
- yield {
292
- type: 'command_executed',
293
- data: commandResult
294
- };
295
- }
296
- catch (error) {
297
- console.error(`Ошибка при обработке команды: ${error.message}`);
298
- yield {
299
- type: 'command_error',
300
- data: { error: error.message }
301
- };
302
- }
303
- continue;
304
- }
305
267
  yield result.chunk;
306
- // 🔧 КРИТИЧЕСКОЕ ИСПРАВЛЕНИЕ: Передаем оригинальные данные события в onEvent
307
- if (options && options.onEvent && line.startsWith('data: ') && line.slice(6).trim() !== '[DONE]') {
308
- try {
309
- const originalEventData = JSON.parse(line.slice(6).trim());
310
- this.logger.eventCallback('Передаем оригинальные данные события', {
311
- eventType: originalEventData.type,
312
- hasContentBlock: !!originalEventData.content_block,
313
- hasDelta: !!originalEventData.delta
314
- });
315
- // ✅ ИСПРАВЛЕНО: передаем оригинальные данные согласно стандарту Anthropic API
316
- options.onEvent(originalEventData.type, originalEventData);
317
- }
318
- catch (e) {
319
- // Fallback: если не удалось распарсить, используем обработанный chunk
320
- this.logger.eventCallback('Fallback к chunk данным', {
321
- eventType: result.chunk.type,
322
- isThinking: result.chunk.isThinking,
323
- hasText: !!result.chunk.text
324
- });
325
- options.onEvent(result.chunk.type, result.chunk);
268
+ }
269
+ // ОФИЦИАЛЬНАЯ ОБРАБОТКА СОБЫТИЙ ANTHROPIC API
270
+ if (options && options.onEvent && line.startsWith('data: ') && line.slice(6).trim() !== '') {
271
+ try {
272
+ const originalEventData = JSON.parse(line.slice(6).trim());
273
+ this.logger.eventCallback('Передаем оригинальные данные события в onEvent', {
274
+ eventType: originalEventData.type,
275
+ hasContentBlock: !!originalEventData.content_block,
276
+ hasDelta: !!originalEventData.delta
277
+ });
278
+ // ✅ ТОЛЬКО ОРИГИНАЛЬНЫЕ ДАННЫЕ: согласно стандарту Anthropic API
279
+ options.onEvent(originalEventData.type, originalEventData);
280
+ // Завершаем поток при получении message_stop события
281
+ if (originalEventData.type === 'message_stop') {
282
+ break;
326
283
  }
327
284
  }
328
- }
329
- // Проверяем завершение
330
- if (result.isDone) {
331
- break;
285
+ catch (e) {
286
+ // Если не удалось распарсить оригинальные данные - просто пропускаем
287
+ this.logger.eventCallback('Пропускаем событие с ошибкой парсинга', {
288
+ error: e instanceof Error ? e.message : String(e),
289
+ line: line.substring(0, 100)
290
+ });
291
+ }
332
292
  }
333
293
  }
334
294
  }
@@ -355,11 +315,122 @@ export class ChatApi {
355
315
  * @returns {AsyncGenerator<ChatStreamChunk>} Асинхронный генератор чанков ответа
356
316
  */
357
317
  async *streamPrompt(prompt, options) {
358
- const messages = [
359
- { role: 'user', content: prompt }
360
- ];
318
+ // Преобразуем простой prompt в массив сообщений
319
+ const messages = [{ role: 'user', content: prompt }];
361
320
  yield* this.streamChat(messages, options);
362
321
  }
322
+ /**
323
+ * Отправляет continuation запрос для interleaved thinking
324
+ * @param {ChatMessage[]} messages Массив сообщений включая thinking блоки и tool_result
325
+ * @param {ChatStreamOptions} [options] Дополнительные параметры с thinking конфигурацией
326
+ * @returns {AsyncGenerator<ChatStreamChunk>} Асинхронный генератор чанков ответа
327
+ */
328
+ async *sendContinuation(messages, options) {
329
+ if (!messages || messages.length === 0) {
330
+ throw new Error('Continuation требует минимум 3 сообщения для interleaved thinking');
331
+ }
332
+ // Валидация continuation структуры
333
+ if (messages.length < 3) {
334
+ throw new Error('Continuation требует минимум 3 сообщения: user → assistant (thinking + tool_use) → user (tool_result)');
335
+ }
336
+ // Проверяем что последнее сообщение содержит tool_result
337
+ const lastMessage = messages[messages.length - 1];
338
+ if (lastMessage.role !== 'user') {
339
+ throw new Error('Последнее сообщение в continuation должно быть от пользователя с tool_result');
340
+ }
341
+ if (Array.isArray(lastMessage.content)) {
342
+ const hasToolResult = lastMessage.content.some(block => block.type === 'tool_result');
343
+ if (!hasToolResult) {
344
+ throw new Error('Последнее сообщение должно содержать tool_result блок');
345
+ }
346
+ }
347
+ // Валидация параметров continuation
348
+ this.validateChatOptions(options);
349
+ try {
350
+ this.logger.info('📤 Отправляем continuation запрос');
351
+ // Подготавливаем параметры запроса для continuation
352
+ const requestParams = this.buildRequestParams(messages, {
353
+ ...options,
354
+ stream: true, // Continuation всегда потоковый
355
+ });
356
+ this.logger.info(`🔄 Continuation request построен: ${requestParams.messages.length} сообщений`);
357
+ // Отправляем запрос на continuation endpoint
358
+ const response = await this.httpClient.postStream('/api/v1/chat/continue', requestParams);
359
+ this.logger.info('🌊 Continuation поток получен');
360
+ // Обрабатываем поток точно так же как в streamChat
361
+ if (!response.body || typeof response.body.getReader !== 'function') {
362
+ throw new Error('Ответ не содержит ReadableStream');
363
+ }
364
+ const reader = response.body.getReader();
365
+ const decoder = new TextDecoder();
366
+ try {
367
+ while (true) {
368
+ const { done, value } = await reader.read();
369
+ if (done)
370
+ break;
371
+ const chunk = decoder.decode(value, { stream: true });
372
+ const lines = chunk.split('\n');
373
+ for (const line of lines) {
374
+ // Игнорируем пустые строки
375
+ if (!line.trim()) {
376
+ continue;
377
+ }
378
+ // Используем processStreamChunk для обработки
379
+ const result = processStreamChunk(line, this.logger, {
380
+ onVSCodeCommand: options?.onVSCodeCommand,
381
+ ignoreInvalidCommands: true
382
+ });
383
+ // Если есть чанк для отправки
384
+ if (result && result.chunk) {
385
+ this.logger.streamChunk('', {
386
+ type: result.chunk.type,
387
+ hasContentBlock: !!result.chunk.content_block,
388
+ hasDelta: !!result.chunk.delta,
389
+ hasOnEvent: !!options?.onEvent
390
+ });
391
+ yield result.chunk;
392
+ }
393
+ // Обработка событий
394
+ if (options && options.onEvent && line.startsWith('data: ') && line.slice(6).trim() !== '') {
395
+ try {
396
+ const originalEventData = JSON.parse(line.slice(6).trim());
397
+ this.logger.eventCallback('Передаем оригинальные данные события в onEvent', {
398
+ eventType: originalEventData.type,
399
+ hasContentBlock: !!originalEventData.content_block,
400
+ hasDelta: !!originalEventData.delta
401
+ });
402
+ options.onEvent(originalEventData.type, originalEventData);
403
+ // Завершаем поток при получении message_stop события
404
+ if (originalEventData.type === 'message_stop') {
405
+ break;
406
+ }
407
+ }
408
+ catch (e) {
409
+ // Если не удалось распарсить оригинальные данные - просто пропускаем
410
+ this.logger.eventCallback('Пропускаем событие с ошибкой парсинга', {
411
+ error: e instanceof Error ? e.message : String(e),
412
+ line: line.substring(0, 100)
413
+ });
414
+ }
415
+ }
416
+ }
417
+ }
418
+ }
419
+ finally {
420
+ reader.releaseLock();
421
+ }
422
+ // Вызываем onComplete если передан
423
+ if (options?.onComplete) {
424
+ options.onComplete('Continuation stream completed');
425
+ }
426
+ }
427
+ catch (error) {
428
+ if (options?.onError) {
429
+ options.onError(error);
430
+ }
431
+ throw handleStreamError(error);
432
+ }
433
+ }
363
434
  /**
364
435
  * Валидирует опции чата согласно документации Anthropic
365
436
  * @private
@@ -382,22 +453,25 @@ export class ChatApi {
382
453
  // 3. tool_choice ограничения с thinking
383
454
  if (options.tools && options.tool_choice) {
384
455
  const choice = options.tool_choice;
385
- let isInvalidChoice = false;
386
- if (typeof choice === 'string') {
387
- // "any" и конкретные имена инструментов не поддерживаются
388
- if (choice === 'any') {
389
- isInvalidChoice = true;
456
+ if (options.thinking) {
457
+ // 🧠 НОВАЯ ДОКУМЕНТАЦИЯ ANTHROPIC: С thinking поддерживается ТОЛЬКО { type: "any" }
458
+ const isValidChoice = choice === 'any' ||
459
+ (typeof choice === 'object' && choice?.type === 'any');
460
+ if (!isValidChoice) {
461
+ this.logger.warn('tool_choice для thinking убран согласно документации Anthropic. ' +
462
+ 'С расширенным мышлением поддерживается ТОЛЬКО { type: "any" }. ' +
463
+ `Исходное значение: ${JSON.stringify(choice)}`);
464
+ delete options.tool_choice; // Убираем недопустимый choice
390
465
  }
391
466
  }
392
- else if (typeof choice === 'object') {
393
- // { type: "any" } и { type: "tool", name: "..." } не поддерживаются
394
- if (choice.type === 'any' || choice.type === 'tool') {
395
- isInvalidChoice = true;
467
+ else {
468
+ // Без thinking - стандартные ограничения
469
+ if (choice === 'any' ||
470
+ (typeof choice === 'object' && (choice?.type === 'any' || choice?.type === 'tool'))) {
471
+ throw new Error('tool_choice: "any", { type: "any" }, { type: "tool" } поддерживаются ТОЛЬКО с thinking режимом. ' +
472
+ 'Без thinking используйте: "auto", "none" или не указывайте tool_choice');
396
473
  }
397
474
  }
398
- if (isInvalidChoice) {
399
- throw new Error('При использовании thinking с инструментами поддерживаются только tool_choice: "auto" (по умолчанию) или "none" согласно документации Anthropic. НЕ поддерживаются: "any", { type: "any" }, { type: "tool", name: "..." }');
400
- }
401
475
  }
402
476
  }
403
477
  // Валидация бюджета токенов (только если задан явно)
@@ -474,8 +548,9 @@ export class ChatApi {
474
548
  params.beta = options.beta;
475
549
  }
476
550
  // ✅ ИСПРАВЛЕНИЕ: Добавляем interleaved thinking только если beta не установлен пользователем
477
- if (options?.thinking && options?.tools && options?.tools.length > 0 && !options?.beta) {
478
- params.beta = 'interleaved-thinking-2025-05-14';
551
+ const calculatedBeta = getBetaHeader(options?.thinking, options?.tools || [], options?.beta);
552
+ if (calculatedBeta) {
553
+ params.beta = calculatedBeta;
479
554
  }
480
555
  // Добавляем другие параметры API
481
556
  if (options?.temperature !== undefined) {
@@ -499,45 +574,63 @@ export class ChatApi {
499
574
  return params;
500
575
  }
501
576
  /**
502
- * Конвертирует ответ API в ChatStreamChunk
577
+ * Конвертирует ответ API в ChatStreamChunk (только официальные поля Anthropic API)
503
578
  * @private
504
579
  */
505
580
  convertToStreamChunk(data) {
506
581
  if (!data || !data.type)
507
582
  return null;
583
+ // ✅ ТОЛЬКО официальные события Anthropic API
584
+ const validEvents = [
585
+ 'message_start', 'content_block_start', 'content_block_delta',
586
+ 'content_block_stop', 'message_delta', 'message_stop', 'ping', 'error'
587
+ ];
588
+ if (!validEvents.includes(data.type)) {
589
+ // Игнорируем неофициальные события
590
+ return null;
591
+ }
508
592
  const chunk = {
509
- type: data.type,
510
- message: data.message,
511
- index: data.index,
512
- content_block: data.content_block,
513
- delta: data.delta
593
+ type: data.type
514
594
  };
515
- // ✅ КРИТИЧЕСКОЕ ИСПРАВЛЕНИЕ: Добавляем полную поддержку всех типов delta событий
516
- if (data.delta?.type === 'text_delta' && data.delta.text) {
517
- chunk.text = data.delta.text;
518
- chunk.isThinking = false;
519
- }
520
- else if (data.delta?.type === 'thinking_delta' && data.delta.thinking) {
521
- chunk.text = data.delta.thinking;
522
- chunk.isThinking = true;
523
- }
524
- else if (data.delta?.type === 'signature_delta' && data.delta.signature) {
525
- // ✅ КРИТИЧНО для Anthropic: сохраняем signature из thinking блоков
526
- chunk.thinkingSignature = data.delta.signature;
527
- chunk.isThinking = true;
528
- }
529
- // Обрабатываем события tool_result
530
- if (data.type === 'tool_result') {
531
- chunk.type = 'tool_result';
532
- chunk.content_block = {
533
- type: 'tool_result',
534
- tool_use_id: data.tool_use_id,
535
- content: JSON.stringify(data.data),
536
- is_error: data.data?.error ? true : false
537
- };
538
- }
539
- if (data.type === 'message_stop') {
540
- chunk.isComplete = true;
595
+ // Добавляем поля в зависимости от типа события
596
+ switch (data.type) {
597
+ case 'message_start':
598
+ if (data.message) {
599
+ chunk.message = data.message;
600
+ }
601
+ break;
602
+ case 'content_block_start':
603
+ if (data.index !== undefined) {
604
+ chunk.index = data.index;
605
+ }
606
+ if (data.content_block) {
607
+ chunk.content_block = data.content_block;
608
+ }
609
+ break;
610
+ case 'content_block_delta':
611
+ if (data.index !== undefined) {
612
+ chunk.index = data.index;
613
+ }
614
+ if (data.delta) {
615
+ chunk.delta = data.delta;
616
+ }
617
+ break;
618
+ case 'content_block_stop':
619
+ if (data.index !== undefined) {
620
+ chunk.index = data.index;
621
+ }
622
+ break;
623
+ case 'message_delta':
624
+ if (data.delta) {
625
+ chunk.message_delta = data.delta;
626
+ }
627
+ break;
628
+ case 'error':
629
+ if (data.error) {
630
+ chunk.error = data.error;
631
+ }
632
+ break;
633
+ // message_stop и ping не требуют дополнительных полей
541
634
  }
542
635
  return chunk;
543
636
  }