solver-sdk 6.0.2 → 6.0.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.
Files changed (2) hide show
  1. package/README.md +52 -28
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -23,58 +23,82 @@ const sdk = new CodeSolverSDK({
23
23
 
24
24
  ### Projects API (`sdk.projects`)
25
25
  ```typescript
26
+ // Базовое управление проектами
26
27
  createProject(name: string, data?: any): Promise<Project>
27
28
  getAllProjects(): Promise<Project[]>
28
29
  getProject(projectId: string): Promise<Project>
29
- findOrCreateProject(projectName: string): Promise<Project>
30
+ findOrCreateProject(projectName: string): Promise<Project> // Найти существующий или создать новый
30
31
  deleteProject(projectId: string): Promise<void>
31
32
 
32
- getProjectState(projectId: string, clientRootHash?: string): Promise<ProjectState>
33
+ // Проверка состояния синхронизации
34
+ getProjectState(projectId: string, clientRootHash?: string): Promise<ProjectState> // Передать clientRootHash для проверки нужна ли синхронизация
33
35
  getIndexingStatus(projectId: string): Promise<any>
34
36
  startIndexing(projectId: string, options?: any): Promise<any>
35
37
  cancelIndexing(projectId: string): Promise<boolean>
36
- resetIndexing(projectId: string): Promise<any>
37
- restartIndexing(projectId: string): Promise<any>
38
-
39
- getRecoveryStatus(projectId: string): Promise<any>
40
- resumeSync(projectId: string, options?: any): Promise<any>
41
- cancelRecovery(projectId: string): Promise<any>
42
- initializeDeltaSync(projectId: string, clientRootHash: string): Promise<any>
43
-
44
- sendInitialSync(projectId: string, request: any): Promise<any>
45
- sendDeltaSync(projectId: string, batchRequest: any): Promise<any>
46
- getDeltaSyncStatus(projectId: string): Promise<any>
47
- finalizeDeltaSync(projectId: string): Promise<any>
38
+ resetIndexing(projectId: string): Promise<any> // Очистить индекс, проект остается
39
+ restartIndexing(projectId: string): Promise<any> // Очистить + подготовить к новой индексации
40
+
41
+ // Session Recovery - восстановление прерванных синхронизаций
42
+ getRecoveryStatus(projectId: string): Promise<any> // Проверить есть ли прерванные сессии при старте
43
+ resumeSync(projectId: string, options?: any): Promise<any> // Продолжить прерванную синхронизацию
44
+ cancelRecovery(projectId: string): Promise<any> // Отменить восстановление, начать заново
45
+ initializeDeltaSync(projectId: string, clientRootHash: string): Promise<any> // ОБЯЗАТЕЛЬНО вызвать перед отправкой chunks
46
+
47
+ // Delta Sync API - отправка готовых chunks
48
+ sendInitialSync(projectId: string, request: any): Promise<any> // Инициализация с clientRootHash
49
+ sendDeltaSync(projectId: string, batchRequest: any): Promise<any> // Отправка батча зашифрованных chunks
50
+ getDeltaSyncStatus(projectId: string): Promise<any> // Статус текущей синхронизации
51
+ finalizeDeltaSync(projectId: string): Promise<any> // ОБЯЗАТЕЛЬНО вызвать после всех batches
48
52
  cancelDeltaSync(projectId: string): Promise<any>
49
53
 
50
- getFilePathMapping(projectId: string): Promise<any>
54
+ // Диагностика
55
+ getFilePathMapping(projectId: string): Promise<any> // Получить маппинг обфусцированных путей с сервера
51
56
  ```
52
57
 
53
58
  ### Delta Manager API (`sdk.deltaManager`)
54
59
  ```typescript
55
- syncEncryptedChunks(projectId: string, encryptedChunks: any[], rootHash: string, options?: any): Promise<any>
56
- getSyncStatus(projectId: string): Promise<any>
60
+ // Отправка готовых зашифрованных chunks (Client Extension уже подготовил)
61
+ syncEncryptedChunks(projectId: string, encryptedChunks: any[], rootHash: string, options?: any): Promise<any> // Chunks должны быть ready-to-send
62
+ getSyncStatus(projectId: string): Promise<any> // Статус delta-chunking процесса
57
63
  cancelSync(projectId: string): Promise<boolean>
58
64
  ```
59
65
 
60
66
  ### Chat API (`sdk.chat`)
61
67
  ```typescript
62
- chat(messages: any[], options?: any): Promise<any>
63
- chatStream(messages: any[], options?: any): Promise<AsyncIterable<any>>
64
- cancelCurrentRequest(): void
68
+ chat(messages: any[], options?: any): Promise<any> // Обычный запрос-ответ
69
+ chatStream(messages: any[], options?: any): Promise<AsyncIterable<any>> // Потоковый чат (streaming)
70
+ cancelCurrentRequest(): void // Прервать активный запрос
65
71
  ```
66
72
 
67
73
  ### Search API (`sdk.search`)
68
74
  ```typescript
69
- search(query: string, options?: any): Promise<any[]>
70
- searchThenFetch(query: string, options?: any): Promise<any>
75
+ search(query: string, options?: any): Promise<any[]> // Векторный поиск по индексу
76
+ searchThenFetch(query: string, options?: any): Promise<any> // Поиск + загрузка полного контекста
71
77
  ```
72
78
 
73
79
  ### WebSocket API (`sdk.projectSync`)
74
80
  ```typescript
75
- connectProjectSync(projectId: string): Promise<void>
76
- onSyncProgress(callback: Function): void
77
- onSyncCompleted(callback: Function): void
78
- onSyncError(callback: Function): void
79
- disconnectWebSocket(): void
80
- ```
81
+ // Real-time уведомления о синхронизации
82
+ connectProjectSync(projectId: string): Promise<void> // Подключиться к конкретному проекту
83
+ onSyncProgress(callback: Function): void // Событие: прогресс индексации (%)
84
+ onSyncCompleted(callback: Function): void // Событие: синхронизация завершена
85
+ onSyncError(callback: Function): void // Событие: ошибка синхронизации
86
+ disconnectWebSocket(): void // Отключить WebSocket
87
+ ```
88
+
89
+ ## ⚠️ Важные особенности
90
+
91
+ ### Архитектурные принципы:
92
+ - **Backend SDK** = только HTTP API клиент, НЕ работает с файловой системой
93
+ - **Client Extension** сканирует файлы, вычисляет hashes, создает chunks
94
+ - **Обязательная последовательность**: `initializeDeltaSync()` → `sendDeltaSync()` → `finalizeDeltaSync()`
95
+
96
+ ### Session Recovery:
97
+ - Всегда проверяйте `getRecoveryStatus()` при старте проекта
98
+ - Показывайте пользователю диалог "Continue (67%) | Start Fresh"
99
+ - `resumeSync()` продолжит с последнего batch, `cancelRecovery()` начнет заново
100
+
101
+ ### WebSocket для real-time:
102
+ - Используйте WebSocket вместо polling для статуса
103
+ - `connectProjectSync(projectId)` подключает к конкретному проекту
104
+ - Все события автоматически фильтруются по projectId
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "solver-sdk",
3
- "version": "6.0.2",
3
+ "version": "6.0.3",
4
4
  "description": "SDK for API integration",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",