agentic-qe 2.3.2 → 2.3.4
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/CHANGELOG.md +140 -0
- package/README.md +1 -1
- package/dist/agents/BaseAgent.d.ts +10 -0
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +113 -0
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.js +53 -27
- package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.d.ts +5 -0
- package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.js +20 -5
- package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
- package/dist/agents/QualityGateAgent.js +44 -6
- package/dist/agents/QualityGateAgent.js.map +1 -1
- package/dist/cli/commands/dream/index.d.ts +50 -0
- package/dist/cli/commands/dream/index.d.ts.map +1 -0
- package/dist/cli/commands/dream/index.js +282 -0
- package/dist/cli/commands/dream/index.js.map +1 -0
- package/dist/cli/commands/learn/index.d.ts +31 -5
- package/dist/cli/commands/learn/index.d.ts.map +1 -1
- package/dist/cli/commands/learn/index.js +183 -50
- package/dist/cli/commands/learn/index.js.map +1 -1
- package/dist/cli/commands/transfer/index.d.ts +55 -0
- package/dist/cli/commands/transfer/index.d.ts.map +1 -0
- package/dist/cli/commands/transfer/index.js +317 -0
- package/dist/cli/commands/transfer/index.js.map +1 -0
- package/dist/cli/index.js +156 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/database-init.js +5 -0
- package/dist/cli/init/database-init.js.map +1 -1
- package/dist/cli/init/index.d.ts.map +1 -1
- package/dist/cli/init/index.js +12 -4
- package/dist/cli/init/index.js.map +1 -1
- package/dist/cli/init/learning-init.d.ts +39 -0
- package/dist/cli/init/learning-init.d.ts.map +1 -0
- package/dist/cli/init/learning-init.js +239 -0
- package/dist/cli/init/learning-init.js.map +1 -0
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/learning/PerformanceTracker.d.ts +9 -0
- package/dist/learning/PerformanceTracker.d.ts.map +1 -1
- package/dist/learning/PerformanceTracker.js +26 -2
- package/dist/learning/PerformanceTracker.js.map +1 -1
- package/dist/learning/baselines/BaselineCollector.d.ts +178 -0
- package/dist/learning/baselines/BaselineCollector.d.ts.map +1 -0
- package/dist/learning/baselines/BaselineCollector.js +398 -0
- package/dist/learning/baselines/BaselineCollector.js.map +1 -0
- package/dist/learning/baselines/StandardTaskSuite.d.ts +88 -0
- package/dist/learning/baselines/StandardTaskSuite.d.ts.map +1 -0
- package/dist/learning/baselines/StandardTaskSuite.js +801 -0
- package/dist/learning/baselines/StandardTaskSuite.js.map +1 -0
- package/dist/learning/baselines/index.d.ts +10 -0
- package/dist/learning/baselines/index.d.ts.map +1 -0
- package/dist/learning/baselines/index.js +15 -0
- package/dist/learning/baselines/index.js.map +1 -0
- package/dist/learning/capture/ExecutionRecorder.d.ts +97 -0
- package/dist/learning/capture/ExecutionRecorder.d.ts.map +1 -0
- package/dist/learning/capture/ExecutionRecorder.js +195 -0
- package/dist/learning/capture/ExecutionRecorder.js.map +1 -0
- package/dist/learning/capture/ExperienceCapture.d.ts +177 -0
- package/dist/learning/capture/ExperienceCapture.d.ts.map +1 -0
- package/dist/learning/capture/ExperienceCapture.js +432 -0
- package/dist/learning/capture/ExperienceCapture.js.map +1 -0
- package/dist/learning/capture/index.d.ts +12 -0
- package/dist/learning/capture/index.d.ts.map +1 -0
- package/dist/learning/capture/index.js +17 -0
- package/dist/learning/capture/index.js.map +1 -0
- package/dist/learning/dashboard/MetricsDashboard.d.ts +63 -0
- package/dist/learning/dashboard/MetricsDashboard.d.ts.map +1 -0
- package/dist/learning/dashboard/MetricsDashboard.js +230 -0
- package/dist/learning/dashboard/MetricsDashboard.js.map +1 -0
- package/dist/learning/dashboard/index.d.ts +7 -0
- package/dist/learning/dashboard/index.d.ts.map +1 -0
- package/dist/learning/dashboard/index.js +23 -0
- package/dist/learning/dashboard/index.js.map +1 -0
- package/dist/learning/dream/ConceptGraph.d.ts +160 -0
- package/dist/learning/dream/ConceptGraph.d.ts.map +1 -0
- package/dist/learning/dream/ConceptGraph.js +445 -0
- package/dist/learning/dream/ConceptGraph.js.map +1 -0
- package/dist/learning/dream/DreamEngine.d.ts +150 -0
- package/dist/learning/dream/DreamEngine.d.ts.map +1 -0
- package/dist/learning/dream/DreamEngine.js +551 -0
- package/dist/learning/dream/DreamEngine.js.map +1 -0
- package/dist/learning/dream/InsightGenerator.d.ts +152 -0
- package/dist/learning/dream/InsightGenerator.d.ts.map +1 -0
- package/dist/learning/dream/InsightGenerator.js +463 -0
- package/dist/learning/dream/InsightGenerator.js.map +1 -0
- package/dist/learning/dream/SpreadingActivation.d.ts +138 -0
- package/dist/learning/dream/SpreadingActivation.d.ts.map +1 -0
- package/dist/learning/dream/SpreadingActivation.js +320 -0
- package/dist/learning/dream/SpreadingActivation.js.map +1 -0
- package/dist/learning/dream/index.d.ts +14 -0
- package/dist/learning/dream/index.d.ts.map +1 -0
- package/dist/learning/dream/index.js +22 -0
- package/dist/learning/dream/index.js.map +1 -0
- package/dist/learning/metrics/AlertManager.d.ts +107 -0
- package/dist/learning/metrics/AlertManager.d.ts.map +1 -0
- package/dist/learning/metrics/AlertManager.js +246 -0
- package/dist/learning/metrics/AlertManager.js.map +1 -0
- package/dist/learning/metrics/LearningMetrics.d.ts +184 -0
- package/dist/learning/metrics/LearningMetrics.d.ts.map +1 -0
- package/dist/learning/metrics/LearningMetrics.js +754 -0
- package/dist/learning/metrics/LearningMetrics.js.map +1 -0
- package/dist/learning/metrics/MetricsCollector.d.ts +108 -0
- package/dist/learning/metrics/MetricsCollector.d.ts.map +1 -0
- package/dist/learning/metrics/MetricsCollector.js +240 -0
- package/dist/learning/metrics/MetricsCollector.js.map +1 -0
- package/dist/learning/metrics/MetricsStore.d.ts +149 -0
- package/dist/learning/metrics/MetricsStore.d.ts.map +1 -0
- package/dist/learning/metrics/MetricsStore.js +502 -0
- package/dist/learning/metrics/MetricsStore.js.map +1 -0
- package/dist/learning/metrics/TrendAnalyzer.d.ts +85 -0
- package/dist/learning/metrics/TrendAnalyzer.d.ts.map +1 -0
- package/dist/learning/metrics/TrendAnalyzer.js +210 -0
- package/dist/learning/metrics/TrendAnalyzer.js.map +1 -0
- package/dist/learning/metrics/index.d.ts +13 -0
- package/dist/learning/metrics/index.d.ts.map +1 -0
- package/dist/learning/metrics/index.js +39 -0
- package/dist/learning/metrics/index.js.map +1 -0
- package/dist/learning/scheduler/IdleDetector.d.ts +126 -0
- package/dist/learning/scheduler/IdleDetector.d.ts.map +1 -0
- package/dist/learning/scheduler/IdleDetector.js +281 -0
- package/dist/learning/scheduler/IdleDetector.js.map +1 -0
- package/dist/learning/scheduler/SleepCycle.d.ts +150 -0
- package/dist/learning/scheduler/SleepCycle.d.ts.map +1 -0
- package/dist/learning/scheduler/SleepCycle.js +506 -0
- package/dist/learning/scheduler/SleepCycle.js.map +1 -0
- package/dist/learning/scheduler/SleepScheduler.d.ts +131 -0
- package/dist/learning/scheduler/SleepScheduler.d.ts.map +1 -0
- package/dist/learning/scheduler/SleepScheduler.js +299 -0
- package/dist/learning/scheduler/SleepScheduler.js.map +1 -0
- package/dist/learning/scheduler/TimeBasedTrigger.d.ts +108 -0
- package/dist/learning/scheduler/TimeBasedTrigger.d.ts.map +1 -0
- package/dist/learning/scheduler/TimeBasedTrigger.js +222 -0
- package/dist/learning/scheduler/TimeBasedTrigger.js.map +1 -0
- package/dist/learning/scheduler/index.d.ts +16 -0
- package/dist/learning/scheduler/index.d.ts.map +1 -0
- package/dist/learning/scheduler/index.js +23 -0
- package/dist/learning/scheduler/index.js.map +1 -0
- package/dist/learning/synthesis/PatternSynthesis.d.ts +162 -0
- package/dist/learning/synthesis/PatternSynthesis.d.ts.map +1 -0
- package/dist/learning/synthesis/PatternSynthesis.js +479 -0
- package/dist/learning/synthesis/PatternSynthesis.js.map +1 -0
- package/dist/learning/synthesis/index.d.ts +10 -0
- package/dist/learning/synthesis/index.d.ts.map +1 -0
- package/dist/learning/synthesis/index.js +14 -0
- package/dist/learning/synthesis/index.js.map +1 -0
- package/dist/learning/transfer/CompatibilityScorer.d.ts +115 -0
- package/dist/learning/transfer/CompatibilityScorer.d.ts.map +1 -0
- package/dist/learning/transfer/CompatibilityScorer.js +319 -0
- package/dist/learning/transfer/CompatibilityScorer.js.map +1 -0
- package/dist/learning/transfer/TransferProtocol.d.ts +172 -0
- package/dist/learning/transfer/TransferProtocol.d.ts.map +1 -0
- package/dist/learning/transfer/TransferProtocol.js +611 -0
- package/dist/learning/transfer/TransferProtocol.js.map +1 -0
- package/dist/learning/transfer/TransferPrototype.d.ts +93 -0
- package/dist/learning/transfer/TransferPrototype.d.ts.map +1 -0
- package/dist/learning/transfer/TransferPrototype.js +433 -0
- package/dist/learning/transfer/TransferPrototype.js.map +1 -0
- package/dist/learning/transfer/TransferValidator.d.ts +140 -0
- package/dist/learning/transfer/TransferValidator.d.ts.map +1 -0
- package/dist/learning/transfer/TransferValidator.js +413 -0
- package/dist/learning/transfer/TransferValidator.js.map +1 -0
- package/dist/learning/transfer/index.d.ts +14 -0
- package/dist/learning/transfer/index.d.ts.map +1 -0
- package/dist/learning/transfer/index.js +22 -0
- package/dist/learning/transfer/index.js.map +1 -0
- package/dist/mcp/handlers/test/test-generate-enhanced.d.ts +26 -2
- package/dist/mcp/handlers/test/test-generate-enhanced.d.ts.map +1 -1
- package/dist/mcp/handlers/test/test-generate-enhanced.js +159 -27
- package/dist/mcp/handlers/test/test-generate-enhanced.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +2 -1
- package/dist/mcp/server.js.map +1 -1
- package/package.json +7 -2
- package/scripts/README.md +352 -0
- package/scripts/hooks/capture-task-learning.js +191 -0
- package/scripts/hooks/emit-task-complete.sh +35 -0
- package/scripts/hooks/emit-task-spawn.sh +27 -0
- package/.claude/agents/failing-agent.json +0 -9
- package/.claude/agents/test-agent.json +0 -9
- package/dist/App.d.ts +0 -5
- package/dist/App.d.ts.map +0 -1
- package/dist/App.js +0 -15
- package/dist/App.js.map +0 -1
- package/dist/cli/init/utils.d.ts +0 -183
- package/dist/cli/init/utils.d.ts.map +0 -1
- package/dist/cli/init/utils.js +0 -354
- package/dist/cli/init/utils.js.map +0 -1
- package/dist/components/Dashboard/Dashboard.d.ts +0 -4
- package/dist/components/Dashboard/Dashboard.d.ts.map +0 -1
- package/dist/components/Dashboard/Dashboard.js +0 -148
- package/dist/components/Dashboard/Dashboard.js.map +0 -1
- package/dist/components/Dashboard/DashboardHeader.d.ts +0 -4
- package/dist/components/Dashboard/DashboardHeader.d.ts.map +0 -1
- package/dist/components/Dashboard/DashboardHeader.js +0 -138
- package/dist/components/Dashboard/DashboardHeader.js.map +0 -1
- package/dist/contexts/DashboardContext.d.ts +0 -41
- package/dist/contexts/DashboardContext.d.ts.map +0 -1
- package/dist/contexts/DashboardContext.js +0 -187
- package/dist/contexts/DashboardContext.js.map +0 -1
- package/dist/core/transport/QUICTransport.d.ts +0 -320
- package/dist/core/transport/QUICTransport.d.ts.map +0 -1
- package/dist/core/transport/QUICTransport.js +0 -711
- package/dist/core/transport/QUICTransport.js.map +0 -1
- package/dist/learning/LearningPersistenceAdapter.d.ts +0 -84
- package/dist/learning/LearningPersistenceAdapter.d.ts.map +0 -1
- package/dist/learning/LearningPersistenceAdapter.js +0 -202
- package/dist/learning/LearningPersistenceAdapter.js.map +0 -1
- package/dist/learning/algorithms/QLearning.d.ts +0 -68
- package/dist/learning/algorithms/QLearning.d.ts.map +0 -1
- package/dist/learning/algorithms/QLearning.js +0 -116
- package/dist/learning/algorithms/QLearning.js.map +0 -1
- package/dist/mcp/handlers/advanced/requirements-generate-bdd.d.ts +0 -7
- package/dist/mcp/handlers/advanced/requirements-generate-bdd.d.ts.map +0 -1
- package/dist/mcp/handlers/advanced/requirements-generate-bdd.js +0 -267
- package/dist/mcp/handlers/advanced/requirements-generate-bdd.js.map +0 -1
- package/dist/mcp/handlers/advanced/requirements-validate.d.ts +0 -7
- package/dist/mcp/handlers/advanced/requirements-validate.d.ts.map +0 -1
- package/dist/mcp/handlers/advanced/requirements-validate.js +0 -175
- package/dist/mcp/handlers/advanced/requirements-validate.js.map +0 -1
- package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.d.ts +0 -15
- package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.d.ts.map +0 -1
- package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.js +0 -43
- package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.js.map +0 -1
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts +0 -58
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts.map +0 -1
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js +0 -188
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js.map +0 -1
- package/dist/mcp/handlers/optimize-tests.d.ts +0 -219
- package/dist/mcp/handlers/optimize-tests.d.ts.map +0 -1
- package/dist/mcp/handlers/optimize-tests.js +0 -533
- package/dist/mcp/handlers/optimize-tests.js.map +0 -1
- package/dist/mcp/handlers/predict-defects.d.ts +0 -194
- package/dist/mcp/handlers/predict-defects.d.ts.map +0 -1
- package/dist/mcp/handlers/predict-defects.js +0 -722
- package/dist/mcp/handlers/predict-defects.js.map +0 -1
- package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts +0 -199
- package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts.map +0 -1
- package/dist/mcp/handlers/prediction/regression-risk-analyze.js +0 -471
- package/dist/mcp/handlers/prediction/regression-risk-analyze.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-decision-make.d.ts +0 -104
- package/dist/mcp/handlers/quality/quality-decision-make.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-decision-make.js +0 -408
- package/dist/mcp/handlers/quality/quality-decision-make.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-gate-execute.d.ts +0 -160
- package/dist/mcp/handlers/quality/quality-gate-execute.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-gate-execute.js +0 -412
- package/dist/mcp/handlers/quality/quality-gate-execute.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-policy-check.d.ts +0 -163
- package/dist/mcp/handlers/quality/quality-policy-check.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-policy-check.js +0 -455
- package/dist/mcp/handlers/quality/quality-policy-check.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-risk-assess.d.ts +0 -123
- package/dist/mcp/handlers/quality/quality-risk-assess.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-risk-assess.js +0 -522
- package/dist/mcp/handlers/quality/quality-risk-assess.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-validate-metrics.d.ts +0 -117
- package/dist/mcp/handlers/quality/quality-validate-metrics.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-validate-metrics.js +0 -288
- package/dist/mcp/handlers/quality/quality-validate-metrics.js.map +0 -1
- package/dist/mcp/handlers/quality-analyze.d.ts +0 -279
- package/dist/mcp/handlers/quality-analyze.d.ts.map +0 -1
- package/dist/mcp/handlers/quality-analyze.js +0 -720
- package/dist/mcp/handlers/quality-analyze.js.map +0 -1
- package/dist/mcp/handlers/security/check-authz.d.ts +0 -152
- package/dist/mcp/handlers/security/check-authz.d.ts.map +0 -1
- package/dist/mcp/handlers/security/check-authz.js +0 -434
- package/dist/mcp/handlers/security/check-authz.js.map +0 -1
- package/dist/mcp/handlers/security/scan-dependencies.d.ts +0 -148
- package/dist/mcp/handlers/security/scan-dependencies.d.ts.map +0 -1
- package/dist/mcp/handlers/security/scan-dependencies.js +0 -354
- package/dist/mcp/handlers/security/scan-dependencies.js.map +0 -1
- package/dist/mcp/handlers/security/validate-auth.d.ts +0 -128
- package/dist/mcp/handlers/security/validate-auth.d.ts.map +0 -1
- package/dist/mcp/handlers/security/validate-auth.js +0 -294
- package/dist/mcp/handlers/security/validate-auth.js.map +0 -1
- package/dist/mcp/handlers/test-generate.d.ts +0 -107
- package/dist/mcp/handlers/test-generate.d.ts.map +0 -1
- package/dist/mcp/handlers/test-generate.js +0 -454
- package/dist/mcp/handlers/test-generate.js.map +0 -1
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TransferValidator - Validate pattern transfer success
|
|
3
|
+
*
|
|
4
|
+
* Performs post-transfer validation to ensure patterns are
|
|
5
|
+
* correctly transferred and applicable to target agents.
|
|
6
|
+
*
|
|
7
|
+
* Part of the Nightly-Learner Phase 2 implementation.
|
|
8
|
+
*
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
* @module src/learning/transfer/TransferValidator
|
|
11
|
+
*/
|
|
12
|
+
import { EventEmitter } from 'events';
|
|
13
|
+
export interface ValidationConfig {
|
|
14
|
+
/** Database path. Default: .agentic-qe/memory.db */
|
|
15
|
+
dbPath?: string;
|
|
16
|
+
/** Minimum validation score to pass. Default: 0.7 */
|
|
17
|
+
passThreshold?: number;
|
|
18
|
+
/** Enable detailed validation. Default: true */
|
|
19
|
+
detailedValidation?: boolean;
|
|
20
|
+
/** Enable debug logging */
|
|
21
|
+
debug?: boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface ValidationReport {
|
|
24
|
+
transferId: string;
|
|
25
|
+
patternId: string;
|
|
26
|
+
sourceAgent: string;
|
|
27
|
+
targetAgent: string;
|
|
28
|
+
passed: boolean;
|
|
29
|
+
overallScore: number;
|
|
30
|
+
checks: ValidationCheck[];
|
|
31
|
+
recommendations?: string[];
|
|
32
|
+
validatedAt: Date;
|
|
33
|
+
}
|
|
34
|
+
export interface ValidationCheck {
|
|
35
|
+
name: string;
|
|
36
|
+
category: 'integrity' | 'applicability' | 'performance' | 'safety';
|
|
37
|
+
passed: boolean;
|
|
38
|
+
score: number;
|
|
39
|
+
message: string;
|
|
40
|
+
details?: Record<string, unknown>;
|
|
41
|
+
}
|
|
42
|
+
export interface TransferRecord {
|
|
43
|
+
id: string;
|
|
44
|
+
patternId: string;
|
|
45
|
+
sourceAgent: string;
|
|
46
|
+
targetAgent: string;
|
|
47
|
+
transferredAt: Date;
|
|
48
|
+
originalContent: string;
|
|
49
|
+
transferredContent: string;
|
|
50
|
+
compatibilityScore: number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* TransferValidator validates pattern transfers
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* const validator = new TransferValidator({ passThreshold: 0.7 });
|
|
58
|
+
*
|
|
59
|
+
* const report = await validator.validate(transferRecord);
|
|
60
|
+
*
|
|
61
|
+
* if (report.passed) {
|
|
62
|
+
* console.log('Transfer validated successfully');
|
|
63
|
+
* } else {
|
|
64
|
+
* console.log('Issues:', report.recommendations);
|
|
65
|
+
* }
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare class TransferValidator extends EventEmitter {
|
|
69
|
+
private config;
|
|
70
|
+
private db;
|
|
71
|
+
private logger;
|
|
72
|
+
constructor(config?: ValidationConfig);
|
|
73
|
+
/**
|
|
74
|
+
* Initialize database schema
|
|
75
|
+
*/
|
|
76
|
+
private initializeSchema;
|
|
77
|
+
/**
|
|
78
|
+
* Validate a pattern transfer
|
|
79
|
+
*/
|
|
80
|
+
validate(record: TransferRecord): Promise<ValidationReport>;
|
|
81
|
+
/**
|
|
82
|
+
* Check pattern integrity
|
|
83
|
+
*/
|
|
84
|
+
private checkPatternIntegrity;
|
|
85
|
+
/**
|
|
86
|
+
* Check data consistency
|
|
87
|
+
*/
|
|
88
|
+
private checkDataConsistency;
|
|
89
|
+
/**
|
|
90
|
+
* Check agent applicability
|
|
91
|
+
*/
|
|
92
|
+
private checkAgentApplicability;
|
|
93
|
+
/**
|
|
94
|
+
* Check context preservation
|
|
95
|
+
*/
|
|
96
|
+
private checkContextPreservation;
|
|
97
|
+
/**
|
|
98
|
+
* Check confidence preservation
|
|
99
|
+
*/
|
|
100
|
+
private checkConfidencePreservation;
|
|
101
|
+
/**
|
|
102
|
+
* Check for duplicate transfers
|
|
103
|
+
*/
|
|
104
|
+
private checkDuplicateDetection;
|
|
105
|
+
/**
|
|
106
|
+
* Check safety constraints
|
|
107
|
+
*/
|
|
108
|
+
private checkSafetyConstraints;
|
|
109
|
+
/**
|
|
110
|
+
* Calculate content similarity
|
|
111
|
+
*/
|
|
112
|
+
private calculateContentSimilarity;
|
|
113
|
+
/**
|
|
114
|
+
* Generate recommendations based on validation
|
|
115
|
+
*/
|
|
116
|
+
private generateRecommendations;
|
|
117
|
+
/**
|
|
118
|
+
* Store validation result
|
|
119
|
+
*/
|
|
120
|
+
private storeValidation;
|
|
121
|
+
/**
|
|
122
|
+
* Get validation history for a pattern
|
|
123
|
+
*/
|
|
124
|
+
getValidationHistory(patternId: string): ValidationReport[];
|
|
125
|
+
/**
|
|
126
|
+
* Get validation statistics
|
|
127
|
+
*/
|
|
128
|
+
getStats(): {
|
|
129
|
+
total: number;
|
|
130
|
+
passed: number;
|
|
131
|
+
failed: number;
|
|
132
|
+
avgScore: number;
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* Close database connection
|
|
136
|
+
*/
|
|
137
|
+
close(): void;
|
|
138
|
+
}
|
|
139
|
+
export default TransferValidator;
|
|
140
|
+
//# sourceMappingURL=TransferValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransferValidator.d.ts","sourceRoot":"","sources":["../../../src/learning/transfer/TransferValidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,EAAE,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,GAAG,eAAe,GAAG,aAAa,GAAG,QAAQ,CAAC;IACnE,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,IAAI,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,CAAC,EAAE,gBAAgB;IAerC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqBxB;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuDjE;;OAEG;YACW,qBAAqB;IAqBnC;;OAEG;YACW,oBAAoB;IAqBlC;;OAEG;YACW,uBAAuB;IAiBrC;;OAEG;YACW,wBAAwB;IAqBtC;;OAEG;YACW,2BAA2B;IAiCzC;;OAEG;YACW,uBAAuB;IAqBrC;;OAEG;YACW,sBAAsB;IAsBpC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAclC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA6B/B;;OAEG;YACW,eAAe;IAqB7B;;OAEG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAoB3D;;OAEG;IACH,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAkB/E;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,413 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TransferValidator - Validate pattern transfer success
|
|
4
|
+
*
|
|
5
|
+
* Performs post-transfer validation to ensure patterns are
|
|
6
|
+
* correctly transferred and applicable to target agents.
|
|
7
|
+
*
|
|
8
|
+
* Part of the Nightly-Learner Phase 2 implementation.
|
|
9
|
+
*
|
|
10
|
+
* @version 1.0.0
|
|
11
|
+
* @module src/learning/transfer/TransferValidator
|
|
12
|
+
*/
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
30
|
+
var ownKeys = function(o) {
|
|
31
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
32
|
+
var ar = [];
|
|
33
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
34
|
+
return ar;
|
|
35
|
+
};
|
|
36
|
+
return ownKeys(o);
|
|
37
|
+
};
|
|
38
|
+
return function (mod) {
|
|
39
|
+
if (mod && mod.__esModule) return mod;
|
|
40
|
+
var result = {};
|
|
41
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
42
|
+
__setModuleDefault(result, mod);
|
|
43
|
+
return result;
|
|
44
|
+
};
|
|
45
|
+
})();
|
|
46
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
47
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.TransferValidator = void 0;
|
|
51
|
+
const events_1 = require("events");
|
|
52
|
+
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
53
|
+
const path = __importStar(require("path"));
|
|
54
|
+
const Logger_1 = require("../../utils/Logger");
|
|
55
|
+
/**
|
|
56
|
+
* TransferValidator validates pattern transfers
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* const validator = new TransferValidator({ passThreshold: 0.7 });
|
|
61
|
+
*
|
|
62
|
+
* const report = await validator.validate(transferRecord);
|
|
63
|
+
*
|
|
64
|
+
* if (report.passed) {
|
|
65
|
+
* console.log('Transfer validated successfully');
|
|
66
|
+
* } else {
|
|
67
|
+
* console.log('Issues:', report.recommendations);
|
|
68
|
+
* }
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
class TransferValidator extends events_1.EventEmitter {
|
|
72
|
+
constructor(config) {
|
|
73
|
+
super();
|
|
74
|
+
this.logger = Logger_1.Logger.getInstance();
|
|
75
|
+
this.config = {
|
|
76
|
+
dbPath: config?.dbPath || path.join(process.cwd(), '.agentic-qe', 'memory.db'),
|
|
77
|
+
passThreshold: config?.passThreshold ?? 0.7,
|
|
78
|
+
detailedValidation: config?.detailedValidation ?? true,
|
|
79
|
+
debug: config?.debug ?? false,
|
|
80
|
+
};
|
|
81
|
+
this.db = new better_sqlite3_1.default(this.config.dbPath);
|
|
82
|
+
this.initializeSchema();
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Initialize database schema
|
|
86
|
+
*/
|
|
87
|
+
initializeSchema() {
|
|
88
|
+
this.db.exec(`
|
|
89
|
+
CREATE TABLE IF NOT EXISTS transfer_validations (
|
|
90
|
+
id TEXT PRIMARY KEY,
|
|
91
|
+
transfer_id TEXT NOT NULL,
|
|
92
|
+
pattern_id TEXT NOT NULL,
|
|
93
|
+
source_agent TEXT NOT NULL,
|
|
94
|
+
target_agent TEXT NOT NULL,
|
|
95
|
+
passed INTEGER NOT NULL,
|
|
96
|
+
overall_score REAL NOT NULL,
|
|
97
|
+
checks TEXT NOT NULL,
|
|
98
|
+
recommendations TEXT,
|
|
99
|
+
validated_at INTEGER NOT NULL
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
CREATE INDEX IF NOT EXISTS idx_validation_transfer ON transfer_validations(transfer_id);
|
|
103
|
+
CREATE INDEX IF NOT EXISTS idx_validation_pattern ON transfer_validations(pattern_id);
|
|
104
|
+
CREATE INDEX IF NOT EXISTS idx_validation_passed ON transfer_validations(passed);
|
|
105
|
+
`);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Validate a pattern transfer
|
|
109
|
+
*/
|
|
110
|
+
async validate(record) {
|
|
111
|
+
const checks = [];
|
|
112
|
+
// Integrity checks
|
|
113
|
+
checks.push(await this.checkPatternIntegrity(record));
|
|
114
|
+
checks.push(await this.checkDataConsistency(record));
|
|
115
|
+
// Applicability checks
|
|
116
|
+
checks.push(await this.checkAgentApplicability(record));
|
|
117
|
+
checks.push(await this.checkContextPreservation(record));
|
|
118
|
+
// Performance checks
|
|
119
|
+
if (this.config.detailedValidation) {
|
|
120
|
+
checks.push(await this.checkConfidencePreservation(record));
|
|
121
|
+
checks.push(await this.checkDuplicateDetection(record));
|
|
122
|
+
}
|
|
123
|
+
// Safety checks
|
|
124
|
+
checks.push(await this.checkSafetyConstraints(record));
|
|
125
|
+
// Calculate overall score
|
|
126
|
+
const passedChecks = checks.filter(c => c.passed);
|
|
127
|
+
const overallScore = checks.reduce((sum, c) => sum + c.score, 0) / checks.length;
|
|
128
|
+
const passed = overallScore >= this.config.passThreshold;
|
|
129
|
+
// Generate recommendations
|
|
130
|
+
const recommendations = this.generateRecommendations(checks, passed);
|
|
131
|
+
const report = {
|
|
132
|
+
transferId: record.id,
|
|
133
|
+
patternId: record.patternId,
|
|
134
|
+
sourceAgent: record.sourceAgent,
|
|
135
|
+
targetAgent: record.targetAgent,
|
|
136
|
+
passed,
|
|
137
|
+
overallScore,
|
|
138
|
+
checks,
|
|
139
|
+
recommendations: recommendations.length > 0 ? recommendations : undefined,
|
|
140
|
+
validatedAt: new Date(),
|
|
141
|
+
};
|
|
142
|
+
// Store validation
|
|
143
|
+
await this.storeValidation(report);
|
|
144
|
+
this.logger.info('[TransferValidator] Validation complete', {
|
|
145
|
+
transferId: record.id,
|
|
146
|
+
passed,
|
|
147
|
+
score: overallScore.toFixed(3),
|
|
148
|
+
checksTotal: checks.length,
|
|
149
|
+
checksPassed: passedChecks.length,
|
|
150
|
+
});
|
|
151
|
+
this.emit('validation:complete', report);
|
|
152
|
+
return report;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Check pattern integrity
|
|
156
|
+
*/
|
|
157
|
+
async checkPatternIntegrity(record) {
|
|
158
|
+
// Verify pattern exists in target context
|
|
159
|
+
const exists = this.db.prepare(`
|
|
160
|
+
SELECT COUNT(*) as count FROM patterns
|
|
161
|
+
WHERE id LIKE ? AND agent_id = ?
|
|
162
|
+
`).get(`%${record.patternId}%`, record.targetAgent);
|
|
163
|
+
const passed = exists.count > 0;
|
|
164
|
+
return {
|
|
165
|
+
name: 'Pattern Integrity',
|
|
166
|
+
category: 'integrity',
|
|
167
|
+
passed,
|
|
168
|
+
score: passed ? 1.0 : 0,
|
|
169
|
+
message: passed
|
|
170
|
+
? 'Pattern exists in target agent context'
|
|
171
|
+
: 'Pattern not found in target agent context',
|
|
172
|
+
details: { count: exists.count },
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Check data consistency
|
|
177
|
+
*/
|
|
178
|
+
async checkDataConsistency(record) {
|
|
179
|
+
// Verify content is similar (allowing for minor adaptations)
|
|
180
|
+
const original = record.originalContent || '';
|
|
181
|
+
const transferred = record.transferredContent || '';
|
|
182
|
+
// Calculate similarity
|
|
183
|
+
const similarity = this.calculateContentSimilarity(original, transferred);
|
|
184
|
+
const passed = similarity >= 0.7; // Allow 30% adaptation
|
|
185
|
+
return {
|
|
186
|
+
name: 'Data Consistency',
|
|
187
|
+
category: 'integrity',
|
|
188
|
+
passed,
|
|
189
|
+
score: similarity,
|
|
190
|
+
message: passed
|
|
191
|
+
? 'Content preserved within acceptable range'
|
|
192
|
+
: 'Content significantly altered during transfer',
|
|
193
|
+
details: { similarity: similarity.toFixed(3) },
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Check agent applicability
|
|
198
|
+
*/
|
|
199
|
+
async checkAgentApplicability(record) {
|
|
200
|
+
// Verify pattern is applicable to target agent's domain
|
|
201
|
+
const compatibility = record.compatibilityScore;
|
|
202
|
+
const passed = compatibility >= 0.5;
|
|
203
|
+
return {
|
|
204
|
+
name: 'Agent Applicability',
|
|
205
|
+
category: 'applicability',
|
|
206
|
+
passed,
|
|
207
|
+
score: compatibility,
|
|
208
|
+
message: passed
|
|
209
|
+
? 'Pattern applicable to target agent'
|
|
210
|
+
: 'Pattern may not be suitable for target agent',
|
|
211
|
+
details: { compatibilityScore: compatibility.toFixed(3) },
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Check context preservation
|
|
216
|
+
*/
|
|
217
|
+
async checkContextPreservation(record) {
|
|
218
|
+
// Verify transfer context was recorded
|
|
219
|
+
const registry = this.db.prepare(`
|
|
220
|
+
SELECT * FROM transfer_registry
|
|
221
|
+
WHERE pattern_id = ? AND target_agent = ?
|
|
222
|
+
`).get(record.patternId, record.targetAgent);
|
|
223
|
+
const hasContext = registry && registry.source_agent === record.sourceAgent;
|
|
224
|
+
return {
|
|
225
|
+
name: 'Context Preservation',
|
|
226
|
+
category: 'applicability',
|
|
227
|
+
passed: hasContext,
|
|
228
|
+
score: hasContext ? 1.0 : 0.5,
|
|
229
|
+
message: hasContext
|
|
230
|
+
? 'Transfer context preserved'
|
|
231
|
+
: 'Transfer context incomplete',
|
|
232
|
+
details: { hasRegistry: !!registry },
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Check confidence preservation
|
|
237
|
+
*/
|
|
238
|
+
async checkConfidencePreservation(record) {
|
|
239
|
+
// Get transferred pattern's confidence
|
|
240
|
+
const pattern = this.db.prepare(`
|
|
241
|
+
SELECT confidence FROM patterns
|
|
242
|
+
WHERE id LIKE ? AND agent_id = ?
|
|
243
|
+
`).get(`%${record.patternId}%`, record.targetAgent);
|
|
244
|
+
if (!pattern) {
|
|
245
|
+
return {
|
|
246
|
+
name: 'Confidence Preservation',
|
|
247
|
+
category: 'performance',
|
|
248
|
+
passed: false,
|
|
249
|
+
score: 0,
|
|
250
|
+
message: 'Pattern not found for confidence check',
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
// Expect ~90% confidence retention (10% reduction for transfer)
|
|
254
|
+
const expectedConfidence = 0.5; // Minimum acceptable
|
|
255
|
+
const passed = pattern.confidence >= expectedConfidence;
|
|
256
|
+
return {
|
|
257
|
+
name: 'Confidence Preservation',
|
|
258
|
+
category: 'performance',
|
|
259
|
+
passed,
|
|
260
|
+
score: Math.min(1, pattern.confidence / 0.7),
|
|
261
|
+
message: passed
|
|
262
|
+
? `Confidence preserved: ${(pattern.confidence * 100).toFixed(1)}%`
|
|
263
|
+
: `Confidence too low: ${(pattern.confidence * 100).toFixed(1)}%`,
|
|
264
|
+
details: { confidence: pattern.confidence },
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Check for duplicate transfers
|
|
269
|
+
*/
|
|
270
|
+
async checkDuplicateDetection(record) {
|
|
271
|
+
// Check if same pattern was transferred multiple times
|
|
272
|
+
const duplicates = this.db.prepare(`
|
|
273
|
+
SELECT COUNT(*) as count FROM transfer_registry
|
|
274
|
+
WHERE pattern_id = ? AND target_agent = ?
|
|
275
|
+
`).get(record.patternId, record.targetAgent);
|
|
276
|
+
const noDuplicates = duplicates.count <= 1;
|
|
277
|
+
return {
|
|
278
|
+
name: 'Duplicate Detection',
|
|
279
|
+
category: 'performance',
|
|
280
|
+
passed: noDuplicates,
|
|
281
|
+
score: noDuplicates ? 1.0 : 0.5,
|
|
282
|
+
message: noDuplicates
|
|
283
|
+
? 'No duplicate transfers detected'
|
|
284
|
+
: `Pattern transferred ${duplicates.count} times`,
|
|
285
|
+
details: { transferCount: duplicates.count },
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Check safety constraints
|
|
290
|
+
*/
|
|
291
|
+
async checkSafetyConstraints(record) {
|
|
292
|
+
// Verify no unsafe patterns are being transferred
|
|
293
|
+
const unsafePatterns = [
|
|
294
|
+
'delete', 'drop', 'truncate', 'rm -rf',
|
|
295
|
+
'password', 'secret', 'credential',
|
|
296
|
+
];
|
|
297
|
+
const content = (record.transferredContent || '').toLowerCase();
|
|
298
|
+
const hasUnsafe = unsafePatterns.some(p => content.includes(p));
|
|
299
|
+
return {
|
|
300
|
+
name: 'Safety Constraints',
|
|
301
|
+
category: 'safety',
|
|
302
|
+
passed: !hasUnsafe,
|
|
303
|
+
score: hasUnsafe ? 0.5 : 1.0,
|
|
304
|
+
message: hasUnsafe
|
|
305
|
+
? 'Warning: Pattern contains potentially unsafe content'
|
|
306
|
+
: 'Pattern passes safety checks',
|
|
307
|
+
details: { flagged: hasUnsafe },
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Calculate content similarity
|
|
312
|
+
*/
|
|
313
|
+
calculateContentSimilarity(a, b) {
|
|
314
|
+
if (!a || !b)
|
|
315
|
+
return 0;
|
|
316
|
+
if (a === b)
|
|
317
|
+
return 1;
|
|
318
|
+
// Simple word overlap
|
|
319
|
+
const wordsA = new Set(a.toLowerCase().split(/\s+/));
|
|
320
|
+
const wordsB = new Set(b.toLowerCase().split(/\s+/));
|
|
321
|
+
const intersection = [...wordsA].filter(w => wordsB.has(w));
|
|
322
|
+
const union = new Set([...wordsA, ...wordsB]);
|
|
323
|
+
return intersection.length / union.size;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Generate recommendations based on validation
|
|
327
|
+
*/
|
|
328
|
+
generateRecommendations(checks, passed) {
|
|
329
|
+
const recommendations = [];
|
|
330
|
+
for (const check of checks) {
|
|
331
|
+
if (!check.passed) {
|
|
332
|
+
switch (check.category) {
|
|
333
|
+
case 'integrity':
|
|
334
|
+
recommendations.push(`Fix ${check.name}: ${check.message}`);
|
|
335
|
+
break;
|
|
336
|
+
case 'applicability':
|
|
337
|
+
recommendations.push(`Review applicability: ${check.message}`);
|
|
338
|
+
break;
|
|
339
|
+
case 'performance':
|
|
340
|
+
recommendations.push(`Optimize: ${check.message}`);
|
|
341
|
+
break;
|
|
342
|
+
case 'safety':
|
|
343
|
+
recommendations.push(`Security review required: ${check.message}`);
|
|
344
|
+
break;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
if (!passed && recommendations.length === 0) {
|
|
349
|
+
recommendations.push('Overall score below threshold - review transfer parameters');
|
|
350
|
+
}
|
|
351
|
+
return recommendations;
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Store validation result
|
|
355
|
+
*/
|
|
356
|
+
async storeValidation(report) {
|
|
357
|
+
const id = `val-${Date.now()}-${Math.random().toString(36).substr(2, 8)}`;
|
|
358
|
+
this.db.prepare(`
|
|
359
|
+
INSERT INTO transfer_validations
|
|
360
|
+
(id, transfer_id, pattern_id, source_agent, target_agent, passed, overall_score, checks, recommendations, validated_at)
|
|
361
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
362
|
+
`).run(id, report.transferId, report.patternId, report.sourceAgent, report.targetAgent, report.passed ? 1 : 0, report.overallScore, JSON.stringify(report.checks), report.recommendations ? JSON.stringify(report.recommendations) : null, report.validatedAt.getTime());
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Get validation history for a pattern
|
|
366
|
+
*/
|
|
367
|
+
getValidationHistory(patternId) {
|
|
368
|
+
const rows = this.db.prepare(`
|
|
369
|
+
SELECT * FROM transfer_validations
|
|
370
|
+
WHERE pattern_id = ?
|
|
371
|
+
ORDER BY validated_at DESC
|
|
372
|
+
`).all(patternId);
|
|
373
|
+
return rows.map(row => ({
|
|
374
|
+
transferId: row.transfer_id,
|
|
375
|
+
patternId: row.pattern_id,
|
|
376
|
+
sourceAgent: row.source_agent,
|
|
377
|
+
targetAgent: row.target_agent,
|
|
378
|
+
passed: row.passed === 1,
|
|
379
|
+
overallScore: row.overall_score,
|
|
380
|
+
checks: JSON.parse(row.checks),
|
|
381
|
+
recommendations: row.recommendations ? JSON.parse(row.recommendations) : undefined,
|
|
382
|
+
validatedAt: new Date(row.validated_at),
|
|
383
|
+
}));
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Get validation statistics
|
|
387
|
+
*/
|
|
388
|
+
getStats() {
|
|
389
|
+
const stats = this.db.prepare(`
|
|
390
|
+
SELECT
|
|
391
|
+
COUNT(*) as total,
|
|
392
|
+
SUM(CASE WHEN passed = 1 THEN 1 ELSE 0 END) as passed,
|
|
393
|
+
SUM(CASE WHEN passed = 0 THEN 1 ELSE 0 END) as failed,
|
|
394
|
+
AVG(overall_score) as avg_score
|
|
395
|
+
FROM transfer_validations
|
|
396
|
+
`).get();
|
|
397
|
+
return {
|
|
398
|
+
total: stats.total || 0,
|
|
399
|
+
passed: stats.passed || 0,
|
|
400
|
+
failed: stats.failed || 0,
|
|
401
|
+
avgScore: stats.avg_score || 0,
|
|
402
|
+
};
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* Close database connection
|
|
406
|
+
*/
|
|
407
|
+
close() {
|
|
408
|
+
this.db.close();
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
exports.TransferValidator = TransferValidator;
|
|
412
|
+
exports.default = TransferValidator;
|
|
413
|
+
//# sourceMappingURL=TransferValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransferValidator.js","sourceRoot":"","sources":["../../../src/learning/transfer/TransferValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transfer Module
|
|
3
|
+
*
|
|
4
|
+
* Implements cross-agent pattern transfer for the Nightly-Learner system.
|
|
5
|
+
* Enables knowledge sharing between QE agents.
|
|
6
|
+
*
|
|
7
|
+
* @module src/learning/transfer
|
|
8
|
+
*/
|
|
9
|
+
export { TransferPrototype, TransferTest, TransferResult as PrototypeTransferResult, AgentDomain, } from './TransferPrototype';
|
|
10
|
+
export { TransferProtocol, TransferRequest, TransferResult, TransferDetail, ValidationResult, ValidationTest, TransferProtocolConfig, TransferStats, } from './TransferProtocol';
|
|
11
|
+
export { CompatibilityScorer, CompatibilityReport, CompatibilityBreakdown, AgentProfile, PatternProfile, } from './CompatibilityScorer';
|
|
12
|
+
export { TransferValidator, ValidationConfig, ValidationReport, ValidationCheck, TransferRecord, } from './TransferValidator';
|
|
13
|
+
export { TransferProtocol as default } from './TransferProtocol';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/learning/transfer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,cAAc,IAAI,uBAAuB,EACzC,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACZ,cAAc,GACf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,cAAc,GACf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Transfer Module
|
|
4
|
+
*
|
|
5
|
+
* Implements cross-agent pattern transfer for the Nightly-Learner system.
|
|
6
|
+
* Enables knowledge sharing between QE agents.
|
|
7
|
+
*
|
|
8
|
+
* @module src/learning/transfer
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.default = exports.TransferValidator = exports.CompatibilityScorer = exports.TransferProtocol = exports.TransferPrototype = void 0;
|
|
12
|
+
var TransferPrototype_1 = require("./TransferPrototype");
|
|
13
|
+
Object.defineProperty(exports, "TransferPrototype", { enumerable: true, get: function () { return TransferPrototype_1.TransferPrototype; } });
|
|
14
|
+
var TransferProtocol_1 = require("./TransferProtocol");
|
|
15
|
+
Object.defineProperty(exports, "TransferProtocol", { enumerable: true, get: function () { return TransferProtocol_1.TransferProtocol; } });
|
|
16
|
+
var CompatibilityScorer_1 = require("./CompatibilityScorer");
|
|
17
|
+
Object.defineProperty(exports, "CompatibilityScorer", { enumerable: true, get: function () { return CompatibilityScorer_1.CompatibilityScorer; } });
|
|
18
|
+
var TransferValidator_1 = require("./TransferValidator");
|
|
19
|
+
Object.defineProperty(exports, "TransferValidator", { enumerable: true, get: function () { return TransferValidator_1.TransferValidator; } });
|
|
20
|
+
var TransferProtocol_2 = require("./TransferProtocol");
|
|
21
|
+
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return TransferProtocol_2.TransferProtocol; } });
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/learning/transfer/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,yDAK6B;AAJ3B,sHAAA,iBAAiB,OAAA;AAMnB,uDAS4B;AAR1B,oHAAA,gBAAgB,OAAA;AAUlB,6DAM+B;AAL7B,0HAAA,mBAAmB,OAAA;AAOrB,yDAM6B;AAL3B,sHAAA,iBAAiB,OAAA;AAOnB,uDAAiE;AAAxD,2GAAA,gBAAgB,OAAW"}
|
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Enhanced Test Generation Handler with AI
|
|
3
3
|
*
|
|
4
|
+
* Routes through AgentRegistry to enable automatic learning.
|
|
5
|
+
* When users call this MCP tool, the TestGeneratorAgent:
|
|
6
|
+
* 1. Executes the task via executeTask()
|
|
7
|
+
* 2. Triggers onPostTask() hook automatically
|
|
8
|
+
* 3. Calls learningEngine.learnFromExecution()
|
|
9
|
+
* 4. Persists Q-values, patterns, and experiences to memory.db
|
|
10
|
+
*
|
|
4
11
|
* Features:
|
|
5
12
|
* - AI-powered code analysis
|
|
6
13
|
* - Pattern recognition
|
|
7
14
|
* - Anti-pattern detection
|
|
8
15
|
* - Property-based test generation
|
|
9
16
|
* - Multi-language support
|
|
17
|
+
* - **Automatic learning from every execution**
|
|
10
18
|
*
|
|
11
|
-
* @version
|
|
19
|
+
* @version 2.0.0 - Now with agent-based learning
|
|
12
20
|
*/
|
|
13
21
|
import { BaseHandler, HandlerResponse } from '../base-handler';
|
|
22
|
+
import { AgentRegistry } from '../../services/AgentRegistry';
|
|
14
23
|
export interface TestGenerateEnhancedArgs {
|
|
15
24
|
sourceCode: string;
|
|
16
25
|
language: string;
|
|
@@ -20,10 +29,25 @@ export interface TestGenerateEnhancedArgs {
|
|
|
20
29
|
detectAntiPatterns?: boolean;
|
|
21
30
|
}
|
|
22
31
|
export declare class TestGenerateEnhancedHandler extends BaseHandler {
|
|
32
|
+
private registry;
|
|
23
33
|
private aiModels;
|
|
24
34
|
private patternRecognizer;
|
|
25
|
-
constructor();
|
|
35
|
+
constructor(registry?: AgentRegistry);
|
|
36
|
+
/**
|
|
37
|
+
* Set the AgentRegistry for agent-based execution with learning
|
|
38
|
+
*/
|
|
39
|
+
setRegistry(registry: AgentRegistry): void;
|
|
26
40
|
handle(args: TestGenerateEnhancedArgs): Promise<HandlerResponse>;
|
|
41
|
+
/**
|
|
42
|
+
* Execute via TestGeneratorAgent for automatic learning
|
|
43
|
+
* This is the preferred path - agents learn from every execution
|
|
44
|
+
*/
|
|
45
|
+
private executeViaAgent;
|
|
46
|
+
/**
|
|
47
|
+
* Direct execution without agent (fallback - no learning)
|
|
48
|
+
*/
|
|
49
|
+
private executeDirect;
|
|
50
|
+
private getFrameworkForLanguage;
|
|
27
51
|
private initializeAIModels;
|
|
28
52
|
private initializePatternRecognizer;
|
|
29
53
|
private analyzeCodeWithAI;
|