agentic-qe 2.5.9 → 2.5.10

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 (42) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/README.md +2 -2
  3. package/dist/agents/BaseAgent.d.ts +119 -0
  4. package/dist/agents/BaseAgent.d.ts.map +1 -1
  5. package/dist/agents/BaseAgent.js +288 -0
  6. package/dist/agents/BaseAgent.js.map +1 -1
  7. package/dist/agents/FlakyTestHunterAgent.d.ts +15 -0
  8. package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
  9. package/dist/agents/FlakyTestHunterAgent.js +93 -0
  10. package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
  11. package/dist/agents/SecurityScannerAgent.d.ts +19 -0
  12. package/dist/agents/SecurityScannerAgent.d.ts.map +1 -1
  13. package/dist/agents/SecurityScannerAgent.js +137 -0
  14. package/dist/agents/SecurityScannerAgent.js.map +1 -1
  15. package/dist/cli/commands/ruvector/index.d.ts +13 -0
  16. package/dist/cli/commands/ruvector/index.d.ts.map +1 -0
  17. package/dist/cli/commands/ruvector/index.js +308 -0
  18. package/dist/cli/commands/ruvector/index.js.map +1 -0
  19. package/dist/cli/index.js +5 -0
  20. package/dist/cli/index.js.map +1 -1
  21. package/dist/cli/init/index.d.ts.map +1 -1
  22. package/dist/cli/init/index.js +11 -0
  23. package/dist/cli/init/index.js.map +1 -1
  24. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  25. package/dist/core/memory/HNSWVectorMemory.js.map +1 -1
  26. package/dist/mcp/server-instructions.d.ts +1 -1
  27. package/dist/mcp/server-instructions.d.ts.map +1 -1
  28. package/dist/mcp/server-instructions.js +1 -1
  29. package/dist/mcp/server-instructions.js.map +1 -1
  30. package/dist/memory/RuVectorPatternStore.d.ts +258 -0
  31. package/dist/memory/RuVectorPatternStore.d.ts.map +1 -0
  32. package/dist/memory/RuVectorPatternStore.js +525 -0
  33. package/dist/memory/RuVectorPatternStore.js.map +1 -0
  34. package/dist/providers/RuVectorPostgresAdapter.d.ts +134 -0
  35. package/dist/providers/RuVectorPostgresAdapter.d.ts.map +1 -0
  36. package/dist/providers/RuVectorPostgresAdapter.js +504 -0
  37. package/dist/providers/RuVectorPostgresAdapter.js.map +1 -0
  38. package/dist/providers/index.d.ts +2 -0
  39. package/dist/providers/index.d.ts.map +1 -1
  40. package/dist/providers/index.js +7 -1
  41. package/dist/providers/index.js.map +1 -1
  42. package/package.json +4 -2
package/CHANGELOG.md CHANGED
@@ -7,6 +7,81 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.5.10] - 2025-12-19
11
+
12
+ ### Added
13
+
14
+ #### Phase 0.5: RuVector Self-Learning Integration
15
+
16
+ Major milestone implementing PostgreSQL-based self-learning with GNN, LoRA, and EWC++ for continuous pattern improvement.
17
+
18
+ **M0.5.4: RuVector PostgreSQL Adapter**
19
+ - **RuVectorPostgresAdapter** (`src/providers/RuVectorPostgresAdapter.ts`) - PostgreSQL vector database adapter
20
+ - O(log n) similarity search with pgvector
21
+ - 768-dimension vector embeddings
22
+ - Query with learning (cache + LLM fallback)
23
+ - Force learning consolidation (GNN/LoRA/EWC++)
24
+ - Health check and metrics reporting
25
+ - `createDockerRuVectorAdapter()` factory for Docker deployments
26
+
27
+ **M0.5.5: CLI Commands**
28
+ - **RuVector CLI** (`src/cli/commands/ruvector/index.ts`) - Management commands
29
+ - `aqe ruvector status` - Check container and connection health
30
+ - `aqe ruvector metrics` - Show GOAP metrics (latency, retention, cache hits)
31
+ - `aqe ruvector learn` - Force GNN/LoRA/EWC++ learning consolidation
32
+ - `aqe ruvector migrate` - Migrate patterns from memory.db
33
+ - `aqe ruvector health` - Detailed diagnostics
34
+
35
+ **M0.5.6: Migration Script**
36
+ - **migrate-patterns-to-ruvector.ts** (`scripts/migrate-patterns-to-ruvector.ts`)
37
+ - Batch processing with configurable batch size
38
+ - Dry-run mode for preview
39
+ - Progress tracking and error handling
40
+ - Validates embedding dimensions (768/384)
41
+
42
+ **Agent Pattern Store Integration**
43
+ - **FlakyTestHunterAgent** - Stores flaky test patterns with stability scores
44
+ - **SecurityScannerAgent** - Stores vulnerability patterns with severity weights
45
+ - **BaseAgent** - PostgreSQL adapter wiring when `AQE_RUVECTOR_ENABLED=true`
46
+
47
+ **Validation Tests**
48
+ - **ruvector-self-learning.test.ts** (`tests/integration/ruvector-self-learning.test.ts`)
49
+ - GNN learning validation (50+ queries, pattern consolidation)
50
+ - EWC++ anti-forgetting (>98% retention after adding new patterns)
51
+ - Latency requirements (environment-adjusted thresholds)
52
+ - Memory constraints validation
53
+ - Cache integration (high-confidence hits)
54
+ - LLM fallback (low-confidence queries)
55
+
56
+ **GOAP Targets Achieved**
57
+ - Cache hit rate: >50%
58
+ - Search latency: <1ms (production), <500ms (DevPod)
59
+ - Pattern retention: >98% (EWC++ guaranteed)
60
+ - LoRA memory: <300MB
61
+
62
+ #### Documentation
63
+ - **RuVector Self-Learning Guide** (`docs/guides/ruvector-self-learning.md`)
64
+ - Complete setup instructions
65
+ - CLI command reference
66
+ - Configuration options
67
+ - Migration guide
68
+ - Troubleshooting FAQ
69
+
70
+ ### Changed
71
+ - **BaseAgent** - Added environment variable support for RuVector configuration
72
+ - `AQE_RUVECTOR_ENABLED` - Enable/disable RuVector (default: false)
73
+ - `AQE_RUVECTOR_URL` - Full PostgreSQL connection URL
74
+ - `RUVECTOR_HOST/PORT/DATABASE/USER/PASSWORD` - Individual connection settings
75
+ - **aqe init** - Shows optional RuVector enhancement with setup instructions
76
+ - **docker-compose.ruvector.yml** - Updated port mappings for PostgreSQL (5432)
77
+
78
+ ### Fixed
79
+ - **Security** - Use `crypto.randomUUID()` instead of `Math.random()` for ID generation
80
+ - **Docker** - Use Docker-in-Docker instead of host Docker socket for better isolation
81
+
82
+ ### Dependencies
83
+ - Added `pg` (PostgreSQL client) for RuVector adapter
84
+
10
85
  ## [2.5.9] - 2025-12-18
11
86
 
12
87
  ### Changed
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  [![Run in Smithery](https://smithery.ai/badge/skills/proffesor-for-testing)](https://smithery.ai/skills?ns=proffesor-for-testing&utm_source=github&utm_medium=badge)
12
12
 
13
13
 
14
- **Version 2.5.9** | [Changelog](CHANGELOG.md) | [Contributors](CONTRIBUTORS.md) | [Issues](https://github.com/proffesor-for-testing/agentic-qe/issues) | [Discussions](https://github.com/proffesor-for-testing/agentic-qe/discussions)
14
+ **Version 2.5.10** | [Changelog](CHANGELOG.md) | [Contributors](CONTRIBUTORS.md) | [Issues](https://github.com/proffesor-for-testing/agentic-qe/issues) | [Discussions](https://github.com/proffesor-for-testing/agentic-qe/discussions)
15
15
 
16
16
  > AI-powered test automation that learns from every task, switches between 300+ AI models on-the-fly, scores code testability, visualizes agent activity in real-time, and improves autonomously overnight — with built-in safety guardrails and full observability.
17
17
 
@@ -393,7 +393,7 @@ mcp__agentic_qe__coverage_analyze({
393
393
  })
394
394
  ```
395
395
 
396
- **All 85 MCP Tools Available:**
396
+ **All 91 MCP Tools Available:**
397
397
  - Fleet Management (9 tools): init, spawn, status, coordinate, orchestrate
398
398
  - Test Generation (2 tools): generate enhanced, execute
399
399
  - Test Execution (3 tools): execute, parallel, stream
@@ -62,6 +62,26 @@ export interface AgentLLMConfig {
62
62
  /**
63
63
  * Configuration for BaseAgent
64
64
  */
65
+ /**
66
+ * QE Pattern Store Configuration
67
+ * Enables QE agents to store learned patterns in RuVector for 150x faster retrieval
68
+ */
69
+ export interface QEPatternStoreConfig {
70
+ /** Enable QE pattern storage (default: true) */
71
+ enabled: boolean;
72
+ /** Use RuVector Docker when available (default: true) */
73
+ useRuVector: boolean;
74
+ /** Use local HNSW fallback (default: true) */
75
+ useHNSW: boolean;
76
+ /** Write to both RuVector and HNSW during migration (default: false) */
77
+ dualWrite: boolean;
78
+ /** RuVector Docker base URL (default: http://localhost:8080) */
79
+ ruvectorUrl?: string;
80
+ /** Pattern storage path (default: ./data/qe-patterns.ruvector) */
81
+ storagePath?: string;
82
+ /** Auto-sync patterns to RuVector (default: false) */
83
+ autoSync?: boolean;
84
+ }
65
85
  export interface BaseAgentConfig {
66
86
  id?: string;
67
87
  type: AgentType;
@@ -79,6 +99,8 @@ export interface BaseAgentConfig {
79
99
  coordinationStrategy?: AgentCoordinationStrategy;
80
100
  /** LLM configuration - enables agents to make LLM calls via RuvLLM */
81
101
  llm?: AgentLLMConfig;
102
+ /** Pattern store configuration for QE agents */
103
+ patternStore?: Partial<QEPatternStoreConfig>;
82
104
  }
83
105
  export declare abstract class BaseAgent extends EventEmitter {
84
106
  protected readonly agentId: AgentId;
@@ -108,6 +130,9 @@ export declare abstract class BaseAgent extends EventEmitter {
108
130
  protected federatedManager?: FederatedManager;
109
131
  protected ephemeralAgent?: EphemeralAgent;
110
132
  private federatedInitialized;
133
+ protected qePatternStore?: any;
134
+ protected readonly qePatternConfig: Required<QEPatternStoreConfig>;
135
+ private patternStoreInitialized;
111
136
  protected readonly lifecycleManager: AgentLifecycleManager;
112
137
  protected readonly coordinator: AgentCoordinator;
113
138
  protected readonly memoryService: AgentMemoryService;
@@ -282,6 +307,8 @@ export declare abstract class BaseAgent extends EventEmitter {
282
307
  sessionId?: string;
283
308
  provider?: string;
284
309
  hasRuVectorCache?: boolean;
310
+ hasPatternStore?: boolean;
311
+ patternStoreType?: 'ruvector' | 'fallback';
285
312
  };
286
313
  /**
287
314
  * Check if RuVector GNN cache is available
@@ -356,6 +383,98 @@ export declare abstract class BaseAgent extends EventEmitter {
356
383
  source: 'cache' | 'local' | 'cloud';
357
384
  confidence?: number;
358
385
  }>;
386
+ /**
387
+ * Initialize QE Pattern Store for learned pattern storage
388
+ * Supports both RuVector Docker (150x faster) and local HNSW fallback
389
+ */
390
+ private initializePatternStore;
391
+ /**
392
+ * Check if QE pattern store is available
393
+ */
394
+ hasPatternStore(): boolean;
395
+ /**
396
+ * Store a QE learned pattern
397
+ * Automatically uses RuVector when available, falls back to HNSW
398
+ *
399
+ * @param pattern - The QE pattern to store
400
+ * @returns Success status
401
+ */
402
+ protected storeQEPattern(pattern: {
403
+ id: string;
404
+ type: string;
405
+ domain: string;
406
+ content: string;
407
+ embedding: number[];
408
+ framework?: string;
409
+ coverage?: number;
410
+ metadata?: Record<string, any>;
411
+ }): Promise<{
412
+ success: boolean;
413
+ synced?: boolean;
414
+ }>;
415
+ /**
416
+ * Search for similar QE patterns
417
+ * Uses RuVector's 150x faster search when available
418
+ *
419
+ * @param embedding - Query embedding vector
420
+ * @param k - Number of results to return (default: 10)
421
+ * @param options - Additional search options
422
+ * @returns Array of similar patterns with scores
423
+ */
424
+ protected searchQEPatterns(embedding: number[], k?: number, options?: {
425
+ domain?: string;
426
+ type?: string;
427
+ framework?: string;
428
+ threshold?: number;
429
+ useMMR?: boolean;
430
+ }): Promise<Array<{
431
+ pattern: any;
432
+ score: number;
433
+ }>>;
434
+ /**
435
+ * Get QE pattern store metrics
436
+ * Returns performance and usage statistics
437
+ */
438
+ getQEPatternMetrics(): {
439
+ enabled: boolean;
440
+ patternCount: number;
441
+ implementation: 'ruvector' | 'fallback';
442
+ performance?: {
443
+ avgSearchTime: number;
444
+ p50SearchTime: number;
445
+ p99SearchTime: number;
446
+ estimatedQPS: number;
447
+ };
448
+ gnnLearning?: {
449
+ enabled: boolean;
450
+ cacheHitRate: number;
451
+ patternsLearned: number;
452
+ };
453
+ } | null;
454
+ /**
455
+ * Sync local patterns to remote RuVector service
456
+ * Only applicable when RuVector Docker is enabled
457
+ */
458
+ protected syncPatternsToRemote(options?: {
459
+ force?: boolean;
460
+ }): Promise<{
461
+ synced: number;
462
+ failed: number;
463
+ duration: number;
464
+ }>;
465
+ /**
466
+ * Force GNN learning consolidation on remote service
467
+ * Triggers LoRA parameter updates with EWC protection
468
+ */
469
+ protected forcePatternLearning(): Promise<{
470
+ success: boolean;
471
+ patternsConsolidated: number;
472
+ duration: number;
473
+ }>;
474
+ /**
475
+ * Cleanup pattern store resources on agent termination
476
+ */
477
+ private cleanupPatternStore;
359
478
  /**
360
479
  * Cleanup LLM resources on agent termination
361
480
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAgent.d.ts","sourceRoot":"","sources":["../../src/agents/BaseAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseAgent.d.ts","sourceRoot":"","sources":["../../src/agents/BaseAgent.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,7 @@ class BaseAgent extends events_1.EventEmitter {
32
32
  super();
33
33
  this.performanceMetrics = { tasksCompleted: 0, averageExecutionTime: 0, errorCount: 0, lastActivity: new Date() };
34
34
  this.federatedInitialized = false;
35
+ this.patternStoreInitialized = false;
35
36
  this.agentId = { id: config.id || (0, utils_1.generateAgentId)(config.type), type: config.type, created: new Date() };
36
37
  this.capabilities = new Map((config.capabilities || []).map(cap => [cap.name, cap]));
37
38
  this.context = config.context;
@@ -41,6 +42,22 @@ class BaseAgent extends events_1.EventEmitter {
41
42
  this.learningConfig = config.learningConfig;
42
43
  // LLM configuration (Phase 0 - default enabled with RuvLLM)
43
44
  this.llmConfig = config.llm ?? { enabled: true, preferredProvider: 'ruvllm' };
45
+ // QE Pattern Store configuration (Phase 0.5 - RuVector Integration)
46
+ // Environment variables take precedence, then config, then defaults
47
+ // RuVector is OPT-IN to maintain backward compatibility with existing users
48
+ const envRuVectorEnabled = process.env.AQE_RUVECTOR_ENABLED?.toLowerCase() === 'true';
49
+ const envRuVectorUrl = process.env.AQE_RUVECTOR_URL || process.env.RUVECTOR_URL;
50
+ const envPatternStoreEnabled = process.env.AQE_PATTERN_STORE_ENABLED?.toLowerCase() !== 'false';
51
+ this.qePatternConfig = {
52
+ enabled: config.patternStore?.enabled ?? envPatternStoreEnabled,
53
+ // RuVector defaults to FALSE - opt-in for advanced self-learning
54
+ useRuVector: config.patternStore?.useRuVector ?? envRuVectorEnabled,
55
+ useHNSW: config.patternStore?.useHNSW ?? true,
56
+ dualWrite: config.patternStore?.dualWrite ?? (process.env.AQE_PATTERN_DUAL_WRITE === 'true'),
57
+ ruvectorUrl: config.patternStore?.ruvectorUrl ?? envRuVectorUrl ?? 'postgresql://ruvector:ruvector@localhost:5432/ruvector_db',
58
+ storagePath: config.patternStore?.storagePath ?? process.env.AQE_PATTERN_STORE_PATH ?? './data/qe-patterns.ruvector',
59
+ autoSync: config.patternStore?.autoSync ?? (process.env.AQE_PATTERN_AUTO_SYNC === 'true'),
60
+ };
44
61
  // Early validation (Issue #137)
45
62
  const validation = (0, utils_1.validateLearningConfig)(config);
46
63
  if (!validation.valid && validation.warning) {
@@ -105,6 +122,8 @@ class BaseAgent extends events_1.EventEmitter {
105
122
  await this.initializeLLMProvider();
106
123
  // Initialize Federated Learning (Phase 0 M0.5)
107
124
  await this.initializeFederatedLearning();
125
+ // Initialize QE Pattern Store (Phase 0.5)
126
+ await this.initializePatternStore();
108
127
  await this.initializeComponents();
109
128
  await this.executeHook('post-initialization');
110
129
  this.coordinator.emitEvent('agent.initialized', { agentId: this.agentId });
@@ -160,6 +179,7 @@ class BaseAgent extends events_1.EventEmitter {
160
179
  await this.cleanup();
161
180
  await this.cleanupLLM(); // Phase 0: Cleanup LLM resources
162
181
  await this.cleanupFederated(); // Phase 0 M0.5: Cleanup federated learning
182
+ await this.cleanupPatternStore(); // Phase 0.5: Cleanup pattern store
163
183
  this.coordinator.clearAllHandlers();
164
184
  },
165
185
  onPostTermination: async () => {
@@ -798,6 +818,10 @@ class BaseAgent extends events_1.EventEmitter {
798
818
  sessionId: this.llmSessionId,
799
819
  provider: this.hybridRouter ? 'hybrid' : (this.llmProvider ? 'ruvllm' : undefined),
800
820
  hasRuVectorCache: this.hasRuVectorCache(),
821
+ hasPatternStore: this.hasPatternStore(),
822
+ patternStoreType: this.hasPatternStore() ?
823
+ this.qePatternStore?.getImplementationInfo?.()?.type :
824
+ undefined,
801
825
  };
802
826
  }
803
827
  // ============================================
@@ -923,6 +947,270 @@ class BaseAgent extends events_1.EventEmitter {
923
947
  const text = await this.llmComplete(prompt, options);
924
948
  return { response: text, source: 'local' };
925
949
  }
950
+ // ============================================
951
+ // QE Pattern Store Methods (Phase 0.5 - RuVector Integration)
952
+ // ============================================
953
+ /**
954
+ * Initialize QE Pattern Store for learned pattern storage
955
+ * Supports both RuVector Docker (150x faster) and local HNSW fallback
956
+ */
957
+ async initializePatternStore() {
958
+ if (!this.qePatternConfig.enabled) {
959
+ console.log(`[${this.agentId.id}] QE Pattern Store disabled by configuration`);
960
+ return;
961
+ }
962
+ try {
963
+ // Phase 0.5: Use PostgreSQL adapter when RuVector is enabled
964
+ if (this.qePatternConfig.useRuVector) {
965
+ try {
966
+ const { createDockerRuVectorAdapter } = require('../providers/RuVectorPostgresAdapter');
967
+ // Parse PostgreSQL connection URL or use defaults
968
+ const url = this.qePatternConfig.ruvectorUrl || '';
969
+ const isPostgres = url.startsWith('postgresql://') || url.startsWith('postgres://');
970
+ if (isPostgres) {
971
+ // Parse connection URL
972
+ const parsed = new URL(url);
973
+ this.qePatternStore = createDockerRuVectorAdapter({
974
+ host: parsed.hostname,
975
+ port: parseInt(parsed.port) || 5432,
976
+ database: parsed.pathname.slice(1) || 'ruvector_db',
977
+ user: parsed.username || 'ruvector',
978
+ password: parsed.password || 'ruvector',
979
+ learningEnabled: true,
980
+ cacheThreshold: 0.85,
981
+ });
982
+ }
983
+ else {
984
+ // Use default Docker configuration
985
+ this.qePatternStore = createDockerRuVectorAdapter({
986
+ host: process.env.RUVECTOR_HOST || 'localhost',
987
+ port: parseInt(process.env.RUVECTOR_PORT || '5432'),
988
+ database: process.env.RUVECTOR_DATABASE || 'ruvector_db',
989
+ user: process.env.RUVECTOR_USER || 'ruvector',
990
+ password: process.env.RUVECTOR_PASSWORD || 'ruvector',
991
+ learningEnabled: true,
992
+ cacheThreshold: 0.85,
993
+ });
994
+ }
995
+ await this.qePatternStore.initialize();
996
+ this.patternStoreInitialized = true;
997
+ console.log(`[${this.agentId.id}] QE Pattern Store initialized (RuVector PostgreSQL: enabled)`);
998
+ return;
999
+ }
1000
+ catch (postgresError) {
1001
+ console.warn(`[${this.agentId.id}] RuVector PostgreSQL unavailable, falling back to HNSW:`, postgresError.message);
1002
+ // Fall through to HNSW fallback
1003
+ }
1004
+ }
1005
+ // Fallback: Use local RuVectorPatternStore (HNSW-based)
1006
+ const { RuVectorPatternStore } = require('../memory/RuVectorPatternStore');
1007
+ // Configure pattern store with local HNSW
1008
+ const storeConfig = {
1009
+ dimension: 384,
1010
+ metric: 'cosine',
1011
+ storagePath: this.qePatternConfig.storagePath,
1012
+ autoPersist: true,
1013
+ enableMetrics: true,
1014
+ hnsw: {
1015
+ m: 32,
1016
+ efConstruction: 200,
1017
+ efSearch: 100,
1018
+ },
1019
+ };
1020
+ this.qePatternStore = new RuVectorPatternStore(storeConfig);
1021
+ await this.qePatternStore.initialize();
1022
+ this.patternStoreInitialized = true;
1023
+ console.log(`[${this.agentId.id}] QE Pattern Store initialized (HNSW fallback)`);
1024
+ }
1025
+ catch (error) {
1026
+ console.warn(`[${this.agentId.id}] Pattern Store initialization failed:`, error.message);
1027
+ // Don't throw - agent can work without pattern store
1028
+ }
1029
+ }
1030
+ /**
1031
+ * Check if QE pattern store is available
1032
+ */
1033
+ hasPatternStore() {
1034
+ return this.patternStoreInitialized && this.qePatternStore !== undefined;
1035
+ }
1036
+ /**
1037
+ * Store a QE learned pattern
1038
+ * Automatically uses RuVector when available, falls back to HNSW
1039
+ *
1040
+ * @param pattern - The QE pattern to store
1041
+ * @returns Success status
1042
+ */
1043
+ async storeQEPattern(pattern) {
1044
+ if (!this.hasPatternStore()) {
1045
+ return { success: false };
1046
+ }
1047
+ try {
1048
+ const testPattern = {
1049
+ id: pattern.id,
1050
+ type: pattern.type,
1051
+ domain: pattern.domain,
1052
+ content: pattern.content,
1053
+ embedding: pattern.embedding,
1054
+ framework: pattern.framework,
1055
+ coverage: pattern.coverage,
1056
+ createdAt: Date.now(),
1057
+ lastUsed: Date.now(),
1058
+ usageCount: 0,
1059
+ metadata: {
1060
+ agentId: this.agentId.id,
1061
+ agentType: this.agentId.type,
1062
+ ...pattern.metadata,
1063
+ },
1064
+ };
1065
+ // Use auto-sync variant if enabled
1066
+ if (this.qePatternConfig.autoSync && this.qePatternStore.storeWithSync) {
1067
+ const result = await this.qePatternStore.storeWithSync(testPattern);
1068
+ return { success: result.stored, synced: result.synced };
1069
+ }
1070
+ await this.qePatternStore.storePattern(testPattern);
1071
+ return { success: true };
1072
+ }
1073
+ catch (error) {
1074
+ console.warn(`[${this.agentId.id}] Failed to store QE pattern:`, error.message);
1075
+ return { success: false };
1076
+ }
1077
+ }
1078
+ /**
1079
+ * Search for similar QE patterns
1080
+ * Uses RuVector's 150x faster search when available
1081
+ *
1082
+ * @param embedding - Query embedding vector
1083
+ * @param k - Number of results to return (default: 10)
1084
+ * @param options - Additional search options
1085
+ * @returns Array of similar patterns with scores
1086
+ */
1087
+ async searchQEPatterns(embedding, k = 10, options) {
1088
+ if (!this.hasPatternStore()) {
1089
+ return [];
1090
+ }
1091
+ try {
1092
+ const results = await this.qePatternStore.searchSimilar(embedding, {
1093
+ k,
1094
+ domain: options?.domain,
1095
+ type: options?.type,
1096
+ framework: options?.framework,
1097
+ threshold: options?.threshold ?? 0.7,
1098
+ useMMR: options?.useMMR ?? false,
1099
+ });
1100
+ return results;
1101
+ }
1102
+ catch (error) {
1103
+ console.warn(`[${this.agentId.id}] Pattern search failed:`, error.message);
1104
+ return [];
1105
+ }
1106
+ }
1107
+ /**
1108
+ * Get QE pattern store metrics
1109
+ * Returns performance and usage statistics
1110
+ */
1111
+ getQEPatternMetrics() {
1112
+ if (!this.hasPatternStore()) {
1113
+ return null;
1114
+ }
1115
+ try {
1116
+ const stats = this.qePatternStore.getStats?.();
1117
+ const perfMetrics = this.qePatternStore.getPerformanceMetrics?.();
1118
+ const metrics = {
1119
+ enabled: true,
1120
+ patternCount: stats?.count ?? 0,
1121
+ implementation: stats?.implementation ?? 'fallback',
1122
+ };
1123
+ if (perfMetrics) {
1124
+ metrics.performance = {
1125
+ avgSearchTime: perfMetrics.avgSearchTime,
1126
+ p50SearchTime: perfMetrics.p50SearchTime,
1127
+ p99SearchTime: perfMetrics.p99SearchTime,
1128
+ estimatedQPS: perfMetrics.estimatedQPS,
1129
+ };
1130
+ }
1131
+ // GNN learning metrics if available
1132
+ if (this.qePatternStore.isGNNEnabled?.()) {
1133
+ const gnnMetrics = this.qePatternStore.getGNNMetrics?.();
1134
+ if (gnnMetrics) {
1135
+ metrics.gnnLearning = {
1136
+ enabled: gnnMetrics.enabled,
1137
+ cacheHitRate: gnnMetrics.cacheHitRate,
1138
+ patternsLearned: gnnMetrics.patternsLearned,
1139
+ };
1140
+ }
1141
+ }
1142
+ return metrics;
1143
+ }
1144
+ catch (error) {
1145
+ console.warn(`[${this.agentId.id}] Failed to get pattern metrics:`, error.message);
1146
+ return null;
1147
+ }
1148
+ }
1149
+ /**
1150
+ * Sync local patterns to remote RuVector service
1151
+ * Only applicable when RuVector Docker is enabled
1152
+ */
1153
+ async syncPatternsToRemote(options) {
1154
+ if (!this.hasPatternStore() || !this.qePatternStore.syncToRemote) {
1155
+ return { synced: 0, failed: 0, duration: 0 };
1156
+ }
1157
+ try {
1158
+ const result = await this.qePatternStore.syncToRemote(options);
1159
+ console.log(`[${this.agentId.id}] Synced ${result.synced} patterns to remote (${result.duration}ms)`);
1160
+ return result;
1161
+ }
1162
+ catch (error) {
1163
+ console.warn(`[${this.agentId.id}] Pattern sync failed:`, error.message);
1164
+ return { synced: 0, failed: 0, duration: 0 };
1165
+ }
1166
+ }
1167
+ /**
1168
+ * Force GNN learning consolidation on remote service
1169
+ * Triggers LoRA parameter updates with EWC protection
1170
+ */
1171
+ async forcePatternLearning() {
1172
+ if (!this.hasPatternStore() || !this.qePatternStore.forceGNNLearn) {
1173
+ return { success: false, patternsConsolidated: 0, duration: 0 };
1174
+ }
1175
+ try {
1176
+ const result = await this.qePatternStore.forceGNNLearn({
1177
+ domain: this.agentId.type,
1178
+ });
1179
+ return {
1180
+ success: result.success,
1181
+ patternsConsolidated: result.patternsConsolidated,
1182
+ duration: result.duration,
1183
+ };
1184
+ }
1185
+ catch (error) {
1186
+ console.warn(`[${this.agentId.id}] Force learning failed:`, error.message);
1187
+ return { success: false, patternsConsolidated: 0, duration: 0 };
1188
+ }
1189
+ }
1190
+ /**
1191
+ * Cleanup pattern store resources on agent termination
1192
+ */
1193
+ async cleanupPatternStore() {
1194
+ if (!this.patternStoreInitialized || !this.qePatternStore) {
1195
+ return;
1196
+ }
1197
+ try {
1198
+ // Sync pending patterns before shutdown
1199
+ if (this.qePatternConfig.autoSync && this.qePatternStore.syncToRemote) {
1200
+ await this.qePatternStore.syncToRemote({ force: true });
1201
+ }
1202
+ // Shutdown and release resources
1203
+ if (this.qePatternStore.shutdown) {
1204
+ await this.qePatternStore.shutdown();
1205
+ }
1206
+ console.log(`[${this.agentId.id}] Pattern Store cleanup complete`);
1207
+ }
1208
+ catch (error) {
1209
+ console.warn(`[${this.agentId.id}] Pattern Store cleanup error:`, error.message);
1210
+ }
1211
+ this.patternStoreInitialized = false;
1212
+ this.qePatternStore = undefined;
1213
+ }
926
1214
  /**
927
1215
  * Cleanup LLM resources on agent termination
928
1216
  */