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