solver-sdk 2.8.0 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/README.md +327 -360
  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 +67 -295
  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 +67 -295
  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 +50 -127
  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 +0,0 @@
1
- {"version":3,"file":"websocket-client.js","sourceRoot":"","sources":["../../../src/utils/websocket-client.ts"],"names":[],"mappings":"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"}
@@ -1,276 +0,0 @@
1
- import { WebSocketClient } from '../utils/websocket-client.js';
2
- import { WebSocketNamespace } from '../constants/websocket-namespaces.constants.js';
3
- import { WebSocketEvents as WsEvents } from '../constants/websocket-events.constants.js';
4
- import { createWebSocketLogger } from '../utils/logger.js';
5
- import { SessionManager } from '../utils/session-manager.js';
6
- import { SimpleConnectionMonitor } from '../utils/simple-connection-monitor.js';
7
- import { ConnectionStateManager } from '../utils/connection-state-manager.js';
8
- /**
9
- * Базовый абстрактный класс для всех WebSocket клиентов
10
- */
11
- export class BaseWebSocketClient {
12
- /**
13
- * Создает новый базовый WebSocket клиент
14
- * @param {WebSocketNamespace} namespace Пространство имен WebSocket
15
- * @param {string} baseURL Базовый URL API
16
- * @param {BaseWebSocketClientOptions} options Опции клиента
17
- */
18
- constructor(namespace, baseURL, options = {}) {
19
- /** WebSocket клиент */
20
- this.client = null;
21
- this.namespace = namespace;
22
- this.baseURL = baseURL.replace(/^http/, 'ws');
23
- // Добавляем заголовок авторизации, если задан API ключ
24
- this.options = {
25
- ...options,
26
- headers: {
27
- ...(options.headers || {}),
28
- ...(options.apiKey ? { 'Authorization': `Bearer ${options.apiKey}` } : {})
29
- }
30
- };
31
- // Инициализируем логгер
32
- this.logger = typeof options.logger === 'function'
33
- ? createWebSocketLogger(`WebSocket:${namespace}`, options.logger)
34
- : (options.logger || createWebSocketLogger(`WebSocket:${namespace}`));
35
- // Инициализируем менеджеры
36
- this.sessionManager = new SessionManager({
37
- enableSessionPersistence: options.enableSessionPersistence,
38
- logger: this.logger.withPrefix('SessionManager')
39
- });
40
- this.connectionMonitor = new SimpleConnectionMonitor();
41
- this.connectionStateManager = new ConnectionStateManager({
42
- reconnectStrategy: options.reconnectStrategy === 'fibonacci' ? 'exponential' : options.reconnectStrategy,
43
- retryDelay: options.retryDelay,
44
- maxRetryDelay: options.maxRetryDelay,
45
- logger: this.logger.withPrefix('ConnectionStateManager')
46
- });
47
- }
48
- /**
49
- * Подключается к серверу WebSocket
50
- * @param {Record<string, any>} [params={}] Дополнительные параметры для подключения
51
- * @returns {Promise<boolean>} Успешность подключения
52
- */
53
- async connect(params = {}) {
54
- try {
55
- // Если клиент уже существует, проверяем его состояние
56
- if (this.client) {
57
- if (this.client.isConnected()) {
58
- this.logger.debug(`Уже подключен к ${this.namespace}`);
59
- return true;
60
- }
61
- else {
62
- // Закрываем существующее соединение
63
- this.client.close();
64
- this.client = null;
65
- }
66
- }
67
- // Формируем URL для подключения
68
- const url = this.buildConnectionUrl(params);
69
- this.logger.debug(`Подключение к ${url}`, {
70
- namespace: String(this.namespace),
71
- params: Object.keys(params)
72
- });
73
- // Создаем новый WebSocket клиент
74
- this.client = new WebSocketClient(url, {
75
- ...this.options,
76
- namespace: String(this.namespace),
77
- // Преобразуем объект Logger в функцию логирования для WebSocketClient
78
- logger: (level, message, data) => {
79
- if (level === 'error')
80
- this.logger.error(message, data);
81
- else if (level === 'warn')
82
- this.logger.warn(message, data);
83
- else if (level === 'info')
84
- this.logger.info(message, data);
85
- else
86
- this.logger.debug(message, data);
87
- }
88
- });
89
- // Устанавливаем обработчики событий
90
- this.setupEventHandlers();
91
- // Подключаемся к серверу
92
- await this.client.connect();
93
- // Обновляем состояние подключения
94
- this.connectionStateManager.registerSuccessfulConnection(this.namespace);
95
- // Запускаем мониторинг соединения, если настроено
96
- if (this.options.enableAutoPing !== false) {
97
- this.connectionMonitor.startMonitoring(this.namespace, this.client);
98
- }
99
- return true;
100
- }
101
- catch (error) {
102
- this.logger.error(`Ошибка при подключении к ${this.namespace}`, error);
103
- // Обновляем состояние подключения
104
- this.connectionStateManager.registerDisconnection(this.namespace);
105
- return false;
106
- }
107
- }
108
- /**
109
- * Формирует URL для подключения
110
- * @param {Record<string, any>} params Параметры для подключения
111
- * @returns {string} URL для подключения
112
- */
113
- buildConnectionUrl(params) {
114
- let baseUrl;
115
- let namespaceStr = '';
116
- // Добавляем namespace в URL путь (стандартный подход Socket.IO)
117
- if (this.namespace !== WebSocketNamespace.DEFAULT) {
118
- namespaceStr = String(this.namespace);
119
- if (!namespaceStr.startsWith('/')) {
120
- namespaceStr = '/' + namespaceStr;
121
- }
122
- }
123
- // Формируем правильный URL для Socket.IO
124
- if (this.baseURL.endsWith('/socket.io') || this.baseURL.endsWith('/socket.io/')) {
125
- // Для случая когда URL заканчивается на /socket.io, убираем слеш
126
- const cleanBaseUrl = this.baseURL.endsWith('/')
127
- ? this.baseURL.slice(0, -1)
128
- : this.baseURL;
129
- // Добавляем namespace к URL
130
- baseUrl = cleanBaseUrl + namespaceStr;
131
- }
132
- else {
133
- // Для случая когда URL не содержит /socket.io
134
- baseUrl = this.baseURL + namespaceStr;
135
- }
136
- // Создаем URL объект с параметрами
137
- const url = new URL(baseUrl);
138
- // Добавляем обязательные параметры для Socket.IO
139
- url.searchParams.append('EIO', '4');
140
- url.searchParams.append('transport', 'websocket');
141
- // Добавляем параметры к URL
142
- Object.entries(params).forEach(([key, value]) => {
143
- if (value !== undefined) {
144
- url.searchParams.append(key, String(value));
145
- }
146
- });
147
- return url.toString();
148
- }
149
- /**
150
- * Устанавливает обработчики событий для WebSocket клиента
151
- */
152
- setupEventHandlers() {
153
- if (!this.client)
154
- return;
155
- // Добавляем обработчик для успешного подключения
156
- this.client.on('open', () => {
157
- this.logger.debug(`Подключение к ${this.namespace} установлено`, {
158
- socketId: this.client?.getSocketId()
159
- });
160
- // Отправляем сообщение аутентификации, если задан API ключ
161
- if (this.options.apiKey) {
162
- this.authenticate();
163
- }
164
- });
165
- // Логирование ошибок
166
- this.client.on('error', (error) => {
167
- this.logger.error(`Ошибка соединения с ${this.namespace}`, error);
168
- });
169
- // Логирование разъединений
170
- this.client.on('close', (event) => {
171
- this.logger.debug(`Соединение с ${this.namespace} закрыто: ${event.code || 'нет кода'}, ${event.reason || 'Причина не указана'}`);
172
- // Обновляем состояние подключения
173
- this.connectionStateManager.registerDisconnection(this.namespace);
174
- // Останавливаем мониторинг соединения
175
- this.connectionMonitor.stopMonitoring(this.namespace);
176
- });
177
- }
178
- /**
179
- * Отправляет аутентификационные данные на сервер
180
- */
181
- authenticate() {
182
- if (!this.client || !this.options.apiKey)
183
- return;
184
- try {
185
- this.logger.debug(`Отправка аутентификации для ${this.namespace}`);
186
- // Отправляем сообщение аутентификации
187
- this.send(WsEvents.AUTHENTICATE, {
188
- token: this.options.apiKey
189
- });
190
- }
191
- catch (error) {
192
- this.logger.error(`Ошибка при отправке аутентификации: ${error instanceof Error ? error.message : String(error)}`);
193
- }
194
- }
195
- /**
196
- * Отключается от сервера WebSocket
197
- */
198
- disconnect() {
199
- // Останавливаем мониторинг соединения
200
- this.connectionMonitor.stopMonitoring(this.namespace);
201
- // Закрываем соединение
202
- if (this.client) {
203
- this.client.close();
204
- this.client = null;
205
- }
206
- // Обновляем состояние подключения
207
- this.connectionStateManager.registerDisconnection(this.namespace);
208
- this.logger.debug(`Отключено от ${this.namespace}`);
209
- }
210
- /**
211
- * Проверяет, подключен ли клиент к серверу
212
- * @returns {boolean} true, если клиент подключен
213
- */
214
- isConnected() {
215
- return !!this.client && this.client.isConnected();
216
- }
217
- /**
218
- * Получает ID сокета
219
- * @returns {string | null} ID сокета или null, если не подключен
220
- */
221
- getSocketId() {
222
- return this.client ? this.client.getSocketId() : null;
223
- }
224
- /**
225
- * Отправляет событие на сервер
226
- * @param {string} eventType Тип события
227
- * @param {any} [data] Данные события
228
- * @returns {boolean} Успешность отправки
229
- */
230
- send(eventType, data) {
231
- if (!this.client) {
232
- this.logger.warn(`Попытка отправить событие ${eventType}, но клиент не подключен`);
233
- return false;
234
- }
235
- return this.client.send({
236
- event: eventType,
237
- data
238
- });
239
- }
240
- /**
241
- * Отправляет событие и ожидает ответа
242
- * @param {string} eventType Тип события
243
- * @param {any} data Данные события
244
- * @param {number} [timeout=5000] Таймаут ожидания ответа в миллисекундах
245
- * @returns {Promise<any>} Ответ сервера
246
- */
247
- async emitWithAck(eventType, data, timeout = 5000) {
248
- if (!this.client) {
249
- throw new Error(`Попытка отправить событие ${eventType} с подтверждением, но клиент не подключен`);
250
- }
251
- return this.client.emitWithAck(eventType, data, timeout);
252
- }
253
- /**
254
- * Добавляет обработчик события
255
- * @param {string} eventType Тип события
256
- * @param {(data: any) => void} handler Обработчик события
257
- */
258
- on(eventType, handler) {
259
- if (!this.client) {
260
- this.logger.warn(`Попытка добавить обработчик для события ${eventType}, но клиент не подключен`);
261
- return;
262
- }
263
- this.client.on(eventType, handler);
264
- }
265
- /**
266
- * Удаляет обработчик события
267
- * @param {string} eventType Тип события
268
- * @param {(data: any) => void} [handler] Обработчик события (если не указан, удаляются все обработчики)
269
- */
270
- off(eventType, handler) {
271
- if (!this.client)
272
- return;
273
- this.client.off(eventType, handler);
274
- }
275
- }
276
- //# sourceMappingURL=base-ws-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-ws-client.js","sourceRoot":"","sources":["../../../src/ws/base-ws-client.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { BaseWebSocketClient } from './base-ws-client';
2
- export class DependenciesWsClient extends BaseWebSocketClient {
3
- constructor(namespace, baseURL, options = {}) {
4
- super(namespace, baseURL, options);
5
- }
6
- }
7
- //# sourceMappingURL=dependencies-ws-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependencies-ws-client.js","sourceRoot":"","sources":["../../../src/ws/dependencies-ws-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAA8B,MAAM,kBAAkB,CAAC;AAGnF,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAC3D,YACE,SAA6B,EAC7B,OAAe,EACf,UAAsC,EAAE;QAExC,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;CAEF"}
@@ -1,158 +0,0 @@
1
- import { BaseWebSocketClient } from './base-ws-client';
2
- import { WebSocketNamespace } from '../constants/websocket-namespaces.constants';
3
- import { v4 as uuidv4 } from 'uuid';
4
- /**
5
- * ✅ ПРОФЕССИОНАЛЬНЫЙ FILE EDITING WEBSOCKET CLIENT
6
- *
7
- * Следует паттерну других WebSocket клиентов SDK:
8
- * - Наследуется от BaseWebSocketClient
9
- * - Использует WebSocketNamespace.FILE_EDITING
10
- * - Имеет callback'и для обработки событий от сервера
11
- * - Переопределяет connect() для инициализации
12
- */
13
- export class FileEditingWsClient extends BaseWebSocketClient {
14
- /**
15
- * Создает новый клиент для редактирования файлов
16
- * @param baseURL Базовый URL API
17
- * @param options Опции клиента
18
- */
19
- constructor(baseURL, options = {}) {
20
- super(WebSocketNamespace.FILE_EDITING, baseURL, {
21
- enableAutoPing: true,
22
- pingInterval: 25000,
23
- reconnectStrategy: 'exponential',
24
- retryDelay: 1000,
25
- maxRetryDelay: 30000
26
- });
27
- this.projectId = null;
28
- this.SDK_VERSION = '1.0.0';
29
- /**
30
- * Обработчик изменений файлов по умолчанию
31
- */
32
- this.defaultFileChangesHandler = async (suggestion) => {
33
- this.logger.warn('Получено предложение изменений файлов, но обработчик не настроен');
34
- this.logger.warn(`Проект: ${suggestion.projectId}, время: ${suggestion.timestamp}`);
35
- return {
36
- applied: false,
37
- reason: 'Обработчик изменений файлов не настроен'
38
- };
39
- };
40
- // Устанавливаем обработчики
41
- this.onApplyFileChanges = options.onApplyFileChanges || this.defaultFileChangesHandler;
42
- }
43
- /**
44
- * Подключение к серверу и присоединение к проекту
45
- * @param params Параметры подключения (должен содержать projectId)
46
- * @returns Promise<boolean> Успешность подключения
47
- */
48
- async connect(params = {}) {
49
- // Если передан projectId, сохраняем его
50
- if (params.projectId) {
51
- this.projectId = params.projectId;
52
- }
53
- // Подключаемся с базовыми параметрами
54
- const connected = await super.connect(params);
55
- if (!connected) {
56
- return false;
57
- }
58
- try {
59
- // Если есть projectId, присоединяемся к проекту
60
- if (this.projectId) {
61
- await this.joinProject(this.projectId);
62
- }
63
- // Настраиваем обработчики событий
64
- this.setupHandlers();
65
- return true;
66
- }
67
- catch (error) {
68
- this.logger.error(`Ошибка инициализации file editing клиента: ${error instanceof Error ? error.message : String(error)}`);
69
- return false;
70
- }
71
- }
72
- /**
73
- * Подключение к проекту - удобный метод для использования в приложении
74
- * @param projectId ID проекта
75
- * @returns Promise<boolean> Успешность подключения
76
- */
77
- async connectToProject(projectId) {
78
- this.projectId = projectId;
79
- return this.connect({ projectId });
80
- }
81
- /**
82
- * Присоединиться к проекту для получения событий файлового редактирования
83
- */
84
- async joinProject(projectId) {
85
- return new Promise((resolve, reject) => {
86
- // Слушаем подтверждение присоединения
87
- this.on('PROJECT_JOINED', (data) => {
88
- this.logger.info(`✅ Присоединён к проекту: ${data.projectId}`);
89
- resolve();
90
- });
91
- // Отправляем запрос на присоединение
92
- this.send('JOIN_PROJECT', { projectId });
93
- // Таймаут
94
- setTimeout(() => reject(new Error('Timeout: JOIN_PROJECT')), 5000);
95
- });
96
- }
97
- /**
98
- * Настройка обработчиков событий
99
- */
100
- setupHandlers() {
101
- // Обработчик предложений изменений файлов
102
- this.on('APPLY_FILE_CHANGES', async (suggestion) => {
103
- try {
104
- this.logger.info(`📥 Получено предложение изменений файлов для проекта: ${suggestion.projectId}`);
105
- // Вызываем пользовательский обработчик
106
- const response = await this.onApplyFileChanges(suggestion);
107
- if (response.applied) {
108
- // Отправляем подтверждение применения
109
- this.send('FILE_CHANGES_APPLIED', {
110
- suggestionId: uuidv4(),
111
- appliedFiles: response.appliedFiles || [],
112
- projectId: suggestion.projectId
113
- });
114
- this.logger.info(`✅ Изменения применены для проекта: ${suggestion.projectId}`);
115
- }
116
- else {
117
- // Отправляем отклонение
118
- this.send('FILE_CHANGES_REJECTED', {
119
- suggestionId: uuidv4(),
120
- reason: response.reason || 'Изменения отклонены пользователем',
121
- projectId: suggestion.projectId
122
- });
123
- this.logger.info(`❌ Изменения отклонены для проекта: ${suggestion.projectId}`);
124
- }
125
- }
126
- catch (error) {
127
- // Отправляем ошибку
128
- this.send('FILE_CHANGES_ERROR', {
129
- suggestionId: uuidv4(),
130
- error: error instanceof Error ? error.message : String(error),
131
- projectId: suggestion.projectId
132
- });
133
- this.logger.error(`💥 Ошибка обработки изменений: ${error instanceof Error ? error.message : String(error)}`);
134
- }
135
- });
136
- }
137
- /**
138
- * Получить ID текущего проекта
139
- */
140
- getCurrentProjectId() {
141
- return this.projectId;
142
- }
143
- /**
144
- * Покинуть текущий проект
145
- */
146
- async leaveProject() {
147
- if (this.projectId) {
148
- return new Promise((resolve) => {
149
- this.on('PROJECT_LEFT', () => {
150
- this.projectId = null;
151
- resolve();
152
- });
153
- this.send('LEAVE_PROJECT', { projectId: this.projectId });
154
- });
155
- }
156
- }
157
- }
158
- //# sourceMappingURL=file-editing-ws-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-editing-ws-client.js","sourceRoot":"","sources":["../../../src/ws/file-editing-ws-client.ts"],"names":[],"mappings":"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"}