solver-sdk 6.0.0 → 6.0.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 CHANGED
@@ -294,56 +294,60 @@ sdk.disconnectWebSocket();
294
294
 
295
295
  ---
296
296
 
297
- ## 🔧 **API Reference**
297
+ # Backend SDK v6.0.0 API
298
298
 
299
- ### Projects API (`sdk.projects`)
299
+ ## Projects API (`sdk.projects`)
300
300
  ```typescript
301
+ // Управление проектами
301
302
  createProject(name: string, data?: any): Promise<Project>
302
303
  getAllProjects(): Promise<Project[]>
303
304
  getProject(projectId: string): Promise<Project | null>
304
305
  findOrCreateProject(projectPath: string, projectName: string): Promise<Project>
306
+ deleteProject(projectId: string): Promise<void>
307
+
308
+ // Статус и состояние
305
309
  getProjectState(projectId: string, clientRootHash?: string): Promise<ProjectState>
310
+ getIndexingStatus(projectId: string): Promise<IndexingStatus>
311
+ startIndexing(projectId: string, options?: IndexingOptions): Promise<any>
312
+ cancelIndexing(projectId: string): Promise<boolean>
313
+ resetIndexing(projectId: string): Promise<ResetResult>
314
+
315
+ // Session Recovery
306
316
  getRecoveryStatus(projectId: string): Promise<RecoveryStatus>
307
- resumeSync(projectId: string, options?: ResumeOptions): Promise<ResumeResult>
317
+ resumeSync(projectId: string, options?: ResumeOptions): Promise<ResumeResult>
308
318
  cancelRecovery(projectId: string): Promise<{ success: boolean }>
309
319
  initializeDeltaSync(projectId: string, clientRootHash: string): Promise<SyncInitResult>
310
- resetIndexing(projectId: string): Promise<ResetResult>
311
- deleteProject(projectId: string): Promise<void>
312
320
  ```
313
321
 
314
- ### Delta Manager API (`sdk.deltaManager`)
322
+ ## Delta Manager API (`sdk.deltaManager`)
315
323
  ```typescript
316
324
  syncEncryptedChunks(projectId: string, encryptedChunks: EncryptedChunk[], rootHash: string, options?: SyncOptions): Promise<SyncResult>
317
- cleanupDeletedFiles(projectId: string, currentFiles: FileContent[]): Promise<CleanupResult>
318
325
  getSyncStatus(projectId: string): Promise<SyncStatus>
319
326
  cancelSync(projectId: string): Promise<boolean>
320
327
  ```
321
328
 
322
- ### Chat API (`sdk.chat`)
329
+ ## Chat API (`sdk.chat`)
323
330
  ```typescript
324
331
  chat(messages: ChatMessage[], options?: ChatOptions): Promise<ChatResponse>
325
332
  chatStream(messages: ChatMessage[], options?: ChatOptions): Promise<AsyncIterable<ChatStreamChunk>>
326
333
  cancelCurrentRequest(): void
327
334
  ```
328
335
 
329
- ### Search API (`sdk.search`)
336
+ ## Search API (`sdk.search`)
330
337
  ```typescript
331
338
  search(query: string, options?: SearchOptions): Promise<SearchResult[]>
332
339
  searchThenFetch(query: string, options?: SearchThenFetchOptions): Promise<SearchThenFetchResult>
333
340
  ```
334
341
 
335
- ### WebSocket API (`sdk.projectSync`)
342
+ ## WebSocket API (`sdk.projectSync`)
336
343
  ```typescript
337
344
  connectProjectSync(projectId: string): Promise<void>
338
345
  onSyncProgress(callback: (progress: SyncProgressEvent) => void): void
339
- onSyncCompleted(callback: (result: SyncCompletedEvent) => void): void
346
+ onSyncCompleted(callback: (result: SyncCompletedEvent) => void): void
340
347
  onSyncError(callback: (error: SyncErrorEvent) => void): void
341
348
  disconnectWebSocket(): void
342
349
  ```
343
350
 
344
- ---
345
-
346
- ## 🔧 **Backend SDK API Reference**
347
351
 
348
352
  ### 🏗️ **Projects API (`sdk.projects`)**
349
353
 
@@ -1,169 +1,51 @@
1
1
  "use strict";
2
2
  /**
3
- * 🚀 Indexing API - управление индексацией проектов
3
+ * 🚨 АРХИТЕКТУРНАЯ ОШИБКА: IndexingApi удален!
4
4
  *
5
- * Предоставляет методы для запуска, остановки и мониторинга
6
- * индексации проектов, а также получения статуса.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.IndexingApi = void 0;
10
- /**
11
- * API для управления индексацией проектов
5
+ * Backend SDK не должен работать с файловыми путями!
6
+ * Вся логика индексации перенесена в Projects API.
12
7
  *
13
- * @example
14
- * ```javascript
15
- * // Создание и индексация проекта
16
- * const result = await sdk.indexing.indexProject('/path/to/project', 'My Project');
17
- * console.log('Project ID:', result.projectId);
8
+ * ✅ ИСПОЛЬЗУЙТЕ вместо этого:
18
9
  *
19
- * // Получение статуса индексации
20
- * const status = await sdk.indexing.getStatus(result.projectId);
21
- * console.log('Progress:', status.progress);
10
+ * ```typescript
11
+ * // Создание проекта Client Extension):
12
+ * const project = await sdk.projects.createProject('My Project', {
13
+ * description: 'Описание проекта'
14
+ * });
22
15
  *
23
- * // Ожидание завершения индексации
24
- * const finalStatus = await sdk.indexing.waitForCompletion(result.projectId);
25
- * console.log('Final status:', finalStatus.status);
16
+ * // Получение статуса индексации:
17
+ * const status = await sdk.projects.getIndexingStatus(project.id);
26
18
  *
27
- * // Отмена индексации
28
- * await sdk.indexing.cancelIndexing(result.projectId);
19
+ * // Отмена индексации:
20
+ * await sdk.projects.cancelIndexing(project.id);
21
+ *
22
+ * // Real-time статус через WebSocket:
23
+ * await sdk.connectProjectSync(project.id);
24
+ * sdk.onSyncProgress((progress) => {
25
+ * console.log('Progress:', progress.percentage);
26
+ * });
29
27
  * ```
30
28
  */
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.IndexingApi = void 0;
31
31
  class IndexingApi {
32
- constructor(httpClient) {
33
- this.httpClient = httpClient;
34
- }
35
- /**
36
- * Создает проект и запускает его индексацию
37
- *
38
- * @param {string} projectPath Путь к проекту (для совместимости с тестами)
39
- * @param {string} projectName Имя проекта
40
- * @param {string} [description] Описание проекта
41
- * @returns {Promise<IndexProjectResult>} Результат создания проекта
42
- */
43
- async indexProject(projectPath, projectName, description) {
44
- // Создаем проект
45
- const createRequest = {
46
- name: projectName,
47
- description: description || `Проект из ${projectPath}`
48
- };
49
- const project = await this.httpClient.post('/api/v1/projects', createRequest);
50
- // Запускаем индексацию
51
- const indexingResult = await this.httpClient.post(`/api/v1/projects/${project.id}/index`);
52
- return {
53
- projectId: project.id,
54
- name: project.name,
55
- status: indexingResult.status || 'started',
56
- message: indexingResult.message || 'Индексация запущена'
57
- };
58
- }
59
- /**
60
- * Получает текущий статус индексации проекта
61
- *
62
- * ⚠️ ВАЖНО: Для real-time уведомлений используйте WebSocket:
63
- * ```typescript
64
- * // Правильно (real-time):
65
- * await sdk.connectWebSocket();
66
- * sdk.projectSync.on('sync-status-update', (status) => {
67
- * console.log('Статус обновлен:', status);
68
- * });
69
- *
70
- * // Неправильно (не делайте polling):
71
- * // setInterval(() => sdk.indexing.getStatus(id), 2000); // ❌
72
- * ```
73
- *
74
- * @param {string} projectId ID проекта
75
- * @returns {Promise<IndexingStatus>} Текущий статус индексации
76
- */
77
- async getStatus(projectId) {
78
- this.validateProjectId(projectId);
79
- const status = await this.httpClient.get(`/api/v1/projects/${projectId}/indexing-status`);
80
- return {
81
- status: status.status || 'unknown',
82
- progress: status.progress || 0,
83
- totalFiles: status.totalFiles,
84
- processedFiles: status.processedFiles,
85
- currentFile: status.currentFile,
86
- error: status.error,
87
- updatedAt: new Date().toISOString()
88
- };
89
- }
90
- /**
91
- * ⚠️ DEPRECATED: Метод отключен. Используйте WebSocket для real-time уведомлений
92
- *
93
- * @deprecated Используйте WebSocket подход:
94
- * ```typescript
95
- * await sdk.connectWebSocket();
96
- * sdk.projectSync.on('sync-status-update', (status) => {
97
- * if (status.status === 'completed') {
98
- * console.log('Индексация завершена!');
99
- * }
100
- * });
101
- * sdk.projectSync.subscribeToProject(projectId);
102
- * ```
103
- *
104
- * @param {string} projectId ID проекта
105
- * @param {number} [timeout=300000] Таймаут в миллисекундах
106
- * @returns {Promise<IndexingStatus>} Бросает ошибку
107
- */
108
- async waitForCompletion(projectId, timeout = 300000) {
109
- throw new Error('❌ waitForCompletion() ОТКЛЮЧЕН для предотвращения polling.\n\n' +
110
- '✅ ИСПОЛЬЗУЙТЕ WebSocket для real-time уведомлений:\n\n' +
111
- 'await sdk.connectWebSocket();\n' +
112
- 'sdk.projectSync.on(\'sync-status-update\', (status) => {\n' +
113
- ' if (status.status === \'completed\') {\n' +
114
- ' console.log(\'Индексация завершена!\');\n' +
115
- ' }\n' +
116
- '});\n' +
117
- 'sdk.projectSync.subscribeToProject(projectId);\n\n' +
118
- '📖 Подробнее: https://docs.codesolver.dev/websocket');
119
- }
120
- /**
121
- * Отменяет текущую индексацию проекта
122
- *
123
- * @param {string} projectId ID проекта
124
- * @returns {Promise<void>}
125
- */
126
- async cancelIndexing(projectId) {
127
- this.validateProjectId(projectId);
128
- await this.httpClient.post(`/api/v1/projects/${projectId}/cancel-indexing`);
129
- }
130
- /**
131
- * Перезапускает индексацию проекта
132
- *
133
- * @param {string} projectId ID проекта
134
- * @returns {Promise<IndexingStatus>} Статус после перезапуска
135
- */
136
- async restartIndexing(projectId) {
137
- this.validateProjectId(projectId);
138
- // Сначала отменяем текущую индексацию
139
- try {
140
- await this.cancelIndexing(projectId);
141
- }
142
- catch (error) {
143
- // Игнорируем ошибки отмены - возможно индексация уже завершена
144
- }
145
- // Запускаем новую индексацию
146
- const result = await this.httpClient.post(`/api/v1/projects/${projectId}/index`);
147
- return {
148
- status: result.status || 'started',
149
- progress: 0,
150
- updatedAt: new Date().toISOString()
151
- };
152
- }
153
- /**
154
- * Валидация ID проекта
155
- * @private
156
- */
157
- validateProjectId(projectId) {
158
- if (projectId === undefined || projectId === null) {
159
- throw new Error('Project ID is required');
160
- }
161
- if (typeof projectId !== 'string') {
162
- throw new Error('Project ID must be a string');
163
- }
164
- if (projectId.trim().length === 0) {
165
- throw new Error('Project ID cannot be empty');
166
- }
32
+ constructor() {
33
+ throw new Error(`
34
+ 🚨 АРХИТЕКТУРНАЯ ОШИБКА: IndexingApi недоступен!
35
+
36
+ Backend SDK не должен работать с файловыми путями.
37
+
38
+ ИСПОЛЬЗУЙТЕ Projects API:
39
+ - sdk.projects.createProject() - создание проекта
40
+ - sdk.projects.getIndexingStatus() - статус индексации
41
+ - sdk.projects.cancelIndexing() - отмена индексации
42
+
43
+ ИСПОЛЬЗУЙТЕ WebSocket для real-time:
44
+ - sdk.connectProjectSync() - подключение
45
+ - sdk.onSyncProgress() - прогресс индексации
46
+
47
+ 📖 Документация: https://docs.codesolver.dev/projects-api
48
+ `);
167
49
  }
168
50
  }
169
51
  exports.IndexingApi = IndexingApi;
@@ -1 +1 @@
1
- {"version":3,"file":"indexing-api.js","sourceRoot":"","sources":["../../../src/api/indexing-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indexing-api.js","sourceRoot":"","sources":["../../../src/api/indexing-api.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;;AAEH,MAAa,WAAW;IACtB;QACE,MAAM,IAAI,KAAK,CAAC;;;;;;;;;;;;;;;KAef,CAAC,CAAC;IACL,CAAC;CACF;AAnBD,kCAmBC"}