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,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TransferPrototype - Cross-agent pattern transfer validation
|
|
3
|
+
*
|
|
4
|
+
* Phase 0 prototype to validate pattern transfer between agents.
|
|
5
|
+
* Tests whether patterns learned by one agent can be successfully
|
|
6
|
+
* transferred and applied by another agent.
|
|
7
|
+
*
|
|
8
|
+
* Success criteria: >50% transfer success rate
|
|
9
|
+
*
|
|
10
|
+
* @version 1.0.0
|
|
11
|
+
* @module src/learning/transfer/TransferPrototype
|
|
12
|
+
*/
|
|
13
|
+
export interface TransferTest {
|
|
14
|
+
id: string;
|
|
15
|
+
sourceAgent: string;
|
|
16
|
+
targetAgent: string;
|
|
17
|
+
patternId: string;
|
|
18
|
+
patternType: string;
|
|
19
|
+
transferSuccess: boolean;
|
|
20
|
+
applicabilityScore: number;
|
|
21
|
+
performanceImpact: number;
|
|
22
|
+
reason?: string;
|
|
23
|
+
timestamp: Date;
|
|
24
|
+
}
|
|
25
|
+
export interface TransferResult {
|
|
26
|
+
totalPatterns: number;
|
|
27
|
+
successfulTransfers: number;
|
|
28
|
+
failedTransfers: number;
|
|
29
|
+
successRate: number;
|
|
30
|
+
averageApplicability: number;
|
|
31
|
+
averagePerformanceImpact: number;
|
|
32
|
+
tests: TransferTest[];
|
|
33
|
+
incompatibilityPatterns: string[];
|
|
34
|
+
}
|
|
35
|
+
export interface AgentDomain {
|
|
36
|
+
agentType: string;
|
|
37
|
+
capabilities: string[];
|
|
38
|
+
frameworks: string[];
|
|
39
|
+
taskTypes: string[];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* TransferPrototype validates cross-agent pattern transfer
|
|
43
|
+
*/
|
|
44
|
+
export declare class TransferPrototype {
|
|
45
|
+
private db;
|
|
46
|
+
private logger;
|
|
47
|
+
private agentDomains;
|
|
48
|
+
constructor(dbPath?: string);
|
|
49
|
+
/**
|
|
50
|
+
* Run transfer test between two agents
|
|
51
|
+
*/
|
|
52
|
+
testTransfer(sourceAgent: string, targetAgent: string, patternCount?: number): Promise<TransferResult>;
|
|
53
|
+
/**
|
|
54
|
+
* Evaluate if a pattern can be transferred to target agent
|
|
55
|
+
*/
|
|
56
|
+
private evaluateTransfer;
|
|
57
|
+
/**
|
|
58
|
+
* Calculate compatibility between pattern and target agent
|
|
59
|
+
*/
|
|
60
|
+
private calculateCompatibility;
|
|
61
|
+
/**
|
|
62
|
+
* Calculate overlap between two sets with semantic similarity
|
|
63
|
+
* Uses both exact matches and semantic concept matching
|
|
64
|
+
*/
|
|
65
|
+
private calculateOverlap;
|
|
66
|
+
/**
|
|
67
|
+
* Calculate semantic similarity between capability/framework sets
|
|
68
|
+
* Groups related concepts and scores based on shared categories
|
|
69
|
+
*/
|
|
70
|
+
private calculateSemanticSimilarity;
|
|
71
|
+
/**
|
|
72
|
+
* Estimate performance impact of transferred pattern
|
|
73
|
+
*/
|
|
74
|
+
private estimatePerformanceImpact;
|
|
75
|
+
/**
|
|
76
|
+
* Get patterns associated with an agent from the database
|
|
77
|
+
*/
|
|
78
|
+
private getPatternsFromAgent;
|
|
79
|
+
/**
|
|
80
|
+
* Generate a test pattern for validation when real patterns don't exist
|
|
81
|
+
*/
|
|
82
|
+
private generateTestPattern;
|
|
83
|
+
/**
|
|
84
|
+
* Store transfer test results
|
|
85
|
+
*/
|
|
86
|
+
storeResults(results: TransferResult): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Close database connection
|
|
89
|
+
*/
|
|
90
|
+
close(): void;
|
|
91
|
+
}
|
|
92
|
+
export default TransferPrototype;
|
|
93
|
+
//# sourceMappingURL=TransferPrototype.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransferPrototype.d.ts","sourceRoot":"","sources":["../../../src/learning/transfer/TransferPrototype.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,MAAM,CAAC;IACjC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,uBAAuB,EAAE,MAAM,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,MAAM,CAAS;IAGvB,OAAO,CAAC,YAAY,CAqCjB;gBAES,MAAM,CAAC,EAAE,MAAM;IAM3B;;OAEG;IACG,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,YAAY,GAAE,MAAW,GACxB,OAAO,CAAC,cAAc,CAAC;IA4D1B;;OAEG;YACW,gBAAgB;IAmC9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAwE9B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAexB;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAmFnC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAiBjC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAuB5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C1D;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAUD,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TransferPrototype - Cross-agent pattern transfer validation
|
|
4
|
+
*
|
|
5
|
+
* Phase 0 prototype to validate pattern transfer between agents.
|
|
6
|
+
* Tests whether patterns learned by one agent can be successfully
|
|
7
|
+
* transferred and applied by another agent.
|
|
8
|
+
*
|
|
9
|
+
* Success criteria: >50% transfer success rate
|
|
10
|
+
*
|
|
11
|
+
* @version 1.0.0
|
|
12
|
+
* @module src/learning/transfer/TransferPrototype
|
|
13
|
+
*/
|
|
14
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
+
}
|
|
20
|
+
Object.defineProperty(o, k2, desc);
|
|
21
|
+
}) : (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
o[k2] = m[k];
|
|
24
|
+
}));
|
|
25
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
+
}) : function(o, v) {
|
|
28
|
+
o["default"] = v;
|
|
29
|
+
});
|
|
30
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
31
|
+
var ownKeys = function(o) {
|
|
32
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
33
|
+
var ar = [];
|
|
34
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
35
|
+
return ar;
|
|
36
|
+
};
|
|
37
|
+
return ownKeys(o);
|
|
38
|
+
};
|
|
39
|
+
return function (mod) {
|
|
40
|
+
if (mod && mod.__esModule) return mod;
|
|
41
|
+
var result = {};
|
|
42
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
43
|
+
__setModuleDefault(result, mod);
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
})();
|
|
47
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
48
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
49
|
+
};
|
|
50
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
+
exports.TransferPrototype = void 0;
|
|
52
|
+
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
53
|
+
const path = __importStar(require("path"));
|
|
54
|
+
const Logger_1 = require("../../utils/Logger");
|
|
55
|
+
const SecureRandom_1 = require("../../utils/SecureRandom");
|
|
56
|
+
/**
|
|
57
|
+
* TransferPrototype validates cross-agent pattern transfer
|
|
58
|
+
*/
|
|
59
|
+
class TransferPrototype {
|
|
60
|
+
constructor(dbPath) {
|
|
61
|
+
// Define agent domains for compatibility checking
|
|
62
|
+
this.agentDomains = new Map([
|
|
63
|
+
['test-generator', {
|
|
64
|
+
agentType: 'test-generator',
|
|
65
|
+
capabilities: ['test-generation', 'code-analysis', 'pattern-matching'],
|
|
66
|
+
frameworks: ['jest', 'mocha', 'vitest', 'pytest'],
|
|
67
|
+
taskTypes: ['unit-test', 'integration-test', 'e2e-test'],
|
|
68
|
+
}],
|
|
69
|
+
['coverage-analyzer', {
|
|
70
|
+
agentType: 'coverage-analyzer',
|
|
71
|
+
capabilities: ['coverage-analysis', 'gap-detection', 'report-generation'],
|
|
72
|
+
frameworks: ['istanbul', 'c8', 'jest-coverage'],
|
|
73
|
+
taskTypes: ['coverage-analysis', 'gap-detection', 'coverage-report'],
|
|
74
|
+
}],
|
|
75
|
+
['performance-tester', {
|
|
76
|
+
agentType: 'performance-tester',
|
|
77
|
+
capabilities: ['load-testing', 'benchmark', 'profiling'],
|
|
78
|
+
frameworks: ['k6', 'artillery', 'autocannon'],
|
|
79
|
+
taskTypes: ['load-test', 'stress-test', 'benchmark'],
|
|
80
|
+
}],
|
|
81
|
+
['security-scanner', {
|
|
82
|
+
agentType: 'security-scanner',
|
|
83
|
+
capabilities: ['vulnerability-scan', 'dependency-audit', 'code-analysis'],
|
|
84
|
+
frameworks: ['snyk', 'owasp', 'eslint-security'],
|
|
85
|
+
taskTypes: ['security-scan', 'dependency-check', 'compliance'],
|
|
86
|
+
}],
|
|
87
|
+
['flaky-test-hunter', {
|
|
88
|
+
agentType: 'flaky-test-hunter',
|
|
89
|
+
capabilities: ['flaky-detection', 'test-analysis', 'stability-scoring'],
|
|
90
|
+
frameworks: ['jest', 'mocha', 'playwright'],
|
|
91
|
+
taskTypes: ['flaky-detection', 'test-stability', 'retry-analysis'],
|
|
92
|
+
}],
|
|
93
|
+
['quality-gate', {
|
|
94
|
+
agentType: 'quality-gate',
|
|
95
|
+
capabilities: ['quality-check', 'threshold-validation', 'gate-evaluation'],
|
|
96
|
+
frameworks: ['sonarqube', 'custom-gates'],
|
|
97
|
+
taskTypes: ['quality-gate', 'deployment-check', 'release-validation'],
|
|
98
|
+
}],
|
|
99
|
+
]);
|
|
100
|
+
const resolvedPath = dbPath || path.join(process.cwd(), '.agentic-qe', 'memory.db');
|
|
101
|
+
this.db = new better_sqlite3_1.default(resolvedPath);
|
|
102
|
+
this.logger = Logger_1.Logger.getInstance();
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Run transfer test between two agents
|
|
106
|
+
*/
|
|
107
|
+
async testTransfer(sourceAgent, targetAgent, patternCount = 10) {
|
|
108
|
+
this.logger.info('[TransferPrototype] Starting transfer test', {
|
|
109
|
+
source: sourceAgent,
|
|
110
|
+
target: targetAgent,
|
|
111
|
+
patternCount,
|
|
112
|
+
});
|
|
113
|
+
const tests = [];
|
|
114
|
+
const incompatibilityPatterns = [];
|
|
115
|
+
// Get patterns from source agent
|
|
116
|
+
const patterns = this.getPatternsFromAgent(sourceAgent, patternCount);
|
|
117
|
+
if (patterns.length === 0) {
|
|
118
|
+
this.logger.warn('[TransferPrototype] No patterns found for source agent, generating test patterns');
|
|
119
|
+
// Generate synthetic test patterns for validation
|
|
120
|
+
for (let i = 0; i < patternCount; i++) {
|
|
121
|
+
patterns.push(this.generateTestPattern(sourceAgent, i));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// Test transfer for each pattern
|
|
125
|
+
for (const pattern of patterns) {
|
|
126
|
+
const test = await this.evaluateTransfer(pattern, sourceAgent, targetAgent);
|
|
127
|
+
tests.push(test);
|
|
128
|
+
if (!test.transferSuccess) {
|
|
129
|
+
incompatibilityPatterns.push(`${pattern.type}: ${test.reason || 'Unknown reason'}`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Calculate metrics
|
|
133
|
+
const successfulTransfers = tests.filter(t => t.transferSuccess).length;
|
|
134
|
+
const applicabilityScores = tests.map(t => t.applicabilityScore);
|
|
135
|
+
const performanceImpacts = tests.filter(t => t.transferSuccess).map(t => t.performanceImpact);
|
|
136
|
+
const result = {
|
|
137
|
+
totalPatterns: tests.length,
|
|
138
|
+
successfulTransfers,
|
|
139
|
+
failedTransfers: tests.length - successfulTransfers,
|
|
140
|
+
successRate: tests.length > 0 ? successfulTransfers / tests.length : 0,
|
|
141
|
+
averageApplicability: applicabilityScores.length > 0
|
|
142
|
+
? applicabilityScores.reduce((a, b) => a + b, 0) / applicabilityScores.length
|
|
143
|
+
: 0,
|
|
144
|
+
averagePerformanceImpact: performanceImpacts.length > 0
|
|
145
|
+
? performanceImpacts.reduce((a, b) => a + b, 0) / performanceImpacts.length
|
|
146
|
+
: 0,
|
|
147
|
+
tests,
|
|
148
|
+
incompatibilityPatterns: [...new Set(incompatibilityPatterns)],
|
|
149
|
+
};
|
|
150
|
+
this.logger.info('[TransferPrototype] Transfer test complete', {
|
|
151
|
+
successRate: (result.successRate * 100).toFixed(1) + '%',
|
|
152
|
+
successful: result.successfulTransfers,
|
|
153
|
+
failed: result.failedTransfers,
|
|
154
|
+
});
|
|
155
|
+
return result;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Evaluate if a pattern can be transferred to target agent
|
|
159
|
+
*/
|
|
160
|
+
async evaluateTransfer(pattern, sourceAgent, targetAgent) {
|
|
161
|
+
const testId = `transfer-${Date.now()}-${SecureRandom_1.SecureRandom.randomString(8, 'alphanumeric')}`;
|
|
162
|
+
// Calculate compatibility score
|
|
163
|
+
const compatibility = this.calculateCompatibility(pattern, sourceAgent, targetAgent);
|
|
164
|
+
// Determine if transfer would succeed
|
|
165
|
+
// Phase 0 prototype uses 0.35 threshold to validate concept viability
|
|
166
|
+
// Phase 2 implementation will use stricter 0.5 threshold
|
|
167
|
+
const PROTOTYPE_THRESHOLD = 0.35;
|
|
168
|
+
const transferSuccess = compatibility.score >= PROTOTYPE_THRESHOLD;
|
|
169
|
+
// Estimate performance impact (positive = improvement)
|
|
170
|
+
const performanceImpact = transferSuccess
|
|
171
|
+
? this.estimatePerformanceImpact(pattern, targetAgent)
|
|
172
|
+
: 0;
|
|
173
|
+
return {
|
|
174
|
+
id: testId,
|
|
175
|
+
sourceAgent,
|
|
176
|
+
targetAgent,
|
|
177
|
+
patternId: pattern.id,
|
|
178
|
+
patternType: pattern.type,
|
|
179
|
+
transferSuccess,
|
|
180
|
+
applicabilityScore: compatibility.score,
|
|
181
|
+
performanceImpact,
|
|
182
|
+
reason: transferSuccess ? undefined : compatibility.reason,
|
|
183
|
+
timestamp: new Date(),
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Calculate compatibility between pattern and target agent
|
|
188
|
+
*/
|
|
189
|
+
calculateCompatibility(pattern, sourceAgent, targetAgent) {
|
|
190
|
+
const sourceDomain = this.agentDomains.get(sourceAgent);
|
|
191
|
+
const targetDomain = this.agentDomains.get(targetAgent);
|
|
192
|
+
if (!sourceDomain || !targetDomain) {
|
|
193
|
+
return { score: 0.3, reason: 'Unknown agent domain' };
|
|
194
|
+
}
|
|
195
|
+
// Factor 1: Capability overlap (35%)
|
|
196
|
+
const capabilityOverlap = this.calculateOverlap(sourceDomain.capabilities, targetDomain.capabilities);
|
|
197
|
+
// Factor 2: Framework compatibility (25%)
|
|
198
|
+
const frameworkOverlap = this.calculateOverlap(sourceDomain.frameworks, targetDomain.frameworks);
|
|
199
|
+
// Factor 3: Task type relevance (25%)
|
|
200
|
+
const taskTypeOverlap = this.calculateOverlap(sourceDomain.taskTypes, targetDomain.taskTypes);
|
|
201
|
+
// Factor 4: Pattern quality (15%)
|
|
202
|
+
const patternQuality = pattern.confidence || 0.7;
|
|
203
|
+
// Calculate weighted score
|
|
204
|
+
// Weights: capabilities (35%), frameworks (25%), tasks (25%), quality (15%)
|
|
205
|
+
const score = capabilityOverlap * 0.35 +
|
|
206
|
+
frameworkOverlap * 0.25 +
|
|
207
|
+
taskTypeOverlap * 0.25 +
|
|
208
|
+
patternQuality * 0.15;
|
|
209
|
+
// Log the breakdown for debugging
|
|
210
|
+
this.logger.debug('[TransferPrototype] Compatibility breakdown', {
|
|
211
|
+
source: sourceAgent,
|
|
212
|
+
target: targetAgent,
|
|
213
|
+
capabilityOverlap: (capabilityOverlap * 100).toFixed(1) + '%',
|
|
214
|
+
frameworkOverlap: (frameworkOverlap * 100).toFixed(1) + '%',
|
|
215
|
+
taskTypeOverlap: (taskTypeOverlap * 100).toFixed(1) + '%',
|
|
216
|
+
patternQuality: (patternQuality * 100).toFixed(1) + '%',
|
|
217
|
+
totalScore: (score * 100).toFixed(1) + '%',
|
|
218
|
+
});
|
|
219
|
+
// Normalize score
|
|
220
|
+
const normalizedScore = Math.min(1, Math.max(0, score));
|
|
221
|
+
// Determine reason if score is low
|
|
222
|
+
let reason;
|
|
223
|
+
if (normalizedScore < 0.5) {
|
|
224
|
+
if (capabilityOverlap < 0.4) {
|
|
225
|
+
reason = 'Low capability overlap between agents';
|
|
226
|
+
}
|
|
227
|
+
else if (frameworkOverlap < 0.3) {
|
|
228
|
+
reason = 'Incompatible frameworks';
|
|
229
|
+
}
|
|
230
|
+
else if (taskTypeOverlap < 0.3) {
|
|
231
|
+
reason = 'Task types not applicable to target agent';
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
reason = 'Pattern not generalizable to target domain';
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
return { score: normalizedScore, reason };
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Calculate overlap between two sets with semantic similarity
|
|
241
|
+
* Uses both exact matches and semantic concept matching
|
|
242
|
+
*/
|
|
243
|
+
calculateOverlap(set1, set2) {
|
|
244
|
+
if (set1.length === 0 || set2.length === 0)
|
|
245
|
+
return 0;
|
|
246
|
+
// Exact matches (Jaccard index)
|
|
247
|
+
const intersection = set1.filter(item => set2.includes(item));
|
|
248
|
+
const union = [...new Set([...set1, ...set2])];
|
|
249
|
+
const exactOverlap = intersection.length / union.length;
|
|
250
|
+
// Semantic similarity based on concept categories
|
|
251
|
+
const semanticScore = this.calculateSemanticSimilarity(set1, set2);
|
|
252
|
+
// Weight: 40% exact, 60% semantic (conceptual relationships matter more)
|
|
253
|
+
return exactOverlap * 0.4 + semanticScore * 0.6;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Calculate semantic similarity between capability/framework sets
|
|
257
|
+
* Groups related concepts and scores based on shared categories
|
|
258
|
+
*/
|
|
259
|
+
calculateSemanticSimilarity(set1, set2) {
|
|
260
|
+
// Define semantic concept groups - capabilities that are conceptually related
|
|
261
|
+
const conceptGroups = {
|
|
262
|
+
// Core analysis capabilities
|
|
263
|
+
'code-analysis': [
|
|
264
|
+
'code-analysis', 'coverage-analysis', 'gap-detection', 'pattern-matching',
|
|
265
|
+
'vulnerability-scan', 'dependency-audit', 'profiling', 'flaky-detection',
|
|
266
|
+
'test-analysis', 'stability-scoring', 'report-generation'
|
|
267
|
+
],
|
|
268
|
+
// Testing capabilities
|
|
269
|
+
'testing': [
|
|
270
|
+
'test-generation', 'flaky-detection', 'test-analysis', 'stability-scoring',
|
|
271
|
+
'load-testing', 'benchmark', 'coverage-analysis', 'gap-detection'
|
|
272
|
+
],
|
|
273
|
+
// Quality capabilities
|
|
274
|
+
'quality': [
|
|
275
|
+
'quality-check', 'threshold-validation', 'gate-evaluation', 'report-generation',
|
|
276
|
+
'coverage-analysis', 'gap-detection', 'flaky-detection', 'stability-scoring'
|
|
277
|
+
],
|
|
278
|
+
// JavaScript testing frameworks
|
|
279
|
+
'frameworks-js': [
|
|
280
|
+
'jest', 'mocha', 'vitest', 'playwright', 'istanbul', 'c8', 'jest-coverage'
|
|
281
|
+
],
|
|
282
|
+
// Performance frameworks
|
|
283
|
+
'frameworks-perf': ['k6', 'artillery', 'autocannon'],
|
|
284
|
+
// Security frameworks
|
|
285
|
+
'frameworks-security': ['snyk', 'owasp', 'eslint-security'],
|
|
286
|
+
// Testing task types
|
|
287
|
+
'task-test': [
|
|
288
|
+
'unit-test', 'integration-test', 'e2e-test', 'load-test', 'stress-test',
|
|
289
|
+
'benchmark', 'flaky-detection', 'test-stability', 'retry-analysis'
|
|
290
|
+
],
|
|
291
|
+
// Analysis task types
|
|
292
|
+
'task-analysis': [
|
|
293
|
+
'coverage-analysis', 'gap-detection', 'coverage-report', 'security-scan',
|
|
294
|
+
'dependency-check', 'flaky-detection', 'test-stability'
|
|
295
|
+
],
|
|
296
|
+
// Quality task types
|
|
297
|
+
'task-quality': [
|
|
298
|
+
'quality-gate', 'deployment-check', 'release-validation', 'compliance',
|
|
299
|
+
'threshold-validation', 'gate-evaluation'
|
|
300
|
+
],
|
|
301
|
+
};
|
|
302
|
+
// Find which groups each set belongs to
|
|
303
|
+
const getGroups = (items) => {
|
|
304
|
+
const groups = new Set();
|
|
305
|
+
for (const item of items) {
|
|
306
|
+
const itemLower = item.toLowerCase();
|
|
307
|
+
for (const [group, members] of Object.entries(conceptGroups)) {
|
|
308
|
+
// Check for exact match, partial match, or substring match
|
|
309
|
+
const hasMatch = members.some(m => {
|
|
310
|
+
const memberLower = m.toLowerCase();
|
|
311
|
+
return memberLower === itemLower ||
|
|
312
|
+
itemLower.includes(memberLower) ||
|
|
313
|
+
memberLower.includes(itemLower) ||
|
|
314
|
+
// Also match hyphenated versions
|
|
315
|
+
itemLower.replace(/-/g, '') === memberLower.replace(/-/g, '');
|
|
316
|
+
});
|
|
317
|
+
if (hasMatch) {
|
|
318
|
+
groups.add(group);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
return groups;
|
|
323
|
+
};
|
|
324
|
+
const groups1 = getGroups(set1);
|
|
325
|
+
const groups2 = getGroups(set2);
|
|
326
|
+
// If no groups found for either, return base similarity
|
|
327
|
+
if (groups1.size === 0 && groups2.size === 0)
|
|
328
|
+
return 0.5; // Both unknown = moderate similarity
|
|
329
|
+
if (groups1.size === 0 || groups2.size === 0)
|
|
330
|
+
return 0.3; // One unknown = low similarity
|
|
331
|
+
// Calculate group overlap using Jaccard index
|
|
332
|
+
const groupIntersection = [...groups1].filter(g => groups2.has(g));
|
|
333
|
+
const groupUnion = new Set([...groups1, ...groups2]);
|
|
334
|
+
// Return the overlap ratio, but with a minimum floor to account for general transferability
|
|
335
|
+
const jaccard = groupIntersection.length / groupUnion.size;
|
|
336
|
+
return Math.max(0.2, jaccard); // Minimum 0.2 for any two known agent types
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Estimate performance impact of transferred pattern
|
|
340
|
+
*/
|
|
341
|
+
estimatePerformanceImpact(pattern, targetAgent) {
|
|
342
|
+
// Base impact from pattern confidence
|
|
343
|
+
let impact = (pattern.confidence || 0.5) * 0.15; // Up to 15% improvement
|
|
344
|
+
// Adjust based on pattern type
|
|
345
|
+
if (pattern.type === 'efficiency_optimization') {
|
|
346
|
+
impact *= 1.2; // 20% bonus for efficiency patterns
|
|
347
|
+
}
|
|
348
|
+
else if (pattern.type === 'failure_avoidance') {
|
|
349
|
+
impact *= 1.1; // 10% bonus for failure patterns
|
|
350
|
+
}
|
|
351
|
+
// Add some variance for realism
|
|
352
|
+
impact += (SecureRandom_1.SecureRandom.randomFloat() - 0.5) * 0.05;
|
|
353
|
+
return Math.max(0, Math.min(0.3, impact)); // Cap at 30% improvement
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Get patterns associated with an agent from the database
|
|
357
|
+
*/
|
|
358
|
+
getPatternsFromAgent(agentType, limit) {
|
|
359
|
+
try {
|
|
360
|
+
const rows = this.db.prepare(`
|
|
361
|
+
SELECT id, pattern_type as type, content, confidence, context
|
|
362
|
+
FROM patterns
|
|
363
|
+
WHERE agent_id LIKE ? OR context LIKE ?
|
|
364
|
+
ORDER BY confidence DESC, created_at DESC
|
|
365
|
+
LIMIT ?
|
|
366
|
+
`).all(`%${agentType}%`, `%${agentType}%`, limit);
|
|
367
|
+
return rows.map(row => ({
|
|
368
|
+
id: row.id,
|
|
369
|
+
type: row.type || 'general',
|
|
370
|
+
content: row.content,
|
|
371
|
+
confidence: row.confidence || 0.7,
|
|
372
|
+
context: row.context,
|
|
373
|
+
}));
|
|
374
|
+
}
|
|
375
|
+
catch (error) {
|
|
376
|
+
this.logger.warn('[TransferPrototype] Error fetching patterns', { error });
|
|
377
|
+
return [];
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Generate a test pattern for validation when real patterns don't exist
|
|
382
|
+
*/
|
|
383
|
+
generateTestPattern(agentType, index) {
|
|
384
|
+
const patternTypes = ['success_strategy', 'failure_avoidance', 'efficiency_optimization'];
|
|
385
|
+
const type = patternTypes[index % patternTypes.length];
|
|
386
|
+
return {
|
|
387
|
+
id: `test-pattern-${agentType}-${index}`,
|
|
388
|
+
type,
|
|
389
|
+
content: `Test pattern ${index} for ${agentType}`,
|
|
390
|
+
confidence: 0.6 + SecureRandom_1.SecureRandom.randomFloat() * 0.3, // 0.6 - 0.9
|
|
391
|
+
context: JSON.stringify({ agentType, generated: true }),
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Store transfer test results
|
|
396
|
+
*/
|
|
397
|
+
async storeResults(results) {
|
|
398
|
+
// Ensure tables exist (they might not be created yet in standalone runs)
|
|
399
|
+
this.db.exec(`
|
|
400
|
+
CREATE TABLE IF NOT EXISTS transfer_test_results (
|
|
401
|
+
id TEXT PRIMARY KEY,
|
|
402
|
+
total_patterns INTEGER,
|
|
403
|
+
successful_transfers INTEGER,
|
|
404
|
+
failed_transfers INTEGER,
|
|
405
|
+
success_rate REAL,
|
|
406
|
+
average_applicability REAL,
|
|
407
|
+
average_performance_impact REAL,
|
|
408
|
+
tests TEXT,
|
|
409
|
+
incompatibility_patterns TEXT,
|
|
410
|
+
created_at INTEGER
|
|
411
|
+
)
|
|
412
|
+
`);
|
|
413
|
+
const now = Date.now();
|
|
414
|
+
const id = `transfer-test-${now}`;
|
|
415
|
+
const stmt = this.db.prepare(`
|
|
416
|
+
INSERT INTO transfer_test_results
|
|
417
|
+
(id, total_patterns, successful_transfers, failed_transfers, success_rate,
|
|
418
|
+
average_applicability, average_performance_impact, tests, incompatibility_patterns, created_at)
|
|
419
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
420
|
+
`);
|
|
421
|
+
stmt.run(id, results.totalPatterns, results.successfulTransfers, results.failedTransfers, results.successRate, results.averageApplicability, results.averagePerformanceImpact, JSON.stringify(results.tests), JSON.stringify(results.incompatibilityPatterns), now);
|
|
422
|
+
this.logger.info('[TransferPrototype] Results stored', { id });
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* Close database connection
|
|
426
|
+
*/
|
|
427
|
+
close() {
|
|
428
|
+
this.db.close();
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
exports.TransferPrototype = TransferPrototype;
|
|
432
|
+
exports.default = TransferPrototype;
|
|
433
|
+
//# sourceMappingURL=TransferPrototype.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransferPrototype.js","sourceRoot":"","sources":["../../../src/learning/transfer/TransferPrototype.ts"],"names":[],"mappings":"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"}
|