agentic-qe 2.3.3 → 2.3.5
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 +122 -0
- package/README.md +1 -1
- package/dist/agents/ApiContractValidatorAgent.d.ts +5 -0
- package/dist/agents/ApiContractValidatorAgent.d.ts.map +1 -1
- package/dist/agents/ApiContractValidatorAgent.js +41 -0
- package/dist/agents/ApiContractValidatorAgent.js.map +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/CodeComplexityAnalyzerAgent.d.ts +5 -0
- package/dist/agents/CodeComplexityAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CodeComplexityAnalyzerAgent.js +47 -0
- package/dist/agents/CodeComplexityAnalyzerAgent.js.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.d.ts +26 -0
- package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.js +149 -1
- package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
- package/dist/agents/DeploymentReadinessAgent.d.ts +5 -0
- package/dist/agents/DeploymentReadinessAgent.d.ts.map +1 -1
- package/dist/agents/DeploymentReadinessAgent.js +41 -0
- package/dist/agents/DeploymentReadinessAgent.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 +40 -0
- package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
- package/dist/agents/FleetCommanderAgent.d.ts +5 -0
- package/dist/agents/FleetCommanderAgent.d.ts.map +1 -1
- package/dist/agents/FleetCommanderAgent.js +51 -0
- package/dist/agents/FleetCommanderAgent.js.map +1 -1
- package/dist/agents/PerformanceTesterAgent.d.ts +5 -0
- package/dist/agents/PerformanceTesterAgent.d.ts.map +1 -1
- package/dist/agents/PerformanceTesterAgent.js +44 -0
- package/dist/agents/PerformanceTesterAgent.js.map +1 -1
- package/dist/agents/ProductionIntelligenceAgent.d.ts +5 -0
- package/dist/agents/ProductionIntelligenceAgent.d.ts.map +1 -1
- package/dist/agents/ProductionIntelligenceAgent.js +46 -0
- package/dist/agents/ProductionIntelligenceAgent.js.map +1 -1
- package/dist/agents/QXPartnerAgent.js +52 -0
- package/dist/agents/QXPartnerAgent.js.map +1 -1
- package/dist/agents/QualityAnalyzerAgent.d.ts +5 -0
- package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/QualityAnalyzerAgent.js +45 -0
- package/dist/agents/QualityAnalyzerAgent.js.map +1 -1
- package/dist/agents/QualityGateAgent.d.ts +40 -0
- package/dist/agents/QualityGateAgent.d.ts.map +1 -1
- package/dist/agents/QualityGateAgent.js +227 -1
- package/dist/agents/QualityGateAgent.js.map +1 -1
- package/dist/agents/RegressionRiskAnalyzerAgent.d.ts +5 -0
- package/dist/agents/RegressionRiskAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/RegressionRiskAnalyzerAgent.js +46 -0
- package/dist/agents/RegressionRiskAnalyzerAgent.js.map +1 -1
- package/dist/agents/RequirementsValidatorAgent.d.ts +5 -0
- package/dist/agents/RequirementsValidatorAgent.d.ts.map +1 -1
- package/dist/agents/RequirementsValidatorAgent.js +42 -0
- package/dist/agents/RequirementsValidatorAgent.js.map +1 -1
- package/dist/agents/SecurityScannerAgent.d.ts +5 -0
- package/dist/agents/SecurityScannerAgent.d.ts.map +1 -1
- package/dist/agents/SecurityScannerAgent.js +39 -0
- package/dist/agents/SecurityScannerAgent.js.map +1 -1
- package/dist/agents/TestDataArchitectAgent.d.ts +5 -0
- package/dist/agents/TestDataArchitectAgent.d.ts.map +1 -1
- package/dist/agents/TestDataArchitectAgent.js +46 -0
- package/dist/agents/TestDataArchitectAgent.js.map +1 -1
- package/dist/agents/TestExecutorAgent.d.ts +5 -0
- package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
- package/dist/agents/TestExecutorAgent.js +48 -0
- package/dist/agents/TestExecutorAgent.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 +36 -0
- package/dist/agents/TestGeneratorAgent.js.map +1 -1
- package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -1
- package/dist/agents/lifecycle/AgentLifecycleManager.js +5 -2
- package/dist/agents/lifecycle/AgentLifecycleManager.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 +224 -3
- package/dist/cli/index.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/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/ExperienceExtractor.d.ts +219 -0
- package/dist/learning/capture/ExperienceExtractor.d.ts.map +1 -0
- package/dist/learning/capture/ExperienceExtractor.js +536 -0
- package/dist/learning/capture/ExperienceExtractor.js.map +1 -0
- package/dist/learning/capture/ExperienceStore.d.ts +196 -0
- package/dist/learning/capture/ExperienceStore.d.ts.map +1 -0
- package/dist/learning/capture/ExperienceStore.js +453 -0
- package/dist/learning/capture/ExperienceStore.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 +133 -0
- package/dist/learning/scheduler/SleepScheduler.d.ts.map +1 -0
- package/dist/learning/scheduler/SleepScheduler.js +301 -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/ClusteringEngine.d.ts +122 -0
- package/dist/learning/synthesis/ClusteringEngine.d.ts.map +1 -0
- package/dist/learning/synthesis/ClusteringEngine.js +356 -0
- package/dist/learning/synthesis/ClusteringEngine.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/TransferRegistry.d.ts +245 -0
- package/dist/learning/transfer/TransferRegistry.d.ts.map +1 -0
- package/dist/learning/transfer/TransferRegistry.js +410 -0
- package/dist/learning/transfer/TransferRegistry.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/task-orchestrate.d.ts +11 -0
- package/dist/mcp/handlers/task-orchestrate.d.ts.map +1 -1
- package/dist/mcp/handlers/task-orchestrate.js +297 -4
- package/dist/mcp/handlers/task-orchestrate.js.map +1 -1
- 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/dist/mcp/services/AgentRegistry.d.ts +6 -1
- package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
- package/dist/mcp/services/AgentRegistry.js +34 -3
- package/dist/mcp/services/AgentRegistry.js.map +1 -1
- package/package.json +5 -2
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PatternSynthesis - Identifies patterns from captured experiences
|
|
3
|
+
*
|
|
4
|
+
* Synthesizes actionable patterns from captured agent executions using
|
|
5
|
+
* clustering and analysis techniques.
|
|
6
|
+
*
|
|
7
|
+
* Part of the Nightly-Learner Phase 1 implementation.
|
|
8
|
+
*
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
* @module src/learning/synthesis/PatternSynthesis
|
|
11
|
+
*/
|
|
12
|
+
import { EventEmitter } from 'events';
|
|
13
|
+
import { CapturedExperience } from '../capture/ExperienceCapture';
|
|
14
|
+
export type PatternType = 'success_strategy' | 'failure_avoidance' | 'efficiency_optimization';
|
|
15
|
+
export interface SynthesizedPattern {
|
|
16
|
+
id: string;
|
|
17
|
+
type: PatternType;
|
|
18
|
+
description: string;
|
|
19
|
+
conditions: string[];
|
|
20
|
+
actions: string[];
|
|
21
|
+
confidence: number;
|
|
22
|
+
supportingExperiences: string[];
|
|
23
|
+
effectiveness: number;
|
|
24
|
+
agentTypes: string[];
|
|
25
|
+
taskTypes: string[];
|
|
26
|
+
createdAt: Date;
|
|
27
|
+
updatedAt: Date;
|
|
28
|
+
}
|
|
29
|
+
export interface Cluster {
|
|
30
|
+
id: string;
|
|
31
|
+
experiences: CapturedExperience[];
|
|
32
|
+
centroid?: number[];
|
|
33
|
+
size: number;
|
|
34
|
+
averageQuality: number;
|
|
35
|
+
commonAgentTypes: string[];
|
|
36
|
+
commonTaskTypes: string[];
|
|
37
|
+
}
|
|
38
|
+
export interface SynthesisOptions {
|
|
39
|
+
/** Specific experience IDs to process */
|
|
40
|
+
experienceIds?: string[];
|
|
41
|
+
/** Minimum experiences to form pattern. Default: 3 */
|
|
42
|
+
minSupport?: number;
|
|
43
|
+
/** Minimum confidence threshold. Default: 0.7 */
|
|
44
|
+
minConfidence?: number;
|
|
45
|
+
/** Maximum patterns to generate. Default: 20 */
|
|
46
|
+
maxPatterns?: number;
|
|
47
|
+
/** Focus on specific agent types */
|
|
48
|
+
agentTypes?: string[];
|
|
49
|
+
/** Focus on specific task types */
|
|
50
|
+
taskTypes?: string[];
|
|
51
|
+
}
|
|
52
|
+
export interface SynthesisResult {
|
|
53
|
+
patterns: SynthesizedPattern[];
|
|
54
|
+
clustersAnalyzed: number;
|
|
55
|
+
experiencesProcessed: number;
|
|
56
|
+
duration: number;
|
|
57
|
+
stats: {
|
|
58
|
+
successStrategies: number;
|
|
59
|
+
failureAvoidances: number;
|
|
60
|
+
efficiencyOptimizations: number;
|
|
61
|
+
averageConfidence: number;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export interface PatternSynthesisConfig {
|
|
65
|
+
/** Database path. Default: .agentic-qe/memory.db */
|
|
66
|
+
dbPath?: string;
|
|
67
|
+
/** Enable debug logging */
|
|
68
|
+
debug?: boolean;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* PatternSynthesis identifies patterns from agent experiences
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```typescript
|
|
75
|
+
* const synthesis = new PatternSynthesis();
|
|
76
|
+
*
|
|
77
|
+
* const result = await synthesis.synthesize({
|
|
78
|
+
* minSupport: 3,
|
|
79
|
+
* minConfidence: 0.7,
|
|
80
|
+
* maxPatterns: 20,
|
|
81
|
+
* });
|
|
82
|
+
*
|
|
83
|
+
* console.log(`Discovered ${result.patterns.length} patterns`);
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
export declare class PatternSynthesis extends EventEmitter {
|
|
87
|
+
private config;
|
|
88
|
+
private db;
|
|
89
|
+
private logger;
|
|
90
|
+
constructor(config?: PatternSynthesisConfig);
|
|
91
|
+
/**
|
|
92
|
+
* Initialize database schema for patterns
|
|
93
|
+
*/
|
|
94
|
+
private initializeSchema;
|
|
95
|
+
/**
|
|
96
|
+
* Synthesize patterns from experiences
|
|
97
|
+
*/
|
|
98
|
+
synthesize(options?: SynthesisOptions): Promise<SynthesisResult>;
|
|
99
|
+
/**
|
|
100
|
+
* Get stored patterns
|
|
101
|
+
*/
|
|
102
|
+
getPatterns(options?: {
|
|
103
|
+
type?: PatternType;
|
|
104
|
+
minConfidence?: number;
|
|
105
|
+
agentType?: string;
|
|
106
|
+
limit?: number;
|
|
107
|
+
}): SynthesizedPattern[];
|
|
108
|
+
/**
|
|
109
|
+
* Get pattern by ID
|
|
110
|
+
*/
|
|
111
|
+
getPattern(id: string): SynthesizedPattern | null;
|
|
112
|
+
/**
|
|
113
|
+
* Update pattern effectiveness based on new evidence
|
|
114
|
+
*/
|
|
115
|
+
updateEffectiveness(patternId: string, success: boolean): void;
|
|
116
|
+
/**
|
|
117
|
+
* Get experiences for synthesis
|
|
118
|
+
*/
|
|
119
|
+
private getExperiences;
|
|
120
|
+
/**
|
|
121
|
+
* Cluster experiences by similarity
|
|
122
|
+
*/
|
|
123
|
+
private clusterExperiences;
|
|
124
|
+
/**
|
|
125
|
+
* Extract a pattern from a cluster
|
|
126
|
+
*/
|
|
127
|
+
private extractPatternFromCluster;
|
|
128
|
+
/**
|
|
129
|
+
* Extract common conditions from experiences
|
|
130
|
+
*/
|
|
131
|
+
private extractConditions;
|
|
132
|
+
/**
|
|
133
|
+
* Extract common actions from experiences
|
|
134
|
+
*/
|
|
135
|
+
private extractActions;
|
|
136
|
+
/**
|
|
137
|
+
* Calculate confidence score for a cluster
|
|
138
|
+
*/
|
|
139
|
+
private calculateConfidence;
|
|
140
|
+
/**
|
|
141
|
+
* Generate a human-readable description
|
|
142
|
+
*/
|
|
143
|
+
private generateDescription;
|
|
144
|
+
/**
|
|
145
|
+
* Store patterns in database
|
|
146
|
+
*/
|
|
147
|
+
private storePatterns;
|
|
148
|
+
/**
|
|
149
|
+
* Convert database row to experience
|
|
150
|
+
*/
|
|
151
|
+
private rowToExperience;
|
|
152
|
+
/**
|
|
153
|
+
* Convert database row to pattern
|
|
154
|
+
*/
|
|
155
|
+
private rowToPattern;
|
|
156
|
+
/**
|
|
157
|
+
* Close database connection
|
|
158
|
+
*/
|
|
159
|
+
close(): void;
|
|
160
|
+
}
|
|
161
|
+
export default PatternSynthesis;
|
|
162
|
+
//# sourceMappingURL=PatternSynthesis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PatternSynthesis.d.ts","sourceRoot":"","sources":["../../../src/learning/synthesis/PatternSynthesis.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,479 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* PatternSynthesis - Identifies patterns from captured experiences
|
|
4
|
+
*
|
|
5
|
+
* Synthesizes actionable patterns from captured agent executions using
|
|
6
|
+
* clustering and analysis techniques.
|
|
7
|
+
*
|
|
8
|
+
* Part of the Nightly-Learner Phase 1 implementation.
|
|
9
|
+
*
|
|
10
|
+
* @version 1.0.0
|
|
11
|
+
* @module src/learning/synthesis/PatternSynthesis
|
|
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.PatternSynthesis = 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
|
+
const SecureRandom_1 = require("../../utils/SecureRandom");
|
|
56
|
+
/**
|
|
57
|
+
* PatternSynthesis identifies patterns from agent experiences
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* const synthesis = new PatternSynthesis();
|
|
62
|
+
*
|
|
63
|
+
* const result = await synthesis.synthesize({
|
|
64
|
+
* minSupport: 3,
|
|
65
|
+
* minConfidence: 0.7,
|
|
66
|
+
* maxPatterns: 20,
|
|
67
|
+
* });
|
|
68
|
+
*
|
|
69
|
+
* console.log(`Discovered ${result.patterns.length} patterns`);
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
class PatternSynthesis extends events_1.EventEmitter {
|
|
73
|
+
constructor(config) {
|
|
74
|
+
super();
|
|
75
|
+
this.logger = Logger_1.Logger.getInstance();
|
|
76
|
+
this.config = {
|
|
77
|
+
dbPath: config?.dbPath || path.join(process.cwd(), '.agentic-qe', 'memory.db'),
|
|
78
|
+
debug: config?.debug ?? false,
|
|
79
|
+
};
|
|
80
|
+
this.db = new better_sqlite3_1.default(this.config.dbPath);
|
|
81
|
+
this.initializeSchema();
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Initialize database schema for patterns
|
|
85
|
+
*/
|
|
86
|
+
initializeSchema() {
|
|
87
|
+
this.db.exec(`
|
|
88
|
+
CREATE TABLE IF NOT EXISTS synthesized_patterns (
|
|
89
|
+
id TEXT PRIMARY KEY,
|
|
90
|
+
type TEXT NOT NULL,
|
|
91
|
+
description TEXT NOT NULL,
|
|
92
|
+
conditions TEXT NOT NULL,
|
|
93
|
+
actions TEXT NOT NULL,
|
|
94
|
+
confidence REAL NOT NULL,
|
|
95
|
+
supporting_experiences TEXT NOT NULL,
|
|
96
|
+
effectiveness REAL NOT NULL,
|
|
97
|
+
agent_types TEXT NOT NULL,
|
|
98
|
+
task_types TEXT NOT NULL,
|
|
99
|
+
created_at INTEGER NOT NULL,
|
|
100
|
+
updated_at INTEGER NOT NULL
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
CREATE INDEX IF NOT EXISTS idx_synth_type ON synthesized_patterns(type);
|
|
104
|
+
CREATE INDEX IF NOT EXISTS idx_synth_confidence ON synthesized_patterns(confidence);
|
|
105
|
+
CREATE INDEX IF NOT EXISTS idx_synth_effectiveness ON synthesized_patterns(effectiveness);
|
|
106
|
+
`);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Synthesize patterns from experiences
|
|
110
|
+
*/
|
|
111
|
+
async synthesize(options = {}) {
|
|
112
|
+
const startTime = Date.now();
|
|
113
|
+
const { minSupport = 3, minConfidence = 0.7, maxPatterns = 20 } = options;
|
|
114
|
+
this.logger.info('[PatternSynthesis] Starting synthesis', { options });
|
|
115
|
+
// 1. Retrieve experiences
|
|
116
|
+
const experiences = await this.getExperiences(options);
|
|
117
|
+
this.logger.debug('[PatternSynthesis] Retrieved experiences', { count: experiences.length });
|
|
118
|
+
if (experiences.length < minSupport) {
|
|
119
|
+
this.logger.info('[PatternSynthesis] Insufficient experiences for synthesis', {
|
|
120
|
+
found: experiences.length,
|
|
121
|
+
required: minSupport,
|
|
122
|
+
});
|
|
123
|
+
return {
|
|
124
|
+
patterns: [],
|
|
125
|
+
clustersAnalyzed: 0,
|
|
126
|
+
experiencesProcessed: experiences.length,
|
|
127
|
+
duration: Date.now() - startTime,
|
|
128
|
+
stats: { successStrategies: 0, failureAvoidances: 0, efficiencyOptimizations: 0, averageConfidence: 0 },
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
// 2. Cluster experiences
|
|
132
|
+
const clusters = await this.clusterExperiences(experiences);
|
|
133
|
+
this.logger.debug('[PatternSynthesis] Created clusters', { count: clusters.length });
|
|
134
|
+
// 3. Extract patterns from clusters
|
|
135
|
+
const patterns = [];
|
|
136
|
+
for (const cluster of clusters) {
|
|
137
|
+
if (cluster.size < minSupport)
|
|
138
|
+
continue;
|
|
139
|
+
if (patterns.length >= maxPatterns)
|
|
140
|
+
break;
|
|
141
|
+
const pattern = this.extractPatternFromCluster(cluster);
|
|
142
|
+
if (pattern.confidence >= minConfidence) {
|
|
143
|
+
patterns.push(pattern);
|
|
144
|
+
this.emit('pattern:discovered', pattern);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// 4. Store patterns
|
|
148
|
+
await this.storePatterns(patterns);
|
|
149
|
+
// 5. Calculate stats
|
|
150
|
+
const result = {
|
|
151
|
+
patterns,
|
|
152
|
+
clustersAnalyzed: clusters.length,
|
|
153
|
+
experiencesProcessed: experiences.length,
|
|
154
|
+
duration: Date.now() - startTime,
|
|
155
|
+
stats: {
|
|
156
|
+
successStrategies: patterns.filter(p => p.type === 'success_strategy').length,
|
|
157
|
+
failureAvoidances: patterns.filter(p => p.type === 'failure_avoidance').length,
|
|
158
|
+
efficiencyOptimizations: patterns.filter(p => p.type === 'efficiency_optimization').length,
|
|
159
|
+
averageConfidence: patterns.length > 0
|
|
160
|
+
? patterns.reduce((sum, p) => sum + p.confidence, 0) / patterns.length
|
|
161
|
+
: 0,
|
|
162
|
+
},
|
|
163
|
+
};
|
|
164
|
+
this.logger.info('[PatternSynthesis] Synthesis complete', {
|
|
165
|
+
patterns: result.patterns.length,
|
|
166
|
+
duration: result.duration,
|
|
167
|
+
});
|
|
168
|
+
this.emit('synthesis:complete', result);
|
|
169
|
+
return result;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Get stored patterns
|
|
173
|
+
*/
|
|
174
|
+
getPatterns(options = {}) {
|
|
175
|
+
let query = 'SELECT * FROM synthesized_patterns WHERE 1=1';
|
|
176
|
+
const params = [];
|
|
177
|
+
if (options.type) {
|
|
178
|
+
query += ' AND type = ?';
|
|
179
|
+
params.push(options.type);
|
|
180
|
+
}
|
|
181
|
+
if (options.minConfidence) {
|
|
182
|
+
query += ' AND confidence >= ?';
|
|
183
|
+
params.push(options.minConfidence);
|
|
184
|
+
}
|
|
185
|
+
if (options.agentType) {
|
|
186
|
+
query += ' AND agent_types LIKE ?';
|
|
187
|
+
params.push(`%${options.agentType}%`);
|
|
188
|
+
}
|
|
189
|
+
query += ' ORDER BY effectiveness DESC, confidence DESC';
|
|
190
|
+
if (options.limit) {
|
|
191
|
+
query += ' LIMIT ?';
|
|
192
|
+
params.push(options.limit);
|
|
193
|
+
}
|
|
194
|
+
const rows = this.db.prepare(query).all(...params);
|
|
195
|
+
return rows.map(row => this.rowToPattern(row));
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Get pattern by ID
|
|
199
|
+
*/
|
|
200
|
+
getPattern(id) {
|
|
201
|
+
const row = this.db.prepare('SELECT * FROM synthesized_patterns WHERE id = ?').get(id);
|
|
202
|
+
return row ? this.rowToPattern(row) : null;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Update pattern effectiveness based on new evidence
|
|
206
|
+
*/
|
|
207
|
+
updateEffectiveness(patternId, success) {
|
|
208
|
+
const pattern = this.getPattern(patternId);
|
|
209
|
+
if (!pattern)
|
|
210
|
+
return;
|
|
211
|
+
// Exponential moving average
|
|
212
|
+
const alpha = 0.1;
|
|
213
|
+
const newEffectiveness = pattern.effectiveness * (1 - alpha) + (success ? 1 : 0) * alpha;
|
|
214
|
+
this.db.prepare(`
|
|
215
|
+
UPDATE synthesized_patterns
|
|
216
|
+
SET effectiveness = ?, updated_at = ?
|
|
217
|
+
WHERE id = ?
|
|
218
|
+
`).run(newEffectiveness, Date.now(), patternId);
|
|
219
|
+
this.logger.debug('[PatternSynthesis] Updated pattern effectiveness', {
|
|
220
|
+
patternId,
|
|
221
|
+
oldEffectiveness: pattern.effectiveness,
|
|
222
|
+
newEffectiveness,
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Get experiences for synthesis
|
|
227
|
+
*/
|
|
228
|
+
async getExperiences(options) {
|
|
229
|
+
let query = `
|
|
230
|
+
SELECT * FROM captured_experiences
|
|
231
|
+
WHERE processed = 0
|
|
232
|
+
`;
|
|
233
|
+
const params = [];
|
|
234
|
+
if (options.experienceIds && options.experienceIds.length > 0) {
|
|
235
|
+
const placeholders = options.experienceIds.map(() => '?').join(',');
|
|
236
|
+
query = `SELECT * FROM captured_experiences WHERE id IN (${placeholders})`;
|
|
237
|
+
params.push(...options.experienceIds);
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
if (options.agentTypes && options.agentTypes.length > 0) {
|
|
241
|
+
const placeholders = options.agentTypes.map(() => '?').join(',');
|
|
242
|
+
query += ` AND agent_type IN (${placeholders})`;
|
|
243
|
+
params.push(...options.agentTypes);
|
|
244
|
+
}
|
|
245
|
+
if (options.taskTypes && options.taskTypes.length > 0) {
|
|
246
|
+
const placeholders = options.taskTypes.map(() => '?').join(',');
|
|
247
|
+
query += ` AND task_type IN (${placeholders})`;
|
|
248
|
+
params.push(...options.taskTypes);
|
|
249
|
+
}
|
|
250
|
+
query += ' ORDER BY created_at DESC LIMIT 1000';
|
|
251
|
+
}
|
|
252
|
+
try {
|
|
253
|
+
const rows = this.db.prepare(query).all(...params);
|
|
254
|
+
return rows.map(row => this.rowToExperience(row));
|
|
255
|
+
}
|
|
256
|
+
catch (error) {
|
|
257
|
+
this.logger.warn('[PatternSynthesis] Error fetching experiences, returning empty', { error });
|
|
258
|
+
return [];
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Cluster experiences by similarity
|
|
263
|
+
*/
|
|
264
|
+
async clusterExperiences(experiences) {
|
|
265
|
+
// Group by agent type and task type for simple clustering
|
|
266
|
+
const clusterMap = new Map();
|
|
267
|
+
for (const exp of experiences) {
|
|
268
|
+
// Cluster key: agentType + success/failure
|
|
269
|
+
const key = `${exp.agentType}:${exp.execution.success ? 'success' : 'failure'}`;
|
|
270
|
+
const existing = clusterMap.get(key) || [];
|
|
271
|
+
existing.push(exp);
|
|
272
|
+
clusterMap.set(key, existing);
|
|
273
|
+
}
|
|
274
|
+
// Convert to cluster objects
|
|
275
|
+
const clusters = [];
|
|
276
|
+
let clusterId = 0;
|
|
277
|
+
for (const [key, exps] of clusterMap) {
|
|
278
|
+
const qualities = exps.map(e => e.outcome.quality_score);
|
|
279
|
+
const agentTypes = [...new Set(exps.map(e => e.agentType))];
|
|
280
|
+
const taskTypes = [...new Set(exps.map(e => e.taskType))];
|
|
281
|
+
clusters.push({
|
|
282
|
+
id: `cluster-${clusterId++}`,
|
|
283
|
+
experiences: exps,
|
|
284
|
+
size: exps.length,
|
|
285
|
+
averageQuality: qualities.reduce((a, b) => a + b, 0) / qualities.length,
|
|
286
|
+
commonAgentTypes: agentTypes,
|
|
287
|
+
commonTaskTypes: taskTypes,
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
// Sort by size descending
|
|
291
|
+
clusters.sort((a, b) => b.size - a.size);
|
|
292
|
+
return clusters;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Extract a pattern from a cluster
|
|
296
|
+
*/
|
|
297
|
+
extractPatternFromCluster(cluster) {
|
|
298
|
+
const now = new Date();
|
|
299
|
+
// Determine pattern type based on cluster characteristics
|
|
300
|
+
let type;
|
|
301
|
+
if (cluster.averageQuality > 0.7) {
|
|
302
|
+
type = 'success_strategy';
|
|
303
|
+
}
|
|
304
|
+
else if (cluster.averageQuality < 0.3) {
|
|
305
|
+
type = 'failure_avoidance';
|
|
306
|
+
}
|
|
307
|
+
else {
|
|
308
|
+
type = 'efficiency_optimization';
|
|
309
|
+
}
|
|
310
|
+
// Extract common conditions
|
|
311
|
+
const conditions = this.extractConditions(cluster.experiences);
|
|
312
|
+
// Extract common actions
|
|
313
|
+
const actions = this.extractActions(cluster.experiences);
|
|
314
|
+
// Calculate confidence based on cluster consistency
|
|
315
|
+
const confidence = this.calculateConfidence(cluster);
|
|
316
|
+
// Calculate effectiveness
|
|
317
|
+
const effectiveness = cluster.averageQuality;
|
|
318
|
+
return {
|
|
319
|
+
id: `pattern-${Date.now()}-${SecureRandom_1.SecureRandom.randomString(6, 'alphanumeric')}`,
|
|
320
|
+
type,
|
|
321
|
+
description: this.generateDescription(type, cluster),
|
|
322
|
+
conditions,
|
|
323
|
+
actions,
|
|
324
|
+
confidence,
|
|
325
|
+
supportingExperiences: cluster.experiences.map(e => e.id),
|
|
326
|
+
effectiveness,
|
|
327
|
+
agentTypes: cluster.commonAgentTypes,
|
|
328
|
+
taskTypes: cluster.commonTaskTypes,
|
|
329
|
+
createdAt: now,
|
|
330
|
+
updatedAt: now,
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Extract common conditions from experiences
|
|
335
|
+
*/
|
|
336
|
+
extractConditions(experiences) {
|
|
337
|
+
const conditions = [];
|
|
338
|
+
// Common agent type
|
|
339
|
+
const agentTypes = [...new Set(experiences.map(e => e.agentType))];
|
|
340
|
+
if (agentTypes.length === 1) {
|
|
341
|
+
conditions.push(`agent_type == '${agentTypes[0]}'`);
|
|
342
|
+
}
|
|
343
|
+
// Common task type
|
|
344
|
+
const taskTypes = [...new Set(experiences.map(e => e.taskType))];
|
|
345
|
+
if (taskTypes.length === 1) {
|
|
346
|
+
conditions.push(`task_type == '${taskTypes[0]}'`);
|
|
347
|
+
}
|
|
348
|
+
// Extract common context patterns
|
|
349
|
+
for (const exp of experiences) {
|
|
350
|
+
if (exp.context.patterns_used.length > 0) {
|
|
351
|
+
conditions.push(`patterns_available`);
|
|
352
|
+
break;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
return [...new Set(conditions)];
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Extract common actions from experiences
|
|
359
|
+
*/
|
|
360
|
+
extractActions(experiences) {
|
|
361
|
+
const actions = [];
|
|
362
|
+
// Collect all decisions made
|
|
363
|
+
const allDecisions = experiences.flatMap(e => e.context.decisions_made);
|
|
364
|
+
const decisionCounts = new Map();
|
|
365
|
+
for (const decision of allDecisions) {
|
|
366
|
+
decisionCounts.set(decision, (decisionCounts.get(decision) || 0) + 1);
|
|
367
|
+
}
|
|
368
|
+
// Add frequent decisions as actions
|
|
369
|
+
for (const [decision, count] of decisionCounts) {
|
|
370
|
+
if (count >= experiences.length * 0.5) { // Present in at least 50% of experiences
|
|
371
|
+
actions.push(decision);
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
// Add generic actions based on outcomes
|
|
375
|
+
const successRate = experiences.filter(e => e.execution.success).length / experiences.length;
|
|
376
|
+
if (successRate > 0.8) {
|
|
377
|
+
actions.push('replicate_approach');
|
|
378
|
+
}
|
|
379
|
+
else if (successRate < 0.3) {
|
|
380
|
+
actions.push('avoid_approach');
|
|
381
|
+
}
|
|
382
|
+
return actions;
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Calculate confidence score for a cluster
|
|
386
|
+
*/
|
|
387
|
+
calculateConfidence(cluster) {
|
|
388
|
+
// Base confidence from cluster size
|
|
389
|
+
let confidence = Math.min(1, cluster.size / 10); // Max out at 10 experiences
|
|
390
|
+
// Bonus for consistent outcomes
|
|
391
|
+
const outcomes = cluster.experiences.map(e => e.execution.success);
|
|
392
|
+
const successRate = outcomes.filter(Boolean).length / outcomes.length;
|
|
393
|
+
const consistency = Math.abs(successRate - 0.5) * 2; // 0 = mixed, 1 = consistent
|
|
394
|
+
confidence = confidence * 0.6 + consistency * 0.4;
|
|
395
|
+
// Bonus for consistent agent types
|
|
396
|
+
if (cluster.commonAgentTypes.length === 1) {
|
|
397
|
+
confidence += 0.1;
|
|
398
|
+
}
|
|
399
|
+
return Math.min(1, confidence);
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Generate a human-readable description
|
|
403
|
+
*/
|
|
404
|
+
generateDescription(type, cluster) {
|
|
405
|
+
const agentTypes = cluster.commonAgentTypes.join(', ');
|
|
406
|
+
const taskTypes = cluster.commonTaskTypes.join(', ');
|
|
407
|
+
switch (type) {
|
|
408
|
+
case 'success_strategy':
|
|
409
|
+
return `Successful approach for ${agentTypes} when performing ${taskTypes}`;
|
|
410
|
+
case 'failure_avoidance':
|
|
411
|
+
return `Failure pattern to avoid for ${agentTypes} during ${taskTypes}`;
|
|
412
|
+
case 'efficiency_optimization':
|
|
413
|
+
return `Optimization opportunity for ${agentTypes} in ${taskTypes}`;
|
|
414
|
+
default:
|
|
415
|
+
return `Pattern for ${agentTypes}`;
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Store patterns in database
|
|
420
|
+
*/
|
|
421
|
+
async storePatterns(patterns) {
|
|
422
|
+
const stmt = this.db.prepare(`
|
|
423
|
+
INSERT OR REPLACE INTO synthesized_patterns
|
|
424
|
+
(id, type, description, conditions, actions, confidence, supporting_experiences,
|
|
425
|
+
effectiveness, agent_types, task_types, created_at, updated_at)
|
|
426
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
427
|
+
`);
|
|
428
|
+
const insertMany = this.db.transaction((pats) => {
|
|
429
|
+
for (const p of pats) {
|
|
430
|
+
stmt.run(p.id, p.type, p.description, JSON.stringify(p.conditions), JSON.stringify(p.actions), p.confidence, JSON.stringify(p.supportingExperiences), p.effectiveness, JSON.stringify(p.agentTypes), JSON.stringify(p.taskTypes), p.createdAt.getTime(), p.updatedAt.getTime());
|
|
431
|
+
}
|
|
432
|
+
});
|
|
433
|
+
insertMany(patterns);
|
|
434
|
+
this.logger.info('[PatternSynthesis] Stored patterns', { count: patterns.length });
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* Convert database row to experience
|
|
438
|
+
*/
|
|
439
|
+
rowToExperience(row) {
|
|
440
|
+
return {
|
|
441
|
+
id: row.id,
|
|
442
|
+
agentId: row.agent_id,
|
|
443
|
+
agentType: row.agent_type,
|
|
444
|
+
taskType: row.task_type,
|
|
445
|
+
execution: JSON.parse(row.execution),
|
|
446
|
+
context: JSON.parse(row.context),
|
|
447
|
+
outcome: JSON.parse(row.outcome),
|
|
448
|
+
timestamp: new Date(row.created_at),
|
|
449
|
+
};
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* Convert database row to pattern
|
|
453
|
+
*/
|
|
454
|
+
rowToPattern(row) {
|
|
455
|
+
return {
|
|
456
|
+
id: row.id,
|
|
457
|
+
type: row.type,
|
|
458
|
+
description: row.description,
|
|
459
|
+
conditions: JSON.parse(row.conditions),
|
|
460
|
+
actions: JSON.parse(row.actions),
|
|
461
|
+
confidence: row.confidence,
|
|
462
|
+
supportingExperiences: JSON.parse(row.supporting_experiences),
|
|
463
|
+
effectiveness: row.effectiveness,
|
|
464
|
+
agentTypes: JSON.parse(row.agent_types),
|
|
465
|
+
taskTypes: JSON.parse(row.task_types),
|
|
466
|
+
createdAt: new Date(row.created_at),
|
|
467
|
+
updatedAt: new Date(row.updated_at),
|
|
468
|
+
};
|
|
469
|
+
}
|
|
470
|
+
/**
|
|
471
|
+
* Close database connection
|
|
472
|
+
*/
|
|
473
|
+
close() {
|
|
474
|
+
this.db.close();
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
exports.PatternSynthesis = PatternSynthesis;
|
|
478
|
+
exports.default = PatternSynthesis;
|
|
479
|
+
//# sourceMappingURL=PatternSynthesis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PatternSynthesis.js","sourceRoot":"","sources":["../../../src/learning/synthesis/PatternSynthesis.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern Synthesis Module
|
|
3
|
+
*
|
|
4
|
+
* Provides pattern synthesis infrastructure for the Nightly-Learner system:
|
|
5
|
+
* - PatternSynthesis: Discover patterns from agent experiences
|
|
6
|
+
*
|
|
7
|
+
* @module src/learning/synthesis
|
|
8
|
+
*/
|
|
9
|
+
export { PatternSynthesis, PatternSynthesisConfig, PatternType, SynthesizedPattern, Cluster, SynthesisOptions, SynthesisResult, } from './PatternSynthesis';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|