@elizaos/plugin-n8n-workflow 1.0.1

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 (123) hide show
  1. package/README.md +199 -0
  2. package/dist/actions/activateWorkflow.d.ts +4 -0
  3. package/dist/actions/activateWorkflow.d.ts.map +1 -0
  4. package/dist/actions/activateWorkflow.js +116 -0
  5. package/dist/actions/activateWorkflow.js.map +1 -0
  6. package/dist/actions/createWorkflow.d.ts +4 -0
  7. package/dist/actions/createWorkflow.d.ts.map +1 -0
  8. package/dist/actions/createWorkflow.js +141 -0
  9. package/dist/actions/createWorkflow.js.map +1 -0
  10. package/dist/actions/deactivateWorkflow.d.ts +4 -0
  11. package/dist/actions/deactivateWorkflow.d.ts.map +1 -0
  12. package/dist/actions/deactivateWorkflow.js +121 -0
  13. package/dist/actions/deactivateWorkflow.js.map +1 -0
  14. package/dist/actions/deleteWorkflow.d.ts +4 -0
  15. package/dist/actions/deleteWorkflow.d.ts.map +1 -0
  16. package/dist/actions/deleteWorkflow.js +115 -0
  17. package/dist/actions/deleteWorkflow.js.map +1 -0
  18. package/dist/actions/executeWorkflow.d.ts +4 -0
  19. package/dist/actions/executeWorkflow.d.ts.map +1 -0
  20. package/dist/actions/executeWorkflow.js +74 -0
  21. package/dist/actions/executeWorkflow.js.map +1 -0
  22. package/dist/actions/getExecutions.d.ts +4 -0
  23. package/dist/actions/getExecutions.d.ts.map +1 -0
  24. package/dist/actions/getExecutions.js +108 -0
  25. package/dist/actions/getExecutions.js.map +1 -0
  26. package/dist/actions/index.d.ts +9 -0
  27. package/dist/actions/index.d.ts.map +1 -0
  28. package/dist/actions/index.js +9 -0
  29. package/dist/actions/index.js.map +1 -0
  30. package/dist/actions/listCredentials.d.ts +4 -0
  31. package/dist/actions/listCredentials.d.ts.map +1 -0
  32. package/dist/actions/listCredentials.js +102 -0
  33. package/dist/actions/listCredentials.js.map +1 -0
  34. package/dist/actions/listWorkflows.d.ts +4 -0
  35. package/dist/actions/listWorkflows.d.ts.map +1 -0
  36. package/dist/actions/listWorkflows.js +97 -0
  37. package/dist/actions/listWorkflows.js.map +1 -0
  38. package/dist/data/defaultNodes.json +427888 -0
  39. package/dist/index.d.ts +35 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +75 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/prompts/index.d.ts +3 -0
  44. package/dist/prompts/index.d.ts.map +1 -0
  45. package/dist/prompts/index.js +3 -0
  46. package/dist/prompts/index.js.map +1 -0
  47. package/dist/prompts/keywordExtraction.d.ts +6 -0
  48. package/dist/prompts/keywordExtraction.d.ts.map +1 -0
  49. package/dist/prompts/keywordExtraction.js +19 -0
  50. package/dist/prompts/keywordExtraction.js.map +1 -0
  51. package/dist/prompts/workflowGeneration.d.ts +7 -0
  52. package/dist/prompts/workflowGeneration.d.ts.map +1 -0
  53. package/dist/prompts/workflowGeneration.js +330 -0
  54. package/dist/prompts/workflowGeneration.js.map +1 -0
  55. package/dist/prompts/workflowMatching.d.ts +7 -0
  56. package/dist/prompts/workflowMatching.d.ts.map +1 -0
  57. package/dist/prompts/workflowMatching.js +25 -0
  58. package/dist/prompts/workflowMatching.js.map +1 -0
  59. package/dist/providers/activeWorkflows.d.ts +12 -0
  60. package/dist/providers/activeWorkflows.d.ts.map +1 -0
  61. package/dist/providers/activeWorkflows.js +69 -0
  62. package/dist/providers/activeWorkflows.js.map +1 -0
  63. package/dist/providers/index.d.ts +3 -0
  64. package/dist/providers/index.d.ts.map +1 -0
  65. package/dist/providers/index.js +3 -0
  66. package/dist/providers/index.js.map +1 -0
  67. package/dist/providers/workflowStatus.d.ts +4 -0
  68. package/dist/providers/workflowStatus.d.ts.map +1 -0
  69. package/dist/providers/workflowStatus.js +66 -0
  70. package/dist/providers/workflowStatus.js.map +1 -0
  71. package/dist/schemas/index.d.ts +3 -0
  72. package/dist/schemas/index.d.ts.map +1 -0
  73. package/dist/schemas/index.js +3 -0
  74. package/dist/schemas/index.js.map +1 -0
  75. package/dist/schemas/keywordExtraction.d.ts +14 -0
  76. package/dist/schemas/keywordExtraction.d.ts.map +1 -0
  77. package/dist/schemas/keywordExtraction.js +12 -0
  78. package/dist/schemas/keywordExtraction.js.map +1 -0
  79. package/dist/schemas/workflowMatching.d.ts +36 -0
  80. package/dist/schemas/workflowMatching.d.ts.map +1 -0
  81. package/dist/schemas/workflowMatching.js +30 -0
  82. package/dist/schemas/workflowMatching.js.map +1 -0
  83. package/dist/services/index.d.ts +2 -0
  84. package/dist/services/index.d.ts.map +1 -0
  85. package/dist/services/index.js +2 -0
  86. package/dist/services/index.js.map +1 -0
  87. package/dist/services/n8n-workflow-service.d.ts +83 -0
  88. package/dist/services/n8n-workflow-service.d.ts.map +1 -0
  89. package/dist/services/n8n-workflow-service.js +234 -0
  90. package/dist/services/n8n-workflow-service.js.map +1 -0
  91. package/dist/types/index.d.ts +313 -0
  92. package/dist/types/index.d.ts.map +1 -0
  93. package/dist/types/index.js +43 -0
  94. package/dist/types/index.js.map +1 -0
  95. package/dist/utils/api.d.ts +137 -0
  96. package/dist/utils/api.d.ts.map +1 -0
  97. package/dist/utils/api.js +247 -0
  98. package/dist/utils/api.js.map +1 -0
  99. package/dist/utils/catalog.d.ts +22 -0
  100. package/dist/utils/catalog.d.ts.map +1 -0
  101. package/dist/utils/catalog.js +81 -0
  102. package/dist/utils/catalog.js.map +1 -0
  103. package/dist/utils/context.d.ts +8 -0
  104. package/dist/utils/context.d.ts.map +1 -0
  105. package/dist/utils/context.js +17 -0
  106. package/dist/utils/context.js.map +1 -0
  107. package/dist/utils/credentialResolver.d.ts +13 -0
  108. package/dist/utils/credentialResolver.d.ts.map +1 -0
  109. package/dist/utils/credentialResolver.js +177 -0
  110. package/dist/utils/credentialResolver.js.map +1 -0
  111. package/dist/utils/generation.d.ts +46 -0
  112. package/dist/utils/generation.d.ts.map +1 -0
  113. package/dist/utils/generation.js +145 -0
  114. package/dist/utils/generation.js.map +1 -0
  115. package/dist/utils/index.d.ts +6 -0
  116. package/dist/utils/index.d.ts.map +1 -0
  117. package/dist/utils/index.js +11 -0
  118. package/dist/utils/index.js.map +1 -0
  119. package/dist/utils/workflow.d.ts +27 -0
  120. package/dist/utils/workflow.d.ts.map +1 -0
  121. package/dist/utils/workflow.js +289 -0
  122. package/dist/utils/workflow.js.map +1 -0
  123. package/package.json +65 -0
package/README.md ADDED
@@ -0,0 +1,199 @@
1
+ # @elizaos/plugin-n8n-workflow
2
+
3
+ ElizaOS plugin for generating and managing n8n workflows from natural language.
4
+
5
+ ## Features
6
+
7
+ - 🤖 **Natural Language to Workflow**: Generate complete n8n workflows from conversational prompts
8
+ - 🔄 **RAG Pipeline**: Keyword extraction → Node catalog search → LLM generation → Validation
9
+ - 🔌 **Native n8n Nodes**: Uses official n8n nodes (Gmail, Slack, Stripe, etc.)
10
+ - 🔐 **Dual Mode**: Works standalone (local) or with cloud OAuth plugin
11
+ - 📊 **Full Lifecycle**: Create, list, activate, deactivate, delete, execute workflows
12
+ - 🎯 **Auto-positioning**: Intelligent node layout on canvas
13
+ - ✅ **Validation**: Structural validation + auto-fix of workflow JSON
14
+
15
+ ## Installation
16
+
17
+ ```bash
18
+ bun add @elizaos/plugin-n8n-workflow
19
+ ```
20
+
21
+ ## Configuration
22
+
23
+ ### Environment Variables
24
+
25
+ ```env
26
+ N8N_API_KEY=your_n8n_api_key # Required
27
+ N8N_HOST=https://your.n8n.cloud # Required
28
+ ```
29
+
30
+ ### Character Configuration
31
+
32
+ ```json
33
+ {
34
+ "name": "AI Workflow Builder",
35
+ "plugins": ["@elizaos/plugin-n8n-workflow"],
36
+ "settings": {
37
+ "n8n": {
38
+ "apiKey": "env:N8N_API_KEY",
39
+ "host": "env:N8N_HOST"
40
+ }
41
+ }
42
+ }
43
+ ```
44
+
45
+ ## Usage
46
+
47
+ ### Basic Example
48
+
49
+ ```typescript
50
+ import { n8nWorkflowPlugin } from "@elizaos/plugin-n8n-workflow";
51
+ import { AgentRuntime } from "@elizaos/core";
52
+
53
+ const runtime = new AgentRuntime({
54
+ character: myCharacter,
55
+ plugins: [n8nWorkflowPlugin],
56
+ });
57
+
58
+ // User: "Create a workflow that sends me Stripe payment summaries every Monday via Gmail"
59
+ // Agent generates the workflow and deploys it to n8n Cloud
60
+ ```
61
+
62
+ ### Local Mode (Pre-configured Credentials)
63
+
64
+ For users who want to pre-configure n8n credentials:
65
+
66
+ ```json
67
+ {
68
+ "settings": {
69
+ "n8n": {
70
+ "credentials": {
71
+ "gmailOAuth2Api": "cred_gmail_123",
72
+ "stripeApi": "cred_stripe_456"
73
+ }
74
+ }
75
+ }
76
+ }
77
+ ```
78
+
79
+ Use the `LIST_N8N_CREDENTIALS` action to view your credential IDs:
80
+
81
+ ```
82
+ User: "list my n8n credentials"
83
+ Agent: Shows all connected apps with their credential IDs
84
+ ```
85
+
86
+ ### Cloud Mode (with OAuth Plugin)
87
+
88
+ When used with `@eliza-cloud/plugin-oauth`, the plugin automatically handles OAuth flows:
89
+
90
+ ```json
91
+ {
92
+ "plugins": [
93
+ "@eliza-cloud/plugin-oauth",
94
+ "@elizaos/plugin-n8n-workflow"
95
+ ]
96
+ }
97
+ ```
98
+
99
+ ## Actions
100
+
101
+ | Action | Description | Example |
102
+ |--------|-------------|---------|
103
+ | `CREATE_N8N_WORKFLOW` | Generate and deploy workflow | "Create a workflow that..." |
104
+ | `LIST_N8N_WORKFLOWS` | List all workflows | "Show my workflows" |
105
+ | `GET_N8N_EXECUTIONS` | View execution history | "Show runs for workflow X" |
106
+ | `ACTIVATE_N8N_WORKFLOW` | Activate a workflow | "Enable the Gmail workflow" |
107
+ | `DEACTIVATE_N8N_WORKFLOW` | Deactivate a workflow | "Pause the Stripe workflow" |
108
+ | `DELETE_N8N_WORKFLOW` | Delete a workflow | "Delete workflow X" |
109
+ | `EXECUTE_N8N_WORKFLOW` | Manually trigger workflow | "Run the email workflow" |
110
+ | `LIST_N8N_CREDENTIALS` | List n8n credentials (local mode) | "Show my n8n credentials" |
111
+
112
+ ## Architecture
113
+
114
+ ### Code Organization
115
+
116
+ ```
117
+ src/
118
+ ├── utils/
119
+ │ ├── api.ts # n8n API client (REST)
120
+ │ ├── catalog.ts # Node catalog search
121
+ │ ├── generation.ts # LLM keyword extraction + workflow generation
122
+ │ ├── workflow.ts # Validation + auto-positioning
123
+ │ ├── credentialResolver.ts # Credential resolution (3 modes)
124
+ │ └── context.ts # Conversation context builder
125
+ ├── services/
126
+ │ └── n8n-workflow-service.ts
127
+ ├── actions/ # 8 actions (create, list, activate, etc.)
128
+ ├── providers/ # 2 providers (status, active workflows)
129
+ ├── schemas/ # JSON schemas for LLM structured output
130
+ ├── prompts/ # System prompts
131
+ ├── types/ # TypeScript types
132
+ └── data/
133
+ └── defaultNodes.json # 457 n8n node definitions
134
+ ```
135
+
136
+ ### RAG Pipeline
137
+
138
+ ```
139
+ User Prompt
140
+
141
+ 1. Keyword Extraction (LLM - OBJECT_SMALL)
142
+
143
+ 2. Node Catalog Search (Local - 457 nodes)
144
+
145
+ 3. Workflow Generation (LLM - TEXT_LARGE)
146
+
147
+ 4. Validation + Auto-fix
148
+
149
+ 5. Node Positioning (Breadth-first layout)
150
+
151
+ 6. Credential Resolution (3 modes)
152
+
153
+ 7. Deploy to n8n Cloud (REST API)
154
+ ```
155
+
156
+ ### Dual Mode Operation
157
+
158
+ **Local Mode:**
159
+ - Works standalone
160
+ - User manually configures credentials OR pre-configures credential IDs
161
+ - Workflow deployed with placeholders or pre-configured IDs
162
+
163
+ **Cloud Mode:**
164
+ - Integrates with `@eliza-cloud/plugin-oauth` (duck typing)
165
+ - Automatic OAuth flow for app connections
166
+ - Seamless credential injection via n8n API
167
+
168
+ ## Sources
169
+
170
+ This plugin combines patterns from:
171
+ - **n8n-intelligence**: RAG pipeline, keyword extraction, node catalog, workflow generation
172
+ - **n8n-workflow-builder**: n8n API client, validation, positioning, credential management
173
+ - **ElizaOS v2.0.0**: Plugin architecture, ModelType API, services pattern
174
+
175
+ ## Development
176
+
177
+ ```bash
178
+ # Install dependencies
179
+ bun install
180
+
181
+ # Build
182
+ bun run build
183
+
184
+ # Watch mode
185
+ bun run dev
186
+
187
+ # Run tests
188
+ bun test
189
+
190
+ # Lint
191
+ bun run lint
192
+
193
+ # Format
194
+ bun run format
195
+ ```
196
+
197
+ ## License
198
+
199
+ MIT
@@ -0,0 +1,4 @@
1
+ import { type Action } from '@elizaos/core';
2
+ export declare const activateWorkflowAction: Action;
3
+ export default activateWorkflowAction;
4
+ //# sourceMappingURL=activateWorkflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activateWorkflow.d.ts","sourceRoot":"","sources":["../../src/actions/activateWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EAQZ,MAAM,eAAe,CAAC;AAsDvB,eAAO,MAAM,sBAAsB,EAAE,MA4FpC,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
@@ -0,0 +1,116 @@
1
+ import { logger, } from '@elizaos/core';
2
+ import { N8N_WORKFLOW_SERVICE_TYPE } from '../services/index';
3
+ import { matchWorkflow } from '../utils/generation';
4
+ import { buildConversationContext } from '../utils/context';
5
+ const examples = [
6
+ [
7
+ {
8
+ name: '{{user1}}',
9
+ content: {
10
+ text: 'Enable my payment workflow',
11
+ },
12
+ },
13
+ {
14
+ name: '{{agent}}',
15
+ content: {
16
+ text: "I'll activate that workflow for you.",
17
+ actions: ['ACTIVATE_N8N_WORKFLOW'],
18
+ },
19
+ },
20
+ ],
21
+ [
22
+ {
23
+ name: '{{user1}}',
24
+ content: {
25
+ text: 'Turn on the Gmail automation',
26
+ },
27
+ },
28
+ {
29
+ name: '{{agent}}',
30
+ content: {
31
+ text: 'Activating Gmail workflow now.',
32
+ actions: ['ACTIVATE_N8N_WORKFLOW'],
33
+ },
34
+ },
35
+ ],
36
+ [
37
+ {
38
+ name: '{{user1}}',
39
+ content: {
40
+ text: 'Start the Stripe workflow abc123',
41
+ },
42
+ },
43
+ {
44
+ name: '{{agent}}',
45
+ content: {
46
+ text: 'Starting workflow abc123.',
47
+ actions: ['ACTIVATE_N8N_WORKFLOW'],
48
+ },
49
+ },
50
+ ],
51
+ ];
52
+ export const activateWorkflowAction = {
53
+ name: 'ACTIVATE_N8N_WORKFLOW',
54
+ similes: ['ACTIVATE_WORKFLOW', 'ENABLE_WORKFLOW', 'START_WORKFLOW', 'TURN_ON_WORKFLOW'],
55
+ description: 'Activate an n8n workflow to start processing triggers and running automatically. Identifies workflows by ID, name, or semantic description in any language.',
56
+ validate: async (runtime) => {
57
+ const service = runtime.getService(N8N_WORKFLOW_SERVICE_TYPE);
58
+ return !!service;
59
+ },
60
+ handler: async (runtime, message, state, _options, callback) => {
61
+ const service = runtime.getService(N8N_WORKFLOW_SERVICE_TYPE);
62
+ if (!service) {
63
+ logger.error({ src: 'plugin:n8n-workflow:action:activate' }, 'N8n Workflow service not available');
64
+ if (callback) {
65
+ await callback({
66
+ text: 'N8n Workflow service is not available.',
67
+ });
68
+ }
69
+ return { success: false };
70
+ }
71
+ try {
72
+ // Get workflows from state (activeWorkflowsProvider)
73
+ const workflows = state?.data?.workflows || [];
74
+ if (workflows.length === 0) {
75
+ if (callback) {
76
+ await callback({
77
+ text: 'No workflows available to activate.',
78
+ });
79
+ }
80
+ return { success: false };
81
+ }
82
+ const context = buildConversationContext(runtime, message, state);
83
+ const matchResult = await matchWorkflow(runtime, context, workflows);
84
+ if (!matchResult.matchedWorkflowId || matchResult.confidence === 'none') {
85
+ const workflowList = matchResult.matches.map((m) => `- ${m.name} (ID: ${m.id})`).join('\n');
86
+ if (callback) {
87
+ await callback({
88
+ text: `Could not identify which workflow to activate. Available workflows:\n${workflowList}`,
89
+ });
90
+ }
91
+ return { success: false };
92
+ }
93
+ await service.activateWorkflow(matchResult.matchedWorkflowId);
94
+ logger.info({ src: 'plugin:n8n-workflow:action:activate' }, `Activated workflow ${matchResult.matchedWorkflowId}`);
95
+ if (callback) {
96
+ await callback({
97
+ text: '✅ Workflow activated and is now running.',
98
+ });
99
+ }
100
+ return { success: true };
101
+ }
102
+ catch (error) {
103
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
104
+ logger.error({ src: 'plugin:n8n-workflow:action:activate' }, `Failed to activate workflow: ${errorMessage}`);
105
+ if (callback) {
106
+ await callback({
107
+ text: `Failed to activate workflow: ${errorMessage}`,
108
+ });
109
+ }
110
+ return { success: false };
111
+ }
112
+ },
113
+ examples,
114
+ };
115
+ export default activateWorkflowAction;
116
+ //# sourceMappingURL=activateWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activateWorkflow.js","sourceRoot":"","sources":["../../src/actions/activateWorkflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type Action } from '@elizaos/core';
2
+ export declare const createWorkflowAction: Action;
3
+ export default createWorkflowAction;
4
+ //# sourceMappingURL=createWorkflow.d.ts.map
@@ -0,0 +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;AAmDvB,eAAO,MAAM,oBAAoB,EAAE,MA6HlC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,141 @@
1
+ import { logger, } from '@elizaos/core';
2
+ import { N8N_WORKFLOW_SERVICE_TYPE } from '../services/index';
3
+ const examples = [
4
+ [
5
+ {
6
+ name: '{{user1}}',
7
+ content: {
8
+ text: 'Create a workflow that sends me Stripe payment summaries every Monday via Gmail',
9
+ },
10
+ },
11
+ {
12
+ name: '{{agent}}',
13
+ content: {
14
+ text: "I'll create an n8n workflow that fetches Stripe payments weekly and emails you a summary via Gmail.",
15
+ actions: ['CREATE_N8N_WORKFLOW'],
16
+ },
17
+ },
18
+ ],
19
+ [
20
+ {
21
+ name: '{{user1}}',
22
+ content: {
23
+ text: 'Build a workflow to notify me on Slack when a new GitHub issue is created',
24
+ },
25
+ },
26
+ {
27
+ name: '{{agent}}',
28
+ content: {
29
+ text: 'Creating a workflow that monitors GitHub for new issues and sends Slack notifications.',
30
+ actions: ['CREATE_N8N_WORKFLOW'],
31
+ },
32
+ },
33
+ ],
34
+ [
35
+ {
36
+ name: '{{user1}}',
37
+ content: {
38
+ text: 'Set up automation to save Gmail attachments to Google Drive',
39
+ },
40
+ },
41
+ {
42
+ name: '{{agent}}',
43
+ content: {
44
+ text: "I'll build an n8n workflow that watches for Gmail attachments and automatically saves them to Google Drive.",
45
+ actions: ['CREATE_N8N_WORKFLOW'],
46
+ },
47
+ },
48
+ ],
49
+ ];
50
+ export const createWorkflowAction = {
51
+ name: 'CREATE_N8N_WORKFLOW',
52
+ similes: [
53
+ 'CREATE_WORKFLOW',
54
+ 'BUILD_WORKFLOW',
55
+ 'GENERATE_WORKFLOW',
56
+ 'MAKE_AUTOMATION',
57
+ 'CREATE_AUTOMATION',
58
+ 'BUILD_N8N_WORKFLOW',
59
+ 'SETUP_WORKFLOW',
60
+ ],
61
+ description: 'Generate and deploy an n8n workflow from a natural language description. ' +
62
+ 'The workflow will be created using native n8n nodes (Gmail, Slack, Stripe, etc.) ' +
63
+ 'and deployed to n8n Cloud. Use this action when the user wants to automate a task ' +
64
+ 'or create an integration between different services.',
65
+ validate: async (runtime) => {
66
+ return !!runtime.getService(N8N_WORKFLOW_SERVICE_TYPE);
67
+ },
68
+ handler: async (runtime, message, _state, _options, callback) => {
69
+ const service = runtime.getService(N8N_WORKFLOW_SERVICE_TYPE);
70
+ if (!service) {
71
+ logger.error({ src: 'plugin:n8n-workflow:action:create' }, 'N8n Workflow service not available');
72
+ if (callback) {
73
+ await callback({
74
+ text: 'N8n Workflow service is not available. Please ensure the plugin is properly configured with N8N_API_KEY and N8N_HOST.',
75
+ });
76
+ }
77
+ return { success: false };
78
+ }
79
+ try {
80
+ const content = message.content;
81
+ const prompt = (content.text ?? '').trim();
82
+ if (!prompt) {
83
+ logger.error({ src: 'plugin:n8n-workflow:action:create' }, 'No prompt provided for workflow creation');
84
+ if (callback) {
85
+ await callback({
86
+ text: 'Please provide a description of the workflow you want to create.',
87
+ });
88
+ }
89
+ return { success: false };
90
+ }
91
+ logger.info({ src: 'plugin:n8n-workflow:action:create' }, `Creating workflow from prompt: ${prompt.slice(0, 100)}...`);
92
+ if (callback) {
93
+ await callback({
94
+ text: 'Analyzing your request and searching for relevant n8n nodes...',
95
+ });
96
+ }
97
+ // Create workflow using the service's RAG pipeline
98
+ const result = await service.createWorkflowFromPrompt(prompt, message.entityId);
99
+ logger.info({ src: 'plugin:n8n-workflow:action:create' }, `Workflow created successfully: ${result.id} (${result.nodeCount} nodes)`);
100
+ // Build response message
101
+ let responseText = `✅ Workflow "${result.name}" created successfully!\n\n`;
102
+ responseText += `**Workflow ID:** ${result.id}\n`;
103
+ responseText += `**Nodes:** ${result.nodeCount}\n`;
104
+ responseText += `**Status:** ${result.active ? 'Active' : 'Inactive'}\n`;
105
+ if (result.missingCredentials.length > 0) {
106
+ responseText += '\n⚠️ **Action Required:**\n';
107
+ responseText += 'Please connect the following services in n8n Cloud:\n';
108
+ for (const credType of result.missingCredentials) {
109
+ responseText += `- ${credType}\n`;
110
+ }
111
+ responseText +=
112
+ '\nThe workflow will be ready to run once these connections are configured.';
113
+ }
114
+ else {
115
+ responseText += '\n✅ All credentials configured - workflow is ready to run!';
116
+ }
117
+ if (callback) {
118
+ await callback({
119
+ text: responseText,
120
+ });
121
+ }
122
+ return {
123
+ success: true,
124
+ data: result,
125
+ };
126
+ }
127
+ catch (error) {
128
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
129
+ logger.error({ src: 'plugin:n8n-workflow:action:create' }, `Failed to create workflow: ${errorMessage}`);
130
+ if (callback) {
131
+ await callback({
132
+ text: `Failed to create workflow: ${errorMessage}\n\nPlease try rephrasing your request or being more specific about the integrations you want to use.`,
133
+ });
134
+ }
135
+ return { success: false };
136
+ }
137
+ },
138
+ examples,
139
+ };
140
+ export default createWorkflowAction;
141
+ //# sourceMappingURL=createWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createWorkflow.js","sourceRoot":"","sources":["../../src/actions/createWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,MAAM,GAGP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,yBAAyB,EAA2B,MAAM,mBAAmB,CAAC;AAEvF,MAAM,QAAQ,GAAsB;IAClC;QACE;YACE,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE;gBACP,IAAI,EAAE,iFAAiF;aACxF;SACF;QACD;YACE,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE;gBACP,IAAI,EAAE,qGAAqG;gBAC3G,OAAO,EAAE,CAAC,qBAAqB,CAAC;aACjC;SACF;KACF;IACD;QACE;YACE,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE;gBACP,IAAI,EAAE,2EAA2E;aAClF;SACF;QACD;YACE,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE;gBACP,IAAI,EAAE,wFAAwF;gBAC9F,OAAO,EAAE,CAAC,qBAAqB,CAAC;aACjC;SACF;KACF;IACD;QACE;YACE,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE;gBACP,IAAI,EAAE,6DAA6D;aACpE;SACF;QACD;YACE,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE;gBACP,IAAI,EAAE,6GAA6G;gBACnH,OAAO,EAAE,CAAC,qBAAqB,CAAC;aACjC;SACF;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAW;IAC1C,IAAI,EAAE,qBAAqB;IAC3B,OAAO,EAAE;QACP,iBAAiB;QACjB,gBAAgB;QAChB,mBAAmB;QACnB,iBAAiB;QACjB,mBAAmB;QACnB,oBAAoB;QACpB,gBAAgB;KACjB;IACD,WAAW,EACT,2EAA2E;QAC3E,mFAAmF;QACnF,oFAAoF;QACpF,sDAAsD;IAExD,QAAQ,EAAE,KAAK,EAAE,OAAsB,EAAoB,EAAE;QAC3D,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,EAAE,KAAK,EACZ,OAAsB,EACtB,OAAe,EACf,MAAyB,EACzB,QAAkB,EAClB,QAA0B,EACH,EAAE;QACzB,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAqB,yBAAyB,CAAC,CAAC;QAElF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CACV,EAAE,GAAG,EAAE,mCAAmC,EAAE,EAC5C,oCAAoC,CACrC,CAAC;YACF,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,QAAQ,CAAC;oBACb,IAAI,EAAE,uHAAuH;iBAC9H,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,OAAO,CAAC,OAAkB,CAAC;YAC3C,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAE3C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,CAAC,KAAK,CACV,EAAE,GAAG,EAAE,mCAAmC,EAAE,EAC5C,0CAA0C,CAC3C,CAAC;gBACF,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,QAAQ,CAAC;wBACb,IAAI,EAAE,kEAAkE;qBACzE,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAC5B,CAAC;YAED,MAAM,CAAC,IAAI,CACT,EAAE,GAAG,EAAE,mCAAmC,EAAE,EAC5C,kCAAkC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAC5D,CAAC;YAEF,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,QAAQ,CAAC;oBACb,IAAI,EAAE,gEAAgE;iBACvE,CAAC,CAAC;YACL,CAAC;YAED,mDAAmD;YACnD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEhF,MAAM,CAAC,IAAI,CACT,EAAE,GAAG,EAAE,mCAAmC,EAAE,EAC5C,kCAAkC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS,SAAS,CAC1E,CAAC;YAEF,yBAAyB;YACzB,IAAI,YAAY,GAAG,eAAe,MAAM,CAAC,IAAI,6BAA6B,CAAC;YAC3E,YAAY,IAAI,oBAAoB,MAAM,CAAC,EAAE,IAAI,CAAC;YAClD,YAAY,IAAI,cAAc,MAAM,CAAC,SAAS,IAAI,CAAC;YACnD,YAAY,IAAI,eAAe,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC;YAEzE,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzC,YAAY,IAAI,8BAA8B,CAAC;gBAC/C,YAAY,IAAI,uDAAuD,CAAC;gBACxE,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;oBACjD,YAAY,IAAI,KAAK,QAAQ,IAAI,CAAC;gBACpC,CAAC;gBACD,YAAY;oBACV,4EAA4E,CAAC;YACjF,CAAC;iBAAM,CAAC;gBACN,YAAY,IAAI,4DAA4D,CAAC;YAC/E,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,QAAQ,CAAC;oBACb,IAAI,EAAE,YAAY;iBACnB,CAAC,CAAC;YACL,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,MAAM,CAAC,KAAK,CACV,EAAE,GAAG,EAAE,mCAAmC,EAAE,EAC5C,8BAA8B,YAAY,EAAE,CAC7C,CAAC;YAEF,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,QAAQ,CAAC;oBACb,IAAI,EAAE,8BAA8B,YAAY,uGAAuG;iBACxJ,CAAC,CAAC;YACL,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,QAAQ;CACT,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type Action } from '@elizaos/core';
2
+ export declare const deactivateWorkflowAction: Action;
3
+ export default deactivateWorkflowAction;
4
+ //# sourceMappingURL=deactivateWorkflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deactivateWorkflow.d.ts","sourceRoot":"","sources":["../../src/actions/deactivateWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EAQZ,MAAM,eAAe,CAAC;AAsDvB,eAAO,MAAM,wBAAwB,EAAE,MAiGtC,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
@@ -0,0 +1,121 @@
1
+ import { logger, } from '@elizaos/core';
2
+ import { N8N_WORKFLOW_SERVICE_TYPE } from '../services/index';
3
+ import { matchWorkflow } from '../utils/generation';
4
+ import { buildConversationContext } from '../utils/context';
5
+ const examples = [
6
+ [
7
+ {
8
+ name: '{{user1}}',
9
+ content: {
10
+ text: 'Pause my Stripe workflow',
11
+ },
12
+ },
13
+ {
14
+ name: '{{agent}}',
15
+ content: {
16
+ text: "I'll deactivate that workflow for you.",
17
+ actions: ['DEACTIVATE_N8N_WORKFLOW'],
18
+ },
19
+ },
20
+ ],
21
+ [
22
+ {
23
+ name: '{{user1}}',
24
+ content: {
25
+ text: 'Stop the email automation',
26
+ },
27
+ },
28
+ {
29
+ name: '{{agent}}',
30
+ content: {
31
+ text: 'Stopping email workflow.',
32
+ actions: ['DEACTIVATE_N8N_WORKFLOW'],
33
+ },
34
+ },
35
+ ],
36
+ [
37
+ {
38
+ name: '{{user1}}',
39
+ content: {
40
+ text: 'Turn off workflow xyz789',
41
+ },
42
+ },
43
+ {
44
+ name: '{{agent}}',
45
+ content: {
46
+ text: 'Deactivating workflow xyz789.',
47
+ actions: ['DEACTIVATE_N8N_WORKFLOW'],
48
+ },
49
+ },
50
+ ],
51
+ ];
52
+ export const deactivateWorkflowAction = {
53
+ name: 'DEACTIVATE_N8N_WORKFLOW',
54
+ similes: [
55
+ 'DEACTIVATE_WORKFLOW',
56
+ 'DISABLE_WORKFLOW',
57
+ 'STOP_WORKFLOW',
58
+ 'PAUSE_WORKFLOW',
59
+ 'TURN_OFF_WORKFLOW',
60
+ ],
61
+ description: 'Deactivate an n8n workflow to stop it from processing triggers and running automatically. Identifies workflows by ID, name, or semantic description in any language.',
62
+ validate: async (runtime) => {
63
+ const service = runtime.getService(N8N_WORKFLOW_SERVICE_TYPE);
64
+ return !!service;
65
+ },
66
+ handler: async (runtime, message, state, _options, callback) => {
67
+ const service = runtime.getService(N8N_WORKFLOW_SERVICE_TYPE);
68
+ if (!service) {
69
+ logger.error({ src: 'plugin:n8n-workflow:action:deactivate' }, 'N8n Workflow service not available');
70
+ if (callback) {
71
+ await callback({
72
+ text: 'N8n Workflow service is not available.',
73
+ });
74
+ }
75
+ return { success: false };
76
+ }
77
+ try {
78
+ const workflows = state?.data?.workflows || [];
79
+ if (workflows.length === 0) {
80
+ if (callback) {
81
+ await callback({
82
+ text: 'No workflows available to deactivate.',
83
+ });
84
+ }
85
+ return { success: false };
86
+ }
87
+ const context = buildConversationContext(runtime, message, state);
88
+ const matchResult = await matchWorkflow(runtime, context, workflows);
89
+ if (!matchResult.matchedWorkflowId || matchResult.confidence === 'none') {
90
+ const workflowList = matchResult.matches.map((m) => `- ${m.name} (ID: ${m.id})`).join('\n');
91
+ if (callback) {
92
+ await callback({
93
+ text: `Could not identify which workflow to deactivate. Available workflows:\n${workflowList}`,
94
+ });
95
+ }
96
+ return { success: false };
97
+ }
98
+ await service.deactivateWorkflow(matchResult.matchedWorkflowId);
99
+ logger.info({ src: 'plugin:n8n-workflow:action:deactivate' }, `Deactivated workflow ${matchResult.matchedWorkflowId}`);
100
+ if (callback) {
101
+ await callback({
102
+ text: '⏸️ Workflow deactivated and will no longer run automatically.',
103
+ });
104
+ }
105
+ return { success: true };
106
+ }
107
+ catch (error) {
108
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
109
+ logger.error({ src: 'plugin:n8n-workflow:action:deactivate' }, `Failed to deactivate workflow: ${errorMessage}`);
110
+ if (callback) {
111
+ await callback({
112
+ text: `Failed to deactivate workflow: ${errorMessage}`,
113
+ });
114
+ }
115
+ return { success: false };
116
+ }
117
+ },
118
+ examples,
119
+ };
120
+ export default deactivateWorkflowAction;
121
+ //# sourceMappingURL=deactivateWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deactivateWorkflow.js","sourceRoot":"","sources":["../../src/actions/deactivateWorkflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type Action } from '@elizaos/core';
2
+ export declare const deleteWorkflowAction: Action;
3
+ export default deleteWorkflowAction;
4
+ //# sourceMappingURL=deleteWorkflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteWorkflow.d.ts","sourceRoot":"","sources":["../../src/actions/deleteWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EAQZ,MAAM,eAAe,CAAC;AAsDvB,eAAO,MAAM,oBAAoB,EAAE,MA2FlC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}