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.
- package/CHANGELOG.md +148 -0
- package/README.md +1 -1
- package/dist/agents/BaseAgent.d.ts +329 -0
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +657 -0
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/cli/commands/supabase/index.d.ts +20 -0
- package/dist/cli/commands/supabase/index.d.ts.map +1 -0
- package/dist/cli/commands/supabase/index.js +632 -0
- package/dist/cli/commands/supabase/index.js.map +1 -0
- package/dist/cli/index.js +3 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.d.ts +135 -0
- package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.js +301 -0
- package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.js.map +1 -0
- package/dist/code-intelligence/embeddings/NomicEmbedder.d.ts +78 -6
- package/dist/code-intelligence/embeddings/NomicEmbedder.d.ts.map +1 -1
- package/dist/code-intelligence/embeddings/NomicEmbedder.js +162 -21
- package/dist/code-intelligence/embeddings/NomicEmbedder.js.map +1 -1
- package/dist/code-intelligence/embeddings/backends/MemoryBackend.d.ts +59 -0
- package/dist/code-intelligence/embeddings/backends/MemoryBackend.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/backends/MemoryBackend.js +173 -0
- package/dist/code-intelligence/embeddings/backends/MemoryBackend.js.map +1 -0
- package/dist/code-intelligence/embeddings/backends/RedisBackend.d.ts +50 -0
- package/dist/code-intelligence/embeddings/backends/RedisBackend.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/backends/RedisBackend.js +279 -0
- package/dist/code-intelligence/embeddings/backends/RedisBackend.js.map +1 -0
- package/dist/code-intelligence/embeddings/backends/SQLiteBackend.d.ts +64 -0
- package/dist/code-intelligence/embeddings/backends/SQLiteBackend.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/backends/SQLiteBackend.js +314 -0
- package/dist/code-intelligence/embeddings/backends/SQLiteBackend.js.map +1 -0
- package/dist/code-intelligence/embeddings/backends/index.d.ts +16 -0
- package/dist/code-intelligence/embeddings/backends/index.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/backends/index.js +28 -0
- package/dist/code-intelligence/embeddings/backends/index.js.map +1 -0
- package/dist/code-intelligence/embeddings/backends/types.d.ts +177 -0
- package/dist/code-intelligence/embeddings/backends/types.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/backends/types.js +30 -0
- package/dist/code-intelligence/embeddings/backends/types.js.map +1 -0
- package/dist/code-intelligence/embeddings/index.d.ts +7 -0
- package/dist/code-intelligence/embeddings/index.d.ts.map +1 -1
- package/dist/code-intelligence/embeddings/index.js +16 -1
- package/dist/code-intelligence/embeddings/index.js.map +1 -1
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/infrastructure/index.d.ts +15 -0
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +44 -0
- package/dist/infrastructure/index.js.map +1 -0
- package/dist/infrastructure/network/AgentRateLimiter.d.ts +59 -0
- package/dist/infrastructure/network/AgentRateLimiter.d.ts.map +1 -0
- package/dist/infrastructure/network/AgentRateLimiter.js +186 -0
- package/dist/infrastructure/network/AgentRateLimiter.js.map +1 -0
- package/dist/infrastructure/network/AuditLogger.d.ts +102 -0
- package/dist/infrastructure/network/AuditLogger.d.ts.map +1 -0
- package/dist/infrastructure/network/AuditLogger.js +284 -0
- package/dist/infrastructure/network/AuditLogger.js.map +1 -0
- package/dist/infrastructure/network/DomainWhitelist.d.ts +111 -0
- package/dist/infrastructure/network/DomainWhitelist.d.ts.map +1 -0
- package/dist/infrastructure/network/DomainWhitelist.js +216 -0
- package/dist/infrastructure/network/DomainWhitelist.js.map +1 -0
- package/dist/infrastructure/network/NetworkPolicyManager.d.ts +97 -0
- package/dist/infrastructure/network/NetworkPolicyManager.d.ts.map +1 -0
- package/dist/infrastructure/network/NetworkPolicyManager.js +309 -0
- package/dist/infrastructure/network/NetworkPolicyManager.js.map +1 -0
- package/dist/infrastructure/network/index.d.ts +19 -0
- package/dist/infrastructure/network/index.d.ts.map +1 -0
- package/dist/infrastructure/network/index.js +46 -0
- package/dist/infrastructure/network/index.js.map +1 -0
- package/dist/infrastructure/network/policies/default-policies.d.ts +78 -0
- package/dist/infrastructure/network/policies/default-policies.d.ts.map +1 -0
- package/dist/infrastructure/network/policies/default-policies.js +312 -0
- package/dist/infrastructure/network/policies/default-policies.js.map +1 -0
- package/dist/infrastructure/network/types.d.ts +214 -0
- package/dist/infrastructure/network/types.d.ts.map +1 -0
- package/dist/infrastructure/network/types.js +25 -0
- package/dist/infrastructure/network/types.js.map +1 -0
- package/dist/infrastructure/sandbox/ResourceMonitor.d.ts +124 -0
- package/dist/infrastructure/sandbox/ResourceMonitor.d.ts.map +1 -0
- package/dist/infrastructure/sandbox/ResourceMonitor.js +305 -0
- package/dist/infrastructure/sandbox/ResourceMonitor.js.map +1 -0
- package/dist/infrastructure/sandbox/SandboxManager.d.ts +122 -0
- package/dist/infrastructure/sandbox/SandboxManager.d.ts.map +1 -0
- package/dist/infrastructure/sandbox/SandboxManager.js +527 -0
- package/dist/infrastructure/sandbox/SandboxManager.js.map +1 -0
- package/dist/infrastructure/sandbox/index.d.ts +18 -0
- package/dist/infrastructure/sandbox/index.d.ts.map +1 -0
- package/dist/infrastructure/sandbox/index.js +38 -0
- package/dist/infrastructure/sandbox/index.js.map +1 -0
- package/dist/infrastructure/sandbox/profiles/agent-profiles.d.ts +53 -0
- package/dist/infrastructure/sandbox/profiles/agent-profiles.d.ts.map +1 -0
- package/dist/infrastructure/sandbox/profiles/agent-profiles.js +433 -0
- package/dist/infrastructure/sandbox/profiles/agent-profiles.js.map +1 -0
- package/dist/infrastructure/sandbox/types.d.ts +227 -0
- package/dist/infrastructure/sandbox/types.d.ts.map +1 -0
- package/dist/infrastructure/sandbox/types.js +63 -0
- package/dist/infrastructure/sandbox/types.js.map +1 -0
- package/dist/mcp/handlers/NewDomainToolsHandler.d.ts +8 -8
- package/dist/mcp/handlers/NewDomainToolsHandler.d.ts.map +1 -1
- package/dist/mcp/handlers/NewDomainToolsHandler.js.map +1 -1
- package/dist/mcp/handlers/ruvector/RuVectorHandler.d.ts +54 -0
- package/dist/mcp/handlers/ruvector/RuVectorHandler.d.ts.map +1 -0
- package/dist/mcp/handlers/ruvector/RuVectorHandler.js +325 -0
- package/dist/mcp/handlers/ruvector/RuVectorHandler.js.map +1 -0
- package/dist/mcp/handlers/ruvector/index.d.ts +5 -0
- package/dist/mcp/handlers/ruvector/index.d.ts.map +1 -0
- package/dist/mcp/handlers/ruvector/index.js +9 -0
- package/dist/mcp/handlers/ruvector/index.js.map +1 -0
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +100 -22
- package/dist/mcp/server.js.map +1 -1
- package/dist/nervous-system/adapters/BTSPAdapter.d.ts +342 -0
- package/dist/nervous-system/adapters/BTSPAdapter.d.ts.map +1 -0
- package/dist/nervous-system/adapters/BTSPAdapter.js +494 -0
- package/dist/nervous-system/adapters/BTSPAdapter.js.map +1 -0
- package/dist/nervous-system/adapters/CircadianController.d.ts +560 -0
- package/dist/nervous-system/adapters/CircadianController.d.ts.map +1 -0
- package/dist/nervous-system/adapters/CircadianController.js +882 -0
- package/dist/nervous-system/adapters/CircadianController.js.map +1 -0
- package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.d.ts +337 -0
- package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.d.ts.map +1 -0
- package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.js +532 -0
- package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.js.map +1 -0
- package/dist/nervous-system/adapters/HdcMemoryAdapter.d.ts +444 -0
- package/dist/nervous-system/adapters/HdcMemoryAdapter.d.ts.map +1 -0
- package/dist/nervous-system/adapters/HdcMemoryAdapter.js +715 -0
- package/dist/nervous-system/adapters/HdcMemoryAdapter.js.map +1 -0
- package/dist/nervous-system/adapters/ReflexLayer.d.ts +231 -0
- package/dist/nervous-system/adapters/ReflexLayer.d.ts.map +1 -0
- package/dist/nervous-system/adapters/ReflexLayer.js +309 -0
- package/dist/nervous-system/adapters/ReflexLayer.js.map +1 -0
- package/dist/nervous-system/index.d.ts +25 -0
- package/dist/nervous-system/index.d.ts.map +1 -0
- package/dist/nervous-system/index.js +80 -0
- package/dist/nervous-system/index.js.map +1 -0
- package/dist/nervous-system/integration/BTSPLearningEngine.d.ts +266 -0
- package/dist/nervous-system/integration/BTSPLearningEngine.d.ts.map +1 -0
- package/dist/nervous-system/integration/BTSPLearningEngine.js +587 -0
- package/dist/nervous-system/integration/BTSPLearningEngine.js.map +1 -0
- package/dist/nervous-system/integration/CircadianAgent.d.ts +389 -0
- package/dist/nervous-system/integration/CircadianAgent.d.ts.map +1 -0
- package/dist/nervous-system/integration/CircadianAgent.js +696 -0
- package/dist/nervous-system/integration/CircadianAgent.js.map +1 -0
- package/dist/nervous-system/integration/HybridPatternStore.d.ts +244 -0
- package/dist/nervous-system/integration/HybridPatternStore.d.ts.map +1 -0
- package/dist/nervous-system/integration/HybridPatternStore.js +622 -0
- package/dist/nervous-system/integration/HybridPatternStore.js.map +1 -0
- package/dist/nervous-system/integration/NervousSystemEnhancement.d.ts +459 -0
- package/dist/nervous-system/integration/NervousSystemEnhancement.d.ts.map +1 -0
- package/dist/nervous-system/integration/NervousSystemEnhancement.js +921 -0
- package/dist/nervous-system/integration/NervousSystemEnhancement.js.map +1 -0
- package/dist/nervous-system/integration/WorkspaceAgent.d.ts +398 -0
- package/dist/nervous-system/integration/WorkspaceAgent.d.ts.map +1 -0
- package/dist/nervous-system/integration/WorkspaceAgent.js +722 -0
- package/dist/nervous-system/integration/WorkspaceAgent.js.map +1 -0
- package/dist/nervous-system/integration/index.d.ts +22 -0
- package/dist/nervous-system/integration/index.d.ts.map +1 -0
- package/dist/nervous-system/integration/index.js +44 -0
- package/dist/nervous-system/integration/index.js.map +1 -0
- package/dist/nervous-system/persistence/BTSPSerializer.d.ts +96 -0
- package/dist/nervous-system/persistence/BTSPSerializer.d.ts.map +1 -0
- package/dist/nervous-system/persistence/BTSPSerializer.js +223 -0
- package/dist/nervous-system/persistence/BTSPSerializer.js.map +1 -0
- package/dist/nervous-system/persistence/CircadianSerializer.d.ts +90 -0
- package/dist/nervous-system/persistence/CircadianSerializer.d.ts.map +1 -0
- package/dist/nervous-system/persistence/CircadianSerializer.js +239 -0
- package/dist/nervous-system/persistence/CircadianSerializer.js.map +1 -0
- package/dist/nervous-system/persistence/HdcSerializer.d.ts +100 -0
- package/dist/nervous-system/persistence/HdcSerializer.d.ts.map +1 -0
- package/dist/nervous-system/persistence/HdcSerializer.js +259 -0
- package/dist/nervous-system/persistence/HdcSerializer.js.map +1 -0
- package/dist/nervous-system/persistence/INervousSystemStore.d.ts +208 -0
- package/dist/nervous-system/persistence/INervousSystemStore.d.ts.map +1 -0
- package/dist/nervous-system/persistence/INervousSystemStore.js +11 -0
- package/dist/nervous-system/persistence/INervousSystemStore.js.map +1 -0
- package/dist/nervous-system/persistence/NervousSystemPersistenceManager.d.ts +187 -0
- package/dist/nervous-system/persistence/NervousSystemPersistenceManager.d.ts.map +1 -0
- package/dist/nervous-system/persistence/NervousSystemPersistenceManager.js +411 -0
- package/dist/nervous-system/persistence/NervousSystemPersistenceManager.js.map +1 -0
- package/dist/nervous-system/persistence/SQLiteNervousSystemStore.d.ts +98 -0
- package/dist/nervous-system/persistence/SQLiteNervousSystemStore.d.ts.map +1 -0
- package/dist/nervous-system/persistence/SQLiteNervousSystemStore.js +510 -0
- package/dist/nervous-system/persistence/SQLiteNervousSystemStore.js.map +1 -0
- package/dist/nervous-system/persistence/index.d.ts +22 -0
- package/dist/nervous-system/persistence/index.d.ts.map +1 -0
- package/dist/nervous-system/persistence/index.js +45 -0
- package/dist/nervous-system/persistence/index.js.map +1 -0
- package/dist/nervous-system/wasm-loader.d.ts +52 -0
- package/dist/nervous-system/wasm-loader.d.ts.map +1 -0
- package/dist/nervous-system/wasm-loader.js +188 -0
- package/dist/nervous-system/wasm-loader.js.map +1 -0
- package/dist/persistence/HybridPersistenceProvider.d.ts +184 -0
- package/dist/persistence/HybridPersistenceProvider.d.ts.map +1 -0
- package/dist/persistence/HybridPersistenceProvider.js +1086 -0
- package/dist/persistence/HybridPersistenceProvider.js.map +1 -0
- package/dist/persistence/IPersistenceProvider.d.ts +657 -0
- package/dist/persistence/IPersistenceProvider.d.ts.map +1 -0
- package/dist/persistence/IPersistenceProvider.js +11 -0
- package/dist/persistence/IPersistenceProvider.js.map +1 -0
- package/dist/persistence/SupabaseConfig.d.ts +176 -0
- package/dist/persistence/SupabaseConfig.d.ts.map +1 -0
- package/dist/persistence/SupabaseConfig.js +277 -0
- package/dist/persistence/SupabaseConfig.js.map +1 -0
- package/dist/persistence/SupabasePersistenceProvider.d.ts +143 -0
- package/dist/persistence/SupabasePersistenceProvider.d.ts.map +1 -0
- package/dist/persistence/SupabasePersistenceProvider.js +959 -0
- package/dist/persistence/SupabasePersistenceProvider.js.map +1 -0
- package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.d.ts +213 -0
- package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.d.ts.map +1 -0
- package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.js +468 -0
- package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.js.map +1 -0
- package/dist/persistence/adapters/MemorySyncAdapter.d.ts +115 -0
- package/dist/persistence/adapters/MemorySyncAdapter.d.ts.map +1 -0
- package/dist/persistence/adapters/MemorySyncAdapter.js +291 -0
- package/dist/persistence/adapters/MemorySyncAdapter.js.map +1 -0
- package/dist/persistence/adapters/index.d.ts +11 -0
- package/dist/persistence/adapters/index.d.ts.map +1 -0
- package/dist/persistence/adapters/index.js +20 -0
- package/dist/persistence/adapters/index.js.map +1 -0
- package/dist/persistence/index.d.ts +14 -0
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +36 -1
- package/dist/persistence/index.js.map +1 -1
- 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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"}
|