n8nac 2.4.0 → 2.5.0

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 (64) hide show
  1. package/README.md +9 -0
  2. package/dist/commands/base.d.ts +39 -0
  3. package/dist/commands/base.d.ts.map +1 -1
  4. package/dist/commands/base.js +84 -36
  5. package/dist/commands/base.js.map +1 -1
  6. package/dist/commands/list.d.ts.map +1 -1
  7. package/dist/commands/list.js +2 -2
  8. package/dist/commands/list.js.map +1 -1
  9. package/dist/commands/sync.d.ts.map +1 -1
  10. package/dist/commands/sync.js +28 -6
  11. package/dist/commands/sync.js.map +1 -1
  12. package/dist/commands/test.d.ts.map +1 -1
  13. package/dist/commands/test.js +2 -2
  14. package/dist/commands/test.js.map +1 -1
  15. package/dist/core/index.d.ts +3 -0
  16. package/dist/core/index.d.ts.map +1 -1
  17. package/dist/core/index.js +3 -0
  18. package/dist/core/index.js.map +1 -1
  19. package/dist/core/services/folder-path-resolver.d.ts +51 -0
  20. package/dist/core/services/folder-path-resolver.d.ts.map +1 -0
  21. package/dist/core/services/folder-path-resolver.js +123 -0
  22. package/dist/core/services/folder-path-resolver.js.map +1 -0
  23. package/dist/core/services/n8n-api-client.d.ts +53 -1
  24. package/dist/core/services/n8n-api-client.d.ts.map +1 -1
  25. package/dist/core/services/n8n-api-client.js +184 -2
  26. package/dist/core/services/n8n-api-client.js.map +1 -1
  27. package/dist/core/services/resolution-manager.d.ts.map +1 -1
  28. package/dist/core/services/resolution-manager.js +4 -4
  29. package/dist/core/services/resolution-manager.js.map +1 -1
  30. package/dist/core/services/state-manager.d.ts +1 -1
  31. package/dist/core/services/state-manager.d.ts.map +1 -1
  32. package/dist/core/services/sync-engine.d.ts +48 -1
  33. package/dist/core/services/sync-engine.d.ts.map +1 -1
  34. package/dist/core/services/sync-engine.js +200 -6
  35. package/dist/core/services/sync-engine.js.map +1 -1
  36. package/dist/core/services/sync-manager.d.ts.map +1 -1
  37. package/dist/core/services/sync-manager.js +10 -8
  38. package/dist/core/services/sync-manager.js.map +1 -1
  39. package/dist/core/services/tls-certificates.d.ts +105 -0
  40. package/dist/core/services/tls-certificates.d.ts.map +1 -0
  41. package/dist/core/services/tls-certificates.js +329 -0
  42. package/dist/core/services/tls-certificates.js.map +1 -0
  43. package/dist/core/services/workflow-path-utils.d.ts +56 -0
  44. package/dist/core/services/workflow-path-utils.d.ts.map +1 -0
  45. package/dist/core/services/workflow-path-utils.js +102 -0
  46. package/dist/core/services/workflow-path-utils.js.map +1 -0
  47. package/dist/core/services/workflow-state-tracker.d.ts +56 -0
  48. package/dist/core/services/workflow-state-tracker.d.ts.map +1 -1
  49. package/dist/core/services/workflow-state-tracker.js +225 -32
  50. package/dist/core/services/workflow-state-tracker.js.map +1 -1
  51. package/dist/core/services/workflow-transformer-adapter.d.ts +7 -1
  52. package/dist/core/services/workflow-transformer-adapter.d.ts.map +1 -1
  53. package/dist/core/services/workflow-transformer-adapter.js +8 -2
  54. package/dist/core/services/workflow-transformer-adapter.js.map +1 -1
  55. package/dist/core/types.d.ts +84 -0
  56. package/dist/core/types.d.ts.map +1 -1
  57. package/dist/core/types.js.map +1 -1
  58. package/dist/index.js +46 -10
  59. package/dist/index.js.map +1 -1
  60. package/dist/services/config-service.d.ts +33 -6
  61. package/dist/services/config-service.d.ts.map +1 -1
  62. package/dist/services/config-service.js +54 -3
  63. package/dist/services/config-service.js.map +1 -1
  64. package/package.json +3 -3
@@ -4,6 +4,8 @@ import EventEmitter from 'events';
4
4
  import { WorkflowTransformerAdapter } from './workflow-transformer-adapter.js';
5
5
  import { HashUtils } from './hash-utils.js';
6
6
  import { WorkflowSyncStatus } from '../types.js';
7
+ import { FolderPathResolver, sanitizePathSegment } from './folder-path-resolver.js';
8
+ import { listWorkflowFilesRecursive, normalizeWorkflowRelativePath, workflowRelativePathToAbsolute } from './workflow-path-utils.js';
7
9
  const WINDOWS_RESERVED_FILENAMES = new Set([
8
10
  'CON',
9
11
  'PRN',
@@ -48,6 +50,8 @@ export class WorkflowStateTracker extends EventEmitter {
48
50
  ignoredTags;
49
51
  projectId;
50
52
  stateFilePath;
53
+ folderSync;
54
+ warnedFolderMetadataUnavailable = false;
51
55
  isConnected = true;
52
56
  /** True during the first refreshRemoteState() call — suppresses status broadcasts */
53
57
  isInitialRemoteLoad = false;
@@ -66,6 +70,8 @@ export class WorkflowStateTracker extends EventEmitter {
66
70
  remoteActive = new Map(); // workflowId -> active
67
71
  /** Remote archived flag per workflow (populated by refreshRemoteState / updateSingleRemoteState). */
68
72
  remoteArchived = new Map(); // workflowId -> isArchived
73
+ remoteParentFolderIds = new Map(); // workflowId -> parentFolderId
74
+ remoteFolderPaths = new Map(); // workflowId -> folder path segments
69
75
  constructor(client, options) {
70
76
  super();
71
77
  this.client = client;
@@ -73,6 +79,7 @@ export class WorkflowStateTracker extends EventEmitter {
73
79
  this.syncInactive = options.syncInactive;
74
80
  this.ignoredTags = options.ignoredTags;
75
81
  this.projectId = options.projectId;
82
+ this.folderSync = options.folderSync ?? false;
76
83
  this.stateFilePath = path.join(this.directory, '.n8n-state.json');
77
84
  // Restore persisted mappings immediately so 'pull' and other commands can find workflows
78
85
  this.restoreMappingsFromState();
@@ -93,7 +100,7 @@ export class WorkflowStateTracker extends EventEmitter {
93
100
  this.localHashes.clear();
94
101
  return;
95
102
  }
96
- const files = fs.readdirSync(this.directory).filter(f => f.endsWith('.workflow.ts') && !f.startsWith('.'));
103
+ const files = listWorkflowFilesRecursive(this.directory);
97
104
  const currentFiles = new Set(files);
98
105
  // Remove entries for files that no longer exist
99
106
  for (const filename of this.localHashes.keys()) {
@@ -110,7 +117,7 @@ export class WorkflowStateTracker extends EventEmitter {
110
117
  const fileContents = [];
111
118
  const newlyTracked = [];
112
119
  for (const filename of files) {
113
- const filePath = path.join(this.directory, filename);
120
+ const filePath = workflowRelativePathToAbsolute(this.directory, filename);
114
121
  const content = this.readJsonFile(filePath); // Quick ID extraction
115
122
  if (content) {
116
123
  fileContents.push({ filename, content });
@@ -241,6 +248,10 @@ export class WorkflowStateTracker extends EventEmitter {
241
248
  this.remoteNames.clear();
242
249
  this.remoteActive.clear();
243
250
  this.remoteArchived.clear();
251
+ this.remoteParentFolderIds.clear();
252
+ this.remoteFolderPaths.clear();
253
+ const folderResolver = await this.createFolderResolver(remoteWorkflows);
254
+ const state = this.loadState();
244
255
  // Build set of already-assigned filenames to prevent collisions
245
256
  const assignedFilenames = new Set();
246
257
  for (const wf of remoteWorkflows) {
@@ -253,8 +264,29 @@ export class WorkflowStateTracker extends EventEmitter {
253
264
  // Store active and archived flags from API
254
265
  this.remoteActive.set(wf.id, wf.active === true);
255
266
  this.remoteArchived.set(wf.id, wf.isArchived === true);
267
+ // Cache remote updatedAt for cheap drift detection in getLightweightList.
268
+ // The lightweight `list` path cannot afford a per-workflow hash compare,
269
+ // but `updatedAt` (already returned by /api/v1/workflows) is enough to
270
+ // detect "remote changed since last sync" without an extra API call.
271
+ if (wf.updatedAt)
272
+ this.remoteTimestamps.set(wf.id, wf.updatedAt);
273
+ const parentFolderId = wf.parentFolderId ?? wf.parentFolder?.id ?? null;
274
+ const folderPath = folderResolver ? folderResolver.getPathForWorkflow(wf) : [];
275
+ this.remoteParentFolderIds.set(wf.id, parentFolderId);
276
+ this.remoteFolderPaths.set(wf.id, folderPath);
256
277
  // CRITICAL: Use ID-based mapping with PERSISTED state as source of truth
257
278
  let filename = this.idToFileMap.get(wf.id);
279
+ if (!filename) {
280
+ const persistedFilename = state.workflows[wf.id]?.filename;
281
+ if (persistedFilename) {
282
+ try {
283
+ filename = normalizeWorkflowRelativePath(persistedFilename);
284
+ }
285
+ catch {
286
+ filename = undefined;
287
+ }
288
+ }
289
+ }
258
290
  // If no valid mapping, scan local files to discover/rediscover the workflow
259
291
  if (!filename) {
260
292
  filename = this.findFilenameByWorkflowId(wf.id);
@@ -265,12 +297,12 @@ export class WorkflowStateTracker extends EventEmitter {
265
297
  }
266
298
  // If still not found, this is a NEW remote workflow - generate filename
267
299
  if (!filename) {
268
- const baseName = `${this.safeName(wf.name)}.workflow.ts`;
300
+ const baseName = this.buildRelativeFilename(wf, folderPath);
269
301
  // Check if this base name is already assigned to another workflow
270
302
  if (assignedFilenames.has(baseName)) {
271
303
  // Name collision - generate unique filename with ID suffix
272
304
  const idSuffix = wf.id.substring(0, 8);
273
- filename = `${this.safeName(wf.name)}_${idSuffix}.workflow.ts`;
305
+ filename = this.buildRelativeFilename(wf, folderPath, idSuffix);
274
306
  }
275
307
  else {
276
308
  // Name is free - use it
@@ -349,9 +381,9 @@ export class WorkflowStateTracker extends EventEmitter {
349
381
  // If workflow not tracked yet (first sync of local-only workflow),
350
382
  // scan directory to find the file with this ID
351
383
  if (!filename) {
352
- const files = fs.readdirSync(this.directory).filter(f => f.endsWith('.workflow.ts') && !f.startsWith('.'));
384
+ const files = listWorkflowFilesRecursive(this.directory);
353
385
  for (const file of files) {
354
- const filePath = path.join(this.directory, file);
386
+ const filePath = workflowRelativePathToAbsolute(this.directory, file);
355
387
  const content = this.readJsonFile(filePath);
356
388
  if (content?.id === workflowId) {
357
389
  filename = file;
@@ -366,7 +398,7 @@ export class WorkflowStateTracker extends EventEmitter {
366
398
  }
367
399
  }
368
400
  // Get current reality
369
- const filePath = path.join(this.directory, filename);
401
+ const filePath = workflowRelativePathToAbsolute(this.directory, filename);
370
402
  const content = this.readJsonFile(filePath);
371
403
  if (!content) {
372
404
  throw new Error(`Cannot finalize sync: local file not found for ${workflowId}`);
@@ -417,6 +449,8 @@ export class WorkflowStateTracker extends EventEmitter {
417
449
  this.remoteNames.delete(id);
418
450
  this.remoteActive.delete(id);
419
451
  this.remoteArchived.delete(id);
452
+ this.remoteParentFolderIds.delete(id);
453
+ this.remoteFolderPaths.delete(id);
420
454
  this.remoteIds.delete(id);
421
455
  }
422
456
  /**
@@ -444,14 +478,21 @@ export class WorkflowStateTracker extends EventEmitter {
444
478
  const filename = workflowState?.filename;
445
479
  if (!filename)
446
480
  continue;
447
- const filePath = path.join(this.directory, filename);
481
+ let normalizedFilename;
482
+ try {
483
+ normalizedFilename = normalizeWorkflowRelativePath(filename);
484
+ }
485
+ catch {
486
+ continue;
487
+ }
488
+ const filePath = workflowRelativePathToAbsolute(this.directory, normalizedFilename);
448
489
  if (!fs.existsSync(filePath))
449
490
  continue;
450
491
  if (!this.idToFileMap.has(workflowId)) {
451
- this.idToFileMap.set(workflowId, filename);
492
+ this.idToFileMap.set(workflowId, normalizedFilename);
452
493
  }
453
- if (!this.fileToIdMap.has(filename)) {
454
- this.fileToIdMap.set(filename, workflowId);
494
+ if (!this.fileToIdMap.has(normalizedFilename)) {
495
+ this.fileToIdMap.set(normalizedFilename, workflowId);
455
496
  }
456
497
  }
457
498
  }
@@ -594,6 +635,48 @@ export class WorkflowStateTracker extends EventEmitter {
594
635
  }
595
636
  return finalName;
596
637
  }
638
+ /**
639
+ * Builds the resolver that turns a remote workflow's folder into local path
640
+ * segments — when n8n tells us what that folder is.
641
+ *
642
+ * As of n8n 2.32 it does not: `parentFolderId` is declared `writeOnly` in the
643
+ * public API spec, the read handlers never load the `parentFolder` relation,
644
+ * and no endpoint maps workflows to folders. This holds on every edition,
645
+ * Enterprise included, so pull lays workflows out flat and this returns null.
646
+ *
647
+ * The detection is deliberately based on the payload rather than a version
648
+ * check: the day a workflow read carries folder fields, nested pulls start
649
+ * working with no change here.
650
+ */
651
+ async createFolderResolver(remoteWorkflows) {
652
+ if (!this.folderSync)
653
+ return null;
654
+ const hasWorkflowFolderFields = remoteWorkflows.some((workflow) => workflow.parentFolderId !== undefined || workflow.parentFolder?.id);
655
+ if (!hasWorkflowFolderFields || typeof this.client.getFolders !== 'function') {
656
+ this.warnFolderMetadataUnavailable();
657
+ return null;
658
+ }
659
+ try {
660
+ return new FolderPathResolver(await this.client.getFolders(this.projectId));
661
+ }
662
+ catch (error) {
663
+ this.warnFolderMetadataUnavailable(error?.message);
664
+ return null;
665
+ }
666
+ }
667
+ warnFolderMetadataUnavailable(reason) {
668
+ if (this.warnedFolderMetadataUnavailable)
669
+ return;
670
+ this.warnedFolderMetadataUnavailable = true;
671
+ console.warn(`[WorkflowStateTracker] folderSync is enabled, but n8n's public API does not report which folder a workflow is in${reason ? ` (${reason})` : ''}. ` +
672
+ `Pull keeps workflows flat; push still mirrors your local folders onto n8n.`);
673
+ }
674
+ buildRelativeFilename(workflow, folderPath = [], idSuffix) {
675
+ const baseName = `${this.safeName(workflow.name)}${idSuffix ? `_${idSuffix}` : ''}.workflow.ts`;
676
+ if (!this.folderSync || folderPath.length === 0)
677
+ return baseName;
678
+ return normalizeWorkflowRelativePath([...folderPath.map(sanitizePathSegment), baseName].join('/'));
679
+ }
597
680
  /**
598
681
  * Find local file that contains a specific workflow ID
599
682
  * Used when we have an ID but no filename mapping yet (e.g., after file rename)
@@ -602,10 +685,9 @@ export class WorkflowStateTracker extends EventEmitter {
602
685
  if (!fs.existsSync(this.directory)) {
603
686
  return undefined;
604
687
  }
605
- const files = fs.readdirSync(this.directory)
606
- .filter(f => f.endsWith('.workflow.ts') && !f.startsWith('.'));
688
+ const files = listWorkflowFilesRecursive(this.directory);
607
689
  for (const file of files) {
608
- const content = this.readJsonFile(path.join(this.directory, file));
690
+ const content = this.readJsonFile(workflowRelativePathToAbsolute(this.directory, file));
609
691
  if (content?.id === workflowId) {
610
692
  return file;
611
693
  }
@@ -738,8 +820,15 @@ export class WorkflowStateTracker extends EventEmitter {
738
820
  // For local-only files, extract the name from the @workflow decorator for an accurate display.
739
821
  // Fall back to filename-derived name as last resort.
740
822
  const workflowName = (workflowId && this.remoteNames.get(workflowId))
741
- || this.readJsonFile(path.join(this.directory, filename))?.name
823
+ || this.readJsonFile(workflowRelativePathToAbsolute(this.directory, filename))?.name
742
824
  || filename.replace('.workflow.ts', '');
825
+ // Cheap drift signal: only computed when both reference state and the
826
+ // remote `updatedAt` from this refresh are available. See computeDrift().
827
+ // `remoteKnown` already implies `workflowId` is defined (see above), so the
828
+ // non-null assertion is safe and keeps this branch narrow.
829
+ const drift = remoteKnown && workflowId
830
+ ? this.computeDrift(filename, workflowId, state, this.remoteTimestamps.get(workflowId))
831
+ : undefined;
743
832
  results.set(filename, {
744
833
  id: workflowId || '',
745
834
  name: workflowName,
@@ -749,7 +838,13 @@ export class WorkflowStateTracker extends EventEmitter {
749
838
  projectId: undefined, // Not available in lightweight mode
750
839
  projectName: undefined, // Not available in lightweight mode
751
840
  homeProject: undefined, // Not available in lightweight mode
752
- isArchived
841
+ isArchived,
842
+ drift,
843
+ lastSyncedAt: workflowId ? state.workflows[workflowId]?.lastSyncedAt : undefined,
844
+ remoteUpdatedAt: workflowId ? this.remoteTimestamps.get(workflowId) : undefined,
845
+ parentFolderId: workflowId ? this.remoteParentFolderIds.get(workflowId) : undefined,
846
+ folderPath: workflowId ? this.remoteFolderPaths.get(workflowId) : undefined,
847
+ folderPathString: workflowId ? this.remoteFolderPaths.get(workflowId)?.join('/') : undefined,
753
848
  });
754
849
  }
755
850
  // 2. Process all remote workflows not yet in results
@@ -777,29 +872,90 @@ export class WorkflowStateTracker extends EventEmitter {
777
872
  projectId: undefined, // Not available in lightweight mode
778
873
  projectName: undefined, // Not available in lightweight mode
779
874
  homeProject: undefined, // Not available in lightweight mode
780
- isArchived
875
+ isArchived,
876
+ parentFolderId: this.remoteParentFolderIds.get(workflowId),
877
+ folderPath: this.remoteFolderPaths.get(workflowId),
878
+ folderPathString: this.remoteFolderPaths.get(workflowId)?.join('/'),
781
879
  });
782
880
  }
783
881
  }
784
882
  return Array.from(results.values());
785
883
  }
884
+ /**
885
+ * Cheap drift computation for the lightweight `list` path.
886
+ *
887
+ * Single source of truth (SSOT) for the "did either side change since last sync?"
888
+ * question when a remote hash is not yet cached (i.e. before `n8nac fetch <id>`
889
+ * runs the expensive per-workflow hash roundtrip).
890
+ *
891
+ * Returns `undefined` when there is no reference state for the workflow
892
+ * (never pulled / first sync), so consumers can distinguish "no drift known"
893
+ * from "drift checked and nothing changed". Within the returned object each
894
+ * axis is likewise `undefined` when its input is missing, so an absent axis
895
+ * reads as "unknown" and never as "unchanged".
896
+ *
897
+ * Cost: O(1) Map lookups, one string compare and one timestamp parse. No AST,
898
+ * no I/O, no extra API calls.
899
+ * The data sources are already populated by the existing lightweight refresh:
900
+ * - `localHashes[filename]` - populated by `refreshLocalState`
901
+ * - `state.workflows[id]` - read from `.n8n-state.json`
902
+ * - `remoteTimestamp` - returned by `/api/v1/workflows` (now cached by
903
+ * `refreshRemoteState` into `remoteTimestamps`)
904
+ */
905
+ computeDrift(filename, workflowId, state, remoteTimestamp) {
906
+ const baseState = state.workflows[workflowId];
907
+ const lastSyncedHash = baseState?.lastSyncedHash;
908
+ const lastSyncedAt = baseState?.lastSyncedAt;
909
+ if (!lastSyncedHash || !lastSyncedAt)
910
+ return undefined;
911
+ const localHash = this.localHashes.get(filename);
912
+ return {
913
+ // `undefined` when the file has no entry in localHashes, i.e. it could not
914
+ // be hashed during the local scan (refreshLocalState skips files that fail
915
+ // to parse). Reporting `false` there would claim "matches the last sync"
916
+ // for a file we never actually read.
917
+ local: localHash === undefined ? undefined : localHash !== lastSyncedHash,
918
+ // `undefined` when the instance returned no `updatedAt`: with nothing to
919
+ // compare, remote drift can be neither confirmed nor ruled out. Reporting
920
+ // `false` here would repeat, on the remote axis, the false "everything is
921
+ // aligned" this signal exists to prevent.
922
+ remote: remoteTimestamp === undefined ? undefined : this.isNewerThan(remoteTimestamp, lastSyncedAt),
923
+ };
924
+ }
925
+ /**
926
+ * True when the remote `updatedAt` is strictly newer than the recorded `lastSyncedAt`.
927
+ *
928
+ * `lastSyncedAt` is normally a verbatim copy of the remote `updatedAt` (see
929
+ * `updateWorkflowState`), so both sides usually share the same representation and
930
+ * equality means "in sync". They can still diverge in format — the fallback in
931
+ * `updateWorkflowState` writes a client-side `new Date().toISOString()` when the API
932
+ * response carried no `updatedAt`, and n8n instances differ in how they serialise
933
+ * timestamps. A lexical compare across two formats misreports silently (`' '` < `'T'`
934
+ * makes a space-separated timestamp always look older), so compare parsed instants,
935
+ * consistent with the existing remote-change guard in `sync-engine.ts`.
936
+ */
937
+ isNewerThan(remote, base) {
938
+ const remoteMs = Date.parse(remote);
939
+ const baseMs = Date.parse(base);
940
+ if (Number.isNaN(remoteMs) || Number.isNaN(baseMs)) {
941
+ // Unparseable on either side: fall back to an exact-string mismatch. This errs
942
+ // toward reporting drift, which is the safe direction — a missed remote change
943
+ // is the failure this signal exists to prevent.
944
+ return remote !== base;
945
+ }
946
+ return remoteMs > baseMs;
947
+ }
786
948
  /**
787
949
  * Get list of local workflow filenames (just checks file system, no parsing)
788
950
  */
789
951
  getLocalWorkflowFilenames() {
790
- const filenames = [];
791
952
  try {
792
- const files = fs.readdirSync(this.directory);
793
- for (const file of files) {
794
- if (file.endsWith('.workflow.ts')) {
795
- filenames.push(file);
796
- }
797
- }
953
+ return listWorkflowFilesRecursive(this.directory);
798
954
  }
799
955
  catch (error) {
800
956
  console.debug('[WorkflowStateTracker] Failed to read local directory:', error);
801
957
  }
802
- return filenames;
958
+ return [];
803
959
  }
804
960
  async getStatusMatrix() {
805
961
  const results = new Map();
@@ -809,7 +965,7 @@ export class WorkflowStateTracker extends EventEmitter {
809
965
  try {
810
966
  // Read local workflows
811
967
  for (const [filename] of this.localHashes.entries()) {
812
- const filePath = path.join(this.directory, filename);
968
+ const filePath = workflowRelativePathToAbsolute(this.directory, filename);
813
969
  if (fs.existsSync(filePath)) {
814
970
  try {
815
971
  const workflow = await this.readWorkflowFile(filePath);
@@ -846,7 +1002,10 @@ export class WorkflowStateTracker extends EventEmitter {
846
1002
  projectId: workflow?.projectId,
847
1003
  projectName: workflow?.projectName,
848
1004
  homeProject: workflow?.homeProject,
849
- isArchived
1005
+ isArchived,
1006
+ parentFolderId: workflowId ? this.remoteParentFolderIds.get(workflowId) : undefined,
1007
+ folderPath: workflowId ? this.remoteFolderPaths.get(workflowId) : undefined,
1008
+ folderPathString: workflowId ? this.remoteFolderPaths.get(workflowId)?.join('/') : undefined,
850
1009
  });
851
1010
  }
852
1011
  // 2. Process all remote workflows not yet in results
@@ -868,7 +1027,10 @@ export class WorkflowStateTracker extends EventEmitter {
868
1027
  projectId: workflow?.projectId,
869
1028
  projectName: workflow?.projectName,
870
1029
  homeProject: workflow?.homeProject,
871
- isArchived: workflow?.isArchived ?? false
1030
+ isArchived: workflow?.isArchived ?? false,
1031
+ parentFolderId: this.remoteParentFolderIds.get(workflowId),
1032
+ folderPath: this.remoteFolderPaths.get(workflowId),
1033
+ folderPathString: this.remoteFolderPaths.get(workflowId)?.join('/'),
872
1034
  });
873
1035
  }
874
1036
  }
@@ -891,7 +1053,10 @@ export class WorkflowStateTracker extends EventEmitter {
891
1053
  projectId: workflow?.projectId,
892
1054
  projectName: workflow?.projectName,
893
1055
  homeProject: workflow?.homeProject,
894
- isArchived: workflow?.isArchived ?? false
1056
+ isArchived: workflow?.isArchived ?? false,
1057
+ parentFolderId: this.remoteParentFolderIds.get(id),
1058
+ folderPath: this.remoteFolderPaths.get(id),
1059
+ folderPathString: this.remoteFolderPaths.get(id)?.join('/'),
895
1060
  });
896
1061
  }
897
1062
  }
@@ -934,7 +1099,7 @@ export class WorkflowStateTracker extends EventEmitter {
934
1099
  const workflows = [];
935
1100
  // 1. Get all local workflows
936
1101
  for (const [filename, _] of this.localHashes.entries()) {
937
- const filepath = path.join(this.directory, filename);
1102
+ const filepath = workflowRelativePathToAbsolute(this.directory, filename);
938
1103
  try {
939
1104
  const workflow = await this.readWorkflowFile(filepath);
940
1105
  if (workflow) {
@@ -997,6 +1162,16 @@ export class WorkflowStateTracker extends EventEmitter {
997
1162
  this.remoteNames.delete(oldId);
998
1163
  this.remoteNames.set(newId, name);
999
1164
  }
1165
+ const parentFolderId = this.remoteParentFolderIds.get(oldId);
1166
+ if (parentFolderId !== undefined) {
1167
+ this.remoteParentFolderIds.delete(oldId);
1168
+ this.remoteParentFolderIds.set(newId, parentFolderId);
1169
+ }
1170
+ const folderPath = this.remoteFolderPaths.get(oldId);
1171
+ if (folderPath) {
1172
+ this.remoteFolderPaths.delete(oldId);
1173
+ this.remoteFolderPaths.set(newId, folderPath);
1174
+ }
1000
1175
  // Migrate remote ID set
1001
1176
  if (this.remoteIds.has(oldId)) {
1002
1177
  this.remoteIds.delete(oldId);
@@ -1029,15 +1204,33 @@ export class WorkflowStateTracker extends EventEmitter {
1029
1204
  // Store active and archived flags
1030
1205
  this.remoteActive.set(remoteWf.id, remoteWf.active === true);
1031
1206
  this.remoteArchived.set(remoteWf.id, remoteWf.isArchived === true);
1207
+ const parentFolderId = remoteWf.parentFolderId ?? remoteWf.parentFolder?.id ?? null;
1208
+ let folderPath = [];
1209
+ if (this.folderSync && parentFolderId && typeof this.client.getFolders === 'function') {
1210
+ try {
1211
+ // Same project-id caveat as the push path: the folder list endpoint
1212
+ // needs a real id, not the `personal` placeholder.
1213
+ const folderProjectId = typeof this.client.resolveFolderProjectId === 'function'
1214
+ ? await this.client.resolveFolderProjectId(this.projectId)
1215
+ : this.projectId;
1216
+ const resolver = new FolderPathResolver(await this.client.getFolders(folderProjectId ?? this.projectId));
1217
+ folderPath = resolver.getPathForWorkflow(remoteWf);
1218
+ }
1219
+ catch (error) {
1220
+ this.warnFolderMetadataUnavailable(error?.message);
1221
+ }
1222
+ }
1223
+ this.remoteParentFolderIds.set(remoteWf.id, parentFolderId);
1224
+ this.remoteFolderPaths.set(remoteWf.id, folderPath);
1032
1225
  // Establish mapping if it doesn't exist yet (allows 'pull' after single 'fetch')
1033
1226
  if (!this.idToFileMap.has(remoteWf.id)) {
1034
1227
  let filename = this.findFilenameByWorkflowId(remoteWf.id);
1035
1228
  if (!filename) {
1036
- const baseName = `${this.safeName(remoteWf.name || remoteWf.id)}.workflow.ts`;
1229
+ const baseName = this.buildRelativeFilename(remoteWf, folderPath);
1037
1230
  filename = baseName;
1038
1231
  // Simple collision check against existing mappings
1039
1232
  if (this.fileToIdMap.has(filename)) {
1040
- filename = `${this.safeName(remoteWf.name || remoteWf.id)}_${remoteWf.id.substring(0, 8)}.workflow.ts`;
1233
+ filename = this.buildRelativeFilename(remoteWf, folderPath, remoteWf.id.substring(0, 8));
1041
1234
  }
1042
1235
  }
1043
1236
  this.idToFileMap.set(remoteWf.id, filename);
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-state-tracker.js","sourceRoot":"","sources":["../../../src/core/services/workflow-state-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-state-tracker.js","sourceRoot":"","sources":["../../../src/core/services/workflow-state-tracker.ts"],"names":[],"mappings":"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"}