solver-sdk 2.8.0 → 3.1.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.
Files changed (197) hide show
  1. package/README.md +200 -368
  2. package/dist/cjs/api/chat-api/index.js +23 -49
  3. package/dist/cjs/api/chat-api/index.js.map +1 -1
  4. package/dist/cjs/api/chat-api/interfaces.js +1 -0
  5. package/dist/cjs/api/chat-api/interfaces.js.map +1 -1
  6. package/dist/cjs/api/context-api.js +6 -1
  7. package/dist/cjs/api/context-api.js.map +1 -1
  8. package/dist/cjs/api/models-api.js +43 -60
  9. package/dist/cjs/api/models-api.js.map +1 -1
  10. package/dist/cjs/api/projects-api.js +63 -293
  11. package/dist/cjs/api/projects-api.js.map +1 -1
  12. package/dist/cjs/api/search-api.js +131 -8
  13. package/dist/cjs/api/search-api.js.map +1 -1
  14. package/dist/cjs/code-solver-sdk.js +68 -322
  15. package/dist/cjs/code-solver-sdk.js.map +1 -1
  16. package/dist/cjs/index.js +3 -19
  17. package/dist/cjs/index.js.map +1 -1
  18. package/dist/cjs/utils/logger.js +4 -4
  19. package/dist/cjs/utils/logger.js.map +1 -1
  20. package/dist/esm/api/chat-api/index.js +22 -48
  21. package/dist/esm/api/chat-api/index.js.map +1 -1
  22. package/dist/esm/api/chat-api/interfaces.js +1 -0
  23. package/dist/esm/api/chat-api/interfaces.js.map +1 -1
  24. package/dist/esm/api/context-api.js +6 -1
  25. package/dist/esm/api/context-api.js.map +1 -1
  26. package/dist/esm/api/models-api.js +43 -60
  27. package/dist/esm/api/models-api.js.map +1 -1
  28. package/dist/esm/api/projects-api.js +63 -293
  29. package/dist/esm/api/projects-api.js.map +1 -1
  30. package/dist/esm/api/search-api.js +131 -8
  31. package/dist/esm/api/search-api.js.map +1 -1
  32. package/dist/esm/code-solver-sdk.js +68 -322
  33. package/dist/esm/code-solver-sdk.js.map +1 -1
  34. package/dist/esm/index.js +2 -18
  35. package/dist/esm/index.js.map +1 -1
  36. package/dist/esm/utils/logger.js +3 -3
  37. package/dist/esm/utils/logger.js.map +1 -1
  38. package/dist/types/api/chat-api/index.d.ts +1 -13
  39. package/dist/types/api/chat-api/index.d.ts.map +1 -1
  40. package/dist/types/api/chat-api/interfaces.d.ts +6 -54
  41. package/dist/types/api/chat-api/interfaces.d.ts.map +1 -1
  42. package/dist/types/api/chat-api/models.d.ts +3 -26
  43. package/dist/types/api/chat-api/models.d.ts.map +1 -1
  44. package/dist/types/api/context-api.d.ts.map +1 -1
  45. package/dist/types/api/models-api.d.ts +31 -62
  46. package/dist/types/api/models-api.d.ts.map +1 -1
  47. package/dist/types/api/projects-api.d.ts +47 -126
  48. package/dist/types/api/projects-api.d.ts.map +1 -1
  49. package/dist/types/api/search-api.d.ts +147 -6
  50. package/dist/types/api/search-api.d.ts.map +1 -1
  51. package/dist/types/code-solver-sdk.d.ts +36 -86
  52. package/dist/types/code-solver-sdk.d.ts.map +1 -1
  53. package/dist/types/index.d.ts +1 -14
  54. package/dist/types/index.d.ts.map +1 -1
  55. package/dist/types/interfaces/sdk-options.d.ts +18 -66
  56. package/dist/types/interfaces/sdk-options.d.ts.map +1 -1
  57. package/dist/types/utils/logger.d.ts +3 -3
  58. package/dist/types/utils/logger.d.ts.map +1 -1
  59. package/docs/README.md +53 -37
  60. package/docs/VSCODE_INTEGRATION.md +208 -371
  61. package/docs/indexing/INDEXING.md +658 -335
  62. package/package.json +26 -23
  63. package/dist/cjs/api/agents-api.js +0 -94
  64. package/dist/cjs/api/agents-api.js.map +0 -1
  65. package/dist/cjs/api/chat-api/websocket-helpers.js +0 -211
  66. package/dist/cjs/api/chat-api/websocket-helpers.js.map +0 -1
  67. package/dist/cjs/api/dependencies-api.js +0 -286
  68. package/dist/cjs/api/dependencies-api.js.map +0 -1
  69. package/dist/cjs/constants/websocket-events.constants.js +0 -170
  70. package/dist/cjs/constants/websocket-events.constants.js.map +0 -1
  71. package/dist/cjs/constants/websocket-namespaces.constants.js +0 -22
  72. package/dist/cjs/constants/websocket-namespaces.constants.js.map +0 -1
  73. package/dist/cjs/interfaces/websocket/callbacks.interfaces.js +0 -3
  74. package/dist/cjs/interfaces/websocket/callbacks.interfaces.js.map +0 -1
  75. package/dist/cjs/interfaces/websocket/client-options.interfaces.js +0 -3
  76. package/dist/cjs/interfaces/websocket/client-options.interfaces.js.map +0 -1
  77. package/dist/cjs/interfaces/websocket/events.interfaces.js +0 -3
  78. package/dist/cjs/interfaces/websocket/events.interfaces.js.map +0 -1
  79. package/dist/cjs/interfaces/websocket/vscode-command.interfaces.js +0 -42
  80. package/dist/cjs/interfaces/websocket/vscode-command.interfaces.js.map +0 -1
  81. package/dist/cjs/simple-indexing-client.js +0 -138
  82. package/dist/cjs/simple-indexing-client.js.map +0 -1
  83. package/dist/cjs/utils/code-solver-websocket-client.js +0 -497
  84. package/dist/cjs/utils/code-solver-websocket-client.js.map +0 -1
  85. package/dist/cjs/utils/connection-state-manager.js +0 -133
  86. package/dist/cjs/utils/connection-state-manager.js.map +0 -1
  87. package/dist/cjs/utils/indexing-websocket-client.js +0 -107
  88. package/dist/cjs/utils/indexing-websocket-client.js.map +0 -1
  89. package/dist/cjs/utils/session-manager.js +0 -114
  90. package/dist/cjs/utils/session-manager.js.map +0 -1
  91. package/dist/cjs/utils/simple-connection-monitor.js +0 -52
  92. package/dist/cjs/utils/simple-connection-monitor.js.map +0 -1
  93. package/dist/cjs/utils/websocket-client.js +0 -638
  94. package/dist/cjs/utils/websocket-client.js.map +0 -1
  95. package/dist/cjs/ws/base-ws-client.js +0 -280
  96. package/dist/cjs/ws/base-ws-client.js.map +0 -1
  97. package/dist/cjs/ws/dependencies-ws-client.js +0 -11
  98. package/dist/cjs/ws/dependencies-ws-client.js.map +0 -1
  99. package/dist/cjs/ws/file-editing-ws-client.js +0 -162
  100. package/dist/cjs/ws/file-editing-ws-client.js.map +0 -1
  101. package/dist/cjs/ws/filesystem-ws-client.js +0 -305
  102. package/dist/cjs/ws/filesystem-ws-client.js.map +0 -1
  103. package/dist/cjs/ws/indexing-ws-client.js +0 -275
  104. package/dist/cjs/ws/indexing-ws-client.js.map +0 -1
  105. package/dist/cjs/ws/notifications-ws-client.js +0 -12
  106. package/dist/cjs/ws/notifications-ws-client.js.map +0 -1
  107. package/dist/esm/api/agents-api.js +0 -90
  108. package/dist/esm/api/agents-api.js.map +0 -1
  109. package/dist/esm/api/chat-api/websocket-helpers.js +0 -205
  110. package/dist/esm/api/chat-api/websocket-helpers.js.map +0 -1
  111. package/dist/esm/api/dependencies-api.js +0 -282
  112. package/dist/esm/api/dependencies-api.js.map +0 -1
  113. package/dist/esm/constants/websocket-events.constants.js +0 -167
  114. package/dist/esm/constants/websocket-events.constants.js.map +0 -1
  115. package/dist/esm/constants/websocket-namespaces.constants.js +0 -19
  116. package/dist/esm/constants/websocket-namespaces.constants.js.map +0 -1
  117. package/dist/esm/interfaces/websocket/callbacks.interfaces.js +0 -2
  118. package/dist/esm/interfaces/websocket/callbacks.interfaces.js.map +0 -1
  119. package/dist/esm/interfaces/websocket/client-options.interfaces.js +0 -2
  120. package/dist/esm/interfaces/websocket/client-options.interfaces.js.map +0 -1
  121. package/dist/esm/interfaces/websocket/events.interfaces.js +0 -2
  122. package/dist/esm/interfaces/websocket/events.interfaces.js.map +0 -1
  123. package/dist/esm/interfaces/websocket/vscode-command.interfaces.js +0 -39
  124. package/dist/esm/interfaces/websocket/vscode-command.interfaces.js.map +0 -1
  125. package/dist/esm/simple-indexing-client.js +0 -134
  126. package/dist/esm/simple-indexing-client.js.map +0 -1
  127. package/dist/esm/utils/code-solver-websocket-client.js +0 -492
  128. package/dist/esm/utils/code-solver-websocket-client.js.map +0 -1
  129. package/dist/esm/utils/connection-state-manager.js +0 -129
  130. package/dist/esm/utils/connection-state-manager.js.map +0 -1
  131. package/dist/esm/utils/indexing-websocket-client.js +0 -103
  132. package/dist/esm/utils/indexing-websocket-client.js.map +0 -1
  133. package/dist/esm/utils/session-manager.js +0 -109
  134. package/dist/esm/utils/session-manager.js.map +0 -1
  135. package/dist/esm/utils/simple-connection-monitor.js +0 -48
  136. package/dist/esm/utils/simple-connection-monitor.js.map +0 -1
  137. package/dist/esm/utils/websocket-client.js +0 -634
  138. package/dist/esm/utils/websocket-client.js.map +0 -1
  139. package/dist/esm/ws/base-ws-client.js +0 -276
  140. package/dist/esm/ws/base-ws-client.js.map +0 -1
  141. package/dist/esm/ws/dependencies-ws-client.js +0 -7
  142. package/dist/esm/ws/dependencies-ws-client.js.map +0 -1
  143. package/dist/esm/ws/file-editing-ws-client.js +0 -158
  144. package/dist/esm/ws/file-editing-ws-client.js.map +0 -1
  145. package/dist/esm/ws/filesystem-ws-client.js +0 -301
  146. package/dist/esm/ws/filesystem-ws-client.js.map +0 -1
  147. package/dist/esm/ws/indexing-ws-client.js +0 -271
  148. package/dist/esm/ws/indexing-ws-client.js.map +0 -1
  149. package/dist/esm/ws/notifications-ws-client.js +0 -8
  150. package/dist/esm/ws/notifications-ws-client.js.map +0 -1
  151. package/dist/types/api/agents-api.d.ts +0 -141
  152. package/dist/types/api/agents-api.d.ts.map +0 -1
  153. package/dist/types/api/chat-api/websocket-helpers.d.ts +0 -40
  154. package/dist/types/api/chat-api/websocket-helpers.d.ts.map +0 -1
  155. package/dist/types/api/dependencies-api.d.ts +0 -109
  156. package/dist/types/api/dependencies-api.d.ts.map +0 -1
  157. package/dist/types/constants/websocket-events.constants.d.ts +0 -144
  158. package/dist/types/constants/websocket-events.constants.d.ts.map +0 -1
  159. package/dist/types/constants/websocket-namespaces.constants.d.ts +0 -17
  160. package/dist/types/constants/websocket-namespaces.constants.d.ts.map +0 -1
  161. package/dist/types/interfaces/websocket/callbacks.interfaces.d.ts +0 -30
  162. package/dist/types/interfaces/websocket/callbacks.interfaces.d.ts.map +0 -1
  163. package/dist/types/interfaces/websocket/client-options.interfaces.d.ts +0 -51
  164. package/dist/types/interfaces/websocket/client-options.interfaces.d.ts.map +0 -1
  165. package/dist/types/interfaces/websocket/events.interfaces.d.ts +0 -165
  166. package/dist/types/interfaces/websocket/events.interfaces.d.ts.map +0 -1
  167. package/dist/types/interfaces/websocket/vscode-command.interfaces.d.ts +0 -56
  168. package/dist/types/interfaces/websocket/vscode-command.interfaces.d.ts.map +0 -1
  169. package/dist/types/simple-indexing-client.d.ts +0 -66
  170. package/dist/types/simple-indexing-client.d.ts.map +0 -1
  171. package/dist/types/utils/code-solver-websocket-client.d.ts +0 -144
  172. package/dist/types/utils/code-solver-websocket-client.d.ts.map +0 -1
  173. package/dist/types/utils/connection-state-manager.d.ts +0 -94
  174. package/dist/types/utils/connection-state-manager.d.ts.map +0 -1
  175. package/dist/types/utils/indexing-websocket-client.d.ts +0 -123
  176. package/dist/types/utils/indexing-websocket-client.d.ts.map +0 -1
  177. package/dist/types/utils/session-manager.d.ts +0 -98
  178. package/dist/types/utils/session-manager.d.ts.map +0 -1
  179. package/dist/types/utils/simple-connection-monitor.d.ts +0 -26
  180. package/dist/types/utils/simple-connection-monitor.d.ts.map +0 -1
  181. package/dist/types/utils/websocket-client.d.ts +0 -233
  182. package/dist/types/utils/websocket-client.d.ts.map +0 -1
  183. package/dist/types/ws/base-ws-client.d.ts +0 -119
  184. package/dist/types/ws/base-ws-client.d.ts.map +0 -1
  185. package/dist/types/ws/dependencies-ws-client.d.ts +0 -6
  186. package/dist/types/ws/dependencies-ws-client.d.ts.map +0 -1
  187. package/dist/types/ws/file-editing-ws-client.d.ts +0 -85
  188. package/dist/types/ws/file-editing-ws-client.d.ts.map +0 -1
  189. package/dist/types/ws/filesystem-ws-client.d.ts +0 -201
  190. package/dist/types/ws/filesystem-ws-client.d.ts.map +0 -1
  191. package/dist/types/ws/indexing-ws-client.d.ts +0 -94
  192. package/dist/types/ws/indexing-ws-client.d.ts.map +0 -1
  193. package/dist/types/ws/notifications-ws-client.d.ts +0 -5
  194. package/dist/types/ws/notifications-ws-client.d.ts.map +0 -1
  195. package/docs/ARCHITECTURE.md +0 -268
  196. package/docs/QUICK_START.md +0 -126
  197. package/docs/WEBSOCKET.md +0 -472
package/README.md CHANGED
@@ -1,86 +1,20 @@
1
- # Solver SDK v2.7.0 🚀
1
+ # Code Solver SDK v3.0
2
2
 
3
- **Production-ready** SDK для интеграции с Code Solver Backend API с поддержкой **VS Code Extension**.
3
+ > **🚀 Версия 3.0 - полный переход на HTTP API**
4
+ > Убрана поддержка WebSocket, все взаимодействие происходит через REST API
4
5
 
5
- **🎉 Версия 2.7.0:** **VS Code интеграция с 10x ускорением!** HTTP Streaming для команд VS Code, гибридная архитектура, 45ms vs 443ms старая архитектура.
6
-
7
- <p align="center">
8
- <a href="https://www.npmjs.com/package/solver-sdk"><img src="https://img.shields.io/npm/v/solver-sdk.svg" alt="NPM Version" /></a>
9
- <a href="https://www.npmjs.com/package/solver-sdk"><img src="https://img.shields.io/npm/dm/solver-sdk.svg" alt="NPM Downloads" /></a>
10
- <a href="https://github.com/code-solver/browser-sdk/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/solver-sdk.svg" alt="License" /></a>
11
- </p>
12
-
13
- ## ⚡ Что нового в v2.7.0
14
-
15
- - 🚀 **VS Code интеграция:** Нативное выполнение команд через HTTP Streaming
16
- - ⚡ **10x ускорение:** 45ms vs 443ms старая архитектура команд VS Code
17
- - 🏗️ **Гибридная архитектура:** HTTP Streaming + WebSocket для оптимальной производительности
18
- - 🎯 **Новые типы:** `VSCodeCommandEvent`, `CommandExecutionResult`, `VSCodeCommands`
19
- - 🔄 **Двусторонняя связь:** Backend ←→ SDK ←→ Extension
20
- - 📊 **Real-time feedback:** Мгновенные результаты выполнения команд
21
- - 🛡️ **Backwards compatible:** Все существующие методы работают без изменений
22
-
23
- ## 📋 Для разработчиков
24
-
25
- ### 🎯 **VS Code Extension разработчики**
26
- - 📄 **[5-минутный старт](docs/QUICK_START.md)** - минимальный код для работы
27
- - 📚 **[Полное руководство](docs/VSCODE_INTEGRATION.md)** - детальные примеры и best practices
28
-
29
- ### 🔧 **Backend интеграция**
30
- - 🏗️ **[Архитектура](docs/ARCHITECTURE.md)** - HTTP vs WebSocket решения
31
- - 🔌 **[WebSocket API](docs/WEBSOCKET.md)** - события и namespace'ы
32
- - 🔑 **[Аутентификация](docs/AUTHENTICATION.md)** - настройка API ключей
33
-
34
- ### 📖 **Остальная документация**
35
- - [Основные возможности](#основные-возможности)
36
- - [Установка](#установка)
37
- - [Быстрый старт](#быстрый-старт)
38
- - [API компоненты](#api)
39
- - [Примеры использования](#примеры)
6
+ JavaScript/TypeScript SDK для работы с Code Solver API. Предоставляет простой интерфейс для индексации кода, поиска, работы с чатом и анализа зависимостей.
40
7
 
41
8
  ## 🎯 Основные возможности
42
9
 
43
- - **🚀 Production готовность (v2.5.0)**:
44
- - "Fail Fast" подход без fallback'ов
45
- - Честные ошибки без маскировки проблем
46
- - Полный контроль WebSocket подключений
47
- - API диагностика с детальными отчетами
48
-
49
- - **🎮 Гибкая инициализация (v2.5.0)**:
50
- - `CodeSolverSDK.create()` - с валидацией API
51
- - `new CodeSolverSDK()` - быстрая инициализация
52
- - `autoConnect: false` - ручное управление WebSocket
53
- - Алиасы методов для удобства (`create()`, `start()`, `stop()`)
54
-
55
- - **🔌 Контролируемые WebSocket**:
56
- - Ручное подключение только когда нужно
57
- - Автоматический ping/pong механизм
58
- - Интеллектуальное переподключение
59
- - Мониторинг здоровья соединения
60
-
61
- - **🧠 Потоковое мышление AI**:
62
- - `streamChat()` с поддержкой Anthropic Claude thinking и VS Code команд
63
- - Полная поддержка `ContentBlock[]` и `signature` блоков
64
- - Сохранение криптографических подписей
65
- - Обработка `signature_delta` событий
66
-
67
- - **🎯 VS Code Extension интеграция (v2.7.0)**:
68
- - Нативное выполнение команд через HTTP Streaming
69
- - 10x ускорение (45ms vs 443ms старая архитектура)
70
- - Поддержка всех VS Code команд (создание файлов, редактирование, поиск)
71
- - Real-time feedback и error handling
72
-
73
- - **🔍 Семантический поиск**:
74
- - Инкрементальная индексация файлов
75
- - Семантический поиск по коду
76
- - Работа с зависимостями проектов
77
-
78
- - **🌐 Кросс-платформенность**:
79
- - ESM, CommonJS, браузер, Node.js
80
- - Полная TypeScript типизация
81
- - Региональные Anthropic endpoints
82
-
83
- ## Установка
10
+ - **💬 Chat API** - взаимодействие с AI моделями (Claude, GPT)
11
+ - **🔍 Code Search** - семантический поиск по коду
12
+ - **📊 Project Indexing** - индексация и анализ проектов
13
+ - **🕸️ Dependencies** - анализ зависимостей кода
14
+ - **📝 Context API** - получение контекста для AI
15
+ - **🛠️ Code Modification** - модификация кода через AI
16
+
17
+ ## 📦 Установка
84
18
 
85
19
  ```bash
86
20
  npm install solver-sdk
@@ -88,368 +22,266 @@ npm install solver-sdk
88
22
 
89
23
  ## 🚀 Быстрый старт
90
24
 
91
- ### 🎯 **VS Code Extension интеграция** (основной use case)
92
-
93
25
  ```javascript
94
- // 📄 Полный код в docs/QUICK_START.md
95
26
  import { CodeSolverSDK } from 'solver-sdk';
96
27
 
97
- const sdk = await CodeSolverSDK.create({
98
- baseURL: 'http://localhost:3000',
99
- apiKey: 'your-api-key'
100
- });
101
-
102
- // 45ms команды VS Code - 10x ускорение!
103
- const stream = await sdk.chat.streamChat(messages, {
104
- onVSCodeCommand: async (command) => {
105
- return await vscode.commands.executeCommand(command.command, ...command.args);
106
- }
107
- });
108
- ```
109
-
110
- **📚 [Смотрите полный 5-минутный старт](docs/QUICK_START.md)**
111
-
112
- ### ✅ Быстрая инициализация (без проверки API)
113
-
114
- ```javascript
115
- const { CodeSolverSDK } = require('solver-sdk');
116
-
117
- // Быстрое создание без валидации
28
+ // Создание SDK
118
29
  const sdk = new CodeSolverSDK({
119
- baseURL: 'http://localhost:3000',
30
+ baseURL: 'https://your-api-server.com',
120
31
  apiKey: 'your-api-key',
121
- websocket: { autoConnect: false } // 🔧 Важно!
32
+ timeout: 30000
122
33
  });
123
34
 
124
- // Использование с честными ошибками
125
- try {
126
- const projects = await sdk.projects.getAllProjects();
127
- console.log('✅ Проекты:', projects);
128
- } catch (error) {
129
- console.error('❌ Честная ошибка:', error.message);
130
- // Нет fallback'ов - проблему нужно решать
131
- }
132
- ```
35
+ // Проверка здоровья API
36
+ const isHealthy = await sdk.checkHealth();
37
+ console.log('API доступен:', isHealthy);
133
38
 
134
- ### В среде ESM (Node.js)
39
+ // Создание проекта
40
+ const project = await sdk.projects.createProject({
41
+ name: 'My Project',
42
+ path: '/path/to/project',
43
+ description: 'Описание проекта'
44
+ });
135
45
 
136
- ```javascript
137
- import { CodeSolverSDK } from 'solver-sdk';
46
+ // Индексация проекта
47
+ const indexingResult = await sdk.indexing.indexProject(
48
+ '/path/to/project',
49
+ 'My Project'
50
+ );
138
51
 
139
- // Создание экземпляра SDK
140
- const sdk = new CodeSolverSDK({
141
- baseURL: 'https://localhost:3000',
142
- apiKey: 'your-api-key'
143
- });
52
+ // Ожидание завершения индексации
53
+ const finalStatus = await sdk.indexing.waitForCompletion(indexingResult.projectId);
144
54
 
145
- // Пример использования
146
- async function example() {
147
- const isHealthy = await sdk.checkHealth();
148
- console.log('Сервер доступен:', isHealthy);
149
- }
55
+ // Поиск кода
56
+ const searchResults = await sdk.search.searchCode({
57
+ projectId: project.projectId,
58
+ query: 'function calculateSum',
59
+ maxResults: 10
60
+ });
150
61
 
151
- example().catch(console.error);
62
+ // Работа с чатом
63
+ const response = await sdk.chat.chat([
64
+ { role: 'user', content: 'Объясни этот код' }
65
+ ], {
66
+ model: 'claude-3-5-sonnet-20241022',
67
+ maxTokens: 8192
68
+ });
152
69
  ```
153
70
 
154
- ### В браузере
71
+ ## 📋 API Методы
155
72
 
156
- ```html
157
- <script src="node_modules/solver-sdk/dist/umd/code-solver-sdk.min.js"></script>
158
- <script>
159
- // SDK доступен глобально как CodeSolverSDK
160
- const sdk = new CodeSolverSDK.default({
161
- baseURL: 'https://localhost:3000',
162
- apiKey: 'your-api-key'
73
+ ### 📁 Projects API
74
+ ```javascript
75
+ // Создание проекта
76
+ await sdk.projects.createProject({
77
+ name: 'Project Name',
78
+ path: '/project/path',
79
+ description: 'Description'
163
80
  });
164
81
 
165
- // Пример использования
166
- sdk.checkHealth()
167
- .then(isHealthy => console.log('Сервер доступен:', isHealthy))
168
- .catch(console.error);
169
- </script>
170
- ```
171
-
172
- ## API
173
-
174
- ### Основные компоненты
175
-
176
- - `CodeSolverSDK` - Основной класс SDK
177
- - `ReasoningApi` - API для работы с рассуждениями
178
- - `ProjectsApi` - API для работы с проектами
179
- - `SearchApi` - API для поиска кода
180
- - `AgentsApi` - API для работы с агентами
181
- - `ContextApi` - API для работы с контекстом кода
182
- - `DependenciesApi` - API для работы с зависимостями
183
- - `ChatApi` - API для работы с чатом и потоковой передачей мышления
82
+ // Получение списка проектов
83
+ await sdk.projects.getProjects();
184
84
 
185
- ### Опции SDK
186
-
187
- | Опция | Тип | Описание | Обязательна |
188
- |-------|-----|----------|-------------|
189
- | `baseURL` | string | Базовый URL API | Да |
190
- | `apiKey` | string | API ключ для авторизации | Нет |
191
- | `timeout` | number | Таймаут для HTTP запросов (мс) | Нет |
192
- | `headers` | object | Пользовательские HTTP заголовки | Нет |
193
- | `httpsAgent` | object | Опции для HTTPS агента (Node.js) | Нет |
194
- | `mode` | string | Режим работы SDK ('browser', 'node', 'auto') | Нет |
195
- | `websocket` | object | Настройки WebSocket (reconnect, timeout и др.) | Нет |
196
-
197
- ## Продвинутые функции
198
-
199
- ### Работа с проектами
85
+ // Получение информации о проекте
86
+ await sdk.projects.getProject(projectId);
87
+ ```
200
88
 
89
+ ### 🔄 Indexing API
201
90
  ```javascript
202
- // Получение списка проектов
203
- const projects = await sdk.projects.getAllProjects();
204
- console.log('Проекты:', projects);
91
+ // Индексация проекта
92
+ await sdk.indexing.indexProject('/path/to/project', 'Project Name');
205
93
 
206
- // Создание нового проекта
207
- const newProject = await sdk.projects.createProject('Мой проект', '/path/to/project');
208
- console.log('Новый проект:', newProject);
94
+ // Получение статуса индексации
95
+ await sdk.indexing.getStatus(projectId);
209
96
 
210
- // Запуск индексации
211
- await sdk.projects.indexProject(newProject.id);
97
+ // Ожидание завершения
98
+ await sdk.indexing.waitForCompletion(projectId);
212
99
  ```
213
100
 
214
- ### Поиск кода
215
-
101
+ ### 🔍 Search API
216
102
  ```javascript
217
103
  // Поиск кода
218
- const searchResults = await sdk.search.searchCode(projectId, {
219
- query: 'function example',
220
- limit: 10
221
- });
222
- console.log('Результаты поиска:', searchResults);
223
-
224
- // Семантический поиск кода
225
- const semanticResults = await sdk.search.semanticSearch(projectId, {
226
- query: 'функция для обработки HTTP запросов',
227
- limit: 10
104
+ await sdk.search.searchCode({
105
+ projectId: 'project-id',
106
+ query: 'search query',
107
+ maxResults: 20
228
108
  });
229
- console.log('Семантические результаты:', semanticResults);
230
109
  ```
231
110
 
232
- ### Работа с рассуждениями через WebSocket
233
-
111
+ ### 💬 Chat API
234
112
  ```javascript
235
- // Создание рассуждения
236
- const reasoning = await sdk.reasoning.createReasoning({
237
- projectId: projectId,
238
- query: 'Объясни, как работает этот проект'
113
+ // Обычный чат
114
+ const response = await sdk.chat.chat([
115
+ { role: 'user', content: 'Объясни этот код' }
116
+ ], {
117
+ model: 'claude-3-5-sonnet-20241022',
118
+ maxTokens: 8192
239
119
  });
240
120
 
241
- // Подключение через WebSocket
242
- const wsClient = sdk.getWebSocketClient();
243
- await wsClient.connectToReasoning(reasoning.id);
244
-
245
- // Включение механизма ping/pong для мониторинга состояния соединения
246
- wsClient.enablePingPong(30000, 3);
247
-
248
- // Обработка событий мышления
249
- wsClient.on('content_block_delta', (data) => {
250
- if (data.delta?.type === 'thinking_delta') {
251
- console.log('Фрагмент размышления:', data.delta.thinking);
252
- } else if (data.delta?.type === 'text_delta') {
253
- console.log('Фрагмент ответа:', data.delta.text);
254
- }
255
- });
121
+ // Потоковый чат
122
+ for await (const chunk of sdk.chat.streamChat(messages, options)) {
123
+ console.log(chunk.text);
124
+ }
125
+ ```
256
126
 
257
- wsClient.on('message_stop', (data) => {
258
- console.log('Завершено:', data);
259
-
260
- // Отключаем механизм ping/pong и закрываем соединение
261
- wsClient.disablePingPong();
262
- wsClient.disconnectAll();
263
- });
127
+ ### 🕸️ Dependencies API
128
+ ```javascript
129
+ // Граф зависимостей
130
+ await sdk.dependencies.getDependencyGraph(projectId);
264
131
 
265
- // Мониторинг качества соединения
266
- const diagnostics = wsClient.diagnoseConnection(WebSocketNamespace.REASONING);
267
- console.log(`Состояние соединения:`, diagnostics);
132
+ // Статистика зависимостей
133
+ await sdk.dependencies.getDependencyStatistics(projectId);
268
134
  ```
269
135
 
270
- ### API для работы с зависимостями
136
+ ## ⚙️ Конфигурация
271
137
 
272
138
  ```javascript
273
- // Получение зависимостей конкретного файла
274
- const fileDependencies = await sdk.dependencies.getFileDependencies(projectId, {
275
- filePath: 'src/app.js'
139
+ const sdk = new CodeSolverSDK({
140
+ baseURL: 'https://api.example.com', // Обязательный
141
+ apiKey: 'your-api-key', // Рекомендуется
142
+ timeout: 30000, // Таймаут запросов
143
+ headers: { // Дополнительные заголовки
144
+ 'Custom-Header': 'value'
145
+ },
146
+ http: { // HTTP настройки
147
+ timeout: 45000,
148
+ retries: 3,
149
+ retryDelay: 1000
150
+ },
151
+ debug: true // Отладочная информация
276
152
  });
153
+ ```
154
+
155
+ ## 🧪 Тестирование
277
156
 
278
- console.log('Импорты:', fileDependencies.imports);
279
- console.log('Импортируется в:', fileDependencies.importedBy);
157
+ ```bash
158
+ # Все тесты
159
+ npm test
280
160
 
281
- // Получение полного графа зависимостей проекта
282
- const dependencyGraph = await sdk.dependencies.getDependencyGraph(projectId);
161
+ # Только HTTP тесты
162
+ npm test -- --testNamePattern="HTTP"
283
163
 
284
- // Анализ графа зависимостей и поиск циклов
285
- const analysis = await sdk.dependencies.analyzeDependencyGraph(projectId);
286
- console.log('Циклические зависимости:', analysis.cycles);
164
+ # Интеграционные тесты
165
+ npm run test:integration
287
166
 
288
- // Подключение к WebSocket для зависимостей
289
- await sdk.dependencies.connectWebSocket(projectId);
290
- sdk.dependencies.on('dependency_update', (data) => {
291
- console.log('Обновление зависимостей:', data);
292
- });
167
+ # Тесты индексации
168
+ npm test -- --testPathPattern="indexing"
293
169
  ```
294
170
 
295
- ### Потоковая передача мышления
171
+ ## 📚 Примеры использования
296
172
 
297
- Версия 1.7.4 включает полную поддержку потоковой передачи мышления через Anthropic API, а также улучшенную обработку ошибок:
173
+ ### Полный цикл работы с проектом
298
174
 
299
175
  ```javascript
300
- const { CodeSolverSDK } = require('solver-sdk');
176
+ import { CodeSolverSDK } from 'solver-sdk';
301
177
 
302
- async function streamThinking() {
178
+ async function fullWorkflow() {
303
179
  const sdk = new CodeSolverSDK({
304
- baseURL: 'https://api.example.com',
305
- apiKey: 'ваш-ключ-api'
180
+ baseURL: 'http://localhost:3001',
181
+ apiKey: 'your-api-key'
306
182
  });
307
183
 
308
- // Сообщения для отправки
309
- const messages = [
310
- { role: 'user', content: 'Объясни, как работает blockchain' }
311
- ];
312
-
313
- // Опции запроса
314
- const options = {
315
- model: 'claude-3-7-sonnet-20240229',
316
- temperature: 0.7,
317
- thinking: true,
318
- authToken: 'your-auth-token' // Унифицированный параметр для аутентификации WebSocket
319
- };
320
-
321
- // Обработчик событий WebSocket
322
- const handleEvent = (eventType, data) => {
323
- switch(eventType) {
324
- case 'content_block_start':
325
- if (data.content_block && data.content_block.type === 'thinking') {
326
- console.log('Начало размышлений:');
327
- }
328
- break;
329
-
330
- case 'content_block_delta':
331
- if (data.delta && data.delta.type === 'thinking_delta') {
332
- process.stdout.write(data.delta.thinking); // Потоковый вывод размышлений
333
- } else if (data.delta && data.delta.type === 'text_delta') {
334
- process.stdout.write(data.delta.text); // Потоковый вывод итогового текста
335
- }
336
- break;
337
-
338
- case 'error':
339
- console.error('Ошибка:', data.message);
340
-
341
- // Обработка ошибки географических ограничений
342
- if (data.type === 'geo_restriction') {
343
- console.error('Необходимо включить VPN для доступа к API Anthropic из вашего региона');
344
- }
345
- break;
346
- }
347
- };
348
-
349
184
  try {
350
- // Отправляем запрос с потоковым мышлением
351
- const response = await sdk.chat.streamChatWithThinking(
352
- messages,
353
- options,
354
- handleEvent
185
+ // 1. Создаем проект
186
+ const project = await sdk.projects.createProject({
187
+ name: 'My React App',
188
+ path: '/path/to/react-app',
189
+ description: 'React приложение для анализа'
190
+ });
191
+
192
+ // 2. Запускаем индексацию
193
+ const indexing = await sdk.indexing.indexProject(
194
+ '/path/to/react-app',
195
+ 'My React App'
355
196
  );
197
+
198
+ // 3. Ждем завершения индексации
199
+ console.log('Ожидание завершения индексации...');
200
+ await sdk.indexing.waitForCompletion(indexing.projectId);
201
+
202
+ // 4. Ищем React компоненты
203
+ const components = await sdk.search.searchCode({
204
+ projectId: project.projectId,
205
+ query: 'React.Component class',
206
+ maxResults: 10
207
+ });
208
+
209
+ // 5. Анализируем зависимости
210
+ const dependencies = await sdk.dependencies.getDependencyGraph(project.projectId);
211
+
212
+ // 6. Задаем вопрос AI о коде
213
+ const aiResponse = await sdk.chat.chat([
214
+ {
215
+ role: 'user',
216
+ content: `Проанализируй найденные React компоненты: ${JSON.stringify(components)}`
217
+ }
218
+ ], {
219
+ model: 'claude-3-5-sonnet-20241022',
220
+ maxTokens: 8192
221
+ });
356
222
 
357
- console.log(`Запрос успешно отправлен. Socket ID: ${response.socketId}`);
223
+ console.log('✅ Анализ завершен');
224
+ console.log('📊 Компоненты:', components.length);
225
+ console.log('🕸️ Зависимости:', dependencies);
226
+ console.log('🤖 AI анализ:', aiResponse.content[0].text);
227
+
358
228
  } catch (error) {
359
- console.error('Ошибка:', error);
360
-
361
- // Проверка наличия ошибки географических ограничений
362
- if (error.type === 'geo_restriction') {
363
- console.error('Необходимо включить VPN для доступа к API Anthropic из вашего региона');
229
+ console.error('Ошибка:', error.message);
364
230
  }
365
231
  }
366
- }
367
-
368
- streamThinking();
369
- ```
370
-
371
- #### Поддерживаемые события WebSocket для мышления
372
-
373
- - `message_start` - начало сообщения от модели
374
- - `content_block_start` - начало блока контента (текст или thinking)
375
- - `content_block_delta` - дельта блока контента со следующими типами:
376
- - `delta.type === 'thinking_delta'` - фрагмент размышления модели
377
- - `delta.type === 'text_delta'` - фрагмент текстового ответа
378
- - `delta.type === 'input_json_delta'` - фрагмент JSON для инструментов
379
- - `delta.type === 'signature_delta'` - подпись блока мышления
380
- - `content_block_stop` - завершение блока контента
381
- - `message_delta` - дельта сообщения
382
- - `message_stop` - завершение сообщения
383
-
384
- ## Примеры
385
-
386
- В директории [`examples`](./examples) доступны примеры использования SDK:
387
-
388
- ```bash
389
- # Проверка подключения к API
390
- npm run example:check-api
391
-
392
- # Индексация проектов
393
- npm run example:indexing
394
232
 
395
- # Работа с зависимостями
396
- npm run example:dependencies
233
+ fullWorkflow();
397
234
  ```
398
235
 
399
- ## Совместимость
236
+ ## 🔧 Устранение неполадок
400
237
 
401
- SDK тщательно протестирован в различных средах и поддерживает:
402
-
403
- - **Браузеры**: Chrome 80+, Firefox 72+, Safari 14+, Edge 80+
404
- - **Node.js**: Версии 14.x и выше (как CommonJS, так и ESM)
405
- - **VS Code**: Desktop и Web версии
406
-
407
- ## Разработка и тестирование
408
-
409
- ```bash
410
- # Установка зависимостей
411
- npm install
412
-
413
- # Сборка SDK
414
- npm run build
415
-
416
- # Запуск всех тестов
417
- npm test
418
-
419
- # Тесты для рассуждений и WebSocket
420
- npm run test:reasoning:all
238
+ ### Проблемы с подключением
239
+ ```javascript
240
+ // Диагностика API
241
+ const diagnosis = await sdk.diagnoseAPI();
242
+ console.log('Диагностика:', diagnosis);
421
243
 
422
- # Запуск примеров
423
- npm run example:check-api
244
+ // Проверка здоровья конкретных эндпоинтов
245
+ if (!diagnosis.healthy) {
246
+ console.log('Проблемные эндпоинты:', diagnosis.errors);
247
+ }
424
248
  ```
425
249
 
426
- ### Локальная разработка
427
-
250
+ ### Таймауты и повторы
428
251
  ```javascript
252
+ // Увеличение таймаутов для больших проектов
429
253
  const sdk = new CodeSolverSDK({
430
- baseURL: 'https://localhost:3000',
431
- apiKey: 'test-api-key',
432
- httpsAgent: new https.Agent({
433
- rejectUnauthorized: false // Для самоподписанных сертификатов
434
- }),
435
- websocket: {
436
- reconnect: true,
437
- rejectUnauthorized: false
254
+ baseURL: 'https://api.example.com',
255
+ timeout: 120000, // 2 минуты
256
+ http: {
257
+ timeout: 90000,
258
+ retries: 5,
259
+ retryDelay: 2000
438
260
  }
439
261
  });
440
262
  ```
441
263
 
442
- ## Документация
264
+ ## 📝 Changelog v3.0
265
+
266
+ ### ✅ Добавлено
267
+ - Полная поддержка HTTP-only API
268
+ - Новый `IndexingClient` для простой индексации
269
+ - Улучшенная обработка ошибок
270
+ - Подробная диагностика API
271
+ - Потоковый чат через HTTP
443
272
 
444
- Подробная документация доступна в директории [`docs`](./docs):
273
+ ### Удалено
274
+ - Поддержка WebSocket (полностью удалена)
275
+ - `socket.io-client` зависимость
276
+ - WebSocket события и обработчики
277
+ - Сложные WebSocket конфигурации
445
278
 
446
- - [Начало работы](./docs/GETTING_STARTED.md)
447
- - [Работа с проектами](./docs/PROJECTS.md)
448
- - [Индексация проектов](./docs/INDEXING.md)
449
- - [Потоковая передача мышления](./docs/THINKING_ARCHITECTURE.md)
450
- - [Работа с регионами](./docs/ADVANCED.md)
451
- - [Полное API](./docs/API.md)
279
+ ### 🔄 Изменено
280
+ - Все API методы теперь работают через HTTP
281
+ - Упрощенная конфигурация SDK
282
+ - Более быстрая инициализация
283
+ - Лучшая совместимость с разными средами
452
284
 
453
- ## Лицензия
285
+ ## 📄 Лицензия
454
286
 
455
- [MIT](./LICENSE)
287
+ MIT License