@n8n/instance-ai 1.3.5 → 1.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 (195) hide show
  1. package/dist/agent/credential-guardrails.prompt.d.ts +1 -0
  2. package/dist/agent/credential-guardrails.prompt.js +5 -0
  3. package/dist/agent/credential-guardrails.prompt.js.map +1 -0
  4. package/dist/agent/instance-agent.js +0 -1
  5. package/dist/agent/instance-agent.js.map +1 -1
  6. package/dist/agent/shared-prompts.d.ts +4 -0
  7. package/dist/agent/shared-prompts.js +17 -0
  8. package/dist/agent/shared-prompts.js.map +1 -0
  9. package/dist/agent/sub-agent-debriefing.d.ts +2 -2
  10. package/dist/agent/sub-agent-factory.d.ts +1 -1
  11. package/dist/agent/sub-agent-factory.js +7 -7
  12. package/dist/agent/sub-agent-factory.js.map +1 -1
  13. package/dist/agent/system-prompt.js +56 -29
  14. package/dist/agent/system-prompt.js.map +1 -1
  15. package/dist/build.tsbuildinfo +1 -1
  16. package/dist/constants/max-steps.d.ts +1 -1
  17. package/dist/constants/max-steps.js +1 -1
  18. package/dist/constants/max-steps.js.map +1 -1
  19. package/dist/constants/model-settings.d.ts +3 -0
  20. package/dist/constants/model-settings.js +7 -0
  21. package/dist/constants/model-settings.js.map +1 -0
  22. package/dist/index.d.ts +9 -3
  23. package/dist/index.js +10 -2
  24. package/dist/index.js.map +1 -1
  25. package/dist/logger.d.ts +6 -0
  26. package/dist/planned-tasks/planned-task-permissions.d.ts +2 -0
  27. package/dist/planned-tasks/planned-task-permissions.js +8 -2
  28. package/dist/planned-tasks/planned-task-permissions.js.map +1 -1
  29. package/dist/planned-tasks/planned-task-service.d.ts +14 -1
  30. package/dist/planned-tasks/planned-task-service.js +138 -2
  31. package/dist/planned-tasks/planned-task-service.js.map +1 -1
  32. package/dist/runtime/background-task-manager.d.ts +25 -1
  33. package/dist/runtime/background-task-manager.js +66 -2
  34. package/dist/runtime/background-task-manager.js.map +1 -1
  35. package/dist/runtime/builder-sandbox-session-registry.d.ts +45 -0
  36. package/dist/runtime/builder-sandbox-session-registry.js +159 -0
  37. package/dist/runtime/builder-sandbox-session-registry.js.map +1 -0
  38. package/dist/runtime/run-state-registry.d.ts +7 -4
  39. package/dist/runtime/run-state-registry.js +9 -0
  40. package/dist/runtime/run-state-registry.js.map +1 -1
  41. package/dist/storage/agent-tree-snapshot.d.ts +2 -0
  42. package/dist/storage/planned-task-storage.js +2 -1
  43. package/dist/storage/planned-task-storage.js.map +1 -1
  44. package/dist/storage/workflow-loop-storage.d.ts +292 -12
  45. package/dist/stream/consume-with-hitl.d.ts +1 -0
  46. package/dist/stream/consume-with-hitl.js +1 -0
  47. package/dist/stream/consume-with-hitl.js.map +1 -1
  48. package/dist/tools/credentials.tool.js +20 -3
  49. package/dist/tools/credentials.tool.js.map +1 -1
  50. package/dist/tools/data-tables.tool.js +60 -22
  51. package/dist/tools/data-tables.tool.js.map +1 -1
  52. package/dist/tools/executions.tool.js +4 -1
  53. package/dist/tools/executions.tool.js.map +1 -1
  54. package/dist/tools/index.d.ts +1 -2
  55. package/dist/tools/index.js +2 -3
  56. package/dist/tools/index.js.map +1 -1
  57. package/dist/tools/nodes/suggested-nodes-data.js +1 -1
  58. package/dist/tools/nodes/suggested-nodes-data.js.map +1 -1
  59. package/dist/tools/nodes.tool.js +25 -13
  60. package/dist/tools/nodes.tool.js.map +1 -1
  61. package/dist/tools/orchestration/add-plan-item.tool.js +3 -1
  62. package/dist/tools/orchestration/add-plan-item.tool.js.map +1 -1
  63. package/dist/tools/orchestration/blueprint-accumulator.d.ts +4 -1
  64. package/dist/tools/orchestration/blueprint-accumulator.js +28 -0
  65. package/dist/tools/orchestration/blueprint-accumulator.js.map +1 -1
  66. package/dist/tools/orchestration/blueprint.schema.d.ts +60 -15
  67. package/dist/tools/orchestration/blueprint.schema.js +15 -1
  68. package/dist/tools/orchestration/blueprint.schema.js.map +1 -1
  69. package/dist/tools/orchestration/browser-credential-setup.prompt.d.ts +13 -0
  70. package/dist/tools/orchestration/browser-credential-setup.prompt.js +140 -0
  71. package/dist/tools/orchestration/browser-credential-setup.prompt.js.map +1 -0
  72. package/dist/tools/orchestration/browser-credential-setup.tool.d.ts +1 -0
  73. package/dist/tools/orchestration/browser-credential-setup.tool.js +8 -139
  74. package/dist/tools/orchestration/browser-credential-setup.tool.js.map +1 -1
  75. package/dist/tools/orchestration/build-workflow-agent.prompt.js +137 -239
  76. package/dist/tools/orchestration/build-workflow-agent.prompt.js.map +1 -1
  77. package/dist/tools/orchestration/build-workflow-agent.tool.d.ts +51 -3
  78. package/dist/tools/orchestration/build-workflow-agent.tool.js +842 -269
  79. package/dist/tools/orchestration/build-workflow-agent.tool.js.map +1 -1
  80. package/dist/tools/orchestration/builder-memory-compaction.d.ts +38 -0
  81. package/dist/tools/orchestration/builder-memory-compaction.js +146 -0
  82. package/dist/tools/orchestration/builder-memory-compaction.js.map +1 -0
  83. package/dist/tools/orchestration/complete-checkpoint.tool.d.ts +2 -0
  84. package/dist/tools/orchestration/complete-checkpoint.tool.js +76 -0
  85. package/dist/tools/orchestration/complete-checkpoint.tool.js.map +1 -0
  86. package/dist/tools/orchestration/data-table-agent.prompt.d.ts +1 -1
  87. package/dist/tools/orchestration/data-table-agent.prompt.js +4 -6
  88. package/dist/tools/orchestration/data-table-agent.prompt.js.map +1 -1
  89. package/dist/tools/orchestration/data-table-agent.tool.js +34 -18
  90. package/dist/tools/orchestration/data-table-agent.tool.js.map +1 -1
  91. package/dist/tools/orchestration/delegate.tool.js +33 -17
  92. package/dist/tools/orchestration/delegate.tool.js.map +1 -1
  93. package/dist/tools/orchestration/plan-agent-prompt.d.ts +1 -1
  94. package/dist/tools/orchestration/plan-agent-prompt.js +17 -17
  95. package/dist/tools/orchestration/plan-agent-prompt.js.map +1 -1
  96. package/dist/tools/orchestration/plan-with-agent.tool.d.ts +8 -0
  97. package/dist/tools/orchestration/plan-with-agent.tool.js +43 -12
  98. package/dist/tools/orchestration/plan-with-agent.tool.js.map +1 -1
  99. package/dist/tools/orchestration/plan.tool.js +82 -2
  100. package/dist/tools/orchestration/plan.tool.js.map +1 -1
  101. package/dist/tools/orchestration/report-verification-verdict.tool.d.ts +40 -2
  102. package/dist/tools/orchestration/report-verification-verdict.tool.js +89 -7
  103. package/dist/tools/orchestration/report-verification-verdict.tool.js.map +1 -1
  104. package/dist/tools/orchestration/research-agent-prompt.d.ts +1 -1
  105. package/dist/tools/orchestration/research-agent-prompt.js +2 -4
  106. package/dist/tools/orchestration/research-agent-prompt.js.map +1 -1
  107. package/dist/tools/orchestration/research-with-agent.tool.js +33 -17
  108. package/dist/tools/orchestration/research-with-agent.tool.js.map +1 -1
  109. package/dist/tools/orchestration/verify-built-workflow.tool.d.ts +8 -2
  110. package/dist/tools/orchestration/verify-built-workflow.tool.js +476 -6
  111. package/dist/tools/orchestration/verify-built-workflow.tool.js.map +1 -1
  112. package/dist/tools/research.tool.js +2 -2
  113. package/dist/tools/research.tool.js.map +1 -1
  114. package/dist/tools/shared/ask-user.tool.js +2 -1
  115. package/dist/tools/shared/ask-user.tool.js.map +1 -1
  116. package/dist/tools/templates.tool.js +5 -90
  117. package/dist/tools/templates.tool.js.map +1 -1
  118. package/dist/tools/web-research/sanitize-web-content.d.ts +0 -1
  119. package/dist/tools/web-research/sanitize-web-content.js +0 -9
  120. package/dist/tools/web-research/sanitize-web-content.js.map +1 -1
  121. package/dist/tools/workflows/apply-workflow-credentials.tool.d.ts +2 -2
  122. package/dist/tools/workflows/build-workflow.tool.d.ts +8 -8
  123. package/dist/tools/workflows/build-workflow.tool.js +14 -2
  124. package/dist/tools/workflows/build-workflow.tool.js.map +1 -1
  125. package/dist/tools/workflows/materialize-node-type.tool.d.ts +8 -8
  126. package/dist/tools/workflows/resolve-credentials.js +6 -6
  127. package/dist/tools/workflows/resolve-credentials.js.map +1 -1
  128. package/dist/tools/workflows/setup-workflow.service.js +3 -2
  129. package/dist/tools/workflows/setup-workflow.service.js.map +1 -1
  130. package/dist/tools/workflows/submit-workflow-identity.d.ts +35 -0
  131. package/dist/tools/workflows/submit-workflow-identity.js +154 -0
  132. package/dist/tools/workflows/submit-workflow-identity.js.map +1 -0
  133. package/dist/tools/workflows/submit-workflow.tool.d.ts +82 -3
  134. package/dist/tools/workflows/submit-workflow.tool.js +114 -35
  135. package/dist/tools/workflows/submit-workflow.tool.js.map +1 -1
  136. package/dist/tracing/langsmith-tracing.d.ts +12 -0
  137. package/dist/tracing/langsmith-tracing.js +35 -3
  138. package/dist/tracing/langsmith-tracing.js.map +1 -1
  139. package/dist/tracing/trace-replay.d.ts +3 -0
  140. package/dist/tracing/trace-replay.js +65 -0
  141. package/dist/tracing/trace-replay.js.map +1 -1
  142. package/dist/types.d.ts +82 -12
  143. package/dist/utils/eval-agents.js +4 -2
  144. package/dist/utils/eval-agents.js.map +1 -1
  145. package/dist/workflow-builder/parse-validate.d.ts +5 -1
  146. package/dist/workflow-builder/parse-validate.js +4 -3
  147. package/dist/workflow-builder/parse-validate.js.map +1 -1
  148. package/dist/workflow-loop/guidance.js +15 -5
  149. package/dist/workflow-loop/guidance.js.map +1 -1
  150. package/dist/workflow-loop/index.d.ts +3 -2
  151. package/dist/workflow-loop/index.js +9 -1
  152. package/dist/workflow-loop/index.js.map +1 -1
  153. package/dist/workflow-loop/remediation.d.ts +13 -0
  154. package/dist/workflow-loop/remediation.js +36 -0
  155. package/dist/workflow-loop/remediation.js.map +1 -0
  156. package/dist/workflow-loop/runtime.js +7 -0
  157. package/dist/workflow-loop/runtime.js.map +1 -1
  158. package/dist/workflow-loop/workflow-loop-controller.d.ts +1 -1
  159. package/dist/workflow-loop/workflow-loop-controller.js +196 -29
  160. package/dist/workflow-loop/workflow-loop-controller.js.map +1 -1
  161. package/dist/workflow-loop/workflow-loop-state.d.ts +338 -8
  162. package/dist/workflow-loop/workflow-loop-state.js +44 -1
  163. package/dist/workflow-loop/workflow-loop-state.js.map +1 -1
  164. package/dist/workflow-loop/workflow-task-service.d.ts +2 -1
  165. package/dist/workflow-loop/workflow-task-service.js +4 -0
  166. package/dist/workflow-loop/workflow-task-service.js.map +1 -1
  167. package/dist/workspace/builder-sandbox-factory.d.ts +6 -1
  168. package/dist/workspace/builder-sandbox-factory.js +115 -26
  169. package/dist/workspace/builder-sandbox-factory.js.map +1 -1
  170. package/dist/workspace/create-workspace.d.ts +2 -0
  171. package/dist/workspace/create-workspace.js.map +1 -1
  172. package/dist/workspace/pack-workspace-sdk.d.ts +9 -0
  173. package/dist/workspace/pack-workspace-sdk.js +80 -0
  174. package/dist/workspace/pack-workspace-sdk.js.map +1 -0
  175. package/dist/workspace/sandbox-fs.d.ts +1 -1
  176. package/dist/workspace/sandbox-fs.js +3 -1
  177. package/dist/workspace/sandbox-fs.js.map +1 -1
  178. package/dist/workspace/sandbox-setup.js +83 -19
  179. package/dist/workspace/sandbox-setup.js.map +1 -1
  180. package/dist/workspace/snapshot-manager.d.ts +14 -2
  181. package/dist/workspace/snapshot-manager.js +57 -1
  182. package/dist/workspace/snapshot-manager.js.map +1 -1
  183. package/package.json +15 -8
  184. package/dist/tools/templates/template-api.d.ts +0 -21
  185. package/dist/tools/templates/template-api.js +0 -104
  186. package/dist/tools/templates/template-api.js.map +0 -1
  187. package/dist/tools/templates/types.d.ts +0 -52
  188. package/dist/tools/templates/types.js +0 -37
  189. package/dist/tools/templates/types.js.map +0 -1
  190. package/dist/tools/utils/mermaid.utils.d.ts +0 -15
  191. package/dist/tools/utils/mermaid.utils.js +0 -622
  192. package/dist/tools/utils/mermaid.utils.js.map +0 -1
  193. package/dist/tools/utils/node-configuration.utils.d.ts +0 -6
  194. package/dist/tools/utils/node-configuration.utils.js +0 -77
  195. package/dist/tools/utils/node-configuration.utils.js.map +0 -1
@@ -6,13 +6,25 @@ const sandbox_setup_1 = require("./sandbox-setup");
6
6
  function b64(s) {
7
7
  return Buffer.from(s, 'utf-8').toString('base64');
8
8
  }
9
+ function isAlreadyExistsError(error) {
10
+ if (!(error instanceof sdk_1.DaytonaError))
11
+ return false;
12
+ if (error.statusCode === 409)
13
+ return true;
14
+ return /already exists/i.test(error.message);
15
+ }
9
16
  class SnapshotManager {
10
17
  baseImage;
11
18
  logger;
19
+ n8nVersion;
20
+ errorReporter;
12
21
  cachedImage = null;
13
- constructor(baseImage, logger) {
22
+ snapshotPromise = null;
23
+ constructor(baseImage, logger, n8nVersion, errorReporter) {
14
24
  this.baseImage = baseImage;
15
25
  this.logger = logger;
26
+ this.n8nVersion = n8nVersion;
27
+ this.errorReporter = errorReporter;
16
28
  }
17
29
  ensureImage() {
18
30
  if (this.cachedImage)
@@ -28,8 +40,52 @@ class SnapshotManager {
28
40
  });
29
41
  return this.cachedImage;
30
42
  }
43
+ async createSnapshot(daytona, options) {
44
+ const name = this.snapshotName();
45
+ try {
46
+ await daytona.snapshot.create({ name, image: this.ensureImage() }, options);
47
+ this.logger.info('Created versioned Daytona snapshot', { name });
48
+ return name;
49
+ }
50
+ catch (error) {
51
+ if (isAlreadyExistsError(error)) {
52
+ this.logger.info('Versioned Daytona snapshot already exists', { name });
53
+ return name;
54
+ }
55
+ throw error;
56
+ }
57
+ }
58
+ async ensureSnapshot(daytona, mode) {
59
+ if (!this.n8nVersion)
60
+ return null;
61
+ const name = this.snapshotName();
62
+ if (mode === 'proxy')
63
+ return name;
64
+ this.snapshotPromise ??= this.createSnapshot(daytona).catch((error) => {
65
+ this.errorReporter?.error(error, {
66
+ tags: { component: 'snapshot-manager', operation: 'create-snapshot' },
67
+ extra: { snapshotName: name },
68
+ });
69
+ this.logger.warn('Failed to create versioned snapshot; using declarative image', {
70
+ name,
71
+ error: error instanceof Error ? error.message : String(error),
72
+ });
73
+ return null;
74
+ });
75
+ const result = await this.snapshotPromise;
76
+ if (result === null)
77
+ this.snapshotPromise = null;
78
+ return result;
79
+ }
80
+ snapshotName() {
81
+ if (!this.n8nVersion) {
82
+ throw new Error('SnapshotManager: n8nVersion is required to derive a snapshot name');
83
+ }
84
+ return `n8n/instance-ai:${this.n8nVersion}`;
85
+ }
31
86
  invalidate() {
32
87
  this.cachedImage = null;
88
+ this.snapshotPromise = null;
33
89
  }
34
90
  }
35
91
  exports.SnapshotManager = SnapshotManager;
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot-manager.js","sourceRoot":"","sources":["../../src/workspace/snapshot-manager.ts"],"names":[],"mappings":";;;AAWA,wCAAuC;AAGvC,mDAAyE;AAGzE,SAAS,GAAG,CAAC,CAAS;IACrB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,MAAa,eAAe;IAIT;IACA;IAJV,WAAW,GAAiB,IAAI,CAAC;IAEzC,YACkB,SAA6B,EAC7B,MAAc;QADd,cAAS,GAAT,SAAS,CAAoB;QAC7B,WAAM,GAAN,MAAM,CAAQ;IAC7B,CAAC;IAGJ,WAAW;QACV,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAE9C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,IAAI,yBAAyB,CAAC;QAEzD,IAAI,CAAC,WAAW,GAAG,WAAK,CAAC,IAAI,CAAC,IAAI,CAAC;aACjC,WAAW,CACX,wGAAwG,CACxG;aACA,WAAW,CACX,SAAS,GAAG,CAAC,4BAAY,CAAC,sDAAsD,EAChF,SAAS,GAAG,CAAC,6BAAa,CAAC,uDAAuD,EAClF,SAAS,GAAG,CAAC,yBAAS,CAAC,mDAAmD,CAC1E;aACA,WAAW,CAAC,4DAA4D,CAAC,CAAC;QAE5E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE;YACrD,IAAI;YACJ,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM;SACpD,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAGD,UAAU;QACT,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IACzB,CAAC;CACD;AArCD,0CAqCC"}
1
+ {"version":3,"file":"snapshot-manager.js","sourceRoot":"","sources":["../../src/workspace/snapshot-manager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@n8n/instance-ai",
3
- "version": "1.3.5",
3
+ "version": "1.5.0",
4
4
  "main": "dist/index.js",
5
5
  "module": "src/index.ts",
6
6
  "types": "dist/index.d.ts",
@@ -24,7 +24,7 @@
24
24
  "@mastra/daytona": "0.2.0",
25
25
  "@mastra/mcp": "1.3.1",
26
26
  "@mastra/memory": "1.10.0",
27
- "langsmith": "0.4.12",
27
+ "langsmith": "0.5.19",
28
28
  "@mozilla/readability": "^0.6.0",
29
29
  "linkedom": "^0.18.9",
30
30
  "luxon": "3.7.2",
@@ -37,17 +37,20 @@
37
37
  "@ai-sdk/provider-v5": "npm:@ai-sdk/provider@2.0.0",
38
38
  "zod-from-json-schema-v3": "npm:zod-from-json-schema@^0.0.5",
39
39
  "flatted": "3.4.2",
40
- "@n8n/api-types": "1.18.4",
41
- "n8n-workflow": "2.18.3",
42
- "@n8n/utils": "1.29.0",
43
- "@n8n/workflow-sdk": "0.11.3",
44
- "@n8n/agents": "0.5.2"
40
+ "@n8n/api-types": "1.20.0",
41
+ "@n8n/utils": "1.30.0",
42
+ "@n8n/workflow-sdk": "0.13.0",
43
+ "n8n-workflow": "2.20.0",
44
+ "@n8n/agents": "0.6.0"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@ai-sdk/anthropic": "2.0.61",
48
+ "@langchain/anthropic": "1.3.27",
49
+ "@langchain/core": "1.1.41",
48
50
  "@types/luxon": "3.2.0",
49
51
  "@types/turndown": "^5.0.5",
50
52
  "tsx": "^4.19.3",
53
+ "@n8n/ai-workflow-builder": "1.20.0",
51
54
  "@n8n/typescript-config": "1.4.0"
52
55
  },
53
56
  "license": "SEE LICENSE IN LICENSE.md",
@@ -69,6 +72,10 @@
69
72
  "test": "jest",
70
73
  "lint": "eslint . --quiet",
71
74
  "lint:fix": "eslint . --fix",
72
- "eval:instance-ai": "tsx evaluations/cli/index.ts"
75
+ "eval:instance-ai": "tsx evaluations/cli/index.ts",
76
+ "eval:pairwise": "tsx evaluations/cli/pairwise.ts",
77
+ "eval:pairwise:report": "tsx evaluations/cli/report.ts",
78
+ "eval:pairwise:compare": "tsx evaluations/cli/compare-pairwise.ts",
79
+ "eval:subagent": "tsx evaluations/subagent/cli.ts"
73
80
  }
74
81
  }
@@ -1,21 +0,0 @@
1
- import type { Category, TemplateFetchResponse, TemplateSearchResponse, WorkflowMetadata } from './types';
2
- export declare function fetchTemplateList(query: {
3
- search?: string;
4
- category?: Category;
5
- rows?: number;
6
- nodes?: string;
7
- }): Promise<TemplateSearchResponse>;
8
- export declare function fetchTemplateByID(id: number): Promise<TemplateFetchResponse>;
9
- export interface FetchWorkflowsResult {
10
- workflows: WorkflowMetadata[];
11
- totalFound: number;
12
- templateIds: number[];
13
- }
14
- export declare function fetchWorkflowsFromTemplates(query: {
15
- search?: string;
16
- category?: Category;
17
- rows?: number;
18
- nodes?: string;
19
- }, options?: {
20
- maxTemplates?: number;
21
- }): Promise<FetchWorkflowsResult>;
@@ -1,104 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fetchTemplateList = fetchTemplateList;
4
- exports.fetchTemplateByID = fetchTemplateByID;
5
- exports.fetchWorkflowsFromTemplates = fetchWorkflowsFromTemplates;
6
- const N8N_API_BASE_URL = 'https://api.n8n.io/api';
7
- function isTemplateSearchResponse(data) {
8
- if (typeof data !== 'object' || data === null)
9
- return false;
10
- const obj = data;
11
- return typeof obj.totalWorkflows === 'number' && Array.isArray(obj.workflows);
12
- }
13
- function isTemplateFetchResponse(data) {
14
- if (typeof data !== 'object' || data === null)
15
- return false;
16
- const obj = data;
17
- return (typeof obj.id === 'number' &&
18
- typeof obj.name === 'string' &&
19
- typeof obj.workflow === 'object' &&
20
- obj.workflow !== null);
21
- }
22
- function buildSearchQueryString(query) {
23
- const params = new URLSearchParams();
24
- params.append('price', '0');
25
- params.append('combineWith', 'and');
26
- params.append('sort', 'createdAt:desc,rank:desc');
27
- params.append('rows', String(query.rows ?? 5));
28
- params.append('page', '1');
29
- if (query.search)
30
- params.append('search', query.search);
31
- if (query.category)
32
- params.append('category', query.category);
33
- if (query.nodes)
34
- params.append('nodes', query.nodes);
35
- return params.toString();
36
- }
37
- async function fetchTemplateList(query) {
38
- const queryString = buildSearchQueryString(query);
39
- const url = `${N8N_API_BASE_URL}/templates/search${queryString ? `?${queryString}` : ''}`;
40
- const response = await fetch(url, {
41
- method: 'GET',
42
- headers: {
43
- 'Content-Type': 'application/json',
44
- Accept: 'application/json',
45
- },
46
- });
47
- if (!response.ok) {
48
- throw new Error(`Failed to fetch templates: ${response.status} ${response.statusText}`);
49
- }
50
- const data = await response.json();
51
- if (!isTemplateSearchResponse(data)) {
52
- throw new Error('Invalid response format from templates API');
53
- }
54
- return data;
55
- }
56
- async function fetchTemplateByID(id) {
57
- const url = `${N8N_API_BASE_URL}/workflows/templates/${id}`;
58
- const response = await fetch(url, {
59
- method: 'GET',
60
- headers: {
61
- 'Content-Type': 'application/json',
62
- Accept: 'application/json',
63
- },
64
- });
65
- if (!response.ok) {
66
- throw new Error(`Failed to fetch template ${id}: ${response.status} ${response.statusText}`);
67
- }
68
- const data = await response.json();
69
- if (!isTemplateFetchResponse(data)) {
70
- throw new Error(`Invalid response format from template ${id} API`);
71
- }
72
- return data;
73
- }
74
- async function fetchWorkflowsFromTemplates(query, options) {
75
- const { maxTemplates } = options ?? {};
76
- const searchResponse = await fetchTemplateList(query);
77
- const templatesToFetch = maxTemplates
78
- ? searchResponse.workflows.slice(0, maxTemplates)
79
- : searchResponse.workflows;
80
- const workflowResults = await Promise.all(templatesToFetch.map(async (template) => {
81
- try {
82
- const fullWorkflow = await fetchTemplateByID(template.id);
83
- return {
84
- metadata: {
85
- templateId: template.id,
86
- name: template.name,
87
- description: template.description,
88
- workflow: fullWorkflow.workflow,
89
- },
90
- templateId: template.id,
91
- };
92
- }
93
- catch {
94
- return null;
95
- }
96
- }));
97
- const validResults = workflowResults.filter((result) => result !== null);
98
- return {
99
- workflows: validResults.map((r) => r.metadata),
100
- totalFound: searchResponse.totalWorkflows,
101
- templateIds: validResults.map((r) => r.templateId),
102
- };
103
- }
104
- //# sourceMappingURL=template-api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-api.js","sourceRoot":"","sources":["../../../src/tools/templates/template-api.ts"],"names":[],"mappings":"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"}
@@ -1,52 +0,0 @@
1
- export interface TemplateNode {
2
- id?: string;
3
- name: string;
4
- type: string;
5
- typeVersion: number;
6
- position: [number, number];
7
- parameters: Record<string, unknown>;
8
- }
9
- export interface ConnectionEntry {
10
- node: string;
11
- type?: string;
12
- index?: number;
13
- }
14
- export type TemplateConnections = Record<string, Record<string, Array<ConnectionEntry[] | null>>>;
15
- export interface TemplateWorkflow {
16
- name?: string;
17
- nodes: TemplateNode[];
18
- connections: TemplateConnections;
19
- }
20
- export declare const categories: readonly ["AI", "AI Chatbot", "AI RAG", "AI Summarization", "Content Creation", "CRM", "Crypto Trading", "DevOps", "Document Extraction", "Document Ops", "Engineering", "File Management", "HR", "Internal Wiki", "Invoice Processing", "IT Ops", "Lead Generation", "Lead Nurturing", "Marketing", "Market Research", "Miscellaneous", "Multimodal AI", "Other", "Personal Productivity", "Project Management", "Sales", "SecOps", "Social Media", "Support", "Support Chatbot", "Ticket Management"];
21
- export type Category = (typeof categories)[number];
22
- export interface TemplateSearchQuery {
23
- search?: string;
24
- rows?: number;
25
- category?: Category;
26
- nodes?: string;
27
- }
28
- export interface TemplateWorkflowDescription {
29
- id: number;
30
- name: string;
31
- description: string;
32
- }
33
- export interface TemplateSearchResponse {
34
- totalWorkflows: number;
35
- workflows: TemplateWorkflowDescription[];
36
- }
37
- export interface TemplateFetchResponse {
38
- id: number;
39
- name: string;
40
- workflow: TemplateWorkflow;
41
- }
42
- export interface WorkflowMetadata {
43
- templateId: number;
44
- name: string;
45
- description?: string;
46
- workflow: TemplateWorkflow;
47
- }
48
- export interface NodeConfigurationEntry {
49
- version: number;
50
- parameters: Record<string, unknown>;
51
- }
52
- export type NodeConfigurationsMap = Record<string, NodeConfigurationEntry[]>;
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.categories = void 0;
4
- exports.categories = [
5
- 'AI',
6
- 'AI Chatbot',
7
- 'AI RAG',
8
- 'AI Summarization',
9
- 'Content Creation',
10
- 'CRM',
11
- 'Crypto Trading',
12
- 'DevOps',
13
- 'Document Extraction',
14
- 'Document Ops',
15
- 'Engineering',
16
- 'File Management',
17
- 'HR',
18
- 'Internal Wiki',
19
- 'Invoice Processing',
20
- 'IT Ops',
21
- 'Lead Generation',
22
- 'Lead Nurturing',
23
- 'Marketing',
24
- 'Market Research',
25
- 'Miscellaneous',
26
- 'Multimodal AI',
27
- 'Other',
28
- 'Personal Productivity',
29
- 'Project Management',
30
- 'Sales',
31
- 'SecOps',
32
- 'Social Media',
33
- 'Support',
34
- 'Support Chatbot',
35
- 'Ticket Management',
36
- ];
37
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tools/templates/types.ts"],"names":[],"mappings":";;;AA0Ca,QAAA,UAAU,GAAG;IACzB,IAAI;IACJ,YAAY;IACZ,QAAQ;IACR,kBAAkB;IAClB,kBAAkB;IAClB,KAAK;IACL,gBAAgB;IAChB,QAAQ;IACR,qBAAqB;IACrB,cAAc;IACd,aAAa;IACb,iBAAiB;IACjB,IAAI;IACJ,eAAe;IACf,oBAAoB;IACpB,QAAQ;IACR,iBAAiB;IACjB,gBAAgB;IAChB,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,eAAe;IACf,OAAO;IACP,uBAAuB;IACvB,oBAAoB;IACpB,OAAO;IACP,QAAQ;IACR,cAAc;IACd,SAAS;IACT,iBAAiB;IACjB,mBAAmB;CACV,CAAC"}
@@ -1,15 +0,0 @@
1
- import type { TemplateConnections, TemplateNode, WorkflowMetadata } from '../templates/types';
2
- export interface MermaidWorkflowInput {
3
- workflow: {
4
- name?: string;
5
- nodes: TemplateNode[];
6
- connections: TemplateConnections;
7
- };
8
- }
9
- export interface MermaidOptions {
10
- includeNodeType?: boolean;
11
- includeNodeParameters?: boolean;
12
- includeNodeName?: boolean;
13
- includeNodeId?: boolean;
14
- }
15
- export declare function mermaidStringify(input: WorkflowMetadata | MermaidWorkflowInput, options?: MermaidOptions): string;