solver-sdk 6.0.2 → 6.0.4

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 +62 -29
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Code Solver SDK v6.0.1
1
+ # Code Solver SDK v6.0.3
2
2
 
3
3
  Backend SDK для интеграции с Code Solver API
4
4
 
@@ -23,58 +23,91 @@ 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>
64
+ cleanupDeletedFiles(projectId: string, activeFiles: any[]): Promise<any> // Очистить удаленные файлы из индекса
58
65
  ```
59
66
 
60
67
  ### Chat API (`sdk.chat`)
61
68
  ```typescript
62
- chat(messages: any[], options?: any): Promise<any>
63
- chatStream(messages: any[], options?: any): Promise<AsyncIterable<any>>
64
- cancelCurrentRequest(): void
69
+ // Основные методы
70
+ chat(messages: any[], options?: any): Promise<any> // Обычный запрос-ответ
71
+ chatCompletion(messages: any[], options?: any): Promise<any> // Алиас для chat()
72
+ streamChat(messages: any[], options?: any): Promise<AsyncIterable<any>> // Потоковый чат (streaming)
73
+ streamPrompt(prompt: string, options?: any): Promise<AsyncIterable<any>> // Потоковый промпт
74
+ sendContinuation(messages: any[], options?: any): Promise<AsyncIterable<any>> // Continuation для interleaved thinking
75
+
76
+ // Failover и проверки
77
+ chatWithRegionFailover(messages: any[], options?: any): Promise<any> // Чат с переключением регионов
78
+ sendPromptWithRegionFailover(prompt: string, options?: any): Promise<string> // Промпт с переключением регионов
79
+ checkAvailability(): Promise<boolean> // Проверить доступность сервиса
65
80
  ```
66
81
 
67
82
  ### Search API (`sdk.search`)
68
83
  ```typescript
69
- search(query: string, options?: any): Promise<any[]>
70
- searchThenFetch(query: string, options?: any): Promise<any>
84
+ search(query: string, options?: any): Promise<any[]> // Векторный поиск по индексу
85
+ searchThenFetch(query: string, options?: any): Promise<any> // Поиск + загрузка полного контекста
71
86
  ```
72
87
 
73
88
  ### WebSocket API (`sdk.projectSync`)
74
89
  ```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
- ```
90
+ // Real-time уведомления о синхронизации
91
+ connectProjectSync(projectId: string): Promise<void> // Подключиться к конкретному проекту
92
+ onSyncProgress(callback: Function): void // Событие: прогресс индексации (%)
93
+ onSyncCompleted(callback: Function): void // Событие: синхронизация завершена
94
+ onSyncError(callback: Function): void // Событие: ошибка синхронизации
95
+ disconnectWebSocket(): void // Отключить WebSocket
96
+ ```
97
+
98
+ ## ⚠️ Важные особенности
99
+
100
+ ### Архитектурные принципы:
101
+ - **Backend SDK** = только HTTP API клиент, НЕ работает с файловой системой
102
+ - **Client Extension** сканирует файлы, вычисляет hashes, создает chunks
103
+ - **Обязательная последовательность**: `initializeDeltaSync()` → `sendDeltaSync()` → `finalizeDeltaSync()`
104
+
105
+ ### Session Recovery:
106
+ - Всегда проверяйте `getRecoveryStatus()` при старте проекта
107
+ - Показывайте пользователю диалог "Continue (67%) | Start Fresh"
108
+ - `resumeSync()` продолжит с последнего batch, `cancelRecovery()` начнет заново
109
+
110
+ ### WebSocket для real-time:
111
+ - Используйте WebSocket вместо polling для статуса
112
+ - `connectProjectSync(projectId)` подключает к конкретному проекту
113
+ - Все события автоматически фильтруются по 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.4",
4
4
  "description": "SDK for API integration",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",