solver-sdk 5.1.0 → 5.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.
- package/README.md +264 -4
- package/dist/cjs/api/delta-chunking-api.js +142 -0
- package/dist/cjs/api/delta-chunking-api.js.map +1 -0
- package/dist/cjs/api/projects-api.js +80 -0
- package/dist/cjs/api/projects-api.js.map +1 -1
- package/dist/cjs/code-solver-sdk.js +94 -4
- package/dist/cjs/code-solver-sdk.js.map +1 -1
- package/dist/cjs/delta-chunking/delta-chunking-manager.js +202 -0
- package/dist/cjs/delta-chunking/delta-chunking-manager.js.map +1 -0
- package/dist/cjs/delta-chunking/delta-chunking-utils.js +315 -0
- package/dist/cjs/delta-chunking/delta-chunking-utils.js.map +1 -0
- package/dist/cjs/index.js +10 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/delta-chunking.js +7 -0
- package/dist/cjs/types/delta-chunking.js.map +1 -0
- package/dist/esm/api/delta-chunking-api.js +138 -0
- package/dist/esm/api/delta-chunking-api.js.map +1 -0
- package/dist/esm/api/projects-api.js +80 -0
- package/dist/esm/api/projects-api.js.map +1 -1
- package/dist/esm/code-solver-sdk.js +94 -4
- package/dist/esm/code-solver-sdk.js.map +1 -1
- package/dist/esm/delta-chunking/delta-chunking-manager.js +198 -0
- package/dist/esm/delta-chunking/delta-chunking-manager.js.map +1 -0
- package/dist/esm/delta-chunking/delta-chunking-utils.js +278 -0
- package/dist/esm/delta-chunking/delta-chunking-utils.js.map +1 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/delta-chunking.js +6 -0
- package/dist/esm/types/delta-chunking.js.map +1 -0
- package/dist/types/api/delta-chunking-api.d.ts +51 -0
- package/dist/types/api/delta-chunking-api.d.ts.map +1 -0
- package/dist/types/api/projects-api.d.ts +42 -0
- package/dist/types/api/projects-api.d.ts.map +1 -1
- package/dist/types/code-solver-sdk.d.ts +50 -1
- package/dist/types/code-solver-sdk.d.ts.map +1 -1
- package/dist/types/delta-chunking/delta-chunking-manager.d.ts +60 -0
- package/dist/types/delta-chunking/delta-chunking-manager.d.ts.map +1 -0
- package/dist/types/delta-chunking/delta-chunking-utils.d.ts +62 -0
- package/dist/types/delta-chunking/delta-chunking-utils.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/interfaces/sdk-options.d.ts +35 -0
- package/dist/types/interfaces/sdk-options.d.ts.map +1 -1
- package/dist/types/types/delta-chunking.d.ts +210 -0
- package/dist/types/types/delta-chunking.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -9,6 +9,10 @@ const tools_api_js_1 = require("./api/tools-api.js");
|
|
|
9
9
|
const updates_api_js_1 = require("./api/updates-api.js");
|
|
10
10
|
const models_api_js_1 = require("./api/models-api.js");
|
|
11
11
|
const version_js_1 = require("./version.js");
|
|
12
|
+
// 🔄 Delta-Chunking imports
|
|
13
|
+
const delta_chunking_api_js_1 = require("./api/delta-chunking-api.js");
|
|
14
|
+
const delta_chunking_manager_js_1 = require("./delta-chunking/delta-chunking-manager.js");
|
|
15
|
+
const delta_chunking_utils_js_1 = require("./delta-chunking/delta-chunking-utils.js");
|
|
12
16
|
/**
|
|
13
17
|
* Определение типа среды выполнения
|
|
14
18
|
* @returns 'browser' | 'node' | 'unknown'
|
|
@@ -129,6 +133,13 @@ class CodeSolverSDK {
|
|
|
129
133
|
this._tools = new tools_api_js_1.ToolsApi(this.httpClient);
|
|
130
134
|
this._models = new models_api_js_1.ModelsApi(this.httpClient);
|
|
131
135
|
this._updates = new updates_api_js_1.UpdatesApi(this.httpClient);
|
|
136
|
+
// 🔄 Инициализируем Delta-Chunking если включен
|
|
137
|
+
if (this._options.deltaChunking?.enabled) {
|
|
138
|
+
const deltaApi = new delta_chunking_api_js_1.DeltaChunkingApi(this.httpClient);
|
|
139
|
+
const deltaUtils = new delta_chunking_utils_js_1.DeltaChunkingUtils(this._projects, this._options, this.environment, this.logger);
|
|
140
|
+
this._deltaManager = new delta_chunking_manager_js_1.DeltaChunkingManager(deltaApi, deltaUtils, this._options, this.logger);
|
|
141
|
+
this.logger.log('🔄 Delta-Chunking инициализирован');
|
|
142
|
+
}
|
|
132
143
|
}
|
|
133
144
|
/**
|
|
134
145
|
* Получает версию SDK
|
|
@@ -241,6 +252,74 @@ class CodeSolverSDK {
|
|
|
241
252
|
get updates() {
|
|
242
253
|
return this._updates;
|
|
243
254
|
}
|
|
255
|
+
// 🔄 DELTA-CHUNKING МЕТОДЫ
|
|
256
|
+
/**
|
|
257
|
+
* Проверяет активность delta-chunking функциональности
|
|
258
|
+
* @returns {boolean} true если delta-chunking включен и инициализирован
|
|
259
|
+
*/
|
|
260
|
+
get isDeltaChunkingEnabled() {
|
|
261
|
+
return !!this._deltaManager?.isEnabled;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* 🚀 Синхронизация проекта по пути к директории
|
|
265
|
+
* @param {string} projectId ID проекта
|
|
266
|
+
* @param {string} projectPath Путь к директории проекта
|
|
267
|
+
* @param {SyncOptions} options Опции синхронизации
|
|
268
|
+
* @returns {Promise<SyncResult>} Результат синхронизации
|
|
269
|
+
*/
|
|
270
|
+
async syncProject(projectId, projectPath, options = {}) {
|
|
271
|
+
if (!this._deltaManager) {
|
|
272
|
+
throw new Error('Delta-chunking не включен. Установите deltaChunking.enabled = true в конфигурации SDK');
|
|
273
|
+
}
|
|
274
|
+
return await this._deltaManager.syncProject(projectId, projectPath, options);
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* 📤 Синхронизация массива файлов (для web/браузера)
|
|
278
|
+
* @param {string} projectId ID проекта
|
|
279
|
+
* @param {FileContent[]} files Массив файлов для синхронизации
|
|
280
|
+
* @param {SyncOptions} options Опции синхронизации
|
|
281
|
+
* @returns {Promise<SyncResult>} Результат синхронизации
|
|
282
|
+
*/
|
|
283
|
+
async syncFiles(projectId, files, options = {}) {
|
|
284
|
+
if (!this._deltaManager) {
|
|
285
|
+
throw new Error('Delta-chunking не включен. Установите deltaChunking.enabled = true в конфигурации SDK');
|
|
286
|
+
}
|
|
287
|
+
return await this._deltaManager.syncFiles(projectId, files, options);
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* 👀 Запуск автоматического наблюдения за изменениями
|
|
291
|
+
* @param {string} projectId ID проекта
|
|
292
|
+
* @param {string} watchPath Путь для наблюдения
|
|
293
|
+
* @returns {Promise<FileWatcher>} File watcher
|
|
294
|
+
*/
|
|
295
|
+
async startAutoSync(projectId, watchPath) {
|
|
296
|
+
if (!this._deltaManager) {
|
|
297
|
+
throw new Error('Delta-chunking не включен. Установите deltaChunking.enabled = true в конфигурации SDK');
|
|
298
|
+
}
|
|
299
|
+
return await this._deltaManager.startAutoSync(projectId, watchPath);
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* 📊 Получение статуса синхронизации
|
|
303
|
+
* @param {string} projectId ID проекта
|
|
304
|
+
* @returns {Promise<SyncStatus>} Статус синхронизации
|
|
305
|
+
*/
|
|
306
|
+
async getSyncStatus(projectId) {
|
|
307
|
+
if (!this._deltaManager) {
|
|
308
|
+
throw new Error('Delta-chunking не включен. Установите deltaChunking.enabled = true в конфигурации SDK');
|
|
309
|
+
}
|
|
310
|
+
return await this._deltaManager.getSyncStatus(projectId);
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* ❌ Отмена активной синхронизации
|
|
314
|
+
* @param {string} projectId ID проекта
|
|
315
|
+
* @returns {Promise<boolean>} true если синхронизация отменена
|
|
316
|
+
*/
|
|
317
|
+
async cancelSync(projectId) {
|
|
318
|
+
if (!this._deltaManager) {
|
|
319
|
+
throw new Error('Delta-chunking не включен. Установите deltaChunking.enabled = true в конфигурации SDK');
|
|
320
|
+
}
|
|
321
|
+
return await this._deltaManager.cancelSync(projectId);
|
|
322
|
+
}
|
|
244
323
|
/**
|
|
245
324
|
* Обрабатывает ошибки SDK
|
|
246
325
|
* @param {Error} error Ошибка
|
|
@@ -263,9 +342,12 @@ class CodeSolverSDK {
|
|
|
263
342
|
/**
|
|
264
343
|
* Освобождает ресурсы SDK
|
|
265
344
|
*/
|
|
266
|
-
dispose() {
|
|
267
|
-
this.logger.debug('Освобождение ресурсов');
|
|
268
|
-
//
|
|
345
|
+
async dispose() {
|
|
346
|
+
this.logger.debug('Освобождение ресурсов SDK');
|
|
347
|
+
// Останавливаем все file watchers если есть delta-chunking
|
|
348
|
+
if (this._deltaManager) {
|
|
349
|
+
await this._deltaManager.stopAllWatchers();
|
|
350
|
+
}
|
|
269
351
|
}
|
|
270
352
|
/**
|
|
271
353
|
* Устанавливает новый API ключ
|
|
@@ -284,9 +366,17 @@ class CodeSolverSDK {
|
|
|
284
366
|
version: version_js_1.VERSION,
|
|
285
367
|
environment: this.environment,
|
|
286
368
|
baseURL: this._options.baseURL,
|
|
287
|
-
hasApiKey: !!this._options.apiKey
|
|
369
|
+
hasApiKey: !!this._options.apiKey,
|
|
370
|
+
deltaChunkingEnabled: this.isDeltaChunkingEnabled
|
|
288
371
|
};
|
|
289
372
|
}
|
|
373
|
+
/**
|
|
374
|
+
* 🔄 Получение менеджера Delta-Chunking для расширенного API
|
|
375
|
+
* @returns {DeltaChunkingManager | undefined} Менеджер delta-chunking или undefined если отключен
|
|
376
|
+
*/
|
|
377
|
+
get deltaManager() {
|
|
378
|
+
return this._deltaManager;
|
|
379
|
+
}
|
|
290
380
|
}
|
|
291
381
|
exports.CodeSolverSDK = CodeSolverSDK;
|
|
292
382
|
/** Глобальный обработчик ошибок */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-solver-sdk.js","sourceRoot":"","sources":["../../src/code-solver-sdk.ts"],"names":[],"mappings":";;;AAAA,2DAAoD;AACpD,2DAAoD;AACpD,uDAAgD;AAChD,sDAAkD;AAClD,qDAA8C;AAC9C,yDAAkD;AAElD,uDAAgD;AAChD,6CAAuC;
|
|
1
|
+
{"version":3,"file":"code-solver-sdk.js","sourceRoot":"","sources":["../../src/code-solver-sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 🔄 Delta-Chunking Manager
|
|
4
|
+
* Менеджер для координации delta-chunking операций
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.DeltaChunkingManager = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* Менеджер для координации всех delta-chunking операций
|
|
10
|
+
*/
|
|
11
|
+
class DeltaChunkingManager {
|
|
12
|
+
constructor(deltaApi, utils, options, logger) {
|
|
13
|
+
this.deltaApi = deltaApi;
|
|
14
|
+
this.utils = utils;
|
|
15
|
+
this.options = options;
|
|
16
|
+
this.logger = logger;
|
|
17
|
+
this.activeWatchers = new Map();
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Проверка активности delta-chunking
|
|
21
|
+
*/
|
|
22
|
+
get isEnabled() {
|
|
23
|
+
return !!this.deltaApi && !!this.options.deltaChunking?.enabled;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* 🚀 Синхронизация проекта по пути к директории
|
|
27
|
+
*/
|
|
28
|
+
async syncProject(projectId, projectPath, options = {}) {
|
|
29
|
+
this.ensureEnabled();
|
|
30
|
+
const startTime = Date.now();
|
|
31
|
+
try {
|
|
32
|
+
this.logger.log(`🚀 Начинаю синхронизацию проекта ${projectId} из ${projectPath}`);
|
|
33
|
+
// 1. Валидация проекта
|
|
34
|
+
await this.utils.validateProject(projectId);
|
|
35
|
+
// 2. Сканирование файлов
|
|
36
|
+
const files = await this.utils.scanProjectFiles(projectPath, options);
|
|
37
|
+
this.logger.log(`📂 Найдено файлов: ${files.length}`);
|
|
38
|
+
// 3. Синхронизация через API
|
|
39
|
+
return await this.syncFiles(projectId, files, options);
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
43
|
+
this.logger.error(`❌ Ошибка синхронизации проекта: ${errorMessage}`);
|
|
44
|
+
return {
|
|
45
|
+
success: false,
|
|
46
|
+
projectId,
|
|
47
|
+
processedChunks: 0,
|
|
48
|
+
totalChunks: 0,
|
|
49
|
+
duration: Date.now() - startTime,
|
|
50
|
+
error: errorMessage,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 📤 Синхронизация массива файлов (для web/браузера)
|
|
56
|
+
*/
|
|
57
|
+
async syncFiles(projectId, files, options = {}) {
|
|
58
|
+
this.ensureEnabled();
|
|
59
|
+
const startTime = Date.now();
|
|
60
|
+
try {
|
|
61
|
+
this.logger.log(`📤 Начинаю синхронизацию ${files.length} файлов для проекта ${projectId}`);
|
|
62
|
+
// 1. Инициализация синхронизации
|
|
63
|
+
const rootHash = this.utils.calculateRootHash(files);
|
|
64
|
+
const initResult = await this.deltaApi.initSync(projectId, { clientRootHash: rootHash });
|
|
65
|
+
this.logger.log(`🔄 Сессия инициализирована: ${initResult.sessionId}`);
|
|
66
|
+
// 2. Создание чанков
|
|
67
|
+
const chunks = await this.utils.createChunksFromFiles(files);
|
|
68
|
+
this.logger.log(`🔧 Создано чанков: ${chunks.length}`);
|
|
69
|
+
// 3. Шифрование чанков
|
|
70
|
+
const encryptedChunks = await this.utils.encryptChunks(chunks);
|
|
71
|
+
// 4. Отправка батчами
|
|
72
|
+
const batchSize = options.batchSize || 50;
|
|
73
|
+
let processedTotal = 0;
|
|
74
|
+
const errors = [];
|
|
75
|
+
for (let i = 0; i < encryptedChunks.length; i += batchSize) {
|
|
76
|
+
const batch = encryptedChunks.slice(i, i + batchSize);
|
|
77
|
+
try {
|
|
78
|
+
const batchResult = await this.deltaApi.uploadChunkBatch(projectId, {
|
|
79
|
+
batchIndex: Math.floor(i / batchSize),
|
|
80
|
+
totalBatches: Math.ceil(encryptedChunks.length / batchSize),
|
|
81
|
+
chunks: batch,
|
|
82
|
+
});
|
|
83
|
+
processedTotal += batchResult.processed;
|
|
84
|
+
// Уведомление о прогрессе
|
|
85
|
+
if (options.onProgress) {
|
|
86
|
+
options.onProgress(i + batch.length, encryptedChunks.length);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
91
|
+
errors.push(`Ошибка батча ${Math.floor(i / batchSize)}: ${errorMessage}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// 5. Финализация
|
|
95
|
+
const finalizeResult = await this.deltaApi.finalizeSync(initResult.sessionId);
|
|
96
|
+
const duration = Date.now() - startTime;
|
|
97
|
+
this.logger.log(`✅ Синхронизация завершена за ${duration}ms. Обработано: ${processedTotal}`);
|
|
98
|
+
return {
|
|
99
|
+
success: finalizeResult.success,
|
|
100
|
+
projectId,
|
|
101
|
+
sessionId: initResult.sessionId,
|
|
102
|
+
processedChunks: processedTotal,
|
|
103
|
+
totalChunks: chunks.length,
|
|
104
|
+
duration,
|
|
105
|
+
error: errors.length > 0 ? errors.join('; ') : undefined,
|
|
106
|
+
details: {
|
|
107
|
+
newFiles: files.length, // Упрощено для начала
|
|
108
|
+
changedFiles: 0,
|
|
109
|
+
deletedFiles: 0,
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
115
|
+
this.logger.error(`❌ Ошибка синхронизации файлов: ${errorMessage}`);
|
|
116
|
+
return {
|
|
117
|
+
success: false,
|
|
118
|
+
projectId,
|
|
119
|
+
processedChunks: 0,
|
|
120
|
+
totalChunks: files.length,
|
|
121
|
+
duration: Date.now() - startTime,
|
|
122
|
+
error: errorMessage,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* 👀 Запуск автоматического наблюдения за изменениями
|
|
128
|
+
*/
|
|
129
|
+
async startAutoSync(projectId, watchPath) {
|
|
130
|
+
this.ensureEnabled();
|
|
131
|
+
this.logger.log(`👀 Запускаю auto-sync для проекта ${projectId} в ${watchPath}`);
|
|
132
|
+
const watcher = {
|
|
133
|
+
projectId,
|
|
134
|
+
watchPath,
|
|
135
|
+
isActive: false,
|
|
136
|
+
on: (event, callback) => {
|
|
137
|
+
// TODO: Реализовать event listener
|
|
138
|
+
console.log(`📡 Event listener добавлен для ${event}`);
|
|
139
|
+
},
|
|
140
|
+
async start() {
|
|
141
|
+
this.isActive = true;
|
|
142
|
+
// TODO: Реализовать реальный file watching
|
|
143
|
+
console.log(`🟢 File watcher запущен для ${watchPath}`);
|
|
144
|
+
},
|
|
145
|
+
async stop() {
|
|
146
|
+
this.isActive = false;
|
|
147
|
+
console.log(`🔴 File watcher остановлен для ${watchPath}`);
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
// Регистрируем watcher
|
|
151
|
+
this.activeWatchers.set(`${projectId}:${watchPath}`, watcher);
|
|
152
|
+
// TODO: Интеграция с реальным file watching (fs.watch для Node.js)
|
|
153
|
+
this.logger.warn('⚠️ File watching пока в разработке - используйте ручную синхронизацию');
|
|
154
|
+
return watcher;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* 📊 Получение статуса синхронизации
|
|
158
|
+
*/
|
|
159
|
+
async getSyncStatus(projectId) {
|
|
160
|
+
this.ensureEnabled();
|
|
161
|
+
return await this.deltaApi.getSyncStatus(projectId);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* ❌ Отмена активной синхронизации
|
|
165
|
+
*/
|
|
166
|
+
async cancelSync(projectId) {
|
|
167
|
+
this.ensureEnabled();
|
|
168
|
+
const result = await this.deltaApi.cancelSync(projectId);
|
|
169
|
+
return result.success;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Получение активных file watchers
|
|
173
|
+
*/
|
|
174
|
+
getActiveWatchers() {
|
|
175
|
+
return new Map(this.activeWatchers);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Остановка всех file watchers
|
|
179
|
+
*/
|
|
180
|
+
async stopAllWatchers() {
|
|
181
|
+
this.logger.log(`⏹️ Останавливаю ${this.activeWatchers.size} активных watchers`);
|
|
182
|
+
for (const [key, watcher] of this.activeWatchers) {
|
|
183
|
+
try {
|
|
184
|
+
await watcher.stop();
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
this.logger.warn(`⚠️ Ошибка остановки watcher ${key}: ${error instanceof Error ? error.message : 'unknown'}`);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
this.activeWatchers.clear();
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Проверка что delta-chunking включен
|
|
194
|
+
*/
|
|
195
|
+
ensureEnabled() {
|
|
196
|
+
if (!this.isEnabled) {
|
|
197
|
+
throw new Error('Delta-chunking не включен. Установите deltaChunking.enabled = true в конфигурации SDK');
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
exports.DeltaChunkingManager = DeltaChunkingManager;
|
|
202
|
+
//# sourceMappingURL=delta-chunking-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delta-chunking-manager.js","sourceRoot":"","sources":["../../../src/delta-chunking/delta-chunking-manager.ts"],"names":[],"mappings":"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"}
|