agentic-qe 2.5.6 → 2.5.8
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.
- package/.claude/agents/n8n/n8n-base-agent.md +376 -0
- package/.claude/agents/n8n/n8n-bdd-scenario-tester.md +613 -0
- package/.claude/agents/n8n/n8n-chaos-tester.md +654 -0
- package/.claude/agents/n8n/n8n-ci-orchestrator.md +850 -0
- package/.claude/agents/n8n/n8n-compliance-validator.md +685 -0
- package/.claude/agents/n8n/n8n-expression-validator.md +560 -0
- package/.claude/agents/n8n/n8n-integration-test.md +602 -0
- package/.claude/agents/n8n/n8n-monitoring-validator.md +589 -0
- package/.claude/agents/n8n/n8n-node-validator.md +455 -0
- package/.claude/agents/n8n/n8n-performance-tester.md +630 -0
- package/.claude/agents/n8n/n8n-security-auditor.md +786 -0
- package/.claude/agents/n8n/n8n-trigger-test.md +500 -0
- package/.claude/agents/n8n/n8n-unit-tester.md +633 -0
- package/.claude/agents/n8n/n8n-version-comparator.md +567 -0
- package/.claude/agents/n8n/n8n-workflow-executor.md +392 -0
- package/.claude/skills/n8n-expression-testing/SKILL.md +434 -0
- package/.claude/skills/n8n-integration-testing-patterns/SKILL.md +540 -0
- package/.claude/skills/n8n-security-testing/SKILL.md +599 -0
- package/.claude/skills/n8n-trigger-testing-strategies/SKILL.md +541 -0
- package/.claude/skills/n8n-workflow-testing-fundamentals/SKILL.md +447 -0
- package/CHANGELOG.md +127 -0
- package/README.md +7 -4
- package/dist/agents/BaseAgent.d.ts +142 -0
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +372 -2
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/TestGeneratorAgent.d.ts +5 -0
- package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
- package/dist/agents/TestGeneratorAgent.js +38 -0
- package/dist/agents/TestGeneratorAgent.js.map +1 -1
- package/dist/agents/index.d.ts +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/n8n/N8nAPIClient.d.ts +121 -0
- package/dist/agents/n8n/N8nAPIClient.d.ts.map +1 -0
- package/dist/agents/n8n/N8nAPIClient.js +367 -0
- package/dist/agents/n8n/N8nAPIClient.js.map +1 -0
- package/dist/agents/n8n/N8nAuditPersistence.d.ts +120 -0
- package/dist/agents/n8n/N8nAuditPersistence.d.ts.map +1 -0
- package/dist/agents/n8n/N8nAuditPersistence.js +473 -0
- package/dist/agents/n8n/N8nAuditPersistence.js.map +1 -0
- package/dist/agents/n8n/N8nBDDScenarioTesterAgent.d.ts +159 -0
- package/dist/agents/n8n/N8nBDDScenarioTesterAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nBDDScenarioTesterAgent.js +697 -0
- package/dist/agents/n8n/N8nBDDScenarioTesterAgent.js.map +1 -0
- package/dist/agents/n8n/N8nBaseAgent.d.ts +126 -0
- package/dist/agents/n8n/N8nBaseAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nBaseAgent.js +446 -0
- package/dist/agents/n8n/N8nBaseAgent.js.map +1 -0
- package/dist/agents/n8n/N8nCIOrchestratorAgent.d.ts +164 -0
- package/dist/agents/n8n/N8nCIOrchestratorAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nCIOrchestratorAgent.js +610 -0
- package/dist/agents/n8n/N8nCIOrchestratorAgent.js.map +1 -0
- package/dist/agents/n8n/N8nChaosTesterAgent.d.ts +205 -0
- package/dist/agents/n8n/N8nChaosTesterAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nChaosTesterAgent.js +729 -0
- package/dist/agents/n8n/N8nChaosTesterAgent.js.map +1 -0
- package/dist/agents/n8n/N8nComplianceValidatorAgent.d.ts +228 -0
- package/dist/agents/n8n/N8nComplianceValidatorAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nComplianceValidatorAgent.js +986 -0
- package/dist/agents/n8n/N8nComplianceValidatorAgent.js.map +1 -0
- package/dist/agents/n8n/N8nContractTesterAgent.d.ts +213 -0
- package/dist/agents/n8n/N8nContractTesterAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nContractTesterAgent.js +989 -0
- package/dist/agents/n8n/N8nContractTesterAgent.js.map +1 -0
- package/dist/agents/n8n/N8nExpressionValidatorAgent.d.ts +99 -0
- package/dist/agents/n8n/N8nExpressionValidatorAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nExpressionValidatorAgent.js +632 -0
- package/dist/agents/n8n/N8nExpressionValidatorAgent.js.map +1 -0
- package/dist/agents/n8n/N8nFailureModeTesterAgent.d.ts +238 -0
- package/dist/agents/n8n/N8nFailureModeTesterAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nFailureModeTesterAgent.js +956 -0
- package/dist/agents/n8n/N8nFailureModeTesterAgent.js.map +1 -0
- package/dist/agents/n8n/N8nIdempotencyTesterAgent.d.ts +242 -0
- package/dist/agents/n8n/N8nIdempotencyTesterAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nIdempotencyTesterAgent.js +992 -0
- package/dist/agents/n8n/N8nIdempotencyTesterAgent.js.map +1 -0
- package/dist/agents/n8n/N8nIntegrationTestAgent.d.ts +104 -0
- package/dist/agents/n8n/N8nIntegrationTestAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nIntegrationTestAgent.js +653 -0
- package/dist/agents/n8n/N8nIntegrationTestAgent.js.map +1 -0
- package/dist/agents/n8n/N8nMonitoringValidatorAgent.d.ts +210 -0
- package/dist/agents/n8n/N8nMonitoringValidatorAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nMonitoringValidatorAgent.js +669 -0
- package/dist/agents/n8n/N8nMonitoringValidatorAgent.js.map +1 -0
- package/dist/agents/n8n/N8nNodeValidatorAgent.d.ts +142 -0
- package/dist/agents/n8n/N8nNodeValidatorAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nNodeValidatorAgent.js +1090 -0
- package/dist/agents/n8n/N8nNodeValidatorAgent.js.map +1 -0
- package/dist/agents/n8n/N8nPerformanceTesterAgent.d.ts +198 -0
- package/dist/agents/n8n/N8nPerformanceTesterAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nPerformanceTesterAgent.js +653 -0
- package/dist/agents/n8n/N8nPerformanceTesterAgent.js.map +1 -0
- package/dist/agents/n8n/N8nReplayabilityTesterAgent.d.ts +245 -0
- package/dist/agents/n8n/N8nReplayabilityTesterAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nReplayabilityTesterAgent.js +952 -0
- package/dist/agents/n8n/N8nReplayabilityTesterAgent.js.map +1 -0
- package/dist/agents/n8n/N8nSecretsHygieneAuditorAgent.d.ts +325 -0
- package/dist/agents/n8n/N8nSecretsHygieneAuditorAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nSecretsHygieneAuditorAgent.js +1187 -0
- package/dist/agents/n8n/N8nSecretsHygieneAuditorAgent.js.map +1 -0
- package/dist/agents/n8n/N8nSecurityAuditorAgent.d.ts +91 -0
- package/dist/agents/n8n/N8nSecurityAuditorAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nSecurityAuditorAgent.js +825 -0
- package/dist/agents/n8n/N8nSecurityAuditorAgent.js.map +1 -0
- package/dist/agents/n8n/N8nTestHarness.d.ts +131 -0
- package/dist/agents/n8n/N8nTestHarness.d.ts.map +1 -0
- package/dist/agents/n8n/N8nTestHarness.js +456 -0
- package/dist/agents/n8n/N8nTestHarness.js.map +1 -0
- package/dist/agents/n8n/N8nTriggerTestAgent.d.ts +119 -0
- package/dist/agents/n8n/N8nTriggerTestAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nTriggerTestAgent.js +652 -0
- package/dist/agents/n8n/N8nTriggerTestAgent.js.map +1 -0
- package/dist/agents/n8n/N8nUnitTesterAgent.d.ts +130 -0
- package/dist/agents/n8n/N8nUnitTesterAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nUnitTesterAgent.js +522 -0
- package/dist/agents/n8n/N8nUnitTesterAgent.js.map +1 -0
- package/dist/agents/n8n/N8nVersionComparatorAgent.d.ts +201 -0
- package/dist/agents/n8n/N8nVersionComparatorAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nVersionComparatorAgent.js +645 -0
- package/dist/agents/n8n/N8nVersionComparatorAgent.js.map +1 -0
- package/dist/agents/n8n/N8nWorkflowExecutorAgent.d.ts +120 -0
- package/dist/agents/n8n/N8nWorkflowExecutorAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nWorkflowExecutorAgent.js +347 -0
- package/dist/agents/n8n/N8nWorkflowExecutorAgent.js.map +1 -0
- package/dist/agents/n8n/index.d.ts +119 -0
- package/dist/agents/n8n/index.d.ts.map +1 -0
- package/dist/agents/n8n/index.js +298 -0
- package/dist/agents/n8n/index.js.map +1 -0
- package/dist/agents/n8n/types.d.ts +486 -0
- package/dist/agents/n8n/types.d.ts.map +1 -0
- package/dist/agents/n8n/types.js +8 -0
- package/dist/agents/n8n/types.js.map +1 -0
- package/dist/cli/init/agents.d.ts.map +1 -1
- package/dist/cli/init/agents.js +29 -0
- package/dist/cli/init/agents.js.map +1 -1
- package/dist/cli/init/skills.d.ts.map +1 -1
- package/dist/cli/init/skills.js +7 -1
- package/dist/cli/init/skills.js.map +1 -1
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/core/memory/RuVectorPatternStore.d.ts +90 -0
- package/dist/core/memory/RuVectorPatternStore.d.ts.map +1 -1
- package/dist/core/memory/RuVectorPatternStore.js +209 -0
- package/dist/core/memory/RuVectorPatternStore.js.map +1 -1
- package/dist/learning/FederatedManager.d.ts +232 -0
- package/dist/learning/FederatedManager.d.ts.map +1 -0
- package/dist/learning/FederatedManager.js +489 -0
- package/dist/learning/FederatedManager.js.map +1 -0
- package/dist/learning/HNSWPatternAdapter.d.ts +117 -0
- package/dist/learning/HNSWPatternAdapter.d.ts.map +1 -0
- package/dist/learning/HNSWPatternAdapter.js +262 -0
- package/dist/learning/HNSWPatternAdapter.js.map +1 -0
- package/dist/learning/LearningEngine.d.ts +27 -0
- package/dist/learning/LearningEngine.d.ts.map +1 -1
- package/dist/learning/LearningEngine.js +75 -1
- package/dist/learning/LearningEngine.js.map +1 -1
- package/dist/learning/PatternCurator.d.ts +217 -0
- package/dist/learning/PatternCurator.d.ts.map +1 -0
- package/dist/learning/PatternCurator.js +393 -0
- package/dist/learning/PatternCurator.js.map +1 -0
- package/dist/learning/index.d.ts +6 -0
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +16 -1
- package/dist/learning/index.js.map +1 -1
- package/dist/learning/types.d.ts +4 -0
- package/dist/learning/types.d.ts.map +1 -1
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/memory/HNSWPatternStore.d.ts +176 -0
- package/dist/memory/HNSWPatternStore.d.ts.map +1 -0
- package/dist/memory/HNSWPatternStore.js +392 -0
- package/dist/memory/HNSWPatternStore.js.map +1 -0
- package/dist/memory/index.d.ts +8 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +13 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/providers/HybridRouter.d.ts +85 -4
- package/dist/providers/HybridRouter.d.ts.map +1 -1
- package/dist/providers/HybridRouter.js +332 -10
- package/dist/providers/HybridRouter.js.map +1 -1
- package/dist/providers/LLMBaselineTracker.d.ts +120 -0
- package/dist/providers/LLMBaselineTracker.d.ts.map +1 -0
- package/dist/providers/LLMBaselineTracker.js +305 -0
- package/dist/providers/LLMBaselineTracker.js.map +1 -0
- package/dist/providers/OpenRouterProvider.d.ts +26 -0
- package/dist/providers/OpenRouterProvider.d.ts.map +1 -1
- package/dist/providers/OpenRouterProvider.js +75 -6
- package/dist/providers/OpenRouterProvider.js.map +1 -1
- package/dist/providers/RuVectorClient.d.ts +259 -0
- package/dist/providers/RuVectorClient.d.ts.map +1 -0
- package/dist/providers/RuVectorClient.js +416 -0
- package/dist/providers/RuVectorClient.js.map +1 -0
- package/dist/providers/RuvllmPatternCurator.d.ts +116 -0
- package/dist/providers/RuvllmPatternCurator.d.ts.map +1 -0
- package/dist/providers/RuvllmPatternCurator.js +323 -0
- package/dist/providers/RuvllmPatternCurator.js.map +1 -0
- package/dist/providers/RuvllmProvider.d.ts +233 -1
- package/dist/providers/RuvllmProvider.d.ts.map +1 -1
- package/dist/providers/RuvllmProvider.js +781 -11
- package/dist/providers/RuvllmProvider.js.map +1 -1
- package/dist/providers/index.d.ts +5 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +12 -2
- package/dist/providers/index.js.map +1 -1
- package/dist/utils/ruvllm-loader.d.ts +98 -1
- package/dist/utils/ruvllm-loader.d.ts.map +1 -1
- package/dist/utils/ruvllm-loader.js.map +1 -1
- package/docs/reference/agents.md +91 -2
- package/docs/reference/skills.md +97 -2
- 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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"}
|