solver-sdk 1.8.1 → 2.0.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 (131) hide show
  1. package/dist/cjs/api/projects-api.js +4 -6
  2. package/dist/cjs/api/projects-api.js.map +1 -1
  3. package/dist/cjs/{code-solver-sdk.js → code-solver-sdk-v2.js} +220 -271
  4. package/dist/cjs/code-solver-sdk-v2.js.map +1 -0
  5. package/dist/cjs/constants/websocket-events.constants.js +37 -1
  6. package/dist/cjs/constants/websocket-events.constants.js.map +1 -1
  7. package/dist/cjs/constants/websocket-namespaces.constants.js +20 -0
  8. package/dist/cjs/constants/websocket-namespaces.constants.js.map +1 -0
  9. package/dist/cjs/index.js +24 -49
  10. package/dist/cjs/index.js.map +1 -1
  11. package/dist/cjs/interfaces/websocket/callbacks.interfaces.js +3 -0
  12. package/dist/cjs/interfaces/websocket/callbacks.interfaces.js.map +1 -0
  13. package/dist/cjs/interfaces/websocket/client-options.interfaces.js +3 -0
  14. package/dist/cjs/interfaces/websocket/client-options.interfaces.js.map +1 -0
  15. package/dist/cjs/interfaces/websocket/events.interfaces.js +3 -0
  16. package/dist/cjs/interfaces/websocket/events.interfaces.js.map +1 -0
  17. package/dist/cjs/interfaces/websocket/stats.interfaces.js +3 -0
  18. package/dist/cjs/interfaces/websocket/stats.interfaces.js.map +1 -0
  19. package/dist/cjs/utils/code-solver-websocket-client.js +382 -1503
  20. package/dist/cjs/utils/code-solver-websocket-client.js.map +1 -1
  21. package/dist/cjs/utils/connection-state-manager.js +133 -0
  22. package/dist/cjs/utils/connection-state-manager.js.map +1 -0
  23. package/dist/cjs/utils/logger.js +106 -0
  24. package/dist/cjs/utils/logger.js.map +1 -0
  25. package/dist/cjs/utils/ping-pong-manager.js +306 -0
  26. package/dist/cjs/utils/ping-pong-manager.js.map +1 -0
  27. package/dist/cjs/utils/session-manager.js +114 -0
  28. package/dist/cjs/utils/session-manager.js.map +1 -0
  29. package/dist/cjs/ws/base-ws-client.js +286 -0
  30. package/dist/cjs/ws/base-ws-client.js.map +1 -0
  31. package/dist/cjs/ws/dependencies-ws-client.js +11 -0
  32. package/dist/cjs/ws/dependencies-ws-client.js.map +1 -0
  33. package/dist/cjs/ws/diagnostics-service.js +170 -0
  34. package/dist/cjs/ws/diagnostics-service.js.map +1 -0
  35. package/dist/cjs/ws/filesystem-ws-client.js +315 -0
  36. package/dist/cjs/ws/filesystem-ws-client.js.map +1 -0
  37. package/dist/cjs/ws/indexing-ws-client.js +223 -0
  38. package/dist/cjs/ws/indexing-ws-client.js.map +1 -0
  39. package/dist/cjs/ws/notifications-ws-client.js +12 -0
  40. package/dist/cjs/ws/notifications-ws-client.js.map +1 -0
  41. package/dist/cjs/ws/reasoning-ws-client.js +330 -0
  42. package/dist/cjs/ws/reasoning-ws-client.js.map +1 -0
  43. package/dist/esm/api/projects-api.js +4 -6
  44. package/dist/esm/api/projects-api.js.map +1 -1
  45. package/dist/esm/{code-solver-sdk.js → code-solver-sdk-v2.js} +220 -271
  46. package/dist/esm/code-solver-sdk-v2.js.map +1 -0
  47. package/dist/esm/constants/websocket-events.constants.js +36 -0
  48. package/dist/esm/constants/websocket-events.constants.js.map +1 -1
  49. package/dist/esm/constants/websocket-namespaces.constants.js +17 -0
  50. package/dist/esm/constants/websocket-namespaces.constants.js.map +1 -0
  51. package/dist/esm/index.js +22 -97
  52. package/dist/esm/index.js.map +1 -1
  53. package/dist/esm/interfaces/websocket/callbacks.interfaces.js +2 -0
  54. package/dist/esm/interfaces/websocket/callbacks.interfaces.js.map +1 -0
  55. package/dist/esm/interfaces/websocket/client-options.interfaces.js +2 -0
  56. package/dist/esm/interfaces/websocket/client-options.interfaces.js.map +1 -0
  57. package/dist/esm/interfaces/websocket/events.interfaces.js +2 -0
  58. package/dist/esm/interfaces/websocket/events.interfaces.js.map +1 -0
  59. package/dist/esm/interfaces/websocket/stats.interfaces.js +2 -0
  60. package/dist/esm/interfaces/websocket/stats.interfaces.js.map +1 -0
  61. package/dist/esm/utils/code-solver-websocket-client.js +381 -1503
  62. package/dist/esm/utils/code-solver-websocket-client.js.map +1 -1
  63. package/dist/esm/utils/connection-state-manager.js +129 -0
  64. package/dist/esm/utils/connection-state-manager.js.map +1 -0
  65. package/dist/esm/utils/logger.js +101 -0
  66. package/dist/esm/utils/logger.js.map +1 -0
  67. package/dist/esm/utils/ping-pong-manager.js +302 -0
  68. package/dist/esm/utils/ping-pong-manager.js.map +1 -0
  69. package/dist/esm/utils/session-manager.js +109 -0
  70. package/dist/esm/utils/session-manager.js.map +1 -0
  71. package/dist/esm/ws/base-ws-client.js +282 -0
  72. package/dist/esm/ws/base-ws-client.js.map +1 -0
  73. package/dist/esm/ws/dependencies-ws-client.js +7 -0
  74. package/dist/esm/ws/dependencies-ws-client.js.map +1 -0
  75. package/dist/esm/ws/diagnostics-service.js +166 -0
  76. package/dist/esm/ws/diagnostics-service.js.map +1 -0
  77. package/dist/esm/ws/filesystem-ws-client.js +311 -0
  78. package/dist/esm/ws/filesystem-ws-client.js.map +1 -0
  79. package/dist/esm/ws/indexing-ws-client.js +219 -0
  80. package/dist/esm/ws/indexing-ws-client.js.map +1 -0
  81. package/dist/esm/ws/notifications-ws-client.js +8 -0
  82. package/dist/esm/ws/notifications-ws-client.js.map +1 -0
  83. package/dist/esm/ws/reasoning-ws-client.js +326 -0
  84. package/dist/esm/ws/reasoning-ws-client.js.map +1 -0
  85. package/dist/types/api/projects-api.d.ts.map +1 -1
  86. package/dist/types/{code-solver-sdk.d.ts → code-solver-sdk-v2.d.ts} +82 -85
  87. package/dist/types/code-solver-sdk-v2.d.ts.map +1 -0
  88. package/dist/types/constants/websocket-events.constants.d.ts +33 -0
  89. package/dist/types/constants/websocket-events.constants.d.ts.map +1 -1
  90. package/dist/types/constants/websocket-namespaces.constants.d.ts +16 -0
  91. package/dist/types/constants/websocket-namespaces.constants.d.ts.map +1 -0
  92. package/dist/types/index.d.ts +20 -90
  93. package/dist/types/index.d.ts.map +1 -1
  94. package/dist/types/interfaces/websocket/callbacks.interfaces.d.ts +30 -0
  95. package/dist/types/interfaces/websocket/callbacks.interfaces.d.ts.map +1 -0
  96. package/dist/types/interfaces/websocket/client-options.interfaces.d.ts +51 -0
  97. package/dist/types/interfaces/websocket/client-options.interfaces.d.ts.map +1 -0
  98. package/dist/types/interfaces/websocket/events.interfaces.d.ts +165 -0
  99. package/dist/types/interfaces/websocket/events.interfaces.d.ts.map +1 -0
  100. package/dist/types/interfaces/websocket/stats.interfaces.d.ts +72 -0
  101. package/dist/types/interfaces/websocket/stats.interfaces.d.ts.map +1 -0
  102. package/dist/types/utils/code-solver-websocket-client.d.ts +70 -616
  103. package/dist/types/utils/code-solver-websocket-client.d.ts.map +1 -1
  104. package/dist/types/utils/connection-state-manager.d.ts +94 -0
  105. package/dist/types/utils/connection-state-manager.d.ts.map +1 -0
  106. package/dist/types/utils/logger.d.ts +62 -0
  107. package/dist/types/utils/logger.d.ts.map +1 -0
  108. package/dist/types/utils/ping-pong-manager.d.ts +118 -0
  109. package/dist/types/utils/ping-pong-manager.d.ts.map +1 -0
  110. package/dist/types/utils/session-manager.d.ts +98 -0
  111. package/dist/types/utils/session-manager.d.ts.map +1 -0
  112. package/dist/types/ws/base-ws-client.d.ts +119 -0
  113. package/dist/types/ws/base-ws-client.d.ts.map +1 -0
  114. package/dist/types/ws/dependencies-ws-client.d.ts +6 -0
  115. package/dist/types/ws/dependencies-ws-client.d.ts.map +1 -0
  116. package/dist/types/ws/diagnostics-service.d.ts +93 -0
  117. package/dist/types/ws/diagnostics-service.d.ts.map +1 -0
  118. package/dist/types/ws/filesystem-ws-client.d.ts +203 -0
  119. package/dist/types/ws/filesystem-ws-client.d.ts.map +1 -0
  120. package/dist/types/ws/indexing-ws-client.d.ts +78 -0
  121. package/dist/types/ws/indexing-ws-client.d.ts.map +1 -0
  122. package/dist/types/ws/notifications-ws-client.d.ts +5 -0
  123. package/dist/types/ws/notifications-ws-client.d.ts.map +1 -0
  124. package/dist/types/ws/reasoning-ws-client.d.ts +87 -0
  125. package/dist/types/ws/reasoning-ws-client.d.ts.map +1 -0
  126. package/docs/AUTHENTICATION.md +31 -127
  127. package/docs/WEBSOCKET.md +51 -211
  128. package/package.json +1 -1
  129. package/dist/cjs/code-solver-sdk.js.map +0 -1
  130. package/dist/esm/code-solver-sdk.js.map +0 -1
  131. package/dist/types/code-solver-sdk.d.ts.map +0 -1
@@ -0,0 +1,93 @@
1
+ import { WebSocketNamespace } from '../constants/websocket-namespaces.constants.js';
2
+ import { WebSocketClient } from '../utils/websocket-client.js';
3
+ import { SessionManager } from '../utils/session-manager.js';
4
+ import { PingPongManager } from '../utils/ping-pong-manager.js';
5
+ import { ConnectionStateManager } from '../utils/connection-state-manager.js';
6
+ import { ConnectionDiagnostics, PingPongStats } from '../interfaces/websocket/stats.interfaces.js';
7
+ import { Logger } from '../utils/logger.js';
8
+ /**
9
+ * Опции для сервиса диагностики
10
+ */
11
+ export interface DiagnosticsServiceOptions {
12
+ /** Интервал проверки здоровья соединений в миллисекундах */
13
+ healthCheckInterval?: number;
14
+ /** Логгер для вывода сообщений */
15
+ logger?: Logger;
16
+ /** Менеджер сессий */
17
+ sessionManager?: SessionManager;
18
+ /** Менеджер ping/pong */
19
+ pingPongManager?: PingPongManager;
20
+ /** Менеджер состояния подключения */
21
+ connectionStateManager?: ConnectionStateManager;
22
+ }
23
+ /**
24
+ * Сервис для диагностики WebSocket соединений
25
+ */
26
+ export declare class DiagnosticsService {
27
+ /** Интервал проверки здоровья соединений в миллисекундах */
28
+ private readonly healthCheckInterval;
29
+ /** Логгер для вывода сообщений */
30
+ private readonly logger;
31
+ /** Менеджер сессий */
32
+ private readonly sessionManager;
33
+ /** Менеджер ping/pong */
34
+ private readonly pingPongManager;
35
+ /** Менеджер состояния подключения */
36
+ private readonly connectionStateManager;
37
+ /** Таймер для проверки здоровья соединений */
38
+ private healthCheckTimer;
39
+ /** Клиенты WebSocket по namespace */
40
+ private readonly clients;
41
+ /**
42
+ * Создает новый сервис диагностики
43
+ * @param {DiagnosticsServiceOptions} options Опции сервиса
44
+ */
45
+ constructor(options?: DiagnosticsServiceOptions);
46
+ /**
47
+ * Регистрирует WebSocket клиент для мониторинга
48
+ * @param {WebSocketNamespace} namespace Пространство имен
49
+ * @param {WebSocketClient} client WebSocket клиент
50
+ */
51
+ registerClient(namespace: WebSocketNamespace, client: WebSocketClient): void;
52
+ /**
53
+ * Удаляет регистрацию WebSocket клиента
54
+ * @param {WebSocketNamespace} namespace Пространство имен
55
+ */
56
+ unregisterClient(namespace: WebSocketNamespace): void;
57
+ /**
58
+ * Запускает периодическую проверку здоровья соединений
59
+ * @returns {boolean} true, если проверка успешно запущена
60
+ */
61
+ startHealthCheck(): boolean;
62
+ /**
63
+ * Останавливает периодическую проверку здоровья соединений
64
+ */
65
+ stopHealthCheck(): void;
66
+ /**
67
+ * Выполняет проверку здоровья соединений
68
+ */
69
+ private performHealthCheck;
70
+ /**
71
+ * Выполняет диагностику соединения
72
+ * @param {WebSocketNamespace} namespace Пространство имен
73
+ * @returns {ConnectionDiagnostics} Диагностическая информация
74
+ */
75
+ diagnoseConnection(namespace: WebSocketNamespace): ConnectionDiagnostics;
76
+ /**
77
+ * Выполняет диагностику всех соединений
78
+ * @returns {Record<string, ConnectionDiagnostics>} Диагностическая информация по всем соединениям
79
+ */
80
+ diagnoseAllConnections(): Record<string, ConnectionDiagnostics>;
81
+ /**
82
+ * Получает статистику ping/pong для указанного пространства имен
83
+ * @param {WebSocketNamespace} namespace Пространство имен
84
+ * @returns {PingPongStats | null} Статистика ping/pong
85
+ */
86
+ getPingStats(namespace: WebSocketNamespace): PingPongStats | null;
87
+ /**
88
+ * Возвращает функцию-обработчик для pong-ответов, которая рассчитывает RTT
89
+ * @returns {(data: any) => void} Функция-обработчик
90
+ */
91
+ getPongHandler(): (data: any) => void;
92
+ }
93
+ //# sourceMappingURL=diagnostics-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics-service.d.ts","sourceRoot":"","sources":["../../../src/ws/diagnostics-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AACnG,OAAO,EAAE,MAAM,EAAyB,MAAM,oBAAoB,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,4DAA4D;IAC5D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,sBAAsB;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC,yBAAyB;IACzB,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,qCAAqC;IACrC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;CACjD;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,4DAA4D;IAC5D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAE7C,kCAAkC;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,sBAAsB;IACtB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAEhD,yBAAyB;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAElD,qCAAqC;IACrC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAyB;IAEhE,8CAA8C;IAC9C,OAAO,CAAC,gBAAgB,CAA+B;IAEvD,qCAAqC;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuD;IAE/E;;;OAGG;gBACS,OAAO,GAAE,yBAA8B;IAQnD;;;;OAIG;IACI,cAAc,CAAC,SAAS,EAAE,kBAAkB,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;IAOnF;;;OAGG;IACI,gBAAgB,CAAC,SAAS,EAAE,kBAAkB,GAAG,IAAI;IAK5D;;;OAGG;IACI,gBAAgB,IAAI,OAAO;IAalC;;OAEG;IACI,eAAe,IAAI,IAAI;IAQ9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA+B1B;;;;OAIG;IACI,kBAAkB,CAAC,SAAS,EAAE,kBAAkB,GAAG,qBAAqB;IA+B/E;;;OAGG;IACI,sBAAsB,IAAI,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAWtE;;;;OAIG;IACI,YAAY,CAAC,SAAS,EAAE,kBAAkB,GAAG,aAAa,GAAG,IAAI;IAIxE;;;OAGG;IACI,cAAc,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI;CAU7C"}
@@ -0,0 +1,203 @@
1
+ import { BaseWebSocketClient } from './base-ws-client';
2
+ /**
3
+ * Опции для клиента файловой системы
4
+ */
5
+ export interface FileSystemWsClientOptions {
6
+ /** Обработчик чтения файла */
7
+ onReadFile?: (path: string) => Promise<string>;
8
+ /** Обработчик получения списка файлов */
9
+ onListFiles?: (directory: string, options?: {
10
+ includePatterns?: string[];
11
+ excludePatterns?: string[];
12
+ }) => Promise<FileInfo[]>;
13
+ /** Обработчик начала отслеживания файлов */
14
+ onWatchStart?: (patterns: string[]) => Promise<boolean>;
15
+ }
16
+ /**
17
+ * Интерфейс информации о файле
18
+ */
19
+ export interface FileInfo {
20
+ /** Абсолютный путь к файлу */
21
+ path: string;
22
+ /** Относительный путь в рамках проекта */
23
+ relativePath: string;
24
+ /** Расширение файла */
25
+ extension: string;
26
+ /** Размер файла в байтах */
27
+ size: number;
28
+ /** Флаг директории */
29
+ isDirectory: boolean;
30
+ }
31
+ /**
32
+ * Клиент WebSocket для работы с файловой системой
33
+ */
34
+ export declare class FileSystemWsClient extends BaseWebSocketClient {
35
+ private sessionId;
36
+ private projectId;
37
+ private pingInterval;
38
+ private pingTimer;
39
+ private readonly SDK_VERSION;
40
+ onReadFile: (path: string) => Promise<string>;
41
+ onListFiles: (directory: string, options?: {
42
+ includePatterns?: string[];
43
+ excludePatterns?: string[];
44
+ }) => Promise<FileInfo[]>;
45
+ onWatchStart: (patterns: string[]) => Promise<boolean>;
46
+ /**
47
+ * Создает новый клиент для работы с файловой системой
48
+ * @param baseURL Базовый URL API
49
+ * @param options Опции клиента
50
+ */
51
+ constructor(baseURL: string, options?: FileSystemWsClientOptions);
52
+ /**
53
+ * Подключение к серверу и инициализация сессии
54
+ * @param params Параметры подключения (может содержать projectId или другие параметры)
55
+ * @returns Promise<boolean> Успешность подключения
56
+ */
57
+ connect(params?: Record<string, any>): Promise<boolean>;
58
+ /**
59
+ * Подключение к проекту - удобный метод для использования в приложении
60
+ * @param projectId ID проекта
61
+ * @returns Promise<boolean> Успешность подключения
62
+ */
63
+ connectToProject(projectId: string): Promise<boolean>;
64
+ /**
65
+ * Настройка обработчиков событий
66
+ */
67
+ private setupHandlers;
68
+ /**
69
+ * Уведомляет сервер об изменении файла
70
+ * @param path Путь к файлу
71
+ * @param changeType Тип изменения
72
+ */
73
+ notifyFileChanged(path: string, changeType?: 'created' | 'modified' | 'deleted'): boolean;
74
+ }
75
+ /**
76
+ * Пример использования клиента файловой системы в VS Code расширении:
77
+ *
78
+ * ```typescript
79
+ * import * as vscode from 'vscode';
80
+ * import { FileSystemWsClient } from 'solver-sdk';
81
+ *
82
+ * export function activate(context: vscode.ExtensionContext) {
83
+ * // Создание клиента файловой системы
84
+ * const fsClient = new FileSystemWsClient('wss://your-backend-url.com', {
85
+ * // Обработчик чтения файла
86
+ * onReadFile: async (path) => {
87
+ * try {
88
+ * const uri = vscode.Uri.file(path);
89
+ * const content = await vscode.workspace.fs.readFile(uri);
90
+ * return new TextDecoder().decode(content);
91
+ * } catch (error) {
92
+ * throw new Error(`Ошибка чтения файла: ${error.message}`);
93
+ * }
94
+ * },
95
+ *
96
+ * // Обработчик получения списка файлов
97
+ * onListFiles: async (directory, options) => {
98
+ * try {
99
+ * // Получаем корневую директорию рабочего пространства
100
+ * const rootPath = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath;
101
+ * if (!rootPath) throw new Error('Не найдено рабочее пространство');
102
+ *
103
+ * // Формируем паттерн для поиска файлов
104
+ * const pattern = new vscode.RelativePattern(
105
+ * rootPath,
106
+ * options?.includePatterns?.[0] || '**'
107
+ * );
108
+ *
109
+ * // Находим файлы по паттерну
110
+ * const files = await vscode.workspace.findFiles(pattern,
111
+ * options?.excludePatterns?.join('|')
112
+ * );
113
+ *
114
+ * // Преобразуем результаты в нужный формат
115
+ * return files.map(uri => {
116
+ * const relativePath = vscode.workspace.asRelativePath(uri);
117
+ * const stats = fs.statSync(uri.fsPath);
118
+ *
119
+ * return {
120
+ * path: uri.fsPath,
121
+ * relativePath,
122
+ * extension: uri.fsPath.split('.').pop() || '',
123
+ * size: stats.size,
124
+ * isDirectory: stats.isDirectory()
125
+ * };
126
+ * });
127
+ * } catch (error) {
128
+ * throw new Error(`Ошибка получения списка файлов: ${error.message}`);
129
+ * }
130
+ * },
131
+ *
132
+ * // Обработчик отслеживания файлов
133
+ * onWatchStart: async (patterns) => {
134
+ * try {
135
+ * // Создаем наблюдателей за файлами
136
+ * const watchers = patterns.map(pattern => {
137
+ * const watcher = vscode.workspace.createFileSystemWatcher(
138
+ * new vscode.RelativePattern(
139
+ * vscode.workspace.workspaceFolders?.[0]?.uri.fsPath || '',
140
+ * pattern
141
+ * )
142
+ * );
143
+ *
144
+ * // Обработчик изменения файла
145
+ * watcher.onDidChange(uri => {
146
+ * const relativePath = vscode.workspace.asRelativePath(uri);
147
+ * fsClient.notifyFileChanged(relativePath, 'modified');
148
+ * });
149
+ *
150
+ * // Обработчик создания файла
151
+ * watcher.onDidCreate(uri => {
152
+ * const relativePath = vscode.workspace.asRelativePath(uri);
153
+ * fsClient.notifyFileChanged(relativePath, 'created');
154
+ * });
155
+ *
156
+ * // Обработчик удаления файла
157
+ * watcher.onDidDelete(uri => {
158
+ * const relativePath = vscode.workspace.asRelativePath(uri);
159
+ * fsClient.notifyFileChanged(relativePath, 'deleted');
160
+ * });
161
+ *
162
+ * return watcher;
163
+ * });
164
+ *
165
+ * // Добавляем наблюдателей в контекст расширения для правильной очистки
166
+ * watchers.forEach(watcher => {
167
+ * context.subscriptions.push(watcher);
168
+ * });
169
+ *
170
+ * return true;
171
+ * } catch (error) {
172
+ * console.error('Ошибка при настройке отслеживания файлов:', error);
173
+ * return false;
174
+ * }
175
+ * }
176
+ * });
177
+ *
178
+ * // Подключаемся к проекту
179
+ * vscode.commands.registerCommand('extension.connectToProject', async () => {
180
+ * // Запрашиваем ID проекта у пользователя
181
+ * const projectId = await vscode.window.showInputBox({
182
+ * prompt: 'Введите ID проекта для подключения'
183
+ * });
184
+ *
185
+ * if (!projectId) return;
186
+ *
187
+ * try {
188
+ * // Устанавливаем соединение
189
+ * const connected = await fsClient.connectToProject(projectId);
190
+ *
191
+ * if (connected) {
192
+ * vscode.window.showInformationMessage(`Успешное подключение к проекту ${projectId}`);
193
+ * } else {
194
+ * vscode.window.showErrorMessage('Ошибка подключения к проекту');
195
+ * }
196
+ * } catch (error) {
197
+ * vscode.window.showErrorMessage(`Ошибка: ${error.message}`);
198
+ * }
199
+ * });
200
+ * }
201
+ * ```
202
+ */
203
+ //# sourceMappingURL=filesystem-ws-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem-ws-client.d.ts","sourceRoot":"","sources":["../../../src/ws/filesystem-ws-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAKvD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,8BAA8B;IAC9B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/C,yCAAyC;IACzC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAC1C,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5B,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE1B,4CAA4C;IAC5C,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IAEb,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IAErB,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAElB,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IAEb,sBAAsB;IACtB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,mBAAmB;IACzD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAW;IAGhC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAChD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5B,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9D;;;;OAIG;gBAED,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,yBAA8B;IAgBzC;;;;OAIG;IACmB,OAAO,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6CjF;;;;OAIG;IACU,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlE;;OAEG;IACH,OAAO,CAAC,aAAa;IAkFrB;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,SAAS,GAAG,UAAU,GAAG,SAAsB,GAAG,OAAO;CAetG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+HG"}
@@ -0,0 +1,78 @@
1
+ import { BaseWebSocketClient, BaseWebSocketClientOptions } from './base-ws-client.js';
2
+ /**
3
+ * Опции WebSocket клиента для индексации
4
+ */
5
+ export interface IndexingWebSocketClientOptions extends BaseWebSocketClientOptions {
6
+ /** ID проекта */
7
+ projectId?: string;
8
+ }
9
+ /**
10
+ * WebSocket клиент для пространства имен индексации
11
+ */
12
+ export declare class IndexingWebSocketClient extends BaseWebSocketClient {
13
+ /** ID активного проекта */
14
+ private activeProjectId;
15
+ /**
16
+ * Создает новый WebSocket клиент для индексации
17
+ * @param {string} baseURL Базовый URL API
18
+ * @param {IndexingWebSocketClientOptions} options Опции клиента
19
+ */
20
+ constructor(baseURL: string, options?: IndexingWebSocketClientOptions);
21
+ /**
22
+ * Подключается к серверу WebSocket
23
+ * @param {boolean} autoJoin Автоматически присоединиться к проекту
24
+ * @returns {Promise<boolean>} Успешность подключения
25
+ */
26
+ connectToIndexing(autoJoin?: boolean): Promise<boolean>;
27
+ /**
28
+ * Присоединяется к проекту
29
+ * @param {string} projectId ID проекта
30
+ * @returns {Promise<boolean>} Успешность операции
31
+ */
32
+ joinProject(projectId: string): Promise<boolean>;
33
+ /**
34
+ * Запускает процесс индексации проекта
35
+ * @param {string} [projectId] ID проекта (если не указан, используется текущий проект)
36
+ * @returns {Promise<boolean>} Успешность операции
37
+ */
38
+ startIndexing(projectId?: string): Promise<boolean>;
39
+ /**
40
+ * Останавливает процесс индексации проекта
41
+ * @param {string} [projectId] ID проекта (если не указан, используется текущий проект)
42
+ * @returns {Promise<boolean>} Успешность операции
43
+ */
44
+ stopIndexing(projectId?: string): Promise<boolean>;
45
+ /**
46
+ * Получает статус индексации проекта
47
+ * @param {string} [projectId] ID проекта (если не указан, используется текущий проект)
48
+ * @returns {Promise<any>} Статус индексации проекта
49
+ */
50
+ getIndexingStatus(projectId?: string): Promise<any>;
51
+ /**
52
+ * Устанавливает обработчик для события завершения индексации
53
+ * @param {Function} handler Обработчик события
54
+ */
55
+ onIndexingComplete(handler: (data: any) => void): void;
56
+ /**
57
+ * Устанавливает обработчик для события индексации файла
58
+ * @param {Function} handler Обработчик события
59
+ */
60
+ onFileIndexed(handler: (data: any) => void): void;
61
+ /**
62
+ * Устанавливает обработчик для события ошибки индексации
63
+ * @param {Function} handler Обработчик события
64
+ */
65
+ onIndexingError(handler: (data: any) => void): void;
66
+ /**
67
+ * Получает текущий ID активного проекта
68
+ * @returns {string | null} ID активного проекта или null
69
+ */
70
+ getActiveProjectId(): string | null;
71
+ /**
72
+ * Устанавливает ID активного проекта
73
+ * @param {string} projectId ID проекта
74
+ * @returns {boolean} Успешность установки
75
+ */
76
+ setActiveProjectId(projectId: string): boolean;
77
+ }
78
+ //# sourceMappingURL=indexing-ws-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexing-ws-client.d.ts","sourceRoot":"","sources":["../../../src/ws/indexing-ws-client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAGtF;;GAEG;AACH,MAAM,WAAW,8BAA+B,SAAQ,0BAA0B;IAChF,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,mBAAmB;IAC9D,2BAA2B;IAC3B,OAAO,CAAC,eAAe,CAAuB;IAE9C;;;;OAIG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,8BAAmC;IAOzE;;;;OAIG;IACU,iBAAiB,CAAC,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAiD1E;;;;OAIG;IACU,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA8B7D;;;;OAIG;IACU,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6BhE;;;;OAIG;IACU,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6B/D;;;;OAIG;IACU,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAuBhE;;;OAGG;IACI,kBAAkB,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAI7D;;;OAGG;IACI,aAAa,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAIxD;;;OAGG;IACI,eAAe,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAI1D;;;OAGG;IACI,kBAAkB,IAAI,MAAM,GAAG,IAAI;IAI1C;;;;OAIG;IACI,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;CAWtD"}
@@ -0,0 +1,5 @@
1
+ import { BaseWebSocketClient } from './base-ws-client';
2
+ export declare class NotificationsWsClient extends BaseWebSocketClient {
3
+ constructor(baseURL: string, options?: {});
4
+ }
5
+ //# sourceMappingURL=notifications-ws-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications-ws-client.d.ts","sourceRoot":"","sources":["../../../src/ws/notifications-ws-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,qBAAa,qBAAsB,SAAQ,mBAAmB;gBAChD,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK;CAI1C"}
@@ -0,0 +1,87 @@
1
+ import { BaseWebSocketClient, BaseWebSocketClientOptions } from './base-ws-client.js';
2
+ import { AnthropicStreamCallbacks } from '../interfaces/websocket/callbacks.interfaces.js';
3
+ /**
4
+ * Опции WebSocket клиента для рассуждений
5
+ */
6
+ export interface ReasoningWebSocketClientOptions extends BaseWebSocketClientOptions {
7
+ /** ID рассуждения */
8
+ reasoningId?: string;
9
+ /** Обработчики для событий Anthropic Stream */
10
+ callbacks?: AnthropicStreamCallbacks;
11
+ }
12
+ /**
13
+ * WebSocket клиент для пространства имен рассуждений
14
+ */
15
+ export declare class ReasoningWebSocketClient extends BaseWebSocketClient {
16
+ /** ID активного рассуждения */
17
+ private activeReasoningId;
18
+ /** Обработчики для событий Anthropic Stream */
19
+ private callbacks;
20
+ /** Обработчики событий мышления */
21
+ private thinkingEventHandlers;
22
+ /**
23
+ * Создает новый WebSocket клиент для рассуждений
24
+ * @param {string} baseURL Базовый URL API
25
+ * @param {ReasoningWebSocketClientOptions} options Опции клиента
26
+ */
27
+ constructor(baseURL: string, options?: ReasoningWebSocketClientOptions);
28
+ /**
29
+ * Подключается к серверу WebSocket
30
+ * @param {boolean} autoJoin Автоматически присоединиться к рассуждению
31
+ * @returns {Promise<boolean>} Успешность подключения
32
+ */
33
+ connectToReasoning(autoJoin?: boolean): Promise<boolean>;
34
+ /**
35
+ * Присоединяется к сессии рассуждения
36
+ * @param {string} reasoningId ID сессии рассуждения
37
+ * @returns {Promise<boolean>} Успешность операции
38
+ */
39
+ joinReasoning(reasoningId: string): Promise<boolean>;
40
+ /**
41
+ * Запускает рассуждение
42
+ * @param {string} reasoningId ID сессии рассуждения
43
+ * @returns {Promise<boolean>} Успешность операции
44
+ */
45
+ startReasoning(reasoningId?: string): Promise<boolean>;
46
+ /**
47
+ * Создает новое рассуждение на сервере
48
+ * @returns {Promise<string>} ID нового рассуждения
49
+ */
50
+ createNewReasoning(): Promise<string>;
51
+ /**
52
+ * Подключается к сессии thinking с расширенными возможностями
53
+ * @param {string} [reasoningId="system"] Идентификатор рассуждения
54
+ * @param {(data: any) => void} [thinkingHandler] Обработчик событий мышления
55
+ * @returns {Promise<string>} Идентификатор сессии рассуждения
56
+ */
57
+ connectToThinkingSession(reasoningId?: string, thinkingHandler?: (data: any) => void): Promise<string>;
58
+ /**
59
+ * Настраивает обработчики событий для стрима от Anthropic
60
+ */
61
+ setupAnthropicStreamHandlers(): void;
62
+ /**
63
+ * Подписывается на события мышления
64
+ * @param {string} reasoningId Идентификатор рассуждения
65
+ * @param {Function} handler Обработчик событий мышления
66
+ * @returns {void}
67
+ */
68
+ subscribeToThinking(reasoningId: string, handler: (data: any) => void): void;
69
+ /**
70
+ * Отписывается от событий мышления
71
+ * @param {string} reasoningId Идентификатор рассуждения
72
+ * @returns {void}
73
+ */
74
+ unsubscribeFromThinking(reasoningId: string): void;
75
+ /**
76
+ * Получает текущий ID активного рассуждения
77
+ * @returns {string | null} ID активного рассуждения или null
78
+ */
79
+ getActiveReasoningId(): string | null;
80
+ /**
81
+ * Устанавливает ID активного рассуждения
82
+ * @param {string} reasoningId ID рассуждения
83
+ * @returns {boolean} Успешность установки
84
+ */
85
+ setActiveReasoningId(reasoningId: string): boolean;
86
+ }
87
+ //# sourceMappingURL=reasoning-ws-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasoning-ws-client.d.ts","sourceRoot":"","sources":["../../../src/ws/reasoning-ws-client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAG3F;;GAEG;AACH,MAAM,WAAW,+BAAgC,SAAQ,0BAA0B;IACjF,qBAAqB;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,wBAAwB,CAAC;CACtC;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,mBAAmB;IAC/D,+BAA+B;IAC/B,OAAO,CAAC,iBAAiB,CAAuB;IAEhD,+CAA+C;IAC/C,OAAO,CAAC,SAAS,CAA2B;IAE5C,mCAAmC;IACnC,OAAO,CAAC,qBAAqB,CAA+C;IAE5E;;;;OAIG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,+BAAoC;IAU1E;;;;OAIG;IACU,kBAAkB,CAAC,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA+C3E;;;;OAIG;IACU,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA8BjE;;;;OAIG;IACU,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6BnE;;;OAGG;IACU,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAwBlD;;;;;OAKG;IACU,wBAAwB,CACnC,WAAW,GAAE,MAAiB,EAC9B,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GACpC,OAAO,CAAC,MAAM,CAAC;IA6DlB;;OAEG;IACI,4BAA4B,IAAI,IAAI;IAqE3C;;;;;OAKG;IACI,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAanF;;;;OAIG;IACI,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAgBzD;;;OAGG;IACI,oBAAoB,IAAI,MAAM,GAAG,IAAI;IAI5C;;;;OAIG;IACI,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;CAW1D"}