@n8n-as-code/sync 0.11.0 → 0.13.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.
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # <img src="https://raw.githubusercontent.com/EtienneLescot/n8n-as-code/main/res/logo.png" alt="n8n-as-code logo" width="32" height="32"> @n8n-as-code/sync
2
2
 
3
+ > **⚠️ BREAKING CHANGE (v0.13.0)**: This package now handles workflows as **TypeScript files** (`.workflow.ts`) instead of JSON, using the `@n8n-as-code/transformer` package for bidirectional conversion.
4
+
3
5
  The logical sync of the **n8n-as-code** ecosystem.
4
6
 
5
7
  ## 🛠 Purpose
@@ -0,0 +1,320 @@
1
+ /**
2
+ * n8n-as-code Type Stubs
3
+ *
4
+ * Auto-generated by the n8n-as-code VS Code extension / CLI.
5
+ * DO NOT EDIT - this file is regenerated automatically.
6
+ *
7
+ * Provides TypeScript types for .workflow.ts files without requiring
8
+ * a local installation of @n8n-as-code/transformer.
9
+ *
10
+ * Mapped as the @n8n-as-code/transformer module via tsconfig "paths".
11
+ */
12
+
13
+ // =========================================================================
14
+ // GLOBAL AUGMENTATION
15
+ // Adds .out(), .in(), .uses(), .output to every object so that node
16
+ // properties (typed from their literal values) get full IntelliSense
17
+ // inside defineRouting() without explicit type casts.
18
+ // =========================================================================
19
+ export {};
20
+
21
+ declare global {
22
+ interface Object {
23
+ /** Regular output connector (index = output slot, default 0) */
24
+ out(index?: number): OutputConnection;
25
+ /** Regular input connector (index = input slot, default 0) */
26
+ in(index?: number): InputConnection;
27
+ /** Error output connector */
28
+ error(): OutputConnection;
29
+ /** Declare AI/LangChain sub-node dependencies */
30
+ uses(dependencies: AIDependencyMap): void;
31
+ /** Output reference used as target of .uses() values */
32
+ readonly output: any;
33
+ }
34
+ }
35
+
36
+ // =========================================================================
37
+ // WORKFLOW SETTINGS
38
+ // =========================================================================
39
+
40
+ export interface WorkflowSettings {
41
+ executionOrder?: 'v0' | 'v1' | 'v2';
42
+ timeSavedMode?: 'fixed' | 'calculated';
43
+ errorWorkflow?: string;
44
+ timezone?: string;
45
+ saveManualExecutions?: boolean;
46
+ saveDataErrorExecution?: 'all' | 'none';
47
+ saveExecutionProgress?: boolean;
48
+ callerPolicy?: 'workflowsFromSameOwner' | 'any' | 'none';
49
+ availableInMCP?: boolean;
50
+ [key: string]: any;
51
+ }
52
+
53
+ // =========================================================================
54
+ // DECORATOR METADATA
55
+ // =========================================================================
56
+
57
+ export interface WorkflowDecoratorOptions {
58
+ /** Workflow ID (assigned by n8n) */
59
+ id: string;
60
+ /** Human-readable name */
61
+ name: string;
62
+ /** Whether the workflow is active */
63
+ active: boolean;
64
+ /** Workflow execution settings */
65
+ settings?: WorkflowSettings;
66
+ /** Project ID for organization */
67
+ projectId?: string;
68
+ /** Project name */
69
+ projectName?: string;
70
+ /** Whether the workflow is archived */
71
+ isArchived?: boolean;
72
+ }
73
+
74
+ export interface NodeDecoratorOptions {
75
+ /** Display name shown in n8n UI */
76
+ name: string;
77
+ /** Node type identifier (e.g. "n8n-nodes-base.httpRequest") */
78
+ type: string;
79
+ /** Node version */
80
+ version: number;
81
+ /** Position [x, y] on the canvas */
82
+ position?: [number, number];
83
+ /** Credential references */
84
+ credentials?: Record<string, { id: string; name: string }>;
85
+ /** Error handling mode */
86
+ onError?: 'continueErrorOutput' | 'continueRegularOutput' | 'stopWorkflow';
87
+ }
88
+
89
+ // =========================================================================
90
+ // AI / LANGCHAIN DEPENDENCY MAP (.uses())
91
+ // =========================================================================
92
+
93
+ export interface AIDependencyMap {
94
+ ai_languageModel?: any;
95
+ ai_memory?: any;
96
+ ai_outputParser?: any;
97
+ ai_tool?: any[];
98
+ ai_agent?: any;
99
+ ai_chain?: any;
100
+ ai_document?: any[];
101
+ ai_textSplitter?: any;
102
+ ai_embedding?: any;
103
+ ai_retriever?: any;
104
+ ai_reranker?: any;
105
+ ai_vectorStore?: any;
106
+ }
107
+
108
+ // =========================================================================
109
+ // FLUENT CONNECTION API
110
+ // =========================================================================
111
+
112
+ export interface InputConnection {
113
+ readonly _to: { node: string; input: number };
114
+ }
115
+
116
+ export interface OutputConnection {
117
+ readonly _from: { node: string; output: number; isError?: boolean };
118
+ to(input: InputConnection): void;
119
+ }
120
+
121
+ // =========================================================================
122
+ // DECORATORS
123
+ // =========================================================================
124
+
125
+ /**
126
+ * Marks a class as an n8n workflow.
127
+ *
128
+ * @example
129
+ * ```ts
130
+ * @workflow({ id: 'abc123', name: 'My Workflow', active: false })
131
+ * export class MyWorkflow { ... }
132
+ * ```
133
+ */
134
+ export declare function workflow(options: WorkflowDecoratorOptions): ClassDecorator;
135
+
136
+ /**
137
+ * Marks a class property as an n8n node.
138
+ * The property value is used as node parameters.
139
+ *
140
+ * @example
141
+ * ```ts
142
+ * @node({ name: 'HTTP Request', type: 'n8n-nodes-base.httpRequest', version: 4.2, position: [300, 200] })
143
+ * MyHttp = { url: 'https://api.example.com' };
144
+ * ```
145
+ */
146
+ export declare function node(options: NodeDecoratorOptions): PropertyDecorator;
147
+
148
+ /**
149
+ * Marks a method as the routing/connections definition.
150
+ *
151
+ * @example
152
+ * ```ts
153
+ * @links()
154
+ * defineRouting() {
155
+ * this.Trigger.out(0).to(this.Agent.in(0));
156
+ * this.Agent.uses({ ai_languageModel: this.Model.output });
157
+ * }
158
+ * ```
159
+ */
160
+ export declare function links(): MethodDecorator;
161
+
162
+
163
+ // =========================================================================
164
+ // WORKFLOW SETTINGS
165
+ // =========================================================================
166
+
167
+ export interface WorkflowSettings {
168
+ executionOrder?: 'v0' | 'v1' | 'v2';
169
+ timeSavedMode?: 'fixed' | 'calculated';
170
+ errorWorkflow?: string;
171
+ timezone?: string;
172
+ saveManualExecutions?: boolean;
173
+ saveDataErrorExecution?: 'all' | 'none';
174
+ saveExecutionProgress?: boolean;
175
+ callerPolicy?: 'workflowsFromSameOwner' | 'any' | 'none';
176
+ availableInMCP?: boolean;
177
+ [key: string]: any;
178
+ }
179
+
180
+ // =========================================================================
181
+ // DECORATOR METADATA
182
+ // =========================================================================
183
+
184
+ export interface WorkflowDecoratorOptions {
185
+ /** Workflow ID (assigned by n8n) */
186
+ id: string;
187
+ /** Human-readable name */
188
+ name: string;
189
+ /** Whether the workflow is active */
190
+ active: boolean;
191
+ /** Workflow execution settings */
192
+ settings?: WorkflowSettings;
193
+ /** Project ID for organization */
194
+ projectId?: string;
195
+ /** Project name */
196
+ projectName?: string;
197
+ /** Whether the workflow is archived */
198
+ isArchived?: boolean;
199
+ }
200
+
201
+ export interface NodeDecoratorOptions {
202
+ /** Display name shown in n8n UI */
203
+ name: string;
204
+ /** Node type identifier (e.g. "n8n-nodes-base.httpRequest") */
205
+ type: string;
206
+ /** Node version */
207
+ version: number;
208
+ /** Position [x, y] on the canvas */
209
+ position?: [number, number];
210
+ /** Credential references */
211
+ credentials?: Record<string, { id: string; name: string }>;
212
+ /** Error handling mode */
213
+ onError?: 'continueErrorOutput' | 'continueRegularOutput' | 'stopWorkflow';
214
+ }
215
+
216
+ // =========================================================================
217
+ // AI / LANGCHAIN DEPENDENCY MAP (.uses())
218
+ // =========================================================================
219
+
220
+ /** Proxy object with an `.output` accessor (returned by AI/LangChain nodes) */
221
+ export interface NodeOutput {
222
+ readonly output: NodeOutput;
223
+ }
224
+
225
+ export interface AIDependencyMap {
226
+ /** Language model (e.g. OpenAI, Anthropic) */
227
+ ai_languageModel?: NodeOutput;
228
+ /** Conversation memory */
229
+ ai_memory?: NodeOutput;
230
+ /** Structured output parser */
231
+ ai_outputParser?: NodeOutput;
232
+ /** Tool nodes (can be multiple) */
233
+ ai_tool?: NodeOutput[];
234
+ /** Sub-agent */
235
+ ai_agent?: NodeOutput;
236
+ /** LangChain chain */
237
+ ai_chain?: NodeOutput;
238
+ /** Document loaders (can be multiple) */
239
+ ai_document?: NodeOutput[];
240
+ /** Text splitter */
241
+ ai_textSplitter?: NodeOutput;
242
+ /** Embedding model */
243
+ ai_embedding?: NodeOutput;
244
+ /** Vector store retriever */
245
+ ai_retriever?: NodeOutput;
246
+ /** Result reranker */
247
+ ai_reranker?: NodeOutput;
248
+ /** Vector store */
249
+ ai_vectorStore?: NodeOutput;
250
+ }
251
+
252
+ // =========================================================================
253
+ // FLUENT CONNECTION API (.out().to(), .uses())
254
+ // =========================================================================
255
+
256
+ export interface InputConnection {
257
+ readonly _to: { node: string; input: number };
258
+ }
259
+
260
+ export interface OutputConnection {
261
+ readonly _from: { node: string; output: number; isError?: boolean };
262
+ /** Connect this output to a node input */
263
+ to(input: InputConnection): void;
264
+ }
265
+
266
+ /** Proxy wrapping each class property in defineRouting() */
267
+ export interface NodeProxy extends NodeOutput {
268
+ /** Regular output connector (index = output index, default 0) */
269
+ out(index?: number): OutputConnection;
270
+ /** Regular input connector (index = input index, default 0) */
271
+ in(index?: number): InputConnection;
272
+ /** Error output connector */
273
+ error(): OutputConnection;
274
+ /** Declare AI/LangChain sub-node dependencies */
275
+ uses(dependencies: AIDependencyMap): void;
276
+ }
277
+
278
+ // =========================================================================
279
+ // DECORATORS
280
+ // =========================================================================
281
+
282
+ /**
283
+ * Marks a class as an n8n workflow.
284
+ *
285
+ * @example
286
+ * ```ts
287
+ * @workflow({ id: 'abc123', name: 'My Workflow', active: false })
288
+ * export class MyWorkflow { ... }
289
+ * ```
290
+ */
291
+ export function workflow(options: WorkflowDecoratorOptions): ClassDecorator;
292
+
293
+ /**
294
+ * Marks a class property as an n8n node.
295
+ * The property value is used as node parameters.
296
+ *
297
+ * @example
298
+ * ```ts
299
+ * @node({ name: 'HTTP Request', type: 'n8n-nodes-base.httpRequest', version: 4.2, position: [300, 200] })
300
+ * MyHttp = { url: 'https://api.example.com' };
301
+ * ```
302
+ */
303
+ export function node(options: NodeDecoratorOptions): PropertyDecorator;
304
+
305
+ /**
306
+ * Marks a method as the routing/connections definition.
307
+ * Inside this method, use `.out().to()` for regular connections
308
+ * and `.uses()` for AI/LangChain sub-node connections.
309
+ *
310
+ * @example
311
+ * ```ts
312
+ * @links()
313
+ * defineRouting() {
314
+ * this.Trigger.out(0).to(this.Agent.in(0));
315
+ * this.Agent.uses({ ai_languageModel: this.Model.output });
316
+ * }
317
+ * ```
318
+ */
319
+ export function links(): MethodDecorator;
320
+ }
package/dist/index.d.ts CHANGED
@@ -7,5 +7,6 @@ export * from './services/watcher.js';
7
7
  export * from './services/resolution-manager.js';
8
8
  export * from './services/state-manager.js';
9
9
  export * from './services/directory-utils.js';
10
+ export * from './services/workspace-setup-service.js';
10
11
  export * from './helpers/index.js';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -7,5 +7,6 @@ export * from './services/watcher.js';
7
7
  export * from './services/resolution-manager.js';
8
8
  export * from './services/state-manager.js';
9
9
  export * from './services/directory-utils.js';
10
+ export * from './services/workspace-setup-service.js';
10
11
  export * from './helpers/index.js';
11
12
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,oBAAoB,CAAC"}
@@ -51,6 +51,6 @@ export declare class SyncEngine {
51
51
  private executeUpdate;
52
52
  private executeCreate;
53
53
  archive(filename: string): Promise<void>;
54
- private readJsonFile;
54
+ private readTypeScriptFile;
55
55
  }
56
56
  //# sourceMappingURL=sync-engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-engine.d.ts","sourceRoot":"","sources":["../../src/services/sync-engine.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAa,MAAM,aAAa,CAAC;AAE5D;;;;;;;;;GASG;AACH,qBAAa,UAAU;IACnB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAS;gBAG3B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM;IAYrB;;;OAGG;IACU,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDlG;;;OAGG;IACU,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IA8DtG;;OAEG;IACU,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa3E;;;OAGG;IACU,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkC7E;;;OAGG;IACU,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9E;;;;OAIG;IACU,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAyBrD,WAAW;YAwBX,aAAa;YA0Bb,aAAa;IAyBd,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrD,OAAO,CAAC,YAAY;CAOvB"}
1
+ {"version":3,"file":"sync-engine.d.ts","sourceRoot":"","sources":["../../src/services/sync-engine.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAa,MAAM,aAAa,CAAC;AAE5D;;;;;;;;;GASG;AACH,qBAAa,UAAU;IACnB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAS;gBAG3B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM;IAYrB;;;OAGG;IACU,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDlG;;;OAGG;IACU,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IA8DtG;;OAEG;IACU,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa3E;;;OAGG;IACU,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkC7E;;;OAGG;IACU,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9E;;;;OAIG;IACU,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAyBrD,WAAW;YA6BX,aAAa;YA6Bb,aAAa;IA6Bd,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrD,OAAO,CAAC,kBAAkB;CAO7B"}
@@ -1,7 +1,6 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
- import { WorkflowSanitizer } from './workflow-sanitizer.js';
4
- import { HashUtils } from './hash-utils.js';
3
+ import { WorkflowTransformerAdapter } from './workflow-transformer-adapter.js';
5
4
  import { WorkflowSyncStatus } from '../types.js';
6
5
  /**
7
6
  * Sync Engine - State Mutation Component
@@ -244,53 +243,64 @@ export class SyncEngine {
244
243
  }
245
244
  throw new Error(`Remote workflow ${workflowId} not found during pull`);
246
245
  }
247
- const clean = WorkflowSanitizer.cleanForStorage(fullWf);
246
+ // Convert to TypeScript
247
+ const tsCode = await WorkflowTransformerAdapter.convertToTypeScript(fullWf, {
248
+ format: true,
249
+ commentStyle: 'verbose'
250
+ });
248
251
  const filePath = path.join(this.directory, filename);
249
- fs.writeFileSync(filePath, JSON.stringify(clean, null, 2));
252
+ fs.writeFileSync(filePath, tsCode, 'utf-8');
250
253
  // Update Watcher's remote hash cache since we just fetched the workflow
251
254
  // This ensures finalizeSync has the remote hash
252
- const hash = HashUtils.computeHash(WorkflowSanitizer.cleanForHash(fullWf));
255
+ const hash = await WorkflowTransformerAdapter.hashWorkflow(tsCode);
253
256
  this.watcher.setRemoteHash(workflowId, hash);
254
257
  }
255
258
  async executeUpdate(workflowId, filename) {
256
259
  const filePath = path.join(this.directory, filename);
257
- const localWf = this.readJsonFile(filePath);
258
- if (!localWf) {
260
+ const tsContent = this.readTypeScriptFile(filePath);
261
+ if (!tsContent) {
259
262
  throw new Error('Local file not found during push');
260
263
  }
261
- const payload = WorkflowSanitizer.cleanForPush(localWf);
262
- const updatedWf = await this.client.updateWorkflow(workflowId, payload);
264
+ // Compile TypeScript to JSON for API
265
+ const localWf = await WorkflowTransformerAdapter.compileToJson(tsContent);
266
+ const updatedWf = await this.client.updateWorkflow(workflowId, localWf);
263
267
  if (!updatedWf) {
264
268
  throw new Error('Failed to update remote workflow');
265
269
  }
266
270
  // CRITICAL: Write the API response back to local file to ensure consistency
267
271
  // This ensures local and remote have identical content after push
268
- // IMPORTANT: We use cleanForStorage to remove dynamic metadata (versionId, etc.)
269
- // This prevents the watcher from detecting a change and triggering another sync
270
- const clean = WorkflowSanitizer.cleanForStorage(updatedWf);
271
- fs.writeFileSync(filePath, JSON.stringify(clean, null, 2));
272
+ // Convert the updated workflow back to TypeScript
273
+ const tsCode = await WorkflowTransformerAdapter.convertToTypeScript(updatedWf, {
274
+ format: true,
275
+ commentStyle: 'verbose'
276
+ });
277
+ fs.writeFileSync(filePath, tsCode, 'utf-8');
272
278
  // Update Watcher's remote hash cache with the updated workflow
273
- const hash = HashUtils.computeHash(WorkflowSanitizer.cleanForHash(updatedWf));
279
+ const hash = await WorkflowTransformerAdapter.hashWorkflow(tsCode);
274
280
  this.watcher.setRemoteHash(workflowId, hash);
275
281
  }
276
282
  async executeCreate(filename) {
277
283
  const filePath = path.join(this.directory, filename);
278
- const localWf = this.readJsonFile(filePath);
279
- if (!localWf) {
284
+ const tsContent = this.readTypeScriptFile(filePath);
285
+ if (!tsContent) {
280
286
  throw new Error('Local file not found during creation');
281
287
  }
282
- const payload = WorkflowSanitizer.cleanForPush(localWf);
283
- if (!payload.name) {
284
- payload.name = path.parse(filename).name;
288
+ // Compile TypeScript to JSON for API
289
+ const localWf = await WorkflowTransformerAdapter.compileToJson(tsContent);
290
+ if (!localWf.name) {
291
+ localWf.name = path.parse(filename).name.replace('.workflow', '');
285
292
  }
286
- const newWf = await this.client.createWorkflow(payload);
293
+ const newWf = await this.client.createWorkflow(localWf);
287
294
  if (!newWf || !newWf.id) {
288
295
  throw new Error('Failed to create remote workflow');
289
296
  }
290
297
  // Update local file with new ID and clean metadata
291
- // IMPORTANT: Use cleanForStorage to prevent watcher from detecting metadata changes
292
- const clean = WorkflowSanitizer.cleanForStorage(newWf);
293
- fs.writeFileSync(filePath, JSON.stringify(clean, null, 2));
298
+ // Convert the new workflow back to TypeScript
299
+ const tsCode = await WorkflowTransformerAdapter.convertToTypeScript(newWf, {
300
+ format: true,
301
+ commentStyle: 'verbose'
302
+ });
303
+ fs.writeFileSync(filePath, tsCode, 'utf-8');
294
304
  return newWf.id;
295
305
  }
296
306
  async archive(filename) {
@@ -300,9 +310,9 @@ export class SyncEngine {
300
310
  fs.renameSync(filePath, archivePath);
301
311
  }
302
312
  }
303
- readJsonFile(filePath) {
313
+ readTypeScriptFile(filePath) {
304
314
  try {
305
- return JSON.parse(fs.readFileSync(filePath, 'utf8'));
315
+ return fs.readFileSync(filePath, 'utf8');
306
316
  }
307
317
  catch {
308
318
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"sync-engine.js","sourceRoot":"","sources":["../../src/services/sync-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-engine.js","sourceRoot":"","sources":["../../src/services/sync-engine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync-manager.d.ts","sourceRoot":"","sources":["../../src/services/sync-manager.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKnD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAsB,eAAe,EAAE,MAAM,aAAa,CAAC;AAG1F,qBAAa,WAAY,SAAQ,YAAY;IACzC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,iBAAiB,CAAkC;gBAE/C,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW;YAUvC,iBAAiB;IAmEzB,kBAAkB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAMtD;;;OAGG;IACG,wBAAwB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAKhD,QAAQ;IAaR,MAAM;IAaN,UAAU;IAUhB;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAsBhC;;;OAGG;YACW,cAAc;IAkDtB,SAAS;IAKT,YAAY;IAOX,oBAAoB,IAAI,MAAM;IAU/B,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,QAAQ;IASxE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC;IAwB/G,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBhE,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBpE,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5D,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAI7E"}
1
+ {"version":3,"file":"sync-manager.d.ts","sourceRoot":"","sources":["../../src/services/sync-manager.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKnD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAsB,eAAe,EAAE,MAAM,aAAa,CAAC;AAI1F,qBAAa,WAAY,SAAQ,YAAY;IACzC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,iBAAiB,CAAkC;gBAE/C,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW;YAUvC,iBAAiB;IA+EzB,kBAAkB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAMtD;;;OAGG;IACG,wBAAwB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAKhD,QAAQ;IAaR,MAAM;IAaN,UAAU;IAUhB;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAsBhC;;;OAGG;YACW,cAAc;IAsDtB,SAAS;IAKT,YAAY;IAOX,oBAAoB,IAAI,MAAM;IAU/B,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,QAAQ;IASxE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC;IAwB/G,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBhE,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBpE,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5D,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAI7E"}
@@ -7,6 +7,7 @@ import { SyncEngine } from './sync-engine.js';
7
7
  import { ResolutionManager } from './resolution-manager.js';
8
8
  import { WorkflowSyncStatus } from '../types.js';
9
9
  import { createProjectSlug } from './directory-utils.js';
10
+ import { WorkspaceSetupService } from './workspace-setup-service.js';
10
11
  export class SyncManager extends EventEmitter {
11
12
  client;
12
13
  config;
@@ -31,6 +32,14 @@ export class SyncManager extends EventEmitter {
31
32
  if (!fs.existsSync(instanceDir)) {
32
33
  fs.mkdirSync(instanceDir, { recursive: true });
33
34
  }
35
+ // Write TypeScript support files (.d.ts + tsconfig.json) so .workflow.ts
36
+ // files have no red errors without requiring a local npm install.
37
+ try {
38
+ WorkspaceSetupService.ensureWorkspaceFiles(instanceDir);
39
+ }
40
+ catch (err) {
41
+ console.warn('[SyncManager] Could not write workspace TypeScript stubs:', err.message);
42
+ }
34
43
  this.stateManager = new StateManager(instanceDir);
35
44
  this.watcher = new Watcher(this.client, {
36
45
  directory: instanceDir,
@@ -42,6 +51,7 @@ export class SyncManager extends EventEmitter {
42
51
  this.syncEngine = new SyncEngine(this.client, this.watcher, instanceDir);
43
52
  this.resolutionManager = new ResolutionManager(this.syncEngine, this.watcher, this.client);
44
53
  this.watcher.on('statusChange', (data) => {
54
+ console.log(`[SyncManager] 📨 Received statusChange event:`, data);
45
55
  this.emit('change', data);
46
56
  // Emit specific events for deletions and conflicts
47
57
  if (data.status === WorkflowSyncStatus.DELETED_LOCALLY && data.workflowId) {
@@ -64,11 +74,15 @@ export class SyncManager extends EventEmitter {
64
74
  }
65
75
  // Auto-sync in auto mode
66
76
  if (this.config.syncMode === 'auto') {
77
+ console.log(`[SyncManager] Auto mode enabled, calling handleAutoSync...`);
67
78
  this.handleAutoSync(data).catch(err => {
68
79
  console.error('[SyncManager] Auto-sync error:', err);
69
80
  this.emit('error', `Auto-sync failed: ${err.message}`);
70
81
  });
71
82
  }
83
+ else {
84
+ console.log(`[SyncManager] Manual mode, skipping auto-sync`);
85
+ }
72
86
  });
73
87
  this.watcher.on('error', (err) => {
74
88
  this.emit('error', err);
@@ -80,7 +94,7 @@ export class SyncManager extends EventEmitter {
80
94
  async getWorkflowsStatus() {
81
95
  await this.ensureInitialized();
82
96
  // Return status from watcher
83
- return this.watcher.getStatusMatrix();
97
+ return await this.watcher.getStatusMatrix();
84
98
  }
85
99
  /**
86
100
  * Get full workflows with organization metadata for display purposes.
@@ -148,14 +162,17 @@ export class SyncManager extends EventEmitter {
148
162
  */
149
163
  async handleAutoSync(data) {
150
164
  const { filename, workflowId, status } = data;
165
+ console.log(`[SyncManager] 🤖 handleAutoSync called for ${filename}, status: ${status}`);
151
166
  try {
152
167
  switch (status) {
153
168
  case WorkflowSyncStatus.MODIFIED_LOCALLY:
154
169
  case WorkflowSyncStatus.EXIST_ONLY_LOCALLY:
155
170
  // Auto-push local changes
156
171
  this.emit('log', `🔄 Auto-sync: Pushing "${filename}"...`);
172
+ console.log(`[SyncManager] Pushing ${filename}...`);
157
173
  await this.syncEngine.push(filename, workflowId, status);
158
174
  this.emit('log', `✅ Auto-sync: Pushed "${filename}"`);
175
+ console.log(`[SyncManager] ✅ Push complete for ${filename}`);
159
176
  // Emit event to notify that remote was updated (for webview reload)
160
177
  if (workflowId) {
161
178
  this.emit('remote-updated', { workflowId, filename });