agentic-qe 1.8.0 → 1.8.1
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 +94 -0
- package/README.md +36 -65
- package/dist/agents/BaseAgent.d.ts +2 -0
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +55 -35
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/TestExecutorAgent.d.ts +32 -2
- package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
- package/dist/agents/TestExecutorAgent.js +254 -64
- package/dist/agents/TestExecutorAgent.js.map +1 -1
- package/dist/agents/lifecycle/AgentLifecycleManager.d.ts +1 -6
- package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -1
- package/dist/agents/lifecycle/AgentLifecycleManager.js +0 -7
- package/dist/agents/lifecycle/AgentLifecycleManager.js.map +1 -1
- package/dist/core/memory/AdapterConfig.d.ts +108 -0
- package/dist/core/memory/AdapterConfig.d.ts.map +1 -0
- package/dist/core/memory/AdapterConfig.js +189 -0
- package/dist/core/memory/AdapterConfig.js.map +1 -0
- package/dist/core/memory/AdapterFactory.d.ts +72 -0
- package/dist/core/memory/AdapterFactory.d.ts.map +1 -0
- package/dist/core/memory/AdapterFactory.js +152 -0
- package/dist/core/memory/AdapterFactory.js.map +1 -0
- package/dist/core/memory/AgentDBManager.d.ts +23 -5
- package/dist/core/memory/AgentDBManager.d.ts.map +1 -1
- package/dist/core/memory/AgentDBManager.js +80 -72
- package/dist/core/memory/AgentDBManager.js.map +1 -1
- package/dist/core/memory/PatternCache.d.ts +105 -0
- package/dist/core/memory/PatternCache.d.ts.map +1 -0
- package/dist/core/memory/PatternCache.js +183 -0
- package/dist/core/memory/PatternCache.js.map +1 -0
- package/dist/core/memory/RealAgentDBAdapter.d.ts +7 -1
- package/dist/core/memory/RealAgentDBAdapter.d.ts.map +1 -1
- package/dist/core/memory/RealAgentDBAdapter.js +99 -19
- package/dist/core/memory/RealAgentDBAdapter.js.map +1 -1
- package/dist/core/memory/index.d.ts +6 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +12 -1
- package/dist/core/memory/index.js.map +1 -1
- package/dist/core/neural/NeuralTrainer.d.ts +2 -6
- package/dist/core/neural/NeuralTrainer.d.ts.map +1 -1
- package/dist/core/neural/NeuralTrainer.js +7 -25
- package/dist/core/neural/NeuralTrainer.js.map +1 -1
- package/package.json +2 -14
- package/dist/mcp/tools/deprecated.d.ts +0 -1390
- package/dist/mcp/tools/deprecated.d.ts.map +0 -1
- package/dist/mcp/tools/deprecated.js +0 -859
- package/dist/mcp/tools/deprecated.js.map +0 -1
|
@@ -1,101 +1,98 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
3
|
exports.AgentDBManager = void 0;
|
|
37
4
|
exports.createAgentDBManager = createAgentDBManager;
|
|
38
5
|
const SecureRandom_js_1 = require("../../utils/SecureRandom.js");
|
|
6
|
+
const AdapterConfig_1 = require("./AdapterConfig");
|
|
7
|
+
const AdapterFactory_1 = require("./AdapterFactory");
|
|
39
8
|
/**
|
|
40
9
|
* AgentDB Manager
|
|
41
10
|
*
|
|
42
|
-
* Production-ready implementation
|
|
11
|
+
* Production-ready implementation with explicit adapter configuration.
|
|
43
12
|
* Replaces 2,290 lines of custom QUIC and Neural code.
|
|
13
|
+
*
|
|
14
|
+
* @version 2.0.0 - Explicit adapter configuration with fail-fast validation
|
|
44
15
|
*/
|
|
45
16
|
class AgentDBManager {
|
|
46
17
|
constructor(config) {
|
|
18
|
+
this.adapter = null;
|
|
47
19
|
this.isInitialized = false;
|
|
48
20
|
this.config = config;
|
|
49
21
|
this.logger = { warn: console.warn, info: console.info, error: console.error };
|
|
22
|
+
// Resolve adapter configuration
|
|
23
|
+
this.adapterConfig = this.resolveAdapterConfig(config);
|
|
50
24
|
}
|
|
51
25
|
/**
|
|
52
|
-
*
|
|
26
|
+
* Resolve adapter configuration from AgentDBConfig
|
|
27
|
+
*/
|
|
28
|
+
resolveAdapterConfig(config) {
|
|
29
|
+
// If adapter config is provided, use it directly
|
|
30
|
+
if (config.adapter) {
|
|
31
|
+
return config.adapter;
|
|
32
|
+
}
|
|
33
|
+
// Legacy support: derive from dbPath (DEPRECATED)
|
|
34
|
+
if (config.dbPath) {
|
|
35
|
+
console.warn('[AgentDBManager] Using legacy dbPath configuration. ' +
|
|
36
|
+
'Please migrate to explicit adapter configuration:\n' +
|
|
37
|
+
' adapter: { type: AdapterType.REAL, dbPath: "..." }');
|
|
38
|
+
return {
|
|
39
|
+
type: AdapterConfig_1.AdapterType.REAL,
|
|
40
|
+
dbPath: config.dbPath,
|
|
41
|
+
dimension: 384,
|
|
42
|
+
failFast: true,
|
|
43
|
+
validateOnStartup: true
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
// No configuration provided - use environment defaults
|
|
47
|
+
console.warn('[AgentDBManager] No adapter configuration provided. ' +
|
|
48
|
+
'Using environment-based defaults. ' +
|
|
49
|
+
'Set AQE_ADAPTER_TYPE=real or AQE_ADAPTER_TYPE=mock to be explicit.');
|
|
50
|
+
return AdapterConfig_1.AdapterConfigHelper.fromEnvironment();
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Initialize AgentDB adapter with explicit configuration
|
|
54
|
+
*
|
|
55
|
+
* @throws {AdapterConfigurationError} If adapter configuration is invalid
|
|
56
|
+
* @throws {Error} If adapter initialization fails
|
|
53
57
|
*/
|
|
54
58
|
async initialize() {
|
|
55
59
|
if (this.isInitialized) {
|
|
56
60
|
throw new Error('AgentDBManager already initialized');
|
|
57
61
|
}
|
|
58
|
-
// Validate dbPath for invalid characters (e.g., null bytes)
|
|
59
|
-
if (this.config.dbPath && this.config.dbPath.includes('\0')) {
|
|
60
|
-
throw new Error('Invalid dbPath: contains null byte');
|
|
61
|
-
}
|
|
62
62
|
try {
|
|
63
|
-
//
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const { createMockReasoningBankAdapter } = await Promise.resolve().then(() => __importStar(require('./ReasoningBankAdapter')));
|
|
69
|
-
this.adapter = createMockReasoningBankAdapter();
|
|
70
|
-
await this.adapter.initialize();
|
|
71
|
-
this.isInitialized = true;
|
|
72
|
-
console.log('[AgentDBManager] Using mock adapter (test mode)');
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
// Try to use real AgentDB (agentdb package)
|
|
76
|
-
try {
|
|
77
|
-
const { createRealAgentDBAdapter } = await Promise.resolve().then(() => __importStar(require('./RealAgentDBAdapter')));
|
|
78
|
-
this.adapter = createRealAgentDBAdapter({
|
|
79
|
-
dbPath: this.config.dbPath,
|
|
80
|
-
dimension: 384 // Standard dimension for embeddings
|
|
81
|
-
});
|
|
82
|
-
await this.adapter.initialize();
|
|
83
|
-
this.isInitialized = true;
|
|
84
|
-
console.log('[AgentDBManager] Using real AgentDB adapter');
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
catch (realError) {
|
|
88
|
-
console.warn('[AgentDBManager] Real AgentDB not available, trying fallback:', realError.message);
|
|
89
|
-
}
|
|
90
|
-
// Fallback to mock if real AgentDB fails
|
|
91
|
-
console.warn('[AgentDBManager] Using mock adapter as fallback');
|
|
92
|
-
const { createMockReasoningBankAdapter } = await Promise.resolve().then(() => __importStar(require('./ReasoningBankAdapter')));
|
|
93
|
-
this.adapter = createMockReasoningBankAdapter();
|
|
94
|
-
await this.adapter.initialize();
|
|
63
|
+
// Create adapter using factory
|
|
64
|
+
const result = await AdapterFactory_1.AdapterFactory.create(this.adapterConfig);
|
|
65
|
+
this.adapter = result.adapter;
|
|
66
|
+
// Validate adapter
|
|
67
|
+
await AdapterFactory_1.AdapterFactory.validate(this.adapter);
|
|
95
68
|
this.isInitialized = true;
|
|
69
|
+
console.log('[AgentDBManager] Initialized successfully', {
|
|
70
|
+
adapterType: result.type,
|
|
71
|
+
dbPath: result.config.dbPath,
|
|
72
|
+
dimension: result.config.dimension
|
|
73
|
+
});
|
|
96
74
|
}
|
|
97
75
|
catch (error) {
|
|
98
|
-
|
|
76
|
+
// Enhanced error message with troubleshooting guidance
|
|
77
|
+
if (error instanceof AdapterConfig_1.AdapterConfigurationError) {
|
|
78
|
+
throw error; // Already has detailed message
|
|
79
|
+
}
|
|
80
|
+
const errorMessage = [
|
|
81
|
+
'Failed to initialize AgentDBManager:',
|
|
82
|
+
` ${error.message}`,
|
|
83
|
+
'',
|
|
84
|
+
'Current configuration:',
|
|
85
|
+
` Adapter Type: ${this.adapterConfig.type}`,
|
|
86
|
+
` Database Path: ${this.adapterConfig.dbPath || 'N/A'}`,
|
|
87
|
+
` Fail Fast: ${this.adapterConfig.failFast !== false}`,
|
|
88
|
+
'',
|
|
89
|
+
'Troubleshooting:',
|
|
90
|
+
' 1. For production: Set AQE_ADAPTER_TYPE=real and ensure agentdb is installed',
|
|
91
|
+
' 2. For testing: Set AQE_ADAPTER_TYPE=mock',
|
|
92
|
+
' 3. Check database file permissions and disk space',
|
|
93
|
+
' 4. See docs/architecture/adapters.md for configuration guide'
|
|
94
|
+
].join('\n');
|
|
95
|
+
throw new Error(errorMessage);
|
|
99
96
|
}
|
|
100
97
|
}
|
|
101
98
|
/**
|
|
@@ -103,6 +100,8 @@ class AgentDBManager {
|
|
|
103
100
|
*/
|
|
104
101
|
async store(pattern) {
|
|
105
102
|
this.ensureInitialized();
|
|
103
|
+
if (!this.adapter)
|
|
104
|
+
throw new Error('Adapter not initialized');
|
|
106
105
|
try {
|
|
107
106
|
const patternId = await this.adapter.insertPattern(pattern);
|
|
108
107
|
return patternId;
|
|
@@ -116,6 +115,8 @@ class AgentDBManager {
|
|
|
116
115
|
*/
|
|
117
116
|
async retrieve(queryEmbedding, options) {
|
|
118
117
|
this.ensureInitialized();
|
|
118
|
+
if (!this.adapter)
|
|
119
|
+
throw new Error('Adapter not initialized');
|
|
119
120
|
try {
|
|
120
121
|
const startTime = Date.now();
|
|
121
122
|
const result = await this.adapter.retrieveWithReasoning(queryEmbedding, options);
|
|
@@ -151,9 +152,14 @@ class AgentDBManager {
|
|
|
151
152
|
*/
|
|
152
153
|
async train(options) {
|
|
153
154
|
this.ensureInitialized();
|
|
155
|
+
if (!this.adapter)
|
|
156
|
+
throw new Error('Adapter not initialized');
|
|
154
157
|
if (!this.config.enableLearning) {
|
|
155
158
|
throw new Error('Learning is not enabled. Set enableLearning: true in config.');
|
|
156
159
|
}
|
|
160
|
+
if (!this.adapter.train) {
|
|
161
|
+
throw new Error('Adapter does not support training');
|
|
162
|
+
}
|
|
157
163
|
try {
|
|
158
164
|
const metrics = await this.adapter.train(options);
|
|
159
165
|
return {
|
|
@@ -172,6 +178,8 @@ class AgentDBManager {
|
|
|
172
178
|
*/
|
|
173
179
|
async getStats() {
|
|
174
180
|
this.ensureInitialized();
|
|
181
|
+
if (!this.adapter)
|
|
182
|
+
throw new Error('Adapter not initialized');
|
|
175
183
|
try {
|
|
176
184
|
return await this.adapter.getStats();
|
|
177
185
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentDBManager.js","sourceRoot":"","sources":["../../../src/core/memory/AgentDBManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AgentDBManager.js","sourceRoot":"","sources":["../../../src/core/memory/AgentDBManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LRU Cache for Pattern Queries
|
|
3
|
+
* Issue: #52 - Optimize LearningEngine performance
|
|
4
|
+
*
|
|
5
|
+
* Provides in-memory caching for frequently accessed patterns
|
|
6
|
+
* with LRU eviction and TTL-based expiration.
|
|
7
|
+
*
|
|
8
|
+
* Performance: O(1) get/set operations
|
|
9
|
+
*/
|
|
10
|
+
import { Pattern } from './SwarmMemoryManager';
|
|
11
|
+
export interface CacheEntry {
|
|
12
|
+
patterns: Pattern[];
|
|
13
|
+
timestamp: number;
|
|
14
|
+
hits: number;
|
|
15
|
+
}
|
|
16
|
+
export interface CacheStats {
|
|
17
|
+
size: number;
|
|
18
|
+
maxSize: number;
|
|
19
|
+
hitRate: number;
|
|
20
|
+
missRate: number;
|
|
21
|
+
totalHits: number;
|
|
22
|
+
totalMisses: number;
|
|
23
|
+
ttl: number;
|
|
24
|
+
evictions: number;
|
|
25
|
+
}
|
|
26
|
+
export interface PatternCacheConfig {
|
|
27
|
+
maxSize?: number;
|
|
28
|
+
ttl?: number;
|
|
29
|
+
enableStats?: boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* LRU Cache for Pattern Storage
|
|
33
|
+
*
|
|
34
|
+
* Features:
|
|
35
|
+
* - O(1) get/set operations
|
|
36
|
+
* - LRU eviction when capacity reached
|
|
37
|
+
* - TTL-based expiration
|
|
38
|
+
* - Hit rate tracking
|
|
39
|
+
* - Agent-specific invalidation
|
|
40
|
+
*/
|
|
41
|
+
export declare class PatternCache {
|
|
42
|
+
private cache;
|
|
43
|
+
private readonly maxSize;
|
|
44
|
+
private readonly ttl;
|
|
45
|
+
private readonly enableStats;
|
|
46
|
+
private totalHits;
|
|
47
|
+
private totalMisses;
|
|
48
|
+
private evictions;
|
|
49
|
+
constructor(config?: PatternCacheConfig);
|
|
50
|
+
/**
|
|
51
|
+
* Get patterns from cache
|
|
52
|
+
* Returns null if not found or expired
|
|
53
|
+
*
|
|
54
|
+
* Complexity: O(1)
|
|
55
|
+
*/
|
|
56
|
+
get(key: string): Pattern[] | null;
|
|
57
|
+
/**
|
|
58
|
+
* Store patterns in cache
|
|
59
|
+
* Evicts least recently used entry if at capacity
|
|
60
|
+
*
|
|
61
|
+
* Complexity: O(1)
|
|
62
|
+
*/
|
|
63
|
+
set(key: string, patterns: Pattern[]): void;
|
|
64
|
+
/**
|
|
65
|
+
* Invalidate all cache entries for a specific agent
|
|
66
|
+
* Called when patterns are updated
|
|
67
|
+
*
|
|
68
|
+
* Complexity: O(n) where n = cache size
|
|
69
|
+
*/
|
|
70
|
+
invalidate(agentId: string): void;
|
|
71
|
+
/**
|
|
72
|
+
* Clear entire cache
|
|
73
|
+
*/
|
|
74
|
+
clear(): void;
|
|
75
|
+
/**
|
|
76
|
+
* Get cache statistics
|
|
77
|
+
*/
|
|
78
|
+
getStats(): CacheStats;
|
|
79
|
+
/**
|
|
80
|
+
* Check if key exists in cache (without affecting LRU order)
|
|
81
|
+
*/
|
|
82
|
+
has(key: string): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Get cache size
|
|
85
|
+
*/
|
|
86
|
+
size(): number;
|
|
87
|
+
/**
|
|
88
|
+
* Reset statistics
|
|
89
|
+
*/
|
|
90
|
+
resetStats(): void;
|
|
91
|
+
/**
|
|
92
|
+
* Get all cache keys (for debugging)
|
|
93
|
+
*/
|
|
94
|
+
keys(): string[];
|
|
95
|
+
/**
|
|
96
|
+
* Manually expire old entries
|
|
97
|
+
* Called periodically to clean up expired entries
|
|
98
|
+
*/
|
|
99
|
+
pruneExpired(): number;
|
|
100
|
+
/**
|
|
101
|
+
* Generate cache key for pattern queries
|
|
102
|
+
*/
|
|
103
|
+
static generateKey(agentId: string, minConfidence: number): string;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=PatternCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PatternCache.d.ts","sourceRoot":"","sources":["../../../src/core/memory/PatternCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IAGtC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,SAAS,CAAK;gBAEV,MAAM,GAAE,kBAAuB;IAM3C;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,IAAI;IA0BlC;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAiB3C;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAYjC;;OAEG;IACH,KAAK,IAAI,IAAI;IASb;;OAEG;IACH,QAAQ,IAAI,UAAU;IAiBtB;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQzB;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB;;OAEG;IACH,IAAI,IAAI,MAAM,EAAE;IAIhB;;;OAGG;IACH,YAAY,IAAI,MAAM;IActB;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;CAGnE"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* LRU Cache for Pattern Queries
|
|
4
|
+
* Issue: #52 - Optimize LearningEngine performance
|
|
5
|
+
*
|
|
6
|
+
* Provides in-memory caching for frequently accessed patterns
|
|
7
|
+
* with LRU eviction and TTL-based expiration.
|
|
8
|
+
*
|
|
9
|
+
* Performance: O(1) get/set operations
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.PatternCache = void 0;
|
|
13
|
+
/**
|
|
14
|
+
* LRU Cache for Pattern Storage
|
|
15
|
+
*
|
|
16
|
+
* Features:
|
|
17
|
+
* - O(1) get/set operations
|
|
18
|
+
* - LRU eviction when capacity reached
|
|
19
|
+
* - TTL-based expiration
|
|
20
|
+
* - Hit rate tracking
|
|
21
|
+
* - Agent-specific invalidation
|
|
22
|
+
*/
|
|
23
|
+
class PatternCache {
|
|
24
|
+
constructor(config = {}) {
|
|
25
|
+
this.cache = new Map();
|
|
26
|
+
// Statistics
|
|
27
|
+
this.totalHits = 0;
|
|
28
|
+
this.totalMisses = 0;
|
|
29
|
+
this.evictions = 0;
|
|
30
|
+
this.maxSize = config.maxSize || 100;
|
|
31
|
+
this.ttl = config.ttl || 60000; // Default: 60 seconds
|
|
32
|
+
this.enableStats = config.enableStats ?? true;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get patterns from cache
|
|
36
|
+
* Returns null if not found or expired
|
|
37
|
+
*
|
|
38
|
+
* Complexity: O(1)
|
|
39
|
+
*/
|
|
40
|
+
get(key) {
|
|
41
|
+
const entry = this.cache.get(key);
|
|
42
|
+
if (!entry) {
|
|
43
|
+
if (this.enableStats)
|
|
44
|
+
this.totalMisses++;
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
// Check TTL expiration
|
|
48
|
+
if (Date.now() - entry.timestamp > this.ttl) {
|
|
49
|
+
this.cache.delete(key);
|
|
50
|
+
if (this.enableStats)
|
|
51
|
+
this.totalMisses++;
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
// LRU: Move to end (most recently used)
|
|
55
|
+
this.cache.delete(key);
|
|
56
|
+
this.cache.set(key, {
|
|
57
|
+
...entry,
|
|
58
|
+
hits: entry.hits + 1
|
|
59
|
+
});
|
|
60
|
+
if (this.enableStats)
|
|
61
|
+
this.totalHits++;
|
|
62
|
+
return entry.patterns;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Store patterns in cache
|
|
66
|
+
* Evicts least recently used entry if at capacity
|
|
67
|
+
*
|
|
68
|
+
* Complexity: O(1)
|
|
69
|
+
*/
|
|
70
|
+
set(key, patterns) {
|
|
71
|
+
// Evict oldest entry if at max size
|
|
72
|
+
if (this.cache.size >= this.maxSize) {
|
|
73
|
+
const firstKey = this.cache.keys().next().value;
|
|
74
|
+
if (firstKey) {
|
|
75
|
+
this.cache.delete(firstKey);
|
|
76
|
+
if (this.enableStats)
|
|
77
|
+
this.evictions++;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
this.cache.set(key, {
|
|
81
|
+
patterns,
|
|
82
|
+
timestamp: Date.now(),
|
|
83
|
+
hits: 0
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Invalidate all cache entries for a specific agent
|
|
88
|
+
* Called when patterns are updated
|
|
89
|
+
*
|
|
90
|
+
* Complexity: O(n) where n = cache size
|
|
91
|
+
*/
|
|
92
|
+
invalidate(agentId) {
|
|
93
|
+
const keysToDelete = [];
|
|
94
|
+
for (const key of this.cache.keys()) {
|
|
95
|
+
if (key.startsWith(`patterns:${agentId}:`)) {
|
|
96
|
+
keysToDelete.push(key);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
keysToDelete.forEach(key => this.cache.delete(key));
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Clear entire cache
|
|
103
|
+
*/
|
|
104
|
+
clear() {
|
|
105
|
+
this.cache.clear();
|
|
106
|
+
if (this.enableStats) {
|
|
107
|
+
this.totalHits = 0;
|
|
108
|
+
this.totalMisses = 0;
|
|
109
|
+
this.evictions = 0;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Get cache statistics
|
|
114
|
+
*/
|
|
115
|
+
getStats() {
|
|
116
|
+
const total = this.totalHits + this.totalMisses;
|
|
117
|
+
const hitRate = total > 0 ? this.totalHits / total : 0;
|
|
118
|
+
const missRate = total > 0 ? this.totalMisses / total : 0;
|
|
119
|
+
return {
|
|
120
|
+
size: this.cache.size,
|
|
121
|
+
maxSize: this.maxSize,
|
|
122
|
+
hitRate,
|
|
123
|
+
missRate,
|
|
124
|
+
totalHits: this.totalHits,
|
|
125
|
+
totalMisses: this.totalMisses,
|
|
126
|
+
ttl: this.ttl,
|
|
127
|
+
evictions: this.evictions
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Check if key exists in cache (without affecting LRU order)
|
|
132
|
+
*/
|
|
133
|
+
has(key) {
|
|
134
|
+
const entry = this.cache.get(key);
|
|
135
|
+
if (!entry)
|
|
136
|
+
return false;
|
|
137
|
+
// Check expiration
|
|
138
|
+
return Date.now() - entry.timestamp <= this.ttl;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Get cache size
|
|
142
|
+
*/
|
|
143
|
+
size() {
|
|
144
|
+
return this.cache.size;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Reset statistics
|
|
148
|
+
*/
|
|
149
|
+
resetStats() {
|
|
150
|
+
this.totalHits = 0;
|
|
151
|
+
this.totalMisses = 0;
|
|
152
|
+
this.evictions = 0;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Get all cache keys (for debugging)
|
|
156
|
+
*/
|
|
157
|
+
keys() {
|
|
158
|
+
return Array.from(this.cache.keys());
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Manually expire old entries
|
|
162
|
+
* Called periodically to clean up expired entries
|
|
163
|
+
*/
|
|
164
|
+
pruneExpired() {
|
|
165
|
+
const now = Date.now();
|
|
166
|
+
const keysToDelete = [];
|
|
167
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
168
|
+
if (now - entry.timestamp > this.ttl) {
|
|
169
|
+
keysToDelete.push(key);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
keysToDelete.forEach(key => this.cache.delete(key));
|
|
173
|
+
return keysToDelete.length;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Generate cache key for pattern queries
|
|
177
|
+
*/
|
|
178
|
+
static generateKey(agentId, minConfidence) {
|
|
179
|
+
return `patterns:${agentId}:${minConfidence}`;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
exports.PatternCache = PatternCache;
|
|
183
|
+
//# sourceMappingURL=PatternCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PatternCache.js","sourceRoot":"","sources":["../../../src/core/memory/PatternCache.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AA2BH;;;;;;;;;GASG;AACH,MAAa,YAAY;IAWvB,YAAY,SAA6B,EAAE;QAVnC,UAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;QAK9C,aAAa;QACL,cAAS,GAAG,CAAC,CAAC;QACd,gBAAW,GAAG,CAAC,CAAC;QAChB,cAAS,GAAG,CAAC,CAAC;QAGpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC;QACrC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,sBAAsB;QACtD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,GAAW;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,IAAI,CAAC,WAAW;gBAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,IAAI,CAAC,WAAW;gBAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,GAAG,KAAK;YACR,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC;SACrB,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,GAAW,EAAE,QAAmB;QAClC,oCAAoC;QACpC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAChD,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5B,IAAI,IAAI,CAAC,WAAW;oBAAE,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,IAAI,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,OAAe;QACxB,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,OAAO,GAAG,CAAC,EAAE,CAAC;gBAC3C,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;QAChD,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1D,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO;YACP,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAEzB,mBAAmB;QACnB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,YAAY;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACrC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,OAAO,YAAY,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,OAAe,EAAE,aAAqB;QACvD,OAAO,YAAY,OAAO,IAAI,aAAa,EAAE,CAAC;IAChD,CAAC;CACF;AApLD,oCAoLC"}
|
|
@@ -52,9 +52,15 @@ export declare class RealAgentDBAdapter {
|
|
|
52
52
|
*/
|
|
53
53
|
insertPattern(pattern: any): Promise<string>;
|
|
54
54
|
/**
|
|
55
|
-
* Execute raw SQL query
|
|
55
|
+
* Execute raw SQL query with parameterized values
|
|
56
|
+
* WARNING: Only use with trusted SQL. This method validates SQL to prevent injection.
|
|
56
57
|
*/
|
|
57
58
|
query(sql: string, params?: any[]): Promise<any[]>;
|
|
59
|
+
/**
|
|
60
|
+
* Validate SQL query for basic safety checks
|
|
61
|
+
* Prevents common SQL injection patterns
|
|
62
|
+
*/
|
|
63
|
+
private validateSQL;
|
|
58
64
|
}
|
|
59
65
|
/**
|
|
60
66
|
* Create a real AgentDB adapter
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RealAgentDBAdapter.d.ts","sourceRoot":"","sources":["../../../src/core/memory/RealAgentDBAdapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAIzF,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,EAAE,CAAM;IAChB,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IAK1D;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuCjC;;OAEG;YACW,mBAAmB;IAgBjC;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"RealAgentDBAdapter.d.ts","sourceRoot":"","sources":["../../../src/core/memory/RealAgentDBAdapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAIzF,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,EAAE,CAAM;IAChB,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IAK1D;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuCjC;;OAEG;YACW,mBAAmB;IAgBjC;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAuE9C;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA6BxD;;OAEG;IACG,qBAAqB,CACzB,cAAc,EAAE,MAAM,EAAE,EACxB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC;IA4G3B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC;IAuB9B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAc5B;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlD;;;OAGG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IA8C5D;;;OAGG;IACH,OAAO,CAAC,WAAW;CA8BpB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,kBAAkB,CAErB"}
|