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
@@ -1,492 +0,0 @@
1
- import { WebSocketEvents as WsEvents, ReasoningEventNames } from '../constants/websocket-events.constants';
2
- import { WebSocketNamespace } from '../constants/websocket-namespaces.constants.js';
3
- import { createWebSocketLogger } from './logger.js';
4
- import { BaseWebSocketClient } from '../ws/base-ws-client.js';
5
- // Реэкспортируем WebSocketNamespace для других модулей
6
- export { WebSocketNamespace } from '../constants/websocket-namespaces.constants.js';
7
- // Дополнительные события, которые могут отсутствовать в основном перечислении
8
- const CUSTOM_EVENTS = {
9
- GET_REASONING_STATUS: 'get_reasoning_status'
10
- };
11
- /**
12
- * Специализированный WebSocket клиент для пространства имен reasoning
13
- */
14
- class ReasoningWsClient extends BaseWebSocketClient {
15
- /**
16
- * Создает новый WebSocket клиент для рассуждений
17
- * @param {string} baseURL Базовый URL API
18
- * @param {BaseWebSocketClientOptions} options Опции клиента
19
- */
20
- constructor(baseURL, options = {}) {
21
- super(WebSocketNamespace.DEFAULT, baseURL, options); // ИСПРАВЛЕНО: DEFAULT вместо REASONING
22
- /** Активная сессия рассуждения */
23
- this.activeReasoningId = null;
24
- }
25
- /**
26
- * Подключается к серверу WebSocket с указанным ID рассуждения
27
- * @param {string} reasoningId ID рассуждения
28
- * @param {object} options Дополнительные опции
29
- * @returns {Promise<boolean>} Успешность подключения
30
- */
31
- async connectWithReasoning(reasoningId, options = {}) {
32
- if (reasoningId) {
33
- this.activeReasoningId = reasoningId;
34
- }
35
- return super.connect({
36
- reasoningId: this.activeReasoningId,
37
- ...options
38
- });
39
- }
40
- /**
41
- * Присоединяется к сессии рассуждения
42
- * @param {string} reasoningId ID рассуждения
43
- * @param {boolean} setActive Установить ли как активную сессию
44
- * @returns {Promise<boolean>} Успешность операции
45
- */
46
- async joinReasoning(reasoningId, setActive = true) {
47
- if (!this.isConnected()) {
48
- this.logger.warn(`Попытка присоединения к рассуждению ${reasoningId}, но клиент не подключен`);
49
- return false;
50
- }
51
- try {
52
- // Отправляем запрос на присоединение
53
- const result = await this.emitWithAck(WsEvents.JOIN_REASONING, { reasoningId });
54
- if (result.success && setActive) {
55
- this.activeReasoningId = reasoningId;
56
- }
57
- return result.success;
58
- }
59
- catch (error) {
60
- this.logger.error(`Ошибка при присоединении к рассуждению ${reasoningId}`, error);
61
- return false;
62
- }
63
- }
64
- /**
65
- * Подключает к сессии рассуждения и устанавливает обработчик для thinking
66
- * @param {string} reasoningId ID рассуждения
67
- * @param {function} thinkingHandler Обработчик событий thinking
68
- * @returns {Promise<string>} ID рассуждения
69
- */
70
- async connectToThinkingSession(reasoningId, thinkingHandler) {
71
- // Сначала подключаемся к сессии рассуждения
72
- const connected = await this.connectWithReasoning(reasoningId, { autoJoin: true });
73
- if (!connected) {
74
- throw new Error(`Не удалось подключиться к рассуждению ${reasoningId}`);
75
- }
76
- // Затем подписываемся на мышление, если указан обработчик
77
- if (thinkingHandler) {
78
- this.subscribeToThinking(thinkingHandler);
79
- }
80
- return reasoningId;
81
- }
82
- /**
83
- * Подписаться на события мышления
84
- * @param callback Функция обратного вызова для обработки событий мышления
85
- */
86
- subscribeToThinking(callback) {
87
- this.on(ReasoningEventNames.THINKING, callback);
88
- }
89
- /**
90
- * Отписаться от событий мышления
91
- * @param callback Функция обратного вызова для обработки событий мышления
92
- */
93
- unsubscribeFromThinking(callback) {
94
- this.off(ReasoningEventNames.THINKING, callback);
95
- }
96
- /**
97
- * Проверяет статус рассуждения
98
- * @param {string} reasoningId ID рассуждения
99
- * @returns {Promise<object>} Объект с информацией о статусе
100
- */
101
- async getReasoningStatus(reasoningId) {
102
- const id = reasoningId || this.activeReasoningId;
103
- if (!id) {
104
- return { exists: false, isActive: false };
105
- }
106
- try {
107
- if (!this.isConnected()) {
108
- await this.connect();
109
- }
110
- const result = await this.emitWithAck(CUSTOM_EVENTS.GET_REASONING_STATUS, { reasoningId: id });
111
- return result;
112
- }
113
- catch (error) {
114
- this.logger.error(`Ошибка при получении статуса рассуждения ${id}`, error);
115
- return { exists: false, isActive: false };
116
- }
117
- }
118
- /**
119
- * Проверяет существование рассуждения
120
- * @param {string} reasoningId ID рассуждения
121
- * @returns {Promise<boolean>} true, если рассуждение существует
122
- */
123
- async checkReasoningExists(reasoningId) {
124
- try {
125
- const { exists } = await this.getReasoningStatus(reasoningId);
126
- return exists;
127
- }
128
- catch (error) {
129
- return false;
130
- }
131
- }
132
- /**
133
- * Получает ID активной сессии рассуждения
134
- * @returns {string | null} ID активной сессии или null
135
- */
136
- getActiveReasoningId() {
137
- return this.activeReasoningId;
138
- }
139
- }
140
- /**
141
- * Специализированный WebSocket клиент для пространства имен indexing
142
- */
143
- class IndexingWsClient extends BaseWebSocketClient {
144
- /**
145
- * Создает новый WebSocket клиент для индексации
146
- * @param {string} baseURL Базовый URL API
147
- * @param {BaseWebSocketClientOptions} options Опции клиента
148
- */
149
- constructor(baseURL, options = {}) {
150
- super(WebSocketNamespace.INDEXING, baseURL, options);
151
- /** Активный проект */
152
- this.activeProjectId = null;
153
- }
154
- /**
155
- * Подключается к серверу WebSocket с указанным ID проекта
156
- * @param {string} projectId ID проекта
157
- * @returns {Promise<boolean>} Успешность подключения
158
- */
159
- async connectWithProject(projectId) {
160
- if (projectId) {
161
- this.activeProjectId = projectId;
162
- }
163
- return super.connect({
164
- projectId: this.activeProjectId
165
- });
166
- }
167
- /**
168
- * Получает ID активного проекта
169
- * @returns {string | null} ID активного проекта или null
170
- */
171
- getActiveProjectId() {
172
- return this.activeProjectId;
173
- }
174
- }
175
- /**
176
- * Специализированный WebSocket клиент для пространства имен dependencies
177
- */
178
- class DependenciesWsClient extends BaseWebSocketClient {
179
- /**
180
- * Создает новый WebSocket клиент для зависимостей
181
- * @param {string} baseURL Базовый URL API
182
- * @param {BaseWebSocketClientOptions} options Опции клиента
183
- */
184
- constructor(baseURL, options = {}) {
185
- super(WebSocketNamespace.DEPENDENCIES, baseURL, options);
186
- }
187
- /**
188
- * Подключается к серверу WebSocket с указанным ID проекта
189
- * @param {string} projectId ID проекта
190
- * @returns {Promise<boolean>} Успешность подключения
191
- */
192
- async connectWithProject(projectId) {
193
- return super.connect({ projectId });
194
- }
195
- }
196
- /**
197
- * Специализированный WebSocket клиент для пространства имен notifications
198
- */
199
- class NotificationsWsClient extends BaseWebSocketClient {
200
- /**
201
- * Создает новый WebSocket клиент для уведомлений
202
- * @param {string} baseURL Базовый URL API
203
- * @param {BaseWebSocketClientOptions} options Опции клиента
204
- */
205
- constructor(baseURL, options = {}) {
206
- super(WebSocketNamespace.DEFAULT, baseURL, options);
207
- }
208
- }
209
- /**
210
- * WebSocket клиент для работы с Code Solver API (фасад)
211
- */
212
- export class CodeSolverWebSocketClient {
213
- /**
214
- * Создает новый WebSocket клиент для Code Solver API
215
- * @param {string} baseURL Базовый URL API
216
- * @param {CodeSolverWebSocketOptions} [options] Опции клиента
217
- */
218
- constructor(baseURL, options = {}) {
219
- this.baseURL = baseURL.replace(/^http/, 'ws');
220
- this.options = {
221
- ...options,
222
- headers: {
223
- ...(options.headers || {}),
224
- ...(options.apiKey ? { 'Authorization': `Bearer ${options.apiKey}` } : {})
225
- }
226
- };
227
- // Создаем логгер
228
- this.logger = createWebSocketLogger('CodeSolverWebSocket');
229
- // Трансформируем опции для специализированных клиентов
230
- const clientOptions = {
231
- ...this.options,
232
- enableAutoPing: options.enableAutoPing !== false,
233
- enableSessionPersistence: options.enableSessionPersistence !== false,
234
- // Преобразуем функцию логгера в экземпляр Logger, если передана функция
235
- logger: typeof options.logger === 'function' ?
236
- createWebSocketLogger('CodeSolverWebSocket', options.logger) :
237
- options.logger
238
- };
239
- // Создаем специализированные клиенты
240
- this.reasoningClient = new ReasoningWsClient(this.baseURL, { ...clientOptions, logger: this.logger.withPrefix('Reasoning') });
241
- this.indexingClient = new IndexingWsClient(this.baseURL, { ...clientOptions, logger: this.logger.withPrefix('Indexing') });
242
- this.dependenciesClient = new DependenciesWsClient(this.baseURL, { ...clientOptions, logger: this.logger.withPrefix('Dependencies') });
243
- this.notificationsClient = new NotificationsWsClient(this.baseURL, { ...clientOptions, logger: this.logger.withPrefix('Notifications') });
244
- }
245
- /**
246
- * Подключается к пространству имен рассуждений
247
- * @param {string} reasoningId ID рассуждения (опционально)
248
- * @param {object} options Дополнительные настройки подключения
249
- * @returns {Promise<boolean>} Результат подключения
250
- */
251
- async connectToReasoning(reasoningId, options = {}) {
252
- return this.reasoningClient.connectWithReasoning(reasoningId, options);
253
- }
254
- /**
255
- * Подключается к пространству имен индексации
256
- * @param {string} projectId ID проекта (опционально)
257
- * @returns {Promise<boolean>} Результат подключения
258
- */
259
- async connectToIndexing(projectId) {
260
- return this.indexingClient.connectWithProject(projectId);
261
- }
262
- /**
263
- * Подключается к уведомлениям
264
- * @returns {Promise<boolean>} Результат подключения
265
- */
266
- async connectToNotifications() {
267
- return this.notificationsClient.connect({});
268
- }
269
- /**
270
- * Подключается к пространству имен dependencies
271
- * @param {string} projectId ID проекта (опционально)
272
- * @returns {Promise<boolean>} Результат подключения
273
- */
274
- async connectToDependencies(projectId) {
275
- return this.dependenciesClient.connectWithProject(projectId);
276
- }
277
- /**
278
- * Отключается от пространства имен
279
- * @param {WebSocketNamespace} namespace Пространство имен
280
- */
281
- disconnect(namespace) {
282
- switch (namespace) {
283
- // case WebSocketNamespace.REASONING: // УДАЛЕНО - неработающий namespace
284
- // this.reasoningClient.disconnect();
285
- // break;
286
- case WebSocketNamespace.INDEXING:
287
- this.indexingClient.disconnect();
288
- break;
289
- case WebSocketNamespace.DEPENDENCIES:
290
- this.dependenciesClient.disconnect();
291
- break;
292
- case WebSocketNamespace.DEFAULT:
293
- this.notificationsClient.disconnect();
294
- break;
295
- }
296
- }
297
- /**
298
- * Отключается от всех пространств имен
299
- */
300
- disconnectAll() {
301
- this.reasoningClient.disconnect();
302
- this.indexingClient.disconnect();
303
- this.dependenciesClient.disconnect();
304
- this.notificationsClient.disconnect();
305
- }
306
- /**
307
- * Проверяет, подключен ли клиент к указанному пространству имен
308
- * @param {WebSocketNamespace} namespace Пространство имен
309
- * @returns {boolean} Статус подключения
310
- */
311
- isConnected(namespace) {
312
- switch (namespace) {
313
- // case WebSocketNamespace.REASONING: // УДАЛЕНО - неработающий namespace
314
- // return this.reasoningClient.isConnected();
315
- case WebSocketNamespace.INDEXING:
316
- return this.indexingClient.isConnected();
317
- case WebSocketNamespace.DEPENDENCIES:
318
- return this.dependenciesClient.isConnected();
319
- case WebSocketNamespace.DEFAULT:
320
- return this.notificationsClient.isConnected();
321
- default:
322
- return false;
323
- }
324
- }
325
- /**
326
- * Проверяет, подключен ли клиент к пространству имен рассуждений
327
- * @returns {boolean} Статус подключения
328
- */
329
- isConnectedToReasoning() {
330
- return this.reasoningClient.isConnected();
331
- }
332
- /**
333
- * Проверяет, подключен ли клиент к пространству имен индексации
334
- * @returns {boolean} Статус подключения
335
- */
336
- isConnectedToIndexing() {
337
- return this.indexingClient.isConnected();
338
- }
339
- /**
340
- * Проверяет, подключен ли клиент к пространству имен уведомлений
341
- * @returns {boolean} Статус подключения
342
- */
343
- isConnectedToNotifications() {
344
- return this.notificationsClient.isConnected();
345
- }
346
- /**
347
- * Получает ID активной сессии рассуждения
348
- * @returns {string | null} ID активной сессии рассуждения или null
349
- */
350
- getActiveReasoningId() {
351
- return this.reasoningClient.getActiveReasoningId();
352
- }
353
- /**
354
- * Получает ID активного проекта
355
- * @returns {string | null} ID активного проекта или null
356
- */
357
- getActiveProjectId() {
358
- return this.indexingClient.getActiveProjectId();
359
- }
360
- /**
361
- * Отправляет сообщение в пространство имен
362
- * @param {WebSocketNamespace} namespace Пространство имен
363
- * @param {string} eventType Тип события
364
- * @param {any} [data] Данные сообщения
365
- * @returns {boolean} Успешно ли отправлено сообщение
366
- */
367
- send(namespace, eventType, data) {
368
- switch (namespace) {
369
- // case WebSocketNamespace.REASONING: // УДАЛЕНО - неработающий namespace
370
- // return this.reasoningClient.send(eventType, data);
371
- case WebSocketNamespace.INDEXING:
372
- return this.indexingClient.send(eventType, data);
373
- case WebSocketNamespace.DEPENDENCIES:
374
- return this.dependenciesClient.send(eventType, data);
375
- case WebSocketNamespace.DEFAULT:
376
- return this.notificationsClient.send(eventType, data);
377
- default:
378
- throw new Error(`Неизвестное пространство имен ${namespace}`);
379
- }
380
- }
381
- /**
382
- * Отправляет сообщение в активную сессию рассуждения
383
- * @param {string} eventType Тип события
384
- * @param {any} [data] Данные сообщения
385
- * @returns {boolean} Успешно ли отправлено сообщение
386
- */
387
- sendToReasoning(eventType, data) {
388
- return this.reasoningClient.send(eventType, data);
389
- }
390
- /**
391
- * Отправляет сообщение в активную сессию индексации
392
- * @param {string} eventType Тип события
393
- * @param {any} [data] Данные сообщения
394
- * @returns {boolean} Успешно ли отправлено сообщение
395
- */
396
- sendToIndexing(eventType, data) {
397
- return this.indexingClient.send(eventType, data);
398
- }
399
- /**
400
- * Отправляет сообщение в уведомления
401
- * @param {string} eventType Тип события
402
- * @param {any} [data] Данные сообщения
403
- * @returns {boolean} Успешно ли отправлено сообщение
404
- */
405
- sendToNotifications(eventType, data) {
406
- return this.notificationsClient.send(eventType, data);
407
- }
408
- /**
409
- * Добавляет обработчик события для пространства имен
410
- * @param {string} eventType Тип события
411
- * @param {Function} handler Обработчик события
412
- * @param {WebSocketNamespace} [namespace] Пространство имен (если не указано, добавляется ко всем активным)
413
- */
414
- on(eventType, handler, namespace) {
415
- if (namespace) {
416
- // Если указано пространство имен, добавляем обработчик только к нему
417
- switch (namespace) {
418
- // case WebSocketNamespace.REASONING: // УДАЛЕНО - неработающий namespace
419
- // this.reasoningClient.on(eventType, handler);
420
- // break;
421
- case WebSocketNamespace.INDEXING:
422
- this.indexingClient.on(eventType, handler);
423
- break;
424
- case WebSocketNamespace.DEPENDENCIES:
425
- this.dependenciesClient.on(eventType, handler);
426
- break;
427
- case WebSocketNamespace.DEFAULT:
428
- this.notificationsClient.on(eventType, handler);
429
- break;
430
- }
431
- }
432
- else {
433
- // Если пространство имен не указано, добавляем обработчик ко всем активным
434
- this.reasoningClient.on(eventType, handler);
435
- this.indexingClient.on(eventType, handler);
436
- this.dependenciesClient.on(eventType, handler);
437
- this.notificationsClient.on(eventType, handler);
438
- }
439
- }
440
- /**
441
- * Удаляет обработчик события для пространства имен
442
- * @param {string} eventType Тип события
443
- * @param {Function} [handler] Обработчик события (если не указан, удаляются все обработчики)
444
- * @param {WebSocketNamespace} [namespace] Пространство имен (если не указано, удаляется из всех активных)
445
- */
446
- off(eventType, handler, namespace) {
447
- if (namespace) {
448
- // Если указано пространство имен, удаляем обработчик только из него
449
- switch (namespace) {
450
- // case WebSocketNamespace.REASONING: // УДАЛЕНО - неработающий namespace
451
- // this.reasoningClient.off(eventType, handler);
452
- // break;
453
- case WebSocketNamespace.INDEXING:
454
- this.indexingClient.off(eventType, handler);
455
- break;
456
- case WebSocketNamespace.DEPENDENCIES:
457
- this.dependenciesClient.off(eventType, handler);
458
- break;
459
- case WebSocketNamespace.DEFAULT:
460
- this.notificationsClient.off(eventType, handler);
461
- break;
462
- }
463
- }
464
- else {
465
- // Если пространство имен не указано, удаляем обработчик из всех активных
466
- this.reasoningClient.off(eventType, handler);
467
- this.indexingClient.off(eventType, handler);
468
- this.dependenciesClient.off(eventType, handler);
469
- this.notificationsClient.off(eventType, handler);
470
- }
471
- }
472
- /**
473
- * Получает ID сокета для указанного пространства имен
474
- * @param {WebSocketNamespace} [namespace=WebSocketNamespace.REASONING] Пространство имен
475
- * @returns {string|null} ID сокета или null, если соединение не установлено
476
- */
477
- getSocketId(namespace = WebSocketNamespace.DEFAULT) {
478
- switch (namespace) {
479
- // case WebSocketNamespace.REASONING: // УДАЛЕНО - неработающий namespace
480
- // return this.reasoningClient.getSocketId();
481
- case WebSocketNamespace.INDEXING:
482
- return this.indexingClient.getSocketId();
483
- case WebSocketNamespace.DEPENDENCIES:
484
- return this.dependenciesClient.getSocketId();
485
- case WebSocketNamespace.DEFAULT:
486
- return this.notificationsClient.getSocketId();
487
- default:
488
- return null;
489
- }
490
- }
491
- }
492
- //# sourceMappingURL=code-solver-websocket-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-solver-websocket-client.js","sourceRoot":"","sources":["../../../src/utils/code-solver-websocket-client.ts"],"names":[],"mappings":"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"}
@@ -1,129 +0,0 @@
1
- import { createWebSocketLogger } from './logger.js';
2
- /**
3
- * Класс для управления состоянием подключений
4
- */
5
- export class ConnectionStateManager {
6
- /**
7
- * Создает новый менеджер состояния подключений
8
- * @param {ConnectionStateManagerOptions} options Опции менеджера состояния подключений
9
- */
10
- constructor(options = {}) {
11
- /** Хранилище состояний подключений */
12
- this.states = new Map();
13
- this.reconnectStrategy = options.reconnectStrategy || 'exponential';
14
- this.retryDelay = options.retryDelay || 1000;
15
- this.maxRetryDelay = options.maxRetryDelay || 30000;
16
- this.logger = options.logger || createWebSocketLogger('ConnectionStateManager');
17
- }
18
- /**
19
- * Получает состояние подключения для указанного пространства имен
20
- * @param {WebSocketNamespace} namespace Пространство имен
21
- * @returns {ConnectionState} Состояние подключения
22
- */
23
- getState(namespace) {
24
- if (!this.states.has(namespace)) {
25
- // Инициализируем состояние по умолчанию
26
- this.states.set(namespace, {
27
- lastConnectTime: 0,
28
- reconnectAttempts: 0,
29
- connected: false,
30
- reconnecting: false
31
- });
32
- }
33
- return this.states.get(namespace);
34
- }
35
- /**
36
- * Устанавливает состояние подключения для указанного пространства имен
37
- * @param {WebSocketNamespace} namespace Пространство имен
38
- * @param {boolean} connected Состояние подключения
39
- * @param {boolean} reconnecting Состояние переподключения
40
- */
41
- setConnectionState(namespace, connected, reconnecting = false) {
42
- const state = this.getState(namespace);
43
- state.connected = connected;
44
- state.reconnecting = reconnecting;
45
- if (connected) {
46
- state.lastConnectTime = Date.now();
47
- // Сбрасываем счетчик попыток переподключения, если успешно подключились
48
- if (!reconnecting) {
49
- state.reconnectAttempts = 0;
50
- }
51
- }
52
- this.states.set(namespace, state);
53
- this.logger.debug(`Обновлено состояние подключения для ${namespace}`, {
54
- connected,
55
- reconnecting,
56
- attempts: state.reconnectAttempts,
57
- lastConnect: state.lastConnectTime
58
- });
59
- }
60
- /**
61
- * Увеличивает счетчик попыток переподключения для указанного пространства имен
62
- * @param {WebSocketNamespace} namespace Пространство имен
63
- * @returns {number} Новое количество попыток
64
- */
65
- incrementReconnectAttempts(namespace) {
66
- const state = this.getState(namespace);
67
- state.reconnectAttempts++;
68
- state.reconnecting = true;
69
- this.states.set(namespace, state);
70
- this.logger.debug(`Увеличен счетчик попыток переподключения для ${namespace}`, {
71
- attempts: state.reconnectAttempts
72
- });
73
- return state.reconnectAttempts;
74
- }
75
- /**
76
- * Рассчитывает задержку для переподключения на основе количества попыток и стратегии
77
- * @param {WebSocketNamespace} namespace Пространство имен
78
- * @returns {number} Задержка в миллисекундах
79
- */
80
- calculateReconnectDelay(namespace) {
81
- const state = this.getState(namespace);
82
- const attempts = state.reconnectAttempts;
83
- if (this.reconnectStrategy === 'exponential') {
84
- // Экспоненциальный рост с фактором 1.5
85
- const calculatedDelay = Math.min(this.retryDelay * Math.pow(1.5, attempts), this.maxRetryDelay);
86
- // Добавляем случайный фактор (jitter) для предотвращения штормов переподключений
87
- return calculatedDelay * (0.8 + Math.random() * 0.4);
88
- }
89
- else {
90
- // Линейный рост
91
- return Math.min(this.retryDelay * (attempts + 1), this.maxRetryDelay);
92
- }
93
- }
94
- /**
95
- * Сбрасывает счетчик попыток переподключения для указанного пространства имен
96
- * @param {WebSocketNamespace} namespace Пространство имен
97
- */
98
- resetReconnectAttempts(namespace) {
99
- const state = this.getState(namespace);
100
- state.reconnectAttempts = 0;
101
- state.reconnecting = false;
102
- this.states.set(namespace, state);
103
- this.logger.debug(`Сброшен счетчик попыток переподключения для ${namespace}`);
104
- }
105
- /**
106
- * Регистрирует успешное подключение
107
- * @param {WebSocketNamespace} namespace Пространство имен
108
- */
109
- registerSuccessfulConnection(namespace) {
110
- this.setConnectionState(namespace, true, false);
111
- this.resetReconnectAttempts(namespace);
112
- }
113
- /**
114
- * Регистрирует отключение
115
- * @param {WebSocketNamespace} namespace Пространство имен
116
- */
117
- registerDisconnection(namespace) {
118
- this.setConnectionState(namespace, false, false);
119
- }
120
- /**
121
- * Регистрирует начало процесса переподключения
122
- * @param {WebSocketNamespace} namespace Пространство имен
123
- */
124
- registerReconnecting(namespace) {
125
- this.setConnectionState(namespace, false, true);
126
- this.incrementReconnectAttempts(namespace);
127
- }
128
- }
129
- //# sourceMappingURL=connection-state-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection-state-manager.js","sourceRoot":"","sources":["../../../src/utils/connection-state-manager.ts"],"names":[],"mappings":"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"}