agentic-qe 2.8.0 → 2.8.2

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 (226) hide show
  1. package/CHANGELOG.md +148 -0
  2. package/README.md +1 -1
  3. package/dist/agents/BaseAgent.d.ts +329 -0
  4. package/dist/agents/BaseAgent.d.ts.map +1 -1
  5. package/dist/agents/BaseAgent.js +657 -0
  6. package/dist/agents/BaseAgent.js.map +1 -1
  7. package/dist/cli/commands/supabase/index.d.ts +20 -0
  8. package/dist/cli/commands/supabase/index.d.ts.map +1 -0
  9. package/dist/cli/commands/supabase/index.js +632 -0
  10. package/dist/cli/commands/supabase/index.js.map +1 -0
  11. package/dist/cli/index.js +3 -0
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.d.ts +135 -0
  14. package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.d.ts.map +1 -0
  15. package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.js +301 -0
  16. package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.js.map +1 -0
  17. package/dist/code-intelligence/embeddings/NomicEmbedder.d.ts +78 -6
  18. package/dist/code-intelligence/embeddings/NomicEmbedder.d.ts.map +1 -1
  19. package/dist/code-intelligence/embeddings/NomicEmbedder.js +162 -21
  20. package/dist/code-intelligence/embeddings/NomicEmbedder.js.map +1 -1
  21. package/dist/code-intelligence/embeddings/backends/MemoryBackend.d.ts +59 -0
  22. package/dist/code-intelligence/embeddings/backends/MemoryBackend.d.ts.map +1 -0
  23. package/dist/code-intelligence/embeddings/backends/MemoryBackend.js +173 -0
  24. package/dist/code-intelligence/embeddings/backends/MemoryBackend.js.map +1 -0
  25. package/dist/code-intelligence/embeddings/backends/RedisBackend.d.ts +50 -0
  26. package/dist/code-intelligence/embeddings/backends/RedisBackend.d.ts.map +1 -0
  27. package/dist/code-intelligence/embeddings/backends/RedisBackend.js +279 -0
  28. package/dist/code-intelligence/embeddings/backends/RedisBackend.js.map +1 -0
  29. package/dist/code-intelligence/embeddings/backends/SQLiteBackend.d.ts +64 -0
  30. package/dist/code-intelligence/embeddings/backends/SQLiteBackend.d.ts.map +1 -0
  31. package/dist/code-intelligence/embeddings/backends/SQLiteBackend.js +314 -0
  32. package/dist/code-intelligence/embeddings/backends/SQLiteBackend.js.map +1 -0
  33. package/dist/code-intelligence/embeddings/backends/index.d.ts +16 -0
  34. package/dist/code-intelligence/embeddings/backends/index.d.ts.map +1 -0
  35. package/dist/code-intelligence/embeddings/backends/index.js +28 -0
  36. package/dist/code-intelligence/embeddings/backends/index.js.map +1 -0
  37. package/dist/code-intelligence/embeddings/backends/types.d.ts +177 -0
  38. package/dist/code-intelligence/embeddings/backends/types.d.ts.map +1 -0
  39. package/dist/code-intelligence/embeddings/backends/types.js +30 -0
  40. package/dist/code-intelligence/embeddings/backends/types.js.map +1 -0
  41. package/dist/code-intelligence/embeddings/index.d.ts +7 -0
  42. package/dist/code-intelligence/embeddings/index.d.ts.map +1 -1
  43. package/dist/code-intelligence/embeddings/index.js +16 -1
  44. package/dist/code-intelligence/embeddings/index.js.map +1 -1
  45. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  46. package/dist/infrastructure/index.d.ts +15 -0
  47. package/dist/infrastructure/index.d.ts.map +1 -0
  48. package/dist/infrastructure/index.js +44 -0
  49. package/dist/infrastructure/index.js.map +1 -0
  50. package/dist/infrastructure/network/AgentRateLimiter.d.ts +59 -0
  51. package/dist/infrastructure/network/AgentRateLimiter.d.ts.map +1 -0
  52. package/dist/infrastructure/network/AgentRateLimiter.js +186 -0
  53. package/dist/infrastructure/network/AgentRateLimiter.js.map +1 -0
  54. package/dist/infrastructure/network/AuditLogger.d.ts +102 -0
  55. package/dist/infrastructure/network/AuditLogger.d.ts.map +1 -0
  56. package/dist/infrastructure/network/AuditLogger.js +284 -0
  57. package/dist/infrastructure/network/AuditLogger.js.map +1 -0
  58. package/dist/infrastructure/network/DomainWhitelist.d.ts +111 -0
  59. package/dist/infrastructure/network/DomainWhitelist.d.ts.map +1 -0
  60. package/dist/infrastructure/network/DomainWhitelist.js +216 -0
  61. package/dist/infrastructure/network/DomainWhitelist.js.map +1 -0
  62. package/dist/infrastructure/network/NetworkPolicyManager.d.ts +97 -0
  63. package/dist/infrastructure/network/NetworkPolicyManager.d.ts.map +1 -0
  64. package/dist/infrastructure/network/NetworkPolicyManager.js +309 -0
  65. package/dist/infrastructure/network/NetworkPolicyManager.js.map +1 -0
  66. package/dist/infrastructure/network/index.d.ts +19 -0
  67. package/dist/infrastructure/network/index.d.ts.map +1 -0
  68. package/dist/infrastructure/network/index.js +46 -0
  69. package/dist/infrastructure/network/index.js.map +1 -0
  70. package/dist/infrastructure/network/policies/default-policies.d.ts +78 -0
  71. package/dist/infrastructure/network/policies/default-policies.d.ts.map +1 -0
  72. package/dist/infrastructure/network/policies/default-policies.js +312 -0
  73. package/dist/infrastructure/network/policies/default-policies.js.map +1 -0
  74. package/dist/infrastructure/network/types.d.ts +214 -0
  75. package/dist/infrastructure/network/types.d.ts.map +1 -0
  76. package/dist/infrastructure/network/types.js +25 -0
  77. package/dist/infrastructure/network/types.js.map +1 -0
  78. package/dist/infrastructure/sandbox/ResourceMonitor.d.ts +124 -0
  79. package/dist/infrastructure/sandbox/ResourceMonitor.d.ts.map +1 -0
  80. package/dist/infrastructure/sandbox/ResourceMonitor.js +305 -0
  81. package/dist/infrastructure/sandbox/ResourceMonitor.js.map +1 -0
  82. package/dist/infrastructure/sandbox/SandboxManager.d.ts +122 -0
  83. package/dist/infrastructure/sandbox/SandboxManager.d.ts.map +1 -0
  84. package/dist/infrastructure/sandbox/SandboxManager.js +527 -0
  85. package/dist/infrastructure/sandbox/SandboxManager.js.map +1 -0
  86. package/dist/infrastructure/sandbox/index.d.ts +18 -0
  87. package/dist/infrastructure/sandbox/index.d.ts.map +1 -0
  88. package/dist/infrastructure/sandbox/index.js +38 -0
  89. package/dist/infrastructure/sandbox/index.js.map +1 -0
  90. package/dist/infrastructure/sandbox/profiles/agent-profiles.d.ts +53 -0
  91. package/dist/infrastructure/sandbox/profiles/agent-profiles.d.ts.map +1 -0
  92. package/dist/infrastructure/sandbox/profiles/agent-profiles.js +433 -0
  93. package/dist/infrastructure/sandbox/profiles/agent-profiles.js.map +1 -0
  94. package/dist/infrastructure/sandbox/types.d.ts +227 -0
  95. package/dist/infrastructure/sandbox/types.d.ts.map +1 -0
  96. package/dist/infrastructure/sandbox/types.js +63 -0
  97. package/dist/infrastructure/sandbox/types.js.map +1 -0
  98. package/dist/mcp/handlers/NewDomainToolsHandler.d.ts +8 -8
  99. package/dist/mcp/handlers/NewDomainToolsHandler.d.ts.map +1 -1
  100. package/dist/mcp/handlers/NewDomainToolsHandler.js.map +1 -1
  101. package/dist/mcp/handlers/ruvector/RuVectorHandler.d.ts +54 -0
  102. package/dist/mcp/handlers/ruvector/RuVectorHandler.d.ts.map +1 -0
  103. package/dist/mcp/handlers/ruvector/RuVectorHandler.js +325 -0
  104. package/dist/mcp/handlers/ruvector/RuVectorHandler.js.map +1 -0
  105. package/dist/mcp/handlers/ruvector/index.d.ts +5 -0
  106. package/dist/mcp/handlers/ruvector/index.d.ts.map +1 -0
  107. package/dist/mcp/handlers/ruvector/index.js +9 -0
  108. package/dist/mcp/handlers/ruvector/index.js.map +1 -0
  109. package/dist/mcp/server-instructions.d.ts +1 -1
  110. package/dist/mcp/server-instructions.js +1 -1
  111. package/dist/mcp/server.d.ts.map +1 -1
  112. package/dist/mcp/server.js +100 -22
  113. package/dist/mcp/server.js.map +1 -1
  114. package/dist/nervous-system/adapters/BTSPAdapter.d.ts +342 -0
  115. package/dist/nervous-system/adapters/BTSPAdapter.d.ts.map +1 -0
  116. package/dist/nervous-system/adapters/BTSPAdapter.js +494 -0
  117. package/dist/nervous-system/adapters/BTSPAdapter.js.map +1 -0
  118. package/dist/nervous-system/adapters/CircadianController.d.ts +560 -0
  119. package/dist/nervous-system/adapters/CircadianController.d.ts.map +1 -0
  120. package/dist/nervous-system/adapters/CircadianController.js +882 -0
  121. package/dist/nervous-system/adapters/CircadianController.js.map +1 -0
  122. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.d.ts +337 -0
  123. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.d.ts.map +1 -0
  124. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.js +532 -0
  125. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.js.map +1 -0
  126. package/dist/nervous-system/adapters/HdcMemoryAdapter.d.ts +444 -0
  127. package/dist/nervous-system/adapters/HdcMemoryAdapter.d.ts.map +1 -0
  128. package/dist/nervous-system/adapters/HdcMemoryAdapter.js +715 -0
  129. package/dist/nervous-system/adapters/HdcMemoryAdapter.js.map +1 -0
  130. package/dist/nervous-system/adapters/ReflexLayer.d.ts +231 -0
  131. package/dist/nervous-system/adapters/ReflexLayer.d.ts.map +1 -0
  132. package/dist/nervous-system/adapters/ReflexLayer.js +309 -0
  133. package/dist/nervous-system/adapters/ReflexLayer.js.map +1 -0
  134. package/dist/nervous-system/index.d.ts +25 -0
  135. package/dist/nervous-system/index.d.ts.map +1 -0
  136. package/dist/nervous-system/index.js +80 -0
  137. package/dist/nervous-system/index.js.map +1 -0
  138. package/dist/nervous-system/integration/BTSPLearningEngine.d.ts +266 -0
  139. package/dist/nervous-system/integration/BTSPLearningEngine.d.ts.map +1 -0
  140. package/dist/nervous-system/integration/BTSPLearningEngine.js +587 -0
  141. package/dist/nervous-system/integration/BTSPLearningEngine.js.map +1 -0
  142. package/dist/nervous-system/integration/CircadianAgent.d.ts +389 -0
  143. package/dist/nervous-system/integration/CircadianAgent.d.ts.map +1 -0
  144. package/dist/nervous-system/integration/CircadianAgent.js +696 -0
  145. package/dist/nervous-system/integration/CircadianAgent.js.map +1 -0
  146. package/dist/nervous-system/integration/HybridPatternStore.d.ts +244 -0
  147. package/dist/nervous-system/integration/HybridPatternStore.d.ts.map +1 -0
  148. package/dist/nervous-system/integration/HybridPatternStore.js +622 -0
  149. package/dist/nervous-system/integration/HybridPatternStore.js.map +1 -0
  150. package/dist/nervous-system/integration/NervousSystemEnhancement.d.ts +459 -0
  151. package/dist/nervous-system/integration/NervousSystemEnhancement.d.ts.map +1 -0
  152. package/dist/nervous-system/integration/NervousSystemEnhancement.js +921 -0
  153. package/dist/nervous-system/integration/NervousSystemEnhancement.js.map +1 -0
  154. package/dist/nervous-system/integration/WorkspaceAgent.d.ts +398 -0
  155. package/dist/nervous-system/integration/WorkspaceAgent.d.ts.map +1 -0
  156. package/dist/nervous-system/integration/WorkspaceAgent.js +722 -0
  157. package/dist/nervous-system/integration/WorkspaceAgent.js.map +1 -0
  158. package/dist/nervous-system/integration/index.d.ts +22 -0
  159. package/dist/nervous-system/integration/index.d.ts.map +1 -0
  160. package/dist/nervous-system/integration/index.js +44 -0
  161. package/dist/nervous-system/integration/index.js.map +1 -0
  162. package/dist/nervous-system/persistence/BTSPSerializer.d.ts +96 -0
  163. package/dist/nervous-system/persistence/BTSPSerializer.d.ts.map +1 -0
  164. package/dist/nervous-system/persistence/BTSPSerializer.js +223 -0
  165. package/dist/nervous-system/persistence/BTSPSerializer.js.map +1 -0
  166. package/dist/nervous-system/persistence/CircadianSerializer.d.ts +90 -0
  167. package/dist/nervous-system/persistence/CircadianSerializer.d.ts.map +1 -0
  168. package/dist/nervous-system/persistence/CircadianSerializer.js +239 -0
  169. package/dist/nervous-system/persistence/CircadianSerializer.js.map +1 -0
  170. package/dist/nervous-system/persistence/HdcSerializer.d.ts +100 -0
  171. package/dist/nervous-system/persistence/HdcSerializer.d.ts.map +1 -0
  172. package/dist/nervous-system/persistence/HdcSerializer.js +259 -0
  173. package/dist/nervous-system/persistence/HdcSerializer.js.map +1 -0
  174. package/dist/nervous-system/persistence/INervousSystemStore.d.ts +208 -0
  175. package/dist/nervous-system/persistence/INervousSystemStore.d.ts.map +1 -0
  176. package/dist/nervous-system/persistence/INervousSystemStore.js +11 -0
  177. package/dist/nervous-system/persistence/INervousSystemStore.js.map +1 -0
  178. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.d.ts +187 -0
  179. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.d.ts.map +1 -0
  180. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.js +411 -0
  181. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.js.map +1 -0
  182. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.d.ts +98 -0
  183. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.d.ts.map +1 -0
  184. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.js +510 -0
  185. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.js.map +1 -0
  186. package/dist/nervous-system/persistence/index.d.ts +22 -0
  187. package/dist/nervous-system/persistence/index.d.ts.map +1 -0
  188. package/dist/nervous-system/persistence/index.js +45 -0
  189. package/dist/nervous-system/persistence/index.js.map +1 -0
  190. package/dist/nervous-system/wasm-loader.d.ts +52 -0
  191. package/dist/nervous-system/wasm-loader.d.ts.map +1 -0
  192. package/dist/nervous-system/wasm-loader.js +188 -0
  193. package/dist/nervous-system/wasm-loader.js.map +1 -0
  194. package/dist/persistence/HybridPersistenceProvider.d.ts +184 -0
  195. package/dist/persistence/HybridPersistenceProvider.d.ts.map +1 -0
  196. package/dist/persistence/HybridPersistenceProvider.js +1086 -0
  197. package/dist/persistence/HybridPersistenceProvider.js.map +1 -0
  198. package/dist/persistence/IPersistenceProvider.d.ts +657 -0
  199. package/dist/persistence/IPersistenceProvider.d.ts.map +1 -0
  200. package/dist/persistence/IPersistenceProvider.js +11 -0
  201. package/dist/persistence/IPersistenceProvider.js.map +1 -0
  202. package/dist/persistence/SupabaseConfig.d.ts +176 -0
  203. package/dist/persistence/SupabaseConfig.d.ts.map +1 -0
  204. package/dist/persistence/SupabaseConfig.js +277 -0
  205. package/dist/persistence/SupabaseConfig.js.map +1 -0
  206. package/dist/persistence/SupabasePersistenceProvider.d.ts +143 -0
  207. package/dist/persistence/SupabasePersistenceProvider.d.ts.map +1 -0
  208. package/dist/persistence/SupabasePersistenceProvider.js +959 -0
  209. package/dist/persistence/SupabasePersistenceProvider.js.map +1 -0
  210. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.d.ts +213 -0
  211. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.d.ts.map +1 -0
  212. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.js +468 -0
  213. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.js.map +1 -0
  214. package/dist/persistence/adapters/MemorySyncAdapter.d.ts +115 -0
  215. package/dist/persistence/adapters/MemorySyncAdapter.d.ts.map +1 -0
  216. package/dist/persistence/adapters/MemorySyncAdapter.js +291 -0
  217. package/dist/persistence/adapters/MemorySyncAdapter.js.map +1 -0
  218. package/dist/persistence/adapters/index.d.ts +11 -0
  219. package/dist/persistence/adapters/index.d.ts.map +1 -0
  220. package/dist/persistence/adapters/index.js +20 -0
  221. package/dist/persistence/adapters/index.js.map +1 -0
  222. package/dist/persistence/index.d.ts +14 -0
  223. package/dist/persistence/index.d.ts.map +1 -1
  224. package/dist/persistence/index.js +36 -1
  225. package/dist/persistence/index.js.map +1 -1
  226. package/package.json +7 -1
@@ -0,0 +1,622 @@
1
+ "use strict";
2
+ /**
3
+ * HybridPatternStore - HDC-Enhanced Pattern Storage
4
+ *
5
+ * Integrates Hyperdimensional Computing (HDC) with the IPatternStore interface
6
+ * for ultra-fast pattern operations:
7
+ * - 50ns target for HDC binding operations (10,000-bit hypervectors)
8
+ * - Sub-microsecond similarity queries via HDC cosine similarity
9
+ * - Automatic fallback to standard vector operations when HDC unavailable
10
+ *
11
+ * Architecture:
12
+ * - Primary: HdcMemoryAdapter for O(1) pattern matching
13
+ * - Secondary: Regular embedding storage for precise search
14
+ * - Hybrid search: HDC pre-filter + embedding refinement
15
+ *
16
+ * @module nervous-system/integration/HybridPatternStore
17
+ * @version 1.0.0
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.HybridPatternStore = void 0;
21
+ exports.createHybridPatternStore = createHybridPatternStore;
22
+ exports.createHighPerformanceHybridStore = createHighPerformanceHybridStore;
23
+ const HdcMemoryAdapter_js_1 = require("../adapters/HdcMemoryAdapter.js");
24
+ /**
25
+ * Default configuration values
26
+ */
27
+ const DEFAULT_CONFIG = {
28
+ dimension: 384,
29
+ metric: 'cosine',
30
+ useHdcPrefilter: true,
31
+ hdcPrefilterThreshold: 0.5,
32
+ hdcMaxCandidates: 100,
33
+ enableMetrics: true,
34
+ debug: false,
35
+ };
36
+ /**
37
+ * HybridPatternStore - IPatternStore implementation with HDC acceleration
38
+ *
39
+ * Uses HDC hypervectors for ultra-fast pattern matching while maintaining
40
+ * full IPatternStore compatibility. Falls back to regular vector operations
41
+ * when HDC is not initialized or unavailable.
42
+ *
43
+ * @implements {IPatternStore}
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * const store = new HybridPatternStore({
48
+ * dimension: 384,
49
+ * useHdcPrefilter: true,
50
+ * hdcPrefilterThreshold: 0.6,
51
+ * });
52
+ *
53
+ * await store.initialize();
54
+ *
55
+ * // Store patterns - automatically encoded to HDC hypervectors
56
+ * await store.storePattern({
57
+ * id: 'pattern-001',
58
+ * type: 'edge-case',
59
+ * domain: 'unit-test',
60
+ * content: 'null input handling',
61
+ * embedding: [...384 floats...],
62
+ * });
63
+ *
64
+ * // Search uses HDC pre-filter for sub-microsecond matching
65
+ * const results = await store.searchSimilar(queryEmbedding, { k: 10 });
66
+ * ```
67
+ */
68
+ class HybridPatternStore {
69
+ /**
70
+ * Create a new HybridPatternStore
71
+ * @param config Configuration options
72
+ */
73
+ constructor(config = {}) {
74
+ this.hdcAdapter = null;
75
+ this.initialized = false;
76
+ this.hdcInitialized = false;
77
+ /** Pattern storage (id -> pattern) */
78
+ this.patterns = new Map();
79
+ /** Embedding storage for fallback search (id -> embedding) */
80
+ this.embeddings = new Map();
81
+ /** Performance metrics */
82
+ this.metrics = {
83
+ totalEncodes: 0,
84
+ totalStores: 0,
85
+ totalSearches: 0,
86
+ hdcHits: 0,
87
+ fallbackSearches: 0,
88
+ encodeTimes: [],
89
+ storeTimes: [],
90
+ searchTimes: [],
91
+ avgEncodeTime: 0,
92
+ avgSearchTime: 0,
93
+ hdcHitRate: 0,
94
+ };
95
+ this.config = {
96
+ ...DEFAULT_CONFIG,
97
+ ...config,
98
+ };
99
+ }
100
+ /**
101
+ * Initialize the pattern store
102
+ *
103
+ * Initializes HDC adapter with WASM module. If HDC initialization fails,
104
+ * the store continues to work with fallback vector operations.
105
+ */
106
+ async initialize() {
107
+ if (this.initialized) {
108
+ return;
109
+ }
110
+ // Initialize HDC adapter
111
+ try {
112
+ this.hdcAdapter = new HdcMemoryAdapter_js_1.HdcMemoryAdapter(this.config.hdc);
113
+ await this.hdcAdapter.initialize();
114
+ this.hdcInitialized = true;
115
+ this.log('[HybridPatternStore] HDC adapter initialized successfully');
116
+ }
117
+ catch (error) {
118
+ this.hdcInitialized = false;
119
+ this.hdcAdapter = null;
120
+ this.log(`[HybridPatternStore] HDC initialization failed, using fallback: ${error instanceof Error ? error.message : String(error)}`);
121
+ }
122
+ this.initialized = true;
123
+ }
124
+ /**
125
+ * Store a single test pattern
126
+ *
127
+ * Encodes pattern to HDC hypervector and stores both the hypervector
128
+ * and the original embedding for hybrid search.
129
+ */
130
+ async storePattern(pattern) {
131
+ this.ensureInitialized();
132
+ const startTime = this.getHighResTime();
133
+ // Store in local pattern map
134
+ this.patterns.set(pattern.id, {
135
+ ...pattern,
136
+ createdAt: pattern.createdAt ?? Date.now(),
137
+ lastUsed: pattern.lastUsed ?? Date.now(),
138
+ usageCount: pattern.usageCount ?? 0,
139
+ });
140
+ // Store embedding for fallback search
141
+ this.embeddings.set(pattern.id, pattern.embedding);
142
+ // Encode and store in HDC if available
143
+ if (this.hdcInitialized && this.hdcAdapter) {
144
+ try {
145
+ const encodeStart = this.getHighResTime();
146
+ // Encode pattern to hypervector
147
+ const hypervector = this.hdcAdapter.encodePattern({
148
+ type: pattern.type,
149
+ domain: pattern.domain,
150
+ content: pattern.content,
151
+ metadata: pattern.metadata,
152
+ });
153
+ // Track encode time
154
+ if (this.config.enableMetrics) {
155
+ const encodeTime = this.getHighResTime() - encodeStart;
156
+ this.metrics.encodeTimes.push(encodeTime);
157
+ this.metrics.totalEncodes++;
158
+ this.limitMetricsArray(this.metrics.encodeTimes);
159
+ }
160
+ // Store hypervector
161
+ this.hdcAdapter.store(pattern.id, hypervector);
162
+ }
163
+ catch (error) {
164
+ this.log(`[HybridPatternStore] HDC encode/store failed for ${pattern.id}: ${error instanceof Error ? error.message : String(error)}`);
165
+ }
166
+ }
167
+ // Track store time
168
+ if (this.config.enableMetrics) {
169
+ const storeTime = this.getHighResTime() - startTime;
170
+ this.metrics.storeTimes.push(storeTime);
171
+ this.metrics.totalStores++;
172
+ this.limitMetricsArray(this.metrics.storeTimes);
173
+ }
174
+ }
175
+ /**
176
+ * Store multiple patterns in batch
177
+ *
178
+ * Optimized batch encoding and storage for high throughput.
179
+ */
180
+ async storeBatch(patterns) {
181
+ this.ensureInitialized();
182
+ const startTime = this.getHighResTime();
183
+ // Process patterns in parallel for local storage
184
+ for (const pattern of patterns) {
185
+ this.patterns.set(pattern.id, {
186
+ ...pattern,
187
+ createdAt: pattern.createdAt ?? Date.now(),
188
+ lastUsed: pattern.lastUsed ?? Date.now(),
189
+ usageCount: pattern.usageCount ?? 0,
190
+ });
191
+ this.embeddings.set(pattern.id, pattern.embedding);
192
+ }
193
+ // Batch encode and store in HDC if available
194
+ if (this.hdcInitialized && this.hdcAdapter) {
195
+ for (const pattern of patterns) {
196
+ try {
197
+ const hypervector = this.hdcAdapter.encodePattern({
198
+ type: pattern.type,
199
+ domain: pattern.domain,
200
+ content: pattern.content,
201
+ metadata: pattern.metadata,
202
+ });
203
+ this.hdcAdapter.store(pattern.id, hypervector);
204
+ }
205
+ catch (error) {
206
+ this.log(`[HybridPatternStore] HDC batch encode failed for ${pattern.id}: ${error instanceof Error ? error.message : String(error)}`);
207
+ }
208
+ }
209
+ }
210
+ // Track metrics
211
+ if (this.config.enableMetrics) {
212
+ const totalTime = this.getHighResTime() - startTime;
213
+ const perPattern = totalTime / patterns.length;
214
+ for (let i = 0; i < Math.min(patterns.length, 100); i++) {
215
+ this.metrics.storeTimes.push(perPattern);
216
+ }
217
+ this.metrics.totalStores += patterns.length;
218
+ this.metrics.totalEncodes += patterns.length;
219
+ }
220
+ }
221
+ /**
222
+ * Search for similar patterns by embedding
223
+ *
224
+ * Uses HDC pre-filter for sub-microsecond candidate selection,
225
+ * then refines with precise cosine similarity on embeddings.
226
+ */
227
+ async searchSimilar(queryEmbedding, options = {}) {
228
+ this.ensureInitialized();
229
+ const startTime = this.getHighResTime();
230
+ const k = options.k ?? 10;
231
+ const threshold = options.threshold ?? 0;
232
+ let results;
233
+ // Try HDC pre-filter if enabled and available
234
+ if (this.config.useHdcPrefilter &&
235
+ this.hdcInitialized &&
236
+ this.hdcAdapter &&
237
+ this.patterns.size > 0) {
238
+ results = await this.searchWithHdcPrefilter(queryEmbedding, options);
239
+ if (this.config.enableMetrics && results.length > 0) {
240
+ this.metrics.hdcHits++;
241
+ }
242
+ }
243
+ else {
244
+ // Fallback to brute-force cosine similarity
245
+ results = this.searchFallback(queryEmbedding, options);
246
+ if (this.config.enableMetrics) {
247
+ this.metrics.fallbackSearches++;
248
+ }
249
+ }
250
+ // Track search time
251
+ if (this.config.enableMetrics) {
252
+ const searchTime = this.getHighResTime() - startTime;
253
+ this.metrics.searchTimes.push(searchTime);
254
+ this.metrics.totalSearches++;
255
+ this.limitMetricsArray(this.metrics.searchTimes);
256
+ this.updateMetricsAverages();
257
+ }
258
+ return results;
259
+ }
260
+ /**
261
+ * Search using HDC pre-filter + embedding refinement
262
+ */
263
+ async searchWithHdcPrefilter(queryEmbedding, options) {
264
+ const k = options.k ?? 10;
265
+ const threshold = options.threshold ?? 0;
266
+ // Create query hypervector from embedding
267
+ // Use hash-based encoding for query embedding
268
+ const queryHv = this.hdcAdapter.createHypervector(this.hashEmbedding(queryEmbedding));
269
+ // Get HDC candidates
270
+ const hdcResults = this.hdcAdapter.topK(queryHv, Math.min(this.config.hdcMaxCandidates, this.patterns.size));
271
+ // If no HDC results, fall back to full search
272
+ if (hdcResults.length === 0) {
273
+ return this.searchFallback(queryEmbedding, options);
274
+ }
275
+ // Refine candidates with precise cosine similarity
276
+ const refinedResults = [];
277
+ for (const hdcResult of hdcResults) {
278
+ const pattern = this.patterns.get(hdcResult.key);
279
+ if (!pattern)
280
+ continue;
281
+ // Apply filters
282
+ if (options.domain && pattern.domain !== options.domain)
283
+ continue;
284
+ if (options.type && pattern.type !== options.type)
285
+ continue;
286
+ if (options.framework && pattern.framework !== options.framework)
287
+ continue;
288
+ // Compute precise similarity
289
+ const embedding = this.embeddings.get(hdcResult.key);
290
+ if (!embedding)
291
+ continue;
292
+ const score = this.cosineSimilarity(queryEmbedding, embedding);
293
+ if (score >= threshold) {
294
+ refinedResults.push({
295
+ pattern,
296
+ score,
297
+ });
298
+ }
299
+ }
300
+ // Sort by score and return top k
301
+ refinedResults.sort((a, b) => b.score - a.score);
302
+ return refinedResults.slice(0, k);
303
+ }
304
+ /**
305
+ * Fallback search using brute-force cosine similarity
306
+ */
307
+ searchFallback(queryEmbedding, options) {
308
+ const k = options.k ?? 10;
309
+ const threshold = options.threshold ?? 0;
310
+ const results = [];
311
+ for (const [id, pattern] of Array.from(this.patterns.entries())) {
312
+ // Apply filters
313
+ if (options.domain && pattern.domain !== options.domain)
314
+ continue;
315
+ if (options.type && pattern.type !== options.type)
316
+ continue;
317
+ if (options.framework && pattern.framework !== options.framework)
318
+ continue;
319
+ const embedding = this.embeddings.get(id);
320
+ if (!embedding)
321
+ continue;
322
+ const score = this.cosineSimilarity(queryEmbedding, embedding);
323
+ if (score >= threshold) {
324
+ results.push({ pattern, score });
325
+ }
326
+ }
327
+ // Sort by score and return top k
328
+ results.sort((a, b) => b.score - a.score);
329
+ return results.slice(0, k);
330
+ }
331
+ /**
332
+ * Get a pattern by ID
333
+ */
334
+ async getPattern(id) {
335
+ this.ensureInitialized();
336
+ return this.patterns.get(id) ?? null;
337
+ }
338
+ /**
339
+ * Delete a pattern by ID
340
+ */
341
+ async deletePattern(id) {
342
+ this.ensureInitialized();
343
+ const existed = this.patterns.has(id);
344
+ this.patterns.delete(id);
345
+ this.embeddings.delete(id);
346
+ // Note: HDC adapter doesn't support deletion, patterns remain in hypervector memory
347
+ // This is a limitation of the current HDC implementation
348
+ return existed;
349
+ }
350
+ /**
351
+ * Record pattern usage
352
+ */
353
+ async recordUsage(id) {
354
+ this.ensureInitialized();
355
+ const pattern = this.patterns.get(id);
356
+ if (pattern) {
357
+ pattern.lastUsed = Date.now();
358
+ pattern.usageCount = (pattern.usageCount ?? 0) + 1;
359
+ }
360
+ }
361
+ /**
362
+ * Build search index
363
+ * For HDC, this is a no-op as hypervectors are stored directly
364
+ */
365
+ async buildIndex() {
366
+ this.ensureInitialized();
367
+ // HDC uses direct similarity comparison, no index needed
368
+ // Could potentially add HNSW for embedding fallback in future
369
+ }
370
+ /**
371
+ * Optimize storage
372
+ */
373
+ async optimize() {
374
+ this.ensureInitialized();
375
+ // Potential future optimizations:
376
+ // - Re-encode patterns with updated codebooks
377
+ // - Prune low-usage patterns from HDC memory
378
+ }
379
+ /**
380
+ * Get database statistics
381
+ */
382
+ async getStats() {
383
+ this.ensureInitialized();
384
+ const hdcStats = this.hdcInitialized && this.hdcAdapter
385
+ ? this.hdcAdapter.getStats()
386
+ : null;
387
+ const stats = {
388
+ count: this.patterns.size,
389
+ dimension: this.config.dimension,
390
+ metric: this.config.metric ?? 'cosine',
391
+ implementation: this.hdcInitialized ? 'ruvector' : 'fallback',
392
+ indexType: this.hdcInitialized ? 'HDC-10000bit' : 'brute-force',
393
+ };
394
+ // Add performance metrics if available
395
+ if (this.config.enableMetrics && this.metrics.searchTimes.length > 0) {
396
+ const sorted = [...this.metrics.searchTimes].sort((a, b) => a - b);
397
+ const p50Index = Math.floor(sorted.length * 0.5);
398
+ const p99Index = Math.floor(sorted.length * 0.99);
399
+ stats.p50Latency = sorted[p50Index] / 1000; // Convert ns to us
400
+ stats.p99Latency = sorted[p99Index] / 1000;
401
+ const avgTimeUs = this.metrics.avgSearchTime / 1000;
402
+ stats.qps = avgTimeUs > 0 ? 1000000 / avgTimeUs : 0; // QPS from us
403
+ }
404
+ return stats;
405
+ }
406
+ /**
407
+ * Clear all patterns
408
+ */
409
+ async clear() {
410
+ this.ensureInitialized();
411
+ this.patterns.clear();
412
+ this.embeddings.clear();
413
+ if (this.hdcInitialized && this.hdcAdapter) {
414
+ this.hdcAdapter.clear();
415
+ }
416
+ // Reset metrics
417
+ this.metrics = {
418
+ totalEncodes: 0,
419
+ totalStores: 0,
420
+ totalSearches: 0,
421
+ hdcHits: 0,
422
+ fallbackSearches: 0,
423
+ encodeTimes: [],
424
+ storeTimes: [],
425
+ searchTimes: [],
426
+ avgEncodeTime: 0,
427
+ avgSearchTime: 0,
428
+ hdcHitRate: 0,
429
+ };
430
+ }
431
+ /**
432
+ * Shutdown and release resources
433
+ */
434
+ async shutdown() {
435
+ if (this.hdcAdapter) {
436
+ this.hdcAdapter.dispose();
437
+ this.hdcAdapter = null;
438
+ }
439
+ this.patterns.clear();
440
+ this.embeddings.clear();
441
+ this.initialized = false;
442
+ this.hdcInitialized = false;
443
+ }
444
+ /**
445
+ * Get implementation info
446
+ */
447
+ getImplementationInfo() {
448
+ if (this.hdcInitialized) {
449
+ return {
450
+ type: 'ruvector',
451
+ version: '1.0.0-hdc',
452
+ features: [
453
+ 'hdc-hypervectors',
454
+ '10000-bit-encoding',
455
+ '50ns-binding',
456
+ 'cosine-similarity',
457
+ 'hybrid-search',
458
+ 'fallback-support',
459
+ ],
460
+ };
461
+ }
462
+ return {
463
+ type: 'fallback',
464
+ version: '1.0.0-fallback',
465
+ features: ['in-memory', 'cosine-similarity'],
466
+ };
467
+ }
468
+ /**
469
+ * Check if HDC is initialized and available
470
+ */
471
+ isHdcAvailable() {
472
+ return this.hdcInitialized;
473
+ }
474
+ /**
475
+ * Get HDC-specific metrics
476
+ */
477
+ getHdcMetrics() {
478
+ return { ...this.metrics };
479
+ }
480
+ /**
481
+ * Get HDC adapter for direct access (advanced use)
482
+ */
483
+ getHdcAdapter() {
484
+ return this.hdcAdapter;
485
+ }
486
+ // ============================================
487
+ // Private Helper Methods
488
+ // ============================================
489
+ ensureInitialized() {
490
+ if (!this.initialized) {
491
+ throw new Error('HybridPatternStore not initialized. Call initialize() first.');
492
+ }
493
+ }
494
+ /**
495
+ * Compute cosine similarity between two vectors
496
+ */
497
+ cosineSimilarity(a, b) {
498
+ if (a.length !== b.length)
499
+ return 0;
500
+ let dotProduct = 0;
501
+ let normA = 0;
502
+ let normB = 0;
503
+ for (let i = 0; i < a.length; i++) {
504
+ dotProduct += a[i] * b[i];
505
+ normA += a[i] * a[i];
506
+ normB += b[i] * b[i];
507
+ }
508
+ const magnitude = Math.sqrt(normA) * Math.sqrt(normB);
509
+ return magnitude > 0 ? dotProduct / magnitude : 0;
510
+ }
511
+ /**
512
+ * Hash embedding to bigint for hypervector seeding
513
+ * Uses FNV-1a on the embedding values
514
+ */
515
+ hashEmbedding(embedding) {
516
+ const FNV_PRIME = BigInt('0x00000100000001B3');
517
+ const FNV_OFFSET = BigInt('0xcbf29ce484222325');
518
+ const MASK_64 = BigInt('0xFFFFFFFFFFFFFFFF');
519
+ let hash = FNV_OFFSET;
520
+ // Hash first 64 values for efficiency (captures pattern essence)
521
+ const sampleSize = Math.min(64, embedding.length);
522
+ for (let i = 0; i < sampleSize; i++) {
523
+ // Convert float to int32 bits for hashing
524
+ const intVal = Math.floor(embedding[i] * 1000000) & 0xffffffff;
525
+ hash ^= BigInt(intVal);
526
+ hash = (hash * FNV_PRIME) & MASK_64;
527
+ }
528
+ return hash;
529
+ }
530
+ /**
531
+ * Get high-resolution time in nanoseconds
532
+ */
533
+ getHighResTime() {
534
+ if (typeof performance !== 'undefined' && performance.now) {
535
+ return performance.now() * 1000000; // Convert ms to ns
536
+ }
537
+ return Date.now() * 1000000;
538
+ }
539
+ /**
540
+ * Limit metrics array size to prevent memory bloat
541
+ */
542
+ limitMetricsArray(arr, maxSize = 1000) {
543
+ while (arr.length > maxSize) {
544
+ arr.shift();
545
+ }
546
+ }
547
+ /**
548
+ * Update computed metric averages
549
+ */
550
+ updateMetricsAverages() {
551
+ if (this.metrics.encodeTimes.length > 0) {
552
+ this.metrics.avgEncodeTime =
553
+ this.metrics.encodeTimes.reduce((a, b) => a + b, 0) /
554
+ this.metrics.encodeTimes.length;
555
+ }
556
+ if (this.metrics.searchTimes.length > 0) {
557
+ this.metrics.avgSearchTime =
558
+ this.metrics.searchTimes.reduce((a, b) => a + b, 0) /
559
+ this.metrics.searchTimes.length;
560
+ }
561
+ if (this.metrics.totalSearches > 0) {
562
+ this.metrics.hdcHitRate =
563
+ this.metrics.hdcHits / this.metrics.totalSearches;
564
+ }
565
+ }
566
+ /**
567
+ * Log message if debug mode enabled
568
+ */
569
+ log(message) {
570
+ if (this.config.debug) {
571
+ console.log(message);
572
+ }
573
+ }
574
+ }
575
+ exports.HybridPatternStore = HybridPatternStore;
576
+ /**
577
+ * Create a pre-configured HybridPatternStore for QE patterns
578
+ *
579
+ * @param options Optional configuration overrides
580
+ * @returns Configured HybridPatternStore instance
581
+ */
582
+ function createHybridPatternStore(options = {}) {
583
+ return new HybridPatternStore({
584
+ dimension: 384,
585
+ metric: 'cosine',
586
+ useHdcPrefilter: true,
587
+ hdcPrefilterThreshold: 0.5,
588
+ hdcMaxCandidates: 100,
589
+ enableMetrics: true,
590
+ hdc: {
591
+ similarityThreshold: 0.7,
592
+ maxRetrievalResults: 100,
593
+ autoInit: true,
594
+ },
595
+ ...options,
596
+ });
597
+ }
598
+ /**
599
+ * Create a high-performance HybridPatternStore optimized for throughput
600
+ *
601
+ * Uses aggressive HDC pre-filtering for maximum speed.
602
+ *
603
+ * @param options Optional configuration overrides
604
+ * @returns Configured HybridPatternStore instance
605
+ */
606
+ function createHighPerformanceHybridStore(options = {}) {
607
+ return new HybridPatternStore({
608
+ dimension: 384,
609
+ metric: 'cosine',
610
+ useHdcPrefilter: true,
611
+ hdcPrefilterThreshold: 0.4, // Lower threshold for more candidates
612
+ hdcMaxCandidates: 200, // More candidates for better recall
613
+ enableMetrics: true,
614
+ hdc: {
615
+ similarityThreshold: 0.6,
616
+ maxRetrievalResults: 200,
617
+ autoInit: true,
618
+ },
619
+ ...options,
620
+ });
621
+ }
622
+ //# sourceMappingURL=HybridPatternStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HybridPatternStore.js","sourceRoot":"","sources":["../../../src/nervous-system/integration/HybridPatternStore.ts"],"names":[],"mappings":"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"}