solver-sdk 1.0.6 → 1.2.0
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.
- package/README.md +177 -3
- package/dist/cjs/api/dependencies-api.js +131 -0
- package/dist/cjs/api/dependencies-api.js.map +1 -0
- package/dist/cjs/api/models-api.js +140 -0
- package/dist/cjs/api/models-api.js.map +1 -0
- package/dist/cjs/api/projects-api.js +22 -0
- package/dist/cjs/api/projects-api.js.map +1 -1
- package/dist/cjs/api/reasoning-api.js +8 -0
- package/dist/cjs/api/reasoning-api.js.map +1 -1
- package/dist/cjs/code-solver-sdk.js +45 -4
- package/dist/cjs/code-solver-sdk.js.map +1 -1
- package/dist/cjs/index.js +6 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/models/types.js +35 -1
- package/dist/cjs/models/types.js.map +1 -1
- package/dist/cjs/utils/code-solver-websocket-client.js +52 -16
- package/dist/cjs/utils/code-solver-websocket-client.js.map +1 -1
- package/dist/cjs/utils/http-client.js +6 -0
- package/dist/cjs/utils/http-client.js.map +1 -1
- package/dist/esm/api/dependencies-api.js +127 -0
- package/dist/esm/api/dependencies-api.js.map +1 -0
- package/dist/esm/api/models-api.js +136 -0
- package/dist/esm/api/models-api.js.map +1 -0
- package/dist/esm/api/projects-api.js +22 -0
- package/dist/esm/api/projects-api.js.map +1 -1
- package/dist/esm/api/reasoning-api.js +8 -0
- package/dist/esm/api/reasoning-api.js.map +1 -1
- package/dist/esm/code-solver-sdk.js +45 -4
- package/dist/esm/code-solver-sdk.js.map +1 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/models/types.js +34 -0
- package/dist/esm/models/types.js.map +1 -1
- package/dist/esm/utils/code-solver-websocket-client.js +52 -16
- package/dist/esm/utils/code-solver-websocket-client.js.map +1 -1
- package/dist/esm/utils/http-client.js +6 -0
- package/dist/esm/utils/http-client.js.map +1 -1
- package/dist/types/api/dependencies-api.d.ts +54 -0
- package/dist/types/api/dependencies-api.d.ts.map +1 -0
- package/dist/types/api/models-api.d.ts +302 -0
- package/dist/types/api/models-api.d.ts.map +1 -0
- package/dist/types/api/projects-api.d.ts +6 -0
- package/dist/types/api/projects-api.d.ts.map +1 -1
- package/dist/types/api/reasoning-api.d.ts +7 -0
- package/dist/types/api/reasoning-api.d.ts.map +1 -1
- package/dist/types/code-solver-sdk.d.ts +28 -1
- package/dist/types/code-solver-sdk.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/interfaces/sdk-options.d.ts +27 -0
- package/dist/types/interfaces/sdk-options.d.ts.map +1 -1
- package/dist/types/models/types.d.ts +186 -0
- package/dist/types/models/types.d.ts.map +1 -1
- package/dist/types/utils/code-solver-websocket-client.d.ts +125 -12
- package/dist/types/utils/code-solver-websocket-client.d.ts.map +1 -1
- package/dist/types/utils/http-client.d.ts +4 -0
- package/dist/types/utils/http-client.d.ts.map +1 -1
- package/package.json +21 -17
package/README.md
CHANGED
|
@@ -152,6 +152,89 @@ wsClient.on('complete', (data) => {
|
|
|
152
152
|
});
|
|
153
153
|
```
|
|
154
154
|
|
|
155
|
+
## API для работы с зависимостями
|
|
156
|
+
|
|
157
|
+
SDK предоставляет API для работы с зависимостями файлов в проекте, что позволяет анализировать структуру проекта, импорты/экспорты и выявлять циклические зависимости.
|
|
158
|
+
|
|
159
|
+
### Получение зависимостей файла
|
|
160
|
+
|
|
161
|
+
```typescript
|
|
162
|
+
// Получение зависимостей конкретного файла
|
|
163
|
+
const fileDependencies = await sdk.dependencies.getFileDependencies(projectId, {
|
|
164
|
+
filePath: 'src/app.js'
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
console.log('Импорты:', fileDependencies.imports);
|
|
168
|
+
console.log('Импортируется в:', fileDependencies.importedBy);
|
|
169
|
+
console.log('Экспорты:', fileDependencies.exports);
|
|
170
|
+
console.log('Экспортируемые из импортов:', fileDependencies.exportedBy);
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Получение графа зависимостей
|
|
174
|
+
|
|
175
|
+
```typescript
|
|
176
|
+
// Получение полного графа зависимостей проекта
|
|
177
|
+
const dependencyGraph = await sdk.dependencies.getDependencyGraph(projectId);
|
|
178
|
+
|
|
179
|
+
console.log('Узлы графа:', dependencyGraph.nodes);
|
|
180
|
+
console.log('Связи в графе:', dependencyGraph.edges);
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Анализ зависимостей
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
// Анализ графа зависимостей и поиск циклов
|
|
187
|
+
const analysis = await sdk.dependencies.analyzeDependencyGraph(projectId);
|
|
188
|
+
|
|
189
|
+
console.log('Циклические зависимости:', analysis.cycles);
|
|
190
|
+
console.log('Статистика графа:', analysis.statistics);
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Статистика зависимостей
|
|
194
|
+
|
|
195
|
+
```typescript
|
|
196
|
+
// Получение статистики зависимостей в проекте
|
|
197
|
+
const stats = await sdk.dependencies.getDependencyStatistics(projectId);
|
|
198
|
+
|
|
199
|
+
console.log('Общее количество зависимостей:', stats.totalDependencies);
|
|
200
|
+
console.log('Уникальные файлы:', stats.uniqueFiles);
|
|
201
|
+
console.log('Импорты:', stats.importCount);
|
|
202
|
+
console.log('Экспорты:', stats.exportCount);
|
|
203
|
+
console.log('Циклические зависимости:', stats.cyclicDependenciesCount);
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Получение связанных компонентов
|
|
207
|
+
|
|
208
|
+
```typescript
|
|
209
|
+
// Получение связанных компонентов для файла
|
|
210
|
+
const relatedComponents = await sdk.dependencies.getRelatedComponents(projectId, {
|
|
211
|
+
filePath: 'src/app.js',
|
|
212
|
+
maxDepth: 3,
|
|
213
|
+
includeIncoming: true,
|
|
214
|
+
includeOutgoing: true,
|
|
215
|
+
maxNodes: 20
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
console.log('Исходный файл:', relatedComponents.source);
|
|
219
|
+
console.log('Связанные компоненты:', relatedComponents.nodes);
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### WebSocket события для зависимостей
|
|
223
|
+
|
|
224
|
+
Для получения уведомлений об изменениях в зависимостях в реальном времени можно использовать WebSocket:
|
|
225
|
+
|
|
226
|
+
```typescript
|
|
227
|
+
// Подключение к WebSocket для зависимостей
|
|
228
|
+
const wsClient = sdk.getWebSocketClient();
|
|
229
|
+
await wsClient.connectToDependencies(projectId);
|
|
230
|
+
|
|
231
|
+
// Обработка события обновления зависимостей
|
|
232
|
+
wsClient.on('dependency_update', (data) => {
|
|
233
|
+
console.log('Обновление зависимостей:', data);
|
|
234
|
+
console.log('Затронутые файлы:', data.affectedFiles);
|
|
235
|
+
});
|
|
236
|
+
```
|
|
237
|
+
|
|
155
238
|
## Тестирование и совместимость
|
|
156
239
|
|
|
157
240
|
SDK тщательно тестируется в различных средах:
|
|
@@ -213,13 +296,104 @@ SDK поддерживает следующие опции при инициал
|
|
|
213
296
|
| `httpsAgent` | object | Опции для HTTPS агента (Node.js) | Нет |
|
|
214
297
|
| `mode` | string | Режим работы SDK ('browser', 'node', 'auto') | Нет |
|
|
215
298
|
|
|
216
|
-
## Документация
|
|
299
|
+
## Документация
|
|
300
|
+
|
|
301
|
+
Подробная документация по использованию SDK доступна в директории [`docs`](./docs):
|
|
302
|
+
|
|
303
|
+
- [Начало работы](./docs/GETTING_STARTED.md) - инструкции по установке и базовому использованию SDK
|
|
304
|
+
- [Работа с проектами](./docs/PROJECTS.md) - управление проектами через SDK
|
|
305
|
+
- [Индексация проектов](./docs/INDEXING.md) - работа с индексацией и отслеживание через WebSocket
|
|
306
|
+
- [Документация API](./docs/API.md) - полная документация по всем методам SDK
|
|
307
|
+
|
|
308
|
+
## Тестирование и локальная разработка
|
|
309
|
+
|
|
310
|
+
### Предварительные требования
|
|
311
|
+
|
|
312
|
+
Для локальной разработки и тестирования требуется:
|
|
313
|
+
- Node.js 16+
|
|
314
|
+
- npm 8+
|
|
315
|
+
- Запущенный локальный сервер Code Solver Backend (по умолчанию на https://localhost:3000)
|
|
316
|
+
|
|
317
|
+
### Тестирование SDK
|
|
318
|
+
|
|
319
|
+
SDK включает несколько типов тестов:
|
|
320
|
+
|
|
321
|
+
#### Модульные тесты
|
|
217
322
|
|
|
218
|
-
|
|
323
|
+
Эти тесты проверяют внутреннюю логику SDK без взаимодействия с реальным бэкендом:
|
|
324
|
+
|
|
325
|
+
```bash
|
|
326
|
+
# Запуск всех тестов
|
|
327
|
+
npm test
|
|
328
|
+
|
|
329
|
+
# Запуск тестов для индексации
|
|
330
|
+
npm run test:indexing
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
#### Интеграционные тесты
|
|
334
|
+
|
|
335
|
+
Эти тесты проверяют взаимодействие SDK с реальным бэкендом:
|
|
336
|
+
|
|
337
|
+
```bash
|
|
338
|
+
# Запуск интеграционных тестов индексации
|
|
339
|
+
npm run test:integration
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
> **Важно:** Для запуска интеграционных тестов необходимо, чтобы локальный сервер Code Solver Backend был запущен на https://localhost:3000.
|
|
343
|
+
|
|
344
|
+
### Примеры использования
|
|
345
|
+
|
|
346
|
+
В директории [`examples`](./examples) находятся примеры использования SDK:
|
|
347
|
+
|
|
348
|
+
#### Проверка подключения к API
|
|
349
|
+
|
|
350
|
+
Пример проверяет доступность API и WebSocket соединения:
|
|
351
|
+
|
|
352
|
+
```bash
|
|
353
|
+
npm run example:check-api
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
#### Индексация проектов
|
|
357
|
+
|
|
358
|
+
Пример демонстрирует процесс индексации проекта с отслеживанием через WebSocket:
|
|
359
|
+
|
|
360
|
+
```bash
|
|
361
|
+
npm run example:indexing
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
### Режим разработки
|
|
365
|
+
|
|
366
|
+
Для запуска SDK в режиме разработки с локальным сервером:
|
|
367
|
+
|
|
368
|
+
1. Запустите локальный сервер Code Solver Backend
|
|
369
|
+
2. Используйте следующие настройки в вашем коде:
|
|
370
|
+
|
|
371
|
+
```javascript
|
|
372
|
+
const sdk = new CodeSolverSDK({
|
|
373
|
+
baseURL: 'https://localhost:3000',
|
|
374
|
+
apiKey: 'test-api-key',
|
|
375
|
+
httpsAgent: new https.Agent({
|
|
376
|
+
rejectUnauthorized: false // Для самоподписанных сертификатов
|
|
377
|
+
}),
|
|
378
|
+
websocket: {
|
|
379
|
+
reconnect: true,
|
|
380
|
+
rejectUnauthorized: false
|
|
381
|
+
}
|
|
382
|
+
});
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
#### Игнорирование самоподписанных сертификатов
|
|
386
|
+
|
|
387
|
+
При разработке с локальным сервером используйте:
|
|
388
|
+
|
|
389
|
+
```bash
|
|
390
|
+
# В Node.js скриптах
|
|
391
|
+
NODE_TLS_REJECT_UNAUTHORIZED=0 node your-script.js
|
|
392
|
+
```
|
|
219
393
|
|
|
220
394
|
## Лицензия
|
|
221
395
|
|
|
222
|
-
MIT
|
|
396
|
+
[MIT](./LICENSE)
|
|
223
397
|
|
|
224
398
|
## API Reference
|
|
225
399
|
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DependenciesApi = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* API для работы с зависимостями файлов в проектах
|
|
6
|
+
*/
|
|
7
|
+
class DependenciesApi {
|
|
8
|
+
/**
|
|
9
|
+
* Создает новый экземпляр API для работы с зависимостями
|
|
10
|
+
* @param httpClient HTTP клиент для запросов к API
|
|
11
|
+
*/
|
|
12
|
+
constructor(httpClient) {
|
|
13
|
+
this.client = httpClient;
|
|
14
|
+
this.baseUrl = '/dependencies';
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Получает зависимости конкретного файла
|
|
18
|
+
* @param projectId ID проекта
|
|
19
|
+
* @param params Параметры запроса зависимостей файла
|
|
20
|
+
* @returns Зависимости файла
|
|
21
|
+
*/
|
|
22
|
+
async getFileDependencies(projectId, params) {
|
|
23
|
+
try {
|
|
24
|
+
const response = await this.client.get(`/projects/${projectId}/dependencies/file`, { params: { path: params.filePath } });
|
|
25
|
+
if (!response.success || !response.data) {
|
|
26
|
+
throw new Error(response.error || 'Ошибка при получении зависимостей файла');
|
|
27
|
+
}
|
|
28
|
+
return response.data;
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
throw new Error(`Ошибка при получении зависимостей файла: ${error.message}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Получает граф зависимостей проекта
|
|
36
|
+
* @param projectId ID проекта
|
|
37
|
+
* @returns Граф зависимостей
|
|
38
|
+
*/
|
|
39
|
+
async getDependencyGraph(projectId) {
|
|
40
|
+
try {
|
|
41
|
+
const response = await this.client.get(`/projects/${projectId}/dependencies/graph`);
|
|
42
|
+
if (!response.success || !response.data) {
|
|
43
|
+
throw new Error(response.error || 'Ошибка при получении графа зависимостей');
|
|
44
|
+
}
|
|
45
|
+
return response.data;
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
throw new Error(`Ошибка при получении графа зависимостей: ${error.message}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Получает статистику зависимостей проекта
|
|
53
|
+
* @param projectId ID проекта
|
|
54
|
+
* @returns Статистика зависимостей
|
|
55
|
+
*/
|
|
56
|
+
async getDependencyStatistics(projectId) {
|
|
57
|
+
try {
|
|
58
|
+
const response = await this.client.get(`/projects/${projectId}/dependencies/stats`);
|
|
59
|
+
if (!response.success || !response.data) {
|
|
60
|
+
throw new Error(response.error || 'Ошибка при получении статистики зависимостей');
|
|
61
|
+
}
|
|
62
|
+
return response.data;
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
throw new Error(`Ошибка при получении статистики зависимостей: ${error.message}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Получает детальную информацию о файле
|
|
70
|
+
* @param projectId ID проекта
|
|
71
|
+
* @param filePath Путь к файлу
|
|
72
|
+
* @returns Информация о файле
|
|
73
|
+
*/
|
|
74
|
+
async getFileDetails(projectId, filePath) {
|
|
75
|
+
try {
|
|
76
|
+
const response = await this.client.get(`/projects/${projectId}/dependencies/file-details`, { params: { path: filePath } });
|
|
77
|
+
if (!response.success || !response.data) {
|
|
78
|
+
throw new Error(response.error || 'Ошибка при получении информации о файле');
|
|
79
|
+
}
|
|
80
|
+
return response.data;
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
throw new Error(`Ошибка при получении информации о файле: ${error.message}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Получает связанные компоненты для файла
|
|
88
|
+
* @param projectId ID проекта
|
|
89
|
+
* @param params Параметры запроса связанных компонентов
|
|
90
|
+
* @returns Связанные компоненты
|
|
91
|
+
*/
|
|
92
|
+
async getRelatedComponents(projectId, params) {
|
|
93
|
+
try {
|
|
94
|
+
const response = await this.client.get(`/projects/${projectId}/dependencies/related`, {
|
|
95
|
+
params: {
|
|
96
|
+
path: params.filePath,
|
|
97
|
+
maxDepth: params.maxDepth || 3,
|
|
98
|
+
includeIncoming: params.includeIncoming || true,
|
|
99
|
+
includeOutgoing: params.includeOutgoing || true,
|
|
100
|
+
maxNodes: params.maxNodes || 20
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
if (!response.success || !response.data) {
|
|
104
|
+
throw new Error(response.error || 'Ошибка при получении связанных компонентов');
|
|
105
|
+
}
|
|
106
|
+
return response.data;
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
throw new Error(`Ошибка при получении связанных компонентов: ${error.message}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Анализирует граф зависимостей проекта
|
|
114
|
+
* @param projectId ID проекта
|
|
115
|
+
* @returns Результат анализа
|
|
116
|
+
*/
|
|
117
|
+
async analyzeDependencyGraph(projectId) {
|
|
118
|
+
try {
|
|
119
|
+
const response = await this.client.get(`/projects/${projectId}/dependencies/analyze`);
|
|
120
|
+
if (!response.success || !response.data) {
|
|
121
|
+
throw new Error(response.error || 'Ошибка при анализе графа зависимостей');
|
|
122
|
+
}
|
|
123
|
+
return response.data;
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
throw new Error(`Ошибка при анализе графа зависимостей: ${error.message}`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
exports.DependenciesApi = DependenciesApi;
|
|
131
|
+
//# sourceMappingURL=dependencies-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencies-api.js","sourceRoot":"","sources":["../../../src/api/dependencies-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ModelsApi = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* API для работы с моделями
|
|
6
|
+
*
|
|
7
|
+
* Предоставляет методы для получения информации о доступных моделях ИИ
|
|
8
|
+
* и их провайдерах. Позволяет получить полный список моделей, список
|
|
9
|
+
* провайдеров, модели конкретного провайдера или информацию о провайдере
|
|
10
|
+
* для конкретной модели.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```javascript
|
|
14
|
+
* // Получение всех доступных моделей
|
|
15
|
+
* const allModels = await sdk.models.getAllModels();
|
|
16
|
+
* console.log(allModels.models);
|
|
17
|
+
*
|
|
18
|
+
* // Получение провайдеров
|
|
19
|
+
* const providers = await sdk.models.getProviders();
|
|
20
|
+
* console.log(providers.providers);
|
|
21
|
+
*
|
|
22
|
+
* // Получение моделей конкретного провайдера
|
|
23
|
+
* const openaiModels = await sdk.models.getProviderModels('openai');
|
|
24
|
+
* console.log(openaiModels.models);
|
|
25
|
+
*
|
|
26
|
+
* // Получение информации о провайдере для модели
|
|
27
|
+
* const modelInfo = await sdk.models.getModelProvider('gpt-4o');
|
|
28
|
+
* console.log(modelInfo.provider);
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
class ModelsApi {
|
|
32
|
+
/**
|
|
33
|
+
* Создает новый экземпляр API для работы с моделями
|
|
34
|
+
* @param {HttpClient} httpClient HTTP клиент
|
|
35
|
+
*/
|
|
36
|
+
constructor(httpClient) {
|
|
37
|
+
this.httpClient = httpClient;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Получает список всех доступных моделей
|
|
41
|
+
*
|
|
42
|
+
* Возвращает полный список доступных моделей, сгруппированных по провайдерам.
|
|
43
|
+
* Каждая модель содержит информацию о своих возможностях, размере контекстного
|
|
44
|
+
* окна и других характеристиках.
|
|
45
|
+
*
|
|
46
|
+
* @returns {Promise<AllModelsResponse>} Список моделей по провайдерам
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```javascript
|
|
50
|
+
* const allModels = await sdk.models.getAllModels();
|
|
51
|
+
*
|
|
52
|
+
* // Получение всех моделей OpenAI
|
|
53
|
+
* const openaiModels = allModels.models
|
|
54
|
+
* .find(provider => provider.provider === 'openai')?.models || [];
|
|
55
|
+
*
|
|
56
|
+
* // Получение всех доступных моделей всех провайдеров
|
|
57
|
+
* const allAvailableModels = allModels.models
|
|
58
|
+
* .flatMap(provider => provider.models);
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
async getAllModels() {
|
|
62
|
+
return this.httpClient.get('/api/v1/models');
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Получает список провайдеров моделей
|
|
66
|
+
*
|
|
67
|
+
* Возвращает список всех доступных провайдеров моделей с информацией
|
|
68
|
+
* об их возможностях и поддерживаемых функциях.
|
|
69
|
+
*
|
|
70
|
+
* @returns {Promise<ProvidersResponse>} Список провайдеров
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```javascript
|
|
74
|
+
* const providers = await sdk.models.getProviders();
|
|
75
|
+
*
|
|
76
|
+
* // Получение провайдера по ID
|
|
77
|
+
* const openai = providers.providers.find(p => p.id === 'openai');
|
|
78
|
+
*
|
|
79
|
+
* // Проверка поддержки определенной возможности
|
|
80
|
+
* const supportsChat = providers.providers
|
|
81
|
+
* .some(p => p.capabilities.includes('chat'));
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
async getProviders() {
|
|
85
|
+
return this.httpClient.get('/api/v1/models/providers');
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Получает модели конкретного провайдера
|
|
89
|
+
*
|
|
90
|
+
* Возвращает список моделей для указанного провайдера, включая информацию
|
|
91
|
+
* о контекстном окне, поддерживаемых языках и других характеристиках.
|
|
92
|
+
*
|
|
93
|
+
* @param {string} providerId Идентификатор провайдера (например, openai, anthropic, google)
|
|
94
|
+
* @returns {Promise<ProviderModels>} Модели провайдера
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```javascript
|
|
98
|
+
* // Получение моделей OpenAI
|
|
99
|
+
* const openaiModels = await sdk.models.getProviderModels('openai');
|
|
100
|
+
*
|
|
101
|
+
* // Получение модели с наибольшим контекстным окном
|
|
102
|
+
* const modelWithLargestContext = openaiModels.models
|
|
103
|
+
* .sort((a, b) => b.contextWindow - a.contextWindow)[0];
|
|
104
|
+
*
|
|
105
|
+
* // Получение модели по умолчанию
|
|
106
|
+
* const defaultModel = openaiModels.models
|
|
107
|
+
* .find(model => model.isDefault);
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
async getProviderModels(providerId) {
|
|
111
|
+
return this.httpClient.get(`/api/v1/models/providers/${providerId}`);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Получает информацию о провайдере для указанной модели
|
|
115
|
+
*
|
|
116
|
+
* Возвращает информацию о провайдере, которому принадлежит указанная модель,
|
|
117
|
+
* а также сведения о доступности модели в данный момент.
|
|
118
|
+
*
|
|
119
|
+
* @param {string} modelId Идентификатор модели (например, gpt-4o, claude-3-opus)
|
|
120
|
+
* @returns {Promise<ModelProviderInfo>} Информация о модели и провайдере
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```javascript
|
|
124
|
+
* // Получение информации о провайдере для модели
|
|
125
|
+
* const modelInfo = await sdk.models.getModelProvider('gpt-4o');
|
|
126
|
+
*
|
|
127
|
+
* // Проверка доступности модели
|
|
128
|
+
* if (modelInfo.isAvailable) {
|
|
129
|
+
* console.log(`Модель ${modelInfo.modelId} доступна у провайдера ${modelInfo.provider.name}`);
|
|
130
|
+
* } else {
|
|
131
|
+
* console.log(`Модель ${modelInfo.modelId} в данный момент недоступна`);
|
|
132
|
+
* }
|
|
133
|
+
* ```
|
|
134
|
+
*/
|
|
135
|
+
async getModelProvider(modelId) {
|
|
136
|
+
return this.httpClient.get(`/api/v1/models/${modelId}/provider`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.ModelsApi = ModelsApi;
|
|
140
|
+
//# sourceMappingURL=models-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models-api.js","sourceRoot":"","sources":["../../../src/api/models-api.ts"],"names":[],"mappings":";;;AAiMA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAa,SAAS;IAIpB;;;OAGG;IACH,YAAY,UAAsB;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,KAAK,CAAC,YAAY;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACI,KAAK,CAAC,YAAY;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,KAAK,CAAC,iBAAiB,CAAC,UAAkB;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,KAAK,CAAC,gBAAgB,CAAC,OAAe;QAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,OAAO,WAAW,CAAC,CAAC;IACnE,CAAC;CACF;AAlHD,8BAkHC"}
|
|
@@ -12,6 +12,22 @@ class ProjectsApi {
|
|
|
12
12
|
constructor(httpClient) {
|
|
13
13
|
this.httpClient = httpClient;
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Проверяет валидность идентификатора проекта
|
|
17
|
+
* @param {string} projectId ID проекта
|
|
18
|
+
* @throws {Error} Если ID проекта не валиден
|
|
19
|
+
*/
|
|
20
|
+
validateProjectId(projectId) {
|
|
21
|
+
if (projectId === undefined || projectId === null) {
|
|
22
|
+
throw new Error('Project ID is required');
|
|
23
|
+
}
|
|
24
|
+
if (typeof projectId !== 'string') {
|
|
25
|
+
throw new Error('Project ID must be a string');
|
|
26
|
+
}
|
|
27
|
+
if (projectId.trim() === '') {
|
|
28
|
+
throw new Error('Project ID cannot be empty');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
15
31
|
/**
|
|
16
32
|
* Получает список всех проектов
|
|
17
33
|
* @returns {Promise<Project[]>} Список проектов
|
|
@@ -25,6 +41,7 @@ class ProjectsApi {
|
|
|
25
41
|
* @returns {Promise<Project>} Проект
|
|
26
42
|
*/
|
|
27
43
|
async getProject(projectId) {
|
|
44
|
+
this.validateProjectId(projectId);
|
|
28
45
|
return this.httpClient.get(`/api/v1/projects/${projectId}`);
|
|
29
46
|
}
|
|
30
47
|
/**
|
|
@@ -48,6 +65,7 @@ class ProjectsApi {
|
|
|
48
65
|
* @returns {Promise<Project>} Обновленный проект
|
|
49
66
|
*/
|
|
50
67
|
async updateProject(projectId, data) {
|
|
68
|
+
this.validateProjectId(projectId);
|
|
51
69
|
return this.httpClient.put(`/api/v1/projects/${projectId}`, data);
|
|
52
70
|
}
|
|
53
71
|
/**
|
|
@@ -56,6 +74,7 @@ class ProjectsApi {
|
|
|
56
74
|
* @returns {Promise<void>}
|
|
57
75
|
*/
|
|
58
76
|
async deleteProject(projectId) {
|
|
77
|
+
this.validateProjectId(projectId);
|
|
59
78
|
return this.httpClient.delete(`/api/v1/projects/${projectId}`);
|
|
60
79
|
}
|
|
61
80
|
/**
|
|
@@ -64,6 +83,7 @@ class ProjectsApi {
|
|
|
64
83
|
* @returns {Promise<IndexingResponse>} Информация о начатой индексации
|
|
65
84
|
*/
|
|
66
85
|
async indexProject(projectId) {
|
|
86
|
+
this.validateProjectId(projectId);
|
|
67
87
|
return this.httpClient.post(`/api/v1/projects/${projectId}/index`);
|
|
68
88
|
}
|
|
69
89
|
/**
|
|
@@ -72,6 +92,7 @@ class ProjectsApi {
|
|
|
72
92
|
* @returns {Promise<void>}
|
|
73
93
|
*/
|
|
74
94
|
async stopIndexing(projectId) {
|
|
95
|
+
this.validateProjectId(projectId);
|
|
75
96
|
return this.httpClient.post(`/api/v1/projects/${projectId}/cancel-indexing`);
|
|
76
97
|
}
|
|
77
98
|
/**
|
|
@@ -80,6 +101,7 @@ class ProjectsApi {
|
|
|
80
101
|
* @returns {Promise<IndexingStatus>} Статус индексации
|
|
81
102
|
*/
|
|
82
103
|
async getIndexingStatus(projectId) {
|
|
104
|
+
this.validateProjectId(projectId);
|
|
83
105
|
return this.httpClient.get(`/api/v1/projects/${projectId}/indexing-status`);
|
|
84
106
|
}
|
|
85
107
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects-api.js","sourceRoot":"","sources":["../../../src/api/projects-api.ts"],"names":[],"mappings":";;;AA0FA;;GAEG;AACH,MAAa,WAAW;IAItB;;;OAGG;IACH,YAAY,UAAsB;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,cAAc;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,UAAU,CAAC,SAAiB;QACvC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,aAAa,CACxB,IAAY,EACZ,IAAY,EACZ,OAAwB;QAExB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC9C,IAAI;YACJ,IAAI;YACJ,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,aAAa,CACxB,SAAiB,EACjB,IAAgC;QAEhC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,oBAAoB,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,aAAa,CAAC,SAAiB;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,YAAY,CAAC,SAAiB;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,SAAS,QAAQ,CAAC,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,YAAY,CAAC,SAAiB;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,SAAS,kBAAkB,CAAC,CAAC;IAC/E,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QAC9C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,oBAAoB,SAAS,kBAAkB,CAAC,CAAC;IAC9E,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"projects-api.js","sourceRoot":"","sources":["../../../src/api/projects-api.ts"],"names":[],"mappings":";;;AA0FA;;GAEG;AACH,MAAa,WAAW;IAItB;;;OAGG;IACH,YAAY,UAAsB;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,SAAc;QACtC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,cAAc;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,UAAU,CAAC,SAAiB;QACvC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,aAAa,CACxB,IAAY,EACZ,IAAY,EACZ,OAAwB;QAExB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC9C,IAAI;YACJ,IAAI;YACJ,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,aAAa,CACxB,SAAiB,EACjB,IAAgC;QAEhC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,oBAAoB,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,aAAa,CAAC,SAAiB;QAC1C,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,YAAY,CAAC,SAAiB;QACzC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,SAAS,QAAQ,CAAC,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,YAAY,CAAC,SAAiB;QACzC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,SAAS,kBAAkB,CAAC,CAAC;IAC/E,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QAC9C,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,oBAAoB,SAAS,kBAAkB,CAAC,CAAC;IAC9E,CAAC;CACF;AAzHD,kCAyHC"}
|
|
@@ -76,6 +76,14 @@ class ReasoningApi {
|
|
|
76
76
|
async getAllReasonings(projectId) {
|
|
77
77
|
return this.httpClient.get(`/api/v1/reasoning/project/${projectId}`);
|
|
78
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Получает список доступных моделей для рассуждений
|
|
81
|
+
* @deprecated Используйте sdk.models.getAllModels() вместо этого метода
|
|
82
|
+
* @returns {Promise<AllModelsResponse>} Список доступных моделей
|
|
83
|
+
*/
|
|
84
|
+
async getModels() {
|
|
85
|
+
return this.httpClient.get('/api/v1/models');
|
|
86
|
+
}
|
|
79
87
|
}
|
|
80
88
|
exports.ReasoningApi = ReasoningApi;
|
|
81
89
|
//# sourceMappingURL=reasoning-api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reasoning-api.js","sourceRoot":"","sources":["../../../src/api/reasoning-api.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"reasoning-api.js","sourceRoot":"","sources":["../../../src/api/reasoning-api.ts"],"names":[],"mappings":";;;AA0KA;;GAEG;AACH,MAAa,YAAY;IAIvB;;;OAGG;IACH,YAAY,UAAsB;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,aAAa,CAAC,MAA4B;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,YAAY,CAAC,WAAmB;QAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,qBAAqB,WAAW,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,eAAe,CAAC,OAAyB;QACpD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,cAAc,CAAC,WAAmB;QAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,2BAA2B,WAAW,EAAE,CAAC,CAAC;IACxE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,aAAa,CAAC,WAAmB;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,eAAe,CAAC,WAAmB;QAC9C,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,qBAAqB,WAAW,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,WAAW,CAAC,WAAmB;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,qBAAqB,WAAW,WAAW,CAAC,CAAC;IAC1E,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,gBAAgB,CAAC,SAAiB;QAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,SAAS;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC;CACF;AA5FD,oCA4FC"}
|
|
@@ -10,8 +10,10 @@ const code_modification_api_js_1 = require("./api/code-modification-api.js");
|
|
|
10
10
|
const code_solver_websocket_client_js_1 = require("./utils/code-solver-websocket-client.js");
|
|
11
11
|
const agents_api_js_1 = require("./api/agents-api.js");
|
|
12
12
|
const chat_api_js_1 = require("./api/chat-api.js");
|
|
13
|
+
const models_api_js_1 = require("./api/models-api.js");
|
|
14
|
+
const dependencies_api_js_1 = require("./api/dependencies-api.js");
|
|
13
15
|
// Версия SDK
|
|
14
|
-
const SDK_VERSION = '1.
|
|
16
|
+
const SDK_VERSION = '1.2.0';
|
|
15
17
|
/**
|
|
16
18
|
* Определение типа среды выполнения
|
|
17
19
|
* @returns 'browser' | 'node' | 'unknown'
|
|
@@ -62,6 +64,8 @@ class CodeSolverSDK {
|
|
|
62
64
|
this._reasoning = new reasoning_api_js_1.ReasoningApi(this.httpClient);
|
|
63
65
|
this._codeModification = new code_modification_api_js_1.CodeModificationApi(this.httpClient);
|
|
64
66
|
this._chat = new chat_api_js_1.ChatApi(this.httpClient);
|
|
67
|
+
this._models = new models_api_js_1.ModelsApi(this.httpClient);
|
|
68
|
+
this._dependencies = new dependencies_api_js_1.DependenciesApi(this.httpClient);
|
|
65
69
|
}
|
|
66
70
|
/**
|
|
67
71
|
* Проверяет доступность API
|
|
@@ -82,9 +86,14 @@ class CodeSolverSDK {
|
|
|
82
86
|
*/
|
|
83
87
|
getWebSocketClient() {
|
|
84
88
|
if (!this.wsClient) {
|
|
85
|
-
|
|
89
|
+
const wsURL = this.wsURL;
|
|
90
|
+
this.wsClient = new code_solver_websocket_client_js_1.CodeSolverWebSocketClient(wsURL, {
|
|
86
91
|
apiKey: this._options.apiKey,
|
|
87
|
-
headers: this._options.headers
|
|
92
|
+
headers: this._options.headers,
|
|
93
|
+
autoReconnect: this.wsConfig.reconnect,
|
|
94
|
+
maxRetries: this.wsConfig.reconnectAttempts,
|
|
95
|
+
retryDelay: this.wsConfig.reconnectDelay,
|
|
96
|
+
rejectUnauthorized: this.wsConfig.rejectUnauthorized
|
|
88
97
|
});
|
|
89
98
|
}
|
|
90
99
|
return this.wsClient;
|
|
@@ -133,11 +142,41 @@ class CodeSolverSDK {
|
|
|
133
142
|
return this._chat;
|
|
134
143
|
}
|
|
135
144
|
/**
|
|
136
|
-
*
|
|
145
|
+
* API для работы с моделями
|
|
146
|
+
*/
|
|
147
|
+
get models() {
|
|
148
|
+
return this._models;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Доступ к API зависимостей
|
|
152
|
+
*/
|
|
153
|
+
get dependencies() {
|
|
154
|
+
return this._dependencies;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Получает опции SDK
|
|
137
158
|
*/
|
|
138
159
|
get options() {
|
|
139
160
|
return this._options;
|
|
140
161
|
}
|
|
162
|
+
/**
|
|
163
|
+
* Получает конфигурацию WebSocket
|
|
164
|
+
*/
|
|
165
|
+
get wsConfig() {
|
|
166
|
+
return this._options.websocket || {};
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Получает URL для WebSocket соединений
|
|
170
|
+
*/
|
|
171
|
+
get wsURL() {
|
|
172
|
+
return this._options.wsURL || this._options.baseURL.replace(/^http/, 'ws');
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Получает HTTP-клиент
|
|
176
|
+
*/
|
|
177
|
+
get client() {
|
|
178
|
+
return this.httpClient;
|
|
179
|
+
}
|
|
141
180
|
/**
|
|
142
181
|
* Получает текущую среду выполнения
|
|
143
182
|
* @returns {string} Среда выполнения ('browser', 'node', 'unknown')
|
|
@@ -215,6 +254,8 @@ class CodeSolverSDK {
|
|
|
215
254
|
this._reasoning = new reasoning_api_js_1.ReasoningApi(newHttpClient);
|
|
216
255
|
this._codeModification = new code_modification_api_js_1.CodeModificationApi(newHttpClient);
|
|
217
256
|
this._chat = new chat_api_js_1.ChatApi(newHttpClient);
|
|
257
|
+
this._models = new models_api_js_1.ModelsApi(newHttpClient);
|
|
258
|
+
this._dependencies = new dependencies_api_js_1.DependenciesApi(newHttpClient);
|
|
218
259
|
// Если есть WebSocket клиент, пересоздаем его
|
|
219
260
|
if (this.wsClient) {
|
|
220
261
|
const isConnected = this.wsClient.isConnectedToReasoning() || this.wsClient.isConnectedToIndexing();
|