solver-sdk 2.0.2 → 2.0.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.
Files changed (45) hide show
  1. package/dist/cjs/api/filesystem-api.js +123 -0
  2. package/dist/cjs/api/filesystem-api.js.map +1 -0
  3. package/dist/cjs/api/projects-api.js +7 -2
  4. package/dist/cjs/api/projects-api.js.map +1 -1
  5. package/dist/cjs/code-solver-sdk.js +48 -2
  6. package/dist/cjs/code-solver-sdk.js.map +1 -1
  7. package/dist/cjs/constants/websocket-events.constants.js +1 -1
  8. package/dist/cjs/constants/websocket-events.constants.js.map +1 -1
  9. package/dist/cjs/index.js +1 -0
  10. package/dist/cjs/index.js.map +1 -1
  11. package/dist/cjs/ws/filesystem-ws-client.js +16 -16
  12. package/dist/cjs/ws/filesystem-ws-client.js.map +1 -1
  13. package/dist/esm/api/filesystem-api.js +119 -0
  14. package/dist/esm/api/filesystem-api.js.map +1 -0
  15. package/dist/esm/api/projects-api.js +7 -2
  16. package/dist/esm/api/projects-api.js.map +1 -1
  17. package/dist/esm/code-solver-sdk.js +48 -2
  18. package/dist/esm/code-solver-sdk.js.map +1 -1
  19. package/dist/esm/constants/websocket-events.constants.js +1 -1
  20. package/dist/esm/constants/websocket-events.constants.js.map +1 -1
  21. package/dist/esm/index.js +1 -0
  22. package/dist/esm/index.js.map +1 -1
  23. package/dist/esm/ws/filesystem-ws-client.js +16 -16
  24. package/dist/esm/ws/filesystem-ws-client.js.map +1 -1
  25. package/dist/types/api/filesystem-api.d.ts +64 -0
  26. package/dist/types/api/filesystem-api.d.ts.map +1 -0
  27. package/dist/types/api/projects-api.d.ts +2 -1
  28. package/dist/types/api/projects-api.d.ts.map +1 -1
  29. package/dist/types/code-solver-sdk.d.ts +22 -1
  30. package/dist/types/code-solver-sdk.d.ts.map +1 -1
  31. package/dist/types/constants/websocket-events.constants.d.ts +2 -2
  32. package/dist/types/constants/websocket-events.constants.d.ts.map +1 -1
  33. package/dist/types/index.d.ts +1 -0
  34. package/dist/types/index.d.ts.map +1 -1
  35. package/dist/types/ws/filesystem-ws-client.d.ts +2 -4
  36. package/dist/types/ws/filesystem-ws-client.d.ts.map +1 -1
  37. package/docs/API_REFERENCE.md +38 -166
  38. package/docs/AUTHENTICATION.md +37 -59
  39. package/docs/ERROR_HANDLING.md +124 -191
  40. package/docs/INTEGRATION_EXAMPLES.md +38 -52
  41. package/docs/PING_PONG.md +79 -178
  42. package/docs/README.md +7 -3
  43. package/docs/WEBSOCKET.md +188 -42
  44. package/package.json +1 -1
  45. package/docs/advanced/PING_PONG.md +0 -212
@@ -26,5 +26,6 @@ export * from './api/agents-api.js';
26
26
  export * from './api/chat-api/index.js';
27
27
  export * from './api/models-api.js';
28
28
  export * from './api/dependencies-api.js';
29
+ export * from './api/filesystem-api.js';
29
30
  export default CodeSolverSDK;
30
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,CAAC;AAG3B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAG1D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAG/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAG1C,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,CAAC;AAG3B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAG1D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAG/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AAGxC,eAAe,aAAa,CAAC"}
@@ -34,8 +34,6 @@ export interface FileInfo {
34
34
  export declare class FileSystemWsClient extends BaseWebSocketClient {
35
35
  private sessionId;
36
36
  private projectId;
37
- private pingInterval;
38
- private pingTimer;
39
37
  private readonly SDK_VERSION;
40
38
  onReadFile: (path: string) => Promise<string>;
41
39
  onListFiles: (directory: string, options?: {
@@ -51,10 +49,10 @@ export declare class FileSystemWsClient extends BaseWebSocketClient {
51
49
  constructor(baseURL: string, options?: FileSystemWsClientOptions);
52
50
  /**
53
51
  * Подключение к серверу и инициализация сессии
54
- * @param params Параметры подключения (может содержать projectId или другие параметры)
52
+ * @param {string | Record<string, any>} projectIdOrParams Идентификатор проекта или параметры подключения
55
53
  * @returns Promise<boolean> Успешность подключения
56
54
  */
57
- connect(params?: Record<string, any>): Promise<boolean>;
55
+ connect(projectIdOrParams?: string | Record<string, any>): Promise<boolean>;
58
56
  /**
59
57
  * Подключение к проекту - удобный метод для использования в приложении
60
58
  * @param projectId ID проекта
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem-ws-client.d.ts","sourceRoot":"","sources":["../../../src/ws/filesystem-ws-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAKvD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,8BAA8B;IAC9B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/C,yCAAyC;IACzC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAC1C,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5B,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE1B,4CAA4C;IAC5C,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IAEb,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IAErB,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAElB,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IAEb,sBAAsB;IACtB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,mBAAmB;IACzD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAW;IAGhC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAChD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5B,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9D;;;;OAIG;gBAED,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,yBAA8B;IAgBzC;;;;OAIG;IACmB,OAAO,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6CjF;;;;OAIG;IACU,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlE;;OAEG;IACH,OAAO,CAAC,aAAa;IAkFrB;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,SAAS,GAAG,UAAU,GAAG,SAAsB,GAAG,OAAO;CAetG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+HG"}
1
+ {"version":3,"file":"filesystem-ws-client.d.ts","sourceRoot":"","sources":["../../../src/ws/filesystem-ws-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAKvD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,8BAA8B;IAC9B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/C,yCAAyC;IACzC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAC1C,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5B,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE1B,4CAA4C;IAC5C,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IAEb,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IAErB,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAElB,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IAEb,sBAAsB;IACtB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,mBAAmB;IACzD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAW;IAGhC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAChD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5B,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9D;;;;OAIG;gBAED,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,yBAA8B;IAgBzC;;;;OAIG;IACmB,OAAO,CAAC,iBAAiB,GAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuDrG;;;;OAIG;IACU,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlE;;OAEG;IACH,OAAO,CAAC,aAAa;IA0ErB;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,SAAS,GAAG,UAAU,GAAG,SAAsB,GAAG,OAAO;CAetG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+HG"}
@@ -9,7 +9,6 @@
9
9
  - [ProjectsApi](#projectsapi)
10
10
  - [SearchApi](#searchapi)
11
11
  - [ReasoningApi](#reasoningapi)
12
- - [WebSocketClient](#websocketclient)
13
12
 
14
13
  ## CodeSolverSDK
15
14
 
@@ -35,14 +34,6 @@ const sdk = new CodeSolverSDK(options);
35
34
 
36
35
  ### Методы
37
36
 
38
- #### `getWebSocketClient()`
39
-
40
- Возвращает экземпляр WebSocket клиента для работы с соединениями.
41
-
42
- ```javascript
43
- const wsClient = sdk.getWebSocketClient();
44
- ```
45
-
46
37
  #### `checkHealth()`
47
38
 
48
39
  Проверяет доступность API сервера.
@@ -53,7 +44,7 @@ const isHealthy = await sdk.checkHealth();
53
44
 
54
45
  #### `connect()`
55
46
 
56
- Подключается к WebSocket серверу.
47
+ Подключается ко всем WebSocket сервисам одновременно.
57
48
 
58
49
  ```javascript
59
50
  await sdk.connect();
@@ -61,7 +52,7 @@ await sdk.connect();
61
52
 
62
53
  #### `disconnect()`
63
54
 
64
- Отключается от WebSocket сервера.
55
+ Отключается от всех WebSocket серверов.
65
56
 
66
57
  ```javascript
67
58
  await sdk.disconnect();
@@ -94,30 +85,35 @@ API для работы с чатом и AI-моделями.
94
85
  Отправляет запрос чата и возвращает полный ответ.
95
86
 
96
87
  ```javascript
97
- const response = await sdk.chat.chat(
98
- messages,
99
- options
100
- );
88
+ const response = await sdk.chat.chat([
89
+ { role: 'user', content: 'Привет, как дела?' }
90
+ ], {
91
+ model: 'claude-3-7-sonnet-20240229'
92
+ });
101
93
  ```
102
94
 
103
- ##### Параметры
95
+ #### `streamChat(messages, options, callback)`
104
96
 
105
- | Параметр | Тип | Описание | Обязательно |
106
- |----------|-----|----------|-------------|
107
- | `messages` | Array | Массив сообщений для отправки модели | Да |
108
- | `options` | Object | Параметры запроса (модель, temperature и т.д.) | Нет |
97
+ Отправляет запрос чата и получает ответ в потоковом режиме.
98
+
99
+ ```javascript
100
+ await sdk.chat.streamChat(
101
+ [{ role: 'user', content: 'Объясни JavaScript' }],
102
+ { model: 'claude-3-7-sonnet-20240229' },
103
+ (chunk) => console.log(chunk)
104
+ );
105
+ ```
109
106
 
110
- #### `streamChatWithThinking(messages, options, onEvent)`
107
+ #### `streamChatWithThinking(messages, options, callback)`
111
108
 
112
- Отправляет запрос чата в потоковом режиме с получением "мышления" модели.
109
+ Отправляет запрос чата с получением промежуточных шагов мышления.
113
110
 
114
111
  ```javascript
115
- const response = await sdk.chat.streamChatWithThinking(
116
- messages,
112
+ await sdk.chat.streamChatWithThinking(
113
+ [{ role: 'user', content: 'Объясни принцип работы реактивного программирования' }],
117
114
  {
118
115
  model: 'claude-3-7-sonnet-20240229',
119
- thinking: true,
120
- temperature: 0.7
116
+ thinking: true
121
117
  },
122
118
  (eventType, data) => {
123
119
  if (eventType === 'thinking_delta') {
@@ -131,105 +127,53 @@ const response = await sdk.chat.streamChatWithThinking(
131
127
 
132
128
  #### `connectWebSocket()`
133
129
 
134
- Создает новое WebSocket соединение для потокового чата.
130
+ Подключается к WebSocket для событий чата.
135
131
 
136
132
  ```javascript
137
133
  await sdk.chat.connectWebSocket();
138
134
  ```
139
135
 
140
- #### `getModels()`
141
-
142
- Получает список доступных моделей.
143
-
144
- ```javascript
145
- const models = await sdk.chat.getModels();
146
- ```
147
-
148
136
  ## ProjectsApi
149
137
 
150
138
  API для работы с проектами.
151
139
 
152
140
  ### Методы
153
141
 
154
- #### `getAllProjects()`
142
+ #### `createProject(name, path, options)`
155
143
 
156
- Получает список всех проектов.
144
+ Создает новый проект.
157
145
 
158
146
  ```javascript
159
- const projects = await sdk.projects.getAllProjects();
147
+ const project = await sdk.projects.createProject(
148
+ 'Мой проект',
149
+ '/path/to/project',
150
+ { excludePatterns: ['node_modules', '.git'] }
151
+ );
160
152
  ```
161
153
 
162
154
  #### `getProject(projectId)`
163
155
 
164
- Получает информацию о проекте по ID.
156
+ Получает информацию о проекте.
165
157
 
166
158
  ```javascript
167
159
  const project = await sdk.projects.getProject('project-id');
168
160
  ```
169
161
 
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)`
162
+ #### `getAllProjects()`
189
163
 
190
- Удаляет проект.
164
+ Получает список всех проектов.
191
165
 
192
166
  ```javascript
193
- await sdk.projects.deleteProject('project-id');
167
+ const projects = await sdk.projects.getAllProjects();
194
168
  ```
195
169
 
196
- #### `indexProject(projectId)`
170
+ #### `indexProject(projectId, options)`
197
171
 
198
172
  Запускает индексацию проекта.
199
173
 
200
174
  ```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']
175
+ await sdk.projects.indexProject('project-id', {
176
+ indexingMode: 'full' // или 'incremental', 'auto'
233
177
  });
234
178
  ```
235
179
 
@@ -357,76 +301,4 @@ sdk.reasoning.on('thinking', (data) => {
357
301
  sdk.reasoning.on('complete', (data) => {
358
302
  console.log('Результат:', data.content);
359
303
  });
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
- ```
304
+ ```
@@ -1,83 +1,61 @@
1
- # Аутентификация в Solver SDK
1
+ # Аутентификация в SDK
2
2
 
3
- Этот документ описывает методы аутентификации в Solver SDK.
3
+ SDK автоматически обрабатывает процесс аутентификации при подключении к API и WebSocket-сервисам.
4
4
 
5
- ## Аутентификация HTTP API
5
+ ## Настройка аутентификации
6
6
 
7
- SDK поддерживает два основных метода аутентификации:
8
-
9
- ### API ключ
7
+ Аутентификация выполняется через API ключ, который необходимо передать при инициализации SDK:
10
8
 
11
9
  ```javascript
12
- const sdk = new CodeSolverSDK({
13
- baseURL: 'https://api.example.com',
14
- apiKey: 'your-api-key'
15
- });
16
- ```
17
-
18
- ### Пользовательские заголовки
10
+ import { CodeSolverSDK } from 'solver-sdk';
19
11
 
20
- ```javascript
12
+ // Инициализация SDK с API ключом
21
13
  const sdk = new CodeSolverSDK({
22
14
  baseURL: 'https://api.example.com',
23
- headers: {
24
- 'Authorization': 'Bearer your-jwt-token'
25
- }
15
+ apiKey: 'ваш-api-ключ' // Этот ключ будет использован для автоматической аутентификации
26
16
  });
27
17
  ```
28
18
 
29
- ## Аутентификация WebSocket
19
+ ## Автоматическая аутентификация при WebSocket подключении
20
+
21
+ При использовании методов для работы с WebSocket (например, `sdk.connect()` или `sdk.projects.connectWebSocket()`), SDK автоматически выполняет аутентификацию, используя указанный API ключ. Вам не нужно предпринимать дополнительных действий для аутентификации WebSocket соединений.
30
22
 
31
- SDK автоматически использует API-ключ для аутентификации WebSocket соединений. Отдельных действий не требуется.
23
+ ## Изменение API ключа во время выполнения
32
24
 
33
- Для некоторых методов можно указать дополнительный токен авторизации:
25
+ Если необходимо изменить API ключ во время выполнения программы:
34
26
 
35
27
  ```javascript
36
- // Для потоковой передачи чата с мышлением
37
- const options = {
38
- model: 'claude-3-7-sonnet-20240229',
39
- thinking: true,
40
- authToken: 'your-auth-token' // Опциональный параметр
41
- };
28
+ // Установка нового API ключа
29
+ sdk.setApiKey('новый-api-ключ');
42
30
 
43
- // Запрос с аутентификацией
44
- const response = await sdk.chat.streamChatWithThinking(messages, options, handleEvent);
31
+ // После этого все новые запросы и WebSocket соединения
32
+ // будут использовать новый ключ
45
33
  ```
46
34
 
35
+ При изменении API ключа:
36
+ 1. Обновляются заголовки для HTTP запросов
37
+ 2. Существующие WebSocket соединения закрываются
38
+ 3. Новые соединения будут установлены с новым API ключом
39
+
47
40
  ## Обработка ошибок аутентификации
48
41
 
42
+ Если API ключ недействителен или устарел, SDK сгенерирует соответствующие ошибки:
43
+
49
44
  ```javascript
50
- // Обработчик событий WebSocket
51
- const handleEvent = (eventType, data) => {
52
- if (eventType === 'authentication_error') {
53
- console.error('Ошибка аутентификации:', data.message);
45
+ try {
46
+ // Попытка выполнить операцию, требующую аутентификации
47
+ await sdk.projects.getAllProjects();
48
+ } catch (error) {
49
+ if (error.status === 401) {
50
+ console.error('Ошибка аутентификации: недействительный API ключ');
51
+
52
+ // Обновление API ключа
53
+ sdk.setApiKey('новый-api-ключ');
54
54
 
55
- // Реакция на ошибку аутентификации
56
- if (data.code === 'TOKEN_EXPIRED') {
57
- // Получение нового токена
58
- }
55
+ // Повторная попытка
56
+ const projects = await sdk.projects.getAllProjects();
57
+ } else {
58
+ console.error('Другая ошибка:', error);
59
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);
60
+ }
83
61
  ```