solver-sdk 5.0.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/api/updates-api.js +242 -0
- package/dist/cjs/api/updates-api.js.map +1 -0
- package/dist/cjs/code-solver-sdk.js +103 -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 +11 -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/cjs/types/index.js +16 -0
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/updates.js +6 -0
- package/dist/cjs/types/updates.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/api/updates-api.js +238 -0
- package/dist/esm/api/updates-api.js.map +1 -0
- package/dist/esm/code-solver-sdk.js +103 -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 +7 -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/esm/types/index.js +2 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/updates.js +5 -0
- package/dist/esm/types/updates.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/api/updates-api.d.ts +145 -0
- package/dist/types/api/updates-api.d.ts.map +1 -0
- package/dist/types/code-solver-sdk.d.ts +58 -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 +5 -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/dist/types/types/index.d.ts +1 -0
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/types/updates.d.ts +86 -0
- package/dist/types/types/updates.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 🔄 Delta-Chunking Manager
|
|
3
|
+
* Менеджер для координации delta-chunking операций
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Менеджер для координации всех delta-chunking операций
|
|
7
|
+
*/
|
|
8
|
+
export class DeltaChunkingManager {
|
|
9
|
+
constructor(deltaApi, utils, options, logger) {
|
|
10
|
+
this.deltaApi = deltaApi;
|
|
11
|
+
this.utils = utils;
|
|
12
|
+
this.options = options;
|
|
13
|
+
this.logger = logger;
|
|
14
|
+
this.activeWatchers = new Map();
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Проверка активности delta-chunking
|
|
18
|
+
*/
|
|
19
|
+
get isEnabled() {
|
|
20
|
+
return !!this.deltaApi && !!this.options.deltaChunking?.enabled;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* 🚀 Синхронизация проекта по пути к директории
|
|
24
|
+
*/
|
|
25
|
+
async syncProject(projectId, projectPath, options = {}) {
|
|
26
|
+
this.ensureEnabled();
|
|
27
|
+
const startTime = Date.now();
|
|
28
|
+
try {
|
|
29
|
+
this.logger.log(`🚀 Начинаю синхронизацию проекта ${projectId} из ${projectPath}`);
|
|
30
|
+
// 1. Валидация проекта
|
|
31
|
+
await this.utils.validateProject(projectId);
|
|
32
|
+
// 2. Сканирование файлов
|
|
33
|
+
const files = await this.utils.scanProjectFiles(projectPath, options);
|
|
34
|
+
this.logger.log(`📂 Найдено файлов: ${files.length}`);
|
|
35
|
+
// 3. Синхронизация через API
|
|
36
|
+
return await this.syncFiles(projectId, files, options);
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
40
|
+
this.logger.error(`❌ Ошибка синхронизации проекта: ${errorMessage}`);
|
|
41
|
+
return {
|
|
42
|
+
success: false,
|
|
43
|
+
projectId,
|
|
44
|
+
processedChunks: 0,
|
|
45
|
+
totalChunks: 0,
|
|
46
|
+
duration: Date.now() - startTime,
|
|
47
|
+
error: errorMessage,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* 📤 Синхронизация массива файлов (для web/браузера)
|
|
53
|
+
*/
|
|
54
|
+
async syncFiles(projectId, files, options = {}) {
|
|
55
|
+
this.ensureEnabled();
|
|
56
|
+
const startTime = Date.now();
|
|
57
|
+
try {
|
|
58
|
+
this.logger.log(`📤 Начинаю синхронизацию ${files.length} файлов для проекта ${projectId}`);
|
|
59
|
+
// 1. Инициализация синхронизации
|
|
60
|
+
const rootHash = this.utils.calculateRootHash(files);
|
|
61
|
+
const initResult = await this.deltaApi.initSync(projectId, { clientRootHash: rootHash });
|
|
62
|
+
this.logger.log(`🔄 Сессия инициализирована: ${initResult.sessionId}`);
|
|
63
|
+
// 2. Создание чанков
|
|
64
|
+
const chunks = await this.utils.createChunksFromFiles(files);
|
|
65
|
+
this.logger.log(`🔧 Создано чанков: ${chunks.length}`);
|
|
66
|
+
// 3. Шифрование чанков
|
|
67
|
+
const encryptedChunks = await this.utils.encryptChunks(chunks);
|
|
68
|
+
// 4. Отправка батчами
|
|
69
|
+
const batchSize = options.batchSize || 50;
|
|
70
|
+
let processedTotal = 0;
|
|
71
|
+
const errors = [];
|
|
72
|
+
for (let i = 0; i < encryptedChunks.length; i += batchSize) {
|
|
73
|
+
const batch = encryptedChunks.slice(i, i + batchSize);
|
|
74
|
+
try {
|
|
75
|
+
const batchResult = await this.deltaApi.uploadChunkBatch(projectId, {
|
|
76
|
+
batchIndex: Math.floor(i / batchSize),
|
|
77
|
+
totalBatches: Math.ceil(encryptedChunks.length / batchSize),
|
|
78
|
+
chunks: batch,
|
|
79
|
+
});
|
|
80
|
+
processedTotal += batchResult.processed;
|
|
81
|
+
// Уведомление о прогрессе
|
|
82
|
+
if (options.onProgress) {
|
|
83
|
+
options.onProgress(i + batch.length, encryptedChunks.length);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
88
|
+
errors.push(`Ошибка батча ${Math.floor(i / batchSize)}: ${errorMessage}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// 5. Финализация
|
|
92
|
+
const finalizeResult = await this.deltaApi.finalizeSync(initResult.sessionId);
|
|
93
|
+
const duration = Date.now() - startTime;
|
|
94
|
+
this.logger.log(`✅ Синхронизация завершена за ${duration}ms. Обработано: ${processedTotal}`);
|
|
95
|
+
return {
|
|
96
|
+
success: finalizeResult.success,
|
|
97
|
+
projectId,
|
|
98
|
+
sessionId: initResult.sessionId,
|
|
99
|
+
processedChunks: processedTotal,
|
|
100
|
+
totalChunks: chunks.length,
|
|
101
|
+
duration,
|
|
102
|
+
error: errors.length > 0 ? errors.join('; ') : undefined,
|
|
103
|
+
details: {
|
|
104
|
+
newFiles: files.length, // Упрощено для начала
|
|
105
|
+
changedFiles: 0,
|
|
106
|
+
deletedFiles: 0,
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
112
|
+
this.logger.error(`❌ Ошибка синхронизации файлов: ${errorMessage}`);
|
|
113
|
+
return {
|
|
114
|
+
success: false,
|
|
115
|
+
projectId,
|
|
116
|
+
processedChunks: 0,
|
|
117
|
+
totalChunks: files.length,
|
|
118
|
+
duration: Date.now() - startTime,
|
|
119
|
+
error: errorMessage,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* 👀 Запуск автоматического наблюдения за изменениями
|
|
125
|
+
*/
|
|
126
|
+
async startAutoSync(projectId, watchPath) {
|
|
127
|
+
this.ensureEnabled();
|
|
128
|
+
this.logger.log(`👀 Запускаю auto-sync для проекта ${projectId} в ${watchPath}`);
|
|
129
|
+
const watcher = {
|
|
130
|
+
projectId,
|
|
131
|
+
watchPath,
|
|
132
|
+
isActive: false,
|
|
133
|
+
on: (event, callback) => {
|
|
134
|
+
// TODO: Реализовать event listener
|
|
135
|
+
console.log(`📡 Event listener добавлен для ${event}`);
|
|
136
|
+
},
|
|
137
|
+
async start() {
|
|
138
|
+
this.isActive = true;
|
|
139
|
+
// TODO: Реализовать реальный file watching
|
|
140
|
+
console.log(`🟢 File watcher запущен для ${watchPath}`);
|
|
141
|
+
},
|
|
142
|
+
async stop() {
|
|
143
|
+
this.isActive = false;
|
|
144
|
+
console.log(`🔴 File watcher остановлен для ${watchPath}`);
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
// Регистрируем watcher
|
|
148
|
+
this.activeWatchers.set(`${projectId}:${watchPath}`, watcher);
|
|
149
|
+
// TODO: Интеграция с реальным file watching (fs.watch для Node.js)
|
|
150
|
+
this.logger.warn('⚠️ File watching пока в разработке - используйте ручную синхронизацию');
|
|
151
|
+
return watcher;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* 📊 Получение статуса синхронизации
|
|
155
|
+
*/
|
|
156
|
+
async getSyncStatus(projectId) {
|
|
157
|
+
this.ensureEnabled();
|
|
158
|
+
return await this.deltaApi.getSyncStatus(projectId);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* ❌ Отмена активной синхронизации
|
|
162
|
+
*/
|
|
163
|
+
async cancelSync(projectId) {
|
|
164
|
+
this.ensureEnabled();
|
|
165
|
+
const result = await this.deltaApi.cancelSync(projectId);
|
|
166
|
+
return result.success;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Получение активных file watchers
|
|
170
|
+
*/
|
|
171
|
+
getActiveWatchers() {
|
|
172
|
+
return new Map(this.activeWatchers);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Остановка всех file watchers
|
|
176
|
+
*/
|
|
177
|
+
async stopAllWatchers() {
|
|
178
|
+
this.logger.log(`⏹️ Останавливаю ${this.activeWatchers.size} активных watchers`);
|
|
179
|
+
for (const [key, watcher] of this.activeWatchers) {
|
|
180
|
+
try {
|
|
181
|
+
await watcher.stop();
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
this.logger.warn(`⚠️ Ошибка остановки watcher ${key}: ${error instanceof Error ? error.message : 'unknown'}`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
this.activeWatchers.clear();
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Проверка что delta-chunking включен
|
|
191
|
+
*/
|
|
192
|
+
ensureEnabled() {
|
|
193
|
+
if (!this.isEnabled) {
|
|
194
|
+
throw new Error('Delta-chunking не включен. Установите deltaChunking.enabled = true в конфигурации SDK');
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
//# 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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"}
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 🔧 Delta-Chunking Utilities
|
|
3
|
+
* Утилиты для обработки файлов, чанков и шифрования
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Утилиты для Delta-Chunking операций
|
|
7
|
+
*/
|
|
8
|
+
export class DeltaChunkingUtils {
|
|
9
|
+
constructor(projects, options, environment, logger) {
|
|
10
|
+
this.projects = projects;
|
|
11
|
+
this.options = options;
|
|
12
|
+
this.environment = environment;
|
|
13
|
+
this.logger = logger;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Валидация проекта через Projects API
|
|
17
|
+
*/
|
|
18
|
+
async validateProject(projectId) {
|
|
19
|
+
try {
|
|
20
|
+
// Используем существующий projects API для проверки
|
|
21
|
+
await this.projects.getProject(projectId);
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
25
|
+
throw new Error(`Проект ${projectId} не найден или недоступен: ${errorMessage}`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Сканирование файлов проекта (Node.js only)
|
|
30
|
+
*/
|
|
31
|
+
async scanProjectFiles(projectPath, options) {
|
|
32
|
+
// Проверяем среду выполнения
|
|
33
|
+
if (this.environment === 'browser') {
|
|
34
|
+
throw new Error('scanProjectFiles недоступен в браузере. Используйте syncFiles() с подготовленными файлами.');
|
|
35
|
+
}
|
|
36
|
+
const files = [];
|
|
37
|
+
// Динамический импорт fs для Node.js
|
|
38
|
+
const fs = await import('fs/promises');
|
|
39
|
+
const path = await import('path');
|
|
40
|
+
const scanDir = async (dirPath) => {
|
|
41
|
+
const entries = await fs.readdir(dirPath, { withFileTypes: true });
|
|
42
|
+
for (const entry of entries) {
|
|
43
|
+
const fullPath = path.join(dirPath, entry.name);
|
|
44
|
+
const relativePath = path.relative(projectPath, fullPath);
|
|
45
|
+
// Проверяем игнорируемые паттерны
|
|
46
|
+
const shouldIgnore = options.ignorePatterns?.some(pattern => relativePath.includes(pattern.replace('/**', '')) ||
|
|
47
|
+
entry.name.match(new RegExp(pattern.replace('*', '.*'))));
|
|
48
|
+
if (shouldIgnore)
|
|
49
|
+
continue;
|
|
50
|
+
if (entry.isDirectory()) {
|
|
51
|
+
await scanDir(fullPath);
|
|
52
|
+
}
|
|
53
|
+
else if (entry.isFile()) {
|
|
54
|
+
// Проверяем расширения файлов
|
|
55
|
+
const ext = path.extname(entry.name);
|
|
56
|
+
if (options.includeExtensions && !options.includeExtensions.includes(ext)) {
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
// Проверяем размер файла
|
|
60
|
+
const stats = await fs.stat(fullPath);
|
|
61
|
+
const fileSizeKB = stats.size / 1024;
|
|
62
|
+
if (options.maxFileSizeKB && fileSizeKB > options.maxFileSizeKB) {
|
|
63
|
+
this.logger.warn(`⚠️ Пропускаю большой файл: ${relativePath} (${fileSizeKB.toFixed(1)}KB)`);
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
try {
|
|
67
|
+
const content = await fs.readFile(fullPath, 'utf-8');
|
|
68
|
+
files.push({
|
|
69
|
+
path: relativePath,
|
|
70
|
+
content,
|
|
71
|
+
size: stats.size,
|
|
72
|
+
lastModified: stats.mtime.getTime()
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
77
|
+
this.logger.warn(`⚠️ Не удалось прочитать файл ${relativePath}: ${errorMessage}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
try {
|
|
83
|
+
await scanDir(projectPath);
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
87
|
+
throw new Error(`Ошибка сканирования директории ${projectPath}: ${errorMessage}`);
|
|
88
|
+
}
|
|
89
|
+
return files;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Создание чанков из файлов
|
|
93
|
+
*/
|
|
94
|
+
async createChunksFromFiles(files) {
|
|
95
|
+
const chunks = [];
|
|
96
|
+
for (const file of files) {
|
|
97
|
+
const fileChunks = await this.chunkFile(file);
|
|
98
|
+
chunks.push(...fileChunks);
|
|
99
|
+
}
|
|
100
|
+
return chunks;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Разбиение файла на чанки
|
|
104
|
+
*/
|
|
105
|
+
async chunkFile(file) {
|
|
106
|
+
// Простое разбиение на чанки по строкам (без tree-sitter пока)
|
|
107
|
+
const lines = file.content.split('\n');
|
|
108
|
+
const chunks = [];
|
|
109
|
+
const config = this.options.deltaChunking?.chunking || {};
|
|
110
|
+
const maxTokens = config.maxTokens || 400;
|
|
111
|
+
const minTokens = config.minTokens || 100;
|
|
112
|
+
let currentChunk = '';
|
|
113
|
+
let startLine = 1;
|
|
114
|
+
for (let i = 0; i < lines.length; i++) {
|
|
115
|
+
const line = lines[i];
|
|
116
|
+
const newChunkContent = currentChunk + (currentChunk ? '\n' : '') + line;
|
|
117
|
+
// Простая оценка токенов (примерно 4 символа = 1 токен)
|
|
118
|
+
const estimatedTokens = newChunkContent.length / 4;
|
|
119
|
+
if (estimatedTokens >= maxTokens && currentChunk.length > 0) {
|
|
120
|
+
// Создаем чанк если достигли лимита
|
|
121
|
+
if (currentChunk.trim()) {
|
|
122
|
+
chunks.push({
|
|
123
|
+
id: `${file.path}-${chunks.length}`,
|
|
124
|
+
obfuscatedPath: this.obfuscatePath(file.path),
|
|
125
|
+
content: currentChunk,
|
|
126
|
+
metadata: {
|
|
127
|
+
chunkType: this.detectChunkType(currentChunk),
|
|
128
|
+
startLine,
|
|
129
|
+
endLine: i,
|
|
130
|
+
language: this.detectLanguage(file.path),
|
|
131
|
+
originalSize: currentChunk.length,
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
currentChunk = line;
|
|
136
|
+
startLine = i + 1;
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
currentChunk = newChunkContent;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// Добавляем последний чанк
|
|
143
|
+
if (currentChunk.trim()) {
|
|
144
|
+
chunks.push({
|
|
145
|
+
id: `${file.path}-${chunks.length}`,
|
|
146
|
+
obfuscatedPath: this.obfuscatePath(file.path),
|
|
147
|
+
content: currentChunk,
|
|
148
|
+
metadata: {
|
|
149
|
+
chunkType: this.detectChunkType(currentChunk),
|
|
150
|
+
startLine,
|
|
151
|
+
endLine: lines.length,
|
|
152
|
+
language: this.detectLanguage(file.path),
|
|
153
|
+
originalSize: currentChunk.length,
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
return chunks;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Шифрование чанков
|
|
161
|
+
*/
|
|
162
|
+
async encryptChunks(chunks) {
|
|
163
|
+
if (!this.options.deltaChunking?.encryption?.enabled) {
|
|
164
|
+
// Если шифрование отключено, просто конвертируем
|
|
165
|
+
return chunks.map(chunk => ({
|
|
166
|
+
...chunk,
|
|
167
|
+
encryptedContent: Buffer.from(chunk.content, 'utf-8'),
|
|
168
|
+
iv: Buffer.alloc(12, 0), // Пустой IV
|
|
169
|
+
authTag: Buffer.alloc(16, 0), // Пустой authTag
|
|
170
|
+
hash: this.calculateHash(chunk.content),
|
|
171
|
+
}));
|
|
172
|
+
}
|
|
173
|
+
const encryptionKey = this.options.deltaChunking?.encryption?.key;
|
|
174
|
+
if (!encryptionKey || encryptionKey.length !== 32) {
|
|
175
|
+
throw new Error('Ключ шифрования должен содержать ровно 32 символа для AES-256');
|
|
176
|
+
}
|
|
177
|
+
// Динамический импорт crypto для Node.js/браузера
|
|
178
|
+
const crypto = this.environment === 'node'
|
|
179
|
+
? await import('crypto')
|
|
180
|
+
: null; // В браузере нужна другая реализация
|
|
181
|
+
if (!crypto && this.environment === 'node') {
|
|
182
|
+
throw new Error('Модуль crypto недоступен');
|
|
183
|
+
}
|
|
184
|
+
return chunks.map(chunk => {
|
|
185
|
+
if (this.environment === 'browser') {
|
|
186
|
+
// TODO: Реализовать Web Crypto API для браузера
|
|
187
|
+
this.logger.warn('⚠️ Шифрование в браузере пока не реализовано');
|
|
188
|
+
return {
|
|
189
|
+
...chunk,
|
|
190
|
+
encryptedContent: Buffer.from(chunk.content, 'utf-8'),
|
|
191
|
+
iv: Buffer.alloc(12, 0),
|
|
192
|
+
authTag: Buffer.alloc(16, 0),
|
|
193
|
+
hash: this.calculateHash(chunk.content),
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
// AES-256-GCM шифрование для Node.js
|
|
197
|
+
const iv = crypto.randomBytes(12);
|
|
198
|
+
const cipher = crypto.createCipheriv('aes-256-gcm', Buffer.from(encryptionKey), iv);
|
|
199
|
+
cipher.setAAD(Buffer.from(chunk.id, 'utf-8'));
|
|
200
|
+
let encrypted = cipher.update(chunk.content, 'utf-8');
|
|
201
|
+
encrypted = Buffer.concat([encrypted, cipher.final()]);
|
|
202
|
+
const authTag = cipher.getAuthTag();
|
|
203
|
+
return {
|
|
204
|
+
...chunk,
|
|
205
|
+
encryptedContent: encrypted,
|
|
206
|
+
iv,
|
|
207
|
+
authTag,
|
|
208
|
+
hash: this.calculateHash(chunk.content),
|
|
209
|
+
};
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Расчет root hash для Merkle tree
|
|
214
|
+
*/
|
|
215
|
+
calculateRootHash(files) {
|
|
216
|
+
// Простой хеш от всех путей файлов и их размеров
|
|
217
|
+
const hashInput = files
|
|
218
|
+
.map(f => `${f.path}:${f.size}`)
|
|
219
|
+
.sort()
|
|
220
|
+
.join('|');
|
|
221
|
+
return this.calculateHash(hashInput);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Простая хеш-функция
|
|
225
|
+
*/
|
|
226
|
+
calculateHash(content) {
|
|
227
|
+
// Простой хеш-функция (в продакшене лучше использовать crypto)
|
|
228
|
+
let hash = 0;
|
|
229
|
+
for (let i = 0; i < content.length; i++) {
|
|
230
|
+
const char = content.charCodeAt(i);
|
|
231
|
+
hash = ((hash << 5) - hash) + char;
|
|
232
|
+
hash = hash & hash; // 32bit integer
|
|
233
|
+
}
|
|
234
|
+
return Math.abs(hash).toString(16).padStart(16, '0');
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Обфускация пути файла
|
|
238
|
+
*/
|
|
239
|
+
obfuscatePath(filePath) {
|
|
240
|
+
// Простая обфускация пути (в продакшене - более сложная)
|
|
241
|
+
return Buffer.from(filePath).toString('base64').slice(0, 12);
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Определение типа чанка по содержимому
|
|
245
|
+
*/
|
|
246
|
+
detectChunkType(content) {
|
|
247
|
+
if (content.includes('function ') || content.includes('async ') || content.includes('=>')) {
|
|
248
|
+
return 'function';
|
|
249
|
+
}
|
|
250
|
+
if (content.includes('class ') || content.includes('interface ') || content.includes('type ')) {
|
|
251
|
+
return 'class';
|
|
252
|
+
}
|
|
253
|
+
if (content.trim().startsWith('/*') || content.trim().startsWith('//')) {
|
|
254
|
+
return 'comment';
|
|
255
|
+
}
|
|
256
|
+
return 'block';
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Определение языка программирования по расширению файла
|
|
260
|
+
*/
|
|
261
|
+
detectLanguage(filePath) {
|
|
262
|
+
const ext = filePath.split('.').pop()?.toLowerCase();
|
|
263
|
+
const langMap = {
|
|
264
|
+
'ts': 'typescript',
|
|
265
|
+
'js': 'javascript',
|
|
266
|
+
'py': 'python',
|
|
267
|
+
'java': 'java',
|
|
268
|
+
'cpp': 'cpp',
|
|
269
|
+
'c': 'c',
|
|
270
|
+
'go': 'go',
|
|
271
|
+
'rs': 'rust',
|
|
272
|
+
'php': 'php',
|
|
273
|
+
'rb': 'ruby',
|
|
274
|
+
};
|
|
275
|
+
return langMap[ext || ''] || 'plaintext';
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
//# sourceMappingURL=delta-chunking-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delta-chunking-utils.js","sourceRoot":"","sources":["../../../src/delta-chunking/delta-chunking-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -13,10 +13,17 @@ export * from './api/search-api.js';
|
|
|
13
13
|
export * from './api/chat-api/index.js';
|
|
14
14
|
export * from './api/tools-api.js';
|
|
15
15
|
export * from './api/models-api.js';
|
|
16
|
+
export * from './api/updates-api.js';
|
|
16
17
|
// Экспортируем помощники для работы с сообщениями
|
|
17
18
|
export * from './utils/message-helpers.js';
|
|
18
19
|
// Экспортируем helper функции для complex content и tool calling
|
|
19
20
|
export { createThinkingBlock, createToolResultMessage, createToolUseBlock, extractThinkingBlocks, extractToolUseBlocks, extractToolResultBlocks, createStandardDevelopmentTools, createComplexAssistantMessage, createTextBlock, createUserMessage, createSystemMessage } from './utils/message-helpers.js';
|
|
21
|
+
// 🔄 Delta-Chunking API и компоненты (интегрированы в основной SDK)
|
|
22
|
+
export { DeltaChunkingApi } from './api/delta-chunking-api.js';
|
|
23
|
+
export { DeltaChunkingManager } from './delta-chunking/delta-chunking-manager.js';
|
|
24
|
+
export { DeltaChunkingUtils } from './delta-chunking/delta-chunking-utils.js';
|
|
25
|
+
// Экспорт типов Delta-Chunking
|
|
26
|
+
export * from './types/delta-chunking.js';
|
|
20
27
|
// Экспорт по умолчанию
|
|
21
28
|
export default CodeSolverSDK;
|
|
22
29
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,2DAA2D;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,4CAA4C;AAC5C,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,0CAA0C;AAC1C,cAAc,6BAA6B,CAAC;AAE5C,gCAAgC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,2DAA2D;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,4CAA4C;AAC5C,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,0CAA0C;AAC1C,cAAc,6BAA6B,CAAC;AAE5C,gCAAgC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAErC,kDAAkD;AAClD,cAAc,4BAA4B,CAAC;AAE3C,iEAAiE;AACjE,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,8BAA8B,EAC9B,6BAA6B,EAC7B,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAEpC,oEAAoE;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAE9E,+BAA+B;AAC/B,cAAc,2BAA2B,CAAC;AAE1C,uBAAuB;AACvB,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delta-chunking.js","sourceRoot":"","sources":["../../../src/types/delta-chunking.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/dist/esm/types/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwbH,gCAAgC;AAChC,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updates.js","sourceRoot":"","sources":["../../../src/types/updates.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 🚀 Delta-Chunking API клиент
|
|
3
|
+
* Интеграция с backend endpoints
|
|
4
|
+
*/
|
|
5
|
+
import { HttpClient } from '../utils/http-client.js';
|
|
6
|
+
import { SyncInitRequest, DeltaChunksBatchRequest, SyncStatus, EncryptedChunk, SyncResult } from '../types/delta-chunking.js';
|
|
7
|
+
/**
|
|
8
|
+
* API клиент для delta-chunking операций
|
|
9
|
+
*/
|
|
10
|
+
export declare class DeltaChunkingApi {
|
|
11
|
+
private readonly httpClient;
|
|
12
|
+
constructor(httpClient: HttpClient);
|
|
13
|
+
/**
|
|
14
|
+
* Инициализация синхронизации проекта
|
|
15
|
+
*/
|
|
16
|
+
initSync(projectId: string, request: SyncInitRequest): Promise<{
|
|
17
|
+
sessionId: string;
|
|
18
|
+
}>;
|
|
19
|
+
/**
|
|
20
|
+
* Отправка батча зашифрованных чанков
|
|
21
|
+
*/
|
|
22
|
+
uploadChunkBatch(projectId: string, batchRequest: DeltaChunksBatchRequest): Promise<{
|
|
23
|
+
processed: number;
|
|
24
|
+
failed: number;
|
|
25
|
+
errors?: string[];
|
|
26
|
+
}>;
|
|
27
|
+
/**
|
|
28
|
+
* Получение статуса синхронизации
|
|
29
|
+
*/
|
|
30
|
+
getSyncStatus(projectId: string): Promise<SyncStatus>;
|
|
31
|
+
/**
|
|
32
|
+
* Завершение синхронизации
|
|
33
|
+
*/
|
|
34
|
+
finalizeSync(projectId: string): Promise<SyncResult>;
|
|
35
|
+
/**
|
|
36
|
+
* Отмена синхронизации
|
|
37
|
+
*/
|
|
38
|
+
cancelSync(projectId: string): Promise<{
|
|
39
|
+
success: boolean;
|
|
40
|
+
message?: string;
|
|
41
|
+
}>;
|
|
42
|
+
/**
|
|
43
|
+
* Batch upload с retry логикой
|
|
44
|
+
*/
|
|
45
|
+
uploadChunksWithRetry(projectId: string, chunks: EncryptedChunk[], options?: {
|
|
46
|
+
batchSize?: number;
|
|
47
|
+
maxRetries?: number;
|
|
48
|
+
onProgress?: (current: number, total: number) => void;
|
|
49
|
+
}): Promise<SyncResult>;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=delta-chunking-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delta-chunking-api.d.ts","sourceRoot":"","sources":["../../../src/api/delta-chunking-api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,UAAU,EACV,cAAc,EACd,UAAU,EACX,MAAM,4BAA4B,CAAC;AAEpC;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;gBAE5B,UAAU,EAAE,UAAU;IAIlC;;OAEG;IACG,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAa3F;;OAEG;IACG,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,uBAAuB,GACpC,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IASpE;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAoB3D;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAkB1D;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAWpF;;OAEG;IACG,qBAAqB,CACzB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,EAAE,EACxB,OAAO,GAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;KAClD,GACL,OAAO,CAAC,UAAU,CAAC;CAwEvB"}
|