@syntero/orca-cli 1.2.5 → 1.2.7

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 (40) hide show
  1. package/dist/components/ChatApp.js +2 -2
  2. package/dist/components/ChatApp.js.map +1 -1
  3. package/dist/components/InputFooter.d.ts +3 -3
  4. package/dist/components/InputFooter.d.ts.map +1 -1
  5. package/dist/components/InputFooter.js +3 -3
  6. package/dist/components/InputFooter.js.map +1 -1
  7. package/dist/components/SyncMenu.d.ts +4 -4
  8. package/dist/components/SyncMenu.d.ts.map +1 -1
  9. package/dist/components/SyncMenu.js +26 -26
  10. package/dist/components/SyncMenu.js.map +1 -1
  11. package/dist/hooks/useInputDispatch.js +1 -1
  12. package/dist/hooks/useInputDispatch.js.map +1 -1
  13. package/dist/hooks/useSyncFetchers.d.ts +1 -1
  14. package/dist/hooks/useSyncFetchers.d.ts.map +1 -1
  15. package/dist/hooks/useSyncFetchers.js +8 -9
  16. package/dist/hooks/useSyncFetchers.js.map +1 -1
  17. package/dist/sync/download.d.ts +0 -27
  18. package/dist/sync/download.d.ts.map +1 -1
  19. package/dist/sync/download.js +2 -54
  20. package/dist/sync/download.js.map +1 -1
  21. package/dist/sync/index.d.ts +1 -1
  22. package/dist/sync/index.d.ts.map +1 -1
  23. package/dist/sync/index.js.map +1 -1
  24. package/dist/sync/manifest.d.ts +3 -37
  25. package/dist/sync/manifest.d.ts.map +1 -1
  26. package/dist/sync/manifest.js +13 -47
  27. package/dist/sync/manifest.js.map +1 -1
  28. package/dist/sync/progress.d.ts +3 -84
  29. package/dist/sync/progress.d.ts.map +1 -1
  30. package/dist/sync/progress.js +32 -71
  31. package/dist/sync/progress.js.map +1 -1
  32. package/dist/sync/sync-engine.d.ts +4 -4
  33. package/dist/sync/sync-engine.d.ts.map +1 -1
  34. package/dist/sync/sync-engine.js +79 -185
  35. package/dist/sync/sync-engine.js.map +1 -1
  36. package/dist/types/sync.d.ts +37 -119
  37. package/dist/types/sync.d.ts.map +1 -1
  38. package/dist/types/sync.js +3 -1
  39. package/dist/types/sync.js.map +1 -1
  40. package/package.json +1 -1
@@ -1,17 +1,17 @@
1
1
  /**
2
- * Sync Engine - Main sync logic for library sync.
2
+ * Sync Engine - Main sync logic for file-based library sync.
3
3
  *
4
4
  * Handles the complete sync workflow:
5
5
  * 1. Pre-flight checks
6
- * 2. Fetch remote manifest
7
- * 3. Compare with local manifest
6
+ * 2. Fetch remote file manifest
7
+ * 3. Compare with local manifest (file-by-file hash comparison)
8
8
  * 4. Build sync plan
9
9
  * 5. Execute sync (download, verify, write to container)
10
10
  * 6. Update local manifest and services registry
11
11
  */
12
12
  import { cloudRequest, loadCredentials } from '../auth.js';
13
13
  import { debugLog } from '../utils.js';
14
- import { runPreflightChecks, writeFileToSandbox, readFileFromSandbox, deleteFromSandbox, getLibraryPath, getServicesRegistryPath, directoryExistsInSandbox } from './docker.js';
14
+ import { runPreflightChecks, writeFileToSandbox, readFileFromSandbox, deleteFromSandbox, getLibraryPath, getServicesRegistryPath } from './docker.js';
15
15
  import { loadLocalManifest, saveLocalManifest, loadSyncState, startSync, completeSync, isFirstSync } from './manifest.js';
16
16
  import { mergeServicesRegistry } from './services.js';
17
17
  import { downloadWithRetry } from './download.js';
@@ -64,14 +64,14 @@ export class SyncEngine {
64
64
  displayWarning('-'.repeat(40));
65
65
  console.log(`The local library already contains ${preflight.existingLibraryContent} files.`);
66
66
  console.log('Syncing will overwrite any files that conflict with the remote library.');
67
- console.log('Local-only solutions will be preserved.');
67
+ console.log('Local-only files will be preserved.');
68
68
  console.log('\nRun with --force to proceed anyway.');
69
69
  return this.createFailedResult(startTime, errors);
70
70
  }
71
71
  }
72
72
  // 2. Fetch remote manifest
73
73
  this.progressState.phase = 'manifest';
74
- displayPhase('Fetching library manifest...');
74
+ displayPhase('Fetching file manifest...');
75
75
  const { manifest: remoteManifest, unchanged } = await this.fetchRemoteManifest();
76
76
  if (!remoteManifest) {
77
77
  displayError('Failed to fetch remote manifest');
@@ -82,9 +82,6 @@ export class SyncEngine {
82
82
  return {
83
83
  success: true,
84
84
  stats: {
85
- newSolutions: 0,
86
- updatedSolutions: 0,
87
- deletedSolutions: 0,
88
85
  filesDownloaded: 0,
89
86
  filesDeleted: 0,
90
87
  bytesDownloaded: 0,
@@ -93,33 +90,26 @@ export class SyncEngine {
93
90
  errors: []
94
91
  };
95
92
  }
96
- // Remote library is empty but user selected specific solutions — warn clearly
97
- if (remoteManifest.solutions.length === 0 && this.options.solutionFilter && this.options.solutionFilter.length > 0) {
98
- displayWarning(`Remote library has no published files for: ${this.options.solutionFilter.join(', ')}`);
99
- displayWarning('Solutions may exist in the catalog but haven\'t been published to the library yet.');
93
+ // Remote is empty but user selected specific paths — warn clearly
94
+ if (remoteManifest.files.length === 0 && this.options.pathFilter && this.options.pathFilter.length > 0) {
95
+ displayWarning(`Remote library has no files matching: ${this.options.pathFilter.join(', ')}`);
100
96
  return {
101
97
  success: false,
102
98
  stats: {
103
- newSolutions: 0,
104
- updatedSolutions: 0,
105
- deletedSolutions: 0,
106
99
  filesDownloaded: 0,
107
100
  filesDeleted: 0,
108
101
  bytesDownloaded: 0,
109
102
  durationMs: Date.now() - startTime
110
103
  },
111
- errors: [{ solution: this.options.solutionFilter.join(', '), error: 'Not published to library' }]
104
+ errors: [{ path: this.options.pathFilter.join(', '), error: 'No matching files in remote library' }]
112
105
  };
113
106
  }
114
- // Remote library is completely empty — warn instead of misleading "up to date"
115
- if (remoteManifest.solutions.length === 0) {
107
+ // Remote is completely empty
108
+ if (remoteManifest.files.length === 0) {
116
109
  displayWarning('Remote library is empty. Nothing to sync.');
117
110
  return {
118
111
  success: true,
119
112
  stats: {
120
- newSolutions: 0,
121
- updatedSolutions: 0,
122
- deletedSolutions: 0,
123
113
  filesDownloaded: 0,
124
114
  filesDeleted: 0,
125
115
  bytesDownloaded: 0,
@@ -128,41 +118,18 @@ export class SyncEngine {
128
118
  errors: []
129
119
  };
130
120
  }
131
- // 3. Load local manifest and validate against target container
121
+ // 3. Load local manifest
132
122
  this.progressState.phase = 'comparing';
133
- displayPhase('Comparing with local library...');
123
+ displayPhase('Comparing with local files...');
134
124
  const localManifest = loadLocalManifest();
135
- // Validate: evict solutions from manifest that no longer exist in the target container.
136
- // The manifest is a cache — external actions (UI delete, container reset) can invalidate it.
137
- if (localManifest && localManifest.solutions.length > 0) {
138
- const orgId = this.options.orgId || creds.org_id;
139
- const before = localManifest.solutions.length;
140
- localManifest.solutions = localManifest.solutions.filter(s => {
141
- const exists = directoryExistsInSandbox(orgId, `${getLibraryPath()}/${s.library_id}`);
142
- if (!exists) {
143
- debugLog(`[sync] Manifest entry "${s.library_id}" missing from target container — evicting`);
144
- }
145
- return exists;
146
- });
147
- const evicted = before - localManifest.solutions.length;
148
- if (evicted > 0) {
149
- displayWarning(`${evicted} solution${evicted > 1 ? 's' : ''} missing from target — will re-download.`);
150
- saveLocalManifest(localManifest);
151
- }
152
- }
153
125
  // 4. Build sync plan
154
126
  const plan = this.buildSyncPlan(localManifest, remoteManifest);
155
127
  // Check if any changes
156
- if (plan.newSolutions.length === 0 &&
157
- plan.modifiedSolutions.length === 0 &&
158
- plan.deletedSolutions.length === 0) {
128
+ if (plan.filesToDownload.length === 0 && plan.filesToDelete.length === 0) {
159
129
  displaySuccess('Library is up to date.');
160
130
  return {
161
131
  success: true,
162
132
  stats: {
163
- newSolutions: 0,
164
- updatedSolutions: 0,
165
- deletedSolutions: 0,
166
133
  filesDownloaded: 0,
167
134
  filesDeleted: 0,
168
135
  bytesDownloaded: 0,
@@ -177,9 +144,6 @@ export class SyncEngine {
177
144
  return {
178
145
  success: true,
179
146
  stats: {
180
- newSolutions: plan.newSolutions.length,
181
- updatedSolutions: plan.modifiedSolutions.length,
182
- deletedSolutions: plan.deletedSolutions.length,
183
147
  filesDownloaded: plan.filesToDownload.length,
184
148
  filesDeleted: plan.filesToDelete.length,
185
149
  bytesDownloaded: 0,
@@ -221,16 +185,12 @@ export class SyncEngine {
221
185
  displayPhase(`Resuming sync: ${state.pending_queue.files_to_download.length} files remaining`);
222
186
  // Convert pending queue to sync plan
223
187
  const plan = {
224
- newSolutions: state.pending_queue.solutions_to_sync || [],
225
- modifiedSolutions: [],
226
- deletedSolutions: state.pending_queue.solutions_to_delete || [],
227
188
  filesToDownload: state.pending_queue.files_to_download.map(f => ({
228
- solution: f.solution,
229
189
  path: f.path,
230
190
  hash: f.hash,
231
191
  size: 0 // Size not stored in pending queue
232
192
  })),
233
- filesToDelete: []
193
+ filesToDelete: (state.pending_queue.files_to_delete || []).map(p => ({ path: p }))
234
194
  };
235
195
  const creds = loadCredentials();
236
196
  if (!creds) {
@@ -239,7 +199,7 @@ export class SyncEngine {
239
199
  }
240
200
  const startTime = Date.now();
241
201
  const errors = [];
242
- // Fetch fresh manifest for solution details
202
+ // Fetch fresh manifest for services registry
243
203
  const { manifest: remoteManifest } = await this.fetchRemoteManifest();
244
204
  if (!remoteManifest) {
245
205
  displayError('Failed to fetch remote manifest');
@@ -273,7 +233,6 @@ export class SyncEngine {
273
233
  syncStatus: status.status,
274
234
  lastSyncTime: status.lastSyncTime,
275
235
  lastSyncRelative: status.lastSyncRelative,
276
- solutionCount: status.solutionCount,
277
236
  fileCount: status.fileCount,
278
237
  totalSize: status.totalSize,
279
238
  orgId: status.orgId,
@@ -288,11 +247,15 @@ export class SyncEngine {
288
247
  try {
289
248
  debugLog('[sync] fetchRemoteManifest: Starting...');
290
249
  // Build query params
291
- let queryParams = '';
292
- if (this.options.solutionFilter && this.options.solutionFilter.length > 0) {
293
- queryParams = `?solutions=${this.options.solutionFilter.join(',')}`;
294
- debugLog(`[sync] fetchRemoteManifest: Using solution filter: ${queryParams}`);
250
+ const params = new URLSearchParams();
251
+ if (this.options.basePath) {
252
+ params.set('path', this.options.basePath);
295
253
  }
254
+ if (this.options.pathFilter && this.options.pathFilter.length > 0) {
255
+ params.set('paths', this.options.pathFilter.join(','));
256
+ debugLog(`[sync] fetchRemoteManifest: Using path filter: ${this.options.pathFilter.join(',')}`);
257
+ }
258
+ const queryString = params.toString() ? `?${params.toString()}` : '';
296
259
  // Check for cached ETag
297
260
  const localManifest = loadLocalManifest();
298
261
  const headers = {};
@@ -303,7 +266,7 @@ export class SyncEngine {
303
266
  if (this.options.orgId) {
304
267
  headers['X-Org-Id'] = this.options.orgId;
305
268
  }
306
- const endpoint = `/api/v2/library/sync/manifest${queryParams}`;
269
+ const endpoint = `/api/v2/library/sync/manifest${queryString}`;
307
270
  debugLog(`[sync] fetchRemoteManifest: Requesting ${endpoint}`);
308
271
  const response = await cloudRequest('GET', endpoint, undefined, headers);
309
272
  debugLog(`[sync] fetchRemoteManifest: Response status=${response.status}`);
@@ -316,7 +279,6 @@ export class SyncEngine {
316
279
  const errorData = response.data;
317
280
  const errorMsg = errorData.error || errorData.message || `HTTP ${response.status}`;
318
281
  debugLog(`[sync] fetchRemoteManifest: Error - ${errorMsg}`);
319
- debugLog(`[sync] fetchRemoteManifest: Full response data: ${JSON.stringify(response.data)}`);
320
282
  throw new Error(errorMsg);
321
283
  }
322
284
  const responseData = response.data;
@@ -324,7 +286,7 @@ export class SyncEngine {
324
286
  debugLog(`[sync] fetchRemoteManifest: Invalid response format - status=${responseData.status}`);
325
287
  throw new Error('Invalid response format');
326
288
  }
327
- debugLog(`[sync] fetchRemoteManifest: Success - ${responseData.data.solutions?.length || 0} solutions`);
289
+ debugLog(`[sync] fetchRemoteManifest: Success - ${responseData.data.files?.length || 0} files`);
328
290
  return { manifest: responseData.data, unchanged: false };
329
291
  }
330
292
  catch (e) {
@@ -335,70 +297,30 @@ export class SyncEngine {
335
297
  }
336
298
  }
337
299
  /**
338
- * Build sync plan by comparing manifests.
300
+ * Build sync plan by comparing local and remote file lists.
339
301
  */
340
302
  buildSyncPlan(local, remote) {
341
- const localSolutions = new Map((local?.solutions || []).map(s => [s.library_id, s]));
342
- const remoteSolutions = new Map(remote.solutions.map(s => [s.library_id, s]));
343
- const plan = {
344
- newSolutions: [],
345
- modifiedSolutions: [],
346
- deletedSolutions: [],
347
- filesToDownload: [],
348
- filesToDelete: []
349
- };
350
- // Find new and modified solutions
351
- for (const [id, remoteSolution] of remoteSolutions) {
352
- // Apply solution filter if specified
353
- if (this.options.solutionFilter && !this.options.solutionFilter.includes(id)) {
303
+ debugLog(`[sync] buildSyncPlan: local=${local ? `v${local.version}, ${local.files?.length ?? 'NO'} files` : 'null'}, remote=${remote.files?.length ?? 'NO'} files`);
304
+ const localFiles = new Map((local?.files || []).map(f => [f.path, f.hash]));
305
+ const remoteFiles = new Map(remote.files.map(f => [f.path, f]));
306
+ const plan = { filesToDownload: [], filesToDelete: [] };
307
+ // Files to download: new or changed hash
308
+ for (const [filePath, remoteFile] of remoteFiles) {
309
+ if (this.options.pathFilter && !this.options.pathFilter.some(p => filePath.startsWith(p + '/'))) {
354
310
  continue;
355
311
  }
356
- const localSolution = localSolutions.get(id);
357
- if (!localSolution) {
358
- // New solution
359
- plan.newSolutions.push(id);
360
- for (const file of remoteSolution.files) {
361
- plan.filesToDownload.push({
362
- solution: id,
363
- path: file.path,
364
- hash: file.hash,
365
- size: file.size
366
- });
367
- }
368
- }
369
- else if (localSolution.solution_hash !== remoteSolution.solution_hash) {
370
- // Modified solution - find specific file changes
371
- plan.modifiedSolutions.push(id);
372
- const localFiles = new Map(localSolution.files.map(f => [f.path, f]));
373
- const remoteFiles = new Map(remoteSolution.files.map(f => [f.path, f]));
374
- // Files to download (new or changed)
375
- for (const [filePath, remoteFile] of remoteFiles) {
376
- const localFile = localFiles.get(filePath);
377
- if (!localFile || localFile.hash !== remoteFile.hash) {
378
- plan.filesToDownload.push({
379
- solution: id,
380
- path: filePath,
381
- hash: remoteFile.hash,
382
- size: remoteFile.size
383
- });
384
- }
385
- }
386
- // Files to delete (removed from solution)
387
- for (const [filePath] of localFiles) {
388
- if (!remoteFiles.has(filePath)) {
389
- plan.filesToDelete.push({ solution: id, path: filePath });
390
- }
391
- }
312
+ const localHash = localFiles.get(filePath);
313
+ if (!localHash || localHash !== remoteFile.hash) {
314
+ plan.filesToDownload.push({ path: filePath, hash: remoteFile.hash, size: remoteFile.size });
392
315
  }
393
316
  }
394
- // Find deleted solutions
395
- for (const [id] of localSolutions) {
396
- if (!remoteSolutions.has(id)) {
397
- // Apply solution filter if specified
398
- if (this.options.solutionFilter && !this.options.solutionFilter.includes(id)) {
399
- continue;
400
- }
401
- plan.deletedSolutions.push(id);
317
+ // Files to delete: in local but not in remote
318
+ for (const [filePath] of localFiles) {
319
+ if (this.options.pathFilter && !this.options.pathFilter.some(p => filePath.startsWith(p + '/'))) {
320
+ continue;
321
+ }
322
+ if (!remoteFiles.has(filePath)) {
323
+ plan.filesToDelete.push({ path: filePath });
402
324
  }
403
325
  }
404
326
  return plan;
@@ -408,9 +330,6 @@ export class SyncEngine {
408
330
  */
409
331
  async executeSyncPlan(plan, orgId, remoteManifest, errors) {
410
332
  const stats = {
411
- newSolutions: plan.newSolutions.length,
412
- updatedSolutions: plan.modifiedSolutions.length,
413
- deletedSolutions: 0,
414
333
  filesDownloaded: 0,
415
334
  filesDeleted: 0,
416
335
  bytesDownloaded: 0
@@ -423,22 +342,21 @@ export class SyncEngine {
423
342
  this.progressState.bytesComplete = 0;
424
343
  // Download files in batches
425
344
  if (plan.filesToDownload.length > 0) {
426
- const downloadResult = await downloadWithRetry(plan.filesToDownload, (downloaded, total) => {
345
+ const downloadResult = await downloadWithRetry(plan.filesToDownload, (downloaded, _total) => {
427
346
  this.progressState.filesComplete = downloaded;
428
347
  displayProgress(this.progressState);
429
348
  }, this.options.orgId);
430
349
  // Write downloaded files to sandbox
431
350
  for (const file of downloadResult.files) {
432
351
  try {
433
- const containerPath = `${getLibraryPath()}/${file.solution}/${file.path}`;
352
+ const containerPath = `${getLibraryPath()}/${file.path}`;
434
353
  await writeFileToSandbox(orgId, containerPath, file.content);
435
354
  stats.filesDownloaded++;
436
355
  stats.bytesDownloaded += file.content.length;
437
356
  }
438
357
  catch (e) {
439
358
  errors.push({
440
- solution: file.solution,
441
- file: file.path,
359
+ path: file.path,
442
360
  error: e instanceof Error ? e.message : String(e)
443
361
  });
444
362
  }
@@ -452,34 +370,19 @@ export class SyncEngine {
452
370
  this.progressState.phase = 'cleaning';
453
371
  for (const file of plan.filesToDelete) {
454
372
  try {
455
- const containerPath = `${getLibraryPath()}/${file.solution}/${file.path}`;
373
+ const containerPath = `${getLibraryPath()}/${file.path}`;
456
374
  deleteFromSandbox(orgId, containerPath);
457
375
  stats.filesDeleted++;
458
376
  }
459
377
  catch (e) {
460
378
  errors.push({
461
- solution: file.solution,
462
- file: file.path,
463
- error: e instanceof Error ? e.message : String(e)
464
- });
465
- }
466
- }
467
- // Delete entire solutions
468
- for (const solutionId of plan.deletedSolutions) {
469
- try {
470
- const solutionPath = `${getLibraryPath()}/${solutionId}`;
471
- deleteFromSandbox(orgId, solutionPath);
472
- stats.deletedSolutions++;
473
- }
474
- catch (e) {
475
- errors.push({
476
- solution: solutionId,
379
+ path: file.path,
477
380
  error: e instanceof Error ? e.message : String(e)
478
381
  });
479
382
  }
480
383
  }
481
384
  // Update services registry
482
- await this.updateServicesRegistry(orgId, remoteManifest, plan);
385
+ await this.updateServicesRegistry(orgId, remoteManifest);
483
386
  // Update local manifest
484
387
  await this.updateLocalManifest(remoteManifest, plan);
485
388
  return stats;
@@ -487,7 +390,7 @@ export class SyncEngine {
487
390
  /**
488
391
  * Update the services registry in the sandbox.
489
392
  */
490
- async updateServicesRegistry(orgId, remoteManifest, plan) {
393
+ async updateServicesRegistry(orgId, remoteManifest) {
491
394
  try {
492
395
  // Read current local services registry
493
396
  let localRegistry = {};
@@ -498,14 +401,15 @@ export class SyncEngine {
498
401
  catch {
499
402
  // No existing registry or couldn't read
500
403
  }
501
- // Get set of synced solutions
502
- const syncedSolutions = new Set([
503
- ...plan.newSolutions,
504
- ...plan.modifiedSolutions,
505
- ...plan.deletedSolutions
506
- ]);
404
+ // Determine which top-level folders were synced (for merge logic)
405
+ const syncedFolders = new Set();
406
+ for (const file of remoteManifest.files) {
407
+ const topFolder = file.path.split('/')[0];
408
+ if (topFolder)
409
+ syncedFolders.add(topFolder);
410
+ }
507
411
  // Merge registries
508
- const merged = mergeServicesRegistry(remoteManifest.services_registry, localRegistry, syncedSolutions);
412
+ const merged = mergeServicesRegistry(remoteManifest.services_registry, localRegistry, syncedFolders);
509
413
  // Write updated registry
510
414
  const content = Buffer.from(JSON.stringify(merged, null, 2));
511
415
  await writeFileToSandbox(orgId, getServicesRegistryPath(), content);
@@ -521,42 +425,35 @@ export class SyncEngine {
521
425
  */
522
426
  async updateLocalManifest(remoteManifest, plan) {
523
427
  const currentManifest = loadLocalManifest();
524
- // Build map of existing solutions
525
- const solutionMap = new Map();
428
+ debugLog(`[sync] updateLocalManifest: currentManifest=${currentManifest ? `v${currentManifest.version}, files=${currentManifest.files?.length ?? 'UNDEFINED'}` : 'null'}`);
429
+ // Build map of existing files
430
+ const fileMap = new Map();
526
431
  if (currentManifest) {
527
- for (const s of currentManifest.solutions) {
528
- solutionMap.set(s.library_id, s);
432
+ for (const f of (currentManifest.files || [])) {
433
+ fileMap.set(f.path, f);
529
434
  }
530
435
  }
531
- // Remove deleted solutions
532
- for (const id of plan.deletedSolutions) {
533
- solutionMap.delete(id);
436
+ // Remove deleted files
437
+ for (const file of plan.filesToDelete) {
438
+ fileMap.delete(file.path);
534
439
  }
535
- // Add/update synced solutions
536
- const now = new Date().toISOString();
537
- for (const remoteSolution of remoteManifest.solutions) {
538
- if (plan.newSolutions.includes(remoteSolution.library_id) ||
539
- plan.modifiedSolutions.includes(remoteSolution.library_id)) {
540
- solutionMap.set(remoteSolution.library_id, {
541
- library_id: remoteSolution.library_id,
542
- solution_hash: remoteSolution.solution_hash,
543
- synced_at: now,
544
- files: remoteSolution.files.map(f => ({
545
- path: f.path,
546
- hash: f.hash,
547
- size: f.size
548
- })),
549
- status: 'complete'
550
- });
551
- }
440
+ // Add/update downloaded files
441
+ for (const file of plan.filesToDownload) {
442
+ fileMap.set(file.path, {
443
+ path: file.path,
444
+ hash: file.hash,
445
+ size: file.size
446
+ });
552
447
  }
448
+ const now = new Date().toISOString();
553
449
  // Save updated manifest
554
450
  const newManifest = {
555
- version: 1,
451
+ version: 2,
556
452
  updated_at: now,
557
453
  org_id: remoteManifest.org_id,
558
454
  endpoint: remoteManifest.endpoint,
559
- solutions: Array.from(solutionMap.values()),
455
+ base_path: remoteManifest.base_path,
456
+ files: Array.from(fileMap.values()),
560
457
  services_registry: remoteManifest.services_registry
561
458
  };
562
459
  saveLocalManifest(newManifest);
@@ -568,9 +465,6 @@ export class SyncEngine {
568
465
  return {
569
466
  success: false,
570
467
  stats: {
571
- newSolutions: 0,
572
- updatedSolutions: 0,
573
- deletedSolutions: 0,
574
468
  filesDownloaded: 0,
575
469
  filesDeleted: 0,
576
470
  bytesDownloaded: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"sync-engine.js","sourceRoot":"","sources":["../../src/sync/sync-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-engine.js","sourceRoot":"","sources":["../../src/sync/sync-engine.ts"],"names":[],"mappings":"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"}