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.
Files changed (47) hide show
  1. package/CHANGELOG.md +94 -0
  2. package/README.md +36 -65
  3. package/dist/agents/BaseAgent.d.ts +2 -0
  4. package/dist/agents/BaseAgent.d.ts.map +1 -1
  5. package/dist/agents/BaseAgent.js +55 -35
  6. package/dist/agents/BaseAgent.js.map +1 -1
  7. package/dist/agents/TestExecutorAgent.d.ts +32 -2
  8. package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
  9. package/dist/agents/TestExecutorAgent.js +254 -64
  10. package/dist/agents/TestExecutorAgent.js.map +1 -1
  11. package/dist/agents/lifecycle/AgentLifecycleManager.d.ts +1 -6
  12. package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -1
  13. package/dist/agents/lifecycle/AgentLifecycleManager.js +0 -7
  14. package/dist/agents/lifecycle/AgentLifecycleManager.js.map +1 -1
  15. package/dist/core/memory/AdapterConfig.d.ts +108 -0
  16. package/dist/core/memory/AdapterConfig.d.ts.map +1 -0
  17. package/dist/core/memory/AdapterConfig.js +189 -0
  18. package/dist/core/memory/AdapterConfig.js.map +1 -0
  19. package/dist/core/memory/AdapterFactory.d.ts +72 -0
  20. package/dist/core/memory/AdapterFactory.d.ts.map +1 -0
  21. package/dist/core/memory/AdapterFactory.js +152 -0
  22. package/dist/core/memory/AdapterFactory.js.map +1 -0
  23. package/dist/core/memory/AgentDBManager.d.ts +23 -5
  24. package/dist/core/memory/AgentDBManager.d.ts.map +1 -1
  25. package/dist/core/memory/AgentDBManager.js +80 -72
  26. package/dist/core/memory/AgentDBManager.js.map +1 -1
  27. package/dist/core/memory/PatternCache.d.ts +105 -0
  28. package/dist/core/memory/PatternCache.d.ts.map +1 -0
  29. package/dist/core/memory/PatternCache.js +183 -0
  30. package/dist/core/memory/PatternCache.js.map +1 -0
  31. package/dist/core/memory/RealAgentDBAdapter.d.ts +7 -1
  32. package/dist/core/memory/RealAgentDBAdapter.d.ts.map +1 -1
  33. package/dist/core/memory/RealAgentDBAdapter.js +99 -19
  34. package/dist/core/memory/RealAgentDBAdapter.js.map +1 -1
  35. package/dist/core/memory/index.d.ts +6 -0
  36. package/dist/core/memory/index.d.ts.map +1 -1
  37. package/dist/core/memory/index.js +12 -1
  38. package/dist/core/memory/index.js.map +1 -1
  39. package/dist/core/neural/NeuralTrainer.d.ts +2 -6
  40. package/dist/core/neural/NeuralTrainer.d.ts.map +1 -1
  41. package/dist/core/neural/NeuralTrainer.js +7 -25
  42. package/dist/core/neural/NeuralTrainer.js.map +1 -1
  43. package/package.json +2 -14
  44. package/dist/mcp/tools/deprecated.d.ts +0 -1390
  45. package/dist/mcp/tools/deprecated.d.ts.map +0 -1
  46. package/dist/mcp/tools/deprecated.js +0 -859
  47. 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 using agentic-flow/reasoningbank.
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
- * Initialize AgentDB adapter
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
- // Check if we're in test mode (use mock adapter)
64
- const isTestMode = process.env.NODE_ENV === 'test' || process.env.JEST_WORKER_ID !== undefined;
65
- const useMock = process.env.AQE_USE_MOCK_AGENTDB === 'true';
66
- if (isTestMode || useMock) {
67
- // Use mock adapter for testing
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
- throw new Error(`Failed to initialize AgentDB: ${error.message}`);
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":"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"}
1
+ {"version":3,"file":"AgentDBManager.js","sourceRoot":"","sources":["../../../src/core/memory/AgentDBManager.ts"],"names":[],"mappings":";;;AAseA,oDAqBC;AA3fD,iEAA2D;AAC3D,mDAKyB;AACzB,qDAA4D;AA6L5D;;;;;;;GAOG;AACH,MAAa,cAAc;IAOzB,YAAY,MAAqB;QANzB,YAAO,GAAoB,IAAI,CAAC;QAGhC,kBAAa,GAAY,KAAK,CAAC;QAIrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAE/E,gCAAgC;QAChC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,MAAqB;QAChD,iDAAiD;QACjD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;QAED,kDAAkD;QAClD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CACV,sDAAsD;gBACtD,qDAAqD;gBACrD,sDAAsD,CACvD,CAAC;YAEF,OAAO;gBACL,IAAI,EAAE,2BAAW,CAAC,IAAI;gBACtB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,SAAS,EAAE,GAAG;gBACd,QAAQ,EAAE,IAAI;gBACd,iBAAiB,EAAE,IAAI;aACxB,CAAC;QACJ,CAAC;QAED,uDAAuD;QACvD,OAAO,CAAC,IAAI,CACV,sDAAsD;YACtD,oCAAoC;YACpC,oEAAoE,CACrE,CAAC;QAEF,OAAO,mCAAmB,CAAC,eAAe,EAAE,CAAC;IAC/C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,CAAC;YACH,+BAA+B;YAC/B,MAAM,MAAM,GAAG,MAAM,+BAAc,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAE9B,mBAAmB;YACnB,MAAM,+BAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE5C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAE1B,OAAO,CAAC,GAAG,CAAC,2CAA2C,EAAE;gBACvD,WAAW,EAAE,MAAM,CAAC,IAAI;gBACxB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;gBAC5B,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;aACnC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,uDAAuD;YACvD,IAAI,KAAK,YAAY,yCAAyB,EAAE,CAAC;gBAC/C,MAAM,KAAK,CAAC,CAAC,+BAA+B;YAC9C,CAAC;YAED,MAAM,YAAY,GAAG;gBACnB,sCAAsC;gBACtC,KAAK,KAAK,CAAC,OAAO,EAAE;gBACpB,EAAE;gBACF,wBAAwB;gBACxB,mBAAmB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;gBAC5C,oBAAoB,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,KAAK,EAAE;gBACxD,gBAAgB,IAAI,CAAC,aAAa,CAAC,QAAQ,KAAK,KAAK,EAAE;gBACvD,EAAE;gBACF,kBAAkB;gBAClB,gFAAgF;gBAChF,6CAA6C;gBAC7C,qDAAqD;gBACrD,gEAAgE;aACjE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,OAAsB;QAChC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE9D,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC5D,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CACZ,cAAwB,EACxB,OAAyB;QAEzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE9D,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAEjF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAEzC,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE;gBAClD,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE;oBACR,SAAS;oBACT,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;oBAC1C,QAAQ,EAAE,SAAS,GAAG,CAAC,EAAE,2BAA2B;iBACrD;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,cAAwB,EACxB,MAAc,EACd,IAAY,EAAE;QAEd,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;YACnC,MAAM;YACN,CAAC;YACD,MAAM,EAAE,IAAI;YACZ,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,OAAwB;QAClC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE9D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAElD,OAAO;gBACL,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;aACzC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE9D,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBAC7D,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,OAAsB;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,KAAa,EAAE,OAAyB;QAC7D,+DAA+D;QAC/D,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,8BAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,SAAgB,EAAE;QACzC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBAC7D,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC/C,CAAC;YAED,qDAAqD;YACrD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF;AArRD,wCAqRC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAClC,YAAoC,EAAE;IAEtC,MAAM,aAAa,GAAkB;QACnC,sEAAsE;QACtE,MAAM,EAAE,wBAAwB;QAChC,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,EAAE;QACb,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE,QAAQ;QAC1B,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,GAAG;QAClB,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,IAAI;KAClB,CAAC;IAEF,MAAM,MAAM,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,SAAS,EAAE,CAAC;IAClD,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
@@ -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":"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"}
@@ -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;IA0C9C;;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;IA2F3B;;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;;OAEG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;CA6B7D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,kBAAkB,CAErB"}
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"}