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,315 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 🔧 Delta-Chunking Utilities
|
|
4
|
+
* Утилиты для обработки файлов, чанков и шифрования
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.DeltaChunkingUtils = void 0;
|
|
41
|
+
/**
|
|
42
|
+
* Утилиты для Delta-Chunking операций
|
|
43
|
+
*/
|
|
44
|
+
class DeltaChunkingUtils {
|
|
45
|
+
constructor(projects, options, environment, logger) {
|
|
46
|
+
this.projects = projects;
|
|
47
|
+
this.options = options;
|
|
48
|
+
this.environment = environment;
|
|
49
|
+
this.logger = logger;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Валидация проекта через Projects API
|
|
53
|
+
*/
|
|
54
|
+
async validateProject(projectId) {
|
|
55
|
+
try {
|
|
56
|
+
// Используем существующий projects API для проверки
|
|
57
|
+
await this.projects.getProject(projectId);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
61
|
+
throw new Error(`Проект ${projectId} не найден или недоступен: ${errorMessage}`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Сканирование файлов проекта (Node.js only)
|
|
66
|
+
*/
|
|
67
|
+
async scanProjectFiles(projectPath, options) {
|
|
68
|
+
// Проверяем среду выполнения
|
|
69
|
+
if (this.environment === 'browser') {
|
|
70
|
+
throw new Error('scanProjectFiles недоступен в браузере. Используйте syncFiles() с подготовленными файлами.');
|
|
71
|
+
}
|
|
72
|
+
const files = [];
|
|
73
|
+
// Динамический импорт fs для Node.js
|
|
74
|
+
const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
|
|
75
|
+
const path = await Promise.resolve().then(() => __importStar(require('path')));
|
|
76
|
+
const scanDir = async (dirPath) => {
|
|
77
|
+
const entries = await fs.readdir(dirPath, { withFileTypes: true });
|
|
78
|
+
for (const entry of entries) {
|
|
79
|
+
const fullPath = path.join(dirPath, entry.name);
|
|
80
|
+
const relativePath = path.relative(projectPath, fullPath);
|
|
81
|
+
// Проверяем игнорируемые паттерны
|
|
82
|
+
const shouldIgnore = options.ignorePatterns?.some(pattern => relativePath.includes(pattern.replace('/**', '')) ||
|
|
83
|
+
entry.name.match(new RegExp(pattern.replace('*', '.*'))));
|
|
84
|
+
if (shouldIgnore)
|
|
85
|
+
continue;
|
|
86
|
+
if (entry.isDirectory()) {
|
|
87
|
+
await scanDir(fullPath);
|
|
88
|
+
}
|
|
89
|
+
else if (entry.isFile()) {
|
|
90
|
+
// Проверяем расширения файлов
|
|
91
|
+
const ext = path.extname(entry.name);
|
|
92
|
+
if (options.includeExtensions && !options.includeExtensions.includes(ext)) {
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
// Проверяем размер файла
|
|
96
|
+
const stats = await fs.stat(fullPath);
|
|
97
|
+
const fileSizeKB = stats.size / 1024;
|
|
98
|
+
if (options.maxFileSizeKB && fileSizeKB > options.maxFileSizeKB) {
|
|
99
|
+
this.logger.warn(`⚠️ Пропускаю большой файл: ${relativePath} (${fileSizeKB.toFixed(1)}KB)`);
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
const content = await fs.readFile(fullPath, 'utf-8');
|
|
104
|
+
files.push({
|
|
105
|
+
path: relativePath,
|
|
106
|
+
content,
|
|
107
|
+
size: stats.size,
|
|
108
|
+
lastModified: stats.mtime.getTime()
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
113
|
+
this.logger.warn(`⚠️ Не удалось прочитать файл ${relativePath}: ${errorMessage}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
try {
|
|
119
|
+
await scanDir(projectPath);
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
123
|
+
throw new Error(`Ошибка сканирования директории ${projectPath}: ${errorMessage}`);
|
|
124
|
+
}
|
|
125
|
+
return files;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Создание чанков из файлов
|
|
129
|
+
*/
|
|
130
|
+
async createChunksFromFiles(files) {
|
|
131
|
+
const chunks = [];
|
|
132
|
+
for (const file of files) {
|
|
133
|
+
const fileChunks = await this.chunkFile(file);
|
|
134
|
+
chunks.push(...fileChunks);
|
|
135
|
+
}
|
|
136
|
+
return chunks;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Разбиение файла на чанки
|
|
140
|
+
*/
|
|
141
|
+
async chunkFile(file) {
|
|
142
|
+
// Простое разбиение на чанки по строкам (без tree-sitter пока)
|
|
143
|
+
const lines = file.content.split('\n');
|
|
144
|
+
const chunks = [];
|
|
145
|
+
const config = this.options.deltaChunking?.chunking || {};
|
|
146
|
+
const maxTokens = config.maxTokens || 400;
|
|
147
|
+
const minTokens = config.minTokens || 100;
|
|
148
|
+
let currentChunk = '';
|
|
149
|
+
let startLine = 1;
|
|
150
|
+
for (let i = 0; i < lines.length; i++) {
|
|
151
|
+
const line = lines[i];
|
|
152
|
+
const newChunkContent = currentChunk + (currentChunk ? '\n' : '') + line;
|
|
153
|
+
// Простая оценка токенов (примерно 4 символа = 1 токен)
|
|
154
|
+
const estimatedTokens = newChunkContent.length / 4;
|
|
155
|
+
if (estimatedTokens >= maxTokens && currentChunk.length > 0) {
|
|
156
|
+
// Создаем чанк если достигли лимита
|
|
157
|
+
if (currentChunk.trim()) {
|
|
158
|
+
chunks.push({
|
|
159
|
+
id: `${file.path}-${chunks.length}`,
|
|
160
|
+
obfuscatedPath: this.obfuscatePath(file.path),
|
|
161
|
+
content: currentChunk,
|
|
162
|
+
metadata: {
|
|
163
|
+
chunkType: this.detectChunkType(currentChunk),
|
|
164
|
+
startLine,
|
|
165
|
+
endLine: i,
|
|
166
|
+
language: this.detectLanguage(file.path),
|
|
167
|
+
originalSize: currentChunk.length,
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
currentChunk = line;
|
|
172
|
+
startLine = i + 1;
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
currentChunk = newChunkContent;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// Добавляем последний чанк
|
|
179
|
+
if (currentChunk.trim()) {
|
|
180
|
+
chunks.push({
|
|
181
|
+
id: `${file.path}-${chunks.length}`,
|
|
182
|
+
obfuscatedPath: this.obfuscatePath(file.path),
|
|
183
|
+
content: currentChunk,
|
|
184
|
+
metadata: {
|
|
185
|
+
chunkType: this.detectChunkType(currentChunk),
|
|
186
|
+
startLine,
|
|
187
|
+
endLine: lines.length,
|
|
188
|
+
language: this.detectLanguage(file.path),
|
|
189
|
+
originalSize: currentChunk.length,
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
return chunks;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Шифрование чанков
|
|
197
|
+
*/
|
|
198
|
+
async encryptChunks(chunks) {
|
|
199
|
+
if (!this.options.deltaChunking?.encryption?.enabled) {
|
|
200
|
+
// Если шифрование отключено, просто конвертируем
|
|
201
|
+
return chunks.map(chunk => ({
|
|
202
|
+
...chunk,
|
|
203
|
+
encryptedContent: Buffer.from(chunk.content, 'utf-8'),
|
|
204
|
+
iv: Buffer.alloc(12, 0), // Пустой IV
|
|
205
|
+
authTag: Buffer.alloc(16, 0), // Пустой authTag
|
|
206
|
+
hash: this.calculateHash(chunk.content),
|
|
207
|
+
}));
|
|
208
|
+
}
|
|
209
|
+
const encryptionKey = this.options.deltaChunking?.encryption?.key;
|
|
210
|
+
if (!encryptionKey || encryptionKey.length !== 32) {
|
|
211
|
+
throw new Error('Ключ шифрования должен содержать ровно 32 символа для AES-256');
|
|
212
|
+
}
|
|
213
|
+
// Динамический импорт crypto для Node.js/браузера
|
|
214
|
+
const crypto = this.environment === 'node'
|
|
215
|
+
? await Promise.resolve().then(() => __importStar(require('crypto')))
|
|
216
|
+
: null; // В браузере нужна другая реализация
|
|
217
|
+
if (!crypto && this.environment === 'node') {
|
|
218
|
+
throw new Error('Модуль crypto недоступен');
|
|
219
|
+
}
|
|
220
|
+
return chunks.map(chunk => {
|
|
221
|
+
if (this.environment === 'browser') {
|
|
222
|
+
// TODO: Реализовать Web Crypto API для браузера
|
|
223
|
+
this.logger.warn('⚠️ Шифрование в браузере пока не реализовано');
|
|
224
|
+
return {
|
|
225
|
+
...chunk,
|
|
226
|
+
encryptedContent: Buffer.from(chunk.content, 'utf-8'),
|
|
227
|
+
iv: Buffer.alloc(12, 0),
|
|
228
|
+
authTag: Buffer.alloc(16, 0),
|
|
229
|
+
hash: this.calculateHash(chunk.content),
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
// AES-256-GCM шифрование для Node.js
|
|
233
|
+
const iv = crypto.randomBytes(12);
|
|
234
|
+
const cipher = crypto.createCipheriv('aes-256-gcm', Buffer.from(encryptionKey), iv);
|
|
235
|
+
cipher.setAAD(Buffer.from(chunk.id, 'utf-8'));
|
|
236
|
+
let encrypted = cipher.update(chunk.content, 'utf-8');
|
|
237
|
+
encrypted = Buffer.concat([encrypted, cipher.final()]);
|
|
238
|
+
const authTag = cipher.getAuthTag();
|
|
239
|
+
return {
|
|
240
|
+
...chunk,
|
|
241
|
+
encryptedContent: encrypted,
|
|
242
|
+
iv,
|
|
243
|
+
authTag,
|
|
244
|
+
hash: this.calculateHash(chunk.content),
|
|
245
|
+
};
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Расчет root hash для Merkle tree
|
|
250
|
+
*/
|
|
251
|
+
calculateRootHash(files) {
|
|
252
|
+
// Простой хеш от всех путей файлов и их размеров
|
|
253
|
+
const hashInput = files
|
|
254
|
+
.map(f => `${f.path}:${f.size}`)
|
|
255
|
+
.sort()
|
|
256
|
+
.join('|');
|
|
257
|
+
return this.calculateHash(hashInput);
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Простая хеш-функция
|
|
261
|
+
*/
|
|
262
|
+
calculateHash(content) {
|
|
263
|
+
// Простой хеш-функция (в продакшене лучше использовать crypto)
|
|
264
|
+
let hash = 0;
|
|
265
|
+
for (let i = 0; i < content.length; i++) {
|
|
266
|
+
const char = content.charCodeAt(i);
|
|
267
|
+
hash = ((hash << 5) - hash) + char;
|
|
268
|
+
hash = hash & hash; // 32bit integer
|
|
269
|
+
}
|
|
270
|
+
return Math.abs(hash).toString(16).padStart(16, '0');
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Обфускация пути файла
|
|
274
|
+
*/
|
|
275
|
+
obfuscatePath(filePath) {
|
|
276
|
+
// Простая обфускация пути (в продакшене - более сложная)
|
|
277
|
+
return Buffer.from(filePath).toString('base64').slice(0, 12);
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Определение типа чанка по содержимому
|
|
281
|
+
*/
|
|
282
|
+
detectChunkType(content) {
|
|
283
|
+
if (content.includes('function ') || content.includes('async ') || content.includes('=>')) {
|
|
284
|
+
return 'function';
|
|
285
|
+
}
|
|
286
|
+
if (content.includes('class ') || content.includes('interface ') || content.includes('type ')) {
|
|
287
|
+
return 'class';
|
|
288
|
+
}
|
|
289
|
+
if (content.trim().startsWith('/*') || content.trim().startsWith('//')) {
|
|
290
|
+
return 'comment';
|
|
291
|
+
}
|
|
292
|
+
return 'block';
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Определение языка программирования по расширению файла
|
|
296
|
+
*/
|
|
297
|
+
detectLanguage(filePath) {
|
|
298
|
+
const ext = filePath.split('.').pop()?.toLowerCase();
|
|
299
|
+
const langMap = {
|
|
300
|
+
'ts': 'typescript',
|
|
301
|
+
'js': 'javascript',
|
|
302
|
+
'py': 'python',
|
|
303
|
+
'java': 'java',
|
|
304
|
+
'cpp': 'cpp',
|
|
305
|
+
'c': 'c',
|
|
306
|
+
'go': 'go',
|
|
307
|
+
'rs': 'rust',
|
|
308
|
+
'php': 'php',
|
|
309
|
+
'rb': 'ruby',
|
|
310
|
+
};
|
|
311
|
+
return langMap[ext || ''] || 'plaintext';
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
exports.DeltaChunkingUtils = DeltaChunkingUtils;
|
|
315
|
+
//# 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/cjs/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.createSystemMessage = exports.createUserMessage = exports.createTextBlock = exports.createComplexAssistantMessage = exports.createStandardDevelopmentTools = exports.extractToolResultBlocks = exports.extractToolUseBlocks = exports.extractThinkingBlocks = exports.createToolUseBlock = exports.createToolResultMessage = exports.createThinkingBlock = exports.HttpClient = exports.CodeSolverSDK = exports.VERSION = void 0;
|
|
17
|
+
exports.DeltaChunkingUtils = exports.DeltaChunkingManager = exports.DeltaChunkingApi = exports.createSystemMessage = exports.createUserMessage = exports.createTextBlock = exports.createComplexAssistantMessage = exports.createStandardDevelopmentTools = exports.extractToolResultBlocks = exports.extractToolUseBlocks = exports.extractThinkingBlocks = exports.createToolUseBlock = exports.createToolResultMessage = exports.createThinkingBlock = exports.HttpClient = exports.CodeSolverSDK = exports.VERSION = void 0;
|
|
18
18
|
const code_solver_sdk_js_1 = require("./code-solver-sdk.js");
|
|
19
19
|
Object.defineProperty(exports, "CodeSolverSDK", { enumerable: true, get: function () { return code_solver_sdk_js_1.CodeSolverSDK; } });
|
|
20
20
|
const http_client_js_1 = require("./utils/http-client.js");
|
|
@@ -30,6 +30,7 @@ __exportStar(require("./api/search-api.js"), exports);
|
|
|
30
30
|
__exportStar(require("./api/chat-api/index.js"), exports);
|
|
31
31
|
__exportStar(require("./api/tools-api.js"), exports);
|
|
32
32
|
__exportStar(require("./api/models-api.js"), exports);
|
|
33
|
+
__exportStar(require("./api/updates-api.js"), exports);
|
|
33
34
|
// Экспортируем помощники для работы с сообщениями
|
|
34
35
|
__exportStar(require("./utils/message-helpers.js"), exports);
|
|
35
36
|
// Экспортируем helper функции для complex content и tool calling
|
|
@@ -45,6 +46,15 @@ Object.defineProperty(exports, "createComplexAssistantMessage", { enumerable: tr
|
|
|
45
46
|
Object.defineProperty(exports, "createTextBlock", { enumerable: true, get: function () { return message_helpers_js_1.createTextBlock; } });
|
|
46
47
|
Object.defineProperty(exports, "createUserMessage", { enumerable: true, get: function () { return message_helpers_js_1.createUserMessage; } });
|
|
47
48
|
Object.defineProperty(exports, "createSystemMessage", { enumerable: true, get: function () { return message_helpers_js_1.createSystemMessage; } });
|
|
49
|
+
// 🔄 Delta-Chunking API и компоненты (интегрированы в основной SDK)
|
|
50
|
+
var delta_chunking_api_js_1 = require("./api/delta-chunking-api.js");
|
|
51
|
+
Object.defineProperty(exports, "DeltaChunkingApi", { enumerable: true, get: function () { return delta_chunking_api_js_1.DeltaChunkingApi; } });
|
|
52
|
+
var delta_chunking_manager_js_1 = require("./delta-chunking/delta-chunking-manager.js");
|
|
53
|
+
Object.defineProperty(exports, "DeltaChunkingManager", { enumerable: true, get: function () { return delta_chunking_manager_js_1.DeltaChunkingManager; } });
|
|
54
|
+
var delta_chunking_utils_js_1 = require("./delta-chunking/delta-chunking-utils.js");
|
|
55
|
+
Object.defineProperty(exports, "DeltaChunkingUtils", { enumerable: true, get: function () { return delta_chunking_utils_js_1.DeltaChunkingUtils; } });
|
|
56
|
+
// Экспорт типов Delta-Chunking
|
|
57
|
+
__exportStar(require("./types/delta-chunking.js"), exports);
|
|
48
58
|
// Экспорт по умолчанию
|
|
49
59
|
exports.default = code_solver_sdk_js_1.CodeSolverSDK;
|
|
50
60
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6DAAqD;AAQ5C,8FARA,kCAAa,OAQA;AANtB,2DAAoD;AAQ3C,2FARA,2BAAU,OAQA;AANnB,2DAA2D;AAC3D,2CAAuC;AAA9B,qGAAA,OAAO,OAAA;AAOhB,0CAA0C;AAC1C,8DAA4C;AAE5C,gCAAgC;AAChC,wDAAsC;AACtC,sDAAoC;AAEpC,0DAAwC;AACxC,qDAAmC;AACnC,sDAAoC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6DAAqD;AAQ5C,8FARA,kCAAa,OAQA;AANtB,2DAAoD;AAQ3C,2FARA,2BAAU,OAQA;AANnB,2DAA2D;AAC3D,2CAAuC;AAA9B,qGAAA,OAAO,OAAA;AAOhB,0CAA0C;AAC1C,8DAA4C;AAE5C,gCAAgC;AAChC,wDAAsC;AACtC,sDAAoC;AAEpC,0DAAwC;AACxC,qDAAmC;AACnC,sDAAoC;AACpC,uDAAqC;AAErC,kDAAkD;AAClD,6DAA2C;AAE3C,iEAAiE;AACjE,iEAYoC;AAXlC,yHAAA,mBAAmB,OAAA;AACnB,6HAAA,uBAAuB,OAAA;AACvB,wHAAA,kBAAkB,OAAA;AAClB,2HAAA,qBAAqB,OAAA;AACrB,0HAAA,oBAAoB,OAAA;AACpB,6HAAA,uBAAuB,OAAA;AACvB,oIAAA,8BAA8B,OAAA;AAC9B,mIAAA,6BAA6B,OAAA;AAC7B,qHAAA,eAAe,OAAA;AACf,uHAAA,iBAAiB,OAAA;AACjB,yHAAA,mBAAmB,OAAA;AAGrB,oEAAoE;AACpE,qEAA+D;AAAtD,yHAAA,gBAAgB,OAAA;AACzB,wFAAkF;AAAzE,iIAAA,oBAAoB,OAAA;AAC7B,oFAA8E;AAArE,6HAAA,kBAAkB,OAAA;AAE3B,+BAA+B;AAC/B,4DAA0C;AAE1C,uBAAuB;AACvB,kBAAe,kCAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delta-chunking.js","sourceRoot":"","sources":["../../../src/types/delta-chunking.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
package/dist/cjs/types/index.js
CHANGED
|
@@ -3,5 +3,21 @@
|
|
|
3
3
|
* 🚀 Обновленные типы данных для API проектов
|
|
4
4
|
* Синхронизировано с backend OpenAPI спецификацией
|
|
5
5
|
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
18
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
|
+
};
|
|
6
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
// Экспорт типов для Updates API
|
|
22
|
+
__exportStar(require("./updates.js"), exports);
|
|
7
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -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,+CAA6B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updates.js","sourceRoot":"","sources":["../../../src/types/updates.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 🚀 Delta-Chunking API клиент
|
|
3
|
+
* Интеграция с backend endpoints
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* API клиент для delta-chunking операций
|
|
7
|
+
*/
|
|
8
|
+
export class DeltaChunkingApi {
|
|
9
|
+
constructor(httpClient) {
|
|
10
|
+
this.httpClient = httpClient;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Инициализация синхронизации проекта
|
|
14
|
+
*/
|
|
15
|
+
async initSync(projectId, request) {
|
|
16
|
+
const response = await this.httpClient.post(`/api/v1/projects/${projectId}/sync-init`, request);
|
|
17
|
+
if (!response.sessionId) {
|
|
18
|
+
throw new Error('Server did not return sessionId');
|
|
19
|
+
}
|
|
20
|
+
return response;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Отправка батча зашифрованных чанков
|
|
24
|
+
*/
|
|
25
|
+
async uploadChunkBatch(projectId, batchRequest) {
|
|
26
|
+
const response = await this.httpClient.post(`/api/v1/projects/${projectId}/delta-chunks`, batchRequest);
|
|
27
|
+
return response;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Получение статуса синхронизации
|
|
31
|
+
*/
|
|
32
|
+
async getSyncStatus(projectId) {
|
|
33
|
+
const response = await this.httpClient.get(`/api/v1/projects/${projectId}/sync-status`);
|
|
34
|
+
return {
|
|
35
|
+
projectId,
|
|
36
|
+
sessionId: response.sessionId,
|
|
37
|
+
status: response.status || 'idle',
|
|
38
|
+
progress: response.progress || 0,
|
|
39
|
+
chunksReceived: response.chunksReceived || 0,
|
|
40
|
+
chunksProcessed: response.chunksProcessed || 0,
|
|
41
|
+
errorCount: response.errorCount || 0,
|
|
42
|
+
startedAt: response.startedAt ? new Date(response.startedAt) : undefined,
|
|
43
|
+
completedAt: response.completedAt ? new Date(response.completedAt) : undefined,
|
|
44
|
+
lastActivity: response.lastActivity ? new Date(response.lastActivity) : undefined,
|
|
45
|
+
error: response.error
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Завершение синхронизации
|
|
50
|
+
*/
|
|
51
|
+
async finalizeSync(projectId) {
|
|
52
|
+
const response = await this.httpClient.post(`/api/v1/projects/${projectId}/sync-finalize`, {});
|
|
53
|
+
return {
|
|
54
|
+
success: response.success || false,
|
|
55
|
+
projectId,
|
|
56
|
+
sessionId: response.sessionId,
|
|
57
|
+
processedChunks: response.processedChunks || 0,
|
|
58
|
+
totalChunks: response.totalChunks || 0,
|
|
59
|
+
duration: response.duration || 0,
|
|
60
|
+
error: response.error,
|
|
61
|
+
details: response.details
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Отмена синхронизации
|
|
66
|
+
*/
|
|
67
|
+
async cancelSync(projectId) {
|
|
68
|
+
const response = await this.httpClient.delete(`/api/v1/projects/${projectId}/sync-cancel`);
|
|
69
|
+
return {
|
|
70
|
+
success: response.success || false,
|
|
71
|
+
message: response.message
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Batch upload с retry логикой
|
|
76
|
+
*/
|
|
77
|
+
async uploadChunksWithRetry(projectId, chunks, options = {}) {
|
|
78
|
+
const { batchSize = 50, maxRetries = 3, onProgress } = options;
|
|
79
|
+
const totalChunks = chunks.length;
|
|
80
|
+
const totalBatches = Math.ceil(totalChunks / batchSize);
|
|
81
|
+
let processedChunks = 0;
|
|
82
|
+
let failedChunks = 0;
|
|
83
|
+
const errors = [];
|
|
84
|
+
for (let batchIndex = 0; batchIndex < totalBatches; batchIndex++) {
|
|
85
|
+
const startIdx = batchIndex * batchSize;
|
|
86
|
+
const endIdx = Math.min(startIdx + batchSize, totalChunks);
|
|
87
|
+
const batchChunks = chunks.slice(startIdx, endIdx);
|
|
88
|
+
const batchRequest = {
|
|
89
|
+
batchIndex,
|
|
90
|
+
totalBatches,
|
|
91
|
+
chunks: batchChunks
|
|
92
|
+
};
|
|
93
|
+
let success = false;
|
|
94
|
+
let retryCount = 0;
|
|
95
|
+
while (!success && retryCount < maxRetries) {
|
|
96
|
+
try {
|
|
97
|
+
const result = await this.uploadChunkBatch(projectId, batchRequest);
|
|
98
|
+
processedChunks += result.processed;
|
|
99
|
+
failedChunks += result.failed;
|
|
100
|
+
if (result.errors) {
|
|
101
|
+
errors.push(...result.errors);
|
|
102
|
+
}
|
|
103
|
+
success = true;
|
|
104
|
+
// Уведомляем о прогрессе
|
|
105
|
+
if (onProgress) {
|
|
106
|
+
onProgress(processedChunks, totalChunks);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
retryCount++;
|
|
111
|
+
if (retryCount >= maxRetries) {
|
|
112
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
113
|
+
errors.push(`Batch ${batchIndex} failed after ${maxRetries} retries: ${errorMessage}`);
|
|
114
|
+
failedChunks += batchChunks.length;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
// Экспоненциальная задержка перед повтором
|
|
118
|
+
await new Promise(resolve => setTimeout(resolve, Math.pow(2, retryCount) * 1000));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return {
|
|
124
|
+
success: failedChunks === 0,
|
|
125
|
+
projectId,
|
|
126
|
+
processedChunks,
|
|
127
|
+
totalChunks,
|
|
128
|
+
duration: 0, // Будет заполнено на уровне SDK
|
|
129
|
+
error: errors.length > 0 ? errors.join('; ') : undefined,
|
|
130
|
+
details: {
|
|
131
|
+
newFiles: 0, // Будет заполнено на уровне SDK
|
|
132
|
+
changedFiles: 0,
|
|
133
|
+
deletedFiles: 0
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=delta-chunking-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delta-chunking-api.js","sourceRoot":"","sources":["../../../src/api/delta-chunking-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -502,5 +502,85 @@ export class ProjectsApi {
|
|
|
502
502
|
throw new Error(`Не удалось получить или создать проект: ${error.message}`);
|
|
503
503
|
}
|
|
504
504
|
}
|
|
505
|
+
// ===== DELTA CHUNKING МЕТОДЫ =====
|
|
506
|
+
/**
|
|
507
|
+
* Инициализация синхронизации проекта для Delta Chunking
|
|
508
|
+
* @param projectId ID проекта
|
|
509
|
+
* @param request Данные для инициализации синхронизации
|
|
510
|
+
* @returns Результат инициализации с sessionId
|
|
511
|
+
*/
|
|
512
|
+
async sendInitialSync(projectId, request) {
|
|
513
|
+
this.validateProjectId(projectId);
|
|
514
|
+
const response = await this.httpClient.post(`/api/v1/projects/${projectId}/sync-init`, request);
|
|
515
|
+
if (!response.sessionId) {
|
|
516
|
+
throw new Error('Server did not return sessionId');
|
|
517
|
+
}
|
|
518
|
+
return response;
|
|
519
|
+
}
|
|
520
|
+
/**
|
|
521
|
+
* Отправка батча зашифрованных чанков для Delta Chunking
|
|
522
|
+
* @param projectId ID проекта
|
|
523
|
+
* @param batchRequest Батч зашифрованных чанков
|
|
524
|
+
* @returns Результат обработки батча
|
|
525
|
+
*/
|
|
526
|
+
async sendDeltaSync(projectId, batchRequest) {
|
|
527
|
+
this.validateProjectId(projectId);
|
|
528
|
+
const response = await this.httpClient.post(`/api/v1/projects/${projectId}/delta-chunks`, batchRequest);
|
|
529
|
+
return response;
|
|
530
|
+
}
|
|
531
|
+
/**
|
|
532
|
+
* Получение статуса синхронизации Delta Chunking
|
|
533
|
+
* @param projectId ID проекта
|
|
534
|
+
* @returns Текущий статус синхронизации
|
|
535
|
+
*/
|
|
536
|
+
async getDeltaSyncStatus(projectId) {
|
|
537
|
+
this.validateProjectId(projectId);
|
|
538
|
+
const response = await this.httpClient.get(`/api/v1/projects/${projectId}/sync-status`);
|
|
539
|
+
return {
|
|
540
|
+
projectId,
|
|
541
|
+
sessionId: response.sessionId,
|
|
542
|
+
status: response.status || 'idle',
|
|
543
|
+
progress: response.progress || 0,
|
|
544
|
+
chunksReceived: response.chunksReceived || 0,
|
|
545
|
+
chunksProcessed: response.chunksProcessed || 0,
|
|
546
|
+
errorCount: response.errorCount || 0,
|
|
547
|
+
startedAt: response.startedAt ? new Date(response.startedAt) : undefined,
|
|
548
|
+
completedAt: response.completedAt ? new Date(response.completedAt) : undefined,
|
|
549
|
+
lastActivity: response.lastActivity ? new Date(response.lastActivity) : undefined,
|
|
550
|
+
error: response.error
|
|
551
|
+
};
|
|
552
|
+
}
|
|
553
|
+
/**
|
|
554
|
+
* Завершение синхронизации Delta Chunking
|
|
555
|
+
* @param projectId ID проекта
|
|
556
|
+
* @returns Результат завершения синхронизации
|
|
557
|
+
*/
|
|
558
|
+
async finalizeDeltaSync(projectId) {
|
|
559
|
+
this.validateProjectId(projectId);
|
|
560
|
+
const response = await this.httpClient.post(`/api/v1/projects/${projectId}/sync-finalize`, {});
|
|
561
|
+
return {
|
|
562
|
+
success: response.success || false,
|
|
563
|
+
projectId,
|
|
564
|
+
sessionId: response.sessionId,
|
|
565
|
+
processedChunks: response.processedChunks || 0,
|
|
566
|
+
totalChunks: response.totalChunks || 0,
|
|
567
|
+
duration: response.duration || 0,
|
|
568
|
+
error: response.error,
|
|
569
|
+
details: response.details
|
|
570
|
+
};
|
|
571
|
+
}
|
|
572
|
+
/**
|
|
573
|
+
* Отмена синхронизации Delta Chunking
|
|
574
|
+
* @param projectId ID проекта
|
|
575
|
+
* @returns Результат отмены
|
|
576
|
+
*/
|
|
577
|
+
async cancelDeltaSync(projectId) {
|
|
578
|
+
this.validateProjectId(projectId);
|
|
579
|
+
const response = await this.httpClient.delete(`/api/v1/projects/${projectId}/sync-cancel`);
|
|
580
|
+
return {
|
|
581
|
+
success: response.success || false,
|
|
582
|
+
message: response.message
|
|
583
|
+
};
|
|
584
|
+
}
|
|
505
585
|
}
|
|
506
586
|
//# sourceMappingURL=projects-api.js.map
|