solver-sdk 1.0.3 → 1.0.5

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 (73) hide show
  1. package/README.md +80 -75
  2. package/dist/esm/index.js +21 -1829
  3. package/dist/esm/index.js.map +1 -1
  4. package/package.json +21 -10
  5. package/dist/esm/types/api/agents-api.d.ts +0 -141
  6. package/dist/esm/types/api/agents-api.d.ts.map +0 -1
  7. package/dist/esm/types/api/code-modification-api.d.ts +0 -104
  8. package/dist/esm/types/api/code-modification-api.d.ts.map +0 -1
  9. package/dist/esm/types/api/context-api.d.ts +0 -86
  10. package/dist/esm/types/api/context-api.d.ts.map +0 -1
  11. package/dist/esm/types/api/projects-api.d.ts +0 -131
  12. package/dist/esm/types/api/projects-api.d.ts.map +0 -1
  13. package/dist/esm/types/api/reasoning-api.d.ts +0 -188
  14. package/dist/esm/types/api/reasoning-api.d.ts.map +0 -1
  15. package/dist/esm/types/api/search-api.d.ts +0 -92
  16. package/dist/esm/types/api/search-api.d.ts.map +0 -1
  17. package/dist/esm/types/code-solver-sdk.d.ts +0 -145
  18. package/dist/esm/types/code-solver-sdk.d.ts.map +0 -1
  19. package/dist/esm/types/index.d.ts +0 -81
  20. package/dist/esm/types/index.d.ts.map +0 -1
  21. package/dist/esm/types/interfaces/http-client.d.ts +0 -110
  22. package/dist/esm/types/interfaces/http-client.d.ts.map +0 -1
  23. package/dist/esm/types/interfaces/sdk-options.d.ts +0 -34
  24. package/dist/esm/types/interfaces/sdk-options.d.ts.map +0 -1
  25. package/dist/esm/types/models/types.d.ts +0 -139
  26. package/dist/esm/types/models/types.d.ts.map +0 -1
  27. package/dist/esm/types/utils/code-solver-websocket-client.d.ts +0 -138
  28. package/dist/esm/types/utils/code-solver-websocket-client.d.ts.map +0 -1
  29. package/dist/esm/types/utils/http-client.d.ts +0 -85
  30. package/dist/esm/types/utils/http-client.d.ts.map +0 -1
  31. package/dist/esm/types/utils/indexing-websocket-client.d.ts +0 -123
  32. package/dist/esm/types/utils/indexing-websocket-client.d.ts.map +0 -1
  33. package/dist/esm/types/utils/sse-client.d.ts +0 -92
  34. package/dist/esm/types/utils/sse-client.d.ts.map +0 -1
  35. package/dist/esm/types/utils/websocket-client.d.ts +0 -118
  36. package/dist/esm/types/utils/websocket-client.d.ts.map +0 -1
  37. package/dist/index.d.ts +0 -1665
  38. package/dist/umd/code-solver-sdk.js +0 -1915
  39. package/dist/umd/code-solver-sdk.js.map +0 -1
  40. package/dist/umd/code-solver-sdk.min.js +0 -2
  41. package/dist/umd/code-solver-sdk.min.js.map +0 -1
  42. package/dist/umd/types/api/agents-api.d.ts +0 -141
  43. package/dist/umd/types/api/agents-api.d.ts.map +0 -1
  44. package/dist/umd/types/api/code-modification-api.d.ts +0 -104
  45. package/dist/umd/types/api/code-modification-api.d.ts.map +0 -1
  46. package/dist/umd/types/api/context-api.d.ts +0 -86
  47. package/dist/umd/types/api/context-api.d.ts.map +0 -1
  48. package/dist/umd/types/api/projects-api.d.ts +0 -131
  49. package/dist/umd/types/api/projects-api.d.ts.map +0 -1
  50. package/dist/umd/types/api/reasoning-api.d.ts +0 -188
  51. package/dist/umd/types/api/reasoning-api.d.ts.map +0 -1
  52. package/dist/umd/types/api/search-api.d.ts +0 -92
  53. package/dist/umd/types/api/search-api.d.ts.map +0 -1
  54. package/dist/umd/types/code-solver-sdk.d.ts +0 -145
  55. package/dist/umd/types/code-solver-sdk.d.ts.map +0 -1
  56. package/dist/umd/types/index.d.ts +0 -81
  57. package/dist/umd/types/index.d.ts.map +0 -1
  58. package/dist/umd/types/interfaces/http-client.d.ts +0 -110
  59. package/dist/umd/types/interfaces/http-client.d.ts.map +0 -1
  60. package/dist/umd/types/interfaces/sdk-options.d.ts +0 -34
  61. package/dist/umd/types/interfaces/sdk-options.d.ts.map +0 -1
  62. package/dist/umd/types/models/types.d.ts +0 -139
  63. package/dist/umd/types/models/types.d.ts.map +0 -1
  64. package/dist/umd/types/utils/code-solver-websocket-client.d.ts +0 -138
  65. package/dist/umd/types/utils/code-solver-websocket-client.d.ts.map +0 -1
  66. package/dist/umd/types/utils/http-client.d.ts +0 -85
  67. package/dist/umd/types/utils/http-client.d.ts.map +0 -1
  68. package/dist/umd/types/utils/indexing-websocket-client.d.ts +0 -123
  69. package/dist/umd/types/utils/indexing-websocket-client.d.ts.map +0 -1
  70. package/dist/umd/types/utils/sse-client.d.ts +0 -92
  71. package/dist/umd/types/utils/sse-client.d.ts.map +0 -1
  72. package/dist/umd/types/utils/websocket-client.d.ts +0 -118
  73. package/dist/umd/types/utils/websocket-client.d.ts.map +0 -1
package/dist/index.d.ts DELETED
@@ -1,1665 +0,0 @@
1
- /**
2
- * Опции повторных попыток запроса
3
- */
4
- interface RetryOptions {
5
- /**
6
- * Максимальное количество повторных попыток
7
- */
8
- maxRetries?: number;
9
- /**
10
- * Базовая задержка между попытками (в мс)
11
- */
12
- retryDelay?: number;
13
- /**
14
- * Максимальная задержка между попытками (в мс)
15
- */
16
- maxRetryDelay?: number;
17
- /**
18
- * HTTP статусы, для которых нужно делать повторную попытку
19
- */
20
- retryStatusCodes?: number[];
21
- /**
22
- * Глобально отключить повторные попытки
23
- */
24
- disabled?: boolean;
25
- }
26
- /**
27
- * Опции HTTP клиента
28
- */
29
- interface HttpClientOptions {
30
- /**
31
- * HTTP заголовки
32
- */
33
- headers?: Record<string, string>;
34
- /**
35
- * Таймаут запроса (в мс)
36
- */
37
- timeout?: number;
38
- /**
39
- * Опции повторных попыток
40
- */
41
- retry?: RetryOptions;
42
- /**
43
- * HTTPS агент для Node.js среды
44
- * В браузере не используется
45
- */
46
- httpsAgent?: any;
47
- }
48
- /**
49
- * Опции запроса
50
- */
51
- interface RequestOptions {
52
- /**
53
- * URL для запроса (относительно baseURL)
54
- */
55
- url: string;
56
- /**
57
- * HTTP метод
58
- */
59
- method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
60
- /**
61
- * Данные для отправки (для POST, PUT, PATCH)
62
- */
63
- data?: any;
64
- /**
65
- * Query параметры
66
- */
67
- params?: Record<string, any>;
68
- /**
69
- * HTTP заголовки для этого запроса
70
- */
71
- headers?: Record<string, string>;
72
- /**
73
- * Таймаут для этого запроса (в мс)
74
- */
75
- timeout?: number;
76
- /**
77
- * Отключить автоматические повторные попытки для этого запроса
78
- */
79
- noRetry?: boolean;
80
- }
81
- /**
82
- * Интерфейс HTTP клиента
83
- */
84
- interface IHttpClient {
85
- /**
86
- * Выполняет HTTP запрос
87
- */
88
- request<T = any>(options: RequestOptions): Promise<T>;
89
- /**
90
- * Выполняет GET запрос
91
- */
92
- get<T = any>(url: string, params?: Record<string, any>, headers?: Record<string, string>): Promise<T>;
93
- /**
94
- * Выполняет POST запрос
95
- */
96
- post<T = any>(url: string, data?: any, headers?: Record<string, string>): Promise<T>;
97
- /**
98
- * Выполняет PUT запрос
99
- */
100
- put<T = any>(url: string, data?: any, headers?: Record<string, string>): Promise<T>;
101
- /**
102
- * Выполняет DELETE запрос
103
- */
104
- delete<T = any>(url: string, params?: Record<string, any>, headers?: Record<string, string>): Promise<T>;
105
- /**
106
- * Выполняет PATCH запрос
107
- */
108
- patch<T = any>(url: string, data?: any, headers?: Record<string, string>): Promise<T>;
109
- }
110
-
111
- declare module 'axios' {
112
- interface AxiosRequestConfig {
113
- skipRetry?: boolean;
114
- }
115
- }
116
- /**
117
- * HTTP клиент для выполнения запросов к API
118
- *
119
- * Предоставляет методы для работы с REST API, включая обработку ошибок,
120
- * повторные попытки и таймауты.
121
- */
122
- declare class HttpClient implements IHttpClient {
123
- /** Базовый URL для запросов */
124
- private readonly baseURL;
125
- /** Опции HTTP клиента */
126
- private readonly options;
127
- /** Axios инстанс */
128
- private readonly axiosInstance;
129
- /** Среда выполнения */
130
- private readonly environment;
131
- /**
132
- * Создает новый HTTP клиент
133
- * @param {string} baseURL Базовый URL для запросов
134
- * @param {HttpClientOptions} [options] Опции для HTTP клиента
135
- */
136
- constructor(baseURL: string, options?: HttpClientOptions);
137
- /**
138
- * Настраивает интерцепторы Axios
139
- */
140
- private setupInterceptors;
141
- /**
142
- * Выполняет HTTP запрос
143
- * @param {RequestOptions} options Опции запроса
144
- * @returns {Promise<T>} Ответ от API
145
- */
146
- request<T = any>(options: RequestOptions): Promise<T>;
147
- /**
148
- * Выполняет GET запрос
149
- * @param {string} url URL для запроса
150
- * @param {Record<string, any>} [params] Query параметры
151
- * @param {Record<string, string>} [headers] HTTP заголовки
152
- * @returns {Promise<T>} Ответ от API
153
- */
154
- get<T = any>(url: string, params?: Record<string, any>, headers?: Record<string, string>): Promise<T>;
155
- /**
156
- * Выполняет POST запрос
157
- * @param {string} url URL для запроса
158
- * @param {any} [data] Данные для отправки
159
- * @param {Record<string, string>} [headers] HTTP заголовки
160
- * @returns {Promise<T>} Ответ от API
161
- */
162
- post<T = any>(url: string, data?: any, headers?: Record<string, string>): Promise<T>;
163
- /**
164
- * Выполняет PUT запрос
165
- * @param {string} url URL для запроса
166
- * @param {any} [data] Данные для отправки
167
- * @param {Record<string, string>} [headers] HTTP заголовки
168
- * @returns {Promise<T>} Ответ от API
169
- */
170
- put<T = any>(url: string, data?: any, headers?: Record<string, string>): Promise<T>;
171
- /**
172
- * Выполняет DELETE запрос
173
- * @param {string} url URL для запроса
174
- * @param {Record<string, any>} [params] Query параметры
175
- * @param {Record<string, string>} [headers] HTTP заголовки
176
- * @returns {Promise<T>} Ответ от API
177
- */
178
- delete<T = any>(url: string, params?: Record<string, any>, headers?: Record<string, string>): Promise<T>;
179
- /**
180
- * Выполняет PATCH запрос
181
- * @param {string} url URL для запроса
182
- * @param {any} [data] Данные для отправки
183
- * @param {Record<string, string>} [headers] HTTP заголовки
184
- * @returns {Promise<T>} Ответ от API
185
- */
186
- patch<T = any>(url: string, data?: any, headers?: Record<string, string>): Promise<T>;
187
- /**
188
- * Обрабатывает ошибки от Axios
189
- * @param {any} error Ошибка от Axios
190
- * @returns {Error} Обработанная ошибка
191
- */
192
- private handleError;
193
- }
194
-
195
- /**
196
- * Информация о проекте
197
- */
198
- interface Project {
199
- /** Уникальный идентификатор проекта */
200
- id: string;
201
- /** Название проекта */
202
- name: string;
203
- /** Путь к проекту */
204
- path: string;
205
- /** Дата создания проекта */
206
- createdAt: string;
207
- /** Дата последнего обновления проекта */
208
- updatedAt: string;
209
- /** Статус индексации */
210
- indexingStatus?: string;
211
- /** Прогресс индексации (0-100) */
212
- indexingProgress?: number;
213
- }
214
- /**
215
- * Опции при создании проекта
216
- */
217
- interface ProjectOptions {
218
- /** Расширения файлов для индексации */
219
- fileExtensions?: string[];
220
- /** Шаблоны файлов для исключения */
221
- excludePatterns?: string[];
222
- /** Дополнительные метаданные */
223
- metadata?: Record<string, any>;
224
- }
225
- /**
226
- * Данные для обновления проекта
227
- */
228
- interface ProjectUpdateData {
229
- /** Название проекта */
230
- name?: string;
231
- /** Путь к проекту */
232
- path?: string;
233
- /** Опции проекта */
234
- options?: ProjectOptions;
235
- }
236
- /**
237
- * Ответ на запрос индексации
238
- */
239
- interface IndexingResponse {
240
- /** Идентификатор задачи индексации */
241
- taskId: string;
242
- /** Статус индексации */
243
- status: string;
244
- /** Сообщение о статусе */
245
- message: string;
246
- }
247
- /**
248
- * Статус индексации проекта
249
- */
250
- interface IndexingStatus {
251
- /** Статус индексации */
252
- status: string;
253
- /** Прогресс индексации (0-100) */
254
- progress: number;
255
- /** Время начала индексации */
256
- startedAt?: string;
257
- /** Время окончания индексации */
258
- completedAt?: string;
259
- /** Ошибка индексации */
260
- error?: string;
261
- }
262
- /**
263
- * API для работы с проектами
264
- */
265
- declare class ProjectsApi {
266
- /** HTTP клиент */
267
- private readonly httpClient;
268
- /**
269
- * Создает новый экземпляр API для работы с проектами
270
- * @param {HttpClient} httpClient HTTP клиент
271
- */
272
- constructor(httpClient: HttpClient);
273
- /**
274
- * Получает список всех проектов
275
- * @returns {Promise<Project[]>} Список проектов
276
- */
277
- getAllProjects(): Promise<Project[]>;
278
- /**
279
- * Получает проект по ID
280
- * @param {string} projectId ID проекта
281
- * @returns {Promise<Project>} Проект
282
- */
283
- getProject(projectId: string): Promise<Project>;
284
- /**
285
- * Создает новый проект
286
- * @param {string} name Название проекта
287
- * @param {string} path Путь к проекту
288
- * @param {ProjectOptions} [options] Дополнительные опции проекта
289
- * @returns {Promise<Project>} Созданный проект
290
- */
291
- createProject(name: string, path: string, options?: ProjectOptions): Promise<Project>;
292
- /**
293
- * Обновляет проект
294
- * @param {string} projectId ID проекта
295
- * @param {Partial<ProjectUpdateData>} data Данные для обновления
296
- * @returns {Promise<Project>} Обновленный проект
297
- */
298
- updateProject(projectId: string, data: Partial<ProjectUpdateData>): Promise<Project>;
299
- /**
300
- * Удаляет проект
301
- * @param {string} projectId ID проекта
302
- * @returns {Promise<void>}
303
- */
304
- deleteProject(projectId: string): Promise<void>;
305
- /**
306
- * Запускает индексацию проекта
307
- * @param {string} projectId ID проекта
308
- * @returns {Promise<IndexingResponse>} Информация о начатой индексации
309
- */
310
- indexProject(projectId: string): Promise<IndexingResponse>;
311
- /**
312
- * Останавливает индексацию проекта
313
- * @param {string} projectId ID проекта
314
- * @returns {Promise<void>}
315
- */
316
- stopIndexing(projectId: string): Promise<void>;
317
- /**
318
- * Получает статус индексации проекта
319
- * @param {string} projectId ID проекта
320
- * @returns {Promise<IndexingStatus>} Статус индексации
321
- */
322
- getIndexingStatus(projectId: string): Promise<IndexingStatus>;
323
- }
324
-
325
- /**
326
- * Параметры поиска кода
327
- */
328
- interface SearchCodeParams {
329
- /** Поисковый запрос */
330
- query: string;
331
- /** Лимит результатов */
332
- limit?: number;
333
- /** Смещение для пагинации */
334
- offset?: number;
335
- /** Фильтр по расширениям файлов */
336
- fileExtensions?: string[];
337
- /** Паттерны для включения файлов */
338
- includePatterns?: string[];
339
- /** Паттерны для исключения файлов */
340
- excludePatterns?: string[];
341
- }
342
- /**
343
- * Результат поиска кода
344
- */
345
- interface SearchResult {
346
- /** Идентификатор результата */
347
- id: string;
348
- /** Путь к файлу */
349
- filePath: string;
350
- /** Относительный путь к файлу */
351
- relativePath: string;
352
- /** Язык программирования */
353
- language: string;
354
- /** Начальная строка совпадения */
355
- startLine: number;
356
- /** Конечная строка совпадения */
357
- endLine: number;
358
- /** Фрагмент кода с совпадением */
359
- snippet: string;
360
- /** Релевантность результата (0-100) */
361
- score: number;
362
- }
363
- /**
364
- * Результаты поиска кода
365
- */
366
- interface SearchResults {
367
- /** Результаты поиска */
368
- results: SearchResult[];
369
- /** Общее количество найденных результатов */
370
- total: number;
371
- /** Время выполнения запроса в мс */
372
- time: number;
373
- }
374
- /**
375
- * API для поиска кода
376
- */
377
- declare class SearchApi {
378
- /** HTTP клиент */
379
- private readonly httpClient;
380
- /**
381
- * Создает новый экземпляр API для поиска кода
382
- * @param {HttpClient} httpClient HTTP клиент
383
- */
384
- constructor(httpClient: HttpClient);
385
- /**
386
- * Выполняет поиск кода в проекте
387
- * @param {string} projectId Идентификатор проекта
388
- * @param {SearchCodeParams} params Параметры поиска
389
- * @returns {Promise<SearchResults>} Результаты поиска
390
- */
391
- searchCode(projectId: string, params: SearchCodeParams): Promise<SearchResults>;
392
- /**
393
- * Выполняет семантический поиск кода в проекте
394
- * @param {string} projectId Идентификатор проекта
395
- * @param {SearchCodeParams} params Параметры поиска
396
- * @returns {Promise<SearchResults>} Результаты поиска
397
- */
398
- semanticSearch(projectId: string, params: SearchCodeParams): Promise<SearchResults>;
399
- /**
400
- * Получает популярные поисковые запросы
401
- * @param {string} projectId Идентификатор проекта
402
- * @param {number} [limit=10] Лимит результатов
403
- * @returns {Promise<string[]>} Популярные поисковые запросы
404
- */
405
- getPopularQueries(projectId: string, limit?: number): Promise<string[]>;
406
- /**
407
- * Получает подсказки для автозаполнения поискового запроса
408
- * @param {string} projectId Идентификатор проекта
409
- * @param {string} query Начало поискового запроса
410
- * @param {number} [limit=5] Лимит результатов
411
- * @returns {Promise<string[]>} Подсказки для автозаполнения
412
- */
413
- getQuerySuggestions(projectId: string, query: string, limit?: number): Promise<string[]>;
414
- }
415
-
416
- /**
417
- * Фрагмент кода для контекста
418
- */
419
- interface CodeSnippet {
420
- /** Путь к файлу */
421
- filePath: string;
422
- /** Относительный путь к файлу */
423
- relativePath?: string;
424
- /** Начальная строка */
425
- startLine: number;
426
- /** Конечная строка */
427
- endLine: number;
428
- /** Содержимое фрагмента */
429
- content: string;
430
- /** Язык программирования */
431
- language?: string;
432
- }
433
- /**
434
- * Автоматически определенный контекст
435
- */
436
- interface AutoContext {
437
- /** Фрагменты кода */
438
- codeSnippets: CodeSnippet[];
439
- /** Релевантность к запросу (0-100) */
440
- relevance: number;
441
- }
442
- /**
443
- * Параметры для определения контекста
444
- */
445
- interface DetectContextParams {
446
- /** Идентификатор проекта */
447
- projectId: string;
448
- /** Запрос для определения контекста */
449
- query: string;
450
- /** Максимальное количество фрагментов кода */
451
- maxSnippets?: number;
452
- /** Минимальный порог релевантности (0-100) */
453
- relevanceThreshold?: number;
454
- }
455
- /**
456
- * API для работы с контекстом
457
- */
458
- declare class ContextApi {
459
- /** HTTP клиент */
460
- private readonly httpClient;
461
- /**
462
- * Создает новый экземпляр API для работы с контекстом
463
- * @param {HttpClient} httpClient HTTP клиент
464
- */
465
- constructor(httpClient: HttpClient);
466
- /**
467
- * Определяет контекст для запроса
468
- * @param {DetectContextParams} params Параметры определения контекста
469
- * @returns {Promise<AutoContext>} Определенный контекст
470
- */
471
- detectContext(params: DetectContextParams): Promise<AutoContext>;
472
- /**
473
- * Получает содержимое файла
474
- * @param {string} projectId Идентификатор проекта
475
- * @param {string} filePath Путь к файлу
476
- * @returns {Promise<string>} Содержимое файла
477
- */
478
- getFileContent(projectId: string, filePath: string): Promise<string>;
479
- /**
480
- * Получает содержимое фрагмента файла
481
- * @param {string} projectId Идентификатор проекта
482
- * @param {string} filePath Путь к файлу
483
- * @param {number} startLine Начальная строка
484
- * @param {number} endLine Конечная строка
485
- * @returns {Promise<CodeSnippet>} Фрагмент кода
486
- */
487
- getFileSnippet(projectId: string, filePath: string, startLine: number, endLine: number): Promise<CodeSnippet>;
488
- /**
489
- * Получает структуру директории
490
- * @param {string} projectId Идентификатор проекта
491
- * @param {string} [dirPath='/'] Путь к директории
492
- * @returns {Promise<Array<{name: string, type: 'file' | 'directory', path: string}>>} Структура директории
493
- */
494
- getDirectoryStructure(projectId: string, dirPath?: string): Promise<Array<{
495
- name: string;
496
- type: 'file' | 'directory';
497
- path: string;
498
- }>>;
499
- }
500
-
501
- /**
502
- * Рассуждение
503
- */
504
- interface Reasoning {
505
- /** Уникальный идентификатор рассуждения */
506
- id: string;
507
- /** Идентификатор проекта */
508
- projectId: string;
509
- /** Запрос */
510
- query: string;
511
- /** Статус рассуждения */
512
- status: 'pending' | 'running' | 'completed' | 'error';
513
- /** Результат рассуждения */
514
- result?: string;
515
- /** Дата создания */
516
- createdAt: string;
517
- /** Дата завершения */
518
- completedAt?: string;
519
- /** Контекст рассуждения */
520
- context?: any;
521
- /** Настройки рассуждения */
522
- settings?: any;
523
- /** Промежуточные мысли */
524
- thinking?: string[];
525
- /** Сообщение об ошибке (если есть) */
526
- error?: string;
527
- }
528
- /**
529
- * Параметры для получения списка рассуждений
530
- */
531
- interface GetReasoningsParams {
532
- /** Идентификатор проекта (опционально) */
533
- projectId?: string;
534
- /** Статус рассуждения (опционально) */
535
- status?: 'pending' | 'running' | 'completed' | 'error';
536
- /** Лимит результатов */
537
- limit?: number;
538
- /** Смещение для пагинации */
539
- offset?: number;
540
- }
541
- /**
542
- * Шаг мышления в процессе рассуждения
543
- */
544
- interface ThinkingStep {
545
- /** ID шага */
546
- id: string;
547
- /** Содержимое шага мышления */
548
- content: string;
549
- /** Время создания шага */
550
- timestamp: string;
551
- /** Тип шага */
552
- type: 'thinking' | 'plan' | 'result' | 'error';
553
- }
554
- /**
555
- * Опции для создания рассуждения
556
- */
557
- interface ReasoningOptions {
558
- /** ID проекта */
559
- projectId: string;
560
- /** Запрос пользователя */
561
- query: string;
562
- /** Тип рассуждения */
563
- type?: 'THINKING' | 'PLANNING' | 'DEBUGGING' | 'REFACTORING';
564
- /** Уровень детализации */
565
- level?: 'CONCISE' | 'STANDARD' | 'DETAILED' | 'VERBOSE';
566
- /** Текущий файл */
567
- currentFilePath?: string;
568
- /** Выделение кода */
569
- selection?: {
570
- startLine: number;
571
- endLine: number;
572
- content?: string;
573
- };
574
- /** Дополнительные опции */
575
- options?: {
576
- /** Провайдер модели */
577
- modelProvider?: string;
578
- /** Название модели */
579
- modelName?: string;
580
- /** Потоковый ответ */
581
- streamResponse?: boolean;
582
- /** Режим планирования */
583
- planningMode?: boolean;
584
- /** Опции контекста */
585
- contextOptions?: {
586
- /** Максимальное количество токенов */
587
- maxTokens?: number;
588
- /** Режим сжатия контекста */
589
- compressionMode?: 'light' | 'moderate' | 'aggressive';
590
- };
591
- };
592
- }
593
- /**
594
- * API для работы с рассуждениями
595
- */
596
- declare class ReasoningApi {
597
- /** HTTP клиент */
598
- private readonly httpClient;
599
- /**
600
- * Создает новый экземпляр API для работы с рассуждениями
601
- * @param {HttpClient} httpClient HTTP клиент
602
- */
603
- constructor(httpClient: HttpClient);
604
- /**
605
- * Получает список рассуждений
606
- * @param {GetReasoningsParams} [params] Параметры для получения списка
607
- * @returns {Promise<Reasoning[]>} Список рассуждений
608
- */
609
- getReasonings(params?: GetReasoningsParams): Promise<Reasoning[]>;
610
- /**
611
- * Получает рассуждение по ID
612
- * @param {string} reasoningId ID рассуждения
613
- * @returns {Promise<Reasoning>} Рассуждение
614
- */
615
- getReasoning(reasoningId: string): Promise<Reasoning>;
616
- /**
617
- * Создает новое рассуждение
618
- * @param {ReasoningOptions} options Опции для рассуждения
619
- * @returns {Promise<Reasoning>} Созданное рассуждение
620
- */
621
- createReasoning(options: ReasoningOptions): Promise<Reasoning>;
622
- /**
623
- * Запускает рассуждение
624
- * @param {string} reasoningId ID рассуждения
625
- * @returns {Promise<Reasoning>} Обновленное рассуждение
626
- */
627
- startReasoning(reasoningId: string): Promise<Reasoning>;
628
- /**
629
- * Останавливает рассуждение
630
- * @param {string} reasoningId ID рассуждения
631
- * @returns {Promise<Reasoning>} Обновленное рассуждение
632
- */
633
- stopReasoning(reasoningId: string): Promise<Reasoning>;
634
- /**
635
- * Удаляет рассуждение
636
- * @param {string} reasoningId ID рассуждения
637
- * @returns {Promise<void>}
638
- */
639
- deleteReasoning(reasoningId: string): Promise<void>;
640
- /**
641
- * Получает ход мыслей рассуждения
642
- * @param {string} reasoningId ID рассуждения
643
- * @returns {Promise<ThinkingStep[]>} Ход мыслей
644
- */
645
- getThinking(reasoningId: string): Promise<ThinkingStep[]>;
646
- /**
647
- * Получает все рассуждения проекта
648
- * @param {string} projectId ID проекта
649
- * @returns {Promise<Reasoning[]>} Список рассуждений
650
- */
651
- getAllReasonings(projectId: string): Promise<Reasoning[]>;
652
- }
653
-
654
- /**
655
- * Параметры для модификации кода
656
- */
657
- interface CodeModificationParams {
658
- /** Идентификатор проекта */
659
- projectId: string;
660
- /** Инструкция для модификации кода */
661
- instruction: string;
662
- /** Путь к файлу для модификации */
663
- filePath: string;
664
- /** Содержимое файла (если файл не существует) */
665
- fileContent?: string;
666
- /** Начальная строка для модификации */
667
- startLine?: number;
668
- /** Конечная строка для модификации */
669
- endLine?: number;
670
- /** Дополнительный контекст для модификации */
671
- context?: {
672
- /** Дополнительные фрагменты кода */
673
- codeSnippets?: Array<{
674
- /** Путь к файлу */
675
- filePath: string;
676
- /** Начальная строка */
677
- startLine: number;
678
- /** Конечная строка */
679
- endLine: number;
680
- /** Содержимое */
681
- content: string;
682
- }>;
683
- };
684
- }
685
- /**
686
- * Результат модификации кода
687
- */
688
- interface CodeModificationResult {
689
- /** Идентификатор модификации */
690
- id: string;
691
- /** Идентификатор проекта */
692
- projectId: string;
693
- /** Путь к файлу */
694
- filePath: string;
695
- /** Исходное содержимое */
696
- originalContent?: string;
697
- /** Модифицированное содержимое */
698
- modifiedContent: string;
699
- /** Патч (diff) для применения изменений */
700
- patch?: string;
701
- /** Статус модификации */
702
- status: 'pending' | 'completed' | 'error';
703
- /** Дата создания */
704
- createdAt: string;
705
- /** Сообщение об ошибке (если есть) */
706
- error?: string;
707
- }
708
- /**
709
- * API для модификации кода
710
- */
711
- declare class CodeModificationApi {
712
- /** HTTP клиент */
713
- private readonly httpClient;
714
- /**
715
- * Создает новый экземпляр API для модификации кода
716
- * @param {HttpClient} httpClient HTTP клиент
717
- */
718
- constructor(httpClient: HttpClient);
719
- /**
720
- * Выполняет модификацию кода
721
- * @param {CodeModificationParams} params Параметры модификации
722
- * @returns {Promise<CodeModificationResult>} Результат модификации
723
- */
724
- modifyCode(params: CodeModificationParams): Promise<CodeModificationResult>;
725
- /**
726
- * Применяет результат модификации к файлу
727
- * @param {string} modificationId Идентификатор модификации
728
- * @returns {Promise<CodeModificationResult>} Обновленный результат модификации
729
- */
730
- applyModification(modificationId: string): Promise<CodeModificationResult>;
731
- /**
732
- * Отменяет применение модификации
733
- * @param {string} modificationId Идентификатор модификации
734
- * @returns {Promise<CodeModificationResult>} Обновленный результат модификации
735
- */
736
- revertModification(modificationId: string): Promise<CodeModificationResult>;
737
- /**
738
- * Получает модификацию по идентификатору
739
- * @param {string} modificationId Идентификатор модификации
740
- * @returns {Promise<CodeModificationResult>} Результат модификации
741
- */
742
- getModification(modificationId: string): Promise<CodeModificationResult>;
743
- /**
744
- * Получает список модификаций для проекта
745
- * @param {string} projectId Идентификатор проекта
746
- * @param {object} [params] Параметры запроса
747
- * @param {number} [params.limit] Лимит результатов
748
- * @param {number} [params.offset] Смещение для пагинации
749
- * @returns {Promise<CodeModificationResult[]>} Список результатов модификации
750
- */
751
- getModifications(projectId: string, params?: {
752
- limit?: number;
753
- offset?: number;
754
- }): Promise<CodeModificationResult[]>;
755
- }
756
-
757
- /**
758
- * Опции для WebSocket клиента
759
- */
760
- interface WebSocketClientOptions {
761
- /**
762
- * HTTP заголовки для WebSocket соединения
763
- */
764
- headers?: Record<string, string>;
765
- /**
766
- * Таймаут подключения в миллисекундах
767
- */
768
- connectionTimeout?: number;
769
- /**
770
- * Протоколы WebSocket
771
- */
772
- protocols?: string | string[];
773
- /**
774
- * Максимальное количество попыток переподключения
775
- */
776
- maxRetries?: number;
777
- /**
778
- * Задержка перед попыткой переподключения в миллисекундах
779
- */
780
- retryDelay?: number;
781
- /**
782
- * Максимальная задержка перед попыткой переподключения
783
- */
784
- maxRetryDelay?: number;
785
- /**
786
- * Автоматически переподключаться при потере соединения
787
- */
788
- autoReconnect?: boolean;
789
- }
790
- /**
791
- * Интерфейс для обработчика события WebSocket
792
- */
793
- interface WebSocketEventHandler {
794
- (event: any): void;
795
- }
796
- /**
797
- * Базовый класс для WebSocket клиентов
798
- */
799
- declare class WebSocketClient {
800
- /** URL для подключения */
801
- protected readonly url: string;
802
- /** Опции клиента */
803
- protected readonly options: WebSocketClientOptions;
804
- /** Экземпляр WebSocket */
805
- protected webSocket: WebSocket | null;
806
- /** Счетчик попыток переподключения */
807
- protected retryCount: number;
808
- /** Флаг, указывающий, что соединение было закрыто намеренно */
809
- protected intentionallyClosed: boolean;
810
- /** Таймер переподключения */
811
- protected reconnectTimer: any;
812
- /** Таймер таймаута соединения */
813
- protected connectionTimeoutTimer: any;
814
- /** Обработчики событий */
815
- protected eventHandlers: Record<string, WebSocketEventHandler[]>;
816
- /** Очередь сообщений для отправки после подключения */
817
- protected messageQueue: Array<string | ArrayBufferLike | Blob | ArrayBufferView>;
818
- /** Состояние соединения */
819
- protected connected: boolean;
820
- /** Среда выполнения */
821
- protected readonly isBrowser: boolean;
822
- /**
823
- * Создает новый WebSocket клиент
824
- * @param {string} url URL для подключения
825
- * @param {WebSocketClientOptions} [options] Опции клиента
826
- */
827
- constructor(url: string, options?: WebSocketClientOptions);
828
- /**
829
- * Подключается к WebSocket серверу
830
- * @returns {Promise<void>}
831
- */
832
- connect(): Promise<void>;
833
- /**
834
- * Переподключается к WebSocket серверу
835
- * @private
836
- */
837
- private reconnect;
838
- /**
839
- * Закрывает WebSocket соединение
840
- * @param {number} [code=1000] Код закрытия
841
- * @param {string} [reason] Причина закрытия
842
- */
843
- close(code?: number, reason?: string): void;
844
- /**
845
- * Отправляет сообщение через WebSocket
846
- * @param {string | object} message Сообщение для отправки
847
- * @returns {boolean} Успешно ли отправлено сообщение
848
- */
849
- send(message: string | object): boolean;
850
- /**
851
- * Проверяет, установлено ли соединение
852
- * @returns {boolean} Установлено ли соединение
853
- */
854
- isConnected(): boolean;
855
- /**
856
- * Добавляет обработчик события
857
- * @param {string} eventType Тип события
858
- * @param {WebSocketEventHandler} handler Обработчик события
859
- */
860
- on(eventType: string, handler: WebSocketEventHandler): void;
861
- /**
862
- * Удаляет обработчик события
863
- * @param {string} eventType Тип события
864
- * @param {WebSocketEventHandler} [handler] Обработчик события (если не указан, удаляются все обработчики)
865
- */
866
- off(eventType: string, handler?: WebSocketEventHandler): void;
867
- /**
868
- * Вызывает обработчики для указанного события
869
- * @param {string} eventType Тип события
870
- * @param {any} data Данные события
871
- */
872
- protected dispatchEvent(eventType: string, data: any): void;
873
- }
874
-
875
- /**
876
- * Пространства имен для WebSocket
877
- */
878
- declare enum WebSocketNamespace {
879
- /** Пространство имен для рассуждений */
880
- REASONING = "reasoning",
881
- /** Пространство имен для индексации */
882
- INDEXING = "indexing",
883
- /** Пространство имен для уведомлений */
884
- NOTIFICATIONS = "notifications"
885
- }
886
- /**
887
- * Опции для Code Solver WebSocket клиента
888
- */
889
- interface CodeSolverWebSocketOptions extends WebSocketClientOptions {
890
- /** API ключ для авторизации */
891
- apiKey?: string;
892
- }
893
- /**
894
- * WebSocket клиент для работы с Code Solver API
895
- */
896
- declare class CodeSolverWebSocketClient {
897
- /** Базовый URL API */
898
- private readonly baseURL;
899
- /** Опции клиента */
900
- private readonly options;
901
- /** WebSocket клиенты для разных пространств имен */
902
- private clients;
903
- /** Активная сессия рассуждения */
904
- private activeReasoningId;
905
- /** Активная сессия индексации */
906
- private activeProjectId;
907
- /**
908
- * Создает новый WebSocket клиент для Code Solver API
909
- * @param {string} baseURL Базовый URL API
910
- * @param {CodeSolverWebSocketOptions} [options] Опции клиента
911
- */
912
- constructor(baseURL: string, options?: CodeSolverWebSocketOptions);
913
- /**
914
- * Подключается к пространству имен WebSocket
915
- * @param {WebSocketNamespace} namespace Пространство имен
916
- * @param {Record<string, any>} [params] Параметры подключения
917
- * @returns {Promise<WebSocketClient>} WebSocket клиент
918
- */
919
- private connect;
920
- /**
921
- * Подключается к сессии рассуждения
922
- * @param {string} [reasoningId] Идентификатор рассуждения
923
- * @returns {Promise<void>}
924
- */
925
- connectToReasoning(reasoningId?: string): Promise<void>;
926
- /**
927
- * Подключается к сессии индексации проекта
928
- * @param {string} [projectId] Идентификатор проекта
929
- * @returns {Promise<void>}
930
- */
931
- connectToIndexing(projectId?: string): Promise<void>;
932
- /**
933
- * Подключается к уведомлениям
934
- * @returns {Promise<void>}
935
- */
936
- connectToNotifications(): Promise<void>;
937
- /**
938
- * Отключается от пространства имен
939
- * @param {WebSocketNamespace} namespace Пространство имен
940
- */
941
- disconnect(namespace: WebSocketNamespace): void;
942
- /**
943
- * Отключается от всех пространств имен
944
- */
945
- disconnectAll(): void;
946
- /**
947
- * Добавляет обработчик события для пространства имен
948
- * @param {string} eventType Тип события
949
- * @param {Function} handler Обработчик события
950
- * @param {WebSocketNamespace} [namespace] Пространство имен (если не указано, добавляется ко всем активным)
951
- */
952
- on(eventType: string, handler: (data: any) => void, namespace?: WebSocketNamespace): void;
953
- /**
954
- * Удаляет обработчик события для пространства имен
955
- * @param {string} eventType Тип события
956
- * @param {Function} [handler] Обработчик события (если не указан, удаляются все обработчики)
957
- * @param {WebSocketNamespace} [namespace] Пространство имен (если не указано, удаляется из всех активных)
958
- */
959
- off(eventType: string, handler?: (data: any) => void, namespace?: WebSocketNamespace): void;
960
- /**
961
- * Отправляет сообщение в пространство имен
962
- * @param {WebSocketNamespace} namespace Пространство имен
963
- * @param {string} eventType Тип события
964
- * @param {any} [data] Данные сообщения
965
- * @returns {boolean} Успешно ли отправлено сообщение
966
- */
967
- send(namespace: WebSocketNamespace, eventType: string, data?: any): boolean;
968
- /**
969
- * Отправляет сообщение в активную сессию рассуждения
970
- * @param {string} eventType Тип события
971
- * @param {any} [data] Данные сообщения
972
- * @returns {boolean} Успешно ли отправлено сообщение
973
- */
974
- sendToReasoning(eventType: string, data?: any): boolean;
975
- /**
976
- * Отправляет сообщение в активную сессию индексации
977
- * @param {string} eventType Тип события
978
- * @param {any} [data] Данные сообщения
979
- * @returns {boolean} Успешно ли отправлено сообщение
980
- */
981
- sendToIndexing(eventType: string, data?: any): boolean;
982
- /**
983
- * Отправляет сообщение в уведомления
984
- * @param {string} eventType Тип события
985
- * @param {any} [data] Данные сообщения
986
- * @returns {boolean} Успешно ли отправлено сообщение
987
- */
988
- sendToNotifications(eventType: string, data?: any): boolean;
989
- /**
990
- * Проверяет, подключен ли клиент к указанному пространству имен
991
- * @param {WebSocketNamespace} namespace Пространство имен
992
- * @returns {boolean} Статус подключения
993
- */
994
- isConnected(namespace: WebSocketNamespace): boolean;
995
- /**
996
- * Проверяет, подключен ли клиент к пространству имен рассуждений
997
- * @returns {boolean} Статус подключения
998
- */
999
- isConnectedToReasoning(): boolean;
1000
- /**
1001
- * Проверяет, подключен ли клиент к пространству имен индексации
1002
- * @returns {boolean} Статус подключения
1003
- */
1004
- isConnectedToIndexing(): boolean;
1005
- /**
1006
- * Проверяет, подключен ли клиент к пространству имен уведомлений
1007
- * @returns {boolean} Статус подключения
1008
- */
1009
- isConnectedToNotifications(): boolean;
1010
- }
1011
-
1012
- /**
1013
- * Тип агента
1014
- */
1015
- type AgentType = 'coding' | 'documentation' | 'testing' | 'analysis' | 'custom';
1016
- /**
1017
- * Статус агента
1018
- */
1019
- type AgentStatus = 'idle' | 'running' | 'completed' | 'error';
1020
- /**
1021
- * Агент
1022
- */
1023
- interface Agent {
1024
- /** Уникальный идентификатор агента */
1025
- id: string;
1026
- /** Идентификатор проекта */
1027
- projectId: string;
1028
- /** Название агента */
1029
- name: string;
1030
- /** Описание агента */
1031
- description: string;
1032
- /** Тип агента */
1033
- type: AgentType;
1034
- /** Статус агента */
1035
- status: AgentStatus;
1036
- /** Дата создания */
1037
- createdAt: string;
1038
- /** Дата обновления */
1039
- updatedAt: string;
1040
- /** Настройки агента */
1041
- settings?: Record<string, any>;
1042
- }
1043
- /**
1044
- * Параметры для создания агента
1045
- */
1046
- interface CreateAgentParams {
1047
- /** Идентификатор проекта */
1048
- projectId: string;
1049
- /** Название агента */
1050
- name: string;
1051
- /** Описание агента */
1052
- description?: string;
1053
- /** Тип агента */
1054
- type: AgentType;
1055
- /** Настройки агента */
1056
- settings?: Record<string, any>;
1057
- }
1058
- /**
1059
- * Задача агента
1060
- */
1061
- interface AgentTask {
1062
- /** Уникальный идентификатор задачи */
1063
- id: string;
1064
- /** Идентификатор агента */
1065
- agentId: string;
1066
- /** Описание задачи */
1067
- description: string;
1068
- /** Статус задачи */
1069
- status: 'pending' | 'running' | 'completed' | 'failed';
1070
- /** Результат выполнения задачи */
1071
- result?: any;
1072
- /** Дата создания */
1073
- createdAt: string;
1074
- /** Дата обновления */
1075
- updatedAt: string;
1076
- }
1077
- /**
1078
- * API для работы с агентами
1079
- */
1080
- declare class AgentsApi {
1081
- /** HTTP клиент */
1082
- private readonly httpClient;
1083
- /**
1084
- * Создает новый экземпляр API для работы с агентами
1085
- * @param {HttpClient} httpClient HTTP клиент
1086
- */
1087
- constructor(httpClient: HttpClient);
1088
- /**
1089
- * Получает список всех агентов проекта
1090
- * @param {string} projectId Идентификатор проекта
1091
- * @returns {Promise<Agent[]>} Список агентов
1092
- */
1093
- getAgents(projectId: string): Promise<Agent[]>;
1094
- /**
1095
- * Получает агента по идентификатору
1096
- * @param {string} agentId Идентификатор агента
1097
- * @returns {Promise<Agent>} Агент
1098
- */
1099
- getAgent(agentId: string): Promise<Agent>;
1100
- /**
1101
- * Создает нового агента
1102
- * @param {CreateAgentParams} params Параметры создания агента
1103
- * @returns {Promise<Agent>} Созданный агент
1104
- */
1105
- createAgent(params: CreateAgentParams): Promise<Agent>;
1106
- /**
1107
- * Обновляет агента
1108
- * @param {string} agentId Идентификатор агента
1109
- * @param {Partial<Pick<Agent, 'name' | 'description' | 'settings'>>} data Данные для обновления
1110
- * @returns {Promise<Agent>} Обновленный агент
1111
- */
1112
- updateAgent(agentId: string, data: Partial<Pick<Agent, 'name' | 'description' | 'settings'>>): Promise<Agent>;
1113
- /**
1114
- * Удаляет агента
1115
- * @param {string} agentId Идентификатор агента
1116
- * @returns {Promise<void>}
1117
- */
1118
- deleteAgent(agentId: string): Promise<void>;
1119
- /**
1120
- * Запускает агента
1121
- * @param {string} agentId Идентификатор агента
1122
- * @param {object} [params] Параметры запуска
1123
- * @returns {Promise<Agent>} Обновленный агент
1124
- */
1125
- startAgent(agentId: string, params?: object): Promise<Agent>;
1126
- /**
1127
- * Останавливает агента
1128
- * @param {string} agentId Идентификатор агента
1129
- * @returns {Promise<Agent>} Обновленный агент
1130
- */
1131
- stopAgent(agentId: string): Promise<Agent>;
1132
- /**
1133
- * Получает задачи агента
1134
- * @param {string} agentId Идентификатор агента
1135
- * @returns {Promise<AgentTask[]>} Список задач
1136
- */
1137
- getAgentTasks(agentId: string): Promise<AgentTask[]>;
1138
- /**
1139
- * Создает новую задачу для агента
1140
- * @param {string} agentId Идентификатор агента
1141
- * @param {object} params Параметры задачи
1142
- * @param {string} params.description Описание задачи
1143
- * @param {object} [params.context] Контекст задачи
1144
- * @returns {Promise<AgentTask>} Созданная задача
1145
- */
1146
- createAgentTask(agentId: string, params: {
1147
- description: string;
1148
- context?: object;
1149
- }): Promise<AgentTask>;
1150
- }
1151
-
1152
- /**
1153
- * Опции для инициализации SDK
1154
- */
1155
- interface CodeSolverSDKOptions {
1156
- /**
1157
- * Базовый URL API
1158
- */
1159
- baseURL: string;
1160
- /**
1161
- * API ключ (если требуется)
1162
- */
1163
- apiKey?: string;
1164
- /**
1165
- * Таймаут для HTTP запросов в миллисекундах (по умолчанию 30000)
1166
- */
1167
- timeout?: number;
1168
- /**
1169
- * Пользовательские HTTP заголовки
1170
- */
1171
- headers?: Record<string, string>;
1172
- /**
1173
- * Опции для HTTPS агента (для Node.js)
1174
- * В браузере не используется
1175
- */
1176
- httpsAgent?: any;
1177
- /**
1178
- * Режим работы SDK
1179
- * 'browser' - оптимизирован для браузера
1180
- * 'node' - оптимизирован для Node.js
1181
- * 'auto' - автоматическое определение (по умолчанию)
1182
- */
1183
- mode?: 'browser' | 'node' | 'auto';
1184
- }
1185
-
1186
- /**
1187
- * Основной класс SDK для работы с Code Solver API
1188
- * Поддерживает работу как в браузере, так и в Node.js
1189
- */
1190
- declare class CodeSolverSDK {
1191
- /** Опции SDK */
1192
- private readonly _options;
1193
- /** HTTP клиент для запросов к API */
1194
- private httpClient;
1195
- /** WebSocket клиент для работы с реалтайм API */
1196
- private wsClient;
1197
- /** API для работы с агентами */
1198
- private _agents;
1199
- /** API для работы с контекстом */
1200
- private _context;
1201
- /** API для работы с проектами */
1202
- private readonly _projects;
1203
- /** API для поиска кода */
1204
- private readonly _search;
1205
- /** API для работы с рассуждениями */
1206
- private readonly _reasoning;
1207
- /** API для модификации кода */
1208
- private readonly _codeModification;
1209
- /** Среда выполнения */
1210
- private readonly environment;
1211
- /** Глобальный обработчик ошибок */
1212
- private static errorHandler;
1213
- /**
1214
- * Создает новый экземпляр SDK
1215
- * @param {CodeSolverSDKOptions} options Опции SDK
1216
- */
1217
- constructor(options: CodeSolverSDKOptions);
1218
- /**
1219
- * Проверяет доступность API
1220
- * @returns {Promise<boolean>} Доступен ли API
1221
- */
1222
- checkHealth(): Promise<boolean>;
1223
- /**
1224
- * Получает WebSocket клиент
1225
- * @returns {CodeSolverWebSocketClient} WebSocket клиент
1226
- */
1227
- getWebSocketClient(): CodeSolverWebSocketClient;
1228
- /**
1229
- * API для работы с агентами
1230
- */
1231
- get agents(): AgentsApi;
1232
- /**
1233
- * API для работы с контекстом
1234
- */
1235
- get context(): ContextApi;
1236
- /**
1237
- * API для работы с проектами
1238
- */
1239
- get projects(): ProjectsApi;
1240
- /**
1241
- * API для поиска кода
1242
- */
1243
- get search(): SearchApi;
1244
- /**
1245
- * API для работы с рассуждениями
1246
- */
1247
- get reasoning(): ReasoningApi;
1248
- /**
1249
- * API для модификации кода
1250
- */
1251
- get codeModification(): CodeModificationApi;
1252
- /**
1253
- * Опции SDK
1254
- */
1255
- get options(): Readonly<CodeSolverSDKOptions>;
1256
- /**
1257
- * Получает текущую среду выполнения
1258
- * @returns {string} Среда выполнения ('browser', 'node', 'unknown')
1259
- */
1260
- getEnvironment(): string;
1261
- /**
1262
- * Закрывает все соединения и освобождает ресурсы
1263
- */
1264
- dispose(): void;
1265
- /**
1266
- * Устанавливает глобальный обработчик ошибок SDK
1267
- * @param {(error: Error) => void} handler Функция-обработчик ошибок
1268
- */
1269
- static setErrorHandler(handler: (error: Error) => void): void;
1270
- /**
1271
- * Обрабатывает ошибку через глобальный обработчик, если он установлен
1272
- * @param {Error} error Ошибка для обработки
1273
- */
1274
- static handleError(error: Error): void;
1275
- /**
1276
- * Возвращает текущую версию SDK
1277
- * @returns {string} Версия SDK
1278
- */
1279
- static getVersion(): string;
1280
- /**
1281
- * Возвращает текущую версию SDK
1282
- * @returns {string} Версия SDK
1283
- */
1284
- getVersion(): string;
1285
- /**
1286
- * Устанавливает новый API ключ для SDK
1287
- * @param {string} apiKey Новый API ключ
1288
- */
1289
- setApiKey(apiKey: string): void;
1290
- /**
1291
- * Подключается к WebSocket серверу
1292
- * @returns {Promise<boolean>} Promise с результатом подключения
1293
- */
1294
- connect(): Promise<boolean>;
1295
- /**
1296
- * Отключается от WebSocket сервера
1297
- * @returns {Promise<void>} Promise без результата
1298
- */
1299
- disconnect(): Promise<void>;
1300
- /**
1301
- * Проверяет, подключен ли SDK к WebSocket серверу
1302
- * @returns {boolean} Статус подключения
1303
- */
1304
- isConnected(): boolean;
1305
- /**
1306
- * Проверяет доступность API (алиас для checkHealth)
1307
- * @returns {Promise<boolean>} Promise с результатом проверки
1308
- */
1309
- isHealthy(): Promise<boolean>;
1310
- /**
1311
- * Проверяет доступность всех сервисов API
1312
- * @returns {Promise<{[key: string]: boolean}>} Статус каждого сервиса
1313
- */
1314
- checkServices(): Promise<{
1315
- [key: string]: boolean;
1316
- }>;
1317
- /**
1318
- * Закрывает соединение с сервером (алиас для dispose)
1319
- */
1320
- close(): Promise<void>;
1321
- }
1322
-
1323
- /**
1324
- * Опции для SSE клиента
1325
- */
1326
- interface SseClientOptions {
1327
- /**
1328
- * HTTP заголовки для SSE соединения
1329
- */
1330
- headers?: Record<string, string>;
1331
- /**
1332
- * Таймаут подключения в миллисекундах
1333
- */
1334
- connectionTimeout?: number;
1335
- /**
1336
- * Максимальное количество попыток переподключения
1337
- */
1338
- maxRetries?: number;
1339
- /**
1340
- * Задержка перед попыткой переподключения в миллисекундах
1341
- */
1342
- retryDelay?: number;
1343
- /**
1344
- * Максимальная задержка перед попыткой переподключения
1345
- */
1346
- maxRetryDelay?: number;
1347
- }
1348
- /**
1349
- * Интерфейс для обработчика события SSE
1350
- */
1351
- interface SseEventHandler {
1352
- (event: any): void;
1353
- }
1354
- /**
1355
- * Клиент для работы с Server-Sent Events (SSE)
1356
- * Поддерживает работу как в браузере, так и в Node.js
1357
- */
1358
- declare class SseClient {
1359
- /** URL для подключения */
1360
- private readonly url;
1361
- /** Опции клиента */
1362
- private readonly options;
1363
- /** Экземпляр EventSource */
1364
- private eventSource;
1365
- /** Счетчик попыток переподключения */
1366
- private retryCount;
1367
- /** Флаг, указывающий, что соединение было закрыто намеренно */
1368
- private intentionallyClosed;
1369
- /** Таймер переподключения */
1370
- private reconnectTimer;
1371
- /** Таймер таймаута соединения */
1372
- private connectionTimeoutTimer;
1373
- /** Обработчики событий */
1374
- private eventHandlers;
1375
- /**
1376
- * Создает новый SSE клиент
1377
- * @param {string} url URL для подключения
1378
- * @param {SseClientOptions} [options] Опции клиента
1379
- */
1380
- constructor(url: string, options?: SseClientOptions);
1381
- /**
1382
- * Подключается к SSE эндпоинту
1383
- * @returns {Promise<void>}
1384
- */
1385
- connect(): Promise<void>;
1386
- /**
1387
- * Закрывает SSE соединение
1388
- */
1389
- close(): void;
1390
- /**
1391
- * Добавляет обработчик события
1392
- * @param {string} eventType Тип события
1393
- * @param {SseEventHandler} handler Обработчик события
1394
- */
1395
- on(eventType: string, handler: SseEventHandler): void;
1396
- /**
1397
- * Удаляет обработчик события
1398
- * @param {string} eventType Тип события
1399
- * @param {SseEventHandler} [handler] Обработчик события (если не указан, удаляются все обработчики)
1400
- */
1401
- off(eventType: string, handler?: SseEventHandler): void;
1402
- /**
1403
- * Вызывает обработчики для указанного события
1404
- * @param {string} eventType Тип события
1405
- * @param {any} data Данные события
1406
- */
1407
- private dispatchEvent;
1408
- /**
1409
- * Переподключается к SSE эндпоинту с экспоненциальной задержкой
1410
- * @private
1411
- */
1412
- private reconnect;
1413
- }
1414
-
1415
- /**
1416
- * Данные о прогрессе индексации
1417
- */
1418
- interface IndexingProgressData {
1419
- /** Идентификатор проекта */
1420
- projectId: string;
1421
- /** Общее количество файлов */
1422
- totalFiles: number;
1423
- /** Количество проиндексированных файлов */
1424
- indexedFiles: number;
1425
- /** Процент завершения индексации */
1426
- progress: number;
1427
- /** Время начала индексации */
1428
- startTime: string;
1429
- /** Прошедшее время в секундах */
1430
- elapsedTime: number;
1431
- /** Оставшееся время в секундах (приблизительно) */
1432
- estimatedTimeRemaining?: number;
1433
- }
1434
- /**
1435
- * Данные о завершении индексации
1436
- */
1437
- interface IndexingCompleteData {
1438
- /** Идентификатор проекта */
1439
- projectId: string;
1440
- /** Общее количество файлов */
1441
- totalFiles: number;
1442
- /** Количество проиндексированных файлов */
1443
- indexedFiles: number;
1444
- /** Количество пропущенных файлов */
1445
- skippedFiles: number;
1446
- /** Время начала индексации */
1447
- startTime: string;
1448
- /** Время завершения индексации */
1449
- endTime: string;
1450
- /** Общее время индексации в секундах */
1451
- totalTime: number;
1452
- }
1453
- /**
1454
- * Данные об ошибке индексации
1455
- */
1456
- interface IndexingErrorData {
1457
- /** Идентификатор проекта */
1458
- projectId: string;
1459
- /** Сообщение об ошибке */
1460
- message: string;
1461
- /** Код ошибки */
1462
- code?: string;
1463
- /** Детали ошибки */
1464
- details?: any;
1465
- }
1466
- /**
1467
- * Опции для WebSocket клиента индексации
1468
- */
1469
- interface IndexingWebSocketOptions extends WebSocketClientOptions {
1470
- /** Идентификатор проекта */
1471
- projectId?: string;
1472
- /** API ключ для авторизации */
1473
- apiKey?: string;
1474
- }
1475
- /**
1476
- * WebSocket клиент для работы с индексацией
1477
- */
1478
- declare class IndexingWebSocketClient extends WebSocketClient {
1479
- /** Идентификатор проекта */
1480
- private projectId;
1481
- /** Базовый URL без параметров */
1482
- private baseUrl;
1483
- /**
1484
- * Создает новый WebSocket клиент для индексации
1485
- * @param {string} url URL для подключения
1486
- * @param {IndexingWebSocketOptions} [options] Опции клиента
1487
- */
1488
- constructor(url: string, options?: IndexingWebSocketOptions);
1489
- /**
1490
- * Устанавливает идентификатор проекта
1491
- * @param {string} projectId Идентификатор проекта
1492
- */
1493
- setProjectId(projectId: string): void;
1494
- /**
1495
- * Подключается к WebSocket для отслеживания индексации
1496
- * @param {string} [projectId] Идентификатор проекта (если не был указан в конструкторе)
1497
- * @returns {Promise<void>}
1498
- */
1499
- connect(projectId?: string): Promise<void>;
1500
- /**
1501
- * Подписывается на события начала индексации
1502
- * @param {(data: {projectId: string}) => void} handler Обработчик события
1503
- */
1504
- onStart(handler: (data: {
1505
- projectId: string;
1506
- }) => void): void;
1507
- /**
1508
- * Подписывается на события прогресса индексации
1509
- * @param {(data: IndexingProgressData) => void} handler Обработчик события
1510
- */
1511
- onProgress(handler: (data: IndexingProgressData) => void): void;
1512
- /**
1513
- * Подписывается на события завершения индексации
1514
- * @param {(data: IndexingCompleteData) => void} handler Обработчик события
1515
- */
1516
- onComplete(handler: (data: IndexingCompleteData) => void): void;
1517
- /**
1518
- * Подписывается на события ошибок индексации
1519
- * @param {(data: IndexingErrorData) => void} handler Обработчик события
1520
- */
1521
- onError(handler: (data: IndexingErrorData) => void): void;
1522
- }
1523
-
1524
- /**
1525
- * Общие типы данных для SDK
1526
- */
1527
- /**
1528
- * Режим работы SDK
1529
- */
1530
- type SdkMode = 'browser' | 'node' | 'auto';
1531
- /**
1532
- * Поддерживаемые языки программирования
1533
- */
1534
- type ProgrammingLanguage = 'javascript' | 'typescript' | 'python' | 'java' | 'c' | 'cpp' | 'csharp' | 'php' | 'ruby' | 'go' | 'rust' | 'swift' | 'kotlin' | 'scala' | 'html' | 'css' | 'json' | 'yaml' | 'markdown' | 'shell' | 'sql' | 'plaintext' | 'unknown';
1535
- /**
1536
- * Уровень логирования
1537
- */
1538
- declare enum LogLevel {
1539
- DEBUG = "debug",
1540
- INFO = "info",
1541
- WARN = "warn",
1542
- ERROR = "error"
1543
- }
1544
- /**
1545
- * Сообщение лога
1546
- */
1547
- interface LogMessage {
1548
- /** Уровень логирования */
1549
- level: LogLevel;
1550
- /** Сообщение */
1551
- message: string;
1552
- /** Метка времени */
1553
- timestamp: string;
1554
- /** Дополнительные данные */
1555
- data?: any;
1556
- }
1557
- /**
1558
- * Результат операции
1559
- */
1560
- interface OperationResult<T = any> {
1561
- /** Успешность операции */
1562
- success: boolean;
1563
- /** Данные результата (если успех) */
1564
- data?: T;
1565
- /** Сообщение об ошибке (если неудача) */
1566
- error?: string;
1567
- /** Код ошибки (если неудача) */
1568
- errorCode?: string;
1569
- /** Детали ошибки (если неудача) */
1570
- errorDetails?: any;
1571
- }
1572
- /**
1573
- * Настройки модели ИИ
1574
- */
1575
- interface ModelSettings {
1576
- /** Название модели */
1577
- model: string;
1578
- /** Температура генерации */
1579
- temperature?: number;
1580
- /** Максимальная длина ответа */
1581
- maxTokens?: number;
1582
- /** Штрафы за повторения */
1583
- repetitionPenalty?: number;
1584
- /** Дополнительные параметры */
1585
- extraParams?: Record<string, any>;
1586
- }
1587
- /**
1588
- * Базовый интерфейс для пагинации
1589
- */
1590
- interface PaginationParams {
1591
- /** Лимит результатов */
1592
- limit?: number;
1593
- /** Смещение для пагинации */
1594
- offset?: number;
1595
- }
1596
- /**
1597
- * Результаты с пагинацией
1598
- */
1599
- interface PaginatedResults<T> {
1600
- /** Результаты */
1601
- items: T[];
1602
- /** Общее количество результатов */
1603
- total: number;
1604
- /** Лимит результатов */
1605
- limit: number;
1606
- /** Смещение для пагинации */
1607
- offset: number;
1608
- /** Количество страниц */
1609
- pageCount: number;
1610
- /** Текущая страница */
1611
- currentPage: number;
1612
- }
1613
- /**
1614
- * Направление сортировки
1615
- */
1616
- type SortDirection = 'asc' | 'desc';
1617
- /**
1618
- * Параметры сортировки
1619
- */
1620
- interface SortParams {
1621
- /** Поле для сортировки */
1622
- field: string;
1623
- /** Направление сортировки */
1624
- direction: SortDirection;
1625
- }
1626
- /**
1627
- * Параметры фильтрации
1628
- */
1629
- interface FilterParams {
1630
- /** Фильтры */
1631
- [key: string]: any;
1632
- }
1633
- /**
1634
- * Статус задачи
1635
- */
1636
- type TaskStatus = 'pending' | 'running' | 'completed' | 'failed' | 'cancelled';
1637
- /**
1638
- * Базовая задача
1639
- */
1640
- interface Task {
1641
- /** Идентификатор задачи */
1642
- id: string;
1643
- /** Тип задачи */
1644
- type: string;
1645
- /** Статус задачи */
1646
- status: TaskStatus;
1647
- /** Прогресс выполнения (0-100) */
1648
- progress: number;
1649
- /** Сообщение о прогрессе */
1650
- message?: string;
1651
- /** Результат выполнения */
1652
- result?: any;
1653
- /** Сообщение об ошибке */
1654
- error?: string;
1655
- /** Дата создания */
1656
- createdAt: string;
1657
- /** Дата обновления */
1658
- updatedAt: string;
1659
- /** Дата завершения */
1660
- completedAt?: string;
1661
- }
1662
-
1663
- declare const VERSION = "1.0.0";
1664
-
1665
- export { AgentsApi, CodeModificationApi, CodeSolverSDK, type CodeSolverSDKOptions, CodeSolverWebSocketClient, ContextApi, type FilterParams, HttpClient, IndexingWebSocketClient, LogLevel, type LogMessage, type ModelSettings, type OperationResult, type PaginatedResults, type PaginationParams, type ProgrammingLanguage, ProjectsApi, ReasoningApi, type SdkMode, SearchApi, type SortDirection, type SortParams, SseClient, type Task, type TaskStatus, VERSION, WebSocketClient, WebSocketNamespace, CodeSolverSDK as default };