solver-sdk 3.1.1 → 3.1.3
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 +93 -121
- package/dist/cjs/code-solver-sdk.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/esm/code-solver-sdk.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/types/index.d.ts +1 -1
- package/package.json +2 -3
- package/docs/AUTHENTICATION.md +0 -316
- package/docs/ERROR_HANDLING.md +0 -613
- package/docs/README.md +0 -53
- package/docs/VSCODE_INTEGRATION.md +0 -269
- package/docs/features/THINKING.md +0 -324
- package/docs/indexing/INDEXING.md +0 -759
package/docs/AUTHENTICATION.md
DELETED
|
@@ -1,316 +0,0 @@
|
|
|
1
|
-
# Аутентификация v2.5.0
|
|
2
|
-
|
|
3
|
-
Документация по аутентификации в AI Solver SDK v2.5.0.
|
|
4
|
-
|
|
5
|
-
## API ключи
|
|
6
|
-
|
|
7
|
-
AI Solver использует API ключи для аутентификации. Ключи имеют специальные префиксы:
|
|
8
|
-
|
|
9
|
-
### Форматы ключей
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
dev_sk_test_12345678 # Development key (для разработки)
|
|
13
|
-
sk_prod_1234567890abcd # Production key (для продакшна)
|
|
14
|
-
sk_temp_abcdef123456 # Temporary key (временный)
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Получение API ключа
|
|
18
|
-
|
|
19
|
-
### Development ключ
|
|
20
|
-
|
|
21
|
-
Для локальной разработки используйте тестовый ключ:
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
dev_sk_test_12345678
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
### Production ключ
|
|
28
|
-
|
|
29
|
-
1. Зарегистрируйтесь на платформе AI Solver
|
|
30
|
-
2. Перейдите в настройки аккаунта
|
|
31
|
-
3. Создайте новый Production API ключ
|
|
32
|
-
4. Сохраните ключ в безопасном месте
|
|
33
|
-
|
|
34
|
-
## Использование API ключа
|
|
35
|
-
|
|
36
|
-
### Рекомендуемый способ (v2.5.0)
|
|
37
|
-
|
|
38
|
-
```javascript
|
|
39
|
-
import { CodeSolverSDK } from '@ai-solver/sdk';
|
|
40
|
-
|
|
41
|
-
const sdk = CodeSolverSDK.create({
|
|
42
|
-
baseURL: 'http://localhost:3000',
|
|
43
|
-
apiKey: 'dev_sk_test_12345678'
|
|
44
|
-
});
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
### Через переменные окружения
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
# Development
|
|
51
|
-
export AI_SOLVER_API_KEY=dev_sk_test_12345678
|
|
52
|
-
|
|
53
|
-
# Production
|
|
54
|
-
export AI_SOLVER_API_KEY=sk_prod_1234567890abcd
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
```javascript
|
|
58
|
-
import { CodeSolverSDK } from '@ai-solver/sdk';
|
|
59
|
-
|
|
60
|
-
const sdk = CodeSolverSDK.create({
|
|
61
|
-
baseURL: process.env.NODE_ENV === 'production'
|
|
62
|
-
? 'https://api.ai-solver.com'
|
|
63
|
-
: 'http://localhost:3000',
|
|
64
|
-
apiKey: process.env.AI_SOLVER_API_KEY
|
|
65
|
-
});
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
### Динамическое обновление ключа
|
|
69
|
-
|
|
70
|
-
```javascript
|
|
71
|
-
// Обновление API ключа в runtime
|
|
72
|
-
sdk.updateOptions({
|
|
73
|
-
apiKey: 'new_api_key_12345678'
|
|
74
|
-
});
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
## Типы ключей
|
|
78
|
-
|
|
79
|
-
| Тип | Префикс | Описание | Срок действия |
|
|
80
|
-
|-----|---------|----------|---------------|
|
|
81
|
-
| Development | `dev_sk_test_` | Для локальной разработки | Неограничен |
|
|
82
|
-
| Production | `sk_prod_` | Для production использования | 1 год |
|
|
83
|
-
| Temporary | `sk_temp_` | Временный доступ | 7-30 дней |
|
|
84
|
-
|
|
85
|
-
## Области действия (Scopes)
|
|
86
|
-
|
|
87
|
-
API ключи v2.5.0 поддерживают следующие области:
|
|
88
|
-
|
|
89
|
-
### Базовые права
|
|
90
|
-
|
|
91
|
-
- `projects:read` - Чтение проектов
|
|
92
|
-
- `projects:write` - Создание и изменение проектов
|
|
93
|
-
- `projects:index` - Запуск индексации
|
|
94
|
-
|
|
95
|
-
### AI права
|
|
96
|
-
|
|
97
|
-
- `chat:access` - Доступ к AI чату
|
|
98
|
-
- `chat:stream` - Потоковый чат
|
|
99
|
-
- `reasoning:access` - Доступ к reasoning API
|
|
100
|
-
- `reasoning:manage` - Управление reasoning процессами
|
|
101
|
-
|
|
102
|
-
### Поиск и данные
|
|
103
|
-
|
|
104
|
-
- `search:access` - Семантический поиск
|
|
105
|
-
- `context:access` - Доступ к контексту проекта
|
|
106
|
-
- `websocket:connect` - WebSocket соединения
|
|
107
|
-
|
|
108
|
-
### Development ключ
|
|
109
|
-
|
|
110
|
-
Development ключ `dev_sk_test_12345678` имеет **все права** для удобства разработки.
|
|
111
|
-
|
|
112
|
-
## Проверка аутентификации
|
|
113
|
-
|
|
114
|
-
### Диагностика API
|
|
115
|
-
|
|
116
|
-
```javascript
|
|
117
|
-
// Полная диагностика включая аутентификацию
|
|
118
|
-
const results = await sdk.diagnoseAPI();
|
|
119
|
-
console.log('API diagnostics:', results);
|
|
120
|
-
|
|
121
|
-
/* Пример ответа:
|
|
122
|
-
{
|
|
123
|
-
'/api/v1/projects': { status: 200, authenticated: true },
|
|
124
|
-
'/api/v1/chat': { status: 200, authenticated: true },
|
|
125
|
-
'/api/v1/reasoning': { status: 401, authenticated: false, error: 'Invalid API key' }
|
|
126
|
-
}
|
|
127
|
-
*/
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
### Простая проверка
|
|
131
|
-
|
|
132
|
-
```javascript
|
|
133
|
-
try {
|
|
134
|
-
const projects = await sdk.projects.getAll();
|
|
135
|
-
console.log('✅ Authentication successful');
|
|
136
|
-
} catch (error) {
|
|
137
|
-
if (error.status === 401) {
|
|
138
|
-
console.error('❌ Invalid API key');
|
|
139
|
-
} else if (error.status === 403) {
|
|
140
|
-
console.error('❌ Insufficient permissions');
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
## Заголовки аутентификации
|
|
146
|
-
|
|
147
|
-
SDK автоматически добавляет заголовки:
|
|
148
|
-
|
|
149
|
-
```http
|
|
150
|
-
Authorization: Bearer dev_sk_test_12345678
|
|
151
|
-
Content-Type: application/json
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
### Дополнительные заголовки
|
|
155
|
-
|
|
156
|
-
```javascript
|
|
157
|
-
const sdk = CodeSolverSDK.create({
|
|
158
|
-
baseURL: 'http://localhost:3000',
|
|
159
|
-
apiKey: 'dev_sk_test_12345678',
|
|
160
|
-
headers: {
|
|
161
|
-
'X-Client-Version': '2.5.0',
|
|
162
|
-
'X-User-Agent': 'My-App/1.0'
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
## WebSocket аутентификация
|
|
168
|
-
|
|
169
|
-
WebSocket соединения автоматически используют API ключ:
|
|
170
|
-
|
|
171
|
-
```javascript
|
|
172
|
-
// API ключ автоматически передается в WebSocket
|
|
173
|
-
await sdk.projects.connectWebSocket();
|
|
174
|
-
await sdk.reasoning.connectWebSocket();
|
|
175
|
-
await sdk.chat.connectWebSocket();
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
## Ошибки аутентификации
|
|
179
|
-
|
|
180
|
-
### 401 Unauthorized
|
|
181
|
-
|
|
182
|
-
```json
|
|
183
|
-
{
|
|
184
|
-
"error": "Unauthorized",
|
|
185
|
-
"message": "Invalid or missing API key",
|
|
186
|
-
"code": "AUTH_INVALID_KEY"
|
|
187
|
-
}
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
**Решение:** Проверьте правильность API ключа.
|
|
191
|
-
|
|
192
|
-
### 403 Forbidden
|
|
193
|
-
|
|
194
|
-
```json
|
|
195
|
-
{
|
|
196
|
-
"error": "Forbidden",
|
|
197
|
-
"message": "Insufficient permissions for this operation",
|
|
198
|
-
"code": "AUTH_INSUFFICIENT_SCOPE",
|
|
199
|
-
"required_scope": "projects:write"
|
|
200
|
-
}
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
**Решение:** Используйте ключ с нужными правами.
|
|
204
|
-
|
|
205
|
-
### 429 Rate Limited
|
|
206
|
-
|
|
207
|
-
```json
|
|
208
|
-
{
|
|
209
|
-
"error": "Too Many Requests",
|
|
210
|
-
"message": "Rate limit exceeded",
|
|
211
|
-
"retry_after": 60
|
|
212
|
-
}
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
**Решение:** Подождите указанное время или используйте Production ключ.
|
|
216
|
-
|
|
217
|
-
## Безопасность
|
|
218
|
-
|
|
219
|
-
### ✅ Рекомендации
|
|
220
|
-
|
|
221
|
-
- Используйте переменные окружения для хранения ключей
|
|
222
|
-
- Никогда не коммитьте ключи в git
|
|
223
|
-
- Регулярно ротируйте Production ключи
|
|
224
|
-
- Используйте минимальные необходимые права
|
|
225
|
-
- Мониторьте использование ключей
|
|
226
|
-
|
|
227
|
-
### ❌ Не делайте
|
|
228
|
-
|
|
229
|
-
```javascript
|
|
230
|
-
// ❌ НЕ ДЕЛАЙТЕ ТАК
|
|
231
|
-
const sdk = CodeSolverSDK.create({
|
|
232
|
-
apiKey: 'sk_prod_1234567890abcd' // Хардкод в коде
|
|
233
|
-
});
|
|
234
|
-
|
|
235
|
-
// ❌ НЕ ДЕЛАЙТЕ ТАК
|
|
236
|
-
fetch('/api/client-side', {
|
|
237
|
-
headers: {
|
|
238
|
-
'Authorization': 'Bearer sk_prod_1234567890abcd' // В браузере
|
|
239
|
-
}
|
|
240
|
-
});
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
### ✅ Правильно
|
|
244
|
-
|
|
245
|
-
```javascript
|
|
246
|
-
// ✅ ПРАВИЛЬНО
|
|
247
|
-
const sdk = CodeSolverSDK.create({
|
|
248
|
-
apiKey: process.env.AI_SOLVER_API_KEY
|
|
249
|
-
});
|
|
250
|
-
|
|
251
|
-
// ✅ ПРАВИЛЬНО - для браузера используйте proxy
|
|
252
|
-
fetch('/api/proxy/ai-solver', {
|
|
253
|
-
headers: {
|
|
254
|
-
'Authorization': 'Bearer ' + clientToken // Только client token
|
|
255
|
-
}
|
|
256
|
-
});
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
## Environment Configuration
|
|
260
|
-
|
|
261
|
-
### Development
|
|
262
|
-
|
|
263
|
-
```bash
|
|
264
|
-
# .env.local
|
|
265
|
-
AI_SOLVER_API_KEY=dev_sk_test_12345678
|
|
266
|
-
AI_SOLVER_BASE_URL=http://localhost:3000
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
### Production
|
|
270
|
-
|
|
271
|
-
```bash
|
|
272
|
-
# .env.production
|
|
273
|
-
AI_SOLVER_API_KEY=sk_prod_1234567890abcd
|
|
274
|
-
AI_SOLVER_BASE_URL=https://api.ai-solver.com
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
### Configuration helper
|
|
278
|
-
|
|
279
|
-
```javascript
|
|
280
|
-
function createSDK() {
|
|
281
|
-
const isDev = process.env.NODE_ENV === 'development';
|
|
282
|
-
|
|
283
|
-
return CodeSolverSDK.create({
|
|
284
|
-
baseURL: isDev
|
|
285
|
-
? 'http://localhost:3000'
|
|
286
|
-
: 'https://api.ai-solver.com',
|
|
287
|
-
apiKey: process.env.AI_SOLVER_API_KEY,
|
|
288
|
-
autoConnect: false
|
|
289
|
-
});
|
|
290
|
-
}
|
|
291
|
-
```
|
|
292
|
-
|
|
293
|
-
## Отзыв ключей
|
|
294
|
-
|
|
295
|
-
При компрометации ключа:
|
|
296
|
-
|
|
297
|
-
1. **Немедленно** удалите ключ из системы
|
|
298
|
-
2. Обновите переменные окружения
|
|
299
|
-
3. Перезапустите все сервисы
|
|
300
|
-
4. Создайте новый ключ
|
|
301
|
-
5. Проверьте логи на подозрительную активность
|
|
302
|
-
|
|
303
|
-
```javascript
|
|
304
|
-
// Проверка активности ключа
|
|
305
|
-
const diagnostics = await sdk.diagnoseAPI();
|
|
306
|
-
if (diagnostics.unauthorized) {
|
|
307
|
-
console.error('🚨 API key might be compromised or revoked');
|
|
308
|
-
// Логика восстановления
|
|
309
|
-
}
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
---
|
|
313
|
-
|
|
314
|
-
**Документация аутентификации для SDK v2.5.0**
|
|
315
|
-
**Совместимость:** AI Solver Backend v1.0.0
|
|
316
|
-
**Обновлено:** 28 июня 2025
|