solver-sdk 1.8.0 → 1.9.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 +176 -468
- package/dist/cjs/api/{chat-api.js → chat-api/index.js} +77 -125
- package/dist/cjs/api/chat-api/index.js.map +1 -0
- package/dist/cjs/api/chat-api/interfaces.js +3 -0
- package/dist/cjs/api/chat-api/interfaces.js.map +1 -0
- package/dist/cjs/api/chat-api/models.js +6 -0
- package/dist/cjs/api/chat-api/models.js.map +1 -0
- package/dist/cjs/api/chat-api/stream-utils.js +192 -0
- package/dist/cjs/api/chat-api/stream-utils.js.map +1 -0
- package/dist/cjs/api/chat-api/websocket-helpers.js +211 -0
- package/dist/cjs/api/chat-api/websocket-helpers.js.map +1 -0
- package/dist/cjs/api/projects-api.js +275 -3
- package/dist/cjs/api/projects-api.js.map +1 -1
- package/dist/cjs/code-solver-sdk.js +21 -23
- package/dist/cjs/code-solver-sdk.js.map +1 -1
- package/dist/cjs/constants/websocket-events.constants.js +90 -52
- package/dist/cjs/constants/websocket-events.constants.js.map +1 -1
- package/dist/cjs/constants/websocket-namespaces.constants.js +18 -0
- package/dist/cjs/constants/websocket-namespaces.constants.js.map +1 -0
- package/dist/cjs/interfaces/websocket/callbacks.interfaces.js +3 -0
- package/dist/cjs/interfaces/websocket/callbacks.interfaces.js.map +1 -0
- package/dist/cjs/interfaces/websocket/client-options.interfaces.js +3 -0
- package/dist/cjs/interfaces/websocket/client-options.interfaces.js.map +1 -0
- package/dist/cjs/interfaces/websocket/events.interfaces.js +3 -0
- package/dist/cjs/interfaces/websocket/events.interfaces.js.map +1 -0
- package/dist/cjs/interfaces/websocket/stats.interfaces.js +3 -0
- package/dist/cjs/interfaces/websocket/stats.interfaces.js.map +1 -0
- package/dist/cjs/utils/code-solver-websocket-client.js +383 -1473
- package/dist/cjs/utils/code-solver-websocket-client.js.map +1 -1
- package/dist/cjs/utils/connection-state-manager.js +133 -0
- package/dist/cjs/utils/connection-state-manager.js.map +1 -0
- package/dist/cjs/utils/http-client.js +7 -0
- package/dist/cjs/utils/http-client.js.map +1 -1
- package/dist/cjs/utils/logger.js +106 -0
- package/dist/cjs/utils/logger.js.map +1 -0
- package/dist/cjs/utils/ping-pong-manager.js +306 -0
- package/dist/cjs/utils/ping-pong-manager.js.map +1 -0
- package/dist/cjs/utils/reasoning-auth-helper.js +58 -0
- package/dist/cjs/utils/reasoning-auth-helper.js.map +1 -0
- package/dist/cjs/utils/session-manager.js +114 -0
- package/dist/cjs/utils/session-manager.js.map +1 -0
- package/dist/cjs/utils/websocket-client.js +37 -10
- package/dist/cjs/utils/websocket-client.js.map +1 -1
- package/dist/cjs/ws/base-ws-client.js +286 -0
- package/dist/cjs/ws/base-ws-client.js.map +1 -0
- package/dist/cjs/ws/dependencies-ws-client.js +11 -0
- package/dist/cjs/ws/dependencies-ws-client.js.map +1 -0
- package/dist/cjs/ws/diagnostics-service.js +170 -0
- package/dist/cjs/ws/diagnostics-service.js.map +1 -0
- package/dist/cjs/ws/indexing-ws-client.js +223 -0
- package/dist/cjs/ws/indexing-ws-client.js.map +1 -0
- package/dist/cjs/ws/notifications-ws-client.js +12 -0
- package/dist/cjs/ws/notifications-ws-client.js.map +1 -0
- package/dist/cjs/ws/reasoning-ws-client.js +330 -0
- package/dist/cjs/ws/reasoning-ws-client.js.map +1 -0
- package/dist/esm/api/{chat-api.js → chat-api/index.js} +74 -125
- package/dist/esm/api/chat-api/index.js.map +1 -0
- package/dist/esm/api/chat-api/interfaces.js +2 -0
- package/dist/esm/api/chat-api/interfaces.js.map +1 -0
- package/dist/esm/api/chat-api/models.js +5 -0
- package/dist/esm/api/chat-api/models.js.map +1 -0
- package/dist/esm/api/chat-api/stream-utils.js +188 -0
- package/dist/esm/api/chat-api/stream-utils.js.map +1 -0
- package/dist/esm/api/chat-api/websocket-helpers.js +205 -0
- package/dist/esm/api/chat-api/websocket-helpers.js.map +1 -0
- package/dist/esm/api/projects-api.js +275 -3
- package/dist/esm/api/projects-api.js.map +1 -1
- package/dist/esm/code-solver-sdk.js +13 -15
- package/dist/esm/code-solver-sdk.js.map +1 -1
- package/dist/esm/constants/websocket-events.constants.js +89 -51
- package/dist/esm/constants/websocket-events.constants.js.map +1 -1
- package/dist/esm/constants/websocket-namespaces.constants.js +15 -0
- package/dist/esm/constants/websocket-namespaces.constants.js.map +1 -0
- package/dist/esm/interfaces/websocket/callbacks.interfaces.js +2 -0
- package/dist/esm/interfaces/websocket/callbacks.interfaces.js.map +1 -0
- package/dist/esm/interfaces/websocket/client-options.interfaces.js +2 -0
- package/dist/esm/interfaces/websocket/client-options.interfaces.js.map +1 -0
- package/dist/esm/interfaces/websocket/events.interfaces.js +2 -0
- package/dist/esm/interfaces/websocket/events.interfaces.js.map +1 -0
- package/dist/esm/interfaces/websocket/stats.interfaces.js +2 -0
- package/dist/esm/interfaces/websocket/stats.interfaces.js.map +1 -0
- package/dist/esm/utils/code-solver-websocket-client.js +382 -1473
- package/dist/esm/utils/code-solver-websocket-client.js.map +1 -1
- package/dist/esm/utils/connection-state-manager.js +129 -0
- package/dist/esm/utils/connection-state-manager.js.map +1 -0
- package/dist/esm/utils/http-client.js +7 -0
- package/dist/esm/utils/http-client.js.map +1 -1
- package/dist/esm/utils/logger.js +101 -0
- package/dist/esm/utils/logger.js.map +1 -0
- package/dist/esm/utils/ping-pong-manager.js +302 -0
- package/dist/esm/utils/ping-pong-manager.js.map +1 -0
- package/dist/esm/utils/reasoning-auth-helper.js +54 -0
- package/dist/esm/utils/reasoning-auth-helper.js.map +1 -0
- package/dist/esm/utils/session-manager.js +109 -0
- package/dist/esm/utils/session-manager.js.map +1 -0
- package/dist/esm/utils/websocket-client.js +37 -10
- package/dist/esm/utils/websocket-client.js.map +1 -1
- package/dist/esm/ws/base-ws-client.js +282 -0
- package/dist/esm/ws/base-ws-client.js.map +1 -0
- package/dist/esm/ws/dependencies-ws-client.js +7 -0
- package/dist/esm/ws/dependencies-ws-client.js.map +1 -0
- package/dist/esm/ws/diagnostics-service.js +166 -0
- package/dist/esm/ws/diagnostics-service.js.map +1 -0
- package/dist/esm/ws/indexing-ws-client.js +219 -0
- package/dist/esm/ws/indexing-ws-client.js.map +1 -0
- package/dist/esm/ws/notifications-ws-client.js +8 -0
- package/dist/esm/ws/notifications-ws-client.js.map +1 -0
- package/dist/esm/ws/reasoning-ws-client.js +326 -0
- package/dist/esm/ws/reasoning-ws-client.js.map +1 -0
- package/dist/types/api/chat-api/index.d.ts +81 -0
- package/dist/types/api/chat-api/index.d.ts.map +1 -0
- package/dist/types/api/chat-api/interfaces.d.ts +47 -0
- package/dist/types/api/chat-api/interfaces.d.ts.map +1 -0
- package/dist/types/api/{chat-api.d.ts → chat-api/models.d.ts} +10 -73
- package/dist/types/api/chat-api/models.d.ts.map +1 -0
- package/dist/types/api/chat-api/stream-utils.d.ts +31 -0
- package/dist/types/api/chat-api/stream-utils.d.ts.map +1 -0
- package/dist/types/api/chat-api/websocket-helpers.d.ts +40 -0
- package/dist/types/api/chat-api/websocket-helpers.d.ts.map +1 -0
- package/dist/types/api/projects-api.d.ts +114 -1
- package/dist/types/api/projects-api.d.ts.map +1 -1
- package/dist/types/code-solver-sdk.d.ts +3 -2
- package/dist/types/code-solver-sdk.d.ts.map +1 -1
- package/dist/types/constants/websocket-events.constants.d.ts +77 -36
- package/dist/types/constants/websocket-events.constants.d.ts.map +1 -1
- package/dist/types/constants/websocket-namespaces.constants.d.ts +14 -0
- package/dist/types/constants/websocket-namespaces.constants.d.ts.map +1 -0
- package/dist/types/interfaces/http-client.d.ts +1 -1
- package/dist/types/interfaces/http-client.d.ts.map +1 -1
- package/dist/types/interfaces/websocket/callbacks.interfaces.d.ts +30 -0
- package/dist/types/interfaces/websocket/callbacks.interfaces.d.ts.map +1 -0
- package/dist/types/interfaces/websocket/client-options.interfaces.d.ts +51 -0
- package/dist/types/interfaces/websocket/client-options.interfaces.d.ts.map +1 -0
- package/dist/types/interfaces/websocket/events.interfaces.d.ts +165 -0
- package/dist/types/interfaces/websocket/events.interfaces.d.ts.map +1 -0
- package/dist/types/interfaces/websocket/stats.interfaces.d.ts +72 -0
- package/dist/types/interfaces/websocket/stats.interfaces.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +8 -0
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/utils/code-solver-websocket-client.d.ts +67 -612
- package/dist/types/utils/code-solver-websocket-client.d.ts.map +1 -1
- package/dist/types/utils/connection-state-manager.d.ts +94 -0
- package/dist/types/utils/connection-state-manager.d.ts.map +1 -0
- package/dist/types/utils/http-client.d.ts +5 -0
- package/dist/types/utils/http-client.d.ts.map +1 -1
- package/dist/types/utils/logger.d.ts +62 -0
- package/dist/types/utils/logger.d.ts.map +1 -0
- package/dist/types/utils/ping-pong-manager.d.ts +118 -0
- package/dist/types/utils/ping-pong-manager.d.ts.map +1 -0
- package/dist/types/utils/reasoning-auth-helper.d.ts +24 -0
- package/dist/types/utils/reasoning-auth-helper.d.ts.map +1 -0
- package/dist/types/utils/session-manager.d.ts +98 -0
- package/dist/types/utils/session-manager.d.ts.map +1 -0
- package/dist/types/utils/websocket-client.d.ts +6 -0
- package/dist/types/utils/websocket-client.d.ts.map +1 -1
- package/dist/types/ws/base-ws-client.d.ts +119 -0
- package/dist/types/ws/base-ws-client.d.ts.map +1 -0
- package/dist/types/ws/dependencies-ws-client.d.ts +6 -0
- package/dist/types/ws/dependencies-ws-client.d.ts.map +1 -0
- package/dist/types/ws/diagnostics-service.d.ts +93 -0
- package/dist/types/ws/diagnostics-service.d.ts.map +1 -0
- package/dist/types/ws/indexing-ws-client.d.ts +78 -0
- package/dist/types/ws/indexing-ws-client.d.ts.map +1 -0
- package/dist/types/ws/notifications-ws-client.d.ts +5 -0
- package/dist/types/ws/notifications-ws-client.d.ts.map +1 -0
- package/dist/types/ws/reasoning-ws-client.d.ts +87 -0
- package/dist/types/ws/reasoning-ws-client.d.ts.map +1 -0
- package/docs/API_REFERENCE.md +432 -0
- package/docs/AUTHENTICATION.md +83 -0
- package/docs/ERROR_HANDLING.md +240 -0
- package/docs/INTEGRATION_EXAMPLES.md +342 -0
- package/docs/PING_PONG.md +212 -0
- package/docs/README.md +102 -0
- package/docs/WEBSOCKET.md +139 -0
- package/docs/advanced/PING_PONG.md +212 -0
- package/docs/features/THINKING.md +158 -0
- package/docs/indexing/INDEXING.md +231 -0
- package/package.json +4 -3
- package/dist/cjs/api/chat-api.js.map +0 -1
- package/dist/esm/api/chat-api.js.map +0 -1
- package/dist/types/api/chat-api.d.ts.map +0 -1
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
# API Reference
|
|
2
|
+
|
|
3
|
+
В этом документе описаны основные классы и методы SDK.
|
|
4
|
+
|
|
5
|
+
## Содержание
|
|
6
|
+
|
|
7
|
+
- [CodeSolverSDK](#codesolversdk)
|
|
8
|
+
- [ChatApi](#chatapi)
|
|
9
|
+
- [ProjectsApi](#projectsapi)
|
|
10
|
+
- [SearchApi](#searchapi)
|
|
11
|
+
- [ReasoningApi](#reasoningapi)
|
|
12
|
+
- [WebSocketClient](#websocketclient)
|
|
13
|
+
|
|
14
|
+
## CodeSolverSDK
|
|
15
|
+
|
|
16
|
+
Основной класс SDK, предоставляющий доступ ко всем API.
|
|
17
|
+
|
|
18
|
+
### Конструктор
|
|
19
|
+
|
|
20
|
+
```javascript
|
|
21
|
+
const sdk = new CodeSolverSDK(options);
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Параметры
|
|
25
|
+
|
|
26
|
+
| Параметр | Тип | Описание | Обязательно |
|
|
27
|
+
|----------|-----|----------|-------------|
|
|
28
|
+
| `baseURL` | string | Базовый URL API | Да |
|
|
29
|
+
| `apiKey` | string | API ключ для авторизации | Нет |
|
|
30
|
+
| `wsURL` | string | URL для WebSocket соединений (если отличается от baseURL) | Нет |
|
|
31
|
+
| `timeout` | number | Таймаут для HTTP запросов (мс) | Нет |
|
|
32
|
+
| `headers` | object | Дополнительные HTTP заголовки | Нет |
|
|
33
|
+
| `websocket` | object | Настройки WebSocket соединений | Нет |
|
|
34
|
+
| `mode` | string | Режим работы SDK ('browser', 'node', 'auto') | Нет |
|
|
35
|
+
|
|
36
|
+
### Методы
|
|
37
|
+
|
|
38
|
+
#### `getWebSocketClient()`
|
|
39
|
+
|
|
40
|
+
Возвращает экземпляр WebSocket клиента для работы с соединениями.
|
|
41
|
+
|
|
42
|
+
```javascript
|
|
43
|
+
const wsClient = sdk.getWebSocketClient();
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
#### `checkHealth()`
|
|
47
|
+
|
|
48
|
+
Проверяет доступность API сервера.
|
|
49
|
+
|
|
50
|
+
```javascript
|
|
51
|
+
const isHealthy = await sdk.checkHealth();
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
#### `connect()`
|
|
55
|
+
|
|
56
|
+
Подключается к WebSocket серверу.
|
|
57
|
+
|
|
58
|
+
```javascript
|
|
59
|
+
await sdk.connect();
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
#### `disconnect()`
|
|
63
|
+
|
|
64
|
+
Отключается от WebSocket сервера.
|
|
65
|
+
|
|
66
|
+
```javascript
|
|
67
|
+
await sdk.disconnect();
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
#### `dispose()`
|
|
71
|
+
|
|
72
|
+
Освобождает ресурсы, включая WebSocket соединения.
|
|
73
|
+
|
|
74
|
+
```javascript
|
|
75
|
+
sdk.dispose();
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
#### `setApiKey(apiKey)`
|
|
79
|
+
|
|
80
|
+
Устанавливает новый API ключ для SDK.
|
|
81
|
+
|
|
82
|
+
```javascript
|
|
83
|
+
sdk.setApiKey('новый-api-ключ');
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## ChatApi
|
|
87
|
+
|
|
88
|
+
API для работы с чатом и AI-моделями.
|
|
89
|
+
|
|
90
|
+
### Методы
|
|
91
|
+
|
|
92
|
+
#### `chat(messages, options)`
|
|
93
|
+
|
|
94
|
+
Отправляет запрос чата и возвращает полный ответ.
|
|
95
|
+
|
|
96
|
+
```javascript
|
|
97
|
+
const response = await sdk.chat.chat(
|
|
98
|
+
messages,
|
|
99
|
+
options
|
|
100
|
+
);
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
##### Параметры
|
|
104
|
+
|
|
105
|
+
| Параметр | Тип | Описание | Обязательно |
|
|
106
|
+
|----------|-----|----------|-------------|
|
|
107
|
+
| `messages` | Array | Массив сообщений для отправки модели | Да |
|
|
108
|
+
| `options` | Object | Параметры запроса (модель, temperature и т.д.) | Нет |
|
|
109
|
+
|
|
110
|
+
#### `streamChatWithThinking(messages, options, onEvent)`
|
|
111
|
+
|
|
112
|
+
Отправляет запрос чата в потоковом режиме с получением "мышления" модели.
|
|
113
|
+
|
|
114
|
+
```javascript
|
|
115
|
+
const response = await sdk.chat.streamChatWithThinking(
|
|
116
|
+
messages,
|
|
117
|
+
{
|
|
118
|
+
model: 'claude-3-7-sonnet-20240229',
|
|
119
|
+
thinking: true,
|
|
120
|
+
temperature: 0.7
|
|
121
|
+
},
|
|
122
|
+
(eventType, data) => {
|
|
123
|
+
if (eventType === 'thinking_delta') {
|
|
124
|
+
console.log('Мышление:', data.thinking);
|
|
125
|
+
} else if (eventType === 'text_delta') {
|
|
126
|
+
console.log('Ответ:', data.text);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
);
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
#### `connectWebSocket()`
|
|
133
|
+
|
|
134
|
+
Создает новое WebSocket соединение для потокового чата.
|
|
135
|
+
|
|
136
|
+
```javascript
|
|
137
|
+
await sdk.chat.connectWebSocket();
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
#### `getModels()`
|
|
141
|
+
|
|
142
|
+
Получает список доступных моделей.
|
|
143
|
+
|
|
144
|
+
```javascript
|
|
145
|
+
const models = await sdk.chat.getModels();
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## ProjectsApi
|
|
149
|
+
|
|
150
|
+
API для работы с проектами.
|
|
151
|
+
|
|
152
|
+
### Методы
|
|
153
|
+
|
|
154
|
+
#### `getAllProjects()`
|
|
155
|
+
|
|
156
|
+
Получает список всех проектов.
|
|
157
|
+
|
|
158
|
+
```javascript
|
|
159
|
+
const projects = await sdk.projects.getAllProjects();
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
#### `getProject(projectId)`
|
|
163
|
+
|
|
164
|
+
Получает информацию о проекте по ID.
|
|
165
|
+
|
|
166
|
+
```javascript
|
|
167
|
+
const project = await sdk.projects.getProject('project-id');
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
#### `createProject(name, path, options)`
|
|
171
|
+
|
|
172
|
+
Создаёт новый проект.
|
|
173
|
+
|
|
174
|
+
```javascript
|
|
175
|
+
const project = await sdk.projects.createProject('Мой проект', '/path/to/project', {
|
|
176
|
+
excludePatterns: ['node_modules', '.git']
|
|
177
|
+
});
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
#### `updateProject(projectId, data)`
|
|
181
|
+
|
|
182
|
+
Обновляет проект.
|
|
183
|
+
|
|
184
|
+
```javascript
|
|
185
|
+
await sdk.projects.updateProject('project-id', { name: 'Новое имя' });
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
#### `deleteProject(projectId)`
|
|
189
|
+
|
|
190
|
+
Удаляет проект.
|
|
191
|
+
|
|
192
|
+
```javascript
|
|
193
|
+
await sdk.projects.deleteProject('project-id');
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
#### `indexProject(projectId)`
|
|
197
|
+
|
|
198
|
+
Запускает индексацию проекта.
|
|
199
|
+
|
|
200
|
+
```javascript
|
|
201
|
+
await sdk.projects.indexProject('project-id');
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
#### `getOrCreateProject(path, name)`
|
|
205
|
+
|
|
206
|
+
Получает существующий проект по пути или создает новый, если проект не найден.
|
|
207
|
+
|
|
208
|
+
```javascript
|
|
209
|
+
const project = await sdk.projects.getOrCreateProject('/path/to/project', 'Название проекта');
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
#### `indexProjectByPath(path, options)`
|
|
213
|
+
|
|
214
|
+
Индексирует проект по указанному пути. Если проект не существует, он будет создан автоматически.
|
|
215
|
+
|
|
216
|
+
```javascript
|
|
217
|
+
const result = await sdk.projects.indexProjectByPath('/path/to/project', {
|
|
218
|
+
name: 'Название проекта',
|
|
219
|
+
forceFull: true, // принудительная полная индексация
|
|
220
|
+
excludePatterns: ['node_modules', '.git'] // паттерны для исключения
|
|
221
|
+
});
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
#### `createAndIndexProject(path, options)`
|
|
225
|
+
|
|
226
|
+
Комбинированный метод для создания (если не существует) и индексации проекта в одной операции.
|
|
227
|
+
|
|
228
|
+
```javascript
|
|
229
|
+
const result = await sdk.projects.createAndIndexProject('/path/to/project', {
|
|
230
|
+
name: 'Название проекта',
|
|
231
|
+
forceFull: false,
|
|
232
|
+
excludePatterns: ['node_modules', '.git']
|
|
233
|
+
});
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
#### `connectWebSocket()`
|
|
237
|
+
|
|
238
|
+
Подключается к WebSocket для отслеживания индексации.
|
|
239
|
+
|
|
240
|
+
```javascript
|
|
241
|
+
await sdk.projects.connectWebSocket();
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
#### `disconnectWebSocket()`
|
|
245
|
+
|
|
246
|
+
Отключается от WebSocket индексации.
|
|
247
|
+
|
|
248
|
+
```javascript
|
|
249
|
+
await sdk.projects.disconnectWebSocket();
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
#### `on(event, callback)`
|
|
253
|
+
|
|
254
|
+
Добавляет обработчик события для индексации.
|
|
255
|
+
|
|
256
|
+
```javascript
|
|
257
|
+
sdk.projects.on('indexing_progress', (data) => {
|
|
258
|
+
console.log(`Прогресс: ${data.progress}%`);
|
|
259
|
+
});
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
#### `stopIndexing(projectId)`
|
|
263
|
+
|
|
264
|
+
Останавливает индексацию проекта.
|
|
265
|
+
|
|
266
|
+
```javascript
|
|
267
|
+
await sdk.projects.stopIndexing('project-id');
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
#### `getIndexingStatus(projectId)`
|
|
271
|
+
|
|
272
|
+
Получает статус индексации проекта.
|
|
273
|
+
|
|
274
|
+
```javascript
|
|
275
|
+
const status = await sdk.projects.getIndexingStatus('project-id');
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
## SearchApi
|
|
279
|
+
|
|
280
|
+
API для поиска кода.
|
|
281
|
+
|
|
282
|
+
### Методы
|
|
283
|
+
|
|
284
|
+
#### `searchCode(projectId, options)`
|
|
285
|
+
|
|
286
|
+
Выполняет поиск кода в проекте.
|
|
287
|
+
|
|
288
|
+
```javascript
|
|
289
|
+
const results = await sdk.search.searchCode('project-id', {
|
|
290
|
+
query: 'function example',
|
|
291
|
+
limit: 10
|
|
292
|
+
});
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
#### `semanticSearch(projectId, options)`
|
|
296
|
+
|
|
297
|
+
Выполняет семантический поиск в проекте.
|
|
298
|
+
|
|
299
|
+
```javascript
|
|
300
|
+
const results = await sdk.search.semanticSearch('project-id', {
|
|
301
|
+
query: 'функция для обработки HTTP запросов',
|
|
302
|
+
limit: 10,
|
|
303
|
+
includeContent: true
|
|
304
|
+
});
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
## ReasoningApi
|
|
308
|
+
|
|
309
|
+
API для работы с рассуждениями.
|
|
310
|
+
|
|
311
|
+
### Методы
|
|
312
|
+
|
|
313
|
+
#### `createReasoning(options)`
|
|
314
|
+
|
|
315
|
+
Создаёт новое рассуждение.
|
|
316
|
+
|
|
317
|
+
```javascript
|
|
318
|
+
const reasoning = await sdk.reasoning.createReasoning({
|
|
319
|
+
projectId: 'project-id',
|
|
320
|
+
query: 'Объясни этот проект'
|
|
321
|
+
});
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
#### `getReasoning(reasoningId)`
|
|
325
|
+
|
|
326
|
+
Получает информацию о рассуждении.
|
|
327
|
+
|
|
328
|
+
```javascript
|
|
329
|
+
const reasoning = await sdk.reasoning.getReasoning('reasoning-id');
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
#### `connectWebSocket(reasoningId)`
|
|
333
|
+
|
|
334
|
+
Подключается к WebSocket для отслеживания рассуждений.
|
|
335
|
+
|
|
336
|
+
```javascript
|
|
337
|
+
await sdk.reasoning.connectWebSocket('reasoning-id');
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
#### `startReasoning(reasoningId)`
|
|
341
|
+
|
|
342
|
+
Запускает процесс рассуждения.
|
|
343
|
+
|
|
344
|
+
```javascript
|
|
345
|
+
await sdk.reasoning.startReasoning('reasoning-id');
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
#### `on(event, callback)`
|
|
349
|
+
|
|
350
|
+
Добавляет обработчик события для рассуждений.
|
|
351
|
+
|
|
352
|
+
```javascript
|
|
353
|
+
sdk.reasoning.on('thinking', (data) => {
|
|
354
|
+
console.log('Мышление:', data.content);
|
|
355
|
+
});
|
|
356
|
+
|
|
357
|
+
sdk.reasoning.on('complete', (data) => {
|
|
358
|
+
console.log('Результат:', data.content);
|
|
359
|
+
});
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
## WebSocketClient
|
|
363
|
+
|
|
364
|
+
Клиент для работы с WebSocket соединениями. Получается через `sdk.getWebSocketClient()`.
|
|
365
|
+
|
|
366
|
+
### Методы
|
|
367
|
+
|
|
368
|
+
#### `connectToReasoning(reasoningId)`
|
|
369
|
+
|
|
370
|
+
Подключается к namespace рассуждений.
|
|
371
|
+
|
|
372
|
+
```javascript
|
|
373
|
+
await wsClient.connectToReasoning('reasoning-id');
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
#### `connectToIndexing(projectId)`
|
|
377
|
+
|
|
378
|
+
Подключается к namespace индексации.
|
|
379
|
+
|
|
380
|
+
```javascript
|
|
381
|
+
await wsClient.connectToIndexing('project-id');
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
#### `disconnect(namespace)`
|
|
385
|
+
|
|
386
|
+
Отключается от определенного namespace.
|
|
387
|
+
|
|
388
|
+
```javascript
|
|
389
|
+
await wsClient.disconnect(WebSocketNamespace.REASONING);
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
#### `disconnectAll()`
|
|
393
|
+
|
|
394
|
+
Отключается от всех namespace.
|
|
395
|
+
|
|
396
|
+
```javascript
|
|
397
|
+
await wsClient.disconnectAll();
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
#### `isConnected(namespace)`
|
|
401
|
+
|
|
402
|
+
Проверяет подключение к определенному namespace.
|
|
403
|
+
|
|
404
|
+
```javascript
|
|
405
|
+
const isConnected = wsClient.isConnected(WebSocketNamespace.REASONING);
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
#### `isConnectedToReasoning()`
|
|
409
|
+
|
|
410
|
+
Проверяет подключение к namespace рассуждений.
|
|
411
|
+
|
|
412
|
+
```javascript
|
|
413
|
+
const isConnected = wsClient.isConnectedToReasoning();
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
#### `isConnectedToIndexing()`
|
|
417
|
+
|
|
418
|
+
Проверяет подключение к namespace индексации.
|
|
419
|
+
|
|
420
|
+
```javascript
|
|
421
|
+
const isConnected = wsClient.isConnectedToIndexing();
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
#### `on(event, callback, namespace)`
|
|
425
|
+
|
|
426
|
+
Добавляет обработчик события для определенного namespace.
|
|
427
|
+
|
|
428
|
+
```javascript
|
|
429
|
+
wsClient.on('thinking', (data) => {
|
|
430
|
+
console.log('Мышление:', data);
|
|
431
|
+
}, WebSocketNamespace.REASONING);
|
|
432
|
+
```
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Аутентификация в Solver SDK
|
|
2
|
+
|
|
3
|
+
Этот документ описывает методы аутентификации в Solver SDK.
|
|
4
|
+
|
|
5
|
+
## Аутентификация HTTP API
|
|
6
|
+
|
|
7
|
+
SDK поддерживает два основных метода аутентификации:
|
|
8
|
+
|
|
9
|
+
### API ключ
|
|
10
|
+
|
|
11
|
+
```javascript
|
|
12
|
+
const sdk = new CodeSolverSDK({
|
|
13
|
+
baseURL: 'https://api.example.com',
|
|
14
|
+
apiKey: 'your-api-key'
|
|
15
|
+
});
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### Пользовательские заголовки
|
|
19
|
+
|
|
20
|
+
```javascript
|
|
21
|
+
const sdk = new CodeSolverSDK({
|
|
22
|
+
baseURL: 'https://api.example.com',
|
|
23
|
+
headers: {
|
|
24
|
+
'Authorization': 'Bearer your-jwt-token'
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Аутентификация WebSocket
|
|
30
|
+
|
|
31
|
+
SDK автоматически использует API-ключ для аутентификации WebSocket соединений. Отдельных действий не требуется.
|
|
32
|
+
|
|
33
|
+
Для некоторых методов можно указать дополнительный токен авторизации:
|
|
34
|
+
|
|
35
|
+
```javascript
|
|
36
|
+
// Для потоковой передачи чата с мышлением
|
|
37
|
+
const options = {
|
|
38
|
+
model: 'claude-3-7-sonnet-20240229',
|
|
39
|
+
thinking: true,
|
|
40
|
+
authToken: 'your-auth-token' // Опциональный параметр
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
// Запрос с аутентификацией
|
|
44
|
+
const response = await sdk.chat.streamChatWithThinking(messages, options, handleEvent);
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Обработка ошибок аутентификации
|
|
48
|
+
|
|
49
|
+
```javascript
|
|
50
|
+
// Обработчик событий WebSocket
|
|
51
|
+
const handleEvent = (eventType, data) => {
|
|
52
|
+
if (eventType === 'authentication_error') {
|
|
53
|
+
console.error('Ошибка аутентификации:', data.message);
|
|
54
|
+
|
|
55
|
+
// Реакция на ошибку аутентификации
|
|
56
|
+
if (data.code === 'TOKEN_EXPIRED') {
|
|
57
|
+
// Получение нового токена
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Пример использования
|
|
64
|
+
|
|
65
|
+
```javascript
|
|
66
|
+
// Создание экземпляра SDK
|
|
67
|
+
const sdk = new CodeSolverSDK({
|
|
68
|
+
baseURL: 'https://api.example.com',
|
|
69
|
+
apiKey: 'your-api-key'
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
// Создание рассуждения
|
|
73
|
+
const reasoning = await sdk.reasoning.createReasoning({
|
|
74
|
+
projectId: 'project-id',
|
|
75
|
+
query: 'Объясни этот проект'
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
// Подключение к WebSocket (аутентификация выполняется автоматически)
|
|
79
|
+
await sdk.reasoning.connectWebSocket(reasoning.id);
|
|
80
|
+
|
|
81
|
+
// Запуск процесса
|
|
82
|
+
await sdk.reasoning.startReasoning(reasoning.id);
|
|
83
|
+
```
|