agentic-qe 2.1.2 → 2.2.0
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 +123 -0
- package/README.md +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +5 -1
- package/dist/agents/index.js.map +1 -1
- package/dist/core/di/AgentDependencies.d.ts +127 -0
- package/dist/core/di/AgentDependencies.d.ts.map +1 -0
- package/dist/core/di/AgentDependencies.js +251 -0
- package/dist/core/di/AgentDependencies.js.map +1 -0
- package/dist/core/di/DIContainer.d.ts +149 -0
- package/dist/core/di/DIContainer.d.ts.map +1 -0
- package/dist/core/di/DIContainer.js +333 -0
- package/dist/core/di/DIContainer.js.map +1 -0
- package/dist/core/di/index.d.ts +11 -0
- package/dist/core/di/index.d.ts.map +1 -0
- package/dist/core/di/index.js +22 -0
- package/dist/core/di/index.js.map +1 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +11 -1
- package/dist/core/index.js.map +1 -1
- package/dist/learning/ExperienceSharingProtocol.d.ts +243 -0
- package/dist/learning/ExperienceSharingProtocol.d.ts.map +1 -0
- package/dist/learning/ExperienceSharingProtocol.js +538 -0
- package/dist/learning/ExperienceSharingProtocol.js.map +1 -0
- package/dist/learning/LearningEngine.d.ts +101 -1
- package/dist/learning/LearningEngine.d.ts.map +1 -1
- package/dist/learning/LearningEngine.js +330 -3
- package/dist/learning/LearningEngine.js.map +1 -1
- package/dist/learning/QLearning.d.ts +38 -125
- package/dist/learning/QLearning.d.ts.map +1 -1
- package/dist/learning/QLearning.js +46 -267
- package/dist/learning/QLearning.js.map +1 -1
- package/dist/learning/QLearningLegacy.d.ts +154 -0
- package/dist/learning/QLearningLegacy.d.ts.map +1 -0
- package/dist/learning/QLearningLegacy.js +337 -0
- package/dist/learning/QLearningLegacy.js.map +1 -0
- package/dist/learning/algorithms/AbstractRLLearner.d.ts +162 -0
- package/dist/learning/algorithms/AbstractRLLearner.d.ts.map +1 -0
- package/dist/learning/algorithms/AbstractRLLearner.js +300 -0
- package/dist/learning/algorithms/AbstractRLLearner.js.map +1 -0
- package/dist/learning/algorithms/ActorCriticLearner.d.ts +201 -0
- package/dist/learning/algorithms/ActorCriticLearner.d.ts.map +1 -0
- package/dist/learning/algorithms/ActorCriticLearner.js +447 -0
- package/dist/learning/algorithms/ActorCriticLearner.js.map +1 -0
- package/dist/learning/algorithms/PPOLearner.d.ts +207 -0
- package/dist/learning/algorithms/PPOLearner.d.ts.map +1 -0
- package/dist/learning/algorithms/PPOLearner.js +490 -0
- package/dist/learning/algorithms/PPOLearner.js.map +1 -0
- package/dist/learning/algorithms/QLearning.d.ts +68 -0
- package/dist/learning/algorithms/QLearning.d.ts.map +1 -0
- package/dist/learning/algorithms/QLearning.js +116 -0
- package/dist/learning/algorithms/QLearning.js.map +1 -0
- package/dist/learning/algorithms/SARSALearner.d.ts +107 -0
- package/dist/learning/algorithms/SARSALearner.d.ts.map +1 -0
- package/dist/learning/algorithms/SARSALearner.js +252 -0
- package/dist/learning/algorithms/SARSALearner.js.map +1 -0
- package/dist/learning/algorithms/index.d.ts +29 -0
- package/dist/learning/algorithms/index.d.ts.map +1 -0
- package/dist/learning/algorithms/index.js +44 -0
- package/dist/learning/algorithms/index.js.map +1 -0
- package/dist/learning/index.d.ts +3 -0
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +15 -1
- package/dist/learning/index.js.map +1 -1
- package/dist/learning/types.d.ts +2 -0
- package/dist/learning/types.d.ts.map +1 -1
- package/dist/memory/DistributedPatternLibrary.d.ts +159 -0
- package/dist/memory/DistributedPatternLibrary.d.ts.map +1 -0
- package/dist/memory/DistributedPatternLibrary.js +370 -0
- package/dist/memory/DistributedPatternLibrary.js.map +1 -0
- package/dist/memory/PatternQualityScorer.d.ts +169 -0
- package/dist/memory/PatternQualityScorer.d.ts.map +1 -0
- package/dist/memory/PatternQualityScorer.js +327 -0
- package/dist/memory/PatternQualityScorer.js.map +1 -0
- package/dist/memory/PatternReplicationService.d.ts +187 -0
- package/dist/memory/PatternReplicationService.d.ts.map +1 -0
- package/dist/memory/PatternReplicationService.js +392 -0
- package/dist/memory/PatternReplicationService.js.map +1 -0
- package/dist/providers/ClaudeProvider.d.ts +98 -0
- package/dist/providers/ClaudeProvider.d.ts.map +1 -0
- package/dist/providers/ClaudeProvider.js +418 -0
- package/dist/providers/ClaudeProvider.js.map +1 -0
- package/dist/providers/ILLMProvider.d.ts +287 -0
- package/dist/providers/ILLMProvider.d.ts.map +1 -0
- package/dist/providers/ILLMProvider.js +33 -0
- package/dist/providers/ILLMProvider.js.map +1 -0
- package/dist/providers/LLMProviderFactory.d.ts +154 -0
- package/dist/providers/LLMProviderFactory.d.ts.map +1 -0
- package/dist/providers/LLMProviderFactory.js +426 -0
- package/dist/providers/LLMProviderFactory.js.map +1 -0
- package/dist/providers/RuvllmProvider.d.ts +107 -0
- package/dist/providers/RuvllmProvider.d.ts.map +1 -0
- package/dist/providers/RuvllmProvider.js +417 -0
- package/dist/providers/RuvllmProvider.js.map +1 -0
- package/dist/providers/index.d.ts +31 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +69 -0
- package/dist/providers/index.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/learning/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,sBAAsB,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/learning/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DistributedPatternLibrary - Distributed Pattern Storage with Eventual Consistency
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Vector clock-based versioning for distributed consistency
|
|
6
|
+
* - Eventual consistency model with conflict resolution
|
|
7
|
+
* - Pattern CRUD operations with distributed coordination
|
|
8
|
+
* - Compression for large patterns (>10KB)
|
|
9
|
+
* - High-performance pattern lookup (<100ms p99)
|
|
10
|
+
*
|
|
11
|
+
* @module memory/DistributedPatternLibrary
|
|
12
|
+
* @version 1.0.0
|
|
13
|
+
*/
|
|
14
|
+
import { TestPattern, PatternStoreConfig } from '../core/memory/IPatternStore';
|
|
15
|
+
/**
|
|
16
|
+
* Vector clock for distributed versioning
|
|
17
|
+
* Maps agent ID to logical timestamp
|
|
18
|
+
*/
|
|
19
|
+
export interface VectorClock {
|
|
20
|
+
[agentId: string]: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Versioned pattern with vector clock
|
|
24
|
+
*/
|
|
25
|
+
export interface VersionedPattern {
|
|
26
|
+
pattern: TestPattern;
|
|
27
|
+
vectorClock: VectorClock;
|
|
28
|
+
checksum: string;
|
|
29
|
+
compressedContent?: string;
|
|
30
|
+
isCompressed: boolean;
|
|
31
|
+
createdBy: string;
|
|
32
|
+
updatedAt: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Conflict resolution strategy
|
|
36
|
+
*/
|
|
37
|
+
export declare enum ConflictResolution {
|
|
38
|
+
LAST_WRITE_WINS = "last_write_wins",
|
|
39
|
+
HIGHEST_CONFIDENCE = "highest_confidence",
|
|
40
|
+
MOST_USAGE = "most_usage",
|
|
41
|
+
VECTOR_CLOCK = "vector_clock"
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Pattern library statistics
|
|
45
|
+
*/
|
|
46
|
+
export interface DistributedPatternStats {
|
|
47
|
+
totalPatterns: number;
|
|
48
|
+
compressedPatterns: number;
|
|
49
|
+
averageCompressionRatio: number;
|
|
50
|
+
vectorClockSize: number;
|
|
51
|
+
conflictsResolved: number;
|
|
52
|
+
lastSyncTimestamp: number;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Configuration for distributed pattern library
|
|
56
|
+
*/
|
|
57
|
+
export interface DistributedPatternConfig extends PatternStoreConfig {
|
|
58
|
+
/** Agent ID for this instance */
|
|
59
|
+
agentId: string;
|
|
60
|
+
/** Compression threshold in bytes (default: 10KB) */
|
|
61
|
+
compressionThreshold?: number;
|
|
62
|
+
/** Conflict resolution strategy */
|
|
63
|
+
conflictResolution?: ConflictResolution;
|
|
64
|
+
/** Enable automatic compression */
|
|
65
|
+
autoCompress?: boolean;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* DistributedPatternLibrary - Manages distributed pattern storage with eventual consistency
|
|
69
|
+
*
|
|
70
|
+
* This class provides:
|
|
71
|
+
* - Vector clock-based versioning for tracking distributed updates
|
|
72
|
+
* - Automatic conflict resolution using configurable strategies
|
|
73
|
+
* - Pattern compression for efficient storage and network transfer
|
|
74
|
+
* - Checksum validation for data integrity
|
|
75
|
+
* - High-performance pattern lookup with caching
|
|
76
|
+
*/
|
|
77
|
+
export declare class DistributedPatternLibrary {
|
|
78
|
+
private patterns;
|
|
79
|
+
private vectorClock;
|
|
80
|
+
private compression;
|
|
81
|
+
private config;
|
|
82
|
+
private conflictsResolved;
|
|
83
|
+
private lastSyncTimestamp;
|
|
84
|
+
private lookupCache;
|
|
85
|
+
private readonly CACHE_TTL;
|
|
86
|
+
private readonly COMPRESSION_THRESHOLD;
|
|
87
|
+
constructor(config: DistributedPatternConfig);
|
|
88
|
+
/**
|
|
89
|
+
* Initialize the pattern library
|
|
90
|
+
*/
|
|
91
|
+
initialize(): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Store a pattern with vector clock versioning
|
|
94
|
+
*/
|
|
95
|
+
storePattern(pattern: TestPattern, sourceAgentId?: string): Promise<void>;
|
|
96
|
+
/**
|
|
97
|
+
* Retrieve a pattern by ID with caching
|
|
98
|
+
*/
|
|
99
|
+
getPattern(id: string): Promise<TestPattern | null>;
|
|
100
|
+
/**
|
|
101
|
+
* Update an existing pattern
|
|
102
|
+
*/
|
|
103
|
+
updatePattern(pattern: TestPattern): Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* Delete a pattern
|
|
106
|
+
*/
|
|
107
|
+
deletePattern(id: string): Promise<boolean>;
|
|
108
|
+
/**
|
|
109
|
+
* Get all patterns matching a filter
|
|
110
|
+
*/
|
|
111
|
+
getPatterns(filter?: {
|
|
112
|
+
type?: string;
|
|
113
|
+
domain?: string;
|
|
114
|
+
framework?: string;
|
|
115
|
+
minConfidence?: number;
|
|
116
|
+
}): Promise<TestPattern[]>;
|
|
117
|
+
/**
|
|
118
|
+
* Merge patterns from another agent with conflict resolution
|
|
119
|
+
*/
|
|
120
|
+
mergePatterns(remotePatterns: VersionedPattern[]): Promise<number>;
|
|
121
|
+
/**
|
|
122
|
+
* Get library statistics
|
|
123
|
+
*/
|
|
124
|
+
getStats(): Promise<DistributedPatternStats>;
|
|
125
|
+
/**
|
|
126
|
+
* Export all patterns for replication
|
|
127
|
+
*/
|
|
128
|
+
exportPatterns(): Promise<VersionedPattern[]>;
|
|
129
|
+
/**
|
|
130
|
+
* Clear all patterns
|
|
131
|
+
*/
|
|
132
|
+
clear(): Promise<void>;
|
|
133
|
+
/**
|
|
134
|
+
* Resolve conflict between two versioned patterns
|
|
135
|
+
*/
|
|
136
|
+
private resolveConflict;
|
|
137
|
+
/**
|
|
138
|
+
* Compare two vector clocks
|
|
139
|
+
* Returns: 1 if v1 > v2, -1 if v1 < v2, 0 if concurrent
|
|
140
|
+
*/
|
|
141
|
+
private compareVectorClocks;
|
|
142
|
+
/**
|
|
143
|
+
* Merge remote vector clock into local
|
|
144
|
+
*/
|
|
145
|
+
private mergeVectorClocks;
|
|
146
|
+
/**
|
|
147
|
+
* Validate pattern checksum
|
|
148
|
+
*/
|
|
149
|
+
private validateChecksum;
|
|
150
|
+
/**
|
|
151
|
+
* Decompress pattern if needed
|
|
152
|
+
*/
|
|
153
|
+
private decompressPattern;
|
|
154
|
+
/**
|
|
155
|
+
* Cleanup old cache entries
|
|
156
|
+
*/
|
|
157
|
+
private cleanupCache;
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=DistributedPatternLibrary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DistributedPatternLibrary.d.ts","sourceRoot":"","sources":["../../src/memory/DistributedPatternLibrary.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* DistributedPatternLibrary - Distributed Pattern Storage with Eventual Consistency
|
|
4
|
+
*
|
|
5
|
+
* Features:
|
|
6
|
+
* - Vector clock-based versioning for distributed consistency
|
|
7
|
+
* - Eventual consistency model with conflict resolution
|
|
8
|
+
* - Pattern CRUD operations with distributed coordination
|
|
9
|
+
* - Compression for large patterns (>10KB)
|
|
10
|
+
* - High-performance pattern lookup (<100ms p99)
|
|
11
|
+
*
|
|
12
|
+
* @module memory/DistributedPatternLibrary
|
|
13
|
+
* @version 1.0.0
|
|
14
|
+
*/
|
|
15
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
18
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
19
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
20
|
+
}
|
|
21
|
+
Object.defineProperty(o, k2, desc);
|
|
22
|
+
}) : (function(o, m, k, k2) {
|
|
23
|
+
if (k2 === undefined) k2 = k;
|
|
24
|
+
o[k2] = m[k];
|
|
25
|
+
}));
|
|
26
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
27
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
28
|
+
}) : function(o, v) {
|
|
29
|
+
o["default"] = v;
|
|
30
|
+
});
|
|
31
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
32
|
+
var ownKeys = function(o) {
|
|
33
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
34
|
+
var ar = [];
|
|
35
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
36
|
+
return ar;
|
|
37
|
+
};
|
|
38
|
+
return ownKeys(o);
|
|
39
|
+
};
|
|
40
|
+
return function (mod) {
|
|
41
|
+
if (mod && mod.__esModule) return mod;
|
|
42
|
+
var result = {};
|
|
43
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
44
|
+
__setModuleDefault(result, mod);
|
|
45
|
+
return result;
|
|
46
|
+
};
|
|
47
|
+
})();
|
|
48
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
|
+
exports.DistributedPatternLibrary = exports.ConflictResolution = void 0;
|
|
50
|
+
const CompressionManager_1 = require("../core/memory/CompressionManager");
|
|
51
|
+
const crypto = __importStar(require("crypto"));
|
|
52
|
+
/**
|
|
53
|
+
* Conflict resolution strategy
|
|
54
|
+
*/
|
|
55
|
+
var ConflictResolution;
|
|
56
|
+
(function (ConflictResolution) {
|
|
57
|
+
ConflictResolution["LAST_WRITE_WINS"] = "last_write_wins";
|
|
58
|
+
ConflictResolution["HIGHEST_CONFIDENCE"] = "highest_confidence";
|
|
59
|
+
ConflictResolution["MOST_USAGE"] = "most_usage";
|
|
60
|
+
ConflictResolution["VECTOR_CLOCK"] = "vector_clock";
|
|
61
|
+
})(ConflictResolution || (exports.ConflictResolution = ConflictResolution = {}));
|
|
62
|
+
/**
|
|
63
|
+
* DistributedPatternLibrary - Manages distributed pattern storage with eventual consistency
|
|
64
|
+
*
|
|
65
|
+
* This class provides:
|
|
66
|
+
* - Vector clock-based versioning for tracking distributed updates
|
|
67
|
+
* - Automatic conflict resolution using configurable strategies
|
|
68
|
+
* - Pattern compression for efficient storage and network transfer
|
|
69
|
+
* - Checksum validation for data integrity
|
|
70
|
+
* - High-performance pattern lookup with caching
|
|
71
|
+
*/
|
|
72
|
+
class DistributedPatternLibrary {
|
|
73
|
+
constructor(config) {
|
|
74
|
+
this.CACHE_TTL = 5000; // 5 seconds cache TTL
|
|
75
|
+
this.config = config;
|
|
76
|
+
this.patterns = new Map();
|
|
77
|
+
this.vectorClock = { [config.agentId]: 0 };
|
|
78
|
+
this.compression = new CompressionManager_1.CompressionManager();
|
|
79
|
+
this.conflictsResolved = 0;
|
|
80
|
+
this.lastSyncTimestamp = Date.now();
|
|
81
|
+
this.lookupCache = new Map();
|
|
82
|
+
this.COMPRESSION_THRESHOLD = config.compressionThreshold || 10240; // 10KB default
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Initialize the pattern library
|
|
86
|
+
*/
|
|
87
|
+
async initialize() {
|
|
88
|
+
// Clear cache and reset state
|
|
89
|
+
this.lookupCache.clear();
|
|
90
|
+
this.lastSyncTimestamp = Date.now();
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Store a pattern with vector clock versioning
|
|
94
|
+
*/
|
|
95
|
+
async storePattern(pattern, sourceAgentId) {
|
|
96
|
+
const agentId = sourceAgentId || this.config.agentId;
|
|
97
|
+
// Increment vector clock for this agent
|
|
98
|
+
this.vectorClock[agentId] = (this.vectorClock[agentId] || 0) + 1;
|
|
99
|
+
// Create checksum for integrity validation
|
|
100
|
+
const patternJson = JSON.stringify(pattern);
|
|
101
|
+
const checksum = crypto.createHash('sha256').update(patternJson).digest('hex');
|
|
102
|
+
// Compress if needed
|
|
103
|
+
let compressedContent;
|
|
104
|
+
let isCompressed = false;
|
|
105
|
+
if (this.config.autoCompress && this.compression.shouldCompress(patternJson, this.COMPRESSION_THRESHOLD)) {
|
|
106
|
+
compressedContent = await this.compression.compress(patternJson);
|
|
107
|
+
isCompressed = true;
|
|
108
|
+
}
|
|
109
|
+
const versionedPattern = {
|
|
110
|
+
pattern,
|
|
111
|
+
vectorClock: { ...this.vectorClock },
|
|
112
|
+
checksum,
|
|
113
|
+
compressedContent,
|
|
114
|
+
isCompressed,
|
|
115
|
+
createdBy: agentId,
|
|
116
|
+
updatedAt: Date.now()
|
|
117
|
+
};
|
|
118
|
+
// Check for conflicts if pattern already exists
|
|
119
|
+
const existing = this.patterns.get(pattern.id);
|
|
120
|
+
if (existing) {
|
|
121
|
+
const resolved = await this.resolveConflict(existing, versionedPattern);
|
|
122
|
+
this.patterns.set(pattern.id, resolved);
|
|
123
|
+
this.conflictsResolved++;
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
this.patterns.set(pattern.id, versionedPattern);
|
|
127
|
+
}
|
|
128
|
+
// Invalidate cache for this pattern
|
|
129
|
+
this.lookupCache.delete(pattern.id);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Retrieve a pattern by ID with caching
|
|
133
|
+
*/
|
|
134
|
+
async getPattern(id) {
|
|
135
|
+
const startTime = Date.now();
|
|
136
|
+
// Check cache first
|
|
137
|
+
const cached = this.lookupCache.get(id);
|
|
138
|
+
if (cached && (Date.now() - cached.timestamp) < this.CACHE_TTL) {
|
|
139
|
+
return this.decompressPattern(cached.pattern);
|
|
140
|
+
}
|
|
141
|
+
// Fetch from storage
|
|
142
|
+
const versionedPattern = this.patterns.get(id);
|
|
143
|
+
if (!versionedPattern) {
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
// Validate checksum
|
|
147
|
+
const isValid = await this.validateChecksum(versionedPattern);
|
|
148
|
+
if (!isValid) {
|
|
149
|
+
throw new Error(`Checksum validation failed for pattern: ${id}`);
|
|
150
|
+
}
|
|
151
|
+
// Update cache
|
|
152
|
+
this.lookupCache.set(id, {
|
|
153
|
+
pattern: versionedPattern,
|
|
154
|
+
timestamp: Date.now()
|
|
155
|
+
});
|
|
156
|
+
// Cleanup old cache entries
|
|
157
|
+
this.cleanupCache();
|
|
158
|
+
const lookupTime = Date.now() - startTime;
|
|
159
|
+
if (lookupTime > 100) {
|
|
160
|
+
console.warn(`Pattern lookup exceeded 100ms threshold: ${lookupTime}ms for pattern ${id}`);
|
|
161
|
+
}
|
|
162
|
+
return this.decompressPattern(versionedPattern);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Update an existing pattern
|
|
166
|
+
*/
|
|
167
|
+
async updatePattern(pattern) {
|
|
168
|
+
const existing = this.patterns.get(pattern.id);
|
|
169
|
+
if (!existing) {
|
|
170
|
+
throw new Error(`Pattern not found: ${pattern.id}`);
|
|
171
|
+
}
|
|
172
|
+
await this.storePattern(pattern);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Delete a pattern
|
|
176
|
+
*/
|
|
177
|
+
async deletePattern(id) {
|
|
178
|
+
const deleted = this.patterns.delete(id);
|
|
179
|
+
if (deleted) {
|
|
180
|
+
this.lookupCache.delete(id);
|
|
181
|
+
}
|
|
182
|
+
return deleted;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Get all patterns matching a filter
|
|
186
|
+
*/
|
|
187
|
+
async getPatterns(filter) {
|
|
188
|
+
const patterns = [];
|
|
189
|
+
for (const versionedPattern of Array.from(this.patterns.values())) {
|
|
190
|
+
const pattern = await this.decompressPattern(versionedPattern);
|
|
191
|
+
// Apply filters
|
|
192
|
+
if (filter) {
|
|
193
|
+
if (filter.type && pattern.type !== filter.type)
|
|
194
|
+
continue;
|
|
195
|
+
if (filter.domain && pattern.domain !== filter.domain)
|
|
196
|
+
continue;
|
|
197
|
+
if (filter.framework && pattern.framework !== filter.framework)
|
|
198
|
+
continue;
|
|
199
|
+
if (filter.minConfidence && (pattern.coverage || 0) < filter.minConfidence)
|
|
200
|
+
continue;
|
|
201
|
+
}
|
|
202
|
+
patterns.push(pattern);
|
|
203
|
+
}
|
|
204
|
+
return patterns;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Merge patterns from another agent with conflict resolution
|
|
208
|
+
*/
|
|
209
|
+
async mergePatterns(remotePatterns) {
|
|
210
|
+
let mergedCount = 0;
|
|
211
|
+
for (const remotePattern of remotePatterns) {
|
|
212
|
+
const localPattern = this.patterns.get(remotePattern.pattern.id);
|
|
213
|
+
if (!localPattern) {
|
|
214
|
+
// New pattern, just add it
|
|
215
|
+
this.patterns.set(remotePattern.pattern.id, remotePattern);
|
|
216
|
+
mergedCount++;
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
// Resolve conflict
|
|
220
|
+
const resolved = await this.resolveConflict(localPattern, remotePattern);
|
|
221
|
+
if (resolved !== localPattern) {
|
|
222
|
+
this.patterns.set(remotePattern.pattern.id, resolved);
|
|
223
|
+
this.conflictsResolved++;
|
|
224
|
+
mergedCount++;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
// Merge vector clocks
|
|
228
|
+
this.mergeVectorClocks(remotePattern.vectorClock);
|
|
229
|
+
}
|
|
230
|
+
this.lastSyncTimestamp = Date.now();
|
|
231
|
+
return mergedCount;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Get library statistics
|
|
235
|
+
*/
|
|
236
|
+
async getStats() {
|
|
237
|
+
let compressedCount = 0;
|
|
238
|
+
const compressionRatios = [];
|
|
239
|
+
for (const versionedPattern of Array.from(this.patterns.values())) {
|
|
240
|
+
if (versionedPattern.isCompressed && versionedPattern.compressedContent) {
|
|
241
|
+
compressedCount++;
|
|
242
|
+
const originalSize = JSON.stringify(versionedPattern.pattern).length;
|
|
243
|
+
const compressedSize = versionedPattern.compressedContent.length;
|
|
244
|
+
compressionRatios.push(compressedSize / originalSize);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
const averageCompressionRatio = compressionRatios.length > 0
|
|
248
|
+
? compressionRatios.reduce((a, b) => a + b, 0) / compressionRatios.length
|
|
249
|
+
: 0;
|
|
250
|
+
return {
|
|
251
|
+
totalPatterns: this.patterns.size,
|
|
252
|
+
compressedPatterns: compressedCount,
|
|
253
|
+
averageCompressionRatio,
|
|
254
|
+
vectorClockSize: Object.keys(this.vectorClock).length,
|
|
255
|
+
conflictsResolved: this.conflictsResolved,
|
|
256
|
+
lastSyncTimestamp: this.lastSyncTimestamp
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Export all patterns for replication
|
|
261
|
+
*/
|
|
262
|
+
async exportPatterns() {
|
|
263
|
+
return Array.from(this.patterns.values());
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Clear all patterns
|
|
267
|
+
*/
|
|
268
|
+
async clear() {
|
|
269
|
+
this.patterns.clear();
|
|
270
|
+
this.lookupCache.clear();
|
|
271
|
+
this.vectorClock = { [this.config.agentId]: 0 };
|
|
272
|
+
this.conflictsResolved = 0;
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Resolve conflict between two versioned patterns
|
|
276
|
+
*/
|
|
277
|
+
async resolveConflict(local, remote) {
|
|
278
|
+
const strategy = this.config.conflictResolution || ConflictResolution.VECTOR_CLOCK;
|
|
279
|
+
switch (strategy) {
|
|
280
|
+
case ConflictResolution.LAST_WRITE_WINS:
|
|
281
|
+
return local.updatedAt > remote.updatedAt ? local : remote;
|
|
282
|
+
case ConflictResolution.HIGHEST_CONFIDENCE:
|
|
283
|
+
const localConfidence = local.pattern.coverage || 0;
|
|
284
|
+
const remoteConfidence = remote.pattern.coverage || 0;
|
|
285
|
+
return localConfidence > remoteConfidence ? local : remote;
|
|
286
|
+
case ConflictResolution.MOST_USAGE:
|
|
287
|
+
const localUsage = local.pattern.usageCount || 0;
|
|
288
|
+
const remoteUsage = remote.pattern.usageCount || 0;
|
|
289
|
+
return localUsage > remoteUsage ? local : remote;
|
|
290
|
+
case ConflictResolution.VECTOR_CLOCK:
|
|
291
|
+
default:
|
|
292
|
+
// Use vector clock comparison
|
|
293
|
+
const comparison = this.compareVectorClocks(local.vectorClock, remote.vectorClock);
|
|
294
|
+
if (comparison === 1)
|
|
295
|
+
return local;
|
|
296
|
+
if (comparison === -1)
|
|
297
|
+
return remote;
|
|
298
|
+
// Concurrent updates - use highest confidence as tiebreaker
|
|
299
|
+
return (local.pattern.coverage || 0) > (remote.pattern.coverage || 0) ? local : remote;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Compare two vector clocks
|
|
304
|
+
* Returns: 1 if v1 > v2, -1 if v1 < v2, 0 if concurrent
|
|
305
|
+
*/
|
|
306
|
+
compareVectorClocks(v1, v2) {
|
|
307
|
+
const allAgents = new Set([...Object.keys(v1), ...Object.keys(v2)]);
|
|
308
|
+
let v1Greater = false;
|
|
309
|
+
let v2Greater = false;
|
|
310
|
+
for (const agent of Array.from(allAgents)) {
|
|
311
|
+
const t1 = v1[agent] || 0;
|
|
312
|
+
const t2 = v2[agent] || 0;
|
|
313
|
+
if (t1 > t2)
|
|
314
|
+
v1Greater = true;
|
|
315
|
+
if (t2 > t1)
|
|
316
|
+
v2Greater = true;
|
|
317
|
+
}
|
|
318
|
+
if (v1Greater && !v2Greater)
|
|
319
|
+
return 1;
|
|
320
|
+
if (v2Greater && !v1Greater)
|
|
321
|
+
return -1;
|
|
322
|
+
return 0; // Concurrent
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Merge remote vector clock into local
|
|
326
|
+
*/
|
|
327
|
+
mergeVectorClocks(remoteClock) {
|
|
328
|
+
for (const [agent, timestamp] of Object.entries(remoteClock)) {
|
|
329
|
+
this.vectorClock[agent] = Math.max(this.vectorClock[agent] || 0, timestamp);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Validate pattern checksum
|
|
334
|
+
*/
|
|
335
|
+
async validateChecksum(versionedPattern) {
|
|
336
|
+
const pattern = versionedPattern.isCompressed && versionedPattern.compressedContent
|
|
337
|
+
? JSON.parse(await this.compression.decompress(versionedPattern.compressedContent))
|
|
338
|
+
: versionedPattern.pattern;
|
|
339
|
+
const patternJson = JSON.stringify(pattern);
|
|
340
|
+
const checksum = crypto.createHash('sha256').update(patternJson).digest('hex');
|
|
341
|
+
return checksum === versionedPattern.checksum;
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Decompress pattern if needed
|
|
345
|
+
*/
|
|
346
|
+
async decompressPattern(versionedPattern) {
|
|
347
|
+
if (!versionedPattern.isCompressed || !versionedPattern.compressedContent) {
|
|
348
|
+
return versionedPattern.pattern;
|
|
349
|
+
}
|
|
350
|
+
const decompressed = await this.compression.decompress(versionedPattern.compressedContent);
|
|
351
|
+
return JSON.parse(decompressed);
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Cleanup old cache entries
|
|
355
|
+
*/
|
|
356
|
+
cleanupCache() {
|
|
357
|
+
const now = Date.now();
|
|
358
|
+
const entriesToDelete = [];
|
|
359
|
+
for (const [id, cached] of Array.from(this.lookupCache.entries())) {
|
|
360
|
+
if (now - cached.timestamp > this.CACHE_TTL) {
|
|
361
|
+
entriesToDelete.push(id);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
for (const id of entriesToDelete) {
|
|
365
|
+
this.lookupCache.delete(id);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
exports.DistributedPatternLibrary = DistributedPatternLibrary;
|
|
370
|
+
//# sourceMappingURL=DistributedPatternLibrary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DistributedPatternLibrary.js","sourceRoot":"","sources":["../../src/memory/DistributedPatternLibrary.ts"],"names":[],"mappings":"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"}
|