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.
Files changed (34) hide show
  1. package/dist/cjs/api/projects-api.js +18 -5
  2. package/dist/cjs/api/projects-api.js.map +1 -1
  3. package/dist/cjs/api/reasoning-api.js +0 -8
  4. package/dist/cjs/api/reasoning-api.js.map +1 -1
  5. package/dist/cjs/code-solver-sdk.js +15 -18
  6. package/dist/cjs/code-solver-sdk.js.map +1 -1
  7. package/dist/cjs/utils/message-helpers.js +15 -37
  8. package/dist/cjs/utils/message-helpers.js.map +1 -1
  9. package/dist/esm/api/projects-api.js +18 -5
  10. package/dist/esm/api/projects-api.js.map +1 -1
  11. package/dist/esm/api/reasoning-api.js +0 -8
  12. package/dist/esm/api/reasoning-api.js.map +1 -1
  13. package/dist/esm/code-solver-sdk.js +15 -18
  14. package/dist/esm/code-solver-sdk.js.map +1 -1
  15. package/dist/esm/utils/message-helpers.js +16 -38
  16. package/dist/esm/utils/message-helpers.js.map +1 -1
  17. package/dist/types/api/projects-api.d.ts +2 -2
  18. package/dist/types/api/projects-api.d.ts.map +1 -1
  19. package/dist/types/api/reasoning-api.d.ts +0 -7
  20. package/dist/types/api/reasoning-api.d.ts.map +1 -1
  21. package/dist/types/code-solver-sdk.d.ts +1 -1
  22. package/dist/types/code-solver-sdk.d.ts.map +1 -1
  23. package/dist/types/utils/message-helpers.d.ts +4 -3
  24. package/dist/types/utils/message-helpers.d.ts.map +1 -1
  25. package/docs/API_REFERENCE.md +495 -96
  26. package/docs/AUTHENTICATION.md +291 -36
  27. package/docs/ERROR_HANDLING.md +544 -104
  28. package/docs/README.md +260 -75
  29. package/docs/README_V2.5.md +266 -0
  30. package/docs/WEBSOCKET.md +374 -111
  31. package/docs/indexing/INDEXING.md +372 -167
  32. package/package.json +1 -1
  33. package/docs/PING_PONG.md +0 -113
  34. package/docs/RESPONSE_TO_DEVELOPERS.md +0 -1
@@ -1,61 +1,316 @@
1
- # Аутентификация в SDK
1
+ # Аутентификация v2.5.0
2
2
 
3
- SDK автоматически обрабатывает процесс аутентификации при подключении к API и WebSocket-сервисам.
3
+ Документация по аутентификации в AI Solver SDK v2.5.0.
4
4
 
5
- ## Настройка аутентификации
5
+ ## API ключи
6
6
 
7
- Аутентификация выполняется через API ключ, который необходимо передать при инициализации SDK:
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)
8
37
 
9
38
  ```javascript
10
- import { CodeSolverSDK } from 'solver-sdk';
39
+ import { CodeSolverSDK } from '@ai-solver/sdk';
11
40
 
12
- // Инициализация SDK с API ключом
13
- const sdk = new CodeSolverSDK({
14
- baseURL: 'https://api.example.com',
15
- apiKey: 'ваш-api-ключ' // Этот ключ будет использован для автоматической аутентификации
41
+ const sdk = CodeSolverSDK.create({
42
+ baseURL: 'http://localhost:3000',
43
+ apiKey: 'dev_sk_test_12345678'
16
44
  });
17
45
  ```
18
46
 
19
- ## Автоматическая аутентификация при WebSocket подключении
47
+ ### Через переменные окружения
20
48
 
21
- При использовании методов для работы с WebSocket (например, `sdk.connect()` или `sdk.projects.connectWebSocket()`), SDK автоматически выполняет аутентификацию, используя указанный API ключ. Вам не нужно предпринимать дополнительных действий для аутентификации WebSocket соединений.
49
+ ```bash
50
+ # Development
51
+ export AI_SOLVER_API_KEY=dev_sk_test_12345678
22
52
 
23
- ## Изменение API ключа во время выполнения
24
-
25
- Если необходимо изменить API ключ во время выполнения программы:
53
+ # Production
54
+ export AI_SOLVER_API_KEY=sk_prod_1234567890abcd
55
+ ```
26
56
 
27
57
  ```javascript
28
- // Установка нового API ключа
29
- sdk.setApiKey('новый-api-ключ');
58
+ import { CodeSolverSDK } from '@ai-solver/sdk';
30
59
 
31
- // После этого все новые запросы и WebSocket соединения
32
- // будут использовать новый ключ
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
+ });
33
75
  ```
34
76
 
35
- При изменении API ключа:
36
- 1. Обновляются заголовки для HTTP запросов
37
- 2. Существующие WebSocket соединения закрываются
38
- 3. Новые соединения будут установлены с новым API ключом
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 права
39
96
 
40
- ## Обработка ошибок аутентификации
97
+ - `chat:access` - Доступ к AI чату
98
+ - `chat:stream` - Потоковый чат
99
+ - `reasoning:access` - Доступ к reasoning API
100
+ - `reasoning:manage` - Управление reasoning процессами
41
101
 
42
- Если API ключ недействителен или устарел, SDK сгенерирует соответствующие ошибки:
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
+ ### Простая проверка
43
131
 
44
132
  ```javascript
45
133
  try {
46
- // Попытка выполнить операцию, требующую аутентификации
47
- await sdk.projects.getAllProjects();
134
+ const projects = await sdk.projects.getAll();
135
+ console.log('✅ Authentication successful');
48
136
  } catch (error) {
49
137
  if (error.status === 401) {
50
- console.error('Ошибка аутентификации: недействительный API ключ');
51
-
52
- // Обновление API ключа
53
- sdk.setApiKey('новый-api-ключ');
54
-
55
- // Повторная попытка
56
- const projects = await sdk.projects.getAllProjects();
57
- } else {
58
- console.error('Другая ошибка:', error);
138
+ console.error(' Invalid API key');
139
+ } else if (error.status === 403) {
140
+ console.error('❌ Insufficient permissions');
59
141
  }
60
142
  }
61
- ```
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