agentic-qe 1.7.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/.claude/skills/sherlock-review/SKILL.md +786 -0
- package/CHANGELOG.md +625 -0
- package/README.md +42 -55
- package/dist/agents/BaseAgent.d.ts +10 -10
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +96 -78
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.js +2 -2
- package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
- package/dist/agents/LearningAgent.d.ts +2 -2
- package/dist/agents/LearningAgent.d.ts.map +1 -1
- package/dist/agents/LearningAgent.js +4 -4
- package/dist/agents/LearningAgent.js.map +1 -1
- package/dist/agents/TestExecutorAgent.d.ts +41 -2
- package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
- package/dist/agents/TestExecutorAgent.js +314 -64
- package/dist/agents/TestExecutorAgent.js.map +1 -1
- package/dist/agents/examples/batchAnalyze.d.ts +252 -0
- package/dist/agents/examples/batchAnalyze.d.ts.map +1 -0
- package/dist/agents/examples/batchAnalyze.js +259 -0
- package/dist/agents/examples/batchAnalyze.js.map +1 -0
- package/dist/agents/examples/batchGenerate.d.ts +153 -0
- package/dist/agents/examples/batchGenerate.d.ts.map +1 -0
- package/dist/agents/examples/batchGenerate.js +166 -0
- package/dist/agents/examples/batchGenerate.js.map +1 -0
- package/dist/agents/generateWithPII.d.ts +128 -0
- package/dist/agents/generateWithPII.d.ts.map +1 -0
- package/dist/agents/generateWithPII.js +175 -0
- package/dist/agents/generateWithPII.js.map +1 -0
- 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/cli/commands/init.d.ts +6 -3
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +51 -46
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/learn/index.d.ts +4 -0
- package/dist/cli/commands/learn/index.d.ts.map +1 -1
- package/dist/cli/commands/learn/index.js +57 -0
- package/dist/cli/commands/learn/index.js.map +1 -1
- package/dist/cli/index.js +14 -0
- package/dist/cli/index.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 +28 -5
- package/dist/core/memory/AgentDBManager.d.ts.map +1 -1
- package/dist/core/memory/AgentDBManager.js +99 -73
- 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 +14 -0
- package/dist/core/memory/RealAgentDBAdapter.d.ts.map +1 -1
- package/dist/core/memory/RealAgentDBAdapter.js +153 -16
- package/dist/core/memory/RealAgentDBAdapter.js.map +1 -1
- package/dist/core/memory/ReasoningBankAdapter.d.ts +4 -0
- package/dist/core/memory/ReasoningBankAdapter.d.ts.map +1 -1
- package/dist/core/memory/ReasoningBankAdapter.js +20 -0
- package/dist/core/memory/ReasoningBankAdapter.js.map +1 -1
- package/dist/core/memory/SwarmMemoryManager.d.ts +8 -0
- package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
- package/dist/core/memory/SwarmMemoryManager.js +33 -0
- package/dist/core/memory/SwarmMemoryManager.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/dist/learning/ImprovementLoop.js +2 -2
- package/dist/learning/ImprovementLoop.js.map +1 -1
- package/dist/learning/LearningEngine.d.ts +11 -7
- package/dist/learning/LearningEngine.d.ts.map +1 -1
- package/dist/learning/LearningEngine.js +156 -72
- package/dist/learning/LearningEngine.js.map +1 -1
- package/dist/mcp/handlers/filtered/coverage-analyzer-filtered.d.ts +83 -0
- package/dist/mcp/handlers/filtered/coverage-analyzer-filtered.d.ts.map +1 -0
- package/dist/mcp/handlers/filtered/coverage-analyzer-filtered.js +130 -0
- package/dist/mcp/handlers/filtered/coverage-analyzer-filtered.js.map +1 -0
- package/dist/mcp/handlers/filtered/flaky-detector-filtered.d.ts +58 -0
- package/dist/mcp/handlers/filtered/flaky-detector-filtered.d.ts.map +1 -0
- package/dist/mcp/handlers/filtered/flaky-detector-filtered.js +84 -0
- package/dist/mcp/handlers/filtered/flaky-detector-filtered.js.map +1 -0
- package/dist/mcp/handlers/filtered/index.d.ts +47 -0
- package/dist/mcp/handlers/filtered/index.d.ts.map +1 -0
- package/dist/mcp/handlers/filtered/index.js +63 -0
- package/dist/mcp/handlers/filtered/index.js.map +1 -0
- package/dist/mcp/handlers/filtered/performance-tester-filtered.d.ts +57 -0
- package/dist/mcp/handlers/filtered/performance-tester-filtered.d.ts.map +1 -0
- package/dist/mcp/handlers/filtered/performance-tester-filtered.js +83 -0
- package/dist/mcp/handlers/filtered/performance-tester-filtered.js.map +1 -0
- package/dist/mcp/handlers/filtered/quality-assessor-filtered.d.ts +57 -0
- package/dist/mcp/handlers/filtered/quality-assessor-filtered.d.ts.map +1 -0
- package/dist/mcp/handlers/filtered/quality-assessor-filtered.js +93 -0
- package/dist/mcp/handlers/filtered/quality-assessor-filtered.js.map +1 -0
- package/dist/mcp/handlers/filtered/security-scanner-filtered.d.ts +54 -0
- package/dist/mcp/handlers/filtered/security-scanner-filtered.d.ts.map +1 -0
- package/dist/mcp/handlers/filtered/security-scanner-filtered.js +73 -0
- package/dist/mcp/handlers/filtered/security-scanner-filtered.js.map +1 -0
- package/dist/mcp/handlers/filtered/test-executor-filtered.d.ts +61 -0
- package/dist/mcp/handlers/filtered/test-executor-filtered.d.ts.map +1 -0
- package/dist/mcp/handlers/filtered/test-executor-filtered.js +117 -0
- package/dist/mcp/handlers/filtered/test-executor-filtered.js.map +1 -0
- package/dist/mcp/handlers/phase2/Phase2Tools.js +2 -2
- package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -1
- package/dist/scripts/backup-helper.d.ts +64 -0
- package/dist/scripts/backup-helper.d.ts.map +1 -0
- package/dist/scripts/backup-helper.js +251 -0
- package/dist/scripts/backup-helper.js.map +1 -0
- package/dist/scripts/migrate-with-backup.d.ts +15 -0
- package/dist/scripts/migrate-with-backup.d.ts.map +1 -0
- package/dist/scripts/migrate-with-backup.js +194 -0
- package/dist/scripts/migrate-with-backup.js.map +1 -0
- package/dist/security/pii-tokenization.d.ts +216 -0
- package/dist/security/pii-tokenization.d.ts.map +1 -0
- package/dist/security/pii-tokenization.js +325 -0
- package/dist/security/pii-tokenization.js.map +1 -0
- package/dist/utils/EmbeddingGenerator.d.ts +35 -0
- package/dist/utils/EmbeddingGenerator.d.ts.map +1 -0
- package/dist/utils/EmbeddingGenerator.js +72 -0
- package/dist/utils/EmbeddingGenerator.js.map +1 -0
- package/dist/utils/batch-operations.d.ts +215 -0
- package/dist/utils/batch-operations.d.ts.map +1 -0
- package/dist/utils/batch-operations.js +266 -0
- package/dist/utils/batch-operations.js.map +1 -0
- package/dist/utils/filtering.d.ts +180 -0
- package/dist/utils/filtering.d.ts.map +1 -0
- package/dist/utils/filtering.js +288 -0
- package/dist/utils/filtering.js.map +1 -0
- package/dist/utils/prompt-cache-examples.d.ts +111 -0
- package/dist/utils/prompt-cache-examples.d.ts.map +1 -0
- package/dist/utils/prompt-cache-examples.js +416 -0
- package/dist/utils/prompt-cache-examples.js.map +1 -0
- package/dist/utils/prompt-cache.d.ts +305 -0
- package/dist/utils/prompt-cache.d.ts.map +1 -0
- package/dist/utils/prompt-cache.js +448 -0
- package/dist/utils/prompt-cache.js.map +1 -0
- package/package.json +7 -16
- 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
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Adapter Factory - Strict Adapter Creation
|
|
4
|
+
*
|
|
5
|
+
* Architecture Decision: Fail-fast on misconfiguration
|
|
6
|
+
* - No silent fallbacks
|
|
7
|
+
* - Explicit error messages
|
|
8
|
+
* - Type-safe adapter creation
|
|
9
|
+
*
|
|
10
|
+
* @module AdapterFactory
|
|
11
|
+
* @version 1.0.0
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.AdapterFactory = void 0;
|
|
15
|
+
const AdapterConfig_1 = require("./AdapterConfig");
|
|
16
|
+
const RealAgentDBAdapter_1 = require("./RealAgentDBAdapter");
|
|
17
|
+
const ReasoningBankAdapter_1 = require("./ReasoningBankAdapter");
|
|
18
|
+
/**
|
|
19
|
+
* Adapter Factory
|
|
20
|
+
*/
|
|
21
|
+
class AdapterFactory {
|
|
22
|
+
/**
|
|
23
|
+
* Create adapter from configuration
|
|
24
|
+
*
|
|
25
|
+
* @throws {AdapterConfigurationError} If configuration is invalid
|
|
26
|
+
* @throws {Error} If adapter creation fails
|
|
27
|
+
*/
|
|
28
|
+
static async create(config) {
|
|
29
|
+
// Validate configuration
|
|
30
|
+
if (config.validateOnStartup !== false) {
|
|
31
|
+
AdapterConfig_1.AdapterConfigValidator.validateOrThrow(config);
|
|
32
|
+
}
|
|
33
|
+
// Create adapter based on type
|
|
34
|
+
const adapter = await this.createAdapter(config);
|
|
35
|
+
return {
|
|
36
|
+
adapter,
|
|
37
|
+
type: config.type,
|
|
38
|
+
config
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Create adapter instance
|
|
43
|
+
*/
|
|
44
|
+
static async createAdapter(config) {
|
|
45
|
+
switch (config.type) {
|
|
46
|
+
case AdapterConfig_1.AdapterType.REAL:
|
|
47
|
+
return this.createRealAdapter(config);
|
|
48
|
+
case AdapterConfig_1.AdapterType.MOCK:
|
|
49
|
+
return this.createMockAdapter(config);
|
|
50
|
+
case AdapterConfig_1.AdapterType.AUTO:
|
|
51
|
+
return this.createAutoAdapter(config);
|
|
52
|
+
default:
|
|
53
|
+
throw new AdapterConfig_1.AdapterConfigurationError(`Unknown adapter type: ${config.type}`, [`Unsupported adapter type: ${config.type}`]);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Create real AgentDB adapter
|
|
58
|
+
*/
|
|
59
|
+
static async createRealAdapter(config) {
|
|
60
|
+
if (!config.dbPath) {
|
|
61
|
+
throw new AdapterConfig_1.AdapterConfigurationError('dbPath is required for AdapterType.REAL', ['dbPath must be specified for real adapter']);
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
const adapter = new RealAgentDBAdapter_1.RealAgentDBAdapter({
|
|
65
|
+
dbPath: config.dbPath,
|
|
66
|
+
dimension: config.dimension || 384
|
|
67
|
+
});
|
|
68
|
+
await adapter.initialize();
|
|
69
|
+
console.log('[AdapterFactory] Created REAL adapter', {
|
|
70
|
+
dbPath: config.dbPath,
|
|
71
|
+
dimension: config.dimension || 384
|
|
72
|
+
});
|
|
73
|
+
return adapter;
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
const errorMessage = [
|
|
77
|
+
'Failed to create real AgentDB adapter:',
|
|
78
|
+
` Reason: ${error.message}`,
|
|
79
|
+
'',
|
|
80
|
+
'Common causes:',
|
|
81
|
+
' 1. agentdb package not installed: npm install agentdb',
|
|
82
|
+
' 2. Database file path not writable',
|
|
83
|
+
' 3. Insufficient disk space',
|
|
84
|
+
'',
|
|
85
|
+
'To use mock adapter for testing, set AQE_ADAPTER_TYPE=mock'
|
|
86
|
+
].join('\n');
|
|
87
|
+
if (config.failFast !== false) {
|
|
88
|
+
throw new Error(errorMessage);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
console.error(`[AdapterFactory] ${errorMessage}`);
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Create mock adapter (for testing)
|
|
98
|
+
*/
|
|
99
|
+
static async createMockAdapter(config) {
|
|
100
|
+
const adapter = new ReasoningBankAdapter_1.ReasoningBankAdapter();
|
|
101
|
+
await adapter.initialize();
|
|
102
|
+
console.log('[AdapterFactory] Created MOCK adapter (in-memory only)', {
|
|
103
|
+
dimension: config.dimension || 384
|
|
104
|
+
});
|
|
105
|
+
return adapter;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Create adapter with auto-detection (DEPRECATED)
|
|
109
|
+
*/
|
|
110
|
+
static async createAutoAdapter(config) {
|
|
111
|
+
console.warn('[AdapterFactory] AUTO adapter detection is deprecated. ' +
|
|
112
|
+
'Please use explicit AdapterType.REAL or AdapterType.MOCK.');
|
|
113
|
+
// Try real adapter first
|
|
114
|
+
try {
|
|
115
|
+
const realConfig = { ...config, type: AdapterConfig_1.AdapterType.REAL };
|
|
116
|
+
return await this.createRealAdapter(realConfig);
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
console.warn('[AdapterFactory] Real adapter failed, falling back to mock:', error);
|
|
120
|
+
// Fallback to mock
|
|
121
|
+
const mockConfig = { ...config, type: AdapterConfig_1.AdapterType.MOCK };
|
|
122
|
+
return await this.createMockAdapter(mockConfig);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Validate adapter at runtime
|
|
127
|
+
*/
|
|
128
|
+
static async validate(adapter) {
|
|
129
|
+
if (!adapter) {
|
|
130
|
+
throw new Error('Adapter is null or undefined');
|
|
131
|
+
}
|
|
132
|
+
if (!adapter.initialized) {
|
|
133
|
+
throw new Error('Adapter is not initialized');
|
|
134
|
+
}
|
|
135
|
+
// Check required methods
|
|
136
|
+
const requiredMethods = ['store', 'retrieveWithReasoning', 'getStats', 'query', 'close'];
|
|
137
|
+
for (const method of requiredMethods) {
|
|
138
|
+
if (typeof adapter[method] !== 'function') {
|
|
139
|
+
throw new Error(`Adapter missing required method: ${method}`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// Test adapter with basic operation
|
|
143
|
+
try {
|
|
144
|
+
await adapter.getStats();
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
throw new Error(`Adapter validation failed: ${error.message}`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
exports.AdapterFactory = AdapterFactory;
|
|
152
|
+
//# sourceMappingURL=AdapterFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdapterFactory.js","sourceRoot":"","sources":["../../../src/core/memory/AdapterFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
import { AdapterConfig } from './AdapterConfig';
|
|
1
2
|
/**
|
|
2
3
|
* AgentDB Manager - Production-Ready Memory Management
|
|
3
4
|
*
|
|
4
|
-
*
|
|
5
|
+
* Architecture v2.0: Explicit Adapter Configuration
|
|
6
|
+
* - No silent fallbacks to mock adapters
|
|
7
|
+
* - Fail-fast on misconfiguration
|
|
8
|
+
* - Clear error messages for troubleshooting
|
|
9
|
+
*
|
|
5
10
|
* Features:
|
|
6
11
|
* - QUIC synchronization (<1ms latency)
|
|
7
12
|
* - Neural training (9 RL algorithms)
|
|
@@ -15,13 +20,16 @@
|
|
|
15
20
|
* - Batch Insert: 2ms for 100 patterns
|
|
16
21
|
*
|
|
17
22
|
* @module AgentDBManager
|
|
23
|
+
* @version 2.0.0
|
|
18
24
|
*/
|
|
19
25
|
/**
|
|
20
26
|
* AgentDB Configuration Interface
|
|
21
27
|
*/
|
|
22
28
|
export interface AgentDBConfig {
|
|
23
|
-
/**
|
|
24
|
-
|
|
29
|
+
/** Adapter configuration (REQUIRED in v2.0.0+) */
|
|
30
|
+
adapter?: AdapterConfig;
|
|
31
|
+
/** Path to SQLite database file (DEPRECATED - use adapter.dbPath) */
|
|
32
|
+
dbPath?: string;
|
|
25
33
|
/** Enable QUIC synchronization (<1ms latency) */
|
|
26
34
|
enableQUICSync: boolean;
|
|
27
35
|
/** QUIC server port (default: 4433) */
|
|
@@ -139,17 +147,27 @@ export interface TrainingOptions {
|
|
|
139
147
|
/**
|
|
140
148
|
* AgentDB Manager
|
|
141
149
|
*
|
|
142
|
-
* Production-ready implementation
|
|
150
|
+
* Production-ready implementation with explicit adapter configuration.
|
|
143
151
|
* Replaces 2,290 lines of custom QUIC and Neural code.
|
|
152
|
+
*
|
|
153
|
+
* @version 2.0.0 - Explicit adapter configuration with fail-fast validation
|
|
144
154
|
*/
|
|
145
155
|
export declare class AgentDBManager {
|
|
146
156
|
private adapter;
|
|
147
157
|
private config;
|
|
158
|
+
private adapterConfig;
|
|
148
159
|
private isInitialized;
|
|
149
160
|
private logger;
|
|
150
161
|
constructor(config: AgentDBConfig);
|
|
151
162
|
/**
|
|
152
|
-
*
|
|
163
|
+
* Resolve adapter configuration from AgentDBConfig
|
|
164
|
+
*/
|
|
165
|
+
private resolveAdapterConfig;
|
|
166
|
+
/**
|
|
167
|
+
* Initialize AgentDB adapter with explicit configuration
|
|
168
|
+
*
|
|
169
|
+
* @throws {AdapterConfigurationError} If adapter configuration is invalid
|
|
170
|
+
* @throws {Error} If adapter initialization fails
|
|
153
171
|
*/
|
|
154
172
|
initialize(): Promise<void>;
|
|
155
173
|
/**
|
|
@@ -192,6 +210,11 @@ export declare class AgentDBManager {
|
|
|
192
210
|
* Retrieve patterns (alias for retrieve() for test compatibility)
|
|
193
211
|
*/
|
|
194
212
|
retrievePatterns(query: string, options: RetrievalOptions): Promise<RetrievalResult>;
|
|
213
|
+
/**
|
|
214
|
+
* Execute raw SQL query on the database
|
|
215
|
+
* For CLI queries and advanced analytics
|
|
216
|
+
*/
|
|
217
|
+
query(sql: string, params?: any[]): Promise<any[]>;
|
|
195
218
|
}
|
|
196
219
|
/**
|
|
197
220
|
* Create AgentDB Manager with default configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentDBManager.d.ts","sourceRoot":"","sources":["../../../src/core/memory/AgentDBManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AgentDBManager.d.ts","sourceRoot":"","sources":["../../../src/core/memory/AgentDBManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
}
|
|
@@ -224,6 +232,23 @@ class AgentDBManager {
|
|
|
224
232
|
const queryEmbedding = Array.from({ length: 384 }, () => SecureRandom_js_1.SecureRandom.randomFloat());
|
|
225
233
|
return this.retrieve(queryEmbedding, options);
|
|
226
234
|
}
|
|
235
|
+
/**
|
|
236
|
+
* Execute raw SQL query on the database
|
|
237
|
+
* For CLI queries and advanced analytics
|
|
238
|
+
*/
|
|
239
|
+
async query(sql, params = []) {
|
|
240
|
+
this.ensureInitialized();
|
|
241
|
+
try {
|
|
242
|
+
if (this.adapter && typeof this.adapter.query === 'function') {
|
|
243
|
+
return await this.adapter.query(sql, params);
|
|
244
|
+
}
|
|
245
|
+
// Fallback for adapters without direct query support
|
|
246
|
+
throw new Error('Direct SQL queries not supported by current adapter');
|
|
247
|
+
}
|
|
248
|
+
catch (error) {
|
|
249
|
+
throw new Error(`Failed to execute query: ${error.message}`);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
227
252
|
}
|
|
228
253
|
exports.AgentDBManager = AgentDBManager;
|
|
229
254
|
/**
|
|
@@ -231,7 +256,8 @@ exports.AgentDBManager = AgentDBManager;
|
|
|
231
256
|
*/
|
|
232
257
|
function createAgentDBManager(overrides = {}) {
|
|
233
258
|
const defaultConfig = {
|
|
234
|
-
|
|
259
|
+
// Updated default path to use .agentic-qe directory for consolidation
|
|
260
|
+
dbPath: '.agentic-qe/agentdb.db',
|
|
235
261
|
enableQUICSync: false,
|
|
236
262
|
syncPort: 4433,
|
|
237
263
|
syncPeers: [],
|
|
@@ -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"}
|