agentic-qe 2.5.5 → 2.5.7

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 (168) hide show
  1. package/.claude/agents/n8n/n8n-base-agent.md +376 -0
  2. package/.claude/agents/n8n/n8n-bdd-scenario-tester.md +613 -0
  3. package/.claude/agents/n8n/n8n-chaos-tester.md +654 -0
  4. package/.claude/agents/n8n/n8n-ci-orchestrator.md +850 -0
  5. package/.claude/agents/n8n/n8n-compliance-validator.md +685 -0
  6. package/.claude/agents/n8n/n8n-expression-validator.md +560 -0
  7. package/.claude/agents/n8n/n8n-integration-test.md +602 -0
  8. package/.claude/agents/n8n/n8n-monitoring-validator.md +589 -0
  9. package/.claude/agents/n8n/n8n-node-validator.md +455 -0
  10. package/.claude/agents/n8n/n8n-performance-tester.md +630 -0
  11. package/.claude/agents/n8n/n8n-security-auditor.md +786 -0
  12. package/.claude/agents/n8n/n8n-trigger-test.md +500 -0
  13. package/.claude/agents/n8n/n8n-unit-tester.md +633 -0
  14. package/.claude/agents/n8n/n8n-version-comparator.md +567 -0
  15. package/.claude/agents/n8n/n8n-workflow-executor.md +392 -0
  16. package/.claude/skills/n8n-expression-testing/SKILL.md +434 -0
  17. package/.claude/skills/n8n-integration-testing-patterns/SKILL.md +540 -0
  18. package/.claude/skills/n8n-security-testing/SKILL.md +599 -0
  19. package/.claude/skills/n8n-trigger-testing-strategies/SKILL.md +541 -0
  20. package/.claude/skills/n8n-workflow-testing-fundamentals/SKILL.md +447 -0
  21. package/CHANGELOG.md +111 -0
  22. package/README.md +7 -4
  23. package/dist/adapters/MemoryStoreAdapter.d.ts +75 -123
  24. package/dist/adapters/MemoryStoreAdapter.d.ts.map +1 -1
  25. package/dist/adapters/MemoryStoreAdapter.js +204 -219
  26. package/dist/adapters/MemoryStoreAdapter.js.map +1 -1
  27. package/dist/agents/AccessibilityAllyAgent.d.ts.map +1 -1
  28. package/dist/agents/AccessibilityAllyAgent.js +17 -1
  29. package/dist/agents/AccessibilityAllyAgent.js.map +1 -1
  30. package/dist/agents/BaseAgent.d.ts +18 -250
  31. package/dist/agents/BaseAgent.d.ts.map +1 -1
  32. package/dist/agents/BaseAgent.js +122 -520
  33. package/dist/agents/BaseAgent.js.map +1 -1
  34. package/dist/agents/n8n/N8nAPIClient.d.ts +121 -0
  35. package/dist/agents/n8n/N8nAPIClient.d.ts.map +1 -0
  36. package/dist/agents/n8n/N8nAPIClient.js +367 -0
  37. package/dist/agents/n8n/N8nAPIClient.js.map +1 -0
  38. package/dist/agents/n8n/N8nAuditPersistence.d.ts +120 -0
  39. package/dist/agents/n8n/N8nAuditPersistence.d.ts.map +1 -0
  40. package/dist/agents/n8n/N8nAuditPersistence.js +473 -0
  41. package/dist/agents/n8n/N8nAuditPersistence.js.map +1 -0
  42. package/dist/agents/n8n/N8nBDDScenarioTesterAgent.d.ts +159 -0
  43. package/dist/agents/n8n/N8nBDDScenarioTesterAgent.d.ts.map +1 -0
  44. package/dist/agents/n8n/N8nBDDScenarioTesterAgent.js +697 -0
  45. package/dist/agents/n8n/N8nBDDScenarioTesterAgent.js.map +1 -0
  46. package/dist/agents/n8n/N8nBaseAgent.d.ts +126 -0
  47. package/dist/agents/n8n/N8nBaseAgent.d.ts.map +1 -0
  48. package/dist/agents/n8n/N8nBaseAgent.js +446 -0
  49. package/dist/agents/n8n/N8nBaseAgent.js.map +1 -0
  50. package/dist/agents/n8n/N8nCIOrchestratorAgent.d.ts +164 -0
  51. package/dist/agents/n8n/N8nCIOrchestratorAgent.d.ts.map +1 -0
  52. package/dist/agents/n8n/N8nCIOrchestratorAgent.js +610 -0
  53. package/dist/agents/n8n/N8nCIOrchestratorAgent.js.map +1 -0
  54. package/dist/agents/n8n/N8nChaosTesterAgent.d.ts +205 -0
  55. package/dist/agents/n8n/N8nChaosTesterAgent.d.ts.map +1 -0
  56. package/dist/agents/n8n/N8nChaosTesterAgent.js +729 -0
  57. package/dist/agents/n8n/N8nChaosTesterAgent.js.map +1 -0
  58. package/dist/agents/n8n/N8nComplianceValidatorAgent.d.ts +228 -0
  59. package/dist/agents/n8n/N8nComplianceValidatorAgent.d.ts.map +1 -0
  60. package/dist/agents/n8n/N8nComplianceValidatorAgent.js +986 -0
  61. package/dist/agents/n8n/N8nComplianceValidatorAgent.js.map +1 -0
  62. package/dist/agents/n8n/N8nContractTesterAgent.d.ts +213 -0
  63. package/dist/agents/n8n/N8nContractTesterAgent.d.ts.map +1 -0
  64. package/dist/agents/n8n/N8nContractTesterAgent.js +989 -0
  65. package/dist/agents/n8n/N8nContractTesterAgent.js.map +1 -0
  66. package/dist/agents/n8n/N8nExpressionValidatorAgent.d.ts +99 -0
  67. package/dist/agents/n8n/N8nExpressionValidatorAgent.d.ts.map +1 -0
  68. package/dist/agents/n8n/N8nExpressionValidatorAgent.js +632 -0
  69. package/dist/agents/n8n/N8nExpressionValidatorAgent.js.map +1 -0
  70. package/dist/agents/n8n/N8nFailureModeTesterAgent.d.ts +238 -0
  71. package/dist/agents/n8n/N8nFailureModeTesterAgent.d.ts.map +1 -0
  72. package/dist/agents/n8n/N8nFailureModeTesterAgent.js +956 -0
  73. package/dist/agents/n8n/N8nFailureModeTesterAgent.js.map +1 -0
  74. package/dist/agents/n8n/N8nIdempotencyTesterAgent.d.ts +242 -0
  75. package/dist/agents/n8n/N8nIdempotencyTesterAgent.d.ts.map +1 -0
  76. package/dist/agents/n8n/N8nIdempotencyTesterAgent.js +992 -0
  77. package/dist/agents/n8n/N8nIdempotencyTesterAgent.js.map +1 -0
  78. package/dist/agents/n8n/N8nIntegrationTestAgent.d.ts +104 -0
  79. package/dist/agents/n8n/N8nIntegrationTestAgent.d.ts.map +1 -0
  80. package/dist/agents/n8n/N8nIntegrationTestAgent.js +653 -0
  81. package/dist/agents/n8n/N8nIntegrationTestAgent.js.map +1 -0
  82. package/dist/agents/n8n/N8nMonitoringValidatorAgent.d.ts +210 -0
  83. package/dist/agents/n8n/N8nMonitoringValidatorAgent.d.ts.map +1 -0
  84. package/dist/agents/n8n/N8nMonitoringValidatorAgent.js +669 -0
  85. package/dist/agents/n8n/N8nMonitoringValidatorAgent.js.map +1 -0
  86. package/dist/agents/n8n/N8nNodeValidatorAgent.d.ts +142 -0
  87. package/dist/agents/n8n/N8nNodeValidatorAgent.d.ts.map +1 -0
  88. package/dist/agents/n8n/N8nNodeValidatorAgent.js +1090 -0
  89. package/dist/agents/n8n/N8nNodeValidatorAgent.js.map +1 -0
  90. package/dist/agents/n8n/N8nPerformanceTesterAgent.d.ts +198 -0
  91. package/dist/agents/n8n/N8nPerformanceTesterAgent.d.ts.map +1 -0
  92. package/dist/agents/n8n/N8nPerformanceTesterAgent.js +653 -0
  93. package/dist/agents/n8n/N8nPerformanceTesterAgent.js.map +1 -0
  94. package/dist/agents/n8n/N8nReplayabilityTesterAgent.d.ts +245 -0
  95. package/dist/agents/n8n/N8nReplayabilityTesterAgent.d.ts.map +1 -0
  96. package/dist/agents/n8n/N8nReplayabilityTesterAgent.js +952 -0
  97. package/dist/agents/n8n/N8nReplayabilityTesterAgent.js.map +1 -0
  98. package/dist/agents/n8n/N8nSecretsHygieneAuditorAgent.d.ts +325 -0
  99. package/dist/agents/n8n/N8nSecretsHygieneAuditorAgent.d.ts.map +1 -0
  100. package/dist/agents/n8n/N8nSecretsHygieneAuditorAgent.js +1187 -0
  101. package/dist/agents/n8n/N8nSecretsHygieneAuditorAgent.js.map +1 -0
  102. package/dist/agents/n8n/N8nSecurityAuditorAgent.d.ts +91 -0
  103. package/dist/agents/n8n/N8nSecurityAuditorAgent.d.ts.map +1 -0
  104. package/dist/agents/n8n/N8nSecurityAuditorAgent.js +825 -0
  105. package/dist/agents/n8n/N8nSecurityAuditorAgent.js.map +1 -0
  106. package/dist/agents/n8n/N8nTestHarness.d.ts +131 -0
  107. package/dist/agents/n8n/N8nTestHarness.d.ts.map +1 -0
  108. package/dist/agents/n8n/N8nTestHarness.js +456 -0
  109. package/dist/agents/n8n/N8nTestHarness.js.map +1 -0
  110. package/dist/agents/n8n/N8nTriggerTestAgent.d.ts +119 -0
  111. package/dist/agents/n8n/N8nTriggerTestAgent.d.ts.map +1 -0
  112. package/dist/agents/n8n/N8nTriggerTestAgent.js +652 -0
  113. package/dist/agents/n8n/N8nTriggerTestAgent.js.map +1 -0
  114. package/dist/agents/n8n/N8nUnitTesterAgent.d.ts +130 -0
  115. package/dist/agents/n8n/N8nUnitTesterAgent.d.ts.map +1 -0
  116. package/dist/agents/n8n/N8nUnitTesterAgent.js +522 -0
  117. package/dist/agents/n8n/N8nUnitTesterAgent.js.map +1 -0
  118. package/dist/agents/n8n/N8nVersionComparatorAgent.d.ts +201 -0
  119. package/dist/agents/n8n/N8nVersionComparatorAgent.d.ts.map +1 -0
  120. package/dist/agents/n8n/N8nVersionComparatorAgent.js +645 -0
  121. package/dist/agents/n8n/N8nVersionComparatorAgent.js.map +1 -0
  122. package/dist/agents/n8n/N8nWorkflowExecutorAgent.d.ts +120 -0
  123. package/dist/agents/n8n/N8nWorkflowExecutorAgent.d.ts.map +1 -0
  124. package/dist/agents/n8n/N8nWorkflowExecutorAgent.js +347 -0
  125. package/dist/agents/n8n/N8nWorkflowExecutorAgent.js.map +1 -0
  126. package/dist/agents/n8n/index.d.ts +119 -0
  127. package/dist/agents/n8n/index.d.ts.map +1 -0
  128. package/dist/agents/n8n/index.js +298 -0
  129. package/dist/agents/n8n/index.js.map +1 -0
  130. package/dist/agents/n8n/types.d.ts +486 -0
  131. package/dist/agents/n8n/types.d.ts.map +1 -0
  132. package/dist/agents/n8n/types.js +8 -0
  133. package/dist/agents/n8n/types.js.map +1 -0
  134. package/dist/agents/utils/generators.d.ts +30 -0
  135. package/dist/agents/utils/generators.d.ts.map +1 -0
  136. package/dist/agents/utils/generators.js +44 -0
  137. package/dist/agents/utils/generators.js.map +1 -0
  138. package/dist/agents/utils/index.d.ts +10 -0
  139. package/dist/agents/utils/index.d.ts.map +1 -0
  140. package/dist/agents/utils/index.js +19 -0
  141. package/dist/agents/utils/index.js.map +1 -0
  142. package/dist/agents/utils/validation.d.ts +72 -0
  143. package/dist/agents/utils/validation.d.ts.map +1 -0
  144. package/dist/agents/utils/validation.js +75 -0
  145. package/dist/agents/utils/validation.js.map +1 -0
  146. package/dist/cli/init/agents.d.ts.map +1 -1
  147. package/dist/cli/init/agents.js +29 -0
  148. package/dist/cli/init/agents.js.map +1 -1
  149. package/dist/cli/init/skills.d.ts.map +1 -1
  150. package/dist/cli/init/skills.js +7 -1
  151. package/dist/cli/init/skills.js.map +1 -1
  152. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  153. package/dist/core/memory/SwarmMemoryManager.d.ts +114 -90
  154. package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
  155. package/dist/core/memory/SwarmMemoryManager.js +277 -235
  156. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  157. package/dist/learning/baselines/StandardTaskSuite.d.ts.map +1 -1
  158. package/dist/learning/baselines/StandardTaskSuite.js +38 -0
  159. package/dist/learning/baselines/StandardTaskSuite.js.map +1 -1
  160. package/dist/mcp/server-instructions.d.ts +1 -1
  161. package/dist/mcp/server-instructions.js +1 -1
  162. package/dist/types/memory-interfaces.d.ts +76 -68
  163. package/dist/types/memory-interfaces.d.ts.map +1 -1
  164. package/dist/types/memory-interfaces.js +3 -0
  165. package/dist/types/memory-interfaces.js.map +1 -1
  166. package/docs/reference/agents.md +91 -2
  167. package/docs/reference/skills.md +97 -2
  168. package/package.json +2 -2
@@ -0,0 +1,120 @@
1
+ /**
2
+ * N8nWorkflowExecutorAgent
3
+ *
4
+ * Executes and validates n8n workflows programmatically with:
5
+ * - Test data injection
6
+ * - Output assertions
7
+ * - Data flow validation
8
+ * - Performance measurement
9
+ * - Error handling validation
10
+ */
11
+ import { N8nBaseAgent, N8nAgentConfig } from './N8nBaseAgent';
12
+ import { N8nWorkflowExecutorConfig } from './types';
13
+ import { QETask } from '../../types';
14
+ export interface WorkflowExecutionResult {
15
+ workflowId: string;
16
+ executionId: string;
17
+ status: 'success' | 'failed' | 'error';
18
+ duration: number;
19
+ nodesExecuted: number;
20
+ totalNodes: number;
21
+ dataFlowValid: boolean;
22
+ assertions: AssertionResult[];
23
+ metrics: ExecutionMetrics;
24
+ errors: ExecutionError[];
25
+ }
26
+ export interface AssertionResult {
27
+ name: string;
28
+ expected: unknown;
29
+ actual: unknown;
30
+ passed: boolean;
31
+ node?: string;
32
+ }
33
+ export interface ExecutionMetrics {
34
+ totalDuration: number;
35
+ nodeMetrics: NodeMetric[];
36
+ bottleneck: string | null;
37
+ throughput?: number;
38
+ }
39
+ export interface NodeMetric {
40
+ node: string;
41
+ duration: number;
42
+ percentage: number;
43
+ status: string;
44
+ }
45
+ export interface ExecutionError {
46
+ node: string;
47
+ message: string;
48
+ type: string;
49
+ recoverable: boolean;
50
+ }
51
+ export interface ExecutionTask extends QETask {
52
+ type: 'workflow-execution';
53
+ target: string;
54
+ input?: Record<string, unknown>;
55
+ assertions?: Array<{
56
+ name: string;
57
+ node?: string;
58
+ field: string;
59
+ expected: unknown;
60
+ operator?: 'equals' | 'contains' | 'matches' | 'greaterThan' | 'lessThan';
61
+ }>;
62
+ options?: {
63
+ timeout?: number;
64
+ validateDataFlow?: boolean;
65
+ validateStructure?: boolean;
66
+ iterations?: number;
67
+ };
68
+ }
69
+ export declare class N8nWorkflowExecutorAgent extends N8nBaseAgent {
70
+ private readonly executorConfig;
71
+ constructor(config: N8nAgentConfig & Partial<N8nWorkflowExecutorConfig>);
72
+ protected performTask(task: QETask): Promise<WorkflowExecutionResult>;
73
+ /**
74
+ * Execute workflow and validate results
75
+ */
76
+ executeAndValidate(task: ExecutionTask): Promise<WorkflowExecutionResult>;
77
+ /**
78
+ * Execute workflow multiple times for reliability testing
79
+ */
80
+ executeMultiple(workflowId: string, iterations: number, input?: Record<string, unknown>): Promise<{
81
+ results: WorkflowExecutionResult[];
82
+ summary: {
83
+ total: number;
84
+ passed: number;
85
+ failed: number;
86
+ avgDuration: number;
87
+ successRate: number;
88
+ };
89
+ }>;
90
+ /**
91
+ * Test error handling by injecting invalid data
92
+ */
93
+ testErrorHandling(workflowId: string, invalidInput: Record<string, unknown>, expectedErrorNode?: string): Promise<{
94
+ errorHandled: boolean;
95
+ errorNode: string | null;
96
+ errorMessage: string | null;
97
+ recoveryBehavior: string;
98
+ }>;
99
+ /**
100
+ * Validate data flow between nodes
101
+ */
102
+ private validateDataFlow;
103
+ /**
104
+ * Run assertions against execution results
105
+ */
106
+ private runAssertions;
107
+ /**
108
+ * Extract errors from execution
109
+ */
110
+ private extractErrors;
111
+ /**
112
+ * Create error result when execution fails
113
+ */
114
+ private createErrorResult;
115
+ /**
116
+ * Get value from object by dot-notation path
117
+ */
118
+ private getValueByPath;
119
+ }
120
+ //# sourceMappingURL=N8nWorkflowExecutorAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"N8nWorkflowExecutorAgent.d.ts","sourceRoot":"","sources":["../../../src/agents/n8n/N8nWorkflowExecutorAgent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,347 @@
1
+ "use strict";
2
+ /**
3
+ * N8nWorkflowExecutorAgent
4
+ *
5
+ * Executes and validates n8n workflows programmatically with:
6
+ * - Test data injection
7
+ * - Output assertions
8
+ * - Data flow validation
9
+ * - Performance measurement
10
+ * - Error handling validation
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.N8nWorkflowExecutorAgent = void 0;
14
+ const N8nBaseAgent_1 = require("./N8nBaseAgent");
15
+ class N8nWorkflowExecutorAgent extends N8nBaseAgent_1.N8nBaseAgent {
16
+ constructor(config) {
17
+ const capabilities = [
18
+ {
19
+ name: 'workflow-execution',
20
+ version: '1.0.0',
21
+ description: 'Execute n8n workflows with test data injection',
22
+ parameters: { timeout: config.timeout ?? 30000 },
23
+ },
24
+ {
25
+ name: 'output-assertion',
26
+ version: '1.0.0',
27
+ description: 'Assert expected outputs from workflow execution',
28
+ parameters: {},
29
+ },
30
+ {
31
+ name: 'data-flow-validation',
32
+ version: '1.0.0',
33
+ description: 'Validate data flows correctly between nodes',
34
+ parameters: {},
35
+ },
36
+ {
37
+ name: 'performance-measurement',
38
+ version: '1.0.0',
39
+ description: 'Measure and analyze execution performance',
40
+ parameters: {},
41
+ },
42
+ ];
43
+ super({
44
+ ...config,
45
+ type: 'n8n-workflow-executor',
46
+ capabilities: [...capabilities, ...(config.capabilities || [])],
47
+ });
48
+ this.executorConfig = {
49
+ n8nConfig: config.n8nConfig,
50
+ timeout: config.timeout ?? 30000,
51
+ retries: config.retries ?? 3,
52
+ validateBeforeExecution: config.validateBeforeExecution ?? true,
53
+ };
54
+ }
55
+ async performTask(task) {
56
+ const execTask = task;
57
+ if (execTask.type !== 'workflow-execution') {
58
+ throw new Error(`Unsupported task type: ${execTask.type}`);
59
+ }
60
+ return this.executeAndValidate(execTask);
61
+ }
62
+ /**
63
+ * Execute workflow and validate results
64
+ */
65
+ async executeAndValidate(task) {
66
+ const workflowId = task.target;
67
+ const startTime = Date.now();
68
+ // Get workflow
69
+ const workflow = await this.getWorkflow(workflowId);
70
+ // Optionally validate structure first
71
+ if (task.options?.validateStructure) {
72
+ const validation = this.validateWorkflowStructure(workflow);
73
+ if (!validation.valid) {
74
+ return this.createErrorResult(workflowId, 'Structure validation failed', startTime);
75
+ }
76
+ }
77
+ // Execute workflow
78
+ let execution;
79
+ try {
80
+ execution = await this.executeWorkflow(workflowId, task.input, {
81
+ waitForCompletion: true,
82
+ timeout: task.options?.timeout ?? this.executorConfig.timeout,
83
+ });
84
+ }
85
+ catch (error) {
86
+ return this.createErrorResult(workflowId, error instanceof Error ? error.message : 'Execution failed', startTime);
87
+ }
88
+ // Calculate metrics
89
+ const metrics = this.calculateExecutionMetrics(execution);
90
+ // Validate data flow
91
+ let dataFlowValid = true;
92
+ if (task.options?.validateDataFlow) {
93
+ dataFlowValid = this.validateDataFlow(workflow, execution);
94
+ }
95
+ // Run assertions
96
+ const assertions = task.assertions
97
+ ? this.runAssertions(execution, task.assertions)
98
+ : [];
99
+ // Extract errors
100
+ const errors = this.extractErrors(execution);
101
+ // Determine overall status
102
+ const allAssertionsPassed = assertions.every(a => a.passed);
103
+ const executionSucceeded = execution.status === 'success';
104
+ const status = executionSucceeded && allAssertionsPassed && dataFlowValid
105
+ ? 'success'
106
+ : 'failed';
107
+ const result = {
108
+ workflowId,
109
+ executionId: execution.id,
110
+ status,
111
+ duration: Date.now() - startTime,
112
+ nodesExecuted: Object.keys(execution.data?.resultData?.runData || {}).length,
113
+ totalNodes: workflow.nodes.length,
114
+ dataFlowValid,
115
+ assertions,
116
+ metrics: {
117
+ totalDuration: metrics.totalDuration,
118
+ nodeMetrics: metrics.nodeMetrics,
119
+ bottleneck: metrics.bottleneck,
120
+ },
121
+ errors,
122
+ };
123
+ // Store result
124
+ await this.storeTestResult(`execution:${execution.id}`, result);
125
+ // Emit completion event
126
+ this.emitEvent('workflow.execution.validated', {
127
+ workflowId,
128
+ executionId: execution.id,
129
+ status,
130
+ duration: result.duration,
131
+ });
132
+ return result;
133
+ }
134
+ /**
135
+ * Execute workflow multiple times for reliability testing
136
+ */
137
+ async executeMultiple(workflowId, iterations, input) {
138
+ const results = [];
139
+ for (let i = 0; i < iterations; i++) {
140
+ const result = await this.executeAndValidate({
141
+ type: 'workflow-execution',
142
+ target: workflowId,
143
+ input,
144
+ id: `multi-exec-${i}`,
145
+ priority: 5, // medium priority (1-10 scale)
146
+ payload: { workflowId, input },
147
+ status: 'pending',
148
+ });
149
+ results.push(result);
150
+ }
151
+ const passed = results.filter(r => r.status === 'success').length;
152
+ const totalDuration = results.reduce((sum, r) => sum + r.duration, 0);
153
+ return {
154
+ results,
155
+ summary: {
156
+ total: iterations,
157
+ passed,
158
+ failed: iterations - passed,
159
+ avgDuration: totalDuration / iterations,
160
+ successRate: (passed / iterations) * 100,
161
+ },
162
+ };
163
+ }
164
+ /**
165
+ * Test error handling by injecting invalid data
166
+ */
167
+ async testErrorHandling(workflowId, invalidInput, expectedErrorNode) {
168
+ try {
169
+ const execution = await this.executeWorkflow(workflowId, invalidInput, {
170
+ waitForCompletion: true,
171
+ timeout: this.executorConfig.timeout,
172
+ });
173
+ const error = execution.data?.resultData?.error;
174
+ return {
175
+ errorHandled: execution.status === 'failed' && !!error,
176
+ errorNode: error?.node || null,
177
+ errorMessage: error?.message || null,
178
+ recoveryBehavior: expectedErrorNode && error?.node === expectedErrorNode
179
+ ? 'expected_failure'
180
+ : error
181
+ ? 'unexpected_failure'
182
+ : 'no_error',
183
+ };
184
+ }
185
+ catch (error) {
186
+ return {
187
+ errorHandled: false,
188
+ errorNode: null,
189
+ errorMessage: error instanceof Error ? error.message : 'Unknown error',
190
+ recoveryBehavior: 'execution_error',
191
+ };
192
+ }
193
+ }
194
+ /**
195
+ * Validate data flow between nodes
196
+ */
197
+ validateDataFlow(workflow, execution) {
198
+ const runData = execution.data?.resultData?.runData;
199
+ if (!runData)
200
+ return false;
201
+ // Check each connection has data flowing through
202
+ for (const [sourceName, connections] of Object.entries(workflow.connections)) {
203
+ const sourceData = runData[sourceName];
204
+ if (!sourceData?.[0]?.data?.main)
205
+ continue;
206
+ for (const output of connections.main) {
207
+ for (const conn of output) {
208
+ const targetData = runData[conn.node];
209
+ // Target should have received data from source
210
+ if (!targetData?.[0]?.source?.some(s => s.previousNode === sourceName)) {
211
+ // Data flow broken
212
+ return false;
213
+ }
214
+ }
215
+ }
216
+ }
217
+ return true;
218
+ }
219
+ /**
220
+ * Run assertions against execution results
221
+ */
222
+ runAssertions(execution, assertions) {
223
+ if (!assertions)
224
+ return [];
225
+ const runData = execution.data?.resultData?.runData;
226
+ const results = [];
227
+ for (const assertion of assertions) {
228
+ let actual;
229
+ let passed = false;
230
+ if (assertion.node && runData?.[assertion.node]) {
231
+ // Get value from specific node output
232
+ const nodeData = runData[assertion.node][0]?.data?.main?.[0]?.[0]?.json;
233
+ actual = this.getValueByPath(nodeData, assertion.field);
234
+ }
235
+ else {
236
+ // Get from last node output
237
+ const lastNode = execution.data?.resultData?.lastNodeExecuted;
238
+ if (lastNode && runData?.[lastNode]) {
239
+ const nodeData = runData[lastNode][0]?.data?.main?.[0]?.[0]?.json;
240
+ actual = this.getValueByPath(nodeData, assertion.field);
241
+ }
242
+ }
243
+ // Evaluate assertion
244
+ switch (assertion.operator || 'equals') {
245
+ case 'equals':
246
+ passed = actual === assertion.expected;
247
+ break;
248
+ case 'contains':
249
+ passed = String(actual).includes(String(assertion.expected));
250
+ break;
251
+ case 'matches':
252
+ passed = new RegExp(String(assertion.expected)).test(String(actual));
253
+ break;
254
+ case 'greaterThan':
255
+ passed = Number(actual) > Number(assertion.expected);
256
+ break;
257
+ case 'lessThan':
258
+ passed = Number(actual) < Number(assertion.expected);
259
+ break;
260
+ }
261
+ results.push({
262
+ name: assertion.name,
263
+ expected: assertion.expected,
264
+ actual,
265
+ passed,
266
+ node: assertion.node,
267
+ });
268
+ }
269
+ return results;
270
+ }
271
+ /**
272
+ * Extract errors from execution
273
+ */
274
+ extractErrors(execution) {
275
+ const errors = [];
276
+ const runData = execution.data?.resultData?.runData;
277
+ // Check for workflow-level error
278
+ const workflowError = execution.data?.resultData?.error;
279
+ if (workflowError) {
280
+ errors.push({
281
+ node: workflowError.node || 'unknown',
282
+ message: workflowError.message,
283
+ type: 'workflow_error',
284
+ recoverable: false,
285
+ });
286
+ }
287
+ // Check for node-level errors
288
+ if (runData) {
289
+ for (const [nodeName, nodeRuns] of Object.entries(runData)) {
290
+ for (const run of nodeRuns) {
291
+ if (run.executionStatus === 'error' && run.error) {
292
+ errors.push({
293
+ node: nodeName,
294
+ message: run.error.message,
295
+ type: 'node_error',
296
+ recoverable: true, // Could be retried
297
+ });
298
+ }
299
+ }
300
+ }
301
+ }
302
+ return errors;
303
+ }
304
+ /**
305
+ * Create error result when execution fails
306
+ */
307
+ createErrorResult(workflowId, errorMessage, startTime) {
308
+ return {
309
+ workflowId,
310
+ executionId: '',
311
+ status: 'error',
312
+ duration: Date.now() - startTime,
313
+ nodesExecuted: 0,
314
+ totalNodes: 0,
315
+ dataFlowValid: false,
316
+ assertions: [],
317
+ metrics: {
318
+ totalDuration: 0,
319
+ nodeMetrics: [],
320
+ bottleneck: null,
321
+ },
322
+ errors: [{
323
+ node: 'workflow',
324
+ message: errorMessage,
325
+ type: 'execution_error',
326
+ recoverable: false,
327
+ }],
328
+ };
329
+ }
330
+ /**
331
+ * Get value from object by dot-notation path
332
+ */
333
+ getValueByPath(obj, path) {
334
+ if (!obj || typeof obj !== 'object')
335
+ return undefined;
336
+ const parts = path.split('.');
337
+ let current = obj;
338
+ for (const part of parts) {
339
+ if (current === null || current === undefined)
340
+ return undefined;
341
+ current = current[part];
342
+ }
343
+ return current;
344
+ }
345
+ }
346
+ exports.N8nWorkflowExecutorAgent = N8nWorkflowExecutorAgent;
347
+ //# sourceMappingURL=N8nWorkflowExecutorAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"N8nWorkflowExecutorAgent.js","sourceRoot":"","sources":["../../../src/agents/n8n/N8nWorkflowExecutorAgent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * N8n Testing Agents - Index
3
+ *
4
+ * Exports all n8n testing agent implementations
5
+ *
6
+ * Phase 1: Core Testing Agents
7
+ * - WorkflowExecutor: Execute and validate workflows
8
+ * - NodeValidator: Validate node configurations
9
+ * - TriggerTest: Test workflow triggers
10
+ * - ExpressionValidator: Validate expressions and code
11
+ * - IntegrationTest: Test external integrations
12
+ * - SecurityAuditor: Security vulnerability scanning
13
+ *
14
+ * Phase 2: Advanced Testing Agents
15
+ * - UnitTester: Node-level unit testing
16
+ * - PerformanceTester: Performance benchmarking
17
+ * - CIOrchestrator: CI/CD pipeline orchestration
18
+ *
19
+ * Phase 3: Quality Assurance Agents
20
+ * - VersionComparator: Version comparison and migration
21
+ * - BDDScenarioTester: BDD/Gherkin scenario testing
22
+ * - MonitoringValidator: Monitoring and observability validation
23
+ *
24
+ * Phase 4: Enterprise Agents
25
+ * - ComplianceValidator: Regulatory compliance (GDPR, HIPAA, etc.)
26
+ * - ChaosTester: Chaos engineering and resilience testing
27
+ *
28
+ * Phase 5: Data & Reliability Agents
29
+ * - ContractTester: Data-shape/schema validation at node boundaries
30
+ * - ReplayabilityTester: Determinism and replay testing
31
+ * - FailureModeTester: Retry/error handling and resilience testing
32
+ * - IdempotencyTester: Concurrency and duplicate handling testing
33
+ * - SecretsHygieneAuditor: Credential scoping and log leakage detection
34
+ */
35
+ export * from './types';
36
+ export { N8nAPIClient, N8nAPIError } from './N8nAPIClient';
37
+ export { N8nBaseAgent, N8nAgentConfig } from './N8nBaseAgent';
38
+ export { N8nWorkflowExecutorAgent, WorkflowExecutionResult, ExecutionTask, } from './N8nWorkflowExecutorAgent';
39
+ export { N8nNodeValidatorAgent, NodeValidationResult, NodeValidationTask, } from './N8nNodeValidatorAgent';
40
+ export { N8nTriggerTestAgent, TriggerTestTask, } from './N8nTriggerTestAgent';
41
+ export { N8nExpressionValidatorAgent, ExpressionValidationTask, } from './N8nExpressionValidatorAgent';
42
+ export { N8nIntegrationTestAgent, IntegrationTestTask, } from './N8nIntegrationTestAgent';
43
+ export { N8nSecurityAuditorAgent, SecurityAuditTask, } from './N8nSecurityAuditorAgent';
44
+ export { N8nUnitTesterAgent, UnitTestTask, NodeUnitTestResult, } from './N8nUnitTesterAgent';
45
+ export { N8nPerformanceTesterAgent, PerformanceTestTask, PerformanceTestResult, } from './N8nPerformanceTesterAgent';
46
+ export { N8nCIOrchestratorAgent, CITestTask, CITestResult, } from './N8nCIOrchestratorAgent';
47
+ export { N8nVersionComparatorAgent, VersionCompareTask, VersionCompareResult, } from './N8nVersionComparatorAgent';
48
+ export { N8nBDDScenarioTesterAgent, BDDTestTask, BDDTestResult, GherkinScenario, } from './N8nBDDScenarioTesterAgent';
49
+ export { N8nMonitoringValidatorAgent, MonitoringValidationTask, MonitoringValidationResult, } from './N8nMonitoringValidatorAgent';
50
+ export { N8nComplianceValidatorAgent, ComplianceValidationTask, ComplianceValidationResult, ComplianceFramework, } from './N8nComplianceValidatorAgent';
51
+ export { N8nChaosTesterAgent, ChaosTestTask, ChaosTestResult, ChaosExperiment, } from './N8nChaosTesterAgent';
52
+ export { N8nContractTesterAgent, ContractTestTask, ContractTestResult, JsonSchema, SchemaViolation, BoundaryTestResult, } from './N8nContractTesterAgent';
53
+ export { N8nReplayabilityTesterAgent, ReplayabilityTestTask, ReplayabilityTestResult, ExecutionFixture, NodeSnapshot, SnapshotComparison, } from './N8nReplayabilityTesterAgent';
54
+ export { N8nFailureModeTesterAgent, FailureModeTestTask, FailureModeTestResult, RetryAnalysis, ErrorBranchAnalysis, ContinueOnFailAnalysis, } from './N8nFailureModeTesterAgent';
55
+ export { N8nIdempotencyTesterAgent, IdempotencyTestTask, IdempotencyTestResult, DedupKeyAnalysis, ConcurrencyRiskAnalysis, ParallelExecutionAnalysis, WebhookDuplicateAnalysis, } from './N8nIdempotencyTesterAgent';
56
+ export { N8nSecretsHygieneAuditorAgent, SecretsHygieneAuditTask, SecretsHygieneAuditResult, CredentialScopeAnalysis, MaskedFieldAnalysis, LogLeakageAnalysis, EnvironmentAnalysis, HardcodedSecretFinding, } from './N8nSecretsHygieneAuditorAgent';
57
+ export { N8nAuditPersistence, AuditRecord, AuditSummary, ReportOptions, TrendData, PersistenceConfig, getDefaultPersistence, setDefaultPersistence, } from './N8nAuditPersistence';
58
+ import { EventEmitter } from 'events';
59
+ import { MemoryStore } from '../../types';
60
+ import { N8nAPIConfig } from './types';
61
+ import { N8nWorkflowExecutorAgent } from './N8nWorkflowExecutorAgent';
62
+ import { N8nNodeValidatorAgent } from './N8nNodeValidatorAgent';
63
+ import { N8nTriggerTestAgent } from './N8nTriggerTestAgent';
64
+ import { N8nExpressionValidatorAgent } from './N8nExpressionValidatorAgent';
65
+ import { N8nIntegrationTestAgent } from './N8nIntegrationTestAgent';
66
+ import { N8nSecurityAuditorAgent } from './N8nSecurityAuditorAgent';
67
+ import { N8nUnitTesterAgent } from './N8nUnitTesterAgent';
68
+ import { N8nPerformanceTesterAgent } from './N8nPerformanceTesterAgent';
69
+ import { N8nCIOrchestratorAgent } from './N8nCIOrchestratorAgent';
70
+ import { N8nVersionComparatorAgent } from './N8nVersionComparatorAgent';
71
+ import { N8nBDDScenarioTesterAgent } from './N8nBDDScenarioTesterAgent';
72
+ import { N8nMonitoringValidatorAgent } from './N8nMonitoringValidatorAgent';
73
+ import { N8nComplianceValidatorAgent } from './N8nComplianceValidatorAgent';
74
+ import { N8nChaosTesterAgent } from './N8nChaosTesterAgent';
75
+ import { N8nContractTesterAgent } from './N8nContractTesterAgent';
76
+ import { N8nReplayabilityTesterAgent } from './N8nReplayabilityTesterAgent';
77
+ import { N8nFailureModeTesterAgent } from './N8nFailureModeTesterAgent';
78
+ import { N8nIdempotencyTesterAgent } from './N8nIdempotencyTesterAgent';
79
+ import { N8nSecretsHygieneAuditorAgent } from './N8nSecretsHygieneAuditorAgent';
80
+ /**
81
+ * All available n8n agent types
82
+ */
83
+ export type N8nAgentType = 'workflow-executor' | 'node-validator' | 'trigger-test' | 'expression-validator' | 'integration-test' | 'security-auditor' | 'unit-tester' | 'performance-tester' | 'ci-orchestrator' | 'version-comparator' | 'bdd-scenario-tester' | 'monitoring-validator' | 'compliance-validator' | 'chaos-tester' | 'contract-tester' | 'replayability-tester' | 'failure-mode-tester' | 'idempotency-tester' | 'secrets-hygiene-auditor';
84
+ export interface CreateN8nAgentOptions {
85
+ n8nConfig: N8nAPIConfig;
86
+ memoryStore: MemoryStore;
87
+ eventBus: EventEmitter;
88
+ context?: {
89
+ projectId?: string;
90
+ environment?: string;
91
+ };
92
+ }
93
+ /**
94
+ * Factory function to create n8n testing agents
95
+ */
96
+ export declare function createN8nAgent(type: N8nAgentType, options: CreateN8nAgentOptions): N8nNodeValidatorAgent | N8nBDDScenarioTesterAgent | N8nCIOrchestratorAgent | N8nChaosTesterAgent | N8nComplianceValidatorAgent | N8nContractTesterAgent | N8nExpressionValidatorAgent | N8nFailureModeTesterAgent | N8nIdempotencyTesterAgent | N8nIntegrationTestAgent | N8nMonitoringValidatorAgent | N8nPerformanceTesterAgent | N8nReplayabilityTesterAgent | N8nSecretsHygieneAuditorAgent | N8nSecurityAuditorAgent | N8nTriggerTestAgent | N8nUnitTesterAgent | N8nVersionComparatorAgent | N8nWorkflowExecutorAgent;
97
+ /**
98
+ * Get all available n8n agent types
99
+ */
100
+ export declare function getAvailableN8nAgentTypes(): N8nAgentType[];
101
+ /**
102
+ * Agent type descriptions
103
+ */
104
+ export declare const N8N_AGENT_DESCRIPTIONS: Record<N8nAgentType, string>;
105
+ /**
106
+ * Agent type categories for organization
107
+ */
108
+ export declare const N8N_AGENT_CATEGORIES: {
109
+ readonly core: readonly ["workflow-executor", "node-validator", "trigger-test", "expression-validator", "integration-test", "security-auditor"];
110
+ readonly advanced: readonly ["unit-tester", "performance-tester", "ci-orchestrator"];
111
+ readonly quality: readonly ["version-comparator", "bdd-scenario-tester", "monitoring-validator"];
112
+ readonly enterprise: readonly ["compliance-validator", "chaos-tester"];
113
+ readonly reliability: readonly ["contract-tester", "replayability-tester", "failure-mode-tester", "idempotency-tester", "secrets-hygiene-auditor"];
114
+ };
115
+ /**
116
+ * Get agents by category
117
+ */
118
+ export declare function getAgentsByCategory(category: keyof typeof N8N_AGENT_CATEGORIES): N8nAgentType[];
119
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agents/n8n/index.ts"],"names":[],"mappings":"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"}