solver-sdk 2.5.0 → 2.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/api/projects-api.js +18 -5
- package/dist/cjs/api/projects-api.js.map +1 -1
- package/dist/cjs/api/reasoning-api.js +0 -8
- package/dist/cjs/api/reasoning-api.js.map +1 -1
- package/dist/cjs/code-solver-sdk.js +15 -18
- package/dist/cjs/code-solver-sdk.js.map +1 -1
- package/dist/cjs/utils/message-helpers.js +15 -37
- package/dist/cjs/utils/message-helpers.js.map +1 -1
- package/dist/esm/api/projects-api.js +18 -5
- package/dist/esm/api/projects-api.js.map +1 -1
- package/dist/esm/api/reasoning-api.js +0 -8
- package/dist/esm/api/reasoning-api.js.map +1 -1
- package/dist/esm/code-solver-sdk.js +15 -18
- package/dist/esm/code-solver-sdk.js.map +1 -1
- package/dist/esm/utils/message-helpers.js +16 -38
- package/dist/esm/utils/message-helpers.js.map +1 -1
- package/dist/types/api/projects-api.d.ts +2 -2
- package/dist/types/api/projects-api.d.ts.map +1 -1
- package/dist/types/api/reasoning-api.d.ts +0 -7
- package/dist/types/api/reasoning-api.d.ts.map +1 -1
- package/dist/types/code-solver-sdk.d.ts +1 -1
- package/dist/types/code-solver-sdk.d.ts.map +1 -1
- package/dist/types/utils/message-helpers.d.ts +4 -3
- package/dist/types/utils/message-helpers.d.ts.map +1 -1
- package/docs/API_REFERENCE.md +495 -96
- package/docs/AUTHENTICATION.md +291 -36
- package/docs/ERROR_HANDLING.md +544 -104
- package/docs/README.md +260 -75
- package/docs/README_V2.5.md +266 -0
- package/docs/WEBSOCKET.md +374 -111
- package/docs/indexing/INDEXING.md +372 -167
- package/package.json +1 -1
- package/docs/PING_PONG.md +0 -113
- package/docs/RESPONSE_TO_DEVELOPERS.md +0 -1
package/docs/API_REFERENCE.md
CHANGED
|
@@ -1,77 +1,76 @@
|
|
|
1
|
-
# API Reference
|
|
1
|
+
# API Reference v2.5.0
|
|
2
2
|
|
|
3
|
-
В этом документе описаны основные классы и методы SDK.
|
|
3
|
+
В этом документе описаны основные классы и методы AI Solver SDK v2.5.0.
|
|
4
4
|
|
|
5
5
|
## Содержание
|
|
6
6
|
|
|
7
7
|
- [CodeSolverSDK](#codesolversdk)
|
|
8
|
-
- [ChatApi](#chatapi)
|
|
9
8
|
- [ProjectsApi](#projectsapi)
|
|
10
|
-
- [SearchApi](#searchapi)
|
|
11
9
|
- [ReasoningApi](#reasoningapi)
|
|
10
|
+
- [ChatApi](#chatapi)
|
|
11
|
+
- [SearchApi](#searchapi)
|
|
12
|
+
- [Helper Functions](#helper-functions)
|
|
12
13
|
|
|
13
14
|
## CodeSolverSDK
|
|
14
15
|
|
|
15
16
|
Основной класс SDK, предоставляющий доступ ко всем API.
|
|
16
17
|
|
|
17
|
-
###
|
|
18
|
+
### Статический создатель (Рекомендуемый)
|
|
18
19
|
|
|
19
20
|
```javascript
|
|
20
|
-
const sdk =
|
|
21
|
+
const sdk = CodeSolverSDK.create(options);
|
|
21
22
|
```
|
|
22
23
|
|
|
23
24
|
### Параметры
|
|
24
25
|
|
|
25
|
-
| Параметр | Тип | Описание | Обязательно |
|
|
26
|
-
|
|
27
|
-
| `baseURL` | string | Базовый URL API | Да |
|
|
28
|
-
| `apiKey` | string | API ключ для авторизации |
|
|
29
|
-
| `
|
|
30
|
-
| `timeout` | number | Таймаут для HTTP запросов (мс) | Нет |
|
|
31
|
-
| `headers` | object | Дополнительные HTTP заголовки | Нет |
|
|
32
|
-
| `
|
|
33
|
-
| `mode` | string | Режим работы SDK ('browser', 'node', 'auto') | Нет |
|
|
26
|
+
| Параметр | Тип | Описание | Обязательно | По умолчанию |
|
|
27
|
+
|----------|-----|----------|-------------|--------------|
|
|
28
|
+
| `baseURL` | string | Базовый URL API | Да | - |
|
|
29
|
+
| `apiKey` | string | API ключ для авторизации | Да | - |
|
|
30
|
+
| `autoConnect` | boolean | Автоматическое подключение WebSocket | Нет | false |
|
|
31
|
+
| `timeout` | number | Таймаут для HTTP запросов (мс) | Нет | 30000 |
|
|
32
|
+
| `headers` | object | Дополнительные HTTP заголовки | Нет | {} |
|
|
33
|
+
| `wsURL` | string | URL для WebSocket (если отличается) | Нет | baseURL |
|
|
34
34
|
|
|
35
35
|
### Методы
|
|
36
36
|
|
|
37
|
-
#### `
|
|
38
|
-
|
|
39
|
-
Проверяет доступность API сервера.
|
|
40
|
-
|
|
41
|
-
```javascript
|
|
42
|
-
const isHealthy = await sdk.checkHealth();
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
#### `connect()`
|
|
37
|
+
#### `diagnoseAPI()`
|
|
46
38
|
|
|
47
|
-
|
|
39
|
+
Проверяет доступность всех API endpoints.
|
|
48
40
|
|
|
49
41
|
```javascript
|
|
50
|
-
await sdk.
|
|
42
|
+
const results = await sdk.diagnoseAPI();
|
|
43
|
+
console.log('Endpoints status:', results);
|
|
44
|
+
// Возвращает объект с результатами проверки каждого endpoint
|
|
51
45
|
```
|
|
52
46
|
|
|
53
|
-
#### `
|
|
47
|
+
#### `diagnoseFull()`
|
|
54
48
|
|
|
55
|
-
|
|
49
|
+
Детальная диагностика API и WebSocket.
|
|
56
50
|
|
|
57
51
|
```javascript
|
|
58
|
-
await sdk.
|
|
52
|
+
const detailed = await sdk.diagnoseFull();
|
|
53
|
+
console.log('Full diagnostics:', detailed);
|
|
59
54
|
```
|
|
60
55
|
|
|
61
|
-
#### `
|
|
56
|
+
#### `diagnoseWebSocket()`
|
|
62
57
|
|
|
63
|
-
|
|
58
|
+
Проверяет статус WebSocket соединений.
|
|
64
59
|
|
|
65
60
|
```javascript
|
|
66
|
-
sdk.
|
|
61
|
+
const wsStatus = await sdk.diagnoseWebSocket();
|
|
62
|
+
console.log('WebSocket status:', wsStatus);
|
|
67
63
|
```
|
|
68
64
|
|
|
69
|
-
#### `
|
|
65
|
+
#### `updateOptions(newOptions)`
|
|
70
66
|
|
|
71
|
-
|
|
67
|
+
Обновляет настройки SDK.
|
|
72
68
|
|
|
73
69
|
```javascript
|
|
74
|
-
sdk.
|
|
70
|
+
sdk.updateOptions({
|
|
71
|
+
apiKey: 'new-api-key',
|
|
72
|
+
timeout: 60000
|
|
73
|
+
});
|
|
75
74
|
```
|
|
76
75
|
|
|
77
76
|
## ChatApi
|
|
@@ -135,51 +134,64 @@ await sdk.chat.connectWebSocket();
|
|
|
135
134
|
|
|
136
135
|
## ProjectsApi
|
|
137
136
|
|
|
138
|
-
API для работы с проектами.
|
|
137
|
+
API для работы с проектами. Доступен через `sdk.projects`.
|
|
139
138
|
|
|
140
139
|
### Методы
|
|
141
140
|
|
|
142
|
-
#### `
|
|
141
|
+
#### `create(projectData)`
|
|
143
142
|
|
|
144
143
|
Создает новый проект.
|
|
145
144
|
|
|
146
145
|
```javascript
|
|
147
|
-
const project = await sdk.projects.
|
|
148
|
-
'
|
|
149
|
-
'/path/to/project',
|
|
150
|
-
|
|
151
|
-
);
|
|
146
|
+
const project = await sdk.projects.create({
|
|
147
|
+
name: 'My Project',
|
|
148
|
+
path: '/path/to/project',
|
|
149
|
+
description: 'Optional description'
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
// Возвращает объект проекта с id, name, path, статусами и метаданными
|
|
152
153
|
```
|
|
153
154
|
|
|
154
|
-
#### `
|
|
155
|
+
#### `get(projectId)`
|
|
155
156
|
|
|
156
|
-
Получает информацию о
|
|
157
|
+
Получает информацию о проекте по ID.
|
|
157
158
|
|
|
158
159
|
```javascript
|
|
159
|
-
const project = await sdk.projects.
|
|
160
|
+
const project = await sdk.projects.get('project-id');
|
|
160
161
|
```
|
|
161
162
|
|
|
162
|
-
#### `
|
|
163
|
+
#### `getAll()`
|
|
163
164
|
|
|
164
165
|
Получает список всех проектов.
|
|
165
166
|
|
|
166
167
|
```javascript
|
|
167
|
-
const projects = await sdk.projects.
|
|
168
|
+
const projects = await sdk.projects.getAll();
|
|
169
|
+
// Возвращает { projects: Array, total: number }
|
|
168
170
|
```
|
|
169
171
|
|
|
170
|
-
#### `
|
|
172
|
+
#### `startIndexing(projectId)`
|
|
171
173
|
|
|
172
174
|
Запускает индексацию проекта.
|
|
173
175
|
|
|
174
176
|
```javascript
|
|
175
|
-
await sdk.projects.
|
|
176
|
-
|
|
177
|
-
});
|
|
177
|
+
await sdk.projects.startIndexing('project-id');
|
|
178
|
+
// Возвращает { message: 'Индексация запущена', projectId, status: 'accepted' }
|
|
178
179
|
```
|
|
179
180
|
|
|
181
|
+
#### `getIndexingStatus(projectId)`
|
|
182
|
+
|
|
183
|
+
Получает статус индексации проекта.
|
|
184
|
+
|
|
185
|
+
```javascript
|
|
186
|
+
const status = await sdk.projects.getIndexingStatus('project-id');
|
|
187
|
+
// Возвращает { projectId, indexStatus, indexingProgress, filesIndexed, lastUpdated }
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### WebSocket методы
|
|
191
|
+
|
|
180
192
|
#### `connectWebSocket()`
|
|
181
193
|
|
|
182
|
-
Подключается к WebSocket для отслеживания
|
|
194
|
+
Подключается к WebSocket для отслеживания событий проектов.
|
|
183
195
|
|
|
184
196
|
```javascript
|
|
185
197
|
await sdk.projects.connectWebSocket();
|
|
@@ -187,118 +199,505 @@ await sdk.projects.connectWebSocket();
|
|
|
187
199
|
|
|
188
200
|
#### `disconnectWebSocket()`
|
|
189
201
|
|
|
190
|
-
Отключается от WebSocket
|
|
202
|
+
Отключается от WebSocket.
|
|
191
203
|
|
|
192
204
|
```javascript
|
|
193
205
|
await sdk.projects.disconnectWebSocket();
|
|
194
206
|
```
|
|
195
207
|
|
|
196
|
-
|
|
208
|
+
### Event методы
|
|
209
|
+
|
|
210
|
+
#### `onIndexingProgress(callback)`
|
|
197
211
|
|
|
198
|
-
|
|
212
|
+
Отслеживает прогресс индексации.
|
|
199
213
|
|
|
200
214
|
```javascript
|
|
201
|
-
sdk.projects.
|
|
202
|
-
console.log(
|
|
215
|
+
sdk.projects.onIndexingProgress((data) => {
|
|
216
|
+
console.log(`Progress: ${data.percentage}%`);
|
|
217
|
+
console.log(`Files: ${data.processedFiles}/${data.totalFiles}`);
|
|
203
218
|
});
|
|
204
219
|
```
|
|
205
220
|
|
|
206
|
-
#### `
|
|
221
|
+
#### `onIndexingComplete(callback)`
|
|
207
222
|
|
|
208
|
-
|
|
223
|
+
Событие завершения индексации.
|
|
209
224
|
|
|
210
225
|
```javascript
|
|
211
|
-
|
|
226
|
+
sdk.projects.onIndexingComplete((data) => {
|
|
227
|
+
console.log('Indexing completed:', data.projectId);
|
|
228
|
+
console.log('Total files:', data.totalFiles);
|
|
229
|
+
});
|
|
212
230
|
```
|
|
213
231
|
|
|
214
|
-
#### `
|
|
232
|
+
#### `onIndexingError(callback)`
|
|
215
233
|
|
|
216
|
-
|
|
234
|
+
Событие ошибки индексации.
|
|
217
235
|
|
|
218
236
|
```javascript
|
|
219
|
-
|
|
237
|
+
sdk.projects.onIndexingError((error) => {
|
|
238
|
+
console.error('Indexing error:', error.message);
|
|
239
|
+
});
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Алиасы для совместимости
|
|
243
|
+
|
|
244
|
+
```javascript
|
|
245
|
+
// Старые методы (deprecated, но работают)
|
|
246
|
+
await sdk.projects.createProject(name, path, options); // → create()
|
|
247
|
+
await sdk.projects.indexProject(projectId); // → startIndexing()
|
|
248
|
+
await sdk.projects.getProject(projectId); // → get()
|
|
249
|
+
await sdk.projects.getAllProjects(); // → getAll()
|
|
220
250
|
```
|
|
221
251
|
|
|
222
252
|
## SearchApi
|
|
223
253
|
|
|
224
|
-
API для поиска кода.
|
|
254
|
+
API для семантического поиска кода. Доступен через `sdk.search`.
|
|
225
255
|
|
|
226
256
|
### Методы
|
|
227
257
|
|
|
228
|
-
#### `
|
|
258
|
+
#### `searchProject(projectId, options)`
|
|
229
259
|
|
|
230
|
-
Выполняет поиск
|
|
260
|
+
Выполняет семантический поиск в проекте (POST запрос).
|
|
231
261
|
|
|
232
262
|
```javascript
|
|
233
|
-
const results = await sdk.search.
|
|
234
|
-
query: '
|
|
235
|
-
limit: 10
|
|
263
|
+
const results = await sdk.search.searchProject('project-id', {
|
|
264
|
+
query: 'функция для обработки HTTP запросов',
|
|
265
|
+
limit: 10,
|
|
266
|
+
minScore: 0.7
|
|
236
267
|
});
|
|
268
|
+
|
|
269
|
+
// Возвращает массив результатов с релевантностью и фрагментами кода
|
|
237
270
|
```
|
|
238
271
|
|
|
239
|
-
#### `
|
|
272
|
+
#### `searchProjectGet(projectId, query, options)`
|
|
240
273
|
|
|
241
|
-
Выполняет
|
|
274
|
+
Выполняет поиск через GET запрос с параметрами URL.
|
|
242
275
|
|
|
243
276
|
```javascript
|
|
244
|
-
const results = await sdk.search.
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
277
|
+
const results = await sdk.search.searchProjectGet(
|
|
278
|
+
'project-id',
|
|
279
|
+
'поиск по коду',
|
|
280
|
+
{ limit: 10 }
|
|
281
|
+
);
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### Алиасы для совместимости
|
|
285
|
+
|
|
286
|
+
```javascript
|
|
287
|
+
// Старые методы (deprecated, но работают)
|
|
288
|
+
await sdk.search.searchCode(projectId, options); // → searchProject()
|
|
289
|
+
await sdk.search.semanticSearch(projectId, options); // → searchProject()
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
## ChatApi
|
|
293
|
+
|
|
294
|
+
API для взаимодействия с AI чатом и Claude 4 thinking. Доступен через `sdk.chat`.
|
|
295
|
+
|
|
296
|
+
### Методы
|
|
297
|
+
|
|
298
|
+
#### `send(messages, options)`
|
|
299
|
+
|
|
300
|
+
Отправляет сообщения в чат и получает ответ.
|
|
301
|
+
|
|
302
|
+
```javascript
|
|
303
|
+
const response = await sdk.chat.send([
|
|
304
|
+
{
|
|
305
|
+
role: 'user',
|
|
306
|
+
content: 'Объясни как работает эта функция'
|
|
307
|
+
}
|
|
308
|
+
], {
|
|
309
|
+
projectId: 'project-id',
|
|
310
|
+
model: 'claude-3-5-sonnet-20241022'
|
|
311
|
+
});
|
|
312
|
+
|
|
313
|
+
console.log(response.content);
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
#### `stream(messages, options, onChunk)`
|
|
317
|
+
|
|
318
|
+
Отправляет сообщения с потоковой передачей ответа.
|
|
319
|
+
|
|
320
|
+
```javascript
|
|
321
|
+
await sdk.chat.stream(
|
|
322
|
+
messages,
|
|
323
|
+
{
|
|
324
|
+
projectId: 'project-id',
|
|
325
|
+
model: 'claude-3-5-sonnet-20241022',
|
|
326
|
+
thinking: true
|
|
327
|
+
},
|
|
328
|
+
(chunk) => {
|
|
329
|
+
console.log('Chunk received:', chunk);
|
|
330
|
+
}
|
|
331
|
+
);
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
### Thinking Support (Claude 4)
|
|
335
|
+
|
|
336
|
+
#### С thinking блоками
|
|
337
|
+
|
|
338
|
+
```javascript
|
|
339
|
+
await sdk.chat.stream(
|
|
340
|
+
messages,
|
|
341
|
+
{
|
|
342
|
+
thinking: true,
|
|
343
|
+
tool_choice: { type: 'auto' } // Только auto/none с thinking
|
|
344
|
+
},
|
|
345
|
+
(eventType, data) => {
|
|
346
|
+
switch (eventType) {
|
|
347
|
+
case 'thinking_delta':
|
|
348
|
+
console.log('Thinking:', data.thinking);
|
|
349
|
+
break;
|
|
350
|
+
case 'text_delta':
|
|
351
|
+
console.log('Text:', data.text);
|
|
352
|
+
break;
|
|
353
|
+
case 'tool_use':
|
|
354
|
+
console.log('Tool:', data.tool_name);
|
|
355
|
+
break;
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
);
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
### Complex Content Support
|
|
362
|
+
|
|
363
|
+
```javascript
|
|
364
|
+
const complexMessage = {
|
|
365
|
+
role: 'user',
|
|
366
|
+
content: [
|
|
367
|
+
{ type: 'text', text: 'Анализируй этот код:' },
|
|
368
|
+
{ type: 'text', text: 'function example() { return 42; }' }
|
|
369
|
+
]
|
|
370
|
+
};
|
|
371
|
+
|
|
372
|
+
const response = await sdk.chat.send([complexMessage], options);
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
### WebSocket методы
|
|
376
|
+
|
|
377
|
+
#### `connectWebSocket()`
|
|
378
|
+
|
|
379
|
+
Подключается к WebSocket для потокового чата.
|
|
380
|
+
|
|
381
|
+
```javascript
|
|
382
|
+
await sdk.chat.connectWebSocket();
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
#### `disconnectWebSocket()`
|
|
386
|
+
|
|
387
|
+
Отключается от chat WebSocket.
|
|
388
|
+
|
|
389
|
+
```javascript
|
|
390
|
+
await sdk.chat.disconnectWebSocket();
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
### Event методы
|
|
394
|
+
|
|
395
|
+
#### `onTextDelta(callback)`
|
|
396
|
+
|
|
397
|
+
Событие получения текстового фрагмента.
|
|
398
|
+
|
|
399
|
+
```javascript
|
|
400
|
+
sdk.chat.onTextDelta((text) => {
|
|
401
|
+
console.log('Text delta:', text);
|
|
248
402
|
});
|
|
249
403
|
```
|
|
250
404
|
|
|
405
|
+
#### `onThinkingDelta(callback)`
|
|
406
|
+
|
|
407
|
+
Событие получения thinking фрагмента.
|
|
408
|
+
|
|
409
|
+
```javascript
|
|
410
|
+
sdk.chat.onThinkingDelta((thinking) => {
|
|
411
|
+
console.log('Thinking delta:', thinking);
|
|
412
|
+
});
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
#### `onToolUse(callback)`
|
|
416
|
+
|
|
417
|
+
Событие использования инструмента.
|
|
418
|
+
|
|
419
|
+
```javascript
|
|
420
|
+
sdk.chat.onToolUse((tool) => {
|
|
421
|
+
console.log('Tool used:', tool.name, tool.input);
|
|
422
|
+
});
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
#### `onMessageComplete(callback)`
|
|
426
|
+
|
|
427
|
+
Событие завершения сообщения.
|
|
428
|
+
|
|
429
|
+
```javascript
|
|
430
|
+
sdk.chat.onMessageComplete((message) => {
|
|
431
|
+
console.log('Message completed:', message);
|
|
432
|
+
});
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
### Поддерживаемые модели
|
|
436
|
+
|
|
437
|
+
```javascript
|
|
438
|
+
const models = [
|
|
439
|
+
'claude-3-5-sonnet-20241022',
|
|
440
|
+
'claude-3-5-haiku-20241022',
|
|
441
|
+
'claude-3-opus-20240229'
|
|
442
|
+
];
|
|
443
|
+
```
|
|
444
|
+
|
|
251
445
|
## ReasoningApi
|
|
252
446
|
|
|
253
|
-
API для работы с
|
|
447
|
+
API для работы с AI reasoning процессами. Доступен через `sdk.reasoning`.
|
|
254
448
|
|
|
255
449
|
### Методы
|
|
256
450
|
|
|
257
|
-
#### `
|
|
451
|
+
#### `create(reasoningData)`
|
|
258
452
|
|
|
259
|
-
Создаёт
|
|
453
|
+
Создаёт новый reasoning процесс.
|
|
260
454
|
|
|
261
455
|
```javascript
|
|
262
|
-
const reasoning = await sdk.reasoning.
|
|
456
|
+
const reasoning = await sdk.reasoning.create({
|
|
263
457
|
projectId: 'project-id',
|
|
264
|
-
query: '
|
|
458
|
+
query: 'Проанализируй архитектуру этого проекта'
|
|
265
459
|
});
|
|
460
|
+
|
|
461
|
+
// Возвращает объект reasoning с id, projectId, query, status
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
#### `get(reasoningId)`
|
|
465
|
+
|
|
466
|
+
Получает информацию о reasoning процессе.
|
|
467
|
+
|
|
468
|
+
```javascript
|
|
469
|
+
const reasoning = await sdk.reasoning.get('reasoning-id');
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
#### `getByProject(projectId)`
|
|
473
|
+
|
|
474
|
+
Получает все reasoning процессы проекта.
|
|
475
|
+
|
|
476
|
+
```javascript
|
|
477
|
+
const reasonings = await sdk.reasoning.getByProject('project-id');
|
|
478
|
+
// Возвращает массив всех reasoning процессов проекта
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
#### `start(reasoningId)`
|
|
482
|
+
|
|
483
|
+
Запускает reasoning процесс.
|
|
484
|
+
|
|
485
|
+
```javascript
|
|
486
|
+
await sdk.reasoning.start('reasoning-id');
|
|
487
|
+
// Возвращает { message: 'Reasoning процесс запущен', id: reasoningId }
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
#### `stop(reasoningId)`
|
|
491
|
+
|
|
492
|
+
Останавливает reasoning процесс.
|
|
493
|
+
|
|
494
|
+
```javascript
|
|
495
|
+
await sdk.reasoning.stop('reasoning-id');
|
|
496
|
+
// Возвращает { message: 'Reasoning процесс остановлен', id: reasoningId }
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
### WebSocket методы
|
|
500
|
+
|
|
501
|
+
#### `connectWebSocket()`
|
|
502
|
+
|
|
503
|
+
Подключается к WebSocket для отслеживания reasoning событий.
|
|
504
|
+
|
|
505
|
+
```javascript
|
|
506
|
+
await sdk.reasoning.connectWebSocket();
|
|
266
507
|
```
|
|
267
508
|
|
|
268
|
-
#### `
|
|
509
|
+
#### `disconnectWebSocket()`
|
|
510
|
+
|
|
511
|
+
Отключается от reasoning WebSocket.
|
|
512
|
+
|
|
513
|
+
```javascript
|
|
514
|
+
await sdk.reasoning.disconnectWebSocket();
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
### Event методы
|
|
518
|
+
|
|
519
|
+
#### `onReasoningStarted(callback)`
|
|
269
520
|
|
|
270
|
-
|
|
521
|
+
Событие начала reasoning процесса.
|
|
271
522
|
|
|
272
523
|
```javascript
|
|
273
|
-
|
|
524
|
+
sdk.reasoning.onReasoningStarted((data) => {
|
|
525
|
+
console.log('Reasoning started:', data.id);
|
|
526
|
+
console.log('Query:', data.query);
|
|
527
|
+
});
|
|
274
528
|
```
|
|
275
529
|
|
|
276
|
-
#### `
|
|
530
|
+
#### `onReasoningProgress(callback)`
|
|
277
531
|
|
|
278
|
-
|
|
532
|
+
Отслеживает прогресс reasoning.
|
|
279
533
|
|
|
280
534
|
```javascript
|
|
281
|
-
|
|
535
|
+
sdk.reasoning.onReasoningProgress((data) => {
|
|
536
|
+
console.log('Progress:', data.progress);
|
|
537
|
+
console.log('Current step:', data.currentStep);
|
|
538
|
+
});
|
|
282
539
|
```
|
|
283
540
|
|
|
284
|
-
#### `
|
|
541
|
+
#### `onReasoningCompleted(callback)`
|
|
285
542
|
|
|
286
|
-
|
|
543
|
+
Событие завершения reasoning.
|
|
287
544
|
|
|
288
545
|
```javascript
|
|
289
|
-
|
|
546
|
+
sdk.reasoning.onReasoningCompleted((data) => {
|
|
547
|
+
console.log('Reasoning completed:', data.id);
|
|
548
|
+
console.log('Results:', data.results);
|
|
549
|
+
});
|
|
290
550
|
```
|
|
291
551
|
|
|
292
|
-
#### `
|
|
552
|
+
#### `onReasoningError(callback)`
|
|
293
553
|
|
|
294
|
-
|
|
554
|
+
Событие ошибки reasoning.
|
|
295
555
|
|
|
296
556
|
```javascript
|
|
297
|
-
sdk.reasoning.
|
|
298
|
-
console.
|
|
557
|
+
sdk.reasoning.onReasoningError((error) => {
|
|
558
|
+
console.error('Reasoning error:', error.message);
|
|
299
559
|
});
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
### Алиасы для совместимости
|
|
563
|
+
|
|
564
|
+
```javascript
|
|
565
|
+
// Новые алиасы методов (v2.5.0)
|
|
566
|
+
await sdk.reasoning.create(data); // основной метод
|
|
567
|
+
await sdk.reasoning.start(id); // основной метод
|
|
568
|
+
await sdk.reasoning.stop(id); // основной метод
|
|
569
|
+
|
|
570
|
+
// Старые методы (deprecated, но работают)
|
|
571
|
+
await sdk.reasoning.createReasoning(data); // → create()
|
|
572
|
+
await sdk.reasoning.startReasoning(id); // → start()
|
|
573
|
+
await sdk.reasoning.stopReasoning(id); // → stop()
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
## Helper Functions
|
|
577
|
+
|
|
578
|
+
Вспомогательные функции для работы с сообщениями и инструментами.
|
|
579
|
+
|
|
580
|
+
### Message Helpers
|
|
581
|
+
|
|
582
|
+
#### `createComplexAssistantMessage(textContent, thinkingBlocks, toolUseBlocks)`
|
|
583
|
+
|
|
584
|
+
Создает сложное assistant сообщение с thinking и tool blocks.
|
|
585
|
+
|
|
586
|
+
```javascript
|
|
587
|
+
import { createComplexAssistantMessage } from '@ai-solver/sdk';
|
|
588
|
+
|
|
589
|
+
const message = createComplexAssistantMessage(
|
|
590
|
+
'Вот анализ кода:',
|
|
591
|
+
['thinking block 1', 'thinking block 2'],
|
|
592
|
+
[{ type: 'tool_use', name: 'read_file', input: { path: 'app.js' } }]
|
|
593
|
+
);
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
#### `createToolResultMessage(toolUseId, isError, content)`
|
|
597
|
+
|
|
598
|
+
Создает сообщение с результатом выполнения инструмента.
|
|
599
|
+
|
|
600
|
+
```javascript
|
|
601
|
+
import { createToolResultMessage } from '@ai-solver/sdk';
|
|
602
|
+
|
|
603
|
+
const resultMessage = createToolResultMessage(
|
|
604
|
+
'tool_use_123',
|
|
605
|
+
false,
|
|
606
|
+
'File contents: console.log("Hello");'
|
|
607
|
+
);
|
|
608
|
+
```
|
|
609
|
+
|
|
610
|
+
#### `extractThinkingBlocks(message)`
|
|
300
611
|
|
|
301
|
-
|
|
302
|
-
|
|
612
|
+
Извлекает thinking блоки из сообщения.
|
|
613
|
+
|
|
614
|
+
```javascript
|
|
615
|
+
import { extractThinkingBlocks } from '@ai-solver/sdk';
|
|
616
|
+
|
|
617
|
+
const thinkingBlocks = extractThinkingBlocks(assistantMessage);
|
|
618
|
+
console.log('Thinking blocks:', thinkingBlocks);
|
|
619
|
+
```
|
|
620
|
+
|
|
621
|
+
#### `extractToolUseBlocks(message)`
|
|
622
|
+
|
|
623
|
+
Извлекает tool_use блоки из сообщения.
|
|
624
|
+
|
|
625
|
+
```javascript
|
|
626
|
+
import { extractToolUseBlocks } from '@ai-solver/sdk';
|
|
627
|
+
|
|
628
|
+
const toolBlocks = extractToolUseBlocks(assistantMessage);
|
|
629
|
+
console.log('Tool blocks:', toolBlocks);
|
|
630
|
+
```
|
|
631
|
+
|
|
632
|
+
### Tool Helpers
|
|
633
|
+
|
|
634
|
+
#### `createStandardDevelopmentTools()`
|
|
635
|
+
|
|
636
|
+
Создает стандартный набор инструментов для разработки (8 инструментов как в Cursor).
|
|
637
|
+
|
|
638
|
+
```javascript
|
|
639
|
+
import { createStandardDevelopmentTools } from '@ai-solver/sdk';
|
|
640
|
+
|
|
641
|
+
const tools = createStandardDevelopmentTools();
|
|
642
|
+
// Возвращает массив с инструментами:
|
|
643
|
+
// - read_file
|
|
644
|
+
// - edit_file
|
|
645
|
+
// - create_file
|
|
646
|
+
// - list_directory
|
|
647
|
+
// - search_files
|
|
648
|
+
// - run_command
|
|
649
|
+
// - analyze_code
|
|
650
|
+
// - explain_code
|
|
651
|
+
|
|
652
|
+
const response = await sdk.chat.stream(messages, {
|
|
653
|
+
tools: tools,
|
|
654
|
+
tool_choice: { type: 'auto' }
|
|
303
655
|
});
|
|
304
|
-
```
|
|
656
|
+
```
|
|
657
|
+
|
|
658
|
+
### Type Definitions
|
|
659
|
+
|
|
660
|
+
#### `ChatMessage`
|
|
661
|
+
|
|
662
|
+
```typescript
|
|
663
|
+
interface ChatMessage {
|
|
664
|
+
role: 'user' | 'assistant' | 'system' | 'tool';
|
|
665
|
+
content: string | ContentBlock[];
|
|
666
|
+
name?: string;
|
|
667
|
+
tool_call_id?: string;
|
|
668
|
+
}
|
|
669
|
+
```
|
|
670
|
+
|
|
671
|
+
#### `ContentBlock`
|
|
672
|
+
|
|
673
|
+
```typescript
|
|
674
|
+
interface ContentBlock {
|
|
675
|
+
type: 'text' | 'tool_use' | 'tool_result' | 'thinking';
|
|
676
|
+
text?: string;
|
|
677
|
+
id?: string;
|
|
678
|
+
name?: string;
|
|
679
|
+
input?: any;
|
|
680
|
+
content?: any;
|
|
681
|
+
is_error?: boolean;
|
|
682
|
+
}
|
|
683
|
+
```
|
|
684
|
+
|
|
685
|
+
#### `ChatOptions`
|
|
686
|
+
|
|
687
|
+
```typescript
|
|
688
|
+
interface ChatOptions {
|
|
689
|
+
projectId?: string;
|
|
690
|
+
model?: string;
|
|
691
|
+
thinking?: boolean;
|
|
692
|
+
tools?: Tool[];
|
|
693
|
+
tool_choice?: ToolChoice;
|
|
694
|
+
max_tokens?: number;
|
|
695
|
+
temperature?: number;
|
|
696
|
+
stream?: boolean;
|
|
697
|
+
}
|
|
698
|
+
```
|
|
699
|
+
|
|
700
|
+
---
|
|
701
|
+
|
|
702
|
+
**Документация обновлена для SDK v2.5.0**
|
|
703
|
+
**Дата обновления:** 28 июня 2025
|