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/README.md
CHANGED
|
@@ -1,106 +1,291 @@
|
|
|
1
|
-
|
|
1
|
+
# AI Solver SDK v2.5.0 Documentation
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Полная документация для AI Solver SDK версии 2.5.0.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 🚀 Быстрый старт
|
|
6
|
+
|
|
7
|
+
### Установка
|
|
6
8
|
|
|
7
9
|
```bash
|
|
8
|
-
npm install @
|
|
10
|
+
npm install @ai-solver/sdk
|
|
9
11
|
```
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
### Базовое использование
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
- **AI-чат с контекстом**: взаимодействие с AI-моделями в контексте проекта
|
|
16
|
-
- **Работа с WebSocket**: потоковая обработка событий и ответов
|
|
17
|
-
- **Мультиплатформенность**: поддержка как браузеров, так и Node.js
|
|
15
|
+
```javascript
|
|
16
|
+
import { CodeSolverSDK } from '@ai-solver/sdk';
|
|
18
17
|
|
|
19
|
-
|
|
18
|
+
const sdk = CodeSolverSDK.create({
|
|
19
|
+
baseURL: 'http://localhost:3000',
|
|
20
|
+
apiKey: 'dev_sk_test_12345678',
|
|
21
|
+
autoConnect: false
|
|
22
|
+
});
|
|
20
23
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const sdk = new CodeSolverSDK({
|
|
26
|
-
baseURL: 'https://api.code-solver.com',
|
|
27
|
-
apiKey: 'ваш-api-ключ',
|
|
28
|
-
websocket: {
|
|
29
|
-
reconnect: true,
|
|
30
|
-
reconnectAttempts: 5
|
|
31
|
-
}
|
|
24
|
+
// Создание проекта
|
|
25
|
+
const project = await sdk.projects.create({
|
|
26
|
+
name: 'My AI Project',
|
|
27
|
+
path: '/path/to/project'
|
|
32
28
|
});
|
|
33
29
|
|
|
34
|
-
//
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
30
|
+
// AI Chat
|
|
31
|
+
const response = await sdk.chat.send([
|
|
32
|
+
{ role: 'user', content: 'Проанализируй этот код' }
|
|
33
|
+
], {
|
|
34
|
+
projectId: project.id,
|
|
35
|
+
thinking: true
|
|
36
|
+
});
|
|
37
|
+
```
|
|
40
38
|
|
|
41
|
-
|
|
42
|
-
await sdk.connect();
|
|
39
|
+
## 📚 Документация
|
|
43
40
|
|
|
44
|
-
|
|
45
|
-
const project = await sdk.projects.createProject(
|
|
46
|
-
'Мой проект',
|
|
47
|
-
'/путь/к/проекту',
|
|
48
|
-
{
|
|
49
|
-
excludePatterns: ['node_modules', '.git', 'dist']
|
|
50
|
-
}
|
|
51
|
-
);
|
|
41
|
+
### Основные руководства
|
|
52
42
|
|
|
53
|
-
|
|
54
|
-
|
|
43
|
+
| Документ | Описание |
|
|
44
|
+
|----------|----------|
|
|
45
|
+
| **[API Reference](./API_REFERENCE.md)** | Полное описание всех методов SDK |
|
|
46
|
+
| **[Integration Guide v2.5](./INTEGRATION_GUIDE_V2.5.md)** | Пошаговое руководство интеграции |
|
|
47
|
+
| **[WebSocket API](./WEBSOCKET.md)** | WebSocket события и real-time функции |
|
|
48
|
+
| **[Authentication](./AUTHENTICATION.md)** | Аутентификация и API ключи |
|
|
49
|
+
| **[Error Handling](./ERROR_HANDLING.md)** | Обработка ошибок и диагностика |
|
|
55
50
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
51
|
+
### Специализированные функции
|
|
52
|
+
|
|
53
|
+
| Документ | Описание |
|
|
54
|
+
|----------|----------|
|
|
55
|
+
| **[Thinking Features](./features/THINKING.md)** | Claude 4 thinking и tool calling |
|
|
56
|
+
| **[Indexing Guide](./indexing/INDEXING.md)** | Индексация проектов |
|
|
60
57
|
|
|
61
|
-
|
|
62
|
-
|
|
58
|
+
## ✨ Новые возможности v2.5.0
|
|
59
|
+
|
|
60
|
+
### 🔄 Контролируемые подключения
|
|
61
|
+
|
|
62
|
+
```javascript
|
|
63
|
+
const sdk = CodeSolverSDK.create({
|
|
64
|
+
autoConnect: false // Ключевая настройка
|
|
63
65
|
});
|
|
64
66
|
|
|
65
|
-
//
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
// Подключение только когда нужно
|
|
68
|
+
await sdk.projects.connectWebSocket();
|
|
69
|
+
await sdk.reasoning.connectWebSocket();
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 🧠 Claude 4 Thinking Support
|
|
73
|
+
|
|
74
|
+
```javascript
|
|
75
|
+
await sdk.chat.stream(messages, {
|
|
76
|
+
thinking: true,
|
|
77
|
+
tool_choice: { type: 'auto' }
|
|
78
|
+
}, (eventType, data) => {
|
|
79
|
+
if (eventType === 'thinking_delta') {
|
|
80
|
+
console.log('Thinking:', data.thinking);
|
|
81
|
+
}
|
|
69
82
|
});
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### 📊 Расширенная диагностика
|
|
86
|
+
|
|
87
|
+
```javascript
|
|
88
|
+
// Проверка всех endpoints
|
|
89
|
+
const apiStatus = await sdk.diagnoseAPI();
|
|
90
|
+
|
|
91
|
+
// Статус WebSocket соединений
|
|
92
|
+
const wsStatus = await sdk.diagnoseWebSocket();
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 🔧 Helper функции
|
|
96
|
+
|
|
97
|
+
```javascript
|
|
98
|
+
import {
|
|
99
|
+
createStandardDevelopmentTools,
|
|
100
|
+
createComplexAssistantMessage,
|
|
101
|
+
extractThinkingBlocks
|
|
102
|
+
} from '@ai-solver/sdk';
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## 🎯 API Endpoints
|
|
106
|
+
|
|
107
|
+
### Projects API
|
|
108
|
+
- `POST /api/v1/projects` - Создание проекта
|
|
109
|
+
- `GET /api/v1/projects` - Список проектов
|
|
110
|
+
- `POST /api/v1/projects/:id/index` - Запуск индексации
|
|
111
|
+
|
|
112
|
+
### Reasoning API
|
|
113
|
+
- `POST /api/v1/reasoning` - Создание reasoning
|
|
114
|
+
- `POST /api/v1/reasoning/start/:id` - Запуск reasoning
|
|
115
|
+
- `GET /api/v1/reasoning/project/:id` - Reasoning проекта
|
|
116
|
+
|
|
117
|
+
### Chat API
|
|
118
|
+
- `POST /api/v1/chat` - Обычный чат
|
|
119
|
+
- `POST /api/v1/chat/stream` - Потоковый чат
|
|
120
|
+
|
|
121
|
+
### Search API
|
|
122
|
+
- `GET /api/v1/search/project/:id` - Поиск в проекте
|
|
70
123
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
124
|
+
## 🔌 WebSocket Namespaces
|
|
125
|
+
|
|
126
|
+
| Namespace | URL | События |
|
|
127
|
+
|-----------|-----|---------|
|
|
128
|
+
| **Projects** | `/projects` | `indexing_progress`, `indexing_complete` |
|
|
129
|
+
| **Reasoning** | `/reasoning` | `reasoning_started`, `reasoning_completed` |
|
|
130
|
+
| **Chat** | `/chat` | `text_delta`, `thinking_delta`, `tool_use` |
|
|
131
|
+
|
|
132
|
+
## 🔑 Аутентификация
|
|
133
|
+
|
|
134
|
+
### Development
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
export AI_SOLVER_API_KEY=dev_sk_test_12345678
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Production
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
export AI_SOLVER_API_KEY=sk_prod_1234567890abcd
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## 🚨 Миграция с предыдущих версий
|
|
147
|
+
|
|
148
|
+
### Основные изменения
|
|
149
|
+
|
|
150
|
+
1. **Новый способ создания SDK**
|
|
151
|
+
```javascript
|
|
152
|
+
// Старый способ
|
|
153
|
+
const sdk = new CodeSolverSDK(options);
|
|
154
|
+
|
|
155
|
+
// Новый способ (v2.5.0)
|
|
156
|
+
const sdk = CodeSolverSDK.create(options);
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
2. **Контролируемые WebSocket**
|
|
160
|
+
```javascript
|
|
161
|
+
// Обязательно добавить
|
|
162
|
+
autoConnect: false
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
3. **Новые алиасы методов**
|
|
166
|
+
```javascript
|
|
167
|
+
// Reasoning API
|
|
168
|
+
await sdk.reasoning.create(data); // вместо createReasoning()
|
|
169
|
+
await sdk.reasoning.start(id); // вместо startReasoning()
|
|
170
|
+
|
|
171
|
+
// Projects API
|
|
172
|
+
await sdk.projects.create(data); // вместо createProject()
|
|
173
|
+
await sdk.projects.getAll(); // вместо getAllProjects()
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## 📝 Примеры использования
|
|
177
|
+
|
|
178
|
+
### Полный workflow
|
|
179
|
+
|
|
180
|
+
```javascript
|
|
181
|
+
async function completeWorkflow() {
|
|
182
|
+
// Создание SDK
|
|
183
|
+
const sdk = CodeSolverSDK.create({
|
|
184
|
+
baseURL: 'http://localhost:3000',
|
|
185
|
+
apiKey: process.env.AI_SOLVER_API_KEY,
|
|
186
|
+
autoConnect: false
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
// Диагностика
|
|
190
|
+
const status = await sdk.diagnoseAPI();
|
|
191
|
+
console.log('API status:', status);
|
|
192
|
+
|
|
193
|
+
// Создание проекта
|
|
194
|
+
const project = await sdk.projects.create({
|
|
195
|
+
name: 'AI Analysis',
|
|
196
|
+
path: '/path/to/code'
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
// Индексация с WebSocket
|
|
200
|
+
await sdk.projects.connectWebSocket();
|
|
201
|
+
sdk.projects.onIndexingComplete(() => {
|
|
202
|
+
console.log('Indexing done!');
|
|
203
|
+
});
|
|
204
|
+
await sdk.projects.startIndexing(project.id);
|
|
205
|
+
|
|
206
|
+
// AI Reasoning
|
|
207
|
+
await sdk.reasoning.connectWebSocket();
|
|
208
|
+
const reasoning = await sdk.reasoning.create({
|
|
209
|
+
projectId: project.id,
|
|
210
|
+
query: 'Анализируй архитектуру'
|
|
211
|
+
});
|
|
212
|
+
await sdk.reasoning.start(reasoning.id);
|
|
213
|
+
|
|
214
|
+
// Chat с thinking
|
|
215
|
+
await sdk.chat.connectWebSocket();
|
|
216
|
+
await sdk.chat.stream([
|
|
217
|
+
{ role: 'user', content: 'Объясни результаты' }
|
|
218
|
+
], {
|
|
219
|
+
projectId: project.id,
|
|
220
|
+
thinking: true
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
## 🛠️ Разработка и отладка
|
|
226
|
+
|
|
227
|
+
### Debug режим
|
|
228
|
+
|
|
229
|
+
```javascript
|
|
230
|
+
const sdk = CodeSolverSDK.create({
|
|
231
|
+
baseURL: 'http://localhost:3000',
|
|
232
|
+
apiKey: 'dev_sk_test_12345678',
|
|
233
|
+
autoConnect: false,
|
|
234
|
+
headers: {
|
|
235
|
+
'X-Debug': 'true'
|
|
80
236
|
}
|
|
81
|
-
], {
|
|
82
|
-
projectId: project.id,
|
|
83
|
-
model: 'claude-3-7-sonnet-20240229'
|
|
84
237
|
});
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### Логирование
|
|
85
241
|
|
|
86
|
-
|
|
242
|
+
```javascript
|
|
243
|
+
// Включение детального логирования
|
|
244
|
+
localStorage.setItem('ai-solver-debug', 'true');
|
|
87
245
|
```
|
|
88
246
|
|
|
89
|
-
##
|
|
247
|
+
## 📊 Производительность
|
|
248
|
+
|
|
249
|
+
### Рекомендации
|
|
250
|
+
|
|
251
|
+
1. **Используйте autoConnect: false** для контроля ресурсов
|
|
252
|
+
2. **Подключайтесь только к нужным WebSocket** namespace
|
|
253
|
+
3. **Отключайтесь после завершения** операций
|
|
254
|
+
4. **Используйте диагностику** для мониторинга
|
|
255
|
+
|
|
256
|
+
### Monitoring
|
|
257
|
+
|
|
258
|
+
```javascript
|
|
259
|
+
// Мониторинг ошибок
|
|
260
|
+
window.addEventListener('unhandledrejection', (event) => {
|
|
261
|
+
console.error('Unhandled SDK error:', event.reason);
|
|
262
|
+
});
|
|
263
|
+
|
|
264
|
+
// Метрики производительности
|
|
265
|
+
const start = performance.now();
|
|
266
|
+
await sdk.projects.create(data);
|
|
267
|
+
const duration = performance.now() - start;
|
|
268
|
+
console.log(`Operation took ${duration}ms`);
|
|
269
|
+
```
|
|
90
270
|
|
|
91
|
-
|
|
271
|
+
## 🔗 Полезные ссылки
|
|
92
272
|
|
|
93
|
-
- [
|
|
94
|
-
- [
|
|
95
|
-
- [
|
|
96
|
-
- [
|
|
97
|
-
- [Обработка ошибок](./ERROR_HANDLING.md) - руководство по обработке ошибок
|
|
273
|
+
- **[GitHub Repository](https://github.com/ai-solver/sdk)**
|
|
274
|
+
- **[NPM Package](https://www.npmjs.com/package/@ai-solver/sdk)**
|
|
275
|
+
- **[Release Notes](../CHANGELOG.md)**
|
|
276
|
+
- **[Issues & Support](https://github.com/ai-solver/sdk/issues)**
|
|
98
277
|
|
|
99
|
-
##
|
|
278
|
+
## 📋 Совместимость
|
|
100
279
|
|
|
101
|
-
|
|
102
|
-
|
|
280
|
+
| Компонент | Версия |
|
|
281
|
+
|-----------|--------|
|
|
282
|
+
| **Node.js** | 16.x+ |
|
|
283
|
+
| **TypeScript** | 4.5+ |
|
|
284
|
+
| **Browser** | Chrome 90+, Firefox 88+, Safari 14+ |
|
|
285
|
+
| **Backend** | AI Solver Backend v1.0.0 |
|
|
103
286
|
|
|
104
|
-
|
|
287
|
+
---
|
|
105
288
|
|
|
106
|
-
|
|
289
|
+
**AI Solver SDK v2.5.0 Documentation**
|
|
290
|
+
**Последнее обновление:** 28 июня 2025
|
|
291
|
+
**Статус:** Stable Release
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
# AI Solver SDK v2.5.0
|
|
2
|
+
|
|
3
|
+
JavaScript/TypeScript SDK для взаимодействия с AI Solver Backend API - умной системой работы с кодом, reasoning и AI-ассистентами.
|
|
4
|
+
|
|
5
|
+
## Установка
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @ai-solver/sdk
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Основные возможности
|
|
12
|
+
|
|
13
|
+
- **🚀 Проекты**: создание, индексация и управление
|
|
14
|
+
- **🧠 AI Reasoning**: умное рассуждение в контексте кода
|
|
15
|
+
- **💬 AI Chat**: взаимодействие с Claude 4 thinking + tools
|
|
16
|
+
- **🔍 Поиск**: семантический поиск по коду
|
|
17
|
+
- **⚡ WebSocket**: real-time события и streaming
|
|
18
|
+
- **🌐 Мультиплатформенность**: Browser + Node.js
|
|
19
|
+
|
|
20
|
+
## Быстрый старт v2.5.0
|
|
21
|
+
|
|
22
|
+
```javascript
|
|
23
|
+
import { CodeSolverSDK } from '@ai-solver/sdk';
|
|
24
|
+
|
|
25
|
+
// Рекомендуемый способ инициализации
|
|
26
|
+
const sdk = CodeSolverSDK.create({
|
|
27
|
+
baseURL: 'http://localhost:3000',
|
|
28
|
+
apiKey: 'dev_sk_test_12345678',
|
|
29
|
+
autoConnect: false // Контролируемые WebSocket подключения
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// Проверка всех endpoints
|
|
33
|
+
const results = await sdk.diagnoseAPI();
|
|
34
|
+
console.log('API статус:', results);
|
|
35
|
+
|
|
36
|
+
// Создание проекта
|
|
37
|
+
const project = await sdk.projects.create({
|
|
38
|
+
name: 'My AI Project',
|
|
39
|
+
path: '/path/to/project',
|
|
40
|
+
description: 'Test project for AI Solver'
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
// Запуск индексации
|
|
44
|
+
await sdk.projects.startIndexing(project.id);
|
|
45
|
+
|
|
46
|
+
// WebSocket события (подключение по требованию)
|
|
47
|
+
await sdk.projects.connectWebSocket();
|
|
48
|
+
sdk.projects.onIndexingProgress((progress) => {
|
|
49
|
+
console.log(`Прогресс: ${progress.percentage}%`);
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
// AI Reasoning процесс
|
|
53
|
+
const reasoning = await sdk.reasoning.create({
|
|
54
|
+
projectId: project.id,
|
|
55
|
+
query: 'Проанализируй архитектуру этого проекта'
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
await sdk.reasoning.start(reasoning.id);
|
|
59
|
+
|
|
60
|
+
// Chat с Claude 4 thinking
|
|
61
|
+
const response = await sdk.chat.stream([
|
|
62
|
+
{
|
|
63
|
+
role: 'user',
|
|
64
|
+
content: 'Объясни как работает эта функция',
|
|
65
|
+
tools: createStandardDevelopmentTools()
|
|
66
|
+
}
|
|
67
|
+
], {
|
|
68
|
+
projectId: project.id,
|
|
69
|
+
model: 'claude-3-5-sonnet-20241022',
|
|
70
|
+
thinking: true
|
|
71
|
+
});
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Новые возможности v2.5.0
|
|
75
|
+
|
|
76
|
+
### ✨ **Complex Content Support**
|
|
77
|
+
```javascript
|
|
78
|
+
// Поддержка сложного контента
|
|
79
|
+
const message = {
|
|
80
|
+
role: 'user',
|
|
81
|
+
content: [
|
|
82
|
+
{ type: 'text', text: 'Анализируй этот код:' },
|
|
83
|
+
{ type: 'text', text: 'function example() { return 42; }' },
|
|
84
|
+
{ type: 'tool_use', id: 'tool_1', name: 'code_analyzer' }
|
|
85
|
+
]
|
|
86
|
+
};
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 🔧 **Tool Choice Validation**
|
|
90
|
+
```javascript
|
|
91
|
+
// Только auto/none с thinking
|
|
92
|
+
const response = await sdk.chat.stream(messages, {
|
|
93
|
+
thinking: true,
|
|
94
|
+
tool_choice: { type: 'auto' } // ✅ Работает
|
|
95
|
+
// tool_choice: { type: 'any' } // ❌ Ошибка с thinking
|
|
96
|
+
});
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 🔐 **Signature Preservation**
|
|
100
|
+
```javascript
|
|
101
|
+
// Автоматическое сохранение криптографических подписей
|
|
102
|
+
sdk.chat.onThinkingSignature((signature) => {
|
|
103
|
+
console.log('Подпись thinking блока:', signature);
|
|
104
|
+
});
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### 🌊 **Streaming Events**
|
|
108
|
+
```javascript
|
|
109
|
+
// Новые события streaming
|
|
110
|
+
sdk.chat.onTextDelta((text) => console.log('Текст:', text));
|
|
111
|
+
sdk.chat.onThinkingDelta((thinking) => console.log('Мышление:', thinking));
|
|
112
|
+
sdk.chat.onSignatureDelta((sig) => console.log('Подпись:', sig));
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Контролируемые WebSocket
|
|
116
|
+
|
|
117
|
+
```javascript
|
|
118
|
+
// v2.5.0 - полный контроль подключений
|
|
119
|
+
const sdk = CodeSolverSDK.create({
|
|
120
|
+
autoConnect: false // Важно!
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
// Подключение только когда нужно
|
|
124
|
+
await sdk.projects.connectWebSocket();
|
|
125
|
+
await sdk.reasoning.connectWebSocket();
|
|
126
|
+
await sdk.chat.connectWebSocket();
|
|
127
|
+
|
|
128
|
+
// Отключение когда не нужно
|
|
129
|
+
await sdk.projects.disconnectWebSocket();
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## API Алиасы для совместимости
|
|
133
|
+
|
|
134
|
+
```javascript
|
|
135
|
+
// Полные названия (рекомендуемые)
|
|
136
|
+
await sdk.reasoning.createReasoning(data);
|
|
137
|
+
await sdk.reasoning.startReasoning(id);
|
|
138
|
+
await sdk.reasoning.stopReasoning(id);
|
|
139
|
+
|
|
140
|
+
// Короткие алиасы
|
|
141
|
+
await sdk.reasoning.create(data);
|
|
142
|
+
await sdk.reasoning.start(id);
|
|
143
|
+
await sdk.reasoning.stop(id);
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Helper функции
|
|
147
|
+
|
|
148
|
+
```javascript
|
|
149
|
+
import {
|
|
150
|
+
createStandardDevelopmentTools,
|
|
151
|
+
extractThinkingBlocks,
|
|
152
|
+
extractToolUseBlocks,
|
|
153
|
+
createToolResultMessage,
|
|
154
|
+
createComplexAssistantMessage
|
|
155
|
+
} from '@ai-solver/sdk';
|
|
156
|
+
|
|
157
|
+
// 8 стандартных инструментов как в Cursor
|
|
158
|
+
const tools = createStandardDevelopmentTools();
|
|
159
|
+
|
|
160
|
+
// Извлечение thinking блоков
|
|
161
|
+
const thinkingBlocks = extractThinkingBlocks(response);
|
|
162
|
+
|
|
163
|
+
// Создание сложных сообщений
|
|
164
|
+
const complexMessage = createComplexAssistantMessage(
|
|
165
|
+
'Результат анализа:',
|
|
166
|
+
thinkingBlocks,
|
|
167
|
+
toolUseBlocks
|
|
168
|
+
);
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## Диагностика и debugging
|
|
172
|
+
|
|
173
|
+
```javascript
|
|
174
|
+
// Проверка всех endpoints
|
|
175
|
+
const results = await sdk.diagnoseAPI();
|
|
176
|
+
console.log('Доступные endpoints:', results);
|
|
177
|
+
|
|
178
|
+
// Детальная диагностика
|
|
179
|
+
const detailed = await sdk.diagnoseFull();
|
|
180
|
+
console.log('Статус backend:', detailed);
|
|
181
|
+
|
|
182
|
+
// Проверка WebSocket
|
|
183
|
+
const wsStatus = await sdk.diagnoseWebSocket();
|
|
184
|
+
console.log('WebSocket статус:', wsStatus);
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Обработка ошибок
|
|
188
|
+
|
|
189
|
+
```javascript
|
|
190
|
+
try {
|
|
191
|
+
const project = await sdk.projects.create(projectData);
|
|
192
|
+
} catch (error) {
|
|
193
|
+
if (error.status === 404) {
|
|
194
|
+
console.error('Backend недоступен');
|
|
195
|
+
} else if (error.status === 400) {
|
|
196
|
+
console.error('Некорректные данные:', error.message);
|
|
197
|
+
} else {
|
|
198
|
+
console.error('Неожиданная ошибка:', error);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## Environment Configuration
|
|
204
|
+
|
|
205
|
+
```javascript
|
|
206
|
+
// Production
|
|
207
|
+
const sdk = CodeSolverSDK.create({
|
|
208
|
+
baseURL: 'https://api.ai-solver.com',
|
|
209
|
+
apiKey: process.env.AI_SOLVER_API_KEY,
|
|
210
|
+
autoConnect: false
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
// Development
|
|
214
|
+
const sdk = CodeSolverSDK.create({
|
|
215
|
+
baseURL: 'http://localhost:3000',
|
|
216
|
+
apiKey: 'dev_sk_test_12345678',
|
|
217
|
+
autoConnect: false
|
|
218
|
+
});
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
## Миграция с v2.4.x
|
|
222
|
+
|
|
223
|
+
### Изменения инициализации:
|
|
224
|
+
```javascript
|
|
225
|
+
// ❌ v2.4.x (deprecated):
|
|
226
|
+
const sdk = new CodeSolverSDK(options);
|
|
227
|
+
await sdk.initialize();
|
|
228
|
+
|
|
229
|
+
// ✅ v2.5.0:
|
|
230
|
+
const sdk = CodeSolverSDK.create(options);
|
|
231
|
+
// initialize() больше не нужен
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### Изменения методов:
|
|
235
|
+
```javascript
|
|
236
|
+
// ❌ v2.4.x:
|
|
237
|
+
await sdk.projects.createProject(name, path, options);
|
|
238
|
+
|
|
239
|
+
// ✅ v2.5.0:
|
|
240
|
+
await sdk.projects.create({ name, path, description });
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### WebSocket изменения:
|
|
244
|
+
```javascript
|
|
245
|
+
// ❌ v2.4.x (автоподключение):
|
|
246
|
+
const sdk = new CodeSolverSDK(options); // Автоматически подключался
|
|
247
|
+
|
|
248
|
+
// ✅ v2.5.0 (контролируемое):
|
|
249
|
+
const sdk = CodeSolverSDK.create({ autoConnect: false });
|
|
250
|
+
await sdk.projects.connectWebSocket(); // Явное подключение
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
## Поддерживаемые платформы
|
|
254
|
+
|
|
255
|
+
- **Node.js**: 16.x и выше
|
|
256
|
+
- **Browsers**: Chrome 90+, Firefox 88+, Safari 14+, Edge 90+
|
|
257
|
+
- **TypeScript**: 4.5+ (опционально)
|
|
258
|
+
|
|
259
|
+
## Лицензия
|
|
260
|
+
|
|
261
|
+
MIT
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
**Обновлено для AI Solver SDK v2.5.0**
|
|
266
|
+
**Совместимо с AI Solver Backend v1.0.0**
|