solver-sdk 1.9.0 → 2.0.1

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 (34) hide show
  1. package/dist/cjs/{code-solver-sdk.js → code-solver-sdk-v2.js} +219 -273
  2. package/dist/cjs/code-solver-sdk-v2.js.map +1 -0
  3. package/dist/cjs/constants/websocket-events.constants.js +24 -1
  4. package/dist/cjs/constants/websocket-events.constants.js.map +1 -1
  5. package/dist/cjs/constants/websocket-namespaces.constants.js +2 -0
  6. package/dist/cjs/constants/websocket-namespaces.constants.js.map +1 -1
  7. package/dist/cjs/index.js +31 -49
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/ws/filesystem-ws-client.js +315 -0
  10. package/dist/cjs/ws/filesystem-ws-client.js.map +1 -0
  11. package/dist/esm/{code-solver-sdk.js → code-solver-sdk-v2.js} +219 -273
  12. package/dist/esm/code-solver-sdk-v2.js.map +1 -0
  13. package/dist/esm/constants/websocket-events.constants.js +23 -0
  14. package/dist/esm/constants/websocket-events.constants.js.map +1 -1
  15. package/dist/esm/constants/websocket-namespaces.constants.js +2 -0
  16. package/dist/esm/constants/websocket-namespaces.constants.js.map +1 -1
  17. package/dist/esm/index.js +29 -96
  18. package/dist/esm/index.js.map +1 -1
  19. package/dist/esm/ws/filesystem-ws-client.js +311 -0
  20. package/dist/esm/ws/filesystem-ws-client.js.map +1 -0
  21. package/dist/types/{code-solver-sdk.d.ts → code-solver-sdk-v2.d.ts} +81 -85
  22. package/dist/types/code-solver-sdk-v2.d.ts.map +1 -0
  23. package/dist/types/constants/websocket-events.constants.d.ts +21 -0
  24. package/dist/types/constants/websocket-events.constants.d.ts.map +1 -1
  25. package/dist/types/constants/websocket-namespaces.constants.d.ts +3 -1
  26. package/dist/types/constants/websocket-namespaces.constants.d.ts.map +1 -1
  27. package/dist/types/index.d.ts +27 -89
  28. package/dist/types/index.d.ts.map +1 -1
  29. package/dist/types/ws/filesystem-ws-client.d.ts +203 -0
  30. package/dist/types/ws/filesystem-ws-client.d.ts.map +1 -0
  31. package/package.json +1 -1
  32. package/dist/cjs/code-solver-sdk.js.map +0 -1
  33. package/dist/esm/code-solver-sdk.js.map +0 -1
  34. package/dist/types/code-solver-sdk.d.ts.map +0 -1
@@ -4,16 +4,19 @@ import { SearchApi } from './api/search-api.js';
4
4
  import { ContextApi } from './api/context-api.js';
5
5
  import { ReasoningApi } from './api/reasoning-api.js';
6
6
  import { CodeModificationApi } from './api/code-modification-api.js';
7
- import { CodeSolverWebSocketClient } from './utils/code-solver-websocket-client.js';
8
7
  import { AgentsApi } from './api/agents-api.js';
9
8
  import { ChatApi } from './api/chat-api/index.js';
10
9
  import { ModelsApi } from './api/models-api.js';
11
10
  import { DependenciesApi } from './api/dependencies-api.js';
12
- // Версия SDK
13
- const SDK_VERSION = '1.7.8';
14
- // Импорт базовых типов и констант
11
+ // Импорт пространств имен WebSocket
15
12
  import { WebSocketNamespace } from './constants/websocket-namespaces.constants.js';
13
+ // Версия SDK
14
+ const SDK_VERSION = '2.0.0';
16
15
  // Импорт WebSocket клиентов
16
+ import { IndexingWebSocketClient } from './ws/indexing-ws-client.js';
17
+ import { ReasoningWebSocketClient } from './ws/reasoning-ws-client.js';
18
+ import { FileSystemWsClient } from './ws/filesystem-ws-client.js';
19
+ import { DependenciesWsClient } from './ws/dependencies-ws-client.js';
17
20
  /**
18
21
  * Определение типа среды выполнения
19
22
  * @returns 'browser' | 'node' | 'unknown'
@@ -29,7 +32,7 @@ function getEnvironment() {
29
32
  }
30
33
  /**
31
34
  * Основной класс SDK для работы с Code Solver API
32
- * Поддерживает работу как в браузере, так и в Node.js
35
+ * В версии 2.0 с современной архитектурой и без обратной совместимости
33
36
  */
34
37
  export class CodeSolverSDK {
35
38
  /**
@@ -37,8 +40,11 @@ export class CodeSolverSDK {
37
40
  * @param {CodeSolverSDKOptions} options Опции SDK
38
41
  */
39
42
  constructor(options) {
40
- /** WebSocket клиент для работы с реалтайм API */
41
- this.wsClient = null;
43
+ /** WebSocket клиенты для разных пространств имен */
44
+ this._indexingClient = null;
45
+ this._reasoningClient = null;
46
+ this._fileSystemClient = null;
47
+ this._dependenciesClient = null;
42
48
  /** Logger для внутреннего использования */
43
49
  this.logger = {
44
50
  log: (message) => {
@@ -112,13 +118,88 @@ export class CodeSolverSDK {
112
118
  }
113
119
  }
114
120
  /**
115
- * Получает WebSocket клиент
116
- * @returns {CodeSolverWebSocketClient} WebSocket клиент
121
+ * Получает WebSocket URL
122
+ * @private
123
+ */
124
+ get wsURL() {
125
+ let url = this._options.baseURL || '';
126
+ // Заменяем протокол HTTP на WS
127
+ if (url.startsWith('http://')) {
128
+ url = url.replace('http://', 'ws://');
129
+ }
130
+ else if (url.startsWith('https://')) {
131
+ url = url.replace('https://', 'wss://');
132
+ }
133
+ return url;
134
+ }
135
+ /**
136
+ * Получает конфигурацию WebSocket
137
+ * @private
138
+ */
139
+ get wsConfig() {
140
+ return this._options.websocket || {};
141
+ }
142
+ /**
143
+ * Получает клиент для индексации
144
+ * @returns {IndexingWebSocketClient} Клиент для индексации
145
+ */
146
+ getIndexingClient() {
147
+ if (!this._indexingClient) {
148
+ const wsURL = this.wsURL;
149
+ this._indexingClient = new IndexingWebSocketClient(wsURL, {
150
+ apiKey: this._options.apiKey,
151
+ headers: this._options.headers,
152
+ autoReconnect: this.wsConfig.reconnect !== false,
153
+ maxRetries: this.wsConfig.reconnectAttempts || 5,
154
+ retryDelay: this.wsConfig.reconnectDelay || 1000,
155
+ rejectUnauthorized: this.wsConfig.rejectUnauthorized
156
+ });
157
+ }
158
+ return this._indexingClient;
159
+ }
160
+ /**
161
+ * Получает клиент для рассуждений
162
+ * @returns {ReasoningWebSocketClient} Клиент для рассуждений
117
163
  */
118
- getWebSocketClient() {
119
- if (!this.wsClient) {
164
+ getReasoningClient() {
165
+ if (!this._reasoningClient) {
120
166
  const wsURL = this.wsURL;
121
- this.wsClient = new CodeSolverWebSocketClient(wsURL, {
167
+ this._reasoningClient = new ReasoningWebSocketClient(wsURL, {
168
+ apiKey: this._options.apiKey,
169
+ headers: this._options.headers,
170
+ autoReconnect: this.wsConfig.reconnect !== false,
171
+ maxRetries: this.wsConfig.reconnectAttempts || 5,
172
+ retryDelay: this.wsConfig.reconnectDelay || 1000,
173
+ rejectUnauthorized: this.wsConfig.rejectUnauthorized,
174
+ callbacks: {} // Инициализируем пустой объект callbacks
175
+ });
176
+ }
177
+ return this._reasoningClient;
178
+ }
179
+ /**
180
+ * Получает клиент для работы с файловой системой
181
+ * @param {Partial<FileSystemWsClientOptions>} options Опции клиента файловой системы
182
+ * @returns {FileSystemWsClient} Клиент для работы с файловой системой
183
+ */
184
+ getFileSystemClient(options = {}) {
185
+ if (!this._fileSystemClient) {
186
+ const wsURL = this.wsURL;
187
+ this._fileSystemClient = new FileSystemWsClient(wsURL, {
188
+ onReadFile: options.onReadFile,
189
+ onListFiles: options.onListFiles,
190
+ onWatchStart: options.onWatchStart
191
+ });
192
+ }
193
+ return this._fileSystemClient;
194
+ }
195
+ /**
196
+ * Получает клиент для работы с зависимостями
197
+ * @returns {DependenciesWsClient} Клиент для работы с зависимостями
198
+ */
199
+ getDependenciesClient() {
200
+ if (!this._dependenciesClient) {
201
+ const wsURL = this.wsURL;
202
+ this._dependenciesClient = new DependenciesWsClient(WebSocketNamespace.DEPENDENCIES, wsURL, {
122
203
  apiKey: this._options.apiKey,
123
204
  headers: this._options.headers,
124
205
  autoReconnect: this.wsConfig.reconnect !== false,
@@ -127,7 +208,24 @@ export class CodeSolverSDK {
127
208
  rejectUnauthorized: this.wsConfig.rejectUnauthorized
128
209
  });
129
210
  }
130
- return this.wsClient;
211
+ return this._dependenciesClient;
212
+ }
213
+ /**
214
+ * Закрывает все WebSocket соединения
215
+ */
216
+ disconnectAll() {
217
+ if (this._indexingClient) {
218
+ this._indexingClient.disconnect();
219
+ }
220
+ if (this._reasoningClient) {
221
+ this._reasoningClient.disconnect();
222
+ }
223
+ if (this._fileSystemClient) {
224
+ this._fileSystemClient.disconnect();
225
+ }
226
+ if (this._dependenciesClient) {
227
+ this._dependenciesClient.disconnect();
228
+ }
131
229
  }
132
230
  /**
133
231
  * API для работы с агентами
@@ -179,323 +277,171 @@ export class CodeSolverSDK {
179
277
  return this._models;
180
278
  }
181
279
  /**
182
- * Доступ к API зависимостей
280
+ * API для работы с зависимостями
183
281
  */
184
282
  get dependencies() {
185
283
  return this._dependencies;
186
284
  }
187
285
  /**
188
- * Получает опции SDK
189
- */
190
- get options() {
191
- return this._options;
192
- }
193
- /**
194
- * Получает конфигурацию WebSocket
195
- */
196
- get wsConfig() {
197
- return this._options.websocket || {};
198
- }
199
- /**
200
- * Получает URL для WebSocket соединений
201
- */
202
- get wsURL() {
203
- return this._options.wsURL || this._options.baseURL.replace(/^http/, 'ws');
204
- }
205
- /**
206
- * Получает HTTP-клиент
286
+ * Настраивает обработчики событий Anthropic API
287
+ * @param {ReasoningWebSocketClient} reasoningClient WebSocket клиент для рассуждений
288
+ * @param {AnthropicStreamCallbacks} callbacks Коллбэки для обработки событий
289
+ * @private
207
290
  */
208
- get client() {
209
- return this.httpClient;
291
+ setupAnthropicEventHandlers(reasoningClient, callbacks) {
292
+ // Устанавливаем все обработчики для клиента рассуждений
293
+ reasoningClient.setupAnthropicStreamHandlers();
294
+ // Устанавливаем внешние обработчики
295
+ if (callbacks) {
296
+ reasoningClient.callbacks = callbacks;
297
+ }
210
298
  }
211
299
  /**
212
- * Получает текущую среду выполнения
213
- * @returns {string} Среда выполнения ('browser', 'node', 'unknown')
300
+ * Выполняет запрос к API для генерации рассуждения с использованием Anthropic API
301
+ * с поддержкой потоковой передачи данных через WebSocket
302
+ *
303
+ * @param {ExtendedReasoningOptions} options Опции для рассуждения
304
+ * @param {AnthropicStreamCallbacks} callbacks Коллбэки для обработки событий
305
+ * @returns {Promise<void>} Promise без результата
214
306
  */
215
- getEnvironment() {
216
- return this.environment;
307
+ async executeReasoning(options, callbacks) {
308
+ try {
309
+ // Проверяем, что все необходимые параметры указаны
310
+ if (!options.projectId) {
311
+ throw new Error('Не указан projectId для выполнения рассуждения');
312
+ }
313
+ // Подключаемся к WebSocket серверу если еще не подключены
314
+ const reasoningClient = this.getReasoningClient();
315
+ if (!reasoningClient.isConnected()) {
316
+ await reasoningClient.connectToReasoning();
317
+ }
318
+ // Подписываемся на события
319
+ this.setupAnthropicEventHandlers(reasoningClient, callbacks);
320
+ // Отправляем запрос на выполнение рассуждения
321
+ await reasoningClient.emitWithAck('create_reasoning', {
322
+ projectId: options.projectId,
323
+ request: {
324
+ prompt: options.query,
325
+ options: {
326
+ streamMode: true,
327
+ planningMode: Boolean(options.thinking),
328
+ modelName: options.model || 'claude-3-sonnet'
329
+ }
330
+ }
331
+ });
332
+ }
333
+ catch (error) {
334
+ this.logger.error(`Ошибка при отправке запроса на рассуждение: ${error instanceof Error ? error.message : String(error)}`);
335
+ callbacks.onError?.({
336
+ code: 'SDK_ERROR',
337
+ message: `Ошибка при отправке запроса: ${error instanceof Error ? error.message : String(error)}`
338
+ });
339
+ throw error;
340
+ }
217
341
  }
218
342
  /**
219
- * Закрывает все соединения и освобождает ресурсы
343
+ * Подключается к WebSocket серверу
344
+ * @returns {Promise<boolean>} Promise с результатом подключения
220
345
  */
221
- dispose() {
222
- if (this.wsClient) {
223
- this.wsClient.disconnectAll();
224
- this.wsClient = null;
346
+ async connect() {
347
+ try {
348
+ // Подключаемся к различным пространствам имен
349
+ await this.getIndexingClient().connect();
350
+ await this.getReasoningClient().connect();
351
+ await this.getFileSystemClient().connect();
352
+ await this.getDependenciesClient().connect();
353
+ return true;
354
+ }
355
+ catch (error) {
356
+ CodeSolverSDK.handleError(error);
357
+ return false;
225
358
  }
226
359
  }
227
360
  /**
228
- * Устанавливает глобальный обработчик ошибок SDK
229
- * @param {(error: Error) => void} handler Функция-обработчик ошибок
361
+ * Проверяет, подключен ли SDK к WebSocket серверу
362
+ * @returns {boolean} Статус подключения
230
363
  */
231
- static setErrorHandler(handler) {
232
- CodeSolverSDK.errorHandler = handler;
364
+ isConnected() {
365
+ if (!this._indexingClient && !this._reasoningClient && !this._fileSystemClient && !this._dependenciesClient) {
366
+ return false;
367
+ }
368
+ const indexingConnected = this._indexingClient?.isConnected() || false;
369
+ const reasoningConnected = this._reasoningClient?.isConnected() || false;
370
+ const fileSystemConnected = this._fileSystemClient?.isConnected() || false;
371
+ const dependenciesConnected = this._dependenciesClient?.isConnected() || false;
372
+ return indexingConnected || reasoningConnected || fileSystemConnected || dependenciesConnected;
233
373
  }
234
374
  /**
235
- * Обрабатывает ошибку через глобальный обработчик, если он установлен
236
- * @param {Error} error Ошибка для обработки
375
+ * Обрабатывает ошибку
376
+ * @param {Error} error Объект ошибки
237
377
  */
238
378
  static handleError(error) {
239
379
  if (CodeSolverSDK.errorHandler) {
240
380
  CodeSolverSDK.errorHandler(error);
241
381
  }
242
382
  else {
243
- console.error('[CodeSolverSDK]', error);
383
+ console.error('[CodeSolverSDK] Необработанная ошибка:', error);
244
384
  }
245
385
  }
246
386
  /**
247
- * Возвращает текущую версию SDK
248
- * @returns {string} Версия SDK
387
+ * Устанавливает глобальный обработчик ошибок
388
+ * @param {(error: Error) => void} handler Обработчик ошибок
249
389
  */
250
- static getVersion() {
251
- return SDK_VERSION;
390
+ static setErrorHandler(handler) {
391
+ CodeSolverSDK.errorHandler = handler;
252
392
  }
253
393
  /**
254
- * Возвращает текущую версию SDK
255
- * @returns {string} Версия SDK
394
+ * Очищает все ресурсы
256
395
  */
257
- getVersion() {
258
- return SDK_VERSION;
396
+ dispose() {
397
+ this.disconnectAll();
259
398
  }
260
399
  /**
261
- * Устанавливает новый API ключ для SDK
400
+ * Устанавливает новый API ключ
262
401
  * @param {string} apiKey Новый API ключ
263
402
  */
264
403
  setApiKey(apiKey) {
265
- if (!apiKey) {
266
- throw new Error('API ключ не может быть пустым');
267
- }
268
- // Обновляем опции
404
+ // Обновляем API ключ в опциях
269
405
  this._options.apiKey = apiKey;
270
406
  // Пересоздаем HTTP клиент с новым API ключом
271
407
  const newHttpClient = new HttpClient(this._options.baseURL, {
272
408
  headers: {
273
- ...this._options.headers,
274
- 'Authorization': `Bearer ${apiKey}`
409
+ ...(apiKey ? { 'Authorization': `Bearer ${apiKey}` } : {}),
410
+ ...(this._options.headers || {})
275
411
  },
276
412
  timeout: this._options.timeout,
277
413
  httpsAgent: this.environment === 'node' ? this._options.httpsAgent : undefined
278
414
  });
279
- // Обновляем ссылки на клиент и API
415
+ // Обновляем API клиенты с новым HTTP клиентом
280
416
  this.httpClient = newHttpClient;
281
- this._agents = new AgentsApi(newHttpClient);
282
- this._context = new ContextApi(newHttpClient, this._projects);
283
417
  this._projects = new ProjectsApi(newHttpClient);
284
418
  this._search = new SearchApi(newHttpClient);
285
419
  this._reasoning = new ReasoningApi(newHttpClient, this._projects);
420
+ this._context = new ContextApi(newHttpClient, this._projects);
286
421
  this._codeModification = new CodeModificationApi(newHttpClient);
422
+ this._agents = new AgentsApi(newHttpClient);
287
423
  this._chat = new ChatApi(newHttpClient);
288
424
  this._models = new ModelsApi(newHttpClient);
289
425
  this._dependencies = new DependenciesApi(newHttpClient);
290
- // Если есть WebSocket клиент, пересоздаем его
291
- if (this.wsClient) {
292
- const isConnected = this.wsClient.isConnectedToReasoning() || this.wsClient.isConnectedToIndexing();
293
- this.wsClient.disconnectAll();
294
- this.wsClient = new CodeSolverWebSocketClient(this._options.baseURL, {
295
- apiKey,
296
- headers: this._options.headers
297
- });
298
- // Если был подключен, восстанавливаем соединение
299
- if (isConnected) {
300
- this.connect().catch(() => { });
301
- }
302
- }
303
- }
304
- /**
305
- * Подключается к WebSocket серверу
306
- * @returns {Promise<boolean>} Promise с результатом подключения
307
- */
308
- async connect() {
309
- try {
310
- const wsClient = this.getWebSocketClient();
311
- // Проверяем доступность сервера перед подключением
312
- const serverAvailable = await this.checkHealth().catch(() => false);
313
- if (!serverAvailable) {
314
- this.logger.warn('Сервер недоступен, WebSocket подключение может быть нестабильным');
315
- }
316
- // Подключаемся к обоим пространствам имен
317
- await wsClient.connectToReasoning();
318
- await wsClient.connectToIndexing();
319
- return true;
320
- }
321
- catch (error) {
322
- CodeSolverSDK.handleError(error);
323
- return false;
324
- }
325
- }
326
- /**
327
- * Отключается от WebSocket сервера
328
- * @returns {Promise<void>} Promise без результата
329
- */
330
- async disconnect() {
331
- if (this.wsClient) {
332
- await this.wsClient.disconnectAll();
333
- }
334
- }
335
- /**
336
- * Проверяет, подключен ли SDK к WebSocket серверу
337
- * @returns {boolean} Статус подключения
338
- */
339
- isConnected() {
340
- if (!this.wsClient)
341
- return false;
342
- return this.wsClient.isConnectedToReasoning() || this.wsClient.isConnectedToIndexing();
343
- }
344
- /**
345
- * Проверяет доступность API (алиас для checkHealth)
346
- * @returns {Promise<boolean>} Promise с результатом проверки
347
- */
348
- async isHealthy() {
349
- return this.checkHealth();
350
- }
351
- /**
352
- * Проверяет доступность всех сервисов API
353
- * @returns {Promise<{[key: string]: boolean}>} Статус каждого сервиса
354
- */
355
- async checkServices() {
356
- try {
357
- const results = {
358
- api: false,
359
- websocket: false,
360
- database: false,
361
- search: false
362
- };
363
- try {
364
- // Проверка API
365
- results.api = await this.checkHealth();
366
- // Проверка других компонентов через запрос статуса
367
- const response = await this.httpClient.get('/api/v1/status');
368
- if (response && typeof response === 'object') {
369
- results.database = Boolean(response.database?.connected);
370
- results.search = Boolean(response.search?.connected);
371
- // Проверка WebSocket соединения
372
- if (this.wsClient) {
373
- results.websocket = this.wsClient.isConnectedToReasoning() ||
374
- this.wsClient.isConnectedToIndexing();
375
- }
376
- else {
377
- try {
378
- const wsClient = this.getWebSocketClient();
379
- await wsClient.connectToReasoning();
380
- results.websocket = true;
381
- await wsClient.disconnect(WebSocketNamespace.REASONING);
382
- }
383
- catch (e) {
384
- results.websocket = false;
385
- }
386
- }
387
- }
388
- }
389
- catch (error) {
390
- // Игнорируем ошибки при проверке
391
- }
392
- return results;
426
+ // Если есть WebSocket клиенты, пересоздаем их
427
+ if (this._indexingClient) {
428
+ this._indexingClient.disconnect();
429
+ this._indexingClient = null;
393
430
  }
394
- catch (error) {
395
- return {
396
- api: false,
397
- websocket: false,
398
- database: false,
399
- search: false
400
- };
431
+ if (this._reasoningClient) {
432
+ this._reasoningClient.disconnect();
433
+ this._reasoningClient = null;
401
434
  }
402
- }
403
- /**
404
- * Закрывает соединение с сервером (алиас для dispose)
405
- */
406
- close() {
407
- this.dispose();
408
- return Promise.resolve();
409
- }
410
- /**
411
- * Выполняет запрос к API для генерации рассуждения с использованием Anthropic API
412
- * с поддержкой потоковой передачи данных через WebSocket
413
- *
414
- * @param {ReasoningOptions} options Опции для рассуждения
415
- * @param {AnthropicStreamCallbacks} callbacks Коллбэки для обработки событий
416
- * @returns {Promise<void>} Promise без результата
417
- */
418
- async executeReasoning(options, callbacks) {
419
- try {
420
- // Подключаемся к WebSocket серверу если еще не подключены
421
- if (!this.isConnected()) {
422
- await this.connect();
423
- }
424
- // Получаем WebSocket клиент
425
- const wsClient = this.getWebSocketClient();
426
- // Подписываемся на события
427
- this.setupAnthropicEventHandlers(wsClient, callbacks);
428
- // Отправляем запрос на выполнение рассуждения
429
- wsClient.sendToReasoning('execute_reasoning', {
430
- projectId: options.projectId,
431
- prompt: options.query,
432
- level: options.level || 'STANDARD',
433
- type: options.type || 'THINKING',
434
- currentFile: options.currentFilePath,
435
- selection: options.selection,
436
- options: {
437
- modelProvider: options.options?.modelProvider || 'anthropic',
438
- modelName: options.options?.modelName || 'claude-3-sonnet-20240229',
439
- streamResponse: true,
440
- ...(options.options || {})
441
- }
442
- });
443
- this.logger.debug(`Запрос на выполнение рассуждения отправлен: ${JSON.stringify({
444
- projectId: options.projectId,
445
- prompt: options.query.substring(0, 50) + '...',
446
- level: options.level
447
- })}`);
435
+ if (this._fileSystemClient) {
436
+ this._fileSystemClient.disconnect();
437
+ this._fileSystemClient = null;
448
438
  }
449
- catch (error) {
450
- this.logger.error(`Ошибка при отправке запроса на рассуждение: ${error instanceof Error ? error.message : String(error)}`);
451
- callbacks.onError?.({
452
- code: 'SDK_ERROR',
453
- message: `Ошибка при отправке запроса: ${error instanceof Error ? error.message : String(error)}`
454
- });
455
- throw error;
439
+ if (this._dependenciesClient) {
440
+ this._dependenciesClient.disconnect();
441
+ this._dependenciesClient = null;
456
442
  }
457
443
  }
458
- /**
459
- * Настраивает обработчики событий Anthropic API
460
- * @param {CodeSolverWebSocketClient} wsClient WebSocket клиент
461
- * @param {AnthropicStreamCallbacks} callbacks Коллбэки для обработки событий
462
- * @private
463
- */
464
- setupAnthropicEventHandlers(wsClient, callbacks) {
465
- // Регистрируем обработчики для всех типов событий
466
- wsClient.on('message_start', (data) => {
467
- callbacks.onMessageStart?.(data);
468
- callbacks.onAny?.('message_start', data);
469
- }, WebSocketNamespace.REASONING);
470
- wsClient.on('content_block_start', (data) => {
471
- callbacks.onContentStart?.(data);
472
- callbacks.onAny?.('content_block_start', data);
473
- }, WebSocketNamespace.REASONING);
474
- wsClient.on('content_block_delta', (data) => {
475
- callbacks.onContentDelta?.(data);
476
- callbacks.onAny?.('content_block_delta', data);
477
- }, WebSocketNamespace.REASONING);
478
- wsClient.on('content_block_stop', (data) => {
479
- callbacks.onContentStop?.(data);
480
- callbacks.onAny?.('content_block_stop', data);
481
- // Проверяем, является ли блок блоком мышления
482
- if (data.content_block?.type === 'thinking') {
483
- callbacks.onThinkingStop?.(data);
484
- }
485
- }, WebSocketNamespace.REASONING);
486
- wsClient.on('message_delta', (data) => {
487
- callbacks.onAny?.('message_delta', data);
488
- }, WebSocketNamespace.REASONING);
489
- wsClient.on('message_stop', (data) => {
490
- callbacks.onMessageStop?.(data);
491
- callbacks.onAny?.('message_stop', data);
492
- }, WebSocketNamespace.REASONING);
493
- wsClient.on('error', (data) => {
494
- callbacks.onError?.(data);
495
- callbacks.onAny?.('error', data);
496
- }, WebSocketNamespace.REASONING);
497
- }
498
444
  }
499
445
  /** Глобальный обработчик ошибок */
500
446
  CodeSolverSDK.errorHandler = null;
501
- //# sourceMappingURL=code-solver-sdk.js.map
447
+ //# sourceMappingURL=code-solver-sdk-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-solver-sdk-v2.js","sourceRoot":"","sources":["../../src/code-solver-sdk-v2.ts"],"names":[],"mappings":"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"}
@@ -77,6 +77,17 @@ export var WebSocketEvents;
77
77
  WebSocketEvents["HEARTBEAT"] = "heartbeat";
78
78
  WebSocketEvents["HEARTBEAT_ACK"] = "heartbeat_ack";
79
79
  WebSocketEvents["CONNECTION_ERROR"] = "connection_error";
80
+ // События для файловой системы
81
+ WebSocketEvents["INIT"] = "init";
82
+ WebSocketEvents["INIT_OK"] = "init_ok";
83
+ WebSocketEvents["INIT_ERROR"] = "init_error";
84
+ WebSocketEvents["READ_FILE"] = "read_file";
85
+ WebSocketEvents["READ_FILE_RESPONSE"] = "read_file_response";
86
+ WebSocketEvents["LIST_FILES"] = "list_files";
87
+ WebSocketEvents["LIST_FILES_RESPONSE"] = "list_files_response";
88
+ WebSocketEvents["WATCH_START"] = "watch_start";
89
+ WebSocketEvents["WATCH_CONFIRM"] = "watch_confirm";
90
+ WebSocketEvents["FILE_CHANGED"] = "file_changed";
80
91
  // События поиска
81
92
  WebSocketEvents["SEARCH_CODE"] = "search_code";
82
93
  // События буферизации
@@ -136,4 +147,16 @@ export var ReasoningEventNames;
136
147
  ReasoningEventNames["ERROR"] = "error";
137
148
  ReasoningEventNames["CANCEL"] = "cancel";
138
149
  })(ReasoningEventNames || (ReasoningEventNames = {}));
150
+ /**
151
+ * Константы имен событий для модуля файловой системы
152
+ */
153
+ export var FileSystemEventNames;
154
+ (function (FileSystemEventNames) {
155
+ FileSystemEventNames["INIT"] = "init";
156
+ FileSystemEventNames["READ_FILE"] = "read_file";
157
+ FileSystemEventNames["LIST_FILES"] = "list_files";
158
+ FileSystemEventNames["WATCH_FILES"] = "watch_files";
159
+ FileSystemEventNames["FILE_CHANGED"] = "file_changed";
160
+ FileSystemEventNames["ERROR"] = "error";
161
+ })(FileSystemEventNames || (FileSystemEventNames = {}));
139
162
  //# sourceMappingURL=websocket-events.constants.js.map