@n8n/ai-workflow-builder 0.28.0 → 0.29.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 (57) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/chains/prompt-categorization.d.ts +3 -0
  3. package/dist/chains/prompt-categorization.js +109 -0
  4. package/dist/chains/prompt-categorization.js.map +1 -0
  5. package/dist/chains/test/integration/test-helpers.d.ts +3 -0
  6. package/dist/chains/test/integration/test-helpers.js +16 -0
  7. package/dist/chains/test/integration/test-helpers.js.map +1 -0
  8. package/dist/tools/best-practices/chatbot.d.ts +7 -0
  9. package/dist/tools/best-practices/chatbot.js +118 -0
  10. package/dist/tools/best-practices/chatbot.js.map +1 -0
  11. package/dist/tools/best-practices/content-generation.d.ts +7 -0
  12. package/dist/tools/best-practices/content-generation.js +79 -0
  13. package/dist/tools/best-practices/content-generation.js.map +1 -0
  14. package/dist/tools/best-practices/data-extraction.d.ts +7 -0
  15. package/dist/tools/best-practices/data-extraction.js +105 -0
  16. package/dist/tools/best-practices/data-extraction.js.map +1 -0
  17. package/dist/tools/best-practices/form-input.d.ts +7 -0
  18. package/dist/tools/best-practices/form-input.js +173 -0
  19. package/dist/tools/best-practices/form-input.js.map +1 -0
  20. package/dist/tools/best-practices/index.d.ts +3 -0
  21. package/dist/tools/best-practices/index.js +27 -0
  22. package/dist/tools/best-practices/index.js.map +1 -0
  23. package/dist/tools/best-practices/scraping-and-research.d.ts +7 -0
  24. package/dist/tools/best-practices/scraping-and-research.js +147 -0
  25. package/dist/tools/best-practices/scraping-and-research.js.map +1 -0
  26. package/dist/tools/builder-tools.js +6 -0
  27. package/dist/tools/builder-tools.js.map +1 -1
  28. package/dist/tools/categorize-prompt.tool.d.ts +5 -0
  29. package/dist/tools/categorize-prompt.tool.js +84 -0
  30. package/dist/tools/categorize-prompt.tool.js.map +1 -0
  31. package/dist/tools/engines/node-search-engine.d.ts +0 -9
  32. package/dist/tools/engines/node-search-engine.js +52 -72
  33. package/dist/tools/engines/node-search-engine.js.map +1 -1
  34. package/dist/tools/get-best-practices.tool.d.ts +33 -0
  35. package/dist/tools/get-best-practices.tool.js +94 -0
  36. package/dist/tools/get-best-practices.tool.js.map +1 -0
  37. package/dist/tools/prompts/main-agent.prompt.js +23 -5
  38. package/dist/tools/prompts/main-agent.prompt.js.map +1 -1
  39. package/dist/tools/validate-workflow.tool.js +0 -16
  40. package/dist/tools/validate-workflow.tool.js.map +1 -1
  41. package/dist/types/best-practices.d.ts +6 -0
  42. package/dist/types/best-practices.js +3 -0
  43. package/dist/types/best-practices.js.map +1 -0
  44. package/dist/types/categorization.d.ts +23 -0
  45. package/dist/types/categorization.js +38 -0
  46. package/dist/types/categorization.js.map +1 -0
  47. package/dist/types/index.d.ts +2 -0
  48. package/dist/types/tools.d.ts +4 -0
  49. package/dist/utils/stream-processor.js +85 -58
  50. package/dist/utils/stream-processor.js.map +1 -1
  51. package/dist/validation/checks/agent-prompt.js +1 -1
  52. package/dist/validation/checks/agent-prompt.js.map +1 -1
  53. package/dist/validation/checks/connections.js +32 -1
  54. package/dist/validation/checks/connections.js.map +1 -1
  55. package/dist/workflow-state.d.ts +1 -1
  56. package/dist/workflow-state.js.map +1 -1
  57. package/package.json +9 -5
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET_BEST_PRACTICES_TOOL = void 0;
4
+ exports.createGetBestPracticesTool = createGetBestPracticesTool;
5
+ const tools_1 = require("@langchain/core/tools");
6
+ const zod_1 = require("zod");
7
+ const errors_1 = require("../errors");
8
+ const best_practices_1 = require("../tools/best-practices");
9
+ const progress_1 = require("../tools/helpers/progress");
10
+ const response_1 = require("../tools/helpers/response");
11
+ const categorization_1 = require("../types/categorization");
12
+ const getBestPracticesSchema = zod_1.z.object({
13
+ techniques: zod_1.z
14
+ .array(zod_1.z.nativeEnum(categorization_1.WorkflowTechnique))
15
+ .min(1)
16
+ .describe('List of workflow techniques to retrieve best practices for'),
17
+ });
18
+ function formatBestPractices(techniques) {
19
+ const parts = [];
20
+ const foundDocs = [];
21
+ for (const technique of techniques) {
22
+ const doc = best_practices_1.documentation[technique];
23
+ if (doc) {
24
+ foundDocs.push(doc.getDocumentation());
25
+ }
26
+ }
27
+ if (foundDocs.length > 0) {
28
+ parts.push('<best_practices>');
29
+ parts.push(foundDocs.join('\n---\n'));
30
+ parts.push('</best_practices>');
31
+ }
32
+ return parts.join('\n');
33
+ }
34
+ exports.GET_BEST_PRACTICES_TOOL = {
35
+ toolName: 'get_best_practices',
36
+ displayTitle: 'Getting best practices',
37
+ };
38
+ function createGetBestPracticesTool() {
39
+ const dynamicTool = (0, tools_1.tool)((input, config) => {
40
+ const reporter = (0, progress_1.createProgressReporter)(config, exports.GET_BEST_PRACTICES_TOOL.toolName, exports.GET_BEST_PRACTICES_TOOL.displayTitle);
41
+ try {
42
+ const validatedInput = getBestPracticesSchema.parse(input);
43
+ const { techniques } = validatedInput;
44
+ reporter.start(validatedInput);
45
+ reporter.progress(`Retrieving best practices for ${techniques.length} technique(s)...`);
46
+ const availableDocs = techniques.filter((technique) => best_practices_1.documentation[technique]);
47
+ if (availableDocs.length === 0) {
48
+ const message = `No best practices documentation available for the requested techniques: ${techniques.join(', ')}`;
49
+ reporter.complete({ techniques, found: 0 });
50
+ return (0, response_1.createSuccessResponse)(config, message);
51
+ }
52
+ const message = formatBestPractices(techniques);
53
+ reporter.complete({
54
+ techniques,
55
+ found: availableDocs.length,
56
+ missing: techniques.length - availableDocs.length,
57
+ });
58
+ return (0, response_1.createSuccessResponse)(config, message);
59
+ }
60
+ catch (error) {
61
+ if (error instanceof zod_1.z.ZodError) {
62
+ const validationError = new errors_1.ValidationError('Invalid input parameters', {
63
+ extra: { errors: error.errors },
64
+ });
65
+ reporter.error(validationError);
66
+ return (0, response_1.createErrorResponse)(config, validationError);
67
+ }
68
+ const toolError = new errors_1.ToolExecutionError(error instanceof Error ? error.message : 'Unknown error occurred', {
69
+ toolName: exports.GET_BEST_PRACTICES_TOOL.toolName,
70
+ cause: error instanceof Error ? error : undefined,
71
+ });
72
+ reporter.error(toolError);
73
+ return (0, response_1.createErrorResponse)(config, toolError);
74
+ }
75
+ }, {
76
+ name: exports.GET_BEST_PRACTICES_TOOL.toolName,
77
+ description: `Retrieve best practices documentation for specific workflow techniques.
78
+
79
+ Use this tool after categorizing a user's prompt to get relevant guidance on:
80
+ - Recommended nodes and their purposes
81
+ - Common pitfalls to avoid
82
+ - Performance and resource management tips
83
+ - Implementation patterns and best practices
84
+ - General tips on building workflows that utilise the provided techniques
85
+
86
+ This helps build better workflows by applying proven patterns and avoiding common mistakes.`,
87
+ schema: getBestPracticesSchema,
88
+ });
89
+ return {
90
+ tool: dynamicTool,
91
+ ...exports.GET_BEST_PRACTICES_TOOL,
92
+ };
93
+ }
94
+ //# sourceMappingURL=get-best-practices.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-best-practices.tool.js","sourceRoot":"","sources":["../../src/tools/get-best-practices.tool.ts"],"names":[],"mappings":";;;AAgDA,gEA4EC;AA5HD,iDAA6C;AAC7C,6BAAwB;AAExB,qCAA+D;AAC/D,2DAAuD;AACvD,uDAAkE;AAClE,uDAAsF;AACtF,2DAAuF;AAGvF,MAAM,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,UAAU,EAAE,OAAC;SACX,KAAK,CAAC,OAAC,CAAC,UAAU,CAAC,kCAAiB,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,4DAA4D,CAAC;CACxE,CAAC,CAAC;AAKH,SAAS,mBAAmB,CAAC,UAAmC;IAC/D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,8BAAa,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,GAAG,EAAE,CAAC;YACT,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAEY,QAAA,uBAAuB,GAAoB;IACvD,QAAQ,EAAE,oBAAoB;IAC9B,YAAY,EAAE,wBAAwB;CACtC,CAAC;AAKF,SAAgB,0BAA0B;IACzC,MAAM,WAAW,GAAG,IAAA,YAAI,EACvB,CAAC,KAAc,EAAE,MAAM,EAAE,EAAE;QAC1B,MAAM,QAAQ,GAAG,IAAA,iCAAsB,EACtC,MAAM,EACN,+BAAuB,CAAC,QAAQ,EAChC,+BAAuB,CAAC,YAAY,CACpC,CAAC;QAEF,IAAI,CAAC;YACJ,MAAM,cAAc,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3D,MAAM,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC;YAEtC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAE/B,QAAQ,CAAC,QAAQ,CAAC,iCAAiC,UAAU,CAAC,MAAM,kBAAkB,CAAC,CAAC;YAGxF,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,8BAAa,CAAC,SAAS,CAAC,CAAC,CAAC;YAEjF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM,OAAO,GAAG,2EAA2E,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnH,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC5C,OAAO,IAAA,gCAAqB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/C,CAAC;YAGD,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAEhD,QAAQ,CAAC,QAAQ,CAAC;gBACjB,UAAU;gBACV,KAAK,EAAE,aAAa,CAAC,MAAM;gBAC3B,OAAO,EAAE,UAAU,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM;aACjD,CAAC,CAAC;YAEH,OAAO,IAAA,gCAAqB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,OAAC,CAAC,QAAQ,EAAE,CAAC;gBACjC,MAAM,eAAe,GAAG,IAAI,wBAAe,CAAC,0BAA0B,EAAE;oBACvE,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE;iBAC/B,CAAC,CAAC;gBACH,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAChC,OAAO,IAAA,8BAAmB,EAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YACrD,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,2BAAkB,CACvC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,EACjE;gBACC,QAAQ,EAAE,+BAAuB,CAAC,QAAQ;gBAC1C,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;aACjD,CACD,CAAC;YACF,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC1B,OAAO,IAAA,8BAAmB,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;IACF,CAAC,EACD;QACC,IAAI,EAAE,+BAAuB,CAAC,QAAQ;QACtC,WAAW,EAAE;;;;;;;;;4FAS4E;QACzF,MAAM,EAAE,sBAAsB;KAC9B,CACD,CAAC;IAEF,OAAO;QACN,IAAI,EAAE,WAAW;QACjB,GAAG,+BAAuB;KAC1B,CAAC;AACH,CAAC"}
@@ -33,24 +33,28 @@ The system's operations processor ensures state consistency across all parallel
33
33
  <workflow_creation_sequence>
34
34
  Follow this proven sequence for creating robust workflows:
35
35
 
36
- 1. **Discovery Phase** (parallel execution)
36
+ 1. **Categorization Phase** - MANDATORY
37
+ - Categorize the prompt and search for best practices documentation based on the techniques found
38
+ - Why: Best practices help to inform which nodes to search for and use to build the workflow plus mistakes to avoid
39
+
40
+ 2. **Discovery Phase** (parallel execution)
37
41
  - Search for all required node types simultaneously
38
42
  - Why: Ensures you work with actual available nodes, not assumptions
39
43
 
40
- 2. **Analysis Phase** (parallel execution)
44
+ 3. **Analysis Phase** (parallel execution)
41
45
  - Get details for ALL nodes before proceeding
42
46
  - Why: Understanding inputs/outputs prevents connection errors and ensures proper parameter configuration
43
47
 
44
- 3. **Creation Phase** (parallel execution)
48
+ 4. **Creation Phase** (parallel execution)
45
49
  - Add nodes individually by calling add_nodes for each node
46
50
  - Execute multiple add_nodes calls in parallel for efficiency
47
51
  - Why: Each node addition is independent, parallel execution is faster, and the operations processor ensures consistency
48
52
 
49
- 4. **Connection Phase** (parallel execution)
53
+ 5. **Connection Phase** (parallel execution)
50
54
  - Connect all nodes based on discovered input/output structure
51
55
  - Why: Parallel connections are safe and faster
52
56
 
53
- 5. **Configuration Phase** (parallel execution) - MANDATORY
57
+ 6. **Configuration Phase** (parallel execution) - MANDATORY
54
58
  - ALWAYS configure nodes using update_node_parameters
55
59
  - Even for "simple" nodes like HTTP Request, Set, etc.
56
60
  - Configure all nodes in parallel for efficiency
@@ -63,6 +67,18 @@ Follow this proven sequence for creating robust workflows:
63
67
  - Review <workflow_validation_report> and resolve any violations before finalizing
64
68
  - Why: Ensures structural issues are surfaced early; rerun validation after major updates
65
69
 
70
+ <best_practices_compliance>
71
+ Enforcing best practice compliance is MANDATORY
72
+
73
+ You MUST enforce best practices even when the user doesn't explicitly request them. Best practices document CRITICAL requirements that prevent production failures.
74
+
75
+ When you retrieve best practices and see CRITICAL requirements:
76
+ 1. Identify all MUST-HAVE nodes and configurations
77
+ 2. Add them to your workflow plan
78
+ 3. Include them in the workflow even if user didn't explicitly ask
79
+ 4. Mention them in your setup response so user understands why they're there
80
+ </best_practices_compliance>
81
+
66
82
  <parallel_node_creation_example>
67
83
  Example: Creating and configuring a workflow (complete process):
68
84
 
@@ -92,6 +108,7 @@ Always determine connectionParametersReasoning before setting connectionParamete
92
108
  - Does this node have dynamic inputs/outputs?
93
109
  - Which parameters affect the connection structure?
94
110
  - What mode or operation changes the available connections?
111
+ - Are there best practices which provide recommendations for connections?
95
112
  </reasoning_first>
96
113
 
97
114
  <parameter_examples>
@@ -435,6 +452,7 @@ When modifying existing nodes:
435
452
  <handling_uncertainty>
436
453
  When unsure about specific values:
437
454
  - Add nodes and connections confidently
455
+ - investigate best practices to see if there are recommendations on how to proceed
438
456
  - For uncertain parameters, use update_node_parameters with placeholders formatted exactly as "<__PLACEHOLDER_VALUE__VALUE_LABEL__>"
439
457
  - Make VALUE_LABEL descriptive (e.g., "API endpoint URL", "Auth token header") so users know what to supply
440
458
  - For tool nodes with dynamic values, use $fromAI expressions instead of placeholders
@@ -1 +1 @@
1
- {"version":3,"file":"main-agent.prompt.js","sourceRoot":"","sources":["../../../src/tools/prompts/main-agent.prompt.ts"],"names":[],"mappings":";;;AAAA,qDAA6D;AAE7D,oEAAsE;AAEtE,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqcpB,CAAC;AAEF,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCxB,CAAC;AAEF,MAAM,2BAA2B,GAAG;;;oBAGhB,CAAC;AAER,QAAA,eAAe,GAAG,4BAAkB,CAAC,YAAY,CAAC;IAC9D;QACC,QAAQ;QACR;YACC;gBACC,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,YAAY;aAClB;YACD;gBACC,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,gCAAiB;aACvB;YACD;gBACC,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,gBAAgB;aACtB;YACD;gBACC,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,2BAA2B;gBACjC,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;aACpC;SACD;KACD;IACD,CAAC,aAAa,EAAE,YAAY,CAAC;CAC7B,CAAC,CAAC"}
1
+ {"version":3,"file":"main-agent.prompt.js","sourceRoot":"","sources":["../../../src/tools/prompts/main-agent.prompt.ts"],"names":[],"mappings":";;;AAAA,qDAA6D;AAE7D,oEAAsE;AAEtE,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAudpB,CAAC;AAEF,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCxB,CAAC;AAEF,MAAM,2BAA2B,GAAG;;;oBAGhB,CAAC;AAER,QAAA,eAAe,GAAG,4BAAkB,CAAC,YAAY,CAAC;IAC9D;QACC,QAAQ;QACR;YACC;gBACC,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,YAAY;aAClB;YACD;gBACC,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,gCAAiB;aACvB;YACD;gBACC,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,gBAAgB;aACtB;YACD;gBACC,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,2BAA2B;gBACjC,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;aACpC;SACD;KACD;IACD,CAAC,aAAa,EAAE,YAAY,CAAC;CAC7B,CAAC,CAAC"}
@@ -26,22 +26,6 @@ function createValidateWorkflowTool(parsedNodeTypes, logger) {
26
26
  const violations = (0, programmatic_1.programmaticValidation)({
27
27
  generatedWorkflow: state.workflowJSON,
28
28
  }, parsedNodeTypes);
29
- const blockingViolations = [
30
- ...violations.connections,
31
- ...violations.trigger,
32
- ...violations.agentPrompt,
33
- ...violations.tools,
34
- ...violations.fromAi,
35
- ].filter((violation) => violation.type === 'critical' || violation.type === 'major');
36
- if (blockingViolations.length > 0) {
37
- const summary = (0, workflow_validation_1.formatWorkflowValidation)(violations);
38
- const validationError = new errors_1.ValidationError(`Workflow validation failed due to critical or major violations.\n${summary}`, { extra: { violations: blockingViolations } });
39
- reporter.error(validationError);
40
- logger?.warn('validate_workflow tool detected blocking violations', {
41
- violations: blockingViolations,
42
- });
43
- return (0, response_1.createErrorResponse)(config, validationError);
44
- }
45
29
  const message = (0, workflow_validation_1.formatWorkflowValidation)(violations);
46
30
  reporter.complete({ message });
47
31
  return (0, response_1.createSuccessResponse)(config, message, {
@@ -1 +1 @@
1
- {"version":3,"file":"validate-workflow.tool.js","sourceRoot":"","sources":["../../src/tools/validate-workflow.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-workflow.tool.js","sourceRoot":"","sources":["../../src/tools/validate-workflow.tool.ts"],"names":[],"mappings":";;;AAqBA,gEAoEC;AAzFD,iDAA6C;AAG7C,6BAAwB;AAGxB,4DAAmE;AAEnE,sCAAgE;AAChE,sEAAwE;AACxE,iDAA4E;AAC5E,iDAAgF;AAChF,2CAAmD;AAEnD,MAAM,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAEpD,QAAA,sBAAsB,GAAoB;IACtD,QAAQ,EAAE,mBAAmB;IAC7B,YAAY,EAAE,qBAAqB;CACnC,CAAC;AAEF,SAAgB,0BAA0B,CACzC,eAAuC,EACvC,MAAe;IAEf,MAAM,WAAW,GAAG,IAAA,YAAI,EACvB,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,IAAA,iCAAsB,EACtC,MAAM,EACN,8BAAsB,CAAC,QAAQ,EAC/B,8BAAsB,CAAC,YAAY,CACnC,CAAC;QAEF,IAAI,CAAC;YACJ,MAAM,cAAc,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACjE,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAE/B,MAAM,KAAK,GAAG,IAAA,wBAAgB,GAAE,CAAC;YACjC,IAAA,yBAAc,EAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;YAExD,MAAM,UAAU,GAAG,IAAA,qCAAsB,EACxC;gBACC,iBAAiB,EAAE,KAAK,CAAC,YAAY;aACrC,EACD,eAAe,CACf,CAAC;YAEF,MAAM,OAAO,GAAG,IAAA,8CAAwB,EAAC,UAAU,CAAC,CAAC;YAErD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAE/B,OAAO,IAAA,gCAAqB,EAAC,MAAM,EAAE,OAAO,EAAE;gBAC7C,kBAAkB,EAAE,UAAU;aAC9B,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,OAAC,CAAC,QAAQ,EAAE,CAAC;gBACjC,MAAM,eAAe,GAAG,IAAI,wBAAe,CAAC,0BAA0B,EAAE;oBACvE,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE;iBAC/B,CAAC,CAAC;gBACH,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAChC,OAAO,IAAA,8BAAmB,EAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YACrD,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,2BAAkB,CACvC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,EACtE;gBACC,QAAQ,EAAE,8BAAsB,CAAC,QAAQ;gBACzC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;aACjD,CACD,CAAC;YAEF,MAAM,EAAE,IAAI,CAAC,+BAA+B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAEpE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC1B,OAAO,IAAA,8BAAmB,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;IACF,CAAC,EACD;QACC,IAAI,EAAE,8BAAsB,CAAC,QAAQ;QACrC,WAAW,EACV,qHAAqH;QACtH,MAAM,EAAE,sBAAsB;KAC9B,CACD,CAAC;IAEF,OAAO;QACN,IAAI,EAAE,WAAW;QACjB,GAAG,8BAAsB;KACzB,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { WorkflowTechniqueType } from './categorization';
2
+ export interface BestPracticesDocument {
3
+ readonly technique: WorkflowTechniqueType;
4
+ readonly version: string;
5
+ getDocumentation(): string;
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=best-practices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"best-practices.js","sourceRoot":"","sources":["../../src/types/best-practices.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ export declare const WorkflowTechnique: {
2
+ readonly SCHEDULING: "scheduling";
3
+ readonly CHATBOT: "chatbot";
4
+ readonly FORM_INPUT: "form_input";
5
+ readonly SCRAPING_AND_RESEARCH: "scraping_and_research";
6
+ readonly MONITORING: "monitoring";
7
+ readonly ENRICHMENT: "enrichment";
8
+ readonly TRIAGE: "triage";
9
+ readonly CONTENT_GENERATION: "content_generation";
10
+ readonly DOCUMENT_PROCESSING: "document_processing";
11
+ readonly DATA_EXTRACTION: "data_extraction";
12
+ readonly DATA_ANALYSIS: "data_analysis";
13
+ readonly DATA_TRANSFORMATION: "data_transformation";
14
+ readonly NOTIFICATION: "notification";
15
+ readonly KNOWLEDGE_BASE: "knowledge_base";
16
+ readonly HUMAN_IN_THE_LOOP: "human_in_the_loop";
17
+ };
18
+ export type WorkflowTechniqueType = (typeof WorkflowTechnique)[keyof typeof WorkflowTechnique];
19
+ export declare const TechniqueDescription: Record<WorkflowTechniqueType, string>;
20
+ export interface PromptCategorization {
21
+ techniques: WorkflowTechniqueType[];
22
+ confidence?: number;
23
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TechniqueDescription = exports.WorkflowTechnique = void 0;
4
+ exports.WorkflowTechnique = {
5
+ SCHEDULING: 'scheduling',
6
+ CHATBOT: 'chatbot',
7
+ FORM_INPUT: 'form_input',
8
+ SCRAPING_AND_RESEARCH: 'scraping_and_research',
9
+ MONITORING: 'monitoring',
10
+ ENRICHMENT: 'enrichment',
11
+ TRIAGE: 'triage',
12
+ CONTENT_GENERATION: 'content_generation',
13
+ DOCUMENT_PROCESSING: 'document_processing',
14
+ DATA_EXTRACTION: 'data_extraction',
15
+ DATA_ANALYSIS: 'data_analysis',
16
+ DATA_TRANSFORMATION: 'data_transformation',
17
+ NOTIFICATION: 'notification',
18
+ KNOWLEDGE_BASE: 'knowledge_base',
19
+ HUMAN_IN_THE_LOOP: 'human_in_the_loop',
20
+ };
21
+ exports.TechniqueDescription = {
22
+ [exports.WorkflowTechnique.SCHEDULING]: 'Running an action at a specific time or interval',
23
+ [exports.WorkflowTechnique.CHATBOT]: 'Receiving chat messages and replying (built-in chat, Telegram, Slack, MS Teams, etc.)',
24
+ [exports.WorkflowTechnique.FORM_INPUT]: 'Gathering data from users via forms',
25
+ [exports.WorkflowTechnique.SCRAPING_AND_RESEARCH]: 'Methodically collecting information from websites or APIs to compile structured data',
26
+ [exports.WorkflowTechnique.MONITORING]: 'Repeatedly checking service/website status and taking action when conditions are met',
27
+ [exports.WorkflowTechnique.ENRICHMENT]: 'Adding extra details to existing data by merging information from other sources',
28
+ [exports.WorkflowTechnique.TRIAGE]: 'Classifying data for routing or prioritization',
29
+ [exports.WorkflowTechnique.CONTENT_GENERATION]: 'Creating text, images, audio, video, etc.',
30
+ [exports.WorkflowTechnique.DOCUMENT_PROCESSING]: 'Taking action on content within files (PDFs, Word docs, images)',
31
+ [exports.WorkflowTechnique.DATA_EXTRACTION]: 'Pulling specific information from structured or unstructured inputs',
32
+ [exports.WorkflowTechnique.DATA_ANALYSIS]: 'Examining data to find patterns, trends, anomalies, or insights',
33
+ [exports.WorkflowTechnique.DATA_TRANSFORMATION]: 'Cleaning, formatting, or restructuring data (including summarization)',
34
+ [exports.WorkflowTechnique.NOTIFICATION]: 'Sending alerts or updates via email, chat, SMS when events occur',
35
+ [exports.WorkflowTechnique.KNOWLEDGE_BASE]: 'Building or using a centralized information collection (usually vector database for LLM use)',
36
+ [exports.WorkflowTechnique.HUMAN_IN_THE_LOOP]: 'Pausing for human decision/input before resuming',
37
+ };
38
+ //# sourceMappingURL=categorization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categorization.js","sourceRoot":"","sources":["../../src/types/categorization.ts"],"names":[],"mappings":";;;AAGa,QAAA,iBAAiB,GAAG;IAEhC,UAAU,EAAE,YAAY;IAExB,OAAO,EAAE,SAAS;IAElB,UAAU,EAAE,YAAY;IAExB,qBAAqB,EAAE,uBAAuB;IAE9C,UAAU,EAAE,YAAY;IAExB,UAAU,EAAE,YAAY;IAExB,MAAM,EAAE,QAAQ;IAEhB,kBAAkB,EAAE,oBAAoB;IAExC,mBAAmB,EAAE,qBAAqB;IAE1C,eAAe,EAAE,iBAAiB;IAElC,aAAa,EAAE,eAAe;IAE9B,mBAAmB,EAAE,qBAAqB;IAE1C,YAAY,EAAE,cAAc;IAE5B,cAAc,EAAE,gBAAgB;IAEhC,iBAAiB,EAAE,mBAAmB;CAC7B,CAAC;AAOE,QAAA,oBAAoB,GAA0C;IAC1E,CAAC,yBAAiB,CAAC,UAAU,CAAC,EAAE,kDAAkD;IAClF,CAAC,yBAAiB,CAAC,OAAO,CAAC,EAC1B,uFAAuF;IACxF,CAAC,yBAAiB,CAAC,UAAU,CAAC,EAAE,qCAAqC;IACrE,CAAC,yBAAiB,CAAC,qBAAqB,CAAC,EACxC,sFAAsF;IACvF,CAAC,yBAAiB,CAAC,UAAU,CAAC,EAC7B,sFAAsF;IACvF,CAAC,yBAAiB,CAAC,UAAU,CAAC,EAC7B,iFAAiF;IAClF,CAAC,yBAAiB,CAAC,MAAM,CAAC,EAAE,gDAAgD;IAC5E,CAAC,yBAAiB,CAAC,kBAAkB,CAAC,EAAE,2CAA2C;IACnF,CAAC,yBAAiB,CAAC,mBAAmB,CAAC,EACtC,iEAAiE;IAClE,CAAC,yBAAiB,CAAC,eAAe,CAAC,EAClC,qEAAqE;IACtE,CAAC,yBAAiB,CAAC,aAAa,CAAC,EAChC,iEAAiE;IAClE,CAAC,yBAAiB,CAAC,mBAAmB,CAAC,EACtC,uEAAuE;IACxE,CAAC,yBAAiB,CAAC,YAAY,CAAC,EAC/B,kEAAkE;IACnE,CAAC,yBAAiB,CAAC,cAAc,CAAC,EACjC,8FAA8F;IAC/F,CAAC,yBAAiB,CAAC,iBAAiB,CAAC,EAAE,kDAAkD;CACzF,CAAC"}
@@ -6,3 +6,5 @@ export type * from './streaming';
6
6
  export type * from './nodes';
7
7
  export type * from './config';
8
8
  export type * from './utils';
9
+ export type * from './categorization';
10
+ export type * from './best-practices';
@@ -1,5 +1,6 @@
1
1
  import type { INodeParameters } from 'n8n-workflow';
2
2
  import type { ZodIssue } from 'zod';
3
+ import type { PromptCategorization } from './categorization';
3
4
  import type { AddedNode, NodeDetails, NodeSearchResult } from './nodes';
4
5
  export type ProgressUpdateType = 'input' | 'output' | 'progress' | 'error';
5
6
  export interface ProgressUpdate<T = Record<string, unknown>> {
@@ -89,3 +90,6 @@ export interface RemoveConnectionOutput {
89
90
  targetInputIndex: number;
90
91
  message: string;
91
92
  }
93
+ export interface CategorizePromptOutput {
94
+ categorization: PromptCategorization;
95
+ }
@@ -6,74 +6,101 @@ exports.createStreamProcessor = createStreamProcessor;
6
6
  exports.cleanContextTags = cleanContextTags;
7
7
  exports.formatMessages = formatMessages;
8
8
  const messages_1 = require("@langchain/core/messages");
9
+ function isAgentUpdateChunk(chunk) {
10
+ return (typeof chunk === 'object' &&
11
+ chunk !== null &&
12
+ ('agent' in chunk ||
13
+ 'compact_messages' in chunk ||
14
+ 'delete_messages' in chunk ||
15
+ 'process_operations' in chunk));
16
+ }
17
+ function isToolProgressChunk(chunk) {
18
+ return typeof chunk === 'object' && chunk !== null && 'type' in chunk && chunk.type === 'tool';
19
+ }
9
20
  exports.DEFAULT_WORKFLOW_UPDATE_TOOLS = [
10
21
  'add_nodes',
11
22
  'connect_nodes',
12
23
  'update_node_parameters',
13
24
  'remove_node',
14
25
  ];
26
+ function getLastMessage(messages) {
27
+ if (!messages || messages.length === 0) {
28
+ return null;
29
+ }
30
+ return messages[messages.length - 1];
31
+ }
32
+ function extractTextFromContent(content) {
33
+ if (Array.isArray(content)) {
34
+ return content
35
+ .filter((part) => part.type === 'text')
36
+ .map((part) => part.text)
37
+ .join('\n');
38
+ }
39
+ return content;
40
+ }
41
+ function createMessageChunk(text) {
42
+ return {
43
+ role: 'assistant',
44
+ type: 'message',
45
+ text,
46
+ };
47
+ }
48
+ function processDeleteMessages(chunk) {
49
+ const messages = chunk.delete_messages?.messages;
50
+ if (!messages || messages.length === 0) {
51
+ return null;
52
+ }
53
+ return { messages: [createMessageChunk('Deleted, refresh?')] };
54
+ }
55
+ function processCompactMessages(chunk) {
56
+ const lastMessage = getLastMessage(chunk.compact_messages?.messages);
57
+ if (!lastMessage) {
58
+ return null;
59
+ }
60
+ const text = extractTextFromContent(lastMessage.content);
61
+ return { messages: [createMessageChunk(text)] };
62
+ }
63
+ function processAgentMessages(chunk) {
64
+ const lastMessage = getLastMessage(chunk.agent?.messages);
65
+ if (!lastMessage?.content) {
66
+ return null;
67
+ }
68
+ const text = extractTextFromContent(lastMessage.content);
69
+ if (!text) {
70
+ return null;
71
+ }
72
+ return { messages: [createMessageChunk(text)] };
73
+ }
74
+ function processOperations(chunk) {
75
+ const update = chunk.process_operations;
76
+ if (!update?.workflowJSON || update.workflowOperations === undefined) {
77
+ return null;
78
+ }
79
+ const workflowUpdateChunk = {
80
+ role: 'assistant',
81
+ type: 'workflow-updated',
82
+ codeSnippet: JSON.stringify(update.workflowJSON, null, 2),
83
+ };
84
+ return { messages: [workflowUpdateChunk] };
85
+ }
86
+ function processCustomToolChunk(chunk) {
87
+ if (!isToolProgressChunk(chunk)) {
88
+ return null;
89
+ }
90
+ return { messages: [chunk] };
91
+ }
15
92
  function processStreamChunk(streamMode, chunk) {
16
93
  if (streamMode === 'updates') {
17
- const agentChunk = chunk;
18
- if ((agentChunk?.delete_messages?.messages ?? []).length > 0) {
19
- const messageChunk = {
20
- role: 'assistant',
21
- type: 'message',
22
- text: 'Deleted, refresh?',
23
- };
24
- return { messages: [messageChunk] };
25
- }
26
- if ((agentChunk?.compact_messages?.messages ?? []).length > 0) {
27
- const lastMessage = agentChunk.compact_messages.messages[agentChunk.compact_messages.messages.length - 1];
28
- const messageChunk = {
29
- role: 'assistant',
30
- type: 'message',
31
- text: lastMessage.content,
32
- };
33
- return { messages: [messageChunk] };
34
- }
35
- if ((agentChunk?.agent?.messages ?? []).length > 0) {
36
- const lastMessage = agentChunk.agent.messages[agentChunk.agent.messages.length - 1];
37
- if (lastMessage.content) {
38
- let content;
39
- if (Array.isArray(lastMessage.content)) {
40
- content = lastMessage.content
41
- .filter((c) => c.type === 'text')
42
- .map((b) => b.text)
43
- .join('\n');
44
- }
45
- else {
46
- content = lastMessage.content;
47
- }
48
- if (content) {
49
- const messageChunk = {
50
- role: 'assistant',
51
- type: 'message',
52
- text: content,
53
- };
54
- return { messages: [messageChunk] };
55
- }
56
- return null;
57
- }
58
- }
59
- if (agentChunk?.process_operations) {
60
- const update = agentChunk.process_operations;
61
- if (update.workflowJSON && update.workflowOperations !== undefined) {
62
- const workflowUpdateChunk = {
63
- role: 'assistant',
64
- type: 'workflow-updated',
65
- codeSnippet: JSON.stringify(update.workflowJSON, null, 2),
66
- };
67
- return { messages: [workflowUpdateChunk] };
68
- }
94
+ if (!isAgentUpdateChunk(chunk)) {
95
+ return null;
69
96
  }
97
+ return (processDeleteMessages(chunk) ??
98
+ processCompactMessages(chunk) ??
99
+ processAgentMessages(chunk) ??
100
+ processOperations(chunk));
70
101
  }
71
- else if (streamMode === 'custom') {
72
- const toolChunk = chunk;
73
- if (toolChunk?.type === 'tool') {
74
- const output = { messages: [toolChunk] };
75
- return output;
76
- }
102
+ if (streamMode === 'custom') {
103
+ return processCustomToolChunk(chunk);
77
104
  }
78
105
  return null;
79
106
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stream-processor.js","sourceRoot":"","sources":["../../src/utils/stream-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream-processor.js","sourceRoot":"","sources":["../../src/utils/stream-processor.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ function validateAgentPrompt(workflow) {
22
22
  if (isOptionsWithSystemMessage(options)) {
23
23
  systemMessage = options.systemMessage;
24
24
  }
25
- if (promptType !== 'auto') {
25
+ if (promptType !== 'auto' && promptType !== 'guardrails') {
26
26
  if (!textParam || !(0, expressions_1.containsExpression)(textParam)) {
27
27
  violations.push({
28
28
  type: 'major',
@@ -1 +1 @@
1
- {"version":3,"file":"agent-prompt.js","sourceRoot":"","sources":["../../../src/validation/checks/agent-prompt.ts"],"names":[],"mappings":";;AA4BA,kDAiDC;AAxED,sDAA0D;AAK1D,SAAS,0BAA0B,CAClC,KAAc;IAEd,OAAO,CACN,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,CAAC,eAAe,IAAI,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAC7D,CAAC;AACH,CAAC;AASD,SAAgB,mBAAmB,CAAC,QAAwB;IAC3D,MAAM,UAAU,GAA4B,EAAE,CAAC;IAG/C,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,EAAE,CAAC;IACX,CAAC;IAGD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAEnC,IAAI,IAAI,CAAC,IAAI,KAAK,gCAAgC,EAAE,CAAC;YAEpD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;YACxC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;YAGzC,IAAI,aAAiC,CAAC;YACtC,IAAI,0BAA0B,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;YACvC,CAAC;YAID,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBAE3B,IAAI,CAAC,SAAS,IAAI,CAAC,IAAA,gCAAkB,EAAC,SAAS,CAAC,EAAE,CAAC;oBAClD,UAAU,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,OAAO;wBACb,WAAW,EAAE,eAAe,IAAI,CAAC,IAAI,0GAA0G;wBAC/I,cAAc,EAAE,EAAE;qBAClB,CAAC,CAAC;gBACJ,CAAC;gBAID,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzD,UAAU,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,OAAO;wBACb,WAAW,EAAE,eAAe,IAAI,CAAC,IAAI,sIAAsI;wBAC3K,cAAc,EAAE,EAAE;qBAClB,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"agent-prompt.js","sourceRoot":"","sources":["../../../src/validation/checks/agent-prompt.ts"],"names":[],"mappings":";;AA4BA,kDAiDC;AAxED,sDAA0D;AAK1D,SAAS,0BAA0B,CAClC,KAAc;IAEd,OAAO,CACN,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,CAAC,eAAe,IAAI,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAC7D,CAAC;AACH,CAAC;AASD,SAAgB,mBAAmB,CAAC,QAAwB;IAC3D,MAAM,UAAU,GAA4B,EAAE,CAAC;IAG/C,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,EAAE,CAAC;IACX,CAAC;IAGD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAEnC,IAAI,IAAI,CAAC,IAAI,KAAK,gCAAgC,EAAE,CAAC;YAEpD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;YACxC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;YAGzC,IAAI,aAAiC,CAAC;YACtC,IAAI,0BAA0B,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;YACvC,CAAC;YAID,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;gBAE1D,IAAI,CAAC,SAAS,IAAI,CAAC,IAAA,gCAAkB,EAAC,SAAS,CAAC,EAAE,CAAC;oBAClD,UAAU,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,OAAO;wBACb,WAAW,EAAE,eAAe,IAAI,CAAC,IAAI,0GAA0G;wBAC/I,cAAc,EAAE,EAAE;qBAClB,CAAC,CAAC;gBACJ,CAAC;gBAID,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzD,UAAU,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,OAAO;wBACb,WAAW,EAAE,eAAe,IAAI,CAAC,IAAI,sIAAsI;wBAC3K,cAAc,EAAE,EAAE;qBAClB,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateConnections = validateConnections;
4
4
  const n8n_workflow_1 = require("n8n-workflow");
5
+ const node_helpers_1 = require("../../utils/node-helpers");
5
6
  const resolve_connections_1 = require("../../validation/utils/resolve-connections");
6
7
  function getProvidedInputTypes(nodeConnections) {
7
8
  const providedInputTypes = new Map();
@@ -91,14 +92,43 @@ function checkMergeNodeConnections(nodeInfo, nodeConnections) {
91
92
  }
92
93
  return issues;
93
94
  }
95
+ function checkSubNodeRootConnections(workflow, nodeInfo, nodesByName) {
96
+ const issues = [];
97
+ const { node, nodeType, resolvedOutputs } = nodeInfo;
98
+ if (!resolvedOutputs || resolvedOutputs.size === 0) {
99
+ return issues;
100
+ }
101
+ if (!(0, node_helpers_1.isSubNode)(nodeType, node)) {
102
+ return issues;
103
+ }
104
+ const aiOutputs = Array.from(resolvedOutputs).filter((output) => output.startsWith('ai_'));
105
+ if (aiOutputs.length === 0) {
106
+ return issues;
107
+ }
108
+ const nodeConnections = workflow.connections?.[node.name];
109
+ for (const outputType of aiOutputs) {
110
+ const connectionsForType = nodeConnections?.[outputType];
111
+ const hasRootConnection = connectionsForType?.some((connectionGroup) => connectionGroup?.some((connection) => connection?.node && nodesByName.has(connection.node)));
112
+ if (!hasRootConnection) {
113
+ issues.push({
114
+ type: 'critical',
115
+ description: `Sub-node ${node.name} (${node.type}) provides ${outputType} but is not connected to a root node.`,
116
+ pointsDeducted: 50,
117
+ });
118
+ }
119
+ }
120
+ return issues;
121
+ }
94
122
  function validateConnections(workflow, nodeTypes) {
95
123
  const violations = [];
96
124
  if (!workflow.connections) {
97
125
  workflow.connections = {};
98
126
  }
99
127
  const connectionsByDestination = (0, n8n_workflow_1.mapConnectionsByDestination)(workflow.connections);
128
+ const nodesByName = new Map(workflow.nodes.map((node) => [node.name, node]));
129
+ const nodeTypeMap = new Map(nodeTypes.map((type) => [type.name, type]));
100
130
  for (const node of workflow.nodes) {
101
- const nodeType = nodeTypes.find((type) => type.name === node.type);
131
+ const nodeType = nodeTypeMap.get(node.type);
102
132
  if (!nodeType) {
103
133
  violations.push({
104
134
  type: 'critical',
@@ -125,6 +155,7 @@ function validateConnections(workflow, nodeTypes) {
125
155
  violations.push(...checkMissingRequiredInputs(nodeInfo, providedInputTypes));
126
156
  violations.push(...checkUnsupportedConnections(nodeInfo, providedInputTypes));
127
157
  violations.push(...checkMergeNodeConnections(nodeInfo, nodeConnections));
158
+ violations.push(...checkSubNodeRootConnections(workflow, nodeInfo, nodesByName));
128
159
  }
129
160
  return violations;
130
161
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connections.js","sourceRoot":"","sources":["../../../src/validation/checks/connections.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connections.js","sourceRoot":"","sources":["../../../src/validation/checks/connections.ts"],"names":[],"mappings":"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"}