solver-sdk 3.1.10 → 3.1.14

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.
@@ -3,377 +3,166 @@
3
3
  * Утилиты для обработки потоковых данных от API чата
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.parseStreamLine = parseStreamLine;
7
+ exports.isStreamComplete = isStreamComplete;
6
8
  exports.processStreamChunk = processStreamChunk;
7
9
  exports.handleStreamError = handleStreamError;
8
10
  /**
9
- * Обрабатывает строку данных из SSE потока
10
- * @param line Строка данных из потока
11
- * @param isInThinkingBlock Флаг нахождения в блоке мышления
12
- * @param thinkingContent Накопленное содержимое мышления
13
- * @param textContent Накопленное текстовое содержимое
14
- * @param thinkingSignature Подпись блока мышления
15
- * @param onToken Обработчик получения токена
16
- * @returns Результат обработки
11
+ * Парсит строку SSE потока согласно официальному Anthropic API
17
12
  */
18
- function processStreamChunk(line, isInThinkingBlock, thinkingContent, textContent, thinkingSignature, onToken) {
13
+ function parseStreamLine(line) {
14
+ // Пропускаем пустые строки и комментарии
15
+ if (!line.trim() || line.startsWith(':')) {
16
+ return {};
17
+ }
18
+ // Обрабатываем только data: события
19
+ if (!line.startsWith('data: ')) {
20
+ return {};
21
+ }
22
+ const data = line.slice(6).trim();
23
+ // Пропускаем пустые данные
24
+ if (!data) {
25
+ return {};
26
+ }
27
+ try {
28
+ const jsonData = JSON.parse(data);
29
+ // ✅ Все события Anthropic API имеют поле type
30
+ if (!jsonData.type) {
31
+ return {};
32
+ }
33
+ // Создаем chunk согласно официальному формату Anthropic
34
+ const chunk = {
35
+ type: jsonData.type,
36
+ ...jsonData
37
+ };
38
+ return { chunk };
39
+ }
40
+ catch (error) {
41
+ console.warn('Failed to parse SSE line:', line, error);
42
+ return {};
43
+ }
44
+ }
45
+ /**
46
+ * Проверяет завершен ли поток согласно Anthropic API
47
+ */
48
+ function isStreamComplete(chunk) {
49
+ return chunk.type === 'message_stop';
50
+ }
51
+ /**
52
+ * Обрабатывает чанк потоковой передачи данных в формате Server-Sent Events
53
+ * Работает только с официальными событиями Anthropic API
54
+ *
55
+ * @param line Строка из SSE потока
56
+ * @param logger Логгер для отладки
57
+ * @param options Опции обработки
58
+ * @returns Результат обработки чанка
59
+ */
60
+ function processStreamChunk(line, logger, options) {
19
61
  try {
62
+ // Игнорируем пустые строки и комментарии
63
+ if (!line.trim() || line.startsWith(':')) {
64
+ return {};
65
+ }
66
+ // Проверяем формат SSE
20
67
  if (!line.startsWith('data: ')) {
21
- return { isInThinkingBlock, thinkingContent, textContent, thinkingSignature, isDone: false };
68
+ return {};
22
69
  }
23
70
  const data = line.slice(6).trim();
24
- // Проверяем на завершение потока
25
- if (data === '[DONE]') {
26
- const chunk = {
27
- type: 'message_stop',
28
- text: '',
29
- isComplete: true,
30
- thinkingContent: thinkingContent.length > 0 ? thinkingContent : undefined,
31
- thinkingSignature: thinkingSignature.length > 0 ? thinkingSignature : undefined
32
- };
33
- return {
34
- isInThinkingBlock,
35
- thinkingContent,
36
- textContent,
37
- thinkingSignature,
38
- chunk,
39
- isDone: true
40
- };
41
- }
42
- // Пытаемся распарсить JSON
43
- const jsonData = JSON.parse(data);
44
- // ИСПРАВЛЕНИЕ: Обрабатываем события начала блока мышления
45
- if (jsonData.type === 'content_block_start' && jsonData.content_block?.type === 'thinking') {
46
- const chunk = {
47
- type: 'content_block_start',
48
- text: '',
49
- isComplete: false,
50
- isThinking: true
51
- };
52
- return {
53
- isInThinkingBlock: true,
54
- thinkingContent,
55
- textContent,
56
- thinkingSignature,
57
- chunk,
58
- isDone: false
59
- };
60
- }
61
- // 🔧 КРИТИЧЕСКОЕ ИСПРАВЛЕНИЕ: Обрабатываем события начала блока tool_use
62
- if (jsonData.type === 'content_block_start' && jsonData.content_block?.type === 'tool_use') {
63
- const chunk = {
64
- type: 'content_block_start',
65
- text: '',
66
- isComplete: false,
67
- isThinking: false,
68
- // Передаем данные tool_use в chunk для доступа в onEvent callback
69
- data: {
70
- content_block: jsonData.content_block,
71
- index: jsonData.index
71
+ // Пропускаем пустые данные
72
+ if (!data) {
73
+ return {};
74
+ }
75
+ // Парсим JSON данные
76
+ let jsonData;
77
+ try {
78
+ jsonData = JSON.parse(data);
79
+ }
80
+ catch (parseError) {
81
+ if (logger) {
82
+ logger.error('Ошибка парсинга JSON', { error: parseError, data: data.substring(0, 100) });
83
+ }
84
+ return {};
85
+ }
86
+ // Валидируем что это официальное событие Anthropic API
87
+ const validEvents = [
88
+ 'message_start', 'content_block_start', 'content_block_delta',
89
+ 'content_block_stop', 'message_delta', 'message_stop', 'ping', 'error'
90
+ ];
91
+ if (!validEvents.includes(jsonData.type)) {
92
+ if (logger) {
93
+ logger.warn('Неизвестное событие', { type: jsonData.type });
94
+ }
95
+ return {};
96
+ }
97
+ // Создаем ChatStreamChunk в соответствии с официальным API
98
+ const chunk = {
99
+ type: jsonData.type
100
+ };
101
+ // Добавляем поля в зависимости от типа события
102
+ switch (jsonData.type) {
103
+ case 'message_start':
104
+ if (jsonData.message) {
105
+ chunk.message = jsonData.message;
72
106
  }
73
- };
74
- return {
75
- isInThinkingBlock,
76
- thinkingContent,
77
- textContent,
78
- thinkingSignature,
79
- chunk,
80
- isDone: false
81
- };
82
- }
83
- // ✅ ИСПРАВЛЕНИЕ: Обрабатываем события начала текстового блока
84
- if (jsonData.type === 'content_block_start' && jsonData.content_block?.type === 'text') {
85
- const chunk = {
86
- type: 'content_block_start',
87
- text: '',
88
- isComplete: false,
89
- isThinking: false,
90
- data: {
91
- content_block: jsonData.content_block,
92
- index: jsonData.index
107
+ break;
108
+ case 'content_block_start':
109
+ if (jsonData.index !== undefined) {
110
+ chunk.index = jsonData.index;
93
111
  }
94
- };
95
- return {
96
- isInThinkingBlock,
97
- thinkingContent,
98
- textContent,
99
- thinkingSignature,
100
- chunk,
101
- isDone: false
102
- };
103
- }
104
- // ✅ Удалено: дублирование thinking_delta обработки (основная версия ниже)
105
- // ✅ ИСПРАВЛЕНИЕ: Обрабатываем signature_delta согласно документации Anthropic
106
- if (jsonData.type === 'content_block_delta' && jsonData.delta?.type === 'signature_delta' && jsonData.delta.signature) {
107
- const newSignature = jsonData.delta.signature;
108
- const chunk = {
109
- type: 'content_block_delta',
110
- text: '', // signature не отображается как текст
111
- isComplete: false,
112
- isThinking: true, // signature относится к thinking блоку
113
- signature: newSignature
114
- };
115
- return {
116
- isInThinkingBlock,
117
- thinkingContent,
118
- textContent,
119
- thinkingSignature: newSignature,
120
- chunk,
121
- isDone: false
122
- };
123
- }
124
- // ✅ КРИТИЧЕСКОЕ ИСПРАВЛЕНИЕ: Обрабатываем дельты мышления в правильном формате
125
- if (jsonData.type === 'content_block_delta' && jsonData.delta?.type === 'thinking_delta' && jsonData.delta.thinking) {
126
- const newThinkingContent = thinkingContent + jsonData.delta.thinking;
127
- const chunk = {
128
- type: 'content_block_delta',
129
- text: jsonData.delta.thinking, // ✅ Извлекаем текст из delta.thinking
130
- isComplete: false,
131
- isThinking: true
132
- };
133
- // Вызываем onToken если передан
134
- if (onToken) {
135
- onToken(jsonData.delta.thinking);
136
- }
137
- return {
138
- isInThinkingBlock: true,
139
- thinkingContent: newThinkingContent,
140
- textContent,
141
- thinkingSignature,
142
- chunk,
143
- isDone: false
144
- };
145
- }
146
- // ✅ ИСПРАВЛЕНИЕ: Обрабатываем завершение любых блоков контента
147
- if (jsonData.type === 'content_block_stop') {
148
- const chunk = {
149
- type: 'content_block_stop',
150
- text: '',
151
- isComplete: false,
152
- isThinking: isInThinkingBlock, // Сохраняем текущее состояние thinking
153
- data: {
154
- index: jsonData.index
112
+ if (jsonData.content_block) {
113
+ chunk.content_block = jsonData.content_block;
155
114
  }
156
- };
157
- return {
158
- isInThinkingBlock: false, // Всегда завершаем thinking после content_block_stop
159
- thinkingContent,
160
- textContent,
161
- thinkingSignature,
162
- chunk,
163
- isDone: false
164
- };
165
- }
166
- // 🔧 КРИТИЧЕСКОЕ ИСПРАВЛЕНИЕ: Обрабатываем input_json_delta для инструментов
167
- if (jsonData.type === 'content_block_delta' && jsonData.delta?.type === 'input_json_delta') {
168
- const chunk = {
169
- type: 'content_block_delta',
170
- text: jsonData.delta.partial_json || '',
171
- isComplete: false,
172
- isThinking: false,
173
- data: {
174
- delta: jsonData.delta,
175
- index: jsonData.index
115
+ break;
116
+ case 'content_block_delta':
117
+ if (jsonData.index !== undefined) {
118
+ chunk.index = jsonData.index;
176
119
  }
177
- };
178
- // Вызываем onToken если передан
179
- if (onToken && jsonData.delta.partial_json) {
180
- onToken(jsonData.delta.partial_json);
181
- }
182
- return {
183
- isInThinkingBlock,
184
- thinkingContent,
185
- textContent,
186
- thinkingSignature,
187
- chunk,
188
- isDone: false
189
- };
190
- }
191
- // ✅ ИСПРАВЛЕНИЕ: Обрабатываем текстовые дельты в правильном формате
192
- if (jsonData.type === 'content_block_delta' && jsonData.delta?.type === 'text_delta' && jsonData.delta.text) {
193
- const newTextContent = textContent + jsonData.delta.text;
194
- const chunk = {
195
- type: 'content_block_delta',
196
- text: jsonData.delta.text, // Извлекаем текст из delta.text
197
- isComplete: false,
198
- isThinking: false
199
- };
200
- // Вызываем onToken если передан
201
- if (onToken) {
202
- onToken(jsonData.delta.text);
203
- }
204
- return {
205
- isInThinkingBlock,
206
- thinkingContent,
207
- textContent: newTextContent,
208
- thinkingSignature,
209
- chunk,
210
- isDone: false
211
- };
212
- }
213
- // ✅ СОХРАНЯЕМ: Обрабатываем legacy форматы для совместимости
214
- if (jsonData.event === 'thinking_delta' && jsonData.thinking && isInThinkingBlock) {
215
- const newThinkingContent = thinkingContent + jsonData.thinking;
216
- const chunk = {
217
- type: 'content_block_delta',
218
- text: jsonData.thinking,
219
- isComplete: false,
220
- isThinking: true
221
- };
222
- if (onToken) {
223
- onToken(jsonData.thinking);
224
- }
225
- return {
226
- isInThinkingBlock: true,
227
- thinkingContent: newThinkingContent,
228
- textContent,
229
- thinkingSignature,
230
- chunk,
231
- isDone: false
232
- };
233
- }
234
- // Обрабатываем завершение мышления (legacy)
235
- if (jsonData.type === 'thinking_end' ||
236
- (jsonData.event === 'thinking_signature' && isInThinkingBlock)) {
237
- let signature = thinkingSignature;
238
- if (jsonData.signature) {
239
- signature = jsonData.signature;
240
- }
241
- const chunk = {
242
- type: 'content_block_delta',
243
- text: jsonData.text || '',
244
- isComplete: false,
245
- isThinking: false
246
- };
247
- if (jsonData.text && onToken) {
248
- onToken(jsonData.text);
249
- }
250
- return {
251
- isInThinkingBlock: false,
252
- thinkingContent,
253
- textContent: textContent + (jsonData.text || ''),
254
- thinkingSignature: signature,
255
- chunk,
256
- isDone: false
257
- };
258
- }
259
- // Обрабатываем текстовые дельты (legacy)
260
- if (jsonData.event === 'text_delta' && jsonData.text) {
261
- const newTextContent = textContent + jsonData.text;
262
- const chunk = {
263
- type: 'content_block_delta',
264
- text: jsonData.text,
265
- isComplete: false,
266
- isThinking: false
267
- };
268
- if (onToken) {
269
- onToken(jsonData.text);
270
- }
271
- return {
272
- isInThinkingBlock,
273
- thinkingContent,
274
- textContent: newTextContent,
275
- thinkingSignature,
276
- chunk,
277
- isDone: false
278
- };
279
- }
280
- // ✅ ИСПРАВЛЕНИЕ: Обрабатываем message_start согласно документации Anthropic
281
- if (jsonData.type === 'message_start') {
282
- const chunk = {
283
- type: 'message_start',
284
- message: jsonData.message,
285
- text: '',
286
- isComplete: false
287
- };
288
- return {
289
- isInThinkingBlock,
290
- thinkingContent,
291
- textContent,
292
- thinkingSignature,
293
- chunk,
294
- isDone: false
295
- };
296
- }
297
- // ✅ ИСПРАВЛЕНИЕ: Обрабатываем message_delta согласно документации Anthropic
298
- if (jsonData.type === 'message_delta') {
299
- const chunk = {
300
- type: 'message_delta',
301
- delta: jsonData.delta,
302
- text: '',
303
- isComplete: false
304
- };
305
- return {
306
- isInThinkingBlock,
307
- thinkingContent,
308
- textContent,
309
- thinkingSignature,
310
- chunk,
311
- isDone: false
312
- };
313
- }
314
- // ✅ ИСПРАВЛЕНИЕ: Обрабатываем message_stop согласно документации Anthropic
315
- if (jsonData.type === 'message_stop') {
316
- const chunk = {
317
- type: 'message_stop',
318
- message: jsonData.message,
319
- text: '',
320
- isComplete: true
321
- };
322
- return {
323
- isInThinkingBlock: false, // Завершаем thinking при остановке сообщения
324
- thinkingContent,
325
- textContent,
326
- thinkingSignature,
327
- chunk,
328
- isDone: true
329
- };
330
- }
331
- // Обрабатываем обычные текстовые данные (fallback)
332
- if (jsonData.content || jsonData.text || jsonData.delta) {
333
- const text = jsonData.content || jsonData.text || jsonData.delta;
334
- const newTextContent = textContent + text;
335
- const chunk = {
336
- type: 'content_block_delta',
337
- text: text,
338
- isComplete: false,
339
- isThinking: false
340
- };
341
- if (onToken) {
342
- onToken(text);
343
- }
344
- return {
345
- isInThinkingBlock,
346
- thinkingContent,
347
- textContent: newTextContent,
348
- thinkingSignature,
349
- chunk,
350
- isDone: false
351
- };
120
+ if (jsonData.delta) {
121
+ chunk.delta = jsonData.delta;
122
+ }
123
+ break;
124
+ case 'content_block_stop':
125
+ if (jsonData.index !== undefined) {
126
+ chunk.index = jsonData.index;
127
+ }
128
+ break;
129
+ case 'message_delta':
130
+ if (jsonData.delta) {
131
+ chunk.message_delta = jsonData.delta;
132
+ }
133
+ break;
134
+ case 'error':
135
+ if (jsonData.error) {
136
+ chunk.error = jsonData.error;
137
+ }
138
+ break;
139
+ // message_stop и ping не требуют дополнительных полей
352
140
  }
353
- // Удалено: signature_delta уже обрабатывается выше в правильном порядке
354
- // Если ничего не обработали, возвращаем исходное состояние
355
- return { isInThinkingBlock, thinkingContent, textContent, thinkingSignature, isDone: false };
141
+ return { chunk };
356
142
  }
357
143
  catch (error) {
358
- console.warn('Ошибка обработки потокового чанка:', error);
359
- return { isInThinkingBlock, thinkingContent, textContent, thinkingSignature, isDone: false };
144
+ if (logger) {
145
+ logger.error('Ошибка обработки чанка', { error, line: line.substring(0, 100) });
146
+ }
147
+ return {};
360
148
  }
361
149
  }
362
150
  /**
363
151
  * Обрабатывает ошибки потоковой передачи
364
- * @param error Ошибка
152
+ * @param error Ошибка для обработки
365
153
  * @returns Обработанная ошибка
366
154
  */
367
155
  function handleStreamError(error) {
368
156
  if (error instanceof Error) {
369
157
  return error;
370
158
  }
371
- if (error && error.message) {
372
- return new Error(error.message);
373
- }
374
159
  if (typeof error === 'string') {
375
160
  return new Error(error);
376
161
  }
377
- return new Error('Неизвестная ошибка потоковой передачи');
162
+ if (error && typeof error === 'object') {
163
+ const message = error.message || error.error || JSON.stringify(error);
164
+ return new Error(message);
165
+ }
166
+ return new Error('Неизвестная ошибка потока');
378
167
  }
379
168
  //# sourceMappingURL=stream-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream-utils.js","sourceRoot":"","sources":["../../../../src/api/chat-api/stream-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream-utils.js","sourceRoot":"","sources":["../../../../src/api/chat-api/stream-utils.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ const code_modification_api_js_1 = require("./api/code-modification-api.js");
10
10
  const index_js_1 = require("./api/chat-api/index.js");
11
11
  const models_api_js_1 = require("./api/models-api.js");
12
12
  // Версия SDK
13
- const SDK_VERSION = '3.1.9';
13
+ const SDK_VERSION = '3.1.11';
14
14
  /**
15
15
  * Определение типа среды выполнения
16
16
  * @returns 'browser' | 'node' | 'unknown'
@@ -53,25 +53,25 @@ class CodeSolverSDK {
53
53
  log: (message) => {
54
54
  const debugLevel = this._options.debug;
55
55
  if (debugLevel && debugLevel !== 'silent' && debugLevel !== 'error' && debugLevel !== 'warn') {
56
- console.log(`[CodeSolverSDK] ${message}`);
56
+ console.log(`${message}`);
57
57
  }
58
58
  },
59
59
  warn: (message) => {
60
60
  const debugLevel = this._options.debug;
61
61
  if (debugLevel && debugLevel !== 'silent' && debugLevel !== 'error') {
62
- console.warn(`[CodeSolverSDK] ⚠️ ${message}`);
62
+ console.warn(`⚠️ ${message}`);
63
63
  }
64
64
  },
65
65
  error: (message) => {
66
66
  const debugLevel = this._options.debug;
67
67
  if (debugLevel !== 'silent') {
68
- console.error(`[CodeSolverSDK] 🔴 ${message}`);
68
+ console.error(`🔴 ${message}`);
69
69
  }
70
70
  },
71
71
  debug: (message) => {
72
72
  const debugLevel = this._options.debug;
73
73
  if (debugLevel === 'verbose' || debugLevel === 'debug') {
74
- console.debug(`[CodeSolverSDK] 🔍 ${message}`);
74
+ console.debug(`🔍 ${message}`);
75
75
  }
76
76
  },
77
77
  // ✅ НОВЫЕ методы для контроля стрим логирования
@@ -81,7 +81,7 @@ class CodeSolverSDK {
81
81
  if (debugLevel === 'silent')
82
82
  return;
83
83
  if (streamLogging?.sseEvents || (debugLevel === 'verbose' || debugLevel === 'debug')) {
84
- console.log(`[SDK-STREAM] ${message}`, data);
84
+ console.log(`STREAM: ${message}`, data);
85
85
  }
86
86
  },
87
87
  streamChunk: (message, data) => {
@@ -90,7 +90,7 @@ class CodeSolverSDK {
90
90
  if (debugLevel === 'silent')
91
91
  return;
92
92
  if (streamLogging?.streamChunks || (debugLevel === 'verbose' || debugLevel === 'debug')) {
93
- console.log(`[SDK-CHUNK] ${message}`, data);
93
+ console.log(`CHUNK: ${message}`, data);
94
94
  }
95
95
  },
96
96
  eventCallback: (message, data) => {
@@ -99,7 +99,7 @@ class CodeSolverSDK {
99
99
  if (debugLevel === 'silent')
100
100
  return;
101
101
  if (streamLogging?.eventCallbacks || (debugLevel === 'verbose' || debugLevel === 'debug')) {
102
- console.log(`[SDK-EVENT] ${message}`, data);
102
+ console.log(`EVENT: ${message}`, data);
103
103
  }
104
104
  }
105
105
  };
@@ -256,7 +256,7 @@ class CodeSolverSDK {
256
256
  CodeSolverSDK.errorHandler(error);
257
257
  }
258
258
  else {
259
- console.error('[CodeSolverSDK] Необработанная ошибка:', error);
259
+ console.error('Необработанная ошибка:', error);
260
260
  }
261
261
  }
262
262
  /**
@@ -270,7 +270,7 @@ class CodeSolverSDK {
270
270
  * Освобождает ресурсы SDK
271
271
  */
272
272
  dispose() {
273
- this.logger.debug('Освобождение ресурсов SDK');
273
+ this.logger.debug('Освобождение ресурсов');
274
274
  // В HTTP-only версии нет ресурсов для освобождения
275
275
  }
276
276
  /**