agentdb 2.0.0-alpha.2 → 2.0.0-alpha.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (314) hide show
  1. package/dist/agentdb.min.js +4 -4
  2. package/dist/simulation/cli.js +0 -0
  3. package/dist/src/cli/agentdb-cli.d.ts.map +1 -1
  4. package/dist/src/cli/agentdb-cli.js +78 -0
  5. package/dist/src/cli/agentdb-cli.js.map +1 -1
  6. package/package.json +3 -3
  7. package/src/cli/agentdb-cli.ts +78 -0
  8. package/dist/agentdb-advanced.js +0 -2110
  9. package/dist/agentdb-advanced.min.js +0 -1
  10. package/dist/backends/GraphBackend.d.ts +0 -196
  11. package/dist/backends/GraphBackend.d.ts.map +0 -1
  12. package/dist/backends/GraphBackend.js +0 -33
  13. package/dist/backends/GraphBackend.js.map +0 -1
  14. package/dist/backends/LearningBackend.d.ts +0 -148
  15. package/dist/backends/LearningBackend.d.ts.map +0 -1
  16. package/dist/backends/LearningBackend.js +0 -27
  17. package/dist/backends/LearningBackend.js.map +0 -1
  18. package/dist/backends/VectorBackend.d.ts +0 -119
  19. package/dist/backends/VectorBackend.d.ts.map +0 -1
  20. package/dist/backends/VectorBackend.js +0 -14
  21. package/dist/backends/VectorBackend.js.map +0 -1
  22. package/dist/backends/detector.d.ts +0 -81
  23. package/dist/backends/detector.d.ts.map +0 -1
  24. package/dist/backends/detector.js +0 -192
  25. package/dist/backends/detector.js.map +0 -1
  26. package/dist/backends/factory.d.ts +0 -50
  27. package/dist/backends/factory.d.ts.map +0 -1
  28. package/dist/backends/factory.js +0 -161
  29. package/dist/backends/factory.js.map +0 -1
  30. package/dist/backends/graph/GraphDatabaseAdapter.d.ts +0 -139
  31. package/dist/backends/graph/GraphDatabaseAdapter.d.ts.map +0 -1
  32. package/dist/backends/graph/GraphDatabaseAdapter.js +0 -194
  33. package/dist/backends/graph/GraphDatabaseAdapter.js.map +0 -1
  34. package/dist/backends/hnswlib/HNSWLibBackend.d.ts +0 -92
  35. package/dist/backends/hnswlib/HNSWLibBackend.d.ts.map +0 -1
  36. package/dist/backends/hnswlib/HNSWLibBackend.js +0 -316
  37. package/dist/backends/hnswlib/HNSWLibBackend.js.map +0 -1
  38. package/dist/backends/hnswlib/index.d.ts +0 -7
  39. package/dist/backends/hnswlib/index.d.ts.map +0 -1
  40. package/dist/backends/hnswlib/index.js +0 -7
  41. package/dist/backends/hnswlib/index.js.map +0 -1
  42. package/dist/backends/index.d.ts +0 -14
  43. package/dist/backends/index.d.ts.map +0 -1
  44. package/dist/backends/index.js +0 -13
  45. package/dist/backends/index.js.map +0 -1
  46. package/dist/backends/ruvector/RuVectorBackend.d.ts +0 -75
  47. package/dist/backends/ruvector/RuVectorBackend.d.ts.map +0 -1
  48. package/dist/backends/ruvector/RuVectorBackend.js +0 -198
  49. package/dist/backends/ruvector/RuVectorBackend.js.map +0 -1
  50. package/dist/backends/ruvector/RuVectorLearning.d.ts +0 -104
  51. package/dist/backends/ruvector/RuVectorLearning.d.ts.map +0 -1
  52. package/dist/backends/ruvector/RuVectorLearning.js +0 -177
  53. package/dist/backends/ruvector/RuVectorLearning.js.map +0 -1
  54. package/dist/backends/ruvector/index.d.ts +0 -9
  55. package/dist/backends/ruvector/index.d.ts.map +0 -1
  56. package/dist/backends/ruvector/index.js +0 -8
  57. package/dist/backends/ruvector/index.js.map +0 -1
  58. package/dist/benchmarks/wasm-vector-benchmark.d.ts +0 -10
  59. package/dist/benchmarks/wasm-vector-benchmark.d.ts.map +0 -1
  60. package/dist/benchmarks/wasm-vector-benchmark.js +0 -196
  61. package/dist/benchmarks/wasm-vector-benchmark.js.map +0 -1
  62. package/dist/browser/AdvancedFeatures.d.ts +0 -144
  63. package/dist/browser/AdvancedFeatures.d.ts.map +0 -1
  64. package/dist/browser/AdvancedFeatures.js +0 -430
  65. package/dist/browser/AdvancedFeatures.js.map +0 -1
  66. package/dist/browser/HNSWIndex.d.ts +0 -117
  67. package/dist/browser/HNSWIndex.d.ts.map +0 -1
  68. package/dist/browser/HNSWIndex.js +0 -402
  69. package/dist/browser/HNSWIndex.js.map +0 -1
  70. package/dist/browser/ProductQuantization.d.ts +0 -107
  71. package/dist/browser/ProductQuantization.d.ts.map +0 -1
  72. package/dist/browser/ProductQuantization.js +0 -337
  73. package/dist/browser/ProductQuantization.js.map +0 -1
  74. package/dist/browser/browser/AdvancedFeatures.d.ts +0 -144
  75. package/dist/browser/browser/AdvancedFeatures.d.ts.map +0 -1
  76. package/dist/browser/browser/AdvancedFeatures.js +0 -427
  77. package/dist/browser/browser/HNSWIndex.d.ts +0 -117
  78. package/dist/browser/browser/HNSWIndex.d.ts.map +0 -1
  79. package/dist/browser/browser/HNSWIndex.js +0 -402
  80. package/dist/browser/browser/ProductQuantization.d.ts +0 -107
  81. package/dist/browser/browser/ProductQuantization.d.ts.map +0 -1
  82. package/dist/browser/browser/ProductQuantization.js +0 -348
  83. package/dist/browser/browser/index.d.ts +0 -223
  84. package/dist/browser/browser/index.d.ts.map +0 -1
  85. package/dist/browser/browser/index.js +0 -233
  86. package/dist/browser/index.d.ts +0 -223
  87. package/dist/browser/index.d.ts.map +0 -1
  88. package/dist/browser/index.js +0 -225
  89. package/dist/browser/index.js.map +0 -1
  90. package/dist/cli/agentdb-cli.d.ts +0 -154
  91. package/dist/cli/agentdb-cli.d.ts.map +0 -1
  92. package/dist/cli/agentdb-cli.js +0 -2273
  93. package/dist/cli/agentdb-cli.js.map +0 -1
  94. package/dist/cli/agentdb.db +0 -0
  95. package/dist/cli/commands/init.d.ts +0 -12
  96. package/dist/cli/commands/init.d.ts.map +0 -1
  97. package/dist/cli/commands/init.js +0 -115
  98. package/dist/cli/commands/init.js.map +0 -1
  99. package/dist/cli/commands/install-embeddings.d.ts +0 -10
  100. package/dist/cli/commands/install-embeddings.d.ts.map +0 -1
  101. package/dist/cli/commands/install-embeddings.js +0 -68
  102. package/dist/cli/commands/install-embeddings.js.map +0 -1
  103. package/dist/cli/commands/migrate.d.ts +0 -15
  104. package/dist/cli/commands/migrate.d.ts.map +0 -1
  105. package/dist/cli/commands/migrate.js +0 -425
  106. package/dist/cli/commands/migrate.js.map +0 -1
  107. package/dist/cli/commands/status.d.ts +0 -10
  108. package/dist/cli/commands/status.d.ts.map +0 -1
  109. package/dist/cli/commands/status.js +0 -129
  110. package/dist/cli/commands/status.js.map +0 -1
  111. package/dist/controllers/CausalMemoryGraph.d.ts +0 -126
  112. package/dist/controllers/CausalMemoryGraph.d.ts.map +0 -1
  113. package/dist/controllers/CausalMemoryGraph.js +0 -323
  114. package/dist/controllers/CausalMemoryGraph.js.map +0 -1
  115. package/dist/controllers/CausalRecall.d.ts +0 -139
  116. package/dist/controllers/CausalRecall.d.ts.map +0 -1
  117. package/dist/controllers/CausalRecall.js +0 -356
  118. package/dist/controllers/CausalRecall.js.map +0 -1
  119. package/dist/controllers/ContextSynthesizer.d.ts +0 -65
  120. package/dist/controllers/ContextSynthesizer.d.ts.map +0 -1
  121. package/dist/controllers/ContextSynthesizer.js +0 -208
  122. package/dist/controllers/ContextSynthesizer.js.map +0 -1
  123. package/dist/controllers/EmbeddingService.d.ts +0 -37
  124. package/dist/controllers/EmbeddingService.d.ts.map +0 -1
  125. package/dist/controllers/EmbeddingService.js +0 -136
  126. package/dist/controllers/EmbeddingService.js.map +0 -1
  127. package/dist/controllers/EnhancedEmbeddingService.d.ts +0 -50
  128. package/dist/controllers/EnhancedEmbeddingService.d.ts.map +0 -1
  129. package/dist/controllers/EnhancedEmbeddingService.js +0 -119
  130. package/dist/controllers/EnhancedEmbeddingService.js.map +0 -1
  131. package/dist/controllers/ExplainableRecall.d.ts +0 -163
  132. package/dist/controllers/ExplainableRecall.d.ts.map +0 -1
  133. package/dist/controllers/ExplainableRecall.js +0 -485
  134. package/dist/controllers/ExplainableRecall.js.map +0 -1
  135. package/dist/controllers/HNSWIndex.d.ts +0 -128
  136. package/dist/controllers/HNSWIndex.d.ts.map +0 -1
  137. package/dist/controllers/HNSWIndex.js +0 -361
  138. package/dist/controllers/HNSWIndex.js.map +0 -1
  139. package/dist/controllers/LearningSystem.d.ts +0 -195
  140. package/dist/controllers/LearningSystem.d.ts.map +0 -1
  141. package/dist/controllers/LearningSystem.js +0 -929
  142. package/dist/controllers/LearningSystem.js.map +0 -1
  143. package/dist/controllers/MMRDiversityRanker.d.ts +0 -50
  144. package/dist/controllers/MMRDiversityRanker.d.ts.map +0 -1
  145. package/dist/controllers/MMRDiversityRanker.js +0 -130
  146. package/dist/controllers/MMRDiversityRanker.js.map +0 -1
  147. package/dist/controllers/MetadataFilter.d.ts +0 -70
  148. package/dist/controllers/MetadataFilter.d.ts.map +0 -1
  149. package/dist/controllers/MetadataFilter.js +0 -243
  150. package/dist/controllers/MetadataFilter.js.map +0 -1
  151. package/dist/controllers/NightlyLearner.d.ts +0 -114
  152. package/dist/controllers/NightlyLearner.d.ts.map +0 -1
  153. package/dist/controllers/NightlyLearner.js +0 -394
  154. package/dist/controllers/NightlyLearner.js.map +0 -1
  155. package/dist/controllers/QUICClient.d.ts +0 -109
  156. package/dist/controllers/QUICClient.d.ts.map +0 -1
  157. package/dist/controllers/QUICClient.js +0 -299
  158. package/dist/controllers/QUICClient.js.map +0 -1
  159. package/dist/controllers/QUICServer.d.ts +0 -121
  160. package/dist/controllers/QUICServer.d.ts.map +0 -1
  161. package/dist/controllers/QUICServer.js +0 -383
  162. package/dist/controllers/QUICServer.js.map +0 -1
  163. package/dist/controllers/ReasoningBank.d.ts +0 -196
  164. package/dist/controllers/ReasoningBank.d.ts.map +0 -1
  165. package/dist/controllers/ReasoningBank.js +0 -494
  166. package/dist/controllers/ReasoningBank.js.map +0 -1
  167. package/dist/controllers/ReflexionMemory.d.ts +0 -125
  168. package/dist/controllers/ReflexionMemory.d.ts.map +0 -1
  169. package/dist/controllers/ReflexionMemory.js +0 -521
  170. package/dist/controllers/ReflexionMemory.js.map +0 -1
  171. package/dist/controllers/SkillLibrary.d.ts +0 -149
  172. package/dist/controllers/SkillLibrary.d.ts.map +0 -1
  173. package/dist/controllers/SkillLibrary.js +0 -547
  174. package/dist/controllers/SkillLibrary.js.map +0 -1
  175. package/dist/controllers/SyncCoordinator.d.ts +0 -120
  176. package/dist/controllers/SyncCoordinator.d.ts.map +0 -1
  177. package/dist/controllers/SyncCoordinator.js +0 -441
  178. package/dist/controllers/SyncCoordinator.js.map +0 -1
  179. package/dist/controllers/WASMVectorSearch.d.ts +0 -89
  180. package/dist/controllers/WASMVectorSearch.d.ts.map +0 -1
  181. package/dist/controllers/WASMVectorSearch.js +0 -234
  182. package/dist/controllers/WASMVectorSearch.js.map +0 -1
  183. package/dist/controllers/frontier-index.d.ts +0 -14
  184. package/dist/controllers/frontier-index.d.ts.map +0 -1
  185. package/dist/controllers/frontier-index.js +0 -10
  186. package/dist/controllers/frontier-index.js.map +0 -1
  187. package/dist/controllers/index.d.ts +0 -30
  188. package/dist/controllers/index.d.ts.map +0 -1
  189. package/dist/controllers/index.js +0 -18
  190. package/dist/controllers/index.js.map +0 -1
  191. package/dist/db-fallback.d.ts +0 -26
  192. package/dist/db-fallback.d.ts.map +0 -1
  193. package/dist/db-fallback.js +0 -264
  194. package/dist/db-fallback.js.map +0 -1
  195. package/dist/db-test.d.ts +0 -13
  196. package/dist/db-test.d.ts.map +0 -1
  197. package/dist/db-test.js +0 -55
  198. package/dist/db-test.js.map +0 -1
  199. package/dist/db-unified.d.ts +0 -76
  200. package/dist/db-unified.d.ts.map +0 -1
  201. package/dist/db-unified.js +0 -278
  202. package/dist/db-unified.js.map +0 -1
  203. package/dist/examples/quic-sync-example.d.ts +0 -9
  204. package/dist/examples/quic-sync-example.d.ts.map +0 -1
  205. package/dist/examples/quic-sync-example.js +0 -169
  206. package/dist/examples/quic-sync-example.js.map +0 -1
  207. package/dist/examples/wasm-vector-usage.d.ts +0 -12
  208. package/dist/examples/wasm-vector-usage.d.ts.map +0 -1
  209. package/dist/examples/wasm-vector-usage.js +0 -190
  210. package/dist/examples/wasm-vector-usage.js.map +0 -1
  211. package/dist/index.d.ts +0 -28
  212. package/dist/index.d.ts.map +0 -1
  213. package/dist/index.js +0 -35
  214. package/dist/index.js.map +0 -1
  215. package/dist/malp/core/ccc.d.ts +0 -99
  216. package/dist/malp/core/ccc.d.ts.map +0 -1
  217. package/dist/malp/core/ccc.js +0 -181
  218. package/dist/malp/core/ccc.js.map +0 -1
  219. package/dist/malp/core/index.d.ts +0 -9
  220. package/dist/malp/core/index.d.ts.map +0 -1
  221. package/dist/malp/core/index.js +0 -9
  222. package/dist/malp/core/index.js.map +0 -1
  223. package/dist/malp/core/linalg.d.ts +0 -101
  224. package/dist/malp/core/linalg.d.ts.map +0 -1
  225. package/dist/malp/core/linalg.js +0 -278
  226. package/dist/malp/core/linalg.js.map +0 -1
  227. package/dist/malp/core/optimizer.d.ts +0 -68
  228. package/dist/malp/core/optimizer.d.ts.map +0 -1
  229. package/dist/malp/core/optimizer.js +0 -160
  230. package/dist/malp/core/optimizer.js.map +0 -1
  231. package/dist/malp/index.d.ts +0 -33
  232. package/dist/malp/index.d.ts.map +0 -1
  233. package/dist/malp/index.js +0 -37
  234. package/dist/malp/index.js.map +0 -1
  235. package/dist/malp/metrics/agreement.d.ts +0 -106
  236. package/dist/malp/metrics/agreement.d.ts.map +0 -1
  237. package/dist/malp/metrics/agreement.js +0 -199
  238. package/dist/malp/metrics/agreement.js.map +0 -1
  239. package/dist/malp/metrics/comparison.d.ts +0 -93
  240. package/dist/malp/metrics/comparison.d.ts.map +0 -1
  241. package/dist/malp/metrics/comparison.js +0 -256
  242. package/dist/malp/metrics/comparison.js.map +0 -1
  243. package/dist/malp/metrics/index.d.ts +0 -8
  244. package/dist/malp/metrics/index.d.ts.map +0 -1
  245. package/dist/malp/metrics/index.js +0 -8
  246. package/dist/malp/metrics/index.js.map +0 -1
  247. package/dist/malp/metrics/performance.d.ts +0 -61
  248. package/dist/malp/metrics/performance.d.ts.map +0 -1
  249. package/dist/malp/metrics/performance.js +0 -190
  250. package/dist/malp/metrics/performance.js.map +0 -1
  251. package/dist/malp/models/index.d.ts +0 -7
  252. package/dist/malp/models/index.d.ts.map +0 -1
  253. package/dist/malp/models/index.js +0 -7
  254. package/dist/malp/models/index.js.map +0 -1
  255. package/dist/malp/models/malp.d.ts +0 -116
  256. package/dist/malp/models/malp.d.ts.map +0 -1
  257. package/dist/malp/models/malp.js +0 -206
  258. package/dist/malp/models/malp.js.map +0 -1
  259. package/dist/malp/models/regressor.d.ts +0 -80
  260. package/dist/malp/models/regressor.d.ts.map +0 -1
  261. package/dist/malp/models/regressor.js +0 -229
  262. package/dist/malp/models/regressor.js.map +0 -1
  263. package/dist/malp/reasoningbank_validator.d.ts +0 -187
  264. package/dist/malp/reasoningbank_validator.d.ts.map +0 -1
  265. package/dist/malp/reasoningbank_validator.js +0 -246
  266. package/dist/malp/reasoningbank_validator.js.map +0 -1
  267. package/dist/malp/wasm_bindings.d.ts +0 -344
  268. package/dist/malp/wasm_bindings.d.ts.map +0 -1
  269. package/dist/malp/wasm_bindings.js +0 -9
  270. package/dist/malp/wasm_bindings.js.map +0 -1
  271. package/dist/mcp/agentdb-mcp-server.d.ts +0 -8
  272. package/dist/mcp/agentdb-mcp-server.d.ts.map +0 -1
  273. package/dist/mcp/agentdb-mcp-server.js +0 -2116
  274. package/dist/mcp/agentdb-mcp-server.js.map +0 -1
  275. package/dist/mcp/learning-tools-handlers.d.ts +0 -16
  276. package/dist/mcp/learning-tools-handlers.d.ts.map +0 -1
  277. package/dist/mcp/learning-tools-handlers.js +0 -105
  278. package/dist/mcp/learning-tools-handlers.js.map +0 -1
  279. package/dist/optimizations/BatchOperations.d.ts +0 -109
  280. package/dist/optimizations/BatchOperations.d.ts.map +0 -1
  281. package/dist/optimizations/BatchOperations.js +0 -407
  282. package/dist/optimizations/BatchOperations.js.map +0 -1
  283. package/dist/optimizations/QueryOptimizer.d.ts +0 -83
  284. package/dist/optimizations/QueryOptimizer.d.ts.map +0 -1
  285. package/dist/optimizations/QueryOptimizer.js +0 -228
  286. package/dist/optimizations/QueryOptimizer.js.map +0 -1
  287. package/dist/optimizations/ToolCache.d.ts +0 -137
  288. package/dist/optimizations/ToolCache.d.ts.map +0 -1
  289. package/dist/optimizations/ToolCache.js +0 -281
  290. package/dist/optimizations/ToolCache.js.map +0 -1
  291. package/dist/optimizations/index.d.ts +0 -10
  292. package/dist/optimizations/index.d.ts.map +0 -1
  293. package/dist/optimizations/index.js +0 -8
  294. package/dist/optimizations/index.js.map +0 -1
  295. package/dist/security/input-validation.d.ts +0 -109
  296. package/dist/security/input-validation.d.ts.map +0 -1
  297. package/dist/security/input-validation.js +0 -398
  298. package/dist/security/input-validation.js.map +0 -1
  299. package/dist/security/limits.d.ts +0 -150
  300. package/dist/security/limits.d.ts.map +0 -1
  301. package/dist/security/limits.js +0 -288
  302. package/dist/security/limits.js.map +0 -1
  303. package/dist/security/path-security.d.ts +0 -100
  304. package/dist/security/path-security.d.ts.map +0 -1
  305. package/dist/security/path-security.js +0 -337
  306. package/dist/security/path-security.js.map +0 -1
  307. package/dist/security/validation.d.ts +0 -95
  308. package/dist/security/validation.d.ts.map +0 -1
  309. package/dist/security/validation.js +0 -315
  310. package/dist/security/validation.js.map +0 -1
  311. package/dist/types/quic.d.ts +0 -518
  312. package/dist/types/quic.d.ts.map +0 -1
  313. package/dist/types/quic.js +0 -272
  314. package/dist/types/quic.js.map +0 -1
@@ -1,361 +0,0 @@
1
- /**
2
- * HNSWIndex - Hierarchical Navigable Small World Index
3
- *
4
- * High-performance approximate nearest neighbor (ANN) search using HNSW algorithm.
5
- * Provides 10-100x speedup over brute-force search for large vector datasets.
6
- *
7
- * Features:
8
- * - HNSW indexing for sub-millisecond search
9
- * - Automatic index building and management
10
- * - Configurable M and efConstruction parameters
11
- * - Persistent index storage
12
- * - Graceful fallback to brute-force
13
- * - Multi-distance metric support (cosine, euclidean, ip)
14
- */
15
- import hnswlibNode from 'hnswlib-node';
16
- import * as fs from 'fs';
17
- import * as path from 'path';
18
- const { HierarchicalNSW } = hnswlibNode;
19
- export class HNSWIndex {
20
- db;
21
- config;
22
- index = null;
23
- vectorCache = new Map();
24
- idToLabel = new Map();
25
- labelToId = new Map();
26
- nextLabel = 0;
27
- indexBuilt = false;
28
- updatesSinceLastBuild = 0;
29
- totalSearches = 0;
30
- totalSearchTime = 0;
31
- lastBuildTime = null;
32
- lastSearchTime = null;
33
- constructor(db, config) {
34
- this.db = db;
35
- this.config = {
36
- M: 16,
37
- efConstruction: 200,
38
- efSearch: 100,
39
- metric: 'cosine',
40
- dimension: 1536,
41
- maxElements: 100000,
42
- persistIndex: true,
43
- rebuildThreshold: 0.1, // Rebuild after 10% updates
44
- ...config,
45
- };
46
- // Try to load existing index
47
- if (this.config.persistIndex && this.config.indexPath) {
48
- this.loadIndex();
49
- }
50
- }
51
- /**
52
- * Build HNSW index from database vectors
53
- */
54
- async buildIndex(tableName = 'pattern_embeddings') {
55
- const start = Date.now();
56
- console.log(`[HNSWIndex] Building HNSW index from ${tableName}...`);
57
- try {
58
- // Fetch all vectors from database
59
- const stmt = this.db.prepare(`
60
- SELECT pattern_id as id, embedding
61
- FROM ${tableName}
62
- `);
63
- const rows = stmt.all();
64
- if (rows.length === 0) {
65
- console.warn('[HNSWIndex] No vectors found in database');
66
- return;
67
- }
68
- // Create new HNSW index
69
- this.index = new HierarchicalNSW(this.config.metric, this.config.dimension);
70
- this.index.initIndex(Math.max(rows.length, this.config.maxElements), this.config.M, this.config.efConstruction);
71
- this.index.setEf(this.config.efSearch);
72
- // Clear mappings
73
- this.vectorCache.clear();
74
- this.idToLabel.clear();
75
- this.labelToId.clear();
76
- this.nextLabel = 0;
77
- // Add vectors to index
78
- console.log(`[HNSWIndex] Adding ${rows.length} vectors to index...`);
79
- for (const row of rows) {
80
- const id = row.id;
81
- const embedding = new Float32Array(row.embedding.buffer, row.embedding.byteOffset, row.embedding.byteLength / 4);
82
- // Add to index with label (convert Float32Array to number[])
83
- const label = this.nextLabel++;
84
- this.index.addPoint(Array.from(embedding), label);
85
- // Store mappings
86
- this.idToLabel.set(id, label);
87
- this.labelToId.set(label, id);
88
- this.vectorCache.set(id, embedding);
89
- }
90
- this.indexBuilt = true;
91
- this.updatesSinceLastBuild = 0;
92
- this.lastBuildTime = Date.now();
93
- const duration = (Date.now() - start) / 1000;
94
- console.log(`[HNSWIndex] ✅ Index built successfully in ${duration.toFixed(2)}s`);
95
- console.log(`[HNSWIndex] - Elements: ${rows.length}`);
96
- console.log(`[HNSWIndex] - Dimension: ${this.config.dimension}`);
97
- console.log(`[HNSWIndex] - M: ${this.config.M}`);
98
- console.log(`[HNSWIndex] - efConstruction: ${this.config.efConstruction}`);
99
- // Persist index if enabled
100
- if (this.config.persistIndex && this.config.indexPath) {
101
- await this.saveIndex();
102
- }
103
- }
104
- catch (error) {
105
- console.error('[HNSWIndex] Failed to build index:', error);
106
- this.indexBuilt = false;
107
- throw error;
108
- }
109
- }
110
- /**
111
- * Search HNSW index for k-nearest neighbors
112
- */
113
- async search(query, k, options) {
114
- if (!this.index || !this.indexBuilt) {
115
- throw new Error('Index not built. Call buildIndex() first.');
116
- }
117
- const searchStart = Date.now();
118
- try {
119
- // Perform HNSW search (convert Float32Array to number[])
120
- const result = this.index.searchKnn(Array.from(query), k);
121
- const searchTime = Date.now() - searchStart;
122
- this.lastSearchTime = searchTime;
123
- this.totalSearches++;
124
- this.totalSearchTime += searchTime;
125
- // Convert results to our format
126
- const results = [];
127
- for (let i = 0; i < result.neighbors.length; i++) {
128
- const label = result.neighbors[i];
129
- const distance = result.distances[i];
130
- const id = this.labelToId.get(label);
131
- if (id === undefined) {
132
- console.warn(`[HNSWIndex] Label ${label} not found in mapping`);
133
- continue;
134
- }
135
- // Convert distance to similarity based on metric
136
- const similarity = this.distanceToSimilarity(distance);
137
- // Apply threshold if specified
138
- if (options?.threshold !== undefined && similarity < options.threshold) {
139
- continue;
140
- }
141
- results.push({
142
- id,
143
- distance,
144
- similarity,
145
- });
146
- }
147
- // Apply filters if specified (post-filtering)
148
- if (options?.filters) {
149
- return this.applyFilters(results, options.filters);
150
- }
151
- return results;
152
- }
153
- catch (error) {
154
- console.error('[HNSWIndex] Search failed:', error);
155
- throw error;
156
- }
157
- }
158
- /**
159
- * Add a single vector to the index
160
- */
161
- addVector(id, embedding) {
162
- if (!this.index || !this.indexBuilt) {
163
- throw new Error('Index not built. Call buildIndex() first.');
164
- }
165
- const label = this.nextLabel++;
166
- this.index.addPoint(Array.from(embedding), label);
167
- this.idToLabel.set(id, label);
168
- this.labelToId.set(label, id);
169
- this.vectorCache.set(id, embedding);
170
- this.updatesSinceLastBuild++;
171
- // Check if rebuild is needed
172
- const totalElements = this.labelToId.size;
173
- const updatePercentage = this.updatesSinceLastBuild / totalElements;
174
- if (updatePercentage > this.config.rebuildThreshold) {
175
- console.log(`[HNSWIndex] Rebuild threshold reached (${(updatePercentage * 100).toFixed(1)}%)`);
176
- }
177
- }
178
- /**
179
- * Remove a vector from the index
180
- */
181
- removeVector(id) {
182
- if (!this.index || !this.indexBuilt) {
183
- throw new Error('Index not built. Call buildIndex() first.');
184
- }
185
- const label = this.idToLabel.get(id);
186
- if (label === undefined) {
187
- console.warn(`[HNSWIndex] ID ${id} not found in index`);
188
- return;
189
- }
190
- // Note: hnswlib doesn't support deletion, so we mark for rebuild
191
- this.idToLabel.delete(id);
192
- this.labelToId.delete(label);
193
- this.vectorCache.delete(id);
194
- this.updatesSinceLastBuild++;
195
- }
196
- /**
197
- * Check if index needs rebuilding
198
- */
199
- needsRebuild() {
200
- if (!this.indexBuilt)
201
- return true;
202
- const totalElements = this.labelToId.size;
203
- if (totalElements === 0)
204
- return false;
205
- const updatePercentage = this.updatesSinceLastBuild / totalElements;
206
- return updatePercentage > this.config.rebuildThreshold;
207
- }
208
- /**
209
- * Save index to disk
210
- */
211
- async saveIndex() {
212
- if (!this.index || !this.config.indexPath)
213
- return;
214
- try {
215
- const indexDir = path.dirname(this.config.indexPath);
216
- if (!fs.existsSync(indexDir)) {
217
- fs.mkdirSync(indexDir, { recursive: true });
218
- }
219
- // Save HNSW index
220
- this.index.writeIndex(this.config.indexPath);
221
- // Save mappings
222
- const mappingsPath = this.config.indexPath + '.mappings.json';
223
- const mappings = {
224
- idToLabel: Array.from(this.idToLabel.entries()),
225
- labelToId: Array.from(this.labelToId.entries()),
226
- nextLabel: this.nextLabel,
227
- config: this.config,
228
- };
229
- fs.writeFileSync(mappingsPath, JSON.stringify(mappings, null, 2));
230
- console.log(`[HNSWIndex] Index saved to ${this.config.indexPath}`);
231
- }
232
- catch (error) {
233
- console.error('[HNSWIndex] Failed to save index:', error);
234
- }
235
- }
236
- /**
237
- * Load index from disk
238
- */
239
- loadIndex() {
240
- if (!this.config.indexPath || !fs.existsSync(this.config.indexPath)) {
241
- return;
242
- }
243
- try {
244
- console.log(`[HNSWIndex] Loading index from ${this.config.indexPath}...`);
245
- // Load HNSW index
246
- this.index = new HierarchicalNSW(this.config.metric, this.config.dimension);
247
- this.index.readIndex(this.config.indexPath);
248
- this.index.setEf(this.config.efSearch);
249
- // Load mappings
250
- const mappingsPath = this.config.indexPath + '.mappings.json';
251
- if (fs.existsSync(mappingsPath)) {
252
- const mappingsData = JSON.parse(fs.readFileSync(mappingsPath, 'utf-8'));
253
- this.idToLabel = new Map(mappingsData.idToLabel);
254
- this.labelToId = new Map(mappingsData.labelToId);
255
- this.nextLabel = mappingsData.nextLabel;
256
- }
257
- this.indexBuilt = true;
258
- console.log(`[HNSWIndex] ✅ Index loaded successfully (${this.labelToId.size} elements)`);
259
- }
260
- catch (error) {
261
- console.warn('[HNSWIndex] Failed to load index:', error);
262
- this.index = null;
263
- this.indexBuilt = false;
264
- }
265
- }
266
- /**
267
- * Convert distance to similarity based on metric
268
- */
269
- distanceToSimilarity(distance) {
270
- switch (this.config.metric) {
271
- case 'cosine':
272
- // Cosine distance is 1 - similarity
273
- return 1 - distance;
274
- case 'l2':
275
- // Euclidean distance: convert to similarity (0-1 range)
276
- // Using exponential decay: e^(-distance)
277
- return Math.exp(-distance);
278
- case 'ip':
279
- // Inner product: higher is more similar
280
- // Negate distance to get similarity
281
- return -distance;
282
- default:
283
- return 1 - distance;
284
- }
285
- }
286
- /**
287
- * Apply post-filtering to search results
288
- */
289
- applyFilters(results, filters) {
290
- // Build WHERE clause for filters
291
- const conditions = [];
292
- const params = [];
293
- Object.entries(filters).forEach(([key, value]) => {
294
- conditions.push(`${key} = ?`);
295
- params.push(value);
296
- });
297
- const whereClause = conditions.join(' AND ');
298
- // Filter results by querying database
299
- const filtered = [];
300
- for (const result of results) {
301
- const stmt = this.db.prepare(`
302
- SELECT 1 FROM pattern_embeddings
303
- WHERE pattern_id = ? AND ${whereClause}
304
- `);
305
- const matches = stmt.get(result.id, ...params);
306
- if (matches) {
307
- filtered.push(result);
308
- }
309
- }
310
- return filtered;
311
- }
312
- /**
313
- * Get index statistics
314
- */
315
- getStats() {
316
- return {
317
- enabled: this.indexBuilt,
318
- indexBuilt: this.indexBuilt,
319
- numElements: this.labelToId.size,
320
- dimension: this.config.dimension,
321
- metric: this.config.metric,
322
- M: this.config.M,
323
- efConstruction: this.config.efConstruction,
324
- efSearch: this.config.efSearch,
325
- lastBuildTime: this.lastBuildTime,
326
- lastSearchTime: this.lastSearchTime,
327
- totalSearches: this.totalSearches,
328
- avgSearchTimeMs: this.totalSearches > 0 ? this.totalSearchTime / this.totalSearches : 0,
329
- };
330
- }
331
- /**
332
- * Update efSearch parameter for search quality/speed tradeoff
333
- */
334
- setEfSearch(ef) {
335
- if (this.index) {
336
- this.index.setEf(ef);
337
- this.config.efSearch = ef;
338
- console.log(`[HNSWIndex] efSearch updated to ${ef}`);
339
- }
340
- }
341
- /**
342
- * Clear index and free memory
343
- */
344
- clear() {
345
- this.index = null;
346
- this.vectorCache.clear();
347
- this.idToLabel.clear();
348
- this.labelToId.clear();
349
- this.nextLabel = 0;
350
- this.indexBuilt = false;
351
- this.updatesSinceLastBuild = 0;
352
- console.log('[HNSWIndex] Index cleared');
353
- }
354
- /**
355
- * Check if index is built and ready
356
- */
357
- isReady() {
358
- return this.indexBuilt && this.index !== null;
359
- }
360
- }
361
- //# sourceMappingURL=HNSWIndex.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HNSWIndex.js","sourceRoot":"","sources":["../../src/controllers/HNSWIndex.ts"],"names":[],"mappings":"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"}
@@ -1,195 +0,0 @@
1
- /**
2
- * Learning System - Reinforcement Learning Session Management
3
- *
4
- * Manages RL training sessions with:
5
- * - Session lifecycle (start/end)
6
- * - Action prediction with confidence scores
7
- * - Feedback loop for policy learning
8
- * - Policy training with configurable parameters
9
- *
10
- * Supports 9 RL algorithms:
11
- * - Q-Learning
12
- * - SARSA
13
- * - Deep Q-Network (DQN)
14
- * - Policy Gradient
15
- * - Actor-Critic
16
- * - Proximal Policy Optimization (PPO)
17
- * - Decision Transformer
18
- * - Monte Carlo Tree Search (MCTS)
19
- * - Model-Based RL
20
- */
21
- type Database = any;
22
- import { EmbeddingService } from './EmbeddingService.js';
23
- export interface LearningSession {
24
- id: string;
25
- userId: string;
26
- sessionType: 'q-learning' | 'sarsa' | 'dqn' | 'policy-gradient' | 'actor-critic' | 'ppo' | 'decision-transformer' | 'mcts' | 'model-based';
27
- config: LearningConfig;
28
- startTime: number;
29
- endTime?: number;
30
- status: 'active' | 'completed' | 'failed';
31
- metadata?: Record<string, any>;
32
- }
33
- export interface LearningConfig {
34
- learningRate: number;
35
- discountFactor: number;
36
- explorationRate?: number;
37
- batchSize?: number;
38
- targetUpdateFrequency?: number;
39
- }
40
- export interface ActionPrediction {
41
- action: string;
42
- confidence: number;
43
- qValue?: number;
44
- alternatives: Array<{
45
- action: string;
46
- confidence: number;
47
- qValue?: number;
48
- }>;
49
- }
50
- export interface ActionFeedback {
51
- sessionId: string;
52
- action: string;
53
- state: string;
54
- reward: number;
55
- nextState?: string;
56
- success: boolean;
57
- timestamp: number;
58
- }
59
- export interface TrainingResult {
60
- epochsCompleted: number;
61
- finalLoss: number;
62
- avgReward: number;
63
- convergenceRate: number;
64
- trainingTimeMs: number;
65
- }
66
- export declare class LearningSystem {
67
- private db;
68
- private embedder;
69
- private activeSessions;
70
- constructor(db: Database, embedder: EmbeddingService);
71
- /**
72
- * Initialize database schema for learning system
73
- */
74
- private initializeSchema;
75
- /**
76
- * Start a new learning session
77
- */
78
- startSession(userId: string, sessionType: LearningSession['sessionType'], config: LearningConfig): Promise<string>;
79
- /**
80
- * End a learning session and save final policy
81
- */
82
- endSession(sessionId: string): Promise<void>;
83
- /**
84
- * Predict next action with confidence scores
85
- */
86
- predict(sessionId: string, state: string): Promise<ActionPrediction>;
87
- /**
88
- * Submit feedback for learning
89
- */
90
- submitFeedback(feedback: ActionFeedback): Promise<void>;
91
- /**
92
- * Train policy with batch learning
93
- */
94
- train(sessionId: string, epochs: number, batchSize: number, learningRate: number): Promise<TrainingResult>;
95
- /**
96
- * Get session from database
97
- */
98
- private getSession;
99
- /**
100
- * Get or create state embedding
101
- */
102
- private getStateEmbedding;
103
- /**
104
- * Get latest policy for session
105
- */
106
- private getLatestPolicy;
107
- /**
108
- * Calculate action scores based on algorithm
109
- */
110
- private calculateActionScores;
111
- /**
112
- * Update policy incrementally after feedback
113
- */
114
- private updatePolicyIncremental;
115
- /**
116
- * Train batch of experiences
117
- */
118
- private trainBatch;
119
- /**
120
- * Save policy to database
121
- */
122
- private savePolicy;
123
- /**
124
- * Calculate convergence rate
125
- */
126
- private calculateConvergenceRate;
127
- private calculateTransformerScore;
128
- private calculateUCB1;
129
- private calculateModelScore;
130
- private shuffleArray;
131
- /**
132
- * Get learning performance metrics with time windows and trends
133
- */
134
- getMetrics(options: {
135
- sessionId?: string;
136
- timeWindowDays?: number;
137
- includeTrends?: boolean;
138
- groupBy?: 'task' | 'session' | 'skill';
139
- }): Promise<any>;
140
- /**
141
- * Transfer learning between sessions or tasks
142
- */
143
- transferLearning(options: {
144
- sourceSession?: string;
145
- targetSession?: string;
146
- sourceTask?: string;
147
- targetTask?: string;
148
- minSimilarity?: number;
149
- transferType?: 'episodes' | 'skills' | 'causal_edges' | 'all';
150
- maxTransfers?: number;
151
- }): Promise<any>;
152
- /**
153
- * Explain action recommendations with XAI (Explainable AI)
154
- */
155
- explainAction(options: {
156
- query: string;
157
- k?: number;
158
- explainDepth?: 'summary' | 'detailed' | 'full';
159
- includeConfidence?: boolean;
160
- includeEvidence?: boolean;
161
- includeCausal?: boolean;
162
- }): Promise<any>;
163
- /**
164
- * Record tool execution as experience for offline learning
165
- */
166
- recordExperience(options: {
167
- sessionId: string;
168
- toolName: string;
169
- action: string;
170
- stateBefore?: any;
171
- stateAfter?: any;
172
- outcome: string;
173
- reward: number;
174
- success: boolean;
175
- latencyMs?: number;
176
- metadata?: any;
177
- }): Promise<number>;
178
- /**
179
- * Calculate reward signal with shaping based on multiple factors
180
- */
181
- calculateReward(options: {
182
- episodeId?: number;
183
- success: boolean;
184
- targetAchieved?: boolean;
185
- efficiencyScore?: number;
186
- qualityScore?: number;
187
- timeTakenMs?: number;
188
- expectedTimeMs?: number;
189
- includeCausal?: boolean;
190
- rewardFunction?: 'standard' | 'sparse' | 'dense' | 'shaped';
191
- }): number;
192
- private cosineSimilarity;
193
- }
194
- export {};
195
- //# sourceMappingURL=LearningSystem.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LearningSystem.d.ts","sourceRoot":"","sources":["../../src/controllers/LearningSystem.ts"],"names":[],"mappings":"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"}