@syntero/orca-cli 1.2.4 → 1.2.6

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 +2 -37
  25. package/dist/sync/manifest.d.ts.map +1 -1
  26. package/dist/sync/manifest.js +3 -46
  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 +75 -165
  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,10 +1,10 @@
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
@@ -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,
@@ -130,21 +120,16 @@ export class SyncEngine {
130
120
  }
131
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
125
  // 4. Build sync plan
136
126
  const plan = this.buildSyncPlan(localManifest, remoteManifest);
137
127
  // Check if any changes
138
- if (plan.newSolutions.length === 0 &&
139
- plan.modifiedSolutions.length === 0 &&
140
- plan.deletedSolutions.length === 0) {
128
+ if (plan.filesToDownload.length === 0 && plan.filesToDelete.length === 0) {
141
129
  displaySuccess('Library is up to date.');
142
130
  return {
143
131
  success: true,
144
132
  stats: {
145
- newSolutions: 0,
146
- updatedSolutions: 0,
147
- deletedSolutions: 0,
148
133
  filesDownloaded: 0,
149
134
  filesDeleted: 0,
150
135
  bytesDownloaded: 0,
@@ -159,9 +144,6 @@ export class SyncEngine {
159
144
  return {
160
145
  success: true,
161
146
  stats: {
162
- newSolutions: plan.newSolutions.length,
163
- updatedSolutions: plan.modifiedSolutions.length,
164
- deletedSolutions: plan.deletedSolutions.length,
165
147
  filesDownloaded: plan.filesToDownload.length,
166
148
  filesDeleted: plan.filesToDelete.length,
167
149
  bytesDownloaded: 0,
@@ -203,16 +185,12 @@ export class SyncEngine {
203
185
  displayPhase(`Resuming sync: ${state.pending_queue.files_to_download.length} files remaining`);
204
186
  // Convert pending queue to sync plan
205
187
  const plan = {
206
- newSolutions: state.pending_queue.solutions_to_sync || [],
207
- modifiedSolutions: [],
208
- deletedSolutions: state.pending_queue.solutions_to_delete || [],
209
188
  filesToDownload: state.pending_queue.files_to_download.map(f => ({
210
- solution: f.solution,
211
189
  path: f.path,
212
190
  hash: f.hash,
213
191
  size: 0 // Size not stored in pending queue
214
192
  })),
215
- filesToDelete: []
193
+ filesToDelete: (state.pending_queue.files_to_delete || []).map(p => ({ path: p }))
216
194
  };
217
195
  const creds = loadCredentials();
218
196
  if (!creds) {
@@ -221,7 +199,7 @@ export class SyncEngine {
221
199
  }
222
200
  const startTime = Date.now();
223
201
  const errors = [];
224
- // Fetch fresh manifest for solution details
202
+ // Fetch fresh manifest for services registry
225
203
  const { manifest: remoteManifest } = await this.fetchRemoteManifest();
226
204
  if (!remoteManifest) {
227
205
  displayError('Failed to fetch remote manifest');
@@ -255,7 +233,6 @@ export class SyncEngine {
255
233
  syncStatus: status.status,
256
234
  lastSyncTime: status.lastSyncTime,
257
235
  lastSyncRelative: status.lastSyncRelative,
258
- solutionCount: status.solutionCount,
259
236
  fileCount: status.fileCount,
260
237
  totalSize: status.totalSize,
261
238
  orgId: status.orgId,
@@ -270,11 +247,15 @@ export class SyncEngine {
270
247
  try {
271
248
  debugLog('[sync] fetchRemoteManifest: Starting...');
272
249
  // Build query params
273
- let queryParams = '';
274
- if (this.options.solutionFilter && this.options.solutionFilter.length > 0) {
275
- queryParams = `?solutions=${this.options.solutionFilter.join(',')}`;
276
- debugLog(`[sync] fetchRemoteManifest: Using solution filter: ${queryParams}`);
250
+ const params = new URLSearchParams();
251
+ if (this.options.basePath) {
252
+ params.set('path', this.options.basePath);
277
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()}` : '';
278
259
  // Check for cached ETag
279
260
  const localManifest = loadLocalManifest();
280
261
  const headers = {};
@@ -285,7 +266,7 @@ export class SyncEngine {
285
266
  if (this.options.orgId) {
286
267
  headers['X-Org-Id'] = this.options.orgId;
287
268
  }
288
- const endpoint = `/api/v2/library/sync/manifest${queryParams}`;
269
+ const endpoint = `/api/v2/library/sync/manifest${queryString}`;
289
270
  debugLog(`[sync] fetchRemoteManifest: Requesting ${endpoint}`);
290
271
  const response = await cloudRequest('GET', endpoint, undefined, headers);
291
272
  debugLog(`[sync] fetchRemoteManifest: Response status=${response.status}`);
@@ -298,7 +279,6 @@ export class SyncEngine {
298
279
  const errorData = response.data;
299
280
  const errorMsg = errorData.error || errorData.message || `HTTP ${response.status}`;
300
281
  debugLog(`[sync] fetchRemoteManifest: Error - ${errorMsg}`);
301
- debugLog(`[sync] fetchRemoteManifest: Full response data: ${JSON.stringify(response.data)}`);
302
282
  throw new Error(errorMsg);
303
283
  }
304
284
  const responseData = response.data;
@@ -306,7 +286,7 @@ export class SyncEngine {
306
286
  debugLog(`[sync] fetchRemoteManifest: Invalid response format - status=${responseData.status}`);
307
287
  throw new Error('Invalid response format');
308
288
  }
309
- debugLog(`[sync] fetchRemoteManifest: Success - ${responseData.data.solutions?.length || 0} solutions`);
289
+ debugLog(`[sync] fetchRemoteManifest: Success - ${responseData.data.files?.length || 0} files`);
310
290
  return { manifest: responseData.data, unchanged: false };
311
291
  }
312
292
  catch (e) {
@@ -317,70 +297,29 @@ export class SyncEngine {
317
297
  }
318
298
  }
319
299
  /**
320
- * Build sync plan by comparing manifests.
300
+ * Build sync plan by comparing local and remote file lists.
321
301
  */
322
302
  buildSyncPlan(local, remote) {
323
- const localSolutions = new Map((local?.solutions || []).map(s => [s.library_id, s]));
324
- const remoteSolutions = new Map(remote.solutions.map(s => [s.library_id, s]));
325
- const plan = {
326
- newSolutions: [],
327
- modifiedSolutions: [],
328
- deletedSolutions: [],
329
- filesToDownload: [],
330
- filesToDelete: []
331
- };
332
- // Find new and modified solutions
333
- for (const [id, remoteSolution] of remoteSolutions) {
334
- // Apply solution filter if specified
335
- if (this.options.solutionFilter && !this.options.solutionFilter.includes(id)) {
303
+ const localFiles = new Map((local?.files || []).map(f => [f.path, f.hash]));
304
+ const remoteFiles = new Map(remote.files.map(f => [f.path, f]));
305
+ const plan = { filesToDownload: [], filesToDelete: [] };
306
+ // Files to download: new or changed hash
307
+ for (const [filePath, remoteFile] of remoteFiles) {
308
+ if (this.options.pathFilter && !this.options.pathFilter.some(p => filePath.startsWith(p + '/'))) {
336
309
  continue;
337
310
  }
338
- const localSolution = localSolutions.get(id);
339
- if (!localSolution) {
340
- // New solution
341
- plan.newSolutions.push(id);
342
- for (const file of remoteSolution.files) {
343
- plan.filesToDownload.push({
344
- solution: id,
345
- path: file.path,
346
- hash: file.hash,
347
- size: file.size
348
- });
349
- }
350
- }
351
- else if (localSolution.solution_hash !== remoteSolution.solution_hash) {
352
- // Modified solution - find specific file changes
353
- plan.modifiedSolutions.push(id);
354
- const localFiles = new Map(localSolution.files.map(f => [f.path, f]));
355
- const remoteFiles = new Map(remoteSolution.files.map(f => [f.path, f]));
356
- // Files to download (new or changed)
357
- for (const [filePath, remoteFile] of remoteFiles) {
358
- const localFile = localFiles.get(filePath);
359
- if (!localFile || localFile.hash !== remoteFile.hash) {
360
- plan.filesToDownload.push({
361
- solution: id,
362
- path: filePath,
363
- hash: remoteFile.hash,
364
- size: remoteFile.size
365
- });
366
- }
367
- }
368
- // Files to delete (removed from solution)
369
- for (const [filePath] of localFiles) {
370
- if (!remoteFiles.has(filePath)) {
371
- plan.filesToDelete.push({ solution: id, path: filePath });
372
- }
373
- }
311
+ const localHash = localFiles.get(filePath);
312
+ if (!localHash || localHash !== remoteFile.hash) {
313
+ plan.filesToDownload.push({ path: filePath, hash: remoteFile.hash, size: remoteFile.size });
374
314
  }
375
315
  }
376
- // Find deleted solutions
377
- for (const [id] of localSolutions) {
378
- if (!remoteSolutions.has(id)) {
379
- // Apply solution filter if specified
380
- if (this.options.solutionFilter && !this.options.solutionFilter.includes(id)) {
381
- continue;
382
- }
383
- plan.deletedSolutions.push(id);
316
+ // Files to delete: in local but not in remote
317
+ for (const [filePath] of localFiles) {
318
+ if (this.options.pathFilter && !this.options.pathFilter.some(p => filePath.startsWith(p + '/'))) {
319
+ continue;
320
+ }
321
+ if (!remoteFiles.has(filePath)) {
322
+ plan.filesToDelete.push({ path: filePath });
384
323
  }
385
324
  }
386
325
  return plan;
@@ -390,9 +329,6 @@ export class SyncEngine {
390
329
  */
391
330
  async executeSyncPlan(plan, orgId, remoteManifest, errors) {
392
331
  const stats = {
393
- newSolutions: plan.newSolutions.length,
394
- updatedSolutions: plan.modifiedSolutions.length,
395
- deletedSolutions: 0,
396
332
  filesDownloaded: 0,
397
333
  filesDeleted: 0,
398
334
  bytesDownloaded: 0
@@ -405,22 +341,21 @@ export class SyncEngine {
405
341
  this.progressState.bytesComplete = 0;
406
342
  // Download files in batches
407
343
  if (plan.filesToDownload.length > 0) {
408
- const downloadResult = await downloadWithRetry(plan.filesToDownload, (downloaded, total) => {
344
+ const downloadResult = await downloadWithRetry(plan.filesToDownload, (downloaded, _total) => {
409
345
  this.progressState.filesComplete = downloaded;
410
346
  displayProgress(this.progressState);
411
347
  }, this.options.orgId);
412
348
  // Write downloaded files to sandbox
413
349
  for (const file of downloadResult.files) {
414
350
  try {
415
- const containerPath = `${getLibraryPath()}/${file.solution}/${file.path}`;
351
+ const containerPath = `${getLibraryPath()}/${file.path}`;
416
352
  await writeFileToSandbox(orgId, containerPath, file.content);
417
353
  stats.filesDownloaded++;
418
354
  stats.bytesDownloaded += file.content.length;
419
355
  }
420
356
  catch (e) {
421
357
  errors.push({
422
- solution: file.solution,
423
- file: file.path,
358
+ path: file.path,
424
359
  error: e instanceof Error ? e.message : String(e)
425
360
  });
426
361
  }
@@ -434,34 +369,19 @@ export class SyncEngine {
434
369
  this.progressState.phase = 'cleaning';
435
370
  for (const file of plan.filesToDelete) {
436
371
  try {
437
- const containerPath = `${getLibraryPath()}/${file.solution}/${file.path}`;
372
+ const containerPath = `${getLibraryPath()}/${file.path}`;
438
373
  deleteFromSandbox(orgId, containerPath);
439
374
  stats.filesDeleted++;
440
375
  }
441
376
  catch (e) {
442
377
  errors.push({
443
- solution: file.solution,
444
- file: file.path,
445
- error: e instanceof Error ? e.message : String(e)
446
- });
447
- }
448
- }
449
- // Delete entire solutions
450
- for (const solutionId of plan.deletedSolutions) {
451
- try {
452
- const solutionPath = `${getLibraryPath()}/${solutionId}`;
453
- deleteFromSandbox(orgId, solutionPath);
454
- stats.deletedSolutions++;
455
- }
456
- catch (e) {
457
- errors.push({
458
- solution: solutionId,
378
+ path: file.path,
459
379
  error: e instanceof Error ? e.message : String(e)
460
380
  });
461
381
  }
462
382
  }
463
383
  // Update services registry
464
- await this.updateServicesRegistry(orgId, remoteManifest, plan);
384
+ await this.updateServicesRegistry(orgId, remoteManifest);
465
385
  // Update local manifest
466
386
  await this.updateLocalManifest(remoteManifest, plan);
467
387
  return stats;
@@ -469,7 +389,7 @@ export class SyncEngine {
469
389
  /**
470
390
  * Update the services registry in the sandbox.
471
391
  */
472
- async updateServicesRegistry(orgId, remoteManifest, plan) {
392
+ async updateServicesRegistry(orgId, remoteManifest) {
473
393
  try {
474
394
  // Read current local services registry
475
395
  let localRegistry = {};
@@ -480,14 +400,15 @@ export class SyncEngine {
480
400
  catch {
481
401
  // No existing registry or couldn't read
482
402
  }
483
- // Get set of synced solutions
484
- const syncedSolutions = new Set([
485
- ...plan.newSolutions,
486
- ...plan.modifiedSolutions,
487
- ...plan.deletedSolutions
488
- ]);
403
+ // Determine which top-level folders were synced (for merge logic)
404
+ const syncedFolders = new Set();
405
+ for (const file of remoteManifest.files) {
406
+ const topFolder = file.path.split('/')[0];
407
+ if (topFolder)
408
+ syncedFolders.add(topFolder);
409
+ }
489
410
  // Merge registries
490
- const merged = mergeServicesRegistry(remoteManifest.services_registry, localRegistry, syncedSolutions);
411
+ const merged = mergeServicesRegistry(remoteManifest.services_registry, localRegistry, syncedFolders);
491
412
  // Write updated registry
492
413
  const content = Buffer.from(JSON.stringify(merged, null, 2));
493
414
  await writeFileToSandbox(orgId, getServicesRegistryPath(), content);
@@ -503,42 +424,34 @@ export class SyncEngine {
503
424
  */
504
425
  async updateLocalManifest(remoteManifest, plan) {
505
426
  const currentManifest = loadLocalManifest();
506
- // Build map of existing solutions
507
- const solutionMap = new Map();
427
+ // Build map of existing files
428
+ const fileMap = new Map();
508
429
  if (currentManifest) {
509
- for (const s of currentManifest.solutions) {
510
- solutionMap.set(s.library_id, s);
430
+ for (const f of currentManifest.files) {
431
+ fileMap.set(f.path, f);
511
432
  }
512
433
  }
513
- // Remove deleted solutions
514
- for (const id of plan.deletedSolutions) {
515
- solutionMap.delete(id);
434
+ // Remove deleted files
435
+ for (const file of plan.filesToDelete) {
436
+ fileMap.delete(file.path);
516
437
  }
517
- // Add/update synced solutions
518
- const now = new Date().toISOString();
519
- for (const remoteSolution of remoteManifest.solutions) {
520
- if (plan.newSolutions.includes(remoteSolution.library_id) ||
521
- plan.modifiedSolutions.includes(remoteSolution.library_id)) {
522
- solutionMap.set(remoteSolution.library_id, {
523
- library_id: remoteSolution.library_id,
524
- solution_hash: remoteSolution.solution_hash,
525
- synced_at: now,
526
- files: remoteSolution.files.map(f => ({
527
- path: f.path,
528
- hash: f.hash,
529
- size: f.size
530
- })),
531
- status: 'complete'
532
- });
533
- }
438
+ // Add/update downloaded files
439
+ for (const file of plan.filesToDownload) {
440
+ fileMap.set(file.path, {
441
+ path: file.path,
442
+ hash: file.hash,
443
+ size: file.size
444
+ });
534
445
  }
446
+ const now = new Date().toISOString();
535
447
  // Save updated manifest
536
448
  const newManifest = {
537
- version: 1,
449
+ version: 2,
538
450
  updated_at: now,
539
451
  org_id: remoteManifest.org_id,
540
452
  endpoint: remoteManifest.endpoint,
541
- solutions: Array.from(solutionMap.values()),
453
+ base_path: remoteManifest.base_path,
454
+ files: Array.from(fileMap.values()),
542
455
  services_registry: remoteManifest.services_registry
543
456
  };
544
457
  saveLocalManifest(newManifest);
@@ -550,9 +463,6 @@ export class SyncEngine {
550
463
  return {
551
464
  success: false,
552
465
  stats: {
553
- newSolutions: 0,
554
- updatedSolutions: 0,
555
- deletedSolutions: 0,
556
466
  filesDownloaded: 0,
557
467
  filesDeleted: 0,
558
468
  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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"}