@elizaos/plugin-n8n-workflow 1.0.11 → 1.1.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 (70) hide show
  1. package/README.md +106 -10
  2. package/dist/actions/createWorkflow.d.ts +7 -1
  3. package/dist/actions/createWorkflow.d.ts.map +1 -1
  4. package/dist/actions/createWorkflow.js +43 -11
  5. package/dist/actions/createWorkflow.js.map +1 -1
  6. package/dist/actions/index.d.ts +1 -0
  7. package/dist/actions/index.d.ts.map +1 -1
  8. package/dist/actions/index.js +1 -0
  9. package/dist/actions/index.js.map +1 -1
  10. package/dist/actions/modifyExistingWorkflow.d.ts +3 -0
  11. package/dist/actions/modifyExistingWorkflow.d.ts.map +1 -0
  12. package/dist/actions/modifyExistingWorkflow.js +199 -0
  13. package/dist/actions/modifyExistingWorkflow.js.map +1 -0
  14. package/dist/data/defaultNodes.json +2881 -1374
  15. package/dist/data/schemaIndex.json +125381 -0
  16. package/dist/data/triggerSchemaIndex.json +1217 -0
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +2 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/prompts/actionResponse.d.ts +1 -1
  21. package/dist/prompts/actionResponse.d.ts.map +1 -1
  22. package/dist/prompts/actionResponse.js +1 -1
  23. package/dist/prompts/fieldCorrection.d.ts +3 -0
  24. package/dist/prompts/fieldCorrection.d.ts.map +1 -0
  25. package/dist/prompts/fieldCorrection.js +20 -0
  26. package/dist/prompts/fieldCorrection.js.map +1 -0
  27. package/dist/prompts/index.d.ts +2 -0
  28. package/dist/prompts/index.d.ts.map +1 -1
  29. package/dist/prompts/index.js +2 -0
  30. package/dist/prompts/index.js.map +1 -1
  31. package/dist/prompts/parameterCorrection.d.ts +3 -0
  32. package/dist/prompts/parameterCorrection.d.ts.map +1 -0
  33. package/dist/prompts/parameterCorrection.js +29 -0
  34. package/dist/prompts/parameterCorrection.js.map +1 -0
  35. package/dist/prompts/workflowGeneration.d.ts +1 -1
  36. package/dist/prompts/workflowGeneration.d.ts.map +1 -1
  37. package/dist/prompts/workflowGeneration.js +3 -2
  38. package/dist/prompts/workflowGeneration.js.map +1 -1
  39. package/dist/services/n8n-workflow-service.d.ts +1 -0
  40. package/dist/services/n8n-workflow-service.d.ts.map +1 -1
  41. package/dist/services/n8n-workflow-service.js +78 -17
  42. package/dist/services/n8n-workflow-service.js.map +1 -1
  43. package/dist/types/index.d.ts +37 -3
  44. package/dist/types/index.d.ts.map +1 -1
  45. package/dist/types/index.js.map +1 -1
  46. package/dist/utils/catalog.d.ts +5 -3
  47. package/dist/utils/catalog.d.ts.map +1 -1
  48. package/dist/utils/catalog.js +87 -9
  49. package/dist/utils/catalog.js.map +1 -1
  50. package/dist/utils/credentialResolver.d.ts +1 -1
  51. package/dist/utils/credentialResolver.d.ts.map +1 -1
  52. package/dist/utils/credentialResolver.js +5 -4
  53. package/dist/utils/credentialResolver.js.map +1 -1
  54. package/dist/utils/generation.d.ts +9 -1
  55. package/dist/utils/generation.d.ts.map +1 -1
  56. package/dist/utils/generation.js +220 -9
  57. package/dist/utils/generation.js.map +1 -1
  58. package/dist/utils/index.d.ts +3 -2
  59. package/dist/utils/index.d.ts.map +1 -1
  60. package/dist/utils/index.js +4 -2
  61. package/dist/utils/index.js.map +1 -1
  62. package/dist/utils/outputSchema.d.ts +26 -0
  63. package/dist/utils/outputSchema.d.ts.map +1 -0
  64. package/dist/utils/outputSchema.js +271 -0
  65. package/dist/utils/outputSchema.js.map +1 -0
  66. package/dist/utils/workflow.d.ts +33 -1
  67. package/dist/utils/workflow.d.ts.map +1 -1
  68. package/dist/utils/workflow.js +259 -13
  69. package/dist/utils/workflow.js.map +1 -1
  70. package/package.json +4 -2
package/README.md CHANGED
@@ -455,7 +455,7 @@ User Prompt: "Send me Stripe payment summaries every Monday via Gmail"
455
455
  │ Max: 5 keywords │
456
456
  └──────────────────┬───────────────────────┘
457
457
 
458
- ┌──────────────────────────────────────────┐
458
+ ┌────────────────────�����────────────────────┐
459
459
  │ 2. searchNodes (local catalog) │
460
460
  │ 457 embedded n8n node definitions │
461
461
  │ Keyword scoring: │
@@ -471,6 +471,7 @@ User Prompt: "Send me Stripe payment summaries every Monday via Gmail"
471
471
  ┌──────────────────────────────────────────┐
472
472
  │ 3. generateWorkflow (TEXT_LARGE) │
473
473
  │ Input: user prompt + node defs │
474
+ │ + output schemas (from index) │
474
475
  │ Config: temperature 0, JSON mode │
475
476
  │ Output: complete n8n workflow JSON │
476
477
  │ Includes: _meta.assumptions, │
@@ -479,7 +480,36 @@ User Prompt: "Send me Stripe payment summaries every Monday via Gmail"
479
480
  └──────────────────┬───────────────────────┘
480
481
 
481
482
  ┌──────────────────────────────────────────┐
482
- │ 4. validateWorkflow
483
+ │ 4. normalizeTriggerSimpleParam
484
+ │ Set simple=true on trigger nodes │
485
+ └──────────────────┬───────────────────────┘
486
+
487
+ ┌──────────────────────────────────────────┐
488
+ │ 5. correctOptionParameters │
489
+ │ Fix node types, versions, resources, │
490
+ │ and operations against the catalog │
491
+ └──────────────────┬───────────────────────┘
492
+
493
+ ┌──────────────────────────────────────────┐
494
+ │ 6. detectUnknownParameters │
495
+ │ + correctParameterNames (LLM) │
496
+ │ Fix param names not in catalog │
497
+ └──────────────────┬───────────────────────┘
498
+
499
+ ┌──────────────────────────────────────────┐
500
+ │ 7. validateOutputReferences │
501
+ │ + correctFieldReferences (LLM) │
502
+ │ Validate $json expressions against │
503
+ │ output schemas, fix invalid paths │
504
+ └──────────────────┬───────────────────────┘
505
+
506
+ ┌──────────────────────────────────────────┐
507
+ │ 8. ensureExpressionPrefix │
508
+ │ Wrap {{ }} with ={{ }} for n8n │
509
+ └───────��──────────┬───────────────────────┘
510
+
511
+ ┌──────────────────────────────────────────┐
512
+ │ 9. validateWorkflow │
483
513
  │ - nodes array exists, non-empty │
484
514
  │ - connections object valid │
485
515
  │ - required fields on each node │
@@ -492,7 +522,7 @@ User Prompt: "Send me Stripe payment summaries every Monday via Gmail"
492
522
  └──────────────────┬───────────────────────┘
493
523
 
494
524
  ┌──────────────────────────────────────────┐
495
- 5. injectCatalogClarifications
525
+ 10. injectCatalogClarifications
496
526
  │ Check each node against catalog: │
497
527
  │ - validateNodeParameters │
498
528
  │ → missing required params? │
@@ -502,7 +532,7 @@ User Prompt: "Send me Stripe payment summaries every Monday via Gmail"
502
532
  └──────────────────┬───────────────────────┘
503
533
 
504
534
  ┌──────────────────────────────────────────┐
505
- 6. positionNodes
535
+ 11. positionNodes
506
536
  │ BFS layout from trigger nodes: │
507
537
  │ - Triggers at x=250 │
508
538
  │ - Each level: x += 250 │
@@ -847,6 +877,7 @@ src/
847
877
  │ ├── keywordExtraction.ts # System prompt for keyword extraction
848
878
  │ ├── workflowMatching.ts # System prompt for semantic matching
849
879
  │ ├── draftIntent.ts # System prompt for intent classification
880
+ │ ├── parameterCorrection.ts # System prompt for parameter name correction
850
881
  │ └── actionResponse.ts # System prompt for response formatting
851
882
  ├── schemas/
852
883
  │ ├── keywordExtraction.ts # JSON schema for keyword output
@@ -854,6 +885,11 @@ src/
854
885
  │ └── draftIntent.ts # JSON schema for intent output
855
886
  ├── types/
856
887
  │ └── index.ts # All TypeScript interfaces and types
888
+ ├── data/ # Generated data (run `bun run crawl`)
889
+ │ ├── defaultNodes.json # 457 n8n node definitions (types, params, versions)
890
+ │ ├── schemaIndex.json # Output schemas per node/resource/operation
891
+ │ ├── triggerSchemaIndex.json # Trigger output schemas (captured from n8n)
892
+ │ └── langchain-output-schemas.json # Manual overrides for langchain nodes
857
893
  ├── db/
858
894
  │ └── schema.ts # Drizzle ORM schema (PostgreSQL)
859
895
  └── utils/
@@ -862,19 +898,79 @@ src/
862
898
  ├── context.ts # Conversation context builder + user tag naming
863
899
  ├── credentialResolver.ts # 4-step credential resolution chain
864
900
  ├── generation.ts # LLM utilities (extract, generate, match, classify, format)
865
- └── workflow.ts # Validation, positioning, auto-fix
901
+ ├── outputSchema.ts # Output schema validation + expression parsing
902
+ └── workflow.ts # Validation, positioning, corrections, auto-fix
903
+
904
+ scripts/
905
+ ├── crawl.ts # Master crawl (runs all 3 steps below)
906
+ ├── crawl-nodes.ts # Step 1: Extract node defs from n8n-nodes-base
907
+ ├── crawl-schemas.ts # Step 2: Extract output schemas from __schema__/ dirs
908
+ └── capture-trigger-schemas.ts # Step 3: Capture trigger schemas from live n8n
866
909
  ```
867
910
 
868
911
  ---
869
912
 
913
+ ## Data Generation
914
+
915
+ The plugin relies on three generated data files in `src/data/`. These are **not committed to git** — they are regenerated by `bun run crawl`.
916
+
917
+ ### `bun run crawl`
918
+
919
+ Runs three steps:
920
+
921
+ | Step | Script | Generates | Requires |
922
+ |------|--------|-----------|----------|
923
+ | 1/3 | `crawl-nodes.ts` | `defaultNodes.json` — 457 node definitions with parameters, versions, credentials | n8n-nodes-base package |
924
+ | 2/3 | `crawl-schemas.ts` | `schemaIndex.json` — output schemas per node/resource/operation | n8n-nodes-base `__schema__/` dirs + langchain overrides |
925
+ | 3/3 | `capture-trigger-schemas.ts` | `triggerSchemaIndex.json` — trigger output schemas | `N8N_HOST` + `N8N_API_KEY` env vars |
926
+
927
+ **Step 3 is skipped** if `N8N_HOST` / `N8N_API_KEY` are not set (a warning is printed).
928
+
929
+ ### Output Schema System
930
+
931
+ The LLM receives output schemas during workflow generation to prevent hallucinated field paths:
932
+
933
+ - **n8n-nodes-base nodes**: Schemas are crawled from `__schema__/` directories in the npm package
934
+ - **@n8n/n8n-nodes-langchain nodes**: No `__schema__/` dirs exist — schemas are defined in `src/data/langchain-output-schemas.json` and merged at crawl time
935
+ - **Trigger nodes**: Schemas are captured from real n8n executions via `capture-trigger-schemas.ts`
936
+
937
+ The generation prompt includes output schemas for all relevant nodes, so the LLM uses correct field paths like `$json.output[0].content[0].text` instead of inventing wrong ones like `$json.choices[0].message.content`.
938
+
939
+ As a safety net, `validateOutputReferences` checks all `$json` expressions against schemas post-generation and `correctFieldReferences` (LLM) fixes any remaining invalid paths.
940
+
941
+ ---
942
+
870
943
  ## Development
871
944
 
945
+ ### Prerequisites
946
+
947
+ | Requirement | Purpose |
948
+ |-------------|---------|
949
+ | [Bun](https://bun.sh) | Runtime and package manager |
950
+ | `N8N_HOST` | n8n instance URL (for trigger schema capture) |
951
+ | `N8N_API_KEY` | n8n API key (for trigger schema capture) |
952
+
953
+ ### Setup
954
+
955
+ ```bash
956
+ bun install # Install dependencies
957
+ N8N_HOST=https://... N8N_API_KEY=... bun run crawl # Generate data files
958
+ bun run build # Compile TypeScript
959
+ ```
960
+
961
+ ### Commands
962
+
872
963
  ```bash
873
- bun install # install dependencies
874
- bun run build # compile TypeScript
875
- bun test # run tests (162 tests)
876
- bun run lint # lint
877
- bun run format # format
964
+ bun run crawl # Generate all data files (nodes + schemas + triggers)
965
+ bun run crawl:nodes # Generate only defaultNodes.json
966
+ bun run crawl:schemas # Generate only schemaIndex.json
967
+ bun run build # Compile TypeScript
968
+ bun test # Run all tests (~260 tests)
969
+ bun run test:unit # Run unit tests only
970
+ bun run test:integration # Run integration tests only
971
+ bun run test:e2e # Run e2e tests only
972
+ bun run lint # Lint
973
+ bun run format # Format
878
974
  ```
879
975
 
880
976
  ## License
@@ -1,3 +1,9 @@
1
1
  import { type Action } from '@elizaos/core';
2
- export declare const createWorkflowAction: Action;
2
+ export declare const createWorkflowAction: Action & {
3
+ parameters?: Record<string, {
4
+ type: string;
5
+ description: string;
6
+ required?: boolean;
7
+ }>;
8
+ };
3
9
  //# sourceMappingURL=createWorkflow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createWorkflow.d.ts","sourceRoot":"","sources":["../../src/actions/createWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EASZ,MAAM,eAAe,CAAC;AAgNvB,eAAO,MAAM,oBAAoB,EAAE,MA4QlC,CAAC"}
1
+ {"version":3,"file":"createWorkflow.d.ts","sourceRoot":"","sources":["../../src/actions/createWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EASZ,MAAM,eAAe,CAAC;AA0OvB,eAAO,MAAM,oBAAoB,EAAE,MAAM,GAAG;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CA8RxF,CAAC"}
@@ -64,6 +64,24 @@ function buildPreviewData(workflow) {
64
64
  ...(workflow._meta?.suggestions?.length && { suggestions: workflow._meta.suggestions }),
65
65
  };
66
66
  }
67
+ function diffNodeParams(before, after) {
68
+ const changes = {};
69
+ for (const afterNode of after.nodes) {
70
+ const beforeNode = before.nodes.find((n) => n.name === afterNode.name);
71
+ const afterParams = (afterNode.parameters || {});
72
+ const beforeParams = (beforeNode?.parameters || {});
73
+ const nodeChanges = {};
74
+ for (const [key, value] of Object.entries(afterParams)) {
75
+ if (JSON.stringify(value) !== JSON.stringify(beforeParams[key])) {
76
+ nodeChanges[key] = value;
77
+ }
78
+ }
79
+ if (Object.keys(nodeChanges).length > 0) {
80
+ changes[afterNode.name] = nodeChanges;
81
+ }
82
+ }
83
+ return changes;
84
+ }
67
85
  const examples = [
68
86
  [
69
87
  {
@@ -214,6 +232,7 @@ export const createWorkflowAction = {
214
232
  'IMPORTANT: When a workflow draft is pending, this action MUST be used for ANY user response ' +
215
233
  'about the draft — including "yes", "ok", "deploy it", "cancel", or modification requests. ' +
216
234
  'Never reply with text only when a draft is pending.',
235
+ parameters: {},
217
236
  validate: async (runtime) => {
218
237
  return !!runtime.getService(N8N_WORKFLOW_SERVICE_TYPE);
219
238
  },
@@ -242,6 +261,12 @@ export const createWorkflowAction = {
242
261
  existingDraft = undefined;
243
262
  }
244
263
  if (existingDraft) {
264
+ // Guard: if the draft was created by this same message, return silently.
265
+ // No callback = no new output for the multi-step agent to process = it stops looping.
266
+ if (existingDraft.originMessageId && existingDraft.originMessageId === message.id) {
267
+ logger.info({ src: 'plugin:n8n-workflow:action:create' }, 'Same message as draft origin — skipping');
268
+ return { success: true, data: { awaitingUserInput: true } };
269
+ }
245
270
  const intentResult = await classifyDraftIntent(runtime, userText, existingDraft);
246
271
  logger.info({ src: 'plugin:n8n-workflow:action:create' }, `Draft intent: ${intentResult.intent} — ${intentResult.reason}`);
247
272
  // If the draft was awaiting clarification and the user answered, treat "confirm" as "modify"
@@ -267,7 +292,7 @@ export const createWorkflowAction = {
267
292
  if (callback) {
268
293
  await callback({ text, success: true });
269
294
  }
270
- return { success: true };
295
+ return { success: true, data: { awaitingUserInput: true } };
271
296
  }
272
297
  await runtime.deleteCache(cacheKey);
273
298
  const text = await formatActionResponse(runtime, 'DEPLOY_SUCCESS', {
@@ -300,6 +325,7 @@ export const createWorkflowAction = {
300
325
  prompt: existingDraft.prompt,
301
326
  userId,
302
327
  createdAt: Date.now(),
328
+ originMessageId: message.id,
303
329
  };
304
330
  await runtime.setCache(cacheKey, modifiedDraft);
305
331
  if (modifiedWorkflow._meta?.requiresClarification?.length) {
@@ -309,13 +335,18 @@ export const createWorkflowAction = {
309
335
  if (callback) {
310
336
  await callback({ text, success: true });
311
337
  }
312
- return { success: true };
338
+ return { success: true, data: { awaitingUserInput: true } };
339
+ }
340
+ const previewData = buildPreviewData(modifiedWorkflow);
341
+ const changes = diffNodeParams(existingDraft.workflow, modifiedWorkflow);
342
+ if (Object.keys(changes).length > 0) {
343
+ previewData.changes = changes;
313
344
  }
314
- const text = await formatActionResponse(runtime, 'PREVIEW', buildPreviewData(modifiedWorkflow));
345
+ const text = await formatActionResponse(runtime, 'PREVIEW', previewData);
315
346
  if (callback) {
316
347
  await callback({ text, success: true });
317
348
  }
318
- return { success: true };
349
+ return { success: true, data: { awaitingUserInput: true } };
319
350
  }
320
351
  case 'new': {
321
352
  if (!userText) {
@@ -328,7 +359,7 @@ export const createWorkflowAction = {
328
359
  }
329
360
  await runtime.deleteCache(cacheKey);
330
361
  try {
331
- return await generateAndPreview(runtime, service, generationContext, userId, cacheKey, callback);
362
+ return await generateAndPreview(runtime, service, generationContext, userId, cacheKey, message.id ?? '', callback);
332
363
  }
333
364
  catch (genError) {
334
365
  logger.warn({ src: 'plugin:n8n-workflow:action:create' }, `New workflow generation failed — restoring previous draft: ${genError instanceof Error ? genError.message : String(genError)}`);
@@ -340,7 +371,7 @@ export const createWorkflowAction = {
340
371
  if (callback) {
341
372
  await callback({ text, success: true });
342
373
  }
343
- return { success: true };
374
+ return { success: true, data: { awaitingUserInput: true } };
344
375
  }
345
376
  }
346
377
  default: {
@@ -349,7 +380,7 @@ export const createWorkflowAction = {
349
380
  if (callback) {
350
381
  await callback({ text, success: true });
351
382
  }
352
- return { success: true };
383
+ return { success: true, data: { awaitingUserInput: true } };
353
384
  }
354
385
  }
355
386
  }
@@ -360,7 +391,7 @@ export const createWorkflowAction = {
360
391
  }
361
392
  return { success: false };
362
393
  }
363
- return await generateAndPreview(runtime, service, generationContext, userId, cacheKey, callback);
394
+ return await generateAndPreview(runtime, service, generationContext, userId, cacheKey, message.id ?? '', callback);
364
395
  }
365
396
  catch (error) {
366
397
  if (error instanceof UnsupportedIntegrationError) {
@@ -384,7 +415,7 @@ export const createWorkflowAction = {
384
415
  },
385
416
  examples,
386
417
  };
387
- async function generateAndPreview(runtime, service, prompt, userId, cacheKey, callback) {
418
+ async function generateAndPreview(runtime, service, prompt, userId, cacheKey, messageId, callback) {
388
419
  logger.info({ src: 'plugin:n8n-workflow:action:create' }, `Generating workflow from prompt: ${prompt.slice(0, 100)}...`);
389
420
  const workflow = await service.generateWorkflowDraft(prompt);
390
421
  const draft = {
@@ -392,6 +423,7 @@ async function generateAndPreview(runtime, service, prompt, userId, cacheKey, ca
392
423
  prompt,
393
424
  userId,
394
425
  createdAt: Date.now(),
426
+ originMessageId: messageId,
395
427
  };
396
428
  await runtime.setCache(cacheKey, draft);
397
429
  if (workflow._meta?.requiresClarification?.length) {
@@ -401,12 +433,12 @@ async function generateAndPreview(runtime, service, prompt, userId, cacheKey, ca
401
433
  if (callback) {
402
434
  await callback({ text, success: true });
403
435
  }
404
- return { success: true };
436
+ return { success: true, data: { awaitingUserInput: true } };
405
437
  }
406
438
  const text = await formatActionResponse(runtime, 'PREVIEW', buildPreviewData(workflow));
407
439
  if (callback) {
408
440
  await callback({ text, success: true });
409
441
  }
410
- return { success: true };
442
+ return { success: true, data: { awaitingUserInput: true } };
411
443
  }
412
444
  //# sourceMappingURL=createWorkflow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createWorkflow.js","sourceRoot":"","sources":["../../src/actions/createWorkflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createWorkflow.js","sourceRoot":"","sources":["../../src/actions/createWorkflow.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@ export { getExecutionsAction } from './getExecutions';
3
3
  export { activateWorkflowAction } from './activateWorkflow';
4
4
  export { deactivateWorkflowAction } from './deactivateWorkflow';
5
5
  export { deleteWorkflowAction } from './deleteWorkflow';
6
+ export { modifyExistingWorkflowAction } from './modifyExistingWorkflow';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC"}
@@ -3,4 +3,5 @@ export { getExecutionsAction } from './getExecutions';
3
3
  export { activateWorkflowAction } from './activateWorkflow';
4
4
  export { deactivateWorkflowAction } from './deactivateWorkflow';
5
5
  export { deleteWorkflowAction } from './deleteWorkflow';
6
+ export { modifyExistingWorkflowAction } from './modifyExistingWorkflow';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Action } from '@elizaos/core';
2
+ export declare const modifyExistingWorkflowAction: Action;
3
+ //# sourceMappingURL=modifyExistingWorkflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modifyExistingWorkflow.d.ts","sourceRoot":"","sources":["../../src/actions/modifyExistingWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EAQZ,MAAM,eAAe,CAAC;AAuEvB,eAAO,MAAM,4BAA4B,EAAE,MA2K1C,CAAC"}
@@ -0,0 +1,199 @@
1
+ import { logger, } from '@elizaos/core';
2
+ import { N8N_WORKFLOW_SERVICE_TYPE } from '../services/index';
3
+ import { matchWorkflow, formatActionResponse } from '../utils/generation';
4
+ import { buildConversationContext } from '../utils/context';
5
+ const DRAFT_TTL_MS = 30 * 60 * 1000;
6
+ const examples = [
7
+ [
8
+ {
9
+ name: '{{user1}}',
10
+ content: {
11
+ text: 'Modify my email notification workflow',
12
+ },
13
+ },
14
+ {
15
+ name: '{{agent}}',
16
+ content: {
17
+ text: "I'll load that workflow so we can modify it.",
18
+ actions: ['MODIFY_EXISTING_N8N_WORKFLOW'],
19
+ },
20
+ },
21
+ ],
22
+ [
23
+ {
24
+ name: '{{user1}}',
25
+ content: {
26
+ text: 'Can you update the Slack alert automation?',
27
+ },
28
+ },
29
+ {
30
+ name: '{{agent}}',
31
+ content: {
32
+ text: 'Loading the Slack alert workflow for modification.',
33
+ actions: ['MODIFY_EXISTING_N8N_WORKFLOW'],
34
+ },
35
+ },
36
+ ],
37
+ [
38
+ {
39
+ name: '{{user1}}',
40
+ content: {
41
+ text: 'Edit the workflow that sends reports to Proton',
42
+ },
43
+ },
44
+ {
45
+ name: '{{agent}}',
46
+ content: {
47
+ text: "I'll find and load that workflow so you can modify it.",
48
+ actions: ['MODIFY_EXISTING_N8N_WORKFLOW'],
49
+ },
50
+ },
51
+ ],
52
+ [
53
+ {
54
+ name: '{{user1}}',
55
+ content: {
56
+ text: 'I want to change the payment processing workflow',
57
+ },
58
+ },
59
+ {
60
+ name: '{{agent}}',
61
+ content: {
62
+ text: 'Loading the payment workflow for editing.',
63
+ actions: ['MODIFY_EXISTING_N8N_WORKFLOW'],
64
+ },
65
+ },
66
+ ],
67
+ ];
68
+ export const modifyExistingWorkflowAction = {
69
+ name: 'MODIFY_EXISTING_N8N_WORKFLOW',
70
+ similes: [
71
+ 'EDIT_EXISTING_WORKFLOW',
72
+ 'UPDATE_EXISTING_WORKFLOW',
73
+ 'CHANGE_EXISTING_WORKFLOW',
74
+ 'LOAD_WORKFLOW_FOR_EDIT',
75
+ ],
76
+ description: 'Load an existing deployed n8n workflow for modification. ' +
77
+ 'Identifies workflows by name or semantic description and loads them into the draft editor. ' +
78
+ 'After loading, use CREATE_N8N_WORKFLOW to make changes, preview, and redeploy. ' +
79
+ 'Use this when the user wants to modify a workflow that is already deployed.',
80
+ validate: async (runtime) => {
81
+ return !!runtime.getService(N8N_WORKFLOW_SERVICE_TYPE);
82
+ },
83
+ handler: async (runtime, message, state, _options, callback) => {
84
+ const service = runtime.getService(N8N_WORKFLOW_SERVICE_TYPE);
85
+ if (!service) {
86
+ logger.error({ src: 'plugin:n8n-workflow:action:modify-existing' }, 'N8n Workflow service not available');
87
+ if (callback) {
88
+ const text = await formatActionResponse(runtime, 'ERROR', {
89
+ error: 'N8n Workflow service is not available. Check N8N_API_KEY and N8N_HOST.',
90
+ });
91
+ await callback({ text, success: false });
92
+ }
93
+ return { success: false };
94
+ }
95
+ try {
96
+ const userId = message.entityId;
97
+ const cacheKey = `workflow_draft:${userId}`;
98
+ // Check for existing draft — if one exists, user should use CREATE_N8N_WORKFLOW
99
+ const existingDraft = await runtime.getCache(cacheKey);
100
+ if (existingDraft && Date.now() - existingDraft.createdAt < DRAFT_TTL_MS) {
101
+ if (callback) {
102
+ await callback({
103
+ text: 'You already have a workflow draft in progress. ' +
104
+ 'Please confirm, modify, or cancel that draft first before loading another workflow.',
105
+ success: false,
106
+ });
107
+ }
108
+ return { success: false };
109
+ }
110
+ // List user's workflows
111
+ const workflows = await service.listWorkflows(userId);
112
+ if (workflows.length === 0) {
113
+ if (callback) {
114
+ await callback({
115
+ text: 'No deployed workflows found. Would you like to create a new one?',
116
+ success: false,
117
+ });
118
+ }
119
+ return { success: false };
120
+ }
121
+ // Match user's description to a workflow
122
+ const context = buildConversationContext(message, state);
123
+ const matchResult = await matchWorkflow(runtime, context, workflows);
124
+ logger.info({ src: 'plugin:n8n-workflow:action:modify-existing' }, `Workflow match: ${matchResult.matchedWorkflowId || 'none'} (confidence: ${matchResult.confidence})`);
125
+ // No match or low confidence — show available workflows
126
+ if (!matchResult.matchedWorkflowId || matchResult.confidence === 'none') {
127
+ const workflowList = workflows
128
+ .map((wf) => `- "${wf.name}" (${wf.active ? 'active' : 'inactive'})`)
129
+ .join('\n');
130
+ if (callback) {
131
+ await callback({
132
+ text: `I couldn't identify which workflow you want to modify. Here are your workflows:\n\n${workflowList}\n\nPlease specify which one you'd like to edit.`,
133
+ success: false,
134
+ });
135
+ }
136
+ return { success: false };
137
+ }
138
+ // Low confidence — ask for confirmation
139
+ if (matchResult.confidence === 'low') {
140
+ const matchedWorkflow = workflows.find((wf) => wf.id === matchResult.matchedWorkflowId);
141
+ if (callback) {
142
+ await callback({
143
+ text: `Did you mean the workflow "${matchedWorkflow?.name}"? Please confirm or be more specific.`,
144
+ success: false,
145
+ });
146
+ }
147
+ return { success: false };
148
+ }
149
+ // Medium/High confidence — load the workflow
150
+ const workflowId = matchResult.matchedWorkflowId;
151
+ const fullWorkflow = await service.getWorkflow(workflowId);
152
+ logger.info({ src: 'plugin:n8n-workflow:action:modify-existing' }, `Loading workflow "${fullWorkflow.name}" (${fullWorkflow.id}) with ${fullWorkflow.nodes?.length || 0} nodes`);
153
+ // Create draft from the existing workflow
154
+ const draft = {
155
+ workflow: fullWorkflow,
156
+ prompt: `Modify existing workflow: ${fullWorkflow.name}`,
157
+ userId,
158
+ createdAt: Date.now(),
159
+ };
160
+ await runtime.setCache(cacheKey, draft);
161
+ // Build preview data
162
+ const nodes = (fullWorkflow.nodes || []).map((n) => ({
163
+ name: n.name,
164
+ type: n.type.replace('n8n-nodes-base.', ''),
165
+ }));
166
+ const creds = new Set();
167
+ for (const node of fullWorkflow.nodes || []) {
168
+ if (node.credentials) {
169
+ for (const c of Object.keys(node.credentials)) {
170
+ creds.add(c);
171
+ }
172
+ }
173
+ }
174
+ const text = await formatActionResponse(runtime, 'WORKFLOW_LOADED', {
175
+ workflowName: fullWorkflow.name,
176
+ workflowId: fullWorkflow.id,
177
+ active: fullWorkflow.active,
178
+ nodes,
179
+ credentials: [...creds],
180
+ message: 'Workflow loaded for editing. Tell me what changes you want to make.',
181
+ });
182
+ if (callback) {
183
+ await callback({ text, success: true });
184
+ }
185
+ return { success: true, data: { workflowId, awaitingUserInput: true } };
186
+ }
187
+ catch (error) {
188
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
189
+ logger.error({ src: 'plugin:n8n-workflow:action:modify-existing' }, `Failed to load workflow for modification: ${errorMessage}`);
190
+ const text = await formatActionResponse(runtime, 'ERROR', { error: errorMessage });
191
+ if (callback) {
192
+ await callback({ text, success: false });
193
+ }
194
+ return { success: false };
195
+ }
196
+ },
197
+ examples,
198
+ };
199
+ //# sourceMappingURL=modifyExistingWorkflow.js.map