solver-sdk 5.1.0 → 5.1.3
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 +94 -27
- package/dist/cjs/api/projects-api.js.map +1 -1
- package/dist/cjs/code-solver-sdk.js +96 -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 +94 -27
- package/dist/esm/api/projects-api.js.map +1 -1
- package/dist/esm/code-solver-sdk.js +96 -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
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 🔧 Delta-Chunking Utilities
|
|
3
|
+
* Утилиты для обработки файлов, чанков и шифрования
|
|
4
|
+
*/
|
|
5
|
+
import { FileContent, SyncOptions } from '../types/delta-chunking.js';
|
|
6
|
+
import { ProjectsApi } from '../api/projects-api.js';
|
|
7
|
+
import { CodeSolverSDKOptions } from '../interfaces/sdk-options.js';
|
|
8
|
+
/**
|
|
9
|
+
* Утилиты для Delta-Chunking операций
|
|
10
|
+
*/
|
|
11
|
+
export declare class DeltaChunkingUtils {
|
|
12
|
+
private readonly projects;
|
|
13
|
+
private readonly options;
|
|
14
|
+
private readonly environment;
|
|
15
|
+
private readonly logger;
|
|
16
|
+
constructor(projects: ProjectsApi, options: CodeSolverSDKOptions, environment: 'browser' | 'node' | 'unknown', logger: {
|
|
17
|
+
log: (message: string) => void;
|
|
18
|
+
warn: (message: string) => void;
|
|
19
|
+
error: (message: string) => void;
|
|
20
|
+
});
|
|
21
|
+
/**
|
|
22
|
+
* Валидация проекта через Projects API
|
|
23
|
+
*/
|
|
24
|
+
validateProject(projectId: string): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Сканирование файлов проекта (Node.js only)
|
|
27
|
+
*/
|
|
28
|
+
scanProjectFiles(projectPath: string, options: SyncOptions): Promise<FileContent[]>;
|
|
29
|
+
/**
|
|
30
|
+
* Создание чанков из файлов
|
|
31
|
+
*/
|
|
32
|
+
createChunksFromFiles(files: FileContent[]): Promise<any[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Разбиение файла на чанки
|
|
35
|
+
*/
|
|
36
|
+
chunkFile(file: FileContent): Promise<any[]>;
|
|
37
|
+
/**
|
|
38
|
+
* Шифрование чанков
|
|
39
|
+
*/
|
|
40
|
+
encryptChunks(chunks: any[]): Promise<any[]>;
|
|
41
|
+
/**
|
|
42
|
+
* Расчет root hash для Merkle tree
|
|
43
|
+
*/
|
|
44
|
+
calculateRootHash(files: FileContent[]): string;
|
|
45
|
+
/**
|
|
46
|
+
* Простая хеш-функция
|
|
47
|
+
*/
|
|
48
|
+
calculateHash(content: string): string;
|
|
49
|
+
/**
|
|
50
|
+
* Обфускация пути файла
|
|
51
|
+
*/
|
|
52
|
+
private obfuscatePath;
|
|
53
|
+
/**
|
|
54
|
+
* Определение типа чанка по содержимому
|
|
55
|
+
*/
|
|
56
|
+
private detectChunkType;
|
|
57
|
+
/**
|
|
58
|
+
* Определение языка программирования по расширению файла
|
|
59
|
+
*/
|
|
60
|
+
private detectLanguage;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=delta-chunking-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delta-chunking-utils.d.ts","sourceRoot":"","sources":["../../../src/delta-chunking/delta-chunking-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE;;GAEG;AACH,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAHN,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,oBAAoB,EAC7B,WAAW,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,EAC3C,MAAM,EAAE;QACvB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QAC/B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QAChC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;KAClC;IAGH;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvD;;OAEG;IACG,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,WAAW,EAAE,CAAC;IAsEzB;;OAEG;IACG,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAWjE;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IA8DlD;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IA0DlD;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM;IAU/C;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAWtC;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,OAAO,CAAC,cAAc;CAgBvB"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -14,5 +14,9 @@ export * from './api/models-api.js';
|
|
|
14
14
|
export * from './api/updates-api.js';
|
|
15
15
|
export * from './utils/message-helpers.js';
|
|
16
16
|
export { createThinkingBlock, createToolResultMessage, createToolUseBlock, extractThinkingBlocks, extractToolUseBlocks, extractToolResultBlocks, createStandardDevelopmentTools, createComplexAssistantMessage, createTextBlock, createUserMessage, createSystemMessage } from './utils/message-helpers.js';
|
|
17
|
+
export { DeltaChunkingApi } from './api/delta-chunking-api.js';
|
|
18
|
+
export { DeltaChunkingManager } from './delta-chunking/delta-chunking-manager.js';
|
|
19
|
+
export { DeltaChunkingUtils } from './delta-chunking/delta-chunking-utils.js';
|
|
20
|
+
export * from './types/delta-chunking.js';
|
|
17
21
|
export default CodeSolverSDK;
|
|
18
22
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,CAAC;AAGtB,cAAc,6BAA6B,CAAC;AAG5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,4BAA4B,CAAC;AAG3C,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;AAGpC,eAAe,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,CAAC;AAGtB,cAAc,6BAA6B,CAAC;AAG5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,4BAA4B,CAAC;AAG3C,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;AAGpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAG9E,cAAc,2BAA2B,CAAC;AAG1C,eAAe,aAAa,CAAC"}
|
|
@@ -94,5 +94,40 @@ export interface CodeSolverSDKOptions {
|
|
|
94
94
|
/** Логировать только важные события (start, stop, errors) */
|
|
95
95
|
importantOnly?: boolean;
|
|
96
96
|
};
|
|
97
|
+
/**
|
|
98
|
+
* 🔄 НОВОЕ в v5.1.0: Delta-Chunking конфигурация
|
|
99
|
+
* Cursor-подобная инкрементальная синхронизация проектов
|
|
100
|
+
*/
|
|
101
|
+
deltaChunking?: {
|
|
102
|
+
/** Включение delta-chunking функциональности */
|
|
103
|
+
enabled: boolean;
|
|
104
|
+
/** Настройки шифрования */
|
|
105
|
+
encryption?: {
|
|
106
|
+
/** Включить шифрование чанков */
|
|
107
|
+
enabled: boolean;
|
|
108
|
+
/** 32-символьный ключ для AES-256 */
|
|
109
|
+
key: string;
|
|
110
|
+
};
|
|
111
|
+
/** Настройки разбиения на чанки */
|
|
112
|
+
chunking?: {
|
|
113
|
+
/** Максимальный размер чанка (по умолчанию: 400) */
|
|
114
|
+
maxTokens?: number;
|
|
115
|
+
/** Минимальный размер чанка (по умолчанию: 100) */
|
|
116
|
+
minTokens?: number;
|
|
117
|
+
/** Использовать tree-sitter парсер (в разработке) */
|
|
118
|
+
useTreeSitter?: boolean;
|
|
119
|
+
/** Сохранять контекст между чанками */
|
|
120
|
+
preserveContext?: boolean;
|
|
121
|
+
};
|
|
122
|
+
/** Настройки file watching для автосинхронизации */
|
|
123
|
+
fileWatching?: {
|
|
124
|
+
/** Включить автоматическое наблюдение за изменениями */
|
|
125
|
+
enabled: boolean;
|
|
126
|
+
/** Интервал проверки изменений в мс (по умолчанию: 1000) */
|
|
127
|
+
pollInterval?: number;
|
|
128
|
+
/** Паттерны для игнорирования файлов */
|
|
129
|
+
ignorePatterns?: string[];
|
|
130
|
+
};
|
|
131
|
+
};
|
|
97
132
|
}
|
|
98
133
|
//# sourceMappingURL=sdk-options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-options.d.ts","sourceRoot":"","sources":["../../../src/interfaces/sdk-options.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IAEnC;;OAEG;IACH,IAAI,CAAC,EAAE;QACL,uCAAuC;QACzC,OAAO,CAAC,EAAE,MAAM,CAAC;QACf,qCAAqC;QACrC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,+BAA+B;QAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;;OAGG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC;IAEjB;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAE7E;;OAEG;IACH,SAAS,CAAC,EAAE;QACV;;WAEG;QACH,SAAS,CAAC,EAAE;YACV;;eAEG;YACH,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,gBAAgB,CAAC;YACtD;;eAEG;YACH,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB;;eAEG;YACH,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;QACF;;WAEG;QACH,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IAEF;;;OAGG;IACH,aAAa,CAAC,EAAE;QACd,mDAAmD;QACnD,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,sDAAsD;QACtD,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,yDAAyD;QACzD,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,6DAA6D;QAC7D,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH"}
|
|
1
|
+
{"version":3,"file":"sdk-options.d.ts","sourceRoot":"","sources":["../../../src/interfaces/sdk-options.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IAEnC;;OAEG;IACH,IAAI,CAAC,EAAE;QACL,uCAAuC;QACzC,OAAO,CAAC,EAAE,MAAM,CAAC;QACf,qCAAqC;QACrC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,+BAA+B;QAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;;OAGG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC;IAEjB;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAE7E;;OAEG;IACH,SAAS,CAAC,EAAE;QACV;;WAEG;QACH,SAAS,CAAC,EAAE;YACV;;eAEG;YACH,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,gBAAgB,CAAC;YACtD;;eAEG;YACH,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB;;eAEG;YACH,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;QACF;;WAEG;QACH,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IAEF;;;OAGG;IACH,aAAa,CAAC,EAAE;QACd,mDAAmD;QACnD,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,sDAAsD;QACtD,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,yDAAyD;QACzD,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,6DAA6D;QAC7D,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;IAEF;;;OAGG;IACH,aAAa,CAAC,EAAE;QACd,gDAAgD;QAChD,OAAO,EAAE,OAAO,CAAC;QAEjB,2BAA2B;QAC3B,UAAU,CAAC,EAAE;YACX,iCAAiC;YACjC,OAAO,EAAE,OAAO,CAAC;YACjB,qCAAqC;YACrC,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;QAEF,mCAAmC;QACnC,QAAQ,CAAC,EAAE;YACT,oDAAoD;YACpD,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,mDAAmD;YACnD,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,qDAAqD;YACrD,aAAa,CAAC,EAAE,OAAO,CAAC;YACxB,uCAAuC;YACvC,eAAe,CAAC,EAAE,OAAO,CAAC;SAC3B,CAAC;QAEF,oDAAoD;QACpD,YAAY,CAAC,EAAE;YACb,wDAAwD;YACxD,OAAO,EAAE,OAAO,CAAC;YACjB,4DAA4D;YAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,wCAAwC;YACxC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;SAC3B,CAAC;KACH,CAAC;CACH"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 🚀 Delta-Chunking Types для SDK
|
|
3
|
+
* Синхронизировано с backend API и документацией
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Опции для синхронизации проекта
|
|
7
|
+
*/
|
|
8
|
+
export interface SyncOptions {
|
|
9
|
+
/** Принудительная полная синхронизация */
|
|
10
|
+
forceFull?: boolean;
|
|
11
|
+
/** Размер батча для загрузки чанков */
|
|
12
|
+
batchSize?: number;
|
|
13
|
+
/** Паттерны для игнорирования файлов */
|
|
14
|
+
ignorePatterns?: string[];
|
|
15
|
+
/** Включать только определенные расширения */
|
|
16
|
+
includeExtensions?: string[];
|
|
17
|
+
/** Максимальный размер файла для обработки (KB) */
|
|
18
|
+
maxFileSizeKB?: number;
|
|
19
|
+
/** Callback для отслеживания прогресса */
|
|
20
|
+
onProgress?: (current: number, total: number) => void;
|
|
21
|
+
/** Таймаут для операций */
|
|
22
|
+
timeoutMs?: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Результат операции синхронизации
|
|
26
|
+
*/
|
|
27
|
+
export interface SyncResult {
|
|
28
|
+
/** Успешность операции */
|
|
29
|
+
success: boolean;
|
|
30
|
+
/** ID проекта */
|
|
31
|
+
projectId: string;
|
|
32
|
+
/** ID сессии синхронизации */
|
|
33
|
+
sessionId?: string;
|
|
34
|
+
/** Количество обработанных чанков */
|
|
35
|
+
processedChunks: number;
|
|
36
|
+
/** Общее количество чанков */
|
|
37
|
+
totalChunks: number;
|
|
38
|
+
/** Время выполнения в мс */
|
|
39
|
+
duration: number;
|
|
40
|
+
/** Сообщение об ошибке (если есть) */
|
|
41
|
+
error?: string;
|
|
42
|
+
/** Детали операции */
|
|
43
|
+
details?: {
|
|
44
|
+
/** Количество новых файлов */
|
|
45
|
+
newFiles: number;
|
|
46
|
+
/** Количество измененных файлов */
|
|
47
|
+
changedFiles: number;
|
|
48
|
+
/** Количество удаленных файлов */
|
|
49
|
+
deletedFiles: number;
|
|
50
|
+
/** Статус последней синхронизации */
|
|
51
|
+
lastSyncStatus?: 'completed' | 'failed' | 'cancelled';
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Содержимое файла для синхронизации
|
|
56
|
+
*/
|
|
57
|
+
export interface FileContent {
|
|
58
|
+
/** Путь к файлу */
|
|
59
|
+
path: string;
|
|
60
|
+
/** Содержимое файла */
|
|
61
|
+
content: string;
|
|
62
|
+
/** Время последнего изменения */
|
|
63
|
+
lastModified: number;
|
|
64
|
+
/** Размер файла в байтах */
|
|
65
|
+
size?: number;
|
|
66
|
+
/** Язык программирования */
|
|
67
|
+
language?: string;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Чанк кода
|
|
71
|
+
*/
|
|
72
|
+
export interface CodeChunk {
|
|
73
|
+
/** Уникальный ID чанка */
|
|
74
|
+
id: string;
|
|
75
|
+
/** Содержимое чанка */
|
|
76
|
+
content: string;
|
|
77
|
+
/** Путь к файлу */
|
|
78
|
+
filePath: string;
|
|
79
|
+
/** Обфусцированный путь */
|
|
80
|
+
obfuscatedPath: string;
|
|
81
|
+
/** Начальная строка */
|
|
82
|
+
startLine: number;
|
|
83
|
+
/** Конечная строка */
|
|
84
|
+
endLine: number;
|
|
85
|
+
/** Тип чанка */
|
|
86
|
+
chunkType: 'function' | 'class' | 'comment' | 'block' | 'import' | 'other';
|
|
87
|
+
/** Хеш содержимого */
|
|
88
|
+
contentHash: string;
|
|
89
|
+
/** Язык программирования */
|
|
90
|
+
language?: string;
|
|
91
|
+
/** Метаданные */
|
|
92
|
+
metadata?: {
|
|
93
|
+
/** Токены в чанке */
|
|
94
|
+
tokens?: number;
|
|
95
|
+
/** Сложность кода */
|
|
96
|
+
complexity?: number;
|
|
97
|
+
/** Зависимости */
|
|
98
|
+
dependencies?: string[];
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Зашифрованный чанк для отправки на сервер
|
|
103
|
+
*/
|
|
104
|
+
export interface EncryptedChunk {
|
|
105
|
+
/** ID чанка */
|
|
106
|
+
chunkId: string;
|
|
107
|
+
/** Обфусцированный путь */
|
|
108
|
+
obfuscatedPath: string;
|
|
109
|
+
/** Тип чанка */
|
|
110
|
+
chunkType: string;
|
|
111
|
+
/** Зашифрованный контент */
|
|
112
|
+
encryptedContent: string;
|
|
113
|
+
/** Инициализационный вектор */
|
|
114
|
+
iv: string;
|
|
115
|
+
/** Тег аутентификации */
|
|
116
|
+
authTag: string;
|
|
117
|
+
/** Хеш чанка */
|
|
118
|
+
chunkHash: string;
|
|
119
|
+
/** Метаданные */
|
|
120
|
+
metadata?: {
|
|
121
|
+
startLine: number;
|
|
122
|
+
endLine: number;
|
|
123
|
+
language: string;
|
|
124
|
+
originalSize: number;
|
|
125
|
+
[key: string]: any;
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Статус синхронизации
|
|
130
|
+
*/
|
|
131
|
+
export interface SyncStatus {
|
|
132
|
+
/** ID проекта */
|
|
133
|
+
projectId: string;
|
|
134
|
+
/** ID активной сессии */
|
|
135
|
+
sessionId?: string;
|
|
136
|
+
/** Статус */
|
|
137
|
+
status: 'idle' | 'active' | 'completed' | 'failed' | 'cancelled';
|
|
138
|
+
/** Прогресс (0-100) */
|
|
139
|
+
progress: number;
|
|
140
|
+
/** Количество полученных чанков */
|
|
141
|
+
chunksReceived: number;
|
|
142
|
+
/** Количество обработанных чанков */
|
|
143
|
+
chunksProcessed: number;
|
|
144
|
+
/** Количество ошибок */
|
|
145
|
+
errorCount: number;
|
|
146
|
+
/** Время начала */
|
|
147
|
+
startedAt?: Date;
|
|
148
|
+
/** Время завершения */
|
|
149
|
+
completedAt?: Date;
|
|
150
|
+
/** Последняя активность */
|
|
151
|
+
lastActivity?: Date;
|
|
152
|
+
/** Сообщение об ошибке */
|
|
153
|
+
error?: string;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* File Watcher для автоматической синхронизации
|
|
157
|
+
*/
|
|
158
|
+
export interface FileWatcher {
|
|
159
|
+
/** ID проекта */
|
|
160
|
+
projectId: string;
|
|
161
|
+
/** Путь к наблюдаемой директории */
|
|
162
|
+
watchPath: string;
|
|
163
|
+
/** Статус watcher'а */
|
|
164
|
+
isActive: boolean;
|
|
165
|
+
/** Запуск наблюдения */
|
|
166
|
+
start(): Promise<void>;
|
|
167
|
+
/** Остановка наблюдения */
|
|
168
|
+
stop(): Promise<void>;
|
|
169
|
+
/** Событие изменения файлов */
|
|
170
|
+
on(event: 'change', callback: (changedFiles: string[]) => void): void;
|
|
171
|
+
/** Событие ошибки */
|
|
172
|
+
on(event: 'error', callback: (error: Error) => void): void;
|
|
173
|
+
/** Событие синхронизации */
|
|
174
|
+
on(event: 'sync', callback: (result: SyncResult) => void): void;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* DTO для инициализации синхронизации (соответствует backend API)
|
|
178
|
+
*/
|
|
179
|
+
export interface SyncInitRequest {
|
|
180
|
+
/** Хеш корня Merkle дерева клиента */
|
|
181
|
+
clientRootHash: string;
|
|
182
|
+
/** Метаданные синхронизации */
|
|
183
|
+
metadata?: {
|
|
184
|
+
/** Версия клиента */
|
|
185
|
+
clientVersion?: string;
|
|
186
|
+
/** Количество ожидаемых чанков */
|
|
187
|
+
expectedChunks?: number;
|
|
188
|
+
/** Тип синхронизации */
|
|
189
|
+
syncType?: 'full' | 'incremental';
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* DTO для батча чанков (соответствует backend API)
|
|
194
|
+
*/
|
|
195
|
+
export interface DeltaChunksBatchRequest {
|
|
196
|
+
/** Индекс батча */
|
|
197
|
+
batchIndex: number;
|
|
198
|
+
/** Общее количество батчей */
|
|
199
|
+
totalBatches: number;
|
|
200
|
+
/** Чанки в батче */
|
|
201
|
+
chunks: EncryptedChunk[];
|
|
202
|
+
/** Метаданные батча */
|
|
203
|
+
metadata?: {
|
|
204
|
+
/** Сжатие используется */
|
|
205
|
+
compressed?: boolean;
|
|
206
|
+
/** Размер до сжатия */
|
|
207
|
+
originalSize?: number;
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=delta-chunking.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delta-chunking.d.ts","sourceRoot":"","sources":["../../../src/types/delta-chunking.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,8CAA8C;IAC9C,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,0BAA0B;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,OAAO,CAAC,EAAE;QACR,8BAA8B;QAC9B,QAAQ,EAAE,MAAM,CAAC;QACjB,mCAAmC;QACnC,YAAY,EAAE,MAAM,CAAC;QACrB,kCAAkC;QAClC,YAAY,EAAE,MAAM,CAAC;QACrB,qCAAqC;QACrC,cAAc,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;KACvD,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB;IAChB,SAAS,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3E,sBAAsB;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,QAAQ,CAAC,EAAE;QACT,qBAAqB;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,qBAAqB;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,kBAAkB;QAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,QAAQ,CAAC,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa;IACb,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IACjE,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,uBAAuB;IACvB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,wBAAwB;IACxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,2BAA2B;IAC3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,+BAA+B;IAC/B,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACtE,qBAAqB;IACrB,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3D,4BAA4B;IAC5B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;CACjE;AAID;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE;QACT,qBAAqB;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,kCAAkC;QAClC,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,wBAAwB;QACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;KACnC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,mBAAmB;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB;IACpB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,uBAAuB;IACvB,QAAQ,CAAC,EAAE;QACT,0BAA0B;QAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,uBAAuB;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH"}
|