solver-sdk 2.6.2 → 2.7.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 +44 -55
- package/dist/cjs/api/chat-api/index.js +68 -68
- package/dist/cjs/api/chat-api/index.js.map +1 -1
- package/dist/cjs/api/projects-api.js +7 -0
- package/dist/cjs/api/projects-api.js.map +1 -1
- package/dist/cjs/code-solver-sdk.js +24 -2
- package/dist/cjs/code-solver-sdk.js.map +1 -1
- package/dist/cjs/constants/websocket-events.constants.js +5 -0
- package/dist/cjs/constants/websocket-events.constants.js.map +1 -1
- package/dist/cjs/constants/websocket-namespaces.constants.js +2 -0
- package/dist/cjs/constants/websocket-namespaces.constants.js.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interfaces/websocket/vscode-command.interfaces.js +42 -0
- package/dist/cjs/interfaces/websocket/vscode-command.interfaces.js.map +1 -0
- package/dist/cjs/utils/http-client.js +11 -3
- package/dist/cjs/utils/http-client.js.map +1 -1
- package/dist/cjs/ws/file-editing-ws-client.js +162 -0
- package/dist/cjs/ws/file-editing-ws-client.js.map +1 -0
- package/dist/esm/api/chat-api/index.js +68 -68
- package/dist/esm/api/chat-api/index.js.map +1 -1
- package/dist/esm/api/projects-api.js +7 -0
- package/dist/esm/api/projects-api.js.map +1 -1
- package/dist/esm/code-solver-sdk.js +24 -2
- package/dist/esm/code-solver-sdk.js.map +1 -1
- package/dist/esm/constants/websocket-events.constants.js +5 -0
- package/dist/esm/constants/websocket-events.constants.js.map +1 -1
- package/dist/esm/constants/websocket-namespaces.constants.js +2 -0
- package/dist/esm/constants/websocket-namespaces.constants.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interfaces/websocket/vscode-command.interfaces.js +39 -0
- package/dist/esm/interfaces/websocket/vscode-command.interfaces.js.map +1 -0
- package/dist/esm/utils/http-client.js +11 -3
- package/dist/esm/utils/http-client.js.map +1 -1
- package/dist/esm/ws/file-editing-ws-client.js +158 -0
- package/dist/esm/ws/file-editing-ws-client.js.map +1 -0
- package/dist/types/api/chat-api/index.d.ts +7 -0
- package/dist/types/api/chat-api/index.d.ts.map +1 -1
- package/dist/types/api/chat-api/interfaces.d.ts +7 -0
- package/dist/types/api/chat-api/interfaces.d.ts.map +1 -1
- package/dist/types/api/chat-api/models.d.ts +10 -1
- package/dist/types/api/chat-api/models.d.ts.map +1 -1
- package/dist/types/api/projects-api.d.ts +18 -0
- package/dist/types/api/projects-api.d.ts.map +1 -1
- package/dist/types/code-solver-sdk.d.ts +8 -0
- package/dist/types/code-solver-sdk.d.ts.map +1 -1
- package/dist/types/constants/websocket-events.constants.d.ts +5 -1
- package/dist/types/constants/websocket-events.constants.d.ts.map +1 -1
- package/dist/types/constants/websocket-namespaces.constants.d.ts +3 -1
- package/dist/types/constants/websocket-namespaces.constants.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/interfaces/websocket/vscode-command.interfaces.d.ts +56 -0
- package/dist/types/interfaces/websocket/vscode-command.interfaces.d.ts.map +1 -0
- package/dist/types/utils/http-client.d.ts.map +1 -1
- package/dist/types/ws/file-editing-ws-client.d.ts +85 -0
- package/dist/types/ws/file-editing-ws-client.d.ts.map +1 -0
- package/docs/ARCHITECTURE.md +268 -0
- package/docs/QUICK_START.md +126 -0
- package/docs/README.md +25 -279
- package/docs/VSCODE_INTEGRATION.md +432 -0
- package/docs/WEBSOCKET.md +49 -10
- package/package.json +1 -1
- package/docs/API_REFERENCE.md +0 -703
- package/docs/INTEGRATION_GUIDE_V2.5.md +0 -516
- package/docs/README_V2.5.md +0 -266
package/docs/API_REFERENCE.md
DELETED
|
@@ -1,703 +0,0 @@
|
|
|
1
|
-
# API Reference v2.5.0
|
|
2
|
-
|
|
3
|
-
В этом документе описаны основные классы и методы AI Solver SDK v2.5.0.
|
|
4
|
-
|
|
5
|
-
## Содержание
|
|
6
|
-
|
|
7
|
-
- [CodeSolverSDK](#codesolversdk)
|
|
8
|
-
- [ProjectsApi](#projectsapi)
|
|
9
|
-
- [ReasoningApi](#reasoningapi)
|
|
10
|
-
- [ChatApi](#chatapi)
|
|
11
|
-
- [SearchApi](#searchapi)
|
|
12
|
-
- [Helper Functions](#helper-functions)
|
|
13
|
-
|
|
14
|
-
## CodeSolverSDK
|
|
15
|
-
|
|
16
|
-
Основной класс SDK, предоставляющий доступ ко всем API.
|
|
17
|
-
|
|
18
|
-
### Статический создатель (Рекомендуемый)
|
|
19
|
-
|
|
20
|
-
```javascript
|
|
21
|
-
const sdk = CodeSolverSDK.create(options);
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
### Параметры
|
|
25
|
-
|
|
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
|
-
|
|
35
|
-
### Методы
|
|
36
|
-
|
|
37
|
-
#### `diagnoseAPI()`
|
|
38
|
-
|
|
39
|
-
Проверяет доступность всех API endpoints.
|
|
40
|
-
|
|
41
|
-
```javascript
|
|
42
|
-
const results = await sdk.diagnoseAPI();
|
|
43
|
-
console.log('Endpoints status:', results);
|
|
44
|
-
// Возвращает объект с результатами проверки каждого endpoint
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
#### `diagnoseFull()`
|
|
48
|
-
|
|
49
|
-
Детальная диагностика API и WebSocket.
|
|
50
|
-
|
|
51
|
-
```javascript
|
|
52
|
-
const detailed = await sdk.diagnoseFull();
|
|
53
|
-
console.log('Full diagnostics:', detailed);
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
#### `diagnoseWebSocket()`
|
|
57
|
-
|
|
58
|
-
Проверяет статус WebSocket соединений.
|
|
59
|
-
|
|
60
|
-
```javascript
|
|
61
|
-
const wsStatus = await sdk.diagnoseWebSocket();
|
|
62
|
-
console.log('WebSocket status:', wsStatus);
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
#### `updateOptions(newOptions)`
|
|
66
|
-
|
|
67
|
-
Обновляет настройки SDK.
|
|
68
|
-
|
|
69
|
-
```javascript
|
|
70
|
-
sdk.updateOptions({
|
|
71
|
-
apiKey: 'new-api-key',
|
|
72
|
-
timeout: 60000
|
|
73
|
-
});
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
## ChatApi
|
|
77
|
-
|
|
78
|
-
API для работы с чатом и AI-моделями.
|
|
79
|
-
|
|
80
|
-
### Методы
|
|
81
|
-
|
|
82
|
-
#### `chat(messages, options)`
|
|
83
|
-
|
|
84
|
-
Отправляет запрос чата и возвращает полный ответ.
|
|
85
|
-
|
|
86
|
-
```javascript
|
|
87
|
-
const response = await sdk.chat.chat([
|
|
88
|
-
{ role: 'user', content: 'Привет, как дела?' }
|
|
89
|
-
], {
|
|
90
|
-
model: 'claude-3-7-sonnet-20240229'
|
|
91
|
-
});
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
#### `streamChat(messages, options, callback)`
|
|
95
|
-
|
|
96
|
-
Отправляет запрос чата и получает ответ в потоковом режиме.
|
|
97
|
-
|
|
98
|
-
```javascript
|
|
99
|
-
await sdk.chat.streamChat(
|
|
100
|
-
[{ role: 'user', content: 'Объясни JavaScript' }],
|
|
101
|
-
{ model: 'claude-3-7-sonnet-20240229' },
|
|
102
|
-
(chunk) => console.log(chunk)
|
|
103
|
-
);
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
#### `streamChatWithThinking(messages, options, callback)`
|
|
107
|
-
|
|
108
|
-
Отправляет запрос чата с получением промежуточных шагов мышления.
|
|
109
|
-
|
|
110
|
-
```javascript
|
|
111
|
-
await sdk.chat.streamChatWithThinking(
|
|
112
|
-
[{ role: 'user', content: 'Объясни принцип работы реактивного программирования' }],
|
|
113
|
-
{
|
|
114
|
-
model: 'claude-3-7-sonnet-20240229',
|
|
115
|
-
thinking: true
|
|
116
|
-
},
|
|
117
|
-
(eventType, data) => {
|
|
118
|
-
if (eventType === 'thinking_delta') {
|
|
119
|
-
console.log('Мышление:', data.thinking);
|
|
120
|
-
} else if (eventType === 'text_delta') {
|
|
121
|
-
console.log('Ответ:', data.text);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
);
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
#### `connectWebSocket()`
|
|
128
|
-
|
|
129
|
-
Подключается к WebSocket для событий чата.
|
|
130
|
-
|
|
131
|
-
```javascript
|
|
132
|
-
await sdk.chat.connectWebSocket();
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
## ProjectsApi
|
|
136
|
-
|
|
137
|
-
API для работы с проектами. Доступен через `sdk.projects`.
|
|
138
|
-
|
|
139
|
-
### Методы
|
|
140
|
-
|
|
141
|
-
#### `create(projectData)`
|
|
142
|
-
|
|
143
|
-
Создает новый проект.
|
|
144
|
-
|
|
145
|
-
```javascript
|
|
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, статусами и метаданными
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
#### `get(projectId)`
|
|
156
|
-
|
|
157
|
-
Получает информацию о проекте по ID.
|
|
158
|
-
|
|
159
|
-
```javascript
|
|
160
|
-
const project = await sdk.projects.get('project-id');
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
#### `getAll()`
|
|
164
|
-
|
|
165
|
-
Получает список всех проектов.
|
|
166
|
-
|
|
167
|
-
```javascript
|
|
168
|
-
const projects = await sdk.projects.getAll();
|
|
169
|
-
// Возвращает { projects: Array, total: number }
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
#### `startIndexing(projectId)`
|
|
173
|
-
|
|
174
|
-
Запускает индексацию проекта.
|
|
175
|
-
|
|
176
|
-
```javascript
|
|
177
|
-
await sdk.projects.startIndexing('project-id');
|
|
178
|
-
// Возвращает { message: 'Индексация запущена', projectId, status: 'accepted' }
|
|
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
|
-
|
|
192
|
-
#### `connectWebSocket()`
|
|
193
|
-
|
|
194
|
-
Подключается к WebSocket для отслеживания событий проектов.
|
|
195
|
-
|
|
196
|
-
```javascript
|
|
197
|
-
await sdk.projects.connectWebSocket();
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
#### `disconnectWebSocket()`
|
|
201
|
-
|
|
202
|
-
Отключается от WebSocket.
|
|
203
|
-
|
|
204
|
-
```javascript
|
|
205
|
-
await sdk.projects.disconnectWebSocket();
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
### Event методы
|
|
209
|
-
|
|
210
|
-
#### `onIndexingProgress(callback)`
|
|
211
|
-
|
|
212
|
-
Отслеживает прогресс индексации.
|
|
213
|
-
|
|
214
|
-
```javascript
|
|
215
|
-
sdk.projects.onIndexingProgress((data) => {
|
|
216
|
-
console.log(`Progress: ${data.percentage}%`);
|
|
217
|
-
console.log(`Files: ${data.processedFiles}/${data.totalFiles}`);
|
|
218
|
-
});
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
#### `onIndexingComplete(callback)`
|
|
222
|
-
|
|
223
|
-
Событие завершения индексации.
|
|
224
|
-
|
|
225
|
-
```javascript
|
|
226
|
-
sdk.projects.onIndexingComplete((data) => {
|
|
227
|
-
console.log('Indexing completed:', data.projectId);
|
|
228
|
-
console.log('Total files:', data.totalFiles);
|
|
229
|
-
});
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
#### `onIndexingError(callback)`
|
|
233
|
-
|
|
234
|
-
Событие ошибки индексации.
|
|
235
|
-
|
|
236
|
-
```javascript
|
|
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()
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
## SearchApi
|
|
253
|
-
|
|
254
|
-
API для семантического поиска кода. Доступен через `sdk.search`.
|
|
255
|
-
|
|
256
|
-
### Методы
|
|
257
|
-
|
|
258
|
-
#### `searchProject(projectId, options)`
|
|
259
|
-
|
|
260
|
-
Выполняет семантический поиск в проекте (POST запрос).
|
|
261
|
-
|
|
262
|
-
```javascript
|
|
263
|
-
const results = await sdk.search.searchProject('project-id', {
|
|
264
|
-
query: 'функция для обработки HTTP запросов',
|
|
265
|
-
limit: 10,
|
|
266
|
-
minScore: 0.7
|
|
267
|
-
});
|
|
268
|
-
|
|
269
|
-
// Возвращает массив результатов с релевантностью и фрагментами кода
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
#### `searchProjectGet(projectId, query, options)`
|
|
273
|
-
|
|
274
|
-
Выполняет поиск через GET запрос с параметрами URL.
|
|
275
|
-
|
|
276
|
-
```javascript
|
|
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);
|
|
402
|
-
});
|
|
403
|
-
```
|
|
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
|
-
|
|
445
|
-
## ReasoningApi
|
|
446
|
-
|
|
447
|
-
API для работы с AI reasoning процессами. Доступен через `sdk.reasoning`.
|
|
448
|
-
|
|
449
|
-
### Методы
|
|
450
|
-
|
|
451
|
-
#### `create(reasoningData)`
|
|
452
|
-
|
|
453
|
-
Создаёт новый reasoning процесс.
|
|
454
|
-
|
|
455
|
-
```javascript
|
|
456
|
-
const reasoning = await sdk.reasoning.create({
|
|
457
|
-
projectId: 'project-id',
|
|
458
|
-
query: 'Проанализируй архитектуру этого проекта'
|
|
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();
|
|
507
|
-
```
|
|
508
|
-
|
|
509
|
-
#### `disconnectWebSocket()`
|
|
510
|
-
|
|
511
|
-
Отключается от reasoning WebSocket.
|
|
512
|
-
|
|
513
|
-
```javascript
|
|
514
|
-
await sdk.reasoning.disconnectWebSocket();
|
|
515
|
-
```
|
|
516
|
-
|
|
517
|
-
### Event методы
|
|
518
|
-
|
|
519
|
-
#### `onReasoningStarted(callback)`
|
|
520
|
-
|
|
521
|
-
Событие начала reasoning процесса.
|
|
522
|
-
|
|
523
|
-
```javascript
|
|
524
|
-
sdk.reasoning.onReasoningStarted((data) => {
|
|
525
|
-
console.log('Reasoning started:', data.id);
|
|
526
|
-
console.log('Query:', data.query);
|
|
527
|
-
});
|
|
528
|
-
```
|
|
529
|
-
|
|
530
|
-
#### `onReasoningProgress(callback)`
|
|
531
|
-
|
|
532
|
-
Отслеживает прогресс reasoning.
|
|
533
|
-
|
|
534
|
-
```javascript
|
|
535
|
-
sdk.reasoning.onReasoningProgress((data) => {
|
|
536
|
-
console.log('Progress:', data.progress);
|
|
537
|
-
console.log('Current step:', data.currentStep);
|
|
538
|
-
});
|
|
539
|
-
```
|
|
540
|
-
|
|
541
|
-
#### `onReasoningCompleted(callback)`
|
|
542
|
-
|
|
543
|
-
Событие завершения reasoning.
|
|
544
|
-
|
|
545
|
-
```javascript
|
|
546
|
-
sdk.reasoning.onReasoningCompleted((data) => {
|
|
547
|
-
console.log('Reasoning completed:', data.id);
|
|
548
|
-
console.log('Results:', data.results);
|
|
549
|
-
});
|
|
550
|
-
```
|
|
551
|
-
|
|
552
|
-
#### `onReasoningError(callback)`
|
|
553
|
-
|
|
554
|
-
Событие ошибки reasoning.
|
|
555
|
-
|
|
556
|
-
```javascript
|
|
557
|
-
sdk.reasoning.onReasoningError((error) => {
|
|
558
|
-
console.error('Reasoning error:', error.message);
|
|
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)`
|
|
611
|
-
|
|
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' }
|
|
655
|
-
});
|
|
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
|