strray-ai 1.7.2 → 1.7.3
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/.opencode/hooks/post-commit +152 -55
- package/.opencode/hooks/post-commit.backup +110 -174
- package/.opencode/hooks/post-push +47 -64
- package/.opencode/hooks/post-push.backup +34 -38
- package/.opencode/strray/features.json +3 -3
- package/.opencode/strray/routing-mappings.json +90 -34
- package/AGENTS.md +7 -2
- package/dist/analytics/anonymization-engine.d.ts +108 -0
- package/dist/analytics/anonymization-engine.d.ts.map +1 -0
- package/dist/analytics/anonymization-engine.js +352 -0
- package/dist/analytics/anonymization-engine.js.map +1 -0
- package/dist/analytics/consent-manager.d.ts +94 -0
- package/dist/analytics/consent-manager.d.ts.map +1 -0
- package/dist/analytics/consent-manager.js +257 -0
- package/dist/analytics/consent-manager.js.map +1 -0
- package/dist/analytics/emerging-pattern-detector.d.ts +68 -0
- package/dist/analytics/emerging-pattern-detector.d.ts.map +1 -0
- package/dist/analytics/emerging-pattern-detector.js +250 -0
- package/dist/analytics/emerging-pattern-detector.js.map +1 -0
- package/dist/analytics/pattern-learning-engine.d.ts +81 -0
- package/dist/analytics/pattern-learning-engine.d.ts.map +1 -0
- package/dist/analytics/pattern-learning-engine.js +262 -0
- package/dist/analytics/pattern-learning-engine.js.map +1 -0
- package/dist/analytics/pattern-performance-tracker.d.ts +89 -0
- package/dist/analytics/pattern-performance-tracker.d.ts.map +1 -0
- package/dist/analytics/pattern-performance-tracker.js +289 -0
- package/dist/analytics/pattern-performance-tracker.js.map +1 -0
- package/dist/analytics/prompt-pattern-analyzer.d.ts +100 -0
- package/dist/analytics/prompt-pattern-analyzer.d.ts.map +1 -0
- package/dist/analytics/prompt-pattern-analyzer.js +372 -0
- package/dist/analytics/prompt-pattern-analyzer.js.map +1 -0
- package/dist/analytics/routing-performance-analyzer.d.ts +102 -0
- package/dist/analytics/routing-performance-analyzer.d.ts.map +1 -0
- package/dist/analytics/routing-performance-analyzer.js +342 -0
- package/dist/analytics/routing-performance-analyzer.js.map +1 -0
- package/dist/analytics/routing-refiner.d.ts +105 -0
- package/dist/analytics/routing-refiner.d.ts.map +1 -0
- package/dist/analytics/routing-refiner.js +381 -0
- package/dist/analytics/routing-refiner.js.map +1 -0
- package/dist/cli/commands/analytics-disable.d.ts +10 -0
- package/dist/cli/commands/analytics-disable.d.ts.map +1 -0
- package/dist/cli/commands/analytics-disable.js +73 -0
- package/dist/cli/commands/analytics-disable.js.map +1 -0
- package/dist/cli/commands/analytics-enable-action.d.ts +9 -0
- package/dist/cli/commands/analytics-enable-action.d.ts.map +1 -0
- package/dist/cli/commands/analytics-enable-action.js +83 -0
- package/dist/cli/commands/analytics-enable-action.js.map +1 -0
- package/dist/cli/commands/analytics-preview.d.ts +10 -0
- package/dist/cli/commands/analytics-preview.d.ts.map +1 -0
- package/dist/cli/commands/analytics-preview.js +107 -0
- package/dist/cli/commands/analytics-preview.js.map +1 -0
- package/dist/cli/commands/analytics-status.d.ts +10 -0
- package/dist/cli/commands/analytics-status.d.ts.map +1 -0
- package/dist/cli/commands/analytics-status.js +68 -0
- package/dist/cli/commands/analytics-status.js.map +1 -0
- package/dist/cli/index.js +6 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/core/adaptive-kernel.d.ts +110 -0
- package/dist/core/adaptive-kernel.d.ts.map +1 -0
- package/dist/core/adaptive-kernel.js +193 -0
- package/dist/core/adaptive-kernel.js.map +1 -0
- package/dist/core/kernel-patterns.d.ts +105 -0
- package/dist/core/kernel-patterns.d.ts.map +1 -0
- package/dist/core/kernel-patterns.js +328 -0
- package/dist/core/kernel-patterns.js.map +1 -0
- package/dist/core/orchestrator.d.ts +1 -0
- package/dist/core/orchestrator.d.ts.map +1 -1
- package/dist/core/orchestrator.js +40 -11
- package/dist/core/orchestrator.js.map +1 -1
- package/dist/delegation/agent-delegator.d.ts +1 -0
- package/dist/delegation/agent-delegator.d.ts.map +1 -1
- package/dist/delegation/agent-delegator.js +24 -2
- package/dist/delegation/agent-delegator.js.map +1 -1
- package/dist/delegation/task-skill-router.d.ts +269 -5
- package/dist/delegation/task-skill-router.d.ts.map +1 -1
- package/dist/delegation/task-skill-router.js +810 -23
- package/dist/delegation/task-skill-router.js.map +1 -1
- package/dist/postprocessor/PostProcessor.d.ts +10 -0
- package/dist/postprocessor/PostProcessor.d.ts.map +1 -1
- package/dist/postprocessor/PostProcessor.js +87 -17
- package/dist/postprocessor/PostProcessor.js.map +1 -1
- package/dist/processors/agents-md-validation-processor.d.ts +1 -0
- package/dist/processors/agents-md-validation-processor.d.ts.map +1 -1
- package/dist/processors/agents-md-validation-processor.js +34 -12
- package/dist/processors/agents-md-validation-processor.js.map +1 -1
- package/dist/processors/processor-manager.d.ts +7 -0
- package/dist/processors/processor-manager.d.ts.map +1 -1
- package/dist/processors/processor-manager.js +93 -0
- package/dist/processors/processor-manager.js.map +1 -1
- package/dist/processors/test-auto-creation-processor.d.ts.map +1 -1
- package/dist/processors/test-auto-creation-processor.js +52 -38
- package/dist/processors/test-auto-creation-processor.js.map +1 -1
- package/dist/scripts/analytics/daily-routing-analysis.d.ts +18 -0
- package/dist/scripts/analytics/daily-routing-analysis.d.ts.map +1 -0
- package/dist/scripts/analytics/daily-routing-analysis.js +268 -0
- package/dist/scripts/analytics/daily-routing-analysis.js.map +1 -0
- package/dist/scripts/analytics/index.d.ts +15 -0
- package/dist/scripts/analytics/index.d.ts.map +1 -0
- package/dist/scripts/analytics/index.js +17 -0
- package/dist/scripts/analytics/index.js.map +1 -0
- package/dist/scripts/test-p9.d.ts +15 -0
- package/dist/scripts/test-p9.d.ts.map +1 -0
- package/dist/scripts/test-p9.js +220 -0
- package/dist/scripts/test-p9.js.map +1 -0
- package/package.json +6 -2
- package/scripts/node/kernel-e2e-test.mjs +168 -0
- package/scripts/node/kernel-framework-test.mjs +127 -0
- package/scripts/node/kernel-live-test.mjs +147 -0
- package/scripts/node/kernel-real-framework-test.mjs +103 -0
- package/scripts/node/kernel-update.cjs +379 -0
- package/scripts/node/reflection-check.sh +245 -27
- package/scripts/node/test-simple-names-comprehensive.mjs +221 -0
- package/scripts/node/test-simple-names.mjs +39 -0
- package/dist/agents/documentation-writer.d.ts +0 -9
- package/dist/agents/documentation-writer.d.ts.map +0 -1
- package/dist/agents/documentation-writer.js +0 -85
- package/dist/agents/documentation-writer.js.map +0 -1
- package/dist/agents/explore.d.ts +0 -8
- package/dist/agents/explore.d.ts.map +0 -1
- package/dist/agents/explore.js +0 -55
- package/dist/agents/explore.js.map +0 -1
- package/dist/agents/librarian.d.ts +0 -3
- package/dist/agents/librarian.d.ts.map +0 -1
- package/dist/agents/librarian.js +0 -84
- package/dist/agents/librarian.js.map +0 -1
- package/dist/agents/marketing-expert.d.ts +0 -9
- package/dist/agents/marketing-expert.d.ts.map +0 -1
- package/dist/agents/marketing-expert.js +0 -112
- package/dist/agents/marketing-expert.js.map +0 -1
- package/dist/agents/oracle.d.ts +0 -8
- package/dist/agents/oracle.d.ts.map +0 -1
- package/dist/agents/oracle.js +0 -51
- package/dist/agents/oracle.js.map +0 -1
- package/dist/agents/seo-copywriter.d.ts +0 -10
- package/dist/agents/seo-copywriter.d.ts.map +0 -1
- package/dist/agents/seo-copywriter.js +0 -73
- package/dist/agents/seo-copywriter.js.map +0 -1
- package/dist/agents/seo-specialist.d.ts +0 -9
- package/dist/agents/seo-specialist.d.ts.map +0 -1
- package/dist/agents/seo-specialist.js +0 -54
- package/dist/agents/seo-specialist.js.map +0 -1
- package/dist/agents/test-architect.d.ts +0 -3
- package/dist/agents/test-architect.d.ts.map +0 -1
- package/dist/agents/test-architect.js +0 -96
- package/dist/agents/test-architect.js.map +0 -1
- package/dist/mcps/enhanced-orchestrator.server.d.ts +0 -14
- package/dist/mcps/enhanced-orchestrator.server.d.ts.map +0 -1
- package/dist/mcps/enhanced-orchestrator.server.js +0 -266
- package/dist/mcps/enhanced-orchestrator.server.js.map +0 -1
- package/dist/mcps/knowledge-skills/analyzer.server.d.ts +0 -7
- package/dist/mcps/knowledge-skills/analyzer.server.d.ts.map +0 -1
- package/dist/mcps/knowledge-skills/analyzer.server.js +0 -282
- package/dist/mcps/knowledge-skills/analyzer.server.js.map +0 -1
- package/dist/mcps/knowledge-skills/documentation-generation.server.d.ts +0 -48
- package/dist/mcps/knowledge-skills/documentation-generation.server.d.ts.map +0 -1
- package/dist/mcps/knowledge-skills/documentation-generation.server.js +0 -1238
- package/dist/mcps/knowledge-skills/documentation-generation.server.js.map +0 -1
- package/dist/mcps/knowledge-skills/explore.server.d.ts +0 -21
- package/dist/mcps/knowledge-skills/explore.server.d.ts.map +0 -1
- package/dist/mcps/knowledge-skills/explore.server.js +0 -582
- package/dist/mcps/knowledge-skills/explore.server.js.map +0 -1
- package/dist/mcps/knowledge-skills/marketing-expert.server.d.ts +0 -8
- package/dist/mcps/knowledge-skills/marketing-expert.server.d.ts.map +0 -1
- package/dist/mcps/knowledge-skills/marketing-expert.server.js +0 -356
- package/dist/mcps/knowledge-skills/marketing-expert.server.js.map +0 -1
- package/dist/mcps/knowledge-skills/oracle.server.d.ts +0 -25
- package/dist/mcps/knowledge-skills/oracle.server.d.ts.map +0 -1
- package/dist/mcps/knowledge-skills/oracle.server.js +0 -569
- package/dist/mcps/knowledge-skills/oracle.server.js.map +0 -1
- package/dist/mcps/knowledge-skills/seo-copywriter.server.d.ts +0 -8
- package/dist/mcps/knowledge-skills/seo-copywriter.server.d.ts.map +0 -1
- package/dist/mcps/knowledge-skills/seo-copywriter.server.js +0 -251
- package/dist/mcps/knowledge-skills/seo-copywriter.server.js.map +0 -1
- package/dist/mcps/knowledge-skills/seo-specialist.server.d.ts +0 -8
- package/dist/mcps/knowledge-skills/seo-specialist.server.d.ts.map +0 -1
- package/dist/mcps/knowledge-skills/seo-specialist.server.js +0 -211
- package/dist/mcps/knowledge-skills/seo-specialist.server.js.map +0 -1
- package/dist/mcps/librarian.server.d.ts +0 -17
- package/dist/mcps/librarian.server.d.ts.map +0 -1
- package/dist/mcps/librarian.server.js +0 -382
- package/dist/mcps/librarian.server.js.map +0 -1
- package/dist/optimization/performance-optimizer.d.ts +0 -179
- package/dist/optimization/performance-optimizer.d.ts.map +0 -1
- package/dist/optimization/performance-optimizer.js +0 -556
- package/dist/optimization/performance-optimizer.js.map +0 -1
- package/dist/utils/memory-pool.d.ts +0 -90
- package/dist/utils/memory-pool.d.ts.map +0 -1
- package/dist/utils/memory-pool.js +0 -245
- package/dist/utils/memory-pool.js.map +0 -1
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern Learning Engine for P9 - ADAPTIVE_PATTERN_LEARNING
|
|
3
|
+
*
|
|
4
|
+
* Learns from performance data, generates adaptive modifications,
|
|
5
|
+
* and creates self-improving pattern definitions.
|
|
6
|
+
*
|
|
7
|
+
* @version 1.0.0
|
|
8
|
+
* @since 2026-03-05
|
|
9
|
+
*/
|
|
10
|
+
import type { PatternUpdate } from "../core/kernel-patterns.js";
|
|
11
|
+
export interface LearningResult {
|
|
12
|
+
newPatterns: PatternUpdate[];
|
|
13
|
+
modifiedPatterns: PatternUpdate[];
|
|
14
|
+
removedPatterns: PatternUpdate[];
|
|
15
|
+
thresholdUpdates: PatternUpdate[];
|
|
16
|
+
recommendations: string[];
|
|
17
|
+
}
|
|
18
|
+
export interface AdaptiveLearningConfig {
|
|
19
|
+
enableAutoAddition: boolean;
|
|
20
|
+
enableAutoRemoval: boolean;
|
|
21
|
+
enableThresholdCalibration: boolean;
|
|
22
|
+
minConfidenceForAddition: number;
|
|
23
|
+
minSuccessRateForAddition: number;
|
|
24
|
+
maxPatterns: number;
|
|
25
|
+
}
|
|
26
|
+
export declare class PatternLearningEngine {
|
|
27
|
+
private config;
|
|
28
|
+
private learningHistory;
|
|
29
|
+
private readonly maxHistory;
|
|
30
|
+
constructor(config?: Partial<AdaptiveLearningConfig>);
|
|
31
|
+
/**
|
|
32
|
+
* Main learning function - analyzes data and generates adaptive modifications
|
|
33
|
+
*/
|
|
34
|
+
learnFromData(outcomes: Array<{
|
|
35
|
+
taskId: string;
|
|
36
|
+
taskDescription: string;
|
|
37
|
+
routedAgent: string;
|
|
38
|
+
routedSkill: string;
|
|
39
|
+
confidence: number;
|
|
40
|
+
success: boolean;
|
|
41
|
+
}>, existingMappings: Array<{
|
|
42
|
+
keywords: string[];
|
|
43
|
+
skill: string;
|
|
44
|
+
agent: string;
|
|
45
|
+
confidence: number;
|
|
46
|
+
}>): LearningResult;
|
|
47
|
+
/**
|
|
48
|
+
* Generate pattern modifications based on performance
|
|
49
|
+
*/
|
|
50
|
+
private generatePatternModifications;
|
|
51
|
+
/**
|
|
52
|
+
* Generate patterns for removal based on poor performance
|
|
53
|
+
*/
|
|
54
|
+
private generatePatternRemovals;
|
|
55
|
+
/**
|
|
56
|
+
* Generate adaptive threshold updates
|
|
57
|
+
*/
|
|
58
|
+
private generateThresholdUpdates;
|
|
59
|
+
/**
|
|
60
|
+
* Generate new pattern suggestions from emergent patterns
|
|
61
|
+
*/
|
|
62
|
+
private generateNewPatterns;
|
|
63
|
+
/**
|
|
64
|
+
* Generate recommendations based on learning results
|
|
65
|
+
*/
|
|
66
|
+
private generateRecommendations;
|
|
67
|
+
/**
|
|
68
|
+
* Get learning history
|
|
69
|
+
*/
|
|
70
|
+
getLearningHistory(): LearningResult[];
|
|
71
|
+
/**
|
|
72
|
+
* Update configuration
|
|
73
|
+
*/
|
|
74
|
+
updateConfig(newConfig: Partial<AdaptiveLearningConfig>): void;
|
|
75
|
+
/**
|
|
76
|
+
* Get current configuration
|
|
77
|
+
*/
|
|
78
|
+
getConfig(): AdaptiveLearningConfig;
|
|
79
|
+
}
|
|
80
|
+
export declare const patternLearningEngine: PatternLearningEngine;
|
|
81
|
+
//# sourceMappingURL=pattern-learning-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern-learning-engine.d.ts","sourceRoot":"","sources":["../../src/analytics/pattern-learning-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAuC,MAAM,4BAA4B,CAAC;AAIrG,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,gBAAgB,EAAE,aAAa,EAAE,CAAC;IAClC,eAAe,EAAE,aAAa,EAAE,CAAC;IACjC,gBAAgB,EAAE,aAAa,EAAE,CAAC;IAClC,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,0BAA0B,EAAE,OAAO,CAAC;IACpC,wBAAwB,EAAE,MAAM,CAAC;IACjC,yBAAyB,EAAE,MAAM,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAO;gBAEtB,MAAM,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC;IAWpD;;OAEG;IACH,aAAa,CACX,QAAQ,EAAE,KAAK,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,EACF,gBAAgB,EAAE,KAAK,CAAC;QACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,GACD,cAAc;IAsGjB;;OAEG;IACH,OAAO,CAAC,4BAA4B;IA6BpC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA6B/B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA4BhC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqC3B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA0B/B;;OAEG;IACH,kBAAkB,IAAI,cAAc,EAAE;IAItC;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI;IAe9D;;OAEG;IACH,SAAS,IAAI,sBAAsB;CAGpC;AAGD,eAAO,MAAM,qBAAqB,uBAA8B,CAAC"}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern Learning Engine for P9 - ADAPTIVE_PATTERN_LEARNING
|
|
3
|
+
*
|
|
4
|
+
* Learns from performance data, generates adaptive modifications,
|
|
5
|
+
* and creates self-improving pattern definitions.
|
|
6
|
+
*
|
|
7
|
+
* @version 1.0.0
|
|
8
|
+
* @since 2026-03-05
|
|
9
|
+
*/
|
|
10
|
+
import { frameworkLogger } from "../core/framework-logger.js";
|
|
11
|
+
import { patternPerformanceTracker } from "./pattern-performance-tracker.js";
|
|
12
|
+
import { emergingPatternDetector } from "./emerging-pattern-detector.js";
|
|
13
|
+
export class PatternLearningEngine {
|
|
14
|
+
config;
|
|
15
|
+
learningHistory = [];
|
|
16
|
+
maxHistory = 100;
|
|
17
|
+
constructor(config) {
|
|
18
|
+
this.config = {
|
|
19
|
+
enableAutoAddition: config?.enableAutoAddition ?? true,
|
|
20
|
+
enableAutoRemoval: config?.enableAutoRemoval ?? true,
|
|
21
|
+
enableThresholdCalibration: config?.enableThresholdCalibration ?? true,
|
|
22
|
+
minConfidenceForAddition: config?.minConfidenceForAddition ?? 0.8,
|
|
23
|
+
minSuccessRateForAddition: config?.minSuccessRateForAddition ?? 0.85,
|
|
24
|
+
maxPatterns: config?.maxPatterns ?? 500
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Main learning function - analyzes data and generates adaptive modifications
|
|
29
|
+
*/
|
|
30
|
+
learnFromData(outcomes, existingMappings) {
|
|
31
|
+
const result = {
|
|
32
|
+
newPatterns: [],
|
|
33
|
+
modifiedPatterns: [],
|
|
34
|
+
removedPatterns: [],
|
|
35
|
+
thresholdUpdates: [],
|
|
36
|
+
recommendations: []
|
|
37
|
+
};
|
|
38
|
+
// Track performance for each agent:skill combination
|
|
39
|
+
const agentSkillMetrics = new Map();
|
|
40
|
+
for (const outcome of outcomes) {
|
|
41
|
+
const patternId = `${outcome.routedAgent}:${outcome.routedSkill}`;
|
|
42
|
+
// Track in performance tracker
|
|
43
|
+
patternPerformanceTracker.trackPatternPerformance(patternId, {
|
|
44
|
+
success: outcome.success,
|
|
45
|
+
confidence: outcome.confidence
|
|
46
|
+
});
|
|
47
|
+
// Track in local metrics
|
|
48
|
+
if (!agentSkillMetrics.has(patternId)) {
|
|
49
|
+
agentSkillMetrics.set(patternId, {
|
|
50
|
+
patternId,
|
|
51
|
+
totalUsages: 0,
|
|
52
|
+
successfulUsages: 0,
|
|
53
|
+
failedUsages: 0,
|
|
54
|
+
successRate: 0,
|
|
55
|
+
avgConfidence: 0,
|
|
56
|
+
avgResponseTime: 0,
|
|
57
|
+
lastUpdated: new Date(),
|
|
58
|
+
timeSeries: []
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
const metrics = agentSkillMetrics.get(patternId);
|
|
62
|
+
metrics.totalUsages++;
|
|
63
|
+
if (outcome.success) {
|
|
64
|
+
metrics.successfulUsages++;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
metrics.failedUsages++;
|
|
68
|
+
}
|
|
69
|
+
metrics.successRate = metrics.successfulUsages / metrics.totalUsages;
|
|
70
|
+
metrics.avgConfidence = (metrics.avgConfidence * 0.9) + (outcome.confidence * 0.1);
|
|
71
|
+
metrics.lastUpdated = new Date();
|
|
72
|
+
}
|
|
73
|
+
// Generate pattern modifications
|
|
74
|
+
result.modifiedPatterns = this.generatePatternModifications(agentSkillMetrics);
|
|
75
|
+
result.removedPatterns = this.generatePatternRemovals(agentSkillMetrics, existingMappings);
|
|
76
|
+
// Generate threshold updates
|
|
77
|
+
if (this.config.enableThresholdCalibration) {
|
|
78
|
+
result.thresholdUpdates = this.generateThresholdUpdates(agentSkillMetrics);
|
|
79
|
+
}
|
|
80
|
+
// Detect emerging patterns for new additions
|
|
81
|
+
if (this.config.enableAutoAddition) {
|
|
82
|
+
const emergentResult = emergingPatternDetector.detectEmergingPatterns(outcomes.map(o => ({
|
|
83
|
+
taskId: o.taskId,
|
|
84
|
+
taskDescription: o.taskDescription,
|
|
85
|
+
routedAgent: o.routedAgent,
|
|
86
|
+
routedSkill: o.routedSkill,
|
|
87
|
+
confidence: o.confidence,
|
|
88
|
+
timestamp: new Date(),
|
|
89
|
+
success: o.success
|
|
90
|
+
})));
|
|
91
|
+
result.newPatterns = this.generateNewPatterns(emergentResult.emergentPatterns, existingMappings);
|
|
92
|
+
}
|
|
93
|
+
// Generate recommendations
|
|
94
|
+
result.recommendations = this.generateRecommendations(result);
|
|
95
|
+
// Store in history
|
|
96
|
+
this.learningHistory.push(result);
|
|
97
|
+
if (this.learningHistory.length > this.maxHistory) {
|
|
98
|
+
this.learningHistory.shift();
|
|
99
|
+
}
|
|
100
|
+
frameworkLogger.log("pattern-learning-engine", "learning-complete", "info", {
|
|
101
|
+
newPatterns: result.newPatterns.length,
|
|
102
|
+
modifiedPatterns: result.modifiedPatterns.length,
|
|
103
|
+
removedPatterns: result.removedPatterns.length,
|
|
104
|
+
thresholdUpdates: result.thresholdUpdates.length
|
|
105
|
+
}, undefined);
|
|
106
|
+
return result;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Generate pattern modifications based on performance
|
|
110
|
+
*/
|
|
111
|
+
generatePatternModifications(metrics) {
|
|
112
|
+
const updates = [];
|
|
113
|
+
for (const [patternId, metric] of metrics.entries()) {
|
|
114
|
+
// Skip if not enough data
|
|
115
|
+
if (metric.totalUsages < 5)
|
|
116
|
+
continue;
|
|
117
|
+
// Check for confidence adjustment needed
|
|
118
|
+
if (Math.abs(metric.avgConfidence - 0.75) > 0.15) {
|
|
119
|
+
const newConfidence = Math.max(0.5, Math.min(0.99, metric.successRate));
|
|
120
|
+
updates.push({
|
|
121
|
+
updateType: 'modify',
|
|
122
|
+
patternId,
|
|
123
|
+
changes: {
|
|
124
|
+
confidence: newConfidence
|
|
125
|
+
},
|
|
126
|
+
reason: `Performance-based confidence adjustment: ${metric.successRate.toFixed(2)} success rate`,
|
|
127
|
+
confidence: Math.min(1, metric.totalUsages / 20),
|
|
128
|
+
validated: false
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return updates;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Generate patterns for removal based on poor performance
|
|
136
|
+
*/
|
|
137
|
+
generatePatternRemovals(metrics, existingMappings) {
|
|
138
|
+
const removals = [];
|
|
139
|
+
for (const [patternId, metric] of metrics.entries()) {
|
|
140
|
+
// Skip if not enough data
|
|
141
|
+
if (metric.totalUsages < 10)
|
|
142
|
+
continue;
|
|
143
|
+
// Remove if success rate is too low
|
|
144
|
+
if (metric.successRate < 0.4 && metric.totalUsages >= 20) {
|
|
145
|
+
// Find the corresponding mapping
|
|
146
|
+
const [agent, skill] = patternId.includes(':') ? patternId.split(':') : [patternId, 'default'];
|
|
147
|
+
removals.push({
|
|
148
|
+
updateType: 'remove',
|
|
149
|
+
patternId,
|
|
150
|
+
changes: {},
|
|
151
|
+
reason: `Low success rate: ${(metric.successRate * 100).toFixed(1)}% over ${metric.totalUsages} usages`,
|
|
152
|
+
confidence: Math.min(1, metric.totalUsages / 30),
|
|
153
|
+
validated: false
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return removals;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Generate adaptive threshold updates
|
|
161
|
+
*/
|
|
162
|
+
generateThresholdUpdates(metrics) {
|
|
163
|
+
const updates = [];
|
|
164
|
+
// Get adaptive thresholds from performance tracker
|
|
165
|
+
const thresholds = patternPerformanceTracker.calculateAdaptiveThresholds();
|
|
166
|
+
// Generate updates for agents with enough data
|
|
167
|
+
for (const [agent, threshold] of thresholds.perAgent.entries()) {
|
|
168
|
+
const metric = metrics.get(agent);
|
|
169
|
+
if (metric && metric.totalUsages >= 10) {
|
|
170
|
+
updates.push({
|
|
171
|
+
updateType: 'modify',
|
|
172
|
+
patternId: `threshold:${agent}`,
|
|
173
|
+
changes: {
|
|
174
|
+
threshold
|
|
175
|
+
},
|
|
176
|
+
reason: `Adaptive threshold calibration based on ${metric.totalUsages} historical usages`,
|
|
177
|
+
confidence: Math.min(1, metric.totalUsages / 20),
|
|
178
|
+
validated: false
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return updates;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Generate new pattern suggestions from emergent patterns
|
|
186
|
+
*/
|
|
187
|
+
generateNewPatterns(emergentPatterns, existingMappings) {
|
|
188
|
+
const newPatterns = [];
|
|
189
|
+
for (const emergent of emergentPatterns) {
|
|
190
|
+
// Skip if confidence is too low
|
|
191
|
+
if (emergent.confidence < this.config.minConfidenceForAddition)
|
|
192
|
+
continue;
|
|
193
|
+
// Check if pattern already exists
|
|
194
|
+
const keywords = emergent.pattern.split(' | ');
|
|
195
|
+
const existingMatch = existingMappings.find(m => m.keywords.some(kw => keywords.includes(kw)));
|
|
196
|
+
if (existingMatch)
|
|
197
|
+
continue; // Don't add duplicate
|
|
198
|
+
// Add as new pattern
|
|
199
|
+
newPatterns.push({
|
|
200
|
+
updateType: 'add',
|
|
201
|
+
patternId: `emerging_${emergent.pattern.substring(0, 20)}`,
|
|
202
|
+
changes: {
|
|
203
|
+
keywords,
|
|
204
|
+
skill: emergent.suggestedAction.includes('testing') ? 'testing-strategy' : 'code-review',
|
|
205
|
+
agent: emergent.suggestedAction.includes('testing') ? 'testing-lead' : 'enforcer',
|
|
206
|
+
confidence: emergent.confidence
|
|
207
|
+
},
|
|
208
|
+
reason: `Emerging pattern with ${emergent.frequency} occurrences and ${(emergent.confidence * 100).toFixed(0)}% confidence`,
|
|
209
|
+
confidence: emergent.confidence,
|
|
210
|
+
validated: false
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
return newPatterns;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Generate recommendations based on learning results
|
|
217
|
+
*/
|
|
218
|
+
generateRecommendations(result) {
|
|
219
|
+
const recommendations = [];
|
|
220
|
+
if (result.newPatterns.length > 0) {
|
|
221
|
+
recommendations.push(`${result.newPatterns.length} new patterns detected - review for addition`);
|
|
222
|
+
}
|
|
223
|
+
if (result.modifiedPatterns.length > 0) {
|
|
224
|
+
recommendations.push(`${result.modifiedPatterns.length} patterns recommended for confidence adjustment`);
|
|
225
|
+
}
|
|
226
|
+
if (result.removedPatterns.length > 0) {
|
|
227
|
+
recommendations.push(`${result.removedPatterns.length} underperforming patterns recommended for removal`);
|
|
228
|
+
}
|
|
229
|
+
if (result.thresholdUpdates.length > 0) {
|
|
230
|
+
recommendations.push(`${result.thresholdUpdates.length} adaptive threshold updates available`);
|
|
231
|
+
}
|
|
232
|
+
if (recommendations.length === 0) {
|
|
233
|
+
recommendations.push('No pattern modifications recommended at this time');
|
|
234
|
+
}
|
|
235
|
+
return recommendations;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Get learning history
|
|
239
|
+
*/
|
|
240
|
+
getLearningHistory() {
|
|
241
|
+
return [...this.learningHistory];
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Update configuration
|
|
245
|
+
*/
|
|
246
|
+
updateConfig(newConfig) {
|
|
247
|
+
this.config = {
|
|
248
|
+
...this.config,
|
|
249
|
+
...newConfig
|
|
250
|
+
};
|
|
251
|
+
frameworkLogger.log("pattern-learning-engine", "config-updated", "info", { config: this.config }, undefined);
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Get current configuration
|
|
255
|
+
*/
|
|
256
|
+
getConfig() {
|
|
257
|
+
return { ...this.config };
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
// Singleton instance
|
|
261
|
+
export const patternLearningEngine = new PatternLearningEngine();
|
|
262
|
+
//# sourceMappingURL=pattern-learning-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern-learning-engine.js","sourceRoot":"","sources":["../../src/analytics/pattern-learning-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern Performance Tracker for P9 - ADAPTIVE_PATTERN_LEARNING
|
|
3
|
+
*
|
|
4
|
+
* Monitors pattern effectiveness over time, detects pattern drift,
|
|
5
|
+
* and provides metrics for adaptive kernel modifications.
|
|
6
|
+
*
|
|
7
|
+
* @version 1.0.0
|
|
8
|
+
* @since 2026-03-05
|
|
9
|
+
*/
|
|
10
|
+
import type { AdaptiveThresholds } from "../core/kernel-patterns.js";
|
|
11
|
+
export interface PatternMetrics {
|
|
12
|
+
patternId: string;
|
|
13
|
+
totalUsages: number;
|
|
14
|
+
successfulUsages: number;
|
|
15
|
+
failedUsages: number;
|
|
16
|
+
successRate: number;
|
|
17
|
+
avgConfidence: number;
|
|
18
|
+
avgResponseTime: number;
|
|
19
|
+
lastUpdated: Date;
|
|
20
|
+
timeSeries: Array<{
|
|
21
|
+
timestamp: Date;
|
|
22
|
+
successRate: number;
|
|
23
|
+
avgConfidence: number;
|
|
24
|
+
usageCount: number;
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
export interface PatternDriftAnalysis {
|
|
28
|
+
drifted: boolean;
|
|
29
|
+
patternId: string;
|
|
30
|
+
currentMetrics: PatternMetrics;
|
|
31
|
+
historicalBaseline: PatternMetrics;
|
|
32
|
+
driftMagnitude: number;
|
|
33
|
+
driftDirection: 'increasing' | 'decreasing' | 'unstable';
|
|
34
|
+
confidence: number;
|
|
35
|
+
recommendedAction: string;
|
|
36
|
+
}
|
|
37
|
+
export interface SystemPerformanceSummary {
|
|
38
|
+
overallSuccessRate: number;
|
|
39
|
+
overallAvgConfidence: number;
|
|
40
|
+
totalPatternsTracked: number;
|
|
41
|
+
patternsWithDrift: string[];
|
|
42
|
+
patternsNeedingAttention: string[];
|
|
43
|
+
recommendations: string[];
|
|
44
|
+
}
|
|
45
|
+
export declare class PatternPerformanceTracker {
|
|
46
|
+
private patternMetrics;
|
|
47
|
+
private readonly maxTimeSeriesPoints;
|
|
48
|
+
private readonly driftThreshold;
|
|
49
|
+
private readonly minSamplesForDrift;
|
|
50
|
+
private readonly baselineWindowSize;
|
|
51
|
+
/**
|
|
52
|
+
* Track performance metrics for a pattern
|
|
53
|
+
*/
|
|
54
|
+
trackPatternPerformance(patternId: string, outcome: {
|
|
55
|
+
success: boolean;
|
|
56
|
+
confidence: number;
|
|
57
|
+
responseTime?: number;
|
|
58
|
+
}): void;
|
|
59
|
+
/**
|
|
60
|
+
* Detect if a pattern has drifted from its historical baseline
|
|
61
|
+
*/
|
|
62
|
+
detectPatternDrift(patternId: string): PatternDriftAnalysis | null;
|
|
63
|
+
/**
|
|
64
|
+
* Get all pattern drift analyses
|
|
65
|
+
*/
|
|
66
|
+
getAllDriftAnalyses(): PatternDriftAnalysis[];
|
|
67
|
+
/**
|
|
68
|
+
* Calculate adaptive confidence thresholds based on performance
|
|
69
|
+
*/
|
|
70
|
+
calculateAdaptiveThresholds(): AdaptiveThresholds;
|
|
71
|
+
/**
|
|
72
|
+
* Get system performance summary
|
|
73
|
+
*/
|
|
74
|
+
getSystemPerformanceSummary(): SystemPerformanceSummary;
|
|
75
|
+
/**
|
|
76
|
+
* Get metrics for a specific pattern
|
|
77
|
+
*/
|
|
78
|
+
getPatternMetrics(patternId: string): PatternMetrics | null;
|
|
79
|
+
/**
|
|
80
|
+
* Get all tracked patterns
|
|
81
|
+
*/
|
|
82
|
+
getAllPatternMetrics(): PatternMetrics[];
|
|
83
|
+
/**
|
|
84
|
+
* Clear all metrics (for testing or reset)
|
|
85
|
+
*/
|
|
86
|
+
clear(): void;
|
|
87
|
+
}
|
|
88
|
+
export declare const patternPerformanceTracker: PatternPerformanceTracker;
|
|
89
|
+
//# sourceMappingURL=pattern-performance-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern-performance-tracker.d.ts","sourceRoot":"","sources":["../../src/analytics/pattern-performance-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAoB,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEvF,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,IAAI,CAAC;IAClB,UAAU,EAAE,KAAK,CAAC;QAChB,SAAS,EAAE,IAAI,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,cAAc,CAAC;IAC/B,kBAAkB,EAAE,cAAc,CAAC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,qBAAa,yBAAyB;IACpC,OAAO,CAAC,cAAc,CAA0C;IAChE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAQ;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAM;IACzC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAO;IAE1C;;OAEG;IACH,uBAAuB,CACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GACA,IAAI;IAsEP;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI;IAyElE;;OAEG;IACH,mBAAmB,IAAI,oBAAoB,EAAE;IAa7C;;OAEG;IACH,2BAA2B,IAAI,kBAAkB;IAkEjD;;OAEG;IACH,2BAA2B,IAAI,wBAAwB;IAsDvD;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAI3D;;OAEG;IACH,oBAAoB,IAAI,cAAc,EAAE;IAIxC;;OAEG;IACH,KAAK,IAAI,IAAI;CAUd;AAGD,eAAO,MAAM,yBAAyB,2BAAkC,CAAC"}
|