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.
- package/README.md +62 -29
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Code Solver SDK v6.0.
|
|
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
|
-
|
|
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
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
-
|
|
54
|
+
// Диагностика
|
|
55
|
+
getFilePathMapping(projectId: string): Promise<any> // Получить маппинг обфусцированных путей с сервера
|
|
51
56
|
```
|
|
52
57
|
|
|
53
58
|
### Delta Manager API (`sdk.deltaManager`)
|
|
54
59
|
```typescript
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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
|